]> code.delx.au - gnu-emacs/commitdiff
Merge from emacs--devo--0
authorMiles Bader <miles@gnu.org>
Wed, 2 Jan 2008 04:13:39 +0000 (04:13 +0000)
committerMiles Bader <miles@gnu.org>
Wed, 2 Jan 2008 04:13:39 +0000 (04:13 +0000)
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-308

451 files changed:
.gitignore
ChangeLog.unicode [new file with mode: 0644]
README.unicode [new file with mode: 0644]
admin/ChangeLog.unicode [new file with mode: 0644]
admin/README
admin/charsets/.arch-inventory [new file with mode: 0644]
admin/charsets/.gitignore [new file with mode: 0644]
admin/charsets/Makefile [new file with mode: 0644]
admin/charsets/big5.awk [new file with mode: 0644]
admin/charsets/compact.awk [new file with mode: 0644]
admin/charsets/cp51932.awk [new file with mode: 0644]
admin/charsets/cp932.awk [new file with mode: 0644]
admin/charsets/eucjp-ms.awk [new file with mode: 0644]
admin/charsets/gb180302.awk [new file with mode: 0644]
admin/charsets/gb180304.awk [new file with mode: 0644]
admin/charsets/kuten.awk [new file with mode: 0644]
admin/charsets/mapconv [new file with mode: 0755]
admin/charsets/mule-charsets.el [new file with mode: 0644]
admin/nt/README-ftp-server
admin/unidata/.arch-inventory [new file with mode: 0644]
admin/unidata/.gitignore [new file with mode: 0644]
admin/unidata/Makefile [new file with mode: 0644]
admin/unidata/README [new file with mode: 0644]
admin/unidata/UnicodeData.txt [new file with mode: 0644]
admin/unidata/copyright.html [new file with mode: 0644]
admin/unidata/unidata-gen.el [new file with mode: 0644]
configure
configure.in
doc/lispref/elisp-covers.texi [deleted file]
etc/.arch-inventory
etc/ChangeLog.unicode [new file with mode: 0644]
etc/HELLO
etc/MORE.STUFF
etc/NEWS.unicode [new file with mode: 0644]
etc/PROBLEMS
etc/TODO
etc/charsets/8859-10.map [new file with mode: 0644]
etc/charsets/8859-11.map [new file with mode: 0644]
etc/charsets/8859-13.map [new file with mode: 0644]
etc/charsets/8859-14.map [new file with mode: 0644]
etc/charsets/8859-15.map [new file with mode: 0644]
etc/charsets/8859-16.map [new file with mode: 0644]
etc/charsets/8859-2.map [new file with mode: 0644]
etc/charsets/8859-3.map [new file with mode: 0644]
etc/charsets/8859-4.map [new file with mode: 0644]
etc/charsets/8859-5.map [new file with mode: 0644]
etc/charsets/8859-6.map [new file with mode: 0644]
etc/charsets/8859-7.map [new file with mode: 0644]
etc/charsets/8859-8.map [new file with mode: 0644]
etc/charsets/8859-9.map [new file with mode: 0644]
etc/charsets/ALTERNATIVNYJ.map [new file with mode: 0644]
etc/charsets/BIG5-1.map [new file with mode: 0644]
etc/charsets/BIG5-2.map [new file with mode: 0644]
etc/charsets/BIG5-HKSCS.map [new file with mode: 0644]
etc/charsets/BIG5.map [new file with mode: 0644]
etc/charsets/CNS-1.map [new file with mode: 0644]
etc/charsets/CNS-2.map [new file with mode: 0644]
etc/charsets/CNS-3.map [new file with mode: 0644]
etc/charsets/CNS-4.map [new file with mode: 0644]
etc/charsets/CNS-5.map [new file with mode: 0644]
etc/charsets/CNS-6.map [new file with mode: 0644]
etc/charsets/CNS-7.map [new file with mode: 0644]
etc/charsets/CNS-F.map [new file with mode: 0644]
etc/charsets/CP10007.map [new file with mode: 0644]
etc/charsets/CP1125.map [new file with mode: 0644]
etc/charsets/CP1250.map [new file with mode: 0644]
etc/charsets/CP1251.map [new file with mode: 0644]
etc/charsets/CP1252.map [new file with mode: 0644]
etc/charsets/CP1253.map [new file with mode: 0644]
etc/charsets/CP1254.map [new file with mode: 0644]
etc/charsets/CP1255.map [new file with mode: 0644]
etc/charsets/CP1256.map [new file with mode: 0644]
etc/charsets/CP1257.map [new file with mode: 0644]
etc/charsets/CP1258.map [new file with mode: 0644]
etc/charsets/CP720.map [new file with mode: 0644]
etc/charsets/CP737.map [new file with mode: 0644]
etc/charsets/CP775.map [new file with mode: 0644]
etc/charsets/CP858.map [new file with mode: 0644]
etc/charsets/CP932-2BYTE.map [new file with mode: 0644]
etc/charsets/CP949-2BYTE.map [new file with mode: 0644]
etc/charsets/EBCDICUK.map [new file with mode: 0644]
etc/charsets/EBCDICUS.map [new file with mode: 0644]
etc/charsets/GB180302.map [new file with mode: 0644]
etc/charsets/GB180304.map [new file with mode: 0644]
etc/charsets/GB2312.map [new file with mode: 0644]
etc/charsets/GBK.map [new file with mode: 0644]
etc/charsets/HP-ROMAN8.map [new file with mode: 0644]
etc/charsets/IBM037.map [new file with mode: 0644]
etc/charsets/IBM038.map [new file with mode: 0644]
etc/charsets/IBM1004.map [new file with mode: 0644]
etc/charsets/IBM1026.map [new file with mode: 0644]
etc/charsets/IBM1047.map [new file with mode: 0644]
etc/charsets/IBM256.map [new file with mode: 0644]
etc/charsets/IBM273.map [new file with mode: 0644]
etc/charsets/IBM274.map [new file with mode: 0644]
etc/charsets/IBM275.map [new file with mode: 0644]
etc/charsets/IBM277.map [new file with mode: 0644]
etc/charsets/IBM278.map [new file with mode: 0644]
etc/charsets/IBM280.map [new file with mode: 0644]
etc/charsets/IBM281.map [new file with mode: 0644]
etc/charsets/IBM284.map [new file with mode: 0644]
etc/charsets/IBM285.map [new file with mode: 0644]
etc/charsets/IBM290.map [new file with mode: 0644]
etc/charsets/IBM297.map [new file with mode: 0644]
etc/charsets/IBM420.map [new file with mode: 0644]
etc/charsets/IBM423.map [new file with mode: 0644]
etc/charsets/IBM424.map [new file with mode: 0644]
etc/charsets/IBM437.map [new file with mode: 0644]
etc/charsets/IBM500.map [new file with mode: 0644]
etc/charsets/IBM850.map [new file with mode: 0644]
etc/charsets/IBM851.map [new file with mode: 0644]
etc/charsets/IBM852.map [new file with mode: 0644]
etc/charsets/IBM855.map [new file with mode: 0644]
etc/charsets/IBM856.map [new file with mode: 0644]
etc/charsets/IBM857.map [new file with mode: 0644]
etc/charsets/IBM860.map [new file with mode: 0644]
etc/charsets/IBM861.map [new file with mode: 0644]
etc/charsets/IBM862.map [new file with mode: 0644]
etc/charsets/IBM863.map [new file with mode: 0644]
etc/charsets/IBM864.map [new file with mode: 0644]
etc/charsets/IBM865.map [new file with mode: 0644]
etc/charsets/IBM866.map [new file with mode: 0644]
etc/charsets/IBM868.map [new file with mode: 0644]
etc/charsets/IBM869.map [new file with mode: 0644]
etc/charsets/IBM870.map [new file with mode: 0644]
etc/charsets/IBM871.map [new file with mode: 0644]
etc/charsets/IBM874.map [new file with mode: 0644]
etc/charsets/IBM875.map [new file with mode: 0644]
etc/charsets/IBM880.map [new file with mode: 0644]
etc/charsets/IBM891.map [new file with mode: 0644]
etc/charsets/IBM903.map [new file with mode: 0644]
etc/charsets/IBM904.map [new file with mode: 0644]
etc/charsets/IBM905.map [new file with mode: 0644]
etc/charsets/IBM918.map [new file with mode: 0644]
etc/charsets/JISC6226.map [new file with mode: 0644]
etc/charsets/JISX0201.map [new file with mode: 0644]
etc/charsets/JISX0208.map [new file with mode: 0644]
etc/charsets/JISX0212.map [new file with mode: 0644]
etc/charsets/JISX2131.map [new file with mode: 0644]
etc/charsets/JISX2132.map [new file with mode: 0644]
etc/charsets/JISX213A.map [new file with mode: 0644]
etc/charsets/JOHAB.map [new file with mode: 0644]
etc/charsets/KA-ACADEMY.map [new file with mode: 0644]
etc/charsets/KA-PS.map [new file with mode: 0644]
etc/charsets/KOI-8.map [new file with mode: 0644]
etc/charsets/KOI8-R.map [new file with mode: 0644]
etc/charsets/KOI8-T.map [new file with mode: 0644]
etc/charsets/KOI8-U.map [new file with mode: 0644]
etc/charsets/KSC5601.map [new file with mode: 0644]
etc/charsets/KSC5636.map [new file with mode: 0644]
etc/charsets/MACINTOSH.map [new file with mode: 0644]
etc/charsets/MIK.map [new file with mode: 0644]
etc/charsets/MULE-ethiopic.map [new file with mode: 0644]
etc/charsets/MULE-ipa.map [new file with mode: 0644]
etc/charsets/MULE-is13194.map [new file with mode: 0644]
etc/charsets/MULE-lviscii.map [new file with mode: 0644]
etc/charsets/MULE-sisheng.map [new file with mode: 0644]
etc/charsets/MULE-tibetan.map [new file with mode: 0644]
etc/charsets/MULE-uviscii.map [new file with mode: 0644]
etc/charsets/NEXTSTEP.map [new file with mode: 0644]
etc/charsets/PTCP154.map [new file with mode: 0644]
etc/charsets/README [new file with mode: 0644]
etc/charsets/TIS-620.map [new file with mode: 0644]
etc/charsets/VISCII.map [new file with mode: 0644]
etc/charsets/VSCII-2.map [new file with mode: 0644]
etc/charsets/VSCII.map [new file with mode: 0644]
etc/charsets/stdenc.map [new file with mode: 0644]
etc/charsets/symbol.map [new file with mode: 0644]
etc/refcards/Makefile [deleted file]
etc/schema/calstbl.rnc
etc/schema/dbhier.rnc
etc/schema/dbnotn.rnc
etc/schema/dbpool.rnc
etc/schema/xslt.rnc
info/COPYING
leim/ChangeLog.unicode [new file with mode: 0644]
leim/MISC-DIC/pinyin.map
leim/Makefile.in
leim/quail/arabic.el [new file with mode: 0644]
leim/quail/cyrillic.el
leim/quail/hangul3.el
leim/quail/indian.el
leim/quail/latin-alt.el
leim/quail/latin-post.el
leim/quail/latin-pre.el
leim/quail/pypunct-b5.el
leim/quail/symbol-ksc.el
leim/quail/thai.el
leim/quail/tibetan.el
leim/quail/uni-input.el
leim/quail/welsh.el
lib-src/ChangeLog.unicode [new file with mode: 0644]
lib-src/makefile.w32-in
lisp/ChangeLog
lisp/ChangeLog.12
lisp/ChangeLog.unicode [new file with mode: 0644]
lisp/Makefile.in
lisp/arc-mode.el
lisp/bindings.el
lisp/case-table.el
lisp/composite.el
lisp/cus-start.el
lisp/descr-text.el
lisp/desktop.el
lisp/disp-table.el
lisp/dnd.el
lisp/edmacro.el
lisp/emacs-lisp/autoload.el
lisp/emacs-lisp/byte-opt.el
lisp/emacs-lisp/bytecomp.el
lisp/emacs-lisp/cl-loaddefs.el
lisp/emacs-lisp/cl-macs.el
lisp/emacs-lisp/copyright.el
lisp/emacs-lisp/generic.el
lisp/emacs-lisp/regexp-opt.el
lisp/emulation/keypad.el
lisp/eshell/esh-mode.el
lisp/eshell/esh-opt.el
lisp/faces.el
lisp/font-lock.el
lisp/format.el
lisp/gnus/ChangeLog.unicode [new file with mode: 0644]
lisp/gnus/gnus-start.el
lisp/gnus/mm-bodies.el
lisp/gnus/mm-util.el
lisp/gnus/mml.el
lisp/gnus/rfc2047.el
lisp/gnus/rfc2104.el
lisp/info.el
lisp/international/.arch-inventory [new file with mode: 0644]
lisp/international/ccl.el
lisp/international/characters.el
lisp/international/charprop.el [new file with mode: 0644]
lisp/international/code-pages.el [deleted file]
lisp/international/codepage.el
lisp/international/cp51932.el [new file with mode: 0644]
lisp/international/encoded-kb.el
lisp/international/eucjp-ms.el [new file with mode: 0644]
lisp/international/fontset.el
lisp/international/ja-dic-cnv.el
lisp/international/ja-dic-utl.el
lisp/international/latin-1.el [deleted file]
lisp/international/latin-2.el [deleted file]
lisp/international/latin-3.el [deleted file]
lisp/international/latin-4.el [deleted file]
lisp/international/latin-5.el [deleted file]
lisp/international/latin-8.el [deleted file]
lisp/international/latin-9.el [deleted file]
lisp/international/mule-cmds.el
lisp/international/mule-conf.el
lisp/international/mule-diag.el
lisp/international/mule-util.el
lisp/international/mule.el
lisp/international/quail.el
lisp/international/robin.el [new file with mode: 0644]
lisp/international/subst-big5.el [deleted file]
lisp/international/subst-gb2312.el [deleted file]
lisp/international/subst-jis.el [deleted file]
lisp/international/subst-ksc.el [deleted file]
lisp/international/titdic-cnv.el
lisp/international/ucs-tables.el [deleted file]
lisp/international/uni-bidi.el [new file with mode: 0644]
lisp/international/uni-category.el [new file with mode: 0644]
lisp/international/uni-combining.el [new file with mode: 0644]
lisp/international/uni-comment.el [new file with mode: 0644]
lisp/international/uni-decimal.el [new file with mode: 0644]
lisp/international/uni-decomposition.el [new file with mode: 0644]
lisp/international/uni-digit.el [new file with mode: 0644]
lisp/international/uni-lowercase.el [new file with mode: 0644]
lisp/international/uni-mirrored.el [new file with mode: 0644]
lisp/international/uni-name.el [new file with mode: 0644]
lisp/international/uni-numeric.el [new file with mode: 0644]
lisp/international/uni-old-name.el [new file with mode: 0644]
lisp/international/uni-titlecase.el [new file with mode: 0644]
lisp/international/uni-uppercase.el [new file with mode: 0644]
lisp/international/utf-16.el [deleted file]
lisp/international/utf-7.el
lisp/international/utf-8.el [deleted file]
lisp/isearch.el
lisp/language/china-util.el
lisp/language/chinese.el
lisp/language/cyril-util.el
lisp/language/cyrillic.el
lisp/language/czech.el
lisp/language/devan-util.el
lisp/language/devanagari.el
lisp/language/english.el
lisp/language/ethio-util.el
lisp/language/ethiopic.el
lisp/language/european.el
lisp/language/georgian.el
lisp/language/greek.el
lisp/language/hebrew.el
lisp/language/ind-util.el
lisp/language/indian.el
lisp/language/japanese.el
lisp/language/kannada.el
lisp/language/knd-util.el
lisp/language/korean.el
lisp/language/lao-util.el
lisp/language/lao.el
lisp/language/malayalam.el
lisp/language/misc-lang.el
lisp/language/mlm-util.el
lisp/language/romanian.el
lisp/language/slovak.el
lisp/language/tai-viet.el [new file with mode: 0644]
lisp/language/tamil.el
lisp/language/thai-util.el
lisp/language/thai.el
lisp/language/tibet-util.el
lisp/language/tibetan.el
lisp/language/tml-util.el
lisp/language/tv-util.el [new file with mode: 0644]
lisp/language/utf-8-lang.el
lisp/language/viet-util.el
lisp/language/vietnamese.el
lisp/ldefs-boot.el
lisp/loadup.el
lisp/mail/emacsbug.el
lisp/mail/rmail.el
lisp/mail/sendmail.el
lisp/makefile.w32-in
lisp/obsolete/swedish.el
lisp/play/gamegrid.el
lisp/progmodes/cap-words.el [new file with mode: 0644]
lisp/progmodes/perl-mode.el
lisp/progmodes/sh-script.el
lisp/ps-bdf.el
lisp/ps-def.el [new file with mode: 0644]
lisp/ps-mule.el
lisp/ps-print.el
lisp/ps-samp.el [new file with mode: 0644]
lisp/ruler-mode.el
lisp/select.el
lisp/simple.el
lisp/skeleton.el
lisp/startup.el
lisp/subr.el
lisp/tar-mode.el
lisp/term.el
lisp/term/mac-win.el
lisp/term/w32-win.el
lisp/term/x-win.el
lisp/textmodes/fill.el
lisp/textmodes/ispell.el
lisp/textmodes/sgml-mode.el
lisp/time-stamp.el
lisp/url/.gitignore [deleted file]
lisp/version.el
lisp/w32-fns.el
lisp/wid-edit.el
make-dist
nt/.arch-inventory [deleted file]
nt/ChangeLog.unicode [new file with mode: 0644]
nt/configure.bat
src/.gdbinit
src/ChangeLog.unicode [new file with mode: 0644]
src/Makefile.in
src/alloc.c
src/buffer.c
src/buffer.h
src/bytecode.c
src/callproc.c
src/casefiddle.c
src/casetab.c
src/category.c
src/category.h
src/ccl.c
src/ccl.h
src/character.c [new file with mode: 0644]
src/character.h [new file with mode: 0644]
src/charset.c
src/charset.h
src/chartab.c [new file with mode: 0644]
src/cmds.c
src/coding.c
src/coding.h
src/composite.c
src/composite.h
src/config.in
src/data.c
src/dired.c
src/dispextern.h
src/dispnew.c
src/disptab.h
src/doc.c
src/doprnt.c
src/dosfns.c
src/editfns.c
src/emacs.c
src/fileio.c
src/filelock.c
src/fns.c
src/font.c [new file with mode: 0644]
src/font.h [new file with mode: 0644]
src/fontset.c
src/fontset.h
src/frame.c
src/frame.h
src/fringe.c
src/ftfont.c [new file with mode: 0644]
src/ftfont.h [new file with mode: 0644]
src/ftxfont.c [new file with mode: 0644]
src/indent.c
src/insdel.c
src/intervals.c
src/intervals.h
src/keyboard.c
src/keymap.c
src/lisp.h
src/lread.c
src/macfns.c
src/macgui.h
src/macterm.c
src/makefile.w32-in
src/marker.c
src/minibuf.c
src/msdos.c
src/print.c
src/process.c
src/regex.c
src/regex.h
src/search.c
src/syntax.c
src/syntax.h
src/term.c
src/terminal.c
src/w16select.c
src/w32bdf.c
src/w32console.c
src/w32fns.c
src/w32font.c [new file with mode: 0644]
src/w32font.h [new file with mode: 0644]
src/w32menu.c
src/w32proc.c
src/w32select.c
src/w32term.c
src/w32term.h
src/w32xfns.c
src/window.c
src/xdisp.c
src/xfaces.c
src/xfns.c
src/xfont.c [new file with mode: 0644]
src/xftfont.c [new file with mode: 0644]
src/xmenu.c
src/xrdb.c
src/xselect.c
src/xterm.c
src/xterm.h

index 71fbe7e8d36a2b7cc2b08ded7ac3a0feae37b239..6a7976641b396b6b12756a98d119590b46e917e2 100644 (file)
@@ -26,22 +26,20 @@ _$*
 *.ln
 core
 # CVS default ignores end
-*.xdelta
-.DS_Store
-.arch-inventory
-Makefile
-autom4te.cache
+configure
 bin
 boot.log
 boot.log.diff
 boot.log.old
-config.cache
+update.log
 config.log
 config.status
-configure
-data
+config.cache
+Makefile
 emacs*.tar.gz
 leim*.tar.gz
 lock
+*.xdelta
+autom4te.cache
 site-lisp
-update.log
+data
\ No newline at end of file
diff --git a/ChangeLog.unicode b/ChangeLog.unicode
new file mode 100644 (file)
index 0000000..8bddeb9
--- /dev/null
@@ -0,0 +1,45 @@
+2007-12-01  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * configure: Re-generated.
+
+       * configure.in: Check the availability of m17n-flt library.
+
+2007-06-12  Juanma Barranquero  <lekktu@gmail.com>
+
+       * .cvsignore: Add data and site-lisp.
+
+2007-05-01  Kenichi Handa  <handa@m17n.org>
+
+       * configure: Re-generated.
+
+       * configure.in: Don't define HAVE_LIBOTF if OTF_get_features is
+       not available.
+
+2006-06-06  Kenichi Handa  <handa@m17n.org>
+
+       * configure.in: New args --enable-font-backend, --with-xft,
+       --with-freetyp.  New AC_DEFINEs USE_FONT_BACKEND, HAVE_XFT,
+       HAVE_FREETYPE, HAVE_LIBOTF.  New AC_SUBSTs XFT_LIBS,
+       FREETYPE_CFLAGS, FREETYPE_LIBS, FONTCONFIG_CFLAGS,
+       FONTCONFIG_LIBS, LIBOTF_CFLAGS, LIBOTF_LIBS.
+
+       * configure: Re-generated.
+
+2006-01-18  Kenichi Handa  <handa@m17n.org>
+
+       * make-dist: Include etc/charsets in tarball.
+
+2005-05-11  Kenichi Handa  <handa@m17n.org>
+
+       * configure.in: While running cpp on junk.c, include
+       -DHAVE_UNIDATA in CPPFLAGS if admin/unidata/UnicodeData.txt
+       exists.
+
+       * configure: Re-generated.
+
+2005-02-13  Miles Bader  <miles@gnu.org>
+
+       Rename unicode-branch-specific ChangeLog files to
+       "ChangeLog.unicode" from "ChangeLog.22"
+
+;; arch-tag: a75b78b5-dcea-4597-ad68-97d90683e613
diff --git a/README.unicode b/README.unicode
new file mode 100644 (file)
index 0000000..0cd277b
--- /dev/null
@@ -0,0 +1,201 @@
+                                            -*-mode: text; coding: latin-1;-*-
+
+Problems, fixmes and other issues in the emacs-unicode branch
+-------------------------------------------------------------
+
+Notes by fx to record various things of variable importance.  handa
+needs to check them -- don't take too seriously, especially with
+regard to completeness.
+
+_Do take seriously that you don't want this branch unless you're
+actually working on it; you risk your data by actually using it._  If
+you just want to edit Unicode and/or unify iso-8859 et al, see the
+existing support and the extra stuff at
+<URL:ftp://dlpx1.dl.ac.uk/fx/emacs/Mule>, mostly now in the CVS trunk.
+(Editing support is mostly orthogonal to the internal representation.)
+
+ * SINGLE_BYTE_CHAR_P returns true for Latin-1 characters, which has
+   undesirable effects.  E.g.:
+   (multibyte-string-p (let ((s "x")) (aset s 0 ?£) s)) => nil
+   (multibyte-string-p (concat [?£])) => nil
+   (text-char-description ?£) => "M-#"
+
+       These examples are all fixed by the change of 2002-10-14, but
+       there still exist questionalble SINGLE_BYTE_CHAR_P in the
+       code (keymap.c and print.c).
+
+ * Rationalize character syntax and its relationship to the Unicode
+   database.  (Applies mainly to symbol an punctuation syntax.)
+
+ * Fontset handling and customization needs work.  We want to relate
+   fonts to scripts, probably based on the Unicode blocks.  The
+   presence of small-repertoire 10646-encoded fonts in XFree 4 is a
+   pain, not currently worked round.
+
+       With the change on 2002-07-26, multiple fonts can be
+       specified in a fontset for a specific range of characters.
+       Each range can also be specified by script.  Before using
+       ISO10646 fonts, Emacs checks their repertories to avoid such
+       fonts that don't have a glyph for a specific character.
+
+       fx has worked on fontset customization, but was stymied by
+       basic problems with the way the default face is dealt with
+       (and something else, I think).  This needs revisiting.
+
+ * Work is also needed on charset and coding system priorities.
+
+ * The relevant bits of latin1-disp.el need porting (and probably
+   re-naming/updating).  See also cyril-util.el.
+
+ * Quail files need more work now the encoding is largely irrelevant.
+
+ * What to do with the old coding categories stuff?
+
+ * The preferred-coding-system property of charsets should probably be
+   junked unless it can be made more useful now.
+
+ * find-multibyte-characters needs looking at.
+
+ * Implement Korean cp949/UHC, BIG5-HKSCS and any other important missing
+   charsets.
+
+ * Lazy-load tables for unify-charset somehow?
+
+       Actually, Emacs clear out all charset maps and unify-map just
+       before dumping, and their are loaded again on demand the
+       dumped emacs.  But, those maps (char tables) generated while
+       temacs is running can't be get rid of from the dumped emacs.
+
+ * Translation tables for {en,de}code currently aren't supported.
+
+       This should be fixed by the changes of 2002-10-14.
+
+ * Defining CCL coding systems currently doesn't work.
+
+       This should be fixed by the changes of 2003-01-30.
+
+ * iso-2022 charsets get unified on i/o.
+
+       With the change on 2003-01-06, decoding routines put `charset'
+       property to decoded text, and iso-2022 encoder pay attention
+       to it.  Thus, for instance, reading and writing by
+       iso-2022-7bit preserve the original designation sequences.
+       The property name `preferred-charset' may be better?
+
+       We may have to utilize this property to decide a font.
+
+ * Revisit locale processing: look at treating the language and
+   charset parts separately.  (Language should affect things like
+   speling and calendar, but that's not a Unicode issue.)
+
+ * Handle Unicode combining characters usefully, e.g. diacritics, and
+   handle more scripts specifically (à la Devanagari).  There are
+   issues with canonicalization.
+
+ * Bidi is a separate issue with no support currently.
+
+ * We need tabular input methods, e.g. for maths symbols.  (Not
+   specific to Unicode.)
+
+ * Need multibyte text in menus, e.g. for the above.  (Not specific to
+   Unicode -- see Emacs etc/TODO, but now mostly works with gtk.)
+
+ * There's currently no support for Unicode normalization.
+
+ * Populate char-width-table correctly for Unicode chanaracters and
+   worry about what happens when double-width charsets covering
+   non-CJK characters are unified.
+
+ * Emacs 20/21 .elc files are currently not loadable.  It may or may
+   not be possible to do this properly.
+
+       With the change on 2002-07-24, elc files generated by Emacs
+       20.3 and later are correctly loaded (including those
+       containing multibyte characters and compressed).  But, elc
+       files generated by 20.2 and the primer are still not loadable.
+       Is it really worth working on it?
+
+ * Rmail won't work with non-ASCII text.  Encoding issues for Babyl
+   files need sorting out, but rms says Babyl will go before this is
+   released.
+
+ * Gnus still needs some attention, and we need to get changes
+   accepted by Gnus maintainers...
+
+ * There are type errors lurking, e.g. in
+   Fcheck_coding_systems_region.  Define ENABLE_CHECKING to find them.
+
+ * You can grep the code for lots of fixmes.
+
+ * Old auto-save files, and similar files, such as Gnus drafts,
+   containing non-ASCII characters probably won't be re-read correctly.
+
+
+
+New font handling mechanism with font backend method
+----------------------------------------------------
+
+This branch now contains new codes for handling fonts by multiple font
+backends.  The old font handling codes still exist completely parallel
+to the new codes, and the new codes are used only when you configure
+Emacs with the argument "--enable-font-backend".
+
+Which font backends to use can be specified by X resource
+"FontBackend".  For instance, if you want to use Xft fonts only,
+
+Emacs.FontBackend: xft
+
+will work.  If this resource is not set, Emacs tries to use all font
+backends available on your graphic device.
+
+The configure script, if invoked with "--enable-font-backend", checks
+if libraries freetype and fontconfig exist.  If they are both
+available, macro "USE_FONT_BACKEND" is defined in src/config.h.  In
+that case, the existing of Xft library is checked too.
+
+The new files are:
+       font.h -- header providing font-backend related structures
+               (most important ones are "struct font" and "struct
+               font_driver"), macros, and etc.
+       font.c -- main font handling code.
+       xfont.c -- font-driver on X for X core fonts.
+       ftfont.c -- generic font-driver for FreeType fonts providing
+               device-independent methods of struct font_driver.
+       xftfont.c -- font-driver on X using Xft for FreeType fonts
+               utilizing methods provided by ftfont.c.
+       ftxfont.c -- font-driver on X directly using FreeType fonts
+               utilizing methods provided by ftfont.c.
+       w32font.c -- font driver on w32 using Windows native fonts,
+               corresponding to xfont.c
+
+So we already have codes for X.  For the other systems (w32 and mac),
+it seems that we need these files:
+       atmfont.c -- font-driver on mac using ATM fonts, corresponding
+               to xfont.c
+As BDF fonts are currently used on w32, we may also implement these:
+       bdffont.c -- generic font-driver for BDF fonts, corresponding to
+               ftfont.c
+       bdfw32font.c -- font-driver on w32 using BDF fonts,
+               corresponding to ftxfont.c
+But, as FreeType already supports BDF fonts, if FreeType and
+Fontconfig are also available on w32, what we need may be:
+       ftw32font.c -- font-driver on w32 directly using FreeType fonts
+               utilizing methods provided by ftfont.c.
+
+And, for those to work, macterm.c and macfns.c must be changed by the
+similar way as xterm.c and xfns.c (the parts "#ifdef USE_FONT_BACKEND"
+... "#endif" should be checked).
+
+It may be interesting if Emacs supports a frame buffer directly and
+have these font driver.
+       ftfbfont.c -- font-driver on FB for FreeType fonts.
+       bdffbfont.c -- font-driver on FB for BDF fonts.
+
+Note: The fontset related codes are not yet matuared to work well with
+the font backend method.  So, for instance, even if you start Emacs
+as something like this:
+  % emacs -fn tahoma
+Non-ASCII Latin characters will not be displayed by the font "tahoma".
+In such a case, please try this:
+
+(set-fontset-font "fontset-default" 'latin '("tahoma" . "unicode-bmp"))
diff --git a/admin/ChangeLog.unicode b/admin/ChangeLog.unicode
new file mode 100644 (file)
index 0000000..d7cde85
--- /dev/null
@@ -0,0 +1,135 @@
+2006-08-21  Kenichi Handa  <handa@m17n.org>
+
+       * unidata/UnicodeData.txt: Updated to Unicode 5.0.
+
+       * unidata/README: Adjusted for Unicode 5.0.
+
+       * unidata/copyright.html: New file.
+
+2005-05-13  Kenichi Handa  <handa@m17n.org>
+
+       * unidata/unidata-gen.el (unidata-get-decomposition): For Hangul
+       decomposition, if T is the same as TBase, don't include it in the
+       returned list.
+
+2005-05-11  Kenichi Handa  <handa@m17n.org>
+
+       * unidata/unidata-gen.el (unidata-text-file): Delete it.
+       (unidata-list): Initialize to nil.
+       (unidata-setup-list): New function.
+       (unidata-gen-files): New optional arg unidata-text-file.  If it's
+       nil, set unidata-text-file the left command line arg.  Call
+       unidate-setup-list at first.
+
+       * unidata/Makefile (EMACS): Rename back to Emacs and set to emacs.
+       Caller changed.
+       (all): Depends on ${DSTDIR}/charprop.el.
+       (${DSTDIR}/charprop.el): Run emacs after cd to DISDIR.
+
+2005-05-10  Kenichi Handa  <handa@m17n.org>
+
+       * unidata/unidata-gen.el: Typo fixed in comments.  Change
+       string-to-int to string-to-number.
+       (unidata-text-file): Defined to .../unidata.txt.
+       (unidata-list): Just insert unidata-text-file.
+       (unidata-get-decomposition): Handle Hangul decomposition.
+       (unidata-gen-files): Don't use \040, instead at ^L near the end of
+       file.
+
+       * unidata/Makefile (TEMACS): Renamed from EMACS.  Set to temacs.
+       Caller changed.
+       (unidata.txt): New target.
+       (charprop.el): Depends on unidata.txt.
+       (clean): Remove unidata.txt.
+
+2005-03-02  Kenichi Handa  <handa@m17n.org>
+
+       * unidata/unidata-gen.el (unidata-get-name): Handle "CJK IDEOGRAPH".
+       (unidata-get-name): Handle U+110B.
+
+2005-01-30  Kenichi Handa  <handa@m17n.org>
+
+       Sub-directory `unidata' is for codes to generate charprop.el and
+       many other uni-*.el files from `UnicodeData.txt'.
+
+       * Unidata/README: New file.
+
+       * unidata/Makefile: New file.
+
+       * unidata/unidata-gen.el: New file.
+
+       * unidata/UnicodeData.txt: New file.  Copied from
+       http://www.unicode.org on 2005-01-29.
+
+       * unidata/.cvsignore: New file.
+
+2004-02-12  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/.cvsignore: New file.
+
+       * charsets/mapconv: Add code for handling KANJI-DATABASE format.
+
+       * charsets/Makefile (all): Rename target from charsets.  Depend on
+       ${TRANS_TABLE}
+       (CNS-2.map, CNS-3.map, CNS-4.map, CNS-5.map, CNS-6.map)
+       (CNS-7.map): Generate from cns2ucsdkw.txt.
+       (install): Copy updated files only.
+
+2004-01-30  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/cp932.awk: Append user defined area of CP932.
+
+2004-01-28  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/Makefile (JISX2131.map): Convert 0x2015 to 0x2014,
+       0x2299 to 0x29BF.
+
+2004-01-27  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/Makefile (TRANS_TABLE): New macro.
+       (JISX0208.map): Convert 0x2015 to 0x2014.
+       (cp51932.el): New target. 
+       (eucjp-ms.el): New target.
+       (install): Include ${TRANS_TABLE}.
+       (CJK): Include JISX213A.map.
+       (JISX213A.map): New target.
+
+       * charsets/eucjp-ms.awk: New file.
+
+       * charsets/cp51932.awk: New file.
+
+2004-01-26  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/cp932.awk: New file.
+
+       * charsets/Makefile (CP932-2BYTE.map): Call mapconv with
+       cp932.awk.
+
+       * charsets/mapconv: In UNICODE2 case, sort by 4th field after
+       running an awk program.
+
+2004-01-25  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/mapconv: Handle UNICODE2.
+
+       * charsets/Makefile (CJK): Include CP932-2BYTE.map
+       (CP932-2BYTE.map): New target.
+
+2003-08-16  Kenichi Handa  <handa@m17n.org>
+
+       * charsets: New directory for scripts to generate charset map
+       files in ../etc/charsets/.
+
+       * charsets/Makefile, charsets/mapconv, charsets/compact.awk,
+       charsets/big5.awk charsets/gb18030-2.awk, charsets/gb18030-4.awk,
+       cahrsets/kuten.awk: New files.
+
+;; Local Variables:
+;; coding: iso-2022-7bit-unix
+;; End:
+
+    Copyright (C) 2003 Free Software Foundation, Inc.
+  Copying and distribution of this file, with or without modification,
+  are permitted provided the copyright notice and this notice are preserved.
+
+;;; arch-tag: 021fa3ae-e1d0-451b-866e-c5b10b325e78
index 2c07f40b52f31a52d8e4da7241de04535e2d3db5..888c3cc242bf538296bdb6a3c11264791b9617df 100644 (file)
@@ -89,4 +89,11 @@ mode: outline
 paragraph-separate: "[         \f]*$"
 end:
 
+Brief description of sub-directories:
+
+charsets               scripts for generating charset map files
+                       in ../etc/charsets
+unidata                        scripts for generating character property files
+                       in ../lisp/international
+
 # arch-tag: 812b9461-bc0a-46a7-925e-24bd41118463
diff --git a/admin/charsets/.arch-inventory b/admin/charsets/.arch-inventory
new file mode 100644 (file)
index 0000000..0924093
--- /dev/null
@@ -0,0 +1,4 @@
+# Unlike most emacs dirs, admin/charsets has a simple non-autoconf-generated makefile
+source ^(Makefile)$
+
+# arch-tag: ee36cfe3-96f8-4e91-aec4-008c80a85e6b
diff --git a/admin/charsets/.gitignore b/admin/charsets/.gitignore
new file mode 100644 (file)
index 0000000..ea375dc
--- /dev/null
@@ -0,0 +1,2 @@
+*.map
+*.el
diff --git a/admin/charsets/Makefile b/admin/charsets/Makefile
new file mode 100644 (file)
index 0000000..ceecbce
--- /dev/null
@@ -0,0 +1,349 @@
+# Makefile -- Makefile to generate charset maps in etc/charsets.
+# Copyright (C) 2003
+#   National Institute of Advanced Industrial Science and Technology (AIST)
+#   Registration Number H13PRO009
+#
+# This file is part of GNU Emacs.
+
+# GNU Emacs 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 2, or (at your option)
+# any later version.
+
+# GNU Emacs 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 General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Commentary
+
+# At first, set these environment variables:
+# GLIBC_CHARMAPS
+#   Directory of glibc-VERSION/localedate/charmaps.
+#   VERSION must be 2.3 or the later.
+# MISC_CHARMAPS
+#   Direcory containing these charmap files:
+#   o bulgarian-mik.txt.gz
+#      provided at <http://czyborra.com/charsets/>
+#   o PTCP154
+#      provided at <http://www.iana.org/assignments/charset-reg/>
+#   o stdenc.txt and symbol.txt
+#      provided at <http://www.unicode.org/Public/MAPPINGS/>
+#   o cp932.txt
+#      provided at <http://www.unicode.org/Public/MAPPINGS/VENDERS>
+#   o Uni2JIS
+#      provided at <http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/CJK.html>
+#   o 720.htm and 858.htm
+#      provided at <http://www.microsoft.com/globaldev/reference/oem/>
+#   o eucJP-13th.txt, eucJP-udc.txt, eucJP-ibmext.txt
+#      provided at <http://www.opengroup.or.jp/jvc/cde/>
+#   o cns2ucsdkw.txt
+#      available by:
+#      % cvs -d :pserver:anonymous@cvs.kanji-database.sourceforge.net:\
+#              /cvsroot/kanji-database login
+#      % cvs -d :pserver:anonymous@cvs.kanji-database.sourceforge.net:\
+#              /cvsroot/kanji-database co kanji-database
+# OLDEMACS
+#   emacs of version 21.3.50 or later
+#
+# Then, do this:
+#      % make XXX.map (or make all)
+#      % make install
+
+CHARSETS = ${ISO8859} ${IBM} ${CODEPAGE} ${CJK} ${MISC} ${MULE}
+
+# Note: We can not prepend "ISO-" to these map files because of file
+# name limits on DOS.
+ISO8859 = \
+       8859-2.map 8859-3.map 8859-4.map 8859-5.map 8859-6.map 8859-7.map \
+       8859-8.map 8859-9.map 8859-10.map 8859-11.map 8859-13.map 8859-14.map \
+       8859-15.map 8859-16.map
+
+IBM = \
+       IBM037.map IBM038.map \
+       IBM256.map IBM273.map IBM274.map IBM275.map IBM277.map IBM278.map \
+       IBM280.map IBM281.map IBM284.map IBM285.map IBM290.map IBM297.map \
+       IBM420.map IBM423.map IBM424.map IBM437.map IBM500.map IBM850.map \
+       IBM851.map IBM852.map IBM855.map IBM856.map IBM857.map IBM860.map \
+       IBM861.map IBM862.map IBM863.map IBM864.map IBM865.map IBM866.map \
+       IBM868.map IBM869.map IBM870.map IBM871.map IBM874.map IBM875.map \
+       IBM880.map IBM891.map IBM903.map IBM904.map IBM905.map IBM918.map \
+       IBM1004.map IBM1026.map IBM1047.map
+
+CODEPAGE = \
+       CP737.map CP775.map CP1125.map\
+       CP1250.map CP1251.map CP1252.map CP1253.map CP1254.map \
+       CP1255.map CP1256.map CP1257.map CP1258.map \
+       CP10007.map \
+       CP720.map CP858.map
+
+CJK =   GB2312.map GBK.map GB180302.map GB180304.map \
+       BIG5.map BIG5-HKSCS.map\
+       CNS-1.map CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \
+       CNS-F.map \
+       JISX0201.map JISX0208.map JISX0212.map JISX2131.map JISX2132.map \
+       JISC6226.map CP932-2BYTE.map JISX213A.map\
+       KSC5601.map KSC5636.map JOHAB.map
+
+MISC =  KOI-8.map KOI8-R.map KOI8-U.map KOI8-T.map ALTERNATIVNYJ.map \
+       MIK.map PTCP154.map \
+       TIS-620.map VISCII.map VSCII.map VSCII-2.map\
+       KA-PS.map KA-ACADEMY.map \
+       HP-ROMAN8.map NEXTSTEP.map MACINTOSH.map EBCDICUK.map EBCDICUS.map \
+       stdenc.map symbol.map \
+       CP949-2BYTE.map \
+       BIG5-1.map BIG5-2.map
+
+# Emacs-mule charsets.
+MULE = MULE-ethiopic.map MULE-ipa.map MULE-is13194.map \
+       MULE-sisheng.map MULE-tibetan.map \
+       MULE-lviscii.map MULE-uviscii.map
+
+TRANS_TABLE = cp51932.el eucjp-ms.el
+
+all: ${CHARSETS} ${TRANS_TABLE}
+
+AWK = gawk
+
+# Rules for each charset
+
+VSCII.map: ${GLIBC_CHARMAPS}/TCVN5712-1 mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[0-9a-f].[  ]/' GLIBC-1 compact.awk > $@
+
+VSCII-2.map: ${GLIBC_CHARMAPS}/TCVN5712-1 mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[2-7a-f].[  ]/' GLIBC-1 compact.awk \
+         | sed 's/0x20-0x7F.*/0x00-0x7F 0x0000/' > $@
+
+ALTERNATIVNYJ.map: IBM866.map
+       # Generating $@...
+       @echo "# Modified from ibm866 according to the chart at" > $@
+       @echo "# http://www.cyrillic.com/ref/cyrillic/koi-8alt.html," >> $@
+       @echo "# with guesses for the Unicodes of the glyphs." >> $@
+       @sed -e '/0xF2/ s/ .*/ 0x2019/' \
+            -e '/0xF3/ s/ .*/ 0x2018/' \
+            -e '/0xF4/ s/ .*/ 0x0301/' \
+            -e '/0xF5/ s/ .*/ 0x0300/' \
+            -e '/0xF6/ s/ .*/ 0x203A/' \
+            -e '/0xF7/ s/ .*/ 0x2039/' \
+            -e '/0xF8/ s/ .*/ 0x2191/' \
+            -e '/0xF9/ s/ .*/ 0x2193/' \
+            -e '/0xFA/ s/ .*/ 0x00B1/' \
+            -e '/0xFB/ s/ .*/ 0x00F7/' < $< >> $@
+
+MIK.map: ${MISC_CHARMAPS}/bulgarian-mik.txt.gz mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '1,$$' CZYBORRA compact.awk > $@
+
+PTCP154.map: ${MISC_CHARMAPS}/PTCP154 mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^0x/' IANA compact.awk > $@
+
+stdenc.map: ${MISC_CHARMAPS}/stdenc.txt mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@
+
+symbol.map: ${MISC_CHARMAPS}/symbol.txt mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@
+
+CP720.map: ${MISC_CHARMAPS}/720.htm mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^[0-9A-F]/' MICROSOFT compact.awk > $@
+
+CP858.map: ${MISC_CHARMAPS}/858.htm mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^[0-9A-F]/' MICROSOFT compact.awk > $@
+
+CP949-2BYTE.map: ${GLIBC_CHARMAPS}/CP949 mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[89a-f]/' GLIBC-2 compact.awk > $@
+
+GB2312.map: ${GLIBC_CHARMAPS}/GB2312 mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@
+
+GBK.map: ${GLIBC_CHARMAPS}/GBK mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[89a-f]/' GLIBC-2 compact.awk > $@
+
+GB180302.map: ${GLIBC_CHARMAPS}/GB18030 mapconv gb180302.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x..\/x..[    ]/' GLIBC-2 gb180302.awk > $@
+
+GB180304.map: GB180302.map gb180304.awk
+       # Generating $@...
+       @$(AWK) -f gb180304.awk < $< > $@
+
+JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201 mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[0-9]/' GLIBC-1 compact.awk > $@
+       @echo "# Generated by hand" >> $@
+       @echo "0xA1-0xDF 0xFF61" >> $@
+
+JISX0208.map: ${GLIBC_CHARMAPS}/EUC-JP mapconv
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[a-f]/' GLIBC-2-7 \
+         | sed 's/0x2015/0x2014/' > $@
+
+JISX0212.map: ${GLIBC_CHARMAPS}/EUC-JP mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x8f/ s,/x8f,,' GLIBC-2-7 compact.awk > $@
+
+JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213 mapconv
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[a-f]/' GLIBC-2-7 \
+         | sed -e 's/0x2015/0x2014/' -e 's/0x2299/0x29BF/' > $@
+
+JISX2132.map: ${GLIBC_CHARMAPS}/EUC-JISX0213 mapconv
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@
+
+JISX213A.map:
+       # Generating $@
+       @(echo "0x2E21 0x4FF1"; \
+         echo "0x2F7E 0x525D"; \
+         echo "0x4F54 0x20B9F"; \
+         echo "0x4F7E 0x541E"; \
+         echo "0x7427 0x5653"; \
+         echo "0x7E7A 0x59F8"; \
+         echo "0x7E7B 0x5C5B"; \
+         echo "0x7E7C 0x5E77"; \
+         echo "0x7E7D 0x7626"; \
+         echo "0x7E7E 0x7E6B") > $@
+
+CP932-2BYTE.map: ${MISC_CHARMAPS}/cp932.txt mapconv cp932.awk
+       # Generating $@...
+       @mapconv $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 cp932.awk > $@
+
+cp51932.el: CP932-2BYTE.map cp51932.awk
+       @$(AWK) -f cp51932.awk < CP932-2BYTE.map > $@
+
+eucjp-ms.el: ${MISC_CHARMAPS}/eucJP-13th.txt ${MISC_CHARMAPS}/eucJP-udc.txt \
+               ${MISC_CHARMAPS}/eucJP-ibmext.txt eucjp-ms.awk
+       @(cd ${MISC_CHARMAPS}; \
+         cat eucJP-13th.txt eucJP-udc.txt eucJP-ibmext.txt) \
+         | $(AWK) -f eucjp-ms.awk > $@
+
+JISC6226.map : ${MISC_CHARMAPS}/Uni2JIS mapconv kuten.awk
+       # Generating $@...
+       @mapconv $< '/^[^#].*0-/' YASUOKA kuten.awk > $@
+
+KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@
+
+BIG5.map: ${GLIBC_CHARMAPS}/BIG5 mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[a-f]/' GLIBC-2 > $@
+
+BIG5-1.map: BIG5.map mapconv big5.awk
+       # Generating $@...
+       @echo "Generated from $<" > $@
+       @sed -n -e '/0xa140/,/0xc8fe/p' < $< | gawk -f big5.awk >> $@
+
+BIG5-2.map: BIG5.map mapconv big5.awk
+       # Generating $@...
+       @echo "Generated from $<" > $@
+       @sed -n -e '/0xc940/,$$ p' < $< | gawk -f big5.awk >> $@
+
+BIG5-HKSCS.map: ${GLIBC_CHARMAPS}/BIG5-HKSCS mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[89a-f].\//' GLIBC-2 compact.awk > $@
+
+JOHAB.map: ${GLIBC_CHARMAPS}/JOHAB mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[89a-f]/' GLIBC-2 compact.awk > $@
+
+CNS-1.map: ${GLIBC_CHARMAPS}/EUC-TW mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@
+
+# CNS-1.map: ${MISC_CHARMAPS}/cns2ucsdkw.txt mapconv compact.awk
+#      # Generating $@...
+#      @mapconv $< '/^C1/' KANJI-DATABASE compact.awk > $@
+
+CNS-2.map: ${MISC_CHARMAPS}/cns2ucsdkw.txt mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^C2/' KANJI-DATABASE compact.awk > $@
+
+CNS-3.map: ${MISC_CHARMAPS}/cns2ucsdkw.txt mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^C3/' KANJI-DATABASE compact.awk > $@
+
+CNS-4.map: ${MISC_CHARMAPS}/cns2ucsdkw.txt mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^C4/' KANJI-DATABASE compact.awk > $@
+
+CNS-5.map: ${MISC_CHARMAPS}/cns2ucsdkw.txt mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^C5/' KANJI-DATABASE compact.awk > $@
+
+CNS-6.map: ${MISC_CHARMAPS}/cns2ucsdkw.txt mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^C6/' KANJI-DATABASE compact.awk > $@
+
+CNS-7.map: ${MISC_CHARMAPS}/cns2ucsdkw.txt mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^C7/' KANJI-DATABASE compact.awk > $@
+
+CNS-F.map: ${GLIBC_CHARMAPS}/EUC-TW mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 compact.awk > $@
+
+# General target to produce map files for mule charsets.
+MULE-%.map: mule-charsets.el
+       # Generating $@...
+       @${OLDEMACS} -batch -l ./mule-charsets.el $@
+
+# General target to produce map files for ISO-8859, GEORGIAN, and
+# EBCDIC charsets.  We can not use the original file name because of
+# file name limit on DOS.  "KA" is ISO 639 language code for Georgian.
+
+8859-%.map: ${GLIBC_CHARMAPS}/ISO-8859-% mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x/' GLIBC-1 compact.awk > $@
+
+KA-%.map: ${GLIBC_CHARMAPS}/GEORGIAN-% mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x/' GLIBC-1 compact.awk > $@
+
+EBCDIC%.map: ${GLIBC_CHARMAPS}/EBCDIC-% mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x/' GLIBC-1 compact.awk > $@
+
+# General target to produce map files for single-byte charsets.
+
+%.map: ${GLIBC_CHARMAPS}/% mapconv compact.awk
+       # Generating $@...
+       @mapconv $< '/^<.*[     ]\/x/' GLIBC-1 compact.awk > $@
+
+install:
+       @for f in ${CHARSETS}; do \
+         if test -r $$f; then \
+           if ! cmp -s $$f ../../etc/charsets/$$f; then \
+             echo updating $$f; \
+             cp $$f ../../etc/charsets; \
+           fi; \
+         fi; \
+       done
+       @for f in ${TRANS_TABLE}; do \
+         if test -r $$f; then \
+           if ! cmp -s $$f ../../lisp/international/$$f; then \
+             echo updating $$f; \
+             cp $$f ../../lisp/international; \
+           fi; \
+         fi; \
+       done
+
+# Clear files that are automatically generated.
+clean:
+       rm -f ${CHARSETS} ${TRANS_TABLE}
+
+# arch-tag: 90b3bf30-1fef-45bf-b30c-665c30c22310
diff --git a/admin/charsets/big5.awk b/admin/charsets/big5.awk
new file mode 100644 (file)
index 0000000..e238f75
--- /dev/null
@@ -0,0 +1,54 @@
+BEGIN {
+  tohex["A"] = 10;
+  tohex["B"] = 11;
+  tohex["C"] = 12;
+  tohex["D"] = 13;
+  tohex["E"] = 14;
+  tohex["F"] = 15;
+  tohex["a"] = 10;
+  tohex["b"] = 11;
+  tohex["c"] = 12;
+  tohex["d"] = 13;
+  tohex["e"] = 14;
+  tohex["f"] = 15;
+}
+
+function decode_hex(str) {
+  n = 0;
+  len = length(str);
+  for (i = 1; i <= len; i++)
+    {
+      c = substr (str, i, 1);
+      if (c >= "0" && c <= "9")
+       n = n * 16 + (c - "0");
+      else
+       n = n * 16 + tohex[c];
+    }
+  return n;
+}
+
+function decode_big5(big5) {
+  b0 = int(big5 / 256);
+  b1 = big5 % 256;
+# (0xFF - 0xA1 + 0x7F - 0x40) = 157
+# (0xA1 - (0x7F - 0x40)) = 98
+# (0xC9 - 0xA1) * (0xFF - 0xA1 + 0x7F - 0x40) = 6280
+  if (b1 < 127)
+    idx = (b0 - 161) * 157 + (b1 - 64);
+  else
+    idx = (b0 - 161) * 157 + (b1 - 98);
+  if (b0 >= 201)
+    idx -= 6280;
+  b0 = int(idx / 94) + 33;
+  b1 = (idx % 94) + 33;
+  return (b0 * 256 + b1)
+}
+
+{
+  big5 = decode_hex($1);
+  code = decode_big5(big5);
+  printf "0x%04X %s\n", code, $2;
+}
+
+    
+# arch-tag: 36f08d21-0d24-4b67-852d-a9a51299586d
diff --git a/admin/charsets/compact.awk b/admin/charsets/compact.awk
new file mode 100644 (file)
index 0000000..ba756b1
--- /dev/null
@@ -0,0 +1,125 @@
+# compact.awk -- Make charset map compact.
+# Copyright (C) 2003
+#   National Institute of Advanced Industrial Science and Technology (AIST)
+#   Registration Number H13PRO009
+#
+# This file is part of GNU Emacs.
+#
+# GNU Emacs 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 2, or (at your option)
+# any later version.
+#
+# GNU Emacs 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Comment:
+# Make a charset map compact by changing this kind of line sequence:
+#   0x00 0x0000
+#   0x01 0x0001
+#   ...
+#   0x7F 0x007F
+# to one line of this format:
+#   0x00-0x7F 0x0000
+
+BEGIN {
+  tohex["0"] = 1;
+  tohex["1"] = 2;
+  tohex["2"] = 3;
+  tohex["3"] = 4;
+  tohex["4"] = 5;
+  tohex["5"] = 6;
+  tohex["6"] = 7;
+  tohex["7"] = 8;
+  tohex["8"] = 9;
+  tohex["9"] = 10;
+  tohex["A"] = 11;
+  tohex["B"] = 12;
+  tohex["C"] = 13;
+  tohex["D"] = 14;
+  tohex["E"] = 15;
+  tohex["F"] = 16;
+  tohex["a"] = 11;
+  tohex["b"] = 12;
+  tohex["c"] = 13;
+  tohex["d"] = 14;
+  tohex["e"] = 15;
+  tohex["f"] = 16;
+  from_code = 0;
+  to_code = -1;
+  to_unicode = 0;
+  from_unicode = 0;
+}
+
+function decode_hex(str, idx) {
+  n = 0;
+  len = length(str);
+  for (i = idx; i <= len; i++)
+    {
+      c = tohex[substr (str, i, 1)];
+      if (c == 0)
+       break;
+      n = n * 16 + c - 1;
+    }
+  return n;
+}
+
+/^\#/ {
+  print;
+  next;
+}
+
+{
+  code = decode_hex($1, 3);
+  unicode = decode_hex($2, 3);
+  if ((code == to_code + 1) && (unicode == to_unicode + 1))
+    {
+      to_code++;
+      to_unicode++;
+    }
+  else
+    {
+      if (to_code < 256)
+       {
+         if (from_code == to_code)
+           printf "0x%02X 0x%04X\n", from_code, from_unicode;
+         else if (from_code < to_code)
+           printf "0x%02X-0x%02X 0x%04X\n", from_code, to_code, from_unicode;
+       }
+      else
+       {
+         if (from_code == to_code)
+           printf "0x%04X 0x%04X\n", from_code, from_unicode;
+         else if (from_code < to_code)
+           printf "0x%04X-0x%04X 0x%04X\n", from_code, to_code, from_unicode;
+       }
+      from_code = to_code = code;
+      from_unicode = to_unicode = unicode;
+    }
+}
+
+END {
+  if (to_code < 256)
+    {
+      if (from_code == to_code)
+       printf "0x%02X 0x%04X\n", from_code, from_unicode;
+      else
+       printf "0x%02X-0x%02X 0x%04X\n", from_code, to_code, from_unicode;
+    }
+  else
+    {
+      if (from_code == to_code)
+       printf "0x%04X 0x%04X\n", from_code, from_unicode;
+      else
+       printf "0x%04X-0x%04X 0x%04X\n", from_code, to_code, from_unicode;
+    }
+}
+
+# arch-tag: 7e6f57c3-8e62-4af3-8916-ca67bca3a0ce
diff --git a/admin/charsets/cp51932.awk b/admin/charsets/cp51932.awk
new file mode 100644 (file)
index 0000000..e30f4e2
--- /dev/null
@@ -0,0 +1,59 @@
+# cp51932.awk -- Generate a translation table for CP51932.
+# Copyright (C) 2004
+#   National Institute of Advanced Industrial Science and Technology (AIST)
+#   Registration Number H13PRO009
+#
+# This file is part of GNU Emacs.
+#
+# GNU Emacs 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 2, or (at your option)
+# any later version.
+#
+# GNU Emacs 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Comment:
+
+# Genereate a translation table for CP51932 (EUC-JP of MicroSoft Version).
+# It maps invalid JISX0208 code points used by CP51932 to Unicode.
+# 4th field of the input has these meanings:
+#   0: JISX0208 characters.
+#   1: NEC special characters.
+#   2: IBM extension characters.
+#   3: NEC selection of IBM extension characters.
+# Among them, 1 and 3 are the target characters.  2 should have
+# already been mapped to 1 or 3.
+
+BEGIN {
+  print ";;; cp51932.el -- translation table for CP51932. -*- no-byte-compile: t -*-";
+  print ";;; Automatically genrated from CP932-2BYTE.map";
+  print "(let ((map";
+  printf "       '(;JISEXT<->UNICODE";
+}
+
+/# [13]/ {
+  printf "\n    (#x%s . #x%s)", $5 ,substr($2, 3, 4);
+}
+
+END {
+  print ")))";
+  print "  (mapc #'(lambda (x)";
+  print "          (setcar x (decode-char 'japanese-jisx0208 (car x))))";
+  print "      map)";
+  print "  (define-translation-table 'cp51932-decode map)";
+  print "  (mapc #'(lambda (x)";
+  print "          (let ((tmp (car x)))";
+  print "            (setcar x (cdr x)) (setcdr x tmp)))";
+  print "      map)";
+  print "  (define-translation-table 'cp51932-encode map))";
+}
+
+# arch-tag: bbae996b-2d1c-4e85-bb55-ac30146d7504
diff --git a/admin/charsets/cp932.awk b/admin/charsets/cp932.awk
new file mode 100644 (file)
index 0000000..3c1da2d
--- /dev/null
@@ -0,0 +1,118 @@
+# cp932.awk -- Add sort keys and append user defined area to CP932-2BYTE.map.
+# Copyright (C) 2004
+#   National Institute of Advanced Industrial Science and Technology (AIST)
+#   Registration Number H13PRO009
+#
+# This file is part of GNU Emacs.
+#
+# GNU Emacs 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 2, or (at your option)
+# any later version.
+#
+# GNU Emacs 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Comment:
+# Add a sort key 0, 1, 2, or 3 at the tail of each line as a comment
+# to realize the round trip mapping to Unicode works as described in
+# this page:
+#      http://support.microsoft.com/default.aspx?scid=kb;EN-US;170559
+# Each sort key means as below:
+#   0: JISX0208 characters.
+#   1: NEC special characters.
+#   2: IBM extension characters.
+#   3: NEC selection of IBM extension characters.
+#   4: user defined area
+
+BEGIN {
+  tohex["A"] = 10;
+  tohex["B"] = 11;
+  tohex["C"] = 12;
+  tohex["D"] = 13;
+  tohex["E"] = 14;
+  tohex["F"] = 15;
+}
+
+function decode_hex(str) {
+  n = 0;
+  len = length(str);
+  for (i = 1; i <= len; i++)
+    {
+      c = substr(str, i, 1);
+      if (c >= "0" && c <= "9")
+       n = n * 16 + (c - "0");
+      else
+       n = n * 16 + tohex[c];
+    }
+  return n;
+}
+
+function sjis_to_jis_ku(code)
+{
+  s1 = int(code / 256);
+  s2 = code % 256;
+  if (s2 >= 159)               # s2 >= 0x9F
+    {
+      if (s1 >= 224)           # s1 >= 0xE0
+       j1 = s1 * 2 - 352;      # j1 = s1 * 2 - 0x160
+      else
+       j1 = s1 * 2 - 224;      # j1 = s1 * 2 - 0xE0
+      j2 = s2 - 126            # j2 = s2 - #x7E
+    }
+  else
+    {
+      if (s1 >= 224)
+       j1 = s1 * 2 - 353;      # j1 = s1 * 2 - 0x161
+      else
+       j1 = s1 * 2 - 225;      # j1 = s1 * 2 - 0xE1
+      if (s2 >= 127)           # s2 >= #x7F
+       j2 = s2 - 32;
+      else
+       j2 = s2 - 31;
+    }
+  return j1 - 32;
+}
+
+/^0x[89E]/ {
+  sjis=decode_hex(substr($1, 3, 4))
+  ku=sjis_to_jis_ku(sjis);
+  if (ku == 13)
+    printf "%s # 1 %02X%02X\n", $0, j1, j2;
+  else if (ku >= 89 && ku <= 92)
+    printf "%s # 3 %02X%02X\n", $0, j1, j2;
+  else
+    printf "%s # 0 %02X%02X\n", $0, j1, j2;
+  next;
+}
+
+/^0xF/ {
+  printf "%s # 2\n", $0;
+  next;
+}
+
+{
+  print;
+}
+
+END {
+  code = 57344;                        # 0xE000
+  for (i = 240; i < 250; i++)
+    {
+      for (j = 64; j <= 126; j++)
+       printf "0x%02X%02X 0x%04X # 4\n", i, j, code++;
+      for (j = 128; j <= 158; j++)
+       printf "0x%02X%02X 0x%04X # 4\n", i, j, code++;
+      for (; j <= 252; j++)
+       printf "0x%02X%02X 0x%04X # 4\n", i, j, code++;
+    }
+}
+
+# arch-tag: 998dc444-759d-43ef-87e3-2ab205011394
diff --git a/admin/charsets/eucjp-ms.awk b/admin/charsets/eucjp-ms.awk
new file mode 100644 (file)
index 0000000..051e388
--- /dev/null
@@ -0,0 +1,85 @@
+# eucjp-ms.awk -- Generate a translation table for eucJP-ms.
+# Copyright (C) 2004
+#   National Institute of Advanced Industrial Science and Technology (AIST)
+#   Registration Number H13PRO009
+#
+# This file is part of GNU Emacs.
+#
+# GNU Emacs 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 2, or (at your option)
+# any later version.
+#
+# GNU Emacs 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Comment:
+
+# eucJP-ms is one of eucJP-open encoding defined at this page:
+#  http://www.opengroup.or.jp/jvc/cde/appendix.html
+
+BEGIN {
+  print ";;; eucjp-ms.el -- translation table for eucJP-ms. -*- no-byte-compile: t -*-";
+  print ";;; Automatically genrated from eucJP-13th.txt, eucJP-udc.txt, eucJP-ibmext.txt";
+  print "(let ((map";
+  printf "       '(;JISEXT<->UNICODE";
+
+  tohex["A"] = 10;
+  tohex["B"] = 11;
+  tohex["C"] = 12;
+  tohex["D"] = 13;
+  tohex["E"] = 14;
+  tohex["F"] = 15;
+}
+
+function decode_hex(str) {
+  n = 0;
+  len = length(str);
+  for (i = 1; i <= len; i++)
+    {
+      c = substr(str, i, 1);
+      if (c >= "0" && c <= "9")
+       n = n * 16 + (c - "0");
+      else
+       n = n * 16 + tohex[c];
+    }
+  return n;
+}
+
+/0x8F/ {
+  code = decode_hex(substr($1, 5, 4));
+  code -= 32896;               # code -= 0x8080
+  printf "\n    (#x%04x #x%s)", code, substr($2, 3, 4);
+  next;
+}
+
+/0x[A-F]/ {
+  code = decode_hex(substr($1, 3, 4));
+  code -= 32896;               # code -= 0x8080
+  printf "\n    (#x%04x . #x%s)", code, substr($2, 3, 4);
+}
+
+END {
+  print ")))";
+  print "  (mapc #'(lambda (x)";
+  print "          (if (integerp (cdr x))";
+  print "              (setcar x (decode-char 'japanese-jisx0208 (car x)))";
+  print "            (setcar x (decode-char 'japanese-jisx0212 (car x)))";
+  print "            (setcdr x (cadr x))))";
+  print "      map)";
+  print "  (define-translation-table 'eucjp-ms-decode map)";
+  print "  (mapc #'(lambda (x)";
+  print "          (let ((tmp (car x)))";
+  print "            (setcar x (cdr x)) (setcdr x tmp)))";
+  print "      map)";
+  print "  (define-translation-table 'eucjp-ms-encode map))";
+}
+
+# arch-tag: d9cc7af7-2d6e-48cd-8eed-a6d25226de7c
diff --git a/admin/charsets/gb180302.awk b/admin/charsets/gb180302.awk
new file mode 100644 (file)
index 0000000..5eaf587
--- /dev/null
@@ -0,0 +1,82 @@
+BEGIN {
+  tohex["A"] = 10;
+  tohex["B"] = 11;
+  tohex["C"] = 12;
+  tohex["D"] = 13;
+  tohex["E"] = 14;
+  tohex["F"] = 15;
+  tohex["a"] = 10;
+  tohex["b"] = 11;
+  tohex["c"] = 12;
+  tohex["d"] = 13;
+  tohex["e"] = 14;
+  tohex["f"] = 15;
+  from_gb = 0;
+  to_gb = -1;
+  to_unicode = 0;
+  from_unicode = 0;
+}
+
+function decode_hex(str) {
+  n = 0;
+  len = length(str);
+  for (i = 1; i <= len; i++)
+    {
+      c = substr (str, i, 1);
+      if (c >= "0" && c <= "9")
+       n = n * 16 + (c - "0");
+      else
+       n = n * 16 + tohex[c];
+    }
+  return n;
+}
+
+function gb_to_index(gb) {
+  b0 = int(gb / 256);
+  b1 = gb % 256;
+  idx = (((b0 - 129)) * 191 + b1 - 64); 
+#  if (b1 >= 128)
+#    idx--;
+  return idx
+}
+
+function index_to_gb(idx) {
+  b0 = int(idx / 191) + 129;
+  b1 = (idx % 191) + 64;
+#  if (b1 >= 127)
+#    b1++;
+  return (b0 * 256 + b1);
+}
+
+/^\#/ {
+  print;
+  next;
+}
+
+{
+  gb = gb_to_index(decode_hex(substr($1, 3, 4)));
+  unicode = decode_hex(substr($2, 3, 4));
+  if ((gb == to_gb + 1) && (unicode == to_unicode + 1))
+    {
+      to_gb++;
+      to_unicode++;
+    }
+  else
+    {
+      if (from_gb == to_gb)
+       printf "0x%04X 0x%04X\n", index_to_gb(from_gb), from_unicode;
+      else if (from_gb < to_gb)
+       printf "0x%04X-0x%04X 0x%04X\n",
+         index_to_gb(from_gb), index_to_gb(to_gb), from_unicode;
+      from_gb = to_gb = gb;
+      from_unicode = to_unicode = unicode;
+    }
+}
+
+END {
+  if (from_gb <= to_gb)
+    printf "0x%04X-0x%04X 0x%04X\n",
+      index_to_gb(from_gb), index_to_gb(to_gb), from_unicode;
+}
+
+# arch-tag: d7dbad89-a512-41a4-8ee0-ba1a4505b8c1
diff --git a/admin/charsets/gb180304.awk b/admin/charsets/gb180304.awk
new file mode 100644 (file)
index 0000000..f3f50db
--- /dev/null
@@ -0,0 +1,104 @@
+BEGIN {
+  tohex["A"] = 10;
+  tohex["B"] = 11;
+  tohex["C"] = 12;
+  tohex["D"] = 13;
+  tohex["E"] = 14;
+  tohex["F"] = 15;
+  tohex["a"] = 10;
+  tohex["b"] = 11;
+  tohex["c"] = 12;
+  tohex["d"] = 13;
+  tohex["e"] = 14;
+  tohex["f"] = 15;
+}
+
+function decode_hex(str) {
+  n = 0;
+  len = length(str);
+  for (i = 1; i <= len; i++)
+    {
+      c = substr (str, i, 1);
+      if (c >= "0" && c <= "9")
+       n = n * 16 + (c - "0");
+      else
+       n = n * 16 + tohex[c];
+    }
+  return n;
+}
+
+function gb_to_index(gb) {
+  b0 = int(gb / 256);
+  b1 = gb % 256;
+  idx = (((b0 - 129)) * 191 + b1 - 64); 
+#  if (b1 >= 127)
+#    idx--;
+  return idx
+}
+
+function index_to_gb(idx) {
+  b3 = (idx % 10) + 48;
+  idx = int(idx / 10);
+  b2 = (idx % 126) + 129;
+  idx = int(idx / 126);
+  b1 = (idx % 10) + 48;
+  b0 = int(idx / 10) + 129;
+  return sprintf("%02X%02X%02X%02X", b0, b1, b2, b3);
+}
+
+/^\#/ {
+  print;
+  next;
+}
+
+/0x....-0x..../ {
+  gb_from = gb_to_index(decode_hex(substr($1, 3, 4)));
+  gb_to = gb_to_index(decode_hex(substr($1, 10, 4)));
+  unicode = decode_hex(substr($2, 3, 4));
+  while (gb_from <= gb_to)
+    {
+      table[unicode++] = 1;
+      gb_from++;
+    }
+  next;
+}
+
+{
+  gb = decode_hex(substr($1, 3, 4));
+  unicode = decode_hex(substr($2, 3, 4));
+  table[unicode] = 1;
+}
+
+END {
+  from_gb = -1;
+  to_gb = 0;
+  from_i = 0;
+  table[65536] = 1;
+  for (i = 128; i <= 65536; i++)
+    {
+      if (table[i] == 0)
+       {
+         if (i < 55296 || i >= 57344)
+           {
+             if (from_gb < 0)
+               {
+                 from_gb = to_gb;
+                 from_i = i;
+               }
+             to_gb++;
+           }
+       }
+      else if (from_gb >= 0)
+       {
+         if (from_gb + 1 == to_gb)
+           printf "0x%s\t\t0x%04X\n",
+             index_to_gb(from_gb), from_i;
+         else
+           printf "0x%s-0x%s\t0x%04X\n",
+             index_to_gb(from_gb), index_to_gb(to_gb - 1), from_i;
+         from_gb = -1;
+       }
+    }
+}
+
+# arch-tag: 8e5a22ae-610e-411f-ae17-d6e528b30d71
diff --git a/admin/charsets/kuten.awk b/admin/charsets/kuten.awk
new file mode 100644 (file)
index 0000000..9d43f2e
--- /dev/null
@@ -0,0 +1,7 @@
+/^[0-9]/ {
+  ku=substr($1, 3, 2) + 32;
+  ten=substr($1, 5, 2) + 32;
+  printf "0x%02X%02X %s\n", ku, ten, $2;
+}
+
+# arch-tag: dade6b45-b4c5-42ab-9d49-d6bf23a710b6
diff --git a/admin/charsets/mapconv b/admin/charsets/mapconv
new file mode 100755 (executable)
index 0000000..641afc0
--- /dev/null
@@ -0,0 +1,143 @@
+#!/bin/sh
+#
+# Copyright (C) 2003
+#   National Institute of Advanced Industrial Science and Technology (AIST)
+#   Registration Number H13PRO009
+#
+# This file is part of GNU Emacs.
+#
+# GNU Emacs 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 2, or (at your option)
+# any later version.
+#
+# GNU Emacs 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Comment:
+# Convert charset map of various format into this:
+#      0xXX 0xYYYY
+# where,
+#   XX is a code point of the charset in hexa-decimal,
+#   YYYY is the corresponding Unicode character code in hexa-decimal.
+# Arguments are:
+#   $1: source map file
+#   $2: address pattern for sed (optionally with substitution command)
+#   $3: format of source map file
+#      GLIBC-1 GLIBC-2 GLIBC-2-7 CZYBORRA IANA UNICODE YASUOKA MICROSOFT
+#   $4: awk script
+
+BASE=`basename $1`
+
+case "$3" in
+    GLIBC*)
+       SOURCE="glibc-2.3.2/localedata/charmaps/${BASE}";;
+    CZYBORRA)
+       SOURCE="http://czyborra.com/charsets/${BASE}";;
+    IANA)
+       SOURCE="http://www.iana.org/assignments/charset-reg/${BASE}";;
+    UNICODE)
+       SOURCE="http://www.unicode.org/Public/MAPPINGS/.../${BASE}";;
+    UNICODE2)
+       SOURCE="http://www.unicode.org/Public/MAPPINGS/.../${BASE}";;
+    YASUOKA)
+       SOURCE="http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/.../${BASE}";;
+    MICROSOFT)
+       SOURCE="http://www.microsoft.com/globaldev/reference/oem/${BASE}";;
+    KANJI-DATABASE)
+       SOURCE="data at http://sourceforge.net/cvs/?group_id=26261";;
+    *)
+       echo "Unknown file type: $3";
+       exit 1;;
+esac
+
+echo "# Generated from $SOURCE"
+
+if [ -n "$4" ] ; then
+    if [ -f "$4" ] ; then
+       AWKPROG="gawk -f $4"
+    else
+       echo "Awk program does not exist: $4"
+       exit 1
+    fi
+else
+    AWKPROG=cat
+fi
+
+if [ "$3" == "GLIBC-1" ] ; then
+    # Source format is:
+    #   <UYYYY>        /xXX
+    sed -n -e "$2 p" < $1 \
+       | sed -e 's,<U\([^>]*\)>[       ]*/x\(..\).*,0x\2 0x\1,' \
+       | sort | ${AWKPROG}
+elif [ "$3" == "GLIBC-2" ] ; then
+    # Source format is:
+    #   <UYYYY>        /xXX/xZZ
+    sed -n -e "$2 p" < $1 \
+       | sed -e 's,<U\([^>]*\)>[       ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \
+       | sort | ${AWKPROG}
+elif [ "$3" == "GLIBC-2-7" ] ; then
+    # Source format is:
+    #   <UYYYY>        /xXX/xZZ
+    # We must drop MSBs of XX and ZZ
+    sed -n -e "$2 p" < $1 \
+       | sed -e 's/xa/x2/g' -e 's/xb/x3/g' -e 's/xc/x4/g' \
+             -e 's/xd/x5/g' -e 's/xe/x6/g' -e 's/xf/x7/g' \
+             -e 's,<U\([^>]*\)>[       ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \
+       | tee temp \
+       | sort | ${AWKPROG}
+elif [ "$3" == "CZYBORRA" ] ; then
+    # Source format is:
+    #   =XX    U+YYYY
+    zcat $1 | sed -n -e "$2 p" \
+       | sed -e 's/=\(..\)[^U]*U+\([0-9A-F]*\).*/0x\1 0x\2/' \
+       | sort | ${AWKPROG}
+elif [ "$3" == "IANA" ] ; then
+    # Source format is:
+    #   0xXX   0xYYYY
+    sed -n -e "$2 p" < $1 \
+       | sed -e 's/\(0x[0-9A-Fa-f]*\)[^0]*\(0x[0-9A-Fa-f]*\).*/\1 \2/' \
+       | sort | ${AWKPROG}
+elif [ "$3" == "UNICODE" ] ; then
+    # Source format is:
+    #   YYYY   XX
+    sed -n -e "$2 p" < $1 \
+       | sed -e 's/\([0-9A-F]*\)[^0-9A-F]*\([0-9A-F]*\).*/0x\2 0x\1/' \
+       | sort | ${AWKPROG}
+elif [ "$3" == "UNICODE2" ] ; then
+    # Source format is:
+    #   0xXXXX 0xYYYY  # ...
+    sed -n -e "$2 p" < $1 \
+       | sed -e 's/\([0-9A-Fx]*\)[^0]*\([0-9A-Fx]*\).*/\1 \2/' \
+       | ${AWKPROG} | sort -n -k 4,4
+elif [ "$3" == "YASUOKA" ] ; then
+    # Source format is:
+    # YYYY     0-XXXX (XXXX is a Kuten code)
+    sed -n -e "$2 p" < $1 \
+       | sed -e 's/\([0-9A-F]*\)[^0]*0-\([0-9]*\).*/0x\2 0x\1/' \
+       | sort | ${AWKPROG}
+elif [ "$3" == "MICROSOFT" ] ; then
+    # Source format is:
+    # XX = U+YYYY
+    sed -n -e "$2 p" < $1 \
+       | sed -e 's/\([0-9A-F]*\).*U+\([0-9A-F]*\).*/0x\1 0x\2/' \
+       | sort | ${AWKPROG}
+elif [ "$3" == "KANJI-DATABASE" ] ; then
+    # Source format is:
+    # C?-XXXX U+YYYYY .....
+    sed -n -e "$2 p" < $1 \
+       | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \
+       | sort | ${AWKPROG}
+else
+    echo "Invalid arguments"
+    exit 1
+fi
+
+# arch-tag: c33acb47-7eb6-4872-b871-15e1447e8f0e
diff --git a/admin/charsets/mule-charsets.el b/admin/charsets/mule-charsets.el
new file mode 100644 (file)
index 0000000..158121a
--- /dev/null
@@ -0,0 +1,60 @@
+;; mule-charsets.el -- Generate Mule-orignal charset maps.
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs 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 General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+(if (or (< emacs-major-version 21)
+       (< emacs-minor-version 3)
+       (and (= emacs-minor-version 3)
+            (string< emacs-version "21.3.50")))
+    (error "Use Emacs of version 21.3.50 or later"))
+
+(defun func (start end)
+  (while (<= start end)
+    (let ((split (split-char start))
+         (unicode (encode-char start 'ucs)))
+      (if unicode
+         (if (nth 2 split)
+             (insert (format "0x%02X%02X 0x%04X\n" 
+                             (nth 1 split) (nth 2 split) unicode))
+           (insert (format "0x%02X 0x%04X\n" (nth 1 split) unicode)))))
+    (setq start (1+ start))))
+
+(defconst charset-alist
+  '(("MULE-ethiopic.map" . ethiopic)
+    ("MULE-ipa.map" . ipa)
+    ("MULE-is13194.map" . indian-is13194)
+    ("MULE-sisheng.map" . chinese-sisheng)
+    ("MULE-tibetan.map" . tibetan)
+    ("MULE-lviscii.map" . vietnamese-viscii-lower)
+    ("MULE-uviscii.map" . vietnamese-viscii-upper)))
+
+(setq file (car command-line-args-left))
+(or (stringp file)
+    (error "Invalid file name: %s" file))
+(setq charset (cdr (assoc file charset-alist)))
+(or charset
+    (error "Invalid charset: %s" (car command-line-args-left)))
+
+(with-temp-buffer
+  (map-charset-chars 'func charset)
+  (write-file file))
+
+;;; arch-tag: 515989d7-2e2d-41cc-9163-05ad472fede4
index a15788f5714f307fc843605134de206aea23301c..e04201a7b7b72ceb867172f829736c57ec5a5ce4 100644 (file)
 
     % unzip some.zip
 
+  The precompiled binaries can be unpacked using unzip.exe from info-zip.org
+  if you do not already have other tools to do this.
+
+    % unzip some.zip
+
   Once you have unpacked a precompiled distribution of Emacs, it should
   have the following subdirectories:
 
diff --git a/admin/unidata/.arch-inventory b/admin/unidata/.arch-inventory
new file mode 100644 (file)
index 0000000..7f0134f
--- /dev/null
@@ -0,0 +1,8 @@
+# Unlike most emacs dirs, admin/unidata has a simple non-autoconf-generated
+# makefile
+source ^(Makefile)$
+
+# Generated at compile time
+precious ^unidata\.txt$
+
+# arch-tag: 7640ff84-9e72-45e6-a7c7-b7b307b73959
diff --git a/admin/unidata/.gitignore b/admin/unidata/.gitignore
new file mode 100644 (file)
index 0000000..879bf5c
--- /dev/null
@@ -0,0 +1,2 @@
+charprop.el
+uni-*.el
diff --git a/admin/unidata/Makefile b/admin/unidata/Makefile
new file mode 100644 (file)
index 0000000..220477b
--- /dev/null
@@ -0,0 +1,51 @@
+# Makefile -- Makefile to generate character property tables.
+# Copyright (C) 2005
+#   National Institute of Advanced Industrial Science and Technology (AIST)
+#   Registration Number H13PRO009
+#
+# This file is part of GNU Emacs.
+
+# GNU Emacs 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 2, or (at your option)
+# any later version.
+
+# GNU Emacs 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 General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+EMACS = ../../src/emacs
+DSTDIR = ../../lisp/international
+RUNEMACS = ${EMACS} -Q --multibyte -batch
+
+all: ${DSTDIR}/charprop.el
+
+.el.elc:
+       ${RUNEMACS} -batch -f batch-byte-compile $<
+
+unidata.txt: UnicodeData.txt
+       sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < $< > $@
+
+${DSTDIR}/charprop.el: unidata-gen.elc unidata.txt
+       ELC=`/bin/pwd`/unidata-gen.elc; \
+       DATA=`/bin/pwd`/unidata.txt; \
+       cd ${DSTDIR}; \
+       ${RUNEMACS} -batch --load $${ELC} -f unidata-gen-files $${DATA}
+
+install: charprop.el
+       cp charprop.el ${DSTDIR}
+       cp `sed -n 's/^;; FILE: //p' < charprop.el` ${DSTDIR}
+
+clean:
+       if test -f charprop.el; then \
+         rm -f `sed -n 's/^;; FILE: //p' < charprop.el`; \
+       fi
+       rm -f charprop.el unidata-gen.elc unidata.txt
+
+# arch-tag: 3f576384-a8e7-4ec5-9d2e-9190c71683b4
diff --git a/admin/unidata/README b/admin/unidata/README
new file mode 100644 (file)
index 0000000..d89f00a
--- /dev/null
@@ -0,0 +1,4 @@
+The file `UnicodeData.txt' in this directory is a copy of
+<http://www.unicode.org/Public/UNIDATA/UnicodeData.txt> on 2006.5.23,
+and is a part of the Unicode Character Database governed by the "UCD
+Terms of Use" shown in the file `copyright.html'.
diff --git a/admin/unidata/UnicodeData.txt b/admin/unidata/UnicodeData.txt
new file mode 100644 (file)
index 0000000..299f0e5
--- /dev/null
@@ -0,0 +1,17720 @@
+0000;<control>;Cc;0;BN;;;;;N;NULL;;;;
+0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;;
+0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;;
+0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;;
+0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;;
+0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;;
+0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;;
+0007;<control>;Cc;0;BN;;;;;N;BELL;;;;
+0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;;
+0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULATION;;;;
+000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;;
+000B;<control>;Cc;0;S;;;;;N;LINE TABULATION;;;;
+000C;<control>;Cc;0;WS;;;;;N;FORM FEED (FF);;;;
+000D;<control>;Cc;0;B;;;;;N;CARRIAGE RETURN (CR);;;;
+000E;<control>;Cc;0;BN;;;;;N;SHIFT OUT;;;;
+000F;<control>;Cc;0;BN;;;;;N;SHIFT IN;;;;
+0010;<control>;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;;
+0011;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;;
+0012;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;;
+0013;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;;
+0014;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;;
+0015;<control>;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;;
+0016;<control>;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;;
+0017;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;;
+0018;<control>;Cc;0;BN;;;;;N;CANCEL;;;;
+0019;<control>;Cc;0;BN;;;;;N;END OF MEDIUM;;;;
+001A;<control>;Cc;0;BN;;;;;N;SUBSTITUTE;;;;
+001B;<control>;Cc;0;BN;;;;;N;ESCAPE;;;;
+001C;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR FOUR;;;;
+001D;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR THREE;;;;
+001E;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR TWO;;;;
+001F;<control>;Cc;0;S;;;;;N;INFORMATION SEPARATOR ONE;;;;
+0020;SPACE;Zs;0;WS;;;;;N;;;;;
+0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;;
+0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;;
+0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;;
+0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+0026;AMPERSAND;Po;0;ON;;;;;N;;;;;
+0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;;
+0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;;
+0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;;
+002A;ASTERISK;Po;0;ON;;;;;N;;;;;
+002B;PLUS SIGN;Sm;0;ES;;;;;N;;;;;
+002C;COMMA;Po;0;CS;;;;;N;;;;;
+002D;HYPHEN-MINUS;Pd;0;ES;;;;;N;;;;;
+002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;;
+002F;SOLIDUS;Po;0;CS;;;;;N;SLASH;;;;
+0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;;
+0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;;
+0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;;
+0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;;
+0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;;
+0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;;
+0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;;
+0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;
+0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;;
+0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;;
+003A;COLON;Po;0;CS;;;;;N;;;;;
+003B;SEMICOLON;Po;0;ON;;;;;N;;;;;
+003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
+003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003F;QUESTION MARK;Po;0;ON;;;;;N;;;;;
+0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;;
+0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061;
+0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062;
+0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063;
+0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064;
+0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065;
+0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066;
+0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067;
+0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068;
+0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069;
+004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A;
+004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B;
+004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C;
+004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D;
+004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E;
+004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F;
+0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070;
+0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071;
+0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072;
+0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073;
+0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074;
+0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075;
+0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076;
+0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077;
+0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078;
+0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079;
+005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A;
+005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;;
+005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;;
+005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;;
+005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;;
+005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;;
+0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;;
+0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041
+0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042
+0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043
+0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044
+0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045
+0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046
+0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047
+0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048
+0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049
+006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A
+006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B
+006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C
+006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D
+006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E
+006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F
+0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050
+0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051
+0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052
+0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053
+0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054
+0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055
+0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056
+0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057
+0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058
+0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059
+007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A
+007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;;
+007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;;
+007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;;
+007E;TILDE;Sm;0;ON;;;;;N;;;;;
+007F;<control>;Cc;0;BN;;;;;N;DELETE;;;;
+0080;<control>;Cc;0;BN;;;;;N;;;;;
+0081;<control>;Cc;0;BN;;;;;N;;;;;
+0082;<control>;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;;
+0083;<control>;Cc;0;BN;;;;;N;NO BREAK HERE;;;;
+0084;<control>;Cc;0;BN;;;;;N;;;;;
+0085;<control>;Cc;0;B;;;;;N;NEXT LINE (NEL);;;;
+0086;<control>;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;;
+0087;<control>;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;;
+0088;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;;
+0089;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;;
+008A;<control>;Cc;0;BN;;;;;N;LINE TABULATION SET;;;;
+008B;<control>;Cc;0;BN;;;;;N;PARTIAL LINE FORWARD;;;;
+008C;<control>;Cc;0;BN;;;;;N;PARTIAL LINE BACKWARD;;;;
+008D;<control>;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;;
+008E;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;;
+008F;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;;
+0090;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;;
+0091;<control>;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;;
+0092;<control>;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;;
+0093;<control>;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;;
+0094;<control>;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;;
+0095;<control>;Cc;0;BN;;;;;N;MESSAGE WAITING;;;;
+0096;<control>;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;;
+0097;<control>;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;;
+0098;<control>;Cc;0;BN;;;;;N;START OF STRING;;;;
+0099;<control>;Cc;0;BN;;;;;N;;;;;
+009A;<control>;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;;
+009B;<control>;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;;
+009C;<control>;Cc;0;BN;;;;;N;STRING TERMINATOR;;;;
+009D;<control>;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;;
+009E;<control>;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;;
+009F;<control>;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;;
+00A0;NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;NON-BREAKING SPACE;;;;
+00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;;
+00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;;
+00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;;
+00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;;
+00A7;SECTION SIGN;So;0;ON;;;;;N;;;;;
+00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;
+00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;;
+00AA;FEMININE ORDINAL INDICATOR;Ll;0;L;<super> 0061;;;;N;;;;;
+00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;*;;;
+00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;;
+00AD;SOFT HYPHEN;Cf;0;BN;;;;;N;;;;;
+00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;;
+00AF;MACRON;Sk;0;ON;<compat> 0020 0304;;;;N;SPACING MACRON;;;;
+00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;;
+00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;;
+00B2;SUPERSCRIPT TWO;No;0;EN;<super> 0032;;2;2;N;SUPERSCRIPT DIGIT TWO;;;;
+00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;;3;3;N;SUPERSCRIPT DIGIT THREE;;;;
+00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;;
+00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C
+00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;;
+00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;;
+00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;;
+00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L;<super> 006F;;;;N;;;;;
+00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;*;;;
+00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;;
+00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;;
+00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON;<fraction> 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;;
+00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;;
+00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0;
+00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1;
+00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2;
+00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3;
+00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4;
+00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5;
+00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;ash *;;00E6;
+00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7;
+00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8;
+00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9;
+00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA;
+00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB;
+00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC;
+00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED;
+00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE;
+00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF;
+00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;Icelandic;;00F0;
+00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1;
+00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2;
+00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3;
+00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4;
+00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5;
+00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6;
+00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;;
+00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8;
+00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9;
+00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA;
+00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB;
+00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC;
+00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD;
+00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;Icelandic;;00FE;
+00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;German;;;
+00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0
+00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1
+00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2
+00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3
+00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4
+00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5
+00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;ash *;00C6;;00C6
+00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7
+00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8
+00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9
+00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA
+00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB
+00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC
+00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD
+00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE
+00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF
+00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;Icelandic;00D0;;00D0
+00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1
+00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2
+00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3
+00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4
+00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5
+00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6
+00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8
+00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9
+00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA
+00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB
+00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC
+00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD
+00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;Icelandic;00DE;;00DE
+00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178
+0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101;
+0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100
+0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103;
+0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102
+0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105;
+0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104
+0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107;
+0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106
+0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109;
+0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108
+010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B;
+010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A
+010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D;
+010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C
+010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F;
+010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E
+0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111;
+0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110
+0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113;
+0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112
+0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115;
+0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114
+0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117;
+0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116
+0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119;
+0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118
+011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B;
+011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A
+011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D;
+011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C
+011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F;
+011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E
+0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121;
+0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120
+0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123;
+0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122
+0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125;
+0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124
+0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127;
+0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126
+0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129;
+0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128
+012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B;
+012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A
+012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D;
+012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C
+012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F;
+012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E
+0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069;
+0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049
+0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L;<compat> 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133;
+0133;LATIN SMALL LIGATURE IJ;Ll;0;L;<compat> 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132
+0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135;
+0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134
+0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137;
+0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136
+0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;Greenlandic;;;
+0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A;
+013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139
+013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C;
+013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B
+013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E;
+013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D
+013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L;<compat> 004C 00B7;;;;N;;;;0140;
+0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L;<compat> 006C 00B7;;;;N;;;013F;;013F
+0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142;
+0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141
+0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144;
+0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143
+0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146;
+0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145
+0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148;
+0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147
+0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L;<compat> 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;;
+014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;Sami;;014B;
+014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;Sami;014A;;014A
+014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D;
+014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C
+014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F;
+014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E
+0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151;
+0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150
+0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153;
+0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152
+0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155;
+0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154
+0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157;
+0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156
+0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159;
+0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158
+015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B;
+015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A
+015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D;
+015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C
+015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;*;;015F;
+015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;*;015E;;015E
+0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161;
+0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160
+0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;*;;0163;
+0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;*;0162;;0162
+0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165;
+0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164
+0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167;
+0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166
+0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169;
+0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168
+016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B;
+016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A
+016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D;
+016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C
+016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F;
+016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E
+0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171;
+0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170
+0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173;
+0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172
+0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175;
+0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174
+0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177;
+0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176
+0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF;
+0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A;
+017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179
+017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C;
+017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B
+017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E;
+017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D
+017F;LATIN SMALL LETTER LONG S;Ll;0;L;<compat> 0073;;;;N;;;0053;;0053
+0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;0243;;0243
+0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253;
+0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183;
+0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182
+0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185;
+0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184
+0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254;
+0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188;
+0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187
+0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;*;;0256;
+018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257;
+018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C;
+018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B
+018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;;
+018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD;
+018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259;
+0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B;
+0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192;
+0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191
+0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260;
+0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263;
+0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;hwair;01F6;;01F6
+0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269;
+0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268;
+0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199;
+0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198
+019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;023D;;023D
+019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;;
+019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;
+019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;
+019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220
+019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;*;;0275;
+01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1;
+01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0
+01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;gha;;01A3;
+01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;gha;01A2;;01A2
+01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5;
+01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4
+01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;*;;0280;
+01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8;
+01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7
+01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283;
+01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;;
+01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;;
+01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD;
+01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC
+01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288;
+01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0;
+01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF
+01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A;
+01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B;
+01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4;
+01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3
+01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6;
+01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5
+01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292;
+01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9;
+01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8
+01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;;
+01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;;
+01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD;
+01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC
+01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;;
+01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7
+01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;;
+01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;;
+01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;;
+01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;;
+01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L;<compat> 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5
+01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L;<compat> 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;01C5
+01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L;<compat> 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5
+01C7;LATIN CAPITAL LETTER LJ;Lu;0;L;<compat> 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8
+01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L;<compat> 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9;01C8
+01C9;LATIN SMALL LETTER LJ;Ll;0;L;<compat> 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8
+01CA;LATIN CAPITAL LETTER NJ;Lu;0;L;<compat> 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB
+01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L;<compat> 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC;01CB
+01CC;LATIN SMALL LETTER NJ;Ll;0;L;<compat> 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB
+01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE;
+01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD
+01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0;
+01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF
+01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2;
+01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1
+01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4;
+01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3
+01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6;
+01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5
+01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8;
+01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7
+01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA;
+01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9
+01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC;
+01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB
+01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E
+01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF;
+01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE
+01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1;
+01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0
+01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;ash *;;01E3;
+01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;ash *;01E2;;01E2
+01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5;
+01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4
+01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7;
+01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6
+01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9;
+01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8
+01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB;
+01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA
+01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED;
+01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC
+01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF;
+01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE
+01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;;
+01F1;LATIN CAPITAL LETTER DZ;Lu;0;L;<compat> 0044 005A;;;;N;;;;01F3;01F2
+01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L;<compat> 0044 007A;;;;N;;;01F1;01F3;01F2
+01F3;LATIN SMALL LETTER DZ;Ll;0;L;<compat> 0064 007A;;;;N;;;01F1;;01F2
+01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5;
+01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4
+01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195;
+01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF;
+01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9;
+01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8
+01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB;
+01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA
+01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;ash *;;01FD;
+01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;ash *;01FC;;01FC
+01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF;
+01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE
+0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201;
+0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200
+0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203;
+0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202
+0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205;
+0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204
+0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207;
+0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206
+0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209;
+0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208
+020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B;
+020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A
+020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D;
+020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C
+020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F;
+020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E
+0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211;
+0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210
+0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213;
+0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212
+0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215;
+0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214
+0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217;
+0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216
+0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;*;;0219;
+0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;*;0218;;0218
+021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;*;;021B;
+021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;*;021A;;021A
+021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D;
+021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C
+021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F;
+021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E
+0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E;
+0221;LATIN SMALL LETTER D WITH CURL;Ll;0;L;;;;;N;;;;;
+0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223;
+0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222
+0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225;
+0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224
+0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227;
+0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226
+0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229;
+0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228
+022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B;
+022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A
+022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D;
+022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C
+022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F;
+022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E
+0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231;
+0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230
+0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233;
+0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232
+0234;LATIN SMALL LETTER L WITH CURL;Ll;0;L;;;;;N;;;;;
+0235;LATIN SMALL LETTER N WITH CURL;Ll;0;L;;;;;N;;;;;
+0236;LATIN SMALL LETTER T WITH CURL;Ll;0;L;;;;;N;;;;;
+0237;LATIN SMALL LETTER DOTLESS J;Ll;0;L;;;;;N;;;;;
+0238;LATIN SMALL LETTER DB DIGRAPH;Ll;0;L;;;;;N;;;;;
+0239;LATIN SMALL LETTER QP DIGRAPH;Ll;0;L;;;;;N;;;;;
+023A;LATIN CAPITAL LETTER A WITH STROKE;Lu;0;L;;;;;N;;;;2C65;
+023B;LATIN CAPITAL LETTER C WITH STROKE;Lu;0;L;;;;;N;;;;023C;
+023C;LATIN SMALL LETTER C WITH STROKE;Ll;0;L;;;;;N;;;023B;;023B
+023D;LATIN CAPITAL LETTER L WITH BAR;Lu;0;L;;;;;N;;;;019A;
+023E;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;2C66;
+023F;LATIN SMALL LETTER S WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;
+0240;LATIN SMALL LETTER Z WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;
+0241;LATIN CAPITAL LETTER GLOTTAL STOP;Lu;0;L;;;;;N;;;;0242;
+0242;LATIN SMALL LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;0241;;0241
+0243;LATIN CAPITAL LETTER B WITH STROKE;Lu;0;L;;;;;N;;;;0180;
+0244;LATIN CAPITAL LETTER U BAR;Lu;0;L;;;;;N;;;;0289;
+0245;LATIN CAPITAL LETTER TURNED V;Lu;0;L;;;;;N;;;;028C;
+0246;LATIN CAPITAL LETTER E WITH STROKE;Lu;0;L;;;;;N;;;;0247;
+0247;LATIN SMALL LETTER E WITH STROKE;Ll;0;L;;;;;N;;;0246;;0246
+0248;LATIN CAPITAL LETTER J WITH STROKE;Lu;0;L;;;;;N;;;;0249;
+0249;LATIN SMALL LETTER J WITH STROKE;Ll;0;L;;;;;N;;;0248;;0248
+024A;LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL;Lu;0;L;;;;;N;;;;024B;
+024B;LATIN SMALL LETTER Q WITH HOOK TAIL;Ll;0;L;;;;;N;;;024A;;024A
+024C;LATIN CAPITAL LETTER R WITH STROKE;Lu;0;L;;;;;N;;;;024D;
+024D;LATIN SMALL LETTER R WITH STROKE;Ll;0;L;;;;;N;;;024C;;024C
+024E;LATIN CAPITAL LETTER Y WITH STROKE;Lu;0;L;;;;;N;;;;024F;
+024F;LATIN SMALL LETTER Y WITH STROKE;Ll;0;L;;;;;N;;;024E;;024E
+0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;;;
+0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;;;
+0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;;;
+0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181
+0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186
+0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;;
+0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189
+0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A
+0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;;
+0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F
+025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;;
+025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190
+025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;;
+025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;;
+025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;;
+025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;;
+0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193
+0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;;
+0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
+0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
+0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
+0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;;;
+0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;;
+0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
+0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197
+0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
+026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;
+026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62
+026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;
+026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;
+026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;
+026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C
+0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;;;
+0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D
+0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;;
+0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;;
+0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F
+0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;;
+0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;;
+0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;;
+0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;;
+027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;;
+027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;2C64;;2C64
+027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;;
+027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;;
+0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;*;01A6;;01A6
+0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;;
+0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;;
+0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9
+0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;
+0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;
+0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;
+0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;
+0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE
+0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244
+028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1
+028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2
+028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;0245;;0245
+028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;;
+028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;;
+028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;;
+0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;;
+0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;;
+0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7
+0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;
+0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;
+0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
+0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;
+0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;;
+0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;;
+029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;;
+029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;;
+029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;;
+029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;;
+029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;;
+029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;;
+02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;;
+02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;;
+02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;;
+02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;;
+02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;;
+02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;;
+02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;;
+02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;;
+02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;;
+02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02AE;LATIN SMALL LETTER TURNED H WITH FISHHOOK;Ll;0;L;;;;;N;;;;;
+02AF;LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL;Ll;0;L;;;;;N;;;;;
+02B0;MODIFIER LETTER SMALL H;Lm;0;L;<super> 0068;;;;N;;;;;
+02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L;<super> 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;;
+02B2;MODIFIER LETTER SMALL J;Lm;0;L;<super> 006A;;;;N;;;;;
+02B3;MODIFIER LETTER SMALL R;Lm;0;L;<super> 0072;;;;N;;;;;
+02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L;<super> 0279;;;;N;;;;;
+02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L;<super> 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;;
+02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L;<super> 0281;;;;N;;;;;
+02B7;MODIFIER LETTER SMALL W;Lm;0;L;<super> 0077;;;;N;;;;;
+02B8;MODIFIER LETTER SMALL Y;Lm;0;L;<super> 0079;;;;N;;;;;
+02B9;MODIFIER LETTER PRIME;Lm;0;ON;;;;;N;;;;;
+02BA;MODIFIER LETTER DOUBLE PRIME;Lm;0;ON;;;;;N;;;;;
+02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;;
+02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;;
+02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;;
+02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;;
+02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;;
+02C7;CARON;Lm;0;ON;;;;;N;MODIFIER LETTER HACEK;Mandarin Chinese third tone;;;
+02C8;MODIFIER LETTER VERTICAL LINE;Lm;0;ON;;;;;N;;;;;
+02C9;MODIFIER LETTER MACRON;Lm;0;ON;;;;;N;;Mandarin Chinese first tone;;;
+02CA;MODIFIER LETTER ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER ACUTE;Mandarin Chinese second tone;;;
+02CB;MODIFIER LETTER GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER GRAVE;Mandarin Chinese fourth tone;;;
+02CC;MODIFIER LETTER LOW VERTICAL LINE;Lm;0;ON;;;;;N;;;;;
+02CD;MODIFIER LETTER LOW MACRON;Lm;0;ON;;;;;N;;;;;
+02CE;MODIFIER LETTER LOW GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;;
+02CF;MODIFIER LETTER LOW ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;;
+02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;;
+02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;;
+02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;;
+02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;;
+02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D8;BREVE;Sk;0;ON;<compat> 0020 0306;;;;N;SPACING BREVE;;;;
+02D9;DOT ABOVE;Sk;0;ON;<compat> 0020 0307;;;;N;SPACING DOT ABOVE;Mandarin Chinese light tone;;;
+02DA;RING ABOVE;Sk;0;ON;<compat> 0020 030A;;;;N;SPACING RING ABOVE;;;;
+02DB;OGONEK;Sk;0;ON;<compat> 0020 0328;;;;N;SPACING OGONEK;;;;
+02DC;SMALL TILDE;Sk;0;ON;<compat> 0020 0303;;;;N;SPACING TILDE;;;;
+02DD;DOUBLE ACUTE ACCENT;Sk;0;ON;<compat> 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;;
+02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;;
+02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;;
+02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L;<super> 0263;;;;N;;;;;
+02E1;MODIFIER LETTER SMALL L;Lm;0;L;<super> 006C;;;;N;;;;;
+02E2;MODIFIER LETTER SMALL S;Lm;0;L;<super> 0073;;;;N;;;;;
+02E3;MODIFIER LETTER SMALL X;Lm;0;L;<super> 0078;;;;N;;;;;
+02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L;<super> 0295;;;;N;;;;;
+02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EC;MODIFIER LETTER VOICING;Sk;0;ON;;;;;N;;;;;
+02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;;
+02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;;
+02EF;MODIFIER LETTER LOW DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F0;MODIFIER LETTER LOW UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F1;MODIFIER LETTER LOW LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F2;MODIFIER LETTER LOW RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F3;MODIFIER LETTER LOW RING;Sk;0;ON;;;;;N;;;;;
+02F4;MODIFIER LETTER MIDDLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;
+02F5;MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;
+02F6;MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT;Sk;0;ON;;;;;N;;;;;
+02F7;MODIFIER LETTER LOW TILDE;Sk;0;ON;;;;;N;;;;;
+02F8;MODIFIER LETTER RAISED COLON;Sk;0;ON;;;;;N;;;;;
+02F9;MODIFIER LETTER BEGIN HIGH TONE;Sk;0;ON;;;;;N;;;;;
+02FA;MODIFIER LETTER END HIGH TONE;Sk;0;ON;;;;;N;;;;;
+02FB;MODIFIER LETTER BEGIN LOW TONE;Sk;0;ON;;;;;N;;;;;
+02FC;MODIFIER LETTER END LOW TONE;Sk;0;ON;;;;;N;;;;;
+02FD;MODIFIER LETTER SHELF;Sk;0;ON;;;;;N;;;;;
+02FE;MODIFIER LETTER OPEN SHELF;Sk;0;ON;;;;;N;;;;;
+02FF;MODIFIER LETTER LOW LEFT ARROW;Sk;0;ON;;;;;N;;;;;
+0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;Varia;;;
+0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia, Tonos;;;
+0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;;
+0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;;
+0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;;
+0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;;
+0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;Vrachy;;;
+0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;;
+0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;Dialytika;;;
+0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;;
+030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;;
+030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;;
+030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;;
+030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;;
+030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;;
+030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;;
+0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;;
+0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;;
+0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;;
+0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;Psili;;;
+0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;Dasia;;;
+0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;;
+0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;;
+0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;;
+0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;;
+0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;;
+031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;;
+031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;;
+031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;;
+031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;;
+031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;;
+031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;;
+0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;;
+0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;;
+0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;;
+0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;;
+0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;;
+0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;;
+0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;;
+0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;;
+0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;;
+0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;;
+032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;;
+032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;;
+032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;;
+032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;;
+032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;;
+032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;;
+0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;;
+0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;;
+0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;;
+0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;;
+0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;;
+0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;;
+0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;;
+0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;;
+0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;;
+0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;;
+033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;;
+033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;;
+033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;;
+033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;;
+033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;;
+033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;;
+0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;Vietnamese;;;
+0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;Vietnamese;;;
+0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;;
+0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;;
+0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;;
+0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399
+0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;;
+0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;;
+034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;;
+034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;;
+034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;;
+034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;;
+0350;COMBINING RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+0351;COMBINING LEFT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;
+0352;COMBINING FERMATA;Mn;230;NSM;;;;;N;;;;;
+0353;COMBINING X BELOW;Mn;220;NSM;;;;;N;;;;;
+0354;COMBINING LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+0355;COMBINING RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+0356;COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+0357;COMBINING RIGHT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;
+0358;COMBINING DOT ABOVE RIGHT;Mn;232;NSM;;;;;N;;;;;
+0359;COMBINING ASTERISK BELOW;Mn;220;NSM;;;;;N;;;;;
+035A;COMBINING DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;
+035B;COMBINING ZIGZAG ABOVE;Mn;230;NSM;;;;;N;;;;;
+035C;COMBINING DOUBLE BREVE BELOW;Mn;233;NSM;;;;;N;;;;;
+035D;COMBINING DOUBLE BREVE;Mn;234;NSM;;;;;N;;;;;
+035E;COMBINING DOUBLE MACRON;Mn;234;NSM;;;;;N;;;;;
+035F;COMBINING DOUBLE MACRON BELOW;Mn;233;NSM;;;;;N;;;;;
+0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;;
+0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;;
+0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;;
+0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;;
+0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;;
+0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;;
+0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;;
+0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;;
+0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;;
+0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;;
+036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;;
+036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;;
+036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;;
+036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;;
+036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;;
+036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;;
+0374;GREEK NUMERAL SIGN;Sk;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;;
+0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;;
+037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;;
+037B;GREEK SMALL REVERSED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FD;;03FD
+037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE
+037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF
+037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;Erotimatiko;;;
+0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;
+0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;
+0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC;
+0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;;
+0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD;
+0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE;
+038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF;
+038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC;
+038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD;
+038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE;
+0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;;
+0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1;
+0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2;
+0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3;
+0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4;
+0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5;
+0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6;
+0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7;
+0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;
+0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9;
+039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA;
+039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB;
+039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC;
+039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD;
+039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE;
+039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF;
+03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0;
+03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1;
+03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3;
+03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4;
+03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5;
+03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6;
+03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7;
+03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8;
+03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9;
+03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA;
+03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB;
+03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386
+03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388
+03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389
+03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A
+03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;;
+03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391
+03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392
+03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393
+03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394
+03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395
+03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396
+03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397
+03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398
+03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399
+03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A
+03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B
+03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C
+03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D
+03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E
+03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F
+03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0
+03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1
+03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4
+03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5
+03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6
+03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7
+03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8
+03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9
+03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA
+03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB
+03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C
+03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E
+03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F
+03D0;GREEK BETA SYMBOL;Ll;0;L;<compat> 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392
+03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398
+03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L;<compat> 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;;
+03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;;
+03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;;
+03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6
+03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0
+03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;;;
+03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;*;;03D9;
+03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;*;03D8;;03D8
+03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB;
+03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA
+03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD;
+03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC
+03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF;
+03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE
+03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1;
+03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0
+03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3;
+03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2
+03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5;
+03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4
+03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7;
+03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6
+03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9;
+03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8
+03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB;
+03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA
+03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED;
+03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC
+03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF;
+03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE
+03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
+03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
+03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9
+03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
+03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;
+03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L;<compat> 03B5;;;;N;;;0395;;0395
+03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;;
+03F7;GREEK CAPITAL LETTER SHO;Lu;0;L;;;;;N;;;;03F8;
+03F8;GREEK SMALL LETTER SHO;Ll;0;L;;;;;N;;;03F7;;03F7
+03F9;GREEK CAPITAL LUNATE SIGMA SYMBOL;Lu;0;L;<compat> 03A3;;;;N;;;;03F2;
+03FA;GREEK CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;03FB;
+03FB;GREEK SMALL LETTER SAN;Ll;0;L;;;;;N;;;03FA;;03FA
+03FC;GREEK RHO WITH STROKE SYMBOL;Ll;0;L;;;;;N;;;;;
+03FD;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037B;
+03FE;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037C;
+03FF;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037D;
+0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;
+0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;
+0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452;
+0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453;
+0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454;
+0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455;
+0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456;
+0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;Ukrainian;;0457;
+0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458;
+0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459;
+040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A;
+040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;Serbocroatian;;045B;
+040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C;
+040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D;
+040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;Byelorussian;;045E;
+040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F;
+0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430;
+0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431;
+0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432;
+0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433;
+0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434;
+0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435;
+0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436;
+0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437;
+0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438;
+0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439;
+041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A;
+041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B;
+041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C;
+041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D;
+041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E;
+041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F;
+0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440;
+0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441;
+0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442;
+0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443;
+0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444;
+0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445;
+0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446;
+0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447;
+0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448;
+0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449;
+042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A;
+042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B;
+042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C;
+042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D;
+042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E;
+042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F;
+0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410
+0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411
+0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412
+0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413
+0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414
+0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415
+0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416
+0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417
+0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418
+0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419
+043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A
+043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B
+043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C
+043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D
+043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E
+043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F
+0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420
+0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421
+0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422
+0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423
+0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424
+0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425
+0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426
+0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427
+0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428
+0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429
+044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A
+044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B
+044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C
+044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D
+044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E
+044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F
+0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400
+0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401
+0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;Serbocroatian;0402;;0402
+0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403
+0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404
+0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405
+0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406
+0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;Ukrainian;0407;;0407
+0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408
+0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409
+045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A
+045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;Serbocroatian;040B;;040B
+045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C
+045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D
+045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;Byelorussian;040E;;040E
+045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F
+0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461;
+0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460
+0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463;
+0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462
+0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465;
+0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464
+0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467;
+0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466
+0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469;
+0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468
+046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B;
+046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A
+046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D;
+046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C
+046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F;
+046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E
+0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471;
+0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470
+0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473;
+0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472
+0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475;
+0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474
+0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477;
+0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476
+0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479;
+0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478
+047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B;
+047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A
+047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D;
+047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C
+047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F;
+047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E
+0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481;
+0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480
+0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;;
+0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;;
+0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;;
+0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;;
+0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;;
+0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;;
+0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
+048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B;
+048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A
+048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D;
+048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C
+048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F;
+048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E
+0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491;
+0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490
+0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493;
+0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492
+0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495;
+0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494
+0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497;
+0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496
+0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499;
+0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498
+049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B;
+049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A
+049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D;
+049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C
+049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F;
+049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E
+04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1;
+04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0
+04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3;
+04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2
+04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5;
+04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4
+04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;Abkhasian;;04A7;
+04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;Abkhasian;04A6;;04A6
+04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9;
+04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8
+04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB;
+04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA
+04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD;
+04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC
+04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF;
+04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE
+04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1;
+04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0
+04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3;
+04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2
+04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;Abkhasian;;04B5;
+04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;Abkhasian;04B4;;04B4
+04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7;
+04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6
+04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9;
+04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8
+04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB;
+04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA
+04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD;
+04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC
+04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF;
+04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE
+04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;04CF;
+04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2;
+04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1
+04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;
+04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3
+04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6;
+04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5
+04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8;
+04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7
+04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA;
+04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9
+04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC;
+04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB
+04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE;
+04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD
+04CF;CYRILLIC SMALL LETTER PALOCHKA;Ll;0;L;;;;;N;;;04C0;;04C0
+04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1;
+04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0
+04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3;
+04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2
+04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5;
+04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4
+04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7;
+04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6
+04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9;
+04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8
+04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB;
+04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA
+04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD;
+04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC
+04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF;
+04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE
+04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1;
+04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0
+04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3;
+04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2
+04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5;
+04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4
+04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7;
+04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6
+04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9;
+04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8
+04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB;
+04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA
+04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED;
+04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC
+04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF;
+04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE
+04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1;
+04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0
+04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3;
+04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2
+04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5;
+04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4
+04F6;CYRILLIC CAPITAL LETTER GHE WITH DESCENDER;Lu;0;L;;;;;N;;;;04F7;
+04F7;CYRILLIC SMALL LETTER GHE WITH DESCENDER;Ll;0;L;;;;;N;;;04F6;;04F6
+04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9;
+04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8
+04FA;CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK;Lu;0;L;;;;;N;;;;04FB;
+04FB;CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK;Ll;0;L;;;;;N;;;04FA;;04FA
+04FC;CYRILLIC CAPITAL LETTER HA WITH HOOK;Lu;0;L;;;;;N;;;;04FD;
+04FD;CYRILLIC SMALL LETTER HA WITH HOOK;Ll;0;L;;;;;N;;;04FC;;04FC
+04FE;CYRILLIC CAPITAL LETTER HA WITH STROKE;Lu;0;L;;;;;N;;;;04FF;
+04FF;CYRILLIC SMALL LETTER HA WITH STROKE;Ll;0;L;;;;;N;;;04FE;;04FE
+0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501;
+0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500
+0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503;
+0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502
+0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505;
+0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504
+0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507;
+0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506
+0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509;
+0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508
+050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B;
+050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A
+050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D;
+050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C
+050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F;
+050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E
+0510;CYRILLIC CAPITAL LETTER REVERSED ZE;Lu;0;L;;;;;N;;;;0511;
+0511;CYRILLIC SMALL LETTER REVERSED ZE;Ll;0;L;;;;;N;;;0510;;0510
+0512;CYRILLIC CAPITAL LETTER EL WITH HOOK;Lu;0;L;;;;;N;;;;0513;
+0513;CYRILLIC SMALL LETTER EL WITH HOOK;Ll;0;L;;;;;N;;;0512;;0512
+0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;
+0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;
+0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;
+0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564;
+0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565;
+0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566;
+0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567;
+0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568;
+0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569;
+053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A;
+053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B;
+053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C;
+053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D;
+053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E;
+053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F;
+0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570;
+0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571;
+0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572;
+0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573;
+0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574;
+0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575;
+0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576;
+0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577;
+0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578;
+0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579;
+054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A;
+054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B;
+054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C;
+054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D;
+054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E;
+054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F;
+0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580;
+0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581;
+0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582;
+0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583;
+0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584;
+0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585;
+0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586;
+0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;;
+055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;;
+055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;;
+055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;;
+055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;;
+055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;;
+0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531
+0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532
+0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533
+0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534
+0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535
+0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536
+0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537
+0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538
+0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539
+056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A
+056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B
+056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C
+056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D
+056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E
+056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F
+0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540
+0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541
+0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542
+0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543
+0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544
+0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545
+0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546
+0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547
+0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548
+0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549
+057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A
+057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B
+057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C
+057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D
+057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E
+057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F
+0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550
+0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551
+0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552
+0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553
+0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554
+0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555
+0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556
+0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
+0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
+058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
+0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
+0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
+0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;;
+0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;;
+0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;;
+0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;*;;;
+0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;;
+0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;*;;;
+0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;;
+059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;;
+059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;;
+059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;;
+059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;;
+059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;;
+059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;;
+05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;;
+05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;;
+05A2;HEBREW ACCENT ATNAH HAFUKH;Mn;220;NSM;;;;;N;;;;;
+05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;;
+05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;;
+05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;*;;;
+05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;;
+05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;;
+05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;*;;;
+05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;;
+05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;*;;;
+05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;;
+05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;;
+05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;;
+05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;;
+05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;;
+05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;;
+05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;;
+05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;;
+05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;;
+05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;;
+05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;;
+05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;;
+05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;;
+05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;;
+05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;;
+05BA;HEBREW POINT HOLAM HASER FOR VAV;Mn;19;NSM;;;;;N;;;;;
+05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;;
+05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;or shuruq;;;
+05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;*;;;
+05BE;HEBREW PUNCTUATION MAQAF;Po;0;R;;;;;N;;;;;
+05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;;
+05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;*;;;
+05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;;
+05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;;
+05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;*;;;
+05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;;
+05C5;HEBREW MARK LOWER DOT;Mn;220;NSM;;;;;N;;;;;
+05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;;
+05C7;HEBREW POINT QAMATS QATAN;Mn;18;NSM;;;;;N;;;;;
+05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;;
+05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;;
+05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;;
+05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;;
+05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;;
+05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;;
+05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;;
+05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;;
+05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;;
+05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;;
+05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;;
+05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;;
+05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;;
+05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;;
+05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;;
+05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;;
+05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;;
+05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;;
+05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;;
+05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;;
+05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;;
+05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;;
+05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;;
+05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;;
+05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;;
+05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;;
+05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;
+05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;
+0600;ARABIC NUMBER SIGN;Cf;0;AL;;;;;N;;;;;
+0601;ARABIC SIGN SANAH;Cf;0;AL;;;;;N;;;;;
+0602;ARABIC FOOTNOTE MARKER;Cf;0;AL;;;;;N;;;;;
+0603;ARABIC SIGN SAFHA;Cf;0;AL;;;;;N;;;;;
+060B;AFGHANI SIGN;Sc;0;AL;;;;;N;;;;;
+060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;;
+060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;
+060E;ARABIC POETIC VERSE SIGN;So;0;ON;;;;;N;;;;;
+060F;ARABIC SIGN MISRA;So;0;ON;;;;;N;;;;;
+0610;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM;Mn;230;NSM;;;;;N;;;;;
+0611;ARABIC SIGN ALAYHE ASSALLAM;Mn;230;NSM;;;;;N;;;;;
+0612;ARABIC SIGN RAHMATULLAH ALAYHE;Mn;230;NSM;;;;;N;;;;;
+0613;ARABIC SIGN RADI ALLAHOU ANHU;Mn;230;NSM;;;;;N;;;;;
+0614;ARABIC SIGN TAKHALLUS;Mn;230;NSM;;;;;N;;;;;
+0615;ARABIC SMALL HIGH TAH;Mn;230;NSM;;;;;N;;;;;
+061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
+061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;
+061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
+0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;;
+0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;;
+0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;;
+0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;;
+0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;;
+0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;;
+0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;;
+0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;;
+0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;;
+062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;;
+062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;;
+062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;;
+062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;;
+062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;;
+062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;;
+0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;;
+0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;;
+0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;;
+0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;;
+0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;;
+0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;;
+0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;;
+0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;;
+0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;;
+063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;;
+0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;;
+0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;;
+0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;;
+0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;;
+0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;;
+0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;;
+0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;;
+0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;;
+0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;;
+064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;;
+064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;;
+064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;;
+064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;;
+064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;;
+064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;;
+0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;;
+0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;;
+0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;;
+0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;;
+0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;
+0656;ARABIC SUBSCRIPT ALEF;Mn;220;NSM;;;;;N;;;;;
+0657;ARABIC INVERTED DAMMA;Mn;230;NSM;;;;;N;;;;;
+0658;ARABIC MARK NOON GHUNNA;Mn;230;NSM;;;;;N;;;;;
+0659;ARABIC ZWARAKAY;Mn;230;NSM;;;;;N;;;;;
+065A;ARABIC VOWEL SIGN SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;
+065B;ARABIC VOWEL SIGN INVERTED SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;
+065C;ARABIC VOWEL SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+065D;ARABIC REVERSED DAMMA;Mn;230;NSM;;;;;N;;;;;
+065E;ARABIC FATHA WITH TWO DOTS;Mn;230;NSM;;;;;N;;;;;
+0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
+0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
+0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
+0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
+0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
+0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
+0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
+0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
+0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
+0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
+066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
+066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
+066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
+066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;;
+066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;;
+0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;
+0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;
+0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;
+0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;;
+0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;;
+0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;<compat> 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;;
+0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;<compat> 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;;
+0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;<compat> 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;;
+0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;<compat> 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;;
+0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;;
+067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;;
+067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;;
+067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;;
+067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;;
+067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;;
+067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;;
+0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;;
+0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;;
+0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;;
+0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;;
+0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;;
+0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;;
+0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;;
+0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;;
+0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;;
+0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;;
+068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
+068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;;
+068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;;
+068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;;
+068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;;
+0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;;
+0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;;
+0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;;
+0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;;
+0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;;
+0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;;
+0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;;
+0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;;
+0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;;
+069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;;
+06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;;
+06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;;
+06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;;
+06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;;
+06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;;
+06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;;
+06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;;
+06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;;
+06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;;
+06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;;
+06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;;
+06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;;
+06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;;
+06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;;
+06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;;
+06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;;
+06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;;
+06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;;
+06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;;
+06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;;
+06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;;
+06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;;
+06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;;
+06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;;
+06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;;
+06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;;
+06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;;
+06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;;
+06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;;
+06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;;
+06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;;
+06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;;
+06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;;
+06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;;
+06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;;
+06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;;
+06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;;
+06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
+06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;;
+06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;;
+06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;;
+06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;
+06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;
+06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;
+06DD;ARABIC END OF AYAH;Cf;0;AL;;;;;N;;;;;
+06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;;
+06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;
+06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;
+06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;;
+06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;;
+06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;;
+06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;;
+06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;;
+06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;;
+06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;;
+06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;;
+06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;;
+06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;;
+06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;;
+06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;;
+06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;;
+06EE;ARABIC LETTER DAL WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+06EF;ARABIC LETTER REH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;;
+06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;;
+06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;;
+06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;;
+06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;;
+06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;;
+06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;;
+06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;;
+06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;;
+06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;;
+06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;;
+06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;;
+06FF;ARABIC LETTER HEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;
+0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;
+0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;
+0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;
+0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;
+070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;
+070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;
+070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;
+070F;SYRIAC ABBREVIATION MARK;Cf;0;BN;;;;;N;;;;;
+0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;;
+0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;;
+0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;;
+0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;;
+0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;;
+0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;;
+0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;;
+0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;;
+0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;;
+071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;;
+071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;;
+071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;;
+071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;;
+071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;;
+0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;;
+0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;;
+0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;;
+0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;;
+0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;;
+0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;;
+0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;;
+0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;;
+0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;;
+0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;;
+072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;;
+072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;;
+072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;;
+072D;SYRIAC LETTER PERSIAN BHETH;Lo;0;AL;;;;;N;;;;;
+072E;SYRIAC LETTER PERSIAN GHAMAL;Lo;0;AL;;;;;N;;;;;
+072F;SYRIAC LETTER PERSIAN DHALATH;Lo;0;AL;;;;;N;;;;;
+0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;;
+0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;;
+073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;;
+073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;;
+0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;;
+0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;;
+0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;;
+0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;;
+074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;;
+074D;SYRIAC LETTER SOGDIAN ZHAIN;Lo;0;AL;;;;;N;;;;;
+074E;SYRIAC LETTER SOGDIAN KHAPH;Lo;0;AL;;;;;N;;;;;
+074F;SYRIAC LETTER SOGDIAN FE;Lo;0;AL;;;;;N;;;;;
+0750;ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW;Lo;0;AL;;;;;N;;;;;
+0751;ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0752;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0753;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0754;ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0755;ARABIC LETTER BEH WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+0756;ARABIC LETTER BEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+0757;ARABIC LETTER HAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0758;ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0759;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
+075A;ARABIC LETTER DAL WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+075B;ARABIC LETTER REH WITH STROKE;Lo;0;AL;;;;;N;;;;;
+075C;ARABIC LETTER SEEN WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+075D;ARABIC LETTER AIN WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+075E;ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE;Lo;0;AL;;;;;N;;;;;
+075F;ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
+0760;ARABIC LETTER FEH WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+0761;ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0762;ARABIC LETTER KEHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0763;ARABIC LETTER KEHEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0764;ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0765;ARABIC LETTER MEEM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0766;ARABIC LETTER MEEM WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+0767;ARABIC LETTER NOON WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+0768;ARABIC LETTER NOON WITH SMALL TAH;Lo;0;AL;;;;;N;;;;;
+0769;ARABIC LETTER NOON WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+076A;ARABIC LETTER LAM WITH BAR;Lo;0;AL;;;;;N;;;;;
+076B;ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
+076C;ARABIC LETTER REH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
+076D;ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
+0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;;
+0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;;
+0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;;
+0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;;
+0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;;
+0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;;
+0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;;
+0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;;
+078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;;
+078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;;
+078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;;
+078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;;
+078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;;
+078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;;
+0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;;
+0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;;
+0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;;
+0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;;
+0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;;
+0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;;
+0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;;
+0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;;
+0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;;
+079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;;
+079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;;
+079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;;
+079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;;
+079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;;
+079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;;
+07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;;
+07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;;
+07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;;
+07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;;
+07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;;
+07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;;
+07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;;
+07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;;
+07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;;
+07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;;
+07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;;
+07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;;
+07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;;
+07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;;
+07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;;
+07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;;
+07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;;
+07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;;
+07C0;NKO DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;;
+07C1;NKO DIGIT ONE;Nd;0;R;;1;1;1;N;;;;;
+07C2;NKO DIGIT TWO;Nd;0;R;;2;2;2;N;;;;;
+07C3;NKO DIGIT THREE;Nd;0;R;;3;3;3;N;;;;;
+07C4;NKO DIGIT FOUR;Nd;0;R;;4;4;4;N;;;;;
+07C5;NKO DIGIT FIVE;Nd;0;R;;5;5;5;N;;;;;
+07C6;NKO DIGIT SIX;Nd;0;R;;6;6;6;N;;;;;
+07C7;NKO DIGIT SEVEN;Nd;0;R;;7;7;7;N;;;;;
+07C8;NKO DIGIT EIGHT;Nd;0;R;;8;8;8;N;;;;;
+07C9;NKO DIGIT NINE;Nd;0;R;;9;9;9;N;;;;;
+07CA;NKO LETTER A;Lo;0;R;;;;;N;;;;;
+07CB;NKO LETTER EE;Lo;0;R;;;;;N;;;;;
+07CC;NKO LETTER I;Lo;0;R;;;;;N;;;;;
+07CD;NKO LETTER E;Lo;0;R;;;;;N;;;;;
+07CE;NKO LETTER U;Lo;0;R;;;;;N;;;;;
+07CF;NKO LETTER OO;Lo;0;R;;;;;N;;;;;
+07D0;NKO LETTER O;Lo;0;R;;;;;N;;;;;
+07D1;NKO LETTER DAGBASINNA;Lo;0;R;;;;;N;;;;;
+07D2;NKO LETTER N;Lo;0;R;;;;;N;;;;;
+07D3;NKO LETTER BA;Lo;0;R;;;;;N;;;;;
+07D4;NKO LETTER PA;Lo;0;R;;;;;N;;;;;
+07D5;NKO LETTER TA;Lo;0;R;;;;;N;;;;;
+07D6;NKO LETTER JA;Lo;0;R;;;;;N;;;;;
+07D7;NKO LETTER CHA;Lo;0;R;;;;;N;;;;;
+07D8;NKO LETTER DA;Lo;0;R;;;;;N;;;;;
+07D9;NKO LETTER RA;Lo;0;R;;;;;N;;;;;
+07DA;NKO LETTER RRA;Lo;0;R;;;;;N;;;;;
+07DB;NKO LETTER SA;Lo;0;R;;;;;N;;;;;
+07DC;NKO LETTER GBA;Lo;0;R;;;;;N;;;;;
+07DD;NKO LETTER FA;Lo;0;R;;;;;N;;;;;
+07DE;NKO LETTER KA;Lo;0;R;;;;;N;;;;;
+07DF;NKO LETTER LA;Lo;0;R;;;;;N;;;;;
+07E0;NKO LETTER NA WOLOSO;Lo;0;R;;;;;N;;;;;
+07E1;NKO LETTER MA;Lo;0;R;;;;;N;;;;;
+07E2;NKO LETTER NYA;Lo;0;R;;;;;N;;;;;
+07E3;NKO LETTER NA;Lo;0;R;;;;;N;;;;;
+07E4;NKO LETTER HA;Lo;0;R;;;;;N;;;;;
+07E5;NKO LETTER WA;Lo;0;R;;;;;N;;;;;
+07E6;NKO LETTER YA;Lo;0;R;;;;;N;;;;;
+07E7;NKO LETTER NYA WOLOSO;Lo;0;R;;;;;N;;;;;
+07E8;NKO LETTER JONA JA;Lo;0;R;;;;;N;;;;;
+07E9;NKO LETTER JONA CHA;Lo;0;R;;;;;N;;;;;
+07EA;NKO LETTER JONA RA;Lo;0;R;;;;;N;;;;;
+07EB;NKO COMBINING SHORT HIGH TONE;Mn;230;NSM;;;;;N;;;;;
+07EC;NKO COMBINING SHORT LOW TONE;Mn;230;NSM;;;;;N;;;;;
+07ED;NKO COMBINING SHORT RISING TONE;Mn;230;NSM;;;;;N;;;;;
+07EE;NKO COMBINING LONG DESCENDING TONE;Mn;230;NSM;;;;;N;;;;;
+07EF;NKO COMBINING LONG HIGH TONE;Mn;230;NSM;;;;;N;;;;;
+07F0;NKO COMBINING LONG LOW TONE;Mn;230;NSM;;;;;N;;;;;
+07F1;NKO COMBINING LONG RISING TONE;Mn;230;NSM;;;;;N;;;;;
+07F2;NKO COMBINING NASALIZATION MARK;Mn;220;NSM;;;;;N;;;;;
+07F3;NKO COMBINING DOUBLE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+07F4;NKO HIGH TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
+07F5;NKO LOW TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
+07F6;NKO SYMBOL OO DENNEN;So;0;ON;;;;;N;;;;;
+07F7;NKO SYMBOL GBAKURUNEN;Po;0;ON;;;;;N;;;;;
+07F8;NKO COMMA;Po;0;ON;;;;;N;;;;;
+07F9;NKO EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+07FA;NKO LAJANYALAN;Lm;0;R;;;;;N;;;;;
+0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0904;DEVANAGARI LETTER SHORT A;Lo;0;L;;;;;N;;;;;
+0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;;
+0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;;
+0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;;
+0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;;
+0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;;
+090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;;
+090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;;
+090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;;
+090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;;
+0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;;
+0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;;
+0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;;
+0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;;
+0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;;
+0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;;
+0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;;
+0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;;
+091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;;
+091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;;
+091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;;
+091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;;
+091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;;
+091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;;
+0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;;
+0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;;
+0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;;
+0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;;
+092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;;
+092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;;
+092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;;
+092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;;
+092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;;
+092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;;
+0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;;
+0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;;
+0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;;
+0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;;
+0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;;
+0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;;
+0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;;
+093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;
+0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;
+094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;;
+0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;;
+0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;;
+0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;;
+0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;;
+095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;;
+095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;;
+095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;;
+095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;;
+095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;;
+095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;;
+0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;;
+0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;;
+097C;DEVANAGARI LETTER JJA;Lo;0;L;;;;;N;;;;;
+097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;;
+097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;;
+0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;;
+0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;;
+0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;;
+0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;;
+0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;;
+098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;;
+098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;;
+0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;;
+0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;;
+0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;;
+0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;;
+0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;;
+0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;;
+099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;;
+099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;;
+099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;;
+099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;;
+099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;;
+099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;;
+09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;;
+09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;;
+09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;;
+09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;;
+09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;;
+09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;;
+09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;;
+09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;;
+09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;;
+09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;;
+09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;;
+09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;;
+09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;;
+09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;;
+09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;;
+09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;;
+09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;;
+09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;;
+09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;;
+09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+09BD;BENGALI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;;
+09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;;
+09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+09CE;BENGALI LETTER KHANDA TA;Lo;0;L;;;;;N;;;;;
+09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;;
+09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;;
+09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;;
+09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;Assamese;;;
+09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;Assamese;;;
+09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;;
+09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
+09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1;N;;;;;
+09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;2;N;;;;;
+09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3;N;;;;;
+09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;4;N;;;;;
+09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;;N;;;;;
+09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;;
+09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;;
+0A01;GURMUKHI SIGN ADAK BINDI;Mn;0;NSM;;;;;N;;;;;
+0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;;
+0A03;GURMUKHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;;
+0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;;
+0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;;
+0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;;
+0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;;
+0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;;
+0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;;
+0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;;
+0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;;
+0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;;
+0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;;
+0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;;
+0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;;
+0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;;
+0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;;
+0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;;
+0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;;
+0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;;
+0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;;
+0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;;
+0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;;
+0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;;
+0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;;
+0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;;
+0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;;
+0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;;
+0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;;
+0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;;
+0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;;
+0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;;
+0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;;
+0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;;
+0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;;
+0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;;
+0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;;
+0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0A8C;GUJARATI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;;
+0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;;
+0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;;
+0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;;
+0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;;
+0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;;
+0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;;
+0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;;
+0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;;
+0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;;
+0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;;
+0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;;
+0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;;
+0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;;
+0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;;
+0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;;
+0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;;
+0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;;
+0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0AE1;GUJARATI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0AE2;GUJARATI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0AE3;GUJARATI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
+0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;;
+0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;;
+0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;;
+0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;;
+0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;;
+0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;;
+0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;;
+0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;;
+0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;;
+0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;;
+0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;;
+0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;;
+0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;;
+0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;;
+0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;;
+0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;;
+0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;;
+0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;;
+0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;;
+0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;;
+0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;;
+0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;;
+0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;;
+0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;;
+0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0B35;ORIYA LETTER VA;Lo;0;L;;;;;N;;;;;
+0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;;
+0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;;
+0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;;
+0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;;
+0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;;
+0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
+0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;;
+0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;;
+0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;;
+0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;;
+0B71;ORIYA LETTER WA;Lo;0;L;;;;;N;;;;;
+0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;;
+0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;;
+0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;;
+0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;;
+0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;;
+0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;;
+0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;;
+0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;;
+0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;;
+0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;;
+0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;;
+0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;;
+0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;;
+0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;;
+0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;;
+0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;;
+0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;;
+0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;;
+0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;;
+0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;;
+0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;;
+0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;;
+0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;;
+0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;;
+0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;;
+0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;;
+0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;;
+0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;;
+0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;;
+0BB6;TAMIL LETTER SHA;Lo;0;L;;;;;N;;;;;
+0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;;
+0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;;
+0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;;
+0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;;
+0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;;
+0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;;
+0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0BE6;TAMIL DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;;
+0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+0BF3;TAMIL DAY SIGN;So;0;ON;;;;;N;;Naal;;;
+0BF4;TAMIL MONTH SIGN;So;0;ON;;;;;N;;Maatham;;;
+0BF5;TAMIL YEAR SIGN;So;0;ON;;;;;N;;Varudam;;;
+0BF6;TAMIL DEBIT SIGN;So;0;ON;;;;;N;;Patru;;;
+0BF7;TAMIL CREDIT SIGN;So;0;ON;;;;;N;;Varavu;;;
+0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;Merpadi;;;
+0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;Rupai;;;
+0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;Enn;;;
+0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
+0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;;
+0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;;
+0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;;
+0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;;
+0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;;
+0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;;
+0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;;
+0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;;
+0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;;
+0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;;
+0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;;
+0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;;
+0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;;
+0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;;
+0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;;
+0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;;
+0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;;
+0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;;
+0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;;
+0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;;
+0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;;
+0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;;
+0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;;
+0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;;
+0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;;
+0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;;
+0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;;
+0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;;
+0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;;
+0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;;
+0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;;
+0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;;
+0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;;
+0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;;
+0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;;
+0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;;
+0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;
+0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;;
+0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;;
+0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
+0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;;
+0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;;
+0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;;
+0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;
+0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;;
+0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;;
+0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;;
+0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;;
+0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;;
+0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;;
+0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;;
+0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;;
+0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;;
+0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;;
+0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;;
+0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;;
+0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;;
+0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;;
+0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;;
+0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;;
+0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;;
+0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;;
+0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;;
+0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;;
+0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;;
+0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;;
+0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;;
+0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;;
+0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;;
+0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;;
+0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;;
+0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;;
+0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;;
+0CBC;KANNADA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0CBD;KANNADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0CBF;KANNADA VOWEL SIGN I;Mn;0;L;;;;;N;;;;;
+0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;;
+0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0CC6;KANNADA VOWEL SIGN E;Mn;0;L;;;;;N;;;;;
+0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;;
+0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;;
+0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;;
+0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;;
+0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;
+0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0CE2;KANNADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0CE3;KANNADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0CF1;KANNADA SIGN JIHVAMULIYA;So;0;ON;;;;;N;;;;;
+0CF2;KANNADA SIGN UPADHMANIYA;So;0;ON;;;;;N;;;;;
+0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
+0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;;
+0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;;
+0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;;
+0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;;
+0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;;
+0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;;
+0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;;
+0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;;
+0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;;
+0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;;
+0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;;
+0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;;
+0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;;
+0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;;
+0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;;
+0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;;
+0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;;
+0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;;
+0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;;
+0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;;
+0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;;
+0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;;
+0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;;
+0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;;
+0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;;
+0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;;
+0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;;
+0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;;
+0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;;
+0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;;
+0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;;
+0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;;
+0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;;
+0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;;
+0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;;
+0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;;
+0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;;
+0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;;
+0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;;
+0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;;
+0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;;
+0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;;
+0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;;
+0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;;
+0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;;
+0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;;
+0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;;
+0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;;
+0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;;
+0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;;
+0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;;
+0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;;
+0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;;
+0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;;
+0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;;
+0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;;
+0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;;
+0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;;
+0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;;
+0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;;
+0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;;
+0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;;
+0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;;
+0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;;
+0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;;
+0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;;
+0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;;
+0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;;
+0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;;
+0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;;
+0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;;
+0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;;
+0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;;
+0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;;
+0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;;
+0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;;
+0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;;
+0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;;
+0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;;
+0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;;
+0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;;
+0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;;
+0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;;
+0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;;
+0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;;
+0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;;
+0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;;
+0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;;
+0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;;
+0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;;
+0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;;
+0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;;
+0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;;
+0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;;
+0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;;
+0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;;
+0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;;
+0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;;
+0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;;
+0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;;
+0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;;
+0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;;
+0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;;
+0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;;
+0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;;
+0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;;
+0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;;
+0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;;
+0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;;
+0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;;
+0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;;
+0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;;
+0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;;
+0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;;
+0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;;
+0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;;
+0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;;
+0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;;
+0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;;
+0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;;
+0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;;
+0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;;
+0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;;
+0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;;
+0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;;
+0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;;
+0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;;
+0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;;
+0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;paiyan noi;;;
+0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;;
+0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;;
+0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;;
+0E33;THAI CHARACTER SARA AM;Lo;0;L;<compat> 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;;
+0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;;
+0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;;
+0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;;
+0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;sara uue;;;
+0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;;
+0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;;
+0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;;
+0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;;
+0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;;
+0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;;
+0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;;
+0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;sara ai mai muan;;;
+0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;sara ai mai malai;;;
+0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;lakkhang yao;;;
+0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;mai yamok;;;
+0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;mai taikhu;;;
+0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;;
+0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;;
+0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;;
+0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;;
+0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;;
+0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;;
+0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;;
+0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;;
+0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;;
+0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;;
+0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;;
+0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;;
+0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;;
+0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;;
+0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;;
+0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;;
+0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;;
+0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;;
+0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;;
+0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;;
+0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;;
+0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;;
+0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;;
+0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;;
+0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;;
+0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;;
+0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;;
+0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;;
+0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;;
+0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;;
+0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;;
+0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;;
+0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;;
+0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;;
+0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;;
+0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;;
+0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;;
+0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;;
+0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;;
+0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;;
+0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;;
+0EB3;LAO VOWEL SIGN AM;Lo;0;L;<compat> 0ECD 0EB2;;;;N;;;;;
+0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;;
+0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;;
+0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;;
+0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;;
+0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;;
+0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;;
+0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;;
+0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;;
+0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;;
+0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;;
+0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;;
+0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;;
+0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;;
+0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;;
+0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
+0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
+0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
+0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;;
+0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;;
+0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;;
+0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;ter yik go a thung;;;
+0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;ter yik go wum nam chey ma;;;
+0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;ter yik go wum ter tsek ma;;;
+0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;yik go dun ma;;;
+0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;yik go kab ma;;;
+0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;yik go pur shey ma;;;
+0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;yik go tsek shey ma;;;
+0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;drul shey;;;
+0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;kur yik go;;;
+0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;ka sho yik go;;;
+0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;tsek;;;
+0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L;<noBreak> 0F0B;;;;N;;tsek tar;;;
+0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;shey;;;
+0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;nyi shey;;;
+0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;tsek shey;;;
+0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;nyi tsek shey;;;
+0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;rinchen pung shey;;;
+0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;gya tram shey;;;
+0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;dzu ta me long chen;;;
+0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;ter tsek;;;
+0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;che ta;;;
+0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;hlak ta;;;
+0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;trachen char ta;;;
+0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;kyu pa;;;
+0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;dong tsu;;;
+0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;deka chig;;;
+0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;deka nyi;;;
+0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;deka sum;;;
+0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;dena chig;;;
+0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;dena nyi;;;
+0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;deka dena;;;
+0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;1/2;N;;;;;
+0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;3/2;N;;;;;
+0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;5/2;N;;;;;
+0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;7/2;N;;;;;
+0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;9/2;N;;;;;
+0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;11/2;N;;;;;
+0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;13/2;N;;;;;
+0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;15/2;N;;;;;
+0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;17/2;N;;;;;
+0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;-1/2;N;;;;;
+0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;du ta;;;
+0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;nge zung nyi da;;;
+0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;dzu ta shi mig chen;;;
+0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;nge zung gor ta;;;
+0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;che go;;;
+0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;tsa tru;;;
+0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;Y;;gug ta yun;;;
+0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;Y;;gug ta ye;;;
+0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;Y;TIBETAN LEFT BRACE;ang kang yun;;;
+0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;Y;TIBETAN RIGHT BRACE;ang kang ye;;;
+0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;yar tse;;;
+0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;mar tse;;;
+0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;;
+0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;;
+0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;;
+0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;;
+0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;;
+0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;;
+0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;;
+0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;;
+0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;;
+0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;;
+0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;;
+0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;;
+0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;;
+0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;;
+0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;;
+0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;;
+0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;;
+0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;;
+0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;;
+0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;;
+0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;;
+0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;;
+0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;;
+0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;;
+0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;;
+0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;;
+0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;;
+0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;;
+0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;;
+0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;*;;;
+0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;;
+0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;;
+0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;;
+0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;;
+0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;;
+0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;;
+0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;*;;;
+0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;;
+0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;;
+0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;;
+0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;;
+0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;;
+0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;;
+0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM;<compat> 0FB2 0F81;;;;N;;;;;
+0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;;
+0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM;<compat> 0FB3 0F81;;;;N;;;;;
+0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;;
+0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;;
+0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;;
+0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;;
+0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;je su nga ro;;;
+0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;nam chey;;;
+0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;;
+0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;;
+0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;nyi da na da;;;
+0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;nan de;;;
+0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;;
+0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;;
+0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;ji ta;;;
+0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;yang ta;;;
+0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;che tsa chen;;;
+0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;chu chen;;;
+0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;tru chen ging;;;
+0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;tru me ging;;;
+0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;;
+0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;;
+0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;;
+0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;;
+0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;;
+0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;;
+0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;;
+0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;;
+0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;;
+0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;;
+0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;;
+0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;;
+0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;;
+0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;;
+0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;;
+0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;;
+0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;;
+0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;;
+0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;;
+0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;;
+0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;;
+0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;;
+0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;;
+0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;;
+0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;;
+0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;;
+0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;;
+0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;;
+0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;*;;;
+0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;;
+0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;;
+0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;;
+0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;*;;;
+0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;*;;;
+0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;;
+0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;;
+0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;;
+0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;;
+0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;;
+0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;;
+0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;;
+0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;*;;;
+0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;*;;;
+0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;*;;;
+0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;kuruka;;;
+0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;kuruka shi mik chen;;;
+0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;;
+0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;;
+0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;chang tyu;;;
+0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;bub chey;;;
+0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;drilbu;;;
+0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;dorje;;;
+0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;pema den;;;
+0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;dorje gya dram;;;
+0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;phurba;;;
+0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;norbu;;;
+0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;norbu nyi khyi;;;
+0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;norbu sum khyi;;;
+0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;norbu shi khyi;;;
+0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;dena sum;;;
+0FD0;TIBETAN MARK BSKA- SHOG GI MGO RGYAN;Po;0;L;;;;;N;;ka shog gi go gyen;;;
+0FD1;TIBETAN MARK MNYAM YIG GI MGO RGYAN;Po;0;L;;;;;N;;nyam yig gi go gyen;;;
+1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;;
+1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;;
+1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;;
+1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;;
+1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;;
+1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;;
+1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;;
+1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;;
+1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;;
+1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;;
+100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;;
+100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;;
+100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;;
+100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;;
+100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;;
+100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;;
+1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;;
+1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;;
+1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;;
+1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;;
+1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;;
+1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;;
+1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;;
+1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;;
+1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;;
+1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;;
+101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;;
+101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;;
+101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;;
+101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;;
+101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;;
+101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;;
+1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;;
+1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;;
+1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;;
+1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;;
+1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;;
+1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;;
+1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;;
+1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;;
+102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;;
+102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;;
+1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;;
+104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;;
+104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;;
+104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;;
+104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;;
+104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;;
+1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;;
+1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;;
+1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;Khutsuri;;2D00;
+10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;Khutsuri;;2D01;
+10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;Khutsuri;;2D02;
+10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;Khutsuri;;2D03;
+10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;Khutsuri;;2D04;
+10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;Khutsuri;;2D05;
+10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;Khutsuri;;2D06;
+10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;Khutsuri;;2D07;
+10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;Khutsuri;;2D08;
+10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;Khutsuri;;2D09;
+10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;Khutsuri;;2D0A;
+10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;Khutsuri;;2D0B;
+10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;Khutsuri;;2D0C;
+10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;Khutsuri;;2D0D;
+10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;Khutsuri;;2D0E;
+10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;Khutsuri;;2D0F;
+10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;Khutsuri;;2D10;
+10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;Khutsuri;;2D11;
+10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;Khutsuri;;2D12;
+10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;Khutsuri;;2D13;
+10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;Khutsuri;;2D14;
+10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;Khutsuri;;2D15;
+10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;Khutsuri;;2D16;
+10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;Khutsuri;;2D17;
+10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;Khutsuri;;2D18;
+10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;Khutsuri;;2D19;
+10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;Khutsuri;;2D1A;
+10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;Khutsuri;;2D1B;
+10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;Khutsuri;;2D1C;
+10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;Khutsuri;;2D1D;
+10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;Khutsuri;;2D1E;
+10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;Khutsuri;;2D1F;
+10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;Khutsuri;;2D20;
+10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;Khutsuri;;2D21;
+10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;Khutsuri;;2D22;
+10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;Khutsuri;;2D23;
+10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;Khutsuri;;2D24;
+10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;Khutsuri;;2D25;
+10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;
+10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;
+10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;
+10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;;
+10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;;
+10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;;
+10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;;
+10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;;
+10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;;
+10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;;
+10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;;
+10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;;
+10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;;
+10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;;
+10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;;
+10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;;
+10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;;
+10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;;
+10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;;
+10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;;
+10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;;
+10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;;
+10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;;
+10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;;
+10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;;
+10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;;
+10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;;
+10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;;
+10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;;
+10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;;
+10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;;
+10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;;
+10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;;
+10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;;
+10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;;
+10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;;
+10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;;
+10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;;
+10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;;
+10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;;
+10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;;
+10F9;GEORGIAN LETTER TURNED GAN;Lo;0;L;;;;;N;;;;;
+10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;;
+10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L;<super> 10DC;;;;N;;;;;
+1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;dd *;;;
+1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;r *;;;
+1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;bb *;;;
+1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;;
+110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;jj *;;;
+110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;;
+1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;;
+1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;;
+111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;;
+111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;;
+1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;;
+1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;;
+1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;;
+112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;;
+112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;;
+112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;;
+1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;;
+1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;;
+113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;;
+113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;;
+113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;;
+113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;;
+113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;;
+1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;;
+1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;;
+1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;;
+1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;;
+114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;;
+114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;;
+114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;;
+114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;;
+114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;;
+1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;;
+1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;;
+1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;;
+1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;;
+1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;;
+1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;;
+1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;;
+1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;;
+1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;;
+1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;;
+1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;;
+116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;;
+116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;;
+116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;;
+116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;;
+116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;;
+116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;;
+1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;;
+1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;;
+1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;;
+1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;;
+1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;;
+1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;;
+1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;;
+1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;;
+1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;;
+1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;;
+117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;;
+117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;;
+117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;;
+117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;;
+117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;;
+117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;;
+1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;;
+1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;;
+1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;;
+1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;;
+1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;;
+1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;;
+1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;;
+1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;;
+1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;;
+1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;;
+118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;;
+118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;;
+118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;;
+118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;;
+118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;;
+118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;;
+1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;;
+1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;;
+1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;;
+1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;;
+1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;;
+1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;;
+1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;;
+1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;;
+1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;;
+1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;;
+119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;;
+119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;;
+119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;;
+119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;;
+119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;;
+119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;;
+11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;;
+11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;;
+11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;;
+11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;gs *;;;
+11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;nj *;;;
+11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;nh *;;;
+11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;l *;;;
+11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;lg *;;;
+11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;lm *;;;
+11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;lb *;;;
+11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;ls *;;;
+11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;lt *;;;
+11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;lp *;;;
+11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;lh *;;;
+11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;bs *;;;
+11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;ng *;;;
+11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;;
+11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;;
+11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;;
+11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;;
+11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;;
+11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;;
+11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;;
+11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;;
+11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;;
+11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;;
+11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;;
+11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;;
+11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;;
+11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;;
+11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
+11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;;
+11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;;
+11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;;
+11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;;
+1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;;
+1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;;
+1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;;
+1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+1207;ETHIOPIC SYLLABLE HOA;Lo;0;L;;;;;N;;;;;
+1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;;
+120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;;
+120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;;
+1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;;
+1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;;
+1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;;
+1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;;
+1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;;
+1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;;
+1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;;
+1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;;
+1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;;
+121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;;
+121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;;
+1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;;
+1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;;
+1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;;
+1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;;
+1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;;
+1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;;
+1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;;
+1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;;
+1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;;
+122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;;
+122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;;
+122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;;
+1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;;
+1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;;
+1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;;
+1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;;
+123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;;
+123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;;
+123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;;
+1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;;
+1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;;
+1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;;
+1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;;
+1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+1247;ETHIOPIC SYLLABLE QOA;Lo;0;L;;;;;N;;;;;
+1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;;
+124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;;
+124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;;
+124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;;
+124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;;
+1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;;
+1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;;
+1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;;
+1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;;
+1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;;
+1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;;
+1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;;
+1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;;
+125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;;
+125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;;
+125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;;
+125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;;
+1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;;
+1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;;
+1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;;
+1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;;
+126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;;
+126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;;
+126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;;
+1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;;
+1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;;
+1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;;
+1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;;
+127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;;
+127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;;
+1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;;
+1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;;
+1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;;
+1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;;
+1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;;
+1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+1287;ETHIOPIC SYLLABLE XOA;Lo;0;L;;;;;N;;;;;
+1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;;
+128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;;
+128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;;
+128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;;
+128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;;
+1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;;
+1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;;
+1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;;
+1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;;
+1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;;
+129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;;
+129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;;
+129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;;
+12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;;
+12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;;
+12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;;
+12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;;
+12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;;
+12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;;
+12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;;
+12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;;
+12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;;
+12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;;
+12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+12AF;ETHIOPIC SYLLABLE KOA;Lo;0;L;;;;;N;;;;;
+12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;;
+12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;;
+12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;;
+12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;;
+12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;;
+12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;;
+12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;;
+12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;;
+12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;;
+12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;;
+12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;;
+12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;;
+12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;;
+12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;;
+12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;;
+12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;;
+12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;;
+12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;;
+12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;;
+12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;;
+12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;;
+12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+12CF;ETHIOPIC SYLLABLE WOA;Lo;0;L;;;;;N;;;;;
+12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;;
+12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;;
+12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;;
+12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;;
+12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;;
+12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;;
+12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;;
+12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;;
+12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;;
+12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;;
+12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;;
+12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;;
+12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;;
+12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;;
+12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;;
+12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;;
+12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;;
+12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;;
+12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+12EF;ETHIOPIC SYLLABLE YOA;Lo;0;L;;;;;N;;;;;
+12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;;
+12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;;
+12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;;
+12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;;
+12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;;
+12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;;
+1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;;
+1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;;
+1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;;
+1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;;
+1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;;
+1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;;
+130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;;
+130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+130F;ETHIOPIC SYLLABLE GOA;Lo;0;L;;;;;N;;;;;
+1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;;
+1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;;
+1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;;
+1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;;
+1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;;
+1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;;
+131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;;
+131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+131F;ETHIOPIC SYLLABLE GGWAA;Lo;0;L;;;;;N;;;;;
+1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;;
+1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;;
+1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;;
+1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;;
+1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;;
+1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;;
+1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;;
+1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;;
+1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;;
+132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;;
+132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;;
+132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;;
+1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;;
+1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;;
+1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;;
+1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;;
+1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;;
+1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;;
+1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;;
+1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;;
+1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;;
+1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;;
+133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;;
+133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;;
+133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;;
+133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;;
+133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;;
+133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;;
+1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;;
+1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;;
+1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;;
+1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;;
+1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;;
+1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;;
+1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;;
+1347;ETHIOPIC SYLLABLE TZOA;Lo;0;L;;;;;N;;;;;
+1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;;
+134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;;
+134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;;
+134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;;
+1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;;
+1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;;
+1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;;
+1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;;
+1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;;
+1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;;
+135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;;
+135F;ETHIOPIC COMBINING GEMINATION MARK;Mn;230;NSM;;;;;N;;;;;
+1360;ETHIOPIC SECTION MARK;So;0;L;;;;;N;;;;;
+1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;;
+1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;;
+1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;;
+1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;;
+1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;;
+1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;;
+1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;;
+1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+1369;ETHIOPIC DIGIT ONE;No;0;L;;;1;1;N;;;;;
+136A;ETHIOPIC DIGIT TWO;No;0;L;;;2;2;N;;;;;
+136B;ETHIOPIC DIGIT THREE;No;0;L;;;3;3;N;;;;;
+136C;ETHIOPIC DIGIT FOUR;No;0;L;;;4;4;N;;;;;
+136D;ETHIOPIC DIGIT FIVE;No;0;L;;;5;5;N;;;;;
+136E;ETHIOPIC DIGIT SIX;No;0;L;;;6;6;N;;;;;
+136F;ETHIOPIC DIGIT SEVEN;No;0;L;;;7;7;N;;;;;
+1370;ETHIOPIC DIGIT EIGHT;No;0;L;;;8;8;N;;;;;
+1371;ETHIOPIC DIGIT NINE;No;0;L;;;9;9;N;;;;;
+1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;;
+1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;;
+1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;;
+137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;;
+137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
+1380;ETHIOPIC SYLLABLE SEBATBEIT MWA;Lo;0;L;;;;;N;;;;;
+1381;ETHIOPIC SYLLABLE MWI;Lo;0;L;;;;;N;;;;;
+1382;ETHIOPIC SYLLABLE MWEE;Lo;0;L;;;;;N;;;;;
+1383;ETHIOPIC SYLLABLE MWE;Lo;0;L;;;;;N;;;;;
+1384;ETHIOPIC SYLLABLE SEBATBEIT BWA;Lo;0;L;;;;;N;;;;;
+1385;ETHIOPIC SYLLABLE BWI;Lo;0;L;;;;;N;;;;;
+1386;ETHIOPIC SYLLABLE BWEE;Lo;0;L;;;;;N;;;;;
+1387;ETHIOPIC SYLLABLE BWE;Lo;0;L;;;;;N;;;;;
+1388;ETHIOPIC SYLLABLE SEBATBEIT FWA;Lo;0;L;;;;;N;;;;;
+1389;ETHIOPIC SYLLABLE FWI;Lo;0;L;;;;;N;;;;;
+138A;ETHIOPIC SYLLABLE FWEE;Lo;0;L;;;;;N;;;;;
+138B;ETHIOPIC SYLLABLE FWE;Lo;0;L;;;;;N;;;;;
+138C;ETHIOPIC SYLLABLE SEBATBEIT PWA;Lo;0;L;;;;;N;;;;;
+138D;ETHIOPIC SYLLABLE PWI;Lo;0;L;;;;;N;;;;;
+138E;ETHIOPIC SYLLABLE PWEE;Lo;0;L;;;;;N;;;;;
+138F;ETHIOPIC SYLLABLE PWE;Lo;0;L;;;;;N;;;;;
+1390;ETHIOPIC TONAL MARK YIZET;So;0;ON;;;;;N;;;;;
+1391;ETHIOPIC TONAL MARK DERET;So;0;ON;;;;;N;;;;;
+1392;ETHIOPIC TONAL MARK RIKRIK;So;0;ON;;;;;N;;;;;
+1393;ETHIOPIC TONAL MARK SHORT RIKRIK;So;0;ON;;;;;N;;;;;
+1394;ETHIOPIC TONAL MARK DIFAT;So;0;ON;;;;;N;;;;;
+1395;ETHIOPIC TONAL MARK KENAT;So;0;ON;;;;;N;;;;;
+1396;ETHIOPIC TONAL MARK CHIRET;So;0;ON;;;;;N;;;;;
+1397;ETHIOPIC TONAL MARK HIDET;So;0;ON;;;;;N;;;;;
+1398;ETHIOPIC TONAL MARK DERET-HIDET;So;0;ON;;;;;N;;;;;
+1399;ETHIOPIC TONAL MARK KURT;So;0;ON;;;;;N;;;;;
+13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;;
+13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;;
+13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;;
+13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;;
+13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;;
+13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;;
+13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;;
+13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;;
+13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;;
+13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;;
+13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;;
+13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;;
+13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;;
+13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;;
+13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;;
+13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;;
+13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;;
+13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;;
+13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;;
+13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;;
+13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;;
+13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;;
+13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;;
+13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;;
+13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;;
+13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;;
+13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;;
+13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;;
+13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;;
+13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;;
+13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;;
+13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;;
+13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;;
+13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;;
+13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;;
+13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;;
+13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;;
+13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;;
+13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;;
+13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;;
+13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;;
+13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;;
+13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;;
+13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;;
+13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;;
+13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;;
+13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;;
+13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;;
+13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;;
+13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;;
+13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;;
+13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;;
+13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;;
+13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;;
+13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;;
+13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;;
+13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;;
+13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;;
+13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;;
+13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;;
+13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;;
+13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;;
+13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;;
+13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;;
+13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;;
+13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;;
+13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;;
+13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;;
+13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;;
+13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;;
+13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;;
+13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;;
+13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;;
+13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;;
+13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;;
+13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;;
+13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;;
+13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;;
+13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;;
+13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;;
+13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;;
+13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;;
+13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;;
+13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;;
+13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;;
+1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;;
+1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;;
+1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;;
+1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;;
+1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;;
+1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;;
+1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;;
+1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;;
+1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;;
+140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;;
+140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;;
+140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;;
+140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;;
+140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;;
+140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;;
+1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;;
+1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;;
+1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;;
+1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;;
+1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;;
+1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;;
+1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;;
+1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;;
+1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;;
+1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;;
+141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;;
+141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;;
+141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;;
+141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;;
+141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;;
+1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;;
+1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;;
+1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;;
+1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;;
+1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;;
+1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;;
+1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;;
+1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;;
+1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;;
+1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;;
+142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;;
+142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;;
+142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;;
+142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;;
+142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;;
+142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;;
+1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;;
+1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;;
+1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;;
+1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;;
+1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;;
+1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;;
+1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;;
+1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;;
+1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;;
+1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;;
+143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;;
+143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;;
+143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;;
+143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;;
+143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;;
+143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;;
+1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;;
+1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;;
+1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;;
+1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;;
+1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;;
+1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;;
+1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;;
+1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;;
+144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;;
+144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;;
+144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;;
+144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;;
+144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;;
+144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;;
+1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;;
+1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;;
+1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;;
+1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;;
+1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;;
+1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;;
+1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;;
+1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;;
+1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;;
+1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;;
+145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;;
+145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;;
+145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;;
+145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;;
+145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;;
+145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;;
+1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;;
+1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;;
+1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;;
+1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;;
+1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;;
+1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;;
+1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;;
+1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;;
+1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;;
+1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;;
+146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;;
+146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;;
+146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;;
+146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;;
+146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;;
+146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;;
+1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;;
+1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;;
+1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;;
+1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;;
+1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;;
+1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;;
+1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;;
+1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;;
+1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;;
+1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;;
+147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;;
+147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;;
+147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;;
+147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;;
+147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;;
+147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;;
+1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;;
+1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;;
+1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;;
+1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;;
+1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;;
+1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;;
+1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;;
+1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;;
+1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;;
+1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;;
+148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;;
+148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;;
+148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;;
+148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;;
+148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;;
+148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;;
+1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;;
+1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;;
+1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;;
+1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;;
+1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;;
+1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;;
+1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;;
+1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;;
+1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;;
+1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;;
+149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;;
+149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;;
+149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;;
+149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;;
+149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;;
+149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;;
+14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;;
+14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;;
+14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;;
+14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;;
+14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;;
+14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;;
+14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;;
+14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;;
+14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;;
+14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;;
+14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;;
+14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;;
+14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;;
+14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;;
+14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;;
+14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;;
+14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;;
+14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;;
+14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;;
+14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;;
+14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;;
+14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;;
+14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;;
+14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;;
+14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;;
+14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;;
+14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;;
+14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;;
+14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;;
+14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;;
+14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;;
+14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;;
+14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;;
+14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;;
+14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;;
+14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;;
+14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;;
+14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;;
+14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;;
+14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;;
+14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;;
+14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;;
+14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;;
+14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;;
+14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;;
+14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;;
+14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;;
+14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;;
+14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;;
+14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;;
+14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;;
+14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;;
+14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;;
+14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;;
+14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;;
+14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;;
+14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;;
+14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;;
+14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;;
+14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;;
+14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;;
+14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;;
+14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;;
+14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;;
+14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;;
+14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;;
+14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;;
+14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;;
+14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;;
+14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;;
+14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;;
+14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;;
+14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;;
+14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;;
+14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;;
+14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;;
+14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;;
+14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;;
+14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;;
+14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;;
+14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;;
+14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;;
+14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;;
+14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;;
+14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;;
+14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;;
+14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;;
+14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;;
+14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;;
+14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;;
+14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;;
+14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;;
+14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;;
+14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;;
+14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;;
+14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;;
+1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;;
+1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;;
+1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;;
+1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;;
+1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;;
+1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;;
+1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;;
+1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;;
+1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;;
+1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;;
+150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;;
+150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;;
+150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;;
+150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;;
+150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;;
+150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;;
+1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;;
+1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;;
+1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;;
+1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;;
+1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;;
+1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;;
+1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;;
+1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;;
+1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;;
+1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;;
+151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;;
+151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;;
+151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;;
+151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;;
+151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;;
+151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;;
+1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;;
+1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;;
+1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;;
+1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;;
+1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;;
+1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;;
+1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;;
+1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;;
+1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;;
+1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;;
+152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;;
+152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;;
+152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;;
+152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;;
+152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;;
+152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;;
+1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;;
+1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;;
+1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;;
+1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;;
+1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;;
+1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;;
+1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;;
+1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;;
+1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;;
+1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;;
+153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;;
+153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;;
+153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;;
+153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;;
+153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;;
+153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;;
+1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;;
+1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;;
+1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;;
+1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;;
+1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;;
+1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;;
+1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;;
+1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;;
+1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;;
+1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;;
+154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;;
+154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;;
+154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;;
+154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;;
+154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;;
+154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;;
+1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;;
+1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;;
+1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;;
+1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;;
+1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;;
+1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;;
+1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;;
+1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;;
+1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;;
+1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;;
+155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;;
+155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;;
+155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;;
+155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;;
+155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;;
+155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;;
+1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;;
+1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;;
+1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;;
+1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;;
+1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;;
+1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;;
+1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;;
+1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;;
+1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;;
+1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;;
+156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;;
+156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;;
+156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;;
+156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;;
+156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;;
+156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;;
+1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;;
+1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;;
+1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;;
+1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;;
+1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;;
+1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;;
+1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;;
+1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;;
+1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;;
+1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;;
+157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;;
+157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;;
+157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;;
+157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;;
+157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;;
+157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;;
+1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;;
+1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;;
+1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;;
+1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;;
+1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;;
+1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;;
+1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;;
+1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;;
+1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;;
+1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;;
+158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;;
+158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;;
+158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;;
+158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;;
+158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;;
+158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;;
+1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;;
+1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;;
+1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;;
+1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;;
+1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;;
+1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;;
+1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;;
+1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;;
+1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;;
+1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;;
+159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;;
+159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;;
+159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;;
+159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;;
+159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;;
+159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;;
+15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;;
+15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;;
+15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;;
+15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;;
+15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;;
+15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;;
+15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;;
+15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;;
+15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;;
+15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;;
+15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;;
+15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;;
+15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;;
+15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;;
+15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;;
+15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;;
+15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;;
+15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;;
+15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;;
+15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;;
+15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;;
+15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;;
+15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;;
+15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;;
+15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;;
+15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;;
+15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;;
+15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;;
+15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;;
+15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;;
+15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;;
+15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;;
+15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;;
+15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;;
+15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;;
+15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;;
+15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;;
+15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;;
+15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;;
+15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;;
+15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;;
+15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;;
+15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;;
+15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;;
+15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;;
+15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;;
+15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;;
+15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;;
+15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;;
+15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;;
+15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;;
+15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;;
+15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;;
+15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;;
+15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;;
+15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;;
+15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;;
+15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;;
+15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;;
+15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;;
+15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;;
+15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;;
+15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;;
+15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;;
+15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;;
+15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;;
+15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;;
+15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;;
+15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;;
+15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;;
+15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;;
+15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;;
+15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;;
+15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;;
+15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;;
+15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;;
+15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;;
+15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;;
+15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;;
+15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;;
+15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;;
+15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;;
+15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;;
+15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;;
+15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;;
+15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;;
+15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;;
+15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;;
+15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;;
+15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;;
+15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;;
+15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;;
+15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;;
+15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;;
+15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;;
+15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;;
+1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;;
+1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;;
+1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;;
+1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;;
+1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;;
+1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;;
+1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;;
+1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;;
+1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;;
+1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;;
+160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;;
+160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;;
+160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;;
+160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;;
+160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;;
+160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;;
+1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;;
+1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;;
+1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;;
+1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;;
+1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;;
+1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;;
+1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;;
+1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;;
+1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;;
+1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;;
+161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;;
+161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;;
+161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;;
+161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;;
+161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;;
+161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;;
+1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;;
+1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;;
+1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;;
+1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;;
+1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;;
+1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;;
+1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;;
+1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;;
+1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;;
+1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;;
+162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;;
+162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;;
+162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;;
+162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;;
+162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;;
+162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;;
+1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;;
+1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;;
+1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;;
+1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;;
+1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;;
+1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;;
+1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;;
+1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;;
+1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;;
+1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;;
+163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;;
+163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;;
+163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;;
+163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;;
+163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;;
+163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;;
+1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;;
+1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;;
+1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;;
+1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;;
+1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;;
+1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;;
+1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;;
+1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;;
+1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;;
+1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;;
+164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;;
+164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;;
+164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;;
+164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;;
+164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;;
+164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;;
+1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;;
+1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;;
+1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;;
+1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;;
+1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;;
+1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;;
+1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;;
+1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;;
+1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;;
+1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;;
+165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;;
+165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;;
+165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;;
+165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;;
+165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;;
+165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;;
+1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;;
+1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;;
+1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;;
+1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;;
+1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;;
+1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;;
+1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;;
+1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;;
+1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;;
+1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;;
+166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;;
+166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;;
+166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;;
+166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;;
+166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;;
+166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;;
+1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;;
+1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;;
+1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;;
+1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;;
+1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;;
+1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;;
+1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;;
+1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;;
+1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;;
+1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;;
+1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;;
+1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;;
+1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;;
+1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;;
+1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;;
+1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;;
+1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;;
+168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;;
+168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;;
+168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;;
+168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;;
+168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;;
+168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;;
+1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;;
+1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;;
+1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;;
+1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;;
+1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;;
+1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;;
+1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;;
+1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;;
+1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;;
+1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;;
+169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;;
+169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;Y;;;;;
+169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;Y;;;;;
+16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;;
+16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;;
+16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;;
+16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;;
+16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;;
+16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;;
+16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;;
+16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;;
+16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;;
+16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;;
+16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;;
+16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;;
+16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;;
+16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;;
+16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;;
+16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;;
+16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;;
+16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;;
+16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;;
+16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;;
+16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;;
+16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;;
+16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;;
+16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;;
+16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;;
+16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;;
+16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;;
+16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;;
+16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;;
+16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;;
+16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;;
+16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;;
+16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;;
+16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;;
+16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;;
+16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;;
+16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;;
+16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;;
+16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;;
+16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;;
+16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;;
+16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;;
+16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;;
+16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;;
+16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;;
+16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;;
+16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;;
+16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;;
+16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;;
+16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;;
+16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;;
+16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;;
+16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;;
+16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;;
+16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;;
+16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;;
+16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;;
+16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;;
+16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;;
+16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;;
+16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;;
+16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;;
+16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;;
+16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;;
+16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;;
+16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;;
+16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;;
+16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;;
+16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;;
+16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;;
+16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;;
+16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;golden number 17;;;
+16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;golden number 18;;;
+16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;golden number 19;;;
+1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;;
+1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;;
+1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;;
+1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;;
+1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;;
+1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;;
+1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;;
+1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;;
+1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;;
+1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;;
+170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;;
+170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;;
+170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;;
+170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;;
+170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;;
+1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;;
+1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;;
+1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;;
+1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;;
+1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;;
+1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;;
+1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;;
+1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;;
+1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;;
+1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;;
+1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;;
+1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;;
+172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;;
+172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;;
+172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;;
+172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;;
+172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;;
+172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;;
+1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;;
+1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;;
+1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;;
+1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;;
+1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;;
+1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;;
+1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;;
+1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;;
+1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;;
+1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;;
+1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;;
+1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;;
+1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;;
+174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;;
+174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;;
+174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;;
+174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;;
+174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;;
+174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;;
+1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;;
+1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;;
+1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;;
+1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;;
+1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;;
+1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;;
+1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;;
+1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;;
+1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;;
+1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;;
+1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;;
+1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;;
+176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;;
+176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;;
+176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;;
+176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;;
+176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;;
+1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;;
+1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;;
+1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;;
+1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;;
+1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;;
+1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;;
+1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;;
+1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;;
+1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;;
+1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;;
+1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;;
+178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;;
+178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;;
+178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;;
+178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;;
+178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;;
+178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;;
+1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;;
+1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;;
+1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;;
+1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;;
+1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;;
+1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;;
+1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;;
+1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;;
+1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;;
+1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;;
+179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;;
+179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;;
+179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;;
+179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;;
+179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;;
+179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;;
+17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;;
+17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;;
+17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;;
+17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;*;;;
+17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;*;;;
+17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;;
+17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;;
+17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;;
+17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;;
+17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;;
+17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;;
+17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;;
+17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;;
+17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;;
+17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;;
+17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;;
+17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;;
+17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;;
+17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;;
+17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;;
+17B4;KHMER VOWEL INHERENT AQ;Cf;0;L;;;;;N;;*;;;
+17B5;KHMER VOWEL INHERENT AA;Cf;0;L;;;;;N;;*;;;
+17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;;
+17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;;
+17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;;
+17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;
+17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;;
+17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;;
+17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;;
+17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;;
+17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;;
+17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;;
+17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;;
+17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;;
+17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;;
+17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;;
+17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;;
+17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;;
+17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;;
+17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;*;;;
+17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;;
+17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;;
+17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;;
+17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;;
+17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;*;;;
+17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;;
+17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;;
+17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;;
+17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;;
+17DD;KHMER SIGN ATTHACAN;Mn;230;NSM;;;;;N;;;;;
+17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+17F0;KHMER SYMBOL LEK ATTAK SON;No;0;ON;;;;0;N;;;;;
+17F1;KHMER SYMBOL LEK ATTAK MUOY;No;0;ON;;;;1;N;;;;;
+17F2;KHMER SYMBOL LEK ATTAK PII;No;0;ON;;;;2;N;;;;;
+17F3;KHMER SYMBOL LEK ATTAK BEI;No;0;ON;;;;3;N;;;;;
+17F4;KHMER SYMBOL LEK ATTAK BUON;No;0;ON;;;;4;N;;;;;
+17F5;KHMER SYMBOL LEK ATTAK PRAM;No;0;ON;;;;5;N;;;;;
+17F6;KHMER SYMBOL LEK ATTAK PRAM-MUOY;No;0;ON;;;;6;N;;;;;
+17F7;KHMER SYMBOL LEK ATTAK PRAM-PII;No;0;ON;;;;7;N;;;;;
+17F8;KHMER SYMBOL LEK ATTAK PRAM-BEI;No;0;ON;;;;8;N;;;;;
+17F9;KHMER SYMBOL LEK ATTAK PRAM-BUON;No;0;ON;;;;9;N;;;;;
+1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;;
+1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;;
+1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;;
+1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;;
+1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;;
+1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;;
+1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;
+1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;;
+1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;;
+1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;;
+180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;;
+180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;;
+180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;;
+180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;;
+180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;;
+1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;;
+1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;;
+1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;;
+1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;;
+1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;;
+1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;;
+1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;;
+1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;;
+1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;;
+1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;;
+182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;;
+182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;;
+182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;;
+182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;;
+182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;;
+182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;;
+1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;;
+1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;;
+1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;;
+1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;;
+1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;;
+1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;;
+1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;;
+1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;;
+183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;;
+183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;;
+183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;;
+1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;;
+1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;;
+1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;;
+1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;;
+1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;;
+1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;;
+1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;;
+1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;;
+1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;;
+1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;;
+184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;;
+184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;;
+184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;;
+184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;;
+184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;;
+184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;;
+1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;;
+1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;;
+1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;;
+1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;;
+1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;;
+1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;;
+1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;;
+1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;;
+1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;;
+1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;;
+185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;;
+185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;;
+185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;;
+185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;;
+185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;;
+185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;;
+1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;;
+1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;;
+1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;;
+1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;;
+1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;;
+1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;;
+1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;;
+1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;;
+1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;;
+1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;;
+186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;;
+186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;;
+186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;;
+186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;;
+186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;;
+186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;;
+1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;;
+1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;;
+1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;;
+1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;;
+1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;;
+1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;;
+1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;;
+1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;;
+1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;;
+1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;;
+1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;;
+1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;;
+1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;;
+1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;;
+1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;;
+1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;;
+1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;;
+1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;;
+188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;;
+188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;;
+188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;;
+188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;;
+1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;;
+1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;;
+1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;;
+1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;;
+1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;;
+189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;;
+189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;;
+189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;;
+18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;;
+18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;;
+18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;;
+18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;;
+18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;;
+18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;;
+18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;;
+1900;LIMBU VOWEL-CARRIER LETTER;Lo;0;L;;;;;N;;;;;
+1901;LIMBU LETTER KA;Lo;0;L;;;;;N;;;;;
+1902;LIMBU LETTER KHA;Lo;0;L;;;;;N;;;;;
+1903;LIMBU LETTER GA;Lo;0;L;;;;;N;;;;;
+1904;LIMBU LETTER GHA;Lo;0;L;;;;;N;;;;;
+1905;LIMBU LETTER NGA;Lo;0;L;;;;;N;;;;;
+1906;LIMBU LETTER CA;Lo;0;L;;;;;N;;;;;
+1907;LIMBU LETTER CHA;Lo;0;L;;;;;N;;;;;
+1908;LIMBU LETTER JA;Lo;0;L;;;;;N;;;;;
+1909;LIMBU LETTER JHA;Lo;0;L;;;;;N;;;;;
+190A;LIMBU LETTER YAN;Lo;0;L;;;;;N;;;;;
+190B;LIMBU LETTER TA;Lo;0;L;;;;;N;;;;;
+190C;LIMBU LETTER THA;Lo;0;L;;;;;N;;;;;
+190D;LIMBU LETTER DA;Lo;0;L;;;;;N;;;;;
+190E;LIMBU LETTER DHA;Lo;0;L;;;;;N;;;;;
+190F;LIMBU LETTER NA;Lo;0;L;;;;;N;;;;;
+1910;LIMBU LETTER PA;Lo;0;L;;;;;N;;;;;
+1911;LIMBU LETTER PHA;Lo;0;L;;;;;N;;;;;
+1912;LIMBU LETTER BA;Lo;0;L;;;;;N;;;;;
+1913;LIMBU LETTER BHA;Lo;0;L;;;;;N;;;;;
+1914;LIMBU LETTER MA;Lo;0;L;;;;;N;;;;;
+1915;LIMBU LETTER YA;Lo;0;L;;;;;N;;;;;
+1916;LIMBU LETTER RA;Lo;0;L;;;;;N;;;;;
+1917;LIMBU LETTER LA;Lo;0;L;;;;;N;;;;;
+1918;LIMBU LETTER WA;Lo;0;L;;;;;N;;;;;
+1919;LIMBU LETTER SHA;Lo;0;L;;;;;N;;;;;
+191A;LIMBU LETTER SSA;Lo;0;L;;;;;N;;;;;
+191B;LIMBU LETTER SA;Lo;0;L;;;;;N;;;;;
+191C;LIMBU LETTER HA;Lo;0;L;;;;;N;;;;;
+1920;LIMBU VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;
+1921;LIMBU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1922;LIMBU VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1923;LIMBU VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+1924;LIMBU VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+1925;LIMBU VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+1926;LIMBU VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+1927;LIMBU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+1928;LIMBU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+1929;LIMBU SUBJOINED LETTER YA;Mc;0;NSM;;;;;N;;;;;
+192A;LIMBU SUBJOINED LETTER RA;Mc;0;NSM;;;;;N;;;;;
+192B;LIMBU SUBJOINED LETTER WA;Mc;0;NSM;;;;;N;;;;;
+1930;LIMBU SMALL LETTER KA;Mc;0;L;;;;;N;;;;;
+1931;LIMBU SMALL LETTER NGA;Mc;0;L;;;;;N;;;;;
+1932;LIMBU SMALL LETTER ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1933;LIMBU SMALL LETTER TA;Mc;0;L;;;;;N;;;;;
+1934;LIMBU SMALL LETTER NA;Mc;0;L;;;;;N;;;;;
+1935;LIMBU SMALL LETTER PA;Mc;0;L;;;;;N;;;;;
+1936;LIMBU SMALL LETTER MA;Mc;0;L;;;;;N;;;;;
+1937;LIMBU SMALL LETTER RA;Mc;0;L;;;;;N;;;;;
+1938;LIMBU SMALL LETTER LA;Mc;0;L;;;;;N;;;;;
+1939;LIMBU SIGN MUKPHRENG;Mn;222;NSM;;;;;N;;;;;
+193A;LIMBU SIGN KEMPHRENG;Mn;230;NSM;;;;;N;;;;;
+193B;LIMBU SIGN SA-I;Mn;220;NSM;;;;;N;;;;;
+1940;LIMBU SIGN LOO;So;0;ON;;;;;N;;;;;
+1944;LIMBU EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+1945;LIMBU QUESTION MARK;Po;0;ON;;;;;N;;;;;
+1946;LIMBU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1947;LIMBU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1948;LIMBU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1949;LIMBU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+194A;LIMBU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+194B;LIMBU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+194C;LIMBU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+194D;LIMBU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+194E;LIMBU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+194F;LIMBU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1950;TAI LE LETTER KA;Lo;0;L;;;;;N;;;;;
+1951;TAI LE LETTER XA;Lo;0;L;;;;;N;;;;;
+1952;TAI LE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1953;TAI LE LETTER TSA;Lo;0;L;;;;;N;;;;;
+1954;TAI LE LETTER SA;Lo;0;L;;;;;N;;;;;
+1955;TAI LE LETTER YA;Lo;0;L;;;;;N;;;;;
+1956;TAI LE LETTER TA;Lo;0;L;;;;;N;;;;;
+1957;TAI LE LETTER THA;Lo;0;L;;;;;N;;;;;
+1958;TAI LE LETTER LA;Lo;0;L;;;;;N;;;;;
+1959;TAI LE LETTER PA;Lo;0;L;;;;;N;;;;;
+195A;TAI LE LETTER PHA;Lo;0;L;;;;;N;;;;;
+195B;TAI LE LETTER MA;Lo;0;L;;;;;N;;;;;
+195C;TAI LE LETTER FA;Lo;0;L;;;;;N;;;;;
+195D;TAI LE LETTER VA;Lo;0;L;;;;;N;;;;;
+195E;TAI LE LETTER HA;Lo;0;L;;;;;N;;;;;
+195F;TAI LE LETTER QA;Lo;0;L;;;;;N;;;;;
+1960;TAI LE LETTER KHA;Lo;0;L;;;;;N;;;;;
+1961;TAI LE LETTER TSHA;Lo;0;L;;;;;N;;;;;
+1962;TAI LE LETTER NA;Lo;0;L;;;;;N;;;;;
+1963;TAI LE LETTER A;Lo;0;L;;;;;N;;;;;
+1964;TAI LE LETTER I;Lo;0;L;;;;;N;;;;;
+1965;TAI LE LETTER EE;Lo;0;L;;;;;N;;;;;
+1966;TAI LE LETTER EH;Lo;0;L;;;;;N;;;;;
+1967;TAI LE LETTER U;Lo;0;L;;;;;N;;;;;
+1968;TAI LE LETTER OO;Lo;0;L;;;;;N;;;;;
+1969;TAI LE LETTER O;Lo;0;L;;;;;N;;;;;
+196A;TAI LE LETTER UE;Lo;0;L;;;;;N;;;;;
+196B;TAI LE LETTER E;Lo;0;L;;;;;N;;;;;
+196C;TAI LE LETTER AUE;Lo;0;L;;;;;N;;;;;
+196D;TAI LE LETTER AI;Lo;0;L;;;;;N;;;;;
+1970;TAI LE LETTER TONE-2;Lo;0;L;;;;;N;;;;;
+1971;TAI LE LETTER TONE-3;Lo;0;L;;;;;N;;;;;
+1972;TAI LE LETTER TONE-4;Lo;0;L;;;;;N;;;;;
+1973;TAI LE LETTER TONE-5;Lo;0;L;;;;;N;;;;;
+1974;TAI LE LETTER TONE-6;Lo;0;L;;;;;N;;;;;
+1980;NEW TAI LUE LETTER HIGH QA;Lo;0;L;;;;;N;;;;;
+1981;NEW TAI LUE LETTER LOW QA;Lo;0;L;;;;;N;;;;;
+1982;NEW TAI LUE LETTER HIGH KA;Lo;0;L;;;;;N;;;;;
+1983;NEW TAI LUE LETTER HIGH XA;Lo;0;L;;;;;N;;;;;
+1984;NEW TAI LUE LETTER HIGH NGA;Lo;0;L;;;;;N;;;;;
+1985;NEW TAI LUE LETTER LOW KA;Lo;0;L;;;;;N;;;;;
+1986;NEW TAI LUE LETTER LOW XA;Lo;0;L;;;;;N;;;;;
+1987;NEW TAI LUE LETTER LOW NGA;Lo;0;L;;;;;N;;;;;
+1988;NEW TAI LUE LETTER HIGH TSA;Lo;0;L;;;;;N;;;;;
+1989;NEW TAI LUE LETTER HIGH SA;Lo;0;L;;;;;N;;;;;
+198A;NEW TAI LUE LETTER HIGH YA;Lo;0;L;;;;;N;;;;;
+198B;NEW TAI LUE LETTER LOW TSA;Lo;0;L;;;;;N;;;;;
+198C;NEW TAI LUE LETTER LOW SA;Lo;0;L;;;;;N;;;;;
+198D;NEW TAI LUE LETTER LOW YA;Lo;0;L;;;;;N;;;;;
+198E;NEW TAI LUE LETTER HIGH TA;Lo;0;L;;;;;N;;;;;
+198F;NEW TAI LUE LETTER HIGH THA;Lo;0;L;;;;;N;;;;;
+1990;NEW TAI LUE LETTER HIGH NA;Lo;0;L;;;;;N;;;;;
+1991;NEW TAI LUE LETTER LOW TA;Lo;0;L;;;;;N;;;;;
+1992;NEW TAI LUE LETTER LOW THA;Lo;0;L;;;;;N;;;;;
+1993;NEW TAI LUE LETTER LOW NA;Lo;0;L;;;;;N;;;;;
+1994;NEW TAI LUE LETTER HIGH PA;Lo;0;L;;;;;N;;;;;
+1995;NEW TAI LUE LETTER HIGH PHA;Lo;0;L;;;;;N;;;;;
+1996;NEW TAI LUE LETTER HIGH MA;Lo;0;L;;;;;N;;;;;
+1997;NEW TAI LUE LETTER LOW PA;Lo;0;L;;;;;N;;;;;
+1998;NEW TAI LUE LETTER LOW PHA;Lo;0;L;;;;;N;;;;;
+1999;NEW TAI LUE LETTER LOW MA;Lo;0;L;;;;;N;;;;;
+199A;NEW TAI LUE LETTER HIGH FA;Lo;0;L;;;;;N;;;;;
+199B;NEW TAI LUE LETTER HIGH VA;Lo;0;L;;;;;N;;;;;
+199C;NEW TAI LUE LETTER HIGH LA;Lo;0;L;;;;;N;;;;;
+199D;NEW TAI LUE LETTER LOW FA;Lo;0;L;;;;;N;;;;;
+199E;NEW TAI LUE LETTER LOW VA;Lo;0;L;;;;;N;;;;;
+199F;NEW TAI LUE LETTER LOW LA;Lo;0;L;;;;;N;;;;;
+19A0;NEW TAI LUE LETTER HIGH HA;Lo;0;L;;;;;N;;;;;
+19A1;NEW TAI LUE LETTER HIGH DA;Lo;0;L;;;;;N;;;;;
+19A2;NEW TAI LUE LETTER HIGH BA;Lo;0;L;;;;;N;;;;;
+19A3;NEW TAI LUE LETTER LOW HA;Lo;0;L;;;;;N;;;;;
+19A4;NEW TAI LUE LETTER LOW DA;Lo;0;L;;;;;N;;;;;
+19A5;NEW TAI LUE LETTER LOW BA;Lo;0;L;;;;;N;;;;;
+19A6;NEW TAI LUE LETTER HIGH KVA;Lo;0;L;;;;;N;;;;;
+19A7;NEW TAI LUE LETTER HIGH XVA;Lo;0;L;;;;;N;;;;;
+19A8;NEW TAI LUE LETTER LOW KVA;Lo;0;L;;;;;N;;;;;
+19A9;NEW TAI LUE LETTER LOW XVA;Lo;0;L;;;;;N;;;;;
+19B0;NEW TAI LUE VOWEL SIGN VOWEL SHORTENER;Mc;0;L;;;;;N;;;;;
+19B1;NEW TAI LUE VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+19B2;NEW TAI LUE VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+19B3;NEW TAI LUE VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+19B4;NEW TAI LUE VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+19B5;NEW TAI LUE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+19B6;NEW TAI LUE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+19B7;NEW TAI LUE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+19B8;NEW TAI LUE VOWEL SIGN OA;Mc;0;L;;;;;N;;;;;
+19B9;NEW TAI LUE VOWEL SIGN UE;Mc;0;L;;;;;N;;;;;
+19BA;NEW TAI LUE VOWEL SIGN AY;Mc;0;L;;;;;N;;;;;
+19BB;NEW TAI LUE VOWEL SIGN AAY;Mc;0;L;;;;;N;;;;;
+19BC;NEW TAI LUE VOWEL SIGN UY;Mc;0;L;;;;;N;;;;;
+19BD;NEW TAI LUE VOWEL SIGN OY;Mc;0;L;;;;;N;;;;;
+19BE;NEW TAI LUE VOWEL SIGN OAY;Mc;0;L;;;;;N;;;;;
+19BF;NEW TAI LUE VOWEL SIGN UEY;Mc;0;L;;;;;N;;;;;
+19C0;NEW TAI LUE VOWEL SIGN IY;Mc;0;L;;;;;N;;;;;
+19C1;NEW TAI LUE LETTER FINAL V;Lo;0;L;;;;;N;;;;;
+19C2;NEW TAI LUE LETTER FINAL NG;Lo;0;L;;;;;N;;;;;
+19C3;NEW TAI LUE LETTER FINAL N;Lo;0;L;;;;;N;;;;;
+19C4;NEW TAI LUE LETTER FINAL M;Lo;0;L;;;;;N;;;;;
+19C5;NEW TAI LUE LETTER FINAL K;Lo;0;L;;;;;N;;;;;
+19C6;NEW TAI LUE LETTER FINAL D;Lo;0;L;;;;;N;;;;;
+19C7;NEW TAI LUE LETTER FINAL B;Lo;0;L;;;;;N;;;;;
+19C8;NEW TAI LUE TONE MARK-1;Mc;0;L;;;;;N;;;;;
+19C9;NEW TAI LUE TONE MARK-2;Mc;0;L;;;;;N;;;;;
+19D0;NEW TAI LUE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+19D1;NEW TAI LUE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+19D2;NEW TAI LUE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+19D3;NEW TAI LUE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+19D4;NEW TAI LUE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+19D5;NEW TAI LUE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+19D6;NEW TAI LUE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+19D7;NEW TAI LUE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+19D8;NEW TAI LUE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+19D9;NEW TAI LUE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+19DE;NEW TAI LUE SIGN LAE;Po;0;ON;;;;;N;;;;;
+19DF;NEW TAI LUE SIGN LAEV;Po;0;ON;;;;;N;;;;;
+19E0;KHMER SYMBOL PATHAMASAT;So;0;ON;;;;;N;;;;;
+19E1;KHMER SYMBOL MUOY KOET;So;0;ON;;;;;N;;;;;
+19E2;KHMER SYMBOL PII KOET;So;0;ON;;;;;N;;;;;
+19E3;KHMER SYMBOL BEI KOET;So;0;ON;;;;;N;;;;;
+19E4;KHMER SYMBOL BUON KOET;So;0;ON;;;;;N;;;;;
+19E5;KHMER SYMBOL PRAM KOET;So;0;ON;;;;;N;;;;;
+19E6;KHMER SYMBOL PRAM-MUOY KOET;So;0;ON;;;;;N;;;;;
+19E7;KHMER SYMBOL PRAM-PII KOET;So;0;ON;;;;;N;;;;;
+19E8;KHMER SYMBOL PRAM-BEI KOET;So;0;ON;;;;;N;;;;;
+19E9;KHMER SYMBOL PRAM-BUON KOET;So;0;ON;;;;;N;;;;;
+19EA;KHMER SYMBOL DAP KOET;So;0;ON;;;;;N;;;;;
+19EB;KHMER SYMBOL DAP-MUOY KOET;So;0;ON;;;;;N;;;;;
+19EC;KHMER SYMBOL DAP-PII KOET;So;0;ON;;;;;N;;;;;
+19ED;KHMER SYMBOL DAP-BEI KOET;So;0;ON;;;;;N;;;;;
+19EE;KHMER SYMBOL DAP-BUON KOET;So;0;ON;;;;;N;;;;;
+19EF;KHMER SYMBOL DAP-PRAM KOET;So;0;ON;;;;;N;;;;;
+19F0;KHMER SYMBOL TUTEYASAT;So;0;ON;;;;;N;;;;;
+19F1;KHMER SYMBOL MUOY ROC;So;0;ON;;;;;N;;;;;
+19F2;KHMER SYMBOL PII ROC;So;0;ON;;;;;N;;;;;
+19F3;KHMER SYMBOL BEI ROC;So;0;ON;;;;;N;;;;;
+19F4;KHMER SYMBOL BUON ROC;So;0;ON;;;;;N;;;;;
+19F5;KHMER SYMBOL PRAM ROC;So;0;ON;;;;;N;;;;;
+19F6;KHMER SYMBOL PRAM-MUOY ROC;So;0;ON;;;;;N;;;;;
+19F7;KHMER SYMBOL PRAM-PII ROC;So;0;ON;;;;;N;;;;;
+19F8;KHMER SYMBOL PRAM-BEI ROC;So;0;ON;;;;;N;;;;;
+19F9;KHMER SYMBOL PRAM-BUON ROC;So;0;ON;;;;;N;;;;;
+19FA;KHMER SYMBOL DAP ROC;So;0;ON;;;;;N;;;;;
+19FB;KHMER SYMBOL DAP-MUOY ROC;So;0;ON;;;;;N;;;;;
+19FC;KHMER SYMBOL DAP-PII ROC;So;0;ON;;;;;N;;;;;
+19FD;KHMER SYMBOL DAP-BEI ROC;So;0;ON;;;;;N;;;;;
+19FE;KHMER SYMBOL DAP-BUON ROC;So;0;ON;;;;;N;;;;;
+19FF;KHMER SYMBOL DAP-PRAM ROC;So;0;ON;;;;;N;;;;;
+1A00;BUGINESE LETTER KA;Lo;0;L;;;;;N;;;;;
+1A01;BUGINESE LETTER GA;Lo;0;L;;;;;N;;;;;
+1A02;BUGINESE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1A03;BUGINESE LETTER NGKA;Lo;0;L;;;;;N;;;;;
+1A04;BUGINESE LETTER PA;Lo;0;L;;;;;N;;;;;
+1A05;BUGINESE LETTER BA;Lo;0;L;;;;;N;;;;;
+1A06;BUGINESE LETTER MA;Lo;0;L;;;;;N;;;;;
+1A07;BUGINESE LETTER MPA;Lo;0;L;;;;;N;;;;;
+1A08;BUGINESE LETTER TA;Lo;0;L;;;;;N;;;;;
+1A09;BUGINESE LETTER DA;Lo;0;L;;;;;N;;;;;
+1A0A;BUGINESE LETTER NA;Lo;0;L;;;;;N;;;;;
+1A0B;BUGINESE LETTER NRA;Lo;0;L;;;;;N;;;;;
+1A0C;BUGINESE LETTER CA;Lo;0;L;;;;;N;;;;;
+1A0D;BUGINESE LETTER JA;Lo;0;L;;;;;N;;;;;
+1A0E;BUGINESE LETTER NYA;Lo;0;L;;;;;N;;;;;
+1A0F;BUGINESE LETTER NYCA;Lo;0;L;;;;;N;;;;;
+1A10;BUGINESE LETTER YA;Lo;0;L;;;;;N;;;;;
+1A11;BUGINESE LETTER RA;Lo;0;L;;;;;N;;;;;
+1A12;BUGINESE LETTER LA;Lo;0;L;;;;;N;;;;;
+1A13;BUGINESE LETTER VA;Lo;0;L;;;;;N;;;;;
+1A14;BUGINESE LETTER SA;Lo;0;L;;;;;N;;;;;
+1A15;BUGINESE LETTER A;Lo;0;L;;;;;N;;;;;
+1A16;BUGINESE LETTER HA;Lo;0;L;;;;;N;;;;;
+1A17;BUGINESE VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;;
+1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;;
+1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;;
+1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;;
+1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;ardhacandra;;;
+1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;candrabindu;;;
+1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;anusvara;;;
+1B03;BALINESE SIGN SURANG;Mn;0;NSM;;;;;N;;repha;;;
+1B04;BALINESE SIGN BISAH;Mc;0;L;;;;;N;;visarga;;;
+1B05;BALINESE LETTER AKARA;Lo;0;L;;;;;N;;a;;;
+1B06;BALINESE LETTER AKARA TEDUNG;Lo;0;L;1B05 1B35;;;;N;;aa;;;
+1B07;BALINESE LETTER IKARA;Lo;0;L;;;;;N;;i;;;
+1B08;BALINESE LETTER IKARA TEDUNG;Lo;0;L;1B07 1B35;;;;N;;ii;;;
+1B09;BALINESE LETTER UKARA;Lo;0;L;;;;;N;;u;;;
+1B0A;BALINESE LETTER UKARA TEDUNG;Lo;0;L;1B09 1B35;;;;N;;uu;;;
+1B0B;BALINESE LETTER RA REPA;Lo;0;L;;;;;N;;vocalic r;;;
+1B0C;BALINESE LETTER RA REPA TEDUNG;Lo;0;L;1B0B 1B35;;;;N;;vocalic rr;;;
+1B0D;BALINESE LETTER LA LENGA;Lo;0;L;;;;;N;;vocalic l;;;
+1B0E;BALINESE LETTER LA LENGA TEDUNG;Lo;0;L;1B0D 1B35;;;;N;;vocalic ll;;;
+1B0F;BALINESE LETTER EKARA;Lo;0;L;;;;;N;;e;;;
+1B10;BALINESE LETTER AIKARA;Lo;0;L;;;;;N;;ai;;;
+1B11;BALINESE LETTER OKARA;Lo;0;L;;;;;N;;o;;;
+1B12;BALINESE LETTER OKARA TEDUNG;Lo;0;L;1B11 1B35;;;;N;;au;;;
+1B13;BALINESE LETTER KA;Lo;0;L;;;;;N;;;;;
+1B14;BALINESE LETTER KA MAHAPRANA;Lo;0;L;;;;;N;;kha;;;
+1B15;BALINESE LETTER GA;Lo;0;L;;;;;N;;;;;
+1B16;BALINESE LETTER GA GORA;Lo;0;L;;;;;N;;gha;;;
+1B17;BALINESE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1B18;BALINESE LETTER CA;Lo;0;L;;;;;N;;;;;
+1B19;BALINESE LETTER CA LACA;Lo;0;L;;;;;N;;cha;;;
+1B1A;BALINESE LETTER JA;Lo;0;L;;;;;N;;;;;
+1B1B;BALINESE LETTER JA JERA;Lo;0;L;;;;;N;;jha;;;
+1B1C;BALINESE LETTER NYA;Lo;0;L;;;;;N;;;;;
+1B1D;BALINESE LETTER TA LATIK;Lo;0;L;;;;;N;;tta;;;
+1B1E;BALINESE LETTER TA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ttha;;;
+1B1F;BALINESE LETTER DA MURDA ALPAPRANA;Lo;0;L;;;;;N;;dda;;;
+1B20;BALINESE LETTER DA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ddha;;;
+1B21;BALINESE LETTER NA RAMBAT;Lo;0;L;;;;;N;;nna;;;
+1B22;BALINESE LETTER TA;Lo;0;L;;;;;N;;;;;
+1B23;BALINESE LETTER TA TAWA;Lo;0;L;;;;;N;;tha;;;
+1B24;BALINESE LETTER DA;Lo;0;L;;;;;N;;;;;
+1B25;BALINESE LETTER DA MADU;Lo;0;L;;;;;N;;dha;;;
+1B26;BALINESE LETTER NA;Lo;0;L;;;;;N;;;;;
+1B27;BALINESE LETTER PA;Lo;0;L;;;;;N;;;;;
+1B28;BALINESE LETTER PA KAPAL;Lo;0;L;;;;;N;;pha;;;
+1B29;BALINESE LETTER BA;Lo;0;L;;;;;N;;;;;
+1B2A;BALINESE LETTER BA KEMBANG;Lo;0;L;;;;;N;;bha;;;
+1B2B;BALINESE LETTER MA;Lo;0;L;;;;;N;;;;;
+1B2C;BALINESE LETTER YA;Lo;0;L;;;;;N;;;;;
+1B2D;BALINESE LETTER RA;Lo;0;L;;;;;N;;;;;
+1B2E;BALINESE LETTER LA;Lo;0;L;;;;;N;;;;;
+1B2F;BALINESE LETTER WA;Lo;0;L;;;;;N;;;;;
+1B30;BALINESE LETTER SA SAGA;Lo;0;L;;;;;N;;sha;;;
+1B31;BALINESE LETTER SA SAPA;Lo;0;L;;;;;N;;ssa;;;
+1B32;BALINESE LETTER SA;Lo;0;L;;;;;N;;;;;
+1B33;BALINESE LETTER HA;Lo;0;L;;;;;N;;;;;
+1B34;BALINESE SIGN REREKAN;Mn;7;NSM;;;;;N;;nukta;;;
+1B35;BALINESE VOWEL SIGN TEDUNG;Mc;0;L;;;;;N;;aa;;;
+1B36;BALINESE VOWEL SIGN ULU;Mn;0;NSM;;;;;N;;i;;;
+1B37;BALINESE VOWEL SIGN ULU SARI;Mn;0;NSM;;;;;N;;ii;;;
+1B38;BALINESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;u;;;
+1B39;BALINESE VOWEL SIGN SUKU ILUT;Mn;0;NSM;;;;;N;;uu;;;
+1B3A;BALINESE VOWEL SIGN RA REPA;Mn;0;NSM;;;;;N;;vocalic r;;;
+1B3B;BALINESE VOWEL SIGN RA REPA TEDUNG;Mc;0;L;1B3A 1B35;;;;N;;vocalic rr;;;
+1B3C;BALINESE VOWEL SIGN LA LENGA;Mn;0;NSM;;;;;N;;vocalic l;;;
+1B3D;BALINESE VOWEL SIGN LA LENGA TEDUNG;Mc;0;L;1B3C 1B35;;;;N;;vocalic ll;;;
+1B3E;BALINESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;e;;;
+1B3F;BALINESE VOWEL SIGN TALING REPA;Mc;0;L;;;;;N;;ai;;;
+1B40;BALINESE VOWEL SIGN TALING TEDUNG;Mc;0;L;1B3E 1B35;;;;N;;o;;;
+1B41;BALINESE VOWEL SIGN TALING REPA TEDUNG;Mc;0;L;1B3F 1B35;;;;N;;au;;;
+1B42;BALINESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;ae;;;
+1B43;BALINESE VOWEL SIGN PEPET TEDUNG;Mc;0;L;1B42 1B35;;;;N;;oe;;;
+1B44;BALINESE ADEG ADEG;Mc;9;L;;;;;N;;virama;;;
+1B45;BALINESE LETTER KAF SASAK;Lo;0;L;;;;;N;;;;;
+1B46;BALINESE LETTER KHOT SASAK;Lo;0;L;;;;;N;;;;;
+1B47;BALINESE LETTER TZIR SASAK;Lo;0;L;;;;;N;;;;;
+1B48;BALINESE LETTER EF SASAK;Lo;0;L;;;;;N;;;;;
+1B49;BALINESE LETTER VE SASAK;Lo;0;L;;;;;N;;;;;
+1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;;
+1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;;
+1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1B53;BALINESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1B54;BALINESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1B55;BALINESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1B56;BALINESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1B57;BALINESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1B58;BALINESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1B59;BALINESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1B5A;BALINESE PANTI;Po;0;L;;;;;N;;section;;;
+1B5B;BALINESE PAMADA;Po;0;L;;;;;N;;honorific section;;;
+1B5C;BALINESE WINDU;Po;0;L;;;;;N;;punctuation ring;;;
+1B5D;BALINESE CARIK PAMUNGKAH;Po;0;L;;;;;N;;colon;;;
+1B5E;BALINESE CARIK SIKI;Po;0;L;;;;;N;;danda;;;
+1B5F;BALINESE CARIK PAREREN;Po;0;L;;;;;N;;double danda;;;
+1B60;BALINESE PAMENENG;Po;0;L;;;;;N;;line-breaking hyphen;;;
+1B61;BALINESE MUSICAL SYMBOL DONG;So;0;L;;;;;N;;;;;
+1B62;BALINESE MUSICAL SYMBOL DENG;So;0;L;;;;;N;;;;;
+1B63;BALINESE MUSICAL SYMBOL DUNG;So;0;L;;;;;N;;;;;
+1B64;BALINESE MUSICAL SYMBOL DANG;So;0;L;;;;;N;;;;;
+1B65;BALINESE MUSICAL SYMBOL DANG SURANG;So;0;L;;;;;N;;;;;
+1B66;BALINESE MUSICAL SYMBOL DING;So;0;L;;;;;N;;;;;
+1B67;BALINESE MUSICAL SYMBOL DAENG;So;0;L;;;;;N;;;;;
+1B68;BALINESE MUSICAL SYMBOL DEUNG;So;0;L;;;;;N;;;;;
+1B69;BALINESE MUSICAL SYMBOL DAING;So;0;L;;;;;N;;;;;
+1B6A;BALINESE MUSICAL SYMBOL DANG GEDE;So;0;L;;;;;N;;;;;
+1B6B;BALINESE MUSICAL SYMBOL COMBINING TEGEH;Mn;230;NSM;;;;;N;;;;;
+1B6C;BALINESE MUSICAL SYMBOL COMBINING ENDEP;Mn;220;NSM;;;;;N;;;;;
+1B6D;BALINESE MUSICAL SYMBOL COMBINING KEMPUL;Mn;230;NSM;;;;;N;;;;;
+1B6E;BALINESE MUSICAL SYMBOL COMBINING KEMPLI;Mn;230;NSM;;;;;N;;;;;
+1B6F;BALINESE MUSICAL SYMBOL COMBINING JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B70;BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B71;BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B72;BALINESE MUSICAL SYMBOL COMBINING BENDE;Mn;230;NSM;;;;;N;;;;;
+1B73;BALINESE MUSICAL SYMBOL COMBINING GONG;Mn;230;NSM;;;;;N;;;;;
+1B74;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG;So;0;L;;;;;N;;;;;
+1B75;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG;So;0;L;;;;;N;;;;;
+1B76;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK;So;0;L;;;;;N;;;;;
+1B77;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK;So;0;L;;;;;N;;;;;
+1B78;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG;So;0;L;;;;;N;;;;;
+1B79;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG;So;0;L;;;;;N;;;;;
+1B7A;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK;So;0;L;;;;;N;;;;;
+1B7B;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK;So;0;L;;;;;N;;;;;
+1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;;
+1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
+1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
+1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
+1D03;LATIN LETTER SMALL CAPITAL BARRED B;Ll;0;L;;;;;N;;;;;
+1D04;LATIN LETTER SMALL CAPITAL C;Ll;0;L;;;;;N;;;;;
+1D05;LATIN LETTER SMALL CAPITAL D;Ll;0;L;;;;;N;;;;;
+1D06;LATIN LETTER SMALL CAPITAL ETH;Ll;0;L;;;;;N;;;;;
+1D07;LATIN LETTER SMALL CAPITAL E;Ll;0;L;;;;;N;;;;;
+1D08;LATIN SMALL LETTER TURNED OPEN E;Ll;0;L;;;;;N;;;;;
+1D09;LATIN SMALL LETTER TURNED I;Ll;0;L;;;;;N;;;;;
+1D0A;LATIN LETTER SMALL CAPITAL J;Ll;0;L;;;;;N;;;;;
+1D0B;LATIN LETTER SMALL CAPITAL K;Ll;0;L;;;;;N;;;;;
+1D0C;LATIN LETTER SMALL CAPITAL L WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D0D;LATIN LETTER SMALL CAPITAL M;Ll;0;L;;;;;N;;;;;
+1D0E;LATIN LETTER SMALL CAPITAL REVERSED N;Ll;0;L;;;;;N;;;;;
+1D0F;LATIN LETTER SMALL CAPITAL O;Ll;0;L;;;;;N;;;;;
+1D10;LATIN LETTER SMALL CAPITAL OPEN O;Ll;0;L;;;;;N;;;;;
+1D11;LATIN SMALL LETTER SIDEWAYS O;Ll;0;L;;;;;N;;;;;
+1D12;LATIN SMALL LETTER SIDEWAYS OPEN O;Ll;0;L;;;;;N;;;;;
+1D13;LATIN SMALL LETTER SIDEWAYS O WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D14;LATIN SMALL LETTER TURNED OE;Ll;0;L;;;;;N;;;;;
+1D15;LATIN LETTER SMALL CAPITAL OU;Ll;0;L;;;;;N;;;;;
+1D16;LATIN SMALL LETTER TOP HALF O;Ll;0;L;;;;;N;;;;;
+1D17;LATIN SMALL LETTER BOTTOM HALF O;Ll;0;L;;;;;N;;;;;
+1D18;LATIN LETTER SMALL CAPITAL P;Ll;0;L;;;;;N;;;;;
+1D19;LATIN LETTER SMALL CAPITAL REVERSED R;Ll;0;L;;;;;N;;;;;
+1D1A;LATIN LETTER SMALL CAPITAL TURNED R;Ll;0;L;;;;;N;;;;;
+1D1B;LATIN LETTER SMALL CAPITAL T;Ll;0;L;;;;;N;;;;;
+1D1C;LATIN LETTER SMALL CAPITAL U;Ll;0;L;;;;;N;;;;;
+1D1D;LATIN SMALL LETTER SIDEWAYS U;Ll;0;L;;;;;N;;;;;
+1D1E;LATIN SMALL LETTER SIDEWAYS DIAERESIZED U;Ll;0;L;;;;;N;;;;;
+1D1F;LATIN SMALL LETTER SIDEWAYS TURNED M;Ll;0;L;;;;;N;;;;;
+1D20;LATIN LETTER SMALL CAPITAL V;Ll;0;L;;;;;N;;;;;
+1D21;LATIN LETTER SMALL CAPITAL W;Ll;0;L;;;;;N;;;;;
+1D22;LATIN LETTER SMALL CAPITAL Z;Ll;0;L;;;;;N;;;;;
+1D23;LATIN LETTER SMALL CAPITAL EZH;Ll;0;L;;;;;N;;;;;
+1D24;LATIN LETTER VOICED LARYNGEAL SPIRANT;Ll;0;L;;;;;N;;;;;
+1D25;LATIN LETTER AIN;Ll;0;L;;;;;N;;;;;
+1D26;GREEK LETTER SMALL CAPITAL GAMMA;Ll;0;L;;;;;N;;;;;
+1D27;GREEK LETTER SMALL CAPITAL LAMDA;Ll;0;L;;;;;N;;;;;
+1D28;GREEK LETTER SMALL CAPITAL PI;Ll;0;L;;;;;N;;;;;
+1D29;GREEK LETTER SMALL CAPITAL RHO;Ll;0;L;;;;;N;;;;;
+1D2A;GREEK LETTER SMALL CAPITAL PSI;Ll;0;L;;;;;N;;;;;
+1D2B;CYRILLIC LETTER SMALL CAPITAL EL;Ll;0;L;;;;;N;;;;;
+1D2C;MODIFIER LETTER CAPITAL A;Lm;0;L;<super> 0041;;;;N;;;;;
+1D2D;MODIFIER LETTER CAPITAL AE;Lm;0;L;<super> 00C6;;;;N;;;;;
+1D2E;MODIFIER LETTER CAPITAL B;Lm;0;L;<super> 0042;;;;N;;;;;
+1D2F;MODIFIER LETTER CAPITAL BARRED B;Lm;0;L;;;;;N;;;;;
+1D30;MODIFIER LETTER CAPITAL D;Lm;0;L;<super> 0044;;;;N;;;;;
+1D31;MODIFIER LETTER CAPITAL E;Lm;0;L;<super> 0045;;;;N;;;;;
+1D32;MODIFIER LETTER CAPITAL REVERSED E;Lm;0;L;<super> 018E;;;;N;;;;;
+1D33;MODIFIER LETTER CAPITAL G;Lm;0;L;<super> 0047;;;;N;;;;;
+1D34;MODIFIER LETTER CAPITAL H;Lm;0;L;<super> 0048;;;;N;;;;;
+1D35;MODIFIER LETTER CAPITAL I;Lm;0;L;<super> 0049;;;;N;;;;;
+1D36;MODIFIER LETTER CAPITAL J;Lm;0;L;<super> 004A;;;;N;;;;;
+1D37;MODIFIER LETTER CAPITAL K;Lm;0;L;<super> 004B;;;;N;;;;;
+1D38;MODIFIER LETTER CAPITAL L;Lm;0;L;<super> 004C;;;;N;;;;;
+1D39;MODIFIER LETTER CAPITAL M;Lm;0;L;<super> 004D;;;;N;;;;;
+1D3A;MODIFIER LETTER CAPITAL N;Lm;0;L;<super> 004E;;;;N;;;;;
+1D3B;MODIFIER LETTER CAPITAL REVERSED N;Lm;0;L;;;;;N;;;;;
+1D3C;MODIFIER LETTER CAPITAL O;Lm;0;L;<super> 004F;;;;N;;;;;
+1D3D;MODIFIER LETTER CAPITAL OU;Lm;0;L;<super> 0222;;;;N;;;;;
+1D3E;MODIFIER LETTER CAPITAL P;Lm;0;L;<super> 0050;;;;N;;;;;
+1D3F;MODIFIER LETTER CAPITAL R;Lm;0;L;<super> 0052;;;;N;;;;;
+1D40;MODIFIER LETTER CAPITAL T;Lm;0;L;<super> 0054;;;;N;;;;;
+1D41;MODIFIER LETTER CAPITAL U;Lm;0;L;<super> 0055;;;;N;;;;;
+1D42;MODIFIER LETTER CAPITAL W;Lm;0;L;<super> 0057;;;;N;;;;;
+1D43;MODIFIER LETTER SMALL A;Lm;0;L;<super> 0061;;;;N;;;;;
+1D44;MODIFIER LETTER SMALL TURNED A;Lm;0;L;<super> 0250;;;;N;;;;;
+1D45;MODIFIER LETTER SMALL ALPHA;Lm;0;L;<super> 0251;;;;N;;;;;
+1D46;MODIFIER LETTER SMALL TURNED AE;Lm;0;L;<super> 1D02;;;;N;;;;;
+1D47;MODIFIER LETTER SMALL B;Lm;0;L;<super> 0062;;;;N;;;;;
+1D48;MODIFIER LETTER SMALL D;Lm;0;L;<super> 0064;;;;N;;;;;
+1D49;MODIFIER LETTER SMALL E;Lm;0;L;<super> 0065;;;;N;;;;;
+1D4A;MODIFIER LETTER SMALL SCHWA;Lm;0;L;<super> 0259;;;;N;;;;;
+1D4B;MODIFIER LETTER SMALL OPEN E;Lm;0;L;<super> 025B;;;;N;;;;;
+1D4C;MODIFIER LETTER SMALL TURNED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;
+1D4D;MODIFIER LETTER SMALL G;Lm;0;L;<super> 0067;;;;N;;;;;
+1D4E;MODIFIER LETTER SMALL TURNED I;Lm;0;L;;;;;N;;;;;
+1D4F;MODIFIER LETTER SMALL K;Lm;0;L;<super> 006B;;;;N;;;;;
+1D50;MODIFIER LETTER SMALL M;Lm;0;L;<super> 006D;;;;N;;;;;
+1D51;MODIFIER LETTER SMALL ENG;Lm;0;L;<super> 014B;;;;N;;;;;
+1D52;MODIFIER LETTER SMALL O;Lm;0;L;<super> 006F;;;;N;;;;;
+1D53;MODIFIER LETTER SMALL OPEN O;Lm;0;L;<super> 0254;;;;N;;;;;
+1D54;MODIFIER LETTER SMALL TOP HALF O;Lm;0;L;<super> 1D16;;;;N;;;;;
+1D55;MODIFIER LETTER SMALL BOTTOM HALF O;Lm;0;L;<super> 1D17;;;;N;;;;;
+1D56;MODIFIER LETTER SMALL P;Lm;0;L;<super> 0070;;;;N;;;;;
+1D57;MODIFIER LETTER SMALL T;Lm;0;L;<super> 0074;;;;N;;;;;
+1D58;MODIFIER LETTER SMALL U;Lm;0;L;<super> 0075;;;;N;;;;;
+1D59;MODIFIER LETTER SMALL SIDEWAYS U;Lm;0;L;<super> 1D1D;;;;N;;;;;
+1D5A;MODIFIER LETTER SMALL TURNED M;Lm;0;L;<super> 026F;;;;N;;;;;
+1D5B;MODIFIER LETTER SMALL V;Lm;0;L;<super> 0076;;;;N;;;;;
+1D5C;MODIFIER LETTER SMALL AIN;Lm;0;L;<super> 1D25;;;;N;;;;;
+1D5D;MODIFIER LETTER SMALL BETA;Lm;0;L;<super> 03B2;;;;N;;;;;
+1D5E;MODIFIER LETTER SMALL GREEK GAMMA;Lm;0;L;<super> 03B3;;;;N;;;;;
+1D5F;MODIFIER LETTER SMALL DELTA;Lm;0;L;<super> 03B4;;;;N;;;;;
+1D60;MODIFIER LETTER SMALL GREEK PHI;Lm;0;L;<super> 03C6;;;;N;;;;;
+1D61;MODIFIER LETTER SMALL CHI;Lm;0;L;<super> 03C7;;;;N;;;;;
+1D62;LATIN SUBSCRIPT SMALL LETTER I;Ll;0;L;<sub> 0069;;;;N;;;;;
+1D63;LATIN SUBSCRIPT SMALL LETTER R;Ll;0;L;<sub> 0072;;;;N;;;;;
+1D64;LATIN SUBSCRIPT SMALL LETTER U;Ll;0;L;<sub> 0075;;;;N;;;;;
+1D65;LATIN SUBSCRIPT SMALL LETTER V;Ll;0;L;<sub> 0076;;;;N;;;;;
+1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Ll;0;L;<sub> 03B2;;;;N;;;;;
+1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Ll;0;L;<sub> 03B3;;;;N;;;;;
+1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Ll;0;L;<sub> 03C1;;;;N;;;;;
+1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Ll;0;L;<sub> 03C6;;;;N;;;;;
+1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Ll;0;L;<sub> 03C7;;;;N;;;;;
+1D6B;LATIN SMALL LETTER UE;Ll;0;L;;;;;N;;;;;
+1D6C;LATIN SMALL LETTER B WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D6D;LATIN SMALL LETTER D WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D6E;LATIN SMALL LETTER F WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D6F;LATIN SMALL LETTER M WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D70;LATIN SMALL LETTER N WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D71;LATIN SMALL LETTER P WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D72;LATIN SMALL LETTER R WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D73;LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D74;LATIN SMALL LETTER S WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D75;LATIN SMALL LETTER T WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D76;LATIN SMALL LETTER Z WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D77;LATIN SMALL LETTER TURNED G;Ll;0;L;;;;;N;;;;;
+1D78;MODIFIER LETTER CYRILLIC EN;Lm;0;L;<super> 043D;;;;N;;;;;
+1D79;LATIN SMALL LETTER INSULAR G;Ll;0;L;;;;;N;;;;;
+1D7A;LATIN SMALL LETTER TH WITH STRIKETHROUGH;Ll;0;L;;;;;N;;;;;
+1D7B;LATIN SMALL CAPITAL LETTER I WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7C;LATIN SMALL LETTER IOTA WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7D;LATIN SMALL LETTER P WITH STROKE;Ll;0;L;;;;;N;;;2C63;;2C63
+1D7E;LATIN SMALL CAPITAL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7F;LATIN SMALL LETTER UPSILON WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D80;LATIN SMALL LETTER B WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D81;LATIN SMALL LETTER D WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D82;LATIN SMALL LETTER F WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D83;LATIN SMALL LETTER G WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D84;LATIN SMALL LETTER K WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D85;LATIN SMALL LETTER L WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D86;LATIN SMALL LETTER M WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D87;LATIN SMALL LETTER N WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D88;LATIN SMALL LETTER P WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D89;LATIN SMALL LETTER R WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8A;LATIN SMALL LETTER S WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8B;LATIN SMALL LETTER ESH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8C;LATIN SMALL LETTER V WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8D;LATIN SMALL LETTER X WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8E;LATIN SMALL LETTER Z WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8F;LATIN SMALL LETTER A WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D90;LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D91;LATIN SMALL LETTER D WITH HOOK AND TAIL;Ll;0;L;;;;;N;;;;;
+1D92;LATIN SMALL LETTER E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D93;LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D94;LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D95;LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D96;LATIN SMALL LETTER I WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D97;LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D98;LATIN SMALL LETTER ESH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D99;LATIN SMALL LETTER U WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D9A;LATIN SMALL LETTER EZH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D9B;MODIFIER LETTER SMALL TURNED ALPHA;Lm;0;L;<super> 0252;;;;N;;;;;
+1D9C;MODIFIER LETTER SMALL C;Lm;0;L;<super> 0063;;;;N;;;;;
+1D9D;MODIFIER LETTER SMALL C WITH CURL;Lm;0;L;<super> 0255;;;;N;;;;;
+1D9E;MODIFIER LETTER SMALL ETH;Lm;0;L;<super> 00F0;;;;N;;;;;
+1D9F;MODIFIER LETTER SMALL REVERSED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;
+1DA0;MODIFIER LETTER SMALL F;Lm;0;L;<super> 0066;;;;N;;;;;
+1DA1;MODIFIER LETTER SMALL DOTLESS J WITH STROKE;Lm;0;L;<super> 025F;;;;N;;;;;
+1DA2;MODIFIER LETTER SMALL SCRIPT G;Lm;0;L;<super> 0261;;;;N;;;;;
+1DA3;MODIFIER LETTER SMALL TURNED H;Lm;0;L;<super> 0265;;;;N;;;;;
+1DA4;MODIFIER LETTER SMALL I WITH STROKE;Lm;0;L;<super> 0268;;;;N;;;;;
+1DA5;MODIFIER LETTER SMALL IOTA;Lm;0;L;<super> 0269;;;;N;;;;;
+1DA6;MODIFIER LETTER SMALL CAPITAL I;Lm;0;L;<super> 026A;;;;N;;;;;
+1DA7;MODIFIER LETTER SMALL CAPITAL I WITH STROKE;Lm;0;L;<super> 1D7B;;;;N;;;;;
+1DA8;MODIFIER LETTER SMALL J WITH CROSSED-TAIL;Lm;0;L;<super> 029D;;;;N;;;;;
+1DA9;MODIFIER LETTER SMALL L WITH RETROFLEX HOOK;Lm;0;L;<super> 026D;;;;N;;;;;
+1DAA;MODIFIER LETTER SMALL L WITH PALATAL HOOK;Lm;0;L;<super> 1D85;;;;N;;;;;
+1DAB;MODIFIER LETTER SMALL CAPITAL L;Lm;0;L;<super> 029F;;;;N;;;;;
+1DAC;MODIFIER LETTER SMALL M WITH HOOK;Lm;0;L;<super> 0271;;;;N;;;;;
+1DAD;MODIFIER LETTER SMALL TURNED M WITH LONG LEG;Lm;0;L;<super> 0270;;;;N;;;;;
+1DAE;MODIFIER LETTER SMALL N WITH LEFT HOOK;Lm;0;L;<super> 0272;;;;N;;;;;
+1DAF;MODIFIER LETTER SMALL N WITH RETROFLEX HOOK;Lm;0;L;<super> 0273;;;;N;;;;;
+1DB0;MODIFIER LETTER SMALL CAPITAL N;Lm;0;L;<super> 0274;;;;N;;;;;
+1DB1;MODIFIER LETTER SMALL BARRED O;Lm;0;L;<super> 0275;;;;N;;;;;
+1DB2;MODIFIER LETTER SMALL PHI;Lm;0;L;<super> 0278;;;;N;;;;;
+1DB3;MODIFIER LETTER SMALL S WITH HOOK;Lm;0;L;<super> 0282;;;;N;;;;;
+1DB4;MODIFIER LETTER SMALL ESH;Lm;0;L;<super> 0283;;;;N;;;;;
+1DB5;MODIFIER LETTER SMALL T WITH PALATAL HOOK;Lm;0;L;<super> 01AB;;;;N;;;;;
+1DB6;MODIFIER LETTER SMALL U BAR;Lm;0;L;<super> 0289;;;;N;;;;;
+1DB7;MODIFIER LETTER SMALL UPSILON;Lm;0;L;<super> 028A;;;;N;;;;;
+1DB8;MODIFIER LETTER SMALL CAPITAL U;Lm;0;L;<super> 1D1C;;;;N;;;;;
+1DB9;MODIFIER LETTER SMALL V WITH HOOK;Lm;0;L;<super> 028B;;;;N;;;;;
+1DBA;MODIFIER LETTER SMALL TURNED V;Lm;0;L;<super> 028C;;;;N;;;;;
+1DBB;MODIFIER LETTER SMALL Z;Lm;0;L;<super> 007A;;;;N;;;;;
+1DBC;MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK;Lm;0;L;<super> 0290;;;;N;;;;;
+1DBD;MODIFIER LETTER SMALL Z WITH CURL;Lm;0;L;<super> 0291;;;;N;;;;;
+1DBE;MODIFIER LETTER SMALL EZH;Lm;0;L;<super> 0292;;;;N;;;;;
+1DBF;MODIFIER LETTER SMALL THETA;Lm;0;L;<super> 03B8;;;;N;;;;;
+1DC0;COMBINING DOTTED GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
+1DC1;COMBINING DOTTED ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
+1DC2;COMBINING SNAKE BELOW;Mn;220;NSM;;;;;N;;;;;
+1DC3;COMBINING SUSPENSION MARK;Mn;230;NSM;;;;;N;;;;;
+1DC4;COMBINING MACRON-ACUTE;Mn;230;NSM;;;;;N;;;;;
+1DC5;COMBINING GRAVE-MACRON;Mn;230;NSM;;;;;N;;;;;
+1DC6;COMBINING MACRON-GRAVE;Mn;230;NSM;;;;;N;;;;;
+1DC7;COMBINING ACUTE-MACRON;Mn;230;NSM;;;;;N;;;;;
+1DC8;COMBINING GRAVE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;;
+1DC9;COMBINING ACUTE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;;
+1DCA;COMBINING LATIN SMALL LETTER R BELOW;Mn;220;NSM;;;;;N;;;;;
+1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+1DFF;COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01;
+1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00
+1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03;
+1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02
+1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05;
+1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04
+1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07;
+1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06
+1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09;
+1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08
+1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B;
+1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A
+1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D;
+1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C
+1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F;
+1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E
+1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11;
+1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10
+1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13;
+1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12
+1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15;
+1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14
+1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17;
+1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16
+1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19;
+1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18
+1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B;
+1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A
+1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D;
+1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C
+1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F;
+1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E
+1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21;
+1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20
+1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23;
+1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22
+1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25;
+1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24
+1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27;
+1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26
+1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29;
+1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28
+1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B;
+1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A
+1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D;
+1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C
+1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F;
+1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E
+1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31;
+1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30
+1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33;
+1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32
+1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35;
+1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34
+1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37;
+1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36
+1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39;
+1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38
+1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B;
+1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A
+1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D;
+1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C
+1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F;
+1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E
+1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41;
+1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40
+1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43;
+1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42
+1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45;
+1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44
+1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47;
+1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46
+1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49;
+1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48
+1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B;
+1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A
+1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D;
+1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C
+1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F;
+1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E
+1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51;
+1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50
+1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53;
+1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52
+1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55;
+1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54
+1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57;
+1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56
+1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59;
+1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58
+1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B;
+1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A
+1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D;
+1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C
+1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F;
+1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E
+1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61;
+1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60
+1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63;
+1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62
+1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65;
+1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64
+1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67;
+1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66
+1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69;
+1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68
+1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B;
+1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A
+1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D;
+1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C
+1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F;
+1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E
+1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71;
+1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70
+1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73;
+1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72
+1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75;
+1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74
+1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77;
+1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76
+1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79;
+1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78
+1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B;
+1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A
+1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D;
+1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C
+1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F;
+1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E
+1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81;
+1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80
+1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83;
+1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82
+1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85;
+1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84
+1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87;
+1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86
+1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89;
+1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88
+1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B;
+1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A
+1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D;
+1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C
+1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F;
+1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E
+1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91;
+1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90
+1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93;
+1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92
+1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95;
+1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94
+1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;;
+1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;;
+1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;;
+1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;;
+1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;;
+1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60
+1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1;
+1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0
+1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3;
+1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2
+1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5;
+1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4
+1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7;
+1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6
+1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9;
+1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8
+1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB;
+1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA
+1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD;
+1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC
+1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF;
+1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE
+1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1;
+1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0
+1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3;
+1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2
+1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5;
+1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4
+1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7;
+1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6
+1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9;
+1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8
+1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB;
+1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA
+1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD;
+1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC
+1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF;
+1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE
+1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1;
+1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0
+1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3;
+1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2
+1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5;
+1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4
+1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7;
+1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6
+1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9;
+1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8
+1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB;
+1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA
+1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD;
+1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC
+1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF;
+1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE
+1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1;
+1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0
+1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3;
+1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2
+1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5;
+1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4
+1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7;
+1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6
+1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9;
+1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8
+1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB;
+1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA
+1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD;
+1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC
+1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF;
+1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE
+1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1;
+1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0
+1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3;
+1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2
+1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5;
+1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4
+1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7;
+1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6
+1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9;
+1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8
+1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB;
+1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA
+1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED;
+1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC
+1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF;
+1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE
+1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1;
+1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0
+1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3;
+1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2
+1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5;
+1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4
+1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7;
+1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6
+1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9;
+1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8
+1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08
+1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09
+1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A
+1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B
+1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C
+1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D
+1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E
+1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F
+1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00;
+1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01;
+1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02;
+1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03;
+1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04;
+1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05;
+1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06;
+1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07;
+1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18
+1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19
+1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A
+1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B
+1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C
+1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D
+1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10;
+1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11;
+1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12;
+1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13;
+1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14;
+1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15;
+1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28
+1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29
+1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A
+1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B
+1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C
+1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D
+1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E
+1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F
+1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20;
+1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21;
+1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22;
+1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23;
+1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24;
+1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25;
+1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26;
+1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27;
+1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38
+1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39
+1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A
+1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B
+1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C
+1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D
+1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E
+1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F
+1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30;
+1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31;
+1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32;
+1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33;
+1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34;
+1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35;
+1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36;
+1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37;
+1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48
+1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49
+1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A
+1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B
+1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C
+1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D
+1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40;
+1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41;
+1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42;
+1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43;
+1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44;
+1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45;
+1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;;
+1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59
+1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;;
+1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B
+1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;;
+1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D
+1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;;
+1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F
+1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51;
+1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53;
+1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55;
+1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57;
+1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68
+1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69
+1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A
+1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B
+1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C
+1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D
+1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E
+1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F
+1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60;
+1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61;
+1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62;
+1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63;
+1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64;
+1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65;
+1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66;
+1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67;
+1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA
+1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB
+1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8
+1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9
+1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA
+1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB
+1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA
+1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB
+1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8
+1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9
+1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA
+1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB
+1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA
+1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB
+1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88
+1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89
+1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A
+1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B
+1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C
+1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D
+1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E
+1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F
+1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80;
+1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81;
+1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82;
+1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83;
+1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84;
+1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85;
+1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86;
+1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87;
+1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98
+1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99
+1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A
+1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B
+1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C
+1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D
+1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E
+1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F
+1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90;
+1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91;
+1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92;
+1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93;
+1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94;
+1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95;
+1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96;
+1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97;
+1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8
+1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9
+1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA
+1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB
+1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC
+1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD
+1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE
+1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF
+1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0;
+1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1;
+1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2;
+1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3;
+1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4;
+1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5;
+1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6;
+1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7;
+1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8
+1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9
+1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;;
+1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC
+1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;;
+1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;;
+1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;;
+1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0;
+1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1;
+1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70;
+1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71;
+1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3;
+1FBD;GREEK KORONIS;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399
+1FBF;GREEK PSILI;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FC0;GREEK PERISPOMENI;Sk;0;ON;<compat> 0020 0342;;;;N;;;;;
+1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;;
+1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;;
+1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC
+1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;;
+1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;;
+1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;;
+1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72;
+1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73;
+1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74;
+1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75;
+1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3;
+1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;;
+1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;;
+1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;;
+1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8
+1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9
+1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;;
+1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;;
+1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;;
+1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;;
+1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0;
+1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1;
+1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76;
+1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77;
+1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;;
+1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;;
+1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;;
+1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8
+1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9
+1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;;
+1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;;
+1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;;
+1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC
+1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;;
+1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;;
+1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0;
+1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1;
+1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A;
+1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B;
+1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5;
+1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;;
+1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;;
+1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;;
+1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;;
+1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC
+1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;;
+1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;;
+1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;;
+1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78;
+1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79;
+1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C;
+1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D;
+1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3;
+1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;;
+1FFE;GREEK DASIA;Sk;0;ON;<compat> 0020 0314;;;;N;;;;;
+2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;;
+2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;;
+2002;EN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2003;EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2004;THREE-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2005;FOUR-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2006;SIX-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2007;FIGURE SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;
+2008;PUNCTUATION SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2009;THIN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200A;HAIR SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200B;ZERO WIDTH SPACE;Cf;0;BN;;;;;N;;;;;
+200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;;
+200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;;
+200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;;
+200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;;
+2010;HYPHEN;Pd;0;ON;;;;;N;;;;;
+2011;NON-BREAKING HYPHEN;Pd;0;ON;<noBreak> 2010;;;;N;;;;;
+2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;;
+2013;EN DASH;Pd;0;ON;;;;;N;;;;;
+2014;EM DASH;Pd;0;ON;;;;;N;;;;;
+2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;;
+2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;;
+2017;DOUBLE LOW LINE;Po;0;ON;<compat> 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;;
+2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;Y;SINGLE TURNED COMMA QUOTATION MARK;;;;
+2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;Y;SINGLE COMMA QUOTATION MARK;;;;
+201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;Y;LOW SINGLE COMMA QUOTATION MARK;;;;
+201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;Y;SINGLE REVERSED COMMA QUOTATION MARK;;;;
+201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;Y;DOUBLE TURNED COMMA QUOTATION MARK;;;;
+201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;Y;DOUBLE COMMA QUOTATION MARK;;;;
+201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;Y;LOW DOUBLE COMMA QUOTATION MARK;;;;
+201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;Y;DOUBLE REVERSED COMMA QUOTATION MARK;;;;
+2020;DAGGER;Po;0;ON;;;;;N;;;;;
+2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;;
+2022;BULLET;Po;0;ON;;;;;N;;;;;
+2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;;
+2024;ONE DOT LEADER;Po;0;ON;<compat> 002E;;;;N;;;;;
+2025;TWO DOT LEADER;Po;0;ON;<compat> 002E 002E;;;;N;;;;;
+2026;HORIZONTAL ELLIPSIS;Po;0;ON;<compat> 002E 002E 002E;;;;N;;;;;
+2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;;
+2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;;
+2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;;
+202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;;
+202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;;
+202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;;
+202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;;
+202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;;
+202F;NARROW NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;;;;;
+2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;;
+2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;
+2032;PRIME;Po;0;ET;;;;;N;;;;;
+2033;DOUBLE PRIME;Po;0;ET;<compat> 2032 2032;;;;N;;;;;
+2034;TRIPLE PRIME;Po;0;ET;<compat> 2032 2032 2032;;;;N;;;;;
+2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;;
+2036;REVERSED DOUBLE PRIME;Po;0;ON;<compat> 2035 2035;;;;N;;;;;
+2037;REVERSED TRIPLE PRIME;Po;0;ON;<compat> 2035 2035 2035;;;;N;;;;;
+2038;CARET;Po;0;ON;;;;;N;;;;;
+2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;;
+203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;;
+203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;;
+203C;DOUBLE EXCLAMATION MARK;Po;0;ON;<compat> 0021 0021;;;;N;;;;;
+203D;INTERROBANG;Po;0;ON;;;;;N;;;;;
+203E;OVERLINE;Po;0;ON;<compat> 0020 0305;;;;N;SPACING OVERSCORE;;;;
+203F;UNDERTIE;Pc;0;ON;;;;;N;;Enotikon;;;
+2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;;
+2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;;
+2042;ASTERISM;Po;0;ON;;;;;N;;;;;
+2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;;
+2044;FRACTION SLASH;Sm;0;CS;;;;;N;;;;;
+2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;;
+2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;;
+2047;DOUBLE QUESTION MARK;Po;0;ON;<compat> 003F 003F;;;;N;;;;;
+2048;QUESTION EXCLAMATION MARK;Po;0;ON;<compat> 003F 0021;;;;N;;;;;
+2049;EXCLAMATION QUESTION MARK;Po;0;ON;<compat> 0021 003F;;;;N;;;;;
+204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;;
+204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;;
+204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;;
+204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;;
+2050;CLOSE UP;Po;0;ON;;;;;N;;;;;
+2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;;
+2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;;
+2053;SWUNG DASH;Po;0;ON;;;;;N;;;;;
+2054;INVERTED UNDERTIE;Pc;0;ON;;;;;N;;;;;
+2055;FLOWER PUNCTUATION MARK;Po;0;ON;;;;;N;;;;;
+2056;THREE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+2057;QUADRUPLE PRIME;Po;0;ON;<compat> 2032 2032 2032 2032;;;;N;;;;;
+2058;FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+2059;FIVE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+205A;TWO DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+205B;FOUR DOT MARK;Po;0;ON;;;;;N;;;;;
+205C;DOTTED CROSS;Po;0;ON;;;;;N;;;;;
+205D;TRICOLON;Po;0;ON;;;;;N;;;;;
+205E;VERTICAL FOUR DOTS;Po;0;ON;;;;;N;;;;;
+205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2060;WORD JOINER;Cf;0;BN;;;;;N;;;;;
+2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;;
+2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;;
+2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;;
+206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+2070;SUPERSCRIPT ZERO;No;0;EN;<super> 0030;;0;0;N;SUPERSCRIPT DIGIT ZERO;;;;
+2071;SUPERSCRIPT LATIN SMALL LETTER I;Ll;0;L;<super> 0069;;;;N;;;;;
+2074;SUPERSCRIPT FOUR;No;0;EN;<super> 0034;;4;4;N;SUPERSCRIPT DIGIT FOUR;;;;
+2075;SUPERSCRIPT FIVE;No;0;EN;<super> 0035;;5;5;N;SUPERSCRIPT DIGIT FIVE;;;;
+2076;SUPERSCRIPT SIX;No;0;EN;<super> 0036;;6;6;N;SUPERSCRIPT DIGIT SIX;;;;
+2077;SUPERSCRIPT SEVEN;No;0;EN;<super> 0037;;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;;
+2078;SUPERSCRIPT EIGHT;No;0;EN;<super> 0038;;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;;
+2079;SUPERSCRIPT NINE;No;0;EN;<super> 0039;;9;9;N;SUPERSCRIPT DIGIT NINE;;;;
+207A;SUPERSCRIPT PLUS SIGN;Sm;0;ES;<super> 002B;;;;N;;;;;
+207B;SUPERSCRIPT MINUS;Sm;0;ES;<super> 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;;
+207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON;<super> 003D;;;;N;;;;;
+207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON;<super> 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;;
+207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<super> 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;;
+207F;SUPERSCRIPT LATIN SMALL LETTER N;Ll;0;L;<super> 006E;;;;N;;;;;
+2080;SUBSCRIPT ZERO;No;0;EN;<sub> 0030;;0;0;N;SUBSCRIPT DIGIT ZERO;;;;
+2081;SUBSCRIPT ONE;No;0;EN;<sub> 0031;;1;1;N;SUBSCRIPT DIGIT ONE;;;;
+2082;SUBSCRIPT TWO;No;0;EN;<sub> 0032;;2;2;N;SUBSCRIPT DIGIT TWO;;;;
+2083;SUBSCRIPT THREE;No;0;EN;<sub> 0033;;3;3;N;SUBSCRIPT DIGIT THREE;;;;
+2084;SUBSCRIPT FOUR;No;0;EN;<sub> 0034;;4;4;N;SUBSCRIPT DIGIT FOUR;;;;
+2085;SUBSCRIPT FIVE;No;0;EN;<sub> 0035;;5;5;N;SUBSCRIPT DIGIT FIVE;;;;
+2086;SUBSCRIPT SIX;No;0;EN;<sub> 0036;;6;6;N;SUBSCRIPT DIGIT SIX;;;;
+2087;SUBSCRIPT SEVEN;No;0;EN;<sub> 0037;;7;7;N;SUBSCRIPT DIGIT SEVEN;;;;
+2088;SUBSCRIPT EIGHT;No;0;EN;<sub> 0038;;8;8;N;SUBSCRIPT DIGIT EIGHT;;;;
+2089;SUBSCRIPT NINE;No;0;EN;<sub> 0039;;9;9;N;SUBSCRIPT DIGIT NINE;;;;
+208A;SUBSCRIPT PLUS SIGN;Sm;0;ES;<sub> 002B;;;;N;;;;;
+208B;SUBSCRIPT MINUS;Sm;0;ES;<sub> 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;;
+208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON;<sub> 003D;;;;N;;;;;
+208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON;<sub> 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;;
+208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<sub> 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;;
+2090;LATIN SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0061;;;;N;;;;;
+2091;LATIN SUBSCRIPT SMALL LETTER E;Lm;0;L;<sub> 0065;;;;N;;;;;
+2092;LATIN SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 006F;;;;N;;;;;
+2093;LATIN SUBSCRIPT SMALL LETTER X;Lm;0;L;<sub> 0078;;;;N;;;;;
+2094;LATIN SUBSCRIPT SMALL LETTER SCHWA;Lm;0;L;<sub> 0259;;;;N;;;;;
+20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;;
+20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;;
+20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;;
+20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;;
+20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;;
+20A8;RUPEE SIGN;Sc;0;ET;<compat> 0052 0073;;;;N;;;;;
+20A9;WON SIGN;Sc;0;ET;;;;;N;;;;;
+20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;;
+20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;;
+20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;;
+20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;;
+20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;;
+20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;;
+20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;;
+20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;;
+20B2;GUARANI SIGN;Sc;0;ET;;;;;N;;;;;
+20B3;AUSTRAL SIGN;Sc;0;ET;;;;;N;;;;;
+20B4;HRYVNIA SIGN;Sc;0;ET;;;;;N;;;;;
+20B5;CEDI SIGN;Sc;0;ET;;;;;N;;;;;
+20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
+20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
+20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
+20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;;
+20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;;
+20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;;
+20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;;
+20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;;
+20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;;
+20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;;
+20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;;
+20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;;
+20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;;
+20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;;
+20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;;
+20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;;
+20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;;
+20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;;
+20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;;
+20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;;
+20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;;
+20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;;
+20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;;
+20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20EB;COMBINING LONG DOUBLE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20EC;COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
+20ED;COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
+20EE;COMBINING LEFT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+20EF;COMBINING RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;;
+2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;;
+2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;;
+2103;DEGREE CELSIUS;So;0;ON;<compat> 00B0 0043;;;;N;DEGREES CENTIGRADE;;;;
+2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;;
+2105;CARE OF;So;0;ON;<compat> 0063 002F 006F;;;;N;;;;;
+2106;CADA UNA;So;0;ON;<compat> 0063 002F 0075;;;;N;;;;;
+2107;EULER CONSTANT;Lu;0;L;<compat> 0190;;;;N;EULERS;;;;
+2108;SCRUPLE;So;0;ON;;;;;N;;;;;
+2109;DEGREE FAHRENHEIT;So;0;ON;<compat> 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;;
+210A;SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+210B;SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;SCRIPT H;;;;
+210C;BLACK-LETTER CAPITAL H;Lu;0;L;<font> 0048;;;;N;BLACK-LETTER H;;;;
+210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L;<font> 0048;;;;N;DOUBLE-STRUCK H;;;;
+210E;PLANCK CONSTANT;Ll;0;L;<font> 0068;;;;N;;;;;
+210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L;<font> 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;;
+2110;SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;SCRIPT I;;;;
+2111;BLACK-LETTER CAPITAL I;Lu;0;L;<font> 0049;;;;N;BLACK-LETTER I;;;;
+2112;SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;SCRIPT L;;;;
+2113;SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;;
+2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L;<font> 004E;;;;N;DOUBLE-STRUCK N;;;;
+2116;NUMERO SIGN;So;0;ON;<compat> 004E 006F;;;;N;NUMERO;;;;
+2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;;
+2118;SCRIPT CAPITAL P;So;0;ON;;;;;N;SCRIPT P;;;;
+2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L;<font> 0050;;;;N;DOUBLE-STRUCK P;;;;
+211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L;<font> 0051;;;;N;DOUBLE-STRUCK Q;;;;
+211B;SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;SCRIPT R;;;;
+211C;BLACK-LETTER CAPITAL R;Lu;0;L;<font> 0052;;;;N;BLACK-LETTER R;;;;
+211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L;<font> 0052;;;;N;DOUBLE-STRUCK R;;;;
+211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;;
+211F;RESPONSE;So;0;ON;;;;;N;;;;;
+2120;SERVICE MARK;So;0;ON;<super> 0053 004D;;;;N;;;;;
+2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;;
+2122;TRADE MARK SIGN;So;0;ON;<super> 0054 004D;;;;N;TRADEMARK;;;;
+2123;VERSICLE;So;0;ON;;;;;N;;;;;
+2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L;<font> 005A;;;;N;DOUBLE-STRUCK Z;;;;
+2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;;
+2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9;
+2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;;
+2128;BLACK-LETTER CAPITAL Z;Lu;0;L;<font> 005A;;;;N;BLACK-LETTER Z;;;;
+2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;;
+212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B;
+212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5;
+212C;SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;SCRIPT B;;;;
+212D;BLACK-LETTER CAPITAL C;Lu;0;L;<font> 0043;;;;N;BLACK-LETTER C;;;;
+212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;;
+212F;SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+2130;SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;SCRIPT E;;;;
+2131;SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;SCRIPT F;;;;
+2132;TURNED CAPITAL F;Lu;0;L;;;;;N;TURNED F;;;214E;
+2133;SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;SCRIPT M;;;;
+2134;SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+2135;ALEF SYMBOL;Lo;0;L;<compat> 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;;
+2136;BET SYMBOL;Lo;0;L;<compat> 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;;
+2137;GIMEL SYMBOL;Lo;0;L;<compat> 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;;
+2138;DALET SYMBOL;Lo;0;L;<compat> 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;;
+2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;;
+213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;;
+213B;FACSIMILE SIGN;So;0;ON;<compat> 0046 0041 0058;;;;N;;;;;
+213C;DOUBLE-STRUCK SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON;<font> 2211;;;;Y;;;;;
+2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;;
+2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
+2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
+2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;;
+2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+214A;PROPERTY LINE;So;0;ON;;;;;N;;;;;
+214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;;
+214C;PER SIGN;So;0;ON;;;;;N;;;;;
+214D;AKTIESELSKAB;So;0;ON;;;;;N;;;;;
+214E;TURNED SMALL F;Ll;0;L;;;;;N;;;2132;;2132
+2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;
+2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;
+2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;
+2156;VULGAR FRACTION TWO FIFTHS;No;0;ON;<fraction> 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;;
+2157;VULGAR FRACTION THREE FIFTHS;No;0;ON;<fraction> 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;;
+2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON;<fraction> 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;;
+2159;VULGAR FRACTION ONE SIXTH;No;0;ON;<fraction> 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;;
+215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON;<fraction> 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;;
+215B;VULGAR FRACTION ONE EIGHTH;No;0;ON;<fraction> 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;;
+215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON;<fraction> 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;;
+215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON;<fraction> 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;;
+215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON;<fraction> 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;;
+215F;FRACTION NUMERATOR ONE;No;0;ON;<fraction> 0031 2044;;;1;N;;;;;
+2160;ROMAN NUMERAL ONE;Nl;0;L;<compat> 0049;;;1;N;;;;2170;
+2161;ROMAN NUMERAL TWO;Nl;0;L;<compat> 0049 0049;;;2;N;;;;2171;
+2162;ROMAN NUMERAL THREE;Nl;0;L;<compat> 0049 0049 0049;;;3;N;;;;2172;
+2163;ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0049 0056;;;4;N;;;;2173;
+2164;ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0056;;;5;N;;;;2174;
+2165;ROMAN NUMERAL SIX;Nl;0;L;<compat> 0056 0049;;;6;N;;;;2175;
+2166;ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0056 0049 0049;;;7;N;;;;2176;
+2167;ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0056 0049 0049 0049;;;8;N;;;;2177;
+2168;ROMAN NUMERAL NINE;Nl;0;L;<compat> 0049 0058;;;9;N;;;;2178;
+2169;ROMAN NUMERAL TEN;Nl;0;L;<compat> 0058;;;10;N;;;;2179;
+216A;ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0058 0049;;;11;N;;;;217A;
+216B;ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0058 0049 0049;;;12;N;;;;217B;
+216C;ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 004C;;;50;N;;;;217C;
+216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0043;;;100;N;;;;217D;
+216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0044;;;500;N;;;;217E;
+216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 004D;;;1000;N;;;;217F;
+2170;SMALL ROMAN NUMERAL ONE;Nl;0;L;<compat> 0069;;;1;N;;;2160;;2160
+2171;SMALL ROMAN NUMERAL TWO;Nl;0;L;<compat> 0069 0069;;;2;N;;;2161;;2161
+2172;SMALL ROMAN NUMERAL THREE;Nl;0;L;<compat> 0069 0069 0069;;;3;N;;;2162;;2162
+2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0069 0076;;;4;N;;;2163;;2163
+2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0076;;;5;N;;;2164;;2164
+2175;SMALL ROMAN NUMERAL SIX;Nl;0;L;<compat> 0076 0069;;;6;N;;;2165;;2165
+2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0076 0069 0069;;;7;N;;;2166;;2166
+2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0076 0069 0069 0069;;;8;N;;;2167;;2167
+2178;SMALL ROMAN NUMERAL NINE;Nl;0;L;<compat> 0069 0078;;;9;N;;;2168;;2168
+2179;SMALL ROMAN NUMERAL TEN;Nl;0;L;<compat> 0078;;;10;N;;;2169;;2169
+217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0078 0069;;;11;N;;;216A;;216A
+217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0078 0069 0069;;;12;N;;;216B;;216B
+217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 006C;;;50;N;;;216C;;216C
+217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0063;;;100;N;;;216D;;216D
+217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0064;;;500;N;;;216E;;216E
+217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 006D;;;1000;N;;;216F;;216F
+2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;;
+2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;;
+2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;;
+2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Lu;0;L;;;;;N;;;;2184;
+2184;LATIN SMALL LETTER REVERSED C;Ll;0;L;;;;;N;;;2183;;2183
+2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;;
+2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;;
+2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;;
+2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;;
+2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
+2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;;
+2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;;
+2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;;
+2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;;
+2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;;
+219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;;
+219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;;
+219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;;
+219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;;
+219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;;
+219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;;
+21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;;
+21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;;
+21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;;
+21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;;
+21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;;
+21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;;
+21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;;
+21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;;
+21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;;
+21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;;
+21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;;
+21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;;
+21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;;
+21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;;
+21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;;
+21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;;
+21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;;
+21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;;
+21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;;
+21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;;
+21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;;
+21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;;
+21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;;
+21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;;
+21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;;
+21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;;
+21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;;
+21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;;
+21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;;
+21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;;
+21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;;
+21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;;
+21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;;
+21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;;
+21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;;
+21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;;
+21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;;
+21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;;
+21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;;
+21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;;
+21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;;
+21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;;
+21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;;
+21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;;
+21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;;
+21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;;
+21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;;
+21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;;
+21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;;
+21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;;
+21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;;
+21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;;
+21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;;
+21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;;
+21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;;
+21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;;
+21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;;
+21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;;
+21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;;
+21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;;
+21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;;
+21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;;
+21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;;
+21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;;
+21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;;
+21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;;
+21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;;
+21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;;
+21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;;
+21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
+21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;;
+21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;;
+21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;;
+21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;;
+21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+2200;FOR ALL;Sm;0;ON;;;;;N;;;;;
+2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;;
+2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;;
+2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;;
+2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;;
+2205;EMPTY SET;Sm;0;ON;;;;;N;;;;;
+2206;INCREMENT;Sm;0;ON;;;;;N;;;;;
+2207;NABLA;Sm;0;ON;;;;;N;;;;;
+2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;;
+220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;;
+220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220E;END OF PROOF;Sm;0;ON;;;;;N;;;;;
+220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;;
+2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;;
+2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;;
+2212;MINUS SIGN;Sm;0;ES;;;;;N;;;;;
+2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;;
+2214;DOT PLUS;Sm;0;ON;;;;;N;;;;;
+2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2216;SET MINUS;Sm;0;ON;;;;;Y;;;;;
+2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;;
+221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;;
+221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;;
+221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;;
+221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;;
+221E;INFINITY;Sm;0;ON;;;;;N;;;;;
+221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;;
+2220;ANGLE;Sm;0;ON;;;;;Y;;;;;
+2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;;
+2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;;
+2223;DIVIDES;Sm;0;ON;;;;;N;;;;;
+2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;;
+2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;;
+2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2229;INTERSECTION;Sm;0;ON;;;;;N;;;;;
+222A;UNION;Sm;0;ON;;;;;N;;;;;
+222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222C;DOUBLE INTEGRAL;Sm;0;ON;<compat> 222B 222B;;;;Y;;;;;
+222D;TRIPLE INTEGRAL;Sm;0;ON;<compat> 222B 222B 222B;;;;Y;;;;;
+222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222F;SURFACE INTEGRAL;Sm;0;ON;<compat> 222E 222E;;;;Y;;;;;
+2230;VOLUME INTEGRAL;Sm;0;ON;<compat> 222E 222E 222E;;;;Y;;;;;
+2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2234;THEREFORE;Sm;0;ON;;;;;N;;;;;
+2235;BECAUSE;Sm;0;ON;;;;;N;;;;;
+2236;RATIO;Sm;0;ON;;;;;N;;;;;
+2237;PROPORTION;Sm;0;ON;;;;;N;;;;;
+2238;DOT MINUS;Sm;0;ON;;;;;N;;;;;
+2239;EXCESS;Sm;0;ON;;;;;Y;;;;;
+223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;;
+223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;;
+223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;lazy S;;;
+223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;;
+223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;;
+2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;;
+2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;;
+2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;;
+2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;;
+2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;;
+224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;;
+224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;;
+2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;;
+2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;;
+2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;;
+2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;;
+2259;ESTIMATES;Sm;0;ON;;;;;N;;;;;
+225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;;
+225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;;
+225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;;
+225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;;
+225E;MEASURED BY;Sm;0;ON;;;;;N;;;;;
+225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;;
+2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;;
+2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;;
+2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;;
+2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;;
+2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;;
+2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;;
+2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;;
+2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;;
+226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;;
+226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;;
+226C;BETWEEN;Sm;0;ON;;;;;N;;;;;
+226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;;
+226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;;
+226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;;
+2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;;
+2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;;
+2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;;
+2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;;
+2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;;
+2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;;
+2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;;
+2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;;
+2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;;
+2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;;
+227A;PRECEDES;Sm;0;ON;;;;;Y;;;;;
+227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;;
+2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;;
+2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;;
+2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;;
+2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;;
+2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;;
+2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;;
+2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;;
+228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;;
+228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;;
+228C;MULTISET;Sm;0;ON;;;;;Y;;;;;
+228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;;
+228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;;
+228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;;
+2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;;
+2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;;
+2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;;
+2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;;
+229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;;
+229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;;
+229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;;
+22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;;
+22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
+22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;;
+22A5;UP TACK;Sm;0;ON;;;;;N;;;;;
+22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;;
+22A7;MODELS;Sm;0;ON;;;;;Y;;;;;
+22A8;TRUE;Sm;0;ON;;;;;Y;;;;;
+22A9;FORCES;Sm;0;ON;;;;;Y;;;;;
+22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;;
+22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;;
+22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;;
+22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;;
+22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;;
+22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;;
+22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;;
+22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;;
+22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;;
+22BB;XOR;Sm;0;ON;;;;;N;;;;;
+22BC;NAND;Sm;0;ON;;;;;N;;;;;
+22BD;NOR;Sm;0;ON;;;;;N;;;;;
+22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;;
+22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;;
+22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;;
+22C8;BOWTIE;Sm;0;ON;;;;;N;;;;;
+22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;;
+22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;;
+22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;;
+22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;;
+22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;;
+22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;;
+22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;;
+22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;;
+22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;;
+22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;;
+22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;;
+22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;;
+22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;;
+22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;;
+22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;;
+22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;;
+22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;;
+22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;;
+22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;;
+22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;;
+22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;;
+22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;;
+22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;;
+22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;;
+22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;;
+2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;;
+2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;;
+2302;HOUSE;So;0;ON;;;;;N;;;;;
+2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;;
+2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;;
+2305;PROJECTIVE;So;0;ON;;;;;N;;;;;
+2306;PERSPECTIVE;So;0;ON;;;;;N;;;;;
+2307;WAVY LINE;So;0;ON;;;;;N;;;;;
+2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;;
+2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;;
+230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;;
+230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;;
+230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;;
+230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;;
+2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;;
+2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;;
+2312;ARC;So;0;ON;;;;;N;;;;;
+2313;SEGMENT;So;0;ON;;;;;N;;;;;
+2314;SECTOR;So;0;ON;;;;;N;;;;;
+2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;;
+2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;;
+2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;;
+2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;;
+2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;;
+231A;WATCH;So;0;ON;;;;;N;;;;;
+231B;HOURGLASS;So;0;ON;;;;;N;;;;;
+231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;;
+231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;;
+231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;;
+231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;;
+2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2322;FROWN;So;0;ON;;;;;N;;;;;
+2323;SMILE;So;0;ON;;;;;N;;;;;
+2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;;
+2325;OPTION KEY;So;0;ON;;;;;N;;;;;
+2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;;
+2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;;
+2328;KEYBOARD;So;0;ON;;;;;N;;;;;
+2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;;
+232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;;
+232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;;
+232C;BENZENE RING;So;0;ON;;;;;N;;;;;
+232D;CYLINDRICITY;So;0;ON;;;;;N;;;;;
+232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;;
+232F;SYMMETRY;So;0;ON;;;;;N;;;;;
+2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;;
+2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;;
+2332;CONICAL TAPER;So;0;ON;;;;;N;;;;;
+2333;SLOPE;So;0;ON;;;;;N;;;;;
+2334;COUNTERBORE;So;0;ON;;;;;N;;;;;
+2335;COUNTERSINK;So;0;ON;;;;;N;;;;;
+2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;;
+2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;;
+2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;;
+2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;;
+233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;;
+233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;;
+233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;;
+233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;;
+233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;;
+233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;;
+2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;;
+2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;;
+2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;;
+2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;;
+2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;;
+2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;;
+2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;;
+2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;;
+2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;;
+2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;;
+234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;*;;;
+234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;;
+234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;;
+234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;;
+234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;*;;;
+234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;;
+2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;;
+2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;*;;;
+2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;;
+2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;;
+2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;;
+2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;*;;;
+2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;;
+2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;;
+2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;;
+2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;;
+235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;;
+235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;;
+235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;;
+235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;;
+235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;;
+235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;;
+2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;;
+2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;*;;;
+2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;;
+2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;;
+2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;;
+2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;;
+2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;;
+2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;;
+2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;;
+2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;;
+236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;;
+236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;;
+236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;;
+236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;;
+236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;;
+236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;;
+2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;;
+2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;;
+2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;;
+2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;;
+2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;;
+2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;;
+2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;;
+2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;;
+2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;;
+2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;;
+237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;;
+237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;;
+237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;;
+237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;;
+237E;BELL SYMBOL;So;0;ON;;;;;N;;;;;
+237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;;
+2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;;
+2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;;
+2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;;
+2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;;
+2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;;
+2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2388;HELM SYMBOL;So;0;ON;;;;;N;;;;;
+2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;pause;;;
+238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;break;;;
+238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;escape;;;
+238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;;
+238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;;
+238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;;
+238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;;
+2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;;
+2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;;
+2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;;
+2398;NEXT PAGE;So;0;ON;;;;;N;;;;;
+2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
+239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
+23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
+23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
+23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
+23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
+23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
+23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;;
+23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;;
+23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
+23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
+23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;;
+23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;;
+23B4;TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B5;BOTTOM SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;;
+23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
+23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
+23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;;
+23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;;
+23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;;
+23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;;
+23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;;
+23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;;
+23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;;
+23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
+23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
+23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;;
+23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;;
+23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;;
+23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;;
+23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;;
+23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;;
+23CF;EJECT SYMBOL;So;0;ON;;;;;N;;;;;
+23D0;VERTICAL LINE EXTENSION;So;0;ON;;;;;N;;;;;
+23D1;METRICAL BREVE;So;0;ON;;;;;N;;;;;
+23D2;METRICAL LONG OVER SHORT;So;0;ON;;;;;N;;;;;
+23D3;METRICAL SHORT OVER LONG;So;0;ON;;;;;N;;;;;
+23D4;METRICAL LONG OVER TWO SHORTS;So;0;ON;;;;;N;;;;;
+23D5;METRICAL TWO SHORTS OVER LONG;So;0;ON;;;;;N;;;;;
+23D6;METRICAL TWO SHORTS JOINED;So;0;ON;;;;;N;;;;;
+23D7;METRICAL TRISEME;So;0;ON;;;;;N;;;;;
+23D8;METRICAL TETRASEME;So;0;ON;;;;;N;;;;;
+23D9;METRICAL PENTASEME;So;0;ON;;;;;N;;;;;
+23DA;EARTH GROUND;So;0;ON;;;;;N;;;;;
+23DB;FUSE;So;0;ON;;;;;N;;;;;
+23DC;TOP PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;
+23DD;BOTTOM PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;
+23DE;TOP CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23DF;BOTTOM CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E0;TOP TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E1;BOTTOM TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E2;WHITE TRAPEZIUM;So;0;ON;;;;;N;;;;;
+23E3;BENZENE RING WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23E4;STRAIGHTNESS;So;0;ON;;;;;N;;;;;
+23E5;FLATNESS;So;0;ON;;;;;N;;;;;
+23E6;AC CURRENT;So;0;ON;;;;;N;;;;;
+23E7;ELECTRICAL INTERSECTION;So;0;ON;;;;;N;;;;;
+2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;
+2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;
+2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;
+2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;;
+2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;;
+2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;;
+2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;;
+2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;;
+2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;;
+2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;;
+240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;;
+240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;;
+240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;;
+240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;;
+240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;;
+240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;;
+2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;;
+2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;;
+2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;;
+2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;;
+2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;;
+2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;;
+2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;;
+2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;;
+2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;;
+2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;;
+241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;;
+241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;;
+241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;;
+241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;;
+241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;;
+241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;;
+2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;;
+2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;;
+2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;;
+2423;OPEN BOX;So;0;ON;;;;;N;;;;;
+2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;;
+2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;;
+2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;;
+2440;OCR HOOK;So;0;ON;;;;;N;;;;;
+2441;OCR CHAIR;So;0;ON;;;;;N;;;;;
+2442;OCR FORK;So;0;ON;;;;;N;;;;;
+2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;;
+2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;;
+2445;OCR BOW TIE;So;0;ON;;;;;N;;;;;
+2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;;
+2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;;
+2448;OCR DASH;So;0;ON;;;;;N;;;;;
+2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;;
+244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;;
+2460;CIRCLED DIGIT ONE;No;0;ON;<circle> 0031;;1;1;N;;;;;
+2461;CIRCLED DIGIT TWO;No;0;ON;<circle> 0032;;2;2;N;;;;;
+2462;CIRCLED DIGIT THREE;No;0;ON;<circle> 0033;;3;3;N;;;;;
+2463;CIRCLED DIGIT FOUR;No;0;ON;<circle> 0034;;4;4;N;;;;;
+2464;CIRCLED DIGIT FIVE;No;0;ON;<circle> 0035;;5;5;N;;;;;
+2465;CIRCLED DIGIT SIX;No;0;ON;<circle> 0036;;6;6;N;;;;;
+2466;CIRCLED DIGIT SEVEN;No;0;ON;<circle> 0037;;7;7;N;;;;;
+2467;CIRCLED DIGIT EIGHT;No;0;ON;<circle> 0038;;8;8;N;;;;;
+2468;CIRCLED DIGIT NINE;No;0;ON;<circle> 0039;;9;9;N;;;;;
+2469;CIRCLED NUMBER TEN;No;0;ON;<circle> 0031 0030;;;10;N;;;;;
+246A;CIRCLED NUMBER ELEVEN;No;0;ON;<circle> 0031 0031;;;11;N;;;;;
+246B;CIRCLED NUMBER TWELVE;No;0;ON;<circle> 0031 0032;;;12;N;;;;;
+246C;CIRCLED NUMBER THIRTEEN;No;0;ON;<circle> 0031 0033;;;13;N;;;;;
+246D;CIRCLED NUMBER FOURTEEN;No;0;ON;<circle> 0031 0034;;;14;N;;;;;
+246E;CIRCLED NUMBER FIFTEEN;No;0;ON;<circle> 0031 0035;;;15;N;;;;;
+246F;CIRCLED NUMBER SIXTEEN;No;0;ON;<circle> 0031 0036;;;16;N;;;;;
+2470;CIRCLED NUMBER SEVENTEEN;No;0;ON;<circle> 0031 0037;;;17;N;;;;;
+2471;CIRCLED NUMBER EIGHTEEN;No;0;ON;<circle> 0031 0038;;;18;N;;;;;
+2472;CIRCLED NUMBER NINETEEN;No;0;ON;<circle> 0031 0039;;;19;N;;;;;
+2473;CIRCLED NUMBER TWENTY;No;0;ON;<circle> 0032 0030;;;20;N;;;;;
+2474;PARENTHESIZED DIGIT ONE;No;0;ON;<compat> 0028 0031 0029;;1;1;N;;;;;
+2475;PARENTHESIZED DIGIT TWO;No;0;ON;<compat> 0028 0032 0029;;2;2;N;;;;;
+2476;PARENTHESIZED DIGIT THREE;No;0;ON;<compat> 0028 0033 0029;;3;3;N;;;;;
+2477;PARENTHESIZED DIGIT FOUR;No;0;ON;<compat> 0028 0034 0029;;4;4;N;;;;;
+2478;PARENTHESIZED DIGIT FIVE;No;0;ON;<compat> 0028 0035 0029;;5;5;N;;;;;
+2479;PARENTHESIZED DIGIT SIX;No;0;ON;<compat> 0028 0036 0029;;6;6;N;;;;;
+247A;PARENTHESIZED DIGIT SEVEN;No;0;ON;<compat> 0028 0037 0029;;7;7;N;;;;;
+247B;PARENTHESIZED DIGIT EIGHT;No;0;ON;<compat> 0028 0038 0029;;8;8;N;;;;;
+247C;PARENTHESIZED DIGIT NINE;No;0;ON;<compat> 0028 0039 0029;;9;9;N;;;;;
+247D;PARENTHESIZED NUMBER TEN;No;0;ON;<compat> 0028 0031 0030 0029;;;10;N;;;;;
+247E;PARENTHESIZED NUMBER ELEVEN;No;0;ON;<compat> 0028 0031 0031 0029;;;11;N;;;;;
+247F;PARENTHESIZED NUMBER TWELVE;No;0;ON;<compat> 0028 0031 0032 0029;;;12;N;;;;;
+2480;PARENTHESIZED NUMBER THIRTEEN;No;0;ON;<compat> 0028 0031 0033 0029;;;13;N;;;;;
+2481;PARENTHESIZED NUMBER FOURTEEN;No;0;ON;<compat> 0028 0031 0034 0029;;;14;N;;;;;
+2482;PARENTHESIZED NUMBER FIFTEEN;No;0;ON;<compat> 0028 0031 0035 0029;;;15;N;;;;;
+2483;PARENTHESIZED NUMBER SIXTEEN;No;0;ON;<compat> 0028 0031 0036 0029;;;16;N;;;;;
+2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;ON;<compat> 0028 0031 0037 0029;;;17;N;;;;;
+2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;ON;<compat> 0028 0031 0038 0029;;;18;N;;;;;
+2486;PARENTHESIZED NUMBER NINETEEN;No;0;ON;<compat> 0028 0031 0039 0029;;;19;N;;;;;
+2487;PARENTHESIZED NUMBER TWENTY;No;0;ON;<compat> 0028 0032 0030 0029;;;20;N;;;;;
+2488;DIGIT ONE FULL STOP;No;0;EN;<compat> 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;;
+2489;DIGIT TWO FULL STOP;No;0;EN;<compat> 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;;
+248A;DIGIT THREE FULL STOP;No;0;EN;<compat> 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;;
+248B;DIGIT FOUR FULL STOP;No;0;EN;<compat> 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;;
+248C;DIGIT FIVE FULL STOP;No;0;EN;<compat> 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;;
+248D;DIGIT SIX FULL STOP;No;0;EN;<compat> 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;;
+248E;DIGIT SEVEN FULL STOP;No;0;EN;<compat> 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;;
+248F;DIGIT EIGHT FULL STOP;No;0;EN;<compat> 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;;
+2490;DIGIT NINE FULL STOP;No;0;EN;<compat> 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;;
+2491;NUMBER TEN FULL STOP;No;0;EN;<compat> 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;;
+2492;NUMBER ELEVEN FULL STOP;No;0;EN;<compat> 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;;
+2493;NUMBER TWELVE FULL STOP;No;0;EN;<compat> 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;;
+2494;NUMBER THIRTEEN FULL STOP;No;0;EN;<compat> 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;;
+2495;NUMBER FOURTEEN FULL STOP;No;0;EN;<compat> 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;;
+2496;NUMBER FIFTEEN FULL STOP;No;0;EN;<compat> 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;;
+2497;NUMBER SIXTEEN FULL STOP;No;0;EN;<compat> 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;;
+2498;NUMBER SEVENTEEN FULL STOP;No;0;EN;<compat> 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;;
+2499;NUMBER EIGHTEEN FULL STOP;No;0;EN;<compat> 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;;
+249A;NUMBER NINETEEN FULL STOP;No;0;EN;<compat> 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;;
+249B;NUMBER TWENTY FULL STOP;No;0;EN;<compat> 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;;
+249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L;<compat> 0028 0061 0029;;;;N;;;;;
+249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L;<compat> 0028 0062 0029;;;;N;;;;;
+249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L;<compat> 0028 0063 0029;;;;N;;;;;
+249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L;<compat> 0028 0064 0029;;;;N;;;;;
+24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L;<compat> 0028 0065 0029;;;;N;;;;;
+24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L;<compat> 0028 0066 0029;;;;N;;;;;
+24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L;<compat> 0028 0067 0029;;;;N;;;;;
+24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L;<compat> 0028 0068 0029;;;;N;;;;;
+24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L;<compat> 0028 0069 0029;;;;N;;;;;
+24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L;<compat> 0028 006A 0029;;;;N;;;;;
+24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L;<compat> 0028 006B 0029;;;;N;;;;;
+24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L;<compat> 0028 006C 0029;;;;N;;;;;
+24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L;<compat> 0028 006D 0029;;;;N;;;;;
+24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L;<compat> 0028 006E 0029;;;;N;;;;;
+24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L;<compat> 0028 006F 0029;;;;N;;;;;
+24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L;<compat> 0028 0070 0029;;;;N;;;;;
+24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L;<compat> 0028 0071 0029;;;;N;;;;;
+24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L;<compat> 0028 0072 0029;;;;N;;;;;
+24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L;<compat> 0028 0073 0029;;;;N;;;;;
+24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L;<compat> 0028 0074 0029;;;;N;;;;;
+24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L;<compat> 0028 0075 0029;;;;N;;;;;
+24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L;<compat> 0028 0076 0029;;;;N;;;;;
+24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L;<compat> 0028 0077 0029;;;;N;;;;;
+24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L;<compat> 0028 0078 0029;;;;N;;;;;
+24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L;<compat> 0028 0079 0029;;;;N;;;;;
+24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L;<compat> 0028 007A 0029;;;;N;;;;;
+24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L;<circle> 0041;;;;N;;;;24D0;
+24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L;<circle> 0042;;;;N;;;;24D1;
+24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;24D2;
+24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L;<circle> 0044;;;;N;;;;24D3;
+24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L;<circle> 0045;;;;N;;;;24D4;
+24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L;<circle> 0046;;;;N;;;;24D5;
+24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L;<circle> 0047;;;;N;;;;24D6;
+24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L;<circle> 0048;;;;N;;;;24D7;
+24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L;<circle> 0049;;;;N;;;;24D8;
+24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L;<circle> 004A;;;;N;;;;24D9;
+24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L;<circle> 004B;;;;N;;;;24DA;
+24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L;<circle> 004C;;;;N;;;;24DB;
+24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L;<circle> 004D;;;;N;;;;24DC;
+24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L;<circle> 004E;;;;N;;;;24DD;
+24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L;<circle> 004F;;;;N;;;;24DE;
+24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L;<circle> 0050;;;;N;;;;24DF;
+24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L;<circle> 0051;;;;N;;;;24E0;
+24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;24E1;
+24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L;<circle> 0053;;;;N;;;;24E2;
+24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L;<circle> 0054;;;;N;;;;24E3;
+24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L;<circle> 0055;;;;N;;;;24E4;
+24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L;<circle> 0056;;;;N;;;;24E5;
+24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L;<circle> 0057;;;;N;;;;24E6;
+24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L;<circle> 0058;;;;N;;;;24E7;
+24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L;<circle> 0059;;;;N;;;;24E8;
+24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L;<circle> 005A;;;;N;;;;24E9;
+24D0;CIRCLED LATIN SMALL LETTER A;So;0;L;<circle> 0061;;;;N;;;24B6;;24B6
+24D1;CIRCLED LATIN SMALL LETTER B;So;0;L;<circle> 0062;;;;N;;;24B7;;24B7
+24D2;CIRCLED LATIN SMALL LETTER C;So;0;L;<circle> 0063;;;;N;;;24B8;;24B8
+24D3;CIRCLED LATIN SMALL LETTER D;So;0;L;<circle> 0064;;;;N;;;24B9;;24B9
+24D4;CIRCLED LATIN SMALL LETTER E;So;0;L;<circle> 0065;;;;N;;;24BA;;24BA
+24D5;CIRCLED LATIN SMALL LETTER F;So;0;L;<circle> 0066;;;;N;;;24BB;;24BB
+24D6;CIRCLED LATIN SMALL LETTER G;So;0;L;<circle> 0067;;;;N;;;24BC;;24BC
+24D7;CIRCLED LATIN SMALL LETTER H;So;0;L;<circle> 0068;;;;N;;;24BD;;24BD
+24D8;CIRCLED LATIN SMALL LETTER I;So;0;L;<circle> 0069;;;;N;;;24BE;;24BE
+24D9;CIRCLED LATIN SMALL LETTER J;So;0;L;<circle> 006A;;;;N;;;24BF;;24BF
+24DA;CIRCLED LATIN SMALL LETTER K;So;0;L;<circle> 006B;;;;N;;;24C0;;24C0
+24DB;CIRCLED LATIN SMALL LETTER L;So;0;L;<circle> 006C;;;;N;;;24C1;;24C1
+24DC;CIRCLED LATIN SMALL LETTER M;So;0;L;<circle> 006D;;;;N;;;24C2;;24C2
+24DD;CIRCLED LATIN SMALL LETTER N;So;0;L;<circle> 006E;;;;N;;;24C3;;24C3
+24DE;CIRCLED LATIN SMALL LETTER O;So;0;L;<circle> 006F;;;;N;;;24C4;;24C4
+24DF;CIRCLED LATIN SMALL LETTER P;So;0;L;<circle> 0070;;;;N;;;24C5;;24C5
+24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L;<circle> 0071;;;;N;;;24C6;;24C6
+24E1;CIRCLED LATIN SMALL LETTER R;So;0;L;<circle> 0072;;;;N;;;24C7;;24C7
+24E2;CIRCLED LATIN SMALL LETTER S;So;0;L;<circle> 0073;;;;N;;;24C8;;24C8
+24E3;CIRCLED LATIN SMALL LETTER T;So;0;L;<circle> 0074;;;;N;;;24C9;;24C9
+24E4;CIRCLED LATIN SMALL LETTER U;So;0;L;<circle> 0075;;;;N;;;24CA;;24CA
+24E5;CIRCLED LATIN SMALL LETTER V;So;0;L;<circle> 0076;;;;N;;;24CB;;24CB
+24E6;CIRCLED LATIN SMALL LETTER W;So;0;L;<circle> 0077;;;;N;;;24CC;;24CC
+24E7;CIRCLED LATIN SMALL LETTER X;So;0;L;<circle> 0078;;;;N;;;24CD;;24CD
+24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L;<circle> 0079;;;;N;;;24CE;;24CE
+24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L;<circle> 007A;;;;N;;;24CF;;24CF
+24EA;CIRCLED DIGIT ZERO;No;0;ON;<circle> 0030;;0;0;N;;;;;
+24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;;
+24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;;
+24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;;
+24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;;
+24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;;
+24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;;
+24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;;
+24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;;
+24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;;
+24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;;
+24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;;
+24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;;
+24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;;
+24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;;
+24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;;
+24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;;
+24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;;
+24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;;
+24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;;
+24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;;
+24FF;NEGATIVE CIRCLED DIGIT ZERO;No;0;ON;;;0;0;N;;;;;
+2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;;
+2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;;
+2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;;
+2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;;
+2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;;
+2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;;
+2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;;
+2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;;
+2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;;
+2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;;
+250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;;
+250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;;
+250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;;
+250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;;
+250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;;
+250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;;
+2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;;
+2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;;
+2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;;
+2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;;
+2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;;
+2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;;
+2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;;
+2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;;
+2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;;
+2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;;
+251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;;
+251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;;
+251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;;
+251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;;
+251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;;
+251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;;
+2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;;
+2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;;
+2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;;
+2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;;
+2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;;
+2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;;
+2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;;
+2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;;
+2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;;
+252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;;
+252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;;
+252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;;
+252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;;
+252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;;
+252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;;
+2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;;
+2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;;
+2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;;
+2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;;
+2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;;
+2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;;
+2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;;
+2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;;
+2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;;
+2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;;
+253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;;
+253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;;
+253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;;
+253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;;
+253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;;
+253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;;
+2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;;
+2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;;
+2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;;
+2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;;
+2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;;
+2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;;
+2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;;
+2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;;
+2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;;
+254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;;
+254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;;
+254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;;
+254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;;
+254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;;
+254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;;
+2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;;
+2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;;
+2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;;
+2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;;
+2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;;
+2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;;
+2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;;
+2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;;
+2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;;
+2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;;
+255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;;
+255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;;
+255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;;
+255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;;
+255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;;
+255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;;
+2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;;
+2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;;
+2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;;
+2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;;
+2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;;
+2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;;
+2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;;
+2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;;
+2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;;
+2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;;
+256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;;
+256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;;
+256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;;
+256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;;
+256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;;
+256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;;
+2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;;
+2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;;
+2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;;
+2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;;
+2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;;
+2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;;
+2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;;
+2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;;
+2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;;
+2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;;
+257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;;
+257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;;
+257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;;
+257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;;
+257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;;
+257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;;
+2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;;
+2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2588;FULL BLOCK;So;0;ON;;;;;N;;;;;
+2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;;
+258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;;
+258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;;
+2591;LIGHT SHADE;So;0;ON;;;;;N;;;;;
+2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+2593;DARK SHADE;So;0;ON;;;;;N;;;;;
+2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;;
+2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;;
+2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;;
+2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;;
+259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;;
+25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;;
+25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
+25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;;
+25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;;
+25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;;
+25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;;
+25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;;
+25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;;
+25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;;
+25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;;
+25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;;
+25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;;
+25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;;
+25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;;
+25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;;
+25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;;
+25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;;
+25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;;
+25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;;
+25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;;
+25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;;
+25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;;
+25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;;
+25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;;
+25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;;
+25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;;
+25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;;
+25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;;
+25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;;
+25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+25C9;FISHEYE;So;0;ON;;;;;N;;;;;
+25CA;LOZENGE;So;0;ON;;;;;N;;;;;
+25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;;
+25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25CE;BULLSEYE;So;0;ON;;;;;N;;;;;
+25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;;
+25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E6;WHITE BULLET;So;0;ON;;;;;N;;;;;
+25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;;
+25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;;
+25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;;
+25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;;
+25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;;
+25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
+25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
+25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
+25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
+25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+2601;CLOUD;So;0;ON;;;;;N;;;;;
+2602;UMBRELLA;So;0;ON;;;;;N;;;;;
+2603;SNOWMAN;So;0;ON;;;;;N;;;;;
+2604;COMET;So;0;ON;;;;;N;;;;;
+2605;BLACK STAR;So;0;ON;;;;;N;;;;;
+2606;WHITE STAR;So;0;ON;;;;;N;;;;;
+2607;LIGHTNING;So;0;ON;;;;;N;;;;;
+2608;THUNDERSTORM;So;0;ON;;;;;N;;;;;
+2609;SUN;So;0;ON;;;;;N;;;;;
+260A;ASCENDING NODE;So;0;ON;;;;;N;;;;;
+260B;DESCENDING NODE;So;0;ON;;;;;N;;;;;
+260C;CONJUNCTION;So;0;ON;;;;;N;;;;;
+260D;OPPOSITION;So;0;ON;;;;;N;;;;;
+260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;;
+260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;;
+2610;BALLOT BOX;So;0;ON;;;;;N;;;;;
+2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;;
+2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;;
+2613;SALTIRE;So;0;ON;;;;;N;;;;;
+2614;UMBRELLA WITH RAIN DROPS;So;0;ON;;;;;N;;;;;
+2615;HOT BEVERAGE;So;0;ON;;;;;N;;;;;
+2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;;
+2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;;
+2618;SHAMROCK;So;0;ON;;;;;N;;;;;
+2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;;
+261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
+2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;;
+2621;CAUTION SIGN;So;0;ON;;;;;N;;;;;
+2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;;
+2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;;
+2624;CADUCEUS;So;0;ON;;;;;N;;;;;
+2625;ANKH;So;0;ON;;;;;N;;;;;
+2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;;
+2627;CHI RHO;So;0;ON;;;;;N;;;;;
+2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;;
+2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;;
+262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;;
+262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;;
+262C;ADI SHAKTI;So;0;ON;;;;;N;;;;;
+262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;;
+262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;;
+262F;YIN YANG;So;0;ON;;;;;N;;;;;
+2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;;
+2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;;
+2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;;
+2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;;
+2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;;
+2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;;
+2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;;
+2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
+2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;;
+2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;;
+263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;;
+263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;;
+263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263F;MERCURY;So;0;ON;;;;;N;;;;;
+2640;FEMALE SIGN;So;0;ON;;;;;N;;;;;
+2641;EARTH;So;0;ON;;;;;N;;;;;
+2642;MALE SIGN;So;0;ON;;;;;N;;;;;
+2643;JUPITER;So;0;ON;;;;;N;;;;;
+2644;SATURN;So;0;ON;;;;;N;;;;;
+2645;URANUS;So;0;ON;;;;;N;;;;;
+2646;NEPTUNE;So;0;ON;;;;;N;;;;;
+2647;PLUTO;So;0;ON;;;;;N;;;;;
+2648;ARIES;So;0;ON;;;;;N;;;;;
+2649;TAURUS;So;0;ON;;;;;N;;;;;
+264A;GEMINI;So;0;ON;;;;;N;;;;;
+264B;CANCER;So;0;ON;;;;;N;;;;;
+264C;LEO;So;0;ON;;;;;N;;;;;
+264D;VIRGO;So;0;ON;;;;;N;;;;;
+264E;LIBRA;So;0;ON;;;;;N;;;;;
+264F;SCORPIUS;So;0;ON;;;;;N;;;;;
+2650;SAGITTARIUS;So;0;ON;;;;;N;;;;;
+2651;CAPRICORN;So;0;ON;;;;;N;;;;;
+2652;AQUARIUS;So;0;ON;;;;;N;;;;;
+2653;PISCES;So;0;ON;;;;;N;;;;;
+2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;;
+2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;;
+2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;;
+2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;;
+2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;;
+265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;;
+265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;;
+265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;;
+265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;;
+265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;;
+2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;;
+2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;;
+2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;;
+2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;;
+2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;;
+2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;;
+2668;HOT SPRINGS;So;0;ON;;;;;N;;;;;
+2669;QUARTER NOTE;So;0;ON;;;;;N;;;;;
+266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;;
+266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;;
+266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;;
+266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;;
+266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;;
+266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;;
+2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
+2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;pete;;;
+2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;hdpe;;;
+2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;pvc;;;
+2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;ldpe;;;
+2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;pp;;;
+2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;ps;;;
+2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;other;;;
+267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;;
+267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
+267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
+267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
+267E;PERMANENT PAPER SIGN;So;0;ON;;;;;N;;;;;
+267F;WHEELCHAIR SYMBOL;So;0;ON;;;;;N;;;;;
+2680;DIE FACE-1;So;0;ON;;;;;N;;;;;
+2681;DIE FACE-2;So;0;ON;;;;;N;;;;;
+2682;DIE FACE-3;So;0;ON;;;;;N;;;;;
+2683;DIE FACE-4;So;0;ON;;;;;N;;;;;
+2684;DIE FACE-5;So;0;ON;;;;;N;;;;;
+2685;DIE FACE-6;So;0;ON;;;;;N;;;;;
+2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;;
+2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;;
+2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;;
+2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;;
+268A;MONOGRAM FOR YANG;So;0;ON;;;;;N;;;;;
+268B;MONOGRAM FOR YIN;So;0;ON;;;;;N;;;;;
+268C;DIGRAM FOR GREATER YANG;So;0;ON;;;;;N;;;;;
+268D;DIGRAM FOR LESSER YIN;So;0;ON;;;;;N;;;;;
+268E;DIGRAM FOR LESSER YANG;So;0;ON;;;;;N;;;;;
+268F;DIGRAM FOR GREATER YIN;So;0;ON;;;;;N;;;;;
+2690;WHITE FLAG;So;0;ON;;;;;N;;;;;
+2691;BLACK FLAG;So;0;ON;;;;;N;;;;;
+2692;HAMMER AND PICK;So;0;ON;;;;;N;;;;;
+2693;ANCHOR;So;0;ON;;;;;N;;;;;
+2694;CROSSED SWORDS;So;0;ON;;;;;N;;;;;
+2695;STAFF OF AESCULAPIUS;So;0;ON;;;;;N;;;;;
+2696;SCALES;So;0;ON;;;;;N;;;;;
+2697;ALEMBIC;So;0;ON;;;;;N;;;;;
+2698;FLOWER;So;0;ON;;;;;N;;;;;
+2699;GEAR;So;0;ON;;;;;N;;;;;
+269A;STAFF OF HERMES;So;0;ON;;;;;N;;;;;
+269B;ATOM SYMBOL;So;0;ON;;;;;N;;;;;
+269C;FLEUR-DE-LIS;So;0;ON;;;;;N;;;;;
+26A0;WARNING SIGN;So;0;ON;;;;;N;;;;;
+26A1;HIGH VOLTAGE SIGN;So;0;ON;;;;;N;;;;;
+26A2;DOUBLED FEMALE SIGN;So;0;ON;;;;;N;;;;;
+26A3;DOUBLED MALE SIGN;So;0;ON;;;;;N;;;;;
+26A4;INTERLOCKED FEMALE AND MALE SIGN;So;0;ON;;;;;N;;;;;
+26A5;MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;
+26A6;MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
+26A7;MALE WITH STROKE AND MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;
+26A8;VERTICAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
+26A9;HORIZONTAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
+26AA;MEDIUM WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+26AB;MEDIUM BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+26AC;MEDIUM SMALL WHITE CIRCLE;So;0;L;;;;;N;;;;;
+26AD;MARRIAGE SYMBOL;So;0;ON;;;;;N;;;;;
+26AE;DIVORCE SYMBOL;So;0;ON;;;;;N;;;;;
+26AF;UNMARRIED PARTNERSHIP SYMBOL;So;0;ON;;;;;N;;;;;
+26B0;COFFIN;So;0;ON;;;;;N;;;;;
+26B1;FUNERAL URN;So;0;ON;;;;;N;;;;;
+26B2;NEUTER;So;0;ON;;;;;N;;;;;
+2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
+2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;;
+2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;;
+2707;TAPE DRIVE;So;0;ON;;;;;N;;;;;
+2708;AIRPLANE;So;0;ON;;;;;N;;;;;
+2709;ENVELOPE;So;0;ON;;;;;N;;;;;
+270C;VICTORY HAND;So;0;ON;;;;;N;;;;;
+270D;WRITING HAND;So;0;ON;;;;;N;;;;;
+270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+270F;PENCIL;So;0;ON;;;;;N;;;;;
+2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+2711;WHITE NIB;So;0;ON;;;;;N;;;;;
+2712;BLACK NIB;So;0;ON;;;;;N;;;;;
+2713;CHECK MARK;So;0;ON;;;;;N;;;;;
+2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;
+2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2717;BALLOT X;So;0;ON;;;;;N;;;;;
+2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;;
+2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;;
+271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
+271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;;
+271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;;
+271D;LATIN CROSS;So;0;ON;;;;;N;;;;;
+271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;;
+271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;;
+2720;MALTESE CROSS;So;0;ON;;;;;N;;;;;
+2721;STAR OF DAVID;So;0;ON;;;;;N;;;;;
+2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;;
+272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;;
+272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;;
+272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;;
+272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;;
+2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;;
+2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;;
+2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;;
+273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;;
+273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;;
+2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;;
+2744;SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2747;SPARKLE;So;0;ON;;;;;N;;;;;
+2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;;
+2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;;
+2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;;
+2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;;
+2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;;
+2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;;
+2766;FLORAL HEART;So;0;ON;;;;;N;;;;;
+2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;;
+2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;;
+2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;;
+2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;;
+277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;;
+277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;;
+277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;;
+277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;;
+277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;;
+277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;;
+2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;;
+2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;;
+2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;;
+2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;;
+2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;;
+2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;;
+2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;;
+2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;;
+278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;;
+278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;;
+278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;;
+278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;;
+278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;;
+278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;;
+2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;;
+2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;;
+2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;;
+2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;;
+2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;;
+279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;;
+279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;;
+279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;;
+279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;;
+279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;;
+279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;;
+27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;;
+27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;;
+27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;;
+27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;;
+27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;;
+27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;;
+27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;;
+27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;;
+27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;;
+27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;;
+27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;;
+27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;;
+27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;;
+27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;;
+27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;;
+27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;;
+27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;;
+27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;;
+27C0;THREE DIMENSIONAL ANGLE;Sm;0;ON;;;;;Y;;;;;
+27C1;WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE;Sm;0;ON;;;;;N;;;;;
+27C2;PERPENDICULAR;Sm;0;ON;;;;;N;;;;;
+27C3;OPEN SUBSET;Sm;0;ON;;;;;Y;;;;;
+27C4;OPEN SUPERSET;Sm;0;ON;;;;;Y;;;;;
+27C5;LEFT S-SHAPED BAG DELIMITER;Ps;0;ON;;;;;Y;;;;;
+27C6;RIGHT S-SHAPED BAG DELIMITER;Pe;0;ON;;;;;Y;;;;;
+27C7;OR WITH DOT INSIDE;Sm;0;ON;;;;;N;;;;;
+27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;N;;;;;
+27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;N;;;;;
+27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;;
+27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;;
+27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;;
+27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
+27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
+27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
+27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
+27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;;
+27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;;
+27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;;
+27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;;
+27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;;
+27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;;
+27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
+27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;;
+27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;;
+27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
+27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;;
+2800;BRAILLE PATTERN BLANK;So;0;L;;;;;N;;;;;
+2801;BRAILLE PATTERN DOTS-1;So;0;L;;;;;N;;;;;
+2802;BRAILLE PATTERN DOTS-2;So;0;L;;;;;N;;;;;
+2803;BRAILLE PATTERN DOTS-12;So;0;L;;;;;N;;;;;
+2804;BRAILLE PATTERN DOTS-3;So;0;L;;;;;N;;;;;
+2805;BRAILLE PATTERN DOTS-13;So;0;L;;;;;N;;;;;
+2806;BRAILLE PATTERN DOTS-23;So;0;L;;;;;N;;;;;
+2807;BRAILLE PATTERN DOTS-123;So;0;L;;;;;N;;;;;
+2808;BRAILLE PATTERN DOTS-4;So;0;L;;;;;N;;;;;
+2809;BRAILLE PATTERN DOTS-14;So;0;L;;;;;N;;;;;
+280A;BRAILLE PATTERN DOTS-24;So;0;L;;;;;N;;;;;
+280B;BRAILLE PATTERN DOTS-124;So;0;L;;;;;N;;;;;
+280C;BRAILLE PATTERN DOTS-34;So;0;L;;;;;N;;;;;
+280D;BRAILLE PATTERN DOTS-134;So;0;L;;;;;N;;;;;
+280E;BRAILLE PATTERN DOTS-234;So;0;L;;;;;N;;;;;
+280F;BRAILLE PATTERN DOTS-1234;So;0;L;;;;;N;;;;;
+2810;BRAILLE PATTERN DOTS-5;So;0;L;;;;;N;;;;;
+2811;BRAILLE PATTERN DOTS-15;So;0;L;;;;;N;;;;;
+2812;BRAILLE PATTERN DOTS-25;So;0;L;;;;;N;;;;;
+2813;BRAILLE PATTERN DOTS-125;So;0;L;;;;;N;;;;;
+2814;BRAILLE PATTERN DOTS-35;So;0;L;;;;;N;;;;;
+2815;BRAILLE PATTERN DOTS-135;So;0;L;;;;;N;;;;;
+2816;BRAILLE PATTERN DOTS-235;So;0;L;;;;;N;;;;;
+2817;BRAILLE PATTERN DOTS-1235;So;0;L;;;;;N;;;;;
+2818;BRAILLE PATTERN DOTS-45;So;0;L;;;;;N;;;;;
+2819;BRAILLE PATTERN DOTS-145;So;0;L;;;;;N;;;;;
+281A;BRAILLE PATTERN DOTS-245;So;0;L;;;;;N;;;;;
+281B;BRAILLE PATTERN DOTS-1245;So;0;L;;;;;N;;;;;
+281C;BRAILLE PATTERN DOTS-345;So;0;L;;;;;N;;;;;
+281D;BRAILLE PATTERN DOTS-1345;So;0;L;;;;;N;;;;;
+281E;BRAILLE PATTERN DOTS-2345;So;0;L;;;;;N;;;;;
+281F;BRAILLE PATTERN DOTS-12345;So;0;L;;;;;N;;;;;
+2820;BRAILLE PATTERN DOTS-6;So;0;L;;;;;N;;;;;
+2821;BRAILLE PATTERN DOTS-16;So;0;L;;;;;N;;;;;
+2822;BRAILLE PATTERN DOTS-26;So;0;L;;;;;N;;;;;
+2823;BRAILLE PATTERN DOTS-126;So;0;L;;;;;N;;;;;
+2824;BRAILLE PATTERN DOTS-36;So;0;L;;;;;N;;;;;
+2825;BRAILLE PATTERN DOTS-136;So;0;L;;;;;N;;;;;
+2826;BRAILLE PATTERN DOTS-236;So;0;L;;;;;N;;;;;
+2827;BRAILLE PATTERN DOTS-1236;So;0;L;;;;;N;;;;;
+2828;BRAILLE PATTERN DOTS-46;So;0;L;;;;;N;;;;;
+2829;BRAILLE PATTERN DOTS-146;So;0;L;;;;;N;;;;;
+282A;BRAILLE PATTERN DOTS-246;So;0;L;;;;;N;;;;;
+282B;BRAILLE PATTERN DOTS-1246;So;0;L;;;;;N;;;;;
+282C;BRAILLE PATTERN DOTS-346;So;0;L;;;;;N;;;;;
+282D;BRAILLE PATTERN DOTS-1346;So;0;L;;;;;N;;;;;
+282E;BRAILLE PATTERN DOTS-2346;So;0;L;;;;;N;;;;;
+282F;BRAILLE PATTERN DOTS-12346;So;0;L;;;;;N;;;;;
+2830;BRAILLE PATTERN DOTS-56;So;0;L;;;;;N;;;;;
+2831;BRAILLE PATTERN DOTS-156;So;0;L;;;;;N;;;;;
+2832;BRAILLE PATTERN DOTS-256;So;0;L;;;;;N;;;;;
+2833;BRAILLE PATTERN DOTS-1256;So;0;L;;;;;N;;;;;
+2834;BRAILLE PATTERN DOTS-356;So;0;L;;;;;N;;;;;
+2835;BRAILLE PATTERN DOTS-1356;So;0;L;;;;;N;;;;;
+2836;BRAILLE PATTERN DOTS-2356;So;0;L;;;;;N;;;;;
+2837;BRAILLE PATTERN DOTS-12356;So;0;L;;;;;N;;;;;
+2838;BRAILLE PATTERN DOTS-456;So;0;L;;;;;N;;;;;
+2839;BRAILLE PATTERN DOTS-1456;So;0;L;;;;;N;;;;;
+283A;BRAILLE PATTERN DOTS-2456;So;0;L;;;;;N;;;;;
+283B;BRAILLE PATTERN DOTS-12456;So;0;L;;;;;N;;;;;
+283C;BRAILLE PATTERN DOTS-3456;So;0;L;;;;;N;;;;;
+283D;BRAILLE PATTERN DOTS-13456;So;0;L;;;;;N;;;;;
+283E;BRAILLE PATTERN DOTS-23456;So;0;L;;;;;N;;;;;
+283F;BRAILLE PATTERN DOTS-123456;So;0;L;;;;;N;;;;;
+2840;BRAILLE PATTERN DOTS-7;So;0;L;;;;;N;;;;;
+2841;BRAILLE PATTERN DOTS-17;So;0;L;;;;;N;;;;;
+2842;BRAILLE PATTERN DOTS-27;So;0;L;;;;;N;;;;;
+2843;BRAILLE PATTERN DOTS-127;So;0;L;;;;;N;;;;;
+2844;BRAILLE PATTERN DOTS-37;So;0;L;;;;;N;;;;;
+2845;BRAILLE PATTERN DOTS-137;So;0;L;;;;;N;;;;;
+2846;BRAILLE PATTERN DOTS-237;So;0;L;;;;;N;;;;;
+2847;BRAILLE PATTERN DOTS-1237;So;0;L;;;;;N;;;;;
+2848;BRAILLE PATTERN DOTS-47;So;0;L;;;;;N;;;;;
+2849;BRAILLE PATTERN DOTS-147;So;0;L;;;;;N;;;;;
+284A;BRAILLE PATTERN DOTS-247;So;0;L;;;;;N;;;;;
+284B;BRAILLE PATTERN DOTS-1247;So;0;L;;;;;N;;;;;
+284C;BRAILLE PATTERN DOTS-347;So;0;L;;;;;N;;;;;
+284D;BRAILLE PATTERN DOTS-1347;So;0;L;;;;;N;;;;;
+284E;BRAILLE PATTERN DOTS-2347;So;0;L;;;;;N;;;;;
+284F;BRAILLE PATTERN DOTS-12347;So;0;L;;;;;N;;;;;
+2850;BRAILLE PATTERN DOTS-57;So;0;L;;;;;N;;;;;
+2851;BRAILLE PATTERN DOTS-157;So;0;L;;;;;N;;;;;
+2852;BRAILLE PATTERN DOTS-257;So;0;L;;;;;N;;;;;
+2853;BRAILLE PATTERN DOTS-1257;So;0;L;;;;;N;;;;;
+2854;BRAILLE PATTERN DOTS-357;So;0;L;;;;;N;;;;;
+2855;BRAILLE PATTERN DOTS-1357;So;0;L;;;;;N;;;;;
+2856;BRAILLE PATTERN DOTS-2357;So;0;L;;;;;N;;;;;
+2857;BRAILLE PATTERN DOTS-12357;So;0;L;;;;;N;;;;;
+2858;BRAILLE PATTERN DOTS-457;So;0;L;;;;;N;;;;;
+2859;BRAILLE PATTERN DOTS-1457;So;0;L;;;;;N;;;;;
+285A;BRAILLE PATTERN DOTS-2457;So;0;L;;;;;N;;;;;
+285B;BRAILLE PATTERN DOTS-12457;So;0;L;;;;;N;;;;;
+285C;BRAILLE PATTERN DOTS-3457;So;0;L;;;;;N;;;;;
+285D;BRAILLE PATTERN DOTS-13457;So;0;L;;;;;N;;;;;
+285E;BRAILLE PATTERN DOTS-23457;So;0;L;;;;;N;;;;;
+285F;BRAILLE PATTERN DOTS-123457;So;0;L;;;;;N;;;;;
+2860;BRAILLE PATTERN DOTS-67;So;0;L;;;;;N;;;;;
+2861;BRAILLE PATTERN DOTS-167;So;0;L;;;;;N;;;;;
+2862;BRAILLE PATTERN DOTS-267;So;0;L;;;;;N;;;;;
+2863;BRAILLE PATTERN DOTS-1267;So;0;L;;;;;N;;;;;
+2864;BRAILLE PATTERN DOTS-367;So;0;L;;;;;N;;;;;
+2865;BRAILLE PATTERN DOTS-1367;So;0;L;;;;;N;;;;;
+2866;BRAILLE PATTERN DOTS-2367;So;0;L;;;;;N;;;;;
+2867;BRAILLE PATTERN DOTS-12367;So;0;L;;;;;N;;;;;
+2868;BRAILLE PATTERN DOTS-467;So;0;L;;;;;N;;;;;
+2869;BRAILLE PATTERN DOTS-1467;So;0;L;;;;;N;;;;;
+286A;BRAILLE PATTERN DOTS-2467;So;0;L;;;;;N;;;;;
+286B;BRAILLE PATTERN DOTS-12467;So;0;L;;;;;N;;;;;
+286C;BRAILLE PATTERN DOTS-3467;So;0;L;;;;;N;;;;;
+286D;BRAILLE PATTERN DOTS-13467;So;0;L;;;;;N;;;;;
+286E;BRAILLE PATTERN DOTS-23467;So;0;L;;;;;N;;;;;
+286F;BRAILLE PATTERN DOTS-123467;So;0;L;;;;;N;;;;;
+2870;BRAILLE PATTERN DOTS-567;So;0;L;;;;;N;;;;;
+2871;BRAILLE PATTERN DOTS-1567;So;0;L;;;;;N;;;;;
+2872;BRAILLE PATTERN DOTS-2567;So;0;L;;;;;N;;;;;
+2873;BRAILLE PATTERN DOTS-12567;So;0;L;;;;;N;;;;;
+2874;BRAILLE PATTERN DOTS-3567;So;0;L;;;;;N;;;;;
+2875;BRAILLE PATTERN DOTS-13567;So;0;L;;;;;N;;;;;
+2876;BRAILLE PATTERN DOTS-23567;So;0;L;;;;;N;;;;;
+2877;BRAILLE PATTERN DOTS-123567;So;0;L;;;;;N;;;;;
+2878;BRAILLE PATTERN DOTS-4567;So;0;L;;;;;N;;;;;
+2879;BRAILLE PATTERN DOTS-14567;So;0;L;;;;;N;;;;;
+287A;BRAILLE PATTERN DOTS-24567;So;0;L;;;;;N;;;;;
+287B;BRAILLE PATTERN DOTS-124567;So;0;L;;;;;N;;;;;
+287C;BRAILLE PATTERN DOTS-34567;So;0;L;;;;;N;;;;;
+287D;BRAILLE PATTERN DOTS-134567;So;0;L;;;;;N;;;;;
+287E;BRAILLE PATTERN DOTS-234567;So;0;L;;;;;N;;;;;
+287F;BRAILLE PATTERN DOTS-1234567;So;0;L;;;;;N;;;;;
+2880;BRAILLE PATTERN DOTS-8;So;0;L;;;;;N;;;;;
+2881;BRAILLE PATTERN DOTS-18;So;0;L;;;;;N;;;;;
+2882;BRAILLE PATTERN DOTS-28;So;0;L;;;;;N;;;;;
+2883;BRAILLE PATTERN DOTS-128;So;0;L;;;;;N;;;;;
+2884;BRAILLE PATTERN DOTS-38;So;0;L;;;;;N;;;;;
+2885;BRAILLE PATTERN DOTS-138;So;0;L;;;;;N;;;;;
+2886;BRAILLE PATTERN DOTS-238;So;0;L;;;;;N;;;;;
+2887;BRAILLE PATTERN DOTS-1238;So;0;L;;;;;N;;;;;
+2888;BRAILLE PATTERN DOTS-48;So;0;L;;;;;N;;;;;
+2889;BRAILLE PATTERN DOTS-148;So;0;L;;;;;N;;;;;
+288A;BRAILLE PATTERN DOTS-248;So;0;L;;;;;N;;;;;
+288B;BRAILLE PATTERN DOTS-1248;So;0;L;;;;;N;;;;;
+288C;BRAILLE PATTERN DOTS-348;So;0;L;;;;;N;;;;;
+288D;BRAILLE PATTERN DOTS-1348;So;0;L;;;;;N;;;;;
+288E;BRAILLE PATTERN DOTS-2348;So;0;L;;;;;N;;;;;
+288F;BRAILLE PATTERN DOTS-12348;So;0;L;;;;;N;;;;;
+2890;BRAILLE PATTERN DOTS-58;So;0;L;;;;;N;;;;;
+2891;BRAILLE PATTERN DOTS-158;So;0;L;;;;;N;;;;;
+2892;BRAILLE PATTERN DOTS-258;So;0;L;;;;;N;;;;;
+2893;BRAILLE PATTERN DOTS-1258;So;0;L;;;;;N;;;;;
+2894;BRAILLE PATTERN DOTS-358;So;0;L;;;;;N;;;;;
+2895;BRAILLE PATTERN DOTS-1358;So;0;L;;;;;N;;;;;
+2896;BRAILLE PATTERN DOTS-2358;So;0;L;;;;;N;;;;;
+2897;BRAILLE PATTERN DOTS-12358;So;0;L;;;;;N;;;;;
+2898;BRAILLE PATTERN DOTS-458;So;0;L;;;;;N;;;;;
+2899;BRAILLE PATTERN DOTS-1458;So;0;L;;;;;N;;;;;
+289A;BRAILLE PATTERN DOTS-2458;So;0;L;;;;;N;;;;;
+289B;BRAILLE PATTERN DOTS-12458;So;0;L;;;;;N;;;;;
+289C;BRAILLE PATTERN DOTS-3458;So;0;L;;;;;N;;;;;
+289D;BRAILLE PATTERN DOTS-13458;So;0;L;;;;;N;;;;;
+289E;BRAILLE PATTERN DOTS-23458;So;0;L;;;;;N;;;;;
+289F;BRAILLE PATTERN DOTS-123458;So;0;L;;;;;N;;;;;
+28A0;BRAILLE PATTERN DOTS-68;So;0;L;;;;;N;;;;;
+28A1;BRAILLE PATTERN DOTS-168;So;0;L;;;;;N;;;;;
+28A2;BRAILLE PATTERN DOTS-268;So;0;L;;;;;N;;;;;
+28A3;BRAILLE PATTERN DOTS-1268;So;0;L;;;;;N;;;;;
+28A4;BRAILLE PATTERN DOTS-368;So;0;L;;;;;N;;;;;
+28A5;BRAILLE PATTERN DOTS-1368;So;0;L;;;;;N;;;;;
+28A6;BRAILLE PATTERN DOTS-2368;So;0;L;;;;;N;;;;;
+28A7;BRAILLE PATTERN DOTS-12368;So;0;L;;;;;N;;;;;
+28A8;BRAILLE PATTERN DOTS-468;So;0;L;;;;;N;;;;;
+28A9;BRAILLE PATTERN DOTS-1468;So;0;L;;;;;N;;;;;
+28AA;BRAILLE PATTERN DOTS-2468;So;0;L;;;;;N;;;;;
+28AB;BRAILLE PATTERN DOTS-12468;So;0;L;;;;;N;;;;;
+28AC;BRAILLE PATTERN DOTS-3468;So;0;L;;;;;N;;;;;
+28AD;BRAILLE PATTERN DOTS-13468;So;0;L;;;;;N;;;;;
+28AE;BRAILLE PATTERN DOTS-23468;So;0;L;;;;;N;;;;;
+28AF;BRAILLE PATTERN DOTS-123468;So;0;L;;;;;N;;;;;
+28B0;BRAILLE PATTERN DOTS-568;So;0;L;;;;;N;;;;;
+28B1;BRAILLE PATTERN DOTS-1568;So;0;L;;;;;N;;;;;
+28B2;BRAILLE PATTERN DOTS-2568;So;0;L;;;;;N;;;;;
+28B3;BRAILLE PATTERN DOTS-12568;So;0;L;;;;;N;;;;;
+28B4;BRAILLE PATTERN DOTS-3568;So;0;L;;;;;N;;;;;
+28B5;BRAILLE PATTERN DOTS-13568;So;0;L;;;;;N;;;;;
+28B6;BRAILLE PATTERN DOTS-23568;So;0;L;;;;;N;;;;;
+28B7;BRAILLE PATTERN DOTS-123568;So;0;L;;;;;N;;;;;
+28B8;BRAILLE PATTERN DOTS-4568;So;0;L;;;;;N;;;;;
+28B9;BRAILLE PATTERN DOTS-14568;So;0;L;;;;;N;;;;;
+28BA;BRAILLE PATTERN DOTS-24568;So;0;L;;;;;N;;;;;
+28BB;BRAILLE PATTERN DOTS-124568;So;0;L;;;;;N;;;;;
+28BC;BRAILLE PATTERN DOTS-34568;So;0;L;;;;;N;;;;;
+28BD;BRAILLE PATTERN DOTS-134568;So;0;L;;;;;N;;;;;
+28BE;BRAILLE PATTERN DOTS-234568;So;0;L;;;;;N;;;;;
+28BF;BRAILLE PATTERN DOTS-1234568;So;0;L;;;;;N;;;;;
+28C0;BRAILLE PATTERN DOTS-78;So;0;L;;;;;N;;;;;
+28C1;BRAILLE PATTERN DOTS-178;So;0;L;;;;;N;;;;;
+28C2;BRAILLE PATTERN DOTS-278;So;0;L;;;;;N;;;;;
+28C3;BRAILLE PATTERN DOTS-1278;So;0;L;;;;;N;;;;;
+28C4;BRAILLE PATTERN DOTS-378;So;0;L;;;;;N;;;;;
+28C5;BRAILLE PATTERN DOTS-1378;So;0;L;;;;;N;;;;;
+28C6;BRAILLE PATTERN DOTS-2378;So;0;L;;;;;N;;;;;
+28C7;BRAILLE PATTERN DOTS-12378;So;0;L;;;;;N;;;;;
+28C8;BRAILLE PATTERN DOTS-478;So;0;L;;;;;N;;;;;
+28C9;BRAILLE PATTERN DOTS-1478;So;0;L;;;;;N;;;;;
+28CA;BRAILLE PATTERN DOTS-2478;So;0;L;;;;;N;;;;;
+28CB;BRAILLE PATTERN DOTS-12478;So;0;L;;;;;N;;;;;
+28CC;BRAILLE PATTERN DOTS-3478;So;0;L;;;;;N;;;;;
+28CD;BRAILLE PATTERN DOTS-13478;So;0;L;;;;;N;;;;;
+28CE;BRAILLE PATTERN DOTS-23478;So;0;L;;;;;N;;;;;
+28CF;BRAILLE PATTERN DOTS-123478;So;0;L;;;;;N;;;;;
+28D0;BRAILLE PATTERN DOTS-578;So;0;L;;;;;N;;;;;
+28D1;BRAILLE PATTERN DOTS-1578;So;0;L;;;;;N;;;;;
+28D2;BRAILLE PATTERN DOTS-2578;So;0;L;;;;;N;;;;;
+28D3;BRAILLE PATTERN DOTS-12578;So;0;L;;;;;N;;;;;
+28D4;BRAILLE PATTERN DOTS-3578;So;0;L;;;;;N;;;;;
+28D5;BRAILLE PATTERN DOTS-13578;So;0;L;;;;;N;;;;;
+28D6;BRAILLE PATTERN DOTS-23578;So;0;L;;;;;N;;;;;
+28D7;BRAILLE PATTERN DOTS-123578;So;0;L;;;;;N;;;;;
+28D8;BRAILLE PATTERN DOTS-4578;So;0;L;;;;;N;;;;;
+28D9;BRAILLE PATTERN DOTS-14578;So;0;L;;;;;N;;;;;
+28DA;BRAILLE PATTERN DOTS-24578;So;0;L;;;;;N;;;;;
+28DB;BRAILLE PATTERN DOTS-124578;So;0;L;;;;;N;;;;;
+28DC;BRAILLE PATTERN DOTS-34578;So;0;L;;;;;N;;;;;
+28DD;BRAILLE PATTERN DOTS-134578;So;0;L;;;;;N;;;;;
+28DE;BRAILLE PATTERN DOTS-234578;So;0;L;;;;;N;;;;;
+28DF;BRAILLE PATTERN DOTS-1234578;So;0;L;;;;;N;;;;;
+28E0;BRAILLE PATTERN DOTS-678;So;0;L;;;;;N;;;;;
+28E1;BRAILLE PATTERN DOTS-1678;So;0;L;;;;;N;;;;;
+28E2;BRAILLE PATTERN DOTS-2678;So;0;L;;;;;N;;;;;
+28E3;BRAILLE PATTERN DOTS-12678;So;0;L;;;;;N;;;;;
+28E4;BRAILLE PATTERN DOTS-3678;So;0;L;;;;;N;;;;;
+28E5;BRAILLE PATTERN DOTS-13678;So;0;L;;;;;N;;;;;
+28E6;BRAILLE PATTERN DOTS-23678;So;0;L;;;;;N;;;;;
+28E7;BRAILLE PATTERN DOTS-123678;So;0;L;;;;;N;;;;;
+28E8;BRAILLE PATTERN DOTS-4678;So;0;L;;;;;N;;;;;
+28E9;BRAILLE PATTERN DOTS-14678;So;0;L;;;;;N;;;;;
+28EA;BRAILLE PATTERN DOTS-24678;So;0;L;;;;;N;;;;;
+28EB;BRAILLE PATTERN DOTS-124678;So;0;L;;;;;N;;;;;
+28EC;BRAILLE PATTERN DOTS-34678;So;0;L;;;;;N;;;;;
+28ED;BRAILLE PATTERN DOTS-134678;So;0;L;;;;;N;;;;;
+28EE;BRAILLE PATTERN DOTS-234678;So;0;L;;;;;N;;;;;
+28EF;BRAILLE PATTERN DOTS-1234678;So;0;L;;;;;N;;;;;
+28F0;BRAILLE PATTERN DOTS-5678;So;0;L;;;;;N;;;;;
+28F1;BRAILLE PATTERN DOTS-15678;So;0;L;;;;;N;;;;;
+28F2;BRAILLE PATTERN DOTS-25678;So;0;L;;;;;N;;;;;
+28F3;BRAILLE PATTERN DOTS-125678;So;0;L;;;;;N;;;;;
+28F4;BRAILLE PATTERN DOTS-35678;So;0;L;;;;;N;;;;;
+28F5;BRAILLE PATTERN DOTS-135678;So;0;L;;;;;N;;;;;
+28F6;BRAILLE PATTERN DOTS-235678;So;0;L;;;;;N;;;;;
+28F7;BRAILLE PATTERN DOTS-1235678;So;0;L;;;;;N;;;;;
+28F8;BRAILLE PATTERN DOTS-45678;So;0;L;;;;;N;;;;;
+28F9;BRAILLE PATTERN DOTS-145678;So;0;L;;;;;N;;;;;
+28FA;BRAILLE PATTERN DOTS-245678;So;0;L;;;;;N;;;;;
+28FB;BRAILLE PATTERN DOTS-1245678;So;0;L;;;;;N;;;;;
+28FC;BRAILLE PATTERN DOTS-345678;So;0;L;;;;;N;;;;;
+28FD;BRAILLE PATTERN DOTS-1345678;So;0;L;;;;;N;;;;;
+28FE;BRAILLE PATTERN DOTS-2345678;So;0;L;;;;;N;;;;;
+28FF;BRAILLE PATTERN DOTS-12345678;So;0;L;;;;;N;;;;;
+2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
+290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
+290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;;
+2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
+2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
+2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;;
+2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;;
+292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;;
+292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;;
+2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;;
+2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
+2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;;
+2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;;
+2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;;
+293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;;
+293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
+2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
+2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;;
+2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
+294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
+294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
+294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
+294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
+294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
+2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
+2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
+2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
+2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
+2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
+2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
+2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
+2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
+2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
+2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
+295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
+295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
+295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
+295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
+295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
+295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
+2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
+2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
+2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
+2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
+2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
+296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
+296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
+296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
+296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;;
+2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;;
+297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;;
+2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;;
+2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;;
+2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;;
+2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;;
+2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;;
+2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
+2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
+2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;;
+2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;;
+2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;;
+298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;;
+298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;;
+298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;;
+298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;;
+298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;;
+298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;;
+2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;;
+2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;;
+2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;;
+2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
+2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
+2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
+2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
+2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;;
+2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;;
+2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;;
+299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;;
+299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
+299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;;
+299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;;
+299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;;
+299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
+29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
+29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
+29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;;
+29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;;
+29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;;
+29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;;
+29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;;
+29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;;
+29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;;
+29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;;
+29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;;
+29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;;
+29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
+29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
+29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;;
+29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;;
+29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;;
+29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;;
+29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;;
+29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;;
+29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;;
+29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
+29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
+29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
+29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
+29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;;
+29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;;
+29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;;
+29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;;
+29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;;
+29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;;
+29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;;
+29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;;
+29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
+29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
+29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
+29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
+29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;;
+29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;;
+29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;;
+29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;;
+29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;;
+29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;;
+29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
+29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
+29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
+29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;;
+29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;;
+29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;;
+29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;;
+29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;;
+29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;;
+29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;;
+29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;;
+29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;;
+29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
+29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;;
+29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;;
+29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+29FE;TINY;Sm;0;ON;;;;;N;;;;;
+29FF;MINY;Sm;0;ON;;;;;N;;;;;
+2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;;
+2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;;
+2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;;
+2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON;<compat> 222B 222B 222B 222B;;;;Y;;;;;
+2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;;
+2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;;
+2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;;
+2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;;
+2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
+2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
+2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;;
+2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;;
+2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;;
+2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;;
+2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;;
+2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+2A1D;JOIN;Sm;0;ON;;;;;N;;;;;
+2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;;
+2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;;
+2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;;
+2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;;
+2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;;
+2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;;
+2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;;
+2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;;
+2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;;
+2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;;
+2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;;
+2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;;
+2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;;
+2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;;
+2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;;
+2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
+2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
+2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;;
+2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;;
+2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;;
+2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
+2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
+2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
+2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
+2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
+2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
+2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;;
+2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;;
+2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;;
+2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;;
+2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
+2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A74;DOUBLE COLON EQUAL;Sm;0;ON;<compat> 003A 003A 003D;;;;Y;;;;;
+2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D;;;;N;;;;;
+2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D 003D;;;;N;;;;;
+2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;;
+2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;;
+2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;;
+2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;;
+2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
+2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
+2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;;
+2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;;
+2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;;
+2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;;
+2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
+2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
+2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;;
+2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;;
+2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
+2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;;
+2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;not independent;;;
+2ADD;NONFORKING;Sm;0;ON;;;;;N;;independent;;;
+2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;;
+2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;;
+2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;;
+2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;;
+2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
+2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
+2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;;
+2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
+2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
+2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;;
+2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;;
+2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;;
+2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;;
+2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+2B00;NORTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B01;NORTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B02;SOUTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B03;SOUTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B04;LEFT RIGHT WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B05;LEFTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B06;UPWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B07;DOWNWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B08;NORTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B09;NORTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0A;SOUTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0B;SOUTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0C;LEFT RIGHT BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0D;UP DOWN BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0E;RIGHTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2B0F;RIGHTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2B10;LEFTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2B11;LEFTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2B12;SQUARE WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
+2B13;SQUARE WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
+2B14;SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+2B15;SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+2B16;DIAMOND WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+2B17;DIAMOND WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+2B18;DIAMOND WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
+2B19;DIAMOND WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
+2B1A;DOTTED SQUARE;So;0;ON;;;;;N;;;;;
+2B20;WHITE PENTAGON;So;0;ON;;;;;N;;;;;
+2B21;WHITE HEXAGON;So;0;ON;;;;;N;;;;;
+2B22;BLACK HEXAGON;So;0;ON;;;;;N;;;;;
+2B23;HORIZONTAL BLACK HEXAGON;So;0;ON;;;;;N;;;;;
+2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;
+2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;
+2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;
+2C03;GLAGOLITIC CAPITAL LETTER GLAGOLI;Lu;0;L;;;;;N;;;;2C33;
+2C04;GLAGOLITIC CAPITAL LETTER DOBRO;Lu;0;L;;;;;N;;;;2C34;
+2C05;GLAGOLITIC CAPITAL LETTER YESTU;Lu;0;L;;;;;N;;;;2C35;
+2C06;GLAGOLITIC CAPITAL LETTER ZHIVETE;Lu;0;L;;;;;N;;;;2C36;
+2C07;GLAGOLITIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;2C37;
+2C08;GLAGOLITIC CAPITAL LETTER ZEMLJA;Lu;0;L;;;;;N;;;;2C38;
+2C09;GLAGOLITIC CAPITAL LETTER IZHE;Lu;0;L;;;;;N;;;;2C39;
+2C0A;GLAGOLITIC CAPITAL LETTER INITIAL IZHE;Lu;0;L;;;;;N;;;;2C3A;
+2C0B;GLAGOLITIC CAPITAL LETTER I;Lu;0;L;;;;;N;;;;2C3B;
+2C0C;GLAGOLITIC CAPITAL LETTER DJERVI;Lu;0;L;;;;;N;;;;2C3C;
+2C0D;GLAGOLITIC CAPITAL LETTER KAKO;Lu;0;L;;;;;N;;;;2C3D;
+2C0E;GLAGOLITIC CAPITAL LETTER LJUDIJE;Lu;0;L;;;;;N;;;;2C3E;
+2C0F;GLAGOLITIC CAPITAL LETTER MYSLITE;Lu;0;L;;;;;N;;;;2C3F;
+2C10;GLAGOLITIC CAPITAL LETTER NASHI;Lu;0;L;;;;;N;;;;2C40;
+2C11;GLAGOLITIC CAPITAL LETTER ONU;Lu;0;L;;;;;N;;;;2C41;
+2C12;GLAGOLITIC CAPITAL LETTER POKOJI;Lu;0;L;;;;;N;;;;2C42;
+2C13;GLAGOLITIC CAPITAL LETTER RITSI;Lu;0;L;;;;;N;;;;2C43;
+2C14;GLAGOLITIC CAPITAL LETTER SLOVO;Lu;0;L;;;;;N;;;;2C44;
+2C15;GLAGOLITIC CAPITAL LETTER TVRIDO;Lu;0;L;;;;;N;;;;2C45;
+2C16;GLAGOLITIC CAPITAL LETTER UKU;Lu;0;L;;;;;N;;;;2C46;
+2C17;GLAGOLITIC CAPITAL LETTER FRITU;Lu;0;L;;;;;N;;;;2C47;
+2C18;GLAGOLITIC CAPITAL LETTER HERU;Lu;0;L;;;;;N;;;;2C48;
+2C19;GLAGOLITIC CAPITAL LETTER OTU;Lu;0;L;;;;;N;;;;2C49;
+2C1A;GLAGOLITIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;2C4A;
+2C1B;GLAGOLITIC CAPITAL LETTER SHTA;Lu;0;L;;;;;N;;;;2C4B;
+2C1C;GLAGOLITIC CAPITAL LETTER TSI;Lu;0;L;;;;;N;;;;2C4C;
+2C1D;GLAGOLITIC CAPITAL LETTER CHRIVI;Lu;0;L;;;;;N;;;;2C4D;
+2C1E;GLAGOLITIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;2C4E;
+2C1F;GLAGOLITIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;;;;2C4F;
+2C20;GLAGOLITIC CAPITAL LETTER YERI;Lu;0;L;;;;;N;;;;2C50;
+2C21;GLAGOLITIC CAPITAL LETTER YATI;Lu;0;L;;;;;N;;;;2C51;
+2C22;GLAGOLITIC CAPITAL LETTER SPIDERY HA;Lu;0;L;;;;;N;;;;2C52;
+2C23;GLAGOLITIC CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;2C53;
+2C24;GLAGOLITIC CAPITAL LETTER SMALL YUS;Lu;0;L;;;;;N;;;;2C54;
+2C25;GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL;Lu;0;L;;;;;N;;;;2C55;
+2C26;GLAGOLITIC CAPITAL LETTER YO;Lu;0;L;;;;;N;;;;2C56;
+2C27;GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS;Lu;0;L;;;;;N;;;;2C57;
+2C28;GLAGOLITIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;2C58;
+2C29;GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS;Lu;0;L;;;;;N;;;;2C59;
+2C2A;GLAGOLITIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;2C5A;
+2C2B;GLAGOLITIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;2C5B;
+2C2C;GLAGOLITIC CAPITAL LETTER SHTAPIC;Lu;0;L;;;;;N;;;;2C5C;
+2C2D;GLAGOLITIC CAPITAL LETTER TROKUTASTI A;Lu;0;L;;;;;N;;;;2C5D;
+2C2E;GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE;Lu;0;L;;;;;N;;;;2C5E;
+2C30;GLAGOLITIC SMALL LETTER AZU;Ll;0;L;;;;;N;;;2C00;;2C00
+2C31;GLAGOLITIC SMALL LETTER BUKY;Ll;0;L;;;;;N;;;2C01;;2C01
+2C32;GLAGOLITIC SMALL LETTER VEDE;Ll;0;L;;;;;N;;;2C02;;2C02
+2C33;GLAGOLITIC SMALL LETTER GLAGOLI;Ll;0;L;;;;;N;;;2C03;;2C03
+2C34;GLAGOLITIC SMALL LETTER DOBRO;Ll;0;L;;;;;N;;;2C04;;2C04
+2C35;GLAGOLITIC SMALL LETTER YESTU;Ll;0;L;;;;;N;;;2C05;;2C05
+2C36;GLAGOLITIC SMALL LETTER ZHIVETE;Ll;0;L;;;;;N;;;2C06;;2C06
+2C37;GLAGOLITIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;2C07;;2C07
+2C38;GLAGOLITIC SMALL LETTER ZEMLJA;Ll;0;L;;;;;N;;;2C08;;2C08
+2C39;GLAGOLITIC SMALL LETTER IZHE;Ll;0;L;;;;;N;;;2C09;;2C09
+2C3A;GLAGOLITIC SMALL LETTER INITIAL IZHE;Ll;0;L;;;;;N;;;2C0A;;2C0A
+2C3B;GLAGOLITIC SMALL LETTER I;Ll;0;L;;;;;N;;;2C0B;;2C0B
+2C3C;GLAGOLITIC SMALL LETTER DJERVI;Ll;0;L;;;;;N;;;2C0C;;2C0C
+2C3D;GLAGOLITIC SMALL LETTER KAKO;Ll;0;L;;;;;N;;;2C0D;;2C0D
+2C3E;GLAGOLITIC SMALL LETTER LJUDIJE;Ll;0;L;;;;;N;;;2C0E;;2C0E
+2C3F;GLAGOLITIC SMALL LETTER MYSLITE;Ll;0;L;;;;;N;;;2C0F;;2C0F
+2C40;GLAGOLITIC SMALL LETTER NASHI;Ll;0;L;;;;;N;;;2C10;;2C10
+2C41;GLAGOLITIC SMALL LETTER ONU;Ll;0;L;;;;;N;;;2C11;;2C11
+2C42;GLAGOLITIC SMALL LETTER POKOJI;Ll;0;L;;;;;N;;;2C12;;2C12
+2C43;GLAGOLITIC SMALL LETTER RITSI;Ll;0;L;;;;;N;;;2C13;;2C13
+2C44;GLAGOLITIC SMALL LETTER SLOVO;Ll;0;L;;;;;N;;;2C14;;2C14
+2C45;GLAGOLITIC SMALL LETTER TVRIDO;Ll;0;L;;;;;N;;;2C15;;2C15
+2C46;GLAGOLITIC SMALL LETTER UKU;Ll;0;L;;;;;N;;;2C16;;2C16
+2C47;GLAGOLITIC SMALL LETTER FRITU;Ll;0;L;;;;;N;;;2C17;;2C17
+2C48;GLAGOLITIC SMALL LETTER HERU;Ll;0;L;;;;;N;;;2C18;;2C18
+2C49;GLAGOLITIC SMALL LETTER OTU;Ll;0;L;;;;;N;;;2C19;;2C19
+2C4A;GLAGOLITIC SMALL LETTER PE;Ll;0;L;;;;;N;;;2C1A;;2C1A
+2C4B;GLAGOLITIC SMALL LETTER SHTA;Ll;0;L;;;;;N;;;2C1B;;2C1B
+2C4C;GLAGOLITIC SMALL LETTER TSI;Ll;0;L;;;;;N;;;2C1C;;2C1C
+2C4D;GLAGOLITIC SMALL LETTER CHRIVI;Ll;0;L;;;;;N;;;2C1D;;2C1D
+2C4E;GLAGOLITIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;2C1E;;2C1E
+2C4F;GLAGOLITIC SMALL LETTER YERU;Ll;0;L;;;;;N;;;2C1F;;2C1F
+2C50;GLAGOLITIC SMALL LETTER YERI;Ll;0;L;;;;;N;;;2C20;;2C20
+2C51;GLAGOLITIC SMALL LETTER YATI;Ll;0;L;;;;;N;;;2C21;;2C21
+2C52;GLAGOLITIC SMALL LETTER SPIDERY HA;Ll;0;L;;;;;N;;;2C22;;2C22
+2C53;GLAGOLITIC SMALL LETTER YU;Ll;0;L;;;;;N;;;2C23;;2C23
+2C54;GLAGOLITIC SMALL LETTER SMALL YUS;Ll;0;L;;;;;N;;;2C24;;2C24
+2C55;GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL;Ll;0;L;;;;;N;;;2C25;;2C25
+2C56;GLAGOLITIC SMALL LETTER YO;Ll;0;L;;;;;N;;;2C26;;2C26
+2C57;GLAGOLITIC SMALL LETTER IOTATED SMALL YUS;Ll;0;L;;;;;N;;;2C27;;2C27
+2C58;GLAGOLITIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;2C28;;2C28
+2C59;GLAGOLITIC SMALL LETTER IOTATED BIG YUS;Ll;0;L;;;;;N;;;2C29;;2C29
+2C5A;GLAGOLITIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;2C2A;;2C2A
+2C5B;GLAGOLITIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;2C2B;;2C2B
+2C5C;GLAGOLITIC SMALL LETTER SHTAPIC;Ll;0;L;;;;;N;;;2C2C;;2C2C
+2C5D;GLAGOLITIC SMALL LETTER TROKUTASTI A;Ll;0;L;;;;;N;;;2C2D;;2C2D
+2C5E;GLAGOLITIC SMALL LETTER LATINATE MYSLITE;Ll;0;L;;;;;N;;;2C2E;;2C2E
+2C60;LATIN CAPITAL LETTER L WITH DOUBLE BAR;Lu;0;L;;;;;N;;;;2C61;
+2C61;LATIN SMALL LETTER L WITH DOUBLE BAR;Ll;0;L;;;;;N;;;2C60;;2C60
+2C62;LATIN CAPITAL LETTER L WITH MIDDLE TILDE;Lu;0;L;;;;;N;;;;026B;
+2C63;LATIN CAPITAL LETTER P WITH STROKE;Lu;0;L;;;;;N;;;;1D7D;
+2C64;LATIN CAPITAL LETTER R WITH TAIL;Lu;0;L;;;;;N;;;;027D;
+2C65;LATIN SMALL LETTER A WITH STROKE;Ll;0;L;;;;;N;;;023A;;023A
+2C66;LATIN SMALL LETTER T WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;023E;;023E
+2C67;LATIN CAPITAL LETTER H WITH DESCENDER;Lu;0;L;;;;;N;;;;2C68;
+2C68;LATIN SMALL LETTER H WITH DESCENDER;Ll;0;L;;;;;N;;;2C67;;2C67
+2C69;LATIN CAPITAL LETTER K WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6A;
+2C6A;LATIN SMALL LETTER K WITH DESCENDER;Ll;0;L;;;;;N;;;2C69;;2C69
+2C6B;LATIN CAPITAL LETTER Z WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6C;
+2C6C;LATIN SMALL LETTER Z WITH DESCENDER;Ll;0;L;;;;;N;;;2C6B;;2C6B
+2C74;LATIN SMALL LETTER V WITH CURL;Ll;0;L;;;;;N;;;;;
+2C75;LATIN CAPITAL LETTER HALF H;Lu;0;L;;;;;N;;;;2C76;
+2C76;LATIN SMALL LETTER HALF H;Ll;0;L;;;;;N;;;2C75;;2C75
+2C77;LATIN SMALL LETTER TAILLESS PHI;Ll;0;L;;;;;N;;;;;
+2C80;COPTIC CAPITAL LETTER ALFA;Lu;0;L;;;;;N;;;;2C81;
+2C81;COPTIC SMALL LETTER ALFA;Ll;0;L;;;;;N;;;2C80;;2C80
+2C82;COPTIC CAPITAL LETTER VIDA;Lu;0;L;;;;;N;;;;2C83;
+2C83;COPTIC SMALL LETTER VIDA;Ll;0;L;;;;;N;;;2C82;;2C82
+2C84;COPTIC CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;2C85;
+2C85;COPTIC SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;2C84;;2C84
+2C86;COPTIC CAPITAL LETTER DALDA;Lu;0;L;;;;;N;;;;2C87;
+2C87;COPTIC SMALL LETTER DALDA;Ll;0;L;;;;;N;;;2C86;;2C86
+2C88;COPTIC CAPITAL LETTER EIE;Lu;0;L;;;;;N;;;;2C89;
+2C89;COPTIC SMALL LETTER EIE;Ll;0;L;;;;;N;;;2C88;;2C88
+2C8A;COPTIC CAPITAL LETTER SOU;Lu;0;L;;;;;N;;;;2C8B;
+2C8B;COPTIC SMALL LETTER SOU;Ll;0;L;;;;;N;;;2C8A;;2C8A
+2C8C;COPTIC CAPITAL LETTER ZATA;Lu;0;L;;;;;N;;;;2C8D;
+2C8D;COPTIC SMALL LETTER ZATA;Ll;0;L;;;;;N;;;2C8C;;2C8C
+2C8E;COPTIC CAPITAL LETTER HATE;Lu;0;L;;;;;N;;;;2C8F;
+2C8F;COPTIC SMALL LETTER HATE;Ll;0;L;;;;;N;;;2C8E;;2C8E
+2C90;COPTIC CAPITAL LETTER THETHE;Lu;0;L;;;;;N;;;;2C91;
+2C91;COPTIC SMALL LETTER THETHE;Ll;0;L;;;;;N;;;2C90;;2C90
+2C92;COPTIC CAPITAL LETTER IAUDA;Lu;0;L;;;;;N;;;;2C93;
+2C93;COPTIC SMALL LETTER IAUDA;Ll;0;L;;;;;N;;;2C92;;2C92
+2C94;COPTIC CAPITAL LETTER KAPA;Lu;0;L;;;;;N;;;;2C95;
+2C95;COPTIC SMALL LETTER KAPA;Ll;0;L;;;;;N;;;2C94;;2C94
+2C96;COPTIC CAPITAL LETTER LAULA;Lu;0;L;;;;;N;;;;2C97;
+2C97;COPTIC SMALL LETTER LAULA;Ll;0;L;;;;;N;;;2C96;;2C96
+2C98;COPTIC CAPITAL LETTER MI;Lu;0;L;;;;;N;;;;2C99;
+2C99;COPTIC SMALL LETTER MI;Ll;0;L;;;;;N;;;2C98;;2C98
+2C9A;COPTIC CAPITAL LETTER NI;Lu;0;L;;;;;N;;;;2C9B;
+2C9B;COPTIC SMALL LETTER NI;Ll;0;L;;;;;N;;;2C9A;;2C9A
+2C9C;COPTIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;2C9D;
+2C9D;COPTIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;2C9C;;2C9C
+2C9E;COPTIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;2C9F;
+2C9F;COPTIC SMALL LETTER O;Ll;0;L;;;;;N;;;2C9E;;2C9E
+2CA0;COPTIC CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;2CA1;
+2CA1;COPTIC SMALL LETTER PI;Ll;0;L;;;;;N;;;2CA0;;2CA0
+2CA2;COPTIC CAPITAL LETTER RO;Lu;0;L;;;;;N;;;;2CA3;
+2CA3;COPTIC SMALL LETTER RO;Ll;0;L;;;;;N;;;2CA2;;2CA2
+2CA4;COPTIC CAPITAL LETTER SIMA;Lu;0;L;;;;;N;;;;2CA5;
+2CA5;COPTIC SMALL LETTER SIMA;Ll;0;L;;;;;N;;;2CA4;;2CA4
+2CA6;COPTIC CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;2CA7;
+2CA7;COPTIC SMALL LETTER TAU;Ll;0;L;;;;;N;;;2CA6;;2CA6
+2CA8;COPTIC CAPITAL LETTER UA;Lu;0;L;;;;;N;;;;2CA9;
+2CA9;COPTIC SMALL LETTER UA;Ll;0;L;;;;;N;;;2CA8;;2CA8
+2CAA;COPTIC CAPITAL LETTER FI;Lu;0;L;;;;;N;;;;2CAB;
+2CAB;COPTIC SMALL LETTER FI;Ll;0;L;;;;;N;;;2CAA;;2CAA
+2CAC;COPTIC CAPITAL LETTER KHI;Lu;0;L;;;;;N;;;;2CAD;
+2CAD;COPTIC SMALL LETTER KHI;Ll;0;L;;;;;N;;;2CAC;;2CAC
+2CAE;COPTIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;2CAF;
+2CAF;COPTIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;2CAE;;2CAE
+2CB0;COPTIC CAPITAL LETTER OOU;Lu;0;L;;;;;N;;;;2CB1;
+2CB1;COPTIC SMALL LETTER OOU;Ll;0;L;;;;;N;;;2CB0;;2CB0
+2CB2;COPTIC CAPITAL LETTER DIALECT-P ALEF;Lu;0;L;;;;;N;;;;2CB3;
+2CB3;COPTIC SMALL LETTER DIALECT-P ALEF;Ll;0;L;;;;;N;;;2CB2;;2CB2
+2CB4;COPTIC CAPITAL LETTER OLD COPTIC AIN;Lu;0;L;;;;;N;;;;2CB5;
+2CB5;COPTIC SMALL LETTER OLD COPTIC AIN;Ll;0;L;;;;;N;;;2CB4;;2CB4
+2CB6;COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE;Lu;0;L;;;;;N;;;;2CB7;
+2CB7;COPTIC SMALL LETTER CRYPTOGRAMMIC EIE;Ll;0;L;;;;;N;;;2CB6;;2CB6
+2CB8;COPTIC CAPITAL LETTER DIALECT-P KAPA;Lu;0;L;;;;;N;;;;2CB9;
+2CB9;COPTIC SMALL LETTER DIALECT-P KAPA;Ll;0;L;;;;;N;;;2CB8;;2CB8
+2CBA;COPTIC CAPITAL LETTER DIALECT-P NI;Lu;0;L;;;;;N;;;;2CBB;
+2CBB;COPTIC SMALL LETTER DIALECT-P NI;Ll;0;L;;;;;N;;;2CBA;;2CBA
+2CBC;COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI;Lu;0;L;;;;;N;;;;2CBD;
+2CBD;COPTIC SMALL LETTER CRYPTOGRAMMIC NI;Ll;0;L;;;;;N;;;2CBC;;2CBC
+2CBE;COPTIC CAPITAL LETTER OLD COPTIC OOU;Lu;0;L;;;;;N;;;;2CBF;
+2CBF;COPTIC SMALL LETTER OLD COPTIC OOU;Ll;0;L;;;;;N;;;2CBE;;2CBE
+2CC0;COPTIC CAPITAL LETTER SAMPI;Lu;0;L;;;;;N;;;;2CC1;
+2CC1;COPTIC SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;2CC0;;2CC0
+2CC2;COPTIC CAPITAL LETTER CROSSED SHEI;Lu;0;L;;;;;N;;;;2CC3;
+2CC3;COPTIC SMALL LETTER CROSSED SHEI;Ll;0;L;;;;;N;;;2CC2;;2CC2
+2CC4;COPTIC CAPITAL LETTER OLD COPTIC SHEI;Lu;0;L;;;;;N;;;;2CC5;
+2CC5;COPTIC SMALL LETTER OLD COPTIC SHEI;Ll;0;L;;;;;N;;;2CC4;;2CC4
+2CC6;COPTIC CAPITAL LETTER OLD COPTIC ESH;Lu;0;L;;;;;N;;;;2CC7;
+2CC7;COPTIC SMALL LETTER OLD COPTIC ESH;Ll;0;L;;;;;N;;;2CC6;;2CC6
+2CC8;COPTIC CAPITAL LETTER AKHMIMIC KHEI;Lu;0;L;;;;;N;;;;2CC9;
+2CC9;COPTIC SMALL LETTER AKHMIMIC KHEI;Ll;0;L;;;;;N;;;2CC8;;2CC8
+2CCA;COPTIC CAPITAL LETTER DIALECT-P HORI;Lu;0;L;;;;;N;;;;2CCB;
+2CCB;COPTIC SMALL LETTER DIALECT-P HORI;Ll;0;L;;;;;N;;;2CCA;;2CCA
+2CCC;COPTIC CAPITAL LETTER OLD COPTIC HORI;Lu;0;L;;;;;N;;;;2CCD;
+2CCD;COPTIC SMALL LETTER OLD COPTIC HORI;Ll;0;L;;;;;N;;;2CCC;;2CCC
+2CCE;COPTIC CAPITAL LETTER OLD COPTIC HA;Lu;0;L;;;;;N;;;;2CCF;
+2CCF;COPTIC SMALL LETTER OLD COPTIC HA;Ll;0;L;;;;;N;;;2CCE;;2CCE
+2CD0;COPTIC CAPITAL LETTER L-SHAPED HA;Lu;0;L;;;;;N;;;;2CD1;
+2CD1;COPTIC SMALL LETTER L-SHAPED HA;Ll;0;L;;;;;N;;;2CD0;;2CD0
+2CD2;COPTIC CAPITAL LETTER OLD COPTIC HEI;Lu;0;L;;;;;N;;;;2CD3;
+2CD3;COPTIC SMALL LETTER OLD COPTIC HEI;Ll;0;L;;;;;N;;;2CD2;;2CD2
+2CD4;COPTIC CAPITAL LETTER OLD COPTIC HAT;Lu;0;L;;;;;N;;;;2CD5;
+2CD5;COPTIC SMALL LETTER OLD COPTIC HAT;Ll;0;L;;;;;N;;;2CD4;;2CD4
+2CD6;COPTIC CAPITAL LETTER OLD COPTIC GANGIA;Lu;0;L;;;;;N;;;;2CD7;
+2CD7;COPTIC SMALL LETTER OLD COPTIC GANGIA;Ll;0;L;;;;;N;;;2CD6;;2CD6
+2CD8;COPTIC CAPITAL LETTER OLD COPTIC DJA;Lu;0;L;;;;;N;;;;2CD9;
+2CD9;COPTIC SMALL LETTER OLD COPTIC DJA;Ll;0;L;;;;;N;;;2CD8;;2CD8
+2CDA;COPTIC CAPITAL LETTER OLD COPTIC SHIMA;Lu;0;L;;;;;N;;;;2CDB;
+2CDB;COPTIC SMALL LETTER OLD COPTIC SHIMA;Ll;0;L;;;;;N;;;2CDA;;2CDA
+2CDC;COPTIC CAPITAL LETTER OLD NUBIAN SHIMA;Lu;0;L;;;;;N;;;;2CDD;
+2CDD;COPTIC SMALL LETTER OLD NUBIAN SHIMA;Ll;0;L;;;;;N;;;2CDC;;2CDC
+2CDE;COPTIC CAPITAL LETTER OLD NUBIAN NGI;Lu;0;L;;;;;N;;;;2CDF;
+2CDF;COPTIC SMALL LETTER OLD NUBIAN NGI;Ll;0;L;;;;;N;;;2CDE;;2CDE
+2CE0;COPTIC CAPITAL LETTER OLD NUBIAN NYI;Lu;0;L;;;;;N;;;;2CE1;
+2CE1;COPTIC SMALL LETTER OLD NUBIAN NYI;Ll;0;L;;;;;N;;;2CE0;;2CE0
+2CE2;COPTIC CAPITAL LETTER OLD NUBIAN WAU;Lu;0;L;;;;;N;;;;2CE3;
+2CE3;COPTIC SMALL LETTER OLD NUBIAN WAU;Ll;0;L;;;;;N;;;2CE2;;2CE2
+2CE4;COPTIC SYMBOL KAI;Ll;0;L;;;;;N;;;;;
+2CE5;COPTIC SYMBOL MI RO;So;0;ON;;;;;N;;;;;
+2CE6;COPTIC SYMBOL PI RO;So;0;ON;;;;;N;;;;;
+2CE7;COPTIC SYMBOL STAUROS;So;0;ON;;;;;N;;;;;
+2CE8;COPTIC SYMBOL TAU RO;So;0;ON;;;;;N;;;;;
+2CE9;COPTIC SYMBOL KHI RO;So;0;ON;;;;;N;;;;;
+2CEA;COPTIC SYMBOL SHIMA SIMA;So;0;ON;;;;;N;;;;;
+2CF9;COPTIC OLD NUBIAN FULL STOP;Po;0;ON;;;;;N;;;;;
+2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
+2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
+2CFC;COPTIC OLD NUBIAN VERSE DIVIDER;Po;0;ON;;;;;N;;;;;
+2CFD;COPTIC FRACTION ONE HALF;No;0;ON;;;;1/2;N;;;;;
+2CFE;COPTIC FULL STOP;Po;0;ON;;;;;N;;;;;
+2CFF;COPTIC MORPHOLOGICAL DIVIDER;Po;0;ON;;;;;N;;;;;
+2D00;GEORGIAN SMALL LETTER AN;Ll;0;L;;;;;N;;Khutsuri;10A0;;10A0
+2D01;GEORGIAN SMALL LETTER BAN;Ll;0;L;;;;;N;;Khutsuri;10A1;;10A1
+2D02;GEORGIAN SMALL LETTER GAN;Ll;0;L;;;;;N;;Khutsuri;10A2;;10A2
+2D03;GEORGIAN SMALL LETTER DON;Ll;0;L;;;;;N;;Khutsuri;10A3;;10A3
+2D04;GEORGIAN SMALL LETTER EN;Ll;0;L;;;;;N;;Khutsuri;10A4;;10A4
+2D05;GEORGIAN SMALL LETTER VIN;Ll;0;L;;;;;N;;Khutsuri;10A5;;10A5
+2D06;GEORGIAN SMALL LETTER ZEN;Ll;0;L;;;;;N;;Khutsuri;10A6;;10A6
+2D07;GEORGIAN SMALL LETTER TAN;Ll;0;L;;;;;N;;Khutsuri;10A7;;10A7
+2D08;GEORGIAN SMALL LETTER IN;Ll;0;L;;;;;N;;Khutsuri;10A8;;10A8
+2D09;GEORGIAN SMALL LETTER KAN;Ll;0;L;;;;;N;;Khutsuri;10A9;;10A9
+2D0A;GEORGIAN SMALL LETTER LAS;Ll;0;L;;;;;N;;Khutsuri;10AA;;10AA
+2D0B;GEORGIAN SMALL LETTER MAN;Ll;0;L;;;;;N;;Khutsuri;10AB;;10AB
+2D0C;GEORGIAN SMALL LETTER NAR;Ll;0;L;;;;;N;;Khutsuri;10AC;;10AC
+2D0D;GEORGIAN SMALL LETTER ON;Ll;0;L;;;;;N;;Khutsuri;10AD;;10AD
+2D0E;GEORGIAN SMALL LETTER PAR;Ll;0;L;;;;;N;;Khutsuri;10AE;;10AE
+2D0F;GEORGIAN SMALL LETTER ZHAR;Ll;0;L;;;;;N;;Khutsuri;10AF;;10AF
+2D10;GEORGIAN SMALL LETTER RAE;Ll;0;L;;;;;N;;Khutsuri;10B0;;10B0
+2D11;GEORGIAN SMALL LETTER SAN;Ll;0;L;;;;;N;;Khutsuri;10B1;;10B1
+2D12;GEORGIAN SMALL LETTER TAR;Ll;0;L;;;;;N;;Khutsuri;10B2;;10B2
+2D13;GEORGIAN SMALL LETTER UN;Ll;0;L;;;;;N;;Khutsuri;10B3;;10B3
+2D14;GEORGIAN SMALL LETTER PHAR;Ll;0;L;;;;;N;;Khutsuri;10B4;;10B4
+2D15;GEORGIAN SMALL LETTER KHAR;Ll;0;L;;;;;N;;Khutsuri;10B5;;10B5
+2D16;GEORGIAN SMALL LETTER GHAN;Ll;0;L;;;;;N;;Khutsuri;10B6;;10B6
+2D17;GEORGIAN SMALL LETTER QAR;Ll;0;L;;;;;N;;Khutsuri;10B7;;10B7
+2D18;GEORGIAN SMALL LETTER SHIN;Ll;0;L;;;;;N;;Khutsuri;10B8;;10B8
+2D19;GEORGIAN SMALL LETTER CHIN;Ll;0;L;;;;;N;;Khutsuri;10B9;;10B9
+2D1A;GEORGIAN SMALL LETTER CAN;Ll;0;L;;;;;N;;Khutsuri;10BA;;10BA
+2D1B;GEORGIAN SMALL LETTER JIL;Ll;0;L;;;;;N;;Khutsuri;10BB;;10BB
+2D1C;GEORGIAN SMALL LETTER CIL;Ll;0;L;;;;;N;;Khutsuri;10BC;;10BC
+2D1D;GEORGIAN SMALL LETTER CHAR;Ll;0;L;;;;;N;;Khutsuri;10BD;;10BD
+2D1E;GEORGIAN SMALL LETTER XAN;Ll;0;L;;;;;N;;Khutsuri;10BE;;10BE
+2D1F;GEORGIAN SMALL LETTER JHAN;Ll;0;L;;;;;N;;Khutsuri;10BF;;10BF
+2D20;GEORGIAN SMALL LETTER HAE;Ll;0;L;;;;;N;;Khutsuri;10C0;;10C0
+2D21;GEORGIAN SMALL LETTER HE;Ll;0;L;;;;;N;;Khutsuri;10C1;;10C1
+2D22;GEORGIAN SMALL LETTER HIE;Ll;0;L;;;;;N;;Khutsuri;10C2;;10C2
+2D23;GEORGIAN SMALL LETTER WE;Ll;0;L;;;;;N;;Khutsuri;10C3;;10C3
+2D24;GEORGIAN SMALL LETTER HAR;Ll;0;L;;;;;N;;Khutsuri;10C4;;10C4
+2D25;GEORGIAN SMALL LETTER HOE;Ll;0;L;;;;;N;;Khutsuri;10C5;;10C5
+2D30;TIFINAGH LETTER YA;Lo;0;L;;;;;N;;;;;
+2D31;TIFINAGH LETTER YAB;Lo;0;L;;;;;N;;;;;
+2D32;TIFINAGH LETTER YABH;Lo;0;L;;;;;N;;;;;
+2D33;TIFINAGH LETTER YAG;Lo;0;L;;;;;N;;;;;
+2D34;TIFINAGH LETTER YAGHH;Lo;0;L;;;;;N;;;;;
+2D35;TIFINAGH LETTER BERBER ACADEMY YAJ;Lo;0;L;;;;;N;;;;;
+2D36;TIFINAGH LETTER YAJ;Lo;0;L;;;;;N;;;;;
+2D37;TIFINAGH LETTER YAD;Lo;0;L;;;;;N;;;;;
+2D38;TIFINAGH LETTER YADH;Lo;0;L;;;;;N;;;;;
+2D39;TIFINAGH LETTER YADD;Lo;0;L;;;;;N;;;;;
+2D3A;TIFINAGH LETTER YADDH;Lo;0;L;;;;;N;;;;;
+2D3B;TIFINAGH LETTER YEY;Lo;0;L;;;;;N;;;;;
+2D3C;TIFINAGH LETTER YAF;Lo;0;L;;;;;N;;;;;
+2D3D;TIFINAGH LETTER YAK;Lo;0;L;;;;;N;;;;;
+2D3E;TIFINAGH LETTER TUAREG YAK;Lo;0;L;;;;;N;;;;;
+2D3F;TIFINAGH LETTER YAKHH;Lo;0;L;;;;;N;;;;;
+2D40;TIFINAGH LETTER YAH;Lo;0;L;;;;;N;;Tuareg yab;;;
+2D41;TIFINAGH LETTER BERBER ACADEMY YAH;Lo;0;L;;;;;N;;;;;
+2D42;TIFINAGH LETTER TUAREG YAH;Lo;0;L;;;;;N;;;;;
+2D43;TIFINAGH LETTER YAHH;Lo;0;L;;;;;N;;;;;
+2D44;TIFINAGH LETTER YAA;Lo;0;L;;;;;N;;;;;
+2D45;TIFINAGH LETTER YAKH;Lo;0;L;;;;;N;;;;;
+2D46;TIFINAGH LETTER TUAREG YAKH;Lo;0;L;;;;;N;;;;;
+2D47;TIFINAGH LETTER YAQ;Lo;0;L;;;;;N;;;;;
+2D48;TIFINAGH LETTER TUAREG YAQ;Lo;0;L;;;;;N;;;;;
+2D49;TIFINAGH LETTER YI;Lo;0;L;;;;;N;;;;;
+2D4A;TIFINAGH LETTER YAZH;Lo;0;L;;;;;N;;;;;
+2D4B;TIFINAGH LETTER AHAGGAR YAZH;Lo;0;L;;;;;N;;;;;
+2D4C;TIFINAGH LETTER TUAREG YAZH;Lo;0;L;;;;;N;;;;;
+2D4D;TIFINAGH LETTER YAL;Lo;0;L;;;;;N;;;;;
+2D4E;TIFINAGH LETTER YAM;Lo;0;L;;;;;N;;;;;
+2D4F;TIFINAGH LETTER YAN;Lo;0;L;;;;;N;;;;;
+2D50;TIFINAGH LETTER TUAREG YAGN;Lo;0;L;;;;;N;;;;;
+2D51;TIFINAGH LETTER TUAREG YANG;Lo;0;L;;;;;N;;;;;
+2D52;TIFINAGH LETTER YAP;Lo;0;L;;;;;N;;;;;
+2D53;TIFINAGH LETTER YU;Lo;0;L;;;;;N;;Tuareg yaw;;;
+2D54;TIFINAGH LETTER YAR;Lo;0;L;;;;;N;;;;;
+2D55;TIFINAGH LETTER YARR;Lo;0;L;;;;;N;;;;;
+2D56;TIFINAGH LETTER YAGH;Lo;0;L;;;;;N;;;;;
+2D57;TIFINAGH LETTER TUAREG YAGH;Lo;0;L;;;;;N;;;;;
+2D58;TIFINAGH LETTER AYER YAGH;Lo;0;L;;;;;N;;Adrar yaj;;;
+2D59;TIFINAGH LETTER YAS;Lo;0;L;;;;;N;;;;;
+2D5A;TIFINAGH LETTER YASS;Lo;0;L;;;;;N;;;;;
+2D5B;TIFINAGH LETTER YASH;Lo;0;L;;;;;N;;;;;
+2D5C;TIFINAGH LETTER YAT;Lo;0;L;;;;;N;;;;;
+2D5D;TIFINAGH LETTER YATH;Lo;0;L;;;;;N;;;;;
+2D5E;TIFINAGH LETTER YACH;Lo;0;L;;;;;N;;;;;
+2D5F;TIFINAGH LETTER YATT;Lo;0;L;;;;;N;;;;;
+2D60;TIFINAGH LETTER YAV;Lo;0;L;;;;;N;;;;;
+2D61;TIFINAGH LETTER YAW;Lo;0;L;;;;;N;;;;;
+2D62;TIFINAGH LETTER YAY;Lo;0;L;;;;;N;;;;;
+2D63;TIFINAGH LETTER YAZ;Lo;0;L;;;;;N;;;;;
+2D64;TIFINAGH LETTER TAWELLEMET YAZ;Lo;0;L;;;;;N;;harpoon yaz;;;
+2D65;TIFINAGH LETTER YAZZ;Lo;0;L;;;;;N;;;;;
+2D6F;TIFINAGH MODIFIER LETTER LABIALIZATION MARK;Lm;0;L;<super> 2D61;;;;N;;tamatart;;;
+2D80;ETHIOPIC SYLLABLE LOA;Lo;0;L;;;;;N;;;;;
+2D81;ETHIOPIC SYLLABLE MOA;Lo;0;L;;;;;N;;;;;
+2D82;ETHIOPIC SYLLABLE ROA;Lo;0;L;;;;;N;;;;;
+2D83;ETHIOPIC SYLLABLE SOA;Lo;0;L;;;;;N;;;;;
+2D84;ETHIOPIC SYLLABLE SHOA;Lo;0;L;;;;;N;;;;;
+2D85;ETHIOPIC SYLLABLE BOA;Lo;0;L;;;;;N;;;;;
+2D86;ETHIOPIC SYLLABLE TOA;Lo;0;L;;;;;N;;;;;
+2D87;ETHIOPIC SYLLABLE COA;Lo;0;L;;;;;N;;;;;
+2D88;ETHIOPIC SYLLABLE NOA;Lo;0;L;;;;;N;;;;;
+2D89;ETHIOPIC SYLLABLE NYOA;Lo;0;L;;;;;N;;;;;
+2D8A;ETHIOPIC SYLLABLE GLOTTAL OA;Lo;0;L;;;;;N;;;;;
+2D8B;ETHIOPIC SYLLABLE ZOA;Lo;0;L;;;;;N;;;;;
+2D8C;ETHIOPIC SYLLABLE DOA;Lo;0;L;;;;;N;;;;;
+2D8D;ETHIOPIC SYLLABLE DDOA;Lo;0;L;;;;;N;;;;;
+2D8E;ETHIOPIC SYLLABLE JOA;Lo;0;L;;;;;N;;;;;
+2D8F;ETHIOPIC SYLLABLE THOA;Lo;0;L;;;;;N;;;;;
+2D90;ETHIOPIC SYLLABLE CHOA;Lo;0;L;;;;;N;;;;;
+2D91;ETHIOPIC SYLLABLE PHOA;Lo;0;L;;;;;N;;;;;
+2D92;ETHIOPIC SYLLABLE POA;Lo;0;L;;;;;N;;;;;
+2D93;ETHIOPIC SYLLABLE GGWA;Lo;0;L;;;;;N;;;;;
+2D94;ETHIOPIC SYLLABLE GGWI;Lo;0;L;;;;;N;;;;;
+2D95;ETHIOPIC SYLLABLE GGWEE;Lo;0;L;;;;;N;;;;;
+2D96;ETHIOPIC SYLLABLE GGWE;Lo;0;L;;;;;N;;;;;
+2DA0;ETHIOPIC SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
+2DA1;ETHIOPIC SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
+2DA2;ETHIOPIC SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
+2DA3;ETHIOPIC SYLLABLE SSAA;Lo;0;L;;;;;N;;;;;
+2DA4;ETHIOPIC SYLLABLE SSEE;Lo;0;L;;;;;N;;;;;
+2DA5;ETHIOPIC SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
+2DA6;ETHIOPIC SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
+2DA8;ETHIOPIC SYLLABLE CCA;Lo;0;L;;;;;N;;;;;
+2DA9;ETHIOPIC SYLLABLE CCU;Lo;0;L;;;;;N;;;;;
+2DAA;ETHIOPIC SYLLABLE CCI;Lo;0;L;;;;;N;;;;;
+2DAB;ETHIOPIC SYLLABLE CCAA;Lo;0;L;;;;;N;;;;;
+2DAC;ETHIOPIC SYLLABLE CCEE;Lo;0;L;;;;;N;;;;;
+2DAD;ETHIOPIC SYLLABLE CCE;Lo;0;L;;;;;N;;;;;
+2DAE;ETHIOPIC SYLLABLE CCO;Lo;0;L;;;;;N;;;;;
+2DB0;ETHIOPIC SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
+2DB1;ETHIOPIC SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
+2DB2;ETHIOPIC SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
+2DB3;ETHIOPIC SYLLABLE ZZAA;Lo;0;L;;;;;N;;;;;
+2DB4;ETHIOPIC SYLLABLE ZZEE;Lo;0;L;;;;;N;;;;;
+2DB5;ETHIOPIC SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
+2DB6;ETHIOPIC SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
+2DB8;ETHIOPIC SYLLABLE CCHA;Lo;0;L;;;;;N;;;;;
+2DB9;ETHIOPIC SYLLABLE CCHU;Lo;0;L;;;;;N;;;;;
+2DBA;ETHIOPIC SYLLABLE CCHI;Lo;0;L;;;;;N;;;;;
+2DBB;ETHIOPIC SYLLABLE CCHAA;Lo;0;L;;;;;N;;;;;
+2DBC;ETHIOPIC SYLLABLE CCHEE;Lo;0;L;;;;;N;;;;;
+2DBD;ETHIOPIC SYLLABLE CCHE;Lo;0;L;;;;;N;;;;;
+2DBE;ETHIOPIC SYLLABLE CCHO;Lo;0;L;;;;;N;;;;;
+2DC0;ETHIOPIC SYLLABLE QYA;Lo;0;L;;;;;N;;;;;
+2DC1;ETHIOPIC SYLLABLE QYU;Lo;0;L;;;;;N;;;;;
+2DC2;ETHIOPIC SYLLABLE QYI;Lo;0;L;;;;;N;;;;;
+2DC3;ETHIOPIC SYLLABLE QYAA;Lo;0;L;;;;;N;;;;;
+2DC4;ETHIOPIC SYLLABLE QYEE;Lo;0;L;;;;;N;;;;;
+2DC5;ETHIOPIC SYLLABLE QYE;Lo;0;L;;;;;N;;;;;
+2DC6;ETHIOPIC SYLLABLE QYO;Lo;0;L;;;;;N;;;;;
+2DC8;ETHIOPIC SYLLABLE KYA;Lo;0;L;;;;;N;;;;;
+2DC9;ETHIOPIC SYLLABLE KYU;Lo;0;L;;;;;N;;;;;
+2DCA;ETHIOPIC SYLLABLE KYI;Lo;0;L;;;;;N;;;;;
+2DCB;ETHIOPIC SYLLABLE KYAA;Lo;0;L;;;;;N;;;;;
+2DCC;ETHIOPIC SYLLABLE KYEE;Lo;0;L;;;;;N;;;;;
+2DCD;ETHIOPIC SYLLABLE KYE;Lo;0;L;;;;;N;;;;;
+2DCE;ETHIOPIC SYLLABLE KYO;Lo;0;L;;;;;N;;;;;
+2DD0;ETHIOPIC SYLLABLE XYA;Lo;0;L;;;;;N;;;;;
+2DD1;ETHIOPIC SYLLABLE XYU;Lo;0;L;;;;;N;;;;;
+2DD2;ETHIOPIC SYLLABLE XYI;Lo;0;L;;;;;N;;;;;
+2DD3;ETHIOPIC SYLLABLE XYAA;Lo;0;L;;;;;N;;;;;
+2DD4;ETHIOPIC SYLLABLE XYEE;Lo;0;L;;;;;N;;;;;
+2DD5;ETHIOPIC SYLLABLE XYE;Lo;0;L;;;;;N;;;;;
+2DD6;ETHIOPIC SYLLABLE XYO;Lo;0;L;;;;;N;;;;;
+2DD8;ETHIOPIC SYLLABLE GYA;Lo;0;L;;;;;N;;;;;
+2DD9;ETHIOPIC SYLLABLE GYU;Lo;0;L;;;;;N;;;;;
+2DDA;ETHIOPIC SYLLABLE GYI;Lo;0;L;;;;;N;;;;;
+2DDB;ETHIOPIC SYLLABLE GYAA;Lo;0;L;;;;;N;;;;;
+2DDC;ETHIOPIC SYLLABLE GYEE;Lo;0;L;;;;;N;;;;;
+2DDD;ETHIOPIC SYLLABLE GYE;Lo;0;L;;;;;N;;;;;
+2DDE;ETHIOPIC SYLLABLE GYO;Lo;0;L;;;;;N;;;;;
+2E00;RIGHT ANGLE SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;
+2E01;RIGHT ANGLE DOTTED SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;
+2E02;LEFT SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E03;RIGHT SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E04;LEFT DOTTED SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E05;RIGHT DOTTED SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E06;RAISED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;
+2E07;RAISED DOTTED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;
+2E08;DOTTED TRANSPOSITION MARKER;Po;0;ON;;;;;N;;;;;
+2E09;LEFT TRANSPOSITION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E0A;RIGHT TRANSPOSITION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E0B;RAISED SQUARE;Po;0;ON;;;;;N;;;;;
+2E0C;LEFT RAISED OMISSION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E0D;RIGHT RAISED OMISSION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E0E;EDITORIAL CORONIS;Po;0;ON;;;;;N;;;;;
+2E0F;PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
+2E10;FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
+2E11;REVERSED FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
+2E12;HYPODIASTOLE;Po;0;ON;;;;;N;;;;;
+2E13;DOTTED OBELOS;Po;0;ON;;;;;N;;;;;
+2E14;DOWNWARDS ANCORA;Po;0;ON;;;;;N;;;;;
+2E15;UPWARDS ANCORA;Po;0;ON;;;;;N;;;;;
+2E16;DOTTED RIGHT-POINTING ANGLE;Po;0;ON;;;;;N;;;;;
+2E17;DOUBLE OBLIQUE HYPHEN;Pd;0;ON;;;;;N;;;;;
+2E1C;LEFT LOW PARAPHRASE BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E1D;RIGHT LOW PARAPHRASE BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
+2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
+2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
+2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;;
+2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;;
+2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;;
+2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;;
+2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;;
+2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;;
+2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;;
+2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;;
+2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;;
+2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;;
+2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;;
+2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;;
+2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;;
+2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;;
+2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;;
+2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;;
+2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;;
+2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;;
+2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;;
+2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;;
+2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;;
+2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;;
+2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;;
+2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;;
+2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;;
+2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;;
+2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;;
+2E9F;CJK RADICAL MOTHER;So;0;ON;<compat> 6BCD;;;;N;;;;;
+2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;;
+2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;;
+2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;;
+2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;;
+2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;;
+2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;;
+2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;;
+2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;;
+2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;;
+2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;;
+2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;;
+2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;;
+2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;;
+2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;;
+2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;;
+2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;;
+2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;;
+2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;;
+2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;;
+2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;;
+2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;;
+2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;;
+2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;;
+2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;;
+2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;;
+2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;;
+2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;;
+2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;;
+2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;;
+2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;;
+2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;;
+2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;;
+2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;;
+2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;;
+2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;;
+2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;;
+2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;;
+2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;;
+2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;;
+2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;;
+2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;;
+2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;;
+2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;;
+2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;;
+2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;;
+2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;;
+2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;;
+2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;;
+2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;;
+2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;;
+2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;;
+2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;;
+2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;;
+2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;;
+2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;;
+2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;;
+2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;;
+2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;;
+2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;;
+2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;;
+2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;;
+2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;;
+2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;;
+2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;;
+2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;;
+2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;;
+2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;;
+2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;;
+2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;;
+2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;;
+2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;;
+2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;;
+2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;;
+2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;;
+2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;;
+2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;;
+2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;;
+2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON;<compat> 9F9F;;;;N;;;;;
+2F00;KANGXI RADICAL ONE;So;0;ON;<compat> 4E00;;;;N;;;;;
+2F01;KANGXI RADICAL LINE;So;0;ON;<compat> 4E28;;;;N;;;;;
+2F02;KANGXI RADICAL DOT;So;0;ON;<compat> 4E36;;;;N;;;;;
+2F03;KANGXI RADICAL SLASH;So;0;ON;<compat> 4E3F;;;;N;;;;;
+2F04;KANGXI RADICAL SECOND;So;0;ON;<compat> 4E59;;;;N;;;;;
+2F05;KANGXI RADICAL HOOK;So;0;ON;<compat> 4E85;;;;N;;;;;
+2F06;KANGXI RADICAL TWO;So;0;ON;<compat> 4E8C;;;;N;;;;;
+2F07;KANGXI RADICAL LID;So;0;ON;<compat> 4EA0;;;;N;;;;;
+2F08;KANGXI RADICAL MAN;So;0;ON;<compat> 4EBA;;;;N;;;;;
+2F09;KANGXI RADICAL LEGS;So;0;ON;<compat> 513F;;;;N;;;;;
+2F0A;KANGXI RADICAL ENTER;So;0;ON;<compat> 5165;;;;N;;;;;
+2F0B;KANGXI RADICAL EIGHT;So;0;ON;<compat> 516B;;;;N;;;;;
+2F0C;KANGXI RADICAL DOWN BOX;So;0;ON;<compat> 5182;;;;N;;;;;
+2F0D;KANGXI RADICAL COVER;So;0;ON;<compat> 5196;;;;N;;;;;
+2F0E;KANGXI RADICAL ICE;So;0;ON;<compat> 51AB;;;;N;;;;;
+2F0F;KANGXI RADICAL TABLE;So;0;ON;<compat> 51E0;;;;N;;;;;
+2F10;KANGXI RADICAL OPEN BOX;So;0;ON;<compat> 51F5;;;;N;;;;;
+2F11;KANGXI RADICAL KNIFE;So;0;ON;<compat> 5200;;;;N;;;;;
+2F12;KANGXI RADICAL POWER;So;0;ON;<compat> 529B;;;;N;;;;;
+2F13;KANGXI RADICAL WRAP;So;0;ON;<compat> 52F9;;;;N;;;;;
+2F14;KANGXI RADICAL SPOON;So;0;ON;<compat> 5315;;;;N;;;;;
+2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON;<compat> 531A;;;;N;;;;;
+2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON;<compat> 5338;;;;N;;;;;
+2F17;KANGXI RADICAL TEN;So;0;ON;<compat> 5341;;;;N;;;;;
+2F18;KANGXI RADICAL DIVINATION;So;0;ON;<compat> 535C;;;;N;;;;;
+2F19;KANGXI RADICAL SEAL;So;0;ON;<compat> 5369;;;;N;;;;;
+2F1A;KANGXI RADICAL CLIFF;So;0;ON;<compat> 5382;;;;N;;;;;
+2F1B;KANGXI RADICAL PRIVATE;So;0;ON;<compat> 53B6;;;;N;;;;;
+2F1C;KANGXI RADICAL AGAIN;So;0;ON;<compat> 53C8;;;;N;;;;;
+2F1D;KANGXI RADICAL MOUTH;So;0;ON;<compat> 53E3;;;;N;;;;;
+2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON;<compat> 56D7;;;;N;;;;;
+2F1F;KANGXI RADICAL EARTH;So;0;ON;<compat> 571F;;;;N;;;;;
+2F20;KANGXI RADICAL SCHOLAR;So;0;ON;<compat> 58EB;;;;N;;;;;
+2F21;KANGXI RADICAL GO;So;0;ON;<compat> 5902;;;;N;;;;;
+2F22;KANGXI RADICAL GO SLOWLY;So;0;ON;<compat> 590A;;;;N;;;;;
+2F23;KANGXI RADICAL EVENING;So;0;ON;<compat> 5915;;;;N;;;;;
+2F24;KANGXI RADICAL BIG;So;0;ON;<compat> 5927;;;;N;;;;;
+2F25;KANGXI RADICAL WOMAN;So;0;ON;<compat> 5973;;;;N;;;;;
+2F26;KANGXI RADICAL CHILD;So;0;ON;<compat> 5B50;;;;N;;;;;
+2F27;KANGXI RADICAL ROOF;So;0;ON;<compat> 5B80;;;;N;;;;;
+2F28;KANGXI RADICAL INCH;So;0;ON;<compat> 5BF8;;;;N;;;;;
+2F29;KANGXI RADICAL SMALL;So;0;ON;<compat> 5C0F;;;;N;;;;;
+2F2A;KANGXI RADICAL LAME;So;0;ON;<compat> 5C22;;;;N;;;;;
+2F2B;KANGXI RADICAL CORPSE;So;0;ON;<compat> 5C38;;;;N;;;;;
+2F2C;KANGXI RADICAL SPROUT;So;0;ON;<compat> 5C6E;;;;N;;;;;
+2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON;<compat> 5C71;;;;N;;;;;
+2F2E;KANGXI RADICAL RIVER;So;0;ON;<compat> 5DDB;;;;N;;;;;
+2F2F;KANGXI RADICAL WORK;So;0;ON;<compat> 5DE5;;;;N;;;;;
+2F30;KANGXI RADICAL ONESELF;So;0;ON;<compat> 5DF1;;;;N;;;;;
+2F31;KANGXI RADICAL TURBAN;So;0;ON;<compat> 5DFE;;;;N;;;;;
+2F32;KANGXI RADICAL DRY;So;0;ON;<compat> 5E72;;;;N;;;;;
+2F33;KANGXI RADICAL SHORT THREAD;So;0;ON;<compat> 5E7A;;;;N;;;;;
+2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON;<compat> 5E7F;;;;N;;;;;
+2F35;KANGXI RADICAL LONG STRIDE;So;0;ON;<compat> 5EF4;;;;N;;;;;
+2F36;KANGXI RADICAL TWO HANDS;So;0;ON;<compat> 5EFE;;;;N;;;;;
+2F37;KANGXI RADICAL SHOOT;So;0;ON;<compat> 5F0B;;;;N;;;;;
+2F38;KANGXI RADICAL BOW;So;0;ON;<compat> 5F13;;;;N;;;;;
+2F39;KANGXI RADICAL SNOUT;So;0;ON;<compat> 5F50;;;;N;;;;;
+2F3A;KANGXI RADICAL BRISTLE;So;0;ON;<compat> 5F61;;;;N;;;;;
+2F3B;KANGXI RADICAL STEP;So;0;ON;<compat> 5F73;;;;N;;;;;
+2F3C;KANGXI RADICAL HEART;So;0;ON;<compat> 5FC3;;;;N;;;;;
+2F3D;KANGXI RADICAL HALBERD;So;0;ON;<compat> 6208;;;;N;;;;;
+2F3E;KANGXI RADICAL DOOR;So;0;ON;<compat> 6236;;;;N;;;;;
+2F3F;KANGXI RADICAL HAND;So;0;ON;<compat> 624B;;;;N;;;;;
+2F40;KANGXI RADICAL BRANCH;So;0;ON;<compat> 652F;;;;N;;;;;
+2F41;KANGXI RADICAL RAP;So;0;ON;<compat> 6534;;;;N;;;;;
+2F42;KANGXI RADICAL SCRIPT;So;0;ON;<compat> 6587;;;;N;;;;;
+2F43;KANGXI RADICAL DIPPER;So;0;ON;<compat> 6597;;;;N;;;;;
+2F44;KANGXI RADICAL AXE;So;0;ON;<compat> 65A4;;;;N;;;;;
+2F45;KANGXI RADICAL SQUARE;So;0;ON;<compat> 65B9;;;;N;;;;;
+2F46;KANGXI RADICAL NOT;So;0;ON;<compat> 65E0;;;;N;;;;;
+2F47;KANGXI RADICAL SUN;So;0;ON;<compat> 65E5;;;;N;;;;;
+2F48;KANGXI RADICAL SAY;So;0;ON;<compat> 66F0;;;;N;;;;;
+2F49;KANGXI RADICAL MOON;So;0;ON;<compat> 6708;;;;N;;;;;
+2F4A;KANGXI RADICAL TREE;So;0;ON;<compat> 6728;;;;N;;;;;
+2F4B;KANGXI RADICAL LACK;So;0;ON;<compat> 6B20;;;;N;;;;;
+2F4C;KANGXI RADICAL STOP;So;0;ON;<compat> 6B62;;;;N;;;;;
+2F4D;KANGXI RADICAL DEATH;So;0;ON;<compat> 6B79;;;;N;;;;;
+2F4E;KANGXI RADICAL WEAPON;So;0;ON;<compat> 6BB3;;;;N;;;;;
+2F4F;KANGXI RADICAL DO NOT;So;0;ON;<compat> 6BCB;;;;N;;;;;
+2F50;KANGXI RADICAL COMPARE;So;0;ON;<compat> 6BD4;;;;N;;;;;
+2F51;KANGXI RADICAL FUR;So;0;ON;<compat> 6BDB;;;;N;;;;;
+2F52;KANGXI RADICAL CLAN;So;0;ON;<compat> 6C0F;;;;N;;;;;
+2F53;KANGXI RADICAL STEAM;So;0;ON;<compat> 6C14;;;;N;;;;;
+2F54;KANGXI RADICAL WATER;So;0;ON;<compat> 6C34;;;;N;;;;;
+2F55;KANGXI RADICAL FIRE;So;0;ON;<compat> 706B;;;;N;;;;;
+2F56;KANGXI RADICAL CLAW;So;0;ON;<compat> 722A;;;;N;;;;;
+2F57;KANGXI RADICAL FATHER;So;0;ON;<compat> 7236;;;;N;;;;;
+2F58;KANGXI RADICAL DOUBLE X;So;0;ON;<compat> 723B;;;;N;;;;;
+2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON;<compat> 723F;;;;N;;;;;
+2F5A;KANGXI RADICAL SLICE;So;0;ON;<compat> 7247;;;;N;;;;;
+2F5B;KANGXI RADICAL FANG;So;0;ON;<compat> 7259;;;;N;;;;;
+2F5C;KANGXI RADICAL COW;So;0;ON;<compat> 725B;;;;N;;;;;
+2F5D;KANGXI RADICAL DOG;So;0;ON;<compat> 72AC;;;;N;;;;;
+2F5E;KANGXI RADICAL PROFOUND;So;0;ON;<compat> 7384;;;;N;;;;;
+2F5F;KANGXI RADICAL JADE;So;0;ON;<compat> 7389;;;;N;;;;;
+2F60;KANGXI RADICAL MELON;So;0;ON;<compat> 74DC;;;;N;;;;;
+2F61;KANGXI RADICAL TILE;So;0;ON;<compat> 74E6;;;;N;;;;;
+2F62;KANGXI RADICAL SWEET;So;0;ON;<compat> 7518;;;;N;;;;;
+2F63;KANGXI RADICAL LIFE;So;0;ON;<compat> 751F;;;;N;;;;;
+2F64;KANGXI RADICAL USE;So;0;ON;<compat> 7528;;;;N;;;;;
+2F65;KANGXI RADICAL FIELD;So;0;ON;<compat> 7530;;;;N;;;;;
+2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON;<compat> 758B;;;;N;;;;;
+2F67;KANGXI RADICAL SICKNESS;So;0;ON;<compat> 7592;;;;N;;;;;
+2F68;KANGXI RADICAL DOTTED TENT;So;0;ON;<compat> 7676;;;;N;;;;;
+2F69;KANGXI RADICAL WHITE;So;0;ON;<compat> 767D;;;;N;;;;;
+2F6A;KANGXI RADICAL SKIN;So;0;ON;<compat> 76AE;;;;N;;;;;
+2F6B;KANGXI RADICAL DISH;So;0;ON;<compat> 76BF;;;;N;;;;;
+2F6C;KANGXI RADICAL EYE;So;0;ON;<compat> 76EE;;;;N;;;;;
+2F6D;KANGXI RADICAL SPEAR;So;0;ON;<compat> 77DB;;;;N;;;;;
+2F6E;KANGXI RADICAL ARROW;So;0;ON;<compat> 77E2;;;;N;;;;;
+2F6F;KANGXI RADICAL STONE;So;0;ON;<compat> 77F3;;;;N;;;;;
+2F70;KANGXI RADICAL SPIRIT;So;0;ON;<compat> 793A;;;;N;;;;;
+2F71;KANGXI RADICAL TRACK;So;0;ON;<compat> 79B8;;;;N;;;;;
+2F72;KANGXI RADICAL GRAIN;So;0;ON;<compat> 79BE;;;;N;;;;;
+2F73;KANGXI RADICAL CAVE;So;0;ON;<compat> 7A74;;;;N;;;;;
+2F74;KANGXI RADICAL STAND;So;0;ON;<compat> 7ACB;;;;N;;;;;
+2F75;KANGXI RADICAL BAMBOO;So;0;ON;<compat> 7AF9;;;;N;;;;;
+2F76;KANGXI RADICAL RICE;So;0;ON;<compat> 7C73;;;;N;;;;;
+2F77;KANGXI RADICAL SILK;So;0;ON;<compat> 7CF8;;;;N;;;;;
+2F78;KANGXI RADICAL JAR;So;0;ON;<compat> 7F36;;;;N;;;;;
+2F79;KANGXI RADICAL NET;So;0;ON;<compat> 7F51;;;;N;;;;;
+2F7A;KANGXI RADICAL SHEEP;So;0;ON;<compat> 7F8A;;;;N;;;;;
+2F7B;KANGXI RADICAL FEATHER;So;0;ON;<compat> 7FBD;;;;N;;;;;
+2F7C;KANGXI RADICAL OLD;So;0;ON;<compat> 8001;;;;N;;;;;
+2F7D;KANGXI RADICAL AND;So;0;ON;<compat> 800C;;;;N;;;;;
+2F7E;KANGXI RADICAL PLOW;So;0;ON;<compat> 8012;;;;N;;;;;
+2F7F;KANGXI RADICAL EAR;So;0;ON;<compat> 8033;;;;N;;;;;
+2F80;KANGXI RADICAL BRUSH;So;0;ON;<compat> 807F;;;;N;;;;;
+2F81;KANGXI RADICAL MEAT;So;0;ON;<compat> 8089;;;;N;;;;;
+2F82;KANGXI RADICAL MINISTER;So;0;ON;<compat> 81E3;;;;N;;;;;
+2F83;KANGXI RADICAL SELF;So;0;ON;<compat> 81EA;;;;N;;;;;
+2F84;KANGXI RADICAL ARRIVE;So;0;ON;<compat> 81F3;;;;N;;;;;
+2F85;KANGXI RADICAL MORTAR;So;0;ON;<compat> 81FC;;;;N;;;;;
+2F86;KANGXI RADICAL TONGUE;So;0;ON;<compat> 820C;;;;N;;;;;
+2F87;KANGXI RADICAL OPPOSE;So;0;ON;<compat> 821B;;;;N;;;;;
+2F88;KANGXI RADICAL BOAT;So;0;ON;<compat> 821F;;;;N;;;;;
+2F89;KANGXI RADICAL STOPPING;So;0;ON;<compat> 826E;;;;N;;;;;
+2F8A;KANGXI RADICAL COLOR;So;0;ON;<compat> 8272;;;;N;;;;;
+2F8B;KANGXI RADICAL GRASS;So;0;ON;<compat> 8278;;;;N;;;;;
+2F8C;KANGXI RADICAL TIGER;So;0;ON;<compat> 864D;;;;N;;;;;
+2F8D;KANGXI RADICAL INSECT;So;0;ON;<compat> 866B;;;;N;;;;;
+2F8E;KANGXI RADICAL BLOOD;So;0;ON;<compat> 8840;;;;N;;;;;
+2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON;<compat> 884C;;;;N;;;;;
+2F90;KANGXI RADICAL CLOTHES;So;0;ON;<compat> 8863;;;;N;;;;;
+2F91;KANGXI RADICAL WEST;So;0;ON;<compat> 897E;;;;N;;;;;
+2F92;KANGXI RADICAL SEE;So;0;ON;<compat> 898B;;;;N;;;;;
+2F93;KANGXI RADICAL HORN;So;0;ON;<compat> 89D2;;;;N;;;;;
+2F94;KANGXI RADICAL SPEECH;So;0;ON;<compat> 8A00;;;;N;;;;;
+2F95;KANGXI RADICAL VALLEY;So;0;ON;<compat> 8C37;;;;N;;;;;
+2F96;KANGXI RADICAL BEAN;So;0;ON;<compat> 8C46;;;;N;;;;;
+2F97;KANGXI RADICAL PIG;So;0;ON;<compat> 8C55;;;;N;;;;;
+2F98;KANGXI RADICAL BADGER;So;0;ON;<compat> 8C78;;;;N;;;;;
+2F99;KANGXI RADICAL SHELL;So;0;ON;<compat> 8C9D;;;;N;;;;;
+2F9A;KANGXI RADICAL RED;So;0;ON;<compat> 8D64;;;;N;;;;;
+2F9B;KANGXI RADICAL RUN;So;0;ON;<compat> 8D70;;;;N;;;;;
+2F9C;KANGXI RADICAL FOOT;So;0;ON;<compat> 8DB3;;;;N;;;;;
+2F9D;KANGXI RADICAL BODY;So;0;ON;<compat> 8EAB;;;;N;;;;;
+2F9E;KANGXI RADICAL CART;So;0;ON;<compat> 8ECA;;;;N;;;;;
+2F9F;KANGXI RADICAL BITTER;So;0;ON;<compat> 8F9B;;;;N;;;;;
+2FA0;KANGXI RADICAL MORNING;So;0;ON;<compat> 8FB0;;;;N;;;;;
+2FA1;KANGXI RADICAL WALK;So;0;ON;<compat> 8FB5;;;;N;;;;;
+2FA2;KANGXI RADICAL CITY;So;0;ON;<compat> 9091;;;;N;;;;;
+2FA3;KANGXI RADICAL WINE;So;0;ON;<compat> 9149;;;;N;;;;;
+2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON;<compat> 91C6;;;;N;;;;;
+2FA5;KANGXI RADICAL VILLAGE;So;0;ON;<compat> 91CC;;;;N;;;;;
+2FA6;KANGXI RADICAL GOLD;So;0;ON;<compat> 91D1;;;;N;;;;;
+2FA7;KANGXI RADICAL LONG;So;0;ON;<compat> 9577;;;;N;;;;;
+2FA8;KANGXI RADICAL GATE;So;0;ON;<compat> 9580;;;;N;;;;;
+2FA9;KANGXI RADICAL MOUND;So;0;ON;<compat> 961C;;;;N;;;;;
+2FAA;KANGXI RADICAL SLAVE;So;0;ON;<compat> 96B6;;;;N;;;;;
+2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON;<compat> 96B9;;;;N;;;;;
+2FAC;KANGXI RADICAL RAIN;So;0;ON;<compat> 96E8;;;;N;;;;;
+2FAD;KANGXI RADICAL BLUE;So;0;ON;<compat> 9751;;;;N;;;;;
+2FAE;KANGXI RADICAL WRONG;So;0;ON;<compat> 975E;;;;N;;;;;
+2FAF;KANGXI RADICAL FACE;So;0;ON;<compat> 9762;;;;N;;;;;
+2FB0;KANGXI RADICAL LEATHER;So;0;ON;<compat> 9769;;;;N;;;;;
+2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON;<compat> 97CB;;;;N;;;;;
+2FB2;KANGXI RADICAL LEEK;So;0;ON;<compat> 97ED;;;;N;;;;;
+2FB3;KANGXI RADICAL SOUND;So;0;ON;<compat> 97F3;;;;N;;;;;
+2FB4;KANGXI RADICAL LEAF;So;0;ON;<compat> 9801;;;;N;;;;;
+2FB5;KANGXI RADICAL WIND;So;0;ON;<compat> 98A8;;;;N;;;;;
+2FB6;KANGXI RADICAL FLY;So;0;ON;<compat> 98DB;;;;N;;;;;
+2FB7;KANGXI RADICAL EAT;So;0;ON;<compat> 98DF;;;;N;;;;;
+2FB8;KANGXI RADICAL HEAD;So;0;ON;<compat> 9996;;;;N;;;;;
+2FB9;KANGXI RADICAL FRAGRANT;So;0;ON;<compat> 9999;;;;N;;;;;
+2FBA;KANGXI RADICAL HORSE;So;0;ON;<compat> 99AC;;;;N;;;;;
+2FBB;KANGXI RADICAL BONE;So;0;ON;<compat> 9AA8;;;;N;;;;;
+2FBC;KANGXI RADICAL TALL;So;0;ON;<compat> 9AD8;;;;N;;;;;
+2FBD;KANGXI RADICAL HAIR;So;0;ON;<compat> 9ADF;;;;N;;;;;
+2FBE;KANGXI RADICAL FIGHT;So;0;ON;<compat> 9B25;;;;N;;;;;
+2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON;<compat> 9B2F;;;;N;;;;;
+2FC0;KANGXI RADICAL CAULDRON;So;0;ON;<compat> 9B32;;;;N;;;;;
+2FC1;KANGXI RADICAL GHOST;So;0;ON;<compat> 9B3C;;;;N;;;;;
+2FC2;KANGXI RADICAL FISH;So;0;ON;<compat> 9B5A;;;;N;;;;;
+2FC3;KANGXI RADICAL BIRD;So;0;ON;<compat> 9CE5;;;;N;;;;;
+2FC4;KANGXI RADICAL SALT;So;0;ON;<compat> 9E75;;;;N;;;;;
+2FC5;KANGXI RADICAL DEER;So;0;ON;<compat> 9E7F;;;;N;;;;;
+2FC6;KANGXI RADICAL WHEAT;So;0;ON;<compat> 9EA5;;;;N;;;;;
+2FC7;KANGXI RADICAL HEMP;So;0;ON;<compat> 9EBB;;;;N;;;;;
+2FC8;KANGXI RADICAL YELLOW;So;0;ON;<compat> 9EC3;;;;N;;;;;
+2FC9;KANGXI RADICAL MILLET;So;0;ON;<compat> 9ECD;;;;N;;;;;
+2FCA;KANGXI RADICAL BLACK;So;0;ON;<compat> 9ED1;;;;N;;;;;
+2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON;<compat> 9EF9;;;;N;;;;;
+2FCC;KANGXI RADICAL FROG;So;0;ON;<compat> 9EFD;;;;N;;;;;
+2FCD;KANGXI RADICAL TRIPOD;So;0;ON;<compat> 9F0E;;;;N;;;;;
+2FCE;KANGXI RADICAL DRUM;So;0;ON;<compat> 9F13;;;;N;;;;;
+2FCF;KANGXI RADICAL RAT;So;0;ON;<compat> 9F20;;;;N;;;;;
+2FD0;KANGXI RADICAL NOSE;So;0;ON;<compat> 9F3B;;;;N;;;;;
+2FD1;KANGXI RADICAL EVEN;So;0;ON;<compat> 9F4A;;;;N;;;;;
+2FD2;KANGXI RADICAL TOOTH;So;0;ON;<compat> 9F52;;;;N;;;;;
+2FD3;KANGXI RADICAL DRAGON;So;0;ON;<compat> 9F8D;;;;N;;;;;
+2FD4;KANGXI RADICAL TURTLE;So;0;ON;<compat> 9F9C;;;;N;;;;;
+2FD5;KANGXI RADICAL FLUTE;So;0;ON;<compat> 9FA0;;;;N;;;;;
+2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;;
+2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;;
+2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;;
+2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;;
+2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;;
+2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;;
+2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;;
+2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;;
+2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;;
+2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;
+2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;
+2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;
+3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;
+3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;
+3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;
+3003;DITTO MARK;Po;0;ON;;;;;N;;;;;
+3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;;
+3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
+3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;;
+3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;;
+3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;;
+3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;;
+300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;;
+300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;;
+300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;;
+300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;;
+300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;;
+300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;;
+3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;;
+3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;;
+3012;POSTAL MARK;So;0;ON;;;;;N;;;;;
+3013;GETA MARK;So;0;ON;;;;;N;;;;;
+3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;;
+3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;;
+3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;;
+3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;;
+3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;;
+3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;;
+301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;;
+301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;;
+301C;WAVE DASH;Pd;0;ON;;;;;N;;;;;
+301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;Y;;;;;
+301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;Y;;;;;
+301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;Y;;;;;
+3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;;
+3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;;
+3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;;
+3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;;
+3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;;
+3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;;
+3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;;
+3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;;
+3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;;
+3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;;
+302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;;
+302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;
+302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;
+302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;
+302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+3030;WAVY DASH;Pd;0;ON;;;;;N;;;;;
+3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;;
+3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;;
+3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;;
+3036;CIRCLED POSTAL MARK;So;0;ON;<compat> 3012;;;;N;;;;;
+3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;;
+3038;HANGZHOU NUMERAL TEN;Nl;0;L;<compat> 5341;;;10;N;;;;;
+3039;HANGZHOU NUMERAL TWENTY;Nl;0;L;<compat> 5344;;;20;N;;;;;
+303A;HANGZHOU NUMERAL THIRTY;Nl;0;L;<compat> 5345;;;30;N;;;;;
+303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
+303C;MASU MARK;Lo;0;L;;;;;N;;;;;
+303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;;
+303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;;
+303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;;
+3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;
+3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;;
+3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;;
+3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;;
+3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;;
+304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;;
+304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;;
+304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;;
+304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;;
+304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;;
+3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;;
+3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;;
+3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;;
+3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;;
+3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;;
+3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;;
+3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;;
+3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;;
+3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;;
+3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;;
+305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;;
+305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;;
+305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;;
+305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;;
+305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;;
+305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;;
+3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;;
+3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;;
+3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;;
+3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;;
+3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;;
+3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;;
+3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;;
+3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;;
+3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;;
+306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;;
+306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;;
+306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;;
+306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;;
+306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;;
+306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;;
+3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;;
+3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;;
+3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;;
+3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;;
+3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;;
+3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;;
+3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;;
+3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;;
+3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;;
+3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;;
+307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;;
+307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;;
+307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;;
+307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;;
+307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;;
+307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;;
+3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;;
+3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;;
+3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;;
+3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;;
+3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;;
+3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;;
+3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;;
+308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;;
+308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;;
+308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;;
+308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;;
+308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;;
+3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;;
+3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;;
+3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;;
+3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;;
+3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;;
+3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
+3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
+3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;
+309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;;
+309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON;<compat> 0020 3099;;;;N;;;;;
+309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON;<compat> 0020 309A;;;;N;;;;;
+309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;;
+309F;HIRAGANA DIGRAPH YORI;Lo;0;L;<vertical> 3088 308A;;;;N;;;;;
+30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;;
+30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;
+30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;;
+30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;;
+30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;;
+30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;;
+30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;;
+30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;;
+30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;;
+30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;;
+30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;;
+30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;;
+30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;;
+30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;;
+30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;;
+30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;;
+30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;;
+30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;;
+30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;;
+30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;;
+30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;;
+30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;;
+30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;;
+30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;;
+30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;;
+30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;;
+30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;;
+30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;;
+30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;;
+30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;;
+30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;;
+30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;;
+30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;;
+30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;;
+30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;;
+30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;;
+30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;;
+30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;;
+30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;;
+30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;;
+30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;;
+30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;;
+30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;;
+30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;;
+30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;;
+30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;;
+30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;;
+30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;;
+30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;;
+30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;;
+30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;;
+30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;;
+30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;;
+30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;;
+30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;;
+30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;;
+30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;;
+30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;;
+30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;;
+30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;;
+30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;;
+30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;;
+30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;;
+30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;;
+30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;;
+30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;;
+30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;;
+30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;;
+30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;;
+30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;;
+30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;;
+30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;;
+30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;;
+30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;;
+30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;;
+30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
+30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
+30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;;
+30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;;
+30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;;
+30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;;
+30FB;KATAKANA MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;;
+30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;;
+30FF;KATAKANA DIGRAPH KOTO;Lo;0;L;<vertical> 30B3 30C8;;;;N;;;;;
+3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;;
+3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;;
+3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;;
+3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;;
+3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;;
+310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;;
+310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;;
+310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;;
+310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;;
+310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;;
+310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;;
+3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;;
+3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;;
+3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;;
+3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;;
+3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;;
+3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;;
+3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;;
+3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;;
+3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;;
+3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;;
+311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;;
+311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;;
+311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;;
+311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;;
+311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;;
+311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;;
+3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;;
+3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;;
+3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;;
+3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;;
+3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;;
+3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;;
+3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;;
+3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;;
+3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;;
+3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;;
+312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;;
+312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;;
+312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;;
+3131;HANGUL LETTER KIYEOK;Lo;0;L;<compat> 1100;;;;N;HANGUL LETTER GIYEOG;;;;
+3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L;<compat> 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;;
+3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;;
+3134;HANGUL LETTER NIEUN;Lo;0;L;<compat> 1102;;;;N;;;;;
+3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<compat> 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;;
+3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<compat> 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;;
+3137;HANGUL LETTER TIKEUT;Lo;0;L;<compat> 1103;;;;N;HANGUL LETTER DIGEUD;;;;
+3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L;<compat> 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;;
+3139;HANGUL LETTER RIEUL;Lo;0;L;<compat> 1105;;;;N;HANGUL LETTER LIEUL;;;;
+313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<compat> 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;;
+313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<compat> 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;;
+313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<compat> 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;;
+313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L;<compat> 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;;
+313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<compat> 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;;
+313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<compat> 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;;
+3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<compat> 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;;
+3141;HANGUL LETTER MIEUM;Lo;0;L;<compat> 1106;;;;N;;;;;
+3142;HANGUL LETTER PIEUP;Lo;0;L;<compat> 1107;;;;N;HANGUL LETTER BIEUB;;;;
+3143;HANGUL LETTER SSANGPIEUP;Lo;0;L;<compat> 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;;
+3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L;<compat> 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;;
+3145;HANGUL LETTER SIOS;Lo;0;L;<compat> 1109;;;;N;;;;;
+3146;HANGUL LETTER SSANGSIOS;Lo;0;L;<compat> 110A;;;;N;HANGUL LETTER SSANG SIOS;;;;
+3147;HANGUL LETTER IEUNG;Lo;0;L;<compat> 110B;;;;N;;;;;
+3148;HANGUL LETTER CIEUC;Lo;0;L;<compat> 110C;;;;N;HANGUL LETTER JIEUJ;;;;
+3149;HANGUL LETTER SSANGCIEUC;Lo;0;L;<compat> 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;;
+314A;HANGUL LETTER CHIEUCH;Lo;0;L;<compat> 110E;;;;N;HANGUL LETTER CIEUC;;;;
+314B;HANGUL LETTER KHIEUKH;Lo;0;L;<compat> 110F;;;;N;HANGUL LETTER KIYEOK;;;;
+314C;HANGUL LETTER THIEUTH;Lo;0;L;<compat> 1110;;;;N;HANGUL LETTER TIEUT;;;;
+314D;HANGUL LETTER PHIEUPH;Lo;0;L;<compat> 1111;;;;N;HANGUL LETTER PIEUP;;;;
+314E;HANGUL LETTER HIEUH;Lo;0;L;<compat> 1112;;;;N;;;;;
+314F;HANGUL LETTER A;Lo;0;L;<compat> 1161;;;;N;;;;;
+3150;HANGUL LETTER AE;Lo;0;L;<compat> 1162;;;;N;;;;;
+3151;HANGUL LETTER YA;Lo;0;L;<compat> 1163;;;;N;;;;;
+3152;HANGUL LETTER YAE;Lo;0;L;<compat> 1164;;;;N;;;;;
+3153;HANGUL LETTER EO;Lo;0;L;<compat> 1165;;;;N;;;;;
+3154;HANGUL LETTER E;Lo;0;L;<compat> 1166;;;;N;;;;;
+3155;HANGUL LETTER YEO;Lo;0;L;<compat> 1167;;;;N;;;;;
+3156;HANGUL LETTER YE;Lo;0;L;<compat> 1168;;;;N;;;;;
+3157;HANGUL LETTER O;Lo;0;L;<compat> 1169;;;;N;;;;;
+3158;HANGUL LETTER WA;Lo;0;L;<compat> 116A;;;;N;;;;;
+3159;HANGUL LETTER WAE;Lo;0;L;<compat> 116B;;;;N;;;;;
+315A;HANGUL LETTER OE;Lo;0;L;<compat> 116C;;;;N;;;;;
+315B;HANGUL LETTER YO;Lo;0;L;<compat> 116D;;;;N;;;;;
+315C;HANGUL LETTER U;Lo;0;L;<compat> 116E;;;;N;;;;;
+315D;HANGUL LETTER WEO;Lo;0;L;<compat> 116F;;;;N;;;;;
+315E;HANGUL LETTER WE;Lo;0;L;<compat> 1170;;;;N;;;;;
+315F;HANGUL LETTER WI;Lo;0;L;<compat> 1171;;;;N;;;;;
+3160;HANGUL LETTER YU;Lo;0;L;<compat> 1172;;;;N;;;;;
+3161;HANGUL LETTER EU;Lo;0;L;<compat> 1173;;;;N;;;;;
+3162;HANGUL LETTER YI;Lo;0;L;<compat> 1174;;;;N;;;;;
+3163;HANGUL LETTER I;Lo;0;L;<compat> 1175;;;;N;;;;;
+3164;HANGUL FILLER;Lo;0;L;<compat> 1160;;;;N;HANGUL CAE OM;;;;
+3165;HANGUL LETTER SSANGNIEUN;Lo;0;L;<compat> 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;;
+3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L;<compat> 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;;
+3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L;<compat> 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;;
+3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L;<compat> 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;;
+3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L;<compat> 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;;
+316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L;<compat> 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;;
+316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L;<compat> 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;;
+316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L;<compat> 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;;
+316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L;<compat> 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;;
+316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L;<compat> 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;;
+316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L;<compat> 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;;
+3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L;<compat> 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;;
+3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L;<compat> 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;;
+3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L;<compat> 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;;
+3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L;<compat> 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;;
+3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L;<compat> 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;;
+3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L;<compat> 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;;
+3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L;<compat> 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;;
+3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L;<compat> 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;;
+3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L;<compat> 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;;
+3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L;<compat> 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;;
+317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L;<compat> 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;;
+317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L;<compat> 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;;
+317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L;<compat> 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;;
+317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L;<compat> 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;;
+317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L;<compat> 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;;
+317F;HANGUL LETTER PANSIOS;Lo;0;L;<compat> 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;;
+3180;HANGUL LETTER SSANGIEUNG;Lo;0;L;<compat> 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;;
+3181;HANGUL LETTER YESIEUNG;Lo;0;L;<compat> 114C;;;;N;HANGUL LETTER NGIEUNG;;;;
+3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L;<compat> 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;;
+3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L;<compat> 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;;
+3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L;<compat> 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;;
+3185;HANGUL LETTER SSANGHIEUH;Lo;0;L;<compat> 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;;
+3186;HANGUL LETTER YEORINHIEUH;Lo;0;L;<compat> 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;;
+3187;HANGUL LETTER YO-YA;Lo;0;L;<compat> 1184;;;;N;HANGUL LETTER YOYA;;;;
+3188;HANGUL LETTER YO-YAE;Lo;0;L;<compat> 1185;;;;N;HANGUL LETTER YOYAE;;;;
+3189;HANGUL LETTER YO-I;Lo;0;L;<compat> 1188;;;;N;HANGUL LETTER YOI;;;;
+318A;HANGUL LETTER YU-YEO;Lo;0;L;<compat> 1191;;;;N;HANGUL LETTER YUYEO;;;;
+318B;HANGUL LETTER YU-YE;Lo;0;L;<compat> 1192;;;;N;HANGUL LETTER YUYE;;;;
+318C;HANGUL LETTER YU-I;Lo;0;L;<compat> 1194;;;;N;HANGUL LETTER YUI;;;;
+318D;HANGUL LETTER ARAEA;Lo;0;L;<compat> 119E;;;;N;HANGUL LETTER ALAE A;;;;
+318E;HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;;
+3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;Kanbun Tateten;;;
+3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;Kaeriten;;;
+3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L;<super> 4E00;;;1;N;KAERITEN ITI;Kaeriten;;;
+3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L;<super> 4E8C;;;2;N;KAERITEN NI;Kaeriten;;;
+3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L;<super> 4E09;;;3;N;KAERITEN SAN;Kaeriten;;;
+3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L;<super> 56DB;;;4;N;KAERITEN SI;Kaeriten;;;
+3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L;<super> 4E0A;;;;N;KAERITEN ZYOU;Kaeriten;;;
+3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L;<super> 4E2D;;;;N;KAERITEN TYUU;Kaeriten;;;
+3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L;<super> 4E0B;;;;N;KAERITEN GE;Kaeriten;;;
+3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L;<super> 7532;;;;N;KAERITEN KOU;Kaeriten;;;
+319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L;<super> 4E59;;;;N;KAERITEN OTU;Kaeriten;;;
+319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L;<super> 4E19;;;;N;KAERITEN HEI;Kaeriten;;;
+319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L;<super> 4E01;;;;N;KAERITEN TEI;Kaeriten;;;
+319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L;<super> 5929;;;;N;KAERITEN TEN;Kaeriten;;;
+319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L;<super> 5730;;;;N;KAERITEN TI;Kaeriten;;;
+319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L;<super> 4EBA;;;;N;KAERITEN ZIN;Kaeriten;;;
+31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;;
+31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;;
+31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;;
+31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;;
+31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;;
+31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;;
+31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;;
+31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;;
+31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;;
+31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;;
+31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;;
+31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;;
+31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;;
+31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;;
+31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;;
+31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;;
+31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;;
+31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;;
+31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;;
+31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;;
+31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;;
+31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;;
+31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;;
+31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;;
+31C0;CJK STROKE T;So;0;ON;;;;;N;;;;;
+31C1;CJK STROKE WG;So;0;ON;;;;;N;;;;;
+31C2;CJK STROKE XG;So;0;ON;;;;;N;;;;;
+31C3;CJK STROKE BXG;So;0;ON;;;;;N;;;;;
+31C4;CJK STROKE SW;So;0;ON;;;;;N;;;;;
+31C5;CJK STROKE HZZ;So;0;ON;;;;;N;;;;;
+31C6;CJK STROKE HZG;So;0;ON;;;;;N;;;;;
+31C7;CJK STROKE HP;So;0;ON;;;;;N;;;;;
+31C8;CJK STROKE HZWG;So;0;ON;;;;;N;;;;;
+31C9;CJK STROKE SZWG;So;0;ON;;;;;N;;;;;
+31CA;CJK STROKE HZT;So;0;ON;;;;;N;;;;;
+31CB;CJK STROKE HZZP;So;0;ON;;;;;N;;;;;
+31CC;CJK STROKE HPWG;So;0;ON;;;;;N;;;;;
+31CD;CJK STROKE HZW;So;0;ON;;;;;N;;;;;
+31CE;CJK STROKE HZZZ;So;0;ON;;;;;N;;;;;
+31CF;CJK STROKE N;So;0;ON;;;;;N;;;;;
+31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;
+31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;
+31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;;
+31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;;
+31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;;
+31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;;
+31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;;
+31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;;
+31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;;
+31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;;
+31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;;
+31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;;
+31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;;
+31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;;
+31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;;
+31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;;
+3200;PARENTHESIZED HANGUL KIYEOK;So;0;L;<compat> 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;;
+3201;PARENTHESIZED HANGUL NIEUN;So;0;L;<compat> 0028 1102 0029;;;;N;;;;;
+3202;PARENTHESIZED HANGUL TIKEUT;So;0;L;<compat> 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;;
+3203;PARENTHESIZED HANGUL RIEUL;So;0;L;<compat> 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;;
+3204;PARENTHESIZED HANGUL MIEUM;So;0;L;<compat> 0028 1106 0029;;;;N;;;;;
+3205;PARENTHESIZED HANGUL PIEUP;So;0;L;<compat> 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;;
+3206;PARENTHESIZED HANGUL SIOS;So;0;L;<compat> 0028 1109 0029;;;;N;;;;;
+3207;PARENTHESIZED HANGUL IEUNG;So;0;L;<compat> 0028 110B 0029;;;;N;;;;;
+3208;PARENTHESIZED HANGUL CIEUC;So;0;L;<compat> 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;;
+3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L;<compat> 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;;
+320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L;<compat> 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;;
+320B;PARENTHESIZED HANGUL THIEUTH;So;0;L;<compat> 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;;
+320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L;<compat> 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;;
+320D;PARENTHESIZED HANGUL HIEUH;So;0;L;<compat> 0028 1112 0029;;;;N;;;;;
+320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L;<compat> 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;;
+320F;PARENTHESIZED HANGUL NIEUN A;So;0;L;<compat> 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;;
+3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L;<compat> 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;;
+3211;PARENTHESIZED HANGUL RIEUL A;So;0;L;<compat> 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;;
+3212;PARENTHESIZED HANGUL MIEUM A;So;0;L;<compat> 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;;
+3213;PARENTHESIZED HANGUL PIEUP A;So;0;L;<compat> 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;;
+3214;PARENTHESIZED HANGUL SIOS A;So;0;L;<compat> 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;;
+3215;PARENTHESIZED HANGUL IEUNG A;So;0;L;<compat> 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;;
+3216;PARENTHESIZED HANGUL CIEUC A;So;0;L;<compat> 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;;
+3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L;<compat> 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;;
+3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L;<compat> 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;;
+3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L;<compat> 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;;
+321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L;<compat> 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;;
+321B;PARENTHESIZED HANGUL HIEUH A;So;0;L;<compat> 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;;
+321C;PARENTHESIZED HANGUL CIEUC U;So;0;L;<compat> 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;;
+321D;PARENTHESIZED KOREAN CHARACTER OJEON;So;0;ON;<compat> 0028 110B 1169 110C 1165 11AB 0029;;;;N;;;;;
+321E;PARENTHESIZED KOREAN CHARACTER O HU;So;0;ON;<compat> 0028 110B 1169 1112 116E 0029;;;;N;;;;;
+3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L;<compat> 0028 4E00 0029;;;1;N;;;;;
+3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L;<compat> 0028 4E8C 0029;;;2;N;;;;;
+3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L;<compat> 0028 4E09 0029;;;3;N;;;;;
+3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L;<compat> 0028 56DB 0029;;;4;N;;;;;
+3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L;<compat> 0028 4E94 0029;;;5;N;;;;;
+3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L;<compat> 0028 516D 0029;;;6;N;;;;;
+3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L;<compat> 0028 4E03 0029;;;7;N;;;;;
+3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L;<compat> 0028 516B 0029;;;8;N;;;;;
+3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L;<compat> 0028 4E5D 0029;;;9;N;;;;;
+3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L;<compat> 0028 5341 0029;;;10;N;;;;;
+322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L;<compat> 0028 6708 0029;;;;N;;;;;
+322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L;<compat> 0028 706B 0029;;;;N;;;;;
+322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L;<compat> 0028 6C34 0029;;;;N;;;;;
+322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L;<compat> 0028 6728 0029;;;;N;;;;;
+322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L;<compat> 0028 91D1 0029;;;;N;;;;;
+322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L;<compat> 0028 571F 0029;;;;N;;;;;
+3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L;<compat> 0028 65E5 0029;;;;N;;;;;
+3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L;<compat> 0028 682A 0029;;;;N;;;;;
+3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L;<compat> 0028 6709 0029;;;;N;;;;;
+3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L;<compat> 0028 793E 0029;;;;N;;;;;
+3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L;<compat> 0028 540D 0029;;;;N;;;;;
+3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L;<compat> 0028 7279 0029;;;;N;;;;;
+3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L;<compat> 0028 8CA1 0029;;;;N;;;;;
+3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L;<compat> 0028 795D 0029;;;;N;;;;;
+3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L;<compat> 0028 52B4 0029;;;;N;;;;;
+3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L;<compat> 0028 4EE3 0029;;;;N;;;;;
+323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L;<compat> 0028 547C 0029;;;;N;;;;;
+323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L;<compat> 0028 5B66 0029;;;;N;;;;;
+323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L;<compat> 0028 76E3 0029;;;;N;;;;;
+323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L;<compat> 0028 4F01 0029;;;;N;;;;;
+323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L;<compat> 0028 8CC7 0029;;;;N;;;;;
+323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L;<compat> 0028 5354 0029;;;;N;;;;;
+3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L;<compat> 0028 796D 0029;;;;N;;;;;
+3241;PARENTHESIZED IDEOGRAPH REST;So;0;L;<compat> 0028 4F11 0029;;;;N;;;;;
+3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L;<compat> 0028 81EA 0029;;;;N;;;;;
+3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L;<compat> 0028 81F3 0029;;;;N;;;;;
+3250;PARTNERSHIP SIGN;So;0;ON;<square> 0050 0054 0045;;;;N;;;;;
+3251;CIRCLED NUMBER TWENTY ONE;No;0;ON;<circle> 0032 0031;;;21;N;;;;;
+3252;CIRCLED NUMBER TWENTY TWO;No;0;ON;<circle> 0032 0032;;;22;N;;;;;
+3253;CIRCLED NUMBER TWENTY THREE;No;0;ON;<circle> 0032 0033;;;23;N;;;;;
+3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON;<circle> 0032 0034;;;24;N;;;;;
+3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON;<circle> 0032 0035;;;25;N;;;;;
+3256;CIRCLED NUMBER TWENTY SIX;No;0;ON;<circle> 0032 0036;;;26;N;;;;;
+3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON;<circle> 0032 0037;;;27;N;;;;;
+3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON;<circle> 0032 0038;;;28;N;;;;;
+3259;CIRCLED NUMBER TWENTY NINE;No;0;ON;<circle> 0032 0039;;;29;N;;;;;
+325A;CIRCLED NUMBER THIRTY;No;0;ON;<circle> 0033 0030;;;30;N;;;;;
+325B;CIRCLED NUMBER THIRTY ONE;No;0;ON;<circle> 0033 0031;;;31;N;;;;;
+325C;CIRCLED NUMBER THIRTY TWO;No;0;ON;<circle> 0033 0032;;;32;N;;;;;
+325D;CIRCLED NUMBER THIRTY THREE;No;0;ON;<circle> 0033 0033;;;33;N;;;;;
+325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON;<circle> 0033 0034;;;34;N;;;;;
+325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON;<circle> 0033 0035;;;35;N;;;;;
+3260;CIRCLED HANGUL KIYEOK;So;0;L;<circle> 1100;;;;N;CIRCLED HANGUL GIYEOG;;;;
+3261;CIRCLED HANGUL NIEUN;So;0;L;<circle> 1102;;;;N;;;;;
+3262;CIRCLED HANGUL TIKEUT;So;0;L;<circle> 1103;;;;N;CIRCLED HANGUL DIGEUD;;;;
+3263;CIRCLED HANGUL RIEUL;So;0;L;<circle> 1105;;;;N;CIRCLED HANGUL LIEUL;;;;
+3264;CIRCLED HANGUL MIEUM;So;0;L;<circle> 1106;;;;N;;;;;
+3265;CIRCLED HANGUL PIEUP;So;0;L;<circle> 1107;;;;N;CIRCLED HANGUL BIEUB;;;;
+3266;CIRCLED HANGUL SIOS;So;0;L;<circle> 1109;;;;N;;;;;
+3267;CIRCLED HANGUL IEUNG;So;0;L;<circle> 110B;;;;N;;;;;
+3268;CIRCLED HANGUL CIEUC;So;0;L;<circle> 110C;;;;N;CIRCLED HANGUL JIEUJ;;;;
+3269;CIRCLED HANGUL CHIEUCH;So;0;L;<circle> 110E;;;;N;CIRCLED HANGUL CIEUC;;;;
+326A;CIRCLED HANGUL KHIEUKH;So;0;L;<circle> 110F;;;;N;CIRCLED HANGUL KIYEOK;;;;
+326B;CIRCLED HANGUL THIEUTH;So;0;L;<circle> 1110;;;;N;CIRCLED HANGUL TIEUT;;;;
+326C;CIRCLED HANGUL PHIEUPH;So;0;L;<circle> 1111;;;;N;CIRCLED HANGUL PIEUP;;;;
+326D;CIRCLED HANGUL HIEUH;So;0;L;<circle> 1112;;;;N;;;;;
+326E;CIRCLED HANGUL KIYEOK A;So;0;L;<circle> 1100 1161;;;;N;CIRCLED HANGUL GA;;;;
+326F;CIRCLED HANGUL NIEUN A;So;0;L;<circle> 1102 1161;;;;N;CIRCLED HANGUL NA;;;;
+3270;CIRCLED HANGUL TIKEUT A;So;0;L;<circle> 1103 1161;;;;N;CIRCLED HANGUL DA;;;;
+3271;CIRCLED HANGUL RIEUL A;So;0;L;<circle> 1105 1161;;;;N;CIRCLED HANGUL LA;;;;
+3272;CIRCLED HANGUL MIEUM A;So;0;L;<circle> 1106 1161;;;;N;CIRCLED HANGUL MA;;;;
+3273;CIRCLED HANGUL PIEUP A;So;0;L;<circle> 1107 1161;;;;N;CIRCLED HANGUL BA;;;;
+3274;CIRCLED HANGUL SIOS A;So;0;L;<circle> 1109 1161;;;;N;CIRCLED HANGUL SA;;;;
+3275;CIRCLED HANGUL IEUNG A;So;0;L;<circle> 110B 1161;;;;N;CIRCLED HANGUL A;;;;
+3276;CIRCLED HANGUL CIEUC A;So;0;L;<circle> 110C 1161;;;;N;CIRCLED HANGUL JA;;;;
+3277;CIRCLED HANGUL CHIEUCH A;So;0;L;<circle> 110E 1161;;;;N;CIRCLED HANGUL CA;;;;
+3278;CIRCLED HANGUL KHIEUKH A;So;0;L;<circle> 110F 1161;;;;N;CIRCLED HANGUL KA;;;;
+3279;CIRCLED HANGUL THIEUTH A;So;0;L;<circle> 1110 1161;;;;N;CIRCLED HANGUL TA;;;;
+327A;CIRCLED HANGUL PHIEUPH A;So;0;L;<circle> 1111 1161;;;;N;CIRCLED HANGUL PA;;;;
+327B;CIRCLED HANGUL HIEUH A;So;0;L;<circle> 1112 1161;;;;N;CIRCLED HANGUL HA;;;;
+327C;CIRCLED KOREAN CHARACTER CHAMKO;So;0;ON;<circle> 110E 1161 11B7 1100 1169;;;;N;;;;;
+327D;CIRCLED KOREAN CHARACTER JUEUI;So;0;ON;<circle> 110C 116E 110B 1174;;;;N;;;;;
+327E;CIRCLED HANGUL IEUNG U;So;0;ON;<circle> 110B 116E;;;;N;;;;;
+327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;;
+3280;CIRCLED IDEOGRAPH ONE;No;0;L;<circle> 4E00;;;1;N;;;;;
+3281;CIRCLED IDEOGRAPH TWO;No;0;L;<circle> 4E8C;;;2;N;;;;;
+3282;CIRCLED IDEOGRAPH THREE;No;0;L;<circle> 4E09;;;3;N;;;;;
+3283;CIRCLED IDEOGRAPH FOUR;No;0;L;<circle> 56DB;;;4;N;;;;;
+3284;CIRCLED IDEOGRAPH FIVE;No;0;L;<circle> 4E94;;;5;N;;;;;
+3285;CIRCLED IDEOGRAPH SIX;No;0;L;<circle> 516D;;;6;N;;;;;
+3286;CIRCLED IDEOGRAPH SEVEN;No;0;L;<circle> 4E03;;;7;N;;;;;
+3287;CIRCLED IDEOGRAPH EIGHT;No;0;L;<circle> 516B;;;8;N;;;;;
+3288;CIRCLED IDEOGRAPH NINE;No;0;L;<circle> 4E5D;;;9;N;;;;;
+3289;CIRCLED IDEOGRAPH TEN;No;0;L;<circle> 5341;;;10;N;;;;;
+328A;CIRCLED IDEOGRAPH MOON;So;0;L;<circle> 6708;;;;N;;;;;
+328B;CIRCLED IDEOGRAPH FIRE;So;0;L;<circle> 706B;;;;N;;;;;
+328C;CIRCLED IDEOGRAPH WATER;So;0;L;<circle> 6C34;;;;N;;;;;
+328D;CIRCLED IDEOGRAPH WOOD;So;0;L;<circle> 6728;;;;N;;;;;
+328E;CIRCLED IDEOGRAPH METAL;So;0;L;<circle> 91D1;;;;N;;;;;
+328F;CIRCLED IDEOGRAPH EARTH;So;0;L;<circle> 571F;;;;N;;;;;
+3290;CIRCLED IDEOGRAPH SUN;So;0;L;<circle> 65E5;;;;N;;;;;
+3291;CIRCLED IDEOGRAPH STOCK;So;0;L;<circle> 682A;;;;N;;;;;
+3292;CIRCLED IDEOGRAPH HAVE;So;0;L;<circle> 6709;;;;N;;;;;
+3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L;<circle> 793E;;;;N;;;;;
+3294;CIRCLED IDEOGRAPH NAME;So;0;L;<circle> 540D;;;;N;;;;;
+3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L;<circle> 7279;;;;N;;;;;
+3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L;<circle> 8CA1;;;;N;;;;;
+3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L;<circle> 795D;;;;N;;;;;
+3298;CIRCLED IDEOGRAPH LABOR;So;0;L;<circle> 52B4;;;;N;;;;;
+3299;CIRCLED IDEOGRAPH SECRET;So;0;L;<circle> 79D8;;;;N;;;;;
+329A;CIRCLED IDEOGRAPH MALE;So;0;L;<circle> 7537;;;;N;;;;;
+329B;CIRCLED IDEOGRAPH FEMALE;So;0;L;<circle> 5973;;;;N;;;;;
+329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L;<circle> 9069;;;;N;;;;;
+329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L;<circle> 512A;;;;N;;;;;
+329E;CIRCLED IDEOGRAPH PRINT;So;0;L;<circle> 5370;;;;N;;;;;
+329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L;<circle> 6CE8;;;;N;;;;;
+32A0;CIRCLED IDEOGRAPH ITEM;So;0;L;<circle> 9805;;;;N;;;;;
+32A1;CIRCLED IDEOGRAPH REST;So;0;L;<circle> 4F11;;;;N;;;;;
+32A2;CIRCLED IDEOGRAPH COPY;So;0;L;<circle> 5199;;;;N;;;;;
+32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L;<circle> 6B63;;;;N;;;;;
+32A4;CIRCLED IDEOGRAPH HIGH;So;0;L;<circle> 4E0A;;;;N;;;;;
+32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L;<circle> 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;;
+32A6;CIRCLED IDEOGRAPH LOW;So;0;L;<circle> 4E0B;;;;N;;;;;
+32A7;CIRCLED IDEOGRAPH LEFT;So;0;L;<circle> 5DE6;;;;N;;;;;
+32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L;<circle> 53F3;;;;N;;;;;
+32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L;<circle> 533B;;;;N;;;;;
+32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L;<circle> 5B97;;;;N;;;;;
+32AB;CIRCLED IDEOGRAPH STUDY;So;0;L;<circle> 5B66;;;;N;;;;;
+32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L;<circle> 76E3;;;;N;;;;;
+32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L;<circle> 4F01;;;;N;;;;;
+32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L;<circle> 8CC7;;;;N;;;;;
+32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L;<circle> 5354;;;;N;;;;;
+32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L;<circle> 591C;;;;N;;;;;
+32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON;<circle> 0033 0036;;;36;N;;;;;
+32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON;<circle> 0033 0037;;;37;N;;;;;
+32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON;<circle> 0033 0038;;;38;N;;;;;
+32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON;<circle> 0033 0039;;;39;N;;;;;
+32B5;CIRCLED NUMBER FORTY;No;0;ON;<circle> 0034 0030;;;40;N;;;;;
+32B6;CIRCLED NUMBER FORTY ONE;No;0;ON;<circle> 0034 0031;;;41;N;;;;;
+32B7;CIRCLED NUMBER FORTY TWO;No;0;ON;<circle> 0034 0032;;;42;N;;;;;
+32B8;CIRCLED NUMBER FORTY THREE;No;0;ON;<circle> 0034 0033;;;43;N;;;;;
+32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON;<circle> 0034 0034;;;44;N;;;;;
+32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON;<circle> 0034 0035;;;45;N;;;;;
+32BB;CIRCLED NUMBER FORTY SIX;No;0;ON;<circle> 0034 0036;;;46;N;;;;;
+32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON;<circle> 0034 0037;;;47;N;;;;;
+32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON;<circle> 0034 0038;;;48;N;;;;;
+32BE;CIRCLED NUMBER FORTY NINE;No;0;ON;<circle> 0034 0039;;;49;N;;;;;
+32BF;CIRCLED NUMBER FIFTY;No;0;ON;<circle> 0035 0030;;;50;N;;;;;
+32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L;<compat> 0031 6708;;;;N;;;;;
+32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L;<compat> 0032 6708;;;;N;;;;;
+32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L;<compat> 0033 6708;;;;N;;;;;
+32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L;<compat> 0034 6708;;;;N;;;;;
+32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L;<compat> 0035 6708;;;;N;;;;;
+32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L;<compat> 0036 6708;;;;N;;;;;
+32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L;<compat> 0037 6708;;;;N;;;;;
+32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L;<compat> 0038 6708;;;;N;;;;;
+32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L;<compat> 0039 6708;;;;N;;;;;
+32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L;<compat> 0031 0030 6708;;;;N;;;;;
+32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L;<compat> 0031 0031 6708;;;;N;;;;;
+32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L;<compat> 0031 0032 6708;;;;N;;;;;
+32CC;SQUARE HG;So;0;ON;<square> 0048 0067;;;;N;;;;;
+32CD;SQUARE ERG;So;0;ON;<square> 0065 0072 0067;;;;N;;;;;
+32CE;SQUARE EV;So;0;ON;<square> 0065 0056;;;;N;;;;;
+32CF;LIMITED LIABILITY SIGN;So;0;ON;<square> 004C 0054 0044;;;;N;;;;;
+32D0;CIRCLED KATAKANA A;So;0;L;<circle> 30A2;;;;N;;;;;
+32D1;CIRCLED KATAKANA I;So;0;L;<circle> 30A4;;;;N;;;;;
+32D2;CIRCLED KATAKANA U;So;0;L;<circle> 30A6;;;;N;;;;;
+32D3;CIRCLED KATAKANA E;So;0;L;<circle> 30A8;;;;N;;;;;
+32D4;CIRCLED KATAKANA O;So;0;L;<circle> 30AA;;;;N;;;;;
+32D5;CIRCLED KATAKANA KA;So;0;L;<circle> 30AB;;;;N;;;;;
+32D6;CIRCLED KATAKANA KI;So;0;L;<circle> 30AD;;;;N;;;;;
+32D7;CIRCLED KATAKANA KU;So;0;L;<circle> 30AF;;;;N;;;;;
+32D8;CIRCLED KATAKANA KE;So;0;L;<circle> 30B1;;;;N;;;;;
+32D9;CIRCLED KATAKANA KO;So;0;L;<circle> 30B3;;;;N;;;;;
+32DA;CIRCLED KATAKANA SA;So;0;L;<circle> 30B5;;;;N;;;;;
+32DB;CIRCLED KATAKANA SI;So;0;L;<circle> 30B7;;;;N;;;;;
+32DC;CIRCLED KATAKANA SU;So;0;L;<circle> 30B9;;;;N;;;;;
+32DD;CIRCLED KATAKANA SE;So;0;L;<circle> 30BB;;;;N;;;;;
+32DE;CIRCLED KATAKANA SO;So;0;L;<circle> 30BD;;;;N;;;;;
+32DF;CIRCLED KATAKANA TA;So;0;L;<circle> 30BF;;;;N;;;;;
+32E0;CIRCLED KATAKANA TI;So;0;L;<circle> 30C1;;;;N;;;;;
+32E1;CIRCLED KATAKANA TU;So;0;L;<circle> 30C4;;;;N;;;;;
+32E2;CIRCLED KATAKANA TE;So;0;L;<circle> 30C6;;;;N;;;;;
+32E3;CIRCLED KATAKANA TO;So;0;L;<circle> 30C8;;;;N;;;;;
+32E4;CIRCLED KATAKANA NA;So;0;L;<circle> 30CA;;;;N;;;;;
+32E5;CIRCLED KATAKANA NI;So;0;L;<circle> 30CB;;;;N;;;;;
+32E6;CIRCLED KATAKANA NU;So;0;L;<circle> 30CC;;;;N;;;;;
+32E7;CIRCLED KATAKANA NE;So;0;L;<circle> 30CD;;;;N;;;;;
+32E8;CIRCLED KATAKANA NO;So;0;L;<circle> 30CE;;;;N;;;;;
+32E9;CIRCLED KATAKANA HA;So;0;L;<circle> 30CF;;;;N;;;;;
+32EA;CIRCLED KATAKANA HI;So;0;L;<circle> 30D2;;;;N;;;;;
+32EB;CIRCLED KATAKANA HU;So;0;L;<circle> 30D5;;;;N;;;;;
+32EC;CIRCLED KATAKANA HE;So;0;L;<circle> 30D8;;;;N;;;;;
+32ED;CIRCLED KATAKANA HO;So;0;L;<circle> 30DB;;;;N;;;;;
+32EE;CIRCLED KATAKANA MA;So;0;L;<circle> 30DE;;;;N;;;;;
+32EF;CIRCLED KATAKANA MI;So;0;L;<circle> 30DF;;;;N;;;;;
+32F0;CIRCLED KATAKANA MU;So;0;L;<circle> 30E0;;;;N;;;;;
+32F1;CIRCLED KATAKANA ME;So;0;L;<circle> 30E1;;;;N;;;;;
+32F2;CIRCLED KATAKANA MO;So;0;L;<circle> 30E2;;;;N;;;;;
+32F3;CIRCLED KATAKANA YA;So;0;L;<circle> 30E4;;;;N;;;;;
+32F4;CIRCLED KATAKANA YU;So;0;L;<circle> 30E6;;;;N;;;;;
+32F5;CIRCLED KATAKANA YO;So;0;L;<circle> 30E8;;;;N;;;;;
+32F6;CIRCLED KATAKANA RA;So;0;L;<circle> 30E9;;;;N;;;;;
+32F7;CIRCLED KATAKANA RI;So;0;L;<circle> 30EA;;;;N;;;;;
+32F8;CIRCLED KATAKANA RU;So;0;L;<circle> 30EB;;;;N;;;;;
+32F9;CIRCLED KATAKANA RE;So;0;L;<circle> 30EC;;;;N;;;;;
+32FA;CIRCLED KATAKANA RO;So;0;L;<circle> 30ED;;;;N;;;;;
+32FB;CIRCLED KATAKANA WA;So;0;L;<circle> 30EF;;;;N;;;;;
+32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
+32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
+32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
+3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
+3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
+3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;
+3303;SQUARE AARU;So;0;L;<square> 30A2 30FC 30EB;;;;N;SQUARED AARU;;;;
+3304;SQUARE ININGU;So;0;L;<square> 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;;
+3305;SQUARE INTI;So;0;L;<square> 30A4 30F3 30C1;;;;N;SQUARED INTI;;;;
+3306;SQUARE UON;So;0;L;<square> 30A6 30A9 30F3;;;;N;SQUARED UON;;;;
+3307;SQUARE ESUKUUDO;So;0;L;<square> 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;;
+3308;SQUARE EEKAA;So;0;L;<square> 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;;
+3309;SQUARE ONSU;So;0;L;<square> 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;;
+330A;SQUARE OOMU;So;0;L;<square> 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;;
+330B;SQUARE KAIRI;So;0;L;<square> 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;;
+330C;SQUARE KARATTO;So;0;L;<square> 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;;
+330D;SQUARE KARORII;So;0;L;<square> 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;;
+330E;SQUARE GARON;So;0;L;<square> 30AC 30ED 30F3;;;;N;SQUARED GARON;;;;
+330F;SQUARE GANMA;So;0;L;<square> 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;;
+3310;SQUARE GIGA;So;0;L;<square> 30AE 30AC;;;;N;SQUARED GIGA;;;;
+3311;SQUARE GINII;So;0;L;<square> 30AE 30CB 30FC;;;;N;SQUARED GINII;;;;
+3312;SQUARE KYURII;So;0;L;<square> 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;;
+3313;SQUARE GIRUDAA;So;0;L;<square> 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;;
+3314;SQUARE KIRO;So;0;L;<square> 30AD 30ED;;;;N;SQUARED KIRO;;;;
+3315;SQUARE KIROGURAMU;So;0;L;<square> 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;;
+3316;SQUARE KIROMEETORU;So;0;L;<square> 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;;
+3317;SQUARE KIROWATTO;So;0;L;<square> 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;;
+3318;SQUARE GURAMU;So;0;L;<square> 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;;
+3319;SQUARE GURAMUTON;So;0;L;<square> 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;;
+331A;SQUARE KURUZEIRO;So;0;L;<square> 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;;
+331B;SQUARE KUROONE;So;0;L;<square> 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;;
+331C;SQUARE KEESU;So;0;L;<square> 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;;
+331D;SQUARE KORUNA;So;0;L;<square> 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;;
+331E;SQUARE KOOPO;So;0;L;<square> 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;;
+331F;SQUARE SAIKURU;So;0;L;<square> 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;;
+3320;SQUARE SANTIIMU;So;0;L;<square> 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;;
+3321;SQUARE SIRINGU;So;0;L;<square> 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;;
+3322;SQUARE SENTI;So;0;L;<square> 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;;
+3323;SQUARE SENTO;So;0;L;<square> 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;;
+3324;SQUARE DAASU;So;0;L;<square> 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;;
+3325;SQUARE DESI;So;0;L;<square> 30C7 30B7;;;;N;SQUARED DESI;;;;
+3326;SQUARE DORU;So;0;L;<square> 30C9 30EB;;;;N;SQUARED DORU;;;;
+3327;SQUARE TON;So;0;L;<square> 30C8 30F3;;;;N;SQUARED TON;;;;
+3328;SQUARE NANO;So;0;L;<square> 30CA 30CE;;;;N;SQUARED NANO;;;;
+3329;SQUARE NOTTO;So;0;L;<square> 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;;
+332A;SQUARE HAITU;So;0;L;<square> 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;;
+332B;SQUARE PAASENTO;So;0;L;<square> 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;;
+332C;SQUARE PAATU;So;0;L;<square> 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;;
+332D;SQUARE BAARERU;So;0;L;<square> 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;;
+332E;SQUARE PIASUTORU;So;0;L;<square> 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;;
+332F;SQUARE PIKURU;So;0;L;<square> 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;;
+3330;SQUARE PIKO;So;0;L;<square> 30D4 30B3;;;;N;SQUARED PIKO;;;;
+3331;SQUARE BIRU;So;0;L;<square> 30D3 30EB;;;;N;SQUARED BIRU;;;;
+3332;SQUARE HUARADDO;So;0;L;<square> 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;;
+3333;SQUARE HUIITO;So;0;L;<square> 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;;
+3334;SQUARE BUSSYERU;So;0;L;<square> 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;;
+3335;SQUARE HURAN;So;0;L;<square> 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;;
+3336;SQUARE HEKUTAARU;So;0;L;<square> 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;;
+3337;SQUARE PESO;So;0;L;<square> 30DA 30BD;;;;N;SQUARED PESO;;;;
+3338;SQUARE PENIHI;So;0;L;<square> 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;;
+3339;SQUARE HERUTU;So;0;L;<square> 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;;
+333A;SQUARE PENSU;So;0;L;<square> 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;;
+333B;SQUARE PEEZI;So;0;L;<square> 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;;
+333C;SQUARE BEETA;So;0;L;<square> 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;;
+333D;SQUARE POINTO;So;0;L;<square> 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;;
+333E;SQUARE BORUTO;So;0;L;<square> 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;;
+333F;SQUARE HON;So;0;L;<square> 30DB 30F3;;;;N;SQUARED HON;;;;
+3340;SQUARE PONDO;So;0;L;<square> 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;;
+3341;SQUARE HOORU;So;0;L;<square> 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;;
+3342;SQUARE HOON;So;0;L;<square> 30DB 30FC 30F3;;;;N;SQUARED HOON;;;;
+3343;SQUARE MAIKURO;So;0;L;<square> 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;;
+3344;SQUARE MAIRU;So;0;L;<square> 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;;
+3345;SQUARE MAHHA;So;0;L;<square> 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;;
+3346;SQUARE MARUKU;So;0;L;<square> 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;;
+3347;SQUARE MANSYON;So;0;L;<square> 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;;
+3348;SQUARE MIKURON;So;0;L;<square> 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;;
+3349;SQUARE MIRI;So;0;L;<square> 30DF 30EA;;;;N;SQUARED MIRI;;;;
+334A;SQUARE MIRIBAARU;So;0;L;<square> 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;;
+334B;SQUARE MEGA;So;0;L;<square> 30E1 30AC;;;;N;SQUARED MEGA;;;;
+334C;SQUARE MEGATON;So;0;L;<square> 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;;
+334D;SQUARE MEETORU;So;0;L;<square> 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;;
+334E;SQUARE YAADO;So;0;L;<square> 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;;
+334F;SQUARE YAARU;So;0;L;<square> 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;;
+3350;SQUARE YUAN;So;0;L;<square> 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;;
+3351;SQUARE RITTORU;So;0;L;<square> 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;;
+3352;SQUARE RIRA;So;0;L;<square> 30EA 30E9;;;;N;SQUARED RIRA;;;;
+3353;SQUARE RUPII;So;0;L;<square> 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;;
+3354;SQUARE RUUBURU;So;0;L;<square> 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;;
+3355;SQUARE REMU;So;0;L;<square> 30EC 30E0;;;;N;SQUARED REMU;;;;
+3356;SQUARE RENTOGEN;So;0;L;<square> 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;;
+3357;SQUARE WATTO;So;0;L;<square> 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;;
+3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L;<compat> 0030 70B9;;;;N;;;;;
+3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L;<compat> 0031 70B9;;;;N;;;;;
+335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L;<compat> 0032 70B9;;;;N;;;;;
+335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L;<compat> 0033 70B9;;;;N;;;;;
+335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L;<compat> 0034 70B9;;;;N;;;;;
+335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L;<compat> 0035 70B9;;;;N;;;;;
+335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L;<compat> 0036 70B9;;;;N;;;;;
+335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L;<compat> 0037 70B9;;;;N;;;;;
+3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L;<compat> 0038 70B9;;;;N;;;;;
+3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L;<compat> 0039 70B9;;;;N;;;;;
+3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L;<compat> 0031 0030 70B9;;;;N;;;;;
+3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L;<compat> 0031 0031 70B9;;;;N;;;;;
+3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L;<compat> 0031 0032 70B9;;;;N;;;;;
+3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L;<compat> 0031 0033 70B9;;;;N;;;;;
+3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L;<compat> 0031 0034 70B9;;;;N;;;;;
+3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L;<compat> 0031 0035 70B9;;;;N;;;;;
+3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L;<compat> 0031 0036 70B9;;;;N;;;;;
+3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L;<compat> 0031 0037 70B9;;;;N;;;;;
+336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L;<compat> 0031 0038 70B9;;;;N;;;;;
+336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L;<compat> 0031 0039 70B9;;;;N;;;;;
+336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L;<compat> 0032 0030 70B9;;;;N;;;;;
+336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L;<compat> 0032 0031 70B9;;;;N;;;;;
+336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L;<compat> 0032 0032 70B9;;;;N;;;;;
+336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L;<compat> 0032 0033 70B9;;;;N;;;;;
+3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L;<compat> 0032 0034 70B9;;;;N;;;;;
+3371;SQUARE HPA;So;0;L;<square> 0068 0050 0061;;;;N;;;;;
+3372;SQUARE DA;So;0;L;<square> 0064 0061;;;;N;;;;;
+3373;SQUARE AU;So;0;L;<square> 0041 0055;;;;N;;;;;
+3374;SQUARE BAR;So;0;L;<square> 0062 0061 0072;;;;N;;;;;
+3375;SQUARE OV;So;0;L;<square> 006F 0056;;;;N;;;;;
+3376;SQUARE PC;So;0;L;<square> 0070 0063;;;;N;;;;;
+3377;SQUARE DM;So;0;ON;<square> 0064 006D;;;;N;;;;;
+3378;SQUARE DM SQUARED;So;0;ON;<square> 0064 006D 00B2;;;;N;;;;;
+3379;SQUARE DM CUBED;So;0;ON;<square> 0064 006D 00B3;;;;N;;;;;
+337A;SQUARE IU;So;0;ON;<square> 0049 0055;;;;N;;;;;
+337B;SQUARE ERA NAME HEISEI;So;0;L;<square> 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;;
+337C;SQUARE ERA NAME SYOUWA;So;0;L;<square> 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;;
+337D;SQUARE ERA NAME TAISYOU;So;0;L;<square> 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;;
+337E;SQUARE ERA NAME MEIZI;So;0;L;<square> 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;;
+337F;SQUARE CORPORATION;So;0;L;<square> 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;;
+3380;SQUARE PA AMPS;So;0;L;<square> 0070 0041;;;;N;SQUARED PA AMPS;;;;
+3381;SQUARE NA;So;0;L;<square> 006E 0041;;;;N;SQUARED NA;;;;
+3382;SQUARE MU A;So;0;L;<square> 03BC 0041;;;;N;SQUARED MU A;;;;
+3383;SQUARE MA;So;0;L;<square> 006D 0041;;;;N;SQUARED MA;;;;
+3384;SQUARE KA;So;0;L;<square> 006B 0041;;;;N;SQUARED KA;;;;
+3385;SQUARE KB;So;0;L;<square> 004B 0042;;;;N;SQUARED KB;;;;
+3386;SQUARE MB;So;0;L;<square> 004D 0042;;;;N;SQUARED MB;;;;
+3387;SQUARE GB;So;0;L;<square> 0047 0042;;;;N;SQUARED GB;;;;
+3388;SQUARE CAL;So;0;L;<square> 0063 0061 006C;;;;N;SQUARED CAL;;;;
+3389;SQUARE KCAL;So;0;L;<square> 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;;
+338A;SQUARE PF;So;0;L;<square> 0070 0046;;;;N;SQUARED PF;;;;
+338B;SQUARE NF;So;0;L;<square> 006E 0046;;;;N;SQUARED NF;;;;
+338C;SQUARE MU F;So;0;L;<square> 03BC 0046;;;;N;SQUARED MU F;;;;
+338D;SQUARE MU G;So;0;L;<square> 03BC 0067;;;;N;SQUARED MU G;;;;
+338E;SQUARE MG;So;0;L;<square> 006D 0067;;;;N;SQUARED MG;;;;
+338F;SQUARE KG;So;0;L;<square> 006B 0067;;;;N;SQUARED KG;;;;
+3390;SQUARE HZ;So;0;L;<square> 0048 007A;;;;N;SQUARED HZ;;;;
+3391;SQUARE KHZ;So;0;L;<square> 006B 0048 007A;;;;N;SQUARED KHZ;;;;
+3392;SQUARE MHZ;So;0;L;<square> 004D 0048 007A;;;;N;SQUARED MHZ;;;;
+3393;SQUARE GHZ;So;0;L;<square> 0047 0048 007A;;;;N;SQUARED GHZ;;;;
+3394;SQUARE THZ;So;0;L;<square> 0054 0048 007A;;;;N;SQUARED THZ;;;;
+3395;SQUARE MU L;So;0;L;<square> 03BC 2113;;;;N;SQUARED MU L;;;;
+3396;SQUARE ML;So;0;L;<square> 006D 2113;;;;N;SQUARED ML;;;;
+3397;SQUARE DL;So;0;L;<square> 0064 2113;;;;N;SQUARED DL;;;;
+3398;SQUARE KL;So;0;L;<square> 006B 2113;;;;N;SQUARED KL;;;;
+3399;SQUARE FM;So;0;L;<square> 0066 006D;;;;N;SQUARED FM;;;;
+339A;SQUARE NM;So;0;L;<square> 006E 006D;;;;N;SQUARED NM;;;;
+339B;SQUARE MU M;So;0;L;<square> 03BC 006D;;;;N;SQUARED MU M;;;;
+339C;SQUARE MM;So;0;L;<square> 006D 006D;;;;N;SQUARED MM;;;;
+339D;SQUARE CM;So;0;L;<square> 0063 006D;;;;N;SQUARED CM;;;;
+339E;SQUARE KM;So;0;L;<square> 006B 006D;;;;N;SQUARED KM;;;;
+339F;SQUARE MM SQUARED;So;0;L;<square> 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;;
+33A0;SQUARE CM SQUARED;So;0;L;<square> 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;;
+33A1;SQUARE M SQUARED;So;0;L;<square> 006D 00B2;;;;N;SQUARED M SQUARED;;;;
+33A2;SQUARE KM SQUARED;So;0;L;<square> 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;;
+33A3;SQUARE MM CUBED;So;0;L;<square> 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;;
+33A4;SQUARE CM CUBED;So;0;L;<square> 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;;
+33A5;SQUARE M CUBED;So;0;L;<square> 006D 00B3;;;;N;SQUARED M CUBED;;;;
+33A6;SQUARE KM CUBED;So;0;L;<square> 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;;
+33A7;SQUARE M OVER S;So;0;L;<square> 006D 2215 0073;;;;N;SQUARED M OVER S;;;;
+33A8;SQUARE M OVER S SQUARED;So;0;L;<square> 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;;
+33A9;SQUARE PA;So;0;L;<square> 0050 0061;;;;N;SQUARED PA;;;;
+33AA;SQUARE KPA;So;0;L;<square> 006B 0050 0061;;;;N;SQUARED KPA;;;;
+33AB;SQUARE MPA;So;0;L;<square> 004D 0050 0061;;;;N;SQUARED MPA;;;;
+33AC;SQUARE GPA;So;0;L;<square> 0047 0050 0061;;;;N;SQUARED GPA;;;;
+33AD;SQUARE RAD;So;0;L;<square> 0072 0061 0064;;;;N;SQUARED RAD;;;;
+33AE;SQUARE RAD OVER S;So;0;L;<square> 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;;
+33AF;SQUARE RAD OVER S SQUARED;So;0;L;<square> 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;;
+33B0;SQUARE PS;So;0;L;<square> 0070 0073;;;;N;SQUARED PS;;;;
+33B1;SQUARE NS;So;0;L;<square> 006E 0073;;;;N;SQUARED NS;;;;
+33B2;SQUARE MU S;So;0;L;<square> 03BC 0073;;;;N;SQUARED MU S;;;;
+33B3;SQUARE MS;So;0;L;<square> 006D 0073;;;;N;SQUARED MS;;;;
+33B4;SQUARE PV;So;0;L;<square> 0070 0056;;;;N;SQUARED PV;;;;
+33B5;SQUARE NV;So;0;L;<square> 006E 0056;;;;N;SQUARED NV;;;;
+33B6;SQUARE MU V;So;0;L;<square> 03BC 0056;;;;N;SQUARED MU V;;;;
+33B7;SQUARE MV;So;0;L;<square> 006D 0056;;;;N;SQUARED MV;;;;
+33B8;SQUARE KV;So;0;L;<square> 006B 0056;;;;N;SQUARED KV;;;;
+33B9;SQUARE MV MEGA;So;0;L;<square> 004D 0056;;;;N;SQUARED MV MEGA;;;;
+33BA;SQUARE PW;So;0;L;<square> 0070 0057;;;;N;SQUARED PW;;;;
+33BB;SQUARE NW;So;0;L;<square> 006E 0057;;;;N;SQUARED NW;;;;
+33BC;SQUARE MU W;So;0;L;<square> 03BC 0057;;;;N;SQUARED MU W;;;;
+33BD;SQUARE MW;So;0;L;<square> 006D 0057;;;;N;SQUARED MW;;;;
+33BE;SQUARE KW;So;0;L;<square> 006B 0057;;;;N;SQUARED KW;;;;
+33BF;SQUARE MW MEGA;So;0;L;<square> 004D 0057;;;;N;SQUARED MW MEGA;;;;
+33C0;SQUARE K OHM;So;0;L;<square> 006B 03A9;;;;N;SQUARED K OHM;;;;
+33C1;SQUARE M OHM;So;0;L;<square> 004D 03A9;;;;N;SQUARED M OHM;;;;
+33C2;SQUARE AM;So;0;L;<square> 0061 002E 006D 002E;;;;N;SQUARED AM;;;;
+33C3;SQUARE BQ;So;0;L;<square> 0042 0071;;;;N;SQUARED BQ;;;;
+33C4;SQUARE CC;So;0;L;<square> 0063 0063;;;;N;SQUARED CC;;;;
+33C5;SQUARE CD;So;0;L;<square> 0063 0064;;;;N;SQUARED CD;;;;
+33C6;SQUARE C OVER KG;So;0;L;<square> 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;;
+33C7;SQUARE CO;So;0;L;<square> 0043 006F 002E;;;;N;SQUARED CO;;;;
+33C8;SQUARE DB;So;0;L;<square> 0064 0042;;;;N;SQUARED DB;;;;
+33C9;SQUARE GY;So;0;L;<square> 0047 0079;;;;N;SQUARED GY;;;;
+33CA;SQUARE HA;So;0;L;<square> 0068 0061;;;;N;SQUARED HA;;;;
+33CB;SQUARE HP;So;0;L;<square> 0048 0050;;;;N;SQUARED HP;;;;
+33CC;SQUARE IN;So;0;L;<square> 0069 006E;;;;N;SQUARED IN;;;;
+33CD;SQUARE KK;So;0;L;<square> 004B 004B;;;;N;SQUARED KK;;;;
+33CE;SQUARE KM CAPITAL;So;0;L;<square> 004B 004D;;;;N;SQUARED KM CAPITAL;;;;
+33CF;SQUARE KT;So;0;L;<square> 006B 0074;;;;N;SQUARED KT;;;;
+33D0;SQUARE LM;So;0;L;<square> 006C 006D;;;;N;SQUARED LM;;;;
+33D1;SQUARE LN;So;0;L;<square> 006C 006E;;;;N;SQUARED LN;;;;
+33D2;SQUARE LOG;So;0;L;<square> 006C 006F 0067;;;;N;SQUARED LOG;;;;
+33D3;SQUARE LX;So;0;L;<square> 006C 0078;;;;N;SQUARED LX;;;;
+33D4;SQUARE MB SMALL;So;0;L;<square> 006D 0062;;;;N;SQUARED MB SMALL;;;;
+33D5;SQUARE MIL;So;0;L;<square> 006D 0069 006C;;;;N;SQUARED MIL;;;;
+33D6;SQUARE MOL;So;0;L;<square> 006D 006F 006C;;;;N;SQUARED MOL;;;;
+33D7;SQUARE PH;So;0;L;<square> 0050 0048;;;;N;SQUARED PH;;;;
+33D8;SQUARE PM;So;0;L;<square> 0070 002E 006D 002E;;;;N;SQUARED PM;;;;
+33D9;SQUARE PPM;So;0;L;<square> 0050 0050 004D;;;;N;SQUARED PPM;;;;
+33DA;SQUARE PR;So;0;L;<square> 0050 0052;;;;N;SQUARED PR;;;;
+33DB;SQUARE SR;So;0;L;<square> 0073 0072;;;;N;SQUARED SR;;;;
+33DC;SQUARE SV;So;0;L;<square> 0053 0076;;;;N;SQUARED SV;;;;
+33DD;SQUARE WB;So;0;L;<square> 0057 0062;;;;N;SQUARED WB;;;;
+33DE;SQUARE V OVER M;So;0;ON;<square> 0056 2215 006D;;;;N;;;;;
+33DF;SQUARE A OVER M;So;0;ON;<square> 0041 2215 006D;;;;N;;;;;
+33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L;<compat> 0031 65E5;;;;N;;;;;
+33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L;<compat> 0032 65E5;;;;N;;;;;
+33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L;<compat> 0033 65E5;;;;N;;;;;
+33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L;<compat> 0034 65E5;;;;N;;;;;
+33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L;<compat> 0035 65E5;;;;N;;;;;
+33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L;<compat> 0036 65E5;;;;N;;;;;
+33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L;<compat> 0037 65E5;;;;N;;;;;
+33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L;<compat> 0038 65E5;;;;N;;;;;
+33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L;<compat> 0039 65E5;;;;N;;;;;
+33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L;<compat> 0031 0030 65E5;;;;N;;;;;
+33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L;<compat> 0031 0031 65E5;;;;N;;;;;
+33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L;<compat> 0031 0032 65E5;;;;N;;;;;
+33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L;<compat> 0031 0033 65E5;;;;N;;;;;
+33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L;<compat> 0031 0034 65E5;;;;N;;;;;
+33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L;<compat> 0031 0035 65E5;;;;N;;;;;
+33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L;<compat> 0031 0036 65E5;;;;N;;;;;
+33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L;<compat> 0031 0037 65E5;;;;N;;;;;
+33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L;<compat> 0031 0038 65E5;;;;N;;;;;
+33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L;<compat> 0031 0039 65E5;;;;N;;;;;
+33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L;<compat> 0032 0030 65E5;;;;N;;;;;
+33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L;<compat> 0032 0031 65E5;;;;N;;;;;
+33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L;<compat> 0032 0032 65E5;;;;N;;;;;
+33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L;<compat> 0032 0033 65E5;;;;N;;;;;
+33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L;<compat> 0032 0034 65E5;;;;N;;;;;
+33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L;<compat> 0032 0035 65E5;;;;N;;;;;
+33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L;<compat> 0032 0036 65E5;;;;N;;;;;
+33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L;<compat> 0032 0037 65E5;;;;N;;;;;
+33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L;<compat> 0032 0038 65E5;;;;N;;;;;
+33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L;<compat> 0032 0039 65E5;;;;N;;;;;
+33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L;<compat> 0033 0030 65E5;;;;N;;;;;
+33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L;<compat> 0033 0031 65E5;;;;N;;;;;
+33FF;SQUARE GAL;So;0;ON;<square> 0067 0061 006C;;;;N;;;;;
+3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
+4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
+4DC0;HEXAGRAM FOR THE CREATIVE HEAVEN;So;0;ON;;;;;N;;;;;
+4DC1;HEXAGRAM FOR THE RECEPTIVE EARTH;So;0;ON;;;;;N;;;;;
+4DC2;HEXAGRAM FOR DIFFICULTY AT THE BEGINNING;So;0;ON;;;;;N;;;;;
+4DC3;HEXAGRAM FOR YOUTHFUL FOLLY;So;0;ON;;;;;N;;;;;
+4DC4;HEXAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;
+4DC5;HEXAGRAM FOR CONFLICT;So;0;ON;;;;;N;;;;;
+4DC6;HEXAGRAM FOR THE ARMY;So;0;ON;;;;;N;;;;;
+4DC7;HEXAGRAM FOR HOLDING TOGETHER;So;0;ON;;;;;N;;;;;
+4DC8;HEXAGRAM FOR SMALL TAMING;So;0;ON;;;;;N;;;;;
+4DC9;HEXAGRAM FOR TREADING;So;0;ON;;;;;N;;;;;
+4DCA;HEXAGRAM FOR PEACE;So;0;ON;;;;;N;;;;;
+4DCB;HEXAGRAM FOR STANDSTILL;So;0;ON;;;;;N;;;;;
+4DCC;HEXAGRAM FOR FELLOWSHIP;So;0;ON;;;;;N;;;;;
+4DCD;HEXAGRAM FOR GREAT POSSESSION;So;0;ON;;;;;N;;;;;
+4DCE;HEXAGRAM FOR MODESTY;So;0;ON;;;;;N;;;;;
+4DCF;HEXAGRAM FOR ENTHUSIASM;So;0;ON;;;;;N;;;;;
+4DD0;HEXAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;
+4DD1;HEXAGRAM FOR WORK ON THE DECAYED;So;0;ON;;;;;N;;;;;
+4DD2;HEXAGRAM FOR APPROACH;So;0;ON;;;;;N;;;;;
+4DD3;HEXAGRAM FOR CONTEMPLATION;So;0;ON;;;;;N;;;;;
+4DD4;HEXAGRAM FOR BITING THROUGH;So;0;ON;;;;;N;;;;;
+4DD5;HEXAGRAM FOR GRACE;So;0;ON;;;;;N;;;;;
+4DD6;HEXAGRAM FOR SPLITTING APART;So;0;ON;;;;;N;;;;;
+4DD7;HEXAGRAM FOR RETURN;So;0;ON;;;;;N;;;;;
+4DD8;HEXAGRAM FOR INNOCENCE;So;0;ON;;;;;N;;;;;
+4DD9;HEXAGRAM FOR GREAT TAMING;So;0;ON;;;;;N;;;;;
+4DDA;HEXAGRAM FOR MOUTH CORNERS;So;0;ON;;;;;N;;;;;
+4DDB;HEXAGRAM FOR GREAT PREPONDERANCE;So;0;ON;;;;;N;;;;;
+4DDC;HEXAGRAM FOR THE ABYSMAL WATER;So;0;ON;;;;;N;;;;;
+4DDD;HEXAGRAM FOR THE CLINGING FIRE;So;0;ON;;;;;N;;;;;
+4DDE;HEXAGRAM FOR INFLUENCE;So;0;ON;;;;;N;;;;;
+4DDF;HEXAGRAM FOR DURATION;So;0;ON;;;;;N;;;;;
+4DE0;HEXAGRAM FOR RETREAT;So;0;ON;;;;;N;;;;;
+4DE1;HEXAGRAM FOR GREAT POWER;So;0;ON;;;;;N;;;;;
+4DE2;HEXAGRAM FOR PROGRESS;So;0;ON;;;;;N;;;;;
+4DE3;HEXAGRAM FOR DARKENING OF THE LIGHT;So;0;ON;;;;;N;;;;;
+4DE4;HEXAGRAM FOR THE FAMILY;So;0;ON;;;;;N;;;;;
+4DE5;HEXAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;
+4DE6;HEXAGRAM FOR OBSTRUCTION;So;0;ON;;;;;N;;;;;
+4DE7;HEXAGRAM FOR DELIVERANCE;So;0;ON;;;;;N;;;;;
+4DE8;HEXAGRAM FOR DECREASE;So;0;ON;;;;;N;;;;;
+4DE9;HEXAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;
+4DEA;HEXAGRAM FOR BREAKTHROUGH;So;0;ON;;;;;N;;;;;
+4DEB;HEXAGRAM FOR COMING TO MEET;So;0;ON;;;;;N;;;;;
+4DEC;HEXAGRAM FOR GATHERING TOGETHER;So;0;ON;;;;;N;;;;;
+4DED;HEXAGRAM FOR PUSHING UPWARD;So;0;ON;;;;;N;;;;;
+4DEE;HEXAGRAM FOR OPPRESSION;So;0;ON;;;;;N;;;;;
+4DEF;HEXAGRAM FOR THE WELL;So;0;ON;;;;;N;;;;;
+4DF0;HEXAGRAM FOR REVOLUTION;So;0;ON;;;;;N;;;;;
+4DF1;HEXAGRAM FOR THE CAULDRON;So;0;ON;;;;;N;;;;;
+4DF2;HEXAGRAM FOR THE AROUSING THUNDER;So;0;ON;;;;;N;;;;;
+4DF3;HEXAGRAM FOR THE KEEPING STILL MOUNTAIN;So;0;ON;;;;;N;;;;;
+4DF4;HEXAGRAM FOR DEVELOPMENT;So;0;ON;;;;;N;;;;;
+4DF5;HEXAGRAM FOR THE MARRYING MAIDEN;So;0;ON;;;;;N;;;;;
+4DF6;HEXAGRAM FOR ABUNDANCE;So;0;ON;;;;;N;;;;;
+4DF7;HEXAGRAM FOR THE WANDERER;So;0;ON;;;;;N;;;;;
+4DF8;HEXAGRAM FOR THE GENTLE WIND;So;0;ON;;;;;N;;;;;
+4DF9;HEXAGRAM FOR THE JOYOUS LAKE;So;0;ON;;;;;N;;;;;
+4DFA;HEXAGRAM FOR DISPERSION;So;0;ON;;;;;N;;;;;
+4DFB;HEXAGRAM FOR LIMITATION;So;0;ON;;;;;N;;;;;
+4DFC;HEXAGRAM FOR INNER TRUTH;So;0;ON;;;;;N;;;;;
+4DFD;HEXAGRAM FOR SMALL PREPONDERANCE;So;0;ON;;;;;N;;;;;
+4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;
+4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;
+4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
+9FBB;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
+A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
+A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
+A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;;
+A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;;
+A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;;
+A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;;
+A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;;
+A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;;
+A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;;
+A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;;
+A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;;
+A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;;
+A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;;
+A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;;
+A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;;
+A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;;
+A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;;
+A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;;
+A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;;
+A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;;
+A015;YI SYLLABLE WU;Lm;0;L;;;;;N;;;;;
+A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;;
+A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;;
+A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;;
+A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;;
+A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;;
+A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;;
+A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;;
+A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;;
+A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;;
+A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;;
+A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;;
+A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;;
+A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;;
+A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;;
+A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;;
+A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;;
+A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;;
+A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;;
+A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;;
+A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;;
+A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;;
+A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;;
+A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;;
+A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;;
+A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;;
+A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;;
+A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;;
+A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;;
+A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;;
+A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;;
+A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;;
+A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;;
+A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;;
+A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;;
+A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;;
+A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;;
+A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;;
+A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;;
+A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;;
+A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;;
+A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;;
+A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;;
+A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;;
+A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;;
+A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;;
+A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;;
+A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;;
+A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;;
+A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;;
+A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;;
+A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;;
+A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;;
+A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;;
+A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;;
+A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;;
+A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;;
+A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;;
+A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;;
+A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;;
+A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;;
+A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;;
+A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;;
+A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;;
+A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;;
+A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;;
+A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;;
+A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;;
+A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;;
+A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;;
+A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;;
+A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;;
+A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;;
+A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
+A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;;
+A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;;
+A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
+A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;;
+A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;;
+A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;;
+A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;;
+A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;;
+A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;;
+A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;;
+A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;;
+A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;;
+A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;;
+A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;;
+A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;;
+A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;;
+A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;;
+A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;;
+A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;;
+A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;;
+A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;;
+A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;;
+A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;;
+A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;;
+A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;;
+A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;;
+A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;;
+A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;;
+A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;;
+A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;;
+A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;;
+A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;;
+A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;;
+A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;;
+A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;;
+A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;;
+A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;;
+A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;;
+A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;;
+A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;;
+A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;;
+A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;;
+A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;;
+A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;;
+A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;;
+A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;;
+A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;;
+A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;;
+A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;;
+A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;;
+A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;;
+A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;;
+A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;;
+A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;;
+A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;;
+A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;;
+A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;;
+A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;;
+A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;;
+A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;;
+A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;;
+A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;;
+A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;;
+A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;;
+A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;;
+A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;;
+A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;;
+A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;;
+A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;;
+A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;;
+A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;;
+A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;;
+A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;;
+A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;;
+A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;;
+A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;;
+A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;;
+A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;;
+A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;;
+A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;;
+A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;;
+A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;;
+A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;;
+A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;;
+A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;;
+A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;;
+A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;;
+A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;;
+A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;;
+A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;;
+A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;;
+A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;;
+A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;;
+A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;;
+A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;;
+A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;;
+A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;;
+A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;;
+A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;;
+A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;;
+A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;;
+A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;;
+A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;;
+A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;;
+A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;;
+A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;;
+A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;;
+A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;;
+A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;;
+A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;;
+A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;;
+A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;;
+A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;;
+A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;;
+A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;;
+A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;;
+A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;;
+A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;;
+A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;;
+A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;;
+A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;;
+A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;;
+A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;;
+A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;;
+A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;;
+A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;;
+A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;;
+A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;;
+A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;;
+A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;;
+A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;;
+A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;;
+A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;;
+A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;;
+A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;;
+A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;;
+A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;;
+A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;;
+A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;;
+A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;;
+A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;;
+A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;;
+A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;;
+A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;;
+A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;;
+A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;;
+A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;;
+A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;;
+A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;;
+A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;;
+A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;;
+A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;;
+A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;;
+A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;;
+A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;;
+A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;;
+A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;;
+A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;;
+A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;;
+A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;;
+A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;;
+A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;;
+A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;;
+A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;;
+A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;;
+A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;;
+A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;;
+A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;;
+A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;;
+A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;;
+A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;;
+A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;;
+A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;;
+A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;;
+A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;;
+A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;;
+A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;;
+A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;;
+A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;;
+A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;;
+A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;;
+A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;;
+A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;;
+A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;;
+A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;;
+A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;;
+A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;;
+A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;;
+A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;;
+A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;;
+A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;;
+A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;;
+A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;;
+A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;;
+A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;;
+A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;;
+A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;;
+A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;;
+A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;;
+A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;;
+A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;;
+A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;;
+A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;;
+A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;;
+A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;;
+A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;;
+A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;;
+A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;;
+A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;;
+A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;;
+A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;;
+A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;;
+A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;;
+A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;;
+A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;;
+A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;;
+A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;;
+A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;;
+A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;;
+A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;;
+A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;;
+A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;;
+A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;;
+A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;;
+A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;;
+A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;;
+A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;;
+A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;;
+A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;;
+A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;;
+A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;;
+A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;;
+A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;;
+A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;;
+A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;;
+A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;;
+A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;;
+A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;;
+A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;;
+A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;;
+A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;;
+A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;;
+A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;;
+A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;;
+A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;;
+A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;;
+A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;;
+A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;;
+A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;;
+A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;;
+A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;;
+A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;;
+A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;;
+A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;;
+A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;;
+A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;;
+A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;;
+A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;;
+A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;;
+A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;;
+A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;;
+A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;;
+A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;;
+A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;;
+A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;;
+A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;;
+A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;;
+A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;;
+A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;;
+A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;;
+A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;;
+A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;;
+A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;;
+A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;;
+A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;;
+A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;;
+A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;;
+A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;;
+A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;;
+A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;;
+A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;;
+A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;;
+A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;;
+A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;;
+A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;;
+A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;;
+A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;;
+A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;;
+A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;;
+A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;;
+A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;;
+A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;;
+A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;;
+A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;;
+A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;;
+A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;;
+A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;;
+A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;;
+A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;;
+A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;;
+A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;;
+A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;;
+A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;;
+A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;;
+A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;;
+A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;;
+A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;;
+A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;;
+A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;;
+A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;;
+A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;;
+A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;;
+A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;;
+A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;;
+A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;;
+A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;;
+A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;;
+A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;;
+A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;;
+A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;;
+A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;;
+A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;;
+A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;;
+A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;;
+A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;;
+A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;;
+A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;;
+A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;;
+A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;;
+A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;;
+A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;;
+A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;;
+A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;;
+A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;;
+A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;;
+A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;;
+A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;;
+A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;;
+A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;;
+A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;;
+A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;;
+A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;;
+A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;;
+A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;;
+A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;;
+A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;;
+A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;;
+A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;;
+A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;;
+A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;;
+A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;;
+A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;;
+A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;;
+A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;;
+A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;;
+A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;;
+A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;;
+A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;;
+A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;;
+A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;;
+A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;;
+A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;;
+A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;;
+A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;;
+A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;;
+A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;;
+A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;;
+A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;;
+A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;;
+A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;;
+A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;;
+A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;;
+A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;;
+A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;;
+A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;;
+A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;;
+A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;;
+A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;;
+A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;;
+A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;;
+A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;;
+A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;;
+A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;;
+A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;;
+A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;;
+A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;;
+A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;;
+A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;;
+A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;;
+A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;;
+A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;;
+A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;;
+A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;;
+A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;;
+A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;;
+A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;;
+A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;;
+A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;;
+A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;;
+A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;;
+A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;;
+A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;;
+A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;;
+A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;;
+A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;;
+A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;;
+A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;;
+A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;;
+A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;;
+A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;;
+A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;;
+A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;;
+A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;;
+A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;;
+A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;;
+A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;;
+A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;;
+A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;;
+A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;;
+A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;;
+A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;;
+A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;;
+A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;;
+A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;;
+A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;;
+A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;;
+A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;;
+A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;;
+A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;;
+A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;;
+A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;;
+A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;;
+A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;;
+A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;;
+A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;;
+A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;;
+A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;;
+A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;;
+A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;;
+A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;;
+A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;;
+A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;;
+A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;;
+A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;;
+A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;;
+A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;;
+A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;;
+A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;;
+A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;;
+A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;;
+A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;;
+A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;;
+A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;;
+A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;;
+A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;;
+A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;;
+A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;;
+A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;;
+A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;;
+A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;;
+A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;;
+A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;;
+A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;;
+A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;;
+A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;;
+A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;;
+A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;;
+A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;;
+A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;;
+A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;;
+A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;;
+A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;;
+A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;;
+A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;;
+A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;;
+A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;;
+A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;;
+A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;;
+A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;;
+A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;;
+A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;;
+A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;;
+A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;;
+A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;;
+A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;;
+A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;;
+A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;;
+A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;;
+A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;;
+A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;;
+A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;;
+A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;;
+A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;;
+A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;;
+A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;;
+A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;;
+A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;;
+A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;;
+A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;;
+A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;;
+A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;;
+A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;;
+A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;;
+A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;;
+A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;;
+A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;;
+A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;;
+A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;;
+A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;;
+A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;;
+A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;;
+A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;;
+A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;;
+A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;;
+A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;;
+A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;;
+A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;;
+A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;;
+A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;;
+A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;;
+A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;;
+A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;;
+A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;;
+A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;;
+A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;;
+A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;;
+A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;;
+A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;;
+A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;;
+A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;;
+A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;;
+A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;;
+A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;;
+A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;;
+A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;;
+A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;;
+A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;;
+A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;;
+A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;;
+A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;;
+A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;;
+A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;;
+A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;;
+A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;;
+A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;;
+A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;;
+A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;;
+A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;;
+A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;;
+A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
+A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;;
+A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;;
+A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;;
+A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;;
+A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;;
+A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;;
+A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;;
+A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
+A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;;
+A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;;
+A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
+A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;;
+A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;;
+A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
+A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;;
+A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;;
+A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
+A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;;
+A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;;
+A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;;
+A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;;
+A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;;
+A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;;
+A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;;
+A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;;
+A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;;
+A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;;
+A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;;
+A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;;
+A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;;
+A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;;
+A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;;
+A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;;
+A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;;
+A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;;
+A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;;
+A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;;
+A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;;
+A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;;
+A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;;
+A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;;
+A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;;
+A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;;
+A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;;
+A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;;
+A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;;
+A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;;
+A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;;
+A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;;
+A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;;
+A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;;
+A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;;
+A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;;
+A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;;
+A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;;
+A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;;
+A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;;
+A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;;
+A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;;
+A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;;
+A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;;
+A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;;
+A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;;
+A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;;
+A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;;
+A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;;
+A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;;
+A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;;
+A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;;
+A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;;
+A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;;
+A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;;
+A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;;
+A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;;
+A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;;
+A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;;
+A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;;
+A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;;
+A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;;
+A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;;
+A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;;
+A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;;
+A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;;
+A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;;
+A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
+A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;;
+A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;;
+A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;;
+A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;;
+A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;;
+A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;;
+A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
+A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;;
+A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;;
+A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;;
+A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
+A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;;
+A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;;
+A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
+A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;;
+A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;;
+A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;;
+A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
+A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;;
+A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;;
+A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;;
+A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;;
+A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;;
+A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;;
+A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;;
+A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;;
+A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;;
+A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;;
+A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;;
+A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;;
+A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;;
+A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;;
+A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;;
+A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;;
+A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;;
+A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;;
+A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;;
+A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;;
+A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;;
+A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;;
+A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;;
+A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;;
+A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;;
+A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;;
+A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;;
+A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;;
+A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;;
+A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;;
+A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;;
+A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;;
+A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;;
+A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;;
+A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;;
+A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;;
+A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;;
+A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;;
+A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;;
+A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;;
+A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;;
+A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;;
+A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;;
+A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;;
+A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;;
+A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;;
+A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;;
+A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;;
+A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;;
+A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;;
+A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;;
+A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;;
+A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;;
+A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;;
+A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;;
+A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;;
+A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;;
+A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;;
+A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;;
+A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;;
+A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;;
+A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;;
+A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;;
+A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;;
+A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;;
+A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;;
+A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;;
+A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;;
+A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;;
+A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;;
+A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;;
+A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;;
+A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;;
+A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;;
+A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;;
+A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;;
+A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;;
+A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;;
+A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;;
+A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;;
+A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;;
+A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;;
+A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;;
+A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;;
+A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;;
+A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;;
+A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;;
+A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;;
+A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;;
+A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;;
+A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;;
+A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;;
+A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;;
+A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;;
+A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;;
+A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;;
+A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;;
+A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;;
+A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;;
+A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;;
+A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;;
+A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;;
+A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;;
+A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;;
+A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;;
+A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;;
+A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;;
+A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;;
+A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;;
+A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;;
+A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;;
+A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;;
+A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;;
+A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;;
+A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;;
+A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;;
+A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;;
+A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;;
+A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;;
+A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;;
+A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;;
+A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;;
+A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;;
+A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;;
+A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;;
+A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;;
+A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;;
+A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;;
+A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;;
+A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;;
+A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;;
+A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;;
+A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;;
+A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;;
+A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;;
+A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;;
+A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;;
+A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;;
+A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;;
+A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;;
+A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;;
+A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;;
+A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;;
+A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;;
+A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;;
+A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;;
+A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;;
+A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;;
+A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;;
+A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;;
+A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;;
+A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;;
+A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;;
+A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;;
+A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;;
+A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;;
+A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;;
+A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;;
+A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;;
+A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;;
+A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;;
+A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;;
+A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;;
+A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;;
+A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;;
+A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;;
+A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;;
+A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;;
+A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;;
+A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;;
+A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;;
+A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;;
+A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;;
+A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;;
+A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;;
+A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;;
+A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;;
+A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;;
+A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;;
+A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;;
+A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;;
+A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;;
+A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;;
+A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;;
+A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;;
+A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;;
+A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;;
+A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;;
+A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;;
+A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;;
+A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;;
+A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;;
+A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;;
+A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;;
+A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;;
+A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;;
+A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;;
+A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;;
+A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;;
+A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;;
+A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;;
+A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;;
+A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;;
+A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;;
+A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;;
+A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;;
+A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;;
+A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;;
+A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;;
+A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;;
+A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;;
+A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;;
+A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;;
+A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;;
+A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;;
+A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;;
+A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;;
+A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;;
+A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;;
+A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;;
+A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;;
+A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;;
+A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;;
+A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;;
+A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;;
+A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;;
+A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;;
+A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;;
+A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;;
+A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;;
+A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;;
+A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;;
+A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;;
+A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;;
+A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;;
+A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;;
+A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;;
+A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;;
+A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;;
+A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;;
+A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;;
+A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;;
+A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;;
+A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;;
+A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;;
+A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;;
+A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;;
+A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;;
+A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;;
+A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;;
+A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;;
+A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;;
+A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;;
+A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;;
+A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;;
+A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;;
+A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;;
+A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;;
+A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;;
+A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;;
+A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;;
+A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;;
+A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;;
+A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;;
+A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;;
+A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;;
+A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;;
+A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;;
+A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;;
+A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;;
+A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;;
+A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;;
+A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;;
+A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;;
+A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;;
+A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;;
+A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;;
+A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;;
+A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;;
+A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;;
+A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;;
+A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;;
+A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;;
+A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;;
+A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;;
+A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;;
+A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;;
+A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;;
+A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;;
+A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;;
+A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;;
+A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;;
+A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;;
+A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;;
+A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;;
+A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;;
+A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;;
+A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;;
+A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;;
+A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;;
+A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;;
+A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;;
+A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;;
+A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;;
+A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;;
+A491;YI RADICAL LI;So;0;ON;;;;;N;;;;;
+A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;;
+A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;;
+A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;;
+A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;;
+A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;;
+A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;;
+A498;YI RADICAL MI;So;0;ON;;;;;N;;;;;
+A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;;
+A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;;
+A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;;
+A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;;
+A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;;
+A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;;
+A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;;
+A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;;
+A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;;
+A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;;
+A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;;
+A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;;
+A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;;
+A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;;
+A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;;
+A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;;
+A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;;
+A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;;
+A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;;
+A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;;
+A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;;
+A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;;
+A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;;
+A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;;
+A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;;
+A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;;
+A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;;
+A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;;
+A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;;
+A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;;
+A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;;
+A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;;
+A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;;
+A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;;
+A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;;
+A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;;
+A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;;
+A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;;
+A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;;
+A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;;
+A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;;
+A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;;
+A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;;
+A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;;
+A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;;
+A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;;
+A700;MODIFIER LETTER CHINESE TONE YIN PING;Sk;0;ON;;;;;N;;;;;
+A701;MODIFIER LETTER CHINESE TONE YANG PING;Sk;0;ON;;;;;N;;;;;
+A702;MODIFIER LETTER CHINESE TONE YIN SHANG;Sk;0;ON;;;;;N;;;;;
+A703;MODIFIER LETTER CHINESE TONE YANG SHANG;Sk;0;ON;;;;;N;;;;;
+A704;MODIFIER LETTER CHINESE TONE YIN QU;Sk;0;ON;;;;;N;;;;;
+A705;MODIFIER LETTER CHINESE TONE YANG QU;Sk;0;ON;;;;;N;;;;;
+A706;MODIFIER LETTER CHINESE TONE YIN RU;Sk;0;ON;;;;;N;;;;;
+A707;MODIFIER LETTER CHINESE TONE YANG RU;Sk;0;ON;;;;;N;;;;;
+A708;MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A709;MODIFIER LETTER HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70A;MODIFIER LETTER MID DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70B;MODIFIER LETTER LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70C;MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70D;MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70E;MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70F;MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A710;MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A711;MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A712;MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A713;MODIFIER LETTER HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A714;MODIFIER LETTER MID LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A715;MODIFIER LETTER LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A716;MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A717;MODIFIER LETTER DOT VERTICAL BAR;Lm;0;ON;;;;;N;;;;;
+A718;MODIFIER LETTER DOT SLASH;Lm;0;ON;;;;;N;;;;;
+A719;MODIFIER LETTER DOT HORIZONTAL BAR;Lm;0;ON;;;;;N;;;;;
+A71A;MODIFIER LETTER LOWER RIGHT CORNER ANGLE;Lm;0;ON;;;;;N;;;;;
+A720;MODIFIER LETTER STRESS AND HIGH TONE;Sk;0;ON;;;;;N;;;;;
+A721;MODIFIER LETTER STRESS AND LOW TONE;Sk;0;ON;;;;;N;;;;;
+A800;SYLOTI NAGRI LETTER A;Lo;0;L;;;;;N;;;;;
+A801;SYLOTI NAGRI LETTER I;Lo;0;L;;;;;N;;;;;
+A802;SYLOTI NAGRI SIGN DVISVARA;Mc;0;NSM;;;;;N;;;;;
+A803;SYLOTI NAGRI LETTER U;Lo;0;L;;;;;N;;;;;
+A804;SYLOTI NAGRI LETTER E;Lo;0;L;;;;;N;;;;;
+A805;SYLOTI NAGRI LETTER O;Lo;0;L;;;;;N;;;;;
+A806;SYLOTI NAGRI SIGN HASANTA;Mn;9;NSM;;;;;N;;;;;
+A807;SYLOTI NAGRI LETTER KO;Lo;0;L;;;;;N;;;;;
+A808;SYLOTI NAGRI LETTER KHO;Lo;0;L;;;;;N;;;;;
+A809;SYLOTI NAGRI LETTER GO;Lo;0;L;;;;;N;;;;;
+A80A;SYLOTI NAGRI LETTER GHO;Lo;0;L;;;;;N;;;;;
+A80B;SYLOTI NAGRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+A80C;SYLOTI NAGRI LETTER CO;Lo;0;L;;;;;N;;;;;
+A80D;SYLOTI NAGRI LETTER CHO;Lo;0;L;;;;;N;;;;;
+A80E;SYLOTI NAGRI LETTER JO;Lo;0;L;;;;;N;;;;;
+A80F;SYLOTI NAGRI LETTER JHO;Lo;0;L;;;;;N;;;;;
+A810;SYLOTI NAGRI LETTER TTO;Lo;0;L;;;;;N;;;;;
+A811;SYLOTI NAGRI LETTER TTHO;Lo;0;L;;;;;N;;;;;
+A812;SYLOTI NAGRI LETTER DDO;Lo;0;L;;;;;N;;;;;
+A813;SYLOTI NAGRI LETTER DDHO;Lo;0;L;;;;;N;;;;;
+A814;SYLOTI NAGRI LETTER TO;Lo;0;L;;;;;N;;;;;
+A815;SYLOTI NAGRI LETTER THO;Lo;0;L;;;;;N;;;;;
+A816;SYLOTI NAGRI LETTER DO;Lo;0;L;;;;;N;;;;;
+A817;SYLOTI NAGRI LETTER DHO;Lo;0;L;;;;;N;;;;;
+A818;SYLOTI NAGRI LETTER NO;Lo;0;L;;;;;N;;;;;
+A819;SYLOTI NAGRI LETTER PO;Lo;0;L;;;;;N;;;;;
+A81A;SYLOTI NAGRI LETTER PHO;Lo;0;L;;;;;N;;;;;
+A81B;SYLOTI NAGRI LETTER BO;Lo;0;L;;;;;N;;;;;
+A81C;SYLOTI NAGRI LETTER BHO;Lo;0;L;;;;;N;;;;;
+A81D;SYLOTI NAGRI LETTER MO;Lo;0;L;;;;;N;;;;;
+A81E;SYLOTI NAGRI LETTER RO;Lo;0;L;;;;;N;;;;;
+A81F;SYLOTI NAGRI LETTER LO;Lo;0;L;;;;;N;;;;;
+A820;SYLOTI NAGRI LETTER RRO;Lo;0;L;;;;;N;;;;;
+A821;SYLOTI NAGRI LETTER SO;Lo;0;L;;;;;N;;;;;
+A822;SYLOTI NAGRI LETTER HO;Lo;0;L;;;;;N;;;;;
+A823;SYLOTI NAGRI VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
+A824;SYLOTI NAGRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+A825;SYLOTI NAGRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+A826;SYLOTI NAGRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+A827;SYLOTI NAGRI VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+A828;SYLOTI NAGRI POETRY MARK-1;So;0;ON;;;;;N;;;;;
+A829;SYLOTI NAGRI POETRY MARK-2;So;0;ON;;;;;N;;;;;
+A82A;SYLOTI NAGRI POETRY MARK-3;So;0;ON;;;;;N;;;;;
+A82B;SYLOTI NAGRI POETRY MARK-4;So;0;ON;;;;;N;;;;;
+A840;PHAGS-PA LETTER KA;Lo;0;L;;;;;N;;;;;
+A841;PHAGS-PA LETTER KHA;Lo;0;L;;;;;N;;;;;
+A842;PHAGS-PA LETTER GA;Lo;0;L;;;;;N;;;;;
+A843;PHAGS-PA LETTER NGA;Lo;0;L;;;;;N;;;;;
+A844;PHAGS-PA LETTER CA;Lo;0;L;;;;;N;;;;;
+A845;PHAGS-PA LETTER CHA;Lo;0;L;;;;;N;;;;;
+A846;PHAGS-PA LETTER JA;Lo;0;L;;;;;N;;;;;
+A847;PHAGS-PA LETTER NYA;Lo;0;L;;;;;N;;;;;
+A848;PHAGS-PA LETTER TA;Lo;0;L;;;;;N;;;;;
+A849;PHAGS-PA LETTER THA;Lo;0;L;;;;;N;;;;;
+A84A;PHAGS-PA LETTER DA;Lo;0;L;;;;;N;;;;;
+A84B;PHAGS-PA LETTER NA;Lo;0;L;;;;;N;;;;;
+A84C;PHAGS-PA LETTER PA;Lo;0;L;;;;;N;;;;;
+A84D;PHAGS-PA LETTER PHA;Lo;0;L;;;;;N;;;;;
+A84E;PHAGS-PA LETTER BA;Lo;0;L;;;;;N;;;;;
+A84F;PHAGS-PA LETTER MA;Lo;0;L;;;;;N;;;;;
+A850;PHAGS-PA LETTER TSA;Lo;0;L;;;;;N;;;;;
+A851;PHAGS-PA LETTER TSHA;Lo;0;L;;;;;N;;;;;
+A852;PHAGS-PA LETTER DZA;Lo;0;L;;;;;N;;;;;
+A853;PHAGS-PA LETTER WA;Lo;0;L;;;;;N;;;;;
+A854;PHAGS-PA LETTER ZHA;Lo;0;L;;;;;N;;;;;
+A855;PHAGS-PA LETTER ZA;Lo;0;L;;;;;N;;;;;
+A856;PHAGS-PA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+A857;PHAGS-PA LETTER YA;Lo;0;L;;;;;N;;;;;
+A858;PHAGS-PA LETTER RA;Lo;0;L;;;;;N;;;;;
+A859;PHAGS-PA LETTER LA;Lo;0;L;;;;;N;;;;;
+A85A;PHAGS-PA LETTER SHA;Lo;0;L;;;;;N;;;;;
+A85B;PHAGS-PA LETTER SA;Lo;0;L;;;;;N;;;;;
+A85C;PHAGS-PA LETTER HA;Lo;0;L;;;;;N;;;;;
+A85D;PHAGS-PA LETTER A;Lo;0;L;;;;;N;;;;;
+A85E;PHAGS-PA LETTER I;Lo;0;L;;;;;N;;;;;
+A85F;PHAGS-PA LETTER U;Lo;0;L;;;;;N;;;;;
+A860;PHAGS-PA LETTER E;Lo;0;L;;;;;N;;;;;
+A861;PHAGS-PA LETTER O;Lo;0;L;;;;;N;;;;;
+A862;PHAGS-PA LETTER QA;Lo;0;L;;;;;N;;;;;
+A863;PHAGS-PA LETTER XA;Lo;0;L;;;;;N;;;;;
+A864;PHAGS-PA LETTER FA;Lo;0;L;;;;;N;;;;;
+A865;PHAGS-PA LETTER GGA;Lo;0;L;;;;;N;;;;;
+A866;PHAGS-PA LETTER EE;Lo;0;L;;;;;N;;;;;
+A867;PHAGS-PA SUBJOINED LETTER WA;Lo;0;L;;;;;N;;;;;
+A868;PHAGS-PA SUBJOINED LETTER YA;Lo;0;L;;;;;N;;;;;
+A869;PHAGS-PA LETTER TTA;Lo;0;L;;;;;N;;;;;
+A86A;PHAGS-PA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+A86B;PHAGS-PA LETTER DDA;Lo;0;L;;;;;N;;;;;
+A86C;PHAGS-PA LETTER NNA;Lo;0;L;;;;;N;;;;;
+A86D;PHAGS-PA LETTER ALTERNATE YA;Lo;0;L;;;;;N;;;;;
+A86E;PHAGS-PA LETTER VOICELESS SHA;Lo;0;L;;;;;N;;;;;
+A86F;PHAGS-PA LETTER VOICED HA;Lo;0;L;;;;;N;;;;;
+A870;PHAGS-PA LETTER ASPIRATED FA;Lo;0;L;;;;;N;;;;;
+A871;PHAGS-PA SUBJOINED LETTER RA;Lo;0;L;;;;;N;;;;;
+A872;PHAGS-PA SUPERFIXED LETTER RA;Lo;0;L;;;;;N;;;;;
+A873;PHAGS-PA LETTER CANDRABINDU;Lo;0;L;;;;;N;;;;;
+A874;PHAGS-PA SINGLE HEAD MARK;Po;0;ON;;;;;N;;;;;
+A875;PHAGS-PA DOUBLE HEAD MARK;Po;0;ON;;;;;N;;;;;
+A876;PHAGS-PA MARK SHAD;Po;0;ON;;;;;N;;;;;
+A877;PHAGS-PA MARK DOUBLE SHAD;Po;0;ON;;;;;N;;;;;
+AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;;
+D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;
+D800;<Non Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DB7F;<Non Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+DB80;<Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DBFF;<Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+DC00;<Low Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DFFF;<Low Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+E000;<Private Use, First>;Co;0;L;;;;;N;;;;;
+F8FF;<Private Use, Last>;Co;0;L;;;;;N;;;;;
+F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;;
+F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;;
+F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;;
+F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;;
+F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;;
+F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;;
+F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;;
+F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;;
+F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;;
+F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;;
+F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;;
+F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;;
+F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;;
+F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;;
+F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;;
+F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;;
+F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;;
+F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;;
+F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;;
+F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;;
+F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;;
+F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;;
+F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;;
+F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;;
+F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;;
+F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;;
+F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;;
+F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;;
+F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;;
+F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;;
+F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;;
+F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;;
+F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;;
+F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;;
+F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;;
+F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;;
+F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;;
+F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;;
+F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;;
+F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;;
+F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;;
+F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;;
+F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;;
+F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;;
+F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;;
+F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;;
+F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;;
+F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;;
+F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;;
+F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;;
+F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;;
+F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;;
+F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;;
+F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;;
+F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;;
+F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;;
+F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;;
+F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;;
+F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;;
+F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;;
+F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;;
+F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;;
+F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;;
+F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;;
+F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;;
+F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;;
+F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;;
+F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;;
+F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;;
+F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;;
+F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;;
+F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;;
+F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;;
+F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;;
+F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;;
+F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;;
+F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;;
+F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;;
+F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;;
+F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;;
+F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;;
+F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;;
+F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;;
+F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;;
+F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;;
+F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;;
+F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;;
+F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;;
+F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;;
+F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;;
+F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;;
+F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;;
+F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;;
+F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;;
+F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;;
+F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;;
+F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;;
+F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;;
+F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;;
+F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;;
+F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;;
+F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;;
+F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;;
+F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;;
+F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;;
+F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;;
+F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;;
+F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;;N;;;;;
+F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;;
+F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;;
+F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;;
+F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;;
+F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;;
+F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;;
+F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;;
+F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;;N;;;;;
+F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;;
+F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;;
+F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;;
+F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;;
+F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;;N;;;;;
+F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;;
+F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;;
+F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;;
+F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;;
+F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;;
+F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;;
+F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;;
+F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;;
+F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;;
+F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;;
+F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;;
+F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;;
+F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;;
+F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;;
+F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;;
+F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;;
+F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;;
+F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;;
+F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;;
+F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;;
+F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;;
+F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;;
+F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;;
+F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;;
+F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;;
+F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;;
+F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;;
+F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;;
+F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;;
+F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;;
+F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;;
+F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;;
+F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;;
+F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;;
+F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;;
+F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;;
+F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;;
+F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;;
+F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;;
+F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;;
+F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;;
+F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;;
+F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;;
+F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;;
+F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;;
+F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;;
+F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;;
+F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;;
+F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;;
+F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;;
+F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;;
+F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;;
+F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;;
+F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;;
+F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;;
+F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;;
+F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;;
+F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;;N;;;;;
+F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;;
+F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;;
+F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;;
+F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;;
+F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;;
+F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;;
+F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;;
+F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;;
+F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;;
+F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;;
+F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;;
+F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;;
+F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;;
+F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;;
+F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;;
+F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;;
+F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;;
+F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;;
+F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;;
+F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;;
+F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;;
+F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;;
+F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;;
+F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;;
+F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;;
+F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;;
+F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;;
+F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;;
+F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;;
+F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;;
+F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;;N;;;;;
+F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;;
+F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;;N;;;;;
+F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;;
+F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;;
+F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;;
+F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;;
+F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;;
+F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;;
+F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;;
+F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;;
+F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;;
+F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;;
+F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;;
+F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;;
+F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;;
+F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;;
+F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;;
+F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;;
+F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;;
+F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;;
+F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;;
+F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;;
+F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;;
+F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;;
+F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;;
+F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;;
+F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;;
+F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;;
+F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;;
+F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;;
+F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;;
+F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;;
+F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;;
+F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;;
+F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;;
+F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;;
+F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;;
+F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;;
+F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;;
+F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;;
+F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;;
+F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;;
+F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;;
+F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;;N;;;;;
+F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;;
+F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;;
+FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;;
+FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;;
+FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;;
+FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;;
+FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;;
+FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;;
+FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;;
+FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;;
+FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;;
+FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;;
+FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;;
+FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;;
+FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;;
+FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;;
+FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;;
+FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;;
+FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;;
+FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;;
+FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;;
+FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;;
+FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;;
+FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;;
+FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;;
+FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;;
+FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;;
+FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;;
+FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;;
+FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;;
+FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;;
+FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;;
+FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;;
+FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;*;;;
+FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;;
+FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;;
+FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;;
+FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;*;;;
+FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;;
+FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;;
+FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;;
+FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;;
+FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;;
+FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;;
+FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;;
+FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;
+FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;
+FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;
+FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;;
+FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;;
+FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;;
+FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;;
+FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;;
+FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;;
+FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;;
+FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;;
+FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;;
+FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;;
+FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;;
+FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;;
+FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;;
+FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;;
+FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;;
+FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;;
+FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;;
+FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;;
+FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;;
+FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;;
+FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;;
+FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;;
+FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;;
+FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;;
+FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;;
+FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;;
+FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;;
+FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;;
+FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;;
+FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;;
+FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;;
+FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;;
+FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;;
+FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;;
+FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;;
+FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;;
+FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;;
+FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;;
+FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;;
+FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;;
+FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;;
+FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;;
+FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;;
+FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;;
+FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;;
+FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;;
+FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;;
+FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;;
+FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;;
+FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;;
+FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;;
+FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;;
+FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;;
+FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;;
+FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;;
+FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;;
+FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;;
+FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;;
+FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;;
+FA70;CJK COMPATIBILITY IDEOGRAPH-FA70;Lo;0;L;4E26;;;;N;;;;;
+FA71;CJK COMPATIBILITY IDEOGRAPH-FA71;Lo;0;L;51B5;;;;N;;;;;
+FA72;CJK COMPATIBILITY IDEOGRAPH-FA72;Lo;0;L;5168;;;;N;;;;;
+FA73;CJK COMPATIBILITY IDEOGRAPH-FA73;Lo;0;L;4F80;;;;N;;;;;
+FA74;CJK COMPATIBILITY IDEOGRAPH-FA74;Lo;0;L;5145;;;;N;;;;;
+FA75;CJK COMPATIBILITY IDEOGRAPH-FA75;Lo;0;L;5180;;;;N;;;;;
+FA76;CJK COMPATIBILITY IDEOGRAPH-FA76;Lo;0;L;52C7;;;;N;;;;;
+FA77;CJK COMPATIBILITY IDEOGRAPH-FA77;Lo;0;L;52FA;;;;N;;;;;
+FA78;CJK COMPATIBILITY IDEOGRAPH-FA78;Lo;0;L;559D;;;;N;;;;;
+FA79;CJK COMPATIBILITY IDEOGRAPH-FA79;Lo;0;L;5555;;;;N;;;;;
+FA7A;CJK COMPATIBILITY IDEOGRAPH-FA7A;Lo;0;L;5599;;;;N;;;;;
+FA7B;CJK COMPATIBILITY IDEOGRAPH-FA7B;Lo;0;L;55E2;;;;N;;;;;
+FA7C;CJK COMPATIBILITY IDEOGRAPH-FA7C;Lo;0;L;585A;;;;N;;;;;
+FA7D;CJK COMPATIBILITY IDEOGRAPH-FA7D;Lo;0;L;58B3;;;;N;;;;;
+FA7E;CJK COMPATIBILITY IDEOGRAPH-FA7E;Lo;0;L;5944;;;;N;;;;;
+FA7F;CJK COMPATIBILITY IDEOGRAPH-FA7F;Lo;0;L;5954;;;;N;;;;;
+FA80;CJK COMPATIBILITY IDEOGRAPH-FA80;Lo;0;L;5A62;;;;N;;;;;
+FA81;CJK COMPATIBILITY IDEOGRAPH-FA81;Lo;0;L;5B28;;;;N;;;;;
+FA82;CJK COMPATIBILITY IDEOGRAPH-FA82;Lo;0;L;5ED2;;;;N;;;;;
+FA83;CJK COMPATIBILITY IDEOGRAPH-FA83;Lo;0;L;5ED9;;;;N;;;;;
+FA84;CJK COMPATIBILITY IDEOGRAPH-FA84;Lo;0;L;5F69;;;;N;;;;;
+FA85;CJK COMPATIBILITY IDEOGRAPH-FA85;Lo;0;L;5FAD;;;;N;;;;;
+FA86;CJK COMPATIBILITY IDEOGRAPH-FA86;Lo;0;L;60D8;;;;N;;;;;
+FA87;CJK COMPATIBILITY IDEOGRAPH-FA87;Lo;0;L;614E;;;;N;;;;;
+FA88;CJK COMPATIBILITY IDEOGRAPH-FA88;Lo;0;L;6108;;;;N;;;;;
+FA89;CJK COMPATIBILITY IDEOGRAPH-FA89;Lo;0;L;618E;;;;N;;;;;
+FA8A;CJK COMPATIBILITY IDEOGRAPH-FA8A;Lo;0;L;6160;;;;N;;;;;
+FA8B;CJK COMPATIBILITY IDEOGRAPH-FA8B;Lo;0;L;61F2;;;;N;;;;;
+FA8C;CJK COMPATIBILITY IDEOGRAPH-FA8C;Lo;0;L;6234;;;;N;;;;;
+FA8D;CJK COMPATIBILITY IDEOGRAPH-FA8D;Lo;0;L;63C4;;;;N;;;;;
+FA8E;CJK COMPATIBILITY IDEOGRAPH-FA8E;Lo;0;L;641C;;;;N;;;;;
+FA8F;CJK COMPATIBILITY IDEOGRAPH-FA8F;Lo;0;L;6452;;;;N;;;;;
+FA90;CJK COMPATIBILITY IDEOGRAPH-FA90;Lo;0;L;6556;;;;N;;;;;
+FA91;CJK COMPATIBILITY IDEOGRAPH-FA91;Lo;0;L;6674;;;;N;;;;;
+FA92;CJK COMPATIBILITY IDEOGRAPH-FA92;Lo;0;L;6717;;;;N;;;;;
+FA93;CJK COMPATIBILITY IDEOGRAPH-FA93;Lo;0;L;671B;;;;N;;;;;
+FA94;CJK COMPATIBILITY IDEOGRAPH-FA94;Lo;0;L;6756;;;;N;;;;;
+FA95;CJK COMPATIBILITY IDEOGRAPH-FA95;Lo;0;L;6B79;;;;N;;;;;
+FA96;CJK COMPATIBILITY IDEOGRAPH-FA96;Lo;0;L;6BBA;;;;N;;;;;
+FA97;CJK COMPATIBILITY IDEOGRAPH-FA97;Lo;0;L;6D41;;;;N;;;;;
+FA98;CJK COMPATIBILITY IDEOGRAPH-FA98;Lo;0;L;6EDB;;;;N;;;;;
+FA99;CJK COMPATIBILITY IDEOGRAPH-FA99;Lo;0;L;6ECB;;;;N;;;;;
+FA9A;CJK COMPATIBILITY IDEOGRAPH-FA9A;Lo;0;L;6F22;;;;N;;;;;
+FA9B;CJK COMPATIBILITY IDEOGRAPH-FA9B;Lo;0;L;701E;;;;N;;;;;
+FA9C;CJK COMPATIBILITY IDEOGRAPH-FA9C;Lo;0;L;716E;;;;N;;;;;
+FA9D;CJK COMPATIBILITY IDEOGRAPH-FA9D;Lo;0;L;77A7;;;;N;;;;;
+FA9E;CJK COMPATIBILITY IDEOGRAPH-FA9E;Lo;0;L;7235;;;;N;;;;;
+FA9F;CJK COMPATIBILITY IDEOGRAPH-FA9F;Lo;0;L;72AF;;;;N;;;;;
+FAA0;CJK COMPATIBILITY IDEOGRAPH-FAA0;Lo;0;L;732A;;;;N;;;;;
+FAA1;CJK COMPATIBILITY IDEOGRAPH-FAA1;Lo;0;L;7471;;;;N;;;;;
+FAA2;CJK COMPATIBILITY IDEOGRAPH-FAA2;Lo;0;L;7506;;;;N;;;;;
+FAA3;CJK COMPATIBILITY IDEOGRAPH-FAA3;Lo;0;L;753B;;;;N;;;;;
+FAA4;CJK COMPATIBILITY IDEOGRAPH-FAA4;Lo;0;L;761D;;;;N;;;;;
+FAA5;CJK COMPATIBILITY IDEOGRAPH-FAA5;Lo;0;L;761F;;;;N;;;;;
+FAA6;CJK COMPATIBILITY IDEOGRAPH-FAA6;Lo;0;L;76CA;;;;N;;;;;
+FAA7;CJK COMPATIBILITY IDEOGRAPH-FAA7;Lo;0;L;76DB;;;;N;;;;;
+FAA8;CJK COMPATIBILITY IDEOGRAPH-FAA8;Lo;0;L;76F4;;;;N;;;;;
+FAA9;CJK COMPATIBILITY IDEOGRAPH-FAA9;Lo;0;L;774A;;;;N;;;;;
+FAAA;CJK COMPATIBILITY IDEOGRAPH-FAAA;Lo;0;L;7740;;;;N;;;;;
+FAAB;CJK COMPATIBILITY IDEOGRAPH-FAAB;Lo;0;L;78CC;;;;N;;;;;
+FAAC;CJK COMPATIBILITY IDEOGRAPH-FAAC;Lo;0;L;7AB1;;;;N;;;;;
+FAAD;CJK COMPATIBILITY IDEOGRAPH-FAAD;Lo;0;L;7BC0;;;;N;;;;;
+FAAE;CJK COMPATIBILITY IDEOGRAPH-FAAE;Lo;0;L;7C7B;;;;N;;;;;
+FAAF;CJK COMPATIBILITY IDEOGRAPH-FAAF;Lo;0;L;7D5B;;;;N;;;;;
+FAB0;CJK COMPATIBILITY IDEOGRAPH-FAB0;Lo;0;L;7DF4;;;;N;;;;;
+FAB1;CJK COMPATIBILITY IDEOGRAPH-FAB1;Lo;0;L;7F3E;;;;N;;;;;
+FAB2;CJK COMPATIBILITY IDEOGRAPH-FAB2;Lo;0;L;8005;;;;N;;;;;
+FAB3;CJK COMPATIBILITY IDEOGRAPH-FAB3;Lo;0;L;8352;;;;N;;;;;
+FAB4;CJK COMPATIBILITY IDEOGRAPH-FAB4;Lo;0;L;83EF;;;;N;;;;;
+FAB5;CJK COMPATIBILITY IDEOGRAPH-FAB5;Lo;0;L;8779;;;;N;;;;;
+FAB6;CJK COMPATIBILITY IDEOGRAPH-FAB6;Lo;0;L;8941;;;;N;;;;;
+FAB7;CJK COMPATIBILITY IDEOGRAPH-FAB7;Lo;0;L;8986;;;;N;;;;;
+FAB8;CJK COMPATIBILITY IDEOGRAPH-FAB8;Lo;0;L;8996;;;;N;;;;;
+FAB9;CJK COMPATIBILITY IDEOGRAPH-FAB9;Lo;0;L;8ABF;;;;N;;;;;
+FABA;CJK COMPATIBILITY IDEOGRAPH-FABA;Lo;0;L;8AF8;;;;N;;;;;
+FABB;CJK COMPATIBILITY IDEOGRAPH-FABB;Lo;0;L;8ACB;;;;N;;;;;
+FABC;CJK COMPATIBILITY IDEOGRAPH-FABC;Lo;0;L;8B01;;;;N;;;;;
+FABD;CJK COMPATIBILITY IDEOGRAPH-FABD;Lo;0;L;8AFE;;;;N;;;;;
+FABE;CJK COMPATIBILITY IDEOGRAPH-FABE;Lo;0;L;8AED;;;;N;;;;;
+FABF;CJK COMPATIBILITY IDEOGRAPH-FABF;Lo;0;L;8B39;;;;N;;;;;
+FAC0;CJK COMPATIBILITY IDEOGRAPH-FAC0;Lo;0;L;8B8A;;;;N;;;;;
+FAC1;CJK COMPATIBILITY IDEOGRAPH-FAC1;Lo;0;L;8D08;;;;N;;;;;
+FAC2;CJK COMPATIBILITY IDEOGRAPH-FAC2;Lo;0;L;8F38;;;;N;;;;;
+FAC3;CJK COMPATIBILITY IDEOGRAPH-FAC3;Lo;0;L;9072;;;;N;;;;;
+FAC4;CJK COMPATIBILITY IDEOGRAPH-FAC4;Lo;0;L;9199;;;;N;;;;;
+FAC5;CJK COMPATIBILITY IDEOGRAPH-FAC5;Lo;0;L;9276;;;;N;;;;;
+FAC6;CJK COMPATIBILITY IDEOGRAPH-FAC6;Lo;0;L;967C;;;;N;;;;;
+FAC7;CJK COMPATIBILITY IDEOGRAPH-FAC7;Lo;0;L;96E3;;;;N;;;;;
+FAC8;CJK COMPATIBILITY IDEOGRAPH-FAC8;Lo;0;L;9756;;;;N;;;;;
+FAC9;CJK COMPATIBILITY IDEOGRAPH-FAC9;Lo;0;L;97DB;;;;N;;;;;
+FACA;CJK COMPATIBILITY IDEOGRAPH-FACA;Lo;0;L;97FF;;;;N;;;;;
+FACB;CJK COMPATIBILITY IDEOGRAPH-FACB;Lo;0;L;980B;;;;N;;;;;
+FACC;CJK COMPATIBILITY IDEOGRAPH-FACC;Lo;0;L;983B;;;;N;;;;;
+FACD;CJK COMPATIBILITY IDEOGRAPH-FACD;Lo;0;L;9B12;;;;N;;;;;
+FACE;CJK COMPATIBILITY IDEOGRAPH-FACE;Lo;0;L;9F9C;;;;N;;;;;
+FACF;CJK COMPATIBILITY IDEOGRAPH-FACF;Lo;0;L;2284A;;;;N;;;;;
+FAD0;CJK COMPATIBILITY IDEOGRAPH-FAD0;Lo;0;L;22844;;;;N;;;;;
+FAD1;CJK COMPATIBILITY IDEOGRAPH-FAD1;Lo;0;L;233D5;;;;N;;;;;
+FAD2;CJK COMPATIBILITY IDEOGRAPH-FAD2;Lo;0;L;3B9D;;;;N;;;;;
+FAD3;CJK COMPATIBILITY IDEOGRAPH-FAD3;Lo;0;L;4018;;;;N;;;;;
+FAD4;CJK COMPATIBILITY IDEOGRAPH-FAD4;Lo;0;L;4039;;;;N;;;;;
+FAD5;CJK COMPATIBILITY IDEOGRAPH-FAD5;Lo;0;L;25249;;;;N;;;;;
+FAD6;CJK COMPATIBILITY IDEOGRAPH-FAD6;Lo;0;L;25CD0;;;;N;;;;;
+FAD7;CJK COMPATIBILITY IDEOGRAPH-FAD7;Lo;0;L;27ED3;;;;N;;;;;
+FAD8;CJK COMPATIBILITY IDEOGRAPH-FAD8;Lo;0;L;9F43;;;;N;;;;;
+FAD9;CJK COMPATIBILITY IDEOGRAPH-FAD9;Lo;0;L;9F8E;;;;N;;;;;
+FB00;LATIN SMALL LIGATURE FF;Ll;0;L;<compat> 0066 0066;;;;N;;;;;
+FB01;LATIN SMALL LIGATURE FI;Ll;0;L;<compat> 0066 0069;;;;N;;;;;
+FB02;LATIN SMALL LIGATURE FL;Ll;0;L;<compat> 0066 006C;;;;N;;;;;
+FB03;LATIN SMALL LIGATURE FFI;Ll;0;L;<compat> 0066 0066 0069;;;;N;;;;;
+FB04;LATIN SMALL LIGATURE FFL;Ll;0;L;<compat> 0066 0066 006C;;;;N;;;;;
+FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L;<compat> 017F 0074;;;;N;;;;;
+FB06;LATIN SMALL LIGATURE ST;Ll;0;L;<compat> 0073 0074;;;;N;;;;;
+FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L;<compat> 0574 0576;;;;N;;;;;
+FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L;<compat> 0574 0565;;;;N;;;;;
+FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L;<compat> 0574 056B;;;;N;;;;;
+FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L;<compat> 057E 0576;;;;N;;;;;
+FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L;<compat> 0574 056D;;;;N;;;;;
+FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;;
+FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;;
+FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;;
+FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R;<font> 05E2;;;;N;;;;;
+FB21;HEBREW LETTER WIDE ALEF;Lo;0;R;<font> 05D0;;;;N;;;;;
+FB22;HEBREW LETTER WIDE DALET;Lo;0;R;<font> 05D3;;;;N;;;;;
+FB23;HEBREW LETTER WIDE HE;Lo;0;R;<font> 05D4;;;;N;;;;;
+FB24;HEBREW LETTER WIDE KAF;Lo;0;R;<font> 05DB;;;;N;;;;;
+FB25;HEBREW LETTER WIDE LAMED;Lo;0;R;<font> 05DC;;;;N;;;;;
+FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R;<font> 05DD;;;;N;;;;;
+FB27;HEBREW LETTER WIDE RESH;Lo;0;R;<font> 05E8;;;;N;;;;;
+FB28;HEBREW LETTER WIDE TAV;Lo;0;R;<font> 05EA;;;;N;;;;;
+FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ES;<font> 002B;;;;N;;;;;
+FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;;
+FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;;
+FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;;
+FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;;
+FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;;
+FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;;
+FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;;
+FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;;
+FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;;
+FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;;
+FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;;
+FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;;
+FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;;
+FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;;
+FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;;
+FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;;
+FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;;
+FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;;
+FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;;
+FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;;
+FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;;
+FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;;
+FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;;
+FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;;
+FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;;
+FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;;
+FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;;
+FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;;
+FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;;
+FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;;
+FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;;
+FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;;
+FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R;<compat> 05D0 05DC;;;;N;;;;;
+FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;<isolated> 0671;;;;N;;;;;
+FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;<final> 0671;;;;N;;;;;
+FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;<isolated> 067B;;;;N;;;;;
+FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;<final> 067B;;;;N;;;;;
+FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;<initial> 067B;;;;N;;;;;
+FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;<medial> 067B;;;;N;;;;;
+FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;<isolated> 067E;;;;N;;;;;
+FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;<final> 067E;;;;N;;;;;
+FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;<initial> 067E;;;;N;;;;;
+FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;<medial> 067E;;;;N;;;;;
+FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0680;;;;N;;;;;
+FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;<final> 0680;;;;N;;;;;
+FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;<initial> 0680;;;;N;;;;;
+FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;<medial> 0680;;;;N;;;;;
+FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067A;;;;N;;;;;
+FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;<final> 067A;;;;N;;;;;
+FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;<initial> 067A;;;;N;;;;;
+FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;<medial> 067A;;;;N;;;;;
+FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067F;;;;N;;;;;
+FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;<final> 067F;;;;N;;;;;
+FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;<initial> 067F;;;;N;;;;;
+FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;<medial> 067F;;;;N;;;;;
+FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;<isolated> 0679;;;;N;;;;;
+FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;<final> 0679;;;;N;;;;;
+FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;<initial> 0679;;;;N;;;;;
+FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;<medial> 0679;;;;N;;;;;
+FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;<isolated> 06A4;;;;N;;;;;
+FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;<final> 06A4;;;;N;;;;;
+FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;<initial> 06A4;;;;N;;;;;
+FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;<medial> 06A4;;;;N;;;;;
+FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A6;;;;N;;;;;
+FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;<final> 06A6;;;;N;;;;;
+FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;<initial> 06A6;;;;N;;;;;
+FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A6;;;;N;;;;;
+FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;<isolated> 0684;;;;N;;;;;
+FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;<final> 0684;;;;N;;;;;
+FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;<initial> 0684;;;;N;;;;;
+FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;<medial> 0684;;;;N;;;;;
+FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;<isolated> 0683;;;;N;;;;;
+FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;<final> 0683;;;;N;;;;;
+FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;<initial> 0683;;;;N;;;;;
+FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;<medial> 0683;;;;N;;;;;
+FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;<isolated> 0686;;;;N;;;;;
+FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;<final> 0686;;;;N;;;;;
+FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;<initial> 0686;;;;N;;;;;
+FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;<medial> 0686;;;;N;;;;;
+FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0687;;;;N;;;;;
+FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;<final> 0687;;;;N;;;;;
+FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;<initial> 0687;;;;N;;;;;
+FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;<medial> 0687;;;;N;;;;;
+FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068D;;;;N;;;;;
+FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;<final> 068D;;;;N;;;;;
+FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068C;;;;N;;;;;
+FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;<final> 068C;;;;N;;;;;
+FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;<isolated> 068E;;;;N;;;;;
+FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;<final> 068E;;;;N;;;;;
+FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;<isolated> 0688;;;;N;;;;;
+FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;<final> 0688;;;;N;;;;;
+FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;<isolated> 0698;;;;N;;;;;
+FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;<final> 0698;;;;N;;;;;
+FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;<isolated> 0691;;;;N;;;;;
+FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;<final> 0691;;;;N;;;;;
+FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A9;;;;N;;;;;
+FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;<final> 06A9;;;;N;;;;;
+FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;<initial> 06A9;;;;N;;;;;
+FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A9;;;;N;;;;;
+FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;<isolated> 06AF;;;;N;;;;;
+FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;<final> 06AF;;;;N;;;;;
+FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;<initial> 06AF;;;;N;;;;;
+FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;<medial> 06AF;;;;N;;;;;
+FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;<isolated> 06B3;;;;N;;;;;
+FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;<final> 06B3;;;;N;;;;;
+FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;<initial> 06B3;;;;N;;;;;
+FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;<medial> 06B3;;;;N;;;;;
+FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;<isolated> 06B1;;;;N;;;;;
+FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;<final> 06B1;;;;N;;;;;
+FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;<initial> 06B1;;;;N;;;;;
+FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;<medial> 06B1;;;;N;;;;;
+FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;<isolated> 06BA;;;;N;;;;;
+FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;<final> 06BA;;;;N;;;;;
+FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;<isolated> 06BB;;;;N;;;;;
+FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;<final> 06BB;;;;N;;;;;
+FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;<initial> 06BB;;;;N;;;;;
+FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;<medial> 06BB;;;;N;;;;;
+FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06C0;;;;N;;;;;
+FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;<final> 06C0;;;;N;;;;;
+FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;<isolated> 06C1;;;;N;;;;;
+FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;<final> 06C1;;;;N;;;;;
+FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;<initial> 06C1;;;;N;;;;;
+FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;<medial> 06C1;;;;N;;;;;
+FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;<isolated> 06BE;;;;N;;;;;
+FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;<final> 06BE;;;;N;;;;;
+FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;<initial> 06BE;;;;N;;;;;
+FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;<medial> 06BE;;;;N;;;;;
+FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;<isolated> 06D2;;;;N;;;;;
+FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;<final> 06D2;;;;N;;;;;
+FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06D3;;;;N;;;;;
+FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 06D3;;;;N;;;;;
+FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;;
+FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;;
+FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;;
+FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;<medial> 06AD;;;;N;;;;;
+FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;<isolated> 06C7;;;;N;;;;;
+FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;<final> 06C7;;;;N;;;;;
+FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;<isolated> 06C6;;;;N;;;;;
+FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;<final> 06C6;;;;N;;;;;
+FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;<isolated> 06C8;;;;N;;;;;
+FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;<final> 06C8;;;;N;;;;;
+FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0677;;;;N;;;;;
+FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;<isolated> 06CB;;;;N;;;;;
+FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;<final> 06CB;;;;N;;;;;
+FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;<isolated> 06C5;;;;N;;;;;
+FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;<final> 06C5;;;;N;;;;;
+FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;<isolated> 06C9;;;;N;;;;;
+FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;<final> 06C9;;;;N;;;;;
+FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;<isolated> 06D0;;;;N;;;;;
+FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;<final> 06D0;;;;N;;;;;
+FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;<initial> 06D0;;;;N;;;;;
+FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;<medial> 06D0;;;;N;;;;;
+FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0649;;;;N;;;;;
+FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;<medial> 0649;;;;N;;;;;
+FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0626 0627;;;;N;;;;;
+FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;<final> 0626 0627;;;;N;;;;;
+FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D5;;;;N;;;;;
+FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;<final> 0626 06D5;;;;N;;;;;
+FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;<isolated> 0626 0648;;;;N;;;;;
+FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;<final> 0626 0648;;;;N;;;;;
+FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C7;;;;N;;;;;
+FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;<final> 0626 06C7;;;;N;;;;;
+FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C6;;;;N;;;;;
+FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;<final> 0626 06C6;;;;N;;;;;
+FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C8;;;;N;;;;;
+FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;<final> 0626 06C8;;;;N;;;;;
+FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D0;;;;N;;;;;
+FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;<final> 0626 06D0;;;;N;;;;;
+FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;<initial> 0626 06D0;;;;N;;;;;
+FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0626 0649;;;;N;;;;;
+FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;<isolated> 06CC;;;;N;;;;;
+FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;<final> 06CC;;;;N;;;;;
+FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;<initial> 06CC;;;;N;;;;;
+FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;<medial> 06CC;;;;N;;;;;
+FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 062C;;;;N;;;;;
+FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0626 062D;;;;N;;;;;
+FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 0645;;;;N;;;;;
+FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0626 064A;;;;N;;;;;
+FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 062C;;;;N;;;;;
+FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062D;;;;N;;;;;
+FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062E;;;;N;;;;;
+FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 0645;;;;N;;;;;
+FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0628 0649;;;;N;;;;;
+FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0628 064A;;;;N;;;;;
+FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 062C;;;;N;;;;;
+FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062D;;;;N;;;;;
+FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062E;;;;N;;;;;
+FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 0645;;;;N;;;;;
+FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062A 0649;;;;N;;;;;
+FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062A 064A;;;;N;;;;;
+FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 062C;;;;N;;;;;
+FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 0645;;;;N;;;;;
+FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062B 0649;;;;N;;;;;
+FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062B 064A;;;;N;;;;;
+FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062C 062D;;;;N;;;;;
+FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C 0645;;;;N;;;;;
+FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 062C;;;;N;;;;;
+FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 0645;;;;N;;;;;
+FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 062C;;;;N;;;;;
+FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062E 062D;;;;N;;;;;
+FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 0645;;;;N;;;;;
+FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 062C;;;;N;;;;;
+FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062D;;;;N;;;;;
+FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062E;;;;N;;;;;
+FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 0645;;;;N;;;;;
+FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0635 062D;;;;N;;;;;
+FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0645;;;;N;;;;;
+FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 062C;;;;N;;;;;
+FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062D;;;;N;;;;;
+FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062E;;;;N;;;;;
+FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 0645;;;;N;;;;;
+FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0637 062D;;;;N;;;;;
+FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0637 0645;;;;N;;;;;
+FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0638 0645;;;;N;;;;;
+FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 062C;;;;N;;;;;
+FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 0645;;;;N;;;;;
+FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 062C;;;;N;;;;;
+FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 0645;;;;N;;;;;
+FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 062C;;;;N;;;;;
+FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062D;;;;N;;;;;
+FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062E;;;;N;;;;;
+FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 0645;;;;N;;;;;
+FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0641 0649;;;;N;;;;;
+FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0641 064A;;;;N;;;;;
+FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0642 062D;;;;N;;;;;
+FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0642 0645;;;;N;;;;;
+FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0642 0649;;;;N;;;;;
+FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0642 064A;;;;N;;;;;
+FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0643 0627;;;;N;;;;;
+FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 062C;;;;N;;;;;
+FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062D;;;;N;;;;;
+FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062E;;;;N;;;;;
+FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0644;;;;N;;;;;
+FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0645;;;;N;;;;;
+FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0643 0649;;;;N;;;;;
+FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0643 064A;;;;N;;;;;
+FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 062C;;;;N;;;;;
+FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062D;;;;N;;;;;
+FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062E;;;;N;;;;;
+FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 0645;;;;N;;;;;
+FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0644 0649;;;;N;;;;;
+FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0644 064A;;;;N;;;;;
+FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 062C;;;;N;;;;;
+FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D;;;;N;;;;;
+FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062E;;;;N;;;;;
+FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 0645;;;;N;;;;;
+FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0645 0649;;;;N;;;;;
+FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0645 064A;;;;N;;;;;
+FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 062C;;;;N;;;;;
+FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062D;;;;N;;;;;
+FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062E;;;;N;;;;;
+FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 0645;;;;N;;;;;
+FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0646 0649;;;;N;;;;;
+FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0646 064A;;;;N;;;;;
+FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 062C;;;;N;;;;;
+FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 0645;;;;N;;;;;
+FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0647 0649;;;;N;;;;;
+FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0647 064A;;;;N;;;;;
+FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 062C;;;;N;;;;;
+FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062D;;;;N;;;;;
+FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062E;;;;N;;;;;
+FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 0645;;;;N;;;;;
+FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 064A 0649;;;;N;;;;;
+FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A 064A;;;;N;;;;;
+FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0630 0670;;;;N;;;;;
+FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0631 0670;;;;N;;;;;
+FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0649 0670;;;;N;;;;;
+FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C 0651;;;;N;;;;;
+FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D 0651;;;;N;;;;;
+FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E 0651;;;;N;;;;;
+FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F 0651;;;;N;;;;;
+FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650 0651;;;;N;;;;;
+FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651 0670;;;;N;;;;;
+FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;<final> 0626 0631;;;;N;;;;;
+FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0626 0632;;;;N;;;;;
+FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;<final> 0626 0645;;;;N;;;;;
+FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;<final> 0626 0646;;;;N;;;;;
+FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;<final> 0626 064A;;;;N;;;;;
+FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;<final> 0628 0631;;;;N;;;;;
+FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0628 0632;;;;N;;;;;
+FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0628 0645;;;;N;;;;;
+FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;<final> 0628 0646;;;;N;;;;;
+FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0628 0649;;;;N;;;;;
+FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 064A;;;;N;;;;;
+FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;<final> 062A 0631;;;;N;;;;;
+FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062A 0632;;;;N;;;;;
+FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062A 0645;;;;N;;;;;
+FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062A 0646;;;;N;;;;;
+FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0649;;;;N;;;;;
+FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 064A;;;;N;;;;;
+FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;<final> 062B 0631;;;;N;;;;;
+FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062B 0632;;;;N;;;;;
+FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062B 0645;;;;N;;;;;
+FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062B 0646;;;;N;;;;;
+FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062B 0649;;;;N;;;;;
+FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062B 064A;;;;N;;;;;
+FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0641 0649;;;;N;;;;;
+FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 064A;;;;N;;;;;
+FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0642 0649;;;;N;;;;;
+FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 064A;;;;N;;;;;
+FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;<final> 0643 0627;;;;N;;;;;
+FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;<final> 0643 0644;;;;N;;;;;
+FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645;;;;N;;;;;
+FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0643 0649;;;;N;;;;;
+FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 064A;;;;N;;;;;
+FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 0645;;;;N;;;;;
+FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 0649;;;;N;;;;;
+FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 064A;;;;N;;;;;
+FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0645 0627;;;;N;;;;;
+FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0645 0645;;;;N;;;;;
+FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;<final> 0646 0631;;;;N;;;;;
+FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0646 0632;;;;N;;;;;
+FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 0645;;;;N;;;;;
+FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;<final> 0646 0646;;;;N;;;;;
+FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0649;;;;N;;;;;
+FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 064A;;;;N;;;;;
+FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;<final> 0649 0670;;;;N;;;;;
+FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;<final> 064A 0631;;;;N;;;;;
+FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 064A 0632;;;;N;;;;;
+FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645;;;;N;;;;;
+FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;<final> 064A 0646;;;;N;;;;;
+FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 064A 0649;;;;N;;;;;
+FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 064A;;;;N;;;;;
+FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0626 062C;;;;N;;;;;
+FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0626 062D;;;;N;;;;;
+FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0626 062E;;;;N;;;;;
+FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0626 0645;;;;N;;;;;
+FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0626 0647;;;;N;;;;;
+FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0628 062C;;;;N;;;;;
+FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0628 062D;;;;N;;;;;
+FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0628 062E;;;;N;;;;;
+FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0628 0645;;;;N;;;;;
+FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0628 0647;;;;N;;;;;
+FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C;;;;N;;;;;
+FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 062D;;;;N;;;;;
+FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 062E;;;;N;;;;;
+FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645;;;;N;;;;;
+FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 062A 0647;;;;N;;;;;
+FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062B 0645;;;;N;;;;;
+FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 062D;;;;N;;;;;
+FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062C 0645;;;;N;;;;;
+FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062D 062C;;;;N;;;;;
+FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062D 0645;;;;N;;;;;
+FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062E 062C;;;;N;;;;;
+FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062E 0645;;;;N;;;;;
+FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062C;;;;N;;;;;
+FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062D;;;;N;;;;;
+FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0633 062E;;;;N;;;;;
+FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645;;;;N;;;;;
+FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D;;;;N;;;;;
+FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0635 062E;;;;N;;;;;
+FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645;;;;N;;;;;
+FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062C;;;;N;;;;;
+FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0636 062D;;;;N;;;;;
+FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0636 062E;;;;N;;;;;
+FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 0645;;;;N;;;;;
+FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 062D;;;;N;;;;;
+FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0638 0645;;;;N;;;;;
+FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C;;;;N;;;;;
+FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645;;;;N;;;;;
+FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 063A 062C;;;;N;;;;;
+FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 063A 0645;;;;N;;;;;
+FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062C;;;;N;;;;;
+FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0641 062D;;;;N;;;;;
+FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0641 062E;;;;N;;;;;
+FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 0645;;;;N;;;;;
+FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 062D;;;;N;;;;;
+FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0642 0645;;;;N;;;;;
+FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0643 062C;;;;N;;;;;
+FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0643 062D;;;;N;;;;;
+FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0643 062E;;;;N;;;;;
+FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;<initial> 0643 0644;;;;N;;;;;
+FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645;;;;N;;;;;
+FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C;;;;N;;;;;
+FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 062D;;;;N;;;;;
+FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0644 062E;;;;N;;;;;
+FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 0645;;;;N;;;;;
+FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0644 0647;;;;N;;;;;
+FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C;;;;N;;;;;
+FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062D;;;;N;;;;;
+FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062E;;;;N;;;;;
+FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 0645;;;;N;;;;;
+FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C;;;;N;;;;;
+FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062D;;;;N;;;;;
+FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0646 062E;;;;N;;;;;
+FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 0645;;;;N;;;;;
+FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0646 0647;;;;N;;;;;
+FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 062C;;;;N;;;;;
+FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645;;;;N;;;;;
+FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;<initial> 0647 0670;;;;N;;;;;
+FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 064A 062C;;;;N;;;;;
+FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 064A 062D;;;;N;;;;;
+FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 064A 062E;;;;N;;;;;
+FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645;;;;N;;;;;
+FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 064A 0647;;;;N;;;;;
+FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0626 0645;;;;N;;;;;
+FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0626 0647;;;;N;;;;;
+FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0628 0645;;;;N;;;;;
+FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0628 0647;;;;N;;;;;
+FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062A 0645;;;;N;;;;;
+FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062A 0647;;;;N;;;;;
+FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062B 0645;;;;N;;;;;
+FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062B 0647;;;;N;;;;;
+FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 0645;;;;N;;;;;
+FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0633 0647;;;;N;;;;;
+FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 0645;;;;N;;;;;
+FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0634 0647;;;;N;;;;;
+FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;<medial> 0643 0644;;;;N;;;;;
+FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0643 0645;;;;N;;;;;
+FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0644 0645;;;;N;;;;;
+FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0646 0645;;;;N;;;;;
+FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0646 0647;;;;N;;;;;
+FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 064A 0645;;;;N;;;;;
+FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 064A 0647;;;;N;;;;;
+FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E 0651;;;;N;;;;;
+FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F 0651;;;;N;;;;;
+FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650 0651;;;;N;;;;;
+FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0637 0649;;;;N;;;;;
+FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0637 064A;;;;N;;;;;
+FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0639 0649;;;;N;;;;;
+FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0639 064A;;;;N;;;;;
+FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 063A 0649;;;;N;;;;;
+FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 063A 064A;;;;N;;;;;
+FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0633 0649;;;;N;;;;;
+FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0633 064A;;;;N;;;;;
+FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0634 0649;;;;N;;;;;
+FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0634 064A;;;;N;;;;;
+FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062D 0649;;;;N;;;;;
+FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062D 064A;;;;N;;;;;
+FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062C 0649;;;;N;;;;;
+FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062C 064A;;;;N;;;;;
+FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062E 0649;;;;N;;;;;
+FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062E 064A;;;;N;;;;;
+FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0649;;;;N;;;;;
+FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0635 064A;;;;N;;;;;
+FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0636 0649;;;;N;;;;;
+FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0636 064A;;;;N;;;;;
+FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 062C;;;;N;;;;;
+FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062D;;;;N;;;;;
+FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062E;;;;N;;;;;
+FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 0645;;;;N;;;;;
+FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0634 0631;;;;N;;;;;
+FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0633 0631;;;;N;;;;;
+FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0635 0631;;;;N;;;;;
+FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0636 0631;;;;N;;;;;
+FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0637 0649;;;;N;;;;;
+FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 064A;;;;N;;;;;
+FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0649;;;;N;;;;;
+FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 064A;;;;N;;;;;
+FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0649;;;;N;;;;;
+FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 064A;;;;N;;;;;
+FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 0649;;;;N;;;;;
+FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 064A;;;;N;;;;;
+FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0634 0649;;;;N;;;;;
+FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 064A;;;;N;;;;;
+FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0649;;;;N;;;;;
+FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 064A;;;;N;;;;;
+FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0649;;;;N;;;;;
+FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 064A;;;;N;;;;;
+FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062E 0649;;;;N;;;;;
+FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062E 064A;;;;N;;;;;
+FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0635 0649;;;;N;;;;;
+FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 064A;;;;N;;;;;
+FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 0649;;;;N;;;;;
+FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 064A;;;;N;;;;;
+FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;<final> 0634 062C;;;;N;;;;;
+FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;<final> 0634 062D;;;;N;;;;;
+FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 062E;;;;N;;;;;
+FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645;;;;N;;;;;
+FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0634 0631;;;;N;;;;;
+FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0633 0631;;;;N;;;;;
+FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;<final> 0635 0631;;;;N;;;;;
+FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;<final> 0636 0631;;;;N;;;;;
+FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062C;;;;N;;;;;
+FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0634 062D;;;;N;;;;;
+FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 062E;;;;N;;;;;
+FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645;;;;N;;;;;
+FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0633 0647;;;;N;;;;;
+FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0634 0647;;;;N;;;;;
+FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645;;;;N;;;;;
+FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 062C;;;;N;;;;;
+FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062D;;;;N;;;;;
+FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062E;;;;N;;;;;
+FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 062C;;;;N;;;;;
+FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062D;;;;N;;;;;
+FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062E;;;;N;;;;;
+FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;;;;
+FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;;
+FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;;
+FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;
+FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
+FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
+FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;
+FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;
+FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;
+FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 0645;;;;N;;;;;
+FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062E 0645;;;;N;;;;;
+FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062C;;;;N;;;;;
+FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062D;;;;N;;;;;
+FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062E;;;;N;;;;;
+FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 062C 0645 062D;;;;N;;;;;
+FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 0645 062D;;;;N;;;;;
+FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 0645 064A;;;;N;;;;;
+FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0645 0649;;;;N;;;;;
+FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062D 062C;;;;N;;;;;
+FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062C 062D;;;;N;;;;;
+FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062C 0649;;;;N;;;;;
+FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0633 0645 062D;;;;N;;;;;
+FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062D;;;;N;;;;;
+FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062C;;;;N;;;;;
+FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0633 0645 0645;;;;N;;;;;
+FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 0645;;;;N;;;;;
+FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;<final> 0635 062D 062D;;;;N;;;;;
+FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D 062D;;;;N;;;;;
+FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0635 0645 0645;;;;N;;;;;
+FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 062D 0645;;;;N;;;;;
+FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062D 0645;;;;N;;;;;
+FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062C 064A;;;;N;;;;;
+FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 0645 062E;;;;N;;;;;
+FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 0645 062E;;;;N;;;;;
+FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645 0645;;;;N;;;;;
+FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645 0645;;;;N;;;;;
+FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 062D 0649;;;;N;;;;;
+FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0636 062E 0645;;;;N;;;;;
+FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062E 0645;;;;N;;;;;
+FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0637 0645 062D;;;;N;;;;;
+FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 0645 062D;;;;N;;;;;
+FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645 0645;;;;N;;;;;
+FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 0645 064A;;;;N;;;;;
+FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 062C 0645;;;;N;;;;;
+FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 0645 0645;;;;N;;;;;
+FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645 0645;;;;N;;;;;
+FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0645 0649;;;;N;;;;;
+FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 063A 0645 0645;;;;N;;;;;
+FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 0645 064A;;;;N;;;;;
+FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0645 0649;;;;N;;;;;
+FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0641 062E 0645;;;;N;;;;;
+FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062E 0645;;;;N;;;;;
+FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0642 0645 062D;;;;N;;;;;
+FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0642 0645 0645;;;;N;;;;;
+FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062D 0645;;;;N;;;;;
+FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062D 064A;;;;N;;;;;
+FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 062D 0649;;;;N;;;;;
+FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 062C;;;;N;;;;;
+FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 062C;;;;N;;;;;
+FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062E 0645;;;;N;;;;;
+FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062E 0645;;;;N;;;;;
+FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0644 0645 062D;;;;N;;;;;
+FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 0645 062D;;;;N;;;;;
+FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 062C;;;;N;;;;;
+FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 0645;;;;N;;;;;
+FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062D 064A;;;;N;;;;;
+FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062D;;;;N;;;;;
+FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C 0645;;;;N;;;;;
+FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 062C;;;;N;;;;;
+FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 0645;;;;N;;;;;
+FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062E;;;;N;;;;;
+FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 062C;;;;N;;;;;
+FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 0645;;;;N;;;;;
+FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062D 0645;;;;N;;;;;
+FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062D 0649;;;;N;;;;;
+FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 062C 0645;;;;N;;;;;
+FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C 0645;;;;N;;;;;
+FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062C 0649;;;;N;;;;;
+FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 0645 064A;;;;N;;;;;
+FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0645 0649;;;;N;;;;;
+FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645 0645;;;;N;;;;;
+FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645 0645;;;;N;;;;;
+FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062E 064A;;;;N;;;;;
+FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062C 064A;;;;N;;;;;
+FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062C 0649;;;;N;;;;;
+FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062E 064A;;;;N;;;;;
+FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062E 0649;;;;N;;;;;
+FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 0645 064A;;;;N;;;;;
+FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0645 0649;;;;N;;;;;
+FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 0645 064A;;;;N;;;;;
+FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 062D 0649;;;;N;;;;;
+FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0645 0649;;;;N;;;;;
+FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062E 0649;;;;N;;;;;
+FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 062D 064A;;;;N;;;;;
+FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062D 064A;;;;N;;;;;
+FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 062D 064A;;;;N;;;;;
+FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062C 064A;;;;N;;;;;
+FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 0645 064A;;;;N;;;;;
+FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062D 064A;;;;N;;;;;
+FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062C 064A;;;;N;;;;;
+FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 0645 064A;;;;N;;;;;
+FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 0645 064A;;;;N;;;;;
+FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 0645 064A;;;;N;;;;;
+FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062D 064A;;;;N;;;;;
+FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 0645 062D;;;;N;;;;;
+FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062D 0645;;;;N;;;;;
+FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 0645 064A;;;;N;;;;;
+FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 0645 064A;;;;N;;;;;
+FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062C 062D;;;;N;;;;;
+FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062E 064A;;;;N;;;;;
+FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 0645;;;;N;;;;;
+FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645 0645;;;;N;;;;;
+FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 0645;;;;N;;;;;
+FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0646 062C 062D;;;;N;;;;;
+FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 062D 064A;;;;N;;;;;
+FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 062C 064A;;;;N;;;;;
+FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062C 064A;;;;N;;;;;
+FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 0645 064A;;;;N;;;;;
+FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062D 064A;;;;N;;;;;
+FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645 0645;;;;N;;;;;
+FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C 0645;;;;N;;;;;
+FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;;
+FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;;
+FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;;
+FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;;
+FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;;
+FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;<isolated> 0627 0644 0644 0647;;;;N;;;;;
+FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;<isolated> 0627 0643 0628 0631;;;;N;;;;;
+FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D 0645 062F;;;;N;;;;;
+FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0639 0645;;;;N;;;;;
+FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;<isolated> 0631 0633 0648 0644;;;;N;;;;;
+FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;<isolated> 0639 0644 064A 0647;;;;N;;;;;
+FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;<isolated> 0648 0633 0644 0645;;;;N;;;;;
+FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0649;;;;N;;;;;
+FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;
+FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
+FDFC;RIAL SIGN;Sc;0;AL;<isolated> 0631 06CC 0627 0644;;;;N;;;;;
+FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;;
+FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;;
+FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;;
+FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;;
+FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;;
+FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;;
+FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;;
+FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;;
+FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;;
+FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;;
+FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;;
+FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;;
+FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;;
+FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;;
+FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;;
+FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;;
+FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;;
+FE10;PRESENTATION FORM FOR VERTICAL COMMA;Po;0;ON;<vertical> 002C;;;;N;;;;;
+FE11;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA;Po;0;ON;<vertical> 3001;;;;N;;;;;
+FE12;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP;Po;0;ON;<vertical> 3002;;;;N;;;;;
+FE13;PRESENTATION FORM FOR VERTICAL COLON;Po;0;ON;<vertical> 003A;;;;N;;;;;
+FE14;PRESENTATION FORM FOR VERTICAL SEMICOLON;Po;0;ON;<vertical> 003B;;;;N;;;;;
+FE15;PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK;Po;0;ON;<vertical> 0021;;;;N;;;;;
+FE16;PRESENTATION FORM FOR VERTICAL QUESTION MARK;Po;0;ON;<vertical> 003F;;;;N;;;;;
+FE17;PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;<vertical> 3016;;;;N;;;;;
+FE18;PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET;Pe;0;ON;<vertical> 3017;;;;N;;;;;
+FE19;PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS;Po;0;ON;<vertical> 2026;;;;N;;;;;
+FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
+FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
+FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
+FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;;
+FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;;
+FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;<vertical> 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;;
+FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;<vertical> 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;;
+FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;<vertical> 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;;
+FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;<vertical> 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;;
+FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<vertical> 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;;
+FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<vertical> 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;;
+FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;<vertical> 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;;
+FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;<vertical> 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;;
+FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;<vertical> 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;;
+FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;<vertical> 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;;
+FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;<vertical> 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;;
+FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;<vertical> 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;;
+FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;<vertical> 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;;
+FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;<vertical> 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;
+FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;<vertical> 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;
+FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;<vertical> 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;
+FE45;SESAME DOT;Po;0;ON;;;;;N;;;;;
+FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;;
+FE47;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET;Ps;0;ON;<vertical> 005B;;;;N;;;;;
+FE48;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET;Pe;0;ON;<vertical> 005D;;;;N;;;;;
+FE49;DASHED OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DASHED OVERSCORE;;;;
+FE4A;CENTRELINE OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;
+FE4B;WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING WAVY OVERSCORE;;;;
+FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;;
+FE4D;DASHED LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING DASHED UNDERSCORE;;;;
+FE4E;CENTRELINE LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;;
+FE4F;WAVY LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING WAVY UNDERSCORE;;;;
+FE50;SMALL COMMA;Po;0;CS;<small> 002C;;;;N;;;;;
+FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;<small> 3001;;;;N;;;;;
+FE52;SMALL FULL STOP;Po;0;CS;<small> 002E;;;;N;SMALL PERIOD;;;;
+FE54;SMALL SEMICOLON;Po;0;ON;<small> 003B;;;;N;;;;;
+FE55;SMALL COLON;Po;0;CS;<small> 003A;;;;N;;;;;
+FE56;SMALL QUESTION MARK;Po;0;ON;<small> 003F;;;;N;;;;;
+FE57;SMALL EXCLAMATION MARK;Po;0;ON;<small> 0021;;;;N;;;;;
+FE58;SMALL EM DASH;Pd;0;ON;<small> 2014;;;;N;;;;;
+FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;Y;SMALL OPENING PARENTHESIS;;;;
+FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;Y;SMALL CLOSING PARENTHESIS;;;;
+FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;Y;SMALL OPENING CURLY BRACKET;;;;
+FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;Y;SMALL CLOSING CURLY BRACKET;;;;
+FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;Y;SMALL OPENING TORTOISE SHELL BRACKET;;;;
+FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;Y;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
+FE5F;SMALL NUMBER SIGN;Po;0;ET;<small> 0023;;;;N;;;;;
+FE60;SMALL AMPERSAND;Po;0;ON;<small> 0026;;;;N;;;;;
+FE61;SMALL ASTERISK;Po;0;ON;<small> 002A;;;;N;;;;;
+FE62;SMALL PLUS SIGN;Sm;0;ES;<small> 002B;;;;N;;;;;
+FE63;SMALL HYPHEN-MINUS;Pd;0;ES;<small> 002D;;;;N;;;;;
+FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;Y;;;;;
+FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;Y;;;;;
+FE66;SMALL EQUALS SIGN;Sm;0;ON;<small> 003D;;;;N;;;;;
+FE68;SMALL REVERSE SOLIDUS;Po;0;ON;<small> 005C;;;;N;SMALL BACKSLASH;;;;
+FE69;SMALL DOLLAR SIGN;Sc;0;ET;<small> 0024;;;;N;;;;;
+FE6A;SMALL PERCENT SIGN;Po;0;ET;<small> 0025;;;;N;;;;;
+FE6B;SMALL COMMERCIAL AT;Po;0;ON;<small> 0040;;;;N;;;;;
+FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;
+FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;<medial> 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;
+FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;
+FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;;
+FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;
+FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;
+FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;
+FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;;
+FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;;
+FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650;;;;N;ARABIC SPACING KASRAH;;;;
+FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;;
+FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;;
+FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;<medial> 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;;
+FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;<isolated> 0020 0652;;;;N;ARABIC SPACING SUKUN;;;;
+FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;<medial> 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;;
+FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;<isolated> 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;;
+FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;;
+FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;;
+FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;;
+FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;;
+FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;;
+FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;;
+FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;;
+FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;;
+FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;;
+FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;;
+FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;<initial> 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;;
+FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;<medial> 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;;
+FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;;
+FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;<final> 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;;
+FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;<isolated> 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;;
+FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;<final> 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;;
+FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;<initial> 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;;
+FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;<medial> 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;;
+FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;<isolated> 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;;
+FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;<final> 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;;
+FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;<isolated> 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;;
+FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;<final> 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;;
+FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;<initial> 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;;
+FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;<medial> 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;;
+FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;<isolated> 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;;
+FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;<final> 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;;
+FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;<initial> 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;;
+FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;<medial> 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;;
+FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;;
+FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;<final> 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;;
+FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;<initial> 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;;
+FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;<medial> 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;;
+FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;<isolated> 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;;
+FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;<final> 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;;
+FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;<initial> 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;;
+FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;<medial> 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;;
+FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;;
+FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;<final> 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;;
+FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;<initial> 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;;
+FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;<medial> 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;;
+FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;<isolated> 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;;
+FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;<final> 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;;
+FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;<isolated> 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;;
+FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;<final> 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;;
+FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;<isolated> 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;;
+FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;<final> 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;;
+FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;<isolated> 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;;
+FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;<final> 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;;
+FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;<isolated> 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;;
+FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;<final> 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;;
+FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;<initial> 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;;
+FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;<medial> 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;;
+FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;<isolated> 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;;
+FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;<final> 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;;
+FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;<initial> 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;;
+FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;<medial> 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;;
+FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;<isolated> 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;;
+FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;<final> 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;;
+FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;<initial> 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;;
+FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;<medial> 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;;
+FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;<isolated> 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;;
+FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;<final> 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;;
+FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;<initial> 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;;
+FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;<medial> 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;;
+FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;<isolated> 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;;
+FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;<final> 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;;
+FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;<initial> 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;;
+FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;<medial> 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;;
+FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;<isolated> 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;;
+FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;<final> 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;;
+FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;<initial> 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;;
+FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;<medial> 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;;
+FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;<isolated> 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;;
+FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;<final> 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;;
+FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;<initial> 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;;
+FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;<medial> 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;;
+FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;<isolated> 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;;
+FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;<final> 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;;
+FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;<initial> 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;;
+FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;<medial> 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;;
+FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;<isolated> 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;;
+FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;<final> 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;;
+FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;<initial> 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;;
+FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;<medial> 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;;
+FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;<isolated> 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;;
+FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;<final> 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;;
+FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;<initial> 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;;
+FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;<medial> 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;;
+FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;<isolated> 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;;
+FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;<final> 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;;
+FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;<initial> 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;;
+FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;<medial> 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;;
+FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;<isolated> 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;;
+FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;<final> 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;;
+FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;<initial> 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;;
+FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;<medial> 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;;
+FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;;
+FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;<final> 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;;
+FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;<initial> 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;;
+FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;<medial> 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;;
+FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;<isolated> 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;;
+FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;<final> 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;;
+FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;<initial> 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;;
+FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;<medial> 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;;
+FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;<isolated> 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;;
+FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;<final> 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;;
+FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;<initial> 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;;
+FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;<medial> 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;;
+FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;<isolated> 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;;
+FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;<final> 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;;
+FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;;
+FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;;
+FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;;
+FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;<final> 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;;
+FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;<initial> 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;;
+FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;<medial> 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;;
+FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;;
+FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;;
+FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;;
+FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON;<wide> 0021;;;;N;;;;;
+FF02;FULLWIDTH QUOTATION MARK;Po;0;ON;<wide> 0022;;;;N;;;;;
+FF03;FULLWIDTH NUMBER SIGN;Po;0;ET;<wide> 0023;;;;N;;;;;
+FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET;<wide> 0024;;;;N;;;;;
+FF05;FULLWIDTH PERCENT SIGN;Po;0;ET;<wide> 0025;;;;N;;;;;
+FF06;FULLWIDTH AMPERSAND;Po;0;ON;<wide> 0026;;;;N;;;;;
+FF07;FULLWIDTH APOSTROPHE;Po;0;ON;<wide> 0027;;;;N;;;;;
+FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;;
+FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;;
+FF0A;FULLWIDTH ASTERISK;Po;0;ON;<wide> 002A;;;;N;;;;;
+FF0B;FULLWIDTH PLUS SIGN;Sm;0;ES;<wide> 002B;;;;N;;;;;
+FF0C;FULLWIDTH COMMA;Po;0;CS;<wide> 002C;;;;N;;;;;
+FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ES;<wide> 002D;;;;N;;;;;
+FF0E;FULLWIDTH FULL STOP;Po;0;CS;<wide> 002E;;;;N;FULLWIDTH PERIOD;;;;
+FF0F;FULLWIDTH SOLIDUS;Po;0;CS;<wide> 002F;;;;N;FULLWIDTH SLASH;;;;
+FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN;<wide> 0030;0;0;0;N;;;;;
+FF11;FULLWIDTH DIGIT ONE;Nd;0;EN;<wide> 0031;1;1;1;N;;;;;
+FF12;FULLWIDTH DIGIT TWO;Nd;0;EN;<wide> 0032;2;2;2;N;;;;;
+FF13;FULLWIDTH DIGIT THREE;Nd;0;EN;<wide> 0033;3;3;3;N;;;;;
+FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN;<wide> 0034;4;4;4;N;;;;;
+FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN;<wide> 0035;5;5;5;N;;;;;
+FF16;FULLWIDTH DIGIT SIX;Nd;0;EN;<wide> 0036;6;6;6;N;;;;;
+FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN;<wide> 0037;7;7;7;N;;;;;
+FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN;<wide> 0038;8;8;8;N;;;;;
+FF19;FULLWIDTH DIGIT NINE;Nd;0;EN;<wide> 0039;9;9;9;N;;;;;
+FF1A;FULLWIDTH COLON;Po;0;CS;<wide> 003A;;;;N;;;;;
+FF1B;FULLWIDTH SEMICOLON;Po;0;ON;<wide> 003B;;;;N;;;;;
+FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;Y;;;;;
+FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON;<wide> 003D;;;;N;;;;;
+FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;Y;;;;;
+FF1F;FULLWIDTH QUESTION MARK;Po;0;ON;<wide> 003F;;;;N;;;;;
+FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON;<wide> 0040;;;;N;;;;;
+FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L;<wide> 0041;;;;N;;;;FF41;
+FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L;<wide> 0042;;;;N;;;;FF42;
+FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L;<wide> 0043;;;;N;;;;FF43;
+FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L;<wide> 0044;;;;N;;;;FF44;
+FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L;<wide> 0045;;;;N;;;;FF45;
+FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L;<wide> 0046;;;;N;;;;FF46;
+FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L;<wide> 0047;;;;N;;;;FF47;
+FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L;<wide> 0048;;;;N;;;;FF48;
+FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L;<wide> 0049;;;;N;;;;FF49;
+FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L;<wide> 004A;;;;N;;;;FF4A;
+FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L;<wide> 004B;;;;N;;;;FF4B;
+FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L;<wide> 004C;;;;N;;;;FF4C;
+FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L;<wide> 004D;;;;N;;;;FF4D;
+FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L;<wide> 004E;;;;N;;;;FF4E;
+FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L;<wide> 004F;;;;N;;;;FF4F;
+FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L;<wide> 0050;;;;N;;;;FF50;
+FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L;<wide> 0051;;;;N;;;;FF51;
+FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L;<wide> 0052;;;;N;;;;FF52;
+FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L;<wide> 0053;;;;N;;;;FF53;
+FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L;<wide> 0054;;;;N;;;;FF54;
+FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L;<wide> 0055;;;;N;;;;FF55;
+FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L;<wide> 0056;;;;N;;;;FF56;
+FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L;<wide> 0057;;;;N;;;;FF57;
+FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L;<wide> 0058;;;;N;;;;FF58;
+FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L;<wide> 0059;;;;N;;;;FF59;
+FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L;<wide> 005A;;;;N;;;;FF5A;
+FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;;
+FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON;<wide> 005C;;;;N;FULLWIDTH BACKSLASH;;;;
+FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;;
+FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON;<wide> 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;;
+FF3F;FULLWIDTH LOW LINE;Pc;0;ON;<wide> 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;;
+FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON;<wide> 0060;;;;N;FULLWIDTH SPACING GRAVE;;;;
+FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L;<wide> 0061;;;;N;;;FF21;;FF21
+FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L;<wide> 0062;;;;N;;;FF22;;FF22
+FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L;<wide> 0063;;;;N;;;FF23;;FF23
+FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L;<wide> 0064;;;;N;;;FF24;;FF24
+FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L;<wide> 0065;;;;N;;;FF25;;FF25
+FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L;<wide> 0066;;;;N;;;FF26;;FF26
+FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L;<wide> 0067;;;;N;;;FF27;;FF27
+FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L;<wide> 0068;;;;N;;;FF28;;FF28
+FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L;<wide> 0069;;;;N;;;FF29;;FF29
+FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L;<wide> 006A;;;;N;;;FF2A;;FF2A
+FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L;<wide> 006B;;;;N;;;FF2B;;FF2B
+FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L;<wide> 006C;;;;N;;;FF2C;;FF2C
+FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L;<wide> 006D;;;;N;;;FF2D;;FF2D
+FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L;<wide> 006E;;;;N;;;FF2E;;FF2E
+FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L;<wide> 006F;;;;N;;;FF2F;;FF2F
+FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L;<wide> 0070;;;;N;;;FF30;;FF30
+FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L;<wide> 0071;;;;N;;;FF31;;FF31
+FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L;<wide> 0072;;;;N;;;FF32;;FF32
+FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L;<wide> 0073;;;;N;;;FF33;;FF33
+FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L;<wide> 0074;;;;N;;;FF34;;FF34
+FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L;<wide> 0075;;;;N;;;FF35;;FF35
+FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L;<wide> 0076;;;;N;;;FF36;;FF36
+FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L;<wide> 0077;;;;N;;;FF37;;FF37
+FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L;<wide> 0078;;;;N;;;FF38;;FF38
+FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L;<wide> 0079;;;;N;;;FF39;;FF39
+FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L;<wide> 007A;;;;N;;;FF3A;;FF3A
+FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;;
+FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON;<wide> 007C;;;;N;FULLWIDTH VERTICAL BAR;;;;
+FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;;
+FF5E;FULLWIDTH TILDE;Sm;0;ON;<wide> 007E;;;;N;FULLWIDTH SPACING TILDE;;;;
+FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON;<wide> 2985;;;;Y;;*;;;
+FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON;<wide> 2986;;;;Y;;*;;;
+FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON;<narrow> 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;;
+FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;;
+FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;;
+FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON;<narrow> 3001;;;;N;;;;;
+FF65;HALFWIDTH KATAKANA MIDDLE DOT;Po;0;ON;<narrow> 30FB;;;;N;;;;;
+FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L;<narrow> 30F2;;;;N;;;;;
+FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L;<narrow> 30A1;;;;N;;;;;
+FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L;<narrow> 30A3;;;;N;;;;;
+FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L;<narrow> 30A5;;;;N;;;;;
+FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L;<narrow> 30A7;;;;N;;;;;
+FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L;<narrow> 30A9;;;;N;;;;;
+FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L;<narrow> 30E3;;;;N;;;;;
+FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L;<narrow> 30E5;;;;N;;;;;
+FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L;<narrow> 30E7;;;;N;;;;;
+FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L;<narrow> 30C3;;;;N;;;;;
+FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;<narrow> 30FC;;;;N;;;;;
+FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L;<narrow> 30A2;;;;N;;;;;
+FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L;<narrow> 30A4;;;;N;;;;;
+FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L;<narrow> 30A6;;;;N;;;;;
+FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L;<narrow> 30A8;;;;N;;;;;
+FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L;<narrow> 30AA;;;;N;;;;;
+FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L;<narrow> 30AB;;;;N;;;;;
+FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L;<narrow> 30AD;;;;N;;;;;
+FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L;<narrow> 30AF;;;;N;;;;;
+FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L;<narrow> 30B1;;;;N;;;;;
+FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L;<narrow> 30B3;;;;N;;;;;
+FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L;<narrow> 30B5;;;;N;;;;;
+FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L;<narrow> 30B7;;;;N;;;;;
+FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L;<narrow> 30B9;;;;N;;;;;
+FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L;<narrow> 30BB;;;;N;;;;;
+FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L;<narrow> 30BD;;;;N;;;;;
+FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L;<narrow> 30BF;;;;N;;;;;
+FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L;<narrow> 30C1;;;;N;;;;;
+FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L;<narrow> 30C4;;;;N;;;;;
+FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L;<narrow> 30C6;;;;N;;;;;
+FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L;<narrow> 30C8;;;;N;;;;;
+FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L;<narrow> 30CA;;;;N;;;;;
+FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L;<narrow> 30CB;;;;N;;;;;
+FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L;<narrow> 30CC;;;;N;;;;;
+FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L;<narrow> 30CD;;;;N;;;;;
+FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L;<narrow> 30CE;;;;N;;;;;
+FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L;<narrow> 30CF;;;;N;;;;;
+FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L;<narrow> 30D2;;;;N;;;;;
+FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L;<narrow> 30D5;;;;N;;;;;
+FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L;<narrow> 30D8;;;;N;;;;;
+FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L;<narrow> 30DB;;;;N;;;;;
+FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L;<narrow> 30DE;;;;N;;;;;
+FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L;<narrow> 30DF;;;;N;;;;;
+FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L;<narrow> 30E0;;;;N;;;;;
+FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L;<narrow> 30E1;;;;N;;;;;
+FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L;<narrow> 30E2;;;;N;;;;;
+FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L;<narrow> 30E4;;;;N;;;;;
+FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L;<narrow> 30E6;;;;N;;;;;
+FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L;<narrow> 30E8;;;;N;;;;;
+FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L;<narrow> 30E9;;;;N;;;;;
+FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L;<narrow> 30EA;;;;N;;;;;
+FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L;<narrow> 30EB;;;;N;;;;;
+FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L;<narrow> 30EC;;;;N;;;;;
+FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L;<narrow> 30ED;;;;N;;;;;
+FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L;<narrow> 30EF;;;;N;;;;;
+FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L;<narrow> 30F3;;;;N;;;;;
+FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;halfwidth katakana-hiragana voiced sound mark;;;
+FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;halfwidth katakana-hiragana semi-voiced sound mark;;;
+FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L;<narrow> 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;;
+FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L;<narrow> 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;;
+FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L;<narrow> 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;;
+FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;;
+FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L;<narrow> 3134;;;;N;;;;;
+FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<narrow> 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;;
+FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<narrow> 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;;
+FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L;<narrow> 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;;
+FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L;<narrow> 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;;
+FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L;<narrow> 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;;
+FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<narrow> 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;;
+FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<narrow> 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;;
+FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<narrow> 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;;
+FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L;<narrow> 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;;
+FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<narrow> 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;;
+FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<narrow> 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;;
+FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<narrow> 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;;
+FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L;<narrow> 3141;;;;N;;;;;
+FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L;<narrow> 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;;
+FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L;<narrow> 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;;
+FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L;<narrow> 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;;
+FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L;<narrow> 3145;;;;N;;;;;
+FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L;<narrow> 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;;
+FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L;<narrow> 3147;;;;N;;;;;
+FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L;<narrow> 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;;
+FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L;<narrow> 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;;
+FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L;<narrow> 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;;
+FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L;<narrow> 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;;
+FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L;<narrow> 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;;
+FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L;<narrow> 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;;
+FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L;<narrow> 314E;;;;N;;;;;
+FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L;<narrow> 314F;;;;N;;;;;
+FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L;<narrow> 3150;;;;N;;;;;
+FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L;<narrow> 3151;;;;N;;;;;
+FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L;<narrow> 3152;;;;N;;;;;
+FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L;<narrow> 3153;;;;N;;;;;
+FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L;<narrow> 3154;;;;N;;;;;
+FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L;<narrow> 3155;;;;N;;;;;
+FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L;<narrow> 3156;;;;N;;;;;
+FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L;<narrow> 3157;;;;N;;;;;
+FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L;<narrow> 3158;;;;N;;;;;
+FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L;<narrow> 3159;;;;N;;;;;
+FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L;<narrow> 315A;;;;N;;;;;
+FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L;<narrow> 315B;;;;N;;;;;
+FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L;<narrow> 315C;;;;N;;;;;
+FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L;<narrow> 315D;;;;N;;;;;
+FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L;<narrow> 315E;;;;N;;;;;
+FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L;<narrow> 315F;;;;N;;;;;
+FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L;<narrow> 3160;;;;N;;;;;
+FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L;<narrow> 3161;;;;N;;;;;
+FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L;<narrow> 3162;;;;N;;;;;
+FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;;
+FFE0;FULLWIDTH CENT SIGN;Sc;0;ET;<wide> 00A2;;;;N;;;;;
+FFE1;FULLWIDTH POUND SIGN;Sc;0;ET;<wide> 00A3;;;;N;;;;;
+FFE2;FULLWIDTH NOT SIGN;Sm;0;ON;<wide> 00AC;;;;N;;;;;
+FFE3;FULLWIDTH MACRON;Sk;0;ON;<wide> 00AF;;;;N;FULLWIDTH SPACING MACRON;*;;;
+FFE4;FULLWIDTH BROKEN BAR;So;0;ON;<wide> 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;;
+FFE5;FULLWIDTH YEN SIGN;Sc;0;ET;<wide> 00A5;;;;N;;;;;
+FFE6;FULLWIDTH WON SIGN;Sc;0;ET;<wide> 20A9;;;;N;;;;;
+FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON;<narrow> 2502;;;;N;;;;;
+FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON;<narrow> 2190;;;;N;;;;;
+FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON;<narrow> 2191;;;;N;;;;;
+FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON;<narrow> 2192;;;;N;;;;;
+FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON;<narrow> 2193;;;;N;;;;;
+FFED;HALFWIDTH BLACK SQUARE;So;0;ON;<narrow> 25A0;;;;N;;;;;
+FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON;<narrow> 25CB;;;;N;;;;;
+FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;ON;;;;;N;;;;;
+FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;ON;;;;;N;;;;;
+FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;ON;;;;;N;;;;;
+FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+10000;LINEAR B SYLLABLE B008 A;Lo;0;L;;;;;N;;;;;
+10001;LINEAR B SYLLABLE B038 E;Lo;0;L;;;;;N;;;;;
+10002;LINEAR B SYLLABLE B028 I;Lo;0;L;;;;;N;;;;;
+10003;LINEAR B SYLLABLE B061 O;Lo;0;L;;;;;N;;;;;
+10004;LINEAR B SYLLABLE B010 U;Lo;0;L;;;;;N;;;;;
+10005;LINEAR B SYLLABLE B001 DA;Lo;0;L;;;;;N;;;;;
+10006;LINEAR B SYLLABLE B045 DE;Lo;0;L;;;;;N;;;;;
+10007;LINEAR B SYLLABLE B007 DI;Lo;0;L;;;;;N;;;;;
+10008;LINEAR B SYLLABLE B014 DO;Lo;0;L;;;;;N;;;;;
+10009;LINEAR B SYLLABLE B051 DU;Lo;0;L;;;;;N;;;;;
+1000A;LINEAR B SYLLABLE B057 JA;Lo;0;L;;;;;N;;;;;
+1000B;LINEAR B SYLLABLE B046 JE;Lo;0;L;;;;;N;;;;;
+1000D;LINEAR B SYLLABLE B036 JO;Lo;0;L;;;;;N;;;;;
+1000E;LINEAR B SYLLABLE B065 JU;Lo;0;L;;;;;N;;;;;
+1000F;LINEAR B SYLLABLE B077 KA;Lo;0;L;;;;;N;;;;;
+10010;LINEAR B SYLLABLE B044 KE;Lo;0;L;;;;;N;;;;;
+10011;LINEAR B SYLLABLE B067 KI;Lo;0;L;;;;;N;;;;;
+10012;LINEAR B SYLLABLE B070 KO;Lo;0;L;;;;;N;;;;;
+10013;LINEAR B SYLLABLE B081 KU;Lo;0;L;;;;;N;;;;;
+10014;LINEAR B SYLLABLE B080 MA;Lo;0;L;;;;;N;;;;;
+10015;LINEAR B SYLLABLE B013 ME;Lo;0;L;;;;;N;;;;;
+10016;LINEAR B SYLLABLE B073 MI;Lo;0;L;;;;;N;;;;;
+10017;LINEAR B SYLLABLE B015 MO;Lo;0;L;;;;;N;;;;;
+10018;LINEAR B SYLLABLE B023 MU;Lo;0;L;;;;;N;;;;;
+10019;LINEAR B SYLLABLE B006 NA;Lo;0;L;;;;;N;;;;;
+1001A;LINEAR B SYLLABLE B024 NE;Lo;0;L;;;;;N;;;;;
+1001B;LINEAR B SYLLABLE B030 NI;Lo;0;L;;;;;N;;;;;
+1001C;LINEAR B SYLLABLE B052 NO;Lo;0;L;;;;;N;;;;;
+1001D;LINEAR B SYLLABLE B055 NU;Lo;0;L;;;;;N;;;;;
+1001E;LINEAR B SYLLABLE B003 PA;Lo;0;L;;;;;N;;;;;
+1001F;LINEAR B SYLLABLE B072 PE;Lo;0;L;;;;;N;;;;;
+10020;LINEAR B SYLLABLE B039 PI;Lo;0;L;;;;;N;;;;;
+10021;LINEAR B SYLLABLE B011 PO;Lo;0;L;;;;;N;;;;;
+10022;LINEAR B SYLLABLE B050 PU;Lo;0;L;;;;;N;;;;;
+10023;LINEAR B SYLLABLE B016 QA;Lo;0;L;;;;;N;;;;;
+10024;LINEAR B SYLLABLE B078 QE;Lo;0;L;;;;;N;;;;;
+10025;LINEAR B SYLLABLE B021 QI;Lo;0;L;;;;;N;;;;;
+10026;LINEAR B SYLLABLE B032 QO;Lo;0;L;;;;;N;;;;;
+10028;LINEAR B SYLLABLE B060 RA;Lo;0;L;;;;;N;;;;;
+10029;LINEAR B SYLLABLE B027 RE;Lo;0;L;;;;;N;;;;;
+1002A;LINEAR B SYLLABLE B053 RI;Lo;0;L;;;;;N;;;;;
+1002B;LINEAR B SYLLABLE B002 RO;Lo;0;L;;;;;N;;;;;
+1002C;LINEAR B SYLLABLE B026 RU;Lo;0;L;;;;;N;;;;;
+1002D;LINEAR B SYLLABLE B031 SA;Lo;0;L;;;;;N;;;;;
+1002E;LINEAR B SYLLABLE B009 SE;Lo;0;L;;;;;N;;;;;
+1002F;LINEAR B SYLLABLE B041 SI;Lo;0;L;;;;;N;;;;;
+10030;LINEAR B SYLLABLE B012 SO;Lo;0;L;;;;;N;;;;;
+10031;LINEAR B SYLLABLE B058 SU;Lo;0;L;;;;;N;;;;;
+10032;LINEAR B SYLLABLE B059 TA;Lo;0;L;;;;;N;;;;;
+10033;LINEAR B SYLLABLE B004 TE;Lo;0;L;;;;;N;;;;;
+10034;LINEAR B SYLLABLE B037 TI;Lo;0;L;;;;;N;;;;;
+10035;LINEAR B SYLLABLE B005 TO;Lo;0;L;;;;;N;;;;;
+10036;LINEAR B SYLLABLE B069 TU;Lo;0;L;;;;;N;;;;;
+10037;LINEAR B SYLLABLE B054 WA;Lo;0;L;;;;;N;;;;;
+10038;LINEAR B SYLLABLE B075 WE;Lo;0;L;;;;;N;;;;;
+10039;LINEAR B SYLLABLE B040 WI;Lo;0;L;;;;;N;;;;;
+1003A;LINEAR B SYLLABLE B042 WO;Lo;0;L;;;;;N;;;;;
+1003C;LINEAR B SYLLABLE B017 ZA;Lo;0;L;;;;;N;;;;;
+1003D;LINEAR B SYLLABLE B074 ZE;Lo;0;L;;;;;N;;;;;
+1003F;LINEAR B SYLLABLE B020 ZO;Lo;0;L;;;;;N;;;;;
+10040;LINEAR B SYLLABLE B025 A2;Lo;0;L;;;;;N;;;;;
+10041;LINEAR B SYLLABLE B043 A3;Lo;0;L;;;;;N;;;;;
+10042;LINEAR B SYLLABLE B085 AU;Lo;0;L;;;;;N;;;;;
+10043;LINEAR B SYLLABLE B071 DWE;Lo;0;L;;;;;N;;;;;
+10044;LINEAR B SYLLABLE B090 DWO;Lo;0;L;;;;;N;;;;;
+10045;LINEAR B SYLLABLE B048 NWA;Lo;0;L;;;;;N;;;;;
+10046;LINEAR B SYLLABLE B029 PU2;Lo;0;L;;;;;N;;;;;
+10047;LINEAR B SYLLABLE B062 PTE;Lo;0;L;;;;;N;;;;;
+10048;LINEAR B SYLLABLE B076 RA2;Lo;0;L;;;;;N;;;;;
+10049;LINEAR B SYLLABLE B033 RA3;Lo;0;L;;;;;N;;;;;
+1004A;LINEAR B SYLLABLE B068 RO2;Lo;0;L;;;;;N;;;;;
+1004B;LINEAR B SYLLABLE B066 TA2;Lo;0;L;;;;;N;;;;;
+1004C;LINEAR B SYLLABLE B087 TWE;Lo;0;L;;;;;N;;;;;
+1004D;LINEAR B SYLLABLE B091 TWO;Lo;0;L;;;;;N;;;;;
+10050;LINEAR B SYMBOL B018;Lo;0;L;;;;;N;;;;;
+10051;LINEAR B SYMBOL B019;Lo;0;L;;;;;N;;;;;
+10052;LINEAR B SYMBOL B022;Lo;0;L;;;;;N;;;;;
+10053;LINEAR B SYMBOL B034;Lo;0;L;;;;;N;;;;;
+10054;LINEAR B SYMBOL B047;Lo;0;L;;;;;N;;;;;
+10055;LINEAR B SYMBOL B049;Lo;0;L;;;;;N;;;;;
+10056;LINEAR B SYMBOL B056;Lo;0;L;;;;;N;;;;;
+10057;LINEAR B SYMBOL B063;Lo;0;L;;;;;N;;;;;
+10058;LINEAR B SYMBOL B064;Lo;0;L;;;;;N;;;;;
+10059;LINEAR B SYMBOL B079;Lo;0;L;;;;;N;;;;;
+1005A;LINEAR B SYMBOL B082;Lo;0;L;;;;;N;;;;;
+1005B;LINEAR B SYMBOL B083;Lo;0;L;;;;;N;;;;;
+1005C;LINEAR B SYMBOL B086;Lo;0;L;;;;;N;;;;;
+1005D;LINEAR B SYMBOL B089;Lo;0;L;;;;;N;;;;;
+10080;LINEAR B IDEOGRAM B100 MAN;Lo;0;L;;;;;N;;;;;
+10081;LINEAR B IDEOGRAM B102 WOMAN;Lo;0;L;;;;;N;;;;;
+10082;LINEAR B IDEOGRAM B104 DEER;Lo;0;L;;;;;N;;;;;
+10083;LINEAR B IDEOGRAM B105 EQUID;Lo;0;L;;;;;N;;;;;
+10084;LINEAR B IDEOGRAM B105F MARE;Lo;0;L;;;;;N;;;;;
+10085;LINEAR B IDEOGRAM B105M STALLION;Lo;0;L;;;;;N;;;;;
+10086;LINEAR B IDEOGRAM B106F EWE;Lo;0;L;;;;;N;;;;;
+10087;LINEAR B IDEOGRAM B106M RAM;Lo;0;L;;;;;N;;;;;
+10088;LINEAR B IDEOGRAM B107F SHE-GOAT;Lo;0;L;;;;;N;;;;;
+10089;LINEAR B IDEOGRAM B107M HE-GOAT;Lo;0;L;;;;;N;;;;;
+1008A;LINEAR B IDEOGRAM B108F SOW;Lo;0;L;;;;;N;;;;;
+1008B;LINEAR B IDEOGRAM B108M BOAR;Lo;0;L;;;;;N;;;;;
+1008C;LINEAR B IDEOGRAM B109F COW;Lo;0;L;;;;;N;;;;;
+1008D;LINEAR B IDEOGRAM B109M BULL;Lo;0;L;;;;;N;;;;;
+1008E;LINEAR B IDEOGRAM B120 WHEAT;Lo;0;L;;;;;N;;;;;
+1008F;LINEAR B IDEOGRAM B121 BARLEY;Lo;0;L;;;;;N;;;;;
+10090;LINEAR B IDEOGRAM B122 OLIVE;Lo;0;L;;;;;N;;;;;
+10091;LINEAR B IDEOGRAM B123 SPICE;Lo;0;L;;;;;N;;;;;
+10092;LINEAR B IDEOGRAM B125 CYPERUS;Lo;0;L;;;;;N;;;;;
+10093;LINEAR B MONOGRAM B127 KAPO;Lo;0;L;;;;;N;;;;;
+10094;LINEAR B MONOGRAM B128 KANAKO;Lo;0;L;;;;;N;;;;;
+10095;LINEAR B IDEOGRAM B130 OIL;Lo;0;L;;;;;N;;;;;
+10096;LINEAR B IDEOGRAM B131 WINE;Lo;0;L;;;;;N;;;;;
+10097;LINEAR B IDEOGRAM B132;Lo;0;L;;;;;N;;;;;
+10098;LINEAR B MONOGRAM B133 AREPA;Lo;0;L;;;;;N;;;;;
+10099;LINEAR B MONOGRAM B135 MERI;Lo;0;L;;;;;N;;;;;
+1009A;LINEAR B IDEOGRAM B140 BRONZE;Lo;0;L;;;;;N;;;;;
+1009B;LINEAR B IDEOGRAM B141 GOLD;Lo;0;L;;;;;N;;;;;
+1009C;LINEAR B IDEOGRAM B142;Lo;0;L;;;;;N;;;;;
+1009D;LINEAR B IDEOGRAM B145 WOOL;Lo;0;L;;;;;N;;;;;
+1009E;LINEAR B IDEOGRAM B146;Lo;0;L;;;;;N;;;;;
+1009F;LINEAR B IDEOGRAM B150;Lo;0;L;;;;;N;;;;;
+100A0;LINEAR B IDEOGRAM B151 HORN;Lo;0;L;;;;;N;;;;;
+100A1;LINEAR B IDEOGRAM B152;Lo;0;L;;;;;N;;;;;
+100A2;LINEAR B IDEOGRAM B153;Lo;0;L;;;;;N;;;;;
+100A3;LINEAR B IDEOGRAM B154;Lo;0;L;;;;;N;;;;;
+100A4;LINEAR B MONOGRAM B156 TURO2;Lo;0;L;;;;;N;;;;;
+100A5;LINEAR B IDEOGRAM B157;Lo;0;L;;;;;N;;;;;
+100A6;LINEAR B IDEOGRAM B158;Lo;0;L;;;;;N;;;;;
+100A7;LINEAR B IDEOGRAM B159 CLOTH;Lo;0;L;;;;;N;;;;;
+100A8;LINEAR B IDEOGRAM B160;Lo;0;L;;;;;N;;;;;
+100A9;LINEAR B IDEOGRAM B161;Lo;0;L;;;;;N;;;;;
+100AA;LINEAR B IDEOGRAM B162 GARMENT;Lo;0;L;;;;;N;;;;;
+100AB;LINEAR B IDEOGRAM B163 ARMOUR;Lo;0;L;;;;;N;;;;;
+100AC;LINEAR B IDEOGRAM B164;Lo;0;L;;;;;N;;;;;
+100AD;LINEAR B IDEOGRAM B165;Lo;0;L;;;;;N;;;;;
+100AE;LINEAR B IDEOGRAM B166;Lo;0;L;;;;;N;;;;;
+100AF;LINEAR B IDEOGRAM B167;Lo;0;L;;;;;N;;;;;
+100B0;LINEAR B IDEOGRAM B168;Lo;0;L;;;;;N;;;;;
+100B1;LINEAR B IDEOGRAM B169;Lo;0;L;;;;;N;;;;;
+100B2;LINEAR B IDEOGRAM B170;Lo;0;L;;;;;N;;;;;
+100B3;LINEAR B IDEOGRAM B171;Lo;0;L;;;;;N;;;;;
+100B4;LINEAR B IDEOGRAM B172;Lo;0;L;;;;;N;;;;;
+100B5;LINEAR B IDEOGRAM B173 MONTH;Lo;0;L;;;;;N;;;;;
+100B6;LINEAR B IDEOGRAM B174;Lo;0;L;;;;;N;;;;;
+100B7;LINEAR B IDEOGRAM B176 TREE;Lo;0;L;;;;;N;;;;;
+100B8;LINEAR B IDEOGRAM B177;Lo;0;L;;;;;N;;;;;
+100B9;LINEAR B IDEOGRAM B178;Lo;0;L;;;;;N;;;;;
+100BA;LINEAR B IDEOGRAM B179;Lo;0;L;;;;;N;;;;;
+100BB;LINEAR B IDEOGRAM B180;Lo;0;L;;;;;N;;;;;
+100BC;LINEAR B IDEOGRAM B181;Lo;0;L;;;;;N;;;;;
+100BD;LINEAR B IDEOGRAM B182;Lo;0;L;;;;;N;;;;;
+100BE;LINEAR B IDEOGRAM B183;Lo;0;L;;;;;N;;;;;
+100BF;LINEAR B IDEOGRAM B184;Lo;0;L;;;;;N;;;;;
+100C0;LINEAR B IDEOGRAM B185;Lo;0;L;;;;;N;;;;;
+100C1;LINEAR B IDEOGRAM B189;Lo;0;L;;;;;N;;;;;
+100C2;LINEAR B IDEOGRAM B190;Lo;0;L;;;;;N;;;;;
+100C3;LINEAR B IDEOGRAM B191 HELMET;Lo;0;L;;;;;N;;;;;
+100C4;LINEAR B IDEOGRAM B220 FOOTSTOOL;Lo;0;L;;;;;N;;;;;
+100C5;LINEAR B IDEOGRAM B225 BATHTUB;Lo;0;L;;;;;N;;;;;
+100C6;LINEAR B IDEOGRAM B230 SPEAR;Lo;0;L;;;;;N;;;;;
+100C7;LINEAR B IDEOGRAM B231 ARROW;Lo;0;L;;;;;N;;;;;
+100C8;LINEAR B IDEOGRAM B232;Lo;0;L;;;;;N;;;;;
+100C9;LINEAR B IDEOGRAM B233 SWORD;Lo;0;L;;;;;N;;pug;;;
+100CA;LINEAR B IDEOGRAM B234;Lo;0;L;;;;;N;;;;;
+100CB;LINEAR B IDEOGRAM B236;Lo;0;L;;;;;N;;gup;;;
+100CC;LINEAR B IDEOGRAM B240 WHEELED CHARIOT;Lo;0;L;;;;;N;;;;;
+100CD;LINEAR B IDEOGRAM B241 CHARIOT;Lo;0;L;;;;;N;;;;;
+100CE;LINEAR B IDEOGRAM B242 CHARIOT FRAME;Lo;0;L;;;;;N;;;;;
+100CF;LINEAR B IDEOGRAM B243 WHEEL;Lo;0;L;;;;;N;;;;;
+100D0;LINEAR B IDEOGRAM B245;Lo;0;L;;;;;N;;;;;
+100D1;LINEAR B IDEOGRAM B246;Lo;0;L;;;;;N;;;;;
+100D2;LINEAR B MONOGRAM B247 DIPTE;Lo;0;L;;;;;N;;;;;
+100D3;LINEAR B IDEOGRAM B248;Lo;0;L;;;;;N;;;;;
+100D4;LINEAR B IDEOGRAM B249;Lo;0;L;;;;;N;;;;;
+100D5;LINEAR B IDEOGRAM B251;Lo;0;L;;;;;N;;;;;
+100D6;LINEAR B IDEOGRAM B252;Lo;0;L;;;;;N;;;;;
+100D7;LINEAR B IDEOGRAM B253;Lo;0;L;;;;;N;;;;;
+100D8;LINEAR B IDEOGRAM B254 DART;Lo;0;L;;;;;N;;;;;
+100D9;LINEAR B IDEOGRAM B255;Lo;0;L;;;;;N;;;;;
+100DA;LINEAR B IDEOGRAM B256;Lo;0;L;;;;;N;;;;;
+100DB;LINEAR B IDEOGRAM B257;Lo;0;L;;;;;N;;;;;
+100DC;LINEAR B IDEOGRAM B258;Lo;0;L;;;;;N;;;;;
+100DD;LINEAR B IDEOGRAM B259;Lo;0;L;;;;;N;;;;;
+100DE;LINEAR B IDEOGRAM VESSEL B155;Lo;0;L;;;;;N;;;;;
+100DF;LINEAR B IDEOGRAM VESSEL B200;Lo;0;L;;;;;N;;;;;
+100E0;LINEAR B IDEOGRAM VESSEL B201;Lo;0;L;;;;;N;;;;;
+100E1;LINEAR B IDEOGRAM VESSEL B202;Lo;0;L;;;;;N;;;;;
+100E2;LINEAR B IDEOGRAM VESSEL B203;Lo;0;L;;;;;N;;;;;
+100E3;LINEAR B IDEOGRAM VESSEL B204;Lo;0;L;;;;;N;;;;;
+100E4;LINEAR B IDEOGRAM VESSEL B205;Lo;0;L;;;;;N;;;;;
+100E5;LINEAR B IDEOGRAM VESSEL B206;Lo;0;L;;;;;N;;;;;
+100E6;LINEAR B IDEOGRAM VESSEL B207;Lo;0;L;;;;;N;;;;;
+100E7;LINEAR B IDEOGRAM VESSEL B208;Lo;0;L;;;;;N;;;;;
+100E8;LINEAR B IDEOGRAM VESSEL B209;Lo;0;L;;;;;N;;;;;
+100E9;LINEAR B IDEOGRAM VESSEL B210;Lo;0;L;;;;;N;;;;;
+100EA;LINEAR B IDEOGRAM VESSEL B211;Lo;0;L;;;;;N;;;;;
+100EB;LINEAR B IDEOGRAM VESSEL B212;Lo;0;L;;;;;N;;;;;
+100EC;LINEAR B IDEOGRAM VESSEL B213;Lo;0;L;;;;;N;;;;;
+100ED;LINEAR B IDEOGRAM VESSEL B214;Lo;0;L;;;;;N;;;;;
+100EE;LINEAR B IDEOGRAM VESSEL B215;Lo;0;L;;;;;N;;;;;
+100EF;LINEAR B IDEOGRAM VESSEL B216;Lo;0;L;;;;;N;;;;;
+100F0;LINEAR B IDEOGRAM VESSEL B217;Lo;0;L;;;;;N;;;;;
+100F1;LINEAR B IDEOGRAM VESSEL B218;Lo;0;L;;;;;N;;;;;
+100F2;LINEAR B IDEOGRAM VESSEL B219;Lo;0;L;;;;;N;;;;;
+100F3;LINEAR B IDEOGRAM VESSEL B221;Lo;0;L;;;;;N;;;;;
+100F4;LINEAR B IDEOGRAM VESSEL B222;Lo;0;L;;;;;N;;;;;
+100F5;LINEAR B IDEOGRAM VESSEL B226;Lo;0;L;;;;;N;;;;;
+100F6;LINEAR B IDEOGRAM VESSEL B227;Lo;0;L;;;;;N;;;;;
+100F7;LINEAR B IDEOGRAM VESSEL B228;Lo;0;L;;;;;N;;;;;
+100F8;LINEAR B IDEOGRAM VESSEL B229;Lo;0;L;;;;;N;;;;;
+100F9;LINEAR B IDEOGRAM VESSEL B250;Lo;0;L;;;;;N;;;;;
+100FA;LINEAR B IDEOGRAM VESSEL B305;Lo;0;L;;;;;N;;;;;
+10100;AEGEAN WORD SEPARATOR LINE;Po;0;L;;;;;N;;;;;
+10101;AEGEAN WORD SEPARATOR DOT;Po;0;ON;;;;;N;;;;;
+10102;AEGEAN CHECK MARK;So;0;L;;;;;N;;;;;
+10107;AEGEAN NUMBER ONE;No;0;L;;;;1;N;;;;;
+10108;AEGEAN NUMBER TWO;No;0;L;;;;2;N;;;;;
+10109;AEGEAN NUMBER THREE;No;0;L;;;;3;N;;;;;
+1010A;AEGEAN NUMBER FOUR;No;0;L;;;;4;N;;;;;
+1010B;AEGEAN NUMBER FIVE;No;0;L;;;;5;N;;;;;
+1010C;AEGEAN NUMBER SIX;No;0;L;;;;6;N;;;;;
+1010D;AEGEAN NUMBER SEVEN;No;0;L;;;;7;N;;;;;
+1010E;AEGEAN NUMBER EIGHT;No;0;L;;;;8;N;;;;;
+1010F;AEGEAN NUMBER NINE;No;0;L;;;;9;N;;;;;
+10110;AEGEAN NUMBER TEN;No;0;L;;;;10;N;;;;;
+10111;AEGEAN NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+10112;AEGEAN NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+10113;AEGEAN NUMBER FORTY;No;0;L;;;;40;N;;;;;
+10114;AEGEAN NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+10115;AEGEAN NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+10116;AEGEAN NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+10117;AEGEAN NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+10118;AEGEAN NUMBER NINETY;No;0;L;;;;90;N;;;;;
+10119;AEGEAN NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+1011A;AEGEAN NUMBER TWO HUNDRED;No;0;L;;;;200;N;;;;;
+1011B;AEGEAN NUMBER THREE HUNDRED;No;0;L;;;;300;N;;;;;
+1011C;AEGEAN NUMBER FOUR HUNDRED;No;0;L;;;;400;N;;;;;
+1011D;AEGEAN NUMBER FIVE HUNDRED;No;0;L;;;;500;N;;;;;
+1011E;AEGEAN NUMBER SIX HUNDRED;No;0;L;;;;600;N;;;;;
+1011F;AEGEAN NUMBER SEVEN HUNDRED;No;0;L;;;;700;N;;;;;
+10120;AEGEAN NUMBER EIGHT HUNDRED;No;0;L;;;;800;N;;;;;
+10121;AEGEAN NUMBER NINE HUNDRED;No;0;L;;;;900;N;;;;;
+10122;AEGEAN NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+10123;AEGEAN NUMBER TWO THOUSAND;No;0;L;;;;2000;N;;;;;
+10124;AEGEAN NUMBER THREE THOUSAND;No;0;L;;;;3000;N;;;;;
+10125;AEGEAN NUMBER FOUR THOUSAND;No;0;L;;;;4000;N;;;;;
+10126;AEGEAN NUMBER FIVE THOUSAND;No;0;L;;;;5000;N;;;;;
+10127;AEGEAN NUMBER SIX THOUSAND;No;0;L;;;;6000;N;;;;;
+10128;AEGEAN NUMBER SEVEN THOUSAND;No;0;L;;;;7000;N;;;;;
+10129;AEGEAN NUMBER EIGHT THOUSAND;No;0;L;;;;8000;N;;;;;
+1012A;AEGEAN NUMBER NINE THOUSAND;No;0;L;;;;9000;N;;;;;
+1012B;AEGEAN NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
+1012C;AEGEAN NUMBER TWENTY THOUSAND;No;0;L;;;;20000;N;;;;;
+1012D;AEGEAN NUMBER THIRTY THOUSAND;No;0;L;;;;30000;N;;;;;
+1012E;AEGEAN NUMBER FORTY THOUSAND;No;0;L;;;;40000;N;;;;;
+1012F;AEGEAN NUMBER FIFTY THOUSAND;No;0;L;;;;50000;N;;;;;
+10130;AEGEAN NUMBER SIXTY THOUSAND;No;0;L;;;;60000;N;;;;;
+10131;AEGEAN NUMBER SEVENTY THOUSAND;No;0;L;;;;70000;N;;;;;
+10132;AEGEAN NUMBER EIGHTY THOUSAND;No;0;L;;;;80000;N;;;;;
+10133;AEGEAN NUMBER NINETY THOUSAND;No;0;L;;;;90000;N;;;;;
+10137;AEGEAN WEIGHT BASE UNIT;So;0;L;;;;;N;;;;;
+10138;AEGEAN WEIGHT FIRST SUBUNIT;So;0;L;;;;;N;;;;;
+10139;AEGEAN WEIGHT SECOND SUBUNIT;So;0;L;;;;;N;;;;;
+1013A;AEGEAN WEIGHT THIRD SUBUNIT;So;0;L;;;;;N;;;;;
+1013B;AEGEAN WEIGHT FOURTH SUBUNIT;So;0;L;;;;;N;;;;;
+1013C;AEGEAN DRY MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;
+1013D;AEGEAN LIQUID MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;
+1013E;AEGEAN MEASURE SECOND SUBUNIT;So;0;L;;;;;N;;;;;
+1013F;AEGEAN MEASURE THIRD SUBUNIT;So;0;L;;;;;N;;;;;
+10140;GREEK ACROPHONIC ATTIC ONE QUARTER;Nl;0;ON;;;;1/4;N;;;;;
+10141;GREEK ACROPHONIC ATTIC ONE HALF;Nl;0;ON;;;;1/2;N;;;;;
+10142;GREEK ACROPHONIC ATTIC ONE DRACHMA;Nl;0;ON;;;;1;N;;;;;
+10143;GREEK ACROPHONIC ATTIC FIVE;Nl;0;ON;;;;5;N;;;;;
+10144;GREEK ACROPHONIC ATTIC FIFTY;Nl;0;ON;;;;50;N;;;;;
+10145;GREEK ACROPHONIC ATTIC FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+10146;GREEK ACROPHONIC ATTIC FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;
+10147;GREEK ACROPHONIC ATTIC FIFTY THOUSAND;Nl;0;ON;;;;50000;N;;;;;
+10148;GREEK ACROPHONIC ATTIC FIVE TALENTS;Nl;0;ON;;;;5;N;;;;;
+10149;GREEK ACROPHONIC ATTIC TEN TALENTS;Nl;0;ON;;;;10;N;;;;;
+1014A;GREEK ACROPHONIC ATTIC FIFTY TALENTS;Nl;0;ON;;;;50;N;;;;;
+1014B;GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS;Nl;0;ON;;;;100;N;;;;;
+1014C;GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS;Nl;0;ON;;;;500;N;;;;;
+1014D;GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS;Nl;0;ON;;;;1000;N;;;;;
+1014E;GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS;Nl;0;ON;;;;5000;N;;;;;
+1014F;GREEK ACROPHONIC ATTIC FIVE STATERS;Nl;0;ON;;;;5;N;;;;;
+10150;GREEK ACROPHONIC ATTIC TEN STATERS;Nl;0;ON;;;;10;N;;;;;
+10151;GREEK ACROPHONIC ATTIC FIFTY STATERS;Nl;0;ON;;;;50;N;;;;;
+10152;GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS;Nl;0;ON;;;;100;N;;;;;
+10153;GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS;Nl;0;ON;;;;500;N;;;;;
+10154;GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS;Nl;0;ON;;;;1000;N;;;;;
+10155;GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS;Nl;0;ON;;;;10000;N;;;;;
+10156;GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS;Nl;0;ON;;;;50000;N;;;;;
+10157;GREEK ACROPHONIC ATTIC TEN MNAS;Nl;0;ON;;;;10;N;;;;;
+10158;GREEK ACROPHONIC HERAEUM ONE PLETHRON;Nl;0;ON;;;;1;N;;;;;
+10159;GREEK ACROPHONIC THESPIAN ONE;Nl;0;ON;;;;1;N;;;;;
+1015A;GREEK ACROPHONIC HERMIONIAN ONE;Nl;0;ON;;;;1;N;;;;;
+1015B;GREEK ACROPHONIC EPIDAUREAN TWO;Nl;0;ON;;;;2;N;;;;;
+1015C;GREEK ACROPHONIC THESPIAN TWO;Nl;0;ON;;;;2;N;;;;;
+1015D;GREEK ACROPHONIC CYRENAIC TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;
+1015E;GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;
+1015F;GREEK ACROPHONIC TROEZENIAN FIVE;Nl;0;ON;;;;5;N;;;;;
+10160;GREEK ACROPHONIC TROEZENIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10161;GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM;Nl;0;ON;;;;10;N;;;;;
+10162;GREEK ACROPHONIC HERMIONIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10163;GREEK ACROPHONIC MESSENIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10164;GREEK ACROPHONIC THESPIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10165;GREEK ACROPHONIC THESPIAN THIRTY;Nl;0;ON;;;;30;N;;;;;
+10166;GREEK ACROPHONIC TROEZENIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
+10167;GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM;Nl;0;ON;;;;50;N;;;;;
+10168;GREEK ACROPHONIC HERMIONIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
+10169;GREEK ACROPHONIC THESPIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
+1016A;GREEK ACROPHONIC THESPIAN ONE HUNDRED;Nl;0;ON;;;;100;N;;;;;
+1016B;GREEK ACROPHONIC THESPIAN THREE HUNDRED;Nl;0;ON;;;;300;N;;;;;
+1016C;GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+1016D;GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+1016E;GREEK ACROPHONIC THESPIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+1016F;GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+10170;GREEK ACROPHONIC NAXIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+10171;GREEK ACROPHONIC THESPIAN ONE THOUSAND;Nl;0;ON;;;;1000;N;;;;;
+10172;GREEK ACROPHONIC THESPIAN FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;
+10173;GREEK ACROPHONIC DELPHIC FIVE MNAS;Nl;0;ON;;;;5;N;;;;;
+10174;GREEK ACROPHONIC STRATIAN FIFTY MNAS;Nl;0;ON;;;;50;N;;;;;
+10175;GREEK ONE HALF SIGN;No;0;ON;;;;1/2;N;;;;;
+10176;GREEK ONE HALF SIGN ALTERNATE FORM;No;0;ON;;;;1/2;N;;;;;
+10177;GREEK TWO THIRDS SIGN;No;0;ON;;;;2/3;N;;;;;
+10178;GREEK THREE QUARTERS SIGN;No;0;ON;;;;3/4;N;;;;;
+10179;GREEK YEAR SIGN;So;0;ON;;;;;N;;;;;
+1017A;GREEK TALENT SIGN;So;0;ON;;;;;N;;;;;
+1017B;GREEK DRACHMA SIGN;So;0;ON;;;;;N;;;;;
+1017C;GREEK OBOL SIGN;So;0;ON;;;;;N;;;;;
+1017D;GREEK TWO OBOLS SIGN;So;0;ON;;;;;N;;;;;
+1017E;GREEK THREE OBOLS SIGN;So;0;ON;;;;;N;;;;;
+1017F;GREEK FOUR OBOLS SIGN;So;0;ON;;;;;N;;;;;
+10180;GREEK FIVE OBOLS SIGN;So;0;ON;;;;;N;;;;;
+10181;GREEK METRETES SIGN;So;0;ON;;;;;N;;;;;
+10182;GREEK KYATHOS BASE SIGN;So;0;ON;;;;;N;;;;;
+10183;GREEK LITRA SIGN;So;0;ON;;;;;N;;;;;
+10184;GREEK OUNKIA SIGN;So;0;ON;;;;;N;;;;;
+10185;GREEK XESTES SIGN;So;0;ON;;;;;N;;;;;
+10186;GREEK ARTABE SIGN;So;0;ON;;;;;N;;;;;
+10187;GREEK AROURA SIGN;So;0;ON;;;;;N;;;;;
+10188;GREEK GRAMMA SIGN;So;0;ON;;;;;N;;;;;
+10189;GREEK TRYBLION BASE SIGN;So;0;ON;;;;;N;;;;;
+1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;;
+10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;;
+10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;;
+10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;;
+10303;OLD ITALIC LETTER DE;Lo;0;L;;;;;N;;;;;
+10304;OLD ITALIC LETTER E;Lo;0;L;;;;;N;;;;;
+10305;OLD ITALIC LETTER VE;Lo;0;L;;;;;N;;;;;
+10306;OLD ITALIC LETTER ZE;Lo;0;L;;;;;N;;;;;
+10307;OLD ITALIC LETTER HE;Lo;0;L;;;;;N;;;;;
+10308;OLD ITALIC LETTER THE;Lo;0;L;;;;;N;;;;;
+10309;OLD ITALIC LETTER I;Lo;0;L;;;;;N;;;;;
+1030A;OLD ITALIC LETTER KA;Lo;0;L;;;;;N;;;;;
+1030B;OLD ITALIC LETTER EL;Lo;0;L;;;;;N;;;;;
+1030C;OLD ITALIC LETTER EM;Lo;0;L;;;;;N;;;;;
+1030D;OLD ITALIC LETTER EN;Lo;0;L;;;;;N;;;;;
+1030E;OLD ITALIC LETTER ESH;Lo;0;L;;;;;N;;;;;
+1030F;OLD ITALIC LETTER O;Lo;0;L;;;;;N;;Faliscan;;;
+10310;OLD ITALIC LETTER PE;Lo;0;L;;;;;N;;;;;
+10311;OLD ITALIC LETTER SHE;Lo;0;L;;;;;N;;;;;
+10312;OLD ITALIC LETTER KU;Lo;0;L;;;;;N;;;;;
+10313;OLD ITALIC LETTER ER;Lo;0;L;;;;;N;;;;;
+10314;OLD ITALIC LETTER ES;Lo;0;L;;;;;N;;;;;
+10315;OLD ITALIC LETTER TE;Lo;0;L;;;;;N;;;;;
+10316;OLD ITALIC LETTER U;Lo;0;L;;;;;N;;;;;
+10317;OLD ITALIC LETTER EKS;Lo;0;L;;;;;N;;Faliscan;;;
+10318;OLD ITALIC LETTER PHE;Lo;0;L;;;;;N;;;;;
+10319;OLD ITALIC LETTER KHE;Lo;0;L;;;;;N;;;;;
+1031A;OLD ITALIC LETTER EF;Lo;0;L;;;;;N;;;;;
+1031B;OLD ITALIC LETTER ERS;Lo;0;L;;;;;N;;Umbrian;;;
+1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;Umbrian;;;
+1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;Oscan;;;
+1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;Oscan;;;
+10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;;
+10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;;
+10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;;
+10323;OLD ITALIC NUMERAL FIFTY;No;0;L;;;;50;N;;;;;
+10330;GOTHIC LETTER AHSA;Lo;0;L;;;;;N;;;;;
+10331;GOTHIC LETTER BAIRKAN;Lo;0;L;;;;;N;;;;;
+10332;GOTHIC LETTER GIBA;Lo;0;L;;;;;N;;;;;
+10333;GOTHIC LETTER DAGS;Lo;0;L;;;;;N;;;;;
+10334;GOTHIC LETTER AIHVUS;Lo;0;L;;;;;N;;;;;
+10335;GOTHIC LETTER QAIRTHRA;Lo;0;L;;;;;N;;;;;
+10336;GOTHIC LETTER IUJA;Lo;0;L;;;;;N;;;;;
+10337;GOTHIC LETTER HAGL;Lo;0;L;;;;;N;;;;;
+10338;GOTHIC LETTER THIUTH;Lo;0;L;;;;;N;;;;;
+10339;GOTHIC LETTER EIS;Lo;0;L;;;;;N;;;;;
+1033A;GOTHIC LETTER KUSMA;Lo;0;L;;;;;N;;;;;
+1033B;GOTHIC LETTER LAGUS;Lo;0;L;;;;;N;;;;;
+1033C;GOTHIC LETTER MANNA;Lo;0;L;;;;;N;;;;;
+1033D;GOTHIC LETTER NAUTHS;Lo;0;L;;;;;N;;;;;
+1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;;
+1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;;
+10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;;
+10341;GOTHIC LETTER NINETY;Nl;0;L;;;;90;N;;;;;
+10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;;
+10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;;
+10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;;
+10345;GOTHIC LETTER WINJA;Lo;0;L;;;;;N;;;;;
+10346;GOTHIC LETTER FAIHU;Lo;0;L;;;;;N;;;;;
+10347;GOTHIC LETTER IGGWS;Lo;0;L;;;;;N;;;;;
+10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;;
+10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;;
+1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;900;N;;;;;
+10380;UGARITIC LETTER ALPA;Lo;0;L;;;;;N;;;;;
+10381;UGARITIC LETTER BETA;Lo;0;L;;;;;N;;;;;
+10382;UGARITIC LETTER GAMLA;Lo;0;L;;;;;N;;;;;
+10383;UGARITIC LETTER KHA;Lo;0;L;;;;;N;;;;;
+10384;UGARITIC LETTER DELTA;Lo;0;L;;;;;N;;;;;
+10385;UGARITIC LETTER HO;Lo;0;L;;;;;N;;;;;
+10386;UGARITIC LETTER WO;Lo;0;L;;;;;N;;;;;
+10387;UGARITIC LETTER ZETA;Lo;0;L;;;;;N;;;;;
+10388;UGARITIC LETTER HOTA;Lo;0;L;;;;;N;;;;;
+10389;UGARITIC LETTER TET;Lo;0;L;;;;;N;;;;;
+1038A;UGARITIC LETTER YOD;Lo;0;L;;;;;N;;;;;
+1038B;UGARITIC LETTER KAF;Lo;0;L;;;;;N;;;;;
+1038C;UGARITIC LETTER SHIN;Lo;0;L;;;;;N;;;;;
+1038D;UGARITIC LETTER LAMDA;Lo;0;L;;;;;N;;;;;
+1038E;UGARITIC LETTER MEM;Lo;0;L;;;;;N;;;;;
+1038F;UGARITIC LETTER DHAL;Lo;0;L;;;;;N;;;;;
+10390;UGARITIC LETTER NUN;Lo;0;L;;;;;N;;;;;
+10391;UGARITIC LETTER ZU;Lo;0;L;;;;;N;;;;;
+10392;UGARITIC LETTER SAMKA;Lo;0;L;;;;;N;;;;;
+10393;UGARITIC LETTER AIN;Lo;0;L;;;;;N;;;;;
+10394;UGARITIC LETTER PU;Lo;0;L;;;;;N;;;;;
+10395;UGARITIC LETTER SADE;Lo;0;L;;;;;N;;;;;
+10396;UGARITIC LETTER QOPA;Lo;0;L;;;;;N;;;;;
+10397;UGARITIC LETTER RASHA;Lo;0;L;;;;;N;;;;;
+10398;UGARITIC LETTER THANNA;Lo;0;L;;;;;N;;;;;
+10399;UGARITIC LETTER GHAIN;Lo;0;L;;;;;N;;;;;
+1039A;UGARITIC LETTER TO;Lo;0;L;;;;;N;;;;;
+1039B;UGARITIC LETTER I;Lo;0;L;;;;;N;;;;;
+1039C;UGARITIC LETTER U;Lo;0;L;;;;;N;;;;;
+1039D;UGARITIC LETTER SSU;Lo;0;L;;;;;N;;;;;
+1039F;UGARITIC WORD DIVIDER;Po;0;L;;;;;N;;;;;
+103A0;OLD PERSIAN SIGN A;Lo;0;L;;;;;N;;;;;
+103A1;OLD PERSIAN SIGN I;Lo;0;L;;;;;N;;;;;
+103A2;OLD PERSIAN SIGN U;Lo;0;L;;;;;N;;;;;
+103A3;OLD PERSIAN SIGN KA;Lo;0;L;;;;;N;;;;;
+103A4;OLD PERSIAN SIGN KU;Lo;0;L;;;;;N;;;;;
+103A5;OLD PERSIAN SIGN GA;Lo;0;L;;;;;N;;;;;
+103A6;OLD PERSIAN SIGN GU;Lo;0;L;;;;;N;;;;;
+103A7;OLD PERSIAN SIGN XA;Lo;0;L;;;;;N;;;;;
+103A8;OLD PERSIAN SIGN CA;Lo;0;L;;;;;N;;;;;
+103A9;OLD PERSIAN SIGN JA;Lo;0;L;;;;;N;;;;;
+103AA;OLD PERSIAN SIGN JI;Lo;0;L;;;;;N;;;;;
+103AB;OLD PERSIAN SIGN TA;Lo;0;L;;;;;N;;;;;
+103AC;OLD PERSIAN SIGN TU;Lo;0;L;;;;;N;;;;;
+103AD;OLD PERSIAN SIGN DA;Lo;0;L;;;;;N;;;;;
+103AE;OLD PERSIAN SIGN DI;Lo;0;L;;;;;N;;;;;
+103AF;OLD PERSIAN SIGN DU;Lo;0;L;;;;;N;;;;;
+103B0;OLD PERSIAN SIGN THA;Lo;0;L;;;;;N;;;;;
+103B1;OLD PERSIAN SIGN PA;Lo;0;L;;;;;N;;;;;
+103B2;OLD PERSIAN SIGN BA;Lo;0;L;;;;;N;;;;;
+103B3;OLD PERSIAN SIGN FA;Lo;0;L;;;;;N;;;;;
+103B4;OLD PERSIAN SIGN NA;Lo;0;L;;;;;N;;;;;
+103B5;OLD PERSIAN SIGN NU;Lo;0;L;;;;;N;;;;;
+103B6;OLD PERSIAN SIGN MA;Lo;0;L;;;;;N;;;;;
+103B7;OLD PERSIAN SIGN MI;Lo;0;L;;;;;N;;;;;
+103B8;OLD PERSIAN SIGN MU;Lo;0;L;;;;;N;;;;;
+103B9;OLD PERSIAN SIGN YA;Lo;0;L;;;;;N;;;;;
+103BA;OLD PERSIAN SIGN VA;Lo;0;L;;;;;N;;;;;
+103BB;OLD PERSIAN SIGN VI;Lo;0;L;;;;;N;;;;;
+103BC;OLD PERSIAN SIGN RA;Lo;0;L;;;;;N;;;;;
+103BD;OLD PERSIAN SIGN RU;Lo;0;L;;;;;N;;;;;
+103BE;OLD PERSIAN SIGN LA;Lo;0;L;;;;;N;;;;;
+103BF;OLD PERSIAN SIGN SA;Lo;0;L;;;;;N;;;;;
+103C0;OLD PERSIAN SIGN ZA;Lo;0;L;;;;;N;;;;;
+103C1;OLD PERSIAN SIGN SHA;Lo;0;L;;;;;N;;;;;
+103C2;OLD PERSIAN SIGN SSA;Lo;0;L;;;;;N;;;;;
+103C3;OLD PERSIAN SIGN HA;Lo;0;L;;;;;N;;;;;
+103C8;OLD PERSIAN SIGN AURAMAZDAA;Lo;0;L;;;;;N;;;;;
+103C9;OLD PERSIAN SIGN AURAMAZDAA-2;Lo;0;L;;;;;N;;;;;
+103CA;OLD PERSIAN SIGN AURAMAZDAAHA;Lo;0;L;;;;;N;;;;;
+103CB;OLD PERSIAN SIGN XSHAAYATHIYA;Lo;0;L;;;;;N;;;;;
+103CC;OLD PERSIAN SIGN DAHYAAUSH;Lo;0;L;;;;;N;;;;;
+103CD;OLD PERSIAN SIGN DAHYAAUSH-2;Lo;0;L;;;;;N;;;;;
+103CE;OLD PERSIAN SIGN BAGA;Lo;0;L;;;;;N;;;;;
+103CF;OLD PERSIAN SIGN BUUMISH;Lo;0;L;;;;;N;;;;;
+103D0;OLD PERSIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
+103D1;OLD PERSIAN NUMBER ONE;Nl;0;L;;;;1;N;;;;;
+103D2;OLD PERSIAN NUMBER TWO;Nl;0;L;;;;2;N;;;;;
+103D3;OLD PERSIAN NUMBER TEN;Nl;0;L;;;;10;N;;;;;
+103D4;OLD PERSIAN NUMBER TWENTY;Nl;0;L;;;;20;N;;;;;
+103D5;OLD PERSIAN NUMBER HUNDRED;Nl;0;L;;;;100;N;;;;;
+10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428;
+10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429;
+10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A;
+10403;DESERET CAPITAL LETTER LONG AH;Lu;0;L;;;;;N;;;;1042B;
+10404;DESERET CAPITAL LETTER LONG O;Lu;0;L;;;;;N;;;;1042C;
+10405;DESERET CAPITAL LETTER LONG OO;Lu;0;L;;;;;N;;;;1042D;
+10406;DESERET CAPITAL LETTER SHORT I;Lu;0;L;;;;;N;;;;1042E;
+10407;DESERET CAPITAL LETTER SHORT E;Lu;0;L;;;;;N;;;;1042F;
+10408;DESERET CAPITAL LETTER SHORT A;Lu;0;L;;;;;N;;;;10430;
+10409;DESERET CAPITAL LETTER SHORT AH;Lu;0;L;;;;;N;;;;10431;
+1040A;DESERET CAPITAL LETTER SHORT O;Lu;0;L;;;;;N;;;;10432;
+1040B;DESERET CAPITAL LETTER SHORT OO;Lu;0;L;;;;;N;;;;10433;
+1040C;DESERET CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;10434;
+1040D;DESERET CAPITAL LETTER OW;Lu;0;L;;;;;N;;;;10435;
+1040E;DESERET CAPITAL LETTER WU;Lu;0;L;;;;;N;;;;10436;
+1040F;DESERET CAPITAL LETTER YEE;Lu;0;L;;;;;N;;;;10437;
+10410;DESERET CAPITAL LETTER H;Lu;0;L;;;;;N;;;;10438;
+10411;DESERET CAPITAL LETTER PEE;Lu;0;L;;;;;N;;;;10439;
+10412;DESERET CAPITAL LETTER BEE;Lu;0;L;;;;;N;;;;1043A;
+10413;DESERET CAPITAL LETTER TEE;Lu;0;L;;;;;N;;;;1043B;
+10414;DESERET CAPITAL LETTER DEE;Lu;0;L;;;;;N;;;;1043C;
+10415;DESERET CAPITAL LETTER CHEE;Lu;0;L;;;;;N;;;;1043D;
+10416;DESERET CAPITAL LETTER JEE;Lu;0;L;;;;;N;;;;1043E;
+10417;DESERET CAPITAL LETTER KAY;Lu;0;L;;;;;N;;;;1043F;
+10418;DESERET CAPITAL LETTER GAY;Lu;0;L;;;;;N;;;;10440;
+10419;DESERET CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;10441;
+1041A;DESERET CAPITAL LETTER VEE;Lu;0;L;;;;;N;;;;10442;
+1041B;DESERET CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;10443;
+1041C;DESERET CAPITAL LETTER THEE;Lu;0;L;;;;;N;;;;10444;
+1041D;DESERET CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;10445;
+1041E;DESERET CAPITAL LETTER ZEE;Lu;0;L;;;;;N;;;;10446;
+1041F;DESERET CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;10447;
+10420;DESERET CAPITAL LETTER ZHEE;Lu;0;L;;;;;N;;;;10448;
+10421;DESERET CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;10449;
+10422;DESERET CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;1044A;
+10423;DESERET CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;1044B;
+10424;DESERET CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;1044C;
+10425;DESERET CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;1044D;
+10426;DESERET CAPITAL LETTER OI;Lu;0;L;;;;;N;;;;1044E;
+10427;DESERET CAPITAL LETTER EW;Lu;0;L;;;;;N;;;;1044F;
+10428;DESERET SMALL LETTER LONG I;Ll;0;L;;;;;N;;;10400;;10400
+10429;DESERET SMALL LETTER LONG E;Ll;0;L;;;;;N;;;10401;;10401
+1042A;DESERET SMALL LETTER LONG A;Ll;0;L;;;;;N;;;10402;;10402
+1042B;DESERET SMALL LETTER LONG AH;Ll;0;L;;;;;N;;;10403;;10403
+1042C;DESERET SMALL LETTER LONG O;Ll;0;L;;;;;N;;;10404;;10404
+1042D;DESERET SMALL LETTER LONG OO;Ll;0;L;;;;;N;;;10405;;10405
+1042E;DESERET SMALL LETTER SHORT I;Ll;0;L;;;;;N;;;10406;;10406
+1042F;DESERET SMALL LETTER SHORT E;Ll;0;L;;;;;N;;;10407;;10407
+10430;DESERET SMALL LETTER SHORT A;Ll;0;L;;;;;N;;;10408;;10408
+10431;DESERET SMALL LETTER SHORT AH;Ll;0;L;;;;;N;;;10409;;10409
+10432;DESERET SMALL LETTER SHORT O;Ll;0;L;;;;;N;;;1040A;;1040A
+10433;DESERET SMALL LETTER SHORT OO;Ll;0;L;;;;;N;;;1040B;;1040B
+10434;DESERET SMALL LETTER AY;Ll;0;L;;;;;N;;;1040C;;1040C
+10435;DESERET SMALL LETTER OW;Ll;0;L;;;;;N;;;1040D;;1040D
+10436;DESERET SMALL LETTER WU;Ll;0;L;;;;;N;;;1040E;;1040E
+10437;DESERET SMALL LETTER YEE;Ll;0;L;;;;;N;;;1040F;;1040F
+10438;DESERET SMALL LETTER H;Ll;0;L;;;;;N;;;10410;;10410
+10439;DESERET SMALL LETTER PEE;Ll;0;L;;;;;N;;;10411;;10411
+1043A;DESERET SMALL LETTER BEE;Ll;0;L;;;;;N;;;10412;;10412
+1043B;DESERET SMALL LETTER TEE;Ll;0;L;;;;;N;;;10413;;10413
+1043C;DESERET SMALL LETTER DEE;Ll;0;L;;;;;N;;;10414;;10414
+1043D;DESERET SMALL LETTER CHEE;Ll;0;L;;;;;N;;;10415;;10415
+1043E;DESERET SMALL LETTER JEE;Ll;0;L;;;;;N;;;10416;;10416
+1043F;DESERET SMALL LETTER KAY;Ll;0;L;;;;;N;;;10417;;10417
+10440;DESERET SMALL LETTER GAY;Ll;0;L;;;;;N;;;10418;;10418
+10441;DESERET SMALL LETTER EF;Ll;0;L;;;;;N;;;10419;;10419
+10442;DESERET SMALL LETTER VEE;Ll;0;L;;;;;N;;;1041A;;1041A
+10443;DESERET SMALL LETTER ETH;Ll;0;L;;;;;N;;;1041B;;1041B
+10444;DESERET SMALL LETTER THEE;Ll;0;L;;;;;N;;;1041C;;1041C
+10445;DESERET SMALL LETTER ES;Ll;0;L;;;;;N;;;1041D;;1041D
+10446;DESERET SMALL LETTER ZEE;Ll;0;L;;;;;N;;;1041E;;1041E
+10447;DESERET SMALL LETTER ESH;Ll;0;L;;;;;N;;;1041F;;1041F
+10448;DESERET SMALL LETTER ZHEE;Ll;0;L;;;;;N;;;10420;;10420
+10449;DESERET SMALL LETTER ER;Ll;0;L;;;;;N;;;10421;;10421
+1044A;DESERET SMALL LETTER EL;Ll;0;L;;;;;N;;;10422;;10422
+1044B;DESERET SMALL LETTER EM;Ll;0;L;;;;;N;;;10423;;10423
+1044C;DESERET SMALL LETTER EN;Ll;0;L;;;;;N;;;10424;;10424
+1044D;DESERET SMALL LETTER ENG;Ll;0;L;;;;;N;;;10425;;10425
+1044E;DESERET SMALL LETTER OI;Ll;0;L;;;;;N;;;10426;;10426
+1044F;DESERET SMALL LETTER EW;Ll;0;L;;;;;N;;;10427;;10427
+10450;SHAVIAN LETTER PEEP;Lo;0;L;;;;;N;;;;;
+10451;SHAVIAN LETTER TOT;Lo;0;L;;;;;N;;;;;
+10452;SHAVIAN LETTER KICK;Lo;0;L;;;;;N;;;;;
+10453;SHAVIAN LETTER FEE;Lo;0;L;;;;;N;;;;;
+10454;SHAVIAN LETTER THIGH;Lo;0;L;;;;;N;;;;;
+10455;SHAVIAN LETTER SO;Lo;0;L;;;;;N;;;;;
+10456;SHAVIAN LETTER SURE;Lo;0;L;;;;;N;;;;;
+10457;SHAVIAN LETTER CHURCH;Lo;0;L;;;;;N;;;;;
+10458;SHAVIAN LETTER YEA;Lo;0;L;;;;;N;;;;;
+10459;SHAVIAN LETTER HUNG;Lo;0;L;;;;;N;;;;;
+1045A;SHAVIAN LETTER BIB;Lo;0;L;;;;;N;;;;;
+1045B;SHAVIAN LETTER DEAD;Lo;0;L;;;;;N;;;;;
+1045C;SHAVIAN LETTER GAG;Lo;0;L;;;;;N;;;;;
+1045D;SHAVIAN LETTER VOW;Lo;0;L;;;;;N;;;;;
+1045E;SHAVIAN LETTER THEY;Lo;0;L;;;;;N;;;;;
+1045F;SHAVIAN LETTER ZOO;Lo;0;L;;;;;N;;;;;
+10460;SHAVIAN LETTER MEASURE;Lo;0;L;;;;;N;;;;;
+10461;SHAVIAN LETTER JUDGE;Lo;0;L;;;;;N;;;;;
+10462;SHAVIAN LETTER WOE;Lo;0;L;;;;;N;;;;;
+10463;SHAVIAN LETTER HA-HA;Lo;0;L;;;;;N;;;;;
+10464;SHAVIAN LETTER LOLL;Lo;0;L;;;;;N;;;;;
+10465;SHAVIAN LETTER MIME;Lo;0;L;;;;;N;;;;;
+10466;SHAVIAN LETTER IF;Lo;0;L;;;;;N;;;;;
+10467;SHAVIAN LETTER EGG;Lo;0;L;;;;;N;;;;;
+10468;SHAVIAN LETTER ASH;Lo;0;L;;;;;N;;;;;
+10469;SHAVIAN LETTER ADO;Lo;0;L;;;;;N;;;;;
+1046A;SHAVIAN LETTER ON;Lo;0;L;;;;;N;;;;;
+1046B;SHAVIAN LETTER WOOL;Lo;0;L;;;;;N;;;;;
+1046C;SHAVIAN LETTER OUT;Lo;0;L;;;;;N;;;;;
+1046D;SHAVIAN LETTER AH;Lo;0;L;;;;;N;;;;;
+1046E;SHAVIAN LETTER ROAR;Lo;0;L;;;;;N;;;;;
+1046F;SHAVIAN LETTER NUN;Lo;0;L;;;;;N;;;;;
+10470;SHAVIAN LETTER EAT;Lo;0;L;;;;;N;;;;;
+10471;SHAVIAN LETTER AGE;Lo;0;L;;;;;N;;;;;
+10472;SHAVIAN LETTER ICE;Lo;0;L;;;;;N;;;;;
+10473;SHAVIAN LETTER UP;Lo;0;L;;;;;N;;;;;
+10474;SHAVIAN LETTER OAK;Lo;0;L;;;;;N;;;;;
+10475;SHAVIAN LETTER OOZE;Lo;0;L;;;;;N;;;;;
+10476;SHAVIAN LETTER OIL;Lo;0;L;;;;;N;;;;;
+10477;SHAVIAN LETTER AWE;Lo;0;L;;;;;N;;;;;
+10478;SHAVIAN LETTER ARE;Lo;0;L;;;;;N;;;;;
+10479;SHAVIAN LETTER OR;Lo;0;L;;;;;N;;;;;
+1047A;SHAVIAN LETTER AIR;Lo;0;L;;;;;N;;;;;
+1047B;SHAVIAN LETTER ERR;Lo;0;L;;;;;N;;;;;
+1047C;SHAVIAN LETTER ARRAY;Lo;0;L;;;;;N;;;;;
+1047D;SHAVIAN LETTER EAR;Lo;0;L;;;;;N;;;;;
+1047E;SHAVIAN LETTER IAN;Lo;0;L;;;;;N;;;;;
+1047F;SHAVIAN LETTER YEW;Lo;0;L;;;;;N;;;;;
+10480;OSMANYA LETTER ALEF;Lo;0;L;;;;;N;;;;;
+10481;OSMANYA LETTER BA;Lo;0;L;;;;;N;;;;;
+10482;OSMANYA LETTER TA;Lo;0;L;;;;;N;;;;;
+10483;OSMANYA LETTER JA;Lo;0;L;;;;;N;;;;;
+10484;OSMANYA LETTER XA;Lo;0;L;;;;;N;;;;;
+10485;OSMANYA LETTER KHA;Lo;0;L;;;;;N;;;;;
+10486;OSMANYA LETTER DEEL;Lo;0;L;;;;;N;;;;;
+10487;OSMANYA LETTER RA;Lo;0;L;;;;;N;;;;;
+10488;OSMANYA LETTER SA;Lo;0;L;;;;;N;;;;;
+10489;OSMANYA LETTER SHIIN;Lo;0;L;;;;;N;;;;;
+1048A;OSMANYA LETTER DHA;Lo;0;L;;;;;N;;;;;
+1048B;OSMANYA LETTER CAYN;Lo;0;L;;;;;N;;;;;
+1048C;OSMANYA LETTER GA;Lo;0;L;;;;;N;;;;;
+1048D;OSMANYA LETTER FA;Lo;0;L;;;;;N;;;;;
+1048E;OSMANYA LETTER QAAF;Lo;0;L;;;;;N;;;;;
+1048F;OSMANYA LETTER KAAF;Lo;0;L;;;;;N;;;;;
+10490;OSMANYA LETTER LAAN;Lo;0;L;;;;;N;;;;;
+10491;OSMANYA LETTER MIIN;Lo;0;L;;;;;N;;;;;
+10492;OSMANYA LETTER NUUN;Lo;0;L;;;;;N;;;;;
+10493;OSMANYA LETTER WAW;Lo;0;L;;;;;N;;;;;
+10494;OSMANYA LETTER HA;Lo;0;L;;;;;N;;;;;
+10495;OSMANYA LETTER YA;Lo;0;L;;;;;N;;;;;
+10496;OSMANYA LETTER A;Lo;0;L;;;;;N;;;;;
+10497;OSMANYA LETTER E;Lo;0;L;;;;;N;;;;;
+10498;OSMANYA LETTER I;Lo;0;L;;;;;N;;;;;
+10499;OSMANYA LETTER O;Lo;0;L;;;;;N;;;;;
+1049A;OSMANYA LETTER U;Lo;0;L;;;;;N;;;;;
+1049B;OSMANYA LETTER AA;Lo;0;L;;;;;N;;;;;
+1049C;OSMANYA LETTER EE;Lo;0;L;;;;;N;;;;;
+1049D;OSMANYA LETTER OO;Lo;0;L;;;;;N;;;;;
+104A0;OSMANYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+104A1;OSMANYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+104A2;OSMANYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+104A3;OSMANYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+104A4;OSMANYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+104A5;OSMANYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+104A6;OSMANYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;;
+10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;;
+10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;;
+10803;CYPRIOT SYLLABLE O;Lo;0;R;;;;;N;;;;;
+10804;CYPRIOT SYLLABLE U;Lo;0;R;;;;;N;;;;;
+10805;CYPRIOT SYLLABLE JA;Lo;0;R;;;;;N;;;;;
+10808;CYPRIOT SYLLABLE JO;Lo;0;R;;;;;N;;;;;
+1080A;CYPRIOT SYLLABLE KA;Lo;0;R;;;;;N;;;;;
+1080B;CYPRIOT SYLLABLE KE;Lo;0;R;;;;;N;;;;;
+1080C;CYPRIOT SYLLABLE KI;Lo;0;R;;;;;N;;;;;
+1080D;CYPRIOT SYLLABLE KO;Lo;0;R;;;;;N;;;;;
+1080E;CYPRIOT SYLLABLE KU;Lo;0;R;;;;;N;;;;;
+1080F;CYPRIOT SYLLABLE LA;Lo;0;R;;;;;N;;;;;
+10810;CYPRIOT SYLLABLE LE;Lo;0;R;;;;;N;;;;;
+10811;CYPRIOT SYLLABLE LI;Lo;0;R;;;;;N;;;;;
+10812;CYPRIOT SYLLABLE LO;Lo;0;R;;;;;N;;;;;
+10813;CYPRIOT SYLLABLE LU;Lo;0;R;;;;;N;;;;;
+10814;CYPRIOT SYLLABLE MA;Lo;0;R;;;;;N;;;;;
+10815;CYPRIOT SYLLABLE ME;Lo;0;R;;;;;N;;;;;
+10816;CYPRIOT SYLLABLE MI;Lo;0;R;;;;;N;;;;;
+10817;CYPRIOT SYLLABLE MO;Lo;0;R;;;;;N;;;;;
+10818;CYPRIOT SYLLABLE MU;Lo;0;R;;;;;N;;;;;
+10819;CYPRIOT SYLLABLE NA;Lo;0;R;;;;;N;;;;;
+1081A;CYPRIOT SYLLABLE NE;Lo;0;R;;;;;N;;;;;
+1081B;CYPRIOT SYLLABLE NI;Lo;0;R;;;;;N;;;;;
+1081C;CYPRIOT SYLLABLE NO;Lo;0;R;;;;;N;;;;;
+1081D;CYPRIOT SYLLABLE NU;Lo;0;R;;;;;N;;;;;
+1081E;CYPRIOT SYLLABLE PA;Lo;0;R;;;;;N;;;;;
+1081F;CYPRIOT SYLLABLE PE;Lo;0;R;;;;;N;;;;;
+10820;CYPRIOT SYLLABLE PI;Lo;0;R;;;;;N;;;;;
+10821;CYPRIOT SYLLABLE PO;Lo;0;R;;;;;N;;;;;
+10822;CYPRIOT SYLLABLE PU;Lo;0;R;;;;;N;;;;;
+10823;CYPRIOT SYLLABLE RA;Lo;0;R;;;;;N;;;;;
+10824;CYPRIOT SYLLABLE RE;Lo;0;R;;;;;N;;;;;
+10825;CYPRIOT SYLLABLE RI;Lo;0;R;;;;;N;;;;;
+10826;CYPRIOT SYLLABLE RO;Lo;0;R;;;;;N;;;;;
+10827;CYPRIOT SYLLABLE RU;Lo;0;R;;;;;N;;;;;
+10828;CYPRIOT SYLLABLE SA;Lo;0;R;;;;;N;;;;;
+10829;CYPRIOT SYLLABLE SE;Lo;0;R;;;;;N;;;;;
+1082A;CYPRIOT SYLLABLE SI;Lo;0;R;;;;;N;;;;;
+1082B;CYPRIOT SYLLABLE SO;Lo;0;R;;;;;N;;;;;
+1082C;CYPRIOT SYLLABLE SU;Lo;0;R;;;;;N;;;;;
+1082D;CYPRIOT SYLLABLE TA;Lo;0;R;;;;;N;;;;;
+1082E;CYPRIOT SYLLABLE TE;Lo;0;R;;;;;N;;;;;
+1082F;CYPRIOT SYLLABLE TI;Lo;0;R;;;;;N;;;;;
+10830;CYPRIOT SYLLABLE TO;Lo;0;R;;;;;N;;;;;
+10831;CYPRIOT SYLLABLE TU;Lo;0;R;;;;;N;;;;;
+10832;CYPRIOT SYLLABLE WA;Lo;0;R;;;;;N;;;;;
+10833;CYPRIOT SYLLABLE WE;Lo;0;R;;;;;N;;;;;
+10834;CYPRIOT SYLLABLE WI;Lo;0;R;;;;;N;;;;;
+10835;CYPRIOT SYLLABLE WO;Lo;0;R;;;;;N;;;;;
+10837;CYPRIOT SYLLABLE XA;Lo;0;R;;;;;N;;;;;
+10838;CYPRIOT SYLLABLE XE;Lo;0;R;;;;;N;;;;;
+1083C;CYPRIOT SYLLABLE ZA;Lo;0;R;;;;;N;;;;;
+1083F;CYPRIOT SYLLABLE ZO;Lo;0;R;;;;;N;;;;;
+10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;;
+10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;;
+10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;;
+10903;PHOENICIAN LETTER DELT;Lo;0;R;;;;;N;;;;;
+10904;PHOENICIAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10905;PHOENICIAN LETTER WAU;Lo;0;R;;;;;N;;;;;
+10906;PHOENICIAN LETTER ZAI;Lo;0;R;;;;;N;;;;;
+10907;PHOENICIAN LETTER HET;Lo;0;R;;;;;N;;;;;
+10908;PHOENICIAN LETTER TET;Lo;0;R;;;;;N;;;;;
+10909;PHOENICIAN LETTER YOD;Lo;0;R;;;;;N;;;;;
+1090A;PHOENICIAN LETTER KAF;Lo;0;R;;;;;N;;;;;
+1090B;PHOENICIAN LETTER LAMD;Lo;0;R;;;;;N;;;;;
+1090C;PHOENICIAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+1090D;PHOENICIAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+1090E;PHOENICIAN LETTER SEMK;Lo;0;R;;;;;N;;;;;
+1090F;PHOENICIAN LETTER AIN;Lo;0;R;;;;;N;;;;;
+10910;PHOENICIAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10911;PHOENICIAN LETTER SADE;Lo;0;R;;;;;N;;;;;
+10912;PHOENICIAN LETTER QOF;Lo;0;R;;;;;N;;;;;
+10913;PHOENICIAN LETTER ROSH;Lo;0;R;;;;;N;;;;;
+10914;PHOENICIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10915;PHOENICIAN LETTER TAU;Lo;0;R;;;;;N;;;;;
+10916;PHOENICIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10917;PHOENICIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10918;PHOENICIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10919;PHOENICIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+1091F;PHOENICIAN WORD SEPARATOR;Po;0;ON;;;;;N;;;;;
+10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;;
+10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+10A03;KHAROSHTHI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+10A05;KHAROSHTHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+10A06;KHAROSHTHI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+10A0C;KHAROSHTHI VOWEL LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
+10A0D;KHAROSHTHI SIGN DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;
+10A0E;KHAROSHTHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+10A0F;KHAROSHTHI SIGN VISARGA;Mn;230;NSM;;;;;N;;;;;
+10A10;KHAROSHTHI LETTER KA;Lo;0;R;;;;;N;;;;;
+10A11;KHAROSHTHI LETTER KHA;Lo;0;R;;;;;N;;;;;
+10A12;KHAROSHTHI LETTER GA;Lo;0;R;;;;;N;;;;;
+10A13;KHAROSHTHI LETTER GHA;Lo;0;R;;;;;N;;;;;
+10A15;KHAROSHTHI LETTER CA;Lo;0;R;;;;;N;;;;;
+10A16;KHAROSHTHI LETTER CHA;Lo;0;R;;;;;N;;;;;
+10A17;KHAROSHTHI LETTER JA;Lo;0;R;;;;;N;;;;;
+10A19;KHAROSHTHI LETTER NYA;Lo;0;R;;;;;N;;;;;
+10A1A;KHAROSHTHI LETTER TTA;Lo;0;R;;;;;N;;;;;
+10A1B;KHAROSHTHI LETTER TTHA;Lo;0;R;;;;;N;;;;;
+10A1C;KHAROSHTHI LETTER DDA;Lo;0;R;;;;;N;;;;;
+10A1D;KHAROSHTHI LETTER DDHA;Lo;0;R;;;;;N;;;;;
+10A1E;KHAROSHTHI LETTER NNA;Lo;0;R;;;;;N;;;;;
+10A1F;KHAROSHTHI LETTER TA;Lo;0;R;;;;;N;;;;;
+10A20;KHAROSHTHI LETTER THA;Lo;0;R;;;;;N;;;;;
+10A21;KHAROSHTHI LETTER DA;Lo;0;R;;;;;N;;;;;
+10A22;KHAROSHTHI LETTER DHA;Lo;0;R;;;;;N;;;;;
+10A23;KHAROSHTHI LETTER NA;Lo;0;R;;;;;N;;;;;
+10A24;KHAROSHTHI LETTER PA;Lo;0;R;;;;;N;;;;;
+10A25;KHAROSHTHI LETTER PHA;Lo;0;R;;;;;N;;;;;
+10A26;KHAROSHTHI LETTER BA;Lo;0;R;;;;;N;;;;;
+10A27;KHAROSHTHI LETTER BHA;Lo;0;R;;;;;N;;;;;
+10A28;KHAROSHTHI LETTER MA;Lo;0;R;;;;;N;;;;;
+10A29;KHAROSHTHI LETTER YA;Lo;0;R;;;;;N;;;;;
+10A2A;KHAROSHTHI LETTER RA;Lo;0;R;;;;;N;;;;;
+10A2B;KHAROSHTHI LETTER LA;Lo;0;R;;;;;N;;;;;
+10A2C;KHAROSHTHI LETTER VA;Lo;0;R;;;;;N;;;;;
+10A2D;KHAROSHTHI LETTER SHA;Lo;0;R;;;;;N;;;;;
+10A2E;KHAROSHTHI LETTER SSA;Lo;0;R;;;;;N;;;;;
+10A2F;KHAROSHTHI LETTER SA;Lo;0;R;;;;;N;;;;;
+10A30;KHAROSHTHI LETTER ZA;Lo;0;R;;;;;N;;;;;
+10A31;KHAROSHTHI LETTER HA;Lo;0;R;;;;;N;;;;;
+10A32;KHAROSHTHI LETTER KKA;Lo;0;R;;;;;N;;;;;
+10A33;KHAROSHTHI LETTER TTTHA;Lo;0;R;;;;;N;;;;;
+10A38;KHAROSHTHI SIGN BAR ABOVE;Mn;230;NSM;;;;;N;;;;;
+10A39;KHAROSHTHI SIGN CAUDA;Mn;1;NSM;;;;;N;;;;;
+10A3A;KHAROSHTHI SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+10A3F;KHAROSHTHI VIRAMA;Mn;9;NSM;;;;;N;;;;;
+10A40;KHAROSHTHI DIGIT ONE;No;0;R;;;1;1;N;;;;;
+10A41;KHAROSHTHI DIGIT TWO;No;0;R;;;2;2;N;;;;;
+10A42;KHAROSHTHI DIGIT THREE;No;0;R;;;3;3;N;;;;;
+10A43;KHAROSHTHI DIGIT FOUR;No;0;R;;;4;4;N;;;;;
+10A44;KHAROSHTHI NUMBER TEN;No;0;R;;;;10;N;;;;;
+10A45;KHAROSHTHI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10A46;KHAROSHTHI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+10A47;KHAROSHTHI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
+10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;;
+10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;;
+10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;;
+10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;;
+10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;;
+10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;;
+10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;;
+10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;;
+10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;;
+12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
+12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
+12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
+12003;CUNEIFORM SIGN A TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12004;CUNEIFORM SIGN A TIMES HA;Lo;0;L;;;;;N;;;;;
+12005;CUNEIFORM SIGN A TIMES IGI;Lo;0;L;;;;;N;;;;;
+12006;CUNEIFORM SIGN A TIMES LAGAR GUNU;Lo;0;L;;;;;N;;;;;
+12007;CUNEIFORM SIGN A TIMES MUSH;Lo;0;L;;;;;N;;;;;
+12008;CUNEIFORM SIGN A TIMES SAG;Lo;0;L;;;;;N;;;;;
+12009;CUNEIFORM SIGN A2;Lo;0;L;;;;;N;;;;;
+1200A;CUNEIFORM SIGN AB;Lo;0;L;;;;;N;;;;;
+1200B;CUNEIFORM SIGN AB TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1200C;CUNEIFORM SIGN AB TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+1200D;CUNEIFORM SIGN AB TIMES GAL;Lo;0;L;;;;;N;;;;;
+1200E;CUNEIFORM SIGN AB TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1200F;CUNEIFORM SIGN AB TIMES HA;Lo;0;L;;;;;N;;;;;
+12010;CUNEIFORM SIGN AB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12011;CUNEIFORM SIGN AB TIMES IMIN;Lo;0;L;;;;;N;;;;;
+12012;CUNEIFORM SIGN AB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+12013;CUNEIFORM SIGN AB TIMES SHESH;Lo;0;L;;;;;N;;;;;
+12014;CUNEIFORM SIGN AB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+12015;CUNEIFORM SIGN AB GUNU;Lo;0;L;;;;;N;;;;;
+12016;CUNEIFORM SIGN AB2;Lo;0;L;;;;;N;;;;;
+12017;CUNEIFORM SIGN AB2 TIMES BALAG;Lo;0;L;;;;;N;;;;;
+12018;CUNEIFORM SIGN AB2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12019;CUNEIFORM SIGN AB2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+1201A;CUNEIFORM SIGN AB2 TIMES SHA3;Lo;0;L;;;;;N;;;;;
+1201B;CUNEIFORM SIGN AB2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+1201C;CUNEIFORM SIGN AD;Lo;0;L;;;;;N;;;;;
+1201D;CUNEIFORM SIGN AK;Lo;0;L;;;;;N;;;;;
+1201E;CUNEIFORM SIGN AK TIMES ERIN2;Lo;0;L;;;;;N;;;;;
+1201F;CUNEIFORM SIGN AK TIMES SHITA PLUS GISH;Lo;0;L;;;;;N;;;;;
+12020;CUNEIFORM SIGN AL;Lo;0;L;;;;;N;;;;;
+12021;CUNEIFORM SIGN AL TIMES AL;Lo;0;L;;;;;N;;;;;
+12022;CUNEIFORM SIGN AL TIMES DIM2;Lo;0;L;;;;;N;;;;;
+12023;CUNEIFORM SIGN AL TIMES GISH;Lo;0;L;;;;;N;;;;;
+12024;CUNEIFORM SIGN AL TIMES HA;Lo;0;L;;;;;N;;;;;
+12025;CUNEIFORM SIGN AL TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12026;CUNEIFORM SIGN AL TIMES KI;Lo;0;L;;;;;N;;;;;
+12027;CUNEIFORM SIGN AL TIMES SHE;Lo;0;L;;;;;N;;;;;
+12028;CUNEIFORM SIGN AL TIMES USH;Lo;0;L;;;;;N;;;;;
+12029;CUNEIFORM SIGN ALAN;Lo;0;L;;;;;N;;;;;
+1202A;CUNEIFORM SIGN ALEPH;Lo;0;L;;;;;N;;;;;
+1202B;CUNEIFORM SIGN AMAR;Lo;0;L;;;;;N;;;;;
+1202C;CUNEIFORM SIGN AMAR TIMES SHE;Lo;0;L;;;;;N;;;;;
+1202D;CUNEIFORM SIGN AN;Lo;0;L;;;;;N;;;;;
+1202E;CUNEIFORM SIGN AN OVER AN;Lo;0;L;;;;;N;;;;;
+1202F;CUNEIFORM SIGN AN THREE TIMES;Lo;0;L;;;;;N;;;;;
+12030;CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA;Lo;0;L;;;;;N;;;;;
+12031;CUNEIFORM SIGN AN PLUS NAGA SQUARED;Lo;0;L;;;;;N;;;;;
+12032;CUNEIFORM SIGN ANSHE;Lo;0;L;;;;;N;;;;;
+12033;CUNEIFORM SIGN APIN;Lo;0;L;;;;;N;;;;;
+12034;CUNEIFORM SIGN ARAD;Lo;0;L;;;;;N;;;;;
+12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;;
+12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;;
+12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;;
+12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;;
+12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
+1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;;
+1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;;
+1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
+1203D;CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
+1203E;CUNEIFORM SIGN ASH2;Lo;0;L;;;;;N;;;;;
+1203F;CUNEIFORM SIGN ASHGAB;Lo;0;L;;;;;N;;;;;
+12040;CUNEIFORM SIGN BA;Lo;0;L;;;;;N;;;;;
+12041;CUNEIFORM SIGN BAD;Lo;0;L;;;;;N;;;;;
+12042;CUNEIFORM SIGN BAG3;Lo;0;L;;;;;N;;;;;
+12043;CUNEIFORM SIGN BAHAR2;Lo;0;L;;;;;N;;;;;
+12044;CUNEIFORM SIGN BAL;Lo;0;L;;;;;N;;;;;
+12045;CUNEIFORM SIGN BAL OVER BAL;Lo;0;L;;;;;N;;;;;
+12046;CUNEIFORM SIGN BALAG;Lo;0;L;;;;;N;;;;;
+12047;CUNEIFORM SIGN BAR;Lo;0;L;;;;;N;;;;;
+12048;CUNEIFORM SIGN BARA2;Lo;0;L;;;;;N;;;;;
+12049;CUNEIFORM SIGN BI;Lo;0;L;;;;;N;;;;;
+1204A;CUNEIFORM SIGN BI TIMES A;Lo;0;L;;;;;N;;;;;
+1204B;CUNEIFORM SIGN BI TIMES GAR;Lo;0;L;;;;;N;;;;;
+1204C;CUNEIFORM SIGN BI TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+1204D;CUNEIFORM SIGN BU;Lo;0;L;;;;;N;;;;;
+1204E;CUNEIFORM SIGN BU OVER BU AB;Lo;0;L;;;;;N;;;;;
+1204F;CUNEIFORM SIGN BU OVER BU UN;Lo;0;L;;;;;N;;;;;
+12050;CUNEIFORM SIGN BU CROSSING BU;Lo;0;L;;;;;N;;;;;
+12051;CUNEIFORM SIGN BULUG;Lo;0;L;;;;;N;;;;;
+12052;CUNEIFORM SIGN BULUG OVER BULUG;Lo;0;L;;;;;N;;;;;
+12053;CUNEIFORM SIGN BUR;Lo;0;L;;;;;N;;;;;
+12054;CUNEIFORM SIGN BUR2;Lo;0;L;;;;;N;;;;;
+12055;CUNEIFORM SIGN DA;Lo;0;L;;;;;N;;;;;
+12056;CUNEIFORM SIGN DAG;Lo;0;L;;;;;N;;;;;
+12057;CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH;Lo;0;L;;;;;N;;;;;
+12058;CUNEIFORM SIGN DAG KISIM5 TIMES AMAR;Lo;0;L;;;;;N;;;;;
+12059;CUNEIFORM SIGN DAG KISIM5 TIMES BALAG;Lo;0;L;;;;;N;;;;;
+1205A;CUNEIFORM SIGN DAG KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
+1205B;CUNEIFORM SIGN DAG KISIM5 TIMES GA;Lo;0;L;;;;;N;;;;;
+1205C;CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH;Lo;0;L;;;;;N;;;;;
+1205D;CUNEIFORM SIGN DAG KISIM5 TIMES GI;Lo;0;L;;;;;N;;;;;
+1205E;CUNEIFORM SIGN DAG KISIM5 TIMES GIR2;Lo;0;L;;;;;N;;;;;
+1205F;CUNEIFORM SIGN DAG KISIM5 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12060;CUNEIFORM SIGN DAG KISIM5 TIMES HA;Lo;0;L;;;;;N;;;;;
+12061;CUNEIFORM SIGN DAG KISIM5 TIMES IR;Lo;0;L;;;;;N;;;;;
+12062;CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU;Lo;0;L;;;;;N;;;;;
+12063;CUNEIFORM SIGN DAG KISIM5 TIMES KAK;Lo;0;L;;;;;N;;;;;
+12064;CUNEIFORM SIGN DAG KISIM5 TIMES LA;Lo;0;L;;;;;N;;;;;
+12065;CUNEIFORM SIGN DAG KISIM5 TIMES LU;Lo;0;L;;;;;N;;;;;
+12066;CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2;Lo;0;L;;;;;N;;;;;
+12067;CUNEIFORM SIGN DAG KISIM5 TIMES LUM;Lo;0;L;;;;;N;;;;;
+12068;CUNEIFORM SIGN DAG KISIM5 TIMES NE;Lo;0;L;;;;;N;;;;;
+12069;CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP;Lo;0;L;;;;;N;;;;;
+1206A;CUNEIFORM SIGN DAG KISIM5 TIMES SI;Lo;0;L;;;;;N;;;;;
+1206B;CUNEIFORM SIGN DAG KISIM5 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+1206C;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2;Lo;0;L;;;;;N;;;;;
+1206D;CUNEIFORM SIGN DAG KISIM5 TIMES USH;Lo;0;L;;;;;N;;;;;
+1206E;CUNEIFORM SIGN DAM;Lo;0;L;;;;;N;;;;;
+1206F;CUNEIFORM SIGN DAR;Lo;0;L;;;;;N;;;;;
+12070;CUNEIFORM SIGN DARA3;Lo;0;L;;;;;N;;;;;
+12071;CUNEIFORM SIGN DARA4;Lo;0;L;;;;;N;;;;;
+12072;CUNEIFORM SIGN DI;Lo;0;L;;;;;N;;;;;
+12073;CUNEIFORM SIGN DIB;Lo;0;L;;;;;N;;;;;
+12074;CUNEIFORM SIGN DIM;Lo;0;L;;;;;N;;;;;
+12075;CUNEIFORM SIGN DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
+12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;;
+12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;;
+12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;;
+12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;;
+1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;;
+1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;;
+1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;;
+1207D;CUNEIFORM SIGN DU SHESHIG;Lo;0;L;;;;;N;;;;;
+1207E;CUNEIFORM SIGN DUB;Lo;0;L;;;;;N;;;;;
+1207F;CUNEIFORM SIGN DUB TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12080;CUNEIFORM SIGN DUB2;Lo;0;L;;;;;N;;;;;
+12081;CUNEIFORM SIGN DUG;Lo;0;L;;;;;N;;;;;
+12082;CUNEIFORM SIGN DUGUD;Lo;0;L;;;;;N;;;;;
+12083;CUNEIFORM SIGN DUH;Lo;0;L;;;;;N;;;;;
+12084;CUNEIFORM SIGN DUN;Lo;0;L;;;;;N;;;;;
+12085;CUNEIFORM SIGN DUN3;Lo;0;L;;;;;N;;;;;
+12086;CUNEIFORM SIGN DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+12087;CUNEIFORM SIGN DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
+12088;CUNEIFORM SIGN DUN4;Lo;0;L;;;;;N;;;;;
+12089;CUNEIFORM SIGN DUR2;Lo;0;L;;;;;N;;;;;
+1208A;CUNEIFORM SIGN E;Lo;0;L;;;;;N;;;;;
+1208B;CUNEIFORM SIGN E TIMES PAP;Lo;0;L;;;;;N;;;;;
+1208C;CUNEIFORM SIGN E OVER E NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+1208D;CUNEIFORM SIGN E2;Lo;0;L;;;;;N;;;;;
+1208E;CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA;Lo;0;L;;;;;N;;;;;
+1208F;CUNEIFORM SIGN E2 TIMES GAR;Lo;0;L;;;;;N;;;;;
+12090;CUNEIFORM SIGN E2 TIMES MI;Lo;0;L;;;;;N;;;;;
+12091;CUNEIFORM SIGN E2 TIMES SAL;Lo;0;L;;;;;N;;;;;
+12092;CUNEIFORM SIGN E2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+12093;CUNEIFORM SIGN E2 TIMES U;Lo;0;L;;;;;N;;;;;
+12094;CUNEIFORM SIGN EDIN;Lo;0;L;;;;;N;;;;;
+12095;CUNEIFORM SIGN EGIR;Lo;0;L;;;;;N;;;;;
+12096;CUNEIFORM SIGN EL;Lo;0;L;;;;;N;;;;;
+12097;CUNEIFORM SIGN EN;Lo;0;L;;;;;N;;;;;
+12098;CUNEIFORM SIGN EN TIMES GAN2;Lo;0;L;;;;;N;;;;;
+12099;CUNEIFORM SIGN EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1209A;CUNEIFORM SIGN EN TIMES ME;Lo;0;L;;;;;N;;;;;
+1209B;CUNEIFORM SIGN EN CROSSING EN;Lo;0;L;;;;;N;;;;;
+1209C;CUNEIFORM SIGN EN OPPOSING EN;Lo;0;L;;;;;N;;;;;
+1209D;CUNEIFORM SIGN EN SQUARED;Lo;0;L;;;;;N;;;;;
+1209E;CUNEIFORM SIGN EREN;Lo;0;L;;;;;N;;;;;
+1209F;CUNEIFORM SIGN ERIN2;Lo;0;L;;;;;N;;;;;
+120A0;CUNEIFORM SIGN ESH2;Lo;0;L;;;;;N;;;;;
+120A1;CUNEIFORM SIGN EZEN;Lo;0;L;;;;;N;;;;;
+120A2;CUNEIFORM SIGN EZEN TIMES A;Lo;0;L;;;;;N;;;;;
+120A3;CUNEIFORM SIGN EZEN TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
+120A4;CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+120A5;CUNEIFORM SIGN EZEN TIMES AN;Lo;0;L;;;;;N;;;;;
+120A6;CUNEIFORM SIGN EZEN TIMES BAD;Lo;0;L;;;;;N;;;;;
+120A7;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+120A8;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
+120A9;CUNEIFORM SIGN EZEN TIMES HA;Lo;0;L;;;;;N;;;;;
+120AA;CUNEIFORM SIGN EZEN TIMES HA GUNU;Lo;0;L;;;;;N;;;;;
+120AB;CUNEIFORM SIGN EZEN TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+120AC;CUNEIFORM SIGN EZEN TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+120AD;CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED;Lo;0;L;;;;;N;;;;;
+120AE;CUNEIFORM SIGN EZEN TIMES KU3;Lo;0;L;;;;;N;;;;;
+120AF;CUNEIFORM SIGN EZEN TIMES LA;Lo;0;L;;;;;N;;;;;
+120B0;CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+120B1;CUNEIFORM SIGN EZEN TIMES LI;Lo;0;L;;;;;N;;;;;
+120B2;CUNEIFORM SIGN EZEN TIMES LU;Lo;0;L;;;;;N;;;;;
+120B3;CUNEIFORM SIGN EZEN TIMES U2;Lo;0;L;;;;;N;;;;;
+120B4;CUNEIFORM SIGN EZEN TIMES UD;Lo;0;L;;;;;N;;;;;
+120B5;CUNEIFORM SIGN GA;Lo;0;L;;;;;N;;;;;
+120B6;CUNEIFORM SIGN GA GUNU;Lo;0;L;;;;;N;;;;;
+120B7;CUNEIFORM SIGN GA2;Lo;0;L;;;;;N;;;;;
+120B8;CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
+120B9;CUNEIFORM SIGN GA2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
+120BA;CUNEIFORM SIGN GA2 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
+120BB;CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB;Lo;0;L;;;;;N;;;;;
+120BC;CUNEIFORM SIGN GA2 TIMES AN;Lo;0;L;;;;;N;;;;;
+120BD;CUNEIFORM SIGN GA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
+120BE;CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL;Lo;0;L;;;;;N;;;;;
+120BF;CUNEIFORM SIGN GA2 TIMES BAD;Lo;0;L;;;;;N;;;;;
+120C0;CUNEIFORM SIGN GA2 TIMES BAR PLUS RA;Lo;0;L;;;;;N;;;;;
+120C1;CUNEIFORM SIGN GA2 TIMES BUR;Lo;0;L;;;;;N;;;;;
+120C2;CUNEIFORM SIGN GA2 TIMES BUR PLUS RA;Lo;0;L;;;;;N;;;;;
+120C3;CUNEIFORM SIGN GA2 TIMES DA;Lo;0;L;;;;;N;;;;;
+120C4;CUNEIFORM SIGN GA2 TIMES DI;Lo;0;L;;;;;N;;;;;
+120C5;CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
+120C6;CUNEIFORM SIGN GA2 TIMES DUB;Lo;0;L;;;;;N;;;;;
+120C7;CUNEIFORM SIGN GA2 TIMES EL;Lo;0;L;;;;;N;;;;;
+120C8;CUNEIFORM SIGN GA2 TIMES EL PLUS LA;Lo;0;L;;;;;N;;;;;
+120C9;CUNEIFORM SIGN GA2 TIMES EN;Lo;0;L;;;;;N;;;;;
+120CA;CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120CB;CUNEIFORM SIGN GA2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120CC;CUNEIFORM SIGN GA2 TIMES GAR;Lo;0;L;;;;;N;;;;;
+120CD;CUNEIFORM SIGN GA2 TIMES GI;Lo;0;L;;;;;N;;;;;
+120CE;CUNEIFORM SIGN GA2 TIMES GI4;Lo;0;L;;;;;N;;;;;
+120CF;CUNEIFORM SIGN GA2 TIMES GI4 PLUS A;Lo;0;L;;;;;N;;;;;
+120D0;CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU;Lo;0;L;;;;;N;;;;;
+120D1;CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2;Lo;0;L;;;;;N;;;;;
+120D2;CUNEIFORM SIGN GA2 TIMES HAL;Lo;0;L;;;;;N;;;;;
+120D3;CUNEIFORM SIGN GA2 TIMES HAL PLUS LA;Lo;0;L;;;;;N;;;;;
+120D4;CUNEIFORM SIGN GA2 TIMES HI PLUS LI;Lo;0;L;;;;;N;;;;;
+120D5;CUNEIFORM SIGN GA2 TIMES HUB2;Lo;0;L;;;;;N;;;;;
+120D6;CUNEIFORM SIGN GA2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+120D7;CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH;Lo;0;L;;;;;N;;;;;
+120D8;CUNEIFORM SIGN GA2 TIMES KAK;Lo;0;L;;;;;N;;;;;
+120D9;CUNEIFORM SIGN GA2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+120DA;CUNEIFORM SIGN GA2 TIMES KID;Lo;0;L;;;;;N;;;;;
+120DB;CUNEIFORM SIGN GA2 TIMES KID PLUS LAL;Lo;0;L;;;;;N;;;;;
+120DC;CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN;Lo;0;L;;;;;N;;;;;
+120DD;CUNEIFORM SIGN GA2 TIMES LA;Lo;0;L;;;;;N;;;;;
+120DE;CUNEIFORM SIGN GA2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+120DF;CUNEIFORM SIGN GA2 TIMES MI;Lo;0;L;;;;;N;;;;;
+120E0;CUNEIFORM SIGN GA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+120E1;CUNEIFORM SIGN GA2 TIMES NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+120E2;CUNEIFORM SIGN GA2 TIMES PA;Lo;0;L;;;;;N;;;;;
+120E3;CUNEIFORM SIGN GA2 TIMES SAL;Lo;0;L;;;;;N;;;;;
+120E4;CUNEIFORM SIGN GA2 TIMES SAR;Lo;0;L;;;;;N;;;;;
+120E5;CUNEIFORM SIGN GA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+120E6;CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR;Lo;0;L;;;;;N;;;;;
+120E7;CUNEIFORM SIGN GA2 TIMES SHID;Lo;0;L;;;;;N;;;;;
+120E8;CUNEIFORM SIGN GA2 TIMES SUM;Lo;0;L;;;;;N;;;;;
+120E9;CUNEIFORM SIGN GA2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+120EA;CUNEIFORM SIGN GA2 TIMES U;Lo;0;L;;;;;N;;;;;
+120EB;CUNEIFORM SIGN GA2 TIMES UD;Lo;0;L;;;;;N;;;;;
+120EC;CUNEIFORM SIGN GA2 TIMES UD PLUS DU;Lo;0;L;;;;;N;;;;;
+120ED;CUNEIFORM SIGN GA2 OVER GA2;Lo;0;L;;;;;N;;;;;
+120EE;CUNEIFORM SIGN GABA;Lo;0;L;;;;;N;;;;;
+120EF;CUNEIFORM SIGN GABA CROSSING GABA;Lo;0;L;;;;;N;;;;;
+120F0;CUNEIFORM SIGN GAD;Lo;0;L;;;;;N;;;;;
+120F1;CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+120F2;CUNEIFORM SIGN GAL;Lo;0;L;;;;;N;;;;;
+120F3;CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+120F4;CUNEIFORM SIGN GALAM;Lo;0;L;;;;;N;;;;;
+120F5;CUNEIFORM SIGN GAM;Lo;0;L;;;;;N;;;;;
+120F6;CUNEIFORM SIGN GAN;Lo;0;L;;;;;N;;;;;
+120F7;CUNEIFORM SIGN GAN2;Lo;0;L;;;;;N;;;;;
+120F8;CUNEIFORM SIGN GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120F9;CUNEIFORM SIGN GAN2 OVER GAN2;Lo;0;L;;;;;N;;;;;
+120FA;CUNEIFORM SIGN GAN2 CROSSING GAN2;Lo;0;L;;;;;N;;;;;
+120FB;CUNEIFORM SIGN GAR;Lo;0;L;;;;;N;;;;;
+120FC;CUNEIFORM SIGN GAR3;Lo;0;L;;;;;N;;;;;
+120FD;CUNEIFORM SIGN GASHAN;Lo;0;L;;;;;N;;;;;
+120FE;CUNEIFORM SIGN GESHTIN;Lo;0;L;;;;;N;;;;;
+120FF;CUNEIFORM SIGN GESHTIN TIMES KUR;Lo;0;L;;;;;N;;;;;
+12100;CUNEIFORM SIGN GI;Lo;0;L;;;;;N;;;;;
+12101;CUNEIFORM SIGN GI TIMES E;Lo;0;L;;;;;N;;;;;
+12102;CUNEIFORM SIGN GI TIMES U;Lo;0;L;;;;;N;;;;;
+12103;CUNEIFORM SIGN GI CROSSING GI;Lo;0;L;;;;;N;;;;;
+12104;CUNEIFORM SIGN GI4;Lo;0;L;;;;;N;;;;;
+12105;CUNEIFORM SIGN GI4 OVER GI4;Lo;0;L;;;;;N;;;;;
+12106;CUNEIFORM SIGN GI4 CROSSING GI4;Lo;0;L;;;;;N;;;;;
+12107;CUNEIFORM SIGN GIDIM;Lo;0;L;;;;;N;;;;;
+12108;CUNEIFORM SIGN GIR2;Lo;0;L;;;;;N;;;;;
+12109;CUNEIFORM SIGN GIR2 GUNU;Lo;0;L;;;;;N;;;;;
+1210A;CUNEIFORM SIGN GIR3;Lo;0;L;;;;;N;;;;;
+1210B;CUNEIFORM SIGN GIR3 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
+1210C;CUNEIFORM SIGN GIR3 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1210D;CUNEIFORM SIGN GIR3 TIMES IGI;Lo;0;L;;;;;N;;;;;
+1210E;CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI;Lo;0;L;;;;;N;;;;;
+1210F;CUNEIFORM SIGN GIR3 TIMES PA;Lo;0;L;;;;;N;;;;;
+12110;CUNEIFORM SIGN GISAL;Lo;0;L;;;;;N;;;;;
+12111;CUNEIFORM SIGN GISH;Lo;0;L;;;;;N;;;;;
+12112;CUNEIFORM SIGN GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
+12113;CUNEIFORM SIGN GISH TIMES BAD;Lo;0;L;;;;;N;;;;;
+12114;CUNEIFORM SIGN GISH TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12115;CUNEIFORM SIGN GISH TENU;Lo;0;L;;;;;N;;;;;
+12116;CUNEIFORM SIGN GU;Lo;0;L;;;;;N;;;;;
+12117;CUNEIFORM SIGN GU CROSSING GU;Lo;0;L;;;;;N;;;;;
+12118;CUNEIFORM SIGN GU2;Lo;0;L;;;;;N;;;;;
+12119;CUNEIFORM SIGN GU2 TIMES KAK;Lo;0;L;;;;;N;;;;;
+1211A;CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+1211B;CUNEIFORM SIGN GU2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+1211C;CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2;Lo;0;L;;;;;N;;;;;
+1211D;CUNEIFORM SIGN GU2 GUNU;Lo;0;L;;;;;N;;;;;
+1211E;CUNEIFORM SIGN GUD;Lo;0;L;;;;;N;;;;;
+1211F;CUNEIFORM SIGN GUD TIMES A PLUS KUR;Lo;0;L;;;;;N;;;;;
+12120;CUNEIFORM SIGN GUD TIMES KUR;Lo;0;L;;;;;N;;;;;
+12121;CUNEIFORM SIGN GUD OVER GUD LUGAL;Lo;0;L;;;;;N;;;;;
+12122;CUNEIFORM SIGN GUL;Lo;0;L;;;;;N;;;;;
+12123;CUNEIFORM SIGN GUM;Lo;0;L;;;;;N;;;;;
+12124;CUNEIFORM SIGN GUM TIMES SHE;Lo;0;L;;;;;N;;;;;
+12125;CUNEIFORM SIGN GUR;Lo;0;L;;;;;N;;;;;
+12126;CUNEIFORM SIGN GUR7;Lo;0;L;;;;;N;;;;;
+12127;CUNEIFORM SIGN GURUN;Lo;0;L;;;;;N;;;;;
+12128;CUNEIFORM SIGN GURUSH;Lo;0;L;;;;;N;;;;;
+12129;CUNEIFORM SIGN HA;Lo;0;L;;;;;N;;;;;
+1212A;CUNEIFORM SIGN HA TENU;Lo;0;L;;;;;N;;;;;
+1212B;CUNEIFORM SIGN HA GUNU;Lo;0;L;;;;;N;;;;;
+1212C;CUNEIFORM SIGN HAL;Lo;0;L;;;;;N;;;;;
+1212D;CUNEIFORM SIGN HI;Lo;0;L;;;;;N;;;;;
+1212E;CUNEIFORM SIGN HI TIMES ASH;Lo;0;L;;;;;N;;;;;
+1212F;CUNEIFORM SIGN HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+12130;CUNEIFORM SIGN HI TIMES BAD;Lo;0;L;;;;;N;;;;;
+12131;CUNEIFORM SIGN HI TIMES DISH;Lo;0;L;;;;;N;;;;;
+12132;CUNEIFORM SIGN HI TIMES GAD;Lo;0;L;;;;;N;;;;;
+12133;CUNEIFORM SIGN HI TIMES KIN;Lo;0;L;;;;;N;;;;;
+12134;CUNEIFORM SIGN HI TIMES NUN;Lo;0;L;;;;;N;;;;;
+12135;CUNEIFORM SIGN HI TIMES SHE;Lo;0;L;;;;;N;;;;;
+12136;CUNEIFORM SIGN HI TIMES U;Lo;0;L;;;;;N;;;;;
+12137;CUNEIFORM SIGN HU;Lo;0;L;;;;;N;;;;;
+12138;CUNEIFORM SIGN HUB2;Lo;0;L;;;;;N;;;;;
+12139;CUNEIFORM SIGN HUB2 TIMES AN;Lo;0;L;;;;;N;;;;;
+1213A;CUNEIFORM SIGN HUB2 TIMES HAL;Lo;0;L;;;;;N;;;;;
+1213B;CUNEIFORM SIGN HUB2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+1213C;CUNEIFORM SIGN HUB2 TIMES LISH;Lo;0;L;;;;;N;;;;;
+1213D;CUNEIFORM SIGN HUB2 TIMES UD;Lo;0;L;;;;;N;;;;;
+1213E;CUNEIFORM SIGN HUL2;Lo;0;L;;;;;N;;;;;
+1213F;CUNEIFORM SIGN I;Lo;0;L;;;;;N;;;;;
+12140;CUNEIFORM SIGN I A;Lo;0;L;;;;;N;;;;;
+12141;CUNEIFORM SIGN IB;Lo;0;L;;;;;N;;;;;
+12142;CUNEIFORM SIGN IDIM;Lo;0;L;;;;;N;;;;;
+12143;CUNEIFORM SIGN IDIM OVER IDIM BUR;Lo;0;L;;;;;N;;;;;
+12144;CUNEIFORM SIGN IDIM OVER IDIM SQUARED;Lo;0;L;;;;;N;;;;;
+12145;CUNEIFORM SIGN IG;Lo;0;L;;;;;N;;;;;
+12146;CUNEIFORM SIGN IGI;Lo;0;L;;;;;N;;;;;
+12147;CUNEIFORM SIGN IGI DIB;Lo;0;L;;;;;N;;;;;
+12148;CUNEIFORM SIGN IGI RI;Lo;0;L;;;;;N;;;;;
+12149;CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD;Lo;0;L;;;;;N;;;;;
+1214A;CUNEIFORM SIGN IGI GUNU;Lo;0;L;;;;;N;;;;;
+1214B;CUNEIFORM SIGN IL;Lo;0;L;;;;;N;;;;;
+1214C;CUNEIFORM SIGN IL TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1214D;CUNEIFORM SIGN IL2;Lo;0;L;;;;;N;;;;;
+1214E;CUNEIFORM SIGN IM;Lo;0;L;;;;;N;;;;;
+1214F;CUNEIFORM SIGN IM TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12150;CUNEIFORM SIGN IM CROSSING IM;Lo;0;L;;;;;N;;;;;
+12151;CUNEIFORM SIGN IM OPPOSING IM;Lo;0;L;;;;;N;;;;;
+12152;CUNEIFORM SIGN IM SQUARED;Lo;0;L;;;;;N;;;;;
+12153;CUNEIFORM SIGN IMIN;Lo;0;L;;;;;N;;;;;
+12154;CUNEIFORM SIGN IN;Lo;0;L;;;;;N;;;;;
+12155;CUNEIFORM SIGN IR;Lo;0;L;;;;;N;;;;;
+12156;CUNEIFORM SIGN ISH;Lo;0;L;;;;;N;;;;;
+12157;CUNEIFORM SIGN KA;Lo;0;L;;;;;N;;;;;
+12158;CUNEIFORM SIGN KA TIMES A;Lo;0;L;;;;;N;;;;;
+12159;CUNEIFORM SIGN KA TIMES AD;Lo;0;L;;;;;N;;;;;
+1215A;CUNEIFORM SIGN KA TIMES AD PLUS KU3;Lo;0;L;;;;;N;;;;;
+1215B;CUNEIFORM SIGN KA TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1215C;CUNEIFORM SIGN KA TIMES BAD;Lo;0;L;;;;;N;;;;;
+1215D;CUNEIFORM SIGN KA TIMES BALAG;Lo;0;L;;;;;N;;;;;
+1215E;CUNEIFORM SIGN KA TIMES BAR;Lo;0;L;;;;;N;;;;;
+1215F;CUNEIFORM SIGN KA TIMES BI;Lo;0;L;;;;;N;;;;;
+12160;CUNEIFORM SIGN KA TIMES ERIN2;Lo;0;L;;;;;N;;;;;
+12161;CUNEIFORM SIGN KA TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12162;CUNEIFORM SIGN KA TIMES GA;Lo;0;L;;;;;N;;;;;
+12163;CUNEIFORM SIGN KA TIMES GAL;Lo;0;L;;;;;N;;;;;
+12164;CUNEIFORM SIGN KA TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12165;CUNEIFORM SIGN KA TIMES GAR;Lo;0;L;;;;;N;;;;;
+12166;CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A;Lo;0;L;;;;;N;;;;;
+12167;CUNEIFORM SIGN KA TIMES GI;Lo;0;L;;;;;N;;;;;
+12168;CUNEIFORM SIGN KA TIMES GIR2;Lo;0;L;;;;;N;;;;;
+12169;CUNEIFORM SIGN KA TIMES GISH PLUS SAR;Lo;0;L;;;;;N;;;;;
+1216A;CUNEIFORM SIGN KA TIMES GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
+1216B;CUNEIFORM SIGN KA TIMES GU;Lo;0;L;;;;;N;;;;;
+1216C;CUNEIFORM SIGN KA TIMES GUR7;Lo;0;L;;;;;N;;;;;
+1216D;CUNEIFORM SIGN KA TIMES IGI;Lo;0;L;;;;;N;;;;;
+1216E;CUNEIFORM SIGN KA TIMES IM;Lo;0;L;;;;;N;;;;;
+1216F;CUNEIFORM SIGN KA TIMES KAK;Lo;0;L;;;;;N;;;;;
+12170;CUNEIFORM SIGN KA TIMES KI;Lo;0;L;;;;;N;;;;;
+12171;CUNEIFORM SIGN KA TIMES KID;Lo;0;L;;;;;N;;;;;
+12172;CUNEIFORM SIGN KA TIMES LI;Lo;0;L;;;;;N;;;;;
+12173;CUNEIFORM SIGN KA TIMES LU;Lo;0;L;;;;;N;;;;;
+12174;CUNEIFORM SIGN KA TIMES ME;Lo;0;L;;;;;N;;;;;
+12175;CUNEIFORM SIGN KA TIMES ME PLUS DU;Lo;0;L;;;;;N;;;;;
+12176;CUNEIFORM SIGN KA TIMES ME PLUS GI;Lo;0;L;;;;;N;;;;;
+12177;CUNEIFORM SIGN KA TIMES ME PLUS TE;Lo;0;L;;;;;N;;;;;
+12178;CUNEIFORM SIGN KA TIMES MI;Lo;0;L;;;;;N;;;;;
+12179;CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ;Lo;0;L;;;;;N;;;;;
+1217A;CUNEIFORM SIGN KA TIMES NE;Lo;0;L;;;;;N;;;;;
+1217B;CUNEIFORM SIGN KA TIMES NUN;Lo;0;L;;;;;N;;;;;
+1217C;CUNEIFORM SIGN KA TIMES PI;Lo;0;L;;;;;N;;;;;
+1217D;CUNEIFORM SIGN KA TIMES RU;Lo;0;L;;;;;N;;;;;
+1217E;CUNEIFORM SIGN KA TIMES SA;Lo;0;L;;;;;N;;;;;
+1217F;CUNEIFORM SIGN KA TIMES SAR;Lo;0;L;;;;;N;;;;;
+12180;CUNEIFORM SIGN KA TIMES SHA;Lo;0;L;;;;;N;;;;;
+12181;CUNEIFORM SIGN KA TIMES SHE;Lo;0;L;;;;;N;;;;;
+12182;CUNEIFORM SIGN KA TIMES SHID;Lo;0;L;;;;;N;;;;;
+12183;CUNEIFORM SIGN KA TIMES SHU;Lo;0;L;;;;;N;;;;;
+12184;CUNEIFORM SIGN KA TIMES SIG;Lo;0;L;;;;;N;;;;;
+12185;CUNEIFORM SIGN KA TIMES SUHUR;Lo;0;L;;;;;N;;;;;
+12186;CUNEIFORM SIGN KA TIMES TAR;Lo;0;L;;;;;N;;;;;
+12187;CUNEIFORM SIGN KA TIMES U;Lo;0;L;;;;;N;;;;;
+12188;CUNEIFORM SIGN KA TIMES U2;Lo;0;L;;;;;N;;;;;
+12189;CUNEIFORM SIGN KA TIMES UD;Lo;0;L;;;;;N;;;;;
+1218A;CUNEIFORM SIGN KA TIMES UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
+1218B;CUNEIFORM SIGN KA TIMES USH;Lo;0;L;;;;;N;;;;;
+1218C;CUNEIFORM SIGN KA TIMES ZI;Lo;0;L;;;;;N;;;;;
+1218D;CUNEIFORM SIGN KA2;Lo;0;L;;;;;N;;;;;
+1218E;CUNEIFORM SIGN KA2 CROSSING KA2;Lo;0;L;;;;;N;;;;;
+1218F;CUNEIFORM SIGN KAB;Lo;0;L;;;;;N;;;;;
+12190;CUNEIFORM SIGN KAD2;Lo;0;L;;;;;N;;;;;
+12191;CUNEIFORM SIGN KAD3;Lo;0;L;;;;;N;;;;;
+12192;CUNEIFORM SIGN KAD4;Lo;0;L;;;;;N;;;;;
+12193;CUNEIFORM SIGN KAD5;Lo;0;L;;;;;N;;;;;
+12194;CUNEIFORM SIGN KAD5 OVER KAD5;Lo;0;L;;;;;N;;;;;
+12195;CUNEIFORM SIGN KAK;Lo;0;L;;;;;N;;;;;
+12196;CUNEIFORM SIGN KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12197;CUNEIFORM SIGN KAL;Lo;0;L;;;;;N;;;;;
+12198;CUNEIFORM SIGN KAL TIMES BAD;Lo;0;L;;;;;N;;;;;
+12199;CUNEIFORM SIGN KAL CROSSING KAL;Lo;0;L;;;;;N;;;;;
+1219A;CUNEIFORM SIGN KAM2;Lo;0;L;;;;;N;;;;;
+1219B;CUNEIFORM SIGN KAM4;Lo;0;L;;;;;N;;;;;
+1219C;CUNEIFORM SIGN KASKAL;Lo;0;L;;;;;N;;;;;
+1219D;CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+1219E;CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+1219F;CUNEIFORM SIGN KESH2;Lo;0;L;;;;;N;;;;;
+121A0;CUNEIFORM SIGN KI;Lo;0;L;;;;;N;;;;;
+121A1;CUNEIFORM SIGN KI TIMES BAD;Lo;0;L;;;;;N;;;;;
+121A2;CUNEIFORM SIGN KI TIMES U;Lo;0;L;;;;;N;;;;;
+121A3;CUNEIFORM SIGN KI TIMES UD;Lo;0;L;;;;;N;;;;;
+121A4;CUNEIFORM SIGN KID;Lo;0;L;;;;;N;;;;;
+121A5;CUNEIFORM SIGN KIN;Lo;0;L;;;;;N;;;;;
+121A6;CUNEIFORM SIGN KISAL;Lo;0;L;;;;;N;;;;;
+121A7;CUNEIFORM SIGN KISH;Lo;0;L;;;;;N;;;;;
+121A8;CUNEIFORM SIGN KISIM5;Lo;0;L;;;;;N;;;;;
+121A9;CUNEIFORM SIGN KISIM5 OVER KISIM5;Lo;0;L;;;;;N;;;;;
+121AA;CUNEIFORM SIGN KU;Lo;0;L;;;;;N;;;;;
+121AB;CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+121AC;CUNEIFORM SIGN KU3;Lo;0;L;;;;;N;;;;;
+121AD;CUNEIFORM SIGN KU4;Lo;0;L;;;;;N;;;;;
+121AE;CUNEIFORM SIGN KU4 VARIANT FORM;Lo;0;L;;;;;N;;;;;
+121AF;CUNEIFORM SIGN KU7;Lo;0;L;;;;;N;;;;;
+121B0;CUNEIFORM SIGN KUL;Lo;0;L;;;;;N;;;;;
+121B1;CUNEIFORM SIGN KUL GUNU;Lo;0;L;;;;;N;;;;;
+121B2;CUNEIFORM SIGN KUN;Lo;0;L;;;;;N;;;;;
+121B3;CUNEIFORM SIGN KUR;Lo;0;L;;;;;N;;;;;
+121B4;CUNEIFORM SIGN KUR OPPOSING KUR;Lo;0;L;;;;;N;;;;;
+121B5;CUNEIFORM SIGN KUSHU2;Lo;0;L;;;;;N;;;;;
+121B6;CUNEIFORM SIGN KWU318;Lo;0;L;;;;;N;;;;;
+121B7;CUNEIFORM SIGN LA;Lo;0;L;;;;;N;;;;;
+121B8;CUNEIFORM SIGN LAGAB;Lo;0;L;;;;;N;;;;;
+121B9;CUNEIFORM SIGN LAGAB TIMES A;Lo;0;L;;;;;N;;;;;
+121BA;CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
+121BB;CUNEIFORM SIGN LAGAB TIMES A PLUS GAR;Lo;0;L;;;;;N;;;;;
+121BC;CUNEIFORM SIGN LAGAB TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
+121BD;CUNEIFORM SIGN LAGAB TIMES AL;Lo;0;L;;;;;N;;;;;
+121BE;CUNEIFORM SIGN LAGAB TIMES AN;Lo;0;L;;;;;N;;;;;
+121BF;CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
+121C0;CUNEIFORM SIGN LAGAB TIMES BAD;Lo;0;L;;;;;N;;;;;
+121C1;CUNEIFORM SIGN LAGAB TIMES BI;Lo;0;L;;;;;N;;;;;
+121C2;CUNEIFORM SIGN LAGAB TIMES DAR;Lo;0;L;;;;;N;;;;;
+121C3;CUNEIFORM SIGN LAGAB TIMES EN;Lo;0;L;;;;;N;;;;;
+121C4;CUNEIFORM SIGN LAGAB TIMES GA;Lo;0;L;;;;;N;;;;;
+121C5;CUNEIFORM SIGN LAGAB TIMES GAR;Lo;0;L;;;;;N;;;;;
+121C6;CUNEIFORM SIGN LAGAB TIMES GUD;Lo;0;L;;;;;N;;;;;
+121C7;CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD;Lo;0;L;;;;;N;;;;;
+121C8;CUNEIFORM SIGN LAGAB TIMES HA;Lo;0;L;;;;;N;;;;;
+121C9;CUNEIFORM SIGN LAGAB TIMES HAL;Lo;0;L;;;;;N;;;;;
+121CA;CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN;Lo;0;L;;;;;N;;;;;
+121CB;CUNEIFORM SIGN LAGAB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+121CC;CUNEIFORM SIGN LAGAB TIMES IM;Lo;0;L;;;;;N;;;;;
+121CD;CUNEIFORM SIGN LAGAB TIMES IM PLUS HA;Lo;0;L;;;;;N;;;;;
+121CE;CUNEIFORM SIGN LAGAB TIMES IM PLUS LU;Lo;0;L;;;;;N;;;;;
+121CF;CUNEIFORM SIGN LAGAB TIMES KI;Lo;0;L;;;;;N;;;;;
+121D0;CUNEIFORM SIGN LAGAB TIMES KIN;Lo;0;L;;;;;N;;;;;
+121D1;CUNEIFORM SIGN LAGAB TIMES KU3;Lo;0;L;;;;;N;;;;;
+121D2;CUNEIFORM SIGN LAGAB TIMES KUL;Lo;0;L;;;;;N;;;;;
+121D3;CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A;Lo;0;L;;;;;N;;;;;
+121D4;CUNEIFORM SIGN LAGAB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+121D5;CUNEIFORM SIGN LAGAB TIMES LISH;Lo;0;L;;;;;N;;;;;
+121D6;CUNEIFORM SIGN LAGAB TIMES LU;Lo;0;L;;;;;N;;;;;
+121D7;CUNEIFORM SIGN LAGAB TIMES LUL;Lo;0;L;;;;;N;;;;;
+121D8;CUNEIFORM SIGN LAGAB TIMES ME;Lo;0;L;;;;;N;;;;;
+121D9;CUNEIFORM SIGN LAGAB TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+121DA;CUNEIFORM SIGN LAGAB TIMES MUSH;Lo;0;L;;;;;N;;;;;
+121DB;CUNEIFORM SIGN LAGAB TIMES NE;Lo;0;L;;;;;N;;;;;
+121DC;CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
+121DD;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2;Lo;0;L;;;;;N;;;;;
+121DE;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU;Lo;0;L;;;;;N;;;;;
+121DF;CUNEIFORM SIGN LAGAB TIMES SHU2;Lo;0;L;;;;;N;;;;;
+121E0;CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2;Lo;0;L;;;;;N;;;;;
+121E1;CUNEIFORM SIGN LAGAB TIMES SUM;Lo;0;L;;;;;N;;;;;
+121E2;CUNEIFORM SIGN LAGAB TIMES TAG;Lo;0;L;;;;;N;;;;;
+121E3;CUNEIFORM SIGN LAGAB TIMES TAK4;Lo;0;L;;;;;N;;;;;
+121E4;CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA;Lo;0;L;;;;;N;;;;;
+121E5;CUNEIFORM SIGN LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+121E6;CUNEIFORM SIGN LAGAB TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
+121E7;CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+121E8;CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+121E9;CUNEIFORM SIGN LAGAB TIMES UD;Lo;0;L;;;;;N;;;;;
+121EA;CUNEIFORM SIGN LAGAB TIMES USH;Lo;0;L;;;;;N;;;;;
+121EB;CUNEIFORM SIGN LAGAB SQUARED;Lo;0;L;;;;;N;;;;;
+121EC;CUNEIFORM SIGN LAGAR;Lo;0;L;;;;;N;;;;;
+121ED;CUNEIFORM SIGN LAGAR TIMES SHE;Lo;0;L;;;;;N;;;;;
+121EE;CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
+121EF;CUNEIFORM SIGN LAGAR GUNU;Lo;0;L;;;;;N;;;;;
+121F0;CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE;Lo;0;L;;;;;N;;;;;
+121F1;CUNEIFORM SIGN LAHSHU;Lo;0;L;;;;;N;;;;;
+121F2;CUNEIFORM SIGN LAL;Lo;0;L;;;;;N;;;;;
+121F3;CUNEIFORM SIGN LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+121F4;CUNEIFORM SIGN LAM;Lo;0;L;;;;;N;;;;;
+121F5;CUNEIFORM SIGN LAM TIMES KUR;Lo;0;L;;;;;N;;;;;
+121F6;CUNEIFORM SIGN LAM TIMES KUR PLUS RU;Lo;0;L;;;;;N;;;;;
+121F7;CUNEIFORM SIGN LI;Lo;0;L;;;;;N;;;;;
+121F8;CUNEIFORM SIGN LIL;Lo;0;L;;;;;N;;;;;
+121F9;CUNEIFORM SIGN LIMMU2;Lo;0;L;;;;;N;;;;;
+121FA;CUNEIFORM SIGN LISH;Lo;0;L;;;;;N;;;;;
+121FB;CUNEIFORM SIGN LU;Lo;0;L;;;;;N;;;;;
+121FC;CUNEIFORM SIGN LU TIMES BAD;Lo;0;L;;;;;N;;;;;
+121FD;CUNEIFORM SIGN LU2;Lo;0;L;;;;;N;;;;;
+121FE;CUNEIFORM SIGN LU2 TIMES AL;Lo;0;L;;;;;N;;;;;
+121FF;CUNEIFORM SIGN LU2 TIMES BAD;Lo;0;L;;;;;N;;;;;
+12200;CUNEIFORM SIGN LU2 TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12201;CUNEIFORM SIGN LU2 TIMES ESH2 TENU;Lo;0;L;;;;;N;;;;;
+12202;CUNEIFORM SIGN LU2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12203;CUNEIFORM SIGN LU2 TIMES HI TIMES BAD;Lo;0;L;;;;;N;;;;;
+12204;CUNEIFORM SIGN LU2 TIMES IM;Lo;0;L;;;;;N;;;;;
+12205;CUNEIFORM SIGN LU2 TIMES KAD2;Lo;0;L;;;;;N;;;;;
+12206;CUNEIFORM SIGN LU2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12207;CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH;Lo;0;L;;;;;N;;;;;
+12208;CUNEIFORM SIGN LU2 TIMES KI;Lo;0;L;;;;;N;;;;;
+12209;CUNEIFORM SIGN LU2 TIMES LA PLUS ASH;Lo;0;L;;;;;N;;;;;
+1220A;CUNEIFORM SIGN LU2 TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+1220B;CUNEIFORM SIGN LU2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+1220C;CUNEIFORM SIGN LU2 TIMES NE;Lo;0;L;;;;;N;;;;;
+1220D;CUNEIFORM SIGN LU2 TIMES NU;Lo;0;L;;;;;N;;;;;
+1220E;CUNEIFORM SIGN LU2 TIMES SI PLUS ASH;Lo;0;L;;;;;N;;;;;
+1220F;CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU;Lo;0;L;;;;;N;;;;;
+12210;CUNEIFORM SIGN LU2 TIMES TUG2;Lo;0;L;;;;;N;;;;;
+12211;CUNEIFORM SIGN LU2 TENU;Lo;0;L;;;;;N;;;;;
+12212;CUNEIFORM SIGN LU2 CROSSING LU2;Lo;0;L;;;;;N;;;;;
+12213;CUNEIFORM SIGN LU2 OPPOSING LU2;Lo;0;L;;;;;N;;;;;
+12214;CUNEIFORM SIGN LU2 SQUARED;Lo;0;L;;;;;N;;;;;
+12215;CUNEIFORM SIGN LU2 SHESHIG;Lo;0;L;;;;;N;;;;;
+12216;CUNEIFORM SIGN LU3;Lo;0;L;;;;;N;;;;;
+12217;CUNEIFORM SIGN LUGAL;Lo;0;L;;;;;N;;;;;
+12218;CUNEIFORM SIGN LUGAL OVER LUGAL;Lo;0;L;;;;;N;;;;;
+12219;CUNEIFORM SIGN LUGAL OPPOSING LUGAL;Lo;0;L;;;;;N;;;;;
+1221A;CUNEIFORM SIGN LUGAL SHESHIG;Lo;0;L;;;;;N;;;;;
+1221B;CUNEIFORM SIGN LUH;Lo;0;L;;;;;N;;;;;
+1221C;CUNEIFORM SIGN LUL;Lo;0;L;;;;;N;;;;;
+1221D;CUNEIFORM SIGN LUM;Lo;0;L;;;;;N;;;;;
+1221E;CUNEIFORM SIGN LUM OVER LUM;Lo;0;L;;;;;N;;;;;
+1221F;CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+12220;CUNEIFORM SIGN MA;Lo;0;L;;;;;N;;;;;
+12221;CUNEIFORM SIGN MA TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12222;CUNEIFORM SIGN MA GUNU;Lo;0;L;;;;;N;;;;;
+12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;;
+12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;;
+12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;;
+12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;;
+12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;;
+12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;;
+12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;;
+1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;;
+1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;;
+1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;;
+1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;;
+1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;;
+1222F;CUNEIFORM SIGN MUG GUNU;Lo;0;L;;;;;N;;;;;
+12230;CUNEIFORM SIGN MUNSUB;Lo;0;L;;;;;N;;;;;
+12231;CUNEIFORM SIGN MURGU2;Lo;0;L;;;;;N;;;;;
+12232;CUNEIFORM SIGN MUSH;Lo;0;L;;;;;N;;;;;
+12233;CUNEIFORM SIGN MUSH TIMES A;Lo;0;L;;;;;N;;;;;
+12234;CUNEIFORM SIGN MUSH TIMES KUR;Lo;0;L;;;;;N;;;;;
+12235;CUNEIFORM SIGN MUSH TIMES ZA;Lo;0;L;;;;;N;;;;;
+12236;CUNEIFORM SIGN MUSH OVER MUSH;Lo;0;L;;;;;N;;;;;
+12237;CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
+12238;CUNEIFORM SIGN MUSH CROSSING MUSH;Lo;0;L;;;;;N;;;;;
+12239;CUNEIFORM SIGN MUSH3;Lo;0;L;;;;;N;;;;;
+1223A;CUNEIFORM SIGN MUSH3 TIMES A;Lo;0;L;;;;;N;;;;;
+1223B;CUNEIFORM SIGN MUSH3 TIMES A PLUS DI;Lo;0;L;;;;;N;;;;;
+1223C;CUNEIFORM SIGN MUSH3 TIMES DI;Lo;0;L;;;;;N;;;;;
+1223D;CUNEIFORM SIGN MUSH3 GUNU;Lo;0;L;;;;;N;;;;;
+1223E;CUNEIFORM SIGN NA;Lo;0;L;;;;;N;;;;;
+1223F;CUNEIFORM SIGN NA2;Lo;0;L;;;;;N;;;;;
+12240;CUNEIFORM SIGN NAGA;Lo;0;L;;;;;N;;;;;
+12241;CUNEIFORM SIGN NAGA INVERTED;Lo;0;L;;;;;N;;;;;
+12242;CUNEIFORM SIGN NAGA TIMES SHU TENU;Lo;0;L;;;;;N;;;;;
+12243;CUNEIFORM SIGN NAGA OPPOSING NAGA;Lo;0;L;;;;;N;;;;;
+12244;CUNEIFORM SIGN NAGAR;Lo;0;L;;;;;N;;;;;
+12245;CUNEIFORM SIGN NAM NUTILLU;Lo;0;L;;;;;N;;;;;
+12246;CUNEIFORM SIGN NAM;Lo;0;L;;;;;N;;;;;
+12247;CUNEIFORM SIGN NAM2;Lo;0;L;;;;;N;;;;;
+12248;CUNEIFORM SIGN NE;Lo;0;L;;;;;N;;;;;
+12249;CUNEIFORM SIGN NE TIMES A;Lo;0;L;;;;;N;;;;;
+1224A;CUNEIFORM SIGN NE TIMES UD;Lo;0;L;;;;;N;;;;;
+1224B;CUNEIFORM SIGN NE SHESHIG;Lo;0;L;;;;;N;;;;;
+1224C;CUNEIFORM SIGN NI;Lo;0;L;;;;;N;;;;;
+1224D;CUNEIFORM SIGN NI TIMES E;Lo;0;L;;;;;N;;;;;
+1224E;CUNEIFORM SIGN NI2;Lo;0;L;;;;;N;;;;;
+1224F;CUNEIFORM SIGN NIM;Lo;0;L;;;;;N;;;;;
+12250;CUNEIFORM SIGN NIM TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12251;CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12252;CUNEIFORM SIGN NINDA2;Lo;0;L;;;;;N;;;;;
+12253;CUNEIFORM SIGN NINDA2 TIMES AN;Lo;0;L;;;;;N;;;;;
+12254;CUNEIFORM SIGN NINDA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
+12255;CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
+12256;CUNEIFORM SIGN NINDA2 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12257;CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12258;CUNEIFORM SIGN NINDA2 TIMES NE;Lo;0;L;;;;;N;;;;;
+12259;CUNEIFORM SIGN NINDA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+1225A;CUNEIFORM SIGN NINDA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+1225B;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN;Lo;0;L;;;;;N;;;;;
+1225C;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225D;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225E;CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225F;CUNEIFORM SIGN NINDA2 TIMES USH;Lo;0;L;;;;;N;;;;;
+12260;CUNEIFORM SIGN NISAG;Lo;0;L;;;;;N;;;;;
+12261;CUNEIFORM SIGN NU;Lo;0;L;;;;;N;;;;;
+12262;CUNEIFORM SIGN NU11;Lo;0;L;;;;;N;;;;;
+12263;CUNEIFORM SIGN NUN;Lo;0;L;;;;;N;;;;;
+12264;CUNEIFORM SIGN NUN LAGAR TIMES GAR;Lo;0;L;;;;;N;;;;;
+12265;CUNEIFORM SIGN NUN LAGAR TIMES MASH;Lo;0;L;;;;;N;;;;;
+12266;CUNEIFORM SIGN NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
+12267;CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
+12268;CUNEIFORM SIGN NUN LAGAR TIMES USH;Lo;0;L;;;;;N;;;;;
+12269;CUNEIFORM SIGN NUN TENU;Lo;0;L;;;;;N;;;;;
+1226A;CUNEIFORM SIGN NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+1226B;CUNEIFORM SIGN NUN CROSSING NUN;Lo;0;L;;;;;N;;;;;
+1226C;CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR;Lo;0;L;;;;;N;;;;;
+1226D;CUNEIFORM SIGN NUNUZ;Lo;0;L;;;;;N;;;;;
+1226E;CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
+1226F;CUNEIFORM SIGN NUNUZ AB2 TIMES BI;Lo;0;L;;;;;N;;;;;
+12270;CUNEIFORM SIGN NUNUZ AB2 TIMES DUG;Lo;0;L;;;;;N;;;;;
+12271;CUNEIFORM SIGN NUNUZ AB2 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12272;CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12273;CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12274;CUNEIFORM SIGN NUNUZ AB2 TIMES LA;Lo;0;L;;;;;N;;;;;
+12275;CUNEIFORM SIGN NUNUZ AB2 TIMES NE;Lo;0;L;;;;;N;;;;;
+12276;CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3;Lo;0;L;;;;;N;;;;;
+12277;CUNEIFORM SIGN NUNUZ AB2 TIMES U2;Lo;0;L;;;;;N;;;;;
+12278;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
+12279;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U;Lo;0;L;;;;;N;;;;;
+1227A;CUNEIFORM SIGN PA;Lo;0;L;;;;;N;;;;;
+1227B;CUNEIFORM SIGN PAD;Lo;0;L;;;;;N;;;;;
+1227C;CUNEIFORM SIGN PAN;Lo;0;L;;;;;N;;;;;
+1227D;CUNEIFORM SIGN PAP;Lo;0;L;;;;;N;;;;;
+1227E;CUNEIFORM SIGN PESH2;Lo;0;L;;;;;N;;;;;
+1227F;CUNEIFORM SIGN PI;Lo;0;L;;;;;N;;;;;
+12280;CUNEIFORM SIGN PI TIMES A;Lo;0;L;;;;;N;;;;;
+12281;CUNEIFORM SIGN PI TIMES AB;Lo;0;L;;;;;N;;;;;
+12282;CUNEIFORM SIGN PI TIMES BI;Lo;0;L;;;;;N;;;;;
+12283;CUNEIFORM SIGN PI TIMES BU;Lo;0;L;;;;;N;;;;;
+12284;CUNEIFORM SIGN PI TIMES E;Lo;0;L;;;;;N;;;;;
+12285;CUNEIFORM SIGN PI TIMES I;Lo;0;L;;;;;N;;;;;
+12286;CUNEIFORM SIGN PI TIMES IB;Lo;0;L;;;;;N;;;;;
+12287;CUNEIFORM SIGN PI TIMES U;Lo;0;L;;;;;N;;;;;
+12288;CUNEIFORM SIGN PI TIMES U2;Lo;0;L;;;;;N;;;;;
+12289;CUNEIFORM SIGN PI CROSSING PI;Lo;0;L;;;;;N;;;;;
+1228A;CUNEIFORM SIGN PIRIG;Lo;0;L;;;;;N;;;;;
+1228B;CUNEIFORM SIGN PIRIG TIMES KAL;Lo;0;L;;;;;N;;;;;
+1228C;CUNEIFORM SIGN PIRIG TIMES UD;Lo;0;L;;;;;N;;;;;
+1228D;CUNEIFORM SIGN PIRIG TIMES ZA;Lo;0;L;;;;;N;;;;;
+1228E;CUNEIFORM SIGN PIRIG OPPOSING PIRIG;Lo;0;L;;;;;N;;;;;
+1228F;CUNEIFORM SIGN RA;Lo;0;L;;;;;N;;;;;
+12290;CUNEIFORM SIGN RAB;Lo;0;L;;;;;N;;;;;
+12291;CUNEIFORM SIGN RI;Lo;0;L;;;;;N;;;;;
+12292;CUNEIFORM SIGN RU;Lo;0;L;;;;;N;;;;;
+12293;CUNEIFORM SIGN SA;Lo;0;L;;;;;N;;;;;
+12294;CUNEIFORM SIGN SAG NUTILLU;Lo;0;L;;;;;N;;;;;
+12295;CUNEIFORM SIGN SAG;Lo;0;L;;;;;N;;;;;
+12296;CUNEIFORM SIGN SAG TIMES A;Lo;0;L;;;;;N;;;;;
+12297;CUNEIFORM SIGN SAG TIMES DU;Lo;0;L;;;;;N;;;;;
+12298;CUNEIFORM SIGN SAG TIMES DUB;Lo;0;L;;;;;N;;;;;
+12299;CUNEIFORM SIGN SAG TIMES HA;Lo;0;L;;;;;N;;;;;
+1229A;CUNEIFORM SIGN SAG TIMES KAK;Lo;0;L;;;;;N;;;;;
+1229B;CUNEIFORM SIGN SAG TIMES KUR;Lo;0;L;;;;;N;;;;;
+1229C;CUNEIFORM SIGN SAG TIMES LUM;Lo;0;L;;;;;N;;;;;
+1229D;CUNEIFORM SIGN SAG TIMES MI;Lo;0;L;;;;;N;;;;;
+1229E;CUNEIFORM SIGN SAG TIMES NUN;Lo;0;L;;;;;N;;;;;
+1229F;CUNEIFORM SIGN SAG TIMES SAL;Lo;0;L;;;;;N;;;;;
+122A0;CUNEIFORM SIGN SAG TIMES SHID;Lo;0;L;;;;;N;;;;;
+122A1;CUNEIFORM SIGN SAG TIMES TAB;Lo;0;L;;;;;N;;;;;
+122A2;CUNEIFORM SIGN SAG TIMES U2;Lo;0;L;;;;;N;;;;;
+122A3;CUNEIFORM SIGN SAG TIMES UB;Lo;0;L;;;;;N;;;;;
+122A4;CUNEIFORM SIGN SAG TIMES UM;Lo;0;L;;;;;N;;;;;
+122A5;CUNEIFORM SIGN SAG TIMES UR;Lo;0;L;;;;;N;;;;;
+122A6;CUNEIFORM SIGN SAG TIMES USH;Lo;0;L;;;;;N;;;;;
+122A7;CUNEIFORM SIGN SAG OVER SAG;Lo;0;L;;;;;N;;;;;
+122A8;CUNEIFORM SIGN SAG GUNU;Lo;0;L;;;;;N;;;;;
+122A9;CUNEIFORM SIGN SAL;Lo;0;L;;;;;N;;;;;
+122AA;CUNEIFORM SIGN SAL LAGAB TIMES ASH2;Lo;0;L;;;;;N;;;;;
+122AB;CUNEIFORM SIGN SANGA2;Lo;0;L;;;;;N;;;;;
+122AC;CUNEIFORM SIGN SAR;Lo;0;L;;;;;N;;;;;
+122AD;CUNEIFORM SIGN SHA;Lo;0;L;;;;;N;;;;;
+122AE;CUNEIFORM SIGN SHA3;Lo;0;L;;;;;N;;;;;
+122AF;CUNEIFORM SIGN SHA3 TIMES A;Lo;0;L;;;;;N;;;;;
+122B0;CUNEIFORM SIGN SHA3 TIMES BAD;Lo;0;L;;;;;N;;;;;
+122B1;CUNEIFORM SIGN SHA3 TIMES GISH;Lo;0;L;;;;;N;;;;;
+122B2;CUNEIFORM SIGN SHA3 TIMES NE;Lo;0;L;;;;;N;;;;;
+122B3;CUNEIFORM SIGN SHA3 TIMES SHU2;Lo;0;L;;;;;N;;;;;
+122B4;CUNEIFORM SIGN SHA3 TIMES TUR;Lo;0;L;;;;;N;;;;;
+122B5;CUNEIFORM SIGN SHA3 TIMES U;Lo;0;L;;;;;N;;;;;
+122B6;CUNEIFORM SIGN SHA3 TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
+122B7;CUNEIFORM SIGN SHA6;Lo;0;L;;;;;N;;;;;
+122B8;CUNEIFORM SIGN SHAB6;Lo;0;L;;;;;N;;;;;
+122B9;CUNEIFORM SIGN SHAR2;Lo;0;L;;;;;N;;;;;
+122BA;CUNEIFORM SIGN SHE;Lo;0;L;;;;;N;;;;;
+122BB;CUNEIFORM SIGN SHE HU;Lo;0;L;;;;;N;;;;;
+122BC;CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+122BD;CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+122BE;CUNEIFORM SIGN SHEG9;Lo;0;L;;;;;N;;;;;
+122BF;CUNEIFORM SIGN SHEN;Lo;0;L;;;;;N;;;;;
+122C0;CUNEIFORM SIGN SHESH;Lo;0;L;;;;;N;;;;;
+122C1;CUNEIFORM SIGN SHESH2;Lo;0;L;;;;;N;;;;;
+122C2;CUNEIFORM SIGN SHESHLAM;Lo;0;L;;;;;N;;;;;
+122C3;CUNEIFORM SIGN SHID;Lo;0;L;;;;;N;;;;;
+122C4;CUNEIFORM SIGN SHID TIMES A;Lo;0;L;;;;;N;;;;;
+122C5;CUNEIFORM SIGN SHID TIMES IM;Lo;0;L;;;;;N;;;;;
+122C6;CUNEIFORM SIGN SHIM;Lo;0;L;;;;;N;;;;;
+122C7;CUNEIFORM SIGN SHIM TIMES A;Lo;0;L;;;;;N;;;;;
+122C8;CUNEIFORM SIGN SHIM TIMES BAL;Lo;0;L;;;;;N;;;;;
+122C9;CUNEIFORM SIGN SHIM TIMES BULUG;Lo;0;L;;;;;N;;;;;
+122CA;CUNEIFORM SIGN SHIM TIMES DIN;Lo;0;L;;;;;N;;;;;
+122CB;CUNEIFORM SIGN SHIM TIMES GAR;Lo;0;L;;;;;N;;;;;
+122CC;CUNEIFORM SIGN SHIM TIMES IGI;Lo;0;L;;;;;N;;;;;
+122CD;CUNEIFORM SIGN SHIM TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+122CE;CUNEIFORM SIGN SHIM TIMES KUSHU2;Lo;0;L;;;;;N;;;;;
+122CF;CUNEIFORM SIGN SHIM TIMES LUL;Lo;0;L;;;;;N;;;;;
+122D0;CUNEIFORM SIGN SHIM TIMES MUG;Lo;0;L;;;;;N;;;;;
+122D1;CUNEIFORM SIGN SHIM TIMES SAL;Lo;0;L;;;;;N;;;;;
+122D2;CUNEIFORM SIGN SHINIG;Lo;0;L;;;;;N;;;;;
+122D3;CUNEIFORM SIGN SHIR;Lo;0;L;;;;;N;;;;;
+122D4;CUNEIFORM SIGN SHIR TENU;Lo;0;L;;;;;N;;;;;
+122D5;CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR;Lo;0;L;;;;;N;;;;;
+122D6;CUNEIFORM SIGN SHITA;Lo;0;L;;;;;N;;;;;
+122D7;CUNEIFORM SIGN SHU;Lo;0;L;;;;;N;;;;;
+122D8;CUNEIFORM SIGN SHU OVER INVERTED SHU;Lo;0;L;;;;;N;;;;;
+122D9;CUNEIFORM SIGN SHU2;Lo;0;L;;;;;N;;;;;
+122DA;CUNEIFORM SIGN SHUBUR;Lo;0;L;;;;;N;;;;;
+122DB;CUNEIFORM SIGN SI;Lo;0;L;;;;;N;;;;;
+122DC;CUNEIFORM SIGN SI GUNU;Lo;0;L;;;;;N;;;;;
+122DD;CUNEIFORM SIGN SIG;Lo;0;L;;;;;N;;;;;
+122DE;CUNEIFORM SIGN SIG4;Lo;0;L;;;;;N;;;;;
+122DF;CUNEIFORM SIGN SIG4 OVER SIG4 SHU2;Lo;0;L;;;;;N;;;;;
+122E0;CUNEIFORM SIGN SIK2;Lo;0;L;;;;;N;;;;;
+122E1;CUNEIFORM SIGN SILA3;Lo;0;L;;;;;N;;;;;
+122E2;CUNEIFORM SIGN SU;Lo;0;L;;;;;N;;;;;
+122E3;CUNEIFORM SIGN SU OVER SU;Lo;0;L;;;;;N;;;;;
+122E4;CUNEIFORM SIGN SUD;Lo;0;L;;;;;N;;;;;
+122E5;CUNEIFORM SIGN SUD2;Lo;0;L;;;;;N;;;;;
+122E6;CUNEIFORM SIGN SUHUR;Lo;0;L;;;;;N;;;;;
+122E7;CUNEIFORM SIGN SUM;Lo;0;L;;;;;N;;;;;
+122E8;CUNEIFORM SIGN SUMASH;Lo;0;L;;;;;N;;;;;
+122E9;CUNEIFORM SIGN SUR;Lo;0;L;;;;;N;;;;;
+122EA;CUNEIFORM SIGN SUR9;Lo;0;L;;;;;N;;;;;
+122EB;CUNEIFORM SIGN TA;Lo;0;L;;;;;N;;;;;
+122EC;CUNEIFORM SIGN TA ASTERISK;Lo;0;L;;;;;N;;;;;
+122ED;CUNEIFORM SIGN TA TIMES HI;Lo;0;L;;;;;N;;;;;
+122EE;CUNEIFORM SIGN TA TIMES MI;Lo;0;L;;;;;N;;;;;
+122EF;CUNEIFORM SIGN TA GUNU;Lo;0;L;;;;;N;;;;;
+122F0;CUNEIFORM SIGN TAB;Lo;0;L;;;;;N;;;;;
+122F1;CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH;Lo;0;L;;;;;N;;;;;
+122F2;CUNEIFORM SIGN TAB SQUARED;Lo;0;L;;;;;N;;;;;
+122F3;CUNEIFORM SIGN TAG;Lo;0;L;;;;;N;;;;;
+122F4;CUNEIFORM SIGN TAG TIMES BI;Lo;0;L;;;;;N;;;;;
+122F5;CUNEIFORM SIGN TAG TIMES GUD;Lo;0;L;;;;;N;;;;;
+122F6;CUNEIFORM SIGN TAG TIMES SHE;Lo;0;L;;;;;N;;;;;
+122F7;CUNEIFORM SIGN TAG TIMES SHU;Lo;0;L;;;;;N;;;;;
+122F8;CUNEIFORM SIGN TAG TIMES TUG2;Lo;0;L;;;;;N;;;;;
+122F9;CUNEIFORM SIGN TAG TIMES UD;Lo;0;L;;;;;N;;;;;
+122FA;CUNEIFORM SIGN TAK4;Lo;0;L;;;;;N;;;;;
+122FB;CUNEIFORM SIGN TAR;Lo;0;L;;;;;N;;;;;
+122FC;CUNEIFORM SIGN TE;Lo;0;L;;;;;N;;;;;
+122FD;CUNEIFORM SIGN TE GUNU;Lo;0;L;;;;;N;;;;;
+122FE;CUNEIFORM SIGN TI;Lo;0;L;;;;;N;;;;;
+122FF;CUNEIFORM SIGN TI TENU;Lo;0;L;;;;;N;;;;;
+12300;CUNEIFORM SIGN TIL;Lo;0;L;;;;;N;;;;;
+12301;CUNEIFORM SIGN TIR;Lo;0;L;;;;;N;;;;;
+12302;CUNEIFORM SIGN TIR TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12303;CUNEIFORM SIGN TIR OVER TIR;Lo;0;L;;;;;N;;;;;
+12304;CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+12305;CUNEIFORM SIGN TU;Lo;0;L;;;;;N;;;;;
+12306;CUNEIFORM SIGN TUG2;Lo;0;L;;;;;N;;;;;
+12307;CUNEIFORM SIGN TUK;Lo;0;L;;;;;N;;;;;
+12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;;
+12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;;
+1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;;
+1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;;
+1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;;
+1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;;
+1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;;
+12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;;
+12311;CUNEIFORM SIGN U2;Lo;0;L;;;;;N;;;;;
+12312;CUNEIFORM SIGN UB;Lo;0;L;;;;;N;;;;;
+12313;CUNEIFORM SIGN UD;Lo;0;L;;;;;N;;;;;
+12314;CUNEIFORM SIGN UD KUSHU2;Lo;0;L;;;;;N;;;;;
+12315;CUNEIFORM SIGN UD TIMES BAD;Lo;0;L;;;;;N;;;;;
+12316;CUNEIFORM SIGN UD TIMES MI;Lo;0;L;;;;;N;;;;;
+12317;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+12318;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU;Lo;0;L;;;;;N;;;;;
+12319;CUNEIFORM SIGN UD GUNU;Lo;0;L;;;;;N;;;;;
+1231A;CUNEIFORM SIGN UD SHESHIG;Lo;0;L;;;;;N;;;;;
+1231B;CUNEIFORM SIGN UD SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;;
+1231C;CUNEIFORM SIGN UDUG;Lo;0;L;;;;;N;;;;;
+1231D;CUNEIFORM SIGN UM;Lo;0;L;;;;;N;;;;;
+1231E;CUNEIFORM SIGN UM TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+1231F;CUNEIFORM SIGN UM TIMES ME PLUS DA;Lo;0;L;;;;;N;;;;;
+12320;CUNEIFORM SIGN UM TIMES SHA3;Lo;0;L;;;;;N;;;;;
+12321;CUNEIFORM SIGN UM TIMES U;Lo;0;L;;;;;N;;;;;
+12322;CUNEIFORM SIGN UMBIN;Lo;0;L;;;;;N;;;;;
+12323;CUNEIFORM SIGN UMUM;Lo;0;L;;;;;N;;;;;
+12324;CUNEIFORM SIGN UMUM TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+12325;CUNEIFORM SIGN UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
+12326;CUNEIFORM SIGN UN;Lo;0;L;;;;;N;;;;;
+12327;CUNEIFORM SIGN UN GUNU;Lo;0;L;;;;;N;;;;;
+12328;CUNEIFORM SIGN UR;Lo;0;L;;;;;N;;;;;
+12329;CUNEIFORM SIGN UR CROSSING UR;Lo;0;L;;;;;N;;;;;
+1232A;CUNEIFORM SIGN UR SHESHIG;Lo;0;L;;;;;N;;;;;
+1232B;CUNEIFORM SIGN UR2;Lo;0;L;;;;;N;;;;;
+1232C;CUNEIFORM SIGN UR2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
+1232D;CUNEIFORM SIGN UR2 TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
+1232E;CUNEIFORM SIGN UR2 TIMES AL;Lo;0;L;;;;;N;;;;;
+1232F;CUNEIFORM SIGN UR2 TIMES HA;Lo;0;L;;;;;N;;;;;
+12330;CUNEIFORM SIGN UR2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+12331;CUNEIFORM SIGN UR2 TIMES U2;Lo;0;L;;;;;N;;;;;
+12332;CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+12333;CUNEIFORM SIGN UR2 TIMES U2 PLUS BI;Lo;0;L;;;;;N;;;;;
+12334;CUNEIFORM SIGN UR4;Lo;0;L;;;;;N;;;;;
+12335;CUNEIFORM SIGN URI;Lo;0;L;;;;;N;;;;;
+12336;CUNEIFORM SIGN URI3;Lo;0;L;;;;;N;;;;;
+12337;CUNEIFORM SIGN URU;Lo;0;L;;;;;N;;;;;
+12338;CUNEIFORM SIGN URU TIMES A;Lo;0;L;;;;;N;;;;;
+12339;CUNEIFORM SIGN URU TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
+1233A;CUNEIFORM SIGN URU TIMES BAR;Lo;0;L;;;;;N;;;;;
+1233B;CUNEIFORM SIGN URU TIMES DUN;Lo;0;L;;;;;N;;;;;
+1233C;CUNEIFORM SIGN URU TIMES GA;Lo;0;L;;;;;N;;;;;
+1233D;CUNEIFORM SIGN URU TIMES GAL;Lo;0;L;;;;;N;;;;;
+1233E;CUNEIFORM SIGN URU TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1233F;CUNEIFORM SIGN URU TIMES GAR;Lo;0;L;;;;;N;;;;;
+12340;CUNEIFORM SIGN URU TIMES GU;Lo;0;L;;;;;N;;;;;
+12341;CUNEIFORM SIGN URU TIMES HA;Lo;0;L;;;;;N;;;;;
+12342;CUNEIFORM SIGN URU TIMES IGI;Lo;0;L;;;;;N;;;;;
+12343;CUNEIFORM SIGN URU TIMES IM;Lo;0;L;;;;;N;;;;;
+12344;CUNEIFORM SIGN URU TIMES ISH;Lo;0;L;;;;;N;;;;;
+12345;CUNEIFORM SIGN URU TIMES KI;Lo;0;L;;;;;N;;;;;
+12346;CUNEIFORM SIGN URU TIMES LUM;Lo;0;L;;;;;N;;;;;
+12347;CUNEIFORM SIGN URU TIMES MIN;Lo;0;L;;;;;N;;;;;
+12348;CUNEIFORM SIGN URU TIMES PA;Lo;0;L;;;;;N;;;;;
+12349;CUNEIFORM SIGN URU TIMES SHE;Lo;0;L;;;;;N;;;;;
+1234A;CUNEIFORM SIGN URU TIMES SIG4;Lo;0;L;;;;;N;;;;;
+1234B;CUNEIFORM SIGN URU TIMES TU;Lo;0;L;;;;;N;;;;;
+1234C;CUNEIFORM SIGN URU TIMES U PLUS GUD;Lo;0;L;;;;;N;;;;;
+1234D;CUNEIFORM SIGN URU TIMES UD;Lo;0;L;;;;;N;;;;;
+1234E;CUNEIFORM SIGN URU TIMES URUDA;Lo;0;L;;;;;N;;;;;
+1234F;CUNEIFORM SIGN URUDA;Lo;0;L;;;;;N;;;;;
+12350;CUNEIFORM SIGN URUDA TIMES U;Lo;0;L;;;;;N;;;;;
+12351;CUNEIFORM SIGN USH;Lo;0;L;;;;;N;;;;;
+12352;CUNEIFORM SIGN USH TIMES A;Lo;0;L;;;;;N;;;;;
+12353;CUNEIFORM SIGN USH TIMES KU;Lo;0;L;;;;;N;;;;;
+12354;CUNEIFORM SIGN USH TIMES KUR;Lo;0;L;;;;;N;;;;;
+12355;CUNEIFORM SIGN USH TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12356;CUNEIFORM SIGN USHX;Lo;0;L;;;;;N;;;;;
+12357;CUNEIFORM SIGN USH2;Lo;0;L;;;;;N;;;;;
+12358;CUNEIFORM SIGN USHUMX;Lo;0;L;;;;;N;;;;;
+12359;CUNEIFORM SIGN UTUKI;Lo;0;L;;;;;N;;;;;
+1235A;CUNEIFORM SIGN UZ3;Lo;0;L;;;;;N;;;;;
+1235B;CUNEIFORM SIGN UZ3 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+1235C;CUNEIFORM SIGN UZU;Lo;0;L;;;;;N;;;;;
+1235D;CUNEIFORM SIGN ZA;Lo;0;L;;;;;N;;;;;
+1235E;CUNEIFORM SIGN ZA TENU;Lo;0;L;;;;;N;;;;;
+1235F;CUNEIFORM SIGN ZA SQUARED TIMES KUR;Lo;0;L;;;;;N;;;;;
+12360;CUNEIFORM SIGN ZAG;Lo;0;L;;;;;N;;;;;
+12361;CUNEIFORM SIGN ZAMX;Lo;0;L;;;;;N;;;;;
+12362;CUNEIFORM SIGN ZE2;Lo;0;L;;;;;N;;;;;
+12363;CUNEIFORM SIGN ZI;Lo;0;L;;;;;N;;;;;
+12364;CUNEIFORM SIGN ZI OVER ZI;Lo;0;L;;;;;N;;;;;
+12365;CUNEIFORM SIGN ZI3;Lo;0;L;;;;;N;;;;;
+12366;CUNEIFORM SIGN ZIB;Lo;0;L;;;;;N;;;;;
+12367;CUNEIFORM SIGN ZIB KABA TENU;Lo;0;L;;;;;N;;;;;
+12368;CUNEIFORM SIGN ZIG;Lo;0;L;;;;;N;;;;;
+12369;CUNEIFORM SIGN ZIZ2;Lo;0;L;;;;;N;;;;;
+1236A;CUNEIFORM SIGN ZU;Lo;0;L;;;;;N;;;;;
+1236B;CUNEIFORM SIGN ZU5;Lo;0;L;;;;;N;;;;;
+1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;;
+1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;;
+1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;;
+12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;
+12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;
+12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;
+12403;CUNEIFORM NUMERIC SIGN FIVE ASH;Nl;0;L;;;;5;N;;;;;
+12404;CUNEIFORM NUMERIC SIGN SIX ASH;Nl;0;L;;;;6;N;;;;;
+12405;CUNEIFORM NUMERIC SIGN SEVEN ASH;Nl;0;L;;;;7;N;;;;;
+12406;CUNEIFORM NUMERIC SIGN EIGHT ASH;Nl;0;L;;;;8;N;;;;;
+12407;CUNEIFORM NUMERIC SIGN NINE ASH;Nl;0;L;;;;9;N;;;;;
+12408;CUNEIFORM NUMERIC SIGN THREE DISH;Nl;0;L;;;;3;N;;;;;
+12409;CUNEIFORM NUMERIC SIGN FOUR DISH;Nl;0;L;;;;4;N;;;;;
+1240A;CUNEIFORM NUMERIC SIGN FIVE DISH;Nl;0;L;;;;5;N;;;;;
+1240B;CUNEIFORM NUMERIC SIGN SIX DISH;Nl;0;L;;;;6;N;;;;;
+1240C;CUNEIFORM NUMERIC SIGN SEVEN DISH;Nl;0;L;;;;7;N;;;;;
+1240D;CUNEIFORM NUMERIC SIGN EIGHT DISH;Nl;0;L;;;;8;N;;;;;
+1240E;CUNEIFORM NUMERIC SIGN NINE DISH;Nl;0;L;;;;9;N;;;;;
+1240F;CUNEIFORM NUMERIC SIGN FOUR U;Nl;0;L;;;;4;N;;;;;
+12410;CUNEIFORM NUMERIC SIGN FIVE U;Nl;0;L;;;;5;N;;;;;
+12411;CUNEIFORM NUMERIC SIGN SIX U;Nl;0;L;;;;6;N;;;;;
+12412;CUNEIFORM NUMERIC SIGN SEVEN U;Nl;0;L;;;;7;N;;;;;
+12413;CUNEIFORM NUMERIC SIGN EIGHT U;Nl;0;L;;;;8;N;;;;;
+12414;CUNEIFORM NUMERIC SIGN NINE U;Nl;0;L;;;;9;N;;;;;
+12415;CUNEIFORM NUMERIC SIGN ONE GESH2;Nl;0;L;;;;1;N;;;;;
+12416;CUNEIFORM NUMERIC SIGN TWO GESH2;Nl;0;L;;;;2;N;;;;;
+12417;CUNEIFORM NUMERIC SIGN THREE GESH2;Nl;0;L;;;;3;N;;;;;
+12418;CUNEIFORM NUMERIC SIGN FOUR GESH2;Nl;0;L;;;;4;N;;;;;
+12419;CUNEIFORM NUMERIC SIGN FIVE GESH2;Nl;0;L;;;;5;N;;;;;
+1241A;CUNEIFORM NUMERIC SIGN SIX GESH2;Nl;0;L;;;;6;N;;;;;
+1241B;CUNEIFORM NUMERIC SIGN SEVEN GESH2;Nl;0;L;;;;7;N;;;;;
+1241C;CUNEIFORM NUMERIC SIGN EIGHT GESH2;Nl;0;L;;;;8;N;;;;;
+1241D;CUNEIFORM NUMERIC SIGN NINE GESH2;Nl;0;L;;;;9;N;;;;;
+1241E;CUNEIFORM NUMERIC SIGN ONE GESHU;Nl;0;L;;;;1;N;;;;;
+1241F;CUNEIFORM NUMERIC SIGN TWO GESHU;Nl;0;L;;;;2;N;;;;;
+12420;CUNEIFORM NUMERIC SIGN THREE GESHU;Nl;0;L;;;;3;N;;;;;
+12421;CUNEIFORM NUMERIC SIGN FOUR GESHU;Nl;0;L;;;;4;N;;;;;
+12422;CUNEIFORM NUMERIC SIGN FIVE GESHU;Nl;0;L;;;;5;N;;;;;
+12423;CUNEIFORM NUMERIC SIGN TWO SHAR2;Nl;0;L;;;;2;N;;;;;
+12424;CUNEIFORM NUMERIC SIGN THREE SHAR2;Nl;0;L;;;;3;N;;;;;
+12425;CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12426;CUNEIFORM NUMERIC SIGN FOUR SHAR2;Nl;0;L;;;;4;N;;;;;
+12427;CUNEIFORM NUMERIC SIGN FIVE SHAR2;Nl;0;L;;;;5;N;;;;;
+12428;CUNEIFORM NUMERIC SIGN SIX SHAR2;Nl;0;L;;;;6;N;;;;;
+12429;CUNEIFORM NUMERIC SIGN SEVEN SHAR2;Nl;0;L;;;;7;N;;;;;
+1242A;CUNEIFORM NUMERIC SIGN EIGHT SHAR2;Nl;0;L;;;;8;N;;;;;
+1242B;CUNEIFORM NUMERIC SIGN NINE SHAR2;Nl;0;L;;;;9;N;;;;;
+1242C;CUNEIFORM NUMERIC SIGN ONE SHARU;Nl;0;L;;;;1;N;;;;;
+1242D;CUNEIFORM NUMERIC SIGN TWO SHARU;Nl;0;L;;;;2;N;;;;;
+1242E;CUNEIFORM NUMERIC SIGN THREE SHARU;Nl;0;L;;;;3;N;;;;;
+1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;;
+12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;;
+12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;;N;;;;;
+12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;;N;;;;;
+12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;;
+12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;;
+12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;;
+12437;CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12438;CUNEIFORM NUMERIC SIGN FOUR BURU;Nl;0;L;;;;4;N;;;;;
+12439;CUNEIFORM NUMERIC SIGN FIVE BURU;Nl;0;L;;;;5;N;;;;;
+1243A;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16;Nl;0;L;;;;3;N;;;;;
+1243B;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21;Nl;0;L;;;;3;N;;;;;
+1243C;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU;Nl;0;L;;;;4;N;;;;;
+1243D;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4;Nl;0;L;;;;4;N;;;;;
+1243E;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A;Nl;0;L;;;;4;N;;;;;
+1243F;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B;Nl;0;L;;;;4;N;;;;;
+12440;CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9;Nl;0;L;;;;6;N;;;;;
+12441;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3;Nl;0;L;;;;7;N;;;;;
+12442;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A;Nl;0;L;;;;7;N;;;;;
+12443;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B;Nl;0;L;;;;7;N;;;;;
+12444;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU;Nl;0;L;;;;8;N;;;;;
+12445;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3;Nl;0;L;;;;8;N;;;;;
+12446;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU;Nl;0;L;;;;9;N;;;;;
+12447;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3;Nl;0;L;;;;9;N;;;;;
+12448;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4;Nl;0;L;;;;9;N;;;;;
+12449;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A;Nl;0;L;;;;9;N;;;;;
+1244A;CUNEIFORM NUMERIC SIGN TWO ASH TENU;Nl;0;L;;;;2;N;;;;;
+1244B;CUNEIFORM NUMERIC SIGN THREE ASH TENU;Nl;0;L;;;;3;N;;;;;
+1244C;CUNEIFORM NUMERIC SIGN FOUR ASH TENU;Nl;0;L;;;;4;N;;;;;
+1244D;CUNEIFORM NUMERIC SIGN FIVE ASH TENU;Nl;0;L;;;;5;N;;;;;
+1244E;CUNEIFORM NUMERIC SIGN SIX ASH TENU;Nl;0;L;;;;6;N;;;;;
+1244F;CUNEIFORM NUMERIC SIGN ONE BAN2;Nl;0;L;;;;1;N;;;;;
+12450;CUNEIFORM NUMERIC SIGN TWO BAN2;Nl;0;L;;;;2;N;;;;;
+12451;CUNEIFORM NUMERIC SIGN THREE BAN2;Nl;0;L;;;;3;N;;;;;
+12452;CUNEIFORM NUMERIC SIGN FOUR BAN2;Nl;0;L;;;;4;N;;;;;
+12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;
+12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;
+12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;
+12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;;N;;;;;
+12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;;N;;;;;
+12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;
+12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;
+1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;
+1245B;CUNEIFORM NUMERIC SIGN TWO THIRDS DISH;Nl;0;L;;;;2/3;N;;;;;
+1245C;CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH;Nl;0;L;;;;5/6;N;;;;;
+1245D;CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A;Nl;0;L;;;;1/3;N;;;;;
+1245E;CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A;Nl;0;L;;;;2/3;N;;;;;
+1245F;CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH;Nl;0;L;;;;1/8;N;;;;;
+12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;;
+12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;;
+12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;;
+12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
+12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;;
+12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;;
+12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;;
+1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
+1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;;
+1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;;
+1D003;BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON;So;0;L;;;;;N;;;;;
+1D004;BYZANTINE MUSICAL SYMBOL OXEIA DIPLI;So;0;L;;;;;N;;;;;
+1D005;BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON;So;0;L;;;;;N;;;;;
+1D006;BYZANTINE MUSICAL SYMBOL VAREIA DIPLI;So;0;L;;;;;N;;;;;
+1D007;BYZANTINE MUSICAL SYMBOL KATHISTI;So;0;L;;;;;N;;;;;
+1D008;BYZANTINE MUSICAL SYMBOL SYRMATIKI;So;0;L;;;;;N;;;;;
+1D009;BYZANTINE MUSICAL SYMBOL PARAKLITIKI;So;0;L;;;;;N;;;;;
+1D00A;BYZANTINE MUSICAL SYMBOL YPOKRISIS;So;0;L;;;;;N;;;;;
+1D00B;BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI;So;0;L;;;;;N;;;;;
+1D00C;BYZANTINE MUSICAL SYMBOL KREMASTI;So;0;L;;;;;N;;;;;
+1D00D;BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON;So;0;L;;;;;N;;;;;
+1D00E;BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON;So;0;L;;;;;N;;;;;
+1D00F;BYZANTINE MUSICAL SYMBOL TELEIA;So;0;L;;;;;N;;;;;
+1D010;BYZANTINE MUSICAL SYMBOL KENTIMATA;So;0;L;;;;;N;;;;;
+1D011;BYZANTINE MUSICAL SYMBOL APOSTROFOS;So;0;L;;;;;N;;;;;
+1D012;BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI;So;0;L;;;;;N;;;;;
+1D013;BYZANTINE MUSICAL SYMBOL SYNEVMA;So;0;L;;;;;N;;;;;
+1D014;BYZANTINE MUSICAL SYMBOL THITA;So;0;L;;;;;N;;;;;
+1D015;BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION;So;0;L;;;;;N;;;;;
+1D016;BYZANTINE MUSICAL SYMBOL GORGON ARCHAION;So;0;L;;;;;N;;;;;
+1D017;BYZANTINE MUSICAL SYMBOL PSILON;So;0;L;;;;;N;;;;;
+1D018;BYZANTINE MUSICAL SYMBOL CHAMILON;So;0;L;;;;;N;;;;;
+1D019;BYZANTINE MUSICAL SYMBOL VATHY;So;0;L;;;;;N;;;;;
+1D01A;BYZANTINE MUSICAL SYMBOL ISON ARCHAION;So;0;L;;;;;N;;;;;
+1D01B;BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION;So;0;L;;;;;N;;;;;
+1D01C;BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION;So;0;L;;;;;N;;;;;
+1D01D;BYZANTINE MUSICAL SYMBOL SAXIMATA;So;0;L;;;;;N;;;;;
+1D01E;BYZANTINE MUSICAL SYMBOL PARICHON;So;0;L;;;;;N;;;;;
+1D01F;BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA;So;0;L;;;;;N;;;;;
+1D020;BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION;So;0;L;;;;;N;;;;;
+1D021;BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION;So;0;L;;;;;N;;;;;
+1D022;BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION;So;0;L;;;;;N;;;;;
+1D023;BYZANTINE MUSICAL SYMBOL APOTHEMA;So;0;L;;;;;N;;;;;
+1D024;BYZANTINE MUSICAL SYMBOL KLASMA;So;0;L;;;;;N;;;;;
+1D025;BYZANTINE MUSICAL SYMBOL REVMA;So;0;L;;;;;N;;;;;
+1D026;BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION;So;0;L;;;;;N;;;;;
+1D027;BYZANTINE MUSICAL SYMBOL TINAGMA;So;0;L;;;;;N;;;;;
+1D028;BYZANTINE MUSICAL SYMBOL ANATRICHISMA;So;0;L;;;;;N;;;;;
+1D029;BYZANTINE MUSICAL SYMBOL SEISMA;So;0;L;;;;;N;;;;;
+1D02A;BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION;So;0;L;;;;;N;;;;;
+1D02B;BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU;So;0;L;;;;;N;;;;;
+1D02C;BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION;So;0;L;;;;;N;;;;;
+1D02D;BYZANTINE MUSICAL SYMBOL THEMA;So;0;L;;;;;N;;;;;
+1D02E;BYZANTINE MUSICAL SYMBOL LEMOI;So;0;L;;;;;N;;;;;
+1D02F;BYZANTINE MUSICAL SYMBOL DYO;So;0;L;;;;;N;;;;;
+1D030;BYZANTINE MUSICAL SYMBOL TRIA;So;0;L;;;;;N;;;;;
+1D031;BYZANTINE MUSICAL SYMBOL TESSERA;So;0;L;;;;;N;;;;;
+1D032;BYZANTINE MUSICAL SYMBOL KRATIMATA;So;0;L;;;;;N;;;;;
+1D033;BYZANTINE MUSICAL SYMBOL APESO EXO NEO;So;0;L;;;;;N;;;;;
+1D034;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION;So;0;L;;;;;N;;;;;
+1D035;BYZANTINE MUSICAL SYMBOL IMIFTHORA;So;0;L;;;;;N;;;;;
+1D036;BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION;So;0;L;;;;;N;;;;;
+1D037;BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON;So;0;L;;;;;N;;;;;
+1D038;BYZANTINE MUSICAL SYMBOL PELASTON;So;0;L;;;;;N;;;;;
+1D039;BYZANTINE MUSICAL SYMBOL PSIFISTON;So;0;L;;;;;N;;;;;
+1D03A;BYZANTINE MUSICAL SYMBOL KONTEVMA;So;0;L;;;;;N;;;;;
+1D03B;BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION;So;0;L;;;;;N;;;;;
+1D03C;BYZANTINE MUSICAL SYMBOL RAPISMA;So;0;L;;;;;N;;;;;
+1D03D;BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION;So;0;L;;;;;N;;;;;
+1D03E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION;So;0;L;;;;;N;;;;;
+1D03F;BYZANTINE MUSICAL SYMBOL ICHADIN;So;0;L;;;;;N;;;;;
+1D040;BYZANTINE MUSICAL SYMBOL NANA;So;0;L;;;;;N;;;;;
+1D041;BYZANTINE MUSICAL SYMBOL PETASMA;So;0;L;;;;;N;;;;;
+1D042;BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO;So;0;L;;;;;N;;;;;
+1D043;BYZANTINE MUSICAL SYMBOL TROMIKON ALLO;So;0;L;;;;;N;;;;;
+1D044;BYZANTINE MUSICAL SYMBOL STRAGGISMATA;So;0;L;;;;;N;;;;;
+1D045;BYZANTINE MUSICAL SYMBOL GRONTHISMATA;So;0;L;;;;;N;;;;;
+1D046;BYZANTINE MUSICAL SYMBOL ISON NEO;So;0;L;;;;;N;;;;;
+1D047;BYZANTINE MUSICAL SYMBOL OLIGON NEO;So;0;L;;;;;N;;;;;
+1D048;BYZANTINE MUSICAL SYMBOL OXEIA NEO;So;0;L;;;;;N;;;;;
+1D049;BYZANTINE MUSICAL SYMBOL PETASTI;So;0;L;;;;;N;;;;;
+1D04A;BYZANTINE MUSICAL SYMBOL KOUFISMA;So;0;L;;;;;N;;;;;
+1D04B;BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA;So;0;L;;;;;N;;;;;
+1D04C;BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA;So;0;L;;;;;N;;;;;
+1D04D;BYZANTINE MUSICAL SYMBOL PELASTON NEO;So;0;L;;;;;N;;;;;
+1D04E;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO;So;0;L;;;;;N;;;;;
+1D04F;BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO;So;0;L;;;;;N;;;;;
+1D050;BYZANTINE MUSICAL SYMBOL YPSILI;So;0;L;;;;;N;;;;;
+1D051;BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO;So;0;L;;;;;N;;;;;
+1D052;BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO;So;0;L;;;;;N;;;;;
+1D053;BYZANTINE MUSICAL SYMBOL YPORROI;So;0;L;;;;;N;;;;;
+1D054;BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON;So;0;L;;;;;N;;;;;
+1D055;BYZANTINE MUSICAL SYMBOL ELAFRON;So;0;L;;;;;N;;;;;
+1D056;BYZANTINE MUSICAL SYMBOL CHAMILI;So;0;L;;;;;N;;;;;
+1D057;BYZANTINE MUSICAL SYMBOL MIKRON ISON;So;0;L;;;;;N;;;;;
+1D058;BYZANTINE MUSICAL SYMBOL VAREIA NEO;So;0;L;;;;;N;;;;;
+1D059;BYZANTINE MUSICAL SYMBOL PIASMA NEO;So;0;L;;;;;N;;;;;
+1D05A;BYZANTINE MUSICAL SYMBOL PSIFISTON NEO;So;0;L;;;;;N;;;;;
+1D05B;BYZANTINE MUSICAL SYMBOL OMALON;So;0;L;;;;;N;;;;;
+1D05C;BYZANTINE MUSICAL SYMBOL ANTIKENOMA;So;0;L;;;;;N;;;;;
+1D05D;BYZANTINE MUSICAL SYMBOL LYGISMA;So;0;L;;;;;N;;;;;
+1D05E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO;So;0;L;;;;;N;;;;;
+1D05F;BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO;So;0;L;;;;;N;;;;;
+1D060;BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA;So;0;L;;;;;N;;;;;
+1D061;BYZANTINE MUSICAL SYMBOL KYLISMA;So;0;L;;;;;N;;;;;
+1D062;BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA;So;0;L;;;;;N;;;;;
+1D063;BYZANTINE MUSICAL SYMBOL TROMIKON NEO;So;0;L;;;;;N;;;;;
+1D064;BYZANTINE MUSICAL SYMBOL EKSTREPTON;So;0;L;;;;;N;;;;;
+1D065;BYZANTINE MUSICAL SYMBOL SYNAGMA NEO;So;0;L;;;;;N;;;;;
+1D066;BYZANTINE MUSICAL SYMBOL SYRMA;So;0;L;;;;;N;;;;;
+1D067;BYZANTINE MUSICAL SYMBOL CHOREVMA NEO;So;0;L;;;;;N;;;;;
+1D068;BYZANTINE MUSICAL SYMBOL EPEGERMA;So;0;L;;;;;N;;;;;
+1D069;BYZANTINE MUSICAL SYMBOL SEISMA NEO;So;0;L;;;;;N;;;;;
+1D06A;BYZANTINE MUSICAL SYMBOL XIRON KLASMA;So;0;L;;;;;N;;;;;
+1D06B;BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON;So;0;L;;;;;N;;;;;
+1D06C;BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA;So;0;L;;;;;N;;;;;
+1D06D;BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA;So;0;L;;;;;N;;;;;
+1D06E;BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA;So;0;L;;;;;N;;;;;
+1D06F;BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA;So;0;L;;;;;N;;;;;
+1D070;BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA;So;0;L;;;;;N;;;;;
+1D071;BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA;So;0;L;;;;;N;;;;;
+1D072;BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON;So;0;L;;;;;N;;;;;
+1D073;BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON;So;0;L;;;;;N;;;;;
+1D074;BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON;So;0;L;;;;;N;;;;;
+1D075;BYZANTINE MUSICAL SYMBOL OYRANISMA NEO;So;0;L;;;;;N;;;;;
+1D076;BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO;So;0;L;;;;;N;;;;;
+1D077;BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO;So;0;L;;;;;N;;;;;
+1D078;BYZANTINE MUSICAL SYMBOL THEMA APLOUN;So;0;L;;;;;N;;;;;
+1D079;BYZANTINE MUSICAL SYMBOL THES KAI APOTHES;So;0;L;;;;;N;;;;;
+1D07A;BYZANTINE MUSICAL SYMBOL KATAVASMA;So;0;L;;;;;N;;;;;
+1D07B;BYZANTINE MUSICAL SYMBOL ENDOFONON;So;0;L;;;;;N;;;;;
+1D07C;BYZANTINE MUSICAL SYMBOL YFEN KATO;So;0;L;;;;;N;;;;;
+1D07D;BYZANTINE MUSICAL SYMBOL YFEN ANO;So;0;L;;;;;N;;;;;
+1D07E;BYZANTINE MUSICAL SYMBOL STAVROS;So;0;L;;;;;N;;;;;
+1D07F;BYZANTINE MUSICAL SYMBOL KLASMA ANO;So;0;L;;;;;N;;;;;
+1D080;BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION;So;0;L;;;;;N;;;;;
+1D081;BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION;So;0;L;;;;;N;;;;;
+1D082;BYZANTINE MUSICAL SYMBOL KRATIMA ALLO;So;0;L;;;;;N;;;;;
+1D083;BYZANTINE MUSICAL SYMBOL KRATIMA NEO;So;0;L;;;;;N;;;;;
+1D084;BYZANTINE MUSICAL SYMBOL APODERMA NEO;So;0;L;;;;;N;;;;;
+1D085;BYZANTINE MUSICAL SYMBOL APLI;So;0;L;;;;;N;;;;;
+1D086;BYZANTINE MUSICAL SYMBOL DIPLI;So;0;L;;;;;N;;;;;
+1D087;BYZANTINE MUSICAL SYMBOL TRIPLI;So;0;L;;;;;N;;;;;
+1D088;BYZANTINE MUSICAL SYMBOL TETRAPLI;So;0;L;;;;;N;;;;;
+1D089;BYZANTINE MUSICAL SYMBOL KORONIS;So;0;L;;;;;N;;;;;
+1D08A;BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU;So;0;L;;;;;N;;;;;
+1D08B;BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON;So;0;L;;;;;N;;;;;
+1D08C;BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON;So;0;L;;;;;N;;;;;
+1D08D;BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON;So;0;L;;;;;N;;;;;
+1D08E;BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU;So;0;L;;;;;N;;;;;
+1D08F;BYZANTINE MUSICAL SYMBOL GORGON NEO ANO;So;0;L;;;;;N;;;;;
+1D090;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA;So;0;L;;;;;N;;;;;
+1D091;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;
+1D092;BYZANTINE MUSICAL SYMBOL DIGORGON;So;0;L;;;;;N;;;;;
+1D093;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO;So;0;L;;;;;N;;;;;
+1D094;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO;So;0;L;;;;;N;;;;;
+1D095;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;
+1D096;BYZANTINE MUSICAL SYMBOL TRIGORGON;So;0;L;;;;;N;;;;;
+1D097;BYZANTINE MUSICAL SYMBOL ARGON;So;0;L;;;;;N;;;;;
+1D098;BYZANTINE MUSICAL SYMBOL IMIDIARGON;So;0;L;;;;;N;;;;;
+1D099;BYZANTINE MUSICAL SYMBOL DIARGON;So;0;L;;;;;N;;;;;
+1D09A;BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI;So;0;L;;;;;N;;;;;
+1D09B;BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI;So;0;L;;;;;N;;;;;
+1D09C;BYZANTINE MUSICAL SYMBOL AGOGI ARGI;So;0;L;;;;;N;;;;;
+1D09D;BYZANTINE MUSICAL SYMBOL AGOGI METRIA;So;0;L;;;;;N;;;;;
+1D09E;BYZANTINE MUSICAL SYMBOL AGOGI MESI;So;0;L;;;;;N;;;;;
+1D09F;BYZANTINE MUSICAL SYMBOL AGOGI GORGI;So;0;L;;;;;N;;;;;
+1D0A0;BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI;So;0;L;;;;;N;;;;;
+1D0A1;BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI;So;0;L;;;;;N;;;;;
+1D0A2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A3;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A4;BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS;So;0;L;;;;;N;;;;;
+1D0A5;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS;So;0;L;;;;;N;;;;;
+1D0A6;BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A7;BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS;So;0;L;;;;;N;;;;;
+1D0A8;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A9;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS;So;0;L;;;;;N;;;;;
+1D0AA;BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS;So;0;L;;;;;N;;;;;
+1D0AB;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS;So;0;L;;;;;N;;;;;
+1D0AC;BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;
+1D0AD;BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;
+1D0AE;BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS;So;0;L;;;;;N;;;;;
+1D0AF;BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS;So;0;L;;;;;N;;;;;
+1D0B0;BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS;So;0;L;;;;;N;;;;;
+1D0B1;BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS;So;0;L;;;;;N;;;;;
+1D0B2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS;So;0;L;;;;;N;;;;;
+1D0B3;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0B4;BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN;So;0;L;;;;;N;;;;;
+1D0B5;BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN;So;0;L;;;;;N;;;;;
+1D0B6;BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU;So;0;L;;;;;N;;;;;
+1D0B7;BYZANTINE MUSICAL SYMBOL IMIFONON;So;0;L;;;;;N;;;;;
+1D0B8;BYZANTINE MUSICAL SYMBOL IMIFTHORON;So;0;L;;;;;N;;;;;
+1D0B9;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU;So;0;L;;;;;N;;;;;
+1D0BA;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA;So;0;L;;;;;N;;;;;
+1D0BB;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA;So;0;L;;;;;N;;;;;
+1D0BC;BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS;So;0;L;;;;;N;;;;;
+1D0BD;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI;So;0;L;;;;;N;;;;;
+1D0BE;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI;So;0;L;;;;;N;;;;;
+1D0BF;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE;So;0;L;;;;;N;;;;;
+1D0C0;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO;So;0;L;;;;;N;;;;;
+1D0C1;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO;So;0;L;;;;;N;;;;;
+1D0C2;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO;So;0;L;;;;;N;;;;;
+1D0C3;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS;So;0;L;;;;;N;;;;;
+1D0C4;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS;So;0;L;;;;;N;;;;;
+1D0C5;BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS;So;0;L;;;;;N;;;;;
+1D0C6;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI;So;0;L;;;;;N;;;;;
+1D0C7;BYZANTINE MUSICAL SYMBOL FTHORA NENANO;So;0;L;;;;;N;;;;;
+1D0C8;BYZANTINE MUSICAL SYMBOL CHROA ZYGOS;So;0;L;;;;;N;;;;;
+1D0C9;BYZANTINE MUSICAL SYMBOL CHROA KLITON;So;0;L;;;;;N;;;;;
+1D0CA;BYZANTINE MUSICAL SYMBOL CHROA SPATHI;So;0;L;;;;;N;;;;;
+1D0CB;BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION;So;0;L;;;;;N;;;;;
+1D0CC;BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA;So;0;L;;;;;N;;;;;
+1D0CD;BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION;So;0;L;;;;;N;;;;;
+1D0CE;BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION;So;0;L;;;;;N;;;;;
+1D0CF;BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION;So;0;L;;;;;N;;;;;
+1D0D0;BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D1;BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;
+1D0D2;BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;
+1D0D3;BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D4;BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D5;BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;
+1D0D6;BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;
+1D0D7;BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D8;BYZANTINE MUSICAL SYMBOL GENIKI DIESIS;So;0;L;;;;;N;;;;;
+1D0D9;BYZANTINE MUSICAL SYMBOL GENIKI YFESIS;So;0;L;;;;;N;;;;;
+1D0DA;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI;So;0;L;;;;;N;;;;;
+1D0DB;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI;So;0;L;;;;;N;;;;;
+1D0DC;BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI;So;0;L;;;;;N;;;;;
+1D0DD;BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS;So;0;L;;;;;N;;;;;
+1D0DE;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS;So;0;L;;;;;N;;;;;
+1D0DF;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU;So;0;L;;;;;N;;;;;
+1D0E0;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU;So;0;L;;;;;N;;;;;
+1D0E1;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU;So;0;L;;;;;N;;;;;
+1D0E2;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS;So;0;L;;;;;N;;;;;
+1D0E3;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU;So;0;L;;;;;N;;;;;
+1D0E4;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU;So;0;L;;;;;N;;;;;
+1D0E5;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU;So;0;L;;;;;N;;;;;
+1D0E6;BYZANTINE MUSICAL SYMBOL DIGRAMMA GG;So;0;L;;;;;N;;;;;
+1D0E7;BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU;So;0;L;;;;;N;;;;;
+1D0E8;BYZANTINE MUSICAL SYMBOL STIGMA;So;0;L;;;;;N;;;;;
+1D0E9;BYZANTINE MUSICAL SYMBOL ARKTIKO PA;So;0;L;;;;;N;;;;;
+1D0EA;BYZANTINE MUSICAL SYMBOL ARKTIKO VOU;So;0;L;;;;;N;;;;;
+1D0EB;BYZANTINE MUSICAL SYMBOL ARKTIKO GA;So;0;L;;;;;N;;;;;
+1D0EC;BYZANTINE MUSICAL SYMBOL ARKTIKO DI;So;0;L;;;;;N;;;;;
+1D0ED;BYZANTINE MUSICAL SYMBOL ARKTIKO KE;So;0;L;;;;;N;;;;;
+1D0EE;BYZANTINE MUSICAL SYMBOL ARKTIKO ZO;So;0;L;;;;;N;;;;;
+1D0EF;BYZANTINE MUSICAL SYMBOL ARKTIKO NI;So;0;L;;;;;N;;;;;
+1D0F0;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO;So;0;L;;;;;N;;;;;
+1D0F1;BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO;So;0;L;;;;;N;;;;;
+1D0F2;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO;So;0;L;;;;;N;;;;;
+1D0F3;BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO;So;0;L;;;;;N;;;;;
+1D0F4;BYZANTINE MUSICAL SYMBOL KLASMA KATO;So;0;L;;;;;N;;;;;
+1D0F5;BYZANTINE MUSICAL SYMBOL GORGON NEO KATO;So;0;L;;;;;N;;;;;
+1D100;MUSICAL SYMBOL SINGLE BARLINE;So;0;L;;;;;N;;;;;
+1D101;MUSICAL SYMBOL DOUBLE BARLINE;So;0;L;;;;;N;;;;;
+1D102;MUSICAL SYMBOL FINAL BARLINE;So;0;L;;;;;N;;;;;
+1D103;MUSICAL SYMBOL REVERSE FINAL BARLINE;So;0;L;;;;;N;;;;;
+1D104;MUSICAL SYMBOL DASHED BARLINE;So;0;L;;;;;N;;;;;
+1D105;MUSICAL SYMBOL SHORT BARLINE;So;0;L;;;;;N;;;;;
+1D106;MUSICAL SYMBOL LEFT REPEAT SIGN;So;0;L;;;;;N;;;;;
+1D107;MUSICAL SYMBOL RIGHT REPEAT SIGN;So;0;L;;;;;N;;;;;
+1D108;MUSICAL SYMBOL REPEAT DOTS;So;0;L;;;;;N;;;;;
+1D109;MUSICAL SYMBOL DAL SEGNO;So;0;L;;;;;N;;;;;
+1D10A;MUSICAL SYMBOL DA CAPO;So;0;L;;;;;N;;;;;
+1D10B;MUSICAL SYMBOL SEGNO;So;0;L;;;;;N;;;;;
+1D10C;MUSICAL SYMBOL CODA;So;0;L;;;;;N;;;;;
+1D10D;MUSICAL SYMBOL REPEATED FIGURE-1;So;0;L;;;;;N;;;;;
+1D10E;MUSICAL SYMBOL REPEATED FIGURE-2;So;0;L;;;;;N;;;;;
+1D10F;MUSICAL SYMBOL REPEATED FIGURE-3;So;0;L;;;;;N;;;;;
+1D110;MUSICAL SYMBOL FERMATA;So;0;L;;;;;N;;;;;
+1D111;MUSICAL SYMBOL FERMATA BELOW;So;0;L;;;;;N;;;;;
+1D112;MUSICAL SYMBOL BREATH MARK;So;0;L;;;;;N;;;;;
+1D113;MUSICAL SYMBOL CAESURA;So;0;L;;;;;N;;;;;
+1D114;MUSICAL SYMBOL BRACE;So;0;L;;;;;N;;;;;
+1D115;MUSICAL SYMBOL BRACKET;So;0;L;;;;;N;;;;;
+1D116;MUSICAL SYMBOL ONE-LINE STAFF;So;0;L;;;;;N;;;;;
+1D117;MUSICAL SYMBOL TWO-LINE STAFF;So;0;L;;;;;N;;;;;
+1D118;MUSICAL SYMBOL THREE-LINE STAFF;So;0;L;;;;;N;;;;;
+1D119;MUSICAL SYMBOL FOUR-LINE STAFF;So;0;L;;;;;N;;;;;
+1D11A;MUSICAL SYMBOL FIVE-LINE STAFF;So;0;L;;;;;N;;;;;
+1D11B;MUSICAL SYMBOL SIX-LINE STAFF;So;0;L;;;;;N;;;;;
+1D11C;MUSICAL SYMBOL SIX-STRING FRETBOARD;So;0;L;;;;;N;;;;;
+1D11D;MUSICAL SYMBOL FOUR-STRING FRETBOARD;So;0;L;;;;;N;;;;;
+1D11E;MUSICAL SYMBOL G CLEF;So;0;L;;;;;N;;;;;
+1D11F;MUSICAL SYMBOL G CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;
+1D120;MUSICAL SYMBOL G CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;
+1D121;MUSICAL SYMBOL C CLEF;So;0;L;;;;;N;;;;;
+1D122;MUSICAL SYMBOL F CLEF;So;0;L;;;;;N;;;;;
+1D123;MUSICAL SYMBOL F CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;
+1D124;MUSICAL SYMBOL F CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;
+1D125;MUSICAL SYMBOL DRUM CLEF-1;So;0;L;;;;;N;;;;;
+1D126;MUSICAL SYMBOL DRUM CLEF-2;So;0;L;;;;;N;;;;;
+1D12A;MUSICAL SYMBOL DOUBLE SHARP;So;0;L;;;;;N;;;;;
+1D12B;MUSICAL SYMBOL DOUBLE FLAT;So;0;L;;;;;N;;;;;
+1D12C;MUSICAL SYMBOL FLAT UP;So;0;L;;;;;N;;;;;
+1D12D;MUSICAL SYMBOL FLAT DOWN;So;0;L;;;;;N;;;;;
+1D12E;MUSICAL SYMBOL NATURAL UP;So;0;L;;;;;N;;;;;
+1D12F;MUSICAL SYMBOL NATURAL DOWN;So;0;L;;;;;N;;;;;
+1D130;MUSICAL SYMBOL SHARP UP;So;0;L;;;;;N;;;;;
+1D131;MUSICAL SYMBOL SHARP DOWN;So;0;L;;;;;N;;;;;
+1D132;MUSICAL SYMBOL QUARTER TONE SHARP;So;0;L;;;;;N;;;;;
+1D133;MUSICAL SYMBOL QUARTER TONE FLAT;So;0;L;;;;;N;;;;;
+1D134;MUSICAL SYMBOL COMMON TIME;So;0;L;;;;;N;;;;;
+1D135;MUSICAL SYMBOL CUT TIME;So;0;L;;;;;N;;;;;
+1D136;MUSICAL SYMBOL OTTAVA ALTA;So;0;L;;;;;N;;;;;
+1D137;MUSICAL SYMBOL OTTAVA BASSA;So;0;L;;;;;N;;;;;
+1D138;MUSICAL SYMBOL QUINDICESIMA ALTA;So;0;L;;;;;N;;;;;
+1D139;MUSICAL SYMBOL QUINDICESIMA BASSA;So;0;L;;;;;N;;;;;
+1D13A;MUSICAL SYMBOL MULTI REST;So;0;L;;;;;N;;;;;
+1D13B;MUSICAL SYMBOL WHOLE REST;So;0;L;;;;;N;;;;;
+1D13C;MUSICAL SYMBOL HALF REST;So;0;L;;;;;N;;;;;
+1D13D;MUSICAL SYMBOL QUARTER REST;So;0;L;;;;;N;;;;;
+1D13E;MUSICAL SYMBOL EIGHTH REST;So;0;L;;;;;N;;;;;
+1D13F;MUSICAL SYMBOL SIXTEENTH REST;So;0;L;;;;;N;;;;;
+1D140;MUSICAL SYMBOL THIRTY-SECOND REST;So;0;L;;;;;N;;;;;
+1D141;MUSICAL SYMBOL SIXTY-FOURTH REST;So;0;L;;;;;N;;;;;
+1D142;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST;So;0;L;;;;;N;;;;;
+1D143;MUSICAL SYMBOL X NOTEHEAD;So;0;L;;;;;N;;;;;
+1D144;MUSICAL SYMBOL PLUS NOTEHEAD;So;0;L;;;;;N;;;;;
+1D145;MUSICAL SYMBOL CIRCLE X NOTEHEAD;So;0;L;;;;;N;;;;;
+1D146;MUSICAL SYMBOL SQUARE NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
+1D147;MUSICAL SYMBOL SQUARE NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D148;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE;So;0;L;;;;;N;;;;;
+1D149;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK;So;0;L;;;;;N;;;;;
+1D14A;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE;So;0;L;;;;;N;;;;;
+1D14B;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK;So;0;L;;;;;N;;;;;
+1D14C;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE;So;0;L;;;;;N;;;;;
+1D14D;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK;So;0;L;;;;;N;;;;;
+1D14E;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;
+1D14F;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;
+1D150;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE;So;0;L;;;;;N;;;;;
+1D151;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK;So;0;L;;;;;N;;;;;
+1D152;MUSICAL SYMBOL MOON NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
+1D153;MUSICAL SYMBOL MOON NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D154;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;
+1D155;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;
+1D156;MUSICAL SYMBOL PARENTHESIS NOTEHEAD;So;0;L;;;;;N;;;;;
+1D157;MUSICAL SYMBOL VOID NOTEHEAD;So;0;L;;;;;N;;;;;
+1D158;MUSICAL SYMBOL NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D159;MUSICAL SYMBOL NULL NOTEHEAD;So;0;L;;;;;N;;;;;
+1D15A;MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
+1D15B;MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D15C;MUSICAL SYMBOL BREVE;So;0;L;;;;;N;;;;;
+1D15D;MUSICAL SYMBOL WHOLE NOTE;So;0;L;;;;;N;;;;;
+1D15E;MUSICAL SYMBOL HALF NOTE;So;0;L;1D157 1D165;;;;N;;;;;
+1D15F;MUSICAL SYMBOL QUARTER NOTE;So;0;L;1D158 1D165;;;;N;;;;;
+1D160;MUSICAL SYMBOL EIGHTH NOTE;So;0;L;1D15F 1D16E;;;;N;;;;;
+1D161;MUSICAL SYMBOL SIXTEENTH NOTE;So;0;L;1D15F 1D16F;;;;N;;;;;
+1D162;MUSICAL SYMBOL THIRTY-SECOND NOTE;So;0;L;1D15F 1D170;;;;N;;;;;
+1D163;MUSICAL SYMBOL SIXTY-FOURTH NOTE;So;0;L;1D15F 1D171;;;;N;;;;;
+1D164;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE;So;0;L;1D15F 1D172;;;;N;;;;;
+1D165;MUSICAL SYMBOL COMBINING STEM;Mc;216;L;;;;;N;;;;;
+1D166;MUSICAL SYMBOL COMBINING SPRECHGESANG STEM;Mc;216;L;;;;;N;;;;;
+1D167;MUSICAL SYMBOL COMBINING TREMOLO-1;Mn;1;NSM;;;;;N;;;;;
+1D168;MUSICAL SYMBOL COMBINING TREMOLO-2;Mn;1;NSM;;;;;N;;;;;
+1D169;MUSICAL SYMBOL COMBINING TREMOLO-3;Mn;1;NSM;;;;;N;;;;;
+1D16A;MUSICAL SYMBOL FINGERED TREMOLO-1;So;0;L;;;;;N;;;;;
+1D16B;MUSICAL SYMBOL FINGERED TREMOLO-2;So;0;L;;;;;N;;;;;
+1D16C;MUSICAL SYMBOL FINGERED TREMOLO-3;So;0;L;;;;;N;;;;;
+1D16D;MUSICAL SYMBOL COMBINING AUGMENTATION DOT;Mc;226;L;;;;;N;;;;;
+1D16E;MUSICAL SYMBOL COMBINING FLAG-1;Mc;216;L;;;;;N;;;;;
+1D16F;MUSICAL SYMBOL COMBINING FLAG-2;Mc;216;L;;;;;N;;;;;
+1D170;MUSICAL SYMBOL COMBINING FLAG-3;Mc;216;L;;;;;N;;;;;
+1D171;MUSICAL SYMBOL COMBINING FLAG-4;Mc;216;L;;;;;N;;;;;
+1D172;MUSICAL SYMBOL COMBINING FLAG-5;Mc;216;L;;;;;N;;;;;
+1D173;MUSICAL SYMBOL BEGIN BEAM;Cf;0;BN;;;;;N;;;;;
+1D174;MUSICAL SYMBOL END BEAM;Cf;0;BN;;;;;N;;;;;
+1D175;MUSICAL SYMBOL BEGIN TIE;Cf;0;BN;;;;;N;;;;;
+1D176;MUSICAL SYMBOL END TIE;Cf;0;BN;;;;;N;;;;;
+1D177;MUSICAL SYMBOL BEGIN SLUR;Cf;0;BN;;;;;N;;;;;
+1D178;MUSICAL SYMBOL END SLUR;Cf;0;BN;;;;;N;;;;;
+1D179;MUSICAL SYMBOL BEGIN PHRASE;Cf;0;BN;;;;;N;;;;;
+1D17A;MUSICAL SYMBOL END PHRASE;Cf;0;BN;;;;;N;;;;;
+1D17B;MUSICAL SYMBOL COMBINING ACCENT;Mn;220;NSM;;;;;N;;;;;
+1D17C;MUSICAL SYMBOL COMBINING STACCATO;Mn;220;NSM;;;;;N;;;;;
+1D17D;MUSICAL SYMBOL COMBINING TENUTO;Mn;220;NSM;;;;;N;;;;;
+1D17E;MUSICAL SYMBOL COMBINING STACCATISSIMO;Mn;220;NSM;;;;;N;;;;;
+1D17F;MUSICAL SYMBOL COMBINING MARCATO;Mn;220;NSM;;;;;N;;;;;
+1D180;MUSICAL SYMBOL COMBINING MARCATO-STACCATO;Mn;220;NSM;;;;;N;;;;;
+1D181;MUSICAL SYMBOL COMBINING ACCENT-STACCATO;Mn;220;NSM;;;;;N;;;;;
+1D182;MUSICAL SYMBOL COMBINING LOURE;Mn;220;NSM;;;;;N;;;;;
+1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;;
+1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;;
+1D185;MUSICAL SYMBOL COMBINING DOIT;Mn;230;NSM;;;;;N;;;;;
+1D186;MUSICAL SYMBOL COMBINING RIP;Mn;230;NSM;;;;;N;;;;;
+1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;;
+1D188;MUSICAL SYMBOL COMBINING SMEAR;Mn;230;NSM;;;;;N;;;;;
+1D189;MUSICAL SYMBOL COMBINING BEND;Mn;230;NSM;;;;;N;;;;;
+1D18A;MUSICAL SYMBOL COMBINING DOUBLE TONGUE;Mn;220;NSM;;;;;N;;;;;
+1D18B;MUSICAL SYMBOL COMBINING TRIPLE TONGUE;Mn;220;NSM;;;;;N;;;;;
+1D18C;MUSICAL SYMBOL RINFORZANDO;So;0;L;;;;;N;;;;;
+1D18D;MUSICAL SYMBOL SUBITO;So;0;L;;;;;N;;;;;
+1D18E;MUSICAL SYMBOL Z;So;0;L;;;;;N;;;;;
+1D18F;MUSICAL SYMBOL PIANO;So;0;L;;;;;N;;;;;
+1D190;MUSICAL SYMBOL MEZZO;So;0;L;;;;;N;;;;;
+1D191;MUSICAL SYMBOL FORTE;So;0;L;;;;;N;;;;;
+1D192;MUSICAL SYMBOL CRESCENDO;So;0;L;;;;;N;;;;;
+1D193;MUSICAL SYMBOL DECRESCENDO;So;0;L;;;;;N;;;;;
+1D194;MUSICAL SYMBOL GRACE NOTE SLASH;So;0;L;;;;;N;;;;;
+1D195;MUSICAL SYMBOL GRACE NOTE NO SLASH;So;0;L;;;;;N;;;;;
+1D196;MUSICAL SYMBOL TR;So;0;L;;;;;N;;;;;
+1D197;MUSICAL SYMBOL TURN;So;0;L;;;;;N;;;;;
+1D198;MUSICAL SYMBOL INVERTED TURN;So;0;L;;;;;N;;;;;
+1D199;MUSICAL SYMBOL TURN SLASH;So;0;L;;;;;N;;;;;
+1D19A;MUSICAL SYMBOL TURN UP;So;0;L;;;;;N;;;;;
+1D19B;MUSICAL SYMBOL ORNAMENT STROKE-1;So;0;L;;;;;N;;;;;
+1D19C;MUSICAL SYMBOL ORNAMENT STROKE-2;So;0;L;;;;;N;;;;;
+1D19D;MUSICAL SYMBOL ORNAMENT STROKE-3;So;0;L;;;;;N;;;;;
+1D19E;MUSICAL SYMBOL ORNAMENT STROKE-4;So;0;L;;;;;N;;;;;
+1D19F;MUSICAL SYMBOL ORNAMENT STROKE-5;So;0;L;;;;;N;;;;;
+1D1A0;MUSICAL SYMBOL ORNAMENT STROKE-6;So;0;L;;;;;N;;;;;
+1D1A1;MUSICAL SYMBOL ORNAMENT STROKE-7;So;0;L;;;;;N;;;;;
+1D1A2;MUSICAL SYMBOL ORNAMENT STROKE-8;So;0;L;;;;;N;;;;;
+1D1A3;MUSICAL SYMBOL ORNAMENT STROKE-9;So;0;L;;;;;N;;;;;
+1D1A4;MUSICAL SYMBOL ORNAMENT STROKE-10;So;0;L;;;;;N;;;;;
+1D1A5;MUSICAL SYMBOL ORNAMENT STROKE-11;So;0;L;;;;;N;;;;;
+1D1A6;MUSICAL SYMBOL HAUPTSTIMME;So;0;L;;;;;N;;;;;
+1D1A7;MUSICAL SYMBOL NEBENSTIMME;So;0;L;;;;;N;;;;;
+1D1A8;MUSICAL SYMBOL END OF STIMME;So;0;L;;;;;N;;;;;
+1D1A9;MUSICAL SYMBOL DEGREE SLASH;So;0;L;;;;;N;;;;;
+1D1AA;MUSICAL SYMBOL COMBINING DOWN BOW;Mn;230;NSM;;;;;N;;;;;
+1D1AB;MUSICAL SYMBOL COMBINING UP BOW;Mn;230;NSM;;;;;N;;;;;
+1D1AC;MUSICAL SYMBOL COMBINING HARMONIC;Mn;230;NSM;;;;;N;;;;;
+1D1AD;MUSICAL SYMBOL COMBINING SNAP PIZZICATO;Mn;230;NSM;;;;;N;;;;;
+1D1AE;MUSICAL SYMBOL PEDAL MARK;So;0;L;;;;;N;;;;;
+1D1AF;MUSICAL SYMBOL PEDAL UP MARK;So;0;L;;;;;N;;;;;
+1D1B0;MUSICAL SYMBOL HALF PEDAL MARK;So;0;L;;;;;N;;;;;
+1D1B1;MUSICAL SYMBOL GLISSANDO UP;So;0;L;;;;;N;;;;;
+1D1B2;MUSICAL SYMBOL GLISSANDO DOWN;So;0;L;;;;;N;;;;;
+1D1B3;MUSICAL SYMBOL WITH FINGERNAILS;So;0;L;;;;;N;;;;;
+1D1B4;MUSICAL SYMBOL DAMP;So;0;L;;;;;N;;;;;
+1D1B5;MUSICAL SYMBOL DAMP ALL;So;0;L;;;;;N;;;;;
+1D1B6;MUSICAL SYMBOL MAXIMA;So;0;L;;;;;N;;;;;
+1D1B7;MUSICAL SYMBOL LONGA;So;0;L;;;;;N;;;;;
+1D1B8;MUSICAL SYMBOL BREVIS;So;0;L;;;;;N;;;;;
+1D1B9;MUSICAL SYMBOL SEMIBREVIS WHITE;So;0;L;;;;;N;;;;;
+1D1BA;MUSICAL SYMBOL SEMIBREVIS BLACK;So;0;L;;;;;N;;;;;
+1D1BB;MUSICAL SYMBOL MINIMA;So;0;L;1D1B9 1D165;;;;N;;;;;
+1D1BC;MUSICAL SYMBOL MINIMA BLACK;So;0;L;1D1BA 1D165;;;;N;;;;;
+1D1BD;MUSICAL SYMBOL SEMIMINIMA WHITE;So;0;L;1D1BB 1D16E;;;;N;;;;;
+1D1BE;MUSICAL SYMBOL SEMIMINIMA BLACK;So;0;L;1D1BC 1D16E;;;;N;;;;;
+1D1BF;MUSICAL SYMBOL FUSA WHITE;So;0;L;1D1BB 1D16F;;;;N;;;;;
+1D1C0;MUSICAL SYMBOL FUSA BLACK;So;0;L;1D1BC 1D16F;;;;N;;;;;
+1D1C1;MUSICAL SYMBOL LONGA PERFECTA REST;So;0;L;;;;;N;;;;;
+1D1C2;MUSICAL SYMBOL LONGA IMPERFECTA REST;So;0;L;;;;;N;;;;;
+1D1C3;MUSICAL SYMBOL BREVIS REST;So;0;L;;;;;N;;;;;
+1D1C4;MUSICAL SYMBOL SEMIBREVIS REST;So;0;L;;;;;N;;;;;
+1D1C5;MUSICAL SYMBOL MINIMA REST;So;0;L;;;;;N;;;;;
+1D1C6;MUSICAL SYMBOL SEMIMINIMA REST;So;0;L;;;;;N;;;;;
+1D1C7;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;
+1D1C8;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;
+1D1C9;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;
+1D1CA;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;
+1D1CB;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;
+1D1CC;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;
+1D1CD;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2;So;0;L;;;;;N;;;;;
+1D1CE;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3;So;0;L;;;;;N;;;;;
+1D1CF;MUSICAL SYMBOL CROIX;So;0;L;;;;;N;;;;;
+1D1D0;MUSICAL SYMBOL GREGORIAN C CLEF;So;0;L;;;;;N;;;;;
+1D1D1;MUSICAL SYMBOL GREGORIAN F CLEF;So;0;L;;;;;N;;;;;
+1D1D2;MUSICAL SYMBOL SQUARE B;So;0;L;;;;;N;;;;;
+1D1D3;MUSICAL SYMBOL VIRGA;So;0;L;;;;;N;;;;;
+1D1D4;MUSICAL SYMBOL PODATUS;So;0;L;;;;;N;;;;;
+1D1D5;MUSICAL SYMBOL CLIVIS;So;0;L;;;;;N;;;;;
+1D1D6;MUSICAL SYMBOL SCANDICUS;So;0;L;;;;;N;;;;;
+1D1D7;MUSICAL SYMBOL CLIMACUS;So;0;L;;;;;N;;;;;
+1D1D8;MUSICAL SYMBOL TORCULUS;So;0;L;;;;;N;;;;;
+1D1D9;MUSICAL SYMBOL PORRECTUS;So;0;L;;;;;N;;;;;
+1D1DA;MUSICAL SYMBOL PORRECTUS FLEXUS;So;0;L;;;;;N;;;;;
+1D1DB;MUSICAL SYMBOL SCANDICUS FLEXUS;So;0;L;;;;;N;;;;;
+1D1DC;MUSICAL SYMBOL TORCULUS RESUPINUS;So;0;L;;;;;N;;;;;
+1D1DD;MUSICAL SYMBOL PES SUBPUNCTIS;So;0;L;;;;;N;;;;;
+1D200;GREEK VOCAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;
+1D201;GREEK VOCAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;
+1D202;GREEK VOCAL NOTATION SYMBOL-3;So;0;ON;;;;;N;;;;;
+1D203;GREEK VOCAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;
+1D204;GREEK VOCAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;
+1D205;GREEK VOCAL NOTATION SYMBOL-6;So;0;ON;;;;;N;;;;;
+1D206;GREEK VOCAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;
+1D207;GREEK VOCAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;
+1D208;GREEK VOCAL NOTATION SYMBOL-9;So;0;ON;;;;;N;;;;;
+1D209;GREEK VOCAL NOTATION SYMBOL-10;So;0;ON;;;;;N;;;;;
+1D20A;GREEK VOCAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;
+1D20B;GREEK VOCAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;
+1D20C;GREEK VOCAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;
+1D20D;GREEK VOCAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;
+1D20E;GREEK VOCAL NOTATION SYMBOL-15;So;0;ON;;;;;N;;;;;
+1D20F;GREEK VOCAL NOTATION SYMBOL-16;So;0;ON;;;;;N;;;;;
+1D210;GREEK VOCAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;
+1D211;GREEK VOCAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;
+1D212;GREEK VOCAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;
+1D213;GREEK VOCAL NOTATION SYMBOL-20;So;0;ON;;;;;N;;;;;
+1D214;GREEK VOCAL NOTATION SYMBOL-21;So;0;ON;;;;;N;;;;;
+1D215;GREEK VOCAL NOTATION SYMBOL-22;So;0;ON;;;;;N;;;;;
+1D216;GREEK VOCAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;
+1D217;GREEK VOCAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;
+1D218;GREEK VOCAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;
+1D219;GREEK VOCAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;
+1D21A;GREEK VOCAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;
+1D21B;GREEK VOCAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;
+1D21C;GREEK VOCAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;
+1D21D;GREEK INSTRUMENTAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;
+1D21E;GREEK INSTRUMENTAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;
+1D21F;GREEK INSTRUMENTAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;
+1D220;GREEK INSTRUMENTAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;
+1D221;GREEK INSTRUMENTAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;
+1D222;GREEK INSTRUMENTAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;
+1D223;GREEK INSTRUMENTAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;
+1D224;GREEK INSTRUMENTAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;
+1D225;GREEK INSTRUMENTAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;
+1D226;GREEK INSTRUMENTAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;
+1D227;GREEK INSTRUMENTAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;
+1D228;GREEK INSTRUMENTAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;
+1D229;GREEK INSTRUMENTAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;
+1D22A;GREEK INSTRUMENTAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;
+1D22B;GREEK INSTRUMENTAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;
+1D22C;GREEK INSTRUMENTAL NOTATION SYMBOL-25;So;0;ON;;;;;N;;;;;
+1D22D;GREEK INSTRUMENTAL NOTATION SYMBOL-26;So;0;ON;;;;;N;;;;;
+1D22E;GREEK INSTRUMENTAL NOTATION SYMBOL-27;So;0;ON;;;;;N;;;;;
+1D22F;GREEK INSTRUMENTAL NOTATION SYMBOL-29;So;0;ON;;;;;N;;;;;
+1D230;GREEK INSTRUMENTAL NOTATION SYMBOL-30;So;0;ON;;;;;N;;;;;
+1D231;GREEK INSTRUMENTAL NOTATION SYMBOL-32;So;0;ON;;;;;N;;;;;
+1D232;GREEK INSTRUMENTAL NOTATION SYMBOL-36;So;0;ON;;;;;N;;;;;
+1D233;GREEK INSTRUMENTAL NOTATION SYMBOL-37;So;0;ON;;;;;N;;;;;
+1D234;GREEK INSTRUMENTAL NOTATION SYMBOL-38;So;0;ON;;;;;N;;;;;
+1D235;GREEK INSTRUMENTAL NOTATION SYMBOL-39;So;0;ON;;;;;N;;;;;
+1D236;GREEK INSTRUMENTAL NOTATION SYMBOL-40;So;0;ON;;;;;N;;;;;
+1D237;GREEK INSTRUMENTAL NOTATION SYMBOL-42;So;0;ON;;;;;N;;;;;
+1D238;GREEK INSTRUMENTAL NOTATION SYMBOL-43;So;0;ON;;;;;N;;;;;
+1D239;GREEK INSTRUMENTAL NOTATION SYMBOL-45;So;0;ON;;;;;N;;;;;
+1D23A;GREEK INSTRUMENTAL NOTATION SYMBOL-47;So;0;ON;;;;;N;;;;;
+1D23B;GREEK INSTRUMENTAL NOTATION SYMBOL-48;So;0;ON;;;;;N;;;;;
+1D23C;GREEK INSTRUMENTAL NOTATION SYMBOL-49;So;0;ON;;;;;N;;;;;
+1D23D;GREEK INSTRUMENTAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;
+1D23E;GREEK INSTRUMENTAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;
+1D23F;GREEK INSTRUMENTAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;
+1D240;GREEK INSTRUMENTAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;
+1D241;GREEK INSTRUMENTAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;
+1D242;COMBINING GREEK MUSICAL TRISEME;Mn;230;NSM;;;;;N;;;;;
+1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;
+1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;
+1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;
+1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;ren *;;;
+1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;tian ren *;;;
+1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;di ren *;;;
+1D303;DIGRAM FOR EARTHLY HEAVEN;So;0;ON;;;;;N;;ren tian *;;;
+1D304;DIGRAM FOR EARTHLY HUMAN;So;0;ON;;;;;N;;ren di *;;;
+1D305;DIGRAM FOR EARTH;So;0;ON;;;;;N;;ren ren *;;;
+1D306;TETRAGRAM FOR CENTRE;So;0;ON;;;;;N;;;;;
+1D307;TETRAGRAM FOR FULL CIRCLE;So;0;ON;;;;;N;;;;;
+1D308;TETRAGRAM FOR MIRED;So;0;ON;;;;;N;;;;;
+1D309;TETRAGRAM FOR BARRIER;So;0;ON;;;;;N;;;;;
+1D30A;TETRAGRAM FOR KEEPING SMALL;So;0;ON;;;;;N;;;;;
+1D30B;TETRAGRAM FOR CONTRARIETY;So;0;ON;;;;;N;;;;;
+1D30C;TETRAGRAM FOR ASCENT;So;0;ON;;;;;N;;;;;
+1D30D;TETRAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;
+1D30E;TETRAGRAM FOR BRANCHING OUT;So;0;ON;;;;;N;;;;;
+1D30F;TETRAGRAM FOR DEFECTIVENESS OR DISTORTION;So;0;ON;;;;;N;;;;;
+1D310;TETRAGRAM FOR DIVERGENCE;So;0;ON;;;;;N;;;;;
+1D311;TETRAGRAM FOR YOUTHFULNESS;So;0;ON;;;;;N;;;;;
+1D312;TETRAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;
+1D313;TETRAGRAM FOR PENETRATION;So;0;ON;;;;;N;;;;;
+1D314;TETRAGRAM FOR REACH;So;0;ON;;;;;N;;;;;
+1D315;TETRAGRAM FOR CONTACT;So;0;ON;;;;;N;;;;;
+1D316;TETRAGRAM FOR HOLDING BACK;So;0;ON;;;;;N;;;;;
+1D317;TETRAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;
+1D318;TETRAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;
+1D319;TETRAGRAM FOR ADVANCE;So;0;ON;;;;;N;;;;;
+1D31A;TETRAGRAM FOR RELEASE;So;0;ON;;;;;N;;;;;
+1D31B;TETRAGRAM FOR RESISTANCE;So;0;ON;;;;;N;;;;;
+1D31C;TETRAGRAM FOR EASE;So;0;ON;;;;;N;;;;;
+1D31D;TETRAGRAM FOR JOY;So;0;ON;;;;;N;;;;;
+1D31E;TETRAGRAM FOR CONTENTION;So;0;ON;;;;;N;;;;;
+1D31F;TETRAGRAM FOR ENDEAVOUR;So;0;ON;;;;;N;;;;;
+1D320;TETRAGRAM FOR DUTIES;So;0;ON;;;;;N;;;;;
+1D321;TETRAGRAM FOR CHANGE;So;0;ON;;;;;N;;;;;
+1D322;TETRAGRAM FOR DECISIVENESS;So;0;ON;;;;;N;;;;;
+1D323;TETRAGRAM FOR BOLD RESOLUTION;So;0;ON;;;;;N;;;;;
+1D324;TETRAGRAM FOR PACKING;So;0;ON;;;;;N;;;;;
+1D325;TETRAGRAM FOR LEGION;So;0;ON;;;;;N;;;;;
+1D326;TETRAGRAM FOR CLOSENESS;So;0;ON;;;;;N;;;;;
+1D327;TETRAGRAM FOR KINSHIP;So;0;ON;;;;;N;;;;;
+1D328;TETRAGRAM FOR GATHERING;So;0;ON;;;;;N;;;;;
+1D329;TETRAGRAM FOR STRENGTH;So;0;ON;;;;;N;;;;;
+1D32A;TETRAGRAM FOR PURITY;So;0;ON;;;;;N;;;;;
+1D32B;TETRAGRAM FOR FULLNESS;So;0;ON;;;;;N;;;;;
+1D32C;TETRAGRAM FOR RESIDENCE;So;0;ON;;;;;N;;;;;
+1D32D;TETRAGRAM FOR LAW OR MODEL;So;0;ON;;;;;N;;;;;
+1D32E;TETRAGRAM FOR RESPONSE;So;0;ON;;;;;N;;;;;
+1D32F;TETRAGRAM FOR GOING TO MEET;So;0;ON;;;;;N;;;;;
+1D330;TETRAGRAM FOR ENCOUNTERS;So;0;ON;;;;;N;;;;;
+1D331;TETRAGRAM FOR STOVE;So;0;ON;;;;;N;;;;;
+1D332;TETRAGRAM FOR GREATNESS;So;0;ON;;;;;N;;;;;
+1D333;TETRAGRAM FOR ENLARGEMENT;So;0;ON;;;;;N;;;;;
+1D334;TETRAGRAM FOR PATTERN;So;0;ON;;;;;N;;;;;
+1D335;TETRAGRAM FOR RITUAL;So;0;ON;;;;;N;;;;;
+1D336;TETRAGRAM FOR FLIGHT;So;0;ON;;;;;N;;;;;
+1D337;TETRAGRAM FOR VASTNESS OR WASTING;So;0;ON;;;;;N;;;;;
+1D338;TETRAGRAM FOR CONSTANCY;So;0;ON;;;;;N;;;;;
+1D339;TETRAGRAM FOR MEASURE;So;0;ON;;;;;N;;;;;
+1D33A;TETRAGRAM FOR ETERNITY;So;0;ON;;;;;N;;;;;
+1D33B;TETRAGRAM FOR UNITY;So;0;ON;;;;;N;;;;;
+1D33C;TETRAGRAM FOR DIMINISHMENT;So;0;ON;;;;;N;;;;;
+1D33D;TETRAGRAM FOR CLOSED MOUTH;So;0;ON;;;;;N;;;;;
+1D33E;TETRAGRAM FOR GUARDEDNESS;So;0;ON;;;;;N;;;;;
+1D33F;TETRAGRAM FOR GATHERING IN;So;0;ON;;;;;N;;;;;
+1D340;TETRAGRAM FOR MASSING;So;0;ON;;;;;N;;;;;
+1D341;TETRAGRAM FOR ACCUMULATION;So;0;ON;;;;;N;;;;;
+1D342;TETRAGRAM FOR EMBELLISHMENT;So;0;ON;;;;;N;;;;;
+1D343;TETRAGRAM FOR DOUBT;So;0;ON;;;;;N;;;;;
+1D344;TETRAGRAM FOR WATCH;So;0;ON;;;;;N;;;;;
+1D345;TETRAGRAM FOR SINKING;So;0;ON;;;;;N;;;;;
+1D346;TETRAGRAM FOR INNER;So;0;ON;;;;;N;;;;;
+1D347;TETRAGRAM FOR DEPARTURE;So;0;ON;;;;;N;;;;;
+1D348;TETRAGRAM FOR DARKENING;So;0;ON;;;;;N;;;;;
+1D349;TETRAGRAM FOR DIMMING;So;0;ON;;;;;N;;;;;
+1D34A;TETRAGRAM FOR EXHAUSTION;So;0;ON;;;;;N;;;;;
+1D34B;TETRAGRAM FOR SEVERANCE;So;0;ON;;;;;N;;;;;
+1D34C;TETRAGRAM FOR STOPPAGE;So;0;ON;;;;;N;;;;;
+1D34D;TETRAGRAM FOR HARDNESS;So;0;ON;;;;;N;;;;;
+1D34E;TETRAGRAM FOR COMPLETION;So;0;ON;;;;;N;;;;;
+1D34F;TETRAGRAM FOR CLOSURE;So;0;ON;;;;;N;;;;;
+1D350;TETRAGRAM FOR FAILURE;So;0;ON;;;;;N;;;;;
+1D351;TETRAGRAM FOR AGGRAVATION;So;0;ON;;;;;N;;;;;
+1D352;TETRAGRAM FOR COMPLIANCE;So;0;ON;;;;;N;;;;;
+1D353;TETRAGRAM FOR ON THE VERGE;So;0;ON;;;;;N;;;;;
+1D354;TETRAGRAM FOR DIFFICULTIES;So;0;ON;;;;;N;;;;;
+1D355;TETRAGRAM FOR LABOURING;So;0;ON;;;;;N;;;;;
+1D356;TETRAGRAM FOR FOSTERING;So;0;ON;;;;;N;;;;;
+1D360;COUNTING ROD UNIT DIGIT ONE;No;0;L;;;;1;N;;;;;
+1D361;COUNTING ROD UNIT DIGIT TWO;No;0;L;;;;2;N;;;;;
+1D362;COUNTING ROD UNIT DIGIT THREE;No;0;L;;;;3;N;;;;;
+1D363;COUNTING ROD UNIT DIGIT FOUR;No;0;L;;;;4;N;;;;;
+1D364;COUNTING ROD UNIT DIGIT FIVE;No;0;L;;;;5;N;;;;;
+1D365;COUNTING ROD UNIT DIGIT SIX;No;0;L;;;;6;N;;;;;
+1D366;COUNTING ROD UNIT DIGIT SEVEN;No;0;L;;;;7;N;;;;;
+1D367;COUNTING ROD UNIT DIGIT EIGHT;No;0;L;;;;8;N;;;;;
+1D368;COUNTING ROD UNIT DIGIT NINE;No;0;L;;;;9;N;;;;;
+1D369;COUNTING ROD TENS DIGIT ONE;No;0;L;;;;10;N;;;;;
+1D36A;COUNTING ROD TENS DIGIT TWO;No;0;L;;;;20;N;;;;;
+1D36B;COUNTING ROD TENS DIGIT THREE;No;0;L;;;;30;N;;;;;
+1D36C;COUNTING ROD TENS DIGIT FOUR;No;0;L;;;;40;N;;;;;
+1D36D;COUNTING ROD TENS DIGIT FIVE;No;0;L;;;;50;N;;;;;
+1D36E;COUNTING ROD TENS DIGIT SIX;No;0;L;;;;60;N;;;;;
+1D36F;COUNTING ROD TENS DIGIT SEVEN;No;0;L;;;;70;N;;;;;
+1D370;COUNTING ROD TENS DIGIT EIGHT;No;0;L;;;;80;N;;;;;
+1D371;COUNTING ROD TENS DIGIT NINE;No;0;L;;;;90;N;;;;;
+1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D403;MATHEMATICAL BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D404;MATHEMATICAL BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D405;MATHEMATICAL BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D406;MATHEMATICAL BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D407;MATHEMATICAL BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D408;MATHEMATICAL BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D409;MATHEMATICAL BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D40A;MATHEMATICAL BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D40B;MATHEMATICAL BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D40C;MATHEMATICAL BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D40D;MATHEMATICAL BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D40E;MATHEMATICAL BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D40F;MATHEMATICAL BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D410;MATHEMATICAL BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D411;MATHEMATICAL BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D412;MATHEMATICAL BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D413;MATHEMATICAL BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D414;MATHEMATICAL BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D415;MATHEMATICAL BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D416;MATHEMATICAL BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D417;MATHEMATICAL BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D418;MATHEMATICAL BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D419;MATHEMATICAL BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D41A;MATHEMATICAL BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D41B;MATHEMATICAL BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D41C;MATHEMATICAL BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D41D;MATHEMATICAL BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D41E;MATHEMATICAL BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D41F;MATHEMATICAL BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D420;MATHEMATICAL BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D421;MATHEMATICAL BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D422;MATHEMATICAL BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D423;MATHEMATICAL BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D424;MATHEMATICAL BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D425;MATHEMATICAL BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D426;MATHEMATICAL BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D427;MATHEMATICAL BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D428;MATHEMATICAL BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D429;MATHEMATICAL BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D42A;MATHEMATICAL BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D42B;MATHEMATICAL BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D42C;MATHEMATICAL BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D42D;MATHEMATICAL BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D42E;MATHEMATICAL BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D42F;MATHEMATICAL BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D430;MATHEMATICAL BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D431;MATHEMATICAL BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D432;MATHEMATICAL BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D433;MATHEMATICAL BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D434;MATHEMATICAL ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D435;MATHEMATICAL ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D436;MATHEMATICAL ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D437;MATHEMATICAL ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D438;MATHEMATICAL ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D439;MATHEMATICAL ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D43A;MATHEMATICAL ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D43B;MATHEMATICAL ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D43C;MATHEMATICAL ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D43D;MATHEMATICAL ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D43E;MATHEMATICAL ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D43F;MATHEMATICAL ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D440;MATHEMATICAL ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D441;MATHEMATICAL ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D442;MATHEMATICAL ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D443;MATHEMATICAL ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D444;MATHEMATICAL ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D445;MATHEMATICAL ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D446;MATHEMATICAL ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D447;MATHEMATICAL ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D448;MATHEMATICAL ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D449;MATHEMATICAL ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D44A;MATHEMATICAL ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D44B;MATHEMATICAL ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D44C;MATHEMATICAL ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D44D;MATHEMATICAL ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D44E;MATHEMATICAL ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D44F;MATHEMATICAL ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D450;MATHEMATICAL ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D451;MATHEMATICAL ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D452;MATHEMATICAL ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D453;MATHEMATICAL ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D454;MATHEMATICAL ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D456;MATHEMATICAL ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D457;MATHEMATICAL ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D458;MATHEMATICAL ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D459;MATHEMATICAL ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D45A;MATHEMATICAL ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D45B;MATHEMATICAL ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D45C;MATHEMATICAL ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D45D;MATHEMATICAL ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D45E;MATHEMATICAL ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D45F;MATHEMATICAL ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D460;MATHEMATICAL ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D461;MATHEMATICAL ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D462;MATHEMATICAL ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D463;MATHEMATICAL ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D464;MATHEMATICAL ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D465;MATHEMATICAL ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D466;MATHEMATICAL ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D467;MATHEMATICAL ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D468;MATHEMATICAL BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D469;MATHEMATICAL BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D46A;MATHEMATICAL BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D46B;MATHEMATICAL BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D46C;MATHEMATICAL BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D46D;MATHEMATICAL BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D46E;MATHEMATICAL BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D46F;MATHEMATICAL BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D470;MATHEMATICAL BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D471;MATHEMATICAL BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D472;MATHEMATICAL BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D473;MATHEMATICAL BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D474;MATHEMATICAL BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D475;MATHEMATICAL BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D476;MATHEMATICAL BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D477;MATHEMATICAL BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D478;MATHEMATICAL BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D479;MATHEMATICAL BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D47A;MATHEMATICAL BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D47B;MATHEMATICAL BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D47C;MATHEMATICAL BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D47D;MATHEMATICAL BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D47E;MATHEMATICAL BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D47F;MATHEMATICAL BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D480;MATHEMATICAL BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D481;MATHEMATICAL BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D482;MATHEMATICAL BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D483;MATHEMATICAL BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D484;MATHEMATICAL BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D485;MATHEMATICAL BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D486;MATHEMATICAL BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D487;MATHEMATICAL BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D488;MATHEMATICAL BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D489;MATHEMATICAL BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D48A;MATHEMATICAL BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D48B;MATHEMATICAL BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D48C;MATHEMATICAL BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D48D;MATHEMATICAL BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D48E;MATHEMATICAL BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D48F;MATHEMATICAL BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D490;MATHEMATICAL BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D491;MATHEMATICAL BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D492;MATHEMATICAL BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D493;MATHEMATICAL BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D494;MATHEMATICAL BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D495;MATHEMATICAL BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D496;MATHEMATICAL BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D497;MATHEMATICAL BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D498;MATHEMATICAL BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D499;MATHEMATICAL BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D49A;MATHEMATICAL BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D49B;MATHEMATICAL BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D49C;MATHEMATICAL SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D49E;MATHEMATICAL SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D49F;MATHEMATICAL SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D4A2;MATHEMATICAL SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D4A5;MATHEMATICAL SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D4A6;MATHEMATICAL SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D4A9;MATHEMATICAL SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D4AA;MATHEMATICAL SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D4AB;MATHEMATICAL SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D4AC;MATHEMATICAL SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D4AE;MATHEMATICAL SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D4AF;MATHEMATICAL SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D4B0;MATHEMATICAL SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D4B1;MATHEMATICAL SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D4B2;MATHEMATICAL SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D4B3;MATHEMATICAL SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D4B4;MATHEMATICAL SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D4B5;MATHEMATICAL SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D4B6;MATHEMATICAL SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D4B7;MATHEMATICAL SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D4B8;MATHEMATICAL SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D4B9;MATHEMATICAL SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D4BB;MATHEMATICAL SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D4BD;MATHEMATICAL SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D4BE;MATHEMATICAL SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D4BF;MATHEMATICAL SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D4C0;MATHEMATICAL SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D4C1;MATHEMATICAL SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D4C2;MATHEMATICAL SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D4C3;MATHEMATICAL SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D4C5;MATHEMATICAL SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D4C6;MATHEMATICAL SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D4C7;MATHEMATICAL SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D4C8;MATHEMATICAL SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D4C9;MATHEMATICAL SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D4CA;MATHEMATICAL SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D4CB;MATHEMATICAL SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D4CC;MATHEMATICAL SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D4CD;MATHEMATICAL SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D4CE;MATHEMATICAL SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D4CF;MATHEMATICAL SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D4D0;MATHEMATICAL BOLD SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D4D1;MATHEMATICAL BOLD SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D4D2;MATHEMATICAL BOLD SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D4D3;MATHEMATICAL BOLD SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D4D4;MATHEMATICAL BOLD SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D4D5;MATHEMATICAL BOLD SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D4D6;MATHEMATICAL BOLD SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D4D7;MATHEMATICAL BOLD SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D4D8;MATHEMATICAL BOLD SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D4D9;MATHEMATICAL BOLD SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D4DA;MATHEMATICAL BOLD SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D4DB;MATHEMATICAL BOLD SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D4DC;MATHEMATICAL BOLD SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D4DD;MATHEMATICAL BOLD SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D4DE;MATHEMATICAL BOLD SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D4DF;MATHEMATICAL BOLD SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D4E0;MATHEMATICAL BOLD SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D4E1;MATHEMATICAL BOLD SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D4E2;MATHEMATICAL BOLD SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D4E3;MATHEMATICAL BOLD SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D4E4;MATHEMATICAL BOLD SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D4E5;MATHEMATICAL BOLD SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D4E6;MATHEMATICAL BOLD SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D4E7;MATHEMATICAL BOLD SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D4E8;MATHEMATICAL BOLD SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D4E9;MATHEMATICAL BOLD SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D4EA;MATHEMATICAL BOLD SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D4EB;MATHEMATICAL BOLD SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D4EC;MATHEMATICAL BOLD SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D4ED;MATHEMATICAL BOLD SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D4EE;MATHEMATICAL BOLD SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D4EF;MATHEMATICAL BOLD SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D4F0;MATHEMATICAL BOLD SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D4F1;MATHEMATICAL BOLD SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D4F2;MATHEMATICAL BOLD SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D4F3;MATHEMATICAL BOLD SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D4F4;MATHEMATICAL BOLD SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D4F5;MATHEMATICAL BOLD SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D4F6;MATHEMATICAL BOLD SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D4F7;MATHEMATICAL BOLD SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D4F8;MATHEMATICAL BOLD SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D4F9;MATHEMATICAL BOLD SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D4FA;MATHEMATICAL BOLD SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D4FB;MATHEMATICAL BOLD SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D4FC;MATHEMATICAL BOLD SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D4FD;MATHEMATICAL BOLD SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D4FE;MATHEMATICAL BOLD SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D4FF;MATHEMATICAL BOLD SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D500;MATHEMATICAL BOLD SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D501;MATHEMATICAL BOLD SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D502;MATHEMATICAL BOLD SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D503;MATHEMATICAL BOLD SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D504;MATHEMATICAL FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D505;MATHEMATICAL FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D507;MATHEMATICAL FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D508;MATHEMATICAL FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D509;MATHEMATICAL FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D50A;MATHEMATICAL FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D50D;MATHEMATICAL FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D50E;MATHEMATICAL FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D50F;MATHEMATICAL FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D510;MATHEMATICAL FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D511;MATHEMATICAL FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D512;MATHEMATICAL FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D513;MATHEMATICAL FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D514;MATHEMATICAL FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D516;MATHEMATICAL FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D517;MATHEMATICAL FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D518;MATHEMATICAL FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D519;MATHEMATICAL FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D51A;MATHEMATICAL FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D51B;MATHEMATICAL FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D51C;MATHEMATICAL FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D51E;MATHEMATICAL FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D51F;MATHEMATICAL FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D520;MATHEMATICAL FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D521;MATHEMATICAL FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D522;MATHEMATICAL FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D523;MATHEMATICAL FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D524;MATHEMATICAL FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D525;MATHEMATICAL FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D526;MATHEMATICAL FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D527;MATHEMATICAL FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D528;MATHEMATICAL FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D529;MATHEMATICAL FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D52A;MATHEMATICAL FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D52B;MATHEMATICAL FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D52C;MATHEMATICAL FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D52D;MATHEMATICAL FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D52E;MATHEMATICAL FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D52F;MATHEMATICAL FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D530;MATHEMATICAL FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D531;MATHEMATICAL FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D532;MATHEMATICAL FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D533;MATHEMATICAL FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D534;MATHEMATICAL FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D535;MATHEMATICAL FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D536;MATHEMATICAL FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D537;MATHEMATICAL FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D538;MATHEMATICAL DOUBLE-STRUCK CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D539;MATHEMATICAL DOUBLE-STRUCK CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D53B;MATHEMATICAL DOUBLE-STRUCK CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D53C;MATHEMATICAL DOUBLE-STRUCK CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D53D;MATHEMATICAL DOUBLE-STRUCK CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D53E;MATHEMATICAL DOUBLE-STRUCK CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D540;MATHEMATICAL DOUBLE-STRUCK CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D541;MATHEMATICAL DOUBLE-STRUCK CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D542;MATHEMATICAL DOUBLE-STRUCK CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D543;MATHEMATICAL DOUBLE-STRUCK CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D544;MATHEMATICAL DOUBLE-STRUCK CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D546;MATHEMATICAL DOUBLE-STRUCK CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D54A;MATHEMATICAL DOUBLE-STRUCK CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D54B;MATHEMATICAL DOUBLE-STRUCK CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D54C;MATHEMATICAL DOUBLE-STRUCK CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D54D;MATHEMATICAL DOUBLE-STRUCK CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D54E;MATHEMATICAL DOUBLE-STRUCK CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D54F;MATHEMATICAL DOUBLE-STRUCK CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D550;MATHEMATICAL DOUBLE-STRUCK CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D552;MATHEMATICAL DOUBLE-STRUCK SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D553;MATHEMATICAL DOUBLE-STRUCK SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D554;MATHEMATICAL DOUBLE-STRUCK SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D555;MATHEMATICAL DOUBLE-STRUCK SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D556;MATHEMATICAL DOUBLE-STRUCK SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D557;MATHEMATICAL DOUBLE-STRUCK SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D558;MATHEMATICAL DOUBLE-STRUCK SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D559;MATHEMATICAL DOUBLE-STRUCK SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D55A;MATHEMATICAL DOUBLE-STRUCK SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D55B;MATHEMATICAL DOUBLE-STRUCK SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D55C;MATHEMATICAL DOUBLE-STRUCK SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D55D;MATHEMATICAL DOUBLE-STRUCK SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D55E;MATHEMATICAL DOUBLE-STRUCK SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D55F;MATHEMATICAL DOUBLE-STRUCK SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D560;MATHEMATICAL DOUBLE-STRUCK SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D561;MATHEMATICAL DOUBLE-STRUCK SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D562;MATHEMATICAL DOUBLE-STRUCK SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D563;MATHEMATICAL DOUBLE-STRUCK SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D564;MATHEMATICAL DOUBLE-STRUCK SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D565;MATHEMATICAL DOUBLE-STRUCK SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D566;MATHEMATICAL DOUBLE-STRUCK SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D567;MATHEMATICAL DOUBLE-STRUCK SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D568;MATHEMATICAL DOUBLE-STRUCK SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D569;MATHEMATICAL DOUBLE-STRUCK SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D56A;MATHEMATICAL DOUBLE-STRUCK SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D56B;MATHEMATICAL DOUBLE-STRUCK SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D56C;MATHEMATICAL BOLD FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D56D;MATHEMATICAL BOLD FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D56E;MATHEMATICAL BOLD FRAKTUR CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D56F;MATHEMATICAL BOLD FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D570;MATHEMATICAL BOLD FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D571;MATHEMATICAL BOLD FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D572;MATHEMATICAL BOLD FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D573;MATHEMATICAL BOLD FRAKTUR CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D574;MATHEMATICAL BOLD FRAKTUR CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D575;MATHEMATICAL BOLD FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D576;MATHEMATICAL BOLD FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D577;MATHEMATICAL BOLD FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D578;MATHEMATICAL BOLD FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D579;MATHEMATICAL BOLD FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D57A;MATHEMATICAL BOLD FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D57B;MATHEMATICAL BOLD FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D57C;MATHEMATICAL BOLD FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D57D;MATHEMATICAL BOLD FRAKTUR CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D57E;MATHEMATICAL BOLD FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D57F;MATHEMATICAL BOLD FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D580;MATHEMATICAL BOLD FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D581;MATHEMATICAL BOLD FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D582;MATHEMATICAL BOLD FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D583;MATHEMATICAL BOLD FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D584;MATHEMATICAL BOLD FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D585;MATHEMATICAL BOLD FRAKTUR CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D586;MATHEMATICAL BOLD FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D587;MATHEMATICAL BOLD FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D588;MATHEMATICAL BOLD FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D589;MATHEMATICAL BOLD FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D58A;MATHEMATICAL BOLD FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D58B;MATHEMATICAL BOLD FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D58C;MATHEMATICAL BOLD FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D58D;MATHEMATICAL BOLD FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D58E;MATHEMATICAL BOLD FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D58F;MATHEMATICAL BOLD FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D590;MATHEMATICAL BOLD FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D591;MATHEMATICAL BOLD FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D592;MATHEMATICAL BOLD FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D593;MATHEMATICAL BOLD FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D594;MATHEMATICAL BOLD FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D595;MATHEMATICAL BOLD FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D596;MATHEMATICAL BOLD FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D597;MATHEMATICAL BOLD FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D598;MATHEMATICAL BOLD FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D599;MATHEMATICAL BOLD FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D59A;MATHEMATICAL BOLD FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D59B;MATHEMATICAL BOLD FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D59C;MATHEMATICAL BOLD FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D59D;MATHEMATICAL BOLD FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D59E;MATHEMATICAL BOLD FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D59F;MATHEMATICAL BOLD FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D5A0;MATHEMATICAL SANS-SERIF CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D5A1;MATHEMATICAL SANS-SERIF CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D5A2;MATHEMATICAL SANS-SERIF CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D5A3;MATHEMATICAL SANS-SERIF CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D5A4;MATHEMATICAL SANS-SERIF CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D5A5;MATHEMATICAL SANS-SERIF CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D5A6;MATHEMATICAL SANS-SERIF CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D5A7;MATHEMATICAL SANS-SERIF CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D5A8;MATHEMATICAL SANS-SERIF CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D5A9;MATHEMATICAL SANS-SERIF CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D5AA;MATHEMATICAL SANS-SERIF CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D5AB;MATHEMATICAL SANS-SERIF CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D5AC;MATHEMATICAL SANS-SERIF CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D5AD;MATHEMATICAL SANS-SERIF CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D5AE;MATHEMATICAL SANS-SERIF CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D5AF;MATHEMATICAL SANS-SERIF CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D5B0;MATHEMATICAL SANS-SERIF CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D5B1;MATHEMATICAL SANS-SERIF CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D5B2;MATHEMATICAL SANS-SERIF CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D5B3;MATHEMATICAL SANS-SERIF CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D5B4;MATHEMATICAL SANS-SERIF CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D5B5;MATHEMATICAL SANS-SERIF CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D5B6;MATHEMATICAL SANS-SERIF CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D5B7;MATHEMATICAL SANS-SERIF CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D5B8;MATHEMATICAL SANS-SERIF CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D5B9;MATHEMATICAL SANS-SERIF CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D5BA;MATHEMATICAL SANS-SERIF SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D5BB;MATHEMATICAL SANS-SERIF SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D5BC;MATHEMATICAL SANS-SERIF SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D5BD;MATHEMATICAL SANS-SERIF SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D5BE;MATHEMATICAL SANS-SERIF SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D5BF;MATHEMATICAL SANS-SERIF SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D5C0;MATHEMATICAL SANS-SERIF SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D5C1;MATHEMATICAL SANS-SERIF SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D5C2;MATHEMATICAL SANS-SERIF SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D5C3;MATHEMATICAL SANS-SERIF SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D5C4;MATHEMATICAL SANS-SERIF SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D5C5;MATHEMATICAL SANS-SERIF SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D5C6;MATHEMATICAL SANS-SERIF SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D5C7;MATHEMATICAL SANS-SERIF SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D5C8;MATHEMATICAL SANS-SERIF SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D5C9;MATHEMATICAL SANS-SERIF SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D5CA;MATHEMATICAL SANS-SERIF SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D5CB;MATHEMATICAL SANS-SERIF SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D5CC;MATHEMATICAL SANS-SERIF SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D5CD;MATHEMATICAL SANS-SERIF SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D5CE;MATHEMATICAL SANS-SERIF SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D5CF;MATHEMATICAL SANS-SERIF SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D5D0;MATHEMATICAL SANS-SERIF SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D5D1;MATHEMATICAL SANS-SERIF SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D5D2;MATHEMATICAL SANS-SERIF SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D5D3;MATHEMATICAL SANS-SERIF SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D5D4;MATHEMATICAL SANS-SERIF BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D5D5;MATHEMATICAL SANS-SERIF BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D5D6;MATHEMATICAL SANS-SERIF BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D5D7;MATHEMATICAL SANS-SERIF BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D5D8;MATHEMATICAL SANS-SERIF BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D5D9;MATHEMATICAL SANS-SERIF BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D5DA;MATHEMATICAL SANS-SERIF BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D5DB;MATHEMATICAL SANS-SERIF BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D5DC;MATHEMATICAL SANS-SERIF BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D5DD;MATHEMATICAL SANS-SERIF BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D5DE;MATHEMATICAL SANS-SERIF BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D5DF;MATHEMATICAL SANS-SERIF BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D5E0;MATHEMATICAL SANS-SERIF BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D5E1;MATHEMATICAL SANS-SERIF BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D5E2;MATHEMATICAL SANS-SERIF BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D5E3;MATHEMATICAL SANS-SERIF BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D5E4;MATHEMATICAL SANS-SERIF BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D5E5;MATHEMATICAL SANS-SERIF BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D5E6;MATHEMATICAL SANS-SERIF BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D5E7;MATHEMATICAL SANS-SERIF BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D5E8;MATHEMATICAL SANS-SERIF BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D5E9;MATHEMATICAL SANS-SERIF BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D5EA;MATHEMATICAL SANS-SERIF BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D5EB;MATHEMATICAL SANS-SERIF BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D5EC;MATHEMATICAL SANS-SERIF BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D5ED;MATHEMATICAL SANS-SERIF BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D5EE;MATHEMATICAL SANS-SERIF BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D5EF;MATHEMATICAL SANS-SERIF BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D5F0;MATHEMATICAL SANS-SERIF BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D5F1;MATHEMATICAL SANS-SERIF BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D5F2;MATHEMATICAL SANS-SERIF BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D5F3;MATHEMATICAL SANS-SERIF BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D5F4;MATHEMATICAL SANS-SERIF BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D5F5;MATHEMATICAL SANS-SERIF BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D5F6;MATHEMATICAL SANS-SERIF BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D5F7;MATHEMATICAL SANS-SERIF BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D5F8;MATHEMATICAL SANS-SERIF BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D5F9;MATHEMATICAL SANS-SERIF BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D5FA;MATHEMATICAL SANS-SERIF BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D5FB;MATHEMATICAL SANS-SERIF BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D5FC;MATHEMATICAL SANS-SERIF BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D5FD;MATHEMATICAL SANS-SERIF BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D5FE;MATHEMATICAL SANS-SERIF BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D5FF;MATHEMATICAL SANS-SERIF BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D600;MATHEMATICAL SANS-SERIF BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D601;MATHEMATICAL SANS-SERIF BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D602;MATHEMATICAL SANS-SERIF BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D603;MATHEMATICAL SANS-SERIF BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D604;MATHEMATICAL SANS-SERIF BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D605;MATHEMATICAL SANS-SERIF BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D606;MATHEMATICAL SANS-SERIF BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D607;MATHEMATICAL SANS-SERIF BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D608;MATHEMATICAL SANS-SERIF ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D609;MATHEMATICAL SANS-SERIF ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D60A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D60B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D60C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D60D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D60E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D60F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D610;MATHEMATICAL SANS-SERIF ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D611;MATHEMATICAL SANS-SERIF ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D612;MATHEMATICAL SANS-SERIF ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D613;MATHEMATICAL SANS-SERIF ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D614;MATHEMATICAL SANS-SERIF ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D615;MATHEMATICAL SANS-SERIF ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D616;MATHEMATICAL SANS-SERIF ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D617;MATHEMATICAL SANS-SERIF ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D618;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D619;MATHEMATICAL SANS-SERIF ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D61A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D61B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D61C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D61D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D61E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D61F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D620;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D621;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D622;MATHEMATICAL SANS-SERIF ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D623;MATHEMATICAL SANS-SERIF ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D624;MATHEMATICAL SANS-SERIF ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D625;MATHEMATICAL SANS-SERIF ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D626;MATHEMATICAL SANS-SERIF ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D627;MATHEMATICAL SANS-SERIF ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D628;MATHEMATICAL SANS-SERIF ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D629;MATHEMATICAL SANS-SERIF ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D62A;MATHEMATICAL SANS-SERIF ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D62B;MATHEMATICAL SANS-SERIF ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D62C;MATHEMATICAL SANS-SERIF ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D62D;MATHEMATICAL SANS-SERIF ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D62E;MATHEMATICAL SANS-SERIF ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D62F;MATHEMATICAL SANS-SERIF ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D630;MATHEMATICAL SANS-SERIF ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D631;MATHEMATICAL SANS-SERIF ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D632;MATHEMATICAL SANS-SERIF ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D633;MATHEMATICAL SANS-SERIF ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D634;MATHEMATICAL SANS-SERIF ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D635;MATHEMATICAL SANS-SERIF ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D636;MATHEMATICAL SANS-SERIF ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D637;MATHEMATICAL SANS-SERIF ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D638;MATHEMATICAL SANS-SERIF ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D639;MATHEMATICAL SANS-SERIF ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D63A;MATHEMATICAL SANS-SERIF ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D63B;MATHEMATICAL SANS-SERIF ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D63C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D63D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D63E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D63F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D640;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D641;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D642;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D643;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D644;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D645;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D646;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D647;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D648;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D649;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D64A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D64B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D64C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D64D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D64E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D64F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D650;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D651;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D652;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D653;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D654;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D655;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D656;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D657;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D658;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D659;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D65A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D65B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D65C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D65D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D65E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D65F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D660;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D661;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D662;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D663;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D664;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D665;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D666;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D667;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D668;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D669;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D66A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D66B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D66C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D66D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D66E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D66F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D670;MATHEMATICAL MONOSPACE CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D671;MATHEMATICAL MONOSPACE CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D672;MATHEMATICAL MONOSPACE CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D673;MATHEMATICAL MONOSPACE CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D674;MATHEMATICAL MONOSPACE CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D675;MATHEMATICAL MONOSPACE CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D676;MATHEMATICAL MONOSPACE CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D677;MATHEMATICAL MONOSPACE CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D678;MATHEMATICAL MONOSPACE CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D679;MATHEMATICAL MONOSPACE CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D67A;MATHEMATICAL MONOSPACE CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D67B;MATHEMATICAL MONOSPACE CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D67C;MATHEMATICAL MONOSPACE CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D67D;MATHEMATICAL MONOSPACE CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D67E;MATHEMATICAL MONOSPACE CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D67F;MATHEMATICAL MONOSPACE CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D680;MATHEMATICAL MONOSPACE CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D681;MATHEMATICAL MONOSPACE CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D682;MATHEMATICAL MONOSPACE CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D683;MATHEMATICAL MONOSPACE CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D684;MATHEMATICAL MONOSPACE CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D685;MATHEMATICAL MONOSPACE CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D686;MATHEMATICAL MONOSPACE CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D687;MATHEMATICAL MONOSPACE CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D688;MATHEMATICAL MONOSPACE CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D689;MATHEMATICAL MONOSPACE CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D68A;MATHEMATICAL MONOSPACE SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D68B;MATHEMATICAL MONOSPACE SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D68C;MATHEMATICAL MONOSPACE SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D68D;MATHEMATICAL MONOSPACE SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D68E;MATHEMATICAL MONOSPACE SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D68F;MATHEMATICAL MONOSPACE SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D690;MATHEMATICAL MONOSPACE SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D691;MATHEMATICAL MONOSPACE SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D692;MATHEMATICAL MONOSPACE SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D693;MATHEMATICAL MONOSPACE SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D694;MATHEMATICAL MONOSPACE SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D695;MATHEMATICAL MONOSPACE SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D696;MATHEMATICAL MONOSPACE SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D697;MATHEMATICAL MONOSPACE SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D698;MATHEMATICAL MONOSPACE SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D699;MATHEMATICAL MONOSPACE SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D69A;MATHEMATICAL MONOSPACE SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D69B;MATHEMATICAL MONOSPACE SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D69C;MATHEMATICAL MONOSPACE SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D69D;MATHEMATICAL MONOSPACE SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D69E;MATHEMATICAL MONOSPACE SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D69F;MATHEMATICAL MONOSPACE SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D6A0;MATHEMATICAL MONOSPACE SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D6A1;MATHEMATICAL MONOSPACE SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D6A2;MATHEMATICAL MONOSPACE SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D6A3;MATHEMATICAL MONOSPACE SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D6A4;MATHEMATICAL ITALIC SMALL DOTLESS I;Ll;0;L;<font> 0131;;;;N;;;;;
+1D6A5;MATHEMATICAL ITALIC SMALL DOTLESS J;Ll;0;L;<font> 0237;;;;N;;;;;
+1D6A8;MATHEMATICAL BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D6A9;MATHEMATICAL BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D6AA;MATHEMATICAL BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D6AB;MATHEMATICAL BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D6AC;MATHEMATICAL BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D6AD;MATHEMATICAL BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D6AE;MATHEMATICAL BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D6AF;MATHEMATICAL BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D6B0;MATHEMATICAL BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D6B1;MATHEMATICAL BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D6B2;MATHEMATICAL BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D6B3;MATHEMATICAL BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D6B4;MATHEMATICAL BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D6B5;MATHEMATICAL BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D6B6;MATHEMATICAL BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D6B7;MATHEMATICAL BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D6B8;MATHEMATICAL BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D6B9;MATHEMATICAL BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D6BA;MATHEMATICAL BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D6BB;MATHEMATICAL BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D6BC;MATHEMATICAL BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D6BD;MATHEMATICAL BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D6C5;MATHEMATICAL BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D6C6;MATHEMATICAL BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D6C7;MATHEMATICAL BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D6C8;MATHEMATICAL BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D6C9;MATHEMATICAL BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D6CA;MATHEMATICAL BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D6CB;MATHEMATICAL BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D6CC;MATHEMATICAL BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D6CD;MATHEMATICAL BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D6CE;MATHEMATICAL BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D6CF;MATHEMATICAL BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D6D0;MATHEMATICAL BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D6D1;MATHEMATICAL BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D6D2;MATHEMATICAL BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D6D3;MATHEMATICAL BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D6D4;MATHEMATICAL BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D6D5;MATHEMATICAL BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D6D6;MATHEMATICAL BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D6D7;MATHEMATICAL BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D6DF;MATHEMATICAL BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D6E0;MATHEMATICAL BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D6E1;MATHEMATICAL BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D6E2;MATHEMATICAL ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D6E3;MATHEMATICAL ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D6E4;MATHEMATICAL ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D6E5;MATHEMATICAL ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D6E6;MATHEMATICAL ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D6E7;MATHEMATICAL ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D6E8;MATHEMATICAL ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D6E9;MATHEMATICAL ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D6EA;MATHEMATICAL ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D6EB;MATHEMATICAL ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D6EC;MATHEMATICAL ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D6ED;MATHEMATICAL ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D6EE;MATHEMATICAL ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D6EF;MATHEMATICAL ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D6F0;MATHEMATICAL ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D6F1;MATHEMATICAL ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D6F2;MATHEMATICAL ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D6F3;MATHEMATICAL ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D6F4;MATHEMATICAL ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D6F5;MATHEMATICAL ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D6F6;MATHEMATICAL ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D6F7;MATHEMATICAL ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D6FF;MATHEMATICAL ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D700;MATHEMATICAL ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D701;MATHEMATICAL ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D702;MATHEMATICAL ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D705;MATHEMATICAL ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D706;MATHEMATICAL ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D707;MATHEMATICAL ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D708;MATHEMATICAL ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D709;MATHEMATICAL ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D70A;MATHEMATICAL ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D70B;MATHEMATICAL ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D70C;MATHEMATICAL ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D70D;MATHEMATICAL ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D70E;MATHEMATICAL ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D70F;MATHEMATICAL ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D710;MATHEMATICAL ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D711;MATHEMATICAL ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D719;MATHEMATICAL ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D71A;MATHEMATICAL ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D71B;MATHEMATICAL ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D71C;MATHEMATICAL BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D71D;MATHEMATICAL BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D71E;MATHEMATICAL BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D71F;MATHEMATICAL BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D720;MATHEMATICAL BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D721;MATHEMATICAL BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D722;MATHEMATICAL BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D723;MATHEMATICAL BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D724;MATHEMATICAL BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D725;MATHEMATICAL BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D726;MATHEMATICAL BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D727;MATHEMATICAL BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D728;MATHEMATICAL BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D729;MATHEMATICAL BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D72A;MATHEMATICAL BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D72B;MATHEMATICAL BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D72C;MATHEMATICAL BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D72D;MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D72E;MATHEMATICAL BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D72F;MATHEMATICAL BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D730;MATHEMATICAL BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D731;MATHEMATICAL BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D739;MATHEMATICAL BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D73A;MATHEMATICAL BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D73B;MATHEMATICAL BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D73C;MATHEMATICAL BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D73D;MATHEMATICAL BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D73E;MATHEMATICAL BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D73F;MATHEMATICAL BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D740;MATHEMATICAL BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D741;MATHEMATICAL BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D742;MATHEMATICAL BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D743;MATHEMATICAL BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D744;MATHEMATICAL BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D745;MATHEMATICAL BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D746;MATHEMATICAL BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D747;MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D748;MATHEMATICAL BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D749;MATHEMATICAL BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D74A;MATHEMATICAL BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D74B;MATHEMATICAL BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D753;MATHEMATICAL BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D754;MATHEMATICAL BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D755;MATHEMATICAL BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D756;MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D757;MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D758;MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D759;MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D75A;MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D75B;MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D75C;MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D75D;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D75E;MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D75F;MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D760;MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D761;MATHEMATICAL SANS-SERIF BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D762;MATHEMATICAL SANS-SERIF BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D763;MATHEMATICAL SANS-SERIF BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D764;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D765;MATHEMATICAL SANS-SERIF BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D766;MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D767;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D768;MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D769;MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D76A;MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D76B;MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D773;MATHEMATICAL SANS-SERIF BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D774;MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D775;MATHEMATICAL SANS-SERIF BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D776;MATHEMATICAL SANS-SERIF BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D777;MATHEMATICAL SANS-SERIF BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D778;MATHEMATICAL SANS-SERIF BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D779;MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D77A;MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D77B;MATHEMATICAL SANS-SERIF BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D77C;MATHEMATICAL SANS-SERIF BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D77D;MATHEMATICAL SANS-SERIF BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D77E;MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D77F;MATHEMATICAL SANS-SERIF BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D780;MATHEMATICAL SANS-SERIF BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D781;MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D782;MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D783;MATHEMATICAL SANS-SERIF BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D784;MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D785;MATHEMATICAL SANS-SERIF BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D78D;MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D78E;MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D78F;MATHEMATICAL SANS-SERIF BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D790;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D791;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D792;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D793;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D794;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D795;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D796;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D797;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D798;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D799;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D79A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D79B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D79C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D79D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D79E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D79F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D7A0;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D7A1;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D7A2;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D7A3;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D7A4;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D7A5;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D7AD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D7AE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D7AF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D7B0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D7B1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D7B2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D7B3;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D7B4;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D7B5;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D7B6;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D7B7;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D7B8;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D7B9;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D7BA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D7BB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D7BC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D7BD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D7BE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D7BF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D7CA;MATHEMATICAL BOLD CAPITAL DIGAMMA;Lu;0;L;<font> 03DC;;;;N;;;;;
+1D7CB;MATHEMATICAL BOLD SMALL DIGAMMA;Ll;0;L;<font> 03DD;;;;N;;;;;
+1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7D1;MATHEMATICAL BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7D2;MATHEMATICAL BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7D3;MATHEMATICAL BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7D4;MATHEMATICAL BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7D5;MATHEMATICAL BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7D6;MATHEMATICAL BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7D7;MATHEMATICAL BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7D8;MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7D9;MATHEMATICAL DOUBLE-STRUCK DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7DA;MATHEMATICAL DOUBLE-STRUCK DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7DB;MATHEMATICAL DOUBLE-STRUCK DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7DC;MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7DD;MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7DE;MATHEMATICAL DOUBLE-STRUCK DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7DF;MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7E0;MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7E1;MATHEMATICAL DOUBLE-STRUCK DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7E2;MATHEMATICAL SANS-SERIF DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7E3;MATHEMATICAL SANS-SERIF DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7E4;MATHEMATICAL SANS-SERIF DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7E5;MATHEMATICAL SANS-SERIF DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7E6;MATHEMATICAL SANS-SERIF DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7E7;MATHEMATICAL SANS-SERIF DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7E8;MATHEMATICAL SANS-SERIF DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7E9;MATHEMATICAL SANS-SERIF DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7EA;MATHEMATICAL SANS-SERIF DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7EB;MATHEMATICAL SANS-SERIF DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7EC;MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7ED;MATHEMATICAL SANS-SERIF BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7EE;MATHEMATICAL SANS-SERIF BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7EF;MATHEMATICAL SANS-SERIF BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7F0;MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7F1;MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7F2;MATHEMATICAL SANS-SERIF BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7F3;MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7F4;MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7F5;MATHEMATICAL SANS-SERIF BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7F6;MATHEMATICAL MONOSPACE DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7F7;MATHEMATICAL MONOSPACE DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7F8;MATHEMATICAL MONOSPACE DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7F9;MATHEMATICAL MONOSPACE DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7FA;MATHEMATICAL MONOSPACE DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7FB;MATHEMATICAL MONOSPACE DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7FC;MATHEMATICAL MONOSPACE DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
+2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
+2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;;
+2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;;
+2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;;
+2F803;CJK COMPATIBILITY IDEOGRAPH-2F803;Lo;0;L;20122;;;;N;;;;;
+2F804;CJK COMPATIBILITY IDEOGRAPH-2F804;Lo;0;L;4F60;;;;N;;;;;
+2F805;CJK COMPATIBILITY IDEOGRAPH-2F805;Lo;0;L;4FAE;;;;N;;;;;
+2F806;CJK COMPATIBILITY IDEOGRAPH-2F806;Lo;0;L;4FBB;;;;N;;;;;
+2F807;CJK COMPATIBILITY IDEOGRAPH-2F807;Lo;0;L;5002;;;;N;;;;;
+2F808;CJK COMPATIBILITY IDEOGRAPH-2F808;Lo;0;L;507A;;;;N;;;;;
+2F809;CJK COMPATIBILITY IDEOGRAPH-2F809;Lo;0;L;5099;;;;N;;;;;
+2F80A;CJK COMPATIBILITY IDEOGRAPH-2F80A;Lo;0;L;50E7;;;;N;;;;;
+2F80B;CJK COMPATIBILITY IDEOGRAPH-2F80B;Lo;0;L;50CF;;;;N;;;;;
+2F80C;CJK COMPATIBILITY IDEOGRAPH-2F80C;Lo;0;L;349E;;;;N;;;;;
+2F80D;CJK COMPATIBILITY IDEOGRAPH-2F80D;Lo;0;L;2063A;;;;N;;;;;
+2F80E;CJK COMPATIBILITY IDEOGRAPH-2F80E;Lo;0;L;514D;;;;N;;;;;
+2F80F;CJK COMPATIBILITY IDEOGRAPH-2F80F;Lo;0;L;5154;;;;N;;;;;
+2F810;CJK COMPATIBILITY IDEOGRAPH-2F810;Lo;0;L;5164;;;;N;;;;;
+2F811;CJK COMPATIBILITY IDEOGRAPH-2F811;Lo;0;L;5177;;;;N;;;;;
+2F812;CJK COMPATIBILITY IDEOGRAPH-2F812;Lo;0;L;2051C;;;;N;;;;;
+2F813;CJK COMPATIBILITY IDEOGRAPH-2F813;Lo;0;L;34B9;;;;N;;;;;
+2F814;CJK COMPATIBILITY IDEOGRAPH-2F814;Lo;0;L;5167;;;;N;;;;;
+2F815;CJK COMPATIBILITY IDEOGRAPH-2F815;Lo;0;L;518D;;;;N;;;;;
+2F816;CJK COMPATIBILITY IDEOGRAPH-2F816;Lo;0;L;2054B;;;;N;;;;;
+2F817;CJK COMPATIBILITY IDEOGRAPH-2F817;Lo;0;L;5197;;;;N;;;;;
+2F818;CJK COMPATIBILITY IDEOGRAPH-2F818;Lo;0;L;51A4;;;;N;;;;;
+2F819;CJK COMPATIBILITY IDEOGRAPH-2F819;Lo;0;L;4ECC;;;;N;;;;;
+2F81A;CJK COMPATIBILITY IDEOGRAPH-2F81A;Lo;0;L;51AC;;;;N;;;;;
+2F81B;CJK COMPATIBILITY IDEOGRAPH-2F81B;Lo;0;L;51B5;;;;N;;;;;
+2F81C;CJK COMPATIBILITY IDEOGRAPH-2F81C;Lo;0;L;291DF;;;;N;;;;;
+2F81D;CJK COMPATIBILITY IDEOGRAPH-2F81D;Lo;0;L;51F5;;;;N;;;;;
+2F81E;CJK COMPATIBILITY IDEOGRAPH-2F81E;Lo;0;L;5203;;;;N;;;;;
+2F81F;CJK COMPATIBILITY IDEOGRAPH-2F81F;Lo;0;L;34DF;;;;N;;;;;
+2F820;CJK COMPATIBILITY IDEOGRAPH-2F820;Lo;0;L;523B;;;;N;;;;;
+2F821;CJK COMPATIBILITY IDEOGRAPH-2F821;Lo;0;L;5246;;;;N;;;;;
+2F822;CJK COMPATIBILITY IDEOGRAPH-2F822;Lo;0;L;5272;;;;N;;;;;
+2F823;CJK COMPATIBILITY IDEOGRAPH-2F823;Lo;0;L;5277;;;;N;;;;;
+2F824;CJK COMPATIBILITY IDEOGRAPH-2F824;Lo;0;L;3515;;;;N;;;;;
+2F825;CJK COMPATIBILITY IDEOGRAPH-2F825;Lo;0;L;52C7;;;;N;;;;;
+2F826;CJK COMPATIBILITY IDEOGRAPH-2F826;Lo;0;L;52C9;;;;N;;;;;
+2F827;CJK COMPATIBILITY IDEOGRAPH-2F827;Lo;0;L;52E4;;;;N;;;;;
+2F828;CJK COMPATIBILITY IDEOGRAPH-2F828;Lo;0;L;52FA;;;;N;;;;;
+2F829;CJK COMPATIBILITY IDEOGRAPH-2F829;Lo;0;L;5305;;;;N;;;;;
+2F82A;CJK COMPATIBILITY IDEOGRAPH-2F82A;Lo;0;L;5306;;;;N;;;;;
+2F82B;CJK COMPATIBILITY IDEOGRAPH-2F82B;Lo;0;L;5317;;;;N;;;;;
+2F82C;CJK COMPATIBILITY IDEOGRAPH-2F82C;Lo;0;L;5349;;;;N;;;;;
+2F82D;CJK COMPATIBILITY IDEOGRAPH-2F82D;Lo;0;L;5351;;;;N;;;;;
+2F82E;CJK COMPATIBILITY IDEOGRAPH-2F82E;Lo;0;L;535A;;;;N;;;;;
+2F82F;CJK COMPATIBILITY IDEOGRAPH-2F82F;Lo;0;L;5373;;;;N;;;;;
+2F830;CJK COMPATIBILITY IDEOGRAPH-2F830;Lo;0;L;537D;;;;N;;;;;
+2F831;CJK COMPATIBILITY IDEOGRAPH-2F831;Lo;0;L;537F;;;;N;;;;;
+2F832;CJK COMPATIBILITY IDEOGRAPH-2F832;Lo;0;L;537F;;;;N;;;;;
+2F833;CJK COMPATIBILITY IDEOGRAPH-2F833;Lo;0;L;537F;;;;N;;;;;
+2F834;CJK COMPATIBILITY IDEOGRAPH-2F834;Lo;0;L;20A2C;;;;N;;;;;
+2F835;CJK COMPATIBILITY IDEOGRAPH-2F835;Lo;0;L;7070;;;;N;;;;;
+2F836;CJK COMPATIBILITY IDEOGRAPH-2F836;Lo;0;L;53CA;;;;N;;;;;
+2F837;CJK COMPATIBILITY IDEOGRAPH-2F837;Lo;0;L;53DF;;;;N;;;;;
+2F838;CJK COMPATIBILITY IDEOGRAPH-2F838;Lo;0;L;20B63;;;;N;;;;;
+2F839;CJK COMPATIBILITY IDEOGRAPH-2F839;Lo;0;L;53EB;;;;N;;;;;
+2F83A;CJK COMPATIBILITY IDEOGRAPH-2F83A;Lo;0;L;53F1;;;;N;;;;;
+2F83B;CJK COMPATIBILITY IDEOGRAPH-2F83B;Lo;0;L;5406;;;;N;;;;;
+2F83C;CJK COMPATIBILITY IDEOGRAPH-2F83C;Lo;0;L;549E;;;;N;;;;;
+2F83D;CJK COMPATIBILITY IDEOGRAPH-2F83D;Lo;0;L;5438;;;;N;;;;;
+2F83E;CJK COMPATIBILITY IDEOGRAPH-2F83E;Lo;0;L;5448;;;;N;;;;;
+2F83F;CJK COMPATIBILITY IDEOGRAPH-2F83F;Lo;0;L;5468;;;;N;;;;;
+2F840;CJK COMPATIBILITY IDEOGRAPH-2F840;Lo;0;L;54A2;;;;N;;;;;
+2F841;CJK COMPATIBILITY IDEOGRAPH-2F841;Lo;0;L;54F6;;;;N;;;;;
+2F842;CJK COMPATIBILITY IDEOGRAPH-2F842;Lo;0;L;5510;;;;N;;;;;
+2F843;CJK COMPATIBILITY IDEOGRAPH-2F843;Lo;0;L;5553;;;;N;;;;;
+2F844;CJK COMPATIBILITY IDEOGRAPH-2F844;Lo;0;L;5563;;;;N;;;;;
+2F845;CJK COMPATIBILITY IDEOGRAPH-2F845;Lo;0;L;5584;;;;N;;;;;
+2F846;CJK COMPATIBILITY IDEOGRAPH-2F846;Lo;0;L;5584;;;;N;;;;;
+2F847;CJK COMPATIBILITY IDEOGRAPH-2F847;Lo;0;L;5599;;;;N;;;;;
+2F848;CJK COMPATIBILITY IDEOGRAPH-2F848;Lo;0;L;55AB;;;;N;;;;;
+2F849;CJK COMPATIBILITY IDEOGRAPH-2F849;Lo;0;L;55B3;;;;N;;;;;
+2F84A;CJK COMPATIBILITY IDEOGRAPH-2F84A;Lo;0;L;55C2;;;;N;;;;;
+2F84B;CJK COMPATIBILITY IDEOGRAPH-2F84B;Lo;0;L;5716;;;;N;;;;;
+2F84C;CJK COMPATIBILITY IDEOGRAPH-2F84C;Lo;0;L;5606;;;;N;;;;;
+2F84D;CJK COMPATIBILITY IDEOGRAPH-2F84D;Lo;0;L;5717;;;;N;;;;;
+2F84E;CJK COMPATIBILITY IDEOGRAPH-2F84E;Lo;0;L;5651;;;;N;;;;;
+2F84F;CJK COMPATIBILITY IDEOGRAPH-2F84F;Lo;0;L;5674;;;;N;;;;;
+2F850;CJK COMPATIBILITY IDEOGRAPH-2F850;Lo;0;L;5207;;;;N;;;;;
+2F851;CJK COMPATIBILITY IDEOGRAPH-2F851;Lo;0;L;58EE;;;;N;;;;;
+2F852;CJK COMPATIBILITY IDEOGRAPH-2F852;Lo;0;L;57CE;;;;N;;;;;
+2F853;CJK COMPATIBILITY IDEOGRAPH-2F853;Lo;0;L;57F4;;;;N;;;;;
+2F854;CJK COMPATIBILITY IDEOGRAPH-2F854;Lo;0;L;580D;;;;N;;;;;
+2F855;CJK COMPATIBILITY IDEOGRAPH-2F855;Lo;0;L;578B;;;;N;;;;;
+2F856;CJK COMPATIBILITY IDEOGRAPH-2F856;Lo;0;L;5832;;;;N;;;;;
+2F857;CJK COMPATIBILITY IDEOGRAPH-2F857;Lo;0;L;5831;;;;N;;;;;
+2F858;CJK COMPATIBILITY IDEOGRAPH-2F858;Lo;0;L;58AC;;;;N;;;;;
+2F859;CJK COMPATIBILITY IDEOGRAPH-2F859;Lo;0;L;214E4;;;;N;;;;;
+2F85A;CJK COMPATIBILITY IDEOGRAPH-2F85A;Lo;0;L;58F2;;;;N;;;;;
+2F85B;CJK COMPATIBILITY IDEOGRAPH-2F85B;Lo;0;L;58F7;;;;N;;;;;
+2F85C;CJK COMPATIBILITY IDEOGRAPH-2F85C;Lo;0;L;5906;;;;N;;;;;
+2F85D;CJK COMPATIBILITY IDEOGRAPH-2F85D;Lo;0;L;591A;;;;N;;;;;
+2F85E;CJK COMPATIBILITY IDEOGRAPH-2F85E;Lo;0;L;5922;;;;N;;;;;
+2F85F;CJK COMPATIBILITY IDEOGRAPH-2F85F;Lo;0;L;5962;;;;N;;;;;
+2F860;CJK COMPATIBILITY IDEOGRAPH-2F860;Lo;0;L;216A8;;;;N;;;;;
+2F861;CJK COMPATIBILITY IDEOGRAPH-2F861;Lo;0;L;216EA;;;;N;;;;;
+2F862;CJK COMPATIBILITY IDEOGRAPH-2F862;Lo;0;L;59EC;;;;N;;;;;
+2F863;CJK COMPATIBILITY IDEOGRAPH-2F863;Lo;0;L;5A1B;;;;N;;;;;
+2F864;CJK COMPATIBILITY IDEOGRAPH-2F864;Lo;0;L;5A27;;;;N;;;;;
+2F865;CJK COMPATIBILITY IDEOGRAPH-2F865;Lo;0;L;59D8;;;;N;;;;;
+2F866;CJK COMPATIBILITY IDEOGRAPH-2F866;Lo;0;L;5A66;;;;N;;;;;
+2F867;CJK COMPATIBILITY IDEOGRAPH-2F867;Lo;0;L;36EE;;;;N;;;;;
+2F868;CJK COMPATIBILITY IDEOGRAPH-2F868;Lo;0;L;36FC;;;;N;;;;;
+2F869;CJK COMPATIBILITY IDEOGRAPH-2F869;Lo;0;L;5B08;;;;N;;;;;
+2F86A;CJK COMPATIBILITY IDEOGRAPH-2F86A;Lo;0;L;5B3E;;;;N;;;;;
+2F86B;CJK COMPATIBILITY IDEOGRAPH-2F86B;Lo;0;L;5B3E;;;;N;;;;;
+2F86C;CJK COMPATIBILITY IDEOGRAPH-2F86C;Lo;0;L;219C8;;;;N;;;;;
+2F86D;CJK COMPATIBILITY IDEOGRAPH-2F86D;Lo;0;L;5BC3;;;;N;;;;;
+2F86E;CJK COMPATIBILITY IDEOGRAPH-2F86E;Lo;0;L;5BD8;;;;N;;;;;
+2F86F;CJK COMPATIBILITY IDEOGRAPH-2F86F;Lo;0;L;5BE7;;;;N;;;;;
+2F870;CJK COMPATIBILITY IDEOGRAPH-2F870;Lo;0;L;5BF3;;;;N;;;;;
+2F871;CJK COMPATIBILITY IDEOGRAPH-2F871;Lo;0;L;21B18;;;;N;;;;;
+2F872;CJK COMPATIBILITY IDEOGRAPH-2F872;Lo;0;L;5BFF;;;;N;;;;;
+2F873;CJK COMPATIBILITY IDEOGRAPH-2F873;Lo;0;L;5C06;;;;N;;;;;
+2F874;CJK COMPATIBILITY IDEOGRAPH-2F874;Lo;0;L;5F53;;;;N;;;;;
+2F875;CJK COMPATIBILITY IDEOGRAPH-2F875;Lo;0;L;5C22;;;;N;;;;;
+2F876;CJK COMPATIBILITY IDEOGRAPH-2F876;Lo;0;L;3781;;;;N;;;;;
+2F877;CJK COMPATIBILITY IDEOGRAPH-2F877;Lo;0;L;5C60;;;;N;;;;;
+2F878;CJK COMPATIBILITY IDEOGRAPH-2F878;Lo;0;L;5C6E;;;;N;;;;;
+2F879;CJK COMPATIBILITY IDEOGRAPH-2F879;Lo;0;L;5CC0;;;;N;;;;;
+2F87A;CJK COMPATIBILITY IDEOGRAPH-2F87A;Lo;0;L;5C8D;;;;N;;;;;
+2F87B;CJK COMPATIBILITY IDEOGRAPH-2F87B;Lo;0;L;21DE4;;;;N;;;;;
+2F87C;CJK COMPATIBILITY IDEOGRAPH-2F87C;Lo;0;L;5D43;;;;N;;;;;
+2F87D;CJK COMPATIBILITY IDEOGRAPH-2F87D;Lo;0;L;21DE6;;;;N;;;;;
+2F87E;CJK COMPATIBILITY IDEOGRAPH-2F87E;Lo;0;L;5D6E;;;;N;;;;;
+2F87F;CJK COMPATIBILITY IDEOGRAPH-2F87F;Lo;0;L;5D6B;;;;N;;;;;
+2F880;CJK COMPATIBILITY IDEOGRAPH-2F880;Lo;0;L;5D7C;;;;N;;;;;
+2F881;CJK COMPATIBILITY IDEOGRAPH-2F881;Lo;0;L;5DE1;;;;N;;;;;
+2F882;CJK COMPATIBILITY IDEOGRAPH-2F882;Lo;0;L;5DE2;;;;N;;;;;
+2F883;CJK COMPATIBILITY IDEOGRAPH-2F883;Lo;0;L;382F;;;;N;;;;;
+2F884;CJK COMPATIBILITY IDEOGRAPH-2F884;Lo;0;L;5DFD;;;;N;;;;;
+2F885;CJK COMPATIBILITY IDEOGRAPH-2F885;Lo;0;L;5E28;;;;N;;;;;
+2F886;CJK COMPATIBILITY IDEOGRAPH-2F886;Lo;0;L;5E3D;;;;N;;;;;
+2F887;CJK COMPATIBILITY IDEOGRAPH-2F887;Lo;0;L;5E69;;;;N;;;;;
+2F888;CJK COMPATIBILITY IDEOGRAPH-2F888;Lo;0;L;3862;;;;N;;;;;
+2F889;CJK COMPATIBILITY IDEOGRAPH-2F889;Lo;0;L;22183;;;;N;;;;;
+2F88A;CJK COMPATIBILITY IDEOGRAPH-2F88A;Lo;0;L;387C;;;;N;;;;;
+2F88B;CJK COMPATIBILITY IDEOGRAPH-2F88B;Lo;0;L;5EB0;;;;N;;;;;
+2F88C;CJK COMPATIBILITY IDEOGRAPH-2F88C;Lo;0;L;5EB3;;;;N;;;;;
+2F88D;CJK COMPATIBILITY IDEOGRAPH-2F88D;Lo;0;L;5EB6;;;;N;;;;;
+2F88E;CJK COMPATIBILITY IDEOGRAPH-2F88E;Lo;0;L;5ECA;;;;N;;;;;
+2F88F;CJK COMPATIBILITY IDEOGRAPH-2F88F;Lo;0;L;2A392;;;;N;;;;;
+2F890;CJK COMPATIBILITY IDEOGRAPH-2F890;Lo;0;L;5EFE;;;;N;;;;;
+2F891;CJK COMPATIBILITY IDEOGRAPH-2F891;Lo;0;L;22331;;;;N;;;;;
+2F892;CJK COMPATIBILITY IDEOGRAPH-2F892;Lo;0;L;22331;;;;N;;;;;
+2F893;CJK COMPATIBILITY IDEOGRAPH-2F893;Lo;0;L;8201;;;;N;;;;;
+2F894;CJK COMPATIBILITY IDEOGRAPH-2F894;Lo;0;L;5F22;;;;N;;;;;
+2F895;CJK COMPATIBILITY IDEOGRAPH-2F895;Lo;0;L;5F22;;;;N;;;;;
+2F896;CJK COMPATIBILITY IDEOGRAPH-2F896;Lo;0;L;38C7;;;;N;;;;;
+2F897;CJK COMPATIBILITY IDEOGRAPH-2F897;Lo;0;L;232B8;;;;N;;;;;
+2F898;CJK COMPATIBILITY IDEOGRAPH-2F898;Lo;0;L;261DA;;;;N;;;;;
+2F899;CJK COMPATIBILITY IDEOGRAPH-2F899;Lo;0;L;5F62;;;;N;;;;;
+2F89A;CJK COMPATIBILITY IDEOGRAPH-2F89A;Lo;0;L;5F6B;;;;N;;;;;
+2F89B;CJK COMPATIBILITY IDEOGRAPH-2F89B;Lo;0;L;38E3;;;;N;;;;;
+2F89C;CJK COMPATIBILITY IDEOGRAPH-2F89C;Lo;0;L;5F9A;;;;N;;;;;
+2F89D;CJK COMPATIBILITY IDEOGRAPH-2F89D;Lo;0;L;5FCD;;;;N;;;;;
+2F89E;CJK COMPATIBILITY IDEOGRAPH-2F89E;Lo;0;L;5FD7;;;;N;;;;;
+2F89F;CJK COMPATIBILITY IDEOGRAPH-2F89F;Lo;0;L;5FF9;;;;N;;;;;
+2F8A0;CJK COMPATIBILITY IDEOGRAPH-2F8A0;Lo;0;L;6081;;;;N;;;;;
+2F8A1;CJK COMPATIBILITY IDEOGRAPH-2F8A1;Lo;0;L;393A;;;;N;;;;;
+2F8A2;CJK COMPATIBILITY IDEOGRAPH-2F8A2;Lo;0;L;391C;;;;N;;;;;
+2F8A3;CJK COMPATIBILITY IDEOGRAPH-2F8A3;Lo;0;L;6094;;;;N;;;;;
+2F8A4;CJK COMPATIBILITY IDEOGRAPH-2F8A4;Lo;0;L;226D4;;;;N;;;;;
+2F8A5;CJK COMPATIBILITY IDEOGRAPH-2F8A5;Lo;0;L;60C7;;;;N;;;;;
+2F8A6;CJK COMPATIBILITY IDEOGRAPH-2F8A6;Lo;0;L;6148;;;;N;;;;;
+2F8A7;CJK COMPATIBILITY IDEOGRAPH-2F8A7;Lo;0;L;614C;;;;N;;;;;
+2F8A8;CJK COMPATIBILITY IDEOGRAPH-2F8A8;Lo;0;L;614E;;;;N;;;;;
+2F8A9;CJK COMPATIBILITY IDEOGRAPH-2F8A9;Lo;0;L;614C;;;;N;;;;;
+2F8AA;CJK COMPATIBILITY IDEOGRAPH-2F8AA;Lo;0;L;617A;;;;N;;;;;
+2F8AB;CJK COMPATIBILITY IDEOGRAPH-2F8AB;Lo;0;L;618E;;;;N;;;;;
+2F8AC;CJK COMPATIBILITY IDEOGRAPH-2F8AC;Lo;0;L;61B2;;;;N;;;;;
+2F8AD;CJK COMPATIBILITY IDEOGRAPH-2F8AD;Lo;0;L;61A4;;;;N;;;;;
+2F8AE;CJK COMPATIBILITY IDEOGRAPH-2F8AE;Lo;0;L;61AF;;;;N;;;;;
+2F8AF;CJK COMPATIBILITY IDEOGRAPH-2F8AF;Lo;0;L;61DE;;;;N;;;;;
+2F8B0;CJK COMPATIBILITY IDEOGRAPH-2F8B0;Lo;0;L;61F2;;;;N;;;;;
+2F8B1;CJK COMPATIBILITY IDEOGRAPH-2F8B1;Lo;0;L;61F6;;;;N;;;;;
+2F8B2;CJK COMPATIBILITY IDEOGRAPH-2F8B2;Lo;0;L;6210;;;;N;;;;;
+2F8B3;CJK COMPATIBILITY IDEOGRAPH-2F8B3;Lo;0;L;621B;;;;N;;;;;
+2F8B4;CJK COMPATIBILITY IDEOGRAPH-2F8B4;Lo;0;L;625D;;;;N;;;;;
+2F8B5;CJK COMPATIBILITY IDEOGRAPH-2F8B5;Lo;0;L;62B1;;;;N;;;;;
+2F8B6;CJK COMPATIBILITY IDEOGRAPH-2F8B6;Lo;0;L;62D4;;;;N;;;;;
+2F8B7;CJK COMPATIBILITY IDEOGRAPH-2F8B7;Lo;0;L;6350;;;;N;;;;;
+2F8B8;CJK COMPATIBILITY IDEOGRAPH-2F8B8;Lo;0;L;22B0C;;;;N;;;;;
+2F8B9;CJK COMPATIBILITY IDEOGRAPH-2F8B9;Lo;0;L;633D;;;;N;;;;;
+2F8BA;CJK COMPATIBILITY IDEOGRAPH-2F8BA;Lo;0;L;62FC;;;;N;;;;;
+2F8BB;CJK COMPATIBILITY IDEOGRAPH-2F8BB;Lo;0;L;6368;;;;N;;;;;
+2F8BC;CJK COMPATIBILITY IDEOGRAPH-2F8BC;Lo;0;L;6383;;;;N;;;;;
+2F8BD;CJK COMPATIBILITY IDEOGRAPH-2F8BD;Lo;0;L;63E4;;;;N;;;;;
+2F8BE;CJK COMPATIBILITY IDEOGRAPH-2F8BE;Lo;0;L;22BF1;;;;N;;;;;
+2F8BF;CJK COMPATIBILITY IDEOGRAPH-2F8BF;Lo;0;L;6422;;;;N;;;;;
+2F8C0;CJK COMPATIBILITY IDEOGRAPH-2F8C0;Lo;0;L;63C5;;;;N;;;;;
+2F8C1;CJK COMPATIBILITY IDEOGRAPH-2F8C1;Lo;0;L;63A9;;;;N;;;;;
+2F8C2;CJK COMPATIBILITY IDEOGRAPH-2F8C2;Lo;0;L;3A2E;;;;N;;;;;
+2F8C3;CJK COMPATIBILITY IDEOGRAPH-2F8C3;Lo;0;L;6469;;;;N;;;;;
+2F8C4;CJK COMPATIBILITY IDEOGRAPH-2F8C4;Lo;0;L;647E;;;;N;;;;;
+2F8C5;CJK COMPATIBILITY IDEOGRAPH-2F8C5;Lo;0;L;649D;;;;N;;;;;
+2F8C6;CJK COMPATIBILITY IDEOGRAPH-2F8C6;Lo;0;L;6477;;;;N;;;;;
+2F8C7;CJK COMPATIBILITY IDEOGRAPH-2F8C7;Lo;0;L;3A6C;;;;N;;;;;
+2F8C8;CJK COMPATIBILITY IDEOGRAPH-2F8C8;Lo;0;L;654F;;;;N;;;;;
+2F8C9;CJK COMPATIBILITY IDEOGRAPH-2F8C9;Lo;0;L;656C;;;;N;;;;;
+2F8CA;CJK COMPATIBILITY IDEOGRAPH-2F8CA;Lo;0;L;2300A;;;;N;;;;;
+2F8CB;CJK COMPATIBILITY IDEOGRAPH-2F8CB;Lo;0;L;65E3;;;;N;;;;;
+2F8CC;CJK COMPATIBILITY IDEOGRAPH-2F8CC;Lo;0;L;66F8;;;;N;;;;;
+2F8CD;CJK COMPATIBILITY IDEOGRAPH-2F8CD;Lo;0;L;6649;;;;N;;;;;
+2F8CE;CJK COMPATIBILITY IDEOGRAPH-2F8CE;Lo;0;L;3B19;;;;N;;;;;
+2F8CF;CJK COMPATIBILITY IDEOGRAPH-2F8CF;Lo;0;L;6691;;;;N;;;;;
+2F8D0;CJK COMPATIBILITY IDEOGRAPH-2F8D0;Lo;0;L;3B08;;;;N;;;;;
+2F8D1;CJK COMPATIBILITY IDEOGRAPH-2F8D1;Lo;0;L;3AE4;;;;N;;;;;
+2F8D2;CJK COMPATIBILITY IDEOGRAPH-2F8D2;Lo;0;L;5192;;;;N;;;;;
+2F8D3;CJK COMPATIBILITY IDEOGRAPH-2F8D3;Lo;0;L;5195;;;;N;;;;;
+2F8D4;CJK COMPATIBILITY IDEOGRAPH-2F8D4;Lo;0;L;6700;;;;N;;;;;
+2F8D5;CJK COMPATIBILITY IDEOGRAPH-2F8D5;Lo;0;L;669C;;;;N;;;;;
+2F8D6;CJK COMPATIBILITY IDEOGRAPH-2F8D6;Lo;0;L;80AD;;;;N;;;;;
+2F8D7;CJK COMPATIBILITY IDEOGRAPH-2F8D7;Lo;0;L;43D9;;;;N;;;;;
+2F8D8;CJK COMPATIBILITY IDEOGRAPH-2F8D8;Lo;0;L;6717;;;;N;;;;;
+2F8D9;CJK COMPATIBILITY IDEOGRAPH-2F8D9;Lo;0;L;671B;;;;N;;;;;
+2F8DA;CJK COMPATIBILITY IDEOGRAPH-2F8DA;Lo;0;L;6721;;;;N;;;;;
+2F8DB;CJK COMPATIBILITY IDEOGRAPH-2F8DB;Lo;0;L;675E;;;;N;;;;;
+2F8DC;CJK COMPATIBILITY IDEOGRAPH-2F8DC;Lo;0;L;6753;;;;N;;;;;
+2F8DD;CJK COMPATIBILITY IDEOGRAPH-2F8DD;Lo;0;L;233C3;;;;N;;;;;
+2F8DE;CJK COMPATIBILITY IDEOGRAPH-2F8DE;Lo;0;L;3B49;;;;N;;;;;
+2F8DF;CJK COMPATIBILITY IDEOGRAPH-2F8DF;Lo;0;L;67FA;;;;N;;;;;
+2F8E0;CJK COMPATIBILITY IDEOGRAPH-2F8E0;Lo;0;L;6785;;;;N;;;;;
+2F8E1;CJK COMPATIBILITY IDEOGRAPH-2F8E1;Lo;0;L;6852;;;;N;;;;;
+2F8E2;CJK COMPATIBILITY IDEOGRAPH-2F8E2;Lo;0;L;6885;;;;N;;;;;
+2F8E3;CJK COMPATIBILITY IDEOGRAPH-2F8E3;Lo;0;L;2346D;;;;N;;;;;
+2F8E4;CJK COMPATIBILITY IDEOGRAPH-2F8E4;Lo;0;L;688E;;;;N;;;;;
+2F8E5;CJK COMPATIBILITY IDEOGRAPH-2F8E5;Lo;0;L;681F;;;;N;;;;;
+2F8E6;CJK COMPATIBILITY IDEOGRAPH-2F8E6;Lo;0;L;6914;;;;N;;;;;
+2F8E7;CJK COMPATIBILITY IDEOGRAPH-2F8E7;Lo;0;L;3B9D;;;;N;;;;;
+2F8E8;CJK COMPATIBILITY IDEOGRAPH-2F8E8;Lo;0;L;6942;;;;N;;;;;
+2F8E9;CJK COMPATIBILITY IDEOGRAPH-2F8E9;Lo;0;L;69A3;;;;N;;;;;
+2F8EA;CJK COMPATIBILITY IDEOGRAPH-2F8EA;Lo;0;L;69EA;;;;N;;;;;
+2F8EB;CJK COMPATIBILITY IDEOGRAPH-2F8EB;Lo;0;L;6AA8;;;;N;;;;;
+2F8EC;CJK COMPATIBILITY IDEOGRAPH-2F8EC;Lo;0;L;236A3;;;;N;;;;;
+2F8ED;CJK COMPATIBILITY IDEOGRAPH-2F8ED;Lo;0;L;6ADB;;;;N;;;;;
+2F8EE;CJK COMPATIBILITY IDEOGRAPH-2F8EE;Lo;0;L;3C18;;;;N;;;;;
+2F8EF;CJK COMPATIBILITY IDEOGRAPH-2F8EF;Lo;0;L;6B21;;;;N;;;;;
+2F8F0;CJK COMPATIBILITY IDEOGRAPH-2F8F0;Lo;0;L;238A7;;;;N;;;;;
+2F8F1;CJK COMPATIBILITY IDEOGRAPH-2F8F1;Lo;0;L;6B54;;;;N;;;;;
+2F8F2;CJK COMPATIBILITY IDEOGRAPH-2F8F2;Lo;0;L;3C4E;;;;N;;;;;
+2F8F3;CJK COMPATIBILITY IDEOGRAPH-2F8F3;Lo;0;L;6B72;;;;N;;;;;
+2F8F4;CJK COMPATIBILITY IDEOGRAPH-2F8F4;Lo;0;L;6B9F;;;;N;;;;;
+2F8F5;CJK COMPATIBILITY IDEOGRAPH-2F8F5;Lo;0;L;6BBA;;;;N;;;;;
+2F8F6;CJK COMPATIBILITY IDEOGRAPH-2F8F6;Lo;0;L;6BBB;;;;N;;;;;
+2F8F7;CJK COMPATIBILITY IDEOGRAPH-2F8F7;Lo;0;L;23A8D;;;;N;;;;;
+2F8F8;CJK COMPATIBILITY IDEOGRAPH-2F8F8;Lo;0;L;21D0B;;;;N;;;;;
+2F8F9;CJK COMPATIBILITY IDEOGRAPH-2F8F9;Lo;0;L;23AFA;;;;N;;;;;
+2F8FA;CJK COMPATIBILITY IDEOGRAPH-2F8FA;Lo;0;L;6C4E;;;;N;;;;;
+2F8FB;CJK COMPATIBILITY IDEOGRAPH-2F8FB;Lo;0;L;23CBC;;;;N;;;;;
+2F8FC;CJK COMPATIBILITY IDEOGRAPH-2F8FC;Lo;0;L;6CBF;;;;N;;;;;
+2F8FD;CJK COMPATIBILITY IDEOGRAPH-2F8FD;Lo;0;L;6CCD;;;;N;;;;;
+2F8FE;CJK COMPATIBILITY IDEOGRAPH-2F8FE;Lo;0;L;6C67;;;;N;;;;;
+2F8FF;CJK COMPATIBILITY IDEOGRAPH-2F8FF;Lo;0;L;6D16;;;;N;;;;;
+2F900;CJK COMPATIBILITY IDEOGRAPH-2F900;Lo;0;L;6D3E;;;;N;;;;;
+2F901;CJK COMPATIBILITY IDEOGRAPH-2F901;Lo;0;L;6D77;;;;N;;;;;
+2F902;CJK COMPATIBILITY IDEOGRAPH-2F902;Lo;0;L;6D41;;;;N;;;;;
+2F903;CJK COMPATIBILITY IDEOGRAPH-2F903;Lo;0;L;6D69;;;;N;;;;;
+2F904;CJK COMPATIBILITY IDEOGRAPH-2F904;Lo;0;L;6D78;;;;N;;;;;
+2F905;CJK COMPATIBILITY IDEOGRAPH-2F905;Lo;0;L;6D85;;;;N;;;;;
+2F906;CJK COMPATIBILITY IDEOGRAPH-2F906;Lo;0;L;23D1E;;;;N;;;;;
+2F907;CJK COMPATIBILITY IDEOGRAPH-2F907;Lo;0;L;6D34;;;;N;;;;;
+2F908;CJK COMPATIBILITY IDEOGRAPH-2F908;Lo;0;L;6E2F;;;;N;;;;;
+2F909;CJK COMPATIBILITY IDEOGRAPH-2F909;Lo;0;L;6E6E;;;;N;;;;;
+2F90A;CJK COMPATIBILITY IDEOGRAPH-2F90A;Lo;0;L;3D33;;;;N;;;;;
+2F90B;CJK COMPATIBILITY IDEOGRAPH-2F90B;Lo;0;L;6ECB;;;;N;;;;;
+2F90C;CJK COMPATIBILITY IDEOGRAPH-2F90C;Lo;0;L;6EC7;;;;N;;;;;
+2F90D;CJK COMPATIBILITY IDEOGRAPH-2F90D;Lo;0;L;23ED1;;;;N;;;;;
+2F90E;CJK COMPATIBILITY IDEOGRAPH-2F90E;Lo;0;L;6DF9;;;;N;;;;;
+2F90F;CJK COMPATIBILITY IDEOGRAPH-2F90F;Lo;0;L;6F6E;;;;N;;;;;
+2F910;CJK COMPATIBILITY IDEOGRAPH-2F910;Lo;0;L;23F5E;;;;N;;;;;
+2F911;CJK COMPATIBILITY IDEOGRAPH-2F911;Lo;0;L;23F8E;;;;N;;;;;
+2F912;CJK COMPATIBILITY IDEOGRAPH-2F912;Lo;0;L;6FC6;;;;N;;;;;
+2F913;CJK COMPATIBILITY IDEOGRAPH-2F913;Lo;0;L;7039;;;;N;;;;;
+2F914;CJK COMPATIBILITY IDEOGRAPH-2F914;Lo;0;L;701E;;;;N;;;;;
+2F915;CJK COMPATIBILITY IDEOGRAPH-2F915;Lo;0;L;701B;;;;N;;;;;
+2F916;CJK COMPATIBILITY IDEOGRAPH-2F916;Lo;0;L;3D96;;;;N;;;;;
+2F917;CJK COMPATIBILITY IDEOGRAPH-2F917;Lo;0;L;704A;;;;N;;;;;
+2F918;CJK COMPATIBILITY IDEOGRAPH-2F918;Lo;0;L;707D;;;;N;;;;;
+2F919;CJK COMPATIBILITY IDEOGRAPH-2F919;Lo;0;L;7077;;;;N;;;;;
+2F91A;CJK COMPATIBILITY IDEOGRAPH-2F91A;Lo;0;L;70AD;;;;N;;;;;
+2F91B;CJK COMPATIBILITY IDEOGRAPH-2F91B;Lo;0;L;20525;;;;N;;;;;
+2F91C;CJK COMPATIBILITY IDEOGRAPH-2F91C;Lo;0;L;7145;;;;N;;;;;
+2F91D;CJK COMPATIBILITY IDEOGRAPH-2F91D;Lo;0;L;24263;;;;N;;;;;
+2F91E;CJK COMPATIBILITY IDEOGRAPH-2F91E;Lo;0;L;719C;;;;N;;;;;
+2F91F;CJK COMPATIBILITY IDEOGRAPH-2F91F;Lo;0;L;243AB;;;;N;;;;;
+2F920;CJK COMPATIBILITY IDEOGRAPH-2F920;Lo;0;L;7228;;;;N;;;;;
+2F921;CJK COMPATIBILITY IDEOGRAPH-2F921;Lo;0;L;7235;;;;N;;;;;
+2F922;CJK COMPATIBILITY IDEOGRAPH-2F922;Lo;0;L;7250;;;;N;;;;;
+2F923;CJK COMPATIBILITY IDEOGRAPH-2F923;Lo;0;L;24608;;;;N;;;;;
+2F924;CJK COMPATIBILITY IDEOGRAPH-2F924;Lo;0;L;7280;;;;N;;;;;
+2F925;CJK COMPATIBILITY IDEOGRAPH-2F925;Lo;0;L;7295;;;;N;;;;;
+2F926;CJK COMPATIBILITY IDEOGRAPH-2F926;Lo;0;L;24735;;;;N;;;;;
+2F927;CJK COMPATIBILITY IDEOGRAPH-2F927;Lo;0;L;24814;;;;N;;;;;
+2F928;CJK COMPATIBILITY IDEOGRAPH-2F928;Lo;0;L;737A;;;;N;;;;;
+2F929;CJK COMPATIBILITY IDEOGRAPH-2F929;Lo;0;L;738B;;;;N;;;;;
+2F92A;CJK COMPATIBILITY IDEOGRAPH-2F92A;Lo;0;L;3EAC;;;;N;;;;;
+2F92B;CJK COMPATIBILITY IDEOGRAPH-2F92B;Lo;0;L;73A5;;;;N;;;;;
+2F92C;CJK COMPATIBILITY IDEOGRAPH-2F92C;Lo;0;L;3EB8;;;;N;;;;;
+2F92D;CJK COMPATIBILITY IDEOGRAPH-2F92D;Lo;0;L;3EB8;;;;N;;;;;
+2F92E;CJK COMPATIBILITY IDEOGRAPH-2F92E;Lo;0;L;7447;;;;N;;;;;
+2F92F;CJK COMPATIBILITY IDEOGRAPH-2F92F;Lo;0;L;745C;;;;N;;;;;
+2F930;CJK COMPATIBILITY IDEOGRAPH-2F930;Lo;0;L;7471;;;;N;;;;;
+2F931;CJK COMPATIBILITY IDEOGRAPH-2F931;Lo;0;L;7485;;;;N;;;;;
+2F932;CJK COMPATIBILITY IDEOGRAPH-2F932;Lo;0;L;74CA;;;;N;;;;;
+2F933;CJK COMPATIBILITY IDEOGRAPH-2F933;Lo;0;L;3F1B;;;;N;;;;;
+2F934;CJK COMPATIBILITY IDEOGRAPH-2F934;Lo;0;L;7524;;;;N;;;;;
+2F935;CJK COMPATIBILITY IDEOGRAPH-2F935;Lo;0;L;24C36;;;;N;;;;;
+2F936;CJK COMPATIBILITY IDEOGRAPH-2F936;Lo;0;L;753E;;;;N;;;;;
+2F937;CJK COMPATIBILITY IDEOGRAPH-2F937;Lo;0;L;24C92;;;;N;;;;;
+2F938;CJK COMPATIBILITY IDEOGRAPH-2F938;Lo;0;L;7570;;;;N;;;;;
+2F939;CJK COMPATIBILITY IDEOGRAPH-2F939;Lo;0;L;2219F;;;;N;;;;;
+2F93A;CJK COMPATIBILITY IDEOGRAPH-2F93A;Lo;0;L;7610;;;;N;;;;;
+2F93B;CJK COMPATIBILITY IDEOGRAPH-2F93B;Lo;0;L;24FA1;;;;N;;;;;
+2F93C;CJK COMPATIBILITY IDEOGRAPH-2F93C;Lo;0;L;24FB8;;;;N;;;;;
+2F93D;CJK COMPATIBILITY IDEOGRAPH-2F93D;Lo;0;L;25044;;;;N;;;;;
+2F93E;CJK COMPATIBILITY IDEOGRAPH-2F93E;Lo;0;L;3FFC;;;;N;;;;;
+2F93F;CJK COMPATIBILITY IDEOGRAPH-2F93F;Lo;0;L;4008;;;;N;;;;;
+2F940;CJK COMPATIBILITY IDEOGRAPH-2F940;Lo;0;L;76F4;;;;N;;;;;
+2F941;CJK COMPATIBILITY IDEOGRAPH-2F941;Lo;0;L;250F3;;;;N;;;;;
+2F942;CJK COMPATIBILITY IDEOGRAPH-2F942;Lo;0;L;250F2;;;;N;;;;;
+2F943;CJK COMPATIBILITY IDEOGRAPH-2F943;Lo;0;L;25119;;;;N;;;;;
+2F944;CJK COMPATIBILITY IDEOGRAPH-2F944;Lo;0;L;25133;;;;N;;;;;
+2F945;CJK COMPATIBILITY IDEOGRAPH-2F945;Lo;0;L;771E;;;;N;;;;;
+2F946;CJK COMPATIBILITY IDEOGRAPH-2F946;Lo;0;L;771F;;;;N;;;;;
+2F947;CJK COMPATIBILITY IDEOGRAPH-2F947;Lo;0;L;771F;;;;N;;;;;
+2F948;CJK COMPATIBILITY IDEOGRAPH-2F948;Lo;0;L;774A;;;;N;;;;;
+2F949;CJK COMPATIBILITY IDEOGRAPH-2F949;Lo;0;L;4039;;;;N;;;;;
+2F94A;CJK COMPATIBILITY IDEOGRAPH-2F94A;Lo;0;L;778B;;;;N;;;;;
+2F94B;CJK COMPATIBILITY IDEOGRAPH-2F94B;Lo;0;L;4046;;;;N;;;;;
+2F94C;CJK COMPATIBILITY IDEOGRAPH-2F94C;Lo;0;L;4096;;;;N;;;;;
+2F94D;CJK COMPATIBILITY IDEOGRAPH-2F94D;Lo;0;L;2541D;;;;N;;;;;
+2F94E;CJK COMPATIBILITY IDEOGRAPH-2F94E;Lo;0;L;784E;;;;N;;;;;
+2F94F;CJK COMPATIBILITY IDEOGRAPH-2F94F;Lo;0;L;788C;;;;N;;;;;
+2F950;CJK COMPATIBILITY IDEOGRAPH-2F950;Lo;0;L;78CC;;;;N;;;;;
+2F951;CJK COMPATIBILITY IDEOGRAPH-2F951;Lo;0;L;40E3;;;;N;;;;;
+2F952;CJK COMPATIBILITY IDEOGRAPH-2F952;Lo;0;L;25626;;;;N;;;;;
+2F953;CJK COMPATIBILITY IDEOGRAPH-2F953;Lo;0;L;7956;;;;N;;;;;
+2F954;CJK COMPATIBILITY IDEOGRAPH-2F954;Lo;0;L;2569A;;;;N;;;;;
+2F955;CJK COMPATIBILITY IDEOGRAPH-2F955;Lo;0;L;256C5;;;;N;;;;;
+2F956;CJK COMPATIBILITY IDEOGRAPH-2F956;Lo;0;L;798F;;;;N;;;;;
+2F957;CJK COMPATIBILITY IDEOGRAPH-2F957;Lo;0;L;79EB;;;;N;;;;;
+2F958;CJK COMPATIBILITY IDEOGRAPH-2F958;Lo;0;L;412F;;;;N;;;;;
+2F959;CJK COMPATIBILITY IDEOGRAPH-2F959;Lo;0;L;7A40;;;;N;;;;;
+2F95A;CJK COMPATIBILITY IDEOGRAPH-2F95A;Lo;0;L;7A4A;;;;N;;;;;
+2F95B;CJK COMPATIBILITY IDEOGRAPH-2F95B;Lo;0;L;7A4F;;;;N;;;;;
+2F95C;CJK COMPATIBILITY IDEOGRAPH-2F95C;Lo;0;L;2597C;;;;N;;;;;
+2F95D;CJK COMPATIBILITY IDEOGRAPH-2F95D;Lo;0;L;25AA7;;;;N;;;;;
+2F95E;CJK COMPATIBILITY IDEOGRAPH-2F95E;Lo;0;L;25AA7;;;;N;;;;;
+2F95F;CJK COMPATIBILITY IDEOGRAPH-2F95F;Lo;0;L;7AEE;;;;N;;;;;
+2F960;CJK COMPATIBILITY IDEOGRAPH-2F960;Lo;0;L;4202;;;;N;;;;;
+2F961;CJK COMPATIBILITY IDEOGRAPH-2F961;Lo;0;L;25BAB;;;;N;;;;;
+2F962;CJK COMPATIBILITY IDEOGRAPH-2F962;Lo;0;L;7BC6;;;;N;;;;;
+2F963;CJK COMPATIBILITY IDEOGRAPH-2F963;Lo;0;L;7BC9;;;;N;;;;;
+2F964;CJK COMPATIBILITY IDEOGRAPH-2F964;Lo;0;L;4227;;;;N;;;;;
+2F965;CJK COMPATIBILITY IDEOGRAPH-2F965;Lo;0;L;25C80;;;;N;;;;;
+2F966;CJK COMPATIBILITY IDEOGRAPH-2F966;Lo;0;L;7CD2;;;;N;;;;;
+2F967;CJK COMPATIBILITY IDEOGRAPH-2F967;Lo;0;L;42A0;;;;N;;;;;
+2F968;CJK COMPATIBILITY IDEOGRAPH-2F968;Lo;0;L;7CE8;;;;N;;;;;
+2F969;CJK COMPATIBILITY IDEOGRAPH-2F969;Lo;0;L;7CE3;;;;N;;;;;
+2F96A;CJK COMPATIBILITY IDEOGRAPH-2F96A;Lo;0;L;7D00;;;;N;;;;;
+2F96B;CJK COMPATIBILITY IDEOGRAPH-2F96B;Lo;0;L;25F86;;;;N;;;;;
+2F96C;CJK COMPATIBILITY IDEOGRAPH-2F96C;Lo;0;L;7D63;;;;N;;;;;
+2F96D;CJK COMPATIBILITY IDEOGRAPH-2F96D;Lo;0;L;4301;;;;N;;;;;
+2F96E;CJK COMPATIBILITY IDEOGRAPH-2F96E;Lo;0;L;7DC7;;;;N;;;;;
+2F96F;CJK COMPATIBILITY IDEOGRAPH-2F96F;Lo;0;L;7E02;;;;N;;;;;
+2F970;CJK COMPATIBILITY IDEOGRAPH-2F970;Lo;0;L;7E45;;;;N;;;;;
+2F971;CJK COMPATIBILITY IDEOGRAPH-2F971;Lo;0;L;4334;;;;N;;;;;
+2F972;CJK COMPATIBILITY IDEOGRAPH-2F972;Lo;0;L;26228;;;;N;;;;;
+2F973;CJK COMPATIBILITY IDEOGRAPH-2F973;Lo;0;L;26247;;;;N;;;;;
+2F974;CJK COMPATIBILITY IDEOGRAPH-2F974;Lo;0;L;4359;;;;N;;;;;
+2F975;CJK COMPATIBILITY IDEOGRAPH-2F975;Lo;0;L;262D9;;;;N;;;;;
+2F976;CJK COMPATIBILITY IDEOGRAPH-2F976;Lo;0;L;7F7A;;;;N;;;;;
+2F977;CJK COMPATIBILITY IDEOGRAPH-2F977;Lo;0;L;2633E;;;;N;;;;;
+2F978;CJK COMPATIBILITY IDEOGRAPH-2F978;Lo;0;L;7F95;;;;N;;;;;
+2F979;CJK COMPATIBILITY IDEOGRAPH-2F979;Lo;0;L;7FFA;;;;N;;;;;
+2F97A;CJK COMPATIBILITY IDEOGRAPH-2F97A;Lo;0;L;8005;;;;N;;;;;
+2F97B;CJK COMPATIBILITY IDEOGRAPH-2F97B;Lo;0;L;264DA;;;;N;;;;;
+2F97C;CJK COMPATIBILITY IDEOGRAPH-2F97C;Lo;0;L;26523;;;;N;;;;;
+2F97D;CJK COMPATIBILITY IDEOGRAPH-2F97D;Lo;0;L;8060;;;;N;;;;;
+2F97E;CJK COMPATIBILITY IDEOGRAPH-2F97E;Lo;0;L;265A8;;;;N;;;;;
+2F97F;CJK COMPATIBILITY IDEOGRAPH-2F97F;Lo;0;L;8070;;;;N;;;;;
+2F980;CJK COMPATIBILITY IDEOGRAPH-2F980;Lo;0;L;2335F;;;;N;;;;;
+2F981;CJK COMPATIBILITY IDEOGRAPH-2F981;Lo;0;L;43D5;;;;N;;;;;
+2F982;CJK COMPATIBILITY IDEOGRAPH-2F982;Lo;0;L;80B2;;;;N;;;;;
+2F983;CJK COMPATIBILITY IDEOGRAPH-2F983;Lo;0;L;8103;;;;N;;;;;
+2F984;CJK COMPATIBILITY IDEOGRAPH-2F984;Lo;0;L;440B;;;;N;;;;;
+2F985;CJK COMPATIBILITY IDEOGRAPH-2F985;Lo;0;L;813E;;;;N;;;;;
+2F986;CJK COMPATIBILITY IDEOGRAPH-2F986;Lo;0;L;5AB5;;;;N;;;;;
+2F987;CJK COMPATIBILITY IDEOGRAPH-2F987;Lo;0;L;267A7;;;;N;;;;;
+2F988;CJK COMPATIBILITY IDEOGRAPH-2F988;Lo;0;L;267B5;;;;N;;;;;
+2F989;CJK COMPATIBILITY IDEOGRAPH-2F989;Lo;0;L;23393;;;;N;;;;;
+2F98A;CJK COMPATIBILITY IDEOGRAPH-2F98A;Lo;0;L;2339C;;;;N;;;;;
+2F98B;CJK COMPATIBILITY IDEOGRAPH-2F98B;Lo;0;L;8201;;;;N;;;;;
+2F98C;CJK COMPATIBILITY IDEOGRAPH-2F98C;Lo;0;L;8204;;;;N;;;;;
+2F98D;CJK COMPATIBILITY IDEOGRAPH-2F98D;Lo;0;L;8F9E;;;;N;;;;;
+2F98E;CJK COMPATIBILITY IDEOGRAPH-2F98E;Lo;0;L;446B;;;;N;;;;;
+2F98F;CJK COMPATIBILITY IDEOGRAPH-2F98F;Lo;0;L;8291;;;;N;;;;;
+2F990;CJK COMPATIBILITY IDEOGRAPH-2F990;Lo;0;L;828B;;;;N;;;;;
+2F991;CJK COMPATIBILITY IDEOGRAPH-2F991;Lo;0;L;829D;;;;N;;;;;
+2F992;CJK COMPATIBILITY IDEOGRAPH-2F992;Lo;0;L;52B3;;;;N;;;;;
+2F993;CJK COMPATIBILITY IDEOGRAPH-2F993;Lo;0;L;82B1;;;;N;;;;;
+2F994;CJK COMPATIBILITY IDEOGRAPH-2F994;Lo;0;L;82B3;;;;N;;;;;
+2F995;CJK COMPATIBILITY IDEOGRAPH-2F995;Lo;0;L;82BD;;;;N;;;;;
+2F996;CJK COMPATIBILITY IDEOGRAPH-2F996;Lo;0;L;82E6;;;;N;;;;;
+2F997;CJK COMPATIBILITY IDEOGRAPH-2F997;Lo;0;L;26B3C;;;;N;;;;;
+2F998;CJK COMPATIBILITY IDEOGRAPH-2F998;Lo;0;L;82E5;;;;N;;;;;
+2F999;CJK COMPATIBILITY IDEOGRAPH-2F999;Lo;0;L;831D;;;;N;;;;;
+2F99A;CJK COMPATIBILITY IDEOGRAPH-2F99A;Lo;0;L;8363;;;;N;;;;;
+2F99B;CJK COMPATIBILITY IDEOGRAPH-2F99B;Lo;0;L;83AD;;;;N;;;;;
+2F99C;CJK COMPATIBILITY IDEOGRAPH-2F99C;Lo;0;L;8323;;;;N;;;;;
+2F99D;CJK COMPATIBILITY IDEOGRAPH-2F99D;Lo;0;L;83BD;;;;N;;;;;
+2F99E;CJK COMPATIBILITY IDEOGRAPH-2F99E;Lo;0;L;83E7;;;;N;;;;;
+2F99F;CJK COMPATIBILITY IDEOGRAPH-2F99F;Lo;0;L;8457;;;;N;;;;;
+2F9A0;CJK COMPATIBILITY IDEOGRAPH-2F9A0;Lo;0;L;8353;;;;N;;;;;
+2F9A1;CJK COMPATIBILITY IDEOGRAPH-2F9A1;Lo;0;L;83CA;;;;N;;;;;
+2F9A2;CJK COMPATIBILITY IDEOGRAPH-2F9A2;Lo;0;L;83CC;;;;N;;;;;
+2F9A3;CJK COMPATIBILITY IDEOGRAPH-2F9A3;Lo;0;L;83DC;;;;N;;;;;
+2F9A4;CJK COMPATIBILITY IDEOGRAPH-2F9A4;Lo;0;L;26C36;;;;N;;;;;
+2F9A5;CJK COMPATIBILITY IDEOGRAPH-2F9A5;Lo;0;L;26D6B;;;;N;;;;;
+2F9A6;CJK COMPATIBILITY IDEOGRAPH-2F9A6;Lo;0;L;26CD5;;;;N;;;;;
+2F9A7;CJK COMPATIBILITY IDEOGRAPH-2F9A7;Lo;0;L;452B;;;;N;;;;;
+2F9A8;CJK COMPATIBILITY IDEOGRAPH-2F9A8;Lo;0;L;84F1;;;;N;;;;;
+2F9A9;CJK COMPATIBILITY IDEOGRAPH-2F9A9;Lo;0;L;84F3;;;;N;;;;;
+2F9AA;CJK COMPATIBILITY IDEOGRAPH-2F9AA;Lo;0;L;8516;;;;N;;;;;
+2F9AB;CJK COMPATIBILITY IDEOGRAPH-2F9AB;Lo;0;L;273CA;;;;N;;;;;
+2F9AC;CJK COMPATIBILITY IDEOGRAPH-2F9AC;Lo;0;L;8564;;;;N;;;;;
+2F9AD;CJK COMPATIBILITY IDEOGRAPH-2F9AD;Lo;0;L;26F2C;;;;N;;;;;
+2F9AE;CJK COMPATIBILITY IDEOGRAPH-2F9AE;Lo;0;L;455D;;;;N;;;;;
+2F9AF;CJK COMPATIBILITY IDEOGRAPH-2F9AF;Lo;0;L;4561;;;;N;;;;;
+2F9B0;CJK COMPATIBILITY IDEOGRAPH-2F9B0;Lo;0;L;26FB1;;;;N;;;;;
+2F9B1;CJK COMPATIBILITY IDEOGRAPH-2F9B1;Lo;0;L;270D2;;;;N;;;;;
+2F9B2;CJK COMPATIBILITY IDEOGRAPH-2F9B2;Lo;0;L;456B;;;;N;;;;;
+2F9B3;CJK COMPATIBILITY IDEOGRAPH-2F9B3;Lo;0;L;8650;;;;N;;;;;
+2F9B4;CJK COMPATIBILITY IDEOGRAPH-2F9B4;Lo;0;L;865C;;;;N;;;;;
+2F9B5;CJK COMPATIBILITY IDEOGRAPH-2F9B5;Lo;0;L;8667;;;;N;;;;;
+2F9B6;CJK COMPATIBILITY IDEOGRAPH-2F9B6;Lo;0;L;8669;;;;N;;;;;
+2F9B7;CJK COMPATIBILITY IDEOGRAPH-2F9B7;Lo;0;L;86A9;;;;N;;;;;
+2F9B8;CJK COMPATIBILITY IDEOGRAPH-2F9B8;Lo;0;L;8688;;;;N;;;;;
+2F9B9;CJK COMPATIBILITY IDEOGRAPH-2F9B9;Lo;0;L;870E;;;;N;;;;;
+2F9BA;CJK COMPATIBILITY IDEOGRAPH-2F9BA;Lo;0;L;86E2;;;;N;;;;;
+2F9BB;CJK COMPATIBILITY IDEOGRAPH-2F9BB;Lo;0;L;8779;;;;N;;;;;
+2F9BC;CJK COMPATIBILITY IDEOGRAPH-2F9BC;Lo;0;L;8728;;;;N;;;;;
+2F9BD;CJK COMPATIBILITY IDEOGRAPH-2F9BD;Lo;0;L;876B;;;;N;;;;;
+2F9BE;CJK COMPATIBILITY IDEOGRAPH-2F9BE;Lo;0;L;8786;;;;N;;;;;
+2F9BF;CJK COMPATIBILITY IDEOGRAPH-2F9BF;Lo;0;L;45D7;;;;N;;;;;
+2F9C0;CJK COMPATIBILITY IDEOGRAPH-2F9C0;Lo;0;L;87E1;;;;N;;;;;
+2F9C1;CJK COMPATIBILITY IDEOGRAPH-2F9C1;Lo;0;L;8801;;;;N;;;;;
+2F9C2;CJK COMPATIBILITY IDEOGRAPH-2F9C2;Lo;0;L;45F9;;;;N;;;;;
+2F9C3;CJK COMPATIBILITY IDEOGRAPH-2F9C3;Lo;0;L;8860;;;;N;;;;;
+2F9C4;CJK COMPATIBILITY IDEOGRAPH-2F9C4;Lo;0;L;8863;;;;N;;;;;
+2F9C5;CJK COMPATIBILITY IDEOGRAPH-2F9C5;Lo;0;L;27667;;;;N;;;;;
+2F9C6;CJK COMPATIBILITY IDEOGRAPH-2F9C6;Lo;0;L;88D7;;;;N;;;;;
+2F9C7;CJK COMPATIBILITY IDEOGRAPH-2F9C7;Lo;0;L;88DE;;;;N;;;;;
+2F9C8;CJK COMPATIBILITY IDEOGRAPH-2F9C8;Lo;0;L;4635;;;;N;;;;;
+2F9C9;CJK COMPATIBILITY IDEOGRAPH-2F9C9;Lo;0;L;88FA;;;;N;;;;;
+2F9CA;CJK COMPATIBILITY IDEOGRAPH-2F9CA;Lo;0;L;34BB;;;;N;;;;;
+2F9CB;CJK COMPATIBILITY IDEOGRAPH-2F9CB;Lo;0;L;278AE;;;;N;;;;;
+2F9CC;CJK COMPATIBILITY IDEOGRAPH-2F9CC;Lo;0;L;27966;;;;N;;;;;
+2F9CD;CJK COMPATIBILITY IDEOGRAPH-2F9CD;Lo;0;L;46BE;;;;N;;;;;
+2F9CE;CJK COMPATIBILITY IDEOGRAPH-2F9CE;Lo;0;L;46C7;;;;N;;;;;
+2F9CF;CJK COMPATIBILITY IDEOGRAPH-2F9CF;Lo;0;L;8AA0;;;;N;;;;;
+2F9D0;CJK COMPATIBILITY IDEOGRAPH-2F9D0;Lo;0;L;8AED;;;;N;;;;;
+2F9D1;CJK COMPATIBILITY IDEOGRAPH-2F9D1;Lo;0;L;8B8A;;;;N;;;;;
+2F9D2;CJK COMPATIBILITY IDEOGRAPH-2F9D2;Lo;0;L;8C55;;;;N;;;;;
+2F9D3;CJK COMPATIBILITY IDEOGRAPH-2F9D3;Lo;0;L;27CA8;;;;N;;;;;
+2F9D4;CJK COMPATIBILITY IDEOGRAPH-2F9D4;Lo;0;L;8CAB;;;;N;;;;;
+2F9D5;CJK COMPATIBILITY IDEOGRAPH-2F9D5;Lo;0;L;8CC1;;;;N;;;;;
+2F9D6;CJK COMPATIBILITY IDEOGRAPH-2F9D6;Lo;0;L;8D1B;;;;N;;;;;
+2F9D7;CJK COMPATIBILITY IDEOGRAPH-2F9D7;Lo;0;L;8D77;;;;N;;;;;
+2F9D8;CJK COMPATIBILITY IDEOGRAPH-2F9D8;Lo;0;L;27F2F;;;;N;;;;;
+2F9D9;CJK COMPATIBILITY IDEOGRAPH-2F9D9;Lo;0;L;20804;;;;N;;;;;
+2F9DA;CJK COMPATIBILITY IDEOGRAPH-2F9DA;Lo;0;L;8DCB;;;;N;;;;;
+2F9DB;CJK COMPATIBILITY IDEOGRAPH-2F9DB;Lo;0;L;8DBC;;;;N;;;;;
+2F9DC;CJK COMPATIBILITY IDEOGRAPH-2F9DC;Lo;0;L;8DF0;;;;N;;;;;
+2F9DD;CJK COMPATIBILITY IDEOGRAPH-2F9DD;Lo;0;L;208DE;;;;N;;;;;
+2F9DE;CJK COMPATIBILITY IDEOGRAPH-2F9DE;Lo;0;L;8ED4;;;;N;;;;;
+2F9DF;CJK COMPATIBILITY IDEOGRAPH-2F9DF;Lo;0;L;8F38;;;;N;;;;;
+2F9E0;CJK COMPATIBILITY IDEOGRAPH-2F9E0;Lo;0;L;285D2;;;;N;;;;;
+2F9E1;CJK COMPATIBILITY IDEOGRAPH-2F9E1;Lo;0;L;285ED;;;;N;;;;;
+2F9E2;CJK COMPATIBILITY IDEOGRAPH-2F9E2;Lo;0;L;9094;;;;N;;;;;
+2F9E3;CJK COMPATIBILITY IDEOGRAPH-2F9E3;Lo;0;L;90F1;;;;N;;;;;
+2F9E4;CJK COMPATIBILITY IDEOGRAPH-2F9E4;Lo;0;L;9111;;;;N;;;;;
+2F9E5;CJK COMPATIBILITY IDEOGRAPH-2F9E5;Lo;0;L;2872E;;;;N;;;;;
+2F9E6;CJK COMPATIBILITY IDEOGRAPH-2F9E6;Lo;0;L;911B;;;;N;;;;;
+2F9E7;CJK COMPATIBILITY IDEOGRAPH-2F9E7;Lo;0;L;9238;;;;N;;;;;
+2F9E8;CJK COMPATIBILITY IDEOGRAPH-2F9E8;Lo;0;L;92D7;;;;N;;;;;
+2F9E9;CJK COMPATIBILITY IDEOGRAPH-2F9E9;Lo;0;L;92D8;;;;N;;;;;
+2F9EA;CJK COMPATIBILITY IDEOGRAPH-2F9EA;Lo;0;L;927C;;;;N;;;;;
+2F9EB;CJK COMPATIBILITY IDEOGRAPH-2F9EB;Lo;0;L;93F9;;;;N;;;;;
+2F9EC;CJK COMPATIBILITY IDEOGRAPH-2F9EC;Lo;0;L;9415;;;;N;;;;;
+2F9ED;CJK COMPATIBILITY IDEOGRAPH-2F9ED;Lo;0;L;28BFA;;;;N;;;;;
+2F9EE;CJK COMPATIBILITY IDEOGRAPH-2F9EE;Lo;0;L;958B;;;;N;;;;;
+2F9EF;CJK COMPATIBILITY IDEOGRAPH-2F9EF;Lo;0;L;4995;;;;N;;;;;
+2F9F0;CJK COMPATIBILITY IDEOGRAPH-2F9F0;Lo;0;L;95B7;;;;N;;;;;
+2F9F1;CJK COMPATIBILITY IDEOGRAPH-2F9F1;Lo;0;L;28D77;;;;N;;;;;
+2F9F2;CJK COMPATIBILITY IDEOGRAPH-2F9F2;Lo;0;L;49E6;;;;N;;;;;
+2F9F3;CJK COMPATIBILITY IDEOGRAPH-2F9F3;Lo;0;L;96C3;;;;N;;;;;
+2F9F4;CJK COMPATIBILITY IDEOGRAPH-2F9F4;Lo;0;L;5DB2;;;;N;;;;;
+2F9F5;CJK COMPATIBILITY IDEOGRAPH-2F9F5;Lo;0;L;9723;;;;N;;;;;
+2F9F6;CJK COMPATIBILITY IDEOGRAPH-2F9F6;Lo;0;L;29145;;;;N;;;;;
+2F9F7;CJK COMPATIBILITY IDEOGRAPH-2F9F7;Lo;0;L;2921A;;;;N;;;;;
+2F9F8;CJK COMPATIBILITY IDEOGRAPH-2F9F8;Lo;0;L;4A6E;;;;N;;;;;
+2F9F9;CJK COMPATIBILITY IDEOGRAPH-2F9F9;Lo;0;L;4A76;;;;N;;;;;
+2F9FA;CJK COMPATIBILITY IDEOGRAPH-2F9FA;Lo;0;L;97E0;;;;N;;;;;
+2F9FB;CJK COMPATIBILITY IDEOGRAPH-2F9FB;Lo;0;L;2940A;;;;N;;;;;
+2F9FC;CJK COMPATIBILITY IDEOGRAPH-2F9FC;Lo;0;L;4AB2;;;;N;;;;;
+2F9FD;CJK COMPATIBILITY IDEOGRAPH-2F9FD;Lo;0;L;29496;;;;N;;;;;
+2F9FE;CJK COMPATIBILITY IDEOGRAPH-2F9FE;Lo;0;L;980B;;;;N;;;;;
+2F9FF;CJK COMPATIBILITY IDEOGRAPH-2F9FF;Lo;0;L;980B;;;;N;;;;;
+2FA00;CJK COMPATIBILITY IDEOGRAPH-2FA00;Lo;0;L;9829;;;;N;;;;;
+2FA01;CJK COMPATIBILITY IDEOGRAPH-2FA01;Lo;0;L;295B6;;;;N;;;;;
+2FA02;CJK COMPATIBILITY IDEOGRAPH-2FA02;Lo;0;L;98E2;;;;N;;;;;
+2FA03;CJK COMPATIBILITY IDEOGRAPH-2FA03;Lo;0;L;4B33;;;;N;;;;;
+2FA04;CJK COMPATIBILITY IDEOGRAPH-2FA04;Lo;0;L;9929;;;;N;;;;;
+2FA05;CJK COMPATIBILITY IDEOGRAPH-2FA05;Lo;0;L;99A7;;;;N;;;;;
+2FA06;CJK COMPATIBILITY IDEOGRAPH-2FA06;Lo;0;L;99C2;;;;N;;;;;
+2FA07;CJK COMPATIBILITY IDEOGRAPH-2FA07;Lo;0;L;99FE;;;;N;;;;;
+2FA08;CJK COMPATIBILITY IDEOGRAPH-2FA08;Lo;0;L;4BCE;;;;N;;;;;
+2FA09;CJK COMPATIBILITY IDEOGRAPH-2FA09;Lo;0;L;29B30;;;;N;;;;;
+2FA0A;CJK COMPATIBILITY IDEOGRAPH-2FA0A;Lo;0;L;9B12;;;;N;;;;;
+2FA0B;CJK COMPATIBILITY IDEOGRAPH-2FA0B;Lo;0;L;9C40;;;;N;;;;;
+2FA0C;CJK COMPATIBILITY IDEOGRAPH-2FA0C;Lo;0;L;9CFD;;;;N;;;;;
+2FA0D;CJK COMPATIBILITY IDEOGRAPH-2FA0D;Lo;0;L;4CCE;;;;N;;;;;
+2FA0E;CJK COMPATIBILITY IDEOGRAPH-2FA0E;Lo;0;L;4CED;;;;N;;;;;
+2FA0F;CJK COMPATIBILITY IDEOGRAPH-2FA0F;Lo;0;L;9D67;;;;N;;;;;
+2FA10;CJK COMPATIBILITY IDEOGRAPH-2FA10;Lo;0;L;2A0CE;;;;N;;;;;
+2FA11;CJK COMPATIBILITY IDEOGRAPH-2FA11;Lo;0;L;4CF8;;;;N;;;;;
+2FA12;CJK COMPATIBILITY IDEOGRAPH-2FA12;Lo;0;L;2A105;;;;N;;;;;
+2FA13;CJK COMPATIBILITY IDEOGRAPH-2FA13;Lo;0;L;2A20E;;;;N;;;;;
+2FA14;CJK COMPATIBILITY IDEOGRAPH-2FA14;Lo;0;L;2A291;;;;N;;;;;
+2FA15;CJK COMPATIBILITY IDEOGRAPH-2FA15;Lo;0;L;9EBB;;;;N;;;;;
+2FA16;CJK COMPATIBILITY IDEOGRAPH-2FA16;Lo;0;L;4D56;;;;N;;;;;
+2FA17;CJK COMPATIBILITY IDEOGRAPH-2FA17;Lo;0;L;9EF9;;;;N;;;;;
+2FA18;CJK COMPATIBILITY IDEOGRAPH-2FA18;Lo;0;L;9EFE;;;;N;;;;;
+2FA19;CJK COMPATIBILITY IDEOGRAPH-2FA19;Lo;0;L;9F05;;;;N;;;;;
+2FA1A;CJK COMPATIBILITY IDEOGRAPH-2FA1A;Lo;0;L;9F0F;;;;N;;;;;
+2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;;
+2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;;
+2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;;
+E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;
+E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;
+E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;
+E0022;TAG QUOTATION MARK;Cf;0;BN;;;;;N;;;;;
+E0023;TAG NUMBER SIGN;Cf;0;BN;;;;;N;;;;;
+E0024;TAG DOLLAR SIGN;Cf;0;BN;;;;;N;;;;;
+E0025;TAG PERCENT SIGN;Cf;0;BN;;;;;N;;;;;
+E0026;TAG AMPERSAND;Cf;0;BN;;;;;N;;;;;
+E0027;TAG APOSTROPHE;Cf;0;BN;;;;;N;;;;;
+E0028;TAG LEFT PARENTHESIS;Cf;0;BN;;;;;N;;;;;
+E0029;TAG RIGHT PARENTHESIS;Cf;0;BN;;;;;N;;;;;
+E002A;TAG ASTERISK;Cf;0;BN;;;;;N;;;;;
+E002B;TAG PLUS SIGN;Cf;0;BN;;;;;N;;;;;
+E002C;TAG COMMA;Cf;0;BN;;;;;N;;;;;
+E002D;TAG HYPHEN-MINUS;Cf;0;BN;;;;;N;;;;;
+E002E;TAG FULL STOP;Cf;0;BN;;;;;N;;;;;
+E002F;TAG SOLIDUS;Cf;0;BN;;;;;N;;;;;
+E0030;TAG DIGIT ZERO;Cf;0;BN;;;;;N;;;;;
+E0031;TAG DIGIT ONE;Cf;0;BN;;;;;N;;;;;
+E0032;TAG DIGIT TWO;Cf;0;BN;;;;;N;;;;;
+E0033;TAG DIGIT THREE;Cf;0;BN;;;;;N;;;;;
+E0034;TAG DIGIT FOUR;Cf;0;BN;;;;;N;;;;;
+E0035;TAG DIGIT FIVE;Cf;0;BN;;;;;N;;;;;
+E0036;TAG DIGIT SIX;Cf;0;BN;;;;;N;;;;;
+E0037;TAG DIGIT SEVEN;Cf;0;BN;;;;;N;;;;;
+E0038;TAG DIGIT EIGHT;Cf;0;BN;;;;;N;;;;;
+E0039;TAG DIGIT NINE;Cf;0;BN;;;;;N;;;;;
+E003A;TAG COLON;Cf;0;BN;;;;;N;;;;;
+E003B;TAG SEMICOLON;Cf;0;BN;;;;;N;;;;;
+E003C;TAG LESS-THAN SIGN;Cf;0;BN;;;;;N;;;;;
+E003D;TAG EQUALS SIGN;Cf;0;BN;;;;;N;;;;;
+E003E;TAG GREATER-THAN SIGN;Cf;0;BN;;;;;N;;;;;
+E003F;TAG QUESTION MARK;Cf;0;BN;;;;;N;;;;;
+E0040;TAG COMMERCIAL AT;Cf;0;BN;;;;;N;;;;;
+E0041;TAG LATIN CAPITAL LETTER A;Cf;0;BN;;;;;N;;;;;
+E0042;TAG LATIN CAPITAL LETTER B;Cf;0;BN;;;;;N;;;;;
+E0043;TAG LATIN CAPITAL LETTER C;Cf;0;BN;;;;;N;;;;;
+E0044;TAG LATIN CAPITAL LETTER D;Cf;0;BN;;;;;N;;;;;
+E0045;TAG LATIN CAPITAL LETTER E;Cf;0;BN;;;;;N;;;;;
+E0046;TAG LATIN CAPITAL LETTER F;Cf;0;BN;;;;;N;;;;;
+E0047;TAG LATIN CAPITAL LETTER G;Cf;0;BN;;;;;N;;;;;
+E0048;TAG LATIN CAPITAL LETTER H;Cf;0;BN;;;;;N;;;;;
+E0049;TAG LATIN CAPITAL LETTER I;Cf;0;BN;;;;;N;;;;;
+E004A;TAG LATIN CAPITAL LETTER J;Cf;0;BN;;;;;N;;;;;
+E004B;TAG LATIN CAPITAL LETTER K;Cf;0;BN;;;;;N;;;;;
+E004C;TAG LATIN CAPITAL LETTER L;Cf;0;BN;;;;;N;;;;;
+E004D;TAG LATIN CAPITAL LETTER M;Cf;0;BN;;;;;N;;;;;
+E004E;TAG LATIN CAPITAL LETTER N;Cf;0;BN;;;;;N;;;;;
+E004F;TAG LATIN CAPITAL LETTER O;Cf;0;BN;;;;;N;;;;;
+E0050;TAG LATIN CAPITAL LETTER P;Cf;0;BN;;;;;N;;;;;
+E0051;TAG LATIN CAPITAL LETTER Q;Cf;0;BN;;;;;N;;;;;
+E0052;TAG LATIN CAPITAL LETTER R;Cf;0;BN;;;;;N;;;;;
+E0053;TAG LATIN CAPITAL LETTER S;Cf;0;BN;;;;;N;;;;;
+E0054;TAG LATIN CAPITAL LETTER T;Cf;0;BN;;;;;N;;;;;
+E0055;TAG LATIN CAPITAL LETTER U;Cf;0;BN;;;;;N;;;;;
+E0056;TAG LATIN CAPITAL LETTER V;Cf;0;BN;;;;;N;;;;;
+E0057;TAG LATIN CAPITAL LETTER W;Cf;0;BN;;;;;N;;;;;
+E0058;TAG LATIN CAPITAL LETTER X;Cf;0;BN;;;;;N;;;;;
+E0059;TAG LATIN CAPITAL LETTER Y;Cf;0;BN;;;;;N;;;;;
+E005A;TAG LATIN CAPITAL LETTER Z;Cf;0;BN;;;;;N;;;;;
+E005B;TAG LEFT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;
+E005C;TAG REVERSE SOLIDUS;Cf;0;BN;;;;;N;;;;;
+E005D;TAG RIGHT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;
+E005E;TAG CIRCUMFLEX ACCENT;Cf;0;BN;;;;;N;;;;;
+E005F;TAG LOW LINE;Cf;0;BN;;;;;N;;;;;
+E0060;TAG GRAVE ACCENT;Cf;0;BN;;;;;N;;;;;
+E0061;TAG LATIN SMALL LETTER A;Cf;0;BN;;;;;N;;;;;
+E0062;TAG LATIN SMALL LETTER B;Cf;0;BN;;;;;N;;;;;
+E0063;TAG LATIN SMALL LETTER C;Cf;0;BN;;;;;N;;;;;
+E0064;TAG LATIN SMALL LETTER D;Cf;0;BN;;;;;N;;;;;
+E0065;TAG LATIN SMALL LETTER E;Cf;0;BN;;;;;N;;;;;
+E0066;TAG LATIN SMALL LETTER F;Cf;0;BN;;;;;N;;;;;
+E0067;TAG LATIN SMALL LETTER G;Cf;0;BN;;;;;N;;;;;
+E0068;TAG LATIN SMALL LETTER H;Cf;0;BN;;;;;N;;;;;
+E0069;TAG LATIN SMALL LETTER I;Cf;0;BN;;;;;N;;;;;
+E006A;TAG LATIN SMALL LETTER J;Cf;0;BN;;;;;N;;;;;
+E006B;TAG LATIN SMALL LETTER K;Cf;0;BN;;;;;N;;;;;
+E006C;TAG LATIN SMALL LETTER L;Cf;0;BN;;;;;N;;;;;
+E006D;TAG LATIN SMALL LETTER M;Cf;0;BN;;;;;N;;;;;
+E006E;TAG LATIN SMALL LETTER N;Cf;0;BN;;;;;N;;;;;
+E006F;TAG LATIN SMALL LETTER O;Cf;0;BN;;;;;N;;;;;
+E0070;TAG LATIN SMALL LETTER P;Cf;0;BN;;;;;N;;;;;
+E0071;TAG LATIN SMALL LETTER Q;Cf;0;BN;;;;;N;;;;;
+E0072;TAG LATIN SMALL LETTER R;Cf;0;BN;;;;;N;;;;;
+E0073;TAG LATIN SMALL LETTER S;Cf;0;BN;;;;;N;;;;;
+E0074;TAG LATIN SMALL LETTER T;Cf;0;BN;;;;;N;;;;;
+E0075;TAG LATIN SMALL LETTER U;Cf;0;BN;;;;;N;;;;;
+E0076;TAG LATIN SMALL LETTER V;Cf;0;BN;;;;;N;;;;;
+E0077;TAG LATIN SMALL LETTER W;Cf;0;BN;;;;;N;;;;;
+E0078;TAG LATIN SMALL LETTER X;Cf;0;BN;;;;;N;;;;;
+E0079;TAG LATIN SMALL LETTER Y;Cf;0;BN;;;;;N;;;;;
+E007A;TAG LATIN SMALL LETTER Z;Cf;0;BN;;;;;N;;;;;
+E007B;TAG LEFT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;
+E007C;TAG VERTICAL LINE;Cf;0;BN;;;;;N;;;;;
+E007D;TAG RIGHT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;
+E007E;TAG TILDE;Cf;0;BN;;;;;N;;;;;
+E007F;CANCEL TAG;Cf;0;BN;;;;;N;;;;;
+E0100;VARIATION SELECTOR-17;Mn;0;NSM;;;;;N;;;;;
+E0101;VARIATION SELECTOR-18;Mn;0;NSM;;;;;N;;;;;
+E0102;VARIATION SELECTOR-19;Mn;0;NSM;;;;;N;;;;;
+E0103;VARIATION SELECTOR-20;Mn;0;NSM;;;;;N;;;;;
+E0104;VARIATION SELECTOR-21;Mn;0;NSM;;;;;N;;;;;
+E0105;VARIATION SELECTOR-22;Mn;0;NSM;;;;;N;;;;;
+E0106;VARIATION SELECTOR-23;Mn;0;NSM;;;;;N;;;;;
+E0107;VARIATION SELECTOR-24;Mn;0;NSM;;;;;N;;;;;
+E0108;VARIATION SELECTOR-25;Mn;0;NSM;;;;;N;;;;;
+E0109;VARIATION SELECTOR-26;Mn;0;NSM;;;;;N;;;;;
+E010A;VARIATION SELECTOR-27;Mn;0;NSM;;;;;N;;;;;
+E010B;VARIATION SELECTOR-28;Mn;0;NSM;;;;;N;;;;;
+E010C;VARIATION SELECTOR-29;Mn;0;NSM;;;;;N;;;;;
+E010D;VARIATION SELECTOR-30;Mn;0;NSM;;;;;N;;;;;
+E010E;VARIATION SELECTOR-31;Mn;0;NSM;;;;;N;;;;;
+E010F;VARIATION SELECTOR-32;Mn;0;NSM;;;;;N;;;;;
+E0110;VARIATION SELECTOR-33;Mn;0;NSM;;;;;N;;;;;
+E0111;VARIATION SELECTOR-34;Mn;0;NSM;;;;;N;;;;;
+E0112;VARIATION SELECTOR-35;Mn;0;NSM;;;;;N;;;;;
+E0113;VARIATION SELECTOR-36;Mn;0;NSM;;;;;N;;;;;
+E0114;VARIATION SELECTOR-37;Mn;0;NSM;;;;;N;;;;;
+E0115;VARIATION SELECTOR-38;Mn;0;NSM;;;;;N;;;;;
+E0116;VARIATION SELECTOR-39;Mn;0;NSM;;;;;N;;;;;
+E0117;VARIATION SELECTOR-40;Mn;0;NSM;;;;;N;;;;;
+E0118;VARIATION SELECTOR-41;Mn;0;NSM;;;;;N;;;;;
+E0119;VARIATION SELECTOR-42;Mn;0;NSM;;;;;N;;;;;
+E011A;VARIATION SELECTOR-43;Mn;0;NSM;;;;;N;;;;;
+E011B;VARIATION SELECTOR-44;Mn;0;NSM;;;;;N;;;;;
+E011C;VARIATION SELECTOR-45;Mn;0;NSM;;;;;N;;;;;
+E011D;VARIATION SELECTOR-46;Mn;0;NSM;;;;;N;;;;;
+E011E;VARIATION SELECTOR-47;Mn;0;NSM;;;;;N;;;;;
+E011F;VARIATION SELECTOR-48;Mn;0;NSM;;;;;N;;;;;
+E0120;VARIATION SELECTOR-49;Mn;0;NSM;;;;;N;;;;;
+E0121;VARIATION SELECTOR-50;Mn;0;NSM;;;;;N;;;;;
+E0122;VARIATION SELECTOR-51;Mn;0;NSM;;;;;N;;;;;
+E0123;VARIATION SELECTOR-52;Mn;0;NSM;;;;;N;;;;;
+E0124;VARIATION SELECTOR-53;Mn;0;NSM;;;;;N;;;;;
+E0125;VARIATION SELECTOR-54;Mn;0;NSM;;;;;N;;;;;
+E0126;VARIATION SELECTOR-55;Mn;0;NSM;;;;;N;;;;;
+E0127;VARIATION SELECTOR-56;Mn;0;NSM;;;;;N;;;;;
+E0128;VARIATION SELECTOR-57;Mn;0;NSM;;;;;N;;;;;
+E0129;VARIATION SELECTOR-58;Mn;0;NSM;;;;;N;;;;;
+E012A;VARIATION SELECTOR-59;Mn;0;NSM;;;;;N;;;;;
+E012B;VARIATION SELECTOR-60;Mn;0;NSM;;;;;N;;;;;
+E012C;VARIATION SELECTOR-61;Mn;0;NSM;;;;;N;;;;;
+E012D;VARIATION SELECTOR-62;Mn;0;NSM;;;;;N;;;;;
+E012E;VARIATION SELECTOR-63;Mn;0;NSM;;;;;N;;;;;
+E012F;VARIATION SELECTOR-64;Mn;0;NSM;;;;;N;;;;;
+E0130;VARIATION SELECTOR-65;Mn;0;NSM;;;;;N;;;;;
+E0131;VARIATION SELECTOR-66;Mn;0;NSM;;;;;N;;;;;
+E0132;VARIATION SELECTOR-67;Mn;0;NSM;;;;;N;;;;;
+E0133;VARIATION SELECTOR-68;Mn;0;NSM;;;;;N;;;;;
+E0134;VARIATION SELECTOR-69;Mn;0;NSM;;;;;N;;;;;
+E0135;VARIATION SELECTOR-70;Mn;0;NSM;;;;;N;;;;;
+E0136;VARIATION SELECTOR-71;Mn;0;NSM;;;;;N;;;;;
+E0137;VARIATION SELECTOR-72;Mn;0;NSM;;;;;N;;;;;
+E0138;VARIATION SELECTOR-73;Mn;0;NSM;;;;;N;;;;;
+E0139;VARIATION SELECTOR-74;Mn;0;NSM;;;;;N;;;;;
+E013A;VARIATION SELECTOR-75;Mn;0;NSM;;;;;N;;;;;
+E013B;VARIATION SELECTOR-76;Mn;0;NSM;;;;;N;;;;;
+E013C;VARIATION SELECTOR-77;Mn;0;NSM;;;;;N;;;;;
+E013D;VARIATION SELECTOR-78;Mn;0;NSM;;;;;N;;;;;
+E013E;VARIATION SELECTOR-79;Mn;0;NSM;;;;;N;;;;;
+E013F;VARIATION SELECTOR-80;Mn;0;NSM;;;;;N;;;;;
+E0140;VARIATION SELECTOR-81;Mn;0;NSM;;;;;N;;;;;
+E0141;VARIATION SELECTOR-82;Mn;0;NSM;;;;;N;;;;;
+E0142;VARIATION SELECTOR-83;Mn;0;NSM;;;;;N;;;;;
+E0143;VARIATION SELECTOR-84;Mn;0;NSM;;;;;N;;;;;
+E0144;VARIATION SELECTOR-85;Mn;0;NSM;;;;;N;;;;;
+E0145;VARIATION SELECTOR-86;Mn;0;NSM;;;;;N;;;;;
+E0146;VARIATION SELECTOR-87;Mn;0;NSM;;;;;N;;;;;
+E0147;VARIATION SELECTOR-88;Mn;0;NSM;;;;;N;;;;;
+E0148;VARIATION SELECTOR-89;Mn;0;NSM;;;;;N;;;;;
+E0149;VARIATION SELECTOR-90;Mn;0;NSM;;;;;N;;;;;
+E014A;VARIATION SELECTOR-91;Mn;0;NSM;;;;;N;;;;;
+E014B;VARIATION SELECTOR-92;Mn;0;NSM;;;;;N;;;;;
+E014C;VARIATION SELECTOR-93;Mn;0;NSM;;;;;N;;;;;
+E014D;VARIATION SELECTOR-94;Mn;0;NSM;;;;;N;;;;;
+E014E;VARIATION SELECTOR-95;Mn;0;NSM;;;;;N;;;;;
+E014F;VARIATION SELECTOR-96;Mn;0;NSM;;;;;N;;;;;
+E0150;VARIATION SELECTOR-97;Mn;0;NSM;;;;;N;;;;;
+E0151;VARIATION SELECTOR-98;Mn;0;NSM;;;;;N;;;;;
+E0152;VARIATION SELECTOR-99;Mn;0;NSM;;;;;N;;;;;
+E0153;VARIATION SELECTOR-100;Mn;0;NSM;;;;;N;;;;;
+E0154;VARIATION SELECTOR-101;Mn;0;NSM;;;;;N;;;;;
+E0155;VARIATION SELECTOR-102;Mn;0;NSM;;;;;N;;;;;
+E0156;VARIATION SELECTOR-103;Mn;0;NSM;;;;;N;;;;;
+E0157;VARIATION SELECTOR-104;Mn;0;NSM;;;;;N;;;;;
+E0158;VARIATION SELECTOR-105;Mn;0;NSM;;;;;N;;;;;
+E0159;VARIATION SELECTOR-106;Mn;0;NSM;;;;;N;;;;;
+E015A;VARIATION SELECTOR-107;Mn;0;NSM;;;;;N;;;;;
+E015B;VARIATION SELECTOR-108;Mn;0;NSM;;;;;N;;;;;
+E015C;VARIATION SELECTOR-109;Mn;0;NSM;;;;;N;;;;;
+E015D;VARIATION SELECTOR-110;Mn;0;NSM;;;;;N;;;;;
+E015E;VARIATION SELECTOR-111;Mn;0;NSM;;;;;N;;;;;
+E015F;VARIATION SELECTOR-112;Mn;0;NSM;;;;;N;;;;;
+E0160;VARIATION SELECTOR-113;Mn;0;NSM;;;;;N;;;;;
+E0161;VARIATION SELECTOR-114;Mn;0;NSM;;;;;N;;;;;
+E0162;VARIATION SELECTOR-115;Mn;0;NSM;;;;;N;;;;;
+E0163;VARIATION SELECTOR-116;Mn;0;NSM;;;;;N;;;;;
+E0164;VARIATION SELECTOR-117;Mn;0;NSM;;;;;N;;;;;
+E0165;VARIATION SELECTOR-118;Mn;0;NSM;;;;;N;;;;;
+E0166;VARIATION SELECTOR-119;Mn;0;NSM;;;;;N;;;;;
+E0167;VARIATION SELECTOR-120;Mn;0;NSM;;;;;N;;;;;
+E0168;VARIATION SELECTOR-121;Mn;0;NSM;;;;;N;;;;;
+E0169;VARIATION SELECTOR-122;Mn;0;NSM;;;;;N;;;;;
+E016A;VARIATION SELECTOR-123;Mn;0;NSM;;;;;N;;;;;
+E016B;VARIATION SELECTOR-124;Mn;0;NSM;;;;;N;;;;;
+E016C;VARIATION SELECTOR-125;Mn;0;NSM;;;;;N;;;;;
+E016D;VARIATION SELECTOR-126;Mn;0;NSM;;;;;N;;;;;
+E016E;VARIATION SELECTOR-127;Mn;0;NSM;;;;;N;;;;;
+E016F;VARIATION SELECTOR-128;Mn;0;NSM;;;;;N;;;;;
+E0170;VARIATION SELECTOR-129;Mn;0;NSM;;;;;N;;;;;
+E0171;VARIATION SELECTOR-130;Mn;0;NSM;;;;;N;;;;;
+E0172;VARIATION SELECTOR-131;Mn;0;NSM;;;;;N;;;;;
+E0173;VARIATION SELECTOR-132;Mn;0;NSM;;;;;N;;;;;
+E0174;VARIATION SELECTOR-133;Mn;0;NSM;;;;;N;;;;;
+E0175;VARIATION SELECTOR-134;Mn;0;NSM;;;;;N;;;;;
+E0176;VARIATION SELECTOR-135;Mn;0;NSM;;;;;N;;;;;
+E0177;VARIATION SELECTOR-136;Mn;0;NSM;;;;;N;;;;;
+E0178;VARIATION SELECTOR-137;Mn;0;NSM;;;;;N;;;;;
+E0179;VARIATION SELECTOR-138;Mn;0;NSM;;;;;N;;;;;
+E017A;VARIATION SELECTOR-139;Mn;0;NSM;;;;;N;;;;;
+E017B;VARIATION SELECTOR-140;Mn;0;NSM;;;;;N;;;;;
+E017C;VARIATION SELECTOR-141;Mn;0;NSM;;;;;N;;;;;
+E017D;VARIATION SELECTOR-142;Mn;0;NSM;;;;;N;;;;;
+E017E;VARIATION SELECTOR-143;Mn;0;NSM;;;;;N;;;;;
+E017F;VARIATION SELECTOR-144;Mn;0;NSM;;;;;N;;;;;
+E0180;VARIATION SELECTOR-145;Mn;0;NSM;;;;;N;;;;;
+E0181;VARIATION SELECTOR-146;Mn;0;NSM;;;;;N;;;;;
+E0182;VARIATION SELECTOR-147;Mn;0;NSM;;;;;N;;;;;
+E0183;VARIATION SELECTOR-148;Mn;0;NSM;;;;;N;;;;;
+E0184;VARIATION SELECTOR-149;Mn;0;NSM;;;;;N;;;;;
+E0185;VARIATION SELECTOR-150;Mn;0;NSM;;;;;N;;;;;
+E0186;VARIATION SELECTOR-151;Mn;0;NSM;;;;;N;;;;;
+E0187;VARIATION SELECTOR-152;Mn;0;NSM;;;;;N;;;;;
+E0188;VARIATION SELECTOR-153;Mn;0;NSM;;;;;N;;;;;
+E0189;VARIATION SELECTOR-154;Mn;0;NSM;;;;;N;;;;;
+E018A;VARIATION SELECTOR-155;Mn;0;NSM;;;;;N;;;;;
+E018B;VARIATION SELECTOR-156;Mn;0;NSM;;;;;N;;;;;
+E018C;VARIATION SELECTOR-157;Mn;0;NSM;;;;;N;;;;;
+E018D;VARIATION SELECTOR-158;Mn;0;NSM;;;;;N;;;;;
+E018E;VARIATION SELECTOR-159;Mn;0;NSM;;;;;N;;;;;
+E018F;VARIATION SELECTOR-160;Mn;0;NSM;;;;;N;;;;;
+E0190;VARIATION SELECTOR-161;Mn;0;NSM;;;;;N;;;;;
+E0191;VARIATION SELECTOR-162;Mn;0;NSM;;;;;N;;;;;
+E0192;VARIATION SELECTOR-163;Mn;0;NSM;;;;;N;;;;;
+E0193;VARIATION SELECTOR-164;Mn;0;NSM;;;;;N;;;;;
+E0194;VARIATION SELECTOR-165;Mn;0;NSM;;;;;N;;;;;
+E0195;VARIATION SELECTOR-166;Mn;0;NSM;;;;;N;;;;;
+E0196;VARIATION SELECTOR-167;Mn;0;NSM;;;;;N;;;;;
+E0197;VARIATION SELECTOR-168;Mn;0;NSM;;;;;N;;;;;
+E0198;VARIATION SELECTOR-169;Mn;0;NSM;;;;;N;;;;;
+E0199;VARIATION SELECTOR-170;Mn;0;NSM;;;;;N;;;;;
+E019A;VARIATION SELECTOR-171;Mn;0;NSM;;;;;N;;;;;
+E019B;VARIATION SELECTOR-172;Mn;0;NSM;;;;;N;;;;;
+E019C;VARIATION SELECTOR-173;Mn;0;NSM;;;;;N;;;;;
+E019D;VARIATION SELECTOR-174;Mn;0;NSM;;;;;N;;;;;
+E019E;VARIATION SELECTOR-175;Mn;0;NSM;;;;;N;;;;;
+E019F;VARIATION SELECTOR-176;Mn;0;NSM;;;;;N;;;;;
+E01A0;VARIATION SELECTOR-177;Mn;0;NSM;;;;;N;;;;;
+E01A1;VARIATION SELECTOR-178;Mn;0;NSM;;;;;N;;;;;
+E01A2;VARIATION SELECTOR-179;Mn;0;NSM;;;;;N;;;;;
+E01A3;VARIATION SELECTOR-180;Mn;0;NSM;;;;;N;;;;;
+E01A4;VARIATION SELECTOR-181;Mn;0;NSM;;;;;N;;;;;
+E01A5;VARIATION SELECTOR-182;Mn;0;NSM;;;;;N;;;;;
+E01A6;VARIATION SELECTOR-183;Mn;0;NSM;;;;;N;;;;;
+E01A7;VARIATION SELECTOR-184;Mn;0;NSM;;;;;N;;;;;
+E01A8;VARIATION SELECTOR-185;Mn;0;NSM;;;;;N;;;;;
+E01A9;VARIATION SELECTOR-186;Mn;0;NSM;;;;;N;;;;;
+E01AA;VARIATION SELECTOR-187;Mn;0;NSM;;;;;N;;;;;
+E01AB;VARIATION SELECTOR-188;Mn;0;NSM;;;;;N;;;;;
+E01AC;VARIATION SELECTOR-189;Mn;0;NSM;;;;;N;;;;;
+E01AD;VARIATION SELECTOR-190;Mn;0;NSM;;;;;N;;;;;
+E01AE;VARIATION SELECTOR-191;Mn;0;NSM;;;;;N;;;;;
+E01AF;VARIATION SELECTOR-192;Mn;0;NSM;;;;;N;;;;;
+E01B0;VARIATION SELECTOR-193;Mn;0;NSM;;;;;N;;;;;
+E01B1;VARIATION SELECTOR-194;Mn;0;NSM;;;;;N;;;;;
+E01B2;VARIATION SELECTOR-195;Mn;0;NSM;;;;;N;;;;;
+E01B3;VARIATION SELECTOR-196;Mn;0;NSM;;;;;N;;;;;
+E01B4;VARIATION SELECTOR-197;Mn;0;NSM;;;;;N;;;;;
+E01B5;VARIATION SELECTOR-198;Mn;0;NSM;;;;;N;;;;;
+E01B6;VARIATION SELECTOR-199;Mn;0;NSM;;;;;N;;;;;
+E01B7;VARIATION SELECTOR-200;Mn;0;NSM;;;;;N;;;;;
+E01B8;VARIATION SELECTOR-201;Mn;0;NSM;;;;;N;;;;;
+E01B9;VARIATION SELECTOR-202;Mn;0;NSM;;;;;N;;;;;
+E01BA;VARIATION SELECTOR-203;Mn;0;NSM;;;;;N;;;;;
+E01BB;VARIATION SELECTOR-204;Mn;0;NSM;;;;;N;;;;;
+E01BC;VARIATION SELECTOR-205;Mn;0;NSM;;;;;N;;;;;
+E01BD;VARIATION SELECTOR-206;Mn;0;NSM;;;;;N;;;;;
+E01BE;VARIATION SELECTOR-207;Mn;0;NSM;;;;;N;;;;;
+E01BF;VARIATION SELECTOR-208;Mn;0;NSM;;;;;N;;;;;
+E01C0;VARIATION SELECTOR-209;Mn;0;NSM;;;;;N;;;;;
+E01C1;VARIATION SELECTOR-210;Mn;0;NSM;;;;;N;;;;;
+E01C2;VARIATION SELECTOR-211;Mn;0;NSM;;;;;N;;;;;
+E01C3;VARIATION SELECTOR-212;Mn;0;NSM;;;;;N;;;;;
+E01C4;VARIATION SELECTOR-213;Mn;0;NSM;;;;;N;;;;;
+E01C5;VARIATION SELECTOR-214;Mn;0;NSM;;;;;N;;;;;
+E01C6;VARIATION SELECTOR-215;Mn;0;NSM;;;;;N;;;;;
+E01C7;VARIATION SELECTOR-216;Mn;0;NSM;;;;;N;;;;;
+E01C8;VARIATION SELECTOR-217;Mn;0;NSM;;;;;N;;;;;
+E01C9;VARIATION SELECTOR-218;Mn;0;NSM;;;;;N;;;;;
+E01CA;VARIATION SELECTOR-219;Mn;0;NSM;;;;;N;;;;;
+E01CB;VARIATION SELECTOR-220;Mn;0;NSM;;;;;N;;;;;
+E01CC;VARIATION SELECTOR-221;Mn;0;NSM;;;;;N;;;;;
+E01CD;VARIATION SELECTOR-222;Mn;0;NSM;;;;;N;;;;;
+E01CE;VARIATION SELECTOR-223;Mn;0;NSM;;;;;N;;;;;
+E01CF;VARIATION SELECTOR-224;Mn;0;NSM;;;;;N;;;;;
+E01D0;VARIATION SELECTOR-225;Mn;0;NSM;;;;;N;;;;;
+E01D1;VARIATION SELECTOR-226;Mn;0;NSM;;;;;N;;;;;
+E01D2;VARIATION SELECTOR-227;Mn;0;NSM;;;;;N;;;;;
+E01D3;VARIATION SELECTOR-228;Mn;0;NSM;;;;;N;;;;;
+E01D4;VARIATION SELECTOR-229;Mn;0;NSM;;;;;N;;;;;
+E01D5;VARIATION SELECTOR-230;Mn;0;NSM;;;;;N;;;;;
+E01D6;VARIATION SELECTOR-231;Mn;0;NSM;;;;;N;;;;;
+E01D7;VARIATION SELECTOR-232;Mn;0;NSM;;;;;N;;;;;
+E01D8;VARIATION SELECTOR-233;Mn;0;NSM;;;;;N;;;;;
+E01D9;VARIATION SELECTOR-234;Mn;0;NSM;;;;;N;;;;;
+E01DA;VARIATION SELECTOR-235;Mn;0;NSM;;;;;N;;;;;
+E01DB;VARIATION SELECTOR-236;Mn;0;NSM;;;;;N;;;;;
+E01DC;VARIATION SELECTOR-237;Mn;0;NSM;;;;;N;;;;;
+E01DD;VARIATION SELECTOR-238;Mn;0;NSM;;;;;N;;;;;
+E01DE;VARIATION SELECTOR-239;Mn;0;NSM;;;;;N;;;;;
+E01DF;VARIATION SELECTOR-240;Mn;0;NSM;;;;;N;;;;;
+E01E0;VARIATION SELECTOR-241;Mn;0;NSM;;;;;N;;;;;
+E01E1;VARIATION SELECTOR-242;Mn;0;NSM;;;;;N;;;;;
+E01E2;VARIATION SELECTOR-243;Mn;0;NSM;;;;;N;;;;;
+E01E3;VARIATION SELECTOR-244;Mn;0;NSM;;;;;N;;;;;
+E01E4;VARIATION SELECTOR-245;Mn;0;NSM;;;;;N;;;;;
+E01E5;VARIATION SELECTOR-246;Mn;0;NSM;;;;;N;;;;;
+E01E6;VARIATION SELECTOR-247;Mn;0;NSM;;;;;N;;;;;
+E01E7;VARIATION SELECTOR-248;Mn;0;NSM;;;;;N;;;;;
+E01E8;VARIATION SELECTOR-249;Mn;0;NSM;;;;;N;;;;;
+E01E9;VARIATION SELECTOR-250;Mn;0;NSM;;;;;N;;;;;
+E01EA;VARIATION SELECTOR-251;Mn;0;NSM;;;;;N;;;;;
+E01EB;VARIATION SELECTOR-252;Mn;0;NSM;;;;;N;;;;;
+E01EC;VARIATION SELECTOR-253;Mn;0;NSM;;;;;N;;;;;
+E01ED;VARIATION SELECTOR-254;Mn;0;NSM;;;;;N;;;;;
+E01EE;VARIATION SELECTOR-255;Mn;0;NSM;;;;;N;;;;;
+E01EF;VARIATION SELECTOR-256;Mn;0;NSM;;;;;N;;;;;
+F0000;<Plane 15 Private Use, First>;Co;0;L;;;;;N;;;;;
+FFFFD;<Plane 15 Private Use, Last>;Co;0;L;;;;;N;;;;;
+100000;<Plane 16 Private Use, First>;Co;0;L;;;;;N;;;;;
+10FFFD;<Plane 16 Private Use, Last>;Co;0;L;;;;;N;;;;;
diff --git a/admin/unidata/copyright.html b/admin/unidata/copyright.html
new file mode 100644 (file)
index 0000000..57a6d39
--- /dev/null
@@ -0,0 +1,345 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html>
+
+
+
+<head>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+
+<meta http-equiv="Content-Language" content="en-us">
+
+<meta name="VI60_defaultClientScript" content="JavaScript">
+
+<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
+
+<meta name="keywords" content="Unicode Standard, copyright">
+
+<meta name="ProgId" content="FrontPage.Editor.Document">
+
+<title>Unicode Terms of Use</title>
+
+<link rel="stylesheet" type="text/css" 
+
+href="http://www.unicode.org/webscripts/standard_styles.css">
+
+</head>
+
+
+
+<body text="#330000">
+
+
+
+<form action="http://www.unicode.org/webscripts/POST">
+
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+
+    <tr>
+
+      <td colspan="2">
+
+      <table width="100%" border="0" cellpadding="0" cellspacing="0">
+
+        <tr>
+
+ <td class="icon"><a href="http://www.unicode.org/"><img border="0" 
+          src="http://www.unicode.org/webscripts/logo60s2.gif" align="middle" 
+          alt="[Unicode]" width="34" height="33"></a>&nbsp;&nbsp;<a class="bar" 
+          href="http://www.unicode.org/copyright.html"><font size="3">Terms of 
+          Use</font></a></td>
+          <td class="bar"><a href="http://www.unicode.org" class="bar">Home</a> 
+          | <a href="http://www.unicode.org/sitemap/" class="bar">Site Map</a> |
+          <a href="http://www.unicode.org/search" class="bar">Search </a></td>
+        </tr>
+      </table>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2" class="gray">&nbsp;</td>
+    </tr>
+    <tr>
+      <td valign="top" width="25%" class="navCol">
+      <table class="navColTable" border="0" width="100%" cellspacing="4" 
+      cellpadding="0">
+        <tr>
+          <td class="navColTitle">Contents</td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell"><a href="#1">Unicode Copyright</a></td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell"><a href="#2">Restricted Rights 
+          Legend</a></td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell"><a href="#3">Warranties &amp; 
+          Disclaimers</a></td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell"><a href="#4">Waiver of Damages</a></td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell"><a href="#5">Trademarks</a></td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell"><a href="#7">Miscellaneous</a></td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell"><a href="#Exhibit1">Data Files and 
+          Software License Agreement (Exhibit 1)</a></td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell">&nbsp;</td>
+        </tr>
+      </table>
+      <table class="navColTable" border="0" width="100%" cellspacing="4" 
+      cellpadding="0">
+        <tr>
+          <td class="navColTitle">Related Links</td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell">
+          <a href="http://www.unicode.org/policies/logo_policy.html">The 
+          Unicode® Consortium Trademarks and Logo Policy</a></td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell">
+          <a href="http://www.unicode.org/policies/policies.html">Unicode 
+          Policies</a></td>
+        </tr>
+        <tr>
+          <td valign="top" class="navColCell"></td>
+        </tr>
+      </table>
+
+
+      <!-- BEGIN CONTENTS -->
+
+      <td>
+
+<blockquote>
+            <h1>Unicode Terms of Use</h1>
+            
+            <p>For the general privacy policy governing access to this site, see 
+            the&nbsp;
+            <a href="http://www.unicode.org/policies/privacy_policy.html">
+            Unicode Privacy Policy</a>. For trademark usage, see
+            <a href="http://www.unicode.org/policies/logo_policy.html">the 
+            Unicode Consortium® Trademarks and Logo Policy</a>.</p>
+            
+            <table class="sidebar" align="right" width="50%" id="table1">
+              <tr>
+                <td class="sidebarTitle">Notice to End User: Terms of Use</td>
+              </tr>
+              <tr>
+                <td class="sidebar">Carefully read the following legal agreement 
+                (&quot;Agreement&quot;). Use or copying of the software and/or codes 
+                provided with this agreement (The &quot;Software&quot;) constitutes your 
+                acceptance of these terms</td>
+              </tr>
+            </table>
+            <ol type="A">
+              <li><u><a name="1"></a>Unicode Copyright.</u>
+              <ol>
+                <li>Copyright Â© 1991-2006 Unicode, Inc. All rights reserved.</li>
+                <li>Certain documents and files on this website contain a legend 
+                indicating that &quot;Modification is permitted.&quot; Any person is 
+                hereby authorized, without fee, to modify such documents and 
+                files to create derivative works conforming to the Unicode® 
+                Standard, subject to Terms and Conditions herein.</li>
+                <li>Any person is hereby authorized, without fee, to view, use, 
+                reproduce, and distribute all documents and files solely for 
+                informational purposes in the creation of products supporting 
+                the Unicode Standard, subject to the Terms and Conditions 
+                herein.</li>
+                <li>Further specifications of rights and restrictions pertaining 
+                to the use of the particular set of data files known as the 
+                &quot;Unicode Character Database&quot; can be found in <a href="#Exhibit1">
+                Exhibit 1</a>.</li>
+                <li>Each version of the Unicode Standard has further specifications of rights and restrictions 
+                               of use. For the book editions, these are found on the back of 
+                               the
+                               <a href="http://www.unicode.org/versions/Unicode4.0.0/Title.pdf">
+                               title page</a>. For the online edition, certain files (such as 
+                               the PDF files for book chapters and code charts) carry specific 
+                               restrictions. All other files are covered under these general 
+                               Terms of Use.&nbsp; To request a permission to reproduce any 
+                               part of the Unicode Standard, please
+                               <a href="http://www.unicode.org/contacts.html">contact the 
+                               Unicode Consortium</a>.</li>
+                <li>No license is granted to &quot;mirror&quot; the Unicode website where 
+                a fee is charged for access to the &quot;mirror&quot; site.</li>
+                <li>Modification is not permitted with respect to this document. 
+                All copies of this document must be verbatim.</li>
+              </ol>
+              </li>
+              <li><u><a name="2"></a>Restricted Rights Legend</u>. Any technical 
+              data or software which is licensed to the United States of 
+              America, its agencies and/or instrumentalities under this 
+              Agreement is commercial technical data or commercial computer 
+              software developed exclusively at private expense as defined in 
+              FAR&nbsp;2.101, or DFARS 252.227-7014 (June 1995), as applicable. For 
+              technical data, use, duplication, or disclosure by the Government 
+              is subject to restrictions as set forth in DFARS 202.227-7015 
+              Technical Data, Commercial and Items (Nov 1995) and this 
+              Agreement. For Software, in accordance with FAR 12-212 or DFARS 
+              227-7202, as applicable, use, duplication or disclosure by the 
+              Government is subject to the restrictions set forth in this 
+              Agreement.</li>
+              <li><u><a name="3"></a>Warranties and Disclaimers</u>.
+              <ol>
+                <li>This publication and/or website may include technical or 
+                typographical errors or other inaccuracies . Changes are 
+                periodically added to the information herein; these changes will 
+                be incorporated in new editions of the publication and/or 
+                website. Unicode may make improvements and/or changes in the 
+                product(s) and/or program(s) described in this publication 
+                and/or website at any time.</li>
+                <li>If this file has been purchased on magnetic or optical media 
+                from Unicode, Inc. the sole and exclusive remedy for any claim 
+                will be exchange of the defective media within ninety (90) days 
+                of original purchase.</li>
+                <li>EXCEPT AS PROVIDED IN SECTION&nbsp;C.2, THIS PUBLICATION AND/OR 
+                SOFTWARE IS PROVIDED &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND EITHER 
+                EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, 
+                ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+                PURPOSE, OR NON-INFRINGEMENT. UNICODE AND ITS LICENSORS ASSUME 
+                NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION 
+                AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR 
+                LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE.</li>
+              </ol>
+              </li>
+              <li><u><a name="4"></a>Waiver of Damages.</u> In no event shall 
+              Unicode or its licensors be liable for any special, incidental, 
+              indirect or consequential damages of any kind, or any damages 
+              whatsoever, whether or not Unicode was advised of the possibility 
+              of the damage, including, without limitation, those resulting from 
+              the following: loss of use, data or profits, in connection with 
+              the use, modification or distribution of this information or its 
+              derivatives.</li>
+              <li><u><a name="5"></a>Trademarks.</u>
+              <ol>
+                <li>Unicode and the Unicode logo are registered trademarks of 
+                Unicode, Inc.&nbsp;</li>
+                <li>This site contains product names and corporate names of 
+                other companies. All product names and company names and logos 
+                mentioned herein are the trademarks or registered trademarks of 
+                their respective owners. Other products and corporate names 
+                mentioned herein which are trademarks of a third party are used 
+                only for explanation and for the owners&#39; benefit and with no 
+                intent to infringe.</li>
+                <li>Use of third party products or information referred to 
+                herein is at the user’s risk.</li>
+              </ol>
+              </li>
+
+              <li><u><a name="7"></a>Miscellaneous</u>.
+              <ol>
+                <li><u>Jurisdiction and Venue</u>. This server is operated from 
+                               a location in the State of California, United States of America. 
+                               Unicode makes no representation that the materials are 
+                               appropriate for use in other locations. If you access this 
+                               server from other locations, you are responsible for compliance 
+                               with local laws. This Agreement, all use of this site and any 
+                               claims and damages resulting from use of this site are governed 
+                               solely by the laws of the State of California without regard to 
+                               any principles which would apply the laws of a different 
+                               jurisdiction. The user agrees that any disputes regarding this 
+                               site shall be resolved solely in the courts located in Santa 
+                               Clara County, California. The user agrees said courts have 
+                               personal jurisdiction and agree to waive any right to transfer 
+                               the dispute to any other forum. </li>
+                <li><u>Modification by Unicode </u>Unicode shall have the right 
+                to modify this Agreement at any time by posting it to this site. 
+                The user may not assign any part of this Agreement without 
+                Unicode’s prior written consent.</li>
+                <li><u>Taxes.</u> The user agrees to pay any taxes arising from 
+                access to this website or use of the information herein, except 
+                for those based on Unicode’s net income.</li>
+                <li><u>Severability</u>.&nbsp; If any provision of this 
+                Agreement is declared invalid or unenforceable, the remaining 
+                provisions of this Agreement shall remain in effect.</li>
+                <li><u>Entire Agreement</u>. This Agreement constitutes the 
+                entire agreement between the parties.&nbsp;</li>
+              </ol>
+              </li>
+            </ol>
+</blockquote>
+            <hr width="95%">
+            
+<h3 align="center"><a name="Exhibit1">EXHIBIT 1</a><br>
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE</h3>
+<blockquote>
+<p>Unicode Data Files include all data files under the directories 
+<a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>, 
+<a href="http://www.unicode.org/reports/">http://www.unicode.org/reports/</a>, 
+and
+<a title="http://www.unicode.org/cldr/data/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
+http://www.unicode.org/cldr/data/ </a>. Unicode Software includes any source code 
+published in the Unicode Standard or under the directories
+<a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>,
+<a href="http://www.unicode.org/reports/">http://www.unicode.org/reports/</a>, 
+and
+<a title="http://www.unicode.org/cldr/data/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
+http://www.unicode.org/cldr/data/.</a></p>
+
+<p>NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.</p>
+<p>COPYRIGHT AND PERMISSION NOTICE</p>
+
+<p>Copyright Â© 1991-2005 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in 
+<a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a>.</p>
+
+<p>Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and 
+any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear 
+with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified.</p>
+
+<p>THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.</p>
+
+<p>Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder.</p>
+
+            <hr width="80%">
+
+<p>Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be registered in some jurisdictions. All other trademarks and registered trademarks mentioned herein are the property of their respective owners.</p>
+
+
+</blockquote>
+
+
+            <hr width="50%">
+            <div align="center">
+              <center>
+              <table cellspacing="0" cellpadding="0" border="0" id="table2">
+                <tr>
+                  <td><a href="http://www.unicode.org/copyright.html">
+                  <img src="http://www.unicode.org/img/hb_notice.gif" 
+                  border="0" alt="Access to Copyright and terms of use" 
+                  width="216" height="50"></a></td>
+                </tr>
+              </table>
+              
+                <script language="Javascript" type="text/javascript" 
+              src="http://www.unicode.org/webscripts/lastModified.js">
+                </script>
+
+              </center>
+            </div>
+
+      </td>
+
+    </tr>
+
+  </table>
+
+</form>
+
+
+
+</body>
+
+
+
+</html>
+
+<!-- arch-tag: 359e3efa-6eb2-4b4e-841c-f002d7924c5e
+     (do not change this comment) -->
diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
new file mode 100644 (file)
index 0000000..75d7e2d
--- /dev/null
@@ -0,0 +1,1171 @@
+;; unidata-gen.el -- Create files containing character property data.
+;; Copyright (C) 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs 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 General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; SPECIAL NOTICE
+;;
+;;   This file must be byte-compilable/loadable by `temacs' and also
+;;   the entry function `unidata-gen-files' must be runnable by
+;;   `temacs'.
+
+;; FILES TO BE GENERATED
+;;
+;;   The entry function `unidata-gen-files' generates these files in
+;;   the current directory.
+;;
+;;   charprop.el
+;;     It contains a series of forms of this format:
+;;       (char-code-property-register PROP FILE)
+;;     where PROP is a symbol representing a character property
+;;     (name, generic-category, etc), and FILE is a name of one of
+;;     the following files.
+;;
+;;   uni-name.el, uni-cat.el, uni-comb.el, uni-bidi.el
+;;     It contains a single form of this format:
+;;       (char-code-property-register PROP CHAR-TABLE)
+;;     where PROP is the same as above, and CHAR-TABLE is a
+;;     char-table containing property values in a compressed format.
+;;
+;;   When they are installed in .../lisp/international/, the file
+;;   "charprop.el" is preloaded in loadup.el.  The other files are
+;;   automatically loaded when the functions `get-char-code-property'
+;;   and `put-char-code-property' are called.
+;;
+;; FORMAT OF A CHAR TABLE
+;;
+;;   We want to make a file size containing a char-table small.  We
+;;   also want to load the file and get a property value fast.  We
+;;   also want to reduce the used memory after loading it.  So,
+;;   instead of naively storing a property value for each character in
+;;   a char-table (and write it out into a file), we store compressed
+;;   data in a char-table as below.
+;;
+;;   If succeeding 128*N characters have the same property value, we
+;;   store that value for them.  Otherwise, compress values for
+;;   succeeding 128 characters into a single string and store it as a
+;;   value for those characters.  The way of compression depends on a
+;;   property.  See the section "SIMPLE TABLE", "RUN-LENGTH TABLE",
+;;   and "WORD-LIST TABLE".
+
+;;   The char table has four extra slots:
+;;      1st: property symbol
+;;     2nd: function to call to get a property value
+;;     3nd: function to call to put a property value
+;;     4th: function to call to get a description of a property value
+;;     5th: data referred by the above functions
+
+;; List of elements of this form:
+;;   (CHAR-or-RANGE PROP1 PROP2 ... PROPn)
+;; CHAR-or-RANGE: a character code or a cons of character codes
+;; PROPn: string representing the nth property value
+
+(defvar unidata-list nil)
+
+(defun unidata-setup-list (unidata-text-file)
+  (let* ((table (list nil))
+        (tail table)
+        (block-names '(("^<CJK Ideograph" . CJK\ IDEOGRAPH)
+                       ("^<Hangul Syllable" . HANGUL\ SYLLABLE)
+                       ("^<.*Surrogate" . nil)
+                       ("^<.*Private Use" . PRIVATE\ USE)))
+        val char name)
+    (or (file-readable-p unidata-text-file)
+       (error "File not readable: %s" unidata-text-file))
+    (with-temp-buffer
+      (insert-file-contents unidata-text-file)
+      (goto-char (point-min))
+      (condition-case nil
+         (while t
+           (setq val (read (current-buffer))
+                 char (car val)
+                 name (cadr val))
+
+           ;; Check this kind of block.
+           ;;   4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
+           ;;   9FA5;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+           (if (and (= (aref name 0) ?<)
+                    (string-match ", First>$" name))
+               (let ((first char)
+                     (l block-names)
+                     block-name)
+                 (setq val (read (current-buffer))
+                       char (car val)
+                       block-name (cadr val)
+                       name nil)
+                 (while l
+                   (if (string-match (caar l) block-name)
+                       (setq name (cdar l) l nil)
+                     (setq l (cdr l))))
+                 (if (not name)
+                     ;; As this is a surrogate pair range, ignore it.
+                     (setq val nil)
+                   (setcar val (cons first char))
+                   (setcar (cdr val) name))))
+
+           (when val
+             (setcdr tail (list val))
+             (setq tail (cdr tail))))
+       (error nil)))
+    (setq unidata-list (cdr table))))
+
+;; Alist of this form:
+;;   (PROP INDEX GENERATOR FILENAME)
+;; PROP: character property
+;; INDEX: index to each element of unidata-list for PROP
+;; GENERATOR: function to generate a char-table
+;; FILENAME: filename to store the char-table
+;; DESCRIBER: function to call to get a description string of property value
+
+(defconst unidata-prop-alist
+  '((name
+     1 unidata-gen-table-name "uni-name.el"
+     "Unicode character name.
+Property value is a string.")
+    (general-category
+     2 unidata-gen-table-symbol "uni-category.el"
+     "Unicode general category.
+Property value is one of the following symbols:
+  Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po,
+  Sm, Sc, Sk, So, Zs, Zl, Zp, Cc, Cf, Cs, Co, Cn"
+     unidata-describe-general-category)
+    (canonical-combining-class
+     3 unidata-gen-table-integer "uni-combining.el"
+     "Unicode canonical combining class.
+Property value is an integer."
+     unidata-describe-canonical-combining-class)
+    (bidi-class
+     4 unidata-gen-table-symbol "uni-bidi.el"
+     "Unicode bidi class.
+Property value is one of the following symbols:
+  L, LRE, LRO, R, AL, RLE, RLO, PDF, EN, ES, ET,
+  AN, CS, NSM, BN, B, S, WS, ON"
+     unidata-describe-bidi-class)
+    (decomposition
+     5 unidata-gen-table-decomposition "uni-decomposition.el"
+     "Unicode decomposition mapping.
+Property value is a list of characters.  The first element may be
+one of these symbols representing compatibility formatting tag:
+  <font>, <noBreak>, <initial>, <medial>, <final>, <isolated>, <circle>,
+  <super>, <sub>, <vertical>, <wide>, <narrow>, <small>, <square>, <fraction>,
+  <compat>"
+     unidata-describe-decomposition)
+    (decimal-digit-value
+     6 unidata-gen-table-integer "uni-decimal.el"
+     "Unicode numeric value (decimal digit).
+Property value is an integer.")
+    (digit-value
+     7 unidata-gen-table-integer "uni-digit.el"
+     "Unicode numeric value (digit).
+Property value is an integer.")
+    (numeric-value
+     8 unidata-gen-table-symbol "uni-numeric.el"
+     "Unicode numeric value (numeric).
+Property value is an symbol.")
+    (mirrored
+     9 unidata-gen-table-symbol "uni-mirrored.el"
+     "Unicode bidi mirrored flag.
+Property value is a symbol `Y' or `N'.")
+    (old-name
+     10 unidata-gen-table-name "uni-old-name.el"
+     "Unicode old names as published in Unicode 1.0.
+Property value is a string.")
+    (iso-10646-comment
+     11 unidata-gen-table-name "uni-comment.el"
+     "Unicode ISO 10646 comment.
+Property value is a string.")
+    (uppercase
+     12 unidata-gen-table-character "uni-uppercase.el"
+     "Unicode simple uppercase mapping.
+Property value is a character."
+     string)
+    (lowercase
+     13 unidata-gen-table-character "uni-lowercase.el"
+     "Unicode simple lowercase mapping.
+Property value is a character."
+     string)
+    (titlecase
+     14 unidata-gen-table-character "uni-titlecase.el"
+     "Unicode simple titlecase mapping.
+Property value is a character."
+     string)))
+
+;; Functions to access the above data.
+(defsubst unidata-prop-index (prop) (nth 1 (assq prop unidata-prop-alist)))
+(defsubst unidata-prop-generator (prop) (nth 2 (assq prop unidata-prop-alist)))
+(defsubst unidata-prop-file (prop) (nth 3 (assq prop unidata-prop-alist)))
+(defsubst unidata-prop-docstring (prop) (nth 4 (assq prop unidata-prop-alist)))
+(defsubst unidata-prop-describer (prop) (nth 5 (assq prop unidata-prop-alist)))
+
+\f
+;; SIMPLE TABLE
+;;
+;; If the type of character property value is character, and the
+;; values of succeeding character codes are usually different, we use
+;; a char-table described here to store such values.
+;;
+;; If succeeding 128 characters has no property, a char-table has the
+;; symbol t is for them.  Otherwise a char-table has a string of the
+;; following format for them.
+;;
+;; The first character of the string is FIRST-INDEX.
+;; The Nth (N > 0) character of the string is a property value of the
+;; character (BLOCK-HEAD + FIRST-INDEX + N - 1), where BLOCK-HEAD is
+;; the first of the characters in the block.
+;;
+;; The 4th extra slot of a char-table is nil.
+
+(defun unidata-get-character (char val table)
+  (cond
+   ((characterp val)
+    val)
+
+   ((stringp val)
+    (let* ((len (length val))
+          (block-head (lsh (lsh char -7) 7))
+          (vec (make-vector 128 nil))
+          (first-index (aref val 0)))
+      (dotimes (i (1- len))
+       (let ((elt (aref val (1+ i))))
+         (if (> elt 0)
+             (aset vec (+ first-index i) elt))))
+      (dotimes (i 128)
+       (aset table (+ block-head i) (aref vec i)))
+      (aref vec (- char block-head))))))
+
+(defun unidata-put-character (char val table)
+  (or (characterp val)
+      (not val)
+      (error "Not an character nor nil: %S" val))
+  (let ((current-val (aref table char)))
+    (unless (eq current-val val)
+      (if (stringp current-val)
+         (funcall (char-table-extra-slot table 1) char current-val table))
+      (aset table char val))))
+
+(defun unidata-gen-table-character (prop)
+  (let ((table (make-char-table 'char-code-property-table))
+       (prop-idx (unidata-prop-index prop))
+       (vec (make-vector 128 0))
+       (tail unidata-list)
+       elt range val idx slot)
+    (set-char-table-range table (cons 0 (max-char)) t)
+    (while tail
+      (setq elt (car tail) tail (cdr tail))
+      (setq range (car elt)
+           val (nth prop-idx elt))
+      (if (= (length val) 0)
+         (setq val nil)
+       (setq val (string-to-number val 16)))
+      (if (consp range)
+         (if val
+             (set-char-table-range table range val))
+       (let* ((start (lsh (lsh range -7) 7))
+              (limit (+ start 127))
+              first-index last-index)
+         (fillarray vec 0)
+         (if val
+             (aset vec (setq last-index (setq first-index (- range start)))
+                   val))
+         (while (and (setq elt (car tail) range (car elt))
+                     (integerp range)
+                     (<= range limit))
+           (setq val (nth prop-idx elt))
+           (when (> (length val) 0)
+             (aset vec (setq last-index (- range start))
+                   (string-to-number val 16))
+             (or first-index
+                 (setq first-index last-index)))
+           (setq tail (cdr tail)))
+         (when first-index
+           (let ((str (string first-index))
+                 c)
+             (while (<= first-index last-index)
+               (setq str (format "%s%c"  str (or (aref vec first-index) 0))
+                     first-index (1+ first-index)))
+             (set-char-table-range table (cons start limit) str))))))
+
+    (set-char-table-extra-slot table 0 prop)
+    (byte-compile 'unidata-get-character)
+    (byte-compile 'unidata-put-character)
+    (set-char-table-extra-slot table 1 (symbol-function 'unidata-get-character))
+    (set-char-table-extra-slot table 2 (symbol-function 'unidata-put-character))
+
+    table))
+
+
+\f
+;; RUN-LENGTH TABLE
+;;
+;; If the type of character property value is symbol, integer,
+;; boolean, or character, we use a char-table described here to store
+;; the values.
+;;
+;; The 4th extra slot is a vector of property values (VAL-TABLE), and
+;; values for succeeding 128 characters are encoded into this
+;; character sequence:
+;;   ( VAL-CODE RUN-LENGTH ? ) +
+;; where:
+;;   VAL-CODE (0..127):
+;;     (VAL-CODE - 1) is an index into VAL-TABLE.
+;;     The value 0 means no-value.
+;;   RUN-LENGTH (130..255):
+;;     (RUN-LENGTH - 128) specifies how many characters have the same
+;;     value.  If omitted, it means 1.
+
+
+;; Return a symbol-type character property value of CHAR.  VAL is the
+;; current value of (aref TABLE CHAR).
+
+(defun unidata-get-symbol (char val table)
+  (let ((val-table (char-table-extra-slot table 4)))
+    (cond ((symbolp val)
+          val)
+         ((stringp val)
+          (let ((first-char (lsh (lsh char -7) 7))
+                (str val)
+                (len (length val))
+                (idx 0)
+                this-val count)
+            (set-char-table-range table (cons first-char (+ first-char 127))
+                                  nil)
+            (while (< idx len)
+              (setq val (aref str idx) idx (1+ idx)
+                    count (if (< idx len) (aref str idx) 1))
+              (setq val (and (> val 0) (aref val-table (1- val)))
+                    count (if (< count 128)
+                              1
+                            (prog1 (- count 128) (setq idx (1+ idx)))))
+              (dotimes (i count)
+                (if val
+                    (aset table first-char val))
+                (if (= first-char char)
+                    (setq this-val val))
+                (setq first-char (1+ first-char))))
+            this-val))
+         ((> val 0)
+          (aref val-table (1- val))))))
+       
+;; Return a integer-type character property value of CHAR.  VAL is the
+;; current value of (aref TABLE CHAR).
+
+(defun unidata-get-integer (char val table)
+  (let ((val-table (char-table-extra-slot table 4)))
+    (cond ((integerp val)
+          val)
+         ((stringp val)
+          (let ((first-char (lsh (lsh char -7) 7))
+                (str val)
+                (len (length val))
+                (idx 0)
+                this-val count)
+            (while (< idx len)
+              (setq val (aref str idx) idx (1+ idx)
+                    count (if (< idx len) (aref str idx) 1))
+              (setq val (and (> val 0) (aref val-table (1- val)))
+                    count (if (< count 128)
+                              1
+                            (prog1 (- count 128) (setq idx (1+ idx)))))
+              (dotimes (i count)
+                (aset table first-char val)
+                (if (= first-char char)
+                    (setq this-val val))
+                (setq first-char (1+ first-char))))
+            this-val)))))
+
+;; Store VAL (symbol) as a character property value of CHAR in TABLE.
+
+(defun unidata-put-symbol (char val table)
+  (or (symbolp val)
+      (error "Not a symbol: %S" val))
+  (let ((current-val (aref table char)))
+    (unless (eq current-val val)
+      (if (stringp current-val)
+         (funcall (char-table-extra-slot table 1) char current-val table))
+      (aset table char val))))
+
+;; Store VAL (integer) as a character property value of CHAR in TABLE.
+
+(defun unidata-put-integer (char val table)
+  (or (integerp val)
+      (not val)
+      (error "Not an integer nor nil: %S" val))
+  (let ((current-val (aref table char)))
+    (unless (eq current-val val)
+      (if (stringp current-val)
+         (funcall (char-table-extra-slot table 1) char current-val table))
+      (aset table char val))))
+
+;; Encode the character property value VAL into an integer value by
+;; VAL-LIST.  By side effect, VAL-LIST is modified.
+;; VAL-LIST has this form:
+;;   (t (VAL1 . VAL-CODE1) (VAL2 . VAL-CODE2) ...)
+;; If VAL is one of VALn, just return VAL-CODEn.  Otherwise,
+;; VAL-LIST is modified to this:
+;;   (t (VAL . (1+ VAL-CODE1)) (VAL1 . VAL-CODE1) (VAL2 . VAL-CODE2) ...)
+
+(defun unidata-encode-val (val-list val)
+  (let ((slot (assq val val-list))
+       val-code)
+    (if slot
+       (cdr slot)
+      (setq val-code (if (cdr val-list) (1+ (cdr (nth 1 val-list))) 1))
+      (setcdr val-list (cons (cons val val-code) (cdr val-list)))
+      val-code)))
+
+;; Generate a char-table for the character property PROP.
+
+(defun unidata-gen-table (prop val-func default-value)
+  (let ((table (make-char-table 'char-code-property-table))
+       (prop-idx (unidata-prop-index prop))
+       (val-list (list t))
+       (vec (make-vector 128 0))
+       tail elt range val val-code idx slot)
+    (set-char-table-range table (cons 0 (max-char)) default-value)
+    (setq tail unidata-list)
+    (while tail
+      (setq elt (car tail) tail (cdr tail))
+      (setq range (car elt)
+           val (funcall val-func (nth prop-idx elt)))
+      (setq val-code (if val (unidata-encode-val val-list val)))
+      (if (consp range)
+         (if val-code
+             (set-char-table-range table range val))
+       (let* ((start (lsh (lsh range -7) 7))
+              (limit (+ start 127))
+              str count new-val)
+         (fillarray vec 0)
+         (if val-code
+             (aset vec (- range start) val-code))
+         (while (and (setq elt (car tail) range (car elt))
+                     (integerp range)
+                     (<= range limit))
+           (setq new-val (funcall val-func (nth prop-idx elt)))
+           (if (not (eq val new-val))
+               (setq val new-val
+                     val-code (if val (unidata-encode-val val-list val))))
+           (if val-code
+               (aset vec (- range start) val-code))
+           (setq tail (cdr tail)))
+         (setq str "" val-code -1 count 0)
+         (mapc #'(lambda (x)
+                   (if (= val-code x)
+                       (setq count (1+ count))
+                     (if (> count 2)
+                         (setq str (concat str (string val-code
+                                                       (+ count 128))))
+                       (if (= count 2)
+                           (setq str (concat str (string val-code val-code)))
+                         (if (= count 1)
+                             (setq str (concat str (string val-code))))))
+                     (setq val-code x count 1)))
+               vec)
+         (if (= count 128)
+             (if val
+                 (set-char-table-range table (cons start limit) val))
+           (if (= val-code 0)
+               (set-char-table-range table (cons start limit) str)
+             (if (> count 2)
+                 (setq str (concat str (string val-code (+ count 128))))
+               (if (= count 2)
+                   (setq str (concat str (string val-code val-code)))
+                 (setq str (concat str (string val-code)))))
+             (set-char-table-range table (cons start limit) str))))))
+
+    (setq val-list (nreverse (cdr val-list)))
+    (set-char-table-extra-slot table 0 prop) 
+    (set-char-table-extra-slot table 4 (vconcat (mapcar 'car val-list)))
+    table))
+
+(defun unidata-gen-table-symbol (prop)
+  (let ((table (unidata-gen-table prop
+                                 #'(lambda (x) (and (> (length x) 0)
+                                                    (intern x)))
+                                 0)))
+    (byte-compile 'unidata-get-symbol)
+    (byte-compile 'unidata-put-symbol)
+    (set-char-table-extra-slot table 1 (symbol-function 'unidata-get-symbol))
+    (set-char-table-extra-slot table 2 (symbol-function 'unidata-put-symbol))
+    table))
+
+(defun unidata-gen-table-integer (prop)
+  (let ((table (unidata-gen-table prop
+                                 #'(lambda (x) (and (> (length x) 0)
+                                                    (string-to-number x)))
+                                 t)))
+    (byte-compile 'unidata-get-integer)
+    (byte-compile 'unidata-put-integer)
+    (set-char-table-extra-slot table 1 (symbol-function 'unidata-get-integer))
+    (set-char-table-extra-slot table 2 (symbol-function 'unidata-put-integer))
+    table))
+
+\f
+;; WORD-LIST TABLE
+
+;;   If the table is for `name' property, each character in the string
+;;   is one of these:
+;;     DIFF-HEAD-CODE (0, 1, or 2):
+;;       specifies how to decode the following characters.
+;;     WORD-CODE (3..#x7FF excluding '-', '0'..'9', 'A'..'Z'):
+;;       specifies an index number into WORD-TABLE (see below)
+;;      Otherwise (' ', '-', '0'..'9', 'A'..'Z'):
+;;       specifies a literal word.
+;;
+;;   The 4th slots is a vector:
+;;     [ WORD-TABLE BLOCK-NAME HANGUL-JAMO-TABLE ]
+;;   WORD-TABLE is a vector of word symbols.
+;;   BLOCK-NAME is a vector of name symbols for a block of characters.
+;;   HANGUL-JAMO-TABLE is `unidata-name-jamo-name-table'.
+
+;; Return the difference of symbol list L1 and L2 in this form:
+;;   (DIFF-HEAD SYM1 SYM2 ...)
+;; DIFF-HEAD is ((SAME-HEAD-LENGTH * 16) + SAME-TAIL-LENGTH).
+;; Ex: If L1 is (a b c d e f) and L2 is (a g h e f), this function
+;; returns ((+ (* 1 16) 2) g h).
+;; It means that we can get L2 from L1 by prepending the first element
+;; of L1 and appending the last 2 elements of L1 to the list (g h).
+;; If L1 and L2 don't have common elements at the head and tail,
+;; set DIFF-HEAD to -1 and SYM1 ... to the elements of L2.
+
+(defun unidata-word-list-diff (l1 l2)
+  (let ((beg 0)
+       (end 0)
+       (len1 (length l1))
+       (len2 (length l2))
+       result)
+    (when (< len1 16)
+      (while (and l1 (eq (car l1) (car l2)))
+       (setq beg (1+ beg)
+             l1 (cdr l1) len1 (1- len1) l2 (cdr l2) len2 (1- len2)))
+      (while (and (< end len1) (< end len2) 
+                 (eq (nth (- len1 end 1) l1) (nth (- len2 end 1) l2)))
+       (setq end (1+ end))))
+    (if (= (+ beg end) 0)
+       (setq result (list -1))
+      (setq result (list (+ (* beg 16) (+ beg (- len1 end))))))
+    (while (< end len2)
+      (setcdr result (cons (nth (- len2 end 1) l2) (cdr result)))
+      (setq end (1+ end)))
+    result))
+
+;; Return a compressed form of the vector VEC.  Each element of VEC is
+;; a list of symbols of which names can be concatenated to form a
+;; character name.  This function changes those elements into
+;; compressed forms by utilizing the fact that diff of consecutive
+;; elements is usually small.
+
+(defun unidata-word-list-compress (vec)
+  (let (last-elt last-idx diff-head tail elt val)
+    (dotimes (i 128)
+      (setq elt (aref vec i))
+      (when elt
+       (if (null last-elt)
+           (setq diff-head -1
+                 val (cons 0 elt))
+         (setq val (unidata-word-list-diff last-elt elt))
+         (if (= (car val) -1)
+             (setq diff-head -1
+                   val (cons 0 (cdr val)))
+           (if (eq diff-head (car val))
+               (setq val (cons 2 (cdr val)))
+             (setq diff-head (car val))
+             (if (>= diff-head 0)
+                 (setq val (cons 1 val))))))
+       (aset vec i val)
+       (setq last-idx i last-elt elt)))
+    (if (not last-idx)
+       (setq vec nil)
+      (if (< last-idx 127)
+         (let ((shorter (make-vector (1+ last-idx) nil)))
+           (dotimes (i (1+ last-idx))
+             (aset shorter i (aref vec i)))
+           (setq vec shorter))))
+    vec))
+
+;; Encode the word index IDX into a characters code that can be
+;; embedded in a string.
+
+(defsubst unidata-encode-word (idx)
+  ;; Exclude 0, 1, 2.
+  (+ idx 3))
+
+;; Decode the character code CODE (that is embedded in a string) into
+;; the corresponding word name by looking up WORD-TABLE.
+
+(defsubst unidata-decode-word (code word-table)
+  (setq code (- code 3))
+  (if (< code (length word-table))
+      (aref word-table code)))
+
+;; Table of short transliterated name symbols of Hangul Jamo divided
+;; into Choseong, Jungseong, and Jongseong.
+
+(defconst unidata-name-jamo-name-table
+  [[G GG N D DD R M B BB S SS nil J JJ C K T P H]
+   [A AE YA YAE EO E YEO YE O WA WAE OE YO U WEO WE WI YU EU YI I]
+   [G GG GS N NJ NH D L LG LM LB LS LT LP LH M B BS S SS NG J C K T P H]])
+
+;; Return a name of CHAR.  VAL is the current value of (aref TABLE
+;; CHAR).
+
+(defun unidata-get-name (char val table)
+  (cond 
+   ((stringp val)
+    (if (> (aref val 0) 0)
+       val
+      (let* ((first-char (lsh (lsh char -7) 7))
+            (word-table (aref (char-table-extra-slot table 4) 0))
+            (i 1)
+            (len (length val))
+            (vec (make-vector 128 nil))
+            (idx 0)
+            (case-fold-search nil)
+            c word-list tail-list last-list word diff-head)
+       (while (< i len)
+         (setq c (aref val i))
+         (if (< c 3)
+             (progn
+               (if (or word-list tail-list)
+                   (aset vec idx
+                         (setq last-list (nconc word-list tail-list))))
+               (setq i (1+ i) idx (1+ idx)
+                     word-list nil tail-list nil)
+               (if (> c 0)
+                   (let ((l last-list))
+                     (if (= c 1)
+                         (setq diff-head
+                               (prog1 (aref val i) (setq i (1+ i)))))
+                     (setq tail-list (nthcdr (% diff-head 16) last-list))
+                     (dotimes (i (/ diff-head 16))
+                       (setq word-list (nconc word-list (list (car l)))
+                             l (cdr l))))))
+           (setq word-list
+                 (nconc word-list 
+                        (list (symbol-name
+                               (unidata-decode-word c word-table))))
+                 i (1+ i))))
+       (if (or word-list tail-list)
+           (aset vec idx (nconc word-list tail-list)))
+       (setq val nil)
+       (dotimes (i 128)
+         (setq c (+ first-char i))
+         (let ((name (aref vec i)))
+           (if name
+               (let ((tail (cdr (setq name (copy-sequence name))))
+                     elt)
+                 (while tail
+                   (setq elt (car tail))
+                   (or (string= elt "-")
+                       (progn
+                         (setcdr tail (cons elt (cdr tail)))
+                         (setcar tail " ")))
+                   (setq tail (cddr tail)))
+                 (setq name (apply 'concat name))))
+           (aset table c name)
+           (if (= c char)
+               (setq val name))))
+       val)))
+
+   ((and (integerp val) (> val 0))
+    (let* ((symbol-table (aref (char-table-extra-slot table 4) 1))
+          (sym (aref symbol-table (1- val))))
+      (cond ((eq sym 'HANGUL\ SYLLABLE)
+            (let ((jamo-name-table (aref (char-table-extra-slot table 4) 2)))
+              ;; SIndex = S - SBase
+              (setq char (- char #xAC00))
+              (let ( ;; LIndex = SIndex / NCount
+                    (L (/ char 588))
+                    ;; VIndex = (SIndex % NCount) * TCount
+                    (V (/ (% char 588) 28))
+                    ;; TIndex = SIndex % TCount
+                    (T (% char 28)))
+                (format "HANGUL SYLLABLE %s%s%s" 
+                        ;; U+110B is nil in this table.
+                        (or (aref (aref jamo-name-table 0) L) "")
+                        (aref (aref jamo-name-table 1) V)
+                        (if (= T 0) ""
+                          (aref (aref jamo-name-table 2) (1- T)))))))
+           ((eq sym 'CJK\ IDEOGRAPH)
+            (format "%s-%04X" sym char))
+           ((eq sym 'CJK\ COMPATIBILITY\ IDEOGRAPH)
+            (format "%s-%04X" sym char))
+           ((eq sym 'VARIATION\ SELECTOR)
+            (format "%s-%d" sym (+ (- char #xe0100) 17))))))))
+
+;; Store VAL as the name of CHAR in TABLE.
+
+(defun unidata-put-name (char val table)
+  (let ((current-val (aref table char)))
+    (if (and (stringp current-val) (= (aref current-val 0) 0))
+       (funcall (char-table-extra-slot table 1) char current-val table))
+    (aset table char val)))
+
+(defun unidata-get-decomposition (char val table)
+  (cond
+   ((consp val)
+    val)
+
+   ((stringp val)
+    (if (> (aref val 0) 0)
+       val
+      (let* ((first-char (lsh (lsh char -7) 7))
+            (word-table (char-table-extra-slot table 4))
+            (i 1)
+            (len (length val))
+            (vec (make-vector 128 nil))
+            (idx 0)
+            (case-fold-search nil)
+            c word-list tail-list last-list word diff-head)
+       (while (< i len)
+         (setq c (aref val i))
+         (if (< c 3)
+             (progn
+               (if (or word-list tail-list)
+                   (aset vec idx
+                         (setq last-list (nconc word-list tail-list))))
+               (setq i (1+ i) idx (1+ idx)
+                     word-list nil tail-list nil)
+               (if (> c 0)
+                   (let ((l last-list))
+                     (if (= c 1)
+                         (setq diff-head
+                               (prog1 (aref val i) (setq i (1+ i)))))
+                     (setq tail-list (nthcdr (% diff-head 16) last-list))
+                     (dotimes (i (/ diff-head 16))
+                       (setq word-list (nconc word-list (list (car l)))
+                             l (cdr l))))))
+           (setq word-list
+                 (nconc word-list 
+                        (list (or (unidata-decode-word c word-table) c)))
+                 i (1+ i))))
+       (if (or word-list tail-list)
+           (aset vec idx (nconc word-list tail-list)))
+       (dotimes (i 128)
+         (aset table (+ first-char i) (aref vec i)))
+       (aref vec (- char first-char)))))
+
+   ;; Hangul syllable
+   ((and (eq val 0) (>= char #xAC00) (<= char #xD7A3))
+    ;; SIndex = S (char) - SBase (#xAC00)
+    (setq char (- char #xAC00))
+    (let (;; L = LBase + SIndex / NCount
+         (L (+ #x1100 (/ char 588)))
+         ;; V = VBase + (SIndex % NCount) * TCount
+         (V (+ #x1161 (/ (% char 588) 28)))
+         ;; T = TBase + SIndex % TCount
+         (T (+ #x11A7 (% char 28))))
+      (if (= T #x11A7)
+         (list L V)
+       (list L V T))))
+
+   ))
+
+;; Store VAL as the decomposition information of CHAR in TABLE.
+
+(defun unidata-put-decomposition (char val table)
+  (let ((current-val (aref table char)))
+    (if (and (stringp current-val) (= (aref current-val 0) 0))
+       (funcall (char-table-extra-slot table 1) char current-val table))
+    (aset table char val)))
+
+;; UnicodeData.txt contains these lines:
+;;   0000;<control>;Cc;0;BN;;;;;N;NULL;;;;
+;;   ...
+;;   0020;SPACE;Zs;0;WS;;;;;N;;;;;
+;;   ...
+;; The following command yields a file of about 96K bytes.
+;;   % gawk -F ';' '{print $1,$2;}' < UnicodeData.txt | gzip > temp.gz
+;; With the following function, we can get a file of almost the same
+;; the size.
+
+;; Generate a char-table for character names.
+
+(defun unidata-gen-table-word-list (prop val-func)
+  (let ((table (make-char-table 'char-code-property-table))
+       (prop-idx (unidata-prop-index prop))
+       (word-list (list nil))
+       word-table
+       block-list block-word-table block-end
+       tail elt range val idx slot)
+    (set-char-table-range table (cons 0 (max-char)) 0)
+    (setq tail unidata-list)
+    (setq block-end -1)
+    (while tail
+      (setq elt (car tail) tail (cdr tail))
+      (setq range (car elt)
+           val (funcall val-func (nth prop-idx elt)))
+      ;; Treat the sequence of "CJK COMPATIBILITY IDEOGRAPH-XXXX" and
+      ;; "VARIATION SELECTOR-XXX" as a block.
+      (if (and (consp val) (eq prop 'name)
+              (or (and (eq (car val) 'CJK)
+                       (eq (nth 1 val) 'COMPATIBILITY))
+                  (and (>= range #xe0100)
+                       (eq (car val) 'VARIATION)
+                       (eq (nth 1 val) 'SELECTOR))))
+         (let ((first (car val))
+               (second (nth 1 val))
+               (start range))
+           (while (and (setq elt (car tail) range (car elt)
+                             val (funcall val-func (nth prop-idx elt)))
+                       (consp val)
+                       (eq first (car val))
+                       (eq second (nth 1 val)))
+             (setq block-end range
+                   tail (cdr tail)))
+           (setq range (cons start block-end)
+                 val (if (eq first 'CJK) 'CJK\ COMPATIBILITY\ IDEOGRAPH
+                       'VARIATION\ SELECTOR))))
+
+      (if (consp range)
+         (if val
+             (let ((slot (assq val block-list)))
+               (setq range (cons (car range) (cdr range)))
+               (setq block-end (cdr range))
+               (if slot
+                   (nconc slot (list range))
+                 (push (list val range) block-list))))
+       (let* ((start (lsh (lsh range -7) 7))
+              (limit (+ start 127))
+              (first tail)
+              (vec (make-vector 128 nil))
+              c name len)
+         (if (<= start block-end)
+             ;; START overlap with the previous block.
+             (aset table range (nth prop-idx elt))
+           (if val
+               (aset vec (- range start) val))
+           (while (and (setq elt (car tail) range (car elt))
+                       (integerp range)
+                       (<= range limit))
+             (setq val (funcall val-func (nth prop-idx elt)))
+             (if val
+                 (aset vec (- range start) val))
+             (setq tail (cdr tail)))
+           (setq vec (unidata-word-list-compress vec))
+           (when vec
+             (dotimes (i (length vec))
+               (dolist (elt (aref vec i))
+                 (if (symbolp elt)
+                     (let ((slot (assq elt word-list)))
+                       (if slot
+                           (setcdr slot (1+ (cdr slot)))
+                         (setcdr word-list
+                                 (cons (cons elt 1) (cdr word-list))))))))
+             (set-char-table-range table (cons start limit) vec))))))
+    (setq word-list (sort (cdr word-list)
+                         #'(lambda (x y) (> (cdr x) (cdr y)))))
+    (setq tail word-list idx 0)
+    (while tail
+      (setcdr (car tail) (unidata-encode-word idx))
+      (setq idx (1+ idx) tail (cdr tail)))
+    (setq word-table (make-vector (length word-list) nil))
+    (setq idx 0)
+    (dolist (elt word-list)
+      (aset word-table idx (car elt))
+      (setq idx (1+ idx)))
+
+    (if (and (eq prop 'decomposition)
+            (> idx 32))
+       (error "Too many symbols in decomposition data"))
+
+    (dotimes (i (/ #x110000 128))
+      (let* ((idx (* i 128))
+            (vec (aref table idx)))
+       (when (vectorp vec)
+         (dotimes (i (length vec))
+           (let ((tail (aref vec i))
+                 elt code)
+             (if (not tail)
+                 (aset vec i "\0")
+               (while tail
+                 (setq elt (car tail)
+                       code (if (integerp elt) elt
+                              (cdr (assq elt word-list))))
+                 (setcar tail (string code))
+                 (setq tail (cdr tail)))
+               (aset vec i (mapconcat 'identity (aref vec i) "")))))
+         (set-char-table-range
+          table (cons idx (+ idx 127))
+          (mapconcat 'identity vec "")))))
+
+    (setq block-word-table (make-vector (length block-list) nil))
+    (setq idx 0)
+    (dolist (elt block-list)
+      (dolist (e (cdr elt))
+       (set-char-table-range table e (1+ idx)))
+      (aset block-word-table idx (car elt))
+      (setq idx (1+ idx)))
+
+    (set-char-table-extra-slot table 0 prop)
+    (set-char-table-extra-slot table 4 (cons word-table block-word-table))
+    table))
+
+(defun unidata-split-name (str)
+  (if (symbolp str)
+      str
+    (let ((len (length str))
+         (l nil)
+         (idx 0)
+         c)
+      (if (= len 0)
+         nil
+       (dotimes (i len)
+         (setq c (aref str i))
+         (if (= c 32)
+             (setq l (cons (intern (substring str idx i)) l)
+                   idx (1+ i))
+           (if (and (= c ?-) (< idx i) 
+                    (< (1+ i) len) (/= (aref str (1+ i)) 32))
+               (setq l (cons '- (cons (intern (substring str idx i)) l))
+                     idx (1+ i)))))
+       (nreverse (cons (intern (substring str idx)) l))))))
+
+(defun unidata-gen-table-name (prop)
+  (let* ((table (unidata-gen-table-word-list prop 'unidata-split-name))
+        (word-tables (char-table-extra-slot table 4)))
+    (byte-compile 'unidata-get-name)
+    (byte-compile 'unidata-put-name)
+    (set-char-table-extra-slot table 1 (symbol-function 'unidata-get-name))
+    (set-char-table-extra-slot table 2 (symbol-function 'unidata-put-name))
+
+    (if (eq prop 'name)
+       (set-char-table-extra-slot table 4
+                                  (vector (car word-tables)
+                                          (cdr word-tables)
+                                          unidata-name-jamo-name-table))
+      (set-char-table-extra-slot table 4
+                                (vector (car word-tables))))
+    table))
+
+(defun unidata-split-decomposition (str)
+  (if (symbolp str)
+      str
+    (let ((len (length str))
+         (l nil)
+         (idx 0)
+         c)
+      (if (= len 0)
+         nil
+       (dotimes (i len)
+         (setq c (aref str i))
+         (if (= c 32)
+             (setq l (if (= (aref str idx) ?<)
+                         (cons (intern (substring str idx i)) l)
+                       (cons (string-to-number (substring str idx i) 16) l))
+                   idx (1+ i))))
+       (if (= (aref str idx) ?<)
+           (setq l (cons (intern (substring str idx len)) l))
+         (setq l (cons (string-to-number (substring str idx len) 16) l)))
+       (nreverse l)))))
+
+
+(defun unidata-gen-table-decomposition (prop)
+  (let* ((table (unidata-gen-table-word-list prop 'unidata-split-decomposition))
+        (word-tables (char-table-extra-slot table 4)))
+    (byte-compile 'unidata-get-decomposition)
+    (byte-compile 'unidata-put-decomposition)
+    (set-char-table-extra-slot table 1
+                              (symbol-function 'unidata-get-decomposition))
+    (set-char-table-extra-slot table 2 
+                              (symbol-function 'unidata-put-decomposition))
+    (set-char-table-extra-slot table 4 (car word-tables))
+    table))
+
+
+\f
+(defun unidata-describe-general-category (val)
+  (cdr (assq val
+            '((Lu . "Letter, Uppercase")
+              (Ll . "Letter, Lowercase")
+              (Lt . "Letter, Titlecase")
+              (Lm . "Letter, Modifier")
+              (Lo . "Letter, Other")
+              (Mn . "Mark, Nonspacing")
+              (Mc . "Mark, Spacing Combining")
+              (Me . "Mark, Enclosing")
+              (Nd . "Number, Decimal Digit")
+              (Nl . "Number, Letter")
+              (No . "Number, Other")
+              (Pc . "Punctuation, Connector")
+              (Pd . "Punctuation, Dash")
+              (Ps . "Punctuation, Open")
+              (Pe . "Punctuation, Close")
+              (Pi . "Punctuation, Initial quote")
+              (Pf . "Punctuation, Final quote")
+              (Po . "Punctuation, Other")
+              (Sm . "Symbol, Math")
+              (Sc . "Symbol, Currency")
+              (Sk . "Symbol, Modifier")
+              (So . "Symbol, Other")
+              (Zs . "Separator, Space")
+              (Zl . "Separator, Line")
+              (Zp . "Separator, Paragraph")
+              (Cc . "Other, Control")
+              (Cf . "Other, Format")
+              (Cs . "Other, Surrogate")
+              (Co . "Other, Private Use")
+              (Cn . "Other, Not Assigned")))))
+
+(defun unidata-describe-canonical-combining-class (val)
+  (cdr (assq val
+            '((0 . "Spacing, split, enclosing, reordrant, and Tibetan subjoined")
+              (1 . "Overlays and interior")
+              (7 . "Nuktas")
+              (8 . "Hiragana/Katakana voicing marks")
+              (9 . "Viramas")
+              (10 . "Start of fixed position classes")
+              (199 . "End of fixed position classes")
+              (200 . "Below left attached")
+              (202 . "Below attached")
+              (204 . "Below right attached")
+              (208 . "Left attached (reordrant around single base character)")
+              (210 . "Right attached")
+              (212 . "Above left attached")
+              (214 . "Above attached")
+              (216 . "Above right attached")
+              (218 . "Below left")
+              (220 . "Below")
+              (222 . "Below right")
+              (224 . "Left (reordrant around single base character)")
+              (226 . "Right")
+              (228 . "Above left")
+              (230 . "Above")
+              (232 . "Above right")
+              (233 . "Double below")
+              (234 . "Double above")
+              (240 . "Below (iota subscript)")))))
+
+(defun unidata-describe-bidi-class (val)
+  (cdr (assq val
+            '((L . "Left-to-Right")
+              (LRE . "Left-to-Right Embedding")
+              (LRO . "Left-to-Right Override")
+              (R . "Right-to-Left")
+              (AL . "Right-to-Left Arabic")
+              (RLE . "Right-to-Left Embedding")
+              (RLO . "Right-to-Left Override")
+              (PDF . "Pop Directional Format")
+              (EN . "European Number")
+              (ES . "European Number Separator")
+              (ET . "European Number Terminator")
+              (AN . "Arabic Number")
+              (CS . "Common Number Separator")
+              (NSM . "Non-Spacing Mark")
+              (BN . "Boundary Neutral")
+              (B . "Paragraph Separator")
+              (S . "Segment Separator")
+              (WS . "Whitespace")
+              (ON . "Other Neutrals")))))
+
+(defun unidata-describe-decomposition (val)
+  (mapconcat #'(lambda (x) (if (symbolp x) (symbol-name x) (string ?' x ?')))
+            val " "))
+
+;; Verify if we can retrieve correct values from the generated
+;; char-tables.
+
+(defun unidata-check ()
+  (dolist (elt unidata-prop-alist)
+    (let* ((prop (car elt))
+          (index (unidata-prop-index prop))
+          (generator (unidata-prop-generator prop))
+          (table (progn 
+                   (message "Generating %S table..." prop)
+                   (funcall generator prop)))
+          (decoder (char-table-extra-slot table 1))
+          (check #x400))
+      (dolist (e unidata-list)
+       (let ((char (car e))
+             (val1 (nth index e))
+             val2)
+         (if (and (stringp val1) (= (length val1) 0))
+             (setq val1 nil))
+         (unless (consp char)
+           (setq val2 (funcall decoder char (aref table char) table))
+           (if val1
+               (cond ((eq generator 'unidata-gen-table-symbol)
+                      (setq val1 (intern val1)))
+                     ((eq generator 'unidata-gen-table-integer)
+                      (setq val1 (string-to-number val1)))
+                     ((eq generator 'unidata-gen-table-character)
+                      (setq val1 (string-to-number val1 16)))
+                     ((eq generator 'unidata-gen-table-decomposition)
+                      (setq val1 (unidata-split-decomposition val1)))))
+           (when (>= char check)
+             (message "%S %04X" prop check)
+             (setq check (+ check #x400)))
+           (or (equal val1 val2)
+               (insert (format "> %04X %S\n< %04X %S\n" 
+                               char val1 char val2)))
+           (sit-for 0)))))))
+
+;; The entry function.  It generates files described in the header
+;; comment of this file.
+
+(defun unidata-gen-files (&optional unidata-text-file)
+  (or unidata-text-file
+      (setq unidata-text-file (car command-line-args-left)
+           command-line-args-left (cdr command-line-args-left)))
+  (unidata-setup-list unidata-text-file)
+  (let ((coding-system-for-write 'utf-8)
+       (charprop-file "charprop.el"))
+    (with-temp-file charprop-file
+      (insert ";; Automatically generated by unidata-gen.el.\n")
+      (dolist (elt unidata-prop-alist)
+       (let* ((prop (car elt))
+              (generator (unidata-prop-generator prop))
+              (file (unidata-prop-file prop))
+              (docstring (unidata-prop-docstring prop))
+              (describer (unidata-prop-describer prop))
+              table)
+         ;; Filename in this comment line is extracted by sed in
+         ;; Makefile.
+         (insert (format ";; FILE: %s\n" file))
+         (insert (format "(define-char-code-property '%S %S\n  %S)\n"
+                         prop file docstring))
+         (with-temp-file file
+           (message "Generating %s..." file)
+           (setq table (funcall generator prop))
+           (when describer
+             (unless (subrp (symbol-function describer))
+               (byte-compile describer)
+               (setq describer (symbol-function describer)))
+             (set-char-table-extra-slot table 3 describer))
+           (insert ";; Automatically generated from UnicodeData.txt.\n"
+                   (format "(define-char-code-property '%S %S %S)\n"
+                           prop table docstring)
+                   ";; Local Variables:\n"
+                   ";; coding: utf-8\n"
+                   ";; no-byte-compile: t\n"
+                   ";; End:\n\n"
+                   (format ";; %s ends here\n" file)))))
+      (message "Writing %s..." charprop-file)
+      (insert ";; Local Variables:\n"
+             ";; coding: utf-8\n"
+             ";; no-byte-compile: t\n"
+             ";; End:\n\n"
+             (format ";; %s ends here\n" charprop-file)))))
+
+\f
+
+;; arch-tag: 961c862e-b821-447e-9b8a-bfbab9c2d525
+;;; unidata-gen.el ends here
index 4d8d153ba5575113db95f5888444132f2b073683..0f3580be246e8526ded2a025a2cd16d6fe27d8ba 100755 (executable)
--- a/configure
+++ b/configure
@@ -696,6 +696,15 @@ DBUS_CFLAGS
 DBUS_LIBS
 XFT_CFLAGS
 XFT_LIBS
+FREETYPE_CFLAGS
+FREETYPE_LIBS
+FONTCONFIG_CFLAGS
+FONTCONFIG_LIBS
+HAVE_LIBOTF
+LIBOTF_CFLAGS
+LIBOTF_LIBS
+M17N_FLT_CFLAGS
+M17N_FLT_LIBS
 ALLOCA
 liblockfile
 LIBOBJS
@@ -1324,6 +1333,7 @@ Optional Features:
   --enable-carbon-app[=DIR]
                           specify install directory for Emacs.app on Mac OS X
                           [DIR=/Application]
+  --enable-font-backend   compile code of font-backend support
   --enable-asserts        compile code with asserts enabled
   --enable-maintainer-mode
                           enable make rules and dependencies not useful (and
@@ -1349,6 +1359,8 @@ Optional Packages:
   --with-tiff             use -ltiff for displaying TIFF images
   --with-gif              use -lgif (or -lungif) for displaying GIF images
   --with-png              use -lpng for displaying PNG images
+  --with-freetype         use -lfreetype for local fonts support
+  --with-xft              use -lXft for anti aliased fonts
   --with-gpm              use -lgpm for mouse support on a GNU/Linux console
   --with-rsvg             use -lrsvg-2 for displaying SVG images
   --with-gtk              use GTK (same as --with-x-toolkit=gtk)
@@ -1970,6 +1982,18 @@ if test "${with_png+set}" = set; then
 fi
 
 
+# Check whether --with-freetype was given.
+if test "${with_freetype+set}" = set; then
+  withval=$with_freetype;
+fi
+
+
+# Check whether --with-xft was given.
+if test "${with_xft+set}" = set; then
+  withval=$with_xft;
+fi
+
+
 # Check whether --with-gpm was given.
 if test "${with_gpm+set}" = set; then
   withval=$with_gpm;
@@ -2030,6 +2054,14 @@ if test "${enable_carbon_app+set}" = set; then
 fi
 
 
+# Check whether --enable-font-backend was given.
+if test "${enable_font_backend+set}" = set; then
+  enableval=$enable_font_backend; USE_FONT_BACKEND=$enableval
+else
+  USE_FONT_BACKEND=no
+fi
+
+
 # Check whether --enable-asserts was given.
 if test "${enable_asserts+set}" = set; then
   enableval=$enable_asserts; USE_XASSERTS=$enableval
@@ -12120,145 +12152,107 @@ _ACEOF
    fi
 fi
 
-### Link with -lXft if available to work around a bug.
-HAVE_XFT=maybe
-if test "${HAVE_GTK}" = "yes"; then
-    if test "X${with_pkg_config_prog}" != X; then
-    PKG_CONFIG="${with_pkg_config_prog}"
-  fi
-
-
-  succeeded=no
-
-  if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+HAVE_XAW3D=no
+if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
+  if test "$with_xaw3d" != no; then
+    { echo "$as_me:$LINENO: checking for xaw3d" >&5
+echo $ECHO_N "checking for xaw3d... $ECHO_C" >&6; }
+    if test "${emacs_cv_xaw3d+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
-  ;;
+#include <X11/Intrinsic.h>
+#include <X11/Xaw3d/Simple.h>
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
 esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
-  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-echo "${ECHO_T}$PKG_CONFIG" >&6; }
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  emacs_cv_xaw3d=yes
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+       emacs_cv_xaw3d=no
+fi
 
-  fi
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
 
-  if test "$PKG_CONFIG" = "no" ; then
-     HAVE_XFT=no
   else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        { echo "$as_me:$LINENO: checking for xft >= 0.13.0" >&5
-echo $ECHO_N "checking for xft >= 0.13.0... $ECHO_C" >&6; }
-
-        if $PKG_CONFIG --exists "xft >= 0.13.0" 2>&5; then
-            { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-            succeeded=yes
-
-            { echo "$as_me:$LINENO: checking XFT_CFLAGS" >&5
-echo $ECHO_N "checking XFT_CFLAGS... $ECHO_C" >&6; }
-            XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"|sed -e 's,///*,/,g'`
-            { echo "$as_me:$LINENO: result: $XFT_CFLAGS" >&5
-echo "${ECHO_T}$XFT_CFLAGS" >&6; }
-
-            { echo "$as_me:$LINENO: checking XFT_LIBS" >&5
-echo $ECHO_N "checking XFT_LIBS... $ECHO_C" >&6; }
-            XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"|sed -e 's,///*,/,g'`
-            { echo "$as_me:$LINENO: result: $XFT_LIBS" >&5
-echo "${ECHO_T}$XFT_LIBS" >&6; }
-        else
-            { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-            XFT_CFLAGS=""
-            XFT_LIBS=""
-            ## If we have a custom action on failure, don't print errors, but
-            ## do set a variable so people can do so.
-            XFT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xft >= 0.13.0"`
-
-        fi
-
-
-
-     else
-        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-        echo "*** See http://www.freedesktop.org/software/pkgconfig"
-     fi
+    emacs_cv_xaw3d=no
   fi
+  if test $emacs_cv_xaw3d = yes; then
+    { echo "$as_me:$LINENO: result: yes; using Lucid toolkit" >&5
+echo "${ECHO_T}yes; using Lucid toolkit" >&6; }
+    USE_X_TOOLKIT=LUCID
+    HAVE_XAW3D=yes
 
-  if test $succeeded = yes; then
-     :
-  else
-     HAVE_XFT=no
-  fi
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_XAW3D 1
+_ACEOF
 
-  if test "$HAVE_XFT" != no; then
-    OLD_CFLAGS="$CPPFLAGS"
-    OLD_CPPFLAGS="$CFLAGS"
-    OLD_LIBS="$LIBS"
-    CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
-    CFLAGS="$CFLAGS $XFT_CFLAGS"
-    LIBS="$XFT_LIBS $LIBS"
-    if test "${ac_cv_header_X11_Xft_Xft_h+set}" = set; then
-  { echo "$as_me:$LINENO: checking for X11/Xft/Xft.h" >&5
-echo $ECHO_N "checking for X11/Xft/Xft.h... $ECHO_C" >&6; }
-if test "${ac_cv_header_X11_Xft_Xft_h+set}" = set; then
+  else
+    { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+    { echo "$as_me:$LINENO: checking for libXaw" >&5
+echo $ECHO_N "checking for libXaw... $ECHO_C" >&6; }
+    if test "${emacs_cv_xaw+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_X11_Xft_Xft_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_Xft_Xft_h" >&6; }
 else
-  # Is the header compilable?
-{ echo "$as_me:$LINENO: checking X11/Xft/Xft.h usability" >&5
-echo $ECHO_N "checking X11/Xft/Xft.h usability... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
+  cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
-#include <X11/Xft/Xft.h>
+
+#include <X11/Intrinsic.h>
+#include <X11/Xaw/Simple.h>
+int
+main ()
+{
+
+  ;
+  return 0;
+}
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -12267,102 +12261,120 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   (exit $ac_status); } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  emacs_cv_xaw=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
+       emacs_cv_xaw=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
 
-# Is the header present?
-{ echo "$as_me:$LINENO: checking X11/Xft/Xft.h presence" >&5
-echo $ECHO_N "checking X11/Xft/Xft.h presence... $ECHO_C" >&6; }
-cat >conftest.$ac_ext <<_ACEOF
+    if test $emacs_cv_xaw = yes; then
+      { echo "$as_me:$LINENO: result: yes; using Lucid toolkit" >&5
+echo "${ECHO_T}yes; using Lucid toolkit" >&6; }
+      USE_X_TOOLKIT=LUCID
+    elif test x"${USE_X_TOOLKIT}" = xLUCID; then
+      { { echo "$as_me:$LINENO: error: Lucid toolkit requires X11/Xaw include files" >&5
+echo "$as_me: error: Lucid toolkit requires X11/Xaw include files" >&2;}
+   { (exit 1); exit 1; }; }
+    else
+      { echo "$as_me:$LINENO: result: no; do not use toolkit by default" >&5
+echo "${ECHO_T}no; do not use toolkit by default" >&6; }
+      USE_X_TOOLKIT=none
+    fi
+  fi
+fi
+
+X_TOOLKIT_TYPE=$USE_X_TOOLKIT
+
+if test "${USE_X_TOOLKIT}" != "none"; then
+  { echo "$as_me:$LINENO: checking X11 toolkit version" >&5
+echo $ECHO_N "checking X11 toolkit version... $ECHO_C" >&6; }
+  if test "${emacs_cv_x11_toolkit_version_6+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Xft/Xft.h>
+#include <X11/Intrinsic.h>
+int
+main ()
+{
+#if XtSpecificationRelease < 6
+fail;
+#endif
+
+  ;
+  return 0;
+}
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  emacs_cv_x11_toolkit_version_6=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
+       emacs_cv_x11_toolkit_version_6=no
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: X11/Xft/Xft.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: X11/Xft/Xft.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: X11/Xft/Xft.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: X11/Xft/Xft.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: X11/Xft/Xft.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: X11/Xft/Xft.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: X11/Xft/Xft.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: X11/Xft/Xft.h: in the future, the compiler will take precedence" >&2;}
+  HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
+  if test $emacs_cv_x11_toolkit_version_6 = yes; then
+    { echo "$as_me:$LINENO: result: 6 or newer" >&5
+echo "${ECHO_T}6 or newer" >&6; }
 
-    ;;
-esac
-{ echo "$as_me:$LINENO: checking for X11/Xft/Xft.h" >&5
-echo $ECHO_N "checking for X11/Xft/Xft.h... $ECHO_C" >&6; }
-if test "${ac_cv_header_X11_Xft_Xft_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_X11_Xft_Xft_h=$ac_header_preproc
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_X11_Xft_Xft_h" >&5
-echo "${ECHO_T}$ac_cv_header_X11_Xft_Xft_h" >&6; }
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_X11XTR6 1
+_ACEOF
 
-fi
-if test $ac_cv_header_X11_Xft_Xft_h = yes; then
-  { echo "$as_me:$LINENO: checking for XftFontOpen in -lXft" >&5
-echo $ECHO_N "checking for XftFontOpen in -lXft... $ECHO_C" >&6; }
-if test "${ac_cv_lib_Xft_XftFontOpen+set}" = set; then
+  else
+    { echo "$as_me:$LINENO: result: before 6" >&5
+echo "${ECHO_T}before 6" >&6; }
+  fi
+
+  OLDLIBS="$LIBS"
+  if test x$HAVE_X11XTR6 = xyes; then
+    LIBS="-lXt -lSM -lICE $LIBS"
+  else
+    LIBS="-lXt $LIBS"
+  fi
+
+{ echo "$as_me:$LINENO: checking for XmuConvertStandardSelection in -lXmu" >&5
+echo $ECHO_N "checking for XmuConvertStandardSelection in -lXmu... $ECHO_C" >&6; }
+if test "${ac_cv_lib_Xmu_XmuConvertStandardSelection+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXft $XFT_LIBS $LIBS"
+LIBS="-lXmu  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -12376,11 +12388,11 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char XftFontOpen ();
+char XmuConvertStandardSelection ();
 int
 main ()
 {
-return XftFontOpen ();
+return XmuConvertStandardSelection ();
   ;
   return 0;
 }
@@ -12403,65 +12415,61 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
         test ! -s conftest.err
        } && test -s conftest$ac_exeext &&
        $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_Xft_XftFontOpen=yes
+  ac_cv_lib_Xmu_XmuConvertStandardSelection=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_lib_Xft_XftFontOpen=no
+       ac_cv_lib_Xmu_XmuConvertStandardSelection=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xft_XftFontOpen" >&5
-echo "${ECHO_T}$ac_cv_lib_Xft_XftFontOpen" >&6; }
-if test $ac_cv_lib_Xft_XftFontOpen = yes; then
-  HAVE_XFT=yes
-fi
-
-fi
-
-
-
-    if test "${HAVE_XFT}" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_XFT 1
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xmu_XmuConvertStandardSelection" >&5
+echo "${ECHO_T}$ac_cv_lib_Xmu_XmuConvertStandardSelection" >&6; }
+if test $ac_cv_lib_Xmu_XmuConvertStandardSelection = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXMU 1
 _ACEOF
 
+  LIBS="-lXmu $LIBS"
 
-      C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
-    else
-      CFLAGS="$OLD_CPPFLAGS"
-      CFLAGS="$OLD_CFLAGS"
-      LIBS="$OLD_LIBS"
-    fi
-  fi
 fi
 
-HAVE_XAW3D=no
-if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
-  if test "$with_xaw3d" != no; then
-    { echo "$as_me:$LINENO: checking for xaw3d" >&5
-echo $ECHO_N "checking for xaw3d... $ECHO_C" >&6; }
-    if test "${emacs_cv_xaw3d+set}" = set; then
+  test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
+fi
+
+# On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
+if test "${HAVE_X11}" = "yes"; then
+  if test "${USE_X_TOOLKIT}" != "none"; then
+
+{ echo "$as_me:$LINENO: checking for XShapeQueryExtension in -lXext" >&5
+echo $ECHO_N "checking for XShapeQueryExtension in -lXext... $ECHO_C" >&6; }
+if test "${ac_cv_lib_Xext_XShapeQueryExtension+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lXext  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#include <X11/Intrinsic.h>
-#include <X11/Xaw3d/Simple.h>
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XShapeQueryExtension ();
 int
 main ()
 {
-
+return XShapeQueryExtension ();
   ;
   return 0;
 }
@@ -12484,37 +12492,36 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
         test ! -s conftest.err
        } && test -s conftest$ac_exeext &&
        $as_test_x conftest$ac_exeext; then
-  emacs_cv_xaw3d=yes
+  ac_cv_lib_Xext_XShapeQueryExtension=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       emacs_cv_xaw3d=no
+       ac_cv_lib_Xext_XShapeQueryExtension=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XShapeQueryExtension" >&5
+echo "${ECHO_T}$ac_cv_lib_Xext_XShapeQueryExtension" >&6; }
+if test $ac_cv_lib_Xext_XShapeQueryExtension = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXEXT 1
+_ACEOF
 
-  else
-    emacs_cv_xaw3d=no
-  fi
-  if test $emacs_cv_xaw3d = yes; then
-    { echo "$as_me:$LINENO: result: yes; using Lucid toolkit" >&5
-echo "${ECHO_T}yes; using Lucid toolkit" >&6; }
-    USE_X_TOOLKIT=LUCID
-    HAVE_XAW3D=yes
+  LIBS="-lXext $LIBS"
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_XAW3D 1
-_ACEOF
+fi
 
-  else
-    { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-    { echo "$as_me:$LINENO: checking for libXaw" >&5
-echo $ECHO_N "checking for libXaw... $ECHO_C" >&6; }
-    if test "${emacs_cv_xaw+set}" = set; then
+  fi
+fi
+
+if test "${USE_X_TOOLKIT}" = "MOTIF"; then
+  { echo "$as_me:$LINENO: checking for Motif version 2.1" >&5
+echo $ECHO_N "checking for Motif version 2.1... $ECHO_C" >&6; }
+if test "${emacs_cv_motif_version_2_1+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -12523,25 +12530,27 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-#include <X11/Intrinsic.h>
-#include <X11/Xaw/Simple.h>
+#include <Xm/Xm.h>
 int
 main ()
 {
-
+#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
+int x = 5;
+#else
+Motif version prior to 2.1.
+#endif
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -12550,58 +12559,52 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   (exit $ac_status); } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  emacs_cv_xaw=yes
+       } && test -s conftest.$ac_objext; then
+  emacs_cv_motif_version_2_1=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       emacs_cv_xaw=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+       emacs_cv_motif_version_2_1=no
 fi
 
-    if test $emacs_cv_xaw = yes; then
-      { echo "$as_me:$LINENO: result: yes; using Lucid toolkit" >&5
-echo "${ECHO_T}yes; using Lucid toolkit" >&6; }
-      USE_X_TOOLKIT=LUCID
-    elif test x"${USE_X_TOOLKIT}" = xLUCID; then
-      { { echo "$as_me:$LINENO: error: Lucid toolkit requires X11/Xaw include files" >&5
-echo "$as_me: error: Lucid toolkit requires X11/Xaw include files" >&2;}
-   { (exit 1); exit 1; }; }
-    else
-      { echo "$as_me:$LINENO: result: no; do not use toolkit by default" >&5
-echo "${ECHO_T}no; do not use toolkit by default" >&6; }
-      USE_X_TOOLKIT=none
-    fi
-  fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+{ echo "$as_me:$LINENO: result: $emacs_cv_motif_version_2_1" >&5
+echo "${ECHO_T}$emacs_cv_motif_version_2_1" >&6; }
+  HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
+  if test $emacs_cv_motif_version_2_1 = yes; then
+    HAVE_LIBXP=no
 
-X_TOOLKIT_TYPE=$USE_X_TOOLKIT
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MOTIF_2_1 1
+_ACEOF
 
-if test "${USE_X_TOOLKIT}" != "none"; then
-  { echo "$as_me:$LINENO: checking X11 toolkit version" >&5
-echo $ECHO_N "checking X11 toolkit version... $ECHO_C" >&6; }
-  if test "${emacs_cv_x11_toolkit_version_6+set}" = set; then
+    { echo "$as_me:$LINENO: checking for XpCreateContext in -lXp" >&5
+echo $ECHO_N "checking for XpCreateContext in -lXp... $ECHO_C" >&6; }
+if test "${ac_cv_lib_Xp_XpCreateContext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lXp  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Intrinsic.h>
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XpCreateContext ();
 int
 main ()
 {
-#if XtSpecificationRelease < 6
-fail;
-#endif
-
+return XpCreateContext ();
   ;
   return 0;
 }
@@ -12624,76 +12627,67 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
         test ! -s conftest.err
        } && test -s conftest$ac_exeext &&
        $as_test_x conftest$ac_exeext; then
-  emacs_cv_x11_toolkit_version_6=yes
+  ac_cv_lib_Xp_XpCreateContext=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       emacs_cv_x11_toolkit_version_6=no
+       ac_cv_lib_Xp_XpCreateContext=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-
-  HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
-  if test $emacs_cv_x11_toolkit_version_6 = yes; then
-    { echo "$as_me:$LINENO: result: 6 or newer" >&5
-echo "${ECHO_T}6 or newer" >&6; }
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xp_XpCreateContext" >&5
+echo "${ECHO_T}$ac_cv_lib_Xp_XpCreateContext" >&6; }
+if test $ac_cv_lib_Xp_XpCreateContext = yes; then
+  HAVE_LIBXP=yes
+fi
+
+    if test ${HAVE_LIBXP} = yes; then
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_X11XTR6 1
+#define HAVE_LIBXP 1
 _ACEOF
 
+    fi
   else
-    { echo "$as_me:$LINENO: result: before 6" >&5
-echo "${ECHO_T}before 6" >&6; }
-  fi
-
-  OLDLIBS="$LIBS"
-  if test x$HAVE_X11XTR6 = xyes; then
-    LIBS="-lXt -lSM -lICE $LIBS"
-  else
-    LIBS="-lXt $LIBS"
-  fi
-
-{ echo "$as_me:$LINENO: checking for XmuConvertStandardSelection in -lXmu" >&5
-echo $ECHO_N "checking for XmuConvertStandardSelection in -lXmu... $ECHO_C" >&6; }
-if test "${ac_cv_lib_Xmu_XmuConvertStandardSelection+set}" = set; then
+    { echo "$as_me:$LINENO: checking for LessTif where some systems put it" >&5
+echo $ECHO_N "checking for LessTif where some systems put it... $ECHO_C" >&6; }
+if test "${emacs_cv_lesstif+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXmu  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
+  # We put this in CFLAGS temporarily to precede other -I options
+    # that might be in CFLAGS temporarily.
+    # We put this in CPPFLAGS where it precedes the other -I options.
+    OLD_CPPFLAGS=$CPPFLAGS
+    OLD_CFLAGS=$CFLAGS
+    CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
+    CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
+    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XmuConvertStandardSelection ();
+#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>
 int
 main ()
 {
-return XmuConvertStandardSelection ();
+int x = 5;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -12702,45 +12696,68 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   (exit $ac_status); } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_Xmu_XmuConvertStandardSelection=yes
+       } && test -s conftest.$ac_objext; then
+  emacs_cv_lesstif=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_lib_Xmu_XmuConvertStandardSelection=no
+       emacs_cv_lesstif=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xmu_XmuConvertStandardSelection" >&5
-echo "${ECHO_T}$ac_cv_lib_Xmu_XmuConvertStandardSelection" >&6; }
-if test $ac_cv_lib_Xmu_XmuConvertStandardSelection = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBXMU 1
+{ echo "$as_me:$LINENO: result: $emacs_cv_lesstif" >&5
+echo "${ECHO_T}$emacs_cv_lesstif" >&6; }
+    if test $emacs_cv_lesstif = yes; then
+      # Make sure this -I option remains in CPPFLAGS after it is set
+      # back to REAL_CPPFLAGS.
+      # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
+      # have those other -I options anyway.  Ultimately, having this
+      # directory ultimately in CPPFLAGS will be enough.
+      REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
+      LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
+    else
+      CFLAGS=$OLD_CFLAGS
+      CPPFLAGS=$OLD_CPPFLAGS
+    fi
+  fi
+fi
+
+
+
+USE_TOOLKIT_SCROLL_BARS=no
+if test "${with_toolkit_scroll_bars}" != "no"; then
+  if test "${USE_X_TOOLKIT}" != "none"; then
+    if test "${USE_X_TOOLKIT}" = "MOTIF"; then
+      cat >>confdefs.h <<\_ACEOF
+#define USE_TOOLKIT_SCROLL_BARS 1
 _ACEOF
 
-  LIBS="-lXmu $LIBS"
+      HAVE_XAW3D=no
+      USE_TOOLKIT_SCROLL_BARS=yes
+    elif test "${HAVE_XAW3D}" = "yes"; then
+      cat >>confdefs.h <<\_ACEOF
+#define USE_TOOLKIT_SCROLL_BARS 1
+_ACEOF
 
-fi
+      USE_TOOLKIT_SCROLL_BARS=yes
+    fi
+  elif test "${HAVE_GTK}" = "yes"; then
+    cat >>confdefs.h <<\_ACEOF
+#define USE_TOOLKIT_SCROLL_BARS 1
+_ACEOF
 
-  test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
-fi
+    USE_TOOLKIT_SCROLL_BARS=yes
+  elif test "${HAVE_CARBON}" = "yes"; then
+    cat >>confdefs.h <<\_ACEOF
+#define USE_TOOLKIT_SCROLL_BARS 1
+_ACEOF
 
-# On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
-if test "${HAVE_X11}" = "yes"; then
-  if test "${USE_X_TOOLKIT}" != "none"; then
+    USE_TOOLKIT_SCROLL_BARS=yes
+  fi
+fi
 
-{ echo "$as_me:$LINENO: checking for XShapeQueryExtension in -lXext" >&5
-echo $ECHO_N "checking for XShapeQueryExtension in -lXext... $ECHO_C" >&6; }
-if test "${ac_cv_lib_Xext_XShapeQueryExtension+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXext  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -12748,29 +12765,24 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XShapeQueryExtension ();
+         #include <X11/Xlib.h>
+         #include <X11/Xresource.h>
 int
 main ()
 {
-return XShapeQueryExtension ();
+XIMProc  callback;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -12779,55 +12791,63 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   (exit $ac_status); } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_Xext_XShapeQueryExtension=yes
+       } && test -s conftest.$ac_objext; then
+  HAVE_XIM=yes
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_XIM 1
+_ACEOF
+
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_lib_Xext_XShapeQueryExtension=no
+       HAVE_XIM=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XShapeQueryExtension" >&5
-echo "${ECHO_T}$ac_cv_lib_Xext_XShapeQueryExtension" >&6; }
-if test $ac_cv_lib_Xext_XShapeQueryExtension = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBXEXT 1
-_ACEOF
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-  LIBS="-lXext $LIBS"
 
-fi
+if test "${with_xim}" != "no"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_XIM 1
+_ACEOF
 
-  fi
 fi
 
-if test "${USE_X_TOOLKIT}" = "MOTIF"; then
-  { echo "$as_me:$LINENO: checking for Motif version 2.1" >&5
-echo $ECHO_N "checking for Motif version 2.1... $ECHO_C" >&6; }
-if test "${emacs_cv_motif_version_2_1+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+
+if test "${HAVE_XIM}" != "no"; then
+  late_CFLAGS=$CFLAGS
+  if test "$GCC" = yes; then
+    CFLAGS="$CFLAGS --pedantic-errors"
+  fi
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <Xm/Xm.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xresource.h>
 int
 main ()
 {
-#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
-int x = 5;
-#else
-Motif version prior to 2.1.
+Display *display;
+XrmDatabase db;
+char *res_name;
+char *res_class;
+XIMProc  callback;
+XPointer *client_data;
+#ifndef __GNUC__
+/* If we're not using GCC, it's probably not XFree86, and this is
+   probably right, but we can't use something like --pedantic-errors.  */
+extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
+                                           char*, XIMProc, XPointer*);
 #endif
+(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
+   client_data);
   ;
   return 0;
 }
@@ -12849,63 +12869,183 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  emacs_cv_motif_version_2_1=yes
+  emacs_cv_arg6_star=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       emacs_cv_motif_version_2_1=no
+
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+  if test "$emacs_cv_arg6_star" = yes; then
+    cat >>confdefs.h <<\_ACEOF
+#define XRegisterIMInstantiateCallback_arg6 XPointer*
+_ACEOF
+
+  else
+    cat >>confdefs.h <<\_ACEOF
+#define XRegisterIMInstantiateCallback_arg6 XPointer
+_ACEOF
+
+  fi
+  CFLAGS=$late_CFLAGS
 fi
-{ echo "$as_me:$LINENO: result: $emacs_cv_motif_version_2_1" >&5
-echo "${ECHO_T}$emacs_cv_motif_version_2_1" >&6; }
-  HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
-  if test $emacs_cv_motif_version_2_1 = yes; then
-    HAVE_LIBXP=no
+
+### For font-backend
+if test "${USE_FONT_BACKEND}" = "yes"; then
+
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_MOTIF_2_1 1
+#define USE_FONT_BACKEND 1
 _ACEOF
 
-    { echo "$as_me:$LINENO: checking for XpCreateContext in -lXp" >&5
-echo $ECHO_N "checking for XpCreateContext in -lXp... $ECHO_C" >&6; }
-if test "${ac_cv_lib_Xp_XpCreateContext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lXp  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XpCreateContext ();
-int
-main ()
-{
-return XpCreateContext ();
-  ;
-  return 0;
-}
+### Use -lXft if available, unless `--with-freetype=no' nor `--with-xft=no'.
+HAVE_XFT=maybe
+if test "${HAVE_X11}" = "yes"; then
+  if test "x${with_freetype}" = "xno"; then
+    with_xft="no";
+  fi
+  if test "x${with_xft}" != "xno"; then
+
+        if test "X${with_pkg_config_prog}" != X; then
+      PKG_CONFIG="${with_pkg_config_prog}"
+    fi
+
+
+  succeeded=no
+
+  if test -z "$PKG_CONFIG"; then
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     HAVE_XFT=no
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        { echo "$as_me:$LINENO: checking for xft >= 0.13.0" >&5
+echo $ECHO_N "checking for xft >= 0.13.0... $ECHO_C" >&6; }
+
+        if $PKG_CONFIG --exists "xft >= 0.13.0" 2>&5; then
+            { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+            succeeded=yes
+
+            { echo "$as_me:$LINENO: checking XFT_CFLAGS" >&5
+echo $ECHO_N "checking XFT_CFLAGS... $ECHO_C" >&6; }
+            XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"|sed -e 's,///*,/,g'`
+            { echo "$as_me:$LINENO: result: $XFT_CFLAGS" >&5
+echo "${ECHO_T}$XFT_CFLAGS" >&6; }
+
+            { echo "$as_me:$LINENO: checking XFT_LIBS" >&5
+echo $ECHO_N "checking XFT_LIBS... $ECHO_C" >&6; }
+            XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"|sed -e 's,///*,/,g'`
+            { echo "$as_me:$LINENO: result: $XFT_LIBS" >&5
+echo "${ECHO_T}$XFT_LIBS" >&6; }
+        else
+            { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+            XFT_CFLAGS=""
+            XFT_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but
+            ## do set a variable so people can do so.
+            XFT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xft >= 0.13.0"`
+
+        fi
+
+
+
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     :
+  else
+     HAVE_XFT=no
+  fi
+
+    if test "$HAVE_XFT" != no; then
+      OLD_CPPFLAGS="$CPPFLAGS"
+      OLD_CFLAGS="$CFLAGS"
+      OLD_LIBS="$LIBS"
+      CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
+      CFLAGS="$CFLAGS $XFT_CFLAGS"
+      LIBS="$XFT_LIBS $LIBS"
+      if test "${ac_cv_header_X11_Xft_Xft_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for X11/Xft/Xft.h" >&5
+echo $ECHO_N "checking for X11/Xft/Xft.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_X11_Xft_Xft_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_X11_Xft_Xft_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_Xft_Xft_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking X11/Xft/Xft.h usability" >&5
+echo $ECHO_N "checking X11/Xft/Xft.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <X11/Xft/Xft.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -12914,69 +13054,132 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   (exit $ac_status); } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_Xp_XpCreateContext=yes
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_lib_Xp_XpCreateContext=no
+       ac_header_compiler=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xp_XpCreateContext" >&5
-echo "${ECHO_T}$ac_cv_lib_Xp_XpCreateContext" >&6; }
-if test $ac_cv_lib_Xp_XpCreateContext = yes; then
-  HAVE_LIBXP=yes
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking X11/Xft/Xft.h presence" >&5
+echo $ECHO_N "checking X11/Xft/Xft.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <X11/Xft/Xft.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
 
-    if test ${HAVE_LIBXP} = yes; then
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBXP 1
-_ACEOF
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: X11/Xft/Xft.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: X11/Xft/Xft.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: X11/Xft/Xft.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: X11/Xft/Xft.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: X11/Xft/Xft.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: X11/Xft/Xft.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: X11/Xft/Xft.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: X11/Xft/Xft.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: X11/Xft/Xft.h: in the future, the compiler will take precedence" >&2;}
 
-    fi
-  else
-    { echo "$as_me:$LINENO: checking for LessTif where some systems put it" >&5
-echo $ECHO_N "checking for LessTif where some systems put it... $ECHO_C" >&6; }
-if test "${emacs_cv_lesstif+set}" = set; then
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for X11/Xft/Xft.h" >&5
+echo $ECHO_N "checking for X11/Xft/Xft.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_X11_Xft_Xft_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  # We put this in CFLAGS temporarily to precede other -I options
-    # that might be in CFLAGS temporarily.
-    # We put this in CPPFLAGS where it precedes the other -I options.
-    OLD_CPPFLAGS=$CPPFLAGS
-    OLD_CFLAGS=$CFLAGS
-    CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
-    CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
-    cat >conftest.$ac_ext <<_ACEOF
+  ac_cv_header_X11_Xft_Xft_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_X11_Xft_Xft_h" >&5
+echo "${ECHO_T}$ac_cv_header_X11_Xft_Xft_h" >&6; }
+
+fi
+if test $ac_cv_header_X11_Xft_Xft_h = yes; then
+  { echo "$as_me:$LINENO: checking for XftFontOpen in -lXft" >&5
+echo $ECHO_N "checking for XftFontOpen in -lXft... $ECHO_C" >&6; }
+if test "${ac_cv_lib_Xft_XftFontOpen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lXft $XFT_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XftFontOpen ();
 int
 main ()
 {
-int x = 5;
+return XftFontOpen ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -12985,68 +13188,307 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   (exit $ac_status); } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  emacs_cv_lesstif=yes
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_Xft_XftFontOpen=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       emacs_cv_lesstif=no
+       ac_cv_lib_Xft_XftFontOpen=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $emacs_cv_lesstif" >&5
-echo "${ECHO_T}$emacs_cv_lesstif" >&6; }
-    if test $emacs_cv_lesstif = yes; then
-      # Make sure this -I option remains in CPPFLAGS after it is set
-      # back to REAL_CPPFLAGS.
-      # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
-      # have those other -I options anyway.  Ultimately, having this
-      # directory ultimately in CPPFLAGS will be enough.
-      REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
-      LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
-    else
-      CFLAGS=$OLD_CFLAGS
-      CPPFLAGS=$OLD_CPPFLAGS
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xft_XftFontOpen" >&5
+echo "${ECHO_T}$ac_cv_lib_Xft_XftFontOpen" >&6; }
+if test $ac_cv_lib_Xft_XftFontOpen = yes; then
+  HAVE_XFT=yes
+fi
+
+fi
+
+
+
+      if test "${HAVE_XFT}" = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_XFT 1
+_ACEOF
+
+
+        C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
+      else
+        CFLAGS="$OLD_CPPFLAGS"
+        CFLAGS="$OLD_CFLAGS"
+        LIBS="$OLD_LIBS"
+      fi
+    fi
+  fi
+fi
+
+HAVE_FREETYPE=no
+### Use -lfreetype if available, unless `--with-freetype=no'.
+if test "${HAVE_XFT}" = "yes"; then
+      HAVE_FREETYPE=yes
+elif test "x${with_freetype}" != "xno"; then
+    if test "X${with_pkg_config_prog}" != X; then
+    PKG_CONFIG="${with_pkg_config_prog}"
+  fi
+
+
+  succeeded=no
+
+  if test -z "$PKG_CONFIG"; then
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     HAVE_FREETYPE=no
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        { echo "$as_me:$LINENO: checking for freetype2" >&5
+echo $ECHO_N "checking for freetype2... $ECHO_C" >&6; }
+
+        if $PKG_CONFIG --exists "freetype2" 2>&5; then
+            { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+            succeeded=yes
+
+            { echo "$as_me:$LINENO: checking FREETYPE_CFLAGS" >&5
+echo $ECHO_N "checking FREETYPE_CFLAGS... $ECHO_C" >&6; }
+            FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "freetype2"|sed -e 's,///*,/,g'`
+            { echo "$as_me:$LINENO: result: $FREETYPE_CFLAGS" >&5
+echo "${ECHO_T}$FREETYPE_CFLAGS" >&6; }
+
+            { echo "$as_me:$LINENO: checking FREETYPE_LIBS" >&5
+echo $ECHO_N "checking FREETYPE_LIBS... $ECHO_C" >&6; }
+            FREETYPE_LIBS=`$PKG_CONFIG --libs "freetype2"|sed -e 's,///*,/,g'`
+            { echo "$as_me:$LINENO: result: $FREETYPE_LIBS" >&5
+echo "${ECHO_T}$FREETYPE_LIBS" >&6; }
+        else
+            { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+            FREETYPE_CFLAGS=""
+            FREETYPE_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but
+            ## do set a variable so people can do so.
+            FREETYPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "freetype2"`
+
+        fi
+
+
+
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     HAVE_FREETYPE=yes
+  else
+     HAVE_FREETYPE=no
+  fi
+
+  if test "${HAVE_FREETYPE}" = "yes"; then
+
+  succeeded=no
+
+  if test -z "$PKG_CONFIG"; then
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     HAVE_FC=no
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        { echo "$as_me:$LINENO: checking for fontconfig" >&5
+echo $ECHO_N "checking for fontconfig... $ECHO_C" >&6; }
+
+        if $PKG_CONFIG --exists "fontconfig" 2>&5; then
+            { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+            succeeded=yes
+
+            { echo "$as_me:$LINENO: checking FONTCONFIG_CFLAGS" >&5
+echo $ECHO_N "checking FONTCONFIG_CFLAGS... $ECHO_C" >&6; }
+            FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig"|sed -e 's,///*,/,g'`
+            { echo "$as_me:$LINENO: result: $FONTCONFIG_CFLAGS" >&5
+echo "${ECHO_T}$FONTCONFIG_CFLAGS" >&6; }
+
+            { echo "$as_me:$LINENO: checking FONTCONFIG_LIBS" >&5
+echo $ECHO_N "checking FONTCONFIG_LIBS... $ECHO_C" >&6; }
+            FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig"|sed -e 's,///*,/,g'`
+            { echo "$as_me:$LINENO: result: $FONTCONFIG_LIBS" >&5
+echo "${ECHO_T}$FONTCONFIG_LIBS" >&6; }
+        else
+            { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+            FONTCONFIG_CFLAGS=""
+            FONTCONFIG_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but
+            ## do set a variable so people can do so.
+            FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fontconfig"`
+
+        fi
+
+
+
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     HAVE_FC=yes
+  else
+     HAVE_FC=no
+  fi
+
+    if test "${HAVE_FC}" = "no"; then
+            HAVE_FREETYPE=no
     fi
   fi
 fi
+if test "${HAVE_FREETYPE}" = "yes"; then
 
-
-
-USE_TOOLKIT_SCROLL_BARS=no
-if test "${with_toolkit_scroll_bars}" != "no"; then
-  if test "${USE_X_TOOLKIT}" != "none"; then
-    if test "${USE_X_TOOLKIT}" = "MOTIF"; then
-      cat >>confdefs.h <<\_ACEOF
-#define USE_TOOLKIT_SCROLL_BARS 1
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_FREETYPE 1
 _ACEOF
 
-      HAVE_XAW3D=no
-      USE_TOOLKIT_SCROLL_BARS=yes
-    elif test "${HAVE_XAW3D}" = "yes"; then
-      cat >>confdefs.h <<\_ACEOF
-#define USE_TOOLKIT_SCROLL_BARS 1
-_ACEOF
+  # Extract the first word of "libotf-config", so it can be a program name with args.
+set dummy libotf-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_HAVE_LIBOTF+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$HAVE_LIBOTF"; then
+  ac_cv_prog_HAVE_LIBOTF="$HAVE_LIBOTF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_HAVE_LIBOTF="yes"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
 
-      USE_TOOLKIT_SCROLL_BARS=yes
-    fi
-  elif test "${HAVE_GTK}" = "yes"; then
-    cat >>confdefs.h <<\_ACEOF
-#define USE_TOOLKIT_SCROLL_BARS 1
-_ACEOF
+  test -z "$ac_cv_prog_HAVE_LIBOTF" && ac_cv_prog_HAVE_LIBOTF="no"
+fi
+fi
+HAVE_LIBOTF=$ac_cv_prog_HAVE_LIBOTF
+if test -n "$HAVE_LIBOTF"; then
+  { echo "$as_me:$LINENO: result: $HAVE_LIBOTF" >&5
+echo "${ECHO_T}$HAVE_LIBOTF" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
 
-    USE_TOOLKIT_SCROLL_BARS=yes
-  elif test "${HAVE_CARBON}" = "yes"; then
-    cat >>confdefs.h <<\_ACEOF
-#define USE_TOOLKIT_SCROLL_BARS 1
-_ACEOF
 
-    USE_TOOLKIT_SCROLL_BARS=yes
-  fi
-fi
+  if test "${HAVE_LIBOTF}" = "yes"; then
 
+{ echo "$as_me:$LINENO: checking for OTF_get_features in -lotf" >&5
+echo $ECHO_N "checking for OTF_get_features in -lotf... $ECHO_C" >&6; }
+if test "${ac_cv_lib_otf_OTF_get_features+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lotf  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -13054,24 +13496,29 @@ cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-         #include <X11/Xlib.h>
-         #include <X11/Xresource.h>
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char OTF_get_features ();
 int
 main ()
 {
-XIMProc  callback;
+return OTF_get_features ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -13080,106 +13527,163 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   (exit $ac_status); } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  HAVE_XIM=yes
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_XIM 1
-_ACEOF
-
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_otf_OTF_get_features=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       HAVE_XIM=no
+       ac_cv_lib_otf_OTF_get_features=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_otf_OTF_get_features" >&5
+echo "${ECHO_T}$ac_cv_lib_otf_OTF_get_features" >&6; }
+if test $ac_cv_lib_otf_OTF_get_features = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBOTF 1
+_ACEOF
 
+  LIBS="-lotf $LIBS"
 
-if test "${with_xim}" != "no"; then
+else
+  HAVE_LIBOTF=no
+fi
+
+    if test "${HAVE_LIBOTF}" = "yes"; then
 
 cat >>confdefs.h <<\_ACEOF
-#define USE_XIM 1
+#define HAVE_LIBOTF 1
 _ACEOF
 
+      LIBOTF_CFLAGS=`libotf-config --cflags`
+      LIBOTF_LIBS=`libotf-config --libs`
+    fi
+  fi
+fi
+
+
+
+
+
+
+
+if test "X${with_pkg_config_prog}" != X; then
+  PKG_CONFIG="${with_pkg_config_prog}"
 fi
 
+  succeeded=no
 
-if test "${HAVE_XIM}" != "no"; then
-  late_CFLAGS=$CFLAGS
-  if test "$GCC" = yes; then
-    CFLAGS="$CFLAGS --pedantic-errors"
+  if test -z "$PKG_CONFIG"; then
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
   fi
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+done
+done
+IFS=$as_save_IFS
 
-#include <X11/Xlib.h>
-#include <X11/Xresource.h>
-int
-main ()
-{
-Display *display;
-XrmDatabase db;
-char *res_name;
-char *res_class;
-XIMProc  callback;
-XPointer *client_data;
-#ifndef __GNUC__
-/* If we're not using GCC, it's probably not XFree86, and this is
-   probably right, but we can't use something like --pedantic-errors.  */
-extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
-                                           char*, XIMProc, XPointer*);
-#endif
-(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
-   client_data);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  emacs_cv_arg6_star=yes
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6; }
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
 
 
-fi
+  fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  if test "$PKG_CONFIG" = "no" ; then
+     pkg_check_m17n_flt=no
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        { echo "$as_me:$LINENO: checking for m17n-flt" >&5
+echo $ECHO_N "checking for m17n-flt... $ECHO_C" >&6; }
 
-  if test "$emacs_cv_arg6_star" = yes; then
-    cat >>confdefs.h <<\_ACEOF
-#define XRegisterIMInstantiateCallback_arg6 XPointer*
-_ACEOF
+        if $PKG_CONFIG --exists "m17n-flt" 2>&5; then
+            { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+            succeeded=yes
+
+            { echo "$as_me:$LINENO: checking M17N_FLT_CFLAGS" >&5
+echo $ECHO_N "checking M17N_FLT_CFLAGS... $ECHO_C" >&6; }
+            M17N_FLT_CFLAGS=`$PKG_CONFIG --cflags "m17n-flt"|sed -e 's,///*,/,g'`
+            { echo "$as_me:$LINENO: result: $M17N_FLT_CFLAGS" >&5
+echo "${ECHO_T}$M17N_FLT_CFLAGS" >&6; }
+
+            { echo "$as_me:$LINENO: checking M17N_FLT_LIBS" >&5
+echo $ECHO_N "checking M17N_FLT_LIBS... $ECHO_C" >&6; }
+            M17N_FLT_LIBS=`$PKG_CONFIG --libs "m17n-flt"|sed -e 's,///*,/,g'`
+            { echo "$as_me:$LINENO: result: $M17N_FLT_LIBS" >&5
+echo "${ECHO_T}$M17N_FLT_LIBS" >&6; }
+        else
+            { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+            M17N_FLT_CFLAGS=""
+            M17N_FLT_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but
+            ## do set a variable so people can do so.
+            M17N_FLT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "m17n-flt"`
+
+        fi
+
+
+
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
 
+  if test $succeeded = yes; then
+     pkg_check_m17n_flt=yes
   else
-    cat >>confdefs.h <<\_ACEOF
-#define XRegisterIMInstantiateCallback_arg6 XPointer
+     pkg_check_m17n_flt=no
+  fi
+
+if test "$pkg_check_m17n_flt" = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_M17N_FLT 1
 _ACEOF
 
-  fi
-  CFLAGS=$late_CFLAGS
+
+
+  C_SWITCH_X_SITE="$C_SWITCH_X_SITE $M17N_FLT_CFLAGS"
+  CFLAGS="$CFLAGS $M17N_FLT_CFLAGS"
+  LIBS="$LIBS $M17N_FLT_LIBS"
+fi
+
 fi
 
 ### Use -lXpm if available, unless `--with-xpm=no'.
@@ -24701,6 +25205,15 @@ DBUS_CFLAGS!$DBUS_CFLAGS$ac_delim
 DBUS_LIBS!$DBUS_LIBS$ac_delim
 XFT_CFLAGS!$XFT_CFLAGS$ac_delim
 XFT_LIBS!$XFT_LIBS$ac_delim
+FREETYPE_CFLAGS!$FREETYPE_CFLAGS$ac_delim
+FREETYPE_LIBS!$FREETYPE_LIBS$ac_delim
+FONTCONFIG_CFLAGS!$FONTCONFIG_CFLAGS$ac_delim
+FONTCONFIG_LIBS!$FONTCONFIG_LIBS$ac_delim
+HAVE_LIBOTF!$HAVE_LIBOTF$ac_delim
+LIBOTF_CFLAGS!$LIBOTF_CFLAGS$ac_delim
+LIBOTF_LIBS!$LIBOTF_LIBS$ac_delim
+M17N_FLT_CFLAGS!$M17N_FLT_CFLAGS$ac_delim
+M17N_FLT_LIBS!$M17N_FLT_LIBS$ac_delim
 ALLOCA!$ALLOCA$ac_delim
 liblockfile!$liblockfile$ac_delim
 LIBOBJS!$LIBOBJS$ac_delim
@@ -24709,15 +25222,6 @@ KMEM_GROUP!$KMEM_GROUP$ac_delim
 GETLOADAVG_LIBS!$GETLOADAVG_LIBS$ac_delim
 GETOPT_H!$GETOPT_H$ac_delim
 GETOPTOBJS!$GETOPTOBJS$ac_delim
-version!$version$ac_delim
-configuration!$configuration$ac_delim
-canonical!$canonical$ac_delim
-srcdir!$srcdir$ac_delim
-lispdir!$lispdir$ac_delim
-locallisppath!$locallisppath$ac_delim
-lisppath!$lisppath$ac_delim
-x_default_search_path!$x_default_search_path$ac_delim
-etcdir!$etcdir$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -24759,6 +25263,15 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+version!$version$ac_delim
+configuration!$configuration$ac_delim
+canonical!$canonical$ac_delim
+srcdir!$srcdir$ac_delim
+lispdir!$lispdir$ac_delim
+locallisppath!$locallisppath$ac_delim
+lisppath!$lisppath$ac_delim
+x_default_search_path!$x_default_search_path$ac_delim
+etcdir!$etcdir$ac_delim
 archlibdir!$archlibdir$ac_delim
 bitmapdir!$bitmapdir$ac_delim
 gamedir!$gamedir$ac_delim
@@ -24775,7 +25288,7 @@ carbon_appdir!$carbon_appdir$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 14; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 23; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -25234,6 +25747,9 @@ echo creating src/Makefile
   sed -e '1,/start of cpp stuff/d'\
       -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
       < Makefile.c > junk.c
+  if test -f ${srcdir}/admin/unidata/UnicodeData.txt; then
+    CPPFLAGS="$CPPFLAGS -DHAVE_UNIDATA"
+  fi
   $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
       sed -e 's/^ /    /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
   cat junk1.c junk2.c > Makefile.new
index c07541fe1babc52f4e8a7f5e3af58929ea833460..ea68e2a6c2a45fbb6657789b5e06187a7bc34b50 100644 (file)
@@ -111,6 +111,8 @@ EMACS_ARG_Y([jpeg],[use -ljpeg for displaying JPEG images])
 EMACS_ARG_Y([tiff],[use -ltiff for displaying TIFF images])
 EMACS_ARG_Y([gif],[use -lgif (or -lungif) for displaying GIF images])
 EMACS_ARG_Y([png],[use -lpng for displaying PNG images])
+EMACS_ARG_Y([freetype],[use -lfreetype for local fonts support])
+EMACS_ARG_Y([xft],[use -lXft for anti aliased fonts])
 EMACS_ARG_Y([gpm],[use -lgpm for mouse support on a GNU/Linux console])
 EMACS_ARG_Y([rsvg],[use -lrsvg-2 for displaying SVG images])
 EMACS_ARG_Y([gtk],[use GTK (same as --with-x-toolkit=gtk)])
@@ -127,6 +129,11 @@ AC_ARG_ENABLE(carbon-app,
                 [DIR=/Application]])],
 [ carbon_appdir_x=${enableval}])
 
+AC_ARG_ENABLE(font-backend,
+[  --enable-font-backend   compile code of font-backend support],
+      USE_FONT_BACKEND=$enableval,
+      USE_FONT_BACKEND=no)
+
 AC_ARG_ENABLE(asserts,
 [AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])],
       USE_XASSERTS=$enableval,
@@ -2271,37 +2278,6 @@ if test "${with_dbus}" = "yes"; then
    fi
 fi
 
-### Link with -lXft if available to work around a bug.
-HAVE_XFT=maybe
-if test "${HAVE_GTK}" = "yes"; then
-  dnl Check if --with-pkg-config-prog has been given.
-  if test "X${with_pkg_config_prog}" != X; then
-    PKG_CONFIG="${with_pkg_config_prog}"
-  fi
-
-  PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
-  if test "$HAVE_XFT" != no; then
-    OLD_CFLAGS="$CPPFLAGS"
-    OLD_CPPFLAGS="$CFLAGS"
-    OLD_LIBS="$LIBS"
-    CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
-    CFLAGS="$CFLAGS $XFT_CFLAGS"
-    LIBS="$XFT_LIBS $LIBS"
-    AC_CHECK_HEADER(X11/Xft/Xft.h,
-      [AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS)])
-
-    if test "${HAVE_XFT}" = "yes"; then
-      AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
-      AC_SUBST(XFT_LIBS)
-      C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
-    else
-      CFLAGS="$OLD_CPPFLAGS"
-      CFLAGS="$OLD_CFLAGS"
-      LIBS="$OLD_LIBS"
-    fi
-  fi
-fi
-
 dnl Do not put whitespace before the #include statements below.
 dnl Older compilers (eg sunos4 cc) choke on it.
 HAVE_XAW3D=no
@@ -2507,6 +2483,110 @@ either XPointer or XPointer*.])dnl
   CFLAGS=$late_CFLAGS
 fi
 
+### For font-backend
+if test "${USE_FONT_BACKEND}" = "yes"; then
+
+AC_DEFINE(USE_FONT_BACKEND, 1,
+          [Define to 1 if we should use font-backend.])
+
+### Use -lXft if available, unless `--with-freetype=no' nor `--with-xft=no'.
+HAVE_XFT=maybe
+if test "${HAVE_X11}" = "yes"; then
+  if test "x${with_freetype}" = "xno"; then
+    with_xft="no";
+  fi
+  if test "x${with_xft}" != "xno"; then
+
+    dnl Check if --with-pkg-config-prog has been given.
+    if test "X${with_pkg_config_prog}" != X; then
+      PKG_CONFIG="${with_pkg_config_prog}"
+    fi
+
+    PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
+    if test "$HAVE_XFT" != no; then
+      OLD_CPPFLAGS="$CPPFLAGS"
+      OLD_CFLAGS="$CFLAGS"
+      OLD_LIBS="$LIBS"
+      CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
+      CFLAGS="$CFLAGS $XFT_CFLAGS"
+      LIBS="$XFT_LIBS $LIBS"
+      AC_CHECK_HEADER(X11/Xft/Xft.h,
+        AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
+
+      if test "${HAVE_XFT}" = "yes"; then
+        AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
+       AC_SUBST(XFT_LIBS)
+        C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
+      else
+        CFLAGS="$OLD_CPPFLAGS"
+        CFLAGS="$OLD_CFLAGS"
+        LIBS="$OLD_LIBS"
+      fi
+    fi
+  fi
+fi
+
+HAVE_FREETYPE=no
+### Use -lfreetype if available, unless `--with-freetype=no'.
+if test "${HAVE_XFT}" = "yes"; then
+  dnl As we use Xft, we anyway use freetype.
+  dnl In this case, there's no need of additional CFLAGS and LIBS.
+  HAVE_FREETYPE=yes
+elif test "x${with_freetype}" != "xno"; then
+  dnl Check if --with-pkg-config-prog has been given.
+  if test "X${with_pkg_config_prog}" != X; then
+    PKG_CONFIG="${with_pkg_config_prog}"
+  fi
+
+  PKG_CHECK_MODULES(FREETYPE, freetype2, HAVE_FREETYPE=yes, HAVE_FREETYPE=no)
+  if test "${HAVE_FREETYPE}" = "yes"; then
+    PKG_CHECK_MODULES(FONTCONFIG, fontconfig, HAVE_FC=yes, HAVE_FC=no)
+    if test "${HAVE_FC}" = "no"; then
+      dnl Witout fontconfig, we can't use freetype at the moment.
+      HAVE_FREETYPE=no
+    fi
+  fi
+fi
+if test "${HAVE_FREETYPE}" = "yes"; then
+  AC_DEFINE(HAVE_FREETYPE, 1,
+           [Define to 1 if you have freetype and fontconfig libraries.])
+  AC_CHECK_PROG(HAVE_LIBOTF, libotf-config, yes, no)
+  if test "${HAVE_LIBOTF}" = "yes"; then
+    AC_CHECK_LIB(otf, OTF_get_features, , HAVE_LIBOTF=no)
+    if test "${HAVE_LIBOTF}" = "yes"; then
+      AC_DEFINE(HAVE_LIBOTF, 1,
+               [Define to 1 if you have libotf library.])
+      LIBOTF_CFLAGS=`libotf-config --cflags`
+      LIBOTF_LIBS=`libotf-config --libs`
+    fi
+  fi
+fi
+AC_SUBST(FREETYPE_CFLAGS)
+AC_SUBST(FREETYPE_LIBS)
+AC_SUBST(FONTCONFIG_CFLAGS)
+AC_SUBST(FONTCONFIG_LIBS)
+AC_SUBST(LIBOTF_CFLAGS)
+AC_SUBST(LIBOTF_LIBS)
+
+dnl Check if --with-pkg-config-prog has been given.
+if test "X${with_pkg_config_prog}" != X; then
+  PKG_CONFIG="${with_pkg_config_prog}"
+fi
+dnl Checks for libraries.
+PKG_CHECK_MODULES(M17N_FLT, m17n-flt, pkg_check_m17n_flt=yes, 
+                 pkg_check_m17n_flt=no)
+if test "$pkg_check_m17n_flt" = "yes"; then
+  AC_DEFINE(HAVE_M17N_FLT, 1,
+            [Define to 1 if you have m17n-flt library.])
+  AC_SUBST(M17N_FLT_CFLAGS)
+  AC_SUBST(M17N_FLT_LIBS)
+  C_SWITCH_X_SITE="$C_SWITCH_X_SITE $M17N_FLT_CFLAGS"
+  CFLAGS="$CFLAGS $M17N_FLT_CFLAGS"
+  LIBS="$LIBS $M17N_FLT_LIBS"
+fi
+
+fi
+
 ### Use -lXpm if available, unless `--with-xpm=no'.
 HAVE_XPM=no
 if test "${HAVE_X11}" = "yes"; then
@@ -3571,6 +3651,9 @@ echo creating src/Makefile
   sed -e '1,/start of cpp stuff/d'\
       -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
       < Makefile.c > junk.c
+  if test -f ${srcdir}/admin/unidata/UnicodeData.txt; then
+    CPPFLAGS="$CPPFLAGS -DHAVE_UNIDATA"
+  fi
   $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
       sed -e 's/^ /    /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
   cat junk1.c junk2.c > Makefile.new
diff --git a/doc/lispref/elisp-covers.texi b/doc/lispref/elisp-covers.texi
deleted file mode 100644 (file)
index 4b9693d..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-\input texinfo    @c -*-texinfo-*-
-@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
-@c   Free Software Foundation, Inc.
-@c See the file elisp.texi for copying conditions.
-@c
-@comment %**start of header
-@setfilename covers.info
-@settitle GNU Emacs Lisp Reference Manual
-@comment %**end of header
-
-@titlepage
-@c ================ Volume 1 ================
-@w{ }
-@sp 2
-@center @titlefont{The}
-@sp 1
-@center @titlefont{GNU}
-@sp 1
-@center @titlefont{Emacs Lisp}
-@sp 1
-@center @titlefont{Reference}
-@sp 1
-@center @titlefont{Manual}
-@sp 2
-@center GNU Emacs Version 19
-@center for Unix Users
-@center Edition 2.3, June 1994
-@sp 2
-@center @titlefont{Volume 1}
-@sp 2
-@center by Bil Lewis, Dan LaLiberte,
-@center and the GNU Manual Group
-
-@page
-@c ================ Volume 2 ================
-@w{ }
-@sp 5
-@center @titlefont{The}
-@sp 1
-@center @titlefont{GNU}
-@sp 1
-@center @titlefont{Emacs Lisp}
-@sp 1
-@center @titlefont{Reference}
-@sp 1
-@center @titlefont{Manual}
-@sp 2
-@center GNU Emacs Version 19
-@center for Unix Users
-@center Edition 2.3, June 1994
-@sp 2
-@center @titlefont{Volume 2}
-@sp 2
-@center by Bil Lewis,
-@center Dan LaLiberte, and
-@center the GNU Manual Group
-
-@page
-@c ================ Volume 1 with baseline skip 16pt ================
-
-@tex
-\global\baselineskip = 16pt
-@end tex
-
-16 pts baseline skip:
-
-@w{ }
-@sp 2
-@center @titlefont{The}
-@sp 1
-@center @titlefont{GNU}
-@sp 1
-@center @titlefont{Emacs Lisp}
-@sp 1
-@center @titlefont{Reference}
-@sp 1
-@center @titlefont{Manual}
-@sp 2
-@center GNU Emacs Version 19
-@center for Unix Users
-@center Edition 2.3, June 1994
-@sp 2
-@center @titlefont{Volume 1}
-@sp 2
-@center by Bil Lewis, Dan LaLiberte,
-@center and the GNU Manual Group
-
-@page
-@c ================ Volume 1 with baseline skip 18pt ================
-
-@tex
-\global\baselineskip = 18pt
-@end tex
-
-18 pts baseline skip, with 15pts  between sections
-
-@w{ }
-@sp 2
-@center @titlefont{The}
-@sp 1
-@center @titlefont{GNU}
-@sp 1
-@center @titlefont{Emacs Lisp}
-@sp 1
-@center @titlefont{Reference}
-@sp 1
-@center @titlefont{Manual}
-@tex
-\global\baselineskip = 15pt
-@end tex
-
-@sp 2
-@center GNU Emacs Version 19
-@center for Unix Users
-@center Edition 2.3, June 1994
-@sp 2
-@center @titlefont{Volume 1}
-@sp 2
-@center by Bil Lewis,
-@center Dan LaLiberte, and
-@center the GNU Manual Group
-
-@page
-@c ================ Volume 1 with more baseline skip 24 pts ================
-
-@tex
-\global\baselineskip = 24pt
-@end tex
-
-24 pts baseline skip:
-
-@w{ }
-@sp 2
-@center @titlefont{The}
-@sp 1
-@center @titlefont{GNU}
-@sp 1
-@center @titlefont{Emacs Lisp}
-@sp 1
-@center @titlefont{Reference}
-@sp 1
-@center @titlefont{Manual}
-@sp 2
-@center GNU Emacs Version 19
-@center for Unix Users
-@center Edition 2.3, June 1994
-@sp 2
-@center @titlefont{Volume 1}
-@sp 2
-@center by Bil Lewis, Dan LaLiberte,
-@center and the GNU Manual Group
-
-@page
-@c ================ Volume 2 with more baseline skip 18 pts ================
-
-@tex
-\global\baselineskip = 18pt
-@end tex
-
-18 pts baseline skip:
-
-@w{ }
-@sp 5
-@center @titlefont{The}
-@sp 1
-@center @titlefont{GNU}
-@sp 1
-@center @titlefont{Emacs Lisp}
-@sp 1
-@center @titlefont{Reference}
-@sp 1
-@center @titlefont{Manual}
-@sp 2
-@center GNU Emacs Version 19
-@center for Unix Users
-@center Edition 2.3, June 1994
-@sp 2
-@center @titlefont{Volume 2}
-@sp 2
-@center by Bil Lewis, Dan LaLiberte,
-@center and the GNU Manual Group
-
-@page
-@c ================ Volume 2 with more baseline skip 24 pts ================
-
-@tex
-\global\baselineskip = 24pt
-@end tex
-
-24 pts baseline skip:
-
-@w{ }
-@sp 5
-@center @titlefont{The}
-@sp 1
-@center @titlefont{GNU}
-@sp 1
-@center @titlefont{Emacs Lisp}
-@sp 1
-@center @titlefont{Reference}
-@sp 1
-@center @titlefont{Manual}
-@sp 2
-@center GNU Emacs Version 19
-@center for Unix Users
-@center Edition 2.3, June 1994
-@sp 2
-@center @titlefont{Volume 2}
-@sp 2
-@center by Bil Lewis, Dan LaLiberte,
-@center and the GNU Manual Group
-
-
-@page
-@c ================  Spine 1 ================
-
-@w{@titlefont{The GNU Emacs Lisp Reference Manual --- Vol. 1}}
-@sp 4
-@center GNU Emacs Version 19
-@center for Unix Users
-@center Edition 2.3, June 1994
-@sp 4
-@center by Bil Lewis, Dan LaLiberte,
-@center and the GNU Manual Group
-
-@sp 4
-@author The GNU Emacs Lisp Reference Manual --- Vol. 1
-@sp 3
-@author FSF
-
-@author
-
-@page
-@c ================  Spine 2 ================
-
-@w{@titlefont{The GNU Emacs Lisp Reference Manual --- Vol. 2}}
-@sp 4
-@center GNU Emacs Version 19
-@center for Unix Users
-@center Edition 2.3, June 1994
-@sp 4
-@center by Bil Lewis, Dan LaLiberte,
-@center and the GNU Manual Group
-
-
-@sp 4
-@author The GNU Emacs Lisp Reference Manual --- Vol. 2
-@sp 3
-@author FSF
-
-@end titlepage
-@bye
-
-@ignore
-   arch-tag: 02d65d63-3b64-49bc-a5c0-bfd5eabb6c98
-@end ignore
index 6ab642ca65ca9205a1611b3178a64e3d1a0cb3d8..30ad7ba6ef2713e7e3fce1e646e7163999a3e973 100644 (file)
@@ -1,6 +1,9 @@
 # Unlike most emacs dirs, etc has a simple non-autoconf-generated makefile
 source ^(Makefile)$
 
+# Auto-generated files, which ignore
+precious ^(buildobj\.lst)$
+
 # Generated files (DOC-X is generated on windows)
 backup ^(DOC(|-[0-9.]*|-X))$
 
diff --git a/etc/ChangeLog.unicode b/etc/ChangeLog.unicode
new file mode 100644 (file)
index 0000000..2c93a09
--- /dev/null
@@ -0,0 +1,86 @@
+2007-12-09  Kenichi Handa  <handa@m17n.org>
+
+       * HELLO: Remove non-unicode character from Tibetan text.
+
+2007-01-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-prin1.ps (printBackground): Fix background height.
+
+2006-07-07  Kenichi Handa  <handa@m17n.org>
+
+       * HELLO: Sync with HEAD.
+
+2005-02-12  Miles Bader  <miles@gnu.org>
+
+       * TODO, PROBLEMS, NEWS: Replace references to Emacs version "22"
+       with "23".
+
+2004-02-12  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/CNS-[234567].map: Regenerated.
+
+2004-01-28  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/JISX2131.map: Regenerated.
+
+2004-01-27  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/JISX213A.map: New file.
+
+       * charsets/JISX0208.map: Regenerated.
+
+2004-01-26  Kenichi Handa  <handa@m17n.org>
+
+       * charsets/CP932-2BYTE.map: Updated from ../admin/charsets.
+
+2004-01-25  Kenichi Handa  <handa@m17n.org>
+
+       * CP932-2BYTE.map: New file.
+
+2003-09-26  Kenichi Handa  <handa@m17n.org>
+
+       * ps-prin1.ps (HeaderOrFooterTextLines): Handle multiple strings
+       in a line.
+
+2003-09-08  Kenichi Handa  <handa@m17n.org>
+
+       * charsets: New directory for charset mapping tables.
+
+       * charsets/README: New file.
+
+       * charsets/*.map: New files.
+
+2003-04-12  Kenichi Handa  <handa@m17n.org>
+
+       * HELLO: Change "Hindi" to more common characters.
+
+2003-01-10  Kenichi Handa  <handa@m17n.org>
+
+       * HELLO: Fix upcase and downcase for several languages.  Change
+       the two German lines into one.  Change "Nederlangs" to
+       "Dutch (Nederlands)".  Add original language names to several
+       entries.
+
+2003-01-06  Kenichi Handa  <handa@m17n.org>
+
+       * TUTORIAL.es: Add local variable coding: latin-1.
+
+2002-10-30  Kenichi Handa  <handa@m17n.org>
+
+       * HELLO: Change indian-2-column chars of Hindi line to Unicode
+       chars.
+
+2002-05-27  Dave Love  <fx@gnu.org>
+
+       * HELLO: Add pseudo-maths example.
+
+;; Local Variables:
+;; coding: iso-2022-7bit
+;; End:
+
+    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2007
+       Free Software Foundation, Inc.
+  Copying and distribution of this file, with or without modification,
+  are permitted provided the copyright notice and this notice are preserved.
+
+;;; arch-tag: 3be3b13c-b969-4c9d-8542-66e0b5a3d27a
index d803e7944d4d14c1cb9a086e2adef0ed47c8095c..348ff74457eb9d2bde20810f1779bab1793bc537 100644 (file)
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -5,8 +5,8 @@ Non-ASCII examples:
           Cze\e,B6f\e(B!, Dobr\e,B}\e(B den, \e,L7T`PRabRcYbU\e(B!, \e,FCei\\e(B \e,Fsar\e(B, \e$,1J2J0J;J0J@JOJ=J1J0\e(B
   Africa: \e$(3!A!,!>\e(B
   Middle/Near East: \e,Hylem\e(B, \e(38R\e(47d\e(3T!JSa\e(4W\e(3W\e(B
-  South Asia: \e4\e$,4!8v#")\e0\e$,15h\e1\e4\e$,4!hv#")\e0\e$,15n\e1\e4\e$,4!zv#!)v#")v#"D\e0\e$,15x6-5d6'\e1\e(B, \e4\e$,44Kv#4z\e0\e$,1?(\e1\e4\e$,44hv#4zv#4\7f\e0\e$,1?.\e1\e4\e$,44qv#4{v#3Q\e0\e$,1?8?M>u?>\e1\e4\e$,44av#4z\e0\e$,1?0\e1\e(B, \e4\e$,46<\e0\e$,1@H\e1\e4\e$,46A\e0\e$,1@N\e1\e4\e$,46Kv#6Vv#6)v#6M\e0\e$,1@X@m@5@^\e1\e4\e$,46Cv#6W\e0\e$,1@P@"\e1\e(B, \e4\e$,4*U\e0\e$,1<U\e1\e4\e$,4*M\e0\e$,1<C\e1\e4\e$,4*Hv#)b\e0\e$,1<5<m\e1\e4\e$,4*H\e0\e$,1<5\e1\e4\e$,4*Qv#)b\e0\e$,1<N<m\e1\e(B, \e4\e$(7"7\e0"7\e1\e4$P\e0"!#C"Q\e1!;\e4"Er'"S\e0"E"S\e1\e4"G\e0"G\e1!;\e4"7\e0"7\e1\e4"2r'"[\e0"2"[\e1!;\e4"Dr'"[\e0"D"[\e1\e4"#\e0"#\e1\e4"G\e0"G\e1!>\e(B
-  South East Asia: \e(1JP:R-\e04U\e1\e(B, \e,TJ\e0GQ\e1J\e04U\e1$\e0CQ\e1:\e(B, Ch\e,1`\e(Bo b\e,1U\e(Bn
+  South Asia: \e$,15h5n5x6-5d6'\e(B, \e$,1?(?.?8?M>u?>?0\e(B, \e$,1@H@N@X@m@5@^@P@"\e(B, \e$,1<U<C<5<m<5<N<m\e(B, \e$(7"7"!#C!;"E"S"G!;"7"2"[!;"D"["#"G!>\e(B
+  South East Asia: \e(1JP:R-4U\e(B, \e,TJGQJ4U$CQ:\e(B, Ch\e,1`\e(Bo b\e,1U\e(Bn
   East Asia: \e$ADc:C\e(B, \e$(0*/=(\e(B, \e$B$3$s$K$A$O\e(B, \e$(C>H3gGO<<?d\e(B
   Misc: E\e,C6\e(Bo\e,C~\e(Ban\e,Cx\e(Bo \e,Cf\e(Biu\e,C<\e(Ba\e,C}\e(Bde, \e$,2(3(1('('(5\e(B, \e$,1x \e(B p \e$,1x(\e(B world \e$,1s"\e(B hello p  \e$,2!a\e(B
   CJK variety: GB(\e$AT*Fx\e(B,\e$A?*7"\e(B), BIG5(\e$(0&x86\e(B,\e$(0DeBv\e(B), JIS(\e$B855$\e(B,\e$B3+H/\e(B), KSC(\e$(Cj*Q(\e(B,\e$(CKR[!\e(B)
@@ -14,51 +14,51 @@ Non-ASCII examples:
 
 LANGUAGE (NATIVE NAME) HELLO
 ---------------------- -----
-Amharic (\e$(3"c!<!N"^\e(B)      \e$(3!A!,!>\e(B
-Arabic \e(38R\e(47d\e(3T!JSa\e(4W\e(3W\e(B
+Amharic (\e$,1O M[MmN{\e(B)      \e$,1M`MKM]\e(B
+Arabic (\e,GIqjHQYdG\e(B)        \e,GecjdY\e(B \e,GeGdqSdG\e(B
 Braille        \e$,2(3(1('('(5\e(B
-Bulgarian (\e,LQj[SP`aZX\e(B)    \e,L7T`PRUYbU\e(B
 C      printf ("Hello, world!\n");
-Czech (\e,Bh\e(Be\e,B9\e(Btina)    Dobr\e,B}\e(B den
+Czech (\e,Bh\e(Be\e,B9\e(Btina)    Dobr\e,A}\e(B den
 Danish (dansk) Hej, Goddag, Hall\e,Ax\e(Bj
+Dutch (Nederlands)     Hallo, Dag
 Emacs  emacs --no-splash -f view-hello-file
-English [\e,0p U\e(B-\e,0EZ L\e(B] Hello
+English [\e$(O+S\e(Bi\e,D?\e(B-gli\e$(O*h\e(B]       Hello
 Esperanto      Saluton (E\e,C6\e(Bo\e,C~\e(Ban\e,Cx\e(Bo \e,Cf\e(Biu\e,C<\e(Ba\e,C}\e(Bde)
-Estonian (eesti)       Tere p\e,Ad\e(Bevast, Tere \e,Au\e(Bhtust
-Finnish (suomi)        Hei, Hyv\e,Add\e(B p\e,Ad\e(Biv\e,Add\e(B
+Estonian (eesti keel)  Tere p\e,Ad\e(Bevast, Tere \e,Au\e(Bhtust
+Finnish (Suomi)        Hei, Hyv\e,Add\e(B p\e,Ad\e(Biv\e,Add\e(B
 French (fran\e,Ag\e(Bais)        Bonjour, Salut
 Georgian (\e$,1JEJ0J@J7J5J4J:J8\e(B)     \e$,1J2J0J;J0J@JOJ=J1J0\e(B
 German (Deutsch)       Guten Tag, Gr\e,A|_\e(B Gott
 Greek (\e,Fekkgmij\\e(B) \e,FCei\\e(B \e,Fsar\e(B
-Hebrew (\e,Hraxiz\e(B)   \e,Hylem\e(B
+Hebrew (\e,Hzixar\e(B)   \e,Hylem\e(B
 Hungarian (magyar)     Sz\e,Bi\e(Bp j\e,Bs\e(B napot!
-Hindi (\e4\e$,4!}t%"+\e0\e$,15y5\7f5B\e1\e4\e$,4!.v#"Yv#"2\e0\e$,15f6 \e1\e(B)      \e4\e$,4!8v#")\e0\e$,15h\e1\e4\e$,4!hv#")\e0\e$,15n\e1\e4\e$,4!zv#!)v#")v#"D\e0\e$,15x6-5d6'\e1\e(B, \e4\e$,4!8v#")\e0\e$,15h\e1\e4\e$,4!hv#")\e0\e$,15n\e1\e4\e$,4!zv# ev#"Rv#")\e0\e$,15x6-5U5~\e1\e4\e$,4!nv#"W\e0\e$,15p\e1\e(B \e4\e$,4 J\e0\e$,16D\e1\e(B
+Hindi (\e$,15y5\7f5B5f6 \e(B)      \e$,15h5n5x6-5d6'\e(B, \e$,15h5n5x6-5U5~5p\e(B \e$,16D\e(B
 Italian (italiano)     Ciao, Buon giorno
 Javanese (Jawa)        System.out.println("Halo, selamat sore!");
-Kannada (\e4\e$,43Ov#4z\e0\e$,1>u\e1\e4\e$,44Kv#4zv#4M\e0\e$,1?(?M?(\e1\e4\e$,43sv#4z\e0\e$,1?!\e1\e(B)        \e4\e$,44Kv#4z\e0\e$,1?(\e1\e4\e$,44hv#4zv#4\7f\e0\e$,1?.\e1\e4\e$,44qv#4{v#3Q\e0\e$,1?8?M>u?>\e1\e4\e$,44av#4z\e0\e$,1?0\e1\e(B
-Lao (\e(1>RJRERG\e(B)    \e(1JP:R-\e04U\e1\e(B, \e0\e(1"m\e1c\e0Ki\e1b*!\e04U\e1\e(B
-Malayalam (\e4\e$,46A\e0\e$,1@N\e1\e4\e$,46E\e0\e$,1@R\e1\e4\e$,46Bv#6M\e0\e$,1@O@^\e1\e4\e$,46Fv#6W\e0\e$,1@S@"\e1\e(B)    \e4\e$,46<\e0\e$,1@H\e1\e4\e$,46A\e0\e$,1@N\e1\e4\e$,46Kv#6Vv#6)v#6M\e0\e$,1@X@m@5@^\e1\e4\e$,46Cv#6W\e0\e$,1@P@"\e1\e(B
+Kannada (\e$,1>u?(?M?(?!\e(B)    \e$,1?(?.?8?M>u?>?0\e(B
+Lao (\e(1>RJRERG\e(B)    \e(1JP:R-4U\e(B, \e(1"mcKib*!4U\e(B
+Malayalam (\e$,1@N@R@O@^@S@"\e(B)        \e$,1@H@N@X@m@5@^@P@"\e(B
 Maltese (il-Malti)     Bon\e,Cu\e(Bu, Sa\e,C11\e(Ba
-Mathematics    \e$,1x \e(B p \e$,1x(\e(B world \e$,1s"\e(B hello p  \e$,2!a\e(B
+Mathematics    \e$B"O\e(B p \e$A!J\e(B world \e$(O#@\e(B hello p  \e$A!u\e(B
 Nederlands, Vlaams     Hallo, Dag
 Norwegian (norsk)      Hei, God dag
-Polish (polski)        Dzie\e,Bq\e(B dobry! Cze\e,B6f\e(B!
+Polish  (j\e,Bj\e(Bzyk polski)   Dzie\e,Bq\e(B dobry! Cze\e,B6f\e(B!
 Russian (\e,L`caaZXY\e(B)        \e,L7T`PRabRcYbU\e(B!
-Slovak (sloven\e,Bh\e(Bina)      Dobr\e,B}\e(B de\e,Br\e(B
+Slovak (sloven\e,Bh\e(Bina)      Dobr\e,A}\e(B de\e,Br\e(B
 Slovenian (sloven\e,B9h\e(Bina)  Pozdravljeni!
 Spanish (espa\e,Aq\e(Bol)        \e,A!\e(BHola!
-Swedish (svenska)      Hej, Goddag, Hall\e,Ae\e(B
-Tamil (\e4\e$,4*N\e0\e$,1<D\e1\e4\e$,4(i\e0\e$,1<N<_\e1\e4\e$,4*Vv#)b\e0\e$,1<T<m\e1\e(B)      \e4\e$,4*U\e0\e$,1<U\e1\e4\e$,4*M\e0\e$,1<C\e1\e4\e$,4*Hv#)b\e0\e$,1<5<m\e1\e4\e$,4*H\e0\e$,1<5\e1\e4\e$,4*Qv#)b\e0\e$,1<N<m\e1\e(B
-Thai (\e,T@RIRd7B\e(B)   \e,TJ\e0GQ\e1J\e04U\e1$\e0CQ\e1:\e(B, \e,TJ\e0GQ\e1J\e04U\e1\e0$h\e1P\e(B
-Tibetan (\e4\e$(7"7r'"]\e0"7"]\e1\e4"2\e0"2\e1!;\e4%P\e0"G#!"Q\e1\e4"2\e0"2\e1!;\e(B)        \e4\e$(7"7\e0"7\e1\e4$P\e0"!#C"Q\e1!;\e4"Er'"S\e0"E"S\e1\e4"G\e0"G\e1!;\e4"7\e0"7\e1\e4"2r'"[\e0"2"[\e1!;\e4"Dr'"[\e0"D"[\e1\e4"#\e0"#\e1\e4"G\e0"G\e1!>\e(B
-Tigrigna (\e$(3"8#r!N"^\e(B)     \e$(3!Q!,!<"8\e(B
-Turkish (T\e,M|\e(Brk\e,Mg\e(Be)   Merhaba
+Swedish (p\e,Ae\e(B svenska)     Hej, Goddag, Hall\e,Ae\e(B
+Tamil (\e$,1<D<N<_<T<m\e(B)      \e$,1<U<C<5<m<5<N<m\e(B
+Thai (\e,T@RIRd7B\e(B)   \e,TJGQJ4U$CQ:\e(B, \e,TJGQJ4U$hP\e(B
+Tibetan (\e$(7"7"]"2!;"G#!"2!;\e(B)      \e$(7"7"!#C!;"E"S"G!;"7"2"[!;"D"["#"G!>\e(B
+Tigrigna (\e$,1NUP-MmN{\e(B)     \e$,1MpMKM[NU\e(B
+Turkish (T\e,A|\e(Brk\e,Ag\e(Be)   Merhaba
 Ukrainian (\e,LcZ`Pw]alZP\e(B)   \e,L2vbPn\e(B
-Vietnamese (Ti\e,1*\e(Bng Vi\e,1.\e(Bt)    Ch\e,1`\e(Bo b\e,1U\e(Bn
+Vietnamese (ti\e,1*\e(Bng Vi\e,1.\e(Bt)    Ch\e,A`\e(Bo b\e,1U\e(Bn
 
 Japanese (\e$BF|K\8l\e(B)        \e$B$3$s$K$A$O\e(B, \e(I:]FAJ\e(B
 Chinese (\e$AVPND\e(B,\e$AFUM(;0\e(B,\e$A::So\e(B)   \e$ADc:C\e(B
-Cantonese (\e$(0GnM$\e(B,\e$(0N]0*Hd\e(B)  \e$(0*/=(\e(B, \e$(0+$)p\e(B
+Cantonese (\e$(0GnM$\e(B,\e$(Gl]\e$(00*Hd\e(B)      \e$(0*/=(\e(B, \e$(0+$)p\e(B
 Korean (\e$(CGQ1[\e(B)   \e$(C>H3gGO<<?d\e(B, \e$(C>H3gGO=J4O1n\e(B
 
 \f
index b10fafa5334771772d9ae93d47545129d25bf3e8..6cf4a1e1fbab3014abb198a4330e0a2ff9ff01a4 100644 (file)
@@ -201,13 +201,6 @@ Several are for Debian GNU/Linux in particular.
  * JDEE: <URL:http://jdee.sunsite.dk/>
    Provides a Java development environment for Emacs.
 
- * Mule-UCS: Universal enCoding System:
-   <URL:ftp://ftp.m17n.org/pub/mule/Mule-UCS/>
-   Extended coding systems for Mule, specifically for reading and
-   writing UTF-8 encoded Unicode.  This probably doesn't have much
-   advantage over the built-in `mule-utf-8' coding system with
-   `utf-translate-cjk' turned on.
-
  * Mailcrypt:
    <URL:http://mailcrypt.sourceforge.net/>
    PGP and GPG support.  PGP isn't free software, but GPG, the GNU
diff --git a/etc/NEWS.unicode b/etc/NEWS.unicode
new file mode 100644 (file)
index 0000000..bdeb76b
--- /dev/null
@@ -0,0 +1,275 @@
+GNU Emacs NEWS -- history of user-visible changes.
+
+Copyright (C) 2007 Free Software Foundation, Inc.
+Copyright (C) 2007
+  National Institute of Advanced Industrial Science and Technology (AIST)
+  Registration Number H14PRO021
+See the end of the file for license conditions.
+
+Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
+If possible, use M-x report-emacs-bug.
+
+This file is about changes in the Emacs "unicode" branch.
+
+\f
+* Changes in Emacs Unicode
+
+** The Emacs character set is now a superset of Unicode.  
+(It has about four times the code space, which should be plenty).
+
+The internal encoding used for buffers and strings is now
+Unicode-based and called `utf-8-emacs'.  utf-8-emacs is backwards
+compatible with the UTF-8 encoding of Unicode.  The `emacs-mule'
+coding system can still read and write data in the old internal
+encoding.
+
+Since the internal encoding is also used by default for byte-compiled
+files -- i.e. the normal coding system for byte-compiled Lisp files is
+now utf-8-Emacs -- Lisp containing non-ASCII characters which is
+compiled by Emacs 23 can't be read by earlier versions of Emacs.  Files
+compiled by Emacs 20, 21, or 22 are loaded correctly as emacs-mule
+(whether or not they contain multibyte characters), which makes loading
+them somewhat slower than Emacs 23-compiled files.  Thus it may be worth
+recompiling existing .elc files which don't need to be shared with older
+Emacsen.
+
+** There are assorted new coding systems/aliases -- see
+M-x list-coding-systems.
+
+** New charset implementation with many new charsets.
+See M-x list-character-sets.  New charsets can be defined conveniently
+as tables of unicodes.
+
+The dimension of a charset is now 0, 1, 2, or 3, and the size of each
+dimension is no longer limited to 94 or 96.
+
+A dynamic charset priority list is used to infer the charset of
+characters for display.
+
+** New minor mode Auto Composition Mode composes characters automatically
+when they are displayed.  This mode is globally on by default.
+
+** Emacs now supports local fonts (fonts installed in the same machine
+as Emacs is running) by freetype and fontconfig libraries.  On X, they
+are drived via Xft library with antialias support.  Fontconfig-like
+font names (e.g. monospace-12) are also accepted.
+
+** New language environments Chinese-GBK, Chinese-GB18030, and
+TaiViet.
+
+** The following facilities are obsolete:
+
+Minor modes: unify-8859-on-encoding-mode, unify-8859-on-decoding-mode
+
+\f
+* Lisp changes in Emacs Unicode
+
+** Character code, representation, and charset changes.
+
+Now character code space is 0x0..0x3FFFFF with no gap.  Among them,
+characters of code 0x0..0x10FFFF are Unicode characters of the same
+code points.  Characters of code 0x3FFF80..0x3FFFFF are raw 8-bit
+bytes.
+
+Generic characters no longer exist.  
+
+In buffer and string, characters are represented by UTF-8 byte
+sequence in a multibyte buffer/string.
+
+The concept of charset is changed.  A single character may belong to
+multiple charset (e.g. a-grave (U+00E0) belongs to charsets unicode,
+iso-8859-1, iso-8859-3, and etc).
+
+*** The new function `characterp' returns t if and only if the argument
+is a character.
+
+*** The new function `max-char' returns the maximum character code
+(currently it is #x3FFFFF).
+
+*** The function `encode-char' and `decode-char' now accepts any
+character sets.
+
+*** The function `define-charset' now accepts completely different
+form of argments (old-style arguments still works).
+
+*** The new function `define-charset-alias' defines an alias of a
+charset.
+
+*** The value of the function `char-charset' depends of the current
+priorities of charsets.
+
+*** The new function `charset-priority-list' returns the list of
+charsets ordered by priority.
+
+*** The new function `set-charset-priority' sets pliorities of
+charsets.
+
+*** The new function `unibyte-charset' returns the current unibyte
+charset.  The unibyte charset determins how unibyte/multibyte
+conversion is done.
+
+*** The new function `set-unibyte-charset' sets the unibyte charset.
+
+*** The new function `unibyte-string' make a unibyte string from
+bytes.
+
+** Code conversion changes
+
+*** The new function `define-coding-system' should be used to define a
+coding system instead of `make-coding-system' (which is obsolete now).
+
+*** The functions `encode-coding-region' and `decode-coding-region'
+have the optional 4th argument to specify where the result of
+conversion should go.
+
+*** The functions `encode-coding-string' and `decode-coding-string'
+have the optional 4th argument specifying a buffer to store the result
+of conversion.
+
+*** The new fuction `with-coding-priority' executs the body part with
+the specified coding system priority order.
+
+*** The new function `check-coding-systems-region' checks if the text
+in the region is encodable by the specified coding systems.
+
+*** The new function `coding-system-aliases' returns a list of aliases
+of a coding system.
+
+*** The new function `coding-system-charset-list' returns a list of
+charsets supported by a coding system.
+
+*** The new funciton `coding-system-priority-list' returns a list of
+coding systems ordered by their priorities.
+
+*** Thew new function `set-coding-system-priority' sets priorities of
+coding systems.
+
+** Composition changes
+
+*** New functions and variables `auto-composition-mode' and
+`global-auto-composition-mode' toggles the new minor mode Auto
+Composition Mode locally and globally.
+
+*** New variable `auto-composition-function' is a function used in
+Auto Composition Mode to compose characters.  The default value is the
+function `auto-compose-chars'.
+
+*** New variable `auto-compose-current-font' is set to the current
+font-object while characters are being composed in Auto Composition
+Mode.
+
+** Font Backend changes.
+
+*** New frame parameter `font-backend' specifies a list of
+font-backends supported by the frame's graphic device.  On X, they are
+currently `x' and `xft'.
+
+*** New function `fontp' checks if the argument is a font-spec
+or font-entity.
+
+*** New function `font-spec' creates a new font-spec object.
+
+*** New function `font-get' returns a font property value.
+
+*** New function `font-put' sets a font property value.
+
+*** New function `list-fonts' returns a list of font-entities matching
+with the give specificaiton.
+
+*** New function `list-families' returns a list family names of
+available fonts.
+
+*** New function `font-font' returns a font-entity best matching with
+the given specification.
+
+*** New function `font-xlfd-name' returns an XLFD name of a give font
+(font-spec, font-entity, or font-object).
+
+*** New function `clear-font-cache' clears all font caches.
+
+** The function get-char-code-property now accepts many Unicode base
+character properties.  They are `name', `general-category',
+`canonical-combining-class', `bidi-class', `decomposition',
+`decimal-digit-value', `digit-value', `numeric-value', `mirrord',
+`old-name', `iso-10646-comment', `uppercase', `lowercase', and
+`titlecase'.
+
+** Thew new function `define-char-code-property' defines a character
+code property.
+
+** The new function `char-code-property-description' returns the
+description string of a cahracter code property.
+
+*** The new variable `find-word-boundary-function-table' is a
+char-table of functions to search for a word boundary.
+
+*** The new variable `char-script-table' is a char-table of script
+names.
+
+*** The new variable `char-width-table' is a char-table of character
+widths.
+
+*** The new variable `print-charset-text-property' controls how to
+handle `charset' text property on printing a string.
+
+*** Thew new variable `printable-chars' is a char-table defining if a
+character is printable or not.
+
+*** The new function `robin-define-package' defines a Robin package
+which is an input method system different from Quail.
+
+*** The new function `robin-modify-package' modifies an existing Robin
+package.
+
+*** The new function `robin-use-package' start using a Robin package
+as an input method.
+
+** The functions `modify-syntax-entry' and `modify-category-entry' now
+accepts a cons of characters as the first argument, and modify all
+entries in that range of characters.
+
+** The function `set-fontset-font' now accepts a script name as the
+second argument, and has the optional 5th argument to control how to
+set the font.
+
+** The functions `char-bytes', `chars-in-region', `set-coding-priority',
+, `make-coding-system', and `char-valid-p' are now obsolete.
+
+\f
+* Incompatible Lisp changes
+
+** The behavior of map-char-table has changed.  It may call the
+specified function with a cons (FROM . TO) as a key if characters in
+that range has the same value.
+
+** The value of the function `charset-id' is now always 0.
+
+** The functions `register-char-codings' and `coding-system-spec' are
+deleted.
+
+\f
+----------------------------------------------------------------------
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.
+
+\f
+Local variables:
+mode: outline
+paragraph-separate: "[         \f]*$"
+end:
+
+arch-tag: e21801b9-0724-4cda-8c07-7d60bf3db3fd
index 21d4d695a17ff8641131e3266f78a2b381a66052..45202e7e057409198cdd667d02919b2f66335242 100644 (file)
@@ -8,6 +8,10 @@ This file describes various problems that have been encountered
 in compiling, installing and running GNU Emacs.  Try doing Ctl-C Ctl-t
 and browsing through the outline headers.
 
+* Mule-UCS doesn't work in Emacs 23.
+
+It's completely redundant now, as far as we know.
+
 * Emacs startup failures
 
 ** Emacs fails to start, complaining about missing fonts.
index 2ebbc46443413f85022be424b0836e0c8bbc71bf..495c4dbc536aa12caaef2d0ed448130312223a17 100644 (file)
--- a/etc/TODO
+++ b/etc/TODO
@@ -397,7 +397,7 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
   (with ASCIIfied fallback via latin1-disp).  Examples include
   box-drawing graphics in Custom buffers, W3 rules and tables, and
   tree displays generally, mode-line mail indicator.  [See work done
-  already for Emacs 22 and consult fx.]
+  already for Emacs 23 and consult fx.]
 
 ** Do something to make rms happy with fx's dynamic loading, and use it
   to implement things like auto-loaded buffer parsers and database
diff --git a/etc/charsets/8859-10.map b/etc/charsets/8859-10.map
new file mode 100644 (file)
index 0000000..274d7d8
--- /dev/null
@@ -0,0 +1,66 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-10
+0x00-0xA0 0x0000
+0xA1 0x0104
+0xA2 0x0112
+0xA3 0x0122
+0xA4 0x012A
+0xA5 0x0128
+0xA6 0x0136
+0xA7 0x00A7
+0xA8 0x013B
+0xA9 0x0110
+0xAA 0x0160
+0xAB 0x0166
+0xAC 0x017D
+0xAD 0x00AD
+0xAE 0x016A
+0xAF 0x014A
+0xB0 0x00B0
+0xB1 0x0105
+0xB2 0x0113
+0xB3 0x0123
+0xB4 0x012B
+0xB5 0x0129
+0xB6 0x0137
+0xB7 0x00B7
+0xB8 0x013C
+0xB9 0x0111
+0xBA 0x0161
+0xBB 0x0167
+0xBC 0x017E
+0xBD 0x2015
+0xBE 0x016B
+0xBF 0x014B
+0xC0 0x0100
+0xC1-0xC6 0x00C1
+0xC7 0x012E
+0xC8 0x010C
+0xC9 0x00C9
+0xCA 0x0118
+0xCB 0x00CB
+0xCC 0x0116
+0xCD-0xD0 0x00CD
+0xD1 0x0145
+0xD2 0x014C
+0xD3-0xD6 0x00D3
+0xD7 0x0168
+0xD8 0x00D8
+0xD9 0x0172
+0xDA-0xDF 0x00DA
+0xE0 0x0101
+0xE1-0xE6 0x00E1
+0xE7 0x012F
+0xE8 0x010D
+0xE9 0x00E9
+0xEA 0x0119
+0xEB 0x00EB
+0xEC 0x0117
+0xED-0xF0 0x00ED
+0xF1 0x0146
+0xF2 0x014D
+0xF3-0xF6 0x00F3
+0xF7 0x0169
+0xF8 0x00F8
+0xF9 0x0173
+0xFA-0xFE 0x00FA
+0xFF 0x0138
diff --git a/etc/charsets/8859-11.map b/etc/charsets/8859-11.map
new file mode 100644 (file)
index 0000000..0cf1dc5
--- /dev/null
@@ -0,0 +1,5 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-11
+0x00-0x7F 0x0000
+0xA0 0x00A0
+0xA1-0xDA 0x0E01
+0xDF-0xFB 0x0E3F
diff --git a/etc/charsets/8859-13.map b/etc/charsets/8859-13.map
new file mode 100644 (file)
index 0000000..73cbb25
--- /dev/null
@@ -0,0 +1,77 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-13
+0x00-0xA0 0x0000
+0xA1 0x201D
+0xA2-0xA4 0x00A2
+0xA5 0x201E
+0xA6-0xA7 0x00A6
+0xA8 0x00D8
+0xA9 0x00A9
+0xAA 0x0156
+0xAB-0xAE 0x00AB
+0xAF 0x00C6
+0xB0-0xB3 0x00B0
+0xB4 0x201C
+0xB5-0xB7 0x00B5
+0xB8 0x00F8
+0xB9 0x00B9
+0xBA 0x0157
+0xBB-0xBE 0x00BB
+0xBF 0x00E6
+0xC0 0x0104
+0xC1 0x012E
+0xC2 0x0100
+0xC3 0x0106
+0xC4-0xC5 0x00C4
+0xC6 0x0118
+0xC7 0x0112
+0xC8 0x010C
+0xC9 0x00C9
+0xCA 0x0179
+0xCB 0x0116
+0xCC 0x0122
+0xCD 0x0136
+0xCE 0x012A
+0xCF 0x013B
+0xD0 0x0160
+0xD1 0x0143
+0xD2 0x0145
+0xD3 0x00D3
+0xD4 0x014C
+0xD5-0xD7 0x00D5
+0xD8 0x0172
+0xD9 0x0141
+0xDA 0x015A
+0xDB 0x016A
+0xDC 0x00DC
+0xDD 0x017B
+0xDE 0x017D
+0xDF 0x00DF
+0xE0 0x0105
+0xE1 0x012F
+0xE2 0x0101
+0xE3 0x0107
+0xE4-0xE5 0x00E4
+0xE6 0x0119
+0xE7 0x0113
+0xE8 0x010D
+0xE9 0x00E9
+0xEA 0x017A
+0xEB 0x0117
+0xEC 0x0123
+0xED 0x0137
+0xEE 0x012B
+0xEF 0x013C
+0xF0 0x0161
+0xF1 0x0144
+0xF2 0x0146
+0xF3 0x00F3
+0xF4 0x014D
+0xF5-0xF7 0x00F5
+0xF8 0x0173
+0xF9 0x0142
+0xFA 0x015B
+0xFB 0x016B
+0xFC 0x00FC
+0xFD 0x017C
+0xFE 0x017E
+0xFF 0x2019
diff --git a/etc/charsets/8859-14.map b/etc/charsets/8859-14.map
new file mode 100644 (file)
index 0000000..7ed135c
--- /dev/null
@@ -0,0 +1,39 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-14
+0x00-0xA0 0x0000
+0xA1-0xA2 0x1E02
+0xA3 0x00A3
+0xA4-0xA5 0x010A
+0xA6 0x1E0A
+0xA7 0x00A7
+0xA8 0x1E80
+0xA9 0x00A9
+0xAA 0x1E82
+0xAB 0x1E0B
+0xAC 0x1EF2
+0xAD-0xAE 0x00AD
+0xAF 0x0178
+0xB0-0xB1 0x1E1E
+0xB2-0xB3 0x0120
+0xB4-0xB5 0x1E40
+0xB6 0x00B6
+0xB7 0x1E56
+0xB8 0x1E81
+0xB9 0x1E57
+0xBA 0x1E83
+0xBB 0x1E60
+0xBC 0x1EF3
+0xBD-0xBE 0x1E84
+0xBF 0x1E61
+0xC0-0xCF 0x00C0
+0xD0 0x0174
+0xD1-0xD6 0x00D1
+0xD7 0x1E6A
+0xD8-0xDD 0x00D8
+0xDE 0x0176
+0xDF-0xEF 0x00DF
+0xF0 0x0175
+0xF1-0xF6 0x00F1
+0xF7 0x1E6B
+0xF8-0xFD 0x00F8
+0xFE 0x0177
+0xFF 0x00FF
diff --git a/etc/charsets/8859-15.map b/etc/charsets/8859-15.map
new file mode 100644 (file)
index 0000000..621865c
--- /dev/null
@@ -0,0 +1,15 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-15
+0x00-0xA3 0x0000
+0xA4 0x20AC
+0xA5 0x00A5
+0xA6 0x0160
+0xA7 0x00A7
+0xA8 0x0161
+0xA9-0xB3 0x00A9
+0xB4 0x017D
+0xB5-0xB7 0x00B5
+0xB8 0x017E
+0xB9-0xBB 0x00B9
+0xBC-0xBD 0x0152
+0xBE 0x0178
+0xBF-0xFF 0x00BF
diff --git a/etc/charsets/8859-16.map b/etc/charsets/8859-16.map
new file mode 100644 (file)
index 0000000..77360ce
--- /dev/null
@@ -0,0 +1,59 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-16
+0x00-0xA0 0x0000
+0xA1-0xA2 0x0104
+0xA3 0x0141
+0xA4 0x20AC
+0xA5 0x201E
+0xA6 0x0160
+0xA7 0x00A7
+0xA8 0x0161
+0xA9 0x00A9
+0xAA 0x0218
+0xAB 0x00AB
+0xAC 0x0179
+0xAD 0x00AD
+0xAE-0xAF 0x017A
+0xB0-0xB1 0x00B0
+0xB2 0x010C
+0xB3 0x0142
+0xB4 0x017D
+0xB5 0x201D
+0xB6-0xB7 0x00B6
+0xB8 0x017E
+0xB9 0x010D
+0xBA 0x0219
+0xBB 0x00BB
+0xBC-0xBD 0x0152
+0xBE 0x0178
+0xBF 0x017C
+0xC0-0xC2 0x00C0
+0xC3 0x0102
+0xC4 0x00C4
+0xC5 0x0106
+0xC6-0xCF 0x00C6
+0xD0 0x0110
+0xD1 0x0143
+0xD2-0xD4 0x00D2
+0xD5 0x0150
+0xD6 0x00D6
+0xD7 0x015A
+0xD8 0x0170
+0xD9-0xDC 0x00D9
+0xDD 0x0118
+0xDE 0x021A
+0xDF-0xE2 0x00DF
+0xE3 0x0103
+0xE4 0x00E4
+0xE5 0x0107
+0xE6-0xEF 0x00E6
+0xF0 0x0111
+0xF1 0x0144
+0xF2-0xF4 0x00F2
+0xF5 0x0151
+0xF6 0x00F6
+0xF7 0x015B
+0xF8 0x0171
+0xF9-0xFC 0x00F9
+0xFD 0x0119
+0xFE 0x021B
+0xFF 0x00FF
diff --git a/etc/charsets/8859-2.map b/etc/charsets/8859-2.map
new file mode 100644 (file)
index 0000000..7fecd24
--- /dev/null
@@ -0,0 +1,86 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-2
+0x00-0xA0 0x0000
+0xA1 0x0104
+0xA2 0x02D8
+0xA3 0x0141
+0xA4 0x00A4
+0xA5 0x013D
+0xA6 0x015A
+0xA7-0xA8 0x00A7
+0xA9 0x0160
+0xAA 0x015E
+0xAB 0x0164
+0xAC 0x0179
+0xAD 0x00AD
+0xAE 0x017D
+0xAF 0x017B
+0xB0 0x00B0
+0xB1 0x0105
+0xB2 0x02DB
+0xB3 0x0142
+0xB4 0x00B4
+0xB5 0x013E
+0xB6 0x015B
+0xB7 0x02C7
+0xB8 0x00B8
+0xB9 0x0161
+0xBA 0x015F
+0xBB 0x0165
+0xBC 0x017A
+0xBD 0x02DD
+0xBE 0x017E
+0xBF 0x017C
+0xC0 0x0154
+0xC1-0xC2 0x00C1
+0xC3 0x0102
+0xC4 0x00C4
+0xC5 0x0139
+0xC6 0x0106
+0xC7 0x00C7
+0xC8 0x010C
+0xC9 0x00C9
+0xCA 0x0118
+0xCB 0x00CB
+0xCC 0x011A
+0xCD-0xCE 0x00CD
+0xCF 0x010E
+0xD0 0x0110
+0xD1 0x0143
+0xD2 0x0147
+0xD3-0xD4 0x00D3
+0xD5 0x0150
+0xD6-0xD7 0x00D6
+0xD8 0x0158
+0xD9 0x016E
+0xDA 0x00DA
+0xDB 0x0170
+0xDC-0xDD 0x00DC
+0xDE 0x0162
+0xDF 0x00DF
+0xE0 0x0155
+0xE1-0xE2 0x00E1
+0xE3 0x0103
+0xE4 0x00E4
+0xE5 0x013A
+0xE6 0x0107
+0xE7 0x00E7
+0xE8 0x010D
+0xE9 0x00E9
+0xEA 0x0119
+0xEB 0x00EB
+0xEC 0x011B
+0xED-0xEE 0x00ED
+0xEF 0x010F
+0xF0 0x0111
+0xF1 0x0144
+0xF2 0x0148
+0xF3-0xF4 0x00F3
+0xF5 0x0151
+0xF6-0xF7 0x00F6
+0xF8 0x0159
+0xF9 0x016F
+0xFA 0x00FA
+0xFB 0x0171
+0xFC-0xFD 0x00FC
+0xFE 0x0163
+0xFF 0x02D9
diff --git a/etc/charsets/8859-3.map b/etc/charsets/8859-3.map
new file mode 100644 (file)
index 0000000..224e6d5
--- /dev/null
@@ -0,0 +1,49 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-3
+0x00-0xA0 0x0000
+0xA1 0x0126
+0xA2 0x02D8
+0xA3-0xA4 0x00A3
+0xA6 0x0124
+0xA7-0xA8 0x00A7
+0xA9 0x0130
+0xAA 0x015E
+0xAB 0x011E
+0xAC 0x0134
+0xAD 0x00AD
+0xAF 0x017B
+0xB0 0x00B0
+0xB1 0x0127
+0xB2-0xB5 0x00B2
+0xB6 0x0125
+0xB7-0xB8 0x00B7
+0xB9 0x0131
+0xBA 0x015F
+0xBB 0x011F
+0xBC 0x0135
+0xBD 0x00BD
+0xBF 0x017C
+0xC0-0xC2 0x00C0
+0xC4 0x00C4
+0xC5 0x010A
+0xC6 0x0108
+0xC7-0xCF 0x00C7
+0xD1-0xD4 0x00D1
+0xD5 0x0120
+0xD6-0xD7 0x00D6
+0xD8 0x011C
+0xD9-0xDC 0x00D9
+0xDD 0x016C
+0xDE 0x015C
+0xDF-0xE2 0x00DF
+0xE4 0x00E4
+0xE5 0x010B
+0xE6 0x0109
+0xE7-0xEF 0x00E7
+0xF1-0xF4 0x00F1
+0xF5 0x0121
+0xF6-0xF7 0x00F6
+0xF8 0x011D
+0xF9-0xFC 0x00F9
+0xFD 0x016D
+0xFE 0x015D
+0xFF 0x02D9
diff --git a/etc/charsets/8859-4.map b/etc/charsets/8859-4.map
new file mode 100644 (file)
index 0000000..57761ce
--- /dev/null
@@ -0,0 +1,71 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-4
+0x00-0xA0 0x0000
+0xA1 0x0104
+0xA2 0x0138
+0xA3 0x0156
+0xA4 0x00A4
+0xA5 0x0128
+0xA6 0x013B
+0xA7-0xA8 0x00A7
+0xA9 0x0160
+0xAA 0x0112
+0xAB 0x0122
+0xAC 0x0166
+0xAD 0x00AD
+0xAE 0x017D
+0xAF-0xB0 0x00AF
+0xB1 0x0105
+0xB2 0x02DB
+0xB3 0x0157
+0xB4 0x00B4
+0xB5 0x0129
+0xB6 0x013C
+0xB7 0x02C7
+0xB8 0x00B8
+0xB9 0x0161
+0xBA 0x0113
+0xBB 0x0123
+0xBC 0x0167
+0xBD 0x014A
+0xBE 0x017E
+0xBF 0x014B
+0xC0 0x0100
+0xC1-0xC6 0x00C1
+0xC7 0x012E
+0xC8 0x010C
+0xC9 0x00C9
+0xCA 0x0118
+0xCB 0x00CB
+0xCC 0x0116
+0xCD-0xCE 0x00CD
+0xCF 0x012A
+0xD0 0x0110
+0xD1 0x0145
+0xD2 0x014C
+0xD3 0x0136
+0xD4-0xD8 0x00D4
+0xD9 0x0172
+0xDA-0xDC 0x00DA
+0xDD 0x0168
+0xDE 0x016A
+0xDF 0x00DF
+0xE0 0x0101
+0xE1-0xE6 0x00E1
+0xE7 0x012F
+0xE8 0x010D
+0xE9 0x00E9
+0xEA 0x0119
+0xEB 0x00EB
+0xEC 0x0117
+0xED-0xEE 0x00ED
+0xEF 0x012B
+0xF0 0x0111
+0xF1 0x0146
+0xF2 0x014D
+0xF3 0x0137
+0xF4-0xF8 0x00F4
+0xF9 0x0173
+0xFA-0xFC 0x00FA
+0xFD 0x0169
+0xFE 0x016B
+0xFF 0x02D9
diff --git a/etc/charsets/8859-5.map b/etc/charsets/8859-5.map
new file mode 100644 (file)
index 0000000..1de2035
--- /dev/null
@@ -0,0 +1,9 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-5
+0x00-0xA0 0x0000
+0xA1-0xAC 0x0401
+0xAD 0x00AD
+0xAE-0xEF 0x040E
+0xF0 0x2116
+0xF1-0xFC 0x0451
+0xFD 0x00A7
+0xFE-0xFF 0x045E
diff --git a/etc/charsets/8859-6.map b/etc/charsets/8859-6.map
new file mode 100644 (file)
index 0000000..ab57796
--- /dev/null
@@ -0,0 +1,9 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-6
+0x00-0xA0 0x0000
+0xA4 0x00A4
+0xAC 0x060C
+0xAD 0x00AD
+0xBB 0x061B
+0xBF 0x061F
+0xC1-0xDA 0x0621
+0xE0-0xF2 0x0640
diff --git a/etc/charsets/8859-7.map b/etc/charsets/8859-7.map
new file mode 100644 (file)
index 0000000..9f196c3
--- /dev/null
@@ -0,0 +1,16 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-7
+0x00-0xA0 0x0000
+0xA1-0xA2 0x2018
+0xA3 0x00A3
+0xA6-0xA9 0x00A6
+0xAB-0xAD 0x00AB
+0xAF 0x2015
+0xB0-0xB3 0x00B0
+0xB4-0xB6 0x0384
+0xB7 0x00B7
+0xB8-0xBA 0x0388
+0xBB 0x00BB
+0xBC 0x038C
+0xBD 0x00BD
+0xBE-0xD1 0x038E
+0xD3-0xFE 0x03A3
diff --git a/etc/charsets/8859-8.map b/etc/charsets/8859-8.map
new file mode 100644 (file)
index 0000000..4f53916
--- /dev/null
@@ -0,0 +1,10 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-8
+0x00-0xA0 0x0000
+0xA2-0xA9 0x00A2
+0xAA 0x00D7
+0xAB-0xB9 0x00AB
+0xBA 0x00F7
+0xBB-0xBE 0x00BB
+0xDF 0x2017
+0xE0-0xFA 0x05D0
+0xFD-0xFE 0x200E
diff --git a/etc/charsets/8859-9.map b/etc/charsets/8859-9.map
new file mode 100644 (file)
index 0000000..6649f28
--- /dev/null
@@ -0,0 +1,12 @@
+# Generated from glibc-2.3.2/localedata/charmaps/ISO-8859-9
+0x00-0xCF 0x0000
+0xD0 0x011E
+0xD1-0xDC 0x00D1
+0xDD 0x0130
+0xDE 0x015E
+0xDF-0xEF 0x00DF
+0xF0 0x011F
+0xF1-0xFC 0x00F1
+0xFD 0x0131
+0xFE 0x015F
+0xFF 0x00FF
diff --git a/etc/charsets/ALTERNATIVNYJ.map b/etc/charsets/ALTERNATIVNYJ.map
new file mode 100644 (file)
index 0000000..cc57de3
--- /dev/null
@@ -0,0 +1,64 @@
+# Modified from ibm866 according to the chart at
+# http://www.cyrillic.com/ref/cyrillic/koi-8alt.html,
+# with guesses for the Unicodes of the glyphs.
+# Generated from glibc-2.3.2/localedata/charmaps/IBM866
+0x00-0x7F 0x0000
+0x80-0xAF 0x0410
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0-0xEF 0x0440
+0xF0 0x0401
+0xF1 0x0451
+0xF2 0x2019
+0xF3 0x2018
+0xF4 0x0301
+0xF5 0x0300
+0xF6 0x203A
+0xF7 0x2039
+0xF8 0x2191
+0xF9 0x2193
+0xFA 0x00B1
+0xFB 0x00F7
+0xFC 0x2116
+0xFD 0x00A4
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/BIG5-1.map b/etc/charsets/BIG5-1.map
new file mode 100644 (file)
index 0000000..22fd7d1
--- /dev/null
@@ -0,0 +1,6217 @@
+Generated from BIG5.map
+0x2121 0x3000
+0x2122 0xFF0C
+0x2123 0x3001
+0x2124 0x3002
+0x2125 0xFF0E
+0x2126 0x2027
+0x2127 0xFF1B
+0x2128 0xFF1A
+0x2129 0xFF1F
+0x212A 0xFF01
+0x212B 0xFE30
+0x212C 0x2026
+0x212D 0x2025
+0x212E 0xFE50
+0x212F 0xFE51
+0x2130 0xFE52
+0x2131 0x00B7
+0x2132 0xFE54
+0x2133 0xFE55
+0x2134 0xFE56
+0x2135 0xFE57
+0x2136 0xFF5C
+0x2137 0x2013
+0x2138 0xFE31
+0x2139 0x2014
+0x213A 0xFE33
+0x213B 0x2574
+0x213C 0xFE34
+0x213D 0xFE4F
+0x213E 0xFF08
+0x213F 0xFF09
+0x2140 0xFE35
+0x2141 0xFE36
+0x2142 0xFF5B
+0x2143 0xFF5D
+0x2144 0xFE37
+0x2145 0xFE38
+0x2146 0x3014
+0x2147 0x3015
+0x2148 0xFE39
+0x2149 0xFE3A
+0x214A 0x3010
+0x214B 0x3011
+0x214C 0xFE3B
+0x214D 0xFE3C
+0x214E 0x300A
+0x214F 0x300B
+0x2150 0xFE3D
+0x2151 0xFE3E
+0x2152 0x3008
+0x2153 0x3009
+0x2154 0xFE3F
+0x2155 0xFE40
+0x2156 0x300C
+0x2157 0x300D
+0x2158 0xFE41
+0x2159 0xFE42
+0x215A 0x300E
+0x215B 0x300F
+0x215C 0xFE43
+0x215D 0xFE44
+0x215E 0xFE59
+0x215F 0xFE5A
+0x2160 0xFE5B
+0x2161 0xFE5C
+0x2162 0xFE5D
+0x2163 0xFE5E
+0x2164 0x2018
+0x2165 0x2019
+0x2166 0x201C
+0x2167 0x201D
+0x2168 0x301D
+0x2169 0x301E
+0x216A 0x2035
+0x216B 0x2032
+0x216C 0xFF03
+0x216D 0xFF06
+0x216E 0xFF0A
+0x216F 0x203B
+0x2170 0x00A7
+0x2171 0x3003
+0x2172 0x25CB
+0x2173 0x25CF
+0x2174 0x25B3
+0x2175 0x25B2
+0x2176 0x25CE
+0x2177 0x2606
+0x2178 0x2605
+0x2179 0x25C7
+0x217A 0x25C6
+0x217B 0x25A1
+0x217C 0x25A0
+0x217D 0x25BD
+0x217E 0x25BC
+0x2221 0x32A3
+0x2222 0x2105
+0x2223 0x00AF
+0x2224 0xFFE3
+0x2225 0xFF3F
+0x2226 0x02CD
+0x2227 0xFE49
+0x2228 0xFE4A
+0x2229 0xFE4D
+0x222A 0xFE4E
+0x222B 0xFE4B
+0x222C 0xFE4C
+0x222D 0xFE5F
+0x222E 0xFE60
+0x222F 0xFE61
+0x2230 0xFF0B
+0x2231 0xFF0D
+0x2232 0x00D7
+0x2233 0x00F7
+0x2234 0x00B1
+0x2235 0x221A
+0x2236 0xFF1C
+0x2237 0xFF1E
+0x2238 0xFF1D
+0x2239 0x2266
+0x223A 0x2267
+0x223B 0x2260
+0x223C 0x221E
+0x223D 0x2252
+0x223E 0x2261
+0x223F 0xFE62
+0x2240 0xFE63
+0x2241 0xFE64
+0x2242 0xFE65
+0x2243 0xFE66
+0x2244 0xFF5E
+0x2245 0x2229
+0x2246 0x222A
+0x2247 0x22A5
+0x2248 0x2220
+0x2249 0x221F
+0x224A 0x22BF
+0x224B 0x33D2
+0x224C 0x33D1
+0x224D 0x222B
+0x224E 0x222E
+0x224F 0x2235
+0x2250 0x2234
+0x2251 0x2640
+0x2252 0x2642
+0x2253 0x2295
+0x2254 0x2299
+0x2255 0x2191
+0x2256 0x2193
+0x2257 0x2190
+0x2258 0x2192
+0x2259 0x2196
+0x225A 0x2197
+0x225B 0x2199
+0x225C 0x2198
+0x225D 0x2225
+0x225E 0x2223
+0x225F 0xFF0F
+0x2260 0xFF3C
+0x2261 0x2215
+0x2262 0xFE68
+0x2263 0xFF04
+0x2264 0xFFE5
+0x2265 0x3012
+0x2266 0xFFE0
+0x2267 0xFFE1
+0x2268 0xFF05
+0x2269 0xFF20
+0x226A 0x2103
+0x226B 0x2109
+0x226C 0xFE69
+0x226D 0xFE6A
+0x226E 0xFE6B
+0x226F 0x33D5
+0x2270 0x339C
+0x2271 0x339D
+0x2272 0x339E
+0x2273 0x33CE
+0x2274 0x33A1
+0x2275 0x338E
+0x2276 0x338F
+0x2277 0x33C4
+0x2278 0x00B0
+0x2279 0x5159
+0x227A 0x515B
+0x227B 0x515E
+0x227C 0x515D
+0x227D 0x5161
+0x227E 0x5163
+0x2321 0x55E7
+0x2322 0x74E9
+0x2323 0x7CCE
+0x2324 0x2581
+0x2325 0x2582
+0x2326 0x2583
+0x2327 0x2584
+0x2328 0x2585
+0x2329 0x2586
+0x232A 0x2587
+0x232B 0x2588
+0x232C 0x258F
+0x232D 0x258E
+0x232E 0x258D
+0x232F 0x258C
+0x2330 0x258B
+0x2331 0x258A
+0x2332 0x2589
+0x2333 0x253C
+0x2334 0x2534
+0x2335 0x252C
+0x2336 0x2524
+0x2337 0x251C
+0x2338 0x2594
+0x2339 0x2500
+0x233A 0x2502
+0x233B 0x2595
+0x233C 0x250C
+0x233D 0x2510
+0x233E 0x2514
+0x233F 0x2518
+0x2340 0x256D
+0x2341 0x256E
+0x2342 0x2570
+0x2343 0x256F
+0x2344 0x2550
+0x2345 0x255E
+0x2346 0x256A
+0x2347 0x2561
+0x2348 0x25E2
+0x2349 0x25E3
+0x234A 0x25E5
+0x234B 0x25E4
+0x234C 0x2571
+0x234D 0x2572
+0x234E 0x2573
+0x234F 0xFF10
+0x2350 0xFF11
+0x2351 0xFF12
+0x2352 0xFF13
+0x2353 0xFF14
+0x2354 0xFF15
+0x2355 0xFF16
+0x2356 0xFF17
+0x2357 0xFF18
+0x2358 0xFF19
+0x2359 0x2160
+0x235A 0x2161
+0x235B 0x2162
+0x235C 0x2163
+0x235D 0x2164
+0x235E 0x2165
+0x235F 0x2166
+0x2360 0x2167
+0x2361 0x2168
+0x2362 0x2169
+0x2363 0x3021
+0x2364 0x3022
+0x2365 0x3023
+0x2366 0x3024
+0x2367 0x3025
+0x2368 0x3026
+0x2369 0x3027
+0x236A 0x3028
+0x236B 0x3029
+0x236D 0x5344
+0x236F 0xFF21
+0x2370 0xFF22
+0x2371 0xFF23
+0x2372 0xFF24
+0x2373 0xFF25
+0x2374 0xFF26
+0x2375 0xFF27
+0x2376 0xFF28
+0x2377 0xFF29
+0x2378 0xFF2A
+0x2379 0xFF2B
+0x237A 0xFF2C
+0x237B 0xFF2D
+0x237C 0xFF2E
+0x237D 0xFF2F
+0x237E 0xFF30
+0x2421 0xFF31
+0x2422 0xFF32
+0x2423 0xFF33
+0x2424 0xFF34
+0x2425 0xFF35
+0x2426 0xFF36
+0x2427 0xFF37
+0x2428 0xFF38
+0x2429 0xFF39
+0x242A 0xFF3A
+0x242B 0xFF41
+0x242C 0xFF42
+0x242D 0xFF43
+0x242E 0xFF44
+0x242F 0xFF45
+0x2430 0xFF46
+0x2431 0xFF47
+0x2432 0xFF48
+0x2433 0xFF49
+0x2434 0xFF4A
+0x2435 0xFF4B
+0x2436 0xFF4C
+0x2437 0xFF4D
+0x2438 0xFF4E
+0x2439 0xFF4F
+0x243A 0xFF50
+0x243B 0xFF51
+0x243C 0xFF52
+0x243D 0xFF53
+0x243E 0xFF54
+0x243F 0xFF55
+0x2440 0xFF56
+0x2441 0xFF57
+0x2442 0xFF58
+0x2443 0xFF59
+0x2444 0xFF5A
+0x2445 0x0391
+0x2446 0x0392
+0x2447 0x0393
+0x2448 0x0394
+0x2449 0x0395
+0x244A 0x0396
+0x244B 0x0397
+0x244C 0x0398
+0x244D 0x0399
+0x244E 0x039A
+0x244F 0x039B
+0x2450 0x039C
+0x2451 0x039D
+0x2452 0x039E
+0x2453 0x039F
+0x2454 0x03A0
+0x2455 0x03A1
+0x2456 0x03A3
+0x2457 0x03A4
+0x2458 0x03A5
+0x2459 0x03A6
+0x245A 0x03A7
+0x245B 0x03A8
+0x245C 0x03A9
+0x245D 0x03B1
+0x245E 0x03B2
+0x245F 0x03B3
+0x2460 0x03B4
+0x2461 0x03B5
+0x2462 0x03B6
+0x2463 0x03B7
+0x2464 0x03B8
+0x2465 0x03B9
+0x2466 0x03BA
+0x2467 0x03BB
+0x2468 0x03BC
+0x2469 0x03BD
+0x246A 0x03BE
+0x246B 0x03BF
+0x246C 0x03C0
+0x246D 0x03C1
+0x246E 0x03C3
+0x246F 0x03C4
+0x2470 0x03C5
+0x2471 0x03C6
+0x2472 0x03C7
+0x2473 0x03C8
+0x2474 0x03C9
+0x2475 0x3105
+0x2476 0x3106
+0x2477 0x3107
+0x2478 0x3108
+0x2479 0x3109
+0x247A 0x310A
+0x247B 0x310B
+0x247C 0x310C
+0x247D 0x310D
+0x247E 0x310E
+0x2521 0x310F
+0x2522 0x3110
+0x2523 0x3111
+0x2524 0x3112
+0x2525 0x3113
+0x2526 0x3114
+0x2527 0x3115
+0x2528 0x3116
+0x2529 0x3117
+0x252A 0x3118
+0x252B 0x3119
+0x252C 0x311A
+0x252D 0x311B
+0x252E 0x311C
+0x252F 0x311D
+0x2530 0x311E
+0x2531 0x311F
+0x2532 0x3120
+0x2533 0x3121
+0x2534 0x3122
+0x2535 0x3123
+0x2536 0x3124
+0x2537 0x3125
+0x2538 0x3126
+0x2539 0x3127
+0x253A 0x3128
+0x253B 0x3129
+0x253C 0x02D9
+0x253D 0x02C9
+0x253E 0x02CA
+0x253F 0x02C7
+0x2540 0x02CB
+0x2562 0x20AC
+0x2622 0x4E00
+0x2623 0x4E59
+0x2624 0x4E01
+0x2625 0x4E03
+0x2626 0x4E43
+0x2627 0x4E5D
+0x2628 0x4E86
+0x2629 0x4E8C
+0x262A 0x4EBA
+0x262B 0x513F
+0x262C 0x5165
+0x262D 0x516B
+0x262E 0x51E0
+0x262F 0x5200
+0x2630 0x5201
+0x2631 0x529B
+0x2632 0x5315
+0x2633 0x5341
+0x2634 0x535C
+0x2635 0x53C8
+0x2636 0x4E09
+0x2637 0x4E0B
+0x2638 0x4E08
+0x2639 0x4E0A
+0x263A 0x4E2B
+0x263B 0x4E38
+0x263C 0x51E1
+0x263D 0x4E45
+0x263E 0x4E48
+0x263F 0x4E5F
+0x2640 0x4E5E
+0x2641 0x4E8E
+0x2642 0x4EA1
+0x2643 0x5140
+0x2644 0x5203
+0x2645 0x52FA
+0x2646 0x5343
+0x2647 0x53C9
+0x2648 0x53E3
+0x2649 0x571F
+0x264A 0x58EB
+0x264B 0x5915
+0x264C 0x5927
+0x264D 0x5973
+0x264E 0x5B50
+0x264F 0x5B51
+0x2650 0x5B53
+0x2651 0x5BF8
+0x2652 0x5C0F
+0x2653 0x5C22
+0x2654 0x5C38
+0x2655 0x5C71
+0x2656 0x5DDD
+0x2657 0x5DE5
+0x2658 0x5DF1
+0x2659 0x5DF2
+0x265A 0x5DF3
+0x265B 0x5DFE
+0x265C 0x5E72
+0x265D 0x5EFE
+0x265E 0x5F0B
+0x265F 0x5F13
+0x2660 0x624D
+0x2661 0x4E11
+0x2662 0x4E10
+0x2663 0x4E0D
+0x2664 0x4E2D
+0x2665 0x4E30
+0x2666 0x4E39
+0x2667 0x4E4B
+0x2668 0x5C39
+0x2669 0x4E88
+0x266A 0x4E91
+0x266B 0x4E95
+0x266C 0x4E92
+0x266D 0x4E94
+0x266E 0x4EA2
+0x266F 0x4EC1
+0x2670 0x4EC0
+0x2671 0x4EC3
+0x2672 0x4EC6
+0x2673 0x4EC7
+0x2674 0x4ECD
+0x2675 0x4ECA
+0x2676 0x4ECB
+0x2677 0x4EC4
+0x2678 0x5143
+0x2679 0x5141
+0x267A 0x5167
+0x267B 0x516D
+0x267C 0x516E
+0x267D 0x516C
+0x267E 0x5197
+0x2721 0x51F6
+0x2722 0x5206
+0x2723 0x5207
+0x2724 0x5208
+0x2725 0x52FB
+0x2726 0x52FE
+0x2727 0x52FF
+0x2728 0x5316
+0x2729 0x5339
+0x272A 0x5348
+0x272B 0x5347
+0x272C 0x5345
+0x272D 0x535E
+0x272E 0x5384
+0x272F 0x53CB
+0x2730 0x53CA
+0x2731 0x53CD
+0x2732 0x58EC
+0x2733 0x5929
+0x2734 0x592B
+0x2735 0x592A
+0x2736 0x592D
+0x2737 0x5B54
+0x2738 0x5C11
+0x2739 0x5C24
+0x273A 0x5C3A
+0x273B 0x5C6F
+0x273C 0x5DF4
+0x273D 0x5E7B
+0x273E 0x5EFF
+0x273F 0x5F14
+0x2740 0x5F15
+0x2741 0x5FC3
+0x2742 0x6208
+0x2743 0x6236
+0x2744 0x624B
+0x2745 0x624E
+0x2746 0x652F
+0x2747 0x6587
+0x2748 0x6597
+0x2749 0x65A4
+0x274A 0x65B9
+0x274B 0x65E5
+0x274C 0x66F0
+0x274D 0x6708
+0x274E 0x6728
+0x274F 0x6B20
+0x2750 0x6B62
+0x2751 0x6B79
+0x2752 0x6BCB
+0x2753 0x6BD4
+0x2754 0x6BDB
+0x2755 0x6C0F
+0x2756 0x6C34
+0x2757 0x706B
+0x2758 0x722A
+0x2759 0x7236
+0x275A 0x723B
+0x275B 0x7247
+0x275C 0x7259
+0x275D 0x725B
+0x275E 0x72AC
+0x275F 0x738B
+0x2760 0x4E19
+0x2761 0x4E16
+0x2762 0x4E15
+0x2763 0x4E14
+0x2764 0x4E18
+0x2765 0x4E3B
+0x2766 0x4E4D
+0x2767 0x4E4F
+0x2768 0x4E4E
+0x2769 0x4EE5
+0x276A 0x4ED8
+0x276B 0x4ED4
+0x276C 0x4ED5
+0x276D 0x4ED6
+0x276E 0x4ED7
+0x276F 0x4EE3
+0x2770 0x4EE4
+0x2771 0x4ED9
+0x2772 0x4EDE
+0x2773 0x5145
+0x2774 0x5144
+0x2775 0x5189
+0x2776 0x518A
+0x2777 0x51AC
+0x2778 0x51F9
+0x2779 0x51FA
+0x277A 0x51F8
+0x277B 0x520A
+0x277C 0x52A0
+0x277D 0x529F
+0x277E 0x5305
+0x2821 0x5306
+0x2822 0x5317
+0x2823 0x531D
+0x2824 0x4EDF
+0x2825 0x534A
+0x2826 0x5349
+0x2827 0x5361
+0x2828 0x5360
+0x2829 0x536F
+0x282A 0x536E
+0x282B 0x53BB
+0x282C 0x53EF
+0x282D 0x53E4
+0x282E 0x53F3
+0x282F 0x53EC
+0x2830 0x53EE
+0x2831 0x53E9
+0x2832 0x53E8
+0x2833 0x53FC
+0x2834 0x53F8
+0x2835 0x53F5
+0x2836 0x53EB
+0x2837 0x53E6
+0x2838 0x53EA
+0x2839 0x53F2
+0x283A 0x53F1
+0x283B 0x53F0
+0x283C 0x53E5
+0x283D 0x53ED
+0x283E 0x53FB
+0x283F 0x56DB
+0x2840 0x56DA
+0x2841 0x5916
+0x2842 0x592E
+0x2843 0x5931
+0x2844 0x5974
+0x2845 0x5976
+0x2846 0x5B55
+0x2847 0x5B83
+0x2848 0x5C3C
+0x2849 0x5DE8
+0x284A 0x5DE7
+0x284B 0x5DE6
+0x284C 0x5E02
+0x284D 0x5E03
+0x284E 0x5E73
+0x284F 0x5E7C
+0x2850 0x5F01
+0x2851 0x5F18
+0x2852 0x5F17
+0x2853 0x5FC5
+0x2854 0x620A
+0x2855 0x6253
+0x2856 0x6254
+0x2857 0x6252
+0x2858 0x6251
+0x2859 0x65A5
+0x285A 0x65E6
+0x285B 0x672E
+0x285C 0x672C
+0x285D 0x672A
+0x285E 0x672B
+0x285F 0x672D
+0x2860 0x6B63
+0x2861 0x6BCD
+0x2862 0x6C11
+0x2863 0x6C10
+0x2864 0x6C38
+0x2865 0x6C41
+0x2866 0x6C40
+0x2867 0x6C3E
+0x2868 0x72AF
+0x2869 0x7384
+0x286A 0x7389
+0x286B 0x74DC
+0x286C 0x74E6
+0x286D 0x7518
+0x286E 0x751F
+0x286F 0x7528
+0x2870 0x7529
+0x2871 0x7530
+0x2872 0x7531
+0x2873 0x7532
+0x2874 0x7533
+0x2875 0x758B
+0x2876 0x767D
+0x2877 0x76AE
+0x2878 0x76BF
+0x2879 0x76EE
+0x287A 0x77DB
+0x287B 0x77E2
+0x287C 0x77F3
+0x287D 0x793A
+0x287E 0x79BE
+0x2921 0x7A74
+0x2922 0x7ACB
+0x2923 0x4E1E
+0x2924 0x4E1F
+0x2925 0x4E52
+0x2926 0x4E53
+0x2927 0x4E69
+0x2928 0x4E99
+0x2929 0x4EA4
+0x292A 0x4EA6
+0x292B 0x4EA5
+0x292C 0x4EFF
+0x292D 0x4F09
+0x292E 0x4F19
+0x292F 0x4F0A
+0x2930 0x4F15
+0x2931 0x4F0D
+0x2932 0x4F10
+0x2933 0x4F11
+0x2934 0x4F0F
+0x2935 0x4EF2
+0x2936 0x4EF6
+0x2937 0x4EFB
+0x2938 0x4EF0
+0x2939 0x4EF3
+0x293A 0x4EFD
+0x293B 0x4F01
+0x293C 0x4F0B
+0x293D 0x5149
+0x293E 0x5147
+0x293F 0x5146
+0x2940 0x5148
+0x2941 0x5168
+0x2942 0x5171
+0x2943 0x518D
+0x2944 0x51B0
+0x2945 0x5217
+0x2946 0x5211
+0x2947 0x5212
+0x2948 0x520E
+0x2949 0x5216
+0x294A 0x52A3
+0x294B 0x5308
+0x294C 0x5321
+0x294D 0x5320
+0x294E 0x5370
+0x294F 0x5371
+0x2950 0x5409
+0x2951 0x540F
+0x2952 0x540C
+0x2953 0x540A
+0x2954 0x5410
+0x2955 0x5401
+0x2956 0x540B
+0x2957 0x5404
+0x2958 0x5411
+0x2959 0x540D
+0x295A 0x5408
+0x295B 0x5403
+0x295C 0x540E
+0x295D 0x5406
+0x295E 0x5412
+0x295F 0x56E0
+0x2960 0x56DE
+0x2961 0x56DD
+0x2962 0x5733
+0x2963 0x5730
+0x2964 0x5728
+0x2965 0x572D
+0x2966 0x572C
+0x2967 0x572F
+0x2968 0x5729
+0x2969 0x5919
+0x296A 0x591A
+0x296B 0x5937
+0x296C 0x5938
+0x296D 0x5984
+0x296E 0x5978
+0x296F 0x5983
+0x2970 0x597D
+0x2971 0x5979
+0x2972 0x5982
+0x2973 0x5981
+0x2974 0x5B57
+0x2975 0x5B58
+0x2976 0x5B87
+0x2977 0x5B88
+0x2978 0x5B85
+0x2979 0x5B89
+0x297A 0x5BFA
+0x297B 0x5C16
+0x297C 0x5C79
+0x297D 0x5DDE
+0x297E 0x5E06
+0x2A21 0x5E76
+0x2A22 0x5E74
+0x2A23 0x5F0F
+0x2A24 0x5F1B
+0x2A25 0x5FD9
+0x2A26 0x5FD6
+0x2A27 0x620E
+0x2A28 0x620C
+0x2A29 0x620D
+0x2A2A 0x6210
+0x2A2B 0x6263
+0x2A2C 0x625B
+0x2A2D 0x6258
+0x2A2E 0x6536
+0x2A2F 0x65E9
+0x2A30 0x65E8
+0x2A31 0x65EC
+0x2A32 0x65ED
+0x2A33 0x66F2
+0x2A34 0x66F3
+0x2A35 0x6709
+0x2A36 0x673D
+0x2A37 0x6734
+0x2A38 0x6731
+0x2A39 0x6735
+0x2A3A 0x6B21
+0x2A3B 0x6B64
+0x2A3C 0x6B7B
+0x2A3D 0x6C16
+0x2A3E 0x6C5D
+0x2A3F 0x6C57
+0x2A40 0x6C59
+0x2A41 0x6C5F
+0x2A42 0x6C60
+0x2A43 0x6C50
+0x2A44 0x6C55
+0x2A45 0x6C61
+0x2A46 0x6C5B
+0x2A47 0x6C4D
+0x2A48 0x6C4E
+0x2A49 0x7070
+0x2A4A 0x725F
+0x2A4B 0x725D
+0x2A4C 0x767E
+0x2A4D 0x7AF9
+0x2A4E 0x7C73
+0x2A4F 0x7CF8
+0x2A50 0x7F36
+0x2A51 0x7F8A
+0x2A52 0x7FBD
+0x2A53 0x8001
+0x2A54 0x8003
+0x2A55 0x800C
+0x2A56 0x8012
+0x2A57 0x8033
+0x2A58 0x807F
+0x2A59 0x8089
+0x2A5A 0x808B
+0x2A5B 0x808C
+0x2A5C 0x81E3
+0x2A5D 0x81EA
+0x2A5E 0x81F3
+0x2A5F 0x81FC
+0x2A60 0x820C
+0x2A61 0x821B
+0x2A62 0x821F
+0x2A63 0x826E
+0x2A64 0x8272
+0x2A65 0x827E
+0x2A66 0x866B
+0x2A67 0x8840
+0x2A68 0x884C
+0x2A69 0x8863
+0x2A6A 0x897F
+0x2A6B 0x9621
+0x2A6C 0x4E32
+0x2A6D 0x4EA8
+0x2A6E 0x4F4D
+0x2A6F 0x4F4F
+0x2A70 0x4F47
+0x2A71 0x4F57
+0x2A72 0x4F5E
+0x2A73 0x4F34
+0x2A74 0x4F5B
+0x2A75 0x4F55
+0x2A76 0x4F30
+0x2A77 0x4F50
+0x2A78 0x4F51
+0x2A79 0x4F3D
+0x2A7A 0x4F3A
+0x2A7B 0x4F38
+0x2A7C 0x4F43
+0x2A7D 0x4F54
+0x2A7E 0x4F3C
+0x2B21 0x4F46
+0x2B22 0x4F63
+0x2B23 0x4F5C
+0x2B24 0x4F60
+0x2B25 0x4F2F
+0x2B26 0x4F4E
+0x2B27 0x4F36
+0x2B28 0x4F59
+0x2B29 0x4F5D
+0x2B2A 0x4F48
+0x2B2B 0x4F5A
+0x2B2C 0x514C
+0x2B2D 0x514B
+0x2B2E 0x514D
+0x2B2F 0x5175
+0x2B30 0x51B6
+0x2B31 0x51B7
+0x2B32 0x5225
+0x2B33 0x5224
+0x2B34 0x5229
+0x2B35 0x522A
+0x2B36 0x5228
+0x2B37 0x52AB
+0x2B38 0x52A9
+0x2B39 0x52AA
+0x2B3A 0x52AC
+0x2B3B 0x5323
+0x2B3C 0x5373
+0x2B3D 0x5375
+0x2B3E 0x541D
+0x2B3F 0x542D
+0x2B40 0x541E
+0x2B41 0x543E
+0x2B42 0x5426
+0x2B43 0x544E
+0x2B44 0x5427
+0x2B45 0x5446
+0x2B46 0x5443
+0x2B47 0x5433
+0x2B48 0x5448
+0x2B49 0x5442
+0x2B4A 0x541B
+0x2B4B 0x5429
+0x2B4C 0x544A
+0x2B4D 0x5439
+0x2B4E 0x543B
+0x2B4F 0x5438
+0x2B50 0x542E
+0x2B51 0x5435
+0x2B52 0x5436
+0x2B53 0x5420
+0x2B54 0x543C
+0x2B55 0x5440
+0x2B56 0x5431
+0x2B57 0x542B
+0x2B58 0x541F
+0x2B59 0x542C
+0x2B5A 0x56EA
+0x2B5B 0x56F0
+0x2B5C 0x56E4
+0x2B5D 0x56EB
+0x2B5E 0x574A
+0x2B5F 0x5751
+0x2B60 0x5740
+0x2B61 0x574D
+0x2B62 0x5747
+0x2B63 0x574E
+0x2B64 0x573E
+0x2B65 0x5750
+0x2B66 0x574F
+0x2B67 0x573B
+0x2B68 0x58EF
+0x2B69 0x593E
+0x2B6A 0x599D
+0x2B6B 0x5992
+0x2B6C 0x59A8
+0x2B6D 0x599E
+0x2B6E 0x59A3
+0x2B6F 0x5999
+0x2B70 0x5996
+0x2B71 0x598D
+0x2B72 0x59A4
+0x2B73 0x5993
+0x2B74 0x598A
+0x2B75 0x59A5
+0x2B76 0x5B5D
+0x2B77 0x5B5C
+0x2B78 0x5B5A
+0x2B79 0x5B5B
+0x2B7A 0x5B8C
+0x2B7B 0x5B8B
+0x2B7C 0x5B8F
+0x2B7D 0x5C2C
+0x2B7E 0x5C40
+0x2C21 0x5C41
+0x2C22 0x5C3F
+0x2C23 0x5C3E
+0x2C24 0x5C90
+0x2C25 0x5C91
+0x2C26 0x5C94
+0x2C27 0x5C8C
+0x2C28 0x5DEB
+0x2C29 0x5E0C
+0x2C2A 0x5E8F
+0x2C2B 0x5E87
+0x2C2C 0x5E8A
+0x2C2D 0x5EF7
+0x2C2E 0x5F04
+0x2C2F 0x5F1F
+0x2C30 0x5F64
+0x2C31 0x5F62
+0x2C32 0x5F77
+0x2C33 0x5F79
+0x2C34 0x5FD8
+0x2C35 0x5FCC
+0x2C36 0x5FD7
+0x2C37 0x5FCD
+0x2C38 0x5FF1
+0x2C39 0x5FEB
+0x2C3A 0x5FF8
+0x2C3B 0x5FEA
+0x2C3C 0x6212
+0x2C3D 0x6211
+0x2C3E 0x6284
+0x2C3F 0x6297
+0x2C40 0x6296
+0x2C41 0x6280
+0x2C42 0x6276
+0x2C43 0x6289
+0x2C44 0x626D
+0x2C45 0x628A
+0x2C46 0x627C
+0x2C47 0x627E
+0x2C48 0x6279
+0x2C49 0x6273
+0x2C4A 0x6292
+0x2C4B 0x626F
+0x2C4C 0x6298
+0x2C4D 0x626E
+0x2C4E 0x6295
+0x2C4F 0x6293
+0x2C50 0x6291
+0x2C51 0x6286
+0x2C52 0x6539
+0x2C53 0x653B
+0x2C54 0x6538
+0x2C55 0x65F1
+0x2C56 0x66F4
+0x2C57 0x675F
+0x2C58 0x674E
+0x2C59 0x674F
+0x2C5A 0x6750
+0x2C5B 0x6751
+0x2C5C 0x675C
+0x2C5D 0x6756
+0x2C5E 0x675E
+0x2C5F 0x6749
+0x2C60 0x6746
+0x2C61 0x6760
+0x2C62 0x6753
+0x2C63 0x6757
+0x2C64 0x6B65
+0x2C65 0x6BCF
+0x2C66 0x6C42
+0x2C67 0x6C5E
+0x2C68 0x6C99
+0x2C69 0x6C81
+0x2C6A 0x6C88
+0x2C6B 0x6C89
+0x2C6C 0x6C85
+0x2C6D 0x6C9B
+0x2C6E 0x6C6A
+0x2C6F 0x6C7A
+0x2C70 0x6C90
+0x2C71 0x6C70
+0x2C72 0x6C8C
+0x2C73 0x6C68
+0x2C74 0x6C96
+0x2C75 0x6C92
+0x2C76 0x6C7D
+0x2C77 0x6C83
+0x2C78 0x6C72
+0x2C79 0x6C7E
+0x2C7A 0x6C74
+0x2C7B 0x6C86
+0x2C7C 0x6C76
+0x2C7D 0x6C8D
+0x2C7E 0x6C94
+0x2D21 0x6C98
+0x2D22 0x6C82
+0x2D23 0x7076
+0x2D24 0x707C
+0x2D25 0x707D
+0x2D26 0x7078
+0x2D27 0x7262
+0x2D28 0x7261
+0x2D29 0x7260
+0x2D2A 0x72C4
+0x2D2B 0x72C2
+0x2D2C 0x7396
+0x2D2D 0x752C
+0x2D2E 0x752B
+0x2D2F 0x7537
+0x2D30 0x7538
+0x2D31 0x7682
+0x2D32 0x76EF
+0x2D33 0x77E3
+0x2D34 0x79C1
+0x2D35 0x79C0
+0x2D36 0x79BF
+0x2D37 0x7A76
+0x2D38 0x7CFB
+0x2D39 0x7F55
+0x2D3A 0x8096
+0x2D3B 0x8093
+0x2D3C 0x809D
+0x2D3D 0x8098
+0x2D3E 0x809B
+0x2D3F 0x809A
+0x2D40 0x80B2
+0x2D41 0x826F
+0x2D42 0x8292
+0x2D43 0x828B
+0x2D44 0x828D
+0x2D45 0x898B
+0x2D46 0x89D2
+0x2D47 0x8A00
+0x2D48 0x8C37
+0x2D49 0x8C46
+0x2D4A 0x8C55
+0x2D4B 0x8C9D
+0x2D4C 0x8D64
+0x2D4D 0x8D70
+0x2D4E 0x8DB3
+0x2D4F 0x8EAB
+0x2D50 0x8ECA
+0x2D51 0x8F9B
+0x2D52 0x8FB0
+0x2D53 0x8FC2
+0x2D54 0x8FC6
+0x2D55 0x8FC5
+0x2D56 0x8FC4
+0x2D57 0x5DE1
+0x2D58 0x9091
+0x2D59 0x90A2
+0x2D5A 0x90AA
+0x2D5B 0x90A6
+0x2D5C 0x90A3
+0x2D5D 0x9149
+0x2D5E 0x91C6
+0x2D5F 0x91CC
+0x2D60 0x9632
+0x2D61 0x962E
+0x2D62 0x9631
+0x2D63 0x962A
+0x2D64 0x962C
+0x2D65 0x4E26
+0x2D66 0x4E56
+0x2D67 0x4E73
+0x2D68 0x4E8B
+0x2D69 0x4E9B
+0x2D6A 0x4E9E
+0x2D6B 0x4EAB
+0x2D6C 0x4EAC
+0x2D6D 0x4F6F
+0x2D6E 0x4F9D
+0x2D6F 0x4F8D
+0x2D70 0x4F73
+0x2D71 0x4F7F
+0x2D72 0x4F6C
+0x2D73 0x4F9B
+0x2D74 0x4F8B
+0x2D75 0x4F86
+0x2D76 0x4F83
+0x2D77 0x4F70
+0x2D78 0x4F75
+0x2D79 0x4F88
+0x2D7A 0x4F69
+0x2D7B 0x4F7B
+0x2D7C 0x4F96
+0x2D7D 0x4F7E
+0x2D7E 0x4F8F
+0x2E21 0x4F91
+0x2E22 0x4F7A
+0x2E23 0x5154
+0x2E24 0x5152
+0x2E25 0x5155
+0x2E26 0x5169
+0x2E27 0x5177
+0x2E28 0x5176
+0x2E29 0x5178
+0x2E2A 0x51BD
+0x2E2B 0x51FD
+0x2E2C 0x523B
+0x2E2D 0x5238
+0x2E2E 0x5237
+0x2E2F 0x523A
+0x2E30 0x5230
+0x2E31 0x522E
+0x2E32 0x5236
+0x2E33 0x5241
+0x2E34 0x52BE
+0x2E35 0x52BB
+0x2E36 0x5352
+0x2E37 0x5354
+0x2E38 0x5353
+0x2E39 0x5351
+0x2E3A 0x5366
+0x2E3B 0x5377
+0x2E3C 0x5378
+0x2E3D 0x5379
+0x2E3E 0x53D6
+0x2E3F 0x53D4
+0x2E40 0x53D7
+0x2E41 0x5473
+0x2E42 0x5475
+0x2E43 0x5496
+0x2E44 0x5478
+0x2E45 0x5495
+0x2E46 0x5480
+0x2E47 0x547B
+0x2E48 0x5477
+0x2E49 0x5484
+0x2E4A 0x5492
+0x2E4B 0x5486
+0x2E4C 0x547C
+0x2E4D 0x5490
+0x2E4E 0x5471
+0x2E4F 0x5476
+0x2E50 0x548C
+0x2E51 0x549A
+0x2E52 0x5462
+0x2E53 0x5468
+0x2E54 0x548B
+0x2E55 0x547D
+0x2E56 0x548E
+0x2E57 0x56FA
+0x2E58 0x5783
+0x2E59 0x5777
+0x2E5A 0x576A
+0x2E5B 0x5769
+0x2E5C 0x5761
+0x2E5D 0x5766
+0x2E5E 0x5764
+0x2E5F 0x577C
+0x2E60 0x591C
+0x2E61 0x5949
+0x2E62 0x5947
+0x2E63 0x5948
+0x2E64 0x5944
+0x2E65 0x5954
+0x2E66 0x59BE
+0x2E67 0x59BB
+0x2E68 0x59D4
+0x2E69 0x59B9
+0x2E6A 0x59AE
+0x2E6B 0x59D1
+0x2E6C 0x59C6
+0x2E6D 0x59D0
+0x2E6E 0x59CD
+0x2E6F 0x59CB
+0x2E70 0x59D3
+0x2E71 0x59CA
+0x2E72 0x59AF
+0x2E73 0x59B3
+0x2E74 0x59D2
+0x2E75 0x59C5
+0x2E76 0x5B5F
+0x2E77 0x5B64
+0x2E78 0x5B63
+0x2E79 0x5B97
+0x2E7A 0x5B9A
+0x2E7B 0x5B98
+0x2E7C 0x5B9C
+0x2E7D 0x5B99
+0x2E7E 0x5B9B
+0x2F21 0x5C1A
+0x2F22 0x5C48
+0x2F23 0x5C45
+0x2F24 0x5C46
+0x2F25 0x5CB7
+0x2F26 0x5CA1
+0x2F27 0x5CB8
+0x2F28 0x5CA9
+0x2F29 0x5CAB
+0x2F2A 0x5CB1
+0x2F2B 0x5CB3
+0x2F2C 0x5E18
+0x2F2D 0x5E1A
+0x2F2E 0x5E16
+0x2F2F 0x5E15
+0x2F30 0x5E1B
+0x2F31 0x5E11
+0x2F32 0x5E78
+0x2F33 0x5E9A
+0x2F34 0x5E97
+0x2F35 0x5E9C
+0x2F36 0x5E95
+0x2F37 0x5E96
+0x2F38 0x5EF6
+0x2F39 0x5F26
+0x2F3A 0x5F27
+0x2F3B 0x5F29
+0x2F3C 0x5F80
+0x2F3D 0x5F81
+0x2F3E 0x5F7F
+0x2F3F 0x5F7C
+0x2F40 0x5FDD
+0x2F41 0x5FE0
+0x2F42 0x5FFD
+0x2F43 0x5FF5
+0x2F44 0x5FFF
+0x2F45 0x600F
+0x2F46 0x6014
+0x2F47 0x602F
+0x2F48 0x6035
+0x2F49 0x6016
+0x2F4A 0x602A
+0x2F4B 0x6015
+0x2F4C 0x6021
+0x2F4D 0x6027
+0x2F4E 0x6029
+0x2F4F 0x602B
+0x2F50 0x601B
+0x2F51 0x6216
+0x2F52 0x6215
+0x2F53 0x623F
+0x2F54 0x623E
+0x2F55 0x6240
+0x2F56 0x627F
+0x2F57 0x62C9
+0x2F58 0x62CC
+0x2F59 0x62C4
+0x2F5A 0x62BF
+0x2F5B 0x62C2
+0x2F5C 0x62B9
+0x2F5D 0x62D2
+0x2F5E 0x62DB
+0x2F5F 0x62AB
+0x2F60 0x62D3
+0x2F61 0x62D4
+0x2F62 0x62CB
+0x2F63 0x62C8
+0x2F64 0x62A8
+0x2F65 0x62BD
+0x2F66 0x62BC
+0x2F67 0x62D0
+0x2F68 0x62D9
+0x2F69 0x62C7
+0x2F6A 0x62CD
+0x2F6B 0x62B5
+0x2F6C 0x62DA
+0x2F6D 0x62B1
+0x2F6E 0x62D8
+0x2F6F 0x62D6
+0x2F70 0x62D7
+0x2F71 0x62C6
+0x2F72 0x62AC
+0x2F73 0x62CE
+0x2F74 0x653E
+0x2F75 0x65A7
+0x2F76 0x65BC
+0x2F77 0x65FA
+0x2F78 0x6614
+0x2F79 0x6613
+0x2F7A 0x660C
+0x2F7B 0x6606
+0x2F7C 0x6602
+0x2F7D 0x660E
+0x2F7E 0x6600
+0x3021 0x660F
+0x3022 0x6615
+0x3023 0x660A
+0x3024 0x6607
+0x3025 0x670D
+0x3026 0x670B
+0x3027 0x676D
+0x3028 0x678B
+0x3029 0x6795
+0x302A 0x6771
+0x302B 0x679C
+0x302C 0x6773
+0x302D 0x6777
+0x302E 0x6787
+0x302F 0x679D
+0x3030 0x6797
+0x3031 0x676F
+0x3032 0x6770
+0x3033 0x677F
+0x3034 0x6789
+0x3035 0x677E
+0x3036 0x6790
+0x3037 0x6775
+0x3038 0x679A
+0x3039 0x6793
+0x303A 0x677C
+0x303B 0x676A
+0x303C 0x6772
+0x303D 0x6B23
+0x303E 0x6B66
+0x303F 0x6B67
+0x3040 0x6B7F
+0x3041 0x6C13
+0x3042 0x6C1B
+0x3043 0x6CE3
+0x3044 0x6CE8
+0x3045 0x6CF3
+0x3046 0x6CB1
+0x3047 0x6CCC
+0x3048 0x6CE5
+0x3049 0x6CB3
+0x304A 0x6CBD
+0x304B 0x6CBE
+0x304C 0x6CBC
+0x304D 0x6CE2
+0x304E 0x6CAB
+0x304F 0x6CD5
+0x3050 0x6CD3
+0x3051 0x6CB8
+0x3052 0x6CC4
+0x3053 0x6CB9
+0x3054 0x6CC1
+0x3055 0x6CAE
+0x3056 0x6CD7
+0x3057 0x6CC5
+0x3058 0x6CF1
+0x3059 0x6CBF
+0x305A 0x6CBB
+0x305B 0x6CE1
+0x305C 0x6CDB
+0x305D 0x6CCA
+0x305E 0x6CAC
+0x305F 0x6CEF
+0x3060 0x6CDC
+0x3061 0x6CD6
+0x3062 0x6CE0
+0x3063 0x7095
+0x3064 0x708E
+0x3065 0x7092
+0x3066 0x708A
+0x3067 0x7099
+0x3068 0x722C
+0x3069 0x722D
+0x306A 0x7238
+0x306B 0x7248
+0x306C 0x7267
+0x306D 0x7269
+0x306E 0x72C0
+0x306F 0x72CE
+0x3070 0x72D9
+0x3071 0x72D7
+0x3072 0x72D0
+0x3073 0x73A9
+0x3074 0x73A8
+0x3075 0x739F
+0x3076 0x73AB
+0x3077 0x73A5
+0x3078 0x753D
+0x3079 0x759D
+0x307A 0x7599
+0x307B 0x759A
+0x307C 0x7684
+0x307D 0x76C2
+0x307E 0x76F2
+0x3121 0x76F4
+0x3122 0x77E5
+0x3123 0x77FD
+0x3124 0x793E
+0x3125 0x7940
+0x3126 0x7941
+0x3127 0x79C9
+0x3128 0x79C8
+0x3129 0x7A7A
+0x312A 0x7A79
+0x312B 0x7AFA
+0x312C 0x7CFE
+0x312D 0x7F54
+0x312E 0x7F8C
+0x312F 0x7F8B
+0x3130 0x8005
+0x3131 0x80BA
+0x3132 0x80A5
+0x3133 0x80A2
+0x3134 0x80B1
+0x3135 0x80A1
+0x3136 0x80AB
+0x3137 0x80A9
+0x3138 0x80B4
+0x3139 0x80AA
+0x313A 0x80AF
+0x313B 0x81E5
+0x313C 0x81FE
+0x313D 0x820D
+0x313E 0x82B3
+0x313F 0x829D
+0x3140 0x8299
+0x3141 0x82AD
+0x3142 0x82BD
+0x3143 0x829F
+0x3144 0x82B9
+0x3145 0x82B1
+0x3146 0x82AC
+0x3147 0x82A5
+0x3148 0x82AF
+0x3149 0x82B8
+0x314A 0x82A3
+0x314B 0x82B0
+0x314C 0x82BE
+0x314D 0x82B7
+0x314E 0x864E
+0x314F 0x8671
+0x3150 0x521D
+0x3151 0x8868
+0x3152 0x8ECB
+0x3153 0x8FCE
+0x3154 0x8FD4
+0x3155 0x8FD1
+0x3156 0x90B5
+0x3157 0x90B8
+0x3158 0x90B1
+0x3159 0x90B6
+0x315A 0x91C7
+0x315B 0x91D1
+0x315C 0x9577
+0x315D 0x9580
+0x315E 0x961C
+0x315F 0x9640
+0x3160 0x963F
+0x3161 0x963B
+0x3162 0x9644
+0x3163 0x9642
+0x3164 0x96B9
+0x3165 0x96E8
+0x3166 0x9752
+0x3167 0x975E
+0x3168 0x4E9F
+0x3169 0x4EAD
+0x316A 0x4EAE
+0x316B 0x4FE1
+0x316C 0x4FB5
+0x316D 0x4FAF
+0x316E 0x4FBF
+0x316F 0x4FE0
+0x3170 0x4FD1
+0x3171 0x4FCF
+0x3172 0x4FDD
+0x3173 0x4FC3
+0x3174 0x4FB6
+0x3175 0x4FD8
+0x3176 0x4FDF
+0x3177 0x4FCA
+0x3178 0x4FD7
+0x3179 0x4FAE
+0x317A 0x4FD0
+0x317B 0x4FC4
+0x317C 0x4FC2
+0x317D 0x4FDA
+0x317E 0x4FCE
+0x3221 0x4FDE
+0x3222 0x4FB7
+0x3223 0x5157
+0x3224 0x5192
+0x3225 0x5191
+0x3226 0x51A0
+0x3227 0x524E
+0x3228 0x5243
+0x3229 0x524A
+0x322A 0x524D
+0x322B 0x524C
+0x322C 0x524B
+0x322D 0x5247
+0x322E 0x52C7
+0x322F 0x52C9
+0x3230 0x52C3
+0x3231 0x52C1
+0x3232 0x530D
+0x3233 0x5357
+0x3234 0x537B
+0x3235 0x539A
+0x3236 0x53DB
+0x3237 0x54AC
+0x3238 0x54C0
+0x3239 0x54A8
+0x323A 0x54CE
+0x323B 0x54C9
+0x323C 0x54B8
+0x323D 0x54A6
+0x323E 0x54B3
+0x323F 0x54C7
+0x3240 0x54C2
+0x3241 0x54BD
+0x3242 0x54AA
+0x3243 0x54C1
+0x3244 0x54C4
+0x3245 0x54C8
+0x3246 0x54AF
+0x3247 0x54AB
+0x3248 0x54B1
+0x3249 0x54BB
+0x324A 0x54A9
+0x324B 0x54A7
+0x324C 0x54BF
+0x324D 0x56FF
+0x324E 0x5782
+0x324F 0x578B
+0x3250 0x57A0
+0x3251 0x57A3
+0x3252 0x57A2
+0x3253 0x57CE
+0x3254 0x57AE
+0x3255 0x5793
+0x3256 0x5955
+0x3257 0x5951
+0x3258 0x594F
+0x3259 0x594E
+0x325A 0x5950
+0x325B 0x59DC
+0x325C 0x59D8
+0x325D 0x59FF
+0x325E 0x59E3
+0x325F 0x59E8
+0x3260 0x5A03
+0x3261 0x59E5
+0x3262 0x59EA
+0x3263 0x59DA
+0x3264 0x59E6
+0x3265 0x5A01
+0x3266 0x59FB
+0x3267 0x5B69
+0x3268 0x5BA3
+0x3269 0x5BA6
+0x326A 0x5BA4
+0x326B 0x5BA2
+0x326C 0x5BA5
+0x326D 0x5C01
+0x326E 0x5C4E
+0x326F 0x5C4F
+0x3270 0x5C4D
+0x3271 0x5C4B
+0x3272 0x5CD9
+0x3273 0x5CD2
+0x3274 0x5DF7
+0x3275 0x5E1D
+0x3276 0x5E25
+0x3277 0x5E1F
+0x3278 0x5E7D
+0x3279 0x5EA0
+0x327A 0x5EA6
+0x327B 0x5EFA
+0x327C 0x5F08
+0x327D 0x5F2D
+0x327E 0x5F65
+0x3321 0x5F88
+0x3322 0x5F85
+0x3323 0x5F8A
+0x3324 0x5F8B
+0x3325 0x5F87
+0x3326 0x5F8C
+0x3327 0x5F89
+0x3328 0x6012
+0x3329 0x601D
+0x332A 0x6020
+0x332B 0x6025
+0x332C 0x600E
+0x332D 0x6028
+0x332E 0x604D
+0x332F 0x6070
+0x3330 0x6068
+0x3331 0x6062
+0x3332 0x6046
+0x3333 0x6043
+0x3334 0x606C
+0x3335 0x606B
+0x3336 0x606A
+0x3337 0x6064
+0x3338 0x6241
+0x3339 0x62DC
+0x333A 0x6316
+0x333B 0x6309
+0x333C 0x62FC
+0x333D 0x62ED
+0x333E 0x6301
+0x333F 0x62EE
+0x3340 0x62FD
+0x3341 0x6307
+0x3342 0x62F1
+0x3343 0x62F7
+0x3344 0x62EF
+0x3345 0x62EC
+0x3346 0x62FE
+0x3347 0x62F4
+0x3348 0x6311
+0x3349 0x6302
+0x334A 0x653F
+0x334B 0x6545
+0x334C 0x65AB
+0x334D 0x65BD
+0x334E 0x65E2
+0x334F 0x6625
+0x3350 0x662D
+0x3351 0x6620
+0x3352 0x6627
+0x3353 0x662F
+0x3354 0x661F
+0x3355 0x6628
+0x3356 0x6631
+0x3357 0x6624
+0x3358 0x66F7
+0x3359 0x67FF
+0x335A 0x67D3
+0x335B 0x67F1
+0x335C 0x67D4
+0x335D 0x67D0
+0x335E 0x67EC
+0x335F 0x67B6
+0x3360 0x67AF
+0x3361 0x67F5
+0x3362 0x67E9
+0x3363 0x67EF
+0x3364 0x67C4
+0x3365 0x67D1
+0x3366 0x67B4
+0x3367 0x67DA
+0x3368 0x67E5
+0x3369 0x67B8
+0x336A 0x67CF
+0x336B 0x67DE
+0x336C 0x67F3
+0x336D 0x67B0
+0x336E 0x67D9
+0x336F 0x67E2
+0x3370 0x67DD
+0x3371 0x67D2
+0x3372 0x6B6A
+0x3373 0x6B83
+0x3374 0x6B86
+0x3375 0x6BB5
+0x3376 0x6BD2
+0x3377 0x6BD7
+0x3378 0x6C1F
+0x3379 0x6CC9
+0x337A 0x6D0B
+0x337B 0x6D32
+0x337C 0x6D2A
+0x337D 0x6D41
+0x337E 0x6D25
+0x3421 0x6D0C
+0x3422 0x6D31
+0x3423 0x6D1E
+0x3424 0x6D17
+0x3425 0x6D3B
+0x3426 0x6D3D
+0x3427 0x6D3E
+0x3428 0x6D36
+0x3429 0x6D1B
+0x342A 0x6CF5
+0x342B 0x6D39
+0x342C 0x6D27
+0x342D 0x6D38
+0x342E 0x6D29
+0x342F 0x6D2E
+0x3430 0x6D35
+0x3431 0x6D0E
+0x3432 0x6D2B
+0x3433 0x70AB
+0x3434 0x70BA
+0x3435 0x70B3
+0x3436 0x70AC
+0x3437 0x70AF
+0x3438 0x70AD
+0x3439 0x70B8
+0x343A 0x70AE
+0x343B 0x70A4
+0x343C 0x7230
+0x343D 0x7272
+0x343E 0x726F
+0x343F 0x7274
+0x3440 0x72E9
+0x3441 0x72E0
+0x3442 0x72E1
+0x3443 0x73B7
+0x3444 0x73CA
+0x3445 0x73BB
+0x3446 0x73B2
+0x3447 0x73CD
+0x3448 0x73C0
+0x3449 0x73B3
+0x344A 0x751A
+0x344B 0x752D
+0x344C 0x754F
+0x344D 0x754C
+0x344E 0x754E
+0x344F 0x754B
+0x3450 0x75AB
+0x3451 0x75A4
+0x3452 0x75A5
+0x3453 0x75A2
+0x3454 0x75A3
+0x3455 0x7678
+0x3456 0x7686
+0x3457 0x7687
+0x3458 0x7688
+0x3459 0x76C8
+0x345A 0x76C6
+0x345B 0x76C3
+0x345C 0x76C5
+0x345D 0x7701
+0x345E 0x76F9
+0x345F 0x76F8
+0x3460 0x7709
+0x3461 0x770B
+0x3462 0x76FE
+0x3463 0x76FC
+0x3464 0x7707
+0x3465 0x77DC
+0x3466 0x7802
+0x3467 0x7814
+0x3468 0x780C
+0x3469 0x780D
+0x346A 0x7946
+0x346B 0x7949
+0x346C 0x7948
+0x346D 0x7947
+0x346E 0x79B9
+0x346F 0x79BA
+0x3470 0x79D1
+0x3471 0x79D2
+0x3472 0x79CB
+0x3473 0x7A7F
+0x3474 0x7A81
+0x3475 0x7AFF
+0x3476 0x7AFD
+0x3477 0x7C7D
+0x3478 0x7D02
+0x3479 0x7D05
+0x347A 0x7D00
+0x347B 0x7D09
+0x347C 0x7D07
+0x347D 0x7D04
+0x347E 0x7D06
+0x3521 0x7F38
+0x3522 0x7F8E
+0x3523 0x7FBF
+0x3524 0x8004
+0x3525 0x8010
+0x3526 0x800D
+0x3527 0x8011
+0x3528 0x8036
+0x3529 0x80D6
+0x352A 0x80E5
+0x352B 0x80DA
+0x352C 0x80C3
+0x352D 0x80C4
+0x352E 0x80CC
+0x352F 0x80E1
+0x3530 0x80DB
+0x3531 0x80CE
+0x3532 0x80DE
+0x3533 0x80E4
+0x3534 0x80DD
+0x3535 0x81F4
+0x3536 0x8222
+0x3537 0x82E7
+0x3538 0x8303
+0x3539 0x8305
+0x353A 0x82E3
+0x353B 0x82DB
+0x353C 0x82E6
+0x353D 0x8304
+0x353E 0x82E5
+0x353F 0x8302
+0x3540 0x8309
+0x3541 0x82D2
+0x3542 0x82D7
+0x3543 0x82F1
+0x3544 0x8301
+0x3545 0x82DC
+0x3546 0x82D4
+0x3547 0x82D1
+0x3548 0x82DE
+0x3549 0x82D3
+0x354A 0x82DF
+0x354B 0x82EF
+0x354C 0x8306
+0x354D 0x8650
+0x354E 0x8679
+0x354F 0x867B
+0x3550 0x867A
+0x3551 0x884D
+0x3552 0x886B
+0x3553 0x8981
+0x3554 0x89D4
+0x3555 0x8A08
+0x3556 0x8A02
+0x3557 0x8A03
+0x3558 0x8C9E
+0x3559 0x8CA0
+0x355A 0x8D74
+0x355B 0x8D73
+0x355C 0x8DB4
+0x355D 0x8ECD
+0x355E 0x8ECC
+0x355F 0x8FF0
+0x3560 0x8FE6
+0x3561 0x8FE2
+0x3562 0x8FEA
+0x3563 0x8FE5
+0x3564 0x8FED
+0x3565 0x8FEB
+0x3566 0x8FE4
+0x3567 0x8FE8
+0x3568 0x90CA
+0x3569 0x90CE
+0x356A 0x90C1
+0x356B 0x90C3
+0x356C 0x914B
+0x356D 0x914A
+0x356E 0x91CD
+0x356F 0x9582
+0x3570 0x9650
+0x3571 0x964B
+0x3572 0x964C
+0x3573 0x964D
+0x3574 0x9762
+0x3575 0x9769
+0x3576 0x97CB
+0x3577 0x97ED
+0x3578 0x97F3
+0x3579 0x9801
+0x357A 0x98A8
+0x357B 0x98DB
+0x357C 0x98DF
+0x357D 0x9996
+0x357E 0x9999
+0x3621 0x4E58
+0x3622 0x4EB3
+0x3623 0x500C
+0x3624 0x500D
+0x3625 0x5023
+0x3626 0x4FEF
+0x3627 0x5026
+0x3628 0x5025
+0x3629 0x4FF8
+0x362A 0x5029
+0x362B 0x5016
+0x362C 0x5006
+0x362D 0x503C
+0x362E 0x501F
+0x362F 0x501A
+0x3630 0x5012
+0x3631 0x5011
+0x3632 0x4FFA
+0x3633 0x5000
+0x3634 0x5014
+0x3635 0x5028
+0x3636 0x4FF1
+0x3637 0x5021
+0x3638 0x500B
+0x3639 0x5019
+0x363A 0x5018
+0x363B 0x4FF3
+0x363C 0x4FEE
+0x363D 0x502D
+0x363E 0x502A
+0x363F 0x4FFE
+0x3640 0x502B
+0x3641 0x5009
+0x3642 0x517C
+0x3643 0x51A4
+0x3644 0x51A5
+0x3645 0x51A2
+0x3646 0x51CD
+0x3647 0x51CC
+0x3648 0x51C6
+0x3649 0x51CB
+0x364A 0x5256
+0x364B 0x525C
+0x364C 0x5254
+0x364D 0x525B
+0x364E 0x525D
+0x364F 0x532A
+0x3650 0x537F
+0x3651 0x539F
+0x3652 0x539D
+0x3653 0x53DF
+0x3654 0x54E8
+0x3655 0x5510
+0x3656 0x5501
+0x3657 0x5537
+0x3658 0x54FC
+0x3659 0x54E5
+0x365A 0x54F2
+0x365B 0x5506
+0x365C 0x54FA
+0x365D 0x5514
+0x365E 0x54E9
+0x365F 0x54ED
+0x3660 0x54E1
+0x3661 0x5509
+0x3662 0x54EE
+0x3663 0x54EA
+0x3664 0x54E6
+0x3665 0x5527
+0x3666 0x5507
+0x3667 0x54FD
+0x3668 0x550F
+0x3669 0x5703
+0x366A 0x5704
+0x366B 0x57C2
+0x366C 0x57D4
+0x366D 0x57CB
+0x366E 0x57C3
+0x366F 0x5809
+0x3670 0x590F
+0x3671 0x5957
+0x3672 0x5958
+0x3673 0x595A
+0x3674 0x5A11
+0x3675 0x5A18
+0x3676 0x5A1C
+0x3677 0x5A1F
+0x3678 0x5A1B
+0x3679 0x5A13
+0x367A 0x59EC
+0x367B 0x5A20
+0x367C 0x5A23
+0x367D 0x5A29
+0x367E 0x5A25
+0x3721 0x5A0C
+0x3722 0x5A09
+0x3723 0x5B6B
+0x3724 0x5C58
+0x3725 0x5BB0
+0x3726 0x5BB3
+0x3727 0x5BB6
+0x3728 0x5BB4
+0x3729 0x5BAE
+0x372A 0x5BB5
+0x372B 0x5BB9
+0x372C 0x5BB8
+0x372D 0x5C04
+0x372E 0x5C51
+0x372F 0x5C55
+0x3730 0x5C50
+0x3731 0x5CED
+0x3732 0x5CFD
+0x3733 0x5CFB
+0x3734 0x5CEA
+0x3735 0x5CE8
+0x3736 0x5CF0
+0x3737 0x5CF6
+0x3738 0x5D01
+0x3739 0x5CF4
+0x373A 0x5DEE
+0x373B 0x5E2D
+0x373C 0x5E2B
+0x373D 0x5EAB
+0x373E 0x5EAD
+0x373F 0x5EA7
+0x3740 0x5F31
+0x3741 0x5F92
+0x3742 0x5F91
+0x3743 0x5F90
+0x3744 0x6059
+0x3745 0x6063
+0x3746 0x6065
+0x3747 0x6050
+0x3748 0x6055
+0x3749 0x606D
+0x374A 0x6069
+0x374B 0x606F
+0x374C 0x6084
+0x374D 0x609F
+0x374E 0x609A
+0x374F 0x608D
+0x3750 0x6094
+0x3751 0x608C
+0x3752 0x6085
+0x3753 0x6096
+0x3754 0x6247
+0x3755 0x62F3
+0x3756 0x6308
+0x3757 0x62FF
+0x3758 0x634E
+0x3759 0x633E
+0x375A 0x632F
+0x375B 0x6355
+0x375C 0x6342
+0x375D 0x6346
+0x375E 0x634F
+0x375F 0x6349
+0x3760 0x633A
+0x3761 0x6350
+0x3762 0x633D
+0x3763 0x632A
+0x3764 0x632B
+0x3765 0x6328
+0x3766 0x634D
+0x3767 0x634C
+0x3768 0x6548
+0x3769 0x6549
+0x376A 0x6599
+0x376B 0x65C1
+0x376C 0x65C5
+0x376D 0x6642
+0x376E 0x6649
+0x376F 0x664F
+0x3770 0x6643
+0x3771 0x6652
+0x3772 0x664C
+0x3773 0x6645
+0x3774 0x6641
+0x3775 0x66F8
+0x3776 0x6714
+0x3777 0x6715
+0x3778 0x6717
+0x3779 0x6821
+0x377A 0x6838
+0x377B 0x6848
+0x377C 0x6846
+0x377D 0x6853
+0x377E 0x6839
+0x3821 0x6842
+0x3822 0x6854
+0x3823 0x6829
+0x3824 0x68B3
+0x3825 0x6817
+0x3826 0x684C
+0x3827 0x6851
+0x3828 0x683D
+0x3829 0x67F4
+0x382A 0x6850
+0x382B 0x6840
+0x382C 0x683C
+0x382D 0x6843
+0x382E 0x682A
+0x382F 0x6845
+0x3830 0x6813
+0x3831 0x6818
+0x3832 0x6841
+0x3833 0x6B8A
+0x3834 0x6B89
+0x3835 0x6BB7
+0x3836 0x6C23
+0x3837 0x6C27
+0x3838 0x6C28
+0x3839 0x6C26
+0x383A 0x6C24
+0x383B 0x6CF0
+0x383C 0x6D6A
+0x383D 0x6D95
+0x383E 0x6D88
+0x383F 0x6D87
+0x3840 0x6D66
+0x3841 0x6D78
+0x3842 0x6D77
+0x3843 0x6D59
+0x3844 0x6D93
+0x3845 0x6D6C
+0x3846 0x6D89
+0x3847 0x6D6E
+0x3848 0x6D5A
+0x3849 0x6D74
+0x384A 0x6D69
+0x384B 0x6D8C
+0x384C 0x6D8A
+0x384D 0x6D79
+0x384E 0x6D85
+0x384F 0x6D65
+0x3850 0x6D94
+0x3851 0x70CA
+0x3852 0x70D8
+0x3853 0x70E4
+0x3854 0x70D9
+0x3855 0x70C8
+0x3856 0x70CF
+0x3857 0x7239
+0x3858 0x7279
+0x3859 0x72FC
+0x385A 0x72F9
+0x385B 0x72FD
+0x385C 0x72F8
+0x385D 0x72F7
+0x385E 0x7386
+0x385F 0x73ED
+0x3860 0x7409
+0x3861 0x73EE
+0x3862 0x73E0
+0x3863 0x73EA
+0x3864 0x73DE
+0x3865 0x7554
+0x3866 0x755D
+0x3867 0x755C
+0x3868 0x755A
+0x3869 0x7559
+0x386A 0x75BE
+0x386B 0x75C5
+0x386C 0x75C7
+0x386D 0x75B2
+0x386E 0x75B3
+0x386F 0x75BD
+0x3870 0x75BC
+0x3871 0x75B9
+0x3872 0x75C2
+0x3873 0x75B8
+0x3874 0x768B
+0x3875 0x76B0
+0x3876 0x76CA
+0x3877 0x76CD
+0x3878 0x76CE
+0x3879 0x7729
+0x387A 0x771F
+0x387B 0x7720
+0x387C 0x7728
+0x387D 0x77E9
+0x387E 0x7830
+0x3921 0x7827
+0x3922 0x7838
+0x3923 0x781D
+0x3924 0x7834
+0x3925 0x7837
+0x3926 0x7825
+0x3927 0x782D
+0x3928 0x7820
+0x3929 0x781F
+0x392A 0x7832
+0x392B 0x7955
+0x392C 0x7950
+0x392D 0x7960
+0x392E 0x795F
+0x392F 0x7956
+0x3930 0x795E
+0x3931 0x795D
+0x3932 0x7957
+0x3933 0x795A
+0x3934 0x79E4
+0x3935 0x79E3
+0x3936 0x79E7
+0x3937 0x79DF
+0x3938 0x79E6
+0x3939 0x79E9
+0x393A 0x79D8
+0x393B 0x7A84
+0x393C 0x7A88
+0x393D 0x7AD9
+0x393E 0x7B06
+0x393F 0x7B11
+0x3940 0x7C89
+0x3941 0x7D21
+0x3942 0x7D17
+0x3943 0x7D0B
+0x3944 0x7D0A
+0x3945 0x7D20
+0x3946 0x7D22
+0x3947 0x7D14
+0x3948 0x7D10
+0x3949 0x7D15
+0x394A 0x7D1A
+0x394B 0x7D1C
+0x394C 0x7D0D
+0x394D 0x7D19
+0x394E 0x7D1B
+0x394F 0x7F3A
+0x3950 0x7F5F
+0x3951 0x7F94
+0x3952 0x7FC5
+0x3953 0x7FC1
+0x3954 0x8006
+0x3955 0x8018
+0x3956 0x8015
+0x3957 0x8019
+0x3958 0x8017
+0x3959 0x803D
+0x395A 0x803F
+0x395B 0x80F1
+0x395C 0x8102
+0x395D 0x80F0
+0x395E 0x8105
+0x395F 0x80ED
+0x3960 0x80F4
+0x3961 0x8106
+0x3962 0x80F8
+0x3963 0x80F3
+0x3964 0x8108
+0x3965 0x80FD
+0x3966 0x810A
+0x3967 0x80FC
+0x3968 0x80EF
+0x3969 0x81ED
+0x396A 0x81EC
+0x396B 0x8200
+0x396C 0x8210
+0x396D 0x822A
+0x396E 0x822B
+0x396F 0x8228
+0x3970 0x822C
+0x3971 0x82BB
+0x3972 0x832B
+0x3973 0x8352
+0x3974 0x8354
+0x3975 0x834A
+0x3976 0x8338
+0x3977 0x8350
+0x3978 0x8349
+0x3979 0x8335
+0x397A 0x8334
+0x397B 0x834F
+0x397C 0x8332
+0x397D 0x8339
+0x397E 0x8336
+0x3A21 0x8317
+0x3A22 0x8340
+0x3A23 0x8331
+0x3A24 0x8328
+0x3A25 0x8343
+0x3A26 0x8654
+0x3A27 0x868A
+0x3A28 0x86AA
+0x3A29 0x8693
+0x3A2A 0x86A4
+0x3A2B 0x86A9
+0x3A2C 0x868C
+0x3A2D 0x86A3
+0x3A2E 0x869C
+0x3A2F 0x8870
+0x3A30 0x8877
+0x3A31 0x8881
+0x3A32 0x8882
+0x3A33 0x887D
+0x3A34 0x8879
+0x3A35 0x8A18
+0x3A36 0x8A10
+0x3A37 0x8A0E
+0x3A38 0x8A0C
+0x3A39 0x8A15
+0x3A3A 0x8A0A
+0x3A3B 0x8A17
+0x3A3C 0x8A13
+0x3A3D 0x8A16
+0x3A3E 0x8A0F
+0x3A3F 0x8A11
+0x3A40 0x8C48
+0x3A41 0x8C7A
+0x3A42 0x8C79
+0x3A43 0x8CA1
+0x3A44 0x8CA2
+0x3A45 0x8D77
+0x3A46 0x8EAC
+0x3A47 0x8ED2
+0x3A48 0x8ED4
+0x3A49 0x8ECF
+0x3A4A 0x8FB1
+0x3A4B 0x9001
+0x3A4C 0x9006
+0x3A4D 0x8FF7
+0x3A4E 0x9000
+0x3A4F 0x8FFA
+0x3A50 0x8FF4
+0x3A51 0x9003
+0x3A52 0x8FFD
+0x3A53 0x9005
+0x3A54 0x8FF8
+0x3A55 0x9095
+0x3A56 0x90E1
+0x3A57 0x90DD
+0x3A58 0x90E2
+0x3A59 0x9152
+0x3A5A 0x914D
+0x3A5B 0x914C
+0x3A5C 0x91D8
+0x3A5D 0x91DD
+0x3A5E 0x91D7
+0x3A5F 0x91DC
+0x3A60 0x91D9
+0x3A61 0x9583
+0x3A62 0x9662
+0x3A63 0x9663
+0x3A64 0x9661
+0x3A65 0x965B
+0x3A66 0x965D
+0x3A67 0x9664
+0x3A68 0x9658
+0x3A69 0x965E
+0x3A6A 0x96BB
+0x3A6B 0x98E2
+0x3A6C 0x99AC
+0x3A6D 0x9AA8
+0x3A6E 0x9AD8
+0x3A6F 0x9B25
+0x3A70 0x9B32
+0x3A71 0x9B3C
+0x3A72 0x4E7E
+0x3A73 0x507A
+0x3A74 0x507D
+0x3A75 0x505C
+0x3A76 0x5047
+0x3A77 0x5043
+0x3A78 0x504C
+0x3A79 0x505A
+0x3A7A 0x5049
+0x3A7B 0x5065
+0x3A7C 0x5076
+0x3A7D 0x504E
+0x3A7E 0x5055
+0x3B21 0x5075
+0x3B22 0x5074
+0x3B23 0x5077
+0x3B24 0x504F
+0x3B25 0x500F
+0x3B26 0x506F
+0x3B27 0x506D
+0x3B28 0x515C
+0x3B29 0x5195
+0x3B2A 0x51F0
+0x3B2B 0x526A
+0x3B2C 0x526F
+0x3B2D 0x52D2
+0x3B2E 0x52D9
+0x3B2F 0x52D8
+0x3B30 0x52D5
+0x3B31 0x5310
+0x3B32 0x530F
+0x3B33 0x5319
+0x3B34 0x533F
+0x3B35 0x5340
+0x3B36 0x533E
+0x3B37 0x53C3
+0x3B38 0x66FC
+0x3B39 0x5546
+0x3B3A 0x556A
+0x3B3B 0x5566
+0x3B3C 0x5544
+0x3B3D 0x555E
+0x3B3E 0x5561
+0x3B3F 0x5543
+0x3B40 0x554A
+0x3B41 0x5531
+0x3B42 0x5556
+0x3B43 0x554F
+0x3B44 0x5555
+0x3B45 0x552F
+0x3B46 0x5564
+0x3B47 0x5538
+0x3B48 0x552E
+0x3B49 0x555C
+0x3B4A 0x552C
+0x3B4B 0x5563
+0x3B4C 0x5533
+0x3B4D 0x5541
+0x3B4E 0x5557
+0x3B4F 0x5708
+0x3B50 0x570B
+0x3B51 0x5709
+0x3B52 0x57DF
+0x3B53 0x5805
+0x3B54 0x580A
+0x3B55 0x5806
+0x3B56 0x57E0
+0x3B57 0x57E4
+0x3B58 0x57FA
+0x3B59 0x5802
+0x3B5A 0x5835
+0x3B5B 0x57F7
+0x3B5C 0x57F9
+0x3B5D 0x5920
+0x3B5E 0x5962
+0x3B5F 0x5A36
+0x3B60 0x5A41
+0x3B61 0x5A49
+0x3B62 0x5A66
+0x3B63 0x5A6A
+0x3B64 0x5A40
+0x3B65 0x5A3C
+0x3B66 0x5A62
+0x3B67 0x5A5A
+0x3B68 0x5A46
+0x3B69 0x5A4A
+0x3B6A 0x5B70
+0x3B6B 0x5BC7
+0x3B6C 0x5BC5
+0x3B6D 0x5BC4
+0x3B6E 0x5BC2
+0x3B6F 0x5BBF
+0x3B70 0x5BC6
+0x3B71 0x5C09
+0x3B72 0x5C08
+0x3B73 0x5C07
+0x3B74 0x5C60
+0x3B75 0x5C5C
+0x3B76 0x5C5D
+0x3B77 0x5D07
+0x3B78 0x5D06
+0x3B79 0x5D0E
+0x3B7A 0x5D1B
+0x3B7B 0x5D16
+0x3B7C 0x5D22
+0x3B7D 0x5D11
+0x3B7E 0x5D29
+0x3C21 0x5D14
+0x3C22 0x5D19
+0x3C23 0x5D24
+0x3C24 0x5D27
+0x3C25 0x5D17
+0x3C26 0x5DE2
+0x3C27 0x5E38
+0x3C28 0x5E36
+0x3C29 0x5E33
+0x3C2A 0x5E37
+0x3C2B 0x5EB7
+0x3C2C 0x5EB8
+0x3C2D 0x5EB6
+0x3C2E 0x5EB5
+0x3C2F 0x5EBE
+0x3C30 0x5F35
+0x3C31 0x5F37
+0x3C32 0x5F57
+0x3C33 0x5F6C
+0x3C34 0x5F69
+0x3C35 0x5F6B
+0x3C36 0x5F97
+0x3C37 0x5F99
+0x3C38 0x5F9E
+0x3C39 0x5F98
+0x3C3A 0x5FA1
+0x3C3B 0x5FA0
+0x3C3C 0x5F9C
+0x3C3D 0x607F
+0x3C3E 0x60A3
+0x3C3F 0x6089
+0x3C40 0x60A0
+0x3C41 0x60A8
+0x3C42 0x60CB
+0x3C43 0x60B4
+0x3C44 0x60E6
+0x3C45 0x60BD
+0x3C46 0x60C5
+0x3C47 0x60BB
+0x3C48 0x60B5
+0x3C49 0x60DC
+0x3C4A 0x60BC
+0x3C4B 0x60D8
+0x3C4C 0x60D5
+0x3C4D 0x60C6
+0x3C4E 0x60DF
+0x3C4F 0x60B8
+0x3C50 0x60DA
+0x3C51 0x60C7
+0x3C52 0x621A
+0x3C53 0x621B
+0x3C54 0x6248
+0x3C55 0x63A0
+0x3C56 0x63A7
+0x3C57 0x6372
+0x3C58 0x6396
+0x3C59 0x63A2
+0x3C5A 0x63A5
+0x3C5B 0x6377
+0x3C5C 0x6367
+0x3C5D 0x6398
+0x3C5E 0x63AA
+0x3C5F 0x6371
+0x3C60 0x63A9
+0x3C61 0x6389
+0x3C62 0x6383
+0x3C63 0x639B
+0x3C64 0x636B
+0x3C65 0x63A8
+0x3C66 0x6384
+0x3C67 0x6388
+0x3C68 0x6399
+0x3C69 0x63A1
+0x3C6A 0x63AC
+0x3C6B 0x6392
+0x3C6C 0x638F
+0x3C6D 0x6380
+0x3C6E 0x637B
+0x3C6F 0x6369
+0x3C70 0x6368
+0x3C71 0x637A
+0x3C72 0x655D
+0x3C73 0x6556
+0x3C74 0x6551
+0x3C75 0x6559
+0x3C76 0x6557
+0x3C77 0x555F
+0x3C78 0x654F
+0x3C79 0x6558
+0x3C7A 0x6555
+0x3C7B 0x6554
+0x3C7C 0x659C
+0x3C7D 0x659B
+0x3C7E 0x65AC
+0x3D21 0x65CF
+0x3D22 0x65CB
+0x3D23 0x65CC
+0x3D24 0x65CE
+0x3D25 0x665D
+0x3D26 0x665A
+0x3D27 0x6664
+0x3D28 0x6668
+0x3D29 0x6666
+0x3D2A 0x665E
+0x3D2B 0x66F9
+0x3D2C 0x52D7
+0x3D2D 0x671B
+0x3D2E 0x6881
+0x3D2F 0x68AF
+0x3D30 0x68A2
+0x3D31 0x6893
+0x3D32 0x68B5
+0x3D33 0x687F
+0x3D34 0x6876
+0x3D35 0x68B1
+0x3D36 0x68A7
+0x3D37 0x6897
+0x3D38 0x68B0
+0x3D39 0x6883
+0x3D3A 0x68C4
+0x3D3B 0x68AD
+0x3D3C 0x6886
+0x3D3D 0x6885
+0x3D3E 0x6894
+0x3D3F 0x689D
+0x3D40 0x68A8
+0x3D41 0x689F
+0x3D42 0x68A1
+0x3D43 0x6882
+0x3D44 0x6B32
+0x3D45 0x6BBA
+0x3D46 0x6BEB
+0x3D47 0x6BEC
+0x3D48 0x6C2B
+0x3D49 0x6D8E
+0x3D4A 0x6DBC
+0x3D4B 0x6DF3
+0x3D4C 0x6DD9
+0x3D4D 0x6DB2
+0x3D4E 0x6DE1
+0x3D4F 0x6DCC
+0x3D50 0x6DE4
+0x3D51 0x6DFB
+0x3D52 0x6DFA
+0x3D53 0x6E05
+0x3D54 0x6DC7
+0x3D55 0x6DCB
+0x3D56 0x6DAF
+0x3D57 0x6DD1
+0x3D58 0x6DAE
+0x3D59 0x6DDE
+0x3D5A 0x6DF9
+0x3D5B 0x6DB8
+0x3D5C 0x6DF7
+0x3D5D 0x6DF5
+0x3D5E 0x6DC5
+0x3D5F 0x6DD2
+0x3D60 0x6E1A
+0x3D61 0x6DB5
+0x3D62 0x6DDA
+0x3D63 0x6DEB
+0x3D64 0x6DD8
+0x3D65 0x6DEA
+0x3D66 0x6DF1
+0x3D67 0x6DEE
+0x3D68 0x6DE8
+0x3D69 0x6DC6
+0x3D6A 0x6DC4
+0x3D6B 0x6DAA
+0x3D6C 0x6DEC
+0x3D6D 0x6DBF
+0x3D6E 0x6DE6
+0x3D6F 0x70F9
+0x3D70 0x7109
+0x3D71 0x710A
+0x3D72 0x70FD
+0x3D73 0x70EF
+0x3D74 0x723D
+0x3D75 0x727D
+0x3D76 0x7281
+0x3D77 0x731C
+0x3D78 0x731B
+0x3D79 0x7316
+0x3D7A 0x7313
+0x3D7B 0x7319
+0x3D7C 0x7387
+0x3D7D 0x7405
+0x3D7E 0x740A
+0x3E21 0x7403
+0x3E22 0x7406
+0x3E23 0x73FE
+0x3E24 0x740D
+0x3E25 0x74E0
+0x3E26 0x74F6
+0x3E27 0x74F7
+0x3E28 0x751C
+0x3E29 0x7522
+0x3E2A 0x7565
+0x3E2B 0x7566
+0x3E2C 0x7562
+0x3E2D 0x7570
+0x3E2E 0x758F
+0x3E2F 0x75D4
+0x3E30 0x75D5
+0x3E31 0x75B5
+0x3E32 0x75CA
+0x3E33 0x75CD
+0x3E34 0x768E
+0x3E35 0x76D4
+0x3E36 0x76D2
+0x3E37 0x76DB
+0x3E38 0x7737
+0x3E39 0x773E
+0x3E3A 0x773C
+0x3E3B 0x7736
+0x3E3C 0x7738
+0x3E3D 0x773A
+0x3E3E 0x786B
+0x3E3F 0x7843
+0x3E40 0x784E
+0x3E41 0x7965
+0x3E42 0x7968
+0x3E43 0x796D
+0x3E44 0x79FB
+0x3E45 0x7A92
+0x3E46 0x7A95
+0x3E47 0x7B20
+0x3E48 0x7B28
+0x3E49 0x7B1B
+0x3E4A 0x7B2C
+0x3E4B 0x7B26
+0x3E4C 0x7B19
+0x3E4D 0x7B1E
+0x3E4E 0x7B2E
+0x3E4F 0x7C92
+0x3E50 0x7C97
+0x3E51 0x7C95
+0x3E52 0x7D46
+0x3E53 0x7D43
+0x3E54 0x7D71
+0x3E55 0x7D2E
+0x3E56 0x7D39
+0x3E57 0x7D3C
+0x3E58 0x7D40
+0x3E59 0x7D30
+0x3E5A 0x7D33
+0x3E5B 0x7D44
+0x3E5C 0x7D2F
+0x3E5D 0x7D42
+0x3E5E 0x7D32
+0x3E5F 0x7D31
+0x3E60 0x7F3D
+0x3E61 0x7F9E
+0x3E62 0x7F9A
+0x3E63 0x7FCC
+0x3E64 0x7FCE
+0x3E65 0x7FD2
+0x3E66 0x801C
+0x3E67 0x804A
+0x3E68 0x8046
+0x3E69 0x812F
+0x3E6A 0x8116
+0x3E6B 0x8123
+0x3E6C 0x812B
+0x3E6D 0x8129
+0x3E6E 0x8130
+0x3E6F 0x8124
+0x3E70 0x8202
+0x3E71 0x8235
+0x3E72 0x8237
+0x3E73 0x8236
+0x3E74 0x8239
+0x3E75 0x838E
+0x3E76 0x839E
+0x3E77 0x8398
+0x3E78 0x8378
+0x3E79 0x83A2
+0x3E7A 0x8396
+0x3E7B 0x83BD
+0x3E7C 0x83AB
+0x3E7D 0x8392
+0x3E7E 0x838A
+0x3F21 0x8393
+0x3F22 0x8389
+0x3F23 0x83A0
+0x3F24 0x8377
+0x3F25 0x837B
+0x3F26 0x837C
+0x3F27 0x8386
+0x3F28 0x83A7
+0x3F29 0x8655
+0x3F2A 0x5F6A
+0x3F2B 0x86C7
+0x3F2C 0x86C0
+0x3F2D 0x86B6
+0x3F2E 0x86C4
+0x3F2F 0x86B5
+0x3F30 0x86C6
+0x3F31 0x86CB
+0x3F32 0x86B1
+0x3F33 0x86AF
+0x3F34 0x86C9
+0x3F35 0x8853
+0x3F36 0x889E
+0x3F37 0x8888
+0x3F38 0x88AB
+0x3F39 0x8892
+0x3F3A 0x8896
+0x3F3B 0x888D
+0x3F3C 0x888B
+0x3F3D 0x8993
+0x3F3E 0x898F
+0x3F3F 0x8A2A
+0x3F40 0x8A1D
+0x3F41 0x8A23
+0x3F42 0x8A25
+0x3F43 0x8A31
+0x3F44 0x8A2D
+0x3F45 0x8A1F
+0x3F46 0x8A1B
+0x3F47 0x8A22
+0x3F48 0x8C49
+0x3F49 0x8C5A
+0x3F4A 0x8CA9
+0x3F4B 0x8CAC
+0x3F4C 0x8CAB
+0x3F4D 0x8CA8
+0x3F4E 0x8CAA
+0x3F4F 0x8CA7
+0x3F50 0x8D67
+0x3F51 0x8D66
+0x3F52 0x8DBE
+0x3F53 0x8DBA
+0x3F54 0x8EDB
+0x3F55 0x8EDF
+0x3F56 0x9019
+0x3F57 0x900D
+0x3F58 0x901A
+0x3F59 0x9017
+0x3F5A 0x9023
+0x3F5B 0x901F
+0x3F5C 0x901D
+0x3F5D 0x9010
+0x3F5E 0x9015
+0x3F5F 0x901E
+0x3F60 0x9020
+0x3F61 0x900F
+0x3F62 0x9022
+0x3F63 0x9016
+0x3F64 0x901B
+0x3F65 0x9014
+0x3F66 0x90E8
+0x3F67 0x90ED
+0x3F68 0x90FD
+0x3F69 0x9157
+0x3F6A 0x91CE
+0x3F6B 0x91F5
+0x3F6C 0x91E6
+0x3F6D 0x91E3
+0x3F6E 0x91E7
+0x3F6F 0x91ED
+0x3F70 0x91E9
+0x3F71 0x9589
+0x3F72 0x966A
+0x3F73 0x9675
+0x3F74 0x9673
+0x3F75 0x9678
+0x3F76 0x9670
+0x3F77 0x9674
+0x3F78 0x9676
+0x3F79 0x9677
+0x3F7A 0x966C
+0x3F7B 0x96C0
+0x3F7C 0x96EA
+0x3F7D 0x96E9
+0x3F7E 0x7AE0
+0x4021 0x7ADF
+0x4022 0x9802
+0x4023 0x9803
+0x4024 0x9B5A
+0x4025 0x9CE5
+0x4026 0x9E75
+0x4027 0x9E7F
+0x4028 0x9EA5
+0x4029 0x9EBB
+0x402A 0x50A2
+0x402B 0x508D
+0x402C 0x5085
+0x402D 0x5099
+0x402E 0x5091
+0x402F 0x5080
+0x4030 0x5096
+0x4031 0x5098
+0x4032 0x509A
+0x4033 0x6700
+0x4034 0x51F1
+0x4035 0x5272
+0x4036 0x5274
+0x4037 0x5275
+0x4038 0x5269
+0x4039 0x52DE
+0x403A 0x52DD
+0x403B 0x52DB
+0x403C 0x535A
+0x403D 0x53A5
+0x403E 0x557B
+0x403F 0x5580
+0x4040 0x55A7
+0x4041 0x557C
+0x4042 0x558A
+0x4043 0x559D
+0x4044 0x5598
+0x4045 0x5582
+0x4046 0x559C
+0x4047 0x55AA
+0x4048 0x5594
+0x4049 0x5587
+0x404A 0x558B
+0x404B 0x5583
+0x404C 0x55B3
+0x404D 0x55AE
+0x404E 0x559F
+0x404F 0x553E
+0x4050 0x55B2
+0x4051 0x559A
+0x4052 0x55BB
+0x4053 0x55AC
+0x4054 0x55B1
+0x4055 0x557E
+0x4056 0x5589
+0x4057 0x55AB
+0x4058 0x5599
+0x4059 0x570D
+0x405A 0x582F
+0x405B 0x582A
+0x405C 0x5834
+0x405D 0x5824
+0x405E 0x5830
+0x405F 0x5831
+0x4060 0x5821
+0x4061 0x581D
+0x4062 0x5820
+0x4063 0x58F9
+0x4064 0x58FA
+0x4065 0x5960
+0x4066 0x5A77
+0x4067 0x5A9A
+0x4068 0x5A7F
+0x4069 0x5A92
+0x406A 0x5A9B
+0x406B 0x5AA7
+0x406C 0x5B73
+0x406D 0x5B71
+0x406E 0x5BD2
+0x406F 0x5BCC
+0x4070 0x5BD3
+0x4071 0x5BD0
+0x4072 0x5C0A
+0x4073 0x5C0B
+0x4074 0x5C31
+0x4075 0x5D4C
+0x4076 0x5D50
+0x4077 0x5D34
+0x4078 0x5D47
+0x4079 0x5DFD
+0x407A 0x5E45
+0x407B 0x5E3D
+0x407C 0x5E40
+0x407D 0x5E43
+0x407E 0x5E7E
+0x4121 0x5ECA
+0x4122 0x5EC1
+0x4123 0x5EC2
+0x4124 0x5EC4
+0x4125 0x5F3C
+0x4126 0x5F6D
+0x4127 0x5FA9
+0x4128 0x5FAA
+0x4129 0x5FA8
+0x412A 0x60D1
+0x412B 0x60E1
+0x412C 0x60B2
+0x412D 0x60B6
+0x412E 0x60E0
+0x412F 0x611C
+0x4130 0x6123
+0x4131 0x60FA
+0x4132 0x6115
+0x4133 0x60F0
+0x4134 0x60FB
+0x4135 0x60F4
+0x4136 0x6168
+0x4137 0x60F1
+0x4138 0x610E
+0x4139 0x60F6
+0x413A 0x6109
+0x413B 0x6100
+0x413C 0x6112
+0x413D 0x621F
+0x413E 0x6249
+0x413F 0x63A3
+0x4140 0x638C
+0x4141 0x63CF
+0x4142 0x63C0
+0x4143 0x63E9
+0x4144 0x63C9
+0x4145 0x63C6
+0x4146 0x63CD
+0x4147 0x63D2
+0x4148 0x63E3
+0x4149 0x63D0
+0x414A 0x63E1
+0x414B 0x63D6
+0x414C 0x63ED
+0x414D 0x63EE
+0x414E 0x6376
+0x414F 0x63F4
+0x4150 0x63EA
+0x4151 0x63DB
+0x4152 0x6452
+0x4153 0x63DA
+0x4154 0x63F9
+0x4155 0x655E
+0x4156 0x6566
+0x4157 0x6562
+0x4158 0x6563
+0x4159 0x6591
+0x415A 0x6590
+0x415B 0x65AF
+0x415C 0x666E
+0x415D 0x6670
+0x415E 0x6674
+0x415F 0x6676
+0x4160 0x666F
+0x4161 0x6691
+0x4162 0x667A
+0x4163 0x667E
+0x4164 0x6677
+0x4165 0x66FE
+0x4166 0x66FF
+0x4167 0x671F
+0x4168 0x671D
+0x4169 0x68FA
+0x416A 0x68D5
+0x416B 0x68E0
+0x416C 0x68D8
+0x416D 0x68D7
+0x416E 0x6905
+0x416F 0x68DF
+0x4170 0x68F5
+0x4171 0x68EE
+0x4172 0x68E7
+0x4173 0x68F9
+0x4174 0x68D2
+0x4175 0x68F2
+0x4176 0x68E3
+0x4177 0x68CB
+0x4178 0x68CD
+0x4179 0x690D
+0x417A 0x6912
+0x417B 0x690E
+0x417C 0x68C9
+0x417D 0x68DA
+0x417E 0x696E
+0x4221 0x68FB
+0x4222 0x6B3E
+0x4223 0x6B3A
+0x4224 0x6B3D
+0x4225 0x6B98
+0x4226 0x6B96
+0x4227 0x6BBC
+0x4228 0x6BEF
+0x4229 0x6C2E
+0x422A 0x6C2F
+0x422B 0x6C2C
+0x422C 0x6E2F
+0x422D 0x6E38
+0x422E 0x6E54
+0x422F 0x6E21
+0x4230 0x6E32
+0x4231 0x6E67
+0x4232 0x6E4A
+0x4233 0x6E20
+0x4234 0x6E25
+0x4235 0x6E23
+0x4236 0x6E1B
+0x4237 0x6E5B
+0x4238 0x6E58
+0x4239 0x6E24
+0x423A 0x6E56
+0x423B 0x6E6E
+0x423C 0x6E2D
+0x423D 0x6E26
+0x423E 0x6E6F
+0x423F 0x6E34
+0x4240 0x6E4D
+0x4241 0x6E3A
+0x4242 0x6E2C
+0x4243 0x6E43
+0x4244 0x6E1D
+0x4245 0x6E3E
+0x4246 0x6ECB
+0x4247 0x6E89
+0x4248 0x6E19
+0x4249 0x6E4E
+0x424A 0x6E63
+0x424B 0x6E44
+0x424C 0x6E72
+0x424D 0x6E69
+0x424E 0x6E5F
+0x424F 0x7119
+0x4250 0x711A
+0x4251 0x7126
+0x4252 0x7130
+0x4253 0x7121
+0x4254 0x7136
+0x4255 0x716E
+0x4256 0x711C
+0x4257 0x724C
+0x4258 0x7284
+0x4259 0x7280
+0x425A 0x7336
+0x425B 0x7325
+0x425C 0x7334
+0x425D 0x7329
+0x425E 0x743A
+0x425F 0x742A
+0x4260 0x7433
+0x4261 0x7422
+0x4262 0x7425
+0x4263 0x7435
+0x4264 0x7436
+0x4265 0x7434
+0x4266 0x742F
+0x4267 0x741B
+0x4268 0x7426
+0x4269 0x7428
+0x426A 0x7525
+0x426B 0x7526
+0x426C 0x756B
+0x426D 0x756A
+0x426E 0x75E2
+0x426F 0x75DB
+0x4270 0x75E3
+0x4271 0x75D9
+0x4272 0x75D8
+0x4273 0x75DE
+0x4274 0x75E0
+0x4275 0x767B
+0x4276 0x767C
+0x4277 0x7696
+0x4278 0x7693
+0x4279 0x76B4
+0x427A 0x76DC
+0x427B 0x774F
+0x427C 0x77ED
+0x427D 0x785D
+0x427E 0x786C
+0x4321 0x786F
+0x4322 0x7A0D
+0x4323 0x7A08
+0x4324 0x7A0B
+0x4325 0x7A05
+0x4326 0x7A00
+0x4327 0x7A98
+0x4328 0x7A97
+0x4329 0x7A96
+0x432A 0x7AE5
+0x432B 0x7AE3
+0x432C 0x7B49
+0x432D 0x7B56
+0x432E 0x7B46
+0x432F 0x7B50
+0x4330 0x7B52
+0x4331 0x7B54
+0x4332 0x7B4D
+0x4333 0x7B4B
+0x4334 0x7B4F
+0x4335 0x7B51
+0x4336 0x7C9F
+0x4337 0x7CA5
+0x4338 0x7D5E
+0x4339 0x7D50
+0x433A 0x7D68
+0x433B 0x7D55
+0x433C 0x7D2B
+0x433D 0x7D6E
+0x433E 0x7D72
+0x433F 0x7D61
+0x4340 0x7D66
+0x4341 0x7D62
+0x4342 0x7D70
+0x4343 0x7D73
+0x4344 0x5584
+0x4345 0x7FD4
+0x4346 0x7FD5
+0x4347 0x800B
+0x4348 0x8052
+0x4349 0x8085
+0x434A 0x8155
+0x434B 0x8154
+0x434C 0x814B
+0x434D 0x8151
+0x434E 0x814E
+0x434F 0x8139
+0x4350 0x8146
+0x4351 0x813E
+0x4352 0x814C
+0x4353 0x8153
+0x4354 0x8174
+0x4355 0x8212
+0x4356 0x821C
+0x4357 0x83E9
+0x4358 0x8403
+0x4359 0x83F8
+0x435A 0x840D
+0x435B 0x83E0
+0x435C 0x83C5
+0x435D 0x840B
+0x435E 0x83C1
+0x435F 0x83EF
+0x4360 0x83F1
+0x4361 0x83F4
+0x4362 0x8457
+0x4363 0x840A
+0x4364 0x83F0
+0x4365 0x840C
+0x4366 0x83CC
+0x4367 0x83FD
+0x4368 0x83F2
+0x4369 0x83CA
+0x436A 0x8438
+0x436B 0x840E
+0x436C 0x8404
+0x436D 0x83DC
+0x436E 0x8407
+0x436F 0x83D4
+0x4370 0x83DF
+0x4371 0x865B
+0x4372 0x86DF
+0x4373 0x86D9
+0x4374 0x86ED
+0x4375 0x86D4
+0x4376 0x86DB
+0x4377 0x86E4
+0x4378 0x86D0
+0x4379 0x86DE
+0x437A 0x8857
+0x437B 0x88C1
+0x437C 0x88C2
+0x437D 0x88B1
+0x437E 0x8983
+0x4421 0x8996
+0x4422 0x8A3B
+0x4423 0x8A60
+0x4424 0x8A55
+0x4425 0x8A5E
+0x4426 0x8A3C
+0x4427 0x8A41
+0x4428 0x8A54
+0x4429 0x8A5B
+0x442A 0x8A50
+0x442B 0x8A46
+0x442C 0x8A34
+0x442D 0x8A3A
+0x442E 0x8A36
+0x442F 0x8A56
+0x4430 0x8C61
+0x4431 0x8C82
+0x4432 0x8CAF
+0x4433 0x8CBC
+0x4434 0x8CB3
+0x4435 0x8CBD
+0x4436 0x8CC1
+0x4437 0x8CBB
+0x4438 0x8CC0
+0x4439 0x8CB4
+0x443A 0x8CB7
+0x443B 0x8CB6
+0x443C 0x8CBF
+0x443D 0x8CB8
+0x443E 0x8D8A
+0x443F 0x8D85
+0x4440 0x8D81
+0x4441 0x8DCE
+0x4442 0x8DDD
+0x4443 0x8DCB
+0x4444 0x8DDA
+0x4445 0x8DD1
+0x4446 0x8DCC
+0x4447 0x8DDB
+0x4448 0x8DC6
+0x4449 0x8EFB
+0x444A 0x8EF8
+0x444B 0x8EFC
+0x444C 0x8F9C
+0x444D 0x902E
+0x444E 0x9035
+0x444F 0x9031
+0x4450 0x9038
+0x4451 0x9032
+0x4452 0x9036
+0x4453 0x9102
+0x4454 0x90F5
+0x4455 0x9109
+0x4456 0x90FE
+0x4457 0x9163
+0x4458 0x9165
+0x4459 0x91CF
+0x445A 0x9214
+0x445B 0x9215
+0x445C 0x9223
+0x445D 0x9209
+0x445E 0x921E
+0x445F 0x920D
+0x4460 0x9210
+0x4461 0x9207
+0x4462 0x9211
+0x4463 0x9594
+0x4464 0x958F
+0x4465 0x958B
+0x4466 0x9591
+0x4467 0x9593
+0x4468 0x9592
+0x4469 0x958E
+0x446A 0x968A
+0x446B 0x968E
+0x446C 0x968B
+0x446D 0x967D
+0x446E 0x9685
+0x446F 0x9686
+0x4470 0x968D
+0x4471 0x9672
+0x4472 0x9684
+0x4473 0x96C1
+0x4474 0x96C5
+0x4475 0x96C4
+0x4476 0x96C6
+0x4477 0x96C7
+0x4478 0x96EF
+0x4479 0x96F2
+0x447A 0x97CC
+0x447B 0x9805
+0x447C 0x9806
+0x447D 0x9808
+0x447E 0x98E7
+0x4521 0x98EA
+0x4522 0x98EF
+0x4523 0x98E9
+0x4524 0x98F2
+0x4525 0x98ED
+0x4526 0x99AE
+0x4527 0x99AD
+0x4528 0x9EC3
+0x4529 0x9ECD
+0x452A 0x9ED1
+0x452B 0x4E82
+0x452C 0x50AD
+0x452D 0x50B5
+0x452E 0x50B2
+0x452F 0x50B3
+0x4530 0x50C5
+0x4531 0x50BE
+0x4532 0x50AC
+0x4533 0x50B7
+0x4534 0x50BB
+0x4535 0x50AF
+0x4536 0x50C7
+0x4537 0x527F
+0x4538 0x5277
+0x4539 0x527D
+0x453A 0x52DF
+0x453B 0x52E6
+0x453C 0x52E4
+0x453D 0x52E2
+0x453E 0x52E3
+0x453F 0x532F
+0x4540 0x55DF
+0x4541 0x55E8
+0x4542 0x55D3
+0x4543 0x55E6
+0x4544 0x55CE
+0x4545 0x55DC
+0x4546 0x55C7
+0x4547 0x55D1
+0x4548 0x55E3
+0x4549 0x55E4
+0x454A 0x55EF
+0x454B 0x55DA
+0x454C 0x55E1
+0x454D 0x55C5
+0x454E 0x55C6
+0x454F 0x55E5
+0x4550 0x55C9
+0x4551 0x5712
+0x4552 0x5713
+0x4553 0x585E
+0x4554 0x5851
+0x4555 0x5858
+0x4556 0x5857
+0x4557 0x585A
+0x4558 0x5854
+0x4559 0x586B
+0x455A 0x584C
+0x455B 0x586D
+0x455C 0x584A
+0x455D 0x5862
+0x455E 0x5852
+0x455F 0x584B
+0x4560 0x5967
+0x4561 0x5AC1
+0x4562 0x5AC9
+0x4563 0x5ACC
+0x4564 0x5ABE
+0x4565 0x5ABD
+0x4566 0x5ABC
+0x4567 0x5AB3
+0x4568 0x5AC2
+0x4569 0x5AB2
+0x456A 0x5D69
+0x456B 0x5D6F
+0x456C 0x5E4C
+0x456D 0x5E79
+0x456E 0x5EC9
+0x456F 0x5EC8
+0x4570 0x5F12
+0x4571 0x5F59
+0x4572 0x5FAC
+0x4573 0x5FAE
+0x4574 0x611A
+0x4575 0x610F
+0x4576 0x6148
+0x4577 0x611F
+0x4578 0x60F3
+0x4579 0x611B
+0x457A 0x60F9
+0x457B 0x6101
+0x457C 0x6108
+0x457D 0x614E
+0x457E 0x614C
+0x4621 0x6144
+0x4622 0x614D
+0x4623 0x613E
+0x4624 0x6134
+0x4625 0x6127
+0x4626 0x610D
+0x4627 0x6106
+0x4628 0x6137
+0x4629 0x6221
+0x462A 0x6222
+0x462B 0x6413
+0x462C 0x643E
+0x462D 0x641E
+0x462E 0x642A
+0x462F 0x642D
+0x4630 0x643D
+0x4631 0x642C
+0x4632 0x640F
+0x4633 0x641C
+0x4634 0x6414
+0x4635 0x640D
+0x4636 0x6436
+0x4637 0x6416
+0x4638 0x6417
+0x4639 0x6406
+0x463A 0x656C
+0x463B 0x659F
+0x463C 0x65B0
+0x463D 0x6697
+0x463E 0x6689
+0x463F 0x6687
+0x4640 0x6688
+0x4641 0x6696
+0x4642 0x6684
+0x4643 0x6698
+0x4644 0x668D
+0x4645 0x6703
+0x4646 0x6994
+0x4647 0x696D
+0x4648 0x695A
+0x4649 0x6977
+0x464A 0x6960
+0x464B 0x6954
+0x464C 0x6975
+0x464D 0x6930
+0x464E 0x6982
+0x464F 0x694A
+0x4650 0x6968
+0x4651 0x696B
+0x4652 0x695E
+0x4653 0x6953
+0x4654 0x6979
+0x4655 0x6986
+0x4656 0x695D
+0x4657 0x6963
+0x4658 0x695B
+0x4659 0x6B47
+0x465A 0x6B72
+0x465B 0x6BC0
+0x465C 0x6BBF
+0x465D 0x6BD3
+0x465E 0x6BFD
+0x465F 0x6EA2
+0x4660 0x6EAF
+0x4661 0x6ED3
+0x4662 0x6EB6
+0x4663 0x6EC2
+0x4664 0x6E90
+0x4665 0x6E9D
+0x4666 0x6EC7
+0x4667 0x6EC5
+0x4668 0x6EA5
+0x4669 0x6E98
+0x466A 0x6EBC
+0x466B 0x6EBA
+0x466C 0x6EAB
+0x466D 0x6ED1
+0x466E 0x6E96
+0x466F 0x6E9C
+0x4670 0x6EC4
+0x4671 0x6ED4
+0x4672 0x6EAA
+0x4673 0x6EA7
+0x4674 0x6EB4
+0x4675 0x714E
+0x4676 0x7159
+0x4677 0x7169
+0x4678 0x7164
+0x4679 0x7149
+0x467A 0x7167
+0x467B 0x715C
+0x467C 0x716C
+0x467D 0x7166
+0x467E 0x714C
+0x4721 0x7165
+0x4722 0x715E
+0x4723 0x7146
+0x4724 0x7168
+0x4725 0x7156
+0x4726 0x723A
+0x4727 0x7252
+0x4728 0x7337
+0x4729 0x7345
+0x472A 0x733F
+0x472B 0x733E
+0x472C 0x746F
+0x472D 0x745A
+0x472E 0x7455
+0x472F 0x745F
+0x4730 0x745E
+0x4731 0x7441
+0x4732 0x743F
+0x4733 0x7459
+0x4734 0x745B
+0x4735 0x745C
+0x4736 0x7576
+0x4737 0x7578
+0x4738 0x7600
+0x4739 0x75F0
+0x473A 0x7601
+0x473B 0x75F2
+0x473C 0x75F1
+0x473D 0x75FA
+0x473E 0x75FF
+0x473F 0x75F4
+0x4740 0x75F3
+0x4741 0x76DE
+0x4742 0x76DF
+0x4743 0x775B
+0x4744 0x776B
+0x4745 0x7766
+0x4746 0x775E
+0x4747 0x7763
+0x4748 0x7779
+0x4749 0x776A
+0x474A 0x776C
+0x474B 0x775C
+0x474C 0x7765
+0x474D 0x7768
+0x474E 0x7762
+0x474F 0x77EE
+0x4750 0x788E
+0x4751 0x78B0
+0x4752 0x7897
+0x4753 0x7898
+0x4754 0x788C
+0x4755 0x7889
+0x4756 0x787C
+0x4757 0x7891
+0x4758 0x7893
+0x4759 0x787F
+0x475A 0x797A
+0x475B 0x797F
+0x475C 0x7981
+0x475D 0x842C
+0x475E 0x79BD
+0x475F 0x7A1C
+0x4760 0x7A1A
+0x4761 0x7A20
+0x4762 0x7A14
+0x4763 0x7A1F
+0x4764 0x7A1E
+0x4765 0x7A9F
+0x4766 0x7AA0
+0x4767 0x7B77
+0x4768 0x7BC0
+0x4769 0x7B60
+0x476A 0x7B6E
+0x476B 0x7B67
+0x476C 0x7CB1
+0x476D 0x7CB3
+0x476E 0x7CB5
+0x476F 0x7D93
+0x4770 0x7D79
+0x4771 0x7D91
+0x4772 0x7D81
+0x4773 0x7D8F
+0x4774 0x7D5B
+0x4775 0x7F6E
+0x4776 0x7F69
+0x4777 0x7F6A
+0x4778 0x7F72
+0x4779 0x7FA9
+0x477A 0x7FA8
+0x477B 0x7FA4
+0x477C 0x8056
+0x477D 0x8058
+0x477E 0x8086
+0x4821 0x8084
+0x4822 0x8171
+0x4823 0x8170
+0x4824 0x8178
+0x4825 0x8165
+0x4826 0x816E
+0x4827 0x8173
+0x4828 0x816B
+0x4829 0x8179
+0x482A 0x817A
+0x482B 0x8166
+0x482C 0x8205
+0x482D 0x8247
+0x482E 0x8482
+0x482F 0x8477
+0x4830 0x843D
+0x4831 0x8431
+0x4832 0x8475
+0x4833 0x8466
+0x4834 0x846B
+0x4835 0x8449
+0x4836 0x846C
+0x4837 0x845B
+0x4838 0x843C
+0x4839 0x8435
+0x483A 0x8461
+0x483B 0x8463
+0x483C 0x8469
+0x483D 0x846D
+0x483E 0x8446
+0x483F 0x865E
+0x4840 0x865C
+0x4841 0x865F
+0x4842 0x86F9
+0x4843 0x8713
+0x4844 0x8708
+0x4845 0x8707
+0x4846 0x8700
+0x4847 0x86FE
+0x4848 0x86FB
+0x4849 0x8702
+0x484A 0x8703
+0x484B 0x8706
+0x484C 0x870A
+0x484D 0x8859
+0x484E 0x88DF
+0x484F 0x88D4
+0x4850 0x88D9
+0x4851 0x88DC
+0x4852 0x88D8
+0x4853 0x88DD
+0x4854 0x88E1
+0x4855 0x88CA
+0x4856 0x88D5
+0x4857 0x88D2
+0x4858 0x899C
+0x4859 0x89E3
+0x485A 0x8A6B
+0x485B 0x8A72
+0x485C 0x8A73
+0x485D 0x8A66
+0x485E 0x8A69
+0x485F 0x8A70
+0x4860 0x8A87
+0x4861 0x8A7C
+0x4862 0x8A63
+0x4863 0x8AA0
+0x4864 0x8A71
+0x4865 0x8A85
+0x4866 0x8A6D
+0x4867 0x8A62
+0x4868 0x8A6E
+0x4869 0x8A6C
+0x486A 0x8A79
+0x486B 0x8A7B
+0x486C 0x8A3E
+0x486D 0x8A68
+0x486E 0x8C62
+0x486F 0x8C8A
+0x4870 0x8C89
+0x4871 0x8CCA
+0x4872 0x8CC7
+0x4873 0x8CC8
+0x4874 0x8CC4
+0x4875 0x8CB2
+0x4876 0x8CC3
+0x4877 0x8CC2
+0x4878 0x8CC5
+0x4879 0x8DE1
+0x487A 0x8DDF
+0x487B 0x8DE8
+0x487C 0x8DEF
+0x487D 0x8DF3
+0x487E 0x8DFA
+0x4921 0x8DEA
+0x4922 0x8DE4
+0x4923 0x8DE6
+0x4924 0x8EB2
+0x4925 0x8F03
+0x4926 0x8F09
+0x4927 0x8EFE
+0x4928 0x8F0A
+0x4929 0x8F9F
+0x492A 0x8FB2
+0x492B 0x904B
+0x492C 0x904A
+0x492D 0x9053
+0x492E 0x9042
+0x492F 0x9054
+0x4930 0x903C
+0x4931 0x9055
+0x4932 0x9050
+0x4933 0x9047
+0x4934 0x904F
+0x4935 0x904E
+0x4936 0x904D
+0x4937 0x9051
+0x4938 0x903E
+0x4939 0x9041
+0x493A 0x9112
+0x493B 0x9117
+0x493C 0x916C
+0x493D 0x916A
+0x493E 0x9169
+0x493F 0x91C9
+0x4940 0x9237
+0x4941 0x9257
+0x4942 0x9238
+0x4943 0x923D
+0x4944 0x9240
+0x4945 0x923E
+0x4946 0x925B
+0x4947 0x924B
+0x4948 0x9264
+0x4949 0x9251
+0x494A 0x9234
+0x494B 0x9249
+0x494C 0x924D
+0x494D 0x9245
+0x494E 0x9239
+0x494F 0x923F
+0x4950 0x925A
+0x4951 0x9598
+0x4952 0x9698
+0x4953 0x9694
+0x4954 0x9695
+0x4955 0x96CD
+0x4956 0x96CB
+0x4957 0x96C9
+0x4958 0x96CA
+0x4959 0x96F7
+0x495A 0x96FB
+0x495B 0x96F9
+0x495C 0x96F6
+0x495D 0x9756
+0x495E 0x9774
+0x495F 0x9776
+0x4960 0x9810
+0x4961 0x9811
+0x4962 0x9813
+0x4963 0x980A
+0x4964 0x9812
+0x4965 0x980C
+0x4966 0x98FC
+0x4967 0x98F4
+0x4968 0x98FD
+0x4969 0x98FE
+0x496A 0x99B3
+0x496B 0x99B1
+0x496C 0x99B4
+0x496D 0x9AE1
+0x496E 0x9CE9
+0x496F 0x9E82
+0x4970 0x9F0E
+0x4971 0x9F13
+0x4972 0x9F20
+0x4973 0x50E7
+0x4974 0x50EE
+0x4975 0x50E5
+0x4976 0x50D6
+0x4977 0x50ED
+0x4978 0x50DA
+0x4979 0x50D5
+0x497A 0x50CF
+0x497B 0x50D1
+0x497C 0x50F1
+0x497D 0x50CE
+0x497E 0x50E9
+0x4A21 0x5162
+0x4A22 0x51F3
+0x4A23 0x5283
+0x4A24 0x5282
+0x4A25 0x5331
+0x4A26 0x53AD
+0x4A27 0x55FE
+0x4A28 0x5600
+0x4A29 0x561B
+0x4A2A 0x5617
+0x4A2B 0x55FD
+0x4A2C 0x5614
+0x4A2D 0x5606
+0x4A2E 0x5609
+0x4A2F 0x560D
+0x4A30 0x560E
+0x4A31 0x55F7
+0x4A32 0x5616
+0x4A33 0x561F
+0x4A34 0x5608
+0x4A35 0x5610
+0x4A36 0x55F6
+0x4A37 0x5718
+0x4A38 0x5716
+0x4A39 0x5875
+0x4A3A 0x587E
+0x4A3B 0x5883
+0x4A3C 0x5893
+0x4A3D 0x588A
+0x4A3E 0x5879
+0x4A3F 0x5885
+0x4A40 0x587D
+0x4A41 0x58FD
+0x4A42 0x5925
+0x4A43 0x5922
+0x4A44 0x5924
+0x4A45 0x596A
+0x4A46 0x5969
+0x4A47 0x5AE1
+0x4A48 0x5AE6
+0x4A49 0x5AE9
+0x4A4A 0x5AD7
+0x4A4B 0x5AD6
+0x4A4C 0x5AD8
+0x4A4D 0x5AE3
+0x4A4E 0x5B75
+0x4A4F 0x5BDE
+0x4A50 0x5BE7
+0x4A51 0x5BE1
+0x4A52 0x5BE5
+0x4A53 0x5BE6
+0x4A54 0x5BE8
+0x4A55 0x5BE2
+0x4A56 0x5BE4
+0x4A57 0x5BDF
+0x4A58 0x5C0D
+0x4A59 0x5C62
+0x4A5A 0x5D84
+0x4A5B 0x5D87
+0x4A5C 0x5E5B
+0x4A5D 0x5E63
+0x4A5E 0x5E55
+0x4A5F 0x5E57
+0x4A60 0x5E54
+0x4A61 0x5ED3
+0x4A62 0x5ED6
+0x4A63 0x5F0A
+0x4A64 0x5F46
+0x4A65 0x5F70
+0x4A66 0x5FB9
+0x4A67 0x6147
+0x4A68 0x613F
+0x4A69 0x614B
+0x4A6A 0x6177
+0x4A6B 0x6162
+0x4A6C 0x6163
+0x4A6D 0x615F
+0x4A6E 0x615A
+0x4A6F 0x6158
+0x4A70 0x6175
+0x4A71 0x622A
+0x4A72 0x6487
+0x4A73 0x6458
+0x4A74 0x6454
+0x4A75 0x64A4
+0x4A76 0x6478
+0x4A77 0x645F
+0x4A78 0x647A
+0x4A79 0x6451
+0x4A7A 0x6467
+0x4A7B 0x6434
+0x4A7C 0x646D
+0x4A7D 0x647B
+0x4A7E 0x6572
+0x4B21 0x65A1
+0x4B22 0x65D7
+0x4B23 0x65D6
+0x4B24 0x66A2
+0x4B25 0x66A8
+0x4B26 0x669D
+0x4B27 0x699C
+0x4B28 0x69A8
+0x4B29 0x6995
+0x4B2A 0x69C1
+0x4B2B 0x69AE
+0x4B2C 0x69D3
+0x4B2D 0x69CB
+0x4B2E 0x699B
+0x4B2F 0x69B7
+0x4B30 0x69BB
+0x4B31 0x69AB
+0x4B32 0x69B4
+0x4B33 0x69D0
+0x4B34 0x69CD
+0x4B35 0x69AD
+0x4B36 0x69CC
+0x4B37 0x69A6
+0x4B38 0x69C3
+0x4B39 0x69A3
+0x4B3A 0x6B49
+0x4B3B 0x6B4C
+0x4B3C 0x6C33
+0x4B3D 0x6F33
+0x4B3E 0x6F14
+0x4B3F 0x6EFE
+0x4B40 0x6F13
+0x4B41 0x6EF4
+0x4B42 0x6F29
+0x4B43 0x6F3E
+0x4B44 0x6F20
+0x4B45 0x6F2C
+0x4B46 0x6F0F
+0x4B47 0x6F02
+0x4B48 0x6F22
+0x4B49 0x6EFF
+0x4B4A 0x6EEF
+0x4B4B 0x6F06
+0x4B4C 0x6F31
+0x4B4D 0x6F38
+0x4B4E 0x6F32
+0x4B4F 0x6F23
+0x4B50 0x6F15
+0x4B51 0x6F2B
+0x4B52 0x6F2F
+0x4B53 0x6F88
+0x4B54 0x6F2A
+0x4B55 0x6EEC
+0x4B56 0x6F01
+0x4B57 0x6EF2
+0x4B58 0x6ECC
+0x4B59 0x6EF7
+0x4B5A 0x7194
+0x4B5B 0x7199
+0x4B5C 0x717D
+0x4B5D 0x718A
+0x4B5E 0x7184
+0x4B5F 0x7192
+0x4B60 0x723E
+0x4B61 0x7292
+0x4B62 0x7296
+0x4B63 0x7344
+0x4B64 0x7350
+0x4B65 0x7464
+0x4B66 0x7463
+0x4B67 0x746A
+0x4B68 0x7470
+0x4B69 0x746D
+0x4B6A 0x7504
+0x4B6B 0x7591
+0x4B6C 0x7627
+0x4B6D 0x760D
+0x4B6E 0x760B
+0x4B6F 0x7609
+0x4B70 0x7613
+0x4B71 0x76E1
+0x4B72 0x76E3
+0x4B73 0x7784
+0x4B74 0x777D
+0x4B75 0x777F
+0x4B76 0x7761
+0x4B77 0x78C1
+0x4B78 0x789F
+0x4B79 0x78A7
+0x4B7A 0x78B3
+0x4B7B 0x78A9
+0x4B7C 0x78A3
+0x4B7D 0x798E
+0x4B7E 0x798F
+0x4C21 0x798D
+0x4C22 0x7A2E
+0x4C23 0x7A31
+0x4C24 0x7AAA
+0x4C25 0x7AA9
+0x4C26 0x7AED
+0x4C27 0x7AEF
+0x4C28 0x7BA1
+0x4C29 0x7B95
+0x4C2A 0x7B8B
+0x4C2B 0x7B75
+0x4C2C 0x7B97
+0x4C2D 0x7B9D
+0x4C2E 0x7B94
+0x4C2F 0x7B8F
+0x4C30 0x7BB8
+0x4C31 0x7B87
+0x4C32 0x7B84
+0x4C33 0x7CB9
+0x4C34 0x7CBD
+0x4C35 0x7CBE
+0x4C36 0x7DBB
+0x4C37 0x7DB0
+0x4C38 0x7D9C
+0x4C39 0x7DBD
+0x4C3A 0x7DBE
+0x4C3B 0x7DA0
+0x4C3C 0x7DCA
+0x4C3D 0x7DB4
+0x4C3E 0x7DB2
+0x4C3F 0x7DB1
+0x4C40 0x7DBA
+0x4C41 0x7DA2
+0x4C42 0x7DBF
+0x4C43 0x7DB5
+0x4C44 0x7DB8
+0x4C45 0x7DAD
+0x4C46 0x7DD2
+0x4C47 0x7DC7
+0x4C48 0x7DAC
+0x4C49 0x7F70
+0x4C4A 0x7FE0
+0x4C4B 0x7FE1
+0x4C4C 0x7FDF
+0x4C4D 0x805E
+0x4C4E 0x805A
+0x4C4F 0x8087
+0x4C50 0x8150
+0x4C51 0x8180
+0x4C52 0x818F
+0x4C53 0x8188
+0x4C54 0x818A
+0x4C55 0x817F
+0x4C56 0x8182
+0x4C57 0x81E7
+0x4C58 0x81FA
+0x4C59 0x8207
+0x4C5A 0x8214
+0x4C5B 0x821E
+0x4C5C 0x824B
+0x4C5D 0x84C9
+0x4C5E 0x84BF
+0x4C5F 0x84C6
+0x4C60 0x84C4
+0x4C61 0x8499
+0x4C62 0x849E
+0x4C63 0x84B2
+0x4C64 0x849C
+0x4C65 0x84CB
+0x4C66 0x84B8
+0x4C67 0x84C0
+0x4C68 0x84D3
+0x4C69 0x8490
+0x4C6A 0x84BC
+0x4C6B 0x84D1
+0x4C6C 0x84CA
+0x4C6D 0x873F
+0x4C6E 0x871C
+0x4C6F 0x873B
+0x4C70 0x8722
+0x4C71 0x8725
+0x4C72 0x8734
+0x4C73 0x8718
+0x4C74 0x8755
+0x4C75 0x8737
+0x4C76 0x8729
+0x4C77 0x88F3
+0x4C78 0x8902
+0x4C79 0x88F4
+0x4C7A 0x88F9
+0x4C7B 0x88F8
+0x4C7C 0x88FD
+0x4C7D 0x88E8
+0x4C7E 0x891A
+0x4D21 0x88EF
+0x4D22 0x8AA6
+0x4D23 0x8A8C
+0x4D24 0x8A9E
+0x4D25 0x8AA3
+0x4D26 0x8A8D
+0x4D27 0x8AA1
+0x4D28 0x8A93
+0x4D29 0x8AA4
+0x4D2A 0x8AAA
+0x4D2B 0x8AA5
+0x4D2C 0x8AA8
+0x4D2D 0x8A98
+0x4D2E 0x8A91
+0x4D2F 0x8A9A
+0x4D30 0x8AA7
+0x4D31 0x8C6A
+0x4D32 0x8C8D
+0x4D33 0x8C8C
+0x4D34 0x8CD3
+0x4D35 0x8CD1
+0x4D36 0x8CD2
+0x4D37 0x8D6B
+0x4D38 0x8D99
+0x4D39 0x8D95
+0x4D3A 0x8DFC
+0x4D3B 0x8F14
+0x4D3C 0x8F12
+0x4D3D 0x8F15
+0x4D3E 0x8F13
+0x4D3F 0x8FA3
+0x4D40 0x9060
+0x4D41 0x9058
+0x4D42 0x905C
+0x4D43 0x9063
+0x4D44 0x9059
+0x4D45 0x905E
+0x4D46 0x9062
+0x4D47 0x905D
+0x4D48 0x905B
+0x4D49 0x9119
+0x4D4A 0x9118
+0x4D4B 0x911E
+0x4D4C 0x9175
+0x4D4D 0x9178
+0x4D4E 0x9177
+0x4D4F 0x9174
+0x4D50 0x9278
+0x4D51 0x9280
+0x4D52 0x9285
+0x4D53 0x9298
+0x4D54 0x9296
+0x4D55 0x927B
+0x4D56 0x9293
+0x4D57 0x929C
+0x4D58 0x92A8
+0x4D59 0x927C
+0x4D5A 0x9291
+0x4D5B 0x95A1
+0x4D5C 0x95A8
+0x4D5D 0x95A9
+0x4D5E 0x95A3
+0x4D5F 0x95A5
+0x4D60 0x95A4
+0x4D61 0x9699
+0x4D62 0x969C
+0x4D63 0x969B
+0x4D64 0x96CC
+0x4D65 0x96D2
+0x4D66 0x9700
+0x4D67 0x977C
+0x4D68 0x9785
+0x4D69 0x97F6
+0x4D6A 0x9817
+0x4D6B 0x9818
+0x4D6C 0x98AF
+0x4D6D 0x98B1
+0x4D6E 0x9903
+0x4D6F 0x9905
+0x4D70 0x990C
+0x4D71 0x9909
+0x4D72 0x99C1
+0x4D73 0x9AAF
+0x4D74 0x9AB0
+0x4D75 0x9AE6
+0x4D76 0x9B41
+0x4D77 0x9B42
+0x4D78 0x9CF4
+0x4D79 0x9CF6
+0x4D7A 0x9CF3
+0x4D7B 0x9EBC
+0x4D7C 0x9F3B
+0x4D7D 0x9F4A
+0x4D7E 0x5104
+0x4E21 0x5100
+0x4E22 0x50FB
+0x4E23 0x50F5
+0x4E24 0x50F9
+0x4E25 0x5102
+0x4E26 0x5108
+0x4E27 0x5109
+0x4E28 0x5105
+0x4E29 0x51DC
+0x4E2A 0x5287
+0x4E2B 0x5288
+0x4E2C 0x5289
+0x4E2D 0x528D
+0x4E2E 0x528A
+0x4E2F 0x52F0
+0x4E30 0x53B2
+0x4E31 0x562E
+0x4E32 0x563B
+0x4E33 0x5639
+0x4E34 0x5632
+0x4E35 0x563F
+0x4E36 0x5634
+0x4E37 0x5629
+0x4E38 0x5653
+0x4E39 0x564E
+0x4E3A 0x5657
+0x4E3B 0x5674
+0x4E3C 0x5636
+0x4E3D 0x562F
+0x4E3E 0x5630
+0x4E3F 0x5880
+0x4E40 0x589F
+0x4E41 0x589E
+0x4E42 0x58B3
+0x4E43 0x589C
+0x4E44 0x58AE
+0x4E45 0x58A9
+0x4E46 0x58A6
+0x4E47 0x596D
+0x4E48 0x5B09
+0x4E49 0x5AFB
+0x4E4A 0x5B0B
+0x4E4B 0x5AF5
+0x4E4C 0x5B0C
+0x4E4D 0x5B08
+0x4E4E 0x5BEE
+0x4E4F 0x5BEC
+0x4E50 0x5BE9
+0x4E51 0x5BEB
+0x4E52 0x5C64
+0x4E53 0x5C65
+0x4E54 0x5D9D
+0x4E55 0x5D94
+0x4E56 0x5E62
+0x4E57 0x5E5F
+0x4E58 0x5E61
+0x4E59 0x5EE2
+0x4E5A 0x5EDA
+0x4E5B 0x5EDF
+0x4E5C 0x5EDD
+0x4E5D 0x5EE3
+0x4E5E 0x5EE0
+0x4E5F 0x5F48
+0x4E60 0x5F71
+0x4E61 0x5FB7
+0x4E62 0x5FB5
+0x4E63 0x6176
+0x4E64 0x6167
+0x4E65 0x616E
+0x4E66 0x615D
+0x4E67 0x6155
+0x4E68 0x6182
+0x4E69 0x617C
+0x4E6A 0x6170
+0x4E6B 0x616B
+0x4E6C 0x617E
+0x4E6D 0x61A7
+0x4E6E 0x6190
+0x4E6F 0x61AB
+0x4E70 0x618E
+0x4E71 0x61AC
+0x4E72 0x619A
+0x4E73 0x61A4
+0x4E74 0x6194
+0x4E75 0x61AE
+0x4E76 0x622E
+0x4E77 0x6469
+0x4E78 0x646F
+0x4E79 0x6479
+0x4E7A 0x649E
+0x4E7B 0x64B2
+0x4E7C 0x6488
+0x4E7D 0x6490
+0x4E7E 0x64B0
+0x4F21 0x64A5
+0x4F22 0x6493
+0x4F23 0x6495
+0x4F24 0x64A9
+0x4F25 0x6492
+0x4F26 0x64AE
+0x4F27 0x64AD
+0x4F28 0x64AB
+0x4F29 0x649A
+0x4F2A 0x64AC
+0x4F2B 0x6499
+0x4F2C 0x64A2
+0x4F2D 0x64B3
+0x4F2E 0x6575
+0x4F2F 0x6577
+0x4F30 0x6578
+0x4F31 0x66AE
+0x4F32 0x66AB
+0x4F33 0x66B4
+0x4F34 0x66B1
+0x4F35 0x6A23
+0x4F36 0x6A1F
+0x4F37 0x69E8
+0x4F38 0x6A01
+0x4F39 0x6A1E
+0x4F3A 0x6A19
+0x4F3B 0x69FD
+0x4F3C 0x6A21
+0x4F3D 0x6A13
+0x4F3E 0x6A0A
+0x4F3F 0x69F3
+0x4F40 0x6A02
+0x4F41 0x6A05
+0x4F42 0x69ED
+0x4F43 0x6A11
+0x4F44 0x6B50
+0x4F45 0x6B4E
+0x4F46 0x6BA4
+0x4F47 0x6BC5
+0x4F48 0x6BC6
+0x4F49 0x6F3F
+0x4F4A 0x6F7C
+0x4F4B 0x6F84
+0x4F4C 0x6F51
+0x4F4D 0x6F66
+0x4F4E 0x6F54
+0x4F4F 0x6F86
+0x4F50 0x6F6D
+0x4F51 0x6F5B
+0x4F52 0x6F78
+0x4F53 0x6F6E
+0x4F54 0x6F8E
+0x4F55 0x6F7A
+0x4F56 0x6F70
+0x4F57 0x6F64
+0x4F58 0x6F97
+0x4F59 0x6F58
+0x4F5A 0x6ED5
+0x4F5B 0x6F6F
+0x4F5C 0x6F60
+0x4F5D 0x6F5F
+0x4F5E 0x719F
+0x4F5F 0x71AC
+0x4F60 0x71B1
+0x4F61 0x71A8
+0x4F62 0x7256
+0x4F63 0x729B
+0x4F64 0x734E
+0x4F65 0x7357
+0x4F66 0x7469
+0x4F67 0x748B
+0x4F68 0x7483
+0x4F69 0x747E
+0x4F6A 0x7480
+0x4F6B 0x757F
+0x4F6C 0x7620
+0x4F6D 0x7629
+0x4F6E 0x761F
+0x4F6F 0x7624
+0x4F70 0x7626
+0x4F71 0x7621
+0x4F72 0x7622
+0x4F73 0x769A
+0x4F74 0x76BA
+0x4F75 0x76E4
+0x4F76 0x778E
+0x4F77 0x7787
+0x4F78 0x778C
+0x4F79 0x7791
+0x4F7A 0x778B
+0x4F7B 0x78CB
+0x4F7C 0x78C5
+0x4F7D 0x78BA
+0x4F7E 0x78CA
+0x5021 0x78BE
+0x5022 0x78D5
+0x5023 0x78BC
+0x5024 0x78D0
+0x5025 0x7A3F
+0x5026 0x7A3C
+0x5027 0x7A40
+0x5028 0x7A3D
+0x5029 0x7A37
+0x502A 0x7A3B
+0x502B 0x7AAF
+0x502C 0x7AAE
+0x502D 0x7BAD
+0x502E 0x7BB1
+0x502F 0x7BC4
+0x5030 0x7BB4
+0x5031 0x7BC6
+0x5032 0x7BC7
+0x5033 0x7BC1
+0x5034 0x7BA0
+0x5035 0x7BCC
+0x5036 0x7CCA
+0x5037 0x7DE0
+0x5038 0x7DF4
+0x5039 0x7DEF
+0x503A 0x7DFB
+0x503B 0x7DD8
+0x503C 0x7DEC
+0x503D 0x7DDD
+0x503E 0x7DE8
+0x503F 0x7DE3
+0x5040 0x7DDA
+0x5041 0x7DDE
+0x5042 0x7DE9
+0x5043 0x7D9E
+0x5044 0x7DD9
+0x5045 0x7DF2
+0x5046 0x7DF9
+0x5047 0x7F75
+0x5048 0x7F77
+0x5049 0x7FAF
+0x504A 0x7FE9
+0x504B 0x8026
+0x504C 0x819B
+0x504D 0x819C
+0x504E 0x819D
+0x504F 0x81A0
+0x5050 0x819A
+0x5051 0x8198
+0x5052 0x8517
+0x5053 0x853D
+0x5054 0x851A
+0x5055 0x84EE
+0x5056 0x852C
+0x5057 0x852D
+0x5058 0x8513
+0x5059 0x8511
+0x505A 0x8523
+0x505B 0x8521
+0x505C 0x8514
+0x505D 0x84EC
+0x505E 0x8525
+0x505F 0x84FF
+0x5060 0x8506
+0x5061 0x8782
+0x5062 0x8774
+0x5063 0x8776
+0x5064 0x8760
+0x5065 0x8766
+0x5066 0x8778
+0x5067 0x8768
+0x5068 0x8759
+0x5069 0x8757
+0x506A 0x874C
+0x506B 0x8753
+0x506C 0x885B
+0x506D 0x885D
+0x506E 0x8910
+0x506F 0x8907
+0x5070 0x8912
+0x5071 0x8913
+0x5072 0x8915
+0x5073 0x890A
+0x5074 0x8ABC
+0x5075 0x8AD2
+0x5076 0x8AC7
+0x5077 0x8AC4
+0x5078 0x8A95
+0x5079 0x8ACB
+0x507A 0x8AF8
+0x507B 0x8AB2
+0x507C 0x8AC9
+0x507D 0x8AC2
+0x507E 0x8ABF
+0x5121 0x8AB0
+0x5122 0x8AD6
+0x5123 0x8ACD
+0x5124 0x8AB6
+0x5125 0x8AB9
+0x5126 0x8ADB
+0x5127 0x8C4C
+0x5128 0x8C4E
+0x5129 0x8C6C
+0x512A 0x8CE0
+0x512B 0x8CDE
+0x512C 0x8CE6
+0x512D 0x8CE4
+0x512E 0x8CEC
+0x512F 0x8CED
+0x5130 0x8CE2
+0x5131 0x8CE3
+0x5132 0x8CDC
+0x5133 0x8CEA
+0x5134 0x8CE1
+0x5135 0x8D6D
+0x5136 0x8D9F
+0x5137 0x8DA3
+0x5138 0x8E2B
+0x5139 0x8E10
+0x513A 0x8E1D
+0x513B 0x8E22
+0x513C 0x8E0F
+0x513D 0x8E29
+0x513E 0x8E1F
+0x513F 0x8E21
+0x5140 0x8E1E
+0x5141 0x8EBA
+0x5142 0x8F1D
+0x5143 0x8F1B
+0x5144 0x8F1F
+0x5145 0x8F29
+0x5146 0x8F26
+0x5147 0x8F2A
+0x5148 0x8F1C
+0x5149 0x8F1E
+0x514A 0x8F25
+0x514B 0x9069
+0x514C 0x906E
+0x514D 0x9068
+0x514E 0x906D
+0x514F 0x9077
+0x5150 0x9130
+0x5151 0x912D
+0x5152 0x9127
+0x5153 0x9131
+0x5154 0x9187
+0x5155 0x9189
+0x5156 0x918B
+0x5157 0x9183
+0x5158 0x92C5
+0x5159 0x92BB
+0x515A 0x92B7
+0x515B 0x92EA
+0x515C 0x92AC
+0x515D 0x92E4
+0x515E 0x92C1
+0x515F 0x92B3
+0x5160 0x92BC
+0x5161 0x92D2
+0x5162 0x92C7
+0x5163 0x92F0
+0x5164 0x92B2
+0x5165 0x95AD
+0x5166 0x95B1
+0x5167 0x9704
+0x5168 0x9706
+0x5169 0x9707
+0x516A 0x9709
+0x516B 0x9760
+0x516C 0x978D
+0x516D 0x978B
+0x516E 0x978F
+0x516F 0x9821
+0x5170 0x982B
+0x5171 0x981C
+0x5172 0x98B3
+0x5173 0x990A
+0x5174 0x9913
+0x5175 0x9912
+0x5176 0x9918
+0x5177 0x99DD
+0x5178 0x99D0
+0x5179 0x99DF
+0x517A 0x99DB
+0x517B 0x99D1
+0x517C 0x99D5
+0x517D 0x99D2
+0x517E 0x99D9
+0x5221 0x9AB7
+0x5222 0x9AEE
+0x5223 0x9AEF
+0x5224 0x9B27
+0x5225 0x9B45
+0x5226 0x9B44
+0x5227 0x9B77
+0x5228 0x9B6F
+0x5229 0x9D06
+0x522A 0x9D09
+0x522B 0x9D03
+0x522C 0x9EA9
+0x522D 0x9EBE
+0x522E 0x9ECE
+0x522F 0x58A8
+0x5230 0x9F52
+0x5231 0x5112
+0x5232 0x5118
+0x5233 0x5114
+0x5234 0x5110
+0x5235 0x5115
+0x5236 0x5180
+0x5237 0x51AA
+0x5238 0x51DD
+0x5239 0x5291
+0x523A 0x5293
+0x523B 0x52F3
+0x523C 0x5659
+0x523D 0x566B
+0x523E 0x5679
+0x523F 0x5669
+0x5240 0x5664
+0x5241 0x5678
+0x5242 0x566A
+0x5243 0x5668
+0x5244 0x5665
+0x5245 0x5671
+0x5246 0x566F
+0x5247 0x566C
+0x5248 0x5662
+0x5249 0x5676
+0x524A 0x58C1
+0x524B 0x58BE
+0x524C 0x58C7
+0x524D 0x58C5
+0x524E 0x596E
+0x524F 0x5B1D
+0x5250 0x5B34
+0x5251 0x5B78
+0x5252 0x5BF0
+0x5253 0x5C0E
+0x5254 0x5F4A
+0x5255 0x61B2
+0x5256 0x6191
+0x5257 0x61A9
+0x5258 0x618A
+0x5259 0x61CD
+0x525A 0x61B6
+0x525B 0x61BE
+0x525C 0x61CA
+0x525D 0x61C8
+0x525E 0x6230
+0x525F 0x64C5
+0x5260 0x64C1
+0x5261 0x64CB
+0x5262 0x64BB
+0x5263 0x64BC
+0x5264 0x64DA
+0x5265 0x64C4
+0x5266 0x64C7
+0x5267 0x64C2
+0x5268 0x64CD
+0x5269 0x64BF
+0x526A 0x64D2
+0x526B 0x64D4
+0x526C 0x64BE
+0x526D 0x6574
+0x526E 0x66C6
+0x526F 0x66C9
+0x5270 0x66B9
+0x5271 0x66C4
+0x5272 0x66C7
+0x5273 0x66B8
+0x5274 0x6A3D
+0x5275 0x6A38
+0x5276 0x6A3A
+0x5277 0x6A59
+0x5278 0x6A6B
+0x5279 0x6A58
+0x527A 0x6A39
+0x527B 0x6A44
+0x527C 0x6A62
+0x527D 0x6A61
+0x527E 0x6A4B
+0x5321 0x6A47
+0x5322 0x6A35
+0x5323 0x6A5F
+0x5324 0x6A48
+0x5325 0x6B59
+0x5326 0x6B77
+0x5327 0x6C05
+0x5328 0x6FC2
+0x5329 0x6FB1
+0x532A 0x6FA1
+0x532B 0x6FC3
+0x532C 0x6FA4
+0x532D 0x6FC1
+0x532E 0x6FA7
+0x532F 0x6FB3
+0x5330 0x6FC0
+0x5331 0x6FB9
+0x5332 0x6FB6
+0x5333 0x6FA6
+0x5334 0x6FA0
+0x5335 0x6FB4
+0x5336 0x71BE
+0x5337 0x71C9
+0x5338 0x71D0
+0x5339 0x71D2
+0x533A 0x71C8
+0x533B 0x71D5
+0x533C 0x71B9
+0x533D 0x71CE
+0x533E 0x71D9
+0x533F 0x71DC
+0x5340 0x71C3
+0x5341 0x71C4
+0x5342 0x7368
+0x5343 0x749C
+0x5344 0x74A3
+0x5345 0x7498
+0x5346 0x749F
+0x5347 0x749E
+0x5348 0x74E2
+0x5349 0x750C
+0x534A 0x750D
+0x534B 0x7634
+0x534C 0x7638
+0x534D 0x763A
+0x534E 0x76E7
+0x534F 0x76E5
+0x5350 0x77A0
+0x5351 0x779E
+0x5352 0x779F
+0x5353 0x77A5
+0x5354 0x78E8
+0x5355 0x78DA
+0x5356 0x78EC
+0x5357 0x78E7
+0x5358 0x79A6
+0x5359 0x7A4D
+0x535A 0x7A4E
+0x535B 0x7A46
+0x535C 0x7A4C
+0x535D 0x7A4B
+0x535E 0x7ABA
+0x535F 0x7BD9
+0x5360 0x7C11
+0x5361 0x7BC9
+0x5362 0x7BE4
+0x5363 0x7BDB
+0x5364 0x7BE1
+0x5365 0x7BE9
+0x5366 0x7BE6
+0x5367 0x7CD5
+0x5368 0x7CD6
+0x5369 0x7E0A
+0x536A 0x7E11
+0x536B 0x7E08
+0x536C 0x7E1B
+0x536D 0x7E23
+0x536E 0x7E1E
+0x536F 0x7E1D
+0x5370 0x7E09
+0x5371 0x7E10
+0x5372 0x7F79
+0x5373 0x7FB2
+0x5374 0x7FF0
+0x5375 0x7FF1
+0x5376 0x7FEE
+0x5377 0x8028
+0x5378 0x81B3
+0x5379 0x81A9
+0x537A 0x81A8
+0x537B 0x81FB
+0x537C 0x8208
+0x537D 0x8258
+0x537E 0x8259
+0x5421 0x854A
+0x5422 0x8559
+0x5423 0x8548
+0x5424 0x8568
+0x5425 0x8569
+0x5426 0x8543
+0x5427 0x8549
+0x5428 0x856D
+0x5429 0x856A
+0x542A 0x855E
+0x542B 0x8783
+0x542C 0x879F
+0x542D 0x879E
+0x542E 0x87A2
+0x542F 0x878D
+0x5430 0x8861
+0x5431 0x892A
+0x5432 0x8932
+0x5433 0x8925
+0x5434 0x892B
+0x5435 0x8921
+0x5436 0x89AA
+0x5437 0x89A6
+0x5438 0x8AE6
+0x5439 0x8AFA
+0x543A 0x8AEB
+0x543B 0x8AF1
+0x543C 0x8B00
+0x543D 0x8ADC
+0x543E 0x8AE7
+0x543F 0x8AEE
+0x5440 0x8AFE
+0x5441 0x8B01
+0x5442 0x8B02
+0x5443 0x8AF7
+0x5444 0x8AED
+0x5445 0x8AF3
+0x5446 0x8AF6
+0x5447 0x8AFC
+0x5448 0x8C6B
+0x5449 0x8C6D
+0x544A 0x8C93
+0x544B 0x8CF4
+0x544C 0x8E44
+0x544D 0x8E31
+0x544E 0x8E34
+0x544F 0x8E42
+0x5450 0x8E39
+0x5451 0x8E35
+0x5452 0x8F3B
+0x5453 0x8F2F
+0x5454 0x8F38
+0x5455 0x8F33
+0x5456 0x8FA8
+0x5457 0x8FA6
+0x5458 0x9075
+0x5459 0x9074
+0x545A 0x9078
+0x545B 0x9072
+0x545C 0x907C
+0x545D 0x907A
+0x545E 0x9134
+0x545F 0x9192
+0x5460 0x9320
+0x5461 0x9336
+0x5462 0x92F8
+0x5463 0x9333
+0x5464 0x932F
+0x5465 0x9322
+0x5466 0x92FC
+0x5467 0x932B
+0x5468 0x9304
+0x5469 0x931A
+0x546A 0x9310
+0x546B 0x9326
+0x546C 0x9321
+0x546D 0x9315
+0x546E 0x932E
+0x546F 0x9319
+0x5470 0x95BB
+0x5471 0x96A7
+0x5472 0x96A8
+0x5473 0x96AA
+0x5474 0x96D5
+0x5475 0x970E
+0x5476 0x9711
+0x5477 0x9716
+0x5478 0x970D
+0x5479 0x9713
+0x547A 0x970F
+0x547B 0x975B
+0x547C 0x975C
+0x547D 0x9766
+0x547E 0x9798
+0x5521 0x9830
+0x5522 0x9838
+0x5523 0x983B
+0x5524 0x9837
+0x5525 0x982D
+0x5526 0x9839
+0x5527 0x9824
+0x5528 0x9910
+0x5529 0x9928
+0x552A 0x991E
+0x552B 0x991B
+0x552C 0x9921
+0x552D 0x991A
+0x552E 0x99ED
+0x552F 0x99E2
+0x5530 0x99F1
+0x5531 0x9AB8
+0x5532 0x9ABC
+0x5533 0x9AFB
+0x5534 0x9AED
+0x5535 0x9B28
+0x5536 0x9B91
+0x5537 0x9D15
+0x5538 0x9D23
+0x5539 0x9D26
+0x553A 0x9D28
+0x553B 0x9D12
+0x553C 0x9D1B
+0x553D 0x9ED8
+0x553E 0x9ED4
+0x553F 0x9F8D
+0x5540 0x9F9C
+0x5541 0x512A
+0x5542 0x511F
+0x5543 0x5121
+0x5544 0x5132
+0x5545 0x52F5
+0x5546 0x568E
+0x5547 0x5680
+0x5548 0x5690
+0x5549 0x5685
+0x554A 0x5687
+0x554B 0x568F
+0x554C 0x58D5
+0x554D 0x58D3
+0x554E 0x58D1
+0x554F 0x58CE
+0x5550 0x5B30
+0x5551 0x5B2A
+0x5552 0x5B24
+0x5553 0x5B7A
+0x5554 0x5C37
+0x5555 0x5C68
+0x5556 0x5DBC
+0x5557 0x5DBA
+0x5558 0x5DBD
+0x5559 0x5DB8
+0x555A 0x5E6B
+0x555B 0x5F4C
+0x555C 0x5FBD
+0x555D 0x61C9
+0x555E 0x61C2
+0x555F 0x61C7
+0x5560 0x61E6
+0x5561 0x61CB
+0x5562 0x6232
+0x5563 0x6234
+0x5564 0x64CE
+0x5565 0x64CA
+0x5566 0x64D8
+0x5567 0x64E0
+0x5568 0x64F0
+0x5569 0x64E6
+0x556A 0x64EC
+0x556B 0x64F1
+0x556C 0x64E2
+0x556D 0x64ED
+0x556E 0x6582
+0x556F 0x6583
+0x5570 0x66D9
+0x5571 0x66D6
+0x5572 0x6A80
+0x5573 0x6A94
+0x5574 0x6A84
+0x5575 0x6AA2
+0x5576 0x6A9C
+0x5577 0x6ADB
+0x5578 0x6AA3
+0x5579 0x6A7E
+0x557A 0x6A97
+0x557B 0x6A90
+0x557C 0x6AA0
+0x557D 0x6B5C
+0x557E 0x6BAE
+0x5621 0x6BDA
+0x5622 0x6C08
+0x5623 0x6FD8
+0x5624 0x6FF1
+0x5625 0x6FDF
+0x5626 0x6FE0
+0x5627 0x6FDB
+0x5628 0x6FE4
+0x5629 0x6FEB
+0x562A 0x6FEF
+0x562B 0x6F80
+0x562C 0x6FEC
+0x562D 0x6FE1
+0x562E 0x6FE9
+0x562F 0x6FD5
+0x5630 0x6FEE
+0x5631 0x6FF0
+0x5632 0x71E7
+0x5633 0x71DF
+0x5634 0x71EE
+0x5635 0x71E6
+0x5636 0x71E5
+0x5637 0x71ED
+0x5638 0x71EC
+0x5639 0x71F4
+0x563A 0x71E0
+0x563B 0x7235
+0x563C 0x7246
+0x563D 0x7370
+0x563E 0x7372
+0x563F 0x74A9
+0x5640 0x74B0
+0x5641 0x74A6
+0x5642 0x74A8
+0x5643 0x7646
+0x5644 0x7642
+0x5645 0x764C
+0x5646 0x76EA
+0x5647 0x77B3
+0x5648 0x77AA
+0x5649 0x77B0
+0x564A 0x77AC
+0x564B 0x77A7
+0x564C 0x77AD
+0x564D 0x77EF
+0x564E 0x78F7
+0x564F 0x78FA
+0x5650 0x78F4
+0x5651 0x78EF
+0x5652 0x7901
+0x5653 0x79A7
+0x5654 0x79AA
+0x5655 0x7A57
+0x5656 0x7ABF
+0x5657 0x7C07
+0x5658 0x7C0D
+0x5659 0x7BFE
+0x565A 0x7BF7
+0x565B 0x7C0C
+0x565C 0x7BE0
+0x565D 0x7CE0
+0x565E 0x7CDC
+0x565F 0x7CDE
+0x5660 0x7CE2
+0x5661 0x7CDF
+0x5662 0x7CD9
+0x5663 0x7CDD
+0x5664 0x7E2E
+0x5665 0x7E3E
+0x5666 0x7E46
+0x5667 0x7E37
+0x5668 0x7E32
+0x5669 0x7E43
+0x566A 0x7E2B
+0x566B 0x7E3D
+0x566C 0x7E31
+0x566D 0x7E45
+0x566E 0x7E41
+0x566F 0x7E34
+0x5670 0x7E39
+0x5671 0x7E48
+0x5672 0x7E35
+0x5673 0x7E3F
+0x5674 0x7E2F
+0x5675 0x7F44
+0x5676 0x7FF3
+0x5677 0x7FFC
+0x5678 0x8071
+0x5679 0x8072
+0x567A 0x8070
+0x567B 0x806F
+0x567C 0x8073
+0x567D 0x81C6
+0x567E 0x81C3
+0x5721 0x81BA
+0x5722 0x81C2
+0x5723 0x81C0
+0x5724 0x81BF
+0x5725 0x81BD
+0x5726 0x81C9
+0x5727 0x81BE
+0x5728 0x81E8
+0x5729 0x8209
+0x572A 0x8271
+0x572B 0x85AA
+0x572C 0x8584
+0x572D 0x857E
+0x572E 0x859C
+0x572F 0x8591
+0x5730 0x8594
+0x5731 0x85AF
+0x5732 0x859B
+0x5733 0x8587
+0x5734 0x85A8
+0x5735 0x858A
+0x5736 0x8667
+0x5737 0x87C0
+0x5738 0x87D1
+0x5739 0x87B3
+0x573A 0x87D2
+0x573B 0x87C6
+0x573C 0x87AB
+0x573D 0x87BB
+0x573E 0x87BA
+0x573F 0x87C8
+0x5740 0x87CB
+0x5741 0x893B
+0x5742 0x8936
+0x5743 0x8944
+0x5744 0x8938
+0x5745 0x893D
+0x5746 0x89AC
+0x5747 0x8B0E
+0x5748 0x8B17
+0x5749 0x8B19
+0x574A 0x8B1B
+0x574B 0x8B0A
+0x574C 0x8B20
+0x574D 0x8B1D
+0x574E 0x8B04
+0x574F 0x8B10
+0x5750 0x8C41
+0x5751 0x8C3F
+0x5752 0x8C73
+0x5753 0x8CFA
+0x5754 0x8CFD
+0x5755 0x8CFC
+0x5756 0x8CF8
+0x5757 0x8CFB
+0x5758 0x8DA8
+0x5759 0x8E49
+0x575A 0x8E4B
+0x575B 0x8E48
+0x575C 0x8E4A
+0x575D 0x8F44
+0x575E 0x8F3E
+0x575F 0x8F42
+0x5760 0x8F45
+0x5761 0x8F3F
+0x5762 0x907F
+0x5763 0x907D
+0x5764 0x9084
+0x5765 0x9081
+0x5766 0x9082
+0x5767 0x9080
+0x5768 0x9139
+0x5769 0x91A3
+0x576A 0x919E
+0x576B 0x919C
+0x576C 0x934D
+0x576D 0x9382
+0x576E 0x9328
+0x576F 0x9375
+0x5770 0x934A
+0x5771 0x9365
+0x5772 0x934B
+0x5773 0x9318
+0x5774 0x937E
+0x5775 0x936C
+0x5776 0x935B
+0x5777 0x9370
+0x5778 0x935A
+0x5779 0x9354
+0x577A 0x95CA
+0x577B 0x95CB
+0x577C 0x95CC
+0x577D 0x95C8
+0x577E 0x95C6
+0x5821 0x96B1
+0x5822 0x96B8
+0x5823 0x96D6
+0x5824 0x971C
+0x5825 0x971E
+0x5826 0x97A0
+0x5827 0x97D3
+0x5828 0x9846
+0x5829 0x98B6
+0x582A 0x9935
+0x582B 0x9A01
+0x582C 0x99FF
+0x582D 0x9BAE
+0x582E 0x9BAB
+0x582F 0x9BAA
+0x5830 0x9BAD
+0x5831 0x9D3B
+0x5832 0x9D3F
+0x5833 0x9E8B
+0x5834 0x9ECF
+0x5835 0x9EDE
+0x5836 0x9EDC
+0x5837 0x9EDD
+0x5838 0x9EDB
+0x5839 0x9F3E
+0x583A 0x9F4B
+0x583B 0x53E2
+0x583C 0x5695
+0x583D 0x56AE
+0x583E 0x58D9
+0x583F 0x58D8
+0x5840 0x5B38
+0x5841 0x5F5D
+0x5842 0x61E3
+0x5843 0x6233
+0x5844 0x64F4
+0x5845 0x64F2
+0x5846 0x64FE
+0x5847 0x6506
+0x5848 0x64FA
+0x5849 0x64FB
+0x584A 0x64F7
+0x584B 0x65B7
+0x584C 0x66DC
+0x584D 0x6726
+0x584E 0x6AB3
+0x584F 0x6AAC
+0x5850 0x6AC3
+0x5851 0x6ABB
+0x5852 0x6AB8
+0x5853 0x6AC2
+0x5854 0x6AAE
+0x5855 0x6AAF
+0x5856 0x6B5F
+0x5857 0x6B78
+0x5858 0x6BAF
+0x5859 0x7009
+0x585A 0x700B
+0x585B 0x6FFE
+0x585C 0x7006
+0x585D 0x6FFA
+0x585E 0x7011
+0x585F 0x700F
+0x5860 0x71FB
+0x5861 0x71FC
+0x5862 0x71FE
+0x5863 0x71F8
+0x5864 0x7377
+0x5865 0x7375
+0x5866 0x74A7
+0x5867 0x74BF
+0x5868 0x7515
+0x5869 0x7656
+0x586A 0x7658
+0x586B 0x7652
+0x586C 0x77BD
+0x586D 0x77BF
+0x586E 0x77BB
+0x586F 0x77BC
+0x5870 0x790E
+0x5871 0x79AE
+0x5872 0x7A61
+0x5873 0x7A62
+0x5874 0x7A60
+0x5875 0x7AC4
+0x5876 0x7AC5
+0x5877 0x7C2B
+0x5878 0x7C27
+0x5879 0x7C2A
+0x587A 0x7C1E
+0x587B 0x7C23
+0x587C 0x7C21
+0x587D 0x7CE7
+0x587E 0x7E54
+0x5921 0x7E55
+0x5922 0x7E5E
+0x5923 0x7E5A
+0x5924 0x7E61
+0x5925 0x7E52
+0x5926 0x7E59
+0x5927 0x7F48
+0x5928 0x7FF9
+0x5929 0x7FFB
+0x592A 0x8077
+0x592B 0x8076
+0x592C 0x81CD
+0x592D 0x81CF
+0x592E 0x820A
+0x592F 0x85CF
+0x5930 0x85A9
+0x5931 0x85CD
+0x5932 0x85D0
+0x5933 0x85C9
+0x5934 0x85B0
+0x5935 0x85BA
+0x5936 0x85B9
+0x5937 0x85A6
+0x5938 0x87EF
+0x5939 0x87EC
+0x593A 0x87F2
+0x593B 0x87E0
+0x593C 0x8986
+0x593D 0x89B2
+0x593E 0x89F4
+0x593F 0x8B28
+0x5940 0x8B39
+0x5941 0x8B2C
+0x5942 0x8B2B
+0x5943 0x8C50
+0x5944 0x8D05
+0x5945 0x8E59
+0x5946 0x8E63
+0x5947 0x8E66
+0x5948 0x8E64
+0x5949 0x8E5F
+0x594A 0x8E55
+0x594B 0x8EC0
+0x594C 0x8F49
+0x594D 0x8F4D
+0x594E 0x9087
+0x594F 0x9083
+0x5950 0x9088
+0x5951 0x91AB
+0x5952 0x91AC
+0x5953 0x91D0
+0x5954 0x9394
+0x5955 0x938A
+0x5956 0x9396
+0x5957 0x93A2
+0x5958 0x93B3
+0x5959 0x93AE
+0x595A 0x93AC
+0x595B 0x93B0
+0x595C 0x9398
+0x595D 0x939A
+0x595E 0x9397
+0x595F 0x95D4
+0x5960 0x95D6
+0x5961 0x95D0
+0x5962 0x95D5
+0x5963 0x96E2
+0x5964 0x96DC
+0x5965 0x96D9
+0x5966 0x96DB
+0x5967 0x96DE
+0x5968 0x9724
+0x5969 0x97A3
+0x596A 0x97A6
+0x596B 0x97AD
+0x596C 0x97F9
+0x596D 0x984D
+0x596E 0x984F
+0x596F 0x984C
+0x5970 0x984E
+0x5971 0x9853
+0x5972 0x98BA
+0x5973 0x993E
+0x5974 0x993F
+0x5975 0x993D
+0x5976 0x992E
+0x5977 0x99A5
+0x5978 0x9A0E
+0x5979 0x9AC1
+0x597A 0x9B03
+0x597B 0x9B06
+0x597C 0x9B4F
+0x597D 0x9B4E
+0x597E 0x9B4D
+0x5A21 0x9BCA
+0x5A22 0x9BC9
+0x5A23 0x9BFD
+0x5A24 0x9BC8
+0x5A25 0x9BC0
+0x5A26 0x9D51
+0x5A27 0x9D5D
+0x5A28 0x9D60
+0x5A29 0x9EE0
+0x5A2A 0x9F15
+0x5A2B 0x9F2C
+0x5A2C 0x5133
+0x5A2D 0x56A5
+0x5A2E 0x58DE
+0x5A2F 0x58DF
+0x5A30 0x58E2
+0x5A31 0x5BF5
+0x5A32 0x9F90
+0x5A33 0x5EEC
+0x5A34 0x61F2
+0x5A35 0x61F7
+0x5A36 0x61F6
+0x5A37 0x61F5
+0x5A38 0x6500
+0x5A39 0x650F
+0x5A3A 0x66E0
+0x5A3B 0x66DD
+0x5A3C 0x6AE5
+0x5A3D 0x6ADD
+0x5A3E 0x6ADA
+0x5A3F 0x6AD3
+0x5A40 0x701B
+0x5A41 0x701F
+0x5A42 0x7028
+0x5A43 0x701A
+0x5A44 0x701D
+0x5A45 0x7015
+0x5A46 0x7018
+0x5A47 0x7206
+0x5A48 0x720D
+0x5A49 0x7258
+0x5A4A 0x72A2
+0x5A4B 0x7378
+0x5A4C 0x737A
+0x5A4D 0x74BD
+0x5A4E 0x74CA
+0x5A4F 0x74E3
+0x5A50 0x7587
+0x5A51 0x7586
+0x5A52 0x765F
+0x5A53 0x7661
+0x5A54 0x77C7
+0x5A55 0x7919
+0x5A56 0x79B1
+0x5A57 0x7A6B
+0x5A58 0x7A69
+0x5A59 0x7C3E
+0x5A5A 0x7C3F
+0x5A5B 0x7C38
+0x5A5C 0x7C3D
+0x5A5D 0x7C37
+0x5A5E 0x7C40
+0x5A5F 0x7E6B
+0x5A60 0x7E6D
+0x5A61 0x7E79
+0x5A62 0x7E69
+0x5A63 0x7E6A
+0x5A64 0x7F85
+0x5A65 0x7E73
+0x5A66 0x7FB6
+0x5A67 0x7FB9
+0x5A68 0x7FB8
+0x5A69 0x81D8
+0x5A6A 0x85E9
+0x5A6B 0x85DD
+0x5A6C 0x85EA
+0x5A6D 0x85D5
+0x5A6E 0x85E4
+0x5A6F 0x85E5
+0x5A70 0x85F7
+0x5A71 0x87FB
+0x5A72 0x8805
+0x5A73 0x880D
+0x5A74 0x87F9
+0x5A75 0x87FE
+0x5A76 0x8960
+0x5A77 0x895F
+0x5A78 0x8956
+0x5A79 0x895E
+0x5A7A 0x8B41
+0x5A7B 0x8B5C
+0x5A7C 0x8B58
+0x5A7D 0x8B49
+0x5A7E 0x8B5A
+0x5B21 0x8B4E
+0x5B22 0x8B4F
+0x5B23 0x8B46
+0x5B24 0x8B59
+0x5B25 0x8D08
+0x5B26 0x8D0A
+0x5B27 0x8E7C
+0x5B28 0x8E72
+0x5B29 0x8E87
+0x5B2A 0x8E76
+0x5B2B 0x8E6C
+0x5B2C 0x8E7A
+0x5B2D 0x8E74
+0x5B2E 0x8F54
+0x5B2F 0x8F4E
+0x5B30 0x8FAD
+0x5B31 0x908A
+0x5B32 0x908B
+0x5B33 0x91B1
+0x5B34 0x91AE
+0x5B35 0x93E1
+0x5B36 0x93D1
+0x5B37 0x93DF
+0x5B38 0x93C3
+0x5B39 0x93C8
+0x5B3A 0x93DC
+0x5B3B 0x93DD
+0x5B3C 0x93D6
+0x5B3D 0x93E2
+0x5B3E 0x93CD
+0x5B3F 0x93D8
+0x5B40 0x93E4
+0x5B41 0x93D7
+0x5B42 0x93E8
+0x5B43 0x95DC
+0x5B44 0x96B4
+0x5B45 0x96E3
+0x5B46 0x972A
+0x5B47 0x9727
+0x5B48 0x9761
+0x5B49 0x97DC
+0x5B4A 0x97FB
+0x5B4B 0x985E
+0x5B4C 0x9858
+0x5B4D 0x985B
+0x5B4E 0x98BC
+0x5B4F 0x9945
+0x5B50 0x9949
+0x5B51 0x9A16
+0x5B52 0x9A19
+0x5B53 0x9B0D
+0x5B54 0x9BE8
+0x5B55 0x9BE7
+0x5B56 0x9BD6
+0x5B57 0x9BDB
+0x5B58 0x9D89
+0x5B59 0x9D61
+0x5B5A 0x9D72
+0x5B5B 0x9D6A
+0x5B5C 0x9D6C
+0x5B5D 0x9E92
+0x5B5E 0x9E97
+0x5B5F 0x9E93
+0x5B60 0x9EB4
+0x5B61 0x52F8
+0x5B62 0x56A8
+0x5B63 0x56B7
+0x5B64 0x56B6
+0x5B65 0x56B4
+0x5B66 0x56BC
+0x5B67 0x58E4
+0x5B68 0x5B40
+0x5B69 0x5B43
+0x5B6A 0x5B7D
+0x5B6B 0x5BF6
+0x5B6C 0x5DC9
+0x5B6D 0x61F8
+0x5B6E 0x61FA
+0x5B6F 0x6518
+0x5B70 0x6514
+0x5B71 0x6519
+0x5B72 0x66E6
+0x5B73 0x6727
+0x5B74 0x6AEC
+0x5B75 0x703E
+0x5B76 0x7030
+0x5B77 0x7032
+0x5B78 0x7210
+0x5B79 0x737B
+0x5B7A 0x74CF
+0x5B7B 0x7662
+0x5B7C 0x7665
+0x5B7D 0x7926
+0x5B7E 0x792A
+0x5C21 0x792C
+0x5C22 0x792B
+0x5C23 0x7AC7
+0x5C24 0x7AF6
+0x5C25 0x7C4C
+0x5C26 0x7C43
+0x5C27 0x7C4D
+0x5C28 0x7CEF
+0x5C29 0x7CF0
+0x5C2A 0x8FAE
+0x5C2B 0x7E7D
+0x5C2C 0x7E7C
+0x5C2D 0x7E82
+0x5C2E 0x7F4C
+0x5C2F 0x8000
+0x5C30 0x81DA
+0x5C31 0x8266
+0x5C32 0x85FB
+0x5C33 0x85F9
+0x5C34 0x8611
+0x5C35 0x85FA
+0x5C36 0x8606
+0x5C37 0x860B
+0x5C38 0x8607
+0x5C39 0x860A
+0x5C3A 0x8814
+0x5C3B 0x8815
+0x5C3C 0x8964
+0x5C3D 0x89BA
+0x5C3E 0x89F8
+0x5C3F 0x8B70
+0x5C40 0x8B6C
+0x5C41 0x8B66
+0x5C42 0x8B6F
+0x5C43 0x8B5F
+0x5C44 0x8B6B
+0x5C45 0x8D0F
+0x5C46 0x8D0D
+0x5C47 0x8E89
+0x5C48 0x8E81
+0x5C49 0x8E85
+0x5C4A 0x8E82
+0x5C4B 0x91B4
+0x5C4C 0x91CB
+0x5C4D 0x9418
+0x5C4E 0x9403
+0x5C4F 0x93FD
+0x5C50 0x95E1
+0x5C51 0x9730
+0x5C52 0x98C4
+0x5C53 0x9952
+0x5C54 0x9951
+0x5C55 0x99A8
+0x5C56 0x9A2B
+0x5C57 0x9A30
+0x5C58 0x9A37
+0x5C59 0x9A35
+0x5C5A 0x9C13
+0x5C5B 0x9C0D
+0x5C5C 0x9E79
+0x5C5D 0x9EB5
+0x5C5E 0x9EE8
+0x5C5F 0x9F2F
+0x5C60 0x9F5F
+0x5C61 0x9F63
+0x5C62 0x9F61
+0x5C63 0x5137
+0x5C64 0x5138
+0x5C65 0x56C1
+0x5C66 0x56C0
+0x5C67 0x56C2
+0x5C68 0x5914
+0x5C69 0x5C6C
+0x5C6A 0x5DCD
+0x5C6B 0x61FC
+0x5C6C 0x61FE
+0x5C6D 0x651D
+0x5C6E 0x651C
+0x5C6F 0x6595
+0x5C70 0x66E9
+0x5C71 0x6AFB
+0x5C72 0x6B04
+0x5C73 0x6AFA
+0x5C74 0x6BB2
+0x5C75 0x704C
+0x5C76 0x721B
+0x5C77 0x72A7
+0x5C78 0x74D6
+0x5C79 0x74D4
+0x5C7A 0x7669
+0x5C7B 0x77D3
+0x5C7C 0x7C50
+0x5C7D 0x7E8F
+0x5C7E 0x7E8C
+0x5D21 0x7FBC
+0x5D22 0x8617
+0x5D23 0x862D
+0x5D24 0x861A
+0x5D25 0x8823
+0x5D26 0x8822
+0x5D27 0x8821
+0x5D28 0x881F
+0x5D29 0x896A
+0x5D2A 0x896C
+0x5D2B 0x89BD
+0x5D2C 0x8B74
+0x5D2D 0x8B77
+0x5D2E 0x8B7D
+0x5D2F 0x8D13
+0x5D30 0x8E8A
+0x5D31 0x8E8D
+0x5D32 0x8E8B
+0x5D33 0x8F5F
+0x5D34 0x8FAF
+0x5D35 0x91BA
+0x5D36 0x942E
+0x5D37 0x9433
+0x5D38 0x9435
+0x5D39 0x943A
+0x5D3A 0x9438
+0x5D3B 0x9432
+0x5D3C 0x942B
+0x5D3D 0x95E2
+0x5D3E 0x9738
+0x5D3F 0x9739
+0x5D40 0x9732
+0x5D41 0x97FF
+0x5D42 0x9867
+0x5D43 0x9865
+0x5D44 0x9957
+0x5D45 0x9A45
+0x5D46 0x9A43
+0x5D47 0x9A40
+0x5D48 0x9A3E
+0x5D49 0x9ACF
+0x5D4A 0x9B54
+0x5D4B 0x9B51
+0x5D4C 0x9C2D
+0x5D4D 0x9C25
+0x5D4E 0x9DAF
+0x5D4F 0x9DB4
+0x5D50 0x9DC2
+0x5D51 0x9DB8
+0x5D52 0x9E9D
+0x5D53 0x9EEF
+0x5D54 0x9F19
+0x5D55 0x9F5C
+0x5D56 0x9F66
+0x5D57 0x9F67
+0x5D58 0x513C
+0x5D59 0x513B
+0x5D5A 0x56C8
+0x5D5B 0x56CA
+0x5D5C 0x56C9
+0x5D5D 0x5B7F
+0x5D5E 0x5DD4
+0x5D5F 0x5DD2
+0x5D60 0x5F4E
+0x5D61 0x61FF
+0x5D62 0x6524
+0x5D63 0x6B0A
+0x5D64 0x6B61
+0x5D65 0x7051
+0x5D66 0x7058
+0x5D67 0x7380
+0x5D68 0x74E4
+0x5D69 0x758A
+0x5D6A 0x766E
+0x5D6B 0x766C
+0x5D6C 0x79B3
+0x5D6D 0x7C60
+0x5D6E 0x7C5F
+0x5D6F 0x807E
+0x5D70 0x807D
+0x5D71 0x81DF
+0x5D72 0x8972
+0x5D73 0x896F
+0x5D74 0x89FC
+0x5D75 0x8B80
+0x5D76 0x8D16
+0x5D77 0x8D17
+0x5D78 0x8E91
+0x5D79 0x8E93
+0x5D7A 0x8F61
+0x5D7B 0x9148
+0x5D7C 0x9444
+0x5D7D 0x9451
+0x5D7E 0x9452
+0x5E21 0x973D
+0x5E22 0x973E
+0x5E23 0x97C3
+0x5E24 0x97C1
+0x5E25 0x986B
+0x5E26 0x9955
+0x5E27 0x9A55
+0x5E28 0x9A4D
+0x5E29 0x9AD2
+0x5E2A 0x9B1A
+0x5E2B 0x9C49
+0x5E2C 0x9C31
+0x5E2D 0x9C3E
+0x5E2E 0x9C3B
+0x5E2F 0x9DD3
+0x5E30 0x9DD7
+0x5E31 0x9F34
+0x5E32 0x9F6C
+0x5E33 0x9F6A
+0x5E34 0x9F94
+0x5E35 0x56CC
+0x5E36 0x5DD6
+0x5E37 0x6200
+0x5E38 0x6523
+0x5E39 0x652B
+0x5E3A 0x652A
+0x5E3B 0x66EC
+0x5E3C 0x6B10
+0x5E3D 0x74DA
+0x5E3E 0x7ACA
+0x5E3F 0x7C64
+0x5E40 0x7C63
+0x5E41 0x7C65
+0x5E42 0x7E93
+0x5E43 0x7E96
+0x5E44 0x7E94
+0x5E45 0x81E2
+0x5E46 0x8638
+0x5E47 0x863F
+0x5E48 0x8831
+0x5E49 0x8B8A
+0x5E4A 0x9090
+0x5E4B 0x908F
+0x5E4C 0x9463
+0x5E4D 0x9460
+0x5E4E 0x9464
+0x5E4F 0x9768
+0x5E50 0x986F
+0x5E51 0x995C
+0x5E52 0x9A5A
+0x5E53 0x9A5B
+0x5E54 0x9A57
+0x5E55 0x9AD3
+0x5E56 0x9AD4
+0x5E57 0x9AD1
+0x5E58 0x9C54
+0x5E59 0x9C57
+0x5E5A 0x9C56
+0x5E5B 0x9DE5
+0x5E5C 0x9E9F
+0x5E5D 0x9EF4
+0x5E5E 0x56D1
+0x5E5F 0x58E9
+0x5E60 0x652C
+0x5E61 0x705E
+0x5E62 0x7671
+0x5E63 0x7672
+0x5E64 0x77D7
+0x5E65 0x7F50
+0x5E66 0x7F88
+0x5E67 0x8836
+0x5E68 0x8839
+0x5E69 0x8862
+0x5E6A 0x8B93
+0x5E6B 0x8B92
+0x5E6C 0x8B96
+0x5E6D 0x8277
+0x5E6E 0x8D1B
+0x5E6F 0x91C0
+0x5E70 0x946A
+0x5E71 0x9742
+0x5E72 0x9748
+0x5E73 0x9744
+0x5E74 0x97C6
+0x5E75 0x9870
+0x5E76 0x9A5F
+0x5E77 0x9B22
+0x5E78 0x9B58
+0x5E79 0x9C5F
+0x5E7A 0x9DF9
+0x5E7B 0x9DFA
+0x5E7C 0x9E7C
+0x5E7D 0x9E7D
+0x5E7E 0x9F07
+0x5F21 0x9F77
+0x5F22 0x9F72
+0x5F23 0x5EF3
+0x5F24 0x6B16
+0x5F25 0x7063
+0x5F26 0x7C6C
+0x5F27 0x7C6E
+0x5F28 0x883B
+0x5F29 0x89C0
+0x5F2A 0x8EA1
+0x5F2B 0x91C1
+0x5F2C 0x9472
+0x5F2D 0x9470
+0x5F2E 0x9871
+0x5F2F 0x995E
+0x5F30 0x9AD6
+0x5F31 0x9B23
+0x5F32 0x9ECC
+0x5F33 0x7064
+0x5F34 0x77DA
+0x5F35 0x8B9A
+0x5F36 0x9477
+0x5F37 0x97C9
+0x5F38 0x9A62
+0x5F39 0x9A65
+0x5F3A 0x7E9C
+0x5F3B 0x8B9C
+0x5F3C 0x8EAA
+0x5F3D 0x91C5
+0x5F3E 0x947D
+0x5F3F 0x947E
+0x5F40 0x947C
+0x5F41 0x9C77
+0x5F42 0x9C78
+0x5F43 0x9EF7
+0x5F44 0x8C54
+0x5F45 0x947F
+0x5F46 0x9E1A
+0x5F47 0x7228
+0x5F48 0x9A6A
+0x5F49 0x9B31
+0x5F4A 0x9E1B
+0x5F4B 0x9E1E
+0x5F4C 0x7C72
+0x5F4D 0xF6B1
+0x5F4E 0xF6B2
+0x5F4F 0xF6B3
+0x5F50 0xF6B4
+0x5F51 0xF6B5
+0x5F52 0xF6B6
+0x5F53 0xF6B7
+0x5F54 0xF6B8
+0x5F55 0xF6B9
+0x5F56 0xF6BA
+0x5F57 0xF6BB
+0x5F58 0xF6BC
+0x5F59 0xF6BD
+0x5F5A 0xF6BE
+0x5F5B 0xF6BF
+0x5F5C 0xF6C0
+0x5F5D 0xF6C1
+0x5F5E 0xF6C2
+0x5F5F 0xF6C3
+0x5F60 0xF6C4
+0x5F61 0xF6C5
+0x5F62 0xF6C6
+0x5F63 0xF6C7
+0x5F64 0xF6C8
+0x5F65 0xF6C9
+0x5F66 0xF6CA
+0x5F67 0xF6CB
+0x5F68 0xF6CC
+0x5F69 0xF6CD
+0x5F6A 0xF6CE
+0x5F6B 0xF6CF
+0x5F6C 0xF6D0
+0x5F6D 0xF6D1
+0x5F6E 0xF6D2
+0x5F6F 0xF6D3
+0x5F70 0xF6D4
+0x5F71 0xF6D5
+0x5F72 0xF6D6
+0x5F73 0xF6D7
+0x5F74 0xF6D8
+0x5F75 0xF6D9
+0x5F76 0xF6DA
+0x5F77 0xF6DB
+0x5F78 0xF6DC
+0x5F79 0xF6DD
+0x5F7A 0xF6DE
+0x5F7B 0xF6DF
+0x5F7C 0xF6E0
+0x5F7D 0xF6E1
+0x5F7E 0xF6E2
+0x6021 0xF6E3
+0x6022 0xF6E4
+0x6023 0xF6E5
+0x6024 0xF6E6
+0x6025 0xF6E7
+0x6026 0xF6E8
+0x6027 0xF6E9
+0x6028 0xF6EA
+0x6029 0xF6EB
+0x602A 0xF6EC
+0x602B 0xF6ED
+0x602C 0xF6EE
+0x602D 0xF6EF
+0x602E 0xF6F0
+0x602F 0xF6F1
+0x6030 0xF6F2
+0x6031 0xF6F3
+0x6032 0xF6F4
+0x6033 0xF6F5
+0x6034 0xF6F6
+0x6035 0xF6F7
+0x6036 0xF6F8
+0x6037 0xF6F9
+0x6038 0xF6FA
+0x6039 0xF6FB
+0x603A 0xF6FC
+0x603B 0xF6FD
+0x603C 0xF6FE
+0x603D 0xF6FF
+0x603E 0xF700
+0x603F 0xF701
+0x6040 0xF702
+0x6041 0xF703
+0x6042 0xF704
+0x6043 0xF705
+0x6044 0xF706
+0x6045 0xF707
+0x6046 0xF708
+0x6047 0xF709
+0x6048 0xF70A
+0x6049 0xF70B
+0x604A 0xF70C
+0x604B 0xF70D
+0x604C 0xF70E
+0x604D 0xF70F
+0x604E 0xF710
+0x604F 0xF711
+0x6050 0xF712
+0x6051 0xF713
+0x6052 0xF714
+0x6053 0xF715
+0x6054 0xF716
+0x6055 0xF717
+0x6056 0xF718
+0x6057 0xF719
+0x6058 0xF71A
+0x6059 0xF71B
+0x605A 0xF71C
+0x605B 0xF71D
+0x605C 0xF71E
+0x605D 0xF71F
+0x605E 0xF720
+0x605F 0xF721
+0x6060 0xF722
+0x6061 0xF723
+0x6062 0xF724
+0x6063 0xF725
+0x6064 0xF726
+0x6065 0xF727
+0x6066 0xF728
+0x6067 0xF729
+0x6068 0xF72A
+0x6069 0xF72B
+0x606A 0xF72C
+0x606B 0xF72D
+0x606C 0xF72E
+0x606D 0xF72F
+0x606E 0xF730
+0x606F 0xF731
+0x6070 0xF732
+0x6071 0xF733
+0x6072 0xF734
+0x6073 0xF735
+0x6074 0xF736
+0x6075 0xF737
+0x6076 0xF738
+0x6077 0xF739
+0x6078 0xF73A
+0x6079 0xF73B
+0x607A 0xF73C
+0x607B 0xF73D
+0x607C 0xF73E
+0x607D 0xF73F
+0x607E 0xF740
+0x6121 0xF741
+0x6122 0xF742
+0x6123 0xF743
+0x6124 0xF744
+0x6125 0xF745
+0x6126 0xF746
+0x6127 0xF747
+0x6128 0xF748
+0x6129 0xF749
+0x612A 0xF74A
+0x612B 0xF74B
+0x612C 0xF74C
+0x612D 0xF74D
+0x612E 0xF74E
+0x612F 0xF74F
+0x6130 0xF750
+0x6131 0xF751
+0x6132 0xF752
+0x6133 0xF753
+0x6134 0xF754
+0x6135 0xF755
+0x6136 0xF756
+0x6137 0xF757
+0x6138 0xF758
+0x6139 0xF759
+0x613A 0xF75A
+0x613B 0xF75B
+0x613C 0xF75C
+0x613D 0xF75D
+0x613E 0xF75E
+0x613F 0xF75F
+0x6140 0xF760
+0x6141 0xF761
+0x6142 0xF762
+0x6143 0xF763
+0x6144 0xF764
+0x6145 0xF765
+0x6146 0xF766
+0x6147 0xF767
+0x6148 0xF768
+0x6149 0xF769
+0x614A 0xF76A
+0x614B 0xF76B
+0x614C 0xF76C
+0x614D 0xF76D
+0x614E 0xF76E
+0x614F 0xF76F
+0x6150 0xF770
+0x6151 0xF771
+0x6152 0xF772
+0x6153 0xF773
+0x6154 0xF774
+0x6155 0xF775
+0x6156 0xF776
+0x6157 0xF777
+0x6158 0xF778
+0x6159 0xF779
+0x615A 0xF77A
+0x615B 0xF77B
+0x615C 0xF77C
+0x615D 0xF77D
+0x615E 0xF77E
+0x615F 0xF77F
+0x6160 0xF780
+0x6161 0xF781
+0x6162 0xF782
+0x6163 0xF783
+0x6164 0xF784
+0x6165 0xF785
+0x6166 0xF786
+0x6167 0xF787
+0x6168 0xF788
+0x6169 0xF789
+0x616A 0xF78A
+0x616B 0xF78B
+0x616C 0xF78C
+0x616D 0xF78D
+0x616E 0xF78E
+0x616F 0xF78F
+0x6170 0xF790
+0x6171 0xF791
+0x6172 0xF792
+0x6173 0xF793
+0x6174 0xF794
+0x6175 0xF795
+0x6176 0xF796
+0x6177 0xF797
+0x6178 0xF798
+0x6179 0xF799
+0x617A 0xF79A
+0x617B 0xF79B
+0x617C 0xF79C
+0x617D 0xF79D
+0x617E 0xF79E
+0x6221 0xF79F
+0x6222 0xF7A0
+0x6223 0xF7A1
+0x6224 0xF7A2
+0x6225 0xF7A3
+0x6226 0xF7A4
+0x6227 0xF7A5
+0x6228 0xF7A6
+0x6229 0xF7A7
+0x622A 0xF7A8
+0x622B 0xF7A9
+0x622C 0xF7AA
+0x622D 0xF7AB
+0x622E 0xF7AC
+0x622F 0xF7AD
+0x6230 0xF7AE
+0x6231 0xF7AF
+0x6232 0xF7B0
+0x6233 0xF7B1
+0x6234 0xF7B2
+0x6235 0xF7B3
+0x6236 0xF7B4
+0x6237 0xF7B5
+0x6238 0xF7B6
+0x6239 0xF7B7
+0x623A 0xF7B8
+0x623B 0xF7B9
+0x623C 0xF7BA
+0x623D 0xF7BB
+0x623E 0xF7BC
+0x623F 0xF7BD
+0x6240 0xF7BE
+0x6241 0xF7BF
+0x6242 0xF7C0
+0x6243 0xF7C1
+0x6244 0xF7C2
+0x6245 0xF7C3
+0x6246 0xF7C4
+0x6247 0xF7C5
+0x6248 0xF7C6
+0x6249 0xF7C7
+0x624A 0xF7C8
+0x624B 0xF7C9
+0x624C 0xF7CA
+0x624D 0xF7CB
+0x624E 0xF7CC
+0x624F 0xF7CD
+0x6250 0xF7CE
+0x6251 0xF7CF
+0x6252 0xF7D0
+0x6253 0xF7D1
+0x6254 0xF7D2
+0x6255 0xF7D3
+0x6256 0xF7D4
+0x6257 0xF7D5
+0x6258 0xF7D6
+0x6259 0xF7D7
+0x625A 0xF7D8
+0x625B 0xF7D9
+0x625C 0xF7DA
+0x625D 0xF7DB
+0x625E 0xF7DC
+0x625F 0xF7DD
+0x6260 0xF7DE
+0x6261 0xF7DF
+0x6262 0xF7E0
+0x6263 0xF7E1
+0x6264 0xF7E2
+0x6265 0xF7E3
+0x6266 0xF7E4
+0x6267 0xF7E5
+0x6268 0xF7E6
+0x6269 0xF7E7
+0x626A 0xF7E8
+0x626B 0xF7E9
+0x626C 0xF7EA
+0x626D 0xF7EB
+0x626E 0xF7EC
+0x626F 0xF7ED
+0x6270 0xF7EE
+0x6271 0xF7EF
+0x6272 0xF7F0
+0x6273 0xF7F1
+0x6274 0xF7F2
+0x6275 0xF7F3
+0x6276 0xF7F4
+0x6277 0xF7F5
+0x6278 0xF7F6
+0x6279 0xF7F7
+0x627A 0xF7F8
+0x627B 0xF7F9
+0x627C 0xF7FA
+0x627D 0xF7FB
+0x627E 0xF7FC
+0x6321 0xF7FD
+0x6322 0xF7FE
+0x6323 0xF7FF
+0x6324 0xF800
+0x6325 0xF801
+0x6326 0xF802
+0x6327 0xF803
+0x6328 0xF804
+0x6329 0xF805
+0x632A 0xF806
+0x632B 0xF807
+0x632C 0xF808
+0x632D 0xF809
+0x632E 0xF80A
+0x632F 0xF80B
+0x6330 0xF80C
+0x6331 0xF80D
+0x6332 0xF80E
+0x6333 0xF80F
+0x6334 0xF810
+0x6335 0xF811
+0x6336 0xF812
+0x6337 0xF813
+0x6338 0xF814
+0x6339 0xF815
+0x633A 0xF816
+0x633B 0xF817
+0x633C 0xF818
+0x633D 0xF819
+0x633E 0xF81A
+0x633F 0xF81B
+0x6340 0xF81C
+0x6341 0xF81D
+0x6342 0xF81E
+0x6343 0xF81F
+0x6344 0xF820
+0x6345 0xF821
+0x6346 0xF822
+0x6347 0xF823
+0x6348 0xF824
+0x6349 0xF825
+0x634A 0xF826
+0x634B 0xF827
+0x634C 0xF828
+0x634D 0xF829
+0x634E 0xF82A
+0x634F 0xF82B
+0x6350 0xF82C
+0x6351 0xF82D
+0x6352 0xF82E
+0x6353 0xF82F
+0x6354 0xF830
+0x6355 0xF831
+0x6356 0xF832
+0x6357 0xF833
+0x6358 0xF834
+0x6359 0xF835
+0x635A 0xF836
+0x635B 0xF837
+0x635C 0xF838
+0x635D 0xF839
+0x635E 0xF83A
+0x635F 0xF83B
+0x6360 0xF83C
+0x6361 0xF83D
+0x6362 0xF83E
+0x6363 0xF83F
+0x6364 0xF840
+0x6365 0xF841
+0x6366 0xF842
+0x6367 0xF843
+0x6368 0xF844
+0x6369 0xF845
+0x636A 0xF846
+0x636B 0xF847
+0x636C 0xF848
diff --git a/etc/charsets/BIG5-2.map b/etc/charsets/BIG5-2.map
new file mode 100644 (file)
index 0000000..03701c0
--- /dev/null
@@ -0,0 +1,7686 @@
+Generated from BIG5.map
+0x2121 0x4E42
+0x2122 0x4E5C
+0x2123 0x51F5
+0x2124 0x531A
+0x2125 0x5382
+0x2126 0x4E07
+0x2127 0x4E0C
+0x2128 0x4E47
+0x2129 0x4E8D
+0x212A 0x56D7
+0x212B 0xFA0C
+0x212C 0x5C6E
+0x212D 0x5F73
+0x212E 0x4E0F
+0x212F 0x5187
+0x2130 0x4E0E
+0x2131 0x4E2E
+0x2132 0x4E93
+0x2133 0x4EC2
+0x2134 0x4EC9
+0x2135 0x4EC8
+0x2136 0x5198
+0x2137 0x52FC
+0x2138 0x536C
+0x2139 0x53B9
+0x213A 0x5720
+0x213B 0x5903
+0x213C 0x592C
+0x213D 0x5C10
+0x213E 0x5DFF
+0x213F 0x65E1
+0x2140 0x6BB3
+0x2141 0x6BCC
+0x2142 0x6C14
+0x2143 0x723F
+0x2144 0x4E31
+0x2145 0x4E3C
+0x2146 0x4EE8
+0x2147 0x4EDC
+0x2148 0x4EE9
+0x2149 0x4EE1
+0x214A 0x4EDD
+0x214B 0x4EDA
+0x214C 0x520C
+0x214D 0x531C
+0x214E 0x534C
+0x214F 0x5722
+0x2150 0x5723
+0x2151 0x5917
+0x2152 0x592F
+0x2153 0x5B81
+0x2154 0x5B84
+0x2155 0x5C12
+0x2156 0x5C3B
+0x2157 0x5C74
+0x2158 0x5C73
+0x2159 0x5E04
+0x215A 0x5E80
+0x215B 0x5E82
+0x215C 0x5FC9
+0x215D 0x6209
+0x215E 0x6250
+0x215F 0x6C15
+0x2160 0x6C36
+0x2161 0x6C43
+0x2162 0x6C3F
+0x2163 0x6C3B
+0x2164 0x72AE
+0x2165 0x72B0
+0x2166 0x738A
+0x2167 0x79B8
+0x2168 0x808A
+0x2169 0x961E
+0x216A 0x4F0E
+0x216B 0x4F18
+0x216C 0x4F2C
+0x216D 0x4EF5
+0x216E 0x4F14
+0x216F 0x4EF1
+0x2170 0x4F00
+0x2171 0x4EF7
+0x2172 0x4F08
+0x2173 0x4F1D
+0x2174 0x4F02
+0x2175 0x4F05
+0x2176 0x4F22
+0x2177 0x4F13
+0x2178 0x4F04
+0x2179 0x4EF4
+0x217A 0x4F12
+0x217B 0x51B1
+0x217C 0x5213
+0x217D 0x5209
+0x217E 0x5210
+0x2221 0x52A6
+0x2222 0x5322
+0x2223 0x531F
+0x2224 0x534D
+0x2225 0x538A
+0x2226 0x5407
+0x2227 0x56E1
+0x2228 0x56DF
+0x2229 0x572E
+0x222A 0x572A
+0x222B 0x5734
+0x222C 0x593C
+0x222D 0x5980
+0x222E 0x597C
+0x222F 0x5985
+0x2230 0x597B
+0x2231 0x597E
+0x2232 0x5977
+0x2233 0x597F
+0x2234 0x5B56
+0x2235 0x5C15
+0x2236 0x5C25
+0x2237 0x5C7C
+0x2238 0x5C7A
+0x2239 0x5C7B
+0x223A 0x5C7E
+0x223B 0x5DDF
+0x223C 0x5E75
+0x223D 0x5E84
+0x223E 0x5F02
+0x223F 0x5F1A
+0x2240 0x5F74
+0x2241 0x5FD5
+0x2242 0x5FD4
+0x2243 0x5FCF
+0x2244 0x625C
+0x2245 0x625E
+0x2246 0x6264
+0x2247 0x6261
+0x2248 0x6266
+0x2249 0x6262
+0x224A 0x6259
+0x224B 0x6260
+0x224C 0x625A
+0x224D 0x6265
+0x224E 0x65EF
+0x224F 0x65EE
+0x2250 0x673E
+0x2251 0x6739
+0x2252 0x6738
+0x2253 0x673B
+0x2254 0x673A
+0x2255 0x673F
+0x2256 0x673C
+0x2257 0x6733
+0x2258 0x6C18
+0x2259 0x6C46
+0x225A 0x6C52
+0x225B 0x6C5C
+0x225C 0x6C4F
+0x225D 0x6C4A
+0x225E 0x6C54
+0x225F 0x6C4B
+0x2260 0x6C4C
+0x2261 0x7071
+0x2262 0x725E
+0x2263 0x72B4
+0x2264 0x72B5
+0x2265 0x738E
+0x2266 0x752A
+0x2267 0x767F
+0x2268 0x7A75
+0x2269 0x7F51
+0x226A 0x8278
+0x226B 0x827C
+0x226C 0x8280
+0x226D 0x827D
+0x226E 0x827F
+0x226F 0x864D
+0x2270 0x897E
+0x2271 0x9099
+0x2272 0x9097
+0x2273 0x9098
+0x2274 0x909B
+0x2275 0x9094
+0x2276 0x9622
+0x2277 0x9624
+0x2278 0x9620
+0x2279 0x9623
+0x227A 0x4F56
+0x227B 0x4F3B
+0x227C 0x4F62
+0x227D 0x4F49
+0x227E 0x4F53
+0x2321 0x4F64
+0x2322 0x4F3E
+0x2323 0x4F67
+0x2324 0x4F52
+0x2325 0x4F5F
+0x2326 0x4F41
+0x2327 0x4F58
+0x2328 0x4F2D
+0x2329 0x4F33
+0x232A 0x4F3F
+0x232B 0x4F61
+0x232C 0x518F
+0x232D 0x51B9
+0x232E 0x521C
+0x232F 0x521E
+0x2330 0x5221
+0x2331 0x52AD
+0x2332 0x52AE
+0x2333 0x5309
+0x2334 0x5363
+0x2335 0x5372
+0x2336 0x538E
+0x2337 0x538F
+0x2338 0x5430
+0x2339 0x5437
+0x233A 0x542A
+0x233B 0x5454
+0x233C 0x5445
+0x233D 0x5419
+0x233E 0x541C
+0x233F 0x5425
+0x2340 0x5418
+0x2341 0x543D
+0x2342 0x544F
+0x2343 0x5441
+0x2344 0x5428
+0x2345 0x5424
+0x2346 0x5447
+0x2347 0x56EE
+0x2348 0x56E7
+0x2349 0x56E5
+0x234A 0x5741
+0x234B 0x5745
+0x234C 0x574C
+0x234D 0x5749
+0x234E 0x574B
+0x234F 0x5752
+0x2350 0x5906
+0x2351 0x5940
+0x2352 0x59A6
+0x2353 0x5998
+0x2354 0x59A0
+0x2355 0x5997
+0x2356 0x598E
+0x2357 0x59A2
+0x2358 0x5990
+0x2359 0x598F
+0x235A 0x59A7
+0x235B 0x59A1
+0x235C 0x5B8E
+0x235D 0x5B92
+0x235E 0x5C28
+0x235F 0x5C2A
+0x2360 0x5C8D
+0x2361 0x5C8F
+0x2362 0x5C88
+0x2363 0x5C8B
+0x2364 0x5C89
+0x2365 0x5C92
+0x2366 0x5C8A
+0x2367 0x5C86
+0x2368 0x5C93
+0x2369 0x5C95
+0x236A 0x5DE0
+0x236B 0x5E0A
+0x236C 0x5E0E
+0x236D 0x5E8B
+0x236E 0x5E89
+0x236F 0x5E8C
+0x2370 0x5E88
+0x2371 0x5E8D
+0x2372 0x5F05
+0x2373 0x5F1D
+0x2374 0x5F78
+0x2375 0x5F76
+0x2376 0x5FD2
+0x2377 0x5FD1
+0x2378 0x5FD0
+0x2379 0x5FED
+0x237A 0x5FE8
+0x237B 0x5FEE
+0x237C 0x5FF3
+0x237D 0x5FE1
+0x237E 0x5FE4
+0x2421 0x5FE3
+0x2422 0x5FFA
+0x2423 0x5FEF
+0x2424 0x5FF7
+0x2425 0x5FFB
+0x2426 0x6000
+0x2427 0x5FF4
+0x2428 0x623A
+0x2429 0x6283
+0x242A 0x628C
+0x242B 0x628E
+0x242C 0x628F
+0x242D 0x6294
+0x242E 0x6287
+0x242F 0x6271
+0x2430 0x627B
+0x2431 0x627A
+0x2432 0x6270
+0x2433 0x6281
+0x2434 0x6288
+0x2435 0x6277
+0x2436 0x627D
+0x2437 0x6272
+0x2438 0x6274
+0x2439 0x6537
+0x243A 0x65F0
+0x243B 0x65F4
+0x243C 0x65F3
+0x243D 0x65F2
+0x243E 0x65F5
+0x243F 0x6745
+0x2440 0x6747
+0x2441 0x6759
+0x2442 0x6755
+0x2443 0x674C
+0x2444 0x6748
+0x2445 0x675D
+0x2446 0x674D
+0x2447 0x675A
+0x2448 0x674B
+0x2449 0x6BD0
+0x244A 0x6C19
+0x244B 0x6C1A
+0x244C 0x6C78
+0x244D 0x6C67
+0x244E 0x6C6B
+0x244F 0x6C84
+0x2450 0x6C8B
+0x2451 0x6C8F
+0x2452 0x6C71
+0x2453 0x6C6F
+0x2454 0x6C69
+0x2455 0x6C9A
+0x2456 0x6C6D
+0x2457 0x6C87
+0x2458 0x6C95
+0x2459 0x6C9C
+0x245A 0x6C66
+0x245B 0x6C73
+0x245C 0x6C65
+0x245D 0x6C7B
+0x245E 0x6C8E
+0x245F 0x7074
+0x2460 0x707A
+0x2461 0x7263
+0x2462 0x72BF
+0x2463 0x72BD
+0x2464 0x72C3
+0x2465 0x72C6
+0x2466 0x72C1
+0x2467 0x72BA
+0x2468 0x72C5
+0x2469 0x7395
+0x246A 0x7397
+0x246B 0x7393
+0x246C 0x7394
+0x246D 0x7392
+0x246E 0x753A
+0x246F 0x7539
+0x2470 0x7594
+0x2471 0x7595
+0x2472 0x7681
+0x2473 0x793D
+0x2474 0x8034
+0x2475 0x8095
+0x2476 0x8099
+0x2477 0x8090
+0x2478 0x8092
+0x2479 0x809C
+0x247A 0x8290
+0x247B 0x828F
+0x247C 0x8285
+0x247D 0x828E
+0x247E 0x8291
+0x2521 0x8293
+0x2522 0x828A
+0x2523 0x8283
+0x2524 0x8284
+0x2525 0x8C78
+0x2526 0x8FC9
+0x2527 0x8FBF
+0x2528 0x909F
+0x2529 0x90A1
+0x252A 0x90A5
+0x252B 0x909E
+0x252C 0x90A7
+0x252D 0x90A0
+0x252E 0x9630
+0x252F 0x9628
+0x2530 0x962F
+0x2531 0x962D
+0x2532 0x4E33
+0x2533 0x4F98
+0x2534 0x4F7C
+0x2535 0x4F85
+0x2536 0x4F7D
+0x2537 0x4F80
+0x2538 0x4F87
+0x2539 0x4F76
+0x253A 0x4F74
+0x253B 0x4F89
+0x253C 0x4F84
+0x253D 0x4F77
+0x253E 0x4F4C
+0x253F 0x4F97
+0x2540 0x4F6A
+0x2541 0x4F9A
+0x2542 0x4F79
+0x2543 0x4F81
+0x2544 0x4F78
+0x2545 0x4F90
+0x2546 0x4F9C
+0x2547 0x4F94
+0x2548 0x4F9E
+0x2549 0x4F92
+0x254A 0x4F82
+0x254B 0x4F95
+0x254C 0x4F6B
+0x254D 0x4F6E
+0x254E 0x519E
+0x254F 0x51BC
+0x2550 0x51BE
+0x2551 0x5235
+0x2552 0x5232
+0x2553 0x5233
+0x2554 0x5246
+0x2555 0x5231
+0x2556 0x52BC
+0x2557 0x530A
+0x2558 0x530B
+0x2559 0x533C
+0x255A 0x5392
+0x255B 0x5394
+0x255C 0x5487
+0x255D 0x547F
+0x255E 0x5481
+0x255F 0x5491
+0x2560 0x5482
+0x2561 0x5488
+0x2562 0x546B
+0x2563 0x547A
+0x2564 0x547E
+0x2565 0x5465
+0x2566 0x546C
+0x2567 0x5474
+0x2568 0x5466
+0x2569 0x548D
+0x256A 0x546F
+0x256B 0x5461
+0x256C 0x5460
+0x256D 0x5498
+0x256E 0x5463
+0x256F 0x5467
+0x2570 0x5464
+0x2571 0x56F7
+0x2572 0x56F9
+0x2573 0x576F
+0x2574 0x5772
+0x2575 0x576D
+0x2576 0x576B
+0x2577 0x5771
+0x2578 0x5770
+0x2579 0x5776
+0x257A 0x5780
+0x257B 0x5775
+0x257C 0x577B
+0x257D 0x5773
+0x257E 0x5774
+0x2621 0x5762
+0x2622 0x5768
+0x2623 0x577D
+0x2624 0x590C
+0x2625 0x5945
+0x2626 0x59B5
+0x2627 0x59BA
+0x2628 0x59CF
+0x2629 0x59CE
+0x262A 0x59B2
+0x262B 0x59CC
+0x262C 0x59C1
+0x262D 0x59B6
+0x262E 0x59BC
+0x262F 0x59C3
+0x2630 0x59D6
+0x2631 0x59B1
+0x2632 0x59BD
+0x2633 0x59C0
+0x2634 0x59C8
+0x2635 0x59B4
+0x2636 0x59C7
+0x2637 0x5B62
+0x2638 0x5B65
+0x2639 0x5B93
+0x263A 0x5B95
+0x263B 0x5C44
+0x263C 0x5C47
+0x263D 0x5CAE
+0x263E 0x5CA4
+0x263F 0x5CA0
+0x2640 0x5CB5
+0x2641 0x5CAF
+0x2642 0x5CA8
+0x2643 0x5CAC
+0x2644 0x5C9F
+0x2645 0x5CA3
+0x2646 0x5CAD
+0x2647 0x5CA2
+0x2648 0x5CAA
+0x2649 0x5CA7
+0x264A 0x5C9D
+0x264B 0x5CA5
+0x264C 0x5CB6
+0x264D 0x5CB0
+0x264E 0x5CA6
+0x264F 0x5E17
+0x2650 0x5E14
+0x2651 0x5E19
+0x2652 0x5F28
+0x2653 0x5F22
+0x2654 0x5F23
+0x2655 0x5F24
+0x2656 0x5F54
+0x2657 0x5F82
+0x2658 0x5F7E
+0x2659 0x5F7D
+0x265A 0x5FDE
+0x265B 0x5FE5
+0x265C 0x602D
+0x265D 0x6026
+0x265E 0x6019
+0x265F 0x6032
+0x2660 0x600B
+0x2661 0x6034
+0x2662 0x600A
+0x2663 0x6017
+0x2664 0x6033
+0x2665 0x601A
+0x2666 0x601E
+0x2667 0x602C
+0x2668 0x6022
+0x2669 0x600D
+0x266A 0x6010
+0x266B 0x602E
+0x266C 0x6013
+0x266D 0x6011
+0x266E 0x600C
+0x266F 0x6009
+0x2670 0x601C
+0x2671 0x6214
+0x2672 0x623D
+0x2673 0x62AD
+0x2674 0x62B4
+0x2675 0x62D1
+0x2676 0x62BE
+0x2677 0x62AA
+0x2678 0x62B6
+0x2679 0x62CA
+0x267A 0x62AE
+0x267B 0x62B3
+0x267C 0x62AF
+0x267D 0x62BB
+0x267E 0x62A9
+0x2721 0x62B0
+0x2722 0x62B8
+0x2723 0x653D
+0x2724 0x65A8
+0x2725 0x65BB
+0x2726 0x6609
+0x2727 0x65FC
+0x2728 0x6604
+0x2729 0x6612
+0x272A 0x6608
+0x272B 0x65FB
+0x272C 0x6603
+0x272D 0x660B
+0x272E 0x660D
+0x272F 0x6605
+0x2730 0x65FD
+0x2731 0x6611
+0x2732 0x6610
+0x2733 0x66F6
+0x2734 0x670A
+0x2735 0x6785
+0x2736 0x676C
+0x2737 0x678E
+0x2738 0x6792
+0x2739 0x6776
+0x273A 0x677B
+0x273B 0x6798
+0x273C 0x6786
+0x273D 0x6784
+0x273E 0x6774
+0x273F 0x678D
+0x2740 0x678C
+0x2741 0x677A
+0x2742 0x679F
+0x2743 0x6791
+0x2744 0x6799
+0x2745 0x6783
+0x2746 0x677D
+0x2747 0x6781
+0x2748 0x6778
+0x2749 0x6779
+0x274A 0x6794
+0x274B 0x6B25
+0x274C 0x6B80
+0x274D 0x6B7E
+0x274E 0x6BDE
+0x274F 0x6C1D
+0x2750 0x6C93
+0x2751 0x6CEC
+0x2752 0x6CEB
+0x2753 0x6CEE
+0x2754 0x6CD9
+0x2755 0x6CB6
+0x2756 0x6CD4
+0x2757 0x6CAD
+0x2758 0x6CE7
+0x2759 0x6CB7
+0x275A 0x6CD0
+0x275B 0x6CC2
+0x275C 0x6CBA
+0x275D 0x6CC3
+0x275E 0x6CC6
+0x275F 0x6CED
+0x2760 0x6CF2
+0x2761 0x6CD2
+0x2762 0x6CDD
+0x2763 0x6CB4
+0x2764 0x6C8A
+0x2765 0x6C9D
+0x2766 0x6C80
+0x2767 0x6CDE
+0x2768 0x6CC0
+0x2769 0x6D30
+0x276A 0x6CCD
+0x276B 0x6CC7
+0x276C 0x6CB0
+0x276D 0x6CF9
+0x276E 0x6CCF
+0x276F 0x6CE9
+0x2770 0x6CD1
+0x2771 0x7094
+0x2772 0x7098
+0x2773 0x7085
+0x2774 0x7093
+0x2775 0x7086
+0x2776 0x7084
+0x2777 0x7091
+0x2778 0x7096
+0x2779 0x7082
+0x277A 0x709A
+0x277B 0x7083
+0x277C 0x726A
+0x277D 0x72D6
+0x277E 0x72CB
+0x2821 0x72D8
+0x2822 0x72C9
+0x2823 0x72DC
+0x2824 0x72D2
+0x2825 0x72D4
+0x2826 0x72DA
+0x2827 0x72CC
+0x2828 0x72D1
+0x2829 0x73A4
+0x282A 0x73A1
+0x282B 0x73AD
+0x282C 0x73A6
+0x282D 0x73A2
+0x282E 0x73A0
+0x282F 0x73AC
+0x2830 0x739D
+0x2831 0x74DD
+0x2832 0x74E8
+0x2833 0x753F
+0x2834 0x7540
+0x2835 0x753E
+0x2836 0x758C
+0x2837 0x7598
+0x2838 0x76AF
+0x2839 0x76F3
+0x283A 0x76F1
+0x283B 0x76F0
+0x283C 0x76F5
+0x283D 0x77F8
+0x283E 0x77FC
+0x283F 0x77F9
+0x2840 0x77FB
+0x2841 0x77FA
+0x2842 0x77F7
+0x2843 0x7942
+0x2844 0x793F
+0x2845 0x79C5
+0x2846 0x7A78
+0x2847 0x7A7B
+0x2848 0x7AFB
+0x2849 0x7C75
+0x284A 0x7CFD
+0x284B 0x8035
+0x284C 0x808F
+0x284D 0x80AE
+0x284E 0x80A3
+0x284F 0x80B8
+0x2850 0x80B5
+0x2851 0x80AD
+0x2852 0x8220
+0x2853 0x82A0
+0x2854 0x82C0
+0x2855 0x82AB
+0x2856 0x829A
+0x2857 0x8298
+0x2858 0x829B
+0x2859 0x82B5
+0x285A 0x82A7
+0x285B 0x82AE
+0x285C 0x82BC
+0x285D 0x829E
+0x285E 0x82BA
+0x285F 0x82B4
+0x2860 0x82A8
+0x2861 0x82A1
+0x2862 0x82A9
+0x2863 0x82C2
+0x2864 0x82A4
+0x2865 0x82C3
+0x2866 0x82B6
+0x2867 0x82A2
+0x2868 0x8670
+0x2869 0x866F
+0x286A 0x866D
+0x286B 0x866E
+0x286C 0x8C56
+0x286D 0x8FD2
+0x286E 0x8FCB
+0x286F 0x8FD3
+0x2870 0x8FCD
+0x2871 0x8FD6
+0x2872 0x8FD5
+0x2873 0x8FD7
+0x2874 0x90B2
+0x2875 0x90B4
+0x2876 0x90AF
+0x2877 0x90B3
+0x2878 0x90B0
+0x2879 0x9639
+0x287A 0x963D
+0x287B 0x963C
+0x287C 0x963A
+0x287D 0x9643
+0x287E 0x4FCD
+0x2921 0x4FC5
+0x2922 0x4FD3
+0x2923 0x4FB2
+0x2924 0x4FC9
+0x2925 0x4FCB
+0x2926 0x4FC1
+0x2927 0x4FD4
+0x2928 0x4FDC
+0x2929 0x4FD9
+0x292A 0x4FBB
+0x292B 0x4FB3
+0x292C 0x4FDB
+0x292D 0x4FC7
+0x292E 0x4FD6
+0x292F 0x4FBA
+0x2930 0x4FC0
+0x2931 0x4FB9
+0x2932 0x4FEC
+0x2933 0x5244
+0x2934 0x5249
+0x2935 0x52C0
+0x2936 0x52C2
+0x2937 0x533D
+0x2938 0x537C
+0x2939 0x5397
+0x293A 0x5396
+0x293B 0x5399
+0x293C 0x5398
+0x293D 0x54BA
+0x293E 0x54A1
+0x293F 0x54AD
+0x2940 0x54A5
+0x2941 0x54CF
+0x2942 0x54C3
+0x2943 0x830D
+0x2944 0x54B7
+0x2945 0x54AE
+0x2946 0x54D6
+0x2947 0x54B6
+0x2948 0x54C5
+0x2949 0x54C6
+0x294A 0x54A0
+0x294B 0x5470
+0x294C 0x54BC
+0x294D 0x54A2
+0x294E 0x54BE
+0x294F 0x5472
+0x2950 0x54DE
+0x2951 0x54B0
+0x2952 0x57B5
+0x2953 0x579E
+0x2954 0x579F
+0x2955 0x57A4
+0x2956 0x578C
+0x2957 0x5797
+0x2958 0x579D
+0x2959 0x579B
+0x295A 0x5794
+0x295B 0x5798
+0x295C 0x578F
+0x295D 0x5799
+0x295E 0x57A5
+0x295F 0x579A
+0x2960 0x5795
+0x2961 0x58F4
+0x2962 0x590D
+0x2963 0x5953
+0x2964 0x59E1
+0x2965 0x59DE
+0x2966 0x59EE
+0x2967 0x5A00
+0x2968 0x59F1
+0x2969 0x59DD
+0x296A 0x59FA
+0x296B 0x59FD
+0x296C 0x59FC
+0x296D 0x59F6
+0x296E 0x59E4
+0x296F 0x59F2
+0x2970 0x59F7
+0x2971 0x59DB
+0x2972 0x59E9
+0x2973 0x59F3
+0x2974 0x59F5
+0x2975 0x59E0
+0x2976 0x59FE
+0x2977 0x59F4
+0x2978 0x59ED
+0x2979 0x5BA8
+0x297A 0x5C4C
+0x297B 0x5CD0
+0x297C 0x5CD8
+0x297D 0x5CCC
+0x297E 0x5CD7
+0x2A21 0x5CCB
+0x2A22 0x5CDB
+0x2A23 0x5CDE
+0x2A24 0x5CDA
+0x2A25 0x5CC9
+0x2A26 0x5CC7
+0x2A27 0x5CCA
+0x2A28 0x5CD6
+0x2A29 0x5CD3
+0x2A2A 0x5CD4
+0x2A2B 0x5CCF
+0x2A2C 0x5CC8
+0x2A2D 0x5CC6
+0x2A2E 0x5CCE
+0x2A2F 0x5CDF
+0x2A30 0x5CF8
+0x2A31 0x5DF9
+0x2A32 0x5E21
+0x2A33 0x5E22
+0x2A34 0x5E23
+0x2A35 0x5E20
+0x2A36 0x5E24
+0x2A37 0x5EB0
+0x2A38 0x5EA4
+0x2A39 0x5EA2
+0x2A3A 0x5E9B
+0x2A3B 0x5EA3
+0x2A3C 0x5EA5
+0x2A3D 0x5F07
+0x2A3E 0x5F2E
+0x2A3F 0x5F56
+0x2A40 0x5F86
+0x2A41 0x6037
+0x2A42 0x6039
+0x2A43 0x6054
+0x2A44 0x6072
+0x2A45 0x605E
+0x2A46 0x6045
+0x2A47 0x6053
+0x2A48 0x6047
+0x2A49 0x6049
+0x2A4A 0x605B
+0x2A4B 0x604C
+0x2A4C 0x6040
+0x2A4D 0x6042
+0x2A4E 0x605F
+0x2A4F 0x6024
+0x2A50 0x6044
+0x2A51 0x6058
+0x2A52 0x6066
+0x2A53 0x606E
+0x2A54 0x6242
+0x2A55 0x6243
+0x2A56 0x62CF
+0x2A57 0x630D
+0x2A58 0x630B
+0x2A59 0x62F5
+0x2A5A 0x630E
+0x2A5B 0x6303
+0x2A5C 0x62EB
+0x2A5D 0x62F9
+0x2A5E 0x630F
+0x2A5F 0x630C
+0x2A60 0x62F8
+0x2A61 0x62F6
+0x2A62 0x6300
+0x2A63 0x6313
+0x2A64 0x6314
+0x2A65 0x62FA
+0x2A66 0x6315
+0x2A67 0x62FB
+0x2A68 0x62F0
+0x2A69 0x6541
+0x2A6A 0x6543
+0x2A6B 0x65AA
+0x2A6C 0x65BF
+0x2A6D 0x6636
+0x2A6E 0x6621
+0x2A6F 0x6632
+0x2A70 0x6635
+0x2A71 0x661C
+0x2A72 0x6626
+0x2A73 0x6622
+0x2A74 0x6633
+0x2A75 0x662B
+0x2A76 0x663A
+0x2A77 0x661D
+0x2A78 0x6634
+0x2A79 0x6639
+0x2A7A 0x662E
+0x2A7B 0x670F
+0x2A7C 0x6710
+0x2A7D 0x67C1
+0x2A7E 0x67F2
+0x2B21 0x67C8
+0x2B22 0x67BA
+0x2B23 0x67DC
+0x2B24 0x67BB
+0x2B25 0x67F8
+0x2B26 0x67D8
+0x2B27 0x67C0
+0x2B28 0x67B7
+0x2B29 0x67C5
+0x2B2A 0x67EB
+0x2B2B 0x67E4
+0x2B2C 0x67DF
+0x2B2D 0x67B5
+0x2B2E 0x67CD
+0x2B2F 0x67B3
+0x2B30 0x67F7
+0x2B31 0x67F6
+0x2B32 0x67EE
+0x2B33 0x67E3
+0x2B34 0x67C2
+0x2B35 0x67B9
+0x2B36 0x67CE
+0x2B37 0x67E7
+0x2B38 0x67F0
+0x2B39 0x67B2
+0x2B3A 0x67FC
+0x2B3B 0x67C6
+0x2B3C 0x67ED
+0x2B3D 0x67CC
+0x2B3E 0x67AE
+0x2B3F 0x67E6
+0x2B40 0x67DB
+0x2B41 0x67FA
+0x2B42 0x67C9
+0x2B43 0x67CA
+0x2B44 0x67C3
+0x2B45 0x67EA
+0x2B46 0x67CB
+0x2B47 0x6B28
+0x2B48 0x6B82
+0x2B49 0x6B84
+0x2B4A 0x6BB6
+0x2B4B 0x6BD6
+0x2B4C 0x6BD8
+0x2B4D 0x6BE0
+0x2B4E 0x6C20
+0x2B4F 0x6C21
+0x2B50 0x6D28
+0x2B51 0x6D34
+0x2B52 0x6D2D
+0x2B53 0x6D1F
+0x2B54 0x6D3C
+0x2B55 0x6D3F
+0x2B56 0x6D12
+0x2B57 0x6D0A
+0x2B58 0x6CDA
+0x2B59 0x6D33
+0x2B5A 0x6D04
+0x2B5B 0x6D19
+0x2B5C 0x6D3A
+0x2B5D 0x6D1A
+0x2B5E 0x6D11
+0x2B5F 0x6D00
+0x2B60 0x6D1D
+0x2B61 0x6D42
+0x2B62 0x6D01
+0x2B63 0x6D18
+0x2B64 0x6D37
+0x2B65 0x6D03
+0x2B66 0x6D0F
+0x2B67 0x6D40
+0x2B68 0x6D07
+0x2B69 0x6D20
+0x2B6A 0x6D2C
+0x2B6B 0x6D08
+0x2B6C 0x6D22
+0x2B6D 0x6D09
+0x2B6E 0x6D10
+0x2B6F 0x70B7
+0x2B70 0x709F
+0x2B71 0x70BE
+0x2B72 0x70B1
+0x2B73 0x70B0
+0x2B74 0x70A1
+0x2B75 0x70B4
+0x2B76 0x70B5
+0x2B77 0x70A9
+0x2B78 0x7241
+0x2B79 0x7249
+0x2B7A 0x724A
+0x2B7B 0x726C
+0x2B7C 0x7270
+0x2B7D 0x7273
+0x2B7E 0x726E
+0x2C21 0x72CA
+0x2C22 0x72E4
+0x2C23 0x72E8
+0x2C24 0x72EB
+0x2C25 0x72DF
+0x2C26 0x72EA
+0x2C27 0x72E6
+0x2C28 0x72E3
+0x2C29 0x7385
+0x2C2A 0x73CC
+0x2C2B 0x73C2
+0x2C2C 0x73C8
+0x2C2D 0x73C5
+0x2C2E 0x73B9
+0x2C2F 0x73B6
+0x2C30 0x73B5
+0x2C31 0x73B4
+0x2C32 0x73EB
+0x2C33 0x73BF
+0x2C34 0x73C7
+0x2C35 0x73BE
+0x2C36 0x73C3
+0x2C37 0x73C6
+0x2C38 0x73B8
+0x2C39 0x73CB
+0x2C3A 0x74EC
+0x2C3B 0x74EE
+0x2C3C 0x752E
+0x2C3D 0x7547
+0x2C3E 0x7548
+0x2C3F 0x75A7
+0x2C40 0x75AA
+0x2C41 0x7679
+0x2C42 0x76C4
+0x2C43 0x7708
+0x2C44 0x7703
+0x2C45 0x7704
+0x2C46 0x7705
+0x2C47 0x770A
+0x2C48 0x76F7
+0x2C49 0x76FB
+0x2C4A 0x76FA
+0x2C4B 0x77E7
+0x2C4C 0x77E8
+0x2C4D 0x7806
+0x2C4E 0x7811
+0x2C4F 0x7812
+0x2C50 0x7805
+0x2C51 0x7810
+0x2C52 0x780F
+0x2C53 0x780E
+0x2C54 0x7809
+0x2C55 0x7803
+0x2C56 0x7813
+0x2C57 0x794A
+0x2C58 0x794C
+0x2C59 0x794B
+0x2C5A 0x7945
+0x2C5B 0x7944
+0x2C5C 0x79D5
+0x2C5D 0x79CD
+0x2C5E 0x79CF
+0x2C5F 0x79D6
+0x2C60 0x79CE
+0x2C61 0x7A80
+0x2C62 0x7A7E
+0x2C63 0x7AD1
+0x2C64 0x7B00
+0x2C65 0x7B01
+0x2C66 0x7C7A
+0x2C67 0x7C78
+0x2C68 0x7C79
+0x2C69 0x7C7F
+0x2C6A 0x7C80
+0x2C6B 0x7C81
+0x2C6C 0x7D03
+0x2C6D 0x7D08
+0x2C6E 0x7D01
+0x2C6F 0x7F58
+0x2C70 0x7F91
+0x2C71 0x7F8D
+0x2C72 0x7FBE
+0x2C73 0x8007
+0x2C74 0x800E
+0x2C75 0x800F
+0x2C76 0x8014
+0x2C77 0x8037
+0x2C78 0x80D8
+0x2C79 0x80C7
+0x2C7A 0x80E0
+0x2C7B 0x80D1
+0x2C7C 0x80C8
+0x2C7D 0x80C2
+0x2C7E 0x80D0
+0x2D21 0x80C5
+0x2D22 0x80E3
+0x2D23 0x80D9
+0x2D24 0x80DC
+0x2D25 0x80CA
+0x2D26 0x80D5
+0x2D27 0x80C9
+0x2D28 0x80CF
+0x2D29 0x80D7
+0x2D2A 0x80E6
+0x2D2B 0x80CD
+0x2D2C 0x81FF
+0x2D2D 0x8221
+0x2D2E 0x8294
+0x2D2F 0x82D9
+0x2D30 0x82FE
+0x2D31 0x82F9
+0x2D32 0x8307
+0x2D33 0x82E8
+0x2D34 0x8300
+0x2D35 0x82D5
+0x2D36 0x833A
+0x2D37 0x82EB
+0x2D38 0x82D6
+0x2D39 0x82F4
+0x2D3A 0x82EC
+0x2D3B 0x82E1
+0x2D3C 0x82F2
+0x2D3D 0x82F5
+0x2D3E 0x830C
+0x2D3F 0x82FB
+0x2D40 0x82F6
+0x2D41 0x82F0
+0x2D42 0x82EA
+0x2D43 0x82E4
+0x2D44 0x82E0
+0x2D45 0x82FA
+0x2D46 0x82F3
+0x2D47 0x82ED
+0x2D48 0x8677
+0x2D49 0x8674
+0x2D4A 0x867C
+0x2D4B 0x8673
+0x2D4C 0x8841
+0x2D4D 0x884E
+0x2D4E 0x8867
+0x2D4F 0x886A
+0x2D50 0x8869
+0x2D51 0x89D3
+0x2D52 0x8A04
+0x2D53 0x8A07
+0x2D54 0x8D72
+0x2D55 0x8FE3
+0x2D56 0x8FE1
+0x2D57 0x8FEE
+0x2D58 0x8FE0
+0x2D59 0x90F1
+0x2D5A 0x90BD
+0x2D5B 0x90BF
+0x2D5C 0x90D5
+0x2D5D 0x90C5
+0x2D5E 0x90BE
+0x2D5F 0x90C7
+0x2D60 0x90CB
+0x2D61 0x90C8
+0x2D62 0x91D4
+0x2D63 0x91D3
+0x2D64 0x9654
+0x2D65 0x964F
+0x2D66 0x9651
+0x2D67 0x9653
+0x2D68 0x964A
+0x2D69 0x964E
+0x2D6A 0x501E
+0x2D6B 0x5005
+0x2D6C 0x5007
+0x2D6D 0x5013
+0x2D6E 0x5022
+0x2D6F 0x5030
+0x2D70 0x501B
+0x2D71 0x4FF5
+0x2D72 0x4FF4
+0x2D73 0x5033
+0x2D74 0x5037
+0x2D75 0x502C
+0x2D76 0x4FF6
+0x2D77 0x4FF7
+0x2D78 0x5017
+0x2D79 0x501C
+0x2D7A 0x5020
+0x2D7B 0x5027
+0x2D7C 0x5035
+0x2D7D 0x502F
+0x2D7E 0x5031
+0x2E21 0x500E
+0x2E22 0x515A
+0x2E23 0x5194
+0x2E24 0x5193
+0x2E25 0x51CA
+0x2E26 0x51C4
+0x2E27 0x51C5
+0x2E28 0x51C8
+0x2E29 0x51CE
+0x2E2A 0x5261
+0x2E2B 0x525A
+0x2E2C 0x5252
+0x2E2D 0x525E
+0x2E2E 0x525F
+0x2E2F 0x5255
+0x2E30 0x5262
+0x2E31 0x52CD
+0x2E32 0x530E
+0x2E33 0x539E
+0x2E34 0x5526
+0x2E35 0x54E2
+0x2E36 0x5517
+0x2E37 0x5512
+0x2E38 0x54E7
+0x2E39 0x54F3
+0x2E3A 0x54E4
+0x2E3B 0x551A
+0x2E3C 0x54FF
+0x2E3D 0x5504
+0x2E3E 0x5508
+0x2E3F 0x54EB
+0x2E40 0x5511
+0x2E41 0x5505
+0x2E42 0x54F1
+0x2E43 0x550A
+0x2E44 0x54FB
+0x2E45 0x54F7
+0x2E46 0x54F8
+0x2E47 0x54E0
+0x2E48 0x550E
+0x2E49 0x5503
+0x2E4A 0x550B
+0x2E4B 0x5701
+0x2E4C 0x5702
+0x2E4D 0x57CC
+0x2E4E 0x5832
+0x2E4F 0x57D5
+0x2E50 0x57D2
+0x2E51 0x57BA
+0x2E52 0x57C6
+0x2E53 0x57BD
+0x2E54 0x57BC
+0x2E55 0x57B8
+0x2E56 0x57B6
+0x2E57 0x57BF
+0x2E58 0x57C7
+0x2E59 0x57D0
+0x2E5A 0x57B9
+0x2E5B 0x57C1
+0x2E5C 0x590E
+0x2E5D 0x594A
+0x2E5E 0x5A19
+0x2E5F 0x5A16
+0x2E60 0x5A2D
+0x2E61 0x5A2E
+0x2E62 0x5A15
+0x2E63 0x5A0F
+0x2E64 0x5A17
+0x2E65 0x5A0A
+0x2E66 0x5A1E
+0x2E67 0x5A33
+0x2E68 0x5B6C
+0x2E69 0x5BA7
+0x2E6A 0x5BAD
+0x2E6B 0x5BAC
+0x2E6C 0x5C03
+0x2E6D 0x5C56
+0x2E6E 0x5C54
+0x2E6F 0x5CEC
+0x2E70 0x5CFF
+0x2E71 0x5CEE
+0x2E72 0x5CF1
+0x2E73 0x5CF7
+0x2E74 0x5D00
+0x2E75 0x5CF9
+0x2E76 0x5E29
+0x2E77 0x5E28
+0x2E78 0x5EA8
+0x2E79 0x5EAE
+0x2E7A 0x5EAA
+0x2E7B 0x5EAC
+0x2E7C 0x5F33
+0x2E7D 0x5F30
+0x2E7E 0x5F67
+0x2F21 0x605D
+0x2F22 0x605A
+0x2F23 0x6067
+0x2F24 0x6041
+0x2F25 0x60A2
+0x2F26 0x6088
+0x2F27 0x6080
+0x2F28 0x6092
+0x2F29 0x6081
+0x2F2A 0x609D
+0x2F2B 0x6083
+0x2F2C 0x6095
+0x2F2D 0x609B
+0x2F2E 0x6097
+0x2F2F 0x6087
+0x2F30 0x609C
+0x2F31 0x608E
+0x2F32 0x6219
+0x2F33 0x6246
+0x2F34 0x62F2
+0x2F35 0x6310
+0x2F36 0x6356
+0x2F37 0x632C
+0x2F38 0x6344
+0x2F39 0x6345
+0x2F3A 0x6336
+0x2F3B 0x6343
+0x2F3C 0x63E4
+0x2F3D 0x6339
+0x2F3E 0x634B
+0x2F3F 0x634A
+0x2F40 0x633C
+0x2F41 0x6329
+0x2F42 0x6341
+0x2F43 0x6334
+0x2F44 0x6358
+0x2F45 0x6354
+0x2F46 0x6359
+0x2F47 0x632D
+0x2F48 0x6347
+0x2F49 0x6333
+0x2F4A 0x635A
+0x2F4B 0x6351
+0x2F4C 0x6338
+0x2F4D 0x6357
+0x2F4E 0x6340
+0x2F4F 0x6348
+0x2F50 0x654A
+0x2F51 0x6546
+0x2F52 0x65C6
+0x2F53 0x65C3
+0x2F54 0x65C4
+0x2F55 0x65C2
+0x2F56 0x664A
+0x2F57 0x665F
+0x2F58 0x6647
+0x2F59 0x6651
+0x2F5A 0x6712
+0x2F5B 0x6713
+0x2F5C 0x681F
+0x2F5D 0x681A
+0x2F5E 0x6849
+0x2F5F 0x6832
+0x2F60 0x6833
+0x2F61 0x683B
+0x2F62 0x684B
+0x2F63 0x684F
+0x2F64 0x6816
+0x2F65 0x6831
+0x2F66 0x681C
+0x2F67 0x6835
+0x2F68 0x682B
+0x2F69 0x682D
+0x2F6A 0x682F
+0x2F6B 0x684E
+0x2F6C 0x6844
+0x2F6D 0x6834
+0x2F6E 0x681D
+0x2F6F 0x6812
+0x2F70 0x6814
+0x2F71 0x6826
+0x2F72 0x6828
+0x2F73 0x682E
+0x2F74 0x684D
+0x2F75 0x683A
+0x2F76 0x6825
+0x2F77 0x6820
+0x2F78 0x6B2C
+0x2F79 0x6B2F
+0x2F7A 0x6B2D
+0x2F7B 0x6B31
+0x2F7C 0x6B34
+0x2F7D 0x6B6D
+0x2F7E 0x8082
+0x3021 0x6B88
+0x3022 0x6BE6
+0x3023 0x6BE4
+0x3024 0x6BE8
+0x3025 0x6BE3
+0x3026 0x6BE2
+0x3027 0x6BE7
+0x3028 0x6C25
+0x3029 0x6D7A
+0x302A 0x6D63
+0x302B 0x6D64
+0x302C 0x6D76
+0x302D 0x6D0D
+0x302E 0x6D61
+0x302F 0x6D92
+0x3030 0x6D58
+0x3031 0x6D62
+0x3032 0x6D6D
+0x3033 0x6D6F
+0x3034 0x6D91
+0x3035 0x6D8D
+0x3036 0x6DEF
+0x3037 0x6D7F
+0x3038 0x6D86
+0x3039 0x6D5E
+0x303A 0x6D67
+0x303B 0x6D60
+0x303C 0x6D97
+0x303D 0x6D70
+0x303E 0x6D7C
+0x303F 0x6D5F
+0x3040 0x6D82
+0x3041 0x6D98
+0x3042 0x6D2F
+0x3043 0x6D68
+0x3044 0x6D8B
+0x3045 0x6D7E
+0x3046 0x6D80
+0x3047 0x6D84
+0x3048 0x6D16
+0x3049 0x6D83
+0x304A 0x6D7B
+0x304B 0x6D7D
+0x304C 0x6D75
+0x304D 0x6D90
+0x304E 0x70DC
+0x304F 0x70D3
+0x3050 0x70D1
+0x3051 0x70DD
+0x3052 0x70CB
+0x3053 0x7F39
+0x3054 0x70E2
+0x3055 0x70D7
+0x3056 0x70D2
+0x3057 0x70DE
+0x3058 0x70E0
+0x3059 0x70D4
+0x305A 0x70CD
+0x305B 0x70C5
+0x305C 0x70C6
+0x305D 0x70C7
+0x305E 0x70DA
+0x305F 0x70CE
+0x3060 0x70E1
+0x3061 0x7242
+0x3062 0x7278
+0x3063 0x7277
+0x3064 0x7276
+0x3065 0x7300
+0x3066 0x72FA
+0x3067 0x72F4
+0x3068 0x72FE
+0x3069 0x72F6
+0x306A 0x72F3
+0x306B 0x72FB
+0x306C 0x7301
+0x306D 0x73D3
+0x306E 0x73D9
+0x306F 0x73E5
+0x3070 0x73D6
+0x3071 0x73BC
+0x3072 0x73E7
+0x3073 0x73E3
+0x3074 0x73E9
+0x3075 0x73DC
+0x3076 0x73D2
+0x3077 0x73DB
+0x3078 0x73D4
+0x3079 0x73DD
+0x307A 0x73DA
+0x307B 0x73D7
+0x307C 0x73D8
+0x307D 0x73E8
+0x307E 0x74DE
+0x3121 0x74DF
+0x3122 0x74F4
+0x3123 0x74F5
+0x3124 0x7521
+0x3125 0x755B
+0x3126 0x755F
+0x3127 0x75B0
+0x3128 0x75C1
+0x3129 0x75BB
+0x312A 0x75C4
+0x312B 0x75C0
+0x312C 0x75BF
+0x312D 0x75B6
+0x312E 0x75BA
+0x312F 0x768A
+0x3130 0x76C9
+0x3131 0x771D
+0x3132 0x771B
+0x3133 0x7710
+0x3134 0x7713
+0x3135 0x7712
+0x3136 0x7723
+0x3137 0x7711
+0x3138 0x7715
+0x3139 0x7719
+0x313A 0x771A
+0x313B 0x7722
+0x313C 0x7727
+0x313D 0x7823
+0x313E 0x782C
+0x313F 0x7822
+0x3140 0x7835
+0x3141 0x782F
+0x3142 0x7828
+0x3143 0x782E
+0x3144 0x782B
+0x3145 0x7821
+0x3146 0x7829
+0x3147 0x7833
+0x3148 0x782A
+0x3149 0x7831
+0x314A 0x7954
+0x314B 0x795B
+0x314C 0x794F
+0x314D 0x795C
+0x314E 0x7953
+0x314F 0x7952
+0x3150 0x7951
+0x3151 0x79EB
+0x3152 0x79EC
+0x3153 0x79E0
+0x3154 0x79EE
+0x3155 0x79ED
+0x3156 0x79EA
+0x3157 0x79DC
+0x3158 0x79DE
+0x3159 0x79DD
+0x315A 0x7A86
+0x315B 0x7A89
+0x315C 0x7A85
+0x315D 0x7A8B
+0x315E 0x7A8C
+0x315F 0x7A8A
+0x3160 0x7A87
+0x3161 0x7AD8
+0x3162 0x7B10
+0x3163 0x7B04
+0x3164 0x7B13
+0x3165 0x7B05
+0x3166 0x7B0F
+0x3167 0x7B08
+0x3168 0x7B0A
+0x3169 0x7B0E
+0x316A 0x7B09
+0x316B 0x7B12
+0x316C 0x7C84
+0x316D 0x7C91
+0x316E 0x7C8A
+0x316F 0x7C8C
+0x3170 0x7C88
+0x3171 0x7C8D
+0x3172 0x7C85
+0x3173 0x7D1E
+0x3174 0x7D1D
+0x3175 0x7D11
+0x3176 0x7D0E
+0x3177 0x7D18
+0x3178 0x7D16
+0x3179 0x7D13
+0x317A 0x7D1F
+0x317B 0x7D12
+0x317C 0x7D0F
+0x317D 0x7D0C
+0x317E 0x7F5C
+0x3221 0x7F61
+0x3222 0x7F5E
+0x3223 0x7F60
+0x3224 0x7F5D
+0x3225 0x7F5B
+0x3226 0x7F96
+0x3227 0x7F92
+0x3228 0x7FC3
+0x3229 0x7FC2
+0x322A 0x7FC0
+0x322B 0x8016
+0x322C 0x803E
+0x322D 0x8039
+0x322E 0x80FA
+0x322F 0x80F2
+0x3230 0x80F9
+0x3231 0x80F5
+0x3232 0x8101
+0x3233 0x80FB
+0x3234 0x8100
+0x3235 0x8201
+0x3236 0x822F
+0x3237 0x8225
+0x3238 0x8333
+0x3239 0x832D
+0x323A 0x8344
+0x323B 0x8319
+0x323C 0x8351
+0x323D 0x8325
+0x323E 0x8356
+0x323F 0x833F
+0x3240 0x8341
+0x3241 0x8326
+0x3242 0x831C
+0x3243 0x8322
+0x3244 0x8342
+0x3245 0x834E
+0x3246 0x831B
+0x3247 0x832A
+0x3248 0x8308
+0x3249 0x833C
+0x324A 0x834D
+0x324B 0x8316
+0x324C 0x8324
+0x324D 0x8320
+0x324E 0x8337
+0x324F 0x832F
+0x3250 0x8329
+0x3251 0x8347
+0x3252 0x8345
+0x3253 0x834C
+0x3254 0x8353
+0x3255 0x831E
+0x3256 0x832C
+0x3257 0x834B
+0x3258 0x8327
+0x3259 0x8348
+0x325A 0x8653
+0x325B 0x8652
+0x325C 0x86A2
+0x325D 0x86A8
+0x325E 0x8696
+0x325F 0x868D
+0x3260 0x8691
+0x3261 0x869E
+0x3262 0x8687
+0x3263 0x8697
+0x3264 0x8686
+0x3265 0x868B
+0x3266 0x869A
+0x3267 0x8685
+0x3268 0x86A5
+0x3269 0x8699
+0x326A 0x86A1
+0x326B 0x86A7
+0x326C 0x8695
+0x326D 0x8698
+0x326E 0x868E
+0x326F 0x869D
+0x3270 0x8690
+0x3271 0x8694
+0x3272 0x8843
+0x3273 0x8844
+0x3274 0x886D
+0x3275 0x8875
+0x3276 0x8876
+0x3277 0x8872
+0x3278 0x8880
+0x3279 0x8871
+0x327A 0x887F
+0x327B 0x886F
+0x327C 0x8883
+0x327D 0x887E
+0x327E 0x8874
+0x3321 0x887C
+0x3322 0x8A12
+0x3323 0x8C47
+0x3324 0x8C57
+0x3325 0x8C7B
+0x3326 0x8CA4
+0x3327 0x8CA3
+0x3328 0x8D76
+0x3329 0x8D78
+0x332A 0x8DB5
+0x332B 0x8DB7
+0x332C 0x8DB6
+0x332D 0x8ED1
+0x332E 0x8ED3
+0x332F 0x8FFE
+0x3330 0x8FF5
+0x3331 0x9002
+0x3332 0x8FFF
+0x3333 0x8FFB
+0x3334 0x9004
+0x3335 0x8FFC
+0x3336 0x8FF6
+0x3337 0x90D6
+0x3338 0x90E0
+0x3339 0x90D9
+0x333A 0x90DA
+0x333B 0x90E3
+0x333C 0x90DF
+0x333D 0x90E5
+0x333E 0x90D8
+0x333F 0x90DB
+0x3340 0x90D7
+0x3341 0x90DC
+0x3342 0x90E4
+0x3343 0x9150
+0x3344 0x914E
+0x3345 0x914F
+0x3346 0x91D5
+0x3347 0x91E2
+0x3348 0x91DA
+0x3349 0x965C
+0x334A 0x965F
+0x334B 0x96BC
+0x334C 0x98E3
+0x334D 0x9ADF
+0x334E 0x9B2F
+0x334F 0x4E7F
+0x3350 0x5070
+0x3351 0x506A
+0x3352 0x5061
+0x3353 0x505E
+0x3354 0x5060
+0x3355 0x5053
+0x3356 0x504B
+0x3357 0x505D
+0x3358 0x5072
+0x3359 0x5048
+0x335A 0x504D
+0x335B 0x5041
+0x335C 0x505B
+0x335D 0x504A
+0x335E 0x5062
+0x335F 0x5015
+0x3360 0x5045
+0x3361 0x505F
+0x3362 0x5069
+0x3363 0x506B
+0x3364 0x5063
+0x3365 0x5064
+0x3366 0x5046
+0x3367 0x5040
+0x3368 0x506E
+0x3369 0x5073
+0x336A 0x5057
+0x336B 0x5051
+0x336C 0x51D0
+0x336D 0x526B
+0x336E 0x526D
+0x336F 0x526C
+0x3370 0x526E
+0x3371 0x52D6
+0x3372 0x52D3
+0x3373 0x532D
+0x3374 0x539C
+0x3375 0x5575
+0x3376 0x5576
+0x3377 0x553C
+0x3378 0x554D
+0x3379 0x5550
+0x337A 0x5534
+0x337B 0x552A
+0x337C 0x5551
+0x337D 0x5562
+0x337E 0x5536
+0x3421 0x5535
+0x3422 0x5530
+0x3423 0x5552
+0x3424 0x5545
+0x3425 0x550C
+0x3426 0x5532
+0x3427 0x5565
+0x3428 0x554E
+0x3429 0x5539
+0x342A 0x5548
+0x342B 0x552D
+0x342C 0x553B
+0x342D 0x5540
+0x342E 0x554B
+0x342F 0x570A
+0x3430 0x5707
+0x3431 0x57FB
+0x3432 0x5814
+0x3433 0x57E2
+0x3434 0x57F6
+0x3435 0x57DC
+0x3436 0x57F4
+0x3437 0x5800
+0x3438 0x57ED
+0x3439 0x57FD
+0x343A 0x5808
+0x343B 0x57F8
+0x343C 0x580B
+0x343D 0x57F3
+0x343E 0x57CF
+0x343F 0x5807
+0x3440 0x57EE
+0x3441 0x57E3
+0x3442 0x57F2
+0x3443 0x57E5
+0x3444 0x57EC
+0x3445 0x57E1
+0x3446 0x580E
+0x3447 0x57FC
+0x3448 0x5810
+0x3449 0x57E7
+0x344A 0x5801
+0x344B 0x580C
+0x344C 0x57F1
+0x344D 0x57E9
+0x344E 0x57F0
+0x344F 0x580D
+0x3450 0x5804
+0x3451 0x595C
+0x3452 0x5A60
+0x3453 0x5A58
+0x3454 0x5A55
+0x3455 0x5A67
+0x3456 0x5A5E
+0x3457 0x5A38
+0x3458 0x5A35
+0x3459 0x5A6D
+0x345A 0x5A50
+0x345B 0x5A5F
+0x345C 0x5A65
+0x345D 0x5A6C
+0x345E 0x5A53
+0x345F 0x5A64
+0x3460 0x5A57
+0x3461 0x5A43
+0x3462 0x5A5D
+0x3463 0x5A52
+0x3464 0x5A44
+0x3465 0x5A5B
+0x3466 0x5A48
+0x3467 0x5A8E
+0x3468 0x5A3E
+0x3469 0x5A4D
+0x346A 0x5A39
+0x346B 0x5A4C
+0x346C 0x5A70
+0x346D 0x5A69
+0x346E 0x5A47
+0x346F 0x5A51
+0x3470 0x5A56
+0x3471 0x5A42
+0x3472 0x5A5C
+0x3473 0x5B72
+0x3474 0x5B6E
+0x3475 0x5BC1
+0x3476 0x5BC0
+0x3477 0x5C59
+0x3478 0x5D1E
+0x3479 0x5D0B
+0x347A 0x5D1D
+0x347B 0x5D1A
+0x347C 0x5D20
+0x347D 0x5D0C
+0x347E 0x5D28
+0x3521 0x5D0D
+0x3522 0x5D26
+0x3523 0x5D25
+0x3524 0x5D0F
+0x3525 0x5D30
+0x3526 0x5D12
+0x3527 0x5D23
+0x3528 0x5D1F
+0x3529 0x5D2E
+0x352A 0x5E3E
+0x352B 0x5E34
+0x352C 0x5EB1
+0x352D 0x5EB4
+0x352E 0x5EB9
+0x352F 0x5EB2
+0x3530 0x5EB3
+0x3531 0x5F36
+0x3532 0x5F38
+0x3533 0x5F9B
+0x3534 0x5F96
+0x3535 0x5F9F
+0x3536 0x608A
+0x3537 0x6090
+0x3538 0x6086
+0x3539 0x60BE
+0x353A 0x60B0
+0x353B 0x60BA
+0x353C 0x60D3
+0x353D 0x60D4
+0x353E 0x60CF
+0x353F 0x60E4
+0x3540 0x60D9
+0x3541 0x60DD
+0x3542 0x60C8
+0x3543 0x60B1
+0x3544 0x60DB
+0x3545 0x60B7
+0x3546 0x60CA
+0x3547 0x60BF
+0x3548 0x60C3
+0x3549 0x60CD
+0x354A 0x60C0
+0x354B 0x6332
+0x354C 0x6365
+0x354D 0x638A
+0x354E 0x6382
+0x354F 0x637D
+0x3550 0x63BD
+0x3551 0x639E
+0x3552 0x63AD
+0x3553 0x639D
+0x3554 0x6397
+0x3555 0x63AB
+0x3556 0x638E
+0x3557 0x636F
+0x3558 0x6387
+0x3559 0x6390
+0x355A 0x636E
+0x355B 0x63AF
+0x355C 0x6375
+0x355D 0x639C
+0x355E 0x636D
+0x355F 0x63AE
+0x3560 0x637C
+0x3561 0x63A4
+0x3562 0x633B
+0x3563 0x639F
+0x3564 0x6378
+0x3565 0x6385
+0x3566 0x6381
+0x3567 0x6391
+0x3568 0x638D
+0x3569 0x6370
+0x356A 0x6553
+0x356B 0x65CD
+0x356C 0x6665
+0x356D 0x6661
+0x356E 0x665B
+0x356F 0x6659
+0x3570 0x665C
+0x3571 0x6662
+0x3572 0x6718
+0x3573 0x6879
+0x3574 0x6887
+0x3575 0x6890
+0x3576 0x689C
+0x3577 0x686D
+0x3578 0x686E
+0x3579 0x68AE
+0x357A 0x68AB
+0x357B 0x6956
+0x357C 0x686F
+0x357D 0x68A3
+0x357E 0x68AC
+0x3621 0x68A9
+0x3622 0x6875
+0x3623 0x6874
+0x3624 0x68B2
+0x3625 0x688F
+0x3626 0x6877
+0x3627 0x6892
+0x3628 0x687C
+0x3629 0x686B
+0x362A 0x6872
+0x362B 0x68AA
+0x362C 0x6880
+0x362D 0x6871
+0x362E 0x687E
+0x362F 0x689B
+0x3630 0x6896
+0x3631 0x688B
+0x3632 0x68A0
+0x3633 0x6889
+0x3634 0x68A4
+0x3635 0x6878
+0x3636 0x687B
+0x3637 0x6891
+0x3638 0x688C
+0x3639 0x688A
+0x363A 0x687D
+0x363B 0x6B36
+0x363C 0x6B33
+0x363D 0x6B37
+0x363E 0x6B38
+0x363F 0x6B91
+0x3640 0x6B8F
+0x3641 0x6B8D
+0x3642 0x6B8E
+0x3643 0x6B8C
+0x3644 0x6C2A
+0x3645 0x6DC0
+0x3646 0x6DAB
+0x3647 0x6DB4
+0x3648 0x6DB3
+0x3649 0x6E74
+0x364A 0x6DAC
+0x364B 0x6DE9
+0x364C 0x6DE2
+0x364D 0x6DB7
+0x364E 0x6DF6
+0x364F 0x6DD4
+0x3650 0x6E00
+0x3651 0x6DC8
+0x3652 0x6DE0
+0x3653 0x6DDF
+0x3654 0x6DD6
+0x3655 0x6DBE
+0x3656 0x6DE5
+0x3657 0x6DDC
+0x3658 0x6DDD
+0x3659 0x6DDB
+0x365A 0x6DF4
+0x365B 0x6DCA
+0x365C 0x6DBD
+0x365D 0x6DED
+0x365E 0x6DF0
+0x365F 0x6DBA
+0x3660 0x6DD5
+0x3661 0x6DC2
+0x3662 0x6DCF
+0x3663 0x6DC9
+0x3664 0x6DD0
+0x3665 0x6DF2
+0x3666 0x6DD3
+0x3667 0x6DFD
+0x3668 0x6DD7
+0x3669 0x6DCD
+0x366A 0x6DE3
+0x366B 0x6DBB
+0x366C 0x70FA
+0x366D 0x710D
+0x366E 0x70F7
+0x366F 0x7117
+0x3670 0x70F4
+0x3671 0x710C
+0x3672 0x70F0
+0x3673 0x7104
+0x3674 0x70F3
+0x3675 0x7110
+0x3676 0x70FC
+0x3677 0x70FF
+0x3678 0x7106
+0x3679 0x7113
+0x367A 0x7100
+0x367B 0x70F8
+0x367C 0x70F6
+0x367D 0x710B
+0x367E 0x7102
+0x3721 0x710E
+0x3722 0x727E
+0x3723 0x727B
+0x3724 0x727C
+0x3725 0x727F
+0x3726 0x731D
+0x3727 0x7317
+0x3728 0x7307
+0x3729 0x7311
+0x372A 0x7318
+0x372B 0x730A
+0x372C 0x7308
+0x372D 0x72FF
+0x372E 0x730F
+0x372F 0x731E
+0x3730 0x7388
+0x3731 0x73F6
+0x3732 0x73F8
+0x3733 0x73F5
+0x3734 0x7404
+0x3735 0x7401
+0x3736 0x73FD
+0x3737 0x7407
+0x3738 0x7400
+0x3739 0x73FA
+0x373A 0x73FC
+0x373B 0x73FF
+0x373C 0x740C
+0x373D 0x740B
+0x373E 0x73F4
+0x373F 0x7408
+0x3740 0x7564
+0x3741 0x7563
+0x3742 0x75CE
+0x3743 0x75D2
+0x3744 0x75CF
+0x3745 0x75CB
+0x3746 0x75CC
+0x3747 0x75D1
+0x3748 0x75D0
+0x3749 0x768F
+0x374A 0x7689
+0x374B 0x76D3
+0x374C 0x7739
+0x374D 0x772F
+0x374E 0x772D
+0x374F 0x7731
+0x3750 0x7732
+0x3751 0x7734
+0x3752 0x7733
+0x3753 0x773D
+0x3754 0x7725
+0x3755 0x773B
+0x3756 0x7735
+0x3757 0x7848
+0x3758 0x7852
+0x3759 0x7849
+0x375A 0x784D
+0x375B 0x784A
+0x375C 0x784C
+0x375D 0x7826
+0x375E 0x7845
+0x375F 0x7850
+0x3760 0x7964
+0x3761 0x7967
+0x3762 0x7969
+0x3763 0x796A
+0x3764 0x7963
+0x3765 0x796B
+0x3766 0x7961
+0x3767 0x79BB
+0x3768 0x79FA
+0x3769 0x79F8
+0x376A 0x79F6
+0x376B 0x79F7
+0x376C 0x7A8F
+0x376D 0x7A94
+0x376E 0x7A90
+0x376F 0x7B35
+0x3770 0x7B47
+0x3771 0x7B34
+0x3772 0x7B25
+0x3773 0x7B30
+0x3774 0x7B22
+0x3775 0x7B24
+0x3776 0x7B33
+0x3777 0x7B18
+0x3778 0x7B2A
+0x3779 0x7B1D
+0x377A 0x7B31
+0x377B 0x7B2B
+0x377C 0x7B2D
+0x377D 0x7B2F
+0x377E 0x7B32
+0x3821 0x7B38
+0x3822 0x7B1A
+0x3823 0x7B23
+0x3824 0x7C94
+0x3825 0x7C98
+0x3826 0x7C96
+0x3827 0x7CA3
+0x3828 0x7D35
+0x3829 0x7D3D
+0x382A 0x7D38
+0x382B 0x7D36
+0x382C 0x7D3A
+0x382D 0x7D45
+0x382E 0x7D2C
+0x382F 0x7D29
+0x3830 0x7D41
+0x3831 0x7D47
+0x3832 0x7D3E
+0x3833 0x7D3F
+0x3834 0x7D4A
+0x3835 0x7D3B
+0x3836 0x7D28
+0x3837 0x7F63
+0x3838 0x7F95
+0x3839 0x7F9C
+0x383A 0x7F9D
+0x383B 0x7F9B
+0x383C 0x7FCA
+0x383D 0x7FCB
+0x383E 0x7FCD
+0x383F 0x7FD0
+0x3840 0x7FD1
+0x3841 0x7FC7
+0x3842 0x7FCF
+0x3843 0x7FC9
+0x3844 0x801F
+0x3845 0x801E
+0x3846 0x801B
+0x3847 0x8047
+0x3848 0x8043
+0x3849 0x8048
+0x384A 0x8118
+0x384B 0x8125
+0x384C 0x8119
+0x384D 0x811B
+0x384E 0x812D
+0x384F 0x811F
+0x3850 0x812C
+0x3851 0x811E
+0x3852 0x8121
+0x3853 0x8115
+0x3854 0x8127
+0x3855 0x811D
+0x3856 0x8122
+0x3857 0x8211
+0x3858 0x8238
+0x3859 0x8233
+0x385A 0x823A
+0x385B 0x8234
+0x385C 0x8232
+0x385D 0x8274
+0x385E 0x8390
+0x385F 0x83A3
+0x3860 0x83A8
+0x3861 0x838D
+0x3862 0x837A
+0x3863 0x8373
+0x3864 0x83A4
+0x3865 0x8374
+0x3866 0x838F
+0x3867 0x8381
+0x3868 0x8395
+0x3869 0x8399
+0x386A 0x8375
+0x386B 0x8394
+0x386C 0x83A9
+0x386D 0x837D
+0x386E 0x8383
+0x386F 0x838C
+0x3870 0x839D
+0x3871 0x839B
+0x3872 0x83AA
+0x3873 0x838B
+0x3874 0x837E
+0x3875 0x83A5
+0x3876 0x83AF
+0x3877 0x8388
+0x3878 0x8397
+0x3879 0x83B0
+0x387A 0x837F
+0x387B 0x83A6
+0x387C 0x8387
+0x387D 0x83AE
+0x387E 0x8376
+0x3921 0x839A
+0x3922 0x8659
+0x3923 0x8656
+0x3924 0x86BF
+0x3925 0x86B7
+0x3926 0x86C2
+0x3927 0x86C1
+0x3928 0x86C5
+0x3929 0x86BA
+0x392A 0x86B0
+0x392B 0x86C8
+0x392C 0x86B9
+0x392D 0x86B3
+0x392E 0x86B8
+0x392F 0x86CC
+0x3930 0x86B4
+0x3931 0x86BB
+0x3932 0x86BC
+0x3933 0x86C3
+0x3934 0x86BD
+0x3935 0x86BE
+0x3936 0x8852
+0x3937 0x8889
+0x3938 0x8895
+0x3939 0x88A8
+0x393A 0x88A2
+0x393B 0x88AA
+0x393C 0x889A
+0x393D 0x8891
+0x393E 0x88A1
+0x393F 0x889F
+0x3940 0x8898
+0x3941 0x88A7
+0x3942 0x8899
+0x3943 0x889B
+0x3944 0x8897
+0x3945 0x88A4
+0x3946 0x88AC
+0x3947 0x888C
+0x3948 0x8893
+0x3949 0x888E
+0x394A 0x8982
+0x394B 0x89D6
+0x394C 0x89D9
+0x394D 0x89D5
+0x394E 0x8A30
+0x394F 0x8A27
+0x3950 0x8A2C
+0x3951 0x8A1E
+0x3952 0x8C39
+0x3953 0x8C3B
+0x3954 0x8C5C
+0x3955 0x8C5D
+0x3956 0x8C7D
+0x3957 0x8CA5
+0x3958 0x8D7D
+0x3959 0x8D7B
+0x395A 0x8D79
+0x395B 0x8DBC
+0x395C 0x8DC2
+0x395D 0x8DB9
+0x395E 0x8DBF
+0x395F 0x8DC1
+0x3960 0x8ED8
+0x3961 0x8EDE
+0x3962 0x8EDD
+0x3963 0x8EDC
+0x3964 0x8ED7
+0x3965 0x8EE0
+0x3966 0x8EE1
+0x3967 0x9024
+0x3968 0x900B
+0x3969 0x9011
+0x396A 0x901C
+0x396B 0x900C
+0x396C 0x9021
+0x396D 0x90EF
+0x396E 0x90EA
+0x396F 0x90F0
+0x3970 0x90F4
+0x3971 0x90F2
+0x3972 0x90F3
+0x3973 0x90D4
+0x3974 0x90EB
+0x3975 0x90EC
+0x3976 0x90E9
+0x3977 0x9156
+0x3978 0x9158
+0x3979 0x915A
+0x397A 0x9153
+0x397B 0x9155
+0x397C 0x91EC
+0x397D 0x91F4
+0x397E 0x91F1
+0x3A21 0x91F3
+0x3A22 0x91F8
+0x3A23 0x91E4
+0x3A24 0x91F9
+0x3A25 0x91EA
+0x3A26 0x91EB
+0x3A27 0x91F7
+0x3A28 0x91E8
+0x3A29 0x91EE
+0x3A2A 0x957A
+0x3A2B 0x9586
+0x3A2C 0x9588
+0x3A2D 0x967C
+0x3A2E 0x966D
+0x3A2F 0x966B
+0x3A30 0x9671
+0x3A31 0x966F
+0x3A32 0x96BF
+0x3A33 0x976A
+0x3A34 0x9804
+0x3A35 0x98E5
+0x3A36 0x9997
+0x3A37 0x509B
+0x3A38 0x5095
+0x3A39 0x5094
+0x3A3A 0x509E
+0x3A3B 0x508B
+0x3A3C 0x50A3
+0x3A3D 0x5083
+0x3A3E 0x508C
+0x3A3F 0x508E
+0x3A40 0x509D
+0x3A41 0x5068
+0x3A42 0x509C
+0x3A43 0x5092
+0x3A44 0x5082
+0x3A45 0x5087
+0x3A46 0x515F
+0x3A47 0x51D4
+0x3A48 0x5312
+0x3A49 0x5311
+0x3A4A 0x53A4
+0x3A4B 0x53A7
+0x3A4C 0x5591
+0x3A4D 0x55A8
+0x3A4E 0x55A5
+0x3A4F 0x55AD
+0x3A50 0x5577
+0x3A51 0x5645
+0x3A52 0x55A2
+0x3A53 0x5593
+0x3A54 0x5588
+0x3A55 0x558F
+0x3A56 0x55B5
+0x3A57 0x5581
+0x3A58 0x55A3
+0x3A59 0x5592
+0x3A5A 0x55A4
+0x3A5B 0x557D
+0x3A5C 0x558C
+0x3A5D 0x55A6
+0x3A5E 0x557F
+0x3A5F 0x5595
+0x3A60 0x55A1
+0x3A61 0x558E
+0x3A62 0x570C
+0x3A63 0x5829
+0x3A64 0x5837
+0x3A65 0x5819
+0x3A66 0x581E
+0x3A67 0x5827
+0x3A68 0x5823
+0x3A69 0x5828
+0x3A6A 0x57F5
+0x3A6B 0x5848
+0x3A6C 0x5825
+0x3A6D 0x581C
+0x3A6E 0x581B
+0x3A6F 0x5833
+0x3A70 0x583F
+0x3A71 0x5836
+0x3A72 0x582E
+0x3A73 0x5839
+0x3A74 0x5838
+0x3A75 0x582D
+0x3A76 0x582C
+0x3A77 0x583B
+0x3A78 0x5961
+0x3A79 0x5AAF
+0x3A7A 0x5A94
+0x3A7B 0x5A9F
+0x3A7C 0x5A7A
+0x3A7D 0x5AA2
+0x3A7E 0x5A9E
+0x3B21 0x5A78
+0x3B22 0x5AA6
+0x3B23 0x5A7C
+0x3B24 0x5AA5
+0x3B25 0x5AAC
+0x3B26 0x5A95
+0x3B27 0x5AAE
+0x3B28 0x5A37
+0x3B29 0x5A84
+0x3B2A 0x5A8A
+0x3B2B 0x5A97
+0x3B2C 0x5A83
+0x3B2D 0x5A8B
+0x3B2E 0x5AA9
+0x3B2F 0x5A7B
+0x3B30 0x5A7D
+0x3B31 0x5A8C
+0x3B32 0x5A9C
+0x3B33 0x5A8F
+0x3B34 0x5A93
+0x3B35 0x5A9D
+0x3B36 0x5BEA
+0x3B37 0x5BCD
+0x3B38 0x5BCB
+0x3B39 0x5BD4
+0x3B3A 0x5BD1
+0x3B3B 0x5BCA
+0x3B3C 0x5BCE
+0x3B3D 0x5C0C
+0x3B3E 0x5C30
+0x3B3F 0x5D37
+0x3B40 0x5D43
+0x3B41 0x5D6B
+0x3B42 0x5D41
+0x3B43 0x5D4B
+0x3B44 0x5D3F
+0x3B45 0x5D35
+0x3B46 0x5D51
+0x3B47 0x5D4E
+0x3B48 0x5D55
+0x3B49 0x5D33
+0x3B4A 0x5D3A
+0x3B4B 0x5D52
+0x3B4C 0x5D3D
+0x3B4D 0x5D31
+0x3B4E 0x5D59
+0x3B4F 0x5D42
+0x3B50 0x5D39
+0x3B51 0x5D49
+0x3B52 0x5D38
+0x3B53 0x5D3C
+0x3B54 0x5D32
+0x3B55 0x5D36
+0x3B56 0x5D40
+0x3B57 0x5D45
+0x3B58 0x5E44
+0x3B59 0x5E41
+0x3B5A 0x5F58
+0x3B5B 0x5FA6
+0x3B5C 0x5FA5
+0x3B5D 0x5FAB
+0x3B5E 0x60C9
+0x3B5F 0x60B9
+0x3B60 0x60CC
+0x3B61 0x60E2
+0x3B62 0x60CE
+0x3B63 0x60C4
+0x3B64 0x6114
+0x3B65 0x60F2
+0x3B66 0x610A
+0x3B67 0x6116
+0x3B68 0x6105
+0x3B69 0x60F5
+0x3B6A 0x6113
+0x3B6B 0x60F8
+0x3B6C 0x60FC
+0x3B6D 0x60FE
+0x3B6E 0x60C1
+0x3B6F 0x6103
+0x3B70 0x6118
+0x3B71 0x611D
+0x3B72 0x6110
+0x3B73 0x60FF
+0x3B74 0x6104
+0x3B75 0x610B
+0x3B76 0x624A
+0x3B77 0x6394
+0x3B78 0x63B1
+0x3B79 0x63B0
+0x3B7A 0x63CE
+0x3B7B 0x63E5
+0x3B7C 0x63E8
+0x3B7D 0x63EF
+0x3B7E 0x63C3
+0x3C21 0x649D
+0x3C22 0x63F3
+0x3C23 0x63CA
+0x3C24 0x63E0
+0x3C25 0x63F6
+0x3C26 0x63D5
+0x3C27 0x63F2
+0x3C28 0x63F5
+0x3C29 0x6461
+0x3C2A 0x63DF
+0x3C2B 0x63BE
+0x3C2C 0x63DD
+0x3C2D 0x63DC
+0x3C2E 0x63C4
+0x3C2F 0x63D8
+0x3C30 0x63D3
+0x3C31 0x63C2
+0x3C32 0x63C7
+0x3C33 0x63CC
+0x3C34 0x63CB
+0x3C35 0x63C8
+0x3C36 0x63F0
+0x3C37 0x63D7
+0x3C38 0x63D9
+0x3C39 0x6532
+0x3C3A 0x6567
+0x3C3B 0x656A
+0x3C3C 0x6564
+0x3C3D 0x655C
+0x3C3E 0x6568
+0x3C3F 0x6565
+0x3C40 0x658C
+0x3C41 0x659D
+0x3C42 0x659E
+0x3C43 0x65AE
+0x3C44 0x65D0
+0x3C45 0x65D2
+0x3C46 0x667C
+0x3C47 0x666C
+0x3C48 0x667B
+0x3C49 0x6680
+0x3C4A 0x6671
+0x3C4B 0x6679
+0x3C4C 0x666A
+0x3C4D 0x6672
+0x3C4E 0x6701
+0x3C4F 0x690C
+0x3C50 0x68D3
+0x3C51 0x6904
+0x3C52 0x68DC
+0x3C53 0x692A
+0x3C54 0x68EC
+0x3C55 0x68EA
+0x3C56 0x68F1
+0x3C57 0x690F
+0x3C58 0x68D6
+0x3C59 0x68F7
+0x3C5A 0x68EB
+0x3C5B 0x68E4
+0x3C5C 0x68F6
+0x3C5D 0x6913
+0x3C5E 0x6910
+0x3C5F 0x68F3
+0x3C60 0x68E1
+0x3C61 0x6907
+0x3C62 0x68CC
+0x3C63 0x6908
+0x3C64 0x6970
+0x3C65 0x68B4
+0x3C66 0x6911
+0x3C67 0x68EF
+0x3C68 0x68C6
+0x3C69 0x6914
+0x3C6A 0x68F8
+0x3C6B 0x68D0
+0x3C6C 0x68FD
+0x3C6D 0x68FC
+0x3C6E 0x68E8
+0x3C6F 0x690B
+0x3C70 0x690A
+0x3C71 0x6917
+0x3C72 0x68CE
+0x3C73 0x68C8
+0x3C74 0x68DD
+0x3C75 0x68DE
+0x3C76 0x68E6
+0x3C77 0x68F4
+0x3C78 0x68D1
+0x3C79 0x6906
+0x3C7A 0x68D4
+0x3C7B 0x68E9
+0x3C7C 0x6915
+0x3C7D 0x6925
+0x3C7E 0x68C7
+0x3D21 0x6B39
+0x3D22 0x6B3B
+0x3D23 0x6B3F
+0x3D24 0x6B3C
+0x3D25 0x6B94
+0x3D26 0x6B97
+0x3D27 0x6B99
+0x3D28 0x6B95
+0x3D29 0x6BBD
+0x3D2A 0x6BF0
+0x3D2B 0x6BF2
+0x3D2C 0x6BF3
+0x3D2D 0x6C30
+0x3D2E 0x6DFC
+0x3D2F 0x6E46
+0x3D30 0x6E47
+0x3D31 0x6E1F
+0x3D32 0x6E49
+0x3D33 0x6E88
+0x3D34 0x6E3C
+0x3D35 0x6E3D
+0x3D36 0x6E45
+0x3D37 0x6E62
+0x3D38 0x6E2B
+0x3D39 0x6E3F
+0x3D3A 0x6E41
+0x3D3B 0x6E5D
+0x3D3C 0x6E73
+0x3D3D 0x6E1C
+0x3D3E 0x6E33
+0x3D3F 0x6E4B
+0x3D40 0x6E40
+0x3D41 0x6E51
+0x3D42 0x6E3B
+0x3D43 0x6E03
+0x3D44 0x6E2E
+0x3D45 0x6E5E
+0x3D46 0x6E68
+0x3D47 0x6E5C
+0x3D48 0x6E61
+0x3D49 0x6E31
+0x3D4A 0x6E28
+0x3D4B 0x6E60
+0x3D4C 0x6E71
+0x3D4D 0x6E6B
+0x3D4E 0x6E39
+0x3D4F 0x6E22
+0x3D50 0x6E30
+0x3D51 0x6E53
+0x3D52 0x6E65
+0x3D53 0x6E27
+0x3D54 0x6E78
+0x3D55 0x6E64
+0x3D56 0x6E77
+0x3D57 0x6E55
+0x3D58 0x6E79
+0x3D59 0x6E52
+0x3D5A 0x6E66
+0x3D5B 0x6E35
+0x3D5C 0x6E36
+0x3D5D 0x6E5A
+0x3D5E 0x7120
+0x3D5F 0x711E
+0x3D60 0x712F
+0x3D61 0x70FB
+0x3D62 0x712E
+0x3D63 0x7131
+0x3D64 0x7123
+0x3D65 0x7125
+0x3D66 0x7122
+0x3D67 0x7132
+0x3D68 0x711F
+0x3D69 0x7128
+0x3D6A 0x713A
+0x3D6B 0x711B
+0x3D6C 0x724B
+0x3D6D 0x725A
+0x3D6E 0x7288
+0x3D6F 0x7289
+0x3D70 0x7286
+0x3D71 0x7285
+0x3D72 0x728B
+0x3D73 0x7312
+0x3D74 0x730B
+0x3D75 0x7330
+0x3D76 0x7322
+0x3D77 0x7331
+0x3D78 0x7333
+0x3D79 0x7327
+0x3D7A 0x7332
+0x3D7B 0x732D
+0x3D7C 0x7326
+0x3D7D 0x7323
+0x3D7E 0x7335
+0x3E21 0x730C
+0x3E22 0x742E
+0x3E23 0x742C
+0x3E24 0x7430
+0x3E25 0x742B
+0x3E26 0x7416
+0x3E27 0x741A
+0x3E28 0x7421
+0x3E29 0x742D
+0x3E2A 0x7431
+0x3E2B 0x7424
+0x3E2C 0x7423
+0x3E2D 0x741D
+0x3E2E 0x7429
+0x3E2F 0x7420
+0x3E30 0x7432
+0x3E31 0x74FB
+0x3E32 0x752F
+0x3E33 0x756F
+0x3E34 0x756C
+0x3E35 0x75E7
+0x3E36 0x75DA
+0x3E37 0x75E1
+0x3E38 0x75E6
+0x3E39 0x75DD
+0x3E3A 0x75DF
+0x3E3B 0x75E4
+0x3E3C 0x75D7
+0x3E3D 0x7695
+0x3E3E 0x7692
+0x3E3F 0x76DA
+0x3E40 0x7746
+0x3E41 0x7747
+0x3E42 0x7744
+0x3E43 0x774D
+0x3E44 0x7745
+0x3E45 0x774A
+0x3E46 0x774E
+0x3E47 0x774B
+0x3E48 0x774C
+0x3E49 0x77DE
+0x3E4A 0x77EC
+0x3E4B 0x7860
+0x3E4C 0x7864
+0x3E4D 0x7865
+0x3E4E 0x785C
+0x3E4F 0x786D
+0x3E50 0x7871
+0x3E51 0x786A
+0x3E52 0x786E
+0x3E53 0x7870
+0x3E54 0x7869
+0x3E55 0x7868
+0x3E56 0x785E
+0x3E57 0x7862
+0x3E58 0x7974
+0x3E59 0x7973
+0x3E5A 0x7972
+0x3E5B 0x7970
+0x3E5C 0x7A02
+0x3E5D 0x7A0A
+0x3E5E 0x7A03
+0x3E5F 0x7A0C
+0x3E60 0x7A04
+0x3E61 0x7A99
+0x3E62 0x7AE6
+0x3E63 0x7AE4
+0x3E64 0x7B4A
+0x3E65 0x7B3B
+0x3E66 0x7B44
+0x3E67 0x7B48
+0x3E68 0x7B4C
+0x3E69 0x7B4E
+0x3E6A 0x7B40
+0x3E6B 0x7B58
+0x3E6C 0x7B45
+0x3E6D 0x7CA2
+0x3E6E 0x7C9E
+0x3E6F 0x7CA8
+0x3E70 0x7CA1
+0x3E71 0x7D58
+0x3E72 0x7D6F
+0x3E73 0x7D63
+0x3E74 0x7D53
+0x3E75 0x7D56
+0x3E76 0x7D67
+0x3E77 0x7D6A
+0x3E78 0x7D4F
+0x3E79 0x7D6D
+0x3E7A 0x7D5C
+0x3E7B 0x7D6B
+0x3E7C 0x7D52
+0x3E7D 0x7D54
+0x3E7E 0x7D69
+0x3F21 0x7D51
+0x3F22 0x7D5F
+0x3F23 0x7D4E
+0x3F24 0x7F3E
+0x3F25 0x7F3F
+0x3F26 0x7F65
+0x3F27 0x7F66
+0x3F28 0x7FA2
+0x3F29 0x7FA0
+0x3F2A 0x7FA1
+0x3F2B 0x7FD7
+0x3F2C 0x8051
+0x3F2D 0x804F
+0x3F2E 0x8050
+0x3F2F 0x80FE
+0x3F30 0x80D4
+0x3F31 0x8143
+0x3F32 0x814A
+0x3F33 0x8152
+0x3F34 0x814F
+0x3F35 0x8147
+0x3F36 0x813D
+0x3F37 0x814D
+0x3F38 0x813A
+0x3F39 0x81E6
+0x3F3A 0x81EE
+0x3F3B 0x81F7
+0x3F3C 0x81F8
+0x3F3D 0x81F9
+0x3F3E 0x8204
+0x3F3F 0x823C
+0x3F40 0x823D
+0x3F41 0x823F
+0x3F42 0x8275
+0x3F43 0x833B
+0x3F44 0x83CF
+0x3F45 0x83F9
+0x3F46 0x8423
+0x3F47 0x83C0
+0x3F48 0x83E8
+0x3F49 0x8412
+0x3F4A 0x83E7
+0x3F4B 0x83E4
+0x3F4C 0x83FC
+0x3F4D 0x83F6
+0x3F4E 0x8410
+0x3F4F 0x83C6
+0x3F50 0x83C8
+0x3F51 0x83EB
+0x3F52 0x83E3
+0x3F53 0x83BF
+0x3F54 0x8401
+0x3F55 0x83DD
+0x3F56 0x83E5
+0x3F57 0x83D8
+0x3F58 0x83FF
+0x3F59 0x83E1
+0x3F5A 0x83CB
+0x3F5B 0x83CE
+0x3F5C 0x83D6
+0x3F5D 0x83F5
+0x3F5E 0x83C9
+0x3F5F 0x8409
+0x3F60 0x840F
+0x3F61 0x83DE
+0x3F62 0x8411
+0x3F63 0x8406
+0x3F64 0x83C2
+0x3F65 0x83F3
+0x3F66 0x83D5
+0x3F67 0x83FA
+0x3F68 0x83C7
+0x3F69 0x83D1
+0x3F6A 0x83EA
+0x3F6B 0x8413
+0x3F6C 0x83C3
+0x3F6D 0x83EC
+0x3F6E 0x83EE
+0x3F6F 0x83C4
+0x3F70 0x83FB
+0x3F71 0x83D7
+0x3F72 0x83E2
+0x3F73 0x841B
+0x3F74 0x83DB
+0x3F75 0x83FE
+0x3F76 0x86D8
+0x3F77 0x86E2
+0x3F78 0x86E6
+0x3F79 0x86D3
+0x3F7A 0x86E3
+0x3F7B 0x86DA
+0x3F7C 0x86EA
+0x3F7D 0x86DD
+0x3F7E 0x86EB
+0x4021 0x86DC
+0x4022 0x86EC
+0x4023 0x86E9
+0x4024 0x86D7
+0x4025 0x86E8
+0x4026 0x86D1
+0x4027 0x8848
+0x4028 0x8856
+0x4029 0x8855
+0x402A 0x88BA
+0x402B 0x88D7
+0x402C 0x88B9
+0x402D 0x88B8
+0x402E 0x88C0
+0x402F 0x88BE
+0x4030 0x88B6
+0x4031 0x88BC
+0x4032 0x88B7
+0x4033 0x88BD
+0x4034 0x88B2
+0x4035 0x8901
+0x4036 0x88C9
+0x4037 0x8995
+0x4038 0x8998
+0x4039 0x8997
+0x403A 0x89DD
+0x403B 0x89DA
+0x403C 0x89DB
+0x403D 0x8A4E
+0x403E 0x8A4D
+0x403F 0x8A39
+0x4040 0x8A59
+0x4041 0x8A40
+0x4042 0x8A57
+0x4043 0x8A58
+0x4044 0x8A44
+0x4045 0x8A45
+0x4046 0x8A52
+0x4047 0x8A48
+0x4048 0x8A51
+0x4049 0x8A4A
+0x404A 0x8A4C
+0x404B 0x8A4F
+0x404C 0x8C5F
+0x404D 0x8C81
+0x404E 0x8C80
+0x404F 0x8CBA
+0x4050 0x8CBE
+0x4051 0x8CB0
+0x4052 0x8CB9
+0x4053 0x8CB5
+0x4054 0x8D84
+0x4055 0x8D80
+0x4056 0x8D89
+0x4057 0x8DD8
+0x4058 0x8DD3
+0x4059 0x8DCD
+0x405A 0x8DC7
+0x405B 0x8DD6
+0x405C 0x8DDC
+0x405D 0x8DCF
+0x405E 0x8DD5
+0x405F 0x8DD9
+0x4060 0x8DC8
+0x4061 0x8DD7
+0x4062 0x8DC5
+0x4063 0x8EEF
+0x4064 0x8EF7
+0x4065 0x8EFA
+0x4066 0x8EF9
+0x4067 0x8EE6
+0x4068 0x8EEE
+0x4069 0x8EE5
+0x406A 0x8EF5
+0x406B 0x8EE7
+0x406C 0x8EE8
+0x406D 0x8EF6
+0x406E 0x8EEB
+0x406F 0x8EF1
+0x4070 0x8EEC
+0x4071 0x8EF4
+0x4072 0x8EE9
+0x4073 0x902D
+0x4074 0x9034
+0x4075 0x902F
+0x4076 0x9106
+0x4077 0x912C
+0x4078 0x9104
+0x4079 0x90FF
+0x407A 0x90FC
+0x407B 0x9108
+0x407C 0x90F9
+0x407D 0x90FB
+0x407E 0x9101
+0x4121 0x9100
+0x4122 0x9107
+0x4123 0x9105
+0x4124 0x9103
+0x4125 0x9161
+0x4126 0x9164
+0x4127 0x915F
+0x4128 0x9162
+0x4129 0x9160
+0x412A 0x9201
+0x412B 0x920A
+0x412C 0x9225
+0x412D 0x9203
+0x412E 0x921A
+0x412F 0x9226
+0x4130 0x920F
+0x4131 0x920C
+0x4132 0x9200
+0x4133 0x9212
+0x4134 0x91FF
+0x4135 0x91FD
+0x4136 0x9206
+0x4137 0x9204
+0x4138 0x9227
+0x4139 0x9202
+0x413A 0x921C
+0x413B 0x9224
+0x413C 0x9219
+0x413D 0x9217
+0x413E 0x9205
+0x413F 0x9216
+0x4140 0x957B
+0x4141 0x958D
+0x4142 0x958C
+0x4143 0x9590
+0x4144 0x9687
+0x4145 0x967E
+0x4146 0x9688
+0x4147 0x9689
+0x4148 0x9683
+0x4149 0x9680
+0x414A 0x96C2
+0x414B 0x96C8
+0x414C 0x96C3
+0x414D 0x96F1
+0x414E 0x96F0
+0x414F 0x976C
+0x4150 0x9770
+0x4151 0x976E
+0x4152 0x9807
+0x4153 0x98A9
+0x4154 0x98EB
+0x4155 0x9CE6
+0x4156 0x9EF9
+0x4157 0x4E83
+0x4158 0x4E84
+0x4159 0x4EB6
+0x415A 0x50BD
+0x415B 0x50BF
+0x415C 0x50C6
+0x415D 0x50AE
+0x415E 0x50C4
+0x415F 0x50CA
+0x4160 0x50B4
+0x4161 0x50C8
+0x4162 0x50C2
+0x4163 0x50B0
+0x4164 0x50C1
+0x4165 0x50BA
+0x4166 0x50B1
+0x4167 0x50CB
+0x4168 0x50C9
+0x4169 0x50B6
+0x416A 0x50B8
+0x416B 0x51D7
+0x416C 0x527A
+0x416D 0x5278
+0x416E 0x527B
+0x416F 0x527C
+0x4170 0x55C3
+0x4171 0x55DB
+0x4172 0x55CC
+0x4173 0x55D0
+0x4174 0x55CB
+0x4175 0x55CA
+0x4176 0x55DD
+0x4177 0x55C0
+0x4178 0x55D4
+0x4179 0x55C4
+0x417A 0x55E9
+0x417B 0x55BF
+0x417C 0x55D2
+0x417D 0x558D
+0x417E 0x55CF
+0x4221 0x55D5
+0x4222 0x55E2
+0x4223 0x55D6
+0x4224 0x55C8
+0x4225 0x55F2
+0x4226 0x55CD
+0x4227 0x55D9
+0x4228 0x55C2
+0x4229 0x5714
+0x422A 0x5853
+0x422B 0x5868
+0x422C 0x5864
+0x422D 0x584F
+0x422E 0x584D
+0x422F 0x5849
+0x4230 0x586F
+0x4231 0x5855
+0x4232 0x584E
+0x4233 0x585D
+0x4234 0x5859
+0x4235 0x5865
+0x4236 0x585B
+0x4237 0x583D
+0x4238 0x5863
+0x4239 0x5871
+0x423A 0x58FC
+0x423B 0x5AC7
+0x423C 0x5AC4
+0x423D 0x5ACB
+0x423E 0x5ABA
+0x423F 0x5AB8
+0x4240 0x5AB1
+0x4241 0x5AB5
+0x4242 0x5AB0
+0x4243 0x5ABF
+0x4244 0x5AC8
+0x4245 0x5ABB
+0x4246 0x5AC6
+0x4247 0x5AB7
+0x4248 0x5AC0
+0x4249 0x5ACA
+0x424A 0x5AB4
+0x424B 0x5AB6
+0x424C 0x5ACD
+0x424D 0x5AB9
+0x424E 0x5A90
+0x424F 0x5BD6
+0x4250 0x5BD8
+0x4251 0x5BD9
+0x4252 0x5C1F
+0x4253 0x5C33
+0x4254 0x5D71
+0x4255 0x5D63
+0x4256 0x5D4A
+0x4257 0x5D65
+0x4258 0x5D72
+0x4259 0x5D6C
+0x425A 0x5D5E
+0x425B 0x5D68
+0x425C 0x5D67
+0x425D 0x5D62
+0x425E 0x5DF0
+0x425F 0x5E4F
+0x4260 0x5E4E
+0x4261 0x5E4A
+0x4262 0x5E4D
+0x4263 0x5E4B
+0x4264 0x5EC5
+0x4265 0x5ECC
+0x4266 0x5EC6
+0x4267 0x5ECB
+0x4268 0x5EC7
+0x4269 0x5F40
+0x426A 0x5FAF
+0x426B 0x5FAD
+0x426C 0x60F7
+0x426D 0x6149
+0x426E 0x614A
+0x426F 0x612B
+0x4270 0x6145
+0x4271 0x6136
+0x4272 0x6132
+0x4273 0x612E
+0x4274 0x6146
+0x4275 0x612F
+0x4276 0x614F
+0x4277 0x6129
+0x4278 0x6140
+0x4279 0x6220
+0x427A 0x9168
+0x427B 0x6223
+0x427C 0x6225
+0x427D 0x6224
+0x427E 0x63C5
+0x4321 0x63F1
+0x4322 0x63EB
+0x4323 0x6410
+0x4324 0x6412
+0x4325 0x6409
+0x4326 0x6420
+0x4327 0x6424
+0x4328 0x6433
+0x4329 0x6443
+0x432A 0x641F
+0x432B 0x6415
+0x432C 0x6418
+0x432D 0x6439
+0x432E 0x6437
+0x432F 0x6422
+0x4330 0x6423
+0x4331 0x640C
+0x4332 0x6426
+0x4333 0x6430
+0x4334 0x6428
+0x4335 0x6441
+0x4336 0x6435
+0x4337 0x642F
+0x4338 0x640A
+0x4339 0x641A
+0x433A 0x6440
+0x433B 0x6425
+0x433C 0x6427
+0x433D 0x640B
+0x433E 0x63E7
+0x433F 0x641B
+0x4340 0x642E
+0x4341 0x6421
+0x4342 0x640E
+0x4343 0x656F
+0x4344 0x6592
+0x4345 0x65D3
+0x4346 0x6686
+0x4347 0x668C
+0x4348 0x6695
+0x4349 0x6690
+0x434A 0x668B
+0x434B 0x668A
+0x434C 0x6699
+0x434D 0x6694
+0x434E 0x6678
+0x434F 0x6720
+0x4350 0x6966
+0x4351 0x695F
+0x4352 0x6938
+0x4353 0x694E
+0x4354 0x6962
+0x4355 0x6971
+0x4356 0x693F
+0x4357 0x6945
+0x4358 0x696A
+0x4359 0x6939
+0x435A 0x6942
+0x435B 0x6957
+0x435C 0x6959
+0x435D 0x697A
+0x435E 0x6948
+0x435F 0x6949
+0x4360 0x6935
+0x4361 0x696C
+0x4362 0x6933
+0x4363 0x693D
+0x4364 0x6965
+0x4365 0x68F0
+0x4366 0x6978
+0x4367 0x6934
+0x4368 0x6969
+0x4369 0x6940
+0x436A 0x696F
+0x436B 0x6944
+0x436C 0x6976
+0x436D 0x6958
+0x436E 0x6941
+0x436F 0x6974
+0x4370 0x694C
+0x4371 0x693B
+0x4372 0x694B
+0x4373 0x6937
+0x4374 0x695C
+0x4375 0x694F
+0x4376 0x6951
+0x4377 0x6932
+0x4378 0x6952
+0x4379 0x692F
+0x437A 0x697B
+0x437B 0x693C
+0x437C 0x6B46
+0x437D 0x6B45
+0x437E 0x6B43
+0x4421 0x6B42
+0x4422 0x6B48
+0x4423 0x6B41
+0x4424 0x6B9B
+0x4425 0xFA0D
+0x4426 0x6BFB
+0x4427 0x6BFC
+0x4428 0x6BF9
+0x4429 0x6BF7
+0x442A 0x6BF8
+0x442B 0x6E9B
+0x442C 0x6ED6
+0x442D 0x6EC8
+0x442E 0x6E8F
+0x442F 0x6EC0
+0x4430 0x6E9F
+0x4431 0x6E93
+0x4432 0x6E94
+0x4433 0x6EA0
+0x4434 0x6EB1
+0x4435 0x6EB9
+0x4436 0x6EC6
+0x4437 0x6ED2
+0x4438 0x6EBD
+0x4439 0x6EC1
+0x443A 0x6E9E
+0x443B 0x6EC9
+0x443C 0x6EB7
+0x443D 0x6EB0
+0x443E 0x6ECD
+0x443F 0x6EA6
+0x4440 0x6ECF
+0x4441 0x6EB2
+0x4442 0x6EBE
+0x4443 0x6EC3
+0x4444 0x6EDC
+0x4445 0x6ED8
+0x4446 0x6E99
+0x4447 0x6E92
+0x4448 0x6E8E
+0x4449 0x6E8D
+0x444A 0x6EA4
+0x444B 0x6EA1
+0x444C 0x6EBF
+0x444D 0x6EB3
+0x444E 0x6ED0
+0x444F 0x6ECA
+0x4450 0x6E97
+0x4451 0x6EAE
+0x4452 0x6EA3
+0x4453 0x7147
+0x4454 0x7154
+0x4455 0x7152
+0x4456 0x7163
+0x4457 0x7160
+0x4458 0x7141
+0x4459 0x715D
+0x445A 0x7162
+0x445B 0x7172
+0x445C 0x7178
+0x445D 0x716A
+0x445E 0x7161
+0x445F 0x7142
+0x4460 0x7158
+0x4461 0x7143
+0x4462 0x714B
+0x4463 0x7170
+0x4464 0x715F
+0x4465 0x7150
+0x4466 0x7153
+0x4467 0x7144
+0x4468 0x714D
+0x4469 0x715A
+0x446A 0x724F
+0x446B 0x728D
+0x446C 0x728C
+0x446D 0x7291
+0x446E 0x7290
+0x446F 0x728E
+0x4470 0x733C
+0x4471 0x7342
+0x4472 0x733B
+0x4473 0x733A
+0x4474 0x7340
+0x4475 0x734A
+0x4476 0x7349
+0x4477 0x7444
+0x4478 0x744A
+0x4479 0x744B
+0x447A 0x7452
+0x447B 0x7451
+0x447C 0x7457
+0x447D 0x7440
+0x447E 0x744F
+0x4521 0x7450
+0x4522 0x744E
+0x4523 0x7442
+0x4524 0x7446
+0x4525 0x744D
+0x4526 0x7454
+0x4527 0x74E1
+0x4528 0x74FF
+0x4529 0x74FE
+0x452A 0x74FD
+0x452B 0x751D
+0x452C 0x7579
+0x452D 0x7577
+0x452E 0x6983
+0x452F 0x75EF
+0x4530 0x760F
+0x4531 0x7603
+0x4532 0x75F7
+0x4533 0x75FE
+0x4534 0x75FC
+0x4535 0x75F9
+0x4536 0x75F8
+0x4537 0x7610
+0x4538 0x75FB
+0x4539 0x75F6
+0x453A 0x75ED
+0x453B 0x75F5
+0x453C 0x75FD
+0x453D 0x7699
+0x453E 0x76B5
+0x453F 0x76DD
+0x4540 0x7755
+0x4541 0x775F
+0x4542 0x7760
+0x4543 0x7752
+0x4544 0x7756
+0x4545 0x775A
+0x4546 0x7769
+0x4547 0x7767
+0x4548 0x7754
+0x4549 0x7759
+0x454A 0x776D
+0x454B 0x77E0
+0x454C 0x7887
+0x454D 0x789A
+0x454E 0x7894
+0x454F 0x788F
+0x4550 0x7884
+0x4551 0x7895
+0x4552 0x7885
+0x4553 0x7886
+0x4554 0x78A1
+0x4555 0x7883
+0x4556 0x7879
+0x4557 0x7899
+0x4558 0x7880
+0x4559 0x7896
+0x455A 0x787B
+0x455B 0x797C
+0x455C 0x7982
+0x455D 0x797D
+0x455E 0x7979
+0x455F 0x7A11
+0x4560 0x7A18
+0x4561 0x7A19
+0x4562 0x7A12
+0x4563 0x7A17
+0x4564 0x7A15
+0x4565 0x7A22
+0x4566 0x7A13
+0x4567 0x7A1B
+0x4568 0x7A10
+0x4569 0x7AA3
+0x456A 0x7AA2
+0x456B 0x7A9E
+0x456C 0x7AEB
+0x456D 0x7B66
+0x456E 0x7B64
+0x456F 0x7B6D
+0x4570 0x7B74
+0x4571 0x7B69
+0x4572 0x7B72
+0x4573 0x7B65
+0x4574 0x7B73
+0x4575 0x7B71
+0x4576 0x7B70
+0x4577 0x7B61
+0x4578 0x7B78
+0x4579 0x7B76
+0x457A 0x7B63
+0x457B 0x7CB2
+0x457C 0x7CB4
+0x457D 0x7CAF
+0x457E 0x7D88
+0x4621 0x7D86
+0x4622 0x7D80
+0x4623 0x7D8D
+0x4624 0x7D7F
+0x4625 0x7D85
+0x4626 0x7D7A
+0x4627 0x7D8E
+0x4628 0x7D7B
+0x4629 0x7D83
+0x462A 0x7D7C
+0x462B 0x7D8C
+0x462C 0x7D94
+0x462D 0x7D84
+0x462E 0x7D7D
+0x462F 0x7D92
+0x4630 0x7F6D
+0x4631 0x7F6B
+0x4632 0x7F67
+0x4633 0x7F68
+0x4634 0x7F6C
+0x4635 0x7FA6
+0x4636 0x7FA5
+0x4637 0x7FA7
+0x4638 0x7FDB
+0x4639 0x7FDC
+0x463A 0x8021
+0x463B 0x8164
+0x463C 0x8160
+0x463D 0x8177
+0x463E 0x815C
+0x463F 0x8169
+0x4640 0x815B
+0x4641 0x8162
+0x4642 0x8172
+0x4643 0x6721
+0x4644 0x815E
+0x4645 0x8176
+0x4646 0x8167
+0x4647 0x816F
+0x4648 0x8144
+0x4649 0x8161
+0x464A 0x821D
+0x464B 0x8249
+0x464C 0x8244
+0x464D 0x8240
+0x464E 0x8242
+0x464F 0x8245
+0x4650 0x84F1
+0x4651 0x843F
+0x4652 0x8456
+0x4653 0x8476
+0x4654 0x8479
+0x4655 0x848F
+0x4656 0x848D
+0x4657 0x8465
+0x4658 0x8451
+0x4659 0x8440
+0x465A 0x8486
+0x465B 0x8467
+0x465C 0x8430
+0x465D 0x844D
+0x465E 0x847D
+0x465F 0x845A
+0x4660 0x8459
+0x4661 0x8474
+0x4662 0x8473
+0x4663 0x845D
+0x4664 0x8507
+0x4665 0x845E
+0x4666 0x8437
+0x4667 0x843A
+0x4668 0x8434
+0x4669 0x847A
+0x466A 0x8443
+0x466B 0x8478
+0x466C 0x8432
+0x466D 0x8445
+0x466E 0x8429
+0x466F 0x83D9
+0x4670 0x844B
+0x4671 0x842F
+0x4672 0x8442
+0x4673 0x842D
+0x4674 0x845F
+0x4675 0x8470
+0x4676 0x8439
+0x4677 0x844E
+0x4678 0x844C
+0x4679 0x8452
+0x467A 0x846F
+0x467B 0x84C5
+0x467C 0x848E
+0x467D 0x843B
+0x467E 0x8447
+0x4721 0x8436
+0x4722 0x8433
+0x4723 0x8468
+0x4724 0x847E
+0x4725 0x8444
+0x4726 0x842B
+0x4727 0x8460
+0x4728 0x8454
+0x4729 0x846E
+0x472A 0x8450
+0x472B 0x870B
+0x472C 0x8704
+0x472D 0x86F7
+0x472E 0x870C
+0x472F 0x86FA
+0x4730 0x86D6
+0x4731 0x86F5
+0x4732 0x874D
+0x4733 0x86F8
+0x4734 0x870E
+0x4735 0x8709
+0x4736 0x8701
+0x4737 0x86F6
+0x4738 0x870D
+0x4739 0x8705
+0x473A 0x88D6
+0x473B 0x88CB
+0x473C 0x88CD
+0x473D 0x88CE
+0x473E 0x88DE
+0x473F 0x88DB
+0x4740 0x88DA
+0x4741 0x88CC
+0x4742 0x88D0
+0x4743 0x8985
+0x4744 0x899B
+0x4745 0x89DF
+0x4746 0x89E5
+0x4747 0x89E4
+0x4748 0x89E1
+0x4749 0x89E0
+0x474A 0x89E2
+0x474B 0x89DC
+0x474C 0x89E6
+0x474D 0x8A76
+0x474E 0x8A86
+0x474F 0x8A7F
+0x4750 0x8A61
+0x4751 0x8A3F
+0x4752 0x8A77
+0x4753 0x8A82
+0x4754 0x8A84
+0x4755 0x8A75
+0x4756 0x8A83
+0x4757 0x8A81
+0x4758 0x8A74
+0x4759 0x8A7A
+0x475A 0x8C3C
+0x475B 0x8C4B
+0x475C 0x8C4A
+0x475D 0x8C65
+0x475E 0x8C64
+0x475F 0x8C66
+0x4760 0x8C86
+0x4761 0x8C84
+0x4762 0x8C85
+0x4763 0x8CCC
+0x4764 0x8D68
+0x4765 0x8D69
+0x4766 0x8D91
+0x4767 0x8D8C
+0x4768 0x8D8E
+0x4769 0x8D8F
+0x476A 0x8D8D
+0x476B 0x8D93
+0x476C 0x8D94
+0x476D 0x8D90
+0x476E 0x8D92
+0x476F 0x8DF0
+0x4770 0x8DE0
+0x4771 0x8DEC
+0x4772 0x8DF1
+0x4773 0x8DEE
+0x4774 0x8DD0
+0x4775 0x8DE9
+0x4776 0x8DE3
+0x4777 0x8DE2
+0x4778 0x8DE7
+0x4779 0x8DF2
+0x477A 0x8DEB
+0x477B 0x8DF4
+0x477C 0x8F06
+0x477D 0x8EFF
+0x477E 0x8F01
+0x4821 0x8F00
+0x4822 0x8F05
+0x4823 0x8F07
+0x4824 0x8F08
+0x4825 0x8F02
+0x4826 0x8F0B
+0x4827 0x9052
+0x4828 0x903F
+0x4829 0x9044
+0x482A 0x9049
+0x482B 0x903D
+0x482C 0x9110
+0x482D 0x910D
+0x482E 0x910F
+0x482F 0x9111
+0x4830 0x9116
+0x4831 0x9114
+0x4832 0x910B
+0x4833 0x910E
+0x4834 0x916E
+0x4835 0x916F
+0x4836 0x9248
+0x4837 0x9252
+0x4838 0x9230
+0x4839 0x923A
+0x483A 0x9266
+0x483B 0x9233
+0x483C 0x9265
+0x483D 0x925E
+0x483E 0x9283
+0x483F 0x922E
+0x4840 0x924A
+0x4841 0x9246
+0x4842 0x926D
+0x4843 0x926C
+0x4844 0x924F
+0x4845 0x9260
+0x4846 0x9267
+0x4847 0x926F
+0x4848 0x9236
+0x4849 0x9261
+0x484A 0x9270
+0x484B 0x9231
+0x484C 0x9254
+0x484D 0x9263
+0x484E 0x9250
+0x484F 0x9272
+0x4850 0x924E
+0x4851 0x9253
+0x4852 0x924C
+0x4853 0x9256
+0x4854 0x9232
+0x4855 0x959F
+0x4856 0x959C
+0x4857 0x959E
+0x4858 0x959B
+0x4859 0x9692
+0x485A 0x9693
+0x485B 0x9691
+0x485C 0x9697
+0x485D 0x96CE
+0x485E 0x96FA
+0x485F 0x96FD
+0x4860 0x96F8
+0x4861 0x96F5
+0x4862 0x9773
+0x4863 0x9777
+0x4864 0x9778
+0x4865 0x9772
+0x4866 0x980F
+0x4867 0x980D
+0x4868 0x980E
+0x4869 0x98AC
+0x486A 0x98F6
+0x486B 0x98F9
+0x486C 0x99AF
+0x486D 0x99B2
+0x486E 0x99B0
+0x486F 0x99B5
+0x4870 0x9AAD
+0x4871 0x9AAB
+0x4872 0x9B5B
+0x4873 0x9CEA
+0x4874 0x9CED
+0x4875 0x9CE7
+0x4876 0x9E80
+0x4877 0x9EFD
+0x4878 0x50E6
+0x4879 0x50D4
+0x487A 0x50D7
+0x487B 0x50E8
+0x487C 0x50F3
+0x487D 0x50DB
+0x487E 0x50EA
+0x4921 0x50DD
+0x4922 0x50E4
+0x4923 0x50D3
+0x4924 0x50EC
+0x4925 0x50F0
+0x4926 0x50EF
+0x4927 0x50E3
+0x4928 0x50E0
+0x4929 0x51D8
+0x492A 0x5280
+0x492B 0x5281
+0x492C 0x52E9
+0x492D 0x52EB
+0x492E 0x5330
+0x492F 0x53AC
+0x4930 0x5627
+0x4931 0x5615
+0x4932 0x560C
+0x4933 0x5612
+0x4934 0x55FC
+0x4935 0x560F
+0x4936 0x561C
+0x4937 0x5601
+0x4938 0x5613
+0x4939 0x5602
+0x493A 0x55FA
+0x493B 0x561D
+0x493C 0x5604
+0x493D 0x55FF
+0x493E 0x55F9
+0x493F 0x5889
+0x4940 0x587C
+0x4941 0x5890
+0x4942 0x5898
+0x4943 0x5886
+0x4944 0x5881
+0x4945 0x587F
+0x4946 0x5874
+0x4947 0x588B
+0x4948 0x587A
+0x4949 0x5887
+0x494A 0x5891
+0x494B 0x588E
+0x494C 0x5876
+0x494D 0x5882
+0x494E 0x5888
+0x494F 0x587B
+0x4950 0x5894
+0x4951 0x588F
+0x4952 0x58FE
+0x4953 0x596B
+0x4954 0x5ADC
+0x4955 0x5AEE
+0x4956 0x5AE5
+0x4957 0x5AD5
+0x4958 0x5AEA
+0x4959 0x5ADA
+0x495A 0x5AED
+0x495B 0x5AEB
+0x495C 0x5AF3
+0x495D 0x5AE2
+0x495E 0x5AE0
+0x495F 0x5ADB
+0x4960 0x5AEC
+0x4961 0x5ADE
+0x4962 0x5ADD
+0x4963 0x5AD9
+0x4964 0x5AE8
+0x4965 0x5ADF
+0x4966 0x5B77
+0x4967 0x5BE0
+0x4968 0x5BE3
+0x4969 0x5C63
+0x496A 0x5D82
+0x496B 0x5D80
+0x496C 0x5D7D
+0x496D 0x5D86
+0x496E 0x5D7A
+0x496F 0x5D81
+0x4970 0x5D77
+0x4971 0x5D8A
+0x4972 0x5D89
+0x4973 0x5D88
+0x4974 0x5D7E
+0x4975 0x5D7C
+0x4976 0x5D8D
+0x4977 0x5D79
+0x4978 0x5D7F
+0x4979 0x5E58
+0x497A 0x5E59
+0x497B 0x5E53
+0x497C 0x5ED8
+0x497D 0x5ED1
+0x497E 0x5ED7
+0x4A21 0x5ECE
+0x4A22 0x5EDC
+0x4A23 0x5ED5
+0x4A24 0x5ED9
+0x4A25 0x5ED2
+0x4A26 0x5ED4
+0x4A27 0x5F44
+0x4A28 0x5F43
+0x4A29 0x5F6F
+0x4A2A 0x5FB6
+0x4A2B 0x612C
+0x4A2C 0x6128
+0x4A2D 0x6141
+0x4A2E 0x615E
+0x4A2F 0x6171
+0x4A30 0x6173
+0x4A31 0x6152
+0x4A32 0x6153
+0x4A33 0x6172
+0x4A34 0x616C
+0x4A35 0x6180
+0x4A36 0x6174
+0x4A37 0x6154
+0x4A38 0x617A
+0x4A39 0x615B
+0x4A3A 0x6165
+0x4A3B 0x613B
+0x4A3C 0x616A
+0x4A3D 0x6161
+0x4A3E 0x6156
+0x4A3F 0x6229
+0x4A40 0x6227
+0x4A41 0x622B
+0x4A42 0x642B
+0x4A43 0x644D
+0x4A44 0x645B
+0x4A45 0x645D
+0x4A46 0x6474
+0x4A47 0x6476
+0x4A48 0x6472
+0x4A49 0x6473
+0x4A4A 0x647D
+0x4A4B 0x6475
+0x4A4C 0x6466
+0x4A4D 0x64A6
+0x4A4E 0x644E
+0x4A4F 0x6482
+0x4A50 0x645E
+0x4A51 0x645C
+0x4A52 0x644B
+0x4A53 0x6453
+0x4A54 0x6460
+0x4A55 0x6450
+0x4A56 0x647F
+0x4A57 0x643F
+0x4A58 0x646C
+0x4A59 0x646B
+0x4A5A 0x6459
+0x4A5B 0x6465
+0x4A5C 0x6477
+0x4A5D 0x6573
+0x4A5E 0x65A0
+0x4A5F 0x66A1
+0x4A60 0x66A0
+0x4A61 0x669F
+0x4A62 0x6705
+0x4A63 0x6704
+0x4A64 0x6722
+0x4A65 0x69B1
+0x4A66 0x69B6
+0x4A67 0x69C9
+0x4A68 0x69A0
+0x4A69 0x69CE
+0x4A6A 0x6996
+0x4A6B 0x69B0
+0x4A6C 0x69AC
+0x4A6D 0x69BC
+0x4A6E 0x6991
+0x4A6F 0x6999
+0x4A70 0x698E
+0x4A71 0x69A7
+0x4A72 0x698D
+0x4A73 0x69A9
+0x4A74 0x69BE
+0x4A75 0x69AF
+0x4A76 0x69BF
+0x4A77 0x69C4
+0x4A78 0x69BD
+0x4A79 0x69A4
+0x4A7A 0x69D4
+0x4A7B 0x69B9
+0x4A7C 0x69CA
+0x4A7D 0x699A
+0x4A7E 0x69CF
+0x4B21 0x69B3
+0x4B22 0x6993
+0x4B23 0x69AA
+0x4B24 0x69A1
+0x4B25 0x699E
+0x4B26 0x69D9
+0x4B27 0x6997
+0x4B28 0x6990
+0x4B29 0x69C2
+0x4B2A 0x69B5
+0x4B2B 0x69A5
+0x4B2C 0x69C6
+0x4B2D 0x6B4A
+0x4B2E 0x6B4D
+0x4B2F 0x6B4B
+0x4B30 0x6B9E
+0x4B31 0x6B9F
+0x4B32 0x6BA0
+0x4B33 0x6BC3
+0x4B34 0x6BC4
+0x4B35 0x6BFE
+0x4B36 0x6ECE
+0x4B37 0x6EF5
+0x4B38 0x6EF1
+0x4B39 0x6F03
+0x4B3A 0x6F25
+0x4B3B 0x6EF8
+0x4B3C 0x6F37
+0x4B3D 0x6EFB
+0x4B3E 0x6F2E
+0x4B3F 0x6F09
+0x4B40 0x6F4E
+0x4B41 0x6F19
+0x4B42 0x6F1A
+0x4B43 0x6F27
+0x4B44 0x6F18
+0x4B45 0x6F3B
+0x4B46 0x6F12
+0x4B47 0x6EED
+0x4B48 0x6F0A
+0x4B49 0x6F36
+0x4B4A 0x6F73
+0x4B4B 0x6EF9
+0x4B4C 0x6EEE
+0x4B4D 0x6F2D
+0x4B4E 0x6F40
+0x4B4F 0x6F30
+0x4B50 0x6F3C
+0x4B51 0x6F35
+0x4B52 0x6EEB
+0x4B53 0x6F07
+0x4B54 0x6F0E
+0x4B55 0x6F43
+0x4B56 0x6F05
+0x4B57 0x6EFD
+0x4B58 0x6EF6
+0x4B59 0x6F39
+0x4B5A 0x6F1C
+0x4B5B 0x6EFC
+0x4B5C 0x6F3A
+0x4B5D 0x6F1F
+0x4B5E 0x6F0D
+0x4B5F 0x6F1E
+0x4B60 0x6F08
+0x4B61 0x6F21
+0x4B62 0x7187
+0x4B63 0x7190
+0x4B64 0x7189
+0x4B65 0x7180
+0x4B66 0x7185
+0x4B67 0x7182
+0x4B68 0x718F
+0x4B69 0x717B
+0x4B6A 0x7186
+0x4B6B 0x7181
+0x4B6C 0x7197
+0x4B6D 0x7244
+0x4B6E 0x7253
+0x4B6F 0x7297
+0x4B70 0x7295
+0x4B71 0x7293
+0x4B72 0x7343
+0x4B73 0x734D
+0x4B74 0x7351
+0x4B75 0x734C
+0x4B76 0x7462
+0x4B77 0x7473
+0x4B78 0x7471
+0x4B79 0x7475
+0x4B7A 0x7472
+0x4B7B 0x7467
+0x4B7C 0x746E
+0x4B7D 0x7500
+0x4B7E 0x7502
+0x4C21 0x7503
+0x4C22 0x757D
+0x4C23 0x7590
+0x4C24 0x7616
+0x4C25 0x7608
+0x4C26 0x760C
+0x4C27 0x7615
+0x4C28 0x7611
+0x4C29 0x760A
+0x4C2A 0x7614
+0x4C2B 0x76B8
+0x4C2C 0x7781
+0x4C2D 0x777C
+0x4C2E 0x7785
+0x4C2F 0x7782
+0x4C30 0x776E
+0x4C31 0x7780
+0x4C32 0x776F
+0x4C33 0x777E
+0x4C34 0x7783
+0x4C35 0x78B2
+0x4C36 0x78AA
+0x4C37 0x78B4
+0x4C38 0x78AD
+0x4C39 0x78A8
+0x4C3A 0x787E
+0x4C3B 0x78AB
+0x4C3C 0x789E
+0x4C3D 0x78A5
+0x4C3E 0x78A0
+0x4C3F 0x78AC
+0x4C40 0x78A2
+0x4C41 0x78A4
+0x4C42 0x7998
+0x4C43 0x798A
+0x4C44 0x798B
+0x4C45 0x7996
+0x4C46 0x7995
+0x4C47 0x7994
+0x4C48 0x7993
+0x4C49 0x7997
+0x4C4A 0x7988
+0x4C4B 0x7992
+0x4C4C 0x7990
+0x4C4D 0x7A2B
+0x4C4E 0x7A4A
+0x4C4F 0x7A30
+0x4C50 0x7A2F
+0x4C51 0x7A28
+0x4C52 0x7A26
+0x4C53 0x7AA8
+0x4C54 0x7AAB
+0x4C55 0x7AAC
+0x4C56 0x7AEE
+0x4C57 0x7B88
+0x4C58 0x7B9C
+0x4C59 0x7B8A
+0x4C5A 0x7B91
+0x4C5B 0x7B90
+0x4C5C 0x7B96
+0x4C5D 0x7B8D
+0x4C5E 0x7B8C
+0x4C5F 0x7B9B
+0x4C60 0x7B8E
+0x4C61 0x7B85
+0x4C62 0x7B98
+0x4C63 0x5284
+0x4C64 0x7B99
+0x4C65 0x7BA4
+0x4C66 0x7B82
+0x4C67 0x7CBB
+0x4C68 0x7CBF
+0x4C69 0x7CBC
+0x4C6A 0x7CBA
+0x4C6B 0x7DA7
+0x4C6C 0x7DB7
+0x4C6D 0x7DC2
+0x4C6E 0x7DA3
+0x4C6F 0x7DAA
+0x4C70 0x7DC1
+0x4C71 0x7DC0
+0x4C72 0x7DC5
+0x4C73 0x7D9D
+0x4C74 0x7DCE
+0x4C75 0x7DC4
+0x4C76 0x7DC6
+0x4C77 0x7DCB
+0x4C78 0x7DCC
+0x4C79 0x7DAF
+0x4C7A 0x7DB9
+0x4C7B 0x7D96
+0x4C7C 0x7DBC
+0x4C7D 0x7D9F
+0x4C7E 0x7DA6
+0x4D21 0x7DAE
+0x4D22 0x7DA9
+0x4D23 0x7DA1
+0x4D24 0x7DC9
+0x4D25 0x7F73
+0x4D26 0x7FE2
+0x4D27 0x7FE3
+0x4D28 0x7FE5
+0x4D29 0x7FDE
+0x4D2A 0x8024
+0x4D2B 0x805D
+0x4D2C 0x805C
+0x4D2D 0x8189
+0x4D2E 0x8186
+0x4D2F 0x8183
+0x4D30 0x8187
+0x4D31 0x818D
+0x4D32 0x818C
+0x4D33 0x818B
+0x4D34 0x8215
+0x4D35 0x8497
+0x4D36 0x84A4
+0x4D37 0x84A1
+0x4D38 0x849F
+0x4D39 0x84BA
+0x4D3A 0x84CE
+0x4D3B 0x84C2
+0x4D3C 0x84AC
+0x4D3D 0x84AE
+0x4D3E 0x84AB
+0x4D3F 0x84B9
+0x4D40 0x84B4
+0x4D41 0x84C1
+0x4D42 0x84CD
+0x4D43 0x84AA
+0x4D44 0x849A
+0x4D45 0x84B1
+0x4D46 0x84D0
+0x4D47 0x849D
+0x4D48 0x84A7
+0x4D49 0x84BB
+0x4D4A 0x84A2
+0x4D4B 0x8494
+0x4D4C 0x84C7
+0x4D4D 0x84CC
+0x4D4E 0x849B
+0x4D4F 0x84A9
+0x4D50 0x84AF
+0x4D51 0x84A8
+0x4D52 0x84D6
+0x4D53 0x8498
+0x4D54 0x84B6
+0x4D55 0x84CF
+0x4D56 0x84A0
+0x4D57 0x84D7
+0x4D58 0x84D4
+0x4D59 0x84D2
+0x4D5A 0x84DB
+0x4D5B 0x84B0
+0x4D5C 0x8491
+0x4D5D 0x8661
+0x4D5E 0x8733
+0x4D5F 0x8723
+0x4D60 0x8728
+0x4D61 0x876B
+0x4D62 0x8740
+0x4D63 0x872E
+0x4D64 0x871E
+0x4D65 0x8721
+0x4D66 0x8719
+0x4D67 0x871B
+0x4D68 0x8743
+0x4D69 0x872C
+0x4D6A 0x8741
+0x4D6B 0x873E
+0x4D6C 0x8746
+0x4D6D 0x8720
+0x4D6E 0x8732
+0x4D6F 0x872A
+0x4D70 0x872D
+0x4D71 0x873C
+0x4D72 0x8712
+0x4D73 0x873A
+0x4D74 0x8731
+0x4D75 0x8735
+0x4D76 0x8742
+0x4D77 0x8726
+0x4D78 0x8727
+0x4D79 0x8738
+0x4D7A 0x8724
+0x4D7B 0x871A
+0x4D7C 0x8730
+0x4D7D 0x8711
+0x4D7E 0x88F7
+0x4E21 0x88E7
+0x4E22 0x88F1
+0x4E23 0x88F2
+0x4E24 0x88FA
+0x4E25 0x88FE
+0x4E26 0x88EE
+0x4E27 0x88FC
+0x4E28 0x88F6
+0x4E29 0x88FB
+0x4E2A 0x88F0
+0x4E2B 0x88EC
+0x4E2C 0x88EB
+0x4E2D 0x899D
+0x4E2E 0x89A1
+0x4E2F 0x899F
+0x4E30 0x899E
+0x4E31 0x89E9
+0x4E32 0x89EB
+0x4E33 0x89E8
+0x4E34 0x8AAB
+0x4E35 0x8A99
+0x4E36 0x8A8B
+0x4E37 0x8A92
+0x4E38 0x8A8F
+0x4E39 0x8A96
+0x4E3A 0x8C3D
+0x4E3B 0x8C68
+0x4E3C 0x8C69
+0x4E3D 0x8CD5
+0x4E3E 0x8CCF
+0x4E3F 0x8CD7
+0x4E40 0x8D96
+0x4E41 0x8E09
+0x4E42 0x8E02
+0x4E43 0x8DFF
+0x4E44 0x8E0D
+0x4E45 0x8DFD
+0x4E46 0x8E0A
+0x4E47 0x8E03
+0x4E48 0x8E07
+0x4E49 0x8E06
+0x4E4A 0x8E05
+0x4E4B 0x8DFE
+0x4E4C 0x8E00
+0x4E4D 0x8E04
+0x4E4E 0x8F10
+0x4E4F 0x8F11
+0x4E50 0x8F0E
+0x4E51 0x8F0D
+0x4E52 0x9123
+0x4E53 0x911C
+0x4E54 0x9120
+0x4E55 0x9122
+0x4E56 0x911F
+0x4E57 0x911D
+0x4E58 0x911A
+0x4E59 0x9124
+0x4E5A 0x9121
+0x4E5B 0x911B
+0x4E5C 0x917A
+0x4E5D 0x9172
+0x4E5E 0x9179
+0x4E5F 0x9173
+0x4E60 0x92A5
+0x4E61 0x92A4
+0x4E62 0x9276
+0x4E63 0x929B
+0x4E64 0x927A
+0x4E65 0x92A0
+0x4E66 0x9294
+0x4E67 0x92AA
+0x4E68 0x928D
+0x4E69 0x92A6
+0x4E6A 0x929A
+0x4E6B 0x92AB
+0x4E6C 0x9279
+0x4E6D 0x9297
+0x4E6E 0x927F
+0x4E6F 0x92A3
+0x4E70 0x92EE
+0x4E71 0x928E
+0x4E72 0x9282
+0x4E73 0x9295
+0x4E74 0x92A2
+0x4E75 0x927D
+0x4E76 0x9288
+0x4E77 0x92A1
+0x4E78 0x928A
+0x4E79 0x9286
+0x4E7A 0x928C
+0x4E7B 0x9299
+0x4E7C 0x92A7
+0x4E7D 0x927E
+0x4E7E 0x9287
+0x4F21 0x92A9
+0x4F22 0x929D
+0x4F23 0x928B
+0x4F24 0x922D
+0x4F25 0x969E
+0x4F26 0x96A1
+0x4F27 0x96FF
+0x4F28 0x9758
+0x4F29 0x977D
+0x4F2A 0x977A
+0x4F2B 0x977E
+0x4F2C 0x9783
+0x4F2D 0x9780
+0x4F2E 0x9782
+0x4F2F 0x977B
+0x4F30 0x9784
+0x4F31 0x9781
+0x4F32 0x977F
+0x4F33 0x97CE
+0x4F34 0x97CD
+0x4F35 0x9816
+0x4F36 0x98AD
+0x4F37 0x98AE
+0x4F38 0x9902
+0x4F39 0x9900
+0x4F3A 0x9907
+0x4F3B 0x999D
+0x4F3C 0x999C
+0x4F3D 0x99C3
+0x4F3E 0x99B9
+0x4F3F 0x99BB
+0x4F40 0x99BA
+0x4F41 0x99C2
+0x4F42 0x99BD
+0x4F43 0x99C7
+0x4F44 0x9AB1
+0x4F45 0x9AE3
+0x4F46 0x9AE7
+0x4F47 0x9B3E
+0x4F48 0x9B3F
+0x4F49 0x9B60
+0x4F4A 0x9B61
+0x4F4B 0x9B5F
+0x4F4C 0x9CF1
+0x4F4D 0x9CF2
+0x4F4E 0x9CF5
+0x4F4F 0x9EA7
+0x4F50 0x50FF
+0x4F51 0x5103
+0x4F52 0x5130
+0x4F53 0x50F8
+0x4F54 0x5106
+0x4F55 0x5107
+0x4F56 0x50F6
+0x4F57 0x50FE
+0x4F58 0x510B
+0x4F59 0x510C
+0x4F5A 0x50FD
+0x4F5B 0x510A
+0x4F5C 0x528B
+0x4F5D 0x528C
+0x4F5E 0x52F1
+0x4F5F 0x52EF
+0x4F60 0x5648
+0x4F61 0x5642
+0x4F62 0x564C
+0x4F63 0x5635
+0x4F64 0x5641
+0x4F65 0x564A
+0x4F66 0x5649
+0x4F67 0x5646
+0x4F68 0x5658
+0x4F69 0x565A
+0x4F6A 0x5640
+0x4F6B 0x5633
+0x4F6C 0x563D
+0x4F6D 0x562C
+0x4F6E 0x563E
+0x4F6F 0x5638
+0x4F70 0x562A
+0x4F71 0x563A
+0x4F72 0x571A
+0x4F73 0x58AB
+0x4F74 0x589D
+0x4F75 0x58B1
+0x4F76 0x58A0
+0x4F77 0x58A3
+0x4F78 0x58AF
+0x4F79 0x58AC
+0x4F7A 0x58A5
+0x4F7B 0x58A1
+0x4F7C 0x58FF
+0x4F7D 0x5AFF
+0x4F7E 0x5AF4
+0x5021 0x5AFD
+0x5022 0x5AF7
+0x5023 0x5AF6
+0x5024 0x5B03
+0x5025 0x5AF8
+0x5026 0x5B02
+0x5027 0x5AF9
+0x5028 0x5B01
+0x5029 0x5B07
+0x502A 0x5B05
+0x502B 0x5B0F
+0x502C 0x5C67
+0x502D 0x5D99
+0x502E 0x5D97
+0x502F 0x5D9F
+0x5030 0x5D92
+0x5031 0x5DA2
+0x5032 0x5D93
+0x5033 0x5D95
+0x5034 0x5DA0
+0x5035 0x5D9C
+0x5036 0x5DA1
+0x5037 0x5D9A
+0x5038 0x5D9E
+0x5039 0x5E69
+0x503A 0x5E5D
+0x503B 0x5E60
+0x503C 0x5E5C
+0x503D 0x7DF3
+0x503E 0x5EDB
+0x503F 0x5EDE
+0x5040 0x5EE1
+0x5041 0x5F49
+0x5042 0x5FB2
+0x5043 0x618B
+0x5044 0x6183
+0x5045 0x6179
+0x5046 0x61B1
+0x5047 0x61B0
+0x5048 0x61A2
+0x5049 0x6189
+0x504A 0x619B
+0x504B 0x6193
+0x504C 0x61AF
+0x504D 0x61AD
+0x504E 0x619F
+0x504F 0x6192
+0x5050 0x61AA
+0x5051 0x61A1
+0x5052 0x618D
+0x5053 0x6166
+0x5054 0x61B3
+0x5055 0x622D
+0x5056 0x646E
+0x5057 0x6470
+0x5058 0x6496
+0x5059 0x64A0
+0x505A 0x6485
+0x505B 0x6497
+0x505C 0x649C
+0x505D 0x648F
+0x505E 0x648B
+0x505F 0x648A
+0x5060 0x648C
+0x5061 0x64A3
+0x5062 0x649F
+0x5063 0x6468
+0x5064 0x64B1
+0x5065 0x6498
+0x5066 0x6576
+0x5067 0x657A
+0x5068 0x6579
+0x5069 0x657B
+0x506A 0x65B2
+0x506B 0x65B3
+0x506C 0x66B5
+0x506D 0x66B0
+0x506E 0x66A9
+0x506F 0x66B2
+0x5070 0x66B7
+0x5071 0x66AA
+0x5072 0x66AF
+0x5073 0x6A00
+0x5074 0x6A06
+0x5075 0x6A17
+0x5076 0x69E5
+0x5077 0x69F8
+0x5078 0x6A15
+0x5079 0x69F1
+0x507A 0x69E4
+0x507B 0x6A20
+0x507C 0x69FF
+0x507D 0x69EC
+0x507E 0x69E2
+0x5121 0x6A1B
+0x5122 0x6A1D
+0x5123 0x69FE
+0x5124 0x6A27
+0x5125 0x69F2
+0x5126 0x69EE
+0x5127 0x6A14
+0x5128 0x69F7
+0x5129 0x69E7
+0x512A 0x6A40
+0x512B 0x6A08
+0x512C 0x69E6
+0x512D 0x69FB
+0x512E 0x6A0D
+0x512F 0x69FC
+0x5130 0x69EB
+0x5131 0x6A09
+0x5132 0x6A04
+0x5133 0x6A18
+0x5134 0x6A25
+0x5135 0x6A0F
+0x5136 0x69F6
+0x5137 0x6A26
+0x5138 0x6A07
+0x5139 0x69F4
+0x513A 0x6A16
+0x513B 0x6B51
+0x513C 0x6BA5
+0x513D 0x6BA3
+0x513E 0x6BA2
+0x513F 0x6BA6
+0x5140 0x6C01
+0x5141 0x6C00
+0x5142 0x6BFF
+0x5143 0x6C02
+0x5144 0x6F41
+0x5145 0x6F26
+0x5146 0x6F7E
+0x5147 0x6F87
+0x5148 0x6FC6
+0x5149 0x6F92
+0x514A 0x6F8D
+0x514B 0x6F89
+0x514C 0x6F8C
+0x514D 0x6F62
+0x514E 0x6F4F
+0x514F 0x6F85
+0x5150 0x6F5A
+0x5151 0x6F96
+0x5152 0x6F76
+0x5153 0x6F6C
+0x5154 0x6F82
+0x5155 0x6F55
+0x5156 0x6F72
+0x5157 0x6F52
+0x5158 0x6F50
+0x5159 0x6F57
+0x515A 0x6F94
+0x515B 0x6F93
+0x515C 0x6F5D
+0x515D 0x6F00
+0x515E 0x6F61
+0x515F 0x6F6B
+0x5160 0x6F7D
+0x5161 0x6F67
+0x5162 0x6F90
+0x5163 0x6F53
+0x5164 0x6F8B
+0x5165 0x6F69
+0x5166 0x6F7F
+0x5167 0x6F95
+0x5168 0x6F63
+0x5169 0x6F77
+0x516A 0x6F6A
+0x516B 0x6F7B
+0x516C 0x71B2
+0x516D 0x71AF
+0x516E 0x719B
+0x516F 0x71B0
+0x5170 0x71A0
+0x5171 0x719A
+0x5172 0x71A9
+0x5173 0x71B5
+0x5174 0x719D
+0x5175 0x71A5
+0x5176 0x719E
+0x5177 0x71A4
+0x5178 0x71A1
+0x5179 0x71AA
+0x517A 0x719C
+0x517B 0x71A7
+0x517C 0x71B3
+0x517D 0x7298
+0x517E 0x729A
+0x5221 0x7358
+0x5222 0x7352
+0x5223 0x735E
+0x5224 0x735F
+0x5225 0x7360
+0x5226 0x735D
+0x5227 0x735B
+0x5228 0x7361
+0x5229 0x735A
+0x522A 0x7359
+0x522B 0x7362
+0x522C 0x7487
+0x522D 0x7489
+0x522E 0x748A
+0x522F 0x7486
+0x5230 0x7481
+0x5231 0x747D
+0x5232 0x7485
+0x5233 0x7488
+0x5234 0x747C
+0x5235 0x7479
+0x5236 0x7508
+0x5237 0x7507
+0x5238 0x757E
+0x5239 0x7625
+0x523A 0x761E
+0x523B 0x7619
+0x523C 0x761D
+0x523D 0x761C
+0x523E 0x7623
+0x523F 0x761A
+0x5240 0x7628
+0x5241 0x761B
+0x5242 0x769C
+0x5243 0x769D
+0x5244 0x769E
+0x5245 0x769B
+0x5246 0x778D
+0x5247 0x778F
+0x5248 0x7789
+0x5249 0x7788
+0x524A 0x78CD
+0x524B 0x78BB
+0x524C 0x78CF
+0x524D 0x78CC
+0x524E 0x78D1
+0x524F 0x78CE
+0x5250 0x78D4
+0x5251 0x78C8
+0x5252 0x78C3
+0x5253 0x78C4
+0x5254 0x78C9
+0x5255 0x799A
+0x5256 0x79A1
+0x5257 0x79A0
+0x5258 0x799C
+0x5259 0x79A2
+0x525A 0x799B
+0x525B 0x6B76
+0x525C 0x7A39
+0x525D 0x7AB2
+0x525E 0x7AB4
+0x525F 0x7AB3
+0x5260 0x7BB7
+0x5261 0x7BCB
+0x5262 0x7BBE
+0x5263 0x7BAC
+0x5264 0x7BCE
+0x5265 0x7BAF
+0x5266 0x7BB9
+0x5267 0x7BCA
+0x5268 0x7BB5
+0x5269 0x7CC5
+0x526A 0x7CC8
+0x526B 0x7CCC
+0x526C 0x7CCB
+0x526D 0x7DF7
+0x526E 0x7DDB
+0x526F 0x7DEA
+0x5270 0x7DE7
+0x5271 0x7DD7
+0x5272 0x7DE1
+0x5273 0x7E03
+0x5274 0x7DFA
+0x5275 0x7DE6
+0x5276 0x7DF6
+0x5277 0x7DF1
+0x5278 0x7DF0
+0x5279 0x7DEE
+0x527A 0x7DDF
+0x527B 0x7F76
+0x527C 0x7FAC
+0x527D 0x7FB0
+0x527E 0x7FAD
+0x5321 0x7FED
+0x5322 0x7FEB
+0x5323 0x7FEA
+0x5324 0x7FEC
+0x5325 0x7FE6
+0x5326 0x7FE8
+0x5327 0x8064
+0x5328 0x8067
+0x5329 0x81A3
+0x532A 0x819F
+0x532B 0x819E
+0x532C 0x8195
+0x532D 0x81A2
+0x532E 0x8199
+0x532F 0x8197
+0x5330 0x8216
+0x5331 0x824F
+0x5332 0x8253
+0x5333 0x8252
+0x5334 0x8250
+0x5335 0x824E
+0x5336 0x8251
+0x5337 0x8524
+0x5338 0x853B
+0x5339 0x850F
+0x533A 0x8500
+0x533B 0x8529
+0x533C 0x850E
+0x533D 0x8509
+0x533E 0x850D
+0x533F 0x851F
+0x5340 0x850A
+0x5341 0x8527
+0x5342 0x851C
+0x5343 0x84FB
+0x5344 0x852B
+0x5345 0x84FA
+0x5346 0x8508
+0x5347 0x850C
+0x5348 0x84F4
+0x5349 0x852A
+0x534A 0x84F2
+0x534B 0x8515
+0x534C 0x84F7
+0x534D 0x84EB
+0x534E 0x84F3
+0x534F 0x84FC
+0x5350 0x8512
+0x5351 0x84EA
+0x5352 0x84E9
+0x5353 0x8516
+0x5354 0x84FE
+0x5355 0x8528
+0x5356 0x851D
+0x5357 0x852E
+0x5358 0x8502
+0x5359 0x84FD
+0x535A 0x851E
+0x535B 0x84F6
+0x535C 0x8531
+0x535D 0x8526
+0x535E 0x84E7
+0x535F 0x84E8
+0x5360 0x84F0
+0x5361 0x84EF
+0x5362 0x84F9
+0x5363 0x8518
+0x5364 0x8520
+0x5365 0x8530
+0x5366 0x850B
+0x5367 0x8519
+0x5368 0x852F
+0x5369 0x8662
+0x536A 0x8756
+0x536B 0x8763
+0x536C 0x8764
+0x536D 0x8777
+0x536E 0x87E1
+0x536F 0x8773
+0x5370 0x8758
+0x5371 0x8754
+0x5372 0x875B
+0x5373 0x8752
+0x5374 0x8761
+0x5375 0x875A
+0x5376 0x8751
+0x5377 0x875E
+0x5378 0x876D
+0x5379 0x876A
+0x537A 0x8750
+0x537B 0x874E
+0x537C 0x875F
+0x537D 0x875D
+0x537E 0x876F
+0x5421 0x876C
+0x5422 0x877A
+0x5423 0x876E
+0x5424 0x875C
+0x5425 0x8765
+0x5426 0x874F
+0x5427 0x877B
+0x5428 0x8775
+0x5429 0x8762
+0x542A 0x8767
+0x542B 0x8769
+0x542C 0x885A
+0x542D 0x8905
+0x542E 0x890C
+0x542F 0x8914
+0x5430 0x890B
+0x5431 0x8917
+0x5432 0x8918
+0x5433 0x8919
+0x5434 0x8906
+0x5435 0x8916
+0x5436 0x8911
+0x5437 0x890E
+0x5438 0x8909
+0x5439 0x89A2
+0x543A 0x89A4
+0x543B 0x89A3
+0x543C 0x89ED
+0x543D 0x89F0
+0x543E 0x89EC
+0x543F 0x8ACF
+0x5440 0x8AC6
+0x5441 0x8AB8
+0x5442 0x8AD3
+0x5443 0x8AD1
+0x5444 0x8AD4
+0x5445 0x8AD5
+0x5446 0x8ABB
+0x5447 0x8AD7
+0x5448 0x8ABE
+0x5449 0x8AC0
+0x544A 0x8AC5
+0x544B 0x8AD8
+0x544C 0x8AC3
+0x544D 0x8ABA
+0x544E 0x8ABD
+0x544F 0x8AD9
+0x5450 0x8C3E
+0x5451 0x8C4D
+0x5452 0x8C8F
+0x5453 0x8CE5
+0x5454 0x8CDF
+0x5455 0x8CD9
+0x5456 0x8CE8
+0x5457 0x8CDA
+0x5458 0x8CDD
+0x5459 0x8CE7
+0x545A 0x8DA0
+0x545B 0x8D9C
+0x545C 0x8DA1
+0x545D 0x8D9B
+0x545E 0x8E20
+0x545F 0x8E23
+0x5460 0x8E25
+0x5461 0x8E24
+0x5462 0x8E2E
+0x5463 0x8E15
+0x5464 0x8E1B
+0x5465 0x8E16
+0x5466 0x8E11
+0x5467 0x8E19
+0x5468 0x8E26
+0x5469 0x8E27
+0x546A 0x8E14
+0x546B 0x8E12
+0x546C 0x8E18
+0x546D 0x8E13
+0x546E 0x8E1C
+0x546F 0x8E17
+0x5470 0x8E1A
+0x5471 0x8F2C
+0x5472 0x8F24
+0x5473 0x8F18
+0x5474 0x8F1A
+0x5475 0x8F20
+0x5476 0x8F23
+0x5477 0x8F16
+0x5478 0x8F17
+0x5479 0x9073
+0x547A 0x9070
+0x547B 0x906F
+0x547C 0x9067
+0x547D 0x906B
+0x547E 0x912F
+0x5521 0x912B
+0x5522 0x9129
+0x5523 0x912A
+0x5524 0x9132
+0x5525 0x9126
+0x5526 0x912E
+0x5527 0x9185
+0x5528 0x9186
+0x5529 0x918A
+0x552A 0x9181
+0x552B 0x9182
+0x552C 0x9184
+0x552D 0x9180
+0x552E 0x92D0
+0x552F 0x92C3
+0x5530 0x92C4
+0x5531 0x92C0
+0x5532 0x92D9
+0x5533 0x92B6
+0x5534 0x92CF
+0x5535 0x92F1
+0x5536 0x92DF
+0x5537 0x92D8
+0x5538 0x92E9
+0x5539 0x92D7
+0x553A 0x92DD
+0x553B 0x92CC
+0x553C 0x92EF
+0x553D 0x92C2
+0x553E 0x92E8
+0x553F 0x92CA
+0x5540 0x92C8
+0x5541 0x92CE
+0x5542 0x92E6
+0x5543 0x92CD
+0x5544 0x92D5
+0x5545 0x92C9
+0x5546 0x92E0
+0x5547 0x92DE
+0x5548 0x92E7
+0x5549 0x92D1
+0x554A 0x92D3
+0x554B 0x92B5
+0x554C 0x92E1
+0x554D 0x92C6
+0x554E 0x92B4
+0x554F 0x957C
+0x5550 0x95AC
+0x5551 0x95AB
+0x5552 0x95AE
+0x5553 0x95B0
+0x5554 0x96A4
+0x5555 0x96A2
+0x5556 0x96D3
+0x5557 0x9705
+0x5558 0x9708
+0x5559 0x9702
+0x555A 0x975A
+0x555B 0x978A
+0x555C 0x978E
+0x555D 0x9788
+0x555E 0x97D0
+0x555F 0x97CF
+0x5560 0x981E
+0x5561 0x981D
+0x5562 0x9826
+0x5563 0x9829
+0x5564 0x9828
+0x5565 0x9820
+0x5566 0x981B
+0x5567 0x9827
+0x5568 0x98B2
+0x5569 0x9908
+0x556A 0x98FA
+0x556B 0x9911
+0x556C 0x9914
+0x556D 0x9916
+0x556E 0x9917
+0x556F 0x9915
+0x5570 0x99DC
+0x5571 0x99CD
+0x5572 0x99CF
+0x5573 0x99D3
+0x5574 0x99D4
+0x5575 0x99CE
+0x5576 0x99C9
+0x5577 0x99D6
+0x5578 0x99D8
+0x5579 0x99CB
+0x557A 0x99D7
+0x557B 0x99CC
+0x557C 0x9AB3
+0x557D 0x9AEC
+0x557E 0x9AEB
+0x5621 0x9AF3
+0x5622 0x9AF2
+0x5623 0x9AF1
+0x5624 0x9B46
+0x5625 0x9B43
+0x5626 0x9B67
+0x5627 0x9B74
+0x5628 0x9B71
+0x5629 0x9B66
+0x562A 0x9B76
+0x562B 0x9B75
+0x562C 0x9B70
+0x562D 0x9B68
+0x562E 0x9B64
+0x562F 0x9B6C
+0x5630 0x9CFC
+0x5631 0x9CFA
+0x5632 0x9CFD
+0x5633 0x9CFF
+0x5634 0x9CF7
+0x5635 0x9D07
+0x5636 0x9D00
+0x5637 0x9CF9
+0x5638 0x9CFB
+0x5639 0x9D08
+0x563A 0x9D05
+0x563B 0x9D04
+0x563C 0x9E83
+0x563D 0x9ED3
+0x563E 0x9F0F
+0x563F 0x9F10
+0x5640 0x511C
+0x5641 0x5113
+0x5642 0x5117
+0x5643 0x511A
+0x5644 0x5111
+0x5645 0x51DE
+0x5646 0x5334
+0x5647 0x53E1
+0x5648 0x5670
+0x5649 0x5660
+0x564A 0x566E
+0x564B 0x5673
+0x564C 0x5666
+0x564D 0x5663
+0x564E 0x566D
+0x564F 0x5672
+0x5650 0x565E
+0x5651 0x5677
+0x5652 0x571C
+0x5653 0x571B
+0x5654 0x58C8
+0x5655 0x58BD
+0x5656 0x58C9
+0x5657 0x58BF
+0x5658 0x58BA
+0x5659 0x58C2
+0x565A 0x58BC
+0x565B 0x58C6
+0x565C 0x5B17
+0x565D 0x5B19
+0x565E 0x5B1B
+0x565F 0x5B21
+0x5660 0x5B14
+0x5661 0x5B13
+0x5662 0x5B10
+0x5663 0x5B16
+0x5664 0x5B28
+0x5665 0x5B1A
+0x5666 0x5B20
+0x5667 0x5B1E
+0x5668 0x5BEF
+0x5669 0x5DAC
+0x566A 0x5DB1
+0x566B 0x5DA9
+0x566C 0x5DA7
+0x566D 0x5DB5
+0x566E 0x5DB0
+0x566F 0x5DAE
+0x5670 0x5DAA
+0x5671 0x5DA8
+0x5672 0x5DB2
+0x5673 0x5DAD
+0x5674 0x5DAF
+0x5675 0x5DB4
+0x5676 0x5E67
+0x5677 0x5E68
+0x5678 0x5E66
+0x5679 0x5E6F
+0x567A 0x5EE9
+0x567B 0x5EE7
+0x567C 0x5EE6
+0x567D 0x5EE8
+0x567E 0x5EE5
+0x5721 0x5F4B
+0x5722 0x5FBC
+0x5723 0x619D
+0x5724 0x61A8
+0x5725 0x6196
+0x5726 0x61C5
+0x5727 0x61B4
+0x5728 0x61C6
+0x5729 0x61C1
+0x572A 0x61CC
+0x572B 0x61BA
+0x572C 0x61BF
+0x572D 0x61B8
+0x572E 0x618C
+0x572F 0x64D7
+0x5730 0x64D6
+0x5731 0x64D0
+0x5732 0x64CF
+0x5733 0x64C9
+0x5734 0x64BD
+0x5735 0x6489
+0x5736 0x64C3
+0x5737 0x64DB
+0x5738 0x64F3
+0x5739 0x64D9
+0x573A 0x6533
+0x573B 0x657F
+0x573C 0x657C
+0x573D 0x65A2
+0x573E 0x66C8
+0x573F 0x66BE
+0x5740 0x66C0
+0x5741 0x66CA
+0x5742 0x66CB
+0x5743 0x66CF
+0x5744 0x66BD
+0x5745 0x66BB
+0x5746 0x66BA
+0x5747 0x66CC
+0x5748 0x6723
+0x5749 0x6A34
+0x574A 0x6A66
+0x574B 0x6A49
+0x574C 0x6A67
+0x574D 0x6A32
+0x574E 0x6A68
+0x574F 0x6A3E
+0x5750 0x6A5D
+0x5751 0x6A6D
+0x5752 0x6A76
+0x5753 0x6A5B
+0x5754 0x6A51
+0x5755 0x6A28
+0x5756 0x6A5A
+0x5757 0x6A3B
+0x5758 0x6A3F
+0x5759 0x6A41
+0x575A 0x6A6A
+0x575B 0x6A64
+0x575C 0x6A50
+0x575D 0x6A4F
+0x575E 0x6A54
+0x575F 0x6A6F
+0x5760 0x6A69
+0x5761 0x6A60
+0x5762 0x6A3C
+0x5763 0x6A5E
+0x5764 0x6A56
+0x5765 0x6A55
+0x5766 0x6A4D
+0x5767 0x6A4E
+0x5768 0x6A46
+0x5769 0x6B55
+0x576A 0x6B54
+0x576B 0x6B56
+0x576C 0x6BA7
+0x576D 0x6BAA
+0x576E 0x6BAB
+0x576F 0x6BC8
+0x5770 0x6BC7
+0x5771 0x6C04
+0x5772 0x6C03
+0x5773 0x6C06
+0x5774 0x6FAD
+0x5775 0x6FCB
+0x5776 0x6FA3
+0x5777 0x6FC7
+0x5778 0x6FBC
+0x5779 0x6FCE
+0x577A 0x6FC8
+0x577B 0x6F5E
+0x577C 0x6FC4
+0x577D 0x6FBD
+0x577E 0x6F9E
+0x5821 0x6FCA
+0x5822 0x6FA8
+0x5823 0x7004
+0x5824 0x6FA5
+0x5825 0x6FAE
+0x5826 0x6FBA
+0x5827 0x6FAC
+0x5828 0x6FAA
+0x5829 0x6FCF
+0x582A 0x6FBF
+0x582B 0x6FB8
+0x582C 0x6FA2
+0x582D 0x6FC9
+0x582E 0x6FAB
+0x582F 0x6FCD
+0x5830 0x6FAF
+0x5831 0x6FB2
+0x5832 0x6FB0
+0x5833 0x71C5
+0x5834 0x71C2
+0x5835 0x71BF
+0x5836 0x71B8
+0x5837 0x71D6
+0x5838 0x71C0
+0x5839 0x71C1
+0x583A 0x71CB
+0x583B 0x71D4
+0x583C 0x71CA
+0x583D 0x71C7
+0x583E 0x71CF
+0x583F 0x71BD
+0x5840 0x71D8
+0x5841 0x71BC
+0x5842 0x71C6
+0x5843 0x71DA
+0x5844 0x71DB
+0x5845 0x729D
+0x5846 0x729E
+0x5847 0x7369
+0x5848 0x7366
+0x5849 0x7367
+0x584A 0x736C
+0x584B 0x7365
+0x584C 0x736B
+0x584D 0x736A
+0x584E 0x747F
+0x584F 0x749A
+0x5850 0x74A0
+0x5851 0x7494
+0x5852 0x7492
+0x5853 0x7495
+0x5854 0x74A1
+0x5855 0x750B
+0x5856 0x7580
+0x5857 0x762F
+0x5858 0x762D
+0x5859 0x7631
+0x585A 0x763D
+0x585B 0x7633
+0x585C 0x763C
+0x585D 0x7635
+0x585E 0x7632
+0x585F 0x7630
+0x5860 0x76BB
+0x5861 0x76E6
+0x5862 0x779A
+0x5863 0x779D
+0x5864 0x77A1
+0x5865 0x779C
+0x5866 0x779B
+0x5867 0x77A2
+0x5868 0x77A3
+0x5869 0x7795
+0x586A 0x7799
+0x586B 0x7797
+0x586C 0x78DD
+0x586D 0x78E9
+0x586E 0x78E5
+0x586F 0x78EA
+0x5870 0x78DE
+0x5871 0x78E3
+0x5872 0x78DB
+0x5873 0x78E1
+0x5874 0x78E2
+0x5875 0x78ED
+0x5876 0x78DF
+0x5877 0x78E0
+0x5878 0x79A4
+0x5879 0x7A44
+0x587A 0x7A48
+0x587B 0x7A47
+0x587C 0x7AB6
+0x587D 0x7AB8
+0x587E 0x7AB5
+0x5921 0x7AB1
+0x5922 0x7AB7
+0x5923 0x7BDE
+0x5924 0x7BE3
+0x5925 0x7BE7
+0x5926 0x7BDD
+0x5927 0x7BD5
+0x5928 0x7BE5
+0x5929 0x7BDA
+0x592A 0x7BE8
+0x592B 0x7BF9
+0x592C 0x7BD4
+0x592D 0x7BEA
+0x592E 0x7BE2
+0x592F 0x7BDC
+0x5930 0x7BEB
+0x5931 0x7BD8
+0x5932 0x7BDF
+0x5933 0x7CD2
+0x5934 0x7CD4
+0x5935 0x7CD7
+0x5936 0x7CD0
+0x5937 0x7CD1
+0x5938 0x7E12
+0x5939 0x7E21
+0x593A 0x7E17
+0x593B 0x7E0C
+0x593C 0x7E1F
+0x593D 0x7E20
+0x593E 0x7E13
+0x593F 0x7E0E
+0x5940 0x7E1C
+0x5941 0x7E15
+0x5942 0x7E1A
+0x5943 0x7E22
+0x5944 0x7E0B
+0x5945 0x7E0F
+0x5946 0x7E16
+0x5947 0x7E0D
+0x5948 0x7E14
+0x5949 0x7E25
+0x594A 0x7E24
+0x594B 0x7F43
+0x594C 0x7F7B
+0x594D 0x7F7C
+0x594E 0x7F7A
+0x594F 0x7FB1
+0x5950 0x7FEF
+0x5951 0x802A
+0x5952 0x8029
+0x5953 0x806C
+0x5954 0x81B1
+0x5955 0x81A6
+0x5956 0x81AE
+0x5957 0x81B9
+0x5958 0x81B5
+0x5959 0x81AB
+0x595A 0x81B0
+0x595B 0x81AC
+0x595C 0x81B4
+0x595D 0x81B2
+0x595E 0x81B7
+0x595F 0x81A7
+0x5960 0x81F2
+0x5961 0x8255
+0x5962 0x8256
+0x5963 0x8257
+0x5964 0x8556
+0x5965 0x8545
+0x5966 0x856B
+0x5967 0x854D
+0x5968 0x8553
+0x5969 0x8561
+0x596A 0x8558
+0x596B 0x8540
+0x596C 0x8546
+0x596D 0x8564
+0x596E 0x8541
+0x596F 0x8562
+0x5970 0x8544
+0x5971 0x8551
+0x5972 0x8547
+0x5973 0x8563
+0x5974 0x853E
+0x5975 0x855B
+0x5976 0x8571
+0x5977 0x854E
+0x5978 0x856E
+0x5979 0x8575
+0x597A 0x8555
+0x597B 0x8567
+0x597C 0x8560
+0x597D 0x858C
+0x597E 0x8566
+0x5A21 0x855D
+0x5A22 0x8554
+0x5A23 0x8565
+0x5A24 0x856C
+0x5A25 0x8663
+0x5A26 0x8665
+0x5A27 0x8664
+0x5A28 0x879B
+0x5A29 0x878F
+0x5A2A 0x8797
+0x5A2B 0x8793
+0x5A2C 0x8792
+0x5A2D 0x8788
+0x5A2E 0x8781
+0x5A2F 0x8796
+0x5A30 0x8798
+0x5A31 0x8779
+0x5A32 0x8787
+0x5A33 0x87A3
+0x5A34 0x8785
+0x5A35 0x8790
+0x5A36 0x8791
+0x5A37 0x879D
+0x5A38 0x8784
+0x5A39 0x8794
+0x5A3A 0x879C
+0x5A3B 0x879A
+0x5A3C 0x8789
+0x5A3D 0x891E
+0x5A3E 0x8926
+0x5A3F 0x8930
+0x5A40 0x892D
+0x5A41 0x892E
+0x5A42 0x8927
+0x5A43 0x8931
+0x5A44 0x8922
+0x5A45 0x8929
+0x5A46 0x8923
+0x5A47 0x892F
+0x5A48 0x892C
+0x5A49 0x891F
+0x5A4A 0x89F1
+0x5A4B 0x8AE0
+0x5A4C 0x8AE2
+0x5A4D 0x8AF2
+0x5A4E 0x8AF4
+0x5A4F 0x8AF5
+0x5A50 0x8ADD
+0x5A51 0x8B14
+0x5A52 0x8AE4
+0x5A53 0x8ADF
+0x5A54 0x8AF0
+0x5A55 0x8AC8
+0x5A56 0x8ADE
+0x5A57 0x8AE1
+0x5A58 0x8AE8
+0x5A59 0x8AFF
+0x5A5A 0x8AEF
+0x5A5B 0x8AFB
+0x5A5C 0x8C91
+0x5A5D 0x8C92
+0x5A5E 0x8C90
+0x5A5F 0x8CF5
+0x5A60 0x8CEE
+0x5A61 0x8CF1
+0x5A62 0x8CF0
+0x5A63 0x8CF3
+0x5A64 0x8D6C
+0x5A65 0x8D6E
+0x5A66 0x8DA5
+0x5A67 0x8DA7
+0x5A68 0x8E33
+0x5A69 0x8E3E
+0x5A6A 0x8E38
+0x5A6B 0x8E40
+0x5A6C 0x8E45
+0x5A6D 0x8E36
+0x5A6E 0x8E3C
+0x5A6F 0x8E3D
+0x5A70 0x8E41
+0x5A71 0x8E30
+0x5A72 0x8E3F
+0x5A73 0x8EBD
+0x5A74 0x8F36
+0x5A75 0x8F2E
+0x5A76 0x8F35
+0x5A77 0x8F32
+0x5A78 0x8F39
+0x5A79 0x8F37
+0x5A7A 0x8F34
+0x5A7B 0x9076
+0x5A7C 0x9079
+0x5A7D 0x907B
+0x5A7E 0x9086
+0x5B21 0x90FA
+0x5B22 0x9133
+0x5B23 0x9135
+0x5B24 0x9136
+0x5B25 0x9193
+0x5B26 0x9190
+0x5B27 0x9191
+0x5B28 0x918D
+0x5B29 0x918F
+0x5B2A 0x9327
+0x5B2B 0x931E
+0x5B2C 0x9308
+0x5B2D 0x931F
+0x5B2E 0x9306
+0x5B2F 0x930F
+0x5B30 0x937A
+0x5B31 0x9338
+0x5B32 0x933C
+0x5B33 0x931B
+0x5B34 0x9323
+0x5B35 0x9312
+0x5B36 0x9301
+0x5B37 0x9346
+0x5B38 0x932D
+0x5B39 0x930E
+0x5B3A 0x930D
+0x5B3B 0x92CB
+0x5B3C 0x931D
+0x5B3D 0x92FA
+0x5B3E 0x9325
+0x5B3F 0x9313
+0x5B40 0x92F9
+0x5B41 0x92F7
+0x5B42 0x9334
+0x5B43 0x9302
+0x5B44 0x9324
+0x5B45 0x92FF
+0x5B46 0x9329
+0x5B47 0x9339
+0x5B48 0x9335
+0x5B49 0x932A
+0x5B4A 0x9314
+0x5B4B 0x930C
+0x5B4C 0x930B
+0x5B4D 0x92FE
+0x5B4E 0x9309
+0x5B4F 0x9300
+0x5B50 0x92FB
+0x5B51 0x9316
+0x5B52 0x95BC
+0x5B53 0x95CD
+0x5B54 0x95BE
+0x5B55 0x95B9
+0x5B56 0x95BA
+0x5B57 0x95B6
+0x5B58 0x95BF
+0x5B59 0x95B5
+0x5B5A 0x95BD
+0x5B5B 0x96A9
+0x5B5C 0x96D4
+0x5B5D 0x970B
+0x5B5E 0x9712
+0x5B5F 0x9710
+0x5B60 0x9799
+0x5B61 0x9797
+0x5B62 0x9794
+0x5B63 0x97F0
+0x5B64 0x97F8
+0x5B65 0x9835
+0x5B66 0x982F
+0x5B67 0x9832
+0x5B68 0x9924
+0x5B69 0x991F
+0x5B6A 0x9927
+0x5B6B 0x9929
+0x5B6C 0x999E
+0x5B6D 0x99EE
+0x5B6E 0x99EC
+0x5B6F 0x99E5
+0x5B70 0x99E4
+0x5B71 0x99F0
+0x5B72 0x99E3
+0x5B73 0x99EA
+0x5B74 0x99E9
+0x5B75 0x99E7
+0x5B76 0x9AB9
+0x5B77 0x9ABF
+0x5B78 0x9AB4
+0x5B79 0x9ABB
+0x5B7A 0x9AF6
+0x5B7B 0x9AFA
+0x5B7C 0x9AF9
+0x5B7D 0x9AF7
+0x5B7E 0x9B33
+0x5C21 0x9B80
+0x5C22 0x9B85
+0x5C23 0x9B87
+0x5C24 0x9B7C
+0x5C25 0x9B7E
+0x5C26 0x9B7B
+0x5C27 0x9B82
+0x5C28 0x9B93
+0x5C29 0x9B92
+0x5C2A 0x9B90
+0x5C2B 0x9B7A
+0x5C2C 0x9B95
+0x5C2D 0x9B7D
+0x5C2E 0x9B88
+0x5C2F 0x9D25
+0x5C30 0x9D17
+0x5C31 0x9D20
+0x5C32 0x9D1E
+0x5C33 0x9D14
+0x5C34 0x9D29
+0x5C35 0x9D1D
+0x5C36 0x9D18
+0x5C37 0x9D22
+0x5C38 0x9D10
+0x5C39 0x9D19
+0x5C3A 0x9D1F
+0x5C3B 0x9E88
+0x5C3C 0x9E86
+0x5C3D 0x9E87
+0x5C3E 0x9EAE
+0x5C3F 0x9EAD
+0x5C40 0x9ED5
+0x5C41 0x9ED6
+0x5C42 0x9EFA
+0x5C43 0x9F12
+0x5C44 0x9F3D
+0x5C45 0x5126
+0x5C46 0x5125
+0x5C47 0x5122
+0x5C48 0x5124
+0x5C49 0x5120
+0x5C4A 0x5129
+0x5C4B 0x52F4
+0x5C4C 0x5693
+0x5C4D 0x568C
+0x5C4E 0x568D
+0x5C4F 0x5686
+0x5C50 0x5684
+0x5C51 0x5683
+0x5C52 0x567E
+0x5C53 0x5682
+0x5C54 0x567F
+0x5C55 0x5681
+0x5C56 0x58D6
+0x5C57 0x58D4
+0x5C58 0x58CF
+0x5C59 0x58D2
+0x5C5A 0x5B2D
+0x5C5B 0x5B25
+0x5C5C 0x5B32
+0x5C5D 0x5B23
+0x5C5E 0x5B2C
+0x5C5F 0x5B27
+0x5C60 0x5B26
+0x5C61 0x5B2F
+0x5C62 0x5B2E
+0x5C63 0x5B7B
+0x5C64 0x5BF1
+0x5C65 0x5BF2
+0x5C66 0x5DB7
+0x5C67 0x5E6C
+0x5C68 0x5E6A
+0x5C69 0x5FBE
+0x5C6A 0x5FBB
+0x5C6B 0x61C3
+0x5C6C 0x61B5
+0x5C6D 0x61BC
+0x5C6E 0x61E7
+0x5C6F 0x61E0
+0x5C70 0x61E5
+0x5C71 0x61E4
+0x5C72 0x61E8
+0x5C73 0x61DE
+0x5C74 0x64EF
+0x5C75 0x64E9
+0x5C76 0x64E3
+0x5C77 0x64EB
+0x5C78 0x64E4
+0x5C79 0x64E8
+0x5C7A 0x6581
+0x5C7B 0x6580
+0x5C7C 0x65B6
+0x5C7D 0x65DA
+0x5C7E 0x66D2
+0x5D21 0x6A8D
+0x5D22 0x6A96
+0x5D23 0x6A81
+0x5D24 0x6AA5
+0x5D25 0x6A89
+0x5D26 0x6A9F
+0x5D27 0x6A9B
+0x5D28 0x6AA1
+0x5D29 0x6A9E
+0x5D2A 0x6A87
+0x5D2B 0x6A93
+0x5D2C 0x6A8E
+0x5D2D 0x6A95
+0x5D2E 0x6A83
+0x5D2F 0x6AA8
+0x5D30 0x6AA4
+0x5D31 0x6A91
+0x5D32 0x6A7F
+0x5D33 0x6AA6
+0x5D34 0x6A9A
+0x5D35 0x6A85
+0x5D36 0x6A8C
+0x5D37 0x6A92
+0x5D38 0x6B5B
+0x5D39 0x6BAD
+0x5D3A 0x6C09
+0x5D3B 0x6FCC
+0x5D3C 0x6FA9
+0x5D3D 0x6FF4
+0x5D3E 0x6FD4
+0x5D3F 0x6FE3
+0x5D40 0x6FDC
+0x5D41 0x6FED
+0x5D42 0x6FE7
+0x5D43 0x6FE6
+0x5D44 0x6FDE
+0x5D45 0x6FF2
+0x5D46 0x6FDD
+0x5D47 0x6FE2
+0x5D48 0x6FE8
+0x5D49 0x71E1
+0x5D4A 0x71F1
+0x5D4B 0x71E8
+0x5D4C 0x71F2
+0x5D4D 0x71E4
+0x5D4E 0x71F0
+0x5D4F 0x71E2
+0x5D50 0x7373
+0x5D51 0x736E
+0x5D52 0x736F
+0x5D53 0x7497
+0x5D54 0x74B2
+0x5D55 0x74AB
+0x5D56 0x7490
+0x5D57 0x74AA
+0x5D58 0x74AD
+0x5D59 0x74B1
+0x5D5A 0x74A5
+0x5D5B 0x74AF
+0x5D5C 0x7510
+0x5D5D 0x7511
+0x5D5E 0x7512
+0x5D5F 0x750F
+0x5D60 0x7584
+0x5D61 0x7643
+0x5D62 0x7648
+0x5D63 0x7649
+0x5D64 0x7647
+0x5D65 0x76A4
+0x5D66 0x76E9
+0x5D67 0x77B5
+0x5D68 0x77AB
+0x5D69 0x77B2
+0x5D6A 0x77B7
+0x5D6B 0x77B6
+0x5D6C 0x77B4
+0x5D6D 0x77B1
+0x5D6E 0x77A8
+0x5D6F 0x77F0
+0x5D70 0x78F3
+0x5D71 0x78FD
+0x5D72 0x7902
+0x5D73 0x78FB
+0x5D74 0x78FC
+0x5D75 0x78F2
+0x5D76 0x7905
+0x5D77 0x78F9
+0x5D78 0x78FE
+0x5D79 0x7904
+0x5D7A 0x79AB
+0x5D7B 0x79A8
+0x5D7C 0x7A5C
+0x5D7D 0x7A5B
+0x5D7E 0x7A56
+0x5E21 0x7A58
+0x5E22 0x7A54
+0x5E23 0x7A5A
+0x5E24 0x7ABE
+0x5E25 0x7AC0
+0x5E26 0x7AC1
+0x5E27 0x7C05
+0x5E28 0x7C0F
+0x5E29 0x7BF2
+0x5E2A 0x7C00
+0x5E2B 0x7BFF
+0x5E2C 0x7BFB
+0x5E2D 0x7C0E
+0x5E2E 0x7BF4
+0x5E2F 0x7C0B
+0x5E30 0x7BF3
+0x5E31 0x7C02
+0x5E32 0x7C09
+0x5E33 0x7C03
+0x5E34 0x7C01
+0x5E35 0x7BF8
+0x5E36 0x7BFD
+0x5E37 0x7C06
+0x5E38 0x7BF0
+0x5E39 0x7BF1
+0x5E3A 0x7C10
+0x5E3B 0x7C0A
+0x5E3C 0x7CE8
+0x5E3D 0x7E2D
+0x5E3E 0x7E3C
+0x5E3F 0x7E42
+0x5E40 0x7E33
+0x5E41 0x9848
+0x5E42 0x7E38
+0x5E43 0x7E2A
+0x5E44 0x7E49
+0x5E45 0x7E40
+0x5E46 0x7E47
+0x5E47 0x7E29
+0x5E48 0x7E4C
+0x5E49 0x7E30
+0x5E4A 0x7E3B
+0x5E4B 0x7E36
+0x5E4C 0x7E44
+0x5E4D 0x7E3A
+0x5E4E 0x7F45
+0x5E4F 0x7F7F
+0x5E50 0x7F7E
+0x5E51 0x7F7D
+0x5E52 0x7FF4
+0x5E53 0x7FF2
+0x5E54 0x802C
+0x5E55 0x81BB
+0x5E56 0x81C4
+0x5E57 0x81CC
+0x5E58 0x81CA
+0x5E59 0x81C5
+0x5E5A 0x81C7
+0x5E5B 0x81BC
+0x5E5C 0x81E9
+0x5E5D 0x825B
+0x5E5E 0x825A
+0x5E5F 0x825C
+0x5E60 0x8583
+0x5E61 0x8580
+0x5E62 0x858F
+0x5E63 0x85A7
+0x5E64 0x8595
+0x5E65 0x85A0
+0x5E66 0x858B
+0x5E67 0x85A3
+0x5E68 0x857B
+0x5E69 0x85A4
+0x5E6A 0x859A
+0x5E6B 0x859E
+0x5E6C 0x8577
+0x5E6D 0x857C
+0x5E6E 0x8589
+0x5E6F 0x85A1
+0x5E70 0x857A
+0x5E71 0x8578
+0x5E72 0x8557
+0x5E73 0x858E
+0x5E74 0x8596
+0x5E75 0x8586
+0x5E76 0x858D
+0x5E77 0x8599
+0x5E78 0x859D
+0x5E79 0x8581
+0x5E7A 0x85A2
+0x5E7B 0x8582
+0x5E7C 0x8588
+0x5E7D 0x8585
+0x5E7E 0x8579
+0x5F21 0x8576
+0x5F22 0x8598
+0x5F23 0x8590
+0x5F24 0x859F
+0x5F25 0x8668
+0x5F26 0x87BE
+0x5F27 0x87AA
+0x5F28 0x87AD
+0x5F29 0x87C5
+0x5F2A 0x87B0
+0x5F2B 0x87AC
+0x5F2C 0x87B9
+0x5F2D 0x87B5
+0x5F2E 0x87BC
+0x5F2F 0x87AE
+0x5F30 0x87C9
+0x5F31 0x87C3
+0x5F32 0x87C2
+0x5F33 0x87CC
+0x5F34 0x87B7
+0x5F35 0x87AF
+0x5F36 0x87C4
+0x5F37 0x87CA
+0x5F38 0x87B4
+0x5F39 0x87B6
+0x5F3A 0x87BF
+0x5F3B 0x87B8
+0x5F3C 0x87BD
+0x5F3D 0x87DE
+0x5F3E 0x87B2
+0x5F3F 0x8935
+0x5F40 0x8933
+0x5F41 0x893C
+0x5F42 0x893E
+0x5F43 0x8941
+0x5F44 0x8952
+0x5F45 0x8937
+0x5F46 0x8942
+0x5F47 0x89AD
+0x5F48 0x89AF
+0x5F49 0x89AE
+0x5F4A 0x89F2
+0x5F4B 0x89F3
+0x5F4C 0x8B1E
+0x5F4D 0x8B18
+0x5F4E 0x8B16
+0x5F4F 0x8B11
+0x5F50 0x8B05
+0x5F51 0x8B0B
+0x5F52 0x8B22
+0x5F53 0x8B0F
+0x5F54 0x8B12
+0x5F55 0x8B15
+0x5F56 0x8B07
+0x5F57 0x8B0D
+0x5F58 0x8B08
+0x5F59 0x8B06
+0x5F5A 0x8B1C
+0x5F5B 0x8B13
+0x5F5C 0x8B1A
+0x5F5D 0x8C4F
+0x5F5E 0x8C70
+0x5F5F 0x8C72
+0x5F60 0x8C71
+0x5F61 0x8C6F
+0x5F62 0x8C95
+0x5F63 0x8C94
+0x5F64 0x8CF9
+0x5F65 0x8D6F
+0x5F66 0x8E4E
+0x5F67 0x8E4D
+0x5F68 0x8E53
+0x5F69 0x8E50
+0x5F6A 0x8E4C
+0x5F6B 0x8E47
+0x5F6C 0x8F43
+0x5F6D 0x8F40
+0x5F6E 0x9085
+0x5F6F 0x907E
+0x5F70 0x9138
+0x5F71 0x919A
+0x5F72 0x91A2
+0x5F73 0x919B
+0x5F74 0x9199
+0x5F75 0x919F
+0x5F76 0x91A1
+0x5F77 0x919D
+0x5F78 0x91A0
+0x5F79 0x93A1
+0x5F7A 0x9383
+0x5F7B 0x93AF
+0x5F7C 0x9364
+0x5F7D 0x9356
+0x5F7E 0x9347
+0x6021 0x937C
+0x6022 0x9358
+0x6023 0x935C
+0x6024 0x9376
+0x6025 0x9349
+0x6026 0x9350
+0x6027 0x9351
+0x6028 0x9360
+0x6029 0x936D
+0x602A 0x938F
+0x602B 0x934C
+0x602C 0x936A
+0x602D 0x9379
+0x602E 0x9357
+0x602F 0x9355
+0x6030 0x9352
+0x6031 0x934F
+0x6032 0x9371
+0x6033 0x9377
+0x6034 0x937B
+0x6035 0x9361
+0x6036 0x935E
+0x6037 0x9363
+0x6038 0x9367
+0x6039 0x9380
+0x603A 0x934E
+0x603B 0x9359
+0x603C 0x95C7
+0x603D 0x95C0
+0x603E 0x95C9
+0x603F 0x95C3
+0x6040 0x95C5
+0x6041 0x95B7
+0x6042 0x96AE
+0x6043 0x96B0
+0x6044 0x96AC
+0x6045 0x9720
+0x6046 0x971F
+0x6047 0x9718
+0x6048 0x971D
+0x6049 0x9719
+0x604A 0x979A
+0x604B 0x97A1
+0x604C 0x979C
+0x604D 0x979E
+0x604E 0x979D
+0x604F 0x97D5
+0x6050 0x97D4
+0x6051 0x97F1
+0x6052 0x9841
+0x6053 0x9844
+0x6054 0x984A
+0x6055 0x9849
+0x6056 0x9845
+0x6057 0x9843
+0x6058 0x9925
+0x6059 0x992B
+0x605A 0x992C
+0x605B 0x992A
+0x605C 0x9933
+0x605D 0x9932
+0x605E 0x992F
+0x605F 0x992D
+0x6060 0x9931
+0x6061 0x9930
+0x6062 0x9998
+0x6063 0x99A3
+0x6064 0x99A1
+0x6065 0x9A02
+0x6066 0x99FA
+0x6067 0x99F4
+0x6068 0x99F7
+0x6069 0x99F9
+0x606A 0x99F8
+0x606B 0x99F6
+0x606C 0x99FB
+0x606D 0x99FD
+0x606E 0x99FE
+0x606F 0x99FC
+0x6070 0x9A03
+0x6071 0x9ABE
+0x6072 0x9AFE
+0x6073 0x9AFD
+0x6074 0x9B01
+0x6075 0x9AFC
+0x6076 0x9B48
+0x6077 0x9B9A
+0x6078 0x9BA8
+0x6079 0x9B9E
+0x607A 0x9B9B
+0x607B 0x9BA6
+0x607C 0x9BA1
+0x607D 0x9BA5
+0x607E 0x9BA4
+0x6121 0x9B86
+0x6122 0x9BA2
+0x6123 0x9BA0
+0x6124 0x9BAF
+0x6125 0x9D33
+0x6126 0x9D41
+0x6127 0x9D67
+0x6128 0x9D36
+0x6129 0x9D2E
+0x612A 0x9D2F
+0x612B 0x9D31
+0x612C 0x9D38
+0x612D 0x9D30
+0x612E 0x9D45
+0x612F 0x9D42
+0x6130 0x9D43
+0x6131 0x9D3E
+0x6132 0x9D37
+0x6133 0x9D40
+0x6134 0x9D3D
+0x6135 0x7FF5
+0x6136 0x9D2D
+0x6137 0x9E8A
+0x6138 0x9E89
+0x6139 0x9E8D
+0x613A 0x9EB0
+0x613B 0x9EC8
+0x613C 0x9EDA
+0x613D 0x9EFB
+0x613E 0x9EFF
+0x613F 0x9F24
+0x6140 0x9F23
+0x6141 0x9F22
+0x6142 0x9F54
+0x6143 0x9FA0
+0x6144 0x5131
+0x6145 0x512D
+0x6146 0x512E
+0x6147 0x5698
+0x6148 0x569C
+0x6149 0x5697
+0x614A 0x569A
+0x614B 0x569D
+0x614C 0x5699
+0x614D 0x5970
+0x614E 0x5B3C
+0x614F 0x5C69
+0x6150 0x5C6A
+0x6151 0x5DC0
+0x6152 0x5E6D
+0x6153 0x5E6E
+0x6154 0x61D8
+0x6155 0x61DF
+0x6156 0x61ED
+0x6157 0x61EE
+0x6158 0x61F1
+0x6159 0x61EA
+0x615A 0x61F0
+0x615B 0x61EB
+0x615C 0x61D6
+0x615D 0x61E9
+0x615E 0x64FF
+0x615F 0x6504
+0x6160 0x64FD
+0x6161 0x64F8
+0x6162 0x6501
+0x6163 0x6503
+0x6164 0x64FC
+0x6165 0x6594
+0x6166 0x65DB
+0x6167 0x66DA
+0x6168 0x66DB
+0x6169 0x66D8
+0x616A 0x6AC5
+0x616B 0x6AB9
+0x616C 0x6ABD
+0x616D 0x6AE1
+0x616E 0x6AC6
+0x616F 0x6ABA
+0x6170 0x6AB6
+0x6171 0x6AB7
+0x6172 0x6AC7
+0x6173 0x6AB4
+0x6174 0x6AAD
+0x6175 0x6B5E
+0x6176 0x6BC9
+0x6177 0x6C0B
+0x6178 0x7007
+0x6179 0x700C
+0x617A 0x700D
+0x617B 0x7001
+0x617C 0x7005
+0x617D 0x7014
+0x617E 0x700E
+0x6221 0x6FFF
+0x6222 0x7000
+0x6223 0x6FFB
+0x6224 0x7026
+0x6225 0x6FFC
+0x6226 0x6FF7
+0x6227 0x700A
+0x6228 0x7201
+0x6229 0x71FF
+0x622A 0x71F9
+0x622B 0x7203
+0x622C 0x71FD
+0x622D 0x7376
+0x622E 0x74B8
+0x622F 0x74C0
+0x6230 0x74B5
+0x6231 0x74C1
+0x6232 0x74BE
+0x6233 0x74B6
+0x6234 0x74BB
+0x6235 0x74C2
+0x6236 0x7514
+0x6237 0x7513
+0x6238 0x765C
+0x6239 0x7664
+0x623A 0x7659
+0x623B 0x7650
+0x623C 0x7653
+0x623D 0x7657
+0x623E 0x765A
+0x623F 0x76A6
+0x6240 0x76BD
+0x6241 0x76EC
+0x6242 0x77C2
+0x6243 0x77BA
+0x6244 0x78FF
+0x6245 0x790C
+0x6246 0x7913
+0x6247 0x7914
+0x6248 0x7909
+0x6249 0x7910
+0x624A 0x7912
+0x624B 0x7911
+0x624C 0x79AD
+0x624D 0x79AC
+0x624E 0x7A5F
+0x624F 0x7C1C
+0x6250 0x7C29
+0x6251 0x7C19
+0x6252 0x7C20
+0x6253 0x7C1F
+0x6254 0x7C2D
+0x6255 0x7C1D
+0x6256 0x7C26
+0x6257 0x7C28
+0x6258 0x7C22
+0x6259 0x7C25
+0x625A 0x7C30
+0x625B 0x7E5C
+0x625C 0x7E50
+0x625D 0x7E56
+0x625E 0x7E63
+0x625F 0x7E58
+0x6260 0x7E62
+0x6261 0x7E5F
+0x6262 0x7E51
+0x6263 0x7E60
+0x6264 0x7E57
+0x6265 0x7E53
+0x6266 0x7FB5
+0x6267 0x7FB3
+0x6268 0x7FF7
+0x6269 0x7FF8
+0x626A 0x8075
+0x626B 0x81D1
+0x626C 0x81D2
+0x626D 0x81D0
+0x626E 0x825F
+0x626F 0x825E
+0x6270 0x85B4
+0x6271 0x85C6
+0x6272 0x85C0
+0x6273 0x85C3
+0x6274 0x85C2
+0x6275 0x85B3
+0x6276 0x85B5
+0x6277 0x85BD
+0x6278 0x85C7
+0x6279 0x85C4
+0x627A 0x85BF
+0x627B 0x85CB
+0x627C 0x85CE
+0x627D 0x85C8
+0x627E 0x85C5
+0x6321 0x85B1
+0x6322 0x85B6
+0x6323 0x85D2
+0x6324 0x8624
+0x6325 0x85B8
+0x6326 0x85B7
+0x6327 0x85BE
+0x6328 0x8669
+0x6329 0x87E7
+0x632A 0x87E6
+0x632B 0x87E2
+0x632C 0x87DB
+0x632D 0x87EB
+0x632E 0x87EA
+0x632F 0x87E5
+0x6330 0x87DF
+0x6331 0x87F3
+0x6332 0x87E4
+0x6333 0x87D4
+0x6334 0x87DC
+0x6335 0x87D3
+0x6336 0x87ED
+0x6337 0x87D8
+0x6338 0x87E3
+0x6339 0x87A4
+0x633A 0x87D7
+0x633B 0x87D9
+0x633C 0x8801
+0x633D 0x87F4
+0x633E 0x87E8
+0x633F 0x87DD
+0x6340 0x8953
+0x6341 0x894B
+0x6342 0x894F
+0x6343 0x894C
+0x6344 0x8946
+0x6345 0x8950
+0x6346 0x8951
+0x6347 0x8949
+0x6348 0x8B2A
+0x6349 0x8B27
+0x634A 0x8B23
+0x634B 0x8B33
+0x634C 0x8B30
+0x634D 0x8B35
+0x634E 0x8B47
+0x634F 0x8B2F
+0x6350 0x8B3C
+0x6351 0x8B3E
+0x6352 0x8B31
+0x6353 0x8B25
+0x6354 0x8B37
+0x6355 0x8B26
+0x6356 0x8B36
+0x6357 0x8B2E
+0x6358 0x8B24
+0x6359 0x8B3B
+0x635A 0x8B3D
+0x635B 0x8B3A
+0x635C 0x8C42
+0x635D 0x8C75
+0x635E 0x8C99
+0x635F 0x8C98
+0x6360 0x8C97
+0x6361 0x8CFE
+0x6362 0x8D04
+0x6363 0x8D02
+0x6364 0x8D00
+0x6365 0x8E5C
+0x6366 0x8E62
+0x6367 0x8E60
+0x6368 0x8E57
+0x6369 0x8E56
+0x636A 0x8E5E
+0x636B 0x8E65
+0x636C 0x8E67
+0x636D 0x8E5B
+0x636E 0x8E5A
+0x636F 0x8E61
+0x6370 0x8E5D
+0x6371 0x8E69
+0x6372 0x8E54
+0x6373 0x8F46
+0x6374 0x8F47
+0x6375 0x8F48
+0x6376 0x8F4B
+0x6377 0x9128
+0x6378 0x913A
+0x6379 0x913B
+0x637A 0x913E
+0x637B 0x91A8
+0x637C 0x91A5
+0x637D 0x91A7
+0x637E 0x91AF
+0x6421 0x91AA
+0x6422 0x93B5
+0x6423 0x938C
+0x6424 0x9392
+0x6425 0x93B7
+0x6426 0x939B
+0x6427 0x939D
+0x6428 0x9389
+0x6429 0x93A7
+0x642A 0x938E
+0x642B 0x93AA
+0x642C 0x939E
+0x642D 0x93A6
+0x642E 0x9395
+0x642F 0x9388
+0x6430 0x9399
+0x6431 0x939F
+0x6432 0x938D
+0x6433 0x93B1
+0x6434 0x9391
+0x6435 0x93B2
+0x6436 0x93A4
+0x6437 0x93A8
+0x6438 0x93B4
+0x6439 0x93A3
+0x643A 0x93A5
+0x643B 0x95D2
+0x643C 0x95D3
+0x643D 0x95D1
+0x643E 0x96B3
+0x643F 0x96D7
+0x6440 0x96DA
+0x6441 0x5DC2
+0x6442 0x96DF
+0x6443 0x96D8
+0x6444 0x96DD
+0x6445 0x9723
+0x6446 0x9722
+0x6447 0x9725
+0x6448 0x97AC
+0x6449 0x97AE
+0x644A 0x97A8
+0x644B 0x97AB
+0x644C 0x97A4
+0x644D 0x97AA
+0x644E 0x97A2
+0x644F 0x97A5
+0x6450 0x97D7
+0x6451 0x97D9
+0x6452 0x97D6
+0x6453 0x97D8
+0x6454 0x97FA
+0x6455 0x9850
+0x6456 0x9851
+0x6457 0x9852
+0x6458 0x98B8
+0x6459 0x9941
+0x645A 0x993C
+0x645B 0x993A
+0x645C 0x9A0F
+0x645D 0x9A0B
+0x645E 0x9A09
+0x645F 0x9A0D
+0x6460 0x9A04
+0x6461 0x9A11
+0x6462 0x9A0A
+0x6463 0x9A05
+0x6464 0x9A07
+0x6465 0x9A06
+0x6466 0x9AC0
+0x6467 0x9ADC
+0x6468 0x9B08
+0x6469 0x9B04
+0x646A 0x9B05
+0x646B 0x9B29
+0x646C 0x9B35
+0x646D 0x9B4A
+0x646E 0x9B4C
+0x646F 0x9B4B
+0x6470 0x9BC7
+0x6471 0x9BC6
+0x6472 0x9BC3
+0x6473 0x9BBF
+0x6474 0x9BC1
+0x6475 0x9BB5
+0x6476 0x9BB8
+0x6477 0x9BD3
+0x6478 0x9BB6
+0x6479 0x9BC4
+0x647A 0x9BB9
+0x647B 0x9BBD
+0x647C 0x9D5C
+0x647D 0x9D53
+0x647E 0x9D4F
+0x6521 0x9D4A
+0x6522 0x9D5B
+0x6523 0x9D4B
+0x6524 0x9D59
+0x6525 0x9D56
+0x6526 0x9D4C
+0x6527 0x9D57
+0x6528 0x9D52
+0x6529 0x9D54
+0x652A 0x9D5F
+0x652B 0x9D58
+0x652C 0x9D5A
+0x652D 0x9E8E
+0x652E 0x9E8C
+0x652F 0x9EDF
+0x6530 0x9F01
+0x6531 0x9F00
+0x6532 0x9F16
+0x6533 0x9F25
+0x6534 0x9F2B
+0x6535 0x9F2A
+0x6536 0x9F29
+0x6537 0x9F28
+0x6538 0x9F4C
+0x6539 0x9F55
+0x653A 0x5134
+0x653B 0x5135
+0x653C 0x5296
+0x653D 0x52F7
+0x653E 0x53B4
+0x653F 0x56AB
+0x6540 0x56AD
+0x6541 0x56A6
+0x6542 0x56A7
+0x6543 0x56AA
+0x6544 0x56AC
+0x6545 0x58DA
+0x6546 0x58DD
+0x6547 0x58DB
+0x6548 0x5912
+0x6549 0x5B3D
+0x654A 0x5B3E
+0x654B 0x5B3F
+0x654C 0x5DC3
+0x654D 0x5E70
+0x654E 0x5FBF
+0x654F 0x61FB
+0x6550 0x6507
+0x6551 0x6510
+0x6552 0x650D
+0x6553 0x6509
+0x6554 0x650C
+0x6555 0x650E
+0x6556 0x6584
+0x6557 0x65DE
+0x6558 0x65DD
+0x6559 0x66DE
+0x655A 0x6AE7
+0x655B 0x6AE0
+0x655C 0x6ACC
+0x655D 0x6AD1
+0x655E 0x6AD9
+0x655F 0x6ACB
+0x6560 0x6ADF
+0x6561 0x6ADC
+0x6562 0x6AD0
+0x6563 0x6AEB
+0x6564 0x6ACF
+0x6565 0x6ACD
+0x6566 0x6ADE
+0x6567 0x6B60
+0x6568 0x6BB0
+0x6569 0x6C0C
+0x656A 0x7019
+0x656B 0x7027
+0x656C 0x7020
+0x656D 0x7016
+0x656E 0x702B
+0x656F 0x7021
+0x6570 0x7022
+0x6571 0x7023
+0x6572 0x7029
+0x6573 0x7017
+0x6574 0x7024
+0x6575 0x701C
+0x6576 0x702A
+0x6577 0x720C
+0x6578 0x720A
+0x6579 0x7207
+0x657A 0x7202
+0x657B 0x7205
+0x657C 0x72A5
+0x657D 0x72A6
+0x657E 0x72A4
+0x6621 0x72A3
+0x6622 0x72A1
+0x6623 0x74CB
+0x6624 0x74C5
+0x6625 0x74B7
+0x6626 0x74C3
+0x6627 0x7516
+0x6628 0x7660
+0x6629 0x77C9
+0x662A 0x77CA
+0x662B 0x77C4
+0x662C 0x77F1
+0x662D 0x791D
+0x662E 0x791B
+0x662F 0x7921
+0x6630 0x791C
+0x6631 0x7917
+0x6632 0x791E
+0x6633 0x79B0
+0x6634 0x7A67
+0x6635 0x7A68
+0x6636 0x7C33
+0x6637 0x7C3C
+0x6638 0x7C39
+0x6639 0x7C2C
+0x663A 0x7C3B
+0x663B 0x7CEC
+0x663C 0x7CEA
+0x663D 0x7E76
+0x663E 0x7E75
+0x663F 0x7E78
+0x6640 0x7E70
+0x6641 0x7E77
+0x6642 0x7E6F
+0x6643 0x7E7A
+0x6644 0x7E72
+0x6645 0x7E74
+0x6646 0x7E68
+0x6647 0x7F4B
+0x6648 0x7F4A
+0x6649 0x7F83
+0x664A 0x7F86
+0x664B 0x7FB7
+0x664C 0x7FFD
+0x664D 0x7FFE
+0x664E 0x8078
+0x664F 0x81D7
+0x6650 0x81D5
+0x6651 0x8264
+0x6652 0x8261
+0x6653 0x8263
+0x6654 0x85EB
+0x6655 0x85F1
+0x6656 0x85ED
+0x6657 0x85D9
+0x6658 0x85E1
+0x6659 0x85E8
+0x665A 0x85DA
+0x665B 0x85D7
+0x665C 0x85EC
+0x665D 0x85F2
+0x665E 0x85F8
+0x665F 0x85D8
+0x6660 0x85DF
+0x6661 0x85E3
+0x6662 0x85DC
+0x6663 0x85D1
+0x6664 0x85F0
+0x6665 0x85E6
+0x6666 0x85EF
+0x6667 0x85DE
+0x6668 0x85E2
+0x6669 0x8800
+0x666A 0x87FA
+0x666B 0x8803
+0x666C 0x87F6
+0x666D 0x87F7
+0x666E 0x8809
+0x666F 0x880C
+0x6670 0x880B
+0x6671 0x8806
+0x6672 0x87FC
+0x6673 0x8808
+0x6674 0x87FF
+0x6675 0x880A
+0x6676 0x8802
+0x6677 0x8962
+0x6678 0x895A
+0x6679 0x895B
+0x667A 0x8957
+0x667B 0x8961
+0x667C 0x895C
+0x667D 0x8958
+0x667E 0x895D
+0x6721 0x8959
+0x6722 0x8988
+0x6723 0x89B7
+0x6724 0x89B6
+0x6725 0x89F6
+0x6726 0x8B50
+0x6727 0x8B48
+0x6728 0x8B4A
+0x6729 0x8B40
+0x672A 0x8B53
+0x672B 0x8B56
+0x672C 0x8B54
+0x672D 0x8B4B
+0x672E 0x8B55
+0x672F 0x8B51
+0x6730 0x8B42
+0x6731 0x8B52
+0x6732 0x8B57
+0x6733 0x8C43
+0x6734 0x8C77
+0x6735 0x8C76
+0x6736 0x8C9A
+0x6737 0x8D06
+0x6738 0x8D07
+0x6739 0x8D09
+0x673A 0x8DAC
+0x673B 0x8DAA
+0x673C 0x8DAD
+0x673D 0x8DAB
+0x673E 0x8E6D
+0x673F 0x8E78
+0x6740 0x8E73
+0x6741 0x8E6A
+0x6742 0x8E6F
+0x6743 0x8E7B
+0x6744 0x8EC2
+0x6745 0x8F52
+0x6746 0x8F51
+0x6747 0x8F4F
+0x6748 0x8F50
+0x6749 0x8F53
+0x674A 0x8FB4
+0x674B 0x9140
+0x674C 0x913F
+0x674D 0x91B0
+0x674E 0x91AD
+0x674F 0x93DE
+0x6750 0x93C7
+0x6751 0x93CF
+0x6752 0x93C2
+0x6753 0x93DA
+0x6754 0x93D0
+0x6755 0x93F9
+0x6756 0x93EC
+0x6757 0x93CC
+0x6758 0x93D9
+0x6759 0x93A9
+0x675A 0x93E6
+0x675B 0x93CA
+0x675C 0x93D4
+0x675D 0x93EE
+0x675E 0x93E3
+0x675F 0x93D5
+0x6760 0x93C4
+0x6761 0x93CE
+0x6762 0x93C0
+0x6763 0x93D2
+0x6764 0x93E7
+0x6765 0x957D
+0x6766 0x95DA
+0x6767 0x95DB
+0x6768 0x96E1
+0x6769 0x9729
+0x676A 0x972B
+0x676B 0x972C
+0x676C 0x9728
+0x676D 0x9726
+0x676E 0x97B3
+0x676F 0x97B7
+0x6770 0x97B6
+0x6771 0x97DD
+0x6772 0x97DE
+0x6773 0x97DF
+0x6774 0x985C
+0x6775 0x9859
+0x6776 0x985D
+0x6777 0x9857
+0x6778 0x98BF
+0x6779 0x98BD
+0x677A 0x98BB
+0x677B 0x98BE
+0x677C 0x9948
+0x677D 0x9947
+0x677E 0x9943
+0x6821 0x99A6
+0x6822 0x99A7
+0x6823 0x9A1A
+0x6824 0x9A15
+0x6825 0x9A25
+0x6826 0x9A1D
+0x6827 0x9A24
+0x6828 0x9A1B
+0x6829 0x9A22
+0x682A 0x9A20
+0x682B 0x9A27
+0x682C 0x9A23
+0x682D 0x9A1E
+0x682E 0x9A1C
+0x682F 0x9A14
+0x6830 0x9AC2
+0x6831 0x9B0B
+0x6832 0x9B0A
+0x6833 0x9B0E
+0x6834 0x9B0C
+0x6835 0x9B37
+0x6836 0x9BEA
+0x6837 0x9BEB
+0x6838 0x9BE0
+0x6839 0x9BDE
+0x683A 0x9BE4
+0x683B 0x9BE6
+0x683C 0x9BE2
+0x683D 0x9BF0
+0x683E 0x9BD4
+0x683F 0x9BD7
+0x6840 0x9BEC
+0x6841 0x9BDC
+0x6842 0x9BD9
+0x6843 0x9BE5
+0x6844 0x9BD5
+0x6845 0x9BE1
+0x6846 0x9BDA
+0x6847 0x9D77
+0x6848 0x9D81
+0x6849 0x9D8A
+0x684A 0x9D84
+0x684B 0x9D88
+0x684C 0x9D71
+0x684D 0x9D80
+0x684E 0x9D78
+0x684F 0x9D86
+0x6850 0x9D8B
+0x6851 0x9D8C
+0x6852 0x9D7D
+0x6853 0x9D6B
+0x6854 0x9D74
+0x6855 0x9D75
+0x6856 0x9D70
+0x6857 0x9D69
+0x6858 0x9D85
+0x6859 0x9D73
+0x685A 0x9D7B
+0x685B 0x9D82
+0x685C 0x9D6F
+0x685D 0x9D79
+0x685E 0x9D7F
+0x685F 0x9D87
+0x6860 0x9D68
+0x6861 0x9E94
+0x6862 0x9E91
+0x6863 0x9EC0
+0x6864 0x9EFC
+0x6865 0x9F2D
+0x6866 0x9F40
+0x6867 0x9F41
+0x6868 0x9F4D
+0x6869 0x9F56
+0x686A 0x9F57
+0x686B 0x9F58
+0x686C 0x5337
+0x686D 0x56B2
+0x686E 0x56B5
+0x686F 0x56B3
+0x6870 0x58E3
+0x6871 0x5B45
+0x6872 0x5DC6
+0x6873 0x5DC7
+0x6874 0x5EEE
+0x6875 0x5EEF
+0x6876 0x5FC0
+0x6877 0x5FC1
+0x6878 0x61F9
+0x6879 0x6517
+0x687A 0x6516
+0x687B 0x6515
+0x687C 0x6513
+0x687D 0x65DF
+0x687E 0x66E8
+0x6921 0x66E3
+0x6922 0x66E4
+0x6923 0x6AF3
+0x6924 0x6AF0
+0x6925 0x6AEA
+0x6926 0x6AE8
+0x6927 0x6AF9
+0x6928 0x6AF1
+0x6929 0x6AEE
+0x692A 0x6AEF
+0x692B 0x703C
+0x692C 0x7035
+0x692D 0x702F
+0x692E 0x7037
+0x692F 0x7034
+0x6930 0x7031
+0x6931 0x7042
+0x6932 0x7038
+0x6933 0x703F
+0x6934 0x703A
+0x6935 0x7039
+0x6936 0x7040
+0x6937 0x703B
+0x6938 0x7033
+0x6939 0x7041
+0x693A 0x7213
+0x693B 0x7214
+0x693C 0x72A8
+0x693D 0x737D
+0x693E 0x737C
+0x693F 0x74BA
+0x6940 0x76AB
+0x6941 0x76AA
+0x6942 0x76BE
+0x6943 0x76ED
+0x6944 0x77CC
+0x6945 0x77CE
+0x6946 0x77CF
+0x6947 0x77CD
+0x6948 0x77F2
+0x6949 0x7925
+0x694A 0x7923
+0x694B 0x7927
+0x694C 0x7928
+0x694D 0x7924
+0x694E 0x7929
+0x694F 0x79B2
+0x6950 0x7A6E
+0x6951 0x7A6C
+0x6952 0x7A6D
+0x6953 0x7AF7
+0x6954 0x7C49
+0x6955 0x7C48
+0x6956 0x7C4A
+0x6957 0x7C47
+0x6958 0x7C45
+0x6959 0x7CEE
+0x695A 0x7E7B
+0x695B 0x7E7E
+0x695C 0x7E81
+0x695D 0x7E80
+0x695E 0x7FBA
+0x695F 0x7FFF
+0x6960 0x8079
+0x6961 0x81DB
+0x6962 0x81D9
+0x6963 0x820B
+0x6964 0x8268
+0x6965 0x8269
+0x6966 0x8622
+0x6967 0x85FF
+0x6968 0x8601
+0x6969 0x85FE
+0x696A 0x861B
+0x696B 0x8600
+0x696C 0x85F6
+0x696D 0x8604
+0x696E 0x8609
+0x696F 0x8605
+0x6970 0x860C
+0x6971 0x85FD
+0x6972 0x8819
+0x6973 0x8810
+0x6974 0x8811
+0x6975 0x8817
+0x6976 0x8813
+0x6977 0x8816
+0x6978 0x8963
+0x6979 0x8966
+0x697A 0x89B9
+0x697B 0x89F7
+0x697C 0x8B60
+0x697D 0x8B6A
+0x697E 0x8B5D
+0x6A21 0x8B68
+0x6A22 0x8B63
+0x6A23 0x8B65
+0x6A24 0x8B67
+0x6A25 0x8B6D
+0x6A26 0x8DAE
+0x6A27 0x8E86
+0x6A28 0x8E88
+0x6A29 0x8E84
+0x6A2A 0x8F59
+0x6A2B 0x8F56
+0x6A2C 0x8F57
+0x6A2D 0x8F55
+0x6A2E 0x8F58
+0x6A2F 0x8F5A
+0x6A30 0x908D
+0x6A31 0x9143
+0x6A32 0x9141
+0x6A33 0x91B7
+0x6A34 0x91B5
+0x6A35 0x91B2
+0x6A36 0x91B3
+0x6A37 0x940B
+0x6A38 0x9413
+0x6A39 0x93FB
+0x6A3A 0x9420
+0x6A3B 0x940F
+0x6A3C 0x9414
+0x6A3D 0x93FE
+0x6A3E 0x9415
+0x6A3F 0x9410
+0x6A40 0x9428
+0x6A41 0x9419
+0x6A42 0x940D
+0x6A43 0x93F5
+0x6A44 0x9400
+0x6A45 0x93F7
+0x6A46 0x9407
+0x6A47 0x940E
+0x6A48 0x9416
+0x6A49 0x9412
+0x6A4A 0x93FA
+0x6A4B 0x9409
+0x6A4C 0x93F8
+0x6A4D 0x940A
+0x6A4E 0x93FF
+0x6A4F 0x93FC
+0x6A50 0x940C
+0x6A51 0x93F6
+0x6A52 0x9411
+0x6A53 0x9406
+0x6A54 0x95DE
+0x6A55 0x95E0
+0x6A56 0x95DF
+0x6A57 0x972E
+0x6A58 0x972F
+0x6A59 0x97B9
+0x6A5A 0x97BB
+0x6A5B 0x97FD
+0x6A5C 0x97FE
+0x6A5D 0x9860
+0x6A5E 0x9862
+0x6A5F 0x9863
+0x6A60 0x985F
+0x6A61 0x98C1
+0x6A62 0x98C2
+0x6A63 0x9950
+0x6A64 0x994E
+0x6A65 0x9959
+0x6A66 0x994C
+0x6A67 0x994B
+0x6A68 0x9953
+0x6A69 0x9A32
+0x6A6A 0x9A34
+0x6A6B 0x9A31
+0x6A6C 0x9A2C
+0x6A6D 0x9A2A
+0x6A6E 0x9A36
+0x6A6F 0x9A29
+0x6A70 0x9A2E
+0x6A71 0x9A38
+0x6A72 0x9A2D
+0x6A73 0x9AC7
+0x6A74 0x9ACA
+0x6A75 0x9AC6
+0x6A76 0x9B10
+0x6A77 0x9B12
+0x6A78 0x9B11
+0x6A79 0x9C0B
+0x6A7A 0x9C08
+0x6A7B 0x9BF7
+0x6A7C 0x9C05
+0x6A7D 0x9C12
+0x6A7E 0x9BF8
+0x6B21 0x9C40
+0x6B22 0x9C07
+0x6B23 0x9C0E
+0x6B24 0x9C06
+0x6B25 0x9C17
+0x6B26 0x9C14
+0x6B27 0x9C09
+0x6B28 0x9D9F
+0x6B29 0x9D99
+0x6B2A 0x9DA4
+0x6B2B 0x9D9D
+0x6B2C 0x9D92
+0x6B2D 0x9D98
+0x6B2E 0x9D90
+0x6B2F 0x9D9B
+0x6B30 0x9DA0
+0x6B31 0x9D94
+0x6B32 0x9D9C
+0x6B33 0x9DAA
+0x6B34 0x9D97
+0x6B35 0x9DA1
+0x6B36 0x9D9A
+0x6B37 0x9DA2
+0x6B38 0x9DA8
+0x6B39 0x9D9E
+0x6B3A 0x9DA3
+0x6B3B 0x9DBF
+0x6B3C 0x9DA9
+0x6B3D 0x9D96
+0x6B3E 0x9DA6
+0x6B3F 0x9DA7
+0x6B40 0x9E99
+0x6B41 0x9E9B
+0x6B42 0x9E9A
+0x6B43 0x9EE5
+0x6B44 0x9EE4
+0x6B45 0x9EE7
+0x6B46 0x9EE6
+0x6B47 0x9F30
+0x6B48 0x9F2E
+0x6B49 0x9F5B
+0x6B4A 0x9F60
+0x6B4B 0x9F5E
+0x6B4C 0x9F5D
+0x6B4D 0x9F59
+0x6B4E 0x9F91
+0x6B4F 0x513A
+0x6B50 0x5139
+0x6B51 0x5298
+0x6B52 0x5297
+0x6B53 0x56C3
+0x6B54 0x56BD
+0x6B55 0x56BE
+0x6B56 0x5B48
+0x6B57 0x5B47
+0x6B58 0x5DCB
+0x6B59 0x5DCF
+0x6B5A 0x5EF1
+0x6B5B 0x61FD
+0x6B5C 0x651B
+0x6B5D 0x6B02
+0x6B5E 0x6AFC
+0x6B5F 0x6B03
+0x6B60 0x6AF8
+0x6B61 0x6B00
+0x6B62 0x7043
+0x6B63 0x7044
+0x6B64 0x704A
+0x6B65 0x7048
+0x6B66 0x7049
+0x6B67 0x7045
+0x6B68 0x7046
+0x6B69 0x721D
+0x6B6A 0x721A
+0x6B6B 0x7219
+0x6B6C 0x737E
+0x6B6D 0x7517
+0x6B6E 0x766A
+0x6B6F 0x77D0
+0x6B70 0x792D
+0x6B71 0x7931
+0x6B72 0x792F
+0x6B73 0x7C54
+0x6B74 0x7C53
+0x6B75 0x7CF2
+0x6B76 0x7E8A
+0x6B77 0x7E87
+0x6B78 0x7E88
+0x6B79 0x7E8B
+0x6B7A 0x7E86
+0x6B7B 0x7E8D
+0x6B7C 0x7F4D
+0x6B7D 0x7FBB
+0x6B7E 0x8030
+0x6C21 0x81DD
+0x6C22 0x8618
+0x6C23 0x862A
+0x6C24 0x8626
+0x6C25 0x861F
+0x6C26 0x8623
+0x6C27 0x861C
+0x6C28 0x8619
+0x6C29 0x8627
+0x6C2A 0x862E
+0x6C2B 0x8621
+0x6C2C 0x8620
+0x6C2D 0x8629
+0x6C2E 0x861E
+0x6C2F 0x8625
+0x6C30 0x8829
+0x6C31 0x881D
+0x6C32 0x881B
+0x6C33 0x8820
+0x6C34 0x8824
+0x6C35 0x881C
+0x6C36 0x882B
+0x6C37 0x884A
+0x6C38 0x896D
+0x6C39 0x8969
+0x6C3A 0x896E
+0x6C3B 0x896B
+0x6C3C 0x89FA
+0x6C3D 0x8B79
+0x6C3E 0x8B78
+0x6C3F 0x8B45
+0x6C40 0x8B7A
+0x6C41 0x8B7B
+0x6C42 0x8D10
+0x6C43 0x8D14
+0x6C44 0x8DAF
+0x6C45 0x8E8E
+0x6C46 0x8E8C
+0x6C47 0x8F5E
+0x6C48 0x8F5B
+0x6C49 0x8F5D
+0x6C4A 0x9146
+0x6C4B 0x9144
+0x6C4C 0x9145
+0x6C4D 0x91B9
+0x6C4E 0x943F
+0x6C4F 0x943B
+0x6C50 0x9436
+0x6C51 0x9429
+0x6C52 0x943D
+0x6C53 0x943C
+0x6C54 0x9430
+0x6C55 0x9439
+0x6C56 0x942A
+0x6C57 0x9437
+0x6C58 0x942C
+0x6C59 0x9440
+0x6C5A 0x9431
+0x6C5B 0x95E5
+0x6C5C 0x95E4
+0x6C5D 0x95E3
+0x6C5E 0x9735
+0x6C5F 0x973A
+0x6C60 0x97BF
+0x6C61 0x97E1
+0x6C62 0x9864
+0x6C63 0x98C9
+0x6C64 0x98C6
+0x6C65 0x98C0
+0x6C66 0x9958
+0x6C67 0x9956
+0x6C68 0x9A39
+0x6C69 0x9A3D
+0x6C6A 0x9A46
+0x6C6B 0x9A44
+0x6C6C 0x9A42
+0x6C6D 0x9A41
+0x6C6E 0x9A3A
+0x6C6F 0x9A3F
+0x6C70 0x9ACD
+0x6C71 0x9B15
+0x6C72 0x9B17
+0x6C73 0x9B18
+0x6C74 0x9B16
+0x6C75 0x9B3A
+0x6C76 0x9B52
+0x6C77 0x9C2B
+0x6C78 0x9C1D
+0x6C79 0x9C1C
+0x6C7A 0x9C2C
+0x6C7B 0x9C23
+0x6C7C 0x9C28
+0x6C7D 0x9C29
+0x6C7E 0x9C24
+0x6D21 0x9C21
+0x6D22 0x9DB7
+0x6D23 0x9DB6
+0x6D24 0x9DBC
+0x6D25 0x9DC1
+0x6D26 0x9DC7
+0x6D27 0x9DCA
+0x6D28 0x9DCF
+0x6D29 0x9DBE
+0x6D2A 0x9DC5
+0x6D2B 0x9DC3
+0x6D2C 0x9DBB
+0x6D2D 0x9DB5
+0x6D2E 0x9DCE
+0x6D2F 0x9DB9
+0x6D30 0x9DBA
+0x6D31 0x9DAC
+0x6D32 0x9DC8
+0x6D33 0x9DB1
+0x6D34 0x9DAD
+0x6D35 0x9DCC
+0x6D36 0x9DB3
+0x6D37 0x9DCD
+0x6D38 0x9DB2
+0x6D39 0x9E7A
+0x6D3A 0x9E9C
+0x6D3B 0x9EEB
+0x6D3C 0x9EEE
+0x6D3D 0x9EED
+0x6D3E 0x9F1B
+0x6D3F 0x9F18
+0x6D40 0x9F1A
+0x6D41 0x9F31
+0x6D42 0x9F4E
+0x6D43 0x9F65
+0x6D44 0x9F64
+0x6D45 0x9F92
+0x6D46 0x4EB9
+0x6D47 0x56C6
+0x6D48 0x56C5
+0x6D49 0x56CB
+0x6D4A 0x5971
+0x6D4B 0x5B4B
+0x6D4C 0x5B4C
+0x6D4D 0x5DD5
+0x6D4E 0x5DD1
+0x6D4F 0x5EF2
+0x6D50 0x6521
+0x6D51 0x6520
+0x6D52 0x6526
+0x6D53 0x6522
+0x6D54 0x6B0B
+0x6D55 0x6B08
+0x6D56 0x6B09
+0x6D57 0x6C0D
+0x6D58 0x7055
+0x6D59 0x7056
+0x6D5A 0x7057
+0x6D5B 0x7052
+0x6D5C 0x721E
+0x6D5D 0x721F
+0x6D5E 0x72A9
+0x6D5F 0x737F
+0x6D60 0x74D8
+0x6D61 0x74D5
+0x6D62 0x74D9
+0x6D63 0x74D7
+0x6D64 0x766D
+0x6D65 0x76AD
+0x6D66 0x7935
+0x6D67 0x79B4
+0x6D68 0x7A70
+0x6D69 0x7A71
+0x6D6A 0x7C57
+0x6D6B 0x7C5C
+0x6D6C 0x7C59
+0x6D6D 0x7C5B
+0x6D6E 0x7C5A
+0x6D6F 0x7CF4
+0x6D70 0x7CF1
+0x6D71 0x7E91
+0x6D72 0x7F4F
+0x6D73 0x7F87
+0x6D74 0x81DE
+0x6D75 0x826B
+0x6D76 0x8634
+0x6D77 0x8635
+0x6D78 0x8633
+0x6D79 0x862C
+0x6D7A 0x8632
+0x6D7B 0x8636
+0x6D7C 0x882C
+0x6D7D 0x8828
+0x6D7E 0x8826
+0x6E21 0x882A
+0x6E22 0x8825
+0x6E23 0x8971
+0x6E24 0x89BF
+0x6E25 0x89BE
+0x6E26 0x89FB
+0x6E27 0x8B7E
+0x6E28 0x8B84
+0x6E29 0x8B82
+0x6E2A 0x8B86
+0x6E2B 0x8B85
+0x6E2C 0x8B7F
+0x6E2D 0x8D15
+0x6E2E 0x8E95
+0x6E2F 0x8E94
+0x6E30 0x8E9A
+0x6E31 0x8E92
+0x6E32 0x8E90
+0x6E33 0x8E96
+0x6E34 0x8E97
+0x6E35 0x8F60
+0x6E36 0x8F62
+0x6E37 0x9147
+0x6E38 0x944C
+0x6E39 0x9450
+0x6E3A 0x944A
+0x6E3B 0x944B
+0x6E3C 0x944F
+0x6E3D 0x9447
+0x6E3E 0x9445
+0x6E3F 0x9448
+0x6E40 0x9449
+0x6E41 0x9446
+0x6E42 0x973F
+0x6E43 0x97E3
+0x6E44 0x986A
+0x6E45 0x9869
+0x6E46 0x98CB
+0x6E47 0x9954
+0x6E48 0x995B
+0x6E49 0x9A4E
+0x6E4A 0x9A53
+0x6E4B 0x9A54
+0x6E4C 0x9A4C
+0x6E4D 0x9A4F
+0x6E4E 0x9A48
+0x6E4F 0x9A4A
+0x6E50 0x9A49
+0x6E51 0x9A52
+0x6E52 0x9A50
+0x6E53 0x9AD0
+0x6E54 0x9B19
+0x6E55 0x9B2B
+0x6E56 0x9B3B
+0x6E57 0x9B56
+0x6E58 0x9B55
+0x6E59 0x9C46
+0x6E5A 0x9C48
+0x6E5B 0x9C3F
+0x6E5C 0x9C44
+0x6E5D 0x9C39
+0x6E5E 0x9C33
+0x6E5F 0x9C41
+0x6E60 0x9C3C
+0x6E61 0x9C37
+0x6E62 0x9C34
+0x6E63 0x9C32
+0x6E64 0x9C3D
+0x6E65 0x9C36
+0x6E66 0x9DDB
+0x6E67 0x9DD2
+0x6E68 0x9DDE
+0x6E69 0x9DDA
+0x6E6A 0x9DCB
+0x6E6B 0x9DD0
+0x6E6C 0x9DDC
+0x6E6D 0x9DD1
+0x6E6E 0x9DDF
+0x6E6F 0x9DE9
+0x6E70 0x9DD9
+0x6E71 0x9DD8
+0x6E72 0x9DD6
+0x6E73 0x9DF5
+0x6E74 0x9DD5
+0x6E75 0x9DDD
+0x6E76 0x9EB6
+0x6E77 0x9EF0
+0x6E78 0x9F35
+0x6E79 0x9F33
+0x6E7A 0x9F32
+0x6E7B 0x9F42
+0x6E7C 0x9F6B
+0x6E7D 0x9F95
+0x6E7E 0x9FA2
+0x6F21 0x513D
+0x6F22 0x5299
+0x6F23 0x58E8
+0x6F24 0x58E7
+0x6F25 0x5972
+0x6F26 0x5B4D
+0x6F27 0x5DD8
+0x6F28 0x882F
+0x6F29 0x5F4F
+0x6F2A 0x6201
+0x6F2B 0x6203
+0x6F2C 0x6204
+0x6F2D 0x6529
+0x6F2E 0x6525
+0x6F2F 0x6596
+0x6F30 0x66EB
+0x6F31 0x6B11
+0x6F32 0x6B12
+0x6F33 0x6B0F
+0x6F34 0x6BCA
+0x6F35 0x705B
+0x6F36 0x705A
+0x6F37 0x7222
+0x6F38 0x7382
+0x6F39 0x7381
+0x6F3A 0x7383
+0x6F3B 0x7670
+0x6F3C 0x77D4
+0x6F3D 0x7C67
+0x6F3E 0x7C66
+0x6F3F 0x7E95
+0x6F40 0x826C
+0x6F41 0x863A
+0x6F42 0x8640
+0x6F43 0x8639
+0x6F44 0x863C
+0x6F45 0x8631
+0x6F46 0x863B
+0x6F47 0x863E
+0x6F48 0x8830
+0x6F49 0x8832
+0x6F4A 0x882E
+0x6F4B 0x8833
+0x6F4C 0x8976
+0x6F4D 0x8974
+0x6F4E 0x8973
+0x6F4F 0x89FE
+0x6F50 0x8B8C
+0x6F51 0x8B8E
+0x6F52 0x8B8B
+0x6F53 0x8B88
+0x6F54 0x8C45
+0x6F55 0x8D19
+0x6F56 0x8E98
+0x6F57 0x8F64
+0x6F58 0x8F63
+0x6F59 0x91BC
+0x6F5A 0x9462
+0x6F5B 0x9455
+0x6F5C 0x945D
+0x6F5D 0x9457
+0x6F5E 0x945E
+0x6F5F 0x97C4
+0x6F60 0x97C5
+0x6F61 0x9800
+0x6F62 0x9A56
+0x6F63 0x9A59
+0x6F64 0x9B1E
+0x6F65 0x9B1F
+0x6F66 0x9B20
+0x6F67 0x9C52
+0x6F68 0x9C58
+0x6F69 0x9C50
+0x6F6A 0x9C4A
+0x6F6B 0x9C4D
+0x6F6C 0x9C4B
+0x6F6D 0x9C55
+0x6F6E 0x9C59
+0x6F6F 0x9C4C
+0x6F70 0x9C4E
+0x6F71 0x9DFB
+0x6F72 0x9DF7
+0x6F73 0x9DEF
+0x6F74 0x9DE3
+0x6F75 0x9DEB
+0x6F76 0x9DF8
+0x6F77 0x9DE4
+0x6F78 0x9DF6
+0x6F79 0x9DE1
+0x6F7A 0x9DEE
+0x6F7B 0x9DE6
+0x6F7C 0x9DF2
+0x6F7D 0x9DF0
+0x6F7E 0x9DE2
+0x7021 0x9DEC
+0x7022 0x9DF4
+0x7023 0x9DF3
+0x7024 0x9DE8
+0x7025 0x9DED
+0x7026 0x9EC2
+0x7027 0x9ED0
+0x7028 0x9EF2
+0x7029 0x9EF3
+0x702A 0x9F06
+0x702B 0x9F1C
+0x702C 0x9F38
+0x702D 0x9F37
+0x702E 0x9F36
+0x702F 0x9F43
+0x7030 0x9F4F
+0x7031 0x9F71
+0x7032 0x9F70
+0x7033 0x9F6E
+0x7034 0x9F6F
+0x7035 0x56D3
+0x7036 0x56CD
+0x7037 0x5B4E
+0x7038 0x5C6D
+0x7039 0x652D
+0x703A 0x66ED
+0x703B 0x66EE
+0x703C 0x6B13
+0x703D 0x705F
+0x703E 0x7061
+0x703F 0x705D
+0x7040 0x7060
+0x7041 0x7223
+0x7042 0x74DB
+0x7043 0x74E5
+0x7044 0x77D5
+0x7045 0x7938
+0x7046 0x79B7
+0x7047 0x79B6
+0x7048 0x7C6A
+0x7049 0x7E97
+0x704A 0x7F89
+0x704B 0x826D
+0x704C 0x8643
+0x704D 0x8838
+0x704E 0x8837
+0x704F 0x8835
+0x7050 0x884B
+0x7051 0x8B94
+0x7052 0x8B95
+0x7053 0x8E9E
+0x7054 0x8E9F
+0x7055 0x8EA0
+0x7056 0x8E9D
+0x7057 0x91BE
+0x7058 0x91BD
+0x7059 0x91C2
+0x705A 0x946B
+0x705B 0x9468
+0x705C 0x9469
+0x705D 0x96E5
+0x705E 0x9746
+0x705F 0x9743
+0x7060 0x9747
+0x7061 0x97C7
+0x7062 0x97E5
+0x7063 0x9A5E
+0x7064 0x9AD5
+0x7065 0x9B59
+0x7066 0x9C63
+0x7067 0x9C67
+0x7068 0x9C66
+0x7069 0x9C62
+0x706A 0x9C5E
+0x706B 0x9C60
+0x706C 0x9E02
+0x706D 0x9DFE
+0x706E 0x9E07
+0x706F 0x9E03
+0x7070 0x9E06
+0x7071 0x9E05
+0x7072 0x9E00
+0x7073 0x9E01
+0x7074 0x9E09
+0x7075 0x9DFF
+0x7076 0x9DFD
+0x7077 0x9E04
+0x7078 0x9EA0
+0x7079 0x9F1E
+0x707A 0x9F46
+0x707B 0x9F74
+0x707C 0x9F75
+0x707D 0x9F76
+0x707E 0x56D4
+0x7121 0x652E
+0x7122 0x65B8
+0x7123 0x6B18
+0x7124 0x6B19
+0x7125 0x6B17
+0x7126 0x6B1A
+0x7127 0x7062
+0x7128 0x7226
+0x7129 0x72AA
+0x712A 0x77D8
+0x712B 0x77D9
+0x712C 0x7939
+0x712D 0x7C69
+0x712E 0x7C6B
+0x712F 0x7CF6
+0x7130 0x7E9A
+0x7131 0x7E98
+0x7132 0x7E9B
+0x7133 0x7E99
+0x7134 0x81E0
+0x7135 0x81E1
+0x7136 0x8646
+0x7137 0x8647
+0x7138 0x8648
+0x7139 0x8979
+0x713A 0x897A
+0x713B 0x897C
+0x713C 0x897B
+0x713D 0x89FF
+0x713E 0x8B98
+0x713F 0x8B99
+0x7140 0x8EA5
+0x7141 0x8EA4
+0x7142 0x8EA3
+0x7143 0x946E
+0x7144 0x946D
+0x7145 0x946F
+0x7146 0x9471
+0x7147 0x9473
+0x7148 0x9749
+0x7149 0x9872
+0x714A 0x995F
+0x714B 0x9C68
+0x714C 0x9C6E
+0x714D 0x9C6D
+0x714E 0x9E0B
+0x714F 0x9E0D
+0x7150 0x9E10
+0x7151 0x9E0F
+0x7152 0x9E12
+0x7153 0x9E11
+0x7154 0x9EA1
+0x7155 0x9EF5
+0x7156 0x9F09
+0x7157 0x9F47
+0x7158 0x9F78
+0x7159 0x9F7B
+0x715A 0x9F7A
+0x715B 0x9F79
+0x715C 0x571E
+0x715D 0x7066
+0x715E 0x7C6F
+0x715F 0x883C
+0x7160 0x8DB2
+0x7161 0x8EA6
+0x7162 0x91C3
+0x7163 0x9474
+0x7164 0x9478
+0x7165 0x9476
+0x7166 0x9475
+0x7167 0x9A60
+0x7168 0x9C74
+0x7169 0x9C73
+0x716A 0x9C71
+0x716B 0x9C75
+0x716C 0x9E14
+0x716D 0x9E13
+0x716E 0x9EF6
+0x716F 0x9F0A
+0x7170 0x9FA4
+0x7171 0x7068
+0x7172 0x7065
+0x7173 0x7CF7
+0x7174 0x866A
+0x7175 0x883E
+0x7176 0x883D
+0x7177 0x883F
+0x7178 0x8B9E
+0x7179 0x8C9C
+0x717A 0x8EA9
+0x717B 0x8EC9
+0x717C 0x974B
+0x717D 0x9873
+0x717E 0x9874
+0x7221 0x98CC
+0x7222 0x9961
+0x7223 0x99AB
+0x7224 0x9A64
+0x7225 0x9A66
+0x7226 0x9A67
+0x7227 0x9B24
+0x7228 0x9E15
+0x7229 0x9E17
+0x722A 0x9F48
+0x722B 0x6207
+0x722C 0x6B1E
+0x722D 0x7227
+0x722E 0x864C
+0x722F 0x8EA8
+0x7230 0x9482
+0x7231 0x9480
+0x7232 0x9481
+0x7233 0x9A69
+0x7234 0x9A68
+0x7235 0x9B2E
+0x7236 0x9E19
+0x7237 0x7229
+0x7238 0x864B
+0x7239 0x8B9F
+0x723A 0x9483
+0x723B 0x9C79
+0x723C 0x9EB7
+0x723D 0x7675
+0x723E 0x9A6B
+0x723F 0x9C7A
+0x7240 0x9E1D
+0x7241 0x7069
+0x7242 0x706A
+0x7243 0x9EA4
+0x7244 0x9F7E
+0x7245 0x9F49
+0x7246 0x9F98
+0x7247 0x7881
+0x7248 0x92B9
+0x7249 0x88CF
+0x724A 0x58BB
+0x724B 0x6052
+0x724C 0x7CA7
+0x724D 0x5AFA
+0x724E 0x2554
+0x724F 0x2566
+0x7250 0x2557
+0x7251 0x2560
+0x7252 0x256C
+0x7253 0x2563
+0x7254 0x255A
+0x7255 0x2569
+0x7256 0x255D
+0x7257 0x2552
+0x7258 0x2564
+0x7259 0x2555
+0x725D 0x2558
+0x725E 0x2567
+0x725F 0x255B
+0x7260 0x2553
+0x7261 0x2565
+0x7262 0x2556
+0x7263 0x255F
+0x7264 0x256B
+0x7265 0x2562
+0x7266 0x2559
+0x7267 0x2568
+0x7268 0x255C
+0x7269 0x2551
+0x726F 0x2593
diff --git a/etc/charsets/BIG5-HKSCS.map b/etc/charsets/BIG5-HKSCS.map
new file mode 100644 (file)
index 0000000..4d7f87a
--- /dev/null
@@ -0,0 +1,16933 @@
+# Generated from glibc-2.3.2/localedata/charmaps/BIG5-HKSCS
+0x8840-0x8855 0xF303
+0x8856 0x0100
+0x8857 0x00C1
+0x8858 0x01CD
+0x8859 0x00C0
+0x885A 0x0112
+0x885B 0x00C9
+0x885C 0x011A
+0x885D 0x00C8
+0x885E 0x014C
+0x885F 0x00D3
+0x8860 0x01D1
+0x8861 0x00D2
+0x8862 0xF325
+0x8863 0x1EBE
+0x8864 0xF327
+0x8865 0x1EC0
+0x8866 0x00CA
+0x8867 0x0101
+0x8868 0x00E1
+0x8869 0x01CE
+0x886A 0x00E0
+0x886B 0x0251
+0x886C 0x0113
+0x886D 0x00E9
+0x886E 0x011B
+0x886F 0x00E8
+0x8870 0x012B
+0x8871 0x00ED
+0x8872 0x01D0
+0x8873 0x00EC
+0x8874 0x014D
+0x8875 0x00F3
+0x8876 0x01D2
+0x8877 0x00F2
+0x8878 0x016B
+0x8879 0x00FA
+0x887A 0x01D4
+0x887B 0x00F9
+0x887C 0x01D6
+0x887D 0x01D8
+0x887E 0x01DA
+0x88A1 0x01DC
+0x88A2 0x00FC
+0x88A3 0xF344
+0x88A4 0x1EBF
+0x88A5 0xF346
+0x88A6 0x1EC1
+0x88A7 0x00EA
+0x88A8 0x0261
+0x88A9-0x88AA 0xF34A
+0x8940 0x2A3A9
+0x8941 0xF3A1
+0x8943 0x650A
+0x8946 0x4E3D
+0x8947 0x6EDD
+0x8948 0x9D4E
+0x8949 0x91DF
+0x894C 0x27735
+0x894D 0x6491
+0x894E 0x4F1A
+0x894F 0x4F28
+0x8950 0x4FA8
+0x8951 0x5156
+0x8952 0x5174
+0x8953 0x519C
+0x8954 0x51E4
+0x8955 0x52A1
+0x8956 0x52A8
+0x8957 0x533B
+0x8958 0x534E
+0x8959 0x53D1
+0x895A 0x53D8
+0x895B 0x56E2
+0x895C 0x58F0
+0x895D 0x5904
+0x895E 0x5907
+0x895F 0x5932
+0x8960 0x5934
+0x8961 0x5B66
+0x8962-0x8963 0x5B9E
+0x8964 0x5C9A
+0x8965 0x5E86
+0x8966 0x603B
+0x8967 0x6589
+0x8968 0x67FE
+0x8969 0x6804
+0x896A 0x6865
+0x896B 0x6D4E
+0x896C 0x70BC
+0x896D 0x7535
+0x896E 0x7EA4
+0x896F 0x7EAC
+0x8970 0x7EBA
+0x8971 0x7EC7
+0x8972 0x7ECF
+0x8973 0x7EDF
+0x8974 0x7F06
+0x8975 0x7F37
+0x8976 0x827A
+0x8977 0x82CF
+0x8978 0x836F
+0x8979 0x89C6
+0x897A 0x8BBE
+0x897B 0x8BE2
+0x897C-0x897D 0x8F66
+0x897E 0x8F6E
+0x89A1 0x7411
+0x89A2 0x7CFC
+0x89A3 0x7DCD
+0x89A4 0x6946
+0x89A5 0x7AC9
+0x89A6 0x5227
+0x89AB 0x918C
+0x89AC 0x78B8
+0x89AD 0x915E
+0x89AE 0x80BC
+0x89B0 0x8D0B
+0x89B1 0x80F6
+0x89B2 0xF3F0
+0x89B5 0x809F
+0x89B6 0x9EC7
+0x89B7 0x4CCD
+0x89B8 0x9DC9
+0x89B9 0x9E0C
+0x89BA 0x4C3E
+0x89BB 0xF3F9
+0x89BC 0x2700E
+0x89BD 0x9E0A
+0x89BE 0xF3FC
+0x89BF 0x35C1
+0x89C1 0x6E9A
+0x89C2 0x823E
+0x89C3 0x7519
+0x89C5 0x4911
+0x89C6 0x9A6C
+0x89C7 0x9A8F
+0x89C8 0x9F99
+0x89C9 0x7987
+0x89CA 0xF408
+0x89CB 0x21DCA
+0x89CC 0x205D0
+0x89CD 0xF40B
+0x89CE 0x4E24
+0x89CF 0x4E81
+0x89D0 0x4E80
+0x89D1 0x4E87
+0x89D2 0x4EBF
+0x89D3 0x4EEB
+0x89D4 0x4F37
+0x89D5 0x344C
+0x89D6 0x4FBD
+0x89D7 0x3E48
+0x89D8 0x5003
+0x89D9 0x5088
+0x89DA 0x347D
+0x89DB 0x3493
+0x89DC 0x34A5
+0x89DD 0x5186
+0x89DE 0x5905
+0x89DF 0x51DB
+0x89E0 0x51FC
+0x89E1 0x5205
+0x89E2 0x4E89
+0x89E3 0x5279
+0x89E4 0x5290
+0x89E5 0x5327
+0x89E6 0x35C7
+0x89E7 0x53A9
+0x89E8 0x3551
+0x89E9 0x53B0
+0x89EA 0x3553
+0x89EB 0x53C2
+0x89EC 0x5423
+0x89ED 0x356D
+0x89EE 0x3572
+0x89EF 0x3681
+0x89F0 0x5493
+0x89F1 0x54A3
+0x89F2 0x54B4
+0x89F3 0x54B9
+0x89F4 0x54D0
+0x89F5 0x54EF
+0x89F6 0x5518
+0x89F7 0x5523
+0x89F8 0x5528
+0x89F9 0x3598
+0x89FA 0x553F
+0x89FB 0x35A5
+0x89FC 0x35BF
+0x89FD 0x55D7
+0x89FE 0x35C5
+0x8A40 0xF43D
+0x8A41 0x5525
+0x8A43 0x20C42
+0x8A44-0x8A45 0xF441
+0x8A46 0x5590
+0x8A47 0x22CC6
+0x8A48 0x39EC
+0x8A49 0x20341
+0x8A4A 0x8E46
+0x8A4B 0x24DB8
+0x8A4C 0xF449
+0x8A4D 0x4053
+0x8A4E 0x280BE
+0x8A4F 0x777A
+0x8A50 0xF44D
+0x8A51 0x3A34
+0x8A52 0x47D5
+0x8A53 0xF450
+0x8A54 0x269F2
+0x8A55 0x24DEA
+0x8A56 0x64DD
+0x8A57 0xF454
+0x8A58 0x20FB4
+0x8A59 0x20CD5
+0x8A5A 0x210F4
+0x8A5B 0x648D
+0x8A5C 0x8E7E
+0x8A5D-0x8A60 0xF45A
+0x8A61 0x28256
+0x8A62 0x244D3
+0x8A64 0x20D46
+0x8A65 0xF462
+0x8A66 0x280E9
+0x8A67 0x47F4
+0x8A68-0x8A69 0xF465
+0x8A6A 0x9AB2
+0x8A6B 0x3A67
+0x8A6C 0xF469
+0x8A6D 0x3FED
+0x8A6E 0x3506
+0x8A6F 0x252C7
+0x8A70-0x8A72 0xF46D
+0x8A73 0x9D6E
+0x8A74 0x9815
+0x8A76 0x43D9
+0x8A77 0x260A5
+0x8A78 0x64B4
+0x8A79 0x54E3
+0x8A7A-0x8A7B 0xF477
+0x8A7C 0x21077
+0x8A7D 0x39FB
+0x8A7E 0x2106F
+0x8AA1-0x8AA3 0xF47C
+0x8AA4 0x64EA
+0x8AA5 0xF480
+0x8AA6 0x20C43
+0x8AA7 0x8E68
+0x8AA8 0x221A1
+0x8AA9 0x28B4C
+0x8AAA 0xF485
+0x8AAC 0x480B
+0x8AAD 0xF488
+0x8AAE 0x3FFA
+0x8AAF 0x5873
+0x8AB0 0xF48B
+0x8AB2 0xF48D
+0x8AB3 0x204FC
+0x8AB4-0x8AB6 0xF48F
+0x8AB7 0x5579
+0x8AB8 0x40BB
+0x8AB9 0x43BA
+0x8ABB 0x4AB4
+0x8ABC-0x8ABD 0xF497
+0x8ABE 0x81AA
+0x8ABF 0x98F5
+0x8AC0 0xF49B
+0x8AC1 0x6379
+0x8AC2 0x39FE
+0x8AC3 0x22775
+0x8AC4 0x8DC0
+0x8AC5 0x56A1
+0x8AC6 0x647C
+0x8AC7 0x3E43
+0x8AC9 0xF4A4
+0x8ACA 0x20E09
+0x8ACB 0x22ACF
+0x8ACC 0xF4A7
+0x8ACE 0x210C8
+0x8ACF 0xF4AA
+0x8AD0 0x3992
+0x8AD1 0x3A06
+0x8AD2 0xF4AD
+0x8AD3 0x3578
+0x8AD4 0xF4AF
+0x8AD5 0x220C7
+0x8AD6 0x5652
+0x8AD7 0x20F31
+0x8AD8-0x8AD9 0xF4B3
+0x8ADA 0x34BC
+0x8ADB 0x6C3D
+0x8ADC 0xF4B7
+0x8ADF-0x8AE2 0xF4BA
+0x8AE3 0x28CCD
+0x8AE4 0x20E7A
+0x8AE5-0x8AE6 0xF4C0
+0x8AE7 0x7F93
+0x8AE8 0xF4C3
+0x8AE9 0x22803
+0x8AEA 0x22939
+0x8AEB 0x35FB
+0x8AEC 0x251E3
+0x8AED 0xF4C8
+0x8AEE 0x20F8D
+0x8AEF 0x20EAA
+0x8AF0 0x3F93
+0x8AF1 0x20F30
+0x8AF2 0x20D47
+0x8AF3-0x8AF4 0xF4CE
+0x8AF6 0x20EAB
+0x8AF7 0xF4D2
+0x8AF8 0x20D48
+0x8AF9 0x210C0
+0x8AFA 0x2113D
+0x8AFB 0x3FF9
+0x8AFC 0x22696
+0x8AFD 0x6432
+0x8AFE 0x20FAD
+0x8B40 0x233F4
+0x8B41 0x27639
+0x8B42 0x22BCE
+0x8B43-0x8B44 0x20D7E
+0x8B45 0x22C51
+0x8B46 0x22C55
+0x8B47 0x3A18
+0x8B48 0xF4E2
+0x8B49 0x210C7
+0x8B4A 0x20F2E
+0x8B4B 0xF4E5
+0x8B4C 0x26B50
+0x8B4D-0x8B4F 0xF4E7
+0x8B50 0x95AA
+0x8B51 0x54CC
+0x8B52 0x82C4
+0x8B53 0x55B9
+0x8B55 0x29EC3
+0x8B56 0x9C26
+0x8B57 0x9AB6
+0x8B58 0x2775E
+0x8B59 0xF4F3
+0x8B5A 0x7140
+0x8B5B 0x816D
+0x8B5C 0x80EC
+0x8B5D 0x5C1C
+0x8B5E 0x26572
+0x8B5F 0x8134
+0x8B60 0x3797
+0x8B61 0x535F
+0x8B62 0x280BD
+0x8B63 0x91B6
+0x8B64 0x20EFA
+0x8B65 0x20E0F
+0x8B66 0x20E77
+0x8B67 0x20EFB
+0x8B68 0x35DD
+0x8B69 0x24DEB
+0x8B6A 0x3609
+0x8B6B 0x20CD6
+0x8B6C 0x56AF
+0x8B6D 0x227B5
+0x8B6E 0x210C9
+0x8B6F 0x20E10
+0x8B70 0x20E78
+0x8B71 0x21078
+0x8B72 0x21148
+0x8B73 0x28207
+0x8B74 0x21455
+0x8B75 0x20E79
+0x8B76 0x24E50
+0x8B77 0x22DA4
+0x8B78 0x5A54
+0x8B79-0x8B7A 0x2101D
+0x8B7B-0x8B7C 0x210F5
+0x8B7D 0x579C
+0x8B7E 0x20E11
+0x8BA1 0x27694
+0x8BA2 0x282CD
+0x8BA3 0x20FB5
+0x8BA4 0x20E7B
+0x8BA5 0x2517E
+0x8BA6 0x3703
+0x8BA7 0x20FB6
+0x8BA8 0x21180
+0x8BA9 0x252D8
+0x8BAA-0x8BAB 0xF522
+0x8BAC 0x2183A
+0x8BAD-0x8BAE 0xF525
+0x8BAF 0x5899
+0x8BB0 0x5268
+0x8BB1 0x361A
+0x8BB2 0xF52A
+0x8BB3 0x7BB2
+0x8BB4 0x5B68
+0x8BB5 0x4800
+0x8BB6 0x4B2C
+0x8BB7 0x9F27
+0x8BB8 0x49E7
+0x8BB9 0x9C1F
+0x8BBA 0x9B8D
+0x8BBB 0x25B74
+0x8BBC 0x2313D
+0x8BBD 0x55FB
+0x8BBE 0x35F2
+0x8BBF 0x5689
+0x8BC0 0x4E28
+0x8BC1 0x5902
+0x8BC2-0x8BC3 0xF53A
+0x8BC4 0x9751
+0x8BC5 0xF53D
+0x8BC6 0x4E5B
+0x8BC7 0x4EBB
+0x8BC8 0x353E
+0x8BC9 0x5C23
+0x8BCA 0x5F51
+0x8BCB 0x5FC4
+0x8BCC 0x38FA
+0x8BCD 0x624C
+0x8BCE 0x6535
+0x8BCF 0x6B7A
+0x8BD0 0x6C35
+0x8BD1 0x6C3A
+0x8BD2 0x706C
+0x8BD3 0x722B
+0x8BD4 0x4E2C
+0x8BD5 0x72AD
+0x8BD6 0xF54E
+0x8BD7 0x7F52
+0x8BD8 0x793B
+0x8BD9 0x7CF9
+0x8BDA 0x7F53
+0x8BDB 0xF553
+0x8BDC 0x34C1
+0x8BDE 0xF556
+0x8BDF 0x8002
+0x8BE0 0x8080
+0x8BE1-0x8BE2 0xF559
+0x8BE3 0x535D
+0x8BE4 0x8864
+0x8BE5 0x89C1
+0x8BE6 0xF55E
+0x8BE7 0x8BA0
+0x8BE8 0x8D1D
+0x8BE9 0x9485
+0x8BEA 0x9578
+0x8BEB 0x957F
+0x8BEC 0x95E8
+0x8BED 0xF565
+0x8BEE 0x97E6
+0x8BEF 0x9875
+0x8BF0 0x98CE
+0x8BF1 0x98DE
+0x8BF2 0x9963
+0x8BF3 0xF56B
+0x8BF4 0x9C7C
+0x8BF5 0x9E1F
+0x8BF6 0x9EC4
+0x8BF7 0x6B6F
+0x8BF9 0x4E37
+0x8BFA 0xF572
+0x8BFB 0x961D
+0x8BFC 0x6237
+0x8BFD 0x94A2
+0x8D60 0x5D3E
+0x8D61 0x5D48
+0x8D62 0x5D56
+0x8D63 0x3DFC
+0x8D64 0x380F
+0x8D65 0x5DA4
+0x8D66 0x5DB9
+0x8D67 0x3820
+0x8D68 0x3838
+0x8D69 0x5E42
+0x8D6A 0x5EBD
+0x8D6B 0x5F25
+0x8D6C 0x5F83
+0x8D6D 0x3908
+0x8D6E 0x3914
+0x8D6F 0x393F
+0x8D70 0x394D
+0x8D71 0x60D7
+0x8D72 0x613D
+0x8D73 0x5CE5
+0x8D74 0x3989
+0x8D75 0x61B7
+0x8D76 0x61B9
+0x8D77 0x61CF
+0x8D78 0x39B8
+0x8D79 0x622C
+0x8D7A 0x6290
+0x8D7B 0x62E5
+0x8D7C 0x6318
+0x8D7D 0x39F8
+0x8D7E 0x56B1
+0x8DA1 0x3A03
+0x8DA2 0x63E2
+0x8DA3 0x63FB
+0x8DA4 0x6407
+0x8DA5 0x645A
+0x8DA6 0x3A4B
+0x8DA7 0x64C0
+0x8DA8 0x5D15
+0x8DA9 0x5621
+0x8DAA 0x9F9F
+0x8DAB 0x3A97
+0x8DAC 0x6586
+0x8DAD 0x3ABD
+0x8DAE 0x65FF
+0x8DAF 0x6653
+0x8DB0 0x3AF2
+0x8DB1 0x6692
+0x8DB2 0x3B22
+0x8DB3 0x6716
+0x8DB4 0x3B42
+0x8DB5 0x67A4
+0x8DB6 0x6800
+0x8DB7 0x3B58
+0x8DB8 0x684A
+0x8DB9 0x6884
+0x8DBA 0x3B72
+0x8DBB 0x3B71
+0x8DBC 0x3B7B
+0x8DBD 0x6909
+0x8DBE 0x6943
+0x8DBF 0x725C
+0x8DC0 0x6964
+0x8DC1 0x699F
+0x8DC2 0x6985
+0x8DC3 0x3BBC
+0x8DC4 0x69D6
+0x8DC5 0x3BDD
+0x8DC6 0x6A65
+0x8DC7 0x6A74
+0x8DC8 0x6A71
+0x8DC9 0x6A82
+0x8DCA 0x3BEC
+0x8DCB 0x6A99
+0x8DCC 0x3BF2
+0x8DCD 0x6AAB
+0x8DCE 0x6AB5
+0x8DCF 0x6AD4
+0x8DD0 0x6AF6
+0x8DD1 0x6B81
+0x8DD2 0x6BC1
+0x8DD3 0x6BEA
+0x8DD4 0x6C75
+0x8DD5 0x6CAA
+0x8DD6 0x3CCB
+0x8DD7 0x6D02
+0x8DD8 0x6D06
+0x8DD9 0x6D26
+0x8DDA 0x6D81
+0x8DDB 0x3CEF
+0x8DDC 0x6DA4
+0x8DDD 0x6DB1
+0x8DDE 0x6E15
+0x8DDF 0x6E18
+0x8DE0 0x6E29
+0x8DE1 0x6E86
+0x8DE2 0x289C0
+0x8DE3 0x6EBB
+0x8DE4 0x6EE2
+0x8DE5 0x6EDA
+0x8DE6 0x9F7F
+0x8DE7-0x8DE8 0x6EE8
+0x8DE9 0x6F24
+0x8DEA 0x6F34
+0x8DEB 0x3D46
+0x8DEC 0x23F41
+0x8DED 0x6F81
+0x8DEE 0x6FBE
+0x8DEF 0x3D6A
+0x8DF0 0x3D75
+0x8DF1 0x71B7
+0x8DF2 0x5C99
+0x8DF3 0x3D8A
+0x8DF4 0x702C
+0x8DF5 0x3D91
+0x8DF6 0x7050
+0x8DF7 0x7054
+0x8DF8 0x706F
+0x8DF9 0x707F
+0x8DFA 0x7089
+0x8DFB 0x20325
+0x8DFC 0x43C1
+0x8DFD 0x35F1
+0x8DFE 0xF6B0
+0x8E40 0xE311
+0x8E41 0x57BE
+0x8E42 0x26ED3
+0x8E43 0x713E
+0x8E44 0x257E0
+0x8E45 0x364E
+0x8E46 0x69A2
+0x8E47 0x28BE9
+0x8E48 0x5B74
+0x8E49 0x7A49
+0x8E4A 0x258E1
+0x8E4B 0x294D9
+0x8E4C 0x7A65
+0x8E4D 0x7A7D
+0x8E4E 0x259AC
+0x8E4F 0x7ABB
+0x8E50 0x7AB0
+0x8E51-0x8E52 0x7AC2
+0x8E53 0x71D1
+0x8E54 0xE325
+0x8E55 0x41CA
+0x8E56 0x7ADA
+0x8E57 0x7ADD
+0x8E58 0x7AEA
+0x8E59 0x41EF
+0x8E5A 0x54B2
+0x8E5B 0x25C01
+0x8E5C 0x7B0B
+0x8E5D 0x7B55
+0x8E5E 0x7B29
+0x8E5F 0xE330
+0x8E60 0x25CFE
+0x8E61 0x7BA2
+0x8E62 0x7B6F
+0x8E63 0x839C
+0x8E64 0x25BB4
+0x8E65 0x26C7F
+0x8E66 0x7BD0
+0x8E67 0x8421
+0x8E68 0x7B92
+0x8E6A 0x23FF0
+0x8E6B 0x3DAD
+0x8E6C 0x25C65
+0x8E6D 0x8492
+0x8E6E 0x7BFA
+0x8E70 0x7C35
+0x8E71 0x25CC1
+0x8E72 0x7C44
+0x8E73 0x7C83
+0x8E74 0xE345
+0x8E75 0x7CA6
+0x8E76 0x667D
+0x8E77 0x24578
+0x8E78 0x7CC9
+0x8E79 0x7CC7
+0x8E7A 0x7CE6
+0x8E7B 0x7C74
+0x8E7C 0x7CF3
+0x8E7D 0x7CF5
+0x8EA1 0x7E67
+0x8EA2 0x451D
+0x8EA3 0x26E44
+0x8EA4 0x7D5D
+0x8EA5 0x26ED6
+0x8EA6 0x748D
+0x8EA7 0x7D89
+0x8EA8 0x7DAB
+0x8EA9 0x7135
+0x8EAA 0x7DB3
+0x8EAC 0x24057
+0x8EAD 0x26029
+0x8EAE 0x7DE4
+0x8EAF 0x3D13
+0x8EB0 0x7DF5
+0x8EB1 0x217F9
+0x8EB2 0x7DE5
+0x8EB3 0xE362
+0x8EB5 0x26121
+0x8EB6 0x2615A
+0x8EB7 0x7E6E
+0x8EB8 0x7E92
+0x8EB9 0x432B
+0x8EBA 0x946C
+0x8EBB 0x7E27
+0x8EBC-0x8EBD 0x7F40
+0x8EBE 0x7F47
+0x8EBF 0x7936
+0x8EC0 0x262D0
+0x8EC1 0x99E1
+0x8EC2 0x7F97
+0x8EC3 0x26351
+0x8EC4 0x7FA3
+0x8EC5 0x21661
+0x8EC6 0x20068
+0x8EC7 0x455C
+0x8EC8 0x23766
+0x8EC9 0x4503
+0x8ECA 0x2833A
+0x8ECB 0x7FFA
+0x8ECC 0x26489
+0x8ECE 0x8008
+0x8ECF 0x801D
+0x8ED1 0x802F
+0x8ED2-0x8ED3 0xE381
+0x8ED4-0x8ED5 0x803B
+0x8ED6 0x8061
+0x8ED7 0xE386
+0x8ED8 0x4989
+0x8ED9 0x26626
+0x8EDA 0xE389
+0x8EDB 0x266E8
+0x8EDC 0x6725
+0x8EDD 0x80A7
+0x8EDE 0x28A48
+0x8EDF 0x8107
+0x8EE0 0x811A
+0x8EE1 0x58B0
+0x8EE2 0x226F6
+0x8EE3 0x6C7F
+0x8EE4 0x26498
+0x8EE5 0xE394
+0x8EE6 0x64E7
+0x8EE7 0xE396
+0x8EE8 0x8218
+0x8EE9 0x2185E
+0x8EEA 0x6A53
+0x8EEB 0x24A65
+0x8EEC 0x24A95
+0x8EED 0x447A
+0x8EEE 0x8229
+0x8EEF 0xE39E
+0x8EF0 0x26A52
+0x8EF1 0xE3A0
+0x8EF2 0x4FF9
+0x8EF3 0x214FD
+0x8EF4 0x84E2
+0x8EF5 0x8362
+0x8EF6 0x26B0A
+0x8EF7 0x249A7
+0x8EF8 0x23530
+0x8EF9 0x21773
+0x8EFA 0x23DF8
+0x8EFB 0x82AA
+0x8EFC 0x691B
+0x8EFD 0x2F994
+0x8EFE 0x41DB
+0x8F40 0x854B
+0x8F41 0x82D0
+0x8F42 0x831A
+0x8F43 0x20E16
+0x8F44 0x217B4
+0x8F45 0x36C1
+0x8F46 0xE3B4
+0x8F47 0x2355A
+0x8F48 0x827B
+0x8F49 0x82E2
+0x8F4A 0x8318
+0x8F4B 0x23E8B
+0x8F4C 0x26DA3
+0x8F4D 0xE3BB
+0x8F4E 0x26B97
+0x8F4F 0x235CE
+0x8F50 0x3DBF
+0x8F51 0x831D
+0x8F52 0x55EC
+0x8F53 0x8385
+0x8F54 0x450B
+0x8F55 0x26DA5
+0x8F56 0x83AC
+0x8F58 0x83D3
+0x8F59 0x347E
+0x8F5A 0x26ED4
+0x8F5B 0x6A57
+0x8F5C 0x855A
+0x8F5D 0x3496
+0x8F5E 0x26E42
+0x8F5F 0xE3CD
+0x8F60 0x8458
+0x8F61 0xE3CF
+0x8F62 0x8471
+0x8F63 0x3DD3
+0x8F64 0x44E4
+0x8F65 0x6AA7
+0x8F66 0x844A
+0x8F67 0xE3D5
+0x8F68 0x7958
+0x8F6A 0x26B96
+0x8F6B 0x26E77
+0x8F6C 0x26E43
+0x8F6D 0x84DE
+0x8F6F 0x8391
+0x8F70 0x44A0
+0x8F71 0x8493
+0x8F72 0x84E4
+0x8F73 0xE3E1
+0x8F74 0x4240
+0x8F75 0x25CC0
+0x8F76 0x4543
+0x8F77 0x8534
+0x8F78 0x5AF2
+0x8F79 0xE3E7
+0x8F7A 0x4527
+0x8F7B 0x8573
+0x8F7C 0x4516
+0x8F7D 0x67BF
+0x8F7E 0x8616
+0x8FA1 0x28625
+0x8FA2 0x2863B
+0x8FA3 0x85C1
+0x8FA4 0xE3F0
+0x8FA5 0x8602
+0x8FA6 0xE3F2
+0x8FA7 0x270CD
+0x8FA8 0xE3F4
+0x8FA9 0x456A
+0x8FAA 0x8628
+0x8FAB 0x3648
+0x8FAC 0x218A2
+0x8FAD 0x53F7
+0x8FAE 0x2739A
+0x8FAF 0x867E
+0x8FB0 0x8771
+0x8FB1 0x2A0F8
+0x8FB2 0x87EE
+0x8FB3 0x22C27
+0x8FB4 0x87B1
+0x8FB5 0x87DA
+0x8FB6 0x880F
+0x8FB7 0x5661
+0x8FB8 0x866C
+0x8FB9 0x6856
+0x8FBA 0x460F
+0x8FBB-0x8FBC 0x8845
+0x8FBD 0x275E0
+0x8FBE 0x23DB9
+0x8FBF 0x275E4
+0x8FC0 0x885E
+0x8FC1 0x889C
+0x8FC2 0x465B
+0x8FC3-0x8FC4 0x88B4
+0x8FC5 0x63C1
+0x8FC6 0x88C5
+0x8FC7 0x7777
+0x8FC8 0x2770F
+0x8FC9 0x8987
+0x8FCA 0x898A
+0x8FCD 0x89A7
+0x8FCE 0x89BC
+0x8FCF 0x28A25
+0x8FD0 0x89E7
+0x8FD1 0x27924
+0x8FD2 0x27ABD
+0x8FD3 0x8A9C
+0x8FD4 0x7793
+0x8FD5 0x91FE
+0x8FD6 0x8A90
+0x8FD7 0x27A59
+0x8FD8 0x7AE9
+0x8FD9 0x27B3A
+0x8FDA 0xE426
+0x8FDB 0x4713
+0x8FDC 0x27B38
+0x8FDD 0x717C
+0x8FDE 0x8B0C
+0x8FDF 0x8B1F
+0x8FE0 0x25430
+0x8FE1 0x25565
+0x8FE2 0x8B3F
+0x8FE3-0x8FE4 0x8B4C
+0x8FE5 0x8AA9
+0x8FE6 0x24A7A
+0x8FE7 0x8B90
+0x8FE8 0x8B9B
+0x8FE9 0x8AAF
+0x8FEA 0xE436
+0x8FEB 0x4615
+0x8FEC 0x884F
+0x8FED 0x8C9B
+0x8FEE 0x27D54
+0x8FEF 0x27D8F
+0x8FF0 0x2F9D4
+0x8FF1 0x3725
+0x8FF2 0x27D53
+0x8FF3 0x8CD6
+0x8FF4 0x27D98
+0x8FF5 0x27DBD
+0x8FF6 0x8D12
+0x8FF7 0x8D03
+0x8FF8 0x21910
+0x8FF9 0x8CDB
+0x8FFA 0x705C
+0x8FFB 0x8D11
+0x8FFC 0xE448
+0x8FFD 0x3ED0
+0x9040 0x8DA9
+0x9041 0x28002
+0x9042 0xE44D
+0x9043 0x2498A
+0x9044 0x3B7C
+0x9045 0xE450
+0x9046 0x2710C
+0x9047 0x7AE7
+0x9048 0x8EAD
+0x9049 0x8EB6
+0x904A 0x8EC3
+0x904B 0x92D4
+0x904C 0x8F19
+0x904D 0x8F2D
+0x904E 0x28365
+0x904F 0x28412
+0x9050 0x8FA5
+0x9051 0x9303
+0x9052 0x2A29F
+0x9053 0x20A50
+0x9054 0x8FB3
+0x9055 0x492A
+0x9056 0x289DE
+0x9057 0x2853D
+0x9058 0x23DBB
+0x9059 0x5EF8
+0x905A 0x23262
+0x905B 0x8FF9
+0x905C-0x905E 0xE467
+0x905F 0x22325
+0x9060 0x3980
+0x9061 0x26ED7
+0x9062 0x9037
+0x9063 0x2853C
+0x9064 0x27ABE
+0x9065 0x9061
+0x9066 0x2856C
+0x9067 0x2860B
+0x9068 0x90A8
+0x9069 0xE474
+0x906A 0x90C4
+0x906B 0x286E6
+0x906C 0x90AE
+0x906E 0x9167
+0x906F 0x3AF0
+0x9070 0x91A9
+0x9071 0x91C4
+0x9072 0x7CAC
+0x9073 0x28933
+0x9074 0x21E89
+0x9075 0x920E
+0x9076 0x6C9F
+0x9077 0x9241
+0x9078 0x9262
+0x9079 0x255B9
+0x907B 0x28AC6
+0x907C 0x23C9B
+0x907D 0x28B0C
+0x907E 0x255DB
+0x90A1 0xE48A
+0x90A2 0x932C
+0x90A3 0x936B
+0x90A4 0x28AE1
+0x90A5 0x28BEB
+0x90A6 0x708F
+0x90A7 0x5AC3
+0x90A8 0x28AE2
+0x90A9 0x28AE5
+0x90AA 0x4965
+0x90AB 0x9244
+0x90AC 0x28BEC
+0x90AD 0x28C39
+0x90AE 0x28BFF
+0x90AF 0x9373
+0x90B0 0x945B
+0x90B1 0x8EBC
+0x90B2 0x9585
+0x90B3 0x95A6
+0x90B4 0x9426
+0x90B5 0x95A0
+0x90B6 0x6FF6
+0x90B7 0x42B9
+0x90B8 0xE4A1
+0x90B9 0x286D8
+0x90BA 0x2127C
+0x90BB 0x23E2E
+0x90BC 0x49DF
+0x90BD 0x6C1C
+0x90BE 0x967B
+0x90BF 0x9696
+0x90C0 0x416C
+0x90C1 0x96A3
+0x90C2 0x26ED5
+0x90C3 0x61DA
+0x90C4 0x96B6
+0x90C5 0x78F5
+0x90C6 0x28AE0
+0x90C7 0x96BD
+0x90C8 0x53CC
+0x90C9 0x49A1
+0x90CA 0x26CB8
+0x90CB 0x20274
+0x90CC 0x26410
+0x90CD 0x290AF
+0x90CE 0x290E5
+0x90CF 0x24AD1
+0x90D0 0x21915
+0x90D1 0x2330A
+0x90D2 0x9731
+0x90D3 0x8642
+0x90D4 0x9736
+0x90D5 0x4A0F
+0x90D6 0x453D
+0x90D7 0x4585
+0x90D8 0xE4C1
+0x90D9 0x7075
+0x90DA 0x5B41
+0x90DB 0x971B
+0x90DD 0xE4C6
+0x90DE 0x9757
+0x90DF 0x5B4A
+0x90E0 0x291EB
+0x90E1 0x975F
+0x90E2 0x9425
+0x90E3 0x50D0
+0x90E4 0x230B7
+0x90E5 0x230BC
+0x90E6 0x9789
+0x90E7 0x979F
+0x90E8 0x97B1
+0x90E9 0x97BE
+0x90EA 0x97C0
+0x90EB 0x97D2
+0x90EC 0x97E0
+0x90ED 0x2546C
+0x90EE 0x97EE
+0x90EF 0x741C
+0x90F0 0x29433
+0x90F2 0x97F5
+0x90F3 0x2941D
+0x90F4 0xE4DD
+0x90F5 0x4AD1
+0x90F6 0x9834
+0x90F7 0x9833
+0x90F8 0x984B
+0x90F9 0x9866
+0x90FA 0x3B0E
+0x90FB 0x27175
+0x90FC 0x3D51
+0x90FD 0x20630
+0x90FE 0x2415C
+0x9140 0x25706
+0x9141 0x98CA
+0x9142 0x98B7
+0x9143 0x98C8
+0x9144 0x98C7
+0x9145 0x4AFF
+0x9146 0x26D27
+0x9147 0x216D3
+0x9148 0x55B0
+0x9149 0x98E1
+0x914A 0x98E6
+0x914B 0x98EC
+0x914C 0x9378
+0x914D 0x9939
+0x914E 0x24A29
+0x914F 0x4B72
+0x9150 0x29857
+0x9151 0x29905
+0x9152 0x99F5
+0x9153 0x9A0C
+0x9154 0x9A3B
+0x9155 0x9A10
+0x9156 0x9A58
+0x9157 0x25725
+0x9158 0x36C4
+0x9159 0x290B1
+0x915A 0x29BD5
+0x915B 0x9AE0
+0x915C 0x9AE2
+0x915D 0x29B05
+0x915E 0x9AF4
+0x915F 0x4C0E
+0x9160 0x9B14
+0x9161 0x9B2D
+0x9162 0x28600
+0x9163 0x5034
+0x9164 0x9B34
+0x9165 0x269A8
+0x9166 0x38C3
+0x9167 0x2307D
+0x9168 0x9B50
+0x9169 0x9B40
+0x916A 0x29D3E
+0x916B 0x5A45
+0x916C 0x21863
+0x916D 0x9B8E
+0x916E 0x2424B
+0x916F 0x9C02
+0x9170 0x9BFF
+0x9171 0x9C0C
+0x9172 0x29E68
+0x9173 0x9DD4
+0x9174 0x29FB7
+0x9175 0x2A192
+0x9176 0xE51E
+0x9177 0x2A0E1
+0x9178 0x2A123
+0x9179 0x2A1DF
+0x917A 0x9D7E
+0x917B 0x9D83
+0x917C 0xE524
+0x917D 0x9E0E
+0x917E 0x6888
+0x91A1 0x9DC4
+0x91A2 0xE528
+0x91A3 0x2A193
+0x91A4 0x2A220
+0x91A5 0x2193B
+0x91A6 0x2A233
+0x91A7 0x9D39
+0x91A8-0x91A9 0xE52E
+0x91AA 0x9E90
+0x91AB 0x9E95
+0x91AC 0x9E9E
+0x91AD 0x9EA2
+0x91AE 0x4D34
+0x91AF 0x9EAA
+0x91B0 0x9EAF
+0x91B1 0x24364
+0x91B2 0x9EC1
+0x91B3 0x3B60
+0x91B4 0x39E5
+0x91B5 0x3D1D
+0x91B6 0x4F32
+0x91B7 0x37BE
+0x91B8 0x28C2B
+0x91B9 0x9F02
+0x91BA 0x9F08
+0x91BB 0x4B96
+0x91BC 0x9424
+0x91BD 0x26DA2
+0x91BE 0x9F17
+0x91C0 0x9F39
+0x91C1 0x569F
+0x91C2 0x568A
+0x91C3 0x9F45
+0x91C4 0x99B8
+0x91C5 0x2908B
+0x91C6 0x97F2
+0x91C7 0x847F
+0x91C8 0x9F62
+0x91C9 0x9F69
+0x91CA 0x7ADC
+0x91CB 0x9F8E
+0x91CC 0x7216
+0x91CD 0x4BBE
+0x91CE 0x24975
+0x91CF 0x249BB
+0x91D0 0x7177
+0x91D1 0x249F8
+0x91D2 0x24348
+0x91D3 0x24A51
+0x91D4 0x739E
+0x91D5 0x28BDA
+0x91D6 0x218FA
+0x91D7 0x799F
+0x91D8 0x2897E
+0x91D9 0x28E36
+0x91DA 0x9369
+0x91DB 0x93F3
+0x91DC 0x28A44
+0x91DD 0x92EC
+0x91DE 0x9381
+0x91DF 0x93CB
+0x91E0 0x2896C
+0x91E1 0x244B9
+0x91E2 0x7217
+0x91E3 0x3EEB
+0x91E4 0x7772
+0x91E5 0x7A43
+0x91E6 0x70D0
+0x91E7 0xE56D
+0x91E8 0x243F8
+0x91E9 0x717E
+0x91EA 0xE570
+0x91EB 0x70A3
+0x91EC 0x218BE
+0x91ED 0x23599
+0x91EE 0x3EC7
+0x91EF 0x21885
+0x91F0 0x2542F
+0x91F1 0x217F8
+0x91F2 0x3722
+0x91F3 0x216FB
+0x91F4 0xE57A
+0x91F5 0x36E1
+0x91F6 0x21774
+0x91F7 0xE57D
+0x91F8 0x25F4B
+0x91F9 0x3723
+0x91FA 0x216C0
+0x91FB 0x575B
+0x91FC 0x24A25
+0x91FD 0x213FE
+0x91FE 0xE584
+0x9240 0x213C6
+0x9241 0x214B6
+0x9242 0x8503
+0x9243 0x236A6
+0x9245 0x8455
+0x9246 0xE58B
+0x9247 0x27165
+0x9248 0x23E31
+0x9249 0x2555C
+0x924A 0x23EFB
+0x924B 0x27052
+0x924C 0x44F4
+0x924D 0x236EE
+0x924E 0x2999D
+0x924F 0x26F26
+0x9250 0x67F9
+0x9251 0x3733
+0x9252 0x3C15
+0x9253 0x3DE7
+0x9254 0x586C
+0x9255 0xE59A
+0x9256 0x6810
+0x9257 0x4057
+0x9258 0x2373F
+0x9259 0xE59E
+0x925A 0x2408B
+0x925B 0xE5A0
+0x925C 0x26C21
+0x925D 0x54CB
+0x925E 0x569E
+0x925F 0x266B1
+0x9260 0x5692
+0x9261 0xE5A6
+0x9262 0x20BA8
+0x9263 0x20E0D
+0x9264 0x93C6
+0x9265 0xE5AA
+0x9266 0x939C
+0x9267 0x4EF8
+0x9268 0x512B
+0x9269 0x3819
+0x926A 0x24436
+0x926B 0x4EBC
+0x926C 0x20465
+0x926D 0x2037F
+0x926E 0x4F4B
+0x926F 0x4F8A
+0x9270 0x25651
+0x9271 0x5A68
+0x9272 0x201AB
+0x9273 0x203CB
+0x9274 0x3999
+0x9275 0x2030A
+0x9276 0x20414
+0x9277 0x3435
+0x9278 0x4F29
+0x9279 0x202C0
+0x927A 0x28EB3
+0x927B 0x20275
+0x927C 0x8ADA
+0x927D 0xE5C2
+0x927E 0x4E98
+0x92A1 0x50CD
+0x92A2 0x510D
+0x92A3 0x4FA2
+0x92A4 0x4F03
+0x92A5 0xE5C8
+0x92A6 0x23E8A
+0x92A7 0x4F42
+0x92A8 0x502E
+0x92A9 0x506C
+0x92AA 0x5081
+0x92AB 0x4FCC
+0x92AC 0x4FE5
+0x92AD 0x5058
+0x92AE 0x50FC
+0x92B3 0x6E76
+0x92B4 0x23595
+0x92B5 0xE5D8
+0x92B6 0x23EBF
+0x92B7 0x6D72
+0x92B8 0x21884
+0x92B9 0x23E89
+0x92BA 0x51A8
+0x92BB 0x51C3
+0x92BC 0x205E0
+0x92BD 0x44DD
+0x92BE 0x204A3
+0x92BF 0x20492
+0x92C0 0x20491
+0x92C1 0x8D7A
+0x92C2 0x28A9C
+0x92C3 0x2070E
+0x92C4 0x5259
+0x92C5 0x52A4
+0x92C6 0x20873
+0x92C7 0x52E1
+0x92C9 0x467A
+0x92CA 0x718C
+0x92CB 0x2438C
+0x92CC 0x20C20
+0x92CD 0x249AC
+0x92CE 0xE5F1
+0x92CF 0x69D1
+0x92D0 0x20E1D
+0x92D2 0x3EDE
+0x92D3 0x7499
+0x92D4 0x7414
+0x92D5 0x7456
+0x92D6 0x7398
+0x92D7 0x4B8E
+0x92D8 0x24ABC
+0x92D9 0x2408D
+0x92DA 0x53D0
+0x92DB 0x3584
+0x92DC 0x720F
+0x92DD 0x240C9
+0x92DE 0x55B4
+0x92DF 0x20345
+0x92E0 0x54CD
+0x92E1 0x20BC6
+0x92E2 0x571D
+0x92E3 0x925D
+0x92E4 0x96F4
+0x92E5 0x9366
+0x92E6 0x57DD
+0x92E7 0x578D
+0x92E8 0x577F
+0x92E9 0x363E
+0x92EA 0x58CB
+0x92EB 0x5A99
+0x92EC 0x28A46
+0x92ED 0x216FA
+0x92EE 0x2176F
+0x92EF 0x21710
+0x92F0 0x5A2C
+0x92F1 0x59B8
+0x92F2 0x928F
+0x92F3 0x5A7E
+0x92F4 0x5ACF
+0x92F5 0x5A12
+0x92F6 0xE619
+0x92F7 0x219F3
+0x92F8 0x21861
+0x92F9 0xE61C
+0x92FA 0x36F5
+0x92FB 0x6D05
+0x92FC 0x7443
+0x92FD 0x5A21
+0x92FE 0x25E83
+0x9340 0x5A81
+0x9341 0x28BD7
+0x9342 0x20413
+0x9343 0x93E0
+0x9344 0x748C
+0x9345 0x21303
+0x9346 0x7105
+0x9347 0x4972
+0x9348 0x9408
+0x9349 0x289FB
+0x934A 0x93BD
+0x934B 0x37A0
+0x934C 0x5C1E
+0x934D 0x5C9E
+0x934E 0x5E5E
+0x934F 0x5E48
+0x9350 0x21996
+0x9351 0x2197C
+0x9352 0x23AEE
+0x9353 0x5ECD
+0x9354 0x5B4F
+0x9355-0x9356 0x21903
+0x9357 0x3701
+0x9358 0x218A0
+0x9359 0x36DD
+0x935A 0x216FE
+0x935B 0x36D3
+0x935C 0x812A
+0x935D 0x28A47
+0x935E 0x21DBA
+0x935F 0x23472
+0x9360 0x289A8
+0x9361 0x5F0C
+0x9362 0x5F0E
+0x9363 0x21927
+0x9364 0xE646
+0x9365 0x5A6B
+0x9366 0x2173B
+0x9367 0x5B44
+0x9368 0x8614
+0x9369 0x275FD
+0x936A 0x8860
+0x936B 0x607E
+0x936C 0x22860
+0x936D 0x2262B
+0x936E 0x5FDB
+0x936F 0x3EB8
+0x9370 0x225AF
+0x9371 0x225BE
+0x9372 0xE654
+0x9373 0x26F73
+0x9374 0x61C0
+0x9375 0x2003E
+0x9376 0x20046
+0x9377 0x2261B
+0x9378 0x6199
+0x9379 0x6198
+0x937A 0x6075
+0x937B 0x22C9B
+0x937C 0x22D07
+0x937D 0x246D4
+0x937E 0xE660
+0x93A1 0x6471
+0x93A2 0x24665
+0x93A3 0x22B6A
+0x93A4 0x3A29
+0x93A5 0x22B22
+0x93A6 0x23450
+0x93A7 0x298EA
+0x93A8 0x22E78
+0x93A9 0x6337
+0x93AA 0xE66A
+0x93AB 0x64B6
+0x93AC 0x6331
+0x93AD 0x63D1
+0x93AE 0x249E3
+0x93AF 0x22D67
+0x93B0 0x62A4
+0x93B1 0x22CA1
+0x93B2 0x643B
+0x93B3 0x656B
+0x93B4 0x6972
+0x93B5 0x3BF4
+0x93B6 0x2308E
+0x93B7 0x232AD
+0x93B8 0x24989
+0x93B9 0x232AB
+0x93BA 0x550D
+0x93BB 0x232E0
+0x93BC 0x218D9
+0x93BD 0xE67D
+0x93BE 0x66CE
+0x93BF 0x23289
+0x93C0 0xE680
+0x93C1 0x3AE0
+0x93C2 0x4190
+0x93C3 0x25584
+0x93C4 0x28B22
+0x93C5 0x2558F
+0x93C6 0x216FC
+0x93C7 0x2555B
+0x93C8 0x25425
+0x93C9 0x78EE
+0x93CA 0x23103
+0x93CB 0x2182A
+0x93CC 0x23234
+0x93CD 0x3464
+0x93CE 0xE68E
+0x93CF 0x23182
+0x93D0 0x242C9
+0x93D1 0x668E
+0x93D2 0x26D24
+0x93D3 0x666B
+0x93D4 0x4B93
+0x93D5 0x6630
+0x93D6 0x27870
+0x93D7 0xE697
+0x93D8 0x6663
+0x93D9 0x232D2
+0x93DA 0x232E1
+0x93DB 0x661E
+0x93DC 0x25872
+0x93DD 0x38D1
+0x93DE 0xE69E
+0x93DF 0x237BC
+0x93E0 0x3B99
+0x93E1 0x237A2
+0x93E2 0x233FE
+0x93E3 0x74D0
+0x93E4 0x3B96
+0x93E5 0x678F
+0x93E6 0x2462A
+0x93E7 0x68B6
+0x93E8 0x681E
+0x93E9 0x3BC4
+0x93EA 0x6ABE
+0x93EB 0x3863
+0x93EC 0x237D5
+0x93ED 0x24487
+0x93EE 0x6A33
+0x93EF 0x6A52
+0x93F0 0x6AC9
+0x93F1 0x6B05
+0x93F2 0x21912
+0x93F3 0x6511
+0x93F4 0x6898
+0x93F5 0x6A4C
+0x93F6 0x3BD7
+0x93F7 0x6A7A
+0x93F8 0x6B57
+0x93F9 0x23FC0
+0x93FA 0x23C9A
+0x93FB 0x93A0
+0x93FC 0x92F2
+0x93FD 0x28BEA
+0x93FE 0x28ACB
+0x9440 0x9289
+0x9441 0xE6C0
+0x9442 0x289DC
+0x9443 0x9467
+0x9444 0x6DA5
+0x9445 0x6F0B
+0x9446 0xE6C5
+0x9448 0x23F7F
+0x9449 0x3D8F
+0x944A 0x6E04
+0x944B 0x2403C
+0x944C 0x5A3D
+0x944D 0x6E0A
+0x944E 0x5847
+0x944F 0x6D24
+0x9450 0x7842
+0x9451 0x713B
+0x9452 0x2431A
+0x9453 0x24276
+0x9454 0x70F1
+0x9455 0x7250
+0x9456 0x7287
+0x9457 0x7294
+0x9458 0x2478F
+0x9459 0x24725
+0x945A 0x5179
+0x945B 0x24AA4
+0x945C 0x205EB
+0x945D 0x747A
+0x945E 0x23EF8
+0x945F-0x9460 0xE6DE
+0x9461 0x24917
+0x9462 0x25FE1
+0x9463 0x3F06
+0x9464 0x3EB1
+0x9465 0x24ADF
+0x9466 0x28C23
+0x9467 0x23F35
+0x9468 0x60A7
+0x9469 0x3EF3
+0x946A 0x74CC
+0x946B 0x743C
+0x946C 0x9387
+0x946D 0x7437
+0x946E 0x449F
+0x946F 0x26DEA
+0x9470 0x4551
+0x9471 0x7583
+0x9472 0x3F63
+0x9473 0x24CD9
+0x9474 0x24D06
+0x9475 0x3F58
+0x9476 0x7555
+0x9477 0x7673
+0x9478 0x2A5C6
+0x9479 0x3B19
+0x947A 0x7468
+0x947B 0x28ACC
+0x947C 0x249AB
+0x947D 0x2498E
+0x947E 0x3AFB
+0x94A1 0x3DCD
+0x94A2 0x24A4E
+0x94A3 0x3EFF
+0x94A4 0xE701
+0x94A5 0x248F3
+0x94A6 0x91FA
+0x94A7 0x5732
+0x94A8 0x9342
+0x94A9 0x28AE3
+0x94AA 0x21864
+0x94AB 0x50DF
+0x94AC 0x25221
+0x94AD 0x251E7
+0x94AE 0x7778
+0x94AF 0x23232
+0x94B0-0x94B1 0x770E
+0x94B2 0x777B
+0x94B3 0x24697
+0x94B4 0x23781
+0x94B5 0x3A5E
+0x94B6 0xE713
+0x94B7 0x7438
+0x94B8 0x749B
+0x94B9 0x3EBF
+0x94BA 0x24ABA
+0x94BB 0x24AC7
+0x94BC 0x40C8
+0x94BD 0x24A96
+0x94BE 0x261AE
+0x94BF 0x9307
+0x94C0 0x25581
+0x94C1 0x781E
+0x94C2 0x788D
+0x94C3 0x7888
+0x94C4 0x78D2
+0x94C5 0x73D0
+0x94C6 0x7959
+0x94C7 0x27741
+0x94C8 0xE725
+0x94C9 0x410E
+0x94CB 0x8496
+0x94CC 0x79A5
+0x94CD 0x6A2D
+0x94CE 0x23EFA
+0x94CF 0x7A3A
+0x94D0 0x79F4
+0x94D1 0x416E
+0x94D2 0x216E6
+0x94D3 0x4132
+0x94D4 0x9235
+0x94D5 0x79F1
+0x94D6 0x20D4C
+0x94D7 0x2498C
+0x94D8 0x20299
+0x94D9 0x23DBA
+0x94DA 0x2176E
+0x94DB 0x3597
+0x94DC 0x556B
+0x94DD 0x3570
+0x94DE 0x36AA
+0x94DF 0x201D4
+0x94E0 0xE73D
+0x94E1 0x7AE2
+0x94E2 0x5A59
+0x94E3 0x226F5
+0x94E4 0xE741
+0x94E5 0x25A9C
+0x94E6 0x5A0D
+0x94E7 0x2025B
+0x94E8 0x78F0
+0x94E9 0x5A2A
+0x94EA 0x25BC6
+0x94EB 0x7AFE
+0x94EC 0x41F9
+0x94ED 0x7C5D
+0x94EE 0x7C6D
+0x94EF 0x4211
+0x94F0 0x25BB3
+0x94F1 0x25EBC
+0x94F2 0x25EA6
+0x94F3 0x7CCD
+0x94F4 0x249F9
+0x94F5 0xE752
+0x94F6 0x7C8E
+0x94F7 0x7C7C
+0x94F8 0x7CAE
+0x94F9 0x6AB2
+0x94FA 0x7DDC
+0x94FB 0x7E07
+0x94FC 0x7DD3
+0x94FD 0x7F4E
+0x94FE 0x26261
+0x9540 0x2615C
+0x9541 0xE75D
+0x9542 0x7D97
+0x9543 0x25E82
+0x9544 0x426A
+0x9545 0xE761
+0x9546 0x20916
+0x9547 0x67D6
+0x9548 0x2004E
+0x9549 0x235CF
+0x954A 0x57C4
+0x954B 0x26412
+0x954C 0xE768
+0x954D 0x24962
+0x954E 0x7FDD
+0x954F 0x7B27
+0x9550 0x2082C
+0x9551 0x25AE9
+0x9552 0x25D43
+0x9553 0x7B0C
+0x9554 0x25E0E
+0x9555 0x99E6
+0x9556 0x8645
+0x9557 0x9A63
+0x9558 0x6A1C
+0x9559 0xE775
+0x955A 0x39E2
+0x955B 0x249F7
+0x955C 0x265AD
+0x955D 0x9A1F
+0x955E 0xE77A
+0x955F 0x8480
+0x9560 0x27127
+0x9561 0xE77D
+0x9562 0x44EA
+0x9563 0x8137
+0x9564 0x4402
+0x9565 0x80C6
+0x9566 0x8109
+0x9567 0x8142
+0x9568 0x267B4
+0x9569 0x98C3
+0x956A 0x26A42
+0x956B 0x8262
+0x956C 0x8265
+0x956D 0x26A51
+0x956E 0x8453
+0x956F 0x26DA7
+0x9570 0x8610
+0x9571 0x2721B
+0x9572 0x5A86
+0x9573 0x417F
+0x9574 0xE790
+0x9575 0x5B2B
+0x9576 0x218A1
+0x9577 0x5AE4
+0x9578 0x218D8
+0x9579 0x86A0
+0x957B 0xE797
+0x957C 0x882D
+0x957D 0x27422
+0x957E 0x5A02
+0x95A1 0x886E
+0x95A2 0x4F45
+0x95A3 0x8887
+0x95A4 0x88BF
+0x95A5 0x88E6
+0x95A6 0x8965
+0x95A7 0x894D
+0x95A8 0x25683
+0x95A9 0x8954
+0x95AA 0x27785
+0x95AB 0x27784
+0x95AC 0xE7A6
+0x95AD 0x28BD9
+0x95AE 0x28B9C
+0x95AF 0x289F9
+0x95B0 0x3EAD
+0x95B1 0x84A3
+0x95B2 0x46F5
+0x95B3 0x46CF
+0x95B4 0x37F2
+0x95B5 0x8A3D
+0x95B6 0x8A1C
+0x95B7 0x29448
+0x95B8 0x5F4D
+0x95B9 0x922B
+0x95BA 0xE7B4
+0x95BB 0x65D4
+0x95BC 0x7129
+0x95BD 0x70C4
+0x95BE 0x21845
+0x95BF 0x9D6D
+0x95C0 0x8C9F
+0x95C1 0x8CE9
+0x95C2 0x27DDC
+0x95C3 0x599A
+0x95C4 0x77C3
+0x95C5 0x59F0
+0x95C6 0x436E
+0x95C7 0x36D4
+0x95C8 0x8E2A
+0x95C9 0x8EA7
+0x95CA 0x24C09
+0x95CB 0x8F30
+0x95CC 0x8F4A
+0x95CD 0x42F4
+0x95CE 0x6C58
+0x95CF 0x6FBB
+0x95D0 0x22321
+0x95D1 0x489B
+0x95D2 0x6F79
+0x95D3 0x6E8B
+0x95D4 0x217DA
+0x95D5 0x9BE9
+0x95D6 0x36B5
+0x95D7 0x2492F
+0x95D8 0x90BB
+0x95DA 0x5571
+0x95DB 0x4906
+0x95DC 0x91BB
+0x95DD 0x9404
+0x95DE 0x28A4B
+0x95DF 0x4062
+0x95E0 0xE7DA
+0x95E1 0x9427
+0x95E2 0x28C1D
+0x95E3 0xE7DD
+0x95E4 0x84E5
+0x95E5 0x8A2B
+0x95E6 0x9599
+0x95E7 0x95A7
+0x95E8 0x9597
+0x95E9 0x9596
+0x95EA 0x28D34
+0x95EB 0x7445
+0x95EC 0x3EC2
+0x95ED 0x248FF
+0x95EE-0x95EF 0xE7E8
+0x95F0 0x3EE7
+0x95F1 0x23225
+0x95F2 0x968F
+0x95F3 0xE7ED
+0x95F4 0x28E66
+0x95F5 0x28E65
+0x95F6 0x3ECC
+0x95F7 0xE7F1
+0x95F8 0x24A78
+0x95F9 0x23FEE
+0x95FA 0x7412
+0x95FB 0x746B
+0x95FC 0x3EFC
+0x95FD 0x9741
+0x95FE 0x290B0
+0x9640 0x6847
+0x9641 0x4A1D
+0x9642-0x9643 0xE7FB
+0x9645 0x9368
+0x9646 0x28989
+0x9647 0xE800
+0x9648 0x28B2F
+0x9649 0x263BE
+0x964A 0x92BA
+0x964B 0x5B11
+0x964C 0x8B69
+0x964D 0x493C
+0x964E 0x73F9
+0x964F 0x2421B
+0x9650 0x979B
+0x9651 0x9771
+0x9652 0x9938
+0x9653 0xE80C
+0x9654 0x5DC1
+0x9655 0x28BC5
+0x9656 0x24AB2
+0x9657 0x981F
+0x9658 0x294DA
+0x9659 0x92F6
+0x965A 0xE813
+0x965B 0x91E5
+0x965C 0x44C0
+0x965D 0x28B50
+0x965E 0x24A67
+0x965F 0x28B64
+0x9660 0x98DC
+0x9661 0x28A45
+0x9662 0x3F00
+0x9663 0x922A
+0x9664 0x4925
+0x9665 0x8414
+0x9666 0x993B
+0x9667 0x994D
+0x9668 0xE821
+0x9669 0x3DFD
+0x966A 0x999B
+0x966B 0x4B6F
+0x966C 0x99AA
+0x966D 0x9A5C
+0x966E 0x28B65
+0x966F 0xE828
+0x9670 0x6A8F
+0x9671 0x9A21
+0x9672 0x5AFE
+0x9673 0x9A2F
+0x9674 0xE82D
+0x9675 0x4B90
+0x9676 0xE82F
+0x9677 0x99BC
+0x9678 0x4BBD
+0x9679 0x4B97
+0x967A 0x937D
+0x967B 0x5872
+0x967C 0x21302
+0x967D 0x5822
+0x967E 0x249B8
+0x96A1 0x214E8
+0x96A2 0x7844
+0x96A3 0x2271F
+0x96A4 0x23DB8
+0x96A5 0x68C5
+0x96A6 0x3D7D
+0x96A7 0x9458
+0x96A8 0x3927
+0x96A9 0x6150
+0x96AA 0x22781
+0x96AB 0x2296B
+0x96AC 0x6107
+0x96AD 0x9C4F
+0x96AE 0x9C53
+0x96AF 0x9C7B
+0x96B0 0x9C35
+0x96B1 0x9C10
+0x96B2 0x9B7F
+0x96B3 0x9BCF
+0x96B4 0x29E2D
+0x96B5 0x9B9F
+0x96B6 0xE84D
+0x96B7 0x2A0FE
+0x96B8 0x9D21
+0x96B9 0x4CAE
+0x96BA 0x24104
+0x96BB 0x9E18
+0x96BC 0x4CB0
+0x96BD 0x9D0C
+0x96BE-0x96BF 0xE855
+0x96C0 0x2A0F3
+0x96C1 0x2992F
+0x96C2 0x9DA5
+0x96C3 0x84BD
+0x96C4 0xE85B
+0x96C5 0x26FDF
+0x96C6 0xE85D
+0x96C7 0x85FC
+0x96C8 0x4533
+0x96C9 0x26DA4
+0x96CA 0x26E84
+0x96CB 0x26DF0
+0x96CC 0x8420
+0x96CD 0x85EE
+0x96CE 0xE865
+0x96CF 0x237D7
+0x96D0 0x26064
+0x96D1 0x79E2
+0x96D2 0x2359C
+0x96D3 0x23640
+0x96D4 0x492D
+0x96D5 0x249DE
+0x96D6 0x3D62
+0x96D7 0x93DB
+0x96D8 0x92BE
+0x96D9 0x9348
+0x96DA 0x202BF
+0x96DB 0x78B9
+0x96DC 0x9277
+0x96DD 0x944D
+0x96DE 0x4FE4
+0x96DF 0x3440
+0x96E0 0x9064
+0x96E1 0x2555D
+0x96E2 0x783D
+0x96E3 0x7854
+0x96E4 0x78B6
+0x96E5 0x784B
+0x96E6 0x21757
+0x96E7 0x231C9
+0x96E8 0x24941
+0x96E9 0x369A
+0x96EA 0x4F72
+0x96EB 0x6FDA
+0x96EC 0x6FD9
+0x96EE 0x701E
+0x96EF 0x5414
+0x96F0 0xE887
+0x96F1 0x57BB
+0x96F2 0x58F3
+0x96F3 0x578A
+0x96F4 0x9D16
+0x96F5 0x57D7
+0x96F6 0x7134
+0x96F7 0x34AF
+0x96F8 0xE88F
+0x96F9 0x71EB
+0x96FA 0xE891
+0x96FB 0x24F97
+0x96FD 0x217B5
+0x96FE 0x28A49
+0x9740 0x610C
+0x9741 0x5ACE
+0x9742 0x5A0B
+0x9743 0x42BC
+0x9744 0x24488
+0x9745 0x372C
+0x9746 0x4B7B
+0x9747 0x289FC
+0x9748 0x93BB
+0x9749 0x93B8
+0x974A 0x218D6
+0x974B 0xE8A1
+0x974C 0x8472
+0x974D 0x26CC0
+0x974E 0xE8A4
+0x974F 0x242FA
+0x9750 0x22C26
+0x9751 0x243C1
+0x9752 0x5994
+0x9753 0x23DB7
+0x9754 0x26741
+0x9755 0x7DA8
+0x9756 0x2615B
+0x9757 0x260A4
+0x9758 0x249B9
+0x9759 0x2498B
+0x975A 0x289FA
+0x975B 0x92E5
+0x975C 0x73E2
+0x975D 0x3EE9
+0x975E 0x74B4
+0x975F 0x28B63
+0x9760 0x2189F
+0x9761 0x3EE1
+0x9762 0x24AB3
+0x9763 0x6AD8
+0x9764 0x73F3
+0x9765 0x73FB
+0x9766 0x3ED6
+0x9767 0x24A3E
+0x9768 0x24A94
+0x9769 0x217D9
+0x976A 0x24A66
+0x976B 0x203A7
+0x976C-0x976D 0xE8C2
+0x976E 0x7448
+0x976F 0x24916
+0x9770 0x70A5
+0x9771 0x24976
+0x9772 0x9284
+0x9773 0x73E6
+0x9774 0x935F
+0x9775 0x204FE
+0x9776 0x9331
+0x9777 0xE8CD
+0x9778 0x28A16
+0x9779 0x9386
+0x977A 0x28BE7
+0x977B 0x255D5
+0x977C 0x4935
+0x977D 0x28A82
+0x977E 0x716B
+0x97A1-0x97A2 0xE8D5
+0x97A3 0x56A4
+0x97A4 0x2061A
+0x97A5-0x97A6 0xE8D9
+0x97A7 0x5502
+0x97A8 0x79C4
+0x97A9 0x217FA
+0x97AA 0x7DFE
+0x97AB 0x216C2
+0x97AC 0x24A50
+0x97AD 0xE8E1
+0x97AE 0x452E
+0x97AF 0x9401
+0x97B0 0x370A
+0x97B1 0xE8E5
+0x97B2 0x249AD
+0x97B3 0x59B0
+0x97B4 0x218BF
+0x97B5 0x21883
+0x97B6 0x27484
+0x97B7 0x5AA1
+0x97B8 0x36E2
+0x97B9 0x23D5B
+0x97BA 0x36B0
+0x97BB 0x925F
+0x97BC 0x5A79
+0x97BD 0x28A81
+0x97BE 0x21862
+0x97BF 0x9374
+0x97C0 0x3CCD
+0x97C1 0x20AB4
+0x97C2 0x4A96
+0x97C3 0x398A
+0x97C4 0x50F4
+0x97C5 0x3D69
+0x97C6 0x3D4C
+0x97C7 0x2139C
+0x97C8 0x7175
+0x97C9 0x42FB
+0x97CA 0xE8FE
+0x97CB 0x6E0F
+0x97CC 0x290E4
+0x97CD 0x44EB
+0x97CE 0x6D57
+0x97CF 0x27E4F
+0x97D0 0x7067
+0x97D1 0x6CAF
+0x97D2 0x3CD6
+0x97D3 0x23FED
+0x97D4 0x23E2D
+0x97D5 0x6E02
+0x97D6 0x6F0C
+0x97D7 0x3D6F
+0x97D8 0x203F5
+0x97D9 0x7551
+0x97DA 0x36BC
+0x97DB 0x34C8
+0x97DC 0x4680
+0x97DD 0x3EDA
+0x97DE 0x4871
+0x97DF 0x59C4
+0x97E0 0x926E
+0x97E1 0x493E
+0x97E2 0x8F41
+0x97E3-0x97E4 0xE917
+0x97E5 0x5812
+0x97E6 0x57C8
+0x97E7 0x36D6
+0x97E8 0x21452
+0x97E9 0x70FE
+0x97EA 0x24362
+0x97EB 0xE91F
+0x97EC 0x22FE3
+0x97ED 0x212B0
+0x97EE 0x223BD
+0x97EF 0x68B9
+0x97F0 0x6967
+0x97F1 0xE925
+0x97F2 0x234E5
+0x97F3 0x27BF4
+0x97F4 0x236DF
+0x97F5 0x28A83
+0x97F6 0x237D6
+0x97F7 0xE92B
+0x97F8 0x24C9F
+0x97F9 0x6A1A
+0x97FA 0x236AD
+0x97FB 0x26CB7
+0x97FC 0x843E
+0x97FD 0x44DF
+0x97FE 0x44CE
+0x9840 0x26D26
+0x9841 0xE934
+0x9842 0x26C82
+0x9843 0x26FDE
+0x9844 0x6F17
+0x9845 0x27109
+0x9846 0x833D
+0x9847 0x2173A
+0x9848 0x83ED
+0x9849 0x26C80
+0x984A 0x27053
+0x984B 0x217DB
+0x984C 0x5989
+0x984D 0x5A82
+0x984E 0x217B3
+0x984F 0x5A61
+0x9850 0x5A71
+0x9851 0x21905
+0x9852 0x241FC
+0x9853 0x372D
+0x9854 0x59EF
+0x9855 0x2173C
+0x9856 0x36C7
+0x9857 0x718E
+0x9858 0x9390
+0x9859 0x669A
+0x985A 0x242A5
+0x985B 0x5A6E
+0x985C 0x5A2B
+0x985D 0xE950
+0x985E 0x6A2B
+0x985F 0x23EF9
+0x9860 0x27736
+0x9861 0x2445B
+0x9862 0x242CA
+0x9863 0x711D
+0x9864 0x24259
+0x9865 0x289E1
+0x9866 0x4FB0
+0x9867 0x26D28
+0x9868 0x5CC2
+0x9869 0x244CE
+0x986A 0x27E4D
+0x986B 0x243BD
+0x986C 0x6A0C
+0x986D 0x24256
+0x986E 0x21304
+0x986F 0x70A6
+0x9870 0x7133
+0x9871 0x243E9
+0x9872 0x3DA5
+0x9873 0x6CDF
+0x9874 0xE967
+0x9875 0x24A4F
+0x9876 0x7E65
+0x9877 0x59EB
+0x9878 0x5D2F
+0x9879 0x3DF3
+0x987A 0x5F5C
+0x987B-0x987C 0xE96E
+0x987D 0x7DA4
+0x987E 0x8426
+0x98A1 0x5485
+0x98A2 0xE973
+0x98A3 0x23300
+0x98A4 0x20214
+0x98A5 0x577E
+0x98A6 0xE977
+0x98A7 0x20619
+0x98A8 0x3FE5
+0x98A9-0x98AA 0xE97A
+0x98AB 0x7003
+0x98AC 0xE97D
+0x98AD 0x5D70
+0x98AE 0x738F
+0x98AF 0x7CD3
+0x98B0 0x28A59
+0x98B1 0xE982
+0x98B2 0x4FC8
+0x98B3 0x7FE7
+0x98B4 0x72CD
+0x98B5 0x7310
+0x98B6 0x27AF4
+0x98B7-0x98B8 0x7338
+0x98B9 0x256F6
+0x98BA 0x7341
+0x98BB 0x7348
+0x98BC 0x3EA9
+0x98BD 0x27B18
+0x98BE 0x906C
+0x98BF 0x71F5
+0x98C0 0xE991
+0x98C1 0x73E1
+0x98C2 0x81F6
+0x98C3 0x3ECA
+0x98C4 0x770C
+0x98C5 0x3ED1
+0x98C6 0x6CA2
+0x98C7 0x56FD
+0x98C8 0x7419
+0x98C9-0x98CA 0x741E
+0x98CB 0x3EE2
+0x98CC 0x3EF0
+0x98CD 0x3EF4
+0x98CE 0x3EFA
+0x98CF 0x74D3
+0x98D0 0x3F0E
+0x98D1 0x3F53
+0x98D2 0x7542
+0x98D3 0x756D
+0x98D4 0x7572
+0x98D5 0x758D
+0x98D6 0x3F7C
+0x98D7 0x75C8
+0x98D8 0x75DC
+0x98D9 0x3FC0
+0x98DA 0x764D
+0x98DB 0x3FD7
+0x98DC 0x7674
+0x98DD 0x3FDC
+0x98DE 0x767A
+0x98DF 0x24F5C
+0x98E0 0x7188
+0x98E1 0x5623
+0x98E2 0x8980
+0x98E3 0x5869
+0x98E4 0x401D
+0x98E5 0x7743
+0x98E6 0x4039
+0x98E7 0x6761
+0x98E8 0x4045
+0x98E9 0x35DB
+0x98EA 0x7798
+0x98EB 0x406A
+0x98EC 0x406F
+0x98ED 0x5C5E
+0x98EE 0x77BE
+0x98EF 0x77CB
+0x98F0 0x58F2
+0x98F1 0x7818
+0x98F2 0x70B9
+0x98F3 0x781C
+0x98F4 0x40A8
+0x98F5 0x7839
+0x98F6 0x7847
+0x98F7 0x7851
+0x98F8 0x7866
+0x98F9 0x8448
+0x98FA 0xE9CB
+0x98FB 0x7933
+0x98FC 0x6803
+0x98FD 0x7932
+0x98FE 0x4103
+0x9940 0x4109
+0x9941 0x7991
+0x9942 0x7999
+0x9943 0x8FBB
+0x9944 0x7A06
+0x9945 0x8FBC
+0x9946 0x4167
+0x9947 0x7A91
+0x9948 0x41B2
+0x9949 0x7ABC
+0x994A 0x8279
+0x994B 0x41C4
+0x994C 0x7ACF
+0x994D 0x7ADB
+0x994E 0x41CF
+0x994F 0x4E21
+0x9950 0x7B62
+0x9951 0x7B6C
+0x9952 0x7B7B
+0x9953 0x7C12
+0x9954 0x7C1B
+0x9955 0x4260
+0x9956 0x427A
+0x9957 0x7C7B
+0x9958 0x7C9C
+0x9959 0x428C
+0x995A 0x7CB8
+0x995B 0x4294
+0x995C 0x7CED
+0x995D 0x8F93
+0x995E 0x70C0
+0x995F 0x20CCF
+0x9960 0x7DCF
+0x9961 0x7DD4
+0x9962 0x7DD0
+0x9963 0x7DFD
+0x9964 0x7FAE
+0x9965 0x7FB4
+0x9966 0x729F
+0x9967 0x4397
+0x9968 0x8020
+0x9969 0x8025
+0x996A 0x7B39
+0x996B 0x802E
+0x996C 0x8031
+0x996D 0x8054
+0x996E 0x3DCC
+0x996F 0x57B4
+0x9970 0x70A0
+0x9971 0x80B7
+0x9972 0x80E9
+0x9973 0x43ED
+0x9974 0x810C
+0x9975 0x732A
+0x9976 0x810E
+0x9977 0x8112
+0x9978 0x7560
+0x9979 0x8114
+0x997A 0x4401
+0x997B 0x3B39
+0x997C 0x8156
+0x997D-0x997E 0x8159
+0x99A1 0x4413
+0x99A2 0x583A
+0x99A3 0x817C
+0x99A4 0x8184
+0x99A5 0x4425
+0x99A6 0x8193
+0x99A7 0x442D
+0x99A8 0x81A5
+0x99A9 0x57EF
+0x99AA 0x81C1
+0x99AB 0x81E4
+0x99AC 0x8254
+0x99AD 0x448F
+0x99AE 0x82A6
+0x99AF 0x8276
+0x99B0 0x82CA
+0x99B1 0x82D8
+0x99B2 0x82FF
+0x99B3 0x44B0
+0x99B4 0x8357
+0x99B5 0x9669
+0x99B6 0x698A
+0x99B7 0x8405
+0x99B8 0x70F5
+0x99B9 0x8464
+0x99BA 0x60E3
+0x99BB 0x8488
+0x99BC 0x4504
+0x99BD 0x84BE
+0x99BE 0x84E1
+0x99BF 0x84F8
+0x99C0 0x8510
+0x99C1 0x8538
+0x99C2 0x8552
+0x99C3 0x453B
+0x99C4-0x99C5 0x856F
+0x99C6 0x85E0
+0x99C7 0x4577
+0x99C8 0x8672
+0x99C9 0x8692
+0x99CA 0x86B2
+0x99CB 0x86EF
+0x99CC 0x9645
+0x99CD 0x878B
+0x99CE 0x4606
+0x99CF 0x4617
+0x99D0 0x88AE
+0x99D1 0x88FF
+0x99D2 0x8924
+0x99D3 0x8947
+0x99D4 0x8991
+0x99D5 0x27967
+0x99D6 0x8A29
+0x99D7 0x8A38
+0x99D8 0x8A94
+0x99D9 0x8AB4
+0x99DA 0x8C51
+0x99DB 0x8CD4
+0x99DC 0x8CF2
+0x99DD 0x8D1C
+0x99DE 0x4798
+0x99DF 0x585F
+0x99E0 0x8DC3
+0x99E1 0x47ED
+0x99E2 0x4EEE
+0x99E3 0x8E3A
+0x99E4 0x55D8
+0x99E5 0x5754
+0x99E6 0x8E71
+0x99E7 0x55F5
+0x99E8 0x8EB0
+0x99E9 0x4837
+0x99EA 0x8ECE
+0x99EB 0x8EE2
+0x99EC 0x8EE4
+0x99ED 0x8EED
+0x99EE 0x8EF2
+0x99EF 0x8FB7
+0x99F0 0x8FC1
+0x99F1 0x8FCA
+0x99F2 0x8FCC
+0x99F3 0x9033
+0x99F4 0x99C4
+0x99F5 0x48AD
+0x99F6 0x98E0
+0x99F7 0x9213
+0x99F8 0x491E
+0x99F9 0x9228
+0x99FA 0x9258
+0x99FB 0x926B
+0x99FC 0x92B1
+0x99FD 0x92AE
+0x99FE 0x92BF
+0x9A40 0x92E3
+0x9A41 0x92EB
+0x9A42-0x9A43 0x92F3
+0x9A44 0x92FD
+0x9A45 0x9343
+0x9A46 0x9384
+0x9A47 0x93AD
+0x9A48 0x4945
+0x9A49 0x4951
+0x9A4A 0x9EBF
+0x9A4B 0x9417
+0x9A4C 0x5301
+0x9A4D 0x941D
+0x9A4E 0x942D
+0x9A4F 0x943E
+0x9A50 0x496A
+0x9A51 0x9454
+0x9A52 0x9479
+0x9A53 0x952D
+0x9A54 0x95A2
+0x9A55 0x49A7
+0x9A56 0x95F4
+0x9A57 0x9633
+0x9A58 0x49E5
+0x9A59 0x67A0
+0x9A5A 0x4A24
+0x9A5B 0x9740
+0x9A5C 0x4A35
+0x9A5D 0x97B2
+0x9A5E 0x97C2
+0x9A5F 0x5654
+0x9A60 0x4AE4
+0x9A61 0x60E8
+0x9A62 0x98B9
+0x9A63 0x4B19
+0x9A64 0x98F1
+0x9A65 0x5844
+0x9A66 0x990E
+0x9A67 0x9919
+0x9A68 0x51B4
+0x9A69 0x991C
+0x9A6A 0x9937
+0x9A6B 0x9942
+0x9A6C 0x995D
+0x9A6D 0x9962
+0x9A6E 0x4B70
+0x9A6F 0x99C5
+0x9A70 0x4B9D
+0x9A71 0x9A3C
+0x9A72 0x9B0F
+0x9A73 0x7A83
+0x9A74 0x9B69
+0x9A75 0x9B81
+0x9A76 0x9BDD
+0x9A77 0x9BF1
+0x9A78 0x9BF4
+0x9A79 0x4C6D
+0x9A7A 0x9C20
+0x9A7B 0x376F
+0x9A7C 0xEAA9
+0x9A7D 0x9D49
+0x9A7E 0x9C3A
+0x9AA1 0x9EFE
+0x9AA2 0x5650
+0x9AA3 0x9D93
+0x9AA4 0x9DBD
+0x9AA5 0x9DC0
+0x9AA6 0x9DFC
+0x9AA7 0x94F6
+0x9AA8 0x8FB6
+0x9AA9 0x9E7B
+0x9AAA 0x9EAC
+0x9AAB 0x9EB1
+0x9AAC 0x9EBD
+0x9AAD 0x9EC6
+0x9AAE 0x94DC
+0x9AAF 0x9EE2
+0x9AB0 0x9EF1
+0x9AB1 0x9EF8
+0x9AB2 0x7AC8
+0x9AB3 0x9F44
+0x9AB4-0x9AB6 0xEABF
+0x9AB7 0x691A
+0x9AB8 0x94C3
+0x9AB9 0x59AC
+0x9ABA 0xEAC5
+0x9ABB 0x5840
+0x9ABC 0x94C1
+0x9ABD 0x37B9
+0x9ABE-0x9AC1 0xEAC9
+0x9AC2 0x5757
+0x9AC3 0x7173
+0x9AC4-0x9AC6 0xEACF
+0x9AC7 0x546A
+0x9AC8-0x9AC9 0xEAD3
+0x9ACA 0x549E
+0x9ACB-0x9ACC 0xEAD6
+0x9ACD 0x20C53
+0x9ACE-0x9ACF 0xEAD9
+0x9AD0 0x60E7
+0x9AD1 0xEADC
+0x9AD2 0x567A
+0x9AD3-0x9AD8 0xEADE
+0x9AD9 0x6955
+0x9ADA 0x9C2F
+0x9ADB 0x87A5
+0x9ADC 0xEAE7
+0x9ADD 0x20E0E
+0x9ADE-0x9ADF 0xEAE9
+0x9AE0 0x20F2D
+0x9AE1 0xEAEC
+0x9AE2 0x5C20
+0x9AE3 0xEAEE
+0x9AE4 0x5E0B
+0x9AE5-0x9AE6 0xEAF0
+0x9AE7 0x21076
+0x9AE8 0x671E
+0x9AE9 0x2107B
+0x9AEA-0x9AEB 0xEAF5
+0x9AEC 0x3647
+0x9AED-0x9AF0 0xEAF8
+0x9AF1 0x5364
+0x9AF2 0x84AD
+0x9AF3 0x212E3
+0x9AF4-0x9AF5 0xEAFF
+0x9AF6 0x8B81
+0x9AF7-0x9AFA 0xEB02
+0x9AFB 0x4E78
+0x9AFC 0x70BB
+0x9AFD-0x9AFE 0xEB08
+0x9B40-0x9B45 0xEB0A
+0x9B46 0x62C3
+0x9B47 0x21ED5
+0x9B48 0xEB12
+0x9B49 0x7198
+0x9B4A 0x6855
+0x9B4B 0xEB15
+0x9B4C 0x69E9
+0x9B4D 0x36C8
+0x9B4E 0x2227C
+0x9B4F-0x9B53 0xEB19
+0x9B54 0x82FD
+0x9B55-0x9B56 0xEB1F
+0x9B57 0x22AD5
+0x9B58 0x89A5
+0x9B59 0xEB23
+0x9B5A 0x8FA0
+0x9B5B 0xEB25
+0x9B5C 0x97B8
+0x9B5D 0xEB27
+0x9B5E 0x9847
+0x9B5F 0x9ABD
+0x9B60 0xEB2A
+0x9B62-0x9B64 0xEB2C
+0x9B65 0x22D08
+0x9B66-0x9B6F 0xEB30
+0x9B70 0x5FB1
+0x9B71 0x6648
+0x9B72 0x66BF
+0x9B73-0x9B75 0xEB3D
+0x9B77 0x249BA
+0x9B79-0x9B7A 0xEB43
+0x9B7C 0x20346
+0x9B7D 0x58B5
+0x9B7E 0x670E
+0x9BA1 0x6918
+0x9BA2 0xEB4A
+0x9BA3 0x27657
+0x9BA4 0x25FE2
+0x9BA5-0x9BA6 0xEB4D
+0x9BA7 0x275FE
+0x9BA8 0x2209A
+0x9BA9 0x48D0
+0x9BAA 0x4AB8
+0x9BAB 0xEB53
+0x9BAC 0x28A9A
+0x9BAD-0x9BAE 0xEB55
+0x9BAF 0x2403B
+0x9BB0 0xEB58
+0x9BB1 0x24396
+0x9BB2-0x9BB3 0xEB5A
+0x9BB4 0x51D2
+0x9BB5 0x20611
+0x9BB6 0x599F
+0x9BB7 0x21EA8
+0x9BB8 0x3BBE
+0x9BB9 0x23CFF
+0x9BBA-0x9BBB 0xEB62
+0x9BBC 0x5788
+0x9BBD 0xEB65
+0x9BBE 0x399B
+0x9BBF-0x9BC1 0xEB67
+0x9BC2 0x3762
+0x9BC3 0x221C3
+0x9BC4 0x8B5E
+0x9BC5 0x28B4E
+0x9BC7-0x9BC9 0xEB6F
+0x9BCA 0x7209
+0x9BCB 0xEB73
+0x9BCC 0x20C78
+0x9BCD 0x5965
+0x9BCE-0x9BCF 0xEB76
+0x9BD0 0x20779
+0x9BD1 0x8EDA
+0x9BD2 0xEB7A
+0x9BD3 0x528F
+0x9BD4 0x573F
+0x9BD5 0x7171
+0x9BD6-0x9BD8 0xEB7E
+0x9BD9 0x24AA7
+0x9BDA 0x55BC
+0x9BDB 0xEB83
+0x9BDC 0x2546E
+0x9BDD 0x26B52
+0x9BDF 0x3473
+0x9BE0 0xEB88
+0x9BE1 0x27632
+0x9BE2 0xEB8A
+0x9BE3 0x4718
+0x9BE4 0xEB8C
+0x9BE5 0x25566
+0x9BE6 0x257C7
+0x9BE7 0x2493F
+0x9BE8 0xEB90
+0x9BE9 0x5066
+0x9BEA 0x34FB
+0x9BEB 0xEB93
+0x9BED 0xEB95
+0x9BEE 0x477C
+0x9BEF 0x28948
+0x9BF0 0x25AAE
+0x9BF1 0xEB99
+0x9BF2 0x25C06
+0x9BF3 0xEB9B
+0x9BF4 0x57A1
+0x9BF5 0x7151
+0x9BF7 0xEB9F
+0x9BF8 0x27C12
+0x9BF9 0x9056
+0x9BFA 0xEBA2
+0x9BFB 0x24F9A
+0x9BFC 0x8B62
+0x9BFD-0x9BFE 0xEBA5
+0x9C40 0x5D5B
+0x9C41 0x26BF7
+0x9C43-0x9C44 0xEBAA
+0x9C45 0x8AEA
+0x9C46 0x249F6
+0x9C47 0xEBAE
+0x9C48 0x23FEF
+0x9C49 0x26512
+0x9C4A 0x4BC0
+0x9C4B-0x9C4C 0xEBB2
+0x9C4D 0x2271B
+0x9C4E 0x9465
+0x9C4F 0x257E1
+0x9C50 0x6195
+0x9C51 0x5A27
+0x9C52 0x2F8CD
+0x9C54 0x56B9
+0x9C55 0x24521
+0x9C56 0xEBBD
+0x9C57 0x4E6A
+0x9C58 0xEBBF
+0x9C59 0x9656
+0x9C5A 0x6D8F
+0x9C5B 0x26CBD
+0x9C5C 0x3618
+0x9C5D 0x8977
+0x9C5E 0xEBC5
+0x9C5F 0x2686E
+0x9C60 0x26411
+0x9C61 0x2685E
+0x9C63 0xEBCA
+0x9C64 0x7B42
+0x9C65 0xEBCC
+0x9C66 0x20A11
+0x9C67 0xEBCE
+0x9C69 0xEBD0
+0x9C6A 0x7A45
+0x9C6C 0x269FA
+0x9C6D 0x9A26
+0x9C6E 0xEBD5
+0x9C6F 0x365F
+0x9C70-0x9C71 0xEBD7
+0x9C72 0x7983
+0x9C73-0x9C74 0xEBDA
+0x9C75 0x5D2C
+0x9C76 0xEBDD
+0x9C78 0xEBDF
+0x9C79 0x46D0
+0x9C7A 0xEBE1
+0x9C7B 0x753B
+0x9C7C 0x8865
+0x9C7D 0xEBE4
+0x9C7E 0x58B6
+0x9CA1 0x371C
+0x9CA2 0x2258D
+0x9CA3-0x9CA4 0xEBE8
+0x9CA5 0x3C54
+0x9CA6-0x9CA7 0xEBEB
+0x9CA8 0x9281
+0x9CA9 0x2217A
+0x9CAA 0xEBEF
+0x9CAB 0x9330
+0x9CAC 0x272E6
+0x9CAD 0xEBF2
+0x9CAE 0x6C39
+0x9CAF 0x949F
+0x9CB0 0xEBF5
+0x9CB1 0x20EF8
+0x9CB2 0x8827
+0x9CB3 0x88F5
+0x9CB4-0x9CB5 0xEBF9
+0x9CB6 0x217B1
+0x9CB7 0x6EB8
+0x9CB8 0x24A2A
+0x9CB9 0xEBFE
+0x9CBA 0x39A4
+0x9CBB 0x36B9
+0x9CBE 0x453F
+0x9CBF 0x66B6
+0x9CC0 0x29CAD
+0x9CC1 0x298A4
+0x9CC2 0x8943
+0x9CC3-0x9CC4 0xEC08
+0x9CC5 0x56D6
+0x9CC6 0x40DF
+0x9CC7 0x2160A
+0x9CC8 0x39A1
+0x9CC9 0x2372F
+0x9CCA 0xEC0F
+0x9CCB 0x213C5
+0x9CCC 0x71AD
+0x9CCD 0x8366
+0x9CCE 0xEC13
+0x9CCF 0x291A8
+0x9CD1 0x4CB7
+0x9CD2 0x270AF
+0x9CD3 0x289AB
+0x9CD4-0x9CD7 0xEC19
+0x9CD8 0x2417A
+0x9CD9 0x7B43
+0x9CDA 0x797E
+0x9CDB 0x28009
+0x9CDC 0x6FB5
+0x9CDD 0x2A2DF
+0x9CDE 0x6A03
+0x9CDF 0xEC24
+0x9CE0 0x53A2
+0x9CE1 0xEC26
+0x9CE2 0x93BF
+0x9CE3 0x6836
+0x9CE4 0x975D
+0x9CE5 0x2816F
+0x9CE6 0xEC2B
+0x9CE7 0x269B5
+0x9CE8 0x213ED
+0x9CE9 0x2322F
+0x9CEA 0xEC2F
+0x9CEB 0x5D85
+0x9CEC 0x28C30
+0x9CED 0xEC32
+0x9CEE 0x5715
+0x9CEF 0x9823
+0x9CF0 0x28949
+0x9CF1 0x5DAB
+0x9CF2 0x24988
+0x9CF3 0x65BE
+0x9CF4 0x69D5
+0x9CF5 0x53D2
+0x9CF6 0x24AA5
+0x9CF7 0x23F81
+0x9CF8 0x3C11
+0x9CF9 0x6736
+0x9CFA 0xEC3F
+0x9CFB 0x280F4
+0x9CFC 0x2812E
+0x9CFD 0x21FA1
+0x9CFE 0xEC43
+0x9D40-0x9D45 0xEC44
+0x9D46 0x35CA
+0x9D47 0xEC4B
+0x9D48 0x286AA
+0x9D49 0x48FA
+0x9D4A 0x63E6
+0x9D4B 0xEC4F
+0x9D4C 0x7808
+0x9D4D 0x9255
+0x9D4E 0xEC52
+0x9D4F 0x43F2
+0x9D50 0xEC54
+0x9D51 0x43DF
+0x9D52-0x9D54 0xEC56
+0x9D55 0x59F8
+0x9D56 0xEC5A
+0x9D58-0x9D59 0xEC5C
+0x9D5B 0x29110
+0x9D5C 0xEC60
+0x9D5D 0x3DF7
+0x9D5E-0x9D5F 0xEC62
+0x9D60 0x8FD0
+0x9D61 0x728F
+0x9D62 0x568B
+0x9D63 0xEC67
+0x9D64 0x295E9
+0x9D65-0x9D69 0xEC69
+0x9D6A 0x2996A
+0x9D6B-0x9D6C 0xEC6F
+0x9D6D 0x29B0E
+0x9D6E-0x9D6F 0xEC72
+0x9D70 0x7E9F
+0x9D71 0xEC75
+0x9D72 0x29F23
+0x9D73 0x4CA4
+0x9D74 0x9547
+0x9D75 0xEC79
+0x9D76 0x71A2
+0x9D77 0xEC7B
+0x9D78 0x4D91
+0x9D79 0x9012
+0x9D7A 0xEC7E
+0x9D7B 0x4D9C
+0x9D7C 0x20C9C
+0x9D7D 0x8FBE
+0x9D7E 0x55C1
+0x9DA1 0x8FBA
+0x9DA2 0xEC84
+0x9DA3 0x8FB9
+0x9DA4 0x24A93
+0x9DA5 0x4509
+0x9DA6 0x7E7F
+0x9DA7 0x6F56
+0x9DA8 0x6AB1
+0x9DA9 0x4EEA
+0x9DAA 0x34E4
+0x9DAB 0x28B2C
+0x9DAC 0xEC8E
+0x9DAD 0x373A
+0x9DAE 0x8E80
+0x9DAF 0x217F5
+0x9DB0 0xEC92
+0x9DB1 0x28B6C
+0x9DB2 0x28B99
+0x9DB3 0xEC95
+0x9DB4 0x266AF
+0x9DB5 0x3DEB
+0x9DB6 0x27655
+0x9DB7 0x23CB7
+0x9DB8 0x25635
+0x9DB9 0x25956
+0x9DBA 0x4E9A
+0x9DBB 0x25E81
+0x9DBC 0x26258
+0x9DBD 0x56BF
+0x9DBE 0x20E6D
+0x9DBF 0x8E0E
+0x9DC0 0x5B6D
+0x9DC1 0x23E88
+0x9DC2 0x24C9E
+0x9DC3 0x63DE
+0x9DC5 0x217F6
+0x9DC6 0x2187B
+0x9DC7 0x6530
+0x9DC8 0x562D
+0x9DC9 0x25C4A
+0x9DCA 0x541A
+0x9DCB 0x25311
+0x9DCC 0x3DC6
+0x9DCD 0xECAF
+0x9DCE 0x4C7D
+0x9DCF 0x5622
+0x9DD0 0x561E
+0x9DD1 0x7F49
+0x9DD2 0x25ED8
+0x9DD3 0x5975
+0x9DD4 0xECB6
+0x9DD5 0x8770
+0x9DD6 0x4E1C
+0x9DD7 0x20FEA
+0x9DD8 0x20D49
+0x9DD9 0x236BA
+0x9DDA 0x8117
+0x9DDB 0x9D5E
+0x9DDC 0x8D18
+0x9DDD 0x763B
+0x9DDE 0x9C45
+0x9DDF 0x764E
+0x9DE0 0x77B9
+0x9DE1 0x9345
+0x9DE2 0x5432
+0x9DE3 0x8148
+0x9DE4 0x82F7
+0x9DE5 0x5625
+0x9DE6 0x8132
+0x9DE7 0x8418
+0x9DE8 0x80BD
+0x9DE9 0x55EA
+0x9DEA 0x7962
+0x9DEB 0x5643
+0x9DEC 0x5416
+0x9DED 0xECCF
+0x9DEE 0x35CE
+0x9DEF 0x5605
+0x9DF0 0x55F1
+0x9DF1 0x66F1
+0x9DF2 0x282E2
+0x9DF3 0x362D
+0x9DF4 0x7534
+0x9DF5 0x55F0
+0x9DF6 0x55BA
+0x9DF7 0x5497
+0x9DF8 0x5572
+0x9DF9 0x20C41
+0x9DFA 0xECDC
+0x9DFB 0x5ED0
+0x9DFC 0x25148
+0x9DFD 0x20E76
+0x9DFE 0xECE0
+0x9E40 0xECE1
+0x9E41 0x9EAB
+0x9E42 0x7D5A
+0x9E43 0x55DE
+0x9E44 0x21075
+0x9E45 0x629D
+0x9E46 0x976D
+0x9E47 0x5494
+0x9E48 0x8CCD
+0x9E49 0x71F6
+0x9E4A 0x9176
+0x9E4B 0x63FC
+0x9E4C 0x63B9
+0x9E4D 0x63FE
+0x9E4E 0x5569
+0x9E4F 0xECF0
+0x9E50 0x9C72
+0x9E51 0xECF2
+0x9E52 0x519A
+0x9E53 0x34DF
+0x9E54 0x20DA7
+0x9E55 0x51A7
+0x9E56 0x544D
+0x9E57 0x551E
+0x9E58 0x5513
+0x9E59 0x7666
+0x9E5A 0x8E2D
+0x9E5B 0xECFC
+0x9E5C 0x75B1
+0x9E5D 0x80B6
+0x9E5E 0x8804
+0x9E5F 0x8786
+0x9E60 0x88C7
+0x9E61 0x81B6
+0x9E62 0x841C
+0x9E63 0x210C1
+0x9E64 0x44EC
+0x9E65 0x7304
+0x9E66 0x24706
+0x9E67 0x5B90
+0x9E68 0x830B
+0x9E69 0x26893
+0x9E6A 0x567B
+0x9E6B 0x226F4
+0x9E6C 0x27D2F
+0x9E6D 0x241A3
+0x9E6E 0x27D73
+0x9E6F 0x26ED0
+0x9E70 0xED11
+0x9E71 0x9170
+0x9E72 0x211D9
+0x9E73 0x9208
+0x9E74 0x23CFC
+0x9E75 0x2A6A9
+0x9E76 0x20EAC
+0x9E77 0x20EF9
+0x9E78 0x7266
+0x9E79 0x21CA2
+0x9E7A 0x474E
+0x9E7B 0x24FC2
+0x9E7C 0xED1D
+0x9E7D 0x20FEB
+0x9E7E 0x40FA
+0x9EA1 0x9C5D
+0x9EA2 0x651F
+0x9EA3 0x22DA0
+0x9EA4 0x48F3
+0x9EA5 0xED24
+0x9EA6 0x29D7C
+0x9EA7 0x20FEC
+0x9EA8 0x20E0A
+0x9EAA 0xED29
+0x9EAB 0x20FED
+0x9EAD 0xED2C
+0x9EAE 0x21187
+0x9EAF 0x71A3
+0x9EB0 0x7E8E
+0x9EB1 0x9D50
+0x9EB2 0x4E1A
+0x9EB3 0x4E04
+0x9EB4 0x3577
+0x9EB5 0x5B0D
+0x9EB6 0x6CB2
+0x9EB7 0x5367
+0x9EB8 0x36AC
+0x9EB9 0x39DC
+0x9EBA 0x537D
+0x9EBB 0x36A5
+0x9EBC 0xED3B
+0x9EBD 0x589A
+0x9EBE 0x24B6E
+0x9EBF 0x822D
+0x9EC0 0x544B
+0x9EC1 0x57AA
+0x9EC2 0xED41
+0x9EC3 0x20979
+0x9EC5 0x3A52
+0x9EC6 0x22465
+0x9EC7 0x7374
+0x9EC8 0x29EAC
+0x9EC9 0x4D09
+0x9ECA 0x9BED
+0x9ECB 0x23CFE
+0x9ECC 0x29F30
+0x9ECD 0x4C5B
+0x9ECE 0x24FA9
+0x9ECF 0x2959E
+0x9ED0 0xED4F
+0x9ED1 0x845C
+0x9ED2 0x23DB6
+0x9ED3 0xED52
+0x9ED4 0x267B3
+0x9ED5 0x23720
+0x9ED6 0x632E
+0x9ED7 0x7D25
+0x9ED8 0x23EF7
+0x9ED9 0x23E2C
+0x9EDA 0x3A2A
+0x9EDB 0x9008
+0x9EDC 0x52CC
+0x9EDD 0x3E74
+0x9EDE 0x367A
+0x9EDF 0x45E9
+0x9EE0 0xED5F
+0x9EE1 0x7640
+0x9EE2 0x5AF0
+0x9EE3 0x20EB6
+0x9EE4 0x787A
+0x9EE5 0x47B6
+0x9EE6 0x58A7
+0x9EE7 0x40BF
+0x9EE8 0x567C
+0x9EE9 0x9B8B
+0x9EEA 0x5D74
+0x9EEB 0x7654
+0x9EEC 0xED6B
+0x9EED 0x9E85
+0x9EEE 0x4CE1
+0x9EF0 0x37FB
+0x9EF1 0x6119
+0x9EF2 0x230DA
+0x9EF3 0x243F2
+0x9EF5 0x565D
+0x9EF6 0x212A9
+0x9EF7 0x57A7
+0x9EF8 0x24963
+0x9EF9 0xED78
+0x9EFA 0x5234
+0x9EFB 0x270AE
+0x9EFC 0x35AD
+0x9EFE 0x9D7C
+0x9F40 0x7C56
+0x9F41 0x9B39
+0x9F42 0x57DE
+0x9F43 0x2176C
+0x9F44 0x5C53
+0x9F45 0x64D3
+0x9F46-0x9F47 0xED84
+0x9F48 0x27164
+0x9F49 0x86AD
+0x9F4A 0xED88
+0x9F4B 0x26D22
+0x9F4C 0x24AE2
+0x9F4D 0xED8B
+0x9F4F 0x51FE
+0x9F50 0xED8E
+0x9F51 0x5D8E
+0x9F52 0x9703
+0x9F53 0x21DD1
+0x9F54 0x9E81
+0x9F55 0x904C
+0x9F56 0x7B1F
+0x9F57 0x9B02
+0x9F58 0x5CD1
+0x9F59 0x7BA3
+0x9F5A 0x6268
+0x9F5B 0x6335
+0x9F5C 0x9AFF
+0x9F5D 0x7BCF
+0x9F5E 0x9B2A
+0x9F5F 0x7C7E
+0x9F61 0x7C42
+0x9F62 0x7C86
+0x9F63 0x9C15
+0x9F64 0x7BFC
+0x9F65 0x9B09
+0x9F67 0x9C1B
+0x9F68 0x2493E
+0x9F69 0x9F5A
+0x9F6A 0x5573
+0x9F6B 0x5BC3
+0x9F6C 0x4FFD
+0x9F6D 0x9E98
+0x9F6E 0x4FF2
+0x9F6F 0x5260
+0x9F70 0x3E06
+0x9F71 0x52D1
+0x9F72 0x5767
+0x9F73 0x5056
+0x9F74 0x59B7
+0x9F75 0x5E12
+0x9F76 0x97C8
+0x9F77 0x9DAB
+0x9F78 0x8F5C
+0x9F79 0x5469
+0x9F7A 0x97B4
+0x9F7B 0x9940
+0x9F7C 0x97BA
+0x9F7D 0x532C
+0x9F7E 0x6130
+0x9FA1 0x692C
+0x9FA2 0x53DA
+0x9FA3 0x9C0A
+0x9FA4 0x9D02
+0x9FA5 0x4C3B
+0x9FA6 0x9641
+0x9FA7 0x6980
+0x9FA8 0x50A6
+0x9FA9 0x7546
+0x9FAA 0x2176D
+0x9FAB 0x99DA
+0x9FAC 0x5273
+0x9FAE 0x9159
+0x9FAF 0x9681
+0x9FB0 0x915C
+0x9FB2 0x9151
+0x9FB3 0xEDCF
+0x9FB4 0x637F
+0x9FB5 0x26D23
+0x9FB6 0x6ACA
+0x9FB7 0x5611
+0x9FB8 0x918E
+0x9FB9 0x757A
+0x9FBA 0x6285
+0x9FBB 0x203FC
+0x9FBC 0x734F
+0x9FBD 0x7C70
+0x9FBE 0xEDDA
+0x9FBF 0x23CFD
+0x9FC1 0x24919
+0x9FC2 0x76D6
+0x9FC3 0x9B9D
+0x9FC4 0x4E2A
+0x9FC5 0x20CD4
+0x9FC6 0x83BE
+0x9FC7 0x8842
+0x9FC9 0x5C4A
+0x9FCA 0x69C0
+0x9FCC 0x577A
+0x9FCD 0x521F
+0x9FCE 0x5DF5
+0x9FCF 0x4ECE
+0x9FD0 0x6C31
+0x9FD1 0xEDED
+0x9FD2 0x4F39
+0x9FD3 0x549C
+0x9FD4 0x54DA
+0x9FD5 0x529A
+0x9FD6 0x8D82
+0x9FD7 0x35FE
+0x9FD9 0x35F3
+0x9FDB 0x6B52
+0x9FDC 0x917C
+0x9FDD 0x9FA5
+0x9FDE 0x9B97
+0x9FDF 0x982E
+0x9FE0 0x98B4
+0x9FE1 0x9ABA
+0x9FE2 0x9EA8
+0x9FE3 0x9E84
+0x9FE4 0x717A
+0x9FE5 0x7B14
+0x9FE7 0x6BFA
+0x9FE8 0x8818
+0x9FE9 0x7F78
+0x9FEB 0x5620
+0x9FEC 0xEE08
+0x9FED 0x8E77
+0x9FEE 0x9F53
+0x9FF0 0x8DD4
+0x9FF1 0x8E4F
+0x9FF2 0x9E1C
+0x9FF3 0x8E01
+0x9FF4 0x6282
+0x9FF5 0x2837D
+0x9FF6 0x8E28
+0x9FF7 0x8E75
+0x9FF8 0x7AD3
+0x9FF9 0x24A77
+0x9FFA 0x7A3E
+0x9FFB 0x78D8
+0x9FFC 0x6CEA
+0x9FFD 0x8A67
+0x9FFE 0x7607
+0xA040 0x28A5A
+0xA041 0x9F26
+0xA042 0x6CCE
+0xA043 0x87D6
+0xA044 0x75C3
+0xA045 0x2A2B2
+0xA046 0x7853
+0xA047 0x2F840
+0xA048 0x8D0C
+0xA049 0x72E2
+0xA04A 0x7371
+0xA04B 0x8B2D
+0xA04C 0x7302
+0xA04D 0x74F1
+0xA04E 0x8CEB
+0xA04F 0x24ABB
+0xA050 0x862F
+0xA051 0x5FBA
+0xA052 0x88A0
+0xA053 0x44B7
+0xA055 0x2183B
+0xA056 0x26E05
+0xA058 0x8A7E
+0xA059 0x2251B
+0xA05B 0x60FD
+0xA05C 0x7667
+0xA05D 0x9AD7
+0xA05E 0x9D44
+0xA05F 0x936E
+0xA060 0x9B8F
+0xA061 0x87F5
+0xA064 0x8CF7
+0xA065 0x732C
+0xA066 0x9721
+0xA067 0x9BB0
+0xA068 0x35D6
+0xA069 0x72B2
+0xA06A 0x4C07
+0xA06B 0x7C51
+0xA06C 0x994A
+0xA06D 0x26159
+0xA06E 0x6159
+0xA06F 0x4C04
+0xA070 0x9E96
+0xA071 0x617D
+0xA073 0x575F
+0xA074 0x616F
+0xA075 0x62A6
+0xA076 0x6239
+0xA078 0x3A5C
+0xA079 0x61E2
+0xA07A 0x53AA
+0xA07B 0x233F5
+0xA07C 0x6364
+0xA07D 0x6802
+0xA07E 0x35D2
+0xA0A1 0x5D57
+0xA0A2 0x28BC2
+0xA0A3 0x8FDA
+0xA0A4 0xEE5D
+0xA0A6 0x50D9
+0xA0A7 0x21D46
+0xA0A8 0x7906
+0xA0A9 0x5332
+0xA0AA 0x9638
+0xA0AB 0x20F3B
+0xA0AC 0x4065
+0xA0AE 0x77FE
+0xA0B0 0x7CC2
+0xA0B1 0xEE6A
+0xA0B2 0x7CDA
+0xA0B3 0x7A2D
+0xA0B4 0x8066
+0xA0B5 0x8063
+0xA0B6 0x7D4D
+0xA0B7 0x7505
+0xA0B8 0x74F2
+0xA0B9 0x8994
+0xA0BA 0x821A
+0xA0BB 0x670C
+0xA0BC 0x8062
+0xA0BD 0x27486
+0xA0BE 0x805B
+0xA0BF 0x74F0
+0xA0C0 0x8103
+0xA0C1 0x7724
+0xA0C2 0x8989
+0xA0C3 0x267CC
+0xA0C4 0x7553
+0xA0C5 0x26ED1
+0xA0C6 0x87A9
+0xA0C7 0x87CE
+0xA0C8 0x81C8
+0xA0C9 0x878C
+0xA0CA 0x8A49
+0xA0CB 0x8CAD
+0xA0CC 0x8B43
+0xA0CD 0x772B
+0xA0CE 0x74F8
+0xA0CF 0x84DA
+0xA0D0 0x3635
+0xA0D1 0x69B2
+0xA0D2 0x8DA6
+0xA0D4 0x89A9
+0xA0D6 0x6DB9
+0xA0D7 0x87C1
+0xA0D8 0x24011
+0xA0D9 0x74E7
+0xA0DA 0x3DDB
+0xA0DB 0x7176
+0xA0DC 0x60A4
+0xA0DD 0x619C
+0xA0DE 0x3CD1
+0xA0E0 0x6077
+0xA0E2 0x7F71
+0xA0E3 0x28B2D
+0xA0E5 0x60E9
+0xA0E6 0x4B7E
+0xA0E7 0x5220
+0xA0E8 0x3C18
+0xA0E9 0x23CC7
+0xA0EA 0x25ED7
+0xA0EB 0x27656
+0xA0EC 0xEEA5
+0xA0ED 0x21944
+0xA0EE 0x212FE
+0xA0EF 0x29903
+0xA0F0 0x26DDC
+0xA0F1 0x270AD
+0xA0F2 0x5CC1
+0xA0F3 0x261AD
+0xA0F4 0x28A0F
+0xA0F5 0x23677
+0xA0F6 0x200EE
+0xA0F7 0xEEB0
+0xA0F8 0x24F0E
+0xA0F9 0x4562
+0xA0FA 0x5B1F
+0xA0FB 0xEEB4
+0xA0FC 0x9F50
+0xA0FD 0x9EA6
+0xA0FE 0xEEB7
+0xA140 0x3000
+0xA141 0xFF0C
+0xA142-0xA143 0x3001
+0xA144 0xFF0E
+0xA145 0x2022
+0xA146 0xFF1B
+0xA147 0xFF1A
+0xA148 0xFF1F
+0xA149 0xFF01
+0xA14A 0xFE30
+0xA14B 0x2026
+0xA14C 0x2025
+0xA14D 0xFE50
+0xA14E 0xFF64
+0xA14F 0xFE52
+0xA150 0x00B7
+0xA151-0xA154 0xFE54
+0xA155 0xFF5C
+0xA156 0x2013
+0xA157 0xFE31
+0xA158 0x2014
+0xA159 0xFE33
+0xA15B 0xFE34
+0xA15C 0xFE4F
+0xA15D-0xA15E 0xFF08
+0xA15F-0xA160 0xFE35
+0xA161 0xFF5B
+0xA162 0xFF5D
+0xA163-0xA164 0xFE37
+0xA165-0xA166 0x3014
+0xA167-0xA168 0xFE39
+0xA169-0xA16A 0x3010
+0xA16B-0xA16C 0xFE3B
+0xA16D-0xA16E 0x300A
+0xA16F-0xA170 0xFE3D
+0xA171-0xA172 0x3008
+0xA173-0xA174 0xFE3F
+0xA175-0xA176 0x300C
+0xA177-0xA178 0xFE41
+0xA179-0xA17A 0x300E
+0xA17B-0xA17C 0xFE43
+0xA17D-0xA17E 0xFE59
+0xA1A1-0xA1A4 0xFE5B
+0xA1A5-0xA1A6 0x2018
+0xA1A7-0xA1A8 0x201C
+0xA1A9-0xA1AA 0x301D
+0xA1AB 0x2035
+0xA1AC 0x2032
+0xA1AD 0xFF03
+0xA1AE 0xFF06
+0xA1AF 0xFF0A
+0xA1B0 0x203B
+0xA1B1 0x00A7
+0xA1B2 0x3003
+0xA1B3 0x25CB
+0xA1B4 0x25CF
+0xA1B5 0x25B3
+0xA1B6 0x25B2
+0xA1B7 0x25CE
+0xA1B8 0x2606
+0xA1B9 0x2605
+0xA1BA 0x25C7
+0xA1BB 0x25C6
+0xA1BC 0x25A1
+0xA1BD 0x25A0
+0xA1BE 0x25BD
+0xA1BF 0x25BC
+0xA1C0 0x32A3
+0xA1C1 0x2105
+0xA1C2 0x203E
+0xA1C4 0xFF3F
+0xA1C6-0xA1C7 0xFE49
+0xA1C8-0xA1C9 0xFE4D
+0xA1CA-0xA1CB 0xFE4B
+0xA1CC-0xA1CE 0xFE5F
+0xA1CF 0xFF0B
+0xA1D0 0xFF0D
+0xA1D1 0x00D7
+0xA1D2 0x00F7
+0xA1D3 0x00B1
+0xA1D4 0x221A
+0xA1D5 0xFF1C
+0xA1D6 0xFF1E
+0xA1D7 0xFF1D
+0xA1D8-0xA1D9 0x2266
+0xA1DA 0x2260
+0xA1DB 0x221E
+0xA1DC 0x2252
+0xA1DD 0x2261
+0xA1DE-0xA1E2 0xFE62
+0xA1E3 0x223C
+0xA1E4-0xA1E5 0x2229
+0xA1E6 0x22A5
+0xA1E7 0x2220
+0xA1E8 0x221F
+0xA1E9 0x22BF
+0xA1EA 0x33D2
+0xA1EB 0x33D1
+0xA1EC 0x222B
+0xA1ED 0x222E
+0xA1EE 0x2235
+0xA1EF 0x2234
+0xA1F0 0x2640
+0xA1F1 0x2642
+0xA1F2 0x2641
+0xA1F3 0x2609
+0xA1F4 0x2191
+0xA1F5 0x2193
+0xA1F6 0x2190
+0xA1F7 0x2192
+0xA1F8-0xA1F9 0x2196
+0xA1FA 0x2199
+0xA1FB 0x2198
+0xA1FC 0x2225
+0xA1FD 0x2223
+0xA241 0xFF0F
+0xA242 0xFF3C
+0xA243 0xFF04
+0xA244 0x00A5
+0xA245 0x3012
+0xA246-0xA247 0x00A2
+0xA248 0xFF05
+0xA249 0xFF20
+0xA24A 0x2103
+0xA24B 0x2109
+0xA24C-0xA24E 0xFE69
+0xA24F 0x33D5
+0xA250-0xA252 0x339C
+0xA253 0x33CE
+0xA254 0x33A1
+0xA255-0xA256 0x338E
+0xA257 0x33C4
+0xA258 0x00B0
+0xA259 0x5159
+0xA25A 0x515B
+0xA25B 0x515E
+0xA25C 0x515D
+0xA25D 0x5161
+0xA25E 0x5163
+0xA25F 0x55E7
+0xA260 0x74E9
+0xA261 0x7CCE
+0xA262-0xA269 0x2581
+0xA26A 0x258F
+0xA26B 0x258E
+0xA26C 0x258D
+0xA26D 0x258C
+0xA26E 0x258B
+0xA26F 0x258A
+0xA270 0x2589
+0xA271 0x253C
+0xA272 0x2534
+0xA273 0x252C
+0xA274 0x2524
+0xA275 0x251C
+0xA276 0x2594
+0xA277 0x2500
+0xA278 0x2502
+0xA279 0x2595
+0xA27A 0x250C
+0xA27B 0x2510
+0xA27C 0x2514
+0xA27D 0x2518
+0xA2A8-0xA2A9 0x25E2
+0xA2AA 0x25E5
+0xA2AB 0x25E4
+0xA2AC-0xA2AE 0x2571
+0xA2AF-0xA2B8 0xFF10
+0xA2B9-0xA2C2 0x2160
+0xA2C3-0xA2CB 0x3021
+0xA2CD 0x5344
+0xA2CF-0xA2E8 0xFF21
+0xA2E9-0xA2FE 0xFF41
+0xA340-0xA343 0xFF57
+0xA344-0xA354 0x0391
+0xA355-0xA35B 0x03A3
+0xA35C-0xA36C 0x03B1
+0xA36D-0xA373 0x03C3
+0xA374-0xA37E 0x3105
+0xA3A1-0xA3BA 0x3110
+0xA3BB 0x02D9
+0xA3BC-0xA3BD 0x02C9
+0xA3BE 0x02C7
+0xA3BF 0x02CB
+0xA440 0x4E00
+0xA441 0x4E59
+0xA442 0x4E01
+0xA443 0x4E03
+0xA444 0x4E43
+0xA445 0x4E5D
+0xA446 0x4E86
+0xA447 0x4E8C
+0xA448 0x4EBA
+0xA449 0x513F
+0xA44A 0x5165
+0xA44B 0x516B
+0xA44C 0x51E0
+0xA44D-0xA44E 0x5200
+0xA44F 0x529B
+0xA450 0x5315
+0xA451 0x5341
+0xA452 0x535C
+0xA453 0x53C8
+0xA454 0x4E09
+0xA455 0x4E0B
+0xA456 0x4E08
+0xA457 0x4E0A
+0xA458 0x4E2B
+0xA459 0x4E38
+0xA45A 0x51E1
+0xA45B 0x4E45
+0xA45C 0x4E48
+0xA45D 0x4E5F
+0xA45E 0x4E5E
+0xA45F 0x4E8E
+0xA460 0x4EA1
+0xA461 0x5140
+0xA462 0x5203
+0xA463 0x52FA
+0xA464 0x5343
+0xA465 0x53C9
+0xA466 0x53E3
+0xA467 0x571F
+0xA468 0x58EB
+0xA469 0x5915
+0xA46A 0x5927
+0xA46B 0x5973
+0xA46C-0xA46D 0x5B50
+0xA46E 0x5B53
+0xA46F 0x5BF8
+0xA470 0x5C0F
+0xA471 0x5C22
+0xA472 0x5C38
+0xA473 0x5C71
+0xA474 0x5DDD
+0xA475 0x5DE5
+0xA476-0xA478 0x5DF1
+0xA479 0x5DFE
+0xA47A 0x5E72
+0xA47B 0x5EFE
+0xA47C 0x5F0B
+0xA47D 0x5F13
+0xA47E 0x624D
+0xA4A1 0x4E11
+0xA4A2 0x4E10
+0xA4A3 0x4E0D
+0xA4A4 0x4E2D
+0xA4A5 0x4E30
+0xA4A6 0x4E39
+0xA4A7 0x4E4B
+0xA4A8 0x5C39
+0xA4A9 0x4E88
+0xA4AA 0x4E91
+0xA4AB 0x4E95
+0xA4AC 0x4E92
+0xA4AD 0x4E94
+0xA4AE 0x4EA2
+0xA4AF 0x4EC1
+0xA4B0 0x4EC0
+0xA4B1 0x4EC3
+0xA4B2-0xA4B3 0x4EC6
+0xA4B4 0x4ECD
+0xA4B5-0xA4B6 0x4ECA
+0xA4B7 0x4EC4
+0xA4B8 0x5143
+0xA4B9 0x5141
+0xA4BA 0x5167
+0xA4BB-0xA4BC 0x516D
+0xA4BD 0x516C
+0xA4BE 0x5197
+0xA4BF 0x51F6
+0xA4C0-0xA4C2 0x5206
+0xA4C3 0x52FB
+0xA4C4-0xA4C5 0x52FE
+0xA4C6 0x5316
+0xA4C7 0x5339
+0xA4C8 0x5348
+0xA4C9 0x5347
+0xA4CA 0x5345
+0xA4CB 0x535E
+0xA4CC 0x5384
+0xA4CD 0x53CB
+0xA4CE 0x53CA
+0xA4CF 0x53CD
+0xA4D0 0x58EC
+0xA4D1 0x5929
+0xA4D2 0x592B
+0xA4D3 0x592A
+0xA4D4 0x592D
+0xA4D5 0x5B54
+0xA4D6 0x5C11
+0xA4D7 0x5C24
+0xA4D8 0x5C3A
+0xA4D9 0x5C6F
+0xA4DA 0x5DF4
+0xA4DB 0x5E7B
+0xA4DC 0x5EFF
+0xA4DD-0xA4DE 0x5F14
+0xA4DF 0x5FC3
+0xA4E0 0x6208
+0xA4E1 0x6236
+0xA4E2 0x624B
+0xA4E3 0x624E
+0xA4E4 0x652F
+0xA4E5 0x6587
+0xA4E6 0x6597
+0xA4E7 0x65A4
+0xA4E8 0x65B9
+0xA4E9 0x65E5
+0xA4EA 0x66F0
+0xA4EB 0x6708
+0xA4EC 0x6728
+0xA4ED 0x6B20
+0xA4EE 0x6B62
+0xA4EF 0x6B79
+0xA4F0 0x6BCB
+0xA4F1 0x6BD4
+0xA4F2 0x6BDB
+0xA4F3 0x6C0F
+0xA4F4 0x6C34
+0xA4F5 0x706B
+0xA4F6 0x722A
+0xA4F7 0x7236
+0xA4F8 0x723B
+0xA4F9 0x7247
+0xA4FA 0x7259
+0xA4FB 0x725B
+0xA4FC 0x72AC
+0xA4FD 0x738B
+0xA4FE 0x4E19
+0xA540 0x4E16
+0xA541 0x4E15
+0xA542 0x4E14
+0xA543 0x4E18
+0xA544 0x4E3B
+0xA545 0x4E4D
+0xA546 0x4E4F
+0xA547 0x4E4E
+0xA548 0x4EE5
+0xA549 0x4ED8
+0xA54A-0xA54D 0x4ED4
+0xA54E-0xA54F 0x4EE3
+0xA550 0x4ED9
+0xA551 0x4EDE
+0xA552 0x5145
+0xA553 0x5144
+0xA554-0xA555 0x5189
+0xA556 0x51AC
+0xA557-0xA558 0x51F9
+0xA559 0x51F8
+0xA55A 0x520A
+0xA55B 0x52A0
+0xA55C 0x529F
+0xA55D-0xA55E 0x5305
+0xA55F 0x5317
+0xA560 0x531D
+0xA561 0x4EDF
+0xA562 0x534A
+0xA563 0x5349
+0xA564 0x5361
+0xA565 0x5360
+0xA566 0x536F
+0xA567 0x536E
+0xA568 0x53BB
+0xA569 0x53EF
+0xA56A 0x53E4
+0xA56B 0x53F3
+0xA56C 0x53EC
+0xA56D 0x53EE
+0xA56E 0x53E9
+0xA56F 0x53E8
+0xA570 0x53FC
+0xA571 0x53F8
+0xA572 0x53F5
+0xA573 0x53EB
+0xA574 0x53E6
+0xA575 0x53EA
+0xA576 0x53F2
+0xA577 0x53F1
+0xA578 0x53F0
+0xA579 0x53E5
+0xA57A 0x53ED
+0xA57B 0x53FB
+0xA57C 0x56DB
+0xA57D 0x56DA
+0xA57E 0x5916
+0xA5A1 0x592E
+0xA5A2 0x5931
+0xA5A3 0x5974
+0xA5A4 0x5976
+0xA5A5 0x5B55
+0xA5A6 0x5B83
+0xA5A7 0x5C3C
+0xA5A8 0x5DE8
+0xA5A9 0x5DE7
+0xA5AA 0x5DE6
+0xA5AB-0xA5AC 0x5E02
+0xA5AD 0x5E73
+0xA5AE 0x5E7C
+0xA5AF 0x5F01
+0xA5B0 0x5F18
+0xA5B1 0x5F17
+0xA5B2 0x5FC5
+0xA5B3 0x620A
+0xA5B4-0xA5B5 0x6253
+0xA5B6 0x6252
+0xA5B7 0x6251
+0xA5B8 0x65A5
+0xA5B9 0x65E6
+0xA5BA 0x672E
+0xA5BB 0x672C
+0xA5BC-0xA5BD 0x672A
+0xA5BE 0x672D
+0xA5BF 0x6B63
+0xA5C0 0x6BCD
+0xA5C1 0x6C11
+0xA5C2 0x6C10
+0xA5C3 0x6C38
+0xA5C4 0x6C41
+0xA5C5 0x6C40
+0xA5C6 0x6C3E
+0xA5C7 0x72AF
+0xA5C8 0x7384
+0xA5C9 0x7389
+0xA5CA 0x74DC
+0xA5CB 0x74E6
+0xA5CC 0x7518
+0xA5CD 0x751F
+0xA5CE-0xA5CF 0x7528
+0xA5D0-0xA5D3 0x7530
+0xA5D4 0x758B
+0xA5D5 0x767D
+0xA5D6 0x76AE
+0xA5D7 0x76BF
+0xA5D8 0x76EE
+0xA5D9 0x77DB
+0xA5DA 0x77E2
+0xA5DB 0x77F3
+0xA5DC 0x793A
+0xA5DD 0x79BE
+0xA5DE 0x7A74
+0xA5DF 0x7ACB
+0xA5E0-0xA5E1 0x4E1E
+0xA5E2-0xA5E3 0x4E52
+0xA5E4 0x4E69
+0xA5E5 0x4E99
+0xA5E6 0x4EA4
+0xA5E7 0x4EA6
+0xA5E8 0x4EA5
+0xA5E9 0x4EFF
+0xA5EA 0x4F09
+0xA5EB 0x4F19
+0xA5EC 0x4F0A
+0xA5ED 0x4F15
+0xA5EE 0x4F0D
+0xA5EF-0xA5F0 0x4F10
+0xA5F1 0x4F0F
+0xA5F2 0x4EF2
+0xA5F3 0x4EF6
+0xA5F4 0x4EFB
+0xA5F5 0x4EF0
+0xA5F6 0x4EF3
+0xA5F7 0x4EFD
+0xA5F8 0x4F01
+0xA5F9 0x4F0B
+0xA5FA 0x5149
+0xA5FB 0x5147
+0xA5FC 0x5146
+0xA5FD 0x5148
+0xA5FE 0x5168
+0xA640 0x5171
+0xA641 0x518D
+0xA642 0x51B0
+0xA643 0x5217
+0xA644-0xA645 0x5211
+0xA646 0x520E
+0xA647 0x5216
+0xA648 0x52A3
+0xA649 0x5308
+0xA64A 0x5321
+0xA64B 0x5320
+0xA64C-0xA64D 0x5370
+0xA64E 0x5409
+0xA64F 0x540F
+0xA650 0x540C
+0xA651 0x540A
+0xA652 0x5410
+0xA653 0x5401
+0xA654 0x540B
+0xA655 0x5404
+0xA656 0x5411
+0xA657 0x540D
+0xA658 0x5408
+0xA659 0x5403
+0xA65A 0x540E
+0xA65B 0x5406
+0xA65C 0x5412
+0xA65D 0x56E0
+0xA65E 0x56DE
+0xA65F 0x56DD
+0xA660 0x5733
+0xA661 0x5730
+0xA662 0x5728
+0xA663 0x572D
+0xA664 0x572C
+0xA665 0x572F
+0xA666 0x5729
+0xA667-0xA668 0x5919
+0xA669-0xA66A 0x5937
+0xA66B 0x5984
+0xA66C 0x5978
+0xA66D 0x5983
+0xA66E 0x597D
+0xA66F 0x5979
+0xA670 0x5982
+0xA671 0x5981
+0xA672-0xA673 0x5B57
+0xA674-0xA675 0x5B87
+0xA676 0x5B85
+0xA677 0x5B89
+0xA678 0x5BFA
+0xA679 0x5C16
+0xA67A 0x5C79
+0xA67B 0x5DDE
+0xA67C 0x5E06
+0xA67D 0x5E76
+0xA67E 0x5E74
+0xA6A1 0x5F0F
+0xA6A2 0x5F1B
+0xA6A3 0x5FD9
+0xA6A4 0x5FD6
+0xA6A5 0x620E
+0xA6A6-0xA6A7 0x620C
+0xA6A8 0x6210
+0xA6A9 0x6263
+0xA6AA 0x625B
+0xA6AB 0x6258
+0xA6AC 0x6536
+0xA6AD 0x65E9
+0xA6AE 0x65E8
+0xA6AF-0xA6B0 0x65EC
+0xA6B1-0xA6B2 0x66F2
+0xA6B3 0x6709
+0xA6B4 0x673D
+0xA6B5 0x6734
+0xA6B6 0x6731
+0xA6B7 0x6735
+0xA6B8 0x6B21
+0xA6B9 0x6B64
+0xA6BA 0x6B7B
+0xA6BB 0x6C16
+0xA6BC 0x6C5D
+0xA6BD 0x6C57
+0xA6BE 0x6C59
+0xA6BF-0xA6C0 0x6C5F
+0xA6C1 0x6C50
+0xA6C2 0x6C55
+0xA6C3 0x6C61
+0xA6C4 0x6C5B
+0xA6C5-0xA6C6 0x6C4D
+0xA6C7 0x7070
+0xA6C8 0x725F
+0xA6C9 0x725D
+0xA6CA 0x767E
+0xA6CB 0x7AF9
+0xA6CC 0x7C73
+0xA6CD 0x7CF8
+0xA6CE 0x7F36
+0xA6CF 0x7F8A
+0xA6D0 0x7FBD
+0xA6D1 0x8001
+0xA6D2 0x8003
+0xA6D3 0x800C
+0xA6D4 0x8012
+0xA6D5 0x8033
+0xA6D6 0x807F
+0xA6D7 0x8089
+0xA6D8-0xA6D9 0x808B
+0xA6DA 0x81E3
+0xA6DB 0x81EA
+0xA6DC 0x81F3
+0xA6DD 0x81FC
+0xA6DE 0x820C
+0xA6DF 0x821B
+0xA6E0 0x821F
+0xA6E1 0x826E
+0xA6E2 0x8272
+0xA6E3 0x827E
+0xA6E4 0x866B
+0xA6E5 0x8840
+0xA6E6 0x884C
+0xA6E7 0x8863
+0xA6E8 0x897F
+0xA6E9 0x9621
+0xA6EA 0x4E32
+0xA6EB 0x4EA8
+0xA6EC 0x4F4D
+0xA6ED 0x4F4F
+0xA6EE 0x4F47
+0xA6EF 0x4F57
+0xA6F0 0x4F5E
+0xA6F1 0x4F34
+0xA6F2 0x4F5B
+0xA6F3 0x4F55
+0xA6F4 0x4F30
+0xA6F5-0xA6F6 0x4F50
+0xA6F7 0x4F3D
+0xA6F8 0x4F3A
+0xA6F9 0x4F38
+0xA6FA 0x4F43
+0xA6FB 0x4F54
+0xA6FC 0x4F3C
+0xA6FD 0x4F46
+0xA6FE 0x4F63
+0xA740 0x4F5C
+0xA741 0x4F60
+0xA742 0x4F2F
+0xA743 0x4F4E
+0xA744 0x4F36
+0xA745 0x4F59
+0xA746 0x4F5D
+0xA747 0x4F48
+0xA748 0x4F5A
+0xA749 0x514C
+0xA74A 0x514B
+0xA74B 0x514D
+0xA74C 0x5175
+0xA74D-0xA74E 0x51B6
+0xA74F 0x5225
+0xA750 0x5224
+0xA751-0xA752 0x5229
+0xA753 0x5228
+0xA754 0x52AB
+0xA755-0xA756 0x52A9
+0xA757 0x52AC
+0xA758 0x5323
+0xA759 0x5373
+0xA75A 0x5375
+0xA75B 0x541D
+0xA75C 0x542D
+0xA75D 0x541E
+0xA75E 0x543E
+0xA75F 0x5426
+0xA760 0x544E
+0xA761 0x5427
+0xA762 0x5446
+0xA763 0x5443
+0xA764 0x5433
+0xA765 0x5448
+0xA766 0x5442
+0xA767 0x541B
+0xA768 0x5429
+0xA769 0x544A
+0xA76A 0x5439
+0xA76B 0x543B
+0xA76C 0x5438
+0xA76D 0x542E
+0xA76E-0xA76F 0x5435
+0xA770 0x5420
+0xA771 0x543C
+0xA772 0x5440
+0xA773 0x5431
+0xA774 0x542B
+0xA775 0x541F
+0xA776 0x542C
+0xA777 0x56EA
+0xA778 0x56F0
+0xA779 0x56E4
+0xA77A 0x56EB
+0xA77B 0x574A
+0xA77C 0x5751
+0xA77D 0x5740
+0xA77E 0x574D
+0xA7A1 0x5747
+0xA7A2 0x574E
+0xA7A3 0x573E
+0xA7A4 0x5750
+0xA7A5 0x574F
+0xA7A6 0x573B
+0xA7A7 0x58EF
+0xA7A8 0x593E
+0xA7A9 0x599D
+0xA7AA 0x5992
+0xA7AB 0x59A8
+0xA7AC 0x599E
+0xA7AD 0x59A3
+0xA7AE 0x5999
+0xA7AF 0x5996
+0xA7B0 0x598D
+0xA7B1 0x59A4
+0xA7B2 0x5993
+0xA7B3 0x598A
+0xA7B4 0x59A5
+0xA7B5 0x5B5D
+0xA7B6 0x5B5C
+0xA7B7-0xA7B8 0x5B5A
+0xA7B9 0x5B8C
+0xA7BA 0x5B8B
+0xA7BB 0x5B8F
+0xA7BC 0x5C2C
+0xA7BD-0xA7BE 0x5C40
+0xA7BF 0x5C3F
+0xA7C0 0x5C3E
+0xA7C1-0xA7C2 0x5C90
+0xA7C3 0x5C94
+0xA7C4 0x5C8C
+0xA7C5 0x5DEB
+0xA7C6 0x5E0C
+0xA7C7 0x5E8F
+0xA7C8 0x5E87
+0xA7C9 0x5E8A
+0xA7CA 0x5EF7
+0xA7CB 0x5F04
+0xA7CC 0x5F1F
+0xA7CD 0x5F64
+0xA7CE 0x5F62
+0xA7CF 0x5F77
+0xA7D0 0x5F79
+0xA7D1 0x5FD8
+0xA7D2 0x5FCC
+0xA7D3 0x5FD7
+0xA7D4 0x5FCD
+0xA7D5 0x5FF1
+0xA7D6 0x5FEB
+0xA7D7 0x5FF8
+0xA7D8 0x5FEA
+0xA7D9 0x6212
+0xA7DA 0x6211
+0xA7DB 0x6284
+0xA7DC 0x6297
+0xA7DD 0x6296
+0xA7DE 0x6280
+0xA7DF 0x6276
+0xA7E0 0x6289
+0xA7E1 0x626D
+0xA7E2 0x628A
+0xA7E3 0x627C
+0xA7E4 0x627E
+0xA7E5 0x6279
+0xA7E6 0x6273
+0xA7E7 0x6292
+0xA7E8 0x626F
+0xA7E9 0x6298
+0xA7EA 0x626E
+0xA7EB 0x6295
+0xA7EC 0x6293
+0xA7ED 0x6291
+0xA7EE 0x6286
+0xA7EF 0x6539
+0xA7F0 0x653B
+0xA7F1 0x6538
+0xA7F2 0x65F1
+0xA7F3 0x66F4
+0xA7F4 0x675F
+0xA7F5-0xA7F8 0x674E
+0xA7F9 0x675C
+0xA7FA 0x6756
+0xA7FB 0x675E
+0xA7FC 0x6749
+0xA7FD 0x6746
+0xA7FE 0x6760
+0xA840 0x6753
+0xA841 0x6757
+0xA842 0x6B65
+0xA843 0x6BCF
+0xA844 0x6C42
+0xA845 0x6C5E
+0xA846 0x6C99
+0xA847 0x6C81
+0xA848-0xA849 0x6C88
+0xA84A 0x6C85
+0xA84B 0x6C9B
+0xA84C 0x6C6A
+0xA84D 0x6C7A
+0xA84E 0x6C90
+0xA84F 0x6C70
+0xA850 0x6C8C
+0xA851 0x6C68
+0xA852 0x6C96
+0xA853 0x6C92
+0xA854 0x6C7D
+0xA855 0x6C83
+0xA856 0x6C72
+0xA857 0x6C7E
+0xA858 0x6C74
+0xA859 0x6C86
+0xA85A 0x6C76
+0xA85B 0x6C8D
+0xA85C 0x6C94
+0xA85D 0x6C98
+0xA85E 0x6C82
+0xA85F 0x7076
+0xA860-0xA861 0x707C
+0xA862 0x7078
+0xA863 0x7262
+0xA864 0x7261
+0xA865 0x7260
+0xA866 0x72C4
+0xA867 0x72C2
+0xA868 0x7396
+0xA869 0x752C
+0xA86A 0x752B
+0xA86B-0xA86C 0x7537
+0xA86D 0x7682
+0xA86E 0x76EF
+0xA86F 0x77E3
+0xA870 0x79C1
+0xA871 0x79C0
+0xA872 0x79BF
+0xA873 0x7A76
+0xA874 0x7CFB
+0xA875 0x7F55
+0xA876 0x8096
+0xA877 0x8093
+0xA878 0x809D
+0xA879 0x8098
+0xA87A 0x809B
+0xA87B 0x809A
+0xA87C 0x80B2
+0xA87D 0x826F
+0xA87E 0x8292
+0xA8A1 0x828B
+0xA8A2 0x828D
+0xA8A3 0x898B
+0xA8A4 0x89D2
+0xA8A5 0x8A00
+0xA8A6 0x8C37
+0xA8A7 0x8C46
+0xA8A8 0x8C55
+0xA8A9 0x8C9D
+0xA8AA 0x8D64
+0xA8AB 0x8D70
+0xA8AC 0x8DB3
+0xA8AD 0x8EAB
+0xA8AE 0x8ECA
+0xA8AF 0x8F9B
+0xA8B0 0x8FB0
+0xA8B1 0x8FC2
+0xA8B2 0x8FC6
+0xA8B3 0x8FC5
+0xA8B4 0x8FC4
+0xA8B5 0x5DE1
+0xA8B6 0x9091
+0xA8B7 0x90A2
+0xA8B8 0x90AA
+0xA8B9 0x90A6
+0xA8BA 0x90A3
+0xA8BB 0x9149
+0xA8BC 0x91C6
+0xA8BD 0x91CC
+0xA8BE 0x9632
+0xA8BF 0x962E
+0xA8C0 0x9631
+0xA8C1 0x962A
+0xA8C2 0x962C
+0xA8C3 0x4E26
+0xA8C4 0x4E56
+0xA8C5 0x4E73
+0xA8C6 0x4E8B
+0xA8C7 0x4E9B
+0xA8C8 0x4E9E
+0xA8C9-0xA8CA 0x4EAB
+0xA8CB 0x4F6F
+0xA8CC 0x4F9D
+0xA8CD 0x4F8D
+0xA8CE 0x4F73
+0xA8CF 0x4F7F
+0xA8D0 0x4F6C
+0xA8D1 0x4F9B
+0xA8D2 0x4F8B
+0xA8D3 0x4F86
+0xA8D4 0x4F83
+0xA8D5 0x4F70
+0xA8D6 0x4F75
+0xA8D7 0x4F88
+0xA8D8 0x4F69
+0xA8D9 0x4F7B
+0xA8DA 0x4F96
+0xA8DB 0x4F7E
+0xA8DC 0x4F8F
+0xA8DD 0x4F91
+0xA8DE 0x4F7A
+0xA8DF 0x5154
+0xA8E0 0x5152
+0xA8E1 0x5155
+0xA8E2 0x5169
+0xA8E3 0x5177
+0xA8E4 0x5176
+0xA8E5 0x5178
+0xA8E6 0x51BD
+0xA8E7 0x51FD
+0xA8E8 0x523B
+0xA8E9 0x5238
+0xA8EA 0x5237
+0xA8EB 0x523A
+0xA8EC 0x5230
+0xA8ED 0x522E
+0xA8EE 0x5236
+0xA8EF 0x5241
+0xA8F0 0x52BE
+0xA8F1 0x52BB
+0xA8F2 0x5352
+0xA8F3 0x5354
+0xA8F4 0x5353
+0xA8F5 0x5351
+0xA8F6 0x5366
+0xA8F7-0xA8F9 0x5377
+0xA8FA 0x53D6
+0xA8FB 0x53D4
+0xA8FC 0x53D7
+0xA8FD 0x5473
+0xA8FE 0x5475
+0xA940 0x5496
+0xA941 0x5478
+0xA942 0x5495
+0xA943 0x5480
+0xA944 0x547B
+0xA945 0x5477
+0xA946 0x5484
+0xA947 0x5492
+0xA948 0x5486
+0xA949 0x547C
+0xA94A 0x5490
+0xA94B 0x5471
+0xA94C 0x5476
+0xA94D 0x548C
+0xA94E 0x549A
+0xA94F 0x5462
+0xA950 0x5468
+0xA951 0x548B
+0xA952 0x547D
+0xA953 0x548E
+0xA954 0x56FA
+0xA955 0x5783
+0xA956 0x5777
+0xA957 0x576A
+0xA958 0x5769
+0xA959 0x5761
+0xA95A 0x5766
+0xA95B 0x5764
+0xA95C 0x577C
+0xA95D 0x591C
+0xA95E 0x5949
+0xA95F-0xA960 0x5947
+0xA961 0x5944
+0xA962 0x5954
+0xA963 0x59BE
+0xA964 0x59BB
+0xA965 0x59D4
+0xA966 0x59B9
+0xA967 0x59AE
+0xA968 0x59D1
+0xA969 0x59C6
+0xA96A 0x59D0
+0xA96B 0x59CD
+0xA96C 0x59CB
+0xA96D 0x59D3
+0xA96E 0x59CA
+0xA96F 0x59AF
+0xA970 0x59B3
+0xA971 0x59D2
+0xA972 0x59C5
+0xA973 0x5B5F
+0xA974 0x5B64
+0xA975 0x5B63
+0xA976 0x5B97
+0xA977 0x5B9A
+0xA978 0x5B98
+0xA979 0x5B9C
+0xA97A 0x5B99
+0xA97B 0x5B9B
+0xA97C 0x5C1A
+0xA97D 0x5C48
+0xA97E 0x5C45
+0xA9A1 0x5C46
+0xA9A2 0x5CB7
+0xA9A3 0x5CA1
+0xA9A4 0x5CB8
+0xA9A5 0x5CA9
+0xA9A6 0x5CAB
+0xA9A7 0x5CB1
+0xA9A8 0x5CB3
+0xA9A9 0x5E18
+0xA9AA 0x5E1A
+0xA9AB 0x5E16
+0xA9AC 0x5E15
+0xA9AD 0x5E1B
+0xA9AE 0x5E11
+0xA9AF 0x5E78
+0xA9B0 0x5E9A
+0xA9B1 0x5E97
+0xA9B2 0x5E9C
+0xA9B3-0xA9B4 0x5E95
+0xA9B5 0x5EF6
+0xA9B6-0xA9B7 0x5F26
+0xA9B8 0x5F29
+0xA9B9-0xA9BA 0x5F80
+0xA9BB 0x5F7F
+0xA9BC 0x5F7C
+0xA9BD 0x5FDD
+0xA9BE 0x5FE0
+0xA9BF 0x5FFD
+0xA9C0 0x5FF5
+0xA9C1 0x5FFF
+0xA9C2 0x600F
+0xA9C3 0x6014
+0xA9C4 0x602F
+0xA9C5 0x6035
+0xA9C6 0x6016
+0xA9C7 0x602A
+0xA9C8 0x6015
+0xA9C9 0x6021
+0xA9CA 0x6027
+0xA9CB 0x6029
+0xA9CC 0x602B
+0xA9CD 0x601B
+0xA9CE 0x6216
+0xA9CF 0x6215
+0xA9D0 0x623F
+0xA9D1 0x623E
+0xA9D2 0x6240
+0xA9D3 0x627F
+0xA9D4 0x62C9
+0xA9D5 0x62CC
+0xA9D6 0x62C4
+0xA9D7 0x62BF
+0xA9D8 0x62C2
+0xA9D9 0x62B9
+0xA9DA 0x62D2
+0xA9DB 0x62DB
+0xA9DC 0x62AB
+0xA9DD-0xA9DE 0x62D3
+0xA9DF 0x62CB
+0xA9E0 0x62C8
+0xA9E1 0x62A8
+0xA9E2 0x62BD
+0xA9E3 0x62BC
+0xA9E4 0x62D0
+0xA9E5 0x62D9
+0xA9E6 0x62C7
+0xA9E7 0x62CD
+0xA9E8 0x62B5
+0xA9E9 0x62DA
+0xA9EA 0x62B1
+0xA9EB 0x62D8
+0xA9EC-0xA9ED 0x62D6
+0xA9EE 0x62C6
+0xA9EF 0x62AC
+0xA9F0 0x62CE
+0xA9F1 0x653E
+0xA9F2 0x65A7
+0xA9F3 0x65BC
+0xA9F4 0x65FA
+0xA9F5 0x6614
+0xA9F6 0x6613
+0xA9F7 0x660C
+0xA9F8 0x6606
+0xA9F9 0x6602
+0xA9FA 0x660E
+0xA9FB 0x6600
+0xA9FC 0x660F
+0xA9FD 0x6615
+0xA9FE 0x660A
+0xAA40 0x6607
+0xAA41 0x670D
+0xAA42 0x670B
+0xAA43 0x676D
+0xAA44 0x678B
+0xAA45 0x6795
+0xAA46 0x6771
+0xAA47 0x679C
+0xAA48 0x6773
+0xAA49 0x6777
+0xAA4A 0x6787
+0xAA4B 0x679D
+0xAA4C 0x6797
+0xAA4D-0xAA4E 0x676F
+0xAA4F 0x677F
+0xAA50 0x6789
+0xAA51 0x677E
+0xAA52 0x6790
+0xAA53 0x6775
+0xAA54 0x679A
+0xAA55 0x6793
+0xAA56 0x677C
+0xAA57 0x676A
+0xAA58 0x6772
+0xAA59 0x6B23
+0xAA5A-0xAA5B 0x6B66
+0xAA5C 0x6B7F
+0xAA5D 0x6C13
+0xAA5E 0x6C1B
+0xAA5F 0x6CE3
+0xAA60 0x6CE8
+0xAA61 0x6CF3
+0xAA62 0x6CB1
+0xAA63 0x6CCC
+0xAA64 0x6CE5
+0xAA65 0x6CB3
+0xAA66-0xAA67 0x6CBD
+0xAA68 0x6CBC
+0xAA69 0x6CE2
+0xAA6A 0x6CAB
+0xAA6B 0x6CD5
+0xAA6C 0x6CD3
+0xAA6D 0x6CB8
+0xAA6E 0x6CC4
+0xAA6F 0x6CB9
+0xAA70 0x6CC1
+0xAA71 0x6CAE
+0xAA72 0x6CD7
+0xAA73 0x6CC5
+0xAA74 0x6CF1
+0xAA75 0x6CBF
+0xAA76 0x6CBB
+0xAA77 0x6CE1
+0xAA78 0x6CDB
+0xAA79 0x6CCA
+0xAA7A 0x6CAC
+0xAA7B 0x6CEF
+0xAA7C 0x6CDC
+0xAA7D 0x6CD6
+0xAA7E 0x6CE0
+0xAAA1 0x7095
+0xAAA2 0x708E
+0xAAA3 0x7092
+0xAAA4 0x708A
+0xAAA5 0x7099
+0xAAA6-0xAAA7 0x722C
+0xAAA8 0x7238
+0xAAA9 0x7248
+0xAAAA 0x7267
+0xAAAB 0x7269
+0xAAAC 0x72C0
+0xAAAD 0x72CE
+0xAAAE 0x72D9
+0xAAAF 0x72D7
+0xAAB0 0x72D0
+0xAAB1 0x73A9
+0xAAB2 0x73A8
+0xAAB3 0x739F
+0xAAB4 0x73AB
+0xAAB5 0x73A5
+0xAAB6 0x753D
+0xAAB7 0x759D
+0xAAB8-0xAAB9 0x7599
+0xAABA 0x7684
+0xAABB 0x76C2
+0xAABC 0x76F2
+0xAABD 0x76F4
+0xAABE 0x77E5
+0xAABF 0x77FD
+0xAAC0 0x793E
+0xAAC1-0xAAC2 0x7940
+0xAAC3 0x79C9
+0xAAC4 0x79C8
+0xAAC5 0x7A7A
+0xAAC6 0x7A79
+0xAAC7 0x7AFA
+0xAAC8 0x7CFE
+0xAAC9 0x7F54
+0xAACA 0x7F8C
+0xAACB 0x7F8B
+0xAACC 0x8005
+0xAACD 0x80BA
+0xAACE 0x80A5
+0xAACF 0x80A2
+0xAAD0 0x80B1
+0xAAD1 0x80A1
+0xAAD2 0x80AB
+0xAAD3 0x80A9
+0xAAD4 0x80B4
+0xAAD5 0x80AA
+0xAAD6 0x80AF
+0xAAD7 0x81E5
+0xAAD8 0x81FE
+0xAAD9 0x820D
+0xAADA 0x82B3
+0xAADB 0x829D
+0xAADC 0x8299
+0xAADD 0x82AD
+0xAADE 0x82BD
+0xAADF 0x829F
+0xAAE0 0x82B9
+0xAAE1 0x82B1
+0xAAE2 0x82AC
+0xAAE3 0x82A5
+0xAAE4 0x82AF
+0xAAE5 0x82B8
+0xAAE6 0x82A3
+0xAAE7 0x82B0
+0xAAE8 0x82BE
+0xAAE9 0x82B7
+0xAAEA 0x864E
+0xAAEB 0x8671
+0xAAEC 0x521D
+0xAAED 0x8868
+0xAAEE 0x8ECB
+0xAAEF 0x8FCE
+0xAAF0 0x8FD4
+0xAAF1 0x8FD1
+0xAAF2 0x90B5
+0xAAF3 0x90B8
+0xAAF4 0x90B1
+0xAAF5 0x90B6
+0xAAF6 0x91C7
+0xAAF7 0x91D1
+0xAAF8 0x9577
+0xAAF9 0x9580
+0xAAFA 0x961C
+0xAAFB 0x9640
+0xAAFC 0x963F
+0xAAFD 0x963B
+0xAAFE 0x9644
+0xAB40 0x9642
+0xAB41 0x96B9
+0xAB42 0x96E8
+0xAB43 0x9752
+0xAB44 0x975E
+0xAB45 0x4E9F
+0xAB46-0xAB47 0x4EAD
+0xAB48 0x4FE1
+0xAB49 0x4FB5
+0xAB4A 0x4FAF
+0xAB4B 0x4FBF
+0xAB4C 0x4FE0
+0xAB4D 0x4FD1
+0xAB4E 0x4FCF
+0xAB4F 0x4FDD
+0xAB50 0x4FC3
+0xAB51 0x4FB6
+0xAB52 0x4FD8
+0xAB53 0x4FDF
+0xAB54 0x4FCA
+0xAB55 0x4FD7
+0xAB56 0x4FAE
+0xAB57 0x4FD0
+0xAB58 0x4FC4
+0xAB59 0x4FC2
+0xAB5A 0x4FDA
+0xAB5B 0x4FCE
+0xAB5C 0x4FDE
+0xAB5D 0x4FB7
+0xAB5E 0x5157
+0xAB5F 0x5192
+0xAB60 0x5191
+0xAB61 0x51A0
+0xAB62 0x524E
+0xAB63 0x5243
+0xAB64 0x524A
+0xAB65 0x524D
+0xAB66 0x524C
+0xAB67 0x524B
+0xAB68 0x5247
+0xAB69 0x52C7
+0xAB6A 0x52C9
+0xAB6B 0x52C3
+0xAB6C 0x52C1
+0xAB6D 0x530D
+0xAB6E 0x5357
+0xAB6F 0x537B
+0xAB70 0x539A
+0xAB71 0x53DB
+0xAB72 0x54AC
+0xAB73 0x54C0
+0xAB74 0x54A8
+0xAB75 0x54CE
+0xAB76 0x54C9
+0xAB77 0x54B8
+0xAB78 0x54A6
+0xAB79 0x54B3
+0xAB7A 0x54C7
+0xAB7B 0x54C2
+0xAB7C 0x54BD
+0xAB7D 0x54AA
+0xAB7E 0x54C1
+0xABA1 0x54C4
+0xABA2 0x54C8
+0xABA3 0x54AF
+0xABA4 0x54AB
+0xABA5 0x54B1
+0xABA6 0x54BB
+0xABA7 0x54A9
+0xABA8 0x54A7
+0xABA9 0x54BF
+0xABAA 0x56FF
+0xABAB 0x5782
+0xABAC 0x578B
+0xABAD 0x57A0
+0xABAE 0x57A3
+0xABAF 0x57A2
+0xABB0 0x57CE
+0xABB1 0x57AE
+0xABB2 0x5793
+0xABB3 0x5955
+0xABB4 0x5951
+0xABB5 0x594F
+0xABB6 0x594E
+0xABB7 0x5950
+0xABB8 0x59DC
+0xABB9 0x59D8
+0xABBA 0x59FF
+0xABBB 0x59E3
+0xABBC 0x59E8
+0xABBD 0x5A03
+0xABBE 0x59E5
+0xABBF 0x59EA
+0xABC0 0x59DA
+0xABC1 0x59E6
+0xABC2 0x5A01
+0xABC3 0x59FB
+0xABC4 0x5B69
+0xABC5 0x5BA3
+0xABC6 0x5BA6
+0xABC7 0x5BA4
+0xABC8 0x5BA2
+0xABC9 0x5BA5
+0xABCA 0x5C01
+0xABCB-0xABCC 0x5C4E
+0xABCD 0x5C4D
+0xABCE 0x5C4B
+0xABCF 0x5CD9
+0xABD0 0x5CD2
+0xABD1 0x5DF7
+0xABD2 0x5E1D
+0xABD3 0x5E25
+0xABD4 0x5E1F
+0xABD5 0x5E7D
+0xABD6 0x5EA0
+0xABD7 0x5EA6
+0xABD8 0x5EFA
+0xABD9 0x5F08
+0xABDA 0x5F2D
+0xABDB 0x5F65
+0xABDC 0x5F88
+0xABDD 0x5F85
+0xABDE-0xABDF 0x5F8A
+0xABE0 0x5F87
+0xABE1 0x5F8C
+0xABE2 0x5F89
+0xABE3 0x6012
+0xABE4 0x601D
+0xABE5 0x6020
+0xABE6 0x6025
+0xABE7 0x600E
+0xABE8 0x6028
+0xABE9 0x604D
+0xABEA 0x6070
+0xABEB 0x6068
+0xABEC 0x6062
+0xABED 0x6046
+0xABEE 0x6043
+0xABEF 0x606C
+0xABF0 0x606B
+0xABF1 0x606A
+0xABF2 0x6064
+0xABF3 0x6241
+0xABF4 0x62DC
+0xABF5 0x6316
+0xABF6 0x6309
+0xABF7 0x62FC
+0xABF8 0x62ED
+0xABF9 0x6301
+0xABFA 0x62EE
+0xABFB 0x62FD
+0xABFC 0x6307
+0xABFD 0x62F1
+0xABFE 0x62F7
+0xAC40 0x62EF
+0xAC41 0x62EC
+0xAC42 0x62FE
+0xAC43 0x62F4
+0xAC44 0x6311
+0xAC45 0x6302
+0xAC46 0x653F
+0xAC47 0x6545
+0xAC48 0x65AB
+0xAC49 0x65BD
+0xAC4A 0x65E2
+0xAC4B 0x6625
+0xAC4C 0x662D
+0xAC4D 0x6620
+0xAC4E 0x6627
+0xAC4F 0x662F
+0xAC50 0x661F
+0xAC51 0x6628
+0xAC52 0x6631
+0xAC53 0x6624
+0xAC54 0x66F7
+0xAC55 0x67FF
+0xAC56 0x67D3
+0xAC57 0x67F1
+0xAC58 0x67D4
+0xAC59 0x67D0
+0xAC5A 0x67EC
+0xAC5B 0x67B6
+0xAC5C 0x67AF
+0xAC5D 0x67F5
+0xAC5E 0x67E9
+0xAC5F 0x67EF
+0xAC60 0x67C4
+0xAC61 0x67D1
+0xAC62 0x67B4
+0xAC63 0x67DA
+0xAC64 0x67E5
+0xAC65 0x67B8
+0xAC66 0x67CF
+0xAC67 0x67DE
+0xAC68 0x67F3
+0xAC69 0x67B0
+0xAC6A 0x67D9
+0xAC6B 0x67E2
+0xAC6C 0x67DD
+0xAC6D 0x67D2
+0xAC6E 0x6B6A
+0xAC6F 0x6B83
+0xAC70 0x6B86
+0xAC71 0x6BB5
+0xAC72 0x6BD2
+0xAC73 0x6BD7
+0xAC74 0x6C1F
+0xAC75 0x6CC9
+0xAC76 0x6D0B
+0xAC77 0x6D32
+0xAC78 0x6D2A
+0xAC79 0x6D41
+0xAC7A 0x6D25
+0xAC7B 0x6D0C
+0xAC7C 0x6D31
+0xAC7D 0x6D1E
+0xAC7E 0x6D17
+0xACA1 0x6D3B
+0xACA2-0xACA3 0x6D3D
+0xACA4 0x6D36
+0xACA5 0x6D1B
+0xACA6 0x6CF5
+0xACA7 0x6D39
+0xACA8 0x6D27
+0xACA9 0x6D38
+0xACAA 0x6D29
+0xACAB 0x6D2E
+0xACAC 0x6D35
+0xACAD 0x6D0E
+0xACAE 0x6D2B
+0xACAF 0x70AB
+0xACB0 0x70BA
+0xACB1 0x70B3
+0xACB2 0x70AC
+0xACB3 0x70AF
+0xACB4 0x70AD
+0xACB5 0x70B8
+0xACB6 0x70AE
+0xACB7 0x70A4
+0xACB8 0x7230
+0xACB9 0x7272
+0xACBA 0x726F
+0xACBB 0x7274
+0xACBC 0x72E9
+0xACBD-0xACBE 0x72E0
+0xACBF 0x73B7
+0xACC0 0x73CA
+0xACC1 0x73BB
+0xACC2 0x73B2
+0xACC3 0x73CD
+0xACC4 0x73C0
+0xACC5 0x73B3
+0xACC6 0x751A
+0xACC7 0x752D
+0xACC8 0x754F
+0xACC9 0x754C
+0xACCA 0x754E
+0xACCB 0x754B
+0xACCC 0x75AB
+0xACCD-0xACCE 0x75A4
+0xACCF-0xACD0 0x75A2
+0xACD1 0x7678
+0xACD2-0xACD4 0x7686
+0xACD5 0x76C8
+0xACD6 0x76C6
+0xACD7 0x76C3
+0xACD8 0x76C5
+0xACD9 0x7701
+0xACDA 0x76F9
+0xACDB 0x76F8
+0xACDC 0x7709
+0xACDD 0x770B
+0xACDE 0x76FE
+0xACDF 0x76FC
+0xACE0 0x7707
+0xACE1 0x77DC
+0xACE2 0x7802
+0xACE3 0x7814
+0xACE4-0xACE5 0x780C
+0xACE6 0x7946
+0xACE7 0x7949
+0xACE8 0x7948
+0xACE9 0x7947
+0xACEA-0xACEB 0x79B9
+0xACEC-0xACED 0x79D1
+0xACEE 0x79CB
+0xACEF 0x7A7F
+0xACF0 0x7A81
+0xACF1 0x7AFF
+0xACF2 0x7AFD
+0xACF3 0x7C7D
+0xACF4 0x7D02
+0xACF5 0x7D05
+0xACF6 0x7D00
+0xACF7 0x7D09
+0xACF8 0x7D07
+0xACF9 0x7D04
+0xACFA 0x7D06
+0xACFB 0x7F38
+0xACFC 0x7F8E
+0xACFD 0x7FBF
+0xACFE 0x8004
+0xAD40 0x8010
+0xAD41 0x800D
+0xAD42 0x8011
+0xAD43 0x8036
+0xAD44 0x80D6
+0xAD45 0x80E5
+0xAD46 0x80DA
+0xAD47-0xAD48 0x80C3
+0xAD49 0x80CC
+0xAD4A 0x80E1
+0xAD4B 0x80DB
+0xAD4C 0x80CE
+0xAD4D 0x80DE
+0xAD4E 0x80E4
+0xAD4F 0x80DD
+0xAD50 0x81F4
+0xAD51 0x8222
+0xAD52 0x82E7
+0xAD53 0x8303
+0xAD54 0x8305
+0xAD55 0x82E3
+0xAD56 0x82DB
+0xAD57 0x82E6
+0xAD58 0x8304
+0xAD59 0x82E5
+0xAD5A 0x8302
+0xAD5B 0x8309
+0xAD5C 0x82D2
+0xAD5D 0x82D7
+0xAD5E 0x82F1
+0xAD5F 0x8301
+0xAD60 0x82DC
+0xAD61 0x82D4
+0xAD62 0x82D1
+0xAD63 0x82DE
+0xAD64 0x82D3
+0xAD65 0x82DF
+0xAD66 0x82EF
+0xAD67 0x8306
+0xAD68 0x8650
+0xAD69 0x8679
+0xAD6A 0x867B
+0xAD6B 0x867A
+0xAD6C 0x884D
+0xAD6D 0x886B
+0xAD6E 0x8981
+0xAD6F 0x89D4
+0xAD70 0x8A08
+0xAD71-0xAD72 0x8A02
+0xAD73 0x8C9E
+0xAD74 0x8CA0
+0xAD75 0x8D74
+0xAD76 0x8D73
+0xAD77 0x8DB4
+0xAD78 0x8ECD
+0xAD79 0x8ECC
+0xAD7A 0x8FF0
+0xAD7B 0x8FE6
+0xAD7C 0x8FE2
+0xAD7D 0x8FEA
+0xAD7E 0x8FE5
+0xADA1 0x8FED
+0xADA2 0x8FEB
+0xADA3 0x8FE4
+0xADA4 0x8FE8
+0xADA5 0x90CA
+0xADA6 0x90CE
+0xADA7 0x90C1
+0xADA8 0x90C3
+0xADA9 0x914B
+0xADAA 0x914A
+0xADAB 0x91CD
+0xADAC 0x9582
+0xADAD 0x9650
+0xADAE-0xADB0 0x964B
+0xADB1 0x9762
+0xADB2 0x9769
+0xADB3 0x97CB
+0xADB4 0x97ED
+0xADB5 0x97F3
+0xADB6 0x9801
+0xADB7 0x98A8
+0xADB8 0x98DB
+0xADB9 0x98DF
+0xADBA 0x9996
+0xADBB 0x9999
+0xADBC 0x4E58
+0xADBD 0x4EB3
+0xADBE-0xADBF 0x500C
+0xADC0 0x5023
+0xADC1 0x4FEF
+0xADC2 0x5026
+0xADC3 0x5025
+0xADC4 0x4FF8
+0xADC5 0x5029
+0xADC6 0x5016
+0xADC7 0x5006
+0xADC8 0x503C
+0xADC9 0x501F
+0xADCA 0x501A
+0xADCB 0x5012
+0xADCC 0x5011
+0xADCD 0x4FFA
+0xADCE 0x5000
+0xADCF 0x5014
+0xADD0 0x5028
+0xADD1 0x4FF1
+0xADD2 0x5021
+0xADD3 0x500B
+0xADD4 0x5019
+0xADD5 0x5018
+0xADD6 0x4FF3
+0xADD7 0x4FEE
+0xADD8 0x502D
+0xADD9 0x502A
+0xADDA 0x4FFE
+0xADDB 0x502B
+0xADDC 0x5009
+0xADDD 0x517C
+0xADDE-0xADDF 0x51A4
+0xADE0 0x51A2
+0xADE1 0x51CD
+0xADE2 0x51CC
+0xADE3 0x51C6
+0xADE4 0x51CB
+0xADE5 0x5256
+0xADE6 0x525C
+0xADE7 0x5254
+0xADE8 0x525B
+0xADE9 0x525D
+0xADEA 0x532A
+0xADEB 0x537F
+0xADEC 0x539F
+0xADED 0x539D
+0xADEE 0x53DF
+0xADEF 0x54E8
+0xADF0 0x5510
+0xADF1 0x5501
+0xADF2 0x5537
+0xADF3 0x54FC
+0xADF4 0x54E5
+0xADF5 0x54F2
+0xADF6 0x5506
+0xADF7 0x54FA
+0xADF8 0x5514
+0xADF9 0x54E9
+0xADFA 0x54ED
+0xADFB 0x54E1
+0xADFC 0x5509
+0xADFD 0x54EE
+0xADFE 0x54EA
+0xAE40 0x54E6
+0xAE41 0x5527
+0xAE42 0x5507
+0xAE43 0x54FD
+0xAE44 0x550F
+0xAE45-0xAE46 0x5703
+0xAE47 0x57C2
+0xAE48 0x57D4
+0xAE49 0x57CB
+0xAE4A 0x57C3
+0xAE4B 0x5809
+0xAE4C 0x590F
+0xAE4D-0xAE4E 0x5957
+0xAE4F 0x595A
+0xAE50 0x5A11
+0xAE51 0x5A18
+0xAE52 0x5A1C
+0xAE53 0x5A1F
+0xAE54 0x5A1B
+0xAE55 0x5A13
+0xAE56 0x59EC
+0xAE57 0x5A20
+0xAE58 0x5A23
+0xAE59 0x5A29
+0xAE5A 0x5A25
+0xAE5B 0x5A0C
+0xAE5C 0x5A09
+0xAE5D 0x5B6B
+0xAE5E 0x5C58
+0xAE5F 0x5BB0
+0xAE60 0x5BB3
+0xAE61 0x5BB6
+0xAE62 0x5BB4
+0xAE63 0x5BAE
+0xAE64 0x5BB5
+0xAE65 0x5BB9
+0xAE66 0x5BB8
+0xAE67 0x5C04
+0xAE68 0x5C51
+0xAE69 0x5C55
+0xAE6A 0x5C50
+0xAE6B 0x5CED
+0xAE6C 0x5CFD
+0xAE6D 0x5CFB
+0xAE6E 0x5CEA
+0xAE6F 0x5CE8
+0xAE70 0x5CF0
+0xAE71 0x5CF6
+0xAE72 0x5D01
+0xAE73 0x5CF4
+0xAE74 0x5DEE
+0xAE75 0x5E2D
+0xAE76 0x5E2B
+0xAE77 0x5EAB
+0xAE78 0x5EAD
+0xAE79 0x5EA7
+0xAE7A 0x5F31
+0xAE7B 0x5F92
+0xAE7C 0x5F91
+0xAE7D 0x5F90
+0xAE7E 0x6059
+0xAEA1 0x6063
+0xAEA2 0x6065
+0xAEA3 0x6050
+0xAEA4 0x6055
+0xAEA5 0x606D
+0xAEA6 0x6069
+0xAEA7 0x606F
+0xAEA8 0x6084
+0xAEA9 0x609F
+0xAEAA 0x609A
+0xAEAB 0x608D
+0xAEAC 0x6094
+0xAEAD 0x608C
+0xAEAE 0x6085
+0xAEAF 0x6096
+0xAEB0 0x6247
+0xAEB1 0x62F3
+0xAEB2 0x6308
+0xAEB3 0x62FF
+0xAEB4 0x634E
+0xAEB5 0x633E
+0xAEB6 0x632F
+0xAEB7 0x6355
+0xAEB8 0x6342
+0xAEB9 0x6346
+0xAEBA 0x634F
+0xAEBB 0x6349
+0xAEBC 0x633A
+0xAEBD 0x6350
+0xAEBE 0x633D
+0xAEBF-0xAEC0 0x632A
+0xAEC1 0x6328
+0xAEC2 0x634D
+0xAEC3 0x634C
+0xAEC4-0xAEC5 0x6548
+0xAEC6 0x6599
+0xAEC7 0x65C1
+0xAEC8 0x65C5
+0xAEC9 0x6642
+0xAECA 0x6649
+0xAECB 0x664F
+0xAECC 0x6643
+0xAECD 0x6652
+0xAECE 0x664C
+0xAECF 0x6645
+0xAED0 0x6641
+0xAED1 0x66F8
+0xAED2-0xAED3 0x6714
+0xAED4 0x6717
+0xAED5 0x6821
+0xAED6 0x6838
+0xAED7 0x6848
+0xAED8 0x6846
+0xAED9 0x6853
+0xAEDA 0x6839
+0xAEDB 0x6842
+0xAEDC 0x6854
+0xAEDD 0x6829
+0xAEDE 0x68B3
+0xAEDF 0x6817
+0xAEE0 0x684C
+0xAEE1 0x6851
+0xAEE2 0x683D
+0xAEE3 0x67F4
+0xAEE4 0x6850
+0xAEE5 0x6840
+0xAEE6 0x683C
+0xAEE7 0x6843
+0xAEE8 0x682A
+0xAEE9 0x6845
+0xAEEA 0x6813
+0xAEEB 0x6818
+0xAEEC 0x6841
+0xAEED 0x6B8A
+0xAEEE 0x6B89
+0xAEEF 0x6BB7
+0xAEF0 0x6C23
+0xAEF1-0xAEF2 0x6C27
+0xAEF3 0x6C26
+0xAEF4 0x6C24
+0xAEF5 0x6CF0
+0xAEF6 0x6D6A
+0xAEF7 0x6D95
+0xAEF8 0x6D88
+0xAEF9 0x6D87
+0xAEFA 0x6D66
+0xAEFB 0x6D78
+0xAEFC 0x6D77
+0xAEFD 0x6D59
+0xAEFE 0x6D93
+0xAF40 0x6D6C
+0xAF41 0x6D89
+0xAF42 0x6D6E
+0xAF43 0x6D5A
+0xAF44 0x6D74
+0xAF45 0x6D69
+0xAF46 0x6D8C
+0xAF47 0x6D8A
+0xAF48 0x6D79
+0xAF49 0x6D85
+0xAF4A 0x6D65
+0xAF4B 0x6D94
+0xAF4C 0x70CA
+0xAF4D 0x70D8
+0xAF4E 0x70E4
+0xAF4F 0x70D9
+0xAF50 0x70C8
+0xAF51 0x70CF
+0xAF52 0x7239
+0xAF53 0x7279
+0xAF54 0x72FC
+0xAF55 0x72F9
+0xAF56 0x72FD
+0xAF57 0x72F8
+0xAF58 0x72F7
+0xAF59 0x7386
+0xAF5A 0x73ED
+0xAF5B 0x7409
+0xAF5C 0x73EE
+0xAF5D 0x73E0
+0xAF5E 0x73EA
+0xAF5F 0x73DE
+0xAF60 0x7554
+0xAF61 0x755D
+0xAF62 0x755C
+0xAF63 0x755A
+0xAF64 0x7559
+0xAF65 0x75BE
+0xAF66 0x75C5
+0xAF67 0x75C7
+0xAF68-0xAF69 0x75B2
+0xAF6A 0x75BD
+0xAF6B 0x75BC
+0xAF6C 0x75B9
+0xAF6D 0x75C2
+0xAF6E 0x75B8
+0xAF6F 0x768B
+0xAF70 0x76B0
+0xAF71 0x76CA
+0xAF72-0xAF73 0x76CD
+0xAF74 0x7729
+0xAF75-0xAF76 0x771F
+0xAF77 0x7728
+0xAF78 0x77E9
+0xAF79 0x7830
+0xAF7A 0x7827
+0xAF7B 0x7838
+0xAF7C 0x781D
+0xAF7D 0x7834
+0xAF7E 0x7837
+0xAFA1 0x7825
+0xAFA2 0x782D
+0xAFA3 0x7820
+0xAFA4 0x781F
+0xAFA5 0x7832
+0xAFA6 0x7955
+0xAFA7 0x7950
+0xAFA8 0x7960
+0xAFA9 0x795F
+0xAFAA 0x7956
+0xAFAB 0x795E
+0xAFAC 0x795D
+0xAFAD 0x7957
+0xAFAE 0x795A
+0xAFAF 0x79E4
+0xAFB0 0x79E3
+0xAFB1 0x79E7
+0xAFB2 0x79DF
+0xAFB3 0x79E6
+0xAFB4 0x79E9
+0xAFB5 0x79D8
+0xAFB6 0x7A84
+0xAFB7 0x7A88
+0xAFB8 0x7AD9
+0xAFB9 0x7B06
+0xAFBA 0x7B11
+0xAFBB 0x7C89
+0xAFBC 0x7D21
+0xAFBD 0x7D17
+0xAFBE 0x7D0B
+0xAFBF 0x7D0A
+0xAFC0 0x7D20
+0xAFC1 0x7D22
+0xAFC2 0x7D14
+0xAFC3 0x7D10
+0xAFC4 0x7D15
+0xAFC5 0x7D1A
+0xAFC6 0x7D1C
+0xAFC7 0x7D0D
+0xAFC8 0x7D19
+0xAFC9 0x7D1B
+0xAFCA 0x7F3A
+0xAFCB 0x7F5F
+0xAFCC 0x7F94
+0xAFCD 0x7FC5
+0xAFCE 0x7FC1
+0xAFCF 0x8006
+0xAFD0 0x8018
+0xAFD1 0x8015
+0xAFD2 0x8019
+0xAFD3 0x8017
+0xAFD4 0x803D
+0xAFD5 0x803F
+0xAFD6 0x80F1
+0xAFD7 0x8102
+0xAFD8 0x80F0
+0xAFD9 0x8105
+0xAFDA 0x80ED
+0xAFDB 0x80F4
+0xAFDC 0x8106
+0xAFDD 0x80F8
+0xAFDE 0x80F3
+0xAFDF 0x8108
+0xAFE0 0x80FD
+0xAFE1 0x810A
+0xAFE2 0x80FC
+0xAFE3 0x80EF
+0xAFE4 0x81ED
+0xAFE5 0x81EC
+0xAFE6 0x8200
+0xAFE7 0x8210
+0xAFE8-0xAFE9 0x822A
+0xAFEA 0x8228
+0xAFEB 0x822C
+0xAFEC 0x82BB
+0xAFED 0x832B
+0xAFEE 0x8352
+0xAFEF 0x8354
+0xAFF0 0x834A
+0xAFF1 0x8338
+0xAFF2 0x8350
+0xAFF3 0x8349
+0xAFF4 0x8335
+0xAFF5 0x8334
+0xAFF6 0x834F
+0xAFF7 0x8332
+0xAFF8 0x8339
+0xAFF9 0x8336
+0xAFFA 0x8317
+0xAFFB 0x8340
+0xAFFC 0x8331
+0xAFFD 0x8328
+0xAFFE 0x8343
+0xB040 0x8654
+0xB041 0x868A
+0xB042 0x86AA
+0xB043 0x8693
+0xB044 0x86A4
+0xB045 0x86A9
+0xB046 0x868C
+0xB047 0x86A3
+0xB048 0x869C
+0xB049 0x8870
+0xB04A 0x8877
+0xB04B-0xB04C 0x8881
+0xB04D 0x887D
+0xB04E 0x8879
+0xB04F 0x8A18
+0xB050 0x8A10
+0xB051 0x8A0E
+0xB052 0x8A0C
+0xB053 0x8A15
+0xB054 0x8A0A
+0xB055 0x8A17
+0xB056 0x8A13
+0xB057 0x8A16
+0xB058 0x8A0F
+0xB059 0x8A11
+0xB05A 0x8C48
+0xB05B 0x8C7A
+0xB05C 0x8C79
+0xB05D-0xB05E 0x8CA1
+0xB05F 0x8D77
+0xB060 0x8EAC
+0xB061 0x8ED2
+0xB062 0x8ED4
+0xB063 0x8ECF
+0xB064 0x8FB1
+0xB065 0x9001
+0xB066 0x9006
+0xB067 0x8FF7
+0xB068 0x9000
+0xB069 0x8FFA
+0xB06A 0x8FF4
+0xB06B 0x9003
+0xB06C 0x8FFD
+0xB06D 0x9005
+0xB06E 0x8FF8
+0xB06F 0x9095
+0xB070 0x90E1
+0xB071 0x90DD
+0xB072 0x90E2
+0xB073 0x9152
+0xB074 0x914D
+0xB075 0x914C
+0xB076 0x91D8
+0xB077 0x91DD
+0xB078 0x91D7
+0xB079 0x91DC
+0xB07A 0x91D9
+0xB07B 0x9583
+0xB07C-0xB07D 0x9662
+0xB07E 0x9661
+0xB0A1 0x965B
+0xB0A2 0x965D
+0xB0A3 0x9664
+0xB0A4 0x9658
+0xB0A5 0x965E
+0xB0A6 0x96BB
+0xB0A7 0x98E2
+0xB0A8 0x99AC
+0xB0A9 0x9AA8
+0xB0AA 0x9AD8
+0xB0AB 0x9B25
+0xB0AC 0x9B32
+0xB0AD 0x9B3C
+0xB0AE 0x4E7E
+0xB0AF 0x507A
+0xB0B0 0x507D
+0xB0B1 0x505C
+0xB0B2 0x5047
+0xB0B3 0x5043
+0xB0B4 0x504C
+0xB0B5 0x505A
+0xB0B6 0x5049
+0xB0B7 0x5065
+0xB0B8 0x5076
+0xB0B9 0x504E
+0xB0BA 0x5055
+0xB0BB 0x5075
+0xB0BC 0x5074
+0xB0BD 0x5077
+0xB0BE 0x504F
+0xB0BF 0x500F
+0xB0C0 0x506F
+0xB0C1 0x506D
+0xB0C2 0x515C
+0xB0C3 0x5195
+0xB0C4 0x51F0
+0xB0C5 0x526A
+0xB0C6 0x526F
+0xB0C7 0x52D2
+0xB0C8 0x52D9
+0xB0C9 0x52D8
+0xB0CA 0x52D5
+0xB0CB 0x5310
+0xB0CC 0x530F
+0xB0CD 0x5319
+0xB0CE-0xB0CF 0x533F
+0xB0D0 0x533E
+0xB0D1 0x53C3
+0xB0D2 0x66FC
+0xB0D3 0x5546
+0xB0D4 0x556A
+0xB0D5 0x5566
+0xB0D6 0x5544
+0xB0D7 0x555E
+0xB0D8 0x5561
+0xB0D9 0x5543
+0xB0DA 0x554A
+0xB0DB 0x5531
+0xB0DC 0x5556
+0xB0DD 0x554F
+0xB0DE 0x5555
+0xB0DF 0x552F
+0xB0E0 0x5564
+0xB0E1 0x5538
+0xB0E2 0x552E
+0xB0E3 0x555C
+0xB0E4 0x552C
+0xB0E5 0x5563
+0xB0E6 0x5533
+0xB0E7 0x5541
+0xB0E8 0x5557
+0xB0E9 0x5708
+0xB0EA 0x570B
+0xB0EB 0x5709
+0xB0EC 0x57DF
+0xB0ED 0x5805
+0xB0EE 0x580A
+0xB0EF 0x5806
+0xB0F0 0x57E0
+0xB0F1 0x57E4
+0xB0F2 0x57FA
+0xB0F3 0x5802
+0xB0F4 0x5835
+0xB0F5 0x57F7
+0xB0F6 0x57F9
+0xB0F7 0x5920
+0xB0F8 0x5962
+0xB0F9 0x5A36
+0xB0FA 0x5A41
+0xB0FB 0x5A49
+0xB0FC 0x5A66
+0xB0FD 0x5A6A
+0xB0FE 0x5A40
+0xB140 0x5A3C
+0xB141 0x5A62
+0xB142 0x5A5A
+0xB143 0x5A46
+0xB144 0x5A4A
+0xB145 0x5B70
+0xB146 0x5BC7
+0xB147 0x5BC5
+0xB148 0x5BC4
+0xB149 0x5BC2
+0xB14A 0x5BBF
+0xB14B 0x5BC6
+0xB14C 0x5C09
+0xB14D 0x5C08
+0xB14E 0x5C07
+0xB14F 0x5C60
+0xB150-0xB151 0x5C5C
+0xB152 0x5D07
+0xB153 0x5D06
+0xB154 0x5D0E
+0xB155 0x5D1B
+0xB156 0x5D16
+0xB157 0x5D22
+0xB158 0x5D11
+0xB159 0x5D29
+0xB15A 0x5D14
+0xB15B 0x5D19
+0xB15C 0x5D24
+0xB15D 0x5D27
+0xB15E 0x5D17
+0xB15F 0x5DE2
+0xB160 0x5E38
+0xB161 0x5E36
+0xB162 0x5E33
+0xB163 0x5E37
+0xB164-0xB165 0x5EB7
+0xB166 0x5EB6
+0xB167 0x5EB5
+0xB168 0x5EBE
+0xB169 0x5F35
+0xB16A 0x5F37
+0xB16B 0x5F57
+0xB16C 0x5F6C
+0xB16D 0x5F69
+0xB16E 0x5F6B
+0xB16F 0x5F97
+0xB170 0x5F99
+0xB171 0x5F9E
+0xB172 0x5F98
+0xB173 0x5FA1
+0xB174 0x5FA0
+0xB175 0x5F9C
+0xB176 0x607F
+0xB177 0x60A3
+0xB178 0x6089
+0xB179 0x60A0
+0xB17A 0x60A8
+0xB17B 0x60CB
+0xB17C 0x60B4
+0xB17D 0x60E6
+0xB17E 0x60BD
+0xB1A1 0x60C5
+0xB1A2 0x60BB
+0xB1A3 0x60B5
+0xB1A4 0x60DC
+0xB1A5 0x60BC
+0xB1A6 0x60D8
+0xB1A7 0x60D5
+0xB1A8 0x60C6
+0xB1A9 0x60DF
+0xB1AA 0x60B8
+0xB1AB 0x60DA
+0xB1AC 0x60C7
+0xB1AD-0xB1AE 0x621A
+0xB1AF 0x6248
+0xB1B0 0x63A0
+0xB1B1 0x63A7
+0xB1B2 0x6372
+0xB1B3 0x6396
+0xB1B4 0x63A2
+0xB1B5 0x63A5
+0xB1B6 0x6377
+0xB1B7 0x6367
+0xB1B8 0x6398
+0xB1B9 0x63AA
+0xB1BA 0x6371
+0xB1BB 0x63A9
+0xB1BC 0x6389
+0xB1BD 0x6383
+0xB1BE 0x639B
+0xB1BF 0x636B
+0xB1C0 0x63A8
+0xB1C1 0x6384
+0xB1C2 0x6388
+0xB1C3 0x6399
+0xB1C4 0x63A1
+0xB1C5 0x63AC
+0xB1C6 0x6392
+0xB1C7 0x638F
+0xB1C8 0x6380
+0xB1C9 0x637B
+0xB1CA 0x6369
+0xB1CB 0x6368
+0xB1CC 0x637A
+0xB1CD 0x655D
+0xB1CE 0x6556
+0xB1CF 0x6551
+0xB1D0 0x6559
+0xB1D1 0x6557
+0xB1D2 0x555F
+0xB1D3 0x654F
+0xB1D4 0x6558
+0xB1D5 0x6555
+0xB1D6 0x6554
+0xB1D7 0x659C
+0xB1D8 0x659B
+0xB1D9 0x65AC
+0xB1DA 0x65CF
+0xB1DB-0xB1DC 0x65CB
+0xB1DD 0x65CE
+0xB1DE 0x665D
+0xB1DF 0x665A
+0xB1E0 0x6664
+0xB1E1 0x6668
+0xB1E2 0x6666
+0xB1E3 0x665E
+0xB1E4 0x66F9
+0xB1E5 0x52D7
+0xB1E6 0x671B
+0xB1E7 0x6881
+0xB1E8 0x68AF
+0xB1E9 0x68A2
+0xB1EA 0x6893
+0xB1EB 0x68B5
+0xB1EC 0x687F
+0xB1ED 0x6876
+0xB1EE 0x68B1
+0xB1EF 0x68A7
+0xB1F0 0x6897
+0xB1F1 0x68B0
+0xB1F2 0x6883
+0xB1F3 0x68C4
+0xB1F4 0x68AD
+0xB1F5 0x6886
+0xB1F6 0x6885
+0xB1F7 0x6894
+0xB1F8 0x689D
+0xB1F9 0x68A8
+0xB1FA 0x689F
+0xB1FB 0x68A1
+0xB1FC 0x6882
+0xB1FD 0x6B32
+0xB1FE 0x6BBA
+0xB240-0xB241 0x6BEB
+0xB242 0x6C2B
+0xB243 0x6D8E
+0xB244 0x6DBC
+0xB245 0x6DF3
+0xB246 0x6DD9
+0xB247 0x6DB2
+0xB248 0x6DE1
+0xB249 0x6DCC
+0xB24A 0x6DE4
+0xB24B 0x6DFB
+0xB24C 0x6DFA
+0xB24D 0x6E05
+0xB24E 0x6DC7
+0xB24F 0x6DCB
+0xB250 0x6DAF
+0xB251 0x6DD1
+0xB252 0x6DAE
+0xB253 0x6DDE
+0xB254 0x6DF9
+0xB255 0x6DB8
+0xB256 0x6DF7
+0xB257 0x6DF5
+0xB258 0x6DC5
+0xB259 0x6DD2
+0xB25A 0x6E1A
+0xB25B 0x6DB5
+0xB25C 0x6DDA
+0xB25D 0x6DEB
+0xB25E 0x6DD8
+0xB25F 0x6DEA
+0xB260 0x6DF1
+0xB261 0x6DEE
+0xB262 0x6DE8
+0xB263 0x6DC6
+0xB264 0x6DC4
+0xB265 0x6DAA
+0xB266 0x6DEC
+0xB267 0x6DBF
+0xB268 0x6DE6
+0xB269 0x70F9
+0xB26A-0xB26B 0x7109
+0xB26C 0x70FD
+0xB26D 0x70EF
+0xB26E 0x723D
+0xB26F 0x727D
+0xB270 0x7281
+0xB271 0x731C
+0xB272 0x731B
+0xB273 0x7316
+0xB274 0x7313
+0xB275 0x7319
+0xB276 0x7387
+0xB277 0x7405
+0xB278 0x740A
+0xB279 0x7403
+0xB27A 0x7406
+0xB27B 0x73FE
+0xB27C 0x740D
+0xB27D 0x74E0
+0xB27E 0x74F6
+0xB2A1 0x74F7
+0xB2A2 0x751C
+0xB2A3 0x7522
+0xB2A4-0xB2A5 0x7565
+0xB2A6 0x7562
+0xB2A7 0x7570
+0xB2A8 0x758F
+0xB2A9-0xB2AA 0x75D4
+0xB2AB 0x75B5
+0xB2AC 0x75CA
+0xB2AD 0x75CD
+0xB2AE 0x768E
+0xB2AF 0x76D4
+0xB2B0 0x76D2
+0xB2B1 0x76DB
+0xB2B2 0x7737
+0xB2B3 0x773E
+0xB2B4 0x773C
+0xB2B5 0x7736
+0xB2B6 0x7738
+0xB2B7 0x773A
+0xB2B8 0x786B
+0xB2B9 0x7843
+0xB2BA 0x784E
+0xB2BB 0x7965
+0xB2BC 0x7968
+0xB2BD 0x796D
+0xB2BE 0x79FB
+0xB2BF 0x7A92
+0xB2C0 0x7A95
+0xB2C1 0x7B20
+0xB2C2 0x7B28
+0xB2C3 0x7B1B
+0xB2C4 0x7B2C
+0xB2C5 0x7B26
+0xB2C6 0x7B19
+0xB2C7 0x7B1E
+0xB2C8 0x7B2E
+0xB2C9 0x7C92
+0xB2CA 0x7C97
+0xB2CB 0x7C95
+0xB2CC 0x7D46
+0xB2CD 0x7D43
+0xB2CE 0x7D71
+0xB2CF 0x7D2E
+0xB2D0 0x7D39
+0xB2D1 0x7D3C
+0xB2D2 0x7D40
+0xB2D3 0x7D30
+0xB2D4 0x7D33
+0xB2D5 0x7D44
+0xB2D6 0x7D2F
+0xB2D7 0x7D42
+0xB2D8 0x7D32
+0xB2D9 0x7D31
+0xB2DA 0x7F3D
+0xB2DB 0x7F9E
+0xB2DC 0x7F9A
+0xB2DD 0x7FCC
+0xB2DE 0x7FCE
+0xB2DF 0x7FD2
+0xB2E0 0x801C
+0xB2E1 0x804A
+0xB2E2 0x8046
+0xB2E3 0x812F
+0xB2E4 0x8116
+0xB2E5 0x8123
+0xB2E6 0x812B
+0xB2E7 0x8129
+0xB2E8 0x8130
+0xB2E9 0x8124
+0xB2EA 0x8202
+0xB2EB 0x8235
+0xB2EC 0x8237
+0xB2ED 0x8236
+0xB2EE 0x8239
+0xB2EF 0x838E
+0xB2F0 0x839E
+0xB2F1 0x8398
+0xB2F2 0x8378
+0xB2F3 0x83A2
+0xB2F4 0x8396
+0xB2F5 0x83BD
+0xB2F6 0x83AB
+0xB2F7 0x8392
+0xB2F8 0x838A
+0xB2F9 0x8393
+0xB2FA 0x8389
+0xB2FB 0x83A0
+0xB2FC 0x8377
+0xB2FD-0xB2FE 0x837B
+0xB340 0x8386
+0xB341 0x83A7
+0xB342 0x8655
+0xB343 0x5F6A
+0xB344 0x86C7
+0xB345 0x86C0
+0xB346 0x86B6
+0xB347 0x86C4
+0xB348 0x86B5
+0xB349 0x86C6
+0xB34A 0x86CB
+0xB34B 0x86B1
+0xB34C 0x86AF
+0xB34D 0x86C9
+0xB34E 0x8853
+0xB34F 0x889E
+0xB350 0x8888
+0xB351 0x88AB
+0xB352 0x8892
+0xB353 0x8896
+0xB354 0x888D
+0xB355 0x888B
+0xB356 0x8993
+0xB357 0x898F
+0xB358 0x8A2A
+0xB359 0x8A1D
+0xB35A 0x8A23
+0xB35B 0x8A25
+0xB35C 0x8A31
+0xB35D 0x8A2D
+0xB35E 0x8A1F
+0xB35F 0x8A1B
+0xB360 0x8A22
+0xB361 0x8C49
+0xB362 0x8C5A
+0xB363 0x8CA9
+0xB364 0x8CAC
+0xB365 0x8CAB
+0xB366 0x8CA8
+0xB367 0x8CAA
+0xB368 0x8CA7
+0xB369 0x8D67
+0xB36A 0x8D66
+0xB36B 0x8DBE
+0xB36C 0x8DBA
+0xB36D 0x8EDB
+0xB36E 0x8EDF
+0xB36F 0x9019
+0xB370 0x900D
+0xB371 0x901A
+0xB372 0x9017
+0xB373 0x9023
+0xB374 0x901F
+0xB375 0x901D
+0xB376 0x9010
+0xB377 0x9015
+0xB378 0x901E
+0xB379 0x9020
+0xB37A 0x900F
+0xB37B 0x9022
+0xB37C 0x9016
+0xB37D 0x901B
+0xB37E 0x9014
+0xB3A1 0x90E8
+0xB3A2 0x90ED
+0xB3A3 0x90FD
+0xB3A4 0x9157
+0xB3A5 0x91CE
+0xB3A6 0x91F5
+0xB3A7 0x91E6
+0xB3A8 0x91E3
+0xB3A9 0x91E7
+0xB3AA 0x91ED
+0xB3AB 0x91E9
+0xB3AC 0x9589
+0xB3AD 0x966A
+0xB3AE 0x9675
+0xB3AF 0x9673
+0xB3B0 0x9678
+0xB3B1 0x9670
+0xB3B2 0x9674
+0xB3B3-0xB3B4 0x9676
+0xB3B5 0x966C
+0xB3B6 0x96C0
+0xB3B7 0x96EA
+0xB3B8 0x96E9
+0xB3B9 0x7AE0
+0xB3BA 0x7ADF
+0xB3BB-0xB3BC 0x9802
+0xB3BD 0x9B5A
+0xB3BE 0x9CE5
+0xB3BF 0x9E75
+0xB3C0 0x9E7F
+0xB3C1 0x9EA5
+0xB3C2 0x9EBB
+0xB3C3 0x50A2
+0xB3C4 0x508D
+0xB3C5 0x5085
+0xB3C6 0x5099
+0xB3C7 0x5091
+0xB3C8 0x5080
+0xB3C9 0x5096
+0xB3CA 0x5098
+0xB3CB 0x509A
+0xB3CC 0x6700
+0xB3CD 0x51F1
+0xB3CE 0x5272
+0xB3CF-0xB3D0 0x5274
+0xB3D1 0x5269
+0xB3D2 0x52DE
+0xB3D3 0x52DD
+0xB3D4 0x52DB
+0xB3D5 0x535A
+0xB3D6 0x53A5
+0xB3D7 0x557B
+0xB3D8 0x5580
+0xB3D9 0x55A7
+0xB3DA 0x557C
+0xB3DB 0x558A
+0xB3DC 0x559D
+0xB3DD 0x5598
+0xB3DE 0x5582
+0xB3DF 0x559C
+0xB3E0 0x55AA
+0xB3E1 0x5594
+0xB3E2 0x5587
+0xB3E3 0x558B
+0xB3E4 0x5583
+0xB3E5 0x55B3
+0xB3E6 0x55AE
+0xB3E7 0x559F
+0xB3E8 0x553E
+0xB3E9 0x55B2
+0xB3EA 0x559A
+0xB3EB 0x55BB
+0xB3EC 0x55AC
+0xB3ED 0x55B1
+0xB3EE 0x557E
+0xB3EF 0x5589
+0xB3F0 0x55AB
+0xB3F1 0x5599
+0xB3F2 0x570D
+0xB3F3 0x582F
+0xB3F4 0x582A
+0xB3F5 0x5834
+0xB3F6 0x5824
+0xB3F7-0xB3F8 0x5830
+0xB3F9 0x5821
+0xB3FA 0x581D
+0xB3FB 0x5820
+0xB3FC-0xB3FD 0x58F9
+0xB3FE 0x5960
+0xB440 0x5A77
+0xB441 0x5A9A
+0xB442 0x5A7F
+0xB443 0x5A92
+0xB444 0x5A9B
+0xB445 0x5AA7
+0xB446 0x5B73
+0xB447 0x5B71
+0xB448 0x5BD2
+0xB449 0x5BCC
+0xB44A 0x5BD3
+0xB44B 0x5BD0
+0xB44C-0xB44D 0x5C0A
+0xB44E 0x5C31
+0xB44F 0x5D4C
+0xB450 0x5D50
+0xB451 0x5D34
+0xB452 0x5D47
+0xB453 0x5DFD
+0xB454 0x5E45
+0xB455 0x5E3D
+0xB456 0x5E40
+0xB457 0x5E43
+0xB458 0x5E7E
+0xB459 0x5ECA
+0xB45A-0xB45B 0x5EC1
+0xB45C 0x5EC4
+0xB45D 0x5F3C
+0xB45E 0x5F6D
+0xB45F-0xB460 0x5FA9
+0xB461 0x5FA8
+0xB462 0x60D1
+0xB463 0x60E1
+0xB464 0x60B2
+0xB465 0x60B6
+0xB466 0x60E0
+0xB467 0x611C
+0xB468 0x6123
+0xB469 0x60FA
+0xB46A 0x6115
+0xB46B 0x60F0
+0xB46C 0x60FB
+0xB46D 0x60F4
+0xB46E 0x6168
+0xB46F 0x60F1
+0xB470 0x610E
+0xB471 0x60F6
+0xB472 0x6109
+0xB473 0x6100
+0xB474 0x6112
+0xB475 0x621F
+0xB476 0x6249
+0xB477 0x63A3
+0xB478 0x638C
+0xB479 0x63CF
+0xB47A 0x63C0
+0xB47B 0x63E9
+0xB47C 0x63C9
+0xB47D 0x63C6
+0xB47E 0x63CD
+0xB4A1 0x63D2
+0xB4A2 0x63E3
+0xB4A3 0x63D0
+0xB4A4 0x63E1
+0xB4A5 0x63D6
+0xB4A6-0xB4A7 0x63ED
+0xB4A8 0x6376
+0xB4A9 0x63F4
+0xB4AA 0x63EA
+0xB4AB 0x63DB
+0xB4AC 0x6452
+0xB4AD 0x63DA
+0xB4AE 0x63F9
+0xB4AF 0x655E
+0xB4B0 0x6566
+0xB4B1-0xB4B2 0x6562
+0xB4B3 0x6591
+0xB4B4 0x6590
+0xB4B5 0x65AF
+0xB4B6 0x666E
+0xB4B7 0x6670
+0xB4B8 0x6674
+0xB4B9 0x6676
+0xB4BA 0x666F
+0xB4BB 0x6691
+0xB4BC 0x667A
+0xB4BD 0x667E
+0xB4BE 0x6677
+0xB4BF-0xB4C0 0x66FE
+0xB4C1 0x671F
+0xB4C2 0x671D
+0xB4C3 0x68FA
+0xB4C4 0x68D5
+0xB4C5 0x68E0
+0xB4C6 0x68D8
+0xB4C7 0x68D7
+0xB4C8 0x6905
+0xB4C9 0x68DF
+0xB4CA 0x68F5
+0xB4CB 0x68EE
+0xB4CC 0x68E7
+0xB4CD 0x68F9
+0xB4CE 0x68D2
+0xB4CF 0x68F2
+0xB4D0 0x68E3
+0xB4D1 0x68CB
+0xB4D2 0x68CD
+0xB4D3 0x690D
+0xB4D4 0x6912
+0xB4D5 0x690E
+0xB4D6 0x68C9
+0xB4D7 0x68DA
+0xB4D8 0x696E
+0xB4D9 0x68FB
+0xB4DA 0x6B3E
+0xB4DB 0x6B3A
+0xB4DC 0x6B3D
+0xB4DD 0x6B98
+0xB4DE 0x6B96
+0xB4DF 0x6BBC
+0xB4E0 0x6BEF
+0xB4E1-0xB4E2 0x6C2E
+0xB4E3 0x6C2C
+0xB4E4 0x6E2F
+0xB4E5 0x6E38
+0xB4E6 0x6E54
+0xB4E7 0x6E21
+0xB4E8 0x6E32
+0xB4E9 0x6E67
+0xB4EA 0x6E4A
+0xB4EB 0x6E20
+0xB4EC 0x6E25
+0xB4ED 0x6E23
+0xB4EE 0x6E1B
+0xB4EF 0x6E5B
+0xB4F0 0x6E58
+0xB4F1 0x6E24
+0xB4F2 0x6E56
+0xB4F3 0x6E6E
+0xB4F4 0x6E2D
+0xB4F5 0x6E26
+0xB4F6 0x6E6F
+0xB4F7 0x6E34
+0xB4F8 0x6E4D
+0xB4F9 0x6E3A
+0xB4FA 0x6E2C
+0xB4FB 0x6E43
+0xB4FC 0x6E1D
+0xB4FD 0x6E3E
+0xB4FE 0x6ECB
+0xB540 0x6E89
+0xB541 0x6E19
+0xB542 0x6E4E
+0xB543 0x6E63
+0xB544 0x6E44
+0xB545 0x6E72
+0xB546 0x6E69
+0xB547 0x6E5F
+0xB548-0xB549 0x7119
+0xB54A 0x7126
+0xB54B 0x7130
+0xB54C 0x7121
+0xB54D 0x7136
+0xB54E 0x716E
+0xB54F 0x711C
+0xB550 0x724C
+0xB551 0x7284
+0xB552 0x7280
+0xB553 0x7336
+0xB554 0x7325
+0xB555 0x7334
+0xB556 0x7329
+0xB557 0x743A
+0xB558 0x742A
+0xB559 0x7433
+0xB55A 0x7422
+0xB55B 0x7425
+0xB55C-0xB55D 0x7435
+0xB55E 0x7434
+0xB55F 0x742F
+0xB560 0x741B
+0xB561 0x7426
+0xB562 0x7428
+0xB563-0xB564 0x7525
+0xB565 0x756B
+0xB566 0x756A
+0xB567 0x75E2
+0xB568 0x75DB
+0xB569 0x75E3
+0xB56A 0x75D9
+0xB56B 0x75D8
+0xB56C 0x75DE
+0xB56D 0x75E0
+0xB56E-0xB56F 0x767B
+0xB570 0x7696
+0xB571 0x7693
+0xB572 0x76B4
+0xB573 0x76DC
+0xB574 0x774F
+0xB575 0x77ED
+0xB576 0x785D
+0xB577 0x786C
+0xB578 0x786F
+0xB579 0x7A0D
+0xB57A 0x7A08
+0xB57B 0x7A0B
+0xB57C 0x7A05
+0xB57D 0x7A00
+0xB57E 0x7A98
+0xB5A1 0x7A97
+0xB5A2 0x7A96
+0xB5A3 0x7AE5
+0xB5A4 0x7AE3
+0xB5A5 0x7B49
+0xB5A6 0x7B56
+0xB5A7 0x7B46
+0xB5A8 0x7B50
+0xB5A9 0x7B52
+0xB5AA 0x7B54
+0xB5AB 0x7B4D
+0xB5AC 0x7B4B
+0xB5AD 0x7B4F
+0xB5AE 0x7B51
+0xB5AF 0x7C9F
+0xB5B0 0x7CA5
+0xB5B1 0x7D5E
+0xB5B2 0x7D50
+0xB5B3 0x7D68
+0xB5B4 0x7D55
+0xB5B5 0x7D2B
+0xB5B6 0x7D6E
+0xB5B7 0x7D72
+0xB5B8 0x7D61
+0xB5B9 0x7D66
+0xB5BA 0x7D62
+0xB5BB 0x7D70
+0xB5BC 0x7D73
+0xB5BD 0x5584
+0xB5BE-0xB5BF 0x7FD4
+0xB5C0 0x800B
+0xB5C1 0x8052
+0xB5C2 0x8085
+0xB5C3 0x8155
+0xB5C4 0x8154
+0xB5C5 0x814B
+0xB5C6 0x8151
+0xB5C7 0x814E
+0xB5C8 0x8139
+0xB5C9 0x8146
+0xB5CA 0x813E
+0xB5CB 0x814C
+0xB5CC 0x8153
+0xB5CD 0x8174
+0xB5CE 0x8212
+0xB5CF 0x821C
+0xB5D0 0x83E9
+0xB5D1 0x8403
+0xB5D2 0x83F8
+0xB5D3 0x840D
+0xB5D4 0x83E0
+0xB5D5 0x83C5
+0xB5D6 0x840B
+0xB5D7 0x83C1
+0xB5D8 0x83EF
+0xB5D9 0x83F1
+0xB5DA 0x83F4
+0xB5DB 0x8457
+0xB5DC 0x840A
+0xB5DD 0x83F0
+0xB5DE 0x840C
+0xB5DF 0x83CC
+0xB5E0 0x83FD
+0xB5E1 0x83F2
+0xB5E2 0x83CA
+0xB5E3 0x8438
+0xB5E4 0x840E
+0xB5E5 0x8404
+0xB5E6 0x83DC
+0xB5E7 0x8407
+0xB5E8 0x83D4
+0xB5E9 0x83DF
+0xB5EA 0x865B
+0xB5EB 0x86DF
+0xB5EC 0x86D9
+0xB5ED 0x86ED
+0xB5EE 0x86D4
+0xB5EF 0x86DB
+0xB5F0 0x86E4
+0xB5F1 0x86D0
+0xB5F2 0x86DE
+0xB5F3 0x8857
+0xB5F4-0xB5F5 0x88C1
+0xB5F6 0x88B1
+0xB5F7 0x8983
+0xB5F8 0x8996
+0xB5F9 0x8A3B
+0xB5FA 0x8A60
+0xB5FB 0x8A55
+0xB5FC 0x8A5E
+0xB5FD 0x8A3C
+0xB5FE 0x8A41
+0xB640 0x8A54
+0xB641 0x8A5B
+0xB642 0x8A50
+0xB643 0x8A46
+0xB644 0x8A34
+0xB645 0x8A3A
+0xB646 0x8A36
+0xB647 0x8A56
+0xB648 0x8C61
+0xB649 0x8C82
+0xB64A 0x8CAF
+0xB64B 0x8CBC
+0xB64C 0x8CB3
+0xB64D 0x8CBD
+0xB64E 0x8CC1
+0xB64F 0x8CBB
+0xB650 0x8CC0
+0xB651 0x8CB4
+0xB652 0x8CB7
+0xB653 0x8CB6
+0xB654 0x8CBF
+0xB655 0x8CB8
+0xB656 0x8D8A
+0xB657 0x8D85
+0xB658 0x8D81
+0xB659 0x8DCE
+0xB65A 0x8DDD
+0xB65B 0x8DCB
+0xB65C 0x8DDA
+0xB65D 0x8DD1
+0xB65E 0x8DCC
+0xB65F 0x8DDB
+0xB660 0x8DC6
+0xB661 0x8EFB
+0xB662 0x8EF8
+0xB663 0x8EFC
+0xB664 0x8F9C
+0xB665 0x902E
+0xB666 0x9035
+0xB667 0x9031
+0xB668 0x9038
+0xB669 0x9032
+0xB66A 0x9036
+0xB66B 0x9102
+0xB66C 0x90F5
+0xB66D 0x9109
+0xB66E 0x90FE
+0xB66F 0x9163
+0xB670 0x9165
+0xB671 0x91CF
+0xB672-0xB673 0x9214
+0xB674 0x9223
+0xB675 0x9209
+0xB676 0x921E
+0xB677 0x920D
+0xB678 0x9210
+0xB679 0x9207
+0xB67A 0x9211
+0xB67B 0x9594
+0xB67C 0x958F
+0xB67D 0x958B
+0xB67E 0x9591
+0xB6A1 0x9593
+0xB6A2 0x9592
+0xB6A3 0x958E
+0xB6A4 0x968A
+0xB6A5 0x968E
+0xB6A6 0x968B
+0xB6A7 0x967D
+0xB6A8-0xB6A9 0x9685
+0xB6AA 0x968D
+0xB6AB 0x9672
+0xB6AC 0x9684
+0xB6AD 0x96C1
+0xB6AE 0x96C5
+0xB6AF 0x96C4
+0xB6B0-0xB6B1 0x96C6
+0xB6B2 0x96EF
+0xB6B3 0x96F2
+0xB6B4 0x97CC
+0xB6B5-0xB6B6 0x9805
+0xB6B7 0x9808
+0xB6B8 0x98E7
+0xB6B9 0x98EA
+0xB6BA 0x98EF
+0xB6BB 0x98E9
+0xB6BC 0x98F2
+0xB6BD 0x98ED
+0xB6BE 0x99AE
+0xB6BF 0x99AD
+0xB6C0 0x9EC3
+0xB6C1 0x9ECD
+0xB6C2 0x9ED1
+0xB6C3 0x4E82
+0xB6C4 0x50AD
+0xB6C5 0x50B5
+0xB6C6-0xB6C7 0x50B2
+0xB6C8 0x50C5
+0xB6C9 0x50BE
+0xB6CA 0x50AC
+0xB6CB 0x50B7
+0xB6CC 0x50BB
+0xB6CD 0x50AF
+0xB6CE 0x50C7
+0xB6CF 0x527F
+0xB6D0 0x5277
+0xB6D1 0x527D
+0xB6D2 0x52DF
+0xB6D3 0x52E6
+0xB6D4 0x52E4
+0xB6D5-0xB6D6 0x52E2
+0xB6D7 0x532F
+0xB6D8 0x55DF
+0xB6D9 0x55E8
+0xB6DA 0x55D3
+0xB6DB 0x55E6
+0xB6DC 0x55CE
+0xB6DD 0x55DC
+0xB6DE 0x55C7
+0xB6DF 0x55D1
+0xB6E0-0xB6E1 0x55E3
+0xB6E2 0x55EF
+0xB6E3 0x55DA
+0xB6E4 0x55E1
+0xB6E5-0xB6E6 0x55C5
+0xB6E7 0x55E5
+0xB6E8 0x55C9
+0xB6E9-0xB6EA 0x5712
+0xB6EB 0x585E
+0xB6EC 0x5851
+0xB6ED 0x5858
+0xB6EE 0x5857
+0xB6EF 0x585A
+0xB6F0 0x5854
+0xB6F1 0x586B
+0xB6F2 0x584C
+0xB6F3 0x586D
+0xB6F4 0x584A
+0xB6F5 0x5862
+0xB6F6 0x5852
+0xB6F7 0x584B
+0xB6F8 0x5967
+0xB6F9 0x5AC1
+0xB6FA 0x5AC9
+0xB6FB 0x5ACC
+0xB6FC 0x5ABE
+0xB6FD 0x5ABD
+0xB6FE 0x5ABC
+0xB740 0x5AB3
+0xB741 0x5AC2
+0xB742 0x5AB2
+0xB743 0x5D69
+0xB744 0x5D6F
+0xB745 0x5E4C
+0xB746 0x5E79
+0xB747 0x5EC9
+0xB748 0x5EC8
+0xB749 0x5F12
+0xB74A 0x5F59
+0xB74B 0x5FAC
+0xB74C 0x5FAE
+0xB74D 0x611A
+0xB74E 0x610F
+0xB74F 0x6148
+0xB750 0x611F
+0xB751 0x60F3
+0xB752 0x611B
+0xB753 0x60F9
+0xB754 0x6101
+0xB755 0x6108
+0xB756 0x614E
+0xB757 0x614C
+0xB758 0x6144
+0xB759 0x614D
+0xB75A 0x613E
+0xB75B 0x6134
+0xB75C 0x6127
+0xB75D 0x610D
+0xB75E 0x6106
+0xB75F 0x6137
+0xB760-0xB761 0x6221
+0xB762 0x6413
+0xB763 0x643E
+0xB764 0x641E
+0xB765 0x642A
+0xB766 0x642D
+0xB767 0x643D
+0xB768 0x642C
+0xB769 0x640F
+0xB76A 0x641C
+0xB76B 0x6414
+0xB76C 0x640D
+0xB76D 0x6436
+0xB76E-0xB76F 0x6416
+0xB770 0x6406
+0xB771 0x656C
+0xB772 0x659F
+0xB773 0x65B0
+0xB774 0x6697
+0xB775 0x6689
+0xB776-0xB777 0x6687
+0xB778 0x6696
+0xB779 0x6684
+0xB77A 0x6698
+0xB77B 0x668D
+0xB77C 0x6703
+0xB77D 0x6994
+0xB77E 0x696D
+0xB7A1 0x695A
+0xB7A2 0x6977
+0xB7A3 0x6960
+0xB7A4 0x6954
+0xB7A5 0x6975
+0xB7A6 0x6930
+0xB7A7 0x6982
+0xB7A8 0x694A
+0xB7A9 0x6968
+0xB7AA 0x696B
+0xB7AB 0x695E
+0xB7AC 0x6953
+0xB7AD 0x6979
+0xB7AE 0x6986
+0xB7AF 0x695D
+0xB7B0 0x6963
+0xB7B1 0x695B
+0xB7B2 0x6B47
+0xB7B3 0x6B72
+0xB7B4 0x6BC0
+0xB7B5 0x6BBF
+0xB7B6 0x6BD3
+0xB7B7 0x6BFD
+0xB7B8 0x6EA2
+0xB7B9 0x6EAF
+0xB7BA 0x6ED3
+0xB7BB 0x6EB6
+0xB7BC 0x6EC2
+0xB7BD 0x6E90
+0xB7BE 0x6E9D
+0xB7BF 0x6EC7
+0xB7C0 0x6EC5
+0xB7C1 0x6EA5
+0xB7C2 0x6E98
+0xB7C3 0x6EBC
+0xB7C4 0x6EBA
+0xB7C5 0x6EAB
+0xB7C6 0x6ED1
+0xB7C7 0x6E96
+0xB7C8 0x6E9C
+0xB7C9 0x6EC4
+0xB7CA 0x6ED4
+0xB7CB 0x6EAA
+0xB7CC 0x6EA7
+0xB7CD 0x6EB4
+0xB7CE 0x714E
+0xB7CF 0x7159
+0xB7D0 0x7169
+0xB7D1 0x7164
+0xB7D2 0x7149
+0xB7D3 0x7167
+0xB7D4 0x715C
+0xB7D5 0x716C
+0xB7D6 0x7166
+0xB7D7 0x714C
+0xB7D8 0x7165
+0xB7D9 0x715E
+0xB7DA 0x7146
+0xB7DB 0x7168
+0xB7DC 0x7156
+0xB7DD 0x723A
+0xB7DE 0x7252
+0xB7DF 0x7337
+0xB7E0 0x7345
+0xB7E1 0x733F
+0xB7E2 0x733E
+0xB7E3 0x746F
+0xB7E4 0x745A
+0xB7E5 0x7455
+0xB7E6 0x745F
+0xB7E7 0x745E
+0xB7E8 0x7441
+0xB7E9 0x743F
+0xB7EA 0x7459
+0xB7EB-0xB7EC 0x745B
+0xB7ED 0x7576
+0xB7EE 0x7578
+0xB7EF 0x7600
+0xB7F0 0x75F0
+0xB7F1 0x7601
+0xB7F2 0x75F2
+0xB7F3 0x75F1
+0xB7F4 0x75FA
+0xB7F5 0x75FF
+0xB7F6 0x75F4
+0xB7F7 0x75F3
+0xB7F8-0xB7F9 0x76DE
+0xB7FA 0x775B
+0xB7FB 0x776B
+0xB7FC 0x7766
+0xB7FD 0x775E
+0xB7FE 0x7763
+0xB840 0x7779
+0xB841 0x776A
+0xB842 0x776C
+0xB843 0x775C
+0xB844 0x7765
+0xB845 0x7768
+0xB846 0x7762
+0xB847 0x77EE
+0xB848 0x788E
+0xB849 0x78B0
+0xB84A-0xB84B 0x7897
+0xB84C 0x788C
+0xB84D 0x7889
+0xB84E 0x787C
+0xB84F 0x7891
+0xB850 0x7893
+0xB851 0x787F
+0xB852 0x797A
+0xB853 0x797F
+0xB854 0x7981
+0xB855 0x842C
+0xB856 0x79BD
+0xB857 0x7A1C
+0xB858 0x7A1A
+0xB859 0x7A20
+0xB85A 0x7A14
+0xB85B 0x7A1F
+0xB85C 0x7A1E
+0xB85D-0xB85E 0x7A9F
+0xB85F 0x7B77
+0xB860 0x7BC0
+0xB861 0x7B60
+0xB862 0x7B6E
+0xB863 0x7B67
+0xB864 0x7CB1
+0xB865 0x7CB3
+0xB866 0x7CB5
+0xB867 0x7D93
+0xB868 0x7D79
+0xB869 0x7D91
+0xB86A 0x7D81
+0xB86B 0x7D8F
+0xB86C 0x7D5B
+0xB86D 0x7F6E
+0xB86E-0xB86F 0x7F69
+0xB870 0x7F72
+0xB871 0x7FA9
+0xB872 0x7FA8
+0xB873 0x7FA4
+0xB874 0x8056
+0xB875 0x8058
+0xB876 0x8086
+0xB877 0x8084
+0xB878 0x8171
+0xB879 0x8170
+0xB87A 0x8178
+0xB87B 0x8165
+0xB87C 0x816E
+0xB87D 0x8173
+0xB87E 0x816B
+0xB8A1-0xB8A2 0x8179
+0xB8A3 0x8166
+0xB8A4 0x8205
+0xB8A5 0x8247
+0xB8A6 0x8482
+0xB8A7 0x8477
+0xB8A8 0x843D
+0xB8A9 0x8431
+0xB8AA 0x8475
+0xB8AB 0x8466
+0xB8AC 0x846B
+0xB8AD 0x8449
+0xB8AE 0x846C
+0xB8AF 0x845B
+0xB8B0 0x843C
+0xB8B1 0x8435
+0xB8B2 0x8461
+0xB8B3 0x8463
+0xB8B4 0x8469
+0xB8B5 0x846D
+0xB8B6 0x8446
+0xB8B7 0x865E
+0xB8B8 0x865C
+0xB8B9 0x865F
+0xB8BA 0x86F9
+0xB8BB 0x8713
+0xB8BC 0x8708
+0xB8BD 0x8707
+0xB8BE 0x8700
+0xB8BF 0x86FE
+0xB8C0 0x86FB
+0xB8C1-0xB8C2 0x8702
+0xB8C3 0x8706
+0xB8C4 0x870A
+0xB8C5 0x8859
+0xB8C6 0x88DF
+0xB8C7 0x88D4
+0xB8C8 0x88D9
+0xB8C9 0x88DC
+0xB8CA 0x88D8
+0xB8CB 0x88DD
+0xB8CC 0x88E1
+0xB8CD 0x88CA
+0xB8CE 0x88D5
+0xB8CF 0x88D2
+0xB8D0 0x899C
+0xB8D1 0x89E3
+0xB8D2 0x8A6B
+0xB8D3-0xB8D4 0x8A72
+0xB8D5 0x8A66
+0xB8D6 0x8A69
+0xB8D7 0x8A70
+0xB8D8 0x8A87
+0xB8D9 0x8A7C
+0xB8DA 0x8A63
+0xB8DB 0x8AA0
+0xB8DC 0x8A71
+0xB8DD 0x8A85
+0xB8DE 0x8A6D
+0xB8DF 0x8A62
+0xB8E0 0x8A6E
+0xB8E1 0x8A6C
+0xB8E2 0x8A79
+0xB8E3 0x8A7B
+0xB8E4 0x8A3E
+0xB8E5 0x8A68
+0xB8E6 0x8C62
+0xB8E7 0x8C8A
+0xB8E8 0x8C89
+0xB8E9 0x8CCA
+0xB8EA-0xB8EB 0x8CC7
+0xB8EC 0x8CC4
+0xB8ED 0x8CB2
+0xB8EE 0x8CC3
+0xB8EF 0x8CC2
+0xB8F0 0x8CC5
+0xB8F1 0x8DE1
+0xB8F2 0x8DDF
+0xB8F3 0x8DE8
+0xB8F4 0x8DEF
+0xB8F5 0x8DF3
+0xB8F6 0x8DFA
+0xB8F7 0x8DEA
+0xB8F8 0x8DE4
+0xB8F9 0x8DE6
+0xB8FA 0x8EB2
+0xB8FB 0x8F03
+0xB8FC 0x8F09
+0xB8FD 0x8EFE
+0xB8FE 0x8F0A
+0xB940 0x8F9F
+0xB941 0x8FB2
+0xB942 0x904B
+0xB943 0x904A
+0xB944 0x9053
+0xB945 0x9042
+0xB946 0x9054
+0xB947 0x903C
+0xB948 0x9055
+0xB949 0x9050
+0xB94A 0x9047
+0xB94B 0x904F
+0xB94C 0x904E
+0xB94D 0x904D
+0xB94E 0x9051
+0xB94F 0x903E
+0xB950 0x9041
+0xB951 0x9112
+0xB952 0x9117
+0xB953 0x916C
+0xB954 0x916A
+0xB955 0x9169
+0xB956 0x91C9
+0xB957 0x9237
+0xB958 0x9257
+0xB959 0x9238
+0xB95A 0x923D
+0xB95B 0x9240
+0xB95C 0x923E
+0xB95D 0x925B
+0xB95E 0x924B
+0xB95F 0x9264
+0xB960 0x9251
+0xB961 0x9234
+0xB962 0x9249
+0xB963 0x924D
+0xB964 0x9245
+0xB965 0x9239
+0xB966 0x923F
+0xB967 0x925A
+0xB968 0x9598
+0xB969 0x9698
+0xB96A-0xB96B 0x9694
+0xB96C 0x96CD
+0xB96D 0x96CB
+0xB96E-0xB96F 0x96C9
+0xB970 0x96F7
+0xB971 0x96FB
+0xB972 0x96F9
+0xB973 0x96F6
+0xB974 0x9756
+0xB975 0x9774
+0xB976 0x9776
+0xB977-0xB978 0x9810
+0xB979 0x9813
+0xB97A 0x980A
+0xB97B 0x9812
+0xB97C 0x980C
+0xB97D 0x98FC
+0xB97E 0x98F4
+0xB9A1-0xB9A2 0x98FD
+0xB9A3 0x99B3
+0xB9A4 0x99B1
+0xB9A5 0x99B4
+0xB9A6 0x9AE1
+0xB9A7 0x9CE9
+0xB9A8 0x9E82
+0xB9A9 0x9F0E
+0xB9AA 0x9F13
+0xB9AB 0x9F20
+0xB9AC 0x50E7
+0xB9AD 0x50EE
+0xB9AE 0x50E5
+0xB9AF 0x50D6
+0xB9B0 0x50ED
+0xB9B1 0x50DA
+0xB9B2 0x50D5
+0xB9B3 0x50CF
+0xB9B4 0x50D1
+0xB9B5 0x50F1
+0xB9B6 0x50CE
+0xB9B7 0x50E9
+0xB9B8 0x5162
+0xB9B9 0x51F3
+0xB9BA 0x5283
+0xB9BB 0x5282
+0xB9BC 0x5331
+0xB9BD 0x53AD
+0xB9BE 0x55FE
+0xB9BF 0x5600
+0xB9C0 0x561B
+0xB9C1 0x5617
+0xB9C2 0x55FD
+0xB9C3 0x5614
+0xB9C4 0x5606
+0xB9C5 0x5609
+0xB9C6-0xB9C7 0x560D
+0xB9C8 0x55F7
+0xB9C9 0x5616
+0xB9CA 0x561F
+0xB9CB 0x5608
+0xB9CC 0x5610
+0xB9CD 0x55F6
+0xB9CE 0x5718
+0xB9CF 0x5716
+0xB9D0 0x5875
+0xB9D1 0x587E
+0xB9D2 0x5883
+0xB9D3 0x5893
+0xB9D4 0x588A
+0xB9D5 0x5879
+0xB9D6 0x5885
+0xB9D7 0x587D
+0xB9D8 0x58FD
+0xB9D9 0x5925
+0xB9DA 0x5922
+0xB9DB 0x5924
+0xB9DC 0x596A
+0xB9DD 0x5969
+0xB9DE 0x5AE1
+0xB9DF 0x5AE6
+0xB9E0 0x5AE9
+0xB9E1 0x5AD7
+0xB9E2 0x5AD6
+0xB9E3 0x5AD8
+0xB9E4 0x5AE3
+0xB9E5 0x5B75
+0xB9E6 0x5BDE
+0xB9E7 0x5BE7
+0xB9E8 0x5BE1
+0xB9E9-0xB9EA 0x5BE5
+0xB9EB 0x5BE8
+0xB9EC 0x5BE2
+0xB9ED 0x5BE4
+0xB9EE 0x5BDF
+0xB9EF 0x5C0D
+0xB9F0 0x5C62
+0xB9F1 0x5D84
+0xB9F2 0x5D87
+0xB9F3 0x5E5B
+0xB9F4 0x5E63
+0xB9F5 0x5E55
+0xB9F6 0x5E57
+0xB9F7 0x5E54
+0xB9F8 0x5ED3
+0xB9F9 0x5ED6
+0xB9FA 0x5F0A
+0xB9FB 0x5F46
+0xB9FC 0x5F70
+0xB9FD 0x5FB9
+0xB9FE 0x6147
+0xBA40 0x613F
+0xBA41 0x614B
+0xBA42 0x6177
+0xBA43-0xBA44 0x6162
+0xBA45 0x615F
+0xBA46 0x615A
+0xBA47 0x6158
+0xBA48 0x6175
+0xBA49 0x622A
+0xBA4A 0x6487
+0xBA4B 0x6458
+0xBA4C 0x6454
+0xBA4D 0x64A4
+0xBA4E 0x6478
+0xBA4F 0x645F
+0xBA50 0x647A
+0xBA51 0x6451
+0xBA52 0x6467
+0xBA53 0x6434
+0xBA54 0x646D
+0xBA55 0x647B
+0xBA56 0x6572
+0xBA57 0x65A1
+0xBA58 0x65D7
+0xBA59 0x65D6
+0xBA5A 0x66A2
+0xBA5B 0x66A8
+0xBA5C 0x669D
+0xBA5D 0x699C
+0xBA5E 0x69A8
+0xBA5F 0x6995
+0xBA60 0x69C1
+0xBA61 0x69AE
+0xBA62 0x69D3
+0xBA63 0x69CB
+0xBA64 0x699B
+0xBA65 0x69B7
+0xBA66 0x69BB
+0xBA67 0x69AB
+0xBA68 0x69B4
+0xBA69 0x69D0
+0xBA6A 0x69CD
+0xBA6B 0x69AD
+0xBA6C 0x69CC
+0xBA6D 0x69A6
+0xBA6E 0x69C3
+0xBA6F 0x69A3
+0xBA70 0x6B49
+0xBA71 0x6B4C
+0xBA72 0x6C33
+0xBA73 0x6F33
+0xBA74 0x6F14
+0xBA75 0x6EFE
+0xBA76 0x6F13
+0xBA77 0x6EF4
+0xBA78 0x6F29
+0xBA79 0x6F3E
+0xBA7A 0x6F20
+0xBA7B 0x6F2C
+0xBA7C 0x6F0F
+0xBA7D 0x6F02
+0xBA7E 0x6F22
+0xBAA1 0x6EFF
+0xBAA2 0x6EEF
+0xBAA3 0x6F06
+0xBAA4 0x6F31
+0xBAA5 0x6F38
+0xBAA6 0x6F32
+0xBAA7 0x6F23
+0xBAA8 0x6F15
+0xBAA9 0x6F2B
+0xBAAA 0x6F2F
+0xBAAB 0x6F88
+0xBAAC 0x6F2A
+0xBAAD 0x6EEC
+0xBAAE 0x6F01
+0xBAAF 0x6EF2
+0xBAB0 0x6ECC
+0xBAB1 0x6EF7
+0xBAB2 0x7194
+0xBAB3 0x7199
+0xBAB4 0x717D
+0xBAB5 0x718A
+0xBAB6 0x7184
+0xBAB7 0x7192
+0xBAB8 0x723E
+0xBAB9 0x7292
+0xBABA 0x7296
+0xBABB 0x7344
+0xBABC 0x7350
+0xBABD 0x7464
+0xBABE 0x7463
+0xBABF 0x746A
+0xBAC0 0x7470
+0xBAC1 0x746D
+0xBAC2 0x7504
+0xBAC3 0x7591
+0xBAC4 0x7627
+0xBAC5 0x760D
+0xBAC6 0x760B
+0xBAC7 0x7609
+0xBAC8 0x7613
+0xBAC9 0x76E1
+0xBACA 0x76E3
+0xBACB 0x7784
+0xBACC 0x777D
+0xBACD 0x777F
+0xBACE 0x7761
+0xBACF 0x78C1
+0xBAD0 0x789F
+0xBAD1 0x78A7
+0xBAD2 0x78B3
+0xBAD3 0x78A9
+0xBAD4 0x78A3
+0xBAD5-0xBAD6 0x798E
+0xBAD7 0x798D
+0xBAD8 0x7A2E
+0xBAD9 0x7A31
+0xBADA 0x7AAA
+0xBADB 0x7AA9
+0xBADC 0x7AED
+0xBADD 0x7AEF
+0xBADE 0x7BA1
+0xBADF 0x7B95
+0xBAE0 0x7B8B
+0xBAE1 0x7B75
+0xBAE2 0x7B97
+0xBAE3 0x7B9D
+0xBAE4 0x7B94
+0xBAE5 0x7B8F
+0xBAE6 0x7BB8
+0xBAE7 0x7B87
+0xBAE8 0x7B84
+0xBAE9 0x7CB9
+0xBAEA-0xBAEB 0x7CBD
+0xBAEC 0x7DBB
+0xBAED 0x7DB0
+0xBAEE 0x7D9C
+0xBAEF-0xBAF0 0x7DBD
+0xBAF1 0x7DA0
+0xBAF2 0x7DCA
+0xBAF3 0x7DB4
+0xBAF4 0x7DB2
+0xBAF5 0x7DB1
+0xBAF6 0x7DBA
+0xBAF7 0x7DA2
+0xBAF8 0x7DBF
+0xBAF9 0x7DB5
+0xBAFA 0x7DB8
+0xBAFB 0x7DAD
+0xBAFC 0x7DD2
+0xBAFD 0x7DC7
+0xBAFE 0x7DAC
+0xBB40 0x7F70
+0xBB41-0xBB42 0x7FE0
+0xBB43 0x7FDF
+0xBB44 0x805E
+0xBB45 0x805A
+0xBB46 0x8087
+0xBB47 0x8150
+0xBB48 0x8180
+0xBB49 0x818F
+0xBB4A 0x8188
+0xBB4B 0x818A
+0xBB4C 0x817F
+0xBB4D 0x8182
+0xBB4E 0x81E7
+0xBB4F 0x81FA
+0xBB50 0x8207
+0xBB51 0x8214
+0xBB52 0x821E
+0xBB53 0x824B
+0xBB54 0x84C9
+0xBB55 0x84BF
+0xBB56 0x84C6
+0xBB57 0x84C4
+0xBB58 0x8499
+0xBB59 0x849E
+0xBB5A 0x84B2
+0xBB5B 0x849C
+0xBB5C 0x84CB
+0xBB5D 0x84B8
+0xBB5E 0x84C0
+0xBB5F 0x84D3
+0xBB60 0x8490
+0xBB61 0x84BC
+0xBB62 0x84D1
+0xBB63 0x84CA
+0xBB64 0x873F
+0xBB65 0x871C
+0xBB66 0x873B
+0xBB67 0x8722
+0xBB68 0x8725
+0xBB69 0x8734
+0xBB6A 0x8718
+0xBB6B 0x8755
+0xBB6C 0x8737
+0xBB6D 0x8729
+0xBB6E 0x88F3
+0xBB6F 0x8902
+0xBB70 0x88F4
+0xBB71 0x88F9
+0xBB72 0x88F8
+0xBB73 0x88FD
+0xBB74 0x88E8
+0xBB75 0x891A
+0xBB76 0x88EF
+0xBB77 0x8AA6
+0xBB78 0x8A8C
+0xBB79 0x8A9E
+0xBB7A 0x8AA3
+0xBB7B 0x8A8D
+0xBB7C 0x8AA1
+0xBB7D 0x8A93
+0xBB7E 0x8AA4
+0xBBA1 0x8AAA
+0xBBA2 0x8AA5
+0xBBA3 0x8AA8
+0xBBA4 0x8A98
+0xBBA5 0x8A91
+0xBBA6 0x8A9A
+0xBBA7 0x8AA7
+0xBBA8 0x8C6A
+0xBBA9 0x8C8D
+0xBBAA 0x8C8C
+0xBBAB 0x8CD3
+0xBBAC-0xBBAD 0x8CD1
+0xBBAE 0x8D6B
+0xBBAF 0x8D99
+0xBBB0 0x8D95
+0xBBB1 0x8DFC
+0xBBB2 0x8F14
+0xBBB3 0x8F12
+0xBBB4 0x8F15
+0xBBB5 0x8F13
+0xBBB6 0x8FA3
+0xBBB7 0x9060
+0xBBB8 0x9058
+0xBBB9 0x905C
+0xBBBA 0x9063
+0xBBBB 0x9059
+0xBBBC 0x905E
+0xBBBD 0x9062
+0xBBBE 0x905D
+0xBBBF 0x905B
+0xBBC0 0x9119
+0xBBC1 0x9118
+0xBBC2 0x911E
+0xBBC3 0x9175
+0xBBC4 0x9178
+0xBBC5 0x9177
+0xBBC6 0x9174
+0xBBC7 0x9278
+0xBBC8 0x9280
+0xBBC9 0x9285
+0xBBCA 0x9298
+0xBBCB 0x9296
+0xBBCC 0x927B
+0xBBCD 0x9293
+0xBBCE 0x929C
+0xBBCF 0x92A8
+0xBBD0 0x927C
+0xBBD1 0x9291
+0xBBD2 0x95A1
+0xBBD3-0xBBD4 0x95A8
+0xBBD5 0x95A3
+0xBBD6 0x95A5
+0xBBD7 0x95A4
+0xBBD8 0x9699
+0xBBD9 0x969C
+0xBBDA 0x969B
+0xBBDB 0x96CC
+0xBBDC 0x96D2
+0xBBDD 0x9700
+0xBBDE 0x977C
+0xBBDF 0x9785
+0xBBE0 0x97F6
+0xBBE1-0xBBE2 0x9817
+0xBBE3 0x98AF
+0xBBE4 0x98B1
+0xBBE5 0x9903
+0xBBE6 0x9905
+0xBBE7 0x990C
+0xBBE8 0x9909
+0xBBE9 0x99C1
+0xBBEA-0xBBEB 0x9AAF
+0xBBEC 0x9AE6
+0xBBED-0xBBEE 0x9B41
+0xBBEF 0x9CF4
+0xBBF0 0x9CF6
+0xBBF1 0x9CF3
+0xBBF2 0x9EBC
+0xBBF3 0x9F3B
+0xBBF4 0x9F4A
+0xBBF5 0x5104
+0xBBF6 0x5100
+0xBBF7 0x50FB
+0xBBF8 0x50F5
+0xBBF9 0x50F9
+0xBBFA 0x5102
+0xBBFB-0xBBFC 0x5108
+0xBBFD 0x5105
+0xBBFE 0x51DC
+0xBC40-0xBC42 0x5287
+0xBC43 0x528D
+0xBC44 0x528A
+0xBC45 0x52F0
+0xBC46 0x53B2
+0xBC47 0x562E
+0xBC48 0x563B
+0xBC49 0x5639
+0xBC4A 0x5632
+0xBC4B 0x563F
+0xBC4C 0x5634
+0xBC4D 0x5629
+0xBC4E 0x5653
+0xBC4F 0x564E
+0xBC50 0x5657
+0xBC51 0x5674
+0xBC52 0x5636
+0xBC53-0xBC54 0x562F
+0xBC55 0x5880
+0xBC56 0x589F
+0xBC57 0x589E
+0xBC58 0x58B3
+0xBC59 0x589C
+0xBC5A 0x58AE
+0xBC5B 0x58A9
+0xBC5C 0x58A6
+0xBC5D 0x596D
+0xBC5E 0x5B09
+0xBC5F 0x5AFB
+0xBC60 0x5B0B
+0xBC61 0x5AF5
+0xBC62 0x5B0C
+0xBC63 0x5B08
+0xBC64 0x5BEE
+0xBC65 0x5BEC
+0xBC66 0x5BE9
+0xBC67 0x5BEB
+0xBC68-0xBC69 0x5C64
+0xBC6A 0x5D9D
+0xBC6B 0x5D94
+0xBC6C 0x5E62
+0xBC6D 0x5E5F
+0xBC6E 0x5E61
+0xBC6F 0x5EE2
+0xBC70 0x5EDA
+0xBC71 0x5EDF
+0xBC72 0x5EDD
+0xBC73 0x5EE3
+0xBC74 0x5EE0
+0xBC75 0x5F48
+0xBC76 0x5F71
+0xBC77 0x5FB7
+0xBC78 0x5FB5
+0xBC79 0x6176
+0xBC7A 0x6167
+0xBC7B 0x616E
+0xBC7C 0x615D
+0xBC7D 0x6155
+0xBC7E 0x6182
+0xBCA1 0x617C
+0xBCA2 0x6170
+0xBCA3 0x616B
+0xBCA4 0x617E
+0xBCA5 0x61A7
+0xBCA6 0x6190
+0xBCA7 0x61AB
+0xBCA8 0x618E
+0xBCA9 0x61AC
+0xBCAA 0x619A
+0xBCAB 0x61A4
+0xBCAC 0x6194
+0xBCAD 0x61AE
+0xBCAE 0x622E
+0xBCAF 0x6469
+0xBCB0 0x646F
+0xBCB1 0x6479
+0xBCB2 0x649E
+0xBCB3 0x64B2
+0xBCB4 0x6488
+0xBCB5 0x6490
+0xBCB6 0x64B0
+0xBCB7 0x64A5
+0xBCB8 0x6493
+0xBCB9 0x6495
+0xBCBA 0x64A9
+0xBCBB 0x6492
+0xBCBC 0x64AE
+0xBCBD 0x64AD
+0xBCBE 0x64AB
+0xBCBF 0x649A
+0xBCC0 0x64AC
+0xBCC1 0x6499
+0xBCC2 0x64A2
+0xBCC3 0x64B3
+0xBCC4 0x6575
+0xBCC5-0xBCC6 0x6577
+0xBCC7 0x66AE
+0xBCC8 0x66AB
+0xBCC9 0x66B4
+0xBCCA 0x66B1
+0xBCCB 0x6A23
+0xBCCC 0x6A1F
+0xBCCD 0x69E8
+0xBCCE 0x6A01
+0xBCCF 0x6A1E
+0xBCD0 0x6A19
+0xBCD1 0x69FD
+0xBCD2 0x6A21
+0xBCD3 0x6A13
+0xBCD4 0x6A0A
+0xBCD5 0x69F3
+0xBCD6 0x6A02
+0xBCD7 0x6A05
+0xBCD8 0x69ED
+0xBCD9 0x6A11
+0xBCDA 0x6B50
+0xBCDB 0x6B4E
+0xBCDC 0x6BA4
+0xBCDD-0xBCDE 0x6BC5
+0xBCDF 0x6F3F
+0xBCE0 0x6F7C
+0xBCE1 0x6F84
+0xBCE2 0x6F51
+0xBCE3 0x6F66
+0xBCE4 0x6F54
+0xBCE5 0x6F86
+0xBCE6 0x6F6D
+0xBCE7 0x6F5B
+0xBCE8 0x6F78
+0xBCE9 0x6F6E
+0xBCEA 0x6F8E
+0xBCEB 0x6F7A
+0xBCEC 0x6F70
+0xBCED 0x6F64
+0xBCEE 0x6F97
+0xBCEF 0x6F58
+0xBCF0 0x6ED5
+0xBCF1 0x6F6F
+0xBCF2 0x6F60
+0xBCF3 0x6F5F
+0xBCF4 0x719F
+0xBCF5 0x71AC
+0xBCF6 0x71B1
+0xBCF7 0x71A8
+0xBCF8 0x7256
+0xBCF9 0x729B
+0xBCFA 0x734E
+0xBCFB 0x7357
+0xBCFC 0x7469
+0xBCFD 0x748B
+0xBCFE 0x7483
+0xBD40 0x747E
+0xBD41 0x7480
+0xBD42 0x757F
+0xBD43 0x7620
+0xBD44 0x7629
+0xBD45 0x761F
+0xBD46 0x7624
+0xBD47 0x7626
+0xBD48-0xBD49 0x7621
+0xBD4A 0x769A
+0xBD4B 0x76BA
+0xBD4C 0x76E4
+0xBD4D 0x778E
+0xBD4E 0x7787
+0xBD4F 0x778C
+0xBD50 0x7791
+0xBD51 0x778B
+0xBD52 0x78CB
+0xBD53 0x78C5
+0xBD54 0x78BA
+0xBD55 0x78CA
+0xBD56 0x78BE
+0xBD57 0x78D5
+0xBD58 0x78BC
+0xBD59 0x78D0
+0xBD5A 0x7A3F
+0xBD5B 0x7A3C
+0xBD5C 0x7A40
+0xBD5D 0x7A3D
+0xBD5E 0x7A37
+0xBD5F 0x7A3B
+0xBD60 0x7AAF
+0xBD61 0x7AAE
+0xBD62 0x7BAD
+0xBD63 0x7BB1
+0xBD64 0x7BC4
+0xBD65 0x7BB4
+0xBD66-0xBD67 0x7BC6
+0xBD68 0x7BC1
+0xBD69 0x7BA0
+0xBD6A 0x7BCC
+0xBD6B 0x7CCA
+0xBD6C 0x7DE0
+0xBD6D 0x7DF4
+0xBD6E 0x7DEF
+0xBD6F 0x7DFB
+0xBD70 0x7DD8
+0xBD71 0x7DEC
+0xBD72 0x7DDD
+0xBD73 0x7DE8
+0xBD74 0x7DE3
+0xBD75 0x7DDA
+0xBD76 0x7DDE
+0xBD77 0x7DE9
+0xBD78 0x7D9E
+0xBD79 0x7DD9
+0xBD7A 0x7DF2
+0xBD7B 0x7DF9
+0xBD7C 0x7F75
+0xBD7D 0x7F77
+0xBD7E 0x7FAF
+0xBDA1 0x7FE9
+0xBDA2 0x8026
+0xBDA3-0xBDA5 0x819B
+0xBDA6 0x81A0
+0xBDA7 0x819A
+0xBDA8 0x8198
+0xBDA9 0x8517
+0xBDAA 0x853D
+0xBDAB 0x851A
+0xBDAC 0x84EE
+0xBDAD-0xBDAE 0x852C
+0xBDAF 0x8513
+0xBDB0 0x8511
+0xBDB1 0x8523
+0xBDB2 0x8521
+0xBDB3 0x8514
+0xBDB4 0x84EC
+0xBDB5 0x8525
+0xBDB6 0x84FF
+0xBDB7 0x8506
+0xBDB8 0x8782
+0xBDB9 0x8774
+0xBDBA 0x8776
+0xBDBB 0x8760
+0xBDBC 0x8766
+0xBDBD 0x8778
+0xBDBE 0x8768
+0xBDBF 0x8759
+0xBDC0 0x8757
+0xBDC1 0x874C
+0xBDC2 0x8753
+0xBDC3 0x885B
+0xBDC4 0x885D
+0xBDC5 0x8910
+0xBDC6 0x8907
+0xBDC7-0xBDC8 0x8912
+0xBDC9 0x8915
+0xBDCA 0x890A
+0xBDCB 0x8ABC
+0xBDCC 0x8AD2
+0xBDCD 0x8AC7
+0xBDCE 0x8AC4
+0xBDCF 0x8A95
+0xBDD0 0x8ACB
+0xBDD1 0x8AF8
+0xBDD2 0x8AB2
+0xBDD3 0x8AC9
+0xBDD4 0x8AC2
+0xBDD5 0x8ABF
+0xBDD6 0x8AB0
+0xBDD7 0x8AD6
+0xBDD8 0x8ACD
+0xBDD9 0x8AB6
+0xBDDA 0x8AB9
+0xBDDB 0x8ADB
+0xBDDC 0x8C4C
+0xBDDD 0x8C4E
+0xBDDE 0x8C6C
+0xBDDF 0x8CE0
+0xBDE0 0x8CDE
+0xBDE1 0x8CE6
+0xBDE2 0x8CE4
+0xBDE3-0xBDE4 0x8CEC
+0xBDE5-0xBDE6 0x8CE2
+0xBDE7 0x8CDC
+0xBDE8 0x8CEA
+0xBDE9 0x8CE1
+0xBDEA 0x8D6D
+0xBDEB 0x8D9F
+0xBDEC 0x8DA3
+0xBDED 0x8E2B
+0xBDEE 0x8E10
+0xBDEF 0x8E1D
+0xBDF0 0x8E22
+0xBDF1 0x8E0F
+0xBDF2 0x8E29
+0xBDF3 0x8E1F
+0xBDF4 0x8E21
+0xBDF5 0x8E1E
+0xBDF6 0x8EBA
+0xBDF7 0x8F1D
+0xBDF8 0x8F1B
+0xBDF9 0x8F1F
+0xBDFA 0x8F29
+0xBDFB 0x8F26
+0xBDFC 0x8F2A
+0xBDFD 0x8F1C
+0xBDFE 0x8F1E
+0xBE40 0x8F25
+0xBE41 0x9069
+0xBE42 0x906E
+0xBE43 0x9068
+0xBE44 0x906D
+0xBE45 0x9077
+0xBE46 0x9130
+0xBE47 0x912D
+0xBE48 0x9127
+0xBE49 0x9131
+0xBE4A 0x9187
+0xBE4B 0x9189
+0xBE4C 0x918B
+0xBE4D 0x9183
+0xBE4E 0x92C5
+0xBE4F 0x92BB
+0xBE50 0x92B7
+0xBE51 0x92EA
+0xBE52 0x92AC
+0xBE53 0x92E4
+0xBE54 0x92C1
+0xBE55 0x92B3
+0xBE56 0x92BC
+0xBE57 0x92D2
+0xBE58 0x92C7
+0xBE59 0x92F0
+0xBE5A 0x92B2
+0xBE5B 0x95AD
+0xBE5C 0x95B1
+0xBE5D 0x9704
+0xBE5E-0xBE5F 0x9706
+0xBE60 0x9709
+0xBE61 0x9760
+0xBE62 0x978D
+0xBE63 0x978B
+0xBE64 0x978F
+0xBE65 0x9821
+0xBE66 0x982B
+0xBE67 0x981C
+0xBE68 0x98B3
+0xBE69 0x990A
+0xBE6A 0x9913
+0xBE6B 0x9912
+0xBE6C 0x9918
+0xBE6D 0x99DD
+0xBE6E 0x99D0
+0xBE6F 0x99DF
+0xBE70 0x99DB
+0xBE71 0x99D1
+0xBE72 0x99D5
+0xBE73 0x99D2
+0xBE74 0x99D9
+0xBE75 0x9AB7
+0xBE76-0xBE77 0x9AEE
+0xBE78 0x9B27
+0xBE79 0x9B45
+0xBE7A 0x9B44
+0xBE7B 0x9B77
+0xBE7C 0x9B6F
+0xBE7D 0x9D06
+0xBE7E 0x9D09
+0xBEA1 0x9D03
+0xBEA2 0x9EA9
+0xBEA3 0x9EBE
+0xBEA4 0x9ECE
+0xBEA5 0x58A8
+0xBEA6 0x9F52
+0xBEA7 0x5112
+0xBEA8 0x5118
+0xBEA9 0x5114
+0xBEAA 0x5110
+0xBEAB 0x5115
+0xBEAC 0x5180
+0xBEAD 0x51AA
+0xBEAE 0x51DD
+0xBEAF 0x5291
+0xBEB0 0x5293
+0xBEB1 0x52F3
+0xBEB2 0x5659
+0xBEB3 0x566B
+0xBEB4 0x5679
+0xBEB5 0x5669
+0xBEB6 0x5664
+0xBEB7 0x5678
+0xBEB8 0x566A
+0xBEB9 0x5668
+0xBEBA 0x5665
+0xBEBB 0x5671
+0xBEBC 0x566F
+0xBEBD 0x566C
+0xBEBE 0x5662
+0xBEBF 0x5676
+0xBEC0 0x58C1
+0xBEC1 0x58BE
+0xBEC2 0x58C7
+0xBEC3 0x58C5
+0xBEC4 0x596E
+0xBEC5 0x5B1D
+0xBEC6 0x5B34
+0xBEC7 0x5B78
+0xBEC8 0x5BF0
+0xBEC9 0x5C0E
+0xBECA 0x5F4A
+0xBECB 0x61B2
+0xBECC 0x6191
+0xBECD 0x61A9
+0xBECE 0x618A
+0xBECF 0x61CD
+0xBED0 0x61B6
+0xBED1 0x61BE
+0xBED2 0x61CA
+0xBED3 0x61C8
+0xBED4 0x6230
+0xBED5 0x64C5
+0xBED6 0x64C1
+0xBED7 0x64CB
+0xBED8-0xBED9 0x64BB
+0xBEDA 0x64DA
+0xBEDB 0x64C4
+0xBEDC 0x64C7
+0xBEDD 0x64C2
+0xBEDE 0x64CD
+0xBEDF 0x64BF
+0xBEE0 0x64D2
+0xBEE1 0x64D4
+0xBEE2 0x64BE
+0xBEE3 0x6574
+0xBEE4 0x66C6
+0xBEE5 0x66C9
+0xBEE6 0x66B9
+0xBEE7 0x66C4
+0xBEE8 0x66C7
+0xBEE9 0x66B8
+0xBEEA 0x6A3D
+0xBEEB 0x6A38
+0xBEEC 0x6A3A
+0xBEED 0x6A59
+0xBEEE 0x6A6B
+0xBEEF 0x6A58
+0xBEF0 0x6A39
+0xBEF1 0x6A44
+0xBEF2 0x6A62
+0xBEF3 0x6A61
+0xBEF4 0x6A4B
+0xBEF5 0x6A47
+0xBEF6 0x6A35
+0xBEF7 0x6A5F
+0xBEF8 0x6A48
+0xBEF9 0x6B59
+0xBEFA 0x6B77
+0xBEFB 0x6C05
+0xBEFC 0x6FC2
+0xBEFD 0x6FB1
+0xBEFE 0x6FA1
+0xBF40 0x6FC3
+0xBF41 0x6FA4
+0xBF42 0x6FC1
+0xBF43 0x6FA7
+0xBF44 0x6FB3
+0xBF45 0x6FC0
+0xBF46 0x6FB9
+0xBF47 0x6FB6
+0xBF48 0x6FA6
+0xBF49 0x6FA0
+0xBF4A 0x6FB4
+0xBF4B 0x71BE
+0xBF4C 0x71C9
+0xBF4D 0x71D0
+0xBF4E 0x71D2
+0xBF4F 0x71C8
+0xBF50 0x71D5
+0xBF51 0x71B9
+0xBF52 0x71CE
+0xBF53 0x71D9
+0xBF54 0x71DC
+0xBF55-0xBF56 0x71C3
+0xBF57 0x7368
+0xBF58 0x749C
+0xBF59 0x74A3
+0xBF5A 0x7498
+0xBF5B 0x749F
+0xBF5C 0x749E
+0xBF5D 0x74E2
+0xBF5E-0xBF5F 0x750C
+0xBF60 0x7634
+0xBF61 0x7638
+0xBF62 0x763A
+0xBF63 0x76E7
+0xBF64 0x76E5
+0xBF65 0x77A0
+0xBF66-0xBF67 0x779E
+0xBF68 0x77A5
+0xBF69 0x78E8
+0xBF6A 0x78DA
+0xBF6B 0x78EC
+0xBF6C 0x78E7
+0xBF6D 0x79A6
+0xBF6E-0xBF6F 0x7A4D
+0xBF70 0x7A46
+0xBF71 0x7A4C
+0xBF72 0x7A4B
+0xBF73 0x7ABA
+0xBF74 0x7BD9
+0xBF75 0x7C11
+0xBF76 0x7BC9
+0xBF77 0x7BE4
+0xBF78 0x7BDB
+0xBF79 0x7BE1
+0xBF7A 0x7BE9
+0xBF7B 0x7BE6
+0xBF7C-0xBF7D 0x7CD5
+0xBF7E 0x7E0A
+0xBFA1 0x7E11
+0xBFA2 0x7E08
+0xBFA3 0x7E1B
+0xBFA4 0x7E23
+0xBFA5 0x7E1E
+0xBFA6 0x7E1D
+0xBFA7 0x7E09
+0xBFA8 0x7E10
+0xBFA9 0x7F79
+0xBFAA 0x7FB2
+0xBFAB-0xBFAC 0x7FF0
+0xBFAD 0x7FEE
+0xBFAE 0x8028
+0xBFAF 0x81B3
+0xBFB0 0x81A9
+0xBFB1 0x81A8
+0xBFB2 0x81FB
+0xBFB3 0x8208
+0xBFB4-0xBFB5 0x8258
+0xBFB6 0x854A
+0xBFB7 0x8559
+0xBFB8 0x8548
+0xBFB9-0xBFBA 0x8568
+0xBFBB 0x8543
+0xBFBC 0x8549
+0xBFBD 0x856D
+0xBFBE 0x856A
+0xBFBF 0x855E
+0xBFC0 0x8783
+0xBFC1 0x879F
+0xBFC2 0x879E
+0xBFC3 0x87A2
+0xBFC4 0x878D
+0xBFC5 0x8861
+0xBFC6 0x892A
+0xBFC7 0x8932
+0xBFC8 0x8925
+0xBFC9 0x892B
+0xBFCA 0x8921
+0xBFCB 0x89AA
+0xBFCC 0x89A6
+0xBFCD 0x8AE6
+0xBFCE 0x8AFA
+0xBFCF 0x8AEB
+0xBFD0 0x8AF1
+0xBFD1 0x8B00
+0xBFD2 0x8ADC
+0xBFD3 0x8AE7
+0xBFD4 0x8AEE
+0xBFD5 0x8AFE
+0xBFD6-0xBFD7 0x8B01
+0xBFD8 0x8AF7
+0xBFD9 0x8AED
+0xBFDA 0x8AF3
+0xBFDB 0x8AF6
+0xBFDC 0x8AFC
+0xBFDD 0x8C6B
+0xBFDE 0x8C6D
+0xBFDF 0x8C93
+0xBFE0 0x8CF4
+0xBFE1 0x8E44
+0xBFE2 0x8E31
+0xBFE3 0x8E34
+0xBFE4 0x8E42
+0xBFE5 0x8E39
+0xBFE6 0x8E35
+0xBFE7 0x8F3B
+0xBFE8 0x8F2F
+0xBFE9 0x8F38
+0xBFEA 0x8F33
+0xBFEB 0x8FA8
+0xBFEC 0x8FA6
+0xBFED 0x9075
+0xBFEE 0x9074
+0xBFEF 0x9078
+0xBFF0 0x9072
+0xBFF1 0x907C
+0xBFF2 0x907A
+0xBFF3 0x9134
+0xBFF4 0x9192
+0xBFF5 0x9320
+0xBFF6 0x9336
+0xBFF7 0x92F8
+0xBFF8 0x9333
+0xBFF9 0x932F
+0xBFFA 0x9322
+0xBFFB 0x92FC
+0xBFFC 0x932B
+0xBFFD 0x9304
+0xBFFE 0x931A
+0xC040 0x9310
+0xC041 0x9326
+0xC042 0x9321
+0xC043 0x9315
+0xC044 0x932E
+0xC045 0x9319
+0xC046 0x95BB
+0xC047-0xC048 0x96A7
+0xC049 0x96AA
+0xC04A 0x96D5
+0xC04B 0x970E
+0xC04C 0x9711
+0xC04D 0x9716
+0xC04E 0x970D
+0xC04F 0x9713
+0xC050 0x970F
+0xC051-0xC052 0x975B
+0xC053 0x9766
+0xC054 0x9798
+0xC055 0x9830
+0xC056 0x9838
+0xC057 0x983B
+0xC058 0x9837
+0xC059 0x982D
+0xC05A 0x9839
+0xC05B 0x9824
+0xC05C 0x9910
+0xC05D 0x9928
+0xC05E 0x991E
+0xC05F 0x991B
+0xC060 0x9921
+0xC061 0x991A
+0xC062 0x99ED
+0xC063 0x99E2
+0xC064 0x99F1
+0xC065 0x9AB8
+0xC066 0x9ABC
+0xC067 0x9AFB
+0xC068 0x9AED
+0xC069 0x9B28
+0xC06A 0x9B91
+0xC06B 0x9D15
+0xC06C 0x9D23
+0xC06D 0x9D26
+0xC06E 0x9D28
+0xC06F 0x9D12
+0xC070 0x9D1B
+0xC071 0x9ED8
+0xC072 0x9ED4
+0xC073 0x9F8D
+0xC074 0x9F9C
+0xC075 0x512A
+0xC076 0x511F
+0xC077 0x5121
+0xC078 0x5132
+0xC079 0x52F5
+0xC07A 0x568E
+0xC07B 0x5680
+0xC07C 0x5690
+0xC07D 0x5685
+0xC07E 0x5687
+0xC0A1 0x568F
+0xC0A2 0x58D5
+0xC0A3 0x58D3
+0xC0A4 0x58D1
+0xC0A5 0x58CE
+0xC0A6 0x5B30
+0xC0A7 0x5B2A
+0xC0A8 0x5B24
+0xC0A9 0x5B7A
+0xC0AA 0x5C37
+0xC0AB 0x5C68
+0xC0AC 0x5DBC
+0xC0AD 0x5DBA
+0xC0AE 0x5DBD
+0xC0AF 0x5DB8
+0xC0B0 0x5E6B
+0xC0B1 0x5F4C
+0xC0B2 0x5FBD
+0xC0B3 0x61C9
+0xC0B4 0x61C2
+0xC0B5 0x61C7
+0xC0B6 0x61E6
+0xC0B7 0x61CB
+0xC0B8 0x6232
+0xC0B9 0x6234
+0xC0BA 0x64CE
+0xC0BB 0x64CA
+0xC0BC 0x64D8
+0xC0BD 0x64E0
+0xC0BE 0x64F0
+0xC0BF 0x64E6
+0xC0C0 0x64EC
+0xC0C1 0x64F1
+0xC0C2 0x64E2
+0xC0C3 0x64ED
+0xC0C4-0xC0C5 0x6582
+0xC0C6 0x66D9
+0xC0C7 0x66D6
+0xC0C8 0x6A80
+0xC0C9 0x6A94
+0xC0CA 0x6A84
+0xC0CB 0x6AA2
+0xC0CC 0x6A9C
+0xC0CD 0x6ADB
+0xC0CE 0x6AA3
+0xC0CF 0x6A7E
+0xC0D0 0x6A97
+0xC0D1 0x6A90
+0xC0D2 0x6AA0
+0xC0D3 0x6B5C
+0xC0D4 0x6BAE
+0xC0D5 0x6BDA
+0xC0D6 0x6C08
+0xC0D7 0x6FD8
+0xC0D8 0x6FF1
+0xC0D9-0xC0DA 0x6FDF
+0xC0DB 0x6FDB
+0xC0DC 0x6FE4
+0xC0DD 0x6FEB
+0xC0DE 0x6FEF
+0xC0DF 0x6F80
+0xC0E0 0x6FEC
+0xC0E1 0x6FE1
+0xC0E2 0x6FE9
+0xC0E3 0x6FD5
+0xC0E4 0x6FEE
+0xC0E5 0x6FF0
+0xC0E6 0x71E7
+0xC0E7 0x71DF
+0xC0E8 0x71EE
+0xC0E9 0x71E6
+0xC0EA 0x71E5
+0xC0EB 0x71ED
+0xC0EC 0x71EC
+0xC0ED 0x71F4
+0xC0EE 0x71E0
+0xC0EF 0x7235
+0xC0F0 0x7246
+0xC0F1 0x7370
+0xC0F2 0x7372
+0xC0F3 0x74A9
+0xC0F4 0x74B0
+0xC0F5 0x74A6
+0xC0F6 0x74A8
+0xC0F7 0x7646
+0xC0F8 0x7642
+0xC0F9 0x764C
+0xC0FA 0x76EA
+0xC0FB 0x77B3
+0xC0FC 0x77AA
+0xC0FD 0x77B0
+0xC0FE 0x77AC
+0xC140 0x77A7
+0xC141 0x77AD
+0xC142 0x77EF
+0xC143 0x78F7
+0xC144 0x78FA
+0xC145 0x78F4
+0xC146 0x78EF
+0xC147 0x7901
+0xC148 0x79A7
+0xC149 0x79AA
+0xC14A 0x7A57
+0xC14B 0x7ABF
+0xC14C 0x7C07
+0xC14D 0x7C0D
+0xC14E 0x7BFE
+0xC14F 0x7BF7
+0xC150 0x7C0C
+0xC151 0x7BE0
+0xC152 0x7CE0
+0xC153 0x7CDC
+0xC154 0x7CDE
+0xC155 0x7CE2
+0xC156 0x7CDF
+0xC157 0x7CD9
+0xC158 0x7CDD
+0xC159 0x7E2E
+0xC15A 0x7E3E
+0xC15B 0x7E46
+0xC15C 0x7E37
+0xC15D 0x7E32
+0xC15E 0x7E43
+0xC15F 0x7E2B
+0xC160 0x7E3D
+0xC161 0x7E31
+0xC162 0x7E45
+0xC163 0x7E41
+0xC164 0x7E34
+0xC165 0x7E39
+0xC166 0x7E48
+0xC167 0x7E35
+0xC168 0x7E3F
+0xC169 0x7E2F
+0xC16A 0x7F44
+0xC16B 0x7FF3
+0xC16C 0x7FFC
+0xC16D-0xC16E 0x8071
+0xC16F 0x8070
+0xC170 0x806F
+0xC171 0x8073
+0xC172 0x81C6
+0xC173 0x81C3
+0xC174 0x81BA
+0xC175 0x81C2
+0xC176 0x81C0
+0xC177 0x81BF
+0xC178 0x81BD
+0xC179 0x81C9
+0xC17A 0x81BE
+0xC17B 0x81E8
+0xC17C 0x8209
+0xC17D 0x8271
+0xC17E 0x85AA
+0xC1A1 0x8584
+0xC1A2 0x857E
+0xC1A3 0x859C
+0xC1A4 0x8591
+0xC1A5 0x8594
+0xC1A6 0x85AF
+0xC1A7 0x859B
+0xC1A8 0x8587
+0xC1A9 0x85A8
+0xC1AA 0x858A
+0xC1AB 0x8667
+0xC1AC 0x87C0
+0xC1AD 0x87D1
+0xC1AE 0x87B3
+0xC1AF 0x87D2
+0xC1B0 0x87C6
+0xC1B1 0x87AB
+0xC1B2 0x87BB
+0xC1B3 0x87BA
+0xC1B4 0x87C8
+0xC1B5 0x87CB
+0xC1B6 0x893B
+0xC1B7 0x8936
+0xC1B8 0x8944
+0xC1B9 0x8938
+0xC1BA 0x893D
+0xC1BB 0x89AC
+0xC1BC 0x8B0E
+0xC1BD 0x8B17
+0xC1BE 0x8B19
+0xC1BF 0x8B1B
+0xC1C0 0x8B0A
+0xC1C1 0x8B20
+0xC1C2 0x8B1D
+0xC1C3 0x8B04
+0xC1C4 0x8B10
+0xC1C5 0x8C41
+0xC1C6 0x8C3F
+0xC1C7 0x8C73
+0xC1C8 0x8CFA
+0xC1C9 0x8CFD
+0xC1CA 0x8CFC
+0xC1CB 0x8CF8
+0xC1CC 0x8CFB
+0xC1CD 0x8DA8
+0xC1CE 0x8E49
+0xC1CF 0x8E4B
+0xC1D0 0x8E48
+0xC1D1 0x8E4A
+0xC1D2 0x8F44
+0xC1D3 0x8F3E
+0xC1D4 0x8F42
+0xC1D5 0x8F45
+0xC1D6 0x8F3F
+0xC1D7 0x907F
+0xC1D8 0x907D
+0xC1D9 0x9084
+0xC1DA-0xC1DB 0x9081
+0xC1DC 0x9080
+0xC1DD 0x9139
+0xC1DE 0x91A3
+0xC1DF 0x919E
+0xC1E0 0x919C
+0xC1E1 0x934D
+0xC1E2 0x9382
+0xC1E3 0x9328
+0xC1E4 0x9375
+0xC1E5 0x934A
+0xC1E6 0x9365
+0xC1E7 0x934B
+0xC1E8 0x9318
+0xC1E9 0x937E
+0xC1EA 0x936C
+0xC1EB 0x935B
+0xC1EC 0x9370
+0xC1ED 0x935A
+0xC1EE 0x9354
+0xC1EF-0xC1F1 0x95CA
+0xC1F2 0x95C8
+0xC1F3 0x95C6
+0xC1F4 0x96B1
+0xC1F5 0x96B8
+0xC1F6 0x96D6
+0xC1F7 0x971C
+0xC1F8 0x971E
+0xC1F9 0x97A0
+0xC1FA 0x97D3
+0xC1FB 0x9846
+0xC1FC 0x98B6
+0xC1FD 0x9935
+0xC1FE 0x9A01
+0xC240 0x99FF
+0xC241 0x9BAE
+0xC242 0x9BAB
+0xC243 0x9BAA
+0xC244 0x9BAD
+0xC245 0x9D3B
+0xC246 0x9D3F
+0xC247 0x9E8B
+0xC248 0x9ECF
+0xC249 0x9EDE
+0xC24A-0xC24B 0x9EDC
+0xC24C 0x9EDB
+0xC24D 0x9F3E
+0xC24E 0x9F4B
+0xC24F 0x53E2
+0xC250 0x5695
+0xC251 0x56AE
+0xC252 0x58D9
+0xC253 0x58D8
+0xC254 0x5B38
+0xC255 0x5F5D
+0xC256 0x61E3
+0xC257 0x6233
+0xC258 0x64F4
+0xC259 0x64F2
+0xC25A 0x64FE
+0xC25B 0x6506
+0xC25C-0xC25D 0x64FA
+0xC25E 0x64F7
+0xC25F 0x65B7
+0xC260 0x66DC
+0xC261 0x6726
+0xC262 0x6AB3
+0xC263 0x6AAC
+0xC264 0x6AC3
+0xC265 0x6ABB
+0xC266 0x6AB8
+0xC267 0x6AC2
+0xC268-0xC269 0x6AAE
+0xC26A 0x6B5F
+0xC26B 0x6B78
+0xC26C 0x6BAF
+0xC26D 0x7009
+0xC26E 0x700B
+0xC26F 0x6FFE
+0xC270 0x7006
+0xC271 0x6FFA
+0xC272 0x7011
+0xC273 0x700F
+0xC274-0xC275 0x71FB
+0xC276 0x71FE
+0xC277 0x71F8
+0xC278 0x7377
+0xC279 0x7375
+0xC27A 0x74A7
+0xC27B 0x74BF
+0xC27C 0x7515
+0xC27D 0x7656
+0xC27E 0x7658
+0xC2A1 0x7652
+0xC2A2 0x77BD
+0xC2A3 0x77BF
+0xC2A4-0xC2A5 0x77BB
+0xC2A6 0x790E
+0xC2A7 0x79AE
+0xC2A8-0xC2A9 0x7A61
+0xC2AA 0x7A60
+0xC2AB-0xC2AC 0x7AC4
+0xC2AD 0x7C2B
+0xC2AE 0x7C27
+0xC2AF 0x7C2A
+0xC2B0 0x7C1E
+0xC2B1 0x7C23
+0xC2B2 0x7C21
+0xC2B3 0x7CE7
+0xC2B4-0xC2B5 0x7E54
+0xC2B6 0x7E5E
+0xC2B7 0x7E5A
+0xC2B8 0x7E61
+0xC2B9 0x7E52
+0xC2BA 0x7E59
+0xC2BB 0x7F48
+0xC2BC 0x7FF9
+0xC2BD 0x7FFB
+0xC2BE 0x8077
+0xC2BF 0x8076
+0xC2C0 0x81CD
+0xC2C1 0x81CF
+0xC2C2 0x820A
+0xC2C3 0x85CF
+0xC2C4 0x85A9
+0xC2C5 0x85CD
+0xC2C6 0x85D0
+0xC2C7 0x85C9
+0xC2C8 0x85B0
+0xC2C9 0x85BA
+0xC2CA 0x85B9
+0xC2CB 0x85A6
+0xC2CC 0x87EF
+0xC2CD 0x87EC
+0xC2CE 0x87F2
+0xC2CF 0x87E0
+0xC2D0 0x8986
+0xC2D1 0x89B2
+0xC2D2 0x89F4
+0xC2D3 0x8B28
+0xC2D4 0x8B39
+0xC2D5 0x8B2C
+0xC2D6 0x8B2B
+0xC2D7 0x8C50
+0xC2D8 0x8D05
+0xC2D9 0x8E59
+0xC2DA 0x8E63
+0xC2DB 0x8E66
+0xC2DC 0x8E64
+0xC2DD 0x8E5F
+0xC2DE 0x8E55
+0xC2DF 0x8EC0
+0xC2E0 0x8F49
+0xC2E1 0x8F4D
+0xC2E2 0x9087
+0xC2E3 0x9083
+0xC2E4 0x9088
+0xC2E5-0xC2E6 0x91AB
+0xC2E7 0x91D0
+0xC2E8 0x9394
+0xC2E9 0x938A
+0xC2EA 0x9396
+0xC2EB 0x93A2
+0xC2EC 0x93B3
+0xC2ED 0x93AE
+0xC2EE 0x93AC
+0xC2EF 0x93B0
+0xC2F0 0x9398
+0xC2F1 0x939A
+0xC2F2 0x9397
+0xC2F3 0x95D4
+0xC2F4 0x95D6
+0xC2F5 0x95D0
+0xC2F6 0x95D5
+0xC2F7 0x96E2
+0xC2F8 0x96DC
+0xC2F9 0x96D9
+0xC2FA 0x96DB
+0xC2FB 0x96DE
+0xC2FC 0x9724
+0xC2FD 0x97A3
+0xC2FE 0x97A6
+0xC340 0x97AD
+0xC341 0x97F9
+0xC342 0x984D
+0xC343 0x984F
+0xC344 0x984C
+0xC345 0x984E
+0xC346 0x9853
+0xC347 0x98BA
+0xC348-0xC349 0x993E
+0xC34A 0x993D
+0xC34B 0x992E
+0xC34C 0x99A5
+0xC34D 0x9A0E
+0xC34E 0x9AC1
+0xC34F 0x9B03
+0xC350 0x9B06
+0xC351 0x9B4F
+0xC352 0x9B4E
+0xC353 0x9B4D
+0xC354 0x9BCA
+0xC355 0x9BC9
+0xC356 0x9BFD
+0xC357 0x9BC8
+0xC358 0x9BC0
+0xC359 0x9D51
+0xC35A 0x9D5D
+0xC35B 0x9D60
+0xC35C 0x9EE0
+0xC35D 0x9F15
+0xC35E 0x9F2C
+0xC35F 0x5133
+0xC360 0x56A5
+0xC361-0xC362 0x58DE
+0xC363 0x58E2
+0xC364 0x5BF5
+0xC365 0x9F90
+0xC366 0x5EEC
+0xC367 0x61F2
+0xC368 0x61F7
+0xC369 0x61F6
+0xC36A 0x61F5
+0xC36B 0x6500
+0xC36C 0x650F
+0xC36D 0x66E0
+0xC36E 0x66DD
+0xC36F 0x6AE5
+0xC370 0x6ADD
+0xC371 0x6ADA
+0xC372 0x6AD3
+0xC373 0x701B
+0xC374 0x701F
+0xC375 0x7028
+0xC376 0x701A
+0xC377 0x701D
+0xC378 0x7015
+0xC379 0x7018
+0xC37A 0x7206
+0xC37B 0x720D
+0xC37C 0x7258
+0xC37D 0x72A2
+0xC37E 0x7378
+0xC3A1 0x737A
+0xC3A2 0x74BD
+0xC3A3 0x74CA
+0xC3A4 0x74E3
+0xC3A5 0x7587
+0xC3A6 0x7586
+0xC3A7 0x765F
+0xC3A8 0x7661
+0xC3A9 0x77C7
+0xC3AA 0x7919
+0xC3AB 0x79B1
+0xC3AC 0x7A6B
+0xC3AD 0x7A69
+0xC3AE-0xC3AF 0x7C3E
+0xC3B0 0x7C38
+0xC3B1 0x7C3D
+0xC3B2 0x7C37
+0xC3B3 0x7C40
+0xC3B4 0x7E6B
+0xC3B5 0x7E6D
+0xC3B6 0x7E79
+0xC3B7-0xC3B8 0x7E69
+0xC3B9 0x7F85
+0xC3BA 0x7E73
+0xC3BB 0x7FB6
+0xC3BC 0x7FB9
+0xC3BD 0x7FB8
+0xC3BE 0x81D8
+0xC3BF 0x85E9
+0xC3C0 0x85DD
+0xC3C1 0x85EA
+0xC3C2 0x85D5
+0xC3C3-0xC3C4 0x85E4
+0xC3C5 0x85F7
+0xC3C6 0x87FB
+0xC3C7 0x8805
+0xC3C8 0x880D
+0xC3C9 0x87F9
+0xC3CA 0x87FE
+0xC3CB 0x8960
+0xC3CC 0x895F
+0xC3CD 0x8956
+0xC3CE 0x895E
+0xC3CF 0x8B41
+0xC3D0 0x8B5C
+0xC3D1 0x8B58
+0xC3D2 0x8B49
+0xC3D3 0x8B5A
+0xC3D4-0xC3D5 0x8B4E
+0xC3D6 0x8B46
+0xC3D7 0x8B59
+0xC3D8 0x8D08
+0xC3D9 0x8D0A
+0xC3DA 0x8E7C
+0xC3DB 0x8E72
+0xC3DC 0x8E87
+0xC3DD 0x8E76
+0xC3DE 0x8E6C
+0xC3DF 0x8E7A
+0xC3E0 0x8E74
+0xC3E1 0x8F54
+0xC3E2 0x8F4E
+0xC3E3 0x8FAD
+0xC3E4-0xC3E5 0x908A
+0xC3E6 0x91B1
+0xC3E7 0x91AE
+0xC3E8 0x93E1
+0xC3E9 0x93D1
+0xC3EA 0x93DF
+0xC3EB 0x93C3
+0xC3EC 0x93C8
+0xC3ED-0xC3EE 0x93DC
+0xC3EF 0x93D6
+0xC3F0 0x93E2
+0xC3F1 0x93CD
+0xC3F2 0x93D8
+0xC3F3 0x93E4
+0xC3F4 0x93D7
+0xC3F5 0x93E8
+0xC3F6 0x95DC
+0xC3F7 0x96B4
+0xC3F8 0x96E3
+0xC3F9 0x972A
+0xC3FA 0x9727
+0xC3FB 0x9761
+0xC3FC 0x97DC
+0xC3FD 0x97FB
+0xC3FE 0x985E
+0xC440 0x9858
+0xC441 0x985B
+0xC442 0x98BC
+0xC443 0x9945
+0xC444 0x9949
+0xC445 0x9A16
+0xC446 0x9A19
+0xC447 0x9B0D
+0xC448 0x9BE8
+0xC449 0x9BE7
+0xC44A 0x9BD6
+0xC44B 0x9BDB
+0xC44C 0x9D89
+0xC44D 0x9D61
+0xC44E 0x9D72
+0xC44F 0x9D6A
+0xC450 0x9D6C
+0xC451 0x9E92
+0xC452 0x9E97
+0xC453 0x9E93
+0xC454 0x9EB4
+0xC455 0x52F8
+0xC456 0x56A8
+0xC457 0x56B7
+0xC458 0x56B6
+0xC459 0x56B4
+0xC45A 0x56BC
+0xC45B 0x58E4
+0xC45C 0x5B40
+0xC45D 0x5B43
+0xC45E 0x5B7D
+0xC45F 0x5BF6
+0xC460 0x5DC9
+0xC461 0x61F8
+0xC462 0x61FA
+0xC463 0x6518
+0xC464 0x6514
+0xC465 0x6519
+0xC466 0x66E6
+0xC467 0x6727
+0xC468 0x6AEC
+0xC469 0x703E
+0xC46A 0x7030
+0xC46B 0x7032
+0xC46C 0x7210
+0xC46D 0x737B
+0xC46E 0x74CF
+0xC46F 0x7662
+0xC470 0x7665
+0xC471 0x7926
+0xC472 0x792A
+0xC473 0x792C
+0xC474 0x792B
+0xC475 0x7AC7
+0xC476 0x7AF6
+0xC477 0x7C4C
+0xC478 0x7C43
+0xC479 0x7C4D
+0xC47A-0xC47B 0x7CEF
+0xC47C 0x8FAE
+0xC47D 0x7E7D
+0xC47E 0x7E7C
+0xC4A1 0x7E82
+0xC4A2 0x7F4C
+0xC4A3 0x8000
+0xC4A4 0x81DA
+0xC4A5 0x8266
+0xC4A6 0x85FB
+0xC4A7 0x85F9
+0xC4A8 0x8611
+0xC4A9 0x85FA
+0xC4AA 0x8606
+0xC4AB 0x860B
+0xC4AC 0x8607
+0xC4AD 0x860A
+0xC4AE-0xC4AF 0x8814
+0xC4B0 0x8964
+0xC4B1 0x89BA
+0xC4B2 0x89F8
+0xC4B3 0x8B70
+0xC4B4 0x8B6C
+0xC4B5 0x8B66
+0xC4B6 0x8B6F
+0xC4B7 0x8B5F
+0xC4B8 0x8B6B
+0xC4B9 0x8D0F
+0xC4BA 0x8D0D
+0xC4BB 0x8E89
+0xC4BC 0x8E81
+0xC4BD 0x8E85
+0xC4BE 0x8E82
+0xC4BF 0x91B4
+0xC4C0 0x91CB
+0xC4C1 0x9418
+0xC4C2 0x9403
+0xC4C3 0x93FD
+0xC4C4 0x95E1
+0xC4C5 0x9730
+0xC4C6 0x98C4
+0xC4C7 0x9952
+0xC4C8 0x9951
+0xC4C9 0x99A8
+0xC4CA 0x9A2B
+0xC4CB 0x9A30
+0xC4CC 0x9A37
+0xC4CD 0x9A35
+0xC4CE 0x9C13
+0xC4CF 0x9C0D
+0xC4D0 0x9E79
+0xC4D1 0x9EB5
+0xC4D2 0x9EE8
+0xC4D3 0x9F2F
+0xC4D4 0x9F5F
+0xC4D5 0x9F63
+0xC4D6 0x9F61
+0xC4D7-0xC4D8 0x5137
+0xC4D9 0x56C1
+0xC4DA 0x56C0
+0xC4DB 0x56C2
+0xC4DC 0x5914
+0xC4DD 0x5C6C
+0xC4DE 0x5DCD
+0xC4DF 0x61FC
+0xC4E0 0x61FE
+0xC4E1 0x651D
+0xC4E2 0x651C
+0xC4E3 0x6595
+0xC4E4 0x66E9
+0xC4E5 0x6AFB
+0xC4E6 0x6B04
+0xC4E7 0x6AFA
+0xC4E8 0x6BB2
+0xC4E9 0x704C
+0xC4EA 0x721B
+0xC4EB 0x72A7
+0xC4EC 0x74D6
+0xC4ED 0x74D4
+0xC4EE 0x7669
+0xC4EF 0x77D3
+0xC4F0 0x7C50
+0xC4F1 0x7E8F
+0xC4F2 0x7E8C
+0xC4F3 0x7FBC
+0xC4F4 0x8617
+0xC4F5 0x862D
+0xC4F6 0x861A
+0xC4F7 0x8823
+0xC4F8 0x8822
+0xC4F9 0x8821
+0xC4FA 0x881F
+0xC4FB 0x896A
+0xC4FC 0x896C
+0xC4FD 0x89BD
+0xC4FE 0x8B74
+0xC540 0x8B77
+0xC541 0x8B7D
+0xC542 0x8D13
+0xC543 0x8E8A
+0xC544 0x8E8D
+0xC545 0x8E8B
+0xC546 0x8F5F
+0xC547 0x8FAF
+0xC548 0x91BA
+0xC549 0x942E
+0xC54A 0x9433
+0xC54B 0x9435
+0xC54C 0x943A
+0xC54D 0x9438
+0xC54E 0x9432
+0xC54F 0x942B
+0xC550 0x95E2
+0xC551-0xC552 0x9738
+0xC553 0x9732
+0xC554 0x97FF
+0xC555 0x9867
+0xC556 0x9865
+0xC557 0x9957
+0xC558 0x9A45
+0xC559 0x9A43
+0xC55A 0x9A40
+0xC55B 0x9A3E
+0xC55C 0x9ACF
+0xC55D 0x9B54
+0xC55E 0x9B51
+0xC55F 0x9C2D
+0xC560 0x9C25
+0xC561 0x9DAF
+0xC562 0x9DB4
+0xC563 0x9DC2
+0xC564 0x9DB8
+0xC565 0x9E9D
+0xC566 0x9EEF
+0xC567 0x9F19
+0xC568 0x9F5C
+0xC569-0xC56A 0x9F66
+0xC56B 0x513C
+0xC56C 0x513B
+0xC56D 0x56C8
+0xC56E 0x56CA
+0xC56F 0x56C9
+0xC570 0x5B7F
+0xC571 0x5DD4
+0xC572 0x5DD2
+0xC573 0x5F4E
+0xC574 0x61FF
+0xC575 0x6524
+0xC576 0x6B0A
+0xC577 0x6B61
+0xC578 0x7051
+0xC579 0x7058
+0xC57A 0x7380
+0xC57B 0x74E4
+0xC57C 0x758A
+0xC57D 0x766E
+0xC57E 0x766C
+0xC5A1 0x79B3
+0xC5A2 0x7C60
+0xC5A3 0x7C5F
+0xC5A4 0x807E
+0xC5A5 0x807D
+0xC5A6 0x81DF
+0xC5A7 0x8972
+0xC5A8 0x896F
+0xC5A9 0x89FC
+0xC5AA 0x8B80
+0xC5AB-0xC5AC 0x8D16
+0xC5AD 0x8E91
+0xC5AE 0x8E93
+0xC5AF 0x8F61
+0xC5B0 0x9148
+0xC5B1 0x9444
+0xC5B2-0xC5B3 0x9451
+0xC5B4-0xC5B5 0x973D
+0xC5B6 0x97C3
+0xC5B7 0x97C1
+0xC5B8 0x986B
+0xC5B9 0x9955
+0xC5BA 0x9A55
+0xC5BB 0x9A4D
+0xC5BC 0x9AD2
+0xC5BD 0x9B1A
+0xC5BE 0x9C49
+0xC5BF 0x9C31
+0xC5C0 0x9C3E
+0xC5C1 0x9C3B
+0xC5C2 0x9DD3
+0xC5C3 0x9DD7
+0xC5C4 0x9F34
+0xC5C5 0x9F6C
+0xC5C6 0x9F6A
+0xC5C7 0x9F94
+0xC5C8 0x56CC
+0xC5C9 0x5DD6
+0xC5CA 0x6200
+0xC5CB 0x6523
+0xC5CC 0x652B
+0xC5CD 0x652A
+0xC5CE 0x66EC
+0xC5CF 0x6B10
+0xC5D0 0x74DA
+0xC5D1 0x7ACA
+0xC5D2 0x7C64
+0xC5D3 0x7C63
+0xC5D4 0x7C65
+0xC5D5 0x7E93
+0xC5D6 0x7E96
+0xC5D7 0x7E94
+0xC5D8 0x81E2
+0xC5D9 0x8638
+0xC5DA 0x863F
+0xC5DB 0x8831
+0xC5DC 0x8B8A
+0xC5DD 0x9090
+0xC5DE 0x908F
+0xC5DF 0x9463
+0xC5E0 0x9460
+0xC5E1 0x9464
+0xC5E2 0x9768
+0xC5E3 0x986F
+0xC5E4 0x995C
+0xC5E5-0xC5E6 0x9A5A
+0xC5E7 0x9A57
+0xC5E8-0xC5E9 0x9AD3
+0xC5EA 0x9AD1
+0xC5EB 0x9C54
+0xC5EC 0x9C57
+0xC5ED 0x9C56
+0xC5EE 0x9DE5
+0xC5EF 0x9E9F
+0xC5F0 0x9EF4
+0xC5F1 0x56D1
+0xC5F2 0x58E9
+0xC5F3 0x652C
+0xC5F4 0x705E
+0xC5F5-0xC5F6 0x7671
+0xC5F7 0x77D7
+0xC5F8 0x7F50
+0xC5F9 0x7F88
+0xC5FA 0x8836
+0xC5FB 0x8839
+0xC5FC 0x8862
+0xC5FD 0x8B93
+0xC5FE 0x8B92
+0xC640 0x8B96
+0xC641 0x8277
+0xC642 0x8D1B
+0xC643 0x91C0
+0xC644 0x946A
+0xC645 0x9742
+0xC646 0x9748
+0xC647 0x9744
+0xC648 0x97C6
+0xC649 0x9870
+0xC64A 0x9A5F
+0xC64B 0x9B22
+0xC64C 0x9B58
+0xC64D 0x9C5F
+0xC64E-0xC64F 0x9DF9
+0xC650-0xC651 0x9E7C
+0xC652 0x9F07
+0xC653 0x9F77
+0xC654 0x9F72
+0xC655 0x5EF3
+0xC656 0x6B16
+0xC657 0x7063
+0xC658 0x7C6C
+0xC659 0x7C6E
+0xC65A 0x883B
+0xC65B 0x89C0
+0xC65C 0x8EA1
+0xC65D 0x91C1
+0xC65E 0x9472
+0xC65F 0x9470
+0xC660 0x9871
+0xC661 0x995E
+0xC662 0x9AD6
+0xC663 0x9B23
+0xC664 0x9ECC
+0xC665 0x7064
+0xC666 0x77DA
+0xC667 0x8B9A
+0xC668 0x9477
+0xC669 0x97C9
+0xC66A 0x9A62
+0xC66B 0x9A65
+0xC66C 0x7E9C
+0xC66D 0x8B9C
+0xC66E 0x8EAA
+0xC66F 0x91C5
+0xC670-0xC671 0x947D
+0xC672 0x947C
+0xC673-0xC674 0x9C77
+0xC675 0x9EF7
+0xC676 0x8C54
+0xC677 0x947F
+0xC678 0x9E1A
+0xC679 0x7228
+0xC67A 0x9A6A
+0xC67B 0x9B31
+0xC67C 0x9E1B
+0xC67D 0x9E1E
+0xC67E 0x7C72
+0xC6A1-0xC6AA 0x2460
+0xC6AB-0xC6B4 0x2474
+0xC6B5-0xC6BE 0x2170
+0xC6BF 0x4E36
+0xC6C0 0x4E3F
+0xC6C1 0x4E85
+0xC6C2 0x4EA0
+0xC6C3 0x5182
+0xC6C4 0x5196
+0xC6C5 0x51AB
+0xC6C6 0x52F9
+0xC6C7 0x5338
+0xC6C8 0x5369
+0xC6C9 0x53B6
+0xC6CA 0x590A
+0xC6CB 0x5B80
+0xC6CC 0x5DDB
+0xC6CD 0x2F33
+0xC6CE 0x5E7F
+0xC6D0 0x5F50
+0xC6D1 0x5F61
+0xC6D2 0x6534
+0xC6D4 0x7592
+0xC6D6 0x8FB5
+0xC6D8 0x00A8
+0xC6D9 0x02C6
+0xC6DA-0xC6DB 0x30FD
+0xC6DC-0xC6DD 0x309D
+0xC6E0-0xC6E2 0x3005
+0xC6E3 0x30FC
+0xC6E4 0xFF3B
+0xC6E5 0xFF3D
+0xC6E6 0x273D
+0xC6E7-0xC6FE 0x3041
+0xC740-0xC77A 0x3059
+0xC77B-0xC77E 0x30A1
+0xC7A1-0xC7F2 0x30A5
+0xC7F3-0xC7F8 0x0410
+0xC7F9 0x0401
+0xC7FA-0xC7FE 0x0416
+0xC840-0xC85A 0x041B
+0xC85B 0x0451
+0xC85C-0xC875 0x0436
+0xC876 0x21E7
+0xC877-0xC878 0x21B8
+0xC879-0xC87A 0xF7E5
+0xC87B 0x4E5A
+0xC87C 0xF7E8
+0xC87D 0x5202
+0xC87E 0xF7EA
+0xC8A1 0xF7EB
+0xC8A2 0x5188
+0xC8A3-0xC8A4 0xF7ED
+0xC8CD 0xFFE2
+0xC8CE 0xFFE4
+0xC8CF 0xFF07
+0xC8D0 0xFF02
+0xC8D1 0x3231
+0xC8D2 0x2116
+0xC8D3 0x2121
+0xC8D4-0xC8D5 0x309B
+0xC8D6 0x2E80
+0xC8D7 0x2E84
+0xC8D8-0xC8DA 0x2E86
+0xC8DB 0x2E8A
+0xC8DC-0xC8DD 0x2E8C
+0xC8DE 0x2E95
+0xC8DF-0xC8E0 0x2E9C
+0xC8E1 0x2EA5
+0xC8E2 0x2EA7
+0xC8E3 0x2EAA
+0xC8E4 0x2EAC
+0xC8E5 0x2EAE
+0xC8E6 0x2EB6
+0xC8E7 0x2EBC
+0xC8E8 0x2EBE
+0xC8E9 0x2EC6
+0xC8EA 0x2ECA
+0xC8EB-0xC8EC 0x2ECC
+0xC8ED 0x2ECF
+0xC8EE-0xC8EF 0x2ED6
+0xC8F0 0x2EDE
+0xC8F1 0x2EE3
+0xC8F5 0x0283
+0xC8F6 0x0250
+0xC8F7 0x025B
+0xC8F8 0x0254
+0xC8F9 0x0275
+0xC8FA 0x0153
+0xC8FB 0x00F8
+0xC8FC 0x014B
+0xC8FD 0x028A
+0xC8FE 0x026A
+0xC940 0x4E42
+0xC941 0x4E5C
+0xC942 0x51F5
+0xC943 0x531A
+0xC944 0x5382
+0xC945 0x4E07
+0xC946 0x4E0C
+0xC947 0x4E47
+0xC948 0x4E8D
+0xC949 0x56D7
+0xC94A 0xFA0C
+0xC94B 0x5C6E
+0xC94C 0x5F73
+0xC94D 0x4E0F
+0xC94E 0x5187
+0xC94F 0x4E0E
+0xC950 0x4E2E
+0xC951 0x4E93
+0xC952 0x4EC2
+0xC953 0x4EC9
+0xC954 0x4EC8
+0xC955 0x5198
+0xC956 0x52FC
+0xC957 0x536C
+0xC958 0x53B9
+0xC959 0x5720
+0xC95A 0x5903
+0xC95B 0x592C
+0xC95C 0x5C10
+0xC95D 0x5DFF
+0xC95E 0x65E1
+0xC95F 0x6BB3
+0xC960 0x6BCC
+0xC961 0x6C14
+0xC962 0x723F
+0xC963 0x4E31
+0xC964 0x4E3C
+0xC965 0x4EE8
+0xC966 0x4EDC
+0xC967 0x4EE9
+0xC968 0x4EE1
+0xC969 0x4EDD
+0xC96A 0x4EDA
+0xC96B 0x520C
+0xC96C 0x531C
+0xC96D 0x534C
+0xC96E-0xC96F 0x5722
+0xC970 0x5917
+0xC971 0x592F
+0xC972 0x5B81
+0xC973 0x5B84
+0xC974 0x5C12
+0xC975 0x5C3B
+0xC976 0x5C74
+0xC977 0x5C73
+0xC978 0x5E04
+0xC979 0x5E80
+0xC97A 0x5E82
+0xC97B 0x5FC9
+0xC97C 0x6209
+0xC97D 0x6250
+0xC97E 0x6C15
+0xC9A1 0x6C36
+0xC9A2 0x6C43
+0xC9A3 0x6C3F
+0xC9A4 0x6C3B
+0xC9A5 0x72AE
+0xC9A6 0x72B0
+0xC9A7 0x738A
+0xC9A8 0x79B8
+0xC9A9 0x808A
+0xC9AA 0x961E
+0xC9AB 0x4F0E
+0xC9AC 0x4F18
+0xC9AD 0x4F2C
+0xC9AE 0x4EF5
+0xC9AF 0x4F14
+0xC9B0 0x4EF1
+0xC9B1 0x4F00
+0xC9B2 0x4EF7
+0xC9B3 0x4F08
+0xC9B4 0x4F1D
+0xC9B5 0x4F02
+0xC9B6 0x4F05
+0xC9B7 0x4F22
+0xC9B8 0x4F13
+0xC9B9 0x4F04
+0xC9BA 0x4EF4
+0xC9BB 0x4F12
+0xC9BC 0x51B1
+0xC9BD 0x5213
+0xC9BE 0x5209
+0xC9BF 0x5210
+0xC9C0 0x52A6
+0xC9C1 0x5322
+0xC9C2 0x531F
+0xC9C3 0x534D
+0xC9C4 0x538A
+0xC9C5 0x5407
+0xC9C6 0x56E1
+0xC9C7 0x56DF
+0xC9C8 0x572E
+0xC9C9 0x572A
+0xC9CA 0x5734
+0xC9CB 0x593C
+0xC9CC 0x5980
+0xC9CD 0x597C
+0xC9CE 0x5985
+0xC9CF 0x597B
+0xC9D0 0x597E
+0xC9D1 0x5977
+0xC9D2 0x597F
+0xC9D3 0x5B56
+0xC9D4 0x5C15
+0xC9D5 0x5C25
+0xC9D6 0x5C7C
+0xC9D7-0xC9D8 0x5C7A
+0xC9D9 0x5C7E
+0xC9DA 0x5DDF
+0xC9DB 0x5E75
+0xC9DC 0x5E84
+0xC9DD 0x5F02
+0xC9DE 0x5F1A
+0xC9DF 0x5F74
+0xC9E0 0x5FD5
+0xC9E1 0x5FD4
+0xC9E2 0x5FCF
+0xC9E3 0x625C
+0xC9E4 0x625E
+0xC9E5 0x6264
+0xC9E6 0x6261
+0xC9E7 0x6266
+0xC9E8 0x6262
+0xC9E9 0x6259
+0xC9EA 0x6260
+0xC9EB 0x625A
+0xC9EC 0x6265
+0xC9ED 0x65EF
+0xC9EE 0x65EE
+0xC9EF 0x673E
+0xC9F0 0x6739
+0xC9F1 0x6738
+0xC9F2 0x673B
+0xC9F3 0x673A
+0xC9F4 0x673F
+0xC9F5 0x673C
+0xC9F6 0x6733
+0xC9F7 0x6C18
+0xC9F8 0x6C46
+0xC9F9 0x6C52
+0xC9FA 0x6C5C
+0xC9FB 0x6C4F
+0xC9FC 0x6C4A
+0xC9FD 0x6C54
+0xC9FE 0x6C4B
+0xCA40 0x6C4C
+0xCA41 0x7071
+0xCA42 0x725E
+0xCA43-0xCA44 0x72B4
+0xCA45 0x738E
+0xCA46 0x752A
+0xCA47 0x767F
+0xCA48 0x7A75
+0xCA49 0x7F51
+0xCA4A 0x8278
+0xCA4B 0x827C
+0xCA4C 0x8280
+0xCA4D 0x827D
+0xCA4E 0x827F
+0xCA4F 0x864D
+0xCA50 0x897E
+0xCA51 0x9099
+0xCA52-0xCA53 0x9097
+0xCA54 0x909B
+0xCA55 0x9094
+0xCA56 0x9622
+0xCA57 0x9624
+0xCA58 0x9620
+0xCA59 0x9623
+0xCA5A 0x4F56
+0xCA5B 0x4F3B
+0xCA5C 0x4F62
+0xCA5D 0x4F49
+0xCA5E 0x4F53
+0xCA5F 0x4F64
+0xCA60 0x4F3E
+0xCA61 0x4F67
+0xCA62 0x4F52
+0xCA63 0x4F5F
+0xCA64 0x4F41
+0xCA65 0x4F58
+0xCA66 0x4F2D
+0xCA67 0x4F33
+0xCA68 0x4F3F
+0xCA69 0x4F61
+0xCA6A 0x518F
+0xCA6B 0x51B9
+0xCA6C 0x521C
+0xCA6D 0x521E
+0xCA6E 0x5221
+0xCA6F-0xCA70 0x52AD
+0xCA71 0x5309
+0xCA72 0x5363
+0xCA73 0x5372
+0xCA74-0xCA75 0x538E
+0xCA76 0x5430
+0xCA77 0x5437
+0xCA78 0x542A
+0xCA79 0x5454
+0xCA7A 0x5445
+0xCA7B 0x5419
+0xCA7C 0x541C
+0xCA7D 0x5425
+0xCA7E 0x5418
+0xCAA1 0x543D
+0xCAA2 0x544F
+0xCAA3 0x5441
+0xCAA4 0x5428
+0xCAA5 0x5424
+0xCAA6 0x5447
+0xCAA7 0x56EE
+0xCAA8 0x56E7
+0xCAA9 0x56E5
+0xCAAA 0x5741
+0xCAAB 0x5745
+0xCAAC 0x574C
+0xCAAD 0x5749
+0xCAAE 0x574B
+0xCAAF 0x5752
+0xCAB0 0x5906
+0xCAB1 0x5940
+0xCAB2 0x59A6
+0xCAB3 0x5998
+0xCAB4 0x59A0
+0xCAB5 0x5997
+0xCAB6 0x598E
+0xCAB7 0x59A2
+0xCAB8 0x5990
+0xCAB9 0x598F
+0xCABA 0x59A7
+0xCABB 0x59A1
+0xCABC 0x5B8E
+0xCABD 0x5B92
+0xCABE 0x5C28
+0xCABF 0x5C2A
+0xCAC0 0x5C8D
+0xCAC1 0x5C8F
+0xCAC2 0x5C88
+0xCAC3 0x5C8B
+0xCAC4 0x5C89
+0xCAC5 0x5C92
+0xCAC6 0x5C8A
+0xCAC7 0x5C86
+0xCAC8 0x5C93
+0xCAC9 0x5C95
+0xCACA 0x5DE0
+0xCACB 0x5E0A
+0xCACC 0x5E0E
+0xCACD 0x5E8B
+0xCACE 0x5E89
+0xCACF 0x5E8C
+0xCAD0 0x5E88
+0xCAD1 0x5E8D
+0xCAD2 0x5F05
+0xCAD3 0x5F1D
+0xCAD4 0x5F78
+0xCAD5 0x5F76
+0xCAD6 0x5FD2
+0xCAD7 0x5FD1
+0xCAD8 0x5FD0
+0xCAD9 0x5FED
+0xCADA 0x5FE8
+0xCADB 0x5FEE
+0xCADC 0x5FF3
+0xCADD 0x5FE1
+0xCADE 0x5FE4
+0xCADF 0x5FE3
+0xCAE0 0x5FFA
+0xCAE1 0x5FEF
+0xCAE2 0x5FF7
+0xCAE3 0x5FFB
+0xCAE4 0x6000
+0xCAE5 0x5FF4
+0xCAE6 0x623A
+0xCAE7 0x6283
+0xCAE8 0x628C
+0xCAE9-0xCAEA 0x628E
+0xCAEB 0x6294
+0xCAEC 0x6287
+0xCAED 0x6271
+0xCAEE 0x627B
+0xCAEF 0x627A
+0xCAF0 0x6270
+0xCAF1 0x6281
+0xCAF2 0x6288
+0xCAF3 0x6277
+0xCAF4 0x627D
+0xCAF5 0x6272
+0xCAF6 0x6274
+0xCAF7 0x6537
+0xCAF8 0x65F0
+0xCAF9 0x65F4
+0xCAFA 0x65F3
+0xCAFB 0x65F2
+0xCAFC 0x65F5
+0xCAFD 0x6745
+0xCAFE 0x6747
+0xCB40 0x6759
+0xCB41 0x6755
+0xCB42 0x674C
+0xCB43 0x6748
+0xCB44 0x675D
+0xCB45 0x674D
+0xCB46 0x675A
+0xCB47 0x674B
+0xCB48 0x6BD0
+0xCB49-0xCB4A 0x6C19
+0xCB4B 0x6C78
+0xCB4C 0x6C67
+0xCB4D 0x6C6B
+0xCB4E 0x6C84
+0xCB4F 0x6C8B
+0xCB50 0x6C8F
+0xCB51 0x6C71
+0xCB52 0x6C6F
+0xCB53 0x6C69
+0xCB54 0x6C9A
+0xCB55 0x6C6D
+0xCB56 0x6C87
+0xCB57 0x6C95
+0xCB58 0x6C9C
+0xCB59 0x6C66
+0xCB5A 0x6C73
+0xCB5B 0x6C65
+0xCB5C 0x6C7B
+0xCB5D 0x6C8E
+0xCB5E 0x7074
+0xCB5F 0x707A
+0xCB60 0x7263
+0xCB61 0x72BF
+0xCB62 0x72BD
+0xCB63 0x72C3
+0xCB64 0x72C6
+0xCB65 0x72C1
+0xCB66 0x72BA
+0xCB67 0x72C5
+0xCB68 0x7395
+0xCB69 0x7397
+0xCB6A-0xCB6B 0x7393
+0xCB6C 0x7392
+0xCB6D 0x753A
+0xCB6E 0x7539
+0xCB6F-0xCB70 0x7594
+0xCB71 0x7681
+0xCB72 0x793D
+0xCB73 0x8034
+0xCB74 0x8095
+0xCB75 0x8099
+0xCB76 0x8090
+0xCB77 0x8092
+0xCB78 0x809C
+0xCB79 0x8290
+0xCB7A 0x828F
+0xCB7B 0x8285
+0xCB7C 0x828E
+0xCB7D 0x8291
+0xCB7E 0x8293
+0xCBA1 0x828A
+0xCBA2-0xCBA3 0x8283
+0xCBA4 0x8C78
+0xCBA5 0x8FC9
+0xCBA6 0x8FBF
+0xCBA7 0x909F
+0xCBA8 0x90A1
+0xCBA9 0x90A5
+0xCBAA 0x909E
+0xCBAB 0x90A7
+0xCBAC 0x90A0
+0xCBAD 0x9630
+0xCBAE 0x9628
+0xCBAF 0x962F
+0xCBB0 0x962D
+0xCBB1 0x4E33
+0xCBB2 0x4F98
+0xCBB3 0x4F7C
+0xCBB4 0x4F85
+0xCBB5 0x4F7D
+0xCBB6 0x4F80
+0xCBB7 0x4F87
+0xCBB8 0x4F76
+0xCBB9 0x4F74
+0xCBBA 0x4F89
+0xCBBB 0x4F84
+0xCBBC 0x4F77
+0xCBBD 0x4F4C
+0xCBBE 0x4F97
+0xCBBF 0x4F6A
+0xCBC0 0x4F9A
+0xCBC1 0x4F79
+0xCBC2 0x4F81
+0xCBC3 0x4F78
+0xCBC4 0x4F90
+0xCBC5 0x4F9C
+0xCBC6 0x4F94
+0xCBC7 0x4F9E
+0xCBC8 0x4F92
+0xCBC9 0x4F82
+0xCBCA 0x4F95
+0xCBCB 0x4F6B
+0xCBCC 0x4F6E
+0xCBCD 0x519E
+0xCBCE 0x51BC
+0xCBCF 0x51BE
+0xCBD0 0x5235
+0xCBD1-0xCBD2 0x5232
+0xCBD3 0x5246
+0xCBD4 0x5231
+0xCBD5 0x52BC
+0xCBD6-0xCBD7 0x530A
+0xCBD8 0x533C
+0xCBD9 0x5392
+0xCBDA 0x5394
+0xCBDB 0x5487
+0xCBDC 0x547F
+0xCBDD 0x5481
+0xCBDE 0x5491
+0xCBDF 0x5482
+0xCBE0 0x5488
+0xCBE1 0x546B
+0xCBE2 0x547A
+0xCBE3 0x547E
+0xCBE4 0x5465
+0xCBE5 0x546C
+0xCBE6 0x5474
+0xCBE7 0x5466
+0xCBE8 0x548D
+0xCBE9 0x546F
+0xCBEA 0x5461
+0xCBEB 0x5460
+0xCBEC 0x5498
+0xCBED 0x5463
+0xCBEE 0x5467
+0xCBEF 0x5464
+0xCBF0 0x56F7
+0xCBF1 0x56F9
+0xCBF2 0x576F
+0xCBF3 0x5772
+0xCBF4 0x576D
+0xCBF5 0x576B
+0xCBF6 0x5771
+0xCBF7 0x5770
+0xCBF8 0x5776
+0xCBF9 0x5780
+0xCBFA 0x5775
+0xCBFB 0x577B
+0xCBFC-0xCBFD 0x5773
+0xCBFE 0x5762
+0xCC40 0x5768
+0xCC41 0x577D
+0xCC42 0x590C
+0xCC43 0x5945
+0xCC44 0x59B5
+0xCC45 0x59BA
+0xCC46 0x59CF
+0xCC47 0x59CE
+0xCC48 0x59B2
+0xCC49 0x59CC
+0xCC4A 0x59C1
+0xCC4B 0x59B6
+0xCC4C 0x59BC
+0xCC4D 0x59C3
+0xCC4E 0x59D6
+0xCC4F 0x59B1
+0xCC50 0x59BD
+0xCC51 0x59C0
+0xCC52 0x59C8
+0xCC53 0x59B4
+0xCC54 0x59C7
+0xCC55 0x5B62
+0xCC56 0x5B65
+0xCC57 0x5B93
+0xCC58 0x5B95
+0xCC59 0x5C44
+0xCC5A 0x5C47
+0xCC5B 0x5CAE
+0xCC5C 0x5CA4
+0xCC5D 0x5CA0
+0xCC5E 0x5CB5
+0xCC5F 0x5CAF
+0xCC60 0x5CA8
+0xCC61 0x5CAC
+0xCC62 0x5C9F
+0xCC63 0x5CA3
+0xCC64 0x5CAD
+0xCC65 0x5CA2
+0xCC66 0x5CAA
+0xCC67 0x5CA7
+0xCC68 0x5C9D
+0xCC69 0x5CA5
+0xCC6A 0x5CB6
+0xCC6B 0x5CB0
+0xCC6C 0x5CA6
+0xCC6D 0x5E17
+0xCC6E 0x5E14
+0xCC6F 0x5E19
+0xCC70 0x5F28
+0xCC71-0xCC73 0x5F22
+0xCC74 0x5F54
+0xCC75 0x5F82
+0xCC76 0x5F7E
+0xCC77 0x5F7D
+0xCC78 0x5FDE
+0xCC79 0x5FE5
+0xCC7A 0x602D
+0xCC7B 0x6026
+0xCC7C 0x6019
+0xCC7D 0x6032
+0xCC7E 0x600B
+0xCCA1 0x6034
+0xCCA2 0x600A
+0xCCA3 0x6017
+0xCCA4 0x6033
+0xCCA5 0x601A
+0xCCA6 0x601E
+0xCCA7 0x602C
+0xCCA8 0x6022
+0xCCA9 0x600D
+0xCCAA 0x6010
+0xCCAB 0x602E
+0xCCAC 0x6013
+0xCCAD 0x6011
+0xCCAE 0x600C
+0xCCAF 0x6009
+0xCCB0 0x601C
+0xCCB1 0x6214
+0xCCB2 0x623D
+0xCCB3 0x62AD
+0xCCB4 0x62B4
+0xCCB5 0x62D1
+0xCCB6 0x62BE
+0xCCB7 0x62AA
+0xCCB8 0x62B6
+0xCCB9 0x62CA
+0xCCBA 0x62AE
+0xCCBB 0x62B3
+0xCCBC 0x62AF
+0xCCBD 0x62BB
+0xCCBE 0x62A9
+0xCCBF 0x62B0
+0xCCC0 0x62B8
+0xCCC1 0x653D
+0xCCC2 0x65A8
+0xCCC3 0x65BB
+0xCCC4 0x6609
+0xCCC5 0x65FC
+0xCCC6 0x6604
+0xCCC7 0x6612
+0xCCC8 0x6608
+0xCCC9 0x65FB
+0xCCCA 0x6603
+0xCCCB 0x660B
+0xCCCC 0x660D
+0xCCCD 0x6605
+0xCCCE 0x65FD
+0xCCCF 0x6611
+0xCCD0 0x6610
+0xCCD1 0x66F6
+0xCCD2 0x670A
+0xCCD3 0x6785
+0xCCD4 0x676C
+0xCCD5 0x678E
+0xCCD6 0x6792
+0xCCD7 0x6776
+0xCCD8 0x677B
+0xCCD9 0x6798
+0xCCDA 0x6786
+0xCCDB 0x6784
+0xCCDC 0x6774
+0xCCDD 0x678D
+0xCCDE 0x678C
+0xCCDF 0x677A
+0xCCE0 0x679F
+0xCCE1 0x6791
+0xCCE2 0x6799
+0xCCE3 0x6783
+0xCCE4 0x677D
+0xCCE5 0x6781
+0xCCE6-0xCCE7 0x6778
+0xCCE8 0x6794
+0xCCE9 0x6B25
+0xCCEA 0x6B80
+0xCCEB 0x6B7E
+0xCCEC 0x6BDE
+0xCCED 0x6C1D
+0xCCEE 0x6C93
+0xCCEF 0x6CEC
+0xCCF0 0x6CEB
+0xCCF1 0x6CEE
+0xCCF2 0x6CD9
+0xCCF3 0x6CB6
+0xCCF4 0x6CD4
+0xCCF5 0x6CAD
+0xCCF6 0x6CE7
+0xCCF7 0x6CB7
+0xCCF8 0x6CD0
+0xCCF9 0x6CC2
+0xCCFA 0x6CBA
+0xCCFB 0x6CC3
+0xCCFC 0x6CC6
+0xCCFD 0x6CED
+0xCCFE 0x6CF2
+0xCD40 0x6CD2
+0xCD41 0x6CDD
+0xCD42 0x6CB4
+0xCD43 0x6C8A
+0xCD44 0x6C9D
+0xCD45 0x6C80
+0xCD46 0x6CDE
+0xCD47 0x6CC0
+0xCD48 0x6D30
+0xCD49 0x6CCD
+0xCD4A 0x6CC7
+0xCD4B 0x6CB0
+0xCD4C 0x6CF9
+0xCD4D 0x6CCF
+0xCD4E 0x6CE9
+0xCD4F 0x6CD1
+0xCD50 0x7094
+0xCD51 0x7098
+0xCD52 0x7085
+0xCD53 0x7093
+0xCD54 0x7086
+0xCD55 0x7084
+0xCD56 0x7091
+0xCD57 0x7096
+0xCD58 0x7082
+0xCD59 0x709A
+0xCD5A 0x7083
+0xCD5B 0x726A
+0xCD5C 0x72D6
+0xCD5D 0x72CB
+0xCD5E 0x72D8
+0xCD5F 0x72C9
+0xCD60 0x72DC
+0xCD61 0x72D2
+0xCD62 0x72D4
+0xCD63 0x72DA
+0xCD64 0x72CC
+0xCD65 0x72D1
+0xCD66 0x73A4
+0xCD67 0x73A1
+0xCD68 0x73AD
+0xCD69 0x73A6
+0xCD6A 0x73A2
+0xCD6B 0x73A0
+0xCD6C 0x73AC
+0xCD6D 0x739D
+0xCD6E 0x74DD
+0xCD6F 0x74E8
+0xCD70-0xCD71 0x753F
+0xCD72 0x753E
+0xCD73 0x758C
+0xCD74 0x7598
+0xCD75 0x76AF
+0xCD76 0x76F3
+0xCD77 0x76F1
+0xCD78 0x76F0
+0xCD79 0x76F5
+0xCD7A 0x77F8
+0xCD7B 0x77FC
+0xCD7C 0x77F9
+0xCD7D 0x77FB
+0xCD7E 0x77FA
+0xCDA1 0x77F7
+0xCDA2 0x7942
+0xCDA3 0x793F
+0xCDA4 0x79C5
+0xCDA5 0x7A78
+0xCDA6 0x7A7B
+0xCDA7 0x7AFB
+0xCDA8 0x7C75
+0xCDA9 0x7CFD
+0xCDAA 0x8035
+0xCDAB 0x808F
+0xCDAC 0x80AE
+0xCDAD 0x80A3
+0xCDAE 0x80B8
+0xCDAF 0x80B5
+0xCDB0 0x80AD
+0xCDB1 0x8220
+0xCDB2 0x82A0
+0xCDB3 0x82C0
+0xCDB4 0x82AB
+0xCDB5 0x829A
+0xCDB6 0x8298
+0xCDB7 0x829B
+0xCDB8 0x82B5
+0xCDB9 0x82A7
+0xCDBA 0x82AE
+0xCDBB 0x82BC
+0xCDBC 0x829E
+0xCDBD 0x82BA
+0xCDBE 0x82B4
+0xCDBF 0x82A8
+0xCDC0 0x82A1
+0xCDC1 0x82A9
+0xCDC2 0x82C2
+0xCDC3 0x82A4
+0xCDC4 0x82C3
+0xCDC5 0x82B6
+0xCDC6 0x82A2
+0xCDC7 0x8670
+0xCDC8 0x866F
+0xCDC9-0xCDCA 0x866D
+0xCDCB 0x8C56
+0xCDCC 0x8FD2
+0xCDCD 0x8FCB
+0xCDCE 0x8FD3
+0xCDCF 0x8FCD
+0xCDD0 0x8FD6
+0xCDD1 0x8FD5
+0xCDD2 0x8FD7
+0xCDD3 0x90B2
+0xCDD4 0x90B4
+0xCDD5 0x90AF
+0xCDD6 0x90B3
+0xCDD7 0x90B0
+0xCDD8 0x9639
+0xCDD9 0x963D
+0xCDDA 0x963C
+0xCDDB 0x963A
+0xCDDC 0x9643
+0xCDDD 0x4FCD
+0xCDDE 0x4FC5
+0xCDDF 0x4FD3
+0xCDE0 0x4FB2
+0xCDE1 0x4FC9
+0xCDE2 0x4FCB
+0xCDE3 0x4FC1
+0xCDE4 0x4FD4
+0xCDE5 0x4FDC
+0xCDE6 0x4FD9
+0xCDE7 0x4FBB
+0xCDE8 0x4FB3
+0xCDE9 0x4FDB
+0xCDEA 0x4FC7
+0xCDEB 0x4FD6
+0xCDEC 0x4FBA
+0xCDED 0x4FC0
+0xCDEE 0x4FB9
+0xCDEF 0x4FEC
+0xCDF0 0x5244
+0xCDF1 0x5249
+0xCDF2 0x52C0
+0xCDF3 0x52C2
+0xCDF4 0x533D
+0xCDF5 0x537C
+0xCDF6 0x5397
+0xCDF7 0x5396
+0xCDF8 0x5399
+0xCDF9 0x5398
+0xCDFA 0x54BA
+0xCDFB 0x54A1
+0xCDFC 0x54AD
+0xCDFD 0x54A5
+0xCDFE 0x54CF
+0xCE40 0x54C3
+0xCE41 0x830D
+0xCE42 0x54B7
+0xCE43 0x54AE
+0xCE44 0x54D6
+0xCE45 0x54B6
+0xCE46-0xCE47 0x54C5
+0xCE48 0x54A0
+0xCE49 0x5470
+0xCE4A 0x54BC
+0xCE4B 0x54A2
+0xCE4C 0x54BE
+0xCE4D 0x5472
+0xCE4E 0x54DE
+0xCE4F 0x54B0
+0xCE50 0x57B5
+0xCE51-0xCE52 0x579E
+0xCE53 0x57A4
+0xCE54 0x578C
+0xCE55 0x5797
+0xCE56 0x579D
+0xCE57 0x579B
+0xCE58 0x5794
+0xCE59 0x5798
+0xCE5A 0x578F
+0xCE5B 0x5799
+0xCE5C 0x57A5
+0xCE5D 0x579A
+0xCE5E 0x5795
+0xCE5F 0x58F4
+0xCE60 0x590D
+0xCE61 0x5953
+0xCE62 0x59E1
+0xCE63 0x59DE
+0xCE64 0x59EE
+0xCE65 0x5A00
+0xCE66 0x59F1
+0xCE67 0x59DD
+0xCE68 0x59FA
+0xCE69 0x59FD
+0xCE6A 0x59FC
+0xCE6B 0x59F6
+0xCE6C 0x59E4
+0xCE6D 0x59F2
+0xCE6E 0x59F7
+0xCE6F 0x59DB
+0xCE70 0x59E9
+0xCE71 0x59F3
+0xCE72 0x59F5
+0xCE73 0x59E0
+0xCE74 0x59FE
+0xCE75 0x59F4
+0xCE76 0x59ED
+0xCE77 0x5BA8
+0xCE78 0x5C4C
+0xCE79 0x5CD0
+0xCE7A 0x5CD8
+0xCE7B 0x5CCC
+0xCE7C 0x5CD7
+0xCE7D 0x5CCB
+0xCE7E 0x5CDB
+0xCEA1 0x5CDE
+0xCEA2 0x5CDA
+0xCEA3 0x5CC9
+0xCEA4 0x5CC7
+0xCEA5 0x5CCA
+0xCEA6 0x5CD6
+0xCEA7-0xCEA8 0x5CD3
+0xCEA9 0x5CCF
+0xCEAA 0x5CC8
+0xCEAB 0x5CC6
+0xCEAC 0x5CCE
+0xCEAD 0x5CDF
+0xCEAE 0x5CF8
+0xCEAF 0x5DF9
+0xCEB0-0xCEB2 0x5E21
+0xCEB3 0x5E20
+0xCEB4 0x5E24
+0xCEB5 0x5EB0
+0xCEB6 0x5EA4
+0xCEB7 0x5EA2
+0xCEB8 0x5E9B
+0xCEB9 0x5EA3
+0xCEBA 0x5EA5
+0xCEBB 0x5F07
+0xCEBC 0x5F2E
+0xCEBD 0x5F56
+0xCEBE 0x5F86
+0xCEBF 0x6037
+0xCEC0 0x6039
+0xCEC1 0x6054
+0xCEC2 0x6072
+0xCEC3 0x605E
+0xCEC4 0x6045
+0xCEC5 0x6053
+0xCEC6 0x6047
+0xCEC7 0x6049
+0xCEC8 0x605B
+0xCEC9 0x604C
+0xCECA 0x6040
+0xCECB 0x6042
+0xCECC 0x605F
+0xCECD 0x6024
+0xCECE 0x6044
+0xCECF 0x6058
+0xCED0 0x6066
+0xCED1 0x606E
+0xCED2-0xCED3 0x6242
+0xCED4 0x62CF
+0xCED5 0x630D
+0xCED6 0x630B
+0xCED7 0x62F5
+0xCED8 0x630E
+0xCED9 0x6303
+0xCEDA 0x62EB
+0xCEDB 0x62F9
+0xCEDC 0x630F
+0xCEDD 0x630C
+0xCEDE 0x62F8
+0xCEDF 0x62F6
+0xCEE0 0x6300
+0xCEE1-0xCEE2 0x6313
+0xCEE3 0x62FA
+0xCEE4 0x6315
+0xCEE5 0x62FB
+0xCEE6 0x62F0
+0xCEE7 0x6541
+0xCEE8 0x6543
+0xCEE9 0x65AA
+0xCEEA 0x65BF
+0xCEEB 0x6636
+0xCEEC 0x6621
+0xCEED 0x6632
+0xCEEE 0x6635
+0xCEEF 0x661C
+0xCEF0 0x6626
+0xCEF1 0x6622
+0xCEF2 0x6633
+0xCEF3 0x662B
+0xCEF4 0x663A
+0xCEF5 0x661D
+0xCEF6 0x6634
+0xCEF7 0x6639
+0xCEF8 0x662E
+0xCEF9-0xCEFA 0x670F
+0xCEFB 0x67C1
+0xCEFC 0x67F2
+0xCEFD 0x67C8
+0xCEFE 0x67BA
+0xCF40 0x67DC
+0xCF41 0x67BB
+0xCF42 0x67F8
+0xCF43 0x67D8
+0xCF44 0x67C0
+0xCF45 0x67B7
+0xCF46 0x67C5
+0xCF47 0x67EB
+0xCF48 0x67E4
+0xCF49 0x67DF
+0xCF4A 0x67B5
+0xCF4B 0x67CD
+0xCF4C 0x67B3
+0xCF4D 0x67F7
+0xCF4E 0x67F6
+0xCF4F 0x67EE
+0xCF50 0x67E3
+0xCF51 0x67C2
+0xCF52 0x67B9
+0xCF53 0x67CE
+0xCF54 0x67E7
+0xCF55 0x67F0
+0xCF56 0x67B2
+0xCF57 0x67FC
+0xCF58 0x67C6
+0xCF59 0x67ED
+0xCF5A 0x67CC
+0xCF5B 0x67AE
+0xCF5C 0x67E6
+0xCF5D 0x67DB
+0xCF5E 0x67FA
+0xCF5F-0xCF60 0x67C9
+0xCF61 0x67C3
+0xCF62 0x67EA
+0xCF63 0x67CB
+0xCF64 0x6B28
+0xCF65 0x6B82
+0xCF66 0x6B84
+0xCF67 0x6BB6
+0xCF68 0x6BD6
+0xCF69 0x6BD8
+0xCF6A 0x6BE0
+0xCF6B-0xCF6C 0x6C20
+0xCF6D 0x6D28
+0xCF6E 0x6D34
+0xCF6F 0x6D2D
+0xCF70 0x6D1F
+0xCF71 0x6D3C
+0xCF72 0x6D3F
+0xCF73 0x6D12
+0xCF74 0x6D0A
+0xCF75 0x6CDA
+0xCF76 0x6D33
+0xCF77 0x6D04
+0xCF78 0x6D19
+0xCF79 0x6D3A
+0xCF7A 0x6D1A
+0xCF7B 0x6D11
+0xCF7C 0x6D00
+0xCF7D 0x6D1D
+0xCF7E 0x6D42
+0xCFA1 0x6D01
+0xCFA2 0x6D18
+0xCFA3 0x6D37
+0xCFA4 0x6D03
+0xCFA5 0x6D0F
+0xCFA6 0x6D40
+0xCFA7 0x6D07
+0xCFA8 0x6D20
+0xCFA9 0x6D2C
+0xCFAA 0x6D08
+0xCFAB 0x6D22
+0xCFAC 0x6D09
+0xCFAD 0x6D10
+0xCFAE 0x70B7
+0xCFAF 0x709F
+0xCFB0 0x70BE
+0xCFB1 0x70B1
+0xCFB2 0x70B0
+0xCFB3 0x70A1
+0xCFB4-0xCFB5 0x70B4
+0xCFB6 0x70A9
+0xCFB7 0x7241
+0xCFB8-0xCFB9 0x7249
+0xCFBA 0x726C
+0xCFBB 0x7270
+0xCFBC 0x7273
+0xCFBD 0x726E
+0xCFBE 0x72CA
+0xCFBF 0x72E4
+0xCFC0 0x72E8
+0xCFC1 0x72EB
+0xCFC2 0x72DF
+0xCFC3 0x72EA
+0xCFC4 0x72E6
+0xCFC5 0x72E3
+0xCFC6 0x7385
+0xCFC7 0x73CC
+0xCFC8 0x73C2
+0xCFC9 0x73C8
+0xCFCA 0x73C5
+0xCFCB 0x73B9
+0xCFCC 0x73B6
+0xCFCD 0x73B5
+0xCFCE 0x73B4
+0xCFCF 0x73EB
+0xCFD0 0x73BF
+0xCFD1 0x73C7
+0xCFD2 0x73BE
+0xCFD3 0x73C3
+0xCFD4 0x73C6
+0xCFD5 0x73B8
+0xCFD6 0x73CB
+0xCFD7 0x74EC
+0xCFD8 0x74EE
+0xCFD9 0x752E
+0xCFDA-0xCFDB 0x7547
+0xCFDC 0x75A7
+0xCFDD 0x75AA
+0xCFDE 0x7679
+0xCFDF 0x76C4
+0xCFE0 0x7708
+0xCFE1-0xCFE3 0x7703
+0xCFE4 0x770A
+0xCFE5 0x76F7
+0xCFE6 0x76FB
+0xCFE7 0x76FA
+0xCFE8-0xCFE9 0x77E7
+0xCFEA 0x7806
+0xCFEB-0xCFEC 0x7811
+0xCFED 0x7805
+0xCFEE 0x7810
+0xCFEF 0x780F
+0xCFF0 0x780E
+0xCFF1 0x7809
+0xCFF2 0x7803
+0xCFF3 0x7813
+0xCFF4 0x794A
+0xCFF5 0x794C
+0xCFF6 0x794B
+0xCFF7 0x7945
+0xCFF8 0x7944
+0xCFF9 0x79D5
+0xCFFA 0x79CD
+0xCFFB 0x79CF
+0xCFFC 0x79D6
+0xCFFD 0x79CE
+0xCFFE 0x7A80
+0xD040 0x7A7E
+0xD041 0x7AD1
+0xD042-0xD043 0x7B00
+0xD044 0x7C7A
+0xD045-0xD046 0x7C78
+0xD047-0xD049 0x7C7F
+0xD04A 0x7D03
+0xD04B 0x7D08
+0xD04C 0x7D01
+0xD04D 0x7F58
+0xD04E 0x7F91
+0xD04F 0x7F8D
+0xD050 0x7FBE
+0xD051 0x8007
+0xD052-0xD053 0x800E
+0xD054 0x8014
+0xD055 0x8037
+0xD056 0x80D8
+0xD057 0x80C7
+0xD058 0x80E0
+0xD059 0x80D1
+0xD05A 0x80C8
+0xD05B 0x80C2
+0xD05C 0x80D0
+0xD05D 0x80C5
+0xD05E 0x80E3
+0xD05F 0x80D9
+0xD060 0x80DC
+0xD061 0x80CA
+0xD062 0x80D5
+0xD063 0x80C9
+0xD064 0x80CF
+0xD065 0x80D7
+0xD066 0x80E6
+0xD067 0x80CD
+0xD068 0x81FF
+0xD069 0x8221
+0xD06A 0x8294
+0xD06B 0x82D9
+0xD06C 0x82FE
+0xD06D 0x82F9
+0xD06E 0x8307
+0xD06F 0x82E8
+0xD070 0x8300
+0xD071 0x82D5
+0xD072 0x833A
+0xD073 0x82EB
+0xD074 0x82D6
+0xD075 0x82F4
+0xD076 0x82EC
+0xD077 0x82E1
+0xD078 0x82F2
+0xD079 0x82F5
+0xD07A 0x830C
+0xD07B 0x82FB
+0xD07C 0x82F6
+0xD07D 0x82F0
+0xD07E 0x82EA
+0xD0A1 0x82E4
+0xD0A2 0x82E0
+0xD0A3 0x82FA
+0xD0A4 0x82F3
+0xD0A5 0x82ED
+0xD0A6 0x8677
+0xD0A7 0x8674
+0xD0A8 0x867C
+0xD0A9 0x8673
+0xD0AA 0x8841
+0xD0AB 0x884E
+0xD0AC 0x8867
+0xD0AD 0x886A
+0xD0AE 0x8869
+0xD0AF 0x89D3
+0xD0B0 0x8A04
+0xD0B1 0x8A07
+0xD0B2 0x8D72
+0xD0B3 0x8FE3
+0xD0B4 0x8FE1
+0xD0B5 0x8FEE
+0xD0B6 0x8FE0
+0xD0B7 0x90F1
+0xD0B8 0x90BD
+0xD0B9 0x90BF
+0xD0BA 0x90D5
+0xD0BB 0x90C5
+0xD0BC 0x90BE
+0xD0BD 0x90C7
+0xD0BE 0x90CB
+0xD0BF 0x90C8
+0xD0C0 0x91D4
+0xD0C1 0x91D3
+0xD0C2 0x9654
+0xD0C3 0x964F
+0xD0C4 0x9651
+0xD0C5 0x9653
+0xD0C6 0x964A
+0xD0C7 0x964E
+0xD0C8 0x501E
+0xD0C9 0x5005
+0xD0CA 0x5007
+0xD0CB 0x5013
+0xD0CC 0x5022
+0xD0CD 0x5030
+0xD0CE 0x501B
+0xD0CF 0x4FF5
+0xD0D0 0x4FF4
+0xD0D1 0x5033
+0xD0D2 0x5037
+0xD0D3 0x502C
+0xD0D4-0xD0D5 0x4FF6
+0xD0D6 0x5017
+0xD0D7 0x501C
+0xD0D8 0x5020
+0xD0D9 0x5027
+0xD0DA 0x5035
+0xD0DB 0x502F
+0xD0DC 0x5031
+0xD0DD 0x500E
+0xD0DE 0x515A
+0xD0DF 0x5194
+0xD0E0 0x5193
+0xD0E1 0x51CA
+0xD0E2-0xD0E3 0x51C4
+0xD0E4 0x51C8
+0xD0E5 0x51CE
+0xD0E6 0x5261
+0xD0E7 0x525A
+0xD0E8 0x5252
+0xD0E9-0xD0EA 0x525E
+0xD0EB 0x5255
+0xD0EC 0x5262
+0xD0ED 0x52CD
+0xD0EE 0x530E
+0xD0EF 0x539E
+0xD0F0 0x5526
+0xD0F1 0x54E2
+0xD0F2 0x5517
+0xD0F3 0x5512
+0xD0F4 0x54E7
+0xD0F5 0x54F3
+0xD0F6 0x54E4
+0xD0F7 0x551A
+0xD0F8 0x54FF
+0xD0F9 0x5504
+0xD0FA 0x5508
+0xD0FB 0x54EB
+0xD0FC 0x5511
+0xD0FD 0x5505
+0xD0FE 0x54F1
+0xD140 0x550A
+0xD141 0x54FB
+0xD142-0xD143 0x54F7
+0xD144 0x54E0
+0xD145 0x550E
+0xD146 0x5503
+0xD147 0x550B
+0xD148-0xD149 0x5701
+0xD14A 0x57CC
+0xD14B 0x5832
+0xD14C 0x57D5
+0xD14D 0x57D2
+0xD14E 0x57BA
+0xD14F 0x57C6
+0xD150 0x57BD
+0xD151 0x57BC
+0xD152 0x57B8
+0xD153 0x57B6
+0xD154 0x57BF
+0xD155 0x57C7
+0xD156 0x57D0
+0xD157 0x57B9
+0xD158 0x57C1
+0xD159 0x590E
+0xD15A 0x594A
+0xD15B 0x5A19
+0xD15C 0x5A16
+0xD15D-0xD15E 0x5A2D
+0xD15F 0x5A15
+0xD160 0x5A0F
+0xD161 0x5A17
+0xD162 0x5A0A
+0xD163 0x5A1E
+0xD164 0x5A33
+0xD165 0x5B6C
+0xD166 0x5BA7
+0xD167 0x5BAD
+0xD168 0x5BAC
+0xD169 0x5C03
+0xD16A 0x5C56
+0xD16B 0x5C54
+0xD16C 0x5CEC
+0xD16D 0x5CFF
+0xD16E 0x5CEE
+0xD16F 0x5CF1
+0xD170 0x5CF7
+0xD171 0x5D00
+0xD172 0x5CF9
+0xD173 0x5E29
+0xD174 0x5E28
+0xD175 0x5EA8
+0xD176 0x5EAE
+0xD177 0x5EAA
+0xD178 0x5EAC
+0xD179 0x5F33
+0xD17A 0x5F30
+0xD17B 0x5F67
+0xD17C 0x605D
+0xD17D 0x605A
+0xD17E 0x6067
+0xD1A1 0x6041
+0xD1A2 0x60A2
+0xD1A3 0x6088
+0xD1A4 0x6080
+0xD1A5 0x6092
+0xD1A6 0x6081
+0xD1A7 0x609D
+0xD1A8 0x6083
+0xD1A9 0x6095
+0xD1AA 0x609B
+0xD1AB 0x6097
+0xD1AC 0x6087
+0xD1AD 0x609C
+0xD1AE 0x608E
+0xD1AF 0x6219
+0xD1B0 0x6246
+0xD1B1 0x62F2
+0xD1B2 0x6310
+0xD1B3 0x6356
+0xD1B4 0x632C
+0xD1B5-0xD1B6 0x6344
+0xD1B7 0x6336
+0xD1B8 0x6343
+0xD1B9 0x63E4
+0xD1BA 0x6339
+0xD1BB 0x634B
+0xD1BC 0x634A
+0xD1BD 0x633C
+0xD1BE 0x6329
+0xD1BF 0x6341
+0xD1C0 0x6334
+0xD1C1 0x6358
+0xD1C2 0x6354
+0xD1C3 0x6359
+0xD1C4 0x632D
+0xD1C5 0x6347
+0xD1C6 0x6333
+0xD1C7 0x635A
+0xD1C8 0x6351
+0xD1C9 0x6338
+0xD1CA 0x6357
+0xD1CB 0x6340
+0xD1CC 0x6348
+0xD1CD 0x654A
+0xD1CE 0x6546
+0xD1CF 0x65C6
+0xD1D0-0xD1D1 0x65C3
+0xD1D2 0x65C2
+0xD1D3 0x664A
+0xD1D4 0x665F
+0xD1D5 0x6647
+0xD1D6 0x6651
+0xD1D7-0xD1D8 0x6712
+0xD1D9 0x681F
+0xD1DA 0x681A
+0xD1DB 0x6849
+0xD1DC-0xD1DD 0x6832
+0xD1DE 0x683B
+0xD1DF 0x684B
+0xD1E0 0x684F
+0xD1E1 0x6816
+0xD1E2 0x6831
+0xD1E3 0x681C
+0xD1E4 0x6835
+0xD1E5 0x682B
+0xD1E6 0x682D
+0xD1E7 0x682F
+0xD1E8 0x684E
+0xD1E9 0x6844
+0xD1EA 0x6834
+0xD1EB 0x681D
+0xD1EC 0x6812
+0xD1ED 0x6814
+0xD1EE 0x6826
+0xD1EF 0x6828
+0xD1F0 0x682E
+0xD1F1 0x684D
+0xD1F2 0x683A
+0xD1F3 0x6825
+0xD1F4 0x6820
+0xD1F5 0x6B2C
+0xD1F6 0x6B2F
+0xD1F7 0x6B2D
+0xD1F8 0x6B31
+0xD1F9 0x6B34
+0xD1FA 0x6B6D
+0xD1FB 0x8082
+0xD1FC 0x6B88
+0xD1FD 0x6BE6
+0xD1FE 0x6BE4
+0xD240 0x6BE8
+0xD241 0x6BE3
+0xD242 0x6BE2
+0xD243 0x6BE7
+0xD244 0x6C25
+0xD245 0x6D7A
+0xD246-0xD247 0x6D63
+0xD248 0x6D76
+0xD249 0x6D0D
+0xD24A 0x6D61
+0xD24B 0x6D92
+0xD24C 0x6D58
+0xD24D 0x6D62
+0xD24E 0x6D6D
+0xD24F 0x6D6F
+0xD250 0x6D91
+0xD251 0x6D8D
+0xD252 0x6DEF
+0xD253 0x6D7F
+0xD254 0x6D86
+0xD255 0x6D5E
+0xD256 0x6D67
+0xD257 0x6D60
+0xD258 0x6D97
+0xD259 0x6D70
+0xD25A 0x6D7C
+0xD25B 0x6D5F
+0xD25C 0x6D82
+0xD25D 0x6D98
+0xD25E 0x6D2F
+0xD25F 0x6D68
+0xD260 0x6D8B
+0xD261 0x6D7E
+0xD262 0x6D80
+0xD263 0x6D84
+0xD264 0x6D16
+0xD265 0x6D83
+0xD266 0x6D7B
+0xD267 0x6D7D
+0xD268 0x6D75
+0xD269 0x6D90
+0xD26A 0x70DC
+0xD26B 0x70D3
+0xD26C 0x70D1
+0xD26D 0x70DD
+0xD26E 0x70CB
+0xD26F 0x7F39
+0xD270 0x70E2
+0xD271 0x70D7
+0xD272 0x70D2
+0xD273 0x70DE
+0xD274 0x70E0
+0xD275 0x70D4
+0xD276 0x70CD
+0xD277-0xD279 0x70C5
+0xD27A 0x70DA
+0xD27B 0x70CE
+0xD27C 0x70E1
+0xD27D 0x7242
+0xD27E 0x7278
+0xD2A1 0x7277
+0xD2A2 0x7276
+0xD2A3 0x7300
+0xD2A4 0x72FA
+0xD2A5 0x72F4
+0xD2A6 0x72FE
+0xD2A7 0x72F6
+0xD2A8 0x72F3
+0xD2A9 0x72FB
+0xD2AA 0x7301
+0xD2AB 0x73D3
+0xD2AC 0x73D9
+0xD2AD 0x73E5
+0xD2AE 0x73D6
+0xD2AF 0x73BC
+0xD2B0 0x73E7
+0xD2B1 0x73E3
+0xD2B2 0x73E9
+0xD2B3 0x73DC
+0xD2B4 0x73D2
+0xD2B5 0x73DB
+0xD2B6 0x73D4
+0xD2B7 0x73DD
+0xD2B8 0x73DA
+0xD2B9-0xD2BA 0x73D7
+0xD2BB 0x73E8
+0xD2BC-0xD2BD 0x74DE
+0xD2BE-0xD2BF 0x74F4
+0xD2C0 0x7521
+0xD2C1 0x755B
+0xD2C2 0x755F
+0xD2C3 0x75B0
+0xD2C4 0x75C1
+0xD2C5 0x75BB
+0xD2C6 0x75C4
+0xD2C7 0x75C0
+0xD2C8 0x75BF
+0xD2C9 0x75B6
+0xD2CA 0x75BA
+0xD2CB 0x768A
+0xD2CC 0x76C9
+0xD2CD 0x771D
+0xD2CE 0x771B
+0xD2CF 0x7710
+0xD2D0 0x7713
+0xD2D1 0x7712
+0xD2D2 0x7723
+0xD2D3 0x7711
+0xD2D4 0x7715
+0xD2D5-0xD2D6 0x7719
+0xD2D7 0x7722
+0xD2D8 0x7727
+0xD2D9 0x7823
+0xD2DA 0x782C
+0xD2DB 0x7822
+0xD2DC 0x7835
+0xD2DD 0x782F
+0xD2DE 0x7828
+0xD2DF 0x782E
+0xD2E0 0x782B
+0xD2E1 0x7821
+0xD2E2 0x7829
+0xD2E3 0x7833
+0xD2E4 0x782A
+0xD2E5 0x7831
+0xD2E6 0x7954
+0xD2E7 0x795B
+0xD2E8 0x794F
+0xD2E9 0x795C
+0xD2EA 0x7953
+0xD2EB 0x7952
+0xD2EC 0x7951
+0xD2ED-0xD2EE 0x79EB
+0xD2EF 0x79E0
+0xD2F0 0x79EE
+0xD2F1 0x79ED
+0xD2F2 0x79EA
+0xD2F3 0x79DC
+0xD2F4 0x79DE
+0xD2F5 0x79DD
+0xD2F6 0x7A86
+0xD2F7 0x7A89
+0xD2F8 0x7A85
+0xD2F9-0xD2FA 0x7A8B
+0xD2FB 0x7A8A
+0xD2FC 0x7A87
+0xD2FD 0x7AD8
+0xD2FE 0x7B10
+0xD340 0x7B04
+0xD341 0x7B13
+0xD342 0x7B05
+0xD343 0x7B0F
+0xD344 0x7B08
+0xD345 0x7B0A
+0xD346 0x7B0E
+0xD347 0x7B09
+0xD348 0x7B12
+0xD349 0x7C84
+0xD34A 0x7C91
+0xD34B 0x7C8A
+0xD34C 0x7C8C
+0xD34D 0x7C88
+0xD34E 0x7C8D
+0xD34F 0x7C85
+0xD350 0x7D1E
+0xD351 0x7D1D
+0xD352 0x7D11
+0xD353 0x7D0E
+0xD354 0x7D18
+0xD355 0x7D16
+0xD356 0x7D13
+0xD357 0x7D1F
+0xD358 0x7D12
+0xD359 0x7D0F
+0xD35A 0x7D0C
+0xD35B 0x7F5C
+0xD35C 0x7F61
+0xD35D 0x7F5E
+0xD35E 0x7F60
+0xD35F 0x7F5D
+0xD360 0x7F5B
+0xD361 0x7F96
+0xD362 0x7F92
+0xD363 0x7FC3
+0xD364 0x7FC2
+0xD365 0x7FC0
+0xD366 0x8016
+0xD367 0x803E
+0xD368 0x8039
+0xD369 0x80FA
+0xD36A 0x80F2
+0xD36B 0x80F9
+0xD36C 0x80F5
+0xD36D 0x8101
+0xD36E 0x80FB
+0xD36F 0x8100
+0xD370 0x8201
+0xD371 0x822F
+0xD372 0x8225
+0xD373 0x8333
+0xD374 0x832D
+0xD375 0x8344
+0xD376 0x8319
+0xD377 0x8351
+0xD378 0x8325
+0xD379 0x8356
+0xD37A 0x833F
+0xD37B 0x8341
+0xD37C 0x8326
+0xD37D 0x831C
+0xD37E 0x8322
+0xD3A1 0x8342
+0xD3A2 0x834E
+0xD3A3 0x831B
+0xD3A4 0x832A
+0xD3A5 0x8308
+0xD3A6 0x833C
+0xD3A7 0x834D
+0xD3A8 0x8316
+0xD3A9 0x8324
+0xD3AA 0x8320
+0xD3AB 0x8337
+0xD3AC 0x832F
+0xD3AD 0x8329
+0xD3AE 0x8347
+0xD3AF 0x8345
+0xD3B0 0x834C
+0xD3B1 0x8353
+0xD3B2 0x831E
+0xD3B3 0x832C
+0xD3B4 0x834B
+0xD3B5 0x8327
+0xD3B6 0x8348
+0xD3B7 0x8653
+0xD3B8 0x8652
+0xD3B9 0x86A2
+0xD3BA 0x86A8
+0xD3BB 0x8696
+0xD3BC 0x868D
+0xD3BD 0x8691
+0xD3BE 0x869E
+0xD3BF 0x8687
+0xD3C0 0x8697
+0xD3C1 0x8686
+0xD3C2 0x868B
+0xD3C3 0x869A
+0xD3C4 0x8685
+0xD3C5 0x86A5
+0xD3C6 0x8699
+0xD3C7 0x86A1
+0xD3C8 0x86A7
+0xD3C9 0x8695
+0xD3CA 0x8698
+0xD3CB 0x868E
+0xD3CC 0x869D
+0xD3CD 0x8690
+0xD3CE 0x8694
+0xD3CF-0xD3D0 0x8843
+0xD3D1 0x886D
+0xD3D2-0xD3D3 0x8875
+0xD3D4 0x8872
+0xD3D5 0x8880
+0xD3D6 0x8871
+0xD3D7 0x887F
+0xD3D8 0x886F
+0xD3D9 0x8883
+0xD3DA 0x887E
+0xD3DB 0x8874
+0xD3DC 0x887C
+0xD3DD 0x8A12
+0xD3DE 0x8C47
+0xD3DF 0x8C57
+0xD3E0 0x8C7B
+0xD3E1 0x8CA4
+0xD3E2 0x8CA3
+0xD3E3 0x8D76
+0xD3E4 0x8D78
+0xD3E5 0x8DB5
+0xD3E6 0x8DB7
+0xD3E7 0x8DB6
+0xD3E8 0x8ED1
+0xD3E9 0x8ED3
+0xD3EA 0x8FFE
+0xD3EB 0x8FF5
+0xD3EC 0x9002
+0xD3ED 0x8FFF
+0xD3EE 0x8FFB
+0xD3EF 0x9004
+0xD3F0 0x8FFC
+0xD3F1 0x8FF6
+0xD3F2 0x90D6
+0xD3F3 0x90E0
+0xD3F4-0xD3F5 0x90D9
+0xD3F6 0x90E3
+0xD3F7 0x90DF
+0xD3F8 0x90E5
+0xD3F9 0x90D8
+0xD3FA 0x90DB
+0xD3FB 0x90D7
+0xD3FC 0x90DC
+0xD3FD 0x90E4
+0xD3FE 0x9150
+0xD440-0xD441 0x914E
+0xD442 0x91D5
+0xD443 0x91E2
+0xD444 0x91DA
+0xD445 0x965C
+0xD446 0x965F
+0xD447 0x96BC
+0xD448 0x98E3
+0xD449 0x9ADF
+0xD44A 0x9B2F
+0xD44B 0x4E7F
+0xD44C 0x5070
+0xD44D 0x506A
+0xD44E 0x5061
+0xD44F 0x505E
+0xD450 0x5060
+0xD451 0x5053
+0xD452 0x504B
+0xD453 0x505D
+0xD454 0x5072
+0xD455 0x5048
+0xD456 0x504D
+0xD457 0x5041
+0xD458 0x505B
+0xD459 0x504A
+0xD45A 0x5062
+0xD45B 0x5015
+0xD45C 0x5045
+0xD45D 0x505F
+0xD45E 0x5069
+0xD45F 0x506B
+0xD460-0xD461 0x5063
+0xD462 0x5046
+0xD463 0x5040
+0xD464 0x506E
+0xD465 0x5073
+0xD466 0x5057
+0xD467 0x5051
+0xD468 0x51D0
+0xD469 0x526B
+0xD46A 0x526D
+0xD46B 0x526C
+0xD46C 0x526E
+0xD46D 0x52D6
+0xD46E 0x52D3
+0xD46F 0x532D
+0xD470 0x539C
+0xD471-0xD472 0x5575
+0xD473 0x553C
+0xD474 0x554D
+0xD475 0x5550
+0xD476 0x5534
+0xD477 0x552A
+0xD478 0x5551
+0xD479 0x5562
+0xD47A 0x5536
+0xD47B 0x5535
+0xD47C 0x5530
+0xD47D 0x5552
+0xD47E 0x5545
+0xD4A1 0x550C
+0xD4A2 0x5532
+0xD4A3 0x5565
+0xD4A4 0x554E
+0xD4A5 0x5539
+0xD4A6 0x5548
+0xD4A7 0x552D
+0xD4A8 0x553B
+0xD4A9 0x5540
+0xD4AA 0x554B
+0xD4AB 0x570A
+0xD4AC 0x5707
+0xD4AD 0x57FB
+0xD4AE 0x5814
+0xD4AF 0x57E2
+0xD4B0 0x57F6
+0xD4B1 0x57DC
+0xD4B2 0x57F4
+0xD4B3 0x5800
+0xD4B4 0x57ED
+0xD4B5 0x57FD
+0xD4B6 0x5808
+0xD4B7 0x57F8
+0xD4B8 0x580B
+0xD4B9 0x57F3
+0xD4BA 0x57CF
+0xD4BB 0x5807
+0xD4BC 0x57EE
+0xD4BD 0x57E3
+0xD4BE 0x57F2
+0xD4BF 0x57E5
+0xD4C0 0x57EC
+0xD4C1 0x57E1
+0xD4C2 0x580E
+0xD4C3 0x57FC
+0xD4C4 0x5810
+0xD4C5 0x57E7
+0xD4C6 0x5801
+0xD4C7 0x580C
+0xD4C8 0x57F1
+0xD4C9 0x57E9
+0xD4CA 0x57F0
+0xD4CB 0x580D
+0xD4CC 0x5804
+0xD4CD 0x595C
+0xD4CE 0x5A60
+0xD4CF 0x5A58
+0xD4D0 0x5A55
+0xD4D1 0x5A67
+0xD4D2 0x5A5E
+0xD4D3 0x5A38
+0xD4D4 0x5A35
+0xD4D5 0x5A6D
+0xD4D6 0x5A50
+0xD4D7 0x5A5F
+0xD4D8 0x5A65
+0xD4D9 0x5A6C
+0xD4DA 0x5A53
+0xD4DB 0x5A64
+0xD4DC 0x5A57
+0xD4DD 0x5A43
+0xD4DE 0x5A5D
+0xD4DF 0x5A52
+0xD4E0 0x5A44
+0xD4E1 0x5A5B
+0xD4E2 0x5A48
+0xD4E3 0x5A8E
+0xD4E4 0x5A3E
+0xD4E5 0x5A4D
+0xD4E6 0x5A39
+0xD4E7 0x5A4C
+0xD4E8 0x5A70
+0xD4E9 0x5A69
+0xD4EA 0x5A47
+0xD4EB 0x5A51
+0xD4EC 0x5A56
+0xD4ED 0x5A42
+0xD4EE 0x5A5C
+0xD4EF 0x5B72
+0xD4F0 0x5B6E
+0xD4F1 0x5BC1
+0xD4F2 0x5BC0
+0xD4F3 0x5C59
+0xD4F4 0x5D1E
+0xD4F5 0x5D0B
+0xD4F6 0x5D1D
+0xD4F7 0x5D1A
+0xD4F8 0x5D20
+0xD4F9 0x5D0C
+0xD4FA 0x5D28
+0xD4FB 0x5D0D
+0xD4FC 0x5D26
+0xD4FD 0x5D25
+0xD4FE 0x5D0F
+0xD540 0x5D30
+0xD541 0x5D12
+0xD542 0x5D23
+0xD543 0x5D1F
+0xD544 0x5D2E
+0xD545 0x5E3E
+0xD546 0x5E34
+0xD547 0x5EB1
+0xD548 0x5EB4
+0xD549 0x5EB9
+0xD54A-0xD54B 0x5EB2
+0xD54C 0x5F36
+0xD54D 0x5F38
+0xD54E 0x5F9B
+0xD54F 0x5F96
+0xD550 0x5F9F
+0xD551 0x608A
+0xD552 0x6090
+0xD553 0x6086
+0xD554 0x60BE
+0xD555 0x60B0
+0xD556 0x60BA
+0xD557-0xD558 0x60D3
+0xD559 0x60CF
+0xD55A 0x60E4
+0xD55B 0x60D9
+0xD55C 0x60DD
+0xD55D 0x60C8
+0xD55E 0x60B1
+0xD55F 0x60DB
+0xD560 0x60B7
+0xD561 0x60CA
+0xD562 0x60BF
+0xD563 0x60C3
+0xD564 0x60CD
+0xD565 0x60C0
+0xD566 0x6332
+0xD567 0x6365
+0xD568 0x638A
+0xD569 0x6382
+0xD56A 0x637D
+0xD56B 0x63BD
+0xD56C 0x639E
+0xD56D 0x63AD
+0xD56E 0x639D
+0xD56F 0x6397
+0xD570 0x63AB
+0xD571 0x638E
+0xD572 0x636F
+0xD573 0x6387
+0xD574 0x6390
+0xD575 0x636E
+0xD576 0x63AF
+0xD577 0x6375
+0xD578 0x639C
+0xD579 0x636D
+0xD57A 0x63AE
+0xD57B 0x637C
+0xD57C 0x63A4
+0xD57D 0x633B
+0xD57E 0x639F
+0xD5A1 0x6378
+0xD5A2 0x6385
+0xD5A3 0x6381
+0xD5A4 0x6391
+0xD5A5 0x638D
+0xD5A6 0x6370
+0xD5A7 0x6553
+0xD5A8 0x65CD
+0xD5A9 0x6665
+0xD5AA 0x6661
+0xD5AB 0x665B
+0xD5AC 0x6659
+0xD5AD 0x665C
+0xD5AE 0x6662
+0xD5AF 0x6718
+0xD5B0 0x6879
+0xD5B1 0x6887
+0xD5B2 0x6890
+0xD5B3 0x689C
+0xD5B4-0xD5B5 0x686D
+0xD5B6 0x68AE
+0xD5B7 0x68AB
+0xD5B8 0x6956
+0xD5B9 0x686F
+0xD5BA 0x68A3
+0xD5BB 0x68AC
+0xD5BC 0x68A9
+0xD5BD 0x6875
+0xD5BE 0x6874
+0xD5BF 0x68B2
+0xD5C0 0x688F
+0xD5C1 0x6877
+0xD5C2 0x6892
+0xD5C3 0x687C
+0xD5C4 0x686B
+0xD5C5 0x6872
+0xD5C6 0x68AA
+0xD5C7 0x6880
+0xD5C8 0x6871
+0xD5C9 0x687E
+0xD5CA 0x689B
+0xD5CB 0x6896
+0xD5CC 0x688B
+0xD5CD 0x68A0
+0xD5CE 0x6889
+0xD5CF 0x68A4
+0xD5D0 0x6878
+0xD5D1 0x687B
+0xD5D2 0x6891
+0xD5D3 0x688C
+0xD5D4 0x688A
+0xD5D5 0x687D
+0xD5D6 0x6B36
+0xD5D7 0x6B33
+0xD5D8-0xD5D9 0x6B37
+0xD5DA 0x6B91
+0xD5DB 0x6B8F
+0xD5DC-0xD5DD 0x6B8D
+0xD5DE 0x6B8C
+0xD5DF 0x6C2A
+0xD5E0 0x6DC0
+0xD5E1 0x6DAB
+0xD5E2 0x6DB4
+0xD5E3 0x6DB3
+0xD5E4 0x6E74
+0xD5E5 0x6DAC
+0xD5E6 0x6DE9
+0xD5E7 0x6DE2
+0xD5E8 0x6DB7
+0xD5E9 0x6DF6
+0xD5EA 0x6DD4
+0xD5EB 0x6E00
+0xD5EC 0x6DC8
+0xD5ED 0x6DE0
+0xD5EE 0x6DDF
+0xD5EF 0x6DD6
+0xD5F0 0x6DBE
+0xD5F1 0x6DE5
+0xD5F2-0xD5F3 0x6DDC
+0xD5F4 0x6DDB
+0xD5F5 0x6DF4
+0xD5F6 0x6DCA
+0xD5F7 0x6DBD
+0xD5F8 0x6DED
+0xD5F9 0x6DF0
+0xD5FA 0x6DBA
+0xD5FB 0x6DD5
+0xD5FC 0x6DC2
+0xD5FD 0x6DCF
+0xD5FE 0x6DC9
+0xD640 0x6DD0
+0xD641 0x6DF2
+0xD642 0x6DD3
+0xD643 0x6DFD
+0xD644 0x6DD7
+0xD645 0x6DCD
+0xD646 0x6DE3
+0xD647 0x6DBB
+0xD648 0x70FA
+0xD649 0x710D
+0xD64A 0x70F7
+0xD64B 0x7117
+0xD64C 0x70F4
+0xD64D 0x710C
+0xD64E 0x70F0
+0xD64F 0x7104
+0xD650 0x70F3
+0xD651 0x7110
+0xD652 0x70FC
+0xD653 0x70FF
+0xD654 0x7106
+0xD655 0x7113
+0xD656 0x7100
+0xD657 0x70F8
+0xD658 0x70F6
+0xD659 0x710B
+0xD65A 0x7102
+0xD65B 0x710E
+0xD65C 0x727E
+0xD65D-0xD65E 0x727B
+0xD65F 0x727F
+0xD660 0x731D
+0xD661 0x7317
+0xD662 0x7307
+0xD663 0x7311
+0xD664 0x7318
+0xD665 0x730A
+0xD666 0x7308
+0xD667 0x72FF
+0xD668 0x730F
+0xD669 0x731E
+0xD66A 0x7388
+0xD66B 0x73F6
+0xD66C 0x73F8
+0xD66D 0x73F5
+0xD66E 0x7404
+0xD66F 0x7401
+0xD670 0x73FD
+0xD671 0x7407
+0xD672 0x7400
+0xD673 0x73FA
+0xD674 0x73FC
+0xD675 0x73FF
+0xD676 0x740C
+0xD677 0x740B
+0xD678 0x73F4
+0xD679 0x7408
+0xD67A 0x7564
+0xD67B 0x7563
+0xD67C 0x75CE
+0xD67D 0x75D2
+0xD67E 0x75CF
+0xD6A1-0xD6A2 0x75CB
+0xD6A3 0x75D1
+0xD6A4 0x75D0
+0xD6A5 0x768F
+0xD6A6 0x7689
+0xD6A7 0x76D3
+0xD6A8 0x7739
+0xD6A9 0x772F
+0xD6AA 0x772D
+0xD6AB-0xD6AC 0x7731
+0xD6AD 0x7734
+0xD6AE 0x7733
+0xD6AF 0x773D
+0xD6B0 0x7725
+0xD6B1 0x773B
+0xD6B2 0x7735
+0xD6B3 0x7848
+0xD6B4 0x7852
+0xD6B5 0x7849
+0xD6B6 0x784D
+0xD6B7 0x784A
+0xD6B8 0x784C
+0xD6B9 0x7826
+0xD6BA 0x7845
+0xD6BB 0x7850
+0xD6BC 0x7964
+0xD6BD 0x7967
+0xD6BE-0xD6BF 0x7969
+0xD6C0 0x7963
+0xD6C1 0x796B
+0xD6C2 0x7961
+0xD6C3 0x79BB
+0xD6C4 0x79FA
+0xD6C5 0x79F8
+0xD6C6-0xD6C7 0x79F6
+0xD6C8 0x7A8F
+0xD6C9 0x7A94
+0xD6CA 0x7A90
+0xD6CB 0x7B35
+0xD6CC 0x7B47
+0xD6CD 0x7B34
+0xD6CE 0x7B25
+0xD6CF 0x7B30
+0xD6D0 0x7B22
+0xD6D1 0x7B24
+0xD6D2 0x7B33
+0xD6D3 0x7B18
+0xD6D4 0x7B2A
+0xD6D5 0x7B1D
+0xD6D6 0x7B31
+0xD6D7 0x7B2B
+0xD6D8 0x7B2D
+0xD6D9 0x7B2F
+0xD6DA 0x7B32
+0xD6DB 0x7B38
+0xD6DC 0x7B1A
+0xD6DD 0x7B23
+0xD6DE 0x7C94
+0xD6DF 0x7C98
+0xD6E0 0x7C96
+0xD6E1 0x7CA3
+0xD6E2 0x7D35
+0xD6E3 0x7D3D
+0xD6E4 0x7D38
+0xD6E5 0x7D36
+0xD6E6 0x7D3A
+0xD6E7 0x7D45
+0xD6E8 0x7D2C
+0xD6E9 0x7D29
+0xD6EA 0x7D41
+0xD6EB 0x7D47
+0xD6EC-0xD6ED 0x7D3E
+0xD6EE 0x7D4A
+0xD6EF 0x7D3B
+0xD6F0 0x7D28
+0xD6F1 0x7F63
+0xD6F2 0x7F95
+0xD6F3-0xD6F4 0x7F9C
+0xD6F5 0x7F9B
+0xD6F6-0xD6F7 0x7FCA
+0xD6F8 0x7FCD
+0xD6F9-0xD6FA 0x7FD0
+0xD6FB 0x7FC7
+0xD6FC 0x7FCF
+0xD6FD 0x7FC9
+0xD6FE 0x801F
+0xD740 0x801E
+0xD741 0x801B
+0xD742 0x8047
+0xD743 0x8043
+0xD744 0x8048
+0xD745 0x8118
+0xD746 0x8125
+0xD747 0x8119
+0xD748 0x811B
+0xD749 0x812D
+0xD74A 0x811F
+0xD74B 0x812C
+0xD74C 0x811E
+0xD74D 0x8121
+0xD74E 0x8115
+0xD74F 0x8127
+0xD750 0x811D
+0xD751 0x8122
+0xD752 0x8211
+0xD753 0x8238
+0xD754 0x8233
+0xD755 0x823A
+0xD756 0x8234
+0xD757 0x8232
+0xD758 0x8274
+0xD759 0x8390
+0xD75A 0x83A3
+0xD75B 0x83A8
+0xD75C 0x838D
+0xD75D 0x837A
+0xD75E 0x8373
+0xD75F 0x83A4
+0xD760 0x8374
+0xD761 0x838F
+0xD762 0x8381
+0xD763 0x8395
+0xD764 0x8399
+0xD765 0x8375
+0xD766 0x8394
+0xD767 0x83A9
+0xD768 0x837D
+0xD769 0x8383
+0xD76A 0x838C
+0xD76B 0x839D
+0xD76C 0x839B
+0xD76D 0x83AA
+0xD76E 0x838B
+0xD76F 0x837E
+0xD770 0x83A5
+0xD771 0x83AF
+0xD772 0x8388
+0xD773 0x8397
+0xD774 0x83B0
+0xD775 0x837F
+0xD776 0x83A6
+0xD777 0x8387
+0xD778 0x83AE
+0xD779 0x8376
+0xD77A 0x839A
+0xD77B 0x8659
+0xD77C 0x8656
+0xD77D 0x86BF
+0xD77E 0x86B7
+0xD7A1 0x86C2
+0xD7A2 0x86C1
+0xD7A3 0x86C5
+0xD7A4 0x86BA
+0xD7A5 0x86B0
+0xD7A6 0x86C8
+0xD7A7 0x86B9
+0xD7A8 0x86B3
+0xD7A9 0x86B8
+0xD7AA 0x86CC
+0xD7AB 0x86B4
+0xD7AC-0xD7AD 0x86BB
+0xD7AE 0x86C3
+0xD7AF-0xD7B0 0x86BD
+0xD7B1 0x8852
+0xD7B2 0x8889
+0xD7B3 0x8895
+0xD7B4 0x88A8
+0xD7B5 0x88A2
+0xD7B6 0x88AA
+0xD7B7 0x889A
+0xD7B8 0x8891
+0xD7B9 0x88A1
+0xD7BA 0x889F
+0xD7BB 0x8898
+0xD7BC 0x88A7
+0xD7BD 0x8899
+0xD7BE 0x889B
+0xD7BF 0x8897
+0xD7C0 0x88A4
+0xD7C1 0x88AC
+0xD7C2 0x888C
+0xD7C3 0x8893
+0xD7C4 0x888E
+0xD7C5 0x8982
+0xD7C6 0x89D6
+0xD7C7 0x89D9
+0xD7C8 0x89D5
+0xD7C9 0x8A30
+0xD7CA 0x8A27
+0xD7CB 0x8A2C
+0xD7CC 0x8A1E
+0xD7CD 0x8C39
+0xD7CE 0x8C3B
+0xD7CF-0xD7D0 0x8C5C
+0xD7D1 0x8C7D
+0xD7D2 0x8CA5
+0xD7D3 0x8D7D
+0xD7D4 0x8D7B
+0xD7D5 0x8D79
+0xD7D6 0x8DBC
+0xD7D7 0x8DC2
+0xD7D8 0x8DB9
+0xD7D9 0x8DBF
+0xD7DA 0x8DC1
+0xD7DB 0x8ED8
+0xD7DC 0x8EDE
+0xD7DD 0x8EDD
+0xD7DE 0x8EDC
+0xD7DF 0x8ED7
+0xD7E0-0xD7E1 0x8EE0
+0xD7E2 0x9024
+0xD7E3 0x900B
+0xD7E4 0x9011
+0xD7E5 0x901C
+0xD7E6 0x900C
+0xD7E7 0x9021
+0xD7E8 0x90EF
+0xD7E9 0x90EA
+0xD7EA 0x90F0
+0xD7EB 0x90F4
+0xD7EC-0xD7ED 0x90F2
+0xD7EE 0x90D4
+0xD7EF-0xD7F0 0x90EB
+0xD7F1 0x90E9
+0xD7F2 0x9156
+0xD7F3 0x9158
+0xD7F4 0x915A
+0xD7F5 0x9153
+0xD7F6 0x9155
+0xD7F7 0x91EC
+0xD7F8 0x91F4
+0xD7F9 0x91F1
+0xD7FA 0x91F3
+0xD7FB 0x91F8
+0xD7FC 0x91E4
+0xD7FD 0x91F9
+0xD7FE 0x91EA
+0xD840 0x91EB
+0xD841 0x91F7
+0xD842 0x91E8
+0xD843 0x91EE
+0xD844 0x957A
+0xD845 0x9586
+0xD846 0x9588
+0xD847 0x967C
+0xD848 0x966D
+0xD849 0x966B
+0xD84A 0x9671
+0xD84B 0x966F
+0xD84C 0x96BF
+0xD84D 0x976A
+0xD84E 0x9804
+0xD84F 0x98E5
+0xD850 0x9997
+0xD851 0x509B
+0xD852 0x5095
+0xD853 0x5094
+0xD854 0x509E
+0xD855 0x508B
+0xD856 0x50A3
+0xD857 0x5083
+0xD858 0x508C
+0xD859 0x508E
+0xD85A 0x509D
+0xD85B 0x5068
+0xD85C 0x509C
+0xD85D 0x5092
+0xD85E 0x5082
+0xD85F 0x5087
+0xD860 0x515F
+0xD861 0x51D4
+0xD862 0x5312
+0xD863 0x5311
+0xD864 0x53A4
+0xD865 0x53A7
+0xD866 0x5591
+0xD867 0x55A8
+0xD868 0x55A5
+0xD869 0x55AD
+0xD86A 0x5577
+0xD86B 0x5645
+0xD86C 0x55A2
+0xD86D 0x5593
+0xD86E 0x5588
+0xD86F 0x558F
+0xD870 0x55B5
+0xD871 0x5581
+0xD872 0x55A3
+0xD873 0x5592
+0xD874 0x55A4
+0xD875 0x557D
+0xD876 0x558C
+0xD877 0x55A6
+0xD878 0x557F
+0xD879 0x5595
+0xD87A 0x55A1
+0xD87B 0x558E
+0xD87C 0x570C
+0xD87D 0x5829
+0xD87E 0x5837
+0xD8A1 0x5819
+0xD8A2 0x581E
+0xD8A3 0x5827
+0xD8A4 0x5823
+0xD8A5 0x5828
+0xD8A6 0x57F5
+0xD8A7 0x5848
+0xD8A8 0x5825
+0xD8A9 0x581C
+0xD8AA 0x581B
+0xD8AB 0x5833
+0xD8AC 0x583F
+0xD8AD 0x5836
+0xD8AE 0x582E
+0xD8AF 0x5839
+0xD8B0 0x5838
+0xD8B1 0x582D
+0xD8B2 0x582C
+0xD8B3 0x583B
+0xD8B4 0x5961
+0xD8B5 0x5AAF
+0xD8B6 0x5A94
+0xD8B7 0x5A9F
+0xD8B8 0x5A7A
+0xD8B9 0x5AA2
+0xD8BA 0x5A9E
+0xD8BB 0x5A78
+0xD8BC 0x5AA6
+0xD8BD 0x5A7C
+0xD8BE 0x5AA5
+0xD8BF 0x5AAC
+0xD8C0 0x5A95
+0xD8C1 0x5AAE
+0xD8C2 0x5A37
+0xD8C3 0x5A84
+0xD8C4 0x5A8A
+0xD8C5 0x5A97
+0xD8C6 0x5A83
+0xD8C7 0x5A8B
+0xD8C8 0x5AA9
+0xD8C9 0x5A7B
+0xD8CA 0x5A7D
+0xD8CB 0x5A8C
+0xD8CC 0x5A9C
+0xD8CD 0x5A8F
+0xD8CE 0x5A93
+0xD8CF 0x5A9D
+0xD8D0 0x5BEA
+0xD8D1 0x5BCD
+0xD8D2 0x5BCB
+0xD8D3 0x5BD4
+0xD8D4 0x5BD1
+0xD8D5 0x5BCA
+0xD8D6 0x5BCE
+0xD8D7 0x5C0C
+0xD8D8 0x5C30
+0xD8D9 0x5D37
+0xD8DA 0x5D43
+0xD8DB 0x5D6B
+0xD8DC 0x5D41
+0xD8DD 0x5D4B
+0xD8DE 0x5D3F
+0xD8DF 0x5D35
+0xD8E0 0x5D51
+0xD8E1 0x5D4E
+0xD8E2 0x5D55
+0xD8E3 0x5D33
+0xD8E4 0x5D3A
+0xD8E5 0x5D52
+0xD8E6 0x5D3D
+0xD8E7 0x5D31
+0xD8E8 0x5D59
+0xD8E9 0x5D42
+0xD8EA 0x5D39
+0xD8EB 0x5D49
+0xD8EC 0x5D38
+0xD8ED 0x5D3C
+0xD8EE 0x5D32
+0xD8EF 0x5D36
+0xD8F0 0x5D40
+0xD8F1 0x5D45
+0xD8F2 0x5E44
+0xD8F3 0x5E41
+0xD8F4 0x5F58
+0xD8F5 0x5FA6
+0xD8F6 0x5FA5
+0xD8F7 0x5FAB
+0xD8F8 0x60C9
+0xD8F9 0x60B9
+0xD8FA 0x60CC
+0xD8FB 0x60E2
+0xD8FC 0x60CE
+0xD8FD 0x60C4
+0xD8FE 0x6114
+0xD940 0x60F2
+0xD941 0x610A
+0xD942 0x6116
+0xD943 0x6105
+0xD944 0x60F5
+0xD945 0x6113
+0xD946 0x60F8
+0xD947 0x60FC
+0xD948 0x60FE
+0xD949 0x60C1
+0xD94A 0x6103
+0xD94B 0x6118
+0xD94C 0x611D
+0xD94D 0x6110
+0xD94E 0x60FF
+0xD94F 0x6104
+0xD950 0x610B
+0xD951 0x624A
+0xD952 0x6394
+0xD953 0x63B1
+0xD954 0x63B0
+0xD955 0x63CE
+0xD956 0x63E5
+0xD957 0x63E8
+0xD958 0x63EF
+0xD959 0x63C3
+0xD95A 0x649D
+0xD95B 0x63F3
+0xD95C 0x63CA
+0xD95D 0x63E0
+0xD95E 0x63F6
+0xD95F 0x63D5
+0xD960 0x63F2
+0xD961 0x63F5
+0xD962 0x6461
+0xD963 0x63DF
+0xD964 0x63BE
+0xD965 0x63DD
+0xD966 0x63DC
+0xD967 0x63C4
+0xD968 0x63D8
+0xD969 0x63D3
+0xD96A 0x63C2
+0xD96B 0x63C7
+0xD96C 0x63CC
+0xD96D 0x63CB
+0xD96E 0x63C8
+0xD96F 0x63F0
+0xD970 0x63D7
+0xD971 0x63D9
+0xD972 0x6532
+0xD973 0x6567
+0xD974 0x656A
+0xD975 0x6564
+0xD976 0x655C
+0xD977 0x6568
+0xD978 0x6565
+0xD979 0x658C
+0xD97A-0xD97B 0x659D
+0xD97C 0x65AE
+0xD97D 0x65D0
+0xD97E 0x65D2
+0xD9A1 0x667C
+0xD9A2 0x666C
+0xD9A3 0x667B
+0xD9A4 0x6680
+0xD9A5 0x6671
+0xD9A6 0x6679
+0xD9A7 0x666A
+0xD9A8 0x6672
+0xD9A9 0x6701
+0xD9AA 0x690C
+0xD9AB 0x68D3
+0xD9AC 0x6904
+0xD9AD 0x68DC
+0xD9AE 0x692A
+0xD9AF 0x68EC
+0xD9B0 0x68EA
+0xD9B1 0x68F1
+0xD9B2 0x690F
+0xD9B3 0x68D6
+0xD9B4 0x68F7
+0xD9B5 0x68EB
+0xD9B6 0x68E4
+0xD9B7 0x68F6
+0xD9B8 0x6913
+0xD9B9 0x6910
+0xD9BA 0x68F3
+0xD9BB 0x68E1
+0xD9BC 0x6907
+0xD9BD 0x68CC
+0xD9BE 0x6908
+0xD9BF 0x6970
+0xD9C0 0x68B4
+0xD9C1 0x6911
+0xD9C2 0x68EF
+0xD9C3 0x68C6
+0xD9C4 0x6914
+0xD9C5 0x68F8
+0xD9C6 0x68D0
+0xD9C7 0x68FD
+0xD9C8 0x68FC
+0xD9C9 0x68E8
+0xD9CA 0x690B
+0xD9CB 0x690A
+0xD9CC 0x6917
+0xD9CD 0x68CE
+0xD9CE 0x68C8
+0xD9CF-0xD9D0 0x68DD
+0xD9D1 0x68E6
+0xD9D2 0x68F4
+0xD9D3 0x68D1
+0xD9D4 0x6906
+0xD9D5 0x68D4
+0xD9D6 0x68E9
+0xD9D7 0x6915
+0xD9D8 0x6925
+0xD9D9 0x68C7
+0xD9DA 0x6B39
+0xD9DB 0x6B3B
+0xD9DC 0x6B3F
+0xD9DD 0x6B3C
+0xD9DE 0x6B94
+0xD9DF 0x6B97
+0xD9E0 0x6B99
+0xD9E1 0x6B95
+0xD9E2 0x6BBD
+0xD9E3 0x6BF0
+0xD9E4-0xD9E5 0x6BF2
+0xD9E6 0x6C30
+0xD9E7 0x6DFC
+0xD9E8-0xD9E9 0x6E46
+0xD9EA 0x6E1F
+0xD9EB 0x6E49
+0xD9EC 0x6E88
+0xD9ED-0xD9EE 0x6E3C
+0xD9EF 0x6E45
+0xD9F0 0x6E62
+0xD9F1 0x6E2B
+0xD9F2 0x6E3F
+0xD9F3 0x6E41
+0xD9F4 0x6E5D
+0xD9F5 0x6E73
+0xD9F6 0x6E1C
+0xD9F7 0x6E33
+0xD9F8 0x6E4B
+0xD9F9 0x6E40
+0xD9FA 0x6E51
+0xD9FB 0x6E3B
+0xD9FC 0x6E03
+0xD9FD 0x6E2E
+0xD9FE 0x6E5E
+0xDA40 0x6E68
+0xDA41 0x6E5C
+0xDA42 0x6E61
+0xDA43 0x6E31
+0xDA44 0x6E28
+0xDA45 0x6E60
+0xDA46 0x6E71
+0xDA47 0x6E6B
+0xDA48 0x6E39
+0xDA49 0x6E22
+0xDA4A 0x6E30
+0xDA4B 0x6E53
+0xDA4C 0x6E65
+0xDA4D 0x6E27
+0xDA4E 0x6E78
+0xDA4F 0x6E64
+0xDA50 0x6E77
+0xDA51 0x6E55
+0xDA52 0x6E79
+0xDA53 0x6E52
+0xDA54 0x6E66
+0xDA55-0xDA56 0x6E35
+0xDA57 0x6E5A
+0xDA58 0x7120
+0xDA59 0x711E
+0xDA5A 0x712F
+0xDA5B 0x70FB
+0xDA5C 0x712E
+0xDA5D 0x7131
+0xDA5E 0x7123
+0xDA5F 0x7125
+0xDA60 0x7122
+0xDA61 0x7132
+0xDA62 0x711F
+0xDA63 0x7128
+0xDA64 0x713A
+0xDA65 0x711B
+0xDA66 0x724B
+0xDA67 0x725A
+0xDA68-0xDA69 0x7288
+0xDA6A 0x7286
+0xDA6B 0x7285
+0xDA6C 0x728B
+0xDA6D 0x7312
+0xDA6E 0x730B
+0xDA6F 0x7330
+0xDA70 0x7322
+0xDA71 0x7331
+0xDA72 0x7333
+0xDA73 0x7327
+0xDA74 0x7332
+0xDA75 0x732D
+0xDA76 0x7326
+0xDA77 0x7323
+0xDA78 0x7335
+0xDA79 0x730C
+0xDA7A 0x742E
+0xDA7B 0x742C
+0xDA7C 0x7430
+0xDA7D 0x742B
+0xDA7E 0x7416
+0xDAA1 0x741A
+0xDAA2 0x7421
+0xDAA3 0x742D
+0xDAA4 0x7431
+0xDAA5 0x7424
+0xDAA6 0x7423
+0xDAA7 0x741D
+0xDAA8 0x7429
+0xDAA9 0x7420
+0xDAAA 0x7432
+0xDAAB 0x74FB
+0xDAAC 0x752F
+0xDAAD 0x756F
+0xDAAE 0x756C
+0xDAAF 0x75E7
+0xDAB0 0x75DA
+0xDAB1 0x75E1
+0xDAB2 0x75E6
+0xDAB3 0x75DD
+0xDAB4 0x75DF
+0xDAB5 0x75E4
+0xDAB6 0x75D7
+0xDAB7 0x7695
+0xDAB8 0x7692
+0xDAB9 0x76DA
+0xDABA-0xDABB 0x7746
+0xDABC 0x7744
+0xDABD 0x774D
+0xDABE 0x7745
+0xDABF 0x774A
+0xDAC0 0x774E
+0xDAC1-0xDAC2 0x774B
+0xDAC3 0x77DE
+0xDAC4 0x77EC
+0xDAC5 0x7860
+0xDAC6-0xDAC7 0x7864
+0xDAC8 0x785C
+0xDAC9 0x786D
+0xDACA 0x7871
+0xDACB 0x786A
+0xDACC 0x786E
+0xDACD 0x7870
+0xDACE 0x7869
+0xDACF 0x7868
+0xDAD0 0x785E
+0xDAD1 0x7862
+0xDAD2 0x7974
+0xDAD3 0x7973
+0xDAD4 0x7972
+0xDAD5 0x7970
+0xDAD6 0x7A02
+0xDAD7 0x7A0A
+0xDAD8 0x7A03
+0xDAD9 0x7A0C
+0xDADA 0x7A04
+0xDADB 0x7A99
+0xDADC 0x7AE6
+0xDADD 0x7AE4
+0xDADE 0x7B4A
+0xDADF 0x7B3B
+0xDAE0 0x7B44
+0xDAE1 0x7B48
+0xDAE2 0x7B4C
+0xDAE3 0x7B4E
+0xDAE4 0x7B40
+0xDAE5 0x7B58
+0xDAE6 0x7B45
+0xDAE7 0x7CA2
+0xDAE8 0x7C9E
+0xDAE9 0x7CA8
+0xDAEA 0x7CA1
+0xDAEB 0x7D58
+0xDAEC 0x7D6F
+0xDAED 0x7D63
+0xDAEE 0x7D53
+0xDAEF 0x7D56
+0xDAF0 0x7D67
+0xDAF1 0x7D6A
+0xDAF2 0x7D4F
+0xDAF3 0x7D6D
+0xDAF4 0x7D5C
+0xDAF5 0x7D6B
+0xDAF6 0x7D52
+0xDAF7 0x7D54
+0xDAF8 0x7D69
+0xDAF9 0x7D51
+0xDAFA 0x7D5F
+0xDAFB 0x7D4E
+0xDAFC-0xDAFD 0x7F3E
+0xDAFE 0x7F65
+0xDB40 0x7F66
+0xDB41 0x7FA2
+0xDB42-0xDB43 0x7FA0
+0xDB44 0x7FD7
+0xDB45 0x8051
+0xDB46-0xDB47 0x804F
+0xDB48 0x80FE
+0xDB49 0x80D4
+0xDB4A 0x8143
+0xDB4B 0x814A
+0xDB4C 0x8152
+0xDB4D 0x814F
+0xDB4E 0x8147
+0xDB4F 0x813D
+0xDB50 0x814D
+0xDB51 0x813A
+0xDB52 0x81E6
+0xDB53 0x81EE
+0xDB54-0xDB56 0x81F7
+0xDB57 0x8204
+0xDB58-0xDB59 0x823C
+0xDB5A 0x823F
+0xDB5B 0x8275
+0xDB5C 0x833B
+0xDB5D 0x83CF
+0xDB5E 0x83F9
+0xDB5F 0x8423
+0xDB60 0x83C0
+0xDB61 0x83E8
+0xDB62 0x8412
+0xDB63 0x83E7
+0xDB64 0x83E4
+0xDB65 0x83FC
+0xDB66 0x83F6
+0xDB67 0x8410
+0xDB68 0x83C6
+0xDB69 0x83C8
+0xDB6A 0x83EB
+0xDB6B 0x83E3
+0xDB6C 0x83BF
+0xDB6D 0x8401
+0xDB6E 0x83DD
+0xDB6F 0x83E5
+0xDB70 0x83D8
+0xDB71 0x83FF
+0xDB72 0x83E1
+0xDB73 0x83CB
+0xDB74 0x83CE
+0xDB75 0x83D6
+0xDB76 0x83F5
+0xDB77 0x83C9
+0xDB78 0x8409
+0xDB79 0x840F
+0xDB7A 0x83DE
+0xDB7B 0x8411
+0xDB7C 0x8406
+0xDB7D 0x83C2
+0xDB7E 0x83F3
+0xDBA1 0x83D5
+0xDBA2 0x83FA
+0xDBA3 0x83C7
+0xDBA4 0x83D1
+0xDBA5 0x83EA
+0xDBA6 0x8413
+0xDBA7 0x83C3
+0xDBA8 0x83EC
+0xDBA9 0x83EE
+0xDBAA 0x83C4
+0xDBAB 0x83FB
+0xDBAC 0x83D7
+0xDBAD 0x83E2
+0xDBAE 0x841B
+0xDBAF 0x83DB
+0xDBB0 0x83FE
+0xDBB1 0x86D8
+0xDBB2 0x86E2
+0xDBB3 0x86E6
+0xDBB4 0x86D3
+0xDBB5 0x86E3
+0xDBB6 0x86DA
+0xDBB7 0x86EA
+0xDBB8 0x86DD
+0xDBB9 0x86EB
+0xDBBA 0x86DC
+0xDBBB 0x86EC
+0xDBBC 0x86E9
+0xDBBD 0x86D7
+0xDBBE 0x86E8
+0xDBBF 0x86D1
+0xDBC0 0x8848
+0xDBC1 0x8856
+0xDBC2 0x8855
+0xDBC3 0x88BA
+0xDBC4 0x88D7
+0xDBC5 0x88B9
+0xDBC6 0x88B8
+0xDBC7 0x88C0
+0xDBC8 0x88BE
+0xDBC9 0x88B6
+0xDBCA 0x88BC
+0xDBCB 0x88B7
+0xDBCC 0x88BD
+0xDBCD 0x88B2
+0xDBCE 0x8901
+0xDBCF 0x88C9
+0xDBD0 0x8995
+0xDBD1 0x8998
+0xDBD2 0x8997
+0xDBD3 0x89DD
+0xDBD4-0xDBD5 0x89DA
+0xDBD6 0x8A4E
+0xDBD7 0x8A4D
+0xDBD8 0x8A39
+0xDBD9 0x8A59
+0xDBDA 0x8A40
+0xDBDB-0xDBDC 0x8A57
+0xDBDD-0xDBDE 0x8A44
+0xDBDF 0x8A52
+0xDBE0 0x8A48
+0xDBE1 0x8A51
+0xDBE2 0x8A4A
+0xDBE3 0x8A4C
+0xDBE4 0x8A4F
+0xDBE5 0x8C5F
+0xDBE6 0x8C81
+0xDBE7 0x8C80
+0xDBE8 0x8CBA
+0xDBE9 0x8CBE
+0xDBEA 0x8CB0
+0xDBEB 0x8CB9
+0xDBEC 0x8CB5
+0xDBED 0x8D84
+0xDBEE 0x8D80
+0xDBEF 0x8D89
+0xDBF0 0x8DD8
+0xDBF1 0x8DD3
+0xDBF2 0x8DCD
+0xDBF3 0x8DC7
+0xDBF4 0x8DD6
+0xDBF5 0x8DDC
+0xDBF6 0x8DCF
+0xDBF7 0x8DD5
+0xDBF8 0x8DD9
+0xDBF9 0x8DC8
+0xDBFA 0x8DD7
+0xDBFB 0x8DC5
+0xDBFC 0x8EEF
+0xDBFD 0x8EF7
+0xDBFE 0x8EFA
+0xDC40 0x8EF9
+0xDC41 0x8EE6
+0xDC42 0x8EEE
+0xDC43 0x8EE5
+0xDC44 0x8EF5
+0xDC45-0xDC46 0x8EE7
+0xDC47 0x8EF6
+0xDC48 0x8EEB
+0xDC49 0x8EF1
+0xDC4A 0x8EEC
+0xDC4B 0x8EF4
+0xDC4C 0x8EE9
+0xDC4D 0x902D
+0xDC4E 0x9034
+0xDC4F 0x902F
+0xDC50 0x9106
+0xDC51 0x912C
+0xDC52 0x9104
+0xDC53 0x90FF
+0xDC54 0x90FC
+0xDC55 0x9108
+0xDC56 0x90F9
+0xDC57 0x90FB
+0xDC58 0x9101
+0xDC59 0x9100
+0xDC5A 0x9107
+0xDC5B 0x9105
+0xDC5C 0x9103
+0xDC5D 0x9161
+0xDC5E 0x9164
+0xDC5F 0x915F
+0xDC60 0x9162
+0xDC61 0x9160
+0xDC62 0x9201
+0xDC63 0x920A
+0xDC64 0x9225
+0xDC65 0x9203
+0xDC66 0x921A
+0xDC67 0x9226
+0xDC68 0x920F
+0xDC69 0x920C
+0xDC6A 0x9200
+0xDC6B 0x9212
+0xDC6C 0x91FF
+0xDC6D 0x91FD
+0xDC6E 0x9206
+0xDC6F 0x9204
+0xDC70 0x9227
+0xDC71 0x9202
+0xDC72 0x921C
+0xDC73 0x9224
+0xDC74 0x9219
+0xDC75 0x9217
+0xDC76 0x9205
+0xDC77 0x9216
+0xDC78 0x957B
+0xDC79 0x958D
+0xDC7A 0x958C
+0xDC7B 0x9590
+0xDC7C 0x9687
+0xDC7D 0x967E
+0xDC7E 0x9688
+0xDCA1 0x9689
+0xDCA2 0x9683
+0xDCA3 0x9680
+0xDCA4 0x96C2
+0xDCA5 0x96C8
+0xDCA6 0x96C3
+0xDCA7 0x96F1
+0xDCA8 0x96F0
+0xDCA9 0x976C
+0xDCAA 0x9770
+0xDCAB 0x976E
+0xDCAC 0x9807
+0xDCAD 0x98A9
+0xDCAE 0x98EB
+0xDCAF 0x9CE6
+0xDCB0 0x9EF9
+0xDCB1-0xDCB2 0x4E83
+0xDCB3 0x4EB6
+0xDCB4 0x50BD
+0xDCB5 0x50BF
+0xDCB6 0x50C6
+0xDCB7 0x50AE
+0xDCB8 0x50C4
+0xDCB9 0x50CA
+0xDCBA 0x50B4
+0xDCBB 0x50C8
+0xDCBC 0x50C2
+0xDCBD 0x50B0
+0xDCBE 0x50C1
+0xDCBF 0x50BA
+0xDCC0 0x50B1
+0xDCC1 0x50CB
+0xDCC2 0x50C9
+0xDCC3 0x50B6
+0xDCC4 0x50B8
+0xDCC5 0x51D7
+0xDCC6 0x527A
+0xDCC7 0x5278
+0xDCC8-0xDCC9 0x527B
+0xDCCA 0x55C3
+0xDCCB 0x55DB
+0xDCCC 0x55CC
+0xDCCD 0x55D0
+0xDCCE 0x55CB
+0xDCCF 0x55CA
+0xDCD0 0x55DD
+0xDCD1 0x55C0
+0xDCD2 0x55D4
+0xDCD3 0x55C4
+0xDCD4 0x55E9
+0xDCD5 0x55BF
+0xDCD6 0x55D2
+0xDCD7 0x558D
+0xDCD8 0x55CF
+0xDCD9 0x55D5
+0xDCDA 0x55E2
+0xDCDB 0x55D6
+0xDCDC 0x55C8
+0xDCDD 0x55F2
+0xDCDE 0x55CD
+0xDCDF 0x55D9
+0xDCE0 0x55C2
+0xDCE1 0x5714
+0xDCE2 0x5853
+0xDCE3 0x5868
+0xDCE4 0x5864
+0xDCE5 0x584F
+0xDCE6 0x584D
+0xDCE7 0x5849
+0xDCE8 0x586F
+0xDCE9 0x5855
+0xDCEA 0x584E
+0xDCEB 0x585D
+0xDCEC 0x5859
+0xDCED 0x5865
+0xDCEE 0x585B
+0xDCEF 0x583D
+0xDCF0 0x5863
+0xDCF1 0x5871
+0xDCF2 0x58FC
+0xDCF3 0x5AC7
+0xDCF4 0x5AC4
+0xDCF5 0x5ACB
+0xDCF6 0x5ABA
+0xDCF7 0x5AB8
+0xDCF8 0x5AB1
+0xDCF9 0x5AB5
+0xDCFA 0x5AB0
+0xDCFB 0x5ABF
+0xDCFC 0x5AC8
+0xDCFD 0x5ABB
+0xDCFE 0x5AC6
+0xDD40 0x5AB7
+0xDD41 0x5AC0
+0xDD42 0x5ACA
+0xDD43 0x5AB4
+0xDD44 0x5AB6
+0xDD45 0x5ACD
+0xDD46 0x5AB9
+0xDD47 0x5A90
+0xDD48 0x5BD6
+0xDD49-0xDD4A 0x5BD8
+0xDD4B 0x5C1F
+0xDD4C 0x5C33
+0xDD4D 0x5D71
+0xDD4E 0x5D63
+0xDD4F 0x5D4A
+0xDD50 0x5D65
+0xDD51 0x5D72
+0xDD52 0x5D6C
+0xDD53 0x5D5E
+0xDD54 0x5D68
+0xDD55 0x5D67
+0xDD56 0x5D62
+0xDD57 0x5DF0
+0xDD58 0x5E4F
+0xDD59 0x5E4E
+0xDD5A 0x5E4A
+0xDD5B 0x5E4D
+0xDD5C 0x5E4B
+0xDD5D 0x5EC5
+0xDD5E 0x5ECC
+0xDD5F 0x5EC6
+0xDD60 0x5ECB
+0xDD61 0x5EC7
+0xDD62 0x5F40
+0xDD63 0x5FAF
+0xDD64 0x5FAD
+0xDD65 0x60F7
+0xDD66-0xDD67 0x6149
+0xDD68 0x612B
+0xDD69 0x6145
+0xDD6A 0x6136
+0xDD6B 0x6132
+0xDD6C 0x612E
+0xDD6D 0x6146
+0xDD6E 0x612F
+0xDD6F 0x614F
+0xDD70 0x6129
+0xDD71 0x6140
+0xDD72 0x6220
+0xDD73 0x9168
+0xDD74 0x6223
+0xDD75 0x6225
+0xDD76 0x6224
+0xDD77 0x63C5
+0xDD78 0x63F1
+0xDD79 0x63EB
+0xDD7A 0x6410
+0xDD7B 0x6412
+0xDD7C 0x6409
+0xDD7D 0x6420
+0xDD7E 0x6424
+0xDDA1 0x6433
+0xDDA2 0x6443
+0xDDA3 0x641F
+0xDDA4 0x6415
+0xDDA5 0x6418
+0xDDA6 0x6439
+0xDDA7 0x6437
+0xDDA8-0xDDA9 0x6422
+0xDDAA 0x640C
+0xDDAB 0x6426
+0xDDAC 0x6430
+0xDDAD 0x6428
+0xDDAE 0x6441
+0xDDAF 0x6435
+0xDDB0 0x642F
+0xDDB1 0x640A
+0xDDB2 0x641A
+0xDDB3 0x6440
+0xDDB4 0x6425
+0xDDB5 0x6427
+0xDDB6 0x640B
+0xDDB7 0x63E7
+0xDDB8 0x641B
+0xDDB9 0x642E
+0xDDBA 0x6421
+0xDDBB 0x640E
+0xDDBC 0x656F
+0xDDBD 0x6592
+0xDDBE 0x65D3
+0xDDBF 0x6686
+0xDDC0 0x668C
+0xDDC1 0x6695
+0xDDC2 0x6690
+0xDDC3 0x668B
+0xDDC4 0x668A
+0xDDC5 0x6699
+0xDDC6 0x6694
+0xDDC7 0x6678
+0xDDC8 0x6720
+0xDDC9 0x6966
+0xDDCA 0x695F
+0xDDCB 0x6938
+0xDDCC 0x694E
+0xDDCD 0x6962
+0xDDCE 0x6971
+0xDDCF 0x693F
+0xDDD0 0x6945
+0xDDD1 0x696A
+0xDDD2 0x6939
+0xDDD3 0x6942
+0xDDD4 0x6957
+0xDDD5 0x6959
+0xDDD6 0x697A
+0xDDD7-0xDDD8 0x6948
+0xDDD9 0x6935
+0xDDDA 0x696C
+0xDDDB 0x6933
+0xDDDC 0x693D
+0xDDDD 0x6965
+0xDDDE 0x68F0
+0xDDDF 0x6978
+0xDDE0 0x6934
+0xDDE1 0x6969
+0xDDE2 0x6940
+0xDDE3 0x696F
+0xDDE4 0x6944
+0xDDE5 0x6976
+0xDDE6 0x6958
+0xDDE7 0x6941
+0xDDE8 0x6974
+0xDDE9 0x694C
+0xDDEA 0x693B
+0xDDEB 0x694B
+0xDDEC 0x6937
+0xDDED 0x695C
+0xDDEE 0x694F
+0xDDEF 0x6951
+0xDDF0 0x6932
+0xDDF1 0x6952
+0xDDF2 0x692F
+0xDDF3 0x697B
+0xDDF4 0x693C
+0xDDF5 0x6B46
+0xDDF6 0x6B45
+0xDDF7 0x6B43
+0xDDF8 0x6B42
+0xDDF9 0x6B48
+0xDDFA 0x6B41
+0xDDFB 0x6B9B
+0xDDFC 0xFA0D
+0xDDFD-0xDDFE 0x6BFB
+0xDE40 0x6BF9
+0xDE41-0xDE42 0x6BF7
+0xDE43 0x6E9B
+0xDE44 0x6ED6
+0xDE45 0x6EC8
+0xDE46 0x6E8F
+0xDE47 0x6EC0
+0xDE48 0x6E9F
+0xDE49-0xDE4A 0x6E93
+0xDE4B 0x6EA0
+0xDE4C 0x6EB1
+0xDE4D 0x6EB9
+0xDE4E 0x6EC6
+0xDE4F 0x6ED2
+0xDE50 0x6EBD
+0xDE51 0x6EC1
+0xDE52 0x6E9E
+0xDE53 0x6EC9
+0xDE54 0x6EB7
+0xDE55 0x6EB0
+0xDE56 0x6ECD
+0xDE57 0x6EA6
+0xDE58 0x6ECF
+0xDE59 0x6EB2
+0xDE5A 0x6EBE
+0xDE5B 0x6EC3
+0xDE5C 0x6EDC
+0xDE5D 0x6ED8
+0xDE5E 0x6E99
+0xDE5F 0x6E92
+0xDE60 0x6E8E
+0xDE61 0x6E8D
+0xDE62 0x6EA4
+0xDE63 0x6EA1
+0xDE64 0x6EBF
+0xDE65 0x6EB3
+0xDE66 0x6ED0
+0xDE67 0x6ECA
+0xDE68 0x6E97
+0xDE69 0x6EAE
+0xDE6A 0x6EA3
+0xDE6B 0x7147
+0xDE6C 0x7154
+0xDE6D 0x7152
+0xDE6E 0x7163
+0xDE6F 0x7160
+0xDE70 0x7141
+0xDE71 0x715D
+0xDE72 0x7162
+0xDE73 0x7172
+0xDE74 0x7178
+0xDE75 0x716A
+0xDE76 0x7161
+0xDE77 0x7142
+0xDE78 0x7158
+0xDE79 0x7143
+0xDE7A 0x714B
+0xDE7B 0x7170
+0xDE7C 0x715F
+0xDE7D 0x7150
+0xDE7E 0x7153
+0xDEA1 0x7144
+0xDEA2 0x714D
+0xDEA3 0x715A
+0xDEA4 0x724F
+0xDEA5 0x728D
+0xDEA6 0x728C
+0xDEA7 0x7291
+0xDEA8 0x7290
+0xDEA9 0x728E
+0xDEAA 0x733C
+0xDEAB 0x7342
+0xDEAC 0x733B
+0xDEAD 0x733A
+0xDEAE 0x7340
+0xDEAF 0x734A
+0xDEB0 0x7349
+0xDEB1 0x7444
+0xDEB2-0xDEB3 0x744A
+0xDEB4 0x7452
+0xDEB5 0x7451
+0xDEB6 0x7457
+0xDEB7 0x7440
+0xDEB8-0xDEB9 0x744F
+0xDEBA 0x744E
+0xDEBB 0x7442
+0xDEBC 0x7446
+0xDEBD 0x744D
+0xDEBE 0x7454
+0xDEBF 0x74E1
+0xDEC0 0x74FF
+0xDEC1 0x74FE
+0xDEC2 0x74FD
+0xDEC3 0x751D
+0xDEC4 0x7579
+0xDEC5 0x7577
+0xDEC6 0x6983
+0xDEC7 0x75EF
+0xDEC8 0x760F
+0xDEC9 0x7603
+0xDECA 0x75F7
+0xDECB 0x75FE
+0xDECC 0x75FC
+0xDECD 0x75F9
+0xDECE 0x75F8
+0xDECF 0x7610
+0xDED0 0x75FB
+0xDED1 0x75F6
+0xDED2 0x75ED
+0xDED3 0x75F5
+0xDED4 0x75FD
+0xDED5 0x7699
+0xDED6 0x76B5
+0xDED7 0x76DD
+0xDED8 0x7755
+0xDED9-0xDEDA 0x775F
+0xDEDB 0x7752
+0xDEDC 0x7756
+0xDEDD 0x775A
+0xDEDE 0x7769
+0xDEDF 0x7767
+0xDEE0 0x7754
+0xDEE1 0x7759
+0xDEE2 0x776D
+0xDEE3 0x77E0
+0xDEE4 0x7887
+0xDEE5 0x789A
+0xDEE6 0x7894
+0xDEE7 0x788F
+0xDEE8 0x7884
+0xDEE9 0x7895
+0xDEEA-0xDEEB 0x7885
+0xDEEC 0x78A1
+0xDEED 0x7883
+0xDEEE 0x7879
+0xDEEF 0x7899
+0xDEF0 0x7880
+0xDEF1 0x7896
+0xDEF2 0x787B
+0xDEF3 0x797C
+0xDEF4 0x7982
+0xDEF5 0x797D
+0xDEF6 0x7979
+0xDEF7 0x7A11
+0xDEF8-0xDEF9 0x7A18
+0xDEFA 0x7A12
+0xDEFB 0x7A17
+0xDEFC 0x7A15
+0xDEFD 0x7A22
+0xDEFE 0x7A13
+0xDF40 0x7A1B
+0xDF41 0x7A10
+0xDF42 0x7AA3
+0xDF43 0x7AA2
+0xDF44 0x7A9E
+0xDF45 0x7AEB
+0xDF46 0x7B66
+0xDF47 0x7B64
+0xDF48 0x7B6D
+0xDF49 0x7B74
+0xDF4A 0x7B69
+0xDF4B 0x7B72
+0xDF4C 0x7B65
+0xDF4D 0x7B73
+0xDF4E 0x7B71
+0xDF4F 0x7B70
+0xDF50 0x7B61
+0xDF51 0x7B78
+0xDF52 0x7B76
+0xDF53 0x7B63
+0xDF54 0x7CB2
+0xDF55 0x7CB4
+0xDF56 0x7CAF
+0xDF57 0x7D88
+0xDF58 0x7D86
+0xDF59 0x7D80
+0xDF5A 0x7D8D
+0xDF5B 0x7D7F
+0xDF5C 0x7D85
+0xDF5D 0x7D7A
+0xDF5E 0x7D8E
+0xDF5F 0x7D7B
+0xDF60 0x7D83
+0xDF61 0x7D7C
+0xDF62 0x7D8C
+0xDF63 0x7D94
+0xDF64 0x7D84
+0xDF65 0x7D7D
+0xDF66 0x7D92
+0xDF67 0x7F6D
+0xDF68 0x7F6B
+0xDF69-0xDF6A 0x7F67
+0xDF6B 0x7F6C
+0xDF6C 0x7FA6
+0xDF6D 0x7FA5
+0xDF6E 0x7FA7
+0xDF6F-0xDF70 0x7FDB
+0xDF71 0x8021
+0xDF72 0x8164
+0xDF73 0x8160
+0xDF74 0x8177
+0xDF75 0x815C
+0xDF76 0x8169
+0xDF77 0x815B
+0xDF78 0x8162
+0xDF79 0x8172
+0xDF7A 0x6721
+0xDF7B 0x815E
+0xDF7C 0x8176
+0xDF7D 0x8167
+0xDF7E 0x816F
+0xDFA1 0x8144
+0xDFA2 0x8161
+0xDFA3 0x821D
+0xDFA4 0x8249
+0xDFA5 0x8244
+0xDFA6 0x8240
+0xDFA7 0x8242
+0xDFA8 0x8245
+0xDFA9 0x84F1
+0xDFAA 0x843F
+0xDFAB 0x8456
+0xDFAC 0x8476
+0xDFAD 0x8479
+0xDFAE 0x848F
+0xDFAF 0x848D
+0xDFB0 0x8465
+0xDFB1 0x8451
+0xDFB2 0x8440
+0xDFB3 0x8486
+0xDFB4 0x8467
+0xDFB5 0x8430
+0xDFB6 0x844D
+0xDFB7 0x847D
+0xDFB8 0x845A
+0xDFB9 0x8459
+0xDFBA 0x8474
+0xDFBB 0x8473
+0xDFBC 0x845D
+0xDFBD 0x8507
+0xDFBE 0x845E
+0xDFBF 0x8437
+0xDFC0 0x843A
+0xDFC1 0x8434
+0xDFC2 0x847A
+0xDFC3 0x8443
+0xDFC4 0x8478
+0xDFC5 0x8432
+0xDFC6 0x8445
+0xDFC7 0x8429
+0xDFC8 0x83D9
+0xDFC9 0x844B
+0xDFCA 0x842F
+0xDFCB 0x8442
+0xDFCC 0x842D
+0xDFCD 0x845F
+0xDFCE 0x8470
+0xDFCF 0x8439
+0xDFD0 0x844E
+0xDFD1 0x844C
+0xDFD2 0x8452
+0xDFD3 0x846F
+0xDFD4 0x84C5
+0xDFD5 0x848E
+0xDFD6 0x843B
+0xDFD7 0x8447
+0xDFD8 0x8436
+0xDFD9 0x8433
+0xDFDA 0x8468
+0xDFDB 0x847E
+0xDFDC 0x8444
+0xDFDD 0x842B
+0xDFDE 0x8460
+0xDFDF 0x8454
+0xDFE0 0x846E
+0xDFE1 0x8450
+0xDFE2 0x870B
+0xDFE3 0x8704
+0xDFE4 0x86F7
+0xDFE5 0x870C
+0xDFE6 0x86FA
+0xDFE7 0x86D6
+0xDFE8 0x86F5
+0xDFE9 0x874D
+0xDFEA 0x86F8
+0xDFEB 0x870E
+0xDFEC 0x8709
+0xDFED 0x8701
+0xDFEE 0x86F6
+0xDFEF 0x870D
+0xDFF0 0x8705
+0xDFF1 0x88D6
+0xDFF2 0x88CB
+0xDFF3-0xDFF4 0x88CD
+0xDFF5 0x88DE
+0xDFF6 0x88DB
+0xDFF7 0x88DA
+0xDFF8 0x88CC
+0xDFF9 0x88D0
+0xDFFA 0x8985
+0xDFFB 0x899B
+0xDFFC 0x89DF
+0xDFFD 0x89E5
+0xDFFE 0x89E4
+0xE040 0x89E1
+0xE041 0x89E0
+0xE042 0x89E2
+0xE043 0x89DC
+0xE044 0x89E6
+0xE045 0x8A76
+0xE046 0x8A86
+0xE047 0x8A7F
+0xE048 0x8A61
+0xE049 0x8A3F
+0xE04A 0x8A77
+0xE04B 0x8A82
+0xE04C 0x8A84
+0xE04D 0x8A75
+0xE04E 0x8A83
+0xE04F 0x8A81
+0xE050 0x8A74
+0xE051 0x8A7A
+0xE052 0x8C3C
+0xE053 0x8C4B
+0xE054 0x8C4A
+0xE055 0x8C65
+0xE056 0x8C64
+0xE057 0x8C66
+0xE058 0x8C86
+0xE059-0xE05A 0x8C84
+0xE05B 0x8CCC
+0xE05C-0xE05D 0x8D68
+0xE05E 0x8D91
+0xE05F 0x8D8C
+0xE060-0xE061 0x8D8E
+0xE062 0x8D8D
+0xE063-0xE064 0x8D93
+0xE065 0x8D90
+0xE066 0x8D92
+0xE067 0x8DF0
+0xE068 0x8DE0
+0xE069 0x8DEC
+0xE06A 0x8DF1
+0xE06B 0x8DEE
+0xE06C 0x8DD0
+0xE06D 0x8DE9
+0xE06E 0x8DE3
+0xE06F 0x8DE2
+0xE070 0x8DE7
+0xE071 0x8DF2
+0xE072 0x8DEB
+0xE073 0x8DF4
+0xE074 0x8F06
+0xE075 0x8EFF
+0xE076 0x8F01
+0xE077 0x8F00
+0xE078 0x8F05
+0xE079-0xE07A 0x8F07
+0xE07B 0x8F02
+0xE07C 0x8F0B
+0xE07D 0x9052
+0xE07E 0x903F
+0xE0A1 0x9044
+0xE0A2 0x9049
+0xE0A3 0x903D
+0xE0A4 0x9110
+0xE0A5 0x910D
+0xE0A6 0x910F
+0xE0A7 0x9111
+0xE0A8 0x9116
+0xE0A9 0x9114
+0xE0AA 0x910B
+0xE0AB 0x910E
+0xE0AC-0xE0AD 0x916E
+0xE0AE 0x9248
+0xE0AF 0x9252
+0xE0B0 0x9230
+0xE0B1 0x923A
+0xE0B2 0x9266
+0xE0B3 0x9233
+0xE0B4 0x9265
+0xE0B5 0x925E
+0xE0B6 0x9283
+0xE0B7 0x922E
+0xE0B8 0x924A
+0xE0B9 0x9246
+0xE0BA 0x926D
+0xE0BB 0x926C
+0xE0BC 0x924F
+0xE0BD 0x9260
+0xE0BE 0x9267
+0xE0BF 0x926F
+0xE0C0 0x9236
+0xE0C1 0x9261
+0xE0C2 0x9270
+0xE0C3 0x9231
+0xE0C4 0x9254
+0xE0C5 0x9263
+0xE0C6 0x9250
+0xE0C7 0x9272
+0xE0C8 0x924E
+0xE0C9 0x9253
+0xE0CA 0x924C
+0xE0CB 0x9256
+0xE0CC 0x9232
+0xE0CD 0x959F
+0xE0CE 0x959C
+0xE0CF 0x959E
+0xE0D0 0x959B
+0xE0D1-0xE0D2 0x9692
+0xE0D3 0x9691
+0xE0D4 0x9697
+0xE0D5 0x96CE
+0xE0D6 0x96FA
+0xE0D7 0x96FD
+0xE0D8 0x96F8
+0xE0D9 0x96F5
+0xE0DA 0x9773
+0xE0DB-0xE0DC 0x9777
+0xE0DD 0x9772
+0xE0DE 0x980F
+0xE0DF-0xE0E0 0x980D
+0xE0E1 0x98AC
+0xE0E2 0x98F6
+0xE0E3 0x98F9
+0xE0E4 0x99AF
+0xE0E5 0x99B2
+0xE0E6 0x99B0
+0xE0E7 0x99B5
+0xE0E8 0x9AAD
+0xE0E9 0x9AAB
+0xE0EA 0x9B5B
+0xE0EB 0x9CEA
+0xE0EC 0x9CED
+0xE0ED 0x9CE7
+0xE0EE 0x9E80
+0xE0EF 0x9EFD
+0xE0F0 0x50E6
+0xE0F1 0x50D4
+0xE0F2 0x50D7
+0xE0F3 0x50E8
+0xE0F4 0x50F3
+0xE0F5 0x50DB
+0xE0F6 0x50EA
+0xE0F7 0x50DD
+0xE0F8 0x50E4
+0xE0F9 0x50D3
+0xE0FA 0x50EC
+0xE0FB 0x50F0
+0xE0FC 0x50EF
+0xE0FD 0x50E3
+0xE0FE 0x50E0
+0xE140 0x51D8
+0xE141-0xE142 0x5280
+0xE143 0x52E9
+0xE144 0x52EB
+0xE145 0x5330
+0xE146 0x53AC
+0xE147 0x5627
+0xE148 0x5615
+0xE149 0x560C
+0xE14A 0x5612
+0xE14B 0x55FC
+0xE14C 0x560F
+0xE14D 0x561C
+0xE14E 0x5601
+0xE14F 0x5613
+0xE150 0x5602
+0xE151 0x55FA
+0xE152 0x561D
+0xE153 0x5604
+0xE154 0x55FF
+0xE155 0x55F9
+0xE156 0x5889
+0xE157 0x587C
+0xE158 0x5890
+0xE159 0x5898
+0xE15A 0x5886
+0xE15B 0x5881
+0xE15C 0x587F
+0xE15D 0x5874
+0xE15E 0x588B
+0xE15F 0x587A
+0xE160 0x5887
+0xE161 0x5891
+0xE162 0x588E
+0xE163 0x5876
+0xE164 0x5882
+0xE165 0x5888
+0xE166 0x587B
+0xE167 0x5894
+0xE168 0x588F
+0xE169 0x58FE
+0xE16A 0x596B
+0xE16B 0x5ADC
+0xE16C 0x5AEE
+0xE16D 0x5AE5
+0xE16E 0x5AD5
+0xE16F 0x5AEA
+0xE170 0x5ADA
+0xE171 0x5AED
+0xE172 0x5AEB
+0xE173 0x5AF3
+0xE174 0x5AE2
+0xE175 0x5AE0
+0xE176 0x5ADB
+0xE177 0x5AEC
+0xE178 0x5ADE
+0xE179 0x5ADD
+0xE17A 0x5AD9
+0xE17B 0x5AE8
+0xE17C 0x5ADF
+0xE17D 0x5B77
+0xE17E 0x5BE0
+0xE1A1 0x5BE3
+0xE1A2 0x5C63
+0xE1A3 0x5D82
+0xE1A4 0x5D80
+0xE1A5 0x5D7D
+0xE1A6 0x5D86
+0xE1A7 0x5D7A
+0xE1A8 0x5D81
+0xE1A9 0x5D77
+0xE1AA 0x5D8A
+0xE1AB 0x5D89
+0xE1AC 0x5D88
+0xE1AD 0x5D7E
+0xE1AE 0x5D7C
+0xE1AF 0x5D8D
+0xE1B0 0x5D79
+0xE1B1 0x5D7F
+0xE1B2-0xE1B3 0x5E58
+0xE1B4 0x5E53
+0xE1B5 0x5ED8
+0xE1B6 0x5ED1
+0xE1B7 0x5ED7
+0xE1B8 0x5ECE
+0xE1B9 0x5EDC
+0xE1BA 0x5ED5
+0xE1BB 0x5ED9
+0xE1BC 0x5ED2
+0xE1BD 0x5ED4
+0xE1BE 0x5F44
+0xE1BF 0x5F43
+0xE1C0 0x5F6F
+0xE1C1 0x5FB6
+0xE1C2 0x612C
+0xE1C3 0x6128
+0xE1C4 0x6141
+0xE1C5 0x615E
+0xE1C6 0x6171
+0xE1C7 0x6173
+0xE1C8-0xE1C9 0x6152
+0xE1CA 0x6172
+0xE1CB 0x616C
+0xE1CC 0x6180
+0xE1CD 0x6174
+0xE1CE 0x6154
+0xE1CF 0x617A
+0xE1D0 0x615B
+0xE1D1 0x6165
+0xE1D2 0x613B
+0xE1D3 0x616A
+0xE1D4 0x6161
+0xE1D5 0x6156
+0xE1D6 0x6229
+0xE1D7 0x6227
+0xE1D8 0x622B
+0xE1D9 0x642B
+0xE1DA 0x644D
+0xE1DB 0x645B
+0xE1DC 0x645D
+0xE1DD 0x6474
+0xE1DE 0x6476
+0xE1DF-0xE1E0 0x6472
+0xE1E1 0x647D
+0xE1E2 0x6475
+0xE1E3 0x6466
+0xE1E4 0x64A6
+0xE1E5 0x644E
+0xE1E6 0x6482
+0xE1E7 0x645E
+0xE1E8 0x645C
+0xE1E9 0x644B
+0xE1EA 0x6453
+0xE1EB 0x6460
+0xE1EC 0x6450
+0xE1ED 0x647F
+0xE1EE 0x643F
+0xE1EF 0x646C
+0xE1F0 0x646B
+0xE1F1 0x6459
+0xE1F2 0x6465
+0xE1F3 0x6477
+0xE1F4 0x6573
+0xE1F5 0x65A0
+0xE1F6 0x66A1
+0xE1F7 0x66A0
+0xE1F8 0x669F
+0xE1F9 0x6705
+0xE1FA 0x6704
+0xE1FB 0x6722
+0xE1FC 0x69B1
+0xE1FD 0x69B6
+0xE1FE 0x69C9
+0xE240 0x69A0
+0xE241 0x69CE
+0xE242 0x6996
+0xE243 0x69B0
+0xE244 0x69AC
+0xE245 0x69BC
+0xE246 0x6991
+0xE247 0x6999
+0xE248 0x698E
+0xE249 0x69A7
+0xE24A 0x698D
+0xE24B 0x69A9
+0xE24C 0x69BE
+0xE24D 0x69AF
+0xE24E 0x69BF
+0xE24F 0x69C4
+0xE250 0x69BD
+0xE251 0x69A4
+0xE252 0x69D4
+0xE253 0x69B9
+0xE254 0x69CA
+0xE255 0x699A
+0xE256 0x69CF
+0xE257 0x69B3
+0xE258 0x6993
+0xE259 0x69AA
+0xE25A 0x69A1
+0xE25B 0x699E
+0xE25C 0x69D9
+0xE25D 0x6997
+0xE25E 0x6990
+0xE25F 0x69C2
+0xE260 0x69B5
+0xE261 0x69A5
+0xE262 0x69C6
+0xE263 0x6B4A
+0xE264 0x6B4D
+0xE265 0x6B4B
+0xE266-0xE268 0x6B9E
+0xE269-0xE26A 0x6BC3
+0xE26B 0x6BFE
+0xE26C 0x6ECE
+0xE26D 0x6EF5
+0xE26E 0x6EF1
+0xE26F 0x6F03
+0xE270 0x6F25
+0xE271 0x6EF8
+0xE272 0x6F37
+0xE273 0x6EFB
+0xE274 0x6F2E
+0xE275 0x6F09
+0xE276 0x6F4E
+0xE277-0xE278 0x6F19
+0xE279 0x6F27
+0xE27A 0x6F18
+0xE27B 0x6F3B
+0xE27C 0x6F12
+0xE27D 0x6EED
+0xE27E 0x6F0A
+0xE2A1 0x6F36
+0xE2A2 0x6F73
+0xE2A3 0x6EF9
+0xE2A4 0x6EEE
+0xE2A5 0x6F2D
+0xE2A6 0x6F40
+0xE2A7 0x6F30
+0xE2A8 0x6F3C
+0xE2A9 0x6F35
+0xE2AA 0x6EEB
+0xE2AB 0x6F07
+0xE2AC 0x6F0E
+0xE2AD 0x6F43
+0xE2AE 0x6F05
+0xE2AF 0x6EFD
+0xE2B0 0x6EF6
+0xE2B1 0x6F39
+0xE2B2 0x6F1C
+0xE2B3 0x6EFC
+0xE2B4 0x6F3A
+0xE2B5 0x6F1F
+0xE2B6 0x6F0D
+0xE2B7 0x6F1E
+0xE2B8 0x6F08
+0xE2B9 0x6F21
+0xE2BA 0x7187
+0xE2BB 0x7190
+0xE2BC 0x7189
+0xE2BD 0x7180
+0xE2BE 0x7185
+0xE2BF 0x7182
+0xE2C0 0x718F
+0xE2C1 0x717B
+0xE2C2 0x7186
+0xE2C3 0x7181
+0xE2C4 0x7197
+0xE2C5 0x7244
+0xE2C6 0x7253
+0xE2C7 0x7297
+0xE2C8 0x7295
+0xE2C9 0x7293
+0xE2CA 0x7343
+0xE2CB 0x734D
+0xE2CC 0x7351
+0xE2CD 0x734C
+0xE2CE 0x7462
+0xE2CF 0x7473
+0xE2D0 0x7471
+0xE2D1 0x7475
+0xE2D2 0x7472
+0xE2D3 0x7467
+0xE2D4 0x746E
+0xE2D5 0x7500
+0xE2D6-0xE2D7 0x7502
+0xE2D8 0x757D
+0xE2D9 0x7590
+0xE2DA 0x7616
+0xE2DB 0x7608
+0xE2DC 0x760C
+0xE2DD 0x7615
+0xE2DE 0x7611
+0xE2DF 0x760A
+0xE2E0 0x7614
+0xE2E1 0x76B8
+0xE2E2 0x7781
+0xE2E3 0x777C
+0xE2E4 0x7785
+0xE2E5 0x7782
+0xE2E6 0x776E
+0xE2E7 0x7780
+0xE2E8 0x776F
+0xE2E9 0x777E
+0xE2EA 0x7783
+0xE2EB 0x78B2
+0xE2EC 0x78AA
+0xE2ED 0x78B4
+0xE2EE 0x78AD
+0xE2EF 0x78A8
+0xE2F0 0x787E
+0xE2F1 0x78AB
+0xE2F2 0x789E
+0xE2F3 0x78A5
+0xE2F4 0x78A0
+0xE2F5 0x78AC
+0xE2F6 0x78A2
+0xE2F7 0x78A4
+0xE2F8 0x7998
+0xE2F9-0xE2FA 0x798A
+0xE2FB 0x7996
+0xE2FC 0x7995
+0xE2FD 0x7994
+0xE2FE 0x7993
+0xE340 0x7997
+0xE341 0x7988
+0xE342 0x7992
+0xE343 0x7990
+0xE344 0x7A2B
+0xE345 0x7A4A
+0xE346 0x7A30
+0xE347 0x7A2F
+0xE348 0x7A28
+0xE349 0x7A26
+0xE34A 0x7AA8
+0xE34B-0xE34C 0x7AAB
+0xE34D 0x7AEE
+0xE34E 0x7B88
+0xE34F 0x7B9C
+0xE350 0x7B8A
+0xE351 0x7B91
+0xE352 0x7B90
+0xE353 0x7B96
+0xE354 0x7B8D
+0xE355 0x7B8C
+0xE356 0x7B9B
+0xE357 0x7B8E
+0xE358 0x7B85
+0xE359 0x7B98
+0xE35A 0x5284
+0xE35B 0x7B99
+0xE35C 0x7BA4
+0xE35D 0x7B82
+0xE35E 0x7CBB
+0xE35F 0x7CBF
+0xE360 0x7CBC
+0xE361 0x7CBA
+0xE362 0x7DA7
+0xE363 0x7DB7
+0xE364 0x7DC2
+0xE365 0x7DA3
+0xE366 0x7DAA
+0xE367 0x7DC1
+0xE368 0x7DC0
+0xE369 0x7DC5
+0xE36A 0x7D9D
+0xE36B 0x7DCE
+0xE36C 0x7DC4
+0xE36D 0x7DC6
+0xE36E-0xE36F 0x7DCB
+0xE370 0x7DAF
+0xE371 0x7DB9
+0xE372 0x7D96
+0xE373 0x7DBC
+0xE374 0x7D9F
+0xE375 0x7DA6
+0xE376 0x7DAE
+0xE377 0x7DA9
+0xE378 0x7DA1
+0xE379 0x7DC9
+0xE37A 0x7F73
+0xE37B-0xE37C 0x7FE2
+0xE37D 0x7FE5
+0xE37E 0x7FDE
+0xE3A1 0x8024
+0xE3A2 0x805D
+0xE3A3 0x805C
+0xE3A4 0x8189
+0xE3A5 0x8186
+0xE3A6 0x8183
+0xE3A7 0x8187
+0xE3A8 0x818D
+0xE3A9 0x818C
+0xE3AA 0x818B
+0xE3AB 0x8215
+0xE3AC 0x8497
+0xE3AD 0x84A4
+0xE3AE 0x84A1
+0xE3AF 0x849F
+0xE3B0 0x84BA
+0xE3B1 0x84CE
+0xE3B2 0x84C2
+0xE3B3 0x84AC
+0xE3B4 0x84AE
+0xE3B5 0x84AB
+0xE3B6 0x84B9
+0xE3B7 0x84B4
+0xE3B8 0x84C1
+0xE3B9 0x84CD
+0xE3BA 0x84AA
+0xE3BB 0x849A
+0xE3BC 0x84B1
+0xE3BD 0x84D0
+0xE3BE 0x849D
+0xE3BF 0x84A7
+0xE3C0 0x84BB
+0xE3C1 0x84A2
+0xE3C2 0x8494
+0xE3C3 0x84C7
+0xE3C4 0x84CC
+0xE3C5 0x849B
+0xE3C6 0x84A9
+0xE3C7 0x84AF
+0xE3C8 0x84A8
+0xE3C9 0x84D6
+0xE3CA 0x8498
+0xE3CB 0x84B6
+0xE3CC 0x84CF
+0xE3CD 0x84A0
+0xE3CE 0x84D7
+0xE3CF 0x84D4
+0xE3D0 0x84D2
+0xE3D1 0x84DB
+0xE3D2 0x84B0
+0xE3D3 0x8491
+0xE3D4 0x8661
+0xE3D5 0x8733
+0xE3D6 0x8723
+0xE3D7 0x8728
+0xE3D8 0x876B
+0xE3D9 0x8740
+0xE3DA 0x872E
+0xE3DB 0x871E
+0xE3DC 0x8721
+0xE3DD 0x8719
+0xE3DE 0x871B
+0xE3DF 0x8743
+0xE3E0 0x872C
+0xE3E1 0x8741
+0xE3E2 0x873E
+0xE3E3 0x8746
+0xE3E4 0x8720
+0xE3E5 0x8732
+0xE3E6 0x872A
+0xE3E7 0x872D
+0xE3E8 0x873C
+0xE3E9 0x8712
+0xE3EA 0x873A
+0xE3EB 0x8731
+0xE3EC 0x8735
+0xE3ED 0x8742
+0xE3EE-0xE3EF 0x8726
+0xE3F0 0x8738
+0xE3F1 0x8724
+0xE3F2 0x871A
+0xE3F3 0x8730
+0xE3F4 0x8711
+0xE3F5 0x88F7
+0xE3F6 0x88E7
+0xE3F7-0xE3F8 0x88F1
+0xE3F9 0x88FA
+0xE3FA 0x88FE
+0xE3FB 0x88EE
+0xE3FC 0x88FC
+0xE3FD 0x88F6
+0xE3FE 0x88FB
+0xE440 0x88F0
+0xE441 0x88EC
+0xE442 0x88EB
+0xE443 0x899D
+0xE444 0x89A1
+0xE445 0x899F
+0xE446 0x899E
+0xE447 0x89E9
+0xE448 0x89EB
+0xE449 0x89E8
+0xE44A 0x8AAB
+0xE44B 0x8A99
+0xE44C 0x8A8B
+0xE44D 0x8A92
+0xE44E 0x8A8F
+0xE44F 0x8A96
+0xE450 0x8C3D
+0xE451-0xE452 0x8C68
+0xE453 0x8CD5
+0xE454 0x8CCF
+0xE455 0x8CD7
+0xE456 0x8D96
+0xE457 0x8E09
+0xE458 0x8E02
+0xE459 0x8DFF
+0xE45A 0x8E0D
+0xE45B 0x8DFD
+0xE45C 0x8E0A
+0xE45D 0x8E03
+0xE45E 0x8E07
+0xE45F 0x8E06
+0xE460 0x8E05
+0xE461 0x8DFE
+0xE462 0x8E00
+0xE463 0x8E04
+0xE464-0xE465 0x8F10
+0xE466 0x8F0E
+0xE467 0x8F0D
+0xE468 0x9123
+0xE469 0x911C
+0xE46A 0x9120
+0xE46B 0x9122
+0xE46C 0x911F
+0xE46D 0x911D
+0xE46E 0x911A
+0xE46F 0x9124
+0xE470 0x9121
+0xE471 0x911B
+0xE472 0x917A
+0xE473 0x9172
+0xE474 0x9179
+0xE475 0x9173
+0xE476 0x92A5
+0xE477 0x92A4
+0xE478 0x9276
+0xE479 0x929B
+0xE47A 0x927A
+0xE47B 0x92A0
+0xE47C 0x9294
+0xE47D 0x92AA
+0xE47E 0x928D
+0xE4A1 0x92A6
+0xE4A2 0x929A
+0xE4A3 0x92AB
+0xE4A4 0x9279
+0xE4A5 0x9297
+0xE4A6 0x927F
+0xE4A7 0x92A3
+0xE4A8 0x92EE
+0xE4A9 0x928E
+0xE4AA 0x9282
+0xE4AB 0x9295
+0xE4AC 0x92A2
+0xE4AD 0x927D
+0xE4AE 0x9288
+0xE4AF 0x92A1
+0xE4B0 0x928A
+0xE4B1 0x9286
+0xE4B2 0x928C
+0xE4B3 0x9299
+0xE4B4 0x92A7
+0xE4B5 0x927E
+0xE4B6 0x9287
+0xE4B7 0x92A9
+0xE4B8 0x929D
+0xE4B9 0x928B
+0xE4BA 0x922D
+0xE4BB 0x969E
+0xE4BC 0x96A1
+0xE4BD 0x96FF
+0xE4BE 0x9758
+0xE4BF 0x977D
+0xE4C0 0x977A
+0xE4C1 0x977E
+0xE4C2 0x9783
+0xE4C3 0x9780
+0xE4C4 0x9782
+0xE4C5 0x977B
+0xE4C6 0x9784
+0xE4C7 0x9781
+0xE4C8 0x977F
+0xE4C9 0x97CE
+0xE4CA 0x97CD
+0xE4CB 0x9816
+0xE4CC-0xE4CD 0x98AD
+0xE4CE 0x9902
+0xE4CF 0x9900
+0xE4D0 0x9907
+0xE4D1 0x999D
+0xE4D2 0x999C
+0xE4D3 0x99C3
+0xE4D4 0x99B9
+0xE4D5 0x99BB
+0xE4D6 0x99BA
+0xE4D7 0x99C2
+0xE4D8 0x99BD
+0xE4D9 0x99C7
+0xE4DA 0x9AB1
+0xE4DB 0x9AE3
+0xE4DC 0x9AE7
+0xE4DD-0xE4DE 0x9B3E
+0xE4DF-0xE4E0 0x9B60
+0xE4E1 0x9B5F
+0xE4E2-0xE4E3 0x9CF1
+0xE4E4 0x9CF5
+0xE4E5 0x9EA7
+0xE4E6 0x50FF
+0xE4E7 0x5103
+0xE4E8 0x5130
+0xE4E9 0x50F8
+0xE4EA-0xE4EB 0x5106
+0xE4EC 0x50F6
+0xE4ED 0x50FE
+0xE4EE-0xE4EF 0x510B
+0xE4F0 0x50FD
+0xE4F1 0x510A
+0xE4F2-0xE4F3 0x528B
+0xE4F4 0x52F1
+0xE4F5 0x52EF
+0xE4F6 0x5648
+0xE4F7 0x5642
+0xE4F8 0x564C
+0xE4F9 0x5635
+0xE4FA 0x5641
+0xE4FB 0x564A
+0xE4FC 0x5649
+0xE4FD 0x5646
+0xE4FE 0x5658
+0xE540 0x565A
+0xE541 0x5640
+0xE542 0x5633
+0xE543 0x563D
+0xE544 0x562C
+0xE545 0x563E
+0xE546 0x5638
+0xE547 0x562A
+0xE548 0x563A
+0xE549 0x571A
+0xE54A 0x58AB
+0xE54B 0x589D
+0xE54C 0x58B1
+0xE54D 0x58A0
+0xE54E 0x58A3
+0xE54F 0x58AF
+0xE550 0x58AC
+0xE551 0x58A5
+0xE552 0x58A1
+0xE553 0x58FF
+0xE554 0x5AFF
+0xE555 0x5AF4
+0xE556 0x5AFD
+0xE557 0x5AF7
+0xE558 0x5AF6
+0xE559 0x5B03
+0xE55A 0x5AF8
+0xE55B 0x5B02
+0xE55C 0x5AF9
+0xE55D 0x5B01
+0xE55E 0x5B07
+0xE55F 0x5B05
+0xE560 0x5B0F
+0xE561 0x5C67
+0xE562 0x5D99
+0xE563 0x5D97
+0xE564 0x5D9F
+0xE565 0x5D92
+0xE566 0x5DA2
+0xE567 0x5D93
+0xE568 0x5D95
+0xE569 0x5DA0
+0xE56A 0x5D9C
+0xE56B 0x5DA1
+0xE56C 0x5D9A
+0xE56D 0x5D9E
+0xE56E 0x5E69
+0xE56F 0x5E5D
+0xE570 0x5E60
+0xE571 0x5E5C
+0xE572 0x7DF3
+0xE573 0x5EDB
+0xE574 0x5EDE
+0xE575 0x5EE1
+0xE576 0x5F49
+0xE577 0x5FB2
+0xE578 0x618B
+0xE579 0x6183
+0xE57A 0x6179
+0xE57B 0x61B1
+0xE57C 0x61B0
+0xE57D 0x61A2
+0xE57E 0x6189
+0xE5A1 0x619B
+0xE5A2 0x6193
+0xE5A3 0x61AF
+0xE5A4 0x61AD
+0xE5A5 0x619F
+0xE5A6 0x6192
+0xE5A7 0x61AA
+0xE5A8 0x61A1
+0xE5A9 0x618D
+0xE5AA 0x6166
+0xE5AB 0x61B3
+0xE5AC 0x622D
+0xE5AD 0x646E
+0xE5AE 0x6470
+0xE5AF 0x6496
+0xE5B0 0x64A0
+0xE5B1 0x6485
+0xE5B2 0x6497
+0xE5B3 0x649C
+0xE5B4 0x648F
+0xE5B5 0x648B
+0xE5B6 0x648A
+0xE5B7 0x648C
+0xE5B8 0x64A3
+0xE5B9 0x649F
+0xE5BA 0x6468
+0xE5BB 0x64B1
+0xE5BC 0x6498
+0xE5BD 0x6576
+0xE5BE 0x657A
+0xE5BF 0x6579
+0xE5C0 0x657B
+0xE5C1-0xE5C2 0x65B2
+0xE5C3 0x66B5
+0xE5C4 0x66B0
+0xE5C5 0x66A9
+0xE5C6 0x66B2
+0xE5C7 0x66B7
+0xE5C8 0x66AA
+0xE5C9 0x66AF
+0xE5CA 0x6A00
+0xE5CB 0x6A06
+0xE5CC 0x6A17
+0xE5CD 0x69E5
+0xE5CE 0x69F8
+0xE5CF 0x6A15
+0xE5D0 0x69F1
+0xE5D1 0x69E4
+0xE5D2 0x6A20
+0xE5D3 0x69FF
+0xE5D4 0x69EC
+0xE5D5 0x69E2
+0xE5D6 0x6A1B
+0xE5D7 0x6A1D
+0xE5D8 0x69FE
+0xE5D9 0x6A27
+0xE5DA 0x69F2
+0xE5DB 0x69EE
+0xE5DC 0x6A14
+0xE5DD 0x69F7
+0xE5DE 0x69E7
+0xE5DF 0x6A40
+0xE5E0 0x6A08
+0xE5E1 0x69E6
+0xE5E2 0x69FB
+0xE5E3 0x6A0D
+0xE5E4 0x69FC
+0xE5E5 0x69EB
+0xE5E6 0x6A09
+0xE5E7 0x6A04
+0xE5E8 0x6A18
+0xE5E9 0x6A25
+0xE5EA 0x6A0F
+0xE5EB 0x69F6
+0xE5EC 0x6A26
+0xE5ED 0x6A07
+0xE5EE 0x69F4
+0xE5EF 0x6A16
+0xE5F0 0x6B51
+0xE5F1 0x6BA5
+0xE5F2 0x6BA3
+0xE5F3 0x6BA2
+0xE5F4 0x6BA6
+0xE5F5 0x6C01
+0xE5F6 0x6C00
+0xE5F7 0x6BFF
+0xE5F8 0x6C02
+0xE5F9 0x6F41
+0xE5FA 0x6F26
+0xE5FB 0x6F7E
+0xE5FC 0x6F87
+0xE5FD 0x6FC6
+0xE5FE 0x6F92
+0xE640 0x6F8D
+0xE641 0x6F89
+0xE642 0x6F8C
+0xE643 0x6F62
+0xE644 0x6F4F
+0xE645 0x6F85
+0xE646 0x6F5A
+0xE647 0x6F96
+0xE648 0x6F76
+0xE649 0x6F6C
+0xE64A 0x6F82
+0xE64B 0x6F55
+0xE64C 0x6F72
+0xE64D 0x6F52
+0xE64E 0x6F50
+0xE64F 0x6F57
+0xE650 0x6F94
+0xE651 0x6F93
+0xE652 0x6F5D
+0xE653 0x6F00
+0xE654 0x6F61
+0xE655 0x6F6B
+0xE656 0x6F7D
+0xE657 0x6F67
+0xE658 0x6F90
+0xE659 0x6F53
+0xE65A 0x6F8B
+0xE65B 0x6F69
+0xE65C 0x6F7F
+0xE65D 0x6F95
+0xE65E 0x6F63
+0xE65F 0x6F77
+0xE660 0x6F6A
+0xE661 0x6F7B
+0xE662 0x71B2
+0xE663 0x71AF
+0xE664 0x719B
+0xE665 0x71B0
+0xE666 0x71A0
+0xE667 0x719A
+0xE668 0x71A9
+0xE669 0x71B5
+0xE66A 0x719D
+0xE66B 0x71A5
+0xE66C 0x719E
+0xE66D 0x71A4
+0xE66E 0x71A1
+0xE66F 0x71AA
+0xE670 0x719C
+0xE671 0x71A7
+0xE672 0x71B3
+0xE673 0x7298
+0xE674 0x729A
+0xE675 0x7358
+0xE676 0x7352
+0xE677-0xE679 0x735E
+0xE67A 0x735D
+0xE67B 0x735B
+0xE67C 0x7361
+0xE67D 0x735A
+0xE67E 0x7359
+0xE6A1 0x7362
+0xE6A2 0x7487
+0xE6A3-0xE6A4 0x7489
+0xE6A5 0x7486
+0xE6A6 0x7481
+0xE6A7 0x747D
+0xE6A8 0x7485
+0xE6A9 0x7488
+0xE6AA 0x747C
+0xE6AB 0x7479
+0xE6AC 0x7508
+0xE6AD 0x7507
+0xE6AE 0x757E
+0xE6AF 0x7625
+0xE6B0 0x761E
+0xE6B1 0x7619
+0xE6B2 0x761D
+0xE6B3 0x761C
+0xE6B4 0x7623
+0xE6B5 0x761A
+0xE6B6 0x7628
+0xE6B7 0x761B
+0xE6B8-0xE6BA 0x769C
+0xE6BB 0x769B
+0xE6BC 0x778D
+0xE6BD 0x778F
+0xE6BE 0x7789
+0xE6BF 0x7788
+0xE6C0 0x78CD
+0xE6C1 0x78BB
+0xE6C2 0x78CF
+0xE6C3 0x78CC
+0xE6C4 0x78D1
+0xE6C5 0x78CE
+0xE6C6 0x78D4
+0xE6C7 0x78C8
+0xE6C8-0xE6C9 0x78C3
+0xE6CA 0x78C9
+0xE6CB 0x799A
+0xE6CC 0x79A1
+0xE6CD 0x79A0
+0xE6CE 0x799C
+0xE6CF 0x79A2
+0xE6D0 0x799B
+0xE6D1 0x6B76
+0xE6D2 0x7A39
+0xE6D3 0x7AB2
+0xE6D4 0x7AB4
+0xE6D5 0x7AB3
+0xE6D6 0x7BB7
+0xE6D7 0x7BCB
+0xE6D8 0x7BBE
+0xE6D9 0x7BAC
+0xE6DA 0x7BCE
+0xE6DB 0x7BAF
+0xE6DC 0x7BB9
+0xE6DD 0x7BCA
+0xE6DE 0x7BB5
+0xE6DF 0x7CC5
+0xE6E0 0x7CC8
+0xE6E1 0x7CCC
+0xE6E2 0x7CCB
+0xE6E3 0x7DF7
+0xE6E4 0x7DDB
+0xE6E5 0x7DEA
+0xE6E6 0x7DE7
+0xE6E7 0x7DD7
+0xE6E8 0x7DE1
+0xE6E9 0x7E03
+0xE6EA 0x7DFA
+0xE6EB 0x7DE6
+0xE6EC 0x7DF6
+0xE6ED 0x7DF1
+0xE6EE 0x7DF0
+0xE6EF 0x7DEE
+0xE6F0 0x7DDF
+0xE6F1 0x7F76
+0xE6F2 0x7FAC
+0xE6F3 0x7FB0
+0xE6F4 0x7FAD
+0xE6F5 0x7FED
+0xE6F6 0x7FEB
+0xE6F7 0x7FEA
+0xE6F8 0x7FEC
+0xE6F9 0x7FE6
+0xE6FA 0x7FE8
+0xE6FB 0x8064
+0xE6FC 0x8067
+0xE6FD 0x81A3
+0xE6FE 0x819F
+0xE740 0x819E
+0xE741 0x8195
+0xE742 0x81A2
+0xE743 0x8199
+0xE744 0x8197
+0xE745 0x8216
+0xE746 0x824F
+0xE747 0x8253
+0xE748 0x8252
+0xE749 0x8250
+0xE74A 0x824E
+0xE74B 0x8251
+0xE74C 0x8524
+0xE74D 0x853B
+0xE74E 0x850F
+0xE74F 0x8500
+0xE750 0x8529
+0xE751 0x850E
+0xE752 0x8509
+0xE753 0x850D
+0xE754 0x851F
+0xE755 0x850A
+0xE756 0x8527
+0xE757 0x851C
+0xE758 0x84FB
+0xE759 0x852B
+0xE75A 0x84FA
+0xE75B 0x8508
+0xE75C 0x850C
+0xE75D 0x84F4
+0xE75E 0x852A
+0xE75F 0x84F2
+0xE760 0x8515
+0xE761 0x84F7
+0xE762 0x84EB
+0xE763 0x84F3
+0xE764 0x84FC
+0xE765 0x8512
+0xE766 0x84EA
+0xE767 0x84E9
+0xE768 0x8516
+0xE769 0x84FE
+0xE76A 0x8528
+0xE76B 0x851D
+0xE76C 0x852E
+0xE76D 0x8502
+0xE76E 0x84FD
+0xE76F 0x851E
+0xE770 0x84F6
+0xE771 0x8531
+0xE772 0x8526
+0xE773-0xE774 0x84E7
+0xE775 0x84F0
+0xE776 0x84EF
+0xE777 0x84F9
+0xE778 0x8518
+0xE779 0x8520
+0xE77A 0x8530
+0xE77B 0x850B
+0xE77C 0x8519
+0xE77D 0x852F
+0xE77E 0x8662
+0xE7A1 0x8756
+0xE7A2-0xE7A3 0x8763
+0xE7A4 0x8777
+0xE7A5 0x87E1
+0xE7A6 0x8773
+0xE7A7 0x8758
+0xE7A8 0x8754
+0xE7A9 0x875B
+0xE7AA 0x8752
+0xE7AB 0x8761
+0xE7AC 0x875A
+0xE7AD 0x8751
+0xE7AE 0x875E
+0xE7AF 0x876D
+0xE7B0 0x876A
+0xE7B1 0x8750
+0xE7B2 0x874E
+0xE7B3 0x875F
+0xE7B4 0x875D
+0xE7B5 0x876F
+0xE7B6 0x876C
+0xE7B7 0x877A
+0xE7B8 0x876E
+0xE7B9 0x875C
+0xE7BA 0x8765
+0xE7BB 0x874F
+0xE7BC 0x877B
+0xE7BD 0x8775
+0xE7BE 0x8762
+0xE7BF 0x8767
+0xE7C0 0x8769
+0xE7C1 0x885A
+0xE7C2 0x8905
+0xE7C3 0x890C
+0xE7C4 0x8914
+0xE7C5 0x890B
+0xE7C6-0xE7C8 0x8917
+0xE7C9 0x8906
+0xE7CA 0x8916
+0xE7CB 0x8911
+0xE7CC 0x890E
+0xE7CD 0x8909
+0xE7CE 0x89A2
+0xE7CF 0x89A4
+0xE7D0 0x89A3
+0xE7D1 0x89ED
+0xE7D2 0x89F0
+0xE7D3 0x89EC
+0xE7D4 0x8ACF
+0xE7D5 0x8AC6
+0xE7D6 0x8AB8
+0xE7D7 0x8AD3
+0xE7D8 0x8AD1
+0xE7D9-0xE7DA 0x8AD4
+0xE7DB 0x8ABB
+0xE7DC 0x8AD7
+0xE7DD 0x8ABE
+0xE7DE 0x8AC0
+0xE7DF 0x8AC5
+0xE7E0 0x8AD8
+0xE7E1 0x8AC3
+0xE7E2 0x8ABA
+0xE7E3 0x8ABD
+0xE7E4 0x8AD9
+0xE7E5 0x8C3E
+0xE7E6 0x8C4D
+0xE7E7 0x8C8F
+0xE7E8 0x8CE5
+0xE7E9 0x8CDF
+0xE7EA 0x8CD9
+0xE7EB 0x8CE8
+0xE7EC 0x8CDA
+0xE7ED 0x8CDD
+0xE7EE 0x8CE7
+0xE7EF 0x8DA0
+0xE7F0 0x8D9C
+0xE7F1 0x8DA1
+0xE7F2 0x8D9B
+0xE7F3 0x8E20
+0xE7F4 0x8E23
+0xE7F5 0x8E25
+0xE7F6 0x8E24
+0xE7F7 0x8E2E
+0xE7F8 0x8E15
+0xE7F9 0x8E1B
+0xE7FA 0x8E16
+0xE7FB 0x8E11
+0xE7FC 0x8E19
+0xE7FD-0xE7FE 0x8E26
+0xE840 0x8E14
+0xE841 0x8E12
+0xE842 0x8E18
+0xE843 0x8E13
+0xE844 0x8E1C
+0xE845 0x8E17
+0xE846 0x8E1A
+0xE847 0x8F2C
+0xE848 0x8F24
+0xE849 0x8F18
+0xE84A 0x8F1A
+0xE84B 0x8F20
+0xE84C 0x8F23
+0xE84D-0xE84E 0x8F16
+0xE84F 0x9073
+0xE850 0x9070
+0xE851 0x906F
+0xE852 0x9067
+0xE853 0x906B
+0xE854 0x912F
+0xE855 0x912B
+0xE856-0xE857 0x9129
+0xE858 0x9132
+0xE859 0x9126
+0xE85A 0x912E
+0xE85B-0xE85C 0x9185
+0xE85D 0x918A
+0xE85E-0xE85F 0x9181
+0xE860 0x9184
+0xE861 0x9180
+0xE862 0x92D0
+0xE863-0xE864 0x92C3
+0xE865 0x92C0
+0xE866 0x92D9
+0xE867 0x92B6
+0xE868 0x92CF
+0xE869 0x92F1
+0xE86A 0x92DF
+0xE86B 0x92D8
+0xE86C 0x92E9
+0xE86D 0x92D7
+0xE86E 0x92DD
+0xE86F 0x92CC
+0xE870 0x92EF
+0xE871 0x92C2
+0xE872 0x92E8
+0xE873 0x92CA
+0xE874 0x92C8
+0xE875 0x92CE
+0xE876 0x92E6
+0xE877 0x92CD
+0xE878 0x92D5
+0xE879 0x92C9
+0xE87A 0x92E0
+0xE87B 0x92DE
+0xE87C 0x92E7
+0xE87D 0x92D1
+0xE87E 0x92D3
+0xE8A1 0x92B5
+0xE8A2 0x92E1
+0xE8A3 0x92C6
+0xE8A4 0x92B4
+0xE8A5 0x957C
+0xE8A6 0x95AC
+0xE8A7 0x95AB
+0xE8A8 0x95AE
+0xE8A9 0x95B0
+0xE8AA 0x96A4
+0xE8AB 0x96A2
+0xE8AC 0x96D3
+0xE8AD 0x9705
+0xE8AE 0x9708
+0xE8AF 0x9702
+0xE8B0 0x975A
+0xE8B1 0x978A
+0xE8B2 0x978E
+0xE8B3 0x9788
+0xE8B4 0x97D0
+0xE8B5 0x97CF
+0xE8B6 0x981E
+0xE8B7 0x981D
+0xE8B8 0x9826
+0xE8B9 0x9829
+0xE8BA 0x9828
+0xE8BB 0x9820
+0xE8BC 0x981B
+0xE8BD 0x9827
+0xE8BE 0x98B2
+0xE8BF 0x9908
+0xE8C0 0x98FA
+0xE8C1 0x9911
+0xE8C2 0x9914
+0xE8C3-0xE8C4 0x9916
+0xE8C5 0x9915
+0xE8C6 0x99DC
+0xE8C7 0x99CD
+0xE8C8 0x99CF
+0xE8C9-0xE8CA 0x99D3
+0xE8CB 0x99CE
+0xE8CC 0x99C9
+0xE8CD 0x99D6
+0xE8CE 0x99D8
+0xE8CF 0x99CB
+0xE8D0 0x99D7
+0xE8D1 0x99CC
+0xE8D2 0x9AB3
+0xE8D3 0x9AEC
+0xE8D4 0x9AEB
+0xE8D5 0x9AF3
+0xE8D6 0x9AF2
+0xE8D7 0x9AF1
+0xE8D8 0x9B46
+0xE8D9 0x9B43
+0xE8DA 0x9B67
+0xE8DB 0x9B74
+0xE8DC 0x9B71
+0xE8DD 0x9B66
+0xE8DE 0x9B76
+0xE8DF 0x9B75
+0xE8E0 0x9B70
+0xE8E1 0x9B68
+0xE8E2 0x9B64
+0xE8E3 0x9B6C
+0xE8E4 0x9CFC
+0xE8E5 0x9CFA
+0xE8E6 0x9CFD
+0xE8E7 0x9CFF
+0xE8E8 0x9CF7
+0xE8E9 0x9D07
+0xE8EA 0x9D00
+0xE8EB 0x9CF9
+0xE8EC 0x9CFB
+0xE8ED 0x9D08
+0xE8EE 0x9D05
+0xE8EF 0x9D04
+0xE8F0 0x9E83
+0xE8F1 0x9ED3
+0xE8F2-0xE8F3 0x9F0F
+0xE8F4 0x511C
+0xE8F5 0x5113
+0xE8F6 0x5117
+0xE8F7 0x511A
+0xE8F8 0x5111
+0xE8F9 0x51DE
+0xE8FA 0x5334
+0xE8FB 0x53E1
+0xE8FC 0x5670
+0xE8FD 0x5660
+0xE8FE 0x566E
+0xE940 0x5673
+0xE941 0x5666
+0xE942 0x5663
+0xE943 0x566D
+0xE944 0x5672
+0xE945 0x565E
+0xE946 0x5677
+0xE947 0x571C
+0xE948 0x571B
+0xE949 0x58C8
+0xE94A 0x58BD
+0xE94B 0x58C9
+0xE94C 0x58BF
+0xE94D 0x58BA
+0xE94E 0x58C2
+0xE94F 0x58BC
+0xE950 0x58C6
+0xE951 0x5B17
+0xE952 0x5B19
+0xE953 0x5B1B
+0xE954 0x5B21
+0xE955 0x5B14
+0xE956 0x5B13
+0xE957 0x5B10
+0xE958 0x5B16
+0xE959 0x5B28
+0xE95A 0x5B1A
+0xE95B 0x5B20
+0xE95C 0x5B1E
+0xE95D 0x5BEF
+0xE95E 0x5DAC
+0xE95F 0x5DB1
+0xE960 0x5DA9
+0xE961 0x5DA7
+0xE962 0x5DB5
+0xE963 0x5DB0
+0xE964 0x5DAE
+0xE965 0x5DAA
+0xE966 0x5DA8
+0xE967 0x5DB2
+0xE968 0x5DAD
+0xE969 0x5DAF
+0xE96A 0x5DB4
+0xE96B-0xE96C 0x5E67
+0xE96D 0x5E66
+0xE96E 0x5E6F
+0xE96F 0x5EE9
+0xE970 0x5EE7
+0xE971 0x5EE6
+0xE972 0x5EE8
+0xE973 0x5EE5
+0xE974 0x5F4B
+0xE975 0x5FBC
+0xE976 0x619D
+0xE977 0x61A8
+0xE978 0x6196
+0xE979 0x61C5
+0xE97A 0x61B4
+0xE97B 0x61C6
+0xE97C 0x61C1
+0xE97D 0x61CC
+0xE97E 0x61BA
+0xE9A1 0x61BF
+0xE9A2 0x61B8
+0xE9A3 0x618C
+0xE9A4 0x64D7
+0xE9A5 0x64D6
+0xE9A6 0x64D0
+0xE9A7 0x64CF
+0xE9A8 0x64C9
+0xE9A9 0x64BD
+0xE9AA 0x6489
+0xE9AB 0x64C3
+0xE9AC 0x64DB
+0xE9AD 0x64F3
+0xE9AE 0x64D9
+0xE9AF 0x6533
+0xE9B0 0x657F
+0xE9B1 0x657C
+0xE9B2 0x65A2
+0xE9B3 0x66C8
+0xE9B4 0x66BE
+0xE9B5 0x66C0
+0xE9B6-0xE9B7 0x66CA
+0xE9B8 0x66CF
+0xE9B9 0x66BD
+0xE9BA 0x66BB
+0xE9BB 0x66BA
+0xE9BC 0x66CC
+0xE9BD 0x6723
+0xE9BE 0x6A34
+0xE9BF 0x6A66
+0xE9C0 0x6A49
+0xE9C1 0x6A67
+0xE9C2 0x6A32
+0xE9C3 0x6A68
+0xE9C4 0x6A3E
+0xE9C5 0x6A5D
+0xE9C6 0x6A6D
+0xE9C7 0x6A76
+0xE9C8 0x6A5B
+0xE9C9 0x6A51
+0xE9CA 0x6A28
+0xE9CB 0x6A5A
+0xE9CC 0x6A3B
+0xE9CD 0x6A3F
+0xE9CE 0x6A41
+0xE9CF 0x6A6A
+0xE9D0 0x6A64
+0xE9D1 0x6A50
+0xE9D2 0x6A4F
+0xE9D3 0x6A54
+0xE9D4 0x6A6F
+0xE9D5 0x6A69
+0xE9D6 0x6A60
+0xE9D7 0x6A3C
+0xE9D8 0x6A5E
+0xE9D9 0x6A56
+0xE9DA 0x6A55
+0xE9DB-0xE9DC 0x6A4D
+0xE9DD 0x6A46
+0xE9DE 0x6B55
+0xE9DF 0x6B54
+0xE9E0 0x6B56
+0xE9E1 0x6BA7
+0xE9E2-0xE9E3 0x6BAA
+0xE9E4 0x6BC8
+0xE9E5 0x6BC7
+0xE9E6 0x6C04
+0xE9E7 0x6C03
+0xE9E8 0x6C06
+0xE9E9 0x6FAD
+0xE9EA 0x6FCB
+0xE9EB 0x6FA3
+0xE9EC 0x6FC7
+0xE9ED 0x6FBC
+0xE9EE 0x6FCE
+0xE9EF 0x6FC8
+0xE9F0 0x6F5E
+0xE9F1 0x6FC4
+0xE9F2 0x6FBD
+0xE9F3 0x6F9E
+0xE9F4 0x6FCA
+0xE9F5 0x6FA8
+0xE9F6 0x7004
+0xE9F7 0x6FA5
+0xE9F8 0x6FAE
+0xE9F9 0x6FBA
+0xE9FA 0x6FAC
+0xE9FB 0x6FAA
+0xE9FC 0x6FCF
+0xE9FD 0x6FBF
+0xE9FE 0x6FB8
+0xEA40 0x6FA2
+0xEA41 0x6FC9
+0xEA42 0x6FAB
+0xEA43 0x6FCD
+0xEA44 0x6FAF
+0xEA45 0x6FB2
+0xEA46 0x6FB0
+0xEA47 0x71C5
+0xEA48 0x71C2
+0xEA49 0x71BF
+0xEA4A 0x71B8
+0xEA4B 0x71D6
+0xEA4C-0xEA4D 0x71C0
+0xEA4E 0x71CB
+0xEA4F 0x71D4
+0xEA50 0x71CA
+0xEA51 0x71C7
+0xEA52 0x71CF
+0xEA53 0x71BD
+0xEA54 0x71D8
+0xEA55 0x71BC
+0xEA56 0x71C6
+0xEA57-0xEA58 0x71DA
+0xEA59-0xEA5A 0x729D
+0xEA5B 0x7369
+0xEA5C-0xEA5D 0x7366
+0xEA5E 0x736C
+0xEA5F 0x7365
+0xEA60 0x736B
+0xEA61 0x736A
+0xEA62 0x747F
+0xEA63 0x749A
+0xEA64 0x74A0
+0xEA65 0x7494
+0xEA66 0x7492
+0xEA67 0x7495
+0xEA68 0x74A1
+0xEA69 0x750B
+0xEA6A 0x7580
+0xEA6B 0x762F
+0xEA6C 0x762D
+0xEA6D 0x7631
+0xEA6E 0x763D
+0xEA6F 0x7633
+0xEA70 0x763C
+0xEA71 0x7635
+0xEA72 0x7632
+0xEA73 0x7630
+0xEA74 0x76BB
+0xEA75 0x76E6
+0xEA76 0x779A
+0xEA77 0x779D
+0xEA78 0x77A1
+0xEA79 0x779C
+0xEA7A 0x779B
+0xEA7B-0xEA7C 0x77A2
+0xEA7D 0x7795
+0xEA7E 0x7799
+0xEAA1 0x7797
+0xEAA2 0x78DD
+0xEAA3 0x78E9
+0xEAA4 0x78E5
+0xEAA5 0x78EA
+0xEAA6 0x78DE
+0xEAA7 0x78E3
+0xEAA8 0x78DB
+0xEAA9-0xEAAA 0x78E1
+0xEAAB 0x78ED
+0xEAAC-0xEAAD 0x78DF
+0xEAAE 0x79A4
+0xEAAF 0x7A44
+0xEAB0 0x7A48
+0xEAB1 0x7A47
+0xEAB2 0x7AB6
+0xEAB3 0x7AB8
+0xEAB4 0x7AB5
+0xEAB5 0x7AB1
+0xEAB6 0x7AB7
+0xEAB7 0x7BDE
+0xEAB8 0x7BE3
+0xEAB9 0x7BE7
+0xEABA 0x7BDD
+0xEABB 0x7BD5
+0xEABC 0x7BE5
+0xEABD 0x7BDA
+0xEABE 0x7BE8
+0xEABF 0x7BF9
+0xEAC0 0x7BD4
+0xEAC1 0x7BEA
+0xEAC2 0x7BE2
+0xEAC3 0x7BDC
+0xEAC4 0x7BEB
+0xEAC5 0x7BD8
+0xEAC6 0x7BDF
+0xEAC7 0x7CD2
+0xEAC8 0x7CD4
+0xEAC9 0x7CD7
+0xEACA-0xEACB 0x7CD0
+0xEACC 0x7E12
+0xEACD 0x7E21
+0xEACE 0x7E17
+0xEACF 0x7E0C
+0xEAD0-0xEAD1 0x7E1F
+0xEAD2 0x7E13
+0xEAD3 0x7E0E
+0xEAD4 0x7E1C
+0xEAD5 0x7E15
+0xEAD6 0x7E1A
+0xEAD7 0x7E22
+0xEAD8 0x7E0B
+0xEAD9 0x7E0F
+0xEADA 0x7E16
+0xEADB 0x7E0D
+0xEADC 0x7E14
+0xEADD 0x7E25
+0xEADE 0x7E24
+0xEADF 0x7F43
+0xEAE0-0xEAE1 0x7F7B
+0xEAE2 0x7F7A
+0xEAE3 0x7FB1
+0xEAE4 0x7FEF
+0xEAE5 0x802A
+0xEAE6 0x8029
+0xEAE7 0x806C
+0xEAE8 0x81B1
+0xEAE9 0x81A6
+0xEAEA 0x81AE
+0xEAEB 0x81B9
+0xEAEC 0x81B5
+0xEAED 0x81AB
+0xEAEE 0x81B0
+0xEAEF 0x81AC
+0xEAF0 0x81B4
+0xEAF1 0x81B2
+0xEAF2 0x81B7
+0xEAF3 0x81A7
+0xEAF4 0x81F2
+0xEAF5-0xEAF7 0x8255
+0xEAF8 0x8556
+0xEAF9 0x8545
+0xEAFA 0x856B
+0xEAFB 0x854D
+0xEAFC 0x8553
+0xEAFD 0x8561
+0xEAFE 0x8558
+0xEB40 0x8540
+0xEB41 0x8546
+0xEB42 0x8564
+0xEB43 0x8541
+0xEB44 0x8562
+0xEB45 0x8544
+0xEB46 0x8551
+0xEB47 0x8547
+0xEB48 0x8563
+0xEB49 0x853E
+0xEB4A 0x855B
+0xEB4B 0x8571
+0xEB4C 0x854E
+0xEB4D 0x856E
+0xEB4E 0x8575
+0xEB4F 0x8555
+0xEB50 0x8567
+0xEB51 0x8560
+0xEB52 0x858C
+0xEB53 0x8566
+0xEB54 0x855D
+0xEB55 0x8554
+0xEB56 0x8565
+0xEB57 0x856C
+0xEB58 0x8663
+0xEB59 0x8665
+0xEB5A 0x8664
+0xEB5B 0x879B
+0xEB5C 0x878F
+0xEB5D 0x8797
+0xEB5E 0x8793
+0xEB5F 0x8792
+0xEB60 0x8788
+0xEB61 0x8781
+0xEB62 0x8796
+0xEB63 0x8798
+0xEB64 0x8779
+0xEB65 0x8787
+0xEB66 0x87A3
+0xEB67 0x8785
+0xEB68-0xEB69 0x8790
+0xEB6A 0x879D
+0xEB6B 0x8784
+0xEB6C 0x8794
+0xEB6D 0x879C
+0xEB6E 0x879A
+0xEB6F 0x8789
+0xEB70 0x891E
+0xEB71 0x8926
+0xEB72 0x8930
+0xEB73-0xEB74 0x892D
+0xEB75 0x8927
+0xEB76 0x8931
+0xEB77 0x8922
+0xEB78 0x8929
+0xEB79 0x8923
+0xEB7A 0x892F
+0xEB7B 0x892C
+0xEB7C 0x891F
+0xEB7D 0x89F1
+0xEB7E 0x8AE0
+0xEBA1 0x8AE2
+0xEBA2 0x8AF2
+0xEBA3-0xEBA4 0x8AF4
+0xEBA5 0x8ADD
+0xEBA6 0x8B14
+0xEBA7 0x8AE4
+0xEBA8 0x8ADF
+0xEBA9 0x8AF0
+0xEBAA 0x8AC8
+0xEBAB 0x8ADE
+0xEBAC 0x8AE1
+0xEBAD 0x8AE8
+0xEBAE 0x8AFF
+0xEBAF 0x8AEF
+0xEBB0 0x8AFB
+0xEBB1-0xEBB2 0x8C91
+0xEBB3 0x8C90
+0xEBB4 0x8CF5
+0xEBB5 0x8CEE
+0xEBB6 0x8CF1
+0xEBB7 0x8CF0
+0xEBB8 0x8CF3
+0xEBB9 0x8D6C
+0xEBBA 0x8D6E
+0xEBBB 0x8DA5
+0xEBBC 0x8DA7
+0xEBBD 0x8E33
+0xEBBE 0x8E3E
+0xEBBF 0x8E38
+0xEBC0 0x8E40
+0xEBC1 0x8E45
+0xEBC2 0x8E36
+0xEBC3-0xEBC4 0x8E3C
+0xEBC5 0x8E41
+0xEBC6 0x8E30
+0xEBC7 0x8E3F
+0xEBC8 0x8EBD
+0xEBC9 0x8F36
+0xEBCA 0x8F2E
+0xEBCB 0x8F35
+0xEBCC 0x8F32
+0xEBCD 0x8F39
+0xEBCE 0x8F37
+0xEBCF 0x8F34
+0xEBD0 0x9076
+0xEBD1 0x9079
+0xEBD2 0x907B
+0xEBD3 0x9086
+0xEBD4 0x90FA
+0xEBD5 0x9133
+0xEBD6-0xEBD7 0x9135
+0xEBD8 0x9193
+0xEBD9-0xEBDA 0x9190
+0xEBDB 0x918D
+0xEBDC 0x918F
+0xEBDD 0x9327
+0xEBDE 0x931E
+0xEBDF 0x9308
+0xEBE0 0x931F
+0xEBE1 0x9306
+0xEBE2 0x930F
+0xEBE3 0x937A
+0xEBE4 0x9338
+0xEBE5 0x933C
+0xEBE6 0x931B
+0xEBE7 0x9323
+0xEBE8 0x9312
+0xEBE9 0x9301
+0xEBEA 0x9346
+0xEBEB 0x932D
+0xEBEC 0x930E
+0xEBED 0x930D
+0xEBEE 0x92CB
+0xEBEF 0x931D
+0xEBF0 0x92FA
+0xEBF1 0x9325
+0xEBF2 0x9313
+0xEBF3 0x92F9
+0xEBF4 0x92F7
+0xEBF5 0x9334
+0xEBF6 0x9302
+0xEBF7 0x9324
+0xEBF8 0x92FF
+0xEBF9 0x9329
+0xEBFA 0x9339
+0xEBFB 0x9335
+0xEBFC 0x932A
+0xEBFD 0x9314
+0xEBFE 0x930C
+0xEC40 0x930B
+0xEC41 0x92FE
+0xEC42 0x9309
+0xEC43 0x9300
+0xEC44 0x92FB
+0xEC45 0x9316
+0xEC46 0x95BC
+0xEC47 0x95CD
+0xEC48 0x95BE
+0xEC49-0xEC4A 0x95B9
+0xEC4B 0x95B6
+0xEC4C 0x95BF
+0xEC4D 0x95B5
+0xEC4E 0x95BD
+0xEC4F 0x96A9
+0xEC50 0x96D4
+0xEC51 0x970B
+0xEC52 0x9712
+0xEC53 0x9710
+0xEC54 0x9799
+0xEC55 0x9797
+0xEC56 0x9794
+0xEC57 0x97F0
+0xEC58 0x97F8
+0xEC59 0x9835
+0xEC5A 0x982F
+0xEC5B 0x9832
+0xEC5C 0x9924
+0xEC5D 0x991F
+0xEC5E 0x9927
+0xEC5F 0x9929
+0xEC60 0x999E
+0xEC61 0x99EE
+0xEC62 0x99EC
+0xEC63 0x99E5
+0xEC64 0x99E4
+0xEC65 0x99F0
+0xEC66 0x99E3
+0xEC67 0x99EA
+0xEC68 0x99E9
+0xEC69 0x99E7
+0xEC6A 0x9AB9
+0xEC6B 0x9ABF
+0xEC6C 0x9AB4
+0xEC6D 0x9ABB
+0xEC6E 0x9AF6
+0xEC6F 0x9AFA
+0xEC70 0x9AF9
+0xEC71 0x9AF7
+0xEC72 0x9B33
+0xEC73 0x9B80
+0xEC74 0x9B85
+0xEC75 0x9B87
+0xEC76 0x9B7C
+0xEC77 0x9B7E
+0xEC78 0x9B7B
+0xEC79 0x9B82
+0xEC7A 0x9B93
+0xEC7B 0x9B92
+0xEC7C 0x9B90
+0xEC7D 0x9B7A
+0xEC7E 0x9B95
+0xECA1 0x9B7D
+0xECA2 0x9B88
+0xECA3 0x9D25
+0xECA4 0x9D17
+0xECA5 0x9D20
+0xECA6 0x9D1E
+0xECA7 0x9D14
+0xECA8 0x9D29
+0xECA9 0x9D1D
+0xECAA 0x9D18
+0xECAB 0x9D22
+0xECAC 0x9D10
+0xECAD 0x9D19
+0xECAE 0x9D1F
+0xECAF 0x9E88
+0xECB0-0xECB1 0x9E86
+0xECB2 0x9EAE
+0xECB3 0x9EAD
+0xECB4-0xECB5 0x9ED5
+0xECB6 0x9EFA
+0xECB7 0x9F12
+0xECB8 0x9F3D
+0xECB9 0x5126
+0xECBA 0x5125
+0xECBB 0x5122
+0xECBC 0x5124
+0xECBD 0x5120
+0xECBE 0x5129
+0xECBF 0x52F4
+0xECC0 0x5693
+0xECC1-0xECC2 0x568C
+0xECC3 0x5686
+0xECC4 0x5684
+0xECC5 0x5683
+0xECC6 0x567E
+0xECC7 0x5682
+0xECC8 0x567F
+0xECC9 0x5681
+0xECCA 0x58D6
+0xECCB 0x58D4
+0xECCC 0x58CF
+0xECCD 0x58D2
+0xECCE 0x5B2D
+0xECCF 0x5B25
+0xECD0 0x5B32
+0xECD1 0x5B23
+0xECD2 0x5B2C
+0xECD3 0x5B27
+0xECD4 0x5B26
+0xECD5 0x5B2F
+0xECD6 0x5B2E
+0xECD7 0x5B7B
+0xECD8-0xECD9 0x5BF1
+0xECDA 0x5DB7
+0xECDB 0x5E6C
+0xECDC 0x5E6A
+0xECDD 0x5FBE
+0xECDE 0x5FBB
+0xECDF 0x61C3
+0xECE0 0x61B5
+0xECE1 0x61BC
+0xECE2 0x61E7
+0xECE3 0x61E0
+0xECE4 0x61E5
+0xECE5 0x61E4
+0xECE6 0x61E8
+0xECE7 0x61DE
+0xECE8 0x64EF
+0xECE9 0x64E9
+0xECEA 0x64E3
+0xECEB 0x64EB
+0xECEC 0x64E4
+0xECED 0x64E8
+0xECEE 0x6581
+0xECEF 0x6580
+0xECF0 0x65B6
+0xECF1 0x65DA
+0xECF2 0x66D2
+0xECF3 0x6A8D
+0xECF4 0x6A96
+0xECF5 0x6A81
+0xECF6 0x6AA5
+0xECF7 0x6A89
+0xECF8 0x6A9F
+0xECF9 0x6A9B
+0xECFA 0x6AA1
+0xECFB 0x6A9E
+0xECFC 0x6A87
+0xECFD 0x6A93
+0xECFE 0x6A8E
+0xED40 0x6A95
+0xED41 0x6A83
+0xED42 0x6AA8
+0xED43 0x6AA4
+0xED44 0x6A91
+0xED45 0x6A7F
+0xED46 0x6AA6
+0xED47 0x6A9A
+0xED48 0x6A85
+0xED49 0x6A8C
+0xED4A 0x6A92
+0xED4B 0x6B5B
+0xED4C 0x6BAD
+0xED4D 0x6C09
+0xED4E 0x6FCC
+0xED4F 0x6FA9
+0xED50 0x6FF4
+0xED51 0x6FD4
+0xED52 0x6FE3
+0xED53 0x6FDC
+0xED54 0x6FED
+0xED55 0x6FE7
+0xED56 0x6FE6
+0xED57 0x6FDE
+0xED58 0x6FF2
+0xED59 0x6FDD
+0xED5A 0x6FE2
+0xED5B 0x6FE8
+0xED5C 0x71E1
+0xED5D 0x71F1
+0xED5E 0x71E8
+0xED5F 0x71F2
+0xED60 0x71E4
+0xED61 0x71F0
+0xED62 0x71E2
+0xED63 0x7373
+0xED64-0xED65 0x736E
+0xED66 0x7497
+0xED67 0x74B2
+0xED68 0x74AB
+0xED69 0x7490
+0xED6A 0x74AA
+0xED6B 0x74AD
+0xED6C 0x74B1
+0xED6D 0x74A5
+0xED6E 0x74AF
+0xED6F-0xED71 0x7510
+0xED72 0x750F
+0xED73 0x7584
+0xED74 0x7643
+0xED75-0xED76 0x7648
+0xED77 0x7647
+0xED78 0x76A4
+0xED79 0x76E9
+0xED7A 0x77B5
+0xED7B 0x77AB
+0xED7C 0x77B2
+0xED7D 0x77B7
+0xED7E 0x77B6
+0xEDA1 0x77B4
+0xEDA2 0x77B1
+0xEDA3 0x77A8
+0xEDA4 0x77F0
+0xEDA5 0x78F3
+0xEDA6 0x78FD
+0xEDA7 0x7902
+0xEDA8-0xEDA9 0x78FB
+0xEDAA 0x78F2
+0xEDAB 0x7905
+0xEDAC 0x78F9
+0xEDAD 0x78FE
+0xEDAE 0x7904
+0xEDAF 0x79AB
+0xEDB0 0x79A8
+0xEDB1 0x7A5C
+0xEDB2 0x7A5B
+0xEDB3 0x7A56
+0xEDB4 0x7A58
+0xEDB5 0x7A54
+0xEDB6 0x7A5A
+0xEDB7 0x7ABE
+0xEDB8-0xEDB9 0x7AC0
+0xEDBA 0x7C05
+0xEDBB 0x7C0F
+0xEDBC 0x7BF2
+0xEDBD 0x7C00
+0xEDBE 0x7BFF
+0xEDBF 0x7BFB
+0xEDC0 0x7C0E
+0xEDC1 0x7BF4
+0xEDC2 0x7C0B
+0xEDC3 0x7BF3
+0xEDC4 0x7C02
+0xEDC5 0x7C09
+0xEDC6 0x7C03
+0xEDC7 0x7C01
+0xEDC8 0x7BF8
+0xEDC9 0x7BFD
+0xEDCA 0x7C06
+0xEDCB-0xEDCC 0x7BF0
+0xEDCD 0x7C10
+0xEDCE 0x7C0A
+0xEDCF 0x7CE8
+0xEDD0 0x7E2D
+0xEDD1 0x7E3C
+0xEDD2 0x7E42
+0xEDD3 0x7E33
+0xEDD4 0x9848
+0xEDD5 0x7E38
+0xEDD6 0x7E2A
+0xEDD7 0x7E49
+0xEDD8 0x7E40
+0xEDD9 0x7E47
+0xEDDA 0x7E29
+0xEDDB 0x7E4C
+0xEDDC 0x7E30
+0xEDDD 0x7E3B
+0xEDDE 0x7E36
+0xEDDF 0x7E44
+0xEDE0 0x7E3A
+0xEDE1 0x7F45
+0xEDE2 0x7F7F
+0xEDE3 0x7F7E
+0xEDE4 0x7F7D
+0xEDE5 0x7FF4
+0xEDE6 0x7FF2
+0xEDE7 0x802C
+0xEDE8 0x81BB
+0xEDE9 0x81C4
+0xEDEA 0x81CC
+0xEDEB 0x81CA
+0xEDEC 0x81C5
+0xEDED 0x81C7
+0xEDEE 0x81BC
+0xEDEF 0x81E9
+0xEDF0 0x825B
+0xEDF1 0x825A
+0xEDF2 0x825C
+0xEDF3 0x8583
+0xEDF4 0x8580
+0xEDF5 0x858F
+0xEDF6 0x85A7
+0xEDF7 0x8595
+0xEDF8 0x85A0
+0xEDF9 0x858B
+0xEDFA 0x85A3
+0xEDFB 0x857B
+0xEDFC 0x85A4
+0xEDFD 0x859A
+0xEDFE 0x859E
+0xEE40 0x8577
+0xEE41 0x857C
+0xEE42 0x8589
+0xEE43 0x85A1
+0xEE44 0x857A
+0xEE45 0x8578
+0xEE46 0x8557
+0xEE47 0x858E
+0xEE48 0x8596
+0xEE49 0x8586
+0xEE4A 0x858D
+0xEE4B 0x8599
+0xEE4C 0x859D
+0xEE4D 0x8581
+0xEE4E 0x85A2
+0xEE4F 0x8582
+0xEE50 0x8588
+0xEE51 0x8585
+0xEE52 0x8579
+0xEE53 0x8576
+0xEE54 0x8598
+0xEE55 0x8590
+0xEE56 0x859F
+0xEE57 0x8668
+0xEE58 0x87BE
+0xEE59 0x87AA
+0xEE5A 0x87AD
+0xEE5B 0x87C5
+0xEE5C 0x87B0
+0xEE5D 0x87AC
+0xEE5E 0x87B9
+0xEE5F 0x87B5
+0xEE60 0x87BC
+0xEE61 0x87AE
+0xEE62 0x87C9
+0xEE63 0x87C3
+0xEE64 0x87C2
+0xEE65 0x87CC
+0xEE66 0x87B7
+0xEE67 0x87AF
+0xEE68 0x87C4
+0xEE69 0x87CA
+0xEE6A 0x87B4
+0xEE6B 0x87B6
+0xEE6C 0x87BF
+0xEE6D 0x87B8
+0xEE6E 0x87BD
+0xEE6F 0x87DE
+0xEE70 0x87B2
+0xEE71 0x8935
+0xEE72 0x8933
+0xEE73 0x893C
+0xEE74 0x893E
+0xEE75 0x8941
+0xEE76 0x8952
+0xEE77 0x8937
+0xEE78 0x8942
+0xEE79 0x89AD
+0xEE7A 0x89AF
+0xEE7B 0x89AE
+0xEE7C-0xEE7D 0x89F2
+0xEE7E 0x8B1E
+0xEEA1 0x8B18
+0xEEA2 0x8B16
+0xEEA3 0x8B11
+0xEEA4 0x8B05
+0xEEA5 0x8B0B
+0xEEA6 0x8B22
+0xEEA7 0x8B0F
+0xEEA8 0x8B12
+0xEEA9 0x8B15
+0xEEAA 0x8B07
+0xEEAB 0x8B0D
+0xEEAC 0x8B08
+0xEEAD 0x8B06
+0xEEAE 0x8B1C
+0xEEAF 0x8B13
+0xEEB0 0x8B1A
+0xEEB1 0x8C4F
+0xEEB2 0x8C70
+0xEEB3 0x8C72
+0xEEB4 0x8C71
+0xEEB5 0x8C6F
+0xEEB6 0x8C95
+0xEEB7 0x8C94
+0xEEB8 0x8CF9
+0xEEB9 0x8D6F
+0xEEBA 0x8E4E
+0xEEBB 0x8E4D
+0xEEBC 0x8E53
+0xEEBD 0x8E50
+0xEEBE 0x8E4C
+0xEEBF 0x8E47
+0xEEC0 0x8F43
+0xEEC1 0x8F40
+0xEEC2 0x9085
+0xEEC3 0x907E
+0xEEC4 0x9138
+0xEEC5 0x919A
+0xEEC6 0x91A2
+0xEEC7 0x919B
+0xEEC8 0x9199
+0xEEC9 0x919F
+0xEECA 0x91A1
+0xEECB 0x919D
+0xEECC 0x91A0
+0xEECD 0x93A1
+0xEECE 0x9383
+0xEECF 0x93AF
+0xEED0 0x9364
+0xEED1 0x9356
+0xEED2 0x9347
+0xEED3 0x937C
+0xEED4 0x9358
+0xEED5 0x935C
+0xEED6 0x9376
+0xEED7 0x9349
+0xEED8-0xEED9 0x9350
+0xEEDA 0x9360
+0xEEDB 0x936D
+0xEEDC 0x938F
+0xEEDD 0x934C
+0xEEDE 0x936A
+0xEEDF 0x9379
+0xEEE0 0x9357
+0xEEE1 0x9355
+0xEEE2 0x9352
+0xEEE3 0x934F
+0xEEE4 0x9371
+0xEEE5 0x9377
+0xEEE6 0x937B
+0xEEE7 0x9361
+0xEEE8 0x935E
+0xEEE9 0x9363
+0xEEEA 0x9367
+0xEEEB 0x9380
+0xEEEC 0x934E
+0xEEED 0x9359
+0xEEEE 0x95C7
+0xEEEF 0x95C0
+0xEEF0 0x95C9
+0xEEF1 0x95C3
+0xEEF2 0x95C5
+0xEEF3 0x95B7
+0xEEF4 0x96AE
+0xEEF5 0x96B0
+0xEEF6 0x96AC
+0xEEF7 0x9720
+0xEEF8 0x971F
+0xEEF9 0x9718
+0xEEFA 0x971D
+0xEEFB 0x9719
+0xEEFC 0x979A
+0xEEFD 0x97A1
+0xEEFE 0x979C
+0xEF40 0x979E
+0xEF41 0x979D
+0xEF42 0x97D5
+0xEF43 0x97D4
+0xEF44 0x97F1
+0xEF45 0x9841
+0xEF46 0x9844
+0xEF47 0x984A
+0xEF48 0x9849
+0xEF49 0x9845
+0xEF4A 0x9843
+0xEF4B 0x9925
+0xEF4C-0xEF4D 0x992B
+0xEF4E 0x992A
+0xEF4F 0x9933
+0xEF50 0x9932
+0xEF51 0x992F
+0xEF52 0x992D
+0xEF53 0x9931
+0xEF54 0x9930
+0xEF55 0x9998
+0xEF56 0x99A3
+0xEF57 0x99A1
+0xEF58 0x9A02
+0xEF59 0x99FA
+0xEF5A 0x99F4
+0xEF5B 0x99F7
+0xEF5C 0x99F9
+0xEF5D 0x99F8
+0xEF5E 0x99F6
+0xEF5F 0x99FB
+0xEF60-0xEF61 0x99FD
+0xEF62 0x99FC
+0xEF63 0x9A03
+0xEF64 0x9ABE
+0xEF65 0x9AFE
+0xEF66 0x9AFD
+0xEF67 0x9B01
+0xEF68 0x9AFC
+0xEF69 0x9B48
+0xEF6A 0x9B9A
+0xEF6B 0x9BA8
+0xEF6C 0x9B9E
+0xEF6D 0x9B9B
+0xEF6E 0x9BA6
+0xEF6F 0x9BA1
+0xEF70 0x9BA5
+0xEF71 0x9BA4
+0xEF72 0x9B86
+0xEF73 0x9BA2
+0xEF74 0x9BA0
+0xEF75 0x9BAF
+0xEF76 0x9D33
+0xEF77 0x9D41
+0xEF78 0x9D67
+0xEF79 0x9D36
+0xEF7A-0xEF7B 0x9D2E
+0xEF7C 0x9D31
+0xEF7D 0x9D38
+0xEF7E 0x9D30
+0xEFA1 0x9D45
+0xEFA2-0xEFA3 0x9D42
+0xEFA4 0x9D3E
+0xEFA5 0x9D37
+0xEFA6 0x9D40
+0xEFA7 0x9D3D
+0xEFA8 0x7FF5
+0xEFA9 0x9D2D
+0xEFAA 0x9E8A
+0xEFAB 0x9E89
+0xEFAC 0x9E8D
+0xEFAD 0x9EB0
+0xEFAE 0x9EC8
+0xEFAF 0x9EDA
+0xEFB0 0x9EFB
+0xEFB1 0x9EFF
+0xEFB2 0x9F24
+0xEFB3 0x9F23
+0xEFB4 0x9F22
+0xEFB5 0x9F54
+0xEFB6 0x9FA0
+0xEFB7 0x5131
+0xEFB8-0xEFB9 0x512D
+0xEFBA 0x5698
+0xEFBB 0x569C
+0xEFBC 0x5697
+0xEFBD 0x569A
+0xEFBE 0x569D
+0xEFBF 0x5699
+0xEFC0 0x5970
+0xEFC1 0x5B3C
+0xEFC2-0xEFC3 0x5C69
+0xEFC4 0x5DC0
+0xEFC5-0xEFC6 0x5E6D
+0xEFC7 0x61D8
+0xEFC8 0x61DF
+0xEFC9-0xEFCA 0x61ED
+0xEFCB 0x61F1
+0xEFCC 0x61EA
+0xEFCD 0x61F0
+0xEFCE 0x61EB
+0xEFCF 0x61D6
+0xEFD0 0x61E9
+0xEFD1 0x64FF
+0xEFD2 0x6504
+0xEFD3 0x64FD
+0xEFD4 0x64F8
+0xEFD5 0x6501
+0xEFD6 0x6503
+0xEFD7 0x64FC
+0xEFD8 0x6594
+0xEFD9 0x65DB
+0xEFDA-0xEFDB 0x66DA
+0xEFDC 0x66D8
+0xEFDD 0x6AC5
+0xEFDE 0x6AB9
+0xEFDF 0x6ABD
+0xEFE0 0x6AE1
+0xEFE1 0x6AC6
+0xEFE2 0x6ABA
+0xEFE3-0xEFE4 0x6AB6
+0xEFE5 0x6AC7
+0xEFE6 0x6AB4
+0xEFE7 0x6AAD
+0xEFE8 0x6B5E
+0xEFE9 0x6BC9
+0xEFEA 0x6C0B
+0xEFEB 0x7007
+0xEFEC-0xEFED 0x700C
+0xEFEE 0x7001
+0xEFEF 0x7005
+0xEFF0 0x7014
+0xEFF1 0x700E
+0xEFF2-0xEFF3 0x6FFF
+0xEFF4 0x6FFB
+0xEFF5 0x7026
+0xEFF6 0x6FFC
+0xEFF7 0x6FF7
+0xEFF8 0x700A
+0xEFF9 0x7201
+0xEFFA 0x71FF
+0xEFFB 0x71F9
+0xEFFC 0x7203
+0xEFFD 0x71FD
+0xEFFE 0x7376
+0xF040 0x74B8
+0xF041 0x74C0
+0xF042 0x74B5
+0xF043 0x74C1
+0xF044 0x74BE
+0xF045 0x74B6
+0xF046 0x74BB
+0xF047 0x74C2
+0xF048 0x7514
+0xF049 0x7513
+0xF04A 0x765C
+0xF04B 0x7664
+0xF04C 0x7659
+0xF04D 0x7650
+0xF04E 0x7653
+0xF04F 0x7657
+0xF050 0x765A
+0xF051 0x76A6
+0xF052 0x76BD
+0xF053 0x76EC
+0xF054 0x77C2
+0xF055 0x77BA
+0xF056 0x78FF
+0xF057 0x790C
+0xF058-0xF059 0x7913
+0xF05A 0x7909
+0xF05B 0x7910
+0xF05C 0x7912
+0xF05D 0x7911
+0xF05E 0x79AD
+0xF05F 0x79AC
+0xF060 0x7A5F
+0xF061 0x7C1C
+0xF062 0x7C29
+0xF063 0x7C19
+0xF064 0x7C20
+0xF065 0x7C1F
+0xF066 0x7C2D
+0xF067 0x7C1D
+0xF068 0x7C26
+0xF069 0x7C28
+0xF06A 0x7C22
+0xF06B 0x7C25
+0xF06C 0x7C30
+0xF06D 0x7E5C
+0xF06E 0x7E50
+0xF06F 0x7E56
+0xF070 0x7E63
+0xF071 0x7E58
+0xF072 0x7E62
+0xF073 0x7E5F
+0xF074 0x7E51
+0xF075 0x7E60
+0xF076 0x7E57
+0xF077 0x7E53
+0xF078 0x7FB5
+0xF079 0x7FB3
+0xF07A-0xF07B 0x7FF7
+0xF07C 0x8075
+0xF07D-0xF07E 0x81D1
+0xF0A1 0x81D0
+0xF0A2 0x825F
+0xF0A3 0x825E
+0xF0A4 0x85B4
+0xF0A5 0x85C6
+0xF0A6 0x85C0
+0xF0A7 0x85C3
+0xF0A8 0x85C2
+0xF0A9 0x85B3
+0xF0AA 0x85B5
+0xF0AB 0x85BD
+0xF0AC 0x85C7
+0xF0AD 0x85C4
+0xF0AE 0x85BF
+0xF0AF 0x85CB
+0xF0B0 0x85CE
+0xF0B1 0x85C8
+0xF0B2 0x85C5
+0xF0B3 0x85B1
+0xF0B4 0x85B6
+0xF0B5 0x85D2
+0xF0B6 0x8624
+0xF0B7 0x85B8
+0xF0B8 0x85B7
+0xF0B9 0x85BE
+0xF0BA 0x8669
+0xF0BB 0x87E7
+0xF0BC 0x87E6
+0xF0BD 0x87E2
+0xF0BE 0x87DB
+0xF0BF 0x87EB
+0xF0C0 0x87EA
+0xF0C1 0x87E5
+0xF0C2 0x87DF
+0xF0C3 0x87F3
+0xF0C4 0x87E4
+0xF0C5 0x87D4
+0xF0C6 0x87DC
+0xF0C7 0x87D3
+0xF0C8 0x87ED
+0xF0C9 0x87D8
+0xF0CA 0x87E3
+0xF0CB 0x87A4
+0xF0CC 0x87D7
+0xF0CD 0x87D9
+0xF0CE 0x8801
+0xF0CF 0x87F4
+0xF0D0 0x87E8
+0xF0D1 0x87DD
+0xF0D2 0x8953
+0xF0D3 0x894B
+0xF0D4 0x894F
+0xF0D5 0x894C
+0xF0D6 0x8946
+0xF0D7-0xF0D8 0x8950
+0xF0D9 0x8949
+0xF0DA 0x8B2A
+0xF0DB 0x8B27
+0xF0DC 0x8B23
+0xF0DD 0x8B33
+0xF0DE 0x8B30
+0xF0DF 0x8B35
+0xF0E0 0x8B47
+0xF0E1 0x8B2F
+0xF0E2 0x8B3C
+0xF0E3 0x8B3E
+0xF0E4 0x8B31
+0xF0E5 0x8B25
+0xF0E6 0x8B37
+0xF0E7 0x8B26
+0xF0E8 0x8B36
+0xF0E9 0x8B2E
+0xF0EA 0x8B24
+0xF0EB 0x8B3B
+0xF0EC 0x8B3D
+0xF0ED 0x8B3A
+0xF0EE 0x8C42
+0xF0EF 0x8C75
+0xF0F0 0x8C99
+0xF0F1 0x8C98
+0xF0F2 0x8C97
+0xF0F3 0x8CFE
+0xF0F4 0x8D04
+0xF0F5 0x8D02
+0xF0F6 0x8D00
+0xF0F7 0x8E5C
+0xF0F8 0x8E62
+0xF0F9 0x8E60
+0xF0FA 0x8E57
+0xF0FB 0x8E56
+0xF0FC 0x8E5E
+0xF0FD 0x8E65
+0xF0FE 0x8E67
+0xF140 0x8E5B
+0xF141 0x8E5A
+0xF142 0x8E61
+0xF143 0x8E5D
+0xF144 0x8E69
+0xF145 0x8E54
+0xF146-0xF148 0x8F46
+0xF149 0x8F4B
+0xF14A 0x9128
+0xF14B-0xF14C 0x913A
+0xF14D 0x913E
+0xF14E 0x91A8
+0xF14F 0x91A5
+0xF150 0x91A7
+0xF151 0x91AF
+0xF152 0x91AA
+0xF153 0x93B5
+0xF154 0x938C
+0xF155 0x9392
+0xF156 0x93B7
+0xF157 0x939B
+0xF158 0x939D
+0xF159 0x9389
+0xF15A 0x93A7
+0xF15B 0x938E
+0xF15C 0x93AA
+0xF15D 0x939E
+0xF15E 0x93A6
+0xF15F 0x9395
+0xF160 0x9388
+0xF161 0x9399
+0xF162 0x939F
+0xF163 0x938D
+0xF164 0x93B1
+0xF165 0x9391
+0xF166 0x93B2
+0xF167 0x93A4
+0xF168 0x93A8
+0xF169 0x93B4
+0xF16A 0x93A3
+0xF16B 0x93A5
+0xF16C-0xF16D 0x95D2
+0xF16E 0x95D1
+0xF16F 0x96B3
+0xF170 0x96D7
+0xF171 0x96DA
+0xF172 0x5DC2
+0xF173 0x96DF
+0xF174 0x96D8
+0xF175 0x96DD
+0xF176 0x9723
+0xF177 0x9722
+0xF178 0x9725
+0xF179 0x97AC
+0xF17A 0x97AE
+0xF17B 0x97A8
+0xF17C 0x97AB
+0xF17D 0x97A4
+0xF17E 0x97AA
+0xF1A1 0x97A2
+0xF1A2 0x97A5
+0xF1A3 0x97D7
+0xF1A4 0x97D9
+0xF1A5 0x97D6
+0xF1A6 0x97D8
+0xF1A7 0x97FA
+0xF1A8-0xF1AA 0x9850
+0xF1AB 0x98B8
+0xF1AC 0x9941
+0xF1AD 0x993C
+0xF1AE 0x993A
+0xF1AF 0x9A0F
+0xF1B0 0x9A0B
+0xF1B1 0x9A09
+0xF1B2 0x9A0D
+0xF1B3 0x9A04
+0xF1B4 0x9A11
+0xF1B5 0x9A0A
+0xF1B6 0x9A05
+0xF1B7 0x9A07
+0xF1B8 0x9A06
+0xF1B9 0x9AC0
+0xF1BA 0x9ADC
+0xF1BB 0x9B08
+0xF1BC-0xF1BD 0x9B04
+0xF1BE 0x9B29
+0xF1BF 0x9B35
+0xF1C0 0x9B4A
+0xF1C1 0x9B4C
+0xF1C2 0x9B4B
+0xF1C3 0x9BC7
+0xF1C4 0x9BC6
+0xF1C5 0x9BC3
+0xF1C6 0x9BBF
+0xF1C7 0x9BC1
+0xF1C8 0x9BB5
+0xF1C9 0x9BB8
+0xF1CA 0x9BD3
+0xF1CB 0x9BB6
+0xF1CC 0x9BC4
+0xF1CD 0x9BB9
+0xF1CE 0x9BBD
+0xF1CF 0x9D5C
+0xF1D0 0x9D53
+0xF1D1 0x9D4F
+0xF1D2 0x9D4A
+0xF1D3 0x9D5B
+0xF1D4 0x9D4B
+0xF1D5 0x9D59
+0xF1D6 0x9D56
+0xF1D7 0x9D4C
+0xF1D8 0x9D57
+0xF1D9 0x9D52
+0xF1DA 0x9D54
+0xF1DB 0x9D5F
+0xF1DC 0x9D58
+0xF1DD 0x9D5A
+0xF1DE 0x9E8E
+0xF1DF 0x9E8C
+0xF1E0 0x9EDF
+0xF1E1 0x9F01
+0xF1E2 0x9F00
+0xF1E3 0x9F16
+0xF1E4 0x9F25
+0xF1E5 0x9F2B
+0xF1E6 0x9F2A
+0xF1E7 0x9F29
+0xF1E8 0x9F28
+0xF1E9 0x9F4C
+0xF1EA 0x9F55
+0xF1EB-0xF1EC 0x5134
+0xF1ED 0x5296
+0xF1EE 0x52F7
+0xF1EF 0x53B4
+0xF1F0 0x56AB
+0xF1F1 0x56AD
+0xF1F2-0xF1F3 0x56A6
+0xF1F4 0x56AA
+0xF1F5 0x56AC
+0xF1F6 0x58DA
+0xF1F7 0x58DD
+0xF1F8 0x58DB
+0xF1F9 0x5912
+0xF1FA-0xF1FC 0x5B3D
+0xF1FD 0x5DC3
+0xF1FE 0x5E70
+0xF240 0x5FBF
+0xF241 0x61FB
+0xF242 0x6507
+0xF243 0x6510
+0xF244 0x650D
+0xF245 0x6509
+0xF246 0x650C
+0xF247 0x650E
+0xF248 0x6584
+0xF249 0x65DE
+0xF24A 0x65DD
+0xF24B 0x66DE
+0xF24C 0x6AE7
+0xF24D 0x6AE0
+0xF24E 0x6ACC
+0xF24F 0x6AD1
+0xF250 0x6AD9
+0xF251 0x6ACB
+0xF252 0x6ADF
+0xF253 0x6ADC
+0xF254 0x6AD0
+0xF255 0x6AEB
+0xF256 0x6ACF
+0xF257 0x6ACD
+0xF258 0x6ADE
+0xF259 0x6B60
+0xF25A 0x6BB0
+0xF25B 0x6C0C
+0xF25C 0x7019
+0xF25D 0x7027
+0xF25E 0x7020
+0xF25F 0x7016
+0xF260 0x702B
+0xF261-0xF263 0x7021
+0xF264 0x7029
+0xF265 0x7017
+0xF266 0x7024
+0xF267 0x701C
+0xF268 0x702A
+0xF269 0x720C
+0xF26A 0x720A
+0xF26B 0x7207
+0xF26C 0x7202
+0xF26D 0x7205
+0xF26E-0xF26F 0x72A5
+0xF270 0x72A4
+0xF271 0x72A3
+0xF272 0x72A1
+0xF273 0x74CB
+0xF274 0x74C5
+0xF275 0x74B7
+0xF276 0x74C3
+0xF277 0x7516
+0xF278 0x7660
+0xF279-0xF27A 0x77C9
+0xF27B 0x77C4
+0xF27C 0x77F1
+0xF27D 0x791D
+0xF27E 0x791B
+0xF2A1 0x7921
+0xF2A2 0x791C
+0xF2A3 0x7917
+0xF2A4 0x791E
+0xF2A5 0x79B0
+0xF2A6-0xF2A7 0x7A67
+0xF2A8 0x7C33
+0xF2A9 0x7C3C
+0xF2AA 0x7C39
+0xF2AB 0x7C2C
+0xF2AC 0x7C3B
+0xF2AD 0x7CEC
+0xF2AE 0x7CEA
+0xF2AF 0x7E76
+0xF2B0 0x7E75
+0xF2B1 0x7E78
+0xF2B2 0x7E70
+0xF2B3 0x7E77
+0xF2B4 0x7E6F
+0xF2B5 0x7E7A
+0xF2B6 0x7E72
+0xF2B7 0x7E74
+0xF2B8 0x7E68
+0xF2B9 0x7F4B
+0xF2BA 0x7F4A
+0xF2BB 0x7F83
+0xF2BC 0x7F86
+0xF2BD 0x7FB7
+0xF2BE-0xF2BF 0x7FFD
+0xF2C0 0x8078
+0xF2C1 0x81D7
+0xF2C2 0x81D5
+0xF2C3 0x8264
+0xF2C4 0x8261
+0xF2C5 0x8263
+0xF2C6 0x85EB
+0xF2C7 0x85F1
+0xF2C8 0x85ED
+0xF2C9 0x85D9
+0xF2CA 0x85E1
+0xF2CB 0x85E8
+0xF2CC 0x85DA
+0xF2CD 0x85D7
+0xF2CE 0x85EC
+0xF2CF 0x85F2
+0xF2D0 0x85F8
+0xF2D1 0x85D8
+0xF2D2 0x85DF
+0xF2D3 0x85E3
+0xF2D4 0x85DC
+0xF2D5 0x85D1
+0xF2D6 0x85F0
+0xF2D7 0x85E6
+0xF2D8 0x85EF
+0xF2D9 0x85DE
+0xF2DA 0x85E2
+0xF2DB 0x8800
+0xF2DC 0x87FA
+0xF2DD 0x8803
+0xF2DE-0xF2DF 0x87F6
+0xF2E0 0x8809
+0xF2E1 0x880C
+0xF2E2 0x880B
+0xF2E3 0x8806
+0xF2E4 0x87FC
+0xF2E5 0x8808
+0xF2E6 0x87FF
+0xF2E7 0x880A
+0xF2E8 0x8802
+0xF2E9 0x8962
+0xF2EA-0xF2EB 0x895A
+0xF2EC 0x8957
+0xF2ED 0x8961
+0xF2EE 0x895C
+0xF2EF 0x8958
+0xF2F0 0x895D
+0xF2F1 0x8959
+0xF2F2 0x8988
+0xF2F3 0x89B7
+0xF2F4 0x89B6
+0xF2F5 0x89F6
+0xF2F6 0x8B50
+0xF2F7 0x8B48
+0xF2F8 0x8B4A
+0xF2F9 0x8B40
+0xF2FA 0x8B53
+0xF2FB 0x8B56
+0xF2FC 0x8B54
+0xF2FD 0x8B4B
+0xF2FE 0x8B55
+0xF340 0x8B51
+0xF341 0x8B42
+0xF342 0x8B52
+0xF343 0x8B57
+0xF344 0x8C43
+0xF345 0x8C77
+0xF346 0x8C76
+0xF347 0x8C9A
+0xF348-0xF349 0x8D06
+0xF34A 0x8D09
+0xF34B 0x8DAC
+0xF34C 0x8DAA
+0xF34D 0x8DAD
+0xF34E 0x8DAB
+0xF34F 0x8E6D
+0xF350 0x8E78
+0xF351 0x8E73
+0xF352 0x8E6A
+0xF353 0x8E6F
+0xF354 0x8E7B
+0xF355 0x8EC2
+0xF356 0x8F52
+0xF357 0x8F51
+0xF358-0xF359 0x8F4F
+0xF35A 0x8F53
+0xF35B 0x8FB4
+0xF35C 0x9140
+0xF35D 0x913F
+0xF35E 0x91B0
+0xF35F 0x91AD
+0xF360 0x93DE
+0xF361 0x93C7
+0xF362 0x93CF
+0xF363 0x93C2
+0xF364 0x93DA
+0xF365 0x93D0
+0xF366 0x93F9
+0xF367 0x93EC
+0xF368 0x93CC
+0xF369 0x93D9
+0xF36A 0x93A9
+0xF36B 0x93E6
+0xF36C 0x93CA
+0xF36D 0x93D4
+0xF36E 0x93EE
+0xF36F 0x93E3
+0xF370 0x93D5
+0xF371 0x93C4
+0xF372 0x93CE
+0xF373 0x93C0
+0xF374 0x93D2
+0xF375 0x93E7
+0xF376 0x957D
+0xF377-0xF378 0x95DA
+0xF379 0x96E1
+0xF37A 0x9729
+0xF37B-0xF37C 0x972B
+0xF37D 0x9728
+0xF37E 0x9726
+0xF3A1 0x97B3
+0xF3A2 0x97B7
+0xF3A3 0x97B6
+0xF3A4-0xF3A6 0x97DD
+0xF3A7 0x985C
+0xF3A8 0x9859
+0xF3A9 0x985D
+0xF3AA 0x9857
+0xF3AB 0x98BF
+0xF3AC 0x98BD
+0xF3AD 0x98BB
+0xF3AE 0x98BE
+0xF3AF 0x9948
+0xF3B0 0x9947
+0xF3B1 0x9943
+0xF3B2-0xF3B3 0x99A6
+0xF3B4 0x9A1A
+0xF3B5 0x9A15
+0xF3B6 0x9A25
+0xF3B7 0x9A1D
+0xF3B8 0x9A24
+0xF3B9 0x9A1B
+0xF3BA 0x9A22
+0xF3BB 0x9A20
+0xF3BC 0x9A27
+0xF3BD 0x9A23
+0xF3BE 0x9A1E
+0xF3BF 0x9A1C
+0xF3C0 0x9A14
+0xF3C1 0x9AC2
+0xF3C2 0x9B0B
+0xF3C3 0x9B0A
+0xF3C4 0x9B0E
+0xF3C5 0x9B0C
+0xF3C6 0x9B37
+0xF3C7-0xF3C8 0x9BEA
+0xF3C9 0x9BE0
+0xF3CA 0x9BDE
+0xF3CB 0x9BE4
+0xF3CC 0x9BE6
+0xF3CD 0x9BE2
+0xF3CE 0x9BF0
+0xF3CF 0x9BD4
+0xF3D0 0x9BD7
+0xF3D1 0x9BEC
+0xF3D2 0x9BDC
+0xF3D3 0x9BD9
+0xF3D4 0x9BE5
+0xF3D5 0x9BD5
+0xF3D6 0x9BE1
+0xF3D7 0x9BDA
+0xF3D8 0x9D77
+0xF3D9 0x9D81
+0xF3DA 0x9D8A
+0xF3DB 0x9D84
+0xF3DC 0x9D88
+0xF3DD 0x9D71
+0xF3DE 0x9D80
+0xF3DF 0x9D78
+0xF3E0 0x9D86
+0xF3E1-0xF3E2 0x9D8B
+0xF3E3 0x9D7D
+0xF3E4 0x9D6B
+0xF3E5-0xF3E6 0x9D74
+0xF3E7 0x9D70
+0xF3E8 0x9D69
+0xF3E9 0x9D85
+0xF3EA 0x9D73
+0xF3EB 0x9D7B
+0xF3EC 0x9D82
+0xF3ED 0x9D6F
+0xF3EE 0x9D79
+0xF3EF 0x9D7F
+0xF3F0 0x9D87
+0xF3F1 0x9D68
+0xF3F2 0x9E94
+0xF3F3 0x9E91
+0xF3F4 0x9EC0
+0xF3F5 0x9EFC
+0xF3F6 0x9F2D
+0xF3F7-0xF3F8 0x9F40
+0xF3F9 0x9F4D
+0xF3FA-0xF3FC 0x9F56
+0xF3FD 0x5337
+0xF3FE 0x56B2
+0xF440 0x56B5
+0xF441 0x56B3
+0xF442 0x58E3
+0xF443 0x5B45
+0xF444-0xF445 0x5DC6
+0xF446-0xF447 0x5EEE
+0xF448-0xF449 0x5FC0
+0xF44A 0x61F9
+0xF44B 0x6517
+0xF44C 0x6516
+0xF44D 0x6515
+0xF44E 0x6513
+0xF44F 0x65DF
+0xF450 0x66E8
+0xF451-0xF452 0x66E3
+0xF453 0x6AF3
+0xF454 0x6AF0
+0xF455 0x6AEA
+0xF456 0x6AE8
+0xF457 0x6AF9
+0xF458 0x6AF1
+0xF459-0xF45A 0x6AEE
+0xF45B 0x703C
+0xF45C 0x7035
+0xF45D 0x702F
+0xF45E 0x7037
+0xF45F 0x7034
+0xF460 0x7031
+0xF461 0x7042
+0xF462 0x7038
+0xF463 0x703F
+0xF464 0x703A
+0xF465 0x7039
+0xF466 0x7040
+0xF467 0x703B
+0xF468 0x7033
+0xF469 0x7041
+0xF46A-0xF46B 0x7213
+0xF46C 0x72A8
+0xF46D 0x737D
+0xF46E 0x737C
+0xF46F 0x74BA
+0xF470 0x76AB
+0xF471 0x76AA
+0xF472 0x76BE
+0xF473 0x76ED
+0xF474 0x77CC
+0xF475-0xF476 0x77CE
+0xF477 0x77CD
+0xF478 0x77F2
+0xF479 0x7925
+0xF47A 0x7923
+0xF47B-0xF47C 0x7927
+0xF47D 0x7924
+0xF47E 0x7929
+0xF4A1 0x79B2
+0xF4A2 0x7A6E
+0xF4A3-0xF4A4 0x7A6C
+0xF4A5 0x7AF7
+0xF4A6 0x7C49
+0xF4A7 0x7C48
+0xF4A8 0x7C4A
+0xF4A9 0x7C47
+0xF4AA 0x7C45
+0xF4AB 0x7CEE
+0xF4AC 0x7E7B
+0xF4AD 0x7E7E
+0xF4AE 0x7E81
+0xF4AF 0x7E80
+0xF4B0 0x7FBA
+0xF4B1 0x7FFF
+0xF4B2 0x8079
+0xF4B3 0x81DB
+0xF4B4 0x81D9
+0xF4B5 0x820B
+0xF4B6-0xF4B7 0x8268
+0xF4B8 0x8622
+0xF4B9 0x85FF
+0xF4BA 0x8601
+0xF4BB 0x85FE
+0xF4BC 0x861B
+0xF4BD 0x8600
+0xF4BE 0x85F6
+0xF4BF 0x8604
+0xF4C0 0x8609
+0xF4C1 0x8605
+0xF4C2 0x860C
+0xF4C3 0x85FD
+0xF4C4 0x8819
+0xF4C5-0xF4C6 0x8810
+0xF4C7 0x8817
+0xF4C8 0x8813
+0xF4C9 0x8816
+0xF4CA 0x8963
+0xF4CB 0x8966
+0xF4CC 0x89B9
+0xF4CD 0x89F7
+0xF4CE 0x8B60
+0xF4CF 0x8B6A
+0xF4D0 0x8B5D
+0xF4D1 0x8B68
+0xF4D2 0x8B63
+0xF4D3 0x8B65
+0xF4D4 0x8B67
+0xF4D5 0x8B6D
+0xF4D6 0x8DAE
+0xF4D7 0x8E86
+0xF4D8 0x8E88
+0xF4D9 0x8E84
+0xF4DA 0x8F59
+0xF4DB-0xF4DC 0x8F56
+0xF4DD 0x8F55
+0xF4DE 0x8F58
+0xF4DF 0x8F5A
+0xF4E0 0x908D
+0xF4E1 0x9143
+0xF4E2 0x9141
+0xF4E3 0x91B7
+0xF4E4 0x91B5
+0xF4E5-0xF4E6 0x91B2
+0xF4E7 0x940B
+0xF4E8 0x9413
+0xF4E9 0x93FB
+0xF4EA 0x9420
+0xF4EB 0x940F
+0xF4EC 0x9414
+0xF4ED 0x93FE
+0xF4EE 0x9415
+0xF4EF 0x9410
+0xF4F0 0x9428
+0xF4F1 0x9419
+0xF4F2 0x940D
+0xF4F3 0x93F5
+0xF4F4 0x9400
+0xF4F5 0x93F7
+0xF4F6 0x9407
+0xF4F7 0x940E
+0xF4F8 0x9416
+0xF4F9 0x9412
+0xF4FA 0x93FA
+0xF4FB 0x9409
+0xF4FC 0x93F8
+0xF4FD 0x940A
+0xF4FE 0x93FF
+0xF540 0x93FC
+0xF541 0x940C
+0xF542 0x93F6
+0xF543 0x9411
+0xF544 0x9406
+0xF545 0x95DE
+0xF546 0x95E0
+0xF547 0x95DF
+0xF548-0xF549 0x972E
+0xF54A 0x97B9
+0xF54B 0x97BB
+0xF54C-0xF54D 0x97FD
+0xF54E 0x9860
+0xF54F-0xF550 0x9862
+0xF551 0x985F
+0xF552-0xF553 0x98C1
+0xF554 0x9950
+0xF555 0x994E
+0xF556 0x9959
+0xF557 0x994C
+0xF558 0x994B
+0xF559 0x9953
+0xF55A 0x9A32
+0xF55B 0x9A34
+0xF55C 0x9A31
+0xF55D 0x9A2C
+0xF55E 0x9A2A
+0xF55F 0x9A36
+0xF560 0x9A29
+0xF561 0x9A2E
+0xF562 0x9A38
+0xF563 0x9A2D
+0xF564 0x9AC7
+0xF565 0x9ACA
+0xF566 0x9AC6
+0xF567 0x9B10
+0xF568 0x9B12
+0xF569 0x9B11
+0xF56A 0x9C0B
+0xF56B 0x9C08
+0xF56C 0x9BF7
+0xF56D 0x9C05
+0xF56E 0x9C12
+0xF56F 0x9BF8
+0xF570 0x9C40
+0xF571 0x9C07
+0xF572 0x9C0E
+0xF573 0x9C06
+0xF574 0x9C17
+0xF575 0x9C14
+0xF576 0x9C09
+0xF577 0x9D9F
+0xF578 0x9D99
+0xF579 0x9DA4
+0xF57A 0x9D9D
+0xF57B 0x9D92
+0xF57C 0x9D98
+0xF57D 0x9D90
+0xF57E 0x9D9B
+0xF5A1 0x9DA0
+0xF5A2 0x9D94
+0xF5A3 0x9D9C
+0xF5A4 0x9DAA
+0xF5A5 0x9D97
+0xF5A6 0x9DA1
+0xF5A7 0x9D9A
+0xF5A8 0x9DA2
+0xF5A9 0x9DA8
+0xF5AA 0x9D9E
+0xF5AB 0x9DA3
+0xF5AC 0x9DBF
+0xF5AD 0x9DA9
+0xF5AE 0x9D96
+0xF5AF-0xF5B0 0x9DA6
+0xF5B1 0x9E99
+0xF5B2 0x9E9B
+0xF5B3 0x9E9A
+0xF5B4 0x9EE5
+0xF5B5 0x9EE4
+0xF5B6 0x9EE7
+0xF5B7 0x9EE6
+0xF5B8 0x9F30
+0xF5B9 0x9F2E
+0xF5BA 0x9F5B
+0xF5BB 0x9F60
+0xF5BC 0x9F5E
+0xF5BD 0x9F5D
+0xF5BE 0x9F59
+0xF5BF 0x9F91
+0xF5C0 0x513A
+0xF5C1 0x5139
+0xF5C2 0x5298
+0xF5C3 0x5297
+0xF5C4 0x56C3
+0xF5C5-0xF5C6 0x56BD
+0xF5C7 0x5B48
+0xF5C8 0x5B47
+0xF5C9 0x5DCB
+0xF5CA 0x5DCF
+0xF5CB 0x5EF1
+0xF5CC 0x61FD
+0xF5CD 0x651B
+0xF5CE 0x6B02
+0xF5CF 0x6AFC
+0xF5D0 0x6B03
+0xF5D1 0x6AF8
+0xF5D2 0x6B00
+0xF5D3-0xF5D4 0x7043
+0xF5D5 0x704A
+0xF5D6-0xF5D7 0x7048
+0xF5D8-0xF5D9 0x7045
+0xF5DA 0x721D
+0xF5DB 0x721A
+0xF5DC 0x7219
+0xF5DD 0x737E
+0xF5DE 0x7517
+0xF5DF 0x766A
+0xF5E0 0x77D0
+0xF5E1 0x792D
+0xF5E2 0x7931
+0xF5E3 0x792F
+0xF5E4 0x7C54
+0xF5E5 0x7C53
+0xF5E6 0x7CF2
+0xF5E7 0x7E8A
+0xF5E8-0xF5E9 0x7E87
+0xF5EA 0x7E8B
+0xF5EB 0x7E86
+0xF5EC 0x7E8D
+0xF5ED 0x7F4D
+0xF5EE 0x7FBB
+0xF5EF 0x8030
+0xF5F0 0x81DD
+0xF5F1 0x8618
+0xF5F2 0x862A
+0xF5F3 0x8626
+0xF5F4 0x861F
+0xF5F5 0x8623
+0xF5F6 0x861C
+0xF5F7 0x8619
+0xF5F8 0x8627
+0xF5F9 0x862E
+0xF5FA 0x8621
+0xF5FB 0x8620
+0xF5FC 0x8629
+0xF5FD 0x861E
+0xF5FE 0x8625
+0xF640 0x8829
+0xF641 0x881D
+0xF642 0x881B
+0xF643 0x8820
+0xF644 0x8824
+0xF645 0x881C
+0xF646 0x882B
+0xF647 0x884A
+0xF648 0x896D
+0xF649 0x8969
+0xF64A 0x896E
+0xF64B 0x896B
+0xF64C 0x89FA
+0xF64D 0x8B79
+0xF64E 0x8B78
+0xF64F 0x8B45
+0xF650-0xF651 0x8B7A
+0xF652 0x8D10
+0xF653 0x8D14
+0xF654 0x8DAF
+0xF655 0x8E8E
+0xF656 0x8E8C
+0xF657 0x8F5E
+0xF658 0x8F5B
+0xF659 0x8F5D
+0xF65A 0x9146
+0xF65B-0xF65C 0x9144
+0xF65D 0x91B9
+0xF65E 0x943F
+0xF65F 0x943B
+0xF660 0x9436
+0xF661 0x9429
+0xF662 0x943D
+0xF663 0x943C
+0xF664 0x9430
+0xF665 0x9439
+0xF666 0x942A
+0xF667 0x9437
+0xF668 0x942C
+0xF669 0x9440
+0xF66A 0x9431
+0xF66B 0x95E5
+0xF66C 0x95E4
+0xF66D 0x95E3
+0xF66E 0x9735
+0xF66F 0x973A
+0xF670 0x97BF
+0xF671 0x97E1
+0xF672 0x9864
+0xF673 0x98C9
+0xF674 0x98C6
+0xF675 0x98C0
+0xF676 0x9958
+0xF677 0x9956
+0xF678 0x9A39
+0xF679 0x9A3D
+0xF67A 0x9A46
+0xF67B 0x9A44
+0xF67C 0x9A42
+0xF67D 0x9A41
+0xF67E 0x9A3A
+0xF6A1 0x9A3F
+0xF6A2 0x9ACD
+0xF6A3 0x9B15
+0xF6A4-0xF6A5 0x9B17
+0xF6A6 0x9B16
+0xF6A7 0x9B3A
+0xF6A8 0x9B52
+0xF6A9 0x9C2B
+0xF6AA 0x9C1D
+0xF6AB 0x9C1C
+0xF6AC 0x9C2C
+0xF6AD 0x9C23
+0xF6AE-0xF6AF 0x9C28
+0xF6B0 0x9C24
+0xF6B1 0x9C21
+0xF6B2 0x9DB7
+0xF6B3 0x9DB6
+0xF6B4 0x9DBC
+0xF6B5 0x9DC1
+0xF6B6 0x9DC7
+0xF6B7 0x9DCA
+0xF6B8 0x9DCF
+0xF6B9 0x9DBE
+0xF6BA 0x9DC5
+0xF6BB 0x9DC3
+0xF6BC 0x9DBB
+0xF6BD 0x9DB5
+0xF6BE 0x9DCE
+0xF6BF-0xF6C0 0x9DB9
+0xF6C1 0x9DAC
+0xF6C2 0x9DC8
+0xF6C3 0x9DB1
+0xF6C4 0x9DAD
+0xF6C5 0x9DCC
+0xF6C6 0x9DB3
+0xF6C7 0x9DCD
+0xF6C8 0x9DB2
+0xF6C9 0x9E7A
+0xF6CA 0x9E9C
+0xF6CB 0x9EEB
+0xF6CC 0x9EEE
+0xF6CD 0x9EED
+0xF6CE 0x9F1B
+0xF6CF 0x9F18
+0xF6D0 0x9F1A
+0xF6D1 0x9F31
+0xF6D2 0x9F4E
+0xF6D3 0x9F65
+0xF6D4 0x9F64
+0xF6D5 0x9F92
+0xF6D6 0x4EB9
+0xF6D7 0x56C6
+0xF6D8 0x56C5
+0xF6D9 0x56CB
+0xF6DA 0x5971
+0xF6DB-0xF6DC 0x5B4B
+0xF6DD 0x5DD5
+0xF6DE 0x5DD1
+0xF6DF 0x5EF2
+0xF6E0 0x6521
+0xF6E1 0x6520
+0xF6E2 0x6526
+0xF6E3 0x6522
+0xF6E4 0x6B0B
+0xF6E5-0xF6E6 0x6B08
+0xF6E7 0x6C0D
+0xF6E8-0xF6EA 0x7055
+0xF6EB 0x7052
+0xF6EC-0xF6ED 0x721E
+0xF6EE 0x72A9
+0xF6EF 0x737F
+0xF6F0 0x74D8
+0xF6F1 0x74D5
+0xF6F2 0x74D9
+0xF6F3 0x74D7
+0xF6F4 0x766D
+0xF6F5 0x76AD
+0xF6F6 0x7935
+0xF6F7 0x79B4
+0xF6F8-0xF6F9 0x7A70
+0xF6FA 0x7C57
+0xF6FB 0x7C5C
+0xF6FC 0x7C59
+0xF6FD 0x7C5B
+0xF6FE 0x7C5A
+0xF740 0x7CF4
+0xF741 0x7CF1
+0xF742 0x7E91
+0xF743 0x7F4F
+0xF744 0x7F87
+0xF745 0x81DE
+0xF746 0x826B
+0xF747-0xF748 0x8634
+0xF749 0x8633
+0xF74A 0x862C
+0xF74B 0x8632
+0xF74C 0x8636
+0xF74D 0x882C
+0xF74E 0x8828
+0xF74F 0x8826
+0xF750 0x882A
+0xF751 0x8825
+0xF752 0x8971
+0xF753 0x89BF
+0xF754 0x89BE
+0xF755 0x89FB
+0xF756 0x8B7E
+0xF757 0x8B84
+0xF758 0x8B82
+0xF759 0x8B86
+0xF75A 0x8B85
+0xF75B 0x8B7F
+0xF75C 0x8D15
+0xF75D 0x8E95
+0xF75E 0x8E94
+0xF75F 0x8E9A
+0xF760 0x8E92
+0xF761 0x8E90
+0xF762-0xF763 0x8E96
+0xF764 0x8F60
+0xF765 0x8F62
+0xF766 0x9147
+0xF767 0x944C
+0xF768 0x9450
+0xF769-0xF76A 0x944A
+0xF76B 0x944F
+0xF76C 0x9447
+0xF76D 0x9445
+0xF76E-0xF76F 0x9448
+0xF770 0x9446
+0xF771 0x973F
+0xF772 0x97E3
+0xF773 0x986A
+0xF774 0x9869
+0xF775 0x98CB
+0xF776 0x9954
+0xF777 0x995B
+0xF778 0x9A4E
+0xF779-0xF77A 0x9A53
+0xF77B 0x9A4C
+0xF77C 0x9A4F
+0xF77D 0x9A48
+0xF77E 0x9A4A
+0xF7A1 0x9A49
+0xF7A2 0x9A52
+0xF7A3 0x9A50
+0xF7A4 0x9AD0
+0xF7A5 0x9B19
+0xF7A6 0x9B2B
+0xF7A7 0x9B3B
+0xF7A8 0x9B56
+0xF7A9 0x9B55
+0xF7AA 0x9C46
+0xF7AB 0x9C48
+0xF7AC 0x9C3F
+0xF7AD 0x9C44
+0xF7AE 0x9C39
+0xF7AF 0x9C33
+0xF7B0 0x9C41
+0xF7B1 0x9C3C
+0xF7B2 0x9C37
+0xF7B3 0x9C34
+0xF7B4 0x9C32
+0xF7B5 0x9C3D
+0xF7B6 0x9C36
+0xF7B7 0x9DDB
+0xF7B8 0x9DD2
+0xF7B9 0x9DDE
+0xF7BA 0x9DDA
+0xF7BB 0x9DCB
+0xF7BC 0x9DD0
+0xF7BD 0x9DDC
+0xF7BE 0x9DD1
+0xF7BF 0x9DDF
+0xF7C0 0x9DE9
+0xF7C1 0x9DD9
+0xF7C2 0x9DD8
+0xF7C3 0x9DD6
+0xF7C4 0x9DF5
+0xF7C5 0x9DD5
+0xF7C6 0x9DDD
+0xF7C7 0x9EB6
+0xF7C8 0x9EF0
+0xF7C9 0x9F35
+0xF7CA 0x9F33
+0xF7CB 0x9F32
+0xF7CC 0x9F42
+0xF7CD 0x9F6B
+0xF7CE 0x9F95
+0xF7CF 0x9FA2
+0xF7D0 0x513D
+0xF7D1 0x5299
+0xF7D2 0x58E8
+0xF7D3 0x58E7
+0xF7D4 0x5972
+0xF7D5 0x5B4D
+0xF7D6 0x5DD8
+0xF7D7 0x882F
+0xF7D8 0x5F4F
+0xF7D9 0x6201
+0xF7DA-0xF7DB 0x6203
+0xF7DC 0x6529
+0xF7DD 0x6525
+0xF7DE 0x6596
+0xF7DF 0x66EB
+0xF7E0-0xF7E1 0x6B11
+0xF7E2 0x6B0F
+0xF7E3 0x6BCA
+0xF7E4 0x705B
+0xF7E5 0x705A
+0xF7E6 0x7222
+0xF7E7 0x7382
+0xF7E8 0x7381
+0xF7E9 0x7383
+0xF7EA 0x7670
+0xF7EB 0x77D4
+0xF7EC 0x7C67
+0xF7ED 0x7C66
+0xF7EE 0x7E95
+0xF7EF 0x826C
+0xF7F0 0x863A
+0xF7F1 0x8640
+0xF7F2 0x8639
+0xF7F3 0x863C
+0xF7F4 0x8631
+0xF7F5 0x863B
+0xF7F6 0x863E
+0xF7F7 0x8830
+0xF7F8 0x8832
+0xF7F9 0x882E
+0xF7FA 0x8833
+0xF7FB 0x8976
+0xF7FC 0x8974
+0xF7FD 0x8973
+0xF7FE 0x89FE
+0xF840 0x8B8C
+0xF841 0x8B8E
+0xF842 0x8B8B
+0xF843 0x8B88
+0xF844 0x8C45
+0xF845 0x8D19
+0xF846 0x8E98
+0xF847 0x8F64
+0xF848 0x8F63
+0xF849 0x91BC
+0xF84A 0x9462
+0xF84B 0x9455
+0xF84C 0x945D
+0xF84D 0x9457
+0xF84E 0x945E
+0xF84F-0xF850 0x97C4
+0xF851 0x9800
+0xF852 0x9A56
+0xF853 0x9A59
+0xF854-0xF856 0x9B1E
+0xF857 0x9C52
+0xF858 0x9C58
+0xF859 0x9C50
+0xF85A 0x9C4A
+0xF85B 0x9C4D
+0xF85C 0x9C4B
+0xF85D 0x9C55
+0xF85E 0x9C59
+0xF85F 0x9C4C
+0xF860 0x9C4E
+0xF861 0x9DFB
+0xF862 0x9DF7
+0xF863 0x9DEF
+0xF864 0x9DE3
+0xF865 0x9DEB
+0xF866 0x9DF8
+0xF867 0x9DE4
+0xF868 0x9DF6
+0xF869 0x9DE1
+0xF86A 0x9DEE
+0xF86B 0x9DE6
+0xF86C 0x9DF2
+0xF86D 0x9DF0
+0xF86E 0x9DE2
+0xF86F 0x9DEC
+0xF870 0x9DF4
+0xF871 0x9DF3
+0xF872 0x9DE8
+0xF873 0x9DED
+0xF874 0x9EC2
+0xF875 0x9ED0
+0xF876-0xF877 0x9EF2
+0xF878 0x9F06
+0xF879 0x9F1C
+0xF87A 0x9F38
+0xF87B 0x9F37
+0xF87C 0x9F36
+0xF87D 0x9F43
+0xF87E 0x9F4F
+0xF8A1 0x9F71
+0xF8A2 0x9F70
+0xF8A3-0xF8A4 0x9F6E
+0xF8A5 0x56D3
+0xF8A6 0x56CD
+0xF8A7 0x5B4E
+0xF8A8 0x5C6D
+0xF8A9 0x652D
+0xF8AA-0xF8AB 0x66ED
+0xF8AC 0x6B13
+0xF8AD 0x705F
+0xF8AE 0x7061
+0xF8AF 0x705D
+0xF8B0 0x7060
+0xF8B1 0x7223
+0xF8B2 0x74DB
+0xF8B3 0x74E5
+0xF8B4 0x77D5
+0xF8B5 0x7938
+0xF8B6 0x79B7
+0xF8B7 0x79B6
+0xF8B8 0x7C6A
+0xF8B9 0x7E97
+0xF8BA 0x7F89
+0xF8BB 0x826D
+0xF8BC 0x8643
+0xF8BD 0x8838
+0xF8BE 0x8837
+0xF8BF 0x8835
+0xF8C0 0x884B
+0xF8C1-0xF8C2 0x8B94
+0xF8C3-0xF8C5 0x8E9E
+0xF8C6 0x8E9D
+0xF8C7 0x91BE
+0xF8C8 0x91BD
+0xF8C9 0x91C2
+0xF8CA 0x946B
+0xF8CB-0xF8CC 0x9468
+0xF8CD 0x96E5
+0xF8CE 0x9746
+0xF8CF 0x9743
+0xF8D0 0x9747
+0xF8D1 0x97C7
+0xF8D2 0x97E5
+0xF8D3 0x9A5E
+0xF8D4 0x9AD5
+0xF8D5 0x9B59
+0xF8D6 0x9C63
+0xF8D7 0x9C67
+0xF8D8 0x9C66
+0xF8D9 0x9C62
+0xF8DA 0x9C5E
+0xF8DB 0x9C60
+0xF8DC 0x9E02
+0xF8DD 0x9DFE
+0xF8DE 0x9E07
+0xF8DF 0x9E03
+0xF8E0 0x9E06
+0xF8E1 0x9E05
+0xF8E2-0xF8E3 0x9E00
+0xF8E4 0x9E09
+0xF8E5 0x9DFF
+0xF8E6 0x9DFD
+0xF8E7 0x9E04
+0xF8E8 0x9EA0
+0xF8E9 0x9F1E
+0xF8EA 0x9F46
+0xF8EB-0xF8ED 0x9F74
+0xF8EE 0x56D4
+0xF8EF 0x652E
+0xF8F0 0x65B8
+0xF8F1-0xF8F2 0x6B18
+0xF8F3 0x6B17
+0xF8F4 0x6B1A
+0xF8F5 0x7062
+0xF8F6 0x7226
+0xF8F7 0x72AA
+0xF8F8-0xF8F9 0x77D8
+0xF8FA 0x7939
+0xF8FB 0x7C69
+0xF8FC 0x7C6B
+0xF8FD 0x7CF6
+0xF8FE 0x7E9A
+0xF940 0x7E98
+0xF941 0x7E9B
+0xF942 0x7E99
+0xF943-0xF944 0x81E0
+0xF945-0xF947 0x8646
+0xF948-0xF949 0x8979
+0xF94A 0x897C
+0xF94B 0x897B
+0xF94C 0x89FF
+0xF94D-0xF94E 0x8B98
+0xF94F 0x8EA5
+0xF950 0x8EA4
+0xF951 0x8EA3
+0xF952 0x946E
+0xF953 0x946D
+0xF954 0x946F
+0xF955 0x9471
+0xF956 0x9473
+0xF957 0x9749
+0xF958 0x9872
+0xF959 0x995F
+0xF95A 0x9C68
+0xF95B 0x9C6E
+0xF95C 0x9C6D
+0xF95D 0x9E0B
+0xF95E 0x9E0D
+0xF95F 0x9E10
+0xF960 0x9E0F
+0xF961 0x9E12
+0xF962 0x9E11
+0xF963 0x9EA1
+0xF964 0x9EF5
+0xF965 0x9F09
+0xF966 0x9F47
+0xF967 0x9F78
+0xF968 0x9F7B
+0xF969 0x9F7A
+0xF96A 0x9F79
+0xF96B 0x571E
+0xF96C 0x7066
+0xF96D 0x7C6F
+0xF96E 0x883C
+0xF96F 0x8DB2
+0xF970 0x8EA6
+0xF971 0x91C3
+0xF972 0x9474
+0xF973 0x9478
+0xF974 0x9476
+0xF975 0x9475
+0xF976 0x9A60
+0xF977 0x9C74
+0xF978 0x9C73
+0xF979 0x9C71
+0xF97A 0x9C75
+0xF97B 0x9E14
+0xF97C 0x9E13
+0xF97D 0x9EF6
+0xF97E 0x9F0A
+0xF9A1 0x9FA4
+0xF9A2 0x7068
+0xF9A3 0x7065
+0xF9A4 0x7CF7
+0xF9A5 0x866A
+0xF9A6 0x883E
+0xF9A7 0x883D
+0xF9A8 0x883F
+0xF9A9 0x8B9E
+0xF9AA 0x8C9C
+0xF9AB 0x8EA9
+0xF9AC 0x8EC9
+0xF9AD 0x974B
+0xF9AE-0xF9AF 0x9873
+0xF9B0 0x98CC
+0xF9B1 0x9961
+0xF9B2 0x99AB
+0xF9B3 0x9A64
+0xF9B4-0xF9B5 0x9A66
+0xF9B6 0x9B24
+0xF9B7 0x9E15
+0xF9B8 0x9E17
+0xF9B9 0x9F48
+0xF9BA 0x6207
+0xF9BB 0x6B1E
+0xF9BC 0x7227
+0xF9BD 0x864C
+0xF9BE 0x8EA8
+0xF9BF 0x9482
+0xF9C0-0xF9C1 0x9480
+0xF9C2 0x9A69
+0xF9C3 0x9A68
+0xF9C4 0x9B2E
+0xF9C5 0x9E19
+0xF9C6 0x7229
+0xF9C7 0x864B
+0xF9C8 0x8B9F
+0xF9C9 0x9483
+0xF9CA 0x9C79
+0xF9CB 0x9EB7
+0xF9CC 0x7675
+0xF9CD 0x9A6B
+0xF9CE 0x9C7A
+0xF9CF 0x9E1D
+0xF9D0-0xF9D1 0x7069
+0xF9D2 0x9EA4
+0xF9D3 0x9F7E
+0xF9D4 0x9F49
+0xF9D5 0x9F98
+0xF9D6 0x7881
+0xF9D7 0x92B9
+0xF9D8 0x88CF
+0xF9D9 0x58BB
+0xF9DA 0x6052
+0xF9DB 0x7CA7
+0xF9DC 0x5AFA
+0xF9DD 0x2554
+0xF9DE 0x2566
+0xF9DF 0x2557
+0xF9E0 0x2560
+0xF9E1 0x256C
+0xF9E2 0x2563
+0xF9E3 0x255A
+0xF9E4 0x2569
+0xF9E5 0x255D
+0xF9E6 0x2552
+0xF9E7 0x2564
+0xF9E8 0x2555
+0xF9E9 0x255E
+0xF9EA 0x256A
+0xF9EB 0x2561
+0xF9EC 0x2558
+0xF9ED 0x2567
+0xF9EE 0x255B
+0xF9EF 0x2553
+0xF9F0 0x2565
+0xF9F1 0x2556
+0xF9F2 0x255F
+0xF9F3 0x256B
+0xF9F4 0x2562
+0xF9F5 0x2559
+0xF9F6 0x2568
+0xF9F7 0x255C
+0xF9F8 0x2551
+0xF9F9 0x2550
+0xF9FA-0xF9FB 0x256D
+0xF9FC 0x2570
+0xF9FD 0x256F
+0xF9FE 0xFFED
+0xFA40 0x20547
+0xFA41 0x92DB
+0xFA42 0x205DF
+0xFA43 0xE003
+0xFA44 0x854C
+0xFA45 0x42B5
+0xFA46 0x73EF
+0xFA47 0x51B5
+0xFA48 0x3649
+0xFA49 0x24942
+0xFA4A 0x289E4
+0xFA4B 0x9344
+0xFA4C 0x219DB
+0xFA4D 0x82EE
+0xFA4E 0x23CC8
+0xFA4F 0x783C
+0xFA50 0x6744
+0xFA51 0x62DF
+0xFA52 0x24933
+0xFA53 0x289AA
+0xFA54 0x202A0
+0xFA55 0x26BB3
+0xFA56 0x21305
+0xFA57 0x4FAB
+0xFA58 0xE018
+0xFA59 0x5008
+0xFA5A 0x26D29
+0xFA5B 0xE01B
+0xFA5C 0x23600
+0xFA5D 0x24AB1
+0xFA5E 0x22513
+0xFA60 0x2037E
+0xFA61 0x5FA4
+0xFA62 0x20380
+0xFA63 0x20347
+0xFA64 0x6EDB
+0xFA65 0x2041F
+0xFA67 0x5101
+0xFA68 0x347A
+0xFA69 0x510E
+0xFA6A 0x986C
+0xFA6B 0x3743
+0xFA6C 0x8416
+0xFA6D 0xE02D
+0xFA6E 0x20487
+0xFA6F 0x5160
+0xFA70 0x233B4
+0xFA71 0x516A
+0xFA72 0x20BFF
+0xFA73 0x220FC
+0xFA74 0x202E5
+0xFA75 0x22530
+0xFA76 0x2058E
+0xFA77 0x23233
+0xFA78 0xE038
+0xFA79 0x5B82
+0xFA7A 0x877D
+0xFA7B 0x205B3
+0xFA7C 0x23C99
+0xFA7D 0x51B2
+0xFA7E 0x51B8
+0xFAA1 0x9D34
+0xFAA2 0x51C9
+0xFAA3 0x51CF
+0xFAA4 0x51D1
+0xFAA5 0x3CDC
+0xFAA6 0x51D3
+0xFAA7 0x24AA6
+0xFAA8 0x51B3
+0xFAA9 0x51E2
+0xFAAA 0x5342
+0xFAAB 0x51ED
+0xFAAC 0x83CD
+0xFAAD 0x693E
+0xFAAE 0xE04C
+0xFAAF 0x5F7B
+0xFAB0 0x520B
+0xFAB1 0x5226
+0xFAB2 0x523C
+0xFAB3 0x52B5
+0xFAB4 0x5257
+0xFAB5 0x5294
+0xFAB6 0x52B9
+0xFAB7 0x52C5
+0xFAB8 0x7C15
+0xFAB9 0x8542
+0xFABA 0x52E0
+0xFABB 0x860D
+0xFABC 0xE05A
+0xFABE 0x28ADE
+0xFABF 0x5549
+0xFAC0 0x6ED9
+0xFAC1 0x23F80
+0xFAC2 0x20954
+0xFAC3 0x23FEC
+0xFAC4 0x5333
+0xFAC6 0x20BE2
+0xFAC7 0x6CCB
+0xFAC8 0x21726
+0xFAC9 0x681B
+0xFACA 0x73D5
+0xFACB 0x604A
+0xFACC 0x3EAA
+0xFACD 0x38CC
+0xFACE 0x216E8
+0xFACF 0x71DD
+0xFAD0 0x44A2
+0xFAD1 0x536D
+0xFAD2 0x5374
+0xFAD3 0x286AB
+0xFAD4 0x537E
+0xFAD6 0x21596
+0xFAD7 0x21613
+0xFAD8 0x77E6
+0xFAD9 0x5393
+0xFADA 0x28A9B
+0xFADB 0x53A0
+0xFADC 0x53AB
+0xFADD 0x53AE
+0xFADE 0x73A7
+0xFADF 0x25772
+0xFAE0 0x3F59
+0xFAE1 0x739C
+0xFAE2 0x53C1
+0xFAE3 0x53C5
+0xFAE4 0x6C49
+0xFAE5 0x4E49
+0xFAE6 0x57FE
+0xFAE7 0x53D9
+0xFAE8 0x3AAB
+0xFAE9 0x20B8F
+0xFAEA 0x53E0
+0xFAEB 0x23FEB
+0xFAEC 0x22DA3
+0xFAED 0x53F6
+0xFAEE 0x20C77
+0xFAEF 0x5413
+0xFAF0 0x7079
+0xFAF1 0x552B
+0xFAF2 0x6657
+0xFAF3 0x6D5B
+0xFAF4 0x546D
+0xFAF5 0x26B53
+0xFAF6 0xE094
+0xFAF7 0x555D
+0xFAF8 0x548F
+0xFAF9 0x54A4
+0xFAFA 0x47A6
+0xFAFB-0xFAFC 0xE099
+0xFAFD 0x3DB4
+0xFAFE 0x20D4D
+0xFB40 0x289BC
+0xFB41 0x22698
+0xFB42 0x5547
+0xFB43 0x4CED
+0xFB44 0x542F
+0xFB45 0x7417
+0xFB46 0x5586
+0xFB47 0x55A9
+0xFB49 0x218D7
+0xFB4A 0x2403A
+0xFB4B 0x4552
+0xFB4C 0x24435
+0xFB4D 0x66B3
+0xFB4E 0x210B4
+0xFB4F 0x5637
+0xFB50 0x66CD
+0xFB51 0x2328A
+0xFB52 0x66A4
+0xFB53 0x66AD
+0xFB54 0x564D
+0xFB55 0x564F
+0xFB56 0x78F1
+0xFB57 0x56F1
+0xFB58 0x9787
+0xFB59 0x53FE
+0xFB5A 0x5700
+0xFB5B 0x56EF
+0xFB5C 0x56ED
+0xFB5D 0x28B66
+0xFB5E 0x3623
+0xFB5F 0x2124F
+0xFB60 0x5746
+0xFB61 0x241A5
+0xFB62 0x6C6E
+0xFB63 0x708B
+0xFB64 0x5742
+0xFB65 0x36B1
+0xFB66 0x26C7E
+0xFB67 0x57E6
+0xFB68 0xE0C5
+0xFB69 0x5803
+0xFB6A 0x21454
+0xFB6B 0x24363
+0xFB6C 0x5826
+0xFB6D 0x24BF5
+0xFB6E 0x585C
+0xFB6F 0x58AA
+0xFB70 0x3561
+0xFB71 0x58E0
+0xFB72 0x58DC
+0xFB73 0xE0D0
+0xFB74 0x58FB
+0xFB75 0x5BFF
+0xFB76 0x5743
+0xFB77 0x2A150
+0xFB78 0x24278
+0xFB79 0x93D3
+0xFB7A 0x35A1
+0xFB7B 0x591F
+0xFB7C 0x68A6
+0xFB7D 0x36C3
+0xFB7E 0x6E59
+0xFBA1 0x2163E
+0xFBA2 0x5A24
+0xFBA3 0x5553
+0xFBA4 0x21692
+0xFBA5 0x8505
+0xFBA6 0x59C9
+0xFBA7 0x20D4E
+0xFBA8 0x26C81
+0xFBA9 0x26D2A
+0xFBAA 0x217DC
+0xFBAB 0x59D9
+0xFBAC 0x217FB
+0xFBAD 0x217B2
+0xFBAE 0x26DA6
+0xFBAF 0x6D71
+0xFBB0 0x21828
+0xFBB1 0x216D5
+0xFBB2 0x59F9
+0xFBB3 0x26E45
+0xFBB4 0x5AAB
+0xFBB5 0x5A63
+0xFBB6 0x36E6
+0xFBB7 0xE0F2
+0xFBB9 0x3708
+0xFBBA 0x5A96
+0xFBBB 0x7465
+0xFBBC 0x5AD3
+0xFBBD 0x26FA1
+0xFBBE 0xE0F9
+0xFBBF 0x3D85
+0xFBC0 0x21911
+0xFBC1 0x3732
+0xFBC2 0xE0FD
+0xFBC3 0x5E83
+0xFBC4 0x52D0
+0xFBC5 0x5B76
+0xFBC6 0x6588
+0xFBC7 0x5B7C
+0xFBC8 0x27A0E
+0xFBC9 0x4004
+0xFBCA 0x485D
+0xFBCB 0xE106
+0xFBCC 0x5BD5
+0xFBCD 0x6160
+0xFBCE-0xFBCF 0xE109
+0xFBD0 0x205A5
+0xFBD1 0x5BF3
+0xFBD2 0x5B9D
+0xFBD3 0x4D10
+0xFBD4 0x5C05
+0xFBD5 0x21B44
+0xFBD6 0x5C13
+0xFBD7 0x73CE
+0xFBD8 0x5C14
+0xFBD9 0x21CA5
+0xFBDA 0x26B28
+0xFBDB 0x5C49
+0xFBDC 0x48DD
+0xFBDD 0x5C85
+0xFBDE 0x5CE9
+0xFBDF 0x5CEF
+0xFBE0 0x5D8B
+0xFBE1 0x21DF9
+0xFBE2 0x21E37
+0xFBE3 0x5D10
+0xFBE4 0x5D18
+0xFBE5 0x5D46
+0xFBE6 0x21EA4
+0xFBE7 0x5CBA
+0xFBE8 0x5DD7
+0xFBE9 0x82FC
+0xFBEA 0x382D
+0xFBEB 0x24901
+0xFBEC 0x22049
+0xFBED 0x22173
+0xFBEE 0x8287
+0xFBEF 0x3836
+0xFBF0 0x3BC2
+0xFBF1 0x5E2E
+0xFBF2 0x6A8A
+0xFBF4 0x5E7A
+0xFBF5 0xE130
+0xFBF6 0x20CD3
+0xFBF7 0x53A6
+0xFBF8 0x4EB7
+0xFBFA 0x53A8
+0xFBFB 0x21771
+0xFBFC 0x5E09
+0xFBFD 0x5EF4
+0xFBFE 0x28482
+0xFC40 0x5EF9
+0xFC41 0x5EFB
+0xFC42 0x38A0
+0xFC43 0x5EFC
+0xFC44 0x683E
+0xFC45 0x941B
+0xFC46 0x5F0D
+0xFC47 0x201C1
+0xFC48 0x2F894
+0xFC49 0x3ADE
+0xFC4A 0x48AE
+0xFC4B 0x2133A
+0xFC4C 0x5F3A
+0xFC4D 0x26888
+0xFC4E 0x223D0
+0xFC50 0x22471
+0xFC51 0x5F63
+0xFC52 0x97BD
+0xFC53 0x26E6E
+0xFC54 0x5F72
+0xFC55 0x9340
+0xFC56 0xE150
+0xFC57 0x5FA7
+0xFC58 0x5DB6
+0xFC59 0x3D5F
+0xFC5A 0xE154
+0xFC5B 0x21F6A
+0xFC5C 0x270F8
+0xFC5D 0x22668
+0xFC5E 0x91D6
+0xFC5F 0x2029E
+0xFC60 0x28A29
+0xFC61 0x6031
+0xFC62 0x6685
+0xFC63 0xE15D
+0xFC64 0x3963
+0xFC65 0x3DC7
+0xFC66 0x3639
+0xFC67 0x5790
+0xFC68 0x227B4
+0xFC69 0x7971
+0xFC6A 0x3E40
+0xFC6B 0x609E
+0xFC6D 0x60B3
+0xFC6E 0xE168
+0xFC6F 0x2498F
+0xFC70 0xE16A
+0xFC71 0x74A4
+0xFC72 0x50E1
+0xFC73 0x5AA0
+0xFC74 0x6164
+0xFC75 0x8424
+0xFC76 0x6142
+0xFC77 0xE171
+0xFC78 0x26ED2
+0xFC79 0x6181
+0xFC7A 0x51F4
+0xFC7B 0xE175
+0xFC7C 0x6187
+0xFC7D 0x5BAA
+0xFC7E 0x23FB7
+0xFCA1 0x2285F
+0xFCA2 0x61D3
+0xFCA3 0x28B9D
+0xFCA4 0x2995D
+0xFCA5 0x61D0
+0xFCA6 0x3932
+0xFCA7 0x22980
+0xFCA8 0x228C1
+0xFCA9 0x6023
+0xFCAA 0x615C
+0xFCAB 0x651E
+0xFCAC 0x638B
+0xFCAD 0x20118
+0xFCAE 0x62C5
+0xFCAF 0x21770
+0xFCB0 0x62D5
+0xFCB1 0x22E0D
+0xFCB2 0x636C
+0xFCB3 0x249DF
+0xFCB4 0x3A17
+0xFCB5 0x6438
+0xFCB6 0x63F8
+0xFCB7 0xE18F
+0xFCB8 0x217FC
+0xFCBA 0x6F8A
+0xFCBB 0x22E36
+0xFCBC 0x9814
+0xFCBD 0x2408C
+0xFCBE 0x2571D
+0xFCBF 0x64E1
+0xFCC0 0x64E5
+0xFCC1 0x947B
+0xFCC2 0x3A66
+0xFCC3 0x643A
+0xFCC4 0x3A57
+0xFCC5 0x654D
+0xFCC6 0x6F16
+0xFCC7 0x24A28
+0xFCC8 0x24A23
+0xFCC9 0x6585
+0xFCCA 0x656D
+0xFCCB 0x655F
+0xFCCC 0x2307E
+0xFCCD 0x65B5
+0xFCCE 0x24940
+0xFCCF 0x4B37
+0xFCD0 0x65D1
+0xFCD1 0x40D8
+0xFCD2 0x21829
+0xFCD3 0x65E0
+0xFCD4 0x65E3
+0xFCD5 0x5FDF
+0xFCD6 0x23400
+0xFCD7 0x6618
+0xFCD8-0xFCD9 0x231F7
+0xFCDA 0x6644
+0xFCDB-0xFCDC 0x231A4
+0xFCDD 0x664B
+0xFCDE 0x20E75
+0xFCDF 0x6667
+0xFCE0 0x251E6
+0xFCE1 0x6673
+0xFCE3 0xE1BB
+0xFCE4 0x23231
+0xFCE5 0x285F4
+0xFCE6 0x231C8
+0xFCE7 0x25313
+0xFCE8 0x77C5
+0xFCE9 0x228F7
+0xFCEA 0x99A4
+0xFCEB 0x6702
+0xFCEC 0x2439C
+0xFCED 0x24A21
+0xFCEE 0x3B2B
+0xFCEF 0x69FA
+0xFCF0 0x237C2
+0xFCF2 0x6767
+0xFCF3 0x6762
+0xFCF4-0xFCF5 0xE1CC
+0xFCF6 0x67D7
+0xFCF7 0x44E9
+0xFCF8 0x6822
+0xFCF9 0x6E50
+0xFCFA 0x923C
+0xFCFB 0x6801
+0xFCFC 0x233E6
+0xFCFD 0x26DA0
+0xFCFE 0x685D
+0xFD40 0xE1D7
+0xFD41 0x69E1
+0xFD42 0x6A0B
+0xFD43 0x28ADF
+0xFD44 0x6973
+0xFD45 0x68C3
+0xFD46 0x235CD
+0xFD47 0x6901
+0xFD48 0x6900
+0xFD49 0x3D32
+0xFD4A 0x3A01
+0xFD4B 0x2363C
+0xFD4C 0x3B80
+0xFD4D 0x67AC
+0xFD4E 0x6961
+0xFD4F 0x28A4A
+0xFD50 0x42FC
+0xFD51 0x6936
+0xFD52 0x6998
+0xFD53 0x3BA1
+0xFD54 0x203C9
+0xFD55 0x8363
+0xFD56 0x5090
+0xFD57 0x69F9
+0xFD58 0xE1EF
+0xFD59 0x2212A
+0xFD5A 0x6A45
+0xFD5B 0xE1F2
+0xFD5C 0x6A9D
+0xFD5D 0x3BF3
+0xFD5E 0x67B1
+0xFD5F 0x6AC8
+0xFD60 0x2919C
+0xFD61 0x3C0D
+0xFD62 0x6B1D
+0xFD63 0xE1FA
+0xFD64 0x60DE
+0xFD65 0x6B35
+0xFD66 0x6B74
+0xFD67 0xE1FE
+0xFD68 0x6EB5
+0xFD69 0x23ADB
+0xFD6A 0x203B5
+0xFD6B 0xE202
+0xFD6C 0x3740
+0xFD6D 0x5421
+0xFD6E 0x23B5A
+0xFD6F 0x6BE1
+0xFD70 0x23EFC
+0xFD71 0x6BDC
+0xFD72 0x6C37
+0xFD73 0x2248B
+0xFD74 0xE20B
+0xFD75 0x26B51
+0xFD76 0x6C5A
+0xFD77 0x8226
+0xFD78 0x6C79
+0xFD79 0x23DBC
+0xFD7A 0x44C5
+0xFD7B 0x23DBD
+0xFD7C 0x241A4
+0xFD7D 0x2490C
+0xFD7E 0x24900
+0xFDA1 0x23CC9
+0xFDA2 0x36E5
+0xFDA3 0x3CEB
+0xFDA4 0xE219
+0xFDA5 0x9B83
+0xFDA6 0x231F9
+0xFDA7 0xE21C
+0xFDA8 0x7F8F
+0xFDA9 0x6837
+0xFDAA 0x26D25
+0xFDAB 0x26DA1
+0xFDAC 0x26DEB
+0xFDAD 0x6D96
+0xFDAE 0x6D5C
+0xFDAF 0x6E7C
+0xFDB0 0x6F04
+0xFDB1 0x2497F
+0xFDB2 0xE227
+0xFDB3 0x26E72
+0xFDB4 0x8533
+0xFDB5 0x26F74
+0xFDB6 0x51C7
+0xFDB9 0x842E
+0xFDBA 0x28B21
+0xFDBC 0x23E2F
+0xFDBD 0x7453
+0xFDBE 0x23F82
+0xFDBF 0x79CC
+0xFDC0 0x6E4F
+0xFDC1 0x5A91
+0xFDC2 0x2304B
+0xFDC3 0x6FF8
+0xFDC4 0x370D
+0xFDC5 0x6F9D
+0xFDC6 0x23E30
+0xFDC7 0x6EFA
+0xFDC8 0x21497
+0xFDC9 0x2403D
+0xFDCA 0x4555
+0xFDCB 0x93F0
+0xFDCC 0x6F44
+0xFDCD 0x6F5C
+0xFDCE 0x3D4E
+0xFDCF 0x6F74
+0xFDD0 0xE245
+0xFDD1 0x3D3B
+0xFDD2 0x6F9F
+0xFDD3 0x24144
+0xFDD4 0x6FD3
+0xFDD5 0xE24A
+0xFDD6 0x24155
+0xFDD7 0x24039
+0xFDD8 0x25D20
+0xFDD9 0xE24E
+0xFDDA 0x2413F
+0xFDDB 0x51DF
+0xFDDC-0xFDDD 0x24156
+0xFDDE 0x24140
+0xFDDF 0x261DD
+0xFDE0 0x704B
+0xFDE1 0x707E
+0xFDE2 0x70A7
+0xFDE3 0x7081
+0xFDE4 0x70CC
+0xFDE5-0xFDE6 0x70D5
+0xFDE7 0x70DF
+0xFDE8 0x4104
+0xFDE9 0x3DE8
+0xFDEA 0x71B4
+0xFDEB 0x7196
+0xFDEC 0x24277
+0xFDED 0x712B
+0xFDEE 0x7145
+0xFDEF 0x5A88
+0xFDF0 0x714A
+0xFDF2 0x5C9C
+0xFDF3 0x24365
+0xFDF4 0x714F
+0xFDF5 0x9362
+0xFDF6 0xE26B
+0xFDF7 0x712C
+0xFDF8 0x2445A
+0xFDF9 0x24A27
+0xFDFA 0x24A22
+0xFDFB 0x71BA
+0xFDFC 0x28BE8
+0xFDFD 0x70BD
+0xFDFE 0x720E
+0xFE40 0x9442
+0xFE41 0x7215
+0xFE42 0x5911
+0xFE43 0x9443
+0xFE44 0x7224
+0xFE45 0x9341
+0xFE46 0xE27A
+0xFE47 0x722E
+0xFE48 0x7240
+0xFE49 0x24974
+0xFE4A 0x68BD
+0xFE4B 0x7255
+0xFE4C 0x7257
+0xFE4D 0x3E55
+0xFE4E 0xE282
+0xFE4F 0x680D
+0xFE50 0x6F3D
+0xFE51 0x7282
+0xFE53 0x732B
+0xFE54 0x24823
+0xFE55 0x2882B
+0xFE56 0x48ED
+0xFE57 0x28804
+0xFE58 0x7328
+0xFE59 0x732E
+0xFE5A 0x73CF
+0xFE5B 0x73AA
+0xFE5C 0xE290
+0xFE5D 0x26A2E
+0xFE5E 0x73C9
+0xFE5F 0x7449
+0xFE60 0x241E2
+0xFE61 0x216E7
+0xFE62 0x24A24
+0xFE63 0x6623
+0xFE64 0x36C5
+0xFE65 0x249B7
+0xFE66 0x2498D
+0xFE67 0xE29B
+0xFE68 0x73F7
+0xFE69 0x7415
+0xFE6A 0x6903
+0xFE6B 0x24A26
+0xFE6C 0x7439
+0xFE6D 0xE2A1
+0xFE6E 0x3ED7
+0xFE70 0x228AD
+0xFE71 0x7460
+0xFE72 0x28EB2
+0xFE73 0x7447
+0xFE74 0x73E4
+0xFE75 0x7476
+0xFE76 0x83B9
+0xFE77 0x746C
+0xFE78 0x3730
+0xFE79 0x7474
+0xFE7A 0x93F1
+0xFE7B 0x6A2C
+0xFE7C 0x7482
+0xFE7D 0x4953
+0xFE7E 0xE2B2
+0xFEA1 0x2415F
+0xFEA2 0x24A79
+0xFEA3 0x28B8F
+0xFEA4 0x5B46
+0xFEA5 0xE2B7
+0xFEA6 0x2189E
+0xFEA7 0x74C8
+0xFEA8 0x21988
+0xFEA9 0x750E
+0xFEAB 0x751E
+0xFEAC 0x28ED9
+0xFEAD 0x21A4B
+0xFEAE 0x5BD7
+0xFEAF 0xE2C1
+0xFEB0 0x9385
+0xFEB1 0x754D
+0xFEB2 0x754A
+0xFEB3 0x7567
+0xFEB4 0x756E
+0xFEB5 0x24F82
+0xFEB6 0x3F04
+0xFEB7 0xE2C9
+0xFEB8 0x758E
+0xFEB9 0x745D
+0xFEBA 0x759E
+0xFEBB 0x75B4
+0xFEBC 0x7602
+0xFEBD 0x762C
+0xFEBE 0x7651
+0xFEBF 0x764F
+0xFEC0 0x766F
+0xFEC1 0x7676
+0xFEC2 0xE2D4
+0xFEC3 0x7690
+0xFEC4 0x81EF
+0xFEC5 0x37F8
+0xFEC6 0x26911
+0xFEC7 0x2690E
+0xFEC8 0x76A1
+0xFEC9 0x76A5
+0xFECA 0x76B7
+0xFECB 0x76CC
+0xFECC 0x26F9F
+0xFECD 0x8462
+0xFECE 0x2509D
+0xFECF 0x2517D
+0xFED0 0xE2E2
+0xFED1 0x771E
+0xFED2 0x7726
+0xFED3 0x7740
+0xFED4 0x64AF
+0xFED5 0x25220
+0xFED6 0x7758
+0xFED7 0x232AC
+0xFED8 0x77AF
+0xFED9-0xFEDA 0xE2EB
+0xFEDB 0x216C1
+0xFEDC 0x77F4
+0xFEDE-0xFEDF 0xE2F0
+0xFEE0 0x68CA
+0xFEE1 0x78AF
+0xFEE2 0x78C7
+0xFEE3 0x78D3
+0xFEE4 0x96A5
+0xFEE5 0x792E
+0xFEE6 0x255E0
+0xFEE7 0x78D7
+0xFEE8 0x7934
+0xFEE9 0x78B1
+0xFEEA 0x2760C
+0xFEEB 0x8FB8
+0xFEEC 0x8884
+0xFEED 0x28B2B
+0xFEEE 0xE300
+0xFEEF 0x2261C
+0xFEF0 0x7986
+0xFEF1 0x8900
+0xFEF2 0x6902
+0xFEF3 0x7980
+0xFEF4 0x25857
+0xFEF5 0x799D
+0xFEF6 0x27B39
+0xFEF7 0x793C
+0xFEF8 0x79A9
+0xFEF9 0x6E2A
+0xFEFA 0x27126
+0xFEFB 0x3EA8
+0xFEFC 0x79C6
+0xFEFD 0x2910D
+0xFEFE 0x79D4
diff --git a/etc/charsets/BIG5.map b/etc/charsets/BIG5.map
new file mode 100644 (file)
index 0000000..e4bd5af
--- /dev/null
@@ -0,0 +1,13902 @@
+# Generated from glibc-2.3.2/localedata/charmaps/BIG5
+0xa140 0x3000
+0xa141 0xFF0C
+0xa142 0x3001
+0xa143 0x3002
+0xa144 0xFF0E
+0xa145 0x2027
+0xa146 0xFF1B
+0xa147 0xFF1A
+0xa148 0xFF1F
+0xa149 0xFF01
+0xa14a 0xFE30
+0xa14b 0x2026
+0xa14c 0x2025
+0xa14d 0xFE50
+0xa14e 0xFE51
+0xa14f 0xFE52
+0xa150 0x00B7
+0xa151 0xFE54
+0xa152 0xFE55
+0xa153 0xFE56
+0xa154 0xFE57
+0xa155 0xFF5C
+0xa156 0x2013
+0xa157 0xFE31
+0xa158 0x2014
+0xa159 0xFE33
+0xa15a 0x2574
+0xa15b 0xFE34
+0xa15c 0xFE4F
+0xa15d 0xFF08
+0xa15e 0xFF09
+0xa15f 0xFE35
+0xa160 0xFE36
+0xa161 0xFF5B
+0xa162 0xFF5D
+0xa163 0xFE37
+0xa164 0xFE38
+0xa165 0x3014
+0xa166 0x3015
+0xa167 0xFE39
+0xa168 0xFE3A
+0xa169 0x3010
+0xa16a 0x3011
+0xa16b 0xFE3B
+0xa16c 0xFE3C
+0xa16d 0x300A
+0xa16e 0x300B
+0xa16f 0xFE3D
+0xa170 0xFE3E
+0xa171 0x3008
+0xa172 0x3009
+0xa173 0xFE3F
+0xa174 0xFE40
+0xa175 0x300C
+0xa176 0x300D
+0xa177 0xFE41
+0xa178 0xFE42
+0xa179 0x300E
+0xa17a 0x300F
+0xa17b 0xFE43
+0xa17c 0xFE44
+0xa17d 0xFE59
+0xa17e 0xFE5A
+0xa1a1 0xFE5B
+0xa1a2 0xFE5C
+0xa1a3 0xFE5D
+0xa1a4 0xFE5E
+0xa1a5 0x2018
+0xa1a6 0x2019
+0xa1a7 0x201C
+0xa1a8 0x201D
+0xa1a9 0x301D
+0xa1aa 0x301E
+0xa1ab 0x2035
+0xa1ac 0x2032
+0xa1ad 0xFF03
+0xa1ae 0xFF06
+0xa1af 0xFF0A
+0xa1b0 0x203B
+0xa1b1 0x00A7
+0xa1b2 0x3003
+0xa1b3 0x25CB
+0xa1b4 0x25CF
+0xa1b5 0x25B3
+0xa1b6 0x25B2
+0xa1b7 0x25CE
+0xa1b8 0x2606
+0xa1b9 0x2605
+0xa1ba 0x25C7
+0xa1bb 0x25C6
+0xa1bc 0x25A1
+0xa1bd 0x25A0
+0xa1be 0x25BD
+0xa1bf 0x25BC
+0xa1c0 0x32A3
+0xa1c1 0x2105
+0xa1c2 0x00AF
+0xa1c3 0xFFE3
+0xa1c4 0xFF3F
+0xa1c5 0x02CD
+0xa1c6 0xFE49
+0xa1c7 0xFE4A
+0xa1c8 0xFE4D
+0xa1c9 0xFE4E
+0xa1ca 0xFE4B
+0xa1cb 0xFE4C
+0xa1cc 0xFE5F
+0xa1cd 0xFE60
+0xa1ce 0xFE61
+0xa1cf 0xFF0B
+0xa1d0 0xFF0D
+0xa1d1 0x00D7
+0xa1d2 0x00F7
+0xa1d3 0x00B1
+0xa1d4 0x221A
+0xa1d5 0xFF1C
+0xa1d6 0xFF1E
+0xa1d7 0xFF1D
+0xa1d8 0x2266
+0xa1d9 0x2267
+0xa1da 0x2260
+0xa1db 0x221E
+0xa1dc 0x2252
+0xa1dd 0x2261
+0xa1de 0xFE62
+0xa1df 0xFE63
+0xa1e0 0xFE64
+0xa1e1 0xFE65
+0xa1e2 0xFE66
+0xa1e3 0xFF5E
+0xa1e4 0x2229
+0xa1e5 0x222A
+0xa1e6 0x22A5
+0xa1e7 0x2220
+0xa1e8 0x221F
+0xa1e9 0x22BF
+0xa1ea 0x33D2
+0xa1eb 0x33D1
+0xa1ec 0x222B
+0xa1ed 0x222E
+0xa1ee 0x2235
+0xa1ef 0x2234
+0xa1f0 0x2640
+0xa1f1 0x2642
+0xa1f2 0x2295
+0xa1f3 0x2299
+0xa1f4 0x2191
+0xa1f5 0x2193
+0xa1f6 0x2190
+0xa1f7 0x2192
+0xa1f8 0x2196
+0xa1f9 0x2197
+0xa1fa 0x2199
+0xa1fb 0x2198
+0xa1fc 0x2225
+0xa1fd 0x2223
+0xa1fe 0xFF0F
+0xa240 0xFF3C
+0xa241 0x2215
+0xa242 0xFE68
+0xa243 0xFF04
+0xa244 0xFFE5
+0xa245 0x3012
+0xa246 0xFFE0
+0xa247 0xFFE1
+0xa248 0xFF05
+0xa249 0xFF20
+0xa24a 0x2103
+0xa24b 0x2109
+0xa24c 0xFE69
+0xa24d 0xFE6A
+0xa24e 0xFE6B
+0xa24f 0x33D5
+0xa250 0x339C
+0xa251 0x339D
+0xa252 0x339E
+0xa253 0x33CE
+0xa254 0x33A1
+0xa255 0x338E
+0xa256 0x338F
+0xa257 0x33C4
+0xa258 0x00B0
+0xa259 0x5159
+0xa25a 0x515B
+0xa25b 0x515E
+0xa25c 0x515D
+0xa25d 0x5161
+0xa25e 0x5163
+0xa25f 0x55E7
+0xa260 0x74E9
+0xa261 0x7CCE
+0xa262 0x2581
+0xa263 0x2582
+0xa264 0x2583
+0xa265 0x2584
+0xa266 0x2585
+0xa267 0x2586
+0xa268 0x2587
+0xa269 0x2588
+0xa26a 0x258F
+0xa26b 0x258E
+0xa26c 0x258D
+0xa26d 0x258C
+0xa26e 0x258B
+0xa26f 0x258A
+0xa270 0x2589
+0xa271 0x253C
+0xa272 0x2534
+0xa273 0x252C
+0xa274 0x2524
+0xa275 0x251C
+0xa276 0x2594
+0xa277 0x2500
+0xa278 0x2502
+0xa279 0x2595
+0xa27a 0x250C
+0xa27b 0x2510
+0xa27c 0x2514
+0xa27d 0x2518
+0xa27e 0x256D
+0xa2a1 0x256E
+0xa2a2 0x2570
+0xa2a3 0x256F
+0xa2a4 0x2550
+0xa2a5 0x255E
+0xa2a6 0x256A
+0xa2a7 0x2561
+0xa2a8 0x25E2
+0xa2a9 0x25E3
+0xa2aa 0x25E5
+0xa2ab 0x25E4
+0xa2ac 0x2571
+0xa2ad 0x2572
+0xa2ae 0x2573
+0xa2af 0xFF10
+0xa2b0 0xFF11
+0xa2b1 0xFF12
+0xa2b2 0xFF13
+0xa2b3 0xFF14
+0xa2b4 0xFF15
+0xa2b5 0xFF16
+0xa2b6 0xFF17
+0xa2b7 0xFF18
+0xa2b8 0xFF19
+0xa2b9 0x2160
+0xa2ba 0x2161
+0xa2bb 0x2162
+0xa2bc 0x2163
+0xa2bd 0x2164
+0xa2be 0x2165
+0xa2bf 0x2166
+0xa2c0 0x2167
+0xa2c1 0x2168
+0xa2c2 0x2169
+0xa2c3 0x3021
+0xa2c4 0x3022
+0xa2c5 0x3023
+0xa2c6 0x3024
+0xa2c7 0x3025
+0xa2c8 0x3026
+0xa2c9 0x3027
+0xa2ca 0x3028
+0xa2cb 0x3029
+0xa2cd 0x5344
+0xa2cf 0xFF21
+0xa2d0 0xFF22
+0xa2d1 0xFF23
+0xa2d2 0xFF24
+0xa2d3 0xFF25
+0xa2d4 0xFF26
+0xa2d5 0xFF27
+0xa2d6 0xFF28
+0xa2d7 0xFF29
+0xa2d8 0xFF2A
+0xa2d9 0xFF2B
+0xa2da 0xFF2C
+0xa2db 0xFF2D
+0xa2dc 0xFF2E
+0xa2dd 0xFF2F
+0xa2de 0xFF30
+0xa2df 0xFF31
+0xa2e0 0xFF32
+0xa2e1 0xFF33
+0xa2e2 0xFF34
+0xa2e3 0xFF35
+0xa2e4 0xFF36
+0xa2e5 0xFF37
+0xa2e6 0xFF38
+0xa2e7 0xFF39
+0xa2e8 0xFF3A
+0xa2e9 0xFF41
+0xa2ea 0xFF42
+0xa2eb 0xFF43
+0xa2ec 0xFF44
+0xa2ed 0xFF45
+0xa2ee 0xFF46
+0xa2ef 0xFF47
+0xa2f0 0xFF48
+0xa2f1 0xFF49
+0xa2f2 0xFF4A
+0xa2f3 0xFF4B
+0xa2f4 0xFF4C
+0xa2f5 0xFF4D
+0xa2f6 0xFF4E
+0xa2f7 0xFF4F
+0xa2f8 0xFF50
+0xa2f9 0xFF51
+0xa2fa 0xFF52
+0xa2fb 0xFF53
+0xa2fc 0xFF54
+0xa2fd 0xFF55
+0xa2fe 0xFF56
+0xa340 0xFF57
+0xa341 0xFF58
+0xa342 0xFF59
+0xa343 0xFF5A
+0xa344 0x0391
+0xa345 0x0392
+0xa346 0x0393
+0xa347 0x0394
+0xa348 0x0395
+0xa349 0x0396
+0xa34a 0x0397
+0xa34b 0x0398
+0xa34c 0x0399
+0xa34d 0x039A
+0xa34e 0x039B
+0xa34f 0x039C
+0xa350 0x039D
+0xa351 0x039E
+0xa352 0x039F
+0xa353 0x03A0
+0xa354 0x03A1
+0xa355 0x03A3
+0xa356 0x03A4
+0xa357 0x03A5
+0xa358 0x03A6
+0xa359 0x03A7
+0xa35a 0x03A8
+0xa35b 0x03A9
+0xa35c 0x03B1
+0xa35d 0x03B2
+0xa35e 0x03B3
+0xa35f 0x03B4
+0xa360 0x03B5
+0xa361 0x03B6
+0xa362 0x03B7
+0xa363 0x03B8
+0xa364 0x03B9
+0xa365 0x03BA
+0xa366 0x03BB
+0xa367 0x03BC
+0xa368 0x03BD
+0xa369 0x03BE
+0xa36a 0x03BF
+0xa36b 0x03C0
+0xa36c 0x03C1
+0xa36d 0x03C3
+0xa36e 0x03C4
+0xa36f 0x03C5
+0xa370 0x03C6
+0xa371 0x03C7
+0xa372 0x03C8
+0xa373 0x03C9
+0xa374 0x3105
+0xa375 0x3106
+0xa376 0x3107
+0xa377 0x3108
+0xa378 0x3109
+0xa379 0x310A
+0xa37a 0x310B
+0xa37b 0x310C
+0xa37c 0x310D
+0xa37d 0x310E
+0xa37e 0x310F
+0xa3a1 0x3110
+0xa3a2 0x3111
+0xa3a3 0x3112
+0xa3a4 0x3113
+0xa3a5 0x3114
+0xa3a6 0x3115
+0xa3a7 0x3116
+0xa3a8 0x3117
+0xa3a9 0x3118
+0xa3aa 0x3119
+0xa3ab 0x311A
+0xa3ac 0x311B
+0xa3ad 0x311C
+0xa3ae 0x311D
+0xa3af 0x311E
+0xa3b0 0x311F
+0xa3b1 0x3120
+0xa3b2 0x3121
+0xa3b3 0x3122
+0xa3b4 0x3123
+0xa3b5 0x3124
+0xa3b6 0x3125
+0xa3b7 0x3126
+0xa3b8 0x3127
+0xa3b9 0x3128
+0xa3ba 0x3129
+0xa3bb 0x02D9
+0xa3bc 0x02C9
+0xa3bd 0x02CA
+0xa3be 0x02C7
+0xa3bf 0x02CB
+0xa3e1 0x20AC
+0xa440 0x4E00
+0xa441 0x4E59
+0xa442 0x4E01
+0xa443 0x4E03
+0xa444 0x4E43
+0xa445 0x4E5D
+0xa446 0x4E86
+0xa447 0x4E8C
+0xa448 0x4EBA
+0xa449 0x513F
+0xa44a 0x5165
+0xa44b 0x516B
+0xa44c 0x51E0
+0xa44d 0x5200
+0xa44e 0x5201
+0xa44f 0x529B
+0xa450 0x5315
+0xa451 0x5341
+0xa452 0x535C
+0xa453 0x53C8
+0xa454 0x4E09
+0xa455 0x4E0B
+0xa456 0x4E08
+0xa457 0x4E0A
+0xa458 0x4E2B
+0xa459 0x4E38
+0xa45a 0x51E1
+0xa45b 0x4E45
+0xa45c 0x4E48
+0xa45d 0x4E5F
+0xa45e 0x4E5E
+0xa45f 0x4E8E
+0xa460 0x4EA1
+0xa461 0x5140
+0xa462 0x5203
+0xa463 0x52FA
+0xa464 0x5343
+0xa465 0x53C9
+0xa466 0x53E3
+0xa467 0x571F
+0xa468 0x58EB
+0xa469 0x5915
+0xa46a 0x5927
+0xa46b 0x5973
+0xa46c 0x5B50
+0xa46d 0x5B51
+0xa46e 0x5B53
+0xa46f 0x5BF8
+0xa470 0x5C0F
+0xa471 0x5C22
+0xa472 0x5C38
+0xa473 0x5C71
+0xa474 0x5DDD
+0xa475 0x5DE5
+0xa476 0x5DF1
+0xa477 0x5DF2
+0xa478 0x5DF3
+0xa479 0x5DFE
+0xa47a 0x5E72
+0xa47b 0x5EFE
+0xa47c 0x5F0B
+0xa47d 0x5F13
+0xa47e 0x624D
+0xa4a1 0x4E11
+0xa4a2 0x4E10
+0xa4a3 0x4E0D
+0xa4a4 0x4E2D
+0xa4a5 0x4E30
+0xa4a6 0x4E39
+0xa4a7 0x4E4B
+0xa4a8 0x5C39
+0xa4a9 0x4E88
+0xa4aa 0x4E91
+0xa4ab 0x4E95
+0xa4ac 0x4E92
+0xa4ad 0x4E94
+0xa4ae 0x4EA2
+0xa4af 0x4EC1
+0xa4b0 0x4EC0
+0xa4b1 0x4EC3
+0xa4b2 0x4EC6
+0xa4b3 0x4EC7
+0xa4b4 0x4ECD
+0xa4b5 0x4ECA
+0xa4b6 0x4ECB
+0xa4b7 0x4EC4
+0xa4b8 0x5143
+0xa4b9 0x5141
+0xa4ba 0x5167
+0xa4bb 0x516D
+0xa4bc 0x516E
+0xa4bd 0x516C
+0xa4be 0x5197
+0xa4bf 0x51F6
+0xa4c0 0x5206
+0xa4c1 0x5207
+0xa4c2 0x5208
+0xa4c3 0x52FB
+0xa4c4 0x52FE
+0xa4c5 0x52FF
+0xa4c6 0x5316
+0xa4c7 0x5339
+0xa4c8 0x5348
+0xa4c9 0x5347
+0xa4ca 0x5345
+0xa4cb 0x535E
+0xa4cc 0x5384
+0xa4cd 0x53CB
+0xa4ce 0x53CA
+0xa4cf 0x53CD
+0xa4d0 0x58EC
+0xa4d1 0x5929
+0xa4d2 0x592B
+0xa4d3 0x592A
+0xa4d4 0x592D
+0xa4d5 0x5B54
+0xa4d6 0x5C11
+0xa4d7 0x5C24
+0xa4d8 0x5C3A
+0xa4d9 0x5C6F
+0xa4da 0x5DF4
+0xa4db 0x5E7B
+0xa4dc 0x5EFF
+0xa4dd 0x5F14
+0xa4de 0x5F15
+0xa4df 0x5FC3
+0xa4e0 0x6208
+0xa4e1 0x6236
+0xa4e2 0x624B
+0xa4e3 0x624E
+0xa4e4 0x652F
+0xa4e5 0x6587
+0xa4e6 0x6597
+0xa4e7 0x65A4
+0xa4e8 0x65B9
+0xa4e9 0x65E5
+0xa4ea 0x66F0
+0xa4eb 0x6708
+0xa4ec 0x6728
+0xa4ed 0x6B20
+0xa4ee 0x6B62
+0xa4ef 0x6B79
+0xa4f0 0x6BCB
+0xa4f1 0x6BD4
+0xa4f2 0x6BDB
+0xa4f3 0x6C0F
+0xa4f4 0x6C34
+0xa4f5 0x706B
+0xa4f6 0x722A
+0xa4f7 0x7236
+0xa4f8 0x723B
+0xa4f9 0x7247
+0xa4fa 0x7259
+0xa4fb 0x725B
+0xa4fc 0x72AC
+0xa4fd 0x738B
+0xa4fe 0x4E19
+0xa540 0x4E16
+0xa541 0x4E15
+0xa542 0x4E14
+0xa543 0x4E18
+0xa544 0x4E3B
+0xa545 0x4E4D
+0xa546 0x4E4F
+0xa547 0x4E4E
+0xa548 0x4EE5
+0xa549 0x4ED8
+0xa54a 0x4ED4
+0xa54b 0x4ED5
+0xa54c 0x4ED6
+0xa54d 0x4ED7
+0xa54e 0x4EE3
+0xa54f 0x4EE4
+0xa550 0x4ED9
+0xa551 0x4EDE
+0xa552 0x5145
+0xa553 0x5144
+0xa554 0x5189
+0xa555 0x518A
+0xa556 0x51AC
+0xa557 0x51F9
+0xa558 0x51FA
+0xa559 0x51F8
+0xa55a 0x520A
+0xa55b 0x52A0
+0xa55c 0x529F
+0xa55d 0x5305
+0xa55e 0x5306
+0xa55f 0x5317
+0xa560 0x531D
+0xa561 0x4EDF
+0xa562 0x534A
+0xa563 0x5349
+0xa564 0x5361
+0xa565 0x5360
+0xa566 0x536F
+0xa567 0x536E
+0xa568 0x53BB
+0xa569 0x53EF
+0xa56a 0x53E4
+0xa56b 0x53F3
+0xa56c 0x53EC
+0xa56d 0x53EE
+0xa56e 0x53E9
+0xa56f 0x53E8
+0xa570 0x53FC
+0xa571 0x53F8
+0xa572 0x53F5
+0xa573 0x53EB
+0xa574 0x53E6
+0xa575 0x53EA
+0xa576 0x53F2
+0xa577 0x53F1
+0xa578 0x53F0
+0xa579 0x53E5
+0xa57a 0x53ED
+0xa57b 0x53FB
+0xa57c 0x56DB
+0xa57d 0x56DA
+0xa57e 0x5916
+0xa5a1 0x592E
+0xa5a2 0x5931
+0xa5a3 0x5974
+0xa5a4 0x5976
+0xa5a5 0x5B55
+0xa5a6 0x5B83
+0xa5a7 0x5C3C
+0xa5a8 0x5DE8
+0xa5a9 0x5DE7
+0xa5aa 0x5DE6
+0xa5ab 0x5E02
+0xa5ac 0x5E03
+0xa5ad 0x5E73
+0xa5ae 0x5E7C
+0xa5af 0x5F01
+0xa5b0 0x5F18
+0xa5b1 0x5F17
+0xa5b2 0x5FC5
+0xa5b3 0x620A
+0xa5b4 0x6253
+0xa5b5 0x6254
+0xa5b6 0x6252
+0xa5b7 0x6251
+0xa5b8 0x65A5
+0xa5b9 0x65E6
+0xa5ba 0x672E
+0xa5bb 0x672C
+0xa5bc 0x672A
+0xa5bd 0x672B
+0xa5be 0x672D
+0xa5bf 0x6B63
+0xa5c0 0x6BCD
+0xa5c1 0x6C11
+0xa5c2 0x6C10
+0xa5c3 0x6C38
+0xa5c4 0x6C41
+0xa5c5 0x6C40
+0xa5c6 0x6C3E
+0xa5c7 0x72AF
+0xa5c8 0x7384
+0xa5c9 0x7389
+0xa5ca 0x74DC
+0xa5cb 0x74E6
+0xa5cc 0x7518
+0xa5cd 0x751F
+0xa5ce 0x7528
+0xa5cf 0x7529
+0xa5d0 0x7530
+0xa5d1 0x7531
+0xa5d2 0x7532
+0xa5d3 0x7533
+0xa5d4 0x758B
+0xa5d5 0x767D
+0xa5d6 0x76AE
+0xa5d7 0x76BF
+0xa5d8 0x76EE
+0xa5d9 0x77DB
+0xa5da 0x77E2
+0xa5db 0x77F3
+0xa5dc 0x793A
+0xa5dd 0x79BE
+0xa5de 0x7A74
+0xa5df 0x7ACB
+0xa5e0 0x4E1E
+0xa5e1 0x4E1F
+0xa5e2 0x4E52
+0xa5e3 0x4E53
+0xa5e4 0x4E69
+0xa5e5 0x4E99
+0xa5e6 0x4EA4
+0xa5e7 0x4EA6
+0xa5e8 0x4EA5
+0xa5e9 0x4EFF
+0xa5ea 0x4F09
+0xa5eb 0x4F19
+0xa5ec 0x4F0A
+0xa5ed 0x4F15
+0xa5ee 0x4F0D
+0xa5ef 0x4F10
+0xa5f0 0x4F11
+0xa5f1 0x4F0F
+0xa5f2 0x4EF2
+0xa5f3 0x4EF6
+0xa5f4 0x4EFB
+0xa5f5 0x4EF0
+0xa5f6 0x4EF3
+0xa5f7 0x4EFD
+0xa5f8 0x4F01
+0xa5f9 0x4F0B
+0xa5fa 0x5149
+0xa5fb 0x5147
+0xa5fc 0x5146
+0xa5fd 0x5148
+0xa5fe 0x5168
+0xa640 0x5171
+0xa641 0x518D
+0xa642 0x51B0
+0xa643 0x5217
+0xa644 0x5211
+0xa645 0x5212
+0xa646 0x520E
+0xa647 0x5216
+0xa648 0x52A3
+0xa649 0x5308
+0xa64a 0x5321
+0xa64b 0x5320
+0xa64c 0x5370
+0xa64d 0x5371
+0xa64e 0x5409
+0xa64f 0x540F
+0xa650 0x540C
+0xa651 0x540A
+0xa652 0x5410
+0xa653 0x5401
+0xa654 0x540B
+0xa655 0x5404
+0xa656 0x5411
+0xa657 0x540D
+0xa658 0x5408
+0xa659 0x5403
+0xa65a 0x540E
+0xa65b 0x5406
+0xa65c 0x5412
+0xa65d 0x56E0
+0xa65e 0x56DE
+0xa65f 0x56DD
+0xa660 0x5733
+0xa661 0x5730
+0xa662 0x5728
+0xa663 0x572D
+0xa664 0x572C
+0xa665 0x572F
+0xa666 0x5729
+0xa667 0x5919
+0xa668 0x591A
+0xa669 0x5937
+0xa66a 0x5938
+0xa66b 0x5984
+0xa66c 0x5978
+0xa66d 0x5983
+0xa66e 0x597D
+0xa66f 0x5979
+0xa670 0x5982
+0xa671 0x5981
+0xa672 0x5B57
+0xa673 0x5B58
+0xa674 0x5B87
+0xa675 0x5B88
+0xa676 0x5B85
+0xa677 0x5B89
+0xa678 0x5BFA
+0xa679 0x5C16
+0xa67a 0x5C79
+0xa67b 0x5DDE
+0xa67c 0x5E06
+0xa67d 0x5E76
+0xa67e 0x5E74
+0xa6a1 0x5F0F
+0xa6a2 0x5F1B
+0xa6a3 0x5FD9
+0xa6a4 0x5FD6
+0xa6a5 0x620E
+0xa6a6 0x620C
+0xa6a7 0x620D
+0xa6a8 0x6210
+0xa6a9 0x6263
+0xa6aa 0x625B
+0xa6ab 0x6258
+0xa6ac 0x6536
+0xa6ad 0x65E9
+0xa6ae 0x65E8
+0xa6af 0x65EC
+0xa6b0 0x65ED
+0xa6b1 0x66F2
+0xa6b2 0x66F3
+0xa6b3 0x6709
+0xa6b4 0x673D
+0xa6b5 0x6734
+0xa6b6 0x6731
+0xa6b7 0x6735
+0xa6b8 0x6B21
+0xa6b9 0x6B64
+0xa6ba 0x6B7B
+0xa6bb 0x6C16
+0xa6bc 0x6C5D
+0xa6bd 0x6C57
+0xa6be 0x6C59
+0xa6bf 0x6C5F
+0xa6c0 0x6C60
+0xa6c1 0x6C50
+0xa6c2 0x6C55
+0xa6c3 0x6C61
+0xa6c4 0x6C5B
+0xa6c5 0x6C4D
+0xa6c6 0x6C4E
+0xa6c7 0x7070
+0xa6c8 0x725F
+0xa6c9 0x725D
+0xa6ca 0x767E
+0xa6cb 0x7AF9
+0xa6cc 0x7C73
+0xa6cd 0x7CF8
+0xa6ce 0x7F36
+0xa6cf 0x7F8A
+0xa6d0 0x7FBD
+0xa6d1 0x8001
+0xa6d2 0x8003
+0xa6d3 0x800C
+0xa6d4 0x8012
+0xa6d5 0x8033
+0xa6d6 0x807F
+0xa6d7 0x8089
+0xa6d8 0x808B
+0xa6d9 0x808C
+0xa6da 0x81E3
+0xa6db 0x81EA
+0xa6dc 0x81F3
+0xa6dd 0x81FC
+0xa6de 0x820C
+0xa6df 0x821B
+0xa6e0 0x821F
+0xa6e1 0x826E
+0xa6e2 0x8272
+0xa6e3 0x827E
+0xa6e4 0x866B
+0xa6e5 0x8840
+0xa6e6 0x884C
+0xa6e7 0x8863
+0xa6e8 0x897F
+0xa6e9 0x9621
+0xa6ea 0x4E32
+0xa6eb 0x4EA8
+0xa6ec 0x4F4D
+0xa6ed 0x4F4F
+0xa6ee 0x4F47
+0xa6ef 0x4F57
+0xa6f0 0x4F5E
+0xa6f1 0x4F34
+0xa6f2 0x4F5B
+0xa6f3 0x4F55
+0xa6f4 0x4F30
+0xa6f5 0x4F50
+0xa6f6 0x4F51
+0xa6f7 0x4F3D
+0xa6f8 0x4F3A
+0xa6f9 0x4F38
+0xa6fa 0x4F43
+0xa6fb 0x4F54
+0xa6fc 0x4F3C
+0xa6fd 0x4F46
+0xa6fe 0x4F63
+0xa740 0x4F5C
+0xa741 0x4F60
+0xa742 0x4F2F
+0xa743 0x4F4E
+0xa744 0x4F36
+0xa745 0x4F59
+0xa746 0x4F5D
+0xa747 0x4F48
+0xa748 0x4F5A
+0xa749 0x514C
+0xa74a 0x514B
+0xa74b 0x514D
+0xa74c 0x5175
+0xa74d 0x51B6
+0xa74e 0x51B7
+0xa74f 0x5225
+0xa750 0x5224
+0xa751 0x5229
+0xa752 0x522A
+0xa753 0x5228
+0xa754 0x52AB
+0xa755 0x52A9
+0xa756 0x52AA
+0xa757 0x52AC
+0xa758 0x5323
+0xa759 0x5373
+0xa75a 0x5375
+0xa75b 0x541D
+0xa75c 0x542D
+0xa75d 0x541E
+0xa75e 0x543E
+0xa75f 0x5426
+0xa760 0x544E
+0xa761 0x5427
+0xa762 0x5446
+0xa763 0x5443
+0xa764 0x5433
+0xa765 0x5448
+0xa766 0x5442
+0xa767 0x541B
+0xa768 0x5429
+0xa769 0x544A
+0xa76a 0x5439
+0xa76b 0x543B
+0xa76c 0x5438
+0xa76d 0x542E
+0xa76e 0x5435
+0xa76f 0x5436
+0xa770 0x5420
+0xa771 0x543C
+0xa772 0x5440
+0xa773 0x5431
+0xa774 0x542B
+0xa775 0x541F
+0xa776 0x542C
+0xa777 0x56EA
+0xa778 0x56F0
+0xa779 0x56E4
+0xa77a 0x56EB
+0xa77b 0x574A
+0xa77c 0x5751
+0xa77d 0x5740
+0xa77e 0x574D
+0xa7a1 0x5747
+0xa7a2 0x574E
+0xa7a3 0x573E
+0xa7a4 0x5750
+0xa7a5 0x574F
+0xa7a6 0x573B
+0xa7a7 0x58EF
+0xa7a8 0x593E
+0xa7a9 0x599D
+0xa7aa 0x5992
+0xa7ab 0x59A8
+0xa7ac 0x599E
+0xa7ad 0x59A3
+0xa7ae 0x5999
+0xa7af 0x5996
+0xa7b0 0x598D
+0xa7b1 0x59A4
+0xa7b2 0x5993
+0xa7b3 0x598A
+0xa7b4 0x59A5
+0xa7b5 0x5B5D
+0xa7b6 0x5B5C
+0xa7b7 0x5B5A
+0xa7b8 0x5B5B
+0xa7b9 0x5B8C
+0xa7ba 0x5B8B
+0xa7bb 0x5B8F
+0xa7bc 0x5C2C
+0xa7bd 0x5C40
+0xa7be 0x5C41
+0xa7bf 0x5C3F
+0xa7c0 0x5C3E
+0xa7c1 0x5C90
+0xa7c2 0x5C91
+0xa7c3 0x5C94
+0xa7c4 0x5C8C
+0xa7c5 0x5DEB
+0xa7c6 0x5E0C
+0xa7c7 0x5E8F
+0xa7c8 0x5E87
+0xa7c9 0x5E8A
+0xa7ca 0x5EF7
+0xa7cb 0x5F04
+0xa7cc 0x5F1F
+0xa7cd 0x5F64
+0xa7ce 0x5F62
+0xa7cf 0x5F77
+0xa7d0 0x5F79
+0xa7d1 0x5FD8
+0xa7d2 0x5FCC
+0xa7d3 0x5FD7
+0xa7d4 0x5FCD
+0xa7d5 0x5FF1
+0xa7d6 0x5FEB
+0xa7d7 0x5FF8
+0xa7d8 0x5FEA
+0xa7d9 0x6212
+0xa7da 0x6211
+0xa7db 0x6284
+0xa7dc 0x6297
+0xa7dd 0x6296
+0xa7de 0x6280
+0xa7df 0x6276
+0xa7e0 0x6289
+0xa7e1 0x626D
+0xa7e2 0x628A
+0xa7e3 0x627C
+0xa7e4 0x627E
+0xa7e5 0x6279
+0xa7e6 0x6273
+0xa7e7 0x6292
+0xa7e8 0x626F
+0xa7e9 0x6298
+0xa7ea 0x626E
+0xa7eb 0x6295
+0xa7ec 0x6293
+0xa7ed 0x6291
+0xa7ee 0x6286
+0xa7ef 0x6539
+0xa7f0 0x653B
+0xa7f1 0x6538
+0xa7f2 0x65F1
+0xa7f3 0x66F4
+0xa7f4 0x675F
+0xa7f5 0x674E
+0xa7f6 0x674F
+0xa7f7 0x6750
+0xa7f8 0x6751
+0xa7f9 0x675C
+0xa7fa 0x6756
+0xa7fb 0x675E
+0xa7fc 0x6749
+0xa7fd 0x6746
+0xa7fe 0x6760
+0xa840 0x6753
+0xa841 0x6757
+0xa842 0x6B65
+0xa843 0x6BCF
+0xa844 0x6C42
+0xa845 0x6C5E
+0xa846 0x6C99
+0xa847 0x6C81
+0xa848 0x6C88
+0xa849 0x6C89
+0xa84a 0x6C85
+0xa84b 0x6C9B
+0xa84c 0x6C6A
+0xa84d 0x6C7A
+0xa84e 0x6C90
+0xa84f 0x6C70
+0xa850 0x6C8C
+0xa851 0x6C68
+0xa852 0x6C96
+0xa853 0x6C92
+0xa854 0x6C7D
+0xa855 0x6C83
+0xa856 0x6C72
+0xa857 0x6C7E
+0xa858 0x6C74
+0xa859 0x6C86
+0xa85a 0x6C76
+0xa85b 0x6C8D
+0xa85c 0x6C94
+0xa85d 0x6C98
+0xa85e 0x6C82
+0xa85f 0x7076
+0xa860 0x707C
+0xa861 0x707D
+0xa862 0x7078
+0xa863 0x7262
+0xa864 0x7261
+0xa865 0x7260
+0xa866 0x72C4
+0xa867 0x72C2
+0xa868 0x7396
+0xa869 0x752C
+0xa86a 0x752B
+0xa86b 0x7537
+0xa86c 0x7538
+0xa86d 0x7682
+0xa86e 0x76EF
+0xa86f 0x77E3
+0xa870 0x79C1
+0xa871 0x79C0
+0xa872 0x79BF
+0xa873 0x7A76
+0xa874 0x7CFB
+0xa875 0x7F55
+0xa876 0x8096
+0xa877 0x8093
+0xa878 0x809D
+0xa879 0x8098
+0xa87a 0x809B
+0xa87b 0x809A
+0xa87c 0x80B2
+0xa87d 0x826F
+0xa87e 0x8292
+0xa8a1 0x828B
+0xa8a2 0x828D
+0xa8a3 0x898B
+0xa8a4 0x89D2
+0xa8a5 0x8A00
+0xa8a6 0x8C37
+0xa8a7 0x8C46
+0xa8a8 0x8C55
+0xa8a9 0x8C9D
+0xa8aa 0x8D64
+0xa8ab 0x8D70
+0xa8ac 0x8DB3
+0xa8ad 0x8EAB
+0xa8ae 0x8ECA
+0xa8af 0x8F9B
+0xa8b0 0x8FB0
+0xa8b1 0x8FC2
+0xa8b2 0x8FC6
+0xa8b3 0x8FC5
+0xa8b4 0x8FC4
+0xa8b5 0x5DE1
+0xa8b6 0x9091
+0xa8b7 0x90A2
+0xa8b8 0x90AA
+0xa8b9 0x90A6
+0xa8ba 0x90A3
+0xa8bb 0x9149
+0xa8bc 0x91C6
+0xa8bd 0x91CC
+0xa8be 0x9632
+0xa8bf 0x962E
+0xa8c0 0x9631
+0xa8c1 0x962A
+0xa8c2 0x962C
+0xa8c3 0x4E26
+0xa8c4 0x4E56
+0xa8c5 0x4E73
+0xa8c6 0x4E8B
+0xa8c7 0x4E9B
+0xa8c8 0x4E9E
+0xa8c9 0x4EAB
+0xa8ca 0x4EAC
+0xa8cb 0x4F6F
+0xa8cc 0x4F9D
+0xa8cd 0x4F8D
+0xa8ce 0x4F73
+0xa8cf 0x4F7F
+0xa8d0 0x4F6C
+0xa8d1 0x4F9B
+0xa8d2 0x4F8B
+0xa8d3 0x4F86
+0xa8d4 0x4F83
+0xa8d5 0x4F70
+0xa8d6 0x4F75
+0xa8d7 0x4F88
+0xa8d8 0x4F69
+0xa8d9 0x4F7B
+0xa8da 0x4F96
+0xa8db 0x4F7E
+0xa8dc 0x4F8F
+0xa8dd 0x4F91
+0xa8de 0x4F7A
+0xa8df 0x5154
+0xa8e0 0x5152
+0xa8e1 0x5155
+0xa8e2 0x5169
+0xa8e3 0x5177
+0xa8e4 0x5176
+0xa8e5 0x5178
+0xa8e6 0x51BD
+0xa8e7 0x51FD
+0xa8e8 0x523B
+0xa8e9 0x5238
+0xa8ea 0x5237
+0xa8eb 0x523A
+0xa8ec 0x5230
+0xa8ed 0x522E
+0xa8ee 0x5236
+0xa8ef 0x5241
+0xa8f0 0x52BE
+0xa8f1 0x52BB
+0xa8f2 0x5352
+0xa8f3 0x5354
+0xa8f4 0x5353
+0xa8f5 0x5351
+0xa8f6 0x5366
+0xa8f7 0x5377
+0xa8f8 0x5378
+0xa8f9 0x5379
+0xa8fa 0x53D6
+0xa8fb 0x53D4
+0xa8fc 0x53D7
+0xa8fd 0x5473
+0xa8fe 0x5475
+0xa940 0x5496
+0xa941 0x5478
+0xa942 0x5495
+0xa943 0x5480
+0xa944 0x547B
+0xa945 0x5477
+0xa946 0x5484
+0xa947 0x5492
+0xa948 0x5486
+0xa949 0x547C
+0xa94a 0x5490
+0xa94b 0x5471
+0xa94c 0x5476
+0xa94d 0x548C
+0xa94e 0x549A
+0xa94f 0x5462
+0xa950 0x5468
+0xa951 0x548B
+0xa952 0x547D
+0xa953 0x548E
+0xa954 0x56FA
+0xa955 0x5783
+0xa956 0x5777
+0xa957 0x576A
+0xa958 0x5769
+0xa959 0x5761
+0xa95a 0x5766
+0xa95b 0x5764
+0xa95c 0x577C
+0xa95d 0x591C
+0xa95e 0x5949
+0xa95f 0x5947
+0xa960 0x5948
+0xa961 0x5944
+0xa962 0x5954
+0xa963 0x59BE
+0xa964 0x59BB
+0xa965 0x59D4
+0xa966 0x59B9
+0xa967 0x59AE
+0xa968 0x59D1
+0xa969 0x59C6
+0xa96a 0x59D0
+0xa96b 0x59CD
+0xa96c 0x59CB
+0xa96d 0x59D3
+0xa96e 0x59CA
+0xa96f 0x59AF
+0xa970 0x59B3
+0xa971 0x59D2
+0xa972 0x59C5
+0xa973 0x5B5F
+0xa974 0x5B64
+0xa975 0x5B63
+0xa976 0x5B97
+0xa977 0x5B9A
+0xa978 0x5B98
+0xa979 0x5B9C
+0xa97a 0x5B99
+0xa97b 0x5B9B
+0xa97c 0x5C1A
+0xa97d 0x5C48
+0xa97e 0x5C45
+0xa9a1 0x5C46
+0xa9a2 0x5CB7
+0xa9a3 0x5CA1
+0xa9a4 0x5CB8
+0xa9a5 0x5CA9
+0xa9a6 0x5CAB
+0xa9a7 0x5CB1
+0xa9a8 0x5CB3
+0xa9a9 0x5E18
+0xa9aa 0x5E1A
+0xa9ab 0x5E16
+0xa9ac 0x5E15
+0xa9ad 0x5E1B
+0xa9ae 0x5E11
+0xa9af 0x5E78
+0xa9b0 0x5E9A
+0xa9b1 0x5E97
+0xa9b2 0x5E9C
+0xa9b3 0x5E95
+0xa9b4 0x5E96
+0xa9b5 0x5EF6
+0xa9b6 0x5F26
+0xa9b7 0x5F27
+0xa9b8 0x5F29
+0xa9b9 0x5F80
+0xa9ba 0x5F81
+0xa9bb 0x5F7F
+0xa9bc 0x5F7C
+0xa9bd 0x5FDD
+0xa9be 0x5FE0
+0xa9bf 0x5FFD
+0xa9c0 0x5FF5
+0xa9c1 0x5FFF
+0xa9c2 0x600F
+0xa9c3 0x6014
+0xa9c4 0x602F
+0xa9c5 0x6035
+0xa9c6 0x6016
+0xa9c7 0x602A
+0xa9c8 0x6015
+0xa9c9 0x6021
+0xa9ca 0x6027
+0xa9cb 0x6029
+0xa9cc 0x602B
+0xa9cd 0x601B
+0xa9ce 0x6216
+0xa9cf 0x6215
+0xa9d0 0x623F
+0xa9d1 0x623E
+0xa9d2 0x6240
+0xa9d3 0x627F
+0xa9d4 0x62C9
+0xa9d5 0x62CC
+0xa9d6 0x62C4
+0xa9d7 0x62BF
+0xa9d8 0x62C2
+0xa9d9 0x62B9
+0xa9da 0x62D2
+0xa9db 0x62DB
+0xa9dc 0x62AB
+0xa9dd 0x62D3
+0xa9de 0x62D4
+0xa9df 0x62CB
+0xa9e0 0x62C8
+0xa9e1 0x62A8
+0xa9e2 0x62BD
+0xa9e3 0x62BC
+0xa9e4 0x62D0
+0xa9e5 0x62D9
+0xa9e6 0x62C7
+0xa9e7 0x62CD
+0xa9e8 0x62B5
+0xa9e9 0x62DA
+0xa9ea 0x62B1
+0xa9eb 0x62D8
+0xa9ec 0x62D6
+0xa9ed 0x62D7
+0xa9ee 0x62C6
+0xa9ef 0x62AC
+0xa9f0 0x62CE
+0xa9f1 0x653E
+0xa9f2 0x65A7
+0xa9f3 0x65BC
+0xa9f4 0x65FA
+0xa9f5 0x6614
+0xa9f6 0x6613
+0xa9f7 0x660C
+0xa9f8 0x6606
+0xa9f9 0x6602
+0xa9fa 0x660E
+0xa9fb 0x6600
+0xa9fc 0x660F
+0xa9fd 0x6615
+0xa9fe 0x660A
+0xaa40 0x6607
+0xaa41 0x670D
+0xaa42 0x670B
+0xaa43 0x676D
+0xaa44 0x678B
+0xaa45 0x6795
+0xaa46 0x6771
+0xaa47 0x679C
+0xaa48 0x6773
+0xaa49 0x6777
+0xaa4a 0x6787
+0xaa4b 0x679D
+0xaa4c 0x6797
+0xaa4d 0x676F
+0xaa4e 0x6770
+0xaa4f 0x677F
+0xaa50 0x6789
+0xaa51 0x677E
+0xaa52 0x6790
+0xaa53 0x6775
+0xaa54 0x679A
+0xaa55 0x6793
+0xaa56 0x677C
+0xaa57 0x676A
+0xaa58 0x6772
+0xaa59 0x6B23
+0xaa5a 0x6B66
+0xaa5b 0x6B67
+0xaa5c 0x6B7F
+0xaa5d 0x6C13
+0xaa5e 0x6C1B
+0xaa5f 0x6CE3
+0xaa60 0x6CE8
+0xaa61 0x6CF3
+0xaa62 0x6CB1
+0xaa63 0x6CCC
+0xaa64 0x6CE5
+0xaa65 0x6CB3
+0xaa66 0x6CBD
+0xaa67 0x6CBE
+0xaa68 0x6CBC
+0xaa69 0x6CE2
+0xaa6a 0x6CAB
+0xaa6b 0x6CD5
+0xaa6c 0x6CD3
+0xaa6d 0x6CB8
+0xaa6e 0x6CC4
+0xaa6f 0x6CB9
+0xaa70 0x6CC1
+0xaa71 0x6CAE
+0xaa72 0x6CD7
+0xaa73 0x6CC5
+0xaa74 0x6CF1
+0xaa75 0x6CBF
+0xaa76 0x6CBB
+0xaa77 0x6CE1
+0xaa78 0x6CDB
+0xaa79 0x6CCA
+0xaa7a 0x6CAC
+0xaa7b 0x6CEF
+0xaa7c 0x6CDC
+0xaa7d 0x6CD6
+0xaa7e 0x6CE0
+0xaaa1 0x7095
+0xaaa2 0x708E
+0xaaa3 0x7092
+0xaaa4 0x708A
+0xaaa5 0x7099
+0xaaa6 0x722C
+0xaaa7 0x722D
+0xaaa8 0x7238
+0xaaa9 0x7248
+0xaaaa 0x7267
+0xaaab 0x7269
+0xaaac 0x72C0
+0xaaad 0x72CE
+0xaaae 0x72D9
+0xaaaf 0x72D7
+0xaab0 0x72D0
+0xaab1 0x73A9
+0xaab2 0x73A8
+0xaab3 0x739F
+0xaab4 0x73AB
+0xaab5 0x73A5
+0xaab6 0x753D
+0xaab7 0x759D
+0xaab8 0x7599
+0xaab9 0x759A
+0xaaba 0x7684
+0xaabb 0x76C2
+0xaabc 0x76F2
+0xaabd 0x76F4
+0xaabe 0x77E5
+0xaabf 0x77FD
+0xaac0 0x793E
+0xaac1 0x7940
+0xaac2 0x7941
+0xaac3 0x79C9
+0xaac4 0x79C8
+0xaac5 0x7A7A
+0xaac6 0x7A79
+0xaac7 0x7AFA
+0xaac8 0x7CFE
+0xaac9 0x7F54
+0xaaca 0x7F8C
+0xaacb 0x7F8B
+0xaacc 0x8005
+0xaacd 0x80BA
+0xaace 0x80A5
+0xaacf 0x80A2
+0xaad0 0x80B1
+0xaad1 0x80A1
+0xaad2 0x80AB
+0xaad3 0x80A9
+0xaad4 0x80B4
+0xaad5 0x80AA
+0xaad6 0x80AF
+0xaad7 0x81E5
+0xaad8 0x81FE
+0xaad9 0x820D
+0xaada 0x82B3
+0xaadb 0x829D
+0xaadc 0x8299
+0xaadd 0x82AD
+0xaade 0x82BD
+0xaadf 0x829F
+0xaae0 0x82B9
+0xaae1 0x82B1
+0xaae2 0x82AC
+0xaae3 0x82A5
+0xaae4 0x82AF
+0xaae5 0x82B8
+0xaae6 0x82A3
+0xaae7 0x82B0
+0xaae8 0x82BE
+0xaae9 0x82B7
+0xaaea 0x864E
+0xaaeb 0x8671
+0xaaec 0x521D
+0xaaed 0x8868
+0xaaee 0x8ECB
+0xaaef 0x8FCE
+0xaaf0 0x8FD4
+0xaaf1 0x8FD1
+0xaaf2 0x90B5
+0xaaf3 0x90B8
+0xaaf4 0x90B1
+0xaaf5 0x90B6
+0xaaf6 0x91C7
+0xaaf7 0x91D1
+0xaaf8 0x9577
+0xaaf9 0x9580
+0xaafa 0x961C
+0xaafb 0x9640
+0xaafc 0x963F
+0xaafd 0x963B
+0xaafe 0x9644
+0xab40 0x9642
+0xab41 0x96B9
+0xab42 0x96E8
+0xab43 0x9752
+0xab44 0x975E
+0xab45 0x4E9F
+0xab46 0x4EAD
+0xab47 0x4EAE
+0xab48 0x4FE1
+0xab49 0x4FB5
+0xab4a 0x4FAF
+0xab4b 0x4FBF
+0xab4c 0x4FE0
+0xab4d 0x4FD1
+0xab4e 0x4FCF
+0xab4f 0x4FDD
+0xab50 0x4FC3
+0xab51 0x4FB6
+0xab52 0x4FD8
+0xab53 0x4FDF
+0xab54 0x4FCA
+0xab55 0x4FD7
+0xab56 0x4FAE
+0xab57 0x4FD0
+0xab58 0x4FC4
+0xab59 0x4FC2
+0xab5a 0x4FDA
+0xab5b 0x4FCE
+0xab5c 0x4FDE
+0xab5d 0x4FB7
+0xab5e 0x5157
+0xab5f 0x5192
+0xab60 0x5191
+0xab61 0x51A0
+0xab62 0x524E
+0xab63 0x5243
+0xab64 0x524A
+0xab65 0x524D
+0xab66 0x524C
+0xab67 0x524B
+0xab68 0x5247
+0xab69 0x52C7
+0xab6a 0x52C9
+0xab6b 0x52C3
+0xab6c 0x52C1
+0xab6d 0x530D
+0xab6e 0x5357
+0xab6f 0x537B
+0xab70 0x539A
+0xab71 0x53DB
+0xab72 0x54AC
+0xab73 0x54C0
+0xab74 0x54A8
+0xab75 0x54CE
+0xab76 0x54C9
+0xab77 0x54B8
+0xab78 0x54A6
+0xab79 0x54B3
+0xab7a 0x54C7
+0xab7b 0x54C2
+0xab7c 0x54BD
+0xab7d 0x54AA
+0xab7e 0x54C1
+0xaba1 0x54C4
+0xaba2 0x54C8
+0xaba3 0x54AF
+0xaba4 0x54AB
+0xaba5 0x54B1
+0xaba6 0x54BB
+0xaba7 0x54A9
+0xaba8 0x54A7
+0xaba9 0x54BF
+0xabaa 0x56FF
+0xabab 0x5782
+0xabac 0x578B
+0xabad 0x57A0
+0xabae 0x57A3
+0xabaf 0x57A2
+0xabb0 0x57CE
+0xabb1 0x57AE
+0xabb2 0x5793
+0xabb3 0x5955
+0xabb4 0x5951
+0xabb5 0x594F
+0xabb6 0x594E
+0xabb7 0x5950
+0xabb8 0x59DC
+0xabb9 0x59D8
+0xabba 0x59FF
+0xabbb 0x59E3
+0xabbc 0x59E8
+0xabbd 0x5A03
+0xabbe 0x59E5
+0xabbf 0x59EA
+0xabc0 0x59DA
+0xabc1 0x59E6
+0xabc2 0x5A01
+0xabc3 0x59FB
+0xabc4 0x5B69
+0xabc5 0x5BA3
+0xabc6 0x5BA6
+0xabc7 0x5BA4
+0xabc8 0x5BA2
+0xabc9 0x5BA5
+0xabca 0x5C01
+0xabcb 0x5C4E
+0xabcc 0x5C4F
+0xabcd 0x5C4D
+0xabce 0x5C4B
+0xabcf 0x5CD9
+0xabd0 0x5CD2
+0xabd1 0x5DF7
+0xabd2 0x5E1D
+0xabd3 0x5E25
+0xabd4 0x5E1F
+0xabd5 0x5E7D
+0xabd6 0x5EA0
+0xabd7 0x5EA6
+0xabd8 0x5EFA
+0xabd9 0x5F08
+0xabda 0x5F2D
+0xabdb 0x5F65
+0xabdc 0x5F88
+0xabdd 0x5F85
+0xabde 0x5F8A
+0xabdf 0x5F8B
+0xabe0 0x5F87
+0xabe1 0x5F8C
+0xabe2 0x5F89
+0xabe3 0x6012
+0xabe4 0x601D
+0xabe5 0x6020
+0xabe6 0x6025
+0xabe7 0x600E
+0xabe8 0x6028
+0xabe9 0x604D
+0xabea 0x6070
+0xabeb 0x6068
+0xabec 0x6062
+0xabed 0x6046
+0xabee 0x6043
+0xabef 0x606C
+0xabf0 0x606B
+0xabf1 0x606A
+0xabf2 0x6064
+0xabf3 0x6241
+0xabf4 0x62DC
+0xabf5 0x6316
+0xabf6 0x6309
+0xabf7 0x62FC
+0xabf8 0x62ED
+0xabf9 0x6301
+0xabfa 0x62EE
+0xabfb 0x62FD
+0xabfc 0x6307
+0xabfd 0x62F1
+0xabfe 0x62F7
+0xac40 0x62EF
+0xac41 0x62EC
+0xac42 0x62FE
+0xac43 0x62F4
+0xac44 0x6311
+0xac45 0x6302
+0xac46 0x653F
+0xac47 0x6545
+0xac48 0x65AB
+0xac49 0x65BD
+0xac4a 0x65E2
+0xac4b 0x6625
+0xac4c 0x662D
+0xac4d 0x6620
+0xac4e 0x6627
+0xac4f 0x662F
+0xac50 0x661F
+0xac51 0x6628
+0xac52 0x6631
+0xac53 0x6624
+0xac54 0x66F7
+0xac55 0x67FF
+0xac56 0x67D3
+0xac57 0x67F1
+0xac58 0x67D4
+0xac59 0x67D0
+0xac5a 0x67EC
+0xac5b 0x67B6
+0xac5c 0x67AF
+0xac5d 0x67F5
+0xac5e 0x67E9
+0xac5f 0x67EF
+0xac60 0x67C4
+0xac61 0x67D1
+0xac62 0x67B4
+0xac63 0x67DA
+0xac64 0x67E5
+0xac65 0x67B8
+0xac66 0x67CF
+0xac67 0x67DE
+0xac68 0x67F3
+0xac69 0x67B0
+0xac6a 0x67D9
+0xac6b 0x67E2
+0xac6c 0x67DD
+0xac6d 0x67D2
+0xac6e 0x6B6A
+0xac6f 0x6B83
+0xac70 0x6B86
+0xac71 0x6BB5
+0xac72 0x6BD2
+0xac73 0x6BD7
+0xac74 0x6C1F
+0xac75 0x6CC9
+0xac76 0x6D0B
+0xac77 0x6D32
+0xac78 0x6D2A
+0xac79 0x6D41
+0xac7a 0x6D25
+0xac7b 0x6D0C
+0xac7c 0x6D31
+0xac7d 0x6D1E
+0xac7e 0x6D17
+0xaca1 0x6D3B
+0xaca2 0x6D3D
+0xaca3 0x6D3E
+0xaca4 0x6D36
+0xaca5 0x6D1B
+0xaca6 0x6CF5
+0xaca7 0x6D39
+0xaca8 0x6D27
+0xaca9 0x6D38
+0xacaa 0x6D29
+0xacab 0x6D2E
+0xacac 0x6D35
+0xacad 0x6D0E
+0xacae 0x6D2B
+0xacaf 0x70AB
+0xacb0 0x70BA
+0xacb1 0x70B3
+0xacb2 0x70AC
+0xacb3 0x70AF
+0xacb4 0x70AD
+0xacb5 0x70B8
+0xacb6 0x70AE
+0xacb7 0x70A4
+0xacb8 0x7230
+0xacb9 0x7272
+0xacba 0x726F
+0xacbb 0x7274
+0xacbc 0x72E9
+0xacbd 0x72E0
+0xacbe 0x72E1
+0xacbf 0x73B7
+0xacc0 0x73CA
+0xacc1 0x73BB
+0xacc2 0x73B2
+0xacc3 0x73CD
+0xacc4 0x73C0
+0xacc5 0x73B3
+0xacc6 0x751A
+0xacc7 0x752D
+0xacc8 0x754F
+0xacc9 0x754C
+0xacca 0x754E
+0xaccb 0x754B
+0xaccc 0x75AB
+0xaccd 0x75A4
+0xacce 0x75A5
+0xaccf 0x75A2
+0xacd0 0x75A3
+0xacd1 0x7678
+0xacd2 0x7686
+0xacd3 0x7687
+0xacd4 0x7688
+0xacd5 0x76C8
+0xacd6 0x76C6
+0xacd7 0x76C3
+0xacd8 0x76C5
+0xacd9 0x7701
+0xacda 0x76F9
+0xacdb 0x76F8
+0xacdc 0x7709
+0xacdd 0x770B
+0xacde 0x76FE
+0xacdf 0x76FC
+0xace0 0x7707
+0xace1 0x77DC
+0xace2 0x7802
+0xace3 0x7814
+0xace4 0x780C
+0xace5 0x780D
+0xace6 0x7946
+0xace7 0x7949
+0xace8 0x7948
+0xace9 0x7947
+0xacea 0x79B9
+0xaceb 0x79BA
+0xacec 0x79D1
+0xaced 0x79D2
+0xacee 0x79CB
+0xacef 0x7A7F
+0xacf0 0x7A81
+0xacf1 0x7AFF
+0xacf2 0x7AFD
+0xacf3 0x7C7D
+0xacf4 0x7D02
+0xacf5 0x7D05
+0xacf6 0x7D00
+0xacf7 0x7D09
+0xacf8 0x7D07
+0xacf9 0x7D04
+0xacfa 0x7D06
+0xacfb 0x7F38
+0xacfc 0x7F8E
+0xacfd 0x7FBF
+0xacfe 0x8004
+0xad40 0x8010
+0xad41 0x800D
+0xad42 0x8011
+0xad43 0x8036
+0xad44 0x80D6
+0xad45 0x80E5
+0xad46 0x80DA
+0xad47 0x80C3
+0xad48 0x80C4
+0xad49 0x80CC
+0xad4a 0x80E1
+0xad4b 0x80DB
+0xad4c 0x80CE
+0xad4d 0x80DE
+0xad4e 0x80E4
+0xad4f 0x80DD
+0xad50 0x81F4
+0xad51 0x8222
+0xad52 0x82E7
+0xad53 0x8303
+0xad54 0x8305
+0xad55 0x82E3
+0xad56 0x82DB
+0xad57 0x82E6
+0xad58 0x8304
+0xad59 0x82E5
+0xad5a 0x8302
+0xad5b 0x8309
+0xad5c 0x82D2
+0xad5d 0x82D7
+0xad5e 0x82F1
+0xad5f 0x8301
+0xad60 0x82DC
+0xad61 0x82D4
+0xad62 0x82D1
+0xad63 0x82DE
+0xad64 0x82D3
+0xad65 0x82DF
+0xad66 0x82EF
+0xad67 0x8306
+0xad68 0x8650
+0xad69 0x8679
+0xad6a 0x867B
+0xad6b 0x867A
+0xad6c 0x884D
+0xad6d 0x886B
+0xad6e 0x8981
+0xad6f 0x89D4
+0xad70 0x8A08
+0xad71 0x8A02
+0xad72 0x8A03
+0xad73 0x8C9E
+0xad74 0x8CA0
+0xad75 0x8D74
+0xad76 0x8D73
+0xad77 0x8DB4
+0xad78 0x8ECD
+0xad79 0x8ECC
+0xad7a 0x8FF0
+0xad7b 0x8FE6
+0xad7c 0x8FE2
+0xad7d 0x8FEA
+0xad7e 0x8FE5
+0xada1 0x8FED
+0xada2 0x8FEB
+0xada3 0x8FE4
+0xada4 0x8FE8
+0xada5 0x90CA
+0xada6 0x90CE
+0xada7 0x90C1
+0xada8 0x90C3
+0xada9 0x914B
+0xadaa 0x914A
+0xadab 0x91CD
+0xadac 0x9582
+0xadad 0x9650
+0xadae 0x964B
+0xadaf 0x964C
+0xadb0 0x964D
+0xadb1 0x9762
+0xadb2 0x9769
+0xadb3 0x97CB
+0xadb4 0x97ED
+0xadb5 0x97F3
+0xadb6 0x9801
+0xadb7 0x98A8
+0xadb8 0x98DB
+0xadb9 0x98DF
+0xadba 0x9996
+0xadbb 0x9999
+0xadbc 0x4E58
+0xadbd 0x4EB3
+0xadbe 0x500C
+0xadbf 0x500D
+0xadc0 0x5023
+0xadc1 0x4FEF
+0xadc2 0x5026
+0xadc3 0x5025
+0xadc4 0x4FF8
+0xadc5 0x5029
+0xadc6 0x5016
+0xadc7 0x5006
+0xadc8 0x503C
+0xadc9 0x501F
+0xadca 0x501A
+0xadcb 0x5012
+0xadcc 0x5011
+0xadcd 0x4FFA
+0xadce 0x5000
+0xadcf 0x5014
+0xadd0 0x5028
+0xadd1 0x4FF1
+0xadd2 0x5021
+0xadd3 0x500B
+0xadd4 0x5019
+0xadd5 0x5018
+0xadd6 0x4FF3
+0xadd7 0x4FEE
+0xadd8 0x502D
+0xadd9 0x502A
+0xadda 0x4FFE
+0xaddb 0x502B
+0xaddc 0x5009
+0xaddd 0x517C
+0xadde 0x51A4
+0xaddf 0x51A5
+0xade0 0x51A2
+0xade1 0x51CD
+0xade2 0x51CC
+0xade3 0x51C6
+0xade4 0x51CB
+0xade5 0x5256
+0xade6 0x525C
+0xade7 0x5254
+0xade8 0x525B
+0xade9 0x525D
+0xadea 0x532A
+0xadeb 0x537F
+0xadec 0x539F
+0xaded 0x539D
+0xadee 0x53DF
+0xadef 0x54E8
+0xadf0 0x5510
+0xadf1 0x5501
+0xadf2 0x5537
+0xadf3 0x54FC
+0xadf4 0x54E5
+0xadf5 0x54F2
+0xadf6 0x5506
+0xadf7 0x54FA
+0xadf8 0x5514
+0xadf9 0x54E9
+0xadfa 0x54ED
+0xadfb 0x54E1
+0xadfc 0x5509
+0xadfd 0x54EE
+0xadfe 0x54EA
+0xae40 0x54E6
+0xae41 0x5527
+0xae42 0x5507
+0xae43 0x54FD
+0xae44 0x550F
+0xae45 0x5703
+0xae46 0x5704
+0xae47 0x57C2
+0xae48 0x57D4
+0xae49 0x57CB
+0xae4a 0x57C3
+0xae4b 0x5809
+0xae4c 0x590F
+0xae4d 0x5957
+0xae4e 0x5958
+0xae4f 0x595A
+0xae50 0x5A11
+0xae51 0x5A18
+0xae52 0x5A1C
+0xae53 0x5A1F
+0xae54 0x5A1B
+0xae55 0x5A13
+0xae56 0x59EC
+0xae57 0x5A20
+0xae58 0x5A23
+0xae59 0x5A29
+0xae5a 0x5A25
+0xae5b 0x5A0C
+0xae5c 0x5A09
+0xae5d 0x5B6B
+0xae5e 0x5C58
+0xae5f 0x5BB0
+0xae60 0x5BB3
+0xae61 0x5BB6
+0xae62 0x5BB4
+0xae63 0x5BAE
+0xae64 0x5BB5
+0xae65 0x5BB9
+0xae66 0x5BB8
+0xae67 0x5C04
+0xae68 0x5C51
+0xae69 0x5C55
+0xae6a 0x5C50
+0xae6b 0x5CED
+0xae6c 0x5CFD
+0xae6d 0x5CFB
+0xae6e 0x5CEA
+0xae6f 0x5CE8
+0xae70 0x5CF0
+0xae71 0x5CF6
+0xae72 0x5D01
+0xae73 0x5CF4
+0xae74 0x5DEE
+0xae75 0x5E2D
+0xae76 0x5E2B
+0xae77 0x5EAB
+0xae78 0x5EAD
+0xae79 0x5EA7
+0xae7a 0x5F31
+0xae7b 0x5F92
+0xae7c 0x5F91
+0xae7d 0x5F90
+0xae7e 0x6059
+0xaea1 0x6063
+0xaea2 0x6065
+0xaea3 0x6050
+0xaea4 0x6055
+0xaea5 0x606D
+0xaea6 0x6069
+0xaea7 0x606F
+0xaea8 0x6084
+0xaea9 0x609F
+0xaeaa 0x609A
+0xaeab 0x608D
+0xaeac 0x6094
+0xaead 0x608C
+0xaeae 0x6085
+0xaeaf 0x6096
+0xaeb0 0x6247
+0xaeb1 0x62F3
+0xaeb2 0x6308
+0xaeb3 0x62FF
+0xaeb4 0x634E
+0xaeb5 0x633E
+0xaeb6 0x632F
+0xaeb7 0x6355
+0xaeb8 0x6342
+0xaeb9 0x6346
+0xaeba 0x634F
+0xaebb 0x6349
+0xaebc 0x633A
+0xaebd 0x6350
+0xaebe 0x633D
+0xaebf 0x632A
+0xaec0 0x632B
+0xaec1 0x6328
+0xaec2 0x634D
+0xaec3 0x634C
+0xaec4 0x6548
+0xaec5 0x6549
+0xaec6 0x6599
+0xaec7 0x65C1
+0xaec8 0x65C5
+0xaec9 0x6642
+0xaeca 0x6649
+0xaecb 0x664F
+0xaecc 0x6643
+0xaecd 0x6652
+0xaece 0x664C
+0xaecf 0x6645
+0xaed0 0x6641
+0xaed1 0x66F8
+0xaed2 0x6714
+0xaed3 0x6715
+0xaed4 0x6717
+0xaed5 0x6821
+0xaed6 0x6838
+0xaed7 0x6848
+0xaed8 0x6846
+0xaed9 0x6853
+0xaeda 0x6839
+0xaedb 0x6842
+0xaedc 0x6854
+0xaedd 0x6829
+0xaede 0x68B3
+0xaedf 0x6817
+0xaee0 0x684C
+0xaee1 0x6851
+0xaee2 0x683D
+0xaee3 0x67F4
+0xaee4 0x6850
+0xaee5 0x6840
+0xaee6 0x683C
+0xaee7 0x6843
+0xaee8 0x682A
+0xaee9 0x6845
+0xaeea 0x6813
+0xaeeb 0x6818
+0xaeec 0x6841
+0xaeed 0x6B8A
+0xaeee 0x6B89
+0xaeef 0x6BB7
+0xaef0 0x6C23
+0xaef1 0x6C27
+0xaef2 0x6C28
+0xaef3 0x6C26
+0xaef4 0x6C24
+0xaef5 0x6CF0
+0xaef6 0x6D6A
+0xaef7 0x6D95
+0xaef8 0x6D88
+0xaef9 0x6D87
+0xaefa 0x6D66
+0xaefb 0x6D78
+0xaefc 0x6D77
+0xaefd 0x6D59
+0xaefe 0x6D93
+0xaf40 0x6D6C
+0xaf41 0x6D89
+0xaf42 0x6D6E
+0xaf43 0x6D5A
+0xaf44 0x6D74
+0xaf45 0x6D69
+0xaf46 0x6D8C
+0xaf47 0x6D8A
+0xaf48 0x6D79
+0xaf49 0x6D85
+0xaf4a 0x6D65
+0xaf4b 0x6D94
+0xaf4c 0x70CA
+0xaf4d 0x70D8
+0xaf4e 0x70E4
+0xaf4f 0x70D9
+0xaf50 0x70C8
+0xaf51 0x70CF
+0xaf52 0x7239
+0xaf53 0x7279
+0xaf54 0x72FC
+0xaf55 0x72F9
+0xaf56 0x72FD
+0xaf57 0x72F8
+0xaf58 0x72F7
+0xaf59 0x7386
+0xaf5a 0x73ED
+0xaf5b 0x7409
+0xaf5c 0x73EE
+0xaf5d 0x73E0
+0xaf5e 0x73EA
+0xaf5f 0x73DE
+0xaf60 0x7554
+0xaf61 0x755D
+0xaf62 0x755C
+0xaf63 0x755A
+0xaf64 0x7559
+0xaf65 0x75BE
+0xaf66 0x75C5
+0xaf67 0x75C7
+0xaf68 0x75B2
+0xaf69 0x75B3
+0xaf6a 0x75BD
+0xaf6b 0x75BC
+0xaf6c 0x75B9
+0xaf6d 0x75C2
+0xaf6e 0x75B8
+0xaf6f 0x768B
+0xaf70 0x76B0
+0xaf71 0x76CA
+0xaf72 0x76CD
+0xaf73 0x76CE
+0xaf74 0x7729
+0xaf75 0x771F
+0xaf76 0x7720
+0xaf77 0x7728
+0xaf78 0x77E9
+0xaf79 0x7830
+0xaf7a 0x7827
+0xaf7b 0x7838
+0xaf7c 0x781D
+0xaf7d 0x7834
+0xaf7e 0x7837
+0xafa1 0x7825
+0xafa2 0x782D
+0xafa3 0x7820
+0xafa4 0x781F
+0xafa5 0x7832
+0xafa6 0x7955
+0xafa7 0x7950
+0xafa8 0x7960
+0xafa9 0x795F
+0xafaa 0x7956
+0xafab 0x795E
+0xafac 0x795D
+0xafad 0x7957
+0xafae 0x795A
+0xafaf 0x79E4
+0xafb0 0x79E3
+0xafb1 0x79E7
+0xafb2 0x79DF
+0xafb3 0x79E6
+0xafb4 0x79E9
+0xafb5 0x79D8
+0xafb6 0x7A84
+0xafb7 0x7A88
+0xafb8 0x7AD9
+0xafb9 0x7B06
+0xafba 0x7B11
+0xafbb 0x7C89
+0xafbc 0x7D21
+0xafbd 0x7D17
+0xafbe 0x7D0B
+0xafbf 0x7D0A
+0xafc0 0x7D20
+0xafc1 0x7D22
+0xafc2 0x7D14
+0xafc3 0x7D10
+0xafc4 0x7D15
+0xafc5 0x7D1A
+0xafc6 0x7D1C
+0xafc7 0x7D0D
+0xafc8 0x7D19
+0xafc9 0x7D1B
+0xafca 0x7F3A
+0xafcb 0x7F5F
+0xafcc 0x7F94
+0xafcd 0x7FC5
+0xafce 0x7FC1
+0xafcf 0x8006
+0xafd0 0x8018
+0xafd1 0x8015
+0xafd2 0x8019
+0xafd3 0x8017
+0xafd4 0x803D
+0xafd5 0x803F
+0xafd6 0x80F1
+0xafd7 0x8102
+0xafd8 0x80F0
+0xafd9 0x8105
+0xafda 0x80ED
+0xafdb 0x80F4
+0xafdc 0x8106
+0xafdd 0x80F8
+0xafde 0x80F3
+0xafdf 0x8108
+0xafe0 0x80FD
+0xafe1 0x810A
+0xafe2 0x80FC
+0xafe3 0x80EF
+0xafe4 0x81ED
+0xafe5 0x81EC
+0xafe6 0x8200
+0xafe7 0x8210
+0xafe8 0x822A
+0xafe9 0x822B
+0xafea 0x8228
+0xafeb 0x822C
+0xafec 0x82BB
+0xafed 0x832B
+0xafee 0x8352
+0xafef 0x8354
+0xaff0 0x834A
+0xaff1 0x8338
+0xaff2 0x8350
+0xaff3 0x8349
+0xaff4 0x8335
+0xaff5 0x8334
+0xaff6 0x834F
+0xaff7 0x8332
+0xaff8 0x8339
+0xaff9 0x8336
+0xaffa 0x8317
+0xaffb 0x8340
+0xaffc 0x8331
+0xaffd 0x8328
+0xaffe 0x8343
+0xb040 0x8654
+0xb041 0x868A
+0xb042 0x86AA
+0xb043 0x8693
+0xb044 0x86A4
+0xb045 0x86A9
+0xb046 0x868C
+0xb047 0x86A3
+0xb048 0x869C
+0xb049 0x8870
+0xb04a 0x8877
+0xb04b 0x8881
+0xb04c 0x8882
+0xb04d 0x887D
+0xb04e 0x8879
+0xb04f 0x8A18
+0xb050 0x8A10
+0xb051 0x8A0E
+0xb052 0x8A0C
+0xb053 0x8A15
+0xb054 0x8A0A
+0xb055 0x8A17
+0xb056 0x8A13
+0xb057 0x8A16
+0xb058 0x8A0F
+0xb059 0x8A11
+0xb05a 0x8C48
+0xb05b 0x8C7A
+0xb05c 0x8C79
+0xb05d 0x8CA1
+0xb05e 0x8CA2
+0xb05f 0x8D77
+0xb060 0x8EAC
+0xb061 0x8ED2
+0xb062 0x8ED4
+0xb063 0x8ECF
+0xb064 0x8FB1
+0xb065 0x9001
+0xb066 0x9006
+0xb067 0x8FF7
+0xb068 0x9000
+0xb069 0x8FFA
+0xb06a 0x8FF4
+0xb06b 0x9003
+0xb06c 0x8FFD
+0xb06d 0x9005
+0xb06e 0x8FF8
+0xb06f 0x9095
+0xb070 0x90E1
+0xb071 0x90DD
+0xb072 0x90E2
+0xb073 0x9152
+0xb074 0x914D
+0xb075 0x914C
+0xb076 0x91D8
+0xb077 0x91DD
+0xb078 0x91D7
+0xb079 0x91DC
+0xb07a 0x91D9
+0xb07b 0x9583
+0xb07c 0x9662
+0xb07d 0x9663
+0xb07e 0x9661
+0xb0a1 0x965B
+0xb0a2 0x965D
+0xb0a3 0x9664
+0xb0a4 0x9658
+0xb0a5 0x965E
+0xb0a6 0x96BB
+0xb0a7 0x98E2
+0xb0a8 0x99AC
+0xb0a9 0x9AA8
+0xb0aa 0x9AD8
+0xb0ab 0x9B25
+0xb0ac 0x9B32
+0xb0ad 0x9B3C
+0xb0ae 0x4E7E
+0xb0af 0x507A
+0xb0b0 0x507D
+0xb0b1 0x505C
+0xb0b2 0x5047
+0xb0b3 0x5043
+0xb0b4 0x504C
+0xb0b5 0x505A
+0xb0b6 0x5049
+0xb0b7 0x5065
+0xb0b8 0x5076
+0xb0b9 0x504E
+0xb0ba 0x5055
+0xb0bb 0x5075
+0xb0bc 0x5074
+0xb0bd 0x5077
+0xb0be 0x504F
+0xb0bf 0x500F
+0xb0c0 0x506F
+0xb0c1 0x506D
+0xb0c2 0x515C
+0xb0c3 0x5195
+0xb0c4 0x51F0
+0xb0c5 0x526A
+0xb0c6 0x526F
+0xb0c7 0x52D2
+0xb0c8 0x52D9
+0xb0c9 0x52D8
+0xb0ca 0x52D5
+0xb0cb 0x5310
+0xb0cc 0x530F
+0xb0cd 0x5319
+0xb0ce 0x533F
+0xb0cf 0x5340
+0xb0d0 0x533E
+0xb0d1 0x53C3
+0xb0d2 0x66FC
+0xb0d3 0x5546
+0xb0d4 0x556A
+0xb0d5 0x5566
+0xb0d6 0x5544
+0xb0d7 0x555E
+0xb0d8 0x5561
+0xb0d9 0x5543
+0xb0da 0x554A
+0xb0db 0x5531
+0xb0dc 0x5556
+0xb0dd 0x554F
+0xb0de 0x5555
+0xb0df 0x552F
+0xb0e0 0x5564
+0xb0e1 0x5538
+0xb0e2 0x552E
+0xb0e3 0x555C
+0xb0e4 0x552C
+0xb0e5 0x5563
+0xb0e6 0x5533
+0xb0e7 0x5541
+0xb0e8 0x5557
+0xb0e9 0x5708
+0xb0ea 0x570B
+0xb0eb 0x5709
+0xb0ec 0x57DF
+0xb0ed 0x5805
+0xb0ee 0x580A
+0xb0ef 0x5806
+0xb0f0 0x57E0
+0xb0f1 0x57E4
+0xb0f2 0x57FA
+0xb0f3 0x5802
+0xb0f4 0x5835
+0xb0f5 0x57F7
+0xb0f6 0x57F9
+0xb0f7 0x5920
+0xb0f8 0x5962
+0xb0f9 0x5A36
+0xb0fa 0x5A41
+0xb0fb 0x5A49
+0xb0fc 0x5A66
+0xb0fd 0x5A6A
+0xb0fe 0x5A40
+0xb140 0x5A3C
+0xb141 0x5A62
+0xb142 0x5A5A
+0xb143 0x5A46
+0xb144 0x5A4A
+0xb145 0x5B70
+0xb146 0x5BC7
+0xb147 0x5BC5
+0xb148 0x5BC4
+0xb149 0x5BC2
+0xb14a 0x5BBF
+0xb14b 0x5BC6
+0xb14c 0x5C09
+0xb14d 0x5C08
+0xb14e 0x5C07
+0xb14f 0x5C60
+0xb150 0x5C5C
+0xb151 0x5C5D
+0xb152 0x5D07
+0xb153 0x5D06
+0xb154 0x5D0E
+0xb155 0x5D1B
+0xb156 0x5D16
+0xb157 0x5D22
+0xb158 0x5D11
+0xb159 0x5D29
+0xb15a 0x5D14
+0xb15b 0x5D19
+0xb15c 0x5D24
+0xb15d 0x5D27
+0xb15e 0x5D17
+0xb15f 0x5DE2
+0xb160 0x5E38
+0xb161 0x5E36
+0xb162 0x5E33
+0xb163 0x5E37
+0xb164 0x5EB7
+0xb165 0x5EB8
+0xb166 0x5EB6
+0xb167 0x5EB5
+0xb168 0x5EBE
+0xb169 0x5F35
+0xb16a 0x5F37
+0xb16b 0x5F57
+0xb16c 0x5F6C
+0xb16d 0x5F69
+0xb16e 0x5F6B
+0xb16f 0x5F97
+0xb170 0x5F99
+0xb171 0x5F9E
+0xb172 0x5F98
+0xb173 0x5FA1
+0xb174 0x5FA0
+0xb175 0x5F9C
+0xb176 0x607F
+0xb177 0x60A3
+0xb178 0x6089
+0xb179 0x60A0
+0xb17a 0x60A8
+0xb17b 0x60CB
+0xb17c 0x60B4
+0xb17d 0x60E6
+0xb17e 0x60BD
+0xb1a1 0x60C5
+0xb1a2 0x60BB
+0xb1a3 0x60B5
+0xb1a4 0x60DC
+0xb1a5 0x60BC
+0xb1a6 0x60D8
+0xb1a7 0x60D5
+0xb1a8 0x60C6
+0xb1a9 0x60DF
+0xb1aa 0x60B8
+0xb1ab 0x60DA
+0xb1ac 0x60C7
+0xb1ad 0x621A
+0xb1ae 0x621B
+0xb1af 0x6248
+0xb1b0 0x63A0
+0xb1b1 0x63A7
+0xb1b2 0x6372
+0xb1b3 0x6396
+0xb1b4 0x63A2
+0xb1b5 0x63A5
+0xb1b6 0x6377
+0xb1b7 0x6367
+0xb1b8 0x6398
+0xb1b9 0x63AA
+0xb1ba 0x6371
+0xb1bb 0x63A9
+0xb1bc 0x6389
+0xb1bd 0x6383
+0xb1be 0x639B
+0xb1bf 0x636B
+0xb1c0 0x63A8
+0xb1c1 0x6384
+0xb1c2 0x6388
+0xb1c3 0x6399
+0xb1c4 0x63A1
+0xb1c5 0x63AC
+0xb1c6 0x6392
+0xb1c7 0x638F
+0xb1c8 0x6380
+0xb1c9 0x637B
+0xb1ca 0x6369
+0xb1cb 0x6368
+0xb1cc 0x637A
+0xb1cd 0x655D
+0xb1ce 0x6556
+0xb1cf 0x6551
+0xb1d0 0x6559
+0xb1d1 0x6557
+0xb1d2 0x555F
+0xb1d3 0x654F
+0xb1d4 0x6558
+0xb1d5 0x6555
+0xb1d6 0x6554
+0xb1d7 0x659C
+0xb1d8 0x659B
+0xb1d9 0x65AC
+0xb1da 0x65CF
+0xb1db 0x65CB
+0xb1dc 0x65CC
+0xb1dd 0x65CE
+0xb1de 0x665D
+0xb1df 0x665A
+0xb1e0 0x6664
+0xb1e1 0x6668
+0xb1e2 0x6666
+0xb1e3 0x665E
+0xb1e4 0x66F9
+0xb1e5 0x52D7
+0xb1e6 0x671B
+0xb1e7 0x6881
+0xb1e8 0x68AF
+0xb1e9 0x68A2
+0xb1ea 0x6893
+0xb1eb 0x68B5
+0xb1ec 0x687F
+0xb1ed 0x6876
+0xb1ee 0x68B1
+0xb1ef 0x68A7
+0xb1f0 0x6897
+0xb1f1 0x68B0
+0xb1f2 0x6883
+0xb1f3 0x68C4
+0xb1f4 0x68AD
+0xb1f5 0x6886
+0xb1f6 0x6885
+0xb1f7 0x6894
+0xb1f8 0x689D
+0xb1f9 0x68A8
+0xb1fa 0x689F
+0xb1fb 0x68A1
+0xb1fc 0x6882
+0xb1fd 0x6B32
+0xb1fe 0x6BBA
+0xb240 0x6BEB
+0xb241 0x6BEC
+0xb242 0x6C2B
+0xb243 0x6D8E
+0xb244 0x6DBC
+0xb245 0x6DF3
+0xb246 0x6DD9
+0xb247 0x6DB2
+0xb248 0x6DE1
+0xb249 0x6DCC
+0xb24a 0x6DE4
+0xb24b 0x6DFB
+0xb24c 0x6DFA
+0xb24d 0x6E05
+0xb24e 0x6DC7
+0xb24f 0x6DCB
+0xb250 0x6DAF
+0xb251 0x6DD1
+0xb252 0x6DAE
+0xb253 0x6DDE
+0xb254 0x6DF9
+0xb255 0x6DB8
+0xb256 0x6DF7
+0xb257 0x6DF5
+0xb258 0x6DC5
+0xb259 0x6DD2
+0xb25a 0x6E1A
+0xb25b 0x6DB5
+0xb25c 0x6DDA
+0xb25d 0x6DEB
+0xb25e 0x6DD8
+0xb25f 0x6DEA
+0xb260 0x6DF1
+0xb261 0x6DEE
+0xb262 0x6DE8
+0xb263 0x6DC6
+0xb264 0x6DC4
+0xb265 0x6DAA
+0xb266 0x6DEC
+0xb267 0x6DBF
+0xb268 0x6DE6
+0xb269 0x70F9
+0xb26a 0x7109
+0xb26b 0x710A
+0xb26c 0x70FD
+0xb26d 0x70EF
+0xb26e 0x723D
+0xb26f 0x727D
+0xb270 0x7281
+0xb271 0x731C
+0xb272 0x731B
+0xb273 0x7316
+0xb274 0x7313
+0xb275 0x7319
+0xb276 0x7387
+0xb277 0x7405
+0xb278 0x740A
+0xb279 0x7403
+0xb27a 0x7406
+0xb27b 0x73FE
+0xb27c 0x740D
+0xb27d 0x74E0
+0xb27e 0x74F6
+0xb2a1 0x74F7
+0xb2a2 0x751C
+0xb2a3 0x7522
+0xb2a4 0x7565
+0xb2a5 0x7566
+0xb2a6 0x7562
+0xb2a7 0x7570
+0xb2a8 0x758F
+0xb2a9 0x75D4
+0xb2aa 0x75D5
+0xb2ab 0x75B5
+0xb2ac 0x75CA
+0xb2ad 0x75CD
+0xb2ae 0x768E
+0xb2af 0x76D4
+0xb2b0 0x76D2
+0xb2b1 0x76DB
+0xb2b2 0x7737
+0xb2b3 0x773E
+0xb2b4 0x773C
+0xb2b5 0x7736
+0xb2b6 0x7738
+0xb2b7 0x773A
+0xb2b8 0x786B
+0xb2b9 0x7843
+0xb2ba 0x784E
+0xb2bb 0x7965
+0xb2bc 0x7968
+0xb2bd 0x796D
+0xb2be 0x79FB
+0xb2bf 0x7A92
+0xb2c0 0x7A95
+0xb2c1 0x7B20
+0xb2c2 0x7B28
+0xb2c3 0x7B1B
+0xb2c4 0x7B2C
+0xb2c5 0x7B26
+0xb2c6 0x7B19
+0xb2c7 0x7B1E
+0xb2c8 0x7B2E
+0xb2c9 0x7C92
+0xb2ca 0x7C97
+0xb2cb 0x7C95
+0xb2cc 0x7D46
+0xb2cd 0x7D43
+0xb2ce 0x7D71
+0xb2cf 0x7D2E
+0xb2d0 0x7D39
+0xb2d1 0x7D3C
+0xb2d2 0x7D40
+0xb2d3 0x7D30
+0xb2d4 0x7D33
+0xb2d5 0x7D44
+0xb2d6 0x7D2F
+0xb2d7 0x7D42
+0xb2d8 0x7D32
+0xb2d9 0x7D31
+0xb2da 0x7F3D
+0xb2db 0x7F9E
+0xb2dc 0x7F9A
+0xb2dd 0x7FCC
+0xb2de 0x7FCE
+0xb2df 0x7FD2
+0xb2e0 0x801C
+0xb2e1 0x804A
+0xb2e2 0x8046
+0xb2e3 0x812F
+0xb2e4 0x8116
+0xb2e5 0x8123
+0xb2e6 0x812B
+0xb2e7 0x8129
+0xb2e8 0x8130
+0xb2e9 0x8124
+0xb2ea 0x8202
+0xb2eb 0x8235
+0xb2ec 0x8237
+0xb2ed 0x8236
+0xb2ee 0x8239
+0xb2ef 0x838E
+0xb2f0 0x839E
+0xb2f1 0x8398
+0xb2f2 0x8378
+0xb2f3 0x83A2
+0xb2f4 0x8396
+0xb2f5 0x83BD
+0xb2f6 0x83AB
+0xb2f7 0x8392
+0xb2f8 0x838A
+0xb2f9 0x8393
+0xb2fa 0x8389
+0xb2fb 0x83A0
+0xb2fc 0x8377
+0xb2fd 0x837B
+0xb2fe 0x837C
+0xb340 0x8386
+0xb341 0x83A7
+0xb342 0x8655
+0xb343 0x5F6A
+0xb344 0x86C7
+0xb345 0x86C0
+0xb346 0x86B6
+0xb347 0x86C4
+0xb348 0x86B5
+0xb349 0x86C6
+0xb34a 0x86CB
+0xb34b 0x86B1
+0xb34c 0x86AF
+0xb34d 0x86C9
+0xb34e 0x8853
+0xb34f 0x889E
+0xb350 0x8888
+0xb351 0x88AB
+0xb352 0x8892
+0xb353 0x8896
+0xb354 0x888D
+0xb355 0x888B
+0xb356 0x8993
+0xb357 0x898F
+0xb358 0x8A2A
+0xb359 0x8A1D
+0xb35a 0x8A23
+0xb35b 0x8A25
+0xb35c 0x8A31
+0xb35d 0x8A2D
+0xb35e 0x8A1F
+0xb35f 0x8A1B
+0xb360 0x8A22
+0xb361 0x8C49
+0xb362 0x8C5A
+0xb363 0x8CA9
+0xb364 0x8CAC
+0xb365 0x8CAB
+0xb366 0x8CA8
+0xb367 0x8CAA
+0xb368 0x8CA7
+0xb369 0x8D67
+0xb36a 0x8D66
+0xb36b 0x8DBE
+0xb36c 0x8DBA
+0xb36d 0x8EDB
+0xb36e 0x8EDF
+0xb36f 0x9019
+0xb370 0x900D
+0xb371 0x901A
+0xb372 0x9017
+0xb373 0x9023
+0xb374 0x901F
+0xb375 0x901D
+0xb376 0x9010
+0xb377 0x9015
+0xb378 0x901E
+0xb379 0x9020
+0xb37a 0x900F
+0xb37b 0x9022
+0xb37c 0x9016
+0xb37d 0x901B
+0xb37e 0x9014
+0xb3a1 0x90E8
+0xb3a2 0x90ED
+0xb3a3 0x90FD
+0xb3a4 0x9157
+0xb3a5 0x91CE
+0xb3a6 0x91F5
+0xb3a7 0x91E6
+0xb3a8 0x91E3
+0xb3a9 0x91E7
+0xb3aa 0x91ED
+0xb3ab 0x91E9
+0xb3ac 0x9589
+0xb3ad 0x966A
+0xb3ae 0x9675
+0xb3af 0x9673
+0xb3b0 0x9678
+0xb3b1 0x9670
+0xb3b2 0x9674
+0xb3b3 0x9676
+0xb3b4 0x9677
+0xb3b5 0x966C
+0xb3b6 0x96C0
+0xb3b7 0x96EA
+0xb3b8 0x96E9
+0xb3b9 0x7AE0
+0xb3ba 0x7ADF
+0xb3bb 0x9802
+0xb3bc 0x9803
+0xb3bd 0x9B5A
+0xb3be 0x9CE5
+0xb3bf 0x9E75
+0xb3c0 0x9E7F
+0xb3c1 0x9EA5
+0xb3c2 0x9EBB
+0xb3c3 0x50A2
+0xb3c4 0x508D
+0xb3c5 0x5085
+0xb3c6 0x5099
+0xb3c7 0x5091
+0xb3c8 0x5080
+0xb3c9 0x5096
+0xb3ca 0x5098
+0xb3cb 0x509A
+0xb3cc 0x6700
+0xb3cd 0x51F1
+0xb3ce 0x5272
+0xb3cf 0x5274
+0xb3d0 0x5275
+0xb3d1 0x5269
+0xb3d2 0x52DE
+0xb3d3 0x52DD
+0xb3d4 0x52DB
+0xb3d5 0x535A
+0xb3d6 0x53A5
+0xb3d7 0x557B
+0xb3d8 0x5580
+0xb3d9 0x55A7
+0xb3da 0x557C
+0xb3db 0x558A
+0xb3dc 0x559D
+0xb3dd 0x5598
+0xb3de 0x5582
+0xb3df 0x559C
+0xb3e0 0x55AA
+0xb3e1 0x5594
+0xb3e2 0x5587
+0xb3e3 0x558B
+0xb3e4 0x5583
+0xb3e5 0x55B3
+0xb3e6 0x55AE
+0xb3e7 0x559F
+0xb3e8 0x553E
+0xb3e9 0x55B2
+0xb3ea 0x559A
+0xb3eb 0x55BB
+0xb3ec 0x55AC
+0xb3ed 0x55B1
+0xb3ee 0x557E
+0xb3ef 0x5589
+0xb3f0 0x55AB
+0xb3f1 0x5599
+0xb3f2 0x570D
+0xb3f3 0x582F
+0xb3f4 0x582A
+0xb3f5 0x5834
+0xb3f6 0x5824
+0xb3f7 0x5830
+0xb3f8 0x5831
+0xb3f9 0x5821
+0xb3fa 0x581D
+0xb3fb 0x5820
+0xb3fc 0x58F9
+0xb3fd 0x58FA
+0xb3fe 0x5960
+0xb440 0x5A77
+0xb441 0x5A9A
+0xb442 0x5A7F
+0xb443 0x5A92
+0xb444 0x5A9B
+0xb445 0x5AA7
+0xb446 0x5B73
+0xb447 0x5B71
+0xb448 0x5BD2
+0xb449 0x5BCC
+0xb44a 0x5BD3
+0xb44b 0x5BD0
+0xb44c 0x5C0A
+0xb44d 0x5C0B
+0xb44e 0x5C31
+0xb44f 0x5D4C
+0xb450 0x5D50
+0xb451 0x5D34
+0xb452 0x5D47
+0xb453 0x5DFD
+0xb454 0x5E45
+0xb455 0x5E3D
+0xb456 0x5E40
+0xb457 0x5E43
+0xb458 0x5E7E
+0xb459 0x5ECA
+0xb45a 0x5EC1
+0xb45b 0x5EC2
+0xb45c 0x5EC4
+0xb45d 0x5F3C
+0xb45e 0x5F6D
+0xb45f 0x5FA9
+0xb460 0x5FAA
+0xb461 0x5FA8
+0xb462 0x60D1
+0xb463 0x60E1
+0xb464 0x60B2
+0xb465 0x60B6
+0xb466 0x60E0
+0xb467 0x611C
+0xb468 0x6123
+0xb469 0x60FA
+0xb46a 0x6115
+0xb46b 0x60F0
+0xb46c 0x60FB
+0xb46d 0x60F4
+0xb46e 0x6168
+0xb46f 0x60F1
+0xb470 0x610E
+0xb471 0x60F6
+0xb472 0x6109
+0xb473 0x6100
+0xb474 0x6112
+0xb475 0x621F
+0xb476 0x6249
+0xb477 0x63A3
+0xb478 0x638C
+0xb479 0x63CF
+0xb47a 0x63C0
+0xb47b 0x63E9
+0xb47c 0x63C9
+0xb47d 0x63C6
+0xb47e 0x63CD
+0xb4a1 0x63D2
+0xb4a2 0x63E3
+0xb4a3 0x63D0
+0xb4a4 0x63E1
+0xb4a5 0x63D6
+0xb4a6 0x63ED
+0xb4a7 0x63EE
+0xb4a8 0x6376
+0xb4a9 0x63F4
+0xb4aa 0x63EA
+0xb4ab 0x63DB
+0xb4ac 0x6452
+0xb4ad 0x63DA
+0xb4ae 0x63F9
+0xb4af 0x655E
+0xb4b0 0x6566
+0xb4b1 0x6562
+0xb4b2 0x6563
+0xb4b3 0x6591
+0xb4b4 0x6590
+0xb4b5 0x65AF
+0xb4b6 0x666E
+0xb4b7 0x6670
+0xb4b8 0x6674
+0xb4b9 0x6676
+0xb4ba 0x666F
+0xb4bb 0x6691
+0xb4bc 0x667A
+0xb4bd 0x667E
+0xb4be 0x6677
+0xb4bf 0x66FE
+0xb4c0 0x66FF
+0xb4c1 0x671F
+0xb4c2 0x671D
+0xb4c3 0x68FA
+0xb4c4 0x68D5
+0xb4c5 0x68E0
+0xb4c6 0x68D8
+0xb4c7 0x68D7
+0xb4c8 0x6905
+0xb4c9 0x68DF
+0xb4ca 0x68F5
+0xb4cb 0x68EE
+0xb4cc 0x68E7
+0xb4cd 0x68F9
+0xb4ce 0x68D2
+0xb4cf 0x68F2
+0xb4d0 0x68E3
+0xb4d1 0x68CB
+0xb4d2 0x68CD
+0xb4d3 0x690D
+0xb4d4 0x6912
+0xb4d5 0x690E
+0xb4d6 0x68C9
+0xb4d7 0x68DA
+0xb4d8 0x696E
+0xb4d9 0x68FB
+0xb4da 0x6B3E
+0xb4db 0x6B3A
+0xb4dc 0x6B3D
+0xb4dd 0x6B98
+0xb4de 0x6B96
+0xb4df 0x6BBC
+0xb4e0 0x6BEF
+0xb4e1 0x6C2E
+0xb4e2 0x6C2F
+0xb4e3 0x6C2C
+0xb4e4 0x6E2F
+0xb4e5 0x6E38
+0xb4e6 0x6E54
+0xb4e7 0x6E21
+0xb4e8 0x6E32
+0xb4e9 0x6E67
+0xb4ea 0x6E4A
+0xb4eb 0x6E20
+0xb4ec 0x6E25
+0xb4ed 0x6E23
+0xb4ee 0x6E1B
+0xb4ef 0x6E5B
+0xb4f0 0x6E58
+0xb4f1 0x6E24
+0xb4f2 0x6E56
+0xb4f3 0x6E6E
+0xb4f4 0x6E2D
+0xb4f5 0x6E26
+0xb4f6 0x6E6F
+0xb4f7 0x6E34
+0xb4f8 0x6E4D
+0xb4f9 0x6E3A
+0xb4fa 0x6E2C
+0xb4fb 0x6E43
+0xb4fc 0x6E1D
+0xb4fd 0x6E3E
+0xb4fe 0x6ECB
+0xb540 0x6E89
+0xb541 0x6E19
+0xb542 0x6E4E
+0xb543 0x6E63
+0xb544 0x6E44
+0xb545 0x6E72
+0xb546 0x6E69
+0xb547 0x6E5F
+0xb548 0x7119
+0xb549 0x711A
+0xb54a 0x7126
+0xb54b 0x7130
+0xb54c 0x7121
+0xb54d 0x7136
+0xb54e 0x716E
+0xb54f 0x711C
+0xb550 0x724C
+0xb551 0x7284
+0xb552 0x7280
+0xb553 0x7336
+0xb554 0x7325
+0xb555 0x7334
+0xb556 0x7329
+0xb557 0x743A
+0xb558 0x742A
+0xb559 0x7433
+0xb55a 0x7422
+0xb55b 0x7425
+0xb55c 0x7435
+0xb55d 0x7436
+0xb55e 0x7434
+0xb55f 0x742F
+0xb560 0x741B
+0xb561 0x7426
+0xb562 0x7428
+0xb563 0x7525
+0xb564 0x7526
+0xb565 0x756B
+0xb566 0x756A
+0xb567 0x75E2
+0xb568 0x75DB
+0xb569 0x75E3
+0xb56a 0x75D9
+0xb56b 0x75D8
+0xb56c 0x75DE
+0xb56d 0x75E0
+0xb56e 0x767B
+0xb56f 0x767C
+0xb570 0x7696
+0xb571 0x7693
+0xb572 0x76B4
+0xb573 0x76DC
+0xb574 0x774F
+0xb575 0x77ED
+0xb576 0x785D
+0xb577 0x786C
+0xb578 0x786F
+0xb579 0x7A0D
+0xb57a 0x7A08
+0xb57b 0x7A0B
+0xb57c 0x7A05
+0xb57d 0x7A00
+0xb57e 0x7A98
+0xb5a1 0x7A97
+0xb5a2 0x7A96
+0xb5a3 0x7AE5
+0xb5a4 0x7AE3
+0xb5a5 0x7B49
+0xb5a6 0x7B56
+0xb5a7 0x7B46
+0xb5a8 0x7B50
+0xb5a9 0x7B52
+0xb5aa 0x7B54
+0xb5ab 0x7B4D
+0xb5ac 0x7B4B
+0xb5ad 0x7B4F
+0xb5ae 0x7B51
+0xb5af 0x7C9F
+0xb5b0 0x7CA5
+0xb5b1 0x7D5E
+0xb5b2 0x7D50
+0xb5b3 0x7D68
+0xb5b4 0x7D55
+0xb5b5 0x7D2B
+0xb5b6 0x7D6E
+0xb5b7 0x7D72
+0xb5b8 0x7D61
+0xb5b9 0x7D66
+0xb5ba 0x7D62
+0xb5bb 0x7D70
+0xb5bc 0x7D73
+0xb5bd 0x5584
+0xb5be 0x7FD4
+0xb5bf 0x7FD5
+0xb5c0 0x800B
+0xb5c1 0x8052
+0xb5c2 0x8085
+0xb5c3 0x8155
+0xb5c4 0x8154
+0xb5c5 0x814B
+0xb5c6 0x8151
+0xb5c7 0x814E
+0xb5c8 0x8139
+0xb5c9 0x8146
+0xb5ca 0x813E
+0xb5cb 0x814C
+0xb5cc 0x8153
+0xb5cd 0x8174
+0xb5ce 0x8212
+0xb5cf 0x821C
+0xb5d0 0x83E9
+0xb5d1 0x8403
+0xb5d2 0x83F8
+0xb5d3 0x840D
+0xb5d4 0x83E0
+0xb5d5 0x83C5
+0xb5d6 0x840B
+0xb5d7 0x83C1
+0xb5d8 0x83EF
+0xb5d9 0x83F1
+0xb5da 0x83F4
+0xb5db 0x8457
+0xb5dc 0x840A
+0xb5dd 0x83F0
+0xb5de 0x840C
+0xb5df 0x83CC
+0xb5e0 0x83FD
+0xb5e1 0x83F2
+0xb5e2 0x83CA
+0xb5e3 0x8438
+0xb5e4 0x840E
+0xb5e5 0x8404
+0xb5e6 0x83DC
+0xb5e7 0x8407
+0xb5e8 0x83D4
+0xb5e9 0x83DF
+0xb5ea 0x865B
+0xb5eb 0x86DF
+0xb5ec 0x86D9
+0xb5ed 0x86ED
+0xb5ee 0x86D4
+0xb5ef 0x86DB
+0xb5f0 0x86E4
+0xb5f1 0x86D0
+0xb5f2 0x86DE
+0xb5f3 0x8857
+0xb5f4 0x88C1
+0xb5f5 0x88C2
+0xb5f6 0x88B1
+0xb5f7 0x8983
+0xb5f8 0x8996
+0xb5f9 0x8A3B
+0xb5fa 0x8A60
+0xb5fb 0x8A55
+0xb5fc 0x8A5E
+0xb5fd 0x8A3C
+0xb5fe 0x8A41
+0xb640 0x8A54
+0xb641 0x8A5B
+0xb642 0x8A50
+0xb643 0x8A46
+0xb644 0x8A34
+0xb645 0x8A3A
+0xb646 0x8A36
+0xb647 0x8A56
+0xb648 0x8C61
+0xb649 0x8C82
+0xb64a 0x8CAF
+0xb64b 0x8CBC
+0xb64c 0x8CB3
+0xb64d 0x8CBD
+0xb64e 0x8CC1
+0xb64f 0x8CBB
+0xb650 0x8CC0
+0xb651 0x8CB4
+0xb652 0x8CB7
+0xb653 0x8CB6
+0xb654 0x8CBF
+0xb655 0x8CB8
+0xb656 0x8D8A
+0xb657 0x8D85
+0xb658 0x8D81
+0xb659 0x8DCE
+0xb65a 0x8DDD
+0xb65b 0x8DCB
+0xb65c 0x8DDA
+0xb65d 0x8DD1
+0xb65e 0x8DCC
+0xb65f 0x8DDB
+0xb660 0x8DC6
+0xb661 0x8EFB
+0xb662 0x8EF8
+0xb663 0x8EFC
+0xb664 0x8F9C
+0xb665 0x902E
+0xb666 0x9035
+0xb667 0x9031
+0xb668 0x9038
+0xb669 0x9032
+0xb66a 0x9036
+0xb66b 0x9102
+0xb66c 0x90F5
+0xb66d 0x9109
+0xb66e 0x90FE
+0xb66f 0x9163
+0xb670 0x9165
+0xb671 0x91CF
+0xb672 0x9214
+0xb673 0x9215
+0xb674 0x9223
+0xb675 0x9209
+0xb676 0x921E
+0xb677 0x920D
+0xb678 0x9210
+0xb679 0x9207
+0xb67a 0x9211
+0xb67b 0x9594
+0xb67c 0x958F
+0xb67d 0x958B
+0xb67e 0x9591
+0xb6a1 0x9593
+0xb6a2 0x9592
+0xb6a3 0x958E
+0xb6a4 0x968A
+0xb6a5 0x968E
+0xb6a6 0x968B
+0xb6a7 0x967D
+0xb6a8 0x9685
+0xb6a9 0x9686
+0xb6aa 0x968D
+0xb6ab 0x9672
+0xb6ac 0x9684
+0xb6ad 0x96C1
+0xb6ae 0x96C5
+0xb6af 0x96C4
+0xb6b0 0x96C6
+0xb6b1 0x96C7
+0xb6b2 0x96EF
+0xb6b3 0x96F2
+0xb6b4 0x97CC
+0xb6b5 0x9805
+0xb6b6 0x9806
+0xb6b7 0x9808
+0xb6b8 0x98E7
+0xb6b9 0x98EA
+0xb6ba 0x98EF
+0xb6bb 0x98E9
+0xb6bc 0x98F2
+0xb6bd 0x98ED
+0xb6be 0x99AE
+0xb6bf 0x99AD
+0xb6c0 0x9EC3
+0xb6c1 0x9ECD
+0xb6c2 0x9ED1
+0xb6c3 0x4E82
+0xb6c4 0x50AD
+0xb6c5 0x50B5
+0xb6c6 0x50B2
+0xb6c7 0x50B3
+0xb6c8 0x50C5
+0xb6c9 0x50BE
+0xb6ca 0x50AC
+0xb6cb 0x50B7
+0xb6cc 0x50BB
+0xb6cd 0x50AF
+0xb6ce 0x50C7
+0xb6cf 0x527F
+0xb6d0 0x5277
+0xb6d1 0x527D
+0xb6d2 0x52DF
+0xb6d3 0x52E6
+0xb6d4 0x52E4
+0xb6d5 0x52E2
+0xb6d6 0x52E3
+0xb6d7 0x532F
+0xb6d8 0x55DF
+0xb6d9 0x55E8
+0xb6da 0x55D3
+0xb6db 0x55E6
+0xb6dc 0x55CE
+0xb6dd 0x55DC
+0xb6de 0x55C7
+0xb6df 0x55D1
+0xb6e0 0x55E3
+0xb6e1 0x55E4
+0xb6e2 0x55EF
+0xb6e3 0x55DA
+0xb6e4 0x55E1
+0xb6e5 0x55C5
+0xb6e6 0x55C6
+0xb6e7 0x55E5
+0xb6e8 0x55C9
+0xb6e9 0x5712
+0xb6ea 0x5713
+0xb6eb 0x585E
+0xb6ec 0x5851
+0xb6ed 0x5858
+0xb6ee 0x5857
+0xb6ef 0x585A
+0xb6f0 0x5854
+0xb6f1 0x586B
+0xb6f2 0x584C
+0xb6f3 0x586D
+0xb6f4 0x584A
+0xb6f5 0x5862
+0xb6f6 0x5852
+0xb6f7 0x584B
+0xb6f8 0x5967
+0xb6f9 0x5AC1
+0xb6fa 0x5AC9
+0xb6fb 0x5ACC
+0xb6fc 0x5ABE
+0xb6fd 0x5ABD
+0xb6fe 0x5ABC
+0xb740 0x5AB3
+0xb741 0x5AC2
+0xb742 0x5AB2
+0xb743 0x5D69
+0xb744 0x5D6F
+0xb745 0x5E4C
+0xb746 0x5E79
+0xb747 0x5EC9
+0xb748 0x5EC8
+0xb749 0x5F12
+0xb74a 0x5F59
+0xb74b 0x5FAC
+0xb74c 0x5FAE
+0xb74d 0x611A
+0xb74e 0x610F
+0xb74f 0x6148
+0xb750 0x611F
+0xb751 0x60F3
+0xb752 0x611B
+0xb753 0x60F9
+0xb754 0x6101
+0xb755 0x6108
+0xb756 0x614E
+0xb757 0x614C
+0xb758 0x6144
+0xb759 0x614D
+0xb75a 0x613E
+0xb75b 0x6134
+0xb75c 0x6127
+0xb75d 0x610D
+0xb75e 0x6106
+0xb75f 0x6137
+0xb760 0x6221
+0xb761 0x6222
+0xb762 0x6413
+0xb763 0x643E
+0xb764 0x641E
+0xb765 0x642A
+0xb766 0x642D
+0xb767 0x643D
+0xb768 0x642C
+0xb769 0x640F
+0xb76a 0x641C
+0xb76b 0x6414
+0xb76c 0x640D
+0xb76d 0x6436
+0xb76e 0x6416
+0xb76f 0x6417
+0xb770 0x6406
+0xb771 0x656C
+0xb772 0x659F
+0xb773 0x65B0
+0xb774 0x6697
+0xb775 0x6689
+0xb776 0x6687
+0xb777 0x6688
+0xb778 0x6696
+0xb779 0x6684
+0xb77a 0x6698
+0xb77b 0x668D
+0xb77c 0x6703
+0xb77d 0x6994
+0xb77e 0x696D
+0xb7a1 0x695A
+0xb7a2 0x6977
+0xb7a3 0x6960
+0xb7a4 0x6954
+0xb7a5 0x6975
+0xb7a6 0x6930
+0xb7a7 0x6982
+0xb7a8 0x694A
+0xb7a9 0x6968
+0xb7aa 0x696B
+0xb7ab 0x695E
+0xb7ac 0x6953
+0xb7ad 0x6979
+0xb7ae 0x6986
+0xb7af 0x695D
+0xb7b0 0x6963
+0xb7b1 0x695B
+0xb7b2 0x6B47
+0xb7b3 0x6B72
+0xb7b4 0x6BC0
+0xb7b5 0x6BBF
+0xb7b6 0x6BD3
+0xb7b7 0x6BFD
+0xb7b8 0x6EA2
+0xb7b9 0x6EAF
+0xb7ba 0x6ED3
+0xb7bb 0x6EB6
+0xb7bc 0x6EC2
+0xb7bd 0x6E90
+0xb7be 0x6E9D
+0xb7bf 0x6EC7
+0xb7c0 0x6EC5
+0xb7c1 0x6EA5
+0xb7c2 0x6E98
+0xb7c3 0x6EBC
+0xb7c4 0x6EBA
+0xb7c5 0x6EAB
+0xb7c6 0x6ED1
+0xb7c7 0x6E96
+0xb7c8 0x6E9C
+0xb7c9 0x6EC4
+0xb7ca 0x6ED4
+0xb7cb 0x6EAA
+0xb7cc 0x6EA7
+0xb7cd 0x6EB4
+0xb7ce 0x714E
+0xb7cf 0x7159
+0xb7d0 0x7169
+0xb7d1 0x7164
+0xb7d2 0x7149
+0xb7d3 0x7167
+0xb7d4 0x715C
+0xb7d5 0x716C
+0xb7d6 0x7166
+0xb7d7 0x714C
+0xb7d8 0x7165
+0xb7d9 0x715E
+0xb7da 0x7146
+0xb7db 0x7168
+0xb7dc 0x7156
+0xb7dd 0x723A
+0xb7de 0x7252
+0xb7df 0x7337
+0xb7e0 0x7345
+0xb7e1 0x733F
+0xb7e2 0x733E
+0xb7e3 0x746F
+0xb7e4 0x745A
+0xb7e5 0x7455
+0xb7e6 0x745F
+0xb7e7 0x745E
+0xb7e8 0x7441
+0xb7e9 0x743F
+0xb7ea 0x7459
+0xb7eb 0x745B
+0xb7ec 0x745C
+0xb7ed 0x7576
+0xb7ee 0x7578
+0xb7ef 0x7600
+0xb7f0 0x75F0
+0xb7f1 0x7601
+0xb7f2 0x75F2
+0xb7f3 0x75F1
+0xb7f4 0x75FA
+0xb7f5 0x75FF
+0xb7f6 0x75F4
+0xb7f7 0x75F3
+0xb7f8 0x76DE
+0xb7f9 0x76DF
+0xb7fa 0x775B
+0xb7fb 0x776B
+0xb7fc 0x7766
+0xb7fd 0x775E
+0xb7fe 0x7763
+0xb840 0x7779
+0xb841 0x776A
+0xb842 0x776C
+0xb843 0x775C
+0xb844 0x7765
+0xb845 0x7768
+0xb846 0x7762
+0xb847 0x77EE
+0xb848 0x788E
+0xb849 0x78B0
+0xb84a 0x7897
+0xb84b 0x7898
+0xb84c 0x788C
+0xb84d 0x7889
+0xb84e 0x787C
+0xb84f 0x7891
+0xb850 0x7893
+0xb851 0x787F
+0xb852 0x797A
+0xb853 0x797F
+0xb854 0x7981
+0xb855 0x842C
+0xb856 0x79BD
+0xb857 0x7A1C
+0xb858 0x7A1A
+0xb859 0x7A20
+0xb85a 0x7A14
+0xb85b 0x7A1F
+0xb85c 0x7A1E
+0xb85d 0x7A9F
+0xb85e 0x7AA0
+0xb85f 0x7B77
+0xb860 0x7BC0
+0xb861 0x7B60
+0xb862 0x7B6E
+0xb863 0x7B67
+0xb864 0x7CB1
+0xb865 0x7CB3
+0xb866 0x7CB5
+0xb867 0x7D93
+0xb868 0x7D79
+0xb869 0x7D91
+0xb86a 0x7D81
+0xb86b 0x7D8F
+0xb86c 0x7D5B
+0xb86d 0x7F6E
+0xb86e 0x7F69
+0xb86f 0x7F6A
+0xb870 0x7F72
+0xb871 0x7FA9
+0xb872 0x7FA8
+0xb873 0x7FA4
+0xb874 0x8056
+0xb875 0x8058
+0xb876 0x8086
+0xb877 0x8084
+0xb878 0x8171
+0xb879 0x8170
+0xb87a 0x8178
+0xb87b 0x8165
+0xb87c 0x816E
+0xb87d 0x8173
+0xb87e 0x816B
+0xb8a1 0x8179
+0xb8a2 0x817A
+0xb8a3 0x8166
+0xb8a4 0x8205
+0xb8a5 0x8247
+0xb8a6 0x8482
+0xb8a7 0x8477
+0xb8a8 0x843D
+0xb8a9 0x8431
+0xb8aa 0x8475
+0xb8ab 0x8466
+0xb8ac 0x846B
+0xb8ad 0x8449
+0xb8ae 0x846C
+0xb8af 0x845B
+0xb8b0 0x843C
+0xb8b1 0x8435
+0xb8b2 0x8461
+0xb8b3 0x8463
+0xb8b4 0x8469
+0xb8b5 0x846D
+0xb8b6 0x8446
+0xb8b7 0x865E
+0xb8b8 0x865C
+0xb8b9 0x865F
+0xb8ba 0x86F9
+0xb8bb 0x8713
+0xb8bc 0x8708
+0xb8bd 0x8707
+0xb8be 0x8700
+0xb8bf 0x86FE
+0xb8c0 0x86FB
+0xb8c1 0x8702
+0xb8c2 0x8703
+0xb8c3 0x8706
+0xb8c4 0x870A
+0xb8c5 0x8859
+0xb8c6 0x88DF
+0xb8c7 0x88D4
+0xb8c8 0x88D9
+0xb8c9 0x88DC
+0xb8ca 0x88D8
+0xb8cb 0x88DD
+0xb8cc 0x88E1
+0xb8cd 0x88CA
+0xb8ce 0x88D5
+0xb8cf 0x88D2
+0xb8d0 0x899C
+0xb8d1 0x89E3
+0xb8d2 0x8A6B
+0xb8d3 0x8A72
+0xb8d4 0x8A73
+0xb8d5 0x8A66
+0xb8d6 0x8A69
+0xb8d7 0x8A70
+0xb8d8 0x8A87
+0xb8d9 0x8A7C
+0xb8da 0x8A63
+0xb8db 0x8AA0
+0xb8dc 0x8A71
+0xb8dd 0x8A85
+0xb8de 0x8A6D
+0xb8df 0x8A62
+0xb8e0 0x8A6E
+0xb8e1 0x8A6C
+0xb8e2 0x8A79
+0xb8e3 0x8A7B
+0xb8e4 0x8A3E
+0xb8e5 0x8A68
+0xb8e6 0x8C62
+0xb8e7 0x8C8A
+0xb8e8 0x8C89
+0xb8e9 0x8CCA
+0xb8ea 0x8CC7
+0xb8eb 0x8CC8
+0xb8ec 0x8CC4
+0xb8ed 0x8CB2
+0xb8ee 0x8CC3
+0xb8ef 0x8CC2
+0xb8f0 0x8CC5
+0xb8f1 0x8DE1
+0xb8f2 0x8DDF
+0xb8f3 0x8DE8
+0xb8f4 0x8DEF
+0xb8f5 0x8DF3
+0xb8f6 0x8DFA
+0xb8f7 0x8DEA
+0xb8f8 0x8DE4
+0xb8f9 0x8DE6
+0xb8fa 0x8EB2
+0xb8fb 0x8F03
+0xb8fc 0x8F09
+0xb8fd 0x8EFE
+0xb8fe 0x8F0A
+0xb940 0x8F9F
+0xb941 0x8FB2
+0xb942 0x904B
+0xb943 0x904A
+0xb944 0x9053
+0xb945 0x9042
+0xb946 0x9054
+0xb947 0x903C
+0xb948 0x9055
+0xb949 0x9050
+0xb94a 0x9047
+0xb94b 0x904F
+0xb94c 0x904E
+0xb94d 0x904D
+0xb94e 0x9051
+0xb94f 0x903E
+0xb950 0x9041
+0xb951 0x9112
+0xb952 0x9117
+0xb953 0x916C
+0xb954 0x916A
+0xb955 0x9169
+0xb956 0x91C9
+0xb957 0x9237
+0xb958 0x9257
+0xb959 0x9238
+0xb95a 0x923D
+0xb95b 0x9240
+0xb95c 0x923E
+0xb95d 0x925B
+0xb95e 0x924B
+0xb95f 0x9264
+0xb960 0x9251
+0xb961 0x9234
+0xb962 0x9249
+0xb963 0x924D
+0xb964 0x9245
+0xb965 0x9239
+0xb966 0x923F
+0xb967 0x925A
+0xb968 0x9598
+0xb969 0x9698
+0xb96a 0x9694
+0xb96b 0x9695
+0xb96c 0x96CD
+0xb96d 0x96CB
+0xb96e 0x96C9
+0xb96f 0x96CA
+0xb970 0x96F7
+0xb971 0x96FB
+0xb972 0x96F9
+0xb973 0x96F6
+0xb974 0x9756
+0xb975 0x9774
+0xb976 0x9776
+0xb977 0x9810
+0xb978 0x9811
+0xb979 0x9813
+0xb97a 0x980A
+0xb97b 0x9812
+0xb97c 0x980C
+0xb97d 0x98FC
+0xb97e 0x98F4
+0xb9a1 0x98FD
+0xb9a2 0x98FE
+0xb9a3 0x99B3
+0xb9a4 0x99B1
+0xb9a5 0x99B4
+0xb9a6 0x9AE1
+0xb9a7 0x9CE9
+0xb9a8 0x9E82
+0xb9a9 0x9F0E
+0xb9aa 0x9F13
+0xb9ab 0x9F20
+0xb9ac 0x50E7
+0xb9ad 0x50EE
+0xb9ae 0x50E5
+0xb9af 0x50D6
+0xb9b0 0x50ED
+0xb9b1 0x50DA
+0xb9b2 0x50D5
+0xb9b3 0x50CF
+0xb9b4 0x50D1
+0xb9b5 0x50F1
+0xb9b6 0x50CE
+0xb9b7 0x50E9
+0xb9b8 0x5162
+0xb9b9 0x51F3
+0xb9ba 0x5283
+0xb9bb 0x5282
+0xb9bc 0x5331
+0xb9bd 0x53AD
+0xb9be 0x55FE
+0xb9bf 0x5600
+0xb9c0 0x561B
+0xb9c1 0x5617
+0xb9c2 0x55FD
+0xb9c3 0x5614
+0xb9c4 0x5606
+0xb9c5 0x5609
+0xb9c6 0x560D
+0xb9c7 0x560E
+0xb9c8 0x55F7
+0xb9c9 0x5616
+0xb9ca 0x561F
+0xb9cb 0x5608
+0xb9cc 0x5610
+0xb9cd 0x55F6
+0xb9ce 0x5718
+0xb9cf 0x5716
+0xb9d0 0x5875
+0xb9d1 0x587E
+0xb9d2 0x5883
+0xb9d3 0x5893
+0xb9d4 0x588A
+0xb9d5 0x5879
+0xb9d6 0x5885
+0xb9d7 0x587D
+0xb9d8 0x58FD
+0xb9d9 0x5925
+0xb9da 0x5922
+0xb9db 0x5924
+0xb9dc 0x596A
+0xb9dd 0x5969
+0xb9de 0x5AE1
+0xb9df 0x5AE6
+0xb9e0 0x5AE9
+0xb9e1 0x5AD7
+0xb9e2 0x5AD6
+0xb9e3 0x5AD8
+0xb9e4 0x5AE3
+0xb9e5 0x5B75
+0xb9e6 0x5BDE
+0xb9e7 0x5BE7
+0xb9e8 0x5BE1
+0xb9e9 0x5BE5
+0xb9ea 0x5BE6
+0xb9eb 0x5BE8
+0xb9ec 0x5BE2
+0xb9ed 0x5BE4
+0xb9ee 0x5BDF
+0xb9ef 0x5C0D
+0xb9f0 0x5C62
+0xb9f1 0x5D84
+0xb9f2 0x5D87
+0xb9f3 0x5E5B
+0xb9f4 0x5E63
+0xb9f5 0x5E55
+0xb9f6 0x5E57
+0xb9f7 0x5E54
+0xb9f8 0x5ED3
+0xb9f9 0x5ED6
+0xb9fa 0x5F0A
+0xb9fb 0x5F46
+0xb9fc 0x5F70
+0xb9fd 0x5FB9
+0xb9fe 0x6147
+0xba40 0x613F
+0xba41 0x614B
+0xba42 0x6177
+0xba43 0x6162
+0xba44 0x6163
+0xba45 0x615F
+0xba46 0x615A
+0xba47 0x6158
+0xba48 0x6175
+0xba49 0x622A
+0xba4a 0x6487
+0xba4b 0x6458
+0xba4c 0x6454
+0xba4d 0x64A4
+0xba4e 0x6478
+0xba4f 0x645F
+0xba50 0x647A
+0xba51 0x6451
+0xba52 0x6467
+0xba53 0x6434
+0xba54 0x646D
+0xba55 0x647B
+0xba56 0x6572
+0xba57 0x65A1
+0xba58 0x65D7
+0xba59 0x65D6
+0xba5a 0x66A2
+0xba5b 0x66A8
+0xba5c 0x669D
+0xba5d 0x699C
+0xba5e 0x69A8
+0xba5f 0x6995
+0xba60 0x69C1
+0xba61 0x69AE
+0xba62 0x69D3
+0xba63 0x69CB
+0xba64 0x699B
+0xba65 0x69B7
+0xba66 0x69BB
+0xba67 0x69AB
+0xba68 0x69B4
+0xba69 0x69D0
+0xba6a 0x69CD
+0xba6b 0x69AD
+0xba6c 0x69CC
+0xba6d 0x69A6
+0xba6e 0x69C3
+0xba6f 0x69A3
+0xba70 0x6B49
+0xba71 0x6B4C
+0xba72 0x6C33
+0xba73 0x6F33
+0xba74 0x6F14
+0xba75 0x6EFE
+0xba76 0x6F13
+0xba77 0x6EF4
+0xba78 0x6F29
+0xba79 0x6F3E
+0xba7a 0x6F20
+0xba7b 0x6F2C
+0xba7c 0x6F0F
+0xba7d 0x6F02
+0xba7e 0x6F22
+0xbaa1 0x6EFF
+0xbaa2 0x6EEF
+0xbaa3 0x6F06
+0xbaa4 0x6F31
+0xbaa5 0x6F38
+0xbaa6 0x6F32
+0xbaa7 0x6F23
+0xbaa8 0x6F15
+0xbaa9 0x6F2B
+0xbaaa 0x6F2F
+0xbaab 0x6F88
+0xbaac 0x6F2A
+0xbaad 0x6EEC
+0xbaae 0x6F01
+0xbaaf 0x6EF2
+0xbab0 0x6ECC
+0xbab1 0x6EF7
+0xbab2 0x7194
+0xbab3 0x7199
+0xbab4 0x717D
+0xbab5 0x718A
+0xbab6 0x7184
+0xbab7 0x7192
+0xbab8 0x723E
+0xbab9 0x7292
+0xbaba 0x7296
+0xbabb 0x7344
+0xbabc 0x7350
+0xbabd 0x7464
+0xbabe 0x7463
+0xbabf 0x746A
+0xbac0 0x7470
+0xbac1 0x746D
+0xbac2 0x7504
+0xbac3 0x7591
+0xbac4 0x7627
+0xbac5 0x760D
+0xbac6 0x760B
+0xbac7 0x7609
+0xbac8 0x7613
+0xbac9 0x76E1
+0xbaca 0x76E3
+0xbacb 0x7784
+0xbacc 0x777D
+0xbacd 0x777F
+0xbace 0x7761
+0xbacf 0x78C1
+0xbad0 0x789F
+0xbad1 0x78A7
+0xbad2 0x78B3
+0xbad3 0x78A9
+0xbad4 0x78A3
+0xbad5 0x798E
+0xbad6 0x798F
+0xbad7 0x798D
+0xbad8 0x7A2E
+0xbad9 0x7A31
+0xbada 0x7AAA
+0xbadb 0x7AA9
+0xbadc 0x7AED
+0xbadd 0x7AEF
+0xbade 0x7BA1
+0xbadf 0x7B95
+0xbae0 0x7B8B
+0xbae1 0x7B75
+0xbae2 0x7B97
+0xbae3 0x7B9D
+0xbae4 0x7B94
+0xbae5 0x7B8F
+0xbae6 0x7BB8
+0xbae7 0x7B87
+0xbae8 0x7B84
+0xbae9 0x7CB9
+0xbaea 0x7CBD
+0xbaeb 0x7CBE
+0xbaec 0x7DBB
+0xbaed 0x7DB0
+0xbaee 0x7D9C
+0xbaef 0x7DBD
+0xbaf0 0x7DBE
+0xbaf1 0x7DA0
+0xbaf2 0x7DCA
+0xbaf3 0x7DB4
+0xbaf4 0x7DB2
+0xbaf5 0x7DB1
+0xbaf6 0x7DBA
+0xbaf7 0x7DA2
+0xbaf8 0x7DBF
+0xbaf9 0x7DB5
+0xbafa 0x7DB8
+0xbafb 0x7DAD
+0xbafc 0x7DD2
+0xbafd 0x7DC7
+0xbafe 0x7DAC
+0xbb40 0x7F70
+0xbb41 0x7FE0
+0xbb42 0x7FE1
+0xbb43 0x7FDF
+0xbb44 0x805E
+0xbb45 0x805A
+0xbb46 0x8087
+0xbb47 0x8150
+0xbb48 0x8180
+0xbb49 0x818F
+0xbb4a 0x8188
+0xbb4b 0x818A
+0xbb4c 0x817F
+0xbb4d 0x8182
+0xbb4e 0x81E7
+0xbb4f 0x81FA
+0xbb50 0x8207
+0xbb51 0x8214
+0xbb52 0x821E
+0xbb53 0x824B
+0xbb54 0x84C9
+0xbb55 0x84BF
+0xbb56 0x84C6
+0xbb57 0x84C4
+0xbb58 0x8499
+0xbb59 0x849E
+0xbb5a 0x84B2
+0xbb5b 0x849C
+0xbb5c 0x84CB
+0xbb5d 0x84B8
+0xbb5e 0x84C0
+0xbb5f 0x84D3
+0xbb60 0x8490
+0xbb61 0x84BC
+0xbb62 0x84D1
+0xbb63 0x84CA
+0xbb64 0x873F
+0xbb65 0x871C
+0xbb66 0x873B
+0xbb67 0x8722
+0xbb68 0x8725
+0xbb69 0x8734
+0xbb6a 0x8718
+0xbb6b 0x8755
+0xbb6c 0x8737
+0xbb6d 0x8729
+0xbb6e 0x88F3
+0xbb6f 0x8902
+0xbb70 0x88F4
+0xbb71 0x88F9
+0xbb72 0x88F8
+0xbb73 0x88FD
+0xbb74 0x88E8
+0xbb75 0x891A
+0xbb76 0x88EF
+0xbb77 0x8AA6
+0xbb78 0x8A8C
+0xbb79 0x8A9E
+0xbb7a 0x8AA3
+0xbb7b 0x8A8D
+0xbb7c 0x8AA1
+0xbb7d 0x8A93
+0xbb7e 0x8AA4
+0xbba1 0x8AAA
+0xbba2 0x8AA5
+0xbba3 0x8AA8
+0xbba4 0x8A98
+0xbba5 0x8A91
+0xbba6 0x8A9A
+0xbba7 0x8AA7
+0xbba8 0x8C6A
+0xbba9 0x8C8D
+0xbbaa 0x8C8C
+0xbbab 0x8CD3
+0xbbac 0x8CD1
+0xbbad 0x8CD2
+0xbbae 0x8D6B
+0xbbaf 0x8D99
+0xbbb0 0x8D95
+0xbbb1 0x8DFC
+0xbbb2 0x8F14
+0xbbb3 0x8F12
+0xbbb4 0x8F15
+0xbbb5 0x8F13
+0xbbb6 0x8FA3
+0xbbb7 0x9060
+0xbbb8 0x9058
+0xbbb9 0x905C
+0xbbba 0x9063
+0xbbbb 0x9059
+0xbbbc 0x905E
+0xbbbd 0x9062
+0xbbbe 0x905D
+0xbbbf 0x905B
+0xbbc0 0x9119
+0xbbc1 0x9118
+0xbbc2 0x911E
+0xbbc3 0x9175
+0xbbc4 0x9178
+0xbbc5 0x9177
+0xbbc6 0x9174
+0xbbc7 0x9278
+0xbbc8 0x9280
+0xbbc9 0x9285
+0xbbca 0x9298
+0xbbcb 0x9296
+0xbbcc 0x927B
+0xbbcd 0x9293
+0xbbce 0x929C
+0xbbcf 0x92A8
+0xbbd0 0x927C
+0xbbd1 0x9291
+0xbbd2 0x95A1
+0xbbd3 0x95A8
+0xbbd4 0x95A9
+0xbbd5 0x95A3
+0xbbd6 0x95A5
+0xbbd7 0x95A4
+0xbbd8 0x9699
+0xbbd9 0x969C
+0xbbda 0x969B
+0xbbdb 0x96CC
+0xbbdc 0x96D2
+0xbbdd 0x9700
+0xbbde 0x977C
+0xbbdf 0x9785
+0xbbe0 0x97F6
+0xbbe1 0x9817
+0xbbe2 0x9818
+0xbbe3 0x98AF
+0xbbe4 0x98B1
+0xbbe5 0x9903
+0xbbe6 0x9905
+0xbbe7 0x990C
+0xbbe8 0x9909
+0xbbe9 0x99C1
+0xbbea 0x9AAF
+0xbbeb 0x9AB0
+0xbbec 0x9AE6
+0xbbed 0x9B41
+0xbbee 0x9B42
+0xbbef 0x9CF4
+0xbbf0 0x9CF6
+0xbbf1 0x9CF3
+0xbbf2 0x9EBC
+0xbbf3 0x9F3B
+0xbbf4 0x9F4A
+0xbbf5 0x5104
+0xbbf6 0x5100
+0xbbf7 0x50FB
+0xbbf8 0x50F5
+0xbbf9 0x50F9
+0xbbfa 0x5102
+0xbbfb 0x5108
+0xbbfc 0x5109
+0xbbfd 0x5105
+0xbbfe 0x51DC
+0xbc40 0x5287
+0xbc41 0x5288
+0xbc42 0x5289
+0xbc43 0x528D
+0xbc44 0x528A
+0xbc45 0x52F0
+0xbc46 0x53B2
+0xbc47 0x562E
+0xbc48 0x563B
+0xbc49 0x5639
+0xbc4a 0x5632
+0xbc4b 0x563F
+0xbc4c 0x5634
+0xbc4d 0x5629
+0xbc4e 0x5653
+0xbc4f 0x564E
+0xbc50 0x5657
+0xbc51 0x5674
+0xbc52 0x5636
+0xbc53 0x562F
+0xbc54 0x5630
+0xbc55 0x5880
+0xbc56 0x589F
+0xbc57 0x589E
+0xbc58 0x58B3
+0xbc59 0x589C
+0xbc5a 0x58AE
+0xbc5b 0x58A9
+0xbc5c 0x58A6
+0xbc5d 0x596D
+0xbc5e 0x5B09
+0xbc5f 0x5AFB
+0xbc60 0x5B0B
+0xbc61 0x5AF5
+0xbc62 0x5B0C
+0xbc63 0x5B08
+0xbc64 0x5BEE
+0xbc65 0x5BEC
+0xbc66 0x5BE9
+0xbc67 0x5BEB
+0xbc68 0x5C64
+0xbc69 0x5C65
+0xbc6a 0x5D9D
+0xbc6b 0x5D94
+0xbc6c 0x5E62
+0xbc6d 0x5E5F
+0xbc6e 0x5E61
+0xbc6f 0x5EE2
+0xbc70 0x5EDA
+0xbc71 0x5EDF
+0xbc72 0x5EDD
+0xbc73 0x5EE3
+0xbc74 0x5EE0
+0xbc75 0x5F48
+0xbc76 0x5F71
+0xbc77 0x5FB7
+0xbc78 0x5FB5
+0xbc79 0x6176
+0xbc7a 0x6167
+0xbc7b 0x616E
+0xbc7c 0x615D
+0xbc7d 0x6155
+0xbc7e 0x6182
+0xbca1 0x617C
+0xbca2 0x6170
+0xbca3 0x616B
+0xbca4 0x617E
+0xbca5 0x61A7
+0xbca6 0x6190
+0xbca7 0x61AB
+0xbca8 0x618E
+0xbca9 0x61AC
+0xbcaa 0x619A
+0xbcab 0x61A4
+0xbcac 0x6194
+0xbcad 0x61AE
+0xbcae 0x622E
+0xbcaf 0x6469
+0xbcb0 0x646F
+0xbcb1 0x6479
+0xbcb2 0x649E
+0xbcb3 0x64B2
+0xbcb4 0x6488
+0xbcb5 0x6490
+0xbcb6 0x64B0
+0xbcb7 0x64A5
+0xbcb8 0x6493
+0xbcb9 0x6495
+0xbcba 0x64A9
+0xbcbb 0x6492
+0xbcbc 0x64AE
+0xbcbd 0x64AD
+0xbcbe 0x64AB
+0xbcbf 0x649A
+0xbcc0 0x64AC
+0xbcc1 0x6499
+0xbcc2 0x64A2
+0xbcc3 0x64B3
+0xbcc4 0x6575
+0xbcc5 0x6577
+0xbcc6 0x6578
+0xbcc7 0x66AE
+0xbcc8 0x66AB
+0xbcc9 0x66B4
+0xbcca 0x66B1
+0xbccb 0x6A23
+0xbccc 0x6A1F
+0xbccd 0x69E8
+0xbcce 0x6A01
+0xbccf 0x6A1E
+0xbcd0 0x6A19
+0xbcd1 0x69FD
+0xbcd2 0x6A21
+0xbcd3 0x6A13
+0xbcd4 0x6A0A
+0xbcd5 0x69F3
+0xbcd6 0x6A02
+0xbcd7 0x6A05
+0xbcd8 0x69ED
+0xbcd9 0x6A11
+0xbcda 0x6B50
+0xbcdb 0x6B4E
+0xbcdc 0x6BA4
+0xbcdd 0x6BC5
+0xbcde 0x6BC6
+0xbcdf 0x6F3F
+0xbce0 0x6F7C
+0xbce1 0x6F84
+0xbce2 0x6F51
+0xbce3 0x6F66
+0xbce4 0x6F54
+0xbce5 0x6F86
+0xbce6 0x6F6D
+0xbce7 0x6F5B
+0xbce8 0x6F78
+0xbce9 0x6F6E
+0xbcea 0x6F8E
+0xbceb 0x6F7A
+0xbcec 0x6F70
+0xbced 0x6F64
+0xbcee 0x6F97
+0xbcef 0x6F58
+0xbcf0 0x6ED5
+0xbcf1 0x6F6F
+0xbcf2 0x6F60
+0xbcf3 0x6F5F
+0xbcf4 0x719F
+0xbcf5 0x71AC
+0xbcf6 0x71B1
+0xbcf7 0x71A8
+0xbcf8 0x7256
+0xbcf9 0x729B
+0xbcfa 0x734E
+0xbcfb 0x7357
+0xbcfc 0x7469
+0xbcfd 0x748B
+0xbcfe 0x7483
+0xbd40 0x747E
+0xbd41 0x7480
+0xbd42 0x757F
+0xbd43 0x7620
+0xbd44 0x7629
+0xbd45 0x761F
+0xbd46 0x7624
+0xbd47 0x7626
+0xbd48 0x7621
+0xbd49 0x7622
+0xbd4a 0x769A
+0xbd4b 0x76BA
+0xbd4c 0x76E4
+0xbd4d 0x778E
+0xbd4e 0x7787
+0xbd4f 0x778C
+0xbd50 0x7791
+0xbd51 0x778B
+0xbd52 0x78CB
+0xbd53 0x78C5
+0xbd54 0x78BA
+0xbd55 0x78CA
+0xbd56 0x78BE
+0xbd57 0x78D5
+0xbd58 0x78BC
+0xbd59 0x78D0
+0xbd5a 0x7A3F
+0xbd5b 0x7A3C
+0xbd5c 0x7A40
+0xbd5d 0x7A3D
+0xbd5e 0x7A37
+0xbd5f 0x7A3B
+0xbd60 0x7AAF
+0xbd61 0x7AAE
+0xbd62 0x7BAD
+0xbd63 0x7BB1
+0xbd64 0x7BC4
+0xbd65 0x7BB4
+0xbd66 0x7BC6
+0xbd67 0x7BC7
+0xbd68 0x7BC1
+0xbd69 0x7BA0
+0xbd6a 0x7BCC
+0xbd6b 0x7CCA
+0xbd6c 0x7DE0
+0xbd6d 0x7DF4
+0xbd6e 0x7DEF
+0xbd6f 0x7DFB
+0xbd70 0x7DD8
+0xbd71 0x7DEC
+0xbd72 0x7DDD
+0xbd73 0x7DE8
+0xbd74 0x7DE3
+0xbd75 0x7DDA
+0xbd76 0x7DDE
+0xbd77 0x7DE9
+0xbd78 0x7D9E
+0xbd79 0x7DD9
+0xbd7a 0x7DF2
+0xbd7b 0x7DF9
+0xbd7c 0x7F75
+0xbd7d 0x7F77
+0xbd7e 0x7FAF
+0xbda1 0x7FE9
+0xbda2 0x8026
+0xbda3 0x819B
+0xbda4 0x819C
+0xbda5 0x819D
+0xbda6 0x81A0
+0xbda7 0x819A
+0xbda8 0x8198
+0xbda9 0x8517
+0xbdaa 0x853D
+0xbdab 0x851A
+0xbdac 0x84EE
+0xbdad 0x852C
+0xbdae 0x852D
+0xbdaf 0x8513
+0xbdb0 0x8511
+0xbdb1 0x8523
+0xbdb2 0x8521
+0xbdb3 0x8514
+0xbdb4 0x84EC
+0xbdb5 0x8525
+0xbdb6 0x84FF
+0xbdb7 0x8506
+0xbdb8 0x8782
+0xbdb9 0x8774
+0xbdba 0x8776
+0xbdbb 0x8760
+0xbdbc 0x8766
+0xbdbd 0x8778
+0xbdbe 0x8768
+0xbdbf 0x8759
+0xbdc0 0x8757
+0xbdc1 0x874C
+0xbdc2 0x8753
+0xbdc3 0x885B
+0xbdc4 0x885D
+0xbdc5 0x8910
+0xbdc6 0x8907
+0xbdc7 0x8912
+0xbdc8 0x8913
+0xbdc9 0x8915
+0xbdca 0x890A
+0xbdcb 0x8ABC
+0xbdcc 0x8AD2
+0xbdcd 0x8AC7
+0xbdce 0x8AC4
+0xbdcf 0x8A95
+0xbdd0 0x8ACB
+0xbdd1 0x8AF8
+0xbdd2 0x8AB2
+0xbdd3 0x8AC9
+0xbdd4 0x8AC2
+0xbdd5 0x8ABF
+0xbdd6 0x8AB0
+0xbdd7 0x8AD6
+0xbdd8 0x8ACD
+0xbdd9 0x8AB6
+0xbdda 0x8AB9
+0xbddb 0x8ADB
+0xbddc 0x8C4C
+0xbddd 0x8C4E
+0xbdde 0x8C6C
+0xbddf 0x8CE0
+0xbde0 0x8CDE
+0xbde1 0x8CE6
+0xbde2 0x8CE4
+0xbde3 0x8CEC
+0xbde4 0x8CED
+0xbde5 0x8CE2
+0xbde6 0x8CE3
+0xbde7 0x8CDC
+0xbde8 0x8CEA
+0xbde9 0x8CE1
+0xbdea 0x8D6D
+0xbdeb 0x8D9F
+0xbdec 0x8DA3
+0xbded 0x8E2B
+0xbdee 0x8E10
+0xbdef 0x8E1D
+0xbdf0 0x8E22
+0xbdf1 0x8E0F
+0xbdf2 0x8E29
+0xbdf3 0x8E1F
+0xbdf4 0x8E21
+0xbdf5 0x8E1E
+0xbdf6 0x8EBA
+0xbdf7 0x8F1D
+0xbdf8 0x8F1B
+0xbdf9 0x8F1F
+0xbdfa 0x8F29
+0xbdfb 0x8F26
+0xbdfc 0x8F2A
+0xbdfd 0x8F1C
+0xbdfe 0x8F1E
+0xbe40 0x8F25
+0xbe41 0x9069
+0xbe42 0x906E
+0xbe43 0x9068
+0xbe44 0x906D
+0xbe45 0x9077
+0xbe46 0x9130
+0xbe47 0x912D
+0xbe48 0x9127
+0xbe49 0x9131
+0xbe4a 0x9187
+0xbe4b 0x9189
+0xbe4c 0x918B
+0xbe4d 0x9183
+0xbe4e 0x92C5
+0xbe4f 0x92BB
+0xbe50 0x92B7
+0xbe51 0x92EA
+0xbe52 0x92AC
+0xbe53 0x92E4
+0xbe54 0x92C1
+0xbe55 0x92B3
+0xbe56 0x92BC
+0xbe57 0x92D2
+0xbe58 0x92C7
+0xbe59 0x92F0
+0xbe5a 0x92B2
+0xbe5b 0x95AD
+0xbe5c 0x95B1
+0xbe5d 0x9704
+0xbe5e 0x9706
+0xbe5f 0x9707
+0xbe60 0x9709
+0xbe61 0x9760
+0xbe62 0x978D
+0xbe63 0x978B
+0xbe64 0x978F
+0xbe65 0x9821
+0xbe66 0x982B
+0xbe67 0x981C
+0xbe68 0x98B3
+0xbe69 0x990A
+0xbe6a 0x9913
+0xbe6b 0x9912
+0xbe6c 0x9918
+0xbe6d 0x99DD
+0xbe6e 0x99D0
+0xbe6f 0x99DF
+0xbe70 0x99DB
+0xbe71 0x99D1
+0xbe72 0x99D5
+0xbe73 0x99D2
+0xbe74 0x99D9
+0xbe75 0x9AB7
+0xbe76 0x9AEE
+0xbe77 0x9AEF
+0xbe78 0x9B27
+0xbe79 0x9B45
+0xbe7a 0x9B44
+0xbe7b 0x9B77
+0xbe7c 0x9B6F
+0xbe7d 0x9D06
+0xbe7e 0x9D09
+0xbea1 0x9D03
+0xbea2 0x9EA9
+0xbea3 0x9EBE
+0xbea4 0x9ECE
+0xbea5 0x58A8
+0xbea6 0x9F52
+0xbea7 0x5112
+0xbea8 0x5118
+0xbea9 0x5114
+0xbeaa 0x5110
+0xbeab 0x5115
+0xbeac 0x5180
+0xbead 0x51AA
+0xbeae 0x51DD
+0xbeaf 0x5291
+0xbeb0 0x5293
+0xbeb1 0x52F3
+0xbeb2 0x5659
+0xbeb3 0x566B
+0xbeb4 0x5679
+0xbeb5 0x5669
+0xbeb6 0x5664
+0xbeb7 0x5678
+0xbeb8 0x566A
+0xbeb9 0x5668
+0xbeba 0x5665
+0xbebb 0x5671
+0xbebc 0x566F
+0xbebd 0x566C
+0xbebe 0x5662
+0xbebf 0x5676
+0xbec0 0x58C1
+0xbec1 0x58BE
+0xbec2 0x58C7
+0xbec3 0x58C5
+0xbec4 0x596E
+0xbec5 0x5B1D
+0xbec6 0x5B34
+0xbec7 0x5B78
+0xbec8 0x5BF0
+0xbec9 0x5C0E
+0xbeca 0x5F4A
+0xbecb 0x61B2
+0xbecc 0x6191
+0xbecd 0x61A9
+0xbece 0x618A
+0xbecf 0x61CD
+0xbed0 0x61B6
+0xbed1 0x61BE
+0xbed2 0x61CA
+0xbed3 0x61C8
+0xbed4 0x6230
+0xbed5 0x64C5
+0xbed6 0x64C1
+0xbed7 0x64CB
+0xbed8 0x64BB
+0xbed9 0x64BC
+0xbeda 0x64DA
+0xbedb 0x64C4
+0xbedc 0x64C7
+0xbedd 0x64C2
+0xbede 0x64CD
+0xbedf 0x64BF
+0xbee0 0x64D2
+0xbee1 0x64D4
+0xbee2 0x64BE
+0xbee3 0x6574
+0xbee4 0x66C6
+0xbee5 0x66C9
+0xbee6 0x66B9
+0xbee7 0x66C4
+0xbee8 0x66C7
+0xbee9 0x66B8
+0xbeea 0x6A3D
+0xbeeb 0x6A38
+0xbeec 0x6A3A
+0xbeed 0x6A59
+0xbeee 0x6A6B
+0xbeef 0x6A58
+0xbef0 0x6A39
+0xbef1 0x6A44
+0xbef2 0x6A62
+0xbef3 0x6A61
+0xbef4 0x6A4B
+0xbef5 0x6A47
+0xbef6 0x6A35
+0xbef7 0x6A5F
+0xbef8 0x6A48
+0xbef9 0x6B59
+0xbefa 0x6B77
+0xbefb 0x6C05
+0xbefc 0x6FC2
+0xbefd 0x6FB1
+0xbefe 0x6FA1
+0xbf40 0x6FC3
+0xbf41 0x6FA4
+0xbf42 0x6FC1
+0xbf43 0x6FA7
+0xbf44 0x6FB3
+0xbf45 0x6FC0
+0xbf46 0x6FB9
+0xbf47 0x6FB6
+0xbf48 0x6FA6
+0xbf49 0x6FA0
+0xbf4a 0x6FB4
+0xbf4b 0x71BE
+0xbf4c 0x71C9
+0xbf4d 0x71D0
+0xbf4e 0x71D2
+0xbf4f 0x71C8
+0xbf50 0x71D5
+0xbf51 0x71B9
+0xbf52 0x71CE
+0xbf53 0x71D9
+0xbf54 0x71DC
+0xbf55 0x71C3
+0xbf56 0x71C4
+0xbf57 0x7368
+0xbf58 0x749C
+0xbf59 0x74A3
+0xbf5a 0x7498
+0xbf5b 0x749F
+0xbf5c 0x749E
+0xbf5d 0x74E2
+0xbf5e 0x750C
+0xbf5f 0x750D
+0xbf60 0x7634
+0xbf61 0x7638
+0xbf62 0x763A
+0xbf63 0x76E7
+0xbf64 0x76E5
+0xbf65 0x77A0
+0xbf66 0x779E
+0xbf67 0x779F
+0xbf68 0x77A5
+0xbf69 0x78E8
+0xbf6a 0x78DA
+0xbf6b 0x78EC
+0xbf6c 0x78E7
+0xbf6d 0x79A6
+0xbf6e 0x7A4D
+0xbf6f 0x7A4E
+0xbf70 0x7A46
+0xbf71 0x7A4C
+0xbf72 0x7A4B
+0xbf73 0x7ABA
+0xbf74 0x7BD9
+0xbf75 0x7C11
+0xbf76 0x7BC9
+0xbf77 0x7BE4
+0xbf78 0x7BDB
+0xbf79 0x7BE1
+0xbf7a 0x7BE9
+0xbf7b 0x7BE6
+0xbf7c 0x7CD5
+0xbf7d 0x7CD6
+0xbf7e 0x7E0A
+0xbfa1 0x7E11
+0xbfa2 0x7E08
+0xbfa3 0x7E1B
+0xbfa4 0x7E23
+0xbfa5 0x7E1E
+0xbfa6 0x7E1D
+0xbfa7 0x7E09
+0xbfa8 0x7E10
+0xbfa9 0x7F79
+0xbfaa 0x7FB2
+0xbfab 0x7FF0
+0xbfac 0x7FF1
+0xbfad 0x7FEE
+0xbfae 0x8028
+0xbfaf 0x81B3
+0xbfb0 0x81A9
+0xbfb1 0x81A8
+0xbfb2 0x81FB
+0xbfb3 0x8208
+0xbfb4 0x8258
+0xbfb5 0x8259
+0xbfb6 0x854A
+0xbfb7 0x8559
+0xbfb8 0x8548
+0xbfb9 0x8568
+0xbfba 0x8569
+0xbfbb 0x8543
+0xbfbc 0x8549
+0xbfbd 0x856D
+0xbfbe 0x856A
+0xbfbf 0x855E
+0xbfc0 0x8783
+0xbfc1 0x879F
+0xbfc2 0x879E
+0xbfc3 0x87A2
+0xbfc4 0x878D
+0xbfc5 0x8861
+0xbfc6 0x892A
+0xbfc7 0x8932
+0xbfc8 0x8925
+0xbfc9 0x892B
+0xbfca 0x8921
+0xbfcb 0x89AA
+0xbfcc 0x89A6
+0xbfcd 0x8AE6
+0xbfce 0x8AFA
+0xbfcf 0x8AEB
+0xbfd0 0x8AF1
+0xbfd1 0x8B00
+0xbfd2 0x8ADC
+0xbfd3 0x8AE7
+0xbfd4 0x8AEE
+0xbfd5 0x8AFE
+0xbfd6 0x8B01
+0xbfd7 0x8B02
+0xbfd8 0x8AF7
+0xbfd9 0x8AED
+0xbfda 0x8AF3
+0xbfdb 0x8AF6
+0xbfdc 0x8AFC
+0xbfdd 0x8C6B
+0xbfde 0x8C6D
+0xbfdf 0x8C93
+0xbfe0 0x8CF4
+0xbfe1 0x8E44
+0xbfe2 0x8E31
+0xbfe3 0x8E34
+0xbfe4 0x8E42
+0xbfe5 0x8E39
+0xbfe6 0x8E35
+0xbfe7 0x8F3B
+0xbfe8 0x8F2F
+0xbfe9 0x8F38
+0xbfea 0x8F33
+0xbfeb 0x8FA8
+0xbfec 0x8FA6
+0xbfed 0x9075
+0xbfee 0x9074
+0xbfef 0x9078
+0xbff0 0x9072
+0xbff1 0x907C
+0xbff2 0x907A
+0xbff3 0x9134
+0xbff4 0x9192
+0xbff5 0x9320
+0xbff6 0x9336
+0xbff7 0x92F8
+0xbff8 0x9333
+0xbff9 0x932F
+0xbffa 0x9322
+0xbffb 0x92FC
+0xbffc 0x932B
+0xbffd 0x9304
+0xbffe 0x931A
+0xc040 0x9310
+0xc041 0x9326
+0xc042 0x9321
+0xc043 0x9315
+0xc044 0x932E
+0xc045 0x9319
+0xc046 0x95BB
+0xc047 0x96A7
+0xc048 0x96A8
+0xc049 0x96AA
+0xc04a 0x96D5
+0xc04b 0x970E
+0xc04c 0x9711
+0xc04d 0x9716
+0xc04e 0x970D
+0xc04f 0x9713
+0xc050 0x970F
+0xc051 0x975B
+0xc052 0x975C
+0xc053 0x9766
+0xc054 0x9798
+0xc055 0x9830
+0xc056 0x9838
+0xc057 0x983B
+0xc058 0x9837
+0xc059 0x982D
+0xc05a 0x9839
+0xc05b 0x9824
+0xc05c 0x9910
+0xc05d 0x9928
+0xc05e 0x991E
+0xc05f 0x991B
+0xc060 0x9921
+0xc061 0x991A
+0xc062 0x99ED
+0xc063 0x99E2
+0xc064 0x99F1
+0xc065 0x9AB8
+0xc066 0x9ABC
+0xc067 0x9AFB
+0xc068 0x9AED
+0xc069 0x9B28
+0xc06a 0x9B91
+0xc06b 0x9D15
+0xc06c 0x9D23
+0xc06d 0x9D26
+0xc06e 0x9D28
+0xc06f 0x9D12
+0xc070 0x9D1B
+0xc071 0x9ED8
+0xc072 0x9ED4
+0xc073 0x9F8D
+0xc074 0x9F9C
+0xc075 0x512A
+0xc076 0x511F
+0xc077 0x5121
+0xc078 0x5132
+0xc079 0x52F5
+0xc07a 0x568E
+0xc07b 0x5680
+0xc07c 0x5690
+0xc07d 0x5685
+0xc07e 0x5687
+0xc0a1 0x568F
+0xc0a2 0x58D5
+0xc0a3 0x58D3
+0xc0a4 0x58D1
+0xc0a5 0x58CE
+0xc0a6 0x5B30
+0xc0a7 0x5B2A
+0xc0a8 0x5B24
+0xc0a9 0x5B7A
+0xc0aa 0x5C37
+0xc0ab 0x5C68
+0xc0ac 0x5DBC
+0xc0ad 0x5DBA
+0xc0ae 0x5DBD
+0xc0af 0x5DB8
+0xc0b0 0x5E6B
+0xc0b1 0x5F4C
+0xc0b2 0x5FBD
+0xc0b3 0x61C9
+0xc0b4 0x61C2
+0xc0b5 0x61C7
+0xc0b6 0x61E6
+0xc0b7 0x61CB
+0xc0b8 0x6232
+0xc0b9 0x6234
+0xc0ba 0x64CE
+0xc0bb 0x64CA
+0xc0bc 0x64D8
+0xc0bd 0x64E0
+0xc0be 0x64F0
+0xc0bf 0x64E6
+0xc0c0 0x64EC
+0xc0c1 0x64F1
+0xc0c2 0x64E2
+0xc0c3 0x64ED
+0xc0c4 0x6582
+0xc0c5 0x6583
+0xc0c6 0x66D9
+0xc0c7 0x66D6
+0xc0c8 0x6A80
+0xc0c9 0x6A94
+0xc0ca 0x6A84
+0xc0cb 0x6AA2
+0xc0cc 0x6A9C
+0xc0cd 0x6ADB
+0xc0ce 0x6AA3
+0xc0cf 0x6A7E
+0xc0d0 0x6A97
+0xc0d1 0x6A90
+0xc0d2 0x6AA0
+0xc0d3 0x6B5C
+0xc0d4 0x6BAE
+0xc0d5 0x6BDA
+0xc0d6 0x6C08
+0xc0d7 0x6FD8
+0xc0d8 0x6FF1
+0xc0d9 0x6FDF
+0xc0da 0x6FE0
+0xc0db 0x6FDB
+0xc0dc 0x6FE4
+0xc0dd 0x6FEB
+0xc0de 0x6FEF
+0xc0df 0x6F80
+0xc0e0 0x6FEC
+0xc0e1 0x6FE1
+0xc0e2 0x6FE9
+0xc0e3 0x6FD5
+0xc0e4 0x6FEE
+0xc0e5 0x6FF0
+0xc0e6 0x71E7
+0xc0e7 0x71DF
+0xc0e8 0x71EE
+0xc0e9 0x71E6
+0xc0ea 0x71E5
+0xc0eb 0x71ED
+0xc0ec 0x71EC
+0xc0ed 0x71F4
+0xc0ee 0x71E0
+0xc0ef 0x7235
+0xc0f0 0x7246
+0xc0f1 0x7370
+0xc0f2 0x7372
+0xc0f3 0x74A9
+0xc0f4 0x74B0
+0xc0f5 0x74A6
+0xc0f6 0x74A8
+0xc0f7 0x7646
+0xc0f8 0x7642
+0xc0f9 0x764C
+0xc0fa 0x76EA
+0xc0fb 0x77B3
+0xc0fc 0x77AA
+0xc0fd 0x77B0
+0xc0fe 0x77AC
+0xc140 0x77A7
+0xc141 0x77AD
+0xc142 0x77EF
+0xc143 0x78F7
+0xc144 0x78FA
+0xc145 0x78F4
+0xc146 0x78EF
+0xc147 0x7901
+0xc148 0x79A7
+0xc149 0x79AA
+0xc14a 0x7A57
+0xc14b 0x7ABF
+0xc14c 0x7C07
+0xc14d 0x7C0D
+0xc14e 0x7BFE
+0xc14f 0x7BF7
+0xc150 0x7C0C
+0xc151 0x7BE0
+0xc152 0x7CE0
+0xc153 0x7CDC
+0xc154 0x7CDE
+0xc155 0x7CE2
+0xc156 0x7CDF
+0xc157 0x7CD9
+0xc158 0x7CDD
+0xc159 0x7E2E
+0xc15a 0x7E3E
+0xc15b 0x7E46
+0xc15c 0x7E37
+0xc15d 0x7E32
+0xc15e 0x7E43
+0xc15f 0x7E2B
+0xc160 0x7E3D
+0xc161 0x7E31
+0xc162 0x7E45
+0xc163 0x7E41
+0xc164 0x7E34
+0xc165 0x7E39
+0xc166 0x7E48
+0xc167 0x7E35
+0xc168 0x7E3F
+0xc169 0x7E2F
+0xc16a 0x7F44
+0xc16b 0x7FF3
+0xc16c 0x7FFC
+0xc16d 0x8071
+0xc16e 0x8072
+0xc16f 0x8070
+0xc170 0x806F
+0xc171 0x8073
+0xc172 0x81C6
+0xc173 0x81C3
+0xc174 0x81BA
+0xc175 0x81C2
+0xc176 0x81C0
+0xc177 0x81BF
+0xc178 0x81BD
+0xc179 0x81C9
+0xc17a 0x81BE
+0xc17b 0x81E8
+0xc17c 0x8209
+0xc17d 0x8271
+0xc17e 0x85AA
+0xc1a1 0x8584
+0xc1a2 0x857E
+0xc1a3 0x859C
+0xc1a4 0x8591
+0xc1a5 0x8594
+0xc1a6 0x85AF
+0xc1a7 0x859B
+0xc1a8 0x8587
+0xc1a9 0x85A8
+0xc1aa 0x858A
+0xc1ab 0x8667
+0xc1ac 0x87C0
+0xc1ad 0x87D1
+0xc1ae 0x87B3
+0xc1af 0x87D2
+0xc1b0 0x87C6
+0xc1b1 0x87AB
+0xc1b2 0x87BB
+0xc1b3 0x87BA
+0xc1b4 0x87C8
+0xc1b5 0x87CB
+0xc1b6 0x893B
+0xc1b7 0x8936
+0xc1b8 0x8944
+0xc1b9 0x8938
+0xc1ba 0x893D
+0xc1bb 0x89AC
+0xc1bc 0x8B0E
+0xc1bd 0x8B17
+0xc1be 0x8B19
+0xc1bf 0x8B1B
+0xc1c0 0x8B0A
+0xc1c1 0x8B20
+0xc1c2 0x8B1D
+0xc1c3 0x8B04
+0xc1c4 0x8B10
+0xc1c5 0x8C41
+0xc1c6 0x8C3F
+0xc1c7 0x8C73
+0xc1c8 0x8CFA
+0xc1c9 0x8CFD
+0xc1ca 0x8CFC
+0xc1cb 0x8CF8
+0xc1cc 0x8CFB
+0xc1cd 0x8DA8
+0xc1ce 0x8E49
+0xc1cf 0x8E4B
+0xc1d0 0x8E48
+0xc1d1 0x8E4A
+0xc1d2 0x8F44
+0xc1d3 0x8F3E
+0xc1d4 0x8F42
+0xc1d5 0x8F45
+0xc1d6 0x8F3F
+0xc1d7 0x907F
+0xc1d8 0x907D
+0xc1d9 0x9084
+0xc1da 0x9081
+0xc1db 0x9082
+0xc1dc 0x9080
+0xc1dd 0x9139
+0xc1de 0x91A3
+0xc1df 0x919E
+0xc1e0 0x919C
+0xc1e1 0x934D
+0xc1e2 0x9382
+0xc1e3 0x9328
+0xc1e4 0x9375
+0xc1e5 0x934A
+0xc1e6 0x9365
+0xc1e7 0x934B
+0xc1e8 0x9318
+0xc1e9 0x937E
+0xc1ea 0x936C
+0xc1eb 0x935B
+0xc1ec 0x9370
+0xc1ed 0x935A
+0xc1ee 0x9354
+0xc1ef 0x95CA
+0xc1f0 0x95CB
+0xc1f1 0x95CC
+0xc1f2 0x95C8
+0xc1f3 0x95C6
+0xc1f4 0x96B1
+0xc1f5 0x96B8
+0xc1f6 0x96D6
+0xc1f7 0x971C
+0xc1f8 0x971E
+0xc1f9 0x97A0
+0xc1fa 0x97D3
+0xc1fb 0x9846
+0xc1fc 0x98B6
+0xc1fd 0x9935
+0xc1fe 0x9A01
+0xc240 0x99FF
+0xc241 0x9BAE
+0xc242 0x9BAB
+0xc243 0x9BAA
+0xc244 0x9BAD
+0xc245 0x9D3B
+0xc246 0x9D3F
+0xc247 0x9E8B
+0xc248 0x9ECF
+0xc249 0x9EDE
+0xc24a 0x9EDC
+0xc24b 0x9EDD
+0xc24c 0x9EDB
+0xc24d 0x9F3E
+0xc24e 0x9F4B
+0xc24f 0x53E2
+0xc250 0x5695
+0xc251 0x56AE
+0xc252 0x58D9
+0xc253 0x58D8
+0xc254 0x5B38
+0xc255 0x5F5D
+0xc256 0x61E3
+0xc257 0x6233
+0xc258 0x64F4
+0xc259 0x64F2
+0xc25a 0x64FE
+0xc25b 0x6506
+0xc25c 0x64FA
+0xc25d 0x64FB
+0xc25e 0x64F7
+0xc25f 0x65B7
+0xc260 0x66DC
+0xc261 0x6726
+0xc262 0x6AB3
+0xc263 0x6AAC
+0xc264 0x6AC3
+0xc265 0x6ABB
+0xc266 0x6AB8
+0xc267 0x6AC2
+0xc268 0x6AAE
+0xc269 0x6AAF
+0xc26a 0x6B5F
+0xc26b 0x6B78
+0xc26c 0x6BAF
+0xc26d 0x7009
+0xc26e 0x700B
+0xc26f 0x6FFE
+0xc270 0x7006
+0xc271 0x6FFA
+0xc272 0x7011
+0xc273 0x700F
+0xc274 0x71FB
+0xc275 0x71FC
+0xc276 0x71FE
+0xc277 0x71F8
+0xc278 0x7377
+0xc279 0x7375
+0xc27a 0x74A7
+0xc27b 0x74BF
+0xc27c 0x7515
+0xc27d 0x7656
+0xc27e 0x7658
+0xc2a1 0x7652
+0xc2a2 0x77BD
+0xc2a3 0x77BF
+0xc2a4 0x77BB
+0xc2a5 0x77BC
+0xc2a6 0x790E
+0xc2a7 0x79AE
+0xc2a8 0x7A61
+0xc2a9 0x7A62
+0xc2aa 0x7A60
+0xc2ab 0x7AC4
+0xc2ac 0x7AC5
+0xc2ad 0x7C2B
+0xc2ae 0x7C27
+0xc2af 0x7C2A
+0xc2b0 0x7C1E
+0xc2b1 0x7C23
+0xc2b2 0x7C21
+0xc2b3 0x7CE7
+0xc2b4 0x7E54
+0xc2b5 0x7E55
+0xc2b6 0x7E5E
+0xc2b7 0x7E5A
+0xc2b8 0x7E61
+0xc2b9 0x7E52
+0xc2ba 0x7E59
+0xc2bb 0x7F48
+0xc2bc 0x7FF9
+0xc2bd 0x7FFB
+0xc2be 0x8077
+0xc2bf 0x8076
+0xc2c0 0x81CD
+0xc2c1 0x81CF
+0xc2c2 0x820A
+0xc2c3 0x85CF
+0xc2c4 0x85A9
+0xc2c5 0x85CD
+0xc2c6 0x85D0
+0xc2c7 0x85C9
+0xc2c8 0x85B0
+0xc2c9 0x85BA
+0xc2ca 0x85B9
+0xc2cb 0x85A6
+0xc2cc 0x87EF
+0xc2cd 0x87EC
+0xc2ce 0x87F2
+0xc2cf 0x87E0
+0xc2d0 0x8986
+0xc2d1 0x89B2
+0xc2d2 0x89F4
+0xc2d3 0x8B28
+0xc2d4 0x8B39
+0xc2d5 0x8B2C
+0xc2d6 0x8B2B
+0xc2d7 0x8C50
+0xc2d8 0x8D05
+0xc2d9 0x8E59
+0xc2da 0x8E63
+0xc2db 0x8E66
+0xc2dc 0x8E64
+0xc2dd 0x8E5F
+0xc2de 0x8E55
+0xc2df 0x8EC0
+0xc2e0 0x8F49
+0xc2e1 0x8F4D
+0xc2e2 0x9087
+0xc2e3 0x9083
+0xc2e4 0x9088
+0xc2e5 0x91AB
+0xc2e6 0x91AC
+0xc2e7 0x91D0
+0xc2e8 0x9394
+0xc2e9 0x938A
+0xc2ea 0x9396
+0xc2eb 0x93A2
+0xc2ec 0x93B3
+0xc2ed 0x93AE
+0xc2ee 0x93AC
+0xc2ef 0x93B0
+0xc2f0 0x9398
+0xc2f1 0x939A
+0xc2f2 0x9397
+0xc2f3 0x95D4
+0xc2f4 0x95D6
+0xc2f5 0x95D0
+0xc2f6 0x95D5
+0xc2f7 0x96E2
+0xc2f8 0x96DC
+0xc2f9 0x96D9
+0xc2fa 0x96DB
+0xc2fb 0x96DE
+0xc2fc 0x9724
+0xc2fd 0x97A3
+0xc2fe 0x97A6
+0xc340 0x97AD
+0xc341 0x97F9
+0xc342 0x984D
+0xc343 0x984F
+0xc344 0x984C
+0xc345 0x984E
+0xc346 0x9853
+0xc347 0x98BA
+0xc348 0x993E
+0xc349 0x993F
+0xc34a 0x993D
+0xc34b 0x992E
+0xc34c 0x99A5
+0xc34d 0x9A0E
+0xc34e 0x9AC1
+0xc34f 0x9B03
+0xc350 0x9B06
+0xc351 0x9B4F
+0xc352 0x9B4E
+0xc353 0x9B4D
+0xc354 0x9BCA
+0xc355 0x9BC9
+0xc356 0x9BFD
+0xc357 0x9BC8
+0xc358 0x9BC0
+0xc359 0x9D51
+0xc35a 0x9D5D
+0xc35b 0x9D60
+0xc35c 0x9EE0
+0xc35d 0x9F15
+0xc35e 0x9F2C
+0xc35f 0x5133
+0xc360 0x56A5
+0xc361 0x58DE
+0xc362 0x58DF
+0xc363 0x58E2
+0xc364 0x5BF5
+0xc365 0x9F90
+0xc366 0x5EEC
+0xc367 0x61F2
+0xc368 0x61F7
+0xc369 0x61F6
+0xc36a 0x61F5
+0xc36b 0x6500
+0xc36c 0x650F
+0xc36d 0x66E0
+0xc36e 0x66DD
+0xc36f 0x6AE5
+0xc370 0x6ADD
+0xc371 0x6ADA
+0xc372 0x6AD3
+0xc373 0x701B
+0xc374 0x701F
+0xc375 0x7028
+0xc376 0x701A
+0xc377 0x701D
+0xc378 0x7015
+0xc379 0x7018
+0xc37a 0x7206
+0xc37b 0x720D
+0xc37c 0x7258
+0xc37d 0x72A2
+0xc37e 0x7378
+0xc3a1 0x737A
+0xc3a2 0x74BD
+0xc3a3 0x74CA
+0xc3a4 0x74E3
+0xc3a5 0x7587
+0xc3a6 0x7586
+0xc3a7 0x765F
+0xc3a8 0x7661
+0xc3a9 0x77C7
+0xc3aa 0x7919
+0xc3ab 0x79B1
+0xc3ac 0x7A6B
+0xc3ad 0x7A69
+0xc3ae 0x7C3E
+0xc3af 0x7C3F
+0xc3b0 0x7C38
+0xc3b1 0x7C3D
+0xc3b2 0x7C37
+0xc3b3 0x7C40
+0xc3b4 0x7E6B
+0xc3b5 0x7E6D
+0xc3b6 0x7E79
+0xc3b7 0x7E69
+0xc3b8 0x7E6A
+0xc3b9 0x7F85
+0xc3ba 0x7E73
+0xc3bb 0x7FB6
+0xc3bc 0x7FB9
+0xc3bd 0x7FB8
+0xc3be 0x81D8
+0xc3bf 0x85E9
+0xc3c0 0x85DD
+0xc3c1 0x85EA
+0xc3c2 0x85D5
+0xc3c3 0x85E4
+0xc3c4 0x85E5
+0xc3c5 0x85F7
+0xc3c6 0x87FB
+0xc3c7 0x8805
+0xc3c8 0x880D
+0xc3c9 0x87F9
+0xc3ca 0x87FE
+0xc3cb 0x8960
+0xc3cc 0x895F
+0xc3cd 0x8956
+0xc3ce 0x895E
+0xc3cf 0x8B41
+0xc3d0 0x8B5C
+0xc3d1 0x8B58
+0xc3d2 0x8B49
+0xc3d3 0x8B5A
+0xc3d4 0x8B4E
+0xc3d5 0x8B4F
+0xc3d6 0x8B46
+0xc3d7 0x8B59
+0xc3d8 0x8D08
+0xc3d9 0x8D0A
+0xc3da 0x8E7C
+0xc3db 0x8E72
+0xc3dc 0x8E87
+0xc3dd 0x8E76
+0xc3de 0x8E6C
+0xc3df 0x8E7A
+0xc3e0 0x8E74
+0xc3e1 0x8F54
+0xc3e2 0x8F4E
+0xc3e3 0x8FAD
+0xc3e4 0x908A
+0xc3e5 0x908B
+0xc3e6 0x91B1
+0xc3e7 0x91AE
+0xc3e8 0x93E1
+0xc3e9 0x93D1
+0xc3ea 0x93DF
+0xc3eb 0x93C3
+0xc3ec 0x93C8
+0xc3ed 0x93DC
+0xc3ee 0x93DD
+0xc3ef 0x93D6
+0xc3f0 0x93E2
+0xc3f1 0x93CD
+0xc3f2 0x93D8
+0xc3f3 0x93E4
+0xc3f4 0x93D7
+0xc3f5 0x93E8
+0xc3f6 0x95DC
+0xc3f7 0x96B4
+0xc3f8 0x96E3
+0xc3f9 0x972A
+0xc3fa 0x9727
+0xc3fb 0x9761
+0xc3fc 0x97DC
+0xc3fd 0x97FB
+0xc3fe 0x985E
+0xc440 0x9858
+0xc441 0x985B
+0xc442 0x98BC
+0xc443 0x9945
+0xc444 0x9949
+0xc445 0x9A16
+0xc446 0x9A19
+0xc447 0x9B0D
+0xc448 0x9BE8
+0xc449 0x9BE7
+0xc44a 0x9BD6
+0xc44b 0x9BDB
+0xc44c 0x9D89
+0xc44d 0x9D61
+0xc44e 0x9D72
+0xc44f 0x9D6A
+0xc450 0x9D6C
+0xc451 0x9E92
+0xc452 0x9E97
+0xc453 0x9E93
+0xc454 0x9EB4
+0xc455 0x52F8
+0xc456 0x56A8
+0xc457 0x56B7
+0xc458 0x56B6
+0xc459 0x56B4
+0xc45a 0x56BC
+0xc45b 0x58E4
+0xc45c 0x5B40
+0xc45d 0x5B43
+0xc45e 0x5B7D
+0xc45f 0x5BF6
+0xc460 0x5DC9
+0xc461 0x61F8
+0xc462 0x61FA
+0xc463 0x6518
+0xc464 0x6514
+0xc465 0x6519
+0xc466 0x66E6
+0xc467 0x6727
+0xc468 0x6AEC
+0xc469 0x703E
+0xc46a 0x7030
+0xc46b 0x7032
+0xc46c 0x7210
+0xc46d 0x737B
+0xc46e 0x74CF
+0xc46f 0x7662
+0xc470 0x7665
+0xc471 0x7926
+0xc472 0x792A
+0xc473 0x792C
+0xc474 0x792B
+0xc475 0x7AC7
+0xc476 0x7AF6
+0xc477 0x7C4C
+0xc478 0x7C43
+0xc479 0x7C4D
+0xc47a 0x7CEF
+0xc47b 0x7CF0
+0xc47c 0x8FAE
+0xc47d 0x7E7D
+0xc47e 0x7E7C
+0xc4a1 0x7E82
+0xc4a2 0x7F4C
+0xc4a3 0x8000
+0xc4a4 0x81DA
+0xc4a5 0x8266
+0xc4a6 0x85FB
+0xc4a7 0x85F9
+0xc4a8 0x8611
+0xc4a9 0x85FA
+0xc4aa 0x8606
+0xc4ab 0x860B
+0xc4ac 0x8607
+0xc4ad 0x860A
+0xc4ae 0x8814
+0xc4af 0x8815
+0xc4b0 0x8964
+0xc4b1 0x89BA
+0xc4b2 0x89F8
+0xc4b3 0x8B70
+0xc4b4 0x8B6C
+0xc4b5 0x8B66
+0xc4b6 0x8B6F
+0xc4b7 0x8B5F
+0xc4b8 0x8B6B
+0xc4b9 0x8D0F
+0xc4ba 0x8D0D
+0xc4bb 0x8E89
+0xc4bc 0x8E81
+0xc4bd 0x8E85
+0xc4be 0x8E82
+0xc4bf 0x91B4
+0xc4c0 0x91CB
+0xc4c1 0x9418
+0xc4c2 0x9403
+0xc4c3 0x93FD
+0xc4c4 0x95E1
+0xc4c5 0x9730
+0xc4c6 0x98C4
+0xc4c7 0x9952
+0xc4c8 0x9951
+0xc4c9 0x99A8
+0xc4ca 0x9A2B
+0xc4cb 0x9A30
+0xc4cc 0x9A37
+0xc4cd 0x9A35
+0xc4ce 0x9C13
+0xc4cf 0x9C0D
+0xc4d0 0x9E79
+0xc4d1 0x9EB5
+0xc4d2 0x9EE8
+0xc4d3 0x9F2F
+0xc4d4 0x9F5F
+0xc4d5 0x9F63
+0xc4d6 0x9F61
+0xc4d7 0x5137
+0xc4d8 0x5138
+0xc4d9 0x56C1
+0xc4da 0x56C0
+0xc4db 0x56C2
+0xc4dc 0x5914
+0xc4dd 0x5C6C
+0xc4de 0x5DCD
+0xc4df 0x61FC
+0xc4e0 0x61FE
+0xc4e1 0x651D
+0xc4e2 0x651C
+0xc4e3 0x6595
+0xc4e4 0x66E9
+0xc4e5 0x6AFB
+0xc4e6 0x6B04
+0xc4e7 0x6AFA
+0xc4e8 0x6BB2
+0xc4e9 0x704C
+0xc4ea 0x721B
+0xc4eb 0x72A7
+0xc4ec 0x74D6
+0xc4ed 0x74D4
+0xc4ee 0x7669
+0xc4ef 0x77D3
+0xc4f0 0x7C50
+0xc4f1 0x7E8F
+0xc4f2 0x7E8C
+0xc4f3 0x7FBC
+0xc4f4 0x8617
+0xc4f5 0x862D
+0xc4f6 0x861A
+0xc4f7 0x8823
+0xc4f8 0x8822
+0xc4f9 0x8821
+0xc4fa 0x881F
+0xc4fb 0x896A
+0xc4fc 0x896C
+0xc4fd 0x89BD
+0xc4fe 0x8B74
+0xc540 0x8B77
+0xc541 0x8B7D
+0xc542 0x8D13
+0xc543 0x8E8A
+0xc544 0x8E8D
+0xc545 0x8E8B
+0xc546 0x8F5F
+0xc547 0x8FAF
+0xc548 0x91BA
+0xc549 0x942E
+0xc54a 0x9433
+0xc54b 0x9435
+0xc54c 0x943A
+0xc54d 0x9438
+0xc54e 0x9432
+0xc54f 0x942B
+0xc550 0x95E2
+0xc551 0x9738
+0xc552 0x9739
+0xc553 0x9732
+0xc554 0x97FF
+0xc555 0x9867
+0xc556 0x9865
+0xc557 0x9957
+0xc558 0x9A45
+0xc559 0x9A43
+0xc55a 0x9A40
+0xc55b 0x9A3E
+0xc55c 0x9ACF
+0xc55d 0x9B54
+0xc55e 0x9B51
+0xc55f 0x9C2D
+0xc560 0x9C25
+0xc561 0x9DAF
+0xc562 0x9DB4
+0xc563 0x9DC2
+0xc564 0x9DB8
+0xc565 0x9E9D
+0xc566 0x9EEF
+0xc567 0x9F19
+0xc568 0x9F5C
+0xc569 0x9F66
+0xc56a 0x9F67
+0xc56b 0x513C
+0xc56c 0x513B
+0xc56d 0x56C8
+0xc56e 0x56CA
+0xc56f 0x56C9
+0xc570 0x5B7F
+0xc571 0x5DD4
+0xc572 0x5DD2
+0xc573 0x5F4E
+0xc574 0x61FF
+0xc575 0x6524
+0xc576 0x6B0A
+0xc577 0x6B61
+0xc578 0x7051
+0xc579 0x7058
+0xc57a 0x7380
+0xc57b 0x74E4
+0xc57c 0x758A
+0xc57d 0x766E
+0xc57e 0x766C
+0xc5a1 0x79B3
+0xc5a2 0x7C60
+0xc5a3 0x7C5F
+0xc5a4 0x807E
+0xc5a5 0x807D
+0xc5a6 0x81DF
+0xc5a7 0x8972
+0xc5a8 0x896F
+0xc5a9 0x89FC
+0xc5aa 0x8B80
+0xc5ab 0x8D16
+0xc5ac 0x8D17
+0xc5ad 0x8E91
+0xc5ae 0x8E93
+0xc5af 0x8F61
+0xc5b0 0x9148
+0xc5b1 0x9444
+0xc5b2 0x9451
+0xc5b3 0x9452
+0xc5b4 0x973D
+0xc5b5 0x973E
+0xc5b6 0x97C3
+0xc5b7 0x97C1
+0xc5b8 0x986B
+0xc5b9 0x9955
+0xc5ba 0x9A55
+0xc5bb 0x9A4D
+0xc5bc 0x9AD2
+0xc5bd 0x9B1A
+0xc5be 0x9C49
+0xc5bf 0x9C31
+0xc5c0 0x9C3E
+0xc5c1 0x9C3B
+0xc5c2 0x9DD3
+0xc5c3 0x9DD7
+0xc5c4 0x9F34
+0xc5c5 0x9F6C
+0xc5c6 0x9F6A
+0xc5c7 0x9F94
+0xc5c8 0x56CC
+0xc5c9 0x5DD6
+0xc5ca 0x6200
+0xc5cb 0x6523
+0xc5cc 0x652B
+0xc5cd 0x652A
+0xc5ce 0x66EC
+0xc5cf 0x6B10
+0xc5d0 0x74DA
+0xc5d1 0x7ACA
+0xc5d2 0x7C64
+0xc5d3 0x7C63
+0xc5d4 0x7C65
+0xc5d5 0x7E93
+0xc5d6 0x7E96
+0xc5d7 0x7E94
+0xc5d8 0x81E2
+0xc5d9 0x8638
+0xc5da 0x863F
+0xc5db 0x8831
+0xc5dc 0x8B8A
+0xc5dd 0x9090
+0xc5de 0x908F
+0xc5df 0x9463
+0xc5e0 0x9460
+0xc5e1 0x9464
+0xc5e2 0x9768
+0xc5e3 0x986F
+0xc5e4 0x995C
+0xc5e5 0x9A5A
+0xc5e6 0x9A5B
+0xc5e7 0x9A57
+0xc5e8 0x9AD3
+0xc5e9 0x9AD4
+0xc5ea 0x9AD1
+0xc5eb 0x9C54
+0xc5ec 0x9C57
+0xc5ed 0x9C56
+0xc5ee 0x9DE5
+0xc5ef 0x9E9F
+0xc5f0 0x9EF4
+0xc5f1 0x56D1
+0xc5f2 0x58E9
+0xc5f3 0x652C
+0xc5f4 0x705E
+0xc5f5 0x7671
+0xc5f6 0x7672
+0xc5f7 0x77D7
+0xc5f8 0x7F50
+0xc5f9 0x7F88
+0xc5fa 0x8836
+0xc5fb 0x8839
+0xc5fc 0x8862
+0xc5fd 0x8B93
+0xc5fe 0x8B92
+0xc640 0x8B96
+0xc641 0x8277
+0xc642 0x8D1B
+0xc643 0x91C0
+0xc644 0x946A
+0xc645 0x9742
+0xc646 0x9748
+0xc647 0x9744
+0xc648 0x97C6
+0xc649 0x9870
+0xc64a 0x9A5F
+0xc64b 0x9B22
+0xc64c 0x9B58
+0xc64d 0x9C5F
+0xc64e 0x9DF9
+0xc64f 0x9DFA
+0xc650 0x9E7C
+0xc651 0x9E7D
+0xc652 0x9F07
+0xc653 0x9F77
+0xc654 0x9F72
+0xc655 0x5EF3
+0xc656 0x6B16
+0xc657 0x7063
+0xc658 0x7C6C
+0xc659 0x7C6E
+0xc65a 0x883B
+0xc65b 0x89C0
+0xc65c 0x8EA1
+0xc65d 0x91C1
+0xc65e 0x9472
+0xc65f 0x9470
+0xc660 0x9871
+0xc661 0x995E
+0xc662 0x9AD6
+0xc663 0x9B23
+0xc664 0x9ECC
+0xc665 0x7064
+0xc666 0x77DA
+0xc667 0x8B9A
+0xc668 0x9477
+0xc669 0x97C9
+0xc66a 0x9A62
+0xc66b 0x9A65
+0xc66c 0x7E9C
+0xc66d 0x8B9C
+0xc66e 0x8EAA
+0xc66f 0x91C5
+0xc670 0x947D
+0xc671 0x947E
+0xc672 0x947C
+0xc673 0x9C77
+0xc674 0x9C78
+0xc675 0x9EF7
+0xc676 0x8C54
+0xc677 0x947F
+0xc678 0x9E1A
+0xc679 0x7228
+0xc67a 0x9A6A
+0xc67b 0x9B31
+0xc67c 0x9E1B
+0xc67d 0x9E1E
+0xc67e 0x7C72
+0xc6a1 0xF6B1
+0xc6a2 0xF6B2
+0xc6a3 0xF6B3
+0xc6a4 0xF6B4
+0xc6a5 0xF6B5
+0xc6a6 0xF6B6
+0xc6a7 0xF6B7
+0xc6a8 0xF6B8
+0xc6a9 0xF6B9
+0xc6aa 0xF6BA
+0xc6ab 0xF6BB
+0xc6ac 0xF6BC
+0xc6ad 0xF6BD
+0xc6ae 0xF6BE
+0xc6af 0xF6BF
+0xc6b0 0xF6C0
+0xc6b1 0xF6C1
+0xc6b2 0xF6C2
+0xc6b3 0xF6C3
+0xc6b4 0xF6C4
+0xc6b5 0xF6C5
+0xc6b6 0xF6C6
+0xc6b7 0xF6C7
+0xc6b8 0xF6C8
+0xc6b9 0xF6C9
+0xc6ba 0xF6CA
+0xc6bb 0xF6CB
+0xc6bc 0xF6CC
+0xc6bd 0xF6CD
+0xc6be 0xF6CE
+0xc6bf 0xF6CF
+0xc6c0 0xF6D0
+0xc6c1 0xF6D1
+0xc6c2 0xF6D2
+0xc6c3 0xF6D3
+0xc6c4 0xF6D4
+0xc6c5 0xF6D5
+0xc6c6 0xF6D6
+0xc6c7 0xF6D7
+0xc6c8 0xF6D8
+0xc6c9 0xF6D9
+0xc6ca 0xF6DA
+0xc6cb 0xF6DB
+0xc6cc 0xF6DC
+0xc6cd 0xF6DD
+0xc6ce 0xF6DE
+0xc6cf 0xF6DF
+0xc6d0 0xF6E0
+0xc6d1 0xF6E1
+0xc6d2 0xF6E2
+0xc6d3 0xF6E3
+0xc6d4 0xF6E4
+0xc6d5 0xF6E5
+0xc6d6 0xF6E6
+0xc6d7 0xF6E7
+0xc6d8 0xF6E8
+0xc6d9 0xF6E9
+0xc6da 0xF6EA
+0xc6db 0xF6EB
+0xc6dc 0xF6EC
+0xc6dd 0xF6ED
+0xc6de 0xF6EE
+0xc6df 0xF6EF
+0xc6e0 0xF6F0
+0xc6e1 0xF6F1
+0xc6e2 0xF6F2
+0xc6e3 0xF6F3
+0xc6e4 0xF6F4
+0xc6e5 0xF6F5
+0xc6e6 0xF6F6
+0xc6e7 0xF6F7
+0xc6e8 0xF6F8
+0xc6e9 0xF6F9
+0xc6ea 0xF6FA
+0xc6eb 0xF6FB
+0xc6ec 0xF6FC
+0xc6ed 0xF6FD
+0xc6ee 0xF6FE
+0xc6ef 0xF6FF
+0xc6f0 0xF700
+0xc6f1 0xF701
+0xc6f2 0xF702
+0xc6f3 0xF703
+0xc6f4 0xF704
+0xc6f5 0xF705
+0xc6f6 0xF706
+0xc6f7 0xF707
+0xc6f8 0xF708
+0xc6f9 0xF709
+0xc6fa 0xF70A
+0xc6fb 0xF70B
+0xc6fc 0xF70C
+0xc6fd 0xF70D
+0xc6fe 0xF70E
+0xc740 0xF70F
+0xc741 0xF710
+0xc742 0xF711
+0xc743 0xF712
+0xc744 0xF713
+0xc745 0xF714
+0xc746 0xF715
+0xc747 0xF716
+0xc748 0xF717
+0xc749 0xF718
+0xc74a 0xF719
+0xc74b 0xF71A
+0xc74c 0xF71B
+0xc74d 0xF71C
+0xc74e 0xF71D
+0xc74f 0xF71E
+0xc750 0xF71F
+0xc751 0xF720
+0xc752 0xF721
+0xc753 0xF722
+0xc754 0xF723
+0xc755 0xF724
+0xc756 0xF725
+0xc757 0xF726
+0xc758 0xF727
+0xc759 0xF728
+0xc75a 0xF729
+0xc75b 0xF72A
+0xc75c 0xF72B
+0xc75d 0xF72C
+0xc75e 0xF72D
+0xc75f 0xF72E
+0xc760 0xF72F
+0xc761 0xF730
+0xc762 0xF731
+0xc763 0xF732
+0xc764 0xF733
+0xc765 0xF734
+0xc766 0xF735
+0xc767 0xF736
+0xc768 0xF737
+0xc769 0xF738
+0xc76a 0xF739
+0xc76b 0xF73A
+0xc76c 0xF73B
+0xc76d 0xF73C
+0xc76e 0xF73D
+0xc76f 0xF73E
+0xc770 0xF73F
+0xc771 0xF740
+0xc772 0xF741
+0xc773 0xF742
+0xc774 0xF743
+0xc775 0xF744
+0xc776 0xF745
+0xc777 0xF746
+0xc778 0xF747
+0xc779 0xF748
+0xc77a 0xF749
+0xc77b 0xF74A
+0xc77c 0xF74B
+0xc77d 0xF74C
+0xc77e 0xF74D
+0xc7a1 0xF74E
+0xc7a2 0xF74F
+0xc7a3 0xF750
+0xc7a4 0xF751
+0xc7a5 0xF752
+0xc7a6 0xF753
+0xc7a7 0xF754
+0xc7a8 0xF755
+0xc7a9 0xF756
+0xc7aa 0xF757
+0xc7ab 0xF758
+0xc7ac 0xF759
+0xc7ad 0xF75A
+0xc7ae 0xF75B
+0xc7af 0xF75C
+0xc7b0 0xF75D
+0xc7b1 0xF75E
+0xc7b2 0xF75F
+0xc7b3 0xF760
+0xc7b4 0xF761
+0xc7b5 0xF762
+0xc7b6 0xF763
+0xc7b7 0xF764
+0xc7b8 0xF765
+0xc7b9 0xF766
+0xc7ba 0xF767
+0xc7bb 0xF768
+0xc7bc 0xF769
+0xc7bd 0xF76A
+0xc7be 0xF76B
+0xc7bf 0xF76C
+0xc7c0 0xF76D
+0xc7c1 0xF76E
+0xc7c2 0xF76F
+0xc7c3 0xF770
+0xc7c4 0xF771
+0xc7c5 0xF772
+0xc7c6 0xF773
+0xc7c7 0xF774
+0xc7c8 0xF775
+0xc7c9 0xF776
+0xc7ca 0xF777
+0xc7cb 0xF778
+0xc7cc 0xF779
+0xc7cd 0xF77A
+0xc7ce 0xF77B
+0xc7cf 0xF77C
+0xc7d0 0xF77D
+0xc7d1 0xF77E
+0xc7d2 0xF77F
+0xc7d3 0xF780
+0xc7d4 0xF781
+0xc7d5 0xF782
+0xc7d6 0xF783
+0xc7d7 0xF784
+0xc7d8 0xF785
+0xc7d9 0xF786
+0xc7da 0xF787
+0xc7db 0xF788
+0xc7dc 0xF789
+0xc7dd 0xF78A
+0xc7de 0xF78B
+0xc7df 0xF78C
+0xc7e0 0xF78D
+0xc7e1 0xF78E
+0xc7e2 0xF78F
+0xc7e3 0xF790
+0xc7e4 0xF791
+0xc7e5 0xF792
+0xc7e6 0xF793
+0xc7e7 0xF794
+0xc7e8 0xF795
+0xc7e9 0xF796
+0xc7ea 0xF797
+0xc7eb 0xF798
+0xc7ec 0xF799
+0xc7ed 0xF79A
+0xc7ee 0xF79B
+0xc7ef 0xF79C
+0xc7f0 0xF79D
+0xc7f1 0xF79E
+0xc7f2 0xF79F
+0xc7f3 0xF7A0
+0xc7f4 0xF7A1
+0xc7f5 0xF7A2
+0xc7f6 0xF7A3
+0xc7f7 0xF7A4
+0xc7f8 0xF7A5
+0xc7f9 0xF7A6
+0xc7fa 0xF7A7
+0xc7fb 0xF7A8
+0xc7fc 0xF7A9
+0xc7fd 0xF7AA
+0xc7fe 0xF7AB
+0xc840 0xF7AC
+0xc841 0xF7AD
+0xc842 0xF7AE
+0xc843 0xF7AF
+0xc844 0xF7B0
+0xc845 0xF7B1
+0xc846 0xF7B2
+0xc847 0xF7B3
+0xc848 0xF7B4
+0xc849 0xF7B5
+0xc84a 0xF7B6
+0xc84b 0xF7B7
+0xc84c 0xF7B8
+0xc84d 0xF7B9
+0xc84e 0xF7BA
+0xc84f 0xF7BB
+0xc850 0xF7BC
+0xc851 0xF7BD
+0xc852 0xF7BE
+0xc853 0xF7BF
+0xc854 0xF7C0
+0xc855 0xF7C1
+0xc856 0xF7C2
+0xc857 0xF7C3
+0xc858 0xF7C4
+0xc859 0xF7C5
+0xc85a 0xF7C6
+0xc85b 0xF7C7
+0xc85c 0xF7C8
+0xc85d 0xF7C9
+0xc85e 0xF7CA
+0xc85f 0xF7CB
+0xc860 0xF7CC
+0xc861 0xF7CD
+0xc862 0xF7CE
+0xc863 0xF7CF
+0xc864 0xF7D0
+0xc865 0xF7D1
+0xc866 0xF7D2
+0xc867 0xF7D3
+0xc868 0xF7D4
+0xc869 0xF7D5
+0xc86a 0xF7D6
+0xc86b 0xF7D7
+0xc86c 0xF7D8
+0xc86d 0xF7D9
+0xc86e 0xF7DA
+0xc86f 0xF7DB
+0xc870 0xF7DC
+0xc871 0xF7DD
+0xc872 0xF7DE
+0xc873 0xF7DF
+0xc874 0xF7E0
+0xc875 0xF7E1
+0xc876 0xF7E2
+0xc877 0xF7E3
+0xc878 0xF7E4
+0xc879 0xF7E5
+0xc87a 0xF7E6
+0xc87b 0xF7E7
+0xc87c 0xF7E8
+0xc87d 0xF7E9
+0xc87e 0xF7EA
+0xc8a1 0xF7EB
+0xc8a2 0xF7EC
+0xc8a3 0xF7ED
+0xc8a4 0xF7EE
+0xc8a5 0xF7EF
+0xc8a6 0xF7F0
+0xc8a7 0xF7F1
+0xc8a8 0xF7F2
+0xc8a9 0xF7F3
+0xc8aa 0xF7F4
+0xc8ab 0xF7F5
+0xc8ac 0xF7F6
+0xc8ad 0xF7F7
+0xc8ae 0xF7F8
+0xc8af 0xF7F9
+0xc8b0 0xF7FA
+0xc8b1 0xF7FB
+0xc8b2 0xF7FC
+0xc8b3 0xF7FD
+0xc8b4 0xF7FE
+0xc8b5 0xF7FF
+0xc8b6 0xF800
+0xc8b7 0xF801
+0xc8b8 0xF802
+0xc8b9 0xF803
+0xc8ba 0xF804
+0xc8bb 0xF805
+0xc8bc 0xF806
+0xc8bd 0xF807
+0xc8be 0xF808
+0xc8bf 0xF809
+0xc8c0 0xF80A
+0xc8c1 0xF80B
+0xc8c2 0xF80C
+0xc8c3 0xF80D
+0xc8c4 0xF80E
+0xc8c5 0xF80F
+0xc8c6 0xF810
+0xc8c7 0xF811
+0xc8c8 0xF812
+0xc8c9 0xF813
+0xc8ca 0xF814
+0xc8cb 0xF815
+0xc8cc 0xF816
+0xc8cd 0xF817
+0xc8ce 0xF818
+0xc8cf 0xF819
+0xc8d0 0xF81A
+0xc8d1 0xF81B
+0xc8d2 0xF81C
+0xc8d3 0xF81D
+0xc8d4 0xF81E
+0xc8d5 0xF81F
+0xc8d6 0xF820
+0xc8d7 0xF821
+0xc8d8 0xF822
+0xc8d9 0xF823
+0xc8da 0xF824
+0xc8db 0xF825
+0xc8dc 0xF826
+0xc8dd 0xF827
+0xc8de 0xF828
+0xc8df 0xF829
+0xc8e0 0xF82A
+0xc8e1 0xF82B
+0xc8e2 0xF82C
+0xc8e3 0xF82D
+0xc8e4 0xF82E
+0xc8e5 0xF82F
+0xc8e6 0xF830
+0xc8e7 0xF831
+0xc8e8 0xF832
+0xc8e9 0xF833
+0xc8ea 0xF834
+0xc8eb 0xF835
+0xc8ec 0xF836
+0xc8ed 0xF837
+0xc8ee 0xF838
+0xc8ef 0xF839
+0xc8f0 0xF83A
+0xc8f1 0xF83B
+0xc8f2 0xF83C
+0xc8f3 0xF83D
+0xc8f4 0xF83E
+0xc8f5 0xF83F
+0xc8f6 0xF840
+0xc8f7 0xF841
+0xc8f8 0xF842
+0xc8f9 0xF843
+0xc8fa 0xF844
+0xc8fb 0xF845
+0xc8fc 0xF846
+0xc8fd 0xF847
+0xc8fe 0xF848
+0xc940 0x4E42
+0xc941 0x4E5C
+0xc942 0x51F5
+0xc943 0x531A
+0xc944 0x5382
+0xc945 0x4E07
+0xc946 0x4E0C
+0xc947 0x4E47
+0xc948 0x4E8D
+0xc949 0x56D7
+0xc94a 0xFA0C
+0xc94b 0x5C6E
+0xc94c 0x5F73
+0xc94d 0x4E0F
+0xc94e 0x5187
+0xc94f 0x4E0E
+0xc950 0x4E2E
+0xc951 0x4E93
+0xc952 0x4EC2
+0xc953 0x4EC9
+0xc954 0x4EC8
+0xc955 0x5198
+0xc956 0x52FC
+0xc957 0x536C
+0xc958 0x53B9
+0xc959 0x5720
+0xc95a 0x5903
+0xc95b 0x592C
+0xc95c 0x5C10
+0xc95d 0x5DFF
+0xc95e 0x65E1
+0xc95f 0x6BB3
+0xc960 0x6BCC
+0xc961 0x6C14
+0xc962 0x723F
+0xc963 0x4E31
+0xc964 0x4E3C
+0xc965 0x4EE8
+0xc966 0x4EDC
+0xc967 0x4EE9
+0xc968 0x4EE1
+0xc969 0x4EDD
+0xc96a 0x4EDA
+0xc96b 0x520C
+0xc96c 0x531C
+0xc96d 0x534C
+0xc96e 0x5722
+0xc96f 0x5723
+0xc970 0x5917
+0xc971 0x592F
+0xc972 0x5B81
+0xc973 0x5B84
+0xc974 0x5C12
+0xc975 0x5C3B
+0xc976 0x5C74
+0xc977 0x5C73
+0xc978 0x5E04
+0xc979 0x5E80
+0xc97a 0x5E82
+0xc97b 0x5FC9
+0xc97c 0x6209
+0xc97d 0x6250
+0xc97e 0x6C15
+0xc9a1 0x6C36
+0xc9a2 0x6C43
+0xc9a3 0x6C3F
+0xc9a4 0x6C3B
+0xc9a5 0x72AE
+0xc9a6 0x72B0
+0xc9a7 0x738A
+0xc9a8 0x79B8
+0xc9a9 0x808A
+0xc9aa 0x961E
+0xc9ab 0x4F0E
+0xc9ac 0x4F18
+0xc9ad 0x4F2C
+0xc9ae 0x4EF5
+0xc9af 0x4F14
+0xc9b0 0x4EF1
+0xc9b1 0x4F00
+0xc9b2 0x4EF7
+0xc9b3 0x4F08
+0xc9b4 0x4F1D
+0xc9b5 0x4F02
+0xc9b6 0x4F05
+0xc9b7 0x4F22
+0xc9b8 0x4F13
+0xc9b9 0x4F04
+0xc9ba 0x4EF4
+0xc9bb 0x4F12
+0xc9bc 0x51B1
+0xc9bd 0x5213
+0xc9be 0x5209
+0xc9bf 0x5210
+0xc9c0 0x52A6
+0xc9c1 0x5322
+0xc9c2 0x531F
+0xc9c3 0x534D
+0xc9c4 0x538A
+0xc9c5 0x5407
+0xc9c6 0x56E1
+0xc9c7 0x56DF
+0xc9c8 0x572E
+0xc9c9 0x572A
+0xc9ca 0x5734
+0xc9cb 0x593C
+0xc9cc 0x5980
+0xc9cd 0x597C
+0xc9ce 0x5985
+0xc9cf 0x597B
+0xc9d0 0x597E
+0xc9d1 0x5977
+0xc9d2 0x597F
+0xc9d3 0x5B56
+0xc9d4 0x5C15
+0xc9d5 0x5C25
+0xc9d6 0x5C7C
+0xc9d7 0x5C7A
+0xc9d8 0x5C7B
+0xc9d9 0x5C7E
+0xc9da 0x5DDF
+0xc9db 0x5E75
+0xc9dc 0x5E84
+0xc9dd 0x5F02
+0xc9de 0x5F1A
+0xc9df 0x5F74
+0xc9e0 0x5FD5
+0xc9e1 0x5FD4
+0xc9e2 0x5FCF
+0xc9e3 0x625C
+0xc9e4 0x625E
+0xc9e5 0x6264
+0xc9e6 0x6261
+0xc9e7 0x6266
+0xc9e8 0x6262
+0xc9e9 0x6259
+0xc9ea 0x6260
+0xc9eb 0x625A
+0xc9ec 0x6265
+0xc9ed 0x65EF
+0xc9ee 0x65EE
+0xc9ef 0x673E
+0xc9f0 0x6739
+0xc9f1 0x6738
+0xc9f2 0x673B
+0xc9f3 0x673A
+0xc9f4 0x673F
+0xc9f5 0x673C
+0xc9f6 0x6733
+0xc9f7 0x6C18
+0xc9f8 0x6C46
+0xc9f9 0x6C52
+0xc9fa 0x6C5C
+0xc9fb 0x6C4F
+0xc9fc 0x6C4A
+0xc9fd 0x6C54
+0xc9fe 0x6C4B
+0xca40 0x6C4C
+0xca41 0x7071
+0xca42 0x725E
+0xca43 0x72B4
+0xca44 0x72B5
+0xca45 0x738E
+0xca46 0x752A
+0xca47 0x767F
+0xca48 0x7A75
+0xca49 0x7F51
+0xca4a 0x8278
+0xca4b 0x827C
+0xca4c 0x8280
+0xca4d 0x827D
+0xca4e 0x827F
+0xca4f 0x864D
+0xca50 0x897E
+0xca51 0x9099
+0xca52 0x9097
+0xca53 0x9098
+0xca54 0x909B
+0xca55 0x9094
+0xca56 0x9622
+0xca57 0x9624
+0xca58 0x9620
+0xca59 0x9623
+0xca5a 0x4F56
+0xca5b 0x4F3B
+0xca5c 0x4F62
+0xca5d 0x4F49
+0xca5e 0x4F53
+0xca5f 0x4F64
+0xca60 0x4F3E
+0xca61 0x4F67
+0xca62 0x4F52
+0xca63 0x4F5F
+0xca64 0x4F41
+0xca65 0x4F58
+0xca66 0x4F2D
+0xca67 0x4F33
+0xca68 0x4F3F
+0xca69 0x4F61
+0xca6a 0x518F
+0xca6b 0x51B9
+0xca6c 0x521C
+0xca6d 0x521E
+0xca6e 0x5221
+0xca6f 0x52AD
+0xca70 0x52AE
+0xca71 0x5309
+0xca72 0x5363
+0xca73 0x5372
+0xca74 0x538E
+0xca75 0x538F
+0xca76 0x5430
+0xca77 0x5437
+0xca78 0x542A
+0xca79 0x5454
+0xca7a 0x5445
+0xca7b 0x5419
+0xca7c 0x541C
+0xca7d 0x5425
+0xca7e 0x5418
+0xcaa1 0x543D
+0xcaa2 0x544F
+0xcaa3 0x5441
+0xcaa4 0x5428
+0xcaa5 0x5424
+0xcaa6 0x5447
+0xcaa7 0x56EE
+0xcaa8 0x56E7
+0xcaa9 0x56E5
+0xcaaa 0x5741
+0xcaab 0x5745
+0xcaac 0x574C
+0xcaad 0x5749
+0xcaae 0x574B
+0xcaaf 0x5752
+0xcab0 0x5906
+0xcab1 0x5940
+0xcab2 0x59A6
+0xcab3 0x5998
+0xcab4 0x59A0
+0xcab5 0x5997
+0xcab6 0x598E
+0xcab7 0x59A2
+0xcab8 0x5990
+0xcab9 0x598F
+0xcaba 0x59A7
+0xcabb 0x59A1
+0xcabc 0x5B8E
+0xcabd 0x5B92
+0xcabe 0x5C28
+0xcabf 0x5C2A
+0xcac0 0x5C8D
+0xcac1 0x5C8F
+0xcac2 0x5C88
+0xcac3 0x5C8B
+0xcac4 0x5C89
+0xcac5 0x5C92
+0xcac6 0x5C8A
+0xcac7 0x5C86
+0xcac8 0x5C93
+0xcac9 0x5C95
+0xcaca 0x5DE0
+0xcacb 0x5E0A
+0xcacc 0x5E0E
+0xcacd 0x5E8B
+0xcace 0x5E89
+0xcacf 0x5E8C
+0xcad0 0x5E88
+0xcad1 0x5E8D
+0xcad2 0x5F05
+0xcad3 0x5F1D
+0xcad4 0x5F78
+0xcad5 0x5F76
+0xcad6 0x5FD2
+0xcad7 0x5FD1
+0xcad8 0x5FD0
+0xcad9 0x5FED
+0xcada 0x5FE8
+0xcadb 0x5FEE
+0xcadc 0x5FF3
+0xcadd 0x5FE1
+0xcade 0x5FE4
+0xcadf 0x5FE3
+0xcae0 0x5FFA
+0xcae1 0x5FEF
+0xcae2 0x5FF7
+0xcae3 0x5FFB
+0xcae4 0x6000
+0xcae5 0x5FF4
+0xcae6 0x623A
+0xcae7 0x6283
+0xcae8 0x628C
+0xcae9 0x628E
+0xcaea 0x628F
+0xcaeb 0x6294
+0xcaec 0x6287
+0xcaed 0x6271
+0xcaee 0x627B
+0xcaef 0x627A
+0xcaf0 0x6270
+0xcaf1 0x6281
+0xcaf2 0x6288
+0xcaf3 0x6277
+0xcaf4 0x627D
+0xcaf5 0x6272
+0xcaf6 0x6274
+0xcaf7 0x6537
+0xcaf8 0x65F0
+0xcaf9 0x65F4
+0xcafa 0x65F3
+0xcafb 0x65F2
+0xcafc 0x65F5
+0xcafd 0x6745
+0xcafe 0x6747
+0xcb40 0x6759
+0xcb41 0x6755
+0xcb42 0x674C
+0xcb43 0x6748
+0xcb44 0x675D
+0xcb45 0x674D
+0xcb46 0x675A
+0xcb47 0x674B
+0xcb48 0x6BD0
+0xcb49 0x6C19
+0xcb4a 0x6C1A
+0xcb4b 0x6C78
+0xcb4c 0x6C67
+0xcb4d 0x6C6B
+0xcb4e 0x6C84
+0xcb4f 0x6C8B
+0xcb50 0x6C8F
+0xcb51 0x6C71
+0xcb52 0x6C6F
+0xcb53 0x6C69
+0xcb54 0x6C9A
+0xcb55 0x6C6D
+0xcb56 0x6C87
+0xcb57 0x6C95
+0xcb58 0x6C9C
+0xcb59 0x6C66
+0xcb5a 0x6C73
+0xcb5b 0x6C65
+0xcb5c 0x6C7B
+0xcb5d 0x6C8E
+0xcb5e 0x7074
+0xcb5f 0x707A
+0xcb60 0x7263
+0xcb61 0x72BF
+0xcb62 0x72BD
+0xcb63 0x72C3
+0xcb64 0x72C6
+0xcb65 0x72C1
+0xcb66 0x72BA
+0xcb67 0x72C5
+0xcb68 0x7395
+0xcb69 0x7397
+0xcb6a 0x7393
+0xcb6b 0x7394
+0xcb6c 0x7392
+0xcb6d 0x753A
+0xcb6e 0x7539
+0xcb6f 0x7594
+0xcb70 0x7595
+0xcb71 0x7681
+0xcb72 0x793D
+0xcb73 0x8034
+0xcb74 0x8095
+0xcb75 0x8099
+0xcb76 0x8090
+0xcb77 0x8092
+0xcb78 0x809C
+0xcb79 0x8290
+0xcb7a 0x828F
+0xcb7b 0x8285
+0xcb7c 0x828E
+0xcb7d 0x8291
+0xcb7e 0x8293
+0xcba1 0x828A
+0xcba2 0x8283
+0xcba3 0x8284
+0xcba4 0x8C78
+0xcba5 0x8FC9
+0xcba6 0x8FBF
+0xcba7 0x909F
+0xcba8 0x90A1
+0xcba9 0x90A5
+0xcbaa 0x909E
+0xcbab 0x90A7
+0xcbac 0x90A0
+0xcbad 0x9630
+0xcbae 0x9628
+0xcbaf 0x962F
+0xcbb0 0x962D
+0xcbb1 0x4E33
+0xcbb2 0x4F98
+0xcbb3 0x4F7C
+0xcbb4 0x4F85
+0xcbb5 0x4F7D
+0xcbb6 0x4F80
+0xcbb7 0x4F87
+0xcbb8 0x4F76
+0xcbb9 0x4F74
+0xcbba 0x4F89
+0xcbbb 0x4F84
+0xcbbc 0x4F77
+0xcbbd 0x4F4C
+0xcbbe 0x4F97
+0xcbbf 0x4F6A
+0xcbc0 0x4F9A
+0xcbc1 0x4F79
+0xcbc2 0x4F81
+0xcbc3 0x4F78
+0xcbc4 0x4F90
+0xcbc5 0x4F9C
+0xcbc6 0x4F94
+0xcbc7 0x4F9E
+0xcbc8 0x4F92
+0xcbc9 0x4F82
+0xcbca 0x4F95
+0xcbcb 0x4F6B
+0xcbcc 0x4F6E
+0xcbcd 0x519E
+0xcbce 0x51BC
+0xcbcf 0x51BE
+0xcbd0 0x5235
+0xcbd1 0x5232
+0xcbd2 0x5233
+0xcbd3 0x5246
+0xcbd4 0x5231
+0xcbd5 0x52BC
+0xcbd6 0x530A
+0xcbd7 0x530B
+0xcbd8 0x533C
+0xcbd9 0x5392
+0xcbda 0x5394
+0xcbdb 0x5487
+0xcbdc 0x547F
+0xcbdd 0x5481
+0xcbde 0x5491
+0xcbdf 0x5482
+0xcbe0 0x5488
+0xcbe1 0x546B
+0xcbe2 0x547A
+0xcbe3 0x547E
+0xcbe4 0x5465
+0xcbe5 0x546C
+0xcbe6 0x5474
+0xcbe7 0x5466
+0xcbe8 0x548D
+0xcbe9 0x546F
+0xcbea 0x5461
+0xcbeb 0x5460
+0xcbec 0x5498
+0xcbed 0x5463
+0xcbee 0x5467
+0xcbef 0x5464
+0xcbf0 0x56F7
+0xcbf1 0x56F9
+0xcbf2 0x576F
+0xcbf3 0x5772
+0xcbf4 0x576D
+0xcbf5 0x576B
+0xcbf6 0x5771
+0xcbf7 0x5770
+0xcbf8 0x5776
+0xcbf9 0x5780
+0xcbfa 0x5775
+0xcbfb 0x577B
+0xcbfc 0x5773
+0xcbfd 0x5774
+0xcbfe 0x5762
+0xcc40 0x5768
+0xcc41 0x577D
+0xcc42 0x590C
+0xcc43 0x5945
+0xcc44 0x59B5
+0xcc45 0x59BA
+0xcc46 0x59CF
+0xcc47 0x59CE
+0xcc48 0x59B2
+0xcc49 0x59CC
+0xcc4a 0x59C1
+0xcc4b 0x59B6
+0xcc4c 0x59BC
+0xcc4d 0x59C3
+0xcc4e 0x59D6
+0xcc4f 0x59B1
+0xcc50 0x59BD
+0xcc51 0x59C0
+0xcc52 0x59C8
+0xcc53 0x59B4
+0xcc54 0x59C7
+0xcc55 0x5B62
+0xcc56 0x5B65
+0xcc57 0x5B93
+0xcc58 0x5B95
+0xcc59 0x5C44
+0xcc5a 0x5C47
+0xcc5b 0x5CAE
+0xcc5c 0x5CA4
+0xcc5d 0x5CA0
+0xcc5e 0x5CB5
+0xcc5f 0x5CAF
+0xcc60 0x5CA8
+0xcc61 0x5CAC
+0xcc62 0x5C9F
+0xcc63 0x5CA3
+0xcc64 0x5CAD
+0xcc65 0x5CA2
+0xcc66 0x5CAA
+0xcc67 0x5CA7
+0xcc68 0x5C9D
+0xcc69 0x5CA5
+0xcc6a 0x5CB6
+0xcc6b 0x5CB0
+0xcc6c 0x5CA6
+0xcc6d 0x5E17
+0xcc6e 0x5E14
+0xcc6f 0x5E19
+0xcc70 0x5F28
+0xcc71 0x5F22
+0xcc72 0x5F23
+0xcc73 0x5F24
+0xcc74 0x5F54
+0xcc75 0x5F82
+0xcc76 0x5F7E
+0xcc77 0x5F7D
+0xcc78 0x5FDE
+0xcc79 0x5FE5
+0xcc7a 0x602D
+0xcc7b 0x6026
+0xcc7c 0x6019
+0xcc7d 0x6032
+0xcc7e 0x600B
+0xcca1 0x6034
+0xcca2 0x600A
+0xcca3 0x6017
+0xcca4 0x6033
+0xcca5 0x601A
+0xcca6 0x601E
+0xcca7 0x602C
+0xcca8 0x6022
+0xcca9 0x600D
+0xccaa 0x6010
+0xccab 0x602E
+0xccac 0x6013
+0xccad 0x6011
+0xccae 0x600C
+0xccaf 0x6009
+0xccb0 0x601C
+0xccb1 0x6214
+0xccb2 0x623D
+0xccb3 0x62AD
+0xccb4 0x62B4
+0xccb5 0x62D1
+0xccb6 0x62BE
+0xccb7 0x62AA
+0xccb8 0x62B6
+0xccb9 0x62CA
+0xccba 0x62AE
+0xccbb 0x62B3
+0xccbc 0x62AF
+0xccbd 0x62BB
+0xccbe 0x62A9
+0xccbf 0x62B0
+0xccc0 0x62B8
+0xccc1 0x653D
+0xccc2 0x65A8
+0xccc3 0x65BB
+0xccc4 0x6609
+0xccc5 0x65FC
+0xccc6 0x6604
+0xccc7 0x6612
+0xccc8 0x6608
+0xccc9 0x65FB
+0xccca 0x6603
+0xcccb 0x660B
+0xcccc 0x660D
+0xcccd 0x6605
+0xccce 0x65FD
+0xcccf 0x6611
+0xccd0 0x6610
+0xccd1 0x66F6
+0xccd2 0x670A
+0xccd3 0x6785
+0xccd4 0x676C
+0xccd5 0x678E
+0xccd6 0x6792
+0xccd7 0x6776
+0xccd8 0x677B
+0xccd9 0x6798
+0xccda 0x6786
+0xccdb 0x6784
+0xccdc 0x6774
+0xccdd 0x678D
+0xccde 0x678C
+0xccdf 0x677A
+0xcce0 0x679F
+0xcce1 0x6791
+0xcce2 0x6799
+0xcce3 0x6783
+0xcce4 0x677D
+0xcce5 0x6781
+0xcce6 0x6778
+0xcce7 0x6779
+0xcce8 0x6794
+0xcce9 0x6B25
+0xccea 0x6B80
+0xcceb 0x6B7E
+0xccec 0x6BDE
+0xcced 0x6C1D
+0xccee 0x6C93
+0xccef 0x6CEC
+0xccf0 0x6CEB
+0xccf1 0x6CEE
+0xccf2 0x6CD9
+0xccf3 0x6CB6
+0xccf4 0x6CD4
+0xccf5 0x6CAD
+0xccf6 0x6CE7
+0xccf7 0x6CB7
+0xccf8 0x6CD0
+0xccf9 0x6CC2
+0xccfa 0x6CBA
+0xccfb 0x6CC3
+0xccfc 0x6CC6
+0xccfd 0x6CED
+0xccfe 0x6CF2
+0xcd40 0x6CD2
+0xcd41 0x6CDD
+0xcd42 0x6CB4
+0xcd43 0x6C8A
+0xcd44 0x6C9D
+0xcd45 0x6C80
+0xcd46 0x6CDE
+0xcd47 0x6CC0
+0xcd48 0x6D30
+0xcd49 0x6CCD
+0xcd4a 0x6CC7
+0xcd4b 0x6CB0
+0xcd4c 0x6CF9
+0xcd4d 0x6CCF
+0xcd4e 0x6CE9
+0xcd4f 0x6CD1
+0xcd50 0x7094
+0xcd51 0x7098
+0xcd52 0x7085
+0xcd53 0x7093
+0xcd54 0x7086
+0xcd55 0x7084
+0xcd56 0x7091
+0xcd57 0x7096
+0xcd58 0x7082
+0xcd59 0x709A
+0xcd5a 0x7083
+0xcd5b 0x726A
+0xcd5c 0x72D6
+0xcd5d 0x72CB
+0xcd5e 0x72D8
+0xcd5f 0x72C9
+0xcd60 0x72DC
+0xcd61 0x72D2
+0xcd62 0x72D4
+0xcd63 0x72DA
+0xcd64 0x72CC
+0xcd65 0x72D1
+0xcd66 0x73A4
+0xcd67 0x73A1
+0xcd68 0x73AD
+0xcd69 0x73A6
+0xcd6a 0x73A2
+0xcd6b 0x73A0
+0xcd6c 0x73AC
+0xcd6d 0x739D
+0xcd6e 0x74DD
+0xcd6f 0x74E8
+0xcd70 0x753F
+0xcd71 0x7540
+0xcd72 0x753E
+0xcd73 0x758C
+0xcd74 0x7598
+0xcd75 0x76AF
+0xcd76 0x76F3
+0xcd77 0x76F1
+0xcd78 0x76F0
+0xcd79 0x76F5
+0xcd7a 0x77F8
+0xcd7b 0x77FC
+0xcd7c 0x77F9
+0xcd7d 0x77FB
+0xcd7e 0x77FA
+0xcda1 0x77F7
+0xcda2 0x7942
+0xcda3 0x793F
+0xcda4 0x79C5
+0xcda5 0x7A78
+0xcda6 0x7A7B
+0xcda7 0x7AFB
+0xcda8 0x7C75
+0xcda9 0x7CFD
+0xcdaa 0x8035
+0xcdab 0x808F
+0xcdac 0x80AE
+0xcdad 0x80A3
+0xcdae 0x80B8
+0xcdaf 0x80B5
+0xcdb0 0x80AD
+0xcdb1 0x8220
+0xcdb2 0x82A0
+0xcdb3 0x82C0
+0xcdb4 0x82AB
+0xcdb5 0x829A
+0xcdb6 0x8298
+0xcdb7 0x829B
+0xcdb8 0x82B5
+0xcdb9 0x82A7
+0xcdba 0x82AE
+0xcdbb 0x82BC
+0xcdbc 0x829E
+0xcdbd 0x82BA
+0xcdbe 0x82B4
+0xcdbf 0x82A8
+0xcdc0 0x82A1
+0xcdc1 0x82A9
+0xcdc2 0x82C2
+0xcdc3 0x82A4
+0xcdc4 0x82C3
+0xcdc5 0x82B6
+0xcdc6 0x82A2
+0xcdc7 0x8670
+0xcdc8 0x866F
+0xcdc9 0x866D
+0xcdca 0x866E
+0xcdcb 0x8C56
+0xcdcc 0x8FD2
+0xcdcd 0x8FCB
+0xcdce 0x8FD3
+0xcdcf 0x8FCD
+0xcdd0 0x8FD6
+0xcdd1 0x8FD5
+0xcdd2 0x8FD7
+0xcdd3 0x90B2
+0xcdd4 0x90B4
+0xcdd5 0x90AF
+0xcdd6 0x90B3
+0xcdd7 0x90B0
+0xcdd8 0x9639
+0xcdd9 0x963D
+0xcdda 0x963C
+0xcddb 0x963A
+0xcddc 0x9643
+0xcddd 0x4FCD
+0xcdde 0x4FC5
+0xcddf 0x4FD3
+0xcde0 0x4FB2
+0xcde1 0x4FC9
+0xcde2 0x4FCB
+0xcde3 0x4FC1
+0xcde4 0x4FD4
+0xcde5 0x4FDC
+0xcde6 0x4FD9
+0xcde7 0x4FBB
+0xcde8 0x4FB3
+0xcde9 0x4FDB
+0xcdea 0x4FC7
+0xcdeb 0x4FD6
+0xcdec 0x4FBA
+0xcded 0x4FC0
+0xcdee 0x4FB9
+0xcdef 0x4FEC
+0xcdf0 0x5244
+0xcdf1 0x5249
+0xcdf2 0x52C0
+0xcdf3 0x52C2
+0xcdf4 0x533D
+0xcdf5 0x537C
+0xcdf6 0x5397
+0xcdf7 0x5396
+0xcdf8 0x5399
+0xcdf9 0x5398
+0xcdfa 0x54BA
+0xcdfb 0x54A1
+0xcdfc 0x54AD
+0xcdfd 0x54A5
+0xcdfe 0x54CF
+0xce40 0x54C3
+0xce41 0x830D
+0xce42 0x54B7
+0xce43 0x54AE
+0xce44 0x54D6
+0xce45 0x54B6
+0xce46 0x54C5
+0xce47 0x54C6
+0xce48 0x54A0
+0xce49 0x5470
+0xce4a 0x54BC
+0xce4b 0x54A2
+0xce4c 0x54BE
+0xce4d 0x5472
+0xce4e 0x54DE
+0xce4f 0x54B0
+0xce50 0x57B5
+0xce51 0x579E
+0xce52 0x579F
+0xce53 0x57A4
+0xce54 0x578C
+0xce55 0x5797
+0xce56 0x579D
+0xce57 0x579B
+0xce58 0x5794
+0xce59 0x5798
+0xce5a 0x578F
+0xce5b 0x5799
+0xce5c 0x57A5
+0xce5d 0x579A
+0xce5e 0x5795
+0xce5f 0x58F4
+0xce60 0x590D
+0xce61 0x5953
+0xce62 0x59E1
+0xce63 0x59DE
+0xce64 0x59EE
+0xce65 0x5A00
+0xce66 0x59F1
+0xce67 0x59DD
+0xce68 0x59FA
+0xce69 0x59FD
+0xce6a 0x59FC
+0xce6b 0x59F6
+0xce6c 0x59E4
+0xce6d 0x59F2
+0xce6e 0x59F7
+0xce6f 0x59DB
+0xce70 0x59E9
+0xce71 0x59F3
+0xce72 0x59F5
+0xce73 0x59E0
+0xce74 0x59FE
+0xce75 0x59F4
+0xce76 0x59ED
+0xce77 0x5BA8
+0xce78 0x5C4C
+0xce79 0x5CD0
+0xce7a 0x5CD8
+0xce7b 0x5CCC
+0xce7c 0x5CD7
+0xce7d 0x5CCB
+0xce7e 0x5CDB
+0xcea1 0x5CDE
+0xcea2 0x5CDA
+0xcea3 0x5CC9
+0xcea4 0x5CC7
+0xcea5 0x5CCA
+0xcea6 0x5CD6
+0xcea7 0x5CD3
+0xcea8 0x5CD4
+0xcea9 0x5CCF
+0xceaa 0x5CC8
+0xceab 0x5CC6
+0xceac 0x5CCE
+0xcead 0x5CDF
+0xceae 0x5CF8
+0xceaf 0x5DF9
+0xceb0 0x5E21
+0xceb1 0x5E22
+0xceb2 0x5E23
+0xceb3 0x5E20
+0xceb4 0x5E24
+0xceb5 0x5EB0
+0xceb6 0x5EA4
+0xceb7 0x5EA2
+0xceb8 0x5E9B
+0xceb9 0x5EA3
+0xceba 0x5EA5
+0xcebb 0x5F07
+0xcebc 0x5F2E
+0xcebd 0x5F56
+0xcebe 0x5F86
+0xcebf 0x6037
+0xcec0 0x6039
+0xcec1 0x6054
+0xcec2 0x6072
+0xcec3 0x605E
+0xcec4 0x6045
+0xcec5 0x6053
+0xcec6 0x6047
+0xcec7 0x6049
+0xcec8 0x605B
+0xcec9 0x604C
+0xceca 0x6040
+0xcecb 0x6042
+0xcecc 0x605F
+0xcecd 0x6024
+0xcece 0x6044
+0xcecf 0x6058
+0xced0 0x6066
+0xced1 0x606E
+0xced2 0x6242
+0xced3 0x6243
+0xced4 0x62CF
+0xced5 0x630D
+0xced6 0x630B
+0xced7 0x62F5
+0xced8 0x630E
+0xced9 0x6303
+0xceda 0x62EB
+0xcedb 0x62F9
+0xcedc 0x630F
+0xcedd 0x630C
+0xcede 0x62F8
+0xcedf 0x62F6
+0xcee0 0x6300
+0xcee1 0x6313
+0xcee2 0x6314
+0xcee3 0x62FA
+0xcee4 0x6315
+0xcee5 0x62FB
+0xcee6 0x62F0
+0xcee7 0x6541
+0xcee8 0x6543
+0xcee9 0x65AA
+0xceea 0x65BF
+0xceeb 0x6636
+0xceec 0x6621
+0xceed 0x6632
+0xceee 0x6635
+0xceef 0x661C
+0xcef0 0x6626
+0xcef1 0x6622
+0xcef2 0x6633
+0xcef3 0x662B
+0xcef4 0x663A
+0xcef5 0x661D
+0xcef6 0x6634
+0xcef7 0x6639
+0xcef8 0x662E
+0xcef9 0x670F
+0xcefa 0x6710
+0xcefb 0x67C1
+0xcefc 0x67F2
+0xcefd 0x67C8
+0xcefe 0x67BA
+0xcf40 0x67DC
+0xcf41 0x67BB
+0xcf42 0x67F8
+0xcf43 0x67D8
+0xcf44 0x67C0
+0xcf45 0x67B7
+0xcf46 0x67C5
+0xcf47 0x67EB
+0xcf48 0x67E4
+0xcf49 0x67DF
+0xcf4a 0x67B5
+0xcf4b 0x67CD
+0xcf4c 0x67B3
+0xcf4d 0x67F7
+0xcf4e 0x67F6
+0xcf4f 0x67EE
+0xcf50 0x67E3
+0xcf51 0x67C2
+0xcf52 0x67B9
+0xcf53 0x67CE
+0xcf54 0x67E7
+0xcf55 0x67F0
+0xcf56 0x67B2
+0xcf57 0x67FC
+0xcf58 0x67C6
+0xcf59 0x67ED
+0xcf5a 0x67CC
+0xcf5b 0x67AE
+0xcf5c 0x67E6
+0xcf5d 0x67DB
+0xcf5e 0x67FA
+0xcf5f 0x67C9
+0xcf60 0x67CA
+0xcf61 0x67C3
+0xcf62 0x67EA
+0xcf63 0x67CB
+0xcf64 0x6B28
+0xcf65 0x6B82
+0xcf66 0x6B84
+0xcf67 0x6BB6
+0xcf68 0x6BD6
+0xcf69 0x6BD8
+0xcf6a 0x6BE0
+0xcf6b 0x6C20
+0xcf6c 0x6C21
+0xcf6d 0x6D28
+0xcf6e 0x6D34
+0xcf6f 0x6D2D
+0xcf70 0x6D1F
+0xcf71 0x6D3C
+0xcf72 0x6D3F
+0xcf73 0x6D12
+0xcf74 0x6D0A
+0xcf75 0x6CDA
+0xcf76 0x6D33
+0xcf77 0x6D04
+0xcf78 0x6D19
+0xcf79 0x6D3A
+0xcf7a 0x6D1A
+0xcf7b 0x6D11
+0xcf7c 0x6D00
+0xcf7d 0x6D1D
+0xcf7e 0x6D42
+0xcfa1 0x6D01
+0xcfa2 0x6D18
+0xcfa3 0x6D37
+0xcfa4 0x6D03
+0xcfa5 0x6D0F
+0xcfa6 0x6D40
+0xcfa7 0x6D07
+0xcfa8 0x6D20
+0xcfa9 0x6D2C
+0xcfaa 0x6D08
+0xcfab 0x6D22
+0xcfac 0x6D09
+0xcfad 0x6D10
+0xcfae 0x70B7
+0xcfaf 0x709F
+0xcfb0 0x70BE
+0xcfb1 0x70B1
+0xcfb2 0x70B0
+0xcfb3 0x70A1
+0xcfb4 0x70B4
+0xcfb5 0x70B5
+0xcfb6 0x70A9
+0xcfb7 0x7241
+0xcfb8 0x7249
+0xcfb9 0x724A
+0xcfba 0x726C
+0xcfbb 0x7270
+0xcfbc 0x7273
+0xcfbd 0x726E
+0xcfbe 0x72CA
+0xcfbf 0x72E4
+0xcfc0 0x72E8
+0xcfc1 0x72EB
+0xcfc2 0x72DF
+0xcfc3 0x72EA
+0xcfc4 0x72E6
+0xcfc5 0x72E3
+0xcfc6 0x7385
+0xcfc7 0x73CC
+0xcfc8 0x73C2
+0xcfc9 0x73C8
+0xcfca 0x73C5
+0xcfcb 0x73B9
+0xcfcc 0x73B6
+0xcfcd 0x73B5
+0xcfce 0x73B4
+0xcfcf 0x73EB
+0xcfd0 0x73BF
+0xcfd1 0x73C7
+0xcfd2 0x73BE
+0xcfd3 0x73C3
+0xcfd4 0x73C6
+0xcfd5 0x73B8
+0xcfd6 0x73CB
+0xcfd7 0x74EC
+0xcfd8 0x74EE
+0xcfd9 0x752E
+0xcfda 0x7547
+0xcfdb 0x7548
+0xcfdc 0x75A7
+0xcfdd 0x75AA
+0xcfde 0x7679
+0xcfdf 0x76C4
+0xcfe0 0x7708
+0xcfe1 0x7703
+0xcfe2 0x7704
+0xcfe3 0x7705
+0xcfe4 0x770A
+0xcfe5 0x76F7
+0xcfe6 0x76FB
+0xcfe7 0x76FA
+0xcfe8 0x77E7
+0xcfe9 0x77E8
+0xcfea 0x7806
+0xcfeb 0x7811
+0xcfec 0x7812
+0xcfed 0x7805
+0xcfee 0x7810
+0xcfef 0x780F
+0xcff0 0x780E
+0xcff1 0x7809
+0xcff2 0x7803
+0xcff3 0x7813
+0xcff4 0x794A
+0xcff5 0x794C
+0xcff6 0x794B
+0xcff7 0x7945
+0xcff8 0x7944
+0xcff9 0x79D5
+0xcffa 0x79CD
+0xcffb 0x79CF
+0xcffc 0x79D6
+0xcffd 0x79CE
+0xcffe 0x7A80
+0xd040 0x7A7E
+0xd041 0x7AD1
+0xd042 0x7B00
+0xd043 0x7B01
+0xd044 0x7C7A
+0xd045 0x7C78
+0xd046 0x7C79
+0xd047 0x7C7F
+0xd048 0x7C80
+0xd049 0x7C81
+0xd04a 0x7D03
+0xd04b 0x7D08
+0xd04c 0x7D01
+0xd04d 0x7F58
+0xd04e 0x7F91
+0xd04f 0x7F8D
+0xd050 0x7FBE
+0xd051 0x8007
+0xd052 0x800E
+0xd053 0x800F
+0xd054 0x8014
+0xd055 0x8037
+0xd056 0x80D8
+0xd057 0x80C7
+0xd058 0x80E0
+0xd059 0x80D1
+0xd05a 0x80C8
+0xd05b 0x80C2
+0xd05c 0x80D0
+0xd05d 0x80C5
+0xd05e 0x80E3
+0xd05f 0x80D9
+0xd060 0x80DC
+0xd061 0x80CA
+0xd062 0x80D5
+0xd063 0x80C9
+0xd064 0x80CF
+0xd065 0x80D7
+0xd066 0x80E6
+0xd067 0x80CD
+0xd068 0x81FF
+0xd069 0x8221
+0xd06a 0x8294
+0xd06b 0x82D9
+0xd06c 0x82FE
+0xd06d 0x82F9
+0xd06e 0x8307
+0xd06f 0x82E8
+0xd070 0x8300
+0xd071 0x82D5
+0xd072 0x833A
+0xd073 0x82EB
+0xd074 0x82D6
+0xd075 0x82F4
+0xd076 0x82EC
+0xd077 0x82E1
+0xd078 0x82F2
+0xd079 0x82F5
+0xd07a 0x830C
+0xd07b 0x82FB
+0xd07c 0x82F6
+0xd07d 0x82F0
+0xd07e 0x82EA
+0xd0a1 0x82E4
+0xd0a2 0x82E0
+0xd0a3 0x82FA
+0xd0a4 0x82F3
+0xd0a5 0x82ED
+0xd0a6 0x8677
+0xd0a7 0x8674
+0xd0a8 0x867C
+0xd0a9 0x8673
+0xd0aa 0x8841
+0xd0ab 0x884E
+0xd0ac 0x8867
+0xd0ad 0x886A
+0xd0ae 0x8869
+0xd0af 0x89D3
+0xd0b0 0x8A04
+0xd0b1 0x8A07
+0xd0b2 0x8D72
+0xd0b3 0x8FE3
+0xd0b4 0x8FE1
+0xd0b5 0x8FEE
+0xd0b6 0x8FE0
+0xd0b7 0x90F1
+0xd0b8 0x90BD
+0xd0b9 0x90BF
+0xd0ba 0x90D5
+0xd0bb 0x90C5
+0xd0bc 0x90BE
+0xd0bd 0x90C7
+0xd0be 0x90CB
+0xd0bf 0x90C8
+0xd0c0 0x91D4
+0xd0c1 0x91D3
+0xd0c2 0x9654
+0xd0c3 0x964F
+0xd0c4 0x9651
+0xd0c5 0x9653
+0xd0c6 0x964A
+0xd0c7 0x964E
+0xd0c8 0x501E
+0xd0c9 0x5005
+0xd0ca 0x5007
+0xd0cb 0x5013
+0xd0cc 0x5022
+0xd0cd 0x5030
+0xd0ce 0x501B
+0xd0cf 0x4FF5
+0xd0d0 0x4FF4
+0xd0d1 0x5033
+0xd0d2 0x5037
+0xd0d3 0x502C
+0xd0d4 0x4FF6
+0xd0d5 0x4FF7
+0xd0d6 0x5017
+0xd0d7 0x501C
+0xd0d8 0x5020
+0xd0d9 0x5027
+0xd0da 0x5035
+0xd0db 0x502F
+0xd0dc 0x5031
+0xd0dd 0x500E
+0xd0de 0x515A
+0xd0df 0x5194
+0xd0e0 0x5193
+0xd0e1 0x51CA
+0xd0e2 0x51C4
+0xd0e3 0x51C5
+0xd0e4 0x51C8
+0xd0e5 0x51CE
+0xd0e6 0x5261
+0xd0e7 0x525A
+0xd0e8 0x5252
+0xd0e9 0x525E
+0xd0ea 0x525F
+0xd0eb 0x5255
+0xd0ec 0x5262
+0xd0ed 0x52CD
+0xd0ee 0x530E
+0xd0ef 0x539E
+0xd0f0 0x5526
+0xd0f1 0x54E2
+0xd0f2 0x5517
+0xd0f3 0x5512
+0xd0f4 0x54E7
+0xd0f5 0x54F3
+0xd0f6 0x54E4
+0xd0f7 0x551A
+0xd0f8 0x54FF
+0xd0f9 0x5504
+0xd0fa 0x5508
+0xd0fb 0x54EB
+0xd0fc 0x5511
+0xd0fd 0x5505
+0xd0fe 0x54F1
+0xd140 0x550A
+0xd141 0x54FB
+0xd142 0x54F7
+0xd143 0x54F8
+0xd144 0x54E0
+0xd145 0x550E
+0xd146 0x5503
+0xd147 0x550B
+0xd148 0x5701
+0xd149 0x5702
+0xd14a 0x57CC
+0xd14b 0x5832
+0xd14c 0x57D5
+0xd14d 0x57D2
+0xd14e 0x57BA
+0xd14f 0x57C6
+0xd150 0x57BD
+0xd151 0x57BC
+0xd152 0x57B8
+0xd153 0x57B6
+0xd154 0x57BF
+0xd155 0x57C7
+0xd156 0x57D0
+0xd157 0x57B9
+0xd158 0x57C1
+0xd159 0x590E
+0xd15a 0x594A
+0xd15b 0x5A19
+0xd15c 0x5A16
+0xd15d 0x5A2D
+0xd15e 0x5A2E
+0xd15f 0x5A15
+0xd160 0x5A0F
+0xd161 0x5A17
+0xd162 0x5A0A
+0xd163 0x5A1E
+0xd164 0x5A33
+0xd165 0x5B6C
+0xd166 0x5BA7
+0xd167 0x5BAD
+0xd168 0x5BAC
+0xd169 0x5C03
+0xd16a 0x5C56
+0xd16b 0x5C54
+0xd16c 0x5CEC
+0xd16d 0x5CFF
+0xd16e 0x5CEE
+0xd16f 0x5CF1
+0xd170 0x5CF7
+0xd171 0x5D00
+0xd172 0x5CF9
+0xd173 0x5E29
+0xd174 0x5E28
+0xd175 0x5EA8
+0xd176 0x5EAE
+0xd177 0x5EAA
+0xd178 0x5EAC
+0xd179 0x5F33
+0xd17a 0x5F30
+0xd17b 0x5F67
+0xd17c 0x605D
+0xd17d 0x605A
+0xd17e 0x6067
+0xd1a1 0x6041
+0xd1a2 0x60A2
+0xd1a3 0x6088
+0xd1a4 0x6080
+0xd1a5 0x6092
+0xd1a6 0x6081
+0xd1a7 0x609D
+0xd1a8 0x6083
+0xd1a9 0x6095
+0xd1aa 0x609B
+0xd1ab 0x6097
+0xd1ac 0x6087
+0xd1ad 0x609C
+0xd1ae 0x608E
+0xd1af 0x6219
+0xd1b0 0x6246
+0xd1b1 0x62F2
+0xd1b2 0x6310
+0xd1b3 0x6356
+0xd1b4 0x632C
+0xd1b5 0x6344
+0xd1b6 0x6345
+0xd1b7 0x6336
+0xd1b8 0x6343
+0xd1b9 0x63E4
+0xd1ba 0x6339
+0xd1bb 0x634B
+0xd1bc 0x634A
+0xd1bd 0x633C
+0xd1be 0x6329
+0xd1bf 0x6341
+0xd1c0 0x6334
+0xd1c1 0x6358
+0xd1c2 0x6354
+0xd1c3 0x6359
+0xd1c4 0x632D
+0xd1c5 0x6347
+0xd1c6 0x6333
+0xd1c7 0x635A
+0xd1c8 0x6351
+0xd1c9 0x6338
+0xd1ca 0x6357
+0xd1cb 0x6340
+0xd1cc 0x6348
+0xd1cd 0x654A
+0xd1ce 0x6546
+0xd1cf 0x65C6
+0xd1d0 0x65C3
+0xd1d1 0x65C4
+0xd1d2 0x65C2
+0xd1d3 0x664A
+0xd1d4 0x665F
+0xd1d5 0x6647
+0xd1d6 0x6651
+0xd1d7 0x6712
+0xd1d8 0x6713
+0xd1d9 0x681F
+0xd1da 0x681A
+0xd1db 0x6849
+0xd1dc 0x6832
+0xd1dd 0x6833
+0xd1de 0x683B
+0xd1df 0x684B
+0xd1e0 0x684F
+0xd1e1 0x6816
+0xd1e2 0x6831
+0xd1e3 0x681C
+0xd1e4 0x6835
+0xd1e5 0x682B
+0xd1e6 0x682D
+0xd1e7 0x682F
+0xd1e8 0x684E
+0xd1e9 0x6844
+0xd1ea 0x6834
+0xd1eb 0x681D
+0xd1ec 0x6812
+0xd1ed 0x6814
+0xd1ee 0x6826
+0xd1ef 0x6828
+0xd1f0 0x682E
+0xd1f1 0x684D
+0xd1f2 0x683A
+0xd1f3 0x6825
+0xd1f4 0x6820
+0xd1f5 0x6B2C
+0xd1f6 0x6B2F
+0xd1f7 0x6B2D
+0xd1f8 0x6B31
+0xd1f9 0x6B34
+0xd1fa 0x6B6D
+0xd1fb 0x8082
+0xd1fc 0x6B88
+0xd1fd 0x6BE6
+0xd1fe 0x6BE4
+0xd240 0x6BE8
+0xd241 0x6BE3
+0xd242 0x6BE2
+0xd243 0x6BE7
+0xd244 0x6C25
+0xd245 0x6D7A
+0xd246 0x6D63
+0xd247 0x6D64
+0xd248 0x6D76
+0xd249 0x6D0D
+0xd24a 0x6D61
+0xd24b 0x6D92
+0xd24c 0x6D58
+0xd24d 0x6D62
+0xd24e 0x6D6D
+0xd24f 0x6D6F
+0xd250 0x6D91
+0xd251 0x6D8D
+0xd252 0x6DEF
+0xd253 0x6D7F
+0xd254 0x6D86
+0xd255 0x6D5E
+0xd256 0x6D67
+0xd257 0x6D60
+0xd258 0x6D97
+0xd259 0x6D70
+0xd25a 0x6D7C
+0xd25b 0x6D5F
+0xd25c 0x6D82
+0xd25d 0x6D98
+0xd25e 0x6D2F
+0xd25f 0x6D68
+0xd260 0x6D8B
+0xd261 0x6D7E
+0xd262 0x6D80
+0xd263 0x6D84
+0xd264 0x6D16
+0xd265 0x6D83
+0xd266 0x6D7B
+0xd267 0x6D7D
+0xd268 0x6D75
+0xd269 0x6D90
+0xd26a 0x70DC
+0xd26b 0x70D3
+0xd26c 0x70D1
+0xd26d 0x70DD
+0xd26e 0x70CB
+0xd26f 0x7F39
+0xd270 0x70E2
+0xd271 0x70D7
+0xd272 0x70D2
+0xd273 0x70DE
+0xd274 0x70E0
+0xd275 0x70D4
+0xd276 0x70CD
+0xd277 0x70C5
+0xd278 0x70C6
+0xd279 0x70C7
+0xd27a 0x70DA
+0xd27b 0x70CE
+0xd27c 0x70E1
+0xd27d 0x7242
+0xd27e 0x7278
+0xd2a1 0x7277
+0xd2a2 0x7276
+0xd2a3 0x7300
+0xd2a4 0x72FA
+0xd2a5 0x72F4
+0xd2a6 0x72FE
+0xd2a7 0x72F6
+0xd2a8 0x72F3
+0xd2a9 0x72FB
+0xd2aa 0x7301
+0xd2ab 0x73D3
+0xd2ac 0x73D9
+0xd2ad 0x73E5
+0xd2ae 0x73D6
+0xd2af 0x73BC
+0xd2b0 0x73E7
+0xd2b1 0x73E3
+0xd2b2 0x73E9
+0xd2b3 0x73DC
+0xd2b4 0x73D2
+0xd2b5 0x73DB
+0xd2b6 0x73D4
+0xd2b7 0x73DD
+0xd2b8 0x73DA
+0xd2b9 0x73D7
+0xd2ba 0x73D8
+0xd2bb 0x73E8
+0xd2bc 0x74DE
+0xd2bd 0x74DF
+0xd2be 0x74F4
+0xd2bf 0x74F5
+0xd2c0 0x7521
+0xd2c1 0x755B
+0xd2c2 0x755F
+0xd2c3 0x75B0
+0xd2c4 0x75C1
+0xd2c5 0x75BB
+0xd2c6 0x75C4
+0xd2c7 0x75C0
+0xd2c8 0x75BF
+0xd2c9 0x75B6
+0xd2ca 0x75BA
+0xd2cb 0x768A
+0xd2cc 0x76C9
+0xd2cd 0x771D
+0xd2ce 0x771B
+0xd2cf 0x7710
+0xd2d0 0x7713
+0xd2d1 0x7712
+0xd2d2 0x7723
+0xd2d3 0x7711
+0xd2d4 0x7715
+0xd2d5 0x7719
+0xd2d6 0x771A
+0xd2d7 0x7722
+0xd2d8 0x7727
+0xd2d9 0x7823
+0xd2da 0x782C
+0xd2db 0x7822
+0xd2dc 0x7835
+0xd2dd 0x782F
+0xd2de 0x7828
+0xd2df 0x782E
+0xd2e0 0x782B
+0xd2e1 0x7821
+0xd2e2 0x7829
+0xd2e3 0x7833
+0xd2e4 0x782A
+0xd2e5 0x7831
+0xd2e6 0x7954
+0xd2e7 0x795B
+0xd2e8 0x794F
+0xd2e9 0x795C
+0xd2ea 0x7953
+0xd2eb 0x7952
+0xd2ec 0x7951
+0xd2ed 0x79EB
+0xd2ee 0x79EC
+0xd2ef 0x79E0
+0xd2f0 0x79EE
+0xd2f1 0x79ED
+0xd2f2 0x79EA
+0xd2f3 0x79DC
+0xd2f4 0x79DE
+0xd2f5 0x79DD
+0xd2f6 0x7A86
+0xd2f7 0x7A89
+0xd2f8 0x7A85
+0xd2f9 0x7A8B
+0xd2fa 0x7A8C
+0xd2fb 0x7A8A
+0xd2fc 0x7A87
+0xd2fd 0x7AD8
+0xd2fe 0x7B10
+0xd340 0x7B04
+0xd341 0x7B13
+0xd342 0x7B05
+0xd343 0x7B0F
+0xd344 0x7B08
+0xd345 0x7B0A
+0xd346 0x7B0E
+0xd347 0x7B09
+0xd348 0x7B12
+0xd349 0x7C84
+0xd34a 0x7C91
+0xd34b 0x7C8A
+0xd34c 0x7C8C
+0xd34d 0x7C88
+0xd34e 0x7C8D
+0xd34f 0x7C85
+0xd350 0x7D1E
+0xd351 0x7D1D
+0xd352 0x7D11
+0xd353 0x7D0E
+0xd354 0x7D18
+0xd355 0x7D16
+0xd356 0x7D13
+0xd357 0x7D1F
+0xd358 0x7D12
+0xd359 0x7D0F
+0xd35a 0x7D0C
+0xd35b 0x7F5C
+0xd35c 0x7F61
+0xd35d 0x7F5E
+0xd35e 0x7F60
+0xd35f 0x7F5D
+0xd360 0x7F5B
+0xd361 0x7F96
+0xd362 0x7F92
+0xd363 0x7FC3
+0xd364 0x7FC2
+0xd365 0x7FC0
+0xd366 0x8016
+0xd367 0x803E
+0xd368 0x8039
+0xd369 0x80FA
+0xd36a 0x80F2
+0xd36b 0x80F9
+0xd36c 0x80F5
+0xd36d 0x8101
+0xd36e 0x80FB
+0xd36f 0x8100
+0xd370 0x8201
+0xd371 0x822F
+0xd372 0x8225
+0xd373 0x8333
+0xd374 0x832D
+0xd375 0x8344
+0xd376 0x8319
+0xd377 0x8351
+0xd378 0x8325
+0xd379 0x8356
+0xd37a 0x833F
+0xd37b 0x8341
+0xd37c 0x8326
+0xd37d 0x831C
+0xd37e 0x8322
+0xd3a1 0x8342
+0xd3a2 0x834E
+0xd3a3 0x831B
+0xd3a4 0x832A
+0xd3a5 0x8308
+0xd3a6 0x833C
+0xd3a7 0x834D
+0xd3a8 0x8316
+0xd3a9 0x8324
+0xd3aa 0x8320
+0xd3ab 0x8337
+0xd3ac 0x832F
+0xd3ad 0x8329
+0xd3ae 0x8347
+0xd3af 0x8345
+0xd3b0 0x834C
+0xd3b1 0x8353
+0xd3b2 0x831E
+0xd3b3 0x832C
+0xd3b4 0x834B
+0xd3b5 0x8327
+0xd3b6 0x8348
+0xd3b7 0x8653
+0xd3b8 0x8652
+0xd3b9 0x86A2
+0xd3ba 0x86A8
+0xd3bb 0x8696
+0xd3bc 0x868D
+0xd3bd 0x8691
+0xd3be 0x869E
+0xd3bf 0x8687
+0xd3c0 0x8697
+0xd3c1 0x8686
+0xd3c2 0x868B
+0xd3c3 0x869A
+0xd3c4 0x8685
+0xd3c5 0x86A5
+0xd3c6 0x8699
+0xd3c7 0x86A1
+0xd3c8 0x86A7
+0xd3c9 0x8695
+0xd3ca 0x8698
+0xd3cb 0x868E
+0xd3cc 0x869D
+0xd3cd 0x8690
+0xd3ce 0x8694
+0xd3cf 0x8843
+0xd3d0 0x8844
+0xd3d1 0x886D
+0xd3d2 0x8875
+0xd3d3 0x8876
+0xd3d4 0x8872
+0xd3d5 0x8880
+0xd3d6 0x8871
+0xd3d7 0x887F
+0xd3d8 0x886F
+0xd3d9 0x8883
+0xd3da 0x887E
+0xd3db 0x8874
+0xd3dc 0x887C
+0xd3dd 0x8A12
+0xd3de 0x8C47
+0xd3df 0x8C57
+0xd3e0 0x8C7B
+0xd3e1 0x8CA4
+0xd3e2 0x8CA3
+0xd3e3 0x8D76
+0xd3e4 0x8D78
+0xd3e5 0x8DB5
+0xd3e6 0x8DB7
+0xd3e7 0x8DB6
+0xd3e8 0x8ED1
+0xd3e9 0x8ED3
+0xd3ea 0x8FFE
+0xd3eb 0x8FF5
+0xd3ec 0x9002
+0xd3ed 0x8FFF
+0xd3ee 0x8FFB
+0xd3ef 0x9004
+0xd3f0 0x8FFC
+0xd3f1 0x8FF6
+0xd3f2 0x90D6
+0xd3f3 0x90E0
+0xd3f4 0x90D9
+0xd3f5 0x90DA
+0xd3f6 0x90E3
+0xd3f7 0x90DF
+0xd3f8 0x90E5
+0xd3f9 0x90D8
+0xd3fa 0x90DB
+0xd3fb 0x90D7
+0xd3fc 0x90DC
+0xd3fd 0x90E4
+0xd3fe 0x9150
+0xd440 0x914E
+0xd441 0x914F
+0xd442 0x91D5
+0xd443 0x91E2
+0xd444 0x91DA
+0xd445 0x965C
+0xd446 0x965F
+0xd447 0x96BC
+0xd448 0x98E3
+0xd449 0x9ADF
+0xd44a 0x9B2F
+0xd44b 0x4E7F
+0xd44c 0x5070
+0xd44d 0x506A
+0xd44e 0x5061
+0xd44f 0x505E
+0xd450 0x5060
+0xd451 0x5053
+0xd452 0x504B
+0xd453 0x505D
+0xd454 0x5072
+0xd455 0x5048
+0xd456 0x504D
+0xd457 0x5041
+0xd458 0x505B
+0xd459 0x504A
+0xd45a 0x5062
+0xd45b 0x5015
+0xd45c 0x5045
+0xd45d 0x505F
+0xd45e 0x5069
+0xd45f 0x506B
+0xd460 0x5063
+0xd461 0x5064
+0xd462 0x5046
+0xd463 0x5040
+0xd464 0x506E
+0xd465 0x5073
+0xd466 0x5057
+0xd467 0x5051
+0xd468 0x51D0
+0xd469 0x526B
+0xd46a 0x526D
+0xd46b 0x526C
+0xd46c 0x526E
+0xd46d 0x52D6
+0xd46e 0x52D3
+0xd46f 0x532D
+0xd470 0x539C
+0xd471 0x5575
+0xd472 0x5576
+0xd473 0x553C
+0xd474 0x554D
+0xd475 0x5550
+0xd476 0x5534
+0xd477 0x552A
+0xd478 0x5551
+0xd479 0x5562
+0xd47a 0x5536
+0xd47b 0x5535
+0xd47c 0x5530
+0xd47d 0x5552
+0xd47e 0x5545
+0xd4a1 0x550C
+0xd4a2 0x5532
+0xd4a3 0x5565
+0xd4a4 0x554E
+0xd4a5 0x5539
+0xd4a6 0x5548
+0xd4a7 0x552D
+0xd4a8 0x553B
+0xd4a9 0x5540
+0xd4aa 0x554B
+0xd4ab 0x570A
+0xd4ac 0x5707
+0xd4ad 0x57FB
+0xd4ae 0x5814
+0xd4af 0x57E2
+0xd4b0 0x57F6
+0xd4b1 0x57DC
+0xd4b2 0x57F4
+0xd4b3 0x5800
+0xd4b4 0x57ED
+0xd4b5 0x57FD
+0xd4b6 0x5808
+0xd4b7 0x57F8
+0xd4b8 0x580B
+0xd4b9 0x57F3
+0xd4ba 0x57CF
+0xd4bb 0x5807
+0xd4bc 0x57EE
+0xd4bd 0x57E3
+0xd4be 0x57F2
+0xd4bf 0x57E5
+0xd4c0 0x57EC
+0xd4c1 0x57E1
+0xd4c2 0x580E
+0xd4c3 0x57FC
+0xd4c4 0x5810
+0xd4c5 0x57E7
+0xd4c6 0x5801
+0xd4c7 0x580C
+0xd4c8 0x57F1
+0xd4c9 0x57E9
+0xd4ca 0x57F0
+0xd4cb 0x580D
+0xd4cc 0x5804
+0xd4cd 0x595C
+0xd4ce 0x5A60
+0xd4cf 0x5A58
+0xd4d0 0x5A55
+0xd4d1 0x5A67
+0xd4d2 0x5A5E
+0xd4d3 0x5A38
+0xd4d4 0x5A35
+0xd4d5 0x5A6D
+0xd4d6 0x5A50
+0xd4d7 0x5A5F
+0xd4d8 0x5A65
+0xd4d9 0x5A6C
+0xd4da 0x5A53
+0xd4db 0x5A64
+0xd4dc 0x5A57
+0xd4dd 0x5A43
+0xd4de 0x5A5D
+0xd4df 0x5A52
+0xd4e0 0x5A44
+0xd4e1 0x5A5B
+0xd4e2 0x5A48
+0xd4e3 0x5A8E
+0xd4e4 0x5A3E
+0xd4e5 0x5A4D
+0xd4e6 0x5A39
+0xd4e7 0x5A4C
+0xd4e8 0x5A70
+0xd4e9 0x5A69
+0xd4ea 0x5A47
+0xd4eb 0x5A51
+0xd4ec 0x5A56
+0xd4ed 0x5A42
+0xd4ee 0x5A5C
+0xd4ef 0x5B72
+0xd4f0 0x5B6E
+0xd4f1 0x5BC1
+0xd4f2 0x5BC0
+0xd4f3 0x5C59
+0xd4f4 0x5D1E
+0xd4f5 0x5D0B
+0xd4f6 0x5D1D
+0xd4f7 0x5D1A
+0xd4f8 0x5D20
+0xd4f9 0x5D0C
+0xd4fa 0x5D28
+0xd4fb 0x5D0D
+0xd4fc 0x5D26
+0xd4fd 0x5D25
+0xd4fe 0x5D0F
+0xd540 0x5D30
+0xd541 0x5D12
+0xd542 0x5D23
+0xd543 0x5D1F
+0xd544 0x5D2E
+0xd545 0x5E3E
+0xd546 0x5E34
+0xd547 0x5EB1
+0xd548 0x5EB4
+0xd549 0x5EB9
+0xd54a 0x5EB2
+0xd54b 0x5EB3
+0xd54c 0x5F36
+0xd54d 0x5F38
+0xd54e 0x5F9B
+0xd54f 0x5F96
+0xd550 0x5F9F
+0xd551 0x608A
+0xd552 0x6090
+0xd553 0x6086
+0xd554 0x60BE
+0xd555 0x60B0
+0xd556 0x60BA
+0xd557 0x60D3
+0xd558 0x60D4
+0xd559 0x60CF
+0xd55a 0x60E4
+0xd55b 0x60D9
+0xd55c 0x60DD
+0xd55d 0x60C8
+0xd55e 0x60B1
+0xd55f 0x60DB
+0xd560 0x60B7
+0xd561 0x60CA
+0xd562 0x60BF
+0xd563 0x60C3
+0xd564 0x60CD
+0xd565 0x60C0
+0xd566 0x6332
+0xd567 0x6365
+0xd568 0x638A
+0xd569 0x6382
+0xd56a 0x637D
+0xd56b 0x63BD
+0xd56c 0x639E
+0xd56d 0x63AD
+0xd56e 0x639D
+0xd56f 0x6397
+0xd570 0x63AB
+0xd571 0x638E
+0xd572 0x636F
+0xd573 0x6387
+0xd574 0x6390
+0xd575 0x636E
+0xd576 0x63AF
+0xd577 0x6375
+0xd578 0x639C
+0xd579 0x636D
+0xd57a 0x63AE
+0xd57b 0x637C
+0xd57c 0x63A4
+0xd57d 0x633B
+0xd57e 0x639F
+0xd5a1 0x6378
+0xd5a2 0x6385
+0xd5a3 0x6381
+0xd5a4 0x6391
+0xd5a5 0x638D
+0xd5a6 0x6370
+0xd5a7 0x6553
+0xd5a8 0x65CD
+0xd5a9 0x6665
+0xd5aa 0x6661
+0xd5ab 0x665B
+0xd5ac 0x6659
+0xd5ad 0x665C
+0xd5ae 0x6662
+0xd5af 0x6718
+0xd5b0 0x6879
+0xd5b1 0x6887
+0xd5b2 0x6890
+0xd5b3 0x689C
+0xd5b4 0x686D
+0xd5b5 0x686E
+0xd5b6 0x68AE
+0xd5b7 0x68AB
+0xd5b8 0x6956
+0xd5b9 0x686F
+0xd5ba 0x68A3
+0xd5bb 0x68AC
+0xd5bc 0x68A9
+0xd5bd 0x6875
+0xd5be 0x6874
+0xd5bf 0x68B2
+0xd5c0 0x688F
+0xd5c1 0x6877
+0xd5c2 0x6892
+0xd5c3 0x687C
+0xd5c4 0x686B
+0xd5c5 0x6872
+0xd5c6 0x68AA
+0xd5c7 0x6880
+0xd5c8 0x6871
+0xd5c9 0x687E
+0xd5ca 0x689B
+0xd5cb 0x6896
+0xd5cc 0x688B
+0xd5cd 0x68A0
+0xd5ce 0x6889
+0xd5cf 0x68A4
+0xd5d0 0x6878
+0xd5d1 0x687B
+0xd5d2 0x6891
+0xd5d3 0x688C
+0xd5d4 0x688A
+0xd5d5 0x687D
+0xd5d6 0x6B36
+0xd5d7 0x6B33
+0xd5d8 0x6B37
+0xd5d9 0x6B38
+0xd5da 0x6B91
+0xd5db 0x6B8F
+0xd5dc 0x6B8D
+0xd5dd 0x6B8E
+0xd5de 0x6B8C
+0xd5df 0x6C2A
+0xd5e0 0x6DC0
+0xd5e1 0x6DAB
+0xd5e2 0x6DB4
+0xd5e3 0x6DB3
+0xd5e4 0x6E74
+0xd5e5 0x6DAC
+0xd5e6 0x6DE9
+0xd5e7 0x6DE2
+0xd5e8 0x6DB7
+0xd5e9 0x6DF6
+0xd5ea 0x6DD4
+0xd5eb 0x6E00
+0xd5ec 0x6DC8
+0xd5ed 0x6DE0
+0xd5ee 0x6DDF
+0xd5ef 0x6DD6
+0xd5f0 0x6DBE
+0xd5f1 0x6DE5
+0xd5f2 0x6DDC
+0xd5f3 0x6DDD
+0xd5f4 0x6DDB
+0xd5f5 0x6DF4
+0xd5f6 0x6DCA
+0xd5f7 0x6DBD
+0xd5f8 0x6DED
+0xd5f9 0x6DF0
+0xd5fa 0x6DBA
+0xd5fb 0x6DD5
+0xd5fc 0x6DC2
+0xd5fd 0x6DCF
+0xd5fe 0x6DC9
+0xd640 0x6DD0
+0xd641 0x6DF2
+0xd642 0x6DD3
+0xd643 0x6DFD
+0xd644 0x6DD7
+0xd645 0x6DCD
+0xd646 0x6DE3
+0xd647 0x6DBB
+0xd648 0x70FA
+0xd649 0x710D
+0xd64a 0x70F7
+0xd64b 0x7117
+0xd64c 0x70F4
+0xd64d 0x710C
+0xd64e 0x70F0
+0xd64f 0x7104
+0xd650 0x70F3
+0xd651 0x7110
+0xd652 0x70FC
+0xd653 0x70FF
+0xd654 0x7106
+0xd655 0x7113
+0xd656 0x7100
+0xd657 0x70F8
+0xd658 0x70F6
+0xd659 0x710B
+0xd65a 0x7102
+0xd65b 0x710E
+0xd65c 0x727E
+0xd65d 0x727B
+0xd65e 0x727C
+0xd65f 0x727F
+0xd660 0x731D
+0xd661 0x7317
+0xd662 0x7307
+0xd663 0x7311
+0xd664 0x7318
+0xd665 0x730A
+0xd666 0x7308
+0xd667 0x72FF
+0xd668 0x730F
+0xd669 0x731E
+0xd66a 0x7388
+0xd66b 0x73F6
+0xd66c 0x73F8
+0xd66d 0x73F5
+0xd66e 0x7404
+0xd66f 0x7401
+0xd670 0x73FD
+0xd671 0x7407
+0xd672 0x7400
+0xd673 0x73FA
+0xd674 0x73FC
+0xd675 0x73FF
+0xd676 0x740C
+0xd677 0x740B
+0xd678 0x73F4
+0xd679 0x7408
+0xd67a 0x7564
+0xd67b 0x7563
+0xd67c 0x75CE
+0xd67d 0x75D2
+0xd67e 0x75CF
+0xd6a1 0x75CB
+0xd6a2 0x75CC
+0xd6a3 0x75D1
+0xd6a4 0x75D0
+0xd6a5 0x768F
+0xd6a6 0x7689
+0xd6a7 0x76D3
+0xd6a8 0x7739
+0xd6a9 0x772F
+0xd6aa 0x772D
+0xd6ab 0x7731
+0xd6ac 0x7732
+0xd6ad 0x7734
+0xd6ae 0x7733
+0xd6af 0x773D
+0xd6b0 0x7725
+0xd6b1 0x773B
+0xd6b2 0x7735
+0xd6b3 0x7848
+0xd6b4 0x7852
+0xd6b5 0x7849
+0xd6b6 0x784D
+0xd6b7 0x784A
+0xd6b8 0x784C
+0xd6b9 0x7826
+0xd6ba 0x7845
+0xd6bb 0x7850
+0xd6bc 0x7964
+0xd6bd 0x7967
+0xd6be 0x7969
+0xd6bf 0x796A
+0xd6c0 0x7963
+0xd6c1 0x796B
+0xd6c2 0x7961
+0xd6c3 0x79BB
+0xd6c4 0x79FA
+0xd6c5 0x79F8
+0xd6c6 0x79F6
+0xd6c7 0x79F7
+0xd6c8 0x7A8F
+0xd6c9 0x7A94
+0xd6ca 0x7A90
+0xd6cb 0x7B35
+0xd6cc 0x7B47
+0xd6cd 0x7B34
+0xd6ce 0x7B25
+0xd6cf 0x7B30
+0xd6d0 0x7B22
+0xd6d1 0x7B24
+0xd6d2 0x7B33
+0xd6d3 0x7B18
+0xd6d4 0x7B2A
+0xd6d5 0x7B1D
+0xd6d6 0x7B31
+0xd6d7 0x7B2B
+0xd6d8 0x7B2D
+0xd6d9 0x7B2F
+0xd6da 0x7B32
+0xd6db 0x7B38
+0xd6dc 0x7B1A
+0xd6dd 0x7B23
+0xd6de 0x7C94
+0xd6df 0x7C98
+0xd6e0 0x7C96
+0xd6e1 0x7CA3
+0xd6e2 0x7D35
+0xd6e3 0x7D3D
+0xd6e4 0x7D38
+0xd6e5 0x7D36
+0xd6e6 0x7D3A
+0xd6e7 0x7D45
+0xd6e8 0x7D2C
+0xd6e9 0x7D29
+0xd6ea 0x7D41
+0xd6eb 0x7D47
+0xd6ec 0x7D3E
+0xd6ed 0x7D3F
+0xd6ee 0x7D4A
+0xd6ef 0x7D3B
+0xd6f0 0x7D28
+0xd6f1 0x7F63
+0xd6f2 0x7F95
+0xd6f3 0x7F9C
+0xd6f4 0x7F9D
+0xd6f5 0x7F9B
+0xd6f6 0x7FCA
+0xd6f7 0x7FCB
+0xd6f8 0x7FCD
+0xd6f9 0x7FD0
+0xd6fa 0x7FD1
+0xd6fb 0x7FC7
+0xd6fc 0x7FCF
+0xd6fd 0x7FC9
+0xd6fe 0x801F
+0xd740 0x801E
+0xd741 0x801B
+0xd742 0x8047
+0xd743 0x8043
+0xd744 0x8048
+0xd745 0x8118
+0xd746 0x8125
+0xd747 0x8119
+0xd748 0x811B
+0xd749 0x812D
+0xd74a 0x811F
+0xd74b 0x812C
+0xd74c 0x811E
+0xd74d 0x8121
+0xd74e 0x8115
+0xd74f 0x8127
+0xd750 0x811D
+0xd751 0x8122
+0xd752 0x8211
+0xd753 0x8238
+0xd754 0x8233
+0xd755 0x823A
+0xd756 0x8234
+0xd757 0x8232
+0xd758 0x8274
+0xd759 0x8390
+0xd75a 0x83A3
+0xd75b 0x83A8
+0xd75c 0x838D
+0xd75d 0x837A
+0xd75e 0x8373
+0xd75f 0x83A4
+0xd760 0x8374
+0xd761 0x838F
+0xd762 0x8381
+0xd763 0x8395
+0xd764 0x8399
+0xd765 0x8375
+0xd766 0x8394
+0xd767 0x83A9
+0xd768 0x837D
+0xd769 0x8383
+0xd76a 0x838C
+0xd76b 0x839D
+0xd76c 0x839B
+0xd76d 0x83AA
+0xd76e 0x838B
+0xd76f 0x837E
+0xd770 0x83A5
+0xd771 0x83AF
+0xd772 0x8388
+0xd773 0x8397
+0xd774 0x83B0
+0xd775 0x837F
+0xd776 0x83A6
+0xd777 0x8387
+0xd778 0x83AE
+0xd779 0x8376
+0xd77a 0x839A
+0xd77b 0x8659
+0xd77c 0x8656
+0xd77d 0x86BF
+0xd77e 0x86B7
+0xd7a1 0x86C2
+0xd7a2 0x86C1
+0xd7a3 0x86C5
+0xd7a4 0x86BA
+0xd7a5 0x86B0
+0xd7a6 0x86C8
+0xd7a7 0x86B9
+0xd7a8 0x86B3
+0xd7a9 0x86B8
+0xd7aa 0x86CC
+0xd7ab 0x86B4
+0xd7ac 0x86BB
+0xd7ad 0x86BC
+0xd7ae 0x86C3
+0xd7af 0x86BD
+0xd7b0 0x86BE
+0xd7b1 0x8852
+0xd7b2 0x8889
+0xd7b3 0x8895
+0xd7b4 0x88A8
+0xd7b5 0x88A2
+0xd7b6 0x88AA
+0xd7b7 0x889A
+0xd7b8 0x8891
+0xd7b9 0x88A1
+0xd7ba 0x889F
+0xd7bb 0x8898
+0xd7bc 0x88A7
+0xd7bd 0x8899
+0xd7be 0x889B
+0xd7bf 0x8897
+0xd7c0 0x88A4
+0xd7c1 0x88AC
+0xd7c2 0x888C
+0xd7c3 0x8893
+0xd7c4 0x888E
+0xd7c5 0x8982
+0xd7c6 0x89D6
+0xd7c7 0x89D9
+0xd7c8 0x89D5
+0xd7c9 0x8A30
+0xd7ca 0x8A27
+0xd7cb 0x8A2C
+0xd7cc 0x8A1E
+0xd7cd 0x8C39
+0xd7ce 0x8C3B
+0xd7cf 0x8C5C
+0xd7d0 0x8C5D
+0xd7d1 0x8C7D
+0xd7d2 0x8CA5
+0xd7d3 0x8D7D
+0xd7d4 0x8D7B
+0xd7d5 0x8D79
+0xd7d6 0x8DBC
+0xd7d7 0x8DC2
+0xd7d8 0x8DB9
+0xd7d9 0x8DBF
+0xd7da 0x8DC1
+0xd7db 0x8ED8
+0xd7dc 0x8EDE
+0xd7dd 0x8EDD
+0xd7de 0x8EDC
+0xd7df 0x8ED7
+0xd7e0 0x8EE0
+0xd7e1 0x8EE1
+0xd7e2 0x9024
+0xd7e3 0x900B
+0xd7e4 0x9011
+0xd7e5 0x901C
+0xd7e6 0x900C
+0xd7e7 0x9021
+0xd7e8 0x90EF
+0xd7e9 0x90EA
+0xd7ea 0x90F0
+0xd7eb 0x90F4
+0xd7ec 0x90F2
+0xd7ed 0x90F3
+0xd7ee 0x90D4
+0xd7ef 0x90EB
+0xd7f0 0x90EC
+0xd7f1 0x90E9
+0xd7f2 0x9156
+0xd7f3 0x9158
+0xd7f4 0x915A
+0xd7f5 0x9153
+0xd7f6 0x9155
+0xd7f7 0x91EC
+0xd7f8 0x91F4
+0xd7f9 0x91F1
+0xd7fa 0x91F3
+0xd7fb 0x91F8
+0xd7fc 0x91E4
+0xd7fd 0x91F9
+0xd7fe 0x91EA
+0xd840 0x91EB
+0xd841 0x91F7
+0xd842 0x91E8
+0xd843 0x91EE
+0xd844 0x957A
+0xd845 0x9586
+0xd846 0x9588
+0xd847 0x967C
+0xd848 0x966D
+0xd849 0x966B
+0xd84a 0x9671
+0xd84b 0x966F
+0xd84c 0x96BF
+0xd84d 0x976A
+0xd84e 0x9804
+0xd84f 0x98E5
+0xd850 0x9997
+0xd851 0x509B
+0xd852 0x5095
+0xd853 0x5094
+0xd854 0x509E
+0xd855 0x508B
+0xd856 0x50A3
+0xd857 0x5083
+0xd858 0x508C
+0xd859 0x508E
+0xd85a 0x509D
+0xd85b 0x5068
+0xd85c 0x509C
+0xd85d 0x5092
+0xd85e 0x5082
+0xd85f 0x5087
+0xd860 0x515F
+0xd861 0x51D4
+0xd862 0x5312
+0xd863 0x5311
+0xd864 0x53A4
+0xd865 0x53A7
+0xd866 0x5591
+0xd867 0x55A8
+0xd868 0x55A5
+0xd869 0x55AD
+0xd86a 0x5577
+0xd86b 0x5645
+0xd86c 0x55A2
+0xd86d 0x5593
+0xd86e 0x5588
+0xd86f 0x558F
+0xd870 0x55B5
+0xd871 0x5581
+0xd872 0x55A3
+0xd873 0x5592
+0xd874 0x55A4
+0xd875 0x557D
+0xd876 0x558C
+0xd877 0x55A6
+0xd878 0x557F
+0xd879 0x5595
+0xd87a 0x55A1
+0xd87b 0x558E
+0xd87c 0x570C
+0xd87d 0x5829
+0xd87e 0x5837
+0xd8a1 0x5819
+0xd8a2 0x581E
+0xd8a3 0x5827
+0xd8a4 0x5823
+0xd8a5 0x5828
+0xd8a6 0x57F5
+0xd8a7 0x5848
+0xd8a8 0x5825
+0xd8a9 0x581C
+0xd8aa 0x581B
+0xd8ab 0x5833
+0xd8ac 0x583F
+0xd8ad 0x5836
+0xd8ae 0x582E
+0xd8af 0x5839
+0xd8b0 0x5838
+0xd8b1 0x582D
+0xd8b2 0x582C
+0xd8b3 0x583B
+0xd8b4 0x5961
+0xd8b5 0x5AAF
+0xd8b6 0x5A94
+0xd8b7 0x5A9F
+0xd8b8 0x5A7A
+0xd8b9 0x5AA2
+0xd8ba 0x5A9E
+0xd8bb 0x5A78
+0xd8bc 0x5AA6
+0xd8bd 0x5A7C
+0xd8be 0x5AA5
+0xd8bf 0x5AAC
+0xd8c0 0x5A95
+0xd8c1 0x5AAE
+0xd8c2 0x5A37
+0xd8c3 0x5A84
+0xd8c4 0x5A8A
+0xd8c5 0x5A97
+0xd8c6 0x5A83
+0xd8c7 0x5A8B
+0xd8c8 0x5AA9
+0xd8c9 0x5A7B
+0xd8ca 0x5A7D
+0xd8cb 0x5A8C
+0xd8cc 0x5A9C
+0xd8cd 0x5A8F
+0xd8ce 0x5A93
+0xd8cf 0x5A9D
+0xd8d0 0x5BEA
+0xd8d1 0x5BCD
+0xd8d2 0x5BCB
+0xd8d3 0x5BD4
+0xd8d4 0x5BD1
+0xd8d5 0x5BCA
+0xd8d6 0x5BCE
+0xd8d7 0x5C0C
+0xd8d8 0x5C30
+0xd8d9 0x5D37
+0xd8da 0x5D43
+0xd8db 0x5D6B
+0xd8dc 0x5D41
+0xd8dd 0x5D4B
+0xd8de 0x5D3F
+0xd8df 0x5D35
+0xd8e0 0x5D51
+0xd8e1 0x5D4E
+0xd8e2 0x5D55
+0xd8e3 0x5D33
+0xd8e4 0x5D3A
+0xd8e5 0x5D52
+0xd8e6 0x5D3D
+0xd8e7 0x5D31
+0xd8e8 0x5D59
+0xd8e9 0x5D42
+0xd8ea 0x5D39
+0xd8eb 0x5D49
+0xd8ec 0x5D38
+0xd8ed 0x5D3C
+0xd8ee 0x5D32
+0xd8ef 0x5D36
+0xd8f0 0x5D40
+0xd8f1 0x5D45
+0xd8f2 0x5E44
+0xd8f3 0x5E41
+0xd8f4 0x5F58
+0xd8f5 0x5FA6
+0xd8f6 0x5FA5
+0xd8f7 0x5FAB
+0xd8f8 0x60C9
+0xd8f9 0x60B9
+0xd8fa 0x60CC
+0xd8fb 0x60E2
+0xd8fc 0x60CE
+0xd8fd 0x60C4
+0xd8fe 0x6114
+0xd940 0x60F2
+0xd941 0x610A
+0xd942 0x6116
+0xd943 0x6105
+0xd944 0x60F5
+0xd945 0x6113
+0xd946 0x60F8
+0xd947 0x60FC
+0xd948 0x60FE
+0xd949 0x60C1
+0xd94a 0x6103
+0xd94b 0x6118
+0xd94c 0x611D
+0xd94d 0x6110
+0xd94e 0x60FF
+0xd94f 0x6104
+0xd950 0x610B
+0xd951 0x624A
+0xd952 0x6394
+0xd953 0x63B1
+0xd954 0x63B0
+0xd955 0x63CE
+0xd956 0x63E5
+0xd957 0x63E8
+0xd958 0x63EF
+0xd959 0x63C3
+0xd95a 0x649D
+0xd95b 0x63F3
+0xd95c 0x63CA
+0xd95d 0x63E0
+0xd95e 0x63F6
+0xd95f 0x63D5
+0xd960 0x63F2
+0xd961 0x63F5
+0xd962 0x6461
+0xd963 0x63DF
+0xd964 0x63BE
+0xd965 0x63DD
+0xd966 0x63DC
+0xd967 0x63C4
+0xd968 0x63D8
+0xd969 0x63D3
+0xd96a 0x63C2
+0xd96b 0x63C7
+0xd96c 0x63CC
+0xd96d 0x63CB
+0xd96e 0x63C8
+0xd96f 0x63F0
+0xd970 0x63D7
+0xd971 0x63D9
+0xd972 0x6532
+0xd973 0x6567
+0xd974 0x656A
+0xd975 0x6564
+0xd976 0x655C
+0xd977 0x6568
+0xd978 0x6565
+0xd979 0x658C
+0xd97a 0x659D
+0xd97b 0x659E
+0xd97c 0x65AE
+0xd97d 0x65D0
+0xd97e 0x65D2
+0xd9a1 0x667C
+0xd9a2 0x666C
+0xd9a3 0x667B
+0xd9a4 0x6680
+0xd9a5 0x6671
+0xd9a6 0x6679
+0xd9a7 0x666A
+0xd9a8 0x6672
+0xd9a9 0x6701
+0xd9aa 0x690C
+0xd9ab 0x68D3
+0xd9ac 0x6904
+0xd9ad 0x68DC
+0xd9ae 0x692A
+0xd9af 0x68EC
+0xd9b0 0x68EA
+0xd9b1 0x68F1
+0xd9b2 0x690F
+0xd9b3 0x68D6
+0xd9b4 0x68F7
+0xd9b5 0x68EB
+0xd9b6 0x68E4
+0xd9b7 0x68F6
+0xd9b8 0x6913
+0xd9b9 0x6910
+0xd9ba 0x68F3
+0xd9bb 0x68E1
+0xd9bc 0x6907
+0xd9bd 0x68CC
+0xd9be 0x6908
+0xd9bf 0x6970
+0xd9c0 0x68B4
+0xd9c1 0x6911
+0xd9c2 0x68EF
+0xd9c3 0x68C6
+0xd9c4 0x6914
+0xd9c5 0x68F8
+0xd9c6 0x68D0
+0xd9c7 0x68FD
+0xd9c8 0x68FC
+0xd9c9 0x68E8
+0xd9ca 0x690B
+0xd9cb 0x690A
+0xd9cc 0x6917
+0xd9cd 0x68CE
+0xd9ce 0x68C8
+0xd9cf 0x68DD
+0xd9d0 0x68DE
+0xd9d1 0x68E6
+0xd9d2 0x68F4
+0xd9d3 0x68D1
+0xd9d4 0x6906
+0xd9d5 0x68D4
+0xd9d6 0x68E9
+0xd9d7 0x6915
+0xd9d8 0x6925
+0xd9d9 0x68C7
+0xd9da 0x6B39
+0xd9db 0x6B3B
+0xd9dc 0x6B3F
+0xd9dd 0x6B3C
+0xd9de 0x6B94
+0xd9df 0x6B97
+0xd9e0 0x6B99
+0xd9e1 0x6B95
+0xd9e2 0x6BBD
+0xd9e3 0x6BF0
+0xd9e4 0x6BF2
+0xd9e5 0x6BF3
+0xd9e6 0x6C30
+0xd9e7 0x6DFC
+0xd9e8 0x6E46
+0xd9e9 0x6E47
+0xd9ea 0x6E1F
+0xd9eb 0x6E49
+0xd9ec 0x6E88
+0xd9ed 0x6E3C
+0xd9ee 0x6E3D
+0xd9ef 0x6E45
+0xd9f0 0x6E62
+0xd9f1 0x6E2B
+0xd9f2 0x6E3F
+0xd9f3 0x6E41
+0xd9f4 0x6E5D
+0xd9f5 0x6E73
+0xd9f6 0x6E1C
+0xd9f7 0x6E33
+0xd9f8 0x6E4B
+0xd9f9 0x6E40
+0xd9fa 0x6E51
+0xd9fb 0x6E3B
+0xd9fc 0x6E03
+0xd9fd 0x6E2E
+0xd9fe 0x6E5E
+0xda40 0x6E68
+0xda41 0x6E5C
+0xda42 0x6E61
+0xda43 0x6E31
+0xda44 0x6E28
+0xda45 0x6E60
+0xda46 0x6E71
+0xda47 0x6E6B
+0xda48 0x6E39
+0xda49 0x6E22
+0xda4a 0x6E30
+0xda4b 0x6E53
+0xda4c 0x6E65
+0xda4d 0x6E27
+0xda4e 0x6E78
+0xda4f 0x6E64
+0xda50 0x6E77
+0xda51 0x6E55
+0xda52 0x6E79
+0xda53 0x6E52
+0xda54 0x6E66
+0xda55 0x6E35
+0xda56 0x6E36
+0xda57 0x6E5A
+0xda58 0x7120
+0xda59 0x711E
+0xda5a 0x712F
+0xda5b 0x70FB
+0xda5c 0x712E
+0xda5d 0x7131
+0xda5e 0x7123
+0xda5f 0x7125
+0xda60 0x7122
+0xda61 0x7132
+0xda62 0x711F
+0xda63 0x7128
+0xda64 0x713A
+0xda65 0x711B
+0xda66 0x724B
+0xda67 0x725A
+0xda68 0x7288
+0xda69 0x7289
+0xda6a 0x7286
+0xda6b 0x7285
+0xda6c 0x728B
+0xda6d 0x7312
+0xda6e 0x730B
+0xda6f 0x7330
+0xda70 0x7322
+0xda71 0x7331
+0xda72 0x7333
+0xda73 0x7327
+0xda74 0x7332
+0xda75 0x732D
+0xda76 0x7326
+0xda77 0x7323
+0xda78 0x7335
+0xda79 0x730C
+0xda7a 0x742E
+0xda7b 0x742C
+0xda7c 0x7430
+0xda7d 0x742B
+0xda7e 0x7416
+0xdaa1 0x741A
+0xdaa2 0x7421
+0xdaa3 0x742D
+0xdaa4 0x7431
+0xdaa5 0x7424
+0xdaa6 0x7423
+0xdaa7 0x741D
+0xdaa8 0x7429
+0xdaa9 0x7420
+0xdaaa 0x7432
+0xdaab 0x74FB
+0xdaac 0x752F
+0xdaad 0x756F
+0xdaae 0x756C
+0xdaaf 0x75E7
+0xdab0 0x75DA
+0xdab1 0x75E1
+0xdab2 0x75E6
+0xdab3 0x75DD
+0xdab4 0x75DF
+0xdab5 0x75E4
+0xdab6 0x75D7
+0xdab7 0x7695
+0xdab8 0x7692
+0xdab9 0x76DA
+0xdaba 0x7746
+0xdabb 0x7747
+0xdabc 0x7744
+0xdabd 0x774D
+0xdabe 0x7745
+0xdabf 0x774A
+0xdac0 0x774E
+0xdac1 0x774B
+0xdac2 0x774C
+0xdac3 0x77DE
+0xdac4 0x77EC
+0xdac5 0x7860
+0xdac6 0x7864
+0xdac7 0x7865
+0xdac8 0x785C
+0xdac9 0x786D
+0xdaca 0x7871
+0xdacb 0x786A
+0xdacc 0x786E
+0xdacd 0x7870
+0xdace 0x7869
+0xdacf 0x7868
+0xdad0 0x785E
+0xdad1 0x7862
+0xdad2 0x7974
+0xdad3 0x7973
+0xdad4 0x7972
+0xdad5 0x7970
+0xdad6 0x7A02
+0xdad7 0x7A0A
+0xdad8 0x7A03
+0xdad9 0x7A0C
+0xdada 0x7A04
+0xdadb 0x7A99
+0xdadc 0x7AE6
+0xdadd 0x7AE4
+0xdade 0x7B4A
+0xdadf 0x7B3B
+0xdae0 0x7B44
+0xdae1 0x7B48
+0xdae2 0x7B4C
+0xdae3 0x7B4E
+0xdae4 0x7B40
+0xdae5 0x7B58
+0xdae6 0x7B45
+0xdae7 0x7CA2
+0xdae8 0x7C9E
+0xdae9 0x7CA8
+0xdaea 0x7CA1
+0xdaeb 0x7D58
+0xdaec 0x7D6F
+0xdaed 0x7D63
+0xdaee 0x7D53
+0xdaef 0x7D56
+0xdaf0 0x7D67
+0xdaf1 0x7D6A
+0xdaf2 0x7D4F
+0xdaf3 0x7D6D
+0xdaf4 0x7D5C
+0xdaf5 0x7D6B
+0xdaf6 0x7D52
+0xdaf7 0x7D54
+0xdaf8 0x7D69
+0xdaf9 0x7D51
+0xdafa 0x7D5F
+0xdafb 0x7D4E
+0xdafc 0x7F3E
+0xdafd 0x7F3F
+0xdafe 0x7F65
+0xdb40 0x7F66
+0xdb41 0x7FA2
+0xdb42 0x7FA0
+0xdb43 0x7FA1
+0xdb44 0x7FD7
+0xdb45 0x8051
+0xdb46 0x804F
+0xdb47 0x8050
+0xdb48 0x80FE
+0xdb49 0x80D4
+0xdb4a 0x8143
+0xdb4b 0x814A
+0xdb4c 0x8152
+0xdb4d 0x814F
+0xdb4e 0x8147
+0xdb4f 0x813D
+0xdb50 0x814D
+0xdb51 0x813A
+0xdb52 0x81E6
+0xdb53 0x81EE
+0xdb54 0x81F7
+0xdb55 0x81F8
+0xdb56 0x81F9
+0xdb57 0x8204
+0xdb58 0x823C
+0xdb59 0x823D
+0xdb5a 0x823F
+0xdb5b 0x8275
+0xdb5c 0x833B
+0xdb5d 0x83CF
+0xdb5e 0x83F9
+0xdb5f 0x8423
+0xdb60 0x83C0
+0xdb61 0x83E8
+0xdb62 0x8412
+0xdb63 0x83E7
+0xdb64 0x83E4
+0xdb65 0x83FC
+0xdb66 0x83F6
+0xdb67 0x8410
+0xdb68 0x83C6
+0xdb69 0x83C8
+0xdb6a 0x83EB
+0xdb6b 0x83E3
+0xdb6c 0x83BF
+0xdb6d 0x8401
+0xdb6e 0x83DD
+0xdb6f 0x83E5
+0xdb70 0x83D8
+0xdb71 0x83FF
+0xdb72 0x83E1
+0xdb73 0x83CB
+0xdb74 0x83CE
+0xdb75 0x83D6
+0xdb76 0x83F5
+0xdb77 0x83C9
+0xdb78 0x8409
+0xdb79 0x840F
+0xdb7a 0x83DE
+0xdb7b 0x8411
+0xdb7c 0x8406
+0xdb7d 0x83C2
+0xdb7e 0x83F3
+0xdba1 0x83D5
+0xdba2 0x83FA
+0xdba3 0x83C7
+0xdba4 0x83D1
+0xdba5 0x83EA
+0xdba6 0x8413
+0xdba7 0x83C3
+0xdba8 0x83EC
+0xdba9 0x83EE
+0xdbaa 0x83C4
+0xdbab 0x83FB
+0xdbac 0x83D7
+0xdbad 0x83E2
+0xdbae 0x841B
+0xdbaf 0x83DB
+0xdbb0 0x83FE
+0xdbb1 0x86D8
+0xdbb2 0x86E2
+0xdbb3 0x86E6
+0xdbb4 0x86D3
+0xdbb5 0x86E3
+0xdbb6 0x86DA
+0xdbb7 0x86EA
+0xdbb8 0x86DD
+0xdbb9 0x86EB
+0xdbba 0x86DC
+0xdbbb 0x86EC
+0xdbbc 0x86E9
+0xdbbd 0x86D7
+0xdbbe 0x86E8
+0xdbbf 0x86D1
+0xdbc0 0x8848
+0xdbc1 0x8856
+0xdbc2 0x8855
+0xdbc3 0x88BA
+0xdbc4 0x88D7
+0xdbc5 0x88B9
+0xdbc6 0x88B8
+0xdbc7 0x88C0
+0xdbc8 0x88BE
+0xdbc9 0x88B6
+0xdbca 0x88BC
+0xdbcb 0x88B7
+0xdbcc 0x88BD
+0xdbcd 0x88B2
+0xdbce 0x8901
+0xdbcf 0x88C9
+0xdbd0 0x8995
+0xdbd1 0x8998
+0xdbd2 0x8997
+0xdbd3 0x89DD
+0xdbd4 0x89DA
+0xdbd5 0x89DB
+0xdbd6 0x8A4E
+0xdbd7 0x8A4D
+0xdbd8 0x8A39
+0xdbd9 0x8A59
+0xdbda 0x8A40
+0xdbdb 0x8A57
+0xdbdc 0x8A58
+0xdbdd 0x8A44
+0xdbde 0x8A45
+0xdbdf 0x8A52
+0xdbe0 0x8A48
+0xdbe1 0x8A51
+0xdbe2 0x8A4A
+0xdbe3 0x8A4C
+0xdbe4 0x8A4F
+0xdbe5 0x8C5F
+0xdbe6 0x8C81
+0xdbe7 0x8C80
+0xdbe8 0x8CBA
+0xdbe9 0x8CBE
+0xdbea 0x8CB0
+0xdbeb 0x8CB9
+0xdbec 0x8CB5
+0xdbed 0x8D84
+0xdbee 0x8D80
+0xdbef 0x8D89
+0xdbf0 0x8DD8
+0xdbf1 0x8DD3
+0xdbf2 0x8DCD
+0xdbf3 0x8DC7
+0xdbf4 0x8DD6
+0xdbf5 0x8DDC
+0xdbf6 0x8DCF
+0xdbf7 0x8DD5
+0xdbf8 0x8DD9
+0xdbf9 0x8DC8
+0xdbfa 0x8DD7
+0xdbfb 0x8DC5
+0xdbfc 0x8EEF
+0xdbfd 0x8EF7
+0xdbfe 0x8EFA
+0xdc40 0x8EF9
+0xdc41 0x8EE6
+0xdc42 0x8EEE
+0xdc43 0x8EE5
+0xdc44 0x8EF5
+0xdc45 0x8EE7
+0xdc46 0x8EE8
+0xdc47 0x8EF6
+0xdc48 0x8EEB
+0xdc49 0x8EF1
+0xdc4a 0x8EEC
+0xdc4b 0x8EF4
+0xdc4c 0x8EE9
+0xdc4d 0x902D
+0xdc4e 0x9034
+0xdc4f 0x902F
+0xdc50 0x9106
+0xdc51 0x912C
+0xdc52 0x9104
+0xdc53 0x90FF
+0xdc54 0x90FC
+0xdc55 0x9108
+0xdc56 0x90F9
+0xdc57 0x90FB
+0xdc58 0x9101
+0xdc59 0x9100
+0xdc5a 0x9107
+0xdc5b 0x9105
+0xdc5c 0x9103
+0xdc5d 0x9161
+0xdc5e 0x9164
+0xdc5f 0x915F
+0xdc60 0x9162
+0xdc61 0x9160
+0xdc62 0x9201
+0xdc63 0x920A
+0xdc64 0x9225
+0xdc65 0x9203
+0xdc66 0x921A
+0xdc67 0x9226
+0xdc68 0x920F
+0xdc69 0x920C
+0xdc6a 0x9200
+0xdc6b 0x9212
+0xdc6c 0x91FF
+0xdc6d 0x91FD
+0xdc6e 0x9206
+0xdc6f 0x9204
+0xdc70 0x9227
+0xdc71 0x9202
+0xdc72 0x921C
+0xdc73 0x9224
+0xdc74 0x9219
+0xdc75 0x9217
+0xdc76 0x9205
+0xdc77 0x9216
+0xdc78 0x957B
+0xdc79 0x958D
+0xdc7a 0x958C
+0xdc7b 0x9590
+0xdc7c 0x9687
+0xdc7d 0x967E
+0xdc7e 0x9688
+0xdca1 0x9689
+0xdca2 0x9683
+0xdca3 0x9680
+0xdca4 0x96C2
+0xdca5 0x96C8
+0xdca6 0x96C3
+0xdca7 0x96F1
+0xdca8 0x96F0
+0xdca9 0x976C
+0xdcaa 0x9770
+0xdcab 0x976E
+0xdcac 0x9807
+0xdcad 0x98A9
+0xdcae 0x98EB
+0xdcaf 0x9CE6
+0xdcb0 0x9EF9
+0xdcb1 0x4E83
+0xdcb2 0x4E84
+0xdcb3 0x4EB6
+0xdcb4 0x50BD
+0xdcb5 0x50BF
+0xdcb6 0x50C6
+0xdcb7 0x50AE
+0xdcb8 0x50C4
+0xdcb9 0x50CA
+0xdcba 0x50B4
+0xdcbb 0x50C8
+0xdcbc 0x50C2
+0xdcbd 0x50B0
+0xdcbe 0x50C1
+0xdcbf 0x50BA
+0xdcc0 0x50B1
+0xdcc1 0x50CB
+0xdcc2 0x50C9
+0xdcc3 0x50B6
+0xdcc4 0x50B8
+0xdcc5 0x51D7
+0xdcc6 0x527A
+0xdcc7 0x5278
+0xdcc8 0x527B
+0xdcc9 0x527C
+0xdcca 0x55C3
+0xdccb 0x55DB
+0xdccc 0x55CC
+0xdccd 0x55D0
+0xdcce 0x55CB
+0xdccf 0x55CA
+0xdcd0 0x55DD
+0xdcd1 0x55C0
+0xdcd2 0x55D4
+0xdcd3 0x55C4
+0xdcd4 0x55E9
+0xdcd5 0x55BF
+0xdcd6 0x55D2
+0xdcd7 0x558D
+0xdcd8 0x55CF
+0xdcd9 0x55D5
+0xdcda 0x55E2
+0xdcdb 0x55D6
+0xdcdc 0x55C8
+0xdcdd 0x55F2
+0xdcde 0x55CD
+0xdcdf 0x55D9
+0xdce0 0x55C2
+0xdce1 0x5714
+0xdce2 0x5853
+0xdce3 0x5868
+0xdce4 0x5864
+0xdce5 0x584F
+0xdce6 0x584D
+0xdce7 0x5849
+0xdce8 0x586F
+0xdce9 0x5855
+0xdcea 0x584E
+0xdceb 0x585D
+0xdcec 0x5859
+0xdced 0x5865
+0xdcee 0x585B
+0xdcef 0x583D
+0xdcf0 0x5863
+0xdcf1 0x5871
+0xdcf2 0x58FC
+0xdcf3 0x5AC7
+0xdcf4 0x5AC4
+0xdcf5 0x5ACB
+0xdcf6 0x5ABA
+0xdcf7 0x5AB8
+0xdcf8 0x5AB1
+0xdcf9 0x5AB5
+0xdcfa 0x5AB0
+0xdcfb 0x5ABF
+0xdcfc 0x5AC8
+0xdcfd 0x5ABB
+0xdcfe 0x5AC6
+0xdd40 0x5AB7
+0xdd41 0x5AC0
+0xdd42 0x5ACA
+0xdd43 0x5AB4
+0xdd44 0x5AB6
+0xdd45 0x5ACD
+0xdd46 0x5AB9
+0xdd47 0x5A90
+0xdd48 0x5BD6
+0xdd49 0x5BD8
+0xdd4a 0x5BD9
+0xdd4b 0x5C1F
+0xdd4c 0x5C33
+0xdd4d 0x5D71
+0xdd4e 0x5D63
+0xdd4f 0x5D4A
+0xdd50 0x5D65
+0xdd51 0x5D72
+0xdd52 0x5D6C
+0xdd53 0x5D5E
+0xdd54 0x5D68
+0xdd55 0x5D67
+0xdd56 0x5D62
+0xdd57 0x5DF0
+0xdd58 0x5E4F
+0xdd59 0x5E4E
+0xdd5a 0x5E4A
+0xdd5b 0x5E4D
+0xdd5c 0x5E4B
+0xdd5d 0x5EC5
+0xdd5e 0x5ECC
+0xdd5f 0x5EC6
+0xdd60 0x5ECB
+0xdd61 0x5EC7
+0xdd62 0x5F40
+0xdd63 0x5FAF
+0xdd64 0x5FAD
+0xdd65 0x60F7
+0xdd66 0x6149
+0xdd67 0x614A
+0xdd68 0x612B
+0xdd69 0x6145
+0xdd6a 0x6136
+0xdd6b 0x6132
+0xdd6c 0x612E
+0xdd6d 0x6146
+0xdd6e 0x612F
+0xdd6f 0x614F
+0xdd70 0x6129
+0xdd71 0x6140
+0xdd72 0x6220
+0xdd73 0x9168
+0xdd74 0x6223
+0xdd75 0x6225
+0xdd76 0x6224
+0xdd77 0x63C5
+0xdd78 0x63F1
+0xdd79 0x63EB
+0xdd7a 0x6410
+0xdd7b 0x6412
+0xdd7c 0x6409
+0xdd7d 0x6420
+0xdd7e 0x6424
+0xdda1 0x6433
+0xdda2 0x6443
+0xdda3 0x641F
+0xdda4 0x6415
+0xdda5 0x6418
+0xdda6 0x6439
+0xdda7 0x6437
+0xdda8 0x6422
+0xdda9 0x6423
+0xddaa 0x640C
+0xddab 0x6426
+0xddac 0x6430
+0xddad 0x6428
+0xddae 0x6441
+0xddaf 0x6435
+0xddb0 0x642F
+0xddb1 0x640A
+0xddb2 0x641A
+0xddb3 0x6440
+0xddb4 0x6425
+0xddb5 0x6427
+0xddb6 0x640B
+0xddb7 0x63E7
+0xddb8 0x641B
+0xddb9 0x642E
+0xddba 0x6421
+0xddbb 0x640E
+0xddbc 0x656F
+0xddbd 0x6592
+0xddbe 0x65D3
+0xddbf 0x6686
+0xddc0 0x668C
+0xddc1 0x6695
+0xddc2 0x6690
+0xddc3 0x668B
+0xddc4 0x668A
+0xddc5 0x6699
+0xddc6 0x6694
+0xddc7 0x6678
+0xddc8 0x6720
+0xddc9 0x6966
+0xddca 0x695F
+0xddcb 0x6938
+0xddcc 0x694E
+0xddcd 0x6962
+0xddce 0x6971
+0xddcf 0x693F
+0xddd0 0x6945
+0xddd1 0x696A
+0xddd2 0x6939
+0xddd3 0x6942
+0xddd4 0x6957
+0xddd5 0x6959
+0xddd6 0x697A
+0xddd7 0x6948
+0xddd8 0x6949
+0xddd9 0x6935
+0xddda 0x696C
+0xdddb 0x6933
+0xdddc 0x693D
+0xdddd 0x6965
+0xddde 0x68F0
+0xdddf 0x6978
+0xdde0 0x6934
+0xdde1 0x6969
+0xdde2 0x6940
+0xdde3 0x696F
+0xdde4 0x6944
+0xdde5 0x6976
+0xdde6 0x6958
+0xdde7 0x6941
+0xdde8 0x6974
+0xdde9 0x694C
+0xddea 0x693B
+0xddeb 0x694B
+0xddec 0x6937
+0xdded 0x695C
+0xddee 0x694F
+0xddef 0x6951
+0xddf0 0x6932
+0xddf1 0x6952
+0xddf2 0x692F
+0xddf3 0x697B
+0xddf4 0x693C
+0xddf5 0x6B46
+0xddf6 0x6B45
+0xddf7 0x6B43
+0xddf8 0x6B42
+0xddf9 0x6B48
+0xddfa 0x6B41
+0xddfb 0x6B9B
+0xddfc 0xFA0D
+0xddfd 0x6BFB
+0xddfe 0x6BFC
+0xde40 0x6BF9
+0xde41 0x6BF7
+0xde42 0x6BF8
+0xde43 0x6E9B
+0xde44 0x6ED6
+0xde45 0x6EC8
+0xde46 0x6E8F
+0xde47 0x6EC0
+0xde48 0x6E9F
+0xde49 0x6E93
+0xde4a 0x6E94
+0xde4b 0x6EA0
+0xde4c 0x6EB1
+0xde4d 0x6EB9
+0xde4e 0x6EC6
+0xde4f 0x6ED2
+0xde50 0x6EBD
+0xde51 0x6EC1
+0xde52 0x6E9E
+0xde53 0x6EC9
+0xde54 0x6EB7
+0xde55 0x6EB0
+0xde56 0x6ECD
+0xde57 0x6EA6
+0xde58 0x6ECF
+0xde59 0x6EB2
+0xde5a 0x6EBE
+0xde5b 0x6EC3
+0xde5c 0x6EDC
+0xde5d 0x6ED8
+0xde5e 0x6E99
+0xde5f 0x6E92
+0xde60 0x6E8E
+0xde61 0x6E8D
+0xde62 0x6EA4
+0xde63 0x6EA1
+0xde64 0x6EBF
+0xde65 0x6EB3
+0xde66 0x6ED0
+0xde67 0x6ECA
+0xde68 0x6E97
+0xde69 0x6EAE
+0xde6a 0x6EA3
+0xde6b 0x7147
+0xde6c 0x7154
+0xde6d 0x7152
+0xde6e 0x7163
+0xde6f 0x7160
+0xde70 0x7141
+0xde71 0x715D
+0xde72 0x7162
+0xde73 0x7172
+0xde74 0x7178
+0xde75 0x716A
+0xde76 0x7161
+0xde77 0x7142
+0xde78 0x7158
+0xde79 0x7143
+0xde7a 0x714B
+0xde7b 0x7170
+0xde7c 0x715F
+0xde7d 0x7150
+0xde7e 0x7153
+0xdea1 0x7144
+0xdea2 0x714D
+0xdea3 0x715A
+0xdea4 0x724F
+0xdea5 0x728D
+0xdea6 0x728C
+0xdea7 0x7291
+0xdea8 0x7290
+0xdea9 0x728E
+0xdeaa 0x733C
+0xdeab 0x7342
+0xdeac 0x733B
+0xdead 0x733A
+0xdeae 0x7340
+0xdeaf 0x734A
+0xdeb0 0x7349
+0xdeb1 0x7444
+0xdeb2 0x744A
+0xdeb3 0x744B
+0xdeb4 0x7452
+0xdeb5 0x7451
+0xdeb6 0x7457
+0xdeb7 0x7440
+0xdeb8 0x744F
+0xdeb9 0x7450
+0xdeba 0x744E
+0xdebb 0x7442
+0xdebc 0x7446
+0xdebd 0x744D
+0xdebe 0x7454
+0xdebf 0x74E1
+0xdec0 0x74FF
+0xdec1 0x74FE
+0xdec2 0x74FD
+0xdec3 0x751D
+0xdec4 0x7579
+0xdec5 0x7577
+0xdec6 0x6983
+0xdec7 0x75EF
+0xdec8 0x760F
+0xdec9 0x7603
+0xdeca 0x75F7
+0xdecb 0x75FE
+0xdecc 0x75FC
+0xdecd 0x75F9
+0xdece 0x75F8
+0xdecf 0x7610
+0xded0 0x75FB
+0xded1 0x75F6
+0xded2 0x75ED
+0xded3 0x75F5
+0xded4 0x75FD
+0xded5 0x7699
+0xded6 0x76B5
+0xded7 0x76DD
+0xded8 0x7755
+0xded9 0x775F
+0xdeda 0x7760
+0xdedb 0x7752
+0xdedc 0x7756
+0xdedd 0x775A
+0xdede 0x7769
+0xdedf 0x7767
+0xdee0 0x7754
+0xdee1 0x7759
+0xdee2 0x776D
+0xdee3 0x77E0
+0xdee4 0x7887
+0xdee5 0x789A
+0xdee6 0x7894
+0xdee7 0x788F
+0xdee8 0x7884
+0xdee9 0x7895
+0xdeea 0x7885
+0xdeeb 0x7886
+0xdeec 0x78A1
+0xdeed 0x7883
+0xdeee 0x7879
+0xdeef 0x7899
+0xdef0 0x7880
+0xdef1 0x7896
+0xdef2 0x787B
+0xdef3 0x797C
+0xdef4 0x7982
+0xdef5 0x797D
+0xdef6 0x7979
+0xdef7 0x7A11
+0xdef8 0x7A18
+0xdef9 0x7A19
+0xdefa 0x7A12
+0xdefb 0x7A17
+0xdefc 0x7A15
+0xdefd 0x7A22
+0xdefe 0x7A13
+0xdf40 0x7A1B
+0xdf41 0x7A10
+0xdf42 0x7AA3
+0xdf43 0x7AA2
+0xdf44 0x7A9E
+0xdf45 0x7AEB
+0xdf46 0x7B66
+0xdf47 0x7B64
+0xdf48 0x7B6D
+0xdf49 0x7B74
+0xdf4a 0x7B69
+0xdf4b 0x7B72
+0xdf4c 0x7B65
+0xdf4d 0x7B73
+0xdf4e 0x7B71
+0xdf4f 0x7B70
+0xdf50 0x7B61
+0xdf51 0x7B78
+0xdf52 0x7B76
+0xdf53 0x7B63
+0xdf54 0x7CB2
+0xdf55 0x7CB4
+0xdf56 0x7CAF
+0xdf57 0x7D88
+0xdf58 0x7D86
+0xdf59 0x7D80
+0xdf5a 0x7D8D
+0xdf5b 0x7D7F
+0xdf5c 0x7D85
+0xdf5d 0x7D7A
+0xdf5e 0x7D8E
+0xdf5f 0x7D7B
+0xdf60 0x7D83
+0xdf61 0x7D7C
+0xdf62 0x7D8C
+0xdf63 0x7D94
+0xdf64 0x7D84
+0xdf65 0x7D7D
+0xdf66 0x7D92
+0xdf67 0x7F6D
+0xdf68 0x7F6B
+0xdf69 0x7F67
+0xdf6a 0x7F68
+0xdf6b 0x7F6C
+0xdf6c 0x7FA6
+0xdf6d 0x7FA5
+0xdf6e 0x7FA7
+0xdf6f 0x7FDB
+0xdf70 0x7FDC
+0xdf71 0x8021
+0xdf72 0x8164
+0xdf73 0x8160
+0xdf74 0x8177
+0xdf75 0x815C
+0xdf76 0x8169
+0xdf77 0x815B
+0xdf78 0x8162
+0xdf79 0x8172
+0xdf7a 0x6721
+0xdf7b 0x815E
+0xdf7c 0x8176
+0xdf7d 0x8167
+0xdf7e 0x816F
+0xdfa1 0x8144
+0xdfa2 0x8161
+0xdfa3 0x821D
+0xdfa4 0x8249
+0xdfa5 0x8244
+0xdfa6 0x8240
+0xdfa7 0x8242
+0xdfa8 0x8245
+0xdfa9 0x84F1
+0xdfaa 0x843F
+0xdfab 0x8456
+0xdfac 0x8476
+0xdfad 0x8479
+0xdfae 0x848F
+0xdfaf 0x848D
+0xdfb0 0x8465
+0xdfb1 0x8451
+0xdfb2 0x8440
+0xdfb3 0x8486
+0xdfb4 0x8467
+0xdfb5 0x8430
+0xdfb6 0x844D
+0xdfb7 0x847D
+0xdfb8 0x845A
+0xdfb9 0x8459
+0xdfba 0x8474
+0xdfbb 0x8473
+0xdfbc 0x845D
+0xdfbd 0x8507
+0xdfbe 0x845E
+0xdfbf 0x8437
+0xdfc0 0x843A
+0xdfc1 0x8434
+0xdfc2 0x847A
+0xdfc3 0x8443
+0xdfc4 0x8478
+0xdfc5 0x8432
+0xdfc6 0x8445
+0xdfc7 0x8429
+0xdfc8 0x83D9
+0xdfc9 0x844B
+0xdfca 0x842F
+0xdfcb 0x8442
+0xdfcc 0x842D
+0xdfcd 0x845F
+0xdfce 0x8470
+0xdfcf 0x8439
+0xdfd0 0x844E
+0xdfd1 0x844C
+0xdfd2 0x8452
+0xdfd3 0x846F
+0xdfd4 0x84C5
+0xdfd5 0x848E
+0xdfd6 0x843B
+0xdfd7 0x8447
+0xdfd8 0x8436
+0xdfd9 0x8433
+0xdfda 0x8468
+0xdfdb 0x847E
+0xdfdc 0x8444
+0xdfdd 0x842B
+0xdfde 0x8460
+0xdfdf 0x8454
+0xdfe0 0x846E
+0xdfe1 0x8450
+0xdfe2 0x870B
+0xdfe3 0x8704
+0xdfe4 0x86F7
+0xdfe5 0x870C
+0xdfe6 0x86FA
+0xdfe7 0x86D6
+0xdfe8 0x86F5
+0xdfe9 0x874D
+0xdfea 0x86F8
+0xdfeb 0x870E
+0xdfec 0x8709
+0xdfed 0x8701
+0xdfee 0x86F6
+0xdfef 0x870D
+0xdff0 0x8705
+0xdff1 0x88D6
+0xdff2 0x88CB
+0xdff3 0x88CD
+0xdff4 0x88CE
+0xdff5 0x88DE
+0xdff6 0x88DB
+0xdff7 0x88DA
+0xdff8 0x88CC
+0xdff9 0x88D0
+0xdffa 0x8985
+0xdffb 0x899B
+0xdffc 0x89DF
+0xdffd 0x89E5
+0xdffe 0x89E4
+0xe040 0x89E1
+0xe041 0x89E0
+0xe042 0x89E2
+0xe043 0x89DC
+0xe044 0x89E6
+0xe045 0x8A76
+0xe046 0x8A86
+0xe047 0x8A7F
+0xe048 0x8A61
+0xe049 0x8A3F
+0xe04a 0x8A77
+0xe04b 0x8A82
+0xe04c 0x8A84
+0xe04d 0x8A75
+0xe04e 0x8A83
+0xe04f 0x8A81
+0xe050 0x8A74
+0xe051 0x8A7A
+0xe052 0x8C3C
+0xe053 0x8C4B
+0xe054 0x8C4A
+0xe055 0x8C65
+0xe056 0x8C64
+0xe057 0x8C66
+0xe058 0x8C86
+0xe059 0x8C84
+0xe05a 0x8C85
+0xe05b 0x8CCC
+0xe05c 0x8D68
+0xe05d 0x8D69
+0xe05e 0x8D91
+0xe05f 0x8D8C
+0xe060 0x8D8E
+0xe061 0x8D8F
+0xe062 0x8D8D
+0xe063 0x8D93
+0xe064 0x8D94
+0xe065 0x8D90
+0xe066 0x8D92
+0xe067 0x8DF0
+0xe068 0x8DE0
+0xe069 0x8DEC
+0xe06a 0x8DF1
+0xe06b 0x8DEE
+0xe06c 0x8DD0
+0xe06d 0x8DE9
+0xe06e 0x8DE3
+0xe06f 0x8DE2
+0xe070 0x8DE7
+0xe071 0x8DF2
+0xe072 0x8DEB
+0xe073 0x8DF4
+0xe074 0x8F06
+0xe075 0x8EFF
+0xe076 0x8F01
+0xe077 0x8F00
+0xe078 0x8F05
+0xe079 0x8F07
+0xe07a 0x8F08
+0xe07b 0x8F02
+0xe07c 0x8F0B
+0xe07d 0x9052
+0xe07e 0x903F
+0xe0a1 0x9044
+0xe0a2 0x9049
+0xe0a3 0x903D
+0xe0a4 0x9110
+0xe0a5 0x910D
+0xe0a6 0x910F
+0xe0a7 0x9111
+0xe0a8 0x9116
+0xe0a9 0x9114
+0xe0aa 0x910B
+0xe0ab 0x910E
+0xe0ac 0x916E
+0xe0ad 0x916F
+0xe0ae 0x9248
+0xe0af 0x9252
+0xe0b0 0x9230
+0xe0b1 0x923A
+0xe0b2 0x9266
+0xe0b3 0x9233
+0xe0b4 0x9265
+0xe0b5 0x925E
+0xe0b6 0x9283
+0xe0b7 0x922E
+0xe0b8 0x924A
+0xe0b9 0x9246
+0xe0ba 0x926D
+0xe0bb 0x926C
+0xe0bc 0x924F
+0xe0bd 0x9260
+0xe0be 0x9267
+0xe0bf 0x926F
+0xe0c0 0x9236
+0xe0c1 0x9261
+0xe0c2 0x9270
+0xe0c3 0x9231
+0xe0c4 0x9254
+0xe0c5 0x9263
+0xe0c6 0x9250
+0xe0c7 0x9272
+0xe0c8 0x924E
+0xe0c9 0x9253
+0xe0ca 0x924C
+0xe0cb 0x9256
+0xe0cc 0x9232
+0xe0cd 0x959F
+0xe0ce 0x959C
+0xe0cf 0x959E
+0xe0d0 0x959B
+0xe0d1 0x9692
+0xe0d2 0x9693
+0xe0d3 0x9691
+0xe0d4 0x9697
+0xe0d5 0x96CE
+0xe0d6 0x96FA
+0xe0d7 0x96FD
+0xe0d8 0x96F8
+0xe0d9 0x96F5
+0xe0da 0x9773
+0xe0db 0x9777
+0xe0dc 0x9778
+0xe0dd 0x9772
+0xe0de 0x980F
+0xe0df 0x980D
+0xe0e0 0x980E
+0xe0e1 0x98AC
+0xe0e2 0x98F6
+0xe0e3 0x98F9
+0xe0e4 0x99AF
+0xe0e5 0x99B2
+0xe0e6 0x99B0
+0xe0e7 0x99B5
+0xe0e8 0x9AAD
+0xe0e9 0x9AAB
+0xe0ea 0x9B5B
+0xe0eb 0x9CEA
+0xe0ec 0x9CED
+0xe0ed 0x9CE7
+0xe0ee 0x9E80
+0xe0ef 0x9EFD
+0xe0f0 0x50E6
+0xe0f1 0x50D4
+0xe0f2 0x50D7
+0xe0f3 0x50E8
+0xe0f4 0x50F3
+0xe0f5 0x50DB
+0xe0f6 0x50EA
+0xe0f7 0x50DD
+0xe0f8 0x50E4
+0xe0f9 0x50D3
+0xe0fa 0x50EC
+0xe0fb 0x50F0
+0xe0fc 0x50EF
+0xe0fd 0x50E3
+0xe0fe 0x50E0
+0xe140 0x51D8
+0xe141 0x5280
+0xe142 0x5281
+0xe143 0x52E9
+0xe144 0x52EB
+0xe145 0x5330
+0xe146 0x53AC
+0xe147 0x5627
+0xe148 0x5615
+0xe149 0x560C
+0xe14a 0x5612
+0xe14b 0x55FC
+0xe14c 0x560F
+0xe14d 0x561C
+0xe14e 0x5601
+0xe14f 0x5613
+0xe150 0x5602
+0xe151 0x55FA
+0xe152 0x561D
+0xe153 0x5604
+0xe154 0x55FF
+0xe155 0x55F9
+0xe156 0x5889
+0xe157 0x587C
+0xe158 0x5890
+0xe159 0x5898
+0xe15a 0x5886
+0xe15b 0x5881
+0xe15c 0x587F
+0xe15d 0x5874
+0xe15e 0x588B
+0xe15f 0x587A
+0xe160 0x5887
+0xe161 0x5891
+0xe162 0x588E
+0xe163 0x5876
+0xe164 0x5882
+0xe165 0x5888
+0xe166 0x587B
+0xe167 0x5894
+0xe168 0x588F
+0xe169 0x58FE
+0xe16a 0x596B
+0xe16b 0x5ADC
+0xe16c 0x5AEE
+0xe16d 0x5AE5
+0xe16e 0x5AD5
+0xe16f 0x5AEA
+0xe170 0x5ADA
+0xe171 0x5AED
+0xe172 0x5AEB
+0xe173 0x5AF3
+0xe174 0x5AE2
+0xe175 0x5AE0
+0xe176 0x5ADB
+0xe177 0x5AEC
+0xe178 0x5ADE
+0xe179 0x5ADD
+0xe17a 0x5AD9
+0xe17b 0x5AE8
+0xe17c 0x5ADF
+0xe17d 0x5B77
+0xe17e 0x5BE0
+0xe1a1 0x5BE3
+0xe1a2 0x5C63
+0xe1a3 0x5D82
+0xe1a4 0x5D80
+0xe1a5 0x5D7D
+0xe1a6 0x5D86
+0xe1a7 0x5D7A
+0xe1a8 0x5D81
+0xe1a9 0x5D77
+0xe1aa 0x5D8A
+0xe1ab 0x5D89
+0xe1ac 0x5D88
+0xe1ad 0x5D7E
+0xe1ae 0x5D7C
+0xe1af 0x5D8D
+0xe1b0 0x5D79
+0xe1b1 0x5D7F
+0xe1b2 0x5E58
+0xe1b3 0x5E59
+0xe1b4 0x5E53
+0xe1b5 0x5ED8
+0xe1b6 0x5ED1
+0xe1b7 0x5ED7
+0xe1b8 0x5ECE
+0xe1b9 0x5EDC
+0xe1ba 0x5ED5
+0xe1bb 0x5ED9
+0xe1bc 0x5ED2
+0xe1bd 0x5ED4
+0xe1be 0x5F44
+0xe1bf 0x5F43
+0xe1c0 0x5F6F
+0xe1c1 0x5FB6
+0xe1c2 0x612C
+0xe1c3 0x6128
+0xe1c4 0x6141
+0xe1c5 0x615E
+0xe1c6 0x6171
+0xe1c7 0x6173
+0xe1c8 0x6152
+0xe1c9 0x6153
+0xe1ca 0x6172
+0xe1cb 0x616C
+0xe1cc 0x6180
+0xe1cd 0x6174
+0xe1ce 0x6154
+0xe1cf 0x617A
+0xe1d0 0x615B
+0xe1d1 0x6165
+0xe1d2 0x613B
+0xe1d3 0x616A
+0xe1d4 0x6161
+0xe1d5 0x6156
+0xe1d6 0x6229
+0xe1d7 0x6227
+0xe1d8 0x622B
+0xe1d9 0x642B
+0xe1da 0x644D
+0xe1db 0x645B
+0xe1dc 0x645D
+0xe1dd 0x6474
+0xe1de 0x6476
+0xe1df 0x6472
+0xe1e0 0x6473
+0xe1e1 0x647D
+0xe1e2 0x6475
+0xe1e3 0x6466
+0xe1e4 0x64A6
+0xe1e5 0x644E
+0xe1e6 0x6482
+0xe1e7 0x645E
+0xe1e8 0x645C
+0xe1e9 0x644B
+0xe1ea 0x6453
+0xe1eb 0x6460
+0xe1ec 0x6450
+0xe1ed 0x647F
+0xe1ee 0x643F
+0xe1ef 0x646C
+0xe1f0 0x646B
+0xe1f1 0x6459
+0xe1f2 0x6465
+0xe1f3 0x6477
+0xe1f4 0x6573
+0xe1f5 0x65A0
+0xe1f6 0x66A1
+0xe1f7 0x66A0
+0xe1f8 0x669F
+0xe1f9 0x6705
+0xe1fa 0x6704
+0xe1fb 0x6722
+0xe1fc 0x69B1
+0xe1fd 0x69B6
+0xe1fe 0x69C9
+0xe240 0x69A0
+0xe241 0x69CE
+0xe242 0x6996
+0xe243 0x69B0
+0xe244 0x69AC
+0xe245 0x69BC
+0xe246 0x6991
+0xe247 0x6999
+0xe248 0x698E
+0xe249 0x69A7
+0xe24a 0x698D
+0xe24b 0x69A9
+0xe24c 0x69BE
+0xe24d 0x69AF
+0xe24e 0x69BF
+0xe24f 0x69C4
+0xe250 0x69BD
+0xe251 0x69A4
+0xe252 0x69D4
+0xe253 0x69B9
+0xe254 0x69CA
+0xe255 0x699A
+0xe256 0x69CF
+0xe257 0x69B3
+0xe258 0x6993
+0xe259 0x69AA
+0xe25a 0x69A1
+0xe25b 0x699E
+0xe25c 0x69D9
+0xe25d 0x6997
+0xe25e 0x6990
+0xe25f 0x69C2
+0xe260 0x69B5
+0xe261 0x69A5
+0xe262 0x69C6
+0xe263 0x6B4A
+0xe264 0x6B4D
+0xe265 0x6B4B
+0xe266 0x6B9E
+0xe267 0x6B9F
+0xe268 0x6BA0
+0xe269 0x6BC3
+0xe26a 0x6BC4
+0xe26b 0x6BFE
+0xe26c 0x6ECE
+0xe26d 0x6EF5
+0xe26e 0x6EF1
+0xe26f 0x6F03
+0xe270 0x6F25
+0xe271 0x6EF8
+0xe272 0x6F37
+0xe273 0x6EFB
+0xe274 0x6F2E
+0xe275 0x6F09
+0xe276 0x6F4E
+0xe277 0x6F19
+0xe278 0x6F1A
+0xe279 0x6F27
+0xe27a 0x6F18
+0xe27b 0x6F3B
+0xe27c 0x6F12
+0xe27d 0x6EED
+0xe27e 0x6F0A
+0xe2a1 0x6F36
+0xe2a2 0x6F73
+0xe2a3 0x6EF9
+0xe2a4 0x6EEE
+0xe2a5 0x6F2D
+0xe2a6 0x6F40
+0xe2a7 0x6F30
+0xe2a8 0x6F3C
+0xe2a9 0x6F35
+0xe2aa 0x6EEB
+0xe2ab 0x6F07
+0xe2ac 0x6F0E
+0xe2ad 0x6F43
+0xe2ae 0x6F05
+0xe2af 0x6EFD
+0xe2b0 0x6EF6
+0xe2b1 0x6F39
+0xe2b2 0x6F1C
+0xe2b3 0x6EFC
+0xe2b4 0x6F3A
+0xe2b5 0x6F1F
+0xe2b6 0x6F0D
+0xe2b7 0x6F1E
+0xe2b8 0x6F08
+0xe2b9 0x6F21
+0xe2ba 0x7187
+0xe2bb 0x7190
+0xe2bc 0x7189
+0xe2bd 0x7180
+0xe2be 0x7185
+0xe2bf 0x7182
+0xe2c0 0x718F
+0xe2c1 0x717B
+0xe2c2 0x7186
+0xe2c3 0x7181
+0xe2c4 0x7197
+0xe2c5 0x7244
+0xe2c6 0x7253
+0xe2c7 0x7297
+0xe2c8 0x7295
+0xe2c9 0x7293
+0xe2ca 0x7343
+0xe2cb 0x734D
+0xe2cc 0x7351
+0xe2cd 0x734C
+0xe2ce 0x7462
+0xe2cf 0x7473
+0xe2d0 0x7471
+0xe2d1 0x7475
+0xe2d2 0x7472
+0xe2d3 0x7467
+0xe2d4 0x746E
+0xe2d5 0x7500
+0xe2d6 0x7502
+0xe2d7 0x7503
+0xe2d8 0x757D
+0xe2d9 0x7590
+0xe2da 0x7616
+0xe2db 0x7608
+0xe2dc 0x760C
+0xe2dd 0x7615
+0xe2de 0x7611
+0xe2df 0x760A
+0xe2e0 0x7614
+0xe2e1 0x76B8
+0xe2e2 0x7781
+0xe2e3 0x777C
+0xe2e4 0x7785
+0xe2e5 0x7782
+0xe2e6 0x776E
+0xe2e7 0x7780
+0xe2e8 0x776F
+0xe2e9 0x777E
+0xe2ea 0x7783
+0xe2eb 0x78B2
+0xe2ec 0x78AA
+0xe2ed 0x78B4
+0xe2ee 0x78AD
+0xe2ef 0x78A8
+0xe2f0 0x787E
+0xe2f1 0x78AB
+0xe2f2 0x789E
+0xe2f3 0x78A5
+0xe2f4 0x78A0
+0xe2f5 0x78AC
+0xe2f6 0x78A2
+0xe2f7 0x78A4
+0xe2f8 0x7998
+0xe2f9 0x798A
+0xe2fa 0x798B
+0xe2fb 0x7996
+0xe2fc 0x7995
+0xe2fd 0x7994
+0xe2fe 0x7993
+0xe340 0x7997
+0xe341 0x7988
+0xe342 0x7992
+0xe343 0x7990
+0xe344 0x7A2B
+0xe345 0x7A4A
+0xe346 0x7A30
+0xe347 0x7A2F
+0xe348 0x7A28
+0xe349 0x7A26
+0xe34a 0x7AA8
+0xe34b 0x7AAB
+0xe34c 0x7AAC
+0xe34d 0x7AEE
+0xe34e 0x7B88
+0xe34f 0x7B9C
+0xe350 0x7B8A
+0xe351 0x7B91
+0xe352 0x7B90
+0xe353 0x7B96
+0xe354 0x7B8D
+0xe355 0x7B8C
+0xe356 0x7B9B
+0xe357 0x7B8E
+0xe358 0x7B85
+0xe359 0x7B98
+0xe35a 0x5284
+0xe35b 0x7B99
+0xe35c 0x7BA4
+0xe35d 0x7B82
+0xe35e 0x7CBB
+0xe35f 0x7CBF
+0xe360 0x7CBC
+0xe361 0x7CBA
+0xe362 0x7DA7
+0xe363 0x7DB7
+0xe364 0x7DC2
+0xe365 0x7DA3
+0xe366 0x7DAA
+0xe367 0x7DC1
+0xe368 0x7DC0
+0xe369 0x7DC5
+0xe36a 0x7D9D
+0xe36b 0x7DCE
+0xe36c 0x7DC4
+0xe36d 0x7DC6
+0xe36e 0x7DCB
+0xe36f 0x7DCC
+0xe370 0x7DAF
+0xe371 0x7DB9
+0xe372 0x7D96
+0xe373 0x7DBC
+0xe374 0x7D9F
+0xe375 0x7DA6
+0xe376 0x7DAE
+0xe377 0x7DA9
+0xe378 0x7DA1
+0xe379 0x7DC9
+0xe37a 0x7F73
+0xe37b 0x7FE2
+0xe37c 0x7FE3
+0xe37d 0x7FE5
+0xe37e 0x7FDE
+0xe3a1 0x8024
+0xe3a2 0x805D
+0xe3a3 0x805C
+0xe3a4 0x8189
+0xe3a5 0x8186
+0xe3a6 0x8183
+0xe3a7 0x8187
+0xe3a8 0x818D
+0xe3a9 0x818C
+0xe3aa 0x818B
+0xe3ab 0x8215
+0xe3ac 0x8497
+0xe3ad 0x84A4
+0xe3ae 0x84A1
+0xe3af 0x849F
+0xe3b0 0x84BA
+0xe3b1 0x84CE
+0xe3b2 0x84C2
+0xe3b3 0x84AC
+0xe3b4 0x84AE
+0xe3b5 0x84AB
+0xe3b6 0x84B9
+0xe3b7 0x84B4
+0xe3b8 0x84C1
+0xe3b9 0x84CD
+0xe3ba 0x84AA
+0xe3bb 0x849A
+0xe3bc 0x84B1
+0xe3bd 0x84D0
+0xe3be 0x849D
+0xe3bf 0x84A7
+0xe3c0 0x84BB
+0xe3c1 0x84A2
+0xe3c2 0x8494
+0xe3c3 0x84C7
+0xe3c4 0x84CC
+0xe3c5 0x849B
+0xe3c6 0x84A9
+0xe3c7 0x84AF
+0xe3c8 0x84A8
+0xe3c9 0x84D6
+0xe3ca 0x8498
+0xe3cb 0x84B6
+0xe3cc 0x84CF
+0xe3cd 0x84A0
+0xe3ce 0x84D7
+0xe3cf 0x84D4
+0xe3d0 0x84D2
+0xe3d1 0x84DB
+0xe3d2 0x84B0
+0xe3d3 0x8491
+0xe3d4 0x8661
+0xe3d5 0x8733
+0xe3d6 0x8723
+0xe3d7 0x8728
+0xe3d8 0x876B
+0xe3d9 0x8740
+0xe3da 0x872E
+0xe3db 0x871E
+0xe3dc 0x8721
+0xe3dd 0x8719
+0xe3de 0x871B
+0xe3df 0x8743
+0xe3e0 0x872C
+0xe3e1 0x8741
+0xe3e2 0x873E
+0xe3e3 0x8746
+0xe3e4 0x8720
+0xe3e5 0x8732
+0xe3e6 0x872A
+0xe3e7 0x872D
+0xe3e8 0x873C
+0xe3e9 0x8712
+0xe3ea 0x873A
+0xe3eb 0x8731
+0xe3ec 0x8735
+0xe3ed 0x8742
+0xe3ee 0x8726
+0xe3ef 0x8727
+0xe3f0 0x8738
+0xe3f1 0x8724
+0xe3f2 0x871A
+0xe3f3 0x8730
+0xe3f4 0x8711
+0xe3f5 0x88F7
+0xe3f6 0x88E7
+0xe3f7 0x88F1
+0xe3f8 0x88F2
+0xe3f9 0x88FA
+0xe3fa 0x88FE
+0xe3fb 0x88EE
+0xe3fc 0x88FC
+0xe3fd 0x88F6
+0xe3fe 0x88FB
+0xe440 0x88F0
+0xe441 0x88EC
+0xe442 0x88EB
+0xe443 0x899D
+0xe444 0x89A1
+0xe445 0x899F
+0xe446 0x899E
+0xe447 0x89E9
+0xe448 0x89EB
+0xe449 0x89E8
+0xe44a 0x8AAB
+0xe44b 0x8A99
+0xe44c 0x8A8B
+0xe44d 0x8A92
+0xe44e 0x8A8F
+0xe44f 0x8A96
+0xe450 0x8C3D
+0xe451 0x8C68
+0xe452 0x8C69
+0xe453 0x8CD5
+0xe454 0x8CCF
+0xe455 0x8CD7
+0xe456 0x8D96
+0xe457 0x8E09
+0xe458 0x8E02
+0xe459 0x8DFF
+0xe45a 0x8E0D
+0xe45b 0x8DFD
+0xe45c 0x8E0A
+0xe45d 0x8E03
+0xe45e 0x8E07
+0xe45f 0x8E06
+0xe460 0x8E05
+0xe461 0x8DFE
+0xe462 0x8E00
+0xe463 0x8E04
+0xe464 0x8F10
+0xe465 0x8F11
+0xe466 0x8F0E
+0xe467 0x8F0D
+0xe468 0x9123
+0xe469 0x911C
+0xe46a 0x9120
+0xe46b 0x9122
+0xe46c 0x911F
+0xe46d 0x911D
+0xe46e 0x911A
+0xe46f 0x9124
+0xe470 0x9121
+0xe471 0x911B
+0xe472 0x917A
+0xe473 0x9172
+0xe474 0x9179
+0xe475 0x9173
+0xe476 0x92A5
+0xe477 0x92A4
+0xe478 0x9276
+0xe479 0x929B
+0xe47a 0x927A
+0xe47b 0x92A0
+0xe47c 0x9294
+0xe47d 0x92AA
+0xe47e 0x928D
+0xe4a1 0x92A6
+0xe4a2 0x929A
+0xe4a3 0x92AB
+0xe4a4 0x9279
+0xe4a5 0x9297
+0xe4a6 0x927F
+0xe4a7 0x92A3
+0xe4a8 0x92EE
+0xe4a9 0x928E
+0xe4aa 0x9282
+0xe4ab 0x9295
+0xe4ac 0x92A2
+0xe4ad 0x927D
+0xe4ae 0x9288
+0xe4af 0x92A1
+0xe4b0 0x928A
+0xe4b1 0x9286
+0xe4b2 0x928C
+0xe4b3 0x9299
+0xe4b4 0x92A7
+0xe4b5 0x927E
+0xe4b6 0x9287
+0xe4b7 0x92A9
+0xe4b8 0x929D
+0xe4b9 0x928B
+0xe4ba 0x922D
+0xe4bb 0x969E
+0xe4bc 0x96A1
+0xe4bd 0x96FF
+0xe4be 0x9758
+0xe4bf 0x977D
+0xe4c0 0x977A
+0xe4c1 0x977E
+0xe4c2 0x9783
+0xe4c3 0x9780
+0xe4c4 0x9782
+0xe4c5 0x977B
+0xe4c6 0x9784
+0xe4c7 0x9781
+0xe4c8 0x977F
+0xe4c9 0x97CE
+0xe4ca 0x97CD
+0xe4cb 0x9816
+0xe4cc 0x98AD
+0xe4cd 0x98AE
+0xe4ce 0x9902
+0xe4cf 0x9900
+0xe4d0 0x9907
+0xe4d1 0x999D
+0xe4d2 0x999C
+0xe4d3 0x99C3
+0xe4d4 0x99B9
+0xe4d5 0x99BB
+0xe4d6 0x99BA
+0xe4d7 0x99C2
+0xe4d8 0x99BD
+0xe4d9 0x99C7
+0xe4da 0x9AB1
+0xe4db 0x9AE3
+0xe4dc 0x9AE7
+0xe4dd 0x9B3E
+0xe4de 0x9B3F
+0xe4df 0x9B60
+0xe4e0 0x9B61
+0xe4e1 0x9B5F
+0xe4e2 0x9CF1
+0xe4e3 0x9CF2
+0xe4e4 0x9CF5
+0xe4e5 0x9EA7
+0xe4e6 0x50FF
+0xe4e7 0x5103
+0xe4e8 0x5130
+0xe4e9 0x50F8
+0xe4ea 0x5106
+0xe4eb 0x5107
+0xe4ec 0x50F6
+0xe4ed 0x50FE
+0xe4ee 0x510B
+0xe4ef 0x510C
+0xe4f0 0x50FD
+0xe4f1 0x510A
+0xe4f2 0x528B
+0xe4f3 0x528C
+0xe4f4 0x52F1
+0xe4f5 0x52EF
+0xe4f6 0x5648
+0xe4f7 0x5642
+0xe4f8 0x564C
+0xe4f9 0x5635
+0xe4fa 0x5641
+0xe4fb 0x564A
+0xe4fc 0x5649
+0xe4fd 0x5646
+0xe4fe 0x5658
+0xe540 0x565A
+0xe541 0x5640
+0xe542 0x5633
+0xe543 0x563D
+0xe544 0x562C
+0xe545 0x563E
+0xe546 0x5638
+0xe547 0x562A
+0xe548 0x563A
+0xe549 0x571A
+0xe54a 0x58AB
+0xe54b 0x589D
+0xe54c 0x58B1
+0xe54d 0x58A0
+0xe54e 0x58A3
+0xe54f 0x58AF
+0xe550 0x58AC
+0xe551 0x58A5
+0xe552 0x58A1
+0xe553 0x58FF
+0xe554 0x5AFF
+0xe555 0x5AF4
+0xe556 0x5AFD
+0xe557 0x5AF7
+0xe558 0x5AF6
+0xe559 0x5B03
+0xe55a 0x5AF8
+0xe55b 0x5B02
+0xe55c 0x5AF9
+0xe55d 0x5B01
+0xe55e 0x5B07
+0xe55f 0x5B05
+0xe560 0x5B0F
+0xe561 0x5C67
+0xe562 0x5D99
+0xe563 0x5D97
+0xe564 0x5D9F
+0xe565 0x5D92
+0xe566 0x5DA2
+0xe567 0x5D93
+0xe568 0x5D95
+0xe569 0x5DA0
+0xe56a 0x5D9C
+0xe56b 0x5DA1
+0xe56c 0x5D9A
+0xe56d 0x5D9E
+0xe56e 0x5E69
+0xe56f 0x5E5D
+0xe570 0x5E60
+0xe571 0x5E5C
+0xe572 0x7DF3
+0xe573 0x5EDB
+0xe574 0x5EDE
+0xe575 0x5EE1
+0xe576 0x5F49
+0xe577 0x5FB2
+0xe578 0x618B
+0xe579 0x6183
+0xe57a 0x6179
+0xe57b 0x61B1
+0xe57c 0x61B0
+0xe57d 0x61A2
+0xe57e 0x6189
+0xe5a1 0x619B
+0xe5a2 0x6193
+0xe5a3 0x61AF
+0xe5a4 0x61AD
+0xe5a5 0x619F
+0xe5a6 0x6192
+0xe5a7 0x61AA
+0xe5a8 0x61A1
+0xe5a9 0x618D
+0xe5aa 0x6166
+0xe5ab 0x61B3
+0xe5ac 0x622D
+0xe5ad 0x646E
+0xe5ae 0x6470
+0xe5af 0x6496
+0xe5b0 0x64A0
+0xe5b1 0x6485
+0xe5b2 0x6497
+0xe5b3 0x649C
+0xe5b4 0x648F
+0xe5b5 0x648B
+0xe5b6 0x648A
+0xe5b7 0x648C
+0xe5b8 0x64A3
+0xe5b9 0x649F
+0xe5ba 0x6468
+0xe5bb 0x64B1
+0xe5bc 0x6498
+0xe5bd 0x6576
+0xe5be 0x657A
+0xe5bf 0x6579
+0xe5c0 0x657B
+0xe5c1 0x65B2
+0xe5c2 0x65B3
+0xe5c3 0x66B5
+0xe5c4 0x66B0
+0xe5c5 0x66A9
+0xe5c6 0x66B2
+0xe5c7 0x66B7
+0xe5c8 0x66AA
+0xe5c9 0x66AF
+0xe5ca 0x6A00
+0xe5cb 0x6A06
+0xe5cc 0x6A17
+0xe5cd 0x69E5
+0xe5ce 0x69F8
+0xe5cf 0x6A15
+0xe5d0 0x69F1
+0xe5d1 0x69E4
+0xe5d2 0x6A20
+0xe5d3 0x69FF
+0xe5d4 0x69EC
+0xe5d5 0x69E2
+0xe5d6 0x6A1B
+0xe5d7 0x6A1D
+0xe5d8 0x69FE
+0xe5d9 0x6A27
+0xe5da 0x69F2
+0xe5db 0x69EE
+0xe5dc 0x6A14
+0xe5dd 0x69F7
+0xe5de 0x69E7
+0xe5df 0x6A40
+0xe5e0 0x6A08
+0xe5e1 0x69E6
+0xe5e2 0x69FB
+0xe5e3 0x6A0D
+0xe5e4 0x69FC
+0xe5e5 0x69EB
+0xe5e6 0x6A09
+0xe5e7 0x6A04
+0xe5e8 0x6A18
+0xe5e9 0x6A25
+0xe5ea 0x6A0F
+0xe5eb 0x69F6
+0xe5ec 0x6A26
+0xe5ed 0x6A07
+0xe5ee 0x69F4
+0xe5ef 0x6A16
+0xe5f0 0x6B51
+0xe5f1 0x6BA5
+0xe5f2 0x6BA3
+0xe5f3 0x6BA2
+0xe5f4 0x6BA6
+0xe5f5 0x6C01
+0xe5f6 0x6C00
+0xe5f7 0x6BFF
+0xe5f8 0x6C02
+0xe5f9 0x6F41
+0xe5fa 0x6F26
+0xe5fb 0x6F7E
+0xe5fc 0x6F87
+0xe5fd 0x6FC6
+0xe5fe 0x6F92
+0xe640 0x6F8D
+0xe641 0x6F89
+0xe642 0x6F8C
+0xe643 0x6F62
+0xe644 0x6F4F
+0xe645 0x6F85
+0xe646 0x6F5A
+0xe647 0x6F96
+0xe648 0x6F76
+0xe649 0x6F6C
+0xe64a 0x6F82
+0xe64b 0x6F55
+0xe64c 0x6F72
+0xe64d 0x6F52
+0xe64e 0x6F50
+0xe64f 0x6F57
+0xe650 0x6F94
+0xe651 0x6F93
+0xe652 0x6F5D
+0xe653 0x6F00
+0xe654 0x6F61
+0xe655 0x6F6B
+0xe656 0x6F7D
+0xe657 0x6F67
+0xe658 0x6F90
+0xe659 0x6F53
+0xe65a 0x6F8B
+0xe65b 0x6F69
+0xe65c 0x6F7F
+0xe65d 0x6F95
+0xe65e 0x6F63
+0xe65f 0x6F77
+0xe660 0x6F6A
+0xe661 0x6F7B
+0xe662 0x71B2
+0xe663 0x71AF
+0xe664 0x719B
+0xe665 0x71B0
+0xe666 0x71A0
+0xe667 0x719A
+0xe668 0x71A9
+0xe669 0x71B5
+0xe66a 0x719D
+0xe66b 0x71A5
+0xe66c 0x719E
+0xe66d 0x71A4
+0xe66e 0x71A1
+0xe66f 0x71AA
+0xe670 0x719C
+0xe671 0x71A7
+0xe672 0x71B3
+0xe673 0x7298
+0xe674 0x729A
+0xe675 0x7358
+0xe676 0x7352
+0xe677 0x735E
+0xe678 0x735F
+0xe679 0x7360
+0xe67a 0x735D
+0xe67b 0x735B
+0xe67c 0x7361
+0xe67d 0x735A
+0xe67e 0x7359
+0xe6a1 0x7362
+0xe6a2 0x7487
+0xe6a3 0x7489
+0xe6a4 0x748A
+0xe6a5 0x7486
+0xe6a6 0x7481
+0xe6a7 0x747D
+0xe6a8 0x7485
+0xe6a9 0x7488
+0xe6aa 0x747C
+0xe6ab 0x7479
+0xe6ac 0x7508
+0xe6ad 0x7507
+0xe6ae 0x757E
+0xe6af 0x7625
+0xe6b0 0x761E
+0xe6b1 0x7619
+0xe6b2 0x761D
+0xe6b3 0x761C
+0xe6b4 0x7623
+0xe6b5 0x761A
+0xe6b6 0x7628
+0xe6b7 0x761B
+0xe6b8 0x769C
+0xe6b9 0x769D
+0xe6ba 0x769E
+0xe6bb 0x769B
+0xe6bc 0x778D
+0xe6bd 0x778F
+0xe6be 0x7789
+0xe6bf 0x7788
+0xe6c0 0x78CD
+0xe6c1 0x78BB
+0xe6c2 0x78CF
+0xe6c3 0x78CC
+0xe6c4 0x78D1
+0xe6c5 0x78CE
+0xe6c6 0x78D4
+0xe6c7 0x78C8
+0xe6c8 0x78C3
+0xe6c9 0x78C4
+0xe6ca 0x78C9
+0xe6cb 0x799A
+0xe6cc 0x79A1
+0xe6cd 0x79A0
+0xe6ce 0x799C
+0xe6cf 0x79A2
+0xe6d0 0x799B
+0xe6d1 0x6B76
+0xe6d2 0x7A39
+0xe6d3 0x7AB2
+0xe6d4 0x7AB4
+0xe6d5 0x7AB3
+0xe6d6 0x7BB7
+0xe6d7 0x7BCB
+0xe6d8 0x7BBE
+0xe6d9 0x7BAC
+0xe6da 0x7BCE
+0xe6db 0x7BAF
+0xe6dc 0x7BB9
+0xe6dd 0x7BCA
+0xe6de 0x7BB5
+0xe6df 0x7CC5
+0xe6e0 0x7CC8
+0xe6e1 0x7CCC
+0xe6e2 0x7CCB
+0xe6e3 0x7DF7
+0xe6e4 0x7DDB
+0xe6e5 0x7DEA
+0xe6e6 0x7DE7
+0xe6e7 0x7DD7
+0xe6e8 0x7DE1
+0xe6e9 0x7E03
+0xe6ea 0x7DFA
+0xe6eb 0x7DE6
+0xe6ec 0x7DF6
+0xe6ed 0x7DF1
+0xe6ee 0x7DF0
+0xe6ef 0x7DEE
+0xe6f0 0x7DDF
+0xe6f1 0x7F76
+0xe6f2 0x7FAC
+0xe6f3 0x7FB0
+0xe6f4 0x7FAD
+0xe6f5 0x7FED
+0xe6f6 0x7FEB
+0xe6f7 0x7FEA
+0xe6f8 0x7FEC
+0xe6f9 0x7FE6
+0xe6fa 0x7FE8
+0xe6fb 0x8064
+0xe6fc 0x8067
+0xe6fd 0x81A3
+0xe6fe 0x819F
+0xe740 0x819E
+0xe741 0x8195
+0xe742 0x81A2
+0xe743 0x8199
+0xe744 0x8197
+0xe745 0x8216
+0xe746 0x824F
+0xe747 0x8253
+0xe748 0x8252
+0xe749 0x8250
+0xe74a 0x824E
+0xe74b 0x8251
+0xe74c 0x8524
+0xe74d 0x853B
+0xe74e 0x850F
+0xe74f 0x8500
+0xe750 0x8529
+0xe751 0x850E
+0xe752 0x8509
+0xe753 0x850D
+0xe754 0x851F
+0xe755 0x850A
+0xe756 0x8527
+0xe757 0x851C
+0xe758 0x84FB
+0xe759 0x852B
+0xe75a 0x84FA
+0xe75b 0x8508
+0xe75c 0x850C
+0xe75d 0x84F4
+0xe75e 0x852A
+0xe75f 0x84F2
+0xe760 0x8515
+0xe761 0x84F7
+0xe762 0x84EB
+0xe763 0x84F3
+0xe764 0x84FC
+0xe765 0x8512
+0xe766 0x84EA
+0xe767 0x84E9
+0xe768 0x8516
+0xe769 0x84FE
+0xe76a 0x8528
+0xe76b 0x851D
+0xe76c 0x852E
+0xe76d 0x8502
+0xe76e 0x84FD
+0xe76f 0x851E
+0xe770 0x84F6
+0xe771 0x8531
+0xe772 0x8526
+0xe773 0x84E7
+0xe774 0x84E8
+0xe775 0x84F0
+0xe776 0x84EF
+0xe777 0x84F9
+0xe778 0x8518
+0xe779 0x8520
+0xe77a 0x8530
+0xe77b 0x850B
+0xe77c 0x8519
+0xe77d 0x852F
+0xe77e 0x8662
+0xe7a1 0x8756
+0xe7a2 0x8763
+0xe7a3 0x8764
+0xe7a4 0x8777
+0xe7a5 0x87E1
+0xe7a6 0x8773
+0xe7a7 0x8758
+0xe7a8 0x8754
+0xe7a9 0x875B
+0xe7aa 0x8752
+0xe7ab 0x8761
+0xe7ac 0x875A
+0xe7ad 0x8751
+0xe7ae 0x875E
+0xe7af 0x876D
+0xe7b0 0x876A
+0xe7b1 0x8750
+0xe7b2 0x874E
+0xe7b3 0x875F
+0xe7b4 0x875D
+0xe7b5 0x876F
+0xe7b6 0x876C
+0xe7b7 0x877A
+0xe7b8 0x876E
+0xe7b9 0x875C
+0xe7ba 0x8765
+0xe7bb 0x874F
+0xe7bc 0x877B
+0xe7bd 0x8775
+0xe7be 0x8762
+0xe7bf 0x8767
+0xe7c0 0x8769
+0xe7c1 0x885A
+0xe7c2 0x8905
+0xe7c3 0x890C
+0xe7c4 0x8914
+0xe7c5 0x890B
+0xe7c6 0x8917
+0xe7c7 0x8918
+0xe7c8 0x8919
+0xe7c9 0x8906
+0xe7ca 0x8916
+0xe7cb 0x8911
+0xe7cc 0x890E
+0xe7cd 0x8909
+0xe7ce 0x89A2
+0xe7cf 0x89A4
+0xe7d0 0x89A3
+0xe7d1 0x89ED
+0xe7d2 0x89F0
+0xe7d3 0x89EC
+0xe7d4 0x8ACF
+0xe7d5 0x8AC6
+0xe7d6 0x8AB8
+0xe7d7 0x8AD3
+0xe7d8 0x8AD1
+0xe7d9 0x8AD4
+0xe7da 0x8AD5
+0xe7db 0x8ABB
+0xe7dc 0x8AD7
+0xe7dd 0x8ABE
+0xe7de 0x8AC0
+0xe7df 0x8AC5
+0xe7e0 0x8AD8
+0xe7e1 0x8AC3
+0xe7e2 0x8ABA
+0xe7e3 0x8ABD
+0xe7e4 0x8AD9
+0xe7e5 0x8C3E
+0xe7e6 0x8C4D
+0xe7e7 0x8C8F
+0xe7e8 0x8CE5
+0xe7e9 0x8CDF
+0xe7ea 0x8CD9
+0xe7eb 0x8CE8
+0xe7ec 0x8CDA
+0xe7ed 0x8CDD
+0xe7ee 0x8CE7
+0xe7ef 0x8DA0
+0xe7f0 0x8D9C
+0xe7f1 0x8DA1
+0xe7f2 0x8D9B
+0xe7f3 0x8E20
+0xe7f4 0x8E23
+0xe7f5 0x8E25
+0xe7f6 0x8E24
+0xe7f7 0x8E2E
+0xe7f8 0x8E15
+0xe7f9 0x8E1B
+0xe7fa 0x8E16
+0xe7fb 0x8E11
+0xe7fc 0x8E19
+0xe7fd 0x8E26
+0xe7fe 0x8E27
+0xe840 0x8E14
+0xe841 0x8E12
+0xe842 0x8E18
+0xe843 0x8E13
+0xe844 0x8E1C
+0xe845 0x8E17
+0xe846 0x8E1A
+0xe847 0x8F2C
+0xe848 0x8F24
+0xe849 0x8F18
+0xe84a 0x8F1A
+0xe84b 0x8F20
+0xe84c 0x8F23
+0xe84d 0x8F16
+0xe84e 0x8F17
+0xe84f 0x9073
+0xe850 0x9070
+0xe851 0x906F
+0xe852 0x9067
+0xe853 0x906B
+0xe854 0x912F
+0xe855 0x912B
+0xe856 0x9129
+0xe857 0x912A
+0xe858 0x9132
+0xe859 0x9126
+0xe85a 0x912E
+0xe85b 0x9185
+0xe85c 0x9186
+0xe85d 0x918A
+0xe85e 0x9181
+0xe85f 0x9182
+0xe860 0x9184
+0xe861 0x9180
+0xe862 0x92D0
+0xe863 0x92C3
+0xe864 0x92C4
+0xe865 0x92C0
+0xe866 0x92D9
+0xe867 0x92B6
+0xe868 0x92CF
+0xe869 0x92F1
+0xe86a 0x92DF
+0xe86b 0x92D8
+0xe86c 0x92E9
+0xe86d 0x92D7
+0xe86e 0x92DD
+0xe86f 0x92CC
+0xe870 0x92EF
+0xe871 0x92C2
+0xe872 0x92E8
+0xe873 0x92CA
+0xe874 0x92C8
+0xe875 0x92CE
+0xe876 0x92E6
+0xe877 0x92CD
+0xe878 0x92D5
+0xe879 0x92C9
+0xe87a 0x92E0
+0xe87b 0x92DE
+0xe87c 0x92E7
+0xe87d 0x92D1
+0xe87e 0x92D3
+0xe8a1 0x92B5
+0xe8a2 0x92E1
+0xe8a3 0x92C6
+0xe8a4 0x92B4
+0xe8a5 0x957C
+0xe8a6 0x95AC
+0xe8a7 0x95AB
+0xe8a8 0x95AE
+0xe8a9 0x95B0
+0xe8aa 0x96A4
+0xe8ab 0x96A2
+0xe8ac 0x96D3
+0xe8ad 0x9705
+0xe8ae 0x9708
+0xe8af 0x9702
+0xe8b0 0x975A
+0xe8b1 0x978A
+0xe8b2 0x978E
+0xe8b3 0x9788
+0xe8b4 0x97D0
+0xe8b5 0x97CF
+0xe8b6 0x981E
+0xe8b7 0x981D
+0xe8b8 0x9826
+0xe8b9 0x9829
+0xe8ba 0x9828
+0xe8bb 0x9820
+0xe8bc 0x981B
+0xe8bd 0x9827
+0xe8be 0x98B2
+0xe8bf 0x9908
+0xe8c0 0x98FA
+0xe8c1 0x9911
+0xe8c2 0x9914
+0xe8c3 0x9916
+0xe8c4 0x9917
+0xe8c5 0x9915
+0xe8c6 0x99DC
+0xe8c7 0x99CD
+0xe8c8 0x99CF
+0xe8c9 0x99D3
+0xe8ca 0x99D4
+0xe8cb 0x99CE
+0xe8cc 0x99C9
+0xe8cd 0x99D6
+0xe8ce 0x99D8
+0xe8cf 0x99CB
+0xe8d0 0x99D7
+0xe8d1 0x99CC
+0xe8d2 0x9AB3
+0xe8d3 0x9AEC
+0xe8d4 0x9AEB
+0xe8d5 0x9AF3
+0xe8d6 0x9AF2
+0xe8d7 0x9AF1
+0xe8d8 0x9B46
+0xe8d9 0x9B43
+0xe8da 0x9B67
+0xe8db 0x9B74
+0xe8dc 0x9B71
+0xe8dd 0x9B66
+0xe8de 0x9B76
+0xe8df 0x9B75
+0xe8e0 0x9B70
+0xe8e1 0x9B68
+0xe8e2 0x9B64
+0xe8e3 0x9B6C
+0xe8e4 0x9CFC
+0xe8e5 0x9CFA
+0xe8e6 0x9CFD
+0xe8e7 0x9CFF
+0xe8e8 0x9CF7
+0xe8e9 0x9D07
+0xe8ea 0x9D00
+0xe8eb 0x9CF9
+0xe8ec 0x9CFB
+0xe8ed 0x9D08
+0xe8ee 0x9D05
+0xe8ef 0x9D04
+0xe8f0 0x9E83
+0xe8f1 0x9ED3
+0xe8f2 0x9F0F
+0xe8f3 0x9F10
+0xe8f4 0x511C
+0xe8f5 0x5113
+0xe8f6 0x5117
+0xe8f7 0x511A
+0xe8f8 0x5111
+0xe8f9 0x51DE
+0xe8fa 0x5334
+0xe8fb 0x53E1
+0xe8fc 0x5670
+0xe8fd 0x5660
+0xe8fe 0x566E
+0xe940 0x5673
+0xe941 0x5666
+0xe942 0x5663
+0xe943 0x566D
+0xe944 0x5672
+0xe945 0x565E
+0xe946 0x5677
+0xe947 0x571C
+0xe948 0x571B
+0xe949 0x58C8
+0xe94a 0x58BD
+0xe94b 0x58C9
+0xe94c 0x58BF
+0xe94d 0x58BA
+0xe94e 0x58C2
+0xe94f 0x58BC
+0xe950 0x58C6
+0xe951 0x5B17
+0xe952 0x5B19
+0xe953 0x5B1B
+0xe954 0x5B21
+0xe955 0x5B14
+0xe956 0x5B13
+0xe957 0x5B10
+0xe958 0x5B16
+0xe959 0x5B28
+0xe95a 0x5B1A
+0xe95b 0x5B20
+0xe95c 0x5B1E
+0xe95d 0x5BEF
+0xe95e 0x5DAC
+0xe95f 0x5DB1
+0xe960 0x5DA9
+0xe961 0x5DA7
+0xe962 0x5DB5
+0xe963 0x5DB0
+0xe964 0x5DAE
+0xe965 0x5DAA
+0xe966 0x5DA8
+0xe967 0x5DB2
+0xe968 0x5DAD
+0xe969 0x5DAF
+0xe96a 0x5DB4
+0xe96b 0x5E67
+0xe96c 0x5E68
+0xe96d 0x5E66
+0xe96e 0x5E6F
+0xe96f 0x5EE9
+0xe970 0x5EE7
+0xe971 0x5EE6
+0xe972 0x5EE8
+0xe973 0x5EE5
+0xe974 0x5F4B
+0xe975 0x5FBC
+0xe976 0x619D
+0xe977 0x61A8
+0xe978 0x6196
+0xe979 0x61C5
+0xe97a 0x61B4
+0xe97b 0x61C6
+0xe97c 0x61C1
+0xe97d 0x61CC
+0xe97e 0x61BA
+0xe9a1 0x61BF
+0xe9a2 0x61B8
+0xe9a3 0x618C
+0xe9a4 0x64D7
+0xe9a5 0x64D6
+0xe9a6 0x64D0
+0xe9a7 0x64CF
+0xe9a8 0x64C9
+0xe9a9 0x64BD
+0xe9aa 0x6489
+0xe9ab 0x64C3
+0xe9ac 0x64DB
+0xe9ad 0x64F3
+0xe9ae 0x64D9
+0xe9af 0x6533
+0xe9b0 0x657F
+0xe9b1 0x657C
+0xe9b2 0x65A2
+0xe9b3 0x66C8
+0xe9b4 0x66BE
+0xe9b5 0x66C0
+0xe9b6 0x66CA
+0xe9b7 0x66CB
+0xe9b8 0x66CF
+0xe9b9 0x66BD
+0xe9ba 0x66BB
+0xe9bb 0x66BA
+0xe9bc 0x66CC
+0xe9bd 0x6723
+0xe9be 0x6A34
+0xe9bf 0x6A66
+0xe9c0 0x6A49
+0xe9c1 0x6A67
+0xe9c2 0x6A32
+0xe9c3 0x6A68
+0xe9c4 0x6A3E
+0xe9c5 0x6A5D
+0xe9c6 0x6A6D
+0xe9c7 0x6A76
+0xe9c8 0x6A5B
+0xe9c9 0x6A51
+0xe9ca 0x6A28
+0xe9cb 0x6A5A
+0xe9cc 0x6A3B
+0xe9cd 0x6A3F
+0xe9ce 0x6A41
+0xe9cf 0x6A6A
+0xe9d0 0x6A64
+0xe9d1 0x6A50
+0xe9d2 0x6A4F
+0xe9d3 0x6A54
+0xe9d4 0x6A6F
+0xe9d5 0x6A69
+0xe9d6 0x6A60
+0xe9d7 0x6A3C
+0xe9d8 0x6A5E
+0xe9d9 0x6A56
+0xe9da 0x6A55
+0xe9db 0x6A4D
+0xe9dc 0x6A4E
+0xe9dd 0x6A46
+0xe9de 0x6B55
+0xe9df 0x6B54
+0xe9e0 0x6B56
+0xe9e1 0x6BA7
+0xe9e2 0x6BAA
+0xe9e3 0x6BAB
+0xe9e4 0x6BC8
+0xe9e5 0x6BC7
+0xe9e6 0x6C04
+0xe9e7 0x6C03
+0xe9e8 0x6C06
+0xe9e9 0x6FAD
+0xe9ea 0x6FCB
+0xe9eb 0x6FA3
+0xe9ec 0x6FC7
+0xe9ed 0x6FBC
+0xe9ee 0x6FCE
+0xe9ef 0x6FC8
+0xe9f0 0x6F5E
+0xe9f1 0x6FC4
+0xe9f2 0x6FBD
+0xe9f3 0x6F9E
+0xe9f4 0x6FCA
+0xe9f5 0x6FA8
+0xe9f6 0x7004
+0xe9f7 0x6FA5
+0xe9f8 0x6FAE
+0xe9f9 0x6FBA
+0xe9fa 0x6FAC
+0xe9fb 0x6FAA
+0xe9fc 0x6FCF
+0xe9fd 0x6FBF
+0xe9fe 0x6FB8
+0xea40 0x6FA2
+0xea41 0x6FC9
+0xea42 0x6FAB
+0xea43 0x6FCD
+0xea44 0x6FAF
+0xea45 0x6FB2
+0xea46 0x6FB0
+0xea47 0x71C5
+0xea48 0x71C2
+0xea49 0x71BF
+0xea4a 0x71B8
+0xea4b 0x71D6
+0xea4c 0x71C0
+0xea4d 0x71C1
+0xea4e 0x71CB
+0xea4f 0x71D4
+0xea50 0x71CA
+0xea51 0x71C7
+0xea52 0x71CF
+0xea53 0x71BD
+0xea54 0x71D8
+0xea55 0x71BC
+0xea56 0x71C6
+0xea57 0x71DA
+0xea58 0x71DB
+0xea59 0x729D
+0xea5a 0x729E
+0xea5b 0x7369
+0xea5c 0x7366
+0xea5d 0x7367
+0xea5e 0x736C
+0xea5f 0x7365
+0xea60 0x736B
+0xea61 0x736A
+0xea62 0x747F
+0xea63 0x749A
+0xea64 0x74A0
+0xea65 0x7494
+0xea66 0x7492
+0xea67 0x7495
+0xea68 0x74A1
+0xea69 0x750B
+0xea6a 0x7580
+0xea6b 0x762F
+0xea6c 0x762D
+0xea6d 0x7631
+0xea6e 0x763D
+0xea6f 0x7633
+0xea70 0x763C
+0xea71 0x7635
+0xea72 0x7632
+0xea73 0x7630
+0xea74 0x76BB
+0xea75 0x76E6
+0xea76 0x779A
+0xea77 0x779D
+0xea78 0x77A1
+0xea79 0x779C
+0xea7a 0x779B
+0xea7b 0x77A2
+0xea7c 0x77A3
+0xea7d 0x7795
+0xea7e 0x7799
+0xeaa1 0x7797
+0xeaa2 0x78DD
+0xeaa3 0x78E9
+0xeaa4 0x78E5
+0xeaa5 0x78EA
+0xeaa6 0x78DE
+0xeaa7 0x78E3
+0xeaa8 0x78DB
+0xeaa9 0x78E1
+0xeaaa 0x78E2
+0xeaab 0x78ED
+0xeaac 0x78DF
+0xeaad 0x78E0
+0xeaae 0x79A4
+0xeaaf 0x7A44
+0xeab0 0x7A48
+0xeab1 0x7A47
+0xeab2 0x7AB6
+0xeab3 0x7AB8
+0xeab4 0x7AB5
+0xeab5 0x7AB1
+0xeab6 0x7AB7
+0xeab7 0x7BDE
+0xeab8 0x7BE3
+0xeab9 0x7BE7
+0xeaba 0x7BDD
+0xeabb 0x7BD5
+0xeabc 0x7BE5
+0xeabd 0x7BDA
+0xeabe 0x7BE8
+0xeabf 0x7BF9
+0xeac0 0x7BD4
+0xeac1 0x7BEA
+0xeac2 0x7BE2
+0xeac3 0x7BDC
+0xeac4 0x7BEB
+0xeac5 0x7BD8
+0xeac6 0x7BDF
+0xeac7 0x7CD2
+0xeac8 0x7CD4
+0xeac9 0x7CD7
+0xeaca 0x7CD0
+0xeacb 0x7CD1
+0xeacc 0x7E12
+0xeacd 0x7E21
+0xeace 0x7E17
+0xeacf 0x7E0C
+0xead0 0x7E1F
+0xead1 0x7E20
+0xead2 0x7E13
+0xead3 0x7E0E
+0xead4 0x7E1C
+0xead5 0x7E15
+0xead6 0x7E1A
+0xead7 0x7E22
+0xead8 0x7E0B
+0xead9 0x7E0F
+0xeada 0x7E16
+0xeadb 0x7E0D
+0xeadc 0x7E14
+0xeadd 0x7E25
+0xeade 0x7E24
+0xeadf 0x7F43
+0xeae0 0x7F7B
+0xeae1 0x7F7C
+0xeae2 0x7F7A
+0xeae3 0x7FB1
+0xeae4 0x7FEF
+0xeae5 0x802A
+0xeae6 0x8029
+0xeae7 0x806C
+0xeae8 0x81B1
+0xeae9 0x81A6
+0xeaea 0x81AE
+0xeaeb 0x81B9
+0xeaec 0x81B5
+0xeaed 0x81AB
+0xeaee 0x81B0
+0xeaef 0x81AC
+0xeaf0 0x81B4
+0xeaf1 0x81B2
+0xeaf2 0x81B7
+0xeaf3 0x81A7
+0xeaf4 0x81F2
+0xeaf5 0x8255
+0xeaf6 0x8256
+0xeaf7 0x8257
+0xeaf8 0x8556
+0xeaf9 0x8545
+0xeafa 0x856B
+0xeafb 0x854D
+0xeafc 0x8553
+0xeafd 0x8561
+0xeafe 0x8558
+0xeb40 0x8540
+0xeb41 0x8546
+0xeb42 0x8564
+0xeb43 0x8541
+0xeb44 0x8562
+0xeb45 0x8544
+0xeb46 0x8551
+0xeb47 0x8547
+0xeb48 0x8563
+0xeb49 0x853E
+0xeb4a 0x855B
+0xeb4b 0x8571
+0xeb4c 0x854E
+0xeb4d 0x856E
+0xeb4e 0x8575
+0xeb4f 0x8555
+0xeb50 0x8567
+0xeb51 0x8560
+0xeb52 0x858C
+0xeb53 0x8566
+0xeb54 0x855D
+0xeb55 0x8554
+0xeb56 0x8565
+0xeb57 0x856C
+0xeb58 0x8663
+0xeb59 0x8665
+0xeb5a 0x8664
+0xeb5b 0x879B
+0xeb5c 0x878F
+0xeb5d 0x8797
+0xeb5e 0x8793
+0xeb5f 0x8792
+0xeb60 0x8788
+0xeb61 0x8781
+0xeb62 0x8796
+0xeb63 0x8798
+0xeb64 0x8779
+0xeb65 0x8787
+0xeb66 0x87A3
+0xeb67 0x8785
+0xeb68 0x8790
+0xeb69 0x8791
+0xeb6a 0x879D
+0xeb6b 0x8784
+0xeb6c 0x8794
+0xeb6d 0x879C
+0xeb6e 0x879A
+0xeb6f 0x8789
+0xeb70 0x891E
+0xeb71 0x8926
+0xeb72 0x8930
+0xeb73 0x892D
+0xeb74 0x892E
+0xeb75 0x8927
+0xeb76 0x8931
+0xeb77 0x8922
+0xeb78 0x8929
+0xeb79 0x8923
+0xeb7a 0x892F
+0xeb7b 0x892C
+0xeb7c 0x891F
+0xeb7d 0x89F1
+0xeb7e 0x8AE0
+0xeba1 0x8AE2
+0xeba2 0x8AF2
+0xeba3 0x8AF4
+0xeba4 0x8AF5
+0xeba5 0x8ADD
+0xeba6 0x8B14
+0xeba7 0x8AE4
+0xeba8 0x8ADF
+0xeba9 0x8AF0
+0xebaa 0x8AC8
+0xebab 0x8ADE
+0xebac 0x8AE1
+0xebad 0x8AE8
+0xebae 0x8AFF
+0xebaf 0x8AEF
+0xebb0 0x8AFB
+0xebb1 0x8C91
+0xebb2 0x8C92
+0xebb3 0x8C90
+0xebb4 0x8CF5
+0xebb5 0x8CEE
+0xebb6 0x8CF1
+0xebb7 0x8CF0
+0xebb8 0x8CF3
+0xebb9 0x8D6C
+0xebba 0x8D6E
+0xebbb 0x8DA5
+0xebbc 0x8DA7
+0xebbd 0x8E33
+0xebbe 0x8E3E
+0xebbf 0x8E38
+0xebc0 0x8E40
+0xebc1 0x8E45
+0xebc2 0x8E36
+0xebc3 0x8E3C
+0xebc4 0x8E3D
+0xebc5 0x8E41
+0xebc6 0x8E30
+0xebc7 0x8E3F
+0xebc8 0x8EBD
+0xebc9 0x8F36
+0xebca 0x8F2E
+0xebcb 0x8F35
+0xebcc 0x8F32
+0xebcd 0x8F39
+0xebce 0x8F37
+0xebcf 0x8F34
+0xebd0 0x9076
+0xebd1 0x9079
+0xebd2 0x907B
+0xebd3 0x9086
+0xebd4 0x90FA
+0xebd5 0x9133
+0xebd6 0x9135
+0xebd7 0x9136
+0xebd8 0x9193
+0xebd9 0x9190
+0xebda 0x9191
+0xebdb 0x918D
+0xebdc 0x918F
+0xebdd 0x9327
+0xebde 0x931E
+0xebdf 0x9308
+0xebe0 0x931F
+0xebe1 0x9306
+0xebe2 0x930F
+0xebe3 0x937A
+0xebe4 0x9338
+0xebe5 0x933C
+0xebe6 0x931B
+0xebe7 0x9323
+0xebe8 0x9312
+0xebe9 0x9301
+0xebea 0x9346
+0xebeb 0x932D
+0xebec 0x930E
+0xebed 0x930D
+0xebee 0x92CB
+0xebef 0x931D
+0xebf0 0x92FA
+0xebf1 0x9325
+0xebf2 0x9313
+0xebf3 0x92F9
+0xebf4 0x92F7
+0xebf5 0x9334
+0xebf6 0x9302
+0xebf7 0x9324
+0xebf8 0x92FF
+0xebf9 0x9329
+0xebfa 0x9339
+0xebfb 0x9335
+0xebfc 0x932A
+0xebfd 0x9314
+0xebfe 0x930C
+0xec40 0x930B
+0xec41 0x92FE
+0xec42 0x9309
+0xec43 0x9300
+0xec44 0x92FB
+0xec45 0x9316
+0xec46 0x95BC
+0xec47 0x95CD
+0xec48 0x95BE
+0xec49 0x95B9
+0xec4a 0x95BA
+0xec4b 0x95B6
+0xec4c 0x95BF
+0xec4d 0x95B5
+0xec4e 0x95BD
+0xec4f 0x96A9
+0xec50 0x96D4
+0xec51 0x970B
+0xec52 0x9712
+0xec53 0x9710
+0xec54 0x9799
+0xec55 0x9797
+0xec56 0x9794
+0xec57 0x97F0
+0xec58 0x97F8
+0xec59 0x9835
+0xec5a 0x982F
+0xec5b 0x9832
+0xec5c 0x9924
+0xec5d 0x991F
+0xec5e 0x9927
+0xec5f 0x9929
+0xec60 0x999E
+0xec61 0x99EE
+0xec62 0x99EC
+0xec63 0x99E5
+0xec64 0x99E4
+0xec65 0x99F0
+0xec66 0x99E3
+0xec67 0x99EA
+0xec68 0x99E9
+0xec69 0x99E7
+0xec6a 0x9AB9
+0xec6b 0x9ABF
+0xec6c 0x9AB4
+0xec6d 0x9ABB
+0xec6e 0x9AF6
+0xec6f 0x9AFA
+0xec70 0x9AF9
+0xec71 0x9AF7
+0xec72 0x9B33
+0xec73 0x9B80
+0xec74 0x9B85
+0xec75 0x9B87
+0xec76 0x9B7C
+0xec77 0x9B7E
+0xec78 0x9B7B
+0xec79 0x9B82
+0xec7a 0x9B93
+0xec7b 0x9B92
+0xec7c 0x9B90
+0xec7d 0x9B7A
+0xec7e 0x9B95
+0xeca1 0x9B7D
+0xeca2 0x9B88
+0xeca3 0x9D25
+0xeca4 0x9D17
+0xeca5 0x9D20
+0xeca6 0x9D1E
+0xeca7 0x9D14
+0xeca8 0x9D29
+0xeca9 0x9D1D
+0xecaa 0x9D18
+0xecab 0x9D22
+0xecac 0x9D10
+0xecad 0x9D19
+0xecae 0x9D1F
+0xecaf 0x9E88
+0xecb0 0x9E86
+0xecb1 0x9E87
+0xecb2 0x9EAE
+0xecb3 0x9EAD
+0xecb4 0x9ED5
+0xecb5 0x9ED6
+0xecb6 0x9EFA
+0xecb7 0x9F12
+0xecb8 0x9F3D
+0xecb9 0x5126
+0xecba 0x5125
+0xecbb 0x5122
+0xecbc 0x5124
+0xecbd 0x5120
+0xecbe 0x5129
+0xecbf 0x52F4
+0xecc0 0x5693
+0xecc1 0x568C
+0xecc2 0x568D
+0xecc3 0x5686
+0xecc4 0x5684
+0xecc5 0x5683
+0xecc6 0x567E
+0xecc7 0x5682
+0xecc8 0x567F
+0xecc9 0x5681
+0xecca 0x58D6
+0xeccb 0x58D4
+0xeccc 0x58CF
+0xeccd 0x58D2
+0xecce 0x5B2D
+0xeccf 0x5B25
+0xecd0 0x5B32
+0xecd1 0x5B23
+0xecd2 0x5B2C
+0xecd3 0x5B27
+0xecd4 0x5B26
+0xecd5 0x5B2F
+0xecd6 0x5B2E
+0xecd7 0x5B7B
+0xecd8 0x5BF1
+0xecd9 0x5BF2
+0xecda 0x5DB7
+0xecdb 0x5E6C
+0xecdc 0x5E6A
+0xecdd 0x5FBE
+0xecde 0x5FBB
+0xecdf 0x61C3
+0xece0 0x61B5
+0xece1 0x61BC
+0xece2 0x61E7
+0xece3 0x61E0
+0xece4 0x61E5
+0xece5 0x61E4
+0xece6 0x61E8
+0xece7 0x61DE
+0xece8 0x64EF
+0xece9 0x64E9
+0xecea 0x64E3
+0xeceb 0x64EB
+0xecec 0x64E4
+0xeced 0x64E8
+0xecee 0x6581
+0xecef 0x6580
+0xecf0 0x65B6
+0xecf1 0x65DA
+0xecf2 0x66D2
+0xecf3 0x6A8D
+0xecf4 0x6A96
+0xecf5 0x6A81
+0xecf6 0x6AA5
+0xecf7 0x6A89
+0xecf8 0x6A9F
+0xecf9 0x6A9B
+0xecfa 0x6AA1
+0xecfb 0x6A9E
+0xecfc 0x6A87
+0xecfd 0x6A93
+0xecfe 0x6A8E
+0xed40 0x6A95
+0xed41 0x6A83
+0xed42 0x6AA8
+0xed43 0x6AA4
+0xed44 0x6A91
+0xed45 0x6A7F
+0xed46 0x6AA6
+0xed47 0x6A9A
+0xed48 0x6A85
+0xed49 0x6A8C
+0xed4a 0x6A92
+0xed4b 0x6B5B
+0xed4c 0x6BAD
+0xed4d 0x6C09
+0xed4e 0x6FCC
+0xed4f 0x6FA9
+0xed50 0x6FF4
+0xed51 0x6FD4
+0xed52 0x6FE3
+0xed53 0x6FDC
+0xed54 0x6FED
+0xed55 0x6FE7
+0xed56 0x6FE6
+0xed57 0x6FDE
+0xed58 0x6FF2
+0xed59 0x6FDD
+0xed5a 0x6FE2
+0xed5b 0x6FE8
+0xed5c 0x71E1
+0xed5d 0x71F1
+0xed5e 0x71E8
+0xed5f 0x71F2
+0xed60 0x71E4
+0xed61 0x71F0
+0xed62 0x71E2
+0xed63 0x7373
+0xed64 0x736E
+0xed65 0x736F
+0xed66 0x7497
+0xed67 0x74B2
+0xed68 0x74AB
+0xed69 0x7490
+0xed6a 0x74AA
+0xed6b 0x74AD
+0xed6c 0x74B1
+0xed6d 0x74A5
+0xed6e 0x74AF
+0xed6f 0x7510
+0xed70 0x7511
+0xed71 0x7512
+0xed72 0x750F
+0xed73 0x7584
+0xed74 0x7643
+0xed75 0x7648
+0xed76 0x7649
+0xed77 0x7647
+0xed78 0x76A4
+0xed79 0x76E9
+0xed7a 0x77B5
+0xed7b 0x77AB
+0xed7c 0x77B2
+0xed7d 0x77B7
+0xed7e 0x77B6
+0xeda1 0x77B4
+0xeda2 0x77B1
+0xeda3 0x77A8
+0xeda4 0x77F0
+0xeda5 0x78F3
+0xeda6 0x78FD
+0xeda7 0x7902
+0xeda8 0x78FB
+0xeda9 0x78FC
+0xedaa 0x78F2
+0xedab 0x7905
+0xedac 0x78F9
+0xedad 0x78FE
+0xedae 0x7904
+0xedaf 0x79AB
+0xedb0 0x79A8
+0xedb1 0x7A5C
+0xedb2 0x7A5B
+0xedb3 0x7A56
+0xedb4 0x7A58
+0xedb5 0x7A54
+0xedb6 0x7A5A
+0xedb7 0x7ABE
+0xedb8 0x7AC0
+0xedb9 0x7AC1
+0xedba 0x7C05
+0xedbb 0x7C0F
+0xedbc 0x7BF2
+0xedbd 0x7C00
+0xedbe 0x7BFF
+0xedbf 0x7BFB
+0xedc0 0x7C0E
+0xedc1 0x7BF4
+0xedc2 0x7C0B
+0xedc3 0x7BF3
+0xedc4 0x7C02
+0xedc5 0x7C09
+0xedc6 0x7C03
+0xedc7 0x7C01
+0xedc8 0x7BF8
+0xedc9 0x7BFD
+0xedca 0x7C06
+0xedcb 0x7BF0
+0xedcc 0x7BF1
+0xedcd 0x7C10
+0xedce 0x7C0A
+0xedcf 0x7CE8
+0xedd0 0x7E2D
+0xedd1 0x7E3C
+0xedd2 0x7E42
+0xedd3 0x7E33
+0xedd4 0x9848
+0xedd5 0x7E38
+0xedd6 0x7E2A
+0xedd7 0x7E49
+0xedd8 0x7E40
+0xedd9 0x7E47
+0xedda 0x7E29
+0xeddb 0x7E4C
+0xeddc 0x7E30
+0xeddd 0x7E3B
+0xedde 0x7E36
+0xeddf 0x7E44
+0xede0 0x7E3A
+0xede1 0x7F45
+0xede2 0x7F7F
+0xede3 0x7F7E
+0xede4 0x7F7D
+0xede5 0x7FF4
+0xede6 0x7FF2
+0xede7 0x802C
+0xede8 0x81BB
+0xede9 0x81C4
+0xedea 0x81CC
+0xedeb 0x81CA
+0xedec 0x81C5
+0xeded 0x81C7
+0xedee 0x81BC
+0xedef 0x81E9
+0xedf0 0x825B
+0xedf1 0x825A
+0xedf2 0x825C
+0xedf3 0x8583
+0xedf4 0x8580
+0xedf5 0x858F
+0xedf6 0x85A7
+0xedf7 0x8595
+0xedf8 0x85A0
+0xedf9 0x858B
+0xedfa 0x85A3
+0xedfb 0x857B
+0xedfc 0x85A4
+0xedfd 0x859A
+0xedfe 0x859E
+0xee40 0x8577
+0xee41 0x857C
+0xee42 0x8589
+0xee43 0x85A1
+0xee44 0x857A
+0xee45 0x8578
+0xee46 0x8557
+0xee47 0x858E
+0xee48 0x8596
+0xee49 0x8586
+0xee4a 0x858D
+0xee4b 0x8599
+0xee4c 0x859D
+0xee4d 0x8581
+0xee4e 0x85A2
+0xee4f 0x8582
+0xee50 0x8588
+0xee51 0x8585
+0xee52 0x8579
+0xee53 0x8576
+0xee54 0x8598
+0xee55 0x8590
+0xee56 0x859F
+0xee57 0x8668
+0xee58 0x87BE
+0xee59 0x87AA
+0xee5a 0x87AD
+0xee5b 0x87C5
+0xee5c 0x87B0
+0xee5d 0x87AC
+0xee5e 0x87B9
+0xee5f 0x87B5
+0xee60 0x87BC
+0xee61 0x87AE
+0xee62 0x87C9
+0xee63 0x87C3
+0xee64 0x87C2
+0xee65 0x87CC
+0xee66 0x87B7
+0xee67 0x87AF
+0xee68 0x87C4
+0xee69 0x87CA
+0xee6a 0x87B4
+0xee6b 0x87B6
+0xee6c 0x87BF
+0xee6d 0x87B8
+0xee6e 0x87BD
+0xee6f 0x87DE
+0xee70 0x87B2
+0xee71 0x8935
+0xee72 0x8933
+0xee73 0x893C
+0xee74 0x893E
+0xee75 0x8941
+0xee76 0x8952
+0xee77 0x8937
+0xee78 0x8942
+0xee79 0x89AD
+0xee7a 0x89AF
+0xee7b 0x89AE
+0xee7c 0x89F2
+0xee7d 0x89F3
+0xee7e 0x8B1E
+0xeea1 0x8B18
+0xeea2 0x8B16
+0xeea3 0x8B11
+0xeea4 0x8B05
+0xeea5 0x8B0B
+0xeea6 0x8B22
+0xeea7 0x8B0F
+0xeea8 0x8B12
+0xeea9 0x8B15
+0xeeaa 0x8B07
+0xeeab 0x8B0D
+0xeeac 0x8B08
+0xeead 0x8B06
+0xeeae 0x8B1C
+0xeeaf 0x8B13
+0xeeb0 0x8B1A
+0xeeb1 0x8C4F
+0xeeb2 0x8C70
+0xeeb3 0x8C72
+0xeeb4 0x8C71
+0xeeb5 0x8C6F
+0xeeb6 0x8C95
+0xeeb7 0x8C94
+0xeeb8 0x8CF9
+0xeeb9 0x8D6F
+0xeeba 0x8E4E
+0xeebb 0x8E4D
+0xeebc 0x8E53
+0xeebd 0x8E50
+0xeebe 0x8E4C
+0xeebf 0x8E47
+0xeec0 0x8F43
+0xeec1 0x8F40
+0xeec2 0x9085
+0xeec3 0x907E
+0xeec4 0x9138
+0xeec5 0x919A
+0xeec6 0x91A2
+0xeec7 0x919B
+0xeec8 0x9199
+0xeec9 0x919F
+0xeeca 0x91A1
+0xeecb 0x919D
+0xeecc 0x91A0
+0xeecd 0x93A1
+0xeece 0x9383
+0xeecf 0x93AF
+0xeed0 0x9364
+0xeed1 0x9356
+0xeed2 0x9347
+0xeed3 0x937C
+0xeed4 0x9358
+0xeed5 0x935C
+0xeed6 0x9376
+0xeed7 0x9349
+0xeed8 0x9350
+0xeed9 0x9351
+0xeeda 0x9360
+0xeedb 0x936D
+0xeedc 0x938F
+0xeedd 0x934C
+0xeede 0x936A
+0xeedf 0x9379
+0xeee0 0x9357
+0xeee1 0x9355
+0xeee2 0x9352
+0xeee3 0x934F
+0xeee4 0x9371
+0xeee5 0x9377
+0xeee6 0x937B
+0xeee7 0x9361
+0xeee8 0x935E
+0xeee9 0x9363
+0xeeea 0x9367
+0xeeeb 0x9380
+0xeeec 0x934E
+0xeeed 0x9359
+0xeeee 0x95C7
+0xeeef 0x95C0
+0xeef0 0x95C9
+0xeef1 0x95C3
+0xeef2 0x95C5
+0xeef3 0x95B7
+0xeef4 0x96AE
+0xeef5 0x96B0
+0xeef6 0x96AC
+0xeef7 0x9720
+0xeef8 0x971F
+0xeef9 0x9718
+0xeefa 0x971D
+0xeefb 0x9719
+0xeefc 0x979A
+0xeefd 0x97A1
+0xeefe 0x979C
+0xef40 0x979E
+0xef41 0x979D
+0xef42 0x97D5
+0xef43 0x97D4
+0xef44 0x97F1
+0xef45 0x9841
+0xef46 0x9844
+0xef47 0x984A
+0xef48 0x9849
+0xef49 0x9845
+0xef4a 0x9843
+0xef4b 0x9925
+0xef4c 0x992B
+0xef4d 0x992C
+0xef4e 0x992A
+0xef4f 0x9933
+0xef50 0x9932
+0xef51 0x992F
+0xef52 0x992D
+0xef53 0x9931
+0xef54 0x9930
+0xef55 0x9998
+0xef56 0x99A3
+0xef57 0x99A1
+0xef58 0x9A02
+0xef59 0x99FA
+0xef5a 0x99F4
+0xef5b 0x99F7
+0xef5c 0x99F9
+0xef5d 0x99F8
+0xef5e 0x99F6
+0xef5f 0x99FB
+0xef60 0x99FD
+0xef61 0x99FE
+0xef62 0x99FC
+0xef63 0x9A03
+0xef64 0x9ABE
+0xef65 0x9AFE
+0xef66 0x9AFD
+0xef67 0x9B01
+0xef68 0x9AFC
+0xef69 0x9B48
+0xef6a 0x9B9A
+0xef6b 0x9BA8
+0xef6c 0x9B9E
+0xef6d 0x9B9B
+0xef6e 0x9BA6
+0xef6f 0x9BA1
+0xef70 0x9BA5
+0xef71 0x9BA4
+0xef72 0x9B86
+0xef73 0x9BA2
+0xef74 0x9BA0
+0xef75 0x9BAF
+0xef76 0x9D33
+0xef77 0x9D41
+0xef78 0x9D67
+0xef79 0x9D36
+0xef7a 0x9D2E
+0xef7b 0x9D2F
+0xef7c 0x9D31
+0xef7d 0x9D38
+0xef7e 0x9D30
+0xefa1 0x9D45
+0xefa2 0x9D42
+0xefa3 0x9D43
+0xefa4 0x9D3E
+0xefa5 0x9D37
+0xefa6 0x9D40
+0xefa7 0x9D3D
+0xefa8 0x7FF5
+0xefa9 0x9D2D
+0xefaa 0x9E8A
+0xefab 0x9E89
+0xefac 0x9E8D
+0xefad 0x9EB0
+0xefae 0x9EC8
+0xefaf 0x9EDA
+0xefb0 0x9EFB
+0xefb1 0x9EFF
+0xefb2 0x9F24
+0xefb3 0x9F23
+0xefb4 0x9F22
+0xefb5 0x9F54
+0xefb6 0x9FA0
+0xefb7 0x5131
+0xefb8 0x512D
+0xefb9 0x512E
+0xefba 0x5698
+0xefbb 0x569C
+0xefbc 0x5697
+0xefbd 0x569A
+0xefbe 0x569D
+0xefbf 0x5699
+0xefc0 0x5970
+0xefc1 0x5B3C
+0xefc2 0x5C69
+0xefc3 0x5C6A
+0xefc4 0x5DC0
+0xefc5 0x5E6D
+0xefc6 0x5E6E
+0xefc7 0x61D8
+0xefc8 0x61DF
+0xefc9 0x61ED
+0xefca 0x61EE
+0xefcb 0x61F1
+0xefcc 0x61EA
+0xefcd 0x61F0
+0xefce 0x61EB
+0xefcf 0x61D6
+0xefd0 0x61E9
+0xefd1 0x64FF
+0xefd2 0x6504
+0xefd3 0x64FD
+0xefd4 0x64F8
+0xefd5 0x6501
+0xefd6 0x6503
+0xefd7 0x64FC
+0xefd8 0x6594
+0xefd9 0x65DB
+0xefda 0x66DA
+0xefdb 0x66DB
+0xefdc 0x66D8
+0xefdd 0x6AC5
+0xefde 0x6AB9
+0xefdf 0x6ABD
+0xefe0 0x6AE1
+0xefe1 0x6AC6
+0xefe2 0x6ABA
+0xefe3 0x6AB6
+0xefe4 0x6AB7
+0xefe5 0x6AC7
+0xefe6 0x6AB4
+0xefe7 0x6AAD
+0xefe8 0x6B5E
+0xefe9 0x6BC9
+0xefea 0x6C0B
+0xefeb 0x7007
+0xefec 0x700C
+0xefed 0x700D
+0xefee 0x7001
+0xefef 0x7005
+0xeff0 0x7014
+0xeff1 0x700E
+0xeff2 0x6FFF
+0xeff3 0x7000
+0xeff4 0x6FFB
+0xeff5 0x7026
+0xeff6 0x6FFC
+0xeff7 0x6FF7
+0xeff8 0x700A
+0xeff9 0x7201
+0xeffa 0x71FF
+0xeffb 0x71F9
+0xeffc 0x7203
+0xeffd 0x71FD
+0xeffe 0x7376
+0xf040 0x74B8
+0xf041 0x74C0
+0xf042 0x74B5
+0xf043 0x74C1
+0xf044 0x74BE
+0xf045 0x74B6
+0xf046 0x74BB
+0xf047 0x74C2
+0xf048 0x7514
+0xf049 0x7513
+0xf04a 0x765C
+0xf04b 0x7664
+0xf04c 0x7659
+0xf04d 0x7650
+0xf04e 0x7653
+0xf04f 0x7657
+0xf050 0x765A
+0xf051 0x76A6
+0xf052 0x76BD
+0xf053 0x76EC
+0xf054 0x77C2
+0xf055 0x77BA
+0xf056 0x78FF
+0xf057 0x790C
+0xf058 0x7913
+0xf059 0x7914
+0xf05a 0x7909
+0xf05b 0x7910
+0xf05c 0x7912
+0xf05d 0x7911
+0xf05e 0x79AD
+0xf05f 0x79AC
+0xf060 0x7A5F
+0xf061 0x7C1C
+0xf062 0x7C29
+0xf063 0x7C19
+0xf064 0x7C20
+0xf065 0x7C1F
+0xf066 0x7C2D
+0xf067 0x7C1D
+0xf068 0x7C26
+0xf069 0x7C28
+0xf06a 0x7C22
+0xf06b 0x7C25
+0xf06c 0x7C30
+0xf06d 0x7E5C
+0xf06e 0x7E50
+0xf06f 0x7E56
+0xf070 0x7E63
+0xf071 0x7E58
+0xf072 0x7E62
+0xf073 0x7E5F
+0xf074 0x7E51
+0xf075 0x7E60
+0xf076 0x7E57
+0xf077 0x7E53
+0xf078 0x7FB5
+0xf079 0x7FB3
+0xf07a 0x7FF7
+0xf07b 0x7FF8
+0xf07c 0x8075
+0xf07d 0x81D1
+0xf07e 0x81D2
+0xf0a1 0x81D0
+0xf0a2 0x825F
+0xf0a3 0x825E
+0xf0a4 0x85B4
+0xf0a5 0x85C6
+0xf0a6 0x85C0
+0xf0a7 0x85C3
+0xf0a8 0x85C2
+0xf0a9 0x85B3
+0xf0aa 0x85B5
+0xf0ab 0x85BD
+0xf0ac 0x85C7
+0xf0ad 0x85C4
+0xf0ae 0x85BF
+0xf0af 0x85CB
+0xf0b0 0x85CE
+0xf0b1 0x85C8
+0xf0b2 0x85C5
+0xf0b3 0x85B1
+0xf0b4 0x85B6
+0xf0b5 0x85D2
+0xf0b6 0x8624
+0xf0b7 0x85B8
+0xf0b8 0x85B7
+0xf0b9 0x85BE
+0xf0ba 0x8669
+0xf0bb 0x87E7
+0xf0bc 0x87E6
+0xf0bd 0x87E2
+0xf0be 0x87DB
+0xf0bf 0x87EB
+0xf0c0 0x87EA
+0xf0c1 0x87E5
+0xf0c2 0x87DF
+0xf0c3 0x87F3
+0xf0c4 0x87E4
+0xf0c5 0x87D4
+0xf0c6 0x87DC
+0xf0c7 0x87D3
+0xf0c8 0x87ED
+0xf0c9 0x87D8
+0xf0ca 0x87E3
+0xf0cb 0x87A4
+0xf0cc 0x87D7
+0xf0cd 0x87D9
+0xf0ce 0x8801
+0xf0cf 0x87F4
+0xf0d0 0x87E8
+0xf0d1 0x87DD
+0xf0d2 0x8953
+0xf0d3 0x894B
+0xf0d4 0x894F
+0xf0d5 0x894C
+0xf0d6 0x8946
+0xf0d7 0x8950
+0xf0d8 0x8951
+0xf0d9 0x8949
+0xf0da 0x8B2A
+0xf0db 0x8B27
+0xf0dc 0x8B23
+0xf0dd 0x8B33
+0xf0de 0x8B30
+0xf0df 0x8B35
+0xf0e0 0x8B47
+0xf0e1 0x8B2F
+0xf0e2 0x8B3C
+0xf0e3 0x8B3E
+0xf0e4 0x8B31
+0xf0e5 0x8B25
+0xf0e6 0x8B37
+0xf0e7 0x8B26
+0xf0e8 0x8B36
+0xf0e9 0x8B2E
+0xf0ea 0x8B24
+0xf0eb 0x8B3B
+0xf0ec 0x8B3D
+0xf0ed 0x8B3A
+0xf0ee 0x8C42
+0xf0ef 0x8C75
+0xf0f0 0x8C99
+0xf0f1 0x8C98
+0xf0f2 0x8C97
+0xf0f3 0x8CFE
+0xf0f4 0x8D04
+0xf0f5 0x8D02
+0xf0f6 0x8D00
+0xf0f7 0x8E5C
+0xf0f8 0x8E62
+0xf0f9 0x8E60
+0xf0fa 0x8E57
+0xf0fb 0x8E56
+0xf0fc 0x8E5E
+0xf0fd 0x8E65
+0xf0fe 0x8E67
+0xf140 0x8E5B
+0xf141 0x8E5A
+0xf142 0x8E61
+0xf143 0x8E5D
+0xf144 0x8E69
+0xf145 0x8E54
+0xf146 0x8F46
+0xf147 0x8F47
+0xf148 0x8F48
+0xf149 0x8F4B
+0xf14a 0x9128
+0xf14b 0x913A
+0xf14c 0x913B
+0xf14d 0x913E
+0xf14e 0x91A8
+0xf14f 0x91A5
+0xf150 0x91A7
+0xf151 0x91AF
+0xf152 0x91AA
+0xf153 0x93B5
+0xf154 0x938C
+0xf155 0x9392
+0xf156 0x93B7
+0xf157 0x939B
+0xf158 0x939D
+0xf159 0x9389
+0xf15a 0x93A7
+0xf15b 0x938E
+0xf15c 0x93AA
+0xf15d 0x939E
+0xf15e 0x93A6
+0xf15f 0x9395
+0xf160 0x9388
+0xf161 0x9399
+0xf162 0x939F
+0xf163 0x938D
+0xf164 0x93B1
+0xf165 0x9391
+0xf166 0x93B2
+0xf167 0x93A4
+0xf168 0x93A8
+0xf169 0x93B4
+0xf16a 0x93A3
+0xf16b 0x93A5
+0xf16c 0x95D2
+0xf16d 0x95D3
+0xf16e 0x95D1
+0xf16f 0x96B3
+0xf170 0x96D7
+0xf171 0x96DA
+0xf172 0x5DC2
+0xf173 0x96DF
+0xf174 0x96D8
+0xf175 0x96DD
+0xf176 0x9723
+0xf177 0x9722
+0xf178 0x9725
+0xf179 0x97AC
+0xf17a 0x97AE
+0xf17b 0x97A8
+0xf17c 0x97AB
+0xf17d 0x97A4
+0xf17e 0x97AA
+0xf1a1 0x97A2
+0xf1a2 0x97A5
+0xf1a3 0x97D7
+0xf1a4 0x97D9
+0xf1a5 0x97D6
+0xf1a6 0x97D8
+0xf1a7 0x97FA
+0xf1a8 0x9850
+0xf1a9 0x9851
+0xf1aa 0x9852
+0xf1ab 0x98B8
+0xf1ac 0x9941
+0xf1ad 0x993C
+0xf1ae 0x993A
+0xf1af 0x9A0F
+0xf1b0 0x9A0B
+0xf1b1 0x9A09
+0xf1b2 0x9A0D
+0xf1b3 0x9A04
+0xf1b4 0x9A11
+0xf1b5 0x9A0A
+0xf1b6 0x9A05
+0xf1b7 0x9A07
+0xf1b8 0x9A06
+0xf1b9 0x9AC0
+0xf1ba 0x9ADC
+0xf1bb 0x9B08
+0xf1bc 0x9B04
+0xf1bd 0x9B05
+0xf1be 0x9B29
+0xf1bf 0x9B35
+0xf1c0 0x9B4A
+0xf1c1 0x9B4C
+0xf1c2 0x9B4B
+0xf1c3 0x9BC7
+0xf1c4 0x9BC6
+0xf1c5 0x9BC3
+0xf1c6 0x9BBF
+0xf1c7 0x9BC1
+0xf1c8 0x9BB5
+0xf1c9 0x9BB8
+0xf1ca 0x9BD3
+0xf1cb 0x9BB6
+0xf1cc 0x9BC4
+0xf1cd 0x9BB9
+0xf1ce 0x9BBD
+0xf1cf 0x9D5C
+0xf1d0 0x9D53
+0xf1d1 0x9D4F
+0xf1d2 0x9D4A
+0xf1d3 0x9D5B
+0xf1d4 0x9D4B
+0xf1d5 0x9D59
+0xf1d6 0x9D56
+0xf1d7 0x9D4C
+0xf1d8 0x9D57
+0xf1d9 0x9D52
+0xf1da 0x9D54
+0xf1db 0x9D5F
+0xf1dc 0x9D58
+0xf1dd 0x9D5A
+0xf1de 0x9E8E
+0xf1df 0x9E8C
+0xf1e0 0x9EDF
+0xf1e1 0x9F01
+0xf1e2 0x9F00
+0xf1e3 0x9F16
+0xf1e4 0x9F25
+0xf1e5 0x9F2B
+0xf1e6 0x9F2A
+0xf1e7 0x9F29
+0xf1e8 0x9F28
+0xf1e9 0x9F4C
+0xf1ea 0x9F55
+0xf1eb 0x5134
+0xf1ec 0x5135
+0xf1ed 0x5296
+0xf1ee 0x52F7
+0xf1ef 0x53B4
+0xf1f0 0x56AB
+0xf1f1 0x56AD
+0xf1f2 0x56A6
+0xf1f3 0x56A7
+0xf1f4 0x56AA
+0xf1f5 0x56AC
+0xf1f6 0x58DA
+0xf1f7 0x58DD
+0xf1f8 0x58DB
+0xf1f9 0x5912
+0xf1fa 0x5B3D
+0xf1fb 0x5B3E
+0xf1fc 0x5B3F
+0xf1fd 0x5DC3
+0xf1fe 0x5E70
+0xf240 0x5FBF
+0xf241 0x61FB
+0xf242 0x6507
+0xf243 0x6510
+0xf244 0x650D
+0xf245 0x6509
+0xf246 0x650C
+0xf247 0x650E
+0xf248 0x6584
+0xf249 0x65DE
+0xf24a 0x65DD
+0xf24b 0x66DE
+0xf24c 0x6AE7
+0xf24d 0x6AE0
+0xf24e 0x6ACC
+0xf24f 0x6AD1
+0xf250 0x6AD9
+0xf251 0x6ACB
+0xf252 0x6ADF
+0xf253 0x6ADC
+0xf254 0x6AD0
+0xf255 0x6AEB
+0xf256 0x6ACF
+0xf257 0x6ACD
+0xf258 0x6ADE
+0xf259 0x6B60
+0xf25a 0x6BB0
+0xf25b 0x6C0C
+0xf25c 0x7019
+0xf25d 0x7027
+0xf25e 0x7020
+0xf25f 0x7016
+0xf260 0x702B
+0xf261 0x7021
+0xf262 0x7022
+0xf263 0x7023
+0xf264 0x7029
+0xf265 0x7017
+0xf266 0x7024
+0xf267 0x701C
+0xf268 0x702A
+0xf269 0x720C
+0xf26a 0x720A
+0xf26b 0x7207
+0xf26c 0x7202
+0xf26d 0x7205
+0xf26e 0x72A5
+0xf26f 0x72A6
+0xf270 0x72A4
+0xf271 0x72A3
+0xf272 0x72A1
+0xf273 0x74CB
+0xf274 0x74C5
+0xf275 0x74B7
+0xf276 0x74C3
+0xf277 0x7516
+0xf278 0x7660
+0xf279 0x77C9
+0xf27a 0x77CA
+0xf27b 0x77C4
+0xf27c 0x77F1
+0xf27d 0x791D
+0xf27e 0x791B
+0xf2a1 0x7921
+0xf2a2 0x791C
+0xf2a3 0x7917
+0xf2a4 0x791E
+0xf2a5 0x79B0
+0xf2a6 0x7A67
+0xf2a7 0x7A68
+0xf2a8 0x7C33
+0xf2a9 0x7C3C
+0xf2aa 0x7C39
+0xf2ab 0x7C2C
+0xf2ac 0x7C3B
+0xf2ad 0x7CEC
+0xf2ae 0x7CEA
+0xf2af 0x7E76
+0xf2b0 0x7E75
+0xf2b1 0x7E78
+0xf2b2 0x7E70
+0xf2b3 0x7E77
+0xf2b4 0x7E6F
+0xf2b5 0x7E7A
+0xf2b6 0x7E72
+0xf2b7 0x7E74
+0xf2b8 0x7E68
+0xf2b9 0x7F4B
+0xf2ba 0x7F4A
+0xf2bb 0x7F83
+0xf2bc 0x7F86
+0xf2bd 0x7FB7
+0xf2be 0x7FFD
+0xf2bf 0x7FFE
+0xf2c0 0x8078
+0xf2c1 0x81D7
+0xf2c2 0x81D5
+0xf2c3 0x8264
+0xf2c4 0x8261
+0xf2c5 0x8263
+0xf2c6 0x85EB
+0xf2c7 0x85F1
+0xf2c8 0x85ED
+0xf2c9 0x85D9
+0xf2ca 0x85E1
+0xf2cb 0x85E8
+0xf2cc 0x85DA
+0xf2cd 0x85D7
+0xf2ce 0x85EC
+0xf2cf 0x85F2
+0xf2d0 0x85F8
+0xf2d1 0x85D8
+0xf2d2 0x85DF
+0xf2d3 0x85E3
+0xf2d4 0x85DC
+0xf2d5 0x85D1
+0xf2d6 0x85F0
+0xf2d7 0x85E6
+0xf2d8 0x85EF
+0xf2d9 0x85DE
+0xf2da 0x85E2
+0xf2db 0x8800
+0xf2dc 0x87FA
+0xf2dd 0x8803
+0xf2de 0x87F6
+0xf2df 0x87F7
+0xf2e0 0x8809
+0xf2e1 0x880C
+0xf2e2 0x880B
+0xf2e3 0x8806
+0xf2e4 0x87FC
+0xf2e5 0x8808
+0xf2e6 0x87FF
+0xf2e7 0x880A
+0xf2e8 0x8802
+0xf2e9 0x8962
+0xf2ea 0x895A
+0xf2eb 0x895B
+0xf2ec 0x8957
+0xf2ed 0x8961
+0xf2ee 0x895C
+0xf2ef 0x8958
+0xf2f0 0x895D
+0xf2f1 0x8959
+0xf2f2 0x8988
+0xf2f3 0x89B7
+0xf2f4 0x89B6
+0xf2f5 0x89F6
+0xf2f6 0x8B50
+0xf2f7 0x8B48
+0xf2f8 0x8B4A
+0xf2f9 0x8B40
+0xf2fa 0x8B53
+0xf2fb 0x8B56
+0xf2fc 0x8B54
+0xf2fd 0x8B4B
+0xf2fe 0x8B55
+0xf340 0x8B51
+0xf341 0x8B42
+0xf342 0x8B52
+0xf343 0x8B57
+0xf344 0x8C43
+0xf345 0x8C77
+0xf346 0x8C76
+0xf347 0x8C9A
+0xf348 0x8D06
+0xf349 0x8D07
+0xf34a 0x8D09
+0xf34b 0x8DAC
+0xf34c 0x8DAA
+0xf34d 0x8DAD
+0xf34e 0x8DAB
+0xf34f 0x8E6D
+0xf350 0x8E78
+0xf351 0x8E73
+0xf352 0x8E6A
+0xf353 0x8E6F
+0xf354 0x8E7B
+0xf355 0x8EC2
+0xf356 0x8F52
+0xf357 0x8F51
+0xf358 0x8F4F
+0xf359 0x8F50
+0xf35a 0x8F53
+0xf35b 0x8FB4
+0xf35c 0x9140
+0xf35d 0x913F
+0xf35e 0x91B0
+0xf35f 0x91AD
+0xf360 0x93DE
+0xf361 0x93C7
+0xf362 0x93CF
+0xf363 0x93C2
+0xf364 0x93DA
+0xf365 0x93D0
+0xf366 0x93F9
+0xf367 0x93EC
+0xf368 0x93CC
+0xf369 0x93D9
+0xf36a 0x93A9
+0xf36b 0x93E6
+0xf36c 0x93CA
+0xf36d 0x93D4
+0xf36e 0x93EE
+0xf36f 0x93E3
+0xf370 0x93D5
+0xf371 0x93C4
+0xf372 0x93CE
+0xf373 0x93C0
+0xf374 0x93D2
+0xf375 0x93E7
+0xf376 0x957D
+0xf377 0x95DA
+0xf378 0x95DB
+0xf379 0x96E1
+0xf37a 0x9729
+0xf37b 0x972B
+0xf37c 0x972C
+0xf37d 0x9728
+0xf37e 0x9726
+0xf3a1 0x97B3
+0xf3a2 0x97B7
+0xf3a3 0x97B6
+0xf3a4 0x97DD
+0xf3a5 0x97DE
+0xf3a6 0x97DF
+0xf3a7 0x985C
+0xf3a8 0x9859
+0xf3a9 0x985D
+0xf3aa 0x9857
+0xf3ab 0x98BF
+0xf3ac 0x98BD
+0xf3ad 0x98BB
+0xf3ae 0x98BE
+0xf3af 0x9948
+0xf3b0 0x9947
+0xf3b1 0x9943
+0xf3b2 0x99A6
+0xf3b3 0x99A7
+0xf3b4 0x9A1A
+0xf3b5 0x9A15
+0xf3b6 0x9A25
+0xf3b7 0x9A1D
+0xf3b8 0x9A24
+0xf3b9 0x9A1B
+0xf3ba 0x9A22
+0xf3bb 0x9A20
+0xf3bc 0x9A27
+0xf3bd 0x9A23
+0xf3be 0x9A1E
+0xf3bf 0x9A1C
+0xf3c0 0x9A14
+0xf3c1 0x9AC2
+0xf3c2 0x9B0B
+0xf3c3 0x9B0A
+0xf3c4 0x9B0E
+0xf3c5 0x9B0C
+0xf3c6 0x9B37
+0xf3c7 0x9BEA
+0xf3c8 0x9BEB
+0xf3c9 0x9BE0
+0xf3ca 0x9BDE
+0xf3cb 0x9BE4
+0xf3cc 0x9BE6
+0xf3cd 0x9BE2
+0xf3ce 0x9BF0
+0xf3cf 0x9BD4
+0xf3d0 0x9BD7
+0xf3d1 0x9BEC
+0xf3d2 0x9BDC
+0xf3d3 0x9BD9
+0xf3d4 0x9BE5
+0xf3d5 0x9BD5
+0xf3d6 0x9BE1
+0xf3d7 0x9BDA
+0xf3d8 0x9D77
+0xf3d9 0x9D81
+0xf3da 0x9D8A
+0xf3db 0x9D84
+0xf3dc 0x9D88
+0xf3dd 0x9D71
+0xf3de 0x9D80
+0xf3df 0x9D78
+0xf3e0 0x9D86
+0xf3e1 0x9D8B
+0xf3e2 0x9D8C
+0xf3e3 0x9D7D
+0xf3e4 0x9D6B
+0xf3e5 0x9D74
+0xf3e6 0x9D75
+0xf3e7 0x9D70
+0xf3e8 0x9D69
+0xf3e9 0x9D85
+0xf3ea 0x9D73
+0xf3eb 0x9D7B
+0xf3ec 0x9D82
+0xf3ed 0x9D6F
+0xf3ee 0x9D79
+0xf3ef 0x9D7F
+0xf3f0 0x9D87
+0xf3f1 0x9D68
+0xf3f2 0x9E94
+0xf3f3 0x9E91
+0xf3f4 0x9EC0
+0xf3f5 0x9EFC
+0xf3f6 0x9F2D
+0xf3f7 0x9F40
+0xf3f8 0x9F41
+0xf3f9 0x9F4D
+0xf3fa 0x9F56
+0xf3fb 0x9F57
+0xf3fc 0x9F58
+0xf3fd 0x5337
+0xf3fe 0x56B2
+0xf440 0x56B5
+0xf441 0x56B3
+0xf442 0x58E3
+0xf443 0x5B45
+0xf444 0x5DC6
+0xf445 0x5DC7
+0xf446 0x5EEE
+0xf447 0x5EEF
+0xf448 0x5FC0
+0xf449 0x5FC1
+0xf44a 0x61F9
+0xf44b 0x6517
+0xf44c 0x6516
+0xf44d 0x6515
+0xf44e 0x6513
+0xf44f 0x65DF
+0xf450 0x66E8
+0xf451 0x66E3
+0xf452 0x66E4
+0xf453 0x6AF3
+0xf454 0x6AF0
+0xf455 0x6AEA
+0xf456 0x6AE8
+0xf457 0x6AF9
+0xf458 0x6AF1
+0xf459 0x6AEE
+0xf45a 0x6AEF
+0xf45b 0x703C
+0xf45c 0x7035
+0xf45d 0x702F
+0xf45e 0x7037
+0xf45f 0x7034
+0xf460 0x7031
+0xf461 0x7042
+0xf462 0x7038
+0xf463 0x703F
+0xf464 0x703A
+0xf465 0x7039
+0xf466 0x7040
+0xf467 0x703B
+0xf468 0x7033
+0xf469 0x7041
+0xf46a 0x7213
+0xf46b 0x7214
+0xf46c 0x72A8
+0xf46d 0x737D
+0xf46e 0x737C
+0xf46f 0x74BA
+0xf470 0x76AB
+0xf471 0x76AA
+0xf472 0x76BE
+0xf473 0x76ED
+0xf474 0x77CC
+0xf475 0x77CE
+0xf476 0x77CF
+0xf477 0x77CD
+0xf478 0x77F2
+0xf479 0x7925
+0xf47a 0x7923
+0xf47b 0x7927
+0xf47c 0x7928
+0xf47d 0x7924
+0xf47e 0x7929
+0xf4a1 0x79B2
+0xf4a2 0x7A6E
+0xf4a3 0x7A6C
+0xf4a4 0x7A6D
+0xf4a5 0x7AF7
+0xf4a6 0x7C49
+0xf4a7 0x7C48
+0xf4a8 0x7C4A
+0xf4a9 0x7C47
+0xf4aa 0x7C45
+0xf4ab 0x7CEE
+0xf4ac 0x7E7B
+0xf4ad 0x7E7E
+0xf4ae 0x7E81
+0xf4af 0x7E80
+0xf4b0 0x7FBA
+0xf4b1 0x7FFF
+0xf4b2 0x8079
+0xf4b3 0x81DB
+0xf4b4 0x81D9
+0xf4b5 0x820B
+0xf4b6 0x8268
+0xf4b7 0x8269
+0xf4b8 0x8622
+0xf4b9 0x85FF
+0xf4ba 0x8601
+0xf4bb 0x85FE
+0xf4bc 0x861B
+0xf4bd 0x8600
+0xf4be 0x85F6
+0xf4bf 0x8604
+0xf4c0 0x8609
+0xf4c1 0x8605
+0xf4c2 0x860C
+0xf4c3 0x85FD
+0xf4c4 0x8819
+0xf4c5 0x8810
+0xf4c6 0x8811
+0xf4c7 0x8817
+0xf4c8 0x8813
+0xf4c9 0x8816
+0xf4ca 0x8963
+0xf4cb 0x8966
+0xf4cc 0x89B9
+0xf4cd 0x89F7
+0xf4ce 0x8B60
+0xf4cf 0x8B6A
+0xf4d0 0x8B5D
+0xf4d1 0x8B68
+0xf4d2 0x8B63
+0xf4d3 0x8B65
+0xf4d4 0x8B67
+0xf4d5 0x8B6D
+0xf4d6 0x8DAE
+0xf4d7 0x8E86
+0xf4d8 0x8E88
+0xf4d9 0x8E84
+0xf4da 0x8F59
+0xf4db 0x8F56
+0xf4dc 0x8F57
+0xf4dd 0x8F55
+0xf4de 0x8F58
+0xf4df 0x8F5A
+0xf4e0 0x908D
+0xf4e1 0x9143
+0xf4e2 0x9141
+0xf4e3 0x91B7
+0xf4e4 0x91B5
+0xf4e5 0x91B2
+0xf4e6 0x91B3
+0xf4e7 0x940B
+0xf4e8 0x9413
+0xf4e9 0x93FB
+0xf4ea 0x9420
+0xf4eb 0x940F
+0xf4ec 0x9414
+0xf4ed 0x93FE
+0xf4ee 0x9415
+0xf4ef 0x9410
+0xf4f0 0x9428
+0xf4f1 0x9419
+0xf4f2 0x940D
+0xf4f3 0x93F5
+0xf4f4 0x9400
+0xf4f5 0x93F7
+0xf4f6 0x9407
+0xf4f7 0x940E
+0xf4f8 0x9416
+0xf4f9 0x9412
+0xf4fa 0x93FA
+0xf4fb 0x9409
+0xf4fc 0x93F8
+0xf4fd 0x940A
+0xf4fe 0x93FF
+0xf540 0x93FC
+0xf541 0x940C
+0xf542 0x93F6
+0xf543 0x9411
+0xf544 0x9406
+0xf545 0x95DE
+0xf546 0x95E0
+0xf547 0x95DF
+0xf548 0x972E
+0xf549 0x972F
+0xf54a 0x97B9
+0xf54b 0x97BB
+0xf54c 0x97FD
+0xf54d 0x97FE
+0xf54e 0x9860
+0xf54f 0x9862
+0xf550 0x9863
+0xf551 0x985F
+0xf552 0x98C1
+0xf553 0x98C2
+0xf554 0x9950
+0xf555 0x994E
+0xf556 0x9959
+0xf557 0x994C
+0xf558 0x994B
+0xf559 0x9953
+0xf55a 0x9A32
+0xf55b 0x9A34
+0xf55c 0x9A31
+0xf55d 0x9A2C
+0xf55e 0x9A2A
+0xf55f 0x9A36
+0xf560 0x9A29
+0xf561 0x9A2E
+0xf562 0x9A38
+0xf563 0x9A2D
+0xf564 0x9AC7
+0xf565 0x9ACA
+0xf566 0x9AC6
+0xf567 0x9B10
+0xf568 0x9B12
+0xf569 0x9B11
+0xf56a 0x9C0B
+0xf56b 0x9C08
+0xf56c 0x9BF7
+0xf56d 0x9C05
+0xf56e 0x9C12
+0xf56f 0x9BF8
+0xf570 0x9C40
+0xf571 0x9C07
+0xf572 0x9C0E
+0xf573 0x9C06
+0xf574 0x9C17
+0xf575 0x9C14
+0xf576 0x9C09
+0xf577 0x9D9F
+0xf578 0x9D99
+0xf579 0x9DA4
+0xf57a 0x9D9D
+0xf57b 0x9D92
+0xf57c 0x9D98
+0xf57d 0x9D90
+0xf57e 0x9D9B
+0xf5a1 0x9DA0
+0xf5a2 0x9D94
+0xf5a3 0x9D9C
+0xf5a4 0x9DAA
+0xf5a5 0x9D97
+0xf5a6 0x9DA1
+0xf5a7 0x9D9A
+0xf5a8 0x9DA2
+0xf5a9 0x9DA8
+0xf5aa 0x9D9E
+0xf5ab 0x9DA3
+0xf5ac 0x9DBF
+0xf5ad 0x9DA9
+0xf5ae 0x9D96
+0xf5af 0x9DA6
+0xf5b0 0x9DA7
+0xf5b1 0x9E99
+0xf5b2 0x9E9B
+0xf5b3 0x9E9A
+0xf5b4 0x9EE5
+0xf5b5 0x9EE4
+0xf5b6 0x9EE7
+0xf5b7 0x9EE6
+0xf5b8 0x9F30
+0xf5b9 0x9F2E
+0xf5ba 0x9F5B
+0xf5bb 0x9F60
+0xf5bc 0x9F5E
+0xf5bd 0x9F5D
+0xf5be 0x9F59
+0xf5bf 0x9F91
+0xf5c0 0x513A
+0xf5c1 0x5139
+0xf5c2 0x5298
+0xf5c3 0x5297
+0xf5c4 0x56C3
+0xf5c5 0x56BD
+0xf5c6 0x56BE
+0xf5c7 0x5B48
+0xf5c8 0x5B47
+0xf5c9 0x5DCB
+0xf5ca 0x5DCF
+0xf5cb 0x5EF1
+0xf5cc 0x61FD
+0xf5cd 0x651B
+0xf5ce 0x6B02
+0xf5cf 0x6AFC
+0xf5d0 0x6B03
+0xf5d1 0x6AF8
+0xf5d2 0x6B00
+0xf5d3 0x7043
+0xf5d4 0x7044
+0xf5d5 0x704A
+0xf5d6 0x7048
+0xf5d7 0x7049
+0xf5d8 0x7045
+0xf5d9 0x7046
+0xf5da 0x721D
+0xf5db 0x721A
+0xf5dc 0x7219
+0xf5dd 0x737E
+0xf5de 0x7517
+0xf5df 0x766A
+0xf5e0 0x77D0
+0xf5e1 0x792D
+0xf5e2 0x7931
+0xf5e3 0x792F
+0xf5e4 0x7C54
+0xf5e5 0x7C53
+0xf5e6 0x7CF2
+0xf5e7 0x7E8A
+0xf5e8 0x7E87
+0xf5e9 0x7E88
+0xf5ea 0x7E8B
+0xf5eb 0x7E86
+0xf5ec 0x7E8D
+0xf5ed 0x7F4D
+0xf5ee 0x7FBB
+0xf5ef 0x8030
+0xf5f0 0x81DD
+0xf5f1 0x8618
+0xf5f2 0x862A
+0xf5f3 0x8626
+0xf5f4 0x861F
+0xf5f5 0x8623
+0xf5f6 0x861C
+0xf5f7 0x8619
+0xf5f8 0x8627
+0xf5f9 0x862E
+0xf5fa 0x8621
+0xf5fb 0x8620
+0xf5fc 0x8629
+0xf5fd 0x861E
+0xf5fe 0x8625
+0xf640 0x8829
+0xf641 0x881D
+0xf642 0x881B
+0xf643 0x8820
+0xf644 0x8824
+0xf645 0x881C
+0xf646 0x882B
+0xf647 0x884A
+0xf648 0x896D
+0xf649 0x8969
+0xf64a 0x896E
+0xf64b 0x896B
+0xf64c 0x89FA
+0xf64d 0x8B79
+0xf64e 0x8B78
+0xf64f 0x8B45
+0xf650 0x8B7A
+0xf651 0x8B7B
+0xf652 0x8D10
+0xf653 0x8D14
+0xf654 0x8DAF
+0xf655 0x8E8E
+0xf656 0x8E8C
+0xf657 0x8F5E
+0xf658 0x8F5B
+0xf659 0x8F5D
+0xf65a 0x9146
+0xf65b 0x9144
+0xf65c 0x9145
+0xf65d 0x91B9
+0xf65e 0x943F
+0xf65f 0x943B
+0xf660 0x9436
+0xf661 0x9429
+0xf662 0x943D
+0xf663 0x943C
+0xf664 0x9430
+0xf665 0x9439
+0xf666 0x942A
+0xf667 0x9437
+0xf668 0x942C
+0xf669 0x9440
+0xf66a 0x9431
+0xf66b 0x95E5
+0xf66c 0x95E4
+0xf66d 0x95E3
+0xf66e 0x9735
+0xf66f 0x973A
+0xf670 0x97BF
+0xf671 0x97E1
+0xf672 0x9864
+0xf673 0x98C9
+0xf674 0x98C6
+0xf675 0x98C0
+0xf676 0x9958
+0xf677 0x9956
+0xf678 0x9A39
+0xf679 0x9A3D
+0xf67a 0x9A46
+0xf67b 0x9A44
+0xf67c 0x9A42
+0xf67d 0x9A41
+0xf67e 0x9A3A
+0xf6a1 0x9A3F
+0xf6a2 0x9ACD
+0xf6a3 0x9B15
+0xf6a4 0x9B17
+0xf6a5 0x9B18
+0xf6a6 0x9B16
+0xf6a7 0x9B3A
+0xf6a8 0x9B52
+0xf6a9 0x9C2B
+0xf6aa 0x9C1D
+0xf6ab 0x9C1C
+0xf6ac 0x9C2C
+0xf6ad 0x9C23
+0xf6ae 0x9C28
+0xf6af 0x9C29
+0xf6b0 0x9C24
+0xf6b1 0x9C21
+0xf6b2 0x9DB7
+0xf6b3 0x9DB6
+0xf6b4 0x9DBC
+0xf6b5 0x9DC1
+0xf6b6 0x9DC7
+0xf6b7 0x9DCA
+0xf6b8 0x9DCF
+0xf6b9 0x9DBE
+0xf6ba 0x9DC5
+0xf6bb 0x9DC3
+0xf6bc 0x9DBB
+0xf6bd 0x9DB5
+0xf6be 0x9DCE
+0xf6bf 0x9DB9
+0xf6c0 0x9DBA
+0xf6c1 0x9DAC
+0xf6c2 0x9DC8
+0xf6c3 0x9DB1
+0xf6c4 0x9DAD
+0xf6c5 0x9DCC
+0xf6c6 0x9DB3
+0xf6c7 0x9DCD
+0xf6c8 0x9DB2
+0xf6c9 0x9E7A
+0xf6ca 0x9E9C
+0xf6cb 0x9EEB
+0xf6cc 0x9EEE
+0xf6cd 0x9EED
+0xf6ce 0x9F1B
+0xf6cf 0x9F18
+0xf6d0 0x9F1A
+0xf6d1 0x9F31
+0xf6d2 0x9F4E
+0xf6d3 0x9F65
+0xf6d4 0x9F64
+0xf6d5 0x9F92
+0xf6d6 0x4EB9
+0xf6d7 0x56C6
+0xf6d8 0x56C5
+0xf6d9 0x56CB
+0xf6da 0x5971
+0xf6db 0x5B4B
+0xf6dc 0x5B4C
+0xf6dd 0x5DD5
+0xf6de 0x5DD1
+0xf6df 0x5EF2
+0xf6e0 0x6521
+0xf6e1 0x6520
+0xf6e2 0x6526
+0xf6e3 0x6522
+0xf6e4 0x6B0B
+0xf6e5 0x6B08
+0xf6e6 0x6B09
+0xf6e7 0x6C0D
+0xf6e8 0x7055
+0xf6e9 0x7056
+0xf6ea 0x7057
+0xf6eb 0x7052
+0xf6ec 0x721E
+0xf6ed 0x721F
+0xf6ee 0x72A9
+0xf6ef 0x737F
+0xf6f0 0x74D8
+0xf6f1 0x74D5
+0xf6f2 0x74D9
+0xf6f3 0x74D7
+0xf6f4 0x766D
+0xf6f5 0x76AD
+0xf6f6 0x7935
+0xf6f7 0x79B4
+0xf6f8 0x7A70
+0xf6f9 0x7A71
+0xf6fa 0x7C57
+0xf6fb 0x7C5C
+0xf6fc 0x7C59
+0xf6fd 0x7C5B
+0xf6fe 0x7C5A
+0xf740 0x7CF4
+0xf741 0x7CF1
+0xf742 0x7E91
+0xf743 0x7F4F
+0xf744 0x7F87
+0xf745 0x81DE
+0xf746 0x826B
+0xf747 0x8634
+0xf748 0x8635
+0xf749 0x8633
+0xf74a 0x862C
+0xf74b 0x8632
+0xf74c 0x8636
+0xf74d 0x882C
+0xf74e 0x8828
+0xf74f 0x8826
+0xf750 0x882A
+0xf751 0x8825
+0xf752 0x8971
+0xf753 0x89BF
+0xf754 0x89BE
+0xf755 0x89FB
+0xf756 0x8B7E
+0xf757 0x8B84
+0xf758 0x8B82
+0xf759 0x8B86
+0xf75a 0x8B85
+0xf75b 0x8B7F
+0xf75c 0x8D15
+0xf75d 0x8E95
+0xf75e 0x8E94
+0xf75f 0x8E9A
+0xf760 0x8E92
+0xf761 0x8E90
+0xf762 0x8E96
+0xf763 0x8E97
+0xf764 0x8F60
+0xf765 0x8F62
+0xf766 0x9147
+0xf767 0x944C
+0xf768 0x9450
+0xf769 0x944A
+0xf76a 0x944B
+0xf76b 0x944F
+0xf76c 0x9447
+0xf76d 0x9445
+0xf76e 0x9448
+0xf76f 0x9449
+0xf770 0x9446
+0xf771 0x973F
+0xf772 0x97E3
+0xf773 0x986A
+0xf774 0x9869
+0xf775 0x98CB
+0xf776 0x9954
+0xf777 0x995B
+0xf778 0x9A4E
+0xf779 0x9A53
+0xf77a 0x9A54
+0xf77b 0x9A4C
+0xf77c 0x9A4F
+0xf77d 0x9A48
+0xf77e 0x9A4A
+0xf7a1 0x9A49
+0xf7a2 0x9A52
+0xf7a3 0x9A50
+0xf7a4 0x9AD0
+0xf7a5 0x9B19
+0xf7a6 0x9B2B
+0xf7a7 0x9B3B
+0xf7a8 0x9B56
+0xf7a9 0x9B55
+0xf7aa 0x9C46
+0xf7ab 0x9C48
+0xf7ac 0x9C3F
+0xf7ad 0x9C44
+0xf7ae 0x9C39
+0xf7af 0x9C33
+0xf7b0 0x9C41
+0xf7b1 0x9C3C
+0xf7b2 0x9C37
+0xf7b3 0x9C34
+0xf7b4 0x9C32
+0xf7b5 0x9C3D
+0xf7b6 0x9C36
+0xf7b7 0x9DDB
+0xf7b8 0x9DD2
+0xf7b9 0x9DDE
+0xf7ba 0x9DDA
+0xf7bb 0x9DCB
+0xf7bc 0x9DD0
+0xf7bd 0x9DDC
+0xf7be 0x9DD1
+0xf7bf 0x9DDF
+0xf7c0 0x9DE9
+0xf7c1 0x9DD9
+0xf7c2 0x9DD8
+0xf7c3 0x9DD6
+0xf7c4 0x9DF5
+0xf7c5 0x9DD5
+0xf7c6 0x9DDD
+0xf7c7 0x9EB6
+0xf7c8 0x9EF0
+0xf7c9 0x9F35
+0xf7ca 0x9F33
+0xf7cb 0x9F32
+0xf7cc 0x9F42
+0xf7cd 0x9F6B
+0xf7ce 0x9F95
+0xf7cf 0x9FA2
+0xf7d0 0x513D
+0xf7d1 0x5299
+0xf7d2 0x58E8
+0xf7d3 0x58E7
+0xf7d4 0x5972
+0xf7d5 0x5B4D
+0xf7d6 0x5DD8
+0xf7d7 0x882F
+0xf7d8 0x5F4F
+0xf7d9 0x6201
+0xf7da 0x6203
+0xf7db 0x6204
+0xf7dc 0x6529
+0xf7dd 0x6525
+0xf7de 0x6596
+0xf7df 0x66EB
+0xf7e0 0x6B11
+0xf7e1 0x6B12
+0xf7e2 0x6B0F
+0xf7e3 0x6BCA
+0xf7e4 0x705B
+0xf7e5 0x705A
+0xf7e6 0x7222
+0xf7e7 0x7382
+0xf7e8 0x7381
+0xf7e9 0x7383
+0xf7ea 0x7670
+0xf7eb 0x77D4
+0xf7ec 0x7C67
+0xf7ed 0x7C66
+0xf7ee 0x7E95
+0xf7ef 0x826C
+0xf7f0 0x863A
+0xf7f1 0x8640
+0xf7f2 0x8639
+0xf7f3 0x863C
+0xf7f4 0x8631
+0xf7f5 0x863B
+0xf7f6 0x863E
+0xf7f7 0x8830
+0xf7f8 0x8832
+0xf7f9 0x882E
+0xf7fa 0x8833
+0xf7fb 0x8976
+0xf7fc 0x8974
+0xf7fd 0x8973
+0xf7fe 0x89FE
+0xf840 0x8B8C
+0xf841 0x8B8E
+0xf842 0x8B8B
+0xf843 0x8B88
+0xf844 0x8C45
+0xf845 0x8D19
+0xf846 0x8E98
+0xf847 0x8F64
+0xf848 0x8F63
+0xf849 0x91BC
+0xf84a 0x9462
+0xf84b 0x9455
+0xf84c 0x945D
+0xf84d 0x9457
+0xf84e 0x945E
+0xf84f 0x97C4
+0xf850 0x97C5
+0xf851 0x9800
+0xf852 0x9A56
+0xf853 0x9A59
+0xf854 0x9B1E
+0xf855 0x9B1F
+0xf856 0x9B20
+0xf857 0x9C52
+0xf858 0x9C58
+0xf859 0x9C50
+0xf85a 0x9C4A
+0xf85b 0x9C4D
+0xf85c 0x9C4B
+0xf85d 0x9C55
+0xf85e 0x9C59
+0xf85f 0x9C4C
+0xf860 0x9C4E
+0xf861 0x9DFB
+0xf862 0x9DF7
+0xf863 0x9DEF
+0xf864 0x9DE3
+0xf865 0x9DEB
+0xf866 0x9DF8
+0xf867 0x9DE4
+0xf868 0x9DF6
+0xf869 0x9DE1
+0xf86a 0x9DEE
+0xf86b 0x9DE6
+0xf86c 0x9DF2
+0xf86d 0x9DF0
+0xf86e 0x9DE2
+0xf86f 0x9DEC
+0xf870 0x9DF4
+0xf871 0x9DF3
+0xf872 0x9DE8
+0xf873 0x9DED
+0xf874 0x9EC2
+0xf875 0x9ED0
+0xf876 0x9EF2
+0xf877 0x9EF3
+0xf878 0x9F06
+0xf879 0x9F1C
+0xf87a 0x9F38
+0xf87b 0x9F37
+0xf87c 0x9F36
+0xf87d 0x9F43
+0xf87e 0x9F4F
+0xf8a1 0x9F71
+0xf8a2 0x9F70
+0xf8a3 0x9F6E
+0xf8a4 0x9F6F
+0xf8a5 0x56D3
+0xf8a6 0x56CD
+0xf8a7 0x5B4E
+0xf8a8 0x5C6D
+0xf8a9 0x652D
+0xf8aa 0x66ED
+0xf8ab 0x66EE
+0xf8ac 0x6B13
+0xf8ad 0x705F
+0xf8ae 0x7061
+0xf8af 0x705D
+0xf8b0 0x7060
+0xf8b1 0x7223
+0xf8b2 0x74DB
+0xf8b3 0x74E5
+0xf8b4 0x77D5
+0xf8b5 0x7938
+0xf8b6 0x79B7
+0xf8b7 0x79B6
+0xf8b8 0x7C6A
+0xf8b9 0x7E97
+0xf8ba 0x7F89
+0xf8bb 0x826D
+0xf8bc 0x8643
+0xf8bd 0x8838
+0xf8be 0x8837
+0xf8bf 0x8835
+0xf8c0 0x884B
+0xf8c1 0x8B94
+0xf8c2 0x8B95
+0xf8c3 0x8E9E
+0xf8c4 0x8E9F
+0xf8c5 0x8EA0
+0xf8c6 0x8E9D
+0xf8c7 0x91BE
+0xf8c8 0x91BD
+0xf8c9 0x91C2
+0xf8ca 0x946B
+0xf8cb 0x9468
+0xf8cc 0x9469
+0xf8cd 0x96E5
+0xf8ce 0x9746
+0xf8cf 0x9743
+0xf8d0 0x9747
+0xf8d1 0x97C7
+0xf8d2 0x97E5
+0xf8d3 0x9A5E
+0xf8d4 0x9AD5
+0xf8d5 0x9B59
+0xf8d6 0x9C63
+0xf8d7 0x9C67
+0xf8d8 0x9C66
+0xf8d9 0x9C62
+0xf8da 0x9C5E
+0xf8db 0x9C60
+0xf8dc 0x9E02
+0xf8dd 0x9DFE
+0xf8de 0x9E07
+0xf8df 0x9E03
+0xf8e0 0x9E06
+0xf8e1 0x9E05
+0xf8e2 0x9E00
+0xf8e3 0x9E01
+0xf8e4 0x9E09
+0xf8e5 0x9DFF
+0xf8e6 0x9DFD
+0xf8e7 0x9E04
+0xf8e8 0x9EA0
+0xf8e9 0x9F1E
+0xf8ea 0x9F46
+0xf8eb 0x9F74
+0xf8ec 0x9F75
+0xf8ed 0x9F76
+0xf8ee 0x56D4
+0xf8ef 0x652E
+0xf8f0 0x65B8
+0xf8f1 0x6B18
+0xf8f2 0x6B19
+0xf8f3 0x6B17
+0xf8f4 0x6B1A
+0xf8f5 0x7062
+0xf8f6 0x7226
+0xf8f7 0x72AA
+0xf8f8 0x77D8
+0xf8f9 0x77D9
+0xf8fa 0x7939
+0xf8fb 0x7C69
+0xf8fc 0x7C6B
+0xf8fd 0x7CF6
+0xf8fe 0x7E9A
+0xf940 0x7E98
+0xf941 0x7E9B
+0xf942 0x7E99
+0xf943 0x81E0
+0xf944 0x81E1
+0xf945 0x8646
+0xf946 0x8647
+0xf947 0x8648
+0xf948 0x8979
+0xf949 0x897A
+0xf94a 0x897C
+0xf94b 0x897B
+0xf94c 0x89FF
+0xf94d 0x8B98
+0xf94e 0x8B99
+0xf94f 0x8EA5
+0xf950 0x8EA4
+0xf951 0x8EA3
+0xf952 0x946E
+0xf953 0x946D
+0xf954 0x946F
+0xf955 0x9471
+0xf956 0x9473
+0xf957 0x9749
+0xf958 0x9872
+0xf959 0x995F
+0xf95a 0x9C68
+0xf95b 0x9C6E
+0xf95c 0x9C6D
+0xf95d 0x9E0B
+0xf95e 0x9E0D
+0xf95f 0x9E10
+0xf960 0x9E0F
+0xf961 0x9E12
+0xf962 0x9E11
+0xf963 0x9EA1
+0xf964 0x9EF5
+0xf965 0x9F09
+0xf966 0x9F47
+0xf967 0x9F78
+0xf968 0x9F7B
+0xf969 0x9F7A
+0xf96a 0x9F79
+0xf96b 0x571E
+0xf96c 0x7066
+0xf96d 0x7C6F
+0xf96e 0x883C
+0xf96f 0x8DB2
+0xf970 0x8EA6
+0xf971 0x91C3
+0xf972 0x9474
+0xf973 0x9478
+0xf974 0x9476
+0xf975 0x9475
+0xf976 0x9A60
+0xf977 0x9C74
+0xf978 0x9C73
+0xf979 0x9C71
+0xf97a 0x9C75
+0xf97b 0x9E14
+0xf97c 0x9E13
+0xf97d 0x9EF6
+0xf97e 0x9F0A
+0xf9a1 0x9FA4
+0xf9a2 0x7068
+0xf9a3 0x7065
+0xf9a4 0x7CF7
+0xf9a5 0x866A
+0xf9a6 0x883E
+0xf9a7 0x883D
+0xf9a8 0x883F
+0xf9a9 0x8B9E
+0xf9aa 0x8C9C
+0xf9ab 0x8EA9
+0xf9ac 0x8EC9
+0xf9ad 0x974B
+0xf9ae 0x9873
+0xf9af 0x9874
+0xf9b0 0x98CC
+0xf9b1 0x9961
+0xf9b2 0x99AB
+0xf9b3 0x9A64
+0xf9b4 0x9A66
+0xf9b5 0x9A67
+0xf9b6 0x9B24
+0xf9b7 0x9E15
+0xf9b8 0x9E17
+0xf9b9 0x9F48
+0xf9ba 0x6207
+0xf9bb 0x6B1E
+0xf9bc 0x7227
+0xf9bd 0x864C
+0xf9be 0x8EA8
+0xf9bf 0x9482
+0xf9c0 0x9480
+0xf9c1 0x9481
+0xf9c2 0x9A69
+0xf9c3 0x9A68
+0xf9c4 0x9B2E
+0xf9c5 0x9E19
+0xf9c6 0x7229
+0xf9c7 0x864B
+0xf9c8 0x8B9F
+0xf9c9 0x9483
+0xf9ca 0x9C79
+0xf9cb 0x9EB7
+0xf9cc 0x7675
+0xf9cd 0x9A6B
+0xf9ce 0x9C7A
+0xf9cf 0x9E1D
+0xf9d0 0x7069
+0xf9d1 0x706A
+0xf9d2 0x9EA4
+0xf9d3 0x9F7E
+0xf9d4 0x9F49
+0xf9d5 0x9F98
+0xf9d6 0x7881
+0xf9d7 0x92B9
+0xf9d8 0x88CF
+0xf9d9 0x58BB
+0xf9da 0x6052
+0xf9db 0x7CA7
+0xf9dc 0x5AFA
+0xf9dd 0x2554
+0xf9de 0x2566
+0xf9df 0x2557
+0xf9e0 0x2560
+0xf9e1 0x256C
+0xf9e2 0x2563
+0xf9e3 0x255A
+0xf9e4 0x2569
+0xf9e5 0x255D
+0xf9e6 0x2552
+0xf9e7 0x2564
+0xf9e8 0x2555
+0xf9ec 0x2558
+0xf9ed 0x2567
+0xf9ee 0x255B
+0xf9ef 0x2553
+0xf9f0 0x2565
+0xf9f1 0x2556
+0xf9f2 0x255F
+0xf9f3 0x256B
+0xf9f4 0x2562
+0xf9f5 0x2559
+0xf9f6 0x2568
+0xf9f7 0x255C
+0xf9f8 0x2551
+0xf9fe 0x2593
diff --git a/etc/charsets/CNS-1.map b/etc/charsets/CNS-1.map
new file mode 100644 (file)
index 0000000..2f0e5c5
--- /dev/null
@@ -0,0 +1,5366 @@
+# Generated from glibc-2.3.2/localedata/charmaps/EUC-TW
+0x2121 0x3000
+0x2122 0xFF0C
+0x2123-0x2124 0x3001
+0x2125 0xFF0E
+0x2126 0x30FB
+0x2127 0xFF1B
+0x2128 0xFF1A
+0x2129 0xFF1F
+0x212A 0xFF01
+0x212B 0xFE30
+0x212C 0x2026
+0x212D 0x2025
+0x212E-0x2130 0xFE50
+0x2131 0x00B7
+0x2132-0x2135 0xFE54
+0x2136 0xFE31
+0x2137 0x2014
+0x2138 0xFE32
+0x2139 0x2013
+0x213E-0x213F 0xFF08
+0x2140-0x2141 0xFE35
+0x2142 0xFF5B
+0x2143 0xFF5D
+0x2144-0x2145 0xFE37
+0x2146-0x2147 0x3014
+0x2148-0x2149 0xFE39
+0x214A-0x214B 0x3010
+0x214C-0x214D 0xFE3B
+0x214E-0x214F 0x300A
+0x2150-0x2151 0xFE3D
+0x2152-0x2153 0x3008
+0x2154-0x2155 0xFE3F
+0x2156-0x2157 0x300C
+0x2158-0x2159 0xFE41
+0x215A-0x215B 0x300E
+0x215C-0x215D 0xFE43
+0x215E-0x2163 0xFE59
+0x2164-0x2165 0x2018
+0x2166-0x2167 0x201C
+0x2168-0x2169 0x301D
+0x216A 0x2032
+0x216B 0x2035
+0x216C 0xFF03
+0x216D 0xFF06
+0x216E 0xFF0A
+0x216F 0x203B
+0x2170 0x00A7
+0x2171 0x3003
+0x2172 0x25CB
+0x2173 0x25CF
+0x2174 0x25B3
+0x2175 0x25B2
+0x2176 0x25CE
+0x2177 0x2606
+0x2178 0x2605
+0x2179 0x25C7
+0x217A 0x25C6
+0x217B 0x25A1
+0x217C 0x25A0
+0x217D 0x25BD
+0x217E 0x25BC
+0x2221 0x32A3
+0x2222 0x2105
+0x2223 0x203E
+0x2225 0xFF3F
+0x2227-0x2228 0xFE49
+0x2229-0x222A 0xFE4D
+0x222B-0x222C 0xFE4B
+0x222D-0x222F 0xFE5F
+0x2230 0xFF0B
+0x2231 0xFF0D
+0x2232 0x00D7
+0x2233 0x00F7
+0x2234 0x00B1
+0x2235 0x221A
+0x2236 0xFF1C
+0x2237 0xFF1E
+0x2238 0xFF1D
+0x2239-0x223A 0x2266
+0x223B 0x2260
+0x223C 0x221E
+0x223D 0x2252
+0x223E 0x2261
+0x223F-0x2241 0xFE62
+0x2242 0xFE66
+0x2243 0xFE65
+0x2244 0x223C
+0x2245-0x2246 0x2229
+0x2247 0x22A5
+0x2248 0x2220
+0x2249 0x221F
+0x224A 0x22BF
+0x224B 0x33D2
+0x224C 0x33D1
+0x224D 0x222B
+0x224E 0x222E
+0x224F 0x2235
+0x2250 0x2234
+0x2251 0x2640
+0x2252 0x2642
+0x2253 0x2641
+0x2254 0x2609
+0x2255 0x2191
+0x2256 0x2193
+0x2257 0x2192
+0x2258 0x2190
+0x2259-0x225A 0x2196
+0x225B 0x2199
+0x225C 0x2198
+0x225D 0x2016
+0x225E 0xFF5C
+0x225F 0xFF0F
+0x2260 0xFF3C
+0x2261 0x2215
+0x2262 0xFE68
+0x2263 0xFF04
+0x2264 0xFFE5
+0x2265 0x3012
+0x2266-0x2267 0xFFE0
+0x2268 0xFF05
+0x2269 0xFF20
+0x226A 0x2103
+0x226B 0x2109
+0x226C-0x226E 0xFE69
+0x226F 0x33D5
+0x2270-0x2272 0x339C
+0x2273 0x33CE
+0x2274 0x33A1
+0x2275-0x2276 0x338E
+0x2277 0x33C4
+0x2278 0x00B0
+0x2279 0x5159
+0x227A 0x515B
+0x227B 0x515E
+0x227C 0x515D
+0x227D 0x5161
+0x227E 0x5163
+0x2321 0x55E7
+0x2322 0x74E9
+0x2323 0x7CCE
+0x2324-0x232B 0x2581
+0x232C 0x258F
+0x232D 0x258E
+0x232E 0x258D
+0x232F 0x258C
+0x2330 0x258B
+0x2331 0x258A
+0x2332 0x2589
+0x2333 0x253C
+0x2334 0x2534
+0x2335 0x252C
+0x2336 0x2524
+0x2337 0x251C
+0x2338 0x2594
+0x2339 0x2500
+0x233A 0x2502
+0x233B 0x2595
+0x233C 0x250C
+0x233D 0x2510
+0x233E 0x2514
+0x233F 0x2518
+0x2340-0x2341 0x256D
+0x2342 0x2570
+0x2343 0x256F
+0x2344 0x2550
+0x2345 0x255E
+0x2346 0x256A
+0x2347 0x2561
+0x2348-0x2349 0x25E2
+0x234A 0x25E5
+0x234B 0x25E4
+0x234C-0x234E 0x2571
+0x2421-0x242A 0xFF10
+0x242B-0x2434 0x2160
+0x2435-0x243D 0x3021
+0x243F 0x5344
+0x2441-0x245A 0xFF21
+0x245B-0x2474 0xFF41
+0x2475-0x247E 0x0391
+0x2521-0x2527 0x039B
+0x2528-0x252E 0x03A3
+0x252F-0x253F 0x03B1
+0x2540-0x2546 0x03C3
+0x2547-0x256B 0x3105
+0x256C 0x02D9
+0x256D-0x256E 0x02C9
+0x256F 0x02C7
+0x2570 0x02CB
+0x2621-0x262A 0x2460
+0x262B-0x2634 0x2474
+0x2635-0x263E 0x2170
+0x2728 0x4EA0
+0x272F 0x51AB
+0x2734 0x52F9
+0x4221-0x4240 0x2400
+0x4241 0x2421
+0x4421 0x4E00
+0x4422 0x4E59
+0x4423 0x4E01
+0x4424 0x4E03
+0x4425 0x4E43
+0x4426 0x4E5D
+0x4427 0x4E86
+0x4428 0x4E8C
+0x4429 0x4EBA
+0x442A 0x513F
+0x442B 0x5165
+0x442C 0x516B
+0x442D 0x51E0
+0x442E-0x442F 0x5200
+0x4430 0x529B
+0x4431 0x5315
+0x4432 0x5341
+0x4433 0x535C
+0x4434 0x53C8
+0x4435 0x4E09
+0x4436 0x4E0B
+0x4437 0x4E08
+0x4438 0x4E0A
+0x4439 0x4E2B
+0x443A 0x4E38
+0x443B 0x51E1
+0x443C 0x4E45
+0x443D 0x4E48
+0x443E 0x4E5F
+0x443F 0x4E5E
+0x4440 0x4E8E
+0x4441 0x4EA1
+0x4442 0x5140
+0x4443 0x5203
+0x4444 0x52FA
+0x4445 0x5343
+0x4446 0x53C9
+0x4447 0x53E3
+0x4448 0x571F
+0x4449 0x58EB
+0x444A 0x5915
+0x444B 0x5927
+0x444C 0x5973
+0x444D-0x444E 0x5B50
+0x444F 0x5B53
+0x4450 0x5BF8
+0x4451 0x5C0F
+0x4452 0x5C22
+0x4453 0x5C38
+0x4454 0x5C71
+0x4455 0x5DDD
+0x4456 0x5DE5
+0x4457-0x4459 0x5DF1
+0x445A 0x5DFE
+0x445B 0x5E72
+0x445C 0x5EFE
+0x445D 0x5F0B
+0x445E 0x5F13
+0x445F 0x624D
+0x4460 0x4E11
+0x4461 0x4E10
+0x4462 0x4E0D
+0x4463 0x4E2D
+0x4464 0x4E30
+0x4465 0x4E39
+0x4466 0x4E4B
+0x4467 0x5C39
+0x4468 0x4E88
+0x4469 0x4E91
+0x446A 0x4E95
+0x446B 0x4E92
+0x446C 0x4E94
+0x446D 0x4EA2
+0x446E 0x4EC1
+0x446F 0x4EC0
+0x4470 0x4EC3
+0x4471-0x4472 0x4EC6
+0x4473 0x4ECD
+0x4474-0x4475 0x4ECA
+0x4476 0x4EC4
+0x4477 0x5143
+0x4478 0x5141
+0x4479 0x5167
+0x447A-0x447B 0x516D
+0x447C 0x516C
+0x447D 0x5197
+0x447E 0x51F6
+0x4521-0x4523 0x5206
+0x4524 0x52FB
+0x4525-0x4526 0x52FE
+0x4527 0x5316
+0x4528 0x5339
+0x4529 0x5348
+0x452A 0x5347
+0x452B 0x5345
+0x452C 0x535E
+0x452D 0x5384
+0x452E 0x53CB
+0x452F 0x53CA
+0x4530 0x53CD
+0x4531 0x58EC
+0x4532 0x5929
+0x4533 0x592B
+0x4534 0x592A
+0x4535 0x592D
+0x4536 0x5B54
+0x4537 0x5C11
+0x4538 0x5C24
+0x4539 0x5C3A
+0x453A 0x5C6F
+0x453B 0x5DF4
+0x453C 0x5E7B
+0x453D 0x5EFF
+0x453E-0x453F 0x5F14
+0x4540 0x5FC3
+0x4541 0x6208
+0x4542 0x6236
+0x4543 0x624B
+0x4544 0x624E
+0x4545 0x652F
+0x4546 0x6587
+0x4547 0x6597
+0x4548 0x65A4
+0x4549 0x65B9
+0x454A 0x65E5
+0x454B 0x66F0
+0x454C 0x6708
+0x454D 0x6728
+0x454E 0x6B20
+0x454F 0x6B62
+0x4550 0x6B79
+0x4551 0x6BCB
+0x4552 0x6BD4
+0x4553 0x6BDB
+0x4554 0x6C0F
+0x4555 0x6C34
+0x4556 0x706B
+0x4557 0x722A
+0x4558 0x7236
+0x4559 0x723B
+0x455A 0x7247
+0x455B 0x7259
+0x455C 0x725B
+0x455D 0x72AC
+0x455E 0x738B
+0x455F 0x4E19
+0x4560 0x4E16
+0x4561 0x4E15
+0x4562 0x4E14
+0x4563 0x4E18
+0x4564 0x4E3B
+0x4565 0x4E4D
+0x4566 0x4E4F
+0x4567 0x4E4E
+0x4568 0x4EE5
+0x4569 0x4ED8
+0x456A-0x456D 0x4ED4
+0x456E-0x456F 0x4EE3
+0x4570 0x4ED9
+0x4571 0x4EDE
+0x4572 0x5145
+0x4573 0x5144
+0x4574-0x4575 0x5189
+0x4576 0x51AC
+0x4577-0x4578 0x51F9
+0x4579 0x51F8
+0x457A 0x520A
+0x457B 0x52A0
+0x457C 0x529F
+0x457D-0x457E 0x5305
+0x4621 0x5317
+0x4622 0x531D
+0x4623 0x4EDF
+0x4624 0x534A
+0x4625 0x5349
+0x4626 0x5361
+0x4627 0x5360
+0x4628 0x536F
+0x4629 0x536E
+0x462A 0x53BB
+0x462B 0x53EF
+0x462C 0x53E4
+0x462D 0x53F3
+0x462E 0x53EC
+0x462F 0x53EE
+0x4630 0x53E9
+0x4631 0x53E8
+0x4632 0x53FC
+0x4633 0x53F8
+0x4634 0x53F5
+0x4635 0x53EB
+0x4636 0x53E6
+0x4637 0x53EA
+0x4638 0x53F2
+0x4639 0x53F1
+0x463A 0x53F0
+0x463B 0x53E5
+0x463C 0x53ED
+0x463D 0x53FB
+0x463E 0x56DB
+0x463F 0x56DA
+0x4640 0x5916
+0x4641 0x592E
+0x4642 0x5931
+0x4643 0x5974
+0x4644 0x5976
+0x4645 0x5B55
+0x4646 0x5B83
+0x4647 0x5C3C
+0x4648 0x5DE8
+0x4649 0x5DE7
+0x464A 0x5DE6
+0x464B-0x464C 0x5E02
+0x464D 0x5E73
+0x464E 0x5E7C
+0x464F 0x5F01
+0x4650 0x5F18
+0x4651 0x5F17
+0x4652 0x5FC5
+0x4653 0x620A
+0x4654-0x4655 0x6253
+0x4656 0x6252
+0x4657 0x6251
+0x4658 0x65A5
+0x4659 0x65E6
+0x465A 0x672E
+0x465B 0x672C
+0x465C-0x465D 0x672A
+0x465E 0x672D
+0x465F 0x6B63
+0x4660 0x6BCD
+0x4661 0x6C11
+0x4662 0x6C10
+0x4663 0x6C38
+0x4664 0x6C41
+0x4665 0x6C40
+0x4666 0x6C3E
+0x4667 0x72AF
+0x4668 0x7384
+0x4669 0x7389
+0x466A 0x74DC
+0x466B 0x74E6
+0x466C 0x7518
+0x466D 0x751F
+0x466E-0x466F 0x7528
+0x4670-0x4673 0x7530
+0x4674 0x758B
+0x4675 0x767D
+0x4676 0x76AE
+0x4677 0x76BF
+0x4678 0x76EE
+0x4679 0x77DB
+0x467A 0x77E2
+0x467B 0x77F3
+0x467C 0x793A
+0x467D 0x79BE
+0x467E 0x7A74
+0x4721 0x7ACB
+0x4722-0x4723 0x4E1E
+0x4724-0x4725 0x4E52
+0x4726 0x4E69
+0x4727 0x4E99
+0x4728 0x4EA4
+0x4729 0x4EA6
+0x472A 0x4EA5
+0x472B 0x4EFF
+0x472C 0x4F09
+0x472D 0x4F19
+0x472E 0x4F0A
+0x472F 0x4F15
+0x4730 0x4F0D
+0x4731-0x4732 0x4F10
+0x4733 0x4F0F
+0x4734 0x4EF2
+0x4735 0x4EF6
+0x4736 0x4EFB
+0x4737 0x4EF0
+0x4738 0x4EF3
+0x4739 0x4EFD
+0x473A 0x4F01
+0x473B 0x4F0B
+0x473C 0x5149
+0x473D 0x5147
+0x473E 0x5146
+0x473F 0x5148
+0x4740 0x5168
+0x4741 0x5171
+0x4742 0x518D
+0x4743 0x51B0
+0x4744 0x5217
+0x4745-0x4746 0x5211
+0x4747 0x520E
+0x4748 0x5216
+0x4749 0x52A3
+0x474A 0x5308
+0x474B 0x5321
+0x474C 0x5320
+0x474D-0x474E 0x5370
+0x474F 0x5409
+0x4750 0x540F
+0x4751 0x540C
+0x4752 0x540A
+0x4753 0x5410
+0x4754 0x5401
+0x4755 0x540B
+0x4756 0x5404
+0x4757 0x5411
+0x4758 0x540D
+0x4759 0x5408
+0x475A 0x5403
+0x475B 0x540E
+0x475C 0x5406
+0x475D 0x5412
+0x475E 0x56E0
+0x475F 0x56DE
+0x4760 0x56DD
+0x4761 0x5733
+0x4762 0x5730
+0x4763 0x5728
+0x4764 0x572D
+0x4765 0x572C
+0x4766 0x572F
+0x4767 0x5729
+0x4768-0x4769 0x5919
+0x476A-0x476B 0x5937
+0x476C 0x5984
+0x476D 0x5978
+0x476E 0x5983
+0x476F 0x597D
+0x4770 0x5979
+0x4771 0x5982
+0x4772 0x5981
+0x4773-0x4774 0x5B57
+0x4775-0x4776 0x5B87
+0x4777 0x5B85
+0x4778 0x5B89
+0x4779 0x5BFA
+0x477A 0x5C16
+0x477B 0x5C79
+0x477C 0x5DDE
+0x477D 0x5E06
+0x477E 0x5E76
+0x4821 0x5E74
+0x4822 0x5F0F
+0x4823 0x5F1B
+0x4824 0x5FD9
+0x4825 0x5FD6
+0x4826 0x620E
+0x4827-0x4828 0x620C
+0x4829 0x6210
+0x482A 0x6263
+0x482B 0x625B
+0x482C 0x6258
+0x482D 0x6536
+0x482E 0x65E9
+0x482F 0x65E8
+0x4830-0x4831 0x65EC
+0x4832-0x4833 0x66F2
+0x4834 0x6709
+0x4835 0x673D
+0x4836 0x6734
+0x4837 0x6731
+0x4838 0x6735
+0x4839 0x6B21
+0x483A 0x6B64
+0x483B 0x6B7B
+0x483C 0x6C16
+0x483D 0x6C5D
+0x483E 0x6C57
+0x483F 0x6C59
+0x4840-0x4841 0x6C5F
+0x4842 0x6C50
+0x4843 0x6C55
+0x4844 0x6C61
+0x4845 0x6C5B
+0x4846-0x4847 0x6C4D
+0x4848 0x7070
+0x4849 0x725F
+0x484A 0x725D
+0x484B 0x767E
+0x484C 0x7AF9
+0x484D 0x7C73
+0x484E 0x7CF8
+0x484F 0x7F36
+0x4850 0x7F8A
+0x4851 0x7FBD
+0x4852 0x8001
+0x4853 0x8003
+0x4854 0x800C
+0x4855 0x8012
+0x4856 0x8033
+0x4857 0x807F
+0x4858 0x8089
+0x4859-0x485A 0x808B
+0x485B 0x81E3
+0x485C 0x81EA
+0x485D 0x81F3
+0x485E 0x81FC
+0x485F 0x820C
+0x4860 0x821B
+0x4861 0x821F
+0x4862 0x826E
+0x4863 0x8272
+0x4864 0x827E
+0x4865 0x866B
+0x4866 0x8840
+0x4867 0x884C
+0x4868 0x8863
+0x4869 0x897F
+0x486A 0x9621
+0x486B 0x4E32
+0x486C 0x4EA8
+0x486D 0x4F4D
+0x486E 0x4F4F
+0x486F 0x4F47
+0x4870 0x4F57
+0x4871 0x4F5E
+0x4872 0x4F34
+0x4873 0x4F5B
+0x4874 0x4F55
+0x4875 0x4F30
+0x4876-0x4877 0x4F50
+0x4878 0x4F3D
+0x4879 0x4F3A
+0x487A 0x4F38
+0x487B 0x4F43
+0x487C 0x4F54
+0x487D 0x4F3C
+0x487E 0x4F46
+0x4921 0x4F63
+0x4922 0x4F5C
+0x4923 0x4F60
+0x4924 0x4F2F
+0x4925 0x4F4E
+0x4926 0x4F36
+0x4927 0x4F59
+0x4928 0x4F5D
+0x4929 0x4F48
+0x492A 0x4F5A
+0x492B 0x514C
+0x492C 0x514B
+0x492D 0x514D
+0x492E 0x5175
+0x492F-0x4930 0x51B6
+0x4931 0x5225
+0x4932 0x5224
+0x4933-0x4934 0x5229
+0x4935 0x5228
+0x4936 0x52AB
+0x4937-0x4938 0x52A9
+0x4939 0x52AC
+0x493A 0x5323
+0x493B 0x5373
+0x493C 0x5375
+0x493D 0x541D
+0x493E 0x542D
+0x493F 0x541E
+0x4940 0x543E
+0x4941 0x5426
+0x4942 0x544E
+0x4943 0x5427
+0x4944 0x5446
+0x4945 0x5443
+0x4946 0x5433
+0x4947 0x5448
+0x4948 0x5442
+0x4949 0x541B
+0x494A 0x5429
+0x494B 0x544A
+0x494C 0x5439
+0x494D 0x543B
+0x494E 0x5438
+0x494F 0x542E
+0x4950-0x4951 0x5435
+0x4952 0x5420
+0x4953 0x543C
+0x4954 0x5440
+0x4955 0x5431
+0x4956 0x542B
+0x4957 0x541F
+0x4958 0x542C
+0x4959 0x56EA
+0x495A 0x56F0
+0x495B 0x56E4
+0x495C 0x56EB
+0x495D 0x574A
+0x495E 0x5751
+0x495F 0x5740
+0x4960 0x574D
+0x4961 0x5747
+0x4962 0x574E
+0x4963 0x573E
+0x4964 0x5750
+0x4965 0x574F
+0x4966 0x573B
+0x4967 0x58EF
+0x4968 0x593E
+0x4969 0x599D
+0x496A 0x5992
+0x496B 0x59A8
+0x496C 0x599E
+0x496D 0x59A3
+0x496E 0x5999
+0x496F 0x5996
+0x4970 0x598D
+0x4971 0x59A4
+0x4972 0x5993
+0x4973 0x598A
+0x4974 0x59A5
+0x4975 0x5B5D
+0x4976 0x5B5C
+0x4977-0x4978 0x5B5A
+0x4979 0x5B8C
+0x497A 0x5B8B
+0x497B 0x5B8F
+0x497C 0x5C2C
+0x497D-0x497E 0x5C40
+0x4A21 0x5C3F
+0x4A22 0x5C3E
+0x4A23-0x4A24 0x5C90
+0x4A25 0x5C94
+0x4A26 0x5C8C
+0x4A27 0x5DEB
+0x4A28 0x5E0C
+0x4A29 0x5E8F
+0x4A2A 0x5E87
+0x4A2B 0x5E8A
+0x4A2C 0x5EF7
+0x4A2D 0x5F04
+0x4A2E 0x5F1F
+0x4A2F 0x5F64
+0x4A30 0x5F62
+0x4A31 0x5F77
+0x4A32 0x5F79
+0x4A33 0x5FD8
+0x4A34 0x5FCC
+0x4A35 0x5FD7
+0x4A36 0x5FCD
+0x4A37 0x5FF1
+0x4A38 0x5FEB
+0x4A39 0x5FF8
+0x4A3A 0x5FEA
+0x4A3B 0x6212
+0x4A3C 0x6211
+0x4A3D 0x6284
+0x4A3E 0x6297
+0x4A3F 0x6296
+0x4A40 0x6280
+0x4A41 0x6276
+0x4A42 0x6289
+0x4A43 0x626D
+0x4A44 0x628A
+0x4A45 0x627C
+0x4A46 0x627E
+0x4A47 0x6279
+0x4A48 0x6273
+0x4A49 0x6292
+0x4A4A 0x626F
+0x4A4B 0x6298
+0x4A4C 0x626E
+0x4A4D 0x6295
+0x4A4E 0x6293
+0x4A4F 0x6291
+0x4A50 0x6286
+0x4A51 0x6539
+0x4A52 0x653B
+0x4A53 0x6538
+0x4A54 0x65F1
+0x4A55 0x66F4
+0x4A56 0x675F
+0x4A57-0x4A5A 0x674E
+0x4A5B 0x675C
+0x4A5C 0x6756
+0x4A5D 0x675E
+0x4A5E 0x6749
+0x4A5F 0x6746
+0x4A60 0x6760
+0x4A61 0x6753
+0x4A62 0x6757
+0x4A63 0x6B65
+0x4A64 0x6BCF
+0x4A65 0x6C42
+0x4A66 0x6C5E
+0x4A67 0x6C99
+0x4A68 0x6C81
+0x4A69-0x4A6A 0x6C88
+0x4A6B 0x6C85
+0x4A6C 0x6C9B
+0x4A6D 0x6C6A
+0x4A6E 0x6C7A
+0x4A6F 0x6C90
+0x4A70 0x6C70
+0x4A71 0x6C8C
+0x4A72 0x6C68
+0x4A73 0x6C96
+0x4A74 0x6C92
+0x4A75 0x6C7D
+0x4A76 0x6C83
+0x4A77 0x6C72
+0x4A78 0x6C7E
+0x4A79 0x6C74
+0x4A7A 0x6C86
+0x4A7B 0x6C76
+0x4A7C 0x6C8D
+0x4A7D 0x6C94
+0x4A7E 0x6C98
+0x4B21 0x6C82
+0x4B22 0x7076
+0x4B23-0x4B24 0x707C
+0x4B25 0x7078
+0x4B26 0x7262
+0x4B27 0x7261
+0x4B28 0x7260
+0x4B29 0x72C4
+0x4B2A 0x72C2
+0x4B2B 0x7396
+0x4B2C 0x752C
+0x4B2D 0x752B
+0x4B2E-0x4B2F 0x7537
+0x4B30 0x7682
+0x4B31 0x76EF
+0x4B32 0x77E3
+0x4B33 0x79C1
+0x4B34 0x79C0
+0x4B35 0x79BF
+0x4B36 0x7A76
+0x4B37 0x7CFB
+0x4B38 0x7F55
+0x4B39 0x8096
+0x4B3A 0x8093
+0x4B3B 0x809D
+0x4B3C 0x8098
+0x4B3D 0x809B
+0x4B3E 0x809A
+0x4B3F 0x80B2
+0x4B40 0x826F
+0x4B41 0x8292
+0x4B42 0x828B
+0x4B43 0x828D
+0x4B44 0x898B
+0x4B45 0x89D2
+0x4B46 0x8A00
+0x4B47 0x8C37
+0x4B48 0x8C46
+0x4B49 0x8C55
+0x4B4A 0x8C9D
+0x4B4B 0x8D64
+0x4B4C 0x8D70
+0x4B4D 0x8DB3
+0x4B4E 0x8EAB
+0x4B4F 0x8ECA
+0x4B50 0x8F9B
+0x4B51 0x8FB0
+0x4B52 0x8FC2
+0x4B53 0x8FC6
+0x4B54 0x8FC5
+0x4B55 0x8FC4
+0x4B56 0x5DE1
+0x4B57 0x9091
+0x4B58 0x90A2
+0x4B59 0x90AA
+0x4B5A 0x90A6
+0x4B5B 0x90A3
+0x4B5C 0x9149
+0x4B5D 0x91C6
+0x4B5E 0x91CC
+0x4B5F 0x9632
+0x4B60 0x962E
+0x4B61 0x9631
+0x4B62 0x962A
+0x4B63 0x962C
+0x4B64 0x4E26
+0x4B65 0x4E56
+0x4B66 0x4E73
+0x4B67 0x4E8B
+0x4B68 0x4E9B
+0x4B69 0x4E9E
+0x4B6A-0x4B6B 0x4EAB
+0x4B6C 0x4F6F
+0x4B6D 0x4F9D
+0x4B6E 0x4F8D
+0x4B6F 0x4F73
+0x4B70 0x4F7F
+0x4B71 0x4F6C
+0x4B72 0x4F9B
+0x4B73 0x4F8B
+0x4B74 0x4F86
+0x4B75 0x4F83
+0x4B76 0x4F70
+0x4B77 0x4F75
+0x4B78 0x4F88
+0x4B79 0x4F69
+0x4B7A 0x4F7B
+0x4B7B 0x4F96
+0x4B7C 0x4F7E
+0x4B7D 0x4F8F
+0x4B7E 0x4F91
+0x4C21 0x4F7A
+0x4C22 0x5154
+0x4C23 0x5152
+0x4C24 0x5155
+0x4C25 0x5169
+0x4C26 0x5177
+0x4C27 0x5176
+0x4C28 0x5178
+0x4C29 0x51BD
+0x4C2A 0x51FD
+0x4C2B 0x523B
+0x4C2C 0x5238
+0x4C2D 0x5237
+0x4C2E 0x523A
+0x4C2F 0x5230
+0x4C30 0x522E
+0x4C31 0x5236
+0x4C32 0x5241
+0x4C33 0x52BE
+0x4C34 0x52BB
+0x4C35 0x5352
+0x4C36 0x5354
+0x4C37 0x5353
+0x4C38 0x5351
+0x4C39 0x5366
+0x4C3A-0x4C3C 0x5377
+0x4C3D 0x53D6
+0x4C3E 0x53D4
+0x4C3F 0x53D7
+0x4C40 0x5473
+0x4C41 0x5475
+0x4C42 0x5496
+0x4C43 0x5478
+0x4C44 0x5495
+0x4C45 0x5480
+0x4C46 0x547B
+0x4C47 0x5477
+0x4C48 0x5484
+0x4C49 0x5492
+0x4C4A 0x5486
+0x4C4B 0x547C
+0x4C4C 0x5490
+0x4C4D 0x5471
+0x4C4E 0x5476
+0x4C4F 0x548C
+0x4C50 0x549A
+0x4C51 0x5462
+0x4C52 0x5468
+0x4C53 0x548B
+0x4C54 0x547D
+0x4C55 0x548E
+0x4C56 0x56FA
+0x4C57 0x5783
+0x4C58 0x5777
+0x4C59 0x576A
+0x4C5A 0x5769
+0x4C5B 0x5761
+0x4C5C 0x5766
+0x4C5D 0x5764
+0x4C5E 0x577C
+0x4C5F 0x591C
+0x4C60 0x5949
+0x4C61-0x4C62 0x5947
+0x4C63 0x5944
+0x4C64 0x5954
+0x4C65 0x59BE
+0x4C66 0x59BB
+0x4C67 0x59D4
+0x4C68 0x59B9
+0x4C69 0x59AE
+0x4C6A 0x59D1
+0x4C6B 0x59C6
+0x4C6C 0x59D0
+0x4C6D 0x59CD
+0x4C6E 0x59CB
+0x4C6F 0x59D3
+0x4C70 0x59CA
+0x4C71 0x59AF
+0x4C72 0x59B3
+0x4C73 0x59D2
+0x4C74 0x59C5
+0x4C75 0x5B5F
+0x4C76 0x5B64
+0x4C77 0x5B63
+0x4C78 0x5B97
+0x4C79 0x5B9A
+0x4C7A 0x5B98
+0x4C7B 0x5B9C
+0x4C7C 0x5B99
+0x4C7D 0x5B9B
+0x4C7E 0x5C1A
+0x4D21 0x5C48
+0x4D22-0x4D23 0x5C45
+0x4D24 0x5CB7
+0x4D25 0x5CA1
+0x4D26 0x5CB8
+0x4D27 0x5CA9
+0x4D28 0x5CAB
+0x4D29 0x5CB1
+0x4D2A 0x5CB3
+0x4D2B 0x5E18
+0x4D2C 0x5E1A
+0x4D2D 0x5E16
+0x4D2E 0x5E15
+0x4D2F 0x5E1B
+0x4D30 0x5E11
+0x4D31 0x5E78
+0x4D32 0x5E9A
+0x4D33 0x5E97
+0x4D34 0x5E9C
+0x4D35-0x4D36 0x5E95
+0x4D37 0x5EF6
+0x4D38-0x4D39 0x5F26
+0x4D3A 0x5F29
+0x4D3B-0x4D3C 0x5F80
+0x4D3D 0x5F7F
+0x4D3E 0x5F7C
+0x4D3F 0x5FDD
+0x4D40 0x5FE0
+0x4D41 0x5FFD
+0x4D42 0x5FF5
+0x4D43 0x5FFF
+0x4D44 0x600F
+0x4D45 0x6014
+0x4D46 0x602F
+0x4D47 0x6035
+0x4D48 0x6016
+0x4D49 0x602A
+0x4D4A 0x6015
+0x4D4B 0x6021
+0x4D4C 0x6027
+0x4D4D 0x6029
+0x4D4E 0x602B
+0x4D4F 0x601B
+0x4D50 0x6216
+0x4D51 0x6215
+0x4D52 0x623F
+0x4D53 0x623E
+0x4D54 0x6240
+0x4D55 0x627F
+0x4D56 0x62C9
+0x4D57 0x62CC
+0x4D58 0x62C4
+0x4D59 0x62BF
+0x4D5A 0x62C2
+0x4D5B 0x62B9
+0x4D5C 0x62D2
+0x4D5D 0x62DB
+0x4D5E 0x62AB
+0x4D5F-0x4D60 0x62D3
+0x4D61 0x62CB
+0x4D62 0x62C8
+0x4D63 0x62A8
+0x4D64 0x62BD
+0x4D65 0x62BC
+0x4D66 0x62D0
+0x4D67 0x62D9
+0x4D68 0x62C7
+0x4D69 0x62CD
+0x4D6A 0x62B5
+0x4D6B 0x62DA
+0x4D6C 0x62B1
+0x4D6D 0x62D8
+0x4D6E-0x4D6F 0x62D6
+0x4D70 0x62C6
+0x4D71 0x62AC
+0x4D72 0x62CE
+0x4D73 0x653E
+0x4D74 0x65A7
+0x4D75 0x65BC
+0x4D76 0x65FA
+0x4D77 0x6614
+0x4D78 0x6613
+0x4D79 0x660C
+0x4D7A 0x6606
+0x4D7B 0x6602
+0x4D7C 0x660E
+0x4D7D 0x6600
+0x4D7E 0x660F
+0x4E21 0x6615
+0x4E22 0x660A
+0x4E23 0x6607
+0x4E24 0x670D
+0x4E25 0x670B
+0x4E26 0x676D
+0x4E27 0x678B
+0x4E28 0x6795
+0x4E29 0x6771
+0x4E2A 0x679C
+0x4E2B 0x6773
+0x4E2C 0x6777
+0x4E2D 0x6787
+0x4E2E 0x679D
+0x4E2F 0x6797
+0x4E30-0x4E31 0x676F
+0x4E32 0x677F
+0x4E33 0x6789
+0x4E34 0x677E
+0x4E35 0x6790
+0x4E36 0x6775
+0x4E37 0x679A
+0x4E38 0x6793
+0x4E39 0x677C
+0x4E3A 0x676A
+0x4E3B 0x6772
+0x4E3C 0x6B23
+0x4E3D-0x4E3E 0x6B66
+0x4E3F 0x6B7F
+0x4E40 0x6C13
+0x4E41 0x6C1B
+0x4E42 0x6CE3
+0x4E43 0x6CE8
+0x4E44 0x6CF3
+0x4E45 0x6CB1
+0x4E46 0x6CCC
+0x4E47 0x6CE5
+0x4E48 0x6CB3
+0x4E49-0x4E4A 0x6CBD
+0x4E4B 0x6CBC
+0x4E4C 0x6CE2
+0x4E4D 0x6CAB
+0x4E4E 0x6CD5
+0x4E4F 0x6CD3
+0x4E50 0x6CB8
+0x4E51 0x6CC4
+0x4E52 0x6CB9
+0x4E53 0x6CC1
+0x4E54 0x6CAE
+0x4E55 0x6CD7
+0x4E56 0x6CC5
+0x4E57 0x6CF1
+0x4E58 0x6CBF
+0x4E59 0x6CBB
+0x4E5A 0x6CE1
+0x4E5B 0x6CDB
+0x4E5C 0x6CCA
+0x4E5D 0x6CAC
+0x4E5E 0x6CEF
+0x4E5F 0x6CDC
+0x4E60 0x6CD6
+0x4E61 0x6CE0
+0x4E62 0x7095
+0x4E63 0x708E
+0x4E64 0x7092
+0x4E65 0x708A
+0x4E66 0x7099
+0x4E67-0x4E68 0x722C
+0x4E69 0x7238
+0x4E6A 0x7248
+0x4E6B 0x7267
+0x4E6C 0x7269
+0x4E6D 0x72C0
+0x4E6E 0x72CE
+0x4E6F 0x72D9
+0x4E70 0x72D7
+0x4E71 0x72D0
+0x4E72 0x73A9
+0x4E73 0x73A8
+0x4E74 0x739F
+0x4E75 0x73AB
+0x4E76 0x73A5
+0x4E77 0x753D
+0x4E78 0x759D
+0x4E79-0x4E7A 0x7599
+0x4E7B 0x7684
+0x4E7C 0x76C2
+0x4E7D 0x76F2
+0x4E7E 0x76F4
+0x4F21 0x77E5
+0x4F22 0x77FD
+0x4F23 0x793E
+0x4F24-0x4F25 0x7940
+0x4F26 0x79C9
+0x4F27 0x79C8
+0x4F28 0x7A7A
+0x4F29 0x7A79
+0x4F2A 0x7AFA
+0x4F2B 0x7CFE
+0x4F2C 0x7F54
+0x4F2D 0x7F8C
+0x4F2E 0x7F8B
+0x4F2F 0x8005
+0x4F30 0x80BA
+0x4F31 0x80A5
+0x4F32 0x80A2
+0x4F33 0x80B1
+0x4F34 0x80A1
+0x4F35 0x80AB
+0x4F36 0x80A9
+0x4F37 0x80B4
+0x4F38 0x80AA
+0x4F39 0x80AF
+0x4F3A 0x81E5
+0x4F3B 0x81FE
+0x4F3C 0x820D
+0x4F3D 0x82B3
+0x4F3E 0x829D
+0x4F3F 0x8299
+0x4F40 0x82AD
+0x4F41 0x82BD
+0x4F42 0x829F
+0x4F43 0x82B9
+0x4F44 0x82B1
+0x4F45 0x82AC
+0x4F46 0x82A5
+0x4F47 0x82AF
+0x4F48 0x82B8
+0x4F49 0x82A3
+0x4F4A 0x82B0
+0x4F4B 0x82BE
+0x4F4C 0x82B7
+0x4F4D 0x864E
+0x4F4E 0x8671
+0x4F4F 0x521D
+0x4F50 0x8868
+0x4F51 0x8ECB
+0x4F52 0x8FCE
+0x4F53 0x8FD4
+0x4F54 0x8FD1
+0x4F55 0x90B5
+0x4F56 0x90B8
+0x4F57 0x90B1
+0x4F58 0x90B6
+0x4F59 0x91C7
+0x4F5A 0x91D1
+0x4F5B 0x9577
+0x4F5C 0x9580
+0x4F5D 0x961C
+0x4F5E 0x9640
+0x4F5F 0x963F
+0x4F60 0x963B
+0x4F61 0x9644
+0x4F62 0x9642
+0x4F63 0x96B9
+0x4F64 0x96E8
+0x4F65 0x9752
+0x4F66 0x975E
+0x4F67 0x4E9F
+0x4F68-0x4F69 0x4EAD
+0x4F6A 0x4FE1
+0x4F6B 0x4FB5
+0x4F6C 0x4FAF
+0x4F6D 0x4FBF
+0x4F6E 0x4FE0
+0x4F6F 0x4FD1
+0x4F70 0x4FCF
+0x4F71 0x4FDD
+0x4F72 0x4FC3
+0x4F73 0x4FB6
+0x4F74 0x4FD8
+0x4F75 0x4FDF
+0x4F76 0x4FCA
+0x4F77 0x4FD7
+0x4F78 0x4FAE
+0x4F79 0x4FD0
+0x4F7A 0x4FC4
+0x4F7B 0x4FC2
+0x4F7C 0x4FDA
+0x4F7D 0x4FCE
+0x4F7E 0x4FDE
+0x5021 0x4FB7
+0x5022 0x5157
+0x5023 0x5192
+0x5024 0x5191
+0x5025 0x51A0
+0x5026 0x524E
+0x5027 0x5243
+0x5028 0x524A
+0x5029 0x524D
+0x502A 0x524C
+0x502B 0x524B
+0x502C 0x5247
+0x502D 0x52C7
+0x502E 0x52C9
+0x502F 0x52C3
+0x5030 0x52C1
+0x5031 0x530D
+0x5032 0x5357
+0x5033 0x537B
+0x5034 0x539A
+0x5035 0x53DB
+0x5036 0x54AC
+0x5037 0x54C0
+0x5038 0x54A8
+0x5039 0x54CE
+0x503A 0x54C9
+0x503B 0x54B8
+0x503C 0x54A6
+0x503D 0x54B3
+0x503E 0x54C7
+0x503F 0x54C2
+0x5040 0x54BD
+0x5041 0x54AA
+0x5042 0x54C1
+0x5043 0x54C4
+0x5044 0x54C8
+0x5045 0x54AF
+0x5046 0x54AB
+0x5047 0x54B1
+0x5048 0x54BB
+0x5049 0x54A9
+0x504A 0x54A7
+0x504B 0x54BF
+0x504C 0x56FF
+0x504D 0x5782
+0x504E 0x578B
+0x504F 0x57A0
+0x5050 0x57A3
+0x5051 0x57A2
+0x5052 0x57CE
+0x5053 0x57AE
+0x5054 0x5793
+0x5055 0x5955
+0x5056 0x5951
+0x5057 0x594F
+0x5058 0x594E
+0x5059 0x5950
+0x505A 0x59DC
+0x505B 0x59D8
+0x505C 0x59FF
+0x505D 0x59E3
+0x505E 0x59E8
+0x505F 0x5A03
+0x5060 0x59E5
+0x5061 0x59EA
+0x5062 0x59DA
+0x5063 0x59E6
+0x5064 0x5A01
+0x5065 0x59FB
+0x5066 0x5B69
+0x5067 0x5BA3
+0x5068 0x5BA6
+0x5069 0x5BA4
+0x506A 0x5BA2
+0x506B 0x5BA5
+0x506C 0x5C01
+0x506D-0x506E 0x5C4E
+0x506F 0x5C4D
+0x5070 0x5C4B
+0x5071 0x5CD9
+0x5072 0x5CD2
+0x5073 0x5DF7
+0x5074 0x5E1D
+0x5075 0x5E25
+0x5076 0x5E1F
+0x5077 0x5E7D
+0x5078 0x5EA0
+0x5079 0x5EA6
+0x507A 0x5EFA
+0x507B 0x5F08
+0x507C 0x5F2D
+0x507D 0x5F65
+0x507E 0x5F88
+0x5121 0x5F85
+0x5122-0x5123 0x5F8A
+0x5124 0x5F87
+0x5125 0x5F8C
+0x5126 0x5F89
+0x5127 0x6012
+0x5128 0x601D
+0x5129 0x6020
+0x512A 0x6025
+0x512B 0x600E
+0x512C 0x6028
+0x512D 0x604D
+0x512E 0x6070
+0x512F 0x6068
+0x5130 0x6062
+0x5131 0x6046
+0x5132 0x6043
+0x5133 0x606C
+0x5134 0x606B
+0x5135 0x606A
+0x5136 0x6064
+0x5137 0x6241
+0x5138 0x62DC
+0x5139 0x6316
+0x513A 0x6309
+0x513B 0x62FC
+0x513C 0x62ED
+0x513D 0x6301
+0x513E 0x62EE
+0x513F 0x62FD
+0x5140 0x6307
+0x5141 0x62F1
+0x5142 0x62F7
+0x5143 0x62EF
+0x5144 0x62EC
+0x5145 0x62FE
+0x5146 0x62F4
+0x5147 0x6311
+0x5148 0x6302
+0x5149 0x653F
+0x514A 0x6545
+0x514B 0x65AB
+0x514C 0x65BD
+0x514D 0x65E2
+0x514E 0x6625
+0x514F 0x662D
+0x5150 0x6620
+0x5151 0x6627
+0x5152 0x662F
+0x5153 0x661F
+0x5154 0x6628
+0x5155 0x6631
+0x5156 0x6624
+0x5157 0x66F7
+0x5158 0x67FF
+0x5159 0x67D3
+0x515A 0x67F1
+0x515B 0x67D4
+0x515C 0x67D0
+0x515D 0x67EC
+0x515E 0x67B6
+0x515F 0x67AF
+0x5160 0x67F5
+0x5161 0x67E9
+0x5162 0x67EF
+0x5163 0x67C4
+0x5164 0x67D1
+0x5165 0x67B4
+0x5166 0x67DA
+0x5167 0x67E5
+0x5168 0x67B8
+0x5169 0x67CF
+0x516A 0x67DE
+0x516B 0x67F3
+0x516C 0x67B0
+0x516D 0x67D9
+0x516E 0x67E2
+0x516F 0x67DD
+0x5170 0x67D2
+0x5171 0x6B6A
+0x5172 0x6B83
+0x5173 0x6B86
+0x5174 0x6BB5
+0x5175 0x6BD2
+0x5176 0x6BD7
+0x5177 0x6C1F
+0x5178 0x6CC9
+0x5179 0x6D0B
+0x517A 0x6D32
+0x517B 0x6D2A
+0x517C 0x6D41
+0x517D 0x6D25
+0x517E 0x6D0C
+0x5221 0x6D31
+0x5222 0x6D1E
+0x5223 0x6D17
+0x5224 0x6D3B
+0x5225-0x5226 0x6D3D
+0x5227 0x6D36
+0x5228 0x6D1B
+0x5229 0x6CF5
+0x522A 0x6D39
+0x522B 0x6D27
+0x522C 0x6D38
+0x522D 0x6D29
+0x522E 0x6D2E
+0x522F 0x6D35
+0x5230 0x6D0E
+0x5231 0x6D2B
+0x5232 0x70AB
+0x5233 0x70BA
+0x5234 0x70B3
+0x5235 0x70AC
+0x5236 0x70AF
+0x5237 0x70AD
+0x5238 0x70B8
+0x5239 0x70AE
+0x523A 0x70A4
+0x523B 0x7230
+0x523C 0x7272
+0x523D 0x726F
+0x523E 0x7274
+0x523F 0x72E9
+0x5240-0x5241 0x72E0
+0x5242 0x73B7
+0x5243 0x73CA
+0x5244 0x73BB
+0x5245 0x73B2
+0x5246 0x73CD
+0x5247 0x73C0
+0x5248 0x73B3
+0x5249 0x751A
+0x524A 0x752D
+0x524B 0x754F
+0x524C 0x754C
+0x524D 0x754E
+0x524E 0x754B
+0x524F 0x75AB
+0x5250-0x5251 0x75A4
+0x5252-0x5253 0x75A2
+0x5254 0x7678
+0x5255-0x5257 0x7686
+0x5258 0x76C8
+0x5259 0x76C6
+0x525A 0x76C3
+0x525B 0x76C5
+0x525C 0x7701
+0x525D 0x76F9
+0x525E 0x76F8
+0x525F 0x7709
+0x5260 0x770B
+0x5261 0x76FE
+0x5262 0x76FC
+0x5263 0x7707
+0x5264 0x77DC
+0x5265 0x7802
+0x5266 0x7814
+0x5267-0x5268 0x780C
+0x5269 0x7946
+0x526A 0x7949
+0x526B 0x7948
+0x526C 0x7947
+0x526D-0x526E 0x79B9
+0x526F-0x5270 0x79D1
+0x5271 0x79CB
+0x5272 0x7A7F
+0x5273 0x7A81
+0x5274 0x7AFF
+0x5275 0x7AFD
+0x5276 0x7C7D
+0x5277 0x7D02
+0x5278 0x7D05
+0x5279 0x7D00
+0x527A 0x7D09
+0x527B 0x7D07
+0x527C 0x7D04
+0x527D 0x7D06
+0x527E 0x7F38
+0x5321 0x7F8E
+0x5322 0x7FBF
+0x5323 0x8010
+0x5324 0x800D
+0x5325 0x8011
+0x5326 0x8036
+0x5327 0x80D6
+0x5328 0x80E5
+0x5329 0x80DA
+0x532A-0x532B 0x80C3
+0x532C 0x80CC
+0x532D 0x80E1
+0x532E 0x80DB
+0x532F 0x80CE
+0x5330 0x80DE
+0x5331 0x80E4
+0x5332 0x80DD
+0x5333 0x81F4
+0x5334 0x8222
+0x5335 0x82E7
+0x5336 0x8303
+0x5337 0x8305
+0x5338 0x82E3
+0x5339 0x82DB
+0x533A 0x82E6
+0x533B 0x8304
+0x533C 0x82E5
+0x533D 0x8302
+0x533E 0x8309
+0x533F 0x82D2
+0x5340 0x82D7
+0x5341 0x82F1
+0x5342 0x8301
+0x5343 0x82DC
+0x5344 0x82D4
+0x5345 0x82D1
+0x5346 0x82DE
+0x5347 0x82D3
+0x5348 0x82DF
+0x5349 0x82EF
+0x534A 0x8306
+0x534B 0x8650
+0x534C 0x8679
+0x534D 0x867B
+0x534E 0x867A
+0x534F 0x884D
+0x5350 0x886B
+0x5351 0x8981
+0x5352 0x89D4
+0x5353 0x8A08
+0x5354-0x5355 0x8A02
+0x5356 0x8C9E
+0x5357 0x8CA0
+0x5358 0x8D74
+0x5359 0x8D73
+0x535A 0x8DB4
+0x535B 0x8ECD
+0x535C 0x8ECC
+0x535D 0x8FF0
+0x535E 0x8FE6
+0x535F 0x8FE2
+0x5360 0x8FEA
+0x5361 0x8FE5
+0x5362 0x8FED
+0x5363 0x8FEB
+0x5364 0x8FE4
+0x5365 0x8FE8
+0x5366 0x90CA
+0x5367 0x90CE
+0x5368 0x90C1
+0x5369 0x90C3
+0x536A 0x914B
+0x536B 0x914A
+0x536C 0x91CD
+0x536D 0x9582
+0x536E 0x9650
+0x536F-0x5371 0x964B
+0x5372 0x9762
+0x5373 0x9769
+0x5374 0x97CB
+0x5375 0x97ED
+0x5376 0x97F3
+0x5377 0x9801
+0x5378 0x98A8
+0x5379 0x98DB
+0x537A 0x98DF
+0x537B 0x9996
+0x537C 0x9999
+0x537D 0x4E58
+0x537E 0x4EB3
+0x5421-0x5422 0x500C
+0x5423 0x5023
+0x5424 0x4FEF
+0x5425 0x5026
+0x5426 0x5025
+0x5427 0x4FF8
+0x5428 0x5029
+0x5429 0x5016
+0x542A 0x5006
+0x542B 0x503C
+0x542C 0x501F
+0x542D 0x501A
+0x542E 0x5012
+0x542F 0x5011
+0x5430 0x4FFA
+0x5431 0x5000
+0x5432 0x5014
+0x5433 0x5028
+0x5434 0x4FF1
+0x5435 0x5021
+0x5436 0x500B
+0x5437 0x5019
+0x5438 0x5018
+0x5439 0x4FF3
+0x543A 0x4FEE
+0x543B 0x502D
+0x543C 0x502A
+0x543D 0x4FFE
+0x543E 0x502B
+0x543F 0x5009
+0x5440 0x517C
+0x5441-0x5442 0x51A4
+0x5443 0x51A2
+0x5444 0x51CD
+0x5445 0x51CC
+0x5446 0x51C6
+0x5447 0x51CB
+0x5448 0x5256
+0x5449 0x525C
+0x544A 0x5254
+0x544B 0x525B
+0x544C 0x525D
+0x544D 0x532A
+0x544E 0x537F
+0x544F 0x539F
+0x5450 0x539D
+0x5451 0x53DF
+0x5452 0x54E8
+0x5453 0x5510
+0x5454 0x5501
+0x5455 0x5537
+0x5456 0x54FC
+0x5457 0x54E5
+0x5458 0x54F2
+0x5459 0x5506
+0x545A 0x54FA
+0x545B 0x5514
+0x545C 0x54E9
+0x545D 0x54ED
+0x545E 0x54E1
+0x545F 0x5509
+0x5460 0x54EE
+0x5461 0x54EA
+0x5462 0x54E6
+0x5463 0x5527
+0x5464 0x5507
+0x5465 0x54FD
+0x5466 0x550F
+0x5467-0x5468 0x5703
+0x5469 0x57C2
+0x546A 0x57D4
+0x546B 0x57CB
+0x546C 0x57C3
+0x546D 0x5809
+0x546E 0x590F
+0x546F-0x5470 0x5957
+0x5471 0x595A
+0x5472 0x5A11
+0x5473 0x5A18
+0x5474 0x5A1C
+0x5475 0x5A1F
+0x5476 0x5A1B
+0x5477 0x5A13
+0x5478 0x59EC
+0x5479 0x5A20
+0x547A 0x5A23
+0x547B 0x5A29
+0x547C 0x5A25
+0x547D 0x5A0C
+0x547E 0x5A09
+0x5521 0x5B6B
+0x5522 0x5C58
+0x5523 0x5BB0
+0x5524 0x5BB3
+0x5525 0x5BB6
+0x5526 0x5BB4
+0x5527 0x5BAE
+0x5528 0x5BB5
+0x5529 0x5BB9
+0x552A 0x5BB8
+0x552B 0x5C04
+0x552C 0x5C51
+0x552D 0x5C55
+0x552E 0x5C50
+0x552F 0x5CED
+0x5530 0x5CFD
+0x5531 0x5CFB
+0x5532 0x5CEA
+0x5533 0x5CE8
+0x5534 0x5CF0
+0x5535 0x5CF6
+0x5536 0x5D01
+0x5537 0x5CF4
+0x5538 0x5DEE
+0x5539 0x5E2D
+0x553A 0x5E2B
+0x553B 0x5EAB
+0x553C 0x5EAD
+0x553D 0x5EA7
+0x553E 0x5F31
+0x553F 0x5F92
+0x5540 0x5F91
+0x5541 0x5F90
+0x5542 0x6059
+0x5543 0x6063
+0x5544 0x6065
+0x5545 0x6050
+0x5546 0x6055
+0x5547 0x606D
+0x5548 0x6069
+0x5549 0x606F
+0x554A 0x6084
+0x554B 0x609F
+0x554C 0x609A
+0x554D 0x608D
+0x554E 0x6094
+0x554F 0x608C
+0x5550 0x6085
+0x5551 0x6096
+0x5552 0x6247
+0x5553 0x62F3
+0x5554 0x6308
+0x5555 0x62FF
+0x5556 0x634E
+0x5557 0x633E
+0x5558 0x632F
+0x5559 0x6355
+0x555A 0x6342
+0x555B 0x6346
+0x555C 0x634F
+0x555D 0x6349
+0x555E 0x633A
+0x555F 0x6350
+0x5560 0x633D
+0x5561-0x5562 0x632A
+0x5563 0x6328
+0x5564 0x634D
+0x5565 0x634C
+0x5566-0x5567 0x6548
+0x5568 0x6599
+0x5569 0x65C1
+0x556A 0x65C5
+0x556B 0x6642
+0x556C 0x6649
+0x556D 0x664F
+0x556E 0x6643
+0x556F 0x6652
+0x5570 0x664C
+0x5571 0x6645
+0x5572 0x6641
+0x5573 0x66F8
+0x5574-0x5575 0x6714
+0x5576 0x6717
+0x5577 0x6821
+0x5578 0x6838
+0x5579 0x6848
+0x557A 0x6846
+0x557B 0x6853
+0x557C 0x6839
+0x557D 0x6842
+0x557E 0x6854
+0x5621 0x6829
+0x5622 0x68B3
+0x5623 0x6817
+0x5624 0x684C
+0x5625 0x6851
+0x5626 0x683D
+0x5627 0x67F4
+0x5628 0x6850
+0x5629 0x6840
+0x562A 0x683C
+0x562B 0x6843
+0x562C 0x682A
+0x562D 0x6845
+0x562E 0x6813
+0x562F 0x6818
+0x5630 0x6841
+0x5631 0x6B8A
+0x5632 0x6B89
+0x5633 0x6BB7
+0x5634 0x6C23
+0x5635-0x5636 0x6C27
+0x5637 0x6C26
+0x5638 0x6C24
+0x5639 0x6CF0
+0x563A 0x6D6A
+0x563B 0x6D95
+0x563C 0x6D88
+0x563D 0x6D87
+0x563E 0x6D66
+0x563F 0x6D78
+0x5640 0x6D77
+0x5641 0x6D59
+0x5642 0x6D93
+0x5643 0x6D6C
+0x5644 0x6D89
+0x5645 0x6D6E
+0x5646 0x6D5A
+0x5647 0x6D74
+0x5648 0x6D69
+0x5649 0x6D8C
+0x564A 0x6D8A
+0x564B 0x6D79
+0x564C 0x6D85
+0x564D 0x6D65
+0x564E 0x6D94
+0x564F 0x70CA
+0x5650 0x70D8
+0x5651 0x70E4
+0x5652 0x70D9
+0x5653 0x70C8
+0x5654 0x70CF
+0x5655 0x7239
+0x5656 0x7279
+0x5657 0x72FC
+0x5658 0x72F9
+0x5659 0x72FD
+0x565A 0x72F8
+0x565B 0x72F7
+0x565C 0x7386
+0x565D 0x73ED
+0x565E 0x7409
+0x565F 0x73EE
+0x5660 0x73E0
+0x5661 0x73EA
+0x5662 0x73DE
+0x5663 0x7554
+0x5664 0x755D
+0x5665 0x755C
+0x5666 0x755A
+0x5667 0x7559
+0x5668 0x75BE
+0x5669 0x75C5
+0x566A 0x75C7
+0x566B-0x566C 0x75B2
+0x566D 0x75BD
+0x566E 0x75BC
+0x566F 0x75B9
+0x5670 0x75C2
+0x5671 0x75B8
+0x5672 0x768B
+0x5673 0x76B0
+0x5674 0x76CA
+0x5675-0x5676 0x76CD
+0x5677 0x7729
+0x5678-0x5679 0x771F
+0x567A 0x7728
+0x567B 0x77E9
+0x567C 0x7830
+0x567D 0x7827
+0x567E 0x7838
+0x5721 0x781D
+0x5722 0x7834
+0x5723 0x7837
+0x5724 0x7825
+0x5725 0x782D
+0x5726 0x7820
+0x5727 0x781F
+0x5728 0x7832
+0x5729 0x7955
+0x572A 0x7950
+0x572B 0x7960
+0x572C 0x795F
+0x572D 0x7956
+0x572E 0x795E
+0x572F 0x795D
+0x5730 0x7957
+0x5731 0x795A
+0x5732 0x79E4
+0x5733 0x79E3
+0x5734 0x79E7
+0x5735 0x79DF
+0x5736 0x79E6
+0x5737 0x79E9
+0x5738 0x79D8
+0x5739 0x7A84
+0x573A 0x7A88
+0x573B 0x7AD9
+0x573C 0x7B06
+0x573D 0x7B11
+0x573E 0x7C89
+0x573F 0x7D21
+0x5740 0x7D17
+0x5741 0x7D0B
+0x5742 0x7D0A
+0x5743 0x7D20
+0x5744 0x7D22
+0x5745 0x7D14
+0x5746 0x7D10
+0x5747 0x7D15
+0x5748 0x7D1A
+0x5749 0x7D1C
+0x574A 0x7D0D
+0x574B 0x7D19
+0x574C 0x7D1B
+0x574D 0x7F3A
+0x574E 0x7F5F
+0x574F 0x7F94
+0x5750 0x7FC5
+0x5751 0x7FC1
+0x5752 0x8006
+0x5753 0x8004
+0x5754 0x8018
+0x5755 0x8015
+0x5756 0x8019
+0x5757 0x8017
+0x5758 0x803D
+0x5759 0x803F
+0x575A 0x80F1
+0x575B 0x8102
+0x575C 0x80F0
+0x575D 0x8105
+0x575E 0x80ED
+0x575F 0x80F4
+0x5760 0x8106
+0x5761 0x80F8
+0x5762 0x80F3
+0x5763 0x8108
+0x5764 0x80FD
+0x5765 0x810A
+0x5766 0x80FC
+0x5767 0x80EF
+0x5768 0x81ED
+0x5769 0x81EC
+0x576A 0x8200
+0x576B 0x8210
+0x576C-0x576D 0x822A
+0x576E 0x8228
+0x576F 0x822C
+0x5770 0x82BB
+0x5771 0x832B
+0x5772 0x8352
+0x5773 0x8354
+0x5774 0x834A
+0x5775 0x8338
+0x5776 0x8350
+0x5777 0x8349
+0x5778 0x8335
+0x5779 0x8334
+0x577A 0x834F
+0x577B 0x8332
+0x577C 0x8339
+0x577D 0x8336
+0x577E 0x8317
+0x5821 0x8340
+0x5822 0x8331
+0x5823 0x8328
+0x5824 0x8343
+0x5825 0x8654
+0x5826 0x868A
+0x5827 0x86AA
+0x5828 0x8693
+0x5829 0x86A4
+0x582A 0x86A9
+0x582B 0x868C
+0x582C 0x86A3
+0x582D 0x869C
+0x582E 0x8870
+0x582F 0x8877
+0x5830-0x5831 0x8881
+0x5832 0x887D
+0x5833 0x8879
+0x5834 0x8A18
+0x5835 0x8A10
+0x5836 0x8A0E
+0x5837 0x8A0C
+0x5838 0x8A15
+0x5839 0x8A0A
+0x583A 0x8A17
+0x583B 0x8A13
+0x583C 0x8A16
+0x583D 0x8A0F
+0x583E 0x8A11
+0x583F 0x8C48
+0x5840 0x8C7A
+0x5841 0x8C79
+0x5842-0x5843 0x8CA1
+0x5844 0x8D77
+0x5845 0x8EAC
+0x5846 0x8ED2
+0x5847 0x8ED4
+0x5848 0x8ECF
+0x5849 0x8FB1
+0x584A 0x9001
+0x584B 0x9006
+0x584C 0x8FF7
+0x584D 0x9000
+0x584E 0x8FFA
+0x584F 0x8FF4
+0x5850 0x9003
+0x5851 0x8FFD
+0x5852 0x9005
+0x5853 0x8FF8
+0x5854 0x9095
+0x5855 0x90E1
+0x5856 0x90DD
+0x5857 0x90E2
+0x5858 0x9152
+0x5859 0x914D
+0x585A 0x914C
+0x585B 0x91D8
+0x585C 0x91DD
+0x585D 0x91D7
+0x585E 0x91DC
+0x585F 0x91D9
+0x5860 0x9583
+0x5861-0x5862 0x9662
+0x5863 0x9661
+0x5864 0x965B
+0x5865 0x965D
+0x5866 0x9664
+0x5867 0x9658
+0x5868 0x965E
+0x5869 0x96BB
+0x586A 0x98E2
+0x586B 0x99AC
+0x586C 0x9AA8
+0x586D 0x9AD8
+0x586E 0x9B25
+0x586F 0x9B32
+0x5870 0x9B3C
+0x5871 0x4E7E
+0x5872 0x507A
+0x5873 0x507D
+0x5874 0x505C
+0x5875 0x5047
+0x5876 0x5043
+0x5877 0x504C
+0x5878 0x505A
+0x5879 0x5049
+0x587A 0x5065
+0x587B 0x5076
+0x587C 0x504E
+0x587D 0x5055
+0x587E 0x5075
+0x5921 0x5074
+0x5922 0x5077
+0x5923 0x504F
+0x5924 0x500F
+0x5925 0x506F
+0x5926 0x506D
+0x5927 0x515C
+0x5928 0x5195
+0x5929 0x51F0
+0x592A 0x526A
+0x592B 0x526F
+0x592C 0x52D2
+0x592D 0x52D9
+0x592E 0x52D8
+0x592F 0x52D5
+0x5930 0x5310
+0x5931 0x530F
+0x5932 0x5319
+0x5933-0x5934 0x533F
+0x5935 0x533E
+0x5936 0x53C3
+0x5937 0x66FC
+0x5938 0x5546
+0x5939 0x556A
+0x593A 0x5566
+0x593B 0x5544
+0x593C 0x555E
+0x593D 0x5561
+0x593E 0x5543
+0x593F 0x554A
+0x5940 0x5531
+0x5941 0x5556
+0x5942 0x554F
+0x5943 0x5555
+0x5944 0x552F
+0x5945 0x5564
+0x5946 0x5538
+0x5947 0x552E
+0x5948 0x555C
+0x5949 0x552C
+0x594A 0x5563
+0x594B 0x5533
+0x594C 0x5541
+0x594D 0x5557
+0x594E 0x5708
+0x594F 0x570B
+0x5950 0x5709
+0x5951 0x57DF
+0x5952 0x5805
+0x5953 0x580A
+0x5954 0x5806
+0x5955 0x57E0
+0x5956 0x57E4
+0x5957 0x57FA
+0x5958 0x5802
+0x5959 0x5835
+0x595A 0x57F7
+0x595B 0x57F9
+0x595C 0x5920
+0x595D 0x5962
+0x595E 0x5A36
+0x595F 0x5A41
+0x5960 0x5A49
+0x5961 0x5A66
+0x5962 0x5A6A
+0x5963 0x5A40
+0x5964 0x5A3C
+0x5965 0x5A62
+0x5966 0x5A5A
+0x5967 0x5A46
+0x5968 0x5A4A
+0x5969 0x5B70
+0x596A 0x5BC7
+0x596B 0x5BC5
+0x596C 0x5BC4
+0x596D 0x5BC2
+0x596E 0x5BBF
+0x596F 0x5BC6
+0x5970 0x5C09
+0x5971 0x5C08
+0x5972 0x5C07
+0x5973 0x5C60
+0x5974-0x5975 0x5C5C
+0x5976 0x5D07
+0x5977 0x5D06
+0x5978 0x5D0E
+0x5979 0x5D1B
+0x597A 0x5D16
+0x597B 0x5D22
+0x597C 0x5D11
+0x597D 0x5D29
+0x597E 0x5D14
+0x5A21 0x5D19
+0x5A22 0x5D24
+0x5A23 0x5D27
+0x5A24 0x5D17
+0x5A25 0x5DE2
+0x5A26 0x5E38
+0x5A27 0x5E36
+0x5A28 0x5E33
+0x5A29 0x5E37
+0x5A2A-0x5A2B 0x5EB7
+0x5A2C 0x5EB6
+0x5A2D 0x5EB5
+0x5A2E 0x5EBE
+0x5A2F 0x5F35
+0x5A30 0x5F37
+0x5A31 0x5F57
+0x5A32 0x5F6C
+0x5A33 0x5F69
+0x5A34 0x5F6B
+0x5A35 0x5F97
+0x5A36 0x5F99
+0x5A37 0x5F9E
+0x5A38 0x5F98
+0x5A39 0x5FA1
+0x5A3A 0x5FA0
+0x5A3B 0x5F9C
+0x5A3C 0x607F
+0x5A3D 0x60A3
+0x5A3E 0x6089
+0x5A3F 0x60A0
+0x5A40 0x60A8
+0x5A41 0x60CB
+0x5A42 0x60B4
+0x5A43 0x60E6
+0x5A44 0x60BD
+0x5A45 0x60C5
+0x5A46 0x60BB
+0x5A47 0x60B5
+0x5A48 0x60DC
+0x5A49 0x60BC
+0x5A4A 0x60D8
+0x5A4B 0x60D5
+0x5A4C 0x60C6
+0x5A4D 0x60DF
+0x5A4E 0x60B8
+0x5A4F 0x60DA
+0x5A50 0x60C7
+0x5A51-0x5A52 0x621A
+0x5A53 0x6248
+0x5A54 0x63A0
+0x5A55 0x63A7
+0x5A56 0x6372
+0x5A57 0x6396
+0x5A58 0x63A2
+0x5A59 0x63A5
+0x5A5A 0x6377
+0x5A5B 0x6367
+0x5A5C 0x6398
+0x5A5D 0x63AA
+0x5A5E 0x6371
+0x5A5F 0x63A9
+0x5A60 0x6389
+0x5A61 0x6383
+0x5A62 0x639B
+0x5A63 0x636B
+0x5A64 0x63A8
+0x5A65 0x6384
+0x5A66 0x6388
+0x5A67 0x6399
+0x5A68 0x63A1
+0x5A69 0x63AC
+0x5A6A 0x6392
+0x5A6B 0x638F
+0x5A6C 0x6380
+0x5A6D 0x637B
+0x5A6E 0x6369
+0x5A6F 0x6368
+0x5A70 0x637A
+0x5A71 0x655D
+0x5A72 0x6556
+0x5A73 0x6551
+0x5A74 0x6559
+0x5A75 0x6557
+0x5A76 0x555F
+0x5A77 0x654F
+0x5A78 0x6558
+0x5A79 0x6555
+0x5A7A 0x6554
+0x5A7B 0x659C
+0x5A7C 0x659B
+0x5A7D 0x65AC
+0x5A7E 0x65CF
+0x5B21-0x5B22 0x65CB
+0x5B23 0x65CE
+0x5B24 0x665D
+0x5B25 0x665A
+0x5B26 0x6664
+0x5B27 0x6668
+0x5B28 0x6666
+0x5B29 0x665E
+0x5B2A 0x66F9
+0x5B2B 0x52D7
+0x5B2C 0x671B
+0x5B2D 0x6881
+0x5B2E 0x68AF
+0x5B2F 0x68A2
+0x5B30 0x6893
+0x5B31 0x68B5
+0x5B32 0x687F
+0x5B33 0x6876
+0x5B34 0x68B1
+0x5B35 0x68A7
+0x5B36 0x6897
+0x5B37 0x68B0
+0x5B38 0x6883
+0x5B39 0x68C4
+0x5B3A 0x68AD
+0x5B3B 0x6886
+0x5B3C 0x6885
+0x5B3D 0x6894
+0x5B3E 0x689D
+0x5B3F 0x68A8
+0x5B40 0x689F
+0x5B41 0x68A1
+0x5B42 0x6882
+0x5B43 0x6B32
+0x5B44 0x6BBA
+0x5B45-0x5B46 0x6BEB
+0x5B47 0x6C2B
+0x5B48 0x6D8E
+0x5B49 0x6DBC
+0x5B4A 0x6DF3
+0x5B4B 0x6DD9
+0x5B4C 0x6DB2
+0x5B4D 0x6DE1
+0x5B4E 0x6DCC
+0x5B4F 0x6DE4
+0x5B50 0x6DFB
+0x5B51 0x6DFA
+0x5B52 0x6E05
+0x5B53 0x6DC7
+0x5B54 0x6DCB
+0x5B55 0x6DAF
+0x5B56 0x6DD1
+0x5B57 0x6DAE
+0x5B58 0x6DDE
+0x5B59 0x6DF9
+0x5B5A 0x6DB8
+0x5B5B 0x6DF7
+0x5B5C 0x6DF5
+0x5B5D 0x6DC5
+0x5B5E 0x6DD2
+0x5B5F 0x6E1A
+0x5B60 0x6DB5
+0x5B61 0x6DDA
+0x5B62 0x6DEB
+0x5B63 0x6DD8
+0x5B64 0x6DEA
+0x5B65 0x6DF1
+0x5B66 0x6DEE
+0x5B67 0x6DE8
+0x5B68 0x6DC6
+0x5B69 0x6DC4
+0x5B6A 0x6DAA
+0x5B6B 0x6DEC
+0x5B6C 0x6DBF
+0x5B6D 0x6DE6
+0x5B6E 0x70F9
+0x5B6F-0x5B70 0x7109
+0x5B71 0x70FD
+0x5B72 0x70EF
+0x5B73 0x723D
+0x5B74 0x727D
+0x5B75 0x7281
+0x5B76 0x731C
+0x5B77 0x731B
+0x5B78 0x7316
+0x5B79 0x7313
+0x5B7A 0x7319
+0x5B7B 0x7387
+0x5B7C 0x7405
+0x5B7D 0x740A
+0x5B7E 0x7403
+0x5C21 0x7406
+0x5C22 0x73FE
+0x5C23 0x740D
+0x5C24 0x74E0
+0x5C25-0x5C26 0x74F6
+0x5C27 0x751C
+0x5C28 0x7522
+0x5C29-0x5C2A 0x7565
+0x5C2B 0x7562
+0x5C2C 0x7570
+0x5C2D 0x758F
+0x5C2E-0x5C2F 0x75D4
+0x5C30 0x75B5
+0x5C31 0x75CA
+0x5C32 0x75CD
+0x5C33 0x768E
+0x5C34 0x76D4
+0x5C35 0x76D2
+0x5C36 0x76DB
+0x5C37 0x7737
+0x5C38 0x773E
+0x5C39 0x773C
+0x5C3A 0x7736
+0x5C3B 0x7738
+0x5C3C 0x773A
+0x5C3D 0x786B
+0x5C3E 0x7843
+0x5C3F 0x784E
+0x5C40 0x7965
+0x5C41 0x7968
+0x5C42 0x796D
+0x5C43 0x79FB
+0x5C44 0x7A92
+0x5C45 0x7A95
+0x5C46 0x7B20
+0x5C47 0x7B28
+0x5C48 0x7B1B
+0x5C49 0x7B2C
+0x5C4A 0x7B26
+0x5C4B 0x7B19
+0x5C4C 0x7B1E
+0x5C4D 0x7B2E
+0x5C4E 0x7C92
+0x5C4F 0x7C97
+0x5C50 0x7C95
+0x5C51 0x7D46
+0x5C52 0x7D43
+0x5C53 0x7D71
+0x5C54 0x7D2E
+0x5C55 0x7D39
+0x5C56 0x7D3C
+0x5C57 0x7D40
+0x5C58 0x7D30
+0x5C59 0x7D33
+0x5C5A 0x7D44
+0x5C5B 0x7D2F
+0x5C5C 0x7D42
+0x5C5D 0x7D32
+0x5C5E 0x7D31
+0x5C5F 0x7F3D
+0x5C60 0x7F9E
+0x5C61 0x7F9A
+0x5C62 0x7FCC
+0x5C63 0x7FCE
+0x5C64 0x7FD2
+0x5C65 0x801C
+0x5C66 0x804A
+0x5C67 0x8046
+0x5C68 0x812F
+0x5C69 0x8116
+0x5C6A 0x8123
+0x5C6B 0x812B
+0x5C6C 0x8129
+0x5C6D 0x8130
+0x5C6E 0x8124
+0x5C6F 0x8202
+0x5C70 0x8235
+0x5C71 0x8237
+0x5C72 0x8236
+0x5C73 0x8239
+0x5C74 0x838E
+0x5C75 0x839E
+0x5C76 0x8398
+0x5C77 0x8378
+0x5C78 0x83A2
+0x5C79 0x8396
+0x5C7A 0x83BD
+0x5C7B 0x83AB
+0x5C7C 0x8392
+0x5C7D 0x838A
+0x5C7E 0x8393
+0x5D21 0x8389
+0x5D22 0x83A0
+0x5D23 0x8377
+0x5D24-0x5D25 0x837B
+0x5D26 0x8386
+0x5D27 0x83A7
+0x5D28 0x8655
+0x5D29 0x5F6A
+0x5D2A 0x86C7
+0x5D2B 0x86C0
+0x5D2C 0x86B6
+0x5D2D 0x86C4
+0x5D2E 0x86B5
+0x5D2F 0x86C6
+0x5D30 0x86CB
+0x5D31 0x86B1
+0x5D32 0x86AF
+0x5D33 0x86C9
+0x5D34 0x8853
+0x5D35 0x889E
+0x5D36 0x8888
+0x5D37 0x88AB
+0x5D38 0x8892
+0x5D39 0x8896
+0x5D3A 0x888D
+0x5D3B 0x888B
+0x5D3C 0x8993
+0x5D3D 0x898F
+0x5D3E 0x8A2A
+0x5D3F 0x8A1D
+0x5D40 0x8A23
+0x5D41 0x8A25
+0x5D42 0x8A31
+0x5D43 0x8A2D
+0x5D44 0x8A1F
+0x5D45 0x8A1B
+0x5D46 0x8A22
+0x5D47 0x8C49
+0x5D48 0x8C5A
+0x5D49 0x8CA9
+0x5D4A 0x8CAC
+0x5D4B 0x8CAB
+0x5D4C 0x8CA8
+0x5D4D 0x8CAA
+0x5D4E 0x8CA7
+0x5D4F 0x8D67
+0x5D50 0x8D66
+0x5D51 0x8DBE
+0x5D52 0x8DBA
+0x5D53 0x8EDB
+0x5D54 0x8EDF
+0x5D55 0x9019
+0x5D56 0x900D
+0x5D57 0x901A
+0x5D58 0x9017
+0x5D59 0x9023
+0x5D5A 0x901F
+0x5D5B 0x901D
+0x5D5C 0x9010
+0x5D5D 0x9015
+0x5D5E 0x901E
+0x5D5F 0x9020
+0x5D60 0x900F
+0x5D61 0x9022
+0x5D62 0x9016
+0x5D63 0x901B
+0x5D64 0x9014
+0x5D65 0x90E8
+0x5D66 0x90ED
+0x5D67 0x90FD
+0x5D68 0x9157
+0x5D69 0x91CE
+0x5D6A 0x91F5
+0x5D6B 0x91E6
+0x5D6C 0x91E3
+0x5D6D 0x91E7
+0x5D6E 0x91ED
+0x5D6F 0x91E9
+0x5D70 0x9589
+0x5D71 0x966A
+0x5D72 0x9675
+0x5D73 0x9673
+0x5D74 0x9678
+0x5D75 0x9670
+0x5D76 0x9674
+0x5D77-0x5D78 0x9676
+0x5D79 0x966C
+0x5D7A 0x96C0
+0x5D7B 0x96EA
+0x5D7C 0x96E9
+0x5D7D 0x7AE0
+0x5D7E 0x7ADF
+0x5E21-0x5E22 0x9802
+0x5E23 0x9B5A
+0x5E24 0x9CE5
+0x5E25 0x9E75
+0x5E26 0x9E7F
+0x5E27 0x9EA5
+0x5E28 0x9EBB
+0x5E29 0x50A2
+0x5E2A 0x508D
+0x5E2B 0x5085
+0x5E2C 0x5099
+0x5E2D 0x5091
+0x5E2E 0x5080
+0x5E2F 0x5096
+0x5E30 0x5098
+0x5E31 0x509A
+0x5E32 0x6700
+0x5E33 0x51F1
+0x5E34 0x5272
+0x5E35-0x5E36 0x5274
+0x5E37 0x5269
+0x5E38 0x52DE
+0x5E39 0x52DD
+0x5E3A 0x52DB
+0x5E3B 0x535A
+0x5E3C 0x53A5
+0x5E3D 0x557B
+0x5E3E 0x5580
+0x5E3F 0x55A7
+0x5E40 0x557C
+0x5E41 0x558A
+0x5E42 0x559D
+0x5E43 0x5598
+0x5E44 0x5582
+0x5E45 0x559C
+0x5E46 0x55AA
+0x5E47 0x5594
+0x5E48 0x5587
+0x5E49 0x558B
+0x5E4A 0x5583
+0x5E4B 0x55B3
+0x5E4C 0x55AE
+0x5E4D 0x559F
+0x5E4E 0x553E
+0x5E4F 0x55B2
+0x5E50 0x559A
+0x5E51 0x55BB
+0x5E52 0x55AC
+0x5E53 0x55B1
+0x5E54 0x557E
+0x5E55 0x5589
+0x5E56 0x55AB
+0x5E57 0x5599
+0x5E58 0x570D
+0x5E59 0x582F
+0x5E5A 0x582A
+0x5E5B 0x5834
+0x5E5C 0x5824
+0x5E5D-0x5E5E 0x5830
+0x5E5F 0x5821
+0x5E60 0x581D
+0x5E61 0x5820
+0x5E62-0x5E63 0x58F9
+0x5E64 0x5960
+0x5E65 0x5A77
+0x5E66 0x5A9A
+0x5E67 0x5A7F
+0x5E68 0x5A92
+0x5E69 0x5A9B
+0x5E6A 0x5AA7
+0x5E6B 0x5B73
+0x5E6C 0x5B71
+0x5E6D 0x5BD2
+0x5E6E 0x5BCC
+0x5E6F 0x5BD3
+0x5E70 0x5BD0
+0x5E71-0x5E72 0x5C0A
+0x5E73 0x5C31
+0x5E74 0x5D4C
+0x5E75 0x5D50
+0x5E76 0x5D34
+0x5E77 0x5D47
+0x5E78 0x5DFD
+0x5E79 0x5E45
+0x5E7A 0x5E3D
+0x5E7B 0x5E40
+0x5E7C 0x5E43
+0x5E7D 0x5E7E
+0x5E7E 0x5ECA
+0x5F21-0x5F22 0x5EC1
+0x5F23 0x5EC4
+0x5F24 0x5F3C
+0x5F25 0x5F6D
+0x5F26-0x5F27 0x5FA9
+0x5F28 0x5FA8
+0x5F29 0x60D1
+0x5F2A 0x60E1
+0x5F2B 0x60B2
+0x5F2C 0x60B6
+0x5F2D 0x60E0
+0x5F2E 0x611C
+0x5F2F 0x6123
+0x5F30 0x60FA
+0x5F31 0x6115
+0x5F32 0x60F0
+0x5F33 0x60FB
+0x5F34 0x60F4
+0x5F35 0x6168
+0x5F36 0x60F1
+0x5F37 0x610E
+0x5F38 0x60F6
+0x5F39 0x6109
+0x5F3A 0x6100
+0x5F3B 0x6112
+0x5F3C 0x621F
+0x5F3D 0x6249
+0x5F3E 0x63A3
+0x5F3F 0x638C
+0x5F40 0x63CF
+0x5F41 0x63C0
+0x5F42 0x63E9
+0x5F43 0x63C9
+0x5F44 0x63C6
+0x5F45 0x63CD
+0x5F46 0x63D2
+0x5F47 0x63E3
+0x5F48 0x63D0
+0x5F49 0x63E1
+0x5F4A 0x63D6
+0x5F4B-0x5F4C 0x63ED
+0x5F4D 0x6376
+0x5F4E 0x63F4
+0x5F4F 0x63EA
+0x5F50 0x63DB
+0x5F51 0x6452
+0x5F52 0x63DA
+0x5F53 0x63F9
+0x5F54 0x655E
+0x5F55 0x6566
+0x5F56-0x5F57 0x6562
+0x5F58 0x6591
+0x5F59 0x6590
+0x5F5A 0x65AF
+0x5F5B 0x666E
+0x5F5C 0x6670
+0x5F5D 0x6674
+0x5F5E 0x6676
+0x5F5F 0x666F
+0x5F60 0x6691
+0x5F61 0x667A
+0x5F62 0x667E
+0x5F63 0x6677
+0x5F64-0x5F65 0x66FE
+0x5F66 0x671F
+0x5F67 0x671D
+0x5F68 0x68FA
+0x5F69 0x68D5
+0x5F6A 0x68E0
+0x5F6B 0x68D8
+0x5F6C 0x68D7
+0x5F6D 0x6905
+0x5F6E 0x68DF
+0x5F6F 0x68F5
+0x5F70 0x68EE
+0x5F71 0x68E7
+0x5F72 0x68F9
+0x5F73 0x68D2
+0x5F74 0x68F2
+0x5F75 0x68E3
+0x5F76 0x68CB
+0x5F77 0x68CD
+0x5F78 0x690D
+0x5F79 0x6912
+0x5F7A 0x690E
+0x5F7B 0x68C9
+0x5F7C 0x68DA
+0x5F7D 0x696E
+0x5F7E 0x68FB
+0x6021 0x6B3E
+0x6022 0x6B3A
+0x6023 0x6B3D
+0x6024 0x6B98
+0x6025 0x6B96
+0x6026 0x6BBC
+0x6027 0x6BEF
+0x6028-0x6029 0x6C2E
+0x602A 0x6C2C
+0x602B 0x6E2F
+0x602C 0x6E38
+0x602D 0x6E54
+0x602E 0x6E21
+0x602F 0x6E32
+0x6030 0x6E67
+0x6031 0x6E4A
+0x6032 0x6E20
+0x6033 0x6E25
+0x6034 0x6E23
+0x6035 0x6E1B
+0x6036 0x6E5B
+0x6037 0x6E58
+0x6038 0x6E24
+0x6039 0x6E56
+0x603A 0x6E6E
+0x603B 0x6E2D
+0x603C 0x6E26
+0x603D 0x6E6F
+0x603E 0x6E34
+0x603F 0x6E4D
+0x6040 0x6E3A
+0x6041 0x6E2C
+0x6042 0x6E43
+0x6043 0x6E1D
+0x6044 0x6E3E
+0x6045 0x6ECB
+0x6046 0x6E89
+0x6047 0x6E19
+0x6048 0x6E4E
+0x6049 0x6E63
+0x604A 0x6E44
+0x604B 0x6E72
+0x604C 0x6E69
+0x604D 0x6E5F
+0x604E-0x604F 0x7119
+0x6050 0x7126
+0x6051 0x7130
+0x6052 0x7121
+0x6053 0x7136
+0x6054 0x716E
+0x6055 0x711C
+0x6056 0x724C
+0x6057 0x7284
+0x6058 0x7280
+0x6059 0x7336
+0x605A 0x7325
+0x605B 0x7334
+0x605C 0x7329
+0x605D 0x743A
+0x605E 0x742A
+0x605F 0x7433
+0x6060 0x7422
+0x6061 0x7425
+0x6062-0x6063 0x7435
+0x6064 0x7434
+0x6065 0x742F
+0x6066 0x741B
+0x6067 0x7426
+0x6068 0x7428
+0x6069-0x606A 0x7525
+0x606B 0x756B
+0x606C 0x756A
+0x606D 0x75E2
+0x606E 0x75DB
+0x606F 0x75E3
+0x6070 0x75D9
+0x6071 0x75D8
+0x6072 0x75DE
+0x6073 0x75E0
+0x6074-0x6075 0x767B
+0x6076 0x7696
+0x6077 0x7693
+0x6078 0x76B4
+0x6079 0x76DC
+0x607A 0x774F
+0x607B 0x77ED
+0x607C 0x785D
+0x607D 0x786C
+0x607E 0x786F
+0x6121 0x7A0D
+0x6122 0x7A08
+0x6123 0x7A0B
+0x6124 0x7A05
+0x6125 0x7A00
+0x6126 0x7A98
+0x6127 0x7A97
+0x6128 0x7A96
+0x6129 0x7AE5
+0x612A 0x7AE3
+0x612B 0x7B49
+0x612C 0x7B56
+0x612D 0x7B46
+0x612E 0x7B50
+0x612F 0x7B52
+0x6130 0x7B54
+0x6131 0x7B4D
+0x6132 0x7B4B
+0x6133 0x7B4F
+0x6134 0x7B51
+0x6135 0x7C9F
+0x6136 0x7CA5
+0x6137 0x7D5E
+0x6138 0x7D50
+0x6139 0x7D68
+0x613A 0x7D55
+0x613B 0x7D2B
+0x613C 0x7D6E
+0x613D 0x7D72
+0x613E 0x7D61
+0x613F 0x7D66
+0x6140 0x7D62
+0x6141 0x7D70
+0x6142 0x7D73
+0x6143 0x5584
+0x6144-0x6145 0x7FD4
+0x6146 0x800B
+0x6147 0x8052
+0x6148 0x8085
+0x6149 0x8155
+0x614A 0x8154
+0x614B 0x814B
+0x614C 0x8151
+0x614D 0x814E
+0x614E 0x8139
+0x614F 0x8146
+0x6150 0x813E
+0x6151 0x814C
+0x6152 0x8153
+0x6153 0x8174
+0x6154 0x8212
+0x6155 0x821C
+0x6156 0x83E9
+0x6157 0x8403
+0x6158 0x83F8
+0x6159 0x840D
+0x615A 0x83E0
+0x615B 0x83C5
+0x615C 0x840B
+0x615D 0x83C1
+0x615E 0x83EF
+0x615F 0x83F1
+0x6160 0x83F4
+0x6161 0x8457
+0x6162 0x840A
+0x6163 0x83F0
+0x6164 0x840C
+0x6165 0x83CC
+0x6166 0x83FD
+0x6167 0x83F2
+0x6168 0x83CA
+0x6169 0x8438
+0x616A 0x840E
+0x616B 0x8404
+0x616C 0x83DC
+0x616D 0x8407
+0x616E 0x83D4
+0x616F 0x83DF
+0x6170 0x865B
+0x6171 0x86DF
+0x6172 0x86D9
+0x6173 0x86ED
+0x6174 0x86D4
+0x6175 0x86DB
+0x6176 0x86E4
+0x6177 0x86D0
+0x6178 0x86DE
+0x6179 0x8857
+0x617A-0x617B 0x88C1
+0x617C 0x88B1
+0x617D 0x8983
+0x617E 0x8996
+0x6221 0x8A3B
+0x6222 0x8A60
+0x6223 0x8A55
+0x6224 0x8A5E
+0x6225 0x8A3C
+0x6226 0x8A41
+0x6227 0x8A54
+0x6228 0x8A5B
+0x6229 0x8A50
+0x622A 0x8A46
+0x622B 0x8A34
+0x622C 0x8A3A
+0x622D 0x8A36
+0x622E 0x8A56
+0x622F 0x8C61
+0x6230 0x8C82
+0x6231 0x8CAF
+0x6232 0x8CBC
+0x6233 0x8CB3
+0x6234 0x8CBD
+0x6235 0x8CC1
+0x6236 0x8CBB
+0x6237 0x8CC0
+0x6238 0x8CB4
+0x6239 0x8CB7
+0x623A 0x8CB6
+0x623B 0x8CBF
+0x623C 0x8CB8
+0x623D 0x8D8A
+0x623E 0x8D85
+0x623F 0x8D81
+0x6240 0x8DCE
+0x6241 0x8DDD
+0x6242 0x8DCB
+0x6243 0x8DDA
+0x6244 0x8DD1
+0x6245 0x8DCC
+0x6246 0x8DDB
+0x6247 0x8DC6
+0x6248 0x8EFB
+0x6249 0x8EF8
+0x624A 0x8EFC
+0x624B 0x8F9C
+0x624C 0x902E
+0x624D 0x9035
+0x624E 0x9031
+0x624F 0x9038
+0x6250 0x9032
+0x6251 0x9036
+0x6252 0x9102
+0x6253 0x90F5
+0x6254 0x9109
+0x6255 0x90FE
+0x6256 0x9163
+0x6257 0x9165
+0x6258 0x91CF
+0x6259-0x625A 0x9214
+0x625B 0x9223
+0x625C 0x9209
+0x625D 0x921E
+0x625E 0x920D
+0x625F 0x9210
+0x6260 0x9207
+0x6261 0x9211
+0x6262 0x9594
+0x6263 0x958F
+0x6264 0x958B
+0x6265 0x9591
+0x6266 0x9593
+0x6267 0x9592
+0x6268 0x958E
+0x6269 0x968A
+0x626A 0x968E
+0x626B 0x968B
+0x626C 0x967D
+0x626D-0x626E 0x9685
+0x626F 0x968D
+0x6270 0x9672
+0x6271 0x9684
+0x6272 0x96C1
+0x6273 0x96C5
+0x6274 0x96C4
+0x6275-0x6276 0x96C6
+0x6277 0x96EF
+0x6278 0x96F2
+0x6279 0x97CC
+0x627A-0x627B 0x9805
+0x627C 0x9808
+0x627D 0x98E7
+0x627E 0x98EA
+0x6321 0x98EF
+0x6322 0x98E9
+0x6323 0x98F2
+0x6324 0x98ED
+0x6325 0x99AE
+0x6326 0x99AD
+0x6327 0x9EC3
+0x6328 0x9ECD
+0x6329 0x9ED1
+0x632A 0x4E82
+0x632B 0x50AD
+0x632C 0x50B5
+0x632D-0x632E 0x50B2
+0x632F 0x50C5
+0x6330 0x50BE
+0x6331 0x50AC
+0x6332 0x50B7
+0x6333 0x50BB
+0x6334 0x50AF
+0x6335 0x50C7
+0x6336 0x527F
+0x6337 0x5277
+0x6338 0x527D
+0x6339 0x52DF
+0x633A 0x52E6
+0x633B 0x52E4
+0x633C-0x633D 0x52E2
+0x633E 0x532F
+0x633F 0x55DF
+0x6340 0x55E8
+0x6341 0x55D3
+0x6342 0x55E6
+0x6343 0x55CE
+0x6344 0x55DC
+0x6345 0x55C7
+0x6346 0x55D1
+0x6347-0x6348 0x55E3
+0x6349 0x55EF
+0x634A 0x55DA
+0x634B 0x55E1
+0x634C-0x634D 0x55C5
+0x634E 0x55E5
+0x634F 0x55C9
+0x6350-0x6351 0x5712
+0x6352 0x585E
+0x6353 0x5851
+0x6354 0x5858
+0x6355 0x5857
+0x6356 0x585A
+0x6357 0x5854
+0x6358 0x586B
+0x6359 0x584C
+0x635A 0x586D
+0x635B 0x584A
+0x635C 0x5862
+0x635D 0x5852
+0x635E 0x584B
+0x635F 0x5967
+0x6360 0x5AC1
+0x6361 0x5AC9
+0x6362 0x5ACC
+0x6363 0x5ABE
+0x6364 0x5ABD
+0x6365 0x5ABC
+0x6366 0x5AB3
+0x6367 0x5AC2
+0x6368 0x5AB2
+0x6369 0x5D69
+0x636A 0x5D6F
+0x636B 0x5E4C
+0x636C 0x5E79
+0x636D 0x5EC9
+0x636E 0x5EC8
+0x636F 0x5F12
+0x6370 0x5F59
+0x6371 0x5FAC
+0x6372 0x5FAE
+0x6373 0x611A
+0x6374 0x610F
+0x6375 0x6148
+0x6376 0x611F
+0x6377 0x60F3
+0x6378 0x611B
+0x6379 0x60F9
+0x637A 0x6101
+0x637B 0x6108
+0x637C 0x614E
+0x637D 0x614C
+0x637E 0x6144
+0x6421 0x614D
+0x6422 0x613E
+0x6423 0x6134
+0x6424 0x6127
+0x6425 0x610D
+0x6426 0x6106
+0x6427 0x6137
+0x6428-0x6429 0x6221
+0x642A 0x6413
+0x642B 0x643E
+0x642C 0x641E
+0x642D 0x642A
+0x642E 0x642D
+0x642F 0x643D
+0x6430 0x642C
+0x6431 0x640F
+0x6432 0x641C
+0x6433 0x6414
+0x6434 0x640D
+0x6435 0x6436
+0x6436-0x6437 0x6416
+0x6438 0x6406
+0x6439 0x656C
+0x643A 0x659F
+0x643B 0x65B0
+0x643C 0x6697
+0x643D 0x6689
+0x643E-0x643F 0x6687
+0x6440 0x6696
+0x6441 0x6684
+0x6442 0x6698
+0x6443 0x668D
+0x6444 0x6703
+0x6445 0x6994
+0x6446 0x696D
+0x6447 0x695A
+0x6448 0x6977
+0x6449 0x6960
+0x644A 0x6954
+0x644B 0x6975
+0x644C 0x6930
+0x644D 0x6982
+0x644E 0x694A
+0x644F 0x6968
+0x6450 0x696B
+0x6451 0x695E
+0x6452 0x6953
+0x6453 0x6979
+0x6454 0x6986
+0x6455 0x695D
+0x6456 0x6963
+0x6457 0x695B
+0x6458 0x6B47
+0x6459 0x6B72
+0x645A 0x6BC0
+0x645B 0x6BBF
+0x645C 0x6BD3
+0x645D 0x6BFD
+0x645E 0x6EA2
+0x645F 0x6EAF
+0x6460 0x6ED3
+0x6461 0x6EB6
+0x6462 0x6EC2
+0x6463 0x6E90
+0x6464 0x6E9D
+0x6465 0x6EC7
+0x6466 0x6EC5
+0x6467 0x6EA5
+0x6468 0x6E98
+0x6469 0x6EBC
+0x646A 0x6EBA
+0x646B 0x6EAB
+0x646C 0x6ED1
+0x646D 0x6E96
+0x646E 0x6E9C
+0x646F 0x6EC4
+0x6470 0x6ED4
+0x6471 0x6EAA
+0x6472 0x6EA7
+0x6473 0x6EB4
+0x6474 0x714E
+0x6475 0x7159
+0x6476 0x7169
+0x6477 0x7164
+0x6478 0x7149
+0x6479 0x7167
+0x647A 0x715C
+0x647B 0x716C
+0x647C 0x7166
+0x647D 0x714C
+0x647E 0x7165
+0x6521 0x715E
+0x6522 0x7146
+0x6523 0x7168
+0x6524 0x7156
+0x6525 0x723A
+0x6526 0x7252
+0x6527 0x7337
+0x6528 0x7345
+0x6529 0x733F
+0x652A 0x733E
+0x652B 0x746F
+0x652C 0x745A
+0x652D 0x7455
+0x652E 0x745F
+0x652F 0x745E
+0x6530 0x7441
+0x6531 0x743F
+0x6532 0x7459
+0x6533-0x6534 0x745B
+0x6535 0x7576
+0x6536 0x7578
+0x6537 0x7600
+0x6538 0x75F0
+0x6539 0x7601
+0x653A 0x75F2
+0x653B 0x75F1
+0x653C 0x75FA
+0x653D 0x75FF
+0x653E 0x75F4
+0x653F 0x75F3
+0x6540-0x6541 0x76DE
+0x6542 0x775B
+0x6543 0x776B
+0x6544 0x7766
+0x6545 0x775E
+0x6546 0x7763
+0x6547 0x7779
+0x6548 0x776A
+0x6549 0x776C
+0x654A 0x775C
+0x654B 0x7765
+0x654C 0x7768
+0x654D 0x7762
+0x654E 0x77EE
+0x654F 0x788E
+0x6550 0x78B0
+0x6551-0x6552 0x7897
+0x6553 0x788C
+0x6554 0x7889
+0x6555 0x787C
+0x6556 0x7891
+0x6557 0x7893
+0x6558 0x787F
+0x6559 0x797A
+0x655A 0x797F
+0x655B 0x7981
+0x655C 0x842C
+0x655D 0x79BD
+0x655E 0x7A1C
+0x655F 0x7A1A
+0x6560 0x7A20
+0x6561 0x7A14
+0x6562 0x7A1F
+0x6563 0x7A1E
+0x6564-0x6565 0x7A9F
+0x6566 0x7B77
+0x6567 0x7BC0
+0x6568 0x7B60
+0x6569 0x7B6E
+0x656A 0x7B67
+0x656B 0x7CB1
+0x656C 0x7CB3
+0x656D 0x7CB5
+0x656E 0x7D93
+0x656F 0x7D79
+0x6570 0x7D91
+0x6571 0x7D81
+0x6572 0x7D8F
+0x6573 0x7D5B
+0x6574 0x7F6E
+0x6575-0x6576 0x7F69
+0x6577 0x7F72
+0x6578 0x7FA9
+0x6579 0x7FA8
+0x657A 0x7FA4
+0x657B 0x8056
+0x657C 0x8058
+0x657D 0x8086
+0x657E 0x8084
+0x6621 0x8171
+0x6622 0x8170
+0x6623 0x8178
+0x6624 0x8165
+0x6625 0x816E
+0x6626 0x8173
+0x6627 0x816B
+0x6628-0x6629 0x8179
+0x662A 0x8166
+0x662B 0x8205
+0x662C 0x8247
+0x662D 0x8482
+0x662E 0x8477
+0x662F 0x843D
+0x6630 0x8431
+0x6631 0x8475
+0x6632 0x8466
+0x6633 0x846B
+0x6634 0x8449
+0x6635 0x846C
+0x6636 0x845B
+0x6637 0x843C
+0x6638 0x8435
+0x6639 0x8461
+0x663A 0x8463
+0x663B 0x8469
+0x663C 0x846D
+0x663D 0x8446
+0x663E 0x865E
+0x663F 0x865C
+0x6640 0x865F
+0x6641 0x86F9
+0x6642 0x8713
+0x6643 0x8708
+0x6644 0x8707
+0x6645 0x8700
+0x6646 0x86FE
+0x6647 0x86FB
+0x6648-0x6649 0x8702
+0x664A 0x8706
+0x664B 0x870A
+0x664C 0x8859
+0x664D 0x88DF
+0x664E 0x88D4
+0x664F 0x88D9
+0x6650 0x88DC
+0x6651 0x88D8
+0x6652 0x88DD
+0x6653 0x88E1
+0x6654 0x88CA
+0x6655 0x88D5
+0x6656 0x88D2
+0x6657 0x899C
+0x6658 0x89E3
+0x6659 0x8A6B
+0x665A-0x665B 0x8A72
+0x665C 0x8A66
+0x665D 0x8A69
+0x665E 0x8A70
+0x665F 0x8A87
+0x6660 0x8A7C
+0x6661 0x8A63
+0x6662 0x8AA0
+0x6663 0x8A71
+0x6664 0x8A85
+0x6665 0x8A6D
+0x6666 0x8A62
+0x6667 0x8A6E
+0x6668 0x8A6C
+0x6669 0x8A79
+0x666A 0x8A7B
+0x666B 0x8A3E
+0x666C 0x8A68
+0x666D 0x8C62
+0x666E 0x8C8A
+0x666F 0x8C89
+0x6670 0x8CCA
+0x6671-0x6672 0x8CC7
+0x6673 0x8CC4
+0x6674 0x8CB2
+0x6675 0x8CC3
+0x6676 0x8CC2
+0x6677 0x8CC5
+0x6678 0x8DE1
+0x6679 0x8DDF
+0x667A 0x8DE8
+0x667B 0x8DEF
+0x667C 0x8DF3
+0x667D 0x8DFA
+0x667E 0x8DEA
+0x6721 0x8DE4
+0x6722 0x8DE6
+0x6723 0x8EB2
+0x6724 0x8F03
+0x6725 0x8F09
+0x6726 0x8EFE
+0x6727 0x8F0A
+0x6728 0x8F9F
+0x6729 0x8FB2
+0x672A 0x904B
+0x672B 0x904A
+0x672C 0x9053
+0x672D 0x9042
+0x672E 0x9054
+0x672F 0x903C
+0x6730 0x9055
+0x6731 0x9050
+0x6732 0x9047
+0x6733 0x904F
+0x6734 0x904E
+0x6735 0x904D
+0x6736 0x9051
+0x6737 0x903E
+0x6738 0x9041
+0x6739 0x9112
+0x673A 0x9117
+0x673B 0x916C
+0x673C 0x916A
+0x673D 0x9169
+0x673E 0x91C9
+0x673F 0x9237
+0x6740 0x9257
+0x6741 0x9238
+0x6742 0x923D
+0x6743 0x9240
+0x6744 0x923E
+0x6745 0x925B
+0x6746 0x924B
+0x6747 0x9264
+0x6748 0x9251
+0x6749 0x9234
+0x674A 0x9249
+0x674B 0x924D
+0x674C 0x9245
+0x674D 0x9239
+0x674E 0x923F
+0x674F 0x925A
+0x6750 0x9598
+0x6751 0x9698
+0x6752-0x6753 0x9694
+0x6754 0x96CD
+0x6755 0x96CB
+0x6756-0x6757 0x96C9
+0x6758 0x96F7
+0x6759 0x96FB
+0x675A 0x96F9
+0x675B 0x96F6
+0x675C 0x9756
+0x675D 0x9774
+0x675E 0x9776
+0x675F-0x6760 0x9810
+0x6761 0x9813
+0x6762 0x980A
+0x6763 0x9812
+0x6764 0x980C
+0x6765 0x98FC
+0x6766 0x98F4
+0x6767-0x6768 0x98FD
+0x6769 0x99B3
+0x676A 0x99B1
+0x676B 0x99B4
+0x676C 0x9AE1
+0x676D 0x9CE9
+0x676E 0x9E82
+0x676F 0x9F0E
+0x6770 0x9F13
+0x6771 0x9F20
+0x6772 0x50E7
+0x6773 0x50EE
+0x6774 0x50E5
+0x6775 0x50D6
+0x6776 0x50ED
+0x6777 0x50DA
+0x6778 0x50D5
+0x6779 0x50CF
+0x677A 0x50D1
+0x677B 0x50F1
+0x677C 0x50CE
+0x677D 0x50E9
+0x677E 0x5162
+0x6821 0x51F3
+0x6822 0x5283
+0x6823 0x5282
+0x6824 0x5331
+0x6825 0x53AD
+0x6826 0x55FE
+0x6827 0x5600
+0x6828 0x561B
+0x6829 0x5617
+0x682A 0x55FD
+0x682B 0x5614
+0x682C 0x5606
+0x682D 0x5609
+0x682E-0x682F 0x560D
+0x6830 0x55F7
+0x6831 0x5616
+0x6832 0x561F
+0x6833 0x5608
+0x6834 0x5610
+0x6835 0x55F6
+0x6836 0x5718
+0x6837 0x5716
+0x6838 0x5875
+0x6839 0x587E
+0x683A 0x5883
+0x683B 0x5893
+0x683C 0x588A
+0x683D 0x5879
+0x683E 0x5885
+0x683F 0x587D
+0x6840 0x58FD
+0x6841 0x5925
+0x6842 0x5922
+0x6843 0x5924
+0x6844 0x596A
+0x6845 0x5969
+0x6846 0x5AE1
+0x6847 0x5AE6
+0x6848 0x5AE9
+0x6849 0x5AD7
+0x684A 0x5AD6
+0x684B 0x5AD8
+0x684C 0x5AE3
+0x684D 0x5B75
+0x684E 0x5BDE
+0x684F 0x5BE7
+0x6850 0x5BE1
+0x6851-0x6852 0x5BE5
+0x6853 0x5BE8
+0x6854 0x5BE2
+0x6855 0x5BE4
+0x6856 0x5BDF
+0x6857 0x5C0D
+0x6858 0x5C62
+0x6859 0x5D84
+0x685A 0x5D87
+0x685B 0x5E5B
+0x685C 0x5E63
+0x685D 0x5E55
+0x685E 0x5E57
+0x685F 0x5E54
+0x6860 0x5ED3
+0x6861 0x5ED6
+0x6862 0x5F0A
+0x6863 0x5F46
+0x6864 0x5F70
+0x6865 0x5FB9
+0x6866 0x6147
+0x6867 0x613F
+0x6868 0x614B
+0x6869 0x6177
+0x686A-0x686B 0x6162
+0x686C 0x615F
+0x686D 0x615A
+0x686E 0x6158
+0x686F 0x6175
+0x6870 0x622A
+0x6871 0x6487
+0x6872 0x6458
+0x6873 0x6454
+0x6874 0x64A4
+0x6875 0x6478
+0x6876 0x645F
+0x6877 0x647A
+0x6878 0x6451
+0x6879 0x6467
+0x687A 0x6434
+0x687B 0x646D
+0x687C 0x647B
+0x687D 0x6572
+0x687E 0x65A1
+0x6921 0x65D7
+0x6922 0x65D6
+0x6923 0x66A2
+0x6924 0x66A8
+0x6925 0x669D
+0x6926 0x699C
+0x6927 0x69A8
+0x6928 0x6995
+0x6929 0x69C1
+0x692A 0x69AE
+0x692B 0x69D3
+0x692C 0x69CB
+0x692D 0x699B
+0x692E 0x69B7
+0x692F 0x69BB
+0x6930 0x69AB
+0x6931 0x69B4
+0x6932 0x69D0
+0x6933 0x69CD
+0x6934 0x69AD
+0x6935 0x69CC
+0x6936 0x69A6
+0x6937 0x69C3
+0x6938 0x69A3
+0x6939 0x6B49
+0x693A 0x6B4C
+0x693B 0x6C33
+0x693C 0x6F33
+0x693D 0x6F14
+0x693E 0x6EFE
+0x693F 0x6F13
+0x6940 0x6EF4
+0x6941 0x6F29
+0x6942 0x6F3E
+0x6943 0x6F20
+0x6944 0x6F2C
+0x6945 0x6F0F
+0x6946 0x6F02
+0x6947 0x6F22
+0x6948 0x6EFF
+0x6949 0x6EEF
+0x694A 0x6F06
+0x694B 0x6F31
+0x694C 0x6F38
+0x694D 0x6F32
+0x694E 0x6F23
+0x694F 0x6F15
+0x6950 0x6F2B
+0x6951 0x6F2F
+0x6952 0x6F88
+0x6953 0x6F2A
+0x6954 0x6EEC
+0x6955 0x6F01
+0x6956 0x6EF2
+0x6957 0x6ECC
+0x6958 0x6EF7
+0x6959 0x7194
+0x695A 0x7199
+0x695B 0x717D
+0x695C 0x718A
+0x695D 0x7184
+0x695E 0x7192
+0x695F 0x723E
+0x6960 0x7292
+0x6961 0x7296
+0x6962 0x7344
+0x6963 0x7350
+0x6964 0x7464
+0x6965 0x7463
+0x6966 0x746A
+0x6967 0x7470
+0x6968 0x746D
+0x6969 0x7504
+0x696A 0x7591
+0x696B 0x7627
+0x696C 0x760D
+0x696D 0x760B
+0x696E 0x7609
+0x696F 0x7613
+0x6970 0x76E1
+0x6971 0x76E3
+0x6972 0x7784
+0x6973 0x777D
+0x6974 0x777F
+0x6975 0x7761
+0x6976 0x78C1
+0x6977 0x789F
+0x6978 0x78A7
+0x6979 0x78B3
+0x697A 0x78A9
+0x697B 0x78A3
+0x697C-0x697D 0x798E
+0x697E 0x798D
+0x6A21 0x7A2E
+0x6A22 0x7A31
+0x6A23 0x7AAA
+0x6A24 0x7AA9
+0x6A25 0x7AED
+0x6A26 0x7AEF
+0x6A27 0x7BA1
+0x6A28 0x7B95
+0x6A29 0x7B8B
+0x6A2A 0x7B75
+0x6A2B 0x7B97
+0x6A2C 0x7B9D
+0x6A2D 0x7B94
+0x6A2E 0x7B8F
+0x6A2F 0x7BB8
+0x6A30 0x7B87
+0x6A31 0x7B84
+0x6A32 0x7CB9
+0x6A33-0x6A34 0x7CBD
+0x6A35 0x7DBB
+0x6A36 0x7DB0
+0x6A37 0x7D9C
+0x6A38-0x6A39 0x7DBD
+0x6A3A 0x7DA0
+0x6A3B 0x7DCA
+0x6A3C 0x7DB4
+0x6A3D 0x7DB2
+0x6A3E 0x7DB1
+0x6A3F 0x7DBA
+0x6A40 0x7DA2
+0x6A41 0x7DBF
+0x6A42 0x7DB5
+0x6A43 0x7DB8
+0x6A44 0x7DAD
+0x6A45 0x7DD2
+0x6A46 0x7DC7
+0x6A47 0x7DAC
+0x6A48 0x7F70
+0x6A49-0x6A4A 0x7FE0
+0x6A4B 0x7FDF
+0x6A4C 0x805E
+0x6A4D 0x805A
+0x6A4E 0x8087
+0x6A4F 0x8150
+0x6A50 0x8180
+0x6A51 0x818F
+0x6A52 0x8188
+0x6A53 0x818A
+0x6A54 0x817F
+0x6A55 0x8182
+0x6A56 0x81E7
+0x6A57 0x81FA
+0x6A58 0x8207
+0x6A59 0x8214
+0x6A5A 0x821E
+0x6A5B 0x824B
+0x6A5C 0x84C9
+0x6A5D 0x84BF
+0x6A5E 0x84C6
+0x6A5F 0x84C4
+0x6A60 0x8499
+0x6A61 0x849E
+0x6A62 0x84B2
+0x6A63 0x849C
+0x6A64 0x84CB
+0x6A65 0x84B8
+0x6A66 0x84C0
+0x6A67 0x84D3
+0x6A68 0x8490
+0x6A69 0x84BC
+0x6A6A 0x84D1
+0x6A6B 0x84CA
+0x6A6C 0x873F
+0x6A6D 0x871C
+0x6A6E 0x873B
+0x6A6F 0x8722
+0x6A70 0x8725
+0x6A71 0x8734
+0x6A72 0x8718
+0x6A73 0x8755
+0x6A74 0x8737
+0x6A75 0x8729
+0x6A76 0x88F3
+0x6A77 0x8902
+0x6A78 0x88F4
+0x6A79 0x88F9
+0x6A7A 0x88F8
+0x6A7B 0x88FD
+0x6A7C 0x88E8
+0x6A7D 0x891A
+0x6A7E 0x88EF
+0x6B21 0x8AA6
+0x6B22 0x8A8C
+0x6B23 0x8A9E
+0x6B24 0x8AA3
+0x6B25 0x8A8D
+0x6B26 0x8AA1
+0x6B27 0x8A93
+0x6B28 0x8AA4
+0x6B29 0x8AAA
+0x6B2A 0x8AA5
+0x6B2B 0x8AA8
+0x6B2C 0x8A98
+0x6B2D 0x8A91
+0x6B2E 0x8A9A
+0x6B2F 0x8AA7
+0x6B30 0x8C6A
+0x6B31 0x8C8D
+0x6B32 0x8C8C
+0x6B33 0x8CD3
+0x6B34-0x6B35 0x8CD1
+0x6B36 0x8D6B
+0x6B37 0x8D99
+0x6B38 0x8D95
+0x6B39 0x8DFC
+0x6B3A 0x8F14
+0x6B3B 0x8F12
+0x6B3C 0x8F15
+0x6B3D 0x8F13
+0x6B3E 0x8FA3
+0x6B3F 0x9060
+0x6B40 0x9058
+0x6B41 0x905C
+0x6B42 0x9063
+0x6B43 0x9059
+0x6B44 0x905E
+0x6B45 0x9062
+0x6B46 0x905D
+0x6B47 0x905B
+0x6B48 0x9119
+0x6B49 0x9118
+0x6B4A 0x911E
+0x6B4B 0x9175
+0x6B4C 0x9178
+0x6B4D 0x9177
+0x6B4E 0x9174
+0x6B4F 0x9278
+0x6B50 0x92AC
+0x6B51 0x9280
+0x6B52 0x9285
+0x6B53 0x9298
+0x6B54 0x9296
+0x6B55 0x927B
+0x6B56 0x9293
+0x6B57 0x929C
+0x6B58 0x92A8
+0x6B59 0x927C
+0x6B5A 0x9291
+0x6B5B 0x95A1
+0x6B5C-0x6B5D 0x95A8
+0x6B5E 0x95A3
+0x6B5F 0x95A5
+0x6B60 0x95A4
+0x6B61 0x9699
+0x6B62 0x969C
+0x6B63 0x969B
+0x6B64 0x96CC
+0x6B65 0x96D2
+0x6B66 0x9700
+0x6B67 0x977C
+0x6B68 0x9785
+0x6B69 0x97F6
+0x6B6A-0x6B6B 0x9817
+0x6B6C 0x98AF
+0x6B6D 0x98B1
+0x6B6E 0x9903
+0x6B6F 0x9905
+0x6B70 0x990C
+0x6B71 0x9909
+0x6B72 0x99C1
+0x6B73-0x6B74 0x9AAF
+0x6B75 0x9AE6
+0x6B76-0x6B77 0x9B41
+0x6B78 0x9CF4
+0x6B79 0x9CF6
+0x6B7A 0x9CF3
+0x6B7B 0x9EBC
+0x6B7C 0x9F3B
+0x6B7D 0x9F4A
+0x6B7E 0x5104
+0x6C21 0x5100
+0x6C22 0x50FB
+0x6C23 0x50F5
+0x6C24 0x50F9
+0x6C25 0x5102
+0x6C26-0x6C27 0x5108
+0x6C28 0x5105
+0x6C29 0x51DC
+0x6C2A-0x6C2C 0x5287
+0x6C2D 0x528D
+0x6C2E 0x528A
+0x6C2F 0x52F0
+0x6C30 0x53B2
+0x6C31 0x562E
+0x6C32 0x563B
+0x6C33 0x5639
+0x6C34 0x5632
+0x6C35 0x563F
+0x6C36 0x5634
+0x6C37 0x5629
+0x6C38 0x5653
+0x6C39 0x564E
+0x6C3A 0x5657
+0x6C3B 0x5674
+0x6C3C 0x5636
+0x6C3D-0x6C3E 0x562F
+0x6C3F 0x5880
+0x6C40 0x589F
+0x6C41 0x589E
+0x6C42 0x58B3
+0x6C43 0x589C
+0x6C44 0x58AE
+0x6C45 0x58A9
+0x6C46 0x58A6
+0x6C47 0x596D
+0x6C48 0x5B09
+0x6C49 0x5AFB
+0x6C4A 0x5B0B
+0x6C4B 0x5AF5
+0x6C4C 0x5B0C
+0x6C4D 0x5B08
+0x6C4E 0x5BEE
+0x6C4F 0x5BEC
+0x6C50 0x5BE9
+0x6C51 0x5BEB
+0x6C52-0x6C53 0x5C64
+0x6C54 0x5D9D
+0x6C55 0x5D94
+0x6C56 0x5E62
+0x6C57 0x5E5F
+0x6C58 0x5E61
+0x6C59 0x5EE2
+0x6C5A 0x5EDA
+0x6C5B 0x5EDF
+0x6C5C 0x5EDD
+0x6C5D 0x5EE3
+0x6C5E 0x5EE0
+0x6C5F 0x5F48
+0x6C60 0x5F71
+0x6C61 0x5FB7
+0x6C62 0x5FB5
+0x6C63 0x6176
+0x6C64 0x6167
+0x6C65 0x616E
+0x6C66 0x615D
+0x6C67 0x6155
+0x6C68 0x6182
+0x6C69 0x617C
+0x6C6A 0x6170
+0x6C6B 0x616B
+0x6C6C 0x617E
+0x6C6D 0x61A7
+0x6C6E 0x6190
+0x6C6F 0x61AB
+0x6C70 0x618E
+0x6C71 0x61AC
+0x6C72 0x619A
+0x6C73 0x61A4
+0x6C74 0x6194
+0x6C75 0x61AE
+0x6C76 0x622E
+0x6C77 0x6469
+0x6C78 0x646F
+0x6C79 0x6479
+0x6C7A 0x649E
+0x6C7B 0x64B2
+0x6C7C 0x6488
+0x6C7D 0x6490
+0x6C7E 0x64B0
+0x6D21 0x64A5
+0x6D22 0x6493
+0x6D23 0x6495
+0x6D24 0x64A9
+0x6D25 0x6492
+0x6D26 0x64AE
+0x6D27 0x64AD
+0x6D28 0x64AB
+0x6D29 0x649A
+0x6D2A 0x64AC
+0x6D2B 0x6499
+0x6D2C 0x64A2
+0x6D2D 0x64B3
+0x6D2E 0x6575
+0x6D2F-0x6D30 0x6577
+0x6D31 0x66AE
+0x6D32 0x66AB
+0x6D33 0x66B4
+0x6D34 0x66B1
+0x6D35 0x6A23
+0x6D36 0x6A1F
+0x6D37 0x69E8
+0x6D38 0x6A01
+0x6D39 0x6A1E
+0x6D3A 0x6A19
+0x6D3B 0x69FD
+0x6D3C 0x6A21
+0x6D3D 0x6A13
+0x6D3E 0x6A0A
+0x6D3F 0x69F3
+0x6D40 0x6A02
+0x6D41 0x6A05
+0x6D42 0x69ED
+0x6D43 0x6A11
+0x6D44 0x6B50
+0x6D45 0x6B4E
+0x6D46 0x6BA4
+0x6D47-0x6D48 0x6BC5
+0x6D49 0x6F3F
+0x6D4A 0x6F7C
+0x6D4B 0x6F84
+0x6D4C 0x6F51
+0x6D4D 0x6F66
+0x6D4E 0x6F54
+0x6D4F 0x6F86
+0x6D50 0x6F6D
+0x6D51 0x6F5B
+0x6D52 0x6F78
+0x6D53 0x6F6E
+0x6D54 0x6F8E
+0x6D55 0x6F7A
+0x6D56 0x6F70
+0x6D57 0x6F64
+0x6D58 0x6F97
+0x6D59 0x6F58
+0x6D5A 0x6ED5
+0x6D5B 0x6F6F
+0x6D5C 0x6F60
+0x6D5D 0x6F5F
+0x6D5E 0x719F
+0x6D5F 0x71AC
+0x6D60 0x71B1
+0x6D61 0x71A8
+0x6D62 0x7256
+0x6D63 0x729B
+0x6D64 0x734E
+0x6D65 0x7357
+0x6D66 0x7469
+0x6D67 0x748B
+0x6D68 0x7483
+0x6D69 0x747E
+0x6D6A 0x7480
+0x6D6B 0x757F
+0x6D6C 0x7620
+0x6D6D 0x7629
+0x6D6E 0x761F
+0x6D6F 0x7624
+0x6D70 0x7626
+0x6D71-0x6D72 0x7621
+0x6D73 0x769A
+0x6D74 0x76BA
+0x6D75 0x76E4
+0x6D76 0x778E
+0x6D77 0x7787
+0x6D78 0x778C
+0x6D79 0x7791
+0x6D7A 0x778B
+0x6D7B 0x78CB
+0x6D7C 0x78C5
+0x6D7D 0x78BA
+0x6D7E 0x78CA
+0x6E21 0x78BE
+0x6E22 0x78D5
+0x6E23 0x78BC
+0x6E24 0x78D0
+0x6E25 0x7A3F
+0x6E26 0x7A3C
+0x6E27 0x7A40
+0x6E28 0x7A3D
+0x6E29 0x7A37
+0x6E2A 0x7A3B
+0x6E2B 0x7AAF
+0x6E2C 0x7AAE
+0x6E2D 0x7BAD
+0x6E2E 0x7BB1
+0x6E2F 0x7BC4
+0x6E30 0x7BB4
+0x6E31-0x6E32 0x7BC6
+0x6E33 0x7BC1
+0x6E34 0x7BA0
+0x6E35 0x7BCC
+0x6E36 0x7CCA
+0x6E37 0x7DE0
+0x6E38 0x7DF4
+0x6E39 0x7DEF
+0x6E3A 0x7DFB
+0x6E3B 0x7DD8
+0x6E3C 0x7DEC
+0x6E3D 0x7DDD
+0x6E3E 0x7DE8
+0x6E3F 0x7DE3
+0x6E40 0x7DDA
+0x6E41 0x7DDE
+0x6E42 0x7DE9
+0x6E43 0x7D9E
+0x6E44 0x7DD9
+0x6E45 0x7DF2
+0x6E46 0x7DF9
+0x6E47 0x7F75
+0x6E48 0x7F77
+0x6E49 0x7FAF
+0x6E4A 0x7FE9
+0x6E4B 0x8026
+0x6E4C-0x6E4E 0x819B
+0x6E4F 0x81A0
+0x6E50 0x819A
+0x6E51 0x8198
+0x6E52 0x8517
+0x6E53 0x853D
+0x6E54 0x851A
+0x6E55 0x84EE
+0x6E56-0x6E57 0x852C
+0x6E58 0x8513
+0x6E59 0x8511
+0x6E5A 0x8523
+0x6E5B 0x8521
+0x6E5C 0x8514
+0x6E5D 0x84EC
+0x6E5E 0x8525
+0x6E5F 0x84FF
+0x6E60 0x8506
+0x6E61 0x8782
+0x6E62 0x8774
+0x6E63 0x8776
+0x6E64 0x8760
+0x6E65 0x8766
+0x6E66 0x8778
+0x6E67 0x8768
+0x6E68 0x8759
+0x6E69 0x8757
+0x6E6A 0x874C
+0x6E6B 0x8753
+0x6E6C 0x885B
+0x6E6D 0x885D
+0x6E6E 0x8910
+0x6E6F 0x8907
+0x6E70-0x6E71 0x8912
+0x6E72 0x8915
+0x6E73 0x890A
+0x6E74 0x8ABC
+0x6E75 0x8AD2
+0x6E76 0x8AC7
+0x6E77 0x8AC4
+0x6E78 0x8A95
+0x6E79 0x8ACB
+0x6E7A 0x8AF8
+0x6E7B 0x8AB2
+0x6E7C 0x8AC9
+0x6E7D 0x8AC2
+0x6E7E 0x8ABF
+0x6F21 0x8AB0
+0x6F22 0x8AD6
+0x6F23 0x8ACD
+0x6F24 0x8AB6
+0x6F25 0x8AB9
+0x6F26 0x8ADB
+0x6F27 0x8C4C
+0x6F28 0x8C4E
+0x6F29 0x8C6C
+0x6F2A 0x8CE0
+0x6F2B 0x8CDE
+0x6F2C 0x8CE6
+0x6F2D 0x8CE4
+0x6F2E-0x6F2F 0x8CEC
+0x6F30-0x6F31 0x8CE2
+0x6F32 0x8CDC
+0x6F33 0x8CEA
+0x6F34 0x8CE1
+0x6F35 0x8D6D
+0x6F36 0x8D9F
+0x6F37 0x8DA3
+0x6F38 0x8E2B
+0x6F39 0x8E10
+0x6F3A 0x8E1D
+0x6F3B 0x8E22
+0x6F3C 0x8E0F
+0x6F3D 0x8E29
+0x6F3E 0x8E1F
+0x6F3F 0x8E21
+0x6F40 0x8E1E
+0x6F41 0x8EBA
+0x6F42 0x8F1D
+0x6F43 0x8F1B
+0x6F44 0x8F1F
+0x6F45 0x8F29
+0x6F46 0x8F26
+0x6F47 0x8F2A
+0x6F48 0x8F1C
+0x6F49 0x8F1E
+0x6F4A 0x8F25
+0x6F4B 0x9069
+0x6F4C 0x906E
+0x6F4D 0x9068
+0x6F4E 0x906D
+0x6F4F 0x9077
+0x6F50 0x9130
+0x6F51 0x912D
+0x6F52 0x9127
+0x6F53 0x9131
+0x6F54 0x9187
+0x6F55 0x9189
+0x6F56 0x918B
+0x6F57 0x9183
+0x6F58 0x92C5
+0x6F59 0x92BB
+0x6F5A 0x92B7
+0x6F5B 0x92EA
+0x6F5C 0x92E4
+0x6F5D 0x92C1
+0x6F5E 0x92B3
+0x6F5F 0x92BC
+0x6F60 0x92D2
+0x6F61 0x92C7
+0x6F62 0x92F0
+0x6F63 0x92B2
+0x6F64 0x95AD
+0x6F65 0x95B1
+0x6F66 0x9704
+0x6F67-0x6F68 0x9706
+0x6F69 0x9709
+0x6F6A 0x9760
+0x6F6B 0x978D
+0x6F6C 0x978B
+0x6F6D 0x978F
+0x6F6E 0x9821
+0x6F6F 0x982B
+0x6F70 0x981C
+0x6F71 0x98B3
+0x6F72 0x990A
+0x6F73 0x9913
+0x6F74 0x9912
+0x6F75 0x9918
+0x6F76 0x99DD
+0x6F77 0x99D0
+0x6F78 0x99DF
+0x6F79 0x99DB
+0x6F7A 0x99D1
+0x6F7B 0x99D5
+0x6F7C 0x99D2
+0x6F7D 0x99D9
+0x6F7E 0x9AB7
+0x7021-0x7022 0x9AEE
+0x7023 0x9B27
+0x7024 0x9B45
+0x7025 0x9B44
+0x7026 0x9B77
+0x7027 0x9B6F
+0x7028 0x9D06
+0x7029 0x9D09
+0x702A 0x9D03
+0x702B 0x9EA9
+0x702C 0x9EBE
+0x702D 0x9ECE
+0x702E 0x58A8
+0x702F 0x9F52
+0x7030 0x5112
+0x7031 0x5118
+0x7032 0x5114
+0x7033 0x5110
+0x7034 0x5115
+0x7035 0x5180
+0x7036 0x51AA
+0x7037 0x51DD
+0x7038 0x5291
+0x7039 0x5293
+0x703A 0x52F3
+0x703B 0x5659
+0x703C 0x566B
+0x703D 0x5679
+0x703E 0x5669
+0x703F 0x5664
+0x7040 0x5678
+0x7041 0x566A
+0x7042 0x5668
+0x7043 0x5665
+0x7044 0x5671
+0x7045 0x566F
+0x7046 0x566C
+0x7047 0x5662
+0x7048 0x5676
+0x7049 0x58C1
+0x704A 0x58BE
+0x704B 0x58C7
+0x704C 0x58C5
+0x704D 0x596E
+0x704E 0x5B1D
+0x704F 0x5B34
+0x7050 0x5B78
+0x7051 0x5BF0
+0x7052 0x5C0E
+0x7053 0x5F4A
+0x7054 0x61B2
+0x7055 0x6191
+0x7056 0x61A9
+0x7057 0x618A
+0x7058 0x61CD
+0x7059 0x61B6
+0x705A 0x61BE
+0x705B 0x61CA
+0x705C 0x61C8
+0x705D 0x6230
+0x705E 0x64C5
+0x705F 0x64C1
+0x7060 0x64CB
+0x7061-0x7062 0x64BB
+0x7063 0x64DA
+0x7064 0x64C4
+0x7065 0x64C7
+0x7066 0x64C2
+0x7067 0x64CD
+0x7068 0x64BF
+0x7069 0x64D2
+0x706A 0x64D4
+0x706B 0x64BE
+0x706C 0x6574
+0x706D 0x66C6
+0x706E 0x66C9
+0x706F 0x66B9
+0x7070 0x66C4
+0x7071 0x66C7
+0x7072 0x66B8
+0x7073 0x6A3D
+0x7074 0x6A38
+0x7075 0x6A3A
+0x7076 0x6A59
+0x7077 0x6A6B
+0x7078 0x6A58
+0x7079 0x6A39
+0x707A 0x6A44
+0x707B 0x6A62
+0x707C 0x6A61
+0x707D 0x6A4B
+0x707E 0x6A47
+0x7121 0x6A35
+0x7122 0x6A5F
+0x7123 0x6A48
+0x7124 0x6B59
+0x7125 0x6B77
+0x7126 0x6C05
+0x7127 0x6FC2
+0x7128 0x6FB1
+0x7129 0x6FA1
+0x712A 0x6FC3
+0x712B 0x6FA4
+0x712C 0x6FC1
+0x712D 0x6FA7
+0x712E 0x6FB3
+0x712F 0x6FC0
+0x7130 0x6FB9
+0x7131 0x6FB6
+0x7132 0x6FA6
+0x7133 0x6FA0
+0x7134 0x6FB4
+0x7135 0x71BE
+0x7136 0x71C9
+0x7137 0x71D0
+0x7138 0x71D2
+0x7139 0x71C8
+0x713A 0x71D5
+0x713B 0x71B9
+0x713C 0x71CE
+0x713D 0x71D9
+0x713E 0x71DC
+0x713F-0x7140 0x71C3
+0x7141 0x7368
+0x7142 0x749C
+0x7143 0x74A3
+0x7144 0x7498
+0x7145 0x749F
+0x7146 0x749E
+0x7147 0x74E2
+0x7148-0x7149 0x750C
+0x714A 0x7634
+0x714B 0x7638
+0x714C 0x763A
+0x714D 0x76E7
+0x714E 0x76E5
+0x714F 0x77A0
+0x7150-0x7151 0x779E
+0x7152 0x77A5
+0x7153 0x78E8
+0x7154 0x78DA
+0x7155 0x78EC
+0x7156 0x78E7
+0x7157 0x79A6
+0x7158-0x7159 0x7A4D
+0x715A 0x7A46
+0x715B 0x7A4C
+0x715C 0x7A4B
+0x715D 0x7ABA
+0x715E 0x7BD9
+0x715F 0x7C11
+0x7160 0x7BC9
+0x7161 0x7BE4
+0x7162 0x7BDB
+0x7163 0x7BE1
+0x7164 0x7BE9
+0x7165 0x7BE6
+0x7166-0x7167 0x7CD5
+0x7168 0x7E0A
+0x7169 0x7E11
+0x716A 0x7E08
+0x716B 0x7E1B
+0x716C 0x7E23
+0x716D 0x7E1E
+0x716E 0x7E1D
+0x716F 0x7E09
+0x7170 0x7E10
+0x7171 0x7F79
+0x7172 0x7FB2
+0x7173-0x7174 0x7FF0
+0x7175 0x7FEE
+0x7176 0x8028
+0x7177 0x81B3
+0x7178 0x81A9
+0x7179 0x81A8
+0x717A 0x81FB
+0x717B 0x8208
+0x717C-0x717D 0x8258
+0x717E 0x854A
+0x7221 0x8559
+0x7222 0x8548
+0x7223-0x7224 0x8568
+0x7225 0x8543
+0x7226 0x8549
+0x7227 0x856D
+0x7228 0x856A
+0x7229 0x855E
+0x722A 0x8783
+0x722B 0x879F
+0x722C 0x879E
+0x722D 0x87A2
+0x722E 0x878D
+0x722F 0x8861
+0x7230 0x892A
+0x7231 0x8932
+0x7232 0x8925
+0x7233 0x892B
+0x7234 0x8921
+0x7235 0x89AA
+0x7236 0x89A6
+0x7237 0x8AE6
+0x7238 0x8AFA
+0x7239 0x8AEB
+0x723A 0x8AF1
+0x723B 0x8B00
+0x723C 0x8ADC
+0x723D 0x8AE7
+0x723E 0x8AEE
+0x723F 0x8AFE
+0x7240-0x7241 0x8B01
+0x7242 0x8AF7
+0x7243 0x8AED
+0x7244 0x8AF3
+0x7245 0x8AF6
+0x7246 0x8AFC
+0x7247 0x8C6B
+0x7248 0x8C6D
+0x7249 0x8C93
+0x724A 0x8CF4
+0x724B 0x8E44
+0x724C 0x8E31
+0x724D 0x8E34
+0x724E 0x8E42
+0x724F 0x8E39
+0x7250 0x8E35
+0x7251 0x8F3B
+0x7252 0x8F2F
+0x7253 0x8F38
+0x7254 0x8F33
+0x7255 0x8FA8
+0x7256 0x8FA6
+0x7257 0x9075
+0x7258 0x9074
+0x7259 0x9078
+0x725A 0x9072
+0x725B 0x907C
+0x725C 0x907A
+0x725D 0x9134
+0x725E 0x9192
+0x725F 0x9320
+0x7260 0x9336
+0x7261 0x92F8
+0x7262 0x9333
+0x7263 0x932F
+0x7264 0x9322
+0x7265 0x92FC
+0x7266 0x932B
+0x7267 0x9304
+0x7268 0x931A
+0x7269 0x9310
+0x726A 0x9326
+0x726B 0x9321
+0x726C 0x9315
+0x726D 0x932E
+0x726E 0x9319
+0x726F 0x95BB
+0x7270-0x7271 0x96A7
+0x7272 0x96AA
+0x7273 0x96D5
+0x7274 0x970E
+0x7275 0x9711
+0x7276 0x9716
+0x7277 0x970D
+0x7278 0x9713
+0x7279 0x970F
+0x727A-0x727B 0x975B
+0x727C 0x9766
+0x727D 0x9798
+0x727E 0x9830
+0x7321 0x9838
+0x7322 0x983B
+0x7323 0x9837
+0x7324 0x982D
+0x7325 0x9839
+0x7326 0x9824
+0x7327 0x9910
+0x7328 0x9928
+0x7329 0x991E
+0x732A 0x991B
+0x732B 0x9921
+0x732C 0x991A
+0x732D 0x99ED
+0x732E 0x99E2
+0x732F 0x99F1
+0x7330 0x9AB8
+0x7331 0x9ABC
+0x7332 0x9AFB
+0x7333 0x9AED
+0x7334 0x9B28
+0x7335 0x9B91
+0x7336 0x9D15
+0x7337 0x9D23
+0x7338 0x9D26
+0x7339 0x9D28
+0x733A 0x9D12
+0x733B 0x9D1B
+0x733C 0x9ED8
+0x733D 0x9ED4
+0x733E 0x9F8D
+0x733F 0x9F9C
+0x7340 0x512A
+0x7341 0x511F
+0x7342 0x5121
+0x7343 0x5132
+0x7344 0x52F5
+0x7345 0x568E
+0x7346 0x5680
+0x7347 0x5690
+0x7348 0x5685
+0x7349 0x5687
+0x734A 0x568F
+0x734B 0x58D5
+0x734C 0x58D3
+0x734D 0x58D1
+0x734E 0x58CE
+0x734F 0x5B30
+0x7350 0x5B2A
+0x7351 0x5B24
+0x7352 0x5B7A
+0x7353 0x5C37
+0x7354 0x5C68
+0x7355 0x5DBC
+0x7356 0x5DBA
+0x7357 0x5DBD
+0x7358 0x5DB8
+0x7359 0x5E6B
+0x735A 0x5F4C
+0x735B 0x5FBD
+0x735C 0x61C9
+0x735D 0x61C2
+0x735E 0x61C7
+0x735F 0x61E6
+0x7360 0x61CB
+0x7361 0x6232
+0x7362 0x6234
+0x7363 0x64CE
+0x7364 0x64CA
+0x7365 0x64D8
+0x7366 0x64E0
+0x7367 0x64F0
+0x7368 0x64E6
+0x7369 0x64EC
+0x736A 0x64F1
+0x736B 0x64E2
+0x736C 0x64ED
+0x736D-0x736E 0x6582
+0x736F 0x66D9
+0x7370 0x66D6
+0x7371 0x6A80
+0x7372 0x6A94
+0x7373 0x6A84
+0x7374 0x6AA2
+0x7375 0x6A9C
+0x7376 0x6ADB
+0x7377 0x6AA3
+0x7378 0x6A7E
+0x7379 0x6A97
+0x737A 0x6A90
+0x737B 0x6AA0
+0x737C 0x6B5C
+0x737D 0x6BAE
+0x737E 0x6BDA
+0x7421 0x6C08
+0x7422 0x6FD8
+0x7423 0x6FF1
+0x7424-0x7425 0x6FDF
+0x7426 0x6FDB
+0x7427 0x6FE4
+0x7428 0x6FEB
+0x7429 0x6FEF
+0x742A 0x6F80
+0x742B 0x6FEC
+0x742C 0x6FE1
+0x742D 0x6FE9
+0x742E 0x6FD5
+0x742F 0x6FEE
+0x7430 0x6FF0
+0x7431 0x71E7
+0x7432 0x71DF
+0x7433 0x71EE
+0x7434 0x71E6
+0x7435 0x71E5
+0x7436 0x71ED
+0x7437 0x71EC
+0x7438 0x71F4
+0x7439 0x71E0
+0x743A 0x7235
+0x743B 0x7246
+0x743C 0x7370
+0x743D 0x7372
+0x743E 0x74A9
+0x743F 0x74B0
+0x7440 0x74A6
+0x7441 0x74A8
+0x7442 0x7646
+0x7443 0x7642
+0x7444 0x764C
+0x7445 0x76EA
+0x7446 0x77B3
+0x7447 0x77AA
+0x7448 0x77B0
+0x7449 0x77AC
+0x744A 0x77A7
+0x744B 0x77AD
+0x744C 0x77EF
+0x744D 0x78F7
+0x744E 0x78FA
+0x744F 0x78F4
+0x7450 0x78EF
+0x7451 0x7901
+0x7452 0x79A7
+0x7453 0x79AA
+0x7454 0x7A57
+0x7455 0x7ABF
+0x7456 0x7C07
+0x7457 0x7C0D
+0x7458 0x7BFE
+0x7459 0x7BF7
+0x745A 0x7C0C
+0x745B 0x7BE0
+0x745C 0x7CE0
+0x745D 0x7CDC
+0x745E 0x7CDE
+0x745F 0x7CE2
+0x7460 0x7CDF
+0x7461 0x7CD9
+0x7462 0x7CDD
+0x7463 0x7E2E
+0x7464 0x7E3E
+0x7465 0x7E46
+0x7466 0x7E37
+0x7467 0x7E32
+0x7468 0x7E43
+0x7469 0x7E2B
+0x746A 0x7E3D
+0x746B 0x7E31
+0x746C 0x7E45
+0x746D 0x7E41
+0x746E 0x7E34
+0x746F 0x7E39
+0x7470 0x7E48
+0x7471 0x7E35
+0x7472 0x7E3F
+0x7473 0x7E2F
+0x7474 0x7F44
+0x7475 0x7FF3
+0x7476 0x7FFC
+0x7477-0x7478 0x8071
+0x7479 0x8070
+0x747A 0x806F
+0x747B 0x8073
+0x747C 0x81C6
+0x747D 0x81C3
+0x747E 0x81BA
+0x7521 0x81C2
+0x7522 0x81C0
+0x7523 0x81BF
+0x7524 0x81BD
+0x7525 0x81C9
+0x7526 0x81BE
+0x7527 0x81E8
+0x7528 0x8209
+0x7529 0x8271
+0x752A 0x85AA
+0x752B 0x8584
+0x752C 0x857E
+0x752D 0x859C
+0x752E 0x8591
+0x752F 0x8594
+0x7530 0x85AF
+0x7531 0x859B
+0x7532 0x8587
+0x7533 0x85A8
+0x7534 0x858A
+0x7535 0x85A6
+0x7536 0x8667
+0x7537 0x87C0
+0x7538 0x87D1
+0x7539 0x87B3
+0x753A 0x87D2
+0x753B 0x87C6
+0x753C 0x87AB
+0x753D 0x87BB
+0x753E 0x87BA
+0x753F 0x87C8
+0x7540 0x87CB
+0x7541 0x893B
+0x7542 0x8936
+0x7543 0x8944
+0x7544 0x8938
+0x7545 0x893D
+0x7546 0x89AC
+0x7547 0x8B0E
+0x7548 0x8B17
+0x7549 0x8B19
+0x754A 0x8B1B
+0x754B 0x8B0A
+0x754C 0x8B20
+0x754D 0x8B1D
+0x754E 0x8B04
+0x754F 0x8B10
+0x7550 0x8C41
+0x7551 0x8C3F
+0x7552 0x8C73
+0x7553 0x8CFA
+0x7554 0x8CFD
+0x7555 0x8CFC
+0x7556 0x8CF8
+0x7557 0x8CFB
+0x7558 0x8DA8
+0x7559 0x8E49
+0x755A 0x8E4B
+0x755B 0x8E48
+0x755C 0x8E4A
+0x755D 0x8F44
+0x755E 0x8F3E
+0x755F 0x8F42
+0x7560 0x8F45
+0x7561 0x8F3F
+0x7562 0x907F
+0x7563 0x907D
+0x7564 0x9084
+0x7565-0x7566 0x9081
+0x7567 0x9080
+0x7568 0x9139
+0x7569 0x91A3
+0x756A 0x919E
+0x756B 0x919C
+0x756C 0x934D
+0x756D 0x9382
+0x756E 0x9328
+0x756F 0x9375
+0x7570 0x934A
+0x7571 0x9365
+0x7572 0x934B
+0x7573 0x9318
+0x7574 0x937E
+0x7575 0x936C
+0x7576 0x935B
+0x7577 0x9370
+0x7578 0x935A
+0x7579 0x9354
+0x757A-0x757C 0x95CA
+0x757D 0x95C8
+0x757E 0x95C6
+0x7621 0x96B1
+0x7622 0x96B8
+0x7623 0x96D6
+0x7624 0x971C
+0x7625 0x971E
+0x7626 0x97A0
+0x7627 0x97D3
+0x7628 0x9846
+0x7629 0x98B6
+0x762A 0x9935
+0x762B 0x9A01
+0x762C 0x99FF
+0x762D 0x9BAE
+0x762E 0x9BAB
+0x762F 0x9BAA
+0x7630 0x9BAD
+0x7631 0x9D3B
+0x7632 0x9D3F
+0x7633 0x9E8B
+0x7634 0x9ECF
+0x7635 0x9EDE
+0x7636-0x7637 0x9EDC
+0x7638 0x9EDB
+0x7639 0x9F3E
+0x763A 0x9F4B
+0x763B 0x53E2
+0x763C 0x5695
+0x763D 0x56AE
+0x763E 0x58D9
+0x763F 0x58D8
+0x7640 0x5B38
+0x7641 0x5F5E
+0x7642 0x61E3
+0x7643 0x6233
+0x7644 0x64F4
+0x7645 0x64F2
+0x7646 0x64FE
+0x7647 0x6506
+0x7648-0x7649 0x64FA
+0x764A 0x64F7
+0x764B 0x65B7
+0x764C 0x66DC
+0x764D 0x6726
+0x764E 0x6AB3
+0x764F 0x6AAC
+0x7650 0x6AC3
+0x7651 0x6ABB
+0x7652 0x6AB8
+0x7653 0x6AC2
+0x7654-0x7655 0x6AAE
+0x7656 0x6B5F
+0x7657 0x6B78
+0x7658 0x6BAF
+0x7659 0x7009
+0x765A 0x700B
+0x765B 0x6FFE
+0x765C 0x7006
+0x765D 0x6FFA
+0x765E 0x7011
+0x765F 0x700F
+0x7660-0x7661 0x71FB
+0x7662 0x71FE
+0x7663 0x71F8
+0x7664 0x7377
+0x7665 0x7375
+0x7666 0x74A7
+0x7667 0x74BF
+0x7668 0x7515
+0x7669 0x7656
+0x766A 0x7658
+0x766B 0x7652
+0x766C 0x77BD
+0x766D 0x77BF
+0x766E-0x766F 0x77BB
+0x7670 0x790E
+0x7671 0x79AE
+0x7672-0x7673 0x7A61
+0x7674 0x7A60
+0x7675-0x7676 0x7AC4
+0x7677 0x7C2B
+0x7678 0x7C27
+0x7679 0x7C2A
+0x767A 0x7C1E
+0x767B 0x7C23
+0x767C 0x7C21
+0x767D 0x7CE7
+0x767E 0x7E54
+0x7721 0x7E55
+0x7722 0x7E5E
+0x7723 0x7E5A
+0x7724 0x7E61
+0x7725 0x7E52
+0x7726 0x7E59
+0x7727 0x7F48
+0x7728 0x7FF9
+0x7729 0x7FFB
+0x772A 0x8077
+0x772B 0x8076
+0x772C 0x81CD
+0x772D 0x81CF
+0x772E 0x820A
+0x772F 0x85CF
+0x7730 0x85A9
+0x7731 0x85CD
+0x7732 0x85D0
+0x7733 0x85C9
+0x7734 0x85B0
+0x7735 0x85BA
+0x7736 0x85B9
+0x7737 0x87EF
+0x7738 0x87EC
+0x7739 0x87F2
+0x773A 0x87E0
+0x773B 0x8986
+0x773C 0x89B2
+0x773D 0x89F4
+0x773E 0x8B28
+0x773F 0x8B39
+0x7740 0x8B2C
+0x7741 0x8B2B
+0x7742 0x8C50
+0x7743 0x8D05
+0x7744 0x8E59
+0x7745 0x8E63
+0x7746 0x8E66
+0x7747 0x8E64
+0x7748 0x8E5F
+0x7749 0x8E55
+0x774A 0x8EC0
+0x774B 0x8F49
+0x774C 0x8F4D
+0x774D 0x9087
+0x774E 0x9083
+0x774F 0x9088
+0x7750-0x7751 0x91AB
+0x7752 0x91D0
+0x7753 0x9394
+0x7754 0x938A
+0x7755 0x9396
+0x7756 0x93A2
+0x7757 0x93B3
+0x7758 0x93AE
+0x7759 0x93AC
+0x775A 0x93B0
+0x775B 0x9398
+0x775C 0x939A
+0x775D 0x9397
+0x775E 0x95D4
+0x775F 0x95D6
+0x7760 0x95D0
+0x7761 0x95D5
+0x7762 0x96E2
+0x7763 0x96DC
+0x7764 0x96D9
+0x7765 0x96DB
+0x7766 0x96DE
+0x7767 0x9724
+0x7768 0x97A3
+0x7769 0x97A6
+0x776A 0x97AD
+0x776B 0x97F9
+0x776C 0x984D
+0x776D 0x984F
+0x776E 0x984C
+0x776F 0x984E
+0x7770 0x9853
+0x7771 0x98BA
+0x7772-0x7773 0x993E
+0x7774 0x993D
+0x7775 0x992E
+0x7776 0x99A5
+0x7777 0x9A0E
+0x7778 0x9AC1
+0x7779 0x9B03
+0x777A 0x9B06
+0x777B 0x9B4F
+0x777C 0x9B4E
+0x777D 0x9B4D
+0x777E 0x9BCA
+0x7821 0x9BC9
+0x7822 0x9BFD
+0x7823 0x9BC8
+0x7824 0x9BC0
+0x7825 0x9D51
+0x7826 0x9D5D
+0x7827 0x9D60
+0x7828 0x9EE0
+0x7829 0x9F15
+0x782A 0x9F2C
+0x782B 0x5133
+0x782C 0x56A5
+0x782D 0x56A8
+0x782E-0x782F 0x58DE
+0x7830 0x58E2
+0x7831 0x5BF5
+0x7832 0x9F90
+0x7833 0x5EEC
+0x7834 0x61F2
+0x7835 0x61F7
+0x7836 0x61F6
+0x7837 0x61F5
+0x7838 0x6500
+0x7839 0x650F
+0x783A 0x66E0
+0x783B 0x66DD
+0x783C 0x6AE5
+0x783D 0x6ADD
+0x783E 0x6ADA
+0x783F 0x6AD3
+0x7840 0x701B
+0x7841 0x701F
+0x7842 0x7028
+0x7843 0x701A
+0x7844 0x701D
+0x7845 0x7015
+0x7846 0x7018
+0x7847 0x7206
+0x7848 0x720D
+0x7849 0x7258
+0x784A 0x72A2
+0x784B 0x7378
+0x784C 0x737A
+0x784D 0x74BD
+0x784E 0x74CA
+0x784F 0x74E3
+0x7850 0x7587
+0x7851 0x7586
+0x7852 0x765F
+0x7853 0x7661
+0x7854 0x77C7
+0x7855 0x7919
+0x7856 0x79B1
+0x7857 0x7A6B
+0x7858 0x7A69
+0x7859-0x785A 0x7C3E
+0x785B 0x7C38
+0x785C 0x7C3D
+0x785D 0x7C37
+0x785E 0x7C40
+0x785F 0x7E6B
+0x7860 0x7E6D
+0x7861 0x7E79
+0x7862-0x7863 0x7E69
+0x7864 0x7E73
+0x7865 0x7F85
+0x7866 0x7FB6
+0x7867 0x7FB9
+0x7868 0x7FB8
+0x7869 0x81D8
+0x786A 0x85E9
+0x786B 0x85DD
+0x786C 0x85EA
+0x786D 0x85D5
+0x786E-0x786F 0x85E4
+0x7870 0x85F7
+0x7871 0x87FB
+0x7872 0x8805
+0x7873 0x880D
+0x7874 0x87F9
+0x7875 0x87FE
+0x7876 0x8960
+0x7877 0x895F
+0x7878 0x8956
+0x7879 0x895E
+0x787A 0x8B41
+0x787B 0x8B5C
+0x787C 0x8B58
+0x787D 0x8B49
+0x787E 0x8B5A
+0x7921-0x7922 0x8B4E
+0x7923 0x8B46
+0x7924 0x8B59
+0x7925 0x8D08
+0x7926 0x8D0A
+0x7927 0x8E7C
+0x7928 0x8E72
+0x7929 0x8E87
+0x792A 0x8E76
+0x792B 0x8E6C
+0x792C 0x8E7A
+0x792D 0x8E74
+0x792E 0x8F54
+0x792F 0x8F4E
+0x7930 0x8FAD
+0x7931-0x7932 0x908A
+0x7933 0x91B1
+0x7934 0x91AE
+0x7935 0x93E1
+0x7936 0x93D1
+0x7937 0x93DF
+0x7938 0x93C3
+0x7939 0x93C8
+0x793A-0x793B 0x93DC
+0x793C 0x93D6
+0x793D 0x93E2
+0x793E 0x93CD
+0x793F 0x93D8
+0x7940 0x93E4
+0x7941 0x93D7
+0x7942 0x93E8
+0x7943 0x95DC
+0x7944 0x96B4
+0x7945 0x96E3
+0x7946 0x972A
+0x7947 0x9727
+0x7948 0x9761
+0x7949 0x97DC
+0x794A 0x97FB
+0x794B 0x985E
+0x794C 0x9858
+0x794D 0x985B
+0x794E 0x98BC
+0x794F 0x9945
+0x7950 0x9949
+0x7951 0x9A16
+0x7952 0x9A19
+0x7953 0x9B0D
+0x7954 0x9BE8
+0x7955 0x9BE7
+0x7956 0x9BD6
+0x7957 0x9BDB
+0x7958 0x9D89
+0x7959 0x9D61
+0x795A 0x9D72
+0x795B 0x9D6A
+0x795C 0x9D6C
+0x795D 0x9E92
+0x795E 0x9E97
+0x795F 0x9E93
+0x7960 0x9EB4
+0x7961 0x52F8
+0x7962 0x56B7
+0x7963 0x56B6
+0x7964 0x56B4
+0x7965 0x56BC
+0x7966 0x58E4
+0x7967 0x5B40
+0x7968 0x5B43
+0x7969 0x5B7D
+0x796A 0x5BF6
+0x796B 0x5DC9
+0x796C 0x61F8
+0x796D 0x61FA
+0x796E 0x6518
+0x796F 0x6514
+0x7970 0x6519
+0x7971 0x66E6
+0x7972 0x6727
+0x7973 0x6AEC
+0x7974 0x703E
+0x7975 0x7030
+0x7976 0x7032
+0x7977 0x7210
+0x7978 0x737B
+0x7979 0x74CF
+0x797A 0x7662
+0x797B 0x7665
+0x797C 0x7926
+0x797D 0x792A
+0x797E 0x792C
+0x7A21 0x792B
+0x7A22 0x7AC7
+0x7A23 0x7AF6
+0x7A24 0x7C4C
+0x7A25 0x7C43
+0x7A26 0x7C4D
+0x7A27-0x7A28 0x7CEF
+0x7A29 0x8FAE
+0x7A2A 0x7E7D
+0x7A2B 0x7E7C
+0x7A2C 0x7E82
+0x7A2D 0x7F4C
+0x7A2E 0x8000
+0x7A2F 0x81DA
+0x7A30 0x8266
+0x7A31 0x85FB
+0x7A32 0x85F9
+0x7A33 0x8611
+0x7A34 0x85FA
+0x7A35 0x8606
+0x7A36 0x860B
+0x7A37 0x8607
+0x7A38 0x860A
+0x7A39-0x7A3A 0x8814
+0x7A3B 0x8964
+0x7A3C 0x89BA
+0x7A3D 0x89F8
+0x7A3E 0x8B70
+0x7A3F 0x8B6C
+0x7A40 0x8B66
+0x7A41 0x8B6F
+0x7A42 0x8B5F
+0x7A43 0x8B6B
+0x7A44 0x8D0F
+0x7A45 0x8D0D
+0x7A46 0x8E89
+0x7A47 0x8E81
+0x7A48 0x8E85
+0x7A49 0x8E82
+0x7A4A 0x91B4
+0x7A4B 0x91CB
+0x7A4C 0x9418
+0x7A4D 0x9403
+0x7A4E 0x93FD
+0x7A4F 0x95E1
+0x7A50 0x9730
+0x7A51 0x98C4
+0x7A52 0x9952
+0x7A53 0x9951
+0x7A54 0x99A8
+0x7A55 0x9A2B
+0x7A56 0x9A30
+0x7A57 0x9A37
+0x7A58 0x9A35
+0x7A59 0x9C13
+0x7A5A 0x9C0D
+0x7A5B 0x9E79
+0x7A5C 0x9EB5
+0x7A5D 0x9EE8
+0x7A5E 0x9F2F
+0x7A5F 0x9F5F
+0x7A60 0x9F63
+0x7A61 0x9F61
+0x7A62-0x7A63 0x5137
+0x7A64 0x56C1
+0x7A65 0x56C0
+0x7A66 0x56C2
+0x7A67 0x5914
+0x7A68 0x5C6C
+0x7A69 0x5DCD
+0x7A6A 0x61FC
+0x7A6B 0x61FE
+0x7A6C 0x651D
+0x7A6D 0x651C
+0x7A6E 0x6595
+0x7A6F 0x66E9
+0x7A70 0x6AFB
+0x7A71 0x6B04
+0x7A72 0x6AFA
+0x7A73 0x6BB2
+0x7A74 0x704C
+0x7A75 0x721B
+0x7A76 0x72A7
+0x7A77 0x74D6
+0x7A78 0x74D4
+0x7A79 0x7669
+0x7A7A 0x77D3
+0x7A7B 0x7C50
+0x7A7C 0x7E8F
+0x7A7D 0x7E8C
+0x7A7E 0x7FBC
+0x7B21 0x8617
+0x7B22 0x862D
+0x7B23 0x861A
+0x7B24 0x8823
+0x7B25 0x8822
+0x7B26 0x8821
+0x7B27 0x881F
+0x7B28 0x896A
+0x7B29 0x896C
+0x7B2A 0x89BD
+0x7B2B 0x8B74
+0x7B2C 0x8B77
+0x7B2D 0x8B7D
+0x7B2E 0x8D13
+0x7B2F 0x8E8A
+0x7B30 0x8E8D
+0x7B31 0x8E8B
+0x7B32 0x8F5F
+0x7B33 0x8FAF
+0x7B34 0x91BA
+0x7B35 0x942E
+0x7B36 0x9433
+0x7B37 0x9435
+0x7B38 0x943A
+0x7B39 0x9438
+0x7B3A 0x9432
+0x7B3B 0x942B
+0x7B3C 0x95E2
+0x7B3D-0x7B3E 0x9738
+0x7B3F 0x9732
+0x7B40 0x97FF
+0x7B41 0x9867
+0x7B42 0x9865
+0x7B43 0x9957
+0x7B44 0x9A45
+0x7B45 0x9A43
+0x7B46 0x9A40
+0x7B47 0x9A3E
+0x7B48 0x9ACF
+0x7B49 0x9B54
+0x7B4A 0x9B51
+0x7B4B 0x9C2D
+0x7B4C 0x9C25
+0x7B4D 0x9DAF
+0x7B4E 0x9DB4
+0x7B4F 0x9DC2
+0x7B50 0x9DB8
+0x7B51 0x9E9D
+0x7B52 0x9EEF
+0x7B53 0x9F19
+0x7B54 0x9F5C
+0x7B55-0x7B56 0x9F66
+0x7B57 0x513C
+0x7B58 0x513B
+0x7B59 0x56C8
+0x7B5A 0x56CA
+0x7B5B 0x56C9
+0x7B5C 0x5B7F
+0x7B5D 0x5DD4
+0x7B5E 0x5DD2
+0x7B5F 0x5F4E
+0x7B60 0x61FF
+0x7B61 0x6524
+0x7B62 0x6B0A
+0x7B63 0x6B61
+0x7B64 0x7051
+0x7B65 0x7058
+0x7B66 0x7380
+0x7B67 0x74E4
+0x7B68 0x758A
+0x7B69 0x766E
+0x7B6A 0x766C
+0x7B6B 0x79B3
+0x7B6C 0x7C60
+0x7B6D 0x7C5F
+0x7B6E 0x807E
+0x7B6F 0x807D
+0x7B70 0x81DF
+0x7B71 0x8972
+0x7B72 0x896F
+0x7B73 0x89FC
+0x7B74 0x8B80
+0x7B75-0x7B76 0x8D16
+0x7B77 0x8E91
+0x7B78 0x8E93
+0x7B79 0x8F61
+0x7B7A 0x9148
+0x7B7B 0x9444
+0x7B7C-0x7B7D 0x9451
+0x7B7E 0x973D
+0x7C21 0x973E
+0x7C22 0x97C3
+0x7C23 0x97C1
+0x7C24 0x986B
+0x7C25 0x9955
+0x7C26 0x9A55
+0x7C27 0x9A4D
+0x7C28 0x9AD2
+0x7C29 0x9B1A
+0x7C2A 0x9C49
+0x7C2B 0x9C31
+0x7C2C 0x9C3E
+0x7C2D 0x9C3B
+0x7C2E 0x9DD3
+0x7C2F 0x9DD7
+0x7C30 0x9F34
+0x7C31 0x9F6C
+0x7C32 0x9F6A
+0x7C33 0x9F94
+0x7C34 0x56CC
+0x7C35 0x5DD6
+0x7C36 0x6200
+0x7C37 0x6523
+0x7C38 0x652B
+0x7C39 0x652A
+0x7C3A 0x66EC
+0x7C3B 0x6B10
+0x7C3C 0x74DA
+0x7C3D 0x7ACA
+0x7C3E 0x7C64
+0x7C3F 0x7C63
+0x7C40 0x7C65
+0x7C41 0x7E93
+0x7C42 0x7E96
+0x7C43 0x7E94
+0x7C44 0x81E2
+0x7C45 0x8638
+0x7C46 0x863F
+0x7C47 0x8831
+0x7C48 0x8B8A
+0x7C49 0x9090
+0x7C4A 0x908F
+0x7C4B 0x9463
+0x7C4C 0x9460
+0x7C4D 0x9464
+0x7C4E 0x9768
+0x7C4F 0x986F
+0x7C50 0x995C
+0x7C51-0x7C52 0x9A5A
+0x7C53 0x9A57
+0x7C54-0x7C55 0x9AD3
+0x7C56 0x9AD1
+0x7C57 0x9C54
+0x7C58 0x9C57
+0x7C59 0x9C56
+0x7C5A 0x9DE5
+0x7C5B 0x9E9F
+0x7C5C 0x9EF4
+0x7C5D 0x56D1
+0x7C5E 0x58E9
+0x7C5F 0x652C
+0x7C60 0x705E
+0x7C61-0x7C62 0x7671
+0x7C63 0x77D7
+0x7C64 0x7F50
+0x7C65 0x7F88
+0x7C66 0x8836
+0x7C67 0x8839
+0x7C68 0x8862
+0x7C69 0x8B93
+0x7C6A 0x8B92
+0x7C6B 0x8B96
+0x7C6C 0x8277
+0x7C6D 0x8D1B
+0x7C6E 0x91C0
+0x7C6F 0x946A
+0x7C70 0x9742
+0x7C71 0x9748
+0x7C72 0x9744
+0x7C73 0x97C6
+0x7C74 0x9870
+0x7C75 0x9A5F
+0x7C76 0x9B22
+0x7C77 0x9B58
+0x7C78 0x9C5F
+0x7C79-0x7C7A 0x9DF9
+0x7C7B-0x7C7C 0x9E7C
+0x7C7D 0x9F07
+0x7C7E 0x9F77
+0x7D21 0x9F72
+0x7D22 0x5EF3
+0x7D23 0x6B16
+0x7D24 0x7063
+0x7D25 0x7C6C
+0x7D26 0x7C6E
+0x7D27 0x883B
+0x7D28 0x89C0
+0x7D29 0x8EA1
+0x7D2A 0x91C1
+0x7D2B 0x9472
+0x7D2C 0x9470
+0x7D2D 0x9871
+0x7D2E 0x995E
+0x7D2F 0x9AD6
+0x7D30 0x9B23
+0x7D31 0x9ECC
+0x7D32 0x7064
+0x7D33 0x77DA
+0x7D34 0x8B9A
+0x7D35 0x9477
+0x7D36 0x97C9
+0x7D37 0x9A62
+0x7D38 0x9A65
+0x7D39 0x7E9C
+0x7D3A 0x8B9C
+0x7D3B 0x8EAA
+0x7D3C 0x91C5
+0x7D3D-0x7D3E 0x947D
+0x7D3F 0x947C
+0x7D40-0x7D41 0x9C77
+0x7D42 0x9EF7
+0x7D43 0x8C54
+0x7D44 0x947F
+0x7D45 0x9E1A
+0x7D46 0x7228
+0x7D47 0x9A6A
+0x7D48 0x9B31
+0x7D49 0x9E1B
+0x7D4A 0x9E1E
+0x7D4B 0x7C72
diff --git a/etc/charsets/CNS-2.map b/etc/charsets/CNS-2.map
new file mode 100644 (file)
index 0000000..d1c95f6
--- /dev/null
@@ -0,0 +1,7322 @@
+# Generated from data at http://sourceforge.net/cvs/?group_id=26261
+0x2121 0x4E42
+0x2122 0x4E5C
+0x2123 0x51F5
+0x2124 0x531A
+0x2125 0x5382
+0x2126 0x4E07
+0x2127 0x4E0C
+0x2128 0x4E47
+0x2129 0x4E8D
+0x212A 0x56D7
+0x212B 0x5C6E
+0x212C 0x5F73
+0x212D 0x4E0F
+0x212E 0x5187
+0x212F 0x4E0E
+0x2130 0x4E2E
+0x2131 0x4E93
+0x2132 0x4EC2
+0x2133 0x4EC9
+0x2134 0x4EC8
+0x2135 0x5198
+0x2136 0x52FC
+0x2137 0x536C
+0x2138 0x53B9
+0x2139 0x5720
+0x213A 0x5903
+0x213B 0x592C
+0x213C 0x5C10
+0x213D 0x5DFF
+0x213E 0x65E1
+0x213F 0x6BB3
+0x2140 0x6BCC
+0x2141 0x6C14
+0x2142 0x723F
+0x2143 0x4E31
+0x2144 0x4E3C
+0x2145 0x4EE8
+0x2146 0x4EDC
+0x2147 0x4EE9
+0x2148 0x4EE1
+0x2149 0x4EDD
+0x214A 0x4EDA
+0x214B 0x520C
+0x214C 0x5209
+0x214D 0x531C
+0x214E 0x534C
+0x214F-0x2150 0x5722
+0x2151 0x5917
+0x2152 0x592F
+0x2153 0x5B81
+0x2154 0x5B84
+0x2155 0x5C12
+0x2156 0x5C3B
+0x2157 0x5C74
+0x2158 0x5C73
+0x2159 0x5E04
+0x215A 0x5E80
+0x215B 0x5E82
+0x215C 0x5FC9
+0x215D 0x6209
+0x215E 0x6250
+0x215F 0x6C15
+0x2160 0x6C36
+0x2161 0x6C43
+0x2162 0x6C3F
+0x2163 0x6C3B
+0x2164 0x72AE
+0x2165 0x72B0
+0x2166 0x738A
+0x2167 0x79B8
+0x2168 0x808A
+0x2169 0x961E
+0x216A 0x4F0E
+0x216B 0x4F18
+0x216C 0x4F2C
+0x216D 0x4EF5
+0x216E 0x4F14
+0x216F 0x4EF1
+0x2170 0x4F00
+0x2171 0x4EF7
+0x2172 0x4F08
+0x2173 0x4F1D
+0x2174 0x4F02
+0x2175 0x4F05
+0x2176 0x4F22
+0x2177 0x4F13
+0x2178 0x4F04
+0x2179 0x4EF4
+0x217A 0x4F12
+0x217B 0x51B1
+0x217C 0x5213
+0x217D 0x5210
+0x217E 0x52A6
+0x2221 0x5322
+0x2222 0x531F
+0x2223 0x534D
+0x2224 0x538A
+0x2225 0x5407
+0x2226 0x56E1
+0x2227 0x56DF
+0x2228 0x572E
+0x2229 0x572A
+0x222A 0x5734
+0x222B 0x593C
+0x222C 0x5980
+0x222D 0x597C
+0x222E 0x5985
+0x222F 0x597B
+0x2230 0x597E
+0x2231 0x5977
+0x2232 0x597F
+0x2233 0x5B56
+0x2234 0x5C15
+0x2235 0x5C25
+0x2236 0x5C7C
+0x2237-0x2238 0x5C7A
+0x2239 0x5C7E
+0x223A 0x5DDF
+0x223B 0x5E75
+0x223C 0x5E84
+0x223D 0x5F02
+0x223E 0x5F1A
+0x223F 0x5F74
+0x2240 0x5FD5
+0x2241 0x5FD4
+0x2242 0x5FCF
+0x2243 0x625C
+0x2244 0x625E
+0x2245 0x6264
+0x2246 0x6261
+0x2247 0x6266
+0x2248 0x6262
+0x2249 0x6259
+0x224A 0x6260
+0x224B 0x625A
+0x224C 0x6265
+0x224D 0x6537
+0x224E 0x65EF
+0x224F 0x65EE
+0x2250 0x673E
+0x2251 0x6739
+0x2252 0x6738
+0x2253 0x673B
+0x2254 0x673A
+0x2255 0x673F
+0x2256 0x673C
+0x2257 0x6733
+0x2258 0x6C18
+0x2259 0x6C46
+0x225A 0x6C52
+0x225B 0x6C5C
+0x225C 0x6C4F
+0x225D 0x6C4A
+0x225E 0x6C54
+0x225F-0x2260 0x6C4B
+0x2261 0x7071
+0x2262 0x725E
+0x2263-0x2264 0x72B4
+0x2265 0x738E
+0x2266 0x752A
+0x2267 0x767F
+0x2268 0x7A75
+0x2269 0x7F51
+0x226A 0x8278
+0x226B 0x827C
+0x226C 0x8280
+0x226D 0x827D
+0x226E 0x827F
+0x226F 0x864D
+0x2270 0x897E
+0x2271 0x9099
+0x2272-0x2273 0x9097
+0x2274 0x909B
+0x2275 0x9094
+0x2276 0x9622
+0x2277 0x9624
+0x2278 0x9620
+0x2279 0x9623
+0x227A 0x4F56
+0x227B 0x4F3B
+0x227C 0x4F62
+0x227D 0x4F49
+0x227E 0x4F53
+0x2321 0x4F64
+0x2322 0x4F3E
+0x2323 0x4F67
+0x2324 0x4F52
+0x2325 0x4F5F
+0x2326 0x4F41
+0x2327 0x4F58
+0x2328 0x4F2D
+0x2329 0x4F33
+0x232A 0x4F3F
+0x232B 0x4F61
+0x232C 0x518F
+0x232D 0x51B9
+0x232E 0x521C
+0x232F 0x521E
+0x2330 0x5221
+0x2331-0x2332 0x52AD
+0x2333 0x5309
+0x2334 0x5363
+0x2335 0x5372
+0x2336-0x2337 0x538E
+0x2338 0x5430
+0x2339 0x5437
+0x233A 0x542A
+0x233B 0x5454
+0x233C 0x5445
+0x233D 0x5419
+0x233E 0x541C
+0x233F 0x5425
+0x2340 0x5418
+0x2341 0x543D
+0x2342 0x544F
+0x2343 0x5441
+0x2344 0x5428
+0x2345 0x5424
+0x2346 0x5447
+0x2347 0x56EE
+0x2348 0x56E7
+0x2349 0x56E5
+0x234A 0x5741
+0x234B 0x5745
+0x234C 0x574C
+0x234D 0x5749
+0x234E 0x574B
+0x234F 0x5752
+0x2350 0x5906
+0x2351 0x5940
+0x2352 0x59A6
+0x2353 0x5998
+0x2354 0x59A0
+0x2355 0x5997
+0x2356 0x598E
+0x2357 0x59A2
+0x2358 0x5990
+0x2359 0x598F
+0x235A 0x59A7
+0x235B 0x59A1
+0x235C 0x5B8E
+0x235D 0x5B92
+0x235E 0x5C28
+0x235F 0x5C2A
+0x2360 0x5C8D
+0x2361 0x5C8F
+0x2362 0x5C88
+0x2363 0x5C8B
+0x2364 0x5C89
+0x2365 0x5C92
+0x2366 0x5C8A
+0x2367 0x5C86
+0x2368 0x5C93
+0x2369 0x5C95
+0x236A 0x5DE0
+0x236B 0x5E0A
+0x236C 0x5E0E
+0x236D 0x5E8B
+0x236E 0x5E89
+0x236F 0x5E8C
+0x2370 0x5E88
+0x2371 0x5E8D
+0x2372 0x5F05
+0x2373 0x5F1D
+0x2374 0x5F78
+0x2375 0x5F76
+0x2376 0x5FD2
+0x2377 0x5FD1
+0x2378 0x5FD0
+0x2379 0x5FED
+0x237A 0x5FE8
+0x237B 0x5FEE
+0x237C 0x5FF3
+0x237D 0x5FE1
+0x237E 0x5FE4
+0x2421 0x5FE3
+0x2422 0x5FFA
+0x2423 0x5FEF
+0x2424 0x5FF7
+0x2425 0x5FFB
+0x2426 0x6000
+0x2427 0x5FF4
+0x2428 0x623A
+0x2429 0x6283
+0x242A 0x628C
+0x242B-0x242C 0x628E
+0x242D 0x6294
+0x242E 0x6287
+0x242F 0x6271
+0x2430 0x627B
+0x2431 0x627A
+0x2432 0x6270
+0x2433 0x6281
+0x2434 0x6288
+0x2435 0x6277
+0x2436 0x627D
+0x2437 0x6272
+0x2438 0x6274
+0x2439 0x65F0
+0x243A 0x65F4
+0x243B 0x65F3
+0x243C 0x65F2
+0x243D 0x65F5
+0x243E 0x6745
+0x243F 0x6747
+0x2440 0x6759
+0x2441 0x6755
+0x2442 0x674C
+0x2443 0x6748
+0x2444 0x675D
+0x2445 0x674D
+0x2446 0x675A
+0x2447 0x674B
+0x2448 0x6BD0
+0x2449-0x244A 0x6C19
+0x244B 0x6C78
+0x244C 0x6C67
+0x244D 0x6C6B
+0x244E 0x6C84
+0x244F 0x6C8B
+0x2450 0x6C8F
+0x2451 0x6C71
+0x2452 0x6C6F
+0x2453 0x6C69
+0x2454 0x6C9A
+0x2455 0x6C6D
+0x2456 0x6C87
+0x2457 0x6C95
+0x2458 0x6C9C
+0x2459 0x6C66
+0x245A 0x6C73
+0x245B 0x6C65
+0x245C 0x6C7B
+0x245D 0x6C8E
+0x245E 0x7074
+0x245F 0x707A
+0x2460 0x7263
+0x2461 0x72BF
+0x2462 0x72BD
+0x2463 0x72C3
+0x2464 0x72C6
+0x2465 0x72C1
+0x2466 0x72BA
+0x2467 0x72C5
+0x2468 0x7395
+0x2469 0x7397
+0x246A-0x246B 0x7393
+0x246C 0x7392
+0x246D 0x753A
+0x246E 0x7539
+0x246F-0x2470 0x7594
+0x2471 0x7681
+0x2472 0x793D
+0x2473 0x8034
+0x2474 0x8095
+0x2475 0x8099
+0x2476 0x8090
+0x2477 0x8092
+0x2478 0x809C
+0x2479 0x8290
+0x247A 0x828F
+0x247B 0x8285
+0x247C 0x828E
+0x247D 0x8291
+0x247E 0x8293
+0x2521 0x828A
+0x2522-0x2523 0x8283
+0x2524 0x8C78
+0x2525 0x8FC9
+0x2526 0x8FBF
+0x2527 0x909F
+0x2528 0x90A1
+0x2529 0x90A5
+0x252A 0x909E
+0x252B 0x90A7
+0x252C 0x90A0
+0x252D 0x9630
+0x252E 0x9628
+0x252F 0x962F
+0x2530 0x962D
+0x2531 0x4E33
+0x2532 0x4F98
+0x2533 0x4F7C
+0x2534 0x4F85
+0x2535 0x4F7D
+0x2536 0x4F80
+0x2537 0x4F87
+0x2538 0x4F76
+0x2539 0x4F74
+0x253A 0x4F89
+0x253B 0x4F84
+0x253C 0x4F77
+0x253D 0x4F4C
+0x253E 0x4F97
+0x253F 0x4F6A
+0x2540 0x4F9A
+0x2541 0x4F79
+0x2542 0x4F81
+0x2543 0x4F78
+0x2544 0x4F90
+0x2545 0x4F9C
+0x2546 0x4F94
+0x2547 0x4F9E
+0x2548 0x4F92
+0x2549 0x4F82
+0x254A 0x4F95
+0x254B 0x4F6B
+0x254C 0x4F6E
+0x254D 0x519E
+0x254E 0x51BC
+0x254F 0x51BE
+0x2550 0x5235
+0x2551-0x2552 0x5232
+0x2553 0x5246
+0x2554 0x5231
+0x2555 0x52BC
+0x2556-0x2557 0x530A
+0x2558 0x533C
+0x2559 0x5392
+0x255A 0x5394
+0x255B 0x5487
+0x255C 0x547F
+0x255D 0x5481
+0x255E 0x5491
+0x255F 0x5482
+0x2560 0x5488
+0x2561 0x546B
+0x2562 0x547A
+0x2563 0x547E
+0x2564 0x5465
+0x2565 0x546C
+0x2566 0x5474
+0x2567 0x5466
+0x2568 0x548D
+0x2569 0x546F
+0x256A 0x5461
+0x256B 0x5460
+0x256C 0x5498
+0x256D 0x5463
+0x256E 0x5467
+0x256F 0x5464
+0x2570 0x56F7
+0x2571 0x56F9
+0x2572 0x576F
+0x2573 0x5772
+0x2574 0x576D
+0x2575 0x576B
+0x2576 0x5771
+0x2577 0x5770
+0x2578 0x5776
+0x2579 0x5780
+0x257A 0x5775
+0x257B 0x577B
+0x257C-0x257D 0x5773
+0x257E 0x5762
+0x2621 0x5768
+0x2622 0x577D
+0x2623 0x590C
+0x2624 0x5945
+0x2625 0x59B5
+0x2626 0x59BA
+0x2627 0x59CF
+0x2628 0x59CE
+0x2629 0x59B2
+0x262A 0x59CC
+0x262B 0x59C1
+0x262C 0x59B6
+0x262D 0x59BC
+0x262E 0x59C3
+0x262F 0x59D6
+0x2630 0x59B1
+0x2631 0x59BD
+0x2632 0x59C0
+0x2633 0x59C8
+0x2634 0x59B4
+0x2635 0x59C7
+0x2636 0x5B62
+0x2637 0x5B65
+0x2638 0x5B93
+0x2639 0x5B95
+0x263A 0x5C44
+0x263B 0x5C47
+0x263C 0x5CAE
+0x263D 0x5CA4
+0x263E 0x5CA0
+0x263F 0x5CB5
+0x2640 0x5CAF
+0x2641 0x5CA8
+0x2642 0x5CAC
+0x2643 0x5C9F
+0x2644 0x5CA3
+0x2645 0x5CAD
+0x2646 0x5CA2
+0x2647 0x5CAA
+0x2648 0x5CA7
+0x2649 0x5C9D
+0x264A 0x5CA5
+0x264B 0x5CB6
+0x264C 0x5CB0
+0x264D 0x5CA6
+0x264E 0x5E17
+0x264F 0x5E14
+0x2650 0x5E19
+0x2651 0x5F28
+0x2652-0x2654 0x5F22
+0x2655 0x5F54
+0x2656 0x5F82
+0x2657 0x5F7E
+0x2658 0x5F7D
+0x2659 0x5FDE
+0x265A 0x5FE5
+0x265B 0x602D
+0x265C 0x6026
+0x265D 0x6019
+0x265E 0x6032
+0x265F 0x600B
+0x2660 0x6034
+0x2661 0x600A
+0x2662 0x6017
+0x2663 0x6033
+0x2664 0x601A
+0x2665 0x601E
+0x2666 0x602C
+0x2667 0x6022
+0x2668 0x600D
+0x2669 0x6010
+0x266A 0x602E
+0x266B 0x6013
+0x266C 0x6011
+0x266D 0x600C
+0x266E 0x6009
+0x266F 0x601C
+0x2670 0x6214
+0x2671 0x623D
+0x2672 0x62AD
+0x2673 0x62B4
+0x2674 0x62D1
+0x2675 0x62BE
+0x2676 0x62AA
+0x2677 0x62B6
+0x2678 0x62CA
+0x2679 0x62AE
+0x267A 0x62B3
+0x267B 0x62AF
+0x267C 0x62BB
+0x267D 0x62A9
+0x267E 0x62B0
+0x2721 0x62B8
+0x2722 0x653D
+0x2723 0x65A8
+0x2724 0x65BB
+0x2725 0x6609
+0x2726 0x65FC
+0x2727 0x6604
+0x2728 0x6612
+0x2729 0x6608
+0x272A 0x65FB
+0x272B 0x6603
+0x272C 0x660B
+0x272D 0x660D
+0x272E 0x6605
+0x272F 0x65FD
+0x2730 0x6611
+0x2731 0x6610
+0x2732 0x66F6
+0x2733 0x670A
+0x2734 0x6785
+0x2735 0x676C
+0x2736 0x678E
+0x2737 0x6792
+0x2738 0x6776
+0x2739 0x677B
+0x273A 0x6798
+0x273B 0x6786
+0x273C 0x6784
+0x273D 0x6774
+0x273E 0x678D
+0x273F 0x678C
+0x2740 0x677A
+0x2741 0x679F
+0x2742 0x6791
+0x2743 0x6799
+0x2744 0x6783
+0x2745 0x677D
+0x2746 0x6781
+0x2747-0x2748 0x6778
+0x2749 0x6794
+0x274A 0x6B25
+0x274B 0x6B80
+0x274C 0x6B7E
+0x274D 0x6BDE
+0x274E 0x6C1D
+0x274F 0x6C93
+0x2750 0x6CEC
+0x2751 0x6CEB
+0x2752 0x6CEE
+0x2753 0x6CD9
+0x2754 0x6CB6
+0x2755 0x6CD4
+0x2756 0x6CAD
+0x2757 0x6CE7
+0x2758 0x6CB7
+0x2759 0x6CD0
+0x275A 0x6CC2
+0x275B 0x6CBA
+0x275C 0x6CC3
+0x275D 0x6CC6
+0x275E 0x6CED
+0x275F 0x6CF2
+0x2760 0x6CD2
+0x2761 0x6CDD
+0x2762 0x6CB4
+0x2763 0x6C8A
+0x2764 0x6C9D
+0x2765 0x6C80
+0x2766 0x6CDE
+0x2767 0x6CC0
+0x2768 0x6D30
+0x2769 0x6CCD
+0x276A 0x6CC7
+0x276B 0x6CB0
+0x276C 0x6CF9
+0x276D 0x6CCF
+0x276E 0x6CE9
+0x276F 0x6CD1
+0x2770 0x7094
+0x2771 0x7098
+0x2772 0x7085
+0x2773 0x7093
+0x2774 0x7086
+0x2775 0x7084
+0x2776 0x7091
+0x2777 0x7096
+0x2778 0x7082
+0x2779 0x709A
+0x277A 0x7083
+0x277B 0x726A
+0x277C 0x72D6
+0x277D 0x72CB
+0x277E 0x72D8
+0x2821 0x72C9
+0x2822 0x72DC
+0x2823 0x72D2
+0x2824 0x72D4
+0x2825 0x72DA
+0x2826 0x72CC
+0x2827 0x72D1
+0x2828 0x73A4
+0x2829 0x73A1
+0x282A 0x73AD
+0x282B 0x73A6
+0x282C 0x73A2
+0x282D 0x73A0
+0x282E 0x73AC
+0x282F 0x739D
+0x2830 0x74DD
+0x2831 0x74E8
+0x2832-0x2833 0x753F
+0x2834 0x753E
+0x2835 0x758C
+0x2836 0x7598
+0x2837 0x76AF
+0x2838 0x76F3
+0x2839 0x76F1
+0x283A 0x76F0
+0x283B 0x76F5
+0x283C 0x77F8
+0x283D 0x77FC
+0x283E 0x77F9
+0x283F 0x77FB
+0x2840 0x77FA
+0x2841 0x77F7
+0x2842 0x7942
+0x2843 0x793F
+0x2844 0x79C5
+0x2845 0x7A78
+0x2846 0x7A7B
+0x2847 0x7AFB
+0x2848 0x7C75
+0x2849 0x7CFD
+0x284A 0x8035
+0x284B 0x808F
+0x284C 0x80AE
+0x284D 0x80A3
+0x284E 0x80B8
+0x284F 0x80B5
+0x2850 0x80AD
+0x2851 0x8220
+0x2852 0x82A0
+0x2853 0x82C0
+0x2854 0x82AB
+0x2855 0x829A
+0x2856 0x8298
+0x2857 0x829B
+0x2858 0x82B5
+0x2859 0x82A7
+0x285A 0x82AE
+0x285B 0x82BC
+0x285C 0x829E
+0x285D 0x82BA
+0x285E 0x82B4
+0x285F 0x82A8
+0x2860 0x82A1
+0x2861 0x82A9
+0x2862 0x82C2
+0x2863 0x82A4
+0x2864 0x82C3
+0x2865 0x82B6
+0x2866 0x82A2
+0x2867 0x8670
+0x2868 0x866F
+0x2869-0x286A 0x866D
+0x286B 0x8C56
+0x286C 0x8FD2
+0x286D 0x8FCB
+0x286E 0x8FD3
+0x286F 0x8FCD
+0x2870 0x8FD6
+0x2871 0x8FD5
+0x2872 0x8FD7
+0x2873 0x90B2
+0x2874 0x90B4
+0x2875 0x90AF
+0x2876 0x90B3
+0x2877 0x90B0
+0x2878 0x9639
+0x2879 0x963D
+0x287A 0x963C
+0x287B 0x963A
+0x287C 0x9643
+0x287D 0x4FCD
+0x287E 0x4FC5
+0x2921 0x4FD3
+0x2922 0x4FB2
+0x2923 0x4FC9
+0x2924 0x4FCB
+0x2925 0x4FC1
+0x2926 0x4FD4
+0x2927 0x4FDC
+0x2928 0x4FD9
+0x2929 0x4FBB
+0x292A 0x4FB3
+0x292B 0x4FDB
+0x292C 0x4FC7
+0x292D 0x4FD6
+0x292E 0x4FBA
+0x292F 0x4FC0
+0x2930 0x4FB9
+0x2931 0x4FEC
+0x2932 0x5244
+0x2933 0x5249
+0x2934 0x52C0
+0x2935 0x52C2
+0x2936 0x533D
+0x2937 0x537C
+0x2938 0x5397
+0x2939 0x5396
+0x293A 0x5399
+0x293B 0x5398
+0x293C 0x54BA
+0x293D 0x54A1
+0x293E 0x54AD
+0x293F 0x54A5
+0x2940 0x54CF
+0x2941 0x54C3
+0x2942 0x830D
+0x2943 0x54B7
+0x2944 0x54AE
+0x2945 0x54D6
+0x2946 0x54B6
+0x2947-0x2948 0x54C5
+0x2949 0x54A0
+0x294A 0x5470
+0x294B 0x54BC
+0x294C 0x54A2
+0x294D 0x54BE
+0x294E 0x5472
+0x294F 0x54DE
+0x2950 0x54B0
+0x2951 0x57B5
+0x2952-0x2953 0x579E
+0x2954 0x57A4
+0x2955 0x578C
+0x2956 0x5797
+0x2957 0x579D
+0x2958 0x579B
+0x2959 0x5794
+0x295A 0x5798
+0x295B 0x578F
+0x295C 0x5799
+0x295D 0x57A5
+0x295E 0x579A
+0x295F 0x5795
+0x2960 0x58F4
+0x2961 0x590D
+0x2962 0x5953
+0x2963 0x59E1
+0x2964 0x59DE
+0x2965 0x59EE
+0x2966 0x5A00
+0x2967 0x59F1
+0x2968 0x59DD
+0x2969 0x59FA
+0x296A 0x59FD
+0x296B 0x59FC
+0x296C 0x59F6
+0x296D 0x59E4
+0x296E 0x59F2
+0x296F 0x59F7
+0x2970 0x59DB
+0x2971 0x59E9
+0x2972 0x59F3
+0x2973 0x59F5
+0x2974 0x59E0
+0x2975 0x59FE
+0x2976 0x59F4
+0x2977 0x59ED
+0x2978 0x5BA8
+0x2979 0x5C4C
+0x297A 0x5CD0
+0x297B 0x5CD8
+0x297C 0x5CCC
+0x297D 0x5CD7
+0x297E 0x5CCB
+0x2A21 0x5CDB
+0x2A22 0x5CDE
+0x2A23 0x5CDA
+0x2A24 0x5CC9
+0x2A25 0x5CC7
+0x2A26 0x5CCA
+0x2A27 0x5CD6
+0x2A28-0x2A29 0x5CD3
+0x2A2A 0x5CCF
+0x2A2B 0x5CC8
+0x2A2C 0x5CC6
+0x2A2D 0x5CCE
+0x2A2E 0x5CDF
+0x2A2F 0x5CF8
+0x2A30 0x5DF9
+0x2A31-0x2A33 0x5E21
+0x2A34 0x5E20
+0x2A35 0x5E24
+0x2A36 0x5EB0
+0x2A37 0x5EA4
+0x2A38 0x5EA2
+0x2A39 0x5E9B
+0x2A3A 0x5EA3
+0x2A3B 0x5EA5
+0x2A3C 0x5F07
+0x2A3D 0x5F2E
+0x2A3E 0x5F56
+0x2A3F 0x5F86
+0x2A40 0x6037
+0x2A41 0x6039
+0x2A42 0x6054
+0x2A43 0x6072
+0x2A44 0x605E
+0x2A45 0x6045
+0x2A46 0x6053
+0x2A47 0x6047
+0x2A48 0x6049
+0x2A49 0x605B
+0x2A4A 0x604C
+0x2A4B 0x6040
+0x2A4C 0x6042
+0x2A4D 0x605F
+0x2A4E 0x6024
+0x2A4F 0x6044
+0x2A50 0x6058
+0x2A51 0x6066
+0x2A52 0x606E
+0x2A53-0x2A54 0x6242
+0x2A55 0x62CF
+0x2A56 0x630D
+0x2A57 0x630B
+0x2A58 0x62F5
+0x2A59 0x630E
+0x2A5A 0x6303
+0x2A5B 0x62EB
+0x2A5C 0x62F9
+0x2A5D 0x630F
+0x2A5E 0x630C
+0x2A5F 0x62F8
+0x2A60 0x62F6
+0x2A61 0x6300
+0x2A62-0x2A63 0x6313
+0x2A64 0x62FA
+0x2A65 0x6315
+0x2A66 0x62FB
+0x2A67 0x62F0
+0x2A68 0x6541
+0x2A69 0x6543
+0x2A6A 0x65AA
+0x2A6B 0x65BF
+0x2A6C 0x6636
+0x2A6D 0x6621
+0x2A6E 0x6632
+0x2A6F 0x6635
+0x2A70 0x661C
+0x2A71 0x6626
+0x2A72 0x6622
+0x2A73 0x6633
+0x2A74 0x662B
+0x2A75 0x663A
+0x2A76 0x661D
+0x2A77 0x6634
+0x2A78 0x6639
+0x2A79 0x662E
+0x2A7A-0x2A7B 0x670F
+0x2A7C 0x67C1
+0x2A7D 0x67F2
+0x2A7E 0x67C8
+0x2B21 0x67BA
+0x2B22 0x67DC
+0x2B23 0x67BB
+0x2B24 0x67F8
+0x2B25 0x67D8
+0x2B26 0x67C0
+0x2B27 0x67B7
+0x2B28 0x67C5
+0x2B29 0x67EB
+0x2B2A 0x67E4
+0x2B2B 0x67DF
+0x2B2C 0x67B5
+0x2B2D 0x67CD
+0x2B2E 0x67B3
+0x2B2F 0x67F7
+0x2B30 0x67F6
+0x2B31 0x67EE
+0x2B32 0x67E3
+0x2B33 0x67C2
+0x2B34 0x67B9
+0x2B35 0x67CE
+0x2B36 0x67E7
+0x2B37 0x67F0
+0x2B38 0x67B2
+0x2B39 0x67FC
+0x2B3A 0x67C6
+0x2B3B 0x67ED
+0x2B3C 0x67CC
+0x2B3D 0x67AE
+0x2B3E 0x67E6
+0x2B3F 0x67DB
+0x2B40 0x67FA
+0x2B41-0x2B42 0x67C9
+0x2B43 0x67C3
+0x2B44 0x67EA
+0x2B45 0x67CB
+0x2B46 0x6B28
+0x2B47 0x6B82
+0x2B48 0x6B84
+0x2B49 0x6BB6
+0x2B4A 0x6BD6
+0x2B4B 0x6BD8
+0x2B4C 0x6BE0
+0x2B4D-0x2B4E 0x6C20
+0x2B4F 0x6D28
+0x2B50 0x6D34
+0x2B51 0x6D2D
+0x2B52 0x6D1F
+0x2B53 0x6D3C
+0x2B54 0x6D3F
+0x2B55 0x6D12
+0x2B56 0x6D0A
+0x2B57 0x6CDA
+0x2B58 0x6D33
+0x2B59 0x6D04
+0x2B5A 0x6D19
+0x2B5B 0x6D3A
+0x2B5C 0x6D1A
+0x2B5D 0x6D11
+0x2B5E 0x6D00
+0x2B5F 0x6D1D
+0x2B60 0x6D42
+0x2B61 0x6D01
+0x2B62 0x6D18
+0x2B63 0x6D37
+0x2B64 0x6D03
+0x2B65 0x6D0F
+0x2B66 0x6D40
+0x2B67 0x6D07
+0x2B68 0x6D20
+0x2B69 0x6D2C
+0x2B6A 0x6D08
+0x2B6B 0x6D22
+0x2B6C 0x6D09
+0x2B6D 0x6D10
+0x2B6E 0x70B7
+0x2B6F 0x709F
+0x2B70 0x70BE
+0x2B71 0x70B1
+0x2B72 0x70B0
+0x2B73 0x70A1
+0x2B74-0x2B75 0x70B4
+0x2B76 0x70A9
+0x2B77 0x7241
+0x2B78-0x2B79 0x7249
+0x2B7A 0x726C
+0x2B7B 0x7270
+0x2B7C 0x7273
+0x2B7D 0x726E
+0x2B7E 0x72CA
+0x2C21 0x72E4
+0x2C22 0x72E8
+0x2C23 0x72EB
+0x2C24 0x72DF
+0x2C25 0x72EA
+0x2C26 0x72E6
+0x2C27 0x72E3
+0x2C28 0x7385
+0x2C29 0x73CC
+0x2C2A 0x73C2
+0x2C2B 0x73C8
+0x2C2C 0x73C5
+0x2C2D 0x73B9
+0x2C2E 0x73B6
+0x2C2F 0x73B5
+0x2C30 0x73B4
+0x2C31 0x73EB
+0x2C32 0x73BF
+0x2C33 0x73C7
+0x2C34 0x73BE
+0x2C35 0x73C3
+0x2C36 0x73C6
+0x2C37 0x73B8
+0x2C38 0x73CB
+0x2C39 0x74EC
+0x2C3A 0x74EE
+0x2C3B 0x752E
+0x2C3C-0x2C3D 0x7547
+0x2C3E 0x75A7
+0x2C3F 0x75AA
+0x2C40 0x7679
+0x2C41 0x76C4
+0x2C42 0x7708
+0x2C43-0x2C45 0x7703
+0x2C46 0x770A
+0x2C47 0x76F7
+0x2C48 0x76FB
+0x2C49 0x76FA
+0x2C4A-0x2C4B 0x77E7
+0x2C4C 0x7806
+0x2C4D-0x2C4E 0x7811
+0x2C4F 0x7805
+0x2C50 0x7810
+0x2C51 0x780F
+0x2C52 0x780E
+0x2C53 0x7809
+0x2C54 0x7803
+0x2C55 0x7813
+0x2C56 0x794A
+0x2C57 0x794C
+0x2C58 0x794B
+0x2C59 0x7945
+0x2C5A 0x7944
+0x2C5B 0x79D5
+0x2C5C 0x79CD
+0x2C5D 0x79CF
+0x2C5E 0x79D6
+0x2C5F 0x79CE
+0x2C60 0x7A80
+0x2C61 0x7A7E
+0x2C62 0x7AD1
+0x2C63-0x2C64 0x7B00
+0x2C65 0x7C7A
+0x2C66-0x2C67 0x7C78
+0x2C68-0x2C6A 0x7C7F
+0x2C6B 0x7D03
+0x2C6C 0x7D08
+0x2C6D 0x7D01
+0x2C6E 0x7F58
+0x2C6F 0x7F91
+0x2C70 0x7F8D
+0x2C71 0x7FBE
+0x2C72 0x8007
+0x2C73-0x2C74 0x800E
+0x2C75 0x8014
+0x2C76 0x8037
+0x2C77 0x80D8
+0x2C78 0x80C7
+0x2C79 0x80E0
+0x2C7A 0x80D1
+0x2C7B 0x80C8
+0x2C7C 0x80C2
+0x2C7D 0x80D0
+0x2C7E 0x80C5
+0x2D21 0x80E3
+0x2D22 0x80D9
+0x2D23 0x80DC
+0x2D24 0x80CA
+0x2D25 0x80D5
+0x2D26 0x80C9
+0x2D27 0x80CF
+0x2D28 0x80D7
+0x2D29 0x80E6
+0x2D2A 0x80CD
+0x2D2B 0x81FF
+0x2D2C 0x8221
+0x2D2D 0x8294
+0x2D2E 0x82D9
+0x2D2F 0x82FE
+0x2D30 0x82F9
+0x2D31 0x8307
+0x2D32 0x82E8
+0x2D33 0x8300
+0x2D34 0x82D5
+0x2D35 0x833A
+0x2D36 0x82EB
+0x2D37 0x82D6
+0x2D38 0x82F4
+0x2D39 0x82EC
+0x2D3A 0x82E1
+0x2D3B 0x82F2
+0x2D3C 0x82F5
+0x2D3D 0x830C
+0x2D3E 0x82FB
+0x2D3F 0x82F6
+0x2D40 0x82F0
+0x2D41 0x82EA
+0x2D42 0x82E4
+0x2D43 0x82E0
+0x2D44 0x82FA
+0x2D45 0x82F3
+0x2D46 0x82ED
+0x2D47 0x8677
+0x2D48 0x8674
+0x2D49 0x867C
+0x2D4A 0x8673
+0x2D4B 0x8841
+0x2D4C 0x884E
+0x2D4D 0x8867
+0x2D4E 0x886A
+0x2D4F 0x8869
+0x2D50 0x89D3
+0x2D51 0x8A04
+0x2D52 0x8A07
+0x2D53 0x8D72
+0x2D54 0x8FE3
+0x2D55 0x8FE1
+0x2D56 0x8FEE
+0x2D57 0x8FE0
+0x2D58 0x90F1
+0x2D59 0x90BD
+0x2D5A 0x90BF
+0x2D5B 0x90D5
+0x2D5C 0x90C5
+0x2D5D 0x90BE
+0x2D5E 0x90C7
+0x2D5F 0x90CB
+0x2D60 0x90C8
+0x2D61 0x91D4
+0x2D62 0x91D3
+0x2D63 0x9654
+0x2D64 0x964F
+0x2D65 0x9651
+0x2D66 0x9653
+0x2D67 0x964A
+0x2D68 0x964E
+0x2D69 0x501E
+0x2D6A 0x5005
+0x2D6B 0x5007
+0x2D6C 0x5013
+0x2D6D 0x5022
+0x2D6E 0x5030
+0x2D6F 0x501B
+0x2D70 0x4FF5
+0x2D71 0x4FF4
+0x2D72 0x5033
+0x2D73 0x5037
+0x2D74 0x502C
+0x2D75-0x2D76 0x4FF6
+0x2D77 0x5017
+0x2D78 0x501C
+0x2D79 0x5020
+0x2D7A 0x5027
+0x2D7B 0x5035
+0x2D7C 0x502F
+0x2D7D 0x5031
+0x2D7E 0x500E
+0x2E21 0x515A
+0x2E22 0x5194
+0x2E23 0x5193
+0x2E24 0x51CA
+0x2E25-0x2E26 0x51C4
+0x2E27 0x51C8
+0x2E28 0x51CE
+0x2E29 0x5261
+0x2E2A 0x525A
+0x2E2B 0x5252
+0x2E2C-0x2E2D 0x525E
+0x2E2E 0x5255
+0x2E2F 0x5262
+0x2E30 0x52CD
+0x2E31 0x530E
+0x2E32 0x539E
+0x2E33 0x5526
+0x2E34 0x54E2
+0x2E35 0x5517
+0x2E36 0x5512
+0x2E37 0x54E7
+0x2E38 0x54F3
+0x2E39 0x54E4
+0x2E3A 0x551A
+0x2E3B 0x54FF
+0x2E3C 0x5504
+0x2E3D 0x5508
+0x2E3E 0x54EB
+0x2E3F 0x5511
+0x2E40 0x5505
+0x2E41 0x54F1
+0x2E42 0x550A
+0x2E43 0x54FB
+0x2E44-0x2E45 0x54F7
+0x2E46 0x54E0
+0x2E47 0x550E
+0x2E48 0x5503
+0x2E49 0x550B
+0x2E4A-0x2E4B 0x5701
+0x2E4C 0x57CC
+0x2E4D 0x5832
+0x2E4E 0x57D5
+0x2E4F 0x57D2
+0x2E50 0x57BA
+0x2E51 0x57C6
+0x2E52 0x57BD
+0x2E53 0x57BC
+0x2E54 0x57B8
+0x2E55 0x57B6
+0x2E56 0x57BF
+0x2E57 0x57C7
+0x2E58 0x57D0
+0x2E59 0x57B9
+0x2E5A 0x57C1
+0x2E5B 0x590E
+0x2E5C 0x594A
+0x2E5D 0x5A19
+0x2E5E 0x5A16
+0x2E5F-0x2E60 0x5A2D
+0x2E61 0x5A15
+0x2E62 0x5A0F
+0x2E63 0x5A17
+0x2E64 0x5A0A
+0x2E65 0x5A1E
+0x2E66 0x5A33
+0x2E67 0x5B6C
+0x2E68 0x5BA7
+0x2E69 0x5BAD
+0x2E6A 0x5BAC
+0x2E6B 0x5C03
+0x2E6C 0x5C56
+0x2E6D 0x5C54
+0x2E6E 0x5CEC
+0x2E6F 0x5CFF
+0x2E70 0x5CEE
+0x2E71 0x5CF1
+0x2E72 0x5CF7
+0x2E73 0x5D00
+0x2E74 0x5CF9
+0x2E75 0x5E29
+0x2E76 0x5E28
+0x2E77 0x5EA8
+0x2E78 0x5EAE
+0x2E79 0x5EAA
+0x2E7A 0x5EAC
+0x2E7B 0x5F33
+0x2E7C 0x5F30
+0x2E7D 0x5F67
+0x2E7E 0x605D
+0x2F21 0x605A
+0x2F22 0x6067
+0x2F23 0x6041
+0x2F24 0x60A2
+0x2F25 0x6088
+0x2F26 0x6080
+0x2F27 0x6092
+0x2F28 0x6081
+0x2F29 0x609D
+0x2F2A 0x6083
+0x2F2B 0x6095
+0x2F2C 0x609B
+0x2F2D 0x6097
+0x2F2E 0x6087
+0x2F2F 0x609C
+0x2F30 0x608E
+0x2F31 0x6219
+0x2F32 0x6246
+0x2F33 0x62F2
+0x2F34 0x6310
+0x2F35 0x6356
+0x2F36 0x632C
+0x2F37-0x2F38 0x6344
+0x2F39 0x6336
+0x2F3A 0x6343
+0x2F3B 0x63E4
+0x2F3C 0x6339
+0x2F3D 0x634B
+0x2F3E 0x634A
+0x2F3F 0x633C
+0x2F40 0x6329
+0x2F41 0x6341
+0x2F42 0x6334
+0x2F43 0x6358
+0x2F44 0x6354
+0x2F45 0x6359
+0x2F46 0x632D
+0x2F47 0x6347
+0x2F48 0x6333
+0x2F49 0x635A
+0x2F4A 0x6351
+0x2F4B 0x6338
+0x2F4C 0x6357
+0x2F4D 0x6340
+0x2F4E 0x6348
+0x2F4F 0x654A
+0x2F50 0x6546
+0x2F51 0x65C6
+0x2F52-0x2F53 0x65C3
+0x2F54 0x65C2
+0x2F55 0x664A
+0x2F56 0x665F
+0x2F57 0x6647
+0x2F58 0x6651
+0x2F59-0x2F5A 0x6712
+0x2F5B 0x681F
+0x2F5C 0x681A
+0x2F5D 0x6849
+0x2F5E-0x2F5F 0x6832
+0x2F60 0x683B
+0x2F61 0x684B
+0x2F62 0x684F
+0x2F63 0x6816
+0x2F64 0x6831
+0x2F65 0x681C
+0x2F66 0x6835
+0x2F67 0x682B
+0x2F68 0x682D
+0x2F69 0x682F
+0x2F6A 0x684E
+0x2F6B 0x6844
+0x2F6C 0x6834
+0x2F6D 0x681D
+0x2F6E 0x6812
+0x2F6F 0x6814
+0x2F70 0x6826
+0x2F71 0x6828
+0x2F72 0x682E
+0x2F73 0x684D
+0x2F74 0x683A
+0x2F75 0x6825
+0x2F76 0x6820
+0x2F77 0x6B2C
+0x2F78 0x6B2F
+0x2F79 0x6B2D
+0x2F7A 0x6B31
+0x2F7B 0x6B34
+0x2F7C 0x6B6D
+0x2F7D 0x8082
+0x2F7E 0x6B88
+0x3021 0x6BE6
+0x3022 0x6BE4
+0x3023 0x6BE8
+0x3024 0x6BE3
+0x3025 0x6BE2
+0x3026 0x6BE7
+0x3027 0x6C25
+0x3028 0x6D7A
+0x3029-0x302A 0x6D63
+0x302B 0x6D76
+0x302C 0x6D0D
+0x302D 0x6D61
+0x302E 0x6D92
+0x302F 0x6D58
+0x3030 0x6D62
+0x3031 0x6D6D
+0x3032 0x6D6F
+0x3033 0x6D91
+0x3034 0x6D8D
+0x3035 0x6DEF
+0x3036 0x6D7F
+0x3037 0x6D86
+0x3038 0x6D5E
+0x3039 0x6D67
+0x303A 0x6D60
+0x303B 0x6D97
+0x303C 0x6D70
+0x303D 0x6D7C
+0x303E 0x6D5F
+0x303F 0x6D82
+0x3040 0x6D98
+0x3041 0x6D2F
+0x3042 0x6D68
+0x3043 0x6D8B
+0x3044 0x6D7E
+0x3045 0x6D80
+0x3046 0x6D84
+0x3047 0x6D16
+0x3048 0x6D83
+0x3049 0x6D7B
+0x304A 0x6D7D
+0x304B 0x6D75
+0x304C 0x6D90
+0x304D 0x70DC
+0x304E 0x70D3
+0x304F 0x70D1
+0x3050 0x70DD
+0x3051 0x70CB
+0x3052 0x7F39
+0x3053 0x70E2
+0x3054 0x70D7
+0x3055 0x70D2
+0x3056 0x70DE
+0x3057 0x70E0
+0x3058 0x70D4
+0x3059 0x70CD
+0x305A-0x305C 0x70C5
+0x305D 0x70DA
+0x305E 0x70CE
+0x305F 0x70E1
+0x3060 0x7242
+0x3061 0x7278
+0x3062 0x7277
+0x3063 0x7276
+0x3064 0x7300
+0x3065 0x72FA
+0x3066 0x72F4
+0x3067 0x72FE
+0x3068 0x72F6
+0x3069 0x72F3
+0x306A 0x72FB
+0x306B 0x7301
+0x306C 0x73D3
+0x306D 0x73D9
+0x306E 0x73E5
+0x306F 0x73D6
+0x3070 0x73BC
+0x3071 0x73E7
+0x3072 0x73E3
+0x3073 0x73E9
+0x3074 0x73DC
+0x3075 0x73D2
+0x3076 0x73DB
+0x3077 0x73D4
+0x3078 0x73DD
+0x3079 0x73DA
+0x307A-0x307B 0x73D7
+0x307C 0x73E8
+0x307D-0x307E 0x74DE
+0x3121-0x3122 0x74F4
+0x3123 0x7521
+0x3124 0x755B
+0x3125 0x755F
+0x3126 0x75B0
+0x3127 0x75C1
+0x3128 0x75BB
+0x3129 0x75C4
+0x312A 0x75C0
+0x312B 0x75BF
+0x312C 0x75B6
+0x312D 0x75BA
+0x312E 0x768A
+0x312F 0x76C9
+0x3130 0x771D
+0x3131 0x771B
+0x3132 0x7710
+0x3133 0x7713
+0x3134 0x7712
+0x3135 0x7723
+0x3136 0x7711
+0x3137 0x7715
+0x3138-0x3139 0x7719
+0x313A 0x7722
+0x313B 0x7727
+0x313C 0x7823
+0x313D 0x782C
+0x313E 0x7822
+0x313F 0x7835
+0x3140 0x782F
+0x3141 0x7828
+0x3142 0x782E
+0x3143 0x782B
+0x3144 0x7821
+0x3145 0x7829
+0x3146 0x7833
+0x3147 0x782A
+0x3148 0x7831
+0x3149 0x7954
+0x314A 0x795B
+0x314B 0x794F
+0x314C 0x795C
+0x314D 0x7953
+0x314E 0x7952
+0x314F 0x7951
+0x3150-0x3151 0x79EB
+0x3152 0x79E0
+0x3153 0x79EE
+0x3154 0x79ED
+0x3155 0x79EA
+0x3156 0x79DC
+0x3157 0x79DE
+0x3158 0x79DD
+0x3159 0x7A86
+0x315A 0x7A89
+0x315B 0x7A85
+0x315C-0x315D 0x7A8B
+0x315E 0x7A8A
+0x315F 0x7A87
+0x3160 0x7AD8
+0x3161 0x7B10
+0x3162 0x7B04
+0x3163 0x7B13
+0x3164 0x7B05
+0x3165 0x7B0F
+0x3166 0x7B08
+0x3167 0x7B0A
+0x3168 0x7B0E
+0x3169 0x7B09
+0x316A 0x7B12
+0x316B 0x7C84
+0x316C 0x7C91
+0x316D 0x7C8A
+0x316E 0x7C8C
+0x316F 0x7C88
+0x3170 0x7C8D
+0x3171 0x7C85
+0x3172 0x7D1E
+0x3173 0x7D1D
+0x3174 0x7D11
+0x3175 0x7D0E
+0x3176 0x7D18
+0x3177 0x7D16
+0x3178 0x7D13
+0x3179 0x7D1F
+0x317A 0x7D12
+0x317B 0x7D0F
+0x317C 0x7D0C
+0x317D 0x7F5C
+0x317E 0x7F61
+0x3221 0x7F5E
+0x3222 0x7F60
+0x3223 0x7F5D
+0x3224 0x7F5B
+0x3225 0x7F96
+0x3226 0x7F92
+0x3227 0x7FC3
+0x3228 0x7FC2
+0x3229 0x7FC0
+0x322A 0x8016
+0x322B 0x803E
+0x322C 0x8039
+0x322D 0x80FA
+0x322E 0x80F2
+0x322F 0x80F9
+0x3230 0x80F5
+0x3231 0x8101
+0x3232 0x80FB
+0x3233 0x8100
+0x3234 0x8201
+0x3235 0x822F
+0x3236 0x8225
+0x3237 0x8333
+0x3238 0x832D
+0x3239 0x8344
+0x323A 0x8319
+0x323B 0x8351
+0x323C 0x8325
+0x323D 0x8356
+0x323E 0x833F
+0x323F 0x8341
+0x3240 0x8326
+0x3241 0x831C
+0x3242 0x8322
+0x3243 0x8342
+0x3244 0x834E
+0x3245 0x831B
+0x3246 0x832A
+0x3247 0x8308
+0x3248 0x833C
+0x3249 0x834D
+0x324A 0x8316
+0x324B 0x8324
+0x324C 0x8320
+0x324D 0x8337
+0x324E 0x832F
+0x324F 0x8329
+0x3250 0x8347
+0x3251 0x8345
+0x3252 0x834C
+0x3253 0x8353
+0x3254 0x831E
+0x3255 0x832C
+0x3256 0x834B
+0x3257 0x8327
+0x3258 0x8348
+0x3259 0x8653
+0x325A 0x8652
+0x325B 0x86A2
+0x325C 0x86A8
+0x325D 0x8696
+0x325E 0x868D
+0x325F 0x8691
+0x3260 0x869E
+0x3261 0x8687
+0x3262 0x8697
+0x3263 0x8686
+0x3264 0x868B
+0x3265 0x869A
+0x3266 0x8685
+0x3267 0x86A5
+0x3268 0x8699
+0x3269 0x86A1
+0x326A 0x86A7
+0x326B 0x8695
+0x326C 0x8698
+0x326D 0x868E
+0x326E 0x869D
+0x326F 0x8690
+0x3270 0x8694
+0x3271-0x3272 0x8843
+0x3273 0x886D
+0x3274-0x3275 0x8875
+0x3276 0x8872
+0x3277 0x8880
+0x3278 0x8871
+0x3279 0x887F
+0x327A 0x886F
+0x327B 0x8883
+0x327C 0x887E
+0x327D 0x8874
+0x327E 0x887C
+0x3321 0x8A12
+0x3322 0x8C47
+0x3323 0x8C57
+0x3324 0x8C7B
+0x3325 0x8CA4
+0x3326 0x8CA3
+0x3327 0x8D76
+0x3328 0x8D78
+0x3329 0x8DB5
+0x332A 0x8DB7
+0x332B 0x8DB6
+0x332C 0x8ED1
+0x332D 0x8ED3
+0x332E 0x8FFE
+0x332F 0x8FF5
+0x3330 0x9002
+0x3331 0x8FFF
+0x3332 0x8FFB
+0x3333 0x9004
+0x3334 0x8FFC
+0x3335 0x8FF6
+0x3336 0x90D6
+0x3337 0x90E0
+0x3338-0x3339 0x90D9
+0x333A 0x90E3
+0x333B 0x90DF
+0x333C 0x90E5
+0x333D 0x90D8
+0x333E 0x90DB
+0x333F 0x90D7
+0x3340 0x90DC
+0x3341 0x90E4
+0x3342 0x9150
+0x3343-0x3344 0x914E
+0x3345 0x91D5
+0x3346 0x91E2
+0x3347 0x91DA
+0x3348 0x965C
+0x3349 0x965F
+0x334A 0x96BC
+0x334B 0x98E3
+0x334C 0x9ADF
+0x334D 0x9B2F
+0x334E 0x4E7F
+0x334F 0x5070
+0x3350 0x506A
+0x3351 0x5061
+0x3352 0x505E
+0x3353 0x5060
+0x3354 0x5053
+0x3355 0x504B
+0x3356 0x505D
+0x3357 0x5072
+0x3358 0x5048
+0x3359 0x504D
+0x335A 0x5041
+0x335B 0x505B
+0x335C 0x504A
+0x335D 0x5062
+0x335E 0x5015
+0x335F 0x5045
+0x3360 0x505F
+0x3361 0x5069
+0x3362 0x506B
+0x3363-0x3364 0x5063
+0x3365 0x5046
+0x3366 0x5040
+0x3367 0x506E
+0x3368 0x5073
+0x3369 0x5057
+0x336A 0x5051
+0x336B 0x51D0
+0x336C 0x526B
+0x336D 0x526D
+0x336E 0x526C
+0x336F 0x526E
+0x3370 0x52D6
+0x3371 0x52D3
+0x3372 0x532D
+0x3373 0x539C
+0x3374-0x3375 0x5575
+0x3376 0x553C
+0x3377 0x554D
+0x3378 0x5550
+0x3379 0x5534
+0x337A 0x552A
+0x337B 0x5551
+0x337C 0x5562
+0x337D 0x5536
+0x337E 0x5535
+0x3421 0x5530
+0x3422 0x5552
+0x3423 0x5545
+0x3424 0x550C
+0x3425 0x5532
+0x3426 0x5565
+0x3427 0x554E
+0x3428 0x5539
+0x3429 0x5548
+0x342A 0x552D
+0x342B 0x553B
+0x342C 0x5540
+0x342D 0x554B
+0x342E 0x570A
+0x342F 0x5707
+0x3430 0x57FB
+0x3431 0x5814
+0x3432 0x57E2
+0x3433 0x57F6
+0x3434 0x57DC
+0x3435 0x57F4
+0x3436 0x5800
+0x3437 0x57ED
+0x3438 0x57FD
+0x3439 0x5808
+0x343A 0x57F8
+0x343B 0x580B
+0x343C 0x57F3
+0x343D 0x57CF
+0x343E 0x5807
+0x343F 0x57EE
+0x3440 0x57E3
+0x3441 0x57F2
+0x3442 0x57E5
+0x3443 0x57EC
+0x3444 0x57E1
+0x3445 0x580E
+0x3446 0x57FC
+0x3447 0x5810
+0x3448 0x57E7
+0x3449 0x5801
+0x344A 0x580C
+0x344B 0x57F1
+0x344C 0x57E9
+0x344D 0x57F0
+0x344E 0x580D
+0x344F 0x5804
+0x3450 0x595C
+0x3451 0x5A60
+0x3452 0x5A58
+0x3453 0x5A55
+0x3454 0x5A67
+0x3455 0x5A5E
+0x3456 0x5A38
+0x3457 0x5A35
+0x3458 0x5A6D
+0x3459 0x5A50
+0x345A 0x5A5F
+0x345B 0x5A65
+0x345C 0x5A6C
+0x345D 0x5A53
+0x345E 0x5A64
+0x345F 0x5A57
+0x3460 0x5A43
+0x3461 0x5A5D
+0x3462 0x5A52
+0x3463 0x5A44
+0x3464 0x5A5B
+0x3465 0x5A48
+0x3466 0x5A8E
+0x3467 0x5A3E
+0x3468 0x5A4D
+0x3469 0x5A39
+0x346A 0x5A4C
+0x346B 0x5A70
+0x346C 0x5A69
+0x346D 0x5A47
+0x346E 0x5A51
+0x346F 0x5A56
+0x3470 0x5A42
+0x3471 0x5A5C
+0x3472 0x5B72
+0x3473 0x5B6E
+0x3474 0x5BC1
+0x3475 0x5BC0
+0x3476 0x5C59
+0x3477 0x5D1E
+0x3478 0x5D0B
+0x3479 0x5D1D
+0x347A 0x5D1A
+0x347B 0x5D20
+0x347C 0x5D0C
+0x347D 0x5D28
+0x347E 0x5D0D
+0x3521 0x5D26
+0x3522 0x5D25
+0x3523 0x5D0F
+0x3524 0x5D30
+0x3525 0x5D12
+0x3526 0x5D23
+0x3527 0x5D1F
+0x3528 0x5D2E
+0x3529 0x5E3E
+0x352A 0x5E34
+0x352B 0x5EB1
+0x352C 0x5EB4
+0x352D 0x5EB9
+0x352E-0x352F 0x5EB2
+0x3530 0x5F36
+0x3531 0x5F38
+0x3532 0x5F9B
+0x3533 0x5F96
+0x3534 0x5F9F
+0x3535 0x608A
+0x3536 0x6090
+0x3537 0x6086
+0x3538 0x60BE
+0x3539 0x60B0
+0x353A 0x60BA
+0x353B-0x353C 0x60D3
+0x353D 0x60CF
+0x353E 0x60E4
+0x353F 0x60D9
+0x3540 0x60DD
+0x3541 0x60C8
+0x3542 0x60B1
+0x3543 0x60DB
+0x3544 0x60B7
+0x3545 0x60CA
+0x3546 0x60BF
+0x3547 0x60C3
+0x3548 0x60CD
+0x3549 0x60C0
+0x354A 0x6332
+0x354B 0x6365
+0x354C 0x638A
+0x354D 0x6382
+0x354E 0x637D
+0x354F 0x63BD
+0x3550 0x639E
+0x3551 0x63AD
+0x3552 0x639D
+0x3553 0x6397
+0x3554 0x63AB
+0x3555 0x638E
+0x3556 0x636F
+0x3557 0x6387
+0x3558 0x6390
+0x3559 0x636E
+0x355A 0x63AF
+0x355B 0x6375
+0x355C 0x639C
+0x355D 0x636D
+0x355E 0x63AE
+0x355F 0x637C
+0x3560 0x63A4
+0x3561 0x633B
+0x3562 0x639F
+0x3563 0x6378
+0x3564 0x6385
+0x3565 0x6381
+0x3566 0x6391
+0x3567 0x638D
+0x3568 0x6370
+0x3569 0x6553
+0x356A 0x65CD
+0x356B 0x6665
+0x356C 0x6661
+0x356D 0x665B
+0x356E 0x6659
+0x356F 0x665C
+0x3570 0x6662
+0x3571 0x6718
+0x3572 0x6879
+0x3573 0x6887
+0x3574 0x6890
+0x3575 0x689C
+0x3576-0x3577 0x686D
+0x3578 0x68AE
+0x3579 0x68AB
+0x357A 0x6956
+0x357B 0x686F
+0x357C 0x68A3
+0x357D 0x68AC
+0x357E 0x68A9
+0x3621 0x6875
+0x3622 0x6874
+0x3623 0x68B2
+0x3624 0x688F
+0x3625 0x6877
+0x3626 0x6892
+0x3627 0x687C
+0x3628 0x686B
+0x3629 0x6872
+0x362A 0x68AA
+0x362B 0x6880
+0x362C 0x6871
+0x362D 0x687E
+0x362E 0x689B
+0x362F 0x6896
+0x3630 0x688B
+0x3631 0x68A0
+0x3632 0x6889
+0x3633 0x68A4
+0x3634 0x6878
+0x3635 0x687B
+0x3636 0x6891
+0x3637 0x688C
+0x3638 0x688A
+0x3639 0x687D
+0x363A 0x6B36
+0x363B 0x6B33
+0x363C-0x363D 0x6B37
+0x363E 0x6B91
+0x363F 0x6B8F
+0x3640-0x3641 0x6B8D
+0x3642 0x6B8C
+0x3643 0x6C2A
+0x3644 0x6DC0
+0x3645 0x6DAB
+0x3646 0x6DB4
+0x3647 0x6DB3
+0x3648 0x6E74
+0x3649 0x6DAC
+0x364A 0x6DE9
+0x364B 0x6DE2
+0x364C 0x6DB7
+0x364D 0x6DF6
+0x364E 0x6DD4
+0x364F 0x6E00
+0x3650 0x6DC8
+0x3651 0x6DE0
+0x3652 0x6DDF
+0x3653 0x6DD6
+0x3654 0x6DBE
+0x3655 0x6DE5
+0x3656-0x3657 0x6DDC
+0x3658 0x6DDB
+0x3659 0x6DF4
+0x365A 0x6DCA
+0x365B 0x6DBD
+0x365C 0x6DED
+0x365D 0x6DF0
+0x365E 0x6DBA
+0x365F 0x6DD5
+0x3660 0x6DC2
+0x3661 0x6DCF
+0x3662 0x6DC9
+0x3663 0x6DD0
+0x3664 0x6DF2
+0x3665 0x6DD3
+0x3666 0x6DFD
+0x3667 0x6DD7
+0x3668 0x6DCD
+0x3669 0x6DE3
+0x366A 0x6DBB
+0x366B 0x70FA
+0x366C 0x710D
+0x366D 0x70F7
+0x366E 0x7117
+0x366F 0x70F4
+0x3670 0x710C
+0x3671 0x70F0
+0x3672 0x7104
+0x3673 0x70F3
+0x3674 0x7110
+0x3675 0x70FC
+0x3676 0x70FF
+0x3677 0x7106
+0x3678 0x7113
+0x3679 0x7100
+0x367A 0x70F8
+0x367B 0x70F6
+0x367C 0x710B
+0x367D 0x7102
+0x367E 0x710E
+0x3721 0x727E
+0x3722-0x3723 0x727B
+0x3724 0x727F
+0x3725 0x731D
+0x3726 0x7317
+0x3727 0x7307
+0x3728 0x7311
+0x3729 0x7318
+0x372A 0x730A
+0x372B 0x7308
+0x372C 0x72FF
+0x372D 0x730F
+0x372E 0x731E
+0x372F 0x7388
+0x3730 0x73F6
+0x3731 0x73F8
+0x3732 0x73F5
+0x3733 0x7404
+0x3734 0x7401
+0x3735 0x73FD
+0x3736 0x7407
+0x3737 0x7400
+0x3738 0x73FA
+0x3739 0x73FC
+0x373A 0x73FF
+0x373B 0x740C
+0x373C 0x740B
+0x373D 0x73F4
+0x373E 0x7408
+0x373F 0x7564
+0x3740 0x7563
+0x3741 0x75CE
+0x3742 0x75D2
+0x3743 0x75CF
+0x3744-0x3745 0x75CB
+0x3746 0x75D1
+0x3747 0x75D0
+0x3748 0x768F
+0x3749 0x7689
+0x374A 0x76D3
+0x374B 0x7739
+0x374C 0x772F
+0x374D 0x772D
+0x374E-0x374F 0x7731
+0x3750 0x7734
+0x3751 0x7733
+0x3752 0x773D
+0x3753 0x7725
+0x3754 0x773B
+0x3755 0x7735
+0x3756 0x7848
+0x3757 0x7852
+0x3758 0x7849
+0x3759 0x784D
+0x375A 0x784A
+0x375B 0x784C
+0x375C 0x7826
+0x375D 0x7845
+0x375E 0x7850
+0x375F 0x7964
+0x3760 0x7967
+0x3761-0x3762 0x7969
+0x3763 0x7963
+0x3764 0x796B
+0x3765 0x7961
+0x3766 0x79BB
+0x3767 0x79FA
+0x3768 0x79F8
+0x3769-0x376A 0x79F6
+0x376B 0x7A8F
+0x376C 0x7A94
+0x376D 0x7A90
+0x376E 0x7B35
+0x376F 0x7B3B
+0x3770 0x7B34
+0x3771 0x7B25
+0x3772 0x7B30
+0x3773 0x7B22
+0x3774 0x7B24
+0x3775 0x7B33
+0x3776 0x7B18
+0x3777 0x7B2A
+0x3778 0x7B1D
+0x3779 0x7B31
+0x377A 0x7B2B
+0x377B 0x7B2D
+0x377C 0x7B2F
+0x377D 0x7B32
+0x377E 0x7B38
+0x3821 0x7B1A
+0x3822 0x7B23
+0x3823 0x7C94
+0x3824 0x7C98
+0x3825 0x7C96
+0x3826 0x7CA3
+0x3827 0x7D35
+0x3828 0x7D3D
+0x3829 0x7D38
+0x382A 0x7D36
+0x382B 0x7D3A
+0x382C 0x7D45
+0x382D 0x7D2C
+0x382E 0x7D29
+0x382F 0x7D41
+0x3830 0x7D47
+0x3831-0x3832 0x7D3E
+0x3833 0x7D4A
+0x3834 0x7D3B
+0x3835 0x7D28
+0x3836 0x7F63
+0x3837 0x7F95
+0x3838-0x3839 0x7F9C
+0x383A 0x7F9B
+0x383B-0x383C 0x7FCA
+0x383D 0x7FCD
+0x383E-0x383F 0x7FD0
+0x3840 0x7FC7
+0x3841 0x7FCF
+0x3842 0x7FC9
+0x3843 0x801F
+0x3844 0x801E
+0x3845 0x801B
+0x3846 0x8047
+0x3847 0x8043
+0x3848 0x8048
+0x3849 0x8118
+0x384A 0x8125
+0x384B 0x8119
+0x384C 0x811B
+0x384D 0x812D
+0x384E 0x811F
+0x384F 0x812C
+0x3850 0x811E
+0x3851 0x8121
+0x3852 0x8115
+0x3853 0x8127
+0x3854 0x811D
+0x3855 0x8122
+0x3856 0x8211
+0x3857 0x8238
+0x3858 0x8233
+0x3859 0x823A
+0x385A 0x8234
+0x385B 0x8232
+0x385C 0x8274
+0x385D 0x8390
+0x385E 0x83A3
+0x385F 0x83A8
+0x3860 0x838D
+0x3861 0x837A
+0x3862 0x8373
+0x3863 0x83A4
+0x3864 0x8374
+0x3865 0x838F
+0x3866 0x8381
+0x3867 0x8395
+0x3868 0x8399
+0x3869 0x8375
+0x386A 0x8394
+0x386B 0x83A9
+0x386C 0x837D
+0x386D 0x8383
+0x386E 0x838C
+0x386F 0x839D
+0x3870 0x839B
+0x3871 0x83AA
+0x3872 0x838B
+0x3873 0x837E
+0x3874 0x83A5
+0x3875 0x83AF
+0x3876 0x8388
+0x3877 0x8397
+0x3878 0x83B0
+0x3879 0x837F
+0x387A 0x83A6
+0x387B 0x8387
+0x387C 0x83AE
+0x387D 0x8376
+0x387E 0x8659
+0x3921 0x8656
+0x3922 0x86BF
+0x3923 0x86B7
+0x3924 0x86C2
+0x3925 0x86C1
+0x3926 0x86C5
+0x3927 0x86BA
+0x3928 0x86B0
+0x3929 0x86C8
+0x392A 0x86B9
+0x392B 0x86B3
+0x392C 0x86B8
+0x392D 0x86CC
+0x392E 0x86B4
+0x392F-0x3930 0x86BB
+0x3931 0x86C3
+0x3932-0x3933 0x86BD
+0x3934 0x8852
+0x3935 0x8889
+0x3936 0x8895
+0x3937 0x88A8
+0x3938 0x88A2
+0x3939 0x88AA
+0x393A 0x889A
+0x393B 0x8891
+0x393C 0x88A1
+0x393D 0x889F
+0x393E 0x8898
+0x393F 0x88A7
+0x3940 0x8899
+0x3941 0x889B
+0x3942 0x8897
+0x3943 0x88A4
+0x3944 0x88AC
+0x3945 0x888C
+0x3946 0x8893
+0x3947 0x888E
+0x3948 0x8982
+0x3949 0x89D6
+0x394A 0x89D9
+0x394B 0x89D5
+0x394C 0x8A30
+0x394D 0x8A27
+0x394E 0x8A2C
+0x394F 0x8A1E
+0x3950 0x8C39
+0x3951 0x8C3B
+0x3952-0x3953 0x8C5C
+0x3954 0x8C7D
+0x3955 0x8CA5
+0x3956 0x8D7D
+0x3957 0x8D7B
+0x3958 0x8D79
+0x3959 0x8DBC
+0x395A 0x8DC2
+0x395B 0x8DB9
+0x395C 0x8DBF
+0x395D 0x8DC1
+0x395E 0x8ED8
+0x395F 0x8EDE
+0x3960 0x8EDD
+0x3961 0x8EDC
+0x3962 0x8ED7
+0x3963-0x3964 0x8EE0
+0x3965 0x9024
+0x3966 0x900B
+0x3967 0x9011
+0x3968 0x901C
+0x3969 0x900C
+0x396A 0x9021
+0x396B 0x90EF
+0x396C 0x90EA
+0x396D 0x90F0
+0x396E 0x90F4
+0x396F-0x3970 0x90F2
+0x3971 0x90D4
+0x3972-0x3973 0x90EB
+0x3974 0x90E9
+0x3975 0x9156
+0x3976 0x9158
+0x3977 0x915A
+0x3978 0x9153
+0x3979 0x9155
+0x397A 0x91EC
+0x397B 0x91F4
+0x397C 0x91F1
+0x397D 0x91F3
+0x397E 0x91F8
+0x3A21 0x91E4
+0x3A22 0x91F9
+0x3A23-0x3A24 0x91EA
+0x3A25 0x91F7
+0x3A26 0x91E8
+0x3A27 0x91EE
+0x3A28 0x957A
+0x3A29 0x9586
+0x3A2A 0x9588
+0x3A2B 0x967C
+0x3A2C 0x966D
+0x3A2D 0x966B
+0x3A2E 0x9671
+0x3A2F 0x966F
+0x3A30 0x96BF
+0x3A31 0x976A
+0x3A32 0x9804
+0x3A33 0x98E5
+0x3A34 0x9997
+0x3A35 0x509B
+0x3A36 0x5095
+0x3A37 0x5094
+0x3A38 0x509E
+0x3A39 0x508B
+0x3A3A 0x50A3
+0x3A3B 0x5083
+0x3A3C 0x508C
+0x3A3D 0x508E
+0x3A3E 0x509D
+0x3A3F 0x5068
+0x3A40 0x509C
+0x3A41 0x5092
+0x3A42 0x5082
+0x3A43 0x5087
+0x3A44 0x515F
+0x3A45 0x51D4
+0x3A46 0x5312
+0x3A47 0x5311
+0x3A48 0x53A4
+0x3A49 0x53A7
+0x3A4A 0x5591
+0x3A4B 0x55A8
+0x3A4C 0x55A5
+0x3A4D 0x55AD
+0x3A4E 0x5577
+0x3A4F 0x5645
+0x3A50 0x55A2
+0x3A51 0x5593
+0x3A52 0x5588
+0x3A53 0x558F
+0x3A54 0x55B5
+0x3A55 0x5581
+0x3A56 0x55A3
+0x3A57 0x5592
+0x3A58 0x55A4
+0x3A59 0x557D
+0x3A5A 0x558C
+0x3A5B 0x55A6
+0x3A5C 0x557F
+0x3A5D 0x5595
+0x3A5E 0x55A1
+0x3A5F 0x558E
+0x3A60 0x570C
+0x3A61 0x5829
+0x3A62 0x5837
+0x3A63 0x5819
+0x3A64 0x581E
+0x3A65 0x5827
+0x3A66 0x5823
+0x3A67 0x5828
+0x3A68 0x57F5
+0x3A69 0x5848
+0x3A6A 0x5825
+0x3A6B 0x581C
+0x3A6C 0x581B
+0x3A6D 0x5833
+0x3A6E 0x583F
+0x3A6F 0x5836
+0x3A70 0x582E
+0x3A71 0x5839
+0x3A72 0x5838
+0x3A73 0x582D
+0x3A74 0x582C
+0x3A75 0x583B
+0x3A76 0x5961
+0x3A77 0x5AAF
+0x3A78 0x5A94
+0x3A79 0x5A9F
+0x3A7A 0x5A7A
+0x3A7B 0x5AA2
+0x3A7C 0x5A9E
+0x3A7D 0x5A78
+0x3A7E 0x5AA6
+0x3B21 0x5A7C
+0x3B22 0x5AA5
+0x3B23 0x5AAC
+0x3B24 0x5A95
+0x3B25 0x5AAE
+0x3B26 0x5A37
+0x3B27 0x5A84
+0x3B28 0x5A8A
+0x3B29 0x5A97
+0x3B2A 0x5A83
+0x3B2B 0x5A8B
+0x3B2C 0x5AA9
+0x3B2D 0x5A7B
+0x3B2E 0x5A7D
+0x3B2F 0x5A8C
+0x3B30 0x5A9C
+0x3B31 0x5A8F
+0x3B32 0x5A93
+0x3B33 0x5A9D
+0x3B34 0x5BEA
+0x3B35 0x5BCD
+0x3B36 0x5BCB
+0x3B37 0x5BD4
+0x3B38 0x5BD1
+0x3B39 0x5BCA
+0x3B3A 0x5BCE
+0x3B3B 0x5C0C
+0x3B3C 0x5C30
+0x3B3D 0x5D37
+0x3B3E 0x5D43
+0x3B3F 0x5D6B
+0x3B40 0x5D41
+0x3B41 0x5D4B
+0x3B42 0x5D3F
+0x3B43 0x5D35
+0x3B44 0x5D51
+0x3B45 0x5D4E
+0x3B46 0x5D55
+0x3B47 0x5D33
+0x3B48 0x5D3A
+0x3B49 0x5D52
+0x3B4A 0x5D3D
+0x3B4B 0x5D31
+0x3B4C 0x5D59
+0x3B4D 0x5D42
+0x3B4E 0x5D39
+0x3B4F 0x5D49
+0x3B50 0x5D38
+0x3B51 0x5D3C
+0x3B52 0x5D32
+0x3B53 0x5D36
+0x3B54 0x5D40
+0x3B55 0x5D45
+0x3B56 0x5E44
+0x3B57 0x5E41
+0x3B58 0x5F58
+0x3B59 0x5FA6
+0x3B5A 0x5FA5
+0x3B5B 0x5FAB
+0x3B5C 0x60C9
+0x3B5D 0x60B9
+0x3B5E 0x60CC
+0x3B5F 0x60E2
+0x3B60 0x60CE
+0x3B61 0x60C4
+0x3B62 0x6114
+0x3B63 0x60F2
+0x3B64 0x610A
+0x3B65 0x6116
+0x3B66 0x6105
+0x3B67 0x60F5
+0x3B68 0x6113
+0x3B69 0x60F8
+0x3B6A 0x60FC
+0x3B6B 0x60FE
+0x3B6C 0x60C1
+0x3B6D 0x6103
+0x3B6E 0x6118
+0x3B6F 0x611D
+0x3B70 0x6110
+0x3B71 0x60FF
+0x3B72 0x6104
+0x3B73 0x610B
+0x3B74 0x624A
+0x3B75 0x6394
+0x3B76 0x63B1
+0x3B77 0x63B0
+0x3B78 0x63CE
+0x3B79 0x63E5
+0x3B7A 0x63E8
+0x3B7B 0x63EF
+0x3B7C 0x63C3
+0x3B7D 0x649D
+0x3B7E 0x63F3
+0x3C21 0x63CA
+0x3C22 0x63E0
+0x3C23 0x63F6
+0x3C24 0x63D5
+0x3C25 0x63F2
+0x3C26 0x63F5
+0x3C27 0x6461
+0x3C28 0x63DF
+0x3C29 0x63BE
+0x3C2A 0x63DD
+0x3C2B 0x63DC
+0x3C2C 0x63C4
+0x3C2D 0x63D8
+0x3C2E 0x63D3
+0x3C2F 0x63C2
+0x3C30 0x63C7
+0x3C31 0x63CC
+0x3C32 0x63CB
+0x3C33 0x63C8
+0x3C34 0x63F0
+0x3C35 0x63D7
+0x3C36 0x63D9
+0x3C37 0x6532
+0x3C38 0x6567
+0x3C39 0x656A
+0x3C3A 0x6564
+0x3C3B 0x655C
+0x3C3C 0x6568
+0x3C3D 0x6565
+0x3C3E 0x658C
+0x3C3F-0x3C40 0x659D
+0x3C41 0x65AE
+0x3C42 0x65D0
+0x3C43 0x65D2
+0x3C44 0x667C
+0x3C45 0x666C
+0x3C46 0x667B
+0x3C47 0x6680
+0x3C48 0x6671
+0x3C49 0x6679
+0x3C4A 0x666A
+0x3C4B 0x6672
+0x3C4C 0x6701
+0x3C4D 0x690C
+0x3C4E 0x68D3
+0x3C4F 0x6904
+0x3C50 0x68DC
+0x3C51 0x692A
+0x3C52 0x68EC
+0x3C53 0x68EA
+0x3C54 0x68F1
+0x3C55 0x690F
+0x3C56 0x68D6
+0x3C57 0x68F7
+0x3C58 0x68EB
+0x3C59 0x68E4
+0x3C5A 0x68F6
+0x3C5B 0x6913
+0x3C5C 0x6910
+0x3C5D 0x68F3
+0x3C5E 0x68E1
+0x3C5F 0x6907
+0x3C60 0x68CC
+0x3C61 0x6908
+0x3C62 0x6970
+0x3C63 0x68B4
+0x3C64 0x6911
+0x3C65 0x68EF
+0x3C66 0x68C6
+0x3C67 0x6914
+0x3C68 0x68F8
+0x3C69 0x68D0
+0x3C6A 0x68FD
+0x3C6B 0x68FC
+0x3C6C 0x68E8
+0x3C6D 0x690B
+0x3C6E 0x690A
+0x3C6F 0x6917
+0x3C70 0x68CE
+0x3C71 0x68C8
+0x3C72-0x3C73 0x68DD
+0x3C74 0x68E6
+0x3C75 0x68F4
+0x3C76 0x68D1
+0x3C77 0x6906
+0x3C78 0x68D4
+0x3C79 0x68E9
+0x3C7A 0x6915
+0x3C7B 0x6925
+0x3C7C 0x68C7
+0x3C7D 0x6B39
+0x3C7E 0x6B3B
+0x3D21 0x6B3F
+0x3D22 0x6B3C
+0x3D23 0x6B94
+0x3D24 0x6B97
+0x3D25 0x6B99
+0x3D26 0x6B95
+0x3D27 0x6BBD
+0x3D28 0x6BF0
+0x3D29-0x3D2A 0x6BF2
+0x3D2B 0x6C30
+0x3D2C 0x6DFC
+0x3D2D-0x3D2E 0x6E46
+0x3D2F 0x6E1F
+0x3D30 0x6E49
+0x3D31 0x6E88
+0x3D32-0x3D33 0x6E3C
+0x3D34 0x6E45
+0x3D35 0x6E62
+0x3D36 0x6E2B
+0x3D37 0x6E3F
+0x3D38 0x6E41
+0x3D39 0x6E5D
+0x3D3A 0x6E73
+0x3D3B 0x6E1C
+0x3D3C 0x6E33
+0x3D3D 0x6E4B
+0x3D3E 0x6E40
+0x3D3F 0x6E51
+0x3D40 0x6E3B
+0x3D41 0x6E03
+0x3D42 0x6E2E
+0x3D43 0x6E5E
+0x3D44 0x6E68
+0x3D45 0x6E5C
+0x3D46 0x6E61
+0x3D47 0x6E31
+0x3D48 0x6E28
+0x3D49 0x6E60
+0x3D4A 0x6E71
+0x3D4B 0x6E6B
+0x3D4C 0x6E39
+0x3D4D 0x6E22
+0x3D4E 0x6E30
+0x3D4F 0x6E53
+0x3D50 0x6E65
+0x3D51 0x6E27
+0x3D52 0x6E78
+0x3D53 0x6E64
+0x3D54 0x6E77
+0x3D55 0x6E55
+0x3D56 0x6E79
+0x3D57 0x6E52
+0x3D58 0x6E66
+0x3D59-0x3D5A 0x6E35
+0x3D5B 0x6E5A
+0x3D5C 0x7120
+0x3D5D 0x711E
+0x3D5E 0x712F
+0x3D5F 0x70FB
+0x3D60 0x712E
+0x3D61 0x7131
+0x3D62 0x7123
+0x3D63 0x7125
+0x3D64 0x7122
+0x3D65 0x7132
+0x3D66 0x711F
+0x3D67 0x7128
+0x3D68 0x713A
+0x3D69 0x711B
+0x3D6A 0x724B
+0x3D6B 0x725A
+0x3D6C-0x3D6D 0x7288
+0x3D6E 0x7286
+0x3D6F 0x7285
+0x3D70 0x728B
+0x3D71 0x7312
+0x3D72 0x730B
+0x3D73 0x7330
+0x3D74 0x7322
+0x3D75 0x7331
+0x3D76 0x7333
+0x3D77 0x7327
+0x3D78 0x7332
+0x3D79 0x732D
+0x3D7A 0x7326
+0x3D7B 0x7323
+0x3D7C 0x7335
+0x3D7D 0x730C
+0x3D7E 0x742E
+0x3E21 0x742C
+0x3E22 0x7430
+0x3E23 0x742B
+0x3E24 0x7416
+0x3E25 0x741A
+0x3E26 0x7421
+0x3E27 0x742D
+0x3E28 0x7431
+0x3E29 0x7424
+0x3E2A 0x7423
+0x3E2B 0x741D
+0x3E2C 0x7429
+0x3E2D 0x7420
+0x3E2E 0x7432
+0x3E2F 0x74FB
+0x3E30 0x752F
+0x3E31 0x756F
+0x3E32 0x756C
+0x3E33 0x75E7
+0x3E34 0x75DA
+0x3E35 0x75E1
+0x3E36 0x75E6
+0x3E37 0x75DD
+0x3E38 0x75DF
+0x3E39 0x75E4
+0x3E3A 0x75D7
+0x3E3B 0x7695
+0x3E3C 0x7692
+0x3E3D 0x76DA
+0x3E3E-0x3E3F 0x7746
+0x3E40 0x7744
+0x3E41 0x774D
+0x3E42 0x7745
+0x3E43 0x774A
+0x3E44 0x774E
+0x3E45-0x3E46 0x774B
+0x3E47 0x77DE
+0x3E48 0x77EC
+0x3E49 0x7860
+0x3E4A-0x3E4B 0x7864
+0x3E4C 0x785C
+0x3E4D 0x786D
+0x3E4E 0x7871
+0x3E4F 0x786A
+0x3E50 0x786E
+0x3E51 0x7870
+0x3E52 0x7869
+0x3E53 0x7868
+0x3E54 0x785E
+0x3E55 0x7862
+0x3E56 0x7974
+0x3E57 0x7973
+0x3E58 0x7972
+0x3E59 0x7970
+0x3E5A 0x7A02
+0x3E5B 0x7A0A
+0x3E5C 0x7A03
+0x3E5D 0x7A0C
+0x3E5E 0x7A04
+0x3E5F 0x7A99
+0x3E60 0x7AE6
+0x3E61 0x7AE4
+0x3E62 0x7B4A
+0x3E63 0x7B47
+0x3E64 0x7B44
+0x3E65 0x7B48
+0x3E66 0x7B4C
+0x3E67 0x7B4E
+0x3E68 0x7B40
+0x3E69 0x7B58
+0x3E6A 0x7B45
+0x3E6B 0x7CA2
+0x3E6C 0x7C9E
+0x3E6D 0x7CA8
+0x3E6E 0x7CA1
+0x3E6F 0x7D58
+0x3E70 0x7D6F
+0x3E71 0x7D63
+0x3E72 0x7D53
+0x3E73 0x7D56
+0x3E74 0x7D67
+0x3E75 0x7D6A
+0x3E76 0x7D4F
+0x3E77 0x7D6D
+0x3E78 0x7D5C
+0x3E79 0x7D6B
+0x3E7A 0x7D52
+0x3E7B 0x7D54
+0x3E7C 0x7D69
+0x3E7D 0x7D51
+0x3E7E 0x7D5F
+0x3F21 0x7D4E
+0x3F22-0x3F23 0x7F3E
+0x3F24-0x3F25 0x7F65
+0x3F26 0x7FA2
+0x3F27-0x3F28 0x7FA0
+0x3F29 0x7FD7
+0x3F2A 0x8051
+0x3F2B-0x3F2C 0x804F
+0x3F2D 0x80FE
+0x3F2E 0x80D4
+0x3F2F 0x8143
+0x3F30 0x814A
+0x3F31 0x8152
+0x3F32 0x814F
+0x3F33 0x8147
+0x3F34 0x813D
+0x3F35 0x814D
+0x3F36 0x813A
+0x3F37 0x81E6
+0x3F38 0x81EE
+0x3F39-0x3F3B 0x81F7
+0x3F3C 0x8204
+0x3F3D-0x3F3E 0x823C
+0x3F3F 0x823F
+0x3F40 0x8275
+0x3F41 0x833B
+0x3F42 0x83CF
+0x3F43 0x83F9
+0x3F44 0x8423
+0x3F45 0x83C0
+0x3F46 0x83E8
+0x3F47 0x8412
+0x3F48 0x83E7
+0x3F49 0x83E4
+0x3F4A 0x83FC
+0x3F4B 0x83F6
+0x3F4C 0x8410
+0x3F4D 0x83C6
+0x3F4E 0x83C8
+0x3F4F 0x83EB
+0x3F50 0x83E3
+0x3F51 0x83BF
+0x3F52 0x8401
+0x3F53 0x83DD
+0x3F54 0x83E5
+0x3F55 0x83D8
+0x3F56 0x83FF
+0x3F57 0x83E1
+0x3F58 0x83CB
+0x3F59 0x83CE
+0x3F5A 0x83D6
+0x3F5B 0x83F5
+0x3F5C 0x83C9
+0x3F5D 0x8409
+0x3F5E 0x840F
+0x3F5F 0x83DE
+0x3F60 0x8411
+0x3F61 0x8406
+0x3F62 0x83C2
+0x3F63 0x83F3
+0x3F64 0x83D5
+0x3F65 0x83FA
+0x3F66 0x83C7
+0x3F67 0x83D1
+0x3F68 0x83EA
+0x3F69 0x8413
+0x3F6A 0x839A
+0x3F6B 0x83C3
+0x3F6C 0x83EC
+0x3F6D 0x83EE
+0x3F6E 0x83C4
+0x3F6F 0x83FB
+0x3F70 0x83D7
+0x3F71 0x83E2
+0x3F72 0x841B
+0x3F73 0x83DB
+0x3F74 0x83FE
+0x3F75 0x86D8
+0x3F76 0x86E2
+0x3F77 0x86E6
+0x3F78 0x86D3
+0x3F79 0x86E3
+0x3F7A 0x86DA
+0x3F7B 0x86EA
+0x3F7C 0x86DD
+0x3F7D 0x86EB
+0x3F7E 0x86DC
+0x4021 0x86EC
+0x4022 0x86E9
+0x4023 0x86D7
+0x4024 0x86E8
+0x4025 0x86D1
+0x4026 0x8848
+0x4027 0x8856
+0x4028 0x8855
+0x4029 0x88BA
+0x402A 0x88D7
+0x402B 0x88B9
+0x402C 0x88B8
+0x402D 0x88C0
+0x402E 0x88BE
+0x402F 0x88B6
+0x4030 0x88BC
+0x4031 0x88B7
+0x4032 0x88BD
+0x4033 0x88B2
+0x4034 0x8901
+0x4035 0x88C9
+0x4036 0x8995
+0x4037 0x8998
+0x4038 0x8997
+0x4039 0x89DD
+0x403A-0x403B 0x89DA
+0x403C 0x8A4E
+0x403D 0x8A4D
+0x403E 0x8A39
+0x403F 0x8A59
+0x4040 0x8A40
+0x4041-0x4042 0x8A57
+0x4043-0x4044 0x8A44
+0x4045 0x8A52
+0x4046 0x8A48
+0x4047 0x8A51
+0x4048 0x8A4A
+0x4049 0x8A4C
+0x404A 0x8A4F
+0x404B 0x8C5F
+0x404C 0x8C81
+0x404D 0x8C80
+0x404E 0x8CBA
+0x404F 0x8CBE
+0x4050 0x8CB0
+0x4051 0x8CB9
+0x4052 0x8CB5
+0x4053 0x8D84
+0x4054 0x8D80
+0x4055 0x8D89
+0x4056 0x8DD8
+0x4057 0x8DD3
+0x4058 0x8DCD
+0x4059 0x8DC7
+0x405A 0x8DD6
+0x405B 0x8DDC
+0x405C 0x8DCF
+0x405D 0x8DD5
+0x405E 0x8DD9
+0x405F 0x8DC8
+0x4060 0x8DD7
+0x4061 0x8DC5
+0x4062 0x8EEF
+0x4063 0x8EF7
+0x4064 0x8EFA
+0x4065 0x8EF9
+0x4066 0x8EE6
+0x4067 0x8EEE
+0x4068 0x8EE5
+0x4069 0x8EF5
+0x406A-0x406B 0x8EE7
+0x406C 0x8EF6
+0x406D 0x8EEB
+0x406E 0x8EF1
+0x406F 0x8EEC
+0x4070 0x8EF4
+0x4071 0x8EE9
+0x4072 0x902D
+0x4073 0x9034
+0x4074 0x902F
+0x4075 0x9106
+0x4076 0x912C
+0x4077 0x9104
+0x4078 0x90FF
+0x4079 0x90FC
+0x407A 0x9108
+0x407B 0x90F9
+0x407C 0x90FB
+0x407D 0x9101
+0x407E 0x9100
+0x4121 0x9107
+0x4122 0x9105
+0x4123 0x9103
+0x4124 0x9161
+0x4125 0x9164
+0x4126 0x915F
+0x4127 0x9162
+0x4128 0x9160
+0x4129 0x9201
+0x412A 0x920A
+0x412B 0x9225
+0x412C 0x9203
+0x412D 0x921A
+0x412E 0x9226
+0x412F 0x920F
+0x4130 0x920C
+0x4131 0x9200
+0x4132 0x9212
+0x4133 0x91FF
+0x4134 0x91FD
+0x4135 0x9206
+0x4136 0x9204
+0x4137 0x9227
+0x4138 0x9202
+0x4139 0x921C
+0x413A 0x9224
+0x413B 0x9219
+0x413C 0x9217
+0x413D 0x9205
+0x413E 0x9216
+0x413F 0x957B
+0x4140 0x958D
+0x4141 0x958C
+0x4142 0x9590
+0x4143 0x9687
+0x4144 0x967E
+0x4145-0x4146 0x9688
+0x4147 0x9683
+0x4148 0x9680
+0x4149 0x96C2
+0x414A 0x96C8
+0x414B 0x96C3
+0x414C 0x96F1
+0x414D 0x96F0
+0x414E 0x976C
+0x414F 0x9770
+0x4150 0x976E
+0x4151 0x9807
+0x4152 0x98A9
+0x4153 0x98EB
+0x4154 0x9CE6
+0x4155 0x9EF9
+0x4156-0x4157 0x4E83
+0x4158 0x4EB6
+0x4159 0x50BD
+0x415A 0x50BF
+0x415B 0x50C6
+0x415C 0x50AE
+0x415D 0x50C4
+0x415E 0x50CA
+0x415F 0x50B4
+0x4160 0x50C8
+0x4161 0x50C2
+0x4162 0x50B0
+0x4163 0x50C1
+0x4164 0x50BA
+0x4165 0x50B1
+0x4166 0x50CB
+0x4167 0x50C9
+0x4168 0x50B6
+0x4169 0x50B8
+0x416A 0x51D7
+0x416B 0x527A
+0x416C 0x5278
+0x416D-0x416E 0x527B
+0x416F 0x55C3
+0x4170 0x55DB
+0x4171 0x55CC
+0x4172 0x55D0
+0x4173 0x55CB
+0x4174 0x55CA
+0x4175 0x55DD
+0x4176 0x55C0
+0x4177 0x55D4
+0x4178 0x55C4
+0x4179 0x55E9
+0x417A 0x55BF
+0x417B 0x55D2
+0x417C 0x558D
+0x417D 0x55CF
+0x417E 0x55D5
+0x4221 0x55E2
+0x4222 0x55D6
+0x4223 0x55C8
+0x4224 0x55F2
+0x4225 0x55CD
+0x4226 0x55D9
+0x4227 0x55C2
+0x4228 0x5714
+0x4229 0x5853
+0x422A 0x5868
+0x422B 0x5864
+0x422C 0x584F
+0x422D 0x584D
+0x422E 0x5849
+0x422F 0x586F
+0x4230 0x5855
+0x4231 0x584E
+0x4232 0x585D
+0x4233 0x5859
+0x4234 0x5865
+0x4235 0x585B
+0x4236 0x583D
+0x4237 0x5863
+0x4238 0x5871
+0x4239 0x58FC
+0x423A 0x5AC7
+0x423B 0x5AC4
+0x423C 0x5ACB
+0x423D 0x5ABA
+0x423E 0x5AB8
+0x423F 0x5AB1
+0x4240 0x5AB5
+0x4241 0x5AB0
+0x4242 0x5ABF
+0x4243 0x5AC8
+0x4244 0x5ABB
+0x4245 0x5AC6
+0x4246 0x5AB7
+0x4247 0x5AC0
+0x4248 0x5ACA
+0x4249 0x5AB4
+0x424A 0x5AB6
+0x424B 0x5ACD
+0x424C 0x5AB9
+0x424D 0x5A90
+0x424E 0x5BD6
+0x424F-0x4250 0x5BD8
+0x4251 0x5C1F
+0x4252 0x5C33
+0x4253 0x5D71
+0x4254 0x5D63
+0x4255 0x5D4A
+0x4256 0x5D65
+0x4257 0x5D72
+0x4258 0x5D6C
+0x4259 0x5D5E
+0x425A 0x5D68
+0x425B 0x5D67
+0x425C 0x5D62
+0x425D 0x5DF0
+0x425E 0x5E4F
+0x425F 0x5E4E
+0x4260 0x5E4A
+0x4261 0x5E4D
+0x4262 0x5E4B
+0x4263 0x5EC5
+0x4264 0x5ECC
+0x4265 0x5EC6
+0x4266 0x5ECB
+0x4267 0x5EC7
+0x4268 0x5F40
+0x4269 0x5FAF
+0x426A 0x5FAD
+0x426B 0x60F7
+0x426C-0x426D 0x6149
+0x426E 0x612B
+0x426F 0x6145
+0x4270 0x6136
+0x4271 0x6132
+0x4272 0x612E
+0x4273 0x6146
+0x4274 0x612F
+0x4275 0x614F
+0x4276 0x6129
+0x4277 0x6140
+0x4278 0x6220
+0x4279 0x9168
+0x427A 0x6223
+0x427B 0x6225
+0x427C 0x6224
+0x427D 0x63C5
+0x427E 0x63F1
+0x4321 0x63EB
+0x4322 0x6410
+0x4323 0x6412
+0x4324 0x6409
+0x4325 0x6420
+0x4326 0x6424
+0x4327 0x6433
+0x4328 0x6443
+0x4329 0x641F
+0x432A 0x6415
+0x432B 0x6418
+0x432C 0x6439
+0x432D 0x6437
+0x432E-0x432F 0x6422
+0x4330 0x640C
+0x4331 0x6426
+0x4332 0x6430
+0x4333 0x6428
+0x4334 0x6441
+0x4335 0x6435
+0x4336 0x642F
+0x4337 0x640A
+0x4338 0x641A
+0x4339 0x6440
+0x433A 0x6425
+0x433B 0x6427
+0x433C 0x640B
+0x433D 0x63E7
+0x433E 0x641B
+0x433F 0x642E
+0x4340 0x6421
+0x4341 0x640E
+0x4342 0x656F
+0x4343 0x6592
+0x4344 0x65D3
+0x4345 0x6686
+0x4346 0x668C
+0x4347 0x6695
+0x4348 0x6690
+0x4349 0x668B
+0x434A 0x668A
+0x434B 0x6699
+0x434C 0x6694
+0x434D 0x6678
+0x434E 0x6720
+0x434F 0x6966
+0x4350 0x695F
+0x4351 0x6938
+0x4352 0x694E
+0x4353 0x6962
+0x4354 0x6971
+0x4355 0x693F
+0x4356 0x6945
+0x4357 0x696A
+0x4358 0x6939
+0x4359 0x6942
+0x435A 0x6957
+0x435B 0x6959
+0x435C 0x697A
+0x435D-0x435E 0x6948
+0x435F 0x6935
+0x4360 0x696C
+0x4361 0x6933
+0x4362 0x693D
+0x4363 0x6965
+0x4364 0x68F0
+0x4365 0x6978
+0x4366 0x6934
+0x4367 0x6969
+0x4368 0x6940
+0x4369 0x696F
+0x436A 0x6944
+0x436B 0x6976
+0x436C 0x6958
+0x436D 0x6941
+0x436E 0x6974
+0x436F 0x694C
+0x4370 0x693B
+0x4371 0x694B
+0x4372 0x6937
+0x4373 0x695C
+0x4374 0x694F
+0x4375 0x6951
+0x4376 0x6932
+0x4377 0x6952
+0x4378 0x692F
+0x4379 0x697B
+0x437A 0x693C
+0x437B 0x6B46
+0x437C 0x6B45
+0x437D 0x6B43
+0x437E 0x6B42
+0x4421 0x6B48
+0x4422 0x6B41
+0x4423 0x6B9B
+0x4424-0x4425 0x6BFB
+0x4426 0x6BF9
+0x4427-0x4428 0x6BF7
+0x4429 0x6E9B
+0x442A 0x6ED6
+0x442B 0x6EC8
+0x442C 0x6E8F
+0x442D 0x6EC0
+0x442E 0x6E9F
+0x442F-0x4430 0x6E93
+0x4431 0x6EA0
+0x4432 0x6EB1
+0x4433 0x6EB9
+0x4434 0x6EC6
+0x4435 0x6ED2
+0x4436 0x6EBD
+0x4437 0x6EC1
+0x4438 0x6E9E
+0x4439 0x6EC9
+0x443A 0x6EB7
+0x443B 0x6EB0
+0x443C 0x6ECD
+0x443D 0x6EA6
+0x443E 0x6ECF
+0x443F 0x6EB2
+0x4440 0x6EBE
+0x4441 0x6EC3
+0x4442 0x6EDC
+0x4443 0x6ED8
+0x4444 0x6E99
+0x4445 0x6E92
+0x4446 0x6E8E
+0x4447 0x6E8D
+0x4448 0x6EA4
+0x4449 0x6EA1
+0x444A 0x6EBF
+0x444B 0x6EB3
+0x444C 0x6ED0
+0x444D 0x6ECA
+0x444E 0x6E97
+0x444F 0x6EAE
+0x4450 0x6EA3
+0x4451 0x7147
+0x4452 0x7154
+0x4453 0x7152
+0x4454 0x7163
+0x4455 0x7160
+0x4456 0x7141
+0x4457 0x715D
+0x4458 0x7162
+0x4459 0x7172
+0x445A 0x7178
+0x445B 0x716A
+0x445C 0x7161
+0x445D 0x7142
+0x445E 0x7158
+0x445F 0x7143
+0x4460 0x714B
+0x4461 0x7170
+0x4462 0x715F
+0x4463 0x7150
+0x4464 0x7153
+0x4465 0x7144
+0x4466 0x714D
+0x4467 0x715A
+0x4468 0x724F
+0x4469 0x728D
+0x446A 0x728C
+0x446B 0x7291
+0x446C 0x7290
+0x446D 0x728E
+0x446E 0x733C
+0x446F 0x7342
+0x4470 0x733B
+0x4471 0x733A
+0x4472 0x7340
+0x4473 0x734A
+0x4474 0x7349
+0x4475 0x7444
+0x4476-0x4477 0x744A
+0x4478 0x7452
+0x4479 0x7451
+0x447A 0x7457
+0x447B 0x7440
+0x447C-0x447D 0x744F
+0x447E 0x744E
+0x4521 0x7442
+0x4522 0x7446
+0x4523 0x744D
+0x4524 0x7454
+0x4525 0x74E1
+0x4526 0x74FF
+0x4527 0x74FE
+0x4528 0x74FD
+0x4529 0x751D
+0x452A 0x7579
+0x452B 0x7577
+0x452C 0x6983
+0x452D 0x75EF
+0x452E 0x760F
+0x452F 0x7603
+0x4530 0x75F7
+0x4531 0x75FE
+0x4532 0x75FC
+0x4533 0x75F9
+0x4534 0x75F8
+0x4535 0x7610
+0x4536 0x75FB
+0x4537 0x75F6
+0x4538 0x75ED
+0x4539 0x75F5
+0x453A 0x75FD
+0x453B 0x7699
+0x453C 0x76B5
+0x453D 0x76DD
+0x453E 0x7755
+0x453F-0x4540 0x775F
+0x4541 0x7752
+0x4542 0x7756
+0x4543 0x775A
+0x4544 0x7769
+0x4545 0x7767
+0x4546 0x7754
+0x4547 0x7759
+0x4548 0x776D
+0x4549 0x77E0
+0x454A 0x7887
+0x454B 0x789A
+0x454C 0x7894
+0x454D 0x788F
+0x454E 0x7884
+0x454F 0x7895
+0x4550-0x4551 0x7885
+0x4552 0x78A1
+0x4553 0x7883
+0x4554 0x7879
+0x4555 0x7899
+0x4556 0x7880
+0x4557 0x7896
+0x4558 0x787B
+0x4559 0x797C
+0x455A 0x7982
+0x455B 0x797D
+0x455C 0x7979
+0x455D 0x7A11
+0x455E-0x455F 0x7A18
+0x4560 0x7A12
+0x4561 0x7A17
+0x4562 0x7A15
+0x4563 0x7A22
+0x4564 0x7A13
+0x4565 0x7A1B
+0x4566 0x7A10
+0x4567 0x7AA3
+0x4568 0x7AA2
+0x4569 0x7A9E
+0x456A 0x7AEB
+0x456B 0x7B66
+0x456C 0x7B64
+0x456D 0x7B6D
+0x456E 0x7B74
+0x456F 0x7B69
+0x4570 0x7B72
+0x4571 0x7B65
+0x4572 0x7B73
+0x4573 0x7B71
+0x4574 0x7B70
+0x4575 0x7B61
+0x4576 0x7B78
+0x4577 0x7B76
+0x4578 0x7B63
+0x4579 0x7CB2
+0x457A 0x7CB4
+0x457B 0x7CAF
+0x457C 0x7D88
+0x457D 0x7D86
+0x457E 0x7D80
+0x4621 0x7D8D
+0x4622 0x7D7F
+0x4623 0x7D85
+0x4624 0x7D7A
+0x4625 0x7D8E
+0x4626 0x7D7B
+0x4627 0x7D83
+0x4628 0x7D7C
+0x4629 0x7D8C
+0x462A 0x7D94
+0x462B 0x7D84
+0x462C 0x7D7D
+0x462D 0x7D92
+0x462E 0x7F6D
+0x462F 0x7F6B
+0x4630-0x4631 0x7F67
+0x4632 0x7F6C
+0x4633 0x7FA6
+0x4634 0x7FA5
+0x4635 0x7FA7
+0x4636-0x4637 0x7FDB
+0x4638 0x8021
+0x4639 0x8164
+0x463A 0x8160
+0x463B 0x8177
+0x463C 0x815C
+0x463D 0x8169
+0x463E 0x815B
+0x463F 0x8162
+0x4640 0x8172
+0x4641 0x6721
+0x4642 0x815E
+0x4643 0x8176
+0x4644 0x8167
+0x4645 0x816F
+0x4646 0x8144
+0x4647 0x8161
+0x4648 0x821D
+0x4649 0x8249
+0x464A 0x8244
+0x464B 0x8240
+0x464C 0x8242
+0x464D 0x8245
+0x464E 0x84F1
+0x464F 0x843F
+0x4650 0x8456
+0x4651 0x8476
+0x4652 0x8479
+0x4653 0x848F
+0x4654 0x848D
+0x4655 0x8465
+0x4656 0x8451
+0x4657 0x8440
+0x4658 0x8486
+0x4659 0x8467
+0x465A 0x8430
+0x465B 0x844D
+0x465C 0x847D
+0x465D 0x845A
+0x465E 0x8459
+0x465F 0x8474
+0x4660 0x8473
+0x4661 0x845D
+0x4662 0x8507
+0x4663 0x845E
+0x4664 0x8437
+0x4665 0x843A
+0x4666 0x8434
+0x4667 0x847A
+0x4668 0x8443
+0x4669 0x8478
+0x466A 0x8432
+0x466B 0x8445
+0x466C 0x8429
+0x466D 0x83D9
+0x466E 0x844B
+0x466F 0x842F
+0x4670 0x8442
+0x4671 0x842D
+0x4672 0x845F
+0x4673 0x8470
+0x4674 0x8439
+0x4675 0x844E
+0x4676 0x844C
+0x4677 0x8452
+0x4678 0x846F
+0x4679 0x84C5
+0x467A 0x848E
+0x467B 0x843B
+0x467C 0x8447
+0x467D 0x8436
+0x467E 0x8433
+0x4721 0x8468
+0x4722 0x847E
+0x4723 0x8444
+0x4724 0x842B
+0x4725 0x8460
+0x4726 0x8454
+0x4727 0x846E
+0x4728 0x8450
+0x4729 0x870B
+0x472A 0x8704
+0x472B 0x86F7
+0x472C 0x870C
+0x472D 0x86FA
+0x472E 0x86D6
+0x472F 0x86F5
+0x4730 0x874D
+0x4731 0x86F8
+0x4732 0x870E
+0x4733 0x8709
+0x4734 0x8701
+0x4735 0x86F6
+0x4736 0x870D
+0x4737 0x8705
+0x4738 0x88D6
+0x4739 0x88CB
+0x473A-0x473B 0x88CD
+0x473C 0x88DE
+0x473D 0x88DB
+0x473E 0x88DA
+0x473F 0x88CC
+0x4740 0x88D0
+0x4741 0x8985
+0x4742 0x899B
+0x4743 0x89DF
+0x4744 0x89E5
+0x4745 0x89E4
+0x4746 0x89E1
+0x4747 0x89E0
+0x4748 0x89E2
+0x4749 0x89DC
+0x474A 0x89E6
+0x474B 0x8A76
+0x474C 0x8A86
+0x474D 0x8A7F
+0x474E 0x8A61
+0x474F 0x8A3F
+0x4750 0x8A77
+0x4751 0x8A82
+0x4752 0x8A84
+0x4753 0x8A75
+0x4754 0x8A83
+0x4755 0x8A81
+0x4756 0x8A74
+0x4757 0x8A7A
+0x4758 0x8C3C
+0x4759 0x8C4B
+0x475A 0x8C4A
+0x475B 0x8C65
+0x475C 0x8C64
+0x475D 0x8C66
+0x475E 0x8C86
+0x475F-0x4760 0x8C84
+0x4761 0x8CCC
+0x4762-0x4763 0x8D68
+0x4764 0x8D91
+0x4765 0x8D8C
+0x4766-0x4767 0x8D8E
+0x4768 0x8D8D
+0x4769-0x476A 0x8D93
+0x476B 0x8D90
+0x476C 0x8D92
+0x476D 0x8DF0
+0x476E 0x8DE0
+0x476F 0x8DEC
+0x4770 0x8DF1
+0x4771 0x8DEE
+0x4772 0x8DD0
+0x4773 0x8DE9
+0x4774 0x8DE3
+0x4775 0x8DE2
+0x4776 0x8DE7
+0x4777 0x8DF2
+0x4778 0x8DEB
+0x4779 0x8DF4
+0x477A 0x8F06
+0x477B 0x8EFF
+0x477C 0x8F01
+0x477D 0x8F00
+0x477E 0x8F05
+0x4821-0x4822 0x8F07
+0x4823 0x8F02
+0x4824 0x8F0B
+0x4825 0x9052
+0x4826 0x903F
+0x4827 0x9044
+0x4828 0x9049
+0x4829 0x903D
+0x482A 0x9110
+0x482B 0x910D
+0x482C 0x910F
+0x482D 0x9111
+0x482E 0x9116
+0x482F 0x9114
+0x4830 0x910B
+0x4831 0x910E
+0x4832-0x4833 0x916E
+0x4834 0x9248
+0x4835 0x9252
+0x4836 0x9230
+0x4837 0x923A
+0x4838 0x9266
+0x4839 0x9233
+0x483A 0x9265
+0x483B 0x925E
+0x483C 0x9283
+0x483D 0x922E
+0x483E 0x924A
+0x483F 0x9246
+0x4840 0x926D
+0x4841 0x926C
+0x4842 0x924F
+0x4843 0x9260
+0x4844 0x9267
+0x4845 0x926F
+0x4846 0x9236
+0x4847 0x9261
+0x4848 0x9270
+0x4849 0x9231
+0x484A 0x9254
+0x484B 0x9263
+0x484C 0x9250
+0x484D 0x9272
+0x484E 0x924E
+0x484F 0x9253
+0x4850 0x924C
+0x4851 0x9256
+0x4852 0x9232
+0x4853 0x959F
+0x4854 0x959C
+0x4855 0x959E
+0x4856 0x959B
+0x4857-0x4858 0x9692
+0x4859 0x9691
+0x485A 0x9697
+0x485B 0x96CE
+0x485C 0x96FA
+0x485D 0x96FD
+0x485E 0x96F8
+0x485F 0x96F5
+0x4860 0x9773
+0x4861-0x4862 0x9777
+0x4863 0x9772
+0x4864 0x980F
+0x4865-0x4866 0x980D
+0x4867 0x98AC
+0x4868 0x98F6
+0x4869 0x98F9
+0x486A 0x99AF
+0x486B 0x99B2
+0x486C 0x99B0
+0x486D 0x99B5
+0x486E 0x9AAD
+0x486F 0x9AAB
+0x4870 0x9B5B
+0x4871 0x9CEA
+0x4872 0x9CED
+0x4873 0x9CE7
+0x4874 0x9E80
+0x4875 0x9EFD
+0x4876 0x50E6
+0x4877 0x50D4
+0x4878 0x50D7
+0x4879 0x50E8
+0x487A 0x50F3
+0x487B 0x50DB
+0x487C 0x50EA
+0x487D 0x50DD
+0x487E 0x50E4
+0x4921 0x50D3
+0x4922 0x50EC
+0x4923 0x50F0
+0x4924 0x50EF
+0x4925 0x50E3
+0x4926 0x50E0
+0x4927 0x51D8
+0x4928-0x4929 0x5280
+0x492A 0x52E9
+0x492B 0x52EB
+0x492C 0x5330
+0x492D 0x53AC
+0x492E 0x5627
+0x492F 0x5615
+0x4930 0x560C
+0x4931 0x5612
+0x4932 0x55FC
+0x4933 0x560F
+0x4934 0x561C
+0x4935 0x5601
+0x4936 0x5613
+0x4937 0x5602
+0x4938 0x55FA
+0x4939 0x561D
+0x493A 0x5604
+0x493B 0x55FF
+0x493C 0x55F9
+0x493D 0x5889
+0x493E 0x587C
+0x493F 0x5890
+0x4940 0x5898
+0x4941 0x5886
+0x4942 0x5881
+0x4943 0x587F
+0x4944 0x5874
+0x4945 0x588B
+0x4946 0x587A
+0x4947 0x5887
+0x4948 0x5891
+0x4949 0x588E
+0x494A 0x5876
+0x494B 0x5882
+0x494C 0x5888
+0x494D 0x587B
+0x494E 0x5894
+0x494F 0x588F
+0x4950 0x58FE
+0x4951 0x596B
+0x4952 0x5ADC
+0x4953 0x5AEE
+0x4954 0x5AE5
+0x4955 0x5AD5
+0x4956 0x5AEA
+0x4957 0x5ADA
+0x4958 0x5AED
+0x4959 0x5AEB
+0x495A 0x5AF3
+0x495B 0x5AE2
+0x495C 0x5AE0
+0x495D 0x5ADB
+0x495E 0x5AEC
+0x495F 0x5ADE
+0x4960 0x5ADD
+0x4961 0x5AD9
+0x4962 0x5AE8
+0x4963 0x5ADF
+0x4964 0x5B77
+0x4965 0x5BE0
+0x4966 0x5BE3
+0x4967 0x5C63
+0x4968 0x5D82
+0x4969 0x5D80
+0x496A 0x5D7D
+0x496B 0x5D86
+0x496C 0x5D7A
+0x496D 0x5D81
+0x496E 0x5D77
+0x496F 0x5D8A
+0x4970 0x5D89
+0x4971 0x5D88
+0x4972 0x5D7E
+0x4973 0x5D7C
+0x4974 0x5D8D
+0x4975 0x5D79
+0x4976 0x5D7F
+0x4977-0x4978 0x5E58
+0x4979 0x5E53
+0x497A 0x5ED8
+0x497B 0x5ED1
+0x497C 0x5ED7
+0x497D 0x5ECE
+0x497E 0x5EDC
+0x4A21 0x5ED5
+0x4A22 0x5ED9
+0x4A23 0x5ED2
+0x4A24 0x5ED4
+0x4A25 0x5F44
+0x4A26 0x5F43
+0x4A27 0x5F6F
+0x4A28 0x5FB6
+0x4A29 0x612C
+0x4A2A 0x6128
+0x4A2B 0x6141
+0x4A2C 0x615E
+0x4A2D 0x6171
+0x4A2E 0x6173
+0x4A2F-0x4A30 0x6152
+0x4A31 0x6172
+0x4A32 0x616C
+0x4A33 0x6180
+0x4A34 0x6174
+0x4A35 0x6154
+0x4A36 0x617A
+0x4A37 0x615B
+0x4A38 0x6165
+0x4A39 0x613B
+0x4A3A 0x616A
+0x4A3B 0x6161
+0x4A3C 0x6156
+0x4A3D 0x6229
+0x4A3E 0x6227
+0x4A3F 0x622B
+0x4A40 0x642B
+0x4A41 0x644D
+0x4A42 0x645B
+0x4A43 0x645D
+0x4A44 0x6474
+0x4A45 0x6476
+0x4A46-0x4A47 0x6472
+0x4A48 0x647D
+0x4A49 0x6475
+0x4A4A 0x6466
+0x4A4B 0x64A6
+0x4A4C 0x644E
+0x4A4D 0x6482
+0x4A4E 0x645E
+0x4A4F 0x645C
+0x4A50 0x644B
+0x4A51 0x6453
+0x4A52 0x6460
+0x4A53 0x6450
+0x4A54 0x647F
+0x4A55 0x643F
+0x4A56 0x646C
+0x4A57 0x646B
+0x4A58 0x6459
+0x4A59 0x6465
+0x4A5A 0x6477
+0x4A5B 0x6573
+0x4A5C 0x65A0
+0x4A5D 0x66A1
+0x4A5E 0x66A0
+0x4A5F 0x669F
+0x4A60 0x6705
+0x4A61 0x6704
+0x4A62 0x6722
+0x4A63 0x69B1
+0x4A64 0x69B6
+0x4A65 0x69C9
+0x4A66 0x69A0
+0x4A67 0x69CE
+0x4A68 0x6996
+0x4A69 0x69B0
+0x4A6A 0x69AC
+0x4A6B 0x69BC
+0x4A6C 0x6991
+0x4A6D 0x6999
+0x4A6E 0x698E
+0x4A6F 0x69A7
+0x4A70 0x698D
+0x4A71 0x69A9
+0x4A72 0x69BE
+0x4A73 0x69AF
+0x4A74 0x69BF
+0x4A75 0x69C4
+0x4A76 0x69BD
+0x4A77 0x69A4
+0x4A78 0x69D4
+0x4A79 0x69B9
+0x4A7A 0x69CA
+0x4A7B 0x699A
+0x4A7C 0x69CF
+0x4A7D 0x69B3
+0x4A7E 0x6993
+0x4B21 0x69AA
+0x4B22 0x69A1
+0x4B23 0x699E
+0x4B24 0x69D9
+0x4B25 0x6997
+0x4B26 0x6990
+0x4B27 0x69C2
+0x4B28 0x69B5
+0x4B29 0x69A5
+0x4B2A 0x69C6
+0x4B2B 0x6B4A
+0x4B2C 0x6B4D
+0x4B2D 0x6B4B
+0x4B2E-0x4B30 0x6B9E
+0x4B31-0x4B32 0x6BC3
+0x4B33 0x6BFE
+0x4B34 0x6ECE
+0x4B35 0x6EF5
+0x4B36 0x6EF1
+0x4B37 0x6F03
+0x4B38 0x6F25
+0x4B39 0x6EF8
+0x4B3A 0x6F37
+0x4B3B 0x6EFB
+0x4B3C 0x6F2E
+0x4B3D 0x6F09
+0x4B3E 0x6F4E
+0x4B3F-0x4B40 0x6F19
+0x4B41 0x6F27
+0x4B42 0x6F18
+0x4B43 0x6F3B
+0x4B44 0x6F12
+0x4B45 0x6EED
+0x4B46 0x6F0A
+0x4B47 0x6F36
+0x4B48 0x6F73
+0x4B49 0x6EF9
+0x4B4A 0x6EEE
+0x4B4B 0x6F2D
+0x4B4C 0x6F40
+0x4B4D 0x6F30
+0x4B4E 0x6F3C
+0x4B4F 0x6F35
+0x4B50 0x6EEB
+0x4B51 0x6F07
+0x4B52 0x6F0E
+0x4B53 0x6F43
+0x4B54 0x6F05
+0x4B55 0x6EFD
+0x4B56 0x6EF6
+0x4B57 0x6F39
+0x4B58 0x6F1C
+0x4B59 0x6EFC
+0x4B5A 0x6F3A
+0x4B5B 0x6F1F
+0x4B5C 0x6F0D
+0x4B5D 0x6F1E
+0x4B5E 0x6F08
+0x4B5F 0x6F21
+0x4B60 0x7187
+0x4B61 0x7190
+0x4B62 0x7189
+0x4B63 0x7180
+0x4B64 0x7185
+0x4B65 0x7182
+0x4B66 0x718F
+0x4B67 0x717B
+0x4B68 0x7186
+0x4B69 0x7181
+0x4B6A 0x7197
+0x4B6B 0x7244
+0x4B6C 0x7253
+0x4B6D 0x7297
+0x4B6E 0x7295
+0x4B6F 0x7293
+0x4B70 0x7343
+0x4B71 0x734D
+0x4B72 0x7351
+0x4B73 0x734C
+0x4B74 0x7462
+0x4B75 0x7473
+0x4B76 0x7471
+0x4B77 0x7475
+0x4B78 0x7472
+0x4B79 0x7467
+0x4B7A 0x746E
+0x4B7B 0x7500
+0x4B7C-0x4B7D 0x7502
+0x4B7E 0x757D
+0x4C21 0x7590
+0x4C22 0x7616
+0x4C23 0x7608
+0x4C24 0x760C
+0x4C25 0x7615
+0x4C26 0x7611
+0x4C27 0x760A
+0x4C28 0x7614
+0x4C29 0x76B8
+0x4C2A 0x7781
+0x4C2B 0x777C
+0x4C2C 0x7785
+0x4C2D 0x7782
+0x4C2E 0x776E
+0x4C2F 0x7780
+0x4C30 0x776F
+0x4C31 0x777E
+0x4C32 0x7783
+0x4C33 0x78B2
+0x4C34 0x78AA
+0x4C35 0x78B4
+0x4C36 0x78AD
+0x4C37 0x78A8
+0x4C38 0x787E
+0x4C39 0x78AB
+0x4C3A 0x789E
+0x4C3B 0x78A5
+0x4C3C 0x78A0
+0x4C3D 0x78AC
+0x4C3E 0x78A2
+0x4C3F 0x78A4
+0x4C40 0x7998
+0x4C41-0x4C42 0x798A
+0x4C43 0x7996
+0x4C44 0x7995
+0x4C45 0x7994
+0x4C46 0x7993
+0x4C47 0x7997
+0x4C48 0x7988
+0x4C49 0x7992
+0x4C4A 0x7990
+0x4C4B 0x7A2B
+0x4C4C 0x7A4A
+0x4C4D 0x7A30
+0x4C4E 0x7A2F
+0x4C4F 0x7A28
+0x4C50 0x7A26
+0x4C51 0x7AA8
+0x4C52-0x4C53 0x7AAB
+0x4C54 0x7AEE
+0x4C55 0x7B88
+0x4C56 0x7B9C
+0x4C57 0x7B8A
+0x4C58 0x7B91
+0x4C59 0x7B90
+0x4C5A 0x7B96
+0x4C5B 0x7B8D
+0x4C5C 0x7B8C
+0x4C5D 0x7B9B
+0x4C5E 0x7B8E
+0x4C5F 0x7B85
+0x4C60 0x7B98
+0x4C61 0x5284
+0x4C62 0x7B99
+0x4C63 0x7BA4
+0x4C64 0x7B82
+0x4C65 0x7CBB
+0x4C66 0x7CBF
+0x4C67 0x7CBC
+0x4C68 0x7CBA
+0x4C69 0x7DA7
+0x4C6A 0x7DB7
+0x4C6B 0x7DC2
+0x4C6C 0x7DA3
+0x4C6D 0x7DAA
+0x4C6E 0x7DC1
+0x4C6F 0x7DC0
+0x4C70 0x7DC5
+0x4C71 0x7D9D
+0x4C72 0x7DCE
+0x4C73 0x7DC4
+0x4C74 0x7DC6
+0x4C75-0x4C76 0x7DCB
+0x4C77 0x7DAF
+0x4C78 0x7DB9
+0x4C79 0x7D96
+0x4C7A 0x7DBC
+0x4C7B 0x7D9F
+0x4C7C 0x7DA6
+0x4C7D 0x7DAE
+0x4C7E 0x7DA9
+0x4D21 0x7DA1
+0x4D22 0x7DC9
+0x4D23 0x7F73
+0x4D24-0x4D25 0x7FE2
+0x4D26 0x7FE5
+0x4D27 0x7FDE
+0x4D28 0x8024
+0x4D29 0x805D
+0x4D2A 0x805C
+0x4D2B 0x8189
+0x4D2C 0x8186
+0x4D2D 0x8183
+0x4D2E 0x8187
+0x4D2F 0x818D
+0x4D30 0x818C
+0x4D31 0x818B
+0x4D32 0x8215
+0x4D33 0x8497
+0x4D34 0x84A4
+0x4D35 0x84A1
+0x4D36 0x849F
+0x4D37 0x84BA
+0x4D38 0x84CE
+0x4D39 0x84C2
+0x4D3A 0x84AC
+0x4D3B 0x84AE
+0x4D3C 0x84AB
+0x4D3D 0x84B9
+0x4D3E 0x84B4
+0x4D3F 0x84C1
+0x4D40 0x84CD
+0x4D41 0x84AA
+0x4D42 0x849A
+0x4D43 0x84B1
+0x4D44 0x84D0
+0x4D45 0x849D
+0x4D46 0x84A7
+0x4D47 0x84BB
+0x4D48 0x84A2
+0x4D49 0x8494
+0x4D4A 0x84C7
+0x4D4B 0x84CC
+0x4D4C 0x849B
+0x4D4D 0x84A9
+0x4D4E 0x84AF
+0x4D4F 0x84A8
+0x4D50 0x84D6
+0x4D51 0x8498
+0x4D52 0x84B6
+0x4D53 0x84CF
+0x4D54 0x84A0
+0x4D55 0x84D7
+0x4D56 0x84D4
+0x4D57 0x84D2
+0x4D58 0x84DB
+0x4D59 0x84B0
+0x4D5A 0x8491
+0x4D5B 0x8661
+0x4D5C 0x8733
+0x4D5D 0x8723
+0x4D5E 0x8728
+0x4D5F 0x876B
+0x4D60 0x8740
+0x4D61 0x872E
+0x4D62 0x871E
+0x4D63 0x8721
+0x4D64 0x8719
+0x4D65 0x871B
+0x4D66 0x8743
+0x4D67 0x872C
+0x4D68 0x8741
+0x4D69 0x873E
+0x4D6A 0x8746
+0x4D6B 0x8720
+0x4D6C 0x8732
+0x4D6D 0x872A
+0x4D6E 0x872D
+0x4D6F 0x873C
+0x4D70 0x8712
+0x4D71 0x873A
+0x4D72 0x8731
+0x4D73 0x8735
+0x4D74 0x8742
+0x4D75-0x4D76 0x8726
+0x4D77 0x8738
+0x4D78 0x8724
+0x4D79 0x871A
+0x4D7A 0x8730
+0x4D7B 0x8711
+0x4D7C 0x88F7
+0x4D7D 0x88E7
+0x4D7E 0x88F1
+0x4E21 0x88F2
+0x4E22 0x88FA
+0x4E23 0x88FE
+0x4E24 0x88EE
+0x4E25 0x88FC
+0x4E26 0x88F6
+0x4E27 0x88FB
+0x4E28 0x88F0
+0x4E29 0x88EC
+0x4E2A 0x88EB
+0x4E2B 0x899D
+0x4E2C 0x89A1
+0x4E2D 0x899F
+0x4E2E 0x899E
+0x4E2F 0x89E9
+0x4E30 0x89EB
+0x4E31 0x89E8
+0x4E32 0x8AAB
+0x4E33 0x8A99
+0x4E34 0x8A8B
+0x4E35 0x8A92
+0x4E36 0x8A8F
+0x4E37 0x8A96
+0x4E38 0x8C3D
+0x4E39-0x4E3A 0x8C68
+0x4E3B 0x8CD5
+0x4E3C 0x8CCF
+0x4E3D 0x8CD7
+0x4E3E 0x8D96
+0x4E3F 0x8E09
+0x4E40 0x8E02
+0x4E41 0x8DFF
+0x4E42 0x8E0D
+0x4E43 0x8DFD
+0x4E44 0x8E0A
+0x4E45 0x8E03
+0x4E46 0x8E07
+0x4E47 0x8E06
+0x4E48 0x8E05
+0x4E49 0x8DFE
+0x4E4A 0x8E00
+0x4E4B 0x8E04
+0x4E4C-0x4E4D 0x8F10
+0x4E4E 0x8F0E
+0x4E4F 0x8F0D
+0x4E50 0x9123
+0x4E51 0x911C
+0x4E52 0x9120
+0x4E53 0x9122
+0x4E54 0x911F
+0x4E55 0x911D
+0x4E56 0x911A
+0x4E57 0x9124
+0x4E58 0x9121
+0x4E59 0x911B
+0x4E5A 0x917A
+0x4E5B 0x9172
+0x4E5C 0x9179
+0x4E5D 0x9173
+0x4E5E 0x92A5
+0x4E5F 0x92A4
+0x4E60 0x9276
+0x4E61 0x929B
+0x4E62 0x927A
+0x4E63 0x92A0
+0x4E64 0x9294
+0x4E65 0x92AA
+0x4E66 0x928D
+0x4E67 0x92A6
+0x4E68 0x929A
+0x4E69 0x92AB
+0x4E6A 0x9279
+0x4E6B 0x9297
+0x4E6C 0x927F
+0x4E6D 0x92A3
+0x4E6E 0x92EE
+0x4E6F 0x928E
+0x4E70 0x9282
+0x4E71 0x9295
+0x4E72 0x92A2
+0x4E73 0x927D
+0x4E74 0x9288
+0x4E75 0x92A1
+0x4E76 0x928A
+0x4E77 0x9286
+0x4E78 0x928C
+0x4E79 0x9299
+0x4E7A 0x92A7
+0x4E7B 0x927E
+0x4E7C 0x9287
+0x4E7D 0x92A9
+0x4E7E 0x929D
+0x4F21 0x928B
+0x4F22 0x922D
+0x4F23 0x969E
+0x4F24 0x96A1
+0x4F25 0x96FF
+0x4F26 0x9758
+0x4F27 0x977D
+0x4F28 0x977A
+0x4F29 0x977E
+0x4F2A 0x9783
+0x4F2B 0x9780
+0x4F2C 0x9782
+0x4F2D 0x977B
+0x4F2E 0x9784
+0x4F2F 0x9781
+0x4F30 0x977F
+0x4F31 0x97CE
+0x4F32 0x97CD
+0x4F33 0x9816
+0x4F34-0x4F35 0x98AD
+0x4F36 0x9902
+0x4F37 0x9900
+0x4F38 0x9907
+0x4F39 0x999D
+0x4F3A 0x999C
+0x4F3B 0x99C3
+0x4F3C 0x99B9
+0x4F3D 0x99BB
+0x4F3E 0x99BA
+0x4F3F 0x99C2
+0x4F40 0x99BD
+0x4F41 0x99C7
+0x4F42 0x9AB1
+0x4F43 0x9AE3
+0x4F44 0x9AE7
+0x4F45-0x4F46 0x9B3E
+0x4F47-0x4F48 0x9B60
+0x4F49 0x9B5F
+0x4F4A-0x4F4B 0x9CF1
+0x4F4C 0x9CF5
+0x4F4D 0x9EA7
+0x4F4E 0x50FF
+0x4F4F 0x5103
+0x4F50 0x5130
+0x4F51 0x50F8
+0x4F52-0x4F53 0x5106
+0x4F54 0x50F6
+0x4F55 0x50FE
+0x4F56-0x4F57 0x510B
+0x4F58 0x50FD
+0x4F59 0x510A
+0x4F5A-0x4F5B 0x528B
+0x4F5C 0x52F1
+0x4F5D 0x52EF
+0x4F5E 0x5648
+0x4F5F 0x5642
+0x4F60 0x564C
+0x4F61 0x5635
+0x4F62 0x5641
+0x4F63 0x564A
+0x4F64 0x5649
+0x4F65 0x5646
+0x4F66 0x5658
+0x4F67 0x565A
+0x4F68 0x5640
+0x4F69 0x5633
+0x4F6A 0x563D
+0x4F6B 0x562C
+0x4F6C 0x563E
+0x4F6D 0x5638
+0x4F6E 0x562A
+0x4F6F 0x563A
+0x4F70 0x571A
+0x4F71 0x58AB
+0x4F72 0x589D
+0x4F73 0x58B1
+0x4F74 0x58A0
+0x4F75 0x58A3
+0x4F76 0x58AF
+0x4F77 0x58AC
+0x4F78 0x58A5
+0x4F79 0x58A1
+0x4F7A 0x58FF
+0x4F7B 0x5AFF
+0x4F7C 0x5AF4
+0x4F7D 0x5AFD
+0x4F7E 0x5AF7
+0x5021 0x5AF6
+0x5022 0x5B03
+0x5023 0x5AF8
+0x5024 0x5B02
+0x5025 0x5AF9
+0x5026 0x5B01
+0x5027 0x5B07
+0x5028 0x5B05
+0x5029 0x5B0F
+0x502A 0x5C67
+0x502B 0x5D99
+0x502C 0x5D97
+0x502D 0x5D9F
+0x502E 0x5D92
+0x502F 0x5DA2
+0x5030 0x5D93
+0x5031 0x5D95
+0x5032 0x5DA0
+0x5033 0x5D9C
+0x5034 0x5DA1
+0x5035 0x5D9A
+0x5036 0x5D9E
+0x5037 0x5E69
+0x5038 0x5E5D
+0x5039 0x5E60
+0x503A 0x5E5C
+0x503B 0x7DF3
+0x503C 0x5EDB
+0x503D 0x5EDE
+0x503E 0x5EE1
+0x503F 0x5F49
+0x5040 0x5FB2
+0x5041 0x618B
+0x5042 0x6183
+0x5043 0x6179
+0x5044 0x61B1
+0x5045 0x61B0
+0x5046 0x61A2
+0x5047 0x6189
+0x5048 0x619B
+0x5049 0x6193
+0x504A 0x61AF
+0x504B 0x61AD
+0x504C 0x619F
+0x504D 0x6192
+0x504E 0x61AA
+0x504F 0x61A1
+0x5050 0x618D
+0x5051 0x6166
+0x5052 0x61B3
+0x5053 0x622D
+0x5054 0x646E
+0x5055 0x6470
+0x5056 0x6496
+0x5057 0x64A0
+0x5058 0x6485
+0x5059 0x6497
+0x505A 0x649C
+0x505B 0x648F
+0x505C 0x648B
+0x505D 0x648A
+0x505E 0x648C
+0x505F 0x64A3
+0x5060 0x649F
+0x5061 0x6468
+0x5062 0x64B1
+0x5063 0x6498
+0x5064 0x6576
+0x5065 0x657A
+0x5066 0x6579
+0x5067 0x657B
+0x5068-0x5069 0x65B2
+0x506A 0x66B5
+0x506B 0x66B0
+0x506C 0x66A9
+0x506D 0x66B2
+0x506E 0x66B7
+0x506F 0x66AA
+0x5070 0x66AF
+0x5071 0x6A00
+0x5072 0x6A06
+0x5073 0x6A17
+0x5074 0x69E5
+0x5075 0x69F8
+0x5076 0x6A15
+0x5077 0x69F1
+0x5078 0x69E4
+0x5079 0x6A20
+0x507A 0x69FF
+0x507B 0x69EC
+0x507C 0x69E2
+0x507D 0x6A1B
+0x507E 0x6A1D
+0x5121 0x69FE
+0x5122 0x6A27
+0x5123 0x69F2
+0x5124 0x69EE
+0x5125 0x6A14
+0x5126 0x69F7
+0x5127 0x69E7
+0x5128 0x6A40
+0x5129 0x6A08
+0x512A 0x69E6
+0x512B 0x69FB
+0x512C 0x6A0D
+0x512D 0x69FC
+0x512E 0x69EB
+0x512F 0x6A09
+0x5130 0x6A04
+0x5131 0x6A18
+0x5132 0x6A25
+0x5133 0x6A0F
+0x5134 0x69F6
+0x5135 0x6A26
+0x5136 0x6A07
+0x5137 0x69F4
+0x5138 0x6A16
+0x5139 0x6B51
+0x513A 0x6BA5
+0x513B 0x6BA3
+0x513C 0x6BA2
+0x513D 0x6BA6
+0x513E 0x6C01
+0x513F 0x6C00
+0x5140 0x6BFF
+0x5141 0x6C02
+0x5142 0x6F41
+0x5143 0x6F26
+0x5144 0x6F7E
+0x5145 0x6F87
+0x5146 0x6FC6
+0x5147 0x6F92
+0x5148 0x6F8D
+0x5149 0x6F89
+0x514A 0x6F8C
+0x514B 0x6F62
+0x514C 0x6F4F
+0x514D 0x6F85
+0x514E 0x6F5A
+0x514F 0x6F96
+0x5150 0x6F76
+0x5151 0x6F6C
+0x5152 0x6F82
+0x5153 0x6F55
+0x5154 0x6F72
+0x5155 0x6F52
+0x5156 0x6F50
+0x5157 0x6F57
+0x5158 0x6F94
+0x5159 0x6F93
+0x515A 0x6F5D
+0x515B 0x6F00
+0x515C 0x6F61
+0x515D 0x6F6B
+0x515E 0x6F7D
+0x515F 0x6F67
+0x5160 0x6F90
+0x5161 0x6F53
+0x5162 0x6F8B
+0x5163 0x6F69
+0x5164 0x6F7F
+0x5165 0x6F95
+0x5166 0x6F63
+0x5167 0x6F77
+0x5168 0x6F6A
+0x5169 0x6F7B
+0x516A 0x71B2
+0x516B 0x71AF
+0x516C 0x719B
+0x516D 0x71B0
+0x516E 0x71A0
+0x516F 0x719A
+0x5170 0x71A9
+0x5171 0x71B5
+0x5172 0x719D
+0x5173 0x71A5
+0x5174 0x719E
+0x5175 0x71A4
+0x5176 0x71A1
+0x5177 0x71AA
+0x5178 0x719C
+0x5179 0x71A7
+0x517A 0x71B3
+0x517B 0x7298
+0x517C 0x729A
+0x517D 0x7358
+0x517E 0x7352
+0x5221-0x5223 0x735E
+0x5224 0x735D
+0x5225 0x735B
+0x5226 0x7361
+0x5227 0x735A
+0x5228 0x7359
+0x5229 0x7362
+0x522A 0x7487
+0x522B-0x522C 0x7489
+0x522D 0x7486
+0x522E 0x7481
+0x522F 0x747D
+0x5230 0x7485
+0x5231 0x7488
+0x5232 0x747C
+0x5233 0x7479
+0x5234 0x7508
+0x5235 0x7507
+0x5236 0x757E
+0x5237 0x7625
+0x5238 0x761E
+0x5239 0x7619
+0x523A 0x761D
+0x523B 0x761C
+0x523C 0x7623
+0x523D 0x761A
+0x523E 0x7628
+0x523F 0x761B
+0x5240-0x5242 0x769C
+0x5243 0x769B
+0x5244 0x778D
+0x5245 0x778F
+0x5246 0x7789
+0x5247 0x7788
+0x5248 0x78CD
+0x5249 0x78BB
+0x524A 0x78CF
+0x524B 0x78CC
+0x524C 0x78D1
+0x524D 0x78CE
+0x524E 0x78D4
+0x524F 0x78C8
+0x5250-0x5251 0x78C3
+0x5252 0x78C9
+0x5253 0x799A
+0x5254 0x79A1
+0x5255 0x79A0
+0x5256 0x799C
+0x5257 0x79A2
+0x5258 0x799B
+0x5259 0x6B76
+0x525A 0x7A39
+0x525B 0x7AB2
+0x525C 0x7AB4
+0x525D 0x7AB3
+0x525E 0x7BB7
+0x525F 0x7BCB
+0x5260 0x7BBE
+0x5261 0x7BAC
+0x5262 0x7BCE
+0x5263 0x7BAF
+0x5264 0x7BB9
+0x5265 0x7BCA
+0x5266 0x7BB5
+0x5267 0x7CC5
+0x5268 0x7CC8
+0x5269 0x7CCC
+0x526A 0x7CCB
+0x526B 0x7DF7
+0x526C 0x7DDB
+0x526D 0x7DEA
+0x526E 0x7DE7
+0x526F 0x7DD7
+0x5270 0x7DE1
+0x5271 0x7E03
+0x5272 0x7DFA
+0x5273 0x7DE6
+0x5274 0x7DF6
+0x5275 0x7DF1
+0x5276 0x7DF0
+0x5277 0x7DEE
+0x5278 0x7DDF
+0x5279 0x7F76
+0x527A 0x7FAC
+0x527B 0x7FB0
+0x527C 0x7FAD
+0x527D 0x7FED
+0x527E 0x7FEB
+0x5321 0x7FEA
+0x5322 0x7FEC
+0x5323 0x7FE6
+0x5324 0x7FE8
+0x5325 0x8064
+0x5326 0x8067
+0x5327 0x81A3
+0x5328 0x819F
+0x5329 0x819E
+0x532A 0x8195
+0x532B 0x81A2
+0x532C 0x8199
+0x532D 0x8197
+0x532E 0x8216
+0x532F 0x824F
+0x5330 0x8253
+0x5331 0x8252
+0x5332 0x8250
+0x5333 0x824E
+0x5334 0x8251
+0x5335 0x8524
+0x5336 0x853B
+0x5337 0x850F
+0x5338 0x8500
+0x5339 0x8529
+0x533A 0x850E
+0x533B 0x8509
+0x533C 0x850D
+0x533D 0x851F
+0x533E 0x850A
+0x533F 0x8527
+0x5340 0x851C
+0x5341 0x84FB
+0x5342 0x852B
+0x5343 0x84FA
+0x5344 0x8508
+0x5345 0x850C
+0x5346 0x84F4
+0x5347 0x852A
+0x5348 0x84F2
+0x5349 0x8515
+0x534A 0x84F7
+0x534B 0x84EB
+0x534C 0x84F3
+0x534D 0x84FC
+0x534E 0x8512
+0x534F 0x84EA
+0x5350 0x84E9
+0x5351 0x8516
+0x5352 0x84FE
+0x5353 0x8528
+0x5354 0x851D
+0x5355 0x852E
+0x5356 0x8502
+0x5357 0x84FD
+0x5358 0x851E
+0x5359 0x84F6
+0x535A 0x8531
+0x535B 0x8526
+0x535C-0x535D 0x84E7
+0x535E 0x84F0
+0x535F 0x84EF
+0x5360 0x84F9
+0x5361 0x8518
+0x5362 0x8520
+0x5363 0x8530
+0x5364 0x850B
+0x5365 0x8519
+0x5366 0x852F
+0x5367 0x8662
+0x5368 0x8756
+0x5369-0x536A 0x8763
+0x536B 0x8777
+0x536C 0x87E1
+0x536D 0x8773
+0x536E 0x8758
+0x536F 0x8754
+0x5370 0x875B
+0x5371 0x8752
+0x5372 0x8761
+0x5373 0x875A
+0x5374 0x8751
+0x5375 0x875E
+0x5376 0x876D
+0x5377 0x876A
+0x5378 0x8750
+0x5379 0x874E
+0x537A 0x875F
+0x537B 0x875D
+0x537C 0x876F
+0x537D 0x876C
+0x537E 0x877A
+0x5421 0x876E
+0x5422 0x875C
+0x5423 0x8765
+0x5424 0x874F
+0x5425 0x877B
+0x5426 0x8775
+0x5427 0x8762
+0x5428 0x8767
+0x5429 0x8769
+0x542A 0x885A
+0x542B 0x8905
+0x542C 0x890C
+0x542D 0x8914
+0x542E 0x890B
+0x542F-0x5431 0x8917
+0x5432 0x8906
+0x5433 0x8916
+0x5434 0x8911
+0x5435 0x890E
+0x5436 0x8909
+0x5437 0x89A2
+0x5438 0x89A4
+0x5439 0x89A3
+0x543A 0x89ED
+0x543B 0x89F0
+0x543C 0x89EC
+0x543D 0x8ACF
+0x543E 0x8AC6
+0x543F 0x8AB8
+0x5440 0x8AD3
+0x5441 0x8AD1
+0x5442-0x5443 0x8AD4
+0x5444 0x8ABB
+0x5445 0x8AD7
+0x5446 0x8ABE
+0x5447 0x8AC0
+0x5448 0x8AC5
+0x5449 0x8AD8
+0x544A 0x8AC3
+0x544B 0x8ABA
+0x544C 0x8ABD
+0x544D 0x8AD9
+0x544E 0x8C3E
+0x544F 0x8C4D
+0x5450 0x8C8F
+0x5451 0x8CE5
+0x5452 0x8CDF
+0x5453 0x8CD9
+0x5454 0x8CE8
+0x5455 0x8CDA
+0x5456 0x8CDD
+0x5457 0x8CE7
+0x5458 0x8DA0
+0x5459 0x8D9C
+0x545A 0x8DA1
+0x545B 0x8D9B
+0x545C 0x8E20
+0x545D 0x8E23
+0x545E 0x8E25
+0x545F 0x8E24
+0x5460 0x8E2E
+0x5461 0x8E15
+0x5462 0x8E1B
+0x5463 0x8E16
+0x5464 0x8E11
+0x5465 0x8E19
+0x5466-0x5467 0x8E26
+0x5468 0x8E14
+0x5469 0x8E12
+0x546A 0x8E18
+0x546B 0x8E13
+0x546C 0x8E1C
+0x546D 0x8E17
+0x546E 0x8E1A
+0x546F 0x8F2C
+0x5470 0x8F24
+0x5471 0x8F18
+0x5472 0x8F1A
+0x5473 0x8F20
+0x5474 0x8F23
+0x5475-0x5476 0x8F16
+0x5477 0x9073
+0x5478 0x9070
+0x5479 0x906F
+0x547A 0x9067
+0x547B 0x906B
+0x547C 0x912F
+0x547D 0x912B
+0x547E 0x9129
+0x5521 0x912A
+0x5522 0x9132
+0x5523 0x9126
+0x5524 0x912E
+0x5525-0x5526 0x9185
+0x5527 0x918A
+0x5528-0x5529 0x9181
+0x552A 0x9184
+0x552B 0x9180
+0x552C 0x92D0
+0x552D-0x552E 0x92C3
+0x552F 0x92C0
+0x5530 0x92D9
+0x5531 0x92B6
+0x5532 0x92CF
+0x5533 0x92F1
+0x5534 0x92DF
+0x5535 0x92D8
+0x5536 0x92E9
+0x5537 0x92D7
+0x5538 0x92DD
+0x5539 0x92CC
+0x553A 0x92EF
+0x553B 0x92C2
+0x553C 0x92E8
+0x553D 0x92CA
+0x553E 0x92C8
+0x553F 0x92CE
+0x5540 0x92E6
+0x5541 0x92CD
+0x5542 0x92D5
+0x5543 0x92C9
+0x5544 0x92E0
+0x5545 0x92DE
+0x5546 0x92E7
+0x5547 0x92D1
+0x5548 0x92D3
+0x5549 0x92B5
+0x554A 0x92E1
+0x554B 0x9325
+0x554C 0x92C6
+0x554D 0x92B4
+0x554E 0x957C
+0x554F 0x95AC
+0x5550 0x95AB
+0x5551 0x95AE
+0x5552 0x95B0
+0x5553 0x96A4
+0x5554 0x96A2
+0x5555 0x96D3
+0x5556 0x9705
+0x5557 0x9708
+0x5558 0x9702
+0x5559 0x975A
+0x555A 0x978A
+0x555B 0x978E
+0x555C 0x9788
+0x555D 0x97D0
+0x555E 0x97CF
+0x555F 0x981E
+0x5560 0x981D
+0x5561 0x9826
+0x5562 0x9829
+0x5563 0x9828
+0x5564 0x9820
+0x5565 0x981B
+0x5566 0x9827
+0x5567 0x98B2
+0x5568 0x9908
+0x5569 0x98FA
+0x556A 0x9911
+0x556B 0x9914
+0x556C-0x556D 0x9916
+0x556E 0x9915
+0x556F 0x99DC
+0x5570 0x99CD
+0x5571 0x99CF
+0x5572-0x5573 0x99D3
+0x5574 0x99CE
+0x5575 0x99C9
+0x5576 0x99D6
+0x5577 0x99D8
+0x5578 0x99CB
+0x5579 0x99D7
+0x557A 0x99CC
+0x557B 0x9AB3
+0x557C 0x9AEC
+0x557D 0x9AEB
+0x557E 0x9AF3
+0x5621 0x9AF2
+0x5622 0x9AF1
+0x5623 0x9B46
+0x5624 0x9B43
+0x5625 0x9B67
+0x5626 0x9B74
+0x5627 0x9B71
+0x5628 0x9B66
+0x5629 0x9B76
+0x562A 0x9B75
+0x562B 0x9B70
+0x562C 0x9B68
+0x562D 0x9B64
+0x562E 0x9B6C
+0x562F 0x9CFC
+0x5630 0x9CFA
+0x5631 0x9CFD
+0x5632 0x9CFF
+0x5633 0x9CF7
+0x5634 0x9D07
+0x5635 0x9D00
+0x5636 0x9CF9
+0x5637 0x9CFB
+0x5638 0x9D08
+0x5639 0x9D05
+0x563A 0x9D04
+0x563B 0x9E83
+0x563C 0x9ED3
+0x563D-0x563E 0x9F0F
+0x563F 0x511C
+0x5640 0x5113
+0x5641 0x5117
+0x5642 0x511A
+0x5643 0x5111
+0x5644 0x51DE
+0x5645 0x5334
+0x5646 0x53E1
+0x5647 0x5670
+0x5648 0x5660
+0x5649 0x566E
+0x564A 0x5673
+0x564B 0x5666
+0x564C 0x5663
+0x564D 0x566D
+0x564E 0x5672
+0x564F 0x565E
+0x5650 0x5677
+0x5651 0x571C
+0x5652 0x571B
+0x5653 0x58C8
+0x5654 0x58BD
+0x5655 0x58C9
+0x5656 0x58BF
+0x5657 0x58BA
+0x5658 0x58C2
+0x5659 0x58BC
+0x565A 0x58C6
+0x565B 0x5B17
+0x565C 0x5B19
+0x565D 0x5B1B
+0x565E 0x5B21
+0x565F 0x5B14
+0x5660 0x5B13
+0x5661 0x5B10
+0x5662 0x5B16
+0x5663 0x5B28
+0x5664 0x5B1A
+0x5665 0x5B20
+0x5666 0x5B1E
+0x5667 0x5BEF
+0x5668 0x5DAC
+0x5669 0x5DB1
+0x566A 0x5DA9
+0x566B 0x5DA7
+0x566C 0x5DB5
+0x566D 0x5DB0
+0x566E 0x5DAE
+0x566F 0x5DAA
+0x5670 0x5DA8
+0x5671 0x5DB2
+0x5672 0x5DAD
+0x5673 0x5DAF
+0x5674 0x5DB4
+0x5675-0x5676 0x5E67
+0x5677 0x5E66
+0x5678 0x5E6F
+0x5679 0x5EE9
+0x567A 0x5EE7
+0x567B 0x5EE6
+0x567C 0x5EE8
+0x567D 0x5EE5
+0x567E 0x5F4B
+0x5721 0x5FBC
+0x5722 0x5FBB
+0x5723 0x619D
+0x5724 0x61A8
+0x5725 0x6196
+0x5726 0x61C5
+0x5727 0x61B4
+0x5728 0x61C6
+0x5729 0x61C1
+0x572A 0x61CC
+0x572B 0x61BA
+0x572C 0x61BF
+0x572D 0x61B8
+0x572E 0x618C
+0x572F 0x64D7
+0x5730 0x64D6
+0x5731 0x64D0
+0x5732 0x64CF
+0x5733 0x64C9
+0x5734 0x64BD
+0x5735 0x6489
+0x5736 0x64C3
+0x5737 0x64DB
+0x5738 0x64F3
+0x5739 0x64D9
+0x573A 0x6533
+0x573B 0x657F
+0x573C 0x657C
+0x573D 0x65A2
+0x573E 0x66C8
+0x573F 0x66BE
+0x5740 0x66C0
+0x5741-0x5742 0x66CA
+0x5743 0x66CF
+0x5744 0x66BD
+0x5745 0x66BB
+0x5746 0x66BA
+0x5747 0x66CC
+0x5748 0x6723
+0x5749 0x6A34
+0x574A 0x6A66
+0x574B 0x6A49
+0x574C 0x6A67
+0x574D 0x6A32
+0x574E 0x6A68
+0x574F 0x6A3E
+0x5750 0x6A5D
+0x5751 0x6A6D
+0x5752 0x6A76
+0x5753 0x6A5B
+0x5754 0x6A51
+0x5755 0x6A28
+0x5756 0x6A5A
+0x5757 0x6A3B
+0x5758 0x6A3F
+0x5759 0x6A41
+0x575A 0x6A6A
+0x575B 0x6A64
+0x575C 0x6A50
+0x575D 0x6A4F
+0x575E 0x6A54
+0x575F 0x6A6F
+0x5760 0x6A69
+0x5761 0x6A60
+0x5762 0x6A3C
+0x5763 0x6A5E
+0x5764 0x6A56
+0x5765 0x6A55
+0x5766-0x5767 0x6A4D
+0x5768 0x6A46
+0x5769 0x6B55
+0x576A 0x6B54
+0x576B 0x6B56
+0x576C 0x6BA7
+0x576D-0x576E 0x6BAA
+0x576F 0x6BC8
+0x5770 0x6BC7
+0x5771 0x6C04
+0x5772 0x6C03
+0x5773 0x6C06
+0x5774 0x6FAD
+0x5775 0x6FCB
+0x5776 0x6FA3
+0x5777 0x6FC7
+0x5778 0x6FBC
+0x5779 0x6FCE
+0x577A 0x6FC8
+0x577B 0x6F5E
+0x577C 0x6FC4
+0x577D 0x6FBD
+0x577E 0x6F9E
+0x5821 0x6FCA
+0x5822 0x6FA8
+0x5823 0x7004
+0x5824 0x6FA5
+0x5825 0x6FAE
+0x5826 0x6FBA
+0x5827 0x6FAC
+0x5828 0x6FAA
+0x5829 0x6FCF
+0x582A 0x6FBF
+0x582B 0x6FB8
+0x582C 0x6FA2
+0x582D 0x6FC9
+0x582E 0x6FAB
+0x582F 0x6FCD
+0x5830 0x6FAF
+0x5831 0x6FB2
+0x5832 0x6FB0
+0x5833 0x71C5
+0x5834 0x71C2
+0x5835 0x71BF
+0x5836 0x71B8
+0x5837 0x71D6
+0x5838-0x5839 0x71C0
+0x583A 0x71CB
+0x583B 0x71D4
+0x583C 0x71CA
+0x583D 0x71C7
+0x583E 0x71CF
+0x583F 0x71BD
+0x5840 0x71D8
+0x5841 0x71BC
+0x5842 0x71C6
+0x5843-0x5844 0x71DA
+0x5845-0x5846 0x729D
+0x5847 0x7369
+0x5848-0x5849 0x7366
+0x584A 0x736C
+0x584B 0x7365
+0x584C 0x736B
+0x584D 0x736A
+0x584E 0x747F
+0x584F 0x749A
+0x5850 0x74A0
+0x5851 0x7494
+0x5852 0x7492
+0x5853 0x7495
+0x5854 0x74A1
+0x5855 0x750B
+0x5856 0x7580
+0x5857 0x762F
+0x5858 0x762D
+0x5859 0x7631
+0x585A 0x763D
+0x585B 0x7633
+0x585C 0x763C
+0x585D 0x7635
+0x585E 0x7632
+0x585F 0x7630
+0x5860 0x76BB
+0x5861 0x76E6
+0x5862 0x779A
+0x5863 0x779D
+0x5864 0x77A1
+0x5865 0x779C
+0x5866 0x779B
+0x5867-0x5868 0x77A2
+0x5869 0x7795
+0x586A 0x7799
+0x586B 0x7797
+0x586C 0x78DD
+0x586D 0x78E9
+0x586E 0x78E5
+0x586F 0x78EA
+0x5870 0x78DE
+0x5871 0x78E3
+0x5872 0x78DB
+0x5873-0x5874 0x78E1
+0x5875 0x78ED
+0x5876-0x5877 0x78DF
+0x5878 0x79A4
+0x5879 0x7A44
+0x587A 0x7A48
+0x587B 0x7A47
+0x587C 0x7AB6
+0x587D 0x7AB8
+0x587E 0x7AB5
+0x5921 0x7AB1
+0x5922 0x7AB7
+0x5923 0x7BDE
+0x5924 0x7BE3
+0x5925 0x7BE7
+0x5926 0x7BDD
+0x5927 0x7BD5
+0x5928 0x7BE5
+0x5929 0x7BDA
+0x592A 0x7BE8
+0x592B 0x7BF9
+0x592C 0x7BD4
+0x592D 0x7BEA
+0x592E 0x7BE2
+0x592F 0x7BDC
+0x5930 0x7BEB
+0x5931 0x7BD8
+0x5932 0x7BDF
+0x5933 0x7CD2
+0x5934 0x7CD4
+0x5935 0x7CD7
+0x5936-0x5937 0x7CD0
+0x5938 0x7E12
+0x5939 0x7E21
+0x593A 0x7E17
+0x593B 0x7E0C
+0x593C-0x593D 0x7E1F
+0x593E 0x7E13
+0x593F 0x7E0E
+0x5940 0x7E1C
+0x5941 0x7E15
+0x5942 0x7E1A
+0x5943 0x7E22
+0x5944 0x7E0B
+0x5945 0x7E0F
+0x5946 0x7E16
+0x5947 0x7E0D
+0x5948 0x7E14
+0x5949 0x7E25
+0x594A 0x7E24
+0x594B 0x7F43
+0x594C-0x594D 0x7F7B
+0x594E 0x7F7A
+0x594F 0x7FB1
+0x5950 0x7FEF
+0x5951 0x802A
+0x5952 0x8029
+0x5953 0x806C
+0x5954 0x81B1
+0x5955 0x81A6
+0x5956 0x81AE
+0x5957 0x81B9
+0x5958 0x81B5
+0x5959 0x81AB
+0x595A 0x81B0
+0x595B 0x81AC
+0x595C 0x81B4
+0x595D 0x81B2
+0x595E 0x81B7
+0x595F 0x81A7
+0x5960 0x81F2
+0x5961-0x5963 0x8255
+0x5964 0x8556
+0x5965 0x8545
+0x5966 0x856B
+0x5967 0x854D
+0x5968 0x8553
+0x5969 0x8561
+0x596A 0x8558
+0x596B 0x8540
+0x596C 0x8546
+0x596D 0x8564
+0x596E 0x8541
+0x596F 0x8562
+0x5970 0x8544
+0x5971 0x8551
+0x5972 0x8547
+0x5973 0x8563
+0x5974 0x853E
+0x5975 0x855B
+0x5976 0x8571
+0x5977 0x854E
+0x5978 0x856E
+0x5979 0x8575
+0x597A 0x8555
+0x597B 0x8567
+0x597C 0x8560
+0x597D 0x858C
+0x597E 0x8566
+0x5A21 0x855D
+0x5A22 0x8554
+0x5A23 0x8565
+0x5A24 0x856C
+0x5A25 0x8663
+0x5A26 0x8665
+0x5A27 0x8664
+0x5A28 0x87A4
+0x5A29 0x879B
+0x5A2A 0x878F
+0x5A2B 0x8797
+0x5A2C 0x8793
+0x5A2D 0x8792
+0x5A2E 0x8788
+0x5A2F 0x8781
+0x5A30 0x8796
+0x5A31 0x8798
+0x5A32 0x8779
+0x5A33 0x8787
+0x5A34 0x87A3
+0x5A35 0x8785
+0x5A36-0x5A37 0x8790
+0x5A38 0x879D
+0x5A39 0x8784
+0x5A3A 0x8794
+0x5A3B 0x879C
+0x5A3C 0x879A
+0x5A3D 0x8789
+0x5A3E 0x891E
+0x5A3F 0x8926
+0x5A40 0x8930
+0x5A41-0x5A42 0x892D
+0x5A43 0x8927
+0x5A44 0x8931
+0x5A45 0x8922
+0x5A46 0x8929
+0x5A47 0x8923
+0x5A48 0x892F
+0x5A49 0x892C
+0x5A4A 0x891F
+0x5A4B 0x89F1
+0x5A4C 0x8AE0
+0x5A4D 0x8AE2
+0x5A4E 0x8AF2
+0x5A4F-0x5A50 0x8AF4
+0x5A51 0x8ADD
+0x5A52 0x8B14
+0x5A53 0x8AE4
+0x5A54 0x8ADF
+0x5A55 0x8AF0
+0x5A56 0x8AC8
+0x5A57 0x8ADE
+0x5A58 0x8AE1
+0x5A59 0x8AE8
+0x5A5A 0x8AFF
+0x5A5B 0x8AEF
+0x5A5C 0x8AFB
+0x5A5D-0x5A5E 0x8C91
+0x5A5F 0x8C90
+0x5A60 0x8CF5
+0x5A61 0x8CEE
+0x5A62 0x8CF1
+0x5A63 0x8CF0
+0x5A64 0x8CF3
+0x5A65 0x8D6C
+0x5A66 0x8D6E
+0x5A67 0x8DA5
+0x5A68 0x8DA7
+0x5A69 0x8E33
+0x5A6A 0x8E3E
+0x5A6B 0x8E38
+0x5A6C 0x8E40
+0x5A6D 0x8E45
+0x5A6E 0x8E36
+0x5A6F-0x5A70 0x8E3C
+0x5A71 0x8E41
+0x5A72 0x8E30
+0x5A73 0x8E3F
+0x5A74 0x8EBD
+0x5A75 0x8F36
+0x5A76 0x8F2E
+0x5A77 0x8F35
+0x5A78 0x8F32
+0x5A79 0x8F39
+0x5A7A 0x8F37
+0x5A7B 0x8F34
+0x5A7C 0x9076
+0x5A7D 0x9079
+0x5A7E 0x907B
+0x5B21 0x9086
+0x5B22 0x90FA
+0x5B23 0x9133
+0x5B24-0x5B25 0x9135
+0x5B26 0x9193
+0x5B27-0x5B28 0x9190
+0x5B29 0x918D
+0x5B2A 0x918F
+0x5B2B 0x9327
+0x5B2C 0x931E
+0x5B2D 0x9308
+0x5B2E 0x931F
+0x5B2F 0x9306
+0x5B30 0x930F
+0x5B31 0x937A
+0x5B32 0x9338
+0x5B33 0x933C
+0x5B34 0x931B
+0x5B35 0x9323
+0x5B36 0x9312
+0x5B37 0x9301
+0x5B38 0x9346
+0x5B39 0x932D
+0x5B3A 0x930E
+0x5B3B 0x930D
+0x5B3C 0x92CB
+0x5B3D 0x931D
+0x5B3E 0x92FA
+0x5B3F 0x9313
+0x5B40 0x92F9
+0x5B41 0x92F7
+0x5B42 0x9334
+0x5B43 0x9302
+0x5B44 0x9324
+0x5B45 0x92FF
+0x5B46 0x9329
+0x5B47 0x9339
+0x5B48 0x9335
+0x5B49 0x932A
+0x5B4A 0x9314
+0x5B4B 0x930C
+0x5B4C 0x930B
+0x5B4D 0x92FE
+0x5B4E 0x9309
+0x5B4F 0x9300
+0x5B50 0x92FB
+0x5B51 0x9316
+0x5B52 0x95BC
+0x5B53 0x95CD
+0x5B54 0x95BE
+0x5B55-0x5B56 0x95B9
+0x5B57 0x95B6
+0x5B58 0x95BF
+0x5B59 0x95B5
+0x5B5A 0x95BD
+0x5B5B 0x96A9
+0x5B5C 0x96D4
+0x5B5D 0x970B
+0x5B5E 0x9712
+0x5B5F 0x9710
+0x5B60 0x9799
+0x5B61 0x9797
+0x5B62 0x9794
+0x5B63 0x97F0
+0x5B64 0x97F8
+0x5B65 0x9835
+0x5B66 0x982F
+0x5B67 0x9832
+0x5B68 0x9924
+0x5B69 0x991F
+0x5B6A 0x9927
+0x5B6B 0x9929
+0x5B6C 0x999E
+0x5B6D 0x99EE
+0x5B6E 0x99EC
+0x5B6F 0x99E5
+0x5B70 0x99E4
+0x5B71 0x99F0
+0x5B72 0x99E3
+0x5B73 0x99EA
+0x5B74 0x99E9
+0x5B75 0x99E7
+0x5B76 0x9AB9
+0x5B77 0x9ABF
+0x5B78 0x9AB4
+0x5B79 0x9ABB
+0x5B7A 0x9AF6
+0x5B7B 0x9AFA
+0x5B7C 0x9AF9
+0x5B7D 0x9AF7
+0x5B7E 0x9B33
+0x5C21 0x9B80
+0x5C22 0x9B85
+0x5C23 0x9B87
+0x5C24 0x9B7C
+0x5C25 0x9B7E
+0x5C26 0x9B7B
+0x5C27 0x9B82
+0x5C28 0x9B93
+0x5C29 0x9B92
+0x5C2A 0x9B90
+0x5C2B 0x9B7A
+0x5C2C 0x9B95
+0x5C2D 0x9B7D
+0x5C2E 0x9B88
+0x5C2F 0x9D25
+0x5C30 0x9D17
+0x5C31 0x9D20
+0x5C32 0x9D1E
+0x5C33 0x9D14
+0x5C34 0x9D29
+0x5C35 0x9D1D
+0x5C36 0x9D18
+0x5C37 0x9D22
+0x5C38 0x9D10
+0x5C39 0x9D19
+0x5C3A 0x9D1F
+0x5C3B 0x9E88
+0x5C3C-0x5C3D 0x9E86
+0x5C3E 0x9EAE
+0x5C3F 0x9EAD
+0x5C40-0x5C41 0x9ED5
+0x5C42 0x9EFA
+0x5C43 0x9F12
+0x5C44 0x9F3D
+0x5C45 0x5126
+0x5C46 0x5125
+0x5C47 0x5122
+0x5C48 0x5124
+0x5C49 0x5120
+0x5C4A 0x5129
+0x5C4B 0x52F4
+0x5C4C 0x5693
+0x5C4D-0x5C4E 0x568C
+0x5C4F 0x5686
+0x5C50 0x5684
+0x5C51 0x5683
+0x5C52 0x567E
+0x5C53 0x5682
+0x5C54 0x567F
+0x5C55 0x5681
+0x5C56 0x58D6
+0x5C57 0x58D4
+0x5C58 0x58CF
+0x5C59 0x58D2
+0x5C5A 0x5B2D
+0x5C5B 0x5B25
+0x5C5C 0x5B32
+0x5C5D 0x5B23
+0x5C5E 0x5B2C
+0x5C5F 0x5B27
+0x5C60 0x5B26
+0x5C61 0x5B2F
+0x5C62 0x5B2E
+0x5C63 0x5B7B
+0x5C64-0x5C65 0x5BF1
+0x5C66 0x5DB7
+0x5C67 0x5E6C
+0x5C68 0x5E6A
+0x5C69 0x5FBE
+0x5C6A 0x61C3
+0x5C6B 0x61B5
+0x5C6C 0x61BC
+0x5C6D 0x61E7
+0x5C6E 0x61E0
+0x5C6F 0x61E5
+0x5C70 0x61E4
+0x5C71 0x61E8
+0x5C72 0x61DE
+0x5C73 0x64EF
+0x5C74 0x64E9
+0x5C75 0x64E3
+0x5C76 0x64EB
+0x5C77 0x64E4
+0x5C78 0x64E8
+0x5C79 0x6581
+0x5C7A 0x6580
+0x5C7B 0x65B6
+0x5C7C 0x65DA
+0x5C7D 0x66D2
+0x5C7E 0x6A8D
+0x5D21 0x6A96
+0x5D22 0x6A81
+0x5D23 0x6AA5
+0x5D24 0x6A89
+0x5D25 0x6A9F
+0x5D26 0x6A9B
+0x5D27 0x6AA1
+0x5D28 0x6A9E
+0x5D29 0x6A87
+0x5D2A 0x6A93
+0x5D2B 0x6A8E
+0x5D2C 0x6A95
+0x5D2D 0x6A83
+0x5D2E 0x6AA8
+0x5D2F 0x6AA4
+0x5D30 0x6A91
+0x5D31 0x6A7F
+0x5D32 0x6AA6
+0x5D33 0x6A9A
+0x5D34 0x6A85
+0x5D35 0x6A8C
+0x5D36 0x6A92
+0x5D37 0x6B5B
+0x5D38 0x6BAD
+0x5D39 0x6C09
+0x5D3A 0x6FCC
+0x5D3B 0x6FA9
+0x5D3C 0x6FF4
+0x5D3D 0x6FD4
+0x5D3E 0x6FE3
+0x5D3F 0x6FDC
+0x5D40 0x6FED
+0x5D41 0x6FE7
+0x5D42 0x6FE6
+0x5D43 0x6FDE
+0x5D44 0x6FF2
+0x5D45 0x6FDD
+0x5D46 0x6FE2
+0x5D47 0x6FE8
+0x5D48 0x71E1
+0x5D49 0x71F1
+0x5D4A 0x71E8
+0x5D4B 0x71F2
+0x5D4C 0x71E4
+0x5D4D 0x71F0
+0x5D4E 0x71E2
+0x5D4F 0x7373
+0x5D50-0x5D51 0x736E
+0x5D52 0x7497
+0x5D53 0x74B2
+0x5D54 0x74AB
+0x5D55 0x7490
+0x5D56 0x74AA
+0x5D57 0x74AD
+0x5D58 0x74B1
+0x5D59 0x74A5
+0x5D5A 0x74AF
+0x5D5B-0x5D5D 0x7510
+0x5D5E 0x750F
+0x5D5F 0x7584
+0x5D60 0x7643
+0x5D61-0x5D62 0x7648
+0x5D63 0x7647
+0x5D64 0x76A4
+0x5D65 0x76E9
+0x5D66 0x77B5
+0x5D67 0x77AB
+0x5D68 0x77B2
+0x5D69 0x77B7
+0x5D6A 0x77B6
+0x5D6B 0x77B4
+0x5D6C 0x77B1
+0x5D6D 0x77A8
+0x5D6E 0x77F0
+0x5D6F 0x78F3
+0x5D70 0x78FD
+0x5D71 0x7902
+0x5D72-0x5D73 0x78FB
+0x5D74 0x78FF
+0x5D75 0x78F2
+0x5D76 0x7905
+0x5D77 0x78F9
+0x5D78 0x78FE
+0x5D79 0x7904
+0x5D7A 0x79AB
+0x5D7B 0x79A8
+0x5D7C 0x7A5C
+0x5D7D 0x7A5B
+0x5D7E 0x7A56
+0x5E21 0x7A58
+0x5E22 0x7A54
+0x5E23 0x7A5A
+0x5E24 0x7ABE
+0x5E25-0x5E26 0x7AC0
+0x5E27 0x7C05
+0x5E28 0x7C0F
+0x5E29 0x7BF2
+0x5E2A 0x7C00
+0x5E2B 0x7BFF
+0x5E2C 0x7BFB
+0x5E2D 0x7C0E
+0x5E2E 0x7BF4
+0x5E2F 0x7C0B
+0x5E30 0x7BF3
+0x5E31 0x7C02
+0x5E32 0x7C09
+0x5E33 0x7C03
+0x5E34 0x7C01
+0x5E35 0x7BF8
+0x5E36 0x7BFD
+0x5E37 0x7C06
+0x5E38-0x5E39 0x7BF0
+0x5E3A 0x7C10
+0x5E3B 0x7C0A
+0x5E3C 0x7CE8
+0x5E3D 0x7E2D
+0x5E3E 0x7E3C
+0x5E3F 0x7E42
+0x5E40 0x7E33
+0x5E41 0x9848
+0x5E42 0x7E38
+0x5E43 0x7E2A
+0x5E44 0x7E49
+0x5E45 0x7E40
+0x5E46 0x7E47
+0x5E47 0x7E29
+0x5E48 0x7E4C
+0x5E49 0x7E30
+0x5E4A 0x7E3B
+0x5E4B 0x7E36
+0x5E4C 0x7E44
+0x5E4D 0x7E3A
+0x5E4E 0x7F45
+0x5E4F 0x7F7F
+0x5E50 0x7F7E
+0x5E51 0x7F7D
+0x5E52 0x7FF4
+0x5E53 0x7FF2
+0x5E54 0x802C
+0x5E55 0x81BB
+0x5E56 0x81C4
+0x5E57 0x81CC
+0x5E58 0x81CA
+0x5E59 0x81C5
+0x5E5A 0x81C7
+0x5E5B 0x81BC
+0x5E5C 0x81E9
+0x5E5D 0x825B
+0x5E5E 0x825A
+0x5E5F 0x825C
+0x5E60 0x8583
+0x5E61 0x8580
+0x5E62 0x858F
+0x5E63 0x85A7
+0x5E64 0x8595
+0x5E65 0x85A0
+0x5E66 0x858B
+0x5E67 0x85A3
+0x5E68 0x857B
+0x5E69 0x85A4
+0x5E6A 0x859A
+0x5E6B 0x859E
+0x5E6C 0x8577
+0x5E6D 0x857C
+0x5E6E 0x8589
+0x5E6F 0x85A1
+0x5E70 0x857A
+0x5E71 0x8578
+0x5E72 0x8557
+0x5E73 0x858E
+0x5E74 0x8596
+0x5E75 0x8586
+0x5E76 0x858D
+0x5E77 0x8599
+0x5E78 0x859D
+0x5E79 0x8581
+0x5E7A 0x85A2
+0x5E7B 0x8582
+0x5E7C 0x8588
+0x5E7D 0x8585
+0x5E7E 0x8579
+0x5F21 0x8576
+0x5F22 0x8598
+0x5F23 0x8590
+0x5F24 0x859F
+0x5F25 0x8668
+0x5F26 0x87BE
+0x5F27 0x87AA
+0x5F28 0x87AD
+0x5F29 0x87C5
+0x5F2A 0x87B0
+0x5F2B 0x87AC
+0x5F2C 0x87B9
+0x5F2D 0x87B5
+0x5F2E 0x87BC
+0x5F2F 0x87AE
+0x5F30 0x87C9
+0x5F31 0x87C3
+0x5F32 0x87C2
+0x5F33 0x87CC
+0x5F34 0x87B7
+0x5F35 0x87AF
+0x5F36 0x87C4
+0x5F37 0x87CA
+0x5F38 0x87B4
+0x5F39 0x87B6
+0x5F3A 0x87BF
+0x5F3B 0x87B8
+0x5F3C 0x87BD
+0x5F3D 0x87DE
+0x5F3E 0x87B2
+0x5F3F 0x8935
+0x5F40 0x8933
+0x5F41 0x893C
+0x5F42 0x893E
+0x5F43 0x8941
+0x5F44 0x8952
+0x5F45 0x8937
+0x5F46 0x8942
+0x5F47 0x89AD
+0x5F48 0x89AF
+0x5F49 0x89AE
+0x5F4A-0x5F4B 0x89F2
+0x5F4C 0x8B1E
+0x5F4D 0x8B18
+0x5F4E 0x8B16
+0x5F4F 0x8B11
+0x5F50 0x8B05
+0x5F51 0x8B0B
+0x5F52 0x8B22
+0x5F53 0x8B0F
+0x5F54 0x8B12
+0x5F55 0x8B15
+0x5F56 0x8B07
+0x5F57 0x8B0D
+0x5F58 0x8B08
+0x5F59 0x8B06
+0x5F5A 0x8B1C
+0x5F5B 0x8B13
+0x5F5C 0x8B1A
+0x5F5D 0x8C4F
+0x5F5E 0x8C70
+0x5F5F 0x8C72
+0x5F60 0x8C71
+0x5F61 0x8C6F
+0x5F62 0x8C95
+0x5F63 0x8C94
+0x5F64 0x8CF9
+0x5F65 0x8D6F
+0x5F66 0x8E4E
+0x5F67 0x8E4D
+0x5F68 0x8E53
+0x5F69 0x8E50
+0x5F6A 0x8E4C
+0x5F6B 0x8E47
+0x5F6C 0x8F43
+0x5F6D 0x8F40
+0x5F6E 0x9085
+0x5F6F 0x907E
+0x5F70 0x9138
+0x5F71 0x919A
+0x5F72 0x91A2
+0x5F73 0x919B
+0x5F74 0x9199
+0x5F75 0x919F
+0x5F76 0x91A1
+0x5F77 0x919D
+0x5F78 0x91A0
+0x5F79 0x93A1
+0x5F7A 0x9383
+0x5F7B 0x93AF
+0x5F7C 0x9364
+0x5F7D 0x9356
+0x5F7E 0x9347
+0x6021 0x937C
+0x6022 0x9358
+0x6023 0x935C
+0x6024 0x9376
+0x6025 0x9349
+0x6026-0x6027 0x9350
+0x6028 0x9360
+0x6029 0x936D
+0x602A 0x938F
+0x602B 0x934C
+0x602C 0x936A
+0x602D 0x9379
+0x602E 0x9357
+0x602F 0x9355
+0x6030 0x9352
+0x6031 0x934F
+0x6032 0x9371
+0x6033 0x9377
+0x6034 0x937B
+0x6035 0x9361
+0x6036 0x935E
+0x6037 0x9363
+0x6038 0x9367
+0x6039 0x934E
+0x603A 0x9359
+0x603B 0x95C7
+0x603C 0x95C0
+0x603D 0x95C9
+0x603E 0x95C3
+0x603F 0x95C5
+0x6040 0x95B7
+0x6041 0x96AE
+0x6042 0x96B0
+0x6043 0x96AC
+0x6044 0x9720
+0x6045 0x971F
+0x6046 0x9718
+0x6047 0x971D
+0x6048 0x9719
+0x6049 0x979A
+0x604A 0x97A1
+0x604B 0x979C
+0x604C 0x979E
+0x604D 0x979D
+0x604E 0x97D5
+0x604F 0x97D4
+0x6050 0x97F1
+0x6051 0x9841
+0x6052 0x9844
+0x6053 0x984A
+0x6054 0x9849
+0x6055 0x9845
+0x6056 0x9843
+0x6057 0x9925
+0x6058-0x6059 0x992B
+0x605A 0x992A
+0x605B 0x9933
+0x605C 0x9932
+0x605D 0x992F
+0x605E 0x992D
+0x605F 0x9931
+0x6060 0x9930
+0x6061 0x9998
+0x6062 0x99A3
+0x6063 0x99A1
+0x6064 0x9A02
+0x6065 0x99FA
+0x6066 0x99F4
+0x6067 0x99F7
+0x6068 0x99F9
+0x6069 0x99F8
+0x606A 0x99F6
+0x606B 0x99FB
+0x606C-0x606D 0x99FD
+0x606E 0x99FC
+0x606F 0x9A03
+0x6070 0x9ABE
+0x6071 0x9AFE
+0x6072 0x9AFD
+0x6073 0x9B01
+0x6074 0x9AFC
+0x6075 0x9B48
+0x6076 0x9B9A
+0x6077 0x9BA8
+0x6078 0x9B9E
+0x6079 0x9B9B
+0x607A 0x9BA6
+0x607B 0x9BA1
+0x607C 0x9BA5
+0x607D 0x9BA4
+0x607E 0x9B86
+0x6121 0x9BA2
+0x6122 0x9BA0
+0x6123 0x9BAF
+0x6124 0x9D33
+0x6125 0x9D41
+0x6126 0x9D67
+0x6127 0x9D36
+0x6128-0x6129 0x9D2E
+0x612A 0x9D31
+0x612B 0x9D38
+0x612C 0x9D30
+0x612D 0x9D45
+0x612E-0x612F 0x9D42
+0x6130 0x9D3E
+0x6131 0x9D37
+0x6132 0x9D40
+0x6133 0x9D3D
+0x6134 0x7FF5
+0x6135 0x9D2D
+0x6136 0x9E8A
+0x6137 0x9E89
+0x6138 0x9E8D
+0x6139 0x9EB0
+0x613A 0x9EC8
+0x613B 0x9EDA
+0x613C 0x9EFB
+0x613D 0x9EFF
+0x613E 0x9F24
+0x613F 0x9F23
+0x6140 0x9F22
+0x6141 0x9F54
+0x6142 0x9FA0
+0x6143 0x5131
+0x6144-0x6145 0x512D
+0x6146 0x5698
+0x6147 0x569C
+0x6148 0x5697
+0x6149 0x569A
+0x614A 0x569D
+0x614B 0x5699
+0x614C 0x5970
+0x614D 0x5B3C
+0x614E-0x614F 0x5C69
+0x6150 0x5DC0
+0x6151-0x6152 0x5E6D
+0x6153 0x61D8
+0x6154 0x61DF
+0x6155-0x6156 0x61ED
+0x6157 0x61F1
+0x6158 0x61EA
+0x6159 0x61F0
+0x615A 0x61EB
+0x615B 0x61D6
+0x615C 0x61E9
+0x615D 0x64FF
+0x615E 0x6504
+0x615F 0x64FD
+0x6160 0x64F8
+0x6161 0x6501
+0x6162 0x6503
+0x6163 0x64FC
+0x6164 0x6594
+0x6165 0x65DB
+0x6166-0x6167 0x66DA
+0x6168 0x66D8
+0x6169 0x6AC5
+0x616A 0x6AB9
+0x616B 0x6ABD
+0x616C 0x6AE1
+0x616D 0x6AC6
+0x616E 0x6ABA
+0x616F-0x6170 0x6AB6
+0x6171 0x6AC7
+0x6172 0x6AB4
+0x6173 0x6AAD
+0x6174 0x6B5E
+0x6175 0x6BC9
+0x6176 0x6C0B
+0x6177 0x7007
+0x6178-0x6179 0x700C
+0x617A 0x7001
+0x617B 0x7005
+0x617C 0x7014
+0x617D 0x700E
+0x617E 0x6FFF
+0x6221 0x7000
+0x6222 0x6FFB
+0x6223 0x7026
+0x6224 0x6FFC
+0x6225 0x6FF7
+0x6226 0x700A
+0x6227 0x7201
+0x6228 0x71FF
+0x6229 0x71F9
+0x622A 0x7203
+0x622B 0x71FD
+0x622C 0x7376
+0x622D 0x74B8
+0x622E 0x74C0
+0x622F 0x74B5
+0x6230 0x74C1
+0x6231 0x74BE
+0x6232 0x74B6
+0x6233 0x74BB
+0x6234 0x74C2
+0x6235 0x7514
+0x6236 0x7513
+0x6237 0x765C
+0x6238 0x7664
+0x6239 0x7659
+0x623A 0x7650
+0x623B 0x7653
+0x623C 0x7657
+0x623D 0x765A
+0x623E 0x76A6
+0x623F 0x76BD
+0x6240 0x76EC
+0x6241 0x77C2
+0x6242 0x77BA
+0x6243 0x790C
+0x6244-0x6245 0x7913
+0x6246 0x7909
+0x6247 0x7910
+0x6248 0x7912
+0x6249 0x7911
+0x624A 0x79AD
+0x624B 0x79AC
+0x624C 0x7A5F
+0x624D 0x7C1C
+0x624E 0x7C29
+0x624F 0x7C19
+0x6250 0x7C20
+0x6251 0x7C1F
+0x6252 0x7C2D
+0x6253 0x7C1D
+0x6254 0x7C26
+0x6255 0x7C28
+0x6256 0x7C22
+0x6257 0x7C25
+0x6258 0x7C30
+0x6259 0x7E5C
+0x625A 0x7E50
+0x625B 0x7E56
+0x625C 0x7E63
+0x625D 0x7E58
+0x625E 0x7E62
+0x625F 0x7E5F
+0x6260 0x7E51
+0x6261 0x7E60
+0x6262 0x7E57
+0x6263 0x7E53
+0x6264 0x7FB5
+0x6265 0x7FB3
+0x6266-0x6267 0x7FF7
+0x6268 0x8075
+0x6269-0x626A 0x81D1
+0x626B 0x81D0
+0x626C 0x825F
+0x626D 0x825E
+0x626E 0x85B4
+0x626F 0x85C6
+0x6270 0x85C0
+0x6271 0x85C3
+0x6272 0x85C2
+0x6273 0x85B3
+0x6274 0x85B5
+0x6275 0x85BD
+0x6276 0x85C7
+0x6277 0x85C4
+0x6278 0x85BF
+0x6279 0x85CB
+0x627A 0x85CE
+0x627B 0x85C8
+0x627C 0x85C5
+0x627D 0x85B1
+0x627E 0x85B6
+0x6321 0x85D2
+0x6322 0x8624
+0x6323 0x85B8
+0x6324 0x85B7
+0x6325 0x85BE
+0x6326 0x8669
+0x6327 0x87E7
+0x6328 0x87E6
+0x6329 0x87E2
+0x632A 0x87DB
+0x632B 0x87EB
+0x632C 0x87EA
+0x632D 0x87E5
+0x632E 0x87DF
+0x632F 0x87F3
+0x6330 0x87E4
+0x6331 0x87D4
+0x6332 0x87DC
+0x6333 0x87D3
+0x6334 0x87ED
+0x6335 0x87D8
+0x6336 0x87E3
+0x6337 0x87D7
+0x6338 0x87D9
+0x6339 0x8801
+0x633A 0x87F4
+0x633B 0x87E8
+0x633C 0x87DD
+0x633D 0x8953
+0x633E 0x894B
+0x633F 0x894F
+0x6340 0x894C
+0x6341 0x8946
+0x6342-0x6343 0x8950
+0x6344 0x8949
+0x6345 0x8B2A
+0x6346 0x8B27
+0x6347 0x8B23
+0x6348 0x8B33
+0x6349 0x8B30
+0x634A 0x8B35
+0x634B 0x8B47
+0x634C 0x8B2F
+0x634D 0x8B3C
+0x634E 0x8B3E
+0x634F 0x8B31
+0x6350 0x8B25
+0x6351 0x8B37
+0x6352 0x8B26
+0x6353 0x8B36
+0x6354 0x8B2E
+0x6355 0x8B24
+0x6356 0x8B3B
+0x6357 0x8B3D
+0x6358 0x8B3A
+0x6359 0x8C42
+0x635A 0x8C75
+0x635B 0x8C99
+0x635C 0x8C98
+0x635D 0x8C97
+0x635E 0x8CFE
+0x635F 0x8D04
+0x6360 0x8D02
+0x6361 0x8D00
+0x6362 0x8E5C
+0x6363 0x8E62
+0x6364 0x8E60
+0x6365 0x8E57
+0x6366 0x8E56
+0x6367 0x8E5E
+0x6368 0x8E65
+0x6369 0x8E67
+0x636A 0x8E5B
+0x636B 0x8E5A
+0x636C 0x8E61
+0x636D 0x8E5D
+0x636E 0x8E69
+0x636F 0x8E54
+0x6370-0x6372 0x8F46
+0x6373 0x8F4B
+0x6374 0x9128
+0x6375-0x6376 0x913A
+0x6377 0x913E
+0x6378 0x91A8
+0x6379 0x91A5
+0x637A 0x91A7
+0x637B 0x91AF
+0x637C 0x91AA
+0x637D 0x93B5
+0x637E 0x938C
+0x6421 0x9392
+0x6422 0x93B7
+0x6423 0x939B
+0x6424 0x939D
+0x6425 0x9389
+0x6426 0x93A7
+0x6427 0x938E
+0x6428 0x93AA
+0x6429 0x939E
+0x642A 0x93A6
+0x642B 0x9395
+0x642C 0x9388
+0x642D 0x9399
+0x642E 0x939F
+0x642F 0x9380
+0x6430 0x938D
+0x6431 0x93B1
+0x6432 0x9391
+0x6433 0x93B2
+0x6434 0x93A4
+0x6435 0x93A8
+0x6436 0x93B4
+0x6437 0x93A3
+0x6438-0x6439 0x95D2
+0x643A 0x95D1
+0x643B 0x96B3
+0x643C 0x96D7
+0x643D 0x96DA
+0x643E 0x5DC2
+0x643F 0x96DF
+0x6440 0x96D8
+0x6441 0x96DD
+0x6442 0x9723
+0x6443 0x9722
+0x6444 0x9725
+0x6445 0x97AC
+0x6446 0x97AE
+0x6447 0x97A8
+0x6448 0x97AB
+0x6449 0x97A4
+0x644A 0x97AA
+0x644B 0x97A2
+0x644C 0x97A5
+0x644D 0x97D7
+0x644E 0x97D9
+0x644F 0x97D6
+0x6450 0x97D8
+0x6451 0x97FA
+0x6452-0x6454 0x9850
+0x6455 0x98B8
+0x6456 0x9941
+0x6457 0x993C
+0x6458 0x993A
+0x6459 0x9A0F
+0x645A 0x9A0B
+0x645B 0x9A09
+0x645C 0x9A0D
+0x645D 0x9A04
+0x645E 0x9A11
+0x645F 0x9A0A
+0x6460 0x9A05
+0x6461 0x9A07
+0x6462 0x9A06
+0x6463 0x9AC0
+0x6464 0x9ADC
+0x6465 0x9B08
+0x6466-0x6467 0x9B04
+0x6468 0x9B29
+0x6469 0x9B35
+0x646A 0x9B4A
+0x646B 0x9B4C
+0x646C 0x9B4B
+0x646D 0x9BC7
+0x646E 0x9BC6
+0x646F 0x9BC3
+0x6470 0x9BBF
+0x6471 0x9BC1
+0x6472 0x9BB5
+0x6473 0x9BB8
+0x6474 0x9BD3
+0x6475 0x9BB6
+0x6476 0x9BC4
+0x6477 0x9BB9
+0x6478 0x9BBD
+0x6479 0x9D5C
+0x647A 0x9D53
+0x647B 0x9D4F
+0x647C 0x9D4A
+0x647D 0x9D5B
+0x647E 0x9D4B
+0x6521 0x9D59
+0x6522 0x9D56
+0x6523 0x9D4C
+0x6524 0x9D57
+0x6525 0x9D52
+0x6526 0x9D54
+0x6527 0x9D5F
+0x6528 0x9D58
+0x6529 0x9D5A
+0x652A 0x9E8E
+0x652B 0x9E8C
+0x652C 0x9EDF
+0x652D 0x9F01
+0x652E 0x9F00
+0x652F 0x9F16
+0x6530 0x9F25
+0x6531 0x9F2B
+0x6532 0x9F2A
+0x6533 0x9F29
+0x6534 0x9F28
+0x6535 0x9F4C
+0x6536 0x9F55
+0x6537-0x6538 0x5134
+0x6539 0x5296
+0x653A 0x52F7
+0x653B 0x53B4
+0x653C 0x56AB
+0x653D 0x56AD
+0x653E-0x653F 0x56A6
+0x6540 0x56AA
+0x6541 0x56AC
+0x6542 0x58DA
+0x6543 0x58DD
+0x6544 0x58DB
+0x6545 0x5912
+0x6546-0x6548 0x5B3D
+0x6549 0x5DC3
+0x654A 0x5E70
+0x654B 0x5FBF
+0x654C 0x61FB
+0x654D 0x6507
+0x654E 0x6510
+0x654F 0x650D
+0x6550 0x6509
+0x6551 0x650C
+0x6552 0x650E
+0x6553 0x6584
+0x6554 0x65DE
+0x6555 0x65DD
+0x6556 0x66DE
+0x6557 0x6AE7
+0x6558 0x6AE0
+0x6559 0x6ACC
+0x655A 0x6AD1
+0x655B 0x6AD9
+0x655C 0x6ACB
+0x655D 0x6ADF
+0x655E 0x6ADC
+0x655F 0x6AD0
+0x6560 0x6AEB
+0x6561 0x6ACF
+0x6562 0x6ACD
+0x6563 0x6ADE
+0x6564 0x6B60
+0x6565 0x6BB0
+0x6566 0x6C0C
+0x6567 0x7019
+0x6568 0x7027
+0x6569 0x7020
+0x656A 0x7016
+0x656B 0x702B
+0x656C-0x656E 0x7021
+0x656F 0x7029
+0x6570 0x7017
+0x6571 0x7024
+0x6572 0x701C
+0x6573 0x720C
+0x6574 0x720A
+0x6575 0x7207
+0x6576 0x7202
+0x6577 0x7205
+0x6578-0x6579 0x72A5
+0x657A 0x72A4
+0x657B 0x72A3
+0x657C 0x72A1
+0x657D 0x74CB
+0x657E 0x74C5
+0x6621 0x74B7
+0x6622 0x74C3
+0x6623 0x7516
+0x6624 0x7660
+0x6625-0x6626 0x77C9
+0x6627 0x77C4
+0x6628 0x77F1
+0x6629 0x791D
+0x662A 0x791B
+0x662B 0x7934
+0x662C 0x791C
+0x662D 0x7917
+0x662E 0x791E
+0x662F 0x79B0
+0x6630-0x6631 0x7A67
+0x6632 0x7C33
+0x6633 0x7C3C
+0x6634 0x7C39
+0x6635 0x7C2C
+0x6636 0x7C3B
+0x6637 0x7CEC
+0x6638 0x7CEA
+0x6639 0x7E76
+0x663A 0x7E75
+0x663B 0x7E78
+0x663C 0x7E70
+0x663D 0x7E77
+0x663E 0x7E6F
+0x663F 0x7E7A
+0x6640 0x7E72
+0x6641 0x7E74
+0x6642 0x7E68
+0x6643 0x7F4B
+0x6644 0x7F4A
+0x6645 0x7F83
+0x6646 0x7F86
+0x6647 0x7FB7
+0x6648-0x6649 0x7FFD
+0x664A 0x8078
+0x664B 0x81D7
+0x664C 0x81D5
+0x664D 0x820B
+0x664E 0x8264
+0x664F 0x8261
+0x6650 0x8263
+0x6651 0x85EB
+0x6652 0x85F1
+0x6653 0x85ED
+0x6654 0x85D9
+0x6655 0x85E1
+0x6656 0x85E8
+0x6657 0x85DA
+0x6658 0x85D7
+0x6659 0x85EC
+0x665A 0x85F2
+0x665B 0x85F8
+0x665C 0x85D8
+0x665D 0x85DF
+0x665E 0x85E3
+0x665F 0x85DC
+0x6660 0x85D1
+0x6661 0x85F0
+0x6662 0x85E6
+0x6663 0x85EF
+0x6664 0x85DE
+0x6665 0x85E2
+0x6666 0x8800
+0x6667 0x87FA
+0x6668 0x8803
+0x6669-0x666A 0x87F6
+0x666B 0x8809
+0x666C 0x880C
+0x666D 0x880B
+0x666E 0x8806
+0x666F 0x87FC
+0x6670 0x8808
+0x6671 0x87FF
+0x6672 0x880A
+0x6673 0x8802
+0x6674 0x8962
+0x6675-0x6676 0x895A
+0x6677 0x8957
+0x6678 0x8961
+0x6679 0x895C
+0x667A 0x8958
+0x667B 0x895D
+0x667C 0x8959
+0x667D 0x8988
+0x667E 0x89B7
+0x6721 0x89B6
+0x6722 0x89F6
+0x6723 0x8B50
+0x6724 0x8B48
+0x6725 0x8B4A
+0x6726 0x8B40
+0x6727 0x8B53
+0x6728 0x8B56
+0x6729 0x8B54
+0x672A 0x8B4B
+0x672B 0x8B55
+0x672C 0x8B51
+0x672D 0x8B42
+0x672E 0x8B52
+0x672F 0x8B57
+0x6730 0x8C43
+0x6731 0x8C77
+0x6732 0x8C76
+0x6733 0x8C9A
+0x6734-0x6735 0x8D06
+0x6736 0x8D09
+0x6737 0x8DAC
+0x6738 0x8DAA
+0x6739 0x8DAD
+0x673A 0x8DAB
+0x673B 0x8E6D
+0x673C 0x8E78
+0x673D 0x8E73
+0x673E 0x8E6A
+0x673F 0x8E6F
+0x6740 0x8E7B
+0x6741 0x8EC2
+0x6742 0x8F52
+0x6743 0x8F51
+0x6744-0x6745 0x8F4F
+0x6746 0x8F53
+0x6747 0x8FB4
+0x6748 0x9140
+0x6749 0x913F
+0x674A 0x91B0
+0x674B 0x91AD
+0x674C 0x93DE
+0x674D 0x93C7
+0x674E 0x93CF
+0x674F 0x93C2
+0x6750 0x93DA
+0x6751 0x93D0
+0x6752 0x93F9
+0x6753 0x93EC
+0x6754 0x93CC
+0x6755 0x93D9
+0x6756 0x93A9
+0x6757 0x93E6
+0x6758 0x93CA
+0x6759 0x93D4
+0x675A 0x93EE
+0x675B 0x93E3
+0x675C 0x93D5
+0x675D 0x93C4
+0x675E 0x93CE
+0x675F 0x93C0
+0x6760 0x93D2
+0x6761 0x93A5
+0x6762 0x93E7
+0x6763 0x957D
+0x6764-0x6765 0x95DA
+0x6766 0x96E1
+0x6767 0x9729
+0x6768-0x6769 0x972B
+0x676A 0x9728
+0x676B 0x9726
+0x676C 0x97B3
+0x676D 0x97B7
+0x676E 0x97B6
+0x676F-0x6771 0x97DD
+0x6772 0x985C
+0x6773 0x9859
+0x6774 0x985D
+0x6775 0x9857
+0x6776 0x98BF
+0x6777 0x98BD
+0x6778 0x98BB
+0x6779 0x98BE
+0x677A 0x9948
+0x677B 0x9947
+0x677C 0x9943
+0x677D-0x677E 0x99A6
+0x6821 0x9A1A
+0x6822 0x9A15
+0x6823 0x9A25
+0x6824 0x9A1D
+0x6825 0x9A24
+0x6826 0x9A1B
+0x6827 0x9A22
+0x6828 0x9A20
+0x6829 0x9A27
+0x682A 0x9A23
+0x682B 0x9A1E
+0x682C 0x9A1C
+0x682D 0x9A14
+0x682E 0x9AC2
+0x682F 0x9B0B
+0x6830 0x9B0A
+0x6831 0x9B0E
+0x6832 0x9B0C
+0x6833 0x9B37
+0x6834-0x6835 0x9BEA
+0x6836 0x9BE0
+0x6837 0x9BDE
+0x6838 0x9BE4
+0x6839 0x9BE6
+0x683A 0x9BE2
+0x683B 0x9BF0
+0x683C 0x9BD4
+0x683D 0x9BD7
+0x683E 0x9BEC
+0x683F 0x9BDC
+0x6840 0x9BD9
+0x6841 0x9BE5
+0x6842 0x9BD5
+0x6843 0x9BE1
+0x6844 0x9BDA
+0x6845 0x9D77
+0x6846 0x9D81
+0x6847 0x9D8A
+0x6848 0x9D84
+0x6849 0x9D88
+0x684A 0x9D71
+0x684B 0x9D80
+0x684C 0x9D78
+0x684D 0x9D86
+0x684E-0x684F 0x9D8B
+0x6850 0x9D7D
+0x6851 0x9D6B
+0x6852-0x6853 0x9D74
+0x6854 0x9D70
+0x6855 0x9D69
+0x6856 0x9D85
+0x6857 0x9D73
+0x6858 0x9D7B
+0x6859 0x9D82
+0x685A 0x9D6F
+0x685B 0x9D79
+0x685C 0x9D7F
+0x685D 0x9D87
+0x685E 0x9D68
+0x685F 0x9E94
+0x6860 0x9E91
+0x6861 0x9EC0
+0x6862 0x9EFC
+0x6863 0x9F2D
+0x6864-0x6865 0x9F40
+0x6866 0x9F4D
+0x6867-0x6869 0x9F56
+0x686A 0x5337
+0x686B 0x56B2
+0x686C 0x56B5
+0x686D 0x56B3
+0x686E 0x58E3
+0x686F 0x5B45
+0x6870-0x6871 0x5DC6
+0x6872-0x6873 0x5EEE
+0x6874-0x6875 0x5FC0
+0x6876 0x61F9
+0x6877 0x6517
+0x6878 0x6516
+0x6879 0x6515
+0x687A 0x6513
+0x687B 0x65DF
+0x687C 0x66E8
+0x687D-0x687E 0x66E3
+0x6921 0x6AF3
+0x6922 0x6AF0
+0x6923 0x6AEA
+0x6924 0x6AE8
+0x6925 0x6AF9
+0x6926 0x6AF1
+0x6927-0x6928 0x6AEE
+0x6929 0x703C
+0x692A 0x7035
+0x692B 0x702F
+0x692C 0x7037
+0x692D 0x7034
+0x692E 0x7031
+0x692F 0x7042
+0x6930 0x7038
+0x6931 0x703F
+0x6932 0x703A
+0x6933 0x7039
+0x6934 0x702A
+0x6935 0x7040
+0x6936 0x703B
+0x6937 0x7033
+0x6938 0x7041
+0x6939-0x693A 0x7213
+0x693B 0x72A8
+0x693C 0x737D
+0x693D 0x737C
+0x693E 0x74BA
+0x693F 0x76AB
+0x6940 0x76AA
+0x6941 0x76BE
+0x6942 0x76ED
+0x6943 0x77CC
+0x6944-0x6945 0x77CE
+0x6946 0x77CD
+0x6947 0x77F2
+0x6948 0x7925
+0x6949 0x7923
+0x694A-0x694B 0x7927
+0x694C 0x7924
+0x694D 0x7929
+0x694E 0x79B2
+0x694F 0x7A6E
+0x6950-0x6951 0x7A6C
+0x6952 0x7AF7
+0x6953 0x7C49
+0x6954 0x7C48
+0x6955 0x7C4A
+0x6956 0x7C47
+0x6957 0x7C45
+0x6958 0x7CEE
+0x6959 0x7E7B
+0x695A 0x7E7E
+0x695B 0x7E81
+0x695C 0x7E80
+0x695D 0x7FBA
+0x695E 0x7FFF
+0x695F 0x8079
+0x6960 0x81DB
+0x6961 0x81D9
+0x6962-0x6963 0x8268
+0x6964 0x8622
+0x6965 0x85FF
+0x6966 0x8601
+0x6967 0x85FE
+0x6968 0x861B
+0x6969 0x8600
+0x696A 0x85F6
+0x696B 0x8604
+0x696C 0x8609
+0x696D 0x8605
+0x696E 0x860C
+0x696F 0x85FD
+0x6970 0x8819
+0x6971-0x6972 0x8810
+0x6973 0x8817
+0x6974 0x8813
+0x6975 0x8816
+0x6976 0x8963
+0x6977 0x8966
+0x6978 0x89B9
+0x6979 0x89F7
+0x697A 0x8B60
+0x697B 0x8B6A
+0x697C 0x8B5D
+0x697D 0x8B68
+0x697E 0x8B63
+0x6A21 0x8B65
+0x6A22 0x8B67
+0x6A23 0x8B6D
+0x6A24 0x8DAE
+0x6A25 0x8E86
+0x6A26 0x8E88
+0x6A27 0x8E84
+0x6A28 0x8F59
+0x6A29-0x6A2A 0x8F56
+0x6A2B 0x8F55
+0x6A2C 0x8F58
+0x6A2D 0x8F5A
+0x6A2E 0x908D
+0x6A2F 0x9143
+0x6A30 0x9141
+0x6A31 0x91B7
+0x6A32 0x91B5
+0x6A33-0x6A34 0x91B2
+0x6A35 0x940B
+0x6A36 0x9413
+0x6A37 0x93FB
+0x6A38 0x9420
+0x6A39 0x940F
+0x6A3A 0x9414
+0x6A3B 0x93FE
+0x6A3C 0x9415
+0x6A3D 0x9410
+0x6A3E 0x9428
+0x6A3F 0x9419
+0x6A40 0x940D
+0x6A41 0x93F5
+0x6A42 0x9400
+0x6A43 0x93F7
+0x6A44 0x9407
+0x6A45 0x940E
+0x6A46 0x9416
+0x6A47 0x9412
+0x6A48 0x93FA
+0x6A49 0x9409
+0x6A4A 0x93F8
+0x6A4B 0x943C
+0x6A4C 0x940A
+0x6A4D 0x93FF
+0x6A4E 0x93FC
+0x6A4F 0x940C
+0x6A50 0x93F6
+0x6A51 0x9411
+0x6A52 0x9406
+0x6A53 0x95DE
+0x6A54 0x95E0
+0x6A55 0x95DF
+0x6A56-0x6A57 0x972E
+0x6A58 0x97B9
+0x6A59 0x97BB
+0x6A5A-0x6A5B 0x97FD
+0x6A5C 0x9860
+0x6A5D-0x6A5E 0x9862
+0x6A5F 0x985F
+0x6A60-0x6A61 0x98C1
+0x6A62 0x9950
+0x6A63 0x994E
+0x6A64 0x9959
+0x6A65 0x994C
+0x6A66 0x994B
+0x6A67 0x9953
+0x6A68 0x9A32
+0x6A69 0x9A34
+0x6A6A 0x9A31
+0x6A6B 0x9A2C
+0x6A6C 0x9A2A
+0x6A6D 0x9A36
+0x6A6E 0x9A29
+0x6A6F 0x9A2E
+0x6A70 0x9A38
+0x6A71 0x9A2D
+0x6A72 0x9AC7
+0x6A73 0x9ACA
+0x6A74 0x9AC6
+0x6A75 0x9B10
+0x6A76 0x9B12
+0x6A77 0x9B11
+0x6A78 0x9C0B
+0x6A79 0x9C08
+0x6A7A 0x9BF7
+0x6A7B 0x9C05
+0x6A7C 0x9C12
+0x6A7D 0x9BF8
+0x6A7E 0x9C40
+0x6B21 0x9C07
+0x6B22 0x9C0E
+0x6B23 0x9C06
+0x6B24 0x9C17
+0x6B25 0x9C14
+0x6B26 0x9C09
+0x6B27 0x9D9F
+0x6B28 0x9D99
+0x6B29 0x9DA4
+0x6B2A 0x9D9D
+0x6B2B 0x9D92
+0x6B2C 0x9D98
+0x6B2D 0x9D90
+0x6B2E 0x9D9B
+0x6B2F 0x9DA0
+0x6B30 0x9D94
+0x6B31 0x9D9C
+0x6B32 0x9DAA
+0x6B33 0x9D97
+0x6B34 0x9DA1
+0x6B35 0x9D9A
+0x6B36 0x9DA2
+0x6B37 0x9DA8
+0x6B38 0x9D9E
+0x6B39 0x9DA3
+0x6B3A 0x9DBF
+0x6B3B 0x9DA9
+0x6B3C 0x9D96
+0x6B3D-0x6B3E 0x9DA6
+0x6B3F 0x9E99
+0x6B40 0x9E9B
+0x6B41 0x9E9A
+0x6B42 0x9EE5
+0x6B43 0x9EE4
+0x6B44 0x9EE7
+0x6B45 0x9EE6
+0x6B46 0x9F30
+0x6B47 0x9F2E
+0x6B48 0x9F5B
+0x6B49 0x9F60
+0x6B4A 0x9F5E
+0x6B4B 0x9F5D
+0x6B4C 0x9F59
+0x6B4D 0x9F91
+0x6B4E 0x513A
+0x6B4F 0x5139
+0x6B50 0x5298
+0x6B51 0x5297
+0x6B52 0x56C3
+0x6B53-0x6B54 0x56BD
+0x6B55 0x5B48
+0x6B56 0x5B47
+0x6B57 0x5DCB
+0x6B58 0x5DCF
+0x6B59 0x5EF1
+0x6B5A 0x61FD
+0x6B5B 0x651B
+0x6B5C 0x6B02
+0x6B5D 0x6AFC
+0x6B5E 0x6B03
+0x6B5F 0x6AF8
+0x6B60 0x6B00
+0x6B61-0x6B62 0x7043
+0x6B63 0x704A
+0x6B64-0x6B65 0x7048
+0x6B66-0x6B67 0x7045
+0x6B68 0x721D
+0x6B69 0x721A
+0x6B6A 0x7219
+0x6B6B 0x737E
+0x6B6C 0x7517
+0x6B6D 0x766A
+0x6B6E 0x77D0
+0x6B6F 0x792D
+0x6B70 0x7931
+0x6B71 0x792F
+0x6B72 0x7C54
+0x6B73 0x7C53
+0x6B74 0x7CF2
+0x6B75 0x7E8A
+0x6B76-0x6B77 0x7E87
+0x6B78 0x7E8B
+0x6B79 0x7E86
+0x6B7A 0x7E8D
+0x6B7B 0x7F4D
+0x6B7C 0x7FBB
+0x6B7D 0x8030
+0x6B7E 0x81DD
+0x6C21 0x8618
+0x6C22 0x862A
+0x6C23 0x8626
+0x6C24 0x861F
+0x6C25 0x8623
+0x6C26 0x861C
+0x6C27 0x8619
+0x6C28 0x8627
+0x6C29 0x862E
+0x6C2A 0x8621
+0x6C2B 0x8620
+0x6C2C 0x8629
+0x6C2D 0x861E
+0x6C2E 0x8625
+0x6C2F 0x8829
+0x6C30 0x881D
+0x6C31 0x881B
+0x6C32 0x8820
+0x6C33 0x8824
+0x6C34 0x881C
+0x6C35 0x882B
+0x6C36 0x884A
+0x6C37 0x896D
+0x6C38 0x8969
+0x6C39 0x896E
+0x6C3A 0x896B
+0x6C3B 0x89FA
+0x6C3C 0x8B79
+0x6C3D 0x8B78
+0x6C3E 0x8B45
+0x6C3F-0x6C40 0x8B7A
+0x6C41 0x8D10
+0x6C42 0x8D14
+0x6C43 0x8DAF
+0x6C44 0x8E8E
+0x6C45 0x8E8C
+0x6C46 0x8F5E
+0x6C47 0x8F5B
+0x6C48 0x8F5D
+0x6C49 0x9146
+0x6C4A-0x6C4B 0x9144
+0x6C4C 0x91B9
+0x6C4D 0x943F
+0x6C4E 0x943B
+0x6C4F 0x9436
+0x6C50 0x9429
+0x6C51 0x943D
+0x6C52 0x9430
+0x6C53 0x9439
+0x6C54 0x942A
+0x6C55 0x9437
+0x6C56 0x942C
+0x6C57 0x9440
+0x6C58 0x9431
+0x6C59 0x95E5
+0x6C5A 0x95E4
+0x6C5B 0x95E3
+0x6C5C 0x9735
+0x6C5D 0x973A
+0x6C5E 0x97BF
+0x6C5F 0x97E1
+0x6C60 0x9864
+0x6C61 0x98C9
+0x6C62 0x98C6
+0x6C63 0x98C0
+0x6C64 0x9958
+0x6C65 0x9956
+0x6C66 0x9A39
+0x6C67 0x9A3D
+0x6C68 0x9A46
+0x6C69 0x9A44
+0x6C6A 0x9A42
+0x6C6B 0x9A41
+0x6C6C 0x9A3A
+0x6C6D 0x9A3F
+0x6C6E 0x9ACD
+0x6C6F 0x9B15
+0x6C70-0x6C71 0x9B17
+0x6C72 0x9B16
+0x6C73 0x9B3A
+0x6C74 0x9B52
+0x6C75 0x9C2B
+0x6C76 0x9C1D
+0x6C77 0x9C1C
+0x6C78 0x9C2C
+0x6C79 0x9C23
+0x6C7A-0x6C7B 0x9C28
+0x6C7C 0x9C24
+0x6C7D 0x9C21
+0x6C7E 0x9DB7
+0x6D21 0x9DB6
+0x6D22 0x9DBC
+0x6D23 0x9DC1
+0x6D24 0x9DC7
+0x6D25 0x9DCA
+0x6D26 0x9DCF
+0x6D27 0x9DBE
+0x6D28 0x9DC5
+0x6D29 0x9DC3
+0x6D2A 0x9DBB
+0x6D2B 0x9DB5
+0x6D2C 0x9DCE
+0x6D2D-0x6D2E 0x9DB9
+0x6D2F 0x9DAC
+0x6D30 0x9DC8
+0x6D31 0x9DB1
+0x6D32 0x9DAD
+0x6D33 0x9DCC
+0x6D34 0x9DB3
+0x6D35 0x9DCD
+0x6D36 0x9DB2
+0x6D37 0x9E7A
+0x6D38 0x9E9C
+0x6D39 0x9EEB
+0x6D3A 0x9EEE
+0x6D3B 0x9EED
+0x6D3C 0x9F1B
+0x6D3D 0x9F18
+0x6D3E 0x9F1A
+0x6D3F 0x9F31
+0x6D40 0x9F4E
+0x6D41 0x9F65
+0x6D42 0x9F64
+0x6D43 0x9F92
+0x6D44 0x4EB9
+0x6D45 0x56C6
+0x6D46 0x56C5
+0x6D47 0x56CB
+0x6D48 0x5971
+0x6D49-0x6D4A 0x5B4B
+0x6D4B 0x5DD5
+0x6D4C 0x5DD1
+0x6D4D 0x5EF2
+0x6D4E 0x6521
+0x6D4F 0x6520
+0x6D50 0x6526
+0x6D51 0x6522
+0x6D52 0x6B0B
+0x6D53-0x6D54 0x6B08
+0x6D55 0x6C0D
+0x6D56-0x6D58 0x7055
+0x6D59 0x7052
+0x6D5A-0x6D5B 0x721E
+0x6D5C 0x72A9
+0x6D5D 0x737F
+0x6D5E 0x74D8
+0x6D5F 0x74D5
+0x6D60 0x74D9
+0x6D61 0x74D7
+0x6D62 0x766D
+0x6D63 0x76AD
+0x6D64 0x7935
+0x6D65 0x79B4
+0x6D66-0x6D67 0x7A70
+0x6D68 0x7C57
+0x6D69 0x7C5C
+0x6D6A 0x7C59
+0x6D6B 0x7C5B
+0x6D6C 0x7C5A
+0x6D6D 0x7CF4
+0x6D6E 0x7CF1
+0x6D6F 0x7E91
+0x6D70 0x7F4F
+0x6D71 0x7F87
+0x6D72 0x81DE
+0x6D73 0x826B
+0x6D74-0x6D75 0x8634
+0x6D76 0x8633
+0x6D77 0x862C
+0x6D78 0x8632
+0x6D79 0x8636
+0x6D7A 0x882C
+0x6D7B 0x8828
+0x6D7C 0x8826
+0x6D7D 0x882A
+0x6D7E 0x8825
+0x6E21 0x8971
+0x6E22 0x89BF
+0x6E23 0x89BE
+0x6E24 0x89FB
+0x6E25 0x8B7E
+0x6E26 0x8B84
+0x6E27 0x8B82
+0x6E28 0x8B86
+0x6E29 0x8B85
+0x6E2A 0x8B7F
+0x6E2B 0x8D15
+0x6E2C 0x8E95
+0x6E2D 0x8E94
+0x6E2E 0x8E9A
+0x6E2F 0x8E92
+0x6E30 0x8E90
+0x6E31-0x6E32 0x8E96
+0x6E33 0x8F60
+0x6E34 0x8F62
+0x6E35 0x9147
+0x6E36 0x944C
+0x6E37 0x9450
+0x6E38-0x6E39 0x944A
+0x6E3A 0x944F
+0x6E3B 0x9447
+0x6E3C 0x9445
+0x6E3D-0x6E3E 0x9448
+0x6E3F 0x9446
+0x6E40 0x973F
+0x6E41 0x97E3
+0x6E42 0x986A
+0x6E43 0x9869
+0x6E44 0x98CB
+0x6E45 0x9954
+0x6E46 0x995B
+0x6E47 0x9A4E
+0x6E48-0x6E49 0x9A53
+0x6E4A 0x9A4C
+0x6E4B 0x9A4F
+0x6E4C 0x9A48
+0x6E4D 0x9A4A
+0x6E4E 0x9A49
+0x6E4F 0x9A52
+0x6E50 0x9A50
+0x6E51 0x9AD0
+0x6E52 0x9B19
+0x6E53 0x9B2B
+0x6E54 0x9B3B
+0x6E55 0x9B56
+0x6E56 0x9B55
+0x6E57 0x9C46
+0x6E58 0x9C48
+0x6E59 0x9C3F
+0x6E5A 0x9C44
+0x6E5B 0x9C39
+0x6E5C 0x9C33
+0x6E5D 0x9C41
+0x6E5E 0x9C3C
+0x6E5F 0x9C37
+0x6E60 0x9C34
+0x6E61 0x9C32
+0x6E62 0x9C3D
+0x6E63 0x9C36
+0x6E64 0x9DDB
+0x6E65 0x9DD2
+0x6E66 0x9DDE
+0x6E67 0x9DDA
+0x6E68 0x9DCB
+0x6E69 0x9DD0
+0x6E6A 0x9DDC
+0x6E6B 0x9DD1
+0x6E6C 0x9DDF
+0x6E6D 0x9DE9
+0x6E6E 0x9DD9
+0x6E6F 0x9DD8
+0x6E70 0x9DD6
+0x6E71 0x9DF5
+0x6E72 0x9DD5
+0x6E73 0x9DDD
+0x6E74 0x9EB6
+0x6E75 0x9EF0
+0x6E76 0x9F35
+0x6E77 0x9F33
+0x6E78 0x9F32
+0x6E79 0x9F42
+0x6E7A 0x9F6B
+0x6E7B 0x9F95
+0x6E7C 0x9FA2
+0x6E7D 0x513D
+0x6E7E 0x5299
+0x6F21 0x58E8
+0x6F22 0x58E7
+0x6F23 0x5972
+0x6F24 0x5B4D
+0x6F25 0x5DD8
+0x6F26 0x882F
+0x6F27 0x5F4F
+0x6F28 0x6201
+0x6F29-0x6F2A 0x6203
+0x6F2B 0x6529
+0x6F2C 0x6525
+0x6F2D 0x6596
+0x6F2E 0x66EB
+0x6F2F-0x6F30 0x6B11
+0x6F31 0x6B0F
+0x6F32 0x6BCA
+0x6F33 0x705B
+0x6F34 0x705A
+0x6F35 0x7222
+0x6F36 0x7382
+0x6F37 0x7381
+0x6F38 0x7383
+0x6F39 0x7670
+0x6F3A 0x77D4
+0x6F3B 0x7C67
+0x6F3C 0x7C66
+0x6F3D 0x7E95
+0x6F3E 0x826C
+0x6F3F 0x863A
+0x6F40 0x8640
+0x6F41 0x8639
+0x6F42 0x863C
+0x6F43 0x8631
+0x6F44 0x863B
+0x6F45 0x863E
+0x6F46 0x8830
+0x6F47 0x8832
+0x6F48 0x882E
+0x6F49 0x8833
+0x6F4A 0x8976
+0x6F4B 0x8974
+0x6F4C 0x8973
+0x6F4D 0x89FE
+0x6F4E 0x8B8C
+0x6F4F 0x8B8E
+0x6F50 0x8B8B
+0x6F51 0x8B88
+0x6F52 0x8C45
+0x6F53 0x8D19
+0x6F54 0x8E98
+0x6F55 0x8F64
+0x6F56 0x8F63
+0x6F57 0x91BC
+0x6F58 0x9462
+0x6F59 0x9455
+0x6F5A 0x945D
+0x6F5B 0x9457
+0x6F5C 0x945E
+0x6F5D-0x6F5E 0x97C4
+0x6F5F 0x9800
+0x6F60 0x9A56
+0x6F61 0x9A59
+0x6F62-0x6F64 0x9B1E
+0x6F65 0x9C52
+0x6F66 0x9C58
+0x6F67 0x9C50
+0x6F68 0x9C4A
+0x6F69 0x9C4D
+0x6F6A 0x9C4B
+0x6F6B 0x9C55
+0x6F6C 0x9C59
+0x6F6D 0x9C4C
+0x6F6E 0x9C4E
+0x6F6F 0x9DFB
+0x6F70 0x9DF7
+0x6F71 0x9DEF
+0x6F72 0x9DE3
+0x6F73 0x9DEB
+0x6F74 0x9DF8
+0x6F75 0x9DE4
+0x6F76 0x9DF6
+0x6F77 0x9DE1
+0x6F78 0x9DEE
+0x6F79 0x9DE6
+0x6F7A 0x9DF2
+0x6F7B 0x9DF0
+0x6F7C 0x9DE2
+0x6F7D 0x9DEC
+0x6F7E 0x9DF4
+0x7021 0x9DF3
+0x7022 0x9DE8
+0x7023 0x9DED
+0x7024 0x9EC2
+0x7025 0x9ED0
+0x7026-0x7027 0x9EF2
+0x7028 0x9F06
+0x7029 0x9F1C
+0x702A 0x9F38
+0x702B 0x9F37
+0x702C 0x9F36
+0x702D 0x9F43
+0x702E 0x9F4F
+0x702F 0x9F71
+0x7030 0x9F70
+0x7031-0x7032 0x9F6E
+0x7033 0x56D3
+0x7034 0x56CD
+0x7035 0x5B4E
+0x7036 0x5C6D
+0x7037 0x652D
+0x7038-0x7039 0x66ED
+0x703A 0x6B13
+0x703B 0x705F
+0x703C 0x7061
+0x703D 0x705D
+0x703E 0x7060
+0x703F 0x7223
+0x7040 0x74DB
+0x7041 0x74E5
+0x7042 0x77D5
+0x7043 0x7938
+0x7044 0x79B7
+0x7045 0x79B6
+0x7046 0x7C6A
+0x7047 0x7E97
+0x7048 0x7F89
+0x7049 0x826D
+0x704A 0x8643
+0x704B 0x8838
+0x704C 0x8837
+0x704D 0x8835
+0x704E 0x884B
+0x704F-0x7050 0x8B94
+0x7051-0x7053 0x8E9E
+0x7054 0x8E9D
+0x7055 0x91BE
+0x7056 0x91BD
+0x7057 0x91C2
+0x7058 0x946B
+0x7059-0x705A 0x9468
+0x705B 0x96E5
+0x705C 0x9746
+0x705D 0x9743
+0x705E 0x9747
+0x705F 0x97C7
+0x7060 0x97E5
+0x7061 0x9A5E
+0x7062 0x9AD5
+0x7063 0x9B59
+0x7064 0x9C63
+0x7065 0x9C67
+0x7066 0x9C66
+0x7067 0x9C62
+0x7068 0x9C5E
+0x7069 0x9C60
+0x706A 0x9E02
+0x706B 0x9DFE
+0x706C 0x9E07
+0x706D 0x9E03
+0x706E 0x9E06
+0x706F 0x9E05
+0x7070-0x7071 0x9E00
+0x7072 0x9E09
+0x7073 0x9DFF
+0x7074 0x9DFD
+0x7075 0x9E04
+0x7076 0x9EA0
+0x7077 0x9F1E
+0x7078 0x9F46
+0x7079-0x707B 0x9F74
+0x707C 0x56D4
+0x707D 0x652E
+0x707E 0x65B8
+0x7121-0x7122 0x6B18
+0x7123 0x6B17
+0x7124 0x6B1A
+0x7125 0x7062
+0x7126 0x7226
+0x7127 0x72AA
+0x7128-0x7129 0x77D8
+0x712A 0x7939
+0x712B 0x7C69
+0x712C 0x7C6B
+0x712D 0x7CF6
+0x712E 0x7E9A
+0x712F 0x7E98
+0x7130 0x7E9B
+0x7131 0x7E99
+0x7132-0x7133 0x81E0
+0x7134-0x7136 0x8646
+0x7137-0x7138 0x8979
+0x7139 0x897C
+0x713A 0x897B
+0x713B 0x89FF
+0x713C-0x713D 0x8B98
+0x713E 0x8EA5
+0x713F 0x8EA4
+0x7140 0x8EA3
+0x7141 0x946E
+0x7142 0x946D
+0x7143 0x946F
+0x7144 0x9471
+0x7145 0x9473
+0x7146 0x9749
+0x7147 0x9872
+0x7148 0x995F
+0x7149 0x9C68
+0x714A 0x9C6E
+0x714B 0x9C6D
+0x714C 0x9E0B
+0x714D 0x9E0D
+0x714E 0x9E10
+0x714F 0x9E0F
+0x7150 0x9E12
+0x7151 0x9E11
+0x7152 0x9EA1
+0x7153 0x9EF5
+0x7154 0x9F09
+0x7155 0x9F47
+0x7156 0x9F78
+0x7157 0x9F7B
+0x7158 0x9F7A
+0x7159 0x9F79
+0x715A 0x571E
+0x715B 0x7066
+0x715C 0x7C6F
+0x715D 0x883C
+0x715E 0x8DB2
+0x715F 0x8EA6
+0x7160 0x91C3
+0x7161 0x9474
+0x7162 0x9478
+0x7163 0x9476
+0x7164 0x9475
+0x7165 0x9A60
+0x7166 0x9B2E
+0x7167 0x9C74
+0x7168 0x9C73
+0x7169 0x9C71
+0x716A 0x9C75
+0x716B 0x9E14
+0x716C 0x9E13
+0x716D 0x9EF6
+0x716E 0x9F0A
+0x716F 0x9FA4
+0x7170 0x7068
+0x7171 0x7065
+0x7172 0x7CF7
+0x7173 0x866A
+0x7174 0x883E
+0x7175 0x883D
+0x7176 0x883F
+0x7177 0x8B9E
+0x7178 0x8C9C
+0x7179 0x8EA9
+0x717A 0x8EC9
+0x717B 0x974B
+0x717C-0x717D 0x9873
+0x717E 0x98CC
+0x7221 0x9961
+0x7222 0x99AB
+0x7223 0x9A64
+0x7224-0x7225 0x9A66
+0x7226 0x9B24
+0x7227 0x9E15
+0x7228 0x9E17
+0x7229 0x9F48
+0x722A 0x6207
+0x722B 0x6B1E
+0x722C 0x7227
+0x722D 0x864C
+0x722E 0x8EA8
+0x722F 0x9482
+0x7230-0x7231 0x9480
+0x7232 0x9A69
+0x7233 0x9A68
+0x7234 0x9E19
+0x7235 0x864B
+0x7236 0x8B9F
+0x7237 0x9483
+0x7238 0x9C79
+0x7239 0x9EB7
+0x723A 0x7675
+0x723B 0x9A6B
+0x723C 0x9C7A
+0x723D 0x9E1D
+0x723E-0x723F 0x7069
+0x7240 0x7229
+0x7241 0x9EA4
+0x7242 0x9F7E
+0x7243 0x9F49
+0x7244 0x9F98
diff --git a/etc/charsets/CNS-3.map b/etc/charsets/CNS-3.map
new file mode 100644 (file)
index 0000000..68965c4
--- /dev/null
@@ -0,0 +1,5946 @@
+# Generated from data at http://sourceforge.net/cvs/?group_id=26261
+0x2121 0x4E28
+0x2122 0x4E36
+0x2123 0x4E3F
+0x2124 0x4E85
+0x2125 0x4E05
+0x2126 0x4E04
+0x2127 0x5182
+0x2128 0x5196
+0x2129 0x5338
+0x212A 0x5369
+0x212B 0x53B6
+0x212C 0x4E2A
+0x212D 0x4E87
+0x212E 0x4E49
+0x212F 0x51E2
+0x2130 0x4E46
+0x2131 0x4E8F
+0x2132 0x4EBC
+0x2133 0x4EBE
+0x2134 0x5166
+0x2135 0x51E3
+0x2136 0x5204
+0x2137 0x529C
+0x2138 0x5344
+0x2139 0x5902
+0x213A 0x590A
+0x213B 0x5B80
+0x213C 0x5DDB
+0x213D 0x5E7A
+0x213E 0x5E7F
+0x213F 0x5EF4
+0x2140-0x2141 0x5F50
+0x2142 0x5F61
+0x2143 0x961D
+0x2144 0x2000B
+0x2145 0x4E63
+0x2146 0x4E62
+0x2147 0x4EA3
+0x2148 0x5185
+0x2149 0x4EC5
+0x214A 0x4ECF
+0x214B 0x4ECE
+0x214C 0x4ECC
+0x214D 0x5184
+0x214E 0x5186
+0x214F 0x2F817
+0x2150 0x34C5
+0x2151 0x51E4
+0x2152 0x5205
+0x2153 0x529E
+0x2154 0x529D
+0x2155 0x52FD
+0x2156 0x5300
+0x2157 0x533A
+0x2158 0x3539
+0x2159 0x5346
+0x215A 0x535D
+0x215B 0x5386
+0x215C 0x53B7
+0x215D 0x3555
+0x215E 0x53CC
+0x215F 0x355B
+0x2160 0x53CE
+0x2161 0x5721
+0x2162 0x37A2
+0x2163 0x5E00
+0x2164 0x5F0C
+0x2165-0x2166 0x6237
+0x2167-0x2168 0x6534
+0x2169 0x65E0
+0x216A 0x3E26
+0x216B 0x738D
+0x216C 0x4E97
+0x216D 0x4EE0
+0x216E 0x3432
+0x216F 0x201A9
+0x2170 0x4EE7
+0x2171 0x3433
+0x2172 0x4EE6
+0x2173 0x3434
+0x2174 0x36A2
+0x2175 0x3431
+0x2176 0x34B0
+0x2177 0x56D8
+0x2178-0x2179 0x518B
+0x217A 0x5199
+0x217B 0x51E5
+0x217C 0x2F850
+0x217D 0x520B
+0x217E 0x34DC
+0x2221 0x361E
+0x2222 0x5304
+0x2223 0x5303
+0x2224 0x5307
+0x2225 0x2F82A
+0x2226 0x531E
+0x2227 0x535F
+0x2228 0x536D
+0x2229 0x5389
+0x222A 0x53BA
+0x222B 0x53D0
+0x222C 0x3565
+0x222D-0x222E 0x53F6
+0x222F 0x53F9
+0x2230 0x3564
+0x2231 0x53F4
+0x2232 0x361D
+0x2233 0x3626
+0x2234 0x5724
+0x2235 0x5904
+0x2236 0x5918
+0x2237 0x5932
+0x2238 0x5930
+0x2239 0x5934
+0x223A 0x368E
+0x223B 0x5975
+0x223C 0x374A
+0x223D 0x5B82
+0x223E 0x5BF9
+0x223F 0x5C14
+0x2240 0x378B
+0x2241 0x37A6
+0x2242-0x2243 0x37A4
+0x2244 0x37A7
+0x2245 0x382F
+0x2246 0x3832
+0x2247 0x5E81
+0x2248 0x5E83
+0x2249 0x5F0D
+0x224A 0x5F52
+0x224B 0x38D4
+0x224C 0x5FCA
+0x224D 0x5FC7
+0x224E 0x6239
+0x224F 0x39C5
+0x2250 0x624F
+0x2251 0x65E7
+0x2252 0x672F
+0x2253 0x6B7A
+0x2254 0x6C39
+0x2255 0x3CBA
+0x2256 0x3CB9
+0x2257 0x6C37
+0x2258-0x2259 0x6C44
+0x225A 0x738C
+0x225B 0x7592
+0x225C 0x7676
+0x225D 0x9093
+0x225E 0x9092
+0x225F 0x48B3
+0x2260 0x49BA
+0x2261 0x4E21
+0x2262 0x4E20
+0x2263 0x4E22
+0x2264 0x4E68
+0x2265 0x4E89
+0x2266 0x4E98
+0x2267 0x4EF9
+0x2268 0x4EEF
+0x2269-0x226A 0x343B
+0x226B 0x4EF8
+0x226C 0x4F06
+0x226D 0x4F03
+0x226E 0x4EFC
+0x226F 0x4EEE
+0x2270 0x4F16
+0x2271 0x3439
+0x2272 0x4F28
+0x2273 0x4F1C
+0x2274 0x4F07
+0x2275 0x4F1A
+0x2276 0x4EFA
+0x2277 0x4F17
+0x2278 0x514A
+0x2279 0x34B2
+0x227A 0x5172
+0x227B 0x2F815
+0x227C 0x51B4
+0x227D 0x51B3
+0x227E 0x51B2
+0x2321 0x34C7
+0x2322 0x51E8
+0x2323 0x342B
+0x2324 0x5214
+0x2325 0x520F
+0x2326 0x5215
+0x2327 0x5218
+0x2328 0x52A8
+0x2329 0x2F82C
+0x232A 0x534B
+0x232B 0x534F
+0x232C 0x353B
+0x232D 0x5350
+0x232E 0x3544
+0x232F 0x538B
+0x2330 0x3542
+0x2331 0x53BE
+0x2332 0x355C
+0x2333 0x53D2
+0x2334 0x5416
+0x2335 0x53FF
+0x2336 0x3567
+0x2337 0x5400
+0x2338 0x3566
+0x2339 0x5405
+0x233A 0x5413
+0x233B 0x5415
+0x233C 0x2F83B
+0x233D 0x361F
+0x233E 0x56E3
+0x233F-0x2340 0x5735
+0x2341-0x2342 0x5731
+0x2343 0x58EE
+0x2344 0x5905
+0x2345 0x4E54
+0x2346 0x368F
+0x2347 0x5936
+0x2348 0x3690
+0x2349 0x36A8
+0x234A 0x36A4
+0x234B 0x597A
+0x234C 0x36A3
+0x234D 0x5986
+0x234E 0x373D
+0x234F 0x374C
+0x2350 0x5B86
+0x2351 0x5F53
+0x2352 0x5C18
+0x2353 0x378C
+0x2354 0x5C3D
+0x2355 0x5C78
+0x2356 0x37A8
+0x2357 0x37AD
+0x2358 0x37AF
+0x2359 0x21D46
+0x235A 0x5C80
+0x235B 0x3829
+0x235C 0x5E08
+0x235D 0x3836
+0x235E 0x3871
+0x235F 0x3870
+0x2360 0x386F
+0x2361 0x5EF5
+0x2362 0x5F0E
+0x2363-0x2364 0x38A9
+0x2365 0x38FB
+0x2366 0x5FD3
+0x2367 0x5FDA
+0x2368 0x38FC
+0x2369 0x5FDB
+0x236A 0x39AE
+0x236B 0x620F
+0x236C 0x625D
+0x236D 0x625F
+0x236E 0x6267
+0x236F 0x6257
+0x2370 0x9F50
+0x2371 0x3AC3
+0x2372 0x65EB
+0x2373 0x65EA
+0x2374 0x3B30
+0x2375 0x6737
+0x2376 0x3B41
+0x2377 0x6732
+0x2378 0x6736
+0x2379 0x6B22
+0x237A 0x6BCE
+0x237B 0x3C8C
+0x237C 0x6C58
+0x237D 0x6C51
+0x237E 0x6C77
+0x2421 0x6C3C
+0x2422 0x3CBB
+0x2423 0x6C5A
+0x2424 0x23C86
+0x2425 0x6C53
+0x2426 0x706F
+0x2427 0x7072
+0x2428 0x706E
+0x2429 0x2F835
+0x242A 0x3DA1
+0x242B 0x7073
+0x242C-0x242D 0x72B1
+0x242E 0x3EA8
+0x242F 0x738F
+0x2430-0x2431 0x3EAA
+0x2432 0x4096
+0x2433 0x793C
+0x2434 0x41C2
+0x2435-0x2436 0x808D
+0x2437 0x4493
+0x2438 0x827B
+0x2439 0x4494
+0x243A 0x8D71
+0x243B 0x8FB9
+0x243C 0x9096
+0x243D 0x909A
+0x243E 0x49BB
+0x243F 0x4E24
+0x2440 0x4E71
+0x2441 0x2F81B
+0x2442 0x4E9C
+0x2443 0x4F45
+0x2444 0x4F4A
+0x2445 0x4F39
+0x2446 0x4F37
+0x2447 0x3443
+0x2448 0x4F32
+0x2449 0x4F42
+0x244A 0x3442
+0x244B 0x4F44
+0x244C 0x4F4B
+0x244D 0x3444
+0x244E 0x4F40
+0x244F 0x4F35
+0x2450 0x4F31
+0x2451 0x5151
+0x2452 0x2F80E
+0x2453 0x5150
+0x2454 0x514E
+0x2455 0x34B3
+0x2456 0x34B7
+0x2457 0x519D
+0x2458 0x34C8
+0x2459 0x51B5
+0x245A 0x51B8
+0x245B 0x51EC
+0x245C 0x5223
+0x245D 0x5227
+0x245E 0x5226
+0x245F 0x521F
+0x2460 0x522B
+0x2461 0x5220
+0x2462 0x52B4
+0x2463 0x52B3
+0x2464 0x3518
+0x2465 0x5325
+0x2466 0x533B
+0x2467 0x5374
+0x2468 0x3547
+0x2469 0x3546
+0x246A 0x3545
+0x246B 0x356B
+0x246C 0x3569
+0x246D 0x544D
+0x246E 0x3572
+0x246F 0x3571
+0x2470 0x543A
+0x2471 0x356C
+0x2472 0x356F
+0x2473 0x5444
+0x2474 0x544C
+0x2475 0x5423
+0x2476 0x541A
+0x2477 0x5432
+0x2478 0x544B
+0x2479 0x5421
+0x247A 0x3573
+0x247B 0x5434
+0x247C 0x5449
+0x247D 0x5450
+0x247E 0x5422
+0x2521 0x543F
+0x2522 0x5451
+0x2523 0x545A
+0x2524 0x542F
+0x2525 0x3576
+0x2526 0x56E9
+0x2527-0x2528 0x56F2
+0x2529 0x56EF
+0x252A 0x56ED
+0x252B 0x56EC
+0x252C 0x56E6
+0x252D 0x5748
+0x252E 0x3627
+0x252F 0x5744
+0x2530 0x573F
+0x2531 0x573C
+0x2532 0x5753
+0x2533 0x5756
+0x2534 0x3630
+0x2535 0x575F
+0x2536 0x5743
+0x2537 0x5758
+0x2538 0x5757
+0x2539-0x253A 0x3629
+0x253B 0x362F
+0x253C 0x5746
+0x253D 0x362C
+0x253E 0x573D
+0x253F 0x362D
+0x2540 0x5742
+0x2541-0x2542 0x5754
+0x2543-0x2544 0x58F1
+0x2545 0x58F0
+0x2546 0x590B
+0x2547 0x9EA6
+0x2548 0x56F1
+0x2549 0x593D
+0x254A 0x3693
+0x254B 0x5994
+0x254C 0x598C
+0x254D 0x36AD
+0x254E 0x599C
+0x254F 0x36AC
+0x2550 0x36AB
+0x2551 0x599F
+0x2552 0x36A9
+0x2553 0x599B
+0x2554 0x36AE
+0x2555 0x5989
+0x2556 0x599A
+0x2557 0x36AA
+0x2558 0x6588
+0x2559 0x374E
+0x255A 0x5B8D
+0x255B 0x3750
+0x255C-0x255D 0x5BFE
+0x255E 0x5BFD
+0x255F 0x5C2B
+0x2560 0x37B2
+0x2561 0x5C84
+0x2562 0x5C8E
+0x2563 0x5C9C
+0x2564-0x2565 0x37B5
+0x2566 0x5C85
+0x2567 0x5DF5
+0x2568 0x5E09
+0x2569 0x3839
+0x256A 0x383B
+0x256B 0x5E0B
+0x256C 0x3872
+0x256D 0x5E92
+0x256E 0x5E90
+0x256F 0x5F03
+0x2570 0x38AC
+0x2571 0x5F1E
+0x2572 0x5F63
+0x2573 0x3908
+0x2574 0x5FE7
+0x2575 0x5FFE
+0x2576 0x5FE6
+0x2577 0x5FDC
+0x2578 0x5FCE
+0x2579 0x3903
+0x257A 0x5FFC
+0x257B 0x5FDF
+0x257C 0x5FEC
+0x257D 0x5FF6
+0x257E 0x225D7
+0x2621 0x5FF2
+0x2622 0x5FF0
+0x2623 0x5FF9
+0x2624 0x390B
+0x2625 0x6213
+0x2626 0x39AF
+0x2627 0x2F8B2
+0x2628-0x2629 0x623B
+0x262A 0x6282
+0x262B 0x39CE
+0x262C-0x262D 0x39CB
+0x262E 0x6278
+0x262F 0x628B
+0x2630 0x39CD
+0x2631 0x629E
+0x2632 0x62A5
+0x2633-0x2634 0x629B
+0x2635 0x6299
+0x2636 0x628D
+0x2637 0x6285
+0x2638 0x629D
+0x2639 0x6275
+0x263A 0x3A80
+0x263B 0x3AAF
+0x263C 0x3AD3
+0x263D 0x65F6
+0x263E 0x3AD5
+0x263F 0x3AD4
+0x2640 0x3AD7
+0x2641 0x66F5
+0x2642 0x675B
+0x2643 0x3B42
+0x2644 0x6754
+0x2645 0x6752
+0x2646 0x3B44
+0x2647 0x6758
+0x2648 0x6744
+0x2649 0x674A
+0x264A 0x6761
+0x264B 0x3CC6
+0x264C 0x6C7F
+0x264D 0x6C91
+0x264E 0x6C9E
+0x264F 0x3CC0
+0x2650 0x6C6E
+0x2651 0x6C7C
+0x2652 0x6C9F
+0x2653 0x6C75
+0x2654 0x3CBE
+0x2655 0x6C56
+0x2656 0x6CA2
+0x2657 0x6C79
+0x2658 0x3CCA
+0x2659 0x6CA1
+0x265A 0x3CC4
+0x265B 0x6CAA
+0x265C 0x6CA0
+0x265D 0x3CC2
+0x265E 0x7079
+0x265F 0x7077
+0x2660 0x707E
+0x2661 0x3DA4
+0x2662 0x7075
+0x2663 0x707B
+0x2664 0x7264
+0x2665 0x3E29
+0x2666-0x2667 0x72BB
+0x2668 0x72C7
+0x2669 0x72B9
+0x266A 0x72BE
+0x266B 0x72B6
+0x266C 0x3E60
+0x266D 0x3E5E
+0x266E 0x7398
+0x266F-0x2670 0x3EAD
+0x2671 0x3EAC
+0x2672 0x3F57
+0x2673 0x7593
+0x2674 0x7680
+0x2675 0x3FDD
+0x2676 0x7683
+0x2677-0x2678 0x76C0
+0x2679 0x400E
+0x267A 0x4097
+0x267B-0x267C 0x77F4
+0x267D 0x4127
+0x267E 0x7ACC
+0x2721 0x7ACD
+0x2722 0x7CFA
+0x2723 0x809F
+0x2724 0x8091
+0x2725 0x8097
+0x2726 0x8094
+0x2727 0x4495
+0x2728 0x8286
+0x2729 0x828C
+0x272A 0x2F98F
+0x272B 0x8295
+0x272C 0x4498
+0x272D 0x866C
+0x272E 0x459D
+0x272F 0x8FB5
+0x2730 0x8FBE
+0x2731 0x8FC7
+0x2732 0x488A
+0x2733 0x8FC1
+0x2734 0x90A9
+0x2735 0x90A4
+0x2736-0x2738 0x48B5
+0x2739 0x90A8
+0x273A 0x9627
+0x273B 0x9626
+0x273C 0x962B
+0x273D-0x273E 0x9633
+0x273F 0x9629
+0x2740 0x4E3D
+0x2741 0x3428
+0x2742 0x4E9D
+0x2743 0x4F93
+0x2744 0x4F8A
+0x2745 0x344D
+0x2746 0x3449
+0x2747 0x4F6D
+0x2748 0x4F8E
+0x2749 0x4FA0
+0x274A 0x4FA2
+0x274B 0x4FA1
+0x274C 0x4F9F
+0x274D 0x4FA3
+0x274E 0x20209
+0x274F 0x4F72
+0x2750 0x3451
+0x2751 0x4F8C
+0x2752 0x5156
+0x2753 0x2F80F
+0x2754 0x2F811
+0x2755 0x5190
+0x2756 0x34CB
+0x2757 0x34CA
+0x2758 0x34CC
+0x2759 0x51ED
+0x275A 0x51FE
+0x275B 0x522F
+0x275C 0x206EC
+0x275D 0x523C
+0x275E 0x5234
+0x275F 0x5239
+0x2760 0x52B9
+0x2761 0x52B5
+0x2762 0x52BF
+0x2763 0x5355
+0x2764 0x353D
+0x2765 0x5376
+0x2766 0x537A
+0x2767 0x5393
+0x2768 0x3548
+0x2769-0x276A 0x53C1
+0x276B 0x53D5
+0x276C 0x5485
+0x276D 0x3578
+0x276E 0x545F
+0x276F 0x5493
+0x2770 0x5489
+0x2771 0x5479
+0x2772 0x9EFE
+0x2773 0x548F
+0x2774 0x5469
+0x2775 0x546D
+0x2776 0x357A
+0x2777 0x5494
+0x2778 0x546A
+0x2779 0x548A
+0x277A 0x3577
+0x277B 0x56FD
+0x277C 0x56FB
+0x277D 0x56F8
+0x277E 0x3621
+0x2821 0x56FC
+0x2822 0x56F6
+0x2823 0x5765
+0x2824 0x5781
+0x2825 0x5763
+0x2826 0x5767
+0x2827 0x3631
+0x2828 0x576E
+0x2829 0x5778
+0x282A 0x577F
+0x282B-0x282C 0x3633
+0x282D 0x58F3
+0x282E-0x282F 0x594B
+0x2830 0x36C1
+0x2831 0x36B0
+0x2832 0x36B4
+0x2833 0x59AD
+0x2834 0x36B8
+0x2835 0x59C4
+0x2836 0x36BC
+0x2837 0x59C2
+0x2838 0x59B0
+0x2839 0x36BF
+0x283A 0x36B5
+0x283B 0x36B1
+0x283C 0x36BD
+0x283D 0x59BF
+0x283E 0x36BB
+0x283F 0x59C9
+0x2840 0x59B8
+0x2841 0x59AC
+0x2842 0x36B3
+0x2843 0x36B6
+0x2844 0x36BA
+0x2845 0x59B7
+0x2846 0x59D7
+0x2847 0x36B7
+0x2848 0x5B60
+0x2849 0x3740
+0x284A 0x5B96
+0x284B 0x5B9E
+0x284C 0x5B94
+0x284D 0x5B9F
+0x284E 0x5B9D
+0x284F 0x3752
+0x2850 0x5C00
+0x2851 0x5C19
+0x2852-0x2853 0x3790
+0x2854-0x2855 0x5C49
+0x2856 0x37BE
+0x2857 0x5CBB
+0x2858 0x5CC1
+0x2859-0x285A 0x37C0
+0x285B 0x37B9
+0x285C 0x5CB9
+0x285D 0x5C9E
+0x285E 0x5CB4
+0x285F 0x5CBA
+0x2860 0x5DF6
+0x2861 0x5E13
+0x2862 0x5E12
+0x2863 0x5E77
+0x2864 0x3879
+0x2865 0x5E98
+0x2866 0x387B
+0x2867 0x5E99
+0x2868 0x5E9D
+0x2869 0x5EF8
+0x286A 0x38A0
+0x286B 0x5EF9
+0x286C 0x3429
+0x286D 0x5F06
+0x286E 0x5F21
+0x286F 0x38AE
+0x2870 0x5F25
+0x2871 0x5F55
+0x2872 0x38CD
+0x2873 0x38CB
+0x2874 0x38D9
+0x2875 0x5F84
+0x2876 0x5F83
+0x2877 0x6030
+0x2878 0x6007
+0x2879 0x390C
+0x287A 0x6036
+0x287B 0x3901
+0x287C 0x3905
+0x287D 0x3902
+0x287E 0x5FE9
+0x2921 0x603D
+0x2922 0x6008
+0x2923 0x3913
+0x2924 0x3911
+0x2925 0x62BA
+0x2926 0x62B2
+0x2927 0x39E4
+0x2928 0x62B7
+0x2929 0x62E4
+0x292A 0x62A7
+0x292B 0x39DA
+0x292C 0x39D5
+0x292D 0x39D3
+0x292E 0x62D5
+0x292F 0x62E1
+0x2930 0x62DD
+0x2931 0x62A6
+0x2932 0x62C1
+0x2933 0x62C5
+0x2934 0x62C0
+0x2935-0x2936 0x62DF
+0x2937 0x62DE
+0x2938 0x39D6
+0x2939 0x6589
+0x293A 0x3AB4
+0x293B 0x65A6
+0x293C 0x65BA
+0x293D 0x3AD9
+0x293E 0x65FF
+0x293F 0x3AD8
+0x2940-0x2941 0x6617
+0x2942 0x6601
+0x2943 0x65FE
+0x2944 0x3B33
+0x2945 0x670C
+0x2946 0x3B48
+0x2947 0x676B
+0x2948 0x6796
+0x2949 0x6782
+0x294A 0x678A
+0x294B 0x3B47
+0x294C 0x67A3
+0x294D 0x3B4B
+0x294E 0x67A2
+0x294F 0x678F
+0x2950 0x3B4A
+0x2951 0x67F9
+0x2952 0x6780
+0x2953-0x2954 0x6B26
+0x2955-0x2956 0x6B68
+0x2957 0x3C5A
+0x2958 0x6B81
+0x2959 0x6BB4
+0x295A 0x6BD1
+0x295B 0x3C8E
+0x295C 0x3CB4
+0x295D 0x6C1C
+0x295E 0x3CCD
+0x295F 0x3CCC
+0x2960 0x3CCF
+0x2961 0x3CCB
+0x2962 0x3CCE
+0x2963 0x6C97
+0x2964 0x6C6C
+0x2965 0x6CDF
+0x2966 0x3CD2
+0x2967 0x6CEA
+0x2968 0x3CD1
+0x2969 0x6CE4
+0x296A 0x6CD8
+0x296B 0x6CB2
+0x296C 0x6CCE
+0x296D 0x6CC8
+0x296E 0x3DA6
+0x296F 0x708B
+0x2970 0x7088
+0x2971 0x7090
+0x2972 0x708F
+0x2973 0x3DAA
+0x2974 0x7087
+0x2975 0x7089
+0x2976 0x708D
+0x2977 0x7081
+0x2978 0x3DA8
+0x2979 0x708C
+0x297A 0x3E13
+0x297B 0x3E1A
+0x297C 0x7240
+0x297D-0x297E 0x3E1D
+0x2A21-0x2A22 0x7265
+0x2A23 0x7268
+0x2A24-0x2A25 0x3E65
+0x2A26 0x72CD
+0x2A27 0x72D3
+0x2A28 0x72DB
+0x2A29 0x3E64
+0x2A2A 0x72CF
+0x2A2B 0x73A7
+0x2A2C 0x73A3
+0x2A2D 0x739E
+0x2A2E 0x3EB0
+0x2A2F 0x73AF
+0x2A30 0x3EB3
+0x2A31 0x3EB5
+0x2A32 0x73AA
+0x2A33 0x739C
+0x2A34 0x3F19
+0x2A35 0x7542
+0x2A36 0x7544
+0x2A37 0x753B
+0x2A38 0x7541
+0x2A39 0x2233F
+0x2A3A 0x759B
+0x2A3B 0x759E
+0x2A3C 0x3F75
+0x2A3D 0x79C4
+0x2A3E 0x79C3
+0x2A3F 0x79C6
+0x2A40-0x2A41 0x412B
+0x2A42 0x79C7
+0x2A43 0x412D
+0x2A44 0x79CA
+0x2A45 0x2592E
+0x2A46 0x41C3
+0x2A47 0x7ACF
+0x2A48 0x7C76
+0x2A49 0x7C74
+0x2A4A 0x7CFF
+0x2A4B 0x7CFC
+0x2A4C 0x34BA
+0x2A4D 0x4350
+0x2A4E 0x7F59
+0x2A4F 0x80A8
+0x2A50 0x43D3
+0x2A51 0x43D0
+0x2A52 0x80B0
+0x2A53 0x43DC
+0x2A54 0x80B3
+0x2A55 0x43D2
+0x2A56 0x80A4
+0x2A57 0x80B6
+0x2A58 0x80A7
+0x2A59 0x80AC
+0x2A5A 0x43DB
+0x2A5B 0x80A6
+0x2A5C 0x5367
+0x2A5D 0x820E
+0x2A5E 0x82C4
+0x2A5F 0x833E
+0x2A60 0x829C
+0x2A61 0x44A5
+0x2A62 0x449F
+0x2A63 0x449A
+0x2A64 0x449C
+0x2A65 0x44A2
+0x2A66 0x82AA
+0x2A67 0x449B
+0x2A68 0x82C9
+0x2A69 0x44A3
+0x2A6A 0x449D
+0x2A6B 0x82A6
+0x2A6C 0x82B2
+0x2A6D 0x4588
+0x2A6E 0x461A
+0x2A6F 0x488D
+0x2A70 0x8FCC
+0x2A71 0x8FD9
+0x2A72 0x8FCA
+0x2A73 0x8FD8
+0x2A74 0x8FCF
+0x2A75 0x90B7
+0x2A76 0x48B8
+0x2A77 0x90AD
+0x2A78 0x90B9
+0x2A79 0x9637
+0x2A7A 0x49C3
+0x2A7B 0x9641
+0x2A7C 0x963E
+0x2A7D 0x96B6
+0x2A7E 0x9751
+0x2B21 0x9763
+0x2B22 0x4E57
+0x2B23 0x4E79
+0x2B24 0x4EB2
+0x2B25 0x4EB0
+0x2B26 0x4EAF
+0x2B27 0x4EB1
+0x2B28 0x4FD2
+0x2B29 0x4FD5
+0x2B2A 0x345D
+0x2B2B 0x4FBE
+0x2B2C 0x4FB8
+0x2B2D-0x2B2E 0x4FB0
+0x2B2F 0x4FC8
+0x2B30 0x345A
+0x2B31 0x3457
+0x2B32 0x4FC6
+0x2B33 0x4FCC
+0x2B34 0x4FE5
+0x2B35 0x4FE3
+0x2B36 0x4FB4
+0x2B37 0x516A
+0x2B38 0x34B8
+0x2B39 0x519F
+0x2B3A 0x34C2
+0x2B3B 0x51C1
+0x2B3C 0x34CF
+0x2B3D-0x2B3E 0x51C2
+0x2B3F 0x5245
+0x2B40 0x5248
+0x2B41 0x34E7
+0x2B42 0x34E9
+0x2B43 0x524F
+0x2B44 0x4452
+0x2B45 0x34E8
+0x2B46 0x52C5
+0x2B47 0x52CA
+0x2B48 0x52C4
+0x2B49 0x5327
+0x2B4A 0x5358
+0x2B4B 0x537D
+0x2B4C 0x354A
+0x2B4D 0x53DD
+0x2B4E 0x53DC
+0x2B4F 0x53DA
+0x2B50 0x53D9
+0x2B51 0x54B9
+0x2B52 0x3580
+0x2B53 0x54D0
+0x2B54 0x54B4
+0x2B55 0x54CA
+0x2B56 0x3587
+0x2B57 0x54A3
+0x2B58 0x54DA
+0x2B59 0x54A4
+0x2B5A 0x3584
+0x2B5B 0x54B2
+0x2B5C-0x2B5D 0x549E
+0x2B5E 0x54B5
+0x2B5F 0x3582
+0x2B60 0x3581
+0x2B61 0x54CD
+0x2B62 0x3583
+0x2B63 0x54CC
+0x2B64 0x3622
+0x2B65 0x5700
+0x2B66 0x57AC
+0x2B67 0x5791
+0x2B68 0x578E
+0x2B69 0x578D
+0x2B6A 0x5792
+0x2B6B 0x57A1
+0x2B6C 0x5790
+0x2B6D 0x57A6
+0x2B6E 0x57A8
+0x2B6F 0x363B
+0x2B70 0x579C
+0x2B71 0x5796
+0x2B72 0x57A7
+0x2B73 0x363A
+0x2B74-0x2B75 0x3638
+0x2B76 0x3636
+0x2B77 0x58F5
+0x2B78 0x3685
+0x2B79 0x5909
+0x2B7A 0x5908
+0x2B7B 0x3C54
+0x2B7C 0x5952
+0x2B7D 0x369A
+0x2B7E 0x36C4
+0x2C21 0x59DF
+0x2C22 0x36C5
+0x2C23 0x59EB
+0x2C24-0x2C25 0x59EF
+0x2C26 0x59D5
+0x2C27 0x5A0D
+0x2C28 0x5A04
+0x2C29 0x59F9
+0x2C2A 0x5A02
+0x2C2B 0x59F8
+0x2C2C 0x59E2
+0x2C2D 0x59D9
+0x2C2E 0x59E7
+0x2C2F 0x5B6A
+0x2C30-0x2C31 0x3754
+0x2C32 0x5BAB
+0x2C33 0x3756
+0x2C34 0x5C1B
+0x2C35 0x5C2F
+0x2C36 0x3796
+0x2C37 0x663C
+0x2C38 0x3795
+0x2C39 0x3794
+0x2C3A 0x37C4
+0x2C3B 0x5CD1
+0x2C3C 0x5CDC
+0x2C3D 0x5CE6
+0x2C3E 0x5CE1
+0x2C3F 0x5CCD
+0x2C40 0x2F87A
+0x2C41 0x5CE2
+0x2C42 0x5CDD
+0x2C43 0x5CE5
+0x2C44 0x5DFB
+0x2C45 0x5DFA
+0x2C46 0x5E1E
+0x2C47 0x3844
+0x2C48 0x5EA1
+0x2C49-0x2C4A 0x387D
+0x2C4B 0x5EFC
+0x2C4C 0x5EFB
+0x2C4D 0x5F2F
+0x2C4E 0x38B2
+0x2C4F 0x38B6
+0x2C50 0x5F66
+0x2C51 0x2F899
+0x2C52 0x38DC
+0x2C53 0x38DF
+0x2C54 0x605C
+0x2C55 0x3928
+0x2C56 0x604E
+0x2C57 0x6051
+0x2C58 0x3919
+0x2C59 0x3910
+0x2C5A 0x6023
+0x2C5B 0x6031
+0x2C5C 0x607C
+0x2C5D 0x6052
+0x2C5E 0x392C
+0x2C5F 0x6060
+0x2C60 0x604A
+0x2C61 0x6061
+0x2C62 0x391B
+0x2C63 0x6218
+0x2C64 0x39C2
+0x2C65 0x39EF
+0x2C66 0x39E3
+0x2C67 0x39E5
+0x2C68 0x39EA
+0x2C69 0x39E6
+0x2C6A 0x39EE
+0x2C6B 0x631F
+0x2C6C 0x6317
+0x2C6D 0x62EA
+0x2C6E 0x6321
+0x2C6F-0x2C70 0x6304
+0x2C71 0x39E8
+0x2C72 0x6531
+0x2C73 0x6544
+0x2C74 0x6540
+0x2C75 0x3A85
+0x2C76 0x6542
+0x2C77 0x65BE
+0x2C78 0x3AE0
+0x2C79 0x6629
+0x2C7A 0x661B
+0x2C7B 0x3ADD
+0x2C7C 0x6623
+0x2C7D 0x662C
+0x2C7E 0x661A
+0x2D21 0x6630
+0x2D22 0x663B
+0x2D23 0x661E
+0x2D24-0x2D25 0x6637
+0x2D26 0x3AE1
+0x2D27 0x670E
+0x2D28 0x3B51
+0x2D29 0x3B55
+0x2D2A 0x67E8
+0x2D2B 0x67D6
+0x2D2C 0x3B52
+0x2D2D 0x67C7
+0x2D2E 0x67BC
+0x2D2F 0x6852
+0x2D30 0x67BF
+0x2D31 0x67D5
+0x2D32 0x67FE
+0x2D33 0x8363
+0x2D34 0x67FB
+0x2D35 0x2F8DF
+0x2D36 0x67B1
+0x2D37 0x6801
+0x2D38 0x6805
+0x2D39 0x6800
+0x2D3A 0x67D7
+0x2D3B 0x409E
+0x2D3C 0x6B2A
+0x2D3D 0x6B6B
+0x2D3E 0x3C52
+0x2D3F 0x3C5E
+0x2D40 0x3C60
+0x2D41 0x3C5F
+0x2D42 0x6BE1
+0x2D43 0x3C92
+0x2D44 0x3CD6
+0x2D45 0x6D23
+0x2D46 0x6CFF
+0x2D47 0x6D14
+0x2D48 0x6D05
+0x2D49 0x6D13
+0x2D4A 0x6D06
+0x2D4B 0x6D21
+0x2D4C 0x3CDE
+0x2D4D 0x6D15
+0x2D4E 0x6CAF
+0x2D4F 0x6CF4
+0x2D50 0x6D02
+0x2D51 0x6D45
+0x2D52 0x2F8FE
+0x2D53 0x6D26
+0x2D54 0x3CD9
+0x2D55 0x6D44
+0x2D56 0x3CDD
+0x2D57 0x6D24
+0x2D58 0x70A5
+0x2D59 0x3DAC
+0x2D5A 0x70A3
+0x2D5B 0x3DB0
+0x2D5C 0x70A2
+0x2D5D 0x70BB
+0x2D5E 0x70A0
+0x2D5F 0x70AA
+0x2D60 0x3DAF
+0x2D61 0x3DAE
+0x2D62 0x70A8
+0x2D63 0x70B6
+0x2D64 0x70B2
+0x2D65 0x70A7
+0x2D66 0x3DAD
+0x2D67 0x3DAB
+0x2D68 0x70B9
+0x2D69 0x722E
+0x2D6A 0x3E16
+0x2D6B 0x723C
+0x2D6C 0x3E30
+0x2D6D 0x726D
+0x2D6E 0x3E33
+0x2D6F 0x3E31
+0x2D70 0x72E7
+0x2D71 0x72ED
+0x2D72 0x3E6E
+0x2D73 0x72EC
+0x2D74 0x72E5
+0x2D75 0x72E2
+0x2D76 0x3EB1
+0x2D77 0x73C4
+0x2D78 0x73BD
+0x2D79 0x73CF
+0x2D7A 0x73C9
+0x2D7B 0x73C1
+0x2D7C 0x73D0
+0x2D7D 0x3EB7
+0x2D7E 0x73CE
+0x2E21 0x74ED
+0x2E22 0x74EB
+0x2E23 0x3F1A
+0x2E24 0x74EF
+0x2E25 0x7549
+0x2E26 0x7550
+0x2E27 0x7546
+0x2E28 0x754A
+0x2E29 0x3F59
+0x2E2A 0x754D
+0x2E2B 0x75A6
+0x2E2C 0x3F7A
+0x2E2D 0x3F78
+0x2E2E 0x3F7B
+0x2E2F 0x75A8
+0x2E30 0x3FDE
+0x2E31 0x3FEC
+0x2E32 0x76C7
+0x2E33 0x76FF
+0x2E34 0x401E
+0x2E35 0x76FD
+0x2E36 0x77E6
+0x2E37 0x780A
+0x2E38 0x409B
+0x2E39 0x7804
+0x2E3A 0x780B
+0x2E3B 0x7807
+0x2E3C 0x409D
+0x2E3D 0x7815
+0x2E3E 0x7808
+0x2E3F 0x40FD
+0x2E40-0x2E41 0x79D3
+0x2E42 0x79D0
+0x2E43 0x79D7
+0x2E44 0x7A7C
+0x2E45 0x4194
+0x2E46 0x4193
+0x2E47 0x7A7D
+0x2E48 0x7A83
+0x2E49 0x7A82
+0x2E4A 0x41C6
+0x2E4B-0x2E4C 0x7AD4
+0x2E4D 0x7AD3
+0x2E4E 0x7AD0
+0x2E4F 0x7AD2
+0x2E50 0x7AFE
+0x2E51 0x7AFC
+0x2E52 0x7C77
+0x2E53 0x7C7C
+0x2E54 0x7C7B
+0x2E55 0x42B8
+0x2E56 0x2F96A
+0x2E57 0x42B7
+0x2E58 0x42B9
+0x2E59 0x4353
+0x2E5A 0x25133
+0x2E5B 0x4352
+0x2E5C 0x4351
+0x2E5D 0x7F8F
+0x2E5E 0x80D3
+0x2E5F 0x43E3
+0x2E60 0x80CB
+0x2E61 0x80D2
+0x2E62 0x43E2
+0x2E63 0x8109
+0x2E64 0x80E2
+0x2E65 0x80DF
+0x2E66 0x80C6
+0x2E67 0x4463
+0x2E68 0x8224
+0x2E69 0x82F7
+0x2E6A 0x82D8
+0x2E6B 0x82DD
+0x2E6C 0x44AA
+0x2E6D 0x44A6
+0x2E6E 0x82F8
+0x2E6F 0x82FC
+0x2E70-0x2E71 0x44A8
+0x2E72 0x82E9
+0x2E73 0x44AB
+0x2E74 0x82EE
+0x2E75 0x44AC
+0x2E76 0x82D0
+0x2E77 0x830E
+0x2E78 0x82E2
+0x2E79 0x830B
+0x2E7A 0x82FD
+0x2E7B 0x5179
+0x2E7C 0x8676
+0x2E7D 0x459E
+0x2E7E 0x8678
+0x2F21-0x2F22 0x459F
+0x2F23 0x8675
+0x2F24 0x867D
+0x2F25 0x460F
+0x2F26 0x8842
+0x2F27 0x8866
+0x2F28 0x461C
+0x2F29 0x898C
+0x2F2A 0x8A05
+0x2F2B 0x46AE
+0x2F2C 0x8A06
+0x2F2D 0x46B0
+0x2F2E 0x8C9F
+0x2F2F 0x47D4
+0x2F30 0x8FF1
+0x2F31 0x8FE7
+0x2F32 0x8FE9
+0x2F33 0x8FEF
+0x2F34 0x90C2
+0x2F35 0x90BC
+0x2F36 0x48BB
+0x2F37 0x90C6
+0x2F38 0x90C0
+0x2F39-0x2F3A 0x48C1
+0x2F3B 0x90CD
+0x2F3C 0x90C9
+0x2F3D 0x48BE
+0x2F3E 0x90C4
+0x2F3F 0x48E5
+0x2F40 0x9581
+0x2F41 0x49C6
+0x2F42 0x9CEC
+0x2F43 0x5032
+0x2F44 0x4FF9
+0x2F45 0x501D
+0x2F46 0x4FFF
+0x2F47 0x5004
+0x2F48 0x4FF0
+0x2F49 0x5003
+0x2F4A 0x462E
+0x2F4B 0x5002
+0x2F4C 0x4FFC
+0x2F4D 0x4FF2
+0x2F4E 0x5024
+0x2F4F 0x5008
+0x2F50 0x5036
+0x2F51 0x502E
+0x2F52 0x3465
+0x2F53 0x5010
+0x2F54-0x2F55 0x5038
+0x2F56 0x4FFD
+0x2F57 0x5056
+0x2F58 0x4FFB
+0x2F59 0x51A3
+0x2F5A 0x51A6
+0x2F5B 0x51A1
+0x2F5C 0x34D1
+0x2F5D 0x34D0
+0x2F5E 0x51C7
+0x2F5F 0x51C9
+0x2F60 0x5260
+0x2F61 0x5264
+0x2F62 0x5259
+0x2F63 0x5265
+0x2F64 0x5267
+0x2F65 0x5257
+0x2F66 0x5263
+0x2F67 0x34EE
+0x2F68 0x5253
+0x2F69 0x34EF
+0x2F6A 0x52CF
+0x2F6B 0x351E
+0x2F6C 0x52CE
+0x2F6D-0x2F6E 0x52D0
+0x2F6F 0x52CC
+0x2F70 0x354B
+0x2F71 0x354D
+0x2F72 0x3556
+0x2F73 0x550D
+0x2F74 0x54F4
+0x2F75 0x3592
+0x2F76 0x5513
+0x2F77 0x54EF
+0x2F78 0x54F5
+0x2F79 0x54F9
+0x2F7A 0x5502
+0x2F7B 0x5500
+0x2F7C 0x3593
+0x2F7D 0x3590
+0x2F7E 0x5518
+0x3021 0x54F0
+0x3022 0x54F6
+0x3023 0x2F841
+0x3024 0x3597
+0x3025 0x5519
+0x3026 0x3623
+0x3027 0x5705
+0x3028 0x57C9
+0x3029 0x363F
+0x302A 0x57B7
+0x302B 0x57CD
+0x302C 0x3643
+0x302D 0x3642
+0x302E 0x3644
+0x302F 0x57BE
+0x3030 0x57BB
+0x3031 0x3645
+0x3032 0x57DB
+0x3033 0x57C8
+0x3034-0x3035 0x57C4
+0x3036 0x57D1
+0x3037 0x57CA
+0x3038 0x57C0
+0x3039 0x36D9
+0x303A 0x36DE
+0x303B 0x5A21
+0x303C 0x5A2A
+0x303D 0x36CF
+0x303E 0x5A1D
+0x303F 0x36CD
+0x3040 0x5A0B
+0x3041 0x36DD
+0x3042 0x36CE
+0x3043 0x36D3
+0x3044 0x36D6
+0x3045 0x5A22
+0x3046 0x36DC
+0x3047 0x36D1
+0x3048 0x5A24
+0x3049 0x36D0
+0x304A 0x5A14
+0x304B 0x5A31
+0x304C 0x36D5
+0x304D 0x5A2F
+0x304E 0x5A1A
+0x304F 0x5A12
+0x3050 0x36D4
+0x3051 0x36DB
+0x3052 0x5A26
+0x3053 0x2172E
+0x3054 0x3743
+0x3055 0x5BBC
+0x3056 0x5BBB
+0x3057 0x5BB7
+0x3058-0x3059 0x5C05
+0x305A-0x305B 0x5C52
+0x305C 0x37CD
+0x305D 0x37D1
+0x305E 0x5CFA
+0x305F 0x5CEB
+0x3060 0x37CA
+0x3061 0x5CF3
+0x3062 0x5CF5
+0x3063 0x5CE9
+0x3064 0x5CEF
+0x3065 0x37D4
+0x3066 0x5E2A
+0x3067 0x5E30
+0x3068 0x5E2E
+0x3069 0x5E2C
+0x306A 0x5E2F
+0x306B 0x5EAF
+0x306C 0x5EA9
+0x306D 0x3886
+0x306E 0x5EFD
+0x306F 0x5F32
+0x3070 0x5F8E
+0x3071 0x5F93
+0x3072 0x5F8F
+0x3073 0x604F
+0x3074 0x6099
+0x3075 0x3933
+0x3076 0x607E
+0x3077 0x3937
+0x3078 0x6074
+0x3079 0x604B
+0x307A 0x6073
+0x307B 0x6075
+0x307C 0x392A
+0x307D 0x391F
+0x307E 0x6056
+0x3121 0x60A9
+0x3122 0x608B
+0x3123 0x60A6
+0x3124 0x3939
+0x3125 0x6093
+0x3126 0x60AE
+0x3127 0x609E
+0x3128 0x60A7
+0x3129 0x6245
+0x312A 0x39F2
+0x312B 0x39F8
+0x312C 0x632E
+0x312D 0x39F7
+0x312E 0x6352
+0x312F 0x6330
+0x3130 0x635B
+0x3131 0x39F4
+0x3132 0x6319
+0x3133 0x631B
+0x3134 0x39F1
+0x3135 0x6331
+0x3136 0x635D
+0x3137 0x6337
+0x3138 0x6335
+0x3139 0x6353
+0x313A 0x39F5
+0x313B 0x635C
+0x313C 0x633F
+0x313D 0x654B
+0x313E 0x3A87
+0x313F 0x4369
+0x3140 0x658B
+0x3141 0x3AB6
+0x3142 0x659A
+0x3143 0x6650
+0x3144 0x6646
+0x3145 0x664E
+0x3146 0x6640
+0x3147 0x3AE9
+0x3148 0x664B
+0x3149 0x6648
+0x314A 0x3AEB
+0x314B 0x6660
+0x314C 0x6644
+0x314D 0x664D
+0x314E 0x3B34
+0x314F 0x6837
+0x3150 0x6824
+0x3151 0x3B62
+0x3152 0x3B5C
+0x3153 0x681B
+0x3154 0x6836
+0x3155 0x3B60
+0x3156 0x682C
+0x3157 0x6819
+0x3158 0x6856
+0x3159 0x6847
+0x315A 0x683E
+0x315B 0x681E
+0x315C 0x2F8E1
+0x315D 0x6815
+0x315E 0x6822
+0x315F 0x6827
+0x3160 0x6859
+0x3161 0x6858
+0x3162 0x6855
+0x3163 0x6830
+0x3164 0x6823
+0x3165 0x6B2E
+0x3166 0x6B2B
+0x3167 0x6B30
+0x3168 0x6B6C
+0x3169 0x3C61
+0x316A 0x6B8B
+0x316B 0x3C7F
+0x316C-0x316D 0x6BE9
+0x316E 0x6BE5
+0x316F 0x6D6B
+0x3170-0x3171 0x3CE5
+0x3172 0x6D73
+0x3173 0x6D57
+0x3174 0x3CE9
+0x3175 0x3CF3
+0x3176 0x6D5D
+0x3177 0x6D56
+0x3178 0x6D8F
+0x3179 0x6D5B
+0x317A 0x6D1C
+0x317B-0x317C 0x6D9A
+0x317D 0x6D99
+0x317E 0x3CEE
+0x3221 0x6D81
+0x3222 0x6D71
+0x3223 0x3CED
+0x3224 0x3CEC
+0x3225 0x6D72
+0x3226 0x6D5C
+0x3227 0x6D96
+0x3228 0x70C4
+0x3229 0x70DB
+0x322A 0x70CC
+0x322B 0x70D0
+0x322C 0x70E3
+0x322D 0x70DF
+0x322E 0x3DB3
+0x322F 0x70D6
+0x3230 0x70EE
+0x3231 0x70D5
+0x3232 0x3DB5
+0x3233 0x3E27
+0x3234-0x3235 0x3E35
+0x3236 0x727A
+0x3237 0x3E71
+0x3238 0x72F5
+0x3239 0x7302
+0x323A 0x3EB8
+0x323B 0x3EC2
+0x323C 0x73E2
+0x323D 0x73EC
+0x323E 0x73D5
+0x323F 0x73F9
+0x3240 0x73DF
+0x3241 0x73E6
+0x3242 0x3EC8
+0x3243-0x3244 0x3EC0
+0x3245 0x3EC4
+0x3246 0x73E4
+0x3247 0x73E1
+0x3248 0x74F3
+0x3249 0x3F1F
+0x324A-0x324B 0x3F1C
+0x324C 0x3F4D
+0x324D 0x7556
+0x324E 0x7555
+0x324F 0x7558
+0x3250 0x7557
+0x3251 0x755E
+0x3252 0x75C3
+0x3253 0x3F87
+0x3254 0x3F82
+0x3255 0x75B4
+0x3256 0x3F7D
+0x3257 0x75B1
+0x3258 0x3FDF
+0x3259 0x4000
+0x325A-0x325B 0x76CB
+0x325C 0x772A
+0x325D 0x4020
+0x325E 0x7716
+0x325F 0x770F
+0x3260 0x4022
+0x3261 0x4024
+0x3262 0x773F
+0x3263 0x772B
+0x3264 0x770E
+0x3265 0x7724
+0x3266 0x4021
+0x3267 0x7721
+0x3268 0x7718
+0x3269 0x77DD
+0x326A-0x326B 0x40A4
+0x326C 0x7824
+0x326D 0x7836
+0x326E 0x4101
+0x326F-0x3270 0x7958
+0x3271 0x4103
+0x3272 0x7962
+0x3273 0x79DA
+0x3274 0x79D9
+0x3275 0x4137
+0x3276 0x79E1
+0x3277 0x79E5
+0x3278 0x79E8
+0x3279 0x79DB
+0x327A 0x4138
+0x327B 0x79E2
+0x327C 0x79F0
+0x327D 0x4199
+0x327E 0x4198
+0x3321 0x4197
+0x3322 0x41C9
+0x3323 0x7ADA
+0x3324 0x7ADD
+0x3325 0x41C7
+0x3326-0x3327 0x7ADB
+0x3328 0x41D9
+0x3329 0x41DB
+0x332A 0x7B0D
+0x332B 0x7B0B
+0x332C 0x7B14
+0x332D 0x7C8E
+0x332E 0x7C86
+0x332F 0x427B
+0x3330 0x7C87
+0x3331 0x7C83
+0x3332 0x7C8B
+0x3333 0x427C
+0x3334 0x42BD
+0x3335 0x42BC
+0x3336 0x42C3
+0x3337 0x7D24
+0x3338 0x42C1
+0x3339 0x42BF
+0x333A 0x42C4
+0x333B 0x7D25
+0x333C 0x7F62
+0x333D 0x7F93
+0x333E 0x7F99
+0x333F 0x7F97
+0x3340-0x3341 0x437E
+0x3342 0x7FC4
+0x3343 0x7FC6
+0x3344 0x800A
+0x3345 0x43B4
+0x3346 0x43B3
+0x3347 0x8040
+0x3348 0x803C
+0x3349 0x803B
+0x334A 0x80F6
+0x334B 0x80FF
+0x334C 0x80EE
+0x334D 0x8104
+0x334E 0x8103
+0x334F 0x8107
+0x3350 0x2F983
+0x3351 0x43E6
+0x3352 0x80F7
+0x3353-0x3354 0x4459
+0x3355 0x822D
+0x3356 0x4464
+0x3357 0x8227
+0x3358 0x8229
+0x3359 0x831F
+0x335A 0x8357
+0x335B 0x44B4
+0x335C 0x44B9
+0x335D 0x44B7
+0x335E 0x44B5
+0x335F 0x8321
+0x3360 0x44C1
+0x3361 0x44B1
+0x3362 0x8318
+0x3363 0x8358
+0x3364 0x44B3
+0x3365 0x44BA
+0x3366 0x458C
+0x3367 0x458B
+0x3368 0x458D
+0x3369 0x8684
+0x336A 0x869F
+0x336B 0x869B
+0x336C 0x8689
+0x336D 0x86A6
+0x336E 0x8692
+0x336F 0x868F
+0x3370 0x86A0
+0x3371 0x884F
+0x3372 0x8878
+0x3373 0x887A
+0x3374 0x886E
+0x3375 0x887B
+0x3376 0x8884
+0x3377 0x8873
+0x3378 0x4678
+0x3379 0x4677
+0x337A 0x8A0D
+0x337B 0x8A0B
+0x337C 0x8A19
+0x337D 0x46B2
+0x337E 0x47D6
+0x3421 0x8ED0
+0x3422 0x4845
+0x3423 0x4892
+0x3424 0x4895
+0x3425 0x8FF9
+0x3426 0x9009
+0x3427 0x9008
+0x3428 0x48C6
+0x3429 0x90DE
+0x342A 0x9151
+0x342B-0x342C 0x48E7
+0x342D 0x91DB
+0x342E 0x91DF
+0x342F 0x91DE
+0x3430 0x91D6
+0x3431 0x91E0
+0x3432 0x9585
+0x3433 0x9660
+0x3434 0x9659
+0x3435 0x49CB
+0x3436 0x9656
+0x3437 0x49CD
+0x3438 0x49F1
+0x3439 0x96BD
+0x343A 0x4B22
+0x343B 0x3421
+0x343C 0x5042
+0x343D 0x5059
+0x343E 0x346F
+0x343F 0x5044
+0x3440 0x5066
+0x3441 0x5052
+0x3442 0x5054
+0x3443 0x5071
+0x3444 0x5050
+0x3445-0x3446 0x507B
+0x3447 0x5058
+0x3448 0x3470
+0x3449 0x3464
+0x344A 0x5079
+0x344B 0x506C
+0x344C 0x5078
+0x344D 0x51A8
+0x344E 0x51D1
+0x344F 0x51CF
+0x3450 0x5268
+0x3451 0x5276
+0x3452 0x52D4
+0x3453 0x352D
+0x3454 0x53A0
+0x3455 0x53C4
+0x3456 0x3558
+0x3457 0x5558
+0x3458 0x554C
+0x3459 0x5568
+0x345A 0x35A6
+0x345B 0x5549
+0x345C 0x35A4
+0x345D 0x359F
+0x345E 0x555D
+0x345F 0x5529
+0x3460 0x20DAE
+0x3461 0x5554
+0x3462 0x5553
+0x3463 0x35A3
+0x3464 0x555A
+0x3465 0x35A0
+0x3466 0x553A
+0x3467 0x553F
+0x3468 0x552B
+0x3469 0x57EA
+0x346A 0x364A
+0x346B 0x57EF
+0x346C-0x346D 0x3647
+0x346E 0x57DD
+0x346F 0x57FE
+0x3470 0x2F855
+0x3471 0x57DE
+0x3472 0x57E6
+0x3473 0x3649
+0x3474 0x57E8
+0x3475 0x57FF
+0x3476 0x5803
+0x3477 0x58F7
+0x3478 0x68A6
+0x3479 0x591F
+0x347A 0x369E
+0x347B 0x595B
+0x347C-0x347D 0x595D
+0x347E 0x21637
+0x3521 0x36E8
+0x3522 0x5A2B
+0x3523 0x36EC
+0x3524 0x5A3B
+0x3525 0x36ED
+0x3526 0x36E6
+0x3527 0x5A61
+0x3528 0x5A3A
+0x3529 0x5A6E
+0x352A 0x5A4B
+0x352B 0x5A6B
+0x352C 0x36EB
+0x352D 0x36E7
+0x352E 0x5A45
+0x352F 0x5A4E
+0x3530 0x5A68
+0x3531 0x5A3D
+0x3532 0x5A71
+0x3533 0x5A3F
+0x3534 0x5A6F
+0x3535 0x5A75
+0x3536 0x36E9
+0x3537 0x5A73
+0x3538 0x5A2C
+0x3539 0x5A59
+0x353A 0x5A54
+0x353B 0x5A4F
+0x353C 0x5A63
+0x353D-0x353E 0x375C
+0x353F 0x5BC8
+0x3540 0x3760
+0x3541 0x5BC3
+0x3542 0x375B
+0x3543 0x5C5B
+0x3544 0x5C61
+0x3545 0x3799
+0x3546 0x5D21
+0x3547 0x5D0A
+0x3548 0x5D09
+0x3549 0x37D8
+0x354A 0x5D2C
+0x354B 0x5D08
+0x354C 0x37DA
+0x354D 0x37DD
+0x354E 0x5D2A
+0x354F 0x5D15
+0x3550 0x37E0
+0x3551 0x5D10
+0x3552 0x5D13
+0x3553 0x37E5
+0x3554 0x5D2F
+0x3555 0x5D18
+0x3556 0x37D7
+0x3557 0x5DE3
+0x3558 0x5E39
+0x3559 0x5E35
+0x355A 0x5E3A
+0x355B 0x5E32
+0x355C 0x384E
+0x355D 0x388C
+0x355E 0x3888
+0x355F 0x2F88D
+0x3560 0x5EBB
+0x3561 0x5EBA
+0x3562 0x5F34
+0x3563 0x5F39
+0x3564 0x38CE
+0x3565 0x2F89C
+0x3566-0x3567 0x38E5
+0x3568 0x6098
+0x3569 0x3932
+0x356A 0x60D0
+0x356B 0x3940
+0x356C 0x3947
+0x356D 0x394C
+0x356E 0x60D7
+0x356F 0x60AA
+0x3570 0x3935
+0x3571 0x60A1
+0x3572 0x60A4
+0x3573 0x3930
+0x3574 0x60EE
+0x3575 0x3943
+0x3576 0x60E7
+0x3577 0x394D
+0x3578 0x60E8
+0x3579 0x60DE
+0x357A 0x39B7
+0x357B 0x39F3
+0x357C 0x637E
+0x357D 0x638B
+0x357E 0x3A02
+0x3621 0x3A0B
+0x3622 0x6379
+0x3623 0x6386
+0x3624 0x6393
+0x3625 0x3A04
+0x3626 0x6373
+0x3627 0x636A
+0x3628 0x2F8BA
+0x3629 0x636C
+0x362A 0x3A08
+0x362B 0x637F
+0x362C 0x39FC
+0x362D 0x63B2
+0x362E 0x63BA
+0x362F-0x3630 0x39FF
+0x3631 0x6366
+0x3632 0x6374
+0x3633 0x3A8B
+0x3634 0x655A
+0x3635 0x3A8D
+0x3636 0x654E
+0x3637 0x654D
+0x3638-0x3639 0x658D
+0x363A 0x65AD
+0x363B 0x3ACA
+0x363C 0x65C7
+0x363D 0x65CA
+0x363E 0x3ACB
+0x363F 0x65C9
+0x3640 0x2F8CB
+0x3641 0x65E3
+0x3642 0x6657
+0x3643 0x3AF3
+0x3644 0x6663
+0x3645 0x6667
+0x3646 0x671A
+0x3647 0x6719
+0x3648 0x6716
+0x3649 0x3B36
+0x364A 0x3B6A
+0x364B 0x689E
+0x364C 0x68B6
+0x364D 0x6898
+0x364E 0x6873
+0x364F 0x3B6B
+0x3650 0x689A
+0x3651 0x688E
+0x3652 0x68B7
+0x3653 0x68DB
+0x3654 0x68A5
+0x3655 0x686C
+0x3656 0x68C1
+0x3657 0x6884
+0x3658 0x3B71
+0x3659 0x3B68
+0x365A 0x6895
+0x365B 0x687A
+0x365C 0x6899
+0x365D 0x3B72
+0x365E-0x365F 0x68B8
+0x3660 0x6870
+0x3661 0x3C2E
+0x3662 0x6B35
+0x3663 0x3C62
+0x3664 0x6B90
+0x3665 0x6BBB
+0x3666 0x6BED
+0x3667 0x3C98
+0x3668 0x3CB5
+0x3669 0x3CEB
+0x366A 0x6DC1
+0x366B 0x6DC3
+0x366C 0x6DCE
+0x366D 0x3CFB
+0x366E 0x3CF8
+0x366F 0x6DAD
+0x3670 0x6E04
+0x3671 0x3CF5
+0x3672 0x6DB9
+0x3673 0x3D08
+0x3674 0x6DE7
+0x3675 0x2F907
+0x3676 0x6E08
+0x3677 0x6E06
+0x3678 0x3D0A
+0x3679 0x6E0A
+0x367A 0x6DB0
+0x367B 0x3D06
+0x367C 0x6DF8
+0x367D 0x6E0C
+0x367E 0x3CFD
+0x3721 0x6DB1
+0x3722 0x3CFA
+0x3723 0x6E02
+0x3724 0x6E07
+0x3725 0x6E09
+0x3726 0x6E01
+0x3727 0x6E17
+0x3728 0x6DFF
+0x3729 0x6E12
+0x372A 0x3DBA
+0x372B 0x3DB9
+0x372C 0x7103
+0x372D 0x7107
+0x372E 0x7101
+0x372F 0x70F5
+0x3730 0x70F1
+0x3731 0x7108
+0x3732 0x70F2
+0x3733 0x710F
+0x3734 0x3DBB
+0x3735 0x70FE
+0x3736 0x3E18
+0x3737 0x3E40
+0x3738 0x3E3D
+0x3739 0x731A
+0x373A 0x7310
+0x373B 0x730E
+0x373C 0x7402
+0x373D 0x73F3
+0x373E 0x3ECD
+0x373F 0x3EC9
+0x3740 0x73FB
+0x3741 0x3ECB
+0x3742 0x3ECA
+0x3743 0x3ECE
+0x3744 0x751B
+0x3745 0x7523
+0x3746 0x7561
+0x3747 0x7568
+0x3748 0x3F5E
+0x3749 0x7567
+0x374A 0x75D3
+0x374B 0x3F91
+0x374C 0x3F8C
+0x374D 0x7690
+0x374E 0x3FE1
+0x374F 0x4002
+0x3750 0x76D5
+0x3751 0x76D7
+0x3752 0x76D6
+0x3753 0x7730
+0x3754 0x402B
+0x3755 0x7726
+0x3756 0x402A
+0x3757 0x7740
+0x3758 0x3E14
+0x3759 0x771E
+0x375A 0x40AD
+0x375B 0x40A3
+0x375C 0x40AB
+0x375D 0x7847
+0x375E 0x40AF
+0x375F 0x784B
+0x3760 0x7851
+0x3761 0x784F
+0x3762 0x7842
+0x3763 0x7846
+0x3764 0x4104
+0x3765 0x796E
+0x3766 0x796C
+0x3767 0x79F2
+0x3768 0x4144
+0x3769 0x79F1
+0x376A 0x79F5
+0x376B 0x79F3
+0x376C 0x79F9
+0x376D 0x413D
+0x376E 0x4147
+0x376F 0x419C
+0x3770 0x7A9A
+0x3771 0x7A93
+0x3772 0x7A91
+0x3773 0x7AE1
+0x3774 0x41E0
+0x3775 0x41E4
+0x3776 0x7B21
+0x3777 0x7B1C
+0x3778-0x3779 0x7B16
+0x377A 0x7B36
+0x377B 0x7B1F
+0x377C 0x4280
+0x377D 0x7C93
+0x377E 0x7C99
+0x3821 0x7C9A
+0x3822 0x7C9C
+0x3823 0x42CA
+0x3824 0x7D49
+0x3825 0x42D4
+0x3826 0x7D34
+0x3827 0x7D37
+0x3828 0x42D2
+0x3829 0x7D2D
+0x382A 0x42CB
+0x382B 0x7D4C
+0x382C 0x42CE
+0x382D 0x42D3
+0x382E 0x7D48
+0x382F 0x4344
+0x3830 0x4348
+0x3831 0x7F3B
+0x3832 0x4345
+0x3833 0x4381
+0x3834 0x4386
+0x3835 0x4385
+0x3836 0x8008
+0x3837 0x801A
+0x3838 0x43A3
+0x3839 0x801D
+0x383A 0x43B5
+0x383B 0x8049
+0x383C 0x8045
+0x383D 0x8044
+0x383E 0x7C9B
+0x383F 0x43FA
+0x3840 0x43F9
+0x3841 0x812A
+0x3842 0x812E
+0x3843 0x43FB
+0x3844 0x43F2
+0x3845 0x8131
+0x3846 0x43EF
+0x3847 0x811A
+0x3848 0x8134
+0x3849 0x8117
+0x384A 0x445B
+0x384B 0x4466
+0x384C 0x44CE
+0x384D 0x831D
+0x384E 0x8371
+0x384F 0x8384
+0x3850 0x8380
+0x3851 0x8372
+0x3852 0x83A1
+0x3853 0x35B4
+0x3854 0x8379
+0x3855 0x8391
+0x3856 0x44C8
+0x3857 0x839F
+0x3858 0x83AD
+0x3859 0x44D1
+0x385A 0x44C5
+0x385B 0x8323
+0x385C 0x44D2
+0x385D 0x8385
+0x385E 0x839C
+0x385F 0x83B7
+0x3860 0x8658
+0x3861 0x865A
+0x3862 0x458F
+0x3863 0x8657
+0x3864 0x86B2
+0x3865 0x45A7
+0x3866 0x86AE
+0x3867 0x45A5
+0x3868 0x45A4
+0x3869 0x4611
+0x386A 0x8845
+0x386B 0x889C
+0x386C 0x8894
+0x386D 0x88A3
+0x386E 0x888F
+0x386F 0x88A5
+0x3870 0x88A9
+0x3871 0x88A6
+0x3872 0x888A
+0x3873 0x88A0
+0x3874 0x8890
+0x3875 0x8992
+0x3876 0x8991
+0x3877 0x8994
+0x3878 0x46B5
+0x3879 0x8A26
+0x387A 0x8A32
+0x387B 0x8A28
+0x387C 0x46B4
+0x387D 0x46BD
+0x387E 0x8A1C
+0x3921 0x46BB
+0x3922 0x8A2B
+0x3923 0x8A20
+0x3924 0x46B9
+0x3925 0x8A29
+0x3926 0x46C2
+0x3927 0x46BE
+0x3928 0x46BA
+0x3929 0x8A21
+0x392A 0x8C3A
+0x392B 0x3AB7
+0x392C 0x8C5B
+0x392D 0x8C58
+0x392E 0x8C7C
+0x392F 0x4758
+0x3930 0x8CA6
+0x3931 0x8CAE
+0x3932 0x8CAD
+0x3933 0x8D65
+0x3934 0x479B
+0x3935 0x8D7E
+0x3936 0x479C
+0x3937 0x8D7C
+0x3938 0x8D7F
+0x3939 0x8D7A
+0x393A 0x8DBD
+0x393B 0x47DA
+0x393C 0x47DE
+0x393D 0x8DC0
+0x393E 0x8DBB
+0x393F 0x8EAD
+0x3940 0x8EAF
+0x3941 0x8ED6
+0x3942 0x484D
+0x3943-0x3944 0x4846
+0x3945-0x3946 0x484B
+0x3947 0x8ED9
+0x3948 0x4848
+0x3949 0x4899
+0x394A 0x9012
+0x394B 0x900E
+0x394C 0x9025
+0x394D 0x489B
+0x394E 0x9013
+0x394F 0x90EE
+0x3950 0x48CE
+0x3951 0x90AB
+0x3952 0x90F7
+0x3953 0x48EB
+0x3954 0x9159
+0x3955 0x9154
+0x3956 0x91F2
+0x3957 0x91F0
+0x3958 0x91E5
+0x3959 0x91F6
+0x395A 0x491C
+0x395B 0x498C
+0x395C 0x9587
+0x395D 0x49D1
+0x395E 0x965A
+0x395F 0x49D6
+0x3960 0x49D3
+0x3961 0x966E
+0x3962 0x49D4
+0x3963 0x49D0
+0x3964 0x49D5
+0x3965 0x9679
+0x3966 0x4A0B
+0x3967 0x98E1
+0x3968 0x98E6
+0x3969 0x4BC6
+0x396A 0x9EC4
+0x396B 0x9ED2
+0x396C 0x4E80
+0x396D 0x3424
+0x396E 0x4E81
+0x396F 0x508F
+0x3970 0x5097
+0x3971-0x3972 0x5088
+0x3973 0x3474
+0x3974 0x347A
+0x3975 0x5081
+0x3976 0x5160
+0x3977 0x20564
+0x3978 0x34C3
+0x3979 0x5E42
+0x397A 0x51D3
+0x397B-0x397C 0x34D4
+0x397D 0x51D2
+0x397E 0x51D6
+0x3A21 0x5273
+0x3A22 0x34FB
+0x3A23 0x5270
+0x3A24 0x34F7
+0x3A25 0x3532
+0x3A26 0x2F833
+0x3A27 0x53A8
+0x3A28 0x53A6
+0x3A29 0x53C5
+0x3A2A 0x5597
+0x3A2B 0x55DE
+0x3A2C 0x35BA
+0x3A2D 0x35BF
+0x3A2E 0x5596
+0x3A2F 0x55B4
+0x3A30 0x35C7
+0x3A31 0x5585
+0x3A32 0x35B7
+0x3A33 0x559B
+0x3A34 0x55A0
+0x3A35 0x35B9
+0x3A36 0x5559
+0x3A37 0x35C3
+0x3A38 0x5586
+0x3A39 0x35BD
+0x3A3A 0x35D0
+0x3A3B 0x55AF
+0x3A3C 0x557A
+0x3A3D 0x35C1
+0x3A3E 0x35BE
+0x3A3F 0x35CD
+0x3A40 0x559E
+0x3A41 0x35CB
+0x3A42 0x55A9
+0x3A43 0x570F
+0x3A44 0x570E
+0x3A45 0x581A
+0x3A46 0x364F
+0x3A47 0x581F
+0x3A48 0x3653
+0x3A49 0x583C
+0x3A4A 0x5818
+0x3A4B 0x583E
+0x3A4C 0x5826
+0x3A4D 0x3655
+0x3A4E 0x583A
+0x3A4F 0x21364
+0x3A50 0x5822
+0x3A51 0x3651
+0x3A52 0x58FB
+0x3A53-0x3A54 0x5963
+0x3A55 0x369F
+0x3A56 0x5AA8
+0x3A57 0x5AA3
+0x3A58 0x5A82
+0x3A59 0x5A88
+0x3A5A 0x5AA1
+0x3A5B 0x5A85
+0x3A5C 0x5A98
+0x3A5D 0x36FE
+0x3A5E 0x5A99
+0x3A5F 0x36FB
+0x3A60 0x5A89
+0x3A61 0x5A81
+0x3A62 0x5A96
+0x3A63 0x5A80
+0x3A64 0x36F1
+0x3A65 0x36F5
+0x3A66 0x5A91
+0x3A67 0x36EF
+0x3A68 0x3704
+0x3A69 0x3703
+0x3A6A 0x36F4
+0x3A6B 0x5ACF
+0x3A6C 0x36F3
+0x3A6D 0x3702
+0x3A6E 0x36F7
+0x3A6F 0x36FA
+0x3A70 0x36FD
+0x3A71 0x36EE
+0x3A72 0x5A87
+0x3A73 0x5AA0
+0x3A74 0x36F0
+0x3A75 0x5A79
+0x3A76 0x36F2
+0x3A77 0x5A86
+0x3A78 0x5AAB
+0x3A79 0x5AAA
+0x3A7A 0x5AA4
+0x3A7B 0x5A8D
+0x3A7C 0x5A7E
+0x3A7D 0x3744
+0x3A7E 0x5BD5
+0x3B21 0x3762
+0x3B22 0x3777
+0x3B23 0x3DC9
+0x3B24 0x5C1E
+0x3B25 0x5C5F
+0x3B26 0x5C5E
+0x3B27 0x5D44
+0x3B28 0x5D3E
+0x3B29 0x37E8
+0x3B2A 0x5D48
+0x3B2B 0x5D1C
+0x3B2C 0x37EF
+0x3B2D 0x5D5B
+0x3B2E 0x5D4D
+0x3B2F 0x37E6
+0x3B30 0x37ED
+0x3B31 0x5D57
+0x3B32 0x37E7
+0x3B33 0x5D53
+0x3B34 0x5D4F
+0x3B35 0x37EB
+0x3B36 0x5D3B
+0x3B37 0x5D46
+0x3B38 0x382D
+0x3B39 0x3855
+0x3B3A-0x3B3B 0x5E46
+0x3B3C 0x3853
+0x3B3D 0x5E48
+0x3B3E 0x5EC0
+0x3B3F 0x5EBD
+0x3B40 0x5EBF
+0x3B41 0x3890
+0x3B42 0x5F11
+0x3B43 0x38BE
+0x3B44 0x5F3E
+0x3B45 0x5F3B
+0x3B46 0x38BD
+0x3B47 0x5F3A
+0x3B48-0x3B49 0x38CF
+0x3B4A 0x38EC
+0x3B4B 0x5FA7
+0x3B4C 0x394B
+0x3B4D 0x60EA
+0x3B4E 0x3948
+0x3B4F 0x6107
+0x3B50 0x6122
+0x3B51 0x610C
+0x3B52 0x3955
+0x3B53 0x3951
+0x3B54 0x60B3
+0x3B55 0x60D6
+0x3B56 0x60D2
+0x3B57 0x394E
+0x3B58 0x60E3
+0x3B59 0x60E5
+0x3B5A 0x60E9
+0x3B5B 0x396B
+0x3B5C 0x395E
+0x3B5D 0x6111
+0x3B5E 0x60FD
+0x3B5F 0x3960
+0x3B60 0x3967
+0x3B61 0x611E
+0x3B62-0x3B63 0x6120
+0x3B64 0x621E
+0x3B65 0x39B8
+0x3B66 0x63E2
+0x3B67 0x63DE
+0x3B68 0x63E6
+0x3B69 0x3A14
+0x3B6A 0x3A0F
+0x3B6B 0x3A07
+0x3B6C 0x3A13
+0x3B6D 0x63F8
+0x3B6E 0x3A17
+0x3B6F 0x63FE
+0x3B70 0x63C1
+0x3B71 0x63BF
+0x3B72 0x63F7
+0x3B73 0x63D1
+0x3B74-0x3B76 0x655F
+0x3B77 0x3A9A
+0x3B78 0x3AB8
+0x3B79 0x65D1
+0x3B7A-0x3B7B 0x3AF7
+0x3B7C 0x667D
+0x3B7D 0x666B
+0x3B7E 0x667F
+0x3C21 0x3AFD
+0x3C22 0x3AF5
+0x3C23 0x6673
+0x3C24 0x6681
+0x3C25 0x666D
+0x3C26 0x6669
+0x3C27 0x3AFA
+0x3C28 0x3B38
+0x3C29 0x671E
+0x3C2A 0x68ED
+0x3C2B 0x3B87
+0x3C2C 0x3B80
+0x3C2D 0x3B88
+0x3C2E 0x3B79
+0x3C2F 0x6903
+0x3C30 0x3B7C
+0x3C31 0x68FE
+0x3C32 0x68E5
+0x3C33 0x691E
+0x3C34 0x6902
+0x3C35 0x3B83
+0x3C36 0x3B85
+0x3C37 0x6909
+0x3C38 0x68CA
+0x3C39 0x6900
+0x3C3A 0x2F8E5
+0x3C3B 0x6901
+0x3C3C 0x6918
+0x3C3D 0x68E2
+0x3C3E 0x68CF
+0x3C3F 0x3B7B
+0x3C40 0x692E
+0x3C41 0x68C5
+0x3C42 0x68FF
+0x3C43 0x3B86
+0x3C44 0x691C
+0x3C45 0x68C3
+0x3C46 0x3C34
+0x3C47 0x6B6F
+0x3C48 0x3C55
+0x3C49 0x6B6E
+0x3C4A 0x3C68
+0x3C4B 0x6BBE
+0x3C4C 0x3C9C
+0x3C4D 0x6BF4
+0x3C4E 0x6C2D
+0x3C4F 0x3CFC
+0x3C50 0x6DB6
+0x3C51 0x6E75
+0x3C52 0x6E1E
+0x3C53 0x3D1A
+0x3C54 0x6E18
+0x3C55 0x3D17
+0x3C56 0x6E48
+0x3C57 0x3D1B
+0x3C58 0x6E4F
+0x3C59 0x3D13
+0x3C5A 0x6E42
+0x3C5B 0x6E6A
+0x3C5C 0x6E70
+0x3C5D 0x6DFE
+0x3C5E 0x3D05
+0x3C5F 0x3D07
+0x3C60 0x6E6D
+0x3C61 0x3D1C
+0x3C62 0x6E7B
+0x3C63 0x6E7E
+0x3C64 0x6E59
+0x3C65 0x3D11
+0x3C66 0x6E57
+0x3C67 0x3D16
+0x3C68 0x6E80
+0x3C69 0x6E50
+0x3C6A 0x3D15
+0x3C6B 0x6E29
+0x3C6C 0x6E76
+0x3C6D 0x6E2A
+0x3C6E 0x6E4C
+0x3C6F 0x712A
+0x3C70 0x3DCB
+0x3C71 0x7135
+0x3C72 0x712C
+0x3C73 0x7137
+0x3C74 0x711D
+0x3C75 0x3DC5
+0x3C76 0x3DC2
+0x3C77 0x7138
+0x3C78 0x3DCD
+0x3C79 0x7134
+0x3C7A 0x712B
+0x3C7B 0x7133
+0x3C7C 0x7127
+0x3C7D 0x7124
+0x3C7E 0x3DCA
+0x3D21 0x712D
+0x3D22 0x7232
+0x3D23 0x7283
+0x3D24 0x7282
+0x3D25 0x7287
+0x3D26 0x7306
+0x3D27 0x7324
+0x3D28 0x7338
+0x3D29 0x732A
+0x3D2A 0x732C
+0x3D2B 0x732B
+0x3D2C 0x3E83
+0x3D2D 0x732F
+0x3D2E 0x7328
+0x3D2F 0x7417
+0x3D30 0x3ED6
+0x3D31 0x3ED5
+0x3D32 0x7419
+0x3D33 0x7438
+0x3D34 0x3ED1
+0x3D35 0x741F
+0x3D36 0x7414
+0x3D37 0x743C
+0x3D38 0x73F7
+0x3D39 0x741C
+0x3D3A 0x7415
+0x3D3B 0x7418
+0x3D3C 0x7439
+0x3D3D 0x74F9
+0x3D3E 0x7524
+0x3D3F 0x2F934
+0x3D40 0x3F52
+0x3D41 0x3F5F
+0x3D42 0x756E
+0x3D43 0x756D
+0x3D44 0x7571
+0x3D45 0x758E
+0x3D46 0x3F95
+0x3D47 0x75E5
+0x3D48 0x3F9D
+0x3D49 0x3F98
+0x3D4A 0x3F9E
+0x3D4B 0x3F96
+0x3D4C 0x7694
+0x3D4D 0x76B3
+0x3D4E 0x4003
+0x3D4F 0x76D9
+0x3D50 0x402F
+0x3D51-0x3D52 0x7748
+0x3D53 0x7743
+0x3D54 0x4031
+0x3D55 0x4033
+0x3D56 0x7742
+0x3D57 0x77DF
+0x3D58 0x40B4
+0x3D59 0x7863
+0x3D5A 0x7876
+0x3D5B 0x40B0
+0x3D5C 0x785F
+0x3D5D 0x7866
+0x3D5E 0x7966
+0x3D5F 0x7971
+0x3D60 0x4108
+0x3D61 0x4107
+0x3D62 0x7976
+0x3D63 0x7984
+0x3D64 0x7975
+0x3D65 0x79FF
+0x3D66 0x7A07
+0x3D67 0x414E
+0x3D68 0x7A0E
+0x3D69 0x7A09
+0x3D6A 0x4150
+0x3D6B 0x4152
+0x3D6C 0x41A1
+0x3D6D 0x41A3
+0x3D6E 0x41A5
+0x3D6F 0x41CC
+0x3D70 0x7AE7
+0x3D71 0x7AE2
+0x3D72 0x7B55
+0x3D73 0x41EF
+0x3D74 0x41EA
+0x3D75 0x7B43
+0x3D76 0x7B57
+0x3D77 0x7B6C
+0x3D78 0x7B42
+0x3D79 0x7B53
+0x3D7A 0x41ED
+0x3D7B 0x7B41
+0x3D7C 0x4285
+0x3D7D 0x4284
+0x3D7E 0x7CA7
+0x3E21 0x7CA0
+0x3E22 0x7CA6
+0x3E23 0x7CA4
+0x3E24 0x7D74
+0x3E25 0x42DB
+0x3E26 0x7D59
+0x3E27 0x42D9
+0x3E28 0x7D60
+0x3E29 0x7D57
+0x3E2A 0x7D6C
+0x3E2B 0x7D7E
+0x3E2C 0x7D64
+0x3E2D 0x42D7
+0x3E2E 0x7D5A
+0x3E2F 0x7D5D
+0x3E30 0x42DA
+0x3E31 0x42DE
+0x3E32 0x42D8
+0x3E33 0x7D76
+0x3E34 0x7D4D
+0x3E35 0x7D75
+0x3E36 0x42D5
+0x3E37 0x7FD3
+0x3E38 0x7FD6
+0x3E39-0x3E3A 0x439C
+0x3E3B 0x8060
+0x3E3C 0x804E
+0x3E3D 0x8145
+0x3E3E 0x813B
+0x3E3F 0x43FE
+0x3E40 0x8148
+0x3E41 0x8142
+0x3E42 0x8149
+0x3E43 0x8140
+0x3E44 0x8114
+0x3E45 0x8141
+0x3E46 0x4407
+0x3E47 0x81EF
+0x3E48 0x81F6
+0x3E49 0x8203
+0x3E4A 0x446A
+0x3E4B 0x83ED
+0x3E4C 0x44E7
+0x3E4D 0x83DA
+0x3E4E 0x8418
+0x3E4F 0x83D2
+0x3E50 0x8408
+0x3E51 0x44E2
+0x3E52 0x8400
+0x3E53 0x44DF
+0x3E54 0x44E1
+0x3E55 0x44E5
+0x3E56 0x8417
+0x3E57 0x8346
+0x3E58 0x8414
+0x3E59 0x83D3
+0x3E5A 0x8405
+0x3E5B 0x841F
+0x3E5C 0x8402
+0x3E5D 0x8416
+0x3E5E 0x83CD
+0x3E5F 0x83E6
+0x3E60 0x4591
+0x3E61 0x865D
+0x3E62 0x86D5
+0x3E63 0x86E1
+0x3E64 0x45B4
+0x3E65 0x45B0
+0x3E66 0x45B5
+0x3E67 0x45AE
+0x3E68 0x86EE
+0x3E69 0x8847
+0x3E6A 0x8846
+0x3E6B 0x462D
+0x3E6C 0x462C
+0x3E6D 0x88BB
+0x3E6E 0x462B
+0x3E6F 0x88BF
+0x3E70 0x88B4
+0x3E71 0x4629
+0x3E72 0x88B5
+0x3E73 0x467F
+0x3E74 0x899A
+0x3E75 0x8A43
+0x3E76 0x46C9
+0x3E77 0x46CB
+0x3E78 0x8A5A
+0x3E79-0x3E7A 0x46C5
+0x3E7B 0x46CA
+0x3E7C 0x8A35
+0x3E7D 0x8A38
+0x3E7E 0x8A42
+0x3F21 0x8A49
+0x3F22 0x8A5D
+0x3F23 0x8A4B
+0x3F24 0x8A3D
+0x3F25 0x46D2
+0x3F26 0x46D0
+0x3F27 0x472D
+0x3F28 0x4735
+0x3F29 0x8C60
+0x3F2A 0x8C5E
+0x3F2B 0x8C7F
+0x3F2C 0x8C7E
+0x3F2D 0x8C83
+0x3F2E 0x476C
+0x3F2F 0x8CB1
+0x3F30 0x8D87
+0x3F31 0x479D
+0x3F32 0x47A0
+0x3F33 0x8D88
+0x3F34 0x8D83
+0x3F35 0x47A2
+0x3F36 0x479F
+0x3F37 0x8D86
+0x3F38 0x8D8B
+0x3F39 0x8D82
+0x3F3A 0x8DCA
+0x3F3B 0x8DD2
+0x3F3C 0x47EB
+0x3F3D 0x47E2
+0x3F3E 0x8DD4
+0x3F3F 0x8DC9
+0x3F40 0x8EB0
+0x3F41 0x4836
+0x3F42 0x4832
+0x3F43 0x4850
+0x3F44 0x8EF2
+0x3F45 0x8EE4
+0x3F46 0x8EF3
+0x3F47 0x8EEA
+0x3F48 0x484F
+0x3F49 0x8EFD
+0x3F4A 0x4852
+0x3F4B 0x8F9D
+0x3F4C 0x902B
+0x3F4D 0x902A
+0x3F4E 0x489E
+0x3F4F-0x3F50 0x9028
+0x3F51 0x902C
+0x3F52 0x48A0
+0x3F53 0x489C
+0x3F54 0x903A
+0x3F55 0x9030
+0x3F56 0x9037
+0x3F57 0x903B
+0x3F58 0x48D1
+0x3F59 0x910A
+0x3F5A-0x3F5C 0x48EF
+0x3F5D 0x91FE
+0x3F5E 0x9220
+0x3F5F 0x491D
+0x3F60 0x920B
+0x3F61 0x491F
+0x3F62 0x9218
+0x3F63 0x9222
+0x3F64 0x491E
+0x3F65 0x921B
+0x3F66 0x9208
+0x3F67 0x4920
+0x3F68 0x920E
+0x3F69 0x9213
+0x3F6A 0x498E
+0x3F6B 0x4991
+0x3F6C 0x9595
+0x3F6D 0x28CDD
+0x3F6E 0x4990
+0x3F6F 0x49D7
+0x3F70 0x968C
+0x3F71 0x967B
+0x3F72 0x967F
+0x3F73 0x9681
+0x3F74 0x49D9
+0x3F75 0x9682
+0x3F76 0x49F4
+0x3F77 0x49F6
+0x3F78 0x3560
+0x3F79 0x49F5
+0x3F7A 0x49F3
+0x3F7B 0x96EE
+0x3F7C 0x96ED
+0x3F7D 0x4A0C
+0x3F7E 0x96EC
+0x4021 0x975F
+0x4022 0x976F
+0x4023 0x4A51
+0x4024 0x976D
+0x4025-0x4027 0x4AA6
+0x4028 0x4B27
+0x4029-0x402A 0x4B24
+0x402B 0x98F0
+0x402C 0x4B2A
+0x402D 0x4B74
+0x402E 0x4BC7
+0x402F 0x9AA9
+0x4030 0x4BE7
+0x4031 0x4BED
+0x4032 0x9AE0
+0x4033 0x4EB7
+0x4034 0x342E
+0x4035 0x347B
+0x4036 0x50CC
+0x4037 0x50BC
+0x4038 0x347C
+0x4039 0x50AA
+0x403A 0x50B9
+0x403B 0x347D
+0x403C 0x50AB
+0x403D 0x50C3
+0x403E 0x50CD
+0x403F 0x517E
+0x4040 0x527E
+0x4041 0x5279
+0x4042 0x34FD
+0x4043 0x2F823
+0x4044 0x52E1
+0x4045 0x52E0
+0x4046 0x52E7
+0x4047 0x5380
+0x4048 0x53AB
+0x4049 0x53AA
+0x404A 0x53A9
+0x404B 0x53E0
+0x404C 0x55EA
+0x404D 0x35DA
+0x404E 0x55D7
+0x404F 0x35D6
+0x4050 0x35DB
+0x4051 0x55C1
+0x4052 0x5715
+0x4053 0x365B
+0x4054 0x586C
+0x4055 0x365C
+0x4056 0x585C
+0x4057 0x5850
+0x4058 0x5861
+0x4059 0x586A
+0x405A 0x5869
+0x405B 0x5856
+0x405C 0x5860
+0x405D 0x5866
+0x405E 0x585F
+0x405F 0x5923
+0x4060 0x5966
+0x4061 0x5968
+0x4062 0x3706
+0x4063 0x370B
+0x4064 0x5ACE
+0x4065 0x370D
+0x4066 0x5AC5
+0x4067 0x5AC3
+0x4068 0x370A
+0x4069 0x3713
+0x406A 0x5AD0
+0x406B 0x3710
+0x406C 0x3712
+0x406D 0x3709
+0x406E 0x3708
+0x406F 0x3711
+0x4070 0x370F
+0x4071 0x5B74
+0x4072 0x5B76
+0x4073 0x5BDC
+0x4074 0x5BD7
+0x4075-0x4076 0x5BDA
+0x4077 0x3767
+0x4078 0x5C20
+0x4079 0x5D6D
+0x407A 0x5D66
+0x407B 0x37F6
+0x407C 0x5D64
+0x407D 0x5D6E
+0x407E 0x2F87E
+0x4121 0x5D60
+0x4122 0x5F42
+0x4123 0x5F5A
+0x4124 0x5F6E
+0x4125 0x3964
+0x4126 0x396C
+0x4127 0x6130
+0x4128 0x613A
+0x4129 0x612A
+0x412A 0x6143
+0x412B 0x6119
+0x412C 0x6131
+0x412D 0x396D
+0x412E 0x613D
+0x412F 0x397A
+0x4130 0x3975
+0x4131 0x3A0D
+0x4132 0x6408
+0x4133 0x6432
+0x4134 0x6438
+0x4135 0x3A1E
+0x4136 0x6431
+0x4137 0x3A1B
+0x4138 0x6419
+0x4139 0x3A2A
+0x413A 0x6411
+0x413B 0x3A1F
+0x413C 0x3A22
+0x413D 0x6429
+0x413E 0x641D
+0x413F 0x3A25
+0x4140 0x3A27
+0x4141 0x3A29
+0x4142 0x643C
+0x4143 0x3A24
+0x4144-0x4145 0x6446
+0x4146 0x3A28
+0x4147 0x3A26
+0x4148 0x643A
+0x4149 0x6407
+0x414A 0x3A23
+0x414B 0x656B
+0x414C 0x3A9F
+0x414D 0x6570
+0x414E 0x656D
+0x414F 0x3AB1
+0x4150 0x65E4
+0x4151 0x6693
+0x4152 0x3B03
+0x4153 0x3B07
+0x4154 0x3B0C
+0x4155 0x3B06
+0x4156 0x668F
+0x4157 0x3B04
+0x4158 0x3B09
+0x4159 0x6692
+0x415A 0x3B05
+0x415B 0x668E
+0x415C 0x3B08
+0x415D 0x6946
+0x415E 0x3B96
+0x415F 0x3B9C
+0x4160 0x3B9F
+0x4161 0x3B9B
+0x4162-0x4163 0x3B98
+0x4164 0x3B94
+0x4165 0x6931
+0x4166 0x3B8D
+0x4167 0x3BA3
+0x4168 0x693E
+0x4169 0x3B93
+0x416A 0x697C
+0x416B 0x6943
+0x416C 0x3B92
+0x416D 0x6973
+0x416E 0x2F8E8
+0x416F 0x6955
+0x4170 0x3B8E
+0x4171 0x3B8C
+0x4172 0x6985
+0x4173 0x694D
+0x4174 0x6950
+0x4175 0x6947
+0x4176 0x6967
+0x4177 0x6936
+0x4178 0x6964
+0x4179 0x6961
+0x417A 0x3B9A
+0x417B 0x697D
+0x417C 0x6B44
+0x417D 0x6B40
+0x417E 0x6B71
+0x4221 0x6B73
+0x4222 0x6B9C
+0x4223 0x3C6A
+0x4224 0x3C6D
+0x4225 0x3C84
+0x4226 0x6BC1
+0x4227 0x3CA0
+0x4228 0x6BFA
+0x4229-0x422A 0x6C31
+0x422B 0x3D1D
+0x422C 0x3D26
+0x422D 0x6EB8
+0x422E 0x6EA8
+0x422F 0x3D33
+0x4230 0x6E91
+0x4231 0x6EBB
+0x4232 0x3D38
+0x4233 0x6E9A
+0x4234 0x3D30
+0x4235 0x3D28
+0x4236 0x6EA9
+0x4237 0x3D27
+0x4238 0x3D2A
+0x4239 0x6EB5
+0x423A 0x6E6C
+0x423B 0x6EE8
+0x423C 0x3D31
+0x423D 0x6EDD
+0x423E 0x6EDA
+0x423F 0x6EE6
+0x4240 0x6EAC
+0x4241 0x3D34
+0x4242 0x3D2E
+0x4243 0x3D3B
+0x4244 0x6ED9
+0x4245 0x6EE3
+0x4246 0x6EE9
+0x4247 0x6EDB
+0x4248 0x3D29
+0x4249 0x716F
+0x424A 0x3DD2
+0x424B 0x3DD8
+0x424C 0x7148
+0x424D 0x3DCF
+0x424E 0x714A
+0x424F 0x716B
+0x4250 0x3DD9
+0x4251 0x714F
+0x4252 0x7157
+0x4253 0x7174
+0x4254 0x3DCE
+0x4255 0x3DD3
+0x4256 0x3DD0
+0x4257 0x7145
+0x4258 0x7151
+0x4259 0x716D
+0x425A 0x3BA1
+0x425B 0x7251
+0x425C 0x7250
+0x425D 0x724E
+0x425E 0x3E47
+0x425F 0x7341
+0x4260 0x3E8B
+0x4261 0x732E
+0x4262 0x7346
+0x4263 0x3ED4
+0x4264 0x7427
+0x4265 0x3EDE
+0x4266 0x7448
+0x4267 0x7453
+0x4268 0x743D
+0x4269 0x3EDF
+0x426A 0x745D
+0x426B 0x7456
+0x426C 0x3ED7
+0x426D 0x741E
+0x426E 0x7447
+0x426F 0x7443
+0x4270 0x7458
+0x4271 0x7449
+0x4272 0x3EE1
+0x4273 0x744C
+0x4274 0x7445
+0x4275 0x743E
+0x4276 0x3F2F
+0x4277 0x7501
+0x4278 0x751E
+0x4279-0x427A 0x3F62
+0x427B 0x757A
+0x427C 0x75EE
+0x427D 0x7602
+0x427E 0x7697
+0x4321 0x7698
+0x4322 0x3FE2
+0x4323 0x4004
+0x4324 0x4043
+0x4325 0x775D
+0x4326 0x7764
+0x4327 0x7753
+0x4328 0x7758
+0x4329 0x7882
+0x432A 0x7890
+0x432B 0x788A
+0x432C 0x40BE
+0x432D 0x787A
+0x432E 0x787D
+0x432F 0x40BA
+0x4330 0x788B
+0x4331 0x7878
+0x4332 0x40BC
+0x4333 0x2F94E
+0x4334 0x788D
+0x4335 0x7888
+0x4336 0x7892
+0x4337 0x7881
+0x4338 0x797E
+0x4339 0x7983
+0x433A-0x433B 0x410D
+0x433C 0x4111
+0x433D 0x7980
+0x433E 0x410F
+0x433F 0x4112
+0x4340 0x4155
+0x4341 0x7A0F
+0x4342 0x4159
+0x4343 0x415B
+0x4344 0x7A1D
+0x4345 0x4157
+0x4346 0x7AA1
+0x4347 0x7AA4
+0x4348 0x41CE
+0x4349-0x434A 0x7AE9
+0x434B 0x41FE
+0x434C 0x7B62
+0x434D 0x7B6B
+0x434E 0x41FC
+0x434F 0x7B5E
+0x4350 0x41F5
+0x4351 0x7B79
+0x4352-0x4353 0x41F9
+0x4354 0x7B6F
+0x4355 0x7B68
+0x4356-0x4357 0x4288
+0x4358 0x7CAE
+0x4359 0x428A
+0x435A 0x4287
+0x435B 0x428B
+0x435C 0x7CB0
+0x435D 0x42E6
+0x435E 0x7D90
+0x435F 0x42ED
+0x4360 0x7D8A
+0x4361 0x42E5
+0x4362 0x7D8B
+0x4363 0x7D99
+0x4364 0x7D95
+0x4365 0x42E0
+0x4366 0x7D87
+0x4367 0x7D78
+0x4368 0x7D97
+0x4369 0x7D89
+0x436A 0x7D98
+0x436B 0x42E1
+0x436C-0x436D 0x435B
+0x436E 0x7FA3
+0x436F 0x438F
+0x4370 0x438B
+0x4371 0x438D
+0x4372 0x7FDD
+0x4373 0x8057
+0x4374 0x43B9
+0x4375 0x8163
+0x4376 0x816A
+0x4377 0x816C
+0x4378 0x440F
+0x4379 0x4419
+0x437A 0x4413
+0x437B 0x815D
+0x437C 0x8175
+0x437D 0x4418
+0x437E 0x815F
+0x4421 0x4416
+0x4422 0x817D
+0x4423 0x816D
+0x4424 0x4453
+0x4425 0x2F98D
+0x4426 0x8241
+0x4427 0x844F
+0x4428 0x8484
+0x4429 0x44F6
+0x442A 0x847F
+0x442B 0x44F5
+0x442C 0x8448
+0x442D 0x842A
+0x442E 0x847B
+0x442F 0x8472
+0x4430 0x8464
+0x4431 0x842E
+0x4432 0x845C
+0x4433 0x8453
+0x4434 0x44F7
+0x4435 0x8441
+0x4436 0x84C8
+0x4437 0x44F0
+0x4438 0x8462
+0x4439 0x8480
+0x443A 0x843E
+0x443B 0x8483
+0x443C 0x8471
+0x443D 0x44F9
+0x443E 0x844A
+0x443F 0x8455
+0x4440 0x8458
+0x4441 0x4592
+0x4442-0x4443 0x4595
+0x4444-0x4445 0x86FC
+0x4446 0x8715
+0x4447 0x45B9
+0x4448 0x8716
+0x4449 0x86FF
+0x444A 0x45BD
+0x444B 0x45B8
+0x444C 0x4612
+0x444D 0x8858
+0x444E 0x88CF
+0x444F 0x88E0
+0x4450-0x4451 0x4680
+0x4452 0x469A
+0x4453 0x4698
+0x4454 0x89E7
+0x4455 0x8A6A
+0x4456 0x8A80
+0x4457 0x46D4
+0x4458 0x8A6F
+0x4459 0x8A65
+0x445A 0x46DA
+0x445B 0x8A78
+0x445C 0x8A7D
+0x445D 0x8A88
+0x445E 0x46D6
+0x445F 0x46DB
+0x4460 0x8A64
+0x4461 0x8A7E
+0x4462 0x46DC
+0x4463 0x8A67
+0x4464 0x8C63
+0x4465 0x8C88
+0x4466 0x4771
+0x4467 0x8CCD
+0x4468 0x4772
+0x4469 0x8CC9
+0x446A 0x47A8
+0x446B 0x8DED
+0x446C 0x47F0
+0x446D 0x2F9DB
+0x446E 0x47F1
+0x446F 0x47FD
+0x4470 0x4838
+0x4471 0x4837
+0x4472 0x4839
+0x4473 0x8EB1
+0x4474 0x4855
+0x4475 0x4853
+0x4476 0x8F04
+0x4477 0x8F9E
+0x4478 0x8FA0
+0x4479 0x9043
+0x447A 0x9046
+0x447B 0x9048
+0x447C 0x9045
+0x447D 0x9040
+0x447E 0x904C
+0x4521 0x48D5
+0x4522 0x48BD
+0x4523 0x910C
+0x4524 0x9113
+0x4525 0x9115
+0x4526 0x48F5
+0x4527 0x916B
+0x4528 0x9167
+0x4529 0x925D
+0x452A 0x9255
+0x452B 0x9235
+0x452C 0x4921
+0x452D 0x9259
+0x452E 0x922F
+0x452F 0x923C
+0x4530 0x928F
+0x4531 0x925C
+0x4532 0x926A
+0x4533 0x9262
+0x4534 0x925F
+0x4535 0x926B
+0x4536 0x926E
+0x4537 0x923B
+0x4538 0x9244
+0x4539 0x9241
+0x453A 0x959A
+0x453B 0x4992
+0x453C 0x9599
+0x453D 0x49DE
+0x453E 0x49DB
+0x453F 0x49DA
+0x4540 0x968F
+0x4541 0x49DF
+0x4542 0x9696
+0x4543 0x49F9
+0x4544 0x49F8
+0x4545 0x49FA
+0x4546 0x96F4
+0x4547 0x96FC
+0x4548 0x4A0E
+0x4549 0x9755
+0x454A 0x4A43
+0x454B 0x9779
+0x454C 0x4A56
+0x454D 0x4A53
+0x454E 0x4A9E
+0x454F 0x97EE
+0x4550 0x97F5
+0x4551 0x4AA9
+0x4552 0x980B
+0x4553 0x4AFA
+0x4554 0x98F3
+0x4555 0x4B31
+0x4556 0x4B30
+0x4557 0x98F7
+0x4558 0x98FF
+0x4559 0x98F5
+0x455A 0x4B32
+0x455B 0x98EC
+0x455C 0x98F1
+0x455D 0x4B29
+0x455E 0x4B2E
+0x455F 0x999A
+0x4560 0x4B76
+0x4561 0x9AE2
+0x4562 0x9B3D
+0x4563 0x9B5D
+0x4564 0x9CE8
+0x4565 0x4CA5
+0x4566 0x9CEB
+0x4567 0x9CEF
+0x4568 0x9CEE
+0x4569 0x9E81
+0x456A 0x9F14
+0x456B 0x50D0
+0x456C 0x50D9
+0x456D 0x50DC
+0x456E 0x50D8
+0x456F 0x348C
+0x4570 0x50E1
+0x4571 0x50EB
+0x4572 0x348B
+0x4573 0x3489
+0x4574 0x50F4
+0x4575 0x50E2
+0x4576 0x50DE
+0x4577 0x348D
+0x4578 0x3486
+0x4579 0x34D7
+0x457A 0x51F4
+0x457B 0x3504
+0x457C 0x3507
+0x457D 0x3503
+0x457E 0x52ED
+0x4621 0x52EA
+0x4622 0x3522
+0x4623 0x5332
+0x4624 0x3551
+0x4625 0x53AE
+0x4626 0x53B0
+0x4627 0x3561
+0x4628 0x55FB
+0x4629 0x5603
+0x462A 0x560B
+0x462B 0x35E9
+0x462C 0x5607
+0x462D 0x35E5
+0x462E 0x55F8
+0x462F 0x35E4
+0x4630 0x5628
+0x4631 0x561E
+0x4632 0x35E3
+0x4633 0x5618
+0x4634 0x5611
+0x4635 0x5651
+0x4636 0x5605
+0x4637 0x5717
+0x4638 0x5892
+0x4639 0x3665
+0x463A 0x588C
+0x463B 0x3663
+0x463C 0x5878
+0x463D 0x5884
+0x463E 0x5873
+0x463F 0x58AD
+0x4640 0x5897
+0x4641 0x5895
+0x4642 0x5877
+0x4643 0x5872
+0x4644 0x5896
+0x4645 0x588D
+0x4646 0x5910
+0x4647 0x368C
+0x4648 0x596C
+0x4649 0x371A
+0x464A 0x5AE7
+0x464B 0x3715
+0x464C 0x5AE4
+0x464D-0x464E 0x3720
+0x464F 0x5AEF
+0x4650 0x5626
+0x4651 0x371C
+0x4652 0x371B
+0x4653 0x5AF0
+0x4654 0x5D7B
+0x4655 0x37FE
+0x4656 0x5D83
+0x4657 0x3804
+0x4658 0x3801
+0x4659-0x465A 0x5D8B
+0x465B 0x3800
+0x465C 0x5D78
+0x465D 0x5E52
+0x465E 0x386D
+0x465F 0x3893
+0x4660 0x5ED0
+0x4661 0x5ECF
+0x4662 0x38A1
+0x4663-0x4664 0x5FB3
+0x4665 0x3976
+0x4666 0x3979
+0x4667 0x3972
+0x4668 0x617B
+0x4669 0x3983
+0x466A 0x616F
+0x466B 0x6181
+0x466C 0x613C
+0x466D 0x6142
+0x466E 0x6138
+0x466F 0x6133
+0x4670 0x2F8A6
+0x4671 0x6160
+0x4672 0x6169
+0x4673 0x617D
+0x4674 0x6186
+0x4675 0x622C
+0x4676 0x6228
+0x4677 0x3A38
+0x4678 0x644C
+0x4679 0x3A30
+0x467A 0x6457
+0x467B 0x647C
+0x467C 0x3A34
+0x467D 0x3A3A
+0x467E 0x6455
+0x4721 0x6462
+0x4722 0x6471
+0x4723 0x646A
+0x4724 0x6456
+0x4725 0x643B
+0x4726 0x6481
+0x4727 0x3A35
+0x4728 0x644F
+0x4729 0x647E
+0x472A 0x6464
+0x472B-0x472C 0x3A3F
+0x472D 0x3A32
+0x472E 0x3A31
+0x472F 0x3A36
+0x4730 0x6571
+0x4731 0x230BA
+0x4732 0x3B0F
+0x4733 0x66A5
+0x4734 0x669A
+0x4735 0x669C
+0x4736 0x3B10
+0x4737 0x66A6
+0x4738 0x3B0D
+0x4739 0x66A4
+0x473A 0x698F
+0x473B 0x69C5
+0x473C 0x69C8
+0x473D 0x6992
+0x473E 0x69B2
+0x473F 0x3BA9
+0x4740 0x3BB4
+0x4741 0x3BAC
+0x4742 0x69E3
+0x4743 0x69C0
+0x4744 0x69D6
+0x4745 0x69D1
+0x4746 0x699F
+0x4747 0x69A2
+0x4748 0x69D2
+0x4749 0x3BB8
+0x474A 0x3BAE
+0x474B 0x235F3
+0x474C 0x69E1
+0x474D 0x69D5
+0x474E 0x699D
+0x474F 0x3BB3
+0x4750 0x3BBA
+0x4751 0x6998
+0x4752 0x3C3F
+0x4753 0x6B74
+0x4754 0x6BA1
+0x4755 0x3D3C
+0x4756 0x6EF0
+0x4757 0x6EF3
+0x4758 0x3D42
+0x4759 0x3D40
+0x475A 0x6F1B
+0x475B 0x6F0C
+0x475C 0x6F1D
+0x475D 0x6F34
+0x475E 0x6F28
+0x475F 0x6F17
+0x4760 0x3D3E
+0x4761 0x6F44
+0x4762 0x6F42
+0x4763 0x6F04
+0x4764 0x6F11
+0x4765 0x6EFA
+0x4766 0x6F4A
+0x4767 0x7191
+0x4768 0x718E
+0x4769 0x3DE1
+0x476A 0x718B
+0x476B 0x718D
+0x476C 0x717F
+0x476D 0x718C
+0x476E 0x717E
+0x476F 0x717C
+0x4770 0x7183
+0x4771 0x3DE6
+0x4772 0x7188
+0x4773 0x3DE0
+0x4774 0x3E15
+0x4775 0x7294
+0x4776 0x3E93
+0x4777 0x7355
+0x4778 0x7353
+0x4779 0x734F
+0x477A 0x7354
+0x477B 0x746C
+0x477C-0x477D 0x7465
+0x477E 0x7461
+0x4821 0x746B
+0x4822 0x7468
+0x4823 0x7476
+0x4824 0x3EE7
+0x4825 0x7460
+0x4826 0x24A0F
+0x4827 0x7474
+0x4828 0x7506
+0x4829 0x760E
+0x482A 0x3FAD
+0x482B 0x7607
+0x482C 0x3FAE
+0x482D 0x3FE3
+0x482E 0x76B9
+0x482F 0x3FF5
+0x4830 0x76B7
+0x4831 0x76E2
+0x4832 0x4006
+0x4833 0x7774
+0x4834 0x7777
+0x4835 0x7776
+0x4836 0x7775
+0x4837 0x404F
+0x4838 0x7778
+0x4839 0x7771
+0x483A 0x4054
+0x483B 0x777A
+0x483C 0x715B
+0x483D 0x777B
+0x483E 0x78A6
+0x483F 0x78AE
+0x4840 0x78B8
+0x4841 0x40CB
+0x4842 0x40E3
+0x4843 0x40C9
+0x4844 0x78B1
+0x4845 0x78AF
+0x4846 0x4113
+0x4847 0x7989
+0x4848 0x7987
+0x4849 0x4115
+0x484A 0x4161
+0x484B 0x7A29
+0x484C 0x4166
+0x484D 0x7A2A
+0x484E 0x4164
+0x484F 0x7A2D
+0x4850 0x7A2C
+0x4851 0x4160
+0x4852 0x7A32
+0x4853 0x4163
+0x4854 0x7AEC
+0x4855 0x7AF0
+0x4856 0x7B81
+0x4857 0x7B9E
+0x4858 0x7B83
+0x4859 0x420A
+0x485A 0x7B92
+0x485B 0x4204
+0x485C 0x7BA3
+0x485D 0x7B9F
+0x485E 0x7B93
+0x485F 0x4207
+0x4860 0x7B86
+0x4861 0x7CB8
+0x4862 0x7CB7
+0x4863 0x428D
+0x4864-0x4865 0x428F
+0x4866 0x4292
+0x4867 0x42EC
+0x4868 0x7DC8
+0x4869 0x7DB6
+0x486A 0x2F96C
+0x486B 0x7DD1
+0x486C 0x42E7
+0x486D 0x7DA8
+0x486E 0x7DAB
+0x486F 0x42F2
+0x4870 0x7DB3
+0x4871 0x7DCD
+0x4872 0x42EE
+0x4873 0x7DCF
+0x4874 0x7DA4
+0x4875 0x42EF
+0x4876 0x434C
+0x4877 0x7F41
+0x4878 0x7F6F
+0x4879 0x7F71
+0x487A-0x487B 0x435E
+0x487C 0x4376
+0x487D 0x4374
+0x487E 0x4372
+0x4921 0x4390
+0x4922 0x8023
+0x4923 0x805B
+0x4924 0x43BE
+0x4925 0x8061
+0x4926 0x805F
+0x4927 0x8181
+0x4928 0x4426
+0x4929 0x4425
+0x492A 0x8184
+0x492B 0x8213
+0x492C 0x4474
+0x492D 0x824A
+0x492E 0x824C
+0x492F 0x44FD
+0x4930 0x4505
+0x4931 0x4501
+0x4932 0x84BD
+0x4933 0x8495
+0x4934 0x4509
+0x4935 0x8492
+0x4936 0x84C3
+0x4937 0x450C
+0x4938 0x8496
+0x4939 0x84A5
+0x493A 0x84B5
+0x493B 0x84B3
+0x493C 0x84A3
+0x493D 0x84E4
+0x493E 0x84D8
+0x493F 0x84D5
+0x4940 0x450D
+0x4941 0x84B7
+0x4942 0x84AD
+0x4943 0x84DA
+0x4944 0x8493
+0x4945 0x8736
+0x4946 0x45C0
+0x4947 0x45C5
+0x4948 0x45C9
+0x4949 0x873D
+0x494A 0x872B
+0x494B 0x8747
+0x494C 0x8739
+0x494D 0x45D5
+0x494E 0x8745
+0x494F 0x871D
+0x4950 0x4641
+0x4951 0x88FF
+0x4952 0x88EA
+0x4953 0x4633
+0x4954 0x88F5
+0x4955 0x463A
+0x4956 0x8900
+0x4957 0x88ED
+0x4958 0x8903
+0x4959 0x88E9
+0x495A 0x4640
+0x495B 0x4642
+0x495C 0x89EA
+0x495D 0x46E8
+0x495E 0x8A9B
+0x495F 0x8A8E
+0x4960 0x8AA2
+0x4961 0x46E4
+0x4962 0x8A9C
+0x4963 0x8A94
+0x4964 0x8A90
+0x4965 0x8AA9
+0x4966 0x8AAC
+0x4967 0x46E7
+0x4968 0x8A9F
+0x4969 0x46E6
+0x496A 0x46E1
+0x496B 0x8A9D
+0x496C 0x4739
+0x496D 0x8C67
+0x496E 0x475C
+0x496F 0x4775
+0x4970 0x8CD0
+0x4971 0x8CD6
+0x4972 0x8CD4
+0x4973 0x8D98
+0x4974 0x8D9A
+0x4975 0x8D97
+0x4976 0x47AE
+0x4977 0x47B0
+0x4978 0x47FA
+0x4979 0x8E0B
+0x497A 0x8E08
+0x497B 0x8E01
+0x497C 0x8EB4
+0x497D 0x8EB3
+0x497E 0x485B
+0x4A21-0x4A22 0x8FA1
+0x4A23 0x48A5
+0x4A24 0x905A
+0x4A25 0x48A2
+0x4A26 0x9061
+0x4A27 0x905F
+0x4A28 0x48DB
+0x4A29 0x48DA
+0x4A2A 0x9125
+0x4A2B 0x917B
+0x4A2C 0x9176
+0x4A2D 0x917C
+0x4A2E 0x4924
+0x4A2F 0x9289
+0x4A30 0x92F6
+0x4A31 0x92B1
+0x4A32 0x92AD
+0x4A33 0x9292
+0x4A34 0x9281
+0x4A35 0x9284
+0x4A36 0x4926
+0x4A37 0x92AE
+0x4A38 0x9290
+0x4A39 0x929E
+0x4A3A 0x4998
+0x4A3B 0x4996
+0x4A3C 0x499A
+0x4A3D 0x95A2
+0x4A3E 0x95A7
+0x4A3F 0x4997
+0x4A40 0x49E1
+0x4A41 0x49E0
+0x4A42 0x49E3
+0x4A43 0x49E2
+0x4A44 0x96A0
+0x4A45 0x969D
+0x4A46 0x969F
+0x4A47 0x96D0
+0x4A48 0x49FB
+0x4A49 0x96D1
+0x4A4A 0x4A12
+0x4A4B 0x4A14
+0x4A4C 0x9759
+0x4A4D 0x4A45
+0x4A4E 0x9764
+0x4A4F-0x4A50 0x4A5C
+0x4A51 0x4AB8
+0x4A52 0x9819
+0x4A53 0x4ABA
+0x4A54-0x4A55 0x9814
+0x4A56 0x981A
+0x4A57 0x4B03
+0x4A58-0x4A59 0x4B35
+0x4A5A 0x4B39
+0x4A5B 0x9906
+0x4A5C 0x4B2D
+0x4A5D 0x98F8
+0x4A5E 0x9901
+0x4A5F 0x4B7A
+0x4A60 0x99BE
+0x4A61 0x99BC
+0x4A62 0x99B7
+0x4A63 0x99B6
+0x4A64 0x99C0
+0x4A65 0x4B78
+0x4A66 0x99B8
+0x4A67-0x4A68 0x4B7B
+0x4A69 0x4B7E
+0x4A6A 0x99C4
+0x4A6B 0x4B7D
+0x4A6C 0x99BF
+0x4A6D 0x4BC9
+0x4A6E 0x9ADA
+0x4A6F 0x9AE4
+0x4A70 0x9AE9
+0x4A71 0x9AE8
+0x4A72 0x9AEA
+0x4A73 0x9AE5
+0x4A74 0x4BF3
+0x4A75 0x9B26
+0x4A76 0x4C1A
+0x4A77 0x4C19
+0x4A78 0x9B40
+0x4A79 0x4C1F
+0x4A7A-0x4A7C 0x4CA6
+0x4A7D 0x4CAB
+0x4A7E 0x4CA9
+0x4B21 0x4D2E
+0x4B22 0x9EBD
+0x4B23 0x4D5E
+0x4B24 0x3495
+0x4B25 0x3493
+0x4B26 0x3492
+0x4B27 0x510E
+0x4B28 0x3496
+0x4B29 0x50F7
+0x4B2A 0x3497
+0x4B2B 0x50FC
+0x4B2C 0x510D
+0x4B2D 0x5101
+0x4B2E 0x51DA
+0x4B2F 0x51D9
+0x4B30 0x51DB
+0x4B31 0x5286
+0x4B32 0x528E
+0x4B33 0x52EE
+0x4B34 0x5333
+0x4B35 0x53B1
+0x4B36 0x35F5
+0x4B37 0x5647
+0x4B38 0x562D
+0x4B39 0x5654
+0x4B3A 0x35EA
+0x4B3B 0x564B
+0x4B3C 0x5652
+0x4B3D 0x5631
+0x4B3E 0x5644
+0x4B3F 0x5656
+0x4B40 0x5650
+0x4B41 0x562B
+0x4B42 0x35F3
+0x4B43 0x564D
+0x4B44 0x5637
+0x4B45 0x564F
+0x4B46 0x58A2
+0x4B47 0x58B7
+0x4B48 0x3669
+0x4B49 0x58B2
+0x4B4A 0x366B
+0x4B4B 0x58AA
+0x4B4C 0x58B5
+0x4B4D 0x58B0
+0x4B4E 0x366C
+0x4B4F 0x58B4
+0x4B50 0x58A4
+0x4B51 0x58A7
+0x4B52 0x3668
+0x4B53 0x5926
+0x4B54 0x5AFE
+0x4B55 0x3728
+0x4B56 0x5B04
+0x4B57 0x3726
+0x4B58 0x5AFC
+0x4B59 0x3725
+0x4B5A 0x5B06
+0x4B5B 0x5B0A
+0x4B5C 0x5AFA
+0x4B5D 0x5B0D
+0x4B5E 0x5B00
+0x4B5F 0x5B0E
+0x4B60 0x376B
+0x4B61 0x380F
+0x4B62 0x3808
+0x4B63 0x5D91
+0x4B64 0x380C
+0x4B65-0x4B66 0x5D8F
+0x4B67 0x5D98
+0x4B68 0x5DA4
+0x4B69 0x5D9B
+0x4B6A 0x5DA3
+0x4B6B 0x5D96
+0x4B6C 0x5DE4
+0x4B6D 0x5E5A
+0x4B6E 0x3860
+0x4B6F 0x3862
+0x4B70 0x5E5E
+0x4B71 0x3898
+0x4B72 0x5FB8
+0x4B73 0x6157
+0x4B74 0x615C
+0x4B75 0x61A6
+0x4B76 0x6195
+0x4B77 0x6188
+0x4B78 0x398A
+0x4B79 0x61A3
+0x4B7A 0x618F
+0x4B7B 0x3984
+0x4B7C 0x6164
+0x4B7D 0x397F
+0x4B7E 0x6159
+0x4C21 0x6178
+0x4C22 0x3982
+0x4C23 0x6185
+0x4C24 0x6187
+0x4C25 0x619E
+0x4C26 0x3996
+0x4C27 0x3989
+0x4C28 0x6198
+0x4C29 0x619C
+0x4C2A 0x398D
+0x4C2B 0x39BC
+0x4C2C 0x622F
+0x4C2D 0x6480
+0x4C2E 0x649B
+0x4C2F 0x648E
+0x4C30 0x648D
+0x4C31 0x6494
+0x4C32 0x64C6
+0x4C33 0x3A44
+0x4C34 0x64A8
+0x4C35 0x6483
+0x4C36 0x3A3C
+0x4C37 0x64B9
+0x4C38 0x6486
+0x4C39 0x64B4
+0x4C3A 0x64AF
+0x4C3B 0x6491
+0x4C3C 0x3A4E
+0x4C3D 0x64AA
+0x4C3E 0x64A1
+0x4C3F 0x64A7
+0x4C40 0x66B6
+0x4C41 0x66B3
+0x4C42 0x3B14
+0x4C43 0x66BC
+0x4C44 0x66AC
+0x4C45 0x3B15
+0x4C46 0x66AD
+0x4C47 0x6A0E
+0x4C48 0x3BCE
+0x4C49 0x6A1C
+0x4C4A 0x6A1A
+0x4C4B 0x3BE0
+0x4C4C 0x3BC2
+0x4C4D 0x6A0B
+0x4C4E 0x3BBF
+0x4C4F 0x69EF
+0x4C50 0x6A0C
+0x4C51 0x69F0
+0x4C52 0x6A22
+0x4C53 0x3BC4
+0x4C54 0x69D8
+0x4C55 0x3BCF
+0x4C56 0x6A12
+0x4C57 0x69FA
+0x4C58 0x3BC8
+0x4C59 0x6A2A
+0x4C5A 0x3BCC
+0x4C5B 0x6A10
+0x4C5C 0x3BCD
+0x4C5D 0x3BC7
+0x4C5E 0x6A29
+0x4C5F 0x69F9
+0x4C60 0x69EA
+0x4C61 0x6A2C
+0x4C62 0x6A24
+0x4C63 0x4CB7
+0x4C64 0x69E9
+0x4C65 0x6B52
+0x4C66 0x6B4F
+0x4C67 0x6B53
+0x4C68 0x3C43
+0x4C69 0x3CB6
+0x4C6A 0x6F10
+0x4C6B 0x6F65
+0x4C6C 0x6F75
+0x4C6D 0x3D51
+0x4C6E 0x3D4A
+0x4C6F 0x3D4D
+0x4C70 0x3D56
+0x4C71 0x6FD0
+0x4C72 0x3D53
+0x4C73 0x6F5C
+0x4C74 0x6F3D
+0x4C75 0x6F71
+0x4C76 0x3D59
+0x4C77 0x6F91
+0x4C78 0x6F0B
+0x4C79 0x6F79
+0x4C7A 0x6F81
+0x4C7B 0x6F8F
+0x4C7C 0x3D4E
+0x4C7D 0x6F59
+0x4C7E 0x6F74
+0x4D21 0x3DEE
+0x4D22 0x71AE
+0x4D23 0x3DEC
+0x4D24 0x71A3
+0x4D25 0x71AD
+0x4D26 0x3DEB
+0x4D27 0x3DEF
+0x4D28 0x71AB
+0x4D29 0x71A6
+0x4D2A 0x71A2
+0x4D2B 0x3DED
+0x4D2C 0x52F2
+0x4D2D 0x7257
+0x4D2E 0x7255
+0x4D2F 0x7299
+0x4D30 0x734B
+0x4D31 0x747A
+0x4D32 0x3EF2
+0x4D33 0x3EEF
+0x4D34 0x3EF1
+0x4D35 0x748C
+0x4D36 0x7484
+0x4D37 0x3EED
+0x4D38 0x3EF0
+0x4D39 0x7482
+0x4D3A 0x7493
+0x4D3B 0x747B
+0x4D3C 0x3EEE
+0x4D3D 0x7509
+0x4D3E 0x4C1B
+0x4D3F 0x3F50
+0x4D40 0x3F66
+0x4D41 0x3684
+0x4D42 0x3FB8
+0x4D43 0x3FF6
+0x4D44 0x778A
+0x4D45 0x4057
+0x4D46 0x7790
+0x4D47 0x405E
+0x4D48 0x78C6
+0x4D49 0x78D3
+0x4D4A 0x78C0
+0x4D4B 0x78D2
+0x4D4C 0x78C7
+0x4D4D 0x78C2
+0x4D4E 0x4119
+0x4D4F 0x799F
+0x4D50-0x4D51 0x799D
+0x4D52 0x4170
+0x4D53 0x7A41
+0x4D54 0x416E
+0x4D55 0x7A38
+0x4D56 0x7A3A
+0x4D57 0x7A42
+0x4D58 0x4172
+0x4D59 0x4176
+0x4D5A 0x7A3E
+0x4D5B 0x7AB0
+0x4D5C 0x7BAE
+0x4D5D 0x7BB3
+0x4D5E 0x4212
+0x4D5F 0x421F
+0x4D60 0x7BBF
+0x4D61 0x4211
+0x4D62 0x4216
+0x4D63 0x7BCD
+0x4D64 0x4219
+0x4D65 0x7BB2
+0x4D66 0x4224
+0x4D67 0x4214
+0x4D68 0x4225
+0x4D69-0x4D6A 0x4295
+0x4D6B-0x4D6C 0x4293
+0x4D6D 0x7CC4
+0x4D6E 0x7CCD
+0x4D6F 0x7CC2
+0x4D70 0x7CC6
+0x4D71 0x7CC3
+0x4D72 0x7CC9
+0x4D73 0x7CC7
+0x4D74 0x42A0
+0x4D75 0x7DF8
+0x4D76 0x42FB
+0x4D77 0x7DED
+0x4D78 0x7DE2
+0x4D79 0x42FC
+0x4D7A 0x4300
+0x4D7B 0x42F8
+0x4D7C 0x7DDC
+0x4D7D 0x7E02
+0x4D7E 0x7E01
+0x4E21 0x42F9
+0x4E22 0x7DD6
+0x4E23 0x4304
+0x4E24 0x7DE4
+0x4E25 0x7DFE
+0x4E26 0x4303
+0x4E27 0x7E00
+0x4E28-0x4E29 0x7DFC
+0x4E2A 0x42F3
+0x4E2B 0x7DF5
+0x4E2C 0x7DFF
+0x4E2D 0x42FA
+0x4E2E 0x7DEB
+0x4E2F 0x7DE5
+0x4E30 0x7F78
+0x4E31 0x7FAE
+0x4E32 0x7FE7
+0x4E33 0x43BF
+0x4E34 0x8065
+0x4E35 0x806A
+0x4E36 0x8066
+0x4E37 0x8068
+0x4E38 0x806B
+0x4E39 0x8194
+0x4E3A 0x81A1
+0x4E3B 0x8192
+0x4E3C 0x8196
+0x4E3D 0x8193
+0x4E3E 0x4479
+0x4E3F 0x4510
+0x4E40 0x8501
+0x4E41 0x4514
+0x4E42 0x84F8
+0x4E43 0x450E
+0x4E44 0x84F5
+0x4E45 0x451A
+0x4E46 0x8504
+0x4E47 0x4519
+0x4E48 0x4521
+0x4E49 0x4523
+0x4E4A 0x451F
+0x4E4B 0x851B
+0x4E4C 0x8503
+0x4E4D-0x4E4E 0x8533
+0x4E4F 0x84ED
+0x4E50 0x4525
+0x4E51 0x452B
+0x4E52 0x8535
+0x4E53 0x4516
+0x4E54 0x8505
+0x4E55 0x4522
+0x4E56 0x451B
+0x4E57-0x4E58 0x45CE
+0x4E59 0x877D
+0x4E5A 0x45CB
+0x4E5B 0x45D1
+0x4E5C 0x45CC
+0x4E5D 0x8771
+0x4E5E 0x4617
+0x4E5F 0x885C
+0x4E60 0x88E6
+0x4E61 0x890F
+0x4E62 0x891B
+0x4E63 0x4651
+0x4E64 0x89A9
+0x4E65 0x89A5
+0x4E66 0x89EE
+0x4E67 0x8AB1
+0x4E68 0x46ED
+0x4E69 0x8ACC
+0x4E6A 0x8ACE
+0x4E6B 0x46F4
+0x4E6C 0x8AB7
+0x4E6D 0x46F1
+0x4E6E 0x8AB5
+0x4E6F 0x8AE9
+0x4E70 0x8AB4
+0x4E71 0x46F8
+0x4E72 0x8AB3
+0x4E73 0x8AC1
+0x4E74 0x8AAF
+0x4E75 0x8ACA
+0x4E76 0x8AD0
+0x4E77 0x472F
+0x4E78 0x475E
+0x4E79 0x475D
+0x4E7A 0x8C8E
+0x4E7B-0x4E7C 0x4776
+0x4E7D 0x8CE9
+0x4E7E 0x8CDB
+0x4F21 0x477E
+0x4F22 0x8CEB
+0x4F23 0x8DA4
+0x4F24 0x47B6
+0x4F25 0x8DA2
+0x4F26 0x8D9D
+0x4F27 0x47B3
+0x4F28 0x47FC
+0x4F29 0x4803
+0x4F2A 0x4800
+0x4F2B 0x8E2A
+0x4F2C 0x8E28
+0x4F2D 0x480A
+0x4F2E 0x4802
+0x4F2F 0x8EB8
+0x4F30 0x8EB6
+0x4F31 0x8EB9
+0x4F32 0x8EB7
+0x4F33 0x8F22
+0x4F34 0x8F2B
+0x4F35 0x8F27
+0x4F36 0x8F19
+0x4F37 0x8FA4
+0x4F38 0x4887
+0x4F39 0x8FB3
+0x4F3A 0x48A6
+0x4F3B 0x9071
+0x4F3C 0x906A
+0x4F3D 0x48A9
+0x4F3E 0x48DE
+0x4F3F 0x9188
+0x4F40 0x918C
+0x4F41 0x92BF
+0x4F42 0x92B8
+0x4F43 0x92BE
+0x4F44 0x92DC
+0x4F45 0x92E5
+0x4F46 0x492E
+0x4F47 0x492D
+0x4F48 0x92D4
+0x4F49 0x92D6
+0x4F4A 0x4930
+0x4F4B 0x92DA
+0x4F4C 0x92ED
+0x4F4D 0x92F3
+0x4F4E 0x92DB
+0x4F4F 0x492B
+0x4F50 0x92B9
+0x4F51 0x92E2
+0x4F52 0x92EB
+0x4F53 0x95AF
+0x4F54 0x499E
+0x4F55-0x4F56 0x95B2
+0x4F57 0x499F
+0x4F58 0x49E5
+0x4F59 0x49E4
+0x4F5A 0x96A3
+0x4F5B 0x96A5
+0x4F5C 0x49FD
+0x4F5D 0x49FC
+0x4F5E 0x4A17
+0x4F5F 0x4A19
+0x4F60 0x970A
+0x4F61 0x4A18
+0x4F62 0x9787
+0x4F63 0x9789
+0x4F64 0x978C
+0x4F65 0x97EF
+0x4F66 0x982A
+0x4F67 0x9822
+0x4F68 0x4ABF
+0x4F69 0x981F
+0x4F6A 0x4B3C
+0x4F6B 0x9919
+0x4F6C 0x4B6B
+0x4F6D 0x99CA
+0x4F6E 0x99DA
+0x4F6F 0x4B83
+0x4F70 0x4B81
+0x4F71 0x4B80
+0x4F72 0x99DE
+0x4F73 0x99C8
+0x4F74 0x99E0
+0x4F75 0x4BCA
+0x4F76 0x9AB6
+0x4F77 0x9AB5
+0x4F78 0x4BCE
+0x4F79 0x9AF4
+0x4F7A 0x4BF6
+0x4F7B 0x9B6B
+0x4F7C 0x9B69
+0x4F7D 0x9B72
+0x4F7E 0x9B63
+0x5021 0x4C39
+0x5022 0x9D0D
+0x5023 0x4CAE
+0x5024 0x9D01
+0x5025 0x9D0C
+0x5026 0x4CB5
+0x5027 0x9CF8
+0x5028-0x5029 0x4CB3
+0x502A 0x9CFE
+0x502B 0x9D02
+0x502C 0x9E84
+0x502D 0x4D22
+0x502E 0x9EAB
+0x502F 0x9EAA
+0x5030 0x511D
+0x5031 0x5116
+0x5032 0x3499
+0x5033 0x512B
+0x5034 0x511E
+0x5035 0x511B
+0x5036 0x5290
+0x5037 0x5294
+0x5038 0x5314
+0x5039 0x20B89
+0x503A 0x3602
+0x503B 0x5667
+0x503C 0x3601
+0x503D 0x567B
+0x503E 0x36A1
+0x503F 0x565F
+0x5040 0x5661
+0x5041 0x35FD
+0x5042-0x5043 0x3673
+0x5044 0x3670
+0x5045 0x3676
+0x5046 0x3675
+0x5047 0x3672
+0x5048 0x58C3
+0x5049 0x58CA
+0x504A 0x58BB
+0x504B 0x58C0
+0x504C 0x58C4
+0x504D 0x5901
+0x504E 0x5B1F
+0x504F 0x5B18
+0x5050 0x5B11
+0x5051 0x5B15
+0x5052 0x3729
+0x5053 0x5B12
+0x5054 0x5B1C
+0x5055 0x372A
+0x5056 0x5B22
+0x5057 0x5B79
+0x5058 0x5DA6
+0x5059 0x3816
+0x505A 0x5DB3
+0x505B 0x5DAB
+0x505C 0x5EEA
+0x505D 0x3899
+0x505E 0x5F5B
+0x505F 0x38D3
+0x5060 0x38F5
+0x5061 0x61B7
+0x5062 0x61CE
+0x5063 0x61B9
+0x5064 0x61BD
+0x5065 0x61CF
+0x5066 0x61C0
+0x5067 0x6199
+0x5068 0x6197
+0x5069 0x3994
+0x506A 0x61BB
+0x506B 0x61D0
+0x506C 0x61C4
+0x506D 0x6231
+0x506E 0x3A56
+0x506F 0x64D3
+0x5070 0x64C0
+0x5071 0x3A59
+0x5072 0x3A58
+0x5073 0x3A55
+0x5074 0x3A52
+0x5075 0x64DC
+0x5076 0x64D1
+0x5077 0x64C8
+0x5078 0x3A57
+0x5079 0x64D5
+0x507A 0x66C3
+0x507B-0x507C 0x3B1B
+0x507D 0x66BF
+0x507E 0x66C5
+0x5121 0x3B19
+0x5122 0x66CD
+0x5123 0x66C1
+0x5124 0x6706
+0x5125 0x3B3F
+0x5126 0x6724
+0x5127 0x6A63
+0x5128 0x6A42
+0x5129 0x6A52
+0x512A 0x3BDB
+0x512B 0x6A43
+0x512C 0x6A33
+0x512D 0x3BE2
+0x512E 0x6A6C
+0x512F 0x6A57
+0x5130 0x3BD7
+0x5131 0x6A4C
+0x5132 0x6A6E
+0x5133 0x3BDE
+0x5134 0x3BE5
+0x5135 0x3BE4
+0x5136 0x3BE6
+0x5137 0x3BD6
+0x5138 0x6A37
+0x5139 0x3BDF
+0x513A 0x6A71
+0x513B 0x6A4A
+0x513C 0x6A36
+0x513D 0x3BDC
+0x513E 0x6A53
+0x513F 0x3BDA
+0x5140 0x6A45
+0x5141 0x6A70
+0x5142 0x3BD3
+0x5143 0x3BD0
+0x5144 0x6A5C
+0x5145 0x6B58
+0x5146 0x6B57
+0x5147-0x5148 0x3C86
+0x5149 0x3CAD
+0x514A 0x3CB7
+0x514B 0x3D58
+0x514C 0x3D6A
+0x514D 0x6FBB
+0x514E 0x3D62
+0x514F 0x3D61
+0x5150 0x6FBE
+0x5151 0x3D69
+0x5152 0x3D6C
+0x5153 0x3D65
+0x5154 0x6FB5
+0x5155 0x6FD3
+0x5156 0x6F9F
+0x5157 0x3D66
+0x5158 0x6FB7
+0x5159 0x6FF5
+0x515A 0x71B7
+0x515B 0x3DF5
+0x515C 0x71BB
+0x515D 0x3DF4
+0x515E 0x71D1
+0x515F 0x3DF7
+0x5160 0x71BA
+0x5161 0x3DF8
+0x5162 0x71B6
+0x5163 0x71CC
+0x5164-0x5165 0x3DFB
+0x5166 0x71D3
+0x5167 0x749B
+0x5168 0x3EF5
+0x5169 0x3EF8
+0x516A 0x7496
+0x516B 0x74A2
+0x516C 0x749D
+0x516D 0x750A
+0x516E 0x750E
+0x516F 0x3F3C
+0x5170 0x7581
+0x5171 0x762C
+0x5172 0x7637
+0x5173 0x7636
+0x5174 0x763B
+0x5175 0x3FC5
+0x5176 0x76A1
+0x5177-0x5178 0x4062
+0x5179 0x7798
+0x517A 0x4067
+0x517B 0x7796
+0x517C 0x4066
+0x517D 0x40D9
+0x517E 0x40DB
+0x5221 0x78D6
+0x5222 0x78EB
+0x5223 0x40D8
+0x5224 0x78DC
+0x5225 0x411B
+0x5226 0x79A5
+0x5227 0x79A9
+0x5228 0x9834
+0x5229 0x7A53
+0x522A 0x7A45
+0x522B 0x4179
+0x522C 0x7A4F
+0x522D 0x417D
+0x522E 0x7ABD
+0x522F 0x7ABB
+0x5230 0x7AF1
+0x5231 0x422C
+0x5232 0x4237
+0x5233-0x5234 0x7BEC
+0x5235 0x4230
+0x5236 0x429A
+0x5237 0x7CD3
+0x5238 0x4A00
+0x5239 0x7CE1
+0x523A 0x4305
+0x523B 0x7E19
+0x523C 0x4307
+0x523D-0x523E 0x4309
+0x523F 0x7E27
+0x5240 0x7E26
+0x5241 0x4379
+0x5242 0x43C2
+0x5243 0x806E
+0x5244 0x81AF
+0x5245 0x4438
+0x5246 0x4437
+0x5247 0x81AD
+0x5248 0x4421
+0x5249 0x81AA
+0x524A 0x8218
+0x524B 0x445E
+0x524C 0x453D
+0x524D 0x4537
+0x524E 0x4540
+0x524F 0x856F
+0x5250 0x854C
+0x5251 0x451D
+0x5252 0x8542
+0x5253 0x4533
+0x5254 0x855C
+0x5255 0x8570
+0x5256 0x855F
+0x5257 0x4535
+0x5258 0x855A
+0x5259 0x854B
+0x525A 0x853F
+0x525B 0x878A
+0x525C 0x45D8
+0x525D 0x878B
+0x525E 0x87A1
+0x525F 0x878E
+0x5260 0x45DC
+0x5261 0x45DE
+0x5262 0x8799
+0x5263-0x5264 0x885E
+0x5265 0x8924
+0x5266 0x89A7
+0x5267 0x8AEA
+0x5268 0x8AFD
+0x5269 0x8AF9
+0x526A 0x8AE3
+0x526B 0x8AE5
+0x526C-0x526D 0x46FA
+0x526E 0x8AEC
+0x526F 0x473D
+0x5270 0x473B
+0x5271 0x473F
+0x5272 0x475F
+0x5273 0x8CF2
+0x5274 0x477F
+0x5275 0x8CEF
+0x5276 0x4784
+0x5277 0x8DA6
+0x5278 0x47BC
+0x5279 0x4814
+0x527A 0x480F
+0x527B 0x8E3B
+0x527C 0x8E43
+0x527D 0x480E
+0x527E 0x8E32
+0x5321 0x8F31
+0x5322 0x8F30
+0x5323 0x4860
+0x5324 0x8F2D
+0x5325 0x8F3C
+0x5326 0x8FA7
+0x5327 0x8FA5
+0x5328-0x5329 0x48AB
+0x532A 0x48AA
+0x532B 0x9137
+0x532C 0x9195
+0x532D 0x918E
+0x532E 0x4904
+0x532F 0x9196
+0x5330 0x4908
+0x5331 0x9345
+0x5332 0x930A
+0x5333-0x5334 0x4933
+0x5335 0x92FD
+0x5336 0x9317
+0x5337 0x931C
+0x5338 0x9307
+0x5339-0x533A 0x9331
+0x533B 0x932C
+0x533C 0x9330
+0x533D 0x9303
+0x533E 0x9305
+0x533F 0x49A2
+0x5340 0x95C2
+0x5341 0x49A4
+0x5342 0x95B8
+0x5343 0x49A5
+0x5344 0x95C1
+0x5345 0x49A7
+0x5346 0x49A6
+0x5347 0x49E7
+0x5348 0x96AB
+0x5349 0x96B7
+0x534A 0x49FF
+0x534B 0x49FE
+0x534C 0x9715
+0x534D 0x9714
+0x534E 0x4A1D
+0x534F 0x4A1C
+0x5350 0x970C
+0x5351 0x9717
+0x5352 0x4A67
+0x5353 0x9793
+0x5354 0x4A94
+0x5355 0x97D2
+0x5356 0x4AC5
+0x5357 0x4AC8
+0x5358 0x9836
+0x5359 0x9831
+0x535A 0x9833
+0x535B 0x983C
+0x535C 0x982E
+0x535D 0x983A
+0x535E 0x4AC9
+0x535F 0x983D
+0x5360 0x4AC7
+0x5361 0x98B5
+0x5362-0x5363 0x9922
+0x5364 0x9920
+0x5365-0x5366 0x991C
+0x5367 0x4B6C
+0x5368 0x99A0
+0x5369 0x4B8A
+0x536A 0x99EF
+0x536B 0x99E8
+0x536C 0x99EB
+0x536D 0x4B88
+0x536E 0x4B87
+0x536F 0x4B86
+0x5370 0x99E1
+0x5371 0x99E6
+0x5372-0x5373 0x4BCF
+0x5374 0x9AF8
+0x5375 0x9AF5
+0x5376 0x4C1C
+0x5377 0x4C23
+0x5378 0x9B83
+0x5379 0x9B94
+0x537A 0x9B84
+0x537B 0x4C49
+0x537C 0x9B8B
+0x537D 0x9B8F
+0x537E 0x4C43
+0x5421 0x9B8C
+0x5422 0x4C48
+0x5423 0x9B89
+0x5424 0x4C47
+0x5425 0x9B8E
+0x5426 0x4C46
+0x5427 0x4C3F
+0x5428 0x4C44
+0x5429 0x9D24
+0x542A 0x9D0F
+0x542B 0x4CBE
+0x542C 0x9D13
+0x542D 0x9D0A
+0x542E 0x4CC2
+0x542F 0x4CBA
+0x5430 0x4CBC
+0x5431 0x4CC6
+0x5432 0x9D2A
+0x5433 0x9D1A
+0x5434 0x4CC8
+0x5435 0x9D27
+0x5436 0x9D16
+0x5437 0x9D21
+0x5438 0x4D23
+0x5439 0x9E85
+0x543A 0x9EAC
+0x543B 0x9EC6
+0x543C 0x9EC5
+0x543D 0x9ED7
+0x543E 0x9F53
+0x543F 0x349D
+0x5440 0x5128
+0x5441 0x5127
+0x5442 0x51DF
+0x5443 0x3524
+0x5444 0x5335
+0x5445 0x53B3
+0x5446 0x3607
+0x5447 0x568A
+0x5448 0x567D
+0x5449 0x5689
+0x544A 0x3679
+0x544B 0x58CD
+0x544C 0x58D0
+0x544D 0x3678
+0x544E 0x5B2B
+0x544F 0x5B33
+0x5450 0x5B29
+0x5451 0x5B35
+0x5452 0x5B31
+0x5453 0x5B37
+0x5454 0x5C36
+0x5455 0x5DBE
+0x5456 0x3819
+0x5457 0x5DB9
+0x5458 0x381C
+0x5459 0x5DBB
+0x545A 0x3818
+0x545B 0x61E2
+0x545C 0x61DB
+0x545D 0x61DD
+0x545E 0x61DC
+0x545F 0x61DA
+0x5460 0x2F8AF
+0x5461 0x61D9
+0x5462 0x39BD
+0x5463 0x3A5D
+0x5464 0x64DF
+0x5465 0x3A5A
+0x5466 0x3A5E
+0x5467 0x64E1
+0x5468 0x3A5C
+0x5469 0x64EE
+0x546A 0x3A5B
+0x546B 0x65B5
+0x546C-0x546D 0x66D4
+0x546E 0x3B21
+0x546F-0x5470 0x66D0
+0x5471 0x66CE
+0x5472 0x66D7
+0x5473 0x3B20
+0x5474 0x3B32
+0x5475 0x6A7D
+0x5476 0x6A8A
+0x5477 0x3BF2
+0x5478 0x6AA7
+0x5479 0x3BF5
+0x547A 0x6A99
+0x547B 0x6A82
+0x547C 0x6A88
+0x547D 0x3BEE
+0x547E 0x3BEC
+0x5521 0x6A86
+0x5522 0x3BEA
+0x5523 0x6A98
+0x5524 0x6A9D
+0x5525 0x3BED
+0x5526 0x3BF3
+0x5527 0x6A8F
+0x5528 0x3BF6
+0x5529 0x6AAA
+0x552A 0x3C48
+0x552B 0x6B5D
+0x552C 0x3C49
+0x552D 0x6C0A
+0x552E 0x3D75
+0x552F 0x6FD7
+0x5530 0x6FD6
+0x5531 0x6FE5
+0x5532 0x3D6F
+0x5533 0x3D7B
+0x5534 0x3D73
+0x5535-0x5536 0x6FD9
+0x5537 0x6FEA
+0x5538 0x3D70
+0x5539 0x6FF6
+0x553A 0x24039
+0x553B 0x3D78
+0x553C 0x71E3
+0x553D 0x3DFE
+0x553E 0x71E9
+0x553F 0x3E00
+0x5540 0x71EB
+0x5541 0x71EF
+0x5542 0x71F3
+0x5543 0x71EA
+0x5544 0x3E01
+0x5545 0x2F921
+0x5546-0x5547 0x3E55
+0x5548 0x3E9D
+0x5549 0x7371
+0x554A 0x3EF9
+0x554B 0x74AE
+0x554C 0x3EFF
+0x554D 0x74B3
+0x554E 0x3EFD
+0x554F 0x74AC
+0x5550 0x3F43
+0x5551 0x3F41
+0x5552 0x7583
+0x5553 0x7645
+0x5554 0x764E
+0x5555 0x7644
+0x5556 0x76A3
+0x5557 0x76A5
+0x5558 0x77A6
+0x5559 0x77A4
+0x555A 0x406F
+0x555B 0x77A9
+0x555C 0x77AF
+0x555D 0x408A
+0x555E-0x555F 0x40E5
+0x5560 0x78F0
+0x5561 0x78F8
+0x5562 0x78F1
+0x5563 0x417F
+0x5564 0x7A49
+0x5565-0x5566 0x41B5
+0x5567 0x41BB
+0x5568 0x7AC2
+0x5569-0x556A 0x7AF2
+0x556B 0x7BFA
+0x556C 0x4240
+0x556D 0x7BF6
+0x556E 0x7BFC
+0x556F 0x7C18
+0x5570 0x7C08
+0x5571 0x7C12
+0x5572 0x429D
+0x5573 0x429C
+0x5574 0x7CDB
+0x5575 0x7CDA
+0x5576 0x430F
+0x5577 0x4311
+0x5578 0x430D
+0x5579 0x7E2C
+0x557A 0x7E4D
+0x557B 0x4314
+0x557C 0x4313
+0x557D 0x7F46
+0x557E 0x7FF6
+0x5621 0x802B
+0x5622 0x8074
+0x5623 0x81B8
+0x5624 0x81C8
+0x5625-0x5626 0x4482
+0x5627 0x454D
+0x5628-0x5629 0x8592
+0x562A 0x454F
+0x562B 0x857F
+0x562C 0x85AB
+0x562D 0x8597
+0x562E 0x454C
+0x562F 0x4551
+0x5630 0x85AC
+0x5631 0x45EE
+0x5632 0x45E8
+0x5633 0x4CCB
+0x5634 0x87CE
+0x5635 0x45EB
+0x5636 0x87CD
+0x5637 0x45E2
+0x5638 0x45E6
+0x5639 0x87C1
+0x563A 0x87B1
+0x563B 0x87C7
+0x563C 0x45EC
+0x563D 0x8940
+0x563E 0x4659
+0x563F 0x893F
+0x5640 0x8939
+0x5641 0x465D
+0x5642 0x8943
+0x5643 0x4657
+0x5644 0x465B
+0x5645 0x4656
+0x5646 0x89AB
+0x5647 0x46FE
+0x5648 0x8B1F
+0x5649 0x8B09
+0x564A 0x8B0C
+0x564B-0x564C 0x4700
+0x564D 0x8C40
+0x564E 0x4742
+0x564F 0x8C96
+0x5650 0x4760
+0x5651-0x5652 0x8CF6
+0x5653 0x481D
+0x5654 0x8E46
+0x5655 0x8E4F
+0x5656 0x483E
+0x5657 0x4869
+0x5658 0x4865
+0x5659 0x8F3D
+0x565A 0x8F41
+0x565B 0x9366
+0x565C 0x9378
+0x565D 0x935D
+0x565E 0x9369
+0x565F 0x9374
+0x5660 0x937D
+0x5661 0x936E
+0x5662-0x5663 0x9372
+0x5664 0x9362
+0x5665 0x9348
+0x5666 0x9353
+0x5667 0x935F
+0x5668 0x9368
+0x5669 0x4938
+0x566A 0x937F
+0x566B 0x936B
+0x566C 0x49AE
+0x566D 0x95C4
+0x566E 0x49AD
+0x566F 0x96AF
+0x5670 0x96AD
+0x5671 0x96B2
+0x5672 0x4A02
+0x5673 0x4A1F
+0x5674-0x5675 0x971A
+0x5676 0x4A22
+0x5677 0x4A20
+0x5678 0x2F9F5
+0x5679 0x4A6C
+0x567A 0x979B
+0x567B 0x979F
+0x567C 0x4A68
+0x567D-0x567E 0x4A6D
+0x5721 0x4AA0
+0x5722 0x4ACE
+0x5723-0x5724 0x4AD0
+0x5725 0x4ACB
+0x5726 0x9840
+0x5727 0x4AD2
+0x5728 0x9847
+0x5729 0x4AD3
+0x572A 0x98B7
+0x572B 0x4B20
+0x572C 0x4B4E
+0x572D 0x4B4B
+0x572E 0x4B72
+0x572F 0x4B70
+0x5730 0x99A2
+0x5731 0x4B92
+0x5732 0x4B8F
+0x5733 0x9A00
+0x5734 0x99F3
+0x5735 0x4B90
+0x5736 0x29937
+0x5737 0x99F5
+0x5738 0x4BD9
+0x5739 0x4BD5
+0x573A 0x9ABD
+0x573B 0x9B00
+0x573C 0x9B02
+0x573D 0x4BFA
+0x573E 0x9B34
+0x573F 0x9B49
+0x5740 0x9B9F
+0x5741 0x4C4B
+0x5742 0x9BA3
+0x5743 0x9BCD
+0x5744 0x9B99
+0x5745 0x9B9D
+0x5746 0x4CD0
+0x5747 0x4CCE
+0x5748 0x9D39
+0x5749 0x4CCF
+0x574A 0x9D44
+0x574B 0x4CC4
+0x574C 0x4CCC
+0x574D 0x9D35
+0x574E 0x4CD2
+0x574F 0x4D35
+0x5750 0x9EAF
+0x5751 0x3E03
+0x5752 0x512F
+0x5753 0x349E
+0x5754 0x34AF
+0x5755 0x9F8E
+0x5756 0x360C
+0x5757 0x569F
+0x5758 0x569B
+0x5759 0x569E
+0x575A 0x5696
+0x575B 0x5694
+0x575C 0x56A0
+0x575D 0x367C
+0x575E 0x5B3B
+0x575F-0x5760 0x3730
+0x5761 0x5B3A
+0x5762 0x5DC1
+0x5763 0x5F4D
+0x5764 0x5F5D
+0x5765 0x61F3
+0x5766 0x39A1
+0x5767 0x399E
+0x5768 0x3A68
+0x5769 0x3A61
+0x576A 0x64F6
+0x576B 0x64E5
+0x576C 0x64EA
+0x576D 0x64E7
+0x576E 0x6505
+0x576F 0x3A65
+0x5770 0x64F9
+0x5771 0x3A66
+0x5772 0x3A6A
+0x5773 0x3AAB
+0x5774 0x6AAB
+0x5775 0x6AED
+0x5776 0x6AB2
+0x5777 0x6AB0
+0x5778 0x6AB5
+0x5779 0x6ABE
+0x577A 0x6AC1
+0x577B 0x6AC8
+0x577C 0x3BF9
+0x577D 0x6AC0
+0x577E 0x6ABC
+0x5821 0x6AB1
+0x5822 0x6AC4
+0x5823 0x6ABF
+0x5824 0x3C58
+0x5825 0x3C8A
+0x5826 0x7008
+0x5827 0x7003
+0x5828 0x6FFD
+0x5829 0x7010
+0x582A 0x7002
+0x582B 0x7013
+0x582C 0x3E04
+0x582D 0x71FA
+0x582E 0x7200
+0x582F 0x74B9
+0x5830 0x74BC
+0x5831 0x3F02
+0x5832 0x765B
+0x5833 0x7651
+0x5834 0x764F
+0x5835 0x76EB
+0x5836 0x77B8
+0x5837 0x4079
+0x5838 0x77B9
+0x5839 0x77C1
+0x583A 0x77C0
+0x583B 0x77BE
+0x583C 0x790B
+0x583D 0x40EB
+0x583E 0x7907
+0x583F 0x790A
+0x5840 0x7908
+0x5841 0x40E9
+0x5842 0x790D
+0x5843 0x7906
+0x5844 0x7915
+0x5845 0x79AF
+0x5846-0x5847 0x4120
+0x5848 0x4181
+0x5849 0x7AF5
+0x584A 0x424D
+0x584B 0x4259
+0x584C 0x7C2E
+0x584D 0x4258
+0x584E 0x7C1B
+0x584F 0x25CD1
+0x5850 0x7C1A
+0x5851 0x7C24
+0x5852 0x42A5
+0x5853 0x42A9
+0x5854 0x7CE6
+0x5855 0x7CE3
+0x5856 0x431A
+0x5857 0x4319
+0x5858 0x7E5D
+0x5859 0x7E4F
+0x585A 0x7E66
+0x585B 0x7E5B
+0x585C 0x7F47
+0x585D 0x7FB4
+0x585E 0x4396
+0x585F 0x4398
+0x5860 0x4397
+0x5861 0x7FFA
+0x5862 0x802E
+0x5863 0x265DF
+0x5864 0x43C8
+0x5865 0x81CE
+0x5866 0x4443
+0x5867 0x4445
+0x5868 0x8219
+0x5869 0x4552
+0x586A 0x4557
+0x586B 0x85CC
+0x586C 0x85B2
+0x586D 0x4555
+0x586E 0x85BB
+0x586F 0x85C1
+0x5870 0x4556
+0x5871 0x4558
+0x5872 0x45F2
+0x5873 0x87E9
+0x5874 0x87EE
+0x5875 0x87F0
+0x5876 0x87D6
+0x5877 0x880E
+0x5878 0x87DA
+0x5879 0x8948
+0x587A 0x894A
+0x587B 0x894E
+0x587C 0x894D
+0x587D 0x89B1
+0x587E 0x89B0
+0x5921 0x89B3
+0x5922 0x4707
+0x5923 0x8B38
+0x5924 0x8B32
+0x5925 0x4708
+0x5926 0x8B2D
+0x5927 0x470A
+0x5928 0x8B34
+0x5929 0x431B
+0x592A 0x8B29
+0x592B 0x8C74
+0x592C-0x592D 0x4761
+0x592E 0x8D03
+0x592F 0x47C2
+0x5930 0x47C6
+0x5931 0x8DA9
+0x5932 0x8E58
+0x5933 0x481E
+0x5934 0x4825
+0x5935 0x8EBF
+0x5936 0x8EC1
+0x5937 0x8F4A
+0x5938 0x8FAC
+0x5939 0x48B0
+0x593A 0x9089
+0x593B 0x913D
+0x593C 0x913C
+0x593D 0x91A9
+0x593E 0x93A0
+0x593F 0x493D
+0x5940 0x9390
+0x5941 0x493E
+0x5942 0x9393
+0x5943 0x938B
+0x5944 0x93AD
+0x5945 0x93BB
+0x5946 0x93B8
+0x5947 0x4946
+0x5948 0x4945
+0x5949 0x939C
+0x594A 0x95D8
+0x594B 0x95D7
+0x594C 0x4A03
+0x594D-0x594E 0x4A26
+0x594F 0x975D
+0x5950 0x97A9
+0x5951 0x97DA
+0x5952 0x4A98
+0x5953 0x4AAD
+0x5954 0x4AD5
+0x5955 0x4ADA
+0x5956 0x9854
+0x5957 0x4AD9
+0x5958 0x9855
+0x5959 0x984B
+0x595A 0x4ADD
+0x595B 0x983F
+0x595C 0x98B9
+0x595D-0x595F 0x4B15
+0x5960 0x4B21
+0x5961 0x9938
+0x5962 0x9936
+0x5963 0x9940
+0x5964 0x4B4C
+0x5965 0x993B
+0x5966 0x9939
+0x5967 0x99A4
+0x5968 0x4B96
+0x5969 0x4B98
+0x596A 0x9A08
+0x596B 0x9A0C
+0x596C 0x4B9B
+0x596D 0x9A10
+0x596E 0x4BFF
+0x596F 0x9B07
+0x5970 0x4C25
+0x5971 0x9BD2
+0x5972 0x4C4F
+0x5973 0x9BC2
+0x5974 0x9BBB
+0x5975 0x9BCC
+0x5976 0x9BCB
+0x5977 0x4C56
+0x5978 0x4C54
+0x5979 0x9D4D
+0x597A 0x9D63
+0x597B 0x9D4E
+0x597C 0x4CD8
+0x597D 0x9D50
+0x597E 0x9D55
+0x5A21 0x4CD7
+0x5A22 0x9D5E
+0x5A23 0x4D26
+0x5A24 0x9E90
+0x5A25 0x9EB2
+0x5A26 0x9EB1
+0x5A27 0x4D38
+0x5A28 0x9ECA
+0x5A29 0x9F02
+0x5A2A 0x9F27
+0x5A2B 0x9F26
+0x5A2C 0x4D8A
+0x5A2D 0x56AF
+0x5A2E 0x58E0
+0x5A2F 0x58DC
+0x5A30 0x3734
+0x5A31 0x5B39
+0x5A32 0x3735
+0x5A33 0x2F86A
+0x5A34 0x5B7C
+0x5A35 0x5BF3
+0x5A36 0x2F870
+0x5A37 0x37A1
+0x5A38 0x5C6B
+0x5A39 0x5DC4
+0x5A3A 0x650B
+0x5A3B 0x6508
+0x5A3C 0x650A
+0x5A3D-0x5A3E 0x3A6C
+0x5A3F 0x65DC
+0x5A40-0x5A41 0x3B29
+0x5A42 0x66E1
+0x5A43 0x66DF
+0x5A44 0x6ACE
+0x5A45 0x6AD4
+0x5A46 0x6AE3
+0x5A47 0x6AD7
+0x5A48 0x6AE2
+0x5A49 0x3C00
+0x5A4A 0x3C08
+0x5A4B 0x3C06
+0x5A4C 0x3C05
+0x5A4D 0x6AD8
+0x5A4E 0x6AD5
+0x5A4F 0x6AD2
+0x5A50 0x3CB1
+0x5A51 0x3D88
+0x5A52 0x701E
+0x5A53 0x702C
+0x5A54 0x7025
+0x5A55 0x6FF3
+0x5A56 0x7204
+0x5A57 0x7208
+0x5A58 0x7215
+0x5A59 0x3E09
+0x5A5A 0x74C4
+0x5A5B 0x74C9
+0x5A5C-0x5A5D 0x74C7
+0x5A5E 0x76A9
+0x5A5F 0x77C6
+0x5A60 0x77C5
+0x5A61 0x7918
+0x5A62 0x791A
+0x5A63 0x7920
+0x5A64 0x4122
+0x5A65 0x7A66
+0x5A66 0x7A64
+0x5A67 0x7A6A
+0x5A68 0x41D5
+0x5A69 0x4261
+0x5A6A 0x425D
+0x5A6B 0x4262
+0x5A6C 0x424F
+0x5A6D 0x4260
+0x5A6E 0x7C35
+0x5A6F 0x7C34
+0x5A70 0x42AA
+0x5A71 0x4322
+0x5A72 0x7E6C
+0x5A73 0x4321
+0x5A74 0x7E6E
+0x5A75 0x7E71
+0x5A76 0x4446
+0x5A77 0x81D4
+0x5A78 0x81D6
+0x5A79 0x821A
+0x5A7A 0x8262
+0x5A7B 0x8265
+0x5A7C 0x8276
+0x5A7D 0x85DB
+0x5A7E 0x85D6
+0x5B21 0x4562
+0x5B22 0x85E7
+0x5B23 0x4560
+0x5B24 0x4564
+0x5B25 0x85F4
+0x5B26 0x2F9B6
+0x5B27 0x87FD
+0x5B28 0x87D5
+0x5B29 0x8807
+0x5B2A 0x45F6
+0x5B2B 0x880F
+0x5B2C 0x87F8
+0x5B2D 0x2F9C1
+0x5B2E 0x4619
+0x5B2F 0x8987
+0x5B30 0x4691
+0x5B31 0x89B5
+0x5B32 0x89F5
+0x5B33 0x470D
+0x5B34 0x8B3F
+0x5B35 0x8B43
+0x5B36 0x8B4C
+0x5B37 0x4765
+0x5B38 0x8D0B
+0x5B39 0x8E6B
+0x5B3A 0x8E68
+0x5B3B 0x8E70
+0x5B3C 0x8E75
+0x5B3D 0x8E77
+0x5B3E 0x483F
+0x5B3F 0x8EC3
+0x5B40 0x494B
+0x5B41-0x5B42 0x93E9
+0x5B43 0x93CB
+0x5B44-0x5B45 0x93C5
+0x5B46 0x4948
+0x5B47 0x93ED
+0x5B48 0x93D3
+0x5B49 0x4952
+0x5B4A 0x93E5
+0x5B4B 0x494A
+0x5B4C 0x4951
+0x5B4D 0x93DB
+0x5B4E 0x93EB
+0x5B4F 0x93E0
+0x5B50 0x93C1
+0x5B51 0x4950
+0x5B52 0x494C
+0x5B53 0x95DD
+0x5B54 0x49EE
+0x5B55 0x4A04
+0x5B56 0x4A06
+0x5B57-0x5B59 0x4A2D
+0x5B5A 0x4A7B
+0x5B5B 0x4A78
+0x5B5C 0x4A77
+0x5B5D 0x97B2
+0x5B5E 0x97B4
+0x5B5F 0x97B1
+0x5B60 0x97B5
+0x5B61 0x97F2
+0x5B62 0x4AA2
+0x5B63 0x4AA1
+0x5B64 0x4AE3
+0x5B65 0x9856
+0x5B66 0x4B1A
+0x5B67 0x4B19
+0x5B68 0x4B57
+0x5B69 0x9944
+0x5B6A 0x4B9E
+0x5B6B 0x9A26
+0x5B6C 0x9A1F
+0x5B6D 0x9A18
+0x5B6E 0x9A21
+0x5B6F 0x9A17
+0x5B70 0x4BDD
+0x5B71 0x9B09
+0x5B72 0x4C05
+0x5B73 0x4C28
+0x5B74 0x9BC5
+0x5B75 0x9BDF
+0x5B76 0x4C60
+0x5B77 0x9BE3
+0x5B78 0x4C66
+0x5B79 0x9BE9
+0x5B7A 0x9BEE
+0x5B7B-0x5B7C 0x4C67
+0x5B7D 0x9D66
+0x5B7E 0x9D7A
+0x5C21 0x4CDE
+0x5C22 0x9D6E
+0x5C23 0x9D91
+0x5C24 0x9D83
+0x5C25 0x9D76
+0x5C26 0x9D7E
+0x5C27 0x9D6D
+0x5C28 0x4CE1
+0x5C29 0x9E95
+0x5C2A 0x9EE3
+0x5C2B 0x4D69
+0x5C2C 0x4D77
+0x5C2D-0x5C2E 0x9F03
+0x5C2F 0x2FA19
+0x5C30 0x9F17
+0x5C31 0x34A6
+0x5C32 0x5136
+0x5C33 0x34A5
+0x5C34 0x5336
+0x5C35 0x3614
+0x5C36 0x5B42
+0x5C37 0x3736
+0x5C38 0x3738
+0x5C39 0x5B44
+0x5C3A 0x5B46
+0x5C3B 0x5B7E
+0x5C3C 0x5DCA
+0x5C3D 0x5DC8
+0x5C3E 0x5DCC
+0x5C3F 0x5EF0
+0x5C40 0x3A70
+0x5C41 0x6585
+0x5C42 0x66E5
+0x5C43 0x66E7
+0x5C44 0x3B2B
+0x5C45 0x3C11
+0x5C46 0x3C0A
+0x5C47 0x6AF4
+0x5C48 0x3C0D
+0x5C49 0x6AE9
+0x5C4A 0x3C16
+0x5C4B 0x3C10
+0x5C4C 0x3C09
+0x5C4D 0x3C0E
+0x5C4E 0x3C7A
+0x5C4F 0x703D
+0x5C50 0x3D8C
+0x5C51 0x7036
+0x5C52 0x3D91
+0x5C53 0x7216
+0x5C54 0x3E0A
+0x5C55 0x7212
+0x5C56 0x720F
+0x5C57 0x7217
+0x5C58 0x7211
+0x5C59 0x720B
+0x5C5A 0x3E08
+0x5C5B 0x3E0B
+0x5C5C 0x74CD
+0x5C5D 0x74D0
+0x5C5E 0x74CC
+0x5C5F 0x74CE
+0x5C60 0x74D1
+0x5C61 0x3F07
+0x5C62 0x7589
+0x5C63 0x40F2
+0x5C64 0x7A6F
+0x5C65 0x7C4B
+0x5C66 0x7C44
+0x5C67 0x7C55
+0x5C68 0x42AE
+0x5C69 0x4324
+0x5C6A-0x5C6B 0x4326
+0x5C6C 0x7E7F
+0x5C6D 0x8B71
+0x5C6E 0x4399
+0x5C6F 0x802F
+0x5C70-0x5C72 0x807A
+0x5C73 0x455F
+0x5C74 0x456A
+0x5C75 0x4571
+0x5C76 0x85FC
+0x5C77 0x8610
+0x5C78 0x8602
+0x5C79 0x456C
+0x5C7A 0x456F
+0x5C7B 0x85EE
+0x5C7C 0x8603
+0x5C7D 0x4568
+0x5C7E 0x860D
+0x5D21 0x8613
+0x5D22 0x8608
+0x5D23 0x860F
+0x5D24 0x8818
+0x5D25 0x8812
+0x5D26 0x4601
+0x5D27 0x4668
+0x5D28 0x8967
+0x5D29 0x8965
+0x5D2A 0x89BB
+0x5D2B 0x8B69
+0x5D2C 0x8B62
+0x5D2D 0x4713
+0x5D2E 0x8B6E
+0x5D2F 0x4716
+0x5D30 0x8B61
+0x5D31 0x4718
+0x5D32 0x8B64
+0x5D33 0x8B4D
+0x5D34 0x8C51
+0x5D35 0x4789
+0x5D36 0x47C8
+0x5D37 0x8E83
+0x5D38 0x8EC6
+0x5D39 0x4884
+0x5D3A 0x941F
+0x5D3B 0x4954
+0x5D3C 0x9404
+0x5D3D 0x9417
+0x5D3E 0x9408
+0x5D3F 0x9405
+0x5D40 0x4956
+0x5D41 0x93F3
+0x5D42 0x941E
+0x5D43 0x9402
+0x5D44-0x5D45 0x941A
+0x5D46 0x9427
+0x5D47 0x941C
+0x5D48 0x495A
+0x5D49 0x96B5
+0x5D4A 0x4A05
+0x5D4B 0x4A07
+0x5D4C 0x9733
+0x5D4D 0x4A31
+0x5D4E 0x9734
+0x5D4F 0x9731
+0x5D50 0x97B8
+0x5D51 0x97BA
+0x5D52 0x4AA3
+0x5D53 0x97FC
+0x5D54 0x4AEB
+0x5D55 0x4B1C
+0x5D56 0x98C3
+0x5D57 0x4B5A
+0x5D58 0x994D
+0x5D59 0x4B5B
+0x5D5A 0x9A2F
+0x5D5B 0x4BA6
+0x5D5C 0x4BAA
+0x5D5D 0x4BA5
+0x5D5E 0x9AC9
+0x5D5F 0x4BE1
+0x5D60 0x9AC8
+0x5D61 0x9AC4
+0x5D62 0x9B2A
+0x5D63 0x9B38
+0x5D64 0x9B50
+0x5D65 0x4C2A
+0x5D66 0x9C0A
+0x5D67 0x9BFB
+0x5D68 0x9C04
+0x5D69 0x9BFC
+0x5D6A 0x9BFE
+0x5D6B 0x4C72
+0x5D6C 0x4C6F
+0x5D6D 0x4C73
+0x5D6E 0x9C02
+0x5D6F 0x9BF6
+0x5D70 0x9C1B
+0x5D71 0x9BF9
+0x5D72 0x9C15
+0x5D73 0x9C10
+0x5D74-0x5D75 0x9BFF
+0x5D76 0x9C0C
+0x5D77 0x4C6B
+0x5D78 0x4CE6
+0x5D79 0x9D95
+0x5D7A 0x9DA5
+0x5D7B 0x4CE9
+0x5D7C 0x4CEC
+0x5D7D 0x4CE8
+0x5D7E 0x4CF0
+0x5E21 0x9E98
+0x5E22 0x9EC1
+0x5E23 0x4D8C
+0x5E24 0x9F5A
+0x5E25 0x5164
+0x5E26 0x56BB
+0x5E27 0x3615
+0x5E28 0x58E6
+0x5E29 0x5B49
+0x5E2A 0x5BF7
+0x5E2B 0x3771
+0x5E2C 0x3826
+0x5E2D 0x5DD0
+0x5E2E 0x38C6
+0x5E2F 0x5FC2
+0x5E30 0x39A8
+0x5E31 0x6511
+0x5E32 0x3A73
+0x5E33 0x6AFF
+0x5E34 0x6AFE
+0x5E35 0x6AFD
+0x5E36 0x3C15
+0x5E37 0x6B01
+0x5E38 0x3D98
+0x5E39 0x3D97
+0x5E3A 0x704B
+0x5E3B 0x704D
+0x5E3C 0x7047
+0x5E3D 0x74D3
+0x5E3E 0x7668
+0x5E3F 0x7667
+0x5E40 0x3FD7
+0x5E41 0x4080
+0x5E42 0x77D1
+0x5E43 0x7930
+0x5E44 0x7932
+0x5E45 0x792E
+0x5E46 0x4188
+0x5E47 0x9F9D
+0x5E48 0x7AC9
+0x5E49 0x7AC8
+0x5E4A 0x4269
+0x5E4B 0x7C56
+0x5E4C 0x7C51
+0x5E4D 0x426B
+0x5E4E 0x4329
+0x5E4F 0x4328
+0x5E50 0x7E85
+0x5E51 0x7E89
+0x5E52 0x7E8E
+0x5E53 0x7E84
+0x5E54 0x445F
+0x5E55 0x826A
+0x5E56 0x862B
+0x5E57 0x862F
+0x5E58 0x8628
+0x5E59 0x4574
+0x5E5A 0x8616
+0x5E5B 0x8615
+0x5E5C 0x861D
+0x5E5D 0x881A
+0x5E5E 0x4602
+0x5E5F 0x466A
+0x5E60 0x4694
+0x5E61 0x89BC
+0x5E62 0x8B75
+0x5E63 0x8B7C
+0x5E64 0x478A
+0x5E65-0x5E66 0x8D11
+0x5E67 0x8F5C
+0x5E68 0x91BB
+0x5E69 0x4964
+0x5E6A 0x93F4
+0x5E6B 0x495E
+0x5E6C 0x4961
+0x5E6D 0x942D
+0x5E6E-0x5E6F 0x4965
+0x5E70 0x96E4
+0x5E71 0x9737
+0x5E72 0x9736
+0x5E73 0x9767
+0x5E74 0x97BE
+0x5E75 0x97BD
+0x5E76 0x97E2
+0x5E77 0x9868
+0x5E78 0x9866
+0x5E79 0x98C8
+0x5E7A 0x98CA
+0x5E7B 0x98C7
+0x5E7C 0x98DC
+0x5E7D 0x4B5F
+0x5E7E 0x994F
+0x5F21 0x99A9
+0x5F22 0x9A3C
+0x5F23 0x4BAF
+0x5F24 0x9A3B
+0x5F25 0x9ACE
+0x5F26 0x4C0D
+0x5F27 0x9B14
+0x5F28 0x9B53
+0x5F29 0x4C7C
+0x5F2A 0x9C2E
+0x5F2B 0x4C7A
+0x5F2C 0x9C1F
+0x5F2D 0x4C76
+0x5F2E 0x4C79
+0x5F2F 0x4C7D
+0x5F30 0x4C77
+0x5F31 0x9DB0
+0x5F32 0x9DBD
+0x5F33 0x4CF6
+0x5F34 0x4CF1
+0x5F35 0x9DAE
+0x5F36 0x9DC4
+0x5F37 0x9E7B
+0x5F38 0x400B
+0x5F39 0x4D29
+0x5F3A 0x9E9E
+0x5F3B 0x4D6F
+0x5F3C 0x9F05
+0x5F3D 0x4D9A
+0x5F3E 0x9F69
+0x5F3F 0x9FA1
+0x5F40 0x56C7
+0x5F41 0x571D
+0x5F42 0x5B4A
+0x5F43 0x5DD3
+0x5F44 0x3869
+0x5F45 0x5F72
+0x5F46 0x6202
+0x5F47 0x39AB
+0x5F48 0x6235
+0x5F49 0x6527
+0x5F4A-0x5F4B 0x651E
+0x5F4C-0x5F4D 0x3B2C
+0x5F4E 0x6B07
+0x5F4F 0x6B06
+0x5F50 0x3C17
+0x5F51 0x3D9A
+0x5F52 0x7054
+0x5F53 0x721C
+0x5F54 0x7220
+0x5F55 0x7AF8
+0x5F56 0x426E
+0x5F57 0x7C5D
+0x5F58 0x7C58
+0x5F59 0x432C
+0x5F5A 0x7E92
+0x5F5B 0x7F4E
+0x5F5C 0x43CA
+0x5F5D 0x4578
+0x5F5E 0x4606
+0x5F5F 0x8827
+0x5F60 0x4607
+0x5F61 0x8B81
+0x5F62 0x8B83
+0x5F63 0x4720
+0x5F64 0x8C44
+0x5F65 0x4753
+0x5F66 0x47CE
+0x5F67 0x487A
+0x5F68 0x4879
+0x5F69 0x9442
+0x5F6A 0x944D
+0x5F6B 0x9454
+0x5F6C 0x944E
+0x5F6D 0x496B
+0x5F6E 0x9443
+0x5F6F 0x4967
+0x5F70 0x496D
+0x5F71 0x973C
+0x5F72 0x9740
+0x5F73 0x97C0
+0x5F74 0x4A85
+0x5F75 0x4AB0
+0x5F76 0x4AF3
+0x5F77 0x4B63
+0x5F78 0x995A
+0x5F79 0x9A51
+0x5F7A 0x4BB6
+0x5F7B 0x9ADD
+0x5F7C 0x4C82
+0x5F7D 0x4C7F
+0x5F7E 0x9C38
+0x6021 0x4C86
+0x6022 0x9C45
+0x6023 0x9C3A
+0x6024 0x4C84
+0x6025 0x9C35
+0x6026-0x6027 0x4CFC
+0x6028 0x4CFA
+0x6029 0x9EF1
+0x602A 0x4D87
+0x602B 0x9F93
+0x602C 0x529A
+0x602D 0x361A
+0x602E 0x3619
+0x602F 0x8641
+0x6030 0x5DD7
+0x6031 0x3A75
+0x6032 0x6528
+0x6033-0x6034 0x3C1A
+0x6035 0x3C19
+0x6036 0x7053
+0x6037 0x7059
+0x6038 0x3D9C
+0x6039 0x7221
+0x603A 0x3E10
+0x603B 0x766F
+0x603C 0x7937
+0x603D 0x79B5
+0x603E 0x7C62
+0x603F 0x7C5E
+0x6040 0x7CF5
+0x6041-0x6042 0x457B
+0x6043 0x863D
+0x6044 0x4608
+0x6045 0x882D
+0x6046 0x8989
+0x6047 0x8B8D
+0x6048 0x8B87
+0x6049 0x8B90
+0x604A 0x8D1A
+0x604B 0x8E99
+0x604C 0x4841
+0x604D 0x48E3
+0x604E 0x4972
+0x604F 0x945F
+0x6050 0x4973
+0x6051 0x4968
+0x6052 0x9456
+0x6053 0x9461
+0x6054 0x945B
+0x6055 0x945A
+0x6056 0x945C
+0x6057 0x9465
+0x6058 0x4A35
+0x6059 0x9741
+0x605A 0x4A88
+0x605B 0x4A9D
+0x605C 0x986E
+0x605D-0x605E 0x986C
+0x605F 0x4275
+0x6060 0x99AA
+0x6061 0x9A5C
+0x6062 0x9A58
+0x6063 0x9ADE
+0x6064 0x4C8F
+0x6065 0x9C4F
+0x6066 0x9C51
+0x6067 0x4C8E
+0x6068 0x9C53
+0x6069 0x4D05
+0x606A 0x4D04
+0x606B 0x4CFF
+0x606C 0x9DFC
+0x606D 0x9F39
+0x606E 0x4D9E
+0x606F 0x513E
+0x6070 0x3554
+0x6071 0x56D2
+0x6072 0x3681
+0x6073 0x5B4F
+0x6074 0x6B14
+0x6075 0x40FA
+0x6076-0x6077 0x7A72
+0x6078 0x4332
+0x6079 0x4670
+0x607A 0x466E
+0x607B 0x8B91
+0x607C 0x2F9D6
+0x607D 0x487C
+0x607E 0x91BF
+0x6121 0x4975
+0x6122 0x946C
+0x6123 0x4974
+0x6124 0x4977
+0x6125 0x96E6
+0x6126 0x9745
+0x6127 0x4A37
+0x6128 0x97C8
+0x6129 0x97E4
+0x612A 0x995D
+0x612B 0x4BBA
+0x612C 0x9B21
+0x612D 0x4C11
+0x612E 0x9B2C
+0x612F 0x9B57
+0x6130 0x4C92
+0x6131 0x4C99
+0x6132 0x9C5D
+0x6133 0x9C61
+0x6134 0x9C65
+0x6135 0x9E08
+0x6136 0x4D0A
+0x6137-0x6138 0x4D2A
+0x6139 0x4D44
+0x613A 0x4D79
+0x613B 0x9F45
+0x613C 0x34AA
+0x613D 0x3748
+0x613E 0x6205
+0x613F 0x66EF
+0x6140 0x6B1B
+0x6141 0x6B1D
+0x6142 0x7225
+0x6143 0x7224
+0x6144 0x7C6D
+0x6145 0x42B4
+0x6146 0x8642
+0x6147 0x8649
+0x6148 0x460D
+0x6149 0x8978
+0x614A 0x898A
+0x614B 0x8B97
+0x614C 0x4754
+0x614D 0x8C9B
+0x614E 0x8D1C
+0x614F 0x4830
+0x6150 0x8EA2
+0x6151 0x4A09
+0x6152 0x4A38
+0x6153 0x4A36
+0x6154 0x4A8B
+0x6155 0x4AF7
+0x6156 0x4B66
+0x6157 0x4BBD
+0x6158 0x4C1E
+0x6159 0x9C6C
+0x615A 0x4C96
+0x615B 0x9C6F
+0x615C 0x4D0D
+0x615D 0x9E0E
+0x615E 0x4D73
+0x615F 0x9F08
+0x6160 0x9F1D
+0x6161 0x9FA3
+0x6162-0x6163 0x373B
+0x6164 0x5F60
+0x6165 0x6B1C
+0x6166 0x3DA0
+0x6167 0x40FB
+0x6168 0x7C6F
+0x6169 0x7CF3
+0x616A 0x4581
+0x616B 0x8B9B
+0x616C 0x8EA7
+0x616D 0x91C4
+0x616E 0x4978
+0x616F 0x947A
+0x6170 0x4A8D
+0x6171 0x4B73
+0x6172 0x9A61
+0x6173 0x9A63
+0x6174 0x9AD7
+0x6175 0x9C76
+0x6176 0x4DA6
+0x6177 0x9FA5
+0x6178 0x39AD
+0x6179 0x7067
+0x617A 0x3E11
+0x617B 0x72AB
+0x617C 0x864A
+0x617D 0x897D
+0x617E 0x8B9D
+0x6221 0x8C53
+0x6222 0x8F65
+0x6223 0x947B
+0x6224 0x4A39
+0x6225 0x98CD
+0x6226 0x98DD
+0x6227 0x4BBF
+0x6228 0x9B30
+0x6229 0x9E16
+0x622A 0x4D0F
+0x622B 0x4DA7
+0x622C 0x4DB5
+0x622D 0x3FDC
+0x622E 0x4831
+0x622F 0x96E7
+0x6230 0x9E18
+0x6231 0x9EA2
+0x6232 0x4DA8
+0x6233 0x9F7C
+0x6234 0x4125
+0x6235 0x7E9E
+0x6236 0x9484
+0x6237 0x4BC1
+0x6238 0x9E1C
+0x6239 0x4190
+0x623A 0x7C71
+0x623B 0x97CA
+0x623C 0x4696
+0x623D 0x487F
+0x623E 0x4D10
+0x623F 0x9EA3
+0x6240 0x4A0A
+0x6241 0x9C7B
+0x6242 0x9F97
+0x6243 0x4D12
+0x6244 0x4A3A
+0x6245 0x9750
+0x6246 0x4A3B
diff --git a/etc/charsets/CNS-4.map b/etc/charsets/CNS-4.map
new file mode 100644 (file)
index 0000000..fac0710
--- /dev/null
@@ -0,0 +1,7032 @@
+# Generated from data at http://sourceforge.net/cvs/?group_id=26261
+0x2121 0x20086
+0x2122-0x2123 0x4E40
+0x2124 0x4E5A
+0x2125 0x21FE8
+0x2126 0x4E02
+0x2127 0x4E29
+0x2128 0x2010E
+0x2129 0x20627
+0x212A 0x5202
+0x212B 0x353E
+0x212C 0x5DDC
+0x212D 0x2053C
+0x212E 0x20675
+0x212F 0x2F828
+0x2130 0x5342
+0x2131 0x536A
+0x2132 0x5B52
+0x2133 0x2193C
+0x2134 0x2F875
+0x2135 0x2F878
+0x2136 0x5FC4
+0x2137 0x624C
+0x2138 0x72AD
+0x2139 0x4E12
+0x213A 0x4E2F
+0x213B 0x4E96
+0x213C 0x4ED0
+0x213D 0x5142
+0x213E 0x5183
+0x213F 0x2F819
+0x2140 0x206A5
+0x2141 0x206AA
+0x2142 0x2090F
+0x2143 0x20A0E
+0x2144 0x5383
+0x2145 0x53B8
+0x2146 0x20B9C
+0x2147 0x20B9B
+0x2148 0x2123C
+0x2149 0x5928
+0x214A 0x21BC2
+0x214B 0x5C23
+0x214C 0x5E01
+0x214D 0x5F00
+0x214E 0x233B4
+0x214F 0x3CB8
+0x2150 0x706C
+0x2151 0x722B
+0x2152 0x5188
+0x2153 0x8279
+0x2154 0x8FB6
+0x2155 0x4E17
+0x2156 0x20065
+0x2157 0x340C
+0x2158 0x201B2
+0x2159 0x3430
+0x215A 0x4EE2
+0x215B 0x4EDB
+0x215C 0x20477
+0x215D 0x20542
+0x215E 0x51AD
+0x215F 0x20633
+0x2160 0x51F7
+0x2161 0x34DA
+0x2162 0x206AF
+0x2163 0x20836
+0x2164 0x3513
+0x2165 0x531B
+0x2166 0x5388
+0x2167 0x5387
+0x2168 0x20B22
+0x2169 0x53CF
+0x216A 0x53FD
+0x216B 0x3563
+0x216C 0x53E7
+0x216D 0x56DC
+0x216E 0x211A3
+0x216F 0x56D9
+0x2170 0x5725
+0x2171 0x5727
+0x2172 0x5933
+0x2173 0x5C13
+0x2174 0x21C25
+0x2175 0x21C24
+0x2176 0x5C75
+0x2177 0x22052
+0x2178 0x22189
+0x2179 0x224BF
+0x217A 0x39C4
+0x217B 0x39C3
+0x217C 0x66F1
+0x217D 0x233B5
+0x217E 0x2574C
+0x2221 0x7F52
+0x2222 0x28E14
+0x2223 0x28E12
+0x2224 0x3401
+0x2225 0x200A3
+0x2226 0x200A2
+0x2227 0x4E51
+0x2228 0x4E6A
+0x2229 0x201B6
+0x222A 0x4F0C
+0x222B 0x201B5
+0x222C 0x201B4
+0x222D 0x4EFE
+0x222E 0x4F1B
+0x222F 0x201C2
+0x2230 0x201B8
+0x2231 0x343A
+0x2232 0x20479
+0x2233 0x34AB
+0x2234 0x5173
+0x2235 0x20508
+0x2236 0x518E
+0x2237 0x2057A
+0x2238 0x205B6
+0x2239 0x206BD
+0x223A 0x206B7
+0x223B 0x206BC
+0x223C 0x34DD
+0x223D 0x206C4
+0x223E 0x206C9
+0x223F 0x52A5
+0x2240 0x3515
+0x2241 0x52A7
+0x2242 0x52A4
+0x2243 0x20930
+0x2244 0x20983
+0x2245 0x20985
+0x2246 0x20A12
+0x2247 0x20A34
+0x2248 0x53BD
+0x2249 0x20AE4
+0x224A 0x20ADE
+0x224B 0x20B2A
+0x224C 0x5402
+0x224D 0x20BAF
+0x224E 0x20BB4
+0x224F 0x20BB3
+0x2250 0x20BB1
+0x2251 0x572B
+0x2252 0x591B
+0x2253 0x5935
+0x2254 0x215DE
+0x2255 0x36A7
+0x2256 0x36A5
+0x2257 0x216B8
+0x2258 0x216B0
+0x2259 0x36A6
+0x225A 0x219C2
+0x225B 0x5B90
+0x225C 0x5C17
+0x225D 0x377C
+0x225E 0x21C2A
+0x225F 0x5C70
+0x2260 0x5C7D
+0x2261 0x37A9
+0x2262 0x21FE9
+0x2263 0x5DE9
+0x2264 0x22057
+0x2265-0x2266 0x3834
+0x2267 0x221B6
+0x2268 0x221D7
+0x2269 0x221DE
+0x226A 0x38A8
+0x226B 0x5F19
+0x226C 0x5F1C
+0x226D 0x5F75
+0x226E 0x224C2
+0x226F 0x225AB
+0x2270 0x38FF
+0x2271 0x5FC8
+0x2272 0x2298F
+0x2273 0x39C7
+0x2274 0x39C6
+0x2275 0x39C8
+0x2276 0x22A6D
+0x2277 0x22EB5
+0x2278-0x2279 0x3AD0
+0x227A 0x233C0
+0x227B 0x233BF
+0x227C 0x3C59
+0x227D 0x239B9
+0x227E 0x23B1C
+0x2321 0x6C12
+0x2322 0x3CBD
+0x2323 0x23C80
+0x2324-0x2325 0x24184
+0x2326 0x3E28
+0x2327 0x72B3
+0x2328 0x24724
+0x2329 0x3EA9
+0x232A 0x7390
+0x232B 0x7536
+0x232C 0x2634C
+0x232D 0x43CC
+0x232E 0x26AF6
+0x232F 0x8281
+0x2330 0x8FB8
+0x2331 0x28670
+0x2332 0x48B4
+0x2333 0x28675
+0x2334 0x28E17
+0x2335 0x4E23
+0x2336 0x3416
+0x2337 0x342C
+0x2338 0x201F1
+0x2339 0x4F2E
+0x233A 0x201DA
+0x233B 0x514F
+0x233C 0x205B9
+0x233D 0x51BA
+0x233E-0x233F 0x34DF
+0x2340 0x5222
+0x2341 0x206CE
+0x2342 0x206D2
+0x2343 0x206D0
+0x2344 0x3517
+0x2345 0x20843
+0x2346-0x2348 0x52AF
+0x2349 0x2084D
+0x234A 0x20934
+0x234B 0x352F
+0x234C 0x209D9
+0x234D 0x5364
+0x234E 0x20A18
+0x234F 0x53D3
+0x2350 0x20B38
+0x2351 0x356A
+0x2352 0x20BD7
+0x2353 0x3570
+0x2354 0x356D
+0x2355 0x20BDC
+0x2356 0x20BCB
+0x2357 0x20BD6
+0x2358 0x20BD8
+0x2359 0x356E
+0x235A 0x20BD1
+0x235B 0x2F83E
+0x235C 0x2F83C
+0x235D 0x20BD2
+0x235E 0x362B
+0x235F 0x3628
+0x2360 0x21259
+0x2361 0x5759
+0x2362 0x593F
+0x2363-0x2364 0x215E5
+0x2365 0x3692
+0x2366 0x215E8
+0x2367 0x598B
+0x2368 0x216BD
+0x2369 0x5991
+0x236A 0x5995
+0x236B 0x216BE
+0x236C 0x21949
+0x236D 0x373F
+0x236E 0x219CD
+0x236F 0x5B8A
+0x2370 0x374F
+0x2371 0x3774
+0x2372 0x21B5E
+0x2373 0x21BD0
+0x2374 0x377D
+0x2375 0x21D06
+0x2376 0x37B7
+0x2377 0x37A3
+0x2378-0x2379 0x37B0
+0x237A 0x5C87
+0x237B 0x37AB
+0x237C 0x21D7C
+0x237D 0x21D71
+0x237E 0x21FEF
+0x2421 0x383A
+0x2422 0x3837
+0x2423 0x5E0D
+0x2424 0x3838
+0x2425 0x3840
+0x2426 0x2218D
+0x2427 0x221B7
+0x2428 0x5E8E
+0x2429 0x389F
+0x242A 0x22333
+0x242B 0x2237F
+0x242C 0x5F7A
+0x242D 0x225F2
+0x242E 0x3904
+0x242F 0x3909
+0x2430 0x3906
+0x2431 0x38FD
+0x2432 0x390A
+0x2433 0x3907
+0x2434 0x22A2A
+0x2435 0x22A8B
+0x2436 0x39CA
+0x2437 0x22A83
+0x2438 0x22A8A
+0x2439 0x6290
+0x243A 0x39C9
+0x243B 0x22A8E
+0x243C 0x629A
+0x243D 0x22EB6
+0x243E 0x653C
+0x243F 0x653A
+0x2440 0x3A7F
+0x2441 0x6598
+0x2442 0x230D8
+0x2443 0x3AD2
+0x2444 0x23156
+0x2445 0x233D2
+0x2446 0x6765
+0x2447 0x2F8DB
+0x2448 0x3B43
+0x2449 0x233C2
+0x244A 0x23887
+0x244B 0x23881
+0x244C 0x239C2
+0x244D 0x239BC
+0x244E 0x23B23
+0x244F 0x3CC1
+0x2450 0x23C93
+0x2451 0x3CC5
+0x2452 0x3DA3
+0x2453-0x2454 0x2418D
+0x2455 0x3E2A
+0x2456 0x3E5F
+0x2457 0x2473B
+0x2458 0x2474D
+0x2459 0x3E5D
+0x245A 0x24734
+0x245B 0x24731
+0x245C 0x248F2
+0x245D 0x248F0
+0x245E 0x3F17
+0x245F 0x24C15
+0x2460 0x24D28
+0x2461-0x2462 0x3F71
+0x2463 0x24F25
+0x2464 0x250E7
+0x2465 0x400F
+0x2466 0x250E9
+0x2467 0x25417
+0x2468 0x79C2
+0x2469 0x4191
+0x246A 0x2626C
+0x246B 0x26280
+0x246C 0x2634B
+0x246D 0x43B2
+0x246E 0x43CF
+0x246F 0x43CE
+0x2470 0x809E
+0x2471 0x268DE
+0x2472 0x268FB
+0x2473 0x81EB
+0x2474 0x26951
+0x2475 0x8289
+0x2476 0x4496
+0x2477-0x2478 0x26B01
+0x2479 0x8296
+0x247A 0x26B05
+0x247B 0x8287
+0x247C 0x26B03
+0x247D 0x4497
+0x247E 0x28451
+0x2521 0x8FC0
+0x2522 0x488B
+0x2523 0x8FC3
+0x2524 0x28453
+0x2525 0x2867A
+0x2526 0x28678
+0x2527 0x28676
+0x2528 0x28679
+0x2529 0x2868F
+0x252A 0x2867C
+0x252B 0x9578
+0x252C-0x252D 0x28E1B
+0x252E 0x9625
+0x252F 0x23D92
+0x2530 0x4E75
+0x2531 0x4E74
+0x2532 0x2012E
+0x2533 0x2012C
+0x2534 0x342D
+0x2535 0x2020C
+0x2536 0x4F99
+0x2537 0x2020B
+0x2538 0x3450
+0x2539 0x344B
+0x253A 0x20205
+0x253B 0x344F
+0x253C 0x344C
+0x253D 0x2F805
+0x253E 0x4F71
+0x253F 0x5153
+0x2540 0x51BF
+0x2541-0x2542 0x205C2
+0x2543 0x51C0
+0x2544 0x20648
+0x2545 0x51EE
+0x2546 0x20646
+0x2547 0x34E4
+0x2548 0x34E3
+0x2549 0x206EA
+0x254A 0x34E1
+0x254B 0x206EB
+0x254C 0x34E2
+0x254D 0x206EE
+0x254E 0x523D
+0x254F 0x3519
+0x2550 0x52BD
+0x2551 0x530C
+0x2552 0x208D8
+0x2553 0x24C1E
+0x2554 0x209DF
+0x2555 0x209DE
+0x2556 0x3541
+0x2557 0x7F37
+0x2558 0x20A4F
+0x2559 0x53C0
+0x255A 0x355E
+0x255B 0x20C0D
+0x255C 0x20C08
+0x255D 0x3579
+0x255E 0x20C09
+0x255F 0x546E
+0x2560 0x5483
+0x2561 0x20C12
+0x2562 0x20C65
+0x2563 0x545E
+0x2564 0x545D
+0x2565 0x577E
+0x2566 0x5779
+0x2567 0x21289
+0x2568 0x577A
+0x2569 0x576C
+0x256A 0x21284
+0x256B 0x2129E
+0x256C 0x2128B
+0x256D 0x3632
+0x256E 0x5787
+0x256F 0x21562
+0x2570 0x591D
+0x2571 0x3694
+0x2572 0x5946
+0x2573 0x3697
+0x2574 0x215F9
+0x2575 0x5943
+0x2576 0x215F7
+0x2577 0x3696
+0x2578 0x3698
+0x2579 0x21606
+0x257A 0x216DD
+0x257B 0x36B2
+0x257C 0x216D9
+0x257D 0x216DF
+0x257E 0x216E2
+0x2621 0x36B9
+0x2622 0x5B61
+0x2623 0x5B66
+0x2624 0x200F1
+0x2625 0x5B90
+0x2626 0x3775
+0x2627 0x377F
+0x2628 0x377E
+0x2629 0x5C29
+0x262A 0x378F
+0x262B 0x21C3F
+0x262C 0x21C3E
+0x262D 0x21D0B
+0x262E 0x37BD
+0x262F 0x5CB2
+0x2630 0x21D83
+0x2631-0x2632 0x37BB
+0x2633 0x21D86
+0x2634 0x5CC0
+0x2635 0x2207C
+0x2636-0x2637 0x383D
+0x2638 0x3874
+0x2639 0x221F7
+0x263A 0x387A
+0x263B 0x3876
+0x263C 0x3878
+0x263D 0x3875
+0x263E 0x221FB
+0x263F 0x2233B
+0x2640-0x2641 0x38AF
+0x2642 0x38C7
+0x2643 0x38CC
+0x2644 0x225F9
+0x2645 0x225CA
+0x2646 0x3916
+0x2647 0x225FF
+0x2648 0x3912
+0x2649 0x391D
+0x264A 0x22609
+0x264B 0x22603
+0x264C 0x3915
+0x264D 0x390F
+0x264E 0x3914
+0x264F 0x601F
+0x2650 0x5FE2
+0x2651 0x22610
+0x2652 0x2299A
+0x2653 0x2299F
+0x2654 0x39B0
+0x2655-0x2656 0x39BF
+0x2657 0x22A87
+0x2658 0x39D2
+0x2659 0x39D9
+0x265A 0x22EB7
+0x265B 0x3A7A
+0x265C 0x22F08
+0x265D 0x22EF9
+0x265E-0x265F 0x3A81
+0x2660 0x22EF4
+0x2661 0x6616
+0x2662 0x65F9
+0x2663 0x3ADA
+0x2664 0x26657
+0x2665 0x6788
+0x2666 0x233D6
+0x2667 0x679B
+0x2668 0x2F8DE
+0x2669 0x676E
+0x266A 0x679E
+0x266B 0x233D4
+0x266C 0x3C22
+0x266D 0x3C1F
+0x266E 0x23890
+0x266F 0x2388D
+0x2670 0x3C21
+0x2671 0x6B24
+0x2672 0x23960
+0x2673-0x2674 0x239CE
+0x2675 0x3C5C
+0x2676 0x6B7D
+0x2677 0x239D1
+0x2678 0x3C7D
+0x2679 0x3C8D
+0x267A 0x3C8F
+0x267B 0x6CE6
+0x267C 0x23CCA
+0x267D 0x6CCB
+0x267E 0x3CD0
+0x2721 0x23CB7
+0x2722 0x3CD8
+0x2723 0x23CB2
+0x2724 0x23CBB
+0x2725 0x23CB9
+0x2726 0x6CB5
+0x2727 0x3DA7
+0x2728 0x2419E
+0x2729 0x7097
+0x272A 0x241B2
+0x272B 0x709B
+0x272C 0x3E12
+0x272D 0x2456F
+0x272E 0x245AC
+0x272F 0x3E2F
+0x2730 0x24623
+0x2731 0x726B
+0x2732 0x3E2E
+0x2733 0x3E2C
+0x2734 0x3E5C
+0x2735 0x2476C
+0x2736 0x72D5
+0x2737 0x24732
+0x2738 0x2475E
+0x2739 0x3E62
+0x273A 0x3E67
+0x273B 0x3EB4
+0x273C 0x248FB
+0x273D 0x24B29
+0x273E 0x24BBD
+0x273F 0x24C1F
+0x2740 0x7543
+0x2741 0x22341
+0x2742 0x24C1D
+0x2743 0x759C
+0x2744 0x24D31
+0x2745 0x24D2F
+0x2746 0x3FEA
+0x2747 0x25043
+0x2748 0x3FFB
+0x2749 0x25041
+0x274A 0x4014
+0x274B 0x250F5
+0x274C 0x4013
+0x274D 0x4012
+0x274E-0x274F 0x4010
+0x2750 0x250F2
+0x2751 0x4086
+0x2752 0x77E4
+0x2753 0x4098
+0x2754 0x2541E
+0x2755 0x25754
+0x2756 0x412A
+0x2757 0x25756
+0x2758 0x25929
+0x2759-0x275A 0x25927
+0x275B 0x7ACE
+0x275C 0x42B5
+0x275D 0x26279
+0x275E 0x2627E
+0x275F-0x2760 0x264B6
+0x2761 0x8013
+0x2762 0x43D6
+0x2763 0x43D8
+0x2764 0x80B7
+0x2765 0x43D9
+0x2766 0x43D4
+0x2767 0x43D7
+0x2768 0x2F981
+0x2769 0x80B9
+0x276A 0x80BB
+0x276B 0x2664D
+0x276C 0x81E4
+0x276D 0x81FD
+0x276E 0x820F
+0x276F 0x4460
+0x2770 0x26A09
+0x2771 0x26A08
+0x2772 0x449E
+0x2773 0x44A1
+0x2774 0x26B1E
+0x2775 0x26B1A
+0x2776 0x26B23
+0x2777 0x26B15
+0x2778 0x26B19
+0x2779 0x26B16
+0x277A 0x82BF
+0x277B 0x82CA
+0x277C 0x26B14
+0x277D 0x26B18
+0x277E 0x82C1
+0x2821 0x44A0
+0x2822 0x2721F
+0x2823 0x275DD
+0x2824 0x275DF
+0x2825 0x28469
+0x2826 0x8FD0
+0x2827 0x488C
+0x2828 0x2846C
+0x2829 0x48B9
+0x282A 0x28693
+0x282B 0x90AE
+0x282C 0x28695
+0x282D 0x28694
+0x282E 0x28691
+0x282F 0x28697
+0x2830 0x28E30
+0x2831-0x2832 0x49C1
+0x2833 0x9638
+0x2834 0x2FA18
+0x2835 0x341C
+0x2836 0x20231
+0x2837 0x345E
+0x2838 0x4FBC
+0x2839 0x3459
+0x283A 0x345C
+0x283B 0x20236
+0x283C 0x345F
+0x283D 0x4FE9
+0x283E 0x4FBD
+0x283F 0x4FE2
+0x2840 0x5158
+0x2841-0x2842 0x205C9
+0x2843 0x34CE
+0x2844 0x20718
+0x2845 0x20712
+0x2846 0x20719
+0x2847 0x20710
+0x2848 0x20716
+0x2849 0x52C6
+0x284A 0x2085F
+0x284B 0x52C8
+0x284C 0x208DF
+0x284D 0x20917
+0x284E 0x5328
+0x284F 0x2093C
+0x2850 0x5329
+0x2851 0x209EA
+0x2852 0x209E9
+0x2853 0x20A1C
+0x2854 0x20A58
+0x2855 0x20A64
+0x2856 0x20AF3
+0x2857 0x355F
+0x2858 0x20C97
+0x2859 0x3585
+0x285A 0x20C5A
+0x285B 0x20C59
+0x285C 0x3586
+0x285D 0x20C8E
+0x285E 0x57B4
+0x285F 0x212BC
+0x2860 0x57A9
+0x2861 0x3687
+0x2862 0x2160D
+0x2863 0x215FC
+0x2864 0x2160C
+0x2865 0x21707
+0x2866 0x2170A
+0x2867 0x36CA
+0x2868 0x21702
+0x2869 0x36C3
+0x286A 0x21726
+0x286B 0x21708
+0x286C 0x2171D
+0x286D 0x36C2
+0x286E 0x5B68
+0x286F 0x2194E
+0x2870 0x3741
+0x2871-0x2873 0x219ED
+0x2874-0x2875 0x3780
+0x2876 0x21C50
+0x2877 0x21C4C
+0x2878 0x3793
+0x2879 0x3792
+0x287A 0x21C4F
+0x287B 0x37C5
+0x287C 0x21DD4
+0x287D 0x5CD5
+0x287E 0x21DB0
+0x2921 0x3846
+0x2922 0x3841
+0x2923 0x3845
+0x2924 0x3842
+0x2925 0x383F
+0x2926 0x220A5
+0x2927 0x22209
+0x2928 0x3882
+0x2929 0x3881
+0x292A 0x387F
+0x292B 0x38A5
+0x292C 0x5F2B
+0x292D 0x38B3
+0x292E 0x38B5
+0x292F 0x223F3
+0x2930 0x223D7
+0x2931 0x5F8D
+0x2932 0x38DA
+0x2933 0x224DC
+0x2934 0x38DB
+0x2935 0x390D
+0x2936 0x6018
+0x2937 0x390E
+0x2938 0x2260B
+0x2939 0x391E
+0x293A-0x293B 0x3925
+0x293C 0x391C
+0x293D 0x3921
+0x293E 0x6057
+0x293F 0x6048
+0x2940 0x3927
+0x2941 0x391A
+0x2942 0x2263A
+0x2943 0x2260D
+0x2944 0x22611
+0x2945 0x6038
+0x2946 0x22620
+0x2947 0x22601
+0x2948 0x3924
+0x2949 0x22637
+0x294A 0x2F8A3
+0x294B 0x6071
+0x294C 0x229AA
+0x294D 0x39C1
+0x294E 0x39E1
+0x294F-0x2950 0x22AE7
+0x2951 0x6312
+0x2952 0x39EB
+0x2953 0x22AF5
+0x2954 0x39E2
+0x2955 0x39D7
+0x2956 0x39E9
+0x2957 0x22B35
+0x2958 0x22AE6
+0x2959 0x630A
+0x295A 0x22AF8
+0x295B 0x6323
+0x295C 0x22AF1
+0x295D 0x3A84
+0x295E-0x295F 0x22F14
+0x2960 0x22F09
+0x2961 0x3AB5
+0x2962 0x3ABC
+0x2963 0x3ADC
+0x2964-0x2965 0x3ADE
+0x2966 0x2317B
+0x2967 0x662A
+0x2968 0x2317E
+0x2969-0x296A 0x23366
+0x296B 0x2340A
+0x296C 0x3B54
+0x296D 0x67E0
+0x296E 0x67BE
+0x296F 0x3B53
+0x2970-0x2971 0x3C24
+0x2972 0x6B29
+0x2973 0x3C28
+0x2974 0x3C27
+0x2975 0x2389C
+0x2976 0x23962
+0x2977 0x239E1
+0x2978-0x2979 0x239DE
+0x297A 0x239E9
+0x297B 0x3C8B
+0x297C 0x23CE4
+0x297D 0x23CF7
+0x297E 0x3CDC
+0x2A21 0x6D43
+0x2A22 0x23CEA
+0x2A23 0x23CF6
+0x2A24 0x23D12
+0x2A25 0x2F901
+0x2A26 0x70A6
+0x2A27 0x3DB2
+0x2A28 0x70C0
+0x2A29 0x241D9
+0x2A2A 0x722F
+0x2A2B 0x2455F
+0x2A2C 0x3E1B
+0x2A2D 0x24573
+0x2A2E 0x3E32
+0x2A2F 0x7271
+0x2A30 0x2463F
+0x2A31 0x24778
+0x2A32 0x3E6B
+0x2A33 0x2477D
+0x2A34-0x2A35 0x3E6C
+0x2A36 0x24912
+0x2A37-0x2A38 0x3EB9
+0x2A39-0x2A3A 0x3F09
+0x2A3B 0x24B2F
+0x2A3C 0x74EA
+0x2A3D 0x3F1B
+0x2A3E 0x24B30
+0x2A3F 0x24BDB
+0x2A40 0x7520
+0x2A41 0x3F58
+0x2A42 0x24C29
+0x2A43 0x3F5A
+0x2A44 0x2F936
+0x2A45 0x24D40
+0x2A46 0x3F77
+0x2A47-0x2A48 0x24D3D
+0x2A49 0x3F79
+0x2A4A 0x75A9
+0x2A4B 0x24D38
+0x2A4C 0x7685
+0x2A4D 0x24F48
+0x2A4E 0x3FEB
+0x2A4F 0x24FD0
+0x2A50 0x3FFD
+0x2A51 0x3FFC
+0x2A52 0x7706
+0x2A53 0x4015
+0x2A54 0x4018
+0x2A55 0x76F6
+0x2A56-0x2A57 0x4016
+0x2A58 0x4019
+0x2A59 0x7700
+0x2A5A 0x401B
+0x2A5B 0x2510E
+0x2A5C 0x25109
+0x2A5D 0x7702
+0x2A5E 0x25107
+0x2A5F 0x4087
+0x2A60-0x2A61 0x2535F
+0x2A62 0x409C
+0x2A63 0x2542A
+0x2A64 0x409A
+0x2A65 0x25429
+0x2A66 0x40FF
+0x2A67 0x40FE
+0x2A68 0x2564D
+0x2A69 0x4131
+0x2A6A 0x412E
+0x2A6B 0x4130
+0x2A6C 0x4132
+0x2A6D 0x2576C
+0x2A6E 0x79CC
+0x2A6F 0x412F
+0x2A70 0x25767
+0x2A71-0x2A72 0x4195
+0x2A73 0x25939
+0x2A74 0x25934
+0x2A75 0x25A59
+0x2A76 0x41C5
+0x2A77 0x427A
+0x2A78 0x26223
+0x2A79 0x4342
+0x2A7A 0x26282
+0x2A7B 0x4354
+0x2A7C 0x26283
+0x2A7D 0x262A8
+0x2A7E 0x26355
+0x2B21 0x263F9
+0x2B22 0x263F8
+0x2B23 0x263FC
+0x2B24 0x263FA
+0x2B25 0x8009
+0x2B26 0x2F97A
+0x2B27-0x2B28 0x439F
+0x2B29 0x43A2
+0x2B2A 0x43E0
+0x2B2B 0x26674
+0x2B2C 0x43E1
+0x2B2D 0x2666B
+0x2B2E 0x26671
+0x2B2F 0x43DF
+0x2B30 0x26676
+0x2B31 0x26A0E
+0x2B32 0x4462
+0x2B33 0x4461
+0x2B34 0x26A10
+0x2B35 0x26A0F
+0x2B36 0x44A7
+0x2B37-0x2B39 0x26B38
+0x2B3A 0x82DA
+0x2B3B 0x26B37
+0x2B3C 0x26B3E
+0x2B3D 0x830A
+0x2B3E 0x4589
+0x2B3F 0x2719C
+0x2B40 0x2722A
+0x2B41 0x2723A
+0x2B42 0x2722B
+0x2B43 0x27228
+0x2B44 0x275AA
+0x2B45 0x2760F
+0x2B46 0x461D
+0x2B47 0x27610
+0x2B48 0x277E6
+0x2B49 0x472A
+0x2B4A 0x27D25
+0x2B4B 0x27E8E
+0x2B4C 0x47D3
+0x2B4D-0x2B4E 0x4842
+0x2B4F 0x2848B
+0x2B50 0x4891
+0x2B51 0x2848C
+0x2B52 0x2849A
+0x2B53 0x4890
+0x2B54 0x48BF
+0x2B55 0x286B3
+0x2B56 0x48BC
+0x2B57 0x286B2
+0x2B58 0x48C0
+0x2B59 0x49C7
+0x2B5A 0x49C5
+0x2B5B 0x9655
+0x2B5C 0x28E44
+0x2B5D 0x9652
+0x2B5E 0x4E35
+0x2B5F 0x20158
+0x2B60 0x202A7
+0x2B61 0x5034
+0x2B62 0x5001
+0x2B63 0x20263
+0x2B64 0x500A
+0x2B65 0x3466
+0x2B66 0x2026A
+0x2B67 0x20265
+0x2B68 0x2026B
+0x2B69 0x34AD
+0x2B6A 0x204ED
+0x2B6B 0x205D9
+0x2B6C 0x2073B
+0x2B6D 0x20732
+0x2B6E 0x5258
+0x2B6F 0x20735
+0x2B70 0x20731
+0x2B71 0x2073E
+0x2B72 0x20743
+0x2B73 0x20736
+0x2B74 0x2086D
+0x2B75 0x351D
+0x2B76 0x208E4
+0x2B77 0x3531
+0x2B78 0x532B
+0x2B79 0x209F4
+0x2B7A 0x354C
+0x2B7B 0x20A69
+0x2B7C 0x20A6B
+0x2B7D 0x3595
+0x2B7E 0x3591
+0x2C21 0x3594
+0x2C22 0x20CBF
+0x2C23 0x20CC3
+0x2C24 0x20CAE
+0x2C25 0x358F
+0x2C26 0x54EC
+0x2C27 0x20CB1
+0x2C28 0x5515
+0x2C29 0x54FE
+0x2C2A 0x20CBB
+0x2C2B-0x2C2C 0x20CAF
+0x2C2D 0x54E3
+0x2C2E 0x5516
+0x2C2F 0x3640
+0x2C30 0x212EF
+0x2C31 0x3641
+0x2C32 0x212ED
+0x2C33 0x57D3
+0x2C34 0x212F0
+0x2C35 0x21593
+0x2C36 0x21634
+0x2C37 0x2162B
+0x2C38 0x5959
+0x2C39 0x5A27
+0x2C3A 0x36D8
+0x2C3B 0x36D2
+0x2C3C 0x36DA
+0x2C3D 0x5A28
+0x2C3E 0x5A10
+0x2C3F 0x36D7
+0x2C40 0x5A0E
+0x2C41 0x3742
+0x2C42 0x3757
+0x2C43 0x21A04
+0x2C44 0x21A03
+0x2C45 0x21A02
+0x2C46 0x5BAF
+0x2C47 0x21A05
+0x2C48 0x5BBA
+0x2C49 0x5BB1
+0x2C4A 0x21A00
+0x2C4B 0x21B74
+0x2C4C 0x3778
+0x2C4D 0x3782
+0x2C4E 0x3797
+0x2C4F 0x21C65
+0x2C50 0x21C63
+0x2C51 0x37C9
+0x2C52 0x21DD7
+0x2C53 0x37C8
+0x2C54 0x37D6
+0x2C55 0x37CC
+0x2C56 0x21DE8
+0x2C57 0x37D0
+0x2C58 0x21DDB
+0x2C59 0x21DD8
+0x2C5A 0x37CE
+0x2C5B 0x37C7
+0x2C5C 0x5CFC
+0x2C5D 0x21E09
+0x2C5E 0x37CF
+0x2C5F 0x37CB
+0x2C60 0x5CF2
+0x2C61 0x5CFE
+0x2C62 0x21DE5
+0x2C63 0x21DE7
+0x2C64 0x5DF8
+0x2C65 0x2203F
+0x2C66 0x3847
+0x2C67 0x220C0
+0x2C68 0x3848
+0x2C69-0x2C6A 0x220B9
+0x2C6B 0x3883
+0x2C6C 0x3885
+0x2C6D 0x3884
+0x2C6E 0x22220
+0x2C6F 0x2234F
+0x2C70 0x5F2C
+0x2C71 0x38B8
+0x2C72 0x38BC
+0x2C73 0x22491
+0x2C74 0x22490
+0x2C75 0x224EE
+0x2C76 0x224F3
+0x2C77 0x224EC
+0x2C78 0x224F1
+0x2C79 0x224EB
+0x2C7A 0x224F2
+0x2C7B 0x224F4
+0x2C7C 0x224ED
+0x2C7D 0x22641
+0x2C7E 0x22648
+0x2D21 0x22645
+0x2D22 0x3931
+0x2D23 0x3934
+0x2D24 0x3936
+0x2D25 0x6082
+0x2D26 0x2267F
+0x2D27 0x2268B
+0x2D28 0x3923
+0x2D29 0x2263B
+0x2D2A 0x2264E
+0x2D2B 0x393A
+0x2D2C 0x6091
+0x2D2D 0x608F
+0x2D2E 0x2267C
+0x2D2F-0x2D30 0x39B4
+0x2D31 0x39ED
+0x2D32 0x39EC
+0x2D33 0x39D8
+0x2D34 0x22AF0
+0x2D35 0x22B36
+0x2D36 0x22B3F
+0x2D37 0x22B43
+0x2D38 0x22B31
+0x2D39 0x22B34
+0x2D3A 0x22B46
+0x2D3B 0x39F6
+0x2D3C 0x39E7
+0x2D3D 0x22B2F
+0x2D3E 0x22EC3
+0x2D3F 0x3A7C
+0x2D40 0x3A7B
+0x2D41 0x22F36
+0x2D42 0x3A88
+0x2D43 0x6547
+0x2D44 0x654C
+0x2D45 0x22F21
+0x2D46 0x2F8C8
+0x2D47 0x658A
+0x2D48 0x23073
+0x2D49 0x3ABE
+0x2D4A 0x230E6
+0x2D4B 0x3AE7
+0x2D4C 0x3AE5
+0x2D4D 0x3AEE
+0x2D4E 0x67E1
+0x2D4F 0x684A
+0x2D50 0x2343F
+0x2D51 0x3B59
+0x2D52 0x3B5E
+0x2D53 0x2346B
+0x2D54 0x3B5A
+0x2D55 0x683F
+0x2D56 0x3B61
+0x2D57 0x3B58
+0x2D58 0x3B5B
+0x2D59 0x67BD
+0x2D5A 0x23471
+0x2D5B 0x3B5F
+0x2D5C 0x2F8E2
+0x2D5D 0x3C2A
+0x2D5E 0x3C2D
+0x2D5F 0x238B0
+0x2D60 0x3C23
+0x2D61-0x2D62 0x3C2B
+0x2D63 0x239F3
+0x2D64 0x3C7E
+0x2D65 0x2F8F5
+0x2D66 0x3C93
+0x2D67 0x3C99
+0x2D68 0x23B61
+0x2D69 0x23B5F
+0x2D6A 0x3CB3
+0x2D6B 0x3CE7
+0x2D6C 0x3CEA
+0x2D6D 0x23D28
+0x2D6E 0x23D1E
+0x2D6F 0x23D29
+0x2D70 0x2F902
+0x2D71 0x23CEB
+0x2D72 0x23D66
+0x2D73 0x3DB4
+0x2D74 0x241F6
+0x2D75 0x70C9
+0x2D76 0x3E17
+0x2D77 0x24560
+0x2D78 0x24577
+0x2D79 0x245BB
+0x2D7A 0x3E21
+0x2D7B 0x245BC
+0x2D7C 0x3E38
+0x2D7D 0x3E37
+0x2D7E 0x3E74
+0x2E21 0x3E73
+0x2E22 0x3E75
+0x2E23 0x247A2
+0x2E24 0x247B2
+0x2E25 0x2479E
+0x2E26 0x3E76
+0x2E27 0x3E78
+0x2E28 0x2493A
+0x2E29 0x24938
+0x2E2A 0x73BA
+0x2E2B 0x3F0C
+0x2E2C 0x3F20
+0x2E2D 0x3F1E
+0x2E2E 0x24C4D
+0x2E2F 0x3F5B
+0x2E30 0x24C5E
+0x2E31 0x3F5C
+0x2E32 0x24D17
+0x2E33 0x3F83
+0x2E34 0x75C6
+0x2E35-0x2E36 0x3F80
+0x2E37 0x3F7E
+0x2E38 0x3F88
+0x2E39 0x3F85
+0x2E3A 0x3F89
+0x2E3B 0x3F7F
+0x2E3C 0x3F8E
+0x2E3D 0x24D64
+0x2E3E 0x24D67
+0x2E3F 0x3F84
+0x2E40 0x75B7
+0x2E41 0x768C
+0x2E42 0x24F59
+0x2E43 0x768D
+0x2E44 0x24FDA
+0x2E45 0x3FEE
+0x2E46 0x3FED
+0x2E47 0x3FFE
+0x2E48 0x25051
+0x2E49 0x3FFF
+0x2E4A 0x25055
+0x2E4B 0x2513B
+0x2E4C 0x25134
+0x2E4D 0x4023
+0x2E4E 0x25137
+0x2E4F 0x7717
+0x2E50 0x25131
+0x2E51 0x771C
+0x2E52 0x401F
+0x2E53 0x2513F
+0x2E54 0x25159
+0x2E55 0x7714
+0x2E56 0x25361
+0x2E57-0x2E58 0x408F
+0x2E59 0x25458
+0x2E5A 0x25462
+0x2E5B 0x25450
+0x2E5C 0x40A0
+0x2E5D 0x25451
+0x2E5E 0x40A6
+0x2E5F 0x409F
+0x2E60 0x25446
+0x2E61 0x40A7
+0x2E62 0x40A1
+0x2E63 0x2562D
+0x2E64 0x4102
+0x2E65 0x4136
+0x2E66 0x25948
+0x2E67 0x25951
+0x2E68 0x2594A
+0x2E69-0x2E6A 0x2594F
+0x2E6B 0x25949
+0x2E6C 0x25A63
+0x2E6D 0x41C8
+0x2E6E 0x25A66
+0x2E6F 0x25A60
+0x2E70 0x41D8
+0x2E71 0x7B0C
+0x2E72 0x41DD
+0x2E73 0x41DC
+0x2E74 0x25AF1
+0x2E75 0x41D7
+0x2E76 0x25B07
+0x2E77 0x41DA
+0x2E78 0x42BA
+0x2E79 0x25F9B
+0x2E7A 0x25FA3
+0x2E7B 0x25F9D
+0x2E7C 0x42BE
+0x2E7D 0x42C2
+0x2E7E 0x42BB
+0x2F21 0x42C0
+0x2F22 0x25FA9
+0x2F23 0x25FA7
+0x2F24 0x25FA4
+0x2F25 0x7D23
+0x2F26 0x25FBA
+0x2F27 0x221C1
+0x2F28 0x26226
+0x2F29 0x4343
+0x2F2A 0x4355
+0x2F2B 0x26294
+0x2F2C 0x26293
+0x2F2D 0x4357
+0x2F2E 0x4368
+0x2F2F 0x7F98
+0x2F30 0x7F90
+0x2F31 0x26407
+0x2F32 0x2640D
+0x2F33 0x26402
+0x2F34 0x2640C
+0x2F35 0x26409
+0x2F36 0x26408
+0x2F37 0x26413
+0x2F38 0x43A1
+0x2F39 0x264D2
+0x2F3A 0x803A
+0x2F3B 0x2653E
+0x2F3C 0x2653C
+0x2F3D 0x26667
+0x2F3E 0x2669E
+0x2F3F 0x43EA
+0x2F40 0x266AD
+0x2F41 0x43E7
+0x2F42 0x266D9
+0x2F43 0x26642
+0x2F44 0x266A3
+0x2F45 0x266A0
+0x2F46-0x2F47 0x43E8
+0x2F48 0x2667C
+0x2F49 0x26904
+0x2F4A 0x4454
+0x2F4B 0x26958
+0x2F4C 0x26960
+0x2F4D 0x269C9
+0x2F4E 0x269C8
+0x2F4F 0x8226
+0x2F50 0x4465
+0x2F51 0x26A1C
+0x2F52 0x26A1A
+0x2F53 0x448A
+0x2F54 0x26B74
+0x2F55 0x44B0
+0x2F56-0x2F57 0x26B6E
+0x2F58 0x26B79
+0x2F59 0x44BC
+0x2F5A 0x832E
+0x2F5B 0x26B77
+0x2F5C 0x8355
+0x2F5D 0x831A
+0x2F5E 0x44B8
+0x2F5F 0x833D
+0x2F60 0x26B7C
+0x2F61 0x44B2
+0x2F62 0x26B70
+0x2F63 0x8330
+0x2F64 0x44BD
+0x2F65 0x26B7A
+0x2F66 0x26B82
+0x2F67 0x458A
+0x2F68 0x8651
+0x2F69 0x45A1
+0x2F6A 0x27244
+0x2F6B 0x45A2
+0x2F6C 0x27243
+0x2F6D 0x8688
+0x2F6E 0x27245
+0x2F6F 0x4615
+0x2F70 0x27625
+0x2F71 0x2761F
+0x2F72 0x4620
+0x2F73 0x4673
+0x2F74 0x277E8
+0x2F75 0x898E
+0x2F76 0x898D
+0x2F77 0x27809
+0x2F78 0x278B7
+0x2F79 0x278B9
+0x2F7A 0x27964
+0x2F7B 0x27963
+0x2F7C 0x8A09
+0x2F7D 0x8A14
+0x2F7E 0x46B1
+0x3021 0x27962
+0x3022 0x27965
+0x3023 0x472B
+0x3024 0x27BAC
+0x3025 0x4745
+0x3026 0x27D2A
+0x3027-0x3028 0x4797
+0x3029 0x27E96
+0x302A 0x47D5
+0x302B 0x27FC2
+0x302C 0x2F9DE
+0x302D 0x4893
+0x302E 0x4896
+0x302F 0x9007
+0x3030 0x4894
+0x3031 0x284AA
+0x3032 0x284B0
+0x3033 0x48C7
+0x3034 0x48C5
+0x3035 0x286D4
+0x3036 0x286CD
+0x3037 0x286D6
+0x3038 0x48C4
+0x3039 0x287F0
+0x303A 0x9579
+0x303B 0x9584
+0x303C 0x49CE
+0x303D 0x49CA
+0x303E 0x49CC
+0x303F 0x9657
+0x3040 0x49C9
+0x3041 0x96BA
+0x3042 0x98E4
+0x3043 0x29D4B
+0x3044 0x20162
+0x3045 0x346E
+0x3046 0x202B7
+0x3047 0x5067
+0x3048 0x202AC
+0x3049 0x202AB
+0x304A 0x3471
+0x304B 0x202C1
+0x304C 0x34BB
+0x304D 0x34D3
+0x304E 0x205E8
+0x304F 0x20769
+0x3050 0x2075D
+0x3051 0x2075F
+0x3052 0x34F3
+0x3053 0x34ED
+0x3054 0x34F5
+0x3055 0x20764
+0x3056 0x20762
+0x3057-0x3058 0x34F1
+0x3059 0x34F6
+0x305A 0x3520
+0x305B 0x208F9
+0x305C 0x3528
+0x305D 0x208EE
+0x305E 0x5318
+0x305F 0x532C
+0x3060 0x5359
+0x3061-0x3062 0x209AB
+0x3063 0x209AA
+0x3064 0x5368
+0x3065 0x537E
+0x3066 0x20A86
+0x3067 0x20A7A
+0x3068 0x53A1
+0x3069 0x20D28
+0x306A 0x35A1
+0x306B 0x555B
+0x306C 0x35AA
+0x306D 0x35A9
+0x306E 0x20D31
+0x306F 0x35B5
+0x3070 0x35A5
+0x3071 0x35A8
+0x3072 0x5542
+0x3073 0x35A7
+0x3074 0x5547
+0x3075 0x20D2D
+0x3076 0x2F843
+0x3077 0x553D
+0x3078 0x20D2B
+0x3079 0x20D32
+0x307A 0x5560
+0x307B 0x57EB
+0x307C 0x21329
+0x307D 0x21326
+0x307E 0x21353
+0x3121 0x364D
+0x3122-0x3123 0x21333
+0x3124 0x2159D
+0x3125 0x369C
+0x3126 0x595F
+0x3127 0x21641
+0x3128 0x36EA
+0x3129 0x36E5
+0x312A 0x21791
+0x312B 0x21769
+0x312C 0x5B6F
+0x312D 0x21A22
+0x312E 0x375E
+0x312F 0x21A34
+0x3130 0x2F86D
+0x3131 0x21B2E
+0x3132 0x3786
+0x3133 0x3784
+0x3134 0x21BF4
+0x3135 0x5C5A
+0x3136 0x21E28
+0x3137 0x37D9
+0x3138 0x21E1C
+0x3139 0x37DE
+0x313A 0x21E11
+0x313B 0x21E24
+0x313C 0x21E15
+0x313D 0x37DB
+0x313E 0x21E16
+0x313F 0x21E54
+0x3140 0x21E23
+0x3141 0x21FFF
+0x3142 0x3831
+0x3143-0x3144 0x220CF
+0x3145 0x384B
+0x3146 0x220CE
+0x3147-0x3148 0x3849
+0x3149 0x384C
+0x314A 0x221C7
+0x314B 0x2225C
+0x314C 0x388A
+0x314D 0x22236
+0x314E 0x3889
+0x314F 0x388B
+0x3150 0x22243
+0x3151 0x38BB
+0x3152 0x5FA2
+0x3153 0x5F9D
+0x3154 0x38E4
+0x3155 0x2252A
+0x3156 0x22501
+0x3157 0x5FA3
+0x3158 0x2250B
+0x3159 0x2250F
+0x315A 0x393B
+0x315B 0x392E
+0x315C 0x393E
+0x315D 0x3946
+0x315E 0x3953
+0x315F 0x226DF
+0x3160 0x3944
+0x3161 0x226D2
+0x3162 0x393F
+0x3163 0x3942
+0x3164 0x394F
+0x3165 0x226CD
+0x3166 0x3952
+0x3167 0x394A
+0x3168 0x60C2
+0x3169 0x226DB
+0x316A 0x395A
+0x316B 0x60A5
+0x316C 0x3949
+0x316D 0x226CF
+0x316E 0x621C
+0x316F 0x229C0
+0x3170 0x621D
+0x3171 0x3A03
+0x3172-0x3173 0x22B81
+0x3174 0x22B8A
+0x3175 0x22BA8
+0x3176 0x22B8C
+0x3177 0x6395
+0x3178 0x639A
+0x3179 0x3A01
+0x317A 0x3A06
+0x317B 0x39FB
+0x317C 0x39F9
+0x317D 0x22B8E
+0x317E 0x3A05
+0x3221 0x39FA
+0x3222 0x22B8B
+0x3223 0x63A6
+0x3224 0x22B96
+0x3225 0x39FE
+0x3226 0x22BCC
+0x3227 0x3A7D
+0x3228 0x3A8C
+0x3229 0x22F4F
+0x322A 0x22F4A
+0x322B 0x6550
+0x322C 0x3A8E
+0x322D 0x22F4B
+0x322E 0x22F3D
+0x322F 0x6552
+0x3230 0x22F44
+0x3231 0x22F49
+0x3232 0x2309E
+0x3233 0x230F3
+0x3234 0x65C8
+0x3235 0x230F5
+0x3236 0x3AF0
+0x3237 0x3AF2
+0x3238 0x231B3
+0x3239 0x6658
+0x323A 0x3AF1
+0x323B 0x3AE6
+0x323C 0x231E5
+0x323D 0x231B6
+0x323E 0x2F8D8
+0x323F 0x6888
+0x3240 0x23486
+0x3241 0x3B6F
+0x3242 0x3B6D
+0x3243 0x3B69
+0x3244 0x234B6
+0x3245 0x23485
+0x3246 0x3B6E
+0x3247 0x234AB
+0x3248-0x3249 0x3C2F
+0x324A 0x3C63
+0x324B 0x23A0D
+0x324C-0x324D 0x23A8B
+0x324E 0x6BB8
+0x324F 0x3C80
+0x3250 0x6BB9
+0x3251 0x3C9A
+0x3252 0x3C94
+0x3253 0x3C96
+0x3254 0x3C95
+0x3255 0x3C97
+0x3256 0x23B72
+0x3257 0x3CF4
+0x3258 0x3CFE
+0x3259 0x23D8F
+0x325A 0x3D01
+0x325B 0x23D79
+0x325C 0x3D02
+0x325D 0x23D77
+0x325E 0x3CF9
+0x325F 0x23D90
+0x3260 0x23D88
+0x3261 0x23D80
+0x3262 0x23D9E
+0x3263-0x3264 0x3CF6
+0x3265 0x23D82
+0x3266 0x23D34
+0x3267 0x23D89
+0x3268 0x3CFF
+0x3269 0x23D85
+0x326A 0x23D7E
+0x326B 0x23D7A
+0x326C 0x23DA6
+0x326D 0x6E0B
+0x326E 0x23DB5
+0x326F 0x241F4
+0x3270 0x3DBF
+0x3271 0x3DBC
+0x3272 0x7105
+0x3273 0x24229
+0x3274 0x24226
+0x3275 0x2422A
+0x3276 0x3DBE
+0x3277 0x3DC0
+0x3278 0x2457E
+0x3279 0x3E3B
+0x327A 0x3E39
+0x327B 0x2465B
+0x327C 0x24661
+0x327D 0x24660
+0x327E 0x3E3C
+0x3321 0x2479B
+0x3322 0x7314
+0x3323 0x7304
+0x3324 0x247C3
+0x3325 0x3E7D
+0x3326 0x247CD
+0x3327 0x3E7F
+0x3328 0x3E7A
+0x3329 0x3E7C
+0x332A 0x7305
+0x332B 0x3E7E
+0x332C 0x7315
+0x332D 0x730D
+0x332E 0x3E80
+0x332F 0x3EBF
+0x3330 0x3EC3
+0x3331 0x24954
+0x3332 0x24959
+0x3333 0x3ECC
+0x3334 0x3F0E
+0x3335 0x3F0D
+0x3336 0x24AF5
+0x3337 0x3F26
+0x3338-0x3339 0x3F24
+0x333A 0x3F23
+0x333B 0x3F21
+0x333C 0x3F29
+0x333D 0x24C69
+0x333E 0x24C65
+0x333F 0x3F8F
+0x3340 0x3F8D
+0x3341 0x24D7C
+0x3342 0x3F8B
+0x3343 0x3F92
+0x3344 0x24D80
+0x3345 0x3F90
+0x3346 0x24F65
+0x3347-0x3348 0x3FEF
+0x3349 0x24FDF
+0x334A 0x25060
+0x334B 0x4001
+0x334C 0x2505E
+0x334D 0x402E
+0x334E 0x402D
+0x334F 0x772E
+0x3350-0x3351 0x4028
+0x3352 0x402C
+0x3353 0x2518F
+0x3354 0x25161
+0x3355 0x2515A
+0x3356 0x7741
+0x3357 0x4088
+0x3358 0x25367
+0x3359 0x4092
+0x335A 0x4091
+0x335B 0x77EA
+0x335C 0x253BB
+0x335D 0x7844
+0x335E 0x40A9
+0x335F 0x40AC
+0x3360 0x40AE
+0x3361 0x40AA
+0x3362 0x4106
+0x3363 0x4105
+0x3364 0x414A
+0x3365 0x413E
+0x3366 0x413C
+0x3367 0x413B
+0x3368 0x2579B
+0x3369 0x4142
+0x336A 0x4141
+0x336B 0x4143
+0x336C 0x257A9
+0x336D 0x4145
+0x336E 0x25966
+0x336F-0x3370 0x419A
+0x3371 0x419F
+0x3372 0x419E
+0x3373 0x25A72
+0x3374 0x25A76
+0x3375 0x25B14
+0x3376 0x41DE
+0x3377 0x41E2
+0x3378 0x41E6
+0x3379 0x25B0F
+0x337A 0x7B29
+0x337B 0x41E3
+0x337C 0x7B27
+0x337D 0x41DF
+0x337E 0x25E41
+0x3421 0x25E46
+0x3422 0x7C9D
+0x3423 0x25E4B
+0x3424 0x25E43
+0x3425 0x427E
+0x3426 0x42C9
+0x3427 0x42CC
+0x3428 0x25FC6
+0x3429 0x42D1
+0x342A 0x25FC7
+0x342B 0x42D0
+0x342C 0x25FCE
+0x342D 0x42CF
+0x342E 0x42C8
+0x342F 0x25FC9
+0x3430 0x42CD
+0x3431 0x25FCB
+0x3432 0x25FC5
+0x3433 0x4349
+0x3434 0x4347
+0x3435 0x4358
+0x3436-0x3437 0x436B
+0x3438 0x436A
+0x3439 0x26369
+0x343A 0x4380
+0x343B 0x4382
+0x343C 0x4384
+0x343D 0x7FC8
+0x343E 0x4383
+0x343F 0x2641E
+0x3440 0x264BA
+0x3441 0x43B6
+0x3442 0x26552
+0x3443 0x26551
+0x3444 0x26553
+0x3445 0x2669F
+0x3446 0x266DB
+0x3447 0x8126
+0x3448 0x43F1
+0x3449 0x266E3
+0x344A 0x43F6
+0x344B 0x43F3
+0x344C 0x43F0
+0x344D 0x811C
+0x344E 0x266D7
+0x344F 0x266E9
+0x3450 0x8128
+0x3451 0x43F5
+0x3452 0x43F4
+0x3453 0x43F7
+0x3454 0x266DE
+0x3455 0x266DC
+0x3456 0x2693C
+0x3457 0x2F98B
+0x3458 0x4455
+0x3459 0x26A22
+0x345A 0x26A32
+0x345B 0x26A23
+0x345C 0x448B
+0x345D 0x44CB
+0x345E 0x44C2
+0x345F 0x26BD4
+0x3460 0x26BC8
+0x3461 0x26BBC
+0x3462 0x44CA
+0x3463 0x44CC
+0x3464 0x26BCD
+0x3465 0x44C7
+0x3466 0x44C9
+0x3467 0x8370
+0x3468 0x26BBE
+0x3469 0x44C6
+0x346A 0x26C40
+0x346B 0x26BD6
+0x346C 0x44C3
+0x346D 0x8382
+0x346E 0x26BBD
+0x346F 0x83AC
+0x3470 0x26BBA
+0x3471 0x44C4
+0x3472 0x26BC0
+0x3473 0x2F99B
+0x3474 0x2F99D
+0x3475 0x26BC1
+0x3476 0x271A6
+0x3477 0x271A5
+0x3478 0x271A8
+0x3479 0x45A9
+0x347A 0x86AD
+0x347B 0x45A8
+0x347C 0x45A6
+0x347D 0x2725F
+0x347E 0x27270
+0x3521 0x2726A
+0x3522 0x27265
+0x3523 0x27267
+0x3524 0x2726F
+0x3525 0x27287
+0x3526 0x86CA
+0x3527 0x8851
+0x3528 0x2763D
+0x3529 0x27643
+0x352A 0x4622
+0x352B 0x27640
+0x352C 0x4626
+0x352D-0x352E 0x4624
+0x352F 0x889D
+0x3530 0x462A
+0x3531 0x4674
+0x3532 0x27818
+0x3533 0x4679
+0x3534 0x8990
+0x3535 0x467A
+0x3536 0x27819
+0x3537 0x278C1
+0x3538 0x89D8
+0x3539 0x89D7
+0x353A 0x4697
+0x353B 0x278BC
+0x353C 0x278C8
+0x353D 0x8A2E
+0x353E 0x27971
+0x353F 0x46BC
+0x3540 0x2796E
+0x3541 0x46B3
+0x3542 0x27978
+0x3543 0x46BF
+0x3544 0x46B7
+0x3545 0x2F9CD
+0x3546 0x2797A
+0x3547 0x27BB1
+0x3548-0x3549 0x27BAF
+0x354A 0x4734
+0x354B 0x4746
+0x354C 0x4748
+0x354D 0x8C59
+0x354E 0x27CA8
+0x354F 0x27CA6
+0x3550 0x4756
+0x3551 0x4767
+0x3552 0x27D48
+0x3553 0x27D45
+0x3554 0x4768
+0x3555-0x3556 0x4799
+0x3557 0x27EA0
+0x3558 0x27EA4
+0x3559 0x47D8
+0x355A 0x27FD4
+0x355B-0x355D 0x47DB
+0x355E 0x47D7
+0x355F 0x27FD2
+0x3560 0x28222
+0x3561-0x3562 0x4849
+0x3563 0x8EDA
+0x3564 0x282B7
+0x3565 0x282CC
+0x3566 0x9033
+0x3567 0x284E6
+0x3568 0x9018
+0x3569 0x489A
+0x356A 0x284C8
+0x356B 0x48CD
+0x356C 0x48CA
+0x356D 0x286F4
+0x356E 0x48CB
+0x356F 0x286ED
+0x3570 0x48CF
+0x3571 0x2867E
+0x3572 0x2F9E3
+0x3573 0x48CC
+0x3574 0x48EA
+0x3575 0x48ED
+0x3576 0x287F9
+0x3577 0x287FD
+0x3578 0x48E9
+0x3579 0x28807
+0x357A 0x491A
+0x357B 0x91EF
+0x357C 0x498D
+0x357D 0x49D2
+0x357E 0x28E78
+0x3621 0x28E7A
+0x3622 0x28E79
+0x3623 0x28F8A
+0x3624 0x49F2
+0x3625 0x2907B
+0x3626 0x291D5
+0x3627 0x291E9
+0x3628 0x4A3D
+0x3629 0x291EB
+0x362A 0x4A3E
+0x362B 0x4AF8
+0x362C 0x4B23
+0x362D 0x9AD9
+0x362E 0x4EB4
+0x362F 0x2016C
+0x3630 0x50A0
+0x3631 0x5090
+0x3632 0x3475
+0x3633 0x5086
+0x3634 0x5084
+0x3635 0x202FA
+0x3636 0x508A
+0x3637 0x3476
+0x3638 0x3473
+0x3639 0x509F
+0x363A 0x50A1
+0x363B 0x20318
+0x363C 0x5093
+0x363D 0x34BD
+0x363E 0x205F6
+0x363F 0x51D5
+0x3640 0x2078A
+0x3641 0x20789
+0x3642 0x34F9
+0x3643 0x2077F
+0x3644 0x20788
+0x3645 0x34FA
+0x3646-0x3647 0x20783
+0x3648 0x20798
+0x3649 0x20763
+0x364A 0x20787
+0x364B 0x3521
+0x364C 0x2F827
+0x364D 0x3529
+0x364E 0x208F5
+0x364F 0x20950
+0x3650 0x3538
+0x3651 0x354E
+0x3652 0x20A87
+0x3653 0x20A8A
+0x3654 0x20B65
+0x3655 0x20DB7
+0x3656 0x20DC1
+0x3657 0x20DC7
+0x3658 0x35C8
+0x3659 0x35BC
+0x365A 0x20DC5
+0x365B 0x20DCB
+0x365C 0x5590
+0x365D 0x20DD1
+0x365E 0x35BB
+0x365F 0x35C2
+0x3660 0x35C0
+0x3661 0x20DB8
+0x3662 0x20DCA
+0x3663 0x35CA
+0x3664 0x20DDE
+0x3665 0x35C9
+0x3666 0x20DCE
+0x3667 0x35B8
+0x3668 0x5710
+0x3669 0x5817
+0x366A 0x21368
+0x366B 0x364E
+0x366C 0x2136B
+0x366D 0x5844
+0x366E 0x3650
+0x366F 0x582B
+0x3670 0x2136A
+0x3671 0x5845
+0x3672 0x21366
+0x3673 0x21377
+0x3674 0x21396
+0x3675 0x2136E
+0x3676 0x2F856
+0x3677 0x368A
+0x3678 0x21657
+0x3679 0x5965
+0x367A 0x21656
+0x367B 0x2179C
+0x367C 0x2179E
+0x367D 0x36FC
+0x367E 0x36F9
+0x3721 0x217A1
+0x3722 0x3763
+0x3723 0x21A42
+0x3724 0x5BCF
+0x3725 0x21A46
+0x3726 0x21A3E
+0x3727 0x21B33
+0x3728-0x3729 0x3787
+0x372A 0x21BFA
+0x372B 0x379A
+0x372C 0x21C97
+0x372D 0x21C9B
+0x372E 0x21CAA
+0x372F 0x5D56
+0x3730 0x21E73
+0x3731 0x21E7C
+0x3732 0x37E9
+0x3733 0x21E86
+0x3734 0x37EA
+0x3735 0x5D54
+0x3736 0x3850
+0x3737 0x220F3
+0x3738 0x220F0
+0x3739 0x3856
+0x373A 0x3852
+0x373B 0x384F
+0x373C 0x3854
+0x373D 0x3851
+0x373E 0x220EC
+0x373F 0x222AF
+0x3740-0x3741 0x388E
+0x3742 0x22264
+0x3743 0x22268
+0x3744 0x2235A
+0x3745 0x5F3D
+0x3746 0x2251F
+0x3747 0x22525
+0x3748 0x38ED
+0x3749 0x38EB
+0x374A 0x5FA4
+0x374B 0x226C6
+0x374C 0x226D6
+0x374D 0x226C3
+0x374E 0x3962
+0x374F 0x2272C
+0x3750 0x395D
+0x3751 0x2272E
+0x3752 0x2275E
+0x3753 0x22733
+0x3754 0x3961
+0x3755 0x3965
+0x3756 0x395C
+0x3757 0x2272D
+0x3758 0x22746
+0x3759 0x395F
+0x375A 0x226C1
+0x375B 0x2273A
+0x375C 0x229CC
+0x375D 0x22B9D
+0x375E 0x22B83
+0x375F 0x22BF6
+0x3760 0x63EC
+0x3761 0x3A16
+0x3762 0x3A0A
+0x3763 0x22BF8
+0x3764 0x3A0E
+0x3765 0x3A12
+0x3766 0x22BFE
+0x3767 0x22BF3
+0x3768 0x3A11
+0x3769 0x22BEB
+0x376A 0x22BFA
+0x376B 0x3A10
+0x376C 0x22C07
+0x376D 0x22BFC
+0x376E 0x3A09
+0x376F 0x63FA
+0x3770 0x3A15
+0x3771 0x63D4
+0x3772-0x3774 0x22F72
+0x3775 0x3A91
+0x3776 0x3A95
+0x3777 0x3A93
+0x3778 0x3A92
+0x3779 0x3A8F
+0x377A-0x377B 0x22F5F
+0x377C 0x230AA
+0x377D 0x23134
+0x377E 0x3AF6
+0x3821 0x231B4
+0x3822 0x3AFB
+0x3823 0x231F0
+0x3824 0x6675
+0x3825 0x3AF9
+0x3826 0x2320D
+0x3827 0x231F3
+0x3828 0x2320F
+0x3829 0x671C
+0x382A 0x3B7D
+0x382B 0x234C9
+0x382C 0x3B7A
+0x382D 0x3B7F
+0x382E 0x234C5
+0x382F 0x3B78
+0x3830 0x234D7
+0x3831 0x234CC
+0x3832 0x68D9
+0x3833 0x234E7
+0x3834 0x3B70
+0x3835 0x3B82
+0x3836 0x234C1
+0x3837 0x3B84
+0x3838 0x234E8
+0x3839 0x3C33
+0x383A 0x238CB
+0x383B 0x3C32
+0x383C 0x3C36
+0x383D 0x238C8
+0x383E 0x2397A
+0x383F 0x3C56
+0x3840 0x23979
+0x3841 0x2397E
+0x3842 0x3C67
+0x3843 0x23A1B
+0x3844 0x3C65
+0x3845 0x3C64
+0x3846 0x3C66
+0x3847 0x23A1F
+0x3848 0x23A19
+0x3849-0x384B 0x3C81
+0x384C 0x3C9E
+0x384D 0x23B89
+0x384E 0x6BF1
+0x384F 0x3C9D
+0x3850 0x23B8B
+0x3851 0x3D0F
+0x3852 0x3D12
+0x3853 0x23E09
+0x3854 0x23DFE
+0x3855 0x23E00
+0x3856 0x3D10
+0x3857 0x3D18
+0x3858 0x23E0B
+0x3859 0x3D14
+0x385A 0x3D19
+0x385B 0x6E37
+0x385C 0x6E7C
+0x385D 0x23E4A
+0x385E 0x6E7D
+0x385F 0x6E86
+0x3860 0x3DC8
+0x3861 0x3DC4
+0x3862 0x3DC6
+0x3863 0x24279
+0x3864 0x3DC7
+0x3865 0x3DC3
+0x3866 0x2426C
+0x3867 0x24299
+0x3868 0x2F91B
+0x3869 0x24262
+0x386A 0x24514
+0x386B 0x3E19
+0x386C 0x3E1C
+0x386D 0x245C8
+0x386E 0x245D7
+0x386F 0x2460C
+0x3870 0x3E41
+0x3871 0x24670
+0x3872-0x3873 0x3E42
+0x3874 0x24671
+0x3875 0x247DF
+0x3876 0x247E4
+0x3877 0x3E82
+0x3878 0x247E7
+0x3879 0x3E81
+0x387A 0x3E94
+0x387B 0x3E84
+0x387C 0x24990
+0x387D 0x3ED2
+0x387E 0x3F0F
+0x3921 0x3F22
+0x3922 0x24B4C
+0x3923 0x3F27
+0x3924 0x3F2A
+0x3925 0x74FA
+0x3926 0x3F28
+0x3927 0x24B4F
+0x3928 0x3F60
+0x3929-0x392A 0x24C7D
+0x392B 0x24C7C
+0x392C 0x7572
+0x392D 0x24C8D
+0x392E 0x24D19
+0x392F-0x3930 0x3F9B
+0x3931 0x24DC0
+0x3932-0x3933 0x3F93
+0x3934 0x75DC
+0x3935 0x3FA0
+0x3936 0x3F99
+0x3937 0x24DB6
+0x3938 0x3FA1
+0x3939 0x24DA8
+0x393A 0x3FF1
+0x393B 0x24FEB
+0x393C 0x24FE7
+0x393D 0x2506F
+0x393E 0x251C7
+0x393F 0x4036
+0x3940 0x2519F
+0x3941 0x4037
+0x3942 0x403F
+0x3943 0x403C
+0x3944 0x251C4
+0x3945 0x4034
+0x3946 0x4039
+0x3947 0x403B
+0x3948 0x4035
+0x3949 0x4030
+0x394A 0x4032
+0x394B 0x4038
+0x394C 0x403E
+0x394D 0x403A
+0x394E 0x2519B
+0x394F 0x25197
+0x3950 0x251C5
+0x3951 0x2536B
+0x3952 0x253CE
+0x3953 0x40B6
+0x3954 0x7867
+0x3955 0x254B1
+0x3956 0x254AE
+0x3957 0x254B0
+0x3958 0x40B3
+0x3959 0x4109
+0x395A 0x7977
+0x395B 0x2573E
+0x395C 0x257B5
+0x395D 0x257BA
+0x395E 0x414C
+0x395F 0x257B2
+0x3960 0x257B4
+0x3961 0x4153
+0x3962 0x414D
+0x3963 0x4151
+0x3964 0x414F
+0x3965 0x7A9B
+0x3966 0x25977
+0x3967 0x41A2
+0x3968 0x25986
+0x3969 0x2597B
+0x396A 0x41CD
+0x396B 0x25A7E
+0x396C 0x25B2E
+0x396D 0x41E7
+0x396E 0x25B2F
+0x396F 0x41F0
+0x3970 0x25B37
+0x3971 0x41E9
+0x3972 0x41EC
+0x3973 0x25B32
+0x3974 0x41E8
+0x3975 0x41EE
+0x3976 0x4202
+0x3977 0x25B36
+0x3978 0x25B39
+0x3979 0x25B35
+0x397A 0x25E5C
+0x397B-0x397C 0x4282
+0x397D 0x4286
+0x397E 0x25E7B
+0x3A21 0x25E61
+0x3A22 0x25FEE
+0x3A23 0x25FEB
+0x3A24 0x25FEF
+0x3A25 0x26020
+0x3A26 0x7D2A
+0x3A27 0x7D65
+0x3A28 0x434A
+0x3A29 0x26230
+0x3A2A 0x435A
+0x3A2B 0x7F64
+0x3A2C 0x262BE
+0x3A2D 0x436E
+0x3A2E 0x26367
+0x3A2F 0x2637C
+0x3A30 0x4370
+0x3A31 0x436F
+0x3A32 0x26424
+0x3A33 0x438A
+0x3A34-0x3A35 0x4387
+0x3A36 0x26429
+0x3A37 0x264EF
+0x3A38 0x8020
+0x3A39 0x43B7
+0x3A3A 0x43FD
+0x3A3B 0x8120
+0x3A3C 0x2670D
+0x3A3D 0x4405
+0x3A3E 0x813C
+0x3A3F 0x4408
+0x3A40 0x4403
+0x3A41 0x4402
+0x3A42 0x4404
+0x3A43 0x3B39
+0x3A44 0x4409
+0x3A45 0x43FF
+0x3A46 0x26764
+0x3A47 0x813F
+0x3A48 0x26715
+0x3A49 0x43FC
+0x3A4A 0x4401
+0x3A4B 0x440A
+0x3A4C 0x81F0
+0x3A4D 0x81F5
+0x3A4E-0x3A4F 0x446B
+0x3A50-0x3A51 0x26A35
+0x3A52 0x26A34
+0x3A53 0x26A37
+0x3A54 0x26C47
+0x3A55 0x26C2B
+0x3A56 0x44DE
+0x3A57 0x26C41
+0x3A58 0x26C43
+0x3A59 0x44DB
+0x3A5A 0x26C42
+0x3A5B 0x44DD
+0x3A5C 0x44E3
+0x3A5D 0x26C32
+0x3A5E 0x44E0
+0x3A5F 0x44D9
+0x3A60 0x44D8
+0x3A61 0x44E4
+0x3A62 0x26C44
+0x3A63 0x26C4A
+0x3A64 0x44DA
+0x3A65 0x44EF
+0x3A66 0x2F9A0
+0x3A67 0x8415
+0x3A68 0x83BE
+0x3A69 0x26C54
+0x3A6A 0x26C6E
+0x3A6B 0x26C52
+0x3A6C 0x44D7
+0x3A6D 0x45B3
+0x3A6E 0x45BB
+0x3A6F 0x86E5
+0x3A70 0x45B2
+0x3A71 0x86D2
+0x3A72 0x45AD
+0x3A73 0x27292
+0x3A74 0x45AF
+0x3A75 0x2F9B8
+0x3A76 0x86E0
+0x3A77 0x272BF
+0x3A78 0x4616
+0x3A79 0x4628
+0x3A7A 0x4623
+0x3A7B 0x88B3
+0x3A7C 0x27641
+0x3A7D 0x27669
+0x3A7E 0x27665
+0x3B21 0x4675
+0x3B22 0x467E
+0x3B23 0x467C
+0x3B24 0x27822
+0x3B25 0x2781D
+0x3B26 0x278D2
+0x3B27-0x3B28 0x278DA
+0x3B29 0x46CE
+0x3B2A 0x46CD
+0x3B2B 0x46CF
+0x3B2C 0x8A53
+0x3B2D 0x279A4
+0x3B2E 0x2799E
+0x3B2F 0x8A37
+0x3B30 0x8A47
+0x3B31 0x8A5C
+0x3B32 0x2799D
+0x3B33 0x46C4
+0x3B34 0x46CC
+0x3B35 0x46C8
+0x3B36 0x46C7
+0x3B37 0x279AD
+0x3B38-0x3B39 0x279A6
+0x3B3A 0x27BB3
+0x3B3B 0x27BE0
+0x3B3C 0x27C35
+0x3B3D 0x27C37
+0x3B3E 0x475A
+0x3B3F 0x476A
+0x3B40 0x27D4A
+0x3B41 0x476B
+0x3B42 0x476D
+0x3B43 0x476F
+0x3B44 0x27E5E
+0x3B45 0x479E
+0x3B46 0x27EC0
+0x3B47 0x47A4
+0x3B48 0x47A3
+0x3B49 0x47E4
+0x3B4A-0x3B4B 0x47E8
+0x3B4C 0x47E0
+0x3B4D 0x47E3
+0x3B4E 0x27FF9
+0x3B4F 0x47EA
+0x3B50 0x47E1
+0x3B51 0x47ED
+0x3B52-0x3B53 0x4834
+0x3B54 0x4851
+0x3B55 0x8EF0
+0x3B56 0x284F0
+0x3B57 0x489D
+0x3B58 0x284F3
+0x3B59 0x2851B
+0x3B5A 0x284F2
+0x3B5B 0x284FB
+0x3B5C 0x2871C
+0x3B5D 0x28713
+0x3B5E 0x48D0
+0x3B5F 0x2870F
+0x3B60 0x48EE
+0x3B61 0x28816
+0x3B62-0x3B63 0x28811
+0x3B64 0x48F2
+0x3B65 0x2880E
+0x3B66 0x921D
+0x3B67 0x4988
+0x3B68 0x28C67
+0x3B69 0x28CF2
+0x3B6A 0x28CDA
+0x3B6B 0x498F
+0x3B6C 0x28CDC
+0x3B6D 0x49D8
+0x3B6E 0x28F94
+0x3B6F 0x28F9B
+0x3B70 0x28F92
+0x3B71 0x28F9A
+0x3B72 0x29088
+0x3B73 0x29086
+0x3B74 0x4A3F
+0x3B75 0x291EF
+0x3B76 0x4A52
+0x3B77 0x976B
+0x3B78 0x2925E
+0x3B79 0x4A50
+0x3B7A 0x29458
+0x3B7B 0x4AB1
+0x3B7C 0x29456
+0x3B7D 0x29454
+0x3B7E 0x4AF9
+0x3C21 0x2959B
+0x3C22 0x29696
+0x3C23 0x296A4
+0x3C24 0x4B26
+0x3C25 0x4B28
+0x3C26 0x2969A
+0x3C27 0x29A12
+0x3C28 0x3480
+0x3C29 0x50C0
+0x3C2A 0x3481
+0x3C2B 0x2036B
+0x3C2C-0x3C2D 0x347E
+0x3C2E 0x20337
+0x3C2F 0x2033C
+0x3C30 0x2F80A
+0x3C31 0x204F7
+0x3C32 0x34BE
+0x3C33 0x20566
+0x3C34 0x34D6
+0x3C35 0x207A9
+0x3C36 0x207AE
+0x3C37 0x207AD
+0x3C38 0x207C8
+0x3C39 0x207A5
+0x3C3A 0x207B0
+0x3C3B 0x20895
+0x3C3C 0x52E5
+0x3C3D 0x20925
+0x3C3E 0x3534
+0x3C3F 0x20A99
+0x3C40 0x53AF
+0x3C41 0x20B74
+0x3C42 0x20B70
+0x3C43 0x20B6F
+0x3C44 0x20E41
+0x3C45 0x20E54
+0x3C46 0x35D5
+0x3C47 0x35D8
+0x3C48 0x20E40
+0x3C49 0x20E38
+0x3C4A 0x35D4
+0x3C4B 0x55D8
+0x3C4C 0x35D9
+0x3C4D 0x20E52
+0x3C4E 0x20E3A
+0x3C4F 0x20E57
+0x3C50 0x2F84A
+0x3C51 0x20E59
+0x3C52 0x5711
+0x3C53 0x5867
+0x3C54 0x213B4
+0x3C55 0x213C0
+0x3C56 0x365D
+0x3C57 0x5843
+0x3C58 0x365E
+0x3C59 0x3659
+0x3C5A 0x21375
+0x3C5B 0x365A
+0x3C5C 0x36A0
+0x3C5D 0x21660
+0x3C5E 0x21647
+0x3C5F 0x3705
+0x3C60 0x217F0
+0x3C61 0x3707
+0x3C62 0x217EF
+0x3C63 0x370E
+0x3C64 0x370C
+0x3C65 0x217EC
+0x3C66 0x21983
+0x3C67 0x3745
+0x3C68 0x21984
+0x3C69 0x2198F
+0x3C6A 0x3764
+0x3C6B 0x21A61
+0x3C6C 0x3765
+0x3C6D 0x21A69
+0x3C6E 0x5BDD
+0x3C6F 0x3766
+0x3C70 0x21A62
+0x3C71 0x3789
+0x3C72 0x37EC
+0x3C73 0x37F1
+0x3C74 0x5D70
+0x3C75 0x5D6A
+0x3C76 0x37F0
+0x3C77 0x37F8
+0x3C78 0x5D74
+0x3C79 0x5D5F
+0x3C7A 0x21EAE
+0x3C7B 0x5D61
+0x3C7C 0x5D73
+0x3C7D 0x21EB2
+0x3C7E 0x37F2
+0x3D21 0x37F4
+0x3D22 0x2210B
+0x3D23 0x3858
+0x3D24 0x22110
+0x3D25 0x2210D
+0x3D26 0x385A
+0x3D27 0x3859
+0x3D28 0x3857
+0x3D29 0x385B
+0x3D2A 0x5E50
+0x3D2B 0x2227F
+0x3D2C 0x22281
+0x3D2D 0x38A6
+0x3D2E 0x38C2
+0x3D2F 0x38C1
+0x3D30 0x5F3F
+0x3D31 0x2240B
+0x3D32 0x2254E
+0x3D33 0x38EF
+0x3D34 0x5FB0
+0x3D35 0x227EA
+0x3D36 0x22745
+0x3D37 0x3968
+0x3D38 0x6135
+0x3D39 0x612D
+0x3D3A 0x3973
+0x3D3B 0x396E
+0x3D3C 0x3974
+0x3D3D 0x6102
+0x3D3E 0x3966
+0x3D3F 0x22728
+0x3D40 0x2275D
+0x3D41 0x229DC
+0x3D42 0x39B9
+0x3D43 0x6226
+0x3D44 0x229D4
+0x3D45 0x3A0C
+0x3D46 0x22C64
+0x3D47 0x22C68
+0x3D48 0x3A20
+0x3D49 0x22C62
+0x3D4A 0x3A1D
+0x3D4B 0x22C61
+0x3D4C 0x3A1C
+0x3D4D 0x22C66
+0x3D4E 0x3A21
+0x3D4F 0x3A1A
+0x3D50 0x3A19
+0x3D51 0x22BF2
+0x3D52 0x22C69
+0x3D53 0x22C67
+0x3D54 0x3A7E
+0x3D55-0x3D56 0x22F9A
+0x3D57 0x22F85
+0x3D58 0x22F9C
+0x3D59 0x3A9D
+0x3D5A 0x22FA4
+0x3D5B 0x3A9E
+0x3D5C 0x3A9C
+0x3D5D 0x656E
+0x3D5E 0x22F99
+0x3D5F 0x22F86
+0x3D60 0x22F90
+0x3D61 0x23081
+0x3D62 0x230AE
+0x3D63 0x65B1
+0x3D64 0x65D4
+0x3D65 0x3ACD
+0x3D66 0x23138
+0x3D67 0x3B0B
+0x3D68 0x3B0A
+0x3D69 0x6685
+0x3D6A 0x2353B
+0x3D6B 0x3B8F
+0x3D6C 0x6972
+0x3D6D 0x3B95
+0x3D6E-0x3D6F 0x3B90
+0x3D70 0x2354C
+0x3D71 0x693A
+0x3D72 0x3BB9
+0x3D73 0x23547
+0x3D74 0x23535
+0x3D75 0x3B97
+0x3D76 0x3B9E
+0x3D77 0x23533
+0x3D78 0x3B8B
+0x3D79 0x23582
+0x3D7A 0x23540
+0x3D7B 0x3C3B
+0x3D7C 0x3C3A
+0x3D7D-0x3D7E 0x3C3C
+0x3E21 0x3C39
+0x3E22 0x3C3E
+0x3E23-0x3E24 0x3C6B
+0x3E25 0x23A36
+0x3E26 0x23B0E
+0x3E27 0x3CA2
+0x3E28 0x3CA1
+0x3E29 0x3C9F
+0x3E2A 0x23BAD
+0x3E2B 0x23BAA
+0x3E2C 0x23E17
+0x3E2D 0x3D2D
+0x3E2E 0x23E67
+0x3E2F 0x3D36
+0x3E30 0x3D2B
+0x3E31 0x23E72
+0x3E32 0x3D37
+0x3E33 0x2F90A
+0x3E34 0x23E61
+0x3E35 0x23EB0
+0x3E36 0x6EAD
+0x3E37 0x3D25
+0x3E38 0x3D2F
+0x3E39 0x3D2C
+0x3E3A 0x23E6E
+0x3E3B 0x23E64
+0x3E3C 0x3D32
+0x3E3D 0x23E8C
+0x3E3E 0x23E66
+0x3E3F 0x6E95
+0x3E40 0x23E6B
+0x3E41 0x23E5F
+0x3E42 0x23E74
+0x3E43 0x23E65
+0x3E44 0x242BB
+0x3E45 0x242BE
+0x3E46 0x3DD5
+0x3E47 0x242B9
+0x3E48 0x3DD4
+0x3E49 0x3DD6
+0x3E4A 0x242EF
+0x3E4B 0x3DD1
+0x3E4C 0x7243
+0x3E4D 0x245DA
+0x3E4E 0x3E46
+0x3E4F 0x728F
+0x3E50 0x24690
+0x3E51 0x247E9
+0x3E52 0x3E8C
+0x3E53 0x3E8A
+0x3E54 0x3E88
+0x3E55 0x24811
+0x3E56 0x2480D
+0x3E57 0x247ED
+0x3E58 0x24821
+0x3E59 0x3EDD
+0x3E5A 0x24981
+0x3E5B 0x249B1
+0x3E5C 0x24B01
+0x3E5D 0x3F2D
+0x3E5E 0x24B5E
+0x3E5F 0x24B62
+0x3E60 0x3F2E
+0x3E61 0x3F2C
+0x3E62 0x3F2B
+0x3E63 0x3F30
+0x3E64 0x24B5B
+0x3E65 0x3F4E
+0x3E66 0x24C96
+0x3E67 0x24C93
+0x3E68 0x3F64
+0x3E69 0x3F61
+0x3E6A 0x24C92
+0x3E6B 0x7575
+0x3E6C 0x2F939
+0x3E6D 0x3F70
+0x3E6E 0x3FA6
+0x3E6F 0x3FA4
+0x3E70 0x24DC4
+0x3E71 0x24DC7
+0x3E72 0x24DC3
+0x3E73 0x3FA8
+0x3E74 0x3FA2
+0x3E75 0x24DC8
+0x3E76 0x3FA7
+0x3E77 0x75EC
+0x3E78 0x3FA5
+0x3E79 0x24DCA
+0x3E7A 0x3FA9
+0x3E7B 0x24DC5
+0x3E7C 0x24DCF
+0x3E7D 0x24DDC
+0x3E7E 0x24F7C
+0x3F21 0x25001
+0x3F22 0x403D
+0x3F23 0x251D3
+0x3F24 0x251DC
+0x3F25-0x3F27 0x4044
+0x3F28 0x251D4
+0x3F29 0x7757
+0x3F2A 0x251CC
+0x3F2B-0x3F2C 0x4047
+0x3F2D 0x4042
+0x3F2E 0x251D6
+0x3F2F 0x251DB
+0x3F30 0x4041
+0x3F31 0x251D5
+0x3F32 0x253D9
+0x3F33 0x4094
+0x3F34 0x253DD
+0x3F35 0x253DC
+0x3F36 0x253E0
+0x3F37 0x254CC
+0x3F38 0x40C0
+0x3F39 0x40B8
+0x3F3A-0x3F3B 0x40C1
+0x3F3C 0x40BB
+0x3F3D 0x40BD
+0x3F3E 0x40BF
+0x3F3F 0x40B9
+0x3F40 0x40B7
+0x3F41 0x254D2
+0x3F42 0x40C7
+0x3F43 0x254D3
+0x3F44 0x410C
+0x3F45 0x410B
+0x3F46 0x797B
+0x3F47 0x4110
+0x3F48 0x2568D
+0x3F49 0x415D
+0x3F4A 0x7A21
+0x3F4B 0x415A
+0x3F4C 0x4158
+0x3F4D 0x4156
+0x3F4E 0x257D8
+0x3F4F 0x4154
+0x3F50 0x7A16
+0x3F51 0x257BC
+0x3F52 0x41A8
+0x3F53 0x41A7
+0x3F54-0x3F55 0x41CF
+0x3F56 0x25A8A
+0x3F57 0x7AE8
+0x3F58 0x25A8B
+0x3F59 0x25A8D
+0x3F5A 0x41D1
+0x3F5B 0x41EB
+0x3F5C 0x25B53
+0x3F5D 0x41FB
+0x3F5E 0x7B6A
+0x3F5F 0x25B59
+0x3F60 0x41FD
+0x3F61 0x41F8
+0x3F62 0x41F7
+0x3F63 0x4200
+0x3F64-0x3F65 0x25B56
+0x3F66 0x41F6
+0x3F67 0x7B5F
+0x3F68 0x25E73
+0x3F69 0x2601B
+0x3F6A 0x42DF
+0x3F6B 0x26021
+0x3F6C 0x26016
+0x3F6D 0x26018
+0x3F6E 0x42E2
+0x3F6F 0x42E4
+0x3F70 0x26044
+0x3F71 0x7D82
+0x3F72 0x26026
+0x3F73 0x42E3
+0x3F74 0x26236
+0x3F75 0x4359
+0x3F76 0x4371
+0x3F77 0x438E
+0x3F78 0x438C
+0x3F79 0x2643A
+0x3F7A 0x43A4
+0x3F7B 0x264F4
+0x3F7C 0x8055
+0x3F7D 0x4414
+0x3F7E 0x26762
+0x4021 0x2675B
+0x4022 0x2676A
+0x4023 0x4411
+0x4024 0x26768
+0x4025 0x441B
+0x4026 0x4412
+0x4027 0x440E
+0x4028 0x4415
+0x4029 0x8168
+0x402A 0x4410
+0x402B 0x26781
+0x402C 0x4417
+0x402D 0x8246
+0x402E 0x8243
+0x402F 0x4470
+0x4030 0x44ED
+0x4031 0x26CE7
+0x4032 0x44EE
+0x4033 0x26CE6
+0x4034 0x26CD1
+0x4035 0x26D11
+0x4036 0x8481
+0x4037 0x26CD0
+0x4038 0x26CD9
+0x4039 0x26D0A
+0x403A 0x44F4
+0x403B 0x26CDA
+0x403C 0x26CDD
+0x403D 0x26CC8
+0x403E 0x26CE2
+0x403F 0x26CE9
+0x4040 0x26CCB
+0x4041 0x847C
+0x4042 0x26CCC
+0x4043 0x26CC1
+0x4044 0x846A
+0x4045 0x26CDE
+0x4046 0x8488
+0x4047 0x44F2
+0x4048 0x44F8
+0x4049 0x44F3
+0x404A 0x26D51
+0x404B 0x26D12
+0x404C 0x44FA
+0x404D 0x26CE0
+0x404E 0x26D2B
+0x404F 0x2F9B4
+0x4050 0x272D8
+0x4051 0x272D1
+0x4052 0x8710
+0x4053 0x272D2
+0x4054 0x272CD
+0x4055 0x871F
+0x4056-0x4057 0x45B6
+0x4058 0x2733D
+0x4059 0x870F
+0x405A 0x272CA
+0x405B 0x45BA
+0x405C 0x272CB
+0x405D 0x45BC
+0x405E 0x272D7
+0x405F 0x275F4
+0x4060 0x463B
+0x4061 0x88D3
+0x4062 0x462F
+0x4063 0x27687
+0x4064 0x2768B
+0x4065 0x27683
+0x4066 0x4637
+0x4067 0x4699
+0x4068 0x279C5
+0x4069 0x279D2
+0x406A 0x279C6
+0x406B 0x279D3
+0x406C 0x46D9
+0x406D 0x46D8
+0x406E 0x46D7
+0x406F 0x279F0
+0x4070 0x279CD
+0x4071 0x279CC
+0x4072 0x279DC
+0x4073 0x279D6
+0x4074 0x4736
+0x4075 0x27BE6
+0x4076 0x27C41
+0x4077 0x27C3F
+0x4078 0x8C87
+0x4079 0x27CC5
+0x407A 0x27CC0
+0x407B 0x27CC6
+0x407C-0x407D 0x27CBE
+0x407E 0x8CC6
+0x4121 0x4770
+0x4122 0x27D63
+0x4123 0x27ED3
+0x4124 0x27EDA
+0x4125 0x27ED5
+0x4126-0x4127 0x47A5
+0x4128 0x47A9
+0x4129 0x47EE
+0x412A 0x4854
+0x412B 0x282EE
+0x412C 0x4857
+0x412D 0x282FC
+0x412E 0x28414
+0x412F 0x48A1
+0x4130 0x28523
+0x4131 0x28522
+0x4132 0x28530
+0x4133 0x286B5
+0x4134 0x48D3
+0x4135 0x28738
+0x4136 0x48D4
+0x4137 0x2873F
+0x4138 0x48D7
+0x4139 0x90CC
+0x413A 0x916D
+0x413B 0x9170
+0x413C 0x48F7
+0x413D 0x48F6
+0x413E 0x48F9
+0x413F 0x48F8
+0x4140 0x9258
+0x4141 0x9242
+0x4142-0x4143 0x9268
+0x4144 0x28968
+0x4145 0x28967
+0x4146 0x9243
+0x4147 0x28965
+0x4148 0x9247
+0x4149 0x498A
+0x414A 0x28C75
+0x414B 0x28CF7
+0x414C 0x28CF3
+0x414D 0x28CF6
+0x414E 0x4994
+0x414F 0x28D00
+0x4150 0x4993
+0x4151 0x28CFF
+0x4152 0x28CF5
+0x4153 0x959D
+0x4154 0x49DD
+0x4155 0x49DC
+0x4156 0x49F7
+0x4157 0x96CF
+0x4158 0x29092
+0x4159 0x29206
+0x415A 0x4A42
+0x415B 0x29207
+0x415C 0x2926B
+0x415D 0x4A54
+0x415E 0x2926C
+0x415F 0x4A55
+0x4160 0x29393
+0x4161 0x4A8F
+0x4162 0x29394
+0x4163 0x97F4
+0x4164 0x4AB4
+0x4165 0x4AB3
+0x4166-0x4167 0x29462
+0x4168 0x9809
+0x4169 0x2945F
+0x416A 0x29464
+0x416B 0x2945B
+0x416C 0x29459
+0x416D 0x4AFB
+0x416E 0x4AFD
+0x416F 0x295A4
+0x4170 0x295AC
+0x4171 0x98AB
+0x4172 0x4AFC
+0x4173 0x296B5
+0x4174 0x4B2C
+0x4175 0x4B2F
+0x4176 0x296AE
+0x4177 0x4B2B
+0x4178 0x296C5
+0x4179-0x417A 0x4B33
+0x417B 0x98FB
+0x417C 0x2983B
+0x417D 0x9AAC
+0x417E 0x9AAE
+0x4221 0x9AAA
+0x4222 0x4BE8
+0x4223 0x29ABF
+0x4224 0x29C2B
+0x4225 0x29C84
+0x4226 0x29C80
+0x4227 0x29D4D
+0x4228 0x29D4F
+0x4229 0x9B5C
+0x422A 0x29D4C
+0x422B 0x29F92
+0x422C 0x4D5D
+0x422D 0x50D2
+0x422E 0x3485
+0x422F 0x3488
+0x4230 0x203AE
+0x4231 0x20379
+0x4232 0x348E
+0x4233 0x3484
+0x4234 0x20371
+0x4235 0x50DF
+0x4236 0x203B3
+0x4237 0x3483
+0x4238 0x2032C
+0x4239 0x20377
+0x423A 0x2052F
+0x423B 0x207C3
+0x423C 0x3502
+0x423D 0x207CD
+0x423E 0x3506
+0x423F 0x3505
+0x4240 0x207C9
+0x4241 0x34FE
+0x4242 0x3501
+0x4243 0x3500
+0x4244 0x207CE
+0x4245 0x208A5
+0x4246 0x208A0
+0x4247 0x208FE
+0x4248 0x20959
+0x4249 0x20A9A
+0x424A 0x35E7
+0x424B 0x5619
+0x424C 0x20EE4
+0x424D 0x20ED7
+0x424E 0x20EDC
+0x424F 0x35E6
+0x4250 0x20EE7
+0x4251 0x35ED
+0x4252 0x35E2
+0x4253 0x35EB
+0x4254 0x20EE5
+0x4255 0x35E8
+0x4256 0x35EC
+0x4257 0x560A
+0x4258 0x3624
+0x4259 0x589A
+0x425A 0x21414
+0x425B 0x3662
+0x425C 0x213F1
+0x425D 0x3661
+0x425E 0x3660
+0x425F 0x3664
+0x4260 0x368B
+0x4261 0x215B6
+0x4262 0x2166E
+0x4263 0x2166C
+0x4264 0x21681
+0x4265 0x21842
+0x4266 0x3719
+0x4267 0x3716
+0x4268 0x3718
+0x4269 0x3722
+0x426A 0x2181A
+0x426B 0x371D
+0x426C 0x3717
+0x426D 0x371E
+0x426E 0x21827
+0x426F 0x21825
+0x4270 0x21817
+0x4271 0x2181C
+0x4272 0x2183D
+0x4273 0x21820
+0x4274-0x4275 0x3769
+0x4276 0x21A81
+0x4277 0x376C
+0x4278 0x377A
+0x4279 0x378A
+0x427A 0x21C09
+0x427B 0x21CC6
+0x427C 0x21CC4
+0x427D 0x379C
+0x427E 0x21CC5
+0x4321 0x37FD
+0x4322 0x37F9
+0x4323 0x21EEF
+0x4324 0x37FF
+0x4325 0x21EDF
+0x4326 0x21EDE
+0x4327 0x21EEE
+0x4328 0x21EF5
+0x4329 0x21EEC
+0x432A 0x37FC
+0x432B 0x21EDD
+0x432C 0x5D85
+0x432D 0x37FB
+0x432E 0x3802
+0x432F 0x385F
+0x4330 0x5E56
+0x4331 0x385E
+0x4332 0x385D
+0x4333 0x385C
+0x4334 0x22122
+0x4335 0x5E51
+0x4336 0x3892
+0x4337 0x22297
+0x4338 0x22295
+0x4339-0x433A 0x3894
+0x433B 0x38D1
+0x433C 0x224A9
+0x433D 0x38F1
+0x433E 0x22553
+0x433F 0x5FB1
+0x4340 0x22556
+0x4341 0x22555
+0x4342 0x3977
+0x4343 0x396F
+0x4344 0x227E3
+0x4345 0x227E2
+0x4346 0x3987
+0x4347 0x397D
+0x4348 0x397C
+0x4349 0x397E
+0x434A 0x3985
+0x434B 0x398B
+0x434C 0x3986
+0x434D 0x3980
+0x434E 0x6168
+0x434F 0x227A9
+0x4350 0x3978
+0x4351 0x2F8AB
+0x4352 0x22833
+0x4353 0x2280A
+0x4354 0x39BA
+0x4355 0x22A59
+0x4356 0x3A33
+0x4357 0x22CBC
+0x4358 0x3A2D
+0x4359 0x22CC4
+0x435A 0x22CC7
+0x435B 0x22CC6
+0x435C 0x3A37
+0x435D 0x645A
+0x435E 0x6463
+0x435F 0x22CB8
+0x4360 0x22CDA
+0x4361 0x3A2E
+0x4362 0x22CB7
+0x4363 0x22CC0
+0x4364 0x3A3D
+0x4365 0x22CCD
+0x4366 0x3AA0
+0x4367 0x22FBC
+0x4368 0x22FAB
+0x4369 0x3AA3
+0x436A 0x23086
+0x436B 0x669B
+0x436C 0x2325A
+0x436D 0x66A3
+0x436E 0x3B0E
+0x436F 0x669E
+0x4370 0x23343
+0x4371 0x3BB6
+0x4372 0x235AC
+0x4373 0x3BAB
+0x4374 0x3BAD
+0x4375 0x3BA6
+0x4376 0x235BE
+0x4377 0x69B8
+0x4378 0x3BAA
+0x4379 0x69BA
+0x437A 0x3BB1
+0x437B 0x235AB
+0x437C 0x3BA8
+0x437D-0x437E 0x3BAF
+0x4421 0x3BA7
+0x4422 0x3BB2
+0x4423 0x3B9D
+0x4424 0x3BA5
+0x4425 0x3BB5
+0x4426 0x21B3E
+0x4427 0x69C7
+0x4428 0x69D7
+0x4429 0x238F9
+0x442A 0x3C41
+0x442B 0x238F3
+0x442C 0x238F7
+0x442D 0x6B70
+0x442E 0x23A45
+0x442F 0x23A48
+0x4430 0x3C72
+0x4431 0x6B9D
+0x4432 0x3C6F
+0x4433 0x3C71
+0x4434 0x23A44
+0x4435 0x3C85
+0x4436 0x23AAF
+0x4437 0x23AB1
+0x4438-0x443A 0x3CA4
+0x443B 0x23BCF
+0x443C 0x3CA8
+0x443D 0x23BCB
+0x443E 0x23BCD
+0x443F 0x3CA3
+0x4440 0x23C50
+0x4441 0x23EEC
+0x4442 0x23F1A
+0x4443 0x6F16
+0x4444 0x6F24
+0x4445 0x23ED8
+0x4446 0x3D43
+0x4447-0x4448 0x23ED0
+0x4449 0x3D3D
+0x444A 0x3D45
+0x444B 0x23E7B
+0x444C 0x23ED2
+0x444D 0x3D44
+0x444E 0x23ED4
+0x444F 0x23EE7
+0x4450 0x23EDF
+0x4451 0x23EDE
+0x4452 0x6F45
+0x4453 0x23ED9
+0x4454 0x23ECF
+0x4455 0x2430D
+0x4456 0x3DE3
+0x4457 0x7179
+0x4458 0x7193
+0x4459 0x3DDF
+0x445A 0x3DE4
+0x445B 0x717A
+0x445C 0x3DE5
+0x445D 0x24338
+0x445E 0x7254
+0x445F 0x3E22
+0x4460 0x3E4A
+0x4461 0x246A9
+0x4462 0x3E49
+0x4463 0x3E44
+0x4464 0x3E4B
+0x4465 0x3E87
+0x4466 0x3E89
+0x4467 0x3E92
+0x4468 0x3E91
+0x4469 0x3E90
+0x446A 0x3E8E
+0x446B 0x2483E
+0x446C 0x24846
+0x446D 0x249ED
+0x446E 0x2F930
+0x446F 0x3F12
+0x4470-0x4471 0x3F10
+0x4472 0x24B6C
+0x4473 0x3F32
+0x4474 0x3F34
+0x4475 0x3F37
+0x4476 0x3F33
+0x4477 0x3F36
+0x4478 0x3F35
+0x4479 0x3F65
+0x447A 0x24CAC
+0x447B 0x757C
+0x447C 0x757B
+0x447D 0x24DC9
+0x447E 0x7612
+0x4521 0x3FB0
+0x4522 0x24E12
+0x4523 0x3FAF
+0x4524 0x3FAA
+0x4525 0x24DFD
+0x4526 0x24E01
+0x4527 0x24E11
+0x4528 0x3FAB
+0x4529 0x24E89
+0x452A 0x24E05
+0x452B 0x24DFE
+0x452C 0x24E0B
+0x452D 0x24E20
+0x452E 0x24E04
+0x452F 0x24F88
+0x4530 0x3FF3
+0x4531 0x25002
+0x4532 0x3FF4
+0x4533 0x25003
+0x4534 0x76B6
+0x4535 0x76E0
+0x4536 0x4008
+0x4537 0x404E
+0x4538 0x4055
+0x4539 0x404B
+0x453A 0x25229
+0x453B 0x2523B
+0x453C 0x404D
+0x453D 0x7773
+0x453E 0x25206
+0x453F 0x4052
+0x4540 0x7772
+0x4541 0x404C
+0x4542 0x7770
+0x4543 0x4050
+0x4544 0x4053
+0x4545 0x25203
+0x4546 0x4051
+0x4547-0x4548 0x25378
+0x4549 0x2537D
+0x454A 0x4089
+0x454B 0x2537F
+0x454C 0x4095
+0x454D 0x40CC
+0x454E 0x40C8
+0x454F 0x40CE
+0x4550 0x25532
+0x4551 0x40CA
+0x4552 0x25500
+0x4553 0x789D
+0x4554 0x25522
+0x4555 0x40CD
+0x4556 0x256A9
+0x4557 0x415C
+0x4558 0x4167
+0x4559 0x4169
+0x455A 0x4165
+0x455B 0x4162
+0x455C 0x25804
+0x455D 0x7A27
+0x455E 0x7A35
+0x455F 0x2F959
+0x4560 0x41AA
+0x4561 0x259B8
+0x4562 0x25A9B
+0x4563 0x41D2
+0x4564 0x7BA2
+0x4565 0x4203
+0x4566 0x420C
+0x4567 0x25B92
+0x4568 0x4209
+0x4569 0x4206
+0x456A 0x4205
+0x456B 0x7B89
+0x456C 0x25B8F
+0x456D 0x420B
+0x456E 0x4208
+0x456F 0x25B98
+0x4570 0x7BA5
+0x4571 0x25BAE
+0x4572 0x428E
+0x4573 0x25E9D
+0x4574 0x7CB6
+0x4575 0x42E8
+0x4576 0x26049
+0x4577 0x26050
+0x4578 0x26046
+0x4579 0x42EA
+0x457A 0x2604E
+0x457B 0x7DA5
+0x457C 0x7DC3
+0x457D 0x26055
+0x457E 0x42E9
+0x4621 0x42EB
+0x4622 0x26064
+0x4623 0x42F0
+0x4624 0x26238
+0x4625 0x434B
+0x4626 0x7FAB
+0x4627 0x4373
+0x4628 0x4375
+0x4629 0x4392
+0x462A 0x4391
+0x462B 0x4393
+0x462C 0x8025
+0x462D 0x43A7
+0x462E 0x43A6
+0x462F 0x43A8
+0x4630 0x43AA
+0x4631 0x264FE
+0x4632 0x43A9
+0x4633 0x8059
+0x4634-0x4635 0x43BB
+0x4636 0x43BA
+0x4637 0x43BD
+0x4638 0x4427
+0x4639 0x8185
+0x463A 0x267A6
+0x463B 0x4424
+0x463C-0x463D 0x441E
+0x463E 0x441D
+0x463F 0x4420
+0x4640 0x4423
+0x4641 0x4429
+0x4642 0x4422
+0x4643 0x2679C
+0x4644 0x26799
+0x4645 0x441C
+0x4646 0x818E
+0x4647 0x4428
+0x4648 0x267B5
+0x4649 0x267A3
+0x464A 0x267A0
+0x464B 0x267A7
+0x464C 0x2679B
+0x464D 0x269DF
+0x464E 0x269E1
+0x464F 0x4471
+0x4650 0x4473
+0x4651 0x4472
+0x4652 0x26A4D
+0x4653 0x4502
+0x4654 0x26DF3
+0x4655 0x26D6F
+0x4656 0x26D69
+0x4657 0x44FE
+0x4658 0x84BE
+0x4659 0x26D6B
+0x465A 0x26D78
+0x465B 0x26D87
+0x465C 0x4508
+0x465D 0x26D85
+0x465E 0x26D82
+0x465F 0x26D90
+0x4660 0x4507
+0x4661 0x4504
+0x4662 0x26D80
+0x4663 0x26D67
+0x4664 0x4500
+0x4665 0x44FC
+0x4666 0x26D61
+0x4667 0x4544
+0x4668 0x26D93
+0x4669 0x44F1
+0x466A 0x26DF2
+0x466B 0x26D86
+0x466C 0x84A6
+0x466D 0x4506
+0x466E 0x271CD
+0x466F 0x271C4
+0x4670 0x45C6
+0x4671 0x45C3
+0x4672-0x4673 0x45C1
+0x4674 0x2730F
+0x4675 0x45C4
+0x4676 0x45C7
+0x4677 0x2730D
+0x4678 0x45BF
+0x4679 0x45D2
+0x467A 0x27373
+0x467B 0x45CA
+0x467C 0x2F9BA
+0x467D 0x2730A
+0x467E 0x872F
+0x4721 0x27308
+0x4722 0x27313
+0x4723 0x4613
+0x4724 0x275F8
+0x4725 0x4630
+0x4726 0x463E
+0x4727 0x4639
+0x4728 0x276AB
+0x4729 0x276A8
+0x472A 0x463C
+0x472B 0x463F
+0x472C 0x276A5
+0x472D 0x4634
+0x472E 0x463D
+0x472F 0x276C3
+0x4730 0x276A4
+0x4731 0x4638
+0x4732 0x276D4
+0x4733 0x276BA
+0x4734 0x277F1
+0x4735 0x89A0
+0x4736 0x4682
+0x4737 0x2783F
+0x4738 0x4683
+0x4739 0x278EA
+0x473A 0x469B
+0x473B 0x279F7
+0x473C 0x46E0
+0x473D 0x46DD
+0x473E 0x279FA
+0x473F 0x279F5
+0x4740 0x46DE
+0x4741 0x279FE
+0x4742 0x46E3
+0x4743 0x46E5
+0x4744 0x27A00
+0x4745 0x8A97
+0x4746 0x46E2
+0x4747 0x27A02
+0x4748 0x279FB
+0x4749 0x27A07
+0x474A 0x46DF
+0x474B 0x27A1A
+0x474C 0x472E
+0x474D 0x27BB8
+0x474E-0x474F 0x4737
+0x4750 0x27BE9
+0x4751 0x27BEB
+0x4752 0x27C50
+0x4753 0x27C4F
+0x4754 0x8C8B
+0x4755 0x27D86
+0x4756 0x3562
+0x4757 0x27D8E
+0x4758 0x4794
+0x4759 0x4793
+0x475A 0x47AB
+0x475B 0x47AD
+0x475C 0x27EF0
+0x475D 0x27EFB
+0x475E 0x47F5
+0x475F 0x47F7
+0x4760 0x28042
+0x4761 0x47F6
+0x4762 0x47F8
+0x4763 0x28085
+0x4764 0x47FB
+0x4765 0x47F9
+0x4766 0x4858
+0x4767 0x485A
+0x4768 0x28305
+0x4769 0x4859
+0x476A 0x8F0F
+0x476B 0x4885
+0x476C 0x48A4
+0x476D-0x476E 0x48D8
+0x476F 0x2874B
+0x4770 0x48DD
+0x4771 0x48C8
+0x4772 0x28763
+0x4773-0x4774 0x48FA
+0x4775 0x9275
+0x4776 0x4927
+0x4777 0x929F
+0x4778 0x492A
+0x4779 0x4925
+0x477A 0x28999
+0x477B 0x4928
+0x477C 0x28C81
+0x477D 0x28D17
+0x477E 0x28D10
+0x4821 0x28D12
+0x4822 0x95A6
+0x4823 0x4995
+0x4824 0x969A
+0x4825 0x28EFA
+0x4826 0x28EF3
+0x4827 0x28EF2
+0x4828-0x4829 0x28EF5
+0x482A 0x28FBB
+0x482B 0x28FC2
+0x482C 0x290A7
+0x482D 0x4A0F
+0x482E 0x4A11
+0x482F 0x290A8
+0x4830 0x290A3
+0x4831 0x4A10
+0x4832 0x290AA
+0x4833 0x4A15
+0x4834 0x4A13
+0x4835 0x9757
+0x4836 0x291DC
+0x4837 0x4A47
+0x4838 0x4A46
+0x4839 0x2920F
+0x483A 0x4A59
+0x483B 0x4A5B
+0x483C 0x29279
+0x483D 0x4A5E
+0x483E 0x2927F
+0x483F 0x29285
+0x4840 0x4A5A
+0x4841-0x4842 0x4A91
+0x4843 0x4A90
+0x4844 0x4A93
+0x4845 0x2941B
+0x4846 0x97F7
+0x4847 0x4ABE
+0x4848 0x29477
+0x4849 0x29476
+0x484A 0x29498
+0x484B 0x4ABC
+0x484C 0x4ABB
+0x484D 0x4AB7
+0x484E 0x4AB9
+0x484F 0x2947A
+0x4850 0x4B01
+0x4851 0x4AFE
+0x4852 0x295BC
+0x4853 0x295BA
+0x4854 0x4B02
+0x4855 0x295B6
+0x4856 0x4AFF
+0x4857 0x98B0
+0x4858 0x295B4
+0x4859 0x4B00
+0x485A 0x296CF
+0x485B 0x4B37
+0x485C 0x4B3A
+0x485D 0x4B6F
+0x485E 0x4B77
+0x485F 0x4B79
+0x4860 0x99C6
+0x4861 0x2987B
+0x4862 0x4BC8
+0x4863 0x29A1C
+0x4864 0x29A21
+0x4865 0x29A1D
+0x4866 0x29AC0
+0x4867 0x4BF2
+0x4868 0x29AFF
+0x4869 0x4BF1
+0x486A 0x4BF0
+0x486B 0x9B62
+0x486C 0x29D56
+0x486D 0x4C34
+0x486E-0x486F 0x29FA1
+0x4870 0x29FA6
+0x4871-0x4872 0x2A256
+0x4873-0x4874 0x4D2C
+0x4875 0x2A301
+0x4876 0x2A3ED
+0x4877 0x2FA1C
+0x4878 0x2A5F2
+0x4879 0x50FA
+0x487A 0x203B8
+0x487B 0x3491
+0x487C 0x203C0
+0x487D 0x3494
+0x487E 0x203B7
+0x4921 0x203E1
+0x4922 0x34C4
+0x4923 0x350A
+0x4924 0x207E8
+0x4925 0x5285
+0x4926 0x208B2
+0x4927 0x3552
+0x4928 0x20AAE
+0x4929 0x3559
+0x492A 0x366F
+0x492B 0x20F7E
+0x492C 0x35F2
+0x492D 0x35F4
+0x492E 0x5643
+0x492F 0x20F76
+0x4930 0x35F1
+0x4931 0x563C
+0x4932 0x20F96
+0x4933 0x366A
+0x4934-0x4935 0x21420
+0x4936 0x21423
+0x4937 0x21429
+0x4938 0x21677
+0x4939 0x21851
+0x493A 0x3724
+0x493B 0x21856
+0x493C 0x3723
+0x493D 0x21888
+0x493E 0x21859
+0x493F 0x21855
+0x4940 0x3727
+0x4941-0x4942 0x21997
+0x4943 0x376D
+0x4944 0x5BED
+0x4945-0x4946 0x376E
+0x4947 0x21AA1
+0x4948 0x21AA3
+0x4949 0x5C35
+0x494A 0x379F
+0x494B 0x380A
+0x494C 0x3806
+0x494D 0x380E
+0x494E 0x21F0A
+0x494F 0x380D
+0x4950 0x3805
+0x4951 0x21F3D
+0x4952 0x21F0C
+0x4953 0x380B
+0x4954 0x3810
+0x4955 0x382E
+0x4956 0x2213D
+0x4957 0x22139
+0x4958 0x222B0
+0x4959 0x222B2
+0x495A 0x222AE
+0x495B-0x495C 0x3896
+0x495D 0x38C4
+0x495E 0x5F47
+0x495F 0x38C5
+0x4960 0x22420
+0x4961 0x38D2
+0x4962 0x2256E
+0x4963 0x2256D
+0x4964 0x2256A
+0x4965 0x3981
+0x4966 0x22832
+0x4967 0x398E
+0x4968 0x3990
+0x4969 0x398F
+0x496A 0x22839
+0x496B 0x3991
+0x496C 0x3995
+0x496D 0x3993
+0x496E 0x227A3
+0x496F 0x616D
+0x4970 0x2287F
+0x4971 0x22835
+0x4972 0x2283D
+0x4973-0x4974 0x229F4
+0x4975 0x3A3B
+0x4976 0x3A48
+0x4977 0x22D48
+0x4978 0x22D28
+0x4979-0x497A 0x3A46
+0x497B 0x22D27
+0x497C 0x22D32
+0x497D 0x22D2C
+0x497E 0x3A4C
+0x4A21 0x22D2E
+0x4A22 0x3A4A
+0x4A23 0x3A50
+0x4A24 0x3A43
+0x4A25 0x22D23
+0x4A26 0x22D31
+0x4A27 0x2F8C5
+0x4A28 0x3A49
+0x4A29 0x3AA6
+0x4A2A 0x3AA5
+0x4A2B 0x3AA4
+0x4A2C 0x22FC9
+0x4A2D 0x23089
+0x4A2E 0x3AB9
+0x4A2F 0x230BB
+0x4A30-0x4A31 0x3ACE
+0x4A32 0x3B13
+0x4A33 0x23397
+0x4A34 0x23393
+0x4A35 0x23628
+0x4A36 0x3BC6
+0x4A37 0x3BC5
+0x4A38 0x3BCA
+0x4A39 0x3BD9
+0x4A3A 0x3BC1
+0x4A3B 0x23618
+0x4A3C 0x2363B
+0x4A3D 0x69F5
+0x4A3E 0x23627
+0x4A3F 0x23624
+0x4A40 0x2361B
+0x4A41 0x23631
+0x4A42 0x3BCB
+0x4A43 0x23626
+0x4A44 0x236A3
+0x4A45 0x2363F
+0x4A46 0x23622
+0x4A47 0x23619
+0x4A48 0x6A03
+0x4A49 0x23641
+0x4A4A 0x2362B
+0x4A4B 0x6A65
+0x4A4C 0x3C42
+0x4A4D 0x2390C
+0x4A4E 0x6B75
+0x4A4F 0x3C74
+0x4A50 0x3C73
+0x4A51 0x23A4E
+0x4A52 0x23AB9
+0x4A53 0x23AFA
+0x4A54 0x23BE9
+0x4A55 0x23BE8
+0x4A56 0x23BE4
+0x4A57 0x6F8A
+0x4A58 0x6F56
+0x4A59 0x3D52
+0x4A5A 0x23F5F
+0x4A5B 0x23F5D
+0x4A5C 0x23F52
+0x4A5D 0x3D50
+0x4A5E 0x23F74
+0x4A5F 0x3D4B
+0x4A60 0x23F46
+0x4A61 0x3D4C
+0x4A62 0x3D6D
+0x4A63 0x23FAA
+0x4A64 0x6F98
+0x4A65 0x23F4A
+0x4A66 0x23F59
+0x4A67 0x23F4B
+0x4A68 0x3D4F
+0x4A69 0x6F68
+0x4A6A 0x3DF0
+0x4A6B 0x24350
+0x4A6C 0x7234
+0x4A6D 0x7245
+0x4A6E 0x3E4D
+0x4A6F 0x3E4C
+0x4A70 0x246D0
+0x4A71 0x3E4F
+0x4A72 0x3E4E
+0x4A73 0x3E50
+0x4A74 0x246CC
+0x4A75 0x735C
+0x4A76 0x3E96
+0x4A77 0x7356
+0x4A78-0x4A79 0x24864
+0x4A7A 0x3E97
+0x4A7B 0x3E95
+0x4A7C 0x3E98
+0x4A7D 0x2485C
+0x4A7E 0x24A15
+0x4B21 0x3EEC
+0x4B22 0x3EEB
+0x4B23-0x4B24 0x3F13
+0x4B25 0x3F38
+0x4B26 0x3F3A
+0x4B27 0x3F39
+0x4B28 0x24B79
+0x4B29 0x3F68
+0x4B2A 0x3F67
+0x4B2B 0x24CC5
+0x4B2C 0x24CB8
+0x4B2D 0x24E2C
+0x4B2E 0x3FBE
+0x4B2F 0x3FBC
+0x4B30 0x24E37
+0x4B31 0x24E35
+0x4B32 0x24E31
+0x4B33 0x3FBB
+0x4B34 0x24E2F
+0x4B35 0x3FBA
+0x4B36 0x24E2B
+0x4B37 0x3FB9
+0x4B38 0x3FB7
+0x4B39 0x24E2D
+0x4B3A 0x24E2A
+0x4B3B 0x3FC1
+0x4B3C 0x24F95
+0x4B3D 0x3FF7
+0x4B3E 0x2523E
+0x4B3F 0x4060
+0x4B40 0x25247
+0x4B41 0x25245
+0x4B42 0x4059
+0x4B43 0x405C
+0x4B44 0x405A
+0x4B45 0x4058
+0x4B46 0x25252
+0x4B47 0x405B
+0x4B48 0x25270
+0x4B49 0x25250
+0x4B4A 0x25258
+0x4B4B 0x25251
+0x4B4C 0x2523D
+0x4B4D 0x405D
+0x4B4E 0x25241
+0x4B4F 0x2520C
+0x4B50 0x2523C
+0x4B51 0x25386
+0x4B52 0x25383
+0x4B53 0x25389
+0x4B54 0x253F3
+0x4B55 0x40D4
+0x4B56 0x40D3
+0x4B57 0x78BF
+0x4B58 0x40D2
+0x4B59 0x78BD
+0x4B5A 0x2552D
+0x4B5B 0x40D7
+0x4B5C 0x40D1
+0x4B5D 0x78E4
+0x4B5E 0x40D5
+0x4B5F 0x256C5
+0x4B60 0x2F955
+0x4B61 0x416D
+0x4B62 0x416F
+0x4B63 0x7A34
+0x4B64 0x4175
+0x4B65 0x416C
+0x4B66 0x4174
+0x4B67 0x25843
+0x4B68 0x4173
+0x4B69 0x25837
+0x4B6A 0x25845
+0x4B6B 0x7A36
+0x4B6C 0x41AC
+0x4B6D 0x259E5
+0x4B6E 0x25AA6
+0x4B6F 0x25BDB
+0x4B70 0x4210
+0x4B71 0x25BDA
+0x4B72 0x25BE6
+0x4B73 0x7BBA
+0x4B74 0x7BBC
+0x4B75 0x420F
+0x4B76 0x7BC8
+0x4B77 0x4223
+0x4B78 0x7BC3
+0x4B79 0x421D
+0x4B7A 0x7BB6
+0x4B7B 0x420E
+0x4B7C 0x25BF8
+0x4B7D 0x25BE9
+0x4B7E 0x4215
+0x4C21 0x7BC2
+0x4C22 0x4213
+0x4C23 0x25BE8
+0x4C24 0x25BF6
+0x4C25 0x421B
+0x4C26 0x7BC5
+0x4C27 0x4222
+0x4C28 0x4226
+0x4C29 0x25BE7
+0x4C2A 0x7BBD
+0x4C2B 0x7BB0
+0x4C2C 0x4221
+0x4C2D 0x421C
+0x4C2E 0x4217
+0x4C2F 0x25BD5
+0x4C30 0x421A
+0x4C31 0x7BBB
+0x4C32 0x25ED3
+0x4C33 0x25EC7
+0x4C34 0x25ED1
+0x4C35 0x4299
+0x4C36 0x25EC3
+0x4C37 0x4297
+0x4C38 0x26080
+0x4C39 0x26098
+0x4C3A 0x42FD
+0x4C3B 0x26084
+0x4C3C 0x42F6
+0x4C3D 0x42FE
+0x4C3E 0x42F5
+0x4C3F 0x42FF
+0x4C40 0x42F7
+0x4C41 0x26097
+0x4C42 0x26083
+0x4C43 0x26081
+0x4C44 0x4301
+0x4C45 0x7E04
+0x4C46 0x2608C
+0x4C47 0x26242
+0x4C48 0x263AB
+0x4C49 0x4377
+0x4C4A 0x263A3
+0x4C4B 0x263A6
+0x4C4C 0x2645C
+0x4C4D 0x26469
+0x4C4E 0x26467
+0x4C4F 0x43AB
+0x4C50 0x2658B
+0x4C51 0x265A8
+0x4C52 0x43C0
+0x4C53 0x267D8
+0x4C54 0x4431
+0x4C55 0x442E
+0x4C56 0x2F989
+0x4C57 0x267DC
+0x4C58 0x442C
+0x4C59 0x267E0
+0x4C5A 0x267E5
+0x4C5B 0x4432
+0x4C5C 0x442F
+0x4C5D 0x442B
+0x4C5E 0x442D
+0x4C5F 0x4433
+0x4C60-0x4C61 0x26918
+0x4C62 0x81F1
+0x4C63 0x4457
+0x4C64 0x445C
+0x4C65 0x447B
+0x4C66 0x26A5F
+0x4C67 0x26A5E
+0x4C68 0x447A
+0x4C69 0x26E02
+0x4C6A 0x8522
+0x4C6B 0x4513
+0x4C6C 0x451E
+0x4C6D 0x4517
+0x4C6E 0x4520
+0x4C6F 0x452A
+0x4C70 0x4511
+0x4C71 0x4515
+0x4C72 0x450F
+0x4C73 0x4518
+0x4C74 0x8538
+0x4C75 0x26E12
+0x4C76 0x26E36
+0x4C77 0x452C
+0x4C78 0x8532
+0x4C79 0x2F9A8
+0x4C7A 0x8510
+0x4C7B 0x26E23
+0x4C7C 0x26E03
+0x4C7D 0x451C
+0x4C7E 0x26E00
+0x4D21 0x4529
+0x4D22 0x26E46
+0x4D23 0x26E61
+0x4D24 0x4512
+0x4D25 0x854F
+0x4D26 0x4597
+0x4D27 0x27384
+0x4D28 0x8772
+0x4D29 0x2736B
+0x4D2A 0x27362
+0x4D2B 0x27356
+0x4D2C 0x2736A
+0x4D2D 0x27352
+0x4D2E 0x27355
+0x4D2F 0x45D4
+0x4D30 0x45D0
+0x4D31 0x877C
+0x4D32 0x27361
+0x4D33 0x2F9BB
+0x4D34 0x27358
+0x4D35 0x27377
+0x4D36 0x45D3
+0x4D37 0x4614
+0x4D38 0x276D7
+0x4D39 0x4646
+0x4D3A 0x4645
+0x4D3B 0x276DE
+0x4D3C 0x4643
+0x4D3D 0x276DF
+0x4D3E 0x890D
+0x4D3F 0x4644
+0x4D40 0x4648
+0x4D41 0x276D1
+0x4D42 0x4647
+0x4D43 0x276E2
+0x4D44 0x276E1
+0x4D45 0x276DD
+0x4D46 0x8908
+0x4D47 0x4649
+0x4D48 0x4685
+0x4D49 0x2784B
+0x4D4A 0x4684
+0x4D4B 0x2784E
+0x4D4C 0x469D
+0x4D4D 0x278FC
+0x4D4E 0x469E
+0x4D4F 0x46A0
+0x4D50 0x278FA
+0x4D51 0x469C
+0x4D52 0x278FB
+0x4D53 0x469F
+0x4D54 0x278FE
+0x4D55 0x46F7
+0x4D56 0x46EA
+0x4D57 0x27A31
+0x4D58 0x46EF
+0x4D59 0x46E9
+0x4D5A 0x46F3
+0x4D5B 0x46F0
+0x4D5C 0x46EB
+0x4D5D 0x27A38
+0x4D5E 0x46EC
+0x4D5F 0x46F2
+0x4D60 0x46F5
+0x4D61 0x46EE
+0x4D62 0x27A3A
+0x4D63 0x27BBB
+0x4D64 0x473A
+0x4D65 0x474B
+0x4D66 0x27C59
+0x4D67 0x474A
+0x4D68 0x474C
+0x4D69 0x27CDB
+0x4D6A 0x27CDF
+0x4D6B 0x27CE2
+0x4D6C 0x4779
+0x4D6D 0x477B
+0x4D6E 0x4778
+0x4D6F 0x27D9E
+0x4D70 0x27DA1
+0x4D71 0x47B5
+0x4D72 0x27F10
+0x4D73 0x47B4
+0x4D74 0x47B7
+0x4D75 0x8D9E
+0x4D76 0x4809
+0x4D77 0x47FE
+0x4D78 0x4808
+0x4D79 0x4807
+0x4D7A 0x28076
+0x4D7B 0x2807F
+0x4D7C 0x2807D
+0x4D7D 0x4806
+0x4D7E 0x4804
+0x4E21 0x4805
+0x4E22 0x47FF
+0x4E23 0x480B
+0x4E24 0x28082
+0x4E25 0x28257
+0x4E26 0x483B
+0x4E27 0x485D
+0x4E28 0x485C
+0x4E29 0x485F
+0x4E2A 0x485E
+0x4E2B 0x8F28
+0x4E2C 0x2832E
+0x4E2D 0x8F21
+0x4E2E 0x4883
+0x4E2F 0x2858B
+0x4E30 0x2858D
+0x4E31 0x48A7
+0x4E32 0x9066
+0x4E33 0x906C
+0x4E34 0x28590
+0x4E35 0x48A8
+0x4E36 0x286EC
+0x4E37 0x2876F
+0x4E38 0x2876B
+0x4E39 0x28771
+0x4E3A 0x28778
+0x4E3B 0x90F6
+0x4E3C 0x48E0
+0x4E3D 0x48DF
+0x4E3E 0x48FE
+0x4E3F 0x48FC
+0x4E40 0x48FF
+0x4E41 0x48FD
+0x4E42 0x289AD
+0x4E43 0x492C
+0x4E44 0x92EC
+0x4E45 0x92BA
+0x4E46 0x92E3
+0x4E47 0x92BD
+0x4E48 0x499D
+0x4E49 0x28D2F
+0x4E4A 0x95B4
+0x4E4B 0x28F78
+0x4E4C 0x4A40
+0x4E4D 0x291F8
+0x4E4E 0x29219
+0x4E4F 0x4A5F
+0x4E50 0x2929B
+0x4E51 0x29294
+0x4E52 0x29297
+0x4E53 0x29299
+0x4E54 0x293A6
+0x4E55 0x293A4
+0x4E56 0x293A7
+0x4E57 0x97D1
+0x4E58 0x29495
+0x4E59 0x4AC0
+0x4E5A 0x9823
+0x4E5B 0x29490
+0x4E5C 0x4AC1
+0x4E5D 0x4AC6
+0x4E5E 0x2949B
+0x4E5F 0x295C4
+0x4E60-0x4E61 0x4B04
+0x4E62 0x295C6
+0x4E63 0x990B
+0x4E64 0x4B3E
+0x4E65 0x4B3D
+0x4E66 0x4B40
+0x4E67 0x4B3F
+0x4E68 0x296E3
+0x4E69 0x4B42
+0x4E6A 0x296DF
+0x4E6B 0x296DD
+0x4E6C 0x296E7
+0x4E6D 0x4B84
+0x4E6E 0x4B82
+0x4E6F 0x4B7F
+0x4E70 0x4B85
+0x4E71 0x29A2D
+0x4E72 0x29A2C
+0x4E73 0x4BCC
+0x4E74 0x9AB2
+0x4E75 0x4BCB
+0x4E76 0x4BCD
+0x4E77 0x29A34
+0x4E78 0x29A38
+0x4E79 0x9ADB
+0x4E7A 0x29B1D
+0x4E7B 0x4BF5
+0x4E7C-0x4E7D 0x29B1A
+0x4E7E 0x29B14
+0x4F21 0x9AF0
+0x4F22 0x29B17
+0x4F23 0x29C21
+0x4F24-0x4F25 0x4C20
+0x4F26 0x29CAA
+0x4F27 0x29CA1
+0x4F28 0x4C37
+0x4F29 0x4C3E
+0x4F2A 0x9B73
+0x4F2B 0x4C3D
+0x4F2C 0x9B6E
+0x4F2D 0x29D63
+0x4F2E 0x29D79
+0x4F2F 0x29D60
+0x4F30 0x9B65
+0x4F31 0x29D62
+0x4F32 0x4C3C
+0x4F33 0x29D61
+0x4F34 0x4C38
+0x4F35 0x9B6A
+0x4F36 0x29D70
+0x4F37 0x9B6D
+0x4F38 0x29D6A
+0x4F39 0x4C3B
+0x4F3A 0x29FC8
+0x4F3B 0x4CB0
+0x4F3C 0x29FC5
+0x4F3D 0x29FBE
+0x4F3E 0x29FC2
+0x4F3F 0x4CAD
+0x4F40 0x4CB2
+0x4F41 0x4CB8
+0x4F42 0x9D0B
+0x4F43 0x29FC7
+0x4F44 0x4CAF
+0x4F45 0x29FB0
+0x4F46 0x29FCA
+0x4F47 0x4D1A
+0x4F48 0x9E76
+0x4F49-0x4F4A 0x4D20
+0x4F4B 0x4D30
+0x4F4C 0x9EA8
+0x4F4D 0x4D2F
+0x4F4E 0x2A30D
+0x4F4F 0x2A307
+0x4F50 0x2A396
+0x4F51 0x2A3EF
+0x4F52-0x4F53 0x4D5F
+0x4F54 0x2A41E
+0x4F55 0x2A41D
+0x4F56 0x9F11
+0x4F57 0x2A590
+0x4F58 0x203EB
+0x4F59 0x348A
+0x4F5A 0x5119
+0x4F5B 0x349C
+0x4F5C 0x203EE
+0x4F5D 0x349A
+0x4F5E 0x203EF
+0x4F5F 0x203EC
+0x4F60 0x207FA
+0x4F61 0x350C
+0x4F62 0x350B
+0x4F63 0x350D
+0x4F64 0x5292
+0x4F65 0x20904
+0x4F66 0x20FD3
+0x4F67 0x35FE
+0x4F68 0x20FD1
+0x4F69 0x20FFA
+0x4F6A 0x35FF
+0x4F6B-0x4F6C 0x35FB
+0x4F6D 0x3609
+0x4F6E 0x20FC8
+0x4F6F 0x3600
+0x4F70 0x20FD5
+0x4F71 0x5675
+0x4F72 0x20FCD
+0x4F75 0x2122A
+0x4F76 0x21488
+0x4F77 0x21461
+0x4F78 0x3671
+0x4F79 0x21463
+0x4F7A 0x21462
+0x4F7B 0x596F
+0x4F7C 0x20057
+0x4F7D 0x218C8
+0x4F7E 0x21898
+0x5021 0x372B
+0x5022 0x21AC1
+0x5023 0x21F3F
+0x5024 0x21F41
+0x5025 0x3814
+0x5026-0x5027 0x3811
+0x5028 0x22152
+0x5029 0x3863
+0x502A 0x2215E
+0x502B 0x386E
+0x502C 0x389A
+0x502D 0x222C7
+0x502E 0x389B
+0x502F 0x22370
+0x5030 0x22427
+0x5031 0x38C8
+0x5032 0x22471
+0x5033 0x224B0
+0x5034 0x38F6
+0x5035-0x5036 0x22842
+0x5037 0x61A5
+0x5038 0x398C
+0x5039 0x3997
+0x503A 0x39A2
+0x503B 0x61A0
+0x503C 0x22857
+0x503D 0x2289D
+0x503E 0x22D89
+0x503F 0x22D8D
+0x5040 0x22D8B
+0x5041 0x22D80
+0x5042 0x22D92
+0x5043 0x22D8A
+0x5044 0x22DC8
+0x5045 0x3A54
+0x5046 0x22D8F
+0x5047 0x22D93
+0x5048 0x22D91
+0x5049 0x3AA8
+0x504A 0x22FF2
+0x504B 0x22FDE
+0x504C 0x3AA9
+0x504D 0x230C8
+0x504E 0x65B4
+0x504F 0x65D8
+0x5050 0x66C2
+0x5051 0x3B18
+0x5052 0x3B17
+0x5053 0x3B1D
+0x5054 0x232A7
+0x5055 0x232A1
+0x5056 0x3B31
+0x5057 0x2368C
+0x5058 0x2367F
+0x5059 0x3BD8
+0x505A 0x3BD5
+0x505B 0x2367B
+0x505C 0x23695
+0x505D 0x23699
+0x505E 0x3BE1
+0x505F 0x2368E
+0x5060 0x3BD4
+0x5061 0x236DA
+0x5062 0x2368A
+0x5063 0x2369C
+0x5064 0x3BE3
+0x5065 0x2367E
+0x5066-0x5067 0x3C44
+0x5068 0x2391A
+0x5069 0x23A55
+0x506A 0x3C76
+0x506B 0x3C75
+0x506C 0x23A60
+0x506D 0x6BA8
+0x506E 0x3C88
+0x506F 0x3CAA
+0x5070 0x23BFB
+0x5071-0x5072 0x3CAB
+0x5073 0x23BFD
+0x5074 0x3D57
+0x5075 0x6F83
+0x5076 0x3D60
+0x5077 0x3D5D
+0x5078 0x3D6B
+0x5079 0x23FD0
+0x507A 0x3D63
+0x507B 0x3D67
+0x507C 0x23FC5
+0x507D 0x3D5E
+0x507E 0x23FD2
+0x5121 0x24011
+0x5122 0x6FC5
+0x5123 0x71CD
+0x5124 0x3DF9
+0x5125 0x3DF3
+0x5126 0x243AD
+0x5127 0x243A4
+0x5128 0x243A9
+0x5129 0x243B0
+0x512A 0x2439D
+0x512B 0x3DF6
+0x512C 0x24598
+0x512D 0x729C
+0x512E 0x3E51
+0x512F 0x3E53
+0x5130 0x3E52
+0x5131 0x24892
+0x5132 0x3E9B
+0x5133 0x2488A
+0x5134 0x3E9C
+0x5135 0x2488D
+0x5136 0x24896
+0x5137 0x3EF7
+0x5138 0x7499
+0x5139 0x748F
+0x513A 0x7491
+0x513B 0x24A45
+0x513C 0x24A4B
+0x513D 0x24B0F
+0x513E 0x24B16
+0x513F 0x3F3B
+0x5140 0x24B8A
+0x5141 0x3F3E
+0x5142 0x3F3D
+0x5143 0x24CC9
+0x5144 0x3F69
+0x5145 0x24CC8
+0x5146 0x24CCA
+0x5147 0x24E64
+0x5148-0x5149 0x3FC3
+0x514A 0x3FC7
+0x514B 0x24E5D
+0x514C 0x24E63
+0x514D 0x7639
+0x514E 0x3FC6
+0x514F 0x762E
+0x5150 0x3FC8
+0x5151 0x24E88
+0x5152 0x24F3A
+0x5153 0x24F39
+0x5154-0x5155 0x769F
+0x5156 0x3FE6
+0x5157 0x3FF8
+0x5158 0x25017
+0x5159 0x25093
+0x515A 0x4007
+0x515B 0x25095
+0x515C 0x4064
+0x515D 0x4068
+0x515E 0x25276
+0x515F 0x7794
+0x5160 0x4065
+0x5161 0x77AE
+0x5162 0x25280
+0x5163 0x2527B
+0x5164 0x4069
+0x5165 0x25248
+0x5166 0x252A8
+0x5167 0x25288
+0x5168 0x2538B
+0x5169 0x2538A
+0x516A 0x2538C
+0x516B 0x253FC
+0x516C 0x40DA
+0x516D 0x40E0
+0x516E 0x78E6
+0x516F 0x25558
+0x5170 0x40DE
+0x5171 0x25551
+0x5172 0x25555
+0x5173 0x25553
+0x5174-0x5175 0x411C
+0x5176 0x411A
+0x5177 0x256DC
+0x5178 0x417B
+0x5179 0x417A
+0x517A 0x417C
+0x517B 0x2585C
+0x517C 0x4178
+0x517D 0x4177
+0x517E 0x25865
+0x5221 0x2F95A
+0x5222 0x41B1
+0x5223 0x259EE
+0x5224 0x41B2
+0x5225 0x41B0
+0x5226 0x259F0
+0x5227 0x7ABC
+0x5228 0x259F2
+0x5229 0x4236
+0x522A 0x25C35
+0x522B 0x422E
+0x522C 0x25C22
+0x522D 0x7BD6
+0x522E 0x25C20
+0x522F 0x4234
+0x5230 0x25C2D
+0x5231 0x25C28
+0x5232 0x25C26
+0x5233 0x25C3C
+0x5234 0x422A
+0x5235 0x25C38
+0x5236 0x4233
+0x5237 0x422D
+0x5238 0x422F
+0x5239 0x4231
+0x523A 0x422B
+0x523B 0x4232
+0x523C 0x25C2A
+0x523D 0x4235
+0x523E 0x25C1A
+0x523F 0x25C30
+0x5240 0x25BE3
+0x5241 0x25C19
+0x5242 0x25EE9
+0x5243 0x25EE7
+0x5244 0x7CCF
+0x5245 0x260D6
+0x5246 0x260C4
+0x5247 0x4308
+0x5248 0x26087
+0x5249 0x4306
+0x524A 0x260C7
+0x524B 0x260D9
+0x524C 0x7E18
+0x524D 0x260DF
+0x524E 0x434D
+0x524F 0x4361
+0x5250 0x2630A
+0x5251 0x26301
+0x5252 0x263B1
+0x5253 0x4378
+0x5254 0x263C1
+0x5255-0x5256 0x4394
+0x5257 0x26476
+0x5258-0x5259 0x2650D
+0x525A 0x43C1
+0x525B 0x43C3
+0x525C 0x806D
+0x525D 0x26807
+0x525E 0x4439
+0x525F 0x26809
+0x5260 0x26816
+0x5261-0x5262 0x443A
+0x5263-0x5264 0x4435
+0x5265 0x2680E
+0x5266 0x443C
+0x5267 0x8190
+0x5268 0x26806
+0x5269 0x2691E
+0x526A 0x2694A
+0x526B 0x4458
+0x526C-0x526D 0x447C
+0x526E 0x448D
+0x526F 0x448C
+0x5270 0x26EA6
+0x5271 0x26E91
+0x5272 0x453B
+0x5273 0x453F
+0x5274 0x26EB8
+0x5275 0x26E96
+0x5276 0x4532
+0x5277 0x452D
+0x5278 0x26EC5
+0x5279 0x452F
+0x527A 0x4539
+0x527B 0x452E
+0x527C 0x453A
+0x527D 0x26F0A
+0x527E 0x4536
+0x5321 0x4531
+0x5322 0x453E
+0x5323 0x4538
+0x5324 0x8552
+0x5325 0x4534
+0x5326 0x26EB2
+0x5327 0x4541
+0x5328 0x26EB7
+0x5329 0x26EB4
+0x532A 0x26E89
+0x532B 0x26E8D
+0x532C 0x4530
+0x532D 0x26E87
+0x532E 0x26EC2
+0x532F 0x26E9C
+0x5330 0x26E92
+0x5331 0x4543
+0x5332 0x26ECA
+0x5333 0x8550
+0x5334 0x26E8A
+0x5335 0x271E0
+0x5336 0x4598
+0x5337 0x271E6
+0x5338 0x271E5
+0x5339 0x87A0
+0x533A 0x273A5
+0x533B 0x273B3
+0x533C 0x8786
+0x533D 0x45DA
+0x533E 0x45D7
+0x533F 0x273B5
+0x5340 0x273AF
+0x5341 0x8795
+0x5342 0x273B0
+0x5343 0x273CC
+0x5344 0x878C
+0x5345 0x273A2
+0x5346 0x273BE
+0x5347 0x273C6
+0x5348 0x273AC
+0x5349 0x273AE
+0x534A 0x4618
+0x534B 0x8860
+0x534C 0x2F9C3
+0x534D 0x27708
+0x534E 0x27705
+0x534F 0x4652
+0x5350 0x8928
+0x5351 0x276FE
+0x5352 0x464E
+0x5353 0x8920
+0x5354 0x27700
+0x5355-0x5356 0x464F
+0x5357 0x27864
+0x5358 0x27868
+0x5359 0x89A8
+0x535A-0x535B 0x4686
+0x535C 0x4689
+0x535D 0x2786A
+0x535E 0x27869
+0x535F 0x2790D
+0x5360 0x27912
+0x5361-0x5362 0x46A2
+0x5363 0x2790F
+0x5364 0x46A1
+0x5365 0x27A67
+0x5366 0x27A79
+0x5367 0x27A72
+0x5368 0x27A66
+0x5369 0x27A7C
+0x536A 0x46F9
+0x536B 0x46FD
+0x536C 0x27A68
+0x536D 0x27A85
+0x536E 0x27A76
+0x536F 0x27A74
+0x5370 0x27A71
+0x5371 0x27A64
+0x5372 0x473E
+0x5373 0x473C
+0x5374 0x27BF8
+0x5375 0x474D
+0x5376 0x27C6C
+0x5377 0x474E
+0x5378 0x27CEB
+0x5379 0x4781
+0x537A 0x4783
+0x537B 0x4782
+0x537C 0x27DB8
+0x537D 0x4780
+0x537E 0x4788
+0x5421-0x5422 0x27F2D
+0x5423-0x5424 0x27F28
+0x5425 0x27F31
+0x5426 0x47B9
+0x5427 0x27F2F
+0x5428 0x27F2A
+0x5429 0x8E3A
+0x542A 0x280A4
+0x542B 0x280B7
+0x542C 0x280BF
+0x542D 0x4811
+0x542E 0x480D
+0x542F 0x4810
+0x5430 0x4813
+0x5431 0x28263
+0x5432 0x483C
+0x5433-0x5434 0x4862
+0x5435 0x28367
+0x5436 0x285BE
+0x5437 0x2F9E0
+0x5438 0x28795
+0x5439 0x2879C
+0x543A 0x4903
+0x543B 0x4906
+0x543C 0x4902
+0x543D 0x4901
+0x543E-0x543F 0x28871
+0x5440 0x4905
+0x5441 0x2886F
+0x5442 0x9194
+0x5443 0x9311
+0x5444 0x289F1
+0x5445 0x9337
+0x5446 0x4936
+0x5447 0x289E8
+0x5448 0x4935
+0x5449 0x9343
+0x544A 0x2F9EA
+0x544B 0x49A1
+0x544C 0x49A3
+0x544D 0x28D49
+0x544E 0x28D64
+0x544F 0x49A0
+0x5450 0x28D48
+0x5451 0x49EA
+0x5452 0x96A6
+0x5453 0x49E8
+0x5454 0x28F2C
+0x5455 0x28FE1
+0x5456 0x28FEF
+0x5457 0x290C0
+0x5458 0x4A21
+0x5459 0x4A1B
+0x545A 0x290D7
+0x545B 0x290D4
+0x545C 0x4A49
+0x545D 0x4A48
+0x545E 0x292AD
+0x545F 0x9795
+0x5460 0x4A62
+0x5461 0x4A61
+0x5462 0x4A64
+0x5463 0x4A60
+0x5464 0x4A63
+0x5465 0x292AE
+0x5466 0x292AC
+0x5467 0x9796
+0x5468 0x4A66
+0x5469 0x4AAC
+0x546A 0x4AAB
+0x546B 0x29427
+0x546C 0x294AE
+0x546D 0x4AC3
+0x546E 0x294B0
+0x546F 0x4AC4
+0x5470 0x9825
+0x5471 0x294C0
+0x5472 0x294C4
+0x5473-0x5475 0x4B08
+0x5476-0x5477 0x4B06
+0x5478 0x4B41
+0x5479 0x29707
+0x547A 0x4B45
+0x547B 0x296FD
+0x547C-0x547D 0x4B43
+0x547E 0x9926
+0x5521 0x9934
+0x5522 0x4B47
+0x5523 0x2FA04
+0x5524-0x5525 0x2981B
+0x5526 0x4B71
+0x5527 0x298B2
+0x5528 0x298B4
+0x5529 0x298B7
+0x552A 0x298B1
+0x552B 0x298B3
+0x552C 0x298AE
+0x552D 0x4B8B
+0x552E 0x4BD4
+0x552F 0x4BD3
+0x5530 0x4BD1
+0x5531 0x9ABA
+0x5532 0x4BD2
+0x5533 0x29A3F
+0x5534 0x29B36
+0x5535-0x5536 0x4BF7
+0x5537 0x29B31
+0x5538 0x29B3B
+0x5539 0x29B35
+0x553A 0x29B3A
+0x553B 0x29B37
+0x553C 0x29C22
+0x553D 0x29C36
+0x553E 0x29C32
+0x553F 0x4C22
+0x5540 0x29CC0
+0x5541 0x4C45
+0x5542 0x4C41
+0x5543 0x9B81
+0x5544 0x4C40
+0x5545 0x9B8A
+0x5546 0x29D85
+0x5547 0x9B7F
+0x5548 0x4C42
+0x5549 0x29D89
+0x554A 0x4CC1
+0x554B 0x4CC5
+0x554C 0x29FE1
+0x554D 0x4CBB
+0x554E 0x4CB9
+0x554F 0x4CBD
+0x5550 0x4CC9
+0x5551 0x2A00A
+0x5552 0x9D11
+0x5553 0x2A009
+0x5554 0x4CBF
+0x5555 0x4CC7
+0x5556 0x29FE8
+0x5557 0x4CC3
+0x5558 0x4D24
+0x5559 0x4D31
+0x555A 0x4D33
+0x555B 0x2A318
+0x555C 0x4D32
+0x555D 0x4D34
+0x555E 0x4D52
+0x555F 0x4D61
+0x5560 0x9ED9
+0x5561 0x4D7A
+0x5562 0x4D82
+0x5563 0x9F3C
+0x5564 0x2A5C5
+0x5565 0x5123
+0x5566 0x2040D
+0x5567 0x2040C
+0x5568 0x20421
+0x5569 0x512C
+0x556A 0x20616
+0x556B 0x2080E
+0x556C 0x350F
+0x556D 0x5295
+0x556E 0x20817
+0x556F 0x3523
+0x5570 0x3525
+0x5571 0x21048
+0x5572 0x3606
+0x5573 0x3608
+0x5574 0x5688
+0x5575 0x21055
+0x5576 0x21049
+0x5577 0x2104C
+0x5578 0x568B
+0x5579 0x2104F
+0x557A 0x2103D
+0x557B 0x367A
+0x557C 0x3677
+0x557D 0x2148A
+0x557E 0x214A8
+0x5621 0x2168A
+0x5622 0x372E
+0x5623 0x218CB
+0x5624 0x372F
+0x5625 0x218D5
+0x5626 0x221D4
+0x5627 0x381B
+0x5628 0x3813
+0x5629 0x21F5C
+0x562A 0x21F75
+0x562B 0x3866
+0x562C 0x22161
+0x562D 0x3865
+0x562E 0x21696
+0x562F 0x38F7
+0x5630 0x2258A
+0x5631 0x228D0
+0x5632 0x61E1
+0x5633 0x61D7
+0x5634 0x22849
+0x5635 0x228CF
+0x5636 0x399C
+0x5637 0x22DD6
+0x5638 0x22D7F
+0x5639 0x3A53
+0x563A 0x22DD2
+0x563B 0x22DCF
+0x563C 0x23006
+0x563D 0x23009
+0x563E 0x3ABA
+0x563F 0x65A3
+0x5640 0x3B22
+0x5641 0x66D3
+0x5642 0x23706
+0x5643 0x236F1
+0x5644 0x23704
+0x5645 0x6A8B
+0x5646 0x236FA
+0x5647 0x236F4
+0x5648 0x3BEB
+0x5649 0x3BDD
+0x564A 0x236F9
+0x564B 0x3BEF
+0x564C 0x2368B
+0x564D 0x23703
+0x564E 0x3C47
+0x564F 0x3C46
+0x5650 0x239A2
+0x5651 0x3C78
+0x5652 0x6BAC
+0x5653 0x3C89
+0x5654 0x23C0C
+0x5655 0x23C0B
+0x5656 0x3D68
+0x5657 0x3D76
+0x5658 0x3D74
+0x5659 0x3D79
+0x565A 0x24024
+0x565B 0x3D7A
+0x565C 0x3D77
+0x565D 0x2F914
+0x565E 0x3D71
+0x565F 0x24025
+0x5660 0x3D72
+0x5661 0x243F6
+0x5662 0x3DFF
+0x5663 0x243FB
+0x5664 0x3E05
+0x5665 0x24532
+0x5666 0x245FB
+0x5667 0x3E54
+0x5668-0x5669 0x246F2
+0x566A-0x566B 0x3E9E
+0x566C 0x7374
+0x566D 0x2489C
+0x566E 0x24A72
+0x566F 0x3EFA
+0x5670 0x24A74
+0x5671 0x3F44
+0x5672-0x5673 0x3F3F
+0x5674 0x24B86
+0x5675 0x3F42
+0x5676 0x24B8E
+0x5677 0x24B90
+0x5678 0x3F51
+0x5679 0x24BCD
+0x567A 0x24BF7
+0x567B 0x24CD6
+0x567C 0x24E84
+0x567D 0x24E95
+0x567E 0x24E8A
+0x5721 0x7640
+0x5722 0x3FCA
+0x5723 0x24E97
+0x5724 0x7641
+0x5725 0x3FCE
+0x5726 0x3FC9
+0x5727-0x5728 0x24FA0
+0x5729 0x25022
+0x572A 0x250A6
+0x572B 0x250A4
+0x572C 0x4009
+0x572D 0x76E8
+0x572E 0x406C
+0x572F 0x406E
+0x5730 0x4070
+0x5731 0x406D
+0x5732 0x406B
+0x5733-0x5734 0x4071
+0x5735-0x5736 0x252AF
+0x5737 0x252BD
+0x5738 0x408C
+0x5739 0x40E4
+0x573A 0x25576
+0x573B 0x40E1
+0x573C 0x2557B
+0x573D 0x25579
+0x573E 0x78F6
+0x573F 0x40E7
+0x5740 0x7900
+0x5741 0x40E2
+0x5742 0x411F
+0x5743 0x256EE
+0x5744 0x256F1
+0x5745 0x417E
+0x5746 0x25894
+0x5747 0x4180
+0x5748 0x7A59
+0x5749 0x7A55
+0x574A 0x25891
+0x574B 0x41B9
+0x574C-0x574D 0x41B7
+0x574E 0x25A10
+0x574F 0x41BA
+0x5750 0x7AF4
+0x5751 0x25AAF
+0x5752 0x41D3
+0x5753 0x423F
+0x5754 0x7C04
+0x5755 0x4245
+0x5756 0x4241
+0x5757 0x7C15
+0x5758-0x5759 0x4242
+0x575A 0x423B
+0x575B 0x4238
+0x575C 0x25C7B
+0x575D 0x25C77
+0x575E 0x423A
+0x575F 0x7BF5
+0x5760 0x25C80
+0x5761 0x25CC6
+0x5762 0x423C
+0x5763 0x25C7C
+0x5764 0x25C90
+0x5765 0x423E
+0x5766 0x25CA3
+0x5767 0x25C7D
+0x5768 0x25CBD
+0x5769-0x576A 0x429E
+0x576B 0x42A1
+0x576C 0x25F13
+0x576D 0x429B
+0x576E 0x4312
+0x576F 0x26111
+0x5770 0x26144
+0x5771 0x2610D
+0x5772 0x4318
+0x5773 0x430C
+0x5774 0x26314
+0x5775 0x4362
+0x5776 0x263B8
+0x5777 0x437A
+0x5778 0x263B7
+0x5779 0x26483
+0x577A-0x577B 0x43AE
+0x577C 0x26514
+0x577D 0x43AD
+0x577E 0x2651C
+0x5821 0x43C4
+0x5822 0x43C7
+0x5823 0x43C6
+0x5824 0x43C5
+0x5825-0x5826 0x265D4
+0x5827 0x81C1
+0x5828 0x4440
+0x5829 0x26843
+0x582A 0x26842
+0x582B 0x443F
+0x582C 0x4441
+0x582D 0x2F98A
+0x582E 0x26841
+0x582F 0x2694E
+0x5830 0x447F
+0x5831 0x26A87
+0x5832 0x4486
+0x5833 0x4481
+0x5834 0x4480
+0x5835 0x448E
+0x5836 0x454A
+0x5837 0x26F39
+0x5838 0x4547
+0x5839 0x26F8F
+0x583A 0x26F2A
+0x583B 0x454B
+0x583C 0x4546
+0x583D 0x454E
+0x583E 0x857D
+0x583F 0x26F2B
+0x5840 0x85A5
+0x5841 0x26F50
+0x5842 0x4548
+0x5843 0x26F6E
+0x5844 0x4545
+0x5845 0x26F3B
+0x5846 0x26F53
+0x5847 0x26F5F
+0x5848-0x5849 0x26F2F
+0x584A 0x26F38
+0x584B 0x26F4C
+0x584C 0x271F1
+0x584D 0x45DB
+0x584E 0x45E7
+0x584F 0x45E4
+0x5850 0x27407
+0x5851 0x27416
+0x5852 0x45E1
+0x5853 0x27414
+0x5854 0x45E9
+0x5855 0x273FB
+0x5856 0x45E5
+0x5857 0x45E0
+0x5858 0x45E3
+0x5859 0x273F8
+0x585A 0x27410
+0x585B 0x2741D
+0x585C 0x273FF
+0x585D 0x2740B
+0x585E 0x27404
+0x585F 0x45EA
+0x5860 0x273FE
+0x5861 0x275FF
+0x5862 0x893A
+0x5863 0x4654
+0x5864 0x4658
+0x5865 0x465C
+0x5866 0x27723
+0x5867 0x4655
+0x5868-0x5869 0x468B
+0x586A 0x46A6
+0x586B 0x46A5
+0x586C 0x2792A
+0x586D 0x27AA0
+0x586E 0x27A98
+0x586F 0x27A9C
+0x5870 0x46FF
+0x5871 0x27A9E
+0x5872 0x27AA6
+0x5873 0x27AB5
+0x5874 0x27AB0
+0x5875 0x4730
+0x5876-0x5877 0x4740
+0x5878 0x27CF9
+0x5879 0x27CF5
+0x587A 0x4786
+0x587B 0x27DD2
+0x587C 0x47BF
+0x587D 0x47BD
+0x587E 0x27F50
+0x5921 0x27F4E
+0x5922 0x27F4B
+0x5923 0x27F52
+0x5924 0x27F4D
+0x5925 0x47BE
+0x5926 0x4819
+0x5927 0x280E4
+0x5928 0x481C
+0x5929 0x280DA
+0x592A 0x481B
+0x592B-0x592C 0x4817
+0x592D 0x8E51
+0x592E 0x280DF
+0x592F 0x280E8
+0x5930 0x483D
+0x5931 0x486A
+0x5932 0x4866
+0x5933 0x28370
+0x5934 0x28372
+0x5935 0x4867
+0x5936 0x28377
+0x5937 0x4868
+0x5938-0x5939 0x48AD
+0x593A 0x285E6
+0x593B 0x287AA
+0x593C 0x48D6
+0x593D 0x4909
+0x593E 0x2888C
+0x593F 0x9198
+0x5940 0x28889
+0x5941 0x490C
+0x5942 0x490A
+0x5943 0x28A32
+0x5944 0x493B
+0x5945 0x493A
+0x5946 0x9384
+0x5947 0x9381
+0x5948 0x28A7A
+0x5949 0x936F
+0x594A 0x28C9E
+0x594B 0x28CA0
+0x594C 0x28D70
+0x594D 0x49AF
+0x594E-0x594F 0x49AA
+0x5950 0x28D6E
+0x5951 0x28D66
+0x5952 0x49B1
+0x5953 0x28D65
+0x5954 0x49AC
+0x5955 0x49EC
+0x5956 0x28F7F
+0x5957 0x28FE0
+0x5958 0x4A01
+0x5959 0x28FFF
+0x595A-0x595B 0x290F6
+0x595C 0x290F5
+0x595D 0x4A23
+0x595E 0x290FC
+0x595F 0x4A24
+0x5960 0x4A1E
+0x5961 0x290F9
+0x5962 0x4A4A
+0x5963 0x4A65
+0x5964 0x4A6A
+0x5965 0x292CA
+0x5966 0x292C3
+0x5967 0x292C6
+0x5968 0x4A69
+0x5969 0x293B8
+0x596A 0x293BD
+0x596B 0x4A95
+0x596C 0x293BC
+0x596D 0x29405
+0x596E 0x294E0
+0x596F 0x294E9
+0x5970 0x9842
+0x5971 0x294DF
+0x5972 0x294EC
+0x5973 0x4ACC
+0x5974 0x294E5
+0x5975 0x294DE
+0x5976 0x2FA00
+0x5977 0x4ACF
+0x5978 0x294F0
+0x5979 0x294E3
+0x597A 0x4B0F
+0x597B 0x295EC
+0x597C 0x4B0E
+0x597D 0x4B0B
+0x597E 0x4B10
+0x5A21 0x4B0D
+0x5A22 0x4B0C
+0x5A23 0x295F2
+0x5A24 0x295EF
+0x5A25 0x295E9
+0x5A26 0x296FB
+0x5A27 0x4B46
+0x5A28 0x4B48
+0x5A29 0x9937
+0x5A2A 0x4B49
+0x5A2B 0x29737
+0x5A2C 0x298DE
+0x5A2D 0x4B91
+0x5A2E 0x4B8E
+0x5A2F 0x298DA
+0x5A30 0x4BD8
+0x5A31 0x4BD6
+0x5A32 0x29A4B
+0x5A33 0x4BDA
+0x5A34 0x29A49
+0x5A35 0x4BD7
+0x5A36 0x29AD5
+0x5A37 0x9AFF
+0x5A38 0x4BF9
+0x5A39 0x29B52
+0x5A3A 0x29B47
+0x5A3B 0x4BFC
+0x5A3C 0x29B48
+0x5A3D 0x29CCC
+0x5A3E 0x29CD0
+0x5A3F 0x9BA9
+0x5A40 0x4C4A
+0x5A41 0x9BA7
+0x5A42 0x4C4E
+0x5A43 0x9BB3
+0x5A44 0x9BAC
+0x5A45 0x9BB0
+0x5A46 0x29D86
+0x5A47 0x29DA7
+0x5A48 0x29DA3
+0x5A49 0x9B9C
+0x5A4A 0x29DB6
+0x5A4B 0x29DAD
+0x5A4C 0x2A013
+0x5A4D 0x9D3C
+0x5A4E 0x9D1C
+0x5A4F 0x9D3A
+0x5A50 0x4CD3
+0x5A51 0x4CCD
+0x5A52 0x4CD1
+0x5A53 0x2A017
+0x5A54 0x2A022
+0x5A55 0x9D32
+0x5A56 0x9D34
+0x5A57 0x2A049
+0x5A58 0x2A026
+0x5A59 0x2FA0C
+0x5A5A 0x2A03C
+0x5A5B 0x2A028
+0x5A5C 0x2A2A8
+0x5A5D 0x9EC7
+0x5A5E 0x2A3FB
+0x5A5F 0x4D62
+0x5A60 0x2A432
+0x5A61 0x2A4D6
+0x5A62 0x2A548
+0x5A63 0x4D83
+0x5A64 0x9F3F
+0x5A65 0x2A5C6
+0x5A66 0x4D92
+0x5A67-0x5A68 0x349F
+0x5A69-0x5A6A 0x20425
+0x5A6B 0x20424
+0x5A6C 0x20433
+0x5A6D 0x20570
+0x5A6E 0x3527
+0x5A6F 0x20B90
+0x5A70 0x360B
+0x5A71 0x21095
+0x5A72 0x210A1
+0x5A73 0x21092
+0x5A74 0x2108F
+0x5A75 0x2109F
+0x5A76 0x21096
+0x5A77 0x21098
+0x5A78 0x2109D
+0x5A79 0x210A0
+0x5A7A 0x368D
+0x5A7B 0x21697
+0x5A7C 0x218EB
+0x5A7D 0x3770
+0x5A7E 0x21F87
+0x5B21 0x5EEB
+0x5B22 0x22432
+0x5B23 0x399A
+0x5B24 0x399F
+0x5B25 0x399D
+0x5B26 0x228D8
+0x5B27 0x228FB
+0x5B28 0x22906
+0x5B29 0x399B
+0x5B2A 0x228D1
+0x5B2B 0x61D5
+0x5B2C 0x2F8B0
+0x5B2D 0x3A60
+0x5B2E 0x3A64
+0x5B2F 0x3A69
+0x5B30 0x3A63
+0x5B31 0x3A67
+0x5B32 0x3A62
+0x5B33 0x22DF6
+0x5B34 0x22E04
+0x5B35 0x22DFE
+0x5B36 0x6502
+0x5B37 0x22DFF
+0x5B38 0x22DF7
+0x5B39 0x23018
+0x5B3A 0x3AAC
+0x5B3B 0x23014
+0x5B3C 0x230CD
+0x5B3D 0x23120
+0x5B3E 0x232DE
+0x5B3F 0x3B26
+0x5B40 0x3B23
+0x5B41 0x3B25
+0x5B42 0x23745
+0x5B43 0x23753
+0x5B44 0x3BF8
+0x5B45 0x2374B
+0x5B46 0x23755
+0x5B47 0x23741
+0x5B48 0x3BF7
+0x5B49 0x3BFB
+0x5B4A 0x3BFA
+0x5B4B 0x2375C
+0x5B4C 0x23754
+0x5B4D 0x23A71
+0x5B4E 0x23AD0
+0x5B4F 0x3CB0
+0x5B50 0x3CAF
+0x5B51 0x23C53
+0x5B52 0x24029
+0x5B53 0x2407E
+0x5B54 0x3D7E
+0x5B55 0x24079
+0x5B56 0x3D7D
+0x5B57 0x3D80
+0x5B58 0x24070
+0x5B59 0x2406A
+0x5B5A 0x3D7F
+0x5B5B 0x3D86
+0x5B5C 0x24085
+0x5B5D 0x24064
+0x5B5E 0x7012
+0x5B5F 0x24078
+0x5B60 0x3D81
+0x5B61 0x24432
+0x5B62 0x24427
+0x5B63 0x2442F
+0x5B64 0x3E24
+0x5B65 0x3E58
+0x5B66 0x3E57
+0x5B67 0x3EA0
+0x5B68 0x248BA
+0x5B69 0x3EFE
+0x5B6A 0x24A71
+0x5B6B 0x24A8C
+0x5B6C 0x3F15
+0x5B6D 0x24B1A
+0x5B6E 0x3F47
+0x5B6F 0x3F46
+0x5B70 0x24B98
+0x5B71 0x24CE4
+0x5B72-0x5B73 0x3F6B
+0x5B74 0x7585
+0x5B75 0x7654
+0x5B76 0x24EC2
+0x5B77 0x3FCC
+0x5B78 0x24EBA
+0x5B79 0x7655
+0x5B7A 0x24EC8
+0x5B7B 0x3FCB
+0x5B7C-0x5B7D 0x76A7
+0x5B7E 0x3FF9
+0x5C21 0x250B9
+0x5C22 0x250B8
+0x5C23 0x250A5
+0x5C24 0x252E2
+0x5C25 0x4078
+0x5C26 0x407A
+0x5C27 0x4075
+0x5C28 0x252D9
+0x5C29-0x5C2A 0x4076
+0x5C2B 0x252AC
+0x5C2C 0x252DD
+0x5C2D 0x40EA
+0x5C2E 0x40EE
+0x5C2F 0x40ED
+0x5C30 0x2559D
+0x5C31 0x40EC
+0x5C32 0x790F
+0x5C33 0x25711
+0x5C34 0x25703
+0x5C35-0x5C36 0x4184
+0x5C37 0x4183
+0x5C38 0x258EE
+0x5C39-0x5C3A 0x41BC
+0x5C3B 0x41D4
+0x5C3C 0x25CA4
+0x5C3D 0x25CD8
+0x5C3E-0x5C3F 0x25CDD
+0x5C40 0x4255
+0x5C41 0x25CE7
+0x5C42 0x4250
+0x5C43 0x424C
+0x5C44 0x4248
+0x5C45 0x25CD4
+0x5C46 0x4253
+0x5C47 0x25CCE
+0x5C48 0x4257
+0x5C49 0x4254
+0x5C4A 0x424E
+0x5C4B 0x424A
+0x5C4C 0x4251
+0x5C4D 0x25CF1
+0x5C4E 0x25CD3
+0x5C4F 0x4249
+0x5C50 0x424B
+0x5C51 0x4263
+0x5C52 0x25CCA
+0x5C53 0x25CE9
+0x5C54 0x42A7
+0x5C55 0x42A6
+0x5C56 0x42A4
+0x5C57 0x25F1A
+0x5C58 0x25F41
+0x5C59 0x2F968
+0x5C5A-0x5C5B 0x7CE4
+0x5C5C 0x2613D
+0x5C5D 0x26140
+0x5C5E 0x7E65
+0x5C5F 0x7E4E
+0x5C60 0x4317
+0x5C61 0x26143
+0x5C62 0x4316
+0x5C63 0x2613F
+0x5C64 0x2613C
+0x5C65 0x4363
+0x5C66 0x26321
+0x5C67 0x26320
+0x5C68 0x7F82
+0x5C69 0x263C6
+0x5C6A-0x5C6B 0x437B
+0x5C6C 0x263D1
+0x5C6D 0x263CA
+0x5C6E 0x2648E
+0x5C6F 0x26491
+0x5C70 0x43B0
+0x5C71 0x802D
+0x5C72 0x265E3
+0x5C73 0x26888
+0x5C74 0x4442
+0x5C75 0x26870
+0x5C76 0x4444
+0x5C77 0x2699D
+0x5C78 0x26A9D
+0x5C79 0x26A91
+0x5C7A-0x5C7B 0x26A98
+0x5C7C 0x4488
+0x5C7D 0x448F
+0x5C7E 0x4553
+0x5D21 0x455B
+0x5D22 0x26FBF
+0x5D23 0x4559
+0x5D24 0x26FAE
+0x5D25 0x26FB1
+0x5D26 0x26FCC
+0x5D27 0x27004
+0x5D28 0x85CA
+0x5D29 0x27016
+0x5D2A 0x26FCD
+0x5D2B 0x4554
+0x5D2C 0x85BC
+0x5D2D 0x26FE0
+0x5D2E 0x26FCB
+0x5D2F 0x26FD4
+0x5D30 0x26FC9
+0x5D31 0x271FF
+0x5D32 0x4599
+0x5D33 0x271FD
+0x5D34 0x27457
+0x5D35 0x27452
+0x5D36 0x27450
+0x5D37 0x27445
+0x5D38 0x2744D
+0x5D39 0x45F1
+0x5D3A 0x27453
+0x5D3B 0x45EF
+0x5D3C 0x27482
+0x5D3D 0x27444
+0x5D3E-0x5D3F 0x275CE
+0x5D40 0x275D2
+0x5D41 0x27602
+0x5D42 0x2774F
+0x5D43 0x27758
+0x5D44 0x4662
+0x5D45 0x27743
+0x5D46 0x4663
+0x5D47 0x27752
+0x5D48-0x5D49 0x4660
+0x5D4A 0x465F
+0x5D4B 0x27749
+0x5D4C 0x27753
+0x5D4D 0x2774D
+0x5D4E 0x468D
+0x5D4F 0x27884
+0x5D50 0x468E
+0x5D51 0x27883
+0x5D52 0x27932
+0x5D53 0x27AE2
+0x5D54 0x4709
+0x5D55 0x27AE4
+0x5D56 0x27AD3
+0x5D57 0x4705
+0x5D58 0x27AD5
+0x5D59 0x27ADD
+0x5D5A 0x4703
+0x5D5B 0x4706
+0x5D5C 0x27AEC
+0x5D5D 0x27AE6
+0x5D5E 0x27AD2
+0x5D5F 0x27AFA
+0x5D60 0x27ADA
+0x5D61 0x4731
+0x5D62 0x27C06
+0x5D63 0x27C04
+0x5D64 0x474F
+0x5D65 0x27C7B
+0x5D66 0x27D04
+0x5D67 0x27D02
+0x5D68 0x4766
+0x5D69 0x8CFF
+0x5D6A 0x47C4
+0x5D6B 0x27F60
+0x5D6C 0x47C3
+0x5D6D 0x47C1
+0x5D6E 0x47C5
+0x5D6F 0x28107
+0x5D70 0x28105
+0x5D71 0x2810C
+0x5D72 0x4821
+0x5D73 0x2815A
+0x5D74 0x481F
+0x5D75 0x4822
+0x5D76 0x2811A
+0x5D77 0x4827
+0x5D78 0x4820
+0x5D79 0x2838A
+0x5D7A 0x486D
+0x5D7B 0x486C
+0x5D7C 0x486B
+0x5D7D-0x5D7E 0x486F
+0x5E21 0x2838C
+0x5E22 0x28609
+0x5E23 0x288A6
+0x5E24 0x91A6
+0x5E25 0x288AC
+0x5E26 0x288A9
+0x5E27 0x4942
+0x5E28 0x28A8B
+0x5E29 0x93B6
+0x5E2A 0x28A8C
+0x5E2B 0x4944
+0x5E2C 0x4940
+0x5E2D-0x5E2E 0x28A88
+0x5E2F 0x493F
+0x5E30 0x28A93
+0x5E31 0x93AB
+0x5E32 0x498B
+0x5E33 0x28D83
+0x5E34 0x28F4F
+0x5E35 0x4A25
+0x5E36 0x4A28
+0x5E37 0x29120
+0x5E38 0x9721
+0x5E39 0x29236
+0x5E3A 0x292E2
+0x5E3B 0x4A75
+0x5E3C 0x4A72
+0x5E3D 0x292EE
+0x5E3E 0x4A6F
+0x5E3F 0x292E7
+0x5E40 0x292E9
+0x5E41 0x4A76
+0x5E42 0x4A71
+0x5E43 0x97A7
+0x5E44 0x292DF
+0x5E45 0x4A97
+0x5E46 0x293C7
+0x5E47 0x4AD7
+0x5E48 0x29509
+0x5E49 0x4AD6
+0x5E4A 0x29501
+0x5E4B 0x4AD8
+0x5E4C 0x4ADC
+0x5E4D 0x4ADB
+0x5E4E 0x4AD4
+0x5E4F 0x983E
+0x5E50 0x4B13
+0x5E51 0x4B11
+0x5E52 0x4B14
+0x5E53 0x29605
+0x5E54 0x2960C
+0x5E55 0x29778
+0x5E56 0x2975D
+0x5E57 0x4B51
+0x5E58 0x4B50
+0x5E59-0x5E5A 0x4B53
+0x5E5B 0x4B52
+0x5E5C 0x2975E
+0x5E5D 0x29760
+0x5E5E 0x29767
+0x5E5F 0x4B6D
+0x5E60 0x2FA05
+0x5E61 0x298F4
+0x5E62 0x4B95
+0x5E63 0x4B99
+0x5E64 0x298F1
+0x5E65 0x4B9A
+0x5E66 0x298FA
+0x5E67 0x4B93
+0x5E68 0x4B97
+0x5E69-0x5E6A 0x298F8
+0x5E6B 0x29909
+0x5E6C 0x298FD
+0x5E6D 0x298F7
+0x5E6E 0x4BDC
+0x5E6F 0x29A59
+0x5E70 0x4BFD
+0x5E71 0x29B60
+0x5E72 0x29B68
+0x5E73 0x4BFE
+0x5E74 0x4C00
+0x5E75 0x4C02
+0x5E76 0x4C01
+0x5E77 0x4C03
+0x5E78 0x29B6A
+0x5E79 0x29C14
+0x5E7A 0x29C3E
+0x5E7B 0x29CE4
+0x5E7C 0x4C27
+0x5E7D 0x4C26
+0x5E7E 0x4C24
+0x5F21 0x4C4C
+0x5F22 0x9BBC
+0x5F23 0x4C50
+0x5F24 0x4C55
+0x5F25 0x4C53
+0x5F26 0x9BB7
+0x5F27 0x4C52
+0x5F28 0x29DD2
+0x5F29 0x4C57
+0x5F2A 0x9BBE
+0x5F2B 0x4C58
+0x5F2C 0x4CD6
+0x5F2D 0x2A058
+0x5F2E 0x2A050
+0x5F2F 0x4CD4
+0x5F30 0x2A05C
+0x5F31 0x4CDA
+0x5F32 0x4CD9
+0x5F33 0x28119
+0x5F34 0x9D62
+0x5F35 0x4CD5
+0x5F36 0x4CE4
+0x5F37 0x2FA0E
+0x5F38 0x4CDC
+0x5F39 0x4D1B
+0x5F3A 0x9E8F
+0x5F3B 0x4D37
+0x5F3C 0x4D36
+0x5F3D 0x4D4B
+0x5F3E 0x9ECB
+0x5F3F 0x4D66
+0x5F40 0x4D76
+0x5F41 0x2A4DF
+0x5F42 0x4D7E
+0x5F43 0x4D7D
+0x5F44 0x4D7F
+0x5F45 0x4D84
+0x5F46 0x4D8B
+0x5F47 0x2A5D9
+0x5F48 0x4D94
+0x5F49 0x34A1
+0x5F4A 0x3511
+0x5F4B 0x20966
+0x5F4C 0x3610
+0x5F4D 0x56A9
+0x5F4E 0x210E1
+0x5F4F 0x210EF
+0x5F50 0x210E8
+0x5F51 0x21233
+0x5F52 0x5913
+0x5F53 0x218FE
+0x5F54 0x3732
+0x5F55 0x5BF4
+0x5F56 0x21AEF
+0x5F57 0x21AEC
+0x5F58 0x21CEC
+0x5F59 0x21F9C
+0x5F5A 0x3820
+0x5F5B 0x21F99
+0x5F5C 0x22170
+0x5F5D 0x2216E
+0x5F5E 0x389D
+0x5F5F 0x22441
+0x5F60 0x61EC
+0x5F61 0x61EF
+0x5F62 0x22902
+0x5F63 0x22901
+0x5F64 0x39A5
+0x5F65 0x22A1B
+0x5F66 0x22E23
+0x5F67 0x22E25
+0x5F68 0x22E24
+0x5F69 0x22E26
+0x5F6A 0x22E33
+0x5F6B 0x22E2F
+0x5F6C 0x2308F
+0x5F6D 0x23356
+0x5F6E 0x3C02
+0x5F6F 0x3BFE
+0x5F70 0x3C01
+0x5F71 0x6AD6
+0x5F72 0x3C03
+0x5F73 0x3BFF
+0x5F74 0x23799
+0x5F75 0x3C04
+0x5F76 0x2F8ED
+0x5F77 0x3C4A
+0x5F78 0x23AD9
+0x5F79 0x3D87
+0x5F7A 0x240B7
+0x5F7B 0x3D84
+0x5F7C 0x240B6
+0x5F7D 0x3D85
+0x5F7E 0x7209
+0x6021 0x24454
+0x6022 0x24457
+0x6023 0x2447A
+0x6024 0x3E59
+0x6025 0x7379
+0x6026 0x24A8E
+0x6027 0x74C6
+0x6028 0x24A90
+0x6029 0x24AB9
+0x602A 0x3F04
+0x602B 0x3F49
+0x602C 0x3F48
+0x602D 0x24CEF
+0x602E 0x3F6D
+0x602F-0x6030 0x3FD2
+0x6031 0x24EE2
+0x6032 0x3FD1
+0x6033 0x24ED6
+0x6034 0x24ED8
+0x6035 0x24EDA
+0x6036 0x24EDE
+0x6037 0x3FE7
+0x6038 0x400A
+0x6039 0x77C3
+0x603A 0x25308
+0x603B 0x25304
+0x603C-0x603D 0x2530A
+0x603E 0x25302
+0x603F 0x40F0
+0x6040 0x255AA
+0x6041 0x255C1
+0x6042 0x791F
+0x6043 0x258D7
+0x6044 0x258D9
+0x6045 0x7A65
+0x6046 0x258DE
+0x6047 0x258DA
+0x6048-0x6049 0x41BE
+0x604A 0x25A2A
+0x604B 0x7AC6
+0x604C 0x7C3A
+0x604D 0x25D31
+0x604E 0x7C36
+0x604F-0x6050 0x25D2B
+0x6051 0x25D29
+0x6052 0x25D2E
+0x6053 0x425E
+0x6054-0x6055 0x25D27
+0x6056 0x425B
+0x6057 0x25D5F
+0x6058 0x25D30
+0x6059 0x25D24
+0x605A 0x7CEB
+0x605B 0x42AB
+0x605C 0x25F3A
+0x605D 0x42AC
+0x605E 0x25F39
+0x605F 0x25F40
+0x6060 0x26180
+0x6061 0x26184
+0x6062 0x431F
+0x6063 0x431D
+0x6064-0x6065 0x26175
+0x6066 0x431C
+0x6067 0x2617C
+0x6068 0x431E
+0x6069 0x26178
+0x606A 0x2619B
+0x606B 0x2617E
+0x606C 0x2625A
+0x606D 0x4364
+0x606E 0x2632C
+0x606F 0x7F84
+0x6070 0x2649C
+0x6071 0x26847
+0x6072 0x2688A
+0x6073 0x4448
+0x6074 0x4447
+0x6075 0x26927
+0x6076 0x2704A
+0x6077 0x455E
+0x6078 0x4561
+0x6079 0x27027
+0x607A 0x85E0
+0x607B 0x85F3
+0x607C 0x2702E
+0x607D 0x27026
+0x607E 0x27208
+0x6121 0x45F7
+0x6122 0x274BD
+0x6123 0x27496
+0x6124 0x45F4
+0x6125 0x45F8
+0x6126 0x881E
+0x6127 0x274BE
+0x6128 0x2748E
+0x6129 0x27774
+0x612A 0x4664
+0x612B 0x27780
+0x612C 0x4692
+0x612D-0x612E 0x468F
+0x612F 0x89B4
+0x6130 0x4693
+0x6131 0x46A8
+0x6132-0x6133 0x2793C
+0x6134 0x46A9
+0x6135 0x2793A
+0x6136 0x27942
+0x6137 0x89F9
+0x6138 0x27B24
+0x6139 0x27B06
+0x613A 0x8B44
+0x613B 0x470E
+0x613C 0x27B15
+0x613D 0x470F
+0x613E 0x27B02
+0x613F 0x27B0C
+0x6140 0x470B
+0x6141 0x27B08
+0x6142 0x27B0A
+0x6143 0x27B05
+0x6144 0x27B1C
+0x6145 0x4710
+0x6146 0x4751
+0x6147 0x27C82
+0x6148 0x4750
+0x6149 0x27C86
+0x614A 0x4763
+0x614B 0x27E03
+0x614C 0x27F7B
+0x614D 0x47C7
+0x614E 0x27F7A
+0x614F 0x8E71
+0x6150 0x4824
+0x6151 0x4826
+0x6152 0x8E6E
+0x6153 0x28180
+0x6154 0x8E79
+0x6155 0x28158
+0x6156 0x8EC4
+0x6157 0x4874
+0x6158 0x4873
+0x6159 0x4872
+0x615A-0x615B 0x283AA
+0x615C 0x28436
+0x615D 0x2844A
+0x615E 0x48B1
+0x615F 0x908C
+0x6160 0x287D6
+0x6161 0x490E
+0x6162 0x4911
+0x6163 0x4910
+0x6164 0x490F
+0x6165 0x4912
+0x6166 0x4949
+0x6167 0x93C9
+0x6168 0x494F
+0x6169 0x494D
+0x616A 0x28B03
+0x616B 0x28ACF
+0x616C 0x4955
+0x616D 0x28D9F
+0x616E 0x28DA2
+0x616F 0x2902A
+0x6170 0x2902F
+0x6171 0x29144
+0x6172 0x29140
+0x6173 0x4A2C
+0x6174 0x4A2B
+0x6175 0x29311
+0x6176 0x2930F
+0x6177 0x4A79
+0x6178 0x2930D
+0x6179 0x29307
+0x617A 0x29303
+0x617B 0x4A7A
+0x617C 0x97B0
+0x617D-0x617E 0x4A99
+0x6221 0x29435
+0x6222-0x6223 0x4AAE
+0x6224 0x29504
+0x6225 0x4AE4
+0x6226 0x4AE1
+0x6227 0x4ADE
+0x6228 0x4AE6
+0x6229 0x4ADF
+0x622A 0x29526
+0x622B 0x4AE7
+0x622C 0x4AE2
+0x622D 0x4AE0
+0x622E 0x2951E
+0x622F 0x4AE5
+0x6230 0x985A
+0x6231 0x2960E
+0x6232 0x4B18
+0x6233-0x6235 0x2961D
+0x6236 0x4B56
+0x6237 0x29788
+0x6238 0x9946
+0x6239 0x2978D
+0x623A 0x29791
+0x623B 0x29780
+0x623C 0x4B6E
+0x623D-0x623E 0x29854
+0x623F 0x4B9D
+0x6240 0x4BA0
+0x6241 0x4B9C
+0x6242 0x29925
+0x6243 0x2991A
+0x6244-0x6245 0x4BA1
+0x6246 0x4B9F
+0x6247 0x4BDF
+0x6248 0x4BDE
+0x6249 0x9AC3
+0x624A 0x4BEA
+0x624B 0x29B88
+0x624C 0x4C06
+0x624D 0x29B7A
+0x624E 0x4C04
+0x624F 0x9B0F
+0x6250 0x29B80
+0x6251 0x29D1E
+0x6252 0x29DFC
+0x6253 0x29E25
+0x6254 0x4C5F
+0x6255 0x9BF4
+0x6256 0x9BFA
+0x6257 0x4C5C
+0x6258 0x29E0B
+0x6259 0x4C5E
+0x625A 0x29E06
+0x625B 0x29E04
+0x625C 0x9BDD
+0x625D 0x4C59
+0x625E 0x29DF9
+0x625F 0x29E00
+0x6260 0x4C64
+0x6261 0x4C5D
+0x6262 0x4C62
+0x6263 0x29E02
+0x6264 0x4C65
+0x6265 0x29E07
+0x6266 0x9BED
+0x6267 0x4C5B
+0x6268 0x9BEF
+0x6269 0x2A0B5
+0x626A 0x4CDD
+0x626B 0x2A087
+0x626C 0x4CDF
+0x626D 0x2A093
+0x626E 0x2FA0F
+0x626F 0x4CE2
+0x6270 0x2A0BE
+0x6271 0x2A266
+0x6272 0x4D27
+0x6273 0x2A2C7
+0x6274 0x2A2CF
+0x6275 0x9E96
+0x6276 0x4D3A
+0x6277 0x4D3C
+0x6278 0x2A33D
+0x6279 0x4D39
+0x627A 0x2A33C
+0x627B 0x2A347
+0x627C 0x4D3D
+0x627D 0x4D3B
+0x627E 0x9EB3
+0x6321 0x4D4C
+0x6322 0x2A3C3
+0x6323 0x4D68
+0x6324 0x9EE2
+0x6325 0x2A51B
+0x6326 0x4D80
+0x6327 0x4D85
+0x6328 0x2A5C9
+0x6329 0x4D95
+0x632A 0x2A5DD
+0x632B 0x4D96
+0x632C 0x2A693
+0x632D 0x9F8F
+0x632E 0x2043D
+0x632F 0x34A4
+0x6330 0x3512
+0x6331 0x56B1
+0x6332 0x3625
+0x6333 0x214E6
+0x6334 0x5B41
+0x6335 0x3737
+0x6336 0x21AF7
+0x6337 0x21FB0
+0x6338 0x21FAE
+0x6339 0x5E71
+0x633A 0x3868
+0x633B 0x3867
+0x633C 0x389E
+0x633D 0x2259F
+0x633E 0x2259E
+0x633F 0x22930
+0x6340 0x39AA
+0x6341 0x2294F
+0x6342 0x39A9
+0x6343 0x39A4
+0x6344 0x22927
+0x6345 0x22951
+0x6346 0x3A71
+0x6347 0x3A6F
+0x6348 0x22E51
+0x6349 0x22E54
+0x634A 0x22E56
+0x634B 0x23027
+0x634C 0x3AAD
+0x634D 0x23024
+0x634E 0x6AF6
+0x634F 0x3C0C
+0x6350 0x6AF2
+0x6351 0x3C0B
+0x6352 0x237EC
+0x6353 0x237C4
+0x6354 0x3C0F
+0x6355 0x3C79
+0x6356 0x240F8
+0x6357-0x6358 0x240F6
+0x6359 0x240ED
+0x635A 0x3D8D
+0x635B 0x3D8F
+0x635C 0x240F4
+0x635D 0x240EF
+0x635E 0x3D8E
+0x635F 0x3E0C
+0x6360 0x2447F
+0x6361 0x244A2
+0x6362 0x2447E
+0x6363 0x3EA6
+0x6364 0x248C5
+0x6365-0x6367 0x3EA3
+0x6368 0x7588
+0x6369 0x3F6E
+0x636A-0x636B 0x24EF1
+0x636C 0x3FFA
+0x636D 0x2502F
+0x636E 0x407C
+0x636F 0x407E
+0x6370 0x407B
+0x6371 0x407D
+0x6372 0x25323
+0x6373 0x25329
+0x6374 0x408D
+0x6375 0x40F4
+0x6376 0x40F3
+0x6377 0x2571B
+0x6378 0x258EB
+0x6379 0x4189
+0x637A 0x258EA
+0x637B 0x25A33
+0x637C 0x41C0
+0x637D 0x25D63
+0x637E 0x4265
+0x6421 0x25D92
+0x6422 0x25D65
+0x6423 0x42AD
+0x6424 0x4325
+0x6425 0x261A0
+0x6426 0x2F970
+0x6427 0x2625E
+0x6428 0x43C9
+0x6429 0x268AA
+0x642A 0x444A
+0x642B 0x268A9
+0x642C 0x8267
+0x642D 0x4489
+0x642E 0x2709C
+0x642F 0x4566
+0x6430 0x4570
+0x6431 0x27092
+0x6432 0x456D
+0x6433 0x4569
+0x6434 0x4567
+0x6435 0x27086
+0x6436 0x4572
+0x6437 0x860E
+0x6438 0x456E
+0x6439 0x27083
+0x643A 0x459C
+0x643B-0x643C 0x45FC
+0x643D 0x4604
+0x643E 0x45FF
+0x643F 0x2F9C2
+0x6440 0x45FE
+0x6441 0x4600
+0x6442 0x274CE
+0x6443 0x4666
+0x6444 0x4669
+0x6445 0x27793
+0x6446-0x6447 0x46AA
+0x6448 0x4717
+0x6449 0x27B2E
+0x644A-0x644B 0x27B27
+0x644C 0x4715
+0x644D 0x8B5E
+0x644E 0x4712
+0x644F 0x8D0E
+0x6450 0x27E18
+0x6451 0x27E16
+0x6452 0x27F8D
+0x6453 0x47CA
+0x6454 0x27F8E
+0x6455 0x47C9
+0x6456 0x47CB
+0x6457 0x27F90
+0x6458 0x27F8F
+0x6459 0x28181
+0x645A 0x4829
+0x645B 0x4828
+0x645C 0x2818A
+0x645D 0x2818C
+0x645E 0x2828D
+0x645F 0x4840
+0x6460-0x6461 0x4875
+0x6462 0x283B2
+0x6463 0x4888
+0x6464 0x287D9
+0x6465 0x91B6
+0x6466 0x4957
+0x6467 0x9401
+0x6468 0x28B0D
+0x6469 0x495F
+0x646A 0x28B13
+0x646B 0x941D
+0x646C 0x4958
+0x646D 0x495B
+0x646E 0x28B1B
+0x646F 0x942F
+0x6470 0x28DAC
+0x6471 0x49B3
+0x6472 0x28DB3
+0x6473 0x49EF
+0x6474 0x2915E
+0x6475 0x4A30
+0x6476 0x29160
+0x6477 0x29168
+0x6478 0x29163
+0x6479 0x29169
+0x647A 0x29167
+0x647B 0x4A41
+0x647C 0x4A4B
+0x647D 0x29328
+0x647E 0x4A7D
+0x6521 0x2932E
+0x6522 0x29330
+0x6523 0x4A7C
+0x6524 0x29326
+0x6525 0x29331
+0x6526 0x29341
+0x6527 0x97E0
+0x6528 0x293DA
+0x6529 0x97DB
+0x652A 0x2F9FA
+0x652B 0x2940B
+0x652C 0x9861
+0x652D 0x29534
+0x652E 0x29533
+0x652F 0x4AE8
+0x6530 0x4AEA
+0x6531 0x4AE9
+0x6532 0x29539
+0x6533 0x2953B
+0x6534 0x29540
+0x6535 0x29630
+0x6536 0x4B1B
+0x6537 0x29632
+0x6538 0x29637
+0x6539 0x4B55
+0x653A 0x994A
+0x653B 0x4B59
+0x653C 0x4B58
+0x653D 0x29781
+0x653E 0x2979F
+0x653F 0x297A7
+0x6540 0x4BA4
+0x6541 0x4BA3
+0x6542 0x29944
+0x6543-0x6544 0x29947
+0x6545 0x2993D
+0x6546 0x9A33
+0x6547 0x4BA7
+0x6548 0x29949
+0x6549 0x4BE0
+0x654A 0x29A80
+0x654B 0x29BA0
+0x654C 0x29B9D
+0x654D 0x4C08
+0x654E 0x4C0A
+0x654F 0x4C09
+0x6550 0x29B9C
+0x6551 0x29C47
+0x6552 0x29D07
+0x6553 0x4C71
+0x6554 0x9C0F
+0x6555 0x4C6C
+0x6556 0x29E49
+0x6557 0x9C11
+0x6558 0x29E44
+0x6559 0x9C03
+0x655A 0x9C01
+0x655B 0x4C6E
+0x655C 0x29EDF
+0x655D 0x9C16
+0x655E 0x29E4C
+0x655F 0x9BFD
+0x6560 0x29E4F
+0x6561 0x4CE0
+0x6562 0x4CEE
+0x6563 0x2A0C1
+0x6564 0x4CEB
+0x6565 0x2A0B9
+0x6566 0x2A0CB
+0x6567 0x2A0CF
+0x6568 0x2A0C4
+0x6569 0x9D93
+0x656A 0x4CEA
+0x656B 0x4CEF
+0x656C 0x4CE7
+0x656D 0x2A0CA
+0x656E 0x2A0C3
+0x656F 0x2A2D0
+0x6570 0x2A351
+0x6571-0x6572 0x4D48
+0x6573 0x2A3A8
+0x6574 0x2A3C7
+0x6575 0x2A3C6
+0x6576 0x4D4D
+0x6577 0x2A3CA
+0x6578 0x2A402
+0x6579 0x4D55
+0x657A 0x2A45D
+0x657B 0x2A45A
+0x657C 0x4D6A
+0x657D 0x4D6C
+0x657E 0x2A459
+0x6621 0x4D6B
+0x6622 0x2A4CC
+0x6623 0x2A51C
+0x6624 0x2A5CC
+0x6625-0x6626 0x4D98
+0x6627 0x4D97
+0x6628 0x2A5E8
+0x6629 0x2A5EC
+0x662A 0x2A5EA
+0x662B 0x2A6AD
+0x662C 0x2A6B0
+0x662D 0x2045F
+0x662E 0x20458
+0x662F 0x20457
+0x6630 0x535B
+0x6631 0x20B93
+0x6632 0x3616
+0x6633 0x2113B
+0x6634 0x56BF
+0x6635 0x21134
+0x6636 0x214F2
+0x6637 0x3739
+0x6638 0x21AFD
+0x6639 0x21C1D
+0x663A 0x3825
+0x663B 0x5DCE
+0x663C 0x22304
+0x663D 0x22448
+0x663E 0x22958
+0x663F 0x22E4F
+0x6640 0x3A74
+0x6641 0x22E6E
+0x6642 0x22E72
+0x6643 0x3AAE
+0x6644 0x2302E
+0x6645 0x237FC
+0x6646 0x237F4
+0x6647 0x23C36
+0x6648 0x2410E
+0x6649 0x3D92
+0x664A 0x3D94
+0x664B 0x24114
+0x664C 0x3D95
+0x664D 0x24119
+0x664E 0x3E0D
+0x664F 0x244A6
+0x6650 0x3E25
+0x6651 0x24AC9
+0x6652 0x24AC0
+0x6653 0x24ACC
+0x6654 0x24B1B
+0x6655 0x24BAA
+0x6656 0x24BA8
+0x6657 0x24F03
+0x6658-0x6659 0x3FD5
+0x665A 0x76AC
+0x665B 0x3FE8
+0x665C 0x25035
+0x665D 0x407F
+0x665E 0x77D2
+0x665F-0x6661 0x40F5
+0x6662 0x255D9
+0x6663 0x4124
+0x6664 0x418D
+0x6665 0x418A
+0x6666 0x25A3F
+0x6667 0x25A3D
+0x6668 0x426C
+0x6669 0x4266
+0x666A 0x426A
+0x666B 0x25D8B
+0x666C 0x4267
+0x666D 0x426D
+0x666E 0x4268
+0x666F 0x7C52
+0x6670 0x25D68
+0x6671 0x25D8A
+0x6672 0x25F58
+0x6673 0x25F57
+0x6674 0x261CE
+0x6675 0x261BC
+0x6676-0x6677 0x261C0
+0x6678 0x261BF
+0x6679 0x261AB
+0x667A 0x2625F
+0x667B 0x4365
+0x667C 0x264A6
+0x667D 0x439A
+0x667E 0x26529
+0x6721 0x43B1
+0x6722 0x444B
+0x6723 0x444D
+0x6724 0x444C
+0x6725 0x444E
+0x6726 0x268B8
+0x6727 0x4573
+0x6728 0x4575
+0x6729 0x270DD
+0x672A 0x270D6
+0x672B 0x2F9B1
+0x672C 0x270D5
+0x672D 0x270E7
+0x672E 0x270D8
+0x672F 0x274EC
+0x6730 0x4603
+0x6731 0x27500
+0x6732 0x27507
+0x6733 0x274FD
+0x6734 0x274F1
+0x6735 0x274FF
+0x6736 0x277AA
+0x6737 0x277B0
+0x6738 0x27B48
+0x6739 0x471E
+0x673A 0x27B53
+0x673B 0x8B73
+0x673C 0x27B4D
+0x673D 0x4719
+0x673E 0x471C
+0x673F 0x471A
+0x6740 0x471D
+0x6741 0x8B76
+0x6742 0x27B43
+0x6743 0x27B50
+0x6744 0x4743
+0x6745 0x4752
+0x6746 0x27C8C
+0x6747 0x27E27
+0x6748 0x4795
+0x6749 0x27F99
+0x674A 0x47CC
+0x674B 0x281B1
+0x674C 0x482B
+0x674D 0x281B0
+0x674E 0x281AA
+0x674F 0x281AC
+0x6750 0x482A
+0x6751 0x8EC7
+0x6752 0x4877
+0x6753 0x283C8
+0x6754 0x283CA
+0x6755 0x28642
+0x6756 0x287E0
+0x6757-0x6758 0x288E7
+0x6759 0x288E6
+0x675A-0x675B 0x4913
+0x675C 0x9434
+0x675D 0x28B5B
+0x675E 0x28B56
+0x675F 0x495D
+0x6760 0x28B5A
+0x6761 0x4960
+0x6762 0x943E
+0x6763 0x4962
+0x6764 0x28CB8
+0x6765 0x28DC5
+0x6766 0x49B2
+0x6767 0x49F0
+0x6768 0x29048
+0x6769 0x2917D
+0x676A 0x2917C
+0x676B-0x676C 0x29181
+0x676D 0x29162
+0x676E 0x4A4C
+0x676F 0x29345
+0x6770 0x4A82
+0x6771 0x97BC
+0x6772 0x4A81
+0x6773 0x4A9B
+0x6774 0x293E3
+0x6775 0x4AA4
+0x6776 0x4AEE
+0x6777 0x4AEC
+0x6778 0x29550
+0x6779 0x4AED
+0x677A 0x2954F
+0x677B 0x4AF0
+0x677C 0x4AEF
+0x677D 0x29639
+0x677E 0x4B1D
+0x6821 0x2963A
+0x6822 0x4B60
+0x6823 0x4B5E
+0x6824 0x4B5D
+0x6825 0x297C1
+0x6826 0x2994E
+0x6827 0x2996E
+0x6828 0x4BB1
+0x6829-0x682B 0x4BAB
+0x682C 0x29971
+0x682D 0x4BAE
+0x682E 0x29A8C
+0x682F 0x29A89
+0x6830 0x4BE2
+0x6831 0x29AE5
+0x6832 0x29BB3
+0x6833 0x29BB6
+0x6834 0x29BB4
+0x6835 0x29C4D
+0x6836 0x9B39
+0x6837 0x29D13
+0x6838 0x29E78
+0x6839 0x9C2A
+0x683A 0x4C7B
+0x683B 0x9C26
+0x683C 0x4C78
+0x683D 0x4C75
+0x683E 0x9C27
+0x683F 0x29E72
+0x6840 0x4CF2
+0x6841 0x4CF4
+0x6842 0x4CF3
+0x6843 0x9DC0
+0x6844 0x9DC9
+0x6845 0x2A275
+0x6846 0x2A2DA
+0x6847 0x2A2D7
+0x6848 0x4D3F
+0x6849 0x4D3E
+0x684A 0x4D40
+0x684B 0x4D4E
+0x684C 0x4D57
+0x684D 0x4D59
+0x684E 0x4D58
+0x684F 0x2FA16
+0x6850 0x2A469
+0x6851 0x2A467
+0x6852 0x4D6E
+0x6853 0x2A466
+0x6854 0x2A46F
+0x6855 0x2A471
+0x6856 0x9EEC
+0x6857 0x2A4CF
+0x6858 0x2A523
+0x6859 0x4D81
+0x685A 0x4D86
+0x685B 0x2A5A5
+0x685C 0x4D8F
+0x685D 0x2A5FE
+0x685E 0x2A5FB
+0x685F 0x2A5FD
+0x6860 0x9F68
+0x6861 0x4D9B
+0x6862 0x4DB1
+0x6863 0x4DB3
+0x6864 0x2116D
+0x6865 0x373A
+0x6866 0x21B05
+0x6867 0x21C20
+0x6868 0x3827
+0x6869-0x686A 0x21FC8
+0x686B 0x386A
+0x686C 0x39AC
+0x686D 0x23127
+0x686E 0x3C18
+0x686F 0x2381E
+0x6870 0x23936
+0x6871 0x3C4C
+0x6872 0x2413D
+0x6873 0x3D96
+0x6874 0x248D7
+0x6875 0x3F4A
+0x6876 0x24BAD
+0x6877 0x24D00
+0x6878 0x4081
+0x6879 0x2533A
+0x687A 0x4083
+0x687B 0x40F9
+0x687C 0x40F8
+0x687D 0x25726
+0x687E 0x418E
+0x6921 0x418F
+0x6922 0x41C1
+0x6923 0x25DB7
+0x6924 0x25DB6
+0x6925 0x25DC0
+0x6926 0x4270
+0x6927 0x25D9B
+0x6928 0x4271
+0x6929 0x261D8
+0x692A 0x432A
+0x692B 0x432D
+0x692C 0x437D
+0x692D 0x8032
+0x692E 0x8031
+0x692F 0x268C0
+0x6930 0x444F
+0x6931 0x268BF
+0x6932 0x26ABF
+0x6933 0x4490
+0x6934 0x27120
+0x6935 0x270D0
+0x6936 0x2710E
+0x6937 0x4579
+0x6938-0x6939 0x2711D
+0x693A 0x27115
+0x693B 0x27114
+0x693C 0x2751E
+0x693D 0x2752C
+0x693E 0x4605
+0x693F 0x277B9
+0x6940 0x277B8
+0x6941 0x277B6
+0x6942 0x2789E
+0x6943 0x2789C
+0x6944 0x2794D
+0x6945 0x89FD
+0x6946 0x27B6E
+0x6947 0x27B60
+0x6948 0x4721
+0x6949 0x27B64
+0x694A 0x27B62
+0x694B 0x261E5
+0x694C 0x4732
+0x694D 0x27FA3
+0x694E 0x47CD
+0x694F 0x47CF
+0x6950 0x283D2
+0x6951 0x283D5
+0x6952 0x908E
+0x6953 0x4916
+0x6954 0x4915
+0x6955 0x49B5
+0x6956 0x4A08
+0x6957 0x29055
+0x6958 0x4A32
+0x6959 0x29193
+0x695A-0x695B 0x4A33
+0x695C 0x4A3C
+0x695D 0x29356
+0x695E 0x97C2
+0x695F 0x293E9
+0x6960 0x4A9C
+0x6961 0x29445
+0x6962 0x4AF4
+0x6963 0x4AF2
+0x6964 0x2967C
+0x6965 0x4B62
+0x6966 0x297D3
+0x6967 0x4B61
+0x6968 0x4B64
+0x6969 0x4BB5
+0x696A 0x9A4B
+0x696B 0x4BB4
+0x696C 0x2998E
+0x696D 0x29A97
+0x696E 0x4BE3
+0x696F 0x29A9B
+0x6970 0x29A99
+0x6971 0x9B1C
+0x6972 0x4C0E
+0x6973 0x29BCF
+0x6974 0x9B1B
+0x6975 0x29C59
+0x6976 0x4C2C
+0x6977 0x4C2B
+0x6978 0x29D20
+0x6979 0x29D23
+0x697A 0x29D2A
+0x697B 0x4C85
+0x697C 0x4C81
+0x697D 0x4C7E
+0x697E 0x4C83
+0x6A21 0x4C80
+0x6A22 0x29EB0
+0x6A23 0x9C42
+0x6A24 0x2A12F
+0x6A25 0x9DD4
+0x6A26 0x4CFB
+0x6A27 0x4CF7
+0x6A28 0x2A132
+0x6A29 0x2A143
+0x6A2A 0x2A13F
+0x6A2B 0x2A139
+0x6A2C 0x4CF8
+0x6A2D 0x2A130
+0x6A2E 0x2A2DD
+0x6A2F-0x6A30 0x2A3DA
+0x6A31 0x4D5A
+0x6A32 0x2A484
+0x6A33 0x2A47F
+0x6A34 0x2A472
+0x6A35 0x2A480
+0x6A36 0x2A4EE
+0x6A37 0x4D78
+0x6A38 0x2A52A
+0x6A39 0x2A522
+0x6A3A 0x2A571
+0x6A3B 0x2A5CD
+0x6A3C 0x4D9D
+0x6A3D 0x4D9C
+0x6A3E 0x2A60F
+0x6A3F 0x2A618
+0x6A40 0x2046A
+0x6A41 0x34A9
+0x6A42 0x34BF
+0x6A43 0x56D0
+0x6A44 0x56CF
+0x6A45 0x21B0C
+0x6A46 0x5DDA
+0x6A47 0x225A6
+0x6A48 0x3A77
+0x6A49 0x3A76
+0x6A4A 0x23037
+0x6A4B 0x3ABB
+0x6A4C 0x66EA
+0x6A4D 0x23AE2
+0x6A4E 0x3D9B
+0x6A4F 0x244BC
+0x6A50 0x3E0F
+0x6A51 0x3E5B
+0x6A52 0x24AD5
+0x6A53 0x3F4C
+0x6A54 0x3F6F
+0x6A55 0x3FD9
+0x6A56 0x24F12
+0x6A57 0x4082
+0x6A58 0x2534B
+0x6A59 0x25341
+0x6A5A 0x253A1
+0x6A5B 0x255EC
+0x6A5C 0x4274
+0x6A5D 0x4272
+0x6A5E 0x25DD4
+0x6A5F-0x6A60 0x25DD8
+0x6A61 0x4273
+0x6A62 0x25DDA
+0x6A63-0x6A64 0x25F6C
+0x6A65 0x42B1
+0x6A66 0x432E
+0x6A67 0x261E7
+0x6A68-0x6A69 0x261EB
+0x6A6A 0x26262
+0x6A6B 0x434E
+0x6A6C 0x2652B
+0x6A6D 0x2660D
+0x6A6E 0x268CD
+0x6A6F 0x26AC3
+0x6A70 0x2713F
+0x6A71 0x2713C
+0x6A72 0x2713E
+0x6A73 0x2713D
+0x6A74 0x2713A
+0x6A75 0x27138
+0x6A76-0x6A77 0x27544
+0x6A78 0x460B
+0x6A79 0x27548
+0x6A7A 0x27550
+0x6A7B 0x466C
+0x6A7C 0x8B89
+0x6A7D-0x6A7E 0x27B78
+0x6B21 0x478B
+0x6B22 0x27E3E
+0x6B23 0x47D0
+0x6B24 0x482D
+0x6B25 0x28654
+0x6B26 0x48E4
+0x6B27 0x4971
+0x6B28 0x28BB9
+0x6B29 0x9458
+0x6B2A 0x496F
+0x6B2B 0x2905F
+0x6B2C 0x4A87
+0x6B2D 0x4AA5
+0x6B2E 0x29572
+0x6B2F 0x29575
+0x6B30 0x4B1E
+0x6B31 0x4B65
+0x6B32 0x4BB9
+0x6B33-0x6B34 0x4BB7
+0x6B35 0x4BE4
+0x6B36 0x29AA3
+0x6B37 0x29AA5
+0x6B38-0x6B39 0x29BDC
+0x6B3A 0x29C5A
+0x6B3B 0x4C8C
+0x6B3C-0x6B3D 0x4C89
+0x6B3E-0x6B3F 0x29EDB
+0x6B40 0x4C8B
+0x6B41 0x2A1AB
+0x6B42 0x2A184
+0x6B43 0x2A176
+0x6B44 0x4D01
+0x6B45 0x4CFE
+0x6B46 0x9DE7
+0x6B47 0x4D03
+0x6B48 0x4D06
+0x6B49 0x2A183
+0x6B4A 0x9DEA
+0x6B4B 0x9DF1
+0x6B4C 0x2A27F
+0x6B4D 0x4D1D
+0x6B4E 0x4D43
+0x6B4F 0x2A373
+0x6B50 0x2A3AD
+0x6B51 0x2A3B0
+0x6B52 0x4D4F
+0x6B53 0x2A40F
+0x6B54 0x2A40C
+0x6B55 0x4D5B
+0x6B56 0x4D70
+0x6B57 0x2A579
+0x6B58 0x4D88
+0x6B59 0x2A577
+0x6B5A 0x2A57A
+0x6B5B 0x4D89
+0x6B5C 0x9F44
+0x6B5D 0x2A632
+0x6B5E 0x2A627
+0x6B5F 0x2A62A
+0x6B60 0x2A62C
+0x6B61 0x9F6D
+0x6B62-0x6B63 0x2A628
+0x6B64 0x2A638
+0x6B65 0x2082F
+0x6B66 0x2117B
+0x6B67 0x21B0D
+0x6B68 0x5DD9
+0x6B69 0x21FD6
+0x6B6A 0x21FD5
+0x6B6B 0x22EA1
+0x6B6C 0x2384C
+0x6B6D-0x6B6E 0x3D9E
+0x6B6F 0x3EA7
+0x6B70 0x3F4B
+0x6B71 0x3FDB
+0x6B72 0x3FDA
+0x6B73 0x24FC0
+0x6B74 0x77D6
+0x6B75 0x408E
+0x6B76 0x4276
+0x6B77 0x25DF4
+0x6B78 0x4330
+0x6B79 0x432F
+0x6B7A 0x261F0
+0x6B7B 0x4366
+0x6B7C 0x2633F
+0x6B7D 0x457E
+0x6B7E 0x2755D
+0x6C21 0x27572
+0x6C22 0x27562
+0x6C23 0x883A
+0x6C24 0x27566
+0x6C25 0x8975
+0x6C26 0x466F
+0x6C27 0x27B88
+0x6C28 0x47D1
+0x6C29 0x482F
+0x6C2A 0x281E8
+0x6C2B 0x281E4
+0x6C2C 0x48B2
+0x6C2D 0x4918
+0x6C2E 0x4917
+0x6C2F 0x288FF
+0x6C30 0x4976
+0x6C31 0x291AF
+0x6C32 0x291AE
+0x6C33 0x4A4F
+0x6C34 0x4A89
+0x6C35 0x293F2
+0x6C36 0x29448
+0x6C37 0x29581
+0x6C38 0x2957E
+0x6C39 0x4AF5
+0x6C3A 0x4B1F
+0x6C3B 0x29652
+0x6C3C 0x297EF
+0x6C3D 0x9A5D
+0x6C3E 0x4BE5
+0x6C3F 0x29AAD
+0x6C40 0x29BE6
+0x6C41 0x4C10
+0x6C42 0x29BED
+0x6C43 0x4C0F
+0x6C44 0x29BE9
+0x6C45 0x29C61
+0x6C46 0x29C60
+0x6C47 0x29D33
+0x6C48-0x6C49 0x4C2F
+0x6C4A 0x9C64
+0x6C4B 0x29F0B
+0x6C4C 0x29F08
+0x6C4D-0x6C4E 0x4C93
+0x6C4F 0x29F07
+0x6C50 0x4D07
+0x6C51 0x4D09
+0x6C52 0x4D08
+0x6C53 0x2A1CA
+0x6C54 0x4D0B
+0x6C55 0x2A1C6
+0x6C56 0x9E0A
+0x6C57 0x2A284
+0x6C58 0x2A2EB
+0x6C59 0x2A37D
+0x6C5A 0x4D50
+0x6C5B 0x4D71
+0x6C5C 0x2A49B
+0x6C5D 0x2A4A2
+0x6C5E 0x2A4A1
+0x6C5F 0x2A4A0
+0x6C60 0x2A49C
+0x6C61-0x6C62 0x4D7B
+0x6C63 0x2A580
+0x6C64 0x9F73
+0x6C65 0x2A640
+0x6C66 0x4DA1
+0x6C67 0x2A639
+0x6C68 0x2A63C
+0x6C69 0x4DA0
+0x6C6A 0x4DA2
+0x6C6B 0x208CA
+0x6C6C 0x361B
+0x6C6D 0x21189
+0x6C6E 0x3682
+0x6C6F 0x2303C
+0x6C70 0x23940
+0x6C71 0x24163
+0x6C72 0x24169
+0x6C73 0x3FE9
+0x6C74 0x25353
+0x6C75 0x4084
+0x6C76 0x77E1
+0x6C77 0x25917
+0x6C78 0x2591A
+0x6C79 0x25E00
+0x6C7A 0x42B3
+0x6C7B 0x4334
+0x6C7C 0x4333
+0x6C7D 0x4580
+0x6C7E 0x2756F
+0x6D21 0x278AB
+0x6D22 0x46AD
+0x6D23 0x27B91
+0x6D24 0x4744
+0x6D25 0x4755
+0x6D26 0x27FB1
+0x6D27 0x47D2
+0x6D28 0x281EF
+0x6D29-0x6D2A 0x28DF1
+0x6D2B 0x291B7
+0x6D2C 0x291B5
+0x6D2D 0x4A8A
+0x6D2E 0x29586
+0x6D2F 0x2965A
+0x6D30 0x4B67
+0x6D31 0x299C6
+0x6D32 0x299CB
+0x6D33 0x4BE6
+0x6D34 0x29AB2
+0x6D35 0x4C13
+0x6D36 0x29BF3
+0x6D37 0x9B2D
+0x6D38 0x29F27
+0x6D39 0x4C97
+0x6D3A 0x9E0C
+0x6D3B 0x2A1D5
+0x6D3C 0x2A1D8
+0x6D3D 0x4D0C
+0x6D3E 0x2A1EC
+0x6D3F 0x2A287
+0x6D40 0x2A2F2
+0x6D41 0x4D46
+0x6D42 0x4D5C
+0x6D43 0x4D74
+0x6D44 0x4D72
+0x6D45 0x2A4AD
+0x6D46 0x2A4B0
+0x6D47 0x2A4FD
+0x6D48 0x9F1F
+0x6D49 0x2A587
+0x6D4A 0x2A64A
+0x6D4B 0x4DA4
+0x6D4C 0x4DA3
+0x6D4D 0x2A64E
+0x6D4E 0x2A649
+0x6D4F 0x2A651
+0x6D50 0x2A64D
+0x6D51 0x4DB4
+0x6D52 0x20472
+0x6D53 0x3536
+0x6D54 0x21B16
+0x6D55 0x2386D
+0x6D56 0x23941
+0x6D57 0x3CB2
+0x6D58 0x24171
+0x6D59 0x24174
+0x6D5A 0x3F16
+0x6D5B 0x7C70
+0x6D5C 0x4277
+0x6D5D 0x25F7C
+0x6D5E 0x457F
+0x6D5F 0x2718A
+0x6D60 0x27956
+0x6D61 0x487D
+0x6D62 0x9479
+0x6D63 0x28BFA
+0x6D64 0x974A
+0x6D65 0x4A8C
+0x6D66 0x2965B
+0x6D67 0x4B68
+0x6D68 0x4BBE
+0x6D69 0x4C15
+0x6D6A 0x2A1F5
+0x6D6B 0x2A1F0
+0x6D6C 0x2A2F3
+0x6D6D 0x2A37F
+0x6D6E 0x2A413
+0x6D6F 0x4D75
+0x6D70 0x4DA5
+0x6D71 0x21B19
+0x6D72 0x22985
+0x6D73 0x22EB0
+0x6D74 0x24177
+0x6D75 0x255FF
+0x6D76 0x4278
+0x6D77 0x4335
+0x6D78 0x7E9D
+0x6D79 0x4582
+0x6D7A 0x27187
+0x6D7B 0x4583
+0x6D7C 0x2718B
+0x6D7D 0x4671
+0x6D7E 0x27B9E
+0x6E21 0x487E
+0x6E22 0x4A8E
+0x6E23 0x2958F
+0x6E24 0x9960
+0x6E25 0x4B69
+0x6E26 0x29839
+0x6E27 0x299D4
+0x6E28 0x29AF1
+0x6E29 0x29C02
+0x6E2A 0x29C6B
+0x6E2B 0x29D40
+0x6E2C-0x6E2D 0x4C9A
+0x6E2E 0x2A210
+0x6E2F 0x2A4BE
+0x6E30 0x2A4B9
+0x6E31 0x4D90
+0x6E32 0x2A664
+0x6E33 0x9F9E
+0x6E34 0x24AE9
+0x6E35 0x27190
+0x6E36 0x4586
+0x6E37 0x4585
+0x6E38 0x2721C
+0x6E39 0x460E
+0x6E3A 0x27592
+0x6E3B 0x278AE
+0x6E3C 0x27BA3
+0x6E3D 0x4919
+0x6E3E 0x291C9
+0x6E3F 0x4BC0
+0x6E40 0x299D8
+0x6E41 0x29D44
+0x6E42 0x2A224
+0x6E43 0x9EF8
+0x6E44 0x9F3A
+0x6E45 0x9F7D
+0x6E46 0x2A670
+0x6E47 0x2A6D3
+0x6E48 0x400D
+0x6E49 0x4C16
+0x6E4A 0x2A4C3
+0x6E4B-0x6E4C 0x4DA9
+0x6E4D 0x4085
+0x6E4E 0x25E21
+0x6E4F 0x26ACA
+0x6E50 0x2759C
+0x6E51 0x29C73
+0x6E52 0x2A386
+0x6E53 0x2A5C1
+0x6E54 0x29C09
+0x6E55 0x9F96
+0x6E56 0x2A6D5
+0x6E57 0x4BC2
+0x6E58 0x4C31
+0x6E59 0x4D11
+0x6E5A 0x4DAB
+0x6E5B 0x4C9C
+0x6E5C 0x291D4
diff --git a/etc/charsets/CNS-5.map b/etc/charsets/CNS-5.map
new file mode 100644 (file)
index 0000000..f809527
--- /dev/null
@@ -0,0 +1,8221 @@
+# Generated from data at http://sourceforge.net/cvs/?group_id=26261
+0x2121 0x200D1
+0x2122 0x200CB
+0x2123 0x200C9
+0x2124 0x2010C
+0x2125 0x20000
+0x2126 0x20087
+0x2127 0x2010D
+0x2128 0x2010F
+0x2129 0x2F81D
+0x212A 0x22398
+0x212B 0x200D2
+0x212C 0x20111
+0x212D 0x2007E
+0x212E 0x20AD3
+0x212F 0x21552
+0x2130 0x21CFE
+0x2131 0x225A9
+0x2132 0x23942
+0x2133 0x20009
+0x2134 0x200D6
+0x2135 0x204DD
+0x2136 0x204DC
+0x2137 0x20502
+0x2138 0x20573
+0x2139 0x20676
+0x213A-0x213B 0x206A7
+0x213C 0x20833
+0x213D 0x208CC
+0x213E 0x20A0D
+0x213F 0x20A2C
+0x2140 0x20B1B
+0x2141 0x355A
+0x2142 0x20B1D
+0x2143 0x20B99
+0x2144 0x2123E
+0x2145 0x21D2D
+0x2146 0x21D2F
+0x2147 0x22399
+0x2148 0x233B3
+0x2149 0x239B6
+0x214A 0x23B1B
+0x214B 0x244EF
+0x214C 0x248E9
+0x214D 0x20014
+0x214E 0x20094
+0x214F 0x200E1
+0x2150 0x20506
+0x2151 0x2054A
+0x2152 0x20544
+0x2153 0x20631
+0x2154 0x2067A
+0x2155-0x2156 0x206AD
+0x2157 0x206B1
+0x2158 0x20838
+0x2159 0x20837
+0x215A-0x215B 0x2097D
+0x215C 0x20A2D
+0x215D 0x20A32
+0x215E 0x20B23
+0x215F 0x20B26
+0x2160 0x2F83A
+0x2161 0x20BA0
+0x2162 0x216A8
+0x2163 0x2193F
+0x2164 0x219BC
+0x2165 0x21BC4
+0x2166 0x21D3B
+0x2167 0x22019
+0x2168 0x22018
+0x2169 0x221B3
+0x216A 0x223AA
+0x216B 0x224BE
+0x216C 0x225AC
+0x216D 0x22A25
+0x216E 0x22A66
+0x216F 0x22A6B
+0x2170 0x23943
+0x2171 0x239B5
+0x2172 0x23AEC
+0x2173 0x23C76
+0x2174 0x3CBC
+0x2175 0x24614
+0x2176 0x215DC
+0x2177-0x2178 0x2471C
+0x2179 0x264D0
+0x217A 0x26612
+0x217B 0x26AF3
+0x217C 0x28669
+0x217D 0x49B9
+0x217E 0x28E11
+0x2221 0x28E15
+0x2222 0x28E10
+0x2223 0x28E13
+0x2224-0x2225 0x200A4
+0x2226 0x201D0
+0x2227 0x201BA
+0x2228 0x201CB
+0x2229 0x2057B
+0x222A 0x20686
+0x222B 0x206BB
+0x222C 0x206BA
+0x222D 0x206C3
+0x222E 0x206B9
+0x222F 0x206C0
+0x2230 0x34DE
+0x2231 0x20839
+0x2232 0x2083B
+0x2233 0x20841
+0x2234 0x208D1
+0x2235 0x208CF
+0x2236 0x208D2
+0x2237 0x2092E
+0x2238 0x2096E
+0x2239 0x2098C
+0x223A 0x20988
+0x223B 0x20A35
+0x223C 0x3543
+0x223D-0x223E 0x20A3A
+0x223F-0x2240 0x20A38
+0x2241 0x20B2E
+0x2242 0x20B2C
+0x2243 0x20BC8
+0x2244 0x20BB5
+0x2245 0x20BAD
+0x2246 0x20BB0
+0x2247 0x20BAB
+0x2248 0x211B3
+0x2249 0x211A9
+0x224A 0x216BB
+0x224B 0x216B9
+0x224C 0x21B5A
+0x224D 0x21BCD
+0x224E 0x21C2B
+0x224F 0x21D05
+0x2250 0x37AC
+0x2251 0x37AA
+0x2252 0x21D51
+0x2253 0x21D4B
+0x2254 0x21FEA
+0x2255 0x21FED
+0x2256 0x22036
+0x2257 0x22062
+0x2258 0x22056
+0x2259 0x22055
+0x225A 0x22064
+0x225B 0x22058
+0x225C 0x5E07
+0x225D 0x221DA
+0x225E 0x221D8
+0x225F 0x223AD
+0x2260 0x223AB
+0x2261 0x224C0
+0x2262 0x224C3
+0x2263 0x225B3
+0x2264 0x225B7
+0x2265 0x225BA
+0x2266 0x5FCB
+0x2267 0x38FE
+0x2268 0x225C7
+0x2269 0x225B5
+0x226A 0x2298E
+0x226B 0x22A73
+0x226C 0x22A6C
+0x226D 0x22A74
+0x226E 0x2F8B4
+0x226F 0x22A72
+0x2270 0x22A71
+0x2271 0x22A82
+0x2272 0x22A70
+0x2273 0x2313F
+0x2274 0x233BA
+0x2275 0x233B8
+0x2276 0x239B7
+0x2277 0x24723
+0x2278 0x24721
+0x2279 0x2472B
+0x227A 0x24726
+0x227B 0x24722
+0x227C 0x24D25
+0x227D 0x250E4
+0x227E 0x25415
+0x2321 0x264E4
+0x2322 0x26633
+0x2323 0x2662A
+0x2324 0x26632
+0x2325 0x26629
+0x2326 0x26AFB
+0x2327-0x2328 0x2795B
+0x2329 0x27C28
+0x232A 0x2866F
+0x232B 0x2866D
+0x232C 0x2866B
+0x232D 0x2866E
+0x232E 0x28E16
+0x232F 0x20022
+0x2330 0x20116
+0x2331 0x20148
+0x2332 0x201D8
+0x2333 0x20200
+0x2334 0x3441
+0x2335 0x20480
+0x2336 0x204E4
+0x2337 0x34B4
+0x2338 0x204E7
+0x2339 0x2050C
+0x233A 0x20553
+0x233B 0x205B7
+0x233C 0x20AE8
+0x233D 0x206D1
+0x233E 0x206E5
+0x233F 0x206D8
+0x2340 0x206D6
+0x2341 0x206DA
+0x2342 0x206D9
+0x2343 0x206D5
+0x2344 0x206E6
+0x2345 0x206D4
+0x2346 0x206D3
+0x2347 0x20844
+0x2348-0x2349 0x208D6
+0x234A 0x20913
+0x234B 0x5324
+0x234C 0x20970
+0x234D 0x20992
+0x234E 0x209DB
+0x234F 0x209DA
+0x2350 0x20A41
+0x2351 0x20A43
+0x2352 0x20B33
+0x2353 0x20BF6
+0x2354 0x20BD4
+0x2355 0x20BDD
+0x2356 0x20BD0
+0x2357 0x20C04
+0x2358 0x20BD9
+0x2359 0x20BDB
+0x235A 0x20C05
+0x235B 0x20BD3
+0x235C 0x20BE1
+0x235D 0x21280
+0x235E 0x21277
+0x235F-0x2361 0x21281
+0x2362 0x2F85C
+0x2363 0x21561
+0x2364 0x21560
+0x2365 0x216D8
+0x2366-0x2367 0x216D6
+0x2368 0x24605
+0x2369 0x2194D
+0x236A 0x21948
+0x236B 0x21BD6
+0x236C 0x21BCF
+0x236D 0x21BD9
+0x236E 0x21BD8
+0x236F 0x21C3D
+0x2370 0x37B3
+0x2371 0x21D54
+0x2372-0x2373 0x21D5B
+0x2374 0x37B4
+0x2375 0x21D59
+0x2376 0x21D58
+0x2377 0x21D5A
+0x2378-0x2379 0x21D55
+0x237A 0x21D82
+0x237B 0x21FF0
+0x237C 0x2201C
+0x237D 0x2206A
+0x237E 0x22069
+0x2421 0x22071
+0x2422 0x22067
+0x2423 0x2206C
+0x2424 0x2206E
+0x2425 0x22079
+0x2426 0x2218B
+0x2427 0x221B8
+0x2428-0x2429 0x221E7
+0x242A 0x221E4
+0x242B 0x221E6
+0x242C 0x221E5
+0x242D 0x221F0
+0x242E 0x22383
+0x242F 0x223B7
+0x2430 0x223BB
+0x2431 0x223B9
+0x2432 0x223C5
+0x2433 0x22453
+0x2434 0x224C4
+0x2435 0x224C6
+0x2436 0x224CB
+0x2437 0x225C8
+0x2438 0x2F89F
+0x2439 0x225C9
+0x243A 0x225DB
+0x243B 0x22994
+0x243C 0x22A95
+0x243D 0x22A88
+0x243E 0x22A8D
+0x243F 0x22EEC
+0x2440 0x22EEE
+0x2441 0x22EF1
+0x2442 0x2312E
+0x2443 0x23149
+0x2444 0x2335F
+0x2445 0x233D1
+0x2446 0x233CB
+0x2447 0x23885
+0x2448 0x3C1D
+0x2449 0x2394A
+0x244A 0x23947
+0x244B 0x2394B
+0x244C 0x239BB
+0x244D 0x239C4
+0x244E 0x3C7C
+0x244F 0x23B02
+0x2450 0x23C82
+0x2451 0x23C91
+0x2452 0x23C8F
+0x2453 0x23C92
+0x2454 0x2418F
+0x2455 0x24191
+0x2456 0x241B4
+0x2457 0x24192
+0x2458 0x244F4
+0x2459 0x245AA
+0x245A 0x24735
+0x245B 0x24737
+0x245C 0x2473D
+0x245D 0x2473C
+0x245E-0x245F 0x2472F
+0x2460 0x248F8
+0x2461 0x248EF
+0x2462 0x24B26
+0x2463 0x3F55
+0x2464-0x2465 0x24D26
+0x2466 0x24F41
+0x2467-0x2468 0x24FC6
+0x2469 0x250EB
+0x246A 0x250E8
+0x246B 0x250EA
+0x246C 0x2541A
+0x246D 0x25419
+0x246E 0x4126
+0x246F-0x2470 0x25923
+0x2471 0x25E25
+0x2472 0x26635
+0x2473 0x26634
+0x2474 0x26A07
+0x2475 0x2721D
+0x2476 0x277E1
+0x2477 0x27BAB
+0x2478 0x28460
+0x2479 0x28677
+0x247A 0x2867D
+0x247B 0x49BC
+0x247C 0x28E1E
+0x247D 0x28E1A
+0x247E 0x28E1D
+0x2521 0x2006B
+0x2522 0x2012D
+0x2523 0x2014C
+0x2524 0x2022A
+0x2525 0x344A
+0x2526 0x20215
+0x2527 0x2022C
+0x2528 0x20206
+0x2529 0x20208
+0x252A 0x2020A
+0x252B 0x344E
+0x252C 0x20556
+0x252D 0x20584
+0x252E 0x34C9
+0x252F 0x205C6
+0x2530 0x206F5
+0x2531 0x20709
+0x2532 0x206F8
+0x2533 0x206E8
+0x2534 0x206FB
+0x2535 0x206E9
+0x2536 0x206F6
+0x2537-0x2538 0x52B7
+0x2539 0x20852
+0x253A 0x52B6
+0x253B 0x52BA
+0x253C 0x20854
+0x253D 0x20851
+0x253E-0x253F 0x20939
+0x2540 0x20998
+0x2541 0x20A4E
+0x2542 0x357B
+0x2543 0x20C36
+0x2544 0x20C0C
+0x2545 0x20C10
+0x2546 0x20C32
+0x2547 0x20C11
+0x2548 0x20C18
+0x2549 0x20C1C
+0x254A 0x20C1A
+0x254B 0x20C19
+0x254C 0x20C0B
+0x254D 0x20C0F
+0x254E 0x20C1D
+0x254F 0x20C21
+0x2550 0x20C13
+0x2551 0x20C1B
+0x2552 0x20C15
+0x2553 0x3620
+0x2554 0x211D1
+0x2555 0x211C8
+0x2556 0x2128D
+0x2557 0x212B5
+0x2558 0x3689
+0x2559 0x3695
+0x255A 0x215F8
+0x255B-0x255C 0x216E0
+0x255D 0x36BE
+0x255E 0x216DE
+0x255F 0x216FE
+0x2560 0x216DC
+0x2561 0x21701
+0x2562 0x216FD
+0x2563 0x21700
+0x2564 0x219D7
+0x2565 0x219D6
+0x2566 0x219D9
+0x2567 0x21B65
+0x2568 0x21BD2
+0x2569 0x21BDC
+0x256A 0x21BE1
+0x256B 0x21BDE
+0x256C 0x21C42
+0x256D 0x21C4B
+0x256E 0x37C3
+0x256F 0x21D8E
+0x2570 0x21D91
+0x2571 0x21D8B
+0x2572 0x21D90
+0x2573-0x2574 0x21D88
+0x2575 0x21D84
+0x2576 0x21DAA
+0x2577 0x2208D
+0x2578 0x2208F
+0x2579 0x2207D
+0x257A 0x2207F
+0x257B 0x2207B
+0x257C 0x22080
+0x257D 0x2207E
+0x257E 0x22083
+0x2621 0x22081
+0x2622 0x22086
+0x2623 0x2208A
+0x2624-0x2625 0x221BD
+0x2626 0x3877
+0x2627 0x221F4
+0x2628 0x221F3
+0x2629 0x22202
+0x262A 0x221F6
+0x262B 0x221F5
+0x262C 0x221F2
+0x262D 0x22204
+0x262E 0x2233D
+0x262F 0x223C6
+0x2630 0x22489
+0x2631 0x224D4
+0x2632 0x224D6
+0x2633 0x224D2
+0x2634 0x225FA
+0x2635 0x22606
+0x2636 0x2260C
+0x2637 0x2260A
+0x2638 0x2260F
+0x2639 0x22A2F
+0x263A 0x39D4
+0x263B 0x22AB7
+0x263C 0x22ABE
+0x263D 0x22ABC
+0x263E 0x22AE2
+0x263F 0x22F06
+0x2640 0x22EF7
+0x2641 0x22F07
+0x2642 0x22EF6
+0x2643 0x23B35
+0x2644 0x2315F
+0x2645 0x23165
+0x2646 0x23164
+0x2647 0x23161
+0x2648 0x2315A
+0x2649 0x2315D
+0x264A 0x2F8D7
+0x264B 0x233D7
+0x264C 0x233D5
+0x264D 0x233DE
+0x264E 0x233E1
+0x264F 0x233E0
+0x2650 0x233D9
+0x2651 0x3B4C
+0x2652 0x233DA
+0x2653 0x233DF
+0x2654 0x233F6
+0x2655 0x23403
+0x2656 0x3C20
+0x2657 0x23893
+0x2658 0x2388B
+0x2659-0x265A 0x23891
+0x265B 0x2388A
+0x265C 0x23889
+0x265D 0x2388F
+0x265E 0x23956
+0x265F 0x23959
+0x2660 0x239CA
+0x2661 0x239CC
+0x2662 0x3C5B
+0x2663 0x239D0
+0x2664 0x239CD
+0x2665 0x239D6
+0x2666 0x239CB
+0x2667 0x23A83
+0x2668 0x23A82
+0x2669 0x23B06
+0x266A 0x23B2A
+0x266B 0x23B2C
+0x266C 0x23B2B
+0x266D 0x23B29
+0x266E 0x23CBD
+0x266F 0x23CB3
+0x2670 0x23CBE
+0x2671 0x23CC0
+0x2672-0x2673 0x23CB5
+0x2674 0x2419D
+0x2675 0x2419F
+0x2676 0x24620
+0x2677 0x3E2D
+0x2678 0x2461E
+0x2679 0x2461C
+0x267A 0x24632
+0x267B 0x2461F
+0x267C 0x2462B
+0x267D 0x24621
+0x267E 0x24626
+0x2721 0x24624
+0x2722 0x2461D
+0x2723 0x24627
+0x2724 0x2475B
+0x2725 0x24759
+0x2726 0x24780
+0x2727 0x24755
+0x2728 0x24750
+0x2729 0x2475A
+0x272A 0x24756
+0x272B 0x24763
+0x272C 0x24752
+0x272D 0x24758
+0x272E 0x3E63
+0x272F 0x24739
+0x2730 0x248F9
+0x2731 0x24B28
+0x2732 0x3F18
+0x2733 0x24BBC
+0x2734 0x24BD6
+0x2735 0x24C05
+0x2736 0x24C20
+0x2737 0x3F74
+0x2738 0x24D33
+0x2739 0x24F46
+0x273A-0x273B 0x24F42
+0x273C 0x24F47
+0x273D 0x24FCB
+0x273E 0x25042
+0x273F 0x25045
+0x2740 0x250FD
+0x2741 0x250F4
+0x2742-0x2743 0x250F9
+0x2744 0x2535E
+0x2745 0x2541D
+0x2746 0x4128
+0x2747 0x25758
+0x2748 0x25755
+0x2749-0x274A 0x25A57
+0x274B 0x25AD9
+0x274C 0x25ADC
+0x274D 0x25ADB
+0x274E 0x25E27
+0x274F 0x25F85
+0x2750 0x25F87
+0x2751 0x25F8A
+0x2752 0x2628B
+0x2753 0x2634F
+0x2754 0x26530
+0x2755 0x2652F
+0x2756 0x26668
+0x2757 0x26649
+0x2758 0x43DA
+0x2759 0x26648
+0x275A 0x2663F
+0x275B 0x2664B
+0x275C 0x2665C
+0x275D 0x26646
+0x275E 0x26640
+0x275F 0x26A0D
+0x2760 0x26B1B
+0x2761 0x26B1D
+0x2762 0x26B17
+0x2763 0x44A4
+0x2764 0x26B22
+0x2765 0x275A7
+0x2766 0x27608
+0x2767 0x27806
+0x2768 0x2847D
+0x2769 0x488E
+0x276A-0x276B 0x28463
+0x276C 0x2847F
+0x276D 0x2846B
+0x276E 0x2847C
+0x276F 0x28468
+0x2770 0x28465
+0x2771 0x2846A
+0x2772-0x2773 0x28698
+0x2774 0x286AE
+0x2775 0x28E2B
+0x2776 0x28E2D
+0x2777 0x28E31
+0x2778-0x2779 0x28E2E
+0x277A 0x2006D
+0x277B 0x20131
+0x277C 0x2022D
+0x277D 0x20239
+0x277E 0x20238
+0x2821 0x345B
+0x2822 0x2023A
+0x2823 0x20235
+0x2824 0x20262
+0x2825-0x2826 0x204EA
+0x2827 0x20515
+0x2828 0x205CC
+0x2829 0x205C8
+0x282A 0x205CD
+0x282B 0x205DB
+0x282C 0x205CB
+0x282D 0x20711
+0x282E 0x20726
+0x282F 0x20862
+0x2830 0x2085E
+0x2831 0x20861
+0x2832 0x20941
+0x2833 0x2093F
+0x2834 0x20975
+0x2835 0x23965
+0x2836 0x20B49
+0x2837 0x209EB
+0x2838 0x20A1A
+0x2839 0x20A57
+0x283A 0x20C6B
+0x283B 0x20CA9
+0x283C 0x20C54
+0x283D 0x20C62
+0x283E 0x20CAA
+0x283F 0x20C58
+0x2840 0x20C72
+0x2841 0x20C63
+0x2842 0x20C73
+0x2843-0x2844 0x20C8B
+0x2845 0x20C5C
+0x2846 0x20C51
+0x2847 0x20C16
+0x2848-0x2849 0x20C60
+0x284A 0x20C5E
+0x284B 0x20C5D
+0x284C 0x20C64
+0x284D 0x20C53
+0x284E 0x20C5F
+0x284F 0x20C5B
+0x2850 0x20C6E
+0x2851 0x20C55
+0x2852 0x20C52
+0x2853 0x20C68
+0x2854 0x211D2
+0x2855 0x211D6
+0x2856 0x211D3
+0x2857 0x212B8
+0x2858 0x212BB
+0x2859 0x212EB
+0x285A 0x212E8
+0x285B 0x212B6
+0x285C 0x212EA
+0x285D 0x212E7
+0x285E 0x212E9
+0x285F 0x21591
+0x2860 0x21610
+0x2861-0x2862 0x2160E
+0x2863 0x2170B
+0x2864 0x21703
+0x2865 0x2172B
+0x2866 0x21709
+0x2867 0x21728
+0x2868 0x2172C
+0x2869 0x21725
+0x286A 0x21727
+0x286B 0x2170F
+0x286C 0x219E9
+0x286D 0x219EC
+0x286E 0x3753
+0x286F 0x21B27
+0x2870 0x21B73
+0x2871 0x21BE2
+0x2872 0x21BE6
+0x2873 0x2F876
+0x2874 0x21C61
+0x2875 0x21C51
+0x2876 0x21D12
+0x2877 0x21D0E
+0x2878 0x21DAD
+0x2879 0x21DAF
+0x287A 0x21DB1
+0x287B 0x21DD3
+0x287C 0x22094
+0x287D 0x22092
+0x287E 0x22090
+0x2921 0x2209D
+0x2922 0x22093
+0x2923 0x22095
+0x2924 0x22098
+0x2925 0x22097
+0x2926 0x3880
+0x2927 0x2F88A
+0x2928 0x22207
+0x2929 0x2220B
+0x292A 0x22208
+0x292B 0x223D9
+0x292C 0x223D5
+0x292D 0x224D7
+0x292E 0x224DF
+0x292F 0x38DD
+0x2930 0x224DE
+0x2931 0x224E3
+0x2932 0x224E2
+0x2933 0x38DE
+0x2934 0x22647
+0x2935 0x3922
+0x2936 0x2263D
+0x2937 0x22638
+0x2938 0x22A44
+0x2939 0x22A3A
+0x293A 0x22AB8
+0x293B 0x22B2A
+0x293C 0x22B00
+0x293D 0x22AF3
+0x293E 0x22AF2
+0x293F 0x22AEB
+0x2940 0x22AFA
+0x2941 0x22AED
+0x2942 0x22AEC
+0x2943 0x22AFF
+0x2944 0x22AFB
+0x2945 0x6306
+0x2946 0x22B4E
+0x2947 0x22AEF
+0x2948 0x22AF7
+0x2949-0x294A 0x22F10
+0x294B 0x22F0C
+0x294C 0x22F0B
+0x294D 0x230DD
+0x294E 0x23130
+0x294F 0x3ADB
+0x2950 0x2317A
+0x2951 0x23177
+0x2952 0x23328
+0x2953 0x23327
+0x2954 0x23365
+0x2955 0x2340E
+0x2956 0x2340B
+0x2957 0x23441
+0x2958 0x23413
+0x2959 0x2340F
+0x295A 0x23412
+0x295B 0x23430
+0x295C 0x238A0
+0x295D 0x238A3
+0x295E 0x2389E
+0x295F 0x23897
+0x2960 0x238A1
+0x2961 0x2389D
+0x2962 0x2389B
+0x2963 0x23963
+0x2964-0x2965 0x239E3
+0x2966-0x2967 0x239E6
+0x2968 0x239DD
+0x2969 0x6B85
+0x296A 0x239EC
+0x296B 0x239E5
+0x296C 0x239F1
+0x296D 0x23B3B
+0x296E-0x296F 0x23B39
+0x2970-0x2971 0x23B3C
+0x2972 0x23B47
+0x2973 0x23B3F
+0x2974 0x23B44
+0x2975-0x2976 0x23C48
+0x2977 0x23C60
+0x2978 0x23CE3
+0x2979 0x23CE9
+0x297A 0x23CF0
+0x297B-0x297C 0x3CDA
+0x297D 0x23CF2
+0x297E 0x23CED
+0x2A21 0x23CEC
+0x2A22 0x23CE6
+0x2A23 0x23D16
+0x2A24 0x3CD7
+0x2A25 0x241BC
+0x2A26 0x241BE
+0x2A27 0x241C0
+0x2A28 0x241E0
+0x2A29 0x24500
+0x2A2A 0x24502
+0x2A2B 0x244FE
+0x2A2C 0x2455E
+0x2A2D 0x245B3
+0x2A2E 0x245B7
+0x2A2F 0x2463A
+0x2A30 0x24639
+0x2A31 0x2463E
+0x2A32 0x24638
+0x2A33 0x2463D
+0x2A34 0x2464F
+0x2A35 0x2476E
+0x2A36 0x2475F
+0x2A37-0x2A38 0x24781
+0x2A39 0x24771
+0x2A3A 0x2477B
+0x2A3B 0x24779
+0x2A3C 0x24777
+0x2A3D 0x24773
+0x2A3E 0x2476F
+0x2A3F 0x24797
+0x2A40 0x2477E
+0x2A41 0x248FC
+0x2A42 0x24911
+0x2A43 0x24932
+0x2A44 0x24931
+0x2A45 0x24910
+0x2A46 0x24AEC
+0x2A47 0x24AEB
+0x2A48-0x2A49 0x24B2C
+0x2A4A 0x24BDA
+0x2A4B 0x24C2E
+0x2A4C 0x24C2C
+0x2A4D 0x24C2A
+0x2A4E 0x24C33
+0x2A4F 0x24C4B
+0x2A50 0x24D18
+0x2A51 0x24D42
+0x2A52 0x24D3B
+0x2A53 0x24D3F
+0x2A54 0x24D41
+0x2A55 0x24D43
+0x2A56 0x24D3C
+0x2A57 0x24F4C
+0x2A58 0x24F4A
+0x2A59 0x24F49
+0x2A5A 0x24F56
+0x2A5B 0x24FCF
+0x2A5C-0x2A5D 0x25047
+0x2A5E 0x25046
+0x2A5F 0x2511B
+0x2A60 0x25111
+0x2A61 0x25114
+0x2A62 0x2511D
+0x2A63 0x25117
+0x2A64 0x2511E
+0x2A65 0x2510B
+0x2A66 0x2511C
+0x2A67 0x25112
+0x2A68 0x25116
+0x2A69 0x2510D
+0x2A6A 0x25115
+0x2A6B 0x25113
+0x2A6C 0x25118
+0x2A6D 0x401A
+0x2A6E 0x253AC
+0x2A6F 0x25444
+0x2A70 0x2542C
+0x2A71 0x25445
+0x2A72 0x25766
+0x2A73 0x2576E
+0x2A74 0x25765
+0x2A75 0x25768
+0x2A76 0x25784
+0x2A77 0x25938
+0x2A78 0x2593B
+0x2A79 0x2593A
+0x2A7A 0x2593F
+0x2A7B 0x25ADF
+0x2A7C-0x2A7D 0x25ADD
+0x2A7E 0x25AE2
+0x2B21 0x41D6
+0x2B22 0x25E2C
+0x2B23 0x25E2F
+0x2B24-0x2B25 0x25F8F
+0x2B26 0x25F8C
+0x2B27 0x25F93
+0x2B28 0x26225
+0x2B29 0x26288
+0x2B2A 0x262A7
+0x2B2B 0x263F7
+0x2B2C 0x264BB
+0x2B2D-0x2B2E 0x26538
+0x2B2F 0x26537
+0x2B30 0x26614
+0x2B31 0x2666E
+0x2B32 0x2667B
+0x2B33 0x43DE
+0x2B34 0x2666C
+0x2B35 0x2667F
+0x2B36 0x26678
+0x2B37 0x2667A
+0x2B38 0x2666F
+0x2B39 0x43E5
+0x2B3A 0x268FE
+0x2B3B 0x26B48
+0x2B3C 0x26B4B
+0x2B3D 0x26B41
+0x2B3E 0x26B49
+0x2B3F 0x26B3B
+0x2B40 0x2722D
+0x2B41 0x275E3
+0x2B42 0x2761A
+0x2B43 0x2760D
+0x2B44 0x27613
+0x2B45 0x27611
+0x2B46 0x2761C
+0x2B47 0x4672
+0x2B48 0x278B5
+0x2B49 0x46AF
+0x2B4A 0x27C29
+0x2B4B 0x27CA1
+0x2B4C 0x27D24
+0x2B4D 0x27FBB
+0x2B4E 0x282A1
+0x2B4F 0x28483
+0x2B50 0x2848D
+0x2B51 0x28487
+0x2B52 0x28485
+0x2B53 0x2848A
+0x2B54 0x284A3
+0x2B55 0x28489
+0x2B56 0x28484
+0x2B57 0x284A2
+0x2B58 0x286B1
+0x2B59 0x286B0
+0x2B5A 0x286AF
+0x2B5B 0x286B6
+0x2B5C-0x2B5D 0x286C9
+0x2B5E 0x286C8
+0x2B5F 0x286B4
+0x2B60 0x28C59
+0x2B61 0x28CC9
+0x2B62 0x28E41
+0x2B63 0x28E4C
+0x2B64 0x49C4
+0x2B65 0x28E45
+0x2B66 0x28E5A
+0x2B67 0x200B9
+0x2B68 0x20294
+0x2B69 0x2026E
+0x2B6A 0x202A2
+0x2B6B 0x20267
+0x2B6C 0x3463
+0x2B6D 0x202A3
+0x2B6E 0x20276
+0x2B6F 0x2026C
+0x2B70 0x20264
+0x2B71 0x202A5
+0x2B72 0x20230
+0x2B73 0x202A6
+0x2B74 0x20269
+0x2B75 0x202A4
+0x2B76 0x20490
+0x2B77-0x2B78 0x2055F
+0x2B79 0x205DA
+0x2B7A 0x205D8
+0x2B7B 0x205DD
+0x2B7C 0x34EC
+0x2B7D 0x20759
+0x2B7E 0x2075B
+0x2C21 0x2075A
+0x2C22 0x20739
+0x2C23 0x20734
+0x2C24 0x20744
+0x2C25 0x20733
+0x2C26 0x2073C
+0x2C27 0x20758
+0x2C28 0x2076A
+0x2C29 0x2086F
+0x2C2A 0x20872
+0x2C2B-0x2C2C 0x20870
+0x2C2D 0x2086E
+0x2C2E 0x208F0
+0x2C2F 0x208EB
+0x2C30 0x20949
+0x2C31 0x2094C
+0x2C32 0x209F5
+0x2C33 0x20A20
+0x2C34 0x20A6A
+0x2C35 0x20A72
+0x2C36 0x20B4B
+0x2C37 0x20B5D
+0x2C38 0x20C50
+0x2C39-0x2C3B 0x20CF9
+0x2C3C 0x20D23
+0x2C3D 0x20CB7
+0x2C3E 0x20D22
+0x2C3F 0x20CB5
+0x2C40 0x20CC4
+0x2C41 0x20CB4
+0x2C42 0x20CEF
+0x2C43 0x3598
+0x2C44 0x20CCD
+0x2C45 0x20CF0
+0x2C46 0x20CB8
+0x2C47 0x20CCB
+0x2C48 0x20CF1
+0x2C49 0x20CBA
+0x2C4A 0x20D03
+0x2C4B 0x20CF8
+0x2C4C 0x20CB6
+0x2C4D 0x20CBC
+0x2C4E 0x20CB3
+0x2C4F 0x20D21
+0x2C50 0x20CF7
+0x2C51 0x20CC2
+0x2C52 0x20CBE
+0x2C53 0x20CC9
+0x2C54 0x20CBD
+0x2C55 0x20CCE
+0x2C56 0x20CB9
+0x2C57 0x20CC7
+0x2C58 0x20CCA
+0x2C59 0x20CCC
+0x2C5A 0x20D26
+0x2C5B 0x211E4
+0x2C5C 0x211E0
+0x2C5D 0x211F0
+0x2C5E 0x212EC
+0x2C5F 0x21324
+0x2C60 0x21318
+0x2C61 0x2132F
+0x2C62 0x21325
+0x2C63 0x21528
+0x2C64 0x21522
+0x2C65 0x2156A
+0x2C66 0x20157
+0x2C67 0x21594
+0x2C68 0x21592
+0x2C69 0x2159C
+0x2C6A 0x21622
+0x2C6B 0x21630
+0x2C6C 0x2161D
+0x2C6D 0x21623
+0x2C6E 0x21735
+0x2C6F 0x21733
+0x2C70 0x2172F
+0x2C71 0x2174D
+0x2C72 0x21731
+0x2C73 0x2175B
+0x2C74 0x2175A
+0x2C75 0x21732
+0x2C76 0x2175C
+0x2C77 0x21759
+0x2C78 0x2175D
+0x2C79 0x21969
+0x2C7A 0x2196D
+0x2C7B 0x22232
+0x2C7C 0x3758
+0x2C7D 0x21A0A
+0x2C7E 0x21A20
+0x2D21 0x21A1F
+0x2D22 0x21A0D
+0x2D23 0x21BE8
+0x2D24 0x21BEC
+0x2D25 0x21C77
+0x2D26-0x2D27 0x21C70
+0x2D28 0x21DF8
+0x2D29 0x21DD6
+0x2D2A 0x21DD9
+0x2D2B 0x21DDE
+0x2D2C 0x21DD5
+0x2D2D 0x21DE1
+0x2D2E 0x37D3
+0x2D2F 0x21DE2
+0x2D30 0x21DDD
+0x2D31 0x21DE0
+0x2D32 0x21E0E
+0x2D33 0x21E08
+0x2D34 0x21DDC
+0x2D35 0x21E0A
+0x2D36 0x21E0C
+0x2D37 0x220B4
+0x2D38 0x220B1
+0x2D39 0x220B6
+0x2D3A 0x220BC
+0x2D3B 0x2221D
+0x2D3C 0x22224
+0x2D3D 0x22219
+0x2D3E 0x2221B
+0x2D3F 0x22222
+0x2D40 0x2221A
+0x2D41 0x2221C
+0x2D42 0x22221
+0x2D43 0x223E6
+0x2D44 0x223E4
+0x2D45 0x223E7
+0x2D46 0x223EA
+0x2D47 0x38E2
+0x2D48 0x2F89B
+0x2D49 0x224F0
+0x2D4A 0x224F5
+0x2D4B 0x224EF
+0x2D4C 0x22642
+0x2D4D 0x2266E
+0x2D4E 0x2263C
+0x2D4F 0x22697
+0x2D50 0x2268C
+0x2D51 0x22681
+0x2D52 0x22671
+0x2D53 0x226CE
+0x2D54 0x226BA
+0x2D55 0x2267A
+0x2D56 0x2267E
+0x2D57 0x3954
+0x2D58 0x22672
+0x2D59 0x226BB
+0x2D5A 0x392F
+0x2D5B 0x22673
+0x2D5C 0x22682
+0x2D5D 0x39B6
+0x2D5E 0x229BA
+0x2D5F 0x229B8
+0x2D60 0x22A4B
+0x2D61 0x22A48
+0x2D62 0x22B2B
+0x2D63 0x22AF4
+0x2D64 0x22B2C
+0x2D65 0x22B42
+0x2D66 0x22B48
+0x2D67-0x2D68 0x22B44
+0x2D69 0x22B3C
+0x2D6A 0x22B37
+0x2D6B 0x22B33
+0x2D6C 0x22B41
+0x2D6D 0x22B32
+0x2D6E 0x22B87
+0x2D6F 0x22F27
+0x2D70 0x22F23
+0x2D71 0x22F2D
+0x2D72 0x22F1F
+0x2D73 0x22F2C
+0x2D74 0x22F28
+0x2D75 0x23075
+0x2D76 0x23074
+0x2D77 0x230E7
+0x2D78 0x23132
+0x2D79 0x23131
+0x2D7A 0x23199
+0x2D7B 0x23196
+0x2D7C 0x23198
+0x2D7D 0x2319D
+0x2D7E 0x23192
+0x2E21-0x2E22 0x23194
+0x2E23 0x23197
+0x2E24 0x266B9
+0x2E25 0x3B35
+0x2E26 0x23411
+0x2E27 0x2343B
+0x2E28 0x23479
+0x2E29-0x2E2A 0x23442
+0x2E2B 0x3B5D
+0x2E2C 0x23478
+0x2E2D 0x238AC
+0x2E2E 0x3C29
+0x2E2F 0x238B1
+0x2E30 0x238B4
+0x2E31 0x238B3
+0x2E32 0x238AF
+0x2E33 0x238AA
+0x2E34 0x238B2
+0x2E35 0x23968
+0x2E36 0x239F2
+0x2E37 0x239FE
+0x2E38-0x2E39 0x239F8
+0x2E3A 0x239FF
+0x2E3B 0x239F5
+0x2E3C 0x239F7
+0x2E3D 0x239FD
+0x2E3E 0x23A00
+0x2E3F 0x23A88
+0x2E40 0x23B6E
+0x2E41 0x23B5D
+0x2E42 0x23B63
+0x2E43 0x23B60
+0x2E44 0x23C61
+0x2E45 0x23D37
+0x2E46 0x23D71
+0x2E47 0x23D23
+0x2E48 0x23D22
+0x2E49 0x23D1F
+0x2E4A 0x23D25
+0x2E4B 0x241FD
+0x2E4C 0x24211
+0x2E4D 0x24223
+0x2E4E 0x241F0
+0x2E4F 0x241EF
+0x2E50 0x2450E
+0x2E51 0x2450C
+0x2E52 0x245BA
+0x2E53 0x3E1F
+0x2E54 0x24652
+0x2E55 0x24655
+0x2E56-0x2E57 0x24653
+0x2E58 0x24651
+0x2E59 0x24658
+0x2E5A 0x247B0
+0x2E5B 0x2479F
+0x2E5C 0x3E72
+0x2E5D 0x247A1
+0x2E5E 0x2479A
+0x2E5F 0x247BE
+0x2E60 0x247A0
+0x2E61 0x24937
+0x2E62 0x3F0B
+0x2E63-0x2E64 0x24AF1
+0x2E65 0x24B34
+0x2E66 0x24B37
+0x2E67 0x24B35
+0x2E68 0x2238C
+0x2E69 0x24BDF
+0x2E6A 0x24C4C
+0x2E6B 0x24C4E
+0x2E6C 0x24C64
+0x2E6D 0x24C63
+0x2E6E 0x24C36
+0x2E6F 0x24D58
+0x2E70 0x24D68
+0x2E71 0x24D5B
+0x2E72 0x24D5F
+0x2E73 0x24D59
+0x2E74 0x24D65
+0x2E75 0x24D60
+0x2E76 0x24D5E
+0x2E77-0x2E78 0x24FD5
+0x2E79 0x2504E
+0x2E7A 0x25052
+0x2E7B 0x25135
+0x2E7C 0x25139
+0x2E7D 0x25158
+0x2E7E 0x25141
+0x2F21 0x25157
+0x2F22 0x25138
+0x2F23 0x2513D
+0x2F24 0x25132
+0x2F25 0x25144
+0x2F26 0x2F944
+0x2F27 0x25363
+0x2F28 0x25362
+0x2F29 0x253B8
+0x2F2A-0x2F2B 0x253B0
+0x2F2C 0x2544D
+0x2F2D 0x25463
+0x2F2E 0x25470
+0x2F2F 0x2544B
+0x2F30 0x2544F
+0x2F31 0x2544E
+0x2F32 0x25453
+0x2F33 0x25447
+0x2F34 0x40A2
+0x2F35 0x25454
+0x2F36 0x25452
+0x2F37 0x25459
+0x2F38 0x2547E
+0x2F39 0x2562B
+0x2F3A 0x2562E
+0x2F3B 0x2577F
+0x2F3C 0x2577E
+0x2F3D 0x25781
+0x2F3E 0x25783
+0x2F3F 0x25947
+0x2F40 0x25954
+0x2F41 0x2594D
+0x2F42 0x2594C
+0x2F43 0x2594B
+0x2F44 0x25957
+0x2F45 0x25A65
+0x2F46 0x25A64
+0x2F47-0x2F48 0x25A61
+0x2F49 0x25AF0
+0x2F4A 0x25AF3
+0x2F4B 0x25AF9
+0x2F4C-0x2F4D 0x25AF4
+0x2F4E 0x25AEF
+0x2F4F 0x25AF8
+0x2F50 0x25AFC
+0x2F51 0x25AF7
+0x2F52 0x25AFD
+0x2F53 0x25B17
+0x2F54 0x25E34
+0x2F55 0x25E36
+0x2F56 0x25E38
+0x2F57 0x25FAF
+0x2F58 0x25FAE
+0x2F59 0x25FAC
+0x2F5A 0x25FA2
+0x2F5B 0x26228
+0x2F5C 0x22EC2
+0x2F5D 0x2629C
+0x2F5E 0x262B3
+0x2F5F 0x26290
+0x2F60 0x26406
+0x2F61 0x26404
+0x2F62 0x2640B
+0x2F63 0x26405
+0x2F64 0x26540
+0x2F65 0x2654F
+0x2F66 0x266AB
+0x2F67 0x2669D
+0x2F68 0x266B8
+0x2F69 0x266B2
+0x2F6A 0x266D2
+0x2F6B 0x266CF
+0x2F6C 0x266A2
+0x2F6D 0x43EC
+0x2F6E 0x266A5
+0x2F6F 0x266A9
+0x2F70 0x266A7
+0x2F71 0x266D0
+0x2F72 0x26902
+0x2F73-0x2F74 0x269CF
+0x2F75 0x26A16
+0x2F76 0x26A19
+0x2F77 0x26B75
+0x2F78 0x26B71
+0x2F79 0x26B91
+0x2F7A 0x26B72
+0x2F7B 0x26B8E
+0x2F7C 0x26B6D
+0x2F7D 0x26B88
+0x2F7E 0x26B73
+0x3021 0x44BB
+0x3022 0x26B81
+0x3023 0x26B76
+0x3024 0x26B7B
+0x3025 0x26B7F
+0x3026 0x26B90
+0x3027 0x26B78
+0x3028 0x2724B
+0x3029 0x27248
+0x302A 0x2725B
+0x302B 0x27251
+0x302C 0x2723D
+0x302D 0x27240
+0x302E 0x27246
+0x302F 0x2724D
+0x3030 0x2723B
+0x3031 0x2724A
+0x3032 0x27241
+0x3033 0x2723E
+0x3034 0x2724E
+0x3035 0x275AC
+0x3036 0x275E6
+0x3037 0x275E9
+0x3038 0x27629
+0x3039 0x4621
+0x303A 0x27633
+0x303B 0x2762E
+0x303C 0x2761E
+0x303D 0x461F
+0x303E 0x2F9C5
+0x303F 0x27622
+0x3040 0x27627
+0x3041 0x277E7
+0x3042 0x2780B
+0x3043 0x27966
+0x3044-0x3045 0x27BAD
+0x3046 0x8C38
+0x3047 0x27C2B
+0x3048 0x27C2A
+0x3049-0x304A 0x27D2C
+0x304B 0x4791
+0x304C 0x4796
+0x304D 0x27E8F
+0x304E 0x27E93
+0x304F 0x27FC6
+0x3050 0x27FC5
+0x3051 0x28215
+0x3052 0x28213
+0x3053 0x282B1
+0x3054 0x282A9
+0x3055 0x8ECE
+0x3056 0x284A8
+0x3057 0x284AB
+0x3058 0x284BE
+0x3059 0x284AC
+0x305A 0x284A9
+0x305B 0x284A6
+0x305C 0x284C1
+0x305D 0x286CC
+0x305E 0x286D1
+0x305F 0x286D3
+0x3060 0x286E4
+0x3061 0x286CB
+0x3062 0x286E1
+0x3063 0x286D2
+0x3064 0x286E3
+0x3065-0x3066 0x286CF
+0x3067 0x286E5
+0x3068 0x2870E
+0x3069 0x28CCC
+0x306A-0x306B 0x28CCA
+0x306C 0x28E5C
+0x306D 0x28E61
+0x306E 0x28E5D
+0x306F 0x28E59
+0x3070 0x29077
+0x3071 0x29684
+0x3072 0x20041
+0x3073 0x200FD
+0x3074 0x2011A
+0x3075 0x20163
+0x3076 0x202B6
+0x3077 0x202B2
+0x3078 0x202E9
+0x3079 0x202E7
+0x307A 0x202D6
+0x307B 0x20330
+0x307C 0x202EC
+0x307D 0x202DD
+0x307E 0x202E8
+0x3121 0x202B0
+0x3122 0x202B5
+0x3123 0x202E1
+0x3124-0x3125 0x20498
+0x3126 0x34BC
+0x3127 0x20593
+0x3128 0x205E5
+0x3129 0x34D8
+0x312A 0x20760
+0x312B 0x2075E
+0x312C 0x34F4
+0x312D 0x2087B
+0x312E 0x208F1
+0x312F 0x208F3
+0x3130 0x20A7F
+0x3131 0x2F838
+0x3132-0x3133 0x20B57
+0x3134 0x20D39
+0x3135 0x20DA7
+0x3136 0x20D35
+0x3137 0x20D60
+0x3138 0x20D51
+0x3139 0x20D62
+0x313A 0x20D42
+0x313B 0x20D3C
+0x313C 0x20D43
+0x313D 0x20DAB
+0x313E 0x20DA9
+0x313F 0x20DB4
+0x3140 0x20D79
+0x3141 0x20D6A
+0x3142 0x20D3B
+0x3143 0x20DAA
+0x3144 0x20D33
+0x3145 0x20D37
+0x3146 0x20D27
+0x3147 0x20DA8
+0x3148 0x20D70
+0x3149 0x20D2F
+0x314A 0x20D36
+0x314B 0x20DB5
+0x314C 0x20D30
+0x314D 0x20D3A
+0x314E 0x20D38
+0x314F 0x20DB1
+0x3150 0x20DAC
+0x3151 0x20D2E
+0x3152 0x20D75
+0x3153 0x20DB0
+0x3154 0x211F7
+0x3155 0x21200
+0x3156 0x211F1
+0x3157 0x211F3
+0x3158-0x3159 0x21360
+0x315A 0x21332
+0x315B 0x2132D
+0x315C 0x2134A
+0x315D 0x2132A
+0x315E 0x21567
+0x315F-0x3160 0x215A2
+0x3161 0x2159E
+0x3162 0x215A4
+0x3163 0x21644
+0x3164 0x21632
+0x3165 0x2179B
+0x3166-0x3168 0x21798
+0x3169 0x21766
+0x316A 0x21762
+0x316B 0x2176B
+0x316C 0x24562
+0x316D 0x21767
+0x316E 0x21A3B
+0x316F 0x21A23
+0x3170 0x21A29
+0x3171 0x21B7E
+0x3172 0x21BF3
+0x3173 0x3785
+0x3174 0x21BF5
+0x3175 0x3783
+0x3176 0x21C80
+0x3177 0x21C7E
+0x3178 0x21C7C
+0x3179 0x21C7F
+0x317A 0x21C7D
+0x317B 0x21C81
+0x317C 0x21E25
+0x317D 0x21E29
+0x317E 0x21E17
+0x3221 0x21E63
+0x3222 0x21E67
+0x3223 0x21E65
+0x3224 0x21E2A
+0x3225 0x21E68
+0x3226 0x21E26
+0x3227 0x21E64
+0x3228 0x21E1B
+0x3229 0x21E62
+0x322A 0x21E69
+0x322B 0x21FFE
+0x322C 0x22044
+0x322D 0x22042
+0x322E 0x220B7
+0x322F 0x220D2
+0x3230 0x220D4
+0x3231 0x220D7
+0x3232 0x220DC
+0x3233 0x220D1
+0x3234 0x220D5
+0x3235 0x220CD
+0x3236 0x220D8
+0x3237 0x2219A
+0x3238 0x22242
+0x3239 0x22235
+0x323A 0x22258
+0x323B 0x22234
+0x323C 0x2223C
+0x323D 0x2223B
+0x323E 0x2223E
+0x323F 0x2223D
+0x3240 0x2225A
+0x3241 0x22241
+0x3242 0x22238
+0x3243 0x22245
+0x3244 0x22233
+0x3245 0x22326
+0x3246 0x38BA
+0x3247 0x223F7
+0x3248-0x3249 0x223EF
+0x324A 0x223EE
+0x324B 0x2249D
+0x324C 0x22506
+0x324D 0x22511
+0x324E 0x22508
+0x324F 0x22502
+0x3250 0x2250A
+0x3251 0x22507
+0x3252 0x22691
+0x3253 0x2268E
+0x3254 0x22685
+0x3255 0x226E8
+0x3256 0x22717
+0x3257 0x226D4
+0x3258 0x3969
+0x3259 0x226C4
+0x325A 0x226D5
+0x325B 0x3945
+0x325C 0x226D8
+0x325D 0x22680
+0x325E 0x226DE
+0x325F 0x22742
+0x3260 0x229C7
+0x3261 0x229BF
+0x3262 0x22B8D
+0x3263 0x22B89
+0x3264 0x22B90
+0x3265 0x22B9A
+0x3266 0x22BC8
+0x3267 0x22B92
+0x3268 0x22BA1
+0x3269 0x22B84
+0x326A 0x22F57
+0x326B 0x22F47
+0x326C 0x22F77
+0x326D 0x22F3A
+0x326E 0x22F50
+0x326F-0x3270 0x22F42
+0x3271 0x22FA3
+0x3272 0x23077
+0x3273 0x231B2
+0x3274 0x231E2
+0x3275 0x231BD
+0x3276 0x23374
+0x3277 0x23482
+0x3278 0x234B8
+0x3279 0x3B6C
+0x327A 0x234BA
+0x327B 0x234B9
+0x327C 0x234BB
+0x327D 0x23487
+0x327E 0x2F8E4
+0x3321 0x23483
+0x3322 0x234B7
+0x3323 0x20043
+0x3324 0x238CE
+0x3325 0x238BA
+0x3326 0x23973
+0x3327-0x3329 0x23A09
+0x332A 0x23A07
+0x332B 0x23A05
+0x332C 0x23A0E
+0x332D 0x23A97
+0x332E 0x23B77
+0x332F 0x23B7B
+0x3330 0x23B7A
+0x3331 0x23B74
+0x3332 0x23B79
+0x3333 0x23D86
+0x3334 0x23DF5
+0x3335 0x23DA5
+0x3336 0x23D9D
+0x3337 0x23DBE
+0x3338 0x23D96
+0x3339 0x23DE1
+0x333A 0x23DA4
+0x333B 0x23DA1
+0x333C 0x23DF6
+0x333D 0x3D04
+0x333E 0x23D8D
+0x333F 0x23D8B
+0x3340 0x23D78
+0x3341 0x23D98
+0x3342 0x23E0A
+0x3343 0x2425D
+0x3344 0x24227
+0x3345 0x2425F
+0x3346-0x3347 0x245C0
+0x3348 0x2466D
+0x3349 0x2465E
+0x334A 0x2468A
+0x334B 0x24662
+0x334C 0x24664
+0x334D 0x3E3A
+0x334E 0x247C0
+0x334F 0x247CA
+0x3350 0x247D1
+0x3351 0x3E79
+0x3352 0x247C7
+0x3353 0x247CE
+0x3354 0x7309
+0x3355 0x247C5
+0x3356 0x24936
+0x3357 0x24957
+0x3358 0x24977
+0x3359-0x335A 0x24AF6
+0x335B 0x24B55
+0x335C 0x24B44
+0x335D 0x24B3E
+0x335E 0x24B42
+0x335F 0x24B52
+0x3360 0x24BE1
+0x3361 0x24C08
+0x3362 0x24C68
+0x3363 0x24C67
+0x3364 0x3F5D
+0x3365 0x2F937
+0x3366 0x24D7E
+0x3367 0x24D93
+0x3368 0x24D79
+0x3369 0x24D81
+0x336A 0x24D7D
+0x336B 0x24D7B
+0x336C 0x24D94
+0x336D 0x3F8A
+0x336E 0x24F66
+0x336F 0x24FD9
+0x3370 0x24FE0
+0x3371 0x2F93E
+0x3372 0x2505F
+0x3373 0x2515F
+0x3374 0x2515E
+0x3375 0x25168
+0x3376 0x4027
+0x3377 0x25188
+0x3378 0x2516A
+0x3379 0x2516C
+0x337A-0x337B 0x25166
+0x337C 0x25189
+0x337D 0x25160
+0x337E 0x25185
+0x3421 0x2032A
+0x3422 0x25368
+0x3423-0x3424 0x253B9
+0x3425 0x253BE
+0x3426 0x2546F
+0x3427 0x25480
+0x3428 0x25474
+0x3429 0x25481
+0x342A 0x2547A
+0x342B 0x2549C
+0x342C 0x25473
+0x342D 0x25482
+0x342E 0x2547F
+0x342F 0x254A7
+0x3430 0x25479
+0x3431 0x25478
+0x3432 0x2547D
+0x3433 0x254A8
+0x3434 0x2547C
+0x3435 0x25668
+0x3436 0x2564E
+0x3437 0x2579E
+0x3438 0x4146
+0x3439 0x4140
+0x343A 0x25798
+0x343B 0x413F
+0x343C 0x25785
+0x343D 0x2579C
+0x343E 0x257C5
+0x343F 0x2579A
+0x3440 0x25968
+0x3441 0x25965
+0x3442 0x25967
+0x3443 0x25961
+0x3444 0x25960
+0x3445 0x419D
+0x3446 0x41CB
+0x3447 0x25A7B
+0x3448 0x41E1
+0x3449 0x25B19
+0x344A 0x25B0E
+0x344B 0x25B31
+0x344C 0x25B12
+0x344D 0x25B10
+0x344E 0x25B15
+0x344F 0x25B3F
+0x3450-0x3451 0x25B1D
+0x3452 0x25E4D
+0x3453 0x25E48
+0x3454 0x25E45
+0x3455 0x25E42
+0x3456-0x3457 0x25E49
+0x3458 0x25E47
+0x3459 0x427F
+0x345A 0x25E4C
+0x345B 0x25FCD
+0x345C 0x25FD5
+0x345D 0x25FC4
+0x345E 0x25FCA
+0x345F 0x25FC3
+0x3460 0x4346
+0x3461 0x26229
+0x3462 0x262B4
+0x3463 0x2636D
+0x3464 0x26366
+0x3465 0x2636A
+0x3466 0x26415
+0x3467 0x264D3
+0x3468 0x264EC
+0x3469 0x26555
+0x346A 0x441A
+0x346B 0x266D6
+0x346C 0x266D8
+0x346D 0x26751
+0x346E 0x266E0
+0x346F-0x3470 0x26703
+0x3471 0x266DA
+0x3472 0x266EA
+0x3473 0x26702
+0x3474 0x266D3
+0x3475-0x3476 0x266E4
+0x3477 0x2693B
+0x3478 0x26966
+0x3479 0x26A2C
+0x347A 0x26A21
+0x347B 0x26A26
+0x347C-0x347D 0x26AD4
+0x347E 0x26AD9
+0x3521 0x26BD5
+0x3522 0x26BEB
+0x3523 0x26BC5
+0x3524 0x44D3
+0x3525 0x26C27
+0x3526 0x26BF0
+0x3527 0x26BB9
+0x3528 0x26C18
+0x3529 0x26BEE
+0x352A 0x44D0
+0x352B 0x26BB7
+0x352C 0x26BBB
+0x352D 0x26BEF
+0x352E 0x26BB8
+0x352F 0x26BDF
+0x3530 0x26BDA
+0x3531 0x26BE3
+0x3532 0x26BC9
+0x3533 0x26BEC
+0x3534 0x271A4
+0x3535 0x458E
+0x3536 0x271A3
+0x3537 0x2725E
+0x3538-0x353A 0x27261
+0x353B 0x2728E
+0x353C 0x27269
+0x353D 0x2726B
+0x353E 0x27285
+0x353F 0x2728D
+0x3540 0x27264
+0x3541 0x2726D
+0x3542 0x2764C
+0x3543 0x27649
+0x3544-0x3545 0x27647
+0x3546 0x27642
+0x3547 0x27645
+0x3548 0x2765B
+0x3549 0x2765D
+0x354A 0x27646
+0x354B 0x27813
+0x354C 0x2781A
+0x354D-0x354E 0x2780E
+0x354F 0x2781B
+0x3550 0x27812
+0x3551 0x278C3
+0x3552 0x278BE
+0x3553 0x278BD
+0x3554 0x27979
+0x3555 0x2797C
+0x3556 0x46C3
+0x3557 0x46B6
+0x3558 0x27980
+0x3559 0x27975
+0x355A 0x2799B
+0x355B 0x8A2F
+0x355C 0x27974
+0x355D 0x46C0
+0x355E 0x46B8
+0x355F 0x22041
+0x3560 0x22494
+0x3561 0x27C30
+0x3562 0x27CA7
+0x3563 0x27CA5
+0x3564 0x27CA4
+0x3565 0x27D3A
+0x3566 0x27E5B
+0x3567 0x27E9F
+0x3568 0x27EA8
+0x3569 0x27EB3
+0x356A 0x27EA1
+0x356B 0x27EA7
+0x356C 0x27EB2
+0x356D 0x27E9D
+0x356E 0x27EA3
+0x356F 0x27EA2
+0x3570 0x27FEF
+0x3571 0x27FD9
+0x3572 0x47D9
+0x3573 0x27FD5
+0x3574 0x27FDD
+0x3575 0x27FDA
+0x3576 0x27FEE
+0x3577 0x27FD7
+0x3578 0x2821A
+0x3579 0x28219
+0x357A 0x28218
+0x357B 0x282B3
+0x357C 0x282BF
+0x357D 0x282BB
+0x357E 0x282C0
+0x3621 0x282B9
+0x3622 0x282B8
+0x3623 0x282D5
+0x3624 0x28411
+0x3625 0x28410
+0x3626 0x284C3
+0x3627 0x284C2
+0x3628 0x284E9
+0x3629 0x284CD
+0x362A 0x284E5
+0x362B 0x284CA
+0x362C 0x284C7
+0x362D 0x284E8
+0x362E 0x286F1
+0x362F 0x2870C
+0x3630 0x286EF
+0x3631 0x286EE
+0x3632 0x286F3
+0x3633 0x2870D
+0x3634 0x286F6
+0x3635 0x286F0
+0x3636 0x48EC
+0x3637 0x287F5
+0x3638 0x287F4
+0x3639 0x287F8
+0x363A 0x287FE
+0x363B 0x28911
+0x363C 0x28922
+0x363D 0x28942
+0x363E 0x28C5C
+0x363F 0x28C5A
+0x3640 0x28C5D
+0x3641 0x28CD1
+0x3642 0x28CD0
+0x3643 0x28E75
+0x3644 0x28E7B
+0x3645 0x28F89
+0x3646 0x2944D
+0x3647 0x29689
+0x3648 0x29692
+0x3649 0x2968C
+0x364A 0x29688
+0x364B-0x364C 0x29867
+0x364D 0x20321
+0x364E 0x202F2
+0x364F 0x20309
+0x3650 0x202F8
+0x3651 0x202F0
+0x3652 0x202F3
+0x3653 0x202F5
+0x3654 0x202FB
+0x3655 0x202F7
+0x3656 0x202EF
+0x3657 0x2030B
+0x3658 0x204A2
+0x3659 0x205F5
+0x365A-0x365B 0x205F3
+0x365C 0x205F2
+0x365D 0x20698
+0x365E 0x20768
+0x365F 0x20780
+0x3660 0x20785
+0x3661-0x3662 0x2078E
+0x3663 0x202F4
+0x3664 0x20786
+0x3665 0x207A4
+0x3666 0x20886
+0x3667 0x20889
+0x3668 0x20887
+0x3669 0x20885
+0x366A 0x52DC
+0x366B 0x20888
+0x366C 0x20AFF
+0x366D 0x20B66
+0x366E 0x35CC
+0x366F 0x20DC3
+0x3670 0x35A2
+0x3671 0x20DC4
+0x3672 0x20E3B
+0x3673 0x20DE7
+0x3674 0x20DF8
+0x3675 0x20DFB
+0x3676 0x35B6
+0x3677 0x20DBE
+0x3678 0x20DC6
+0x3679-0x367A 0x35C5
+0x367B 0x20DFC
+0x367C 0x20DC0
+0x367D 0x20E33
+0x367E 0x20DC9
+0x3721 0x20DFE
+0x3722 0x20DDA
+0x3723 0x20DCC
+0x3724 0x20DBB
+0x3725 0x20DFD
+0x3726 0x20DDF
+0x3727 0x20DCD
+0x3728 0x20DC2
+0x3729 0x20DC8
+0x372A 0x20E32
+0x372B 0x20E2D
+0x372C 0x20DD2
+0x372D 0x20E31
+0x372E 0x20DD3
+0x372F 0x20E2E
+0x3730 0x20DCF
+0x3731 0x211FF
+0x3732 0x21209
+0x3733 0x211FC
+0x3734 0x21372
+0x3735-0x3736 0x213AA
+0x3737 0x213A7
+0x3738 0x2137B
+0x3739 0x21376
+0x373A 0x213A8
+0x373B 0x213AC
+0x373C 0x3683
+0x373D 0x5921
+0x373E 0x215AA
+0x373F 0x20A03
+0x3740-0x3741 0x215AC
+0x3742 0x215AB
+0x3743 0x21650
+0x3744 0x21658
+0x3745 0x217DD
+0x3746 0x36F8
+0x3747 0x217AE
+0x3748 0x217A2
+0x3749 0x217AB
+0x374A 0x217E3
+0x374B 0x217AF
+0x374C 0x217E0
+0x374D 0x217E4
+0x374E 0x36F6
+0x374F 0x217A7
+0x3750 0x217AA
+0x3751 0x217E2
+0x3752 0x217E1
+0x3753 0x217DF
+0x3754 0x217AD
+0x3755 0x217E5
+0x3756 0x217D1
+0x3757 0x217AC
+0x3758 0x217D5
+0x3759 0x217A3
+0x375A 0x2179F
+0x375B 0x21979
+0x375C 0x21976
+0x375D 0x21A43
+0x375E 0x21A3D
+0x375F 0x21A47
+0x3760 0x21A44
+0x3761 0x21A3F
+0x3762 0x21A5B
+0x3763 0x21B7F
+0x3764 0x21C9A
+0x3765 0x21C9C
+0x3766 0x379B
+0x3767 0x21D1E
+0x3768 0x21E88
+0x3769 0x21E6A
+0x376A 0x21E76
+0x376B 0x21E72
+0x376C 0x21E70
+0x376D 0x21E7E
+0x376E 0x21E6C
+0x376F 0x21E6F
+0x3770 0x21E75
+0x3771-0x3772 0x21E77
+0x3773 0x21E8A
+0x3774 0x21E79
+0x3775 0x21E94
+0x3776 0x22001
+0x3777 0x22105
+0x3778 0x220F1
+0x3779-0x377A 0x220EE
+0x377B 0x22104
+0x377C 0x5E3F
+0x377D 0x220FA
+0x377E 0x22107
+0x3821-0x3822 0x220F4
+0x3823 0x2219C
+0x3824 0x2226D
+0x3825 0x22269
+0x3826 0x22266
+0x3827 0x22262
+0x3828 0x22246
+0x3829 0x388D
+0x382A 0x22265
+0x382B-0x382D 0x2225D
+0x382E 0x2238E
+0x382F 0x22402
+0x3830 0x22406
+0x3831 0x22404
+0x3832 0x22403
+0x3833 0x22462
+0x3834 0x22527
+0x3835 0x22521
+0x3836 0x22520
+0x3837 0x22524
+0x3838 0x22529
+0x3839 0x22531
+0x383A 0x22523
+0x383B 0x22522
+0x383C 0x226DC
+0x383D 0x2274D
+0x383E 0x226E5
+0x383F 0x226D3
+0x3840 0x226EE
+0x3841 0x226E6
+0x3842 0x3956
+0x3843 0x22736
+0x3844 0x22740
+0x3845 0x2283F
+0x3846 0x2273D
+0x3847 0x22744
+0x3848 0x395B
+0x3849 0x2275F
+0x384A 0x22729
+0x384B 0x22749
+0x384C 0x2278A
+0x384D 0x2272A
+0x384E 0x22787
+0x384F 0x2274C
+0x3850 0x22731
+0x3851 0x22748
+0x3852 0x2272B
+0x3853 0x2273B
+0x3854 0x22741
+0x3855 0x226C9
+0x3856 0x22734
+0x3857 0x22753
+0x3858 0x22735
+0x3859 0x22747
+0x385A 0x22738
+0x385B-0x385C 0x229D1
+0x385D 0x22A51
+0x385E 0x22A55
+0x385F-0x3860 0x22A52
+0x3861 0x22B8F
+0x3862 0x22BF4
+0x3863 0x22C47
+0x3864 0x22C0D
+0x3865 0x22C1C
+0x3866 0x22BFB
+0x3867 0x22C19
+0x3868 0x22BF7
+0x3869 0x22BF9
+0x386A 0x22BF5
+0x386B 0x22BE9
+0x386C 0x22C0A
+0x386D 0x22BEE
+0x386E 0x22C0B
+0x386F 0x22BFD
+0x3870 0x22C06
+0x3871 0x22C02
+0x3872 0x22C16
+0x3873 0x22C18
+0x3874 0x22BF0
+0x3875 0x22ED4
+0x3876 0x22F66
+0x3877 0x22F6A
+0x3878-0x3879 0x22F75
+0x387A 0x22F80
+0x387B 0x22F6D
+0x387C 0x3A96
+0x387D 0x22F69
+0x387E 0x22F67
+0x3921 0x22F68
+0x3922 0x22F5D
+0x3923 0x230A4
+0x3924 0x230FE
+0x3925 0x230FD
+0x3926 0x231EC
+0x3927 0x231E9
+0x3928 0x23221
+0x3929 0x231EB
+0x392A 0x231E7
+0x392B 0x231F2
+0x392C 0x23220
+0x392D 0x2337A
+0x392E-0x392F 0x2352D
+0x3930 0x234CA
+0x3931 0x2352F
+0x3932 0x234C8
+0x3933 0x3B7E
+0x3934 0x234CB
+0x3935 0x234C3
+0x3936 0x23484
+0x3937 0x234D2
+0x3938 0x234C6
+0x3939 0x3B81
+0x393A 0x234CF
+0x393B 0x234D5
+0x393C 0x234D4
+0x393D 0x234DD
+0x393E 0x2352B
+0x393F 0x235A3
+0x3940 0x234DB
+0x3941 0x2352C
+0x3942 0x23513
+0x3943 0x3C35
+0x3944 0x238D1
+0x3945 0x238CC
+0x3946 0x238D5
+0x3947 0x238C9
+0x3948 0x238CF
+0x3949 0x238D2
+0x394A-0x394B 0x2397B
+0x394C 0x23A23
+0x394D 0x23A1D
+0x394E 0x23A1C
+0x394F 0x23A1E
+0x3950 0x23A22
+0x3951 0x23A24
+0x3952 0x23A20
+0x3953 0x23A18
+0x3954 0x23A21
+0x3955 0x23B88
+0x3956 0x23B8A
+0x3957 0x23B94
+0x3958 0x23B8F
+0x3959 0x23B8E
+0x395A 0x23B90
+0x395B 0x3C9B
+0x395C 0x23BA7
+0x395D 0x23C64
+0x395E 0x3D00
+0x395F 0x23E18
+0x3960 0x23E14
+0x3961 0x23E1D
+0x3962 0x23E05
+0x3963 0x23DFF
+0x3964 0x23E1B
+0x3965 0x23E1A
+0x3966 0x23E19
+0x3967 0x23E03
+0x3968 0x23E0E
+0x3969 0x23E47
+0x396A 0x23E04
+0x396B 0x23E5A
+0x396C 0x23E07
+0x396D 0x23E20
+0x396E 0x2426A
+0x396F 0x24266
+0x3970 0x2427A
+0x3971 0x24265
+0x3972 0x242AF
+0x3973 0x245CD
+0x3974 0x245CF
+0x3975 0x245D1
+0x3976 0x245CE
+0x3977 0x2465F
+0x3978 0x24677
+0x3979 0x24674
+0x397A 0x24688
+0x397B 0x24675
+0x397C 0x24689
+0x397D 0x24672
+0x397E 0x247C6
+0x3A21 0x247EA
+0x3A22 0x247E0
+0x3A23 0x24807
+0x3A24 0x247E6
+0x3A25 0x247E5
+0x3A26 0x247DD
+0x3A27 0x247E3
+0x3A28 0x247DA
+0x3A29 0x249AE
+0x3A2A 0x2497E
+0x3A2B 0x2497D
+0x3A2C 0x2497F
+0x3A2D 0x3ED3
+0x3A2E 0x249D9
+0x3A2F-0x3A30 0x24AFA
+0x3A31 0x24B4D
+0x3A32 0x24B54
+0x3A33 0x24B51
+0x3A34 0x24B50
+0x3A35 0x24D98
+0x3A36 0x24D95
+0x3A37 0x24D9D
+0x3A38 0x24DC1
+0x3A39-0x3A3A 0x24D9A
+0x3A3B 0x3F9F
+0x3A3C 0x24D9C
+0x3A3D 0x24DD7
+0x3A3E 0x24DA4
+0x3A3F 0x24D96
+0x3A40 0x24DA0
+0x3A41 0x24F31
+0x3A42 0x24FE9
+0x3A43 0x2506E
+0x3A44 0x2519A
+0x3A45 0x251A5
+0x3A46 0x25194
+0x3A47 0x251A6
+0x3A48 0x25199
+0x3A49 0x2518B
+0x3A4A 0x25198
+0x3A4B 0x25191
+0x3A4C 0x2518C
+0x3A4D 0x251A1
+0x3A4E 0x251A3
+0x3A4F 0x251C6
+0x3A50 0x2536F
+0x3A51 0x2536D
+0x3A52 0x2536A
+0x3A53 0x2536C
+0x3A54 0x25371
+0x3A55 0x2536E
+0x3A56 0x253DF
+0x3A57 0x254AC
+0x3A58 0x254AA
+0x3A59 0x40B1
+0x3A5A 0x254B5
+0x3A5B 0x254AD
+0x3A5C-0x3A5D 0x254B2
+0x3A5E 0x254AB
+0x3A5F 0x254B6
+0x3A60 0x254C7
+0x3A61 0x254C6
+0x3A62 0x2566C
+0x3A63 0x25670
+0x3A64 0x257B3
+0x3A65 0x414B
+0x3A66 0x2598C
+0x3A67 0x25981
+0x3A68 0x25983
+0x3A69 0x2597D
+0x3A6A 0x25985
+0x3A6B 0x25990
+0x3A6C 0x259A2
+0x3A6D 0x2598D
+0x3A6E 0x2598F
+0x3A6F 0x2597E
+0x3A70 0x2598A
+0x3A71 0x2597F
+0x3A72 0x25976
+0x3A73 0x25987
+0x3A74 0x25978
+0x3A75 0x25A80
+0x3A76 0x25A82
+0x3A77 0x25A81
+0x3A78 0x25A83
+0x3A79 0x25B5A
+0x3A7A 0x25B34
+0x3A7B 0x25B2C
+0x3A7C 0x25B2A
+0x3A7D 0x25B40
+0x3A7E 0x25B2D
+0x3B21 0x25B33
+0x3B22 0x25B2B
+0x3B23 0x25B4B
+0x3B24 0x7B3F
+0x3B25 0x25B3C
+0x3B26 0x25E5A
+0x3B27 0x25E77
+0x3B28 0x25E60
+0x3B29 0x25FFA
+0x3B2A 0x25FF9
+0x3B2B 0x25FFC
+0x3B2C 0x42D6
+0x3B2D 0x25FF5
+0x3B2E 0x25FE8
+0x3B2F 0x26009
+0x3B30 0x25FE7
+0x3B31 0x25FE6
+0x3B32 0x25FE9
+0x3B33 0x26232
+0x3B34 0x2622C
+0x3B35 0x262BD
+0x3B36 0x262BC
+0x3B37 0x2637A
+0x3B38 0x2637E
+0x3B39 0x26379
+0x3B3A 0x4389
+0x3B3B 0x26423
+0x3B3C 0x26430
+0x3B3D 0x26428
+0x3B3E 0x264D4
+0x3B3F 0x26ACE
+0x3B40 0x264F1
+0x3B41 0x264F0
+0x3B42 0x26560
+0x3B43 0x26565
+0x3B44 0x266A8
+0x3B45 0x2670A
+0x3B46 0x2671B
+0x3B47 0x26712
+0x3B48 0x26707
+0x3B49 0x2674F
+0x3B4A 0x2670E
+0x3B4B 0x26752
+0x3B4C 0x26716
+0x3B4D 0x4400
+0x3B4E-0x3B4F 0x26753
+0x3B50 0x2F984
+0x3B51 0x26756
+0x3B52 0x2696D
+0x3B53 0x26972
+0x3B54 0x26A2F
+0x3B55 0x26C2A
+0x3B56 0x44DC
+0x3B57 0x26C63
+0x3B58 0x26C84
+0x3B59 0x26CAF
+0x3B5A 0x26C45
+0x3B5B 0x26C70
+0x3B5C 0x26C56
+0x3B5D 0x26C16
+0x3B5E 0x26C3D
+0x3B5F 0x26C38
+0x3B60 0x26C6F
+0x3B61 0x26C77
+0x3B62 0x26C2E
+0x3B63 0x26C31
+0x3B64 0x26C4C
+0x3B65 0x26C5F
+0x3B66 0x26C75
+0x3B67-0x3B68 0x26C39
+0x3B69-0x3B6A 0x26C2C
+0x3B6B 0x26C3F
+0x3B6C-0x3B6D 0x26C2F
+0x3B6E 0x26C3E
+0x3B6F 0x83D0
+0x3B70 0x4590
+0x3B71 0x271B2
+0x3B72 0x272B7
+0x3B73 0x2728F
+0x3B74 0x45B1
+0x3B75 0x27296
+0x3B76 0x2729E
+0x3B77 0x27297
+0x3B78 0x27295
+0x3B79 0x272A5
+0x3B7A 0x27298
+0x3B7B 0x86E7
+0x3B7C 0x272A3
+0x3B7D 0x2729A
+0x3B7E 0x272AD
+0x3C21 0x272A6
+0x3C22 0x272B6
+0x3C23 0x27299
+0x3C24 0x272AF
+0x3C25 0x272AC
+0x3C26 0x45AA
+0x3C27 0x2729F
+0x3C28 0x27294
+0x3C29 0x275EB
+0x3C2A 0x2766F
+0x3C2B 0x2766D
+0x3C2C 0x2767E
+0x3C2D 0x2766C
+0x3C2E 0x27661
+0x3C2F 0x27663
+0x3C30 0x2766B
+0x3C31 0x2765E
+0x3C32 0x2763E
+0x3C33 0x27664
+0x3C34 0x276AD
+0x3C35 0x467D
+0x3C36 0x27820
+0x3C37 0x278D1
+0x3C38 0x278D5
+0x3C39-0x3C3A 0x279AE
+0x3C3B 0x2799F
+0x3C3C 0x279A8
+0x3C3D 0x279CA
+0x3C3E 0x27BE1
+0x3C3F 0x27C39
+0x3C40 0x27C38
+0x3C41 0x27C3B
+0x3C42 0x27CAD
+0x3C43 0x27CB5
+0x3C44 0x27CAF
+0x3C45 0x27CB1
+0x3C46 0x27CAE
+0x3C47 0x27CB4
+0x3C48 0x27CB0
+0x3C49 0x27D4B
+0x3C4A 0x27D51
+0x3C4B 0x27D4C
+0x3C4C 0x4769
+0x3C4D 0x27D60
+0x3C4E 0x27EBE
+0x3C4F 0x27EB9
+0x3C50 0x27EB7
+0x3C51 0x27EB6
+0x3C52 0x47A1
+0x3C53 0x27EBD
+0x3C54 0x27EB8
+0x3C55 0x27EC1
+0x3C56 0x27FF7
+0x3C57-0x3C58 0x27FF3
+0x3C59 0x27FFB
+0x3C5A 0x27FFD
+0x3C5B 0x27FF5
+0x3C5C 0x47E7
+0x3C5D 0x27FFA
+0x3C5E 0x28014
+0x3C5F 0x47EC
+0x3C60 0x27FF2
+0x3C61 0x27FFC
+0x3C62 0x28000
+0x3C63 0x47DF
+0x3C64 0x2822B
+0x3C65 0x28229
+0x3C66 0x2822E
+0x3C67 0x4833
+0x3C68 0x282D7
+0x3C69 0x282DB
+0x3C6A 0x282D9
+0x3C6B 0x282D8
+0x3C6C 0x282E6
+0x3C6D 0x282D6
+0x3C6E 0x282D1
+0x3C6F 0x282E7
+0x3C70 0x282D0
+0x3C71 0x282DC
+0x3C72 0x284ED
+0x3C73 0x2851A
+0x3C74 0x28519
+0x3C75 0x28516
+0x3C76 0x284EC
+0x3C77 0x284EF
+0x3C78 0x284EE
+0x3C79 0x284F4
+0x3C7A 0x2852F
+0x3C7B 0x28730
+0x3C7C 0x28719
+0x3C7D 0x28718
+0x3C7E 0x28711
+0x3D21 0x28716
+0x3D22 0x28712
+0x3D23 0x28710
+0x3D24 0x28714
+0x3D25-0x3D26 0x2880C
+0x3D27 0x28910
+0x3D28 0x28929
+0x3D29 0x28928
+0x3D2A-0x3D2B 0x28C65
+0x3D2C-0x3D2E 0x28CDE
+0x3D2F 0x28CD9
+0x3D30 0x28CDB
+0x3D31 0x28CD8
+0x3D32 0x28CE3
+0x3D33 0x28CD7
+0x3D34-0x3D35 0x28EA6
+0x3D36 0x28EBF
+0x3D37 0x28EA8
+0x3D38 0x28E9F
+0x3D39-0x3D3A 0x28EA1
+0x3D3B 0x28EAD
+0x3D3C 0x28EA3
+0x3D3D 0x28EA0
+0x3D3E 0x29083
+0x3D3F 0x29085
+0x3D40 0x29082
+0x3D41 0x29084
+0x3D42 0x291EE
+0x3D43 0x2925D
+0x3D44 0x29392
+0x3D45 0x29455
+0x3D46 0x29453
+0x3D47 0x2F9FC
+0x3D48-0x3D49 0x29451
+0x3D4A 0x29450
+0x3D4B 0x2959D
+0x3D4C 0x29687
+0x3D4D 0x29697
+0x3D4E 0x2969B
+0x3D4F 0x2969D
+0x3D50 0x29869
+0x3D51 0x29A11
+0x3D52 0x4BEE
+0x3D53 0x29C7A
+0x3D54 0x4C32
+0x3D55 0x23244
+0x3D56 0x200C6
+0x3D57 0x20340
+0x3D58 0x2032E
+0x3D59 0x20368
+0x3D5A 0x2032D
+0x3D5B 0x20334
+0x3D5C 0x20332
+0x3D5D 0x20369
+0x3D5E 0x20331
+0x3D5F 0x2036A
+0x3D60 0x2033E
+0x3D61 0x2036F
+0x3D62 0x20375
+0x3D63 0x204F6
+0x3D64 0x20520
+0x3D65 0x20528
+0x3D66 0x20567
+0x3D67 0x205FB
+0x3D68 0x205FE
+0x3D69-0x3D6A 0x205FC
+0x3D6B 0x205FF
+0x3D6C 0x205FA
+0x3D6D 0x207AC
+0x3D6E 0x207AF
+0x3D6F 0x207B1
+0x3D70 0x34FC
+0x3D71 0x207BF
+0x3D72 0x207BE
+0x3D73 0x207A7
+0x3D74 0x207AA
+0x3D75 0x20894
+0x3D76 0x20893
+0x3D77 0x20899
+0x3D78 0x352A
+0x3D79 0x208FA
+0x3D7A 0x20956
+0x3D7B 0x20A22
+0x3D7C-0x3D7D 0x20A91
+0x3D7E 0x20B08
+0x3E21 0x20B06
+0x3E22 0x20DD6
+0x3E23 0x20E37
+0x3E24 0x20E4B
+0x3E25 0x20ECE
+0x3E26 0x20ED0
+0x3E27 0x20E39
+0x3E28 0x20E64
+0x3E29 0x20ECF
+0x3E2A 0x20E46
+0x3E2B 0x20E66
+0x3E2C 0x20E56
+0x3E2D 0x20E43
+0x3E2E 0x20E4A
+0x3E2F 0x20E58
+0x3E30 0x20E65
+0x3E31-0x3E32 0x20E5A
+0x3E33 0x20E55
+0x3E34 0x20E50
+0x3E35 0x20E4C
+0x3E36 0x20ECD
+0x3E37 0x20E51
+0x3E38 0x20E47
+0x3E39 0x35D3
+0x3E3A 0x20E53
+0x3E3B 0x20E62
+0x3E3C 0x20ECC
+0x3E3D 0x35D7
+0x3E3E 0x20E7F
+0x3E3F 0x20E4D
+0x3E40 0x2120A
+0x3E41 0x2120C
+0x3E42 0x2120F
+0x3E43 0x213BB
+0x3E44 0x213B9
+0x3E45 0x213EB
+0x3E46 0x213AE
+0x3E47 0x213C1
+0x3E48 0x213EA
+0x3E49-0x3E4A 0x213BE
+0x3E4B 0x213BA
+0x3E4C 0x213B7
+0x3E4D 0x213B3
+0x3E4E 0x213E9
+0x3E4F 0x2156E
+0x3E50 0x215AF
+0x3E51 0x215B3
+0x3E52 0x215B2
+0x3E53-0x3E55 0x21668
+0x3E56 0x217DE
+0x3E57 0x217EB
+0x3E58 0x21811
+0x3E59 0x217ED
+0x3E5A 0x217E9
+0x3E5B 0x217F7
+0x3E5C 0x217F4
+0x3E5D 0x217EA
+0x3E5E 0x21812
+0x3E5F 0x217E8
+0x3E60 0x21813
+0x3E61 0x2198E
+0x3E62 0x21986
+0x3E63 0x21A63
+0x3E64 0x21A65
+0x3E65 0x21B99
+0x3E66 0x21CC2
+0x3E67 0x21CAE
+0x3E68 0x21CB0
+0x3E69 0x21CAD
+0x3E6A 0x21EB4
+0x3E6B 0x21ED1
+0x3E6C 0x21EAD
+0x3E6D 0x37F3
+0x3E6E 0x21EBD
+0x3E6F 0x21EB7
+0x3E70 0x21EAB
+0x3E71 0x21EAF
+0x3E72 0x21EC1
+0x3E73 0x21EB5
+0x3E74 0x2210F
+0x3E75 0x2210E
+0x3E76 0x2211C
+0x3E77 0x22113
+0x3E78 0x2210A
+0x3E79 0x2211E
+0x3E7A 0x22114
+0x3E7B 0x2211A
+0x3E7C 0x221CB
+0x3E7D 0x22287
+0x3E7E 0x22293
+0x3F21 0x3891
+0x3F22-0x3F23 0x22284
+0x3F24 0x22292
+0x3F25 0x22280
+0x3F26 0x2232B
+0x3F27 0x22363
+0x3F28 0x2240A
+0x3F29 0x38C0
+0x3F2A 0x22466
+0x3F2B 0x22534
+0x3F2C 0x22533
+0x3F2D 0x2254D
+0x3F2E 0x22789
+0x3F2F 0x22757
+0x3F30 0x6117
+0x3F31 0x2274A
+0x3F32 0x3963
+0x3F33 0x22739
+0x3F34 0x2273F
+0x3F35 0x22790
+0x3F36 0x2278F
+0x3F37 0x227B2
+0x3F38 0x2279F
+0x3F39 0x22795
+0x3F3A 0x227A1
+0x3F3B 0x2279C
+0x3F3C 0x2278E
+0x3F3D 0x227A0
+0x3F3E 0x227AE
+0x3F3F 0x22796
+0x3F40 0x227CA
+0x3F41 0x227AC
+0x3F42 0x3970
+0x3F43 0x227A6
+0x3F44 0x22797
+0x3F45 0x22793
+0x3F46 0x203B6
+0x3F47 0x229D6
+0x3F48 0x229E0
+0x3F49 0x229D8
+0x3F4A 0x22A56
+0x3F4B 0x22C6E
+0x3F4C 0x22C7E
+0x3F4D 0x22C74
+0x3F4E 0x22C77
+0x3F4F 0x22C80
+0x3F50 0x22C7A
+0x3F51 0x22C6B
+0x3F52 0x22C5F
+0x3F53 0x22C76
+0x3F54 0x22CB0
+0x3F55 0x22C63
+0x3F56 0x22F92
+0x3F57 0x22F82
+0x3F58 0x22F9D
+0x3F59 0x22F94
+0x3F5A 0x22F83
+0x3F5B 0x22F8B
+0x3F5C 0x22F84
+0x3F5D 0x23057
+0x3F5E 0x23084
+0x3F5F 0x230B5
+0x3F60 0x23109
+0x3F61 0x231E6
+0x3F62 0x3B02
+0x3F63 0x23225
+0x3F64 0x23251
+0x3F65 0x2333E
+0x3F66 0x2F8DA
+0x3F67 0x23385
+0x3F68 0x2353F
+0x3F69 0x23542
+0x3F6A 0x23538
+0x3F6B 0x2353A
+0x3F6C 0x2354E
+0x3F6D 0x23545
+0x3F6E 0x23539
+0x3F6F 0x23537
+0x3F70 0x23544
+0x3F71 0x2F8E7
+0x3F72 0x235A4
+0x3F73 0x2353D
+0x3F74 0x23541
+0x3F75 0x238DF
+0x3F76 0x238DE
+0x3F77 0x238CA
+0x3F78 0x238E9
+0x3F79 0x238E2
+0x3F7A 0x238E0
+0x3F7B 0x23989
+0x3F7C 0x23987
+0x3F7D-0x3F7E 0x23A32
+0x4021 0x23AAC
+0x4022 0x23AF9
+0x4023 0x23B0D
+0x4024 0x23BB9
+0x4025 0x23E5E
+0x4026 0x23E6A
+0x4027 0x3D35
+0x4028 0x23E81
+0x4029 0x23E69
+0x402A 0x23EAC
+0x402B 0x23E80
+0x402C 0x23E75
+0x402D 0x23E71
+0x402E 0x23E76
+0x402F 0x23E6F
+0x4030 0x242B6
+0x4031 0x24303
+0x4032 0x242BF
+0x4033 0x24301
+0x4034 0x242B2
+0x4035 0x242C4
+0x4036-0x4037 0x245DB
+0x4038 0x245D8
+0x4039 0x29672
+0x403A 0x246B5
+0x403B 0x246A8
+0x403C 0x2468F
+0x403D 0x2469E
+0x403E 0x2468E
+0x403F 0x247DE
+0x4040 0x247E2
+0x4041 0x24820
+0x4042 0x2481D
+0x4043 0x2481A
+0x4044 0x24819
+0x4045 0x2482B
+0x4046 0x24818
+0x4047 0x24810
+0x4048 0x2480E
+0x4049 0x24824
+0x404A 0x2481F
+0x404B 0x24813
+0x404C 0x24835
+0x404D 0x24983
+0x404E 0x3EE0
+0x404F 0x249D7
+0x4050-0x4051 0x24B02
+0x4052 0x24B5C
+0x4053 0x24B5F
+0x4054 0x24BC7
+0x4055 0x24C9A
+0x4056 0x24C97
+0x4057 0x24CA3
+0x4058 0x24DF7
+0x4059 0x24DC6
+0x405A 0x24DCC
+0x405B 0x24DD6
+0x405C 0x24DCD
+0x405D 0x24DF9
+0x405E 0x24DD9
+0x405F 0x24DD8
+0x4060 0x3F9A
+0x4061 0x24DD1
+0x4062 0x24DCE
+0x4063 0x24DD5
+0x4064 0x3FA3
+0x4065 0x24DD4
+0x4066 0x24DF8
+0x4067 0x24F7A
+0x4068 0x24F79
+0x4069 0x24F7F
+0x406A 0x24FF3
+0x406B-0x406C 0x24FF5
+0x406D 0x24FF4
+0x406E 0x24FF7
+0x406F 0x4005
+0x4070 0x25079
+0x4071 0x2519C
+0x4072 0x251DF
+0x4073 0x251F5
+0x4074 0x251FF
+0x4075 0x251D1
+0x4076 0x251DA
+0x4077 0x251CF
+0x4078 0x251CD
+0x4079 0x251DE
+0x407A 0x251D8
+0x407B 0x23AAD
+0x407C 0x251E0
+0x407D 0x251FE
+0x407E 0x2519E
+0x4121 0x25375
+0x4122 0x25373
+0x4123 0x25372
+0x4124 0x253D8
+0x4125 0x254D0
+0x4126-0x4127 0x254D6
+0x4128 0x254CA
+0x4129 0x254CD
+0x412A 0x2568A
+0x412B 0x25689
+0x412C 0x2568B
+0x412D 0x257D3
+0x412E 0x257DA
+0x412F 0x257CE
+0x4130 0x257D2
+0x4131 0x415E
+0x4132 0x257D4
+0x4133 0x257D7
+0x4134 0x257D5
+0x4135 0x257FB
+0x4136 0x257CD
+0x4137 0x257FA
+0x4138 0x257D6
+0x4139 0x41A6
+0x413A 0x2599B
+0x413B 0x2599E
+0x413C 0x2599D
+0x413D 0x259A4
+0x413E 0x2599F
+0x413F 0x259A5
+0x4140 0x259A8
+0x4141 0x25A8F
+0x4142 0x25A8C
+0x4143 0x25A95
+0x4144 0x25B60
+0x4145 0x25B55
+0x4146 0x25B5C
+0x4147 0x25B6F
+0x4148 0x25B51
+0x4149 0x25B61
+0x414A 0x25BA7
+0x414B 0x25B5E
+0x414C 0x25B62
+0x414D 0x25B54
+0x414E 0x25B6E
+0x414F 0x25B52
+0x4150 0x25B58
+0x4151 0x25B6D
+0x4152 0x25B5F
+0x4153 0x25B6C
+0x4154 0x25B50
+0x4155 0x25B5D
+0x4156 0x25B8E
+0x4157 0x25E72
+0x4158 0x25E78
+0x4159-0x415A 0x25E75
+0x415B 0x25E7C
+0x415C 0x25E7E
+0x415D 0x25E7D
+0x415E 0x26015
+0x415F 0x26014
+0x4160 0x2601D
+0x4161 0x2601C
+0x4162 0x26023
+0x4163 0x26057
+0x4164 0x262C8
+0x4165 0x435D
+0x4166 0x262C9
+0x4167 0x262C5
+0x4168 0x26387
+0x4169 0x2638A
+0x416A 0x26394
+0x416B 0x26439
+0x416C 0x26440
+0x416D 0x2643E
+0x416E 0x26438
+0x416F 0x264D6
+0x4170 0x43B8
+0x4171-0x4172 0x26577
+0x4173 0x2657D
+0x4174 0x266DD
+0x4175 0x2675E
+0x4176 0x26777
+0x4177 0x267D4
+0x4178 0x26766
+0x4179 0x2675F
+0x417A 0x26773
+0x417B 0x26772
+0x417C 0x26797
+0x417D 0x2675A
+0x417E 0x26796
+0x4221 0x2675D
+0x4222 0x26765
+0x4223 0x26770
+0x4224 0x26775
+0x4225 0x26774
+0x4226 0x2675C
+0x4227 0x26760
+0x4228 0x4434
+0x4229 0x2676D
+0x422A 0x26941
+0x422B 0x26A3C
+0x422C 0x26A3E
+0x422D 0x446F
+0x422E 0x26A49
+0x422F 0x26BE4
+0x4230 0x26D0C
+0x4231 0x26D15
+0x4232 0x26D0E
+0x4233 0x26CD4
+0x4234 0x26CC7
+0x4235 0x26D14
+0x4236 0x26CDB
+0x4237 0x26D5F
+0x4238 0x26CED
+0x4239 0x26D09
+0x423A 0x26CCF
+0x423B 0x26CFF
+0x423C 0x26D1A
+0x423D 0x26CF5
+0x423E 0x26CEE
+0x423F 0x26CE5
+0x4240 0x26D0D
+0x4241 0x26CDF
+0x4242 0x26CEC
+0x4243 0x26CD7
+0x4244 0x26D2C
+0x4245 0x26CCD
+0x4246 0x26CE3
+0x4247 0x26D00
+0x4248 0x26CEB
+0x4249 0x26CFD
+0x424A 0x26D0F
+0x424B 0x26D2D
+0x424C 0x26D50
+0x424D 0x26CFE
+0x424E 0x26CC4
+0x424F 0x26CE1
+0x4250 0x26CF9
+0x4251-0x4252 0x271BB
+0x4253 0x4594
+0x4254 0x4593
+0x4255 0x271BA
+0x4256 0x272D0
+0x4257 0x272D6
+0x4258 0x272CE
+0x4259 0x272E1
+0x425A 0x272D5
+0x425B 0x272CF
+0x425C 0x272D3
+0x425D 0x8714
+0x425E 0x272D4
+0x425F 0x275B5
+0x4260 0x27690
+0x4261 0x276A1
+0x4262 0x27681
+0x4263 0x27685
+0x4264 0x2766E
+0x4265 0x27688
+0x4266 0x27682
+0x4267 0x27686
+0x4268 0x2768F
+0x4269 0x27689
+0x426A 0x27680
+0x426B 0x27684
+0x426C 0x88D1
+0x426D 0x27829
+0x426E 0x2782B
+0x426F 0x2782A
+0x4270 0x27830
+0x4271-0x4272 0x278E2
+0x4273 0x278E1
+0x4274 0x279D5
+0x4275 0x279C4
+0x4276 0x279C9
+0x4277 0x279E0
+0x4278 0x279DF
+0x4279 0x279CB
+0x427A 0x279DD
+0x427B 0x279E8
+0x427C 0x279D4
+0x427D 0x27A1C
+0x427E 0x27BB5
+0x4321 0x27BB6
+0x4322 0x27BE5
+0x4323 0x27C45
+0x4324 0x27C49
+0x4325 0x27C40
+0x4326 0x27C46
+0x4327 0x27C44
+0x4328 0x27C4A
+0x4329 0x27CC9
+0x432A 0x27CC4
+0x432B 0x27CC2
+0x432C 0x27D68
+0x432D 0x8CCB
+0x432E 0x27D82
+0x432F 0x27D6B
+0x4330 0x27D67
+0x4331-0x4332 0x27D6C
+0x4333 0x27D71
+0x4334 0x4792
+0x4335 0x27ED7
+0x4336 0x27ED2
+0x4337 0x27ED9
+0x4338 0x47AA
+0x4339 0x27EBC
+0x433A 0x27EDD
+0x433B 0x27ED6
+0x433C 0x47A7
+0x433D 0x27ED8
+0x433E 0x28020
+0x433F 0x28016
+0x4340 0x28018
+0x4341 0x28015
+0x4342 0x28019
+0x4343 0x28027
+0x4344 0x28050
+0x4345 0x2801D
+0x4346 0x2802C
+0x4347 0x2801C
+0x4348 0x28029
+0x4349 0x2802B
+0x434A 0x28024
+0x434B 0x47EF
+0x434C 0x28028
+0x434D 0x28239
+0x434E 0x282F2
+0x434F 0x282F0
+0x4350 0x8EED
+0x4351 0x282ED
+0x4352 0x282EF
+0x4353 0x282EA
+0x4354 0x28301
+0x4355 0x284BC
+0x4356 0x2855C
+0x4357 0x2855B
+0x4358 0x2855A
+0x4359 0x28526
+0x435A 0x28743
+0x435B 0x28733
+0x435C 0x2873A
+0x435D 0x28737
+0x435E 0x28736
+0x435F 0x2873C
+0x4360 0x28734
+0x4361 0x2874A
+0x4362 0x2873B
+0x4363 0x28735
+0x4364 0x2873D
+0x4365 0x28740
+0x4366 0x2873E
+0x4367 0x28717
+0x4368 0x28826
+0x4369 0x28824
+0x436A 0x28810
+0x436B 0x28836
+0x436C 0x28825
+0x436D 0x4922
+0x436E 0x28966
+0x436F 0x28C7F
+0x4370 0x28C7A
+0x4371 0x28CFB
+0x4372 0x28CFD
+0x4373 0x28CFC
+0x4374 0x28CFA
+0x4375 0x28ED6
+0x4376 0x28ED2
+0x4377 0x28EC8
+0x4378 0x28EC2
+0x4379 0x28EC7
+0x437A 0x28ECD
+0x437B 0x28EC1
+0x437C 0x28EC6
+0x437D 0x28ECC
+0x437E 0x28FA1
+0x4421 0x29095
+0x4422 0x29094
+0x4423 0x29097
+0x4424 0x29096
+0x4425 0x29093
+0x4426 0x290A1
+0x4427 0x29209
+0x4428 0x29208
+0x4429 0x29267
+0x442A 0x29265
+0x442B 0x29262
+0x442C 0x29261
+0x442D 0x29397
+0x442E 0x29401
+0x442F 0x29419
+0x4430 0x29418
+0x4431 0x2945C
+0x4432 0x29467
+0x4433 0x2946C
+0x4434 0x4AB5
+0x4435 0x2F9FD
+0x4436 0x29466
+0x4437 0x29461
+0x4438 0x2946E
+0x4439 0x2945D
+0x443A 0x2945A
+0x443B 0x295A2
+0x443C 0x295A9
+0x443D-0x443E 0x295A5
+0x443F 0x295B2
+0x4440 0x295A3
+0x4441 0x296AC
+0x4442 0x296AA
+0x4443 0x296AF
+0x4444 0x296AB
+0x4445 0x296B1
+0x4446 0x296C6
+0x4447 0x296AD
+0x4448 0x296B9
+0x4449 0x29870
+0x444A 0x4B75
+0x444B 0x29C0C
+0x444C 0x29C81
+0x444D 0x29C83
+0x444E 0x29C7E
+0x444F 0x29D51
+0x4450 0x29F99
+0x4451-0x4452 0x29F94
+0x4453 0x2A2FE
+0x4454 0x2A418
+0x4455 0x20105
+0x4456 0x20372
+0x4457 0x3482
+0x4458 0x20399
+0x4459 0x204AD
+0x445A 0x20606
+0x445B 0x207C2
+0x445C 0x207CB
+0x445D 0x207D5
+0x445E 0x207D2
+0x445F 0x207CC
+0x4460 0x207D7
+0x4461 0x207C5
+0x4462 0x207CA
+0x4463 0x52EC
+0x4464-0x4465 0x208A2
+0x4466 0x208A1
+0x4467 0x52E8
+0x4468 0x208A6
+0x4469 0x208A4
+0x446A-0x446B 0x208FF
+0x446C 0x3535
+0x446D 0x20A06
+0x446E 0x20A25
+0x446F 0x20A9F
+0x4470 0x20B7F
+0x4471-0x4472 0x20EEA
+0x4473 0x20EDE
+0x4474 0x20F18
+0x4475 0x20EE0
+0x4476 0x20EE8
+0x4477 0x20EDF
+0x4478 0x20EF1
+0x4479 0x20EEC
+0x447A 0x20F1A
+0x447B 0x20EE6
+0x447C 0x20EE1
+0x447D 0x20F5D
+0x447E 0x20077
+0x4521 0x20F1E
+0x4522 0x35F0
+0x4523 0x20F80
+0x4524 0x21217
+0x4525 0x2141D
+0x4526 0x213F7
+0x4527 0x213EF
+0x4528 0x213EE
+0x4529 0x213ED
+0x452A 0x213F5
+0x452B 0x2141E
+0x452C 0x215BD
+0x452D 0x257FF
+0x452E 0x215BE
+0x452F 0x2166D
+0x4530 0x21676
+0x4531 0x2184C
+0x4532 0x21819
+0x4533 0x21848
+0x4534 0x2181E
+0x4535 0x2184A
+0x4536 0x21849
+0x4537 0x21826
+0x4538 0x21995
+0x4539 0x21A85
+0x453A 0x21A7E
+0x453B 0x21A97
+0x453C 0x21A7D
+0x453D 0x21B42
+0x453E 0x21B9E
+0x453F 0x21C0C
+0x4540 0x21C0B
+0x4541 0x21C0E
+0x4542 0x21CCF
+0x4543 0x21ED8
+0x4544 0x21EE0
+0x4545-0x4546 0x21EE8
+0x4547 0x21EE2
+0x4548 0x21EE1
+0x4549 0x21EDA
+0x454A 0x21EE3
+0x454B 0x21ED9
+0x454C 0x21EF0
+0x454D 0x21EE7
+0x454E 0x21EE4
+0x454F 0x22123
+0x4550 0x22131
+0x4551 0x22133
+0x4552 0x2210C
+0x4553 0x269E0
+0x4554 0x22126
+0x4555 0x22124
+0x4556 0x22132
+0x4557 0x22127
+0x4558 0x22121
+0x4559 0x22130
+0x455A 0x221A2
+0x455B 0x221CC
+0x455C 0x22296
+0x455D 0x2F88F
+0x455E 0x22298
+0x455F 0x2229C
+0x4560 0x2229B
+0x4561 0x2236B
+0x4562 0x22412
+0x4563 0x22414
+0x4564 0x2255A
+0x4565 0x22554
+0x4566 0x22551
+0x4567 0x2255E
+0x4568 0x22558
+0x4569 0x38F0
+0x456A 0x22559
+0x456B 0x2279A
+0x456C 0x227F2
+0x456D 0x227AD
+0x456E 0x22820
+0x456F 0x227F1
+0x4570 0x227F0
+0x4571-0x4572 0x227F3
+0x4573 0x227E9
+0x4574 0x227FE
+0x4575 0x2282E
+0x4576 0x227E8
+0x4577 0x227E7
+0x4578 0x227FF
+0x4579 0x227F5
+0x457A 0x229E5
+0x457B 0x229E7
+0x457C 0x229E6
+0x457D 0x229E9
+0x457E 0x22A58
+0x4621 0x22C6C
+0x4622 0x22CD9
+0x4623 0x3A3E
+0x4624 0x22CCB
+0x4625 0x3A39
+0x4626 0x22CBE
+0x4627 0x22CB5
+0x4628 0x22CD1
+0x4629 0x22CC2
+0x462A 0x22CB6
+0x462B 0x22CD3
+0x462C 0x2F8C2
+0x462D 0x22EDA
+0x462E 0x3AA2
+0x462F 0x22FAE
+0x4630 0x3AA1
+0x4631 0x22FAC
+0x4632 0x22FA9
+0x4633 0x22FBA
+0x4634 0x22FA7
+0x4635 0x22FB3
+0x4636 0x22FBD
+0x4637 0x22FB1
+0x4638 0x2310E
+0x4639 0x23111
+0x463A 0x2310F
+0x463B 0x23252
+0x463C 0x2326A
+0x463D-0x463E 0x23254
+0x463F 0x23253
+0x4640 0x23257
+0x4641 0x2F8D0
+0x4642 0x2325B
+0x4643-0x4644 0x23258
+0x4645 0x3B3B
+0x4646 0x235B8
+0x4647 0x235B5
+0x4648 0x235BF
+0x4649 0x235C1
+0x464A 0x235BB
+0x464B 0x3BB7
+0x464C 0x235C3
+0x464D 0x235AD
+0x464E 0x235A8
+0x464F 0x235AE
+0x4650 0x235AA
+0x4651 0x235D0
+0x4652 0x235B1
+0x4653 0x235BC
+0x4654 0x235B7
+0x4655 0x235B0
+0x4656-0x4657 0x235FA
+0x4658 0x235B9
+0x4659 0x23907
+0x465A 0x238FC
+0x465B 0x238FF
+0x465C 0x238F2
+0x465D 0x238F8
+0x465E 0x238F4
+0x465F 0x3C57
+0x4660 0x3C70
+0x4661 0x23AAE
+0x4662-0x4663 0x23B0F
+0x4664 0x29AC1
+0x4665 0x23BC7
+0x4666 0x23BC6
+0x4667 0x23BCE
+0x4668 0x3CA7
+0x4669 0x23BDC
+0x466A 0x23ED5
+0x466B 0x23ED3
+0x466C 0x23F20
+0x466D 0x23EE2
+0x466E 0x23EF1
+0x466F 0x23EDB
+0x4670-0x4671 0x23EEA
+0x4672 0x23EE1
+0x4673 0x23EFF
+0x4674 0x23ED6
+0x4675 0x23EE0
+0x4676 0x23ED7
+0x4677 0x23EE5
+0x4678 0x3D54
+0x4679 0x2431B
+0x467A 0x24310
+0x467B 0x2430F
+0x467C 0x2430E
+0x467D 0x24339
+0x467E 0x2430A
+0x4721 0x24314
+0x4722 0x2430C
+0x4723 0x24523
+0x4724 0x2455A
+0x4725 0x245E2
+0x4726 0x24693
+0x4727 0x246B0
+0x4728 0x246AB
+0x4729 0x246BD
+0x472A 0x246B1
+0x472B 0x2468D
+0x472C 0x246AD
+0x472D 0x246AA
+0x472E 0x246AC
+0x472F 0x246BC
+0x4730 0x246C9
+0x4731 0x24847
+0x4732 0x24862
+0x4733 0x24840
+0x4734 0x24844
+0x4735 0x2483F
+0x4736 0x24843
+0x4737 0x2483D
+0x4738 0x24860
+0x4739 0x2485F
+0x473A 0x2483A
+0x473B 0x24842
+0x473C 0x2485E
+0x473D 0x2485D
+0x473E 0x249BC
+0x473F 0x249E0
+0x4740 0x249EE
+0x4741 0x249EB
+0x4742 0x24A0D
+0x4743 0x24B09
+0x4744 0x24B0C
+0x4745 0x24B69
+0x4746 0x24B74
+0x4747 0x24B67
+0x4748 0x3F31
+0x4749 0x7527
+0x474A 0x24CAD
+0x474B 0x24DFF
+0x474C 0x24E16
+0x474D-0x474E 0x24E08
+0x474F 0x24E00
+0x4750 0x24DFC
+0x4751-0x4752 0x24E13
+0x4753 0x24E0A
+0x4754 0x2983E
+0x4755 0x24E29
+0x4756 0x24E17
+0x4757 0x24E3B
+0x4758 0x24DFB
+0x4759 0x3FBF
+0x475A 0x24E0E
+0x475B 0x3FE4
+0x475C 0x25008
+0x475D 0x2521B
+0x475E 0x2521A
+0x475F 0x25219
+0x4760 0x25202
+0x4761 0x404A
+0x4762 0x25217
+0x4763 0x25207
+0x4764 0x25213
+0x4765-0x4766 0x25209
+0x4767 0x25212
+0x4768 0x252AA
+0x4769 0x25238
+0x476A-0x476B 0x2537B
+0x476C 0x2537A
+0x476D-0x476E 0x253EA
+0x476F-0x4770 0x253EF
+0x4771 0x25509
+0x4772 0x25502
+0x4773 0x25501
+0x4774 0x2552B
+0x4775 0x25507
+0x4776 0x40CF
+0x4777 0x25528
+0x4778 0x254FB
+0x4779 0x2552A
+0x477A 0x254FE
+0x477B 0x25504
+0x477C 0x25529
+0x477D 0x2550A
+0x477E 0x798C
+0x4821 0x256C2
+0x4822 0x7991
+0x4823 0x256A6
+0x4824 0x4114
+0x4825 0x22FC6
+0x4826 0x21C07
+0x4827 0x2580A
+0x4828 0x257FD
+0x4829 0x25806
+0x482A 0x2580D
+0x482B 0x25809
+0x482C 0x2580B
+0x482D 0x25800
+0x482E 0x25805
+0x482F 0x2583D
+0x4830 0x259D5
+0x4831 0x259BF
+0x4832 0x259BA
+0x4833 0x259C7
+0x4834 0x25A98
+0x4835 0x25A9A
+0x4836 0x420D
+0x4837 0x25BA4
+0x4838-0x4839 0x25B9C
+0x483A 0x25BA2
+0x483B 0x25B96
+0x483C 0x25B95
+0x483D 0x25BA5
+0x483E 0x25BAA
+0x483F 0x25BAD
+0x4840 0x25B9A
+0x4841 0x25BA3
+0x4842 0x25B97
+0x4843 0x25B90
+0x4844 0x25BAF
+0x4845 0x25B8D
+0x4846 0x4201
+0x4847 0x25BA8
+0x4848 0x25BEE
+0x4849 0x25EA3
+0x484A 0x25E99
+0x484B 0x25EA1
+0x484C 0x25E9C
+0x484D 0x25EA4
+0x484E 0x25ECB
+0x484F 0x26056
+0x4850 0x26048
+0x4851 0x26059
+0x4852 0x2604A
+0x4853 0x2605C
+0x4854 0x42F1
+0x4855 0x2604F
+0x4856 0x2604D
+0x4857 0x2605D
+0x4858 0x2623A
+0x4859 0x262E3
+0x485A 0x262E1
+0x485B 0x262DE
+0x485C 0x26397
+0x485D 0x2639A
+0x485E 0x26448
+0x485F 0x2644A
+0x4860 0x2644C
+0x4861-0x4862 0x2644E
+0x4863 0x2644B
+0x4864 0x2644D
+0x4865 0x26447
+0x4866 0x26451
+0x4867 0x264DA
+0x4868 0x264F9
+0x4869 0x264FC
+0x486A 0x264FB
+0x486B 0x264FD
+0x486C 0x264F8
+0x486D 0x264FA
+0x486E 0x2658A
+0x486F 0x2658E
+0x4870-0x4871 0x26588
+0x4872 0x2658D
+0x4873 0x26590
+0x4874 0x2F97E
+0x4875 0x2671C
+0x4876 0x267AB
+0x4877 0x267A4
+0x4878 0x267A8
+0x4879 0x267AD
+0x487A 0x2679F
+0x487B 0x2679A
+0x487C 0x267B0
+0x487D 0x267A5
+0x487E 0x267D5
+0x4921 0x267A2
+0x4922 0x267B2
+0x4923 0x2679D
+0x4924 0x267A1
+0x4925 0x26915
+0x4926 0x26942
+0x4927 0x26973
+0x4928 0x26984
+0x4929 0x269DD
+0x492A 0x26A5C
+0x492B 0x26A4C
+0x492C 0x4476
+0x492D 0x26A4B
+0x492E 0x26C67
+0x492F 0x26DA8
+0x4930 0x26D7F
+0x4931 0x26D8D
+0x4932 0x26D8B
+0x4933 0x26DF7
+0x4934 0x26DA9
+0x4935 0x26DF4
+0x4936 0x26D9A
+0x4937 0x26D8C
+0x4938 0x26D95
+0x4939 0x26D7E
+0x493A 0x26D77
+0x493B 0x450A
+0x493C 0x4503
+0x493D 0x26D71
+0x493E 0x26DFD
+0x493F 0x26D88
+0x4940 0x26D99
+0x4941 0x26D6D
+0x4942 0x26DD4
+0x4943 0x26D91
+0x4944 0x26D7D
+0x4945 0x26D63
+0x4946 0x26D75
+0x4947 0x26DF9
+0x4948 0x26D8E
+0x4949 0x26D74
+0x494A 0x26DD9
+0x494B 0x26D66
+0x494C 0x26DFA
+0x494D 0x26DF5
+0x494E 0x8660
+0x494F 0x271C1
+0x4950 0x271C9
+0x4951 0x27303
+0x4952 0x2732C
+0x4953 0x27334
+0x4954 0x27317
+0x4955 0x27309
+0x4956 0x27304
+0x4957 0x27306
+0x4958 0x2731A
+0x4959 0x2730E
+0x495A 0x27327
+0x495B 0x27305
+0x495C 0x27307
+0x495D 0x27319
+0x495E 0x27314
+0x495F 0x2730C
+0x4960 0x2731D
+0x4961-0x4962 0x27322
+0x4963-0x4964 0x275BB
+0x4965 0x275BA
+0x4966 0x276A9
+0x4967 0x276B5
+0x4968 0x276AC
+0x4969 0x276AA
+0x496A 0x276AF
+0x496B 0x276B7
+0x496C-0x496D 0x4635
+0x496E 0x2783D
+0x496F 0x27845
+0x4970 0x27848
+0x4971 0x2783C
+0x4972 0x2783E
+0x4973-0x4974 0x278EC
+0x4975 0x278E9
+0x4976-0x4977 0x27A0A
+0x4978 0x279F8
+0x4979 0x27A04
+0x497A 0x279F6
+0x497B 0x279F9
+0x497C 0x27C53
+0x497D 0x27C52
+0x497E 0x27C60
+0x4A21 0x27C63
+0x4A22 0x27CCE
+0x4A23 0x27CCD
+0x4A24 0x27CD0
+0x4A25 0x27CCC
+0x4A26 0x27D87
+0x4A27 0x27D8D
+0x4A28 0x27D9D
+0x4A29 0x4773
+0x4A2A 0x27E63
+0x4A2B 0x27EF4
+0x4A2C 0x27EF1
+0x4A2D 0x27EFF
+0x4A2E 0x27EF5
+0x4A2F 0x27EFC
+0x4A30 0x27EF2
+0x4A31 0x27EF6
+0x4A32 0x47B1
+0x4A33 0x27EFA
+0x4A34 0x47AF
+0x4A35 0x2802E
+0x4A36 0x28045
+0x4A37 0x28043
+0x4A38 0x28051
+0x4A39 0x2804C
+0x4A3A 0x28073
+0x4A3B 0x28047
+0x4A3C 0x2804B
+0x4A3D 0x2804F
+0x4A3E 0x47F4
+0x4A3F 0x28044
+0x4A40-0x4A41 0x2804D
+0x4A42 0x2804A
+0x4A43 0x28041
+0x4A44 0x28052
+0x4A45 0x2809F
+0x4A46 0x28054
+0x4A47 0x28059
+0x4A48 0x280A2
+0x4A49 0x2824B
+0x4A4A 0x28248
+0x4A4B 0x2830D
+0x4A4C 0x2831F
+0x4A4D 0x28308
+0x4A4E 0x2830E
+0x4A4F 0x2831D
+0x4A50 0x28304
+0x4A51 0x28418
+0x4A52 0x2841B
+0x4A53 0x28566
+0x4A54 0x28562
+0x4A55 0x28583
+0x4A56 0x28567
+0x4A57 0x28762
+0x4A58 0x2874F
+0x4A59 0x2874E
+0x4A5A 0x28767
+0x4A5B 0x28753
+0x4A5C 0x2874D
+0x4A5D 0x2874C
+0x4A5E 0x28768
+0x4A5F 0x28751
+0x4A60 0x48DC
+0x4A61 0x28758
+0x4A62 0x2875B
+0x4A63 0x28750
+0x4A64 0x2876A
+0x4A65 0x28839
+0x4A66 0x28838
+0x4A67 0x28982
+0x4A68 0x28984
+0x4A69 0x28986
+0x4A6A 0x28C80
+0x4A6B 0x28C86
+0x4A6C 0x28D25
+0x4A6D 0x28D11
+0x4A6E 0x4999
+0x4A6F 0x28D0E
+0x4A70 0x28D15
+0x4A71 0x28D0F
+0x4A72 0x28D18
+0x4A73 0x28D0D
+0x4A74 0x28D13
+0x4A75 0x28D16
+0x4A76 0x28D19
+0x4A77 0x28F08
+0x4A78 0x28EF7
+0x4A79-0x4A7A 0x28EFB
+0x4A7B 0x28FB4
+0x4A7C 0x28FBE
+0x4A7D 0x28FC1
+0x4A7E 0x290A6
+0x4B21 0x290A5
+0x4B22 0x290A2
+0x4B23 0x290A4
+0x4B24 0x29212
+0x4B25 0x2920E
+0x4B26 0x2927A
+0x4B27 0x29278
+0x4B28-0x4B29 0x2927D
+0x4B2A 0x29281
+0x4B2B 0x29283
+0x4B2C 0x29280
+0x4B2D 0x29282
+0x4B2E 0x2939B
+0x4B2F 0x29399
+0x4B30 0x2939C
+0x4B31 0x2939A
+0x4B32 0x293A1
+0x4B33 0x2941A
+0x4B34 0x2941C
+0x4B35 0x2948A
+0x4B36 0x29479
+0x4B37 0x29473
+0x4B38 0x29475
+0x4B39 0x2947C
+0x4B3A 0x29478
+0x4B3B 0x29460
+0x4B3C 0x29483
+0x4B3D 0x29470
+0x4B3E 0x4AB6
+0x4B3F 0x4ABD
+0x4B40 0x29487
+0x4B41 0x29484
+0x4B42 0x2947B
+0x4B43 0x2947E
+0x4B44 0x29474
+0x4B45 0x295B9
+0x4B46 0x295B8
+0x4B47 0x295B7
+0x4B48 0x295B5
+0x4B49 0x296CC
+0x4B4A 0x296CE
+0x4B4B 0x296D1
+0x4B4C 0x9904
+0x4B4D 0x296CB
+0x4B4E 0x999B
+0x4B4F 0x2987E
+0x4B50 0x2987A
+0x4B51 0x29877
+0x4B52 0x2988C
+0x4B53 0x298E1
+0x4B54 0x29A20
+0x4B55 0x29A1E
+0x4B56 0x29AC2
+0x4B57 0x29B0F
+0x4B58 0x29B00
+0x4B59 0x4BF4
+0x4B5A 0x29B10
+0x4B5B-0x4B5C 0x29C0D
+0x4B5D 0x29C8E
+0x4B5E 0x29C8D
+0x4B5F-0x4B61 0x29C8A
+0x4B62 0x29C8F
+0x4B63 0x29D57
+0x4B64 0x4C35
+0x4B65 0x29D55
+0x4B66 0x29D5B
+0x4B67 0x29FAC
+0x4B68 0x29FA7
+0x4B69 0x29FA0
+0x4B6A 0x29F9E
+0x4B6B 0x4CAA
+0x4B6C 0x2A28D
+0x4B6D 0x4D1F
+0x4B6E-0x4B6F 0x2A393
+0x4B70 0x2A392
+0x4B71 0x20181
+0x4B72 0x203D6
+0x4B73 0x203C3
+0x4B74 0x203E4
+0x4B75 0x203E2
+0x4B76 0x20409
+0x4B77 0x203BF
+0x4B78 0x203C8
+0x4B79 0x203C7
+0x4B7A 0x204B5
+0x4B7B 0x204B2
+0x4B7C 0x2060C
+0x4B7D 0x2060B
+0x4B7E 0x2060A
+0x4C21 0x20605
+0x4C22 0x207D3
+0x4C23 0x207E6
+0x4C24 0x207E9
+0x4C25 0x207F0
+0x4C26 0x207EA
+0x4C27 0x207E7
+0x4C28 0x208B1
+0x4C29-0x4C2A 0x208B3
+0x4C2B 0x208B0
+0x4C2C-0x4C2E 0x2095C
+0x4C2F 0x209C0
+0x4C30 0x20AAF
+0x4C31 0x3550
+0x4C32 0x20B86
+0x4C33-0x4C34 0x20B83
+0x4C35 0x20F5C
+0x4C36 0x20F70
+0x4C37 0x20F8C
+0x4C38 0x20F7B
+0x4C39 0x20F66
+0x4C3A 0x20F79
+0x4C3B 0x20F63
+0x4C3C 0x20FC5
+0x4C3D 0x20F6B
+0x4C3E 0x20F6D
+0x4C3F 0x20F72
+0x4C40 0x20F69
+0x4C41 0x20F75
+0x4C42 0x20F89
+0x4C43 0x20FC6
+0x4C44 0x20FA5
+0x4C45 0x203E7
+0x4C46 0x20F6A
+0x4C47 0x20F97
+0x4C48 0x2145A
+0x4C49 0x2145C
+0x4C4A 0x21459
+0x4C4B-0x4C4C 0x21424
+0x4C4D 0x21430
+0x4C4E 0x21458
+0x4C4F 0x21431
+0x4C50 0x21576
+0x4C51 0x215C1
+0x4C52 0x21685
+0x4C53 0x2167D
+0x4C54 0x21865
+0x4C55 0x21887
+0x4C56 0x21852
+0x4C57 0x21854
+0x4C58 0x2188A
+0x4C59 0x21850
+0x4C5A 0x21886
+0x4C5B 0x2184F
+0x4C5C 0x21868
+0x4C5D 0x2199D
+0x4C5E 0x21AA0
+0x4C5F 0x21ABA
+0x4C60 0x21ABD
+0x4C61 0x21AB8
+0x4C62 0x21BA6
+0x4C63 0x377B
+0x4C64 0x21CDE
+0x4C65 0x21CD8
+0x4C66 0x21CD1
+0x4C67 0x21F13
+0x4C68 0x3809
+0x4C69 0x21F0E
+0x4C6A 0x21F1B
+0x4C6B 0x21F3A
+0x4C6C 0x3807
+0x4C6D 0x21F1C
+0x4C6E 0x21F12
+0x4C6F 0x21F16
+0x4C70 0x21F1A
+0x4C71 0x21448
+0x4C72 0x2214B
+0x4C73 0x22137
+0x4C74 0x22136
+0x4C75 0x22138
+0x4C76 0x2213A
+0x4C77 0x22149
+0x4C78 0x2213C
+0x4C79 0x2214A
+0x4C7A 0x222B1
+0x4C7B 0x222C2
+0x4C7C 0x222B5
+0x4C7D 0x222C4
+0x4C7E 0x222B6
+0x4D21-0x4D22 0x2241E
+0x4D23 0x224AF
+0x4D24 0x2256B
+0x4D25 0x2256F
+0x4D26 0x22792
+0x4D27 0x227E4
+0x4D28 0x2282C
+0x4D29 0x227EF
+0x4D2A 0x6184
+0x4D2B 0x2284F
+0x4D2C 0x22852
+0x4D2D 0x22850
+0x4D2E 0x2283A
+0x4D2F 0x22837
+0x4D30 0x22847
+0x4D31 0x22864
+0x4D32 0x22840
+0x4D33 0x2283C
+0x4D34 0x22845
+0x4D35 0x22841
+0x4D36 0x229F3
+0x4D37 0x39BB
+0x4D38 0x22CC1
+0x4D39 0x22CB4
+0x4D3A 0x3A4B
+0x4D3B 0x22D2A
+0x4D3C 0x22D22
+0x4D3D 0x22D29
+0x4D3E 0x3A4D
+0x4D3F 0x22D3E
+0x4D40 0x22D3C
+0x4D41 0x22D30
+0x4D42 0x22FC7
+0x4D43-0x4D44 0x22FD5
+0x4D45 0x22FD3
+0x4D46 0x22FCE
+0x4D47 0x22FC8
+0x4D48 0x2305C
+0x4D49 0x2305F
+0x4D4A 0x23062
+0x4D4B 0x3AC2
+0x4D4C 0x230BD
+0x4D4D 0x230BF
+0x4D4E 0x2325C
+0x4D4F 0x232B6
+0x4D50 0x3B1A
+0x4D51 0x2329D
+0x4D52 0x2327F
+0x4D53 0x3B12
+0x4D54 0x23294
+0x4D55 0x23281
+0x4D56 0x23347
+0x4D57 0x23346
+0x4D58 0x3B3C
+0x4D59 0x23394
+0x4D5A 0x23675
+0x4D5B 0x2361A
+0x4D5C 0x2362A
+0x4D5D 0x23632
+0x4D5E 0x23617
+0x4D5F 0x23623
+0x4D60 0x23674
+0x4D61 0x3BC3
+0x4D62 0x23676
+0x4D63 0x2362E
+0x4D64 0x23625
+0x4D65 0x23620
+0x4D66 0x23671
+0x4D67 0x23616
+0x4D68 0x23670
+0x4D69 0x2362C
+0x4D6A 0x2362F
+0x4D6B 0x2361F
+0x4D6C 0x23664
+0x4D6D 0x3BC0
+0x4D6E 0x23908
+0x4D6F 0x23914
+0x4D70-0x4D71 0x2390A
+0x4D72 0x23A4F
+0x4D73 0x23A59
+0x4D74 0x23A54
+0x4D75 0x23A51
+0x4D76 0x23AB6
+0x4D77-0x4D78 0x23BEC
+0x4D79 0x23BEA
+0x4D7A 0x23EEE
+0x4D7B 0x23F5A
+0x4D7C 0x23F73
+0x4D7D 0x23F65
+0x4D7E 0x23F61
+0x4E21 0x23F55
+0x4E22 0x23F6B
+0x4E23 0x23F64
+0x4E24 0x23F5B
+0x4E25 0x23F4C
+0x4E26 0x23F6F
+0x4E27 0x23F84
+0x4E28 0x23F70
+0x4E29 0x2435D
+0x4E2A 0x24357
+0x4E2B 0x24366
+0x4E2C 0x24353
+0x4E2D 0x24398
+0x4E2E 0x24397
+0x4E2F 0x24528
+0x4E30 0x245EB
+0x4E31 0x245EA
+0x4E32 0x245E8
+0x4E33 0x245EC
+0x4E34 0x245EF
+0x4E35 0x246D1
+0x4E36 0x246CA
+0x4E37 0x729F
+0x4E38 0x246CF
+0x4E39-0x4E3A 0x246CD
+0x4E3B 0x24870
+0x4E3C 0x24867
+0x4E3D 0x24873
+0x4E3E 0x2486D
+0x4E3F 0x24876
+0x4E40 0x24879
+0x4E41 0x2486A
+0x4E42 0x2488B
+0x4E43 0x24872
+0x4E44 0x24871
+0x4E45 0x2486E
+0x4E46 0x2487A
+0x4E47 0x24A16
+0x4E48 0x24A39
+0x4E49 0x24A3B
+0x4E4A 0x24B10
+0x4E4B 0x24B96
+0x4E4C-0x4E4E 0x24B7B
+0x4E4F 0x24CBE
+0x4E50 0x24E5C
+0x4E51-0x4E52 0x24E38
+0x4E53 0x24E2E
+0x4E54 0x24E34
+0x4E55 0x24E32
+0x4E56 0x24E5B
+0x4E57 0x24E33
+0x4E58 0x24E3C
+0x4E59 0x3FE5
+0x4E5A-0x4E5C 0x2500E
+0x4E5D 0x25087
+0x4E5E 0x2525B
+0x4E5F 0x25253
+0x4E60 0x405F
+0x4E61 0x2525C
+0x4E62 0x2523F
+0x4E63 0x25259
+0x4E64 0x2524A
+0x4E65 0x25244
+0x4E66 0x2524C
+0x4E67 0x25240
+0x4E68 0x2525F
+0x4E69 0x2525E
+0x4E6A 0x2524E
+0x4E6B 0x25254
+0x4E6C 0x25243
+0x4E6D 0x25287
+0x4E6E 0x25382
+0x4E6F 0x25385
+0x4E70 0x25531
+0x4E71 0x25547
+0x4E72-0x4E73 0x2552E
+0x4E74 0x25548
+0x4E75 0x25534
+0x4E76 0x4118
+0x4E77 0x2059F
+0x4E78 0x25832
+0x4E79 0x25836
+0x4E7A 0x25833
+0x4E7B 0x25831
+0x4E7C-0x4E7D 0x25840
+0x4E7E 0x259DD
+0x4F21 0x259D2
+0x4F22 0x259D9
+0x4F23 0x41AD
+0x4F24 0x259DF
+0x4F25 0x259DB
+0x4F26 0x259D8
+0x4F27 0x259D3
+0x4F28 0x259DE
+0x4F29 0x259E0
+0x4F2A 0x259D4
+0x4F2B 0x259D7
+0x4F2C 0x259DA
+0x4F2D 0x25AA7
+0x4F2E 0x25BFE
+0x4F2F 0x25BDD
+0x4F30 0x25C40
+0x4F31 0x25BE2
+0x4F32 0x421E
+0x4F33 0x25BD6
+0x4F34 0x25BDE
+0x4F35 0x25BEF
+0x4F36 0x4227
+0x4F37 0x25BEB
+0x4F38 0x25BEA
+0x4F39 0x25BE4
+0x4F3A 0x25BD1
+0x4F3B 0x4218
+0x4F3C 0x25BEC
+0x4F3D 0x25BFA
+0x4F3E 0x25BD9
+0x4F3F 0x25BF3
+0x4F40 0x25BE1
+0x4F41 0x25BDC
+0x4F42 0x25BE5
+0x4F43 0x25BDF
+0x4F44 0x25BD4
+0x4F45 0x4220
+0x4F46 0x25C05
+0x4F47 0x25ED6
+0x4F48 0x25ED5
+0x4F49 0x25ED0
+0x4F4A 0x25EC8
+0x4F4B 0x25EC4
+0x4F4C 0x25EC9
+0x4F4D 0x25ECD
+0x4F4E 0x25ED2
+0x4F4F 0x25ECC
+0x4F50 0x25ECA
+0x4F51 0x260A0
+0x4F52 0x26092
+0x4F53 0x42F4
+0x4F54 0x4302
+0x4F55 0x2608B
+0x4F56 0x260A1
+0x4F57 0x26095
+0x4F58 0x26088
+0x4F59 0x26086
+0x4F5A 0x2608D
+0x4F5B 0x26085
+0x4F5C 0x26091
+0x4F5D 0x26089
+0x4F5E 0x260A2
+0x4F5F 0x262F0
+0x4F60-0x4F61 0x262F3
+0x4F62 0x262EF
+0x4F63 0x26306
+0x4F64 0x263A2
+0x4F65 0x2645E
+0x4F66 0x26463
+0x4F67 0x26460
+0x4F68 0x2645B
+0x4F69 0x2647B
+0x4F6A-0x4F6B 0x26458
+0x4F6C 0x2645D
+0x4F6D-0x4F6E 0x26505
+0x4F6F-0x4F71 0x26502
+0x4F72 0x265A2
+0x4F73 0x265A7
+0x4F74 0x265A6
+0x4F75 0x265A4
+0x4F76 0x265AC
+0x4F77 0x265A9
+0x4F78 0x267E7
+0x4F79 0x26801
+0x4F7A 0x267DF
+0x4F7B 0x267D9
+0x4F7C 0x267E3
+0x4F7D 0x2680F
+0x4F7E 0x2691A
+0x5021 0x26945
+0x5022 0x26948
+0x5023 0x2697B
+0x5024-0x5025 0x26985
+0x5026-0x5027 0x269FE
+0x5028 0x26A64
+0x5029-0x502A 0x26A71
+0x502B-0x502C 0x26A61
+0x502D 0x26A6C
+0x502E 0x26A60
+0x502F 0x26A5D
+0x5030 0x26A63
+0x5031 0x26A67
+0x5032 0x26E01
+0x5033 0x26E2A
+0x5034 0x26E30
+0x5035 0x26E06
+0x5036 0x26E7D
+0x5037 0x26E22
+0x5038 0x26EB9
+0x5039 0x26E0A
+0x503A 0x26E10
+0x503B 0x26D8F
+0x503C 0x26E80
+0x503D 0x26E13
+0x503E 0x26E2E
+0x503F 0x26E18
+0x5040 0x26E17
+0x5041 0x26E1A
+0x5042 0x26E14
+0x5043 0x26E47
+0x5044 0x26E63
+0x5045 0x26E38
+0x5046 0x4524
+0x5047 0x26E7F
+0x5048 0x26E21
+0x5049 0x26E37
+0x504A 0x26E31
+0x504B 0x26E1B
+0x504C 0x26EA5
+0x504D 0x26F6C
+0x504E 0x271D3
+0x504F 0x27388
+0x5050 0x2736E
+0x5051 0x2735C
+0x5052 0x27374
+0x5053 0x27354
+0x5054 0x27383
+0x5055 0x8770
+0x5056 0x27365
+0x5057 0x27360
+0x5058 0x27370
+0x5059 0x2736F
+0x505A 0x2736D
+0x505B 0x27372
+0x505C 0x2736C
+0x505D 0x27376
+0x505E 0x27375
+0x505F 0x27359
+0x5060 0x273C7
+0x5061 0x275C1
+0x5062 0x275F9
+0x5063 0x276E3
+0x5064 0x276E7
+0x5065 0x276D6
+0x5066 0x276CF
+0x5067 0x276DA
+0x5068 0x276E9
+0x5069 0x276D2
+0x506A 0x27855
+0x506B 0x2784F
+0x506C 0x2784D
+0x506D 0x27851
+0x506E 0x27856
+0x506F 0x278F9
+0x5070 0x278F8
+0x5071 0x27906
+0x5072 0x27903
+0x5073 0x27909
+0x5074 0x278F7
+0x5075 0x278F5
+0x5076 0x27A47
+0x5077 0x27A45
+0x5078 0x27A3E
+0x5079 0x27A46
+0x507A 0x27A29
+0x507B 0x27A34
+0x507C 0x27A3F
+0x507D 0x27A44
+0x507E 0x27A35
+0x5121 0x27A5A
+0x5122 0x27A2A
+0x5123 0x27A33
+0x5124 0x27A37
+0x5125 0x27A43
+0x5126 0x27A39
+0x5127 0x27A30
+0x5128 0x27A5D
+0x5129 0x27A32
+0x512A 0x27A27
+0x512B 0x27BBD
+0x512C 0x27BBA
+0x512D 0x27BBC
+0x512E 0x27BF1
+0x512F 0x27BF0
+0x5130 0x27C61
+0x5131 0x27C5C
+0x5132 0x27C58
+0x5133 0x27C5D
+0x5134 0x27CDA
+0x5135 0x27CD9
+0x5136 0x27CDD
+0x5137 0x27CDC
+0x5138 0x27CDE
+0x5139 0x477D
+0x513A 0x27DA0
+0x513B 0x27DA2
+0x513C 0x27F0F
+0x513D 0x27F13
+0x513E 0x27F12
+0x513F 0x27F11
+0x5140 0x27F14
+0x5141 0x27F19
+0x5142 0x27F0E
+0x5143 0x27F17
+0x5144 0x27F21
+0x5145 0x27F20
+0x5146 0x27F16
+0x5147 0x28078
+0x5148 0x8E37
+0x5149 0x28087
+0x514A 0x28079
+0x514B 0x28080
+0x514C 0x28077
+0x514D 0x28081
+0x514E 0x28046
+0x514F 0x2807A
+0x5150 0x2809C
+0x5151-0x5152 0x28083
+0x5153 0x280AD
+0x5154-0x5155 0x2809D
+0x5156 0x28255
+0x5157 0x28336
+0x5158 0x2832B
+0x5159 0x28327
+0x515A 0x28346
+0x515B 0x2832C
+0x515C 0x28345
+0x515D 0x28333
+0x515E 0x2832D
+0x515F 0x28334
+0x5160 0x28322
+0x5161 0x4864
+0x5162 0x2841F
+0x5163 0x285B3
+0x5164 0x2858C
+0x5165 0x2858F
+0x5166 0x285AF
+0x5167 0x285AD
+0x5168 0x2858E
+0x5169 0x285AC
+0x516A-0x516B 0x285B0
+0x516C 0x285AE
+0x516D 0x28599
+0x516E 0x286EB
+0x516F-0x5170 0x28774
+0x5171 0x2878E
+0x5172 0x2876D
+0x5173 0x28770
+0x5174 0x2878C
+0x5175 0x2884F
+0x5176 0x28851
+0x5177 0x28858
+0x5178 0x2884C
+0x5179 0x2884E
+0x517A 0x28915
+0x517B 0x289BE
+0x517C 0x289DB
+0x517D 0x289B3
+0x517E 0x289AE
+0x5221 0x28C87
+0x5222 0x28C8A
+0x5223 0x28C88
+0x5224-0x5225 0x28C8B
+0x5226 0x28D44
+0x5227 0x28D2D
+0x5228 0x28D2A
+0x5229 0x28D31
+0x522A 0x28D2C
+0x522B 0x28D45
+0x522C 0x28D30
+0x522D 0x28D29
+0x522E 0x28D46
+0x522F 0x28EF4
+0x5230 0x28F14
+0x5231 0x28F10
+0x5232 0x28F0F
+0x5233 0x28F12
+0x5234-0x5235 0x28F0B
+0x5236 0x28F0A
+0x5237 0x28F13
+0x5238 0x28F0E
+0x5239 0x28FD9
+0x523A 0x28FD0
+0x523B 0x9703
+0x523C 0x290C1
+0x523D 0x290BF
+0x523E 0x290BD
+0x523F 0x290BC
+0x5240-0x5241 0x290BA
+0x5242 0x290D1
+0x5243 0x290BE
+0x5244 0x290D0
+0x5245 0x290B9
+0x5246 0x2921A
+0x5247 0x2921C
+0x5248 0x2921B
+0x5249 0x29291
+0x524A 0x29296
+0x524B 0x2929F
+0x524C 0x2929C
+0x524D 0x2929A
+0x524E 0x2929D
+0x524F 0x293AD
+0x5250 0x293A5
+0x5251 0x293AE
+0x5252 0x29403
+0x5253 0x29426
+0x5254 0x29420
+0x5255-0x5256 0x29423
+0x5257 0x29421
+0x5258 0x29428
+0x5259 0x29425
+0x525A 0x2941E
+0x525B 0x29494
+0x525C 0x29493
+0x525D 0x2948F
+0x525E 0x2949A
+0x525F 0x294AD
+0x5260 0x4AC2
+0x5261 0x295CA
+0x5262 0x295C5
+0x5263 0x296BB
+0x5264 0x296E1
+0x5265 0x296EA
+0x5266 0x296E4
+0x5267 0x296ED
+0x5268 0x296E6
+0x5269 0x296E0
+0x526A 0x296E8
+0x526B 0x296E5
+0x526C 0x2981A
+0x526D 0x29894
+0x526E 0x29896
+0x526F 0x2989E
+0x5270 0x29895
+0x5271 0x298A1
+0x5272 0x2988E
+0x5273 0x2989B
+0x5274 0x29892
+0x5275 0x29897
+0x5276 0x29899
+0x5277 0x29893
+0x5278 0x29A32
+0x5279 0x29A2F
+0x527A 0x29A2E
+0x527B 0x29A33
+0x527C 0x29B1C
+0x527D 0x29B1E
+0x527E 0x29B11
+0x5321 0x29B20
+0x5322 0x29B1F
+0x5323 0x29B19
+0x5324 0x29B16
+0x5325 0x29CAC
+0x5326 0x29CB9
+0x5327 0x29CB3
+0x5328 0x29CA6
+0x5329 0x29CA2
+0x532A 0x29CA9
+0x532B 0x29CA7
+0x532C-0x532D 0x29D6C
+0x532E 0x29D69
+0x532F 0x29D80
+0x5330 0x29D66
+0x5331 0x29D65
+0x5332 0x29D71
+0x5333 0x29D6B
+0x5334 0x29FBD
+0x5335 0x29FC1
+0x5336 0x29FD3
+0x5337 0x29FB6
+0x5338 0x4CAC
+0x5339 0x29FB9
+0x533A 0x29FD4
+0x533B 0x29FB7
+0x533C 0x29FDB
+0x533D 0x29FB8
+0x533E 0x29FC0
+0x533F 0x29FBC
+0x5340 0x29FD5
+0x5341 0x29FBF
+0x5342 0x29FC3
+0x5343 0x29FC9
+0x5344 0x2A258
+0x5345 0x2A290
+0x5346 0x2A295
+0x5347 0x2A297
+0x5348 0x2A309
+0x5349 0x2A308
+0x534A 0x2A306
+0x534B 0x2A305
+0x534C 0x2A310
+0x534D 0x2A397
+0x534E 0x2A395
+0x534F 0x2A3EE
+0x5350 0x2A41F
+0x5351 0x2FA1A
+0x5352 0x21B4B
+0x5353 0x2018E
+0x5354 0x203E8
+0x5355 0x203F0
+0x5356 0x203F4
+0x5357 0x20406
+0x5358 0x203ED
+0x5359 0x349B
+0x535A 0x203E9
+0x535B 0x20400
+0x535C 0x204B8
+0x535D 0x2056D
+0x535E 0x20804
+0x535F 0x20801
+0x5360 0x20803
+0x5361 0x20802
+0x5362 0x52F6
+0x5363 0x3526
+0x5364 0x20962
+0x5365 0x20ABA
+0x5366 0x20B13
+0x5367 0x20FDE
+0x5368 0x20FD7
+0x5369 0x20FE4
+0x536A 0x20FCE
+0x536B 0x20FE3
+0x536C 0x20FDD
+0x536D 0x2103A
+0x536E 0x20FDB
+0x536F 0x20FD6
+0x5370 0x20FE0
+0x5371 0x20FD4
+0x5372 0x20FCB
+0x5373 0x20FE1
+0x5374 0x20FC9
+0x5375 0x20FDF
+0x5376 0x2103C
+0x5377 0x20FFC
+0x5378 0x20FCF
+0x5379 0x21479
+0x537A 0x21476
+0x537B 0x21478
+0x537C 0x21687
+0x537D 0x2189C
+0x537E 0x218B1
+0x5421 0x218C1
+0x5422 0x2189A
+0x5423 0x21892
+0x5424 0x41AF
+0x5425 0x218C2
+0x5426 0x21896
+0x5427 0x218C0
+0x5428 0x21891
+0x5429 0x21895
+0x542A 0x219A2
+0x542B 0x21AC3
+0x542C 0x21AC0
+0x542D 0x21AC2
+0x542E 0x20B8A
+0x542F 0x21BB0
+0x5430 0x21C16
+0x5431 0x21F46
+0x5432 0x21F4A
+0x5433 0x21F3E
+0x5434 0x21F45
+0x5435 0x21F42
+0x5436 0x3815
+0x5437 0x21F5B
+0x5438 0x21F44
+0x5439 0x22004
+0x543A 0x24022
+0x543B 0x22155
+0x543C 0x22157
+0x543D 0x22151
+0x543E 0x2214E
+0x543F 0x2215A
+0x5440 0x222C6
+0x5441 0x222C3
+0x5442 0x389C
+0x5443 0x222C5
+0x5444 0x222CC
+0x5445 0x22371
+0x5446 0x22426
+0x5447 0x224B2
+0x5448 0x2257A
+0x5449 0x22584
+0x544A 0x2257B
+0x544B 0x22874
+0x544C 0x2288C
+0x544D 0x22851
+0x544E 0x22848
+0x544F 0x2288D
+0x5450 0x22892
+0x5451 0x22898
+0x5452 0x22893
+0x5453 0x228B0
+0x5454 0x2284E
+0x5455-0x5456 0x22896
+0x5457 0x2289C
+0x5458 0x228CA
+0x5459 0x22D33
+0x545A-0x545B 0x22D83
+0x545C 0x22D9A
+0x545D 0x22D8C
+0x545E 0x64CC
+0x545F 0x22D99
+0x5460 0x22EE0
+0x5461 0x22FE4
+0x5462 0x22FF8
+0x5463 0x22FED
+0x5464-0x5466 0x22FF3
+0x5467 0x22FFD
+0x5468 0x23119
+0x5469 0x2329E
+0x546A 0x232C4
+0x546B 0x2329F
+0x546C 0x2339B
+0x546D 0x2339F
+0x546E 0x2339A
+0x546F 0x236AA
+0x5470 0x2369D
+0x5471 0x23692
+0x5472 0x236A2
+0x5473 0x236AF
+0x5474 0x236EB
+0x5475-0x5476 0x236A0
+0x5477 0x23694
+0x5478 0x23698
+0x5479 0x2368F
+0x547A 0x23687
+0x547B 0x23684
+0x547C 0x236A9
+0x547D 0x2367C
+0x547E 0x23918
+0x5521 0x23A5F
+0x5522 0x23A62
+0x5523 0x23A61
+0x5524 0x23AC0
+0x5525 0x23B15
+0x5526 0x23BFC
+0x5527 0x23BF9
+0x5528-0x5529 0x23FC8
+0x552A 0x23FDE
+0x552B 0x23FCA
+0x552C 0x23FE2
+0x552D 0x3D64
+0x552E 0x3D6E
+0x552F 0x24004
+0x5530 0x23FCC
+0x5531 0x23FDD
+0x5532 0x23FE4
+0x5533 0x23FD3
+0x5534 0x23FC7
+0x5535 0x23FC6
+0x5536 0x3D5F
+0x5537 0x24037
+0x5538 0x243D8
+0x5539 0x243EE
+0x553A 0x243B2
+0x553B 0x243A3
+0x553C 0x243B3
+0x553D 0x243ED
+0x553E 0x243F8
+0x553F 0x24531
+0x5540 0x2455B
+0x5541 0x24566
+0x5542 0x24569
+0x5543 0x24596
+0x5544 0x2459B
+0x5545 0x245F7
+0x5546-0x5548 0x245F3
+0x5549 0x246E2
+0x554A 0x246E7
+0x554B 0x246E5
+0x554C 0x246E9
+0x554D 0x246E6
+0x554E 0x246E3
+0x554F 0x24874
+0x5550 0x2487F
+0x5551-0x5552 0x2488F
+0x5553 0x24897
+0x5554 0x248A3
+0x5555 0x2488E
+0x5556 0x24898
+0x5557 0x2488C
+0x5558 0x24A42
+0x5559 0x24A44
+0x555A 0x24A69
+0x555B 0x24A43
+0x555C 0x24A68
+0x555D 0x3EF6
+0x555E 0x24B8D
+0x555F 0x24B88
+0x5560 0x24B8B
+0x5561 0x24B89
+0x5562 0x24CCC
+0x5563 0x24D1F
+0x5564 0x24E80
+0x5565 0x24E5E
+0x5566-0x5567 0x24E67
+0x5568 0x24E65
+0x5569 0x764A
+0x556A 0x24E74
+0x556B 0x24E69
+0x556C-0x556D 0x24E61
+0x556E 0x24E6C
+0x556F 0x24E93
+0x5570 0x24E86
+0x5571 0x24F9D
+0x5572 0x24F9B
+0x5573 0x2501B
+0x5574 0x25016
+0x5575 0x25019
+0x5576 0x25014
+0x5577 0x25018
+0x5578 0x25015
+0x5579 0x25099
+0x557A 0x25098
+0x557B 0x2525D
+0x557C 0x25289
+0x557D 0x2527A
+0x557E 0x2527D
+0x5621 0x2524B
+0x5622 0x4073
+0x5623 0x25278
+0x5624 0x2527F
+0x5625 0x25277
+0x5626 0x2527E
+0x5627 0x25279
+0x5628 0x252AB
+0x5629 0x2527C
+0x562A-0x562B 0x25274
+0x562C 0x252A7
+0x562D 0x2538D
+0x562E 0x2554E
+0x562F 0x25566
+0x5630 0x25561
+0x5631 0x2554D
+0x5632 0x2554F
+0x5633 0x40DD
+0x5634 0x25554
+0x5635 0x2557C
+0x5636 0x256DA
+0x5637 0x256DE
+0x5638 0x256D8
+0x5639 0x256DD
+0x563A 0x256DF
+0x563B 0x25866
+0x563C 0x25862
+0x563D 0x2585F
+0x563E 0x25864
+0x563F 0x25863
+0x5640 0x25860
+0x5641 0x25888
+0x5642 0x2586A
+0x5643 0x25867
+0x5644 0x25887
+0x5645 0x2583F
+0x5646 0x2586C
+0x5647 0x2586E
+0x5648 0x258AD
+0x5649 0x259F1
+0x564A 0x259F4
+0x564B 0x259F6
+0x564C 0x259F5
+0x564D 0x259F8
+0x564E 0x259FB
+0x564F 0x259EC
+0x5650 0x259EF
+0x5651 0x259ED
+0x5652 0x7AB9
+0x5653 0x259F7
+0x5654 0x259F9
+0x5655 0x259FD
+0x5656 0x25AB1
+0x5657 0x25C36
+0x5658 0x25C1B
+0x5659 0x25C32
+0x565A 0x25C42
+0x565B 0x25C4D
+0x565C 0x25C1F
+0x565D 0x25C21
+0x565E 0x25C1C
+0x565F 0x25C31
+0x5660 0x25C2E
+0x5661 0x25C47
+0x5662 0x25C3B
+0x5663 0x25C41
+0x5664 0x25C18
+0x5665 0x25C39
+0x5666 0x25C1D
+0x5667 0x25C27
+0x5668 0x25C23
+0x5669 0x7BD7
+0x566A 0x25EEE
+0x566B 0x25EE8
+0x566C 0x25EE5
+0x566D 0x25EEF
+0x566E 0x25EE4
+0x566F 0x25EEC
+0x5670 0x25EF0
+0x5671-0x5672 0x260D7
+0x5673 0x260D4
+0x5674 0x260CA
+0x5675 0x260D2
+0x5676 0x260CB
+0x5677 0x260D3
+0x5678 0x260E6
+0x5679 0x260E2
+0x567A 0x26249
+0x567B 0x26248
+0x567C 0x262FF
+0x567D 0x26309
+0x567E 0x263B0
+0x5721 0x263AF
+0x5722 0x2647C
+0x5723 0x26478
+0x5724 0x2647A
+0x5725 0x26472
+0x5726 0x26479
+0x5727 0x2647E
+0x5728 0x2650C
+0x5729 0x2650B
+0x572A 0x265CD
+0x572B 0x265BE
+0x572C 0x265BC
+0x572D-0x572E 0x265BF
+0x572F 0x265BD
+0x5730 0x26838
+0x5731 0x26808
+0x5732 0x26805
+0x5733 0x2683B
+0x5734 0x26810
+0x5735-0x5736 0x2680C
+0x5737 0x26804
+0x5738 0x2683A
+0x5739 0x26813
+0x573A 0x26837
+0x573B 0x26839
+0x573C 0x2691F
+0x573D 0x2694B
+0x573E 0x269EE
+0x573F 0x26A75
+0x5740 0x26A78
+0x5741 0x26A7C
+0x5742 0x26A74
+0x5743 0x26A76
+0x5744-0x5745 0x26AEA
+0x5746 0x26DFB
+0x5747 0x26E19
+0x5748 0x26EA7
+0x5749 0x26E8C
+0x574A 0x26EDC
+0x574B 0x26E98
+0x574C 0x26EBE
+0x574D 0x26E9E
+0x574E 0x26F0F
+0x574F 0x26E9F
+0x5750 0x26EDD
+0x5751 0x26E93
+0x5752 0x26EBB
+0x5753 0x26EB6
+0x5754 0x26E90
+0x5755 0x26EA1
+0x5756 0x26EBD
+0x5757 0x26EDE
+0x5758 0x26E3A
+0x5759 0x26F22
+0x575A 0x26E97
+0x575B 0x26E94
+0x575C 0x26EC3
+0x575D 0x26E8E
+0x575E 0x26EA8
+0x575F 0x26E99
+0x5760 0x26EAD
+0x5761 0x26E9B
+0x5762 0x26EA2
+0x5763 0x26F21
+0x5764 0x26EAC
+0x5765 0x26F0E
+0x5766 0x26F31
+0x5767 0x271E1
+0x5768-0x5769 0x271DE
+0x576A-0x576B 0x271DC
+0x576C 0x271EC
+0x576D 0x271E7
+0x576E 0x27369
+0x576F 0x273B8
+0x5770 0x273A1
+0x5771 0x273A8
+0x5772 0x273BA
+0x5773 0x273C2
+0x5774 0x273A6
+0x5775 0x273A4
+0x5776 0x273A3
+0x5777 0x273AB
+0x5778 0x273BC
+0x5779 0x273B7
+0x577A 0x273BF
+0x577B 0x273AD
+0x577C 0x273B1
+0x577D 0x273CA
+0x577E 0x273C4
+0x5821 0x273B9
+0x5822 0x275C8
+0x5823-0x5824 0x275C6
+0x5825 0x2770A
+0x5826 0x2770D
+0x5827 0x276FB
+0x5828 0x27703
+0x5829 0x27702
+0x582A 0x276FC
+0x582B 0x276F9
+0x582C 0x276F8
+0x582D 0x2786E
+0x582E 0x27863
+0x582F 0x27862
+0x5830 0x27861
+0x5831 0x2786B
+0x5832 0x4688
+0x5833 0x2786F
+0x5834 0x27866
+0x5835 0x2786C
+0x5836 0x2790E
+0x5837-0x5838 0x27915
+0x5839 0x27910
+0x583A 0x27917
+0x583B 0x27911
+0x583C 0x27A6E
+0x583D 0x27A6C
+0x583E 0x27A87
+0x583F 0x27A83
+0x5840 0x27A63
+0x5841 0x27ADC
+0x5842 0x27BC0
+0x5843 0x27BF7
+0x5844 0x27BFA
+0x5845 0x27C70
+0x5846 0x27C6A
+0x5847-0x5848 0x27C68
+0x5849 0x27C84
+0x584A 0x27CEC
+0x584B 0x27CE7
+0x584C 0x27CEE
+0x584D 0x27DBA
+0x584E 0x27DB2
+0x584F 0x27DB5
+0x5850 0x27DCB
+0x5851 0x2080B
+0x5852 0x27DD0
+0x5853 0x27E6D
+0x5854 0x27E6C
+0x5855 0x47BB
+0x5856-0x5857 0x27F45
+0x5858 0x27F34
+0x5859 0x27F2C
+0x585A 0x27F35
+0x585B 0x27F44
+0x585C 0x47BA
+0x585D 0x27F76
+0x585E 0x280B1
+0x585F 0x280AA
+0x5860 0x280A1
+0x5861 0x280B2
+0x5862 0x4812
+0x5863 0x280A6
+0x5864 0x280B5
+0x5865 0x280B4
+0x5866 0x280B8
+0x5867-0x5868 0x280AF
+0x5869 0x280A3
+0x586A 0x28262
+0x586B 0x28264
+0x586C 0x28356
+0x586D 0x28351
+0x586E 0x2834F
+0x586F 0x28368
+0x5870 0x2834C
+0x5871 0x28350
+0x5872 0x4861
+0x5873 0x28348
+0x5874 0x2834A
+0x5875 0x28421
+0x5876 0x285E3
+0x5877 0x285B9
+0x5878 0x285DE
+0x5879 0x285B7
+0x587A 0x285E1
+0x587B 0x285B6
+0x587C 0x285B5
+0x587D 0x285DF
+0x587E 0x48E1
+0x5921 0x28797
+0x5922-0x5923 0x2879A
+0x5924 0x28798
+0x5925-0x5926 0x28792
+0x5927 0x287D7
+0x5928 0x28773
+0x5929 0x2886B
+0x592A 0x28874
+0x592B 0x28878
+0x592C 0x2886D
+0x592D 0x28918
+0x592E 0x289E9
+0x592F 0x289F5
+0x5930 0x289EA
+0x5931 0x28A2E
+0x5932 0x289E7
+0x5933 0x289FE
+0x5934 0x289E5
+0x5935 0x28A36
+0x5936 0x289F0
+0x5937 0x289E6
+0x5938 0x28A2C
+0x5939 0x28C89
+0x593A 0x28C95
+0x593B 0x28C93
+0x593C 0x28D4D
+0x593D 0x28D4A
+0x593E-0x593F 0x28D4F
+0x5940 0x28D4B
+0x5941-0x5942 0x28F2A
+0x5943 0x28F2F
+0x5944 0x28F2E
+0x5945 0x28F7C
+0x5946 0x28FED
+0x5947 0x28FE2
+0x5948 0x290E0
+0x5949 0x290DC
+0x594A 0x290DA
+0x594B 0x290D6
+0x594C 0x290F4
+0x594D 0x290D9
+0x594E 0x290D5
+0x594F 0x29222
+0x5950 0x29221
+0x5951-0x5953 0x29224
+0x5954 0x29223
+0x5955 0x292AA
+0x5956-0x5957 0x292AF
+0x5958 0x292AB
+0x5959 0x293AF
+0x595A 0x293B7
+0x595B 0x293B5
+0x595C-0x595D 0x293B2
+0x595E 0x2942B
+0x595F 0x294D8
+0x5960 0x294C2
+0x5961 0x294AF
+0x5962 0x294BC
+0x5963 0x294B8
+0x5964 0x294BE
+0x5965 0x294B7
+0x5966 0x294B4
+0x5967 0x294BF
+0x5968 0x294B3
+0x5969 0x294B1
+0x596A 0x294BB
+0x596B 0x294BD
+0x596C 0x294D6
+0x596D 0x294DD
+0x596E 0x295D8
+0x596F 0x295D3
+0x5970 0x295D5
+0x5971 0x295E3
+0x5972 0x295E2
+0x5973 0x295D9
+0x5974-0x5975 0x295DE
+0x5976 0x295DA
+0x5977 0x295D4
+0x5978 0x296F3
+0x5979 0x296E2
+0x597A 0x2970D
+0x597B 0x29701
+0x597C 0x29705
+0x597D 0x2971A
+0x597E 0x29703
+0x5A21 0x2971F
+0x5A22 0x29716
+0x5A23 0x296FA
+0x5A24 0x296FC
+0x5A25 0x2970A
+0x5A26 0x999F
+0x5A27 0x298BC
+0x5A28 0x298CA
+0x5A29 0x298B6
+0x5A2A 0x298C7
+0x5A2B 0x298BF
+0x5A2C 0x4B89
+0x5A2D 0x298B9
+0x5A2E 0x4B8C
+0x5A2F 0x298B0
+0x5A30 0x298B8
+0x5A31 0x298BD
+0x5A32 0x29891
+0x5A33 0x298BB
+0x5A34 0x298BE
+0x5A35 0x29A3E
+0x5A36 0x29A3D
+0x5A37 0x29B38
+0x5A38 0x29B3D
+0x5A39 0x29B39
+0x5A3A 0x29B33
+0x5A3B 0x29C33
+0x5A3C 0x29CBB
+0x5A3D 0x29CC6
+0x5A3E 0x29CC5
+0x5A3F 0x29CC7
+0x5A40 0x29CCB
+0x5A41 0x29CA8
+0x5A42 0x29CC8
+0x5A43 0x29CBE
+0x5A44 0x29CC1
+0x5A45 0x29CBD
+0x5A46 0x29D82
+0x5A47 0x29D9E
+0x5A48 0x29D81
+0x5A49 0x29D84
+0x5A4A 0x9B8D
+0x5A4B 0x29D96
+0x5A4C 0x29D8E
+0x5A4D 0x29D88
+0x5A4E 0x29D87
+0x5A4F 0x29FE0
+0x5A50 0x2A00D
+0x5A51 0x29FDF
+0x5A52 0x29FE4
+0x5A53 0x29FE2
+0x5A54 0x29FDD
+0x5A55 0x29FEC
+0x5A56 0x29FDE
+0x5A57 0x29FE7
+0x5A58 0x29FEA
+0x5A59 0x29FE3
+0x5A5A 0x2A25C
+0x5A5B 0x9E77
+0x5A5C 0x2A25D
+0x5A5D 0x2A29C
+0x5A5E 0x2A31D
+0x5A5F-0x5A60 0x2A39D
+0x5A61 0x2A39B
+0x5A62 0x2A3B5
+0x5A63 0x2A3B9
+0x5A64 0x2A3B6
+0x5A65 0x2A3F3
+0x5A66 0x2A3F2
+0x5A67 0x2A3F4
+0x5A68-0x5A69 0x2A426
+0x5A6A 0x2A425
+0x5A6B 0x2A506
+0x5A6C 0x2A50B
+0x5A6D 0x2A53A
+0x5A6E 0x2A53C
+0x5A6F-0x5A70 0x2040A
+0x5A71 0x204BF
+0x5A72 0x204FD
+0x5A73 0x20618
+0x5A74 0x291DF
+0x5A75 0x25390
+0x5A76 0x2069E
+0x5A77 0x207FC
+0x5A78 0x20810
+0x5A79 0x2080F
+0x5A7A 0x2080D
+0x5A7B 0x208B9
+0x5A7C 0x208B7
+0x5A7D 0x208BA
+0x5A7E 0x2090A
+0x5B21 0x21041
+0x5B22 0x2108B
+0x5B23 0x21046
+0x5B24 0x21053
+0x5B25 0x210E2
+0x5B26 0x2103F
+0x5B27 0x20F7C
+0x5B28 0x2104B
+0x5B29 0x2104E
+0x5B2A 0x2108A
+0x5B2B 0x21047
+0x5B2C 0x21493
+0x5B2D 0x27DCE
+0x5B2E 0x2148C
+0x5B2F 0x214AF
+0x5B30 0x214C9
+0x5B31 0x215C6
+0x5B32 0x215C8
+0x5B33 0x21691
+0x5B34 0x218CF
+0x5B35 0x218D4
+0x5B36 0x218CE
+0x5B37 0x21ADD
+0x5B38 0x21AD4
+0x5B39 0x21F49
+0x5B3A 0x21F63
+0x5B3B 0x21F5D
+0x5B3C 0x381A
+0x5B3D 0x21F67
+0x5B3E 0x21FBB
+0x5B3F 0x21F60
+0x5B40 0x21F80
+0x5B41-0x5B42 0x2215F
+0x5B43 0x222DA
+0x5B44 0x222D2
+0x5B45 0x222DD
+0x5B46 0x2258E
+0x5B47 0x22588
+0x5B48 0x2256C
+0x5B49 0x2289E
+0x5B4A 0x228C9
+0x5B4B 0x228A4
+0x5B4C 0x3998
+0x5B4D 0x228D9
+0x5B4E 0x228D2
+0x5B4F 0x228DA
+0x5B50 0x228DD
+0x5B51 0x228CE
+0x5B52 0x228FC
+0x5B53 0x22A14
+0x5B54 0x22A60
+0x5B55 0x22DD7
+0x5B56 0x22DCB
+0x5B57 0x22DCD
+0x5B58 0x22DD5
+0x5B59 0x22EE7
+0x5B5A 0x23000
+0x5B5B 0x2300A
+0x5B5C 0x2300F
+0x5B5D 0x23002
+0x5B5E 0x23001
+0x5B5F 0x2311D
+0x5B60-0x5B61 0x232CA
+0x5B62 0x232CD
+0x5B63 0x2334F
+0x5B64 0x2339C
+0x5B65 0x23680
+0x5B66 0x2370D
+0x5B67 0x23702
+0x5B68 0x3BF1
+0x5B69 0x23707
+0x5B6A-0x5B6B 0x236F7
+0x5B6C 0x236FD
+0x5B6D 0x23724
+0x5B6E 0x236FB
+0x5B6F-0x5B70 0x23739
+0x5B71 0x23922
+0x5B72 0x6BA9
+0x5B73 0x23A6A
+0x5B74 0x23A6D
+0x5B75 0x23A74
+0x5B76 0x23C0E
+0x5B77 0x23FDF
+0x5B78 0x2402B
+0x5B79 0x23FE3
+0x5B7A 0x24026
+0x5B7B 0x2402A
+0x5B7C 0x24023
+0x5B7D 0x24035
+0x5B7E 0x2404A
+0x5C21 0x243FD
+0x5C22 0x24400
+0x5C23 0x2441E
+0x5C24 0x243FF
+0x5C25 0x2459E
+0x5C26 0x245FA
+0x5C27 0x246F1
+0x5C28 0x24895
+0x5C29 0x248A8
+0x5C2A 0x248A6
+0x5C2B 0x24A6E
+0x5C2C 0x24A83
+0x5C2D 0x24A6D
+0x5C2E 0x24B8F
+0x5C2F 0x3F6A
+0x5C30 0x24CDF
+0x5C31 0x24CD5
+0x5C32 0x24CE0
+0x5C33 0x24CD3
+0x5C34 0x24CD8
+0x5C35 0x24E8C
+0x5C36 0x764B
+0x5C37 0x24E94
+0x5C38 0x24E96
+0x5C39 0x24E85
+0x5C3A 0x24E8F
+0x5C3B 0x24EA9
+0x5C3C 0x24E8E
+0x5C3D 0x24E90
+0x5C3E 0x24EB8
+0x5C3F 0x24EC3
+0x5C40 0x24EBB
+0x5C41 0x24FA5
+0x5C42 0x24FA2
+0x5C43 0x76A2
+0x5C44 0x24FA3
+0x5C45 0x250B5
+0x5C46 0x250AC
+0x5C47 0x250A8
+0x5C48 0x252AD
+0x5C49 0x252B8
+0x5C4A 0x252B4
+0x5C4B 0x252AE
+0x5C4C 0x252B6
+0x5C4D 0x4485
+0x5C4E 0x252C1
+0x5C4F 0x252BF
+0x5C50 0x25392
+0x5C51-0x5C52 0x25400
+0x5C53 0x25575
+0x5C54 0x25572
+0x5C55 0x25578
+0x5C56 0x25570
+0x5C57 0x2557E
+0x5C58 0x2557D
+0x5C59 0x2557F
+0x5C5A 0x256EF
+0x5C5B 0x2586D
+0x5C5C-0x5C5D 0x2588E
+0x5C5E 0x2588A
+0x5C5F 0x2588D
+0x5C60 0x25895
+0x5C61-0x5C62 0x2588B
+0x5C63 0x258B0
+0x5C64 0x25893
+0x5C65 0x259FC
+0x5C66 0x25A15
+0x5C67 0x25A0E
+0x5C68 0x25A18
+0x5C69 0x25A11
+0x5C6A 0x25A0D
+0x5C6B 0x25ABB
+0x5C6C 0x25AB3
+0x5C6D 0x4239
+0x5C6E 0x25CA1
+0x5C6F 0x25C9A
+0x5C70 0x25C84
+0x5C71 0x25CA0
+0x5C72 0x25C86
+0x5C73 0x25C9D
+0x5C74 0x25CAA
+0x5C75 0x25C78
+0x5C76 0x25C8D
+0x5C77 0x25C8A
+0x5C78 0x25CA6
+0x5C79 0x25C7A
+0x5C7A 0x25C97
+0x5C7B 0x25C88
+0x5C7C 0x25C8E
+0x5C7D 0x423D
+0x5C7E 0x4244
+0x5D21 0x25C76
+0x5D22 0x25C81
+0x5D23 0x25C85
+0x5D24 0x25C75
+0x5D25 0x25CA8
+0x5D26 0x25C8F
+0x5D27 0x25C91
+0x5D28 0x25CA2
+0x5D29 0x25C9C
+0x5D2A 0x25C89
+0x5D2B 0x25C7F
+0x5D2C 0x25C96
+0x5D2D 0x25C79
+0x5D2E 0x25C9F
+0x5D2F 0x25CA7
+0x5D30 0x4246
+0x5D31 0x25C87
+0x5D32 0x25C9B
+0x5D33 0x25CA5
+0x5D34 0x25C8B
+0x5D35 0x25CC9
+0x5D36 0x25EFF
+0x5D37 0x25F03
+0x5D38 0x25F00
+0x5D39 0x25F02
+0x5D3A-0x5D3B 0x25F04
+0x5D3C 0x25EE6
+0x5D3D 0x25F1F
+0x5D3E 0x26114
+0x5D3F 0x430E
+0x5D40 0x2610C
+0x5D41 0x2610F
+0x5D42 0x26119
+0x5D43 0x2610B
+0x5D44 0x26113
+0x5D45 0x260D5
+0x5D46 0x4310
+0x5D47 0x2611C
+0x5D48 0x26250
+0x5D49 0x2624E
+0x5D4A 0x26312
+0x5D4B 0x263B9
+0x5D4C 0x26485
+0x5D4D 0x26488
+0x5D4E 0x26490
+0x5D4F 0x26513
+0x5D50-0x5D52 0x265D0
+0x5D53 0x265D7
+0x5D54 0x265D6
+0x5D55 0x265E5
+0x5D56 0x26846
+0x5D57 0x2686B
+0x5D58 0x26845
+0x5D59 0x2683F
+0x5D5A 0x2683E
+0x5D5B 0x443E
+0x5D5C 0x2686A
+0x5D5D 0x26868
+0x5D5E 0x2684C
+0x5D5F 0x26923
+0x5D60 0x26922
+0x5D61 0x26997
+0x5D62 0x26991
+0x5D63 0x25AB5
+0x5D64 0x26998
+0x5D65 0x2699C
+0x5D66 0x26A89
+0x5D67 0x4484
+0x5D68 0x26A8B
+0x5D69 0x26A8A
+0x5D6A-0x5D6B 0x26A8D
+0x5D6C 0x26A88
+0x5D6D 0x26F4E
+0x5D6E 0x26F44
+0x5D6F 0x26F37
+0x5D70 0x26F75
+0x5D71 0x26F54
+0x5D72 0x26F76
+0x5D73 0x26F34
+0x5D74 0x26F6B
+0x5D75 0x26F32
+0x5D76 0x26F57
+0x5D77 0x26F52
+0x5D78 0x26F45
+0x5D79 0x4549
+0x5D7A 0x26EB1
+0x5D7B 0x26F4B
+0x5D7C 0x26F47
+0x5D7D 0x26F33
+0x5D7E 0x26F40
+0x5E21 0x26F3C
+0x5E22 0x26F43
+0x5E23 0x26F4F
+0x5E24 0x26F55
+0x5E25 0x26F41
+0x5E26 0x26FB2
+0x5E27 0x26FC0
+0x5E28 0x27434
+0x5E29 0x273F9
+0x5E2A 0x27419
+0x5E2B 0x2740D
+0x5E2C 0x273FA
+0x5E2D-0x5E2E 0x2741E
+0x5E2F 0x2740E
+0x5E30 0x27440
+0x5E31 0x27408
+0x5E32 0x45DF
+0x5E33 0x27413
+0x5E34 0x2744C
+0x5E35 0x45F0
+0x5E36 0x275CC
+0x5E37 0x275CB
+0x5E38-0x5E39 0x27724
+0x5E3A 0x2773D
+0x5E3B 0x27720
+0x5E3C 0x27727
+0x5E3D 0x27726
+0x5E3E-0x5E3F 0x2771D
+0x5E40 0x27732
+0x5E41 0x2776C
+0x5E42 0x27759
+0x5E43 0x468A
+0x5E44 0x2787A
+0x5E45 0x27879
+0x5E46 0x2791B
+0x5E47 0x2792E
+0x5E48 0x27923
+0x5E49 0x27920
+0x5E4A 0x2791F
+0x5E4B 0x27AB6
+0x5E4C 0x27AB9
+0x5E4D 0x27AA1
+0x5E4E 0x27AA3
+0x5E4F 0x27AA8
+0x5E50 0x27AAF
+0x5E51 0x27A9A
+0x5E52 0x27A99
+0x5E53 0x27AA2
+0x5E54 0x27A9D
+0x5E55 0x4702
+0x5E56 0x27AAB
+0x5E57 0x27BC9
+0x5E58 0x27BFE
+0x5E59 0x27C00
+0x5E5A 0x27BFC
+0x5E5B 0x27C07
+0x5E5C 0x27C75
+0x5E5D-0x5E5F 0x27C72
+0x5E60 0x27CFA
+0x5E61 0x27CFC
+0x5E62 0x27CF8
+0x5E63 0x27CF6
+0x5E64 0x27CFB
+0x5E65 0x27DCD
+0x5E66 0x27DD1
+0x5E67 0x27DCF
+0x5E68 0x27E74
+0x5E69-0x5E6A 0x27E72
+0x5E6B 0x27F54
+0x5E6C 0x27F51
+0x5E6D 0x47C0
+0x5E6E 0x27F53
+0x5E6F 0x27F49
+0x5E70 0x27F4C
+0x5E71 0x27F4A
+0x5E72 0x27F4F
+0x5E73 0x27F56
+0x5E74 0x28100
+0x5E75 0x280D5
+0x5E76 0x280D7
+0x5E77 0x280FF
+0x5E78 0x280D9
+0x5E79 0x280E3
+0x5E7A 0x280D3
+0x5E7B 0x4815
+0x5E7C 0x280D8
+0x5E7D 0x280D4
+0x5E7E 0x280DE
+0x5F21 0x28271
+0x5F22 0x28374
+0x5F23 0x28388
+0x5F24 0x2837F
+0x5F25 0x2836B
+0x5F26 0x28387
+0x5F27 0x28379
+0x5F28 0x28378
+0x5F29 0x28389
+0x5F2A 0x28380
+0x5F2B 0x28376
+0x5F2C 0x28429
+0x5F2D 0x28428
+0x5F2E 0x2842F
+0x5F2F 0x285E5
+0x5F30 0x28604
+0x5F31 0x28603
+0x5F32 0x285F0
+0x5F33 0x285E8
+0x5F34 0x285EA
+0x5F35 0x285F1
+0x5F36-0x5F37 0x28601
+0x5F38 0x287A9
+0x5F39 0x287AB
+0x5F3A 0x287B7
+0x5F3B 0x287B6
+0x5F3C 0x48E2
+0x5F3D 0x288A0
+0x5F3E 0x2888E
+0x5F3F-0x5F40 0x28886
+0x5F41 0x28885
+0x5F42 0x2888B
+0x5F43 0x28888
+0x5F44 0x28890
+0x5F45 0x2891A
+0x5F46 0x28934
+0x5F47 0x28A37
+0x5F48-0x5F49 0x28A2F
+0x5F4A 0x28A39
+0x5F4B 0x28A34
+0x5F4C 0x28A33
+0x5F4D 0x28A85
+0x5F4E 0x28A84
+0x5F4F 0x28A3A
+0x5F50 0x28C9F
+0x5F51 0x28D69
+0x5F52 0x28D6C
+0x5F53 0x28D6A
+0x5F54 0x28D67
+0x5F55 0x28D6B
+0x5F56-0x5F57 0x28F3F
+0x5F58 0x2900B
+0x5F59 0x290D2
+0x5F5A 0x290F8
+0x5F5B 0x29101
+0x5F5C 0x290FA
+0x5F5D 0x29116
+0x5F5E 0x2F9F6
+0x5F5F-0x5F60 0x2922C
+0x5F61 0x2922F
+0x5F62 0x2922E
+0x5F63 0x292C1
+0x5F64 0x292F5
+0x5F65 0x292C4
+0x5F66 0x292DE
+0x5F67 0x292CC
+0x5F68 0x292D2
+0x5F69 0x292C2
+0x5F6A 0x292CD
+0x5F6B 0x292CF
+0x5F6C 0x292DD
+0x5F6D 0x292C8
+0x5F6E 0x293BA
+0x5F6F-0x5F70 0x293BE
+0x5F71 0x2942E
+0x5F72 0x29430
+0x5F73 0x294E7
+0x5F74 0x294EE
+0x5F75 0x294E8
+0x5F76 0x294E6
+0x5F77 0x294E2
+0x5F78 0x294E4
+0x5F79-0x5F7A 0x294FB
+0x5F7B 0x294EA
+0x5F7C 0x295ED
+0x5F7D 0x295F6
+0x5F7E 0x295F3
+0x6021 0x295F4
+0x6022 0x295F1
+0x6023 0x295F7
+0x6024 0x295F5
+0x6025-0x6026 0x295EA
+0x6027 0x29700
+0x6028 0x2972C
+0x6029 0x29712
+0x602A 0x2973D
+0x602B 0x29733
+0x602C 0x4B4D
+0x602D 0x29730
+0x602E 0x29740
+0x602F 0x29731
+0x6030 0x29757
+0x6031 0x4B4A
+0x6032 0x29735
+0x6033 0x29732
+0x6034 0x2972D
+0x6035 0x29736
+0x6036 0x29738
+0x6037 0x29762
+0x6038 0x2975F
+0x6039 0x2978A
+0x603A 0x298D6
+0x603B 0x298D8
+0x603C 0x298DD
+0x603D 0x298E4
+0x603E 0x298E3
+0x603F 0x29A4D
+0x6040 0x29AD7
+0x6041 0x29B4A
+0x6042 0x29B4C
+0x6043 0x29B50
+0x6044 0x29B4B
+0x6045-0x6046 0x29B4E
+0x6047 0x29C39
+0x6048 0x29CD2
+0x6049 0x29CCD
+0x604A 0x29CD3
+0x604B 0x29CE1
+0x604C 0x29CCE
+0x604D 0x29CD5
+0x604E 0x29CDD
+0x604F 0x29CD4
+0x6050 0x29CCF
+0x6051 0x29DCB
+0x6052 0x29DA6
+0x6053 0x29DC2
+0x6054 0x29DA5
+0x6055 0x29DA9
+0x6056 0x29DA2
+0x6057 0x29DA4
+0x6058 0x29DB0
+0x6059 0x29DCC
+0x605A 0x29DAF
+0x605B 0x29DBF
+0x605C 0x2A024
+0x605D 0x2A01A
+0x605E 0x2A014
+0x605F 0x2A03A
+0x6060 0x2A020
+0x6061 0x2A01B
+0x6062 0x2A021
+0x6063 0x2A025
+0x6064 0x2A01E
+0x6065-0x6066 0x2A03F
+0x6067 0x2A018
+0x6068 0x2A02C
+0x6069 0x2A015
+0x606A 0x2A02D
+0x606B 0x2A01F
+0x606C 0x2A029
+0x606D 0x2A04B
+0x606E 0x2A2B3
+0x606F 0x2A2A5
+0x6070 0x2A2A7
+0x6071 0x2A2AB
+0x6072 0x2A2A6
+0x6073 0x2A2AA
+0x6074-0x6075 0x2A322
+0x6076 0x2A3A1
+0x6077 0x2A3A3
+0x6078 0x2A3A0
+0x6079 0x2A3BD
+0x607A 0x2A3BA
+0x607B 0x2A3FA
+0x607C 0x2A3F8
+0x607D 0x2A3FC
+0x607E 0x2A3F6
+0x6121 0x2A434
+0x6122 0x2A443
+0x6123 0x4D63
+0x6124 0x2A4D4
+0x6125 0x2A50D
+0x6126 0x2A543
+0x6127 0x2A541
+0x6128 0x2A53D
+0x6129 0x2A540
+0x612A-0x612B 0x2A53E
+0x612C 0x2A546
+0x612D 0x4D93
+0x612E 0x2A5D4
+0x612F-0x6130 0x20435
+0x6131 0x20432
+0x6132 0x2043A
+0x6133 0x204C8
+0x6134 0x20536
+0x6135 0x2061E
+0x6136 0x2061D
+0x6137 0x2061F
+0x6138-0x6139 0x2081C
+0x613A 0x20820
+0x613B 0x350E
+0x613C 0x208C0
+0x613D 0x2109A
+0x613E 0x21093
+0x613F 0x210DD
+0x6140 0x360A
+0x6141 0x210A3
+0x6142 0x210A9
+0x6143 0x2109C
+0x6144 0x2109B
+0x6145 0x360D
+0x6146 0x21097
+0x6147 0x214B1
+0x6148 0x214CA
+0x6149 0x214B3
+0x614A 0x214CD
+0x614B 0x218EA
+0x614C-0x614D 0x218EE
+0x614E 0x21ADF
+0x614F 0x21B50
+0x6150 0x21BBB
+0x6151-0x6152 0x21F88
+0x6153 0x21F8C
+0x6154 0x21F85
+0x6155 0x21F5E
+0x6156-0x6157 0x21F94
+0x6158 0x2216B
+0x6159 0x2216A
+0x615A 0x22169
+0x615B 0x222E3
+0x615C 0x222F1
+0x615D 0x22437
+0x615E 0x22433
+0x615F 0x22591
+0x6160 0x2258F
+0x6161 0x22597
+0x6162 0x228D4
+0x6163 0x228DE
+0x6164 0x228D3
+0x6165 0x228E0
+0x6166 0x22943
+0x6167 0x2290B
+0x6168 0x228FF
+0x6169 0x22904
+0x616A 0x22907
+0x616B-0x616D 0x22DF9
+0x616E 0x22DF8
+0x616F 0x23012
+0x6170 0x23010
+0x6171 0x2311F
+0x6172 0x232DF
+0x6173 0x232E3
+0x6174 0x23352
+0x6175 0x233A9
+0x6176 0x23765
+0x6177 0x23787
+0x6178 0x23742
+0x6179 0x23752
+0x617A 0x2374C
+0x617B 0x2369F
+0x617C 0x23701
+0x617D 0x23748
+0x617E 0x2374F
+0x6221 0x2377E
+0x6222 0x2374D
+0x6223 0x23758
+0x6224 0x23747
+0x6225 0x2375E
+0x6226 0x23749
+0x6227 0x2374E
+0x6228 0x2375D
+0x6229 0x2375A
+0x622A 0x23786
+0x622B 0x23751
+0x622C 0x23929
+0x622D-0x622E 0x239A6
+0x622F 0x23A70
+0x6230 0x23A6F
+0x6231 0x23AD3
+0x6232 0x23AD2
+0x6233 0x23C28
+0x6234 0x23C1B
+0x6235 0x23C1A
+0x6236 0x23C1C
+0x6237 0x23C21
+0x6238 0x24032
+0x6239 0x24066
+0x623A 0x2407D
+0x623B 0x24073
+0x623C 0x2407F
+0x623D 0x24065
+0x623E 0x24080
+0x623F 0x24061
+0x6240 0x24075
+0x6241 0x2406E
+0x6242 0x24067
+0x6243 0x24071
+0x6244 0x2406C
+0x6245 0x24063
+0x6246 0x24062
+0x6247 0x24083
+0x6248 0x240B2
+0x6249 0x24081
+0x624A 0x2406F
+0x624B 0x2406B
+0x624C 0x24082
+0x624D 0x2408A
+0x624E 0x24429
+0x624F-0x6250 0x24430
+0x6251 0x24597
+0x6252 0x24600
+0x6253 0x245FF
+0x6254 0x248B6
+0x6255 0x248B5
+0x6256 0x248C3
+0x6257 0x24A8D
+0x6258 0x24B18
+0x6259 0x24B9C
+0x625A 0x24B9A
+0x625B 0x24B99
+0x625C 0x24EB7
+0x625D 0x24EC4
+0x625E-0x625F 0x24EC6
+0x6260 0x24EBC
+0x6261 0x24EC0
+0x6262 0x24EC5
+0x6263 0x24ECD
+0x6264 0x24EC1
+0x6265 0x24EBE
+0x6266 0x24FA7
+0x6267 0x24FB8
+0x6268 0x25023
+0x6269 0x4074
+0x626A 0x252E8
+0x626B 0x252DE
+0x626C 0x252E3
+0x626D 0x252EF
+0x626E 0x252DC
+0x626F 0x252E4
+0x6270 0x252E1
+0x6271 0x252E5
+0x6272 0x25395
+0x6273 0x25394
+0x6274 0x25393
+0x6275 0x2538E
+0x6276 0x25598
+0x6277 0x2559C
+0x6278 0x25599
+0x6279 0x255A0
+0x627A 0x2559E
+0x627B 0x25704
+0x627C 0x258D3
+0x627D 0x258B4
+0x627E 0x258BB
+0x6321-0x6322 0x258B7
+0x6323 0x258BD
+0x6324 0x258B6
+0x6325 0x258B9
+0x6326 0x258B5
+0x6327 0x25A22
+0x6328 0x25A21
+0x6329 0x25AC3
+0x632A 0x25ABC
+0x632B 0x25CFF
+0x632C 0x25CE5
+0x632D 0x25CF7
+0x632E 0x25CD2
+0x632F 0x25D00
+0x6330 0x25CDB
+0x6331 0x25CF0
+0x6332 0x25CE2
+0x6333 0x25CCD
+0x6334 0x4256
+0x6335 0x25CE1
+0x6336 0x25CF2
+0x6337 0x25CDC
+0x6338 0x25CCC
+0x6339 0x25CD6
+0x633A 0x25CF3
+0x633B 0x25CFA
+0x633C 0x25CF6
+0x633D 0x25CEC
+0x633E 0x25CEA
+0x633F 0x25CE3
+0x6340 0x25CD0
+0x6341 0x425A
+0x6342 0x25C95
+0x6343 0x25CD5
+0x6344 0x25CF4
+0x6345 0x25CCB
+0x6346 0x25CDA
+0x6347 0x25CC8
+0x6348 0x25CDF
+0x6349 0x25CF5
+0x634A 0x25CCF
+0x634B 0x25CC7
+0x634C 0x25CD7
+0x634D 0x25F24
+0x634E 0x42A3
+0x634F 0x25F1C
+0x6350 0x25F21
+0x6351 0x25F1E
+0x6352 0x25F18
+0x6353 0x25F1B
+0x6354 0x42A8
+0x6355 0x26146
+0x6356 0x2614B
+0x6357 0x26148
+0x6358 0x26147
+0x6359 0x26167
+0x635A 0x26154
+0x635B 0x26315
+0x635C 0x26322
+0x635D 0x263C5
+0x635E 0x26329
+0x635F 0x263C7
+0x6360 0x2648D
+0x6361 0x2651B
+0x6362 0x26520
+0x6363 0x265E2
+0x6364-0x6365 0x265E7
+0x6366 0x265E1
+0x6367 0x26872
+0x6368 0x2687B
+0x6369 0x26874
+0x636A 0x26871
+0x636B 0x26879
+0x636C 0x26875
+0x636D 0x26890
+0x636E 0x26877
+0x636F 0x2687D
+0x6370-0x6371 0x2694F
+0x6372 0x269A3
+0x6373 0x269A2
+0x6374 0x269F4
+0x6375 0x26A94
+0x6376-0x6377 0x26A9A
+0x6378 0x26AA7
+0x6379 0x26A97
+0x637A 0x26A95
+0x637B 0x26A92
+0x637C 0x26A9C
+0x637D 0x26A96
+0x637E 0x26FB6
+0x6421 0x26FB8
+0x6422 0x26FB0
+0x6423 0x27018
+0x6424 0x26FC5
+0x6425 0x26FB5
+0x6426 0x26FC2
+0x6427 0x27006
+0x6428 0x27019
+0x6429 0x26FB9
+0x642A 0x27015
+0x642B 0x26FD6
+0x642C 0x26FAC
+0x642D 0x453C
+0x642E 0x26FC6
+0x642F 0x26FB3
+0x6430 0x26FC3
+0x6431 0x26FCA
+0x6432 0x26FCF
+0x6433 0x26FBD
+0x6434 0x26FCE
+0x6435 0x27014
+0x6436 0x26FBA
+0x6437 0x2701A
+0x6438 0x26FC1
+0x6439 0x26FBB
+0x643A 0x459B
+0x643B 0x459A
+0x643C 0x27201
+0x643D 0x271FC
+0x643E 0x2745A
+0x643F 0x27454
+0x6440 0x27461
+0x6441 0x2745C
+0x6442 0x27455
+0x6443-0x6444 0x2744A
+0x6445 0x27451
+0x6446 0x27469
+0x6447 0x2746B
+0x6448 0x87F1
+0x6449 0x27466
+0x644A 0x27458
+0x644B 0x2745D
+0x644C 0x27467
+0x644D 0x27456
+0x644E 0x27488
+0x644F 0x27464
+0x6450 0x2744E
+0x6451 0x27757
+0x6452 0x2775A
+0x6453 0x27751
+0x6454-0x6455 0x2774A
+0x6456 0x465E
+0x6457 0x27747
+0x6458 0x2776F
+0x6459-0x645A 0x2776A
+0x645B 0x27746
+0x645C 0x2776D
+0x645D 0x27754
+0x645E 0x2776E
+0x645F 0x2774C
+0x6460 0x27878
+0x6461 0x27886
+0x6462 0x27882
+0x6463 0x46A7
+0x6464 0x27AE1
+0x6465 0x27AE5
+0x6466 0x27ADB
+0x6467 0x27ADE
+0x6468 0x27AD7
+0x6469 0x27C03
+0x646A 0x27C7C
+0x646B 0x27C7E
+0x646C 0x27D05
+0x646D 0x27D07
+0x646E 0x27DE6
+0x646F 0x27DE1
+0x6470 0x27DFB
+0x6471 0x27DE5
+0x6472 0x27DE7
+0x6473 0x27DDF
+0x6474 0x27DFF
+0x6475 0x27E76
+0x6476 0x27F63
+0x6477 0x27F66
+0x6478 0x27F65
+0x6479 0x27F5E
+0x647A 0x27F64
+0x647B 0x27F6B
+0x647C 0x27F5F
+0x647D-0x647E 0x27F67
+0x6521-0x6522 0x28108
+0x6523 0x28117
+0x6524 0x28115
+0x6525 0x2811B
+0x6526 0x2810B
+0x6527 0x28128
+0x6528 0x2810E
+0x6529 0x28118
+0x652A 0x28153
+0x652B 0x28145
+0x652C 0x2810D
+0x652D 0x2810A
+0x652E 0x28113
+0x652F 0x2814A
+0x6530 0x28279
+0x6531 0x283A1
+0x6532 0x2838D
+0x6533 0x283A2
+0x6534 0x28390
+0x6535 0x486E
+0x6536 0x28431
+0x6537 0x28430
+0x6538 0x2861F
+0x6539 0x28619
+0x653A 0x2860C
+0x653B 0x2861E
+0x653C 0x2861D
+0x653D 0x28607
+0x653E 0x28766
+0x653F 0x287C5
+0x6540 0x287BA
+0x6541 0x287BD
+0x6542-0x6543 0x287C2
+0x6544 0x287BF
+0x6545 0x490D
+0x6546-0x6547 0x288A1
+0x6548 0x288A8
+0x6549 0x288A3
+0x654A 0x288AA
+0x654B 0x288AF
+0x654C 0x288B9
+0x654D 0x28937
+0x654E 0x28A8F
+0x654F 0x4943
+0x6550 0x28A8E
+0x6551 0x28A87
+0x6552 0x28A8A
+0x6553 0x28A92
+0x6554 0x28A97
+0x6555 0x28A9F
+0x6556 0x28B05
+0x6557 0x28CA9
+0x6558 0x28CA7
+0x6559 0x28D8A
+0x655A 0x28D82
+0x655B 0x28D85
+0x655C 0x28D8B
+0x655D 0x28D89
+0x655E 0x28D81
+0x655F 0x28D80
+0x6560 0x28D87
+0x6561 0x28D86
+0x6562 0x28F4D
+0x6563 0x2901C
+0x6564 0x2901F
+0x6565 0x29121
+0x6566 0x2911D
+0x6567 0x29122
+0x6568 0x290FE
+0x6569 0x2911B
+0x656A 0x2913A
+0x656B 0x29137
+0x656C 0x29117
+0x656D 0x29138
+0x656E 0x29126
+0x656F 0x29118
+0x6570-0x6571 0x29234
+0x6572 0x29232
+0x6573 0x4A73
+0x6574 0x292E1
+0x6575 0x292FD
+0x6576 0x292E3
+0x6577 0x292E8
+0x6578 0x292F9
+0x6579 0x292FF
+0x657A 0x292FE
+0x657B 0x4A74
+0x657C 0x292E0
+0x657D 0x29300
+0x657E 0x4A70
+0x6621 0x292EC
+0x6622 0x292E4
+0x6623 0x292EF
+0x6624 0x292FA
+0x6625 0x293CA
+0x6626-0x6627 0x29431
+0x6628 0x29434
+0x6629 0x29441
+0x662A 0x29500
+0x662B 0x29506
+0x662C 0x29508
+0x662D 0x29505
+0x662E 0x29503
+0x662F 0x2950B
+0x6630 0x29502
+0x6631 0x2950A
+0x6632 0x295F0
+0x6633 0x29613
+0x6634 0x2960A
+0x6635 0x2960F
+0x6636 0x29611
+0x6637 0x29608
+0x6638 0x2960B
+0x6639 0x29612
+0x663A 0x2960D
+0x663B 0x2975B
+0x663C 0x29763
+0x663D 0x29761
+0x663E 0x29768
+0x663F 0x2975A
+0x6640 0x2984E
+0x6641 0x2984D
+0x6642 0x29850
+0x6643 0x298FC
+0x6644 0x29912
+0x6645 0x298F5
+0x6646 0x2991E
+0x6647 0x298F0
+0x6648 0x298F3
+0x6649 0x298F2
+0x664A 0x29901
+0x664B 0x298EF
+0x664C 0x298EE
+0x664D 0x29916
+0x664E 0x298F6
+0x664F 0x298FB
+0x6650 0x2991C
+0x6651 0x4BDB
+0x6652 0x29A5D
+0x6653 0x29A60
+0x6654 0x29A66
+0x6655 0x29A5F
+0x6656 0x29A61
+0x6657 0x29A5B
+0x6658 0x29A62
+0x6659 0x29A57
+0x665A 0x29B69
+0x665B 0x29B6B
+0x665C 0x29B61
+0x665D 0x29B77
+0x665E 0x29B5F
+0x665F 0x29B63
+0x6660 0x29B62
+0x6661 0x29B65
+0x6662 0x29CEF
+0x6663 0x29CE2
+0x6664 0x29D00
+0x6665 0x29CE8
+0x6666 0x29CF2
+0x6667 0x29CE7
+0x6668 0x4C29
+0x6669 0x29CE5
+0x666A 0x29DD5
+0x666B 0x29DD0
+0x666C 0x29DDA
+0x666D 0x29DD3
+0x666E 0x4C51
+0x666F 0x29DD9
+0x6670 0x29DCF
+0x6671 0x29DD6
+0x6672 0x29DD8
+0x6673 0x29DF5
+0x6674 0x29DCE
+0x6675 0x29DD7
+0x6676 0x29DF4
+0x6677 0x29DCD
+0x6678 0x29E01
+0x6679 0x9BBA
+0x667A 0x2A052
+0x667B 0x2A055
+0x667C 0x2A05A
+0x667D 0x2A04D
+0x667E 0x2A054
+0x6721 0x2A053
+0x6722 0x2A05E
+0x6723 0x2A067
+0x6724 0x2A065
+0x6725 0x2A04E
+0x6726 0x4CDB
+0x6727 0x2A04F
+0x6728 0x2A061
+0x6729 0x2A06E
+0x672A 0x2A051
+0x672B 0x2A05B
+0x672C 0x2A263
+0x672D 0x2A2B7
+0x672E 0x2A2B6
+0x672F 0x2A2C3
+0x6730 0x2A2BB
+0x6731 0x2A2B5
+0x6732 0x2A32E
+0x6733 0x2A330
+0x6734 0x2A333
+0x6735 0x2A331
+0x6736 0x2A3A4
+0x6737 0x2A3C1
+0x6738 0x2A3BB
+0x6739 0x2A3BE
+0x673A 0x2A400
+0x673B 0x2A3FF
+0x673C 0x2A440
+0x673D 0x4D65
+0x673E 0x2A43F
+0x673F 0x2A444
+0x6740 0x4D64
+0x6741 0x4D67
+0x6742 0x2A4DB
+0x6743 0x2A50F
+0x6744 0x2A511
+0x6745 0x2A54E
+0x6746 0x2A54D
+0x6747-0x6748 0x2A54B
+0x6749 0x2A595
+0x674A 0x2043B
+0x674B 0x20445
+0x674C 0x20444
+0x674D 0x2043E
+0x674E 0x2043C
+0x674F 0x2043F
+0x6750 0x204CC
+0x6751 0x204CE
+0x6752-0x6753 0x20622
+0x6754 0x2069F
+0x6755 0x208C5
+0x6756 0x208C4
+0x6757 0x210E9
+0x6758 0x21099
+0x6759 0x3611
+0x675A-0x675B 0x210E6
+0x675C 0x210F7
+0x675D 0x214D2
+0x675E 0x3733
+0x675F 0x218FD
+0x6760 0x2190C
+0x6761 0x2190B
+0x6762 0x21CED
+0x6763-0x6764 0x3821
+0x6765 0x21F9B
+0x6766 0x2200A
+0x6767 0x2216F
+0x6768 0x22175
+0x6769 0x222F2
+0x676A 0x222F8
+0x676B 0x2243E
+0x676C 0x22924
+0x676D 0x2290E
+0x676E 0x22916
+0x676F 0x22918
+0x6770 0x22910
+0x6771 0x22931
+0x6772 0x22944
+0x6773 0x39A6
+0x6774 0x22929
+0x6775 0x2292F
+0x6776 0x2294B
+0x6777 0x22936
+0x6778 0x39A3
+0x6779 0x22E34
+0x677A 0x22E00
+0x677B 0x22E2B
+0x677C-0x677D 0x23020
+0x677E 0x2301E
+0x6821 0x2301D
+0x6822 0x232F5
+0x6823 0x232F2
+0x6824 0x232F6
+0x6825 0x23790
+0x6826 0x2379D
+0x6827 0x2379C
+0x6828 0x23792
+0x6829 0x23794
+0x682A 0x237D1
+0x682B 0x23793
+0x682C 0x237B7
+0x682D 0x23797
+0x682E 0x237B0
+0x682F 0x2379F
+0x6830 0x237C9
+0x6831 0x2392D
+0x6832 0x2392C
+0x6833 0x23A77
+0x6834 0x23C2C
+0x6835 0x240C0
+0x6836 0x240B9
+0x6837 0x24453
+0x6838 0x24540
+0x6839 0x24702
+0x683A 0x246FB
+0x683B 0x3EA1
+0x683C 0x24A8B
+0x683D 0x24AAE
+0x683E 0x24AAB
+0x683F 0x24BA1
+0x6840 0x2A2CD
+0x6841 0x24CEA
+0x6842 0x24EDD
+0x6843 0x24EDC
+0x6844 0x24ED9
+0x6845-0x6847 0x24FAB
+0x6848 0x24FB2
+0x6849 0x2502C
+0x684A 0x2502B
+0x684B 0x250C2
+0x684C 0x25300
+0x684D 0x2530D
+0x684E 0x25306
+0x684F 0x252FF
+0x6850 0x25303
+0x6851 0x25301
+0x6852 0x25310
+0x6853 0x2530F
+0x6854 0x25305
+0x6855 0x25398
+0x6856 0x25397
+0x6857 0x25396
+0x6858 0x25399
+0x6859 0x255AC
+0x685A 0x255AB
+0x685B 0x25712
+0x685C 0x258D8
+0x685D 0x258DF
+0x685E 0x258D6
+0x685F 0x25A2D
+0x6860 0x25A32
+0x6861 0x25D3F
+0x6862 0x25D2F
+0x6863 0x25D26
+0x6864 0x25D3A
+0x6865 0x25D39
+0x6866 0x425F
+0x6867 0x25D3B
+0x6868 0x25D35
+0x6869 0x25D2A
+0x686A 0x25D21
+0x686B 0x25D38
+0x686C 0x25D37
+0x686D 0x25D34
+0x686E 0x425C
+0x686F 0x25D22
+0x6870 0x25D36
+0x6871 0x25D44
+0x6872 0x25F45
+0x6873 0x25F3B
+0x6874 0x25F36
+0x6875 0x25F42
+0x6876 0x2617A
+0x6877 0x26186
+0x6878 0x2618B
+0x6879 0x2617F
+0x687A 0x26181
+0x687B 0x2632A
+0x687C 0x263D5
+0x687D 0x2649F
+0x687E 0x2649D
+0x6921 0x26526
+0x6922-0x6923 0x265F4
+0x6924 0x26815
+0x6925-0x6926 0x2688E
+0x6927 0x26926
+0x6928 0x269A7
+0x6929 0x269AF
+0x692A 0x26AAD
+0x692B 0x26AAC
+0x692C 0x26AAB
+0x692D 0x26AAA
+0x692E 0x2702F
+0x692F 0x27021
+0x6930 0x27023
+0x6931 0x270A3
+0x6932 0x27049
+0x6933 0x2703A
+0x6934 0x27048
+0x6935 0x2702D
+0x6936 0x27025
+0x6937 0x27029
+0x6938 0x27032
+0x6939 0x27034
+0x693A 0x27024
+0x693B 0x2702C
+0x693C 0x2704B
+0x693D 0x2703B
+0x693E 0x27020
+0x693F 0x27028
+0x6940 0x27498
+0x6941 0x45F5
+0x6942 0x27497
+0x6943 0x8804
+0x6944 0x2749D
+0x6945 0x274A8
+0x6946 0x275D5
+0x6947-0x6948 0x27777
+0x6949-0x694A 0x27772
+0x694B 0x27802
+0x694C 0x2793B
+0x694D 0x27AFE
+0x694E 0x27B0B
+0x694F 0x27AFF
+0x6950 0x27B07
+0x6951 0x4711
+0x6952 0x470C
+0x6953 0x27B30
+0x6954 0x27BCD
+0x6955 0x27BCF
+0x6956 0x27C10
+0x6957 0x27C0A
+0x6958 0x27C83
+0x6959 0x27D15
+0x695A 0x27D0E
+0x695B 0x27D0C
+0x695C 0x27E02
+0x695D 0x27DFE
+0x695E 0x27E05
+0x695F 0x27E15
+0x6960 0x27E08
+0x6961 0x27F7F
+0x6962 0x27F77
+0x6963 0x27F7C
+0x6964 0x27F82
+0x6965 0x27F7E
+0x6966 0x27F78
+0x6967 0x27F7D
+0x6968 0x27F79
+0x6969 0x27F81
+0x696A 0x2814B
+0x696B-0x696C 0x28163
+0x696D 0x28156
+0x696E 0x28154
+0x696F 0x2814E
+0x6970 0x28110
+0x6971 0x2814F
+0x6972 0x28157
+0x6973 0x2815E
+0x6974 0x28151
+0x6975 0x2816A
+0x6976 0x28169
+0x6977 0x283AD
+0x6978 0x283A4
+0x6979 0x283AC
+0x697A 0x283A9
+0x697B 0x283AE
+0x697C 0x2044C
+0x697D 0x28650
+0x697E 0x28635
+0x6A21 0x28632
+0x6A22 0x287D8
+0x6A23 0x287D1
+0x6A24 0x287CF
+0x6A25 0x287BE
+0x6A26 0x288D5
+0x6A27 0x288C1
+0x6A28 0x288C6
+0x6A29 0x288C3
+0x6A2A 0x288C2
+0x6A2B 0x288C0
+0x6A2C 0x288C5
+0x6A2D 0x288C7
+0x6A2E 0x288BF
+0x6A2F 0x288C4
+0x6A30 0x288D4
+0x6A31 0x28A90
+0x6A32 0x28AD2
+0x6A33 0x494E
+0x6A34 0x28AD4
+0x6A35 0x28CAF
+0x6A36 0x28CAE
+0x6A37 0x28CB2
+0x6A38 0x28CAD
+0x6A39 0x28D9C
+0x6A3A 0x28DA0
+0x6A3B 0x28DB6
+0x6A3C 0x28F3D
+0x6A3D 0x28F56
+0x6A3E 0x28F82
+0x6A3F 0x29028
+0x6A40 0x2902B
+0x6A41 0x2913C
+0x6A42-0x6A43 0x2913E
+0x6A44 0x29142
+0x6A45 0x2913D
+0x6A46 0x29141
+0x6A47 0x2913B
+0x6A48 0x29149
+0x6A49 0x29143
+0x6A4A 0x29239
+0x6A4B 0x29238
+0x6A4C 0x29322
+0x6A4D 0x29308
+0x6A4E 0x2930C
+0x6A4F 0x29306
+0x6A50 0x29313
+0x6A51 0x29304
+0x6A52 0x29320
+0x6A53 0x2931D
+0x6A54 0x29305
+0x6A55 0x2930A
+0x6A56-0x6A57 0x293D6
+0x6A58-0x6A59 0x29436
+0x6A5A 0x29523
+0x6A5B 0x29522
+0x6A5C 0x29520
+0x6A5D 0x2951A
+0x6A5E 0x2951D
+0x6A5F 0x2961C
+0x6A60 0x29620
+0x6A61 0x29677
+0x6A62 0x2977F
+0x6A63 0x2978B
+0x6A64 0x2977D
+0x6A65 0x29799
+0x6A66 0x29784
+0x6A67 0x29789
+0x6A68 0x29785
+0x6A69 0x29783
+0x6A6A 0x29786
+0x6A6B 0x2979E
+0x6A6C 0x29853
+0x6A6D 0x29917
+0x6A6E 0x4B94
+0x6A6F 0x29919
+0x6A70 0x29920
+0x6A71 0x2991F
+0x6A72 0x29923
+0x6A73 0x29918
+0x6A74 0x29921
+0x6A75 0x29929
+0x6A76 0x29924
+0x6A77 0x29926
+0x6A78 0x29A5E
+0x6A79 0x29A6F
+0x6A7A 0x29A6E
+0x6A7B 0x29A74
+0x6A7C-0x6A7D 0x29A72
+0x6A7E 0x29B7D
+0x6B21 0x29B7E
+0x6B22 0x29B85
+0x6B23 0x29B7F
+0x6B24 0x29B84
+0x6B25 0x29C44
+0x6B26 0x29CF5
+0x6B27 0x29CF8
+0x6B28 0x29D03
+0x6B29 0x29CF6
+0x6B2A 0x29E28
+0x6B2B 0x4C63
+0x6B2C 0x29E39
+0x6B2D 0x29DFB
+0x6B2E 0x29E0E
+0x6B2F 0x29DFD
+0x6B30 0x29E1F
+0x6B31 0x4C61
+0x6B32 0x29E03
+0x6B33 0x9BD8
+0x6B34 0x29E10
+0x6B35 0x4C5A
+0x6B36 0x29E0D
+0x6B37 0x29E27
+0x6B38 0x29E41
+0x6B39 0x2A072
+0x6B3A 0x2A078
+0x6B3B 0x2A080
+0x6B3C 0x4CE3
+0x6B3D 0x2A085
+0x6B3E 0x2A07B
+0x6B3F 0x9D7C
+0x6B40 0x2A07D
+0x6B41 0x2A091
+0x6B42 0x2A088
+0x6B43 0x2A0AA
+0x6B44 0x2A08D
+0x6B45 0x2A089
+0x6B46 0x2A095
+0x6B47 0x2A09B
+0x6B48 0x2A08C
+0x6B49 0x2A09E
+0x6B4A 0x2A07C
+0x6B4B 0x2A086
+0x6B4C 0x2A084
+0x6B4D 0x2A268
+0x6B4E 0x2A2C5
+0x6B4F 0x2A2C4
+0x6B50 0x2A2C9
+0x6B51 0x2A2C6
+0x6B52 0x2A342
+0x6B53 0x2A345
+0x6B54 0x2A341
+0x6B55 0x2A344
+0x6B56 0x2A3A6
+0x6B57 0x2A3C2
+0x6B58 0x2A442
+0x6B59 0x2A449
+0x6B5A 0x2A448
+0x6B5B 0x2A44A
+0x6B5C 0x2A44C
+0x6B5D 0x2A44B
+0x6B5E-0x6B5F 0x2A517
+0x6B60 0x2A515
+0x6B61 0x2A552
+0x6B62 0x2A554
+0x6B63 0x2A553
+0x6B64-0x6B65 0x2A59A
+0x6B66 0x2A5DC
+0x6B67 0x2A5E4
+0x6B68 0x2A691
+0x6B69 0x4DAF
+0x6B6A 0x2A6BA
+0x6B6B 0x20451
+0x6B6C 0x2045B
+0x6B6D 0x204CF
+0x6B6E 0x23305
+0x6B6F 0x21113
+0x6B70 0x21115
+0x6B71 0x21114
+0x6B72 0x21123
+0x6B73 0x3613
+0x6B74-0x6B75 0x21111
+0x6B76 0x3680
+0x6B77 0x214F0
+0x6B78 0x2169B
+0x6B79 0x21912
+0x6B7A-0x6B7B 0x21916
+0x6B7C 0x219B5
+0x6B7D 0x21CF4
+0x6B7E 0x21FB1
+0x6C21 0x22179
+0x6C22 0x222FF
+0x6C23 0x222FC
+0x6C24 0x222FB
+0x6C25 0x2243F
+0x6C26 0x22444
+0x6C27 0x2259D
+0x6C28 0x22932
+0x6C29 0x2294C
+0x6C2A 0x2292B
+0x6C2B 0x2295A
+0x6C2C 0x22A1F
+0x6C2D 0x22E01
+0x6C2E 0x22E2D
+0x6C2F 0x22E27
+0x6C30-0x6C31 0x22E59
+0x6C32 0x22E4D
+0x6C33 0x22E58
+0x6C34 0x23023
+0x6C35 0x23025
+0x6C36 0x2302B
+0x6C37 0x232FF
+0x6C38 0x233AE
+0x6C39 0x237CB
+0x6C3A 0x237CA
+0x6C3B 0x237D0
+0x6C3C 0x237CE
+0x6C3D 0x237CC
+0x6C3E 0x237D8
+0x6C3F 0x237C6
+0x6C40 0x237D2
+0x6C41 0x237CF
+0x6C42 0x237C8
+0x6C43 0x23B17
+0x6C44 0x4DB0
+0x6C45 0x240C4
+0x6C46 0x29240
+0x6C47 0x240E9
+0x6C48 0x240F2
+0x6C49 0x240FC
+0x6C4A-0x6C4B 0x240EA
+0x6C4C 0x240FD
+0x6C4D 0x24478
+0x6C4E 0x24477
+0x6C4F 0x24473
+0x6C50 0x2449E
+0x6C51 0x24479
+0x6C52 0x245A2
+0x6C53 0x24603
+0x6C54-0x6C55 0x24704
+0x6C56 0x248CE
+0x6C57 0x24ABF
+0x6C58-0x6C59 0x24EF6
+0x6C5A 0x25031
+0x6C5B 0x25030
+0x6C5C 0x250C9
+0x6C5D 0x250C7
+0x6C5E 0x2531C
+0x6C5F 0x25328
+0x6C60 0x2531A
+0x6C61 0x2531E
+0x6C62 0x2531B
+0x6C63 0x2531F
+0x6C64 0x255BF
+0x6C65-0x6C66 0x255BB
+0x6C67 0x255C0
+0x6C68 0x2571A
+0x6C69 0x258EF
+0x6C6A 0x258EC
+0x6C6B 0x258E9
+0x6C6C 0x258F0
+0x6C6D 0x258FE
+0x6C6E 0x25A34
+0x6C6F 0x25D6A
+0x6C70 0x25D95
+0x6C71 0x25D6C
+0x6C72 0x25D72
+0x6C73 0x25D67
+0x6C74 0x25D60
+0x6C75 0x25D6B
+0x6C76 0x25D5E
+0x6C77 0x25D6F
+0x6C78 0x25D66
+0x6C79 0x7C46
+0x6C7A 0x25D62
+0x6C7B 0x25D5D
+0x6C7C 0x25D5C
+0x6C7D 0x2F965
+0x6C7E 0x25F50
+0x6D21 0x2619F
+0x6D22 0x4323
+0x6D23 0x2619E
+0x6D24 0x261A6
+0x6D25 0x26335
+0x6D26 0x26338
+0x6D27 0x26336
+0x6D28 0x2633A
+0x6D29 0x263DC
+0x6D2A 0x2687C
+0x6D2B 0x268AB
+0x6D2C 0x4449
+0x6D2D 0x268A8
+0x6D2E 0x268A7
+0x6D2F-0x6D30 0x2692B
+0x6D31 0x26928
+0x6D32 0x2092B
+0x6D33-0x6D35 0x269A9
+0x6D36 0x269F8
+0x6D37 0x26AB1
+0x6D38 0x26AF0
+0x6D39 0x26AEF
+0x6D3A 0x270A8
+0x6D3B 0x2708B
+0x6D3C 0x27094
+0x6D3D 0x2709E
+0x6D3E 0x2708F
+0x6D3F 0x27088
+0x6D40 0x2707E
+0x6D41 0x27081
+0x6D42 0x27030
+0x6D43 0x2709B
+0x6D44 0x27082
+0x6D45 0x27090
+0x6D46 0x27085
+0x6D47 0x2707F
+0x6D48 0x270A9
+0x6D49 0x270DE
+0x6D4A 0x2720D
+0x6D4B 0x45FA
+0x6D4C 0x274CF
+0x6D4D 0x274CB
+0x6D4E 0x274D8
+0x6D4F 0x274DD
+0x6D50 0x274D3
+0x6D51 0x274D0
+0x6D52-0x6D53 0x274D5
+0x6D54 0x275D6
+0x6D55 0x27792
+0x6D56 0x27795
+0x6D57 0x2A5CB
+0x6D58 0x2778D
+0x6D59 0x2779B
+0x6D5A 0x2779D
+0x6D5B 0x2778F
+0x6D5C 0x2779E
+0x6D5D 0x277A6
+0x6D5E 0x27896
+0x6D5F 0x27892
+0x6D60 0x27B16
+0x6D61 0x27B2A
+0x6D62 0x27B29
+0x6D63 0x27B2C
+0x6D64 0x27C15
+0x6D65 0x27C12
+0x6D66 0x27C11
+0x6D67 0x27C13
+0x6D68 0x27C88
+0x6D69 0x27C8B
+0x6D6A 0x27C8A
+0x6D6B 0x27C87
+0x6D6C 0x27D17
+0x6D6D 0x27D16
+0x6D6E 0x27D1A
+0x6D6F 0x27E19
+0x6D70 0x27E17
+0x6D71 0x27F91
+0x6D72 0x27F94
+0x6D73 0x2818B
+0x6D74 0x28190
+0x6D75 0x2818F
+0x6D76 0x28186
+0x6D77 0x28183
+0x6D78 0x2818E
+0x6D79 0x28187
+0x6D7A 0x281A8
+0x6D7B 0x28185
+0x6D7C 0x281A6
+0x6D7D 0x28182
+0x6D7E 0x281A7
+0x6E21 0x283B9
+0x6E22 0x283B7
+0x6E23 0x283B4
+0x6E24 0x283B6
+0x6E25 0x283B3
+0x6E26 0x283C6
+0x6E27 0x2863C
+0x6E28 0x28640
+0x6E29 0x28638
+0x6E2A 0x28791
+0x6E2B 0x287A6
+0x6E2C 0x287DA
+0x6E2D 0x288DA
+0x6E2E-0x6E2F 0x288D8
+0x6E30 0x288DB
+0x6E31 0x288D7
+0x6E32 0x28B16
+0x6E33 0x28B12
+0x6E34 0x28B1F
+0x6E35 0x4959
+0x6E36 0x28B14
+0x6E37 0x28B1A
+0x6E38 0x28B10
+0x6E39 0x28CB3
+0x6E3A 0x28DAE
+0x6E3B 0x28DC1
+0x6E3C 0x28DB0
+0x6E3D 0x28DAF
+0x6E3E 0x28DB1
+0x6E3F 0x28DAD
+0x6E40 0x28DB2
+0x6E41 0x28DC4
+0x6E42 0x2903C
+0x6E43 0x2903F
+0x6E44 0x29161
+0x6E45 0x29166
+0x6E46 0x2923C
+0x6E47 0x2923B
+0x6E48 0x2932C
+0x6E49 0x4A7E
+0x6E4A 0x2932A
+0x6E4B 0x2933E
+0x6E4C 0x2932F
+0x6E4D 0x29332
+0x6E4E 0x29327
+0x6E4F 0x29329
+0x6E50 0x29340
+0x6E51 0x293DF
+0x6E52 0x293DE
+0x6E53 0x2943C
+0x6E54 0x2943B
+0x6E55 0x2943E
+0x6E56 0x29521
+0x6E57 0x29546
+0x6E58 0x2953C
+0x6E59 0x29536
+0x6E5A 0x29538
+0x6E5B 0x29535
+0x6E5C 0x29631
+0x6E5D 0x29636
+0x6E5E 0x2962D
+0x6E5F 0x29633
+0x6E60 0x2962F
+0x6E61 0x2962E
+0x6E62 0x29635
+0x6E63 0x297AC
+0x6E64 0x297A9
+0x6E65 0x297A6
+0x6E66 0x4BA8
+0x6E67 0x2994C
+0x6E68 0x29943
+0x6E69 0x29941
+0x6E6A 0x2994F
+0x6E6B 0x29942
+0x6E6C 0x29951
+0x6E6D 0x4BA9
+0x6E6E 0x29940
+0x6E6F 0x29950
+0x6E70 0x29945
+0x6E71-0x6E72 0x2994A
+0x6E73 0x29A83
+0x6E74 0x29A82
+0x6E75 0x29A81
+0x6E76 0x29AE0
+0x6E77 0x29B98
+0x6E78 0x29B9F
+0x6E79 0x29B9B
+0x6E7A 0x29B9A
+0x6E7B 0x29B99
+0x6E7C 0x29B96
+0x6E7D 0x29BAE
+0x6E7E 0x29B9E
+0x6F21 0x29D09
+0x6F22 0x29D0D
+0x6F23 0x29E4E
+0x6F24 0x29E4A
+0x6F25 0x29E4D
+0x6F26 0x29E40
+0x6F27 0x29E3E
+0x6F28 0x29E48
+0x6F29 0x29E42
+0x6F2A 0x29E62
+0x6F2B 0x29E45
+0x6F2C 0x29E51
+0x6F2D 0x2A0C6
+0x6F2E 0x2A0D0
+0x6F2F 0x2A0C0
+0x6F30 0x2A0B7
+0x6F31 0x2A0C2
+0x6F32 0x2A0BC
+0x6F33 0x2A0C5
+0x6F34 0x2A0DC
+0x6F35 0x2A0DB
+0x6F36 0x2A0D2
+0x6F37 0x2A0C7
+0x6F38 0x2A0B6
+0x6F39 0x2A0C9
+0x6F3A 0x2A0CC
+0x6F3B 0x2A0D1
+0x6F3C 0x2A0CD
+0x6F3D 0x2A0DA
+0x6F3E 0x2A0BA
+0x6F3F 0x2A0D3
+0x6F40 0x2A0CE
+0x6F41 0x2A0F6
+0x6F42 0x2A0BD
+0x6F43 0x2A0DD
+0x6F44 0x2A0C8
+0x6F45 0x2A10D
+0x6F46 0x2A135
+0x6F47 0x2A271
+0x6F48-0x6F49 0x2A26E
+0x6F4A 0x2A2D6
+0x6F4B 0x2A34C
+0x6F4C 0x2A34F
+0x6F4D 0x2A354
+0x6F4E 0x2A353
+0x6F4F 0x2A3C9
+0x6F50 0x2A3C8
+0x6F51 0x2A403
+0x6F52 0x4D54
+0x6F53 0x2A404
+0x6F54 0x4D56
+0x6F55 0x2A457
+0x6F56-0x6F57 0x2A452
+0x6F58 0x4D6D
+0x6F59 0x2A456
+0x6F5A 0x2A45C
+0x6F5B 0x2A455
+0x6F5C 0x2A564
+0x6F5D-0x6F5E 0x2A55D
+0x6F5F-0x6F60 0x2A5A2
+0x6F61 0x4D8E
+0x6F62 0x2A5E7
+0x6F63 0x2A5E6
+0x6F64 0x2A698
+0x6F65 0x2A6AC
+0x6F66 0x2A6AF
+0x6F67 0x2A6AE
+0x6F68 0x20459
+0x6F69 0x205A9
+0x6F6A 0x2082A
+0x6F6B 0x208C7
+0x6F6C 0x21141
+0x6F6D 0x21137
+0x6F6E 0x21135
+0x6F6F 0x21133
+0x6F70 0x21139
+0x6F71 0x21132
+0x6F72 0x214FF
+0x6F73 0x21501
+0x6F74 0x214F8
+0x6F75 0x2191B
+0x6F76 0x21919
+0x6F77 0x21BBF
+0x6F78 0x21FBC
+0x6F79 0x21FBE
+0x6F7A 0x21FBD
+0x6F7B 0x2217D
+0x6F7C-0x6F7D 0x22446
+0x6F7E 0x225A4
+0x7021 0x22A21
+0x7022 0x22A62
+0x7023 0x22E86
+0x7024 0x3A72
+0x7025 0x2302F
+0x7026 0x23031
+0x7027 0x3C14
+0x7028 0x237F8
+0x7029 0x237F5
+0x702A 0x237F9
+0x702B 0x237F2
+0x702C 0x237FA
+0x702D 0x237F3
+0x702E 0x23814
+0x702F 0x237FD
+0x7030 0x2380F
+0x7031 0x2380E
+0x7032 0x23801
+0x7033 0x23937
+0x7034 0x23935
+0x7035 0x23934
+0x7036 0x23931
+0x7037-0x7038 0x23A7A
+0x7039 0x23C37
+0x703A 0x2412B
+0x703B 0x240FB
+0x703C 0x24116
+0x703D 0x24113
+0x703E 0x3D93
+0x703F 0x24111
+0x7040 0x2410F
+0x7041 0x2411B
+0x7042 0x24138
+0x7043 0x244A4
+0x7044 0x24709
+0x7045 0x24707
+0x7046 0x2470B
+0x7047 0x248D3
+0x7048 0x248D1
+0x7049 0x248D8
+0x704A 0x24B1D
+0x704B 0x24BA9
+0x704C 0x24BD0
+0x704D 0x27215
+0x704E 0x24F02
+0x704F 0x24F05
+0x7050 0x24F01
+0x7051 0x24F00
+0x7052 0x2532E
+0x7053 0x25330
+0x7054 0x2532F
+0x7055 0x25331
+0x7056-0x7057 0x255D2
+0x7058 0x25902
+0x7059 0x25A40
+0x705A 0x25A42
+0x705B 0x25A3B
+0x705C 0x25ACE
+0x705D 0x25D98
+0x705E 0x25D8F
+0x705F 0x25D94
+0x7060 0x25D91
+0x7061 0x426F
+0x7062 0x25DBA
+0x7063 0x25D90
+0x7064 0x25D86
+0x7065 0x25D9A
+0x7066 0x25D8C
+0x7067 0x25D93
+0x7068-0x7069 0x25D87
+0x706A 0x25D97
+0x706B 0x25D8D
+0x706C 0x25D9C
+0x706D 0x25DBD
+0x706E 0x25F3C
+0x706F 0x25F59
+0x7070 0x42B0
+0x7071 0x261D1
+0x7072 0x261BB
+0x7073 0x261BE
+0x7074 0x2625D
+0x7075 0x263E2
+0x7076 0x26605
+0x7077 0x268BA
+0x7078 0x352E
+0x7079 0x268F4
+0x707A 0x269B2
+0x707B 0x269F9
+0x707C 0x26AB7
+0x707D 0x26AB6
+0x707E 0x27089
+0x7121 0x270F9
+0x7122 0x270D9
+0x7123 0x270E8
+0x7124 0x270D4
+0x7125 0x270DB
+0x7126 0x270E2
+0x7127 0x270DF
+0x7128 0x270D1
+0x7129-0x712A 0x270E9
+0x712B 0x27213
+0x712C 0x27211
+0x712D 0x274FA
+0x712E 0x274F8
+0x712F 0x274F4
+0x7130 0x274FB
+0x7131 0x2750E
+0x7132 0x27502
+0x7133 0x2750F
+0x7134 0x27790
+0x7135 0x277AD
+0x7136 0x277A9
+0x7137 0x27948
+0x7138 0x27B5A
+0x7139 0x27B4F
+0x713A 0x27B4E
+0x713B 0x27B55
+0x713C 0x27B54
+0x713D 0x27B4A
+0x713E 0x27BD5
+0x713F 0x27C18
+0x7140 0x27C8D
+0x7141 0x27D1D
+0x7142 0x27D19
+0x7143 0x27E26
+0x7144 0x27E28
+0x7145 0x27E2B
+0x7146 0x27E7D
+0x7147 0x27FA0
+0x7148-0x7149 0x27F9A
+0x714A 0x281B5
+0x714B 0x281AD
+0x714C 0x281B2
+0x714D 0x28294
+0x714E 0x283C9
+0x714F-0x7150 0x2864E
+0x7151 0x28644
+0x7152 0x28652
+0x7153 0x288E9
+0x7154 0x28939
+0x7155 0x4969
+0x7156 0x957E
+0x7157 0x28DC7
+0x7158 0x28DD3
+0x7159 0x28DC6
+0x715A 0x28DC3
+0x715B 0x49B4
+0x715C 0x28DD2
+0x715D 0x28F66
+0x715E-0x715F 0x2917F
+0x7160-0x7161 0x29184
+0x7162 0x291E3
+0x7163 0x4A4D
+0x7164 0x29241
+0x7165 0x29244
+0x7166 0x29243
+0x7167-0x7168 0x2934E
+0x7169 0x4A83
+0x716A-0x716C 0x29349
+0x716D 0x29343
+0x716E 0x293E0
+0x716F 0x293E5
+0x7170 0x293E1
+0x7171 0x293E6
+0x7172 0x293E2
+0x7173 0x2940C
+0x7174 0x29440
+0x7175-0x7176 0x29549
+0x7177 0x29554
+0x7178 0x2954C
+0x7179-0x717A 0x29555
+0x717B 0x2963B
+0x717C 0x2963D
+0x717D 0x297A4
+0x717E 0x297A8
+0x7221 0x297C3
+0x7222 0x297BF
+0x7223 0x297C8
+0x7224 0x297C2
+0x7225 0x297CA
+0x7226 0x297CC
+0x7227 0x297C9
+0x7228 0x297BE
+0x7229 0x297CD
+0x722A 0x297C7
+0x722B 0x297C5
+0x722C 0x2985D
+0x722D 0x4BB0
+0x722E 0x2996C
+0x722F 0x2996B
+0x7230 0x29970
+0x7231 0x2996D
+0x7232 0x2996F
+0x7233 0x29989
+0x7234 0x29984
+0x7235 0x29A8D
+0x7236 0x29A8A
+0x7237 0x29A8E
+0x7238 0x29A91
+0x7239 0x29BB5
+0x723A 0x29BB1
+0x723B 0x29BAF
+0x723C 0x29BB9
+0x723D 0x29BB7
+0x723E 0x29BB0
+0x723F 0x4C0C
+0x7240 0x29C17
+0x7241 0x4C18
+0x7242 0x29C4F
+0x7243 0x29D19
+0x7244 0x29D10
+0x7245 0x29D18
+0x7246 0x29D11
+0x7247 0x29D1C
+0x7248 0x29D12
+0x7249 0x29E76
+0x724A 0x29E71
+0x724B 0x9C20
+0x724C 0x29E7A
+0x724D 0x29E7F
+0x724E 0x9C22
+0x724F 0x29E73
+0x7250 0x29EAB
+0x7251 0x9C1E
+0x7252 0x29E77
+0x7253 0x29E74
+0x7254 0x29E7E
+0x7255 0x29E9B
+0x7256 0x29E84
+0x7257 0x29E7C
+0x7258 0x2A129
+0x7259 0x2A12B
+0x725A 0x2A10E
+0x725B 0x2A100
+0x725C 0x2A10B
+0x725D 0x2A0FE
+0x725E 0x2A0FA
+0x725F 0x2A117
+0x7260 0x2A0FF
+0x7261 0x2A10C
+0x7262 0x2A10F
+0x7263 0x4CF5
+0x7264 0x2A102
+0x7265 0x2A101
+0x7266 0x2A0FC
+0x7267 0x2A149
+0x7268 0x2A106
+0x7269-0x726A 0x2A112
+0x726B 0x2A278
+0x726C 0x2A35B
+0x726D 0x2A362
+0x726E 0x2A35F
+0x726F 0x2A35D
+0x7270 0x2A3AB
+0x7271 0x2A3D5
+0x7272 0x2A3D4
+0x7273 0x2A3D3
+0x7274 0x2A407
+0x7275 0x2A46C
+0x7276 0x2A470
+0x7277 0x2A46E
+0x7278 0x2A468
+0x7279 0x2A46D
+0x727A 0x2A477
+0x727B 0x2A46A
+0x727C 0x2A4CE
+0x727D 0x2A4EC
+0x727E 0x2A569
+0x7321 0x2A568
+0x7322 0x2A5A6
+0x7323-0x7324 0x2A5A9
+0x7325 0x2A600
+0x7326 0x2A60D
+0x7327 0x2A5F8
+0x7328 0x2A5FC
+0x7329 0x2A60A
+0x732A 0x2A5F7
+0x732B 0x2A601
+0x732C 0x2A6B6
+0x732D 0x2A6BB
+0x732E 0x2A6B7
+0x732F 0x2A6B9
+0x7330 0x2A6CA
+0x7331 0x20469
+0x7332 0x20625
+0x7333 0x21159
+0x7334 0x21507
+0x7335 0x21509
+0x7336 0x21922
+0x7337 0x21B07
+0x7338 0x21B04
+0x7339 0x2330F
+0x733A 0x21CF8
+0x733B 0x21FC7
+0x733C 0x21FD1
+0x733D 0x2217E
+0x733E 0x22308
+0x733F 0x2244A
+0x7340 0x2F898
+0x7341 0x224B9
+0x7342 0x22E88
+0x7343 0x22E91
+0x7344 0x22E84
+0x7345 0x22E73
+0x7346 0x22E89
+0x7347 0x22E85
+0x7348 0x23033
+0x7349 0x23313
+0x734A 0x2381D
+0x734B 0x2381F
+0x734C 0x2381C
+0x734D 0x23820
+0x734E-0x734F 0x2381A
+0x7350 0x23939
+0x7351 0x239AF
+0x7352 0x23AE5
+0x7353 0x23C3C
+0x7354 0x24137
+0x7355 0x2413A
+0x7356 0x244BB
+0x7357 0x3E0E
+0x7358 0x24710
+0x7359 0x2470D
+0x735A 0x24BAF
+0x735B 0x24C11
+0x735C 0x3FD8
+0x735D 0x24F0D
+0x735E 0x24F0C
+0x735F 0x24F0B
+0x7360 0x250D4
+0x7361-0x7362 0x2533D
+0x7363 0x2533B
+0x7364 0x25343
+0x7365 0x25340
+0x7366 0x25346
+0x7367 0x25411
+0x7368 0x255DD
+0x7369 0x255DF
+0x736A 0x255EA
+0x736B 0x2574A
+0x736C 0x25906
+0x736D 0x25DC1
+0x736E 0x25DB9
+0x736F 0x25DC6
+0x7370 0x25DB8
+0x7371 0x25DBB
+0x7372 0x25DC8
+0x7373 0x25DC5
+0x7374 0x25DBF
+0x7375 0x25DC7
+0x7376 0x25DC4
+0x7377 0x25F65
+0x7378 0x25F67
+0x7379 0x261D7
+0x737A 0x261DB
+0x737B 0x261D4
+0x737C 0x261D6
+0x737D 0x263E8
+0x737E 0x2660A
+0x7421-0x7422 0x26ABD
+0x7423 0x2711A
+0x7424 0x2710D
+0x7425 0x2710F
+0x7426 0x2711B
+0x7427-0x7428 0x27110
+0x7429 0x27113
+0x742A 0x27218
+0x742B 0x27520
+0x742C 0x2751F
+0x742D 0x27523
+0x742E 0x2751D
+0x742F 0x27537
+0x7430 0x27525
+0x7431 0x27524
+0x7432 0x2752A
+0x7433 0x27527
+0x7434 0x27533
+0x7435 0x27528
+0x7436 0x27534
+0x7437 0x277BA
+0x7438 0x8970
+0x7439 0x2789D
+0x743A 0x2794C
+0x743B 0x27B5C
+0x743C 0x27B6A
+0x743D 0x27B5D
+0x743E 0x27B65
+0x743F 0x27B63
+0x7440 0x27B5E
+0x7441 0x27C19
+0x7442 0x27C97
+0x7443 0x27E3F
+0x7444 0x27E33
+0x7445 0x27E32
+0x7446 0x27FA1
+0x7447 0x27FA5
+0x7448 0x27FA4
+0x7449 0x27FA2
+0x744A 0x281C1
+0x744B 0x482C
+0x744C 0x281C7
+0x744D 0x281C4
+0x744E 0x281C6
+0x744F 0x281C5
+0x7450 0x281D4
+0x7451 0x281CA
+0x7452 0x28653
+0x7453 0x288F1
+0x7454 0x28921
+0x7455 0x496E
+0x7456 0x28BB7
+0x7457 0x28B92
+0x7458 0x28DD4
+0x7459 0x28F44
+0x745A 0x29198
+0x745B 0x2919B
+0x745C 0x29191
+0x745D 0x29195
+0x745E 0x2919A
+0x745F 0x29192
+0x7460 0x29353
+0x7461 0x29357
+0x7462 0x4A86
+0x7463-0x7464 0x2935C
+0x7465 0x29364
+0x7466 0x293EA
+0x7467 0x293ED
+0x7468-0x7469 0x29442
+0x746A 0x29564
+0x746B 0x29561
+0x746C 0x29560
+0x746D 0x2967D
+0x746E-0x746F 0x297D4
+0x7470 0x297D9
+0x7471 0x29987
+0x7472 0x29999
+0x7473 0x2998C
+0x7474 0x2998A
+0x7475 0x2998F
+0x7476 0x4BB3
+0x7477 0x2998B
+0x7478 0x29982
+0x7479 0x2999B
+0x747A 0x4BEB
+0x747B 0x29BC8
+0x747C 0x29BC4
+0x747D 0x29BCC
+0x747E 0x29BC7
+0x7521 0x29BC3
+0x7522 0x29BC6
+0x7523 0x29BCB
+0x7524 0x29BCA
+0x7525 0x29BC9
+0x7526 0x29BCD
+0x7527 0x29C53
+0x7528 0x29D21
+0x7529 0x29D29
+0x752A 0x29D1D
+0x752B 0x29D24
+0x752C 0x29D28
+0x752D 0x9C43
+0x752E-0x752F 0x29EB1
+0x7530 0x29EB5
+0x7531 0x29ED6
+0x7532 0x29EAF
+0x7533 0x29ECA
+0x7534 0x29EB8
+0x7535 0x2FA12
+0x7536 0x2FA11
+0x7537 0x2A145
+0x7538 0x2A147
+0x7539 0x2A134
+0x753A 0x2A16E
+0x753B 0x2A142
+0x753C 0x2A131
+0x753D 0x2A12E
+0x753E 0x2A156
+0x753F 0x2A138
+0x7540 0x2A137
+0x7541 0x2A14B
+0x7542 0x2A12D
+0x7543 0x2A133
+0x7544 0x2A136
+0x7545 0x9DE0
+0x7546 0x2A148
+0x7547 0x2A2DC
+0x7548 0x4D42
+0x7549 0x2A366
+0x754A 0x2A36D
+0x754B-0x754C 0x2A363
+0x754D 0x4D41
+0x754E 0x2A367
+0x754F 0x2A3D9
+0x7550 0x2A40B
+0x7551 0x2A47E
+0x7552 0x2A48B
+0x7553 0x2A526
+0x7554 0x2A52C
+0x7555 0x2A529
+0x7556 0x2A56F
+0x7557 0x2A56B
+0x7558-0x7559 0x2A56D
+0x755A 0x2A61C
+0x755B 0x2A611
+0x755C 0x2A610
+0x755D 0x2A624
+0x755E 0x2A612
+0x755F 0x2A615
+0x7560 0x2A617
+0x7561 0x4DAC
+0x7562 0x2046F
+0x7563 0x205AB
+0x7564 0x2082E
+0x7565 0x208C9
+0x7566 0x20B96
+0x7567 0x21185
+0x7568 0x216A0
+0x7569 0x2192B
+0x756A 0x2230D
+0x756B 0x23036
+0x756C 0x29572
+0x756D 0x3B2F
+0x756E 0x3B2E
+0x756F 0x233B1
+0x7570 0x2384A
+0x7571 0x23837
+0x7572 0x2383C
+0x7573 0x23838
+0x7574 0x2383A
+0x7575 0x2383E
+0x7576 0x23849
+0x7577 0x3C4D
+0x7578 0x3C7B
+0x7579 0x23A80
+0x757A 0x23A7F
+0x757B 0x23AE3
+0x757C 0x23C3F
+0x757D 0x24152
+0x757E 0x2414E
+0x7621-0x7622 0x2414A
+0x7623 0x244D5
+0x7624 0x24AD8
+0x7625 0x24B20
+0x7626 0x24BB3
+0x7627 0x24BB1
+0x7628 0x24BB0
+0x7629 0x24F17
+0x762A 0x250D9
+0x762B 0x25349
+0x762C 0x25413
+0x762D 0x255ED
+0x762E 0x255EB
+0x762F 0x255EE
+0x7630-0x7631 0x2590A
+0x7632 0x25A4A
+0x7633 0x25DD5
+0x7634 0x25DD7
+0x7635 0x25DDE
+0x7636 0x25DDC
+0x7637 0x25DEE
+0x7638 0x25F70
+0x7639 0x42B2
+0x763A 0x261D9
+0x763B 0x263D7
+0x763C 0x268CB
+0x763D 0x268C7
+0x763E 0x269FC
+0x763F 0x2713B
+0x7640 0x27139
+0x7641 0x2714B
+0x7642 0x27143
+0x7643 0x27140
+0x7644 0x27146
+0x7645 0x2754D
+0x7646 0x27543
+0x7647 0x27547
+0x7648 0x2754B
+0x7649 0x27555
+0x764A 0x27552
+0x764B 0x27B5F
+0x764C 0x4722
+0x764D 0x27B7C
+0x764E 0x27B7B
+0x764F-0x7650 0x27FA8
+0x7651 0x281DE
+0x7652 0x281D7
+0x7653 0x281DD
+0x7654 0x281D6
+0x7655 0x281D8
+0x7656 0x2829B
+0x7657 0x283E0
+0x7658 0x283E8
+0x7659 0x283E6
+0x765A 0x288F8
+0x765B 0x288FB
+0x765C 0x28BBB
+0x765D 0x9459
+0x765E 0x28BB8
+0x765F 0x4970
+0x7660 0x28CC1
+0x7661 0x28CC0
+0x7662 0x291A4
+0x7663 0x291AB
+0x7664 0x2924D
+0x7665 0x29365
+0x7666 0x29367
+0x7667 0x2936A
+0x7668 0x29366
+0x7669 0x29369
+0x766A 0x29573
+0x766B 0x29580
+0x766C 0x2956F
+0x766D 0x29571
+0x766E 0x297E4
+0x766F-0x7670 0x297E6
+0x7671 0x299A0
+0x7672 0x299A4
+0x7673 0x29AA2
+0x7674 0x29AA7
+0x7675 0x29AA4
+0x7676 0x29BDE
+0x7677 0x29BDB
+0x7678 0x29C58
+0x7679 0x29C5C
+0x767A 0x29D2F
+0x767B 0x29D2E
+0x767C 0x29EDD
+0x767D 0x29EE4
+0x767E 0x29ED8
+0x7721 0x29EE7
+0x7722 0x29EDA
+0x7723 0x29E75
+0x7724 0x4C95
+0x7725 0x2A179
+0x7726 0x2A180
+0x7727 0x2A17F
+0x7728 0x2A17C
+0x7729 0x2A175
+0x772A 0x2A17B
+0x772B 0x2A182
+0x772C 0x4D00
+0x772D 0x2A189
+0x772E 0x2A174
+0x772F 0x2A17D
+0x7730 0x2A17A
+0x7731 0x2A186
+0x7732 0x2A1A8
+0x7733 0x2A172
+0x7734 0x4D02
+0x7735 0x2A18B
+0x7736 0x2A191
+0x7737 0x2A1B3
+0x7738 0x2A181
+0x7739 0x2A282
+0x773A 0x2A2E1
+0x773B 0x2A2E3
+0x773C 0x2A2E2
+0x773D 0x2A376
+0x773E 0x2A374
+0x773F 0x2A372
+0x7740 0x2A375
+0x7741 0x2A40E
+0x7742 0x2A40D
+0x7743 0x2A494
+0x7744-0x7745 0x2A492
+0x7746 0x2A491
+0x7747 0x2A48F
+0x7748 0x2A495
+0x7749 0x2A4D0
+0x774A 0x2A4F7
+0x774B 0x2A576
+0x774C 0x2A5AF
+0x774D 0x4D9F
+0x774E 0x2A626
+0x774F 0x2A625
+0x7750 0x2A62D
+0x7751 0x2A6A0
+0x7752 0x2A6C3
+0x7753 0x204D7
+0x7754 0x20ACC
+0x7755-0x7756 0x21179
+0x7757 0x21515
+0x7758 0x21FDB
+0x7759 0x22185
+0x775A 0x22970
+0x775B 0x2297B
+0x775C 0x22EA5
+0x775D 0x22E9F
+0x775E 0x23317
+0x775F 0x233B2
+0x7760 0x23839
+0x7761 0x23840
+0x7762 0x2384E
+0x7763 0x2393E
+0x7764 0x23AE8
+0x7765 0x23AE7
+0x7766 0x24166
+0x7767 0x24161
+0x7768 0x244DA
+0x7769 0x24714
+0x776A 0x248DF
+0x776B 0x24F18
+0x776C-0x776D 0x25039
+0x776E 0x25730
+0x776F 0x25732
+0x7770 0x2590E
+0x7771 0x25A4C
+0x7772 0x25DE8
+0x7773 0x25DF1
+0x7774-0x7775 0x25DEB
+0x7776 0x25F74
+0x7777 0x25F73
+0x7778 0x261F1
+0x7779 0x26342
+0x777A 0x2633E
+0x777B 0x26341
+0x777C 0x2652C
+0x777D 0x268D2
+0x777E 0x269BB
+0x7821 0x27158
+0x7822 0x27157
+0x7823 0x27156
+0x7824 0x2715A
+0x7825 0x457D
+0x7826 0x27561
+0x7827 0x27568
+0x7828 0x27565
+0x7829 0x2755F
+0x782A 0x27564
+0x782B 0x2755E
+0x782C 0x2755B
+0x782D 0x27567
+0x782E 0x277C3
+0x782F 0x278A2
+0x7830 0x27953
+0x7831 0x27B7D
+0x7832 0x27C20
+0x7833-0x7835 0x27FAE
+0x7836 0x281E7
+0x7837 0x281E6
+0x7838 0x281E9
+0x7839 0x283F1
+0x783A 0x283EB
+0x783B 0x283EA
+0x783C 0x283E9
+0x783D 0x28663
+0x783E 0x28902
+0x783F 0x288FE
+0x7840 0x28BDE
+0x7841 0x28CC2
+0x7842 0x28DE6
+0x7843 0x28F5D
+0x7844 0x291AD
+0x7845 0x29375
+0x7846 0x29372
+0x7847 0x29377
+0x7848 0x4AF6
+0x7849 0x29651
+0x784A 0x297E8
+0x784B-0x784C 0x297ED
+0x784D 0x299B9
+0x784E 0x299A1
+0x784F 0x299B6
+0x7850 0x29AAE
+0x7851 0x29BE8
+0x7852 0x4C12
+0x7853 0x29C1E
+0x7854-0x7855 0x29D31
+0x7856 0x4C91
+0x7857 0x29F0E
+0x7858 0x29F12
+0x7859 0x29F09
+0x785A 0x29F05
+0x785B 0x4C90
+0x785C 0x29F03
+0x785D 0x29F1F
+0x785E 0x29F0D
+0x785F 0x29F0C
+0x7860 0x29F04
+0x7861 0x29F0A
+0x7862 0x2A1C2
+0x7863 0x2A1BF
+0x7864 0x2A1C9
+0x7865 0x2A1B2
+0x7866 0x2A1C1
+0x7867 0x2A1AF
+0x7868 0x2A1B4
+0x7869 0x2A1B0
+0x786A-0x786B 0x2A1B6
+0x786C 0x2A1BB
+0x786D 0x2A1B1
+0x786E 0x2A2F0
+0x786F 0x2A378
+0x7870 0x2A37A
+0x7871 0x2A379
+0x7872 0x2A3E4
+0x7873 0x2A3E6
+0x7874 0x2A49F
+0x7875 0x2A49D
+0x7876-0x7877 0x2A498
+0x7878 0x2A4F9
+0x7879 0x2A530
+0x787A 0x2A582
+0x787B 0x2A581
+0x787C 0x2A5B3
+0x787D 0x2A57F
+0x787E 0x2A63A
+0x7921 0x2A63E
+0x7922 0x2A648
+0x7923 0x21186
+0x7924 0x21936
+0x7925 0x21B13
+0x7926 0x21C22
+0x7927 0x21FDD
+0x7928 0x225A7
+0x7929 0x2297D
+0x792A 0x3A79
+0x792B 0x2331C
+0x792C 0x23865
+0x792D 0x23860
+0x792E 0x23867
+0x792F 0x3C4E
+0x7930 0x23B1A
+0x7931 0x24AE3
+0x7932 0x25734
+0x7933 0x25918
+0x7934 0x25A52
+0x7935 0x25DFC
+0x7936 0x25F79
+0x7937 0x25F78
+0x7938 0x25F76
+0x7939 0x261FA
+0x793A 0x261F8
+0x793B 0x2652D
+0x793C 0x268D6
+0x793D 0x269BD
+0x793E 0x269BF
+0x793F 0x269BE
+0x7940 0x27144
+0x7941 0x27170
+0x7942 0x27162
+0x7943 0x2716E
+0x7944 0x2756E
+0x7945 0x2757C
+0x7946 0x27574
+0x7947 0x27578
+0x7948 0x27570
+0x7949 0x27579
+0x794A 0x27571
+0x794B 0x277CC
+0x794C 0x278A7
+0x794D 0x278A6
+0x794E 0x27B93
+0x794F 0x27C21
+0x7950 0x27C9C
+0x7951 0x2829D
+0x7952 0x283F4
+0x7953 0x283F3
+0x7954 0x28DF0
+0x7955 0x291B8
+0x7956 0x291B6
+0x7957 0x291BD
+0x7958 0x29373
+0x7959 0x29382
+0x795A 0x29587
+0x795B 0x29656
+0x795C 0x29659
+0x795D 0x297F6
+0x795E 0x299C9
+0x795F 0x299C5
+0x7960 0x299C7
+0x7961 0x299CA
+0x7962 0x299C2
+0x7963 0x299C4
+0x7964 0x29BF2
+0x7965 0x29BF0
+0x7966 0x29D3B
+0x7967 0x29D3A
+0x7968 0x29F26
+0x7969 0x29F28
+0x796A 0x29F34
+0x796B 0x29F2D
+0x796C 0x2A1D7
+0x796D 0x2A1D2
+0x796E 0x2A1D6
+0x796F 0x2A1DC
+0x7970 0x2A1D3
+0x7971 0x2A1D1
+0x7972 0x2A286
+0x7973 0x4D1E
+0x7974 0x2A2EF
+0x7975 0x2A2EE
+0x7976 0x2A3E8
+0x7977 0x2A4AC
+0x7978-0x797A 0x2A4A9
+0x797B 0x2A4FB
+0x797C 0x2A533
+0x797D 0x2A588
+0x797E 0x2A5B6
+0x7A21 0x2A5B7
+0x7A22 0x2A5D0
+0x7A23 0x2A5CF
+0x7A24 0x2A64F
+0x7A25 0x2A659
+0x7A26 0x2A64C
+0x7A27 0x21B18
+0x7A28 0x21FE0
+0x7A29 0x23869
+0x7A2A 0x24173
+0x7A2B 0x24172
+0x7A2C 0x24AE8
+0x7A2D 0x255FB
+0x7A2E 0x2591C
+0x7A2F-0x7A30 0x25E09
+0x7A31 0x25E08
+0x7A32 0x25F7D
+0x7A33 0x25F7F
+0x7A34 0x26267
+0x7A35-0x7A36 0x2717A
+0x7A37 0x277D1
+0x7A38 0x4695
+0x7A39 0x27B9D
+0x7A3A 0x27C9D
+0x7A3B 0x281FC
+0x7A3C 0x281FB
+0x7A3D 0x281FD
+0x7A3E-0x7A3F 0x283F5
+0x7A40 0x28C0F
+0x7A41 0x28C1D
+0x7A42 0x291C7
+0x7A43 0x291C1
+0x7A44 0x291BF
+0x7A45 0x29254
+0x7A46 0x2937F
+0x7A47 0x293F5
+0x7A48 0x2958A
+0x7A49 0x2958C
+0x7A4A 0x2965C
+0x7A4B 0x29865
+0x7A4C-0x7A4D 0x299CF
+0x7A4E 0x29AB8
+0x7A4F 0x29BFA
+0x7A50 0x29C66
+0x7A51-0x7A52 0x29F40
+0x7A53 0x9C72
+0x7A54 0x2A1F7
+0x7A55 0x2A1F3
+0x7A56 0x2A1EF
+0x7A57 0x2A1F4
+0x7A58 0x2A1ED
+0x7A59 0x2A1F2
+0x7A5A 0x2A1F1
+0x7A5B 0x2A1F9
+0x7A5C 0x2A4B4
+0x7A5D 0x2A4FC
+0x7A5E 0x2A5BC
+0x7A5F 0x2A65E
+0x7A60 0x2A65B
+0x7A61 0x2A65F
+0x7A62 0x2A65D
+0x7A63 0x2A6CF
+0x7A64 0x2A6CE
+0x7A65 0x2193A
+0x7A66 0x21FE1
+0x7A67 0x22315
+0x7A68 0x22314
+0x7A69-0x7A6A 0x24178
+0x7A6B 0x244E6
+0x7A6C 0x24BB8
+0x7A6D 0x24F22
+0x7A6E 0x255FE
+0x7A6F 0x268DB
+0x7A70 0x26A06
+0x7A71 0x26AC8
+0x7A72 0x27189
+0x7A73 0x27586
+0x7A74 0x278AD
+0x7A75 0x27B99
+0x7A76 0x27BD8
+0x7A77 0x27C23
+0x7A78 0x27D23
+0x7A79 0x27FB5
+0x7A7A 0x283F9
+0x7A7B 0x28907
+0x7A7C 0x28C1E
+0x7A7D 0x28DFB
+0x7A7E 0x28F72
+0x7B21 0x28F73
+0x7B22 0x29387
+0x7B23 0x29449
+0x7B24 0x2965D
+0x7B25 0x297F8
+0x7B26 0x29C03
+0x7B27 0x29F4E
+0x7B28 0x29F4D
+0x7B29 0x29F50
+0x7B2A 0x29F55
+0x7B2B 0x2A209
+0x7B2C 0x2A207
+0x7B2D 0x2A20C
+0x7B2E 0x2A203
+0x7B2F 0x2A206
+0x7B30 0x2A20B
+0x7B31 0x2A20A
+0x7B32 0x2A289
+0x7B33 0x2A4BB
+0x7B34 0x2A4FF
+0x7B35 0x2A536
+0x7B36 0x2A58B
+0x7B37 0x2A666
+0x7B38 0x2A669
+0x7B39 0x2A667
+0x7B3A 0x2A6C2
+0x7B3B 0x2A6D2
+0x7B3C 0x21FE2
+0x7B3D 0x3828
+0x7B3E 0x22988
+0x7B3F 0x2335B
+0x7B40 0x23876
+0x7B41 0x2417D
+0x7B42 0x245A6
+0x7B43 0x2535A
+0x7B44 0x25E17
+0x7B45 0x268DC
+0x7B46 0x2718F
+0x7B47-0x7B48 0x27594
+0x7B49 0x27FB6
+0x7B4A 0x28204
+0x7B4B 0x287EE
+0x7B4C 0x2938A
+0x7B4D 0x293F9
+0x7B4E 0x29C07
+0x7B4F 0x29C1F
+0x7B50 0x29C2A
+0x7B51 0x29D45
+0x7B52 0x29F5C
+0x7B53 0x29F5B
+0x7B54 0x29F61
+0x7B55 0x29F5D
+0x7B56 0x2A218
+0x7B57 0x2A21F
+0x7B58 0x2A383
+0x7B59 0x2A416
+0x7B5A 0x2A414
+0x7B5B-0x7B5C 0x2A4BF
+0x7B5D 0x2A673
+0x7B5E 0x2A6C0
+0x7B5F 0x21517
+0x7B60 0x22989
+0x7B61-0x7B62 0x2591E
+0x7B63 0x25A54
+0x7B64 0x25E18
+0x7B65 0x26205
+0x7B66 0x27195
+0x7B67 0x27598
+0x7B68 0x2759B
+0x7B69 0x27959
+0x7B6A 0x28208
+0x7B6B 0x28401
+0x7B6C 0x291CE
+0x7B6D 0x293FA
+0x7B6E 0x29ABE
+0x7B6F 0x29D47
+0x7B70 0x29F6A
+0x7B71 0x29F69
+0x7B72 0x29F68
+0x7B73 0x29F67
+0x7B74 0x2A225
+0x7B75 0x2A228
+0x7B76 0x2A4C4
+0x7B77 0x2A537
+0x7B78 0x2A58D
+0x7B79 0x2A58C
+0x7B7A 0x4D91
+0x7B7B 0x2F920
+0x7B7C 0x25E22
+0x7B7D 0x25F82
+0x7B7E 0x277D9
+0x7C21 0x28C38
+0x7C22 0x293FB
+0x7C23 0x299E1
+0x7C24 0x29C72
+0x7C25 0x29D48
+0x7C26 0x29F6C
+0x7C27 0x29F70
+0x7C28 0x2A231
+0x7C29 0x2A230
+0x7C2A 0x2A679
+0x7C2B 0x25E23
+0x7C2C 0x268F8
+0x7C2D 0x29C74
+0x7C2E 0x29F73
+0x7C2F 0x2A234
+0x7C30 0x2A387
+0x7C31 0x2A3B2
+0x7C32 0x2A5C2
+0x7C33 0x2A67D
+0x7C34 0x21FE5
+0x7C35 0x2938C
+0x7C36 0x29F77
+0x7C37 0x29F75
+0x7C38 0x2A238
+0x7C39 0x2A23A
+0x7C3A 0x2A683
+0x7C3B 0x2A681
+0x7C3C 0x24180
+0x7C3D 0x27199
+0x7C3E 0x4587
+0x7C3F 0x2944A
+0x7C40 0x29D4A
+0x7C41 0x2A23C
+0x7C42 0x2A6C8
+0x7C43 0x25604
+0x7C44 0x278AF
+0x7C45 0x2A689
+0x7C46 0x2A2FA
+0x7C47 0x29661
+0x7C48 0x2A23F
+0x7C49 0x27193
+0x7C4A 0x2A4C9
+0x7C4B 0x277DE
+0x7C4C 0x29391
+0x7C4D 0x2A68E
+0x7C4E 0x2A68D
+0x7C4F 0x27198
+0x7C50 0x269C5
+0x7C51 0x2A6A5
diff --git a/etc/charsets/CNS-6.map b/etc/charsets/CNS-6.map
new file mode 100644 (file)
index 0000000..2a25ae2
--- /dev/null
@@ -0,0 +1,6025 @@
+# Generated from data at http://sourceforge.net/cvs/?group_id=26261
+0x2121 0x2F802
+0x2122 0x20062
+0x2123 0x3405
+0x2124 0x20088
+0x2125 0x200D0
+0x2126 0x200CF
+0x2127-0x2129 0x2011E
+0x212A 0x2090E
+0x212B 0x2092C
+0x212C 0x20061
+0x212D-0x212E 0x20004
+0x212F 0x20003
+0x2130 0x3404
+0x2131 0x2F801
+0x2132 0x2007D
+0x2133 0x2008D
+0x2134-0x2135 0x201A3
+0x2136 0x204DB
+0x2137 0x20500
+0x2138 0x2F81E
+0x2139 0x206A3
+0x213A 0x20832
+0x213B 0x353F
+0x213C-0x213D 0x20AD4
+0x213E 0x21C23
+0x213F 0x2232C
+0x2140 0x2237A
+0x2141 0x20503
+0x2142-0x2143 0x20007
+0x2144 0x2008F
+0x2145 0x2009C
+0x2146 0x200D5
+0x2147-0x2149 0x20112
+0x214A 0x20121
+0x214B 0x201A8
+0x214C 0x201A6
+0x214D 0x20476
+0x214E 0x20501
+0x214F 0x2053D
+0x2150 0x2F814
+0x2151 0x2053E
+0x2152 0x20629
+0x2153-0x2154 0x20677
+0x2155 0x206A6
+0x2156 0x206A9
+0x2157 0x206AC
+0x2158 0x20834
+0x2159 0x20504
+0x215A 0x2097B
+0x215B 0x20A10
+0x215C 0x2062F
+0x215D 0x20AD7
+0x215E 0x20B1C
+0x215F 0x20B1F
+0x2160 0x20B1A
+0x2161 0x2F836
+0x2162 0x20B1E
+0x2163 0x20B9E
+0x2164 0x20B9A
+0x2165-0x2166 0x211A0
+0x2167-0x2168 0x215D2
+0x2169 0x219B9
+0x216A 0x21B1D
+0x216B 0x21B55
+0x216C 0x21CFF
+0x216D 0x21FE7
+0x216E 0x382A
+0x216F 0x22011
+0x2170 0x22013
+0x2171 0x22012
+0x2172 0x221AF
+0x2173 0x221B1
+0x2174 0x2F890
+0x2175 0x2232D
+0x2176 0x2237B
+0x2177 0x2239D
+0x2178 0x2239A
+0x2179 0x38A7
+0x217A-0x217B 0x2239F
+0x217C 0x2239C
+0x217D 0x224BD
+0x217E 0x38FA
+0x2221 0x225AA
+0x2222 0x2306C
+0x2223 0x23091
+0x2224 0x23C74
+0x2225 0x2456A
+0x2226 0x2F929
+0x2227 0x25605
+0x2228 0x2626B
+0x2229 0x2626A
+0x222A 0x200E0
+0x222B 0x20012
+0x222C 0x3400
+0x222D 0x2007F
+0x222E 0x200A0
+0x222F 0x20099
+0x2230 0x20095
+0x2231 0x2009E
+0x2232 0x200DF
+0x2233 0x200DE
+0x2234 0x201AF
+0x2235 0x201AD
+0x2236 0x201B0
+0x2237 0x204DF
+0x2238 0x20543
+0x2239 0x20541
+0x223A 0x20548
+0x223B 0x20575
+0x223C 0x2F81A
+0x223D 0x20632
+0x223E 0x2067B
+0x223F 0x20679
+0x2240 0x206B3
+0x2241 0x34DB
+0x2242 0x20BA7
+0x2243 0x206B2
+0x2244 0x206B0
+0x2245 0x206B4
+0x2246 0x2F829
+0x2247-0x2248 0x208CD
+0x2249 0x2F82B
+0x224A 0x20910
+0x224B 0x20980
+0x224C 0x209D3
+0x224D 0x20A30
+0x224E 0x20098
+0x224F 0x20A2F
+0x2250 0x20A31
+0x2251 0x20ADA
+0x2252 0x20AD9
+0x2253-0x2254 0x20B27
+0x2255 0x20B21
+0x2256 0x20B25
+0x2257 0x20BA6
+0x2258 0x20BA2
+0x2259 0x20BA1
+0x225A 0x20BA4
+0x225B 0x2F839
+0x225C 0x20BAA
+0x225D 0x20BA5
+0x225E 0x20BA3
+0x225F 0x20064
+0x2260 0x2123F
+0x2261 0x21244
+0x2262 0x2151B
+0x2263 0x21553
+0x2264 0x21584
+0x2265 0x21586
+0x2266 0x215D5
+0x2267 0x2F860
+0x2268 0x2193E
+0x2269 0x21940
+0x226A 0x21BCA
+0x226B 0x21BC9
+0x226C 0x21C26
+0x226D 0x21D00
+0x226E 0x21D31
+0x226F 0x21D3C
+0x2270 0x21D30
+0x2271 0x21D33
+0x2272 0x21D32
+0x2273 0x21D38
+0x2274 0x22034
+0x2275-0x2276 0x22053
+0x2277 0x221B4
+0x2278 0x221B2
+0x2279 0x2232F
+0x227A 0x223A5
+0x227B 0x223A7
+0x227C 0x223A4
+0x227D-0x227E 0x223A8
+0x2321-0x2322 0x223A2
+0x2323 0x223A6
+0x2324 0x22481
+0x2325 0x22480
+0x2326 0x225AD
+0x2327 0x22A24
+0x2328 0x22A65
+0x2329-0x232A 0x22A68
+0x232B 0x2313C
+0x232C 0x2313B
+0x232D 0x2335D
+0x232E 0x23944
+0x232F 0x24182
+0x2330 0x244F1
+0x2331 0x2456B
+0x2332 0x2471B
+0x2333 0x248EB
+0x2334 0x24BBA
+0x2335 0x24BD3
+0x2336 0x24D13
+0x2337 0x25922
+0x2338 0x26AF4
+0x2339-0x233A 0x2820F
+0x233B 0x20507
+0x233C 0x29C0B
+0x233D 0x29C0A
+0x233E-0x233F 0x20019
+0x2340 0x20018
+0x2341 0x20066
+0x2342 0x20082
+0x2343 0x200A8
+0x2344 0x200E5
+0x2345 0x200E7
+0x2346 0x200E4
+0x2347 0x20115
+0x2348-0x2349 0x20123
+0x234A 0x20143
+0x234B 0x201C3
+0x234C 0x201BC
+0x234D 0x201BB
+0x234E 0x3438
+0x234F 0x201B7
+0x2350 0x201B9
+0x2351 0x201CF
+0x2352 0x2F80D
+0x2353-0x2354 0x2047A
+0x2355 0x204E1
+0x2356 0x204E0
+0x2357 0x20509
+0x2358 0x2054D
+0x2359 0x2F816
+0x235A 0x2054B
+0x235B 0x20579
+0x235C 0x205B1
+0x235D 0x20636
+0x235E 0x20635
+0x235F-0x2360 0x20637
+0x2361-0x2363 0x2067F
+0x2364 0x26953
+0x2365 0x2067E
+0x2366 0x206CD
+0x2367 0x206BF
+0x2368 0x206BE
+0x2369 0x206C2
+0x236A 0x206B8
+0x236B 0x206C1
+0x236C 0x6530
+0x236D 0x20931
+0x236E 0x2092F
+0x236F 0x2096F
+0x2370 0x20982
+0x2371 0x353A
+0x2372 0x20987
+0x2373 0x20986
+0x2374 0x2098D
+0x2375 0x20994
+0x2376 0x209D7
+0x2377 0x209D4
+0x2378 0x209D8
+0x2379 0x20A16
+0x237A 0x20A14
+0x237B 0x20A2E
+0x237C-0x237D 0x20A36
+0x237E 0x21FEE
+0x2421 0x20AE0
+0x2422 0x20AE5
+0x2423 0x20ADF
+0x2424 0x20B2B
+0x2425 0x20B29
+0x2426 0x20B2D
+0x2427 0x20B2F
+0x2428 0x20BB7
+0x2429 0x20BC9
+0x242A 0x20BC1
+0x242B 0x20BCA
+0x242C 0x20BB2
+0x242D 0x20BAC
+0x242E 0x20BAE
+0x242F 0x211B2
+0x2430 0x211A8
+0x2431 0x211B0
+0x2432 0x211A7
+0x2433 0x2F851
+0x2434 0x21252
+0x2435 0x2124A
+0x2436 0x21556
+0x2437 0x21555
+0x2438 0x2155F
+0x2439 0x2155E
+0x243A 0x21588
+0x243B 0x2F85D
+0x243C 0x215DD
+0x243D 0x215E2
+0x243E 0x215E1
+0x243F-0x2440 0x215DF
+0x2441 0x216AF
+0x2442 0x216B1
+0x2443 0x216BA
+0x2444 0x21945
+0x2445 0x21943
+0x2446 0x219BD
+0x2447 0x219C8
+0x2448 0x2F86C
+0x2449-0x244A 0x219BE
+0x244B 0x2F874
+0x244C 0x21B59
+0x244D 0x21C29
+0x244E 0x21C2C
+0x244F 0x21C2F
+0x2450-0x2451 0x21C2D
+0x2452 0x21D04
+0x2453 0x21D02
+0x2454 0x21D01
+0x2455 0x21D40
+0x2456 0x21D4A
+0x2457 0x21D3F
+0x2458 0x21D4F
+0x2459 0x21D41
+0x245A 0x21D4E
+0x245B-0x245C 0x21FEB
+0x245D 0x200AC
+0x245E 0x2205B
+0x245F 0x22063
+0x2460 0x2205A
+0x2461 0x22059
+0x2462 0x221DC
+0x2463 0x221DB
+0x2464 0x221D9
+0x2465 0x221E0
+0x2466 0x221DD
+0x2467 0x20020
+0x2468-0x246A 0x223B0
+0x246B 0x223B6
+0x246C-0x246D 0x22451
+0x246E 0x22450
+0x246F 0x22484
+0x2470 0x38C9
+0x2471 0x22483
+0x2472 0x225C3
+0x2473-0x2474 0x225B8
+0x2475 0x225B2
+0x2476 0x22990
+0x2477 0x22A26
+0x2478 0x22A29
+0x2479 0x22A6E
+0x247A 0x23140
+0x247B 0x2313E
+0x247C 0x23141
+0x247D 0x2335E
+0x247E 0x233BB
+0x2521 0x233BC
+0x2522 0x233B9
+0x2523 0x2F8EF
+0x2524 0x23880
+0x2525 0x3C4F
+0x2526 0x23945
+0x2527 0x239BA
+0x2528 0x239BD
+0x2529 0x23C56
+0x252A 0x23C55
+0x252B 0x23C75
+0x252C 0x23C77
+0x252D 0x23C81
+0x252E 0x2F8FA
+0x252F 0x23C83
+0x2530 0x23C8B
+0x2531 0x23C84
+0x2532 0x24186
+0x2533 0x24183
+0x2534 0x2418B
+0x2535 0x2456D
+0x2536 0x24616
+0x2537 0x24728
+0x2538 0x248EA
+0x2539 0x24BD4
+0x253A 0x24C03
+0x253B 0x24D15
+0x253C-0x253D 0x24F3D
+0x253E 0x25416
+0x253F 0x2F94C
+0x2540 0x25606
+0x2541 0x2574D
+0x2542 0x26222
+0x2543 0x26273
+0x2544-0x2545 0x2626D
+0x2546 0x264B1
+0x2547 0x2054E
+0x2548 0x2662D
+0x2549 0x43CD
+0x254A 0x268F9
+0x254B 0x26952
+0x254C 0x26B00
+0x254D 0x26AFC
+0x254E 0x26AFA
+0x254F 0x4492
+0x2550-0x2551 0x26AF7
+0x2552 0x2F990
+0x2553 0x2F9C4
+0x2554 0x27C27
+0x2555 0x28211
+0x2556 0x200AE
+0x2557 0x28450
+0x2558 0x2844F
+0x2559 0x2844D
+0x255A 0x28671
+0x255B 0x2F9E2
+0x255C 0x28672
+0x255D 0x28E18
+0x255E 0x20A44
+0x255F 0x20021
+0x2560 0x20067
+0x2561-0x2562 0x200AF
+0x2563 0x20029
+0x2564 0x20117
+0x2565 0x20122
+0x2566 0x2F803
+0x2567 0x20025
+0x2568 0x20128
+0x2569 0x201FF
+0x256A 0x201D9
+0x256B 0x201DB
+0x256C 0x201DE
+0x256D 0x201F2
+0x256E 0x201FE
+0x256F 0x201F4
+0x2570 0x201DD
+0x2571 0x3445
+0x2572 0x2F804
+0x2573 0x20201
+0x2574 0x201DC
+0x2575 0x2047D
+0x2576 0x20481
+0x2577-0x2578 0x2047E
+0x2579 0x204E5
+0x257A 0x2050F
+0x257B 0x34B5
+0x257C 0x2050A
+0x257D 0x34B6
+0x257E 0x2050B
+0x2621-0x2622 0x20551
+0x2623 0x20550
+0x2624 0x205B8
+0x2625-0x2626 0x2063D
+0x2627 0x2063C
+0x2628 0x20687
+0x2629 0x206D7
+0x262A 0x206DB
+0x262B 0x206CF
+0x262C 0x206E0
+0x262D 0x2084C
+0x262E 0x20842
+0x262F 0x208D4
+0x2630 0x20911
+0x2631-0x2632 0x20914
+0x2633 0x20912
+0x2634 0x20933
+0x2635 0x20935
+0x2636 0x3537
+0x2637 0x20971
+0x2638 0x3530
+0x2639 0x20991
+0x263A 0x20993
+0x263B 0x20995
+0x263C 0x209DC
+0x263D 0x20A42
+0x263E 0x20A40
+0x263F 0x253A6
+0x2640 0x20AE6
+0x2641 0x2128F
+0x2642 0x20B32
+0x2643 0x2F837
+0x2644 0x20B31
+0x2645 0x20BF5
+0x2646 0x20BCD
+0x2647 0x20BDE
+0x2648 0x20BD5
+0x2649 0x20BDA
+0x264A 0x20BEE
+0x264B 0x20BEC
+0x264C 0x20BCF
+0x264D 0x20BCE
+0x264E 0x2F83D
+0x264F 0x20BCC
+0x2650 0x20BF3
+0x2651 0x211C1
+0x2652 0x211C4
+0x2653 0x211C6
+0x2654 0x211B4
+0x2655 0x211C3
+0x2656 0x211B8
+0x2657 0x211BB
+0x2658 0x211B7
+0x2659 0x211BC
+0x265A 0x211BF
+0x265B 0x211C7
+0x265C 0x211BE
+0x265D 0x21260
+0x265E 0x2125D
+0x265F 0x21276
+0x2660 0x2126C
+0x2661 0x21275
+0x2662 0x2125B
+0x2663 0x21271
+0x2664 0x21273
+0x2665 0x21261
+0x2666 0x2125A
+0x2667 0x21262
+0x2668 0x21272
+0x2669 0x2125F
+0x266A 0x21258
+0x266B 0x2151E
+0x266C 0x21558
+0x266D 0x2158B
+0x266E 0x2158A
+0x266F 0x215F4
+0x2670 0x215F0
+0x2671 0x216D2
+0x2672-0x2673 0x216CD
+0x2674 0x216BC
+0x2675 0x216D0
+0x2676-0x2677 0x21946
+0x2678 0x373E
+0x2679 0x374D
+0x267A 0x3751
+0x267B-0x267C 0x219CE
+0x267D 0x219CC
+0x267E 0x219CB
+0x2721 0x2F872
+0x2722 0x21B60
+0x2723 0x21B5F
+0x2724 0x21B5D
+0x2725 0x21BD4
+0x2726 0x21C3A
+0x2727 0x21C38
+0x2728 0x21C3C
+0x2729 0x21C36
+0x272A 0x21D08
+0x272B 0x21D7E
+0x272C 0x21D5E
+0x272D 0x21D6E
+0x272E 0x21D53
+0x272F 0x21D70
+0x2730 0x21D57
+0x2731 0x21D5D
+0x2732 0x21D63
+0x2733 0x21D7A
+0x2734 0x21D79
+0x2735 0x21D93
+0x2736 0x2F881
+0x2737 0x2201D
+0x2738 0x22068
+0x2739-0x273A 0x22073
+0x273B 0x22066
+0x273C 0x2206F
+0x273D 0x22075
+0x273E 0x2207A
+0x273F 0x22070
+0x2740 0x2206D
+0x2741 0x22065
+0x2742 0x2218A
+0x2743 0x221ED
+0x2744 0x221E9
+0x2745 0x221E3
+0x2746 0x221EF
+0x2747 0x3873
+0x2748 0x221EA
+0x2749 0x22331
+0x274A 0x2F891
+0x274B 0x22338
+0x274C 0x26B20
+0x274D 0x22335
+0x274E 0x2233A
+0x274F 0x22381
+0x2750 0x22380
+0x2751 0x223B8
+0x2752 0x223C1
+0x2753 0x223BA
+0x2754 0x22488
+0x2755 0x224CF
+0x2756 0x224CA
+0x2757 0x224C7
+0x2758 0x224C5
+0x2759 0x224C8
+0x275A 0x224D0
+0x275B 0x224C9
+0x275C 0x225BB
+0x275D 0x225B6
+0x275E 0x225BD
+0x275F 0x2F89D
+0x2760 0x225B4
+0x2761 0x225C1
+0x2762-0x2763 0x225D1
+0x2764 0x225CC
+0x2765 0x225D4
+0x2766 0x225CB
+0x2767 0x225CE
+0x2768 0x225D5
+0x2769 0x225D8
+0x276A 0x22995
+0x276B 0x22993
+0x276C 0x22999
+0x276D 0x22996
+0x276E 0x39BE
+0x276F 0x22A89
+0x2770 0x22A94
+0x2771 0x22A91
+0x2772 0x22A8F
+0x2773 0x22A84
+0x2774 0x22A97
+0x2775 0x22A86
+0x2776 0x22A85
+0x2777 0x22A8C
+0x2778 0x22EF2
+0x2779 0x22EED
+0x277A 0x22EEF
+0x277B 0x230D9
+0x277C-0x277D 0x23146
+0x277E 0x2314B
+0x2821 0x23150
+0x2822 0x2314A
+0x2823 0x2314E
+0x2824 0x2314C
+0x2825 0x23148
+0x2826 0x23363
+0x2827-0x2828 0x23361
+0x2829 0x23360
+0x282A 0x233C3
+0x282B 0x233C5
+0x282C 0x233C1
+0x282D 0x233D0
+0x282E 0x2F8DC
+0x282F 0x23882
+0x2830 0x3C1E
+0x2831 0x23886
+0x2832 0x23884
+0x2833 0x2394C
+0x2834 0x23948
+0x2835 0x239B8
+0x2836 0x239BF
+0x2837 0x239C1
+0x2838 0x239C6
+0x2839 0x239C5
+0x283A 0x239C7
+0x283B 0x239C0
+0x283C 0x239C3
+0x283D 0x23AED
+0x283E 0x23B03
+0x283F 0x23B22
+0x2840 0x23B21
+0x2841 0x23C9F
+0x2842 0x23C90
+0x2843 0x23C9E
+0x2844 0x3CC8
+0x2845 0x23CA0
+0x2846-0x2847 0x23C94
+0x2848 0x23CA1
+0x2849 0x3CC3
+0x284A 0x3CC7
+0x284B 0x2419A
+0x284C 0x24190
+0x284D-0x284E 0x244F2
+0x284F 0x2456E
+0x2850 0x245AB
+0x2851 0x245A9
+0x2852 0x2461A
+0x2853 0x24618
+0x2854 0x2461B
+0x2855 0x24760
+0x2856 0x2474C
+0x2857 0x24742
+0x2858 0x24733
+0x2859 0x2473F
+0x285A 0x2473E
+0x285B 0x24738
+0x285C 0x24743
+0x285D 0x24746
+0x285E 0x24736
+0x285F 0x248EE
+0x2860 0x248F5
+0x2861 0x248F4
+0x2862 0x3F56
+0x2863 0x24C1B
+0x2864 0x3540
+0x2865 0x24D2B
+0x2866-0x2867 0x24D29
+0x2868 0x24D2E
+0x2869 0x2503F
+0x286A 0x250E6
+0x286B-0x286C 0x253A7
+0x286D 0x25418
+0x286E 0x25608
+0x286F 0x25750
+0x2870 0x25753
+0x2871 0x25A56
+0x2872 0x25A55
+0x2873 0x2626F
+0x2874 0x2627F
+0x2875 0x264B3
+0x2876 0x2663A
+0x2877 0x26638
+0x2878 0x26637
+0x2879 0x26636
+0x287A 0x20554
+0x287B 0x2F980
+0x287C 0x268DD
+0x287D 0x268FC
+0x287E 0x268FA
+0x2921 0x26933
+0x2922 0x26B04
+0x2923-0x2924 0x26B07
+0x2925 0x26B06
+0x2926 0x26B09
+0x2927 0x2F991
+0x2928 0x2F993
+0x2929 0x2721E
+0x292A 0x2F9D2
+0x292B 0x2840B
+0x292C 0x28443
+0x292D 0x28452
+0x292E 0x28458
+0x292F 0x2845E
+0x2930 0x28668
+0x2931 0x2868D
+0x2932 0x28682
+0x2933 0x2867B
+0x2934 0x28C58
+0x2935 0x49BD
+0x2936 0x2F800
+0x2937 0x2002C
+0x2938 0x2002E
+0x2939 0x2160B
+0x293A 0x2002D
+0x293B 0x20069
+0x293C 0x200B2
+0x293D 0x200B6
+0x293E 0x200A9
+0x293F 0x200ED
+0x2940 0x20119
+0x2941 0x2014F
+0x2942 0x20216
+0x2943 0x20203
+0x2944 0x2020E
+0x2945 0x20204
+0x2946 0x20207
+0x2947 0x20210
+0x2948-0x2949 0x20227
+0x294A 0x2020D
+0x294B 0x20229
+0x294C 0x2020F
+0x294D 0x20222
+0x294E 0x20211
+0x294F 0x20485
+0x2950 0x20484
+0x2951 0x20483
+0x2952 0x2048A
+0x2953 0x20486
+0x2954 0x20510
+0x2955 0x20558
+0x2956 0x2055A
+0x2957 0x2070C
+0x2958-0x2959 0x205C4
+0x295A 0x20647
+0x295B-0x295D 0x20649
+0x295E 0x221BB
+0x295F 0x2068D
+0x2960 0x2068B
+0x2961 0x20707
+0x2962 0x20706
+0x2963 0x2F820
+0x2964-0x2965 0x206EF
+0x2966 0x206ED
+0x2967 0x206F9
+0x2968 0x20702
+0x2969 0x206E7
+0x296A 0x206F4
+0x296B 0x206F7
+0x296C 0x206F1
+0x296D 0x20853
+0x296E 0x20855
+0x296F 0x351A
+0x2970 0x208DA
+0x2971 0x208D9
+0x2972 0x352C
+0x2973 0x20938
+0x2974 0x20999
+0x2975 0x209A2
+0x2976 0x2099C
+0x2977-0x2978 0x2099A
+0x2979 0x209E5
+0x297A 0x209E3
+0x297B 0x209E1
+0x297C 0x209E0
+0x297D 0x209E2
+0x297E 0x209E4
+0x2A21 0x5365
+0x2A22 0x209E8
+0x2A23 0x2F82F
+0x2A24 0x20A13
+0x2A25 0x20A56
+0x2A26 0x20A4B
+0x2A27 0x20A4A
+0x2A28 0x20A4D
+0x2A29 0x20A4C
+0x2A2A 0x3549
+0x2A2B 0x20AEA
+0x2A2C 0x20AE9
+0x2A2D-0x2A2E 0x20AEB
+0x2A2F 0x20B3A
+0x2A30 0x20B3C
+0x2A31 0x20B39
+0x2A32 0x20B3B
+0x2A33 0x20C14
+0x2A34 0x20C0E
+0x2A35 0x20C35
+0x2A36 0x20C0A
+0x2A37 0x20C3F
+0x2A38 0x20C38
+0x2A39 0x357C
+0x2A3A 0x20C4E
+0x2A3B 0x20C17
+0x2A3C 0x2F83F
+0x2A3D 0x20C1E
+0x2A3E 0x211B6
+0x2A3F 0x211CE
+0x2A40-0x2A42 0x211CA
+0x2A43 0x211C9
+0x2A44 0x212B4
+0x2A45 0x212AC
+0x2A46 0x21288
+0x2A47 0x21286
+0x2A48 0x2128C
+0x2A49 0x21293
+0x2A4A 0x2128A
+0x2A4B 0x212A4
+0x2A4C 0x21287
+0x2A4D-0x2A4E 0x212A5
+0x2A4F 0x21285
+0x2A50 0x212A3
+0x2A51 0x2128E
+0x2A52 0x2151F
+0x2A53 0x21563
+0x2A54 0x2158D
+0x2A55-0x2A56 0x215FA
+0x2A57 0x21609
+0x2A58-0x2A59 0x215FE
+0x2A5A 0x21602
+0x2A5B 0x21604
+0x2A5C 0x215FD
+0x2A5D 0x21605
+0x2A5E 0x216F9
+0x2A5F 0x216F7
+0x2A60 0x216DB
+0x2A61 0x216DA
+0x2A62 0x21951
+0x2A63 0x21950
+0x2A64 0x21957
+0x2A65 0x219E2
+0x2A66 0x219D8
+0x2A67 0x219DA
+0x2A68 0x219DC
+0x2A69 0x21B20
+0x2A6A 0x21B1F
+0x2A6B 0x21B69
+0x2A6C 0x21BDD
+0x2A6D-0x2A6E 0x21C40
+0x2A6F 0x21C43
+0x2A70 0x21D0D
+0x2A71 0x21D0C
+0x2A72 0x21D87
+0x2A73 0x21DA9
+0x2A74 0x21D92
+0x2A75 0x21D85
+0x2A76 0x37BF
+0x2A77 0x21D8C
+0x2A78 0x21DA2
+0x2A79 0x21D8F
+0x2A7A 0x21D8A
+0x2A7B 0x37BA
+0x2A7C 0x21D8D
+0x2A7D 0x21FF1
+0x2A7E 0x22037
+0x2B21 0x2208B
+0x2B22 0x22087
+0x2B23 0x22082
+0x2B24 0x2218E
+0x2B25 0x221BC
+0x2B26 0x221F8
+0x2B27 0x221FA
+0x2B28 0x221EB
+0x2B29 0x221F9
+0x2B2A 0x221FC
+0x2B2B 0x22205
+0x2B2C 0x2231B
+0x2B2D-0x2B2E 0x2231D
+0x2B2F 0x2F892
+0x2B30 0x2233C
+0x2B31 0x2233E
+0x2B32 0x22384
+0x2B33-0x2B34 0x223C8
+0x2B35 0x223D3
+0x2B36 0x223C7
+0x2B37 0x223D2
+0x2B38 0x22455
+0x2B39 0x2F896
+0x2B3A 0x2248C
+0x2B3B 0x2248A
+0x2B3C 0x224D5
+0x2B3D 0x224D3
+0x2B3E 0x38D8
+0x2B3F 0x224D8
+0x2B40 0x225D0
+0x2B41 0x225EE
+0x2B42 0x225F1
+0x2B43 0x225FB
+0x2B44 0x225D3
+0x2B45 0x225EC
+0x2B46 0x225CD
+0x2B47 0x22615
+0x2B48 0x22626
+0x2B49 0x2260E
+0x2B4A 0x22627
+0x2B4B 0x2262A
+0x2B4C 0x22600
+0x2B4D 0x22604
+0x2B4E 0x22628
+0x2B4F 0x22608
+0x2B50 0x22614
+0x2B51 0x2299B
+0x2B52 0x39B2
+0x2B53 0x229A1
+0x2B54 0x2299D
+0x2B55 0x229A0
+0x2B56 0x2299E
+0x2B57 0x229A2
+0x2B58 0x2299C
+0x2B59 0x22A32
+0x2B5A 0x22A34
+0x2B5B 0x22A93
+0x2B5C 0x22A96
+0x2B5D 0x22A90
+0x2B5E-0x2B5F 0x22AB4
+0x2B60 0x2F8B6
+0x2B61 0x22AB6
+0x2B62 0x22AC2
+0x2B63 0x2F8B5
+0x2B64 0x22ABA
+0x2B65 0x22A92
+0x2B66 0x22EFB
+0x2B67 0x22F05
+0x2B68 0x22EF3
+0x2B69 0x22EFE
+0x2B6A 0x22EFD
+0x2B6B 0x2455D
+0x2B6C 0x22EFA
+0x2B6D 0x23043
+0x2B6E 0x23095
+0x2B6F 0x23094
+0x2B70 0x3AC4
+0x2B71 0x2316F
+0x2B72 0x23173
+0x2B73 0x2315C
+0x2B74 0x2315B
+0x2B75 0x23166
+0x2B76 0x23174
+0x2B77 0x23163
+0x2B78 0x23167
+0x2B79 0x23160
+0x2B7A 0x23162
+0x2B7B-0x2B7C 0x23171
+0x2B7D 0x2315E
+0x2B7E 0x23323
+0x2C21 0x23326
+0x2C22 0x23364
+0x2C23 0x2F8D6
+0x2C24 0x233F2
+0x2C25 0x23401
+0x2C26 0x233DD
+0x2C27 0x233DC
+0x2C28 0x233DB
+0x2C29 0x233F3
+0x2C2A 0x233FD
+0x2C2B 0x233D8
+0x2C2C 0x233F8
+0x2C2D 0x233FB
+0x2C2E 0x23883
+0x2C2F 0x2388C
+0x2C30 0x2388E
+0x2C31 0x23949
+0x2C32 0x23954
+0x2C33 0x23952
+0x2C34 0x2394E
+0x2C35 0x23958
+0x2C36 0x23951
+0x2C37 0x23955
+0x2C38 0x23953
+0x2C39 0x23957
+0x2C3A 0x23950
+0x2C3B 0x2394F
+0x2C3C 0x2394D
+0x2C3D-0x2C3E 0x239D2
+0x2C3F 0x239C9
+0x2C40 0x239D4
+0x2C41 0x23AEF
+0x2C42 0x2F8F8
+0x2C43 0x200B1
+0x2C44 0x23B05
+0x2C45 0x23B04
+0x2C46 0x23B2E
+0x2C47 0x23B2D
+0x2C48 0x23C45
+0x2C49 0x23C5B
+0x2C4A 0x23C5A
+0x2C4B 0x23C59
+0x2C4C 0x23C9D
+0x2C4D 0x23C8E
+0x2C4E 0x23CBC
+0x2C4F 0x23CDD
+0x2C50 0x23CBA
+0x2C51 0x2F8FD
+0x2C52 0x23CD8
+0x2C53 0x23CCB
+0x2C54-0x2C55 0x23CD9
+0x2C56 0x23CC4
+0x2C57 0x23CB8
+0x2C58 0x23CBF
+0x2C59 0x23CDB
+0x2C5A 0x23CC1
+0x2C5B 0x2F8FC
+0x2C5C 0x23CC5
+0x2C5D 0x2F919
+0x2C5E 0x241B1
+0x2C5F 0x241AF
+0x2C60 0x2F918
+0x2C61 0x244F7
+0x2C62 0x244F6
+0x2C63 0x244F8
+0x2C64-0x2C65 0x24550
+0x2C66 0x24571
+0x2C67 0x24570
+0x2C68 0x245B0
+0x2C69 0x245AF
+0x2C6A 0x245AE
+0x2C6B 0x245AD
+0x2C6C 0x24625
+0x2C6D 0x2462C
+0x2C6E 0x24622
+0x2C6F-0x2C70 0x24633
+0x2C71 0x3E2B
+0x2C72 0x2473A
+0x2C73 0x24740
+0x2C74 0x24768
+0x2C75 0x3E61
+0x2C76 0x24764
+0x2C77 0x2475C
+0x2C78 0x24757
+0x2C79 0x24753
+0x2C7A 0x2474F
+0x2C7B 0x24751
+0x2C7C 0x24754
+0x2C7D 0x24766
+0x2C7E 0x72DD
+0x2D21 0x3EB2
+0x2D22 0x2490D
+0x2D23 0x24908
+0x2D24 0x2F92B
+0x2D25 0x248FA
+0x2D26 0x24AEA
+0x2D27 0x24B2A
+0x2D28 0x24BBB
+0x2D29 0x24BD5
+0x2D2A 0x24BD7
+0x2D2B 0x21DA4
+0x2D2C 0x200F0
+0x2D2D 0x200B5
+0x2D2E 0x24C06
+0x2D2F 0x24C28
+0x2D30 0x24C22
+0x2D31 0x24C21
+0x2D32 0x22456
+0x2D33 0x24C23
+0x2D34 0x211CD
+0x2D35 0x24D30
+0x2D36 0x24D34
+0x2D37-0x2D38 0x24FC9
+0x2D39 0x24FC8
+0x2D3A 0x2F93D
+0x2D3B 0x25044
+0x2D3C 0x250F3
+0x2D3D 0x2F941
+0x2D3E 0x250F8
+0x2D3F 0x250FC
+0x2D40 0x250F6
+0x2D41 0x250FB
+0x2D42 0x250F7
+0x2D43 0x25100
+0x2D44 0x25102
+0x2D45 0x2F940
+0x2D46 0x2F94D
+0x2D47 0x25424
+0x2D48 0x2560D
+0x2D49 0x4129
+0x2D4A 0x25762
+0x2D4B 0x25930
+0x2D4C 0x2592B
+0x2D4D 0x2592A
+0x2D4E 0x4192
+0x2D4F 0x2592D
+0x2D50 0x25ADA
+0x2D51 0x25E28
+0x2D52 0x25F86
+0x2D53 0x26277
+0x2D54 0x2627C
+0x2D55 0x26350
+0x2D56 0x2634E
+0x2D57 0x263F2
+0x2D58 0x264B2
+0x2D59-0x2D5A 0x264CE
+0x2D5B 0x264E5
+0x2D5C 0x23407
+0x2D5D 0x26535
+0x2D5E 0x26531
+0x2D5F 0x26613
+0x2D60-0x2D61 0x2662B
+0x2D62 0x26645
+0x2D63 0x26660
+0x2D64 0x26641
+0x2D65 0x26658
+0x2D66 0x26647
+0x2D67 0x2665B
+0x2D68 0x26650
+0x2D69 0x2F982
+0x2D6A 0x2665F
+0x2D6B 0x2664A
+0x2D6C 0x26656
+0x2D6D-0x2D6E 0x26643
+0x2D6F 0x26651
+0x2D70 0x268FD
+0x2D71-0x2D72 0x26934
+0x2D73-0x2D74 0x26954
+0x2D75 0x26A0C
+0x2D76 0x26A0B
+0x2D77 0x26A0A
+0x2D78 0x26AF9
+0x2D79 0x26B35
+0x2D7A 0x26B24
+0x2D7B 0x26B13
+0x2D7C 0x26B1C
+0x2D7D 0x26B69
+0x2D7E 0x26B25
+0x2E21 0x26B21
+0x2E22-0x2E23 0x2F995
+0x2E24 0x2F998
+0x2E25 0x27220
+0x2E26 0x275A9
+0x2E27 0x275A8
+0x2E28 0x275DE
+0x2E29-0x2E2B 0x27609
+0x2E2C 0x277E3
+0x2E2D 0x27807
+0x2E2E-0x2E2F 0x278B2
+0x2E30 0x2795D
+0x2E31 0x27E58
+0x2E32-0x2E33 0x27E86
+0x2E34 0x27FB9
+0x2E35 0x27FB8
+0x2E36 0x2840C
+0x2E37 0x28444
+0x2E38 0x28466
+0x2E39 0x28480
+0x2E3A 0x28475
+0x2E3B 0x2846D
+0x2E3C 0x2847E
+0x2E3D 0x28467
+0x2E3E 0x28481
+0x2E3F 0x28477
+0x2E40 0x286A8
+0x2E41 0x286A2
+0x2E42 0x286A5
+0x2E43 0x2869B
+0x2E44 0x28C57
+0x2E45 0x28E0F
+0x2E46 0x28E32
+0x2E47 0x28E2C
+0x2E48 0x28E33
+0x2E49 0x291E7
+0x2E4A 0x2006E
+0x2E4B 0x200B7
+0x2E4C 0x200F6
+0x2E4D-0x2E4E 0x200F2
+0x2E4F 0x20517
+0x2E50 0x20130
+0x2E51 0x20154
+0x2E52 0x20153
+0x2E53 0x20252
+0x2E54 0x2023D
+0x2E55 0x2023C
+0x2E56 0x20234
+0x2E57 0x20233
+0x2E58 0x20254
+0x2E59 0x2022F
+0x2E5A 0x3458
+0x2E5B 0x20255
+0x2E5C 0x2023F
+0x2E5D 0x20237
+0x2E5E 0x20256
+0x2E5F 0x20261
+0x2E60 0x20258
+0x2E61 0x2F806
+0x2E62 0x2023B
+0x2E63 0x20232
+0x2E64 0x2022E
+0x2E65 0x2023E
+0x2E66 0x2003B
+0x2E67-0x2E68 0x2048C
+0x2E69 0x20513
+0x2E6A 0x20516
+0x2E6B 0x20512
+0x2E6C 0x2055B
+0x2E6D 0x2058A
+0x2E6E 0x205D7
+0x2E6F 0x205CE
+0x2E70-0x2E71 0x20650
+0x2E72 0x2064F
+0x2E73-0x2E74 0x2068E
+0x2E75 0x206F2
+0x2E76 0x2F821
+0x2E77 0x20728
+0x2E78 0x2071A
+0x2E79 0x20725
+0x2E7A 0x2071D
+0x2E7B 0x20714
+0x2E7C 0x20720
+0x2E7D 0x2071F
+0x2E7E 0x2071B
+0x2F21 0x20717
+0x2F22 0x20715
+0x2F23 0x2071C
+0x2F24 0x20713
+0x2F25 0x2F825
+0x2F26 0x20860
+0x2F27 0x351C
+0x2F28 0x20866
+0x2F29 0x208E3
+0x2F2A 0x208DE
+0x2F2B-0x2F2C 0x208E0
+0x2F2D-0x2F2E 0x2091A
+0x2F2F 0x20918
+0x2F30 0x2091C
+0x2F31 0x20919
+0x2F32 0x20942
+0x2F33 0x20940
+0x2F34 0x2093E
+0x2F35 0x20944
+0x2F36 0x20974
+0x2F37 0x20943
+0x2F38 0x2F82D
+0x2F39 0x209F2
+0x2F3A 0x20A1B
+0x2F3B 0x20A19
+0x2F3C 0x20A1E
+0x2F3D 0x2F830
+0x2F3E 0x20A5E
+0x2F3F 0x20A66
+0x2F40 0x20A5D
+0x2F41 0x20A5A
+0x2F42-0x2F43 0x20A5F
+0x2F44-0x2F45 0x20A5B
+0x2F46 0x20A59
+0x2F47-0x2F48 0x20AF0
+0x2F49 0x20B43
+0x2F4A 0x20B40
+0x2F4B 0x20B42
+0x2F4C 0x20B41
+0x2F4D 0x20B3F
+0x2F4E 0x20C57
+0x2F4F 0x20C69
+0x2F50 0x20C6F
+0x2F51 0x20CAB
+0x2F52 0x20C71
+0x2F53 0x20C93
+0x2F54 0x20C56
+0x2F55 0x20C90
+0x2F56 0x20C6D
+0x2F57 0x20C6C
+0x2F58 0x20C70
+0x2F59-0x2F5A 0x20C66
+0x2F5B 0x211D7
+0x2F5C 0x211B5
+0x2F5D 0x211DB
+0x2F5E 0x211D8
+0x2F5F 0x211D5
+0x2F60 0x211D4
+0x2F61 0x212BA
+0x2F62 0x212B7
+0x2F63 0x212BE
+0x2F64 0x212B9
+0x2F65 0x3637
+0x2F66 0x212E0
+0x2F67-0x2F68 0x212DD
+0x2F69 0x24918
+0x2F6A 0x212D8
+0x2F6B 0x212BD
+0x2F6C 0x212DB
+0x2F6D 0x2151D
+0x2F6E 0x21525
+0x2F6F 0x21721
+0x2F70 0x2170C
+0x2F71 0x21729
+0x2F72 0x2172D
+0x2F73 0x2171B
+0x2F74 0x2170E
+0x2F75 0x2171F
+0x2F76 0x21704
+0x2F77 0x2171C
+0x2F78-0x2F79 0x21705
+0x2F7A 0x21720
+0x2F7B 0x2170D
+0x2F7C 0x2172A
+0x2F7D 0x21723
+0x2F7E 0x21711
+0x3021 0x2195C
+0x3022 0x21966
+0x3023 0x2195B
+0x3024 0x2194F
+0x3025 0x2195E
+0x3026 0x2195D
+0x3027 0x219F1
+0x3028 0x219EA
+0x3029 0x219F4
+0x302A 0x219EB
+0x302B 0x219F0
+0x302C-0x302D 0x219FA
+0x302E 0x21B28
+0x302F 0x21B2C
+0x3030 0x21B6B
+0x3031 0x21B2A
+0x3032 0x21B6A
+0x3033 0x21B6F
+0x3034 0x21BDB
+0x3035 0x21BE0
+0x3036 0x24FD1
+0x3037 0x21BE3
+0x3038 0x21BE5
+0x3039 0x21BE7
+0x303A 0x21C4D
+0x303B 0x21C55
+0x303C 0x21C54
+0x303D 0x21C53
+0x303E 0x21C52
+0x303F 0x21C4E
+0x3040 0x21C60
+0x3041 0x221C0
+0x3042 0x21D0F
+0x3043 0x21D11
+0x3044 0x21D13
+0x3045 0x21DC6
+0x3046 0x21DB3
+0x3047 0x21DC7
+0x3048 0x21DD2
+0x3049 0x21DB8
+0x304A 0x21DAC
+0x304B 0x21DAE
+0x304C 0x21DCF
+0x304D 0x21DC5
+0x304E 0x2F87B
+0x304F 0x21DCC
+0x3050 0x21DAB
+0x3051 0x21DC9
+0x3052 0x21DB9
+0x3053 0x21FFB
+0x3054 0x21FF8
+0x3055 0x21FF7
+0x3056 0x21FF9
+0x3057 0x22020
+0x3058 0x2203B
+0x3059 0x22039
+0x305A 0x2209E
+0x305B 0x2209A
+0x305C-0x305D 0x220AA
+0x305E 0x220AF
+0x305F 0x22096
+0x3060 0x220A9
+0x3061 0x220A6
+0x3062 0x22091
+0x3063 0x3843
+0x3064 0x220AE
+0x3065 0x2209F
+0x3066 0x220AC
+0x3067 0x220A0
+0x3068 0x22192
+0x3069 0x22191
+0x306A 0x221BF
+0x306B 0x22217
+0x306C 0x2220A
+0x306D 0x2220C
+0x306E 0x2234A
+0x306F 0x22346
+0x3070 0x22334
+0x3071 0x22345
+0x3072-0x3073 0x22343
+0x3074 0x2F893
+0x3075 0x22387
+0x3076 0x22386
+0x3077 0x2238A
+0x3078 0x223DA
+0x3079 0x223D8
+0x307A 0x38B4
+0x307B 0x20518
+0x307C 0x20134
+0x307D 0x223D6
+0x307E 0x223D4
+0x3121 0x22454
+0x3122-0x3123 0x22459
+0x3124 0x22457
+0x3125 0x38E0
+0x3126 0x224DD
+0x3127 0x224E9
+0x3128 0x224E0
+0x3129 0x22605
+0x312A-0x312B 0x22612
+0x312C 0x22607
+0x312D 0x22616
+0x312E 0x22623
+0x312F 0x22602
+0x3130 0x2F8A1
+0x3131 0x2264A
+0x3132 0x22636
+0x3133 0x22640
+0x3134 0x22656
+0x3135 0x22643
+0x3136 0x2F8A0
+0x3137 0x2264B
+0x3138 0x22646
+0x3139 0x2263E
+0x313A 0x22649
+0x313B 0x229A7
+0x313C 0x229B6
+0x313D 0x229A6
+0x313E 0x229A8
+0x313F 0x229AC
+0x3140 0x229A9
+0x3141 0x229AB
+0x3142 0x22A38
+0x3143 0x22A37
+0x3144 0x22A39
+0x3145 0x22A41
+0x3146 0x22A3E
+0x3147 0x22AC0
+0x3148 0x22ABB
+0x3149 0x22ABF
+0x314A 0x22ABD
+0x314B 0x22AFE
+0x314C 0x22B1E
+0x314D 0x22AEE
+0x314E 0x22AFC
+0x314F 0x2F8B7
+0x3150 0x22AF9
+0x3151 0x22B06
+0x3152 0x22AE4
+0x3153 0x22AE9
+0x3154 0x22AE5
+0x3155 0x22B03
+0x3156 0x22AFD
+0x3157 0x22B49
+0x3158 0x22EBE
+0x3159 0x22F0A
+0x315A 0x25626
+0x315B 0x22F18
+0x315C 0x22F0D
+0x315D 0x22F0F
+0x315E 0x22F0E
+0x315F 0x22F20
+0x3160 0x23071
+0x3161 0x23099
+0x3162 0x230E2
+0x3163 0x230DF
+0x3164 0x230DE
+0x3165-0x3166 0x23178
+0x3167 0x3AE4
+0x3168-0x3169 0x2317C
+0x316A 0x23184
+0x316B 0x2318B
+0x316C 0x2318A
+0x316D 0x2F8D2
+0x316E 0x23189
+0x316F 0x2332C
+0x3170 0x23329
+0x3171 0x2336C
+0x3172 0x6804
+0x3173 0x23409
+0x3174 0x23408
+0x3175-0x3176 0x2340C
+0x3177 0x23410
+0x3178 0x3C26
+0x3179 0x2389F
+0x317A 0x23898
+0x317B 0x238A2
+0x317C 0x2389A
+0x317D 0x239D5
+0x317E 0x239E2
+0x3221 0x239F0
+0x3222-0x3223 0x239EA
+0x3224 0x239ED
+0x3225 0x239E8
+0x3226 0x239E0
+0x3227-0x3228 0x23A85
+0x3229 0x23AF0
+0x322A 0x21E46
+0x322B 0x23B45
+0x322C 0x23B38
+0x322D 0x23B3E
+0x322E 0x23B42
+0x322F 0x23B40
+0x3230 0x23C47
+0x3231 0x23C5C
+0x3232 0x23C5E
+0x3233 0x23CB4
+0x3234 0x23CC2
+0x3235 0x23D14
+0x3236 0x23CE5
+0x3237 0x23D15
+0x3238 0x23D11
+0x3239 0x2F8FF
+0x323A 0x23CEE
+0x323B 0x23CE7
+0x323C 0x23CF5
+0x323D 0x23CF4
+0x323E 0x23CE8
+0x323F 0x23D01
+0x3240 0x23CEF
+0x3241 0x23CF1
+0x3242 0x2F900
+0x3243 0x241DB
+0x3244 0x241BF
+0x3245 0x241DA
+0x3246 0x241C7
+0x3247 0x241DD
+0x3248 0x2F91A
+0x3249 0x241EB
+0x324A 0x241E1
+0x324B 0x241C1
+0x324C 0x241BD
+0x324D 0x24507
+0x324E 0x244FD
+0x324F 0x24501
+0x3250 0x2450A
+0x3251 0x24503
+0x3252 0x24572
+0x3253-0x3254 0x24574
+0x3255 0x245B2
+0x3256 0x245B1
+0x3257 0x245B4
+0x3258 0x2464C
+0x3259 0x24642
+0x325A 0x24640
+0x325B 0x24649
+0x325C 0x2463C
+0x325D 0x2464D
+0x325E 0x2464A
+0x325F 0x2463B
+0x3260 0x24761
+0x3261 0x24774
+0x3262 0x2F926
+0x3263 0x2477F
+0x3264 0x2477A
+0x3265 0x24788
+0x3266 0x2477C
+0x3267 0x3E6F
+0x3268 0x24770
+0x3269 0x2490F
+0x326A 0x24928
+0x326B 0x24913
+0x326C 0x2492A
+0x326D 0x24AED
+0x326E 0x24AEF
+0x326F 0x24B2E
+0x3270 0x24BC1
+0x3271 0x24BDD
+0x3272 0x20B47
+0x3273 0x24C2D
+0x3274 0x24C2B
+0x3275 0x24C35
+0x3276 0x24C2F
+0x3277 0x24C31
+0x3278 0x24C34
+0x3279 0x2F935
+0x327A 0x24C30
+0x327B 0x24D3A
+0x327C 0x24D39
+0x327D 0x24D37
+0x327E 0x24D4B
+0x3321 0x24D54
+0x3322 0x24D4D
+0x3323 0x24D51
+0x3324 0x24D47
+0x3325 0x24F27
+0x3326 0x24F50
+0x3327-0x3328 0x24F4D
+0x3329 0x24F54
+0x332A 0x24FD2
+0x332B 0x24FCE
+0x332C 0x2504B
+0x332D 0x25049
+0x332E 0x25105
+0x332F 0x2510F
+0x3330 0x25119
+0x3331 0x2F943
+0x3332 0x25106
+0x3333 0x2510C
+0x3334 0x25129
+0x3335 0x25104
+0x3336 0x25108
+0x3337 0x25125
+0x3338 0x401C
+0x3339 0x25103
+0x333A 0x25127
+0x333B 0x25110
+0x333C 0x2510A
+0x333D 0x2F942
+0x333E 0x26B5D
+0x333F-0x3340 0x253AA
+0x3341 0x253A9
+0x3342 0x25441
+0x3343 0x2543A
+0x3344 0x2543C
+0x3345 0x2542B
+0x3346 0x25449
+0x3347 0x25615
+0x3348 0x4100
+0x3349 0x25616
+0x334A 0x2F953
+0x334B 0x25631
+0x334C 0x23C4A
+0x334D 0x2573C
+0x334E 0x2577C
+0x334F 0x2576D
+0x3350 0x2576A
+0x3351 0x25763
+0x3352 0x2576B
+0x3353 0x2577B
+0x3354 0x25764
+0x3355 0x2577A
+0x3356 0x25769
+0x3357 0x2576F
+0x3358 0x25937
+0x3359 0x25935
+0x335A 0x2593C
+0x335B 0x25936
+0x335C-0x335D 0x2593D
+0x335E 0x25AE1
+0x335F 0x25AE0
+0x3360 0x25E2D
+0x3361 0x25E2B
+0x3362 0x25F8D
+0x3363 0x25F92
+0x3364 0x42B6
+0x3365 0x25F8E
+0x3366 0x2F96B
+0x3367 0x25F91
+0x3368 0x25F96
+0x3369 0x2627B
+0x336A 0x26278
+0x336B 0x26281
+0x336C 0x26296
+0x336D 0x262A3
+0x336E 0x26295
+0x336F 0x26297
+0x3370 0x26354
+0x3371 0x26352
+0x3372 0x263F5
+0x3373 0x26400
+0x3374 0x263FB
+0x3375 0x263F4
+0x3376 0x263F6
+0x3377 0x264E8
+0x3378 0x264EA
+0x3379 0x2663E
+0x337A 0x2663D
+0x337B 0x2663B
+0x337C 0x26680
+0x337D 0x43E4
+0x337E 0x26688
+0x3421-0x3422 0x26681
+0x3423 0x266CE
+0x3424 0x26683
+0x3425 0x26677
+0x3426 0x26679
+0x3427 0x26673
+0x3428 0x2666D
+0x3429 0x26670
+0x342A 0x2668D
+0x342B 0x26675
+0x342C 0x2668C
+0x342D 0x2666A
+0x342E 0x26691
+0x342F 0x26689
+0x3430 0x2668E
+0x3431 0x212DC
+0x3432 0x268FF
+0x3433 0x26959
+0x3434 0x269C7
+0x3435 0x26A12
+0x3436 0x26A14
+0x3437 0x26A13
+0x3438 0x26ACB
+0x3439 0x26B42
+0x343A 0x44AD
+0x343B 0x26B3D
+0x343C 0x82FF
+0x343D 0x26B40
+0x343E 0x26B44
+0x343F 0x26B62
+0x3440 0x26B43
+0x3441 0x26B3F
+0x3442 0x26B45
+0x3443 0x26B3C
+0x3444 0x2F997
+0x3445-0x3446 0x26B46
+0x3447 0x2F9B3
+0x3448 0x2719E
+0x3449 0x2719D
+0x344A 0x2722C
+0x344B 0x27229
+0x344C 0x2722F
+0x344D 0x2722E
+0x344E 0x27230
+0x344F-0x3450 0x275E1
+0x3451 0x2760E
+0x3452 0x27619
+0x3453 0x27612
+0x3454 0x278B4
+0x3455 0x27BDA
+0x3456 0x27D26
+0x3457-0x3458 0x27E59
+0x3459 0x27E88
+0x345A 0x27FC0
+0x345B 0x27FBA
+0x345C 0x282A0
+0x345D 0x2F9DD
+0x345E 0x282A2
+0x345F 0x28486
+0x3460 0x8FEC
+0x3461 0x2849D
+0x3462 0x28488
+0x3463 0x2848F
+0x3464 0x2848E
+0x3465 0x2849B
+0x3466 0x286C1
+0x3467-0x3468 0x286C3
+0x3469 0x28696
+0x346A 0x286C7
+0x346B 0x286C6
+0x346C 0x286BF
+0x346D 0x48C3
+0x346E 0x2890F
+0x346F 0x28E55
+0x3470 0x28E42
+0x3471 0x28E46
+0x3472 0x28E4B
+0x3473 0x28E43
+0x3474 0x28E53
+0x3475-0x3477 0x28E48
+0x3478 0x28E4E
+0x3479 0x24BDE
+0x347A 0x20691
+0x347B 0x2944B
+0x347C-0x347D 0x29680
+0x347E 0x29683
+0x3521 0x2028A
+0x3522 0x29682
+0x3523 0x22342
+0x3524 0x20922
+0x3525-0x3526 0x20070
+0x3527 0x200BC
+0x3528 0x21D18
+0x3529 0x200BE
+0x352A 0x200BA
+0x352B 0x200F8
+0x352C 0x20137
+0x352D 0x20135
+0x352E 0x20AFC
+0x352F 0x20156
+0x3530 0x20159
+0x3531 0x2015E
+0x3532 0x2026D
+0x3533-0x3534 0x20291
+0x3535 0x20268
+0x3536 0x20266
+0x3537 0x20273
+0x3538 0x3467
+0x3539 0x20296
+0x353A-0x353B 0x2028B
+0x353C 0x20496
+0x353D 0x204EE
+0x353E 0x2051C
+0x353F 0x2051A
+0x3540 0x20519
+0x3541 0x2051B
+0x3542-0x3543 0x2055D
+0x3544 0x2F818
+0x3545 0x205DC
+0x3546 0x205E2
+0x3547 0x20652
+0x3548 0x20692
+0x3549 0x20730
+0x354A 0x20752
+0x354B 0x20742
+0x354C 0x20741
+0x354D 0x20745
+0x354E 0x20737
+0x354F 0x20740
+0x3550 0x2073F
+0x3551 0x2073D
+0x3552 0x20738
+0x3553 0x2073A
+0x3554 0x20749
+0x3555 0x2086B
+0x3556-0x3557 0x20878
+0x3558 0x2F826
+0x3559 0x2086C
+0x355A 0x208E9
+0x355B 0x208E6
+0x355C 0x208E5
+0x355D 0x208EA
+0x355E-0x355F 0x208E7
+0x3560 0x2091F
+0x3561 0x2094B
+0x3562 0x2094A
+0x3563 0x20953
+0x3564 0x20976
+0x3565-0x3566 0x209A3
+0x3567 0x209F6
+0x3568 0x209F3
+0x3569 0x209F9
+0x356A 0x209F7
+0x356B 0x209FC
+0x356C 0x20A1D
+0x356D 0x20A6D
+0x356E 0x20A71
+0x356F 0x20A6C
+0x3570 0x20A6E
+0x3571 0x20A70
+0x3572 0x20A6F
+0x3573-0x3574 0x20A67
+0x3575 0x20AFA
+0x3576 0x20AF9
+0x3577 0x20B4E
+0x3578 0x53DE
+0x3579 0x20B4D
+0x357A 0x20B4F
+0x357B 0x20B4A
+0x357C 0x20B4C
+0x357D 0x3596
+0x357E 0x2F842
+0x3621 0x20CEE
+0x3622 0x20CB2
+0x3623-0x3624 0x20CC0
+0x3625 0x20CF4
+0x3626 0x20CC8
+0x3627-0x3628 0x20CC5
+0x3629 0x20CAD
+0x362A 0x211E2
+0x362B 0x211EA
+0x362C 0x211E3
+0x362D 0x211E1
+0x362E 0x212F7
+0x362F 0x21301
+0x3630 0x21312
+0x3631 0x212F6
+0x3632 0x212F1
+0x3633 0x2131F
+0x3634 0x212EE
+0x3635 0x2F852
+0x3636 0x212F3
+0x3637-0x3639 0x21315
+0x363A 0x212F8
+0x363B 0x21319
+0x363C 0x212F2
+0x363D-0x363E 0x212F4
+0x363F 0x21313
+0x3640 0x21306
+0x3641 0x21526
+0x3642 0x21524
+0x3643 0x2155A
+0x3644 0x22EC8
+0x3645 0x21597
+0x3646 0x21595
+0x3647 0x2159A
+0x3648 0x2161F
+0x3649 0x20AFB
+0x364A 0x21629
+0x364B 0x21620
+0x364C-0x364D 0x2F862
+0x364E 0x2174C
+0x364F 0x21730
+0x3650 0x21738
+0x3651 0x2173D
+0x3652 0x21751
+0x3653 0x2174F
+0x3654 0x2174A
+0x3655 0x21734
+0x3656 0x21736
+0x3657 0x5A30
+0x3658 0x2196A
+0x3659 0x21968
+0x365A 0x21A1C
+0x365B 0x21A0E
+0x365C 0x21A1E
+0x365D 0x3759
+0x365E 0x21A09
+0x365F 0x21A08
+0x3660 0x21A13
+0x3661 0x21A01
+0x3662 0x21A0F
+0x3663 0x21A14
+0x3664-0x3665 0x21A06
+0x3666 0x5BB2
+0x3667 0x2F873
+0x3668 0x3776
+0x3669 0x21B79
+0x366A 0x21BEA
+0x366B 0x21BED
+0x366C 0x21BE9
+0x366D 0x21BEE
+0x366E 0x21C68
+0x366F 0x21C64
+0x3670 0x21C67
+0x3671 0x21C72
+0x3672 0x21C62
+0x3673 0x21C74
+0x3674 0x21C79
+0x3675 0x21D19
+0x3676 0x21D17
+0x3677-0x3678 0x21D15
+0x3679 0x21DE6
+0x367A 0x262A4
+0x367B 0x21DEE
+0x367C 0x37D2
+0x367D 0x21DDF
+0x367E 0x21DE4
+0x3721 0x21DDA
+0x3722 0x21DEA
+0x3723 0x21DED
+0x3724 0x21DE3
+0x3725 0x21DE9
+0x3726 0x21FFD
+0x3727 0x20657
+0x3728 0x22021
+0x3729 0x220C6
+0x372A 0x220B8
+0x372B 0x220CB
+0x372C 0x2F885
+0x372D 0x220BD
+0x372E 0x220B5
+0x372F 0x220BB
+0x3730 0x220BF
+0x3731 0x220BE
+0x3732 0x220B2
+0x3733-0x3734 0x220C1
+0x3735 0x22199
+0x3736 0x221C6
+0x3737-0x3738 0x2222C
+0x3739 0x22225
+0x373A-0x373B 0x2221E
+0x373C 0x22223
+0x373D 0x22350
+0x373E 0x2234E
+0x373F 0x2234D
+0x3740 0x22352
+0x3741 0x223E9
+0x3742 0x223EC
+0x3743 0x223E8
+0x3744 0x22458
+0x3745 0x2245C
+0x3746 0x2245B
+0x3747 0x2248F
+0x3748 0x23972
+0x3749 0x224F6
+0x374A 0x22500
+0x374B 0x224FC
+0x374C 0x224F8
+0x374D 0x224EA
+0x374E 0x224FE
+0x374F 0x224F7
+0x3750 0x224FD
+0x3751 0x22670
+0x3752 0x22662
+0x3753 0x22644
+0x3754 0x3920
+0x3755 0x2264D
+0x3756 0x2264C
+0x3757 0x2263F
+0x3758 0x22666
+0x3759 0x22635
+0x375A 0x3929
+0x375B 0x22634
+0x375C 0x2268D
+0x375D 0x22684
+0x375E 0x3938
+0x375F 0x22686
+0x3760 0x22689
+0x3761 0x22687
+0x3762 0x22683
+0x3763 0x22675
+0x3764 0x22679
+0x3765-0x3766 0x226AF
+0x3767 0x229B7
+0x3768 0x229BB
+0x3769 0x229B9
+0x376A-0x376B 0x22A46
+0x376C 0x22A45
+0x376D 0x22AEA
+0x376E 0x22AF6
+0x376F 0x22B68
+0x3770 0x22B39
+0x3771 0x2F8B9
+0x3772 0x22B3D
+0x3773 0x22B3B
+0x3774 0x22B4D
+0x3775 0x22B30
+0x3776 0x22B4A
+0x3777 0x22B3E
+0x3778 0x22B40
+0x3779 0x22B4C
+0x377A 0x22B47
+0x377B 0x22B38
+0x377C 0x22B52
+0x377D 0x22B3A
+0x377E 0x22B53
+0x3821 0x22EC4
+0x3822 0x22EC1
+0x3823-0x3824 0x22F1C
+0x3825 0x22F2A
+0x3826 0x22F1E
+0x3827 0x22F2F
+0x3828 0x22F22
+0x3829 0x22F2E
+0x382A 0x22F25
+0x382B 0x3A89
+0x382C 0x3AB0
+0x382D-0x382E 0x2304A
+0x382F 0x23076
+0x3830 0x3ABF
+0x3831 0x230E8
+0x3832 0x230EF
+0x3833 0x230E9
+0x3834 0x3AC5
+0x3835 0x230EA
+0x3836 0x2F8CC
+0x3837 0x3AEA
+0x3838 0x2319B
+0x3839 0x2319E
+0x383A 0x23193
+0x383B 0x231A7
+0x383C 0x2319C
+0x383D 0x231A0
+0x383E 0x2319A
+0x383F 0x231AB
+0x3840 0x231BE
+0x3841 0x231A9
+0x3842 0x2332D
+0x3843 0x2336E
+0x3844 0x23444
+0x3845 0x2343D
+0x3846 0x2343A
+0x3847 0x23468
+0x3848 0x2343C
+0x3849 0x2346A
+0x384A 0x2F8E0
+0x384B 0x23438
+0x384C 0x23465
+0x384D 0x23439
+0x384E 0x2346D
+0x384F 0x23436
+0x3850 0x2F8E3
+0x3851 0x2343E
+0x3852 0x2347E
+0x3853 0x23437
+0x3854 0x23899
+0x3855 0x238A9
+0x3856 0x238AD
+0x3857-0x3858 0x238A7
+0x3859 0x23966
+0x385A 0x23969
+0x385B 0x2396D
+0x385C 0x23967
+0x385D 0x2396B
+0x385E 0x2396A
+0x385F 0x239EE
+0x3860 0x23A01
+0x3861 0x23A03
+0x3862 0x239F4
+0x3863 0x239FB
+0x3864 0x3C37
+0x3865 0x239F6
+0x3866 0x239FC
+0x3867 0x23AF4
+0x3868 0x23B08
+0x3869 0x23B0A
+0x386A 0x23B09
+0x386B 0x23B6D
+0x386C 0x23B62
+0x386D 0x23B41
+0x386E 0x23B5E
+0x386F 0x23B5C
+0x3870 0x23CF3
+0x3871 0x23D26
+0x3872 0x3CE4
+0x3873 0x23D39
+0x3874 0x2F904
+0x3875 0x23D6C
+0x3876 0x23D2B
+0x3877 0x23D2E
+0x3878 0x23D3B
+0x3879 0x23D5E
+0x387A 0x23DFB
+0x387B 0x23D27
+0x387C 0x23D24
+0x387D 0x23D69
+0x387E 0x23D30
+0x3921 0x2F905
+0x3922 0x23D62
+0x3923 0x23D38
+0x3924 0x23D35
+0x3925 0x23D2A
+0x3926 0x23D2C
+0x3927 0x23D68
+0x3928 0x23D31
+0x3929 0x23D2F
+0x392A 0x23D2D
+0x392B 0x23D3A
+0x392C 0x23D36
+0x392D 0x2F903
+0x392E 0x23D21
+0x392F 0x23D3C
+0x3930 0x23D20
+0x3931 0x23D64
+0x3932 0x23D3E
+0x3933 0x3CE8
+0x3934 0x241F7
+0x3935 0x24212
+0x3936 0x241F1
+0x3937 0x241F5
+0x3938 0x24222
+0x3939 0x241F2
+0x393A 0x241DF
+0x393B-0x393C 0x24215
+0x393D 0x2457A
+0x393E 0x24576
+0x393F 0x245BE
+0x3940 0x3E20
+0x3941 0x245BD
+0x3942 0x24609
+0x3943 0x24608
+0x3944 0x24657
+0x3945 0x247A3
+0x3946 0x247BF
+0x3947 0x247B8
+0x3948 0x247AF
+0x3949 0x2479C
+0x394A 0x247A5
+0x394B 0x24772
+0x394C 0x24775
+0x394D 0x2479D
+0x394E 0x24799
+0x394F 0x247B9
+0x3950 0x2494E
+0x3951 0x24939
+0x3952 0x2493B
+0x3953 0x24935
+0x3954 0x2493C
+0x3955 0x24955
+0x3956 0x24AF0
+0x3957-0x3958 0x24AF3
+0x3959-0x395A 0x24B3B
+0x395B 0x24B3A
+0x395C 0x24B36
+0x395D 0x24C07
+0x395E 0x20CEB
+0x395F 0x24C55
+0x3960 0x24C50
+0x3961 0x24C4F
+0x3962 0x24C52
+0x3963 0x24C56
+0x3964 0x200BD
+0x3965 0x24C32
+0x3966 0x24D63
+0x3967 0x24D6B
+0x3968 0x24D66
+0x3969 0x24D57
+0x396A 0x24D5D
+0x396B 0x3F86
+0x396C 0x24D6D
+0x396D 0x24D61
+0x396E 0x24D69
+0x396F 0x24D5A
+0x3970 0x24D5C
+0x3971 0x24D62
+0x3972 0x24F2A
+0x3973 0x24F29
+0x3974 0x24F58
+0x3975 0x24F5A
+0x3976 0x24FD7
+0x3977-0x3979 0x24FDB
+0x397A 0x24FD8
+0x397B 0x25054
+0x397C-0x397D 0x2505B
+0x397E 0x25053
+0x3A21 0x2504F
+0x3A22 0x25056
+0x3A23 0x25050
+0x3A24 0x2505A
+0x3A25 0x2506B
+0x3A26 0x25136
+0x3A27 0x25153
+0x3A28 0x2513A
+0x3A29 0x2513C
+0x3A2A 0x2513E
+0x3A2B 0x25149
+0x3A2C 0x25140
+0x3A2D-0x3A2E 0x2F946
+0x3A2F-0x3A30 0x25364
+0x3A31-0x3A32 0x253B5
+0x3A33 0x253B2
+0x3A34 0x25448
+0x3A35 0x2544A
+0x3A36 0x25472
+0x3A37 0x25469
+0x3A38 0x2545A
+0x3A39 0x2544C
+0x3A3A 0x2562C
+0x3A3B 0x25630
+0x3A3C 0x2564B
+0x3A3D 0x25649
+0x3A3E 0x25642
+0x3A3F 0x25644
+0x3A40 0x2564A
+0x3A41 0x2564F
+0x3A42 0x25792
+0x3A43 0x2F957
+0x3A44 0x25797
+0x3A45 0x25780
+0x3A46 0x25782
+0x3A47 0x25786
+0x3A48 0x25953
+0x3A49 0x2595E
+0x3A4A 0x25952
+0x3A4B 0x2595B
+0x3A4C 0x2594E
+0x3A4D-0x3A4E 0x25A6D
+0x3A4F 0x25AFA
+0x3A50 0x25AF6
+0x3A51 0x25AFB
+0x3A52 0x25E33
+0x3A53 0x25E3D
+0x3A54 0x25E37
+0x3A55 0x25E3E
+0x3A56 0x25E35
+0x3A57 0x25F9A
+0x3A58 0x25FAB
+0x3A59 0x25FA6
+0x3A5A 0x25FB0
+0x3A5B 0x25F99
+0x3A5C 0x25FA0
+0x3A5D 0x25F9E
+0x3A5E 0x25FA8
+0x3A5F 0x25FA1
+0x3A60 0x25FAA
+0x3A61 0x25FAD
+0x3A62 0x25FBB
+0x3A63 0x25F9C
+0x3A64 0x25FA5
+0x3A65 0x200B3
+0x3A66 0x26227
+0x3A67-0x3A69 0x2628D
+0x3A6A 0x26292
+0x3A6B 0x4356
+0x3A6C 0x26291
+0x3A6D 0x262AD
+0x3A6E-0x3A6F 0x26357
+0x3A70 0x2635E
+0x3A71 0x2635D
+0x3A72 0x2635C
+0x3A73 0x2635B
+0x3A74 0x4367
+0x3A75 0x2640A
+0x3A76 0x26403
+0x3A77 0x2640E
+0x3A78 0x264B8
+0x3A79 0x2654D
+0x3A7A 0x2653F
+0x3A7B 0x26547
+0x3A7C 0x2654B
+0x3A7D 0x2654A
+0x3A7E 0x2653D
+0x3B21 0x8038
+0x3B22 0x26541
+0x3B23 0x2654C
+0x3B24 0x8081
+0x3B25 0x26662
+0x3B26 0x26669
+0x3B27 0x26661
+0x3B28 0x43D1
+0x3B29 0x266AA
+0x3B2A 0x266A6
+0x3B2B 0x266AC
+0x3B2C 0x266BD
+0x3B2D 0x266BB
+0x3B2E 0x266A4
+0x3B2F 0x266BA
+0x3B30 0x2669A
+0x3B31 0x43EB
+0x3B32 0x266A1
+0x3B33 0x266C1
+0x3B34 0x268E0
+0x3B35 0x2690A
+0x3B36 0x26903
+0x3B37 0x26906
+0x3B38-0x3B39 0x26939
+0x3B3A 0x26936
+0x3B3B 0x2695B
+0x3B3C 0x2695F
+0x3B3D 0x2695E
+0x3B3E 0x26967
+0x3B3F-0x3B40 0x26961
+0x3B41 0x2695D
+0x3B42 0x269CA
+0x3B43 0x269CC
+0x3B44 0x269CE
+0x3B45 0x26A18
+0x3B46 0x26A1D
+0x3B47-0x3B48 0x26A1F
+0x3B49 0x26A17
+0x3B4A 0x26A15
+0x3B4B 0x26B1F
+0x3B4C 0x26B27
+0x3B4D 0x26B26
+0x3B4E 0x21E10
+0x3B4F 0x26B8B
+0x3B50 0x26BAE
+0x3B51 0x26B8A
+0x3B52 0x2F999
+0x3B53 0x26B92
+0x3B54 0x26B89
+0x3B55 0x26B87
+0x3B56 0x44B6
+0x3B57 0x26B8F
+0x3B58 0x26B84
+0x3B59 0x26B83
+0x3B5A 0x26B8C
+0x3B5B 0x26B93
+0x3B5C 0x26B8D
+0x3B5D 0x26B98
+0x3B5E-0x3B5F 0x26B7D
+0x3B60 0x26BD2
+0x3B61 0x26B80
+0x3B62 0x26B99
+0x3B63 0x271AC
+0x3B64 0x27250
+0x3B65 0x27255
+0x3B66 0x27242
+0x3B67 0x2723F
+0x3B68 0x2723C
+0x3B69 0x45A3
+0x3B6A 0x2724C
+0x3B6B 0x27249
+0x3B6C-0x3B6D 0x27257
+0x3B6E 0x2724F
+0x3B6F 0x2725C
+0x3B70 0x27247
+0x3B71 0x2F9B7
+0x3B72 0x275AB
+0x3B73 0x4610
+0x3B74 0x275AF
+0x3B75 0x275AD
+0x3B76 0x275E8
+0x3B77 0x275E7
+0x3B78 0x27630
+0x3B79 0x27626
+0x3B7A 0x2762F
+0x3B7B 0x27628
+0x3B7C 0x2762B
+0x3B7D 0x2761D
+0x3B7E 0x2762D
+0x3C21 0x27620
+0x3C22 0x2762A
+0x3C23 0x2762C
+0x3C24 0x27635
+0x3C25 0x27621
+0x3C26-0x3C27 0x27623
+0x3C28-0x3C29 0x27636
+0x3C2A 0x277E9
+0x3C2B 0x278BA
+0x3C2C 0x278B8
+0x3C2D 0x2F9CC
+0x3C2E 0x2796D
+0x3C2F 0x2796A
+0x3C30-0x3C31 0x27968
+0x3C32 0x2796B
+0x3C33 0x27961
+0x3C34 0x27BDC
+0x3C35 0x27BDB
+0x3C36 0x27C2D
+0x3C37 0x27C2C
+0x3C38 0x27CA2
+0x3C39 0x27D2B
+0x3C3A 0x27D32
+0x3C3B 0x2F9D7
+0x3C3C 0x27E94
+0x3C3D 0x27E92
+0x3C3E 0x27E90
+0x3C3F 0x27FC9
+0x3C40 0x27FC4
+0x3C41 0x27FC1
+0x3C42 0x27FC3
+0x3C43 0x27FCD
+0x3C44 0x28214
+0x3C45 0x282A7
+0x3C46 0x282AF
+0x3C47 0x282AA
+0x3C48 0x2840D
+0x3C49 0x28454
+0x3C4A 0x2845B
+0x3C4B 0x28461
+0x3C4C 0x284AE
+0x3C4D 0x284B3
+0x3C4E 0x284C0
+0x3C4F 0x284C4
+0x3C50 0x284BF
+0x3C51 0x284CB
+0x3C52 0x284AD
+0x3C53 0x284A7
+0x3C54 0x284A4
+0x3C55 0x284BD
+0x3C56 0x284AF
+0x3C57 0x284B2
+0x3C58 0x284A5
+0x3C59 0x286E7
+0x3C5A 0x286E0
+0x3C5B 0x286CE
+0x3C5C 0x286DE
+0x3C5D 0x286D5
+0x3C5E 0x286DF
+0x3C5F 0x286D9
+0x3C60 0x287F2
+0x3C61 0x28923
+0x3C62 0x28940
+0x3C63 0x491B
+0x3C64 0x2893E
+0x3C65 0x4987
+0x3C66 0x28CCF
+0x3C67 0x20B54
+0x3C68 0x28E5B
+0x3C69 0x28E58
+0x3C6A 0x28E62
+0x3C6B 0x28E5F
+0x3C6C 0x28E67
+0x3C6D 0x28E63
+0x3C6E 0x28E5E
+0x3C6F 0x28E60
+0x3C70-0x3C72 0x28F85
+0x3C73 0x291E8
+0x3C74 0x291E6
+0x3C75 0x29671
+0x3C76 0x29685
+0x3C77 0x2FA02
+0x3C78 0x29686
+0x3C79 0x29810
+0x3C7A 0x209F8
+0x3C7B 0x200BF
+0x3C7C 0x20B61
+0x3C7D 0x200FE
+0x3C7E 0x200FC
+0x3D21 0x20139
+0x3D22 0x20161
+0x3D23 0x20160
+0x3D24 0x202E2
+0x3D25 0x202EA
+0x3D26 0x202E3
+0x3D27 0x202B4
+0x3D28 0x202AE
+0x3D29 0x202BE
+0x3D2A 0x202B8
+0x3D2B 0x202A8
+0x3D2C 0x202AA
+0x3D2D 0x202A9
+0x3D2E 0x202B3
+0x3D2F 0x202D5
+0x3D30 0x202AD
+0x3D31 0x202B9
+0x3D32 0x202BB
+0x3D33 0x202B1
+0x3D34 0x202C2
+0x3D35 0x2F808
+0x3D36 0x202EB
+0x3D37 0x202BA
+0x3D38 0x202D2
+0x3D39 0x202D4
+0x3D3A 0x204F1
+0x3D3B 0x2051D
+0x3D3C 0x2F812
+0x3D3D 0x20562
+0x3D3E 0x2058C
+0x3D3F-0x3D40 0x205E6
+0x3D41 0x2065A
+0x3D42-0x3D43 0x20658
+0x3D44-0x3D45 0x20696
+0x3D46 0x20761
+0x3D47 0x20767
+0x3D48 0x20771
+0x3D49 0x20765
+0x3D4A-0x3D4B 0x2077D
+0x3D4C 0x2087D
+0x3D4D 0x20884
+0x3D4E 0x2087C
+0x3D4F-0x3D51 0x2087E
+0x3D52 0x208EF
+0x3D53 0x208F4
+0x3D54 0x2091E
+0x3D55 0x2094E
+0x3D56 0x209FB
+0x3D57 0x209FA
+0x3D58 0x209FD
+0x3D59-0x3D5A 0x2F831
+0x3D5B 0x20A79
+0x3D5C-0x3D5D 0x20A7C
+0x3D5E 0x20A84
+0x3D5F 0x20A7B
+0x3D60 0x20A78
+0x3D61 0x3557
+0x3D62 0x20B5E
+0x3D63 0x20B5A
+0x3D64 0x20B5C
+0x3D65 0x20B59
+0x3D66 0x20B55
+0x3D67 0x20B63
+0x3D68 0x20B56
+0x3D69-0x3D6A 0x20B5F
+0x3D6B 0x20B5B
+0x3D6C 0x20D4A
+0x3D6D 0x20D65
+0x3D6E 0x20DB3
+0x3D6F 0x20D2C
+0x3D70 0x20D77
+0x3D71 0x20D3D
+0x3D72 0x20D52
+0x3D73 0x20D61
+0x3D74 0x20D2A
+0x3D75 0x20D3E
+0x3D76 0x20D34
+0x3D77 0x20D29
+0x3D78 0x20DB2
+0x3D79 0x20DAD
+0x3D7A 0x20D40
+0x3D7B 0x20D53
+0x3D7C 0x2F844
+0x3D7D 0x20D3F
+0x3D7E 0x20D41
+0x3E21 0x20D72
+0x3E22 0x211F6
+0x3E23 0x211F5
+0x3E24 0x211F4
+0x3E25 0x211F2
+0x3E26 0x211F9
+0x3E27 0x21327
+0x3E28-0x3E29 0x21354
+0x3E2A 0x2132E
+0x3E2B 0x2F854
+0x3E2C 0x2F853
+0x3E2D 0x2132C
+0x3E2E-0x3E2F 0x21338
+0x3E30 0x21331
+0x3E31 0x2134F
+0x3E32 0x21373
+0x3E33 0x21330
+0x3E34 0x2132B
+0x3E35 0x21351
+0x3E36 0x2152C
+0x3E37-0x3E38 0x2155B
+0x3E39 0x21568
+0x3E3A 0x2156C
+0x3E3B 0x2156B
+0x3E3C 0x21569
+0x3E3D 0x2159F
+0x3E3E 0x21638
+0x3E3F 0x2163C
+0x3E40 0x2163A
+0x3E41 0x21635
+0x3E42 0x369D
+0x3E43 0x21639
+0x3E44 0x21636
+0x3E45 0x2163B
+0x3E46-0x3E47 0x21760
+0x3E48-0x3E49 0x21763
+0x3E4A 0x21794
+0x3E4B 0x21793
+0x3E4C 0x2175E
+0x3E4D 0x21768
+0x3E4E 0x2176A
+0x3E4F 0x21765
+0x3E50 0x2F866
+0x3E51 0x21790
+0x3E52 0x2175F
+0x3E53 0x21772
+0x3E54 0x2F865
+0x3E55 0x21A3C
+0x3E56 0x21A27
+0x3E57 0x21A24
+0x3E58 0x21A26
+0x3E59 0x21A25
+0x3E5A 0x375F
+0x3E5B 0x21A28
+0x3E5C 0x21A36
+0x3E5D 0x21B31
+0x3E5E 0x21B30
+0x3E5F 0x21B34
+0x3E60 0x21B81
+0x3E61 0x21B7D
+0x3E62 0x21B82
+0x3E63 0x21B80
+0x3E64 0x3779
+0x3E65 0x202D3
+0x3E66 0x21BF2
+0x3E67 0x21C66
+0x3E68 0x21C8C
+0x3E69 0x21C7B
+0x3E6A 0x21C83
+0x3E6B 0x3798
+0x3E6C 0x21C8E
+0x3E6D 0x21C7A
+0x3E6E 0x21C92
+0x3E6F 0x21C91
+0x3E70 0x21C82
+0x3E71-0x3E72 0x21D1B
+0x3E73 0x21E27
+0x3E74 0x21E21
+0x3E75 0x37DC
+0x3E76 0x5D2B
+0x3E77 0x21E43
+0x3E78 0x37DF
+0x3E79 0x21E18
+0x3E7A 0x21E7B
+0x3E7B 0x21E1A
+0x3E7C 0x21E4B
+0x3E7D 0x21E4A
+0x3E7E 0x21E4D
+0x3F21 0x21E4F
+0x3F22 0x21E19
+0x3F23 0x21E35
+0x3F24 0x21E13
+0x3F25 0x21E52
+0x3F26 0x21E14
+0x3F27 0x21E1E
+0x3F28 0x21E2C
+0x3F29 0x21E20
+0x3F2A 0x21E22
+0x3F2B 0x21E12
+0x3F2C 0x21E1F
+0x3F2D 0x22000
+0x3F2E 0x22023
+0x3F2F 0x22040
+0x3F30 0x22043
+0x3F31 0x220E4
+0x3F32 0x220DB
+0x3F33 0x220EA
+0x3F34 0x220DD
+0x3F35 0x220CC
+0x3F36 0x220D9
+0x3F37 0x220E8
+0x3F38 0x220F6
+0x3F39 0x220E3
+0x3F3A 0x220D3
+0x3F3B 0x220DA
+0x3F3C 0x220D6
+0x3F3D 0x220E7
+0x3F3E 0x2223A
+0x3F3F-0x3F40 0x2223F
+0x3F41 0x22248
+0x3F42 0x22259
+0x3F43 0x22237
+0x3F44 0x22244
+0x3F45 0x2F88C
+0x3F46 0x2F88B
+0x3F47 0x22255
+0x3F48 0x22239
+0x3F49-0x3F4E 0x22354
+0x3F4F 0x2238D
+0x3F50 0x223F2
+0x3F51 0x223F8
+0x3F52-0x3F53 0x223F5
+0x3F54 0x223FC
+0x3F55 0x223FE
+0x3F56 0x223F1
+0x3F57 0x223FD
+0x3F58 0x2245E
+0x3F59-0x3F5A 0x22496
+0x3F5B 0x2249C
+0x3F5C 0x2249B
+0x3F5D 0x22495
+0x3F5E 0x2F89A
+0x3F5F 0x2251A
+0x3F60 0x22509
+0x3F61 0x22504
+0x3F62 0x2250E
+0x3F63 0x2251C
+0x3F64 0x22518
+0x3F65 0x2250D
+0x3F66 0x22510
+0x3F67 0x2250C
+0x3F68 0x22503
+0x3F69 0x2267B
+0x3F6A 0x226A6
+0x3F6B 0x22677
+0x3F6C 0x22688
+0x3F6D 0x22674
+0x3F6E 0x226DA
+0x3F6F 0x22676
+0x3F70 0x22678
+0x3F71 0x2268A
+0x3F72 0x2268F
+0x3F73 0x2267D
+0x3F74 0x22690
+0x3F75 0x226ED
+0x3F76 0x226D9
+0x3F77 0x226D0
+0x3F78 0x2271A
+0x3F79 0x226D7
+0x3F7A 0x226E2
+0x3F7B 0x226E1
+0x3F7C 0x226C5
+0x3F7D 0x226E0
+0x3F7E 0x226CA
+0x4021 0x22725
+0x4022 0x226CC
+0x4023 0x2F8B3
+0x4024 0x229C6
+0x4025 0x229C1
+0x4026 0x22A4D
+0x4027 0x22B4B
+0x4028 0x22B64
+0x4029 0x22B95
+0x402A 0x22B99
+0x402B 0x2F8BC
+0x402C 0x22B94
+0x402D 0x22BA2
+0x402E 0x22BAE
+0x402F 0x22B9E
+0x4030 0x22BA7
+0x4031 0x22B86
+0x4032 0x39FD
+0x4033 0x22BA4
+0x4034 0x22B91
+0x4035 0x22B93
+0x4036 0x2F8BB
+0x4037 0x22B88
+0x4038 0x22ECD
+0x4039 0x22ECA
+0x403A-0x403B 0x22F3F
+0x403C 0x22F46
+0x403D 0x22F41
+0x403E 0x22F45
+0x403F 0x22F58
+0x4040 0x22F3B
+0x4041 0x22F48
+0x4042 0x2304E
+0x4043 0x23052
+0x4044 0x2304F
+0x4045 0x2307B
+0x4046 0x2307A
+0x4047 0x230A0
+0x4048 0x2309F
+0x4049 0x230FB
+0x404A 0x230F7
+0x404B-0x404C 0x231B8
+0x404D 0x231BB
+0x404E 0x231B7
+0x404F 0x3AF4
+0x4050 0x231BA
+0x4051 0x3AEF
+0x4052 0x231DA
+0x4053 0x231B5
+0x4054 0x231BF
+0x4055 0x231BC
+0x4056 0x231C0
+0x4057 0x2F8D3
+0x4058 0x2F8D9
+0x4059 0x23375
+0x405A 0x23379
+0x405B 0x23376
+0x405C 0x23435
+0x405D 0x23440
+0x405E 0x234C0
+0x405F 0x23481
+0x4060 0x234AD
+0x4061 0x234AF
+0x4062 0x234AC
+0x4063 0x2348F
+0x4064 0x234A8
+0x4065 0x234AA
+0x4066 0x234A9
+0x4067 0x23488
+0x4068-0x4069 0x2347F
+0x406A 0x234BC
+0x406B 0x238AE
+0x406C 0x238BB
+0x406D 0x238BD
+0x406E 0x3C31
+0x406F 0x23978
+0x4070 0x23974
+0x4071 0x23A0C
+0x4072 0x23A11
+0x4073 0x23A08
+0x4074 0x23A06
+0x4075 0x23A10
+0x4076-0x4077 0x23A8F
+0x4078-0x4079 0x23A8D
+0x407A 0x23A96
+0x407B 0x23A95
+0x407C-0x407D 0x23B0B
+0x407E 0x23B7C
+0x4121 0x23B73
+0x4122-0x4123 0x23B75
+0x4124 0x23B7D
+0x4125 0x23B78
+0x4126 0x23B71
+0x4127 0x23C4B
+0x4128 0x23C4E
+0x4129 0x23D33
+0x412A 0x23D32
+0x412B 0x3D03
+0x412C 0x23D91
+0x412D 0x23DE7
+0x412E 0x23DE9
+0x412F 0x23DA2
+0x4130 0x23D94
+0x4131 0x23D87
+0x4132 0x23DA3
+0x4133 0x23DDD
+0x4134 0x23D7B
+0x4135 0x23D83
+0x4136 0x23D81
+0x4137 0x23DDF
+0x4138 0x23D7C
+0x4139 0x23DE4
+0x413A 0x23DE2
+0x413B 0x23D93
+0x413C 0x23D7D
+0x413D 0x23DBF
+0x413E 0x23D9B
+0x413F 0x23D8E
+0x4140 0x23D9F
+0x4141 0x3D09
+0x4142 0x23D8C
+0x4143 0x23D7F
+0x4144 0x23D9C
+0x4145 0x23D84
+0x4146 0x23D42
+0x4147 0x23DE6
+0x4148 0x24251
+0x4149 0x2424A
+0x414A 0x24264
+0x414B 0x24225
+0x414C 0x2422F
+0x414D 0x2422E
+0x414E 0x2422B
+0x414F 0x24228
+0x4150 0x24232
+0x4151 0x2422D
+0x4152 0x24231
+0x4153 0x24239
+0x4154 0x2422C
+0x4155 0x24261
+0x4156 0x24511
+0x4157 0x24510
+0x4158 0x24512
+0x4159 0x24553
+0x415A 0x24555
+0x415B 0x2457B
+0x415C 0x24581
+0x415D 0x2457D
+0x415E 0x2457C
+0x415F 0x245C2
+0x4160 0x245C5
+0x4161 0x2F922
+0x4162 0x245C4
+0x4163 0x2F923
+0x4164 0x2466B
+0x4165 0x24668
+0x4166 0x3E3E
+0x4167-0x4168 0x2465C
+0x4169 0x2466A
+0x416A 0x2F924
+0x416B 0x24C76
+0x416C 0x24776
+0x416D 0x3E77
+0x416E 0x247C4
+0x416F 0x247CB
+0x4170 0x247C8
+0x4171-0x4172 0x247D4
+0x4173 0x247C9
+0x4174 0x247D7
+0x4175 0x3E7B
+0x4176 0x24978
+0x4177-0x4179 0x2495A
+0x417A 0x24956
+0x417B 0x24958
+0x417C 0x24971
+0x417D 0x269D4
+0x417E 0x24B40
+0x4221 0x2F933
+0x4222 0x24B3F
+0x4223 0x24B43
+0x4224 0x24B41
+0x4225 0x24BE2
+0x4226 0x24BE0
+0x4227 0x24BE3
+0x4228 0x24C66
+0x4229 0x24C73
+0x422A 0x24C6C
+0x422B 0x24C71
+0x422C 0x24C6A
+0x422D-0x422E 0x24C6D
+0x422F 0x24C6B
+0x4230 0x24D8C
+0x4231 0x24D77
+0x4232 0x2F93A
+0x4233 0x24D7F
+0x4234 0x24D89
+0x4235 0x24D7A
+0x4236 0x24D85
+0x4237 0x24D78
+0x4238 0x24D8A
+0x4239 0x24D86
+0x423A 0x24F2C
+0x423B 0x24F67
+0x423C 0x24F5B
+0x423D 0x24FE5
+0x423E 0x24FE1
+0x423F 0x25061
+0x4240-0x4241 0x25069
+0x4242 0x25165
+0x4243 0x2516D
+0x4244 0x25163
+0x4245 0x25186
+0x4246 0x2515C
+0x4247 0x25162
+0x4248 0x2F948
+0x4249 0x25179
+0x424A 0x25169
+0x424B 0x25170
+0x424C 0x25176
+0x424D 0x2515D
+0x424E 0x25187
+0x424F 0x2516E
+0x4250 0x25171
+0x4251 0x2517C
+0x4252 0x25173
+0x4253 0x2515B
+0x4254 0x2516B
+0x4255 0x253BF
+0x4256 0x253C1
+0x4257 0x253BD
+0x4258 0x253C9
+0x4259 0x253BC
+0x425A 0x253C2
+0x425B 0x253C0
+0x425C 0x25492
+0x425D 0x254A9
+0x425E 0x2548F
+0x425F 0x25476
+0x4260 0x2547B
+0x4261 0x25475
+0x4262 0x254A4
+0x4263 0x25664
+0x4264 0x2573D
+0x4265 0x257AF
+0x4266 0x413A
+0x4267 0x2F958
+0x4268 0x2579D
+0x4269 0x25799
+0x426A 0x257B1
+0x426B 0x25963
+0x426C 0x25962
+0x426D 0x25964
+0x426E 0x25969
+0x426F 0x41A0
+0x4270 0x25A75
+0x4271 0x25A73
+0x4272 0x25A71
+0x4273 0x25A74
+0x4274 0x25B0C
+0x4275 0x25B16
+0x4276 0x41E5
+0x4277 0x25B11
+0x4278 0x25B1F
+0x4279 0x25B1A
+0x427A 0x25B0D
+0x427B 0x25B1B
+0x427C 0x25B13
+0x427D 0x25E4E
+0x427E 0x25E55
+0x4321 0x25E50
+0x4322 0x427D
+0x4323-0x4324 0x25FD2
+0x4325 0x25FD1
+0x4326 0x25FF1
+0x4327 0x25FDC
+0x4328 0x25FC8
+0x4329 0x25FCC
+0x432A 0x25FD0
+0x432B 0x25FCF
+0x432C 0x25FDF
+0x432D 0x2622B
+0x432E 0x2622E
+0x432F 0x2622D
+0x4330-0x4332 0x2629D
+0x4333 0x262A9
+0x4334 0x262A0
+0x4335 0x26298
+0x4336 0x262A1
+0x4337 0x262AB
+0x4338 0x262AF
+0x4339 0x2636E
+0x433A 0x2635F
+0x433B 0x2635A
+0x433C 0x436D
+0x433D 0x26365
+0x433E 0x26368
+0x433F 0x26372
+0x4340 0x26417
+0x4341 0x26416
+0x4342-0x4344 0x26418
+0x4345 0x26422
+0x4346-0x4347 0x2641B
+0x4348 0x264BE
+0x4349 0x264EE
+0x434A 0x2655A
+0x434B 0x26550
+0x434C 0x26558
+0x434D 0x26554
+0x434E 0x26557
+0x434F 0x26556
+0x4350 0x26615
+0x4351 0x2669B
+0x4352 0x26693
+0x4353 0x26692
+0x4354 0x26672
+0x4355-0x4356 0x26698
+0x4357 0x266DF
+0x4358 0x43F8
+0x4359 0x266D5
+0x435A 0x8158
+0x435B 0x266D4
+0x435C-0x435D 0x266F3
+0x435E 0x266E7
+0x435F 0x266E1
+0x4360 0x266E6
+0x4361-0x4362 0x266EB
+0x4363 0x202DB
+0x4364 0x4450
+0x4365 0x2690D
+0x4366 0x2690C
+0x4367 0x21B2F
+0x4368 0x26968
+0x4369 0x26965
+0x436A 0x2696B
+0x436B 0x26969
+0x436C 0x269D1
+0x436D 0x269D3
+0x436E-0x436F 0x26A27
+0x4370 0x4468
+0x4371 0x4467
+0x4372 0x26A24
+0x4373 0x26AD7
+0x4374 0x26BCA
+0x4375 0x26BC7
+0x4376 0x2F99E
+0x4377 0x26BD8
+0x4378 0x26BE1
+0x4379 0x26BC6
+0x437A 0x26BF8
+0x437B 0x26BC3
+0x437C 0x26BF4
+0x437D 0x26C17
+0x437E 0x26BEA
+0x4421 0x26BCB
+0x4422 0x26B86
+0x4423 0x26BC4
+0x4424 0x26BD9
+0x4425 0x26C19
+0x4426 0x26BC2
+0x4427 0x26BE2
+0x4428 0x44CF
+0x4429 0x26BDE
+0x442A 0x26BED
+0x442B 0x2F99C
+0x442C 0x44CD
+0x442D 0x26C1D
+0x442E 0x26BDD
+0x442F 0x26BDB
+0x4430-0x4431 0x26BE8
+0x4432 0x26BBF
+0x4433 0x26BE0
+0x4434 0x26BD1
+0x4435 0x26BDC
+0x4436 0x26BCE
+0x4437 0x26C1E
+0x4438 0x26BCC
+0x4439-0x443A 0x26BF2
+0x443B 0x2F99F
+0x443C-0x443D 0x2F9A2
+0x443E 0x2F9A1
+0x443F 0x271AB
+0x4440 0x271AA
+0x4441 0x271A7
+0x4442 0x271A9
+0x4443 0x27288
+0x4444 0x27275
+0x4445 0x27260
+0x4446 0x2726C
+0x4447 0x27273
+0x4448 0x45AB
+0x4449 0x2726E
+0x444A 0x27274
+0x444B 0x27276
+0x444C 0x27268
+0x444D 0x27277
+0x444E 0x27286
+0x444F 0x275EA
+0x4450 0x27651
+0x4451 0x27650
+0x4452 0x27658
+0x4453 0x2764D
+0x4454 0x2764F
+0x4455 0x2764E
+0x4456 0x2765C
+0x4457 0x27652
+0x4458 0x27644
+0x4459-0x445A 0x2764A
+0x445B 0x277EA
+0x445C-0x445D 0x27810
+0x445E 0x278CD
+0x445F 0x278BF
+0x4460 0x278C4
+0x4461 0x278D0
+0x4462 0x278CE
+0x4463 0x278C0
+0x4464 0x278C2
+0x4465 0x278CF
+0x4466 0x278C9
+0x4467 0x278BB
+0x4468 0x27997
+0x4469 0x27992
+0x446A 0x2796F
+0x446B 0x2797E
+0x446C 0x2799A
+0x446D 0x46C1
+0x446E 0x27986
+0x446F 0x27973
+0x4470 0x8A24
+0x4471 0x27977
+0x4472 0x2798F
+0x4473 0x27970
+0x4474-0x4475 0x27981
+0x4476 0x27999
+0x4477 0x2797D
+0x4478 0x2797F
+0x4479 0x2797B
+0x447A 0x27987
+0x447B 0x27BB2
+0x447C 0x27C2F
+0x447D 0x27C34
+0x447E 0x27C2E
+0x4521 0x27C32
+0x4522 0x4747
+0x4523 0x27CAA
+0x4524 0x4757
+0x4525 0x27CA9
+0x4526 0x27D38
+0x4527-0x4528 0x27D36
+0x4529 0x27D47
+0x452A 0x27D33
+0x452B 0x27D39
+0x452C 0x27D35
+0x452D 0x27D44
+0x452E-0x452F 0x27EA5
+0x4530 0x27E9E
+0x4531 0x27FE3
+0x4532 0x27FDF
+0x4533 0x27FD3
+0x4534 0x27FF1
+0x4535 0x27FE4
+0x4536 0x27FE0
+0x4537 0x27FD6
+0x4538 0x8DC3
+0x4539 0x27FE6
+0x453A 0x27FD8
+0x453B 0x27FDE
+0x453C-0x453D 0x27FDB
+0x453E 0x2821B
+0x453F 0x2821F
+0x4540 0x2821D
+0x4541 0x2821C
+0x4542 0x2821E
+0x4543-0x4544 0x28220
+0x4545 0x484E
+0x4546 0x282B6
+0x4547 0x282BC
+0x4548-0x4549 0x282C6
+0x454A 0x282BA
+0x454B 0x282BE
+0x454C 0x282BD
+0x454D 0x282B5
+0x454E 0x282B4
+0x454F 0x2840F
+0x4550 0x28462
+0x4551 0x284EB
+0x4552 0x284D9
+0x4553 0x284E4
+0x4554-0x4555 0x284D7
+0x4556 0x284D6
+0x4557 0x284CE
+0x4558 0x284DD
+0x4559 0x284E7
+0x455A 0x284D2
+0x455B 0x284C5
+0x455C 0x284C9
+0x455D 0x284DB
+0x455E 0x28692
+0x455F-0x4560 0x2868A
+0x4561 0x28689
+0x4562 0x28708
+0x4563 0x28703
+0x4564 0x28706
+0x4565 0x28705
+0x4566 0x286F5
+0x4567 0x2870B
+0x4568 0x286FB
+0x4569 0x287FC
+0x456A-0x456B 0x28801
+0x456C 0x287FA
+0x456D 0x28808
+0x456E 0x287F7
+0x456F 0x28800
+0x4570 0x287FF
+0x4571 0x28806
+0x4572 0x287F6
+0x4573 0x287FB
+0x4574 0x2880A
+0x4575 0x28925
+0x4576-0x4577 0x28943
+0x4578 0x28C64
+0x4579 0x28C62
+0x457A 0x28C5E
+0x457B 0x28C5B
+0x457C 0x28CD6
+0x457D 0x20072
+0x457E 0x200C2
+0x4621 0x28E77
+0x4622 0x28E82
+0x4623-0x4624 0x28E7C
+0x4625 0x28E86
+0x4626 0x28E81
+0x4627 0x28E84
+0x4628 0x28E76
+0x4629 0x28E83
+0x462A 0x28E7F
+0x462B 0x28E7E
+0x462C 0x28F88
+0x462D 0x28F8D
+0x462E 0x28F8B
+0x462F 0x28F91
+0x4630 0x28F8F
+0x4631 0x2907C
+0x4632-0x4633 0x29079
+0x4634 0x291EA
+0x4635 0x2944C
+0x4636 0x29599
+0x4637 0x202D1
+0x4638 0x2968B
+0x4639 0x2968D
+0x463A 0x2968A
+0x463B 0x2968E
+0x463C 0x29811
+0x463D 0x22256
+0x463E 0x2FA15
+0x463F 0x20074
+0x4640-0x4641 0x200C3
+0x4642 0x2011B
+0x4643 0x2015F
+0x4644 0x2016A
+0x4645 0x20169
+0x4646 0x2016B
+0x4647 0x2030C
+0x4648 0x202F6
+0x4649 0x202ED
+0x464A 0x20329
+0x464B 0x202FE
+0x464C 0x202F1
+0x464D 0x20317
+0x464E 0x202FF
+0x464F 0x202EE
+0x4650 0x202FD
+0x4651 0x2031C
+0x4652 0x202FC
+0x4653 0x20300
+0x4654 0x20320
+0x4655 0x3477
+0x4656 0x202F9
+0x4657 0x20367
+0x4658 0x20308
+0x4659 0x2049E
+0x465A 0x204F3
+0x465B 0x20525
+0x465C 0x20527
+0x465D 0x2051F
+0x465E 0x20565
+0x465F 0x20563
+0x4660 0x20594
+0x4661 0x20597
+0x4662 0x205F1
+0x4663 0x2065F
+0x4664 0x20662
+0x4665 0x51F2
+0x4666 0x20660
+0x4667 0x2F822
+0x4668 0x2078C
+0x4669 0x20782
+0x466A 0x20790
+0x466B 0x2078B
+0x466C 0x2078D
+0x466D 0x20781
+0x466E 0x2079D
+0x466F-0x4670 0x2088E
+0x4671 0x20892
+0x4672 0x20923
+0x4673 0x20952
+0x4674 0x2F82E
+0x4675-0x4677 0x20A00
+0x4678 0x20A1F
+0x4679 0x20A8C
+0x467A 0x20A89
+0x467B 0x20A8B
+0x467C 0x20A88
+0x467D 0x20A8D
+0x467E 0x20A8F
+0x4721 0x26385
+0x4722 0x20B00
+0x4723 0x20B05
+0x4724 0x20B01
+0x4725 0x20B68
+0x4726 0x20B6E
+0x4727 0x20B67
+0x4728 0x20B75
+0x4729 0x55B6
+0x472A 0x2F845
+0x472B 0x20DD7
+0x472C 0x2F846
+0x472D 0x20048
+0x472E 0x20DD4
+0x472F 0x20DD8
+0x4730-0x4731 0x2F847
+0x4732 0x20DBA
+0x4733 0x2F849
+0x4734 0x20DDB
+0x4735 0x20DBF
+0x4736 0x20E35
+0x4737 0x20DBC
+0x4738 0x20DD9
+0x4739 0x35C4
+0x473A 0x20DDD
+0x473B 0x20E00
+0x473C 0x20DD5
+0x473D 0x20E30
+0x473E 0x20DBD
+0x473F 0x20DDC
+0x4740-0x4741 0x211FD
+0x4742 0x21207
+0x4743 0x24517
+0x4744 0x2136F
+0x4745 0x21369
+0x4746 0x21370
+0x4747 0x21367
+0x4748 0x213A9
+0x4749 0x21395
+0x474A 0x21390
+0x474B 0x2136C
+0x474C 0x21397
+0x474D 0x21371
+0x474E 0x3652
+0x474F 0x21374
+0x4750 0x2136D
+0x4751 0x2138E
+0x4752 0x2152F
+0x4753 0x2A31B
+0x4754 0x215A9
+0x4755 0x2164E
+0x4756 0x2F85F
+0x4757 0x2165A
+0x4758 0x21648
+0x4759 0x21655
+0x475A 0x2164C
+0x475B 0x21649
+0x475C 0x2164F
+0x475D 0x2164A
+0x475E 0x217D6
+0x475F 0x217A0
+0x4760 0x217A9
+0x4761 0x2F867
+0x4762 0x2179D
+0x4763 0x217D4
+0x4764 0x217A4
+0x4765 0x217A8
+0x4766 0x217A6
+0x4767 0x217E6
+0x4768 0x2197D
+0x4769 0x21977
+0x476A 0x2197A
+0x476B 0x21A41
+0x476C 0x21A49
+0x476D 0x21A59
+0x476E 0x21A45
+0x476F 0x21A48
+0x4770 0x21A40
+0x4771 0x21B8E
+0x4772 0x21B95
+0x4773 0x21B90
+0x4774-0x4775 0x21BF7
+0x4776 0x21BF6
+0x4777 0x21BFB
+0x4778 0x21C9E
+0x4779 0x21C9D
+0x477A 0x21C99
+0x477B 0x2F877
+0x477C 0x21CA3
+0x477D 0x21CA9
+0x477E 0x21C98
+0x4821 0x21CA0
+0x4822 0x21C96
+0x4823-0x4824 0x21C94
+0x4825 0x21C9F
+0x4826 0x21CA1
+0x4827 0x21D21
+0x4828 0x21D1D
+0x4829 0x21D1F
+0x482A 0x21E6D
+0x482B 0x2F87C
+0x482C 0x21E9A
+0x482D 0x21E92
+0x482E 0x21E7A
+0x482F 0x21E7D
+0x4830 0x21EA1
+0x4831 0x21E9D
+0x4832 0x21E99
+0x4833 0x21E6B
+0x4834 0x21E6E
+0x4835 0x2F87D
+0x4836 0x22045
+0x4837 0x2F884
+0x4838 0x220FB
+0x4839 0x220EB
+0x483A 0x220F2
+0x483B 0x220F9
+0x483C 0x2F886
+0x483D 0x220F8
+0x483E 0x220ED
+0x483F 0x22101
+0x4840 0x220F7
+0x4841 0x22106
+0x4842 0x2219B
+0x4843 0x221CA
+0x4844 0x386B
+0x4845 0x5EC3
+0x4846-0x4847 0x2226B
+0x4848 0x22274
+0x4849 0x22267
+0x484A 0x2225B
+0x484B 0x22260
+0x484C 0x22276
+0x484D 0x22263
+0x484E 0x22261
+0x484F 0x22328
+0x4850 0x2235B
+0x4851 0x2235E
+0x4852 0x22360
+0x4853 0x2235D
+0x4854 0x2235C
+0x4855 0x223F4
+0x4856 0x22400
+0x4857 0x22408
+0x4858 0x22407
+0x4859 0x22401
+0x485A 0x22405
+0x485B 0x22464
+0x485C 0x22463
+0x485D 0x2249E
+0x485E-0x485F 0x224A0
+0x4860 0x2249F
+0x4861 0x22526
+0x4862 0x2252D
+0x4863 0x22528
+0x4864 0x2251D
+0x4865 0x226EC
+0x4866 0x226E3
+0x4867 0x226EB
+0x4868 0x22716
+0x4869 0x226C8
+0x486A 0x2661B
+0x486B 0x226E9
+0x486C 0x226E4
+0x486D 0x22724
+0x486E 0x226D1
+0x486F 0x3941
+0x4870 0x226DD
+0x4871 0x226C2
+0x4872 0x226CB
+0x4873 0x226C7
+0x4874 0x226E7
+0x4875 0x3950
+0x4876 0x226EA
+0x4877 0x2274B
+0x4878 0x2F8A5
+0x4879 0x22760
+0x487A 0x2277D
+0x487B 0x2273E
+0x487C 0x2F8A4
+0x487D 0x22752
+0x487E 0x2274E
+0x4921 0x2273C
+0x4922 0x22732
+0x4923 0x22730
+0x4924 0x22723
+0x4925-0x4926 0x229CA
+0x4927 0x229C9
+0x4928 0x229C8
+0x4929 0x229CD
+0x492A 0x22B98
+0x492B 0x22BA0
+0x492C 0x22B9F
+0x492D 0x22B9C
+0x492E 0x22BA3
+0x492F 0x22B97
+0x4930 0x2F8BE
+0x4931 0x22BF1
+0x4932 0x22C09
+0x4933 0x22C03
+0x4934 0x22BEA
+0x4935 0x22C45
+0x4936 0x22BED
+0x4937 0x22C05
+0x4938 0x22C1A
+0x4939 0x22C15
+0x493A 0x22C01
+0x493B 0x22BEC
+0x493C 0x22C0E
+0x493D 0x22C17
+0x493E 0x22C42
+0x493F 0x22C12
+0x4940 0x22C10
+0x4941 0x22BEF
+0x4942-0x4943 0x22BFF
+0x4944 0x22C0C
+0x4945 0x22C0F
+0x4946 0x22C04
+0x4947 0x22C08
+0x4948 0x22C14
+0x4949 0x22C43
+0x494A 0x2F8BD
+0x494B 0x22C1B
+0x494C 0x22C11
+0x494D 0x22C13
+0x494E 0x22ECF
+0x494F 0x22ECE
+0x4950 0x22F6F
+0x4951 0x22F6E
+0x4952 0x22F7A
+0x4953 0x22F70
+0x4954 0x22F64
+0x4955 0x22F5E
+0x4956 0x22F6C
+0x4957 0x2F8C9
+0x4958 0x22F5B
+0x4959 0x22F61
+0x495A 0x22F65
+0x495B-0x495C 0x2307F
+0x495D 0x2307C
+0x495E 0x230A7
+0x495F 0x230A6
+0x4960 0x230A1
+0x4961 0x3AC0
+0x4962 0x230A8
+0x4963 0x230A3
+0x4964 0x230A2
+0x4965 0x230AD
+0x4966 0x230A5
+0x4967 0x23101
+0x4968 0x230FF
+0x4969 0x230FC
+0x496A 0x23100
+0x496B 0x23135
+0x496C-0x496D 0x231EE
+0x496E 0x231F6
+0x496F 0x231E8
+0x4970 0x231EA
+0x4971 0x231E3
+0x4972 0x2321F
+0x4973 0x3AFC
+0x4974 0x231E4
+0x4975 0x231FA
+0x4976 0x231F1
+0x4977 0x231FB
+0x4978 0x2F8D4
+0x4979 0x2333D
+0x497A 0x2333C
+0x497B 0x3479
+0x497C 0x23378
+0x497D 0x23377
+0x497E 0x440B
+0x4A21 0x234D1
+0x4A22 0x234C7
+0x4A23 0x234DF
+0x4A24 0x234D0
+0x4A25 0x234E0
+0x4A26 0x234D6
+0x4A27 0x234D8
+0x4A28 0x23516
+0x4A29 0x2350E
+0x4A2A 0x234D9
+0x4A2B 0x2350F
+0x4A2C 0x23511
+0x4A2D 0x234CD
+0x4A2E 0x23489
+0x4A2F 0x234CE
+0x4A30 0x23514
+0x4A31 0x234DA
+0x4A32 0x23512
+0x4A33 0x234D3
+0x4A34 0x234C2
+0x4A35 0x234E1
+0x4A36-0x4A37 0x234E9
+0x4A38 0x234DE
+0x4A39 0x23515
+0x4A3A 0x238D9
+0x4A3B 0x238D6
+0x4A3C 0x238CD
+0x4A3D 0x238D0
+0x4A3E 0x238D3
+0x4A3F 0x2F8F0
+0x4A40 0x23982
+0x4A41 0x23985
+0x4A42 0x2397F
+0x4A43 0x2397D
+0x4A44 0x23981
+0x4A45-0x4A46 0x23983
+0x4A47 0x284A0
+0x4A48 0x23A28
+0x4A49 0x23A0F
+0x4A4A 0x23A17
+0x4A4B 0x23A1A
+0x4A4C 0x23A25
+0x4A4D 0x2F8F7
+0x4A4E 0x23A9B
+0x4A4F 0x23A99
+0x4A50 0x23B92
+0x4A51 0x23B8C
+0x4A52 0x23B95
+0x4A53 0x23B8D
+0x4A54 0x23BA3
+0x4A55 0x23B93
+0x4A56 0x23B91
+0x4A57 0x23DDB
+0x4A58-0x4A59 0x23D99
+0x4A5A 0x23E08
+0x4A5B 0x23E4C
+0x4A5C 0x23E0D
+0x4A5D 0x23E01
+0x4A5E 0x23E4E
+0x4A5F 0x23E02
+0x4A60 0x23E4D
+0x4A61 0x23E21
+0x4A62 0x23DFC
+0x4A63 0x2F909
+0x4A64 0x23D8A
+0x4A65 0x2F908
+0x4A66 0x23D95
+0x4A67-0x4A68 0x23E11
+0x4A69 0x23E46
+0x4A6A 0x23E1C
+0x4A6B 0x23E49
+0x4A6C 0x23E0C
+0x4A6D 0x3D1E
+0x4A6E 0x23E13
+0x4A6F 0x23E16
+0x4A70 0x23DFD
+0x4A71 0x23E0F
+0x4A72 0x23E1F
+0x4A73 0x24230
+0x4A74 0x2426E
+0x4A75 0x2426B
+0x4A76 0x2429B
+0x4A77 0x2427B
+0x4A78 0x24263
+0x4A79 0x24297
+0x4A7A 0x2426D
+0x4A7B 0x2429C
+0x4A7C 0x24298
+0x4A7D 0x2426F
+0x4A7E 0x24267
+0x4B21 0x24269
+0x4B22 0x24515
+0x4B23 0x24563
+0x4B24 0x24586
+0x4B25 0x2458A
+0x4B26-0x4B27 0x24587
+0x4B28 0x24585
+0x4B29 0x24589
+0x4B2A 0x245CA
+0x4B2B 0x245C7
+0x4B2C-0x4B2D 0x245CB
+0x4B2E 0x245C9
+0x4B2F 0x2460D
+0x4B30-0x4B31 0x24683
+0x4B32 0x24678
+0x4B33 0x24682
+0x4B34 0x24673
+0x4B35 0x24679
+0x4B36 0x2468C
+0x4B37 0x247D0
+0x4B38 0x247CF
+0x4B39 0x247D2
+0x4B3A 0x247D9
+0x4B3B 0x247CC
+0x4B3C 0x247EB
+0x4B3D 0x247FD
+0x4B3E 0x247EC
+0x4B3F 0x247E8
+0x4B40 0x247F8
+0x4B41 0x247FA
+0x4B42 0x2F927
+0x4B43 0x3E85
+0x4B44 0x247E1
+0x4B45 0x247FB
+0x4B46 0x248E7
+0x4B47 0x2F92E
+0x4B48 0x249A5
+0x4B49 0x24991
+0x4B4A 0x249A6
+0x4B4B 0x2497C
+0x4B4C 0x24992
+0x4B4D 0x249A2
+0x4B4E 0x249A0
+0x4B4F 0x24AFC
+0x4B50 0x24AFE
+0x4B51 0x24B57
+0x4B52 0x24B53
+0x4B53 0x24B58
+0x4B54 0x24BE7
+0x4B55 0x24C8E
+0x4B56 0x2F938
+0x4B57 0x24C83
+0x4B58 0x24C8B
+0x4B59 0x24C84
+0x4B5A 0x3F97
+0x4B5B 0x24DA2
+0x4B5C 0x24DB7
+0x4B5D 0x24DA9
+0x4B5E 0x24DA5
+0x4B5F 0x24D9F
+0x4B60 0x24DAA
+0x4B61 0x24D97
+0x4B62 0x24DA1
+0x4B63 0x24D9E
+0x4B64 0x24DAB
+0x4B65 0x24D99
+0x4B66 0x24DA3
+0x4B67 0x24F30
+0x4B68 0x24F32
+0x4B69 0x24F2F
+0x4B6A 0x24F70
+0x4B6B 0x24F6C
+0x4B6C 0x24F6F
+0x4B6D 0x24FE8
+0x4B6E 0x24FEE
+0x4B6F 0x24FEA
+0x4B70 0x2506D
+0x4B71 0x25076
+0x4B72-0x4B73 0x25070
+0x4B74 0x2506C
+0x4B75 0x251EB
+0x4B76 0x251B5
+0x4B77 0x25196
+0x4B78 0x25190
+0x4B79 0x2518D
+0x4B7A 0x2F949
+0x4B7B 0x251A2
+0x4B7C 0x251B0
+0x4B7D 0x25192
+0x4B7E 0x251A0
+0x4C21 0x25193
+0x4C22 0x251C3
+0x4C23 0x2518E
+0x4C24 0x251B6
+0x4C25 0x2519D
+0x4C26 0x25195
+0x4C27 0x251B3
+0x4C28 0x251A4
+0x4C29 0x25370
+0x4C2A 0x253D4
+0x4C2B 0x4093
+0x4C2C 0x253CF
+0x4C2D 0x20170
+0x4C2E 0x25494
+0x4C2F 0x7861
+0x4C30 0x254C0
+0x4C31 0x254B4
+0x4C32 0x254C1
+0x4C33 0x40B2
+0x4C34 0x254BD
+0x4C35 0x254AF
+0x4C36-0x4C37 0x25677
+0x4C38 0x2566B
+0x4C39-0x4C3A 0x2566D
+0x4C3B 0x25672
+0x4C3C 0x2566F
+0x4C3D 0x25671
+0x4C3E 0x230AB
+0x4C3F 0x2568C
+0x4C40 0x2573F
+0x4C41-0x4C42 0x257B6
+0x4C43 0x7A06
+0x4C44 0x257BB
+0x4C45 0x257B8
+0x4C46 0x2079C
+0x4C47 0x257B9
+0x4C48 0x7A01
+0x4C49 0x2598B
+0x4C4A 0x2597A
+0x4C4B 0x25984
+0x4C4C 0x25988
+0x4C4D 0x25991
+0x4C4E 0x25979
+0x4C4F 0x2598E
+0x4C50 0x25980
+0x4C51 0x25982
+0x4C52 0x2597C
+0x4C53 0x41A4
+0x4C54 0x25A84
+0x4C55 0x25A7F
+0x4C56 0x41F2
+0x4C57 0x25B3B
+0x4C58 0x25B71
+0x4C59 0x25B3D
+0x4C5A 0x25B30
+0x4C5B 0x41F1
+0x4C5C 0x25B3E
+0x4C5D 0x25B38
+0x4C5E 0x25E5E
+0x4C5F 0x25E64
+0x4C60 0x4281
+0x4C61 0x25E5D
+0x4C62 0x25E6D
+0x4C63 0x25E4F
+0x4C64 0x25E62
+0x4C65 0x25E5F
+0x4C66 0x25FEC
+0x4C67 0x25FF2
+0x4C68 0x25FF4
+0x4C69 0x25FF7
+0x4C6A 0x25FF6
+0x4C6B 0x26007
+0x4C6C 0x25FED
+0x4C6D 0x25FEA
+0x4C6E 0x25FF0
+0x4C6F 0x25FF8
+0x4C70 0x25FF3
+0x4C71 0x42DC
+0x4C72 0x2F972
+0x4C73 0x26231
+0x4C74 0x2622F
+0x4C75 0x262B6
+0x4C76 0x262AE
+0x4C77 0x262AA
+0x4C78 0x262BF
+0x4C79 0x262CC
+0x4C7A 0x262C7
+0x4C7B 0x26C83
+0x4C7C 0x26380
+0x4C7D 0x2637B
+0x4C7E 0x2637F
+0x4D21 0x2637D
+0x4D22 0x26383
+0x4D23 0x2F978
+0x4D24 0x26446
+0x4D25 0x2642D
+0x4D26-0x4D27 0x26425
+0x4D28 0x2642C
+0x4D29 0x26437
+0x4D2A 0x26431
+0x4D2B 0x26433
+0x4D2C 0x26432
+0x4D2D 0x26427
+0x4D2E 0x2642A
+0x4D2F-0x4D30 0x2642E
+0x4D31 0x264C0
+0x4D32 0x26571
+0x4D33-0x4D34 0x26561
+0x4D35 0x26566
+0x4D36 0x26618
+0x4D37 0x266C5
+0x4D38-0x4D39 0x266C3
+0x4D3A 0x266C2
+0x4D3B 0x266AE
+0x4D3C 0x26710
+0x4D3D 0x26708
+0x4D3E 0x2671F
+0x4D3F-0x4D40 0x2673A
+0x4D41 0x26736
+0x4D42 0x2670C
+0x4D43 0x26706
+0x4D44 0x2672A
+0x4D45 0x26757
+0x4D46 0x26750
+0x4D47 0x26720
+0x4D48 0x2F985
+0x4D49 0x2672C
+0x4D4A 0x26721
+0x4D4B 0x2670B
+0x4D4C 0x26719
+0x4D4D 0x26735
+0x4D4E 0x26718
+0x4D4F 0x2670F
+0x4D50 0x26713
+0x4D51 0x26755
+0x4D52 0x26739
+0x4D53 0x2671A
+0x4D54 0x440C
+0x4D55 0x26717
+0x4D56 0x268E4
+0x4D57 0x268E9
+0x4D58 0x2458B
+0x4D59 0x26910
+0x4D5A 0x26912
+0x4D5B 0x2693F
+0x4D5C 0x2696E
+0x4D5D 0x24518
+0x4D5E 0x2F98C
+0x4D5F 0x269D6
+0x4D60 0x269D5
+0x4D61 0x269D7
+0x4D62 0x20B02
+0x4D63 0x446D
+0x4D64 0x26A31
+0x4D65 0x26A30
+0x4D66 0x26A3A
+0x4D67 0x26B85
+0x4D68 0x26B6B
+0x4D69 0x26C48
+0x4D6A 0x26C4B
+0x4D6B 0x26C37
+0x4D6C 0x26C7B
+0x4D6D 0x26C6C
+0x4D6E 0x26C85
+0x4D6F 0x26C65
+0x4D70 0x26C36
+0x4D71 0x26C86
+0x4D72 0x26C34
+0x4D73 0x26C68
+0x4D74 0x26C5A
+0x4D75 0x26C58
+0x4D76 0x26C72
+0x4D77 0x26C6A
+0x4D78 0x26BD3
+0x4D79 0x26C3C
+0x4D7A 0x26C33
+0x4D7B 0x26C3B
+0x4D7C 0x26C4D
+0x4D7D 0x26C4F
+0x4D7E 0x26C7C
+0x4E21 0x26CB0
+0x4E22 0x26C5B
+0x4E23 0x26C55
+0x4E24 0x26C64
+0x4E25 0x26C6B
+0x4E26 0x26C53
+0x4E27 0x44E6
+0x4E28 0x26C57
+0x4E29 0x26C5E
+0x4E2A 0x26C6D
+0x4E2B 0x26C35
+0x4E2C 0x26C69
+0x4E2D 0x26C59
+0x4E2E 0x26C66
+0x4E2F-0x4E30 0x26C50
+0x4E31 0x26C5C
+0x4E32 0x26D5D
+0x4E33 0x26C87
+0x4E34 0x26C78
+0x4E35 0x26C49
+0x4E36 0x26C4E
+0x4E37 0x26BF1
+0x4E38 0x26C73
+0x4E39 0x26C88
+0x4E3A 0x26BCF
+0x4E3B 0x2F9A4
+0x4E3C 0x271B1
+0x4E3D 0x271B3
+0x4E3E 0x2729C
+0x4E3F 0x272A4
+0x4E40 0x27290
+0x4E41 0x272B8
+0x4E42 0x272A0
+0x4E43 0x2729D
+0x4E44-0x4E45 0x272A8
+0x4E46 0x2F9B9
+0x4E47 0x272B1
+0x4E48 0x27293
+0x4E49 0x2729B
+0x4E4A 0x272A2
+0x4E4B 0x272A1
+0x4E4C 0x272B0
+0x4E4D 0x272A7
+0x4E4E 0x275B3
+0x4E4F 0x8849
+0x4E50 0x275B4
+0x4E51 0x275F1
+0x4E52 0x275ED
+0x4E53 0x275EC
+0x4E54 0x27668
+0x4E55 0x27675
+0x4E56 0x2766A
+0x4E57 0x27662
+0x4E58 0x27667
+0x4E59 0x27660
+0x4E5A 0x27677
+0x4E5B 0x2765F
+0x4E5C 0x27679
+0x4E5D 0x27823
+0x4E5E 0x27821
+0x4E5F 0x2781C
+0x4E60 0x8999
+0x4E61 0x2781F
+0x4E62 0x2781E
+0x4E63 0x278D6
+0x4E64 0x278D3
+0x4E65 0x278D9
+0x4E66 0x278D7
+0x4E67 0x278D4
+0x4E68 0x278DC
+0x4E69 0x278D8
+0x4E6A 0x279A3
+0x4E6B 0x46D1
+0x4E6C 0x279BE
+0x4E6D 0x279A9
+0x4E6E 0x279A1
+0x4E6F 0x279A0
+0x4E70 0x279AB
+0x4E71 0x279A2
+0x4E72 0x279BA
+0x4E73 0x279C2
+0x4E74 0x2799C
+0x4E75 0x279BB
+0x4E76 0x279AA
+0x4E77 0x279AC
+0x4E78 0x279A5
+0x4E79 0x279C1
+0x4E7A 0x472C
+0x4E7B 0x27BE2
+0x4E7C 0x27C36
+0x4E7D 0x27C3D
+0x4E7E 0x27C3A
+0x4F21 0x22461
+0x4F22 0x27C48
+0x4F23 0x27C3C
+0x4F24 0x27CB7
+0x4F25 0x27CAC
+0x4F26 0x27CB3
+0x4F27 0x27CB6
+0x4F28 0x27CB2
+0x4F29 0x476E
+0x4F2A 0x27D5D
+0x4F2B 0x27D49
+0x4F2C-0x4F2D 0x27D4E
+0x4F2E 0x27D4D
+0x4F2F 0x27D5C
+0x4F30 0x27E5D
+0x4F31 0x27EBB
+0x4F32 0x27ECE
+0x4F33 0x27EBF
+0x4F34 0x27EBA
+0x4F35 0x27EC3
+0x4F36 0x47E5
+0x4F37 0x28006
+0x4F38 0x27FF8
+0x4F39 0x27FFE
+0x4F3A 0x28013
+0x4F3B 0x27FF6
+0x4F3C 0x47E6
+0x4F3D 0x28234
+0x4F3E 0x2822D
+0x4F3F 0x2822A
+0x4F40 0x28235
+0x4F41 0x2822C
+0x4F42 0x282D4
+0x4F43 0x282DA
+0x4F44 0x282D3
+0x4F45 0x282D2
+0x4F46-0x4F47 0x282CE
+0x4F48 0x489F
+0x4F49 0x284FD
+0x4F4A 0x2850B
+0x4F4B 0x284FE
+0x4F4C 0x284F8
+0x4F4D 0x284F7
+0x4F4E 0x28517
+0x4F4F 0x284FA
+0x4F50 0x284F9
+0x4F51 0x28500
+0x4F52 0x284F5
+0x4F53 0x284F1
+0x4F54 0x28503
+0x4F55 0x28505
+0x4F56 0x2851C
+0x4F57 0x286AC
+0x4F58 0x2869A
+0x4F59 0x286AD
+0x4F5A 0x286A0
+0x4F5B 0x2871B
+0x4F5C 0x28725
+0x4F5D 0x28724
+0x4F5E-0x4F60 0x28726
+0x4F61 0x2872A
+0x4F62 0x2871A
+0x4F63 0x2872E
+0x4F64 0x28715
+0x4F65 0x28815
+0x4F66 0x28814
+0x4F67-0x4F68 0x28817
+0x4F69 0x2880F
+0x4F6A 0x28813
+0x4F6B 0x2880B
+0x4F6C 0x28822
+0x4F6D 0x2137A
+0x4F6E 0x28926
+0x4F6F 0x921F
+0x4F70 0x28951
+0x4F71-0x4F72 0x2894D
+0x4F73-0x4F75 0x2894A
+0x4F76 0x28950
+0x4F77 0x28962
+0x4F78 0x2894F
+0x4F79 0x28952
+0x4F7A-0x4F7B 0x28C68
+0x4F7C 0x28CE5
+0x4F7D 0x28CF0
+0x4F7E 0x28CE1
+0x5021 0x28CE2
+0x5022 0x2F9F2
+0x5023 0x28EA5
+0x5024 0x28EA9
+0x5025 0x28EA4
+0x5026 0x28EAF
+0x5027 0x28EAC
+0x5028 0x28EAE
+0x5029 0x28EAA
+0x502A 0x28F95
+0x502B 0x28F99
+0x502C 0x28F93
+0x502D 0x28F9D
+0x502E 0x28F98
+0x502F 0x28F9C
+0x5030 0x28F97
+0x5031 0x4A0D
+0x5032 0x29089
+0x5033 0x29087
+0x5034 0x291D7
+0x5035 0x291ED
+0x5036 0x291F1
+0x5037 0x291F0
+0x5038 0x29205
+0x5039-0x503A 0x29203
+0x503B 0x2925F
+0x503C 0x29457
+0x503D 0x2959C
+0x503E 0x295A1
+0x503F 0x2959A
+0x5040 0x2968F
+0x5041 0x29693
+0x5042 0x2969E
+0x5043 0x296A3
+0x5044-0x5045 0x29698
+0x5046 0x29695
+0x5047 0x2986E
+0x5048 0x2986A
+0x5049 0x29AF4
+0x504A 0x29AF7
+0x504B 0x29C79
+0x504C 0x29F8F
+0x504D 0x29F91
+0x504E 0x2A00B
+0x504F 0x2A502
+0x5050 0x20084
+0x5051 0x20104
+0x5052 0x20180
+0x5053 0x2032F
+0x5054 0x2033F
+0x5055 0x2033B
+0x5056 0x20362
+0x5057 0x20344
+0x5058 0x20333
+0x5059 0x2035F
+0x505A 0x2032B
+0x505B 0x2F809
+0x505C 0x20339
+0x505D 0x20336
+0x505E 0x20348
+0x505F 0x20335
+0x5060 0x2036C
+0x5061 0x20358
+0x5062 0x2033A
+0x5063 0x204A8
+0x5064 0x204F4
+0x5065 0x20529
+0x5066 0x2059A
+0x5067 0x20600
+0x5068 0x207BB
+0x5069 0x207BD
+0x506A 0x207B7
+0x506B 0x207B2
+0x506C 0x34F8
+0x506D 0x207A8
+0x506E 0x207AB
+0x506F 0x207A6
+0x5070 0x207BC
+0x5071 0x20897
+0x5072 0x20896
+0x5073 0x208F8
+0x5074 0x5313
+0x5075 0x20951
+0x5076 0x3533
+0x5077 0x209B5
+0x5078 0x209B4
+0x5079 0x209B6
+0x507A 0x353C
+0x507B 0x209B7
+0x507C 0x20A05
+0x507D 0x20A23
+0x507E 0x20A95
+0x5121 0x20A98
+0x5122 0x354F
+0x5123 0x20A94
+0x5124 0x20A93
+0x5125 0x20B07
+0x5126 0x20B73
+0x5127-0x5128 0x20B71
+0x5129 0x20B78
+0x512A 0x20E5F
+0x512B 0x20E6A
+0x512C 0x20E67
+0x512D 0x20E6B
+0x512E 0x20E69
+0x512F 0x20E8E
+0x5130 0x20E49
+0x5131 0x20E80
+0x5132 0x35DC
+0x5133 0x20E44
+0x5134 0x20E8F
+0x5135 0x20E45
+0x5136 0x2F84C
+0x5137 0x20E4F
+0x5138 0x20E63
+0x5139 0x20E36
+0x513A 0x20E48
+0x513B 0x20E5C
+0x513C 0x20E93
+0x513D 0x20E61
+0x513E 0x20E60
+0x513F 0x20E4E
+0x5140 0x20E5E
+0x5141 0x20E3F
+0x5142 0x20EA4
+0x5143 0x55E0
+0x5144 0x20E68
+0x5145 0x2120B
+0x5146 0x21211
+0x5147-0x5148 0x2120D
+0x5149 0x213C2
+0x514A 0x2F857
+0x514B 0x213B0
+0x514C 0x213C3
+0x514D 0x213C8
+0x514E 0x21365
+0x514F 0x213D7
+0x5150 0x213BD
+0x5151 0x213B8
+0x5152 0x213B6
+0x5153 0x213C7
+0x5154 0x213BC
+0x5155 0x213B1
+0x5156 0x213AF
+0x5157 0x2F85B
+0x5158 0x21535
+0x5159 0x21530
+0x515A 0x2155D
+0x515B 0x20B76
+0x515C 0x2156F
+0x515D 0x215B0
+0x515E 0x2F85E
+0x515F 0x215B4
+0x5160-0x5161 0x2165C
+0x5162 0x21808
+0x5163 0x217EE
+0x5164 0x2180B
+0x5165 0x217F2
+0x5166 0x217FD
+0x5167 0x217F1
+0x5168 0x21810
+0x5169 0x2F868
+0x516A 0x21814
+0x516B-0x516C 0x2198B
+0x516D 0x21985
+0x516E 0x21A7A
+0x516F 0x21A6C
+0x5170 0x21A60
+0x5171 0x21A67
+0x5172 0x21A66
+0x5173 0x21A6A
+0x5174 0x21A5F
+0x5175 0x21A6D
+0x5176 0x21A68
+0x5177 0x21A64
+0x5178-0x5179 0x21B3A
+0x517A 0x21B39
+0x517B 0x21C02
+0x517C 0x21C04
+0x517D 0x21C03
+0x517E 0x21CB4
+0x5221 0x21CB3
+0x5222 0x21CBB
+0x5223 0x21CAC
+0x5224 0x21CB6
+0x5225 0x21CB1
+0x5226 0x21CAF
+0x5227 0x21CB5
+0x5228 0x21CBE
+0x5229 0x21CB2
+0x522A 0x21D24
+0x522B 0x21EB6
+0x522C 0x21EB9
+0x522D 0x21EAC
+0x522E 0x21EB0
+0x522F 0x21ED7
+0x5230 0x21EBB
+0x5231 0x21EFE
+0x5232 0x21ECB
+0x5233 0x2F87F
+0x5234 0x37F5
+0x5235 0x21EB3
+0x5236 0x21EBE
+0x5237 0x21ECD
+0x5238 0x21EBC
+0x5239 0x21EBA
+0x523A 0x21EC7
+0x523B 0x22116
+0x523C 0x2211B
+0x523D 0x22117
+0x523E 0x22115
+0x523F 0x2219F
+0x5240 0x2F88E
+0x5241-0x5242 0x22282
+0x5243 0x2228E
+0x5244 0x2226A
+0x5245 0x22289
+0x5246 0x22294
+0x5247 0x22286
+0x5248 0x22290
+0x5249 0x22362
+0x524A 0x22390
+0x524B 0x2240C
+0x524C 0x2240F
+0x524D 0x38C3
+0x524E 0x224A5
+0x524F 0x224A7
+0x5250 0x224A6
+0x5251 0x224A4
+0x5252 0x22535
+0x5253 0x22538
+0x5254 0x22536
+0x5255 0x22543
+0x5256 0x22547
+0x5257 0x22537
+0x5258 0x22743
+0x5259 0x227A2
+0x525A 0x22751
+0x525B 0x22772
+0x525C 0x2276D
+0x525D 0x2272F
+0x525E 0x22754
+0x525F 0x2276E
+0x5260 0x22755
+0x5261 0x22737
+0x5262-0x5263 0x2274F
+0x5264 0x6139
+0x5265 0x2279E
+0x5266 0x2F8A8
+0x5267 0x227B3
+0x5268 0x227A7
+0x5269 0x3971
+0x526A 0x227F9
+0x526B 0x22791
+0x526C 0x2F8A7
+0x526D 0x227B6
+0x526E 0x227DD
+0x526F 0x22799
+0x5270 0x229DF
+0x5271 0x229D5
+0x5272 0x247F5
+0x5273 0x22C28
+0x5274 0x22C40
+0x5275 0x22C71
+0x5276 0x22C98
+0x5277 0x22C95
+0x5278 0x22C65
+0x5279 0x22C78
+0x527A 0x22C7F
+0x527B 0x22C60
+0x527C 0x22C7C
+0x527D 0x22C96
+0x527E 0x22C6A
+0x5321 0x22C79
+0x5322 0x22C73
+0x5323 0x22C72
+0x5324 0x22C7B
+0x5325 0x22C70
+0x5326 0x22ED5
+0x5327 0x22ED7
+0x5328 0x22F8F
+0x5329 0x22F89
+0x532A 0x22F9E
+0x532B 0x22F87
+0x532C 0x22FA0
+0x532D 0x22F8D
+0x532E 0x22F88
+0x532F 0x22F7F
+0x5330 0x22F8C
+0x5331 0x22F93
+0x5332 0x23059
+0x5333 0x295B0
+0x5334 0x230B1
+0x5335 0x251F4
+0x5336 0x230AF
+0x5337 0x230B2
+0x5338 0x23108
+0x5339 0x2310A
+0x533A-0x533B 0x23136
+0x533C 0x2F8CF
+0x533D 0x3B01
+0x533E 0x23236
+0x533F 0x23229
+0x5340 0x2324A
+0x5341 0x23226
+0x5342 0x23228
+0x5343 0x23224
+0x5344 0x2322A
+0x5345 0x23248
+0x5346 0x23344
+0x5347 0x23384
+0x5348 0x2338C
+0x5349 0x234C4
+0x534A 0x234DC
+0x534B 0x23587
+0x534C 0x23553
+0x534D 0x2357F
+0x534E 0x23531
+0x534F 0x23551
+0x5350 0x2354B
+0x5351 0x23552
+0x5352 0x23580
+0x5353 0x235A5
+0x5354 0x23581
+0x5355 0x23543
+0x5356 0x23534
+0x5357 0x23536
+0x5358 0x23532
+0x5359-0x535A 0x23548
+0x535B 0x2353C
+0x535C 0x2354D
+0x535D 0x2354A
+0x535E 0x2F8E6
+0x535F 0x2358A
+0x5360 0x23546
+0x5361 0x2353E
+0x5362 0x23583
+0x5363 0x23550
+0x5364 0x235B4
+0x5365 0x238F0
+0x5366 0x238E4
+0x5367 0x238E3
+0x5368-0x536A 0x238E5
+0x536B 0x238E1
+0x536C 0x238EF
+0x536D 0x238E8
+0x536E 0x238DD
+0x536F 0x23903
+0x5370 0x23988
+0x5371 0x23A26
+0x5372 0x23A16
+0x5373 0x23A3B
+0x5374 0x23A2F
+0x5375 0x23A39
+0x5376 0x23A34
+0x5377 0x2F8F4
+0x5378 0x23A35
+0x5379 0x23A31
+0x537A 0x23A38
+0x537B 0x20B81
+0x537C 0x23AAA
+0x537D-0x537E 0x23AA3
+0x5421-0x5422 0x23AA0
+0x5423 0x23AA9
+0x5424 0x23AA5
+0x5425 0x23BAF
+0x5426 0x23BB1
+0x5427 0x23BAB
+0x5428 0x23BAE
+0x5429 0x23BB0
+0x542A 0x23BB3
+0x542B 0x23BAC
+0x542C 0x23BA9
+0x542D 0x23BB2
+0x542E 0x23BA8
+0x542F 0x23BB4
+0x5430 0x23BC2
+0x5431 0x23C4F
+0x5432 0x23C66
+0x5433 0x23E1E
+0x5434 0x23E15
+0x5435 0x23E10
+0x5436 0x23E7F
+0x5437 0x23E7E
+0x5438 0x23E60
+0x5439 0x23ECC
+0x543A 0x23EB2
+0x543B 0x23E62
+0x543C-0x543D 0x23E8D
+0x543E 0x23E77
+0x543F 0x23E7C
+0x5440 0x23E8F
+0x5441 0x23E5D
+0x5442 0x23E6D
+0x5443 0x23E63
+0x5444 0x23EAF
+0x5445 0x23E90
+0x5446 0x23E7D
+0x5447 0x23E7A
+0x5448 0x23E06
+0x5449 0x2F90B
+0x544A 0x23E68
+0x544B 0x23EB4
+0x544C 0x23E78
+0x544D 0x23EB1
+0x544E 0x6ED7
+0x544F 0x2F90C
+0x5450 0x3D41
+0x5451-0x5452 0x242E8
+0x5453 0x242C0
+0x5454 0x3DD7
+0x5455 0x242EA
+0x5456 0x242B7
+0x5457 0x242BA
+0x5458 0x242B5
+0x5459 0x2F91D
+0x545A 0x242B4
+0x545B 0x242BC
+0x545C 0x242C6
+0x545D 0x242B8
+0x545E 0x242BD
+0x545F 0x242C2
+0x5460 0x2434D
+0x5461 0x242F0
+0x5462 0x242C7
+0x5463 0x242C1
+0x5464 0x242C3
+0x5465 0x242F1
+0x5466 0x242EC
+0x5467 0x3DE2
+0x5468 0x2451C
+0x5469 0x24520
+0x546A 0x24558
+0x546B 0x24565
+0x546C 0x24564
+0x546D-0x546E 0x2458C
+0x546F 0x245D9
+0x5470 0x245E0
+0x5471 0x24610
+0x5472 0x24694
+0x5473 0x24692
+0x5474 0x24696
+0x5475 0x24695
+0x5476 0x246BF
+0x5477 0x246A0
+0x5478 0x3E45
+0x5479 0x247F4
+0x547A 0x247F6
+0x547B 0x247DC
+0x547C 0x733D
+0x547D 0x24816
+0x547E 0x24815
+0x5521 0x2481C
+0x5522 0x2480F
+0x5523 0x2482C
+0x5524 0x24814
+0x5525 0x24825
+0x5526 0x24817
+0x5527 0x24812
+0x5528 0x2481E
+0x5529 0x24980
+0x552A 0x249A8
+0x552B 0x249AF
+0x552C 0x249D6
+0x552D 0x249E2
+0x552E 0x249B4
+0x552F 0x249B3
+0x5530 0x249B0
+0x5531 0x249B2
+0x5532 0x249A1
+0x5533 0x24B60
+0x5534 0x24B66
+0x5535 0x24B61
+0x5536 0x24B4E
+0x5537 0x24B5D
+0x5538 0x24B63
+0x5539 0x24BE6
+0x553A 0x24BEF
+0x553B 0x24BEC
+0x553C 0x24C98
+0x553D 0x24CA7
+0x553E-0x553F 0x24C94
+0x5540 0x24C91
+0x5541 0x24C9D
+0x5542 0x24C99
+0x5543-0x5544 0x24C9B
+0x5545 0x24D1D
+0x5546 0x24D1C
+0x5547 0x24DD0
+0x5548 0x24DE0
+0x5549 0x24DCB
+0x554A 0x24DDB
+0x554B 0x24DDA
+0x554C 0x24DC2
+0x554D 0x24DD3
+0x554E 0x24DE5
+0x554F 0x24F7D
+0x5550 0x24F7B
+0x5551 0x24FFF
+0x5552 0x3FF2
+0x5553 0x24FF9
+0x5554 0x25077
+0x5555 0x2507C
+0x5556 0x25078
+0x5557 0x2507B
+0x5558 0x2507A
+0x5559 0x251D2
+0x555A 0x251CB
+0x555B 0x251C9
+0x555C 0x251CE
+0x555D 0x251E4
+0x555E 0x251CA
+0x555F 0x251D0
+0x5560 0x22FA5
+0x5561 0x4049
+0x5562 0x251D9
+0x5563 0x251EE
+0x5564 0x251DD
+0x5565 0x25200
+0x5566 0x251E1
+0x5567 0x253DE
+0x5568 0x253E2
+0x5569 0x253DA
+0x556A 0x254CE
+0x556B 0x2F94F
+0x556C 0x254CF
+0x556D 0x254DA
+0x556E 0x254D1
+0x556F 0x254D4
+0x5570 0x254ED
+0x5571 0x254CB
+0x5572 0x254D5
+0x5573 0x254F1
+0x5574 0x2569C
+0x5575 0x25688
+0x5576 0x25741
+0x5577 0x257D0
+0x5578 0x257F7
+0x5579 0x257CF
+0x557A 0x257D1
+0x557B 0x257DB
+0x557C 0x257DE
+0x557D 0x257F8
+0x557E 0x257DC
+0x5621 0x257D9
+0x5622 0x259A0
+0x5623 0x259B2
+0x5624 0x259A1
+0x5625 0x259AA
+0x5626 0x259A9
+0x5627 0x41A9
+0x5628 0x259A6
+0x5629 0x2599C
+0x562A 0x259B5
+0x562B 0x259A7
+0x562C 0x25A8E
+0x562D-0x562E 0x25A90
+0x562F 0x25B85
+0x5630 0x25B5B
+0x5631 0x25B70
+0x5632 0x25B64
+0x5633 0x25B67
+0x5634 0x25B63
+0x5635 0x25B77
+0x5636 0x25B68
+0x5637 0x25B65
+0x5638 0x25B6A
+0x5639 0x25B78
+0x563A 0x25B66
+0x563B 0x25E88
+0x563C 0x25E9E
+0x563D 0x25E74
+0x563E 0x25E7A
+0x563F 0x25E79
+0x5640 0x25E8B
+0x5641 0x25E7F
+0x5642 0x26013
+0x5643 0x2601E
+0x5644 0x26017
+0x5645 0x2601A
+0x5646 0x26022
+0x5647 0x26043
+0x5648 0x26019
+0x5649 0x2601F
+0x564A 0x26027
+0x564B 0x26012
+0x564C-0x564D 0x26024
+0x564E 0x2035E
+0x564F 0x26235
+0x5650 0x26234
+0x5651 0x262D1
+0x5652 0x262C4
+0x5653 0x262CA
+0x5654 0x262C6
+0x5655 0x262CB
+0x5656 0x262CD
+0x5657 0x262E2
+0x5658 0x26389
+0x5659 0x2638B
+0x565A 0x26386
+0x565B 0x26388
+0x565C 0x2638D
+0x565D-0x565F 0x2643B
+0x5660 0x264F5
+0x5661 0x26579
+0x5662 0x26575
+0x5663 0x26582
+0x5664 0x2657F
+0x5665 0x26585
+0x5666 0x26576
+0x5667 0x2657C
+0x5668 0x2657E
+0x5669 0x2657B
+0x566A 0x26580
+0x566B 0x2657A
+0x566C 0x22548
+0x566D 0x43CB
+0x566E 0x2661D
+0x566F-0x5670 0x266F6
+0x5671 0x266F9
+0x5672 0x26763
+0x5673 0x2676C
+0x5674 0x2676E
+0x5675 0x26714
+0x5676 0x440D
+0x5677 0x26767
+0x5678 0x2676F
+0x5679 0x26769
+0x567A 0x26776
+0x567B 0x26795
+0x567C 0x26771
+0x567D 0x26761
+0x567E 0x26778
+0x5721 0x2676B
+0x5722 0x26785
+0x5723 0x26784
+0x5724 0x26914
+0x5725 0x26976
+0x5726 0x259B6
+0x5727 0x26975
+0x5728 0x26974
+0x5729 0x269E2
+0x572A 0x26A3F
+0x572B 0x26A44
+0x572C 0x26A3D
+0x572D-0x572E 0x26A47
+0x572F-0x5731 0x26ADB
+0x5732-0x5733 0x26BE5
+0x5734 0x26CC2
+0x5735 0x26D2E
+0x5736 0x26D1D
+0x5737 0x26CF8
+0x5738 0x26CF0
+0x5739 0x26CF6
+0x573A-0x573B 0x26CC5
+0x573C 0x26CFC
+0x573D 0x26D52
+0x573E 0x26D2F
+0x573F 0x26D10
+0x5740 0x26CF3
+0x5741 0x26CD2
+0x5742 0x26CEA
+0x5743 0x26CDC
+0x5744 0x26D1B
+0x5745 0x26CFB
+0x5746 0x26CC3
+0x5747 0x26D16
+0x5748 0x26D07
+0x5749 0x26CC9
+0x574A 0x26CD8
+0x574B 0x26D30
+0x574C 0x26D13
+0x574D 0x26D31
+0x574E 0x26CFA
+0x574F 0x26CF2
+0x5750 0x26DE3
+0x5751 0x26CD5
+0x5752 0x26D01
+0x5753 0x26CF1
+0x5754 0x26D1C
+0x5755 0x26CD6
+0x5756 0x26D08
+0x5757 0x26D0B
+0x5758 0x26D17
+0x5759 0x26D20
+0x575A 0x26CCA
+0x575B 0x26D32
+0x575C 0x26D05
+0x575D 0x26CE4
+0x575E 0x26CCE
+0x575F 0x26D33
+0x5760 0x26D02
+0x5761 0x26D19
+0x5762 0x26D1E
+0x5763 0x26CD3
+0x5764 0x26CF7
+0x5765 0x26CE8
+0x5766 0x26D1F
+0x5767 0x26CF4
+0x5768 0x26DD8
+0x5769 0x271BF
+0x576A 0x271BE
+0x576B 0x271BD
+0x576C-0x576D 0x272DC
+0x576E 0x272AB
+0x576F 0x272C9
+0x5770 0x272C8
+0x5771 0x272DF
+0x5772 0x272D9
+0x5773 0x272DB
+0x5774 0x272CC
+0x5775 0x272E0
+0x5776 0x272EF
+0x5777 0x272F3
+0x5778 0x272AE
+0x5779 0x27301
+0x577A 0x275B7
+0x577B 0x275B9
+0x577C 0x275B6
+0x577D 0x275B8
+0x577E 0x275F6
+0x5821 0x275F3
+0x5822 0x275F5
+0x5823 0x275F2
+0x5824 0x27691
+0x5825 0x2769D
+0x5826 0x2769B
+0x5827 0x27692
+0x5828 0x2768D
+0x5829 0x2769E
+0x582A 0x2768C
+0x582B 0x4631
+0x582C 0x2F9C7
+0x582D 0x27695
+0x582E 0x2F9C6
+0x582F 0x2768A
+0x5830 0x2768E
+0x5831 0x2769C
+0x5832 0x277EF
+0x5833 0x2782D
+0x5834 0x27852
+0x5835 0x27835
+0x5836 0x27828
+0x5837 0x2782E
+0x5838 0x278E5
+0x5839 0x279EA
+0x583A 0x279F1
+0x583B 0x279EB
+0x583C 0x279D8
+0x583D 0x279D0
+0x583E 0x279F3
+0x583F 0x279DB
+0x5840 0x279CE
+0x5841 0x46D5
+0x5842 0x279DA
+0x5843 0x279D7
+0x5844 0x279E1
+0x5845 0x279F2
+0x5846 0x279C8
+0x5847 0x279D9
+0x5848 0x279DE
+0x5849 0x279D1
+0x584A 0x279E7
+0x584B 0x279CF
+0x584C 0x27BB7
+0x584D 0x27C47
+0x584E-0x584F 0x27C42
+0x5850 0x2F9D3
+0x5851 0x27CC3
+0x5852 0x27CC1
+0x5853 0x27CC7
+0x5854 0x27D64
+0x5855 0x27D6A
+0x5856 0x27D66
+0x5857 0x27D50
+0x5858 0x27D6E
+0x5859 0x27D65
+0x585A 0x238EC
+0x585B 0x27D7F
+0x585C 0x2F9D5
+0x585D 0x27D9A
+0x585E 0x27D69
+0x585F 0x27D72
+0x5860 0x27D6F
+0x5861 0x27D7D
+0x5862 0x27D70
+0x5863 0x27E60
+0x5864 0x27EC2
+0x5865 0x27EE7
+0x5866 0x27ED1
+0x5867 0x27EEB
+0x5868 0x27ED4
+0x5869 0x27EDC
+0x586A 0x27EDB
+0x586B 0x28037
+0x586C 0x28025
+0x586D 0x2801F
+0x586E 0x2801E
+0x586F 0x28021
+0x5870 0x2801B
+0x5871 0x28017
+0x5872 0x28022
+0x5873 0x2802A
+0x5874 0x2801A
+0x5875 0x2802D
+0x5876 0x28023
+0x5877 0x28026
+0x5878 0x28036
+0x5879 0x27FFF
+0x587A 0x2823A
+0x587B 0x28240
+0x587C 0x28242
+0x587D 0x28238
+0x587E 0x2823B
+0x5921 0x2823C
+0x5922 0x28243
+0x5923 0x282E8
+0x5924 0x4856
+0x5925 0x282F9
+0x5926 0x282EB
+0x5927 0x282F1
+0x5928 0x282E9
+0x5929 0x282EC
+0x592A 0x28415
+0x592B 0x28447
+0x592C 0x28446
+0x592D 0x28445
+0x592E 0x28524
+0x592F 0x28556
+0x5930 0x28521
+0x5931 0x28527
+0x5932 0x2854D
+0x5933 0x28531
+0x5934 0x2851E
+0x5935 0x2852C
+0x5936 0x2854F
+0x5937 0x2852B
+0x5938 0x28553
+0x5939 0x28551
+0x593A 0x28554
+0x593B 0x28529
+0x593C 0x28550
+0x593D 0x2851F
+0x593E 0x28532
+0x593F 0x2852A
+0x5940 0x2851D
+0x5941 0x28528
+0x5942 0x2852E
+0x5943 0x2852D
+0x5944 0x286BC
+0x5945 0x286BB
+0x5946 0x286BD
+0x5947 0x2F9E4
+0x5948 0x28747
+0x5949 0x28741
+0x594A 0x2F9E5
+0x594B 0x28749
+0x594C 0x48F4
+0x594D 0x2882E
+0x594E 0x28827
+0x594F 0x2896A
+0x5950 0x2897B
+0x5951 0x28973
+0x5952 0x28975
+0x5953 0x28969
+0x5954 0x28979
+0x5955 0x28972
+0x5956-0x5957 0x28C76
+0x5958 0x28C74
+0x5959 0x28C73
+0x595A 0x28D02
+0x595B 0x28CFE
+0x595C 0x28D01
+0x595D 0x28CF9
+0x595E 0x28CF4
+0x595F 0x28ED3
+0x5960 0x28ED5
+0x5961 0x28ED8
+0x5962 0x28EC3
+0x5963 0x28ECA
+0x5964 0x28ED0
+0x5965 0x28ECB
+0x5966 0x28ECE
+0x5967 0x28EC5
+0x5968 0x28EE6
+0x5969 0x28EC4
+0x596A 0x28EC0
+0x596B 0x28ED4
+0x596C 0x28EE8
+0x596D 0x28F76
+0x596E 0x28FA2
+0x596F 0x28FAE
+0x5970 0x28FA8
+0x5971 0x28FA3
+0x5972 0x28FA7
+0x5973 0x28F96
+0x5974 0x28FA9
+0x5975 0x28FA5
+0x5976 0x28FAF
+0x5977 0x28FA4
+0x5978 0x28FAB
+0x5979 0x28FAA
+0x597A 0x28FA6
+0x597B 0x28FA0
+0x597C 0x29098
+0x597D 0x291DB
+0x597E 0x291F6
+0x5A21 0x291F5
+0x5A22 0x2920C
+0x5A23 0x2920A
+0x5A24 0x9775
+0x5A25 0x29268
+0x5A26 0x29263
+0x5A27 0x29266
+0x5A28 0x4A58
+0x5A29 0x29264
+0x5A2A 0x2926A
+0x5A2B 0x29269
+0x5A2C 0x29395
+0x5A2D 0x29402
+0x5A2E 0x2946A
+0x5A2F 0x2945E
+0x5A30-0x5A31 0x29468
+0x5A32 0x29465
+0x5A33 0x2F9FE
+0x5A34 0x295A7
+0x5A35 0x295AE
+0x5A36 0x295A8
+0x5A37 0x295B3
+0x5A38 0x2969C
+0x5A39 0x296A9
+0x5A3A 0x296B6
+0x5A3B 0x296B3
+0x5A3C 0x296B2
+0x5A3D 0x2FA03
+0x5A3E 0x296B8
+0x5A3F 0x296C0
+0x5A40 0x296BF
+0x5A41 0x296BA
+0x5A42 0x296A8
+0x5A43 0x2983C
+0x5A44 0x29872
+0x5A45 0x29871
+0x5A46 0x29875
+0x5A47 0x29873
+0x5A48 0x29A17
+0x5A49-0x5A4A 0x29A15
+0x5A4B 0x29A1B
+0x5A4C 0x29AFA
+0x5A4D 0x29AF9
+0x5A4E 0x29C2C
+0x5A4F 0x29C85
+0x5A50 0x29C82
+0x5A51 0x29C7F
+0x5A52 0x29C7D
+0x5A53 0x29C88
+0x5A54 0x242F3
+0x5A55 0x29D4E
+0x5A56 0x29D50
+0x5A57 0x29F93
+0x5A58-0x5A59 0x29F97
+0x5A5A-0x5A5B 0x29F9B
+0x5A5C 0x29F96
+0x5A5D 0x2A28B
+0x5A5E 0x2A2FD
+0x5A5F 0x2A2FC
+0x5A60 0x2FA17
+0x5A61 0x2398B
+0x5A62 0x20108
+0x5A63 0x20107
+0x5A64 0x20373
+0x5A65 0x203A2
+0x5A66 0x203AF
+0x5A67 0x20382
+0x5A68 0x2037B
+0x5A69 0x20374
+0x5A6A 0x203B0
+0x5A6B 0x20376
+0x5A6C 0x203B9
+0x5A6D 0x2039E
+0x5A6E 0x203B1
+0x5A6F 0x203A1
+0x5A70 0x203B2
+0x5A71 0x2036E
+0x5A72 0x2F80B
+0x5A73 0x3487
+0x5A74 0x20378
+0x5A75 0x2037A
+0x5A76 0x20383
+0x5A77 0x2039A
+0x5A78 0x204F8
+0x5A79 0x20531
+0x5A7A 0x20569
+0x5A7B 0x20568
+0x5A7C 0x2059C
+0x5A7D 0x20604
+0x5A7E 0x20699
+0x5B21 0x207C7
+0x5B22 0x207C6
+0x5B23 0x207DC
+0x5B24 0x207C4
+0x5B25 0x207D8
+0x5B26 0x207D4
+0x5B27 0x207DF
+0x5B28 0x207D1
+0x5B29 0x207D0
+0x5B2A 0x207D6
+0x5B2B 0x207CF
+0x5B2C 0x208AD
+0x5B2D 0x208AF
+0x5B2E 0x208A7
+0x5B2F 0x208FD
+0x5B30 0x2095B
+0x5B31 0x2095A
+0x5B32 0x20A07
+0x5B33 0x20A9D
+0x5B34 0x20A9B
+0x5B35 0x20AAB
+0x5B36 0x20AA4
+0x5B37 0x20A9C
+0x5B38 0x20A9E
+0x5B39 0x20AA5
+0x5B3A 0x20AAA
+0x5B3B 0x20AA6
+0x5B3C 0x20B0E
+0x5B3D 0x20B7E
+0x5B3E 0x20B7C
+0x5B3F 0x20EEE
+0x5B40 0x20ED5
+0x5B41 0x20EE9
+0x5B42 0x20E42
+0x5B43 0x20EE2
+0x5B44 0x20F23
+0x5B45 0x20ED9
+0x5B46 0x20ED4
+0x5B47 0x20EE3
+0x5B48 0x20F15
+0x5B49-0x5B4A 0x20EEF
+0x5B4B 0x20ED6
+0x5B4C 0x20EDD
+0x5B4D 0x20EF6
+0x5B4E 0x20F1C
+0x5B4F 0x20ED8
+0x5B50 0x20EDB
+0x5B51 0x20EDA
+0x5B52 0x20EED
+0x5B53 0x21411
+0x5B54 0x21215
+0x5B55 0x21218
+0x5B56 0x2121A
+0x5B57 0x2121F
+0x5B58 0x21216
+0x5B59 0x2F84D
+0x5B5A 0x21219
+0x5B5B 0x2F84B
+0x5B5C 0x213F0
+0x5B5D 0x21409
+0x5B5E 0x2141B
+0x5B5F 0x27BE7
+0x5B60 0x213F6
+0x5B61 0x213F4
+0x5B62 0x213B5
+0x5B63 0x21410
+0x5B64 0x213F2
+0x5B65 0x21415
+0x5B66 0x213F3
+0x5B67 0x213F8
+0x5B68 0x21539
+0x5B69 0x2153B
+0x5B6A 0x21536
+0x5B6B 0x2140E
+0x5B6C 0x21572
+0x5B6D 0x21574
+0x5B6E 0x215B9
+0x5B6F-0x5B70 0x215B7
+0x5B71 0x21672
+0x5B72 0x2166B
+0x5B73 0x2181D
+0x5B74 0x21837
+0x5B75 0x21822
+0x5B76 0x21843
+0x5B77 0x2184D
+0x5B78 0x21838
+0x5B79 0x2185B
+0x5B7A 0x21879
+0x5B7B 0x2181B
+0x5B7C 0x217F3
+0x5B7D 0x21991
+0x5B7E 0x21A7B
+0x5C21 0x21A94
+0x5C22 0x2F86F
+0x5C23 0x21A96
+0x5C24 0x21A7F
+0x5C25 0x21A8F
+0x5C26 0x21A84
+0x5C27 0x21A7C
+0x5C28 0x21A8E
+0x5C29 0x21A90
+0x5C2A 0x21A98
+0x5C2B 0x21A83
+0x5C2C 0x21A80
+0x5C2D 0x21A93
+0x5C2E 0x21A82
+0x5C2F 0x5900
+0x5C30 0x21B3D
+0x5C31 0x21B41
+0x5C32 0x21BA1
+0x5C33 0x21B9F
+0x5C34 0x21C0A
+0x5C35 0x21C0D
+0x5C36-0x5C37 0x21CC8
+0x5C38 0x21CC7
+0x5C39 0x21CCD
+0x5C3A 0x21D25
+0x5C3B 0x21EB1
+0x5C3C 0x21EDC
+0x5C3D 0x2F880
+0x5C3E 0x21EE5
+0x5C3F 0x21EF4
+0x5C40 0x21EBF
+0x5C41 0x21EDB
+0x5C42 0x21EEA
+0x5C43 0x21EF2
+0x5C44 0x37FA
+0x5C45 0x21EF1
+0x5C46 0x21EED
+0x5C47 0x21EE6
+0x5C48 0x22002
+0x5C49 0x2F882
+0x5C4A 0x22125
+0x5C4B 0x22118
+0x5C4C-0x5C4D 0x2211F
+0x5C4E 0x221CF
+0x5C4F 0x2229D
+0x5C50 0x22299
+0x5C51 0x222A8
+0x5C52 0x22368
+0x5C53-0x5C54 0x22366
+0x5C55 0x22391
+0x5C56 0x22413
+0x5C57 0x22415
+0x5C58 0x2241D
+0x5C59 0x22416
+0x5C5A 0x22419
+0x5C5B 0x2246B
+0x5C5C 0x22468
+0x5C5D 0x2246A
+0x5C5E 0x2246D
+0x5C5F 0x22469
+0x5C60 0x224AA
+0x5C61 0x22557
+0x5C62 0x22552
+0x5C63 0x22550
+0x5C64 0x2255F
+0x5C65 0x22567
+0x5C66 0x2254F
+0x5C67 0x38F2
+0x5C68-0x5C6A 0x2255B
+0x5C6B 0x2281F
+0x5C6C 0x2279D
+0x5C6D 0x227B1
+0x5C6E 0x227B0
+0x5C6F 0x22794
+0x5C70 0x227C3
+0x5C71 0x227AF
+0x5C72 0x227A8
+0x5C73 0x227DC
+0x5C74 0x22798
+0x5C75 0x227C4
+0x5C76 0x227A4
+0x5C77 0x227AB
+0x5C78 0x227AA
+0x5C79 0x227A5
+0x5C7A 0x22821
+0x5C7B 0x227EB
+0x5C7C 0x227E6
+0x5C7D-0x5C7E 0x227F7
+0x5D21 0x227FC
+0x5D22 0x227FA
+0x5D23 0x227E0
+0x5D24 0x2F8AA
+0x5D25 0x227F6
+0x5D26 0x2F8A9
+0x5D27 0x227E1
+0x5D28 0x229EC
+0x5D29 0x229E2
+0x5D2A 0x229E4
+0x5D2B 0x229F9
+0x5D2C 0x22C6F
+0x5D2D 0x23A4C
+0x5D2E 0x22CBB
+0x5D2F 0x22CE1
+0x5D30 0x22D00
+0x5D31 0x22CD8
+0x5D32 0x3A2F
+0x5D33 0x22CD6
+0x5D34 0x22CE2
+0x5D35 0x22CC3
+0x5D36 0x22CB3
+0x5D37 0x22CD2
+0x5D38 0x2F8C1
+0x5D39 0x22CCE
+0x5D3A 0x22CD0
+0x5D3B 0x22CD5
+0x5D3C-0x5D3D 0x22CB9
+0x5D3E 0x22CCF
+0x5D3F 0x22CBD
+0x5D40 0x22EDB
+0x5D41 0x22FAA
+0x5D42 0x22FAD
+0x5D43 0x22FB8
+0x5D44 0x22FB6
+0x5D45 0x22FB5
+0x5D46 0x22FAF
+0x5D47 0x22FB4
+0x5D48 0x22FB7
+0x5D49 0x22FA8
+0x5D4A 0x22FB9
+0x5D4B 0x22FBE
+0x5D4C 0x23082
+0x5D4D 0x230BC
+0x5D4E 0x230B8
+0x5D4F 0x230B6
+0x5D50 0x230B9
+0x5D51 0x3AC1
+0x5D52 0x23110
+0x5D53 0x23227
+0x5D54 0x23269
+0x5D55 0x23270
+0x5D56 0x23256
+0x5D57 0x2326B
+0x5D58 0x2327A
+0x5D59-0x5D5A 0x2326C
+0x5D5B 0x2F8D5
+0x5D5C 0x267C1
+0x5D5D 0x2338D
+0x5D5E 0x23390
+0x5D5F 0x235B6
+0x5D60 0x23610
+0x5D61 0x23612
+0x5D62 0x235BA
+0x5D63 0x235BD
+0x5D64 0x23605
+0x5D65 0x235C2
+0x5D66 0x23607
+0x5D67 0x235F5
+0x5D68 0x2F8E9
+0x5D69 0x235AF
+0x5D6A 0x235F4
+0x5D6B-0x5D6C 0x235F7
+0x5D6D 0x23611
+0x5D6E 0x238F6
+0x5D6F 0x238F5
+0x5D70 0x238FB
+0x5D71 0x23901
+0x5D72 0x23900
+0x5D73 0x23902
+0x5D74 0x238FE
+0x5D75 0x238FA
+0x5D76 0x238FD
+0x5D77 0x3C40
+0x5D78 0x23A37
+0x5D79 0x23A49
+0x5D7A 0x23A4B
+0x5D7B-0x5D7C 0x23A46
+0x5D7D 0x23AB3
+0x5D7E 0x23AB2
+0x5E21 0x23AB0
+0x5E22 0x23AB7
+0x5E23 0x23B11
+0x5E24 0x23BCC
+0x5E25 0x23BDF
+0x5E26 0x23BD3
+0x5E27 0x23BD5
+0x5E28 0x23BDB
+0x5E29 0x23BC5
+0x5E2A-0x5E2B 0x23BC8
+0x5E2C 0x23BE2
+0x5E2D 0x23BCA
+0x5E2E-0x5E2F 0x23BD1
+0x5E30 0x23BDD
+0x5E31 0x23E6C
+0x5E32 0x23E73
+0x5E33 0x23F21
+0x5E34 0x23EF0
+0x5E35 0x23F1F
+0x5E36 0x23F3B
+0x5E37-0x5E38 0x23F22
+0x5E39 0x23EE8
+0x5E3A 0x23EDD
+0x5E3B 0x3D3F
+0x5E3C 0x23F1B
+0x5E3D 0x23EED
+0x5E3E 0x2F90E
+0x5E3F 0x23EF2
+0x5E40 0x3D46
+0x5E41 0x23EDC
+0x5E42 0x23EE9
+0x5E43 0x23F1D
+0x5E44 0x23EDA
+0x5E45 0x23EE6
+0x5E46 0x24313
+0x5E47-0x5E48 0x24315
+0x5E49 0x2433C
+0x5E4A 0x2430B
+0x5E4B 0x2431C
+0x5E4C 0x2433A
+0x5E4D 0x2433D
+0x5E4E 0x2439A
+0x5E4F 0x2431D
+0x5E50 0x24309
+0x5E51 0x24308
+0x5E52 0x2433B
+0x5E53 0x24522
+0x5E54 0x24526
+0x5E55 0x24525
+0x5E56 0x24524
+0x5E57 0x2039B
+0x5E58-0x5E59 0x2458F
+0x5E5A 0x245E6
+0x5E5B 0x245E3
+0x5E5C 0x245E5
+0x5E5D 0x24611
+0x5E5E 0x2F925
+0x5E5F 0x246AE
+0x5E60 0x246BE
+0x5E61 0x246B4
+0x5E62 0x246B3
+0x5E63 0x246AF
+0x5E64 0x24691
+0x5E65 0x246C2
+0x5E66 0x246B6
+0x5E67 0x246B2
+0x5E68 0x24857
+0x5E69 0x2483B
+0x5E6A 0x24858
+0x5E6B 0x24851
+0x5E6C 0x24841
+0x5E6D 0x24839
+0x5E6E 0x3E8F
+0x5E6F 0x24859
+0x5E70 0x24845
+0x5E71 0x24861
+0x5E72 0x248E8
+0x5E73 0x249FA
+0x5E74 0x249EA
+0x5E75 0x249EF
+0x5E76 0x249F2
+0x5E77 0x249F0
+0x5E78 0x24B08
+0x5E79 0x24B70
+0x5E7A 0x24B6A
+0x5E7B 0x24B73
+0x5E7C 0x24B68
+0x5E7D 0x24BC8
+0x5E7E 0x24BF2
+0x5F21 0x20B7B
+0x5F22 0x24CAE
+0x5F23 0x24CAB
+0x5F24 0x24CB5
+0x5F25 0x24CAF
+0x5F26 0x24CB2
+0x5F27 0x24CB6
+0x5F28 0x24CB0
+0x5F29 0x24D1E
+0x5F2A 0x24E03
+0x5F2B 0x24E06
+0x5F2C 0x24E1F
+0x5F2D 0x3FAC
+0x5F2E 0x24E0F
+0x5F2F 0x24E02
+0x5F30 0x24E19
+0x5F31 0x24E18
+0x5F32 0x24E22
+0x5F33 0x24E15
+0x5F34 0x24E07
+0x5F35 0x24E0D
+0x5F36 0x24E24
+0x5F37 0x24E0C
+0x5F38 0x24E1E
+0x5F39-0x5F3A 0x24F89
+0x5F3B-0x5F3C 0x2500A
+0x5F3D 0x25007
+0x5F3E 0x25004
+0x5F3F 0x25009
+0x5F40 0x25084
+0x5F41 0x25083
+0x5F42 0x25218
+0x5F43 0x25214
+0x5F44 0x25205
+0x5F45 0x25216
+0x5F46 0x2520E
+0x5F47 0x25211
+0x5F48 0x25208
+0x5F49 0x2520B
+0x5F4A 0x25215
+0x5F4B 0x25085
+0x5F4C 0x25237
+0x5F4D 0x2522A
+0x5F4E 0x2520D
+0x5F4F 0x2520F
+0x5F50 0x2537E
+0x5F51-0x5F52 0x25376
+0x5F53 0x253EC
+0x5F54 0x254FC
+0x5F55 0x25508
+0x5F56 0x254FF
+0x5F57 0x25503
+0x5F58 0x25510
+0x5F59-0x5F5A 0x25505
+0x5F5B 0x254FA
+0x5F5C 0x256C7
+0x5F5D 0x256C0
+0x5F5E 0x256C3
+0x5F5F-0x5F60 0x256A7
+0x5F61 0x256AB
+0x5F62 0x256C1
+0x5F63 0x256AA
+0x5F64 0x256C8
+0x5F65 0x25743
+0x5F66 0x25802
+0x5F67 0x2580E
+0x5F68 0x25801
+0x5F69 0x257FE
+0x5F6A 0x25803
+0x5F6B 0x4168
+0x5F6C 0x25822
+0x5F6D 0x25821
+0x5F6E-0x5F6F 0x25807
+0x5F70 0x2580C
+0x5F71 0x259CA
+0x5F72 0x259BC
+0x5F73 0x259BE
+0x5F74 0x259BD
+0x5F75 0x2F95C
+0x5F76 0x259BB
+0x5F77 0x259B9
+0x5F78 0x41AB
+0x5F79 0x259C5
+0x5F7A 0x25A99
+0x5F7B 0x25B6B
+0x5F7C-0x5F7D 0x25B93
+0x5F7E 0x25BA9
+0x6021 0x25BA0
+0x6022 0x25BA6
+0x6023 0x2F961
+0x6024 0x25BAB
+0x6025 0x25B9E
+0x6026 0x25B9B
+0x6027 0x25B91
+0x6028 0x25B99
+0x6029 0x25EB6
+0x602A 0x25EB8
+0x602B 0x25E9A
+0x602C 0x4291
+0x602D 0x25E98
+0x602E 0x25E9B
+0x602F 0x25EB3
+0x6030 0x25EA2
+0x6031 0x222AA
+0x6032 0x25EA0
+0x6033 0x25E9F
+0x6034 0x2605B
+0x6035 0x26070
+0x6036 0x26054
+0x6037 0x26071
+0x6038 0x26065
+0x6039 0x26051
+0x603A 0x2609D
+0x603B 0x26061
+0x603C 0x2605A
+0x603D 0x26074
+0x603E 0x2604C
+0x603F 0x2604B
+0x6040 0x2605E
+0x6041 0x26058
+0x6042 0x26053
+0x6043 0x26052
+0x6044 0x2623B
+0x6045 0x26239
+0x6046 0x262D6
+0x6047 0x262E7
+0x6048-0x604D 0x262D7
+0x604E 0x262E0
+0x604F 0x262E4
+0x6050 0x262DD
+0x6051 0x262F5
+0x6052 0x262F1
+0x6053 0x26398
+0x6054 0x2639D
+0x6055 0x26399
+0x6056 0x26450
+0x6057 0x26449
+0x6058 0x7FE4
+0x6059 0x26462
+0x605A 0x264D7
+0x605B 0x26501
+0x605C 0x264F7
+0x605D 0x2F97D
+0x605E 0x2658C
+0x605F 0x2659C
+0x6060 0x8088
+0x6061 0x2661F
+0x6062 0x2661E
+0x6063 0x2673D
+0x6064 0x2673F
+0x6065 0x26711
+0x6066 0x26759
+0x6067 0x2673E
+0x6068 0x26758
+0x6069 0x26800
+0x606A 0x2679E
+0x606B 0x267B6
+0x606C 0x267AA
+0x606D 0x267AF
+0x606E 0x267AC
+0x606F 0x4430
+0x6070 0x267C0
+0x6071 0x267A9
+0x6072 0x20B10
+0x6073 0x268EE
+0x6074 0x26977
+0x6075-0x6076 0x26979
+0x6077 0x2697D
+0x6078 0x2697F
+0x6079 0x26983
+0x607A 0x26978
+0x607B 0x2697E
+0x607C 0x269E4
+0x607D 0x269E6
+0x607E 0x269E5
+0x6121 0x445D
+0x6122 0x26A4E
+0x6123 0x26A59
+0x6124 0x4475
+0x6125 0x2F98E
+0x6126 0x26A4F
+0x6127 0x26A4A
+0x6128 0x26AE3
+0x6129 0x26ADE
+0x612A 0x26AE2
+0x612B 0x26C74
+0x612C 0x26CAC
+0x612D-0x612E 0x26C61
+0x612F 0x26C76
+0x6130 0x26C7A
+0x6131 0x26C79
+0x6132 0x26C60
+0x6133 0x26D64
+0x6134 0x26E81
+0x6135 0x26DDF
+0x6136 0x26D84
+0x6137 0x26D8A
+0x6138 0x26D92
+0x6139 0x26D79
+0x613A 0x26DDE
+0x613B 0x26D98
+0x613C 0x26D6C
+0x613D 0x26DE1
+0x613E 0x2F9A5
+0x613F 0x26D7C
+0x6140 0x26D72
+0x6141 0x26D81
+0x6142 0x26DE0
+0x6143 0x26D65
+0x6144 0x44FF
+0x6145 0x26D6A
+0x6146 0x26D97
+0x6147 0x26DAA
+0x6148 0x26DD3
+0x6149 0x26DAB
+0x614A 0x26D6E
+0x614B 0x26DAC
+0x614C 0x26D76
+0x614D 0x26D7B
+0x614E 0x26DAD
+0x614F 0x2F9A6
+0x6150 0x26D94
+0x6151 0x26DD7
+0x6152 0x26D70
+0x6153 0x26DD5
+0x6154 0x26DF1
+0x6155 0x26D7A
+0x6156 0x26D68
+0x6157 0x26D96
+0x6158 0x450B
+0x6159 0x26D73
+0x615A 0x26DAE
+0x615B 0x26DDD
+0x615C 0x26DDA
+0x615D-0x615E 0x26DAF
+0x615F 0x26DDB
+0x6160 0x26D62
+0x6161 0x26DF8
+0x6162 0x271C2
+0x6163-0x6164 0x271C7
+0x6165 0x271C5
+0x6166 0x271C3
+0x6167 0x271C6
+0x6168 0x272DE
+0x6169 0x45C8
+0x616A 0x27311
+0x616B 0x27315
+0x616C 0x27328
+0x616D 0x27321
+0x616E 0x2732D
+0x616F 0x27351
+0x6170 0x2732B
+0x6171 0x27316
+0x6172 0x27324
+0x6173 0x27335
+0x6174 0x2731F
+0x6175 0x27312
+0x6176 0x27310
+0x6177 0x27380
+0x6178 0x2733B
+0x6179-0x617A 0x27329
+0x617B 0x2731B
+0x617C 0x27318
+0x617D 0x27320
+0x617E 0x2733F
+0x6221 0x2731C
+0x6222 0x27326
+0x6223 0x2730B
+0x6224 0x275BE
+0x6225 0x275C4
+0x6226 0x275BD
+0x6227-0x6228 0x275FA
+0x6229-0x622A 0x276B1
+0x622B 0x276B0
+0x622C 0x276B9
+0x622D 0x276A6
+0x622E 0x276BD
+0x622F 0x276B6
+0x6230 0x276B8
+0x6231 0x276B4
+0x6232 0x276B3
+0x6233 0x276A7
+0x6234 0x276AE
+0x6235 0x276BC
+0x6236-0x6238 0x277F2
+0x6239 0x2783B
+0x623A 0x27840
+0x623B 0x27846
+0x623C 0x278F0
+0x623D 0x278EE
+0x623E 0x278E8
+0x623F 0x278F1
+0x6240 0x278EB
+0x6241 0x278EF
+0x6242 0x279FC
+0x6243 0x27A20
+0x6244 0x27A09
+0x6245 0x27A06
+0x6246 0x27A03
+0x6247 0x2F9CF
+0x6248 0x27A19
+0x6249 0x27A24
+0x624A 0x27A1B
+0x624B 0x27A1D
+0x624C 0x279FD
+0x624D 0x27A1E
+0x624E 0x279F4
+0x624F 0x27A01
+0x6250 0x27A08
+0x6251 0x27A05
+0x6252 0x27A23
+0x6253 0x279FF
+0x6254 0x27BEA
+0x6255-0x6256 0x27C4D
+0x6257-0x6258 0x27C56
+0x6259 0x27C51
+0x625A 0x27C55
+0x625B 0x27C54
+0x625C 0x27CCB
+0x625D 0x27CD4
+0x625E 0x27CD1
+0x625F 0x27CCF
+0x6260 0x27CD2
+0x6261 0x27CCA
+0x6262 0x27CD6
+0x6263 0x27D8B
+0x6264 0x27D88
+0x6265 0x27D85
+0x6266 0x27D89
+0x6267 0x21A9B
+0x6268 0x27DBB
+0x6269 0x27D8C
+0x626A 0x4774
+0x626B 0x27D99
+0x626C 0x27D8A
+0x626D 0x27EEC
+0x626E 0x27EEF
+0x626F 0x27EF9
+0x6270 0x27F09
+0x6271 0x27EF8
+0x6272 0x27EF3
+0x6273 0x27F00
+0x6274 0x27F1D
+0x6275 0x47AC
+0x6276 0x27EFD
+0x6277 0x28048
+0x6278 0x2805C
+0x6279 0x28055
+0x627A 0x2805E
+0x627B 0x28049
+0x627C 0x28063
+0x627D 0x28060
+0x627E 0x28053
+0x6321 0x28062
+0x6322 0x28040
+0x6323-0x6324 0x28249
+0x6325-0x6326 0x2824C
+0x6327 0x2830A
+0x6328 0x28306
+0x6329 0x2832F
+0x632A 0x28321
+0x632B 0x28307
+0x632C 0x28309
+0x632D 0x28302
+0x632E 0x28316
+0x632F 0x28303
+0x6330 0x2830B
+0x6331 0x2830F
+0x6332 0x28560
+0x6333 0x28568
+0x6334 0x2855E
+0x6335 0x2855D
+0x6336 0x28563
+0x6337 0x2855F
+0x6338 0x28564
+0x6339 0x28578
+0x633A 0x28561
+0x633B 0x28569
+0x633C 0x28565
+0x633D 0x286DA
+0x633E 0x286E6
+0x633F-0x6340 0x286DB
+0x6341 0x28739
+0x6342 0x28757
+0x6343 0x28755
+0x6344 0x28765
+0x6345 0x28761
+0x6346 0x28754
+0x6347 0x28845
+0x6348 0x28841
+0x6349 0x2883E
+0x634A 0x28837
+0x634B-0x634C 0x28912
+0x634D 0x2892C
+0x634E 0x28996
+0x634F 0x2F9E9
+0x6350-0x6351 0x2899C
+0x6352 0x28985
+0x6353 0x2F9E8
+0x6354 0x2899F
+0x6355 0x289A3
+0x6356-0x6357 0x28C82
+0x6358 0x2F9EE
+0x6359 0x28D1D
+0x635A 0x28D14
+0x635B-0x635C 0x28D1F
+0x635D 0x28E47
+0x635E 0x28E80
+0x635F 0x28EC9
+0x6360 0x28EF9
+0x6361 0x28F06
+0x6362 0x28EF0
+0x6363 0x28EF8
+0x6364 0x28EEF
+0x6365 0x28EFD
+0x6366 0x28EF1
+0x6367 0x28EFE
+0x6368 0x28FB8
+0x6369 0x28FC0
+0x636A 0x28FC3
+0x636B-0x636C 0x28FB5
+0x636D 0x28FC9
+0x636E 0x2F9F3
+0x636F 0x28FBD
+0x6370 0x28FBA
+0x6371 0x28FBF
+0x6372 0x28FB3
+0x6373 0x28FC6
+0x6374 0x28FB2
+0x6375 0x28FBC
+0x6376 0x28FB7
+0x6377 0x28FB9
+0x6378 0x28FC8
+0x6379 0x290B5
+0x637A 0x290B3
+0x637B 0x4A16
+0x637C 0x290AC
+0x637D 0x290A9
+0x637E 0x290AD
+0x6421 0x29211
+0x6422 0x2920D
+0x6423 0x29216
+0x6424 0x29289
+0x6425 0x2927C
+0x6426 0x2928B
+0x6427 0x2927B
+0x6428 0x29288
+0x6429 0x29284
+0x642A 0x2939D
+0x642B 0x29398
+0x642C 0x29488
+0x642D 0x29486
+0x642E 0x29482
+0x642F 0x2948B
+0x6430 0x2F9FF
+0x6431-0x6432 0x29471
+0x6433 0x29481
+0x6434 0x2948C
+0x6435 0x29480
+0x6436 0x29489
+0x6437 0x295BB
+0x6438 0x295C1
+0x6439 0x295BE
+0x643A 0x2FA01
+0x643B 0x295BD
+0x643C 0x296C1
+0x643D 0x296B4
+0x643E 0x296B7
+0x643F 0x296C8
+0x6440 0x4B3B
+0x6441 0x296D3
+0x6442 0x296D0
+0x6443 0x296B0
+0x6444 0x296CA
+0x6445 0x296CD
+0x6446 0x29815
+0x6447 0x29819
+0x6448 0x29817
+0x6449-0x644A 0x2983F
+0x644B 0x29844
+0x644C 0x2987C
+0x644D-0x644E 0x29878
+0x644F 0x29888
+0x6450 0x2FA06
+0x6451 0x29889
+0x6452 0x2987D
+0x6453-0x6454 0x29A23
+0x6455 0x29A26
+0x6456 0x29A22
+0x6457 0x29A27
+0x6458 0x29A1F
+0x6459 0x29AC9
+0x645A 0x29AC3
+0x645B-0x645C 0x29B0A
+0x645D 0x29B04
+0x645E 0x4BEF
+0x645F 0x29B03
+0x6460 0x29B01
+0x6461 0x29B09
+0x6462 0x29C0F
+0x6463 0x29C2E
+0x6464 0x29C2D
+0x6465 0x29C91
+0x6466 0x29C99
+0x6467 0x29C9E
+0x6468 0x29C90
+0x6469 0x29C94
+0x646A 0x29C9D
+0x646B 0x29C98
+0x646C-0x646D 0x29C9B
+0x646E 0x29C9A
+0x646F 0x29D54
+0x6470 0x29F9D
+0x6471 0x29F9F
+0x6472-0x6474 0x29FA3
+0x6475 0x2A302
+0x6476 0x2A417
+0x6477 0x2A41B
+0x6478 0x2A419
+0x6479 0x2A4D1
+0x647A 0x21537
diff --git a/etc/charsets/CNS-7.map b/etc/charsets/CNS-7.map
new file mode 100644 (file)
index 0000000..33b65e8
--- /dev/null
@@ -0,0 +1,6179 @@
+# Generated from data at http://sourceforge.net/cvs/?group_id=26261
+0x2121 0x20055
+0x2122 0x20182
+0x2123 0x20189
+0x2124 0x20187
+0x2125 0x203BE
+0x2126 0x203BD
+0x2127 0x203CA
+0x2128 0x203D4
+0x2129 0x203BC
+0x212A 0x203C4
+0x212B-0x212C 0x203C1
+0x212D 0x203D7
+0x212E 0x20370
+0x212F 0x203BA
+0x2130 0x203E3
+0x2131 0x203BB
+0x2132 0x204B1
+0x2133 0x204B6
+0x2134 0x204B0
+0x2135 0x2056C
+0x2136 0x2060D
+0x2137 0x20607
+0x2138 0x207F1
+0x2139 0x207F5
+0x213A 0x207ED
+0x213B 0x207EF
+0x213C-0x213D 0x207EB
+0x213E 0x207EE
+0x213F 0x20807
+0x2140 0x209C4
+0x2141 0x20A08
+0x2142 0x20AB3
+0x2143 0x20AAD
+0x2144 0x20AB0
+0x2145 0x20B11
+0x2146 0x2018A
+0x2147 0x20F83
+0x2148 0x20F7A
+0x2149 0x20F82
+0x214A 0x20F68
+0x214B 0x20F71
+0x214C 0x20FB0
+0x214D 0x20FAF
+0x214E 0x35F6
+0x214F 0x20F6C
+0x2150 0x20F6F
+0x2151 0x20F62
+0x2152 0x20F65
+0x2153 0x20F81
+0x2154 0x20F7F
+0x2155 0x20F64
+0x2156 0x20F73
+0x2157 0x20F6E
+0x2158 0x20F67
+0x2159 0x20F74
+0x215A 0x20F7D
+0x215B 0x20F78
+0x215C 0x20F85
+0x215D 0x20FAA
+0x215E 0x20F88
+0x215F 0x20FA6
+0x2160 0x2F84E
+0x2161 0x20F8A
+0x2162 0x20F84
+0x2163 0x5655
+0x2164 0x21224
+0x2165-0x2166 0x21222
+0x2167 0x21432
+0x2168 0x2145B
+0x2169 0x2144F
+0x216A 0x3667
+0x216B 0x21426
+0x216C 0x2143E
+0x216D 0x21442
+0x216E 0x21447
+0x216F 0x21422
+0x2170 0x2069B
+0x2171 0x2144A
+0x2172 0x2141F
+0x2173 0x21449
+0x2174 0x2142B
+0x2175 0x21433
+0x2176 0x2F858
+0x2177 0x2142A
+0x2178 0x21428
+0x2179 0x2153D
+0x217A 0x2153C
+0x217B 0x215BF
+0x217C 0x21679
+0x217D 0x21680
+0x217E 0x2167C
+0x2221 0x2167A
+0x2222 0x21678
+0x2223 0x21882
+0x2224 0x2185C
+0x2225 0x2185A
+0x2226 0x2184B
+0x2227 0x2187C
+0x2228 0x2187F
+0x2229 0x2181F
+0x222A 0x21889
+0x222B 0x2188B
+0x222C 0x21857
+0x222D 0x2187E
+0x222E 0x2187D
+0x222F 0x21853
+0x2230 0x21A9F
+0x2231 0x21ABC
+0x2232 0x21AA5
+0x2233 0x21A86
+0x2234 0x21ADC
+0x2235 0x21AA4
+0x2236 0x21AB6
+0x2237 0x21AA2
+0x2238 0x21AB4
+0x2239 0x21B48
+0x223A 0x21B46
+0x223B 0x21BA7
+0x223C 0x21C14
+0x223D 0x21C12
+0x223E 0x21C11
+0x223F 0x21CE1
+0x2240 0x21CD0
+0x2241 0x21D26
+0x2242-0x2243 0x21D28
+0x2244 0x21F2F
+0x2245 0x21F0D
+0x2246 0x21F25
+0x2247 0x21F14
+0x2248 0x21F3C
+0x2249 0x21F0B
+0x224A 0x21F11
+0x224B 0x21F30
+0x224C-0x224D 0x21F18
+0x224E 0x21F36
+0x224F 0x21F17
+0x2250 0x21F10
+0x2251 0x21F15
+0x2252 0x22003
+0x2253 0x22029
+0x2254 0x2204C
+0x2255 0x2213F
+0x2256 0x2213E
+0x2257 0x22134
+0x2258 0x22142
+0x2259 0x22135
+0x225A 0x207F3
+0x225B 0x221CD
+0x225C-0x225D 0x221D1
+0x225E 0x222AD
+0x225F 0x222BA
+0x2260 0x222C1
+0x2261 0x222BB
+0x2262 0x222B4
+0x2263 0x222BC
+0x2264 0x2236C
+0x2265 0x22392
+0x2266 0x22421
+0x2267 0x22424
+0x2268 0x23F19
+0x2269-0x226A 0x224AD
+0x226B-0x226C 0x224AB
+0x226D 0x22570
+0x226E 0x22576
+0x226F 0x22571
+0x2270 0x22577
+0x2271 0x617F
+0x2272 0x227EC
+0x2273 0x2281C
+0x2274 0x227FB
+0x2275 0x227EE
+0x2276 0x228E2
+0x2277 0x227FD
+0x2278 0x2281E
+0x2279 0x2283B
+0x227A 0x2284A
+0x227B 0x2F8AE
+0x227C 0x3992
+0x227D 0x2287D
+0x227E 0x22856
+0x2321 0x22844
+0x2322 0x2284B
+0x2323 0x229FA
+0x2324 0x229E8
+0x2325 0x229F8
+0x2326 0x229FF
+0x2327 0x229F7
+0x2328 0x229F6
+0x2329 0x229FE
+0x232A 0x22A07
+0x232B 0x22A5D
+0x232C 0x22CD4
+0x232D 0x2F8C3
+0x232E 0x22CC8
+0x232F 0x22CC5
+0x2330 0x2F8C0
+0x2331 0x22CC9
+0x2332 0x22D4D
+0x2333 0x22D20
+0x2334 0x22D36
+0x2335 0x22D35
+0x2336 0x22D88
+0x2337 0x22D25
+0x2338 0x22D21
+0x2339 0x22D26
+0x233A 0x3A45
+0x233B 0x22D3F
+0x233C 0x22D3B
+0x233D 0x22D24
+0x233E 0x22D43
+0x233F-0x2340 0x22D4E
+0x2341 0x22D44
+0x2342-0x2343 0x22D40
+0x2344 0x22D39
+0x2345 0x22D2B
+0x2346-0x2347 0x22EDD
+0x2348 0x22FCD
+0x2349 0x22FCB
+0x234A 0x22FDB
+0x234B-0x234C 0x22FD8
+0x234D 0x22FD2
+0x234E 0x22FCA
+0x234F 0x22FD1
+0x2350 0x22FD4
+0x2351 0x22FF9
+0x2352 0x22FD0
+0x2353 0x2305E
+0x2354 0x2305D
+0x2355 0x2308A
+0x2356 0x23114
+0x2357-0x2358 0x23283
+0x2359 0x2329B
+0x235A 0x23282
+0x235B 0x2327D
+0x235C 0x2327C
+0x235D 0x23299
+0x235E 0x2327E
+0x235F 0x2329A
+0x2360 0x23295
+0x2361 0x2327B
+0x2362 0x23286
+0x2363 0x23348
+0x2364 0x23392
+0x2365 0x235B2
+0x2366 0x23642
+0x2367 0x23672
+0x2368 0x23615
+0x2369 0x23630
+0x236A 0x23643
+0x236B 0x2365B
+0x236C 0x2361D
+0x236D 0x23673
+0x236E 0x2362D
+0x236F 0x3BC9
+0x2370 0x23621
+0x2371 0x2361C
+0x2372 0x2F8EA
+0x2373 0x23629
+0x2374 0x2361E
+0x2375 0x23633
+0x2376 0x23910
+0x2377 0x2390E
+0x2378 0x2F8F1
+0x2379 0x2390D
+0x237A-0x237B 0x23911
+0x237C 0x23917
+0x237D 0x23909
+0x237E 0x2390F
+0x2421 0x23998
+0x2422 0x23994
+0x2423 0x23996
+0x2424 0x23999
+0x2425 0x23995
+0x2426 0x23997
+0x2427 0x23A50
+0x2428 0x23A52
+0x2429 0x23A4D
+0x242A 0x23A57
+0x242B 0x23A53
+0x242C 0x23A56
+0x242D 0x23AB8
+0x242E 0x23B12
+0x242F 0x23BF1
+0x2430 0x23BF0
+0x2431-0x2432 0x23BEE
+0x2433 0x23BE5
+0x2434 0x23BEB
+0x2435 0x23BE7
+0x2436 0x23BF2
+0x2437 0x23BE6
+0x2438 0x23BF7
+0x2439 0x23C09
+0x243A 0x23C6B
+0x243B 0x23C6A
+0x243C 0x23E79
+0x243D 0x23ECD
+0x243E 0x23EEF
+0x243F 0x23EE4
+0x2440 0x23EE3
+0x2441 0x23F6C
+0x2442 0x23F67
+0x2443 0x23F62
+0x2444 0x23F58
+0x2445 0x23F69
+0x2446 0x23FAB
+0x2447 0x23F57
+0x2448 0x23FAD
+0x2449 0x23F54
+0x244A 0x23FAE
+0x244B 0x23F76
+0x244C 0x23F49
+0x244D 0x23F45
+0x244E 0x23F4F
+0x244F 0x2F90F
+0x2450 0x23F50
+0x2451 0x23F7D
+0x2452 0x23F44
+0x2453 0x23F66
+0x2454 0x23F48
+0x2455 0x23FA3
+0x2456 0x23F51
+0x2457 0x23F53
+0x2458 0x2F910
+0x2459 0x23F60
+0x245A 0x23F47
+0x245B 0x23F5E
+0x245C 0x23F85
+0x245D 0x23FAC
+0x245E 0x23F6D
+0x245F 0x23F75
+0x2460 0x23FA8
+0x2461 0x3D55
+0x2462 0x23F43
+0x2463 0x23F4E
+0x2464 0x23F5C
+0x2465 0x23F56
+0x2466 0x23F6E
+0x2467 0x23F63
+0x2468 0x23F6A
+0x2469 0x24356
+0x246A 0x24312
+0x246B 0x2435C
+0x246C 0x24358
+0x246D 0x24355
+0x246E 0x2437E
+0x246F 0x243A8
+0x2470 0x24311
+0x2471-0x2472 0x24359
+0x2473 0x24367
+0x2474 0x24354
+0x2475 0x2435B
+0x2476 0x243F0
+0x2477 0x24529
+0x2478 0x2452C
+0x2479 0x2452A
+0x247A 0x24527
+0x247B-0x247C 0x24567
+0x247D 0x24593
+0x247E 0x24595
+0x2521 0x2459A
+0x2522 0x245EE
+0x2523 0x245F1
+0x2524 0x245ED
+0x2525 0x245E9
+0x2526 0x246CB
+0x2527 0x246DF
+0x2528 0x246DB
+0x2529 0x2483C
+0x252A 0x2484E
+0x252B 0x2486C
+0x252C-0x252D 0x2487B
+0x252E 0x24883
+0x252F 0x2486B
+0x2530 0x24866
+0x2531 0x24863
+0x2532 0x248A0
+0x2533 0x24885
+0x2534 0x24868
+0x2535 0x248A2
+0x2536 0x249EC
+0x2537 0x3EE8
+0x2538 0x249E7
+0x2539 0x24A10
+0x253A 0x24A18
+0x253B 0x24A3A
+0x253C 0x24A1A
+0x253D 0x24A38
+0x253E 0x24A41
+0x253F 0x24A1B
+0x2540 0x24A14
+0x2541-0x2542 0x24A1C
+0x2543 0x24B12
+0x2544 0x24B0D
+0x2545 0x24B07
+0x2546-0x2547 0x24B7E
+0x2548 0x20AB9
+0x2549 0x24B80
+0x254A 0x24B7A
+0x254B 0x24BF3
+0x254C 0x24CB9
+0x254D 0x24CBB
+0x254E 0x24CBA
+0x254F 0x24CBD
+0x2550 0x24CB7
+0x2551 0x24CBF
+0x2552 0x24D21
+0x2553 0x24E3A
+0x2554 0x24E3D
+0x2555 0x24E36
+0x2556 0x24E49
+0x2557 0x24E81
+0x2558 0x3FB6
+0x2559 0x24E3F
+0x255A 0x24E4D
+0x255B 0x24E3E
+0x255C 0x3FBD
+0x255D 0x24E30
+0x255E 0x24E4F
+0x255F 0x24F37
+0x2560-0x2561 0x24F98
+0x2562 0x25011
+0x2563 0x2500D
+0x2564 0x25088
+0x2565 0x2508A
+0x2566 0x2521C
+0x2567-0x2568 0x25255
+0x2569 0x25262
+0x256A 0x25257
+0x256B 0x25242
+0x256C 0x25210
+0x256D 0x2524D
+0x256E 0x2525A
+0x256F 0x25266
+0x2570 0x25246
+0x2571 0x2287E
+0x2572 0x2524F
+0x2573 0x262F9
+0x2574 0x25387
+0x2575 0x25384
+0x2576-0x2577 0x253F4
+0x2578 0x253F2
+0x2579 0x253F7
+0x257A 0x25545
+0x257B 0x2F950
+0x257C 0x25549
+0x257D 0x25535
+0x257E 0x254FD
+0x2621 0x25530
+0x2622 0x25543
+0x2623 0x25546
+0x2624 0x40D6
+0x2625 0x25533
+0x2626 0x256C6
+0x2627 0x2F956
+0x2628 0x256D4
+0x2629 0x271D8
+0x262A 0x256E0
+0x262B 0x20FA7
+0x262C 0x25744
+0x262D 0x20398
+0x262E 0x25854
+0x262F 0x2583E
+0x2630 0x25835
+0x2631 0x2583A
+0x2632 0x4171
+0x2633 0x25834
+0x2634 0x25839
+0x2635 0x25846
+0x2636-0x2637 0x2585A
+0x2638 0x2583C
+0x2639 0x259DC
+0x263A 0x259D6
+0x263B 0x259D0
+0x263C 0x2F95E
+0x263D 0x25AAC
+0x263E 0x2F95D
+0x263F 0x25AA5
+0x2640 0x25BF4
+0x2641 0x25C24
+0x2642 0x25BE0
+0x2643 0x25BFD
+0x2644 0x25BF2
+0x2645 0x25BFC
+0x2646 0x25C02
+0x2647 0x25BF1
+0x2648 0x25BFF
+0x2649 0x25BD2
+0x264A 0x25BD8
+0x264B 0x25BD3
+0x264C 0x25BF9
+0x264D 0x2F963
+0x264E 0x25BED
+0x264F 0x25BF7
+0x2650 0x25BF0
+0x2651 0x25BD7
+0x2652 0x25C09
+0x2653 0x25BF5
+0x2654 0x25EC2
+0x2655 0x25EC5
+0x2656 0x25ECF
+0x2657 0x4298
+0x2658 0x25EC1
+0x2659 0x25EC6
+0x265A 0x25ED4
+0x265B 0x25ECE
+0x265C 0x2609B
+0x265D 0x26099
+0x265E 0x2608F
+0x265F 0x260B7
+0x2660 0x26082
+0x2661 0x26093
+0x2662 0x260B4
+0x2663 0x260C1
+0x2664 0x26090
+0x2665 0x2609A
+0x2666 0x26094
+0x2667 0x2609C
+0x2668 0x260B5
+0x2669 0x2F96F
+0x266A 0x2F96E
+0x266B 0x2609F
+0x266C 0x2608E
+0x266D 0x2609E
+0x266E 0x2623C
+0x266F 0x26247
+0x2670 0x26241
+0x2671-0x2674 0x262EB
+0x2675 0x262DF
+0x2676 0x262F2
+0x2677-0x2678 0x2630D
+0x2679 0x20186
+0x267A 0x263A9
+0x267B-0x267C 0x263A4
+0x267D 0x2645F
+0x267E 0x2645A
+0x2721 0x26466
+0x2722 0x26468
+0x2723 0x2646A
+0x2724-0x2725 0x26464
+0x2726 0x264C1
+0x2727 0x264D8
+0x2728 0x2F97B
+0x2729 0x264D9
+0x272A 0x26509
+0x272B 0x265AA
+0x272C 0x265A3
+0x272D 0x265B9
+0x272E 0x259E2
+0x272F 0x265A5
+0x2730 0x265AB
+0x2731 0x26620
+0x2732 0x26789
+0x2733 0x2678B
+0x2734 0x267DB
+0x2735 0x267E4
+0x2736 0x267EF
+0x2737 0x267E2
+0x2738 0x267E9
+0x2739 0x267F0
+0x273A 0x267F3
+0x273B 0x267DD
+0x273C 0x2681E
+0x273D 0x2691D
+0x273E 0x26946
+0x273F 0x2697C
+0x2740-0x2742 0x26980
+0x2743-0x2744 0x26987
+0x2745 0x2698A
+0x2746 0x2698C
+0x2747 0x269E7
+0x2748 0x269EB
+0x2749 0x269EA
+0x274A 0x26A68
+0x274B 0x26A6B
+0x274C 0x26A69
+0x274D 0x26A66
+0x274E 0x26A6A
+0x274F 0x26A65
+0x2750 0x26AE5
+0x2751 0x26AE4
+0x2752 0x26AE6
+0x2753 0x26D18
+0x2754 0x26E24
+0x2755 0x26E48
+0x2756 0x26E2F
+0x2757 0x26E7E
+0x2758 0x26D89
+0x2759 0x26E1E
+0x275A 0x26E49
+0x275B 0x26E26
+0x275C 0x26E09
+0x275D 0x26E34
+0x275E 0x26E2D
+0x275F 0x26E4A
+0x2760 0x26E15
+0x2761 0x2F9A9
+0x2762 0x26E33
+0x2763 0x26E28
+0x2764 0x26E27
+0x2765 0x26E20
+0x2766 0x26E2B
+0x2767 0x26E29
+0x2768 0x26E6A
+0x2769 0x26E0B
+0x276A 0x26E0E
+0x276B 0x26E1C
+0x276C 0x26DFF
+0x276D 0x2F9AA
+0x276E 0x26E35
+0x276F 0x26E11
+0x2770-0x2771 0x26E4B
+0x2772 0x26E1F
+0x2773 0x26E0F
+0x2774 0x26E39
+0x2775 0x26E68
+0x2776 0x26E1D
+0x2777 0x26E08
+0x2778-0x2779 0x26E0C
+0x277A 0x26E62
+0x277B 0x26EAF
+0x277C 0x26E32
+0x277D 0x26E2C
+0x277E 0x26E64
+0x2821 0x26E04
+0x2822 0x26E16
+0x2823 0x26E4D
+0x2824 0x26E07
+0x2825 0x26EAE
+0x2826 0x271D4
+0x2827 0x271D1
+0x2828 0x271D5
+0x2829 0x271D0
+0x282A 0x27371
+0x282B 0x2735D
+0x282C 0x2735B
+0x282D 0x2737A
+0x282E 0x2F9BD
+0x282F 0x2737F
+0x2830 0x27379
+0x2831 0x27367
+0x2832 0x2739E
+0x2833 0x27394
+0x2834 0x27364
+0x2835 0x2735E
+0x2836 0x27381
+0x2837 0x2735A
+0x2838 0x27357
+0x2839 0x2737C
+0x283A 0x27398
+0x283B 0x27366
+0x283C 0x2737E
+0x283D 0x27382
+0x283E 0x27368
+0x283F 0x2735F
+0x2840 0x27363
+0x2841 0x27397
+0x2842 0x45CD
+0x2843 0x27353
+0x2844 0x2737B
+0x2845 0x2737D
+0x2846 0x27378
+0x2847 0x27406
+0x2848 0x275C0
+0x2849-0x284A 0x275C2
+0x284B 0x276DC
+0x284C 0x276E6
+0x284D 0x276EC
+0x284E 0x276F2
+0x284F 0x276E8
+0x2850 0x276EB
+0x2851 0x276EA
+0x2852 0x276E5
+0x2853 0x276E0
+0x2854 0x276D0
+0x2855 0x276D8
+0x2856 0x276D5
+0x2857 0x276D3
+0x2858 0x276E4
+0x2859 0x276F3
+0x285A 0x276DB
+0x285B 0x2772F
+0x285C 0x277F9
+0x285D 0x2785D
+0x285E 0x2785B
+0x285F 0x2784C
+0x2860 0x27858
+0x2861 0x27860
+0x2862 0x27853
+0x2863 0x27850
+0x2864-0x2865 0x27907
+0x2866 0x278F4
+0x2867 0x278F6
+0x2868 0x27904
+0x2869 0x278FD
+0x286A 0x27905
+0x286B 0x27A28
+0x286C 0x27A56
+0x286D 0x27A42
+0x286E 0x27A5C
+0x286F 0x27A3D
+0x2870 0x27A2F
+0x2871 0x27A2B
+0x2872 0x27A58
+0x2873 0x27A61
+0x2874 0x27A2C
+0x2875 0x27A51
+0x2876 0x27A50
+0x2877 0x27A3C
+0x2878 0x27A36
+0x2879 0x46F6
+0x287A 0x27A60
+0x287B 0x27A5B
+0x287C 0x27A2E
+0x287D 0x27A40
+0x287E 0x27A5F
+0x2921 0x27A26
+0x2922 0x27A2D
+0x2923 0x27A5E
+0x2924 0x27A3B
+0x2925 0x27BEF
+0x2926 0x27BF3
+0x2927 0x27BEE
+0x2928 0x27BED
+0x2929 0x27C5A
+0x292A 0x27C62
+0x292B 0x27C5B
+0x292C 0x27C5F
+0x292D 0x27C5E
+0x292E 0x27C64
+0x292F-0x2930 0x27CE0
+0x2931 0x27CE5
+0x2932 0x27DA5
+0x2933 0x27D9B
+0x2934 0x27D9F
+0x2935 0x27D9C
+0x2936 0x477A
+0x2937 0x27DAA
+0x2938 0x27DA4
+0x2939 0x27DA3
+0x293A 0x27E67
+0x293B 0x27F26
+0x293C 0x27F1A
+0x293D 0x47B8
+0x293E 0x27F1C
+0x293F 0x27F15
+0x2940 0x27F1B
+0x2941 0x27F18
+0x2942 0x27F1E
+0x2943 0x27F25
+0x2944 0x2F9DC
+0x2945 0x2807B
+0x2946 0x28075
+0x2947 0x28093
+0x2948 0x2808F
+0x2949 0x2807C
+0x294A 0x2809B
+0x294B 0x28088
+0x294C 0x28091
+0x294D 0x2807E
+0x294E 0x4801
+0x294F 0x28086
+0x2950 0x2825B
+0x2951 0x28254
+0x2952 0x28335
+0x2953 0x28340
+0x2954 0x28337
+0x2955 0x28329
+0x2956 0x28326
+0x2957 0x28323
+0x2958 0x28330
+0x2959 0x28320
+0x295A 0x28328
+0x295B 0x28332
+0x295C 0x2832A
+0x295D 0x28331
+0x295E 0x28324
+0x295F-0x2961 0x28341
+0x2962 0x28325
+0x2963 0x28338
+0x2964-0x2966 0x2841C
+0x2967 0x284F6
+0x2968 0x285A5
+0x2969 0x28589
+0x296A 0x2859D
+0x296B 0x2858A
+0x296C 0x28587
+0x296D 0x285AB
+0x296E 0x28586
+0x296F 0x2859E
+0x2970 0x28593
+0x2971 0x285A1
+0x2972 0x28588
+0x2973 0x285A3
+0x2974-0x2975 0x2859F
+0x2976-0x2977 0x286FF
+0x2978 0x28702
+0x2979 0x286F8
+0x297A 0x286F7
+0x297B 0x28701
+0x297C 0x28787
+0x297D 0x28789
+0x297E 0x28776
+0x2A21 0x2876E
+0x2A22 0x28777
+0x2A23 0x28782
+0x2A24 0x28785
+0x2A25-0x2A26 0x28783
+0x2A27 0x28857
+0x2A28 0x2884B
+0x2A29 0x28856
+0x2A2A 0x2885D
+0x2A2B 0x28860
+0x2A2C 0x2884D
+0x2A2D 0x28855
+0x2A2E 0x28854
+0x2A2F 0x28853
+0x2A30 0x28850
+0x2A31 0x28863
+0x2A32 0x28862
+0x2A33 0x28917
+0x2A34 0x28916
+0x2A35 0x2892D
+0x2A36 0x289D9
+0x2A37 0x289BF
+0x2A38 0x492F
+0x2A39 0x289B2
+0x2A3A 0x289AC
+0x2A3B 0x289B0
+0x2A3C 0x289CF
+0x2A3D 0x289B8
+0x2A3E 0x4931
+0x2A3F 0x289D3
+0x2A40 0x289B1
+0x2A41 0x289AF
+0x2A42 0x289CE
+0x2A43 0x289B4
+0x2A44 0x289B7
+0x2A45 0x289D5
+0x2A46 0x499C
+0x2A47 0x28D38
+0x2A48 0x28D28
+0x2A49-0x2A4B 0x28D3F
+0x2A4C 0x28D33
+0x2A4D 0x28D2B
+0x2A4E 0x28D2E
+0x2A4F 0x28F11
+0x2A50 0x28F18
+0x2A51 0x28F17
+0x2A52 0x28F19
+0x2A53 0x28F16
+0x2A54 0x49E6
+0x2A55 0x28F0D
+0x2A56 0x28F26
+0x2A57 0x28F79
+0x2A58 0x28FD8
+0x2A59 0x28FF3
+0x2A5A 0x28FD7
+0x2A5B 0x28FCC
+0x2A5C 0x28FCF
+0x2A5D 0x28FCB
+0x2A5E 0x28FD1
+0x2A5F 0x28FCE
+0x2A60-0x2A61 0x28FD4
+0x2A62 0x28FD3
+0x2A63 0x28FD6
+0x2A64 0x28FCD
+0x2A65 0x28FDA
+0x2A66 0x28FD2
+0x2A67 0x28FDE
+0x2A68 0x290CC
+0x2A69 0x290B8
+0x2A6A 0x290B7
+0x2A6B-0x2A6C 0x290C2
+0x2A6D 0x291FA
+0x2A6E 0x291F9
+0x2A6F 0x2921F
+0x2A70 0x2921D
+0x2A71 0x24382
+0x2A72 0x292A6
+0x2A73 0x29290
+0x2A74 0x2929E
+0x2A75 0x29298
+0x2A76 0x29293
+0x2A77 0x29292
+0x2A78 0x292A5
+0x2A79 0x29295
+0x2A7A 0x293A9
+0x2A7B 0x293A8
+0x2A7C-0x2A7E 0x293AA
+0x2B21 0x2941F
+0x2B22 0x29422
+0x2B23 0x294AA
+0x2B24 0x29496
+0x2B25 0x29491
+0x2B26 0x294AB
+0x2B27 0x294A2
+0x2B28 0x294A4
+0x2B29 0x2949D
+0x2B2A 0x29497
+0x2B2B 0x2947D
+0x2B2C 0x2949F
+0x2B2D 0x2949C
+0x2B2E 0x29499
+0x2B2F 0x294A6
+0x2B30 0x29492
+0x2B31 0x294A7
+0x2B32 0x295C9
+0x2B33 0x295C8
+0x2B34 0x295C7
+0x2B35 0x295CB
+0x2B36 0x29674
+0x2B37 0x296C9
+0x2B38 0x4B38
+0x2B39 0x296D2
+0x2B3A 0x296DB
+0x2B3B 0x296EB
+0x2B3C 0x296E9
+0x2B3D 0x296EF
+0x2B3E 0x296EE
+0x2B3F 0x296F9
+0x2B40 0x296DE
+0x2B41 0x29816
+0x2B42 0x29845
+0x2B43 0x2987F
+0x2B44 0x29898
+0x2B45 0x2989F
+0x2B46 0x29886
+0x2B47 0x29890
+0x2B48 0x2989A
+0x2B49 0x2989D
+0x2B4A 0x2988D
+0x2B4B 0x2989C
+0x2B4C 0x298A0
+0x2B4D 0x298A7
+0x2B4E 0x2988F
+0x2B4F 0x29A41
+0x2B50 0x29A35
+0x2B51 0x29A37
+0x2B52 0x29A30
+0x2B53 0x29A3A
+0x2B54 0x29A36
+0x2B55 0x2FA08
+0x2B56 0x29ACA
+0x2B57 0x29B12
+0x2B58 0x29B15
+0x2B59 0x29B22
+0x2B5A 0x29B13
+0x2B5B 0x29B18
+0x2B5C 0x29B21
+0x2B5D 0x29C10
+0x2B5E 0x29C20
+0x2B5F 0x29C2F
+0x2B60 0x29CA5
+0x2B61 0x29CA3
+0x2B62 0x29CB6
+0x2B63 0x29CAB
+0x2B64 0x29D68
+0x2B65 0x29D67
+0x2B66 0x29D6F
+0x2B67 0x29D77
+0x2B68 0x29D64
+0x2B69 0x29D78
+0x2B6A 0x4C3A
+0x2B6B 0x29D76
+0x2B6C 0x29D6E
+0x2B6D 0x4CB1
+0x2B6E 0x29FD0
+0x2B6F 0x29FB3
+0x2B70 0x29FCB
+0x2B71 0x29FD6
+0x2B72 0x29FB1
+0x2B73 0x29FB4
+0x2B74 0x29FD7
+0x2B75 0x29FC6
+0x2B76 0x29FBA
+0x2B77-0x2B78 0x29FD1
+0x2B79 0x29FB5
+0x2B7A 0x29FC4
+0x2B7B 0x29FCC
+0x2B7C 0x29FBB
+0x2B7D 0x29FB2
+0x2B7E 0x2A25B
+0x2C21 0x2A25A
+0x2C22 0x2A259
+0x2C23 0x2A299
+0x2C24 0x2A294
+0x2C25 0x2A296
+0x2C26 0x2A293
+0x2C27 0x2A291
+0x2C28 0x2A28F
+0x2C29 0x2A298
+0x2C2A 0x2A30C
+0x2C2B 0x2A30A
+0x2C2C 0x2A30E
+0x2C2D 0x2A312
+0x2C2E 0x2A311
+0x2C2F 0x2A30B
+0x2C30 0x2A39A
+0x2C31 0x4D47
+0x2C32 0x2A3B4
+0x2C33 0x4D51
+0x2C34 0x2A41C
+0x2C35-0x2C36 0x2A420
+0x2C37 0x2A4D3
+0x2C38 0x2A4D2
+0x2C39 0x2A538
+0x2C3A 0x2EF1
+0x2C3B 0x24CCF
+0x2C3C 0x2011D
+0x2C3D 0x20192
+0x2C3E 0x2018F
+0x2C3F 0x2018C
+0x2C40 0x203EA
+0x2C41 0x204B9
+0x2C42 0x2056E
+0x2C43 0x205A0
+0x2C44 0x291DD
+0x2C45 0x20612
+0x2C46 0x20617
+0x2C47 0x2066D
+0x2C48 0x20805
+0x2C49 0x207FB
+0x2C4A 0x207FD
+0x2C4B 0x20806
+0x2C4C 0x20800
+0x2C4D 0x207FF
+0x2C4E 0x207FE
+0x2C4F 0x208B6
+0x2C50 0x20905
+0x2C51 0x20907
+0x2C52 0x20ABC
+0x2C53 0x20ABB
+0x2C54 0x20B8B
+0x2C55 0x20B87
+0x2C56 0x27BFB
+0x2C57 0x20FE7
+0x2C58 0x20FE6
+0x2C59 0x20FE2
+0x2C5A 0x285D3
+0x2C5B 0x20FD9
+0x2C5C 0x20FCA
+0x2C5D 0x21012
+0x2C5E 0x21010
+0x2C5F 0x20FDC
+0x2C60 0x20FD0
+0x2C61 0x20F8B
+0x2C62 0x21013
+0x2C63 0x22A10
+0x2C64 0x20FDA
+0x2C65 0x2F84F
+0x2C66 0x20FFD
+0x2C67 0x20FE5
+0x2C68 0x20FCC
+0x2C69 0x21039
+0x2C6A 0x20FC7
+0x2C6B 0x20FD8
+0x2C6C 0x21460
+0x2C6D 0x21464
+0x2C6E 0x21486
+0x2C6F 0x2145E
+0x2C70 0x21466
+0x2C71 0x2145F
+0x2C72 0x21477
+0x2C73 0x21482
+0x2C74 0x21496
+0x2C75 0x2153E
+0x2C76-0x2C77 0x21579
+0x2C78-0x2C79 0x21688
+0x2C7A 0x2168C
+0x2C7B 0x243E0
+0x2C7C 0x2167B
+0x2C7D 0x21686
+0x2C7E 0x21894
+0x2D21 0x21897
+0x2D22 0x218B7
+0x2D23 0x218B5
+0x2D24 0x218B8
+0x2D25 0x21893
+0x2D26 0x218B2
+0x2D27 0x218B4
+0x2D28 0x21899
+0x2D29 0x218C3
+0x2D2A 0x2189D
+0x2D2B 0x2189B
+0x2D2C 0x218A3
+0x2D2D 0x3747
+0x2D2E 0x2199F
+0x2D2F 0x2199E
+0x2D30 0x219A3
+0x2D31-0x2D32 0x219A0
+0x2D33-0x2D34 0x21AC5
+0x2D35 0x21ABE
+0x2D36 0x21AC4
+0x2D37 0x21ABF
+0x2D38 0x21B4C
+0x2D39 0x21B4A
+0x2D3A 0x21BB1
+0x2D3B 0x21C15
+0x2D3C 0x21C17
+0x2D3D 0x21C10
+0x2D3E 0x21C18
+0x2D3F 0x21CE0
+0x2D40 0x21CDF
+0x2D41 0x21D27
+0x2D42 0x21F43
+0x2D43 0x21F48
+0x2D44 0x21F1D
+0x2D45 0x21F50
+0x2D46 0x21F58
+0x2D47 0x21F47
+0x2D48 0x21F54
+0x2D49 0x21F53
+0x2D4A 0x21F40
+0x2D4B 0x21F55
+0x2D4C 0x3817
+0x2D4D 0x21F5A
+0x2D4E 0x22470
+0x2D4F 0x2215B
+0x2D50 0x2214D
+0x2D51 0x22156
+0x2D52 0x2214F
+0x2D53 0x2F887
+0x2D54 0x22159
+0x2D55 0x2F888
+0x2D56 0x22154
+0x2D57 0x22153
+0x2D58 0x22150
+0x2D59 0x222B3
+0x2D5A 0x2236E
+0x2D5B 0x38A3
+0x2D5C 0x2236F
+0x2D5D 0x22393
+0x2D5E 0x22429
+0x2D5F 0x22425
+0x2D60 0x22428
+0x2D61 0x2246F
+0x2D62 0x232B8
+0x2D63 0x2F897
+0x2D64 0x224B3
+0x2D65 0x22579
+0x2D66 0x2257E
+0x2D67 0x2257C
+0x2D68 0x22583
+0x2D69 0x2F8AC
+0x2D6A 0x22800
+0x2D6B 0x22834
+0x2D6C 0x22865
+0x2D6D 0x22836
+0x2D6E 0x228A7
+0x2D6F 0x22859
+0x2D70 0x22858
+0x2D71 0x22831
+0x2D72 0x22862
+0x2D73 0x22838
+0x2D74 0x22873
+0x2D75 0x2283E
+0x2D76 0x22855
+0x2D77 0x22854
+0x2D78 0x22895
+0x2D79 0x2F8AD
+0x2D7A 0x228A5
+0x2D7B 0x22894
+0x2D7C-0x2D7D 0x2289A
+0x2D7E 0x22899
+0x2E21 0x2289F
+0x2E22 0x22853
+0x2E23 0x22A12
+0x2E24 0x22A0A
+0x2E25 0x22A09
+0x2E26 0x22A0C
+0x2E27 0x22A0B
+0x2E28 0x22A0E
+0x2E29 0x22A0D
+0x2E2A 0x22A08
+0x2E2B 0x22D38
+0x2E2C 0x22D3A
+0x2E2D 0x22D37
+0x2E2E 0x22D3D
+0x2E2F 0x22D2D
+0x2E30 0x22D82
+0x2E31 0x22D95
+0x2E32 0x22D87
+0x2E33 0x22D9D
+0x2E34 0x22DB5
+0x2E35 0x22D81
+0x2E36 0x22DC7
+0x2E37 0x22D9B
+0x2E38 0x22D98
+0x2E39 0x22D94
+0x2E3A 0x22D86
+0x2E3B 0x22D90
+0x2E3C 0x22D34
+0x2E3D 0x22D8E
+0x2E3E 0x22D85
+0x2E3F 0x22DA6
+0x2E40 0x22D96
+0x2E41 0x22FEA
+0x2E42 0x22FDF
+0x2E43 0x232BD
+0x2E44 0x22FF7
+0x2E45 0x22FEB
+0x2E46 0x22FE0
+0x2E47 0x22FE8
+0x2E48 0x22FE1
+0x2E49 0x22FE9
+0x2E4A 0x22FEE
+0x2E4B 0x22FE5
+0x2E4C 0x22FEC
+0x2E4D 0x23063
+0x2E4E 0x230C6
+0x2E4F 0x230C2
+0x2E50 0x230C1
+0x2E51 0x230C0
+0x2E52 0x230C3
+0x2E53 0x23118
+0x2E54 0x232AE
+0x2E55 0x232A3
+0x2E56 0x232C5
+0x2E57 0x232A0
+0x2E58 0x232B4
+0x2E59 0x232A5
+0x2E5A 0x3B1E
+0x2E5B 0x232A4
+0x2E5C 0x232A8
+0x2E5D 0x232A6
+0x2E5E 0x236A8
+0x2E5F 0x2368D
+0x2E60 0x23682
+0x2E61 0x2369E
+0x2E62 0x23689
+0x2E63 0x23683
+0x2E64 0x23691
+0x2E65 0x236A6
+0x2E66 0x2369A
+0x2E67 0x23690
+0x2E68 0x23685
+0x2E69 0x2367D
+0x2E6A 0x2F8EC
+0x2E6B 0x2369B
+0x2E6C 0x236A5
+0x2E6D 0x236F0
+0x2E6E 0x23696
+0x2E6F 0x23688
+0x2E70 0x236D6
+0x2E71 0x236D8
+0x2E72 0x23686
+0x2E73 0x236A4
+0x2E74 0x23697
+0x2E75 0x2391C
+0x2E76 0x23919
+0x2E77-0x2E78 0x2399E
+0x2E79 0x2399D
+0x2E7A 0x2399C
+0x2E7B-0x2E7C 0x23A5D
+0x2E7D 0x23A73
+0x2E7E 0x23A63
+0x2F21 0x23ABE
+0x2F22 0x23AC1
+0x2F23 0x23ABC
+0x2F24 0x23ABF
+0x2F25 0x23ABB
+0x2F26 0x23ABD
+0x2F27-0x2F28 0x23B13
+0x2F29 0x23BF8
+0x2F2A 0x23BFA
+0x2F2B 0x23C06
+0x2F2C 0x23BFE
+0x2F2D 0x23C51
+0x2F2E 0x2400B
+0x2F2F 0x23FF1
+0x2F30 0x23FA9
+0x2F31 0x23FD5
+0x2F32 0x23FDC
+0x2F33 0x23FCB
+0x2F34 0x23FF2
+0x2F35 0x2405F
+0x2F36 0x23FDB
+0x2F37 0x23FD6
+0x2F38 0x23FD9
+0x2F39 0x23FD1
+0x2F3A 0x23FCF
+0x2F3B 0x23FD8
+0x2F3C 0x23FE0
+0x2F3D 0x23FD4
+0x2F3E 0x23FF3
+0x2F3F 0x24005
+0x2F40 0x23FCE
+0x2F41 0x23FF4
+0x2F42 0x2F912
+0x2F43 0x23FDA
+0x2F44 0x2400E
+0x2F45 0x24006
+0x2F46 0x23FD7
+0x2F47 0x23FCD
+0x2F48 0x24007
+0x2F49 0x23FE1
+0x2F4A 0x24008
+0x2F4B 0x243BE
+0x2F4C 0x243EF
+0x2F4D-0x2F4E 0x243D9
+0x2F4F 0x71D7
+0x2F50 0x243A0
+0x2F51 0x243DF
+0x2F52 0x2439E
+0x2F53 0x243BF
+0x2F54 0x243AF
+0x2F55 0x243A7
+0x2F56 0x243AA
+0x2F57 0x243F4
+0x2F58 0x243AE
+0x2F59 0x243B5
+0x2F5A 0x243B8
+0x2F5B 0x243DB
+0x2F5C 0x243C0
+0x2F5D 0x243B7
+0x2F5E 0x243A2
+0x2F5F 0x243DD
+0x2F60 0x243A1
+0x2F61 0x243A5
+0x2F62 0x243B4
+0x2F63 0x243A6
+0x2F64-0x2F65 0x243AB
+0x2F66 0x2439F
+0x2F67 0x243B1
+0x2F68 0x243FC
+0x2F69 0x2452E
+0x2F6A 0x24530
+0x2F6B 0x24599
+0x2F6C 0x245F8
+0x2F6D 0x245F6
+0x2F6E 0x246F4
+0x2F6F 0x246EB
+0x2F70 0x246E1
+0x2F71 0x246E4
+0x2F72 0x24875
+0x2F73 0x24869
+0x2F74 0x3E9A
+0x2F75 0x24899
+0x2F76 0x2489E
+0x2F77 0x24894
+0x2F78 0x24893
+0x2F79 0x24891
+0x2F7A 0x24A19
+0x2F7B 0x24A17
+0x2F7C 0x24A49
+0x2F7D-0x2F7E 0x24A47
+0x3021 0x24A52
+0x3022 0x24A40
+0x3023 0x24A63
+0x3024 0x24A46
+0x3025 0x24A5F
+0x3026 0x24B0E
+0x3027 0x24B85
+0x3028 0x24B87
+0x3029-0x302A 0x24BCB
+0x302B 0x24BC9
+0x302C 0x24CCB
+0x302D 0x21CE7
+0x302E 0x24D20
+0x302F-0x3030 0x24E5F
+0x3031 0x24E6A
+0x3032 0x24E76
+0x3033 0x24E73
+0x3034 0x24E71
+0x3035 0x24E66
+0x3036 0x3FC2
+0x3037 0x24E6B
+0x3038 0x24E79
+0x3039 0x24E7B
+0x303A 0x24F3C
+0x303B 0x24F9E
+0x303C 0x24F9C
+0x303D 0x2501C
+0x303E 0x2501E
+0x303F 0x25021
+0x3040 0x25096
+0x3041 0x250A1
+0x3042 0x250B6
+0x3043 0x250A0
+0x3044 0x25094
+0x3045 0x25097
+0x3046 0x25281
+0x3047 0x25286
+0x3048 0x252C0
+0x3049 0x2528A
+0x304A 0x2F94B
+0x304B 0x25285
+0x304C 0x25295
+0x304D 0x25249
+0x304E 0x25282
+0x304F 0x25284
+0x3050 0x22878
+0x3051 0x25290
+0x3052 0x252B1
+0x3053 0x253FE
+0x3054 0x253FB
+0x3055 0x25550
+0x3056 0x25556
+0x3057 0x2555A
+0x3058 0x2554C
+0x3059 0x40DC
+0x305A 0x25557
+0x305B 0x256E1
+0x305C 0x256D9
+0x305D 0x256DB
+0x305E 0x256F4
+0x305F 0x25745
+0x3060 0x25747
+0x3061 0x25874
+0x3062 0x2586B
+0x3063-0x3064 0x25868
+0x3065 0x25879
+0x3066 0x2F95B
+0x3067-0x3068 0x25880
+0x3069 0x25861
+0x306A 0x25870
+0x306B 0x2586F
+0x306C 0x25873
+0x306D 0x2585D
+0x306E 0x259FA
+0x306F 0x41B3
+0x3070 0x259F3
+0x3071 0x25A0A
+0x3072 0x25A17
+0x3073 0x2F95F
+0x3074 0x25AB0
+0x3075 0x25C3E
+0x3076 0x25C46
+0x3077 0x25C4F
+0x3078 0x25C44
+0x3079 0x25C69
+0x307A 0x25C33
+0x307B 0x25C2F
+0x307C 0x25C4E
+0x307D 0x25C3A
+0x307E 0x25C2B
+0x3121 0x25CA9
+0x3122 0x25C50
+0x3123 0x25C45
+0x3124 0x25C37
+0x3125 0x25C25
+0x3126 0x25C2C
+0x3127 0x25C3F
+0x3128 0x25C34
+0x3129 0x25C29
+0x312A 0x25C1E
+0x312B 0x25C3D
+0x312C 0x25EED
+0x312D 0x2F966
+0x312E 0x25EF3
+0x312F-0x3130 0x25EEA
+0x3131 0x260CC
+0x3132 0x260CE
+0x3133 0x260D0
+0x3134 0x260E3
+0x3135 0x260E0
+0x3136 0x260D1
+0x3137-0x3138 0x260DC
+0x3139 0x260F0
+0x313A 0x260DB
+0x313B 0x260E5
+0x313C 0x260F1
+0x313D 0x260C9
+0x313E 0x260E8
+0x313F 0x260E7
+0x3140 0x260C8
+0x3141 0x260DE
+0x3142 0x260CD
+0x3143-0x3144 0x260C5
+0x3145 0x260E4
+0x3146 0x260C3
+0x3147-0x3148 0x262FB
+0x3149 0x262FE
+0x314A 0x26303
+0x314B 0x26300
+0x314C 0x262FD
+0x314D 0x26305
+0x314E 0x26313
+0x314F 0x263A7
+0x3150 0x263B4
+0x3151 0x26470
+0x3152 0x26474
+0x3153 0x26471
+0x3154 0x26475
+0x3155 0x2647D
+0x3156 0x26473
+0x3157 0x264C4
+0x3158 0x264C3
+0x3159 0x264DE
+0x315A 0x264DD
+0x315B 0x26511
+0x315C-0x315D 0x2650F
+0x315E 0x265C3
+0x315F 0x265C2
+0x3160 0x265CA
+0x3161 0x265C1
+0x3162 0x26623
+0x3163 0x267B1
+0x3164 0x26824
+0x3165 0x26811
+0x3166 0x26825
+0x3167 0x2680A
+0x3168-0x3169 0x2681F
+0x316A 0x26814
+0x316B 0x26828
+0x316C 0x26803
+0x316D 0x26812
+0x316E 0x2680B
+0x316F 0x26817
+0x3170 0x22A11
+0x3171 0x26949
+0x3172 0x26989
+0x3173 0x26990
+0x3174 0x2698F
+0x3175 0x26996
+0x3176 0x26995
+0x3177 0x26993
+0x3178 0x269ED
+0x3179 0x269F0
+0x317A 0x243DE
+0x317B 0x26A85
+0x317C 0x26A77
+0x317D 0x26A7A
+0x317E 0x26A84
+0x3221 0x26A79
+0x3222 0x26A7D
+0x3223 0x26A7B
+0x3224 0x26AED
+0x3225 0x26AEC
+0x3226 0x26DF6
+0x3227 0x26D9B
+0x3228 0x26E9D
+0x3229 0x26F11
+0x322A 0x26EC4
+0x322B 0x26EC8
+0x322C 0x26EDF
+0x322D 0x26EBF
+0x322E 0x26EB3
+0x322F 0x26EBA
+0x3230 0x26F10
+0x3231 0x26F06
+0x3232 0x26E88
+0x3233 0x26E9A
+0x3234 0x26EE0
+0x3235 0x26ECC
+0x3236 0x26EB5
+0x3237 0x26EE1
+0x3238 0x26EBC
+0x3239 0x26EC6
+0x323A 0x26F0B
+0x323B 0x26EA4
+0x323C 0x26E95
+0x323D 0x26EA3
+0x323E 0x26EE2
+0x323F 0x26ECD
+0x3240 0x26EE3
+0x3241 0x26EAB
+0x3242 0x26ECB
+0x3243 0x26E8F
+0x3244 0x2F9AB
+0x3245 0x26EA9
+0x3246 0x26F24
+0x3247 0x26EE4
+0x3248 0x26F12
+0x3249 0x26EE5
+0x324A 0x26F67
+0x324B 0x26EAA
+0x324C 0x26EA0
+0x324D 0x26EE6
+0x324E 0x26EC1
+0x324F 0x26EE7
+0x3250 0x26F0D
+0x3251 0x26E86
+0x3252 0x26EB0
+0x3253 0x26E8B
+0x3254 0x26EE8
+0x3255 0x26EC9
+0x3256 0x26F19
+0x3257 0x26EC0
+0x3258 0x26F0C
+0x3259-0x325A 0x26EE9
+0x325B 0x271ED
+0x325C-0x325D 0x271E3
+0x325E 0x271E8
+0x325F 0x271D2
+0x3260 0x271E2
+0x3261 0x8666
+0x3262 0x273CF
+0x3263 0x273D1
+0x3264 0x273C3
+0x3265 0x273C9
+0x3266 0x273EA
+0x3267 0x273B4
+0x3268 0x273DC
+0x3269 0x273BD
+0x326A 0x273E6
+0x326B 0x273C8
+0x326C 0x273EC
+0x326D 0x273B2
+0x326E 0x273A9
+0x326F 0x273D3
+0x3270 0x273C0
+0x3271 0x273E9
+0x3272 0x273D5
+0x3273 0x45D9
+0x3274 0x273C5
+0x3275 0x45DD
+0x3276 0x273CB
+0x3277 0x273D0
+0x3278 0x273D2
+0x3279 0x273E4
+0x327A 0x273E8
+0x327B 0x273CD
+0x327C 0x273B6
+0x327D 0x273AA
+0x327E 0x273D4
+0x3321 0x28449
+0x3322 0x273C1
+0x3323 0x273DD
+0x3324 0x273CE
+0x3325-0x3326 0x275C9
+0x3327 0x276FD
+0x3328 0x276D9
+0x3329 0x276FF
+0x332A 0x27704
+0x332B 0x276FA
+0x332C 0x27706
+0x332D 0x27715
+0x332E 0x27711
+0x332F 0x27707
+0x3330 0x2770B
+0x3331-0x3332 0x277FC
+0x3333 0x2786D
+0x3334 0x27865
+0x3335 0x27914
+0x3336 0x27913
+0x3337 0x2790C
+0x3338 0x2790B
+0x3339 0x27918
+0x333A 0x27922
+0x333B 0x27A7D
+0x333C 0x27A6F
+0x333D 0x27A75
+0x333E 0x27A7B
+0x333F 0x27A80
+0x3340 0x27A7F
+0x3341 0x27A96
+0x3342 0x27A6D
+0x3343 0x27A6B
+0x3344 0x27A86
+0x3345 0x27A73
+0x3346 0x27A62
+0x3347 0x27A77
+0x3348 0x27A81
+0x3349 0x27A69
+0x334A 0x27A82
+0x334B 0x27A97
+0x334C 0x27A84
+0x334D 0x46FC
+0x334E 0x27A78
+0x334F 0x2F9D0
+0x3350 0x27A7A
+0x3351 0x27A6A
+0x3352 0x27A65
+0x3353 0x27A7E
+0x3354 0x27A94
+0x3355 0x27BC2
+0x3356 0x27BC1
+0x3357 0x27BF9
+0x3358 0x27C71
+0x3359 0x27C6B
+0x335A 0x27C6D
+0x335B 0x27C6F
+0x335C 0x27C6E
+0x335D 0x27CF2
+0x335E 0x27CE8
+0x335F 0x27CEF
+0x3360-0x3361 0x27CE9
+0x3362 0x27CED
+0x3363 0x27CF3
+0x3364 0x27CE6
+0x3365 0x27DC9
+0x3366 0x27DB4
+0x3367 0x27DB3
+0x3368 0x27DB9
+0x3369 0x27DCA
+0x336A 0x27DB1
+0x336B 0x27DB6
+0x336C 0x27DC7
+0x336D 0x27DC4
+0x336E 0x27DB7
+0x336F 0x27E6F
+0x3370 0x27F33
+0x3371 0x27F32
+0x3372 0x27F1F
+0x3373 0x2F9D9
+0x3374 0x27F2B
+0x3375 0x27F30
+0x3376 0x27F36
+0x3377 0x27F42
+0x3378 0x27F41
+0x3379 0x2F9D8
+0x337A 0x280A5
+0x337B 0x280AB
+0x337C 0x280A9
+0x337D 0x280B3
+0x337E 0x280A7
+0x3421 0x280A0
+0x3422 0x280D2
+0x3423 0x280A8
+0x3424 0x280B6
+0x3425 0x280AC
+0x3426 0x280AE
+0x3427 0x280E6
+0x3428 0x28265
+0x3429 0x28347
+0x342A 0x28363
+0x342B 0x2834D
+0x342C 0x2835F
+0x342D 0x2834B
+0x342E 0x28360
+0x342F 0x28349
+0x3430 0x28353
+0x3431 0x2F9DF
+0x3432 0x8F3A
+0x3433 0x28357
+0x3434 0x2834E
+0x3435 0x28352
+0x3436 0x28354
+0x3437 0x28420
+0x3438 0x28422
+0x3439 0x285C1
+0x343A 0x285D7
+0x343B 0x285D5
+0x343C 0x285C4
+0x343D 0x285D0
+0x343E 0x285BB
+0x343F 0x285E2
+0x3440 0x285CB
+0x3441 0x285B8
+0x3442 0x285BF
+0x3443 0x285D8
+0x3444 0x285C0
+0x3445 0x285BA
+0x3446 0x285B4
+0x3447 0x285BC
+0x3448 0x285D4
+0x3449 0x285ED
+0x344A 0x285C2
+0x344B 0x285D9
+0x344C 0x285CC
+0x344D 0x2872F
+0x344E 0x28723
+0x344F 0x28796
+0x3450 0x2878D
+0x3451 0x2879E
+0x3452 0x28799
+0x3453 0x28883
+0x3454 0x4907
+0x3455 0x2886A
+0x3456 0x28869
+0x3457 0x28875
+0x3458 0x2886C
+0x3459 0x28880
+0x345A 0x2886E
+0x345B 0x28881
+0x345C 0x28877
+0x345D 0x28876
+0x345E 0x28873
+0x345F 0x28870
+0x3460 0x28884
+0x3461 0x28919
+0x3462 0x289F2
+0x3463 0x933D
+0x3464 0x289EC
+0x3465 0x289EB
+0x3466 0x289F6
+0x3467 0x289EF
+0x3468 0x289F4
+0x3469 0x289EE
+0x346A 0x289F3
+0x346B 0x289ED
+0x346C 0x28C9B
+0x346D 0x28C98
+0x346E 0x28C94
+0x346F 0x2147A
+0x3470 0x28C9A
+0x3471 0x2F9F0
+0x3472 0x28D4C
+0x3473 0x49A8
+0x3474 0x28D57
+0x3475 0x28D51
+0x3476 0x28D62
+0x3477 0x28D52
+0x3478 0x28D5C
+0x3479 0x28D53
+0x347A 0x2F9EF
+0x347B 0x28E85
+0x347C 0x28F2D
+0x347D 0x28F3E
+0x347E 0x28F30
+0x3521 0x28F7D
+0x3522 0x28FE6
+0x3523 0x28FF6
+0x3524 0x28FE4
+0x3525 0x28FE9
+0x3526 0x28FEC
+0x3527 0x28FF2
+0x3528 0x28FE8
+0x3529 0x28FE3
+0x352A 0x28FEB
+0x352B 0x28FF0
+0x352C 0x28FEA
+0x352D 0x28FE7
+0x352E 0x28FFD
+0x352F 0x28FE5
+0x3530 0x28FEE
+0x3531 0x28FF5
+0x3532 0x28FF9
+0x3533 0x28FF1
+0x3534 0x28FF4
+0x3535 0x2F9F4
+0x3536 0x29011
+0x3537 0x290DE
+0x3538 0x290D8
+0x3539 0x290DD
+0x353A 0x290DB
+0x353B 0x290D3
+0x353C 0x290E1
+0x353D 0x291DE
+0x353E 0x291FC
+0x353F 0x29228
+0x3540-0x3541 0x292B7
+0x3542 0x292C7
+0x3543 0x292B2
+0x3544 0x292A9
+0x3545 0x292B9
+0x3546 0x292BC
+0x3547 0x292B3
+0x3548 0x292D1
+0x3549-0x354A 0x293B0
+0x354B 0x293B6
+0x354C 0x29404
+0x354D 0x2942C
+0x354E 0x294C1
+0x354F 0x2949E
+0x3550 0x294BA
+0x3551 0x4ACA
+0x3552 0x294D1
+0x3553-0x3555 0x294D3
+0x3556 0x294C5
+0x3557 0x294B6
+0x3558 0x294B2
+0x3559 0x294B5
+0x355A 0x294C3
+0x355B 0x294B9
+0x355C 0x294C6
+0x355D 0x295D6
+0x355E 0x295E0
+0x355F 0x295DB
+0x3560 0x295D7
+0x3561 0x295DD
+0x3562 0x29715
+0x3563 0x2970C
+0x3564 0x2970F
+0x3565 0x2970E
+0x3566 0x296FE
+0x3567 0x29704
+0x3568 0x2970B
+0x3569 0x29702
+0x356A 0x296FF
+0x356B 0x29708
+0x356C 0x29710
+0x356D 0x29717
+0x356E 0x29713
+0x356F 0x29706
+0x3570 0x29709
+0x3571 0x29824
+0x3572 0x29826
+0x3573 0x29825
+0x3574 0x29848
+0x3575 0x298B5
+0x3576 0x298D2
+0x3577 0x298D5
+0x3578 0x298C4
+0x3579 0x298AF
+0x357A 0x298AD
+0x357B 0x298C1
+0x357C 0x298C0
+0x357D-0x357E 0x298CC
+0x3621 0x298C3
+0x3622 0x298C8
+0x3623 0x298C5
+0x3624 0x298BA
+0x3625 0x298D0
+0x3626 0x298C2
+0x3627 0x298CE
+0x3628 0x4B8D
+0x3629 0x29A43
+0x362A 0x29A42
+0x362B 0x29A40
+0x362C 0x29A31
+0x362D 0x29ACF
+0x362E 0x29ACE
+0x362F 0x29B30
+0x3630 0x29B34
+0x3631 0x29B32
+0x3632 0x29B43
+0x3633 0x29B3C
+0x3634 0x29C11
+0x3635 0x29C35
+0x3636 0x29C34
+0x3637 0x29C37
+0x3638 0x29C31
+0x3639 0x29CBF
+0x363A 0x29CBC
+0x363B 0x29CC2
+0x363C 0x29CC9
+0x363D 0x29D83
+0x363E 0x29D8B
+0x363F 0x29DA0
+0x3640 0x29D8D
+0x3641 0x29D8C
+0x3642 0x29D9A
+0x3643 0x29D8A
+0x3644 0x29D91
+0x3645 0x29FF1
+0x3646 0x2A00F
+0x3647 0x2A001
+0x3648 0x2A007
+0x3649 0x2A00C
+0x364A 0x4CC0
+0x364B 0x29FDC
+0x364C 0x29FEE
+0x364D 0x29FF7
+0x364E 0x29FF2
+0x364F 0x29FF8
+0x3650 0x29FEB
+0x3651 0x4CCA
+0x3652 0x29FE6
+0x3653 0x29FED
+0x3654 0x29FE9
+0x3655 0x2A008
+0x3656 0x2A000
+0x3657 0x29FE5
+0x3658 0x29FFC
+0x3659 0x2A261
+0x365A-0x365B 0x2A25E
+0x365C 0x4D25
+0x365D 0x2A29B
+0x365E 0x2A316
+0x365F 0x2A315
+0x3660 0x2A320
+0x3661 0x2A314
+0x3662 0x2A31A
+0x3663 0x2A317
+0x3664 0x2A39C
+0x3665 0x4D4A
+0x3666 0x2A3F1
+0x3667 0x4D53
+0x3668 0x2A3F0
+0x3669 0x2A428
+0x366A 0x2A424
+0x366B-0x366C 0x2A42A
+0x366D 0x2A4D5
+0x366E-0x366F 0x2A504
+0x3670-0x3671 0x2A591
+0x3672 0x2A6A6
+0x3673 0x20109
+0x3674 0x20422
+0x3675 0x2041A
+0x3676 0x2040E
+0x3677 0x2041B
+0x3678 0x20408
+0x3679 0x250B3
+0x367A 0x2F81C
+0x367B 0x2069D
+0x367C 0x20812
+0x367D 0x2081E
+0x367E 0x208BB
+0x3721 0x208BF
+0x3722 0x208BC
+0x3723-0x3724 0x20908
+0x3725 0x20963
+0x3726 0x209C8
+0x3727 0x23728
+0x3728 0x20B8E
+0x3729 0x20B8D
+0x372A 0x21043
+0x372B 0x2104D
+0x372C 0x2106D
+0x372D 0x21042
+0x372E 0x21052
+0x372F 0x21051
+0x3730 0x21069
+0x3731 0x21050
+0x3732 0x21056
+0x3733 0x2106C
+0x3734-0x3735 0x21044
+0x3736 0x2106B
+0x3737 0x3605
+0x3738 0x21068
+0x3739 0x21057
+0x373A 0x2122E
+0x373B 0x21231
+0x373C 0x2122D
+0x373D 0x2148B
+0x373E 0x214B2
+0x373F 0x2148D
+0x3740-0x3741 0x214A3
+0x3742 0x21490
+0x3743 0x21489
+0x3744 0x2148E
+0x3745 0x21492
+0x3746 0x2157B
+0x3747 0x21690
+0x3748 0x2168F
+0x3749 0x218E9
+0x374A 0x218CD
+0x374B 0x218C5
+0x374C 0x218D0
+0x374D 0x218C9
+0x374E 0x218D1
+0x374F 0x218C7
+0x3750 0x218D2
+0x3751 0x2185F
+0x3752 0x218E1
+0x3753 0x218CC
+0x3754 0x218C6
+0x3755 0x218E4
+0x3756 0x219A9
+0x3757 0x21AD3
+0x3758 0x21ADA
+0x3759 0x21AD2
+0x375A 0x21ADB
+0x375B-0x375C 0x21B4D
+0x375D 0x21C1C
+0x375E 0x21CE8
+0x375F 0x21F6C
+0x3760 0x21F5F
+0x3761 0x21F66
+0x3762 0x21F64
+0x3763 0x21F78
+0x3764 0x21F65
+0x3765 0x21F6D
+0x3766 0x21F61
+0x3767 0x21F7A
+0x3768 0x22007
+0x3769 0x22166
+0x376A 0x22168
+0x376B 0x22162
+0x376C-0x376D 0x222D3
+0x376E 0x222D1
+0x376F 0x222DC
+0x3770 0x22373
+0x3771 0x22372
+0x3772 0x2242D
+0x3773 0x2242C
+0x3774 0x2242F
+0x3775 0x22472
+0x3776 0x224B4
+0x3777 0x22589
+0x3778 0x228CD
+0x3779 0x228A6
+0x377A 0x228A2
+0x377B 0x228A0
+0x377C 0x22846
+0x377D 0x228A1
+0x377E 0x26857
+0x3821 0x228A3
+0x3822 0x228B1
+0x3823 0x228DB
+0x3824 0x228F6
+0x3825 0x228DC
+0x3826 0x228D6
+0x3827 0x22A13
+0x3828 0x22D9C
+0x3829 0x22D97
+0x382A 0x22DD8
+0x382B 0x22DE4
+0x382C 0x22DD4
+0x382D 0x22DE5
+0x382E 0x22DDB
+0x382F 0x22DD0
+0x3830 0x22DDA
+0x3831 0x22DCC
+0x3832 0x22DDC
+0x3833 0x22DED
+0x3834 0x22DD3
+0x3835 0x22DD1
+0x3836 0x22DCE
+0x3837 0x22DD9
+0x3838 0x22DDD
+0x3839 0x2F8C6
+0x383A 0x22EE6
+0x383B 0x22EE5
+0x383C 0x22EE9
+0x383D 0x22FFF
+0x383E 0x22FFE
+0x383F 0x2300E
+0x3840 0x2308C
+0x3841-0x3842 0x230CA
+0x3843 0x2311A
+0x3844 0x232D7
+0x3845-0x3846 0x232CF
+0x3847 0x232C9
+0x3848 0x232CC
+0x3849 0x232D3
+0x384A 0x233A4
+0x384B 0x233A3
+0x384C 0x23681
+0x384D 0x23726
+0x384E 0x236F3
+0x384F 0x23727
+0x3850 0x236F2
+0x3851 0x236FF
+0x3852 0x236F5
+0x3853 0x236FC
+0x3854 0x2370E
+0x3855 0x3BF0
+0x3856 0x236F6
+0x3857 0x23700
+0x3858 0x23723
+0x3859 0x23705
+0x385A 0x23725
+0x385B 0x23708
+0x385C 0x23750
+0x385D 0x23925
+0x385E 0x23920
+0x385F 0x23923
+0x3860 0x23921
+0x3861 0x239A1
+0x3862 0x23A69
+0x3863 0x23A6C
+0x3864 0x23A68
+0x3865 0x23A6B
+0x3866-0x3867 0x23ACC
+0x3868 0x23C10
+0x3869 0x23C0D
+0x386A 0x23C0A
+0x386B 0x23C16
+0x386C 0x23C14
+0x386D 0x23C52
+0x386E 0x24028
+0x386F 0x2402E
+0x3870 0x2402C
+0x3871 0x2404D
+0x3872 0x24049
+0x3873 0x24031
+0x3874 0x24030
+0x3875 0x24033
+0x3876 0x2402D
+0x3877 0x24036
+0x3878 0x2403E
+0x3879 0x2402F
+0x387A 0x24027
+0x387B 0x24034
+0x387C 0x2404C
+0x387D 0x243FE
+0x387E 0x24412
+0x3921 0x2441F
+0x3922 0x24417
+0x3923 0x243F5
+0x3924 0x24415
+0x3925 0x243F7
+0x3926 0x3E02
+0x3927 0x21F7D
+0x3928 0x243FA
+0x3929 0x243F9
+0x392A 0x2444B
+0x392B-0x392C 0x2459C
+0x392D 0x3E23
+0x392E 0x246F0
+0x392F 0x246F6
+0x3930 0x246EF
+0x3931 0x2489D
+0x3932 0x2489A
+0x3933 0x248A7
+0x3934 0x248AF
+0x3935 0x248AA
+0x3936 0x24A64
+0x3937 0x24A86
+0x3938 0x24A75
+0x3939 0x24A70
+0x393A 0x24A84
+0x393B 0x24A6B
+0x393C 0x24A85
+0x393D 0x24A6C
+0x393E 0x24B17
+0x393F 0x24B94
+0x3940 0x24B93
+0x3941 0x24CD2
+0x3942 0x24CD7
+0x3943 0x24CD4
+0x3944-0x3945 0x24EA6
+0x3946 0x24E9C
+0x3947 0x24E8B
+0x3948 0x24E8D
+0x3949 0x24E98
+0x394A 0x24EB9
+0x394B 0x24E9B
+0x394C 0x24E9D
+0x394D 0x24E99
+0x394E 0x24EA8
+0x394F 0x24E91
+0x3950 0x24E87
+0x3951 0x24E9A
+0x3952 0x24FA6
+0x3953 0x2501F
+0x3954 0x250A7
+0x3955-0x3956 0x250B1
+0x3957 0x250B7
+0x3958 0x252D0
+0x3959 0x252B3
+0x395A 0x252B5
+0x395B 0x252C4
+0x395C 0x252C3
+0x395D 0x252BC
+0x395E 0x252B2
+0x395F-0x3960 0x252BA
+0x3961 0x252C2
+0x3962 0x252CD
+0x3963 0x252BE
+0x3964 0x252B7
+0x3965 0x2538F
+0x3966-0x3967 0x25403
+0x3968 0x25571
+0x3969 0x25577
+0x396A 0x25574
+0x396B 0x2558B
+0x396C 0x2557A
+0x396D 0x2F951
+0x396E 0x2558C
+0x396F 0x25573
+0x3970 0x256FF
+0x3971 0x256FB
+0x3972 0x256FD
+0x3973 0x256F0
+0x3974 0x256F3
+0x3975 0x256FC
+0x3976 0x256F2
+0x3977 0x25892
+0x3978 0x2589E
+0x3979 0x258AE
+0x397A 0x25896
+0x397B 0x25A14
+0x397C-0x397D 0x25A12
+0x397E 0x25A16
+0x3A21 0x25A0F
+0x3A22 0x25AB6
+0x3A23 0x25ABD
+0x3A24 0x25C8C
+0x3A25 0x25CAE
+0x3A26 0x25CAC
+0x3A27 0x25CAB
+0x3A28 0x25C99
+0x3A29 0x25C92
+0x3A2A 0x25CBB
+0x3A2B 0x25C9E
+0x3A2C 0x25C7E
+0x3A2D 0x25CAF
+0x3A2E 0x25CBC
+0x3A2F 0x25C98
+0x3A30 0x25F01
+0x3A31 0x25F09
+0x3A32 0x25F06
+0x3A33 0x2F967
+0x3A34-0x3A35 0x25F07
+0x3A36 0x260CF
+0x3A37 0x2610E
+0x3A38 0x26132
+0x3A39 0x4315
+0x3A3A 0x26112
+0x3A3B-0x3A3C 0x26116
+0x3A3D 0x2611B
+0x3A3E 0x26115
+0x3A3F 0x26131
+0x3A40 0x26118
+0x3A41 0x2611A
+0x3A42 0x26110
+0x3A43 0x2610A
+0x3A44 0x26109
+0x3A45 0x2624F
+0x3A46 0x2F973
+0x3A47-0x3A48 0x2630F
+0x3A49 0x2F975
+0x3A4A 0x26328
+0x3A4B 0x26311
+0x3A4C-0x3A4D 0x26316
+0x3A4E 0x26302
+0x3A4F 0x263BB
+0x3A50 0x263BA
+0x3A51 0x263C3
+0x3A52 0x263BC
+0x3A53 0x2648A
+0x3A54 0x26484
+0x3A55 0x26486
+0x3A56 0x264E0
+0x3A57-0x3A58 0x26517
+0x3A59 0x2651E
+0x3A5A 0x26515
+0x3A5B 0x265D3
+0x3A5C 0x265DA
+0x3A5D 0x265D9
+0x3A5E 0x267E6
+0x3A5F 0x267F4
+0x3A60 0x267E1
+0x3A61 0x26869
+0x3A62 0x26840
+0x3A63 0x26858
+0x3A64 0x2686C
+0x3A65 0x2684D
+0x3A66 0x26921
+0x3A67 0x26999
+0x3A68 0x269F1
+0x3A69 0x23F68
+0x3A6A 0x26A86
+0x3A6B-0x3A6C 0x26F5B
+0x3A6D 0x26F77
+0x3A6E 0x26F2C
+0x3A6F 0x2F9AD
+0x3A70 0x26F58
+0x3A71 0x26F64
+0x3A72 0x26F61
+0x3A73 0x26F48
+0x3A74 0x26F97
+0x3A75 0x26F59
+0x3A76 0x26F29
+0x3A77 0x26F62
+0x3A78 0x26F2E
+0x3A79 0x26F68
+0x3A7A 0x26F90
+0x3A7B 0x26F3A
+0x3A7C 0x26F3D
+0x3A7D 0x26F5E
+0x3A7E 0x26F46
+0x3B21 0x26F69
+0x3B22 0x26F65
+0x3B23 0x26F3E
+0x3B24 0x26F49
+0x3B25 0x26F56
+0x3B26 0x26FE1
+0x3B27-0x3B28 0x26F78
+0x3B29 0x26F66
+0x3B2A 0x26F4A
+0x3B2B 0x26F35
+0x3B2C 0x26F7A
+0x3B2D 0x26F92
+0x3B2E 0x26F60
+0x3B2F 0x26F36
+0x3B30 0x26F51
+0x3B31 0x26F42
+0x3B32 0x455D
+0x3B33 0x26F3F
+0x3B34 0x26F7B
+0x3B35 0x26F5D
+0x3B36 0x26F94
+0x3B37 0x26F6A
+0x3B38 0x2F9B5
+0x3B39 0x271F2
+0x3B3A 0x273BB
+0x3B3B 0x2741B
+0x3B3C 0x2741A
+0x3B3D 0x27433
+0x3B3E 0x27417
+0x3B3F 0x2740A
+0x3B40 0x27415
+0x3B41 0x27412
+0x3B42 0x27401
+0x3B43 0x2742D
+0x3B44 0x273FD
+0x3B45 0x27423
+0x3B46 0x27405
+0x3B47 0x27411
+0x3B48 0x27400
+0x3B49 0x2741C
+0x3B4A 0x27435
+0x3B4B 0x2742E
+0x3B4C 0x27436
+0x3B4D 0x20ABF
+0x3B4E 0x2742F
+0x3B4F 0x2740C
+0x3B50 0x27409
+0x3B51 0x27431
+0x3B52 0x273FC
+0x3B53 0x2740F
+0x3B54 0x27418
+0x3B55 0x27402
+0x3B56 0x27600
+0x3B57 0x2771F
+0x3B58 0x27737
+0x3B59 0x465A
+0x3B5A 0x27738
+0x3B5B 0x2772B
+0x3B5C 0x2772E
+0x3B5D 0x27721
+0x3B5E 0x27730
+0x3B5F 0x27729
+0x3B60 0x27731
+0x3B61 0x2F9C9
+0x3B62 0x27701
+0x3B63 0x2772C
+0x3B64 0x27722
+0x3B65 0x277FF
+0x3B66 0x27877
+0x3B67 0x27867
+0x3B68 0x2787F
+0x3B69 0x2787D
+0x3B6A 0x2787B
+0x3B6B 0x2787E
+0x3B6C 0x2791E
+0x3B6D 0x2791C
+0x3B6E 0x27921
+0x3B6F-0x3B70 0x27926
+0x3B71 0x27929
+0x3B72 0x2792C
+0x3B73 0x2791D
+0x3B74 0x2792B
+0x3B75 0x27ABF
+0x3B76 0x27AA4
+0x3B77 0x27AAA
+0x3B78 0x27AAE
+0x3B79 0x27A9F
+0x3B7A 0x27AD0
+0x3B7B 0x27AB1
+0x3B7C 0x27AAD
+0x3B7D 0x27A9B
+0x3B7E 0x27AB2
+0x3C21 0x27AA9
+0x3C22-0x3C23 0x27AB3
+0x3C24 0x27ABA
+0x3C25 0x27AA5
+0x3C26 0x27AB7
+0x3C27 0x27AAC
+0x3C28 0x27ACB
+0x3C29 0x27ACF
+0x3C2A 0x27BC6
+0x3C2B 0x27C01
+0x3C2C 0x27BFF
+0x3C2D 0x27BFD
+0x3C2E-0x3C2F 0x27C77
+0x3C30 0x27C76
+0x3C31 0x27CF7
+0x3C32 0x27DCC
+0x3C33 0x4785
+0x3C34 0x27DD4
+0x3C35 0x27DD7
+0x3C36-0x3C37 0x27DD5
+0x3C38 0x27DD3
+0x3C39 0x27F5D
+0x3C3A 0x27F55
+0x3C3B 0x280E0
+0x3C3C 0x28148
+0x3C3D 0x280EE
+0x3C3E 0x280DB
+0x3C3F 0x280E7
+0x3C40 0x280D6
+0x3C41 0x280E5
+0x3C42 0x280E1
+0x3C43 0x280DD
+0x3C44 0x280E2
+0x3C45 0x28270
+0x3C46 0x28266
+0x3C47 0x2826F
+0x3C48 0x2826E
+0x3C49 0x28381
+0x3C4A 0x28369
+0x3C4B 0x2836E
+0x3C4C 0x2836D
+0x3C4D 0x2836C
+0x3C4E-0x3C4F 0x28384
+0x3C50 0x28371
+0x3C51 0x28373
+0x3C52 0x2836A
+0x3C53 0x2836F
+0x3C54 0x2837B
+0x3C55 0x2856A
+0x3C56-0x3C57 0x2857C
+0x3C58 0x28581
+0x3C59 0x285FA
+0x3C5A 0x28605
+0x3C5B 0x285EB
+0x3C5C 0x285FB
+0x3C5D 0x285E9
+0x3C5E 0x285EF
+0x3C5F 0x285FC
+0x3C60 0x285E7
+0x3C61 0x2F9E1
+0x3C62 0x285EE
+0x3C63 0x285FD
+0x3C64 0x28732
+0x3C65 0x287A7
+0x3C66 0x287B5
+0x3C67 0x287B1
+0x3C68 0x287B9
+0x3C69 0x287A8
+0x3C6A 0x287B3
+0x3C6B 0x2F9E6
+0x3C6C 0x2888A
+0x3C6D 0x28891
+0x3C6E 0x2888D
+0x3C6F 0x28899
+0x3C70 0x490B
+0x3C71-0x3C72 0x2889A
+0x3C73 0x28892
+0x3C74 0x2888F
+0x3C75 0x288AB
+0x3C76 0x24CDB
+0x3C77 0x4939
+0x3C78 0x28A75
+0x3C79 0x28A31
+0x3C7A 0x28A38
+0x3C7B 0x4937
+0x3C7C 0x28A35
+0x3C7D 0x28A69
+0x3C7E 0x28A3B
+0x3D21 0x28A3D
+0x3D22 0x28A6C
+0x3D23 0x28A79
+0x3D24 0x28A3C
+0x3D25 0x28A3E
+0x3D26 0x28C97
+0x3D27 0x28CA5
+0x3D28 0x28CA2
+0x3D29 0x28C9D
+0x3D2A 0x28CA1
+0x3D2B 0x28D68
+0x3D2C 0x28D6F
+0x3D2D 0x28D6D
+0x3D2E 0x28D72
+0x3D2F 0x28D75
+0x3D30 0x28D77
+0x3D31 0x28D79
+0x3D32 0x28EB5
+0x3D33 0x28EEA
+0x3D34 0x28EAB
+0x3D35 0x28F43
+0x3D36-0x3D37 0x28F41
+0x3D38 0x29009
+0x3D39 0x29008
+0x3D3A 0x29006
+0x3D3B 0x29001
+0x3D3C 0x29003
+0x3D3D 0x29000
+0x3D3E 0x29004
+0x3D3F 0x2900A
+0x3D40 0x2900E
+0x3D41 0x2900D
+0x3D42 0x29007
+0x3D43 0x2900F
+0x3D44 0x29014
+0x3D45 0x29002
+0x3D46 0x29015
+0x3D47 0x2900C
+0x3D48 0x29010
+0x3D49 0x29005
+0x3D4A 0x290FD
+0x3D4B 0x290FF
+0x3D4C 0x29104
+0x3D4D 0x29100
+0x3D4E 0x29109
+0x3D4F 0x2922B
+0x3D50 0x2F9F7
+0x3D51 0x29231
+0x3D52 0x292DB
+0x3D53 0x292C5
+0x3D54 0x292D3
+0x3D55 0x292CE
+0x3D56 0x4A6B
+0x3D57 0x292C9
+0x3D58 0x292BF
+0x3D59 0x292CB
+0x3D5A 0x292C0
+0x3D5B 0x292D0
+0x3D5C 0x292D4
+0x3D5D 0x293C1
+0x3D5E 0x293B9
+0x3D5F 0x293BB
+0x3D60 0x293C3
+0x3D61 0x293C9
+0x3D62 0x29407
+0x3D63 0x2942D
+0x3D64 0x294F8
+0x3D65 0x294E1
+0x3D66 0x294FA
+0x3D67 0x294EF
+0x3D68 0x294FD
+0x3D69 0x4ACD
+0x3D6A 0x294EB
+0x3D6B 0x294F1
+0x3D6C 0x294ED
+0x3D6D 0x294FE
+0x3D6E 0x295F8
+0x3D6F 0x29603
+0x3D70 0x295EE
+0x3D71 0x295E8
+0x3D72 0x29601
+0x3D73 0x296EC
+0x3D74 0x29722
+0x3D75 0x29714
+0x3D76 0x29734
+0x3D77 0x2972F
+0x3D78 0x29739
+0x3D79 0x29741
+0x3D7A 0x2973C
+0x3D7B 0x29749
+0x3D7C 0x29758
+0x3D7D 0x2973A
+0x3D7E 0x29742
+0x3E21 0x2973F
+0x3E22-0x3E23 0x29822
+0x3E24 0x2984A
+0x3E25 0x298DC
+0x3E26 0x298D9
+0x3E27 0x298DB
+0x3E28 0x298E2
+0x3E29 0x2FA07
+0x3E2A-0x3E2B 0x298DF
+0x3E2C 0x298D7
+0x3E2D 0x29A4F
+0x3E2E 0x29A46
+0x3E2F 0x29A53
+0x3E30 0x29A55
+0x3E31 0x29A4E
+0x3E32 0x29A4A
+0x3E33 0x29A4C
+0x3E34 0x29A63
+0x3E35 0x29B51
+0x3E36 0x29B53
+0x3E37 0x29B58
+0x3E38 0x29B4D
+0x3E39 0x29B5A
+0x3E3A 0x29B49
+0x3E3B 0x29B5D
+0x3E3C 0x29C12
+0x3E3D 0x29C3C
+0x3E3E 0x29CD1
+0x3E3F 0x29CDF
+0x3E40 0x29CD6
+0x3E41 0x29CD8
+0x3E42 0x29CE0
+0x3E43 0x29CD9
+0x3E44 0x29DB1
+0x3E45 0x29DAC
+0x3E46 0x29DAA
+0x3E47 0x29DEE
+0x3E48 0x29DBD
+0x3E49 0x4C4D
+0x3E4A 0x29DC3
+0x3E4B 0x29DA8
+0x3E4C 0x29DAE
+0x3E4D 0x29DAB
+0x3E4E 0x2A01D
+0x3E4F 0x2A027
+0x3E50 0x2A038
+0x3E51 0x2A012
+0x3E52 0x2A048
+0x3E53 0x2A02B
+0x3E54 0x2A016
+0x3E55 0x2A019
+0x3E56 0x2A03D
+0x3E57 0x2A023
+0x3E58 0x2A02A
+0x3E59 0x2A264
+0x3E5A 0x2A2AD
+0x3E5B 0x2A2AC
+0x3E5C 0x2FA14
+0x3E5D 0x2A2B1
+0x3E5E 0x2A2AF
+0x3E5F 0x2A32C
+0x3E60-0x3E61 0x2A324
+0x3E62 0x2A328
+0x3E63 0x2A3F9
+0x3E64 0x2A3F7
+0x3E65-0x3E66 0x2A3FD
+0x3E67 0x2A439
+0x3E68 0x2A433
+0x3E69-0x3E6A 0x2A4D7
+0x3E6B 0x2A4E4
+0x3E6C 0x214A1
+0x3E6D 0x2A50E
+0x3E6E 0x2A53B
+0x3E6F 0x2A544
+0x3E70 0x2A542
+0x3E71 0x2A594
+0x3E72 0x2A593
+0x3E73 0x2A5D5
+0x3E74 0x2A6A7
+0x3E75 0x20431
+0x3E76 0x20423
+0x3E77 0x20428
+0x3E78 0x20427
+0x3E79 0x204C6
+0x3E7A 0x205A3
+0x3E7B 0x20621
+0x3E7C 0x2081B
+0x3E7D 0x3510
+0x3E7E 0x208C1
+0x3F21 0x208C3
+0x3F22 0x2092A
+0x3F23 0x20969
+0x3F24 0x20A27
+0x3F25 0x210B6
+0x3F26 0x210A7
+0x3F27 0x210A4
+0x3F28 0x210A6
+0x3F29 0x21090
+0x3F2A 0x2109E
+0x3F2B 0x21094
+0x3F2C 0x210A8
+0x3F2D 0x210A5
+0x3F2E 0x210A2
+0x3F2F 0x21091
+0x3F30 0x367B
+0x3F31-0x3F32 0x214BC
+0x3F33 0x214B4
+0x3F34 0x214B0
+0x3F35 0x214E4
+0x3F36 0x21545
+0x3F37 0x2154B
+0x3F38-0x3F39 0x2157E
+0x3F3A 0x2157D
+0x3F3B 0x215C3
+0x3F3C 0x218FC
+0x3F3D 0x218F7
+0x3F3E 0x218F0
+0x3F3F 0x218ED
+0x3F40 0x218F1
+0x3F41 0x218F8
+0x3F42 0x21AE9
+0x3F43 0x21CEB
+0x3F44 0x381D
+0x3F45 0x21F90
+0x3F46 0x21F8D
+0x3F47 0x21F86
+0x3F48 0x21F91
+0x3F49 0x21F8A
+0x3F4A 0x22008
+0x3F4B 0x22050
+0x3F4C 0x222EA
+0x3F4D 0x222E6
+0x3F4E 0x222E2
+0x3F4F 0x222E7
+0x3F50 0x222ED
+0x3F51 0x222E1
+0x3F52 0x22434
+0x3F53 0x22476
+0x3F54 0x22475
+0x3F55 0x22473
+0x3F56 0x224B5
+0x3F57 0x22590
+0x3F58 0x22592
+0x3F59 0x228E1
+0x3F5A 0x228DF
+0x3F5B 0x228D5
+0x3F5C 0x228F2
+0x3F5D 0x228FE
+0x3F5E 0x22913
+0x3F5F 0x2292E
+0x3F60 0x22A19
+0x3F61 0x22E08
+0x3F62 0x64F5
+0x3F63 0x22E05
+0x3F64 0x22E09
+0x3F65 0x22E06
+0x3F66 0x22E03
+0x3F67 0x22DFD
+0x3F68 0x22DFC
+0x3F69 0x22E02
+0x3F6A 0x22E42
+0x3F6B 0x2301A
+0x3F6C 0x23011
+0x3F6D-0x3F6E 0x23015
+0x3F6F 0x230CC
+0x3F70-0x3F71 0x230CF
+0x3F72 0x23122
+0x3F73 0x2311E
+0x3F74 0x23121
+0x3F75 0x232E5
+0x3F76 0x3B27
+0x3F77 0x23354
+0x3F78 0x232EF
+0x3F79 0x23353
+0x3F7A 0x23351
+0x3F7B 0x233AD
+0x3F7C-0x3F7D 0x23767
+0x3F7E 0x237A4
+0x4021 0x23777
+0x4022 0x23789
+0x4023 0x23744
+0x4024 0x2378B
+0x4025 0x23779
+0x4026 0x2375B
+0x4027 0x23743
+0x4028 0x23757
+0x4029 0x2374A
+0x402A 0x2377C
+0x402B 0x23746
+0x402C 0x2377B
+0x402D 0x23756
+0x402E 0x239A8
+0x402F 0x23A76
+0x4030 0x23A72
+0x4031 0x23AD6
+0x4032 0x23AD8
+0x4033 0x23AD1
+0x4034 0x23C22
+0x4035 0x23C20
+0x4036 0x23C23
+0x4037 0x23C1E
+0x4038 0x23C6E
+0x4039 0x240A3
+0x403A 0x24077
+0x403B 0x240A6
+0x403C 0x2406D
+0x403D 0x240A2
+0x403E 0x2407C
+0x403F 0x24084
+0x4040 0x24068
+0x4041 0x24074
+0x4042 0x24086
+0x4043 0x240A5
+0x4044 0x2407B
+0x4045 0x2407A
+0x4046 0x24069
+0x4047 0x24072
+0x4048 0x24076
+0x4049 0x2444A
+0x404A 0x24437
+0x404B 0x2442A
+0x404C 0x2442D
+0x404D 0x24446
+0x404E 0x24428
+0x404F 0x24426
+0x4050 0x24442
+0x4051 0x2442C
+0x4052 0x24438
+0x4053 0x2442B
+0x4054 0x24433
+0x4055 0x24445
+0x4056 0x24539
+0x4057-0x4058 0x246F9
+0x4059 0x248B8
+0x405A 0x248B7
+0x405B 0x248BB
+0x405C 0x248B9
+0x405D 0x248B4
+0x405E 0x24A6F
+0x405F 0x24A87
+0x4060 0x24A8F
+0x4061-0x4062 0x24AA2
+0x4063 0x2F931
+0x4064 0x24B9B
+0x4065 0x24B9D
+0x4066 0x24BCE
+0x4067 0x3FCF
+0x4068 0x24EBD
+0x4069 0x24EBF
+0x406A 0x24E92
+0x406B 0x3FCD
+0x406C 0x24EEF
+0x406D 0x24EC9
+0x406E 0x24FA4
+0x406F 0x24FA8
+0x4070 0x24FAA
+0x4071 0x25028
+0x4072-0x4074 0x25024
+0x4075 0x250A9
+0x4076 0x250BA
+0x4077 0x250BE
+0x4078 0x250BC
+0x4079 0x250C0
+0x407A 0x252F0
+0x407B-0x407C 0x252DF
+0x407D 0x252ED
+0x407E 0x252DB
+0x4121 0x252FB
+0x4122 0x252B9
+0x4123 0x252DA
+0x4124-0x4125 0x252EB
+0x4126 0x2559A
+0x4127 0x2559F
+0x4128 0x2559B
+0x4129 0x25597
+0x412A 0x255A1
+0x412B 0x2570F
+0x412C 0x25705
+0x412D 0x25748
+0x412E 0x4182
+0x412F 0x258BC
+0x4130 0x258BA
+0x4131 0x25ABF
+0x4132 0x25D01
+0x4133 0x25CE8
+0x4134 0x25CEF
+0x4135 0x25CE4
+0x4136 0x25CE6
+0x4137 0x25D02
+0x4138 0x25CEB
+0x4139 0x25CE0
+0x413A 0x25CED
+0x413B 0x25CD9
+0x413C 0x2F964
+0x413D 0x25D14
+0x413E 0x25CEE
+0x413F 0x4252
+0x4140 0x25D13
+0x4141 0x25CF9
+0x4142 0x25CF8
+0x4143 0x25F25
+0x4144 0x2F969
+0x4145 0x25F19
+0x4146 0x25F20
+0x4147 0x25F43
+0x4148 0x25F3F
+0x4149 0x26145
+0x414A 0x2614C
+0x414B 0x26149
+0x414C 0x2614F
+0x414D 0x26141
+0x414E 0x2613E
+0x414F 0x2614D
+0x4150 0x26152
+0x4151 0x2614A
+0x4152 0x2614E
+0x4153 0x26173
+0x4154 0x26142
+0x4155 0x26151
+0x4156 0x26155
+0x4157 0x26150
+0x4158 0x2616C
+0x4159 0x7E64
+0x415A 0x2616A
+0x415B 0x26153
+0x415C 0x26168
+0x415D-0x415E 0x26255
+0x415F-0x4160 0x2631C
+0x4161 0x7F80
+0x4162 0x2631E
+0x4163 0x26323
+0x4164 0x2631F
+0x4165 0x263E1
+0x4166 0x263CD
+0x4167-0x4168 0x263CB
+0x4169-0x416A 0x263C8
+0x416B 0x2649B
+0x416C 0x26494
+0x416D 0x26492
+0x416E 0x26496
+0x416F 0x26493
+0x4170 0x26495
+0x4171 0x2648F
+0x4172 0x2651D
+0x4173 0x26522
+0x4174 0x26521
+0x4175 0x265E9
+0x4176 0x265EF
+0x4177 0x265E0
+0x4178 0x265E6
+0x4179 0x265E4
+0x417A 0x26829
+0x417B 0x2682C
+0x417C 0x26876
+0x417D 0x26883
+0x417E 0x26878
+0x4221 0x2683C
+0x4222 0x24443
+0x4223 0x2687A
+0x4224 0x4451
+0x4225 0x268F2
+0x4226 0x2699E
+0x4227 0x2699B
+0x4228 0x2699A
+0x4229 0x269F6
+0x422A 0x269F5
+0x422B 0x26AA5
+0x422C 0x26A93
+0x422D 0x26AA4
+0x422E 0x26E82
+0x422F 0x26EC7
+0x4230 0x26FB7
+0x4231 0x2701D
+0x4232 0x26FE2
+0x4233 0x26FD7
+0x4234-0x4235 0x26FE3
+0x4236 0x26FBC
+0x4237 0x26FD3
+0x4238 0x455A
+0x4239 0x26F5A
+0x423A 0x26FD2
+0x423B 0x26F2D
+0x423C 0x2F9AF
+0x423D 0x26FC4
+0x423E 0x26FD0
+0x423F 0x26FE5
+0x4240 0x27005
+0x4241 0x27007
+0x4242 0x26FE6
+0x4243 0x2701B
+0x4244 0x26FE7
+0x4245 0x26FD8
+0x4246 0x26FBE
+0x4247 0x27017
+0x4248 0x26FB4
+0x4249 0x26FD9
+0x424A 0x26FE8
+0x424B 0x26FAD
+0x424C 0x26FAF
+0x424D 0x26FC8
+0x424E-0x424F 0x26FE9
+0x4250 0x271FE
+0x4251 0x271FB
+0x4252 0x27200
+0x4253 0x27472
+0x4254 0x27470
+0x4255 0x27446
+0x4256 0x27459
+0x4257 0x2745E
+0x4258 0x27448
+0x4259 0x2744F
+0x425A 0x27471
+0x425B 0x27460
+0x425C 0x2745F
+0x425D 0x2746E
+0x425E 0x27473
+0x425F 0x2F9C0
+0x4260 0x2F9BF
+0x4261 0x27447
+0x4262 0x2746D
+0x4263 0x2746F
+0x4264 0x27481
+0x4265 0x2746C
+0x4266 0x27478
+0x4267 0x27483
+0x4268 0x27449
+0x4269 0x27468
+0x426A 0x27474
+0x426B 0x27463
+0x426C 0x2746A
+0x426D 0x26885
+0x426E 0x27465
+0x426F 0x27462
+0x4270 0x274C8
+0x4271 0x275D0
+0x4272 0x275D4
+0x4273 0x275D1
+0x4274 0x27603
+0x4275 0x27742
+0x4276 0x27763
+0x4277 0x27756
+0x4278 0x2775B
+0x4279 0x27755
+0x427A 0x27750
+0x427B 0x2772D
+0x427C 0x27744
+0x427D 0x27748
+0x427E 0x27745
+0x4321 0x27782
+0x4322 0x4665
+0x4323 0x27762
+0x4324 0x27885
+0x4325 0x2788D
+0x4326 0x27936
+0x4327 0x2792F
+0x4328 0x27931
+0x4329 0x27937
+0x432A 0x27AA7
+0x432B 0x27AD9
+0x432C 0x27AF0
+0x432D 0x27AF2
+0x432E 0x27AFD
+0x432F 0x27AE8
+0x4330 0x27AEB
+0x4331 0x27AEE
+0x4332 0x27AE0
+0x4333 0x27AE9
+0x4334 0x27AED
+0x4335 0x27AD6
+0x4336 0x27AF8
+0x4337 0x27AD4
+0x4338 0x27ADF
+0x4339 0x27AE7
+0x433A 0x27AD8
+0x433B 0x27AE3
+0x433C 0x27AEF
+0x433D 0x27B0F
+0x433E 0x27BCA
+0x433F 0x21546
+0x4340 0x27C05
+0x4341-0x4342 0x27C0C
+0x4343-0x4345 0x27C7F
+0x4346 0x27D01
+0x4347 0x27D03
+0x4348 0x27DF2
+0x4349-0x434A 0x27DE2
+0x434B 0x27DDE
+0x434C 0x27DE9
+0x434D 0x27DE8
+0x434E 0x27DE0
+0x434F 0x27E01
+0x4350 0x27DF5
+0x4351 0x27DE4
+0x4352 0x8D01
+0x4353 0x27E77
+0x4354 0x27F74
+0x4355 0x27F6F
+0x4356 0x27F62
+0x4357 0x27F61
+0x4358 0x27F6D
+0x4359 0x27F73
+0x435A 0x27F6A
+0x435B 0x27F69
+0x435C 0x28112
+0x435D 0x2812D
+0x435E 0x28114
+0x435F 0x2810F
+0x4360 0x28129
+0x4361 0x28116
+0x4362 0x28103
+0x4363 0x28146
+0x4364 0x2815C
+0x4365 0x28111
+0x4366 0x28106
+0x4367 0x280DC
+0x4368 0x2812B
+0x4369 0x2812A
+0x436A 0x2812C
+0x436B 0x28127
+0x436C 0x2827A
+0x436D 0x2839C
+0x436E 0x28399
+0x436F 0x28395
+0x4370 0x2838B
+0x4371 0x28398
+0x4372 0x28396
+0x4373 0x28432
+0x4374 0x285A4
+0x4375 0x285AA
+0x4376 0x2861B
+0x4377 0x48AF
+0x4378 0x2860D
+0x4379 0x2861C
+0x437A 0x2860A
+0x437B 0x28620
+0x437C 0x28608
+0x437D 0x2861A
+0x437E 0x28613
+0x4421 0x28611
+0x4422 0x2875D
+0x4423 0x2875F
+0x4424 0x2875E
+0x4425 0x28760
+0x4426-0x4427 0x287BB
+0x4428 0x287C1
+0x4429 0x287C0
+0x442A 0x287C8
+0x442B 0x287CE
+0x442C 0x288A7
+0x442D 0x288B2
+0x442E 0x288B6
+0x442F 0x288A5
+0x4430 0x288BA
+0x4431 0x288B5
+0x4432 0x288AD
+0x4433 0x288A4
+0x4434 0x288D3
+0x4435-0x4436 0x288B0
+0x4437 0x2891D
+0x4438 0x28A8D
+0x4439 0x4941
+0x443A 0x28A91
+0x443B-0x443C 0x28AB6
+0x443D 0x28ABD
+0x443E 0x28ABC
+0x443F 0x28A96
+0x4440 0x28A94
+0x4441 0x28AA0
+0x4442 0x28CA8
+0x4443 0x28CA6
+0x4444 0x28D84
+0x4445 0x28D96
+0x4446 0x28D88
+0x4447 0x28D9A
+0x4448 0x28ED1
+0x4449 0x28ECF
+0x444A-0x444B 0x28F50
+0x444C 0x28F4E
+0x444D-0x444E 0x28F80
+0x444F 0x2901B
+0x4450 0x29017
+0x4451 0x29020
+0x4452-0x4453 0x29019
+0x4454 0x29021
+0x4455 0x2901E
+0x4456 0x29018
+0x4457 0x2901D
+0x4458 0x4A29
+0x4459 0x2912D
+0x445A 0x29124
+0x445B 0x29127
+0x445C 0x2912E
+0x445D 0x29125
+0x445E 0x2911C
+0x445F 0x29119
+0x4460 0x4A2A
+0x4461 0x29123
+0x4462 0x2911F
+0x4463 0x2911A
+0x4464 0x2912B
+0x4465 0x2911E
+0x4466 0x291E0
+0x4467 0x29233
+0x4468 0x292E6
+0x4469 0x292FC
+0x446A 0x292E5
+0x446B 0x292F8
+0x446C 0x292F6
+0x446D 0x292EA
+0x446E 0x292F2
+0x446F 0x292ED
+0x4470 0x292EB
+0x4471-0x4472 0x292F0
+0x4473 0x293C6
+0x4474 0x293C8
+0x4475 0x293CE
+0x4476 0x293C5
+0x4477 0x4A96
+0x4478 0x293CB
+0x4479-0x447A 0x29513
+0x447B 0x29507
+0x447C 0x2950C
+0x447D 0x2961A
+0x447E 0x4B12
+0x4521 0x29617
+0x4522 0x29606
+0x4523 0x29616
+0x4524 0x29607
+0x4525 0x29610
+0x4526 0x29609
+0x4527 0x29619
+0x4528 0x29615
+0x4529 0x2976E
+0x452A 0x2973B
+0x452B 0x2973E
+0x452C 0x2976C
+0x452D 0x29765
+0x452E 0x29764
+0x452F 0x29759
+0x4530 0x2977C
+0x4531 0x29770
+0x4532 0x29779
+0x4533 0x2982C
+0x4534 0x29852
+0x4535 0x29851
+0x4536 0x2984C
+0x4537 0x29900
+0x4538 0x29910
+0x4539 0x29913
+0x453A 0x298FF
+0x453B 0x298FE
+0x453C 0x298ED
+0x453D 0x29A5A
+0x453E 0x29A58
+0x453F 0x29A5C
+0x4540 0x29ADA
+0x4541 0x29B78
+0x4542 0x29B5E
+0x4543 0x29B67
+0x4544 0x29B64
+0x4545 0x29C13
+0x4546 0x29C23
+0x4547 0x29C41
+0x4548-0x4549 0x29C3F
+0x454A 0x29CED
+0x454B 0x29CE3
+0x454C 0x29CEA
+0x454D 0x29CF0
+0x454E 0x29CE6
+0x454F 0x29CE9
+0x4550 0x29CF1
+0x4551 0x29CEE
+0x4552 0x29DD4
+0x4553 0x29DD1
+0x4554 0x29DDC
+0x4555 0x29DEC
+0x4556 0x2A069
+0x4557 0x2A06D
+0x4558 0x2A057
+0x4559 0x2A066
+0x455A 0x2A0F9
+0x455B 0x2A04A
+0x455C 0x2A060
+0x455D 0x2A056
+0x455E 0x2A059
+0x455F 0x2A04C
+0x4560 0x2A06A
+0x4561-0x4562 0x2A062
+0x4563 0x2A070
+0x4564 0x2A05F
+0x4565 0x2FA0D
+0x4566 0x2A064
+0x4567 0x2A05D
+0x4568 0x2A068
+0x4569 0x2A09F
+0x456A 0x2A2BA
+0x456B 0x2A2B8
+0x456C 0x2A2BC
+0x456D 0x2A2B9
+0x456E 0x2A2B4
+0x456F 0x2A33B
+0x4570 0x2A32D
+0x4571 0x2A338
+0x4572 0x2A32F
+0x4573 0x2A332
+0x4574 0x2A441
+0x4575 0x2A4CB
+0x4576 0x2A4DE
+0x4577 0x2A4DD
+0x4578 0x2A4DA
+0x4579 0x2A4DC
+0x457A 0x2A510
+0x457B 0x2A54F
+0x457C 0x2A549
+0x457D 0x2A598
+0x457E 0x2A596
+0x4621 0x2A597
+0x4622 0x2A5C7
+0x4623 0x2019C
+0x4624 0x2A5DA
+0x4625 0x2A5D8
+0x4626 0x2A6A8
+0x4627 0x2010A
+0x4628 0x2019D
+0x4629 0x204CB
+0x462A-0x462B 0x20538
+0x462C 0x205A6
+0x462D 0x20823
+0x462E 0x20822
+0x462F 0x20821
+0x4630 0x209CE
+0x4631 0x20B92
+0x4632 0x20B91
+0x4633 0x210EC
+0x4634 0x210E0
+0x4635 0x210ED
+0x4636 0x21108
+0x4637 0x210E5
+0x4638 0x210EE
+0x4639 0x210E4
+0x463A 0x210EB
+0x463B 0x210E3
+0x463C 0x210EA
+0x463D 0x2110A
+0x463E 0x2F859
+0x463F 0x214D1
+0x4640 0x214E3
+0x4641 0x214D4
+0x4642 0x214D0
+0x4643 0x214D9
+0x4644 0x367E
+0x4645 0x58E1
+0x4646 0x214DA
+0x4647 0x214D3
+0x4648-0x4649 0x2154C
+0x464A 0x2157C
+0x464B 0x21580
+0x464C 0x215CC
+0x464D 0x218FF
+0x464E 0x21908
+0x464F 0x2A508
+0x4650 0x21901
+0x4651 0x2F86B
+0x4652 0x21900
+0x4653 0x21AED
+0x4654 0x21AF3
+0x4655 0x21AEE
+0x4656 0x21AF1
+0x4657 0x21AF0
+0x4658 0x21ADE
+0x4659 0x21B51
+0x465A 0x21F82
+0x465B 0x21FA9
+0x465C 0x21F98
+0x465D 0x21F9D
+0x465E 0x21F9A
+0x465F-0x4660 0x21F9E
+0x4661-0x4662 0x21FA6
+0x4663 0x22009
+0x4664 0x2202F
+0x4665 0x22171
+0x4666 0x2216D
+0x4667 0x22172
+0x4668-0x4669 0x222EF
+0x466A 0x2243B
+0x466B 0x22439
+0x466C 0x2243C
+0x466D 0x22438
+0x466E 0x24BFD
+0x466F 0x2243A
+0x4670-0x4671 0x22478
+0x4672 0x22477
+0x4673 0x22598
+0x4674 0x2259C
+0x4675-0x4676 0x22599
+0x4677 0x22911
+0x4678 0x2290A
+0x4679 0x228FD
+0x467A 0x2290F
+0x467B 0x22919
+0x467C 0x22903
+0x467D 0x22915
+0x467E 0x2290C
+0x4721 0x22909
+0x4722 0x22912
+0x4723 0x22934
+0x4724 0x2292A
+0x4725 0x22908
+0x4726 0x2292D
+0x4727 0x22928
+0x4728 0x2F8B1
+0x4729 0x2292C
+0x472A 0x22926
+0x472B 0x22933
+0x472C 0x39A7
+0x472D 0x22A1A
+0x472E 0x22A1E
+0x472F 0x22E07
+0x4730 0x22E2C
+0x4731 0x22E32
+0x4732 0x22E28
+0x4733 0x22E31
+0x4734 0x22E29
+0x4735 0x22E30
+0x4736 0x22E2A
+0x4737 0x22E44
+0x4738 0x22E2E
+0x4739 0x230D1
+0x473A 0x23124
+0x473B 0x232F7
+0x473C 0x232F4
+0x473D 0x232F3
+0x473E 0x232F8
+0x473F 0x237B5
+0x4740 0x23796
+0x4741 0x23798
+0x4742 0x23795
+0x4743 0x23791
+0x4744 0x237B2
+0x4745 0x2379E
+0x4746 0x23759
+0x4747 0x237A3
+0x4748-0x4749 0x2379A
+0x474A 0x4320
+0x474B 0x26183
+0x474C 0x23ADA
+0x474D 0x23ADF
+0x474E 0x23B16
+0x474F 0x23C1F
+0x4750-0x4751 0x23C2D
+0x4752 0x23C2B
+0x4753 0x240B8
+0x4754 0x240BB
+0x4755 0x240BF
+0x4756 0x240BA
+0x4757 0x240D5
+0x4758 0x240E3
+0x4759 0x240C1
+0x475A 0x240BE
+0x475B 0x240BD
+0x475C 0x240B4
+0x475D 0x240C2
+0x475E 0x240A1
+0x475F 0x24087
+0x4760 0x240D7
+0x4761 0x240CA
+0x4762 0x240B5
+0x4763 0x240DA
+0x4764 0x240D9
+0x4765 0x240B3
+0x4766 0x240D8
+0x4767 0x24467
+0x4768 0x24471
+0x4769 0x24462
+0x476A 0x2445C
+0x476B 0x24468
+0x476C 0x24452
+0x476D 0x24456
+0x476E 0x21109
+0x476F 0x20442
+0x4770 0x245A0
+0x4771 0x24700
+0x4772-0x4773 0x246FE
+0x4774 0x248CB
+0x4775 0x2F928
+0x4776 0x248CA
+0x4777 0x248A9
+0x4778 0x248C8
+0x4779 0x24AB4
+0x477A 0x24AAC
+0x477B 0x24AAA
+0x477C 0x24AA9
+0x477D 0x24C0E
+0x477E 0x24CE9
+0x4821 0x24CED
+0x4822 0x24CF2
+0x4823 0x24CEB
+0x4824 0x24CEE
+0x4825 0x24EE8
+0x4826 0x24EDB
+0x4827 0x24ED7
+0x4828 0x24EE3
+0x4829 0x24EE5
+0x482A 0x24EEE
+0x482B 0x24ED5
+0x482C 0x24FB3
+0x482D 0x2502D
+0x482E 0x250C1
+0x482F 0x250C3
+0x4830 0x2530C
+0x4831 0x2530E
+0x4832 0x25307
+0x4833 0x25317
+0x4834 0x25309
+0x4835 0x25316
+0x4836 0x2539A
+0x4837 0x2539C
+0x4838 0x255B4
+0x4839 0x255B7
+0x483A 0x255B3
+0x483B 0x2154E
+0x483C-0x483D 0x25713
+0x483E 0x258E6
+0x483F 0x258DC
+0x4840 0x258E8
+0x4841 0x258E5
+0x4842 0x25A2E
+0x4843 0x25A2C
+0x4844 0x25A2B
+0x4845 0x25ACD
+0x4846 0x25D3D
+0x4847 0x25D32
+0x4848 0x25D2D
+0x4849 0x25D45
+0x484A 0x25D3E
+0x484B 0x25D50
+0x484C 0x25D25
+0x484D 0x25D53
+0x484E 0x25D23
+0x484F-0x4850 0x25F37
+0x4851 0x25F47
+0x4852-0x4853 0x25F3D
+0x4854-0x4855 0x25F49
+0x4856 0x25F1D
+0x4857 0x7CE9
+0x4858 0x261A5
+0x4859-0x485A 0x2618C
+0x485B 0x26189
+0x485C 0x26196
+0x485D 0x26185
+0x485E 0x2618F
+0x485F 0x26177
+0x4860 0x2618E
+0x4861 0x26182
+0x4862 0x2618A
+0x4863 0x26188
+0x4864 0x2617B
+0x4865 0x26197
+0x4866 0x2617D
+0x4867 0x26179
+0x4868 0x26259
+0x4869 0x26324
+0x486A-0x486B 0x2632D
+0x486C 0x2632B
+0x486D 0x2F976
+0x486E 0x263DA
+0x486F 0x263D8
+0x4870 0x263D6
+0x4871 0x26487
+0x4872 0x264A0
+0x4873 0x26528
+0x4874 0x26525
+0x4875 0x2651F
+0x4876 0x265F3
+0x4877 0x265F7
+0x4878 0x265F6
+0x4879 0x2682B
+0x487A 0x2685B
+0x487B 0x26848
+0x487C 0x81CB
+0x487D 0x2685C
+0x487E 0x2686D
+0x4921 0x2689D
+0x4922 0x26899
+0x4923 0x2688C
+0x4924 0x26891
+0x4925 0x2689B
+0x4926 0x2689A
+0x4927 0x2689C
+0x4928 0x26895
+0x4929 0x2688D
+0x492A 0x26896
+0x492B 0x268A5
+0x492C 0x2692A
+0x492D 0x269A1
+0x492E 0x269A4
+0x492F 0x269AD
+0x4930 0x26AA9
+0x4931 0x26AAE
+0x4932 0x26AB0
+0x4933 0x2700D
+0x4934 0x26F63
+0x4935 0x26F71
+0x4936 0x27051
+0x4937 0x27054
+0x4938 0x2702A
+0x4939 0x27044
+0x493A 0x27055
+0x493B 0x27099
+0x493C 0x27039
+0x493D 0x2703F
+0x493E 0x2703E
+0x493F 0x2704F
+0x4940 0x2704D
+0x4941 0x27035
+0x4942 0x27040
+0x4943 0x27031
+0x4944 0x26FD5
+0x4945 0x2702B
+0x4946 0x27033
+0x4947 0x27041
+0x4948 0x27056
+0x4949 0x2704C
+0x494A 0x27046
+0x494B 0x2703C
+0x494C 0x27045
+0x494D 0x27043
+0x494E 0x2703D
+0x494F 0x27070
+0x4950 0x27057
+0x4951 0x27038
+0x4952 0x27058
+0x4953 0x4565
+0x4954 0x27037
+0x4955 0x27207
+0x4956 0x27206
+0x4957 0x27209
+0x4958 0x274AB
+0x4959 0x27490
+0x495A 0x27493
+0x495B 0x274BC
+0x495C 0x274A9
+0x495D 0x2749E
+0x495E 0x274BF
+0x495F 0x274AA
+0x4960 0x27491
+0x4961 0x274A4
+0x4962 0x2749A
+0x4963 0x274A7
+0x4964 0x274A1
+0x4965 0x2749C
+0x4966 0x274A2
+0x4967 0x2749B
+0x4968 0x2749F
+0x4969 0x27494
+0x496A 0x2748F
+0x496B 0x272F0
+0x496C 0x27492
+0x496D 0x27495
+0x496E-0x496F 0x274A5
+0x4970 0x27604
+0x4971 0x2779C
+0x4972-0x4973 0x27779
+0x4974 0x2777E
+0x4975 0x2777B
+0x4976 0x27771
+0x4977 0x27781
+0x4978 0x2777F
+0x4979-0x497A 0x2777C
+0x497B-0x497C 0x27775
+0x497D-0x497E 0x2788E
+0x4A21-0x4A24 0x2793E
+0x4A25 0x4704
+0x4A26 0x27B0D
+0x4A27 0x27B17
+0x4A28 0x27B10
+0x4A29 0x27B0E
+0x4A2A 0x27AEA
+0x4A2B 0x27B1D
+0x4A2C 0x27B03
+0x4A2D 0x27B22
+0x4A2E 0x27B04
+0x4A2F 0x27B00
+0x4A30-0x4A31 0x27B20
+0x4A32 0x27B23
+0x4A33 0x27B13
+0x4A34 0x27B09
+0x4A35 0x27B11
+0x4A36 0x27BCB
+0x4A37 0x27BCE
+0x4A38 0x27BD0
+0x4A39 0x27BCC
+0x4A3A 0x27BD4
+0x4A3B 0x214DB
+0x4A3C 0x27C09
+0x4A3D 0x27C0B
+0x4A3E 0x27C85
+0x4A3F 0x27D06
+0x4A40 0x27D0D
+0x4A41 0x4764
+0x4A42 0x27D14
+0x4A43 0x27D0F
+0x4A44 0x27E09
+0x4A45 0x27E14
+0x4A46 0x27E0B
+0x4A47 0x27DFC
+0x4A48 0x27E04
+0x4A49 0x27E0A
+0x4A4A 0x27E00
+0x4A4B 0x27DFD
+0x4A4C 0x27E07
+0x4A4D 0x27E06
+0x4A4E 0x27E11
+0x4A4F 0x27E79
+0x4A50 0x27E78
+0x4A51 0x27F88
+0x4A52 0x27F80
+0x4A53 0x27F8B
+0x4A54 0x28159
+0x4A55 0x28161
+0x4A56 0x28175
+0x4A57 0x4823
+0x4A58 0x28155
+0x4A59 0x2815B
+0x4A5A 0x2815F
+0x4A5B 0x28152
+0x4A5C 0x28162
+0x4A5D 0x28172
+0x4A5E 0x2815D
+0x4A5F 0x28168
+0x4A60 0x28171
+0x4A61-0x4A63 0x28165
+0x4A64 0x28176
+0x4A65 0x2814C
+0x4A66 0x28160
+0x4A67 0x28174
+0x4A68 0x28150
+0x4A69 0x2828A
+0x4A6A 0x28281
+0x4A6B 0x28286
+0x4A6C-0x4A6D 0x2827F
+0x4A6E 0x283A5
+0x4A6F-0x4A70 0x283A7
+0x4A71 0x283A6
+0x4A72 0x283AF
+0x4A73 0x26195
+0x4A74 0x283B1
+0x4A75 0x28435
+0x4A76 0x28439
+0x4A77 0x285C3
+0x4A78 0x28630
+0x4A79-0x4A7A 0x2862A
+0x4A7B-0x4A7C 0x2862D
+0x4A7D 0x2862C
+0x4A7E 0x28623
+0x4B21-0x4B22 0x28621
+0x4B23 0x2876C
+0x4B24 0x28781
+0x4B25 0x2878F
+0x4B26 0x28780
+0x4B27 0x287D0
+0x4B28 0x287CD
+0x4B29 0x287D5
+0x4B2A 0x287D4
+0x4B2B 0x288D1
+0x4B2C 0x288BE
+0x4B2D 0x288CB
+0x4B2E 0x288CE
+0x4B2F 0x288BD
+0x4B30 0x288D0
+0x4B31 0x28B04
+0x4B32 0x28AD5
+0x4B33 0x28AD0
+0x4B34 0x28AD3
+0x4B35 0x28AFB
+0x4B36 0x28AD8
+0x4B37 0x28AD1
+0x4B38 0x28AFD
+0x4B39 0x28AD9
+0x4B3A 0x28AD6
+0x4B3B 0x28AE6
+0x4B3C 0x28AF9
+0x4B3D 0x28DA1
+0x4B3E-0x4B3F 0x28D9D
+0x4B40 0x95D9
+0x4B41 0x28EFF
+0x4B42 0x28F5F
+0x4B43 0x28F57
+0x4B44 0x28F60
+0x4B45 0x28F59
+0x4B46 0x2902C
+0x4B47 0x29025
+0x4B48 0x29027
+0x4B49 0x29030
+0x4B4A 0x29024
+0x4B4B 0x29026
+0x4B4C-0x4B4D 0x2902D
+0x4B4E 0x29029
+0x4B4F 0x29031
+0x4B50 0x29145
+0x4B51 0x29147
+0x4B52 0x29152
+0x4B53 0x2914A
+0x4B54 0x29150
+0x4B55 0x29146
+0x4B56 0x2914F
+0x4B57 0x2914E
+0x4B58 0x29153
+0x4B59 0x29321
+0x4B5A 0x29309
+0x4B5B-0x4B5C 0x2931A
+0x4B5D 0x25315
+0x4B5E 0x29310
+0x4B5F 0x2F9F9
+0x4B60 0x29314
+0x4B61 0x2930E
+0x4B62 0x29312
+0x4B63 0x2930B
+0x4B64 0x293CF
+0x4B65 0x293D2
+0x4B66 0x293D0
+0x4B67 0x293D4
+0x4B68 0x293D3
+0x4B69 0x293D1
+0x4B6A 0x20B18
+0x4B6B 0x2F9FB
+0x4B6C 0x29409
+0x4B6D 0x2951C
+0x4B6E 0x29527
+0x4B6F 0x29525
+0x4B70 0x2951B
+0x4B71 0x29529
+0x4B72 0x2951F
+0x4B73 0x29530
+0x4B74 0x29524
+0x4B75 0x29528
+0x4B76 0x29519
+0x4B77 0x2952F
+0x4B78 0x29624
+0x4B79 0x29621
+0x4B7A-0x4B7C 0x29625
+0x4B7D 0x29676
+0x4B7E 0x29766
+0x4C21 0x29775
+0x4C22 0x29769
+0x4C23 0x2977E
+0x4C24 0x2978F
+0x4C25 0x29774
+0x4C26 0x27210
+0x4C27 0x297AD
+0x4C28 0x2982B
+0x4C29 0x2982A
+0x4C2A 0x29858
+0x4C2B 0x29922
+0x4C2C 0x2991D
+0x4C2D-0x4C2F 0x2992B
+0x4C30 0x29933
+0x4C31 0x2991B
+0x4C32 0x29927
+0x4C33 0x2992A
+0x4C34 0x29928
+0x4C35 0x2993B
+0x4C36 0x29A7E
+0x4C37 0x29A71
+0x4C38 0x29A79
+0x4C39 0x29A78
+0x4C3A 0x29A70
+0x4C3B 0x29A6D
+0x4C3C 0x29A7D
+0x4C3D-0x4C3E 0x29A75
+0x4C3F 0x29ADE
+0x4C40 0x29B66
+0x4C41 0x29B83
+0x4C42 0x29B87
+0x4C43 0x29B7B
+0x4C44 0x29B89
+0x4C45 0x29B86
+0x4C46 0x29B82
+0x4C47 0x29B7C
+0x4C48 0x29B81
+0x4C49 0x29C43
+0x4C4A 0x29C45
+0x4C4B 0x29CF7
+0x4C4C-0x4C4D 0x29CF9
+0x4C4E 0x29E05
+0x4C4F 0x29DFE
+0x4C50 0x29E0F
+0x4C51 0x29DFF
+0x4C52 0x29DFA
+0x4C53 0x29E09
+0x4C54 0x29E20
+0x4C55 0x29E0C
+0x4C56 0x29E3C
+0x4C57 0x29E22
+0x4C58 0x29DF8
+0x4C59 0x29E0A
+0x4C5A 0x29E08
+0x4C5B 0x29DF7
+0x4C5C 0x2A08E
+0x4C5D 0x2A077
+0x4C5E 0x2A08B
+0x4C5F 0x2A0B4
+0x4C60 0x2A08A
+0x4C61 0x2A09A
+0x4C62 0x2A079
+0x4C63 0x2A083
+0x4C64 0x2A07F
+0x4C65 0x2A0A1
+0x4C66 0x2A08F
+0x4C67 0x2A0A3
+0x4C68 0x2A081
+0x4C69 0x2A094
+0x4C6A 0x2A07E
+0x4C6B 0x2A082
+0x4C6C 0x2A090
+0x4C6D 0x2A0A5
+0x4C6E 0x2A0AD
+0x4C6F 0x2A09D
+0x4C70 0x2A267
+0x4C71 0x2A269
+0x4C72 0x2A2CB
+0x4C73 0x2A2C8
+0x4C74 0x2A2D1
+0x4C75 0x2A340
+0x4C76 0x2A34B
+0x4C77 0x2A349
+0x4C78 0x2A346
+0x4C79 0x2A33E
+0x4C7A 0x2A343
+0x4C7B 0x2A33F
+0x4C7C 0x2A3A5
+0x4C7D 0x2A3A7
+0x4C7E 0x2A44E
+0x4D21 0x2A44D
+0x4D22 0x2259B
+0x4D23 0x2A4E5
+0x4D24-0x4D25 0x2A4E1
+0x4D26 0x2A516
+0x4D27 0x2A514
+0x4D28 0x2FA1B
+0x4D29 0x2A559
+0x4D2A 0x2A551
+0x4D2B 0x2A55F
+0x4D2C 0x2A54A
+0x4D2D-0x4D2E 0x2A557
+0x4D2F 0x2A5CA
+0x4D30 0x2A5DB
+0x4D31 0x2A5DE
+0x4D32-0x4D33 0x2A5E0
+0x4D34 0x2A5DF
+0x4D35-0x4D36 0x2A5E2
+0x4D37 0x2A692
+0x4D38 0x2A6BF
+0x4D39 0x2A6BE
+0x4D3A 0x2010B
+0x4D3B 0x20452
+0x4D3C 0x2044E
+0x4D3D 0x34B9
+0x4D3E 0x2F813
+0x4D3F 0x205A7
+0x4D40-0x4D41 0x20826
+0x4D42 0x208C6
+0x4D43 0x2090B
+0x4D44 0x2096A
+0x4D45 0x20978
+0x4D46 0x2111A
+0x4D47 0x21116
+0x4D48 0x21119
+0x4D49 0x21117
+0x4D4A 0x2111B
+0x4D4B 0x21118
+0x4D4C 0x21120
+0x4D4D 0x21237
+0x4D4E 0x214EC
+0x4D4F 0x21581
+0x4D50 0x2923D
+0x4D51 0x2190F
+0x4D52 0x219AD
+0x4D53 0x21AFB
+0x4D54 0x21B52
+0x4D55 0x21FAF
+0x4D56 0x21FB7
+0x4D57 0x21FB2
+0x4D58 0x22178
+0x4D59 0x221AC
+0x4D5A 0x22300
+0x4D5B 0x222FE
+0x4D5C 0x22302
+0x4D5D 0x222FD
+0x4D5E 0x22303
+0x4D5F 0x22440
+0x4D60 0x22443
+0x4D61 0x22442
+0x4D62 0x224B7
+0x4D63 0x225A2
+0x4D64 0x22900
+0x4D65 0x22935
+0x4D66 0x22941
+0x4D67 0x22905
+0x4D68 0x20453
+0x4D69 0x22950
+0x4D6A 0x2294E
+0x4D6B 0x22953
+0x4D6C 0x22E53
+0x4D6D 0x22E50
+0x4D6E 0x22E57
+0x4D6F 0x22E5F
+0x4D70 0x22E55
+0x4D71 0x22EEA
+0x4D72 0x23026
+0x4D73 0x29830
+0x4D74 0x2302A
+0x4D75 0x23028
+0x4D76-0x4D77 0x2302C
+0x4D78 0x230D4
+0x4D79 0x23307
+0x4D7A-0x4D7B 0x23358
+0x4D7C 0x237C5
+0x4D7D 0x237CD
+0x4D7E 0x237C7
+0x4E21 0x237E8
+0x4E22 0x3C4B
+0x4E23 0x23932
+0x4E24 0x2A697
+0x4E25 0x23ADE
+0x4E26 0x23C32
+0x4E27 0x20AC8
+0x4E28 0x2F915
+0x4E29 0x240F1
+0x4E2A 0x240F0
+0x4E2B 0x240EC
+0x4E2C 0x24109
+0x4E2D 0x240F9
+0x4E2E 0x240F5
+0x4E2F 0x240FE
+0x4E30 0x24474
+0x4E31 0x24481
+0x4E32 0x2447C
+0x4E33 0x24475
+0x4E34 0x24489
+0x4E35 0x24482
+0x4E36 0x24497
+0x4E37 0x24486
+0x4E38 0x2447D
+0x4E39 0x24493
+0x4E3A 0x2449C
+0x4E3B 0x24476
+0x4E3C 0x24480
+0x4E3D 0x24545
+0x4E3E 0x206A1
+0x4E3F 0x24703
+0x4E40 0x248C9
+0x4E41 0x248CD
+0x4E42 0x248D0
+0x4E43 0x24AAD
+0x4E44 0x24AC5
+0x4E45 0x24BA2
+0x4E46 0x24CEC
+0x4E47 0x24CF6
+0x4E48 0x24CF3
+0x4E49 0x24EF3
+0x4E4A 0x24EFA
+0x4E4B 0x24EF9
+0x4E4C 0x24EF5
+0x4E4D 0x24EF4
+0x4E4E 0x24EF8
+0x4E4F 0x24FB6
+0x4E50 0x24FB4
+0x4E51 0x25032
+0x4E52 0x250CD
+0x4E53 0x250C8
+0x4E54 0x250CE
+0x4E55 0x250CA
+0x4E56 0x2532A
+0x4E57 0x25321
+0x4E58 0x2531D
+0x4E59-0x4E5A 0x255BD
+0x4E5B 0x255C2
+0x4E5C 0x40F1
+0x4E5D 0x255C9
+0x4E5E 0x2571F
+0x4E5F 0x258F1
+0x4E60 0x258ED
+0x4E61 0x258F2
+0x4E62 0x258E0
+0x4E63 0x258F7
+0x4E64 0x25A30
+0x4E65 0x25A37
+0x4E66 0x25A31
+0x4E67 0x25A36
+0x4E68 0x25AC8
+0x4E69 0x25D6D
+0x4E6A 0x25D69
+0x4E6B 0x25D7D
+0x4E6C 0x25D61
+0x4E6D-0x4E6E 0x25D70
+0x4E6F 0x25D73
+0x4E70 0x25D76
+0x4E71 0x25D75
+0x4E72-0x4E73 0x25D78
+0x4E74 0x25D64
+0x4E75 0x25D6E
+0x4E76 0x25F51
+0x4E77 0x25F4F
+0x4E78 0x25F22
+0x4E79 0x261AF
+0x4E7A 0x261AA
+0x4E7B 0x261A3
+0x4E7C 0x2619D
+0x4E7D 0x2619C
+0x4E7E 0x261A1
+0x4F21 0x261B6
+0x4F22 0x261AC
+0x4F23 0x261A2
+0x4F24 0x261A7
+0x4F25 0x261B0
+0x4F26 0x261A9
+0x4F27 0x261C3
+0x4F28-0x4F2B 0x26331
+0x4F2C 0x26337
+0x4F2D 0x2633C
+0x4F2E 0x263D9
+0x4F2F-0x4F32 0x263DD
+0x4F33 0x264A5
+0x4F34 0x264AA
+0x4F35-0x4F36 0x264A2
+0x4F37 0x26604
+0x4F38 0x26603
+0x4F39 0x265FE
+0x4F3A 0x26628
+0x4F3B 0x268AF
+0x4F3C 0x268AD
+0x4F3D 0x268A6
+0x4F3E 0x269AC
+0x4F3F 0x269A5
+0x4F40-0x4F41 0x269B0
+0x4F42 0x26A01
+0x4F43 0x26AB2
+0x4F44 0x26AD2
+0x4F45 0x26AF1
+0x4F46 0x26FD1
+0x4F47 0x27047
+0x4F48 0x270C9
+0x4F49 0x270A7
+0x4F4A 0x270C8
+0x4F4B 0x27095
+0x4F4C 0x2708E
+0x4F4D 0x27091
+0x4F4E 0x2707D
+0x4F4F 0x270EE
+0x4F50 0x2708D
+0x4F51 0x2708C
+0x4F52 0x270B0
+0x4F53 0x27096
+0x4F54 0x27042
+0x4F55 0x2707C
+0x4F56-0x4F57 0x270B1
+0x4F58 0x27084
+0x4F59 0x2709D
+0x4F5A 0x270A1
+0x4F5B 0x27098
+0x4F5C 0x270B3
+0x4F5D 0x27022
+0x4F5E 0x2707B
+0x4F5F 0x2708A
+0x4F60 0x270CE
+0x4F61 0x27080
+0x4F62 0x27097
+0x4F63-0x4F64 0x270B4
+0x4F65 0x2709A
+0x4F66 0x2709F
+0x4F67 0x27093
+0x4F68 0x27212
+0x4F69 0x2720B
+0x4F6A 0x2720E
+0x4F6B 0x274A3
+0x4F6C 0x274CC
+0x4F6D 0x274DC
+0x4F6E 0x274E1
+0x4F6F 0x274DE
+0x4F70 0x274D2
+0x4F71 0x274DB
+0x4F72 0x274D9
+0x4F73 0x274D7
+0x4F74 0x274D4
+0x4F75 0x274C9
+0x4F76 0x274EB
+0x4F77 0x274DA
+0x4F78 0x274D1
+0x4F79 0x27504
+0x4F7A 0x274CA
+0x4F7B 0x274E2
+0x4F7C 0x275D7
+0x4F7D 0x2778C
+0x4F7E 0x27799
+0x5021 0x277A2
+0x5022 0x27796
+0x5023 0x27794
+0x5024 0x2779F
+0x5025 0x4667
+0x5026 0x2778E
+0x5027 0x27803
+0x5028 0x27894
+0x5029 0x27893
+0x502A 0x27944
+0x502B 0x27B2F
+0x502C 0x27B35
+0x502D 0x27B2B
+0x502E 0x27B32
+0x502F 0x27B2D
+0x5030 0x27B36
+0x5031 0x4714
+0x5032 0x27B31
+0x5033 0x27B12
+0x5034 0x27B33
+0x5035 0x27B1F
+0x5036 0x27B34
+0x5037 0x27B40
+0x5038 0x27B3F
+0x5039 0x27B41
+0x503A 0x27BD3
+0x503B 0x27C89
+0x503C 0x27D18
+0x503D 0x27D10
+0x503E 0x27E1A
+0x503F 0x27E25
+0x5040 0x27E1E
+0x5041 0x27F92
+0x5042 0x27F95
+0x5043 0x27F93
+0x5044 0x28184
+0x5045 0x2819A
+0x5046 0x28189
+0x5047 0x2818D
+0x5048 0x28188
+0x5049 0x28191
+0x504A-0x504B 0x2819B
+0x504C 0x29548
+0x504D 0x2828E
+0x504E 0x28292
+0x504F 0x283C5
+0x5050 0x283C1
+0x5051 0x283B8
+0x5052 0x283BE
+0x5053 0x283B5
+0x5054 0x283C7
+0x5055 0x2843C
+0x5056 0x4889
+0x5057 0x285EC
+0x5058 0x2863F
+0x5059 0x28639
+0x505A 0x28637
+0x505B 0x287A1
+0x505C 0x28794
+0x505D 0x287A0
+0x505E 0x287DE
+0x505F 0x287DB
+0x5060 0x287DF
+0x5061 0x287DC
+0x5062 0x288D6
+0x5063-0x5064 0x288DC
+0x5065 0x288E0
+0x5066 0x288E3
+0x5067 0x288E1
+0x5068-0x5069 0x28B18
+0x506A 0x28B53
+0x506B 0x2F9EC
+0x506C 0x28B44
+0x506D-0x506E 0x28B0E
+0x506F 0x28B47
+0x5070 0x28B17
+0x5071 0x28B1D
+0x5072 0x28B11
+0x5073 0x28CB4
+0x5074 0x28CB6
+0x5075 0x28DB7
+0x5076 0x28DBE
+0x5077 0x28DC2
+0x5078 0x28DB4
+0x5079 0x28F31
+0x507A 0x28F15
+0x507B 0x28F83
+0x507C 0x2903B
+0x507D 0x29036
+0x507E 0x29042
+0x5121 0x29050
+0x5122 0x29040
+0x5123 0x29034
+0x5124 0x29038
+0x5125-0x5126 0x2903D
+0x5127 0x29035
+0x5128 0x2903A
+0x5129 0x29046
+0x512A 0x29037
+0x512B 0x29039
+0x512C 0x29045
+0x512D 0x29177
+0x512E 0x2915D
+0x512F 0x2916A
+0x5130 0x29176
+0x5131-0x5132 0x2916B
+0x5133 0x29165
+0x5134 0x29164
+0x5135 0x29171
+0x5136 0x2915F
+0x5137 0x29172
+0x5138-0x5139 0x291FE
+0x513A 0x2923E
+0x513B 0x2932B
+0x513C 0x29336
+0x513D 0x2932D
+0x513E 0x29339
+0x513F 0x2933F
+0x5140 0x2933B
+0x5141 0x29333
+0x5142 0x29342
+0x5143 0x2933A
+0x5144 0x293D5
+0x5145-0x5146 0x293D8
+0x5147 0x2940D
+0x5148 0x2940A
+0x5149-0x514A 0x29439
+0x514B 0x2953D
+0x514C 0x29545
+0x514D 0x2953A
+0x514E 0x29537
+0x514F 0x2953E
+0x5150 0x29542
+0x5151 0x29787
+0x5152 0x2978C
+0x5153 0x29782
+0x5154 0x2976B
+0x5155 0x297A0
+0x5156 0x2979A
+0x5157 0x29790
+0x5158 0x2978E
+0x5159 0x297A1
+0x515A 0x297BD
+0x515B 0x297B2
+0x515C 0x297B5
+0x515D 0x297B7
+0x515E 0x297AA
+0x515F 0x297A2
+0x5160 0x297A5
+0x5161 0x297AE
+0x5162 0x297AB
+0x5163 0x297BC
+0x5164 0x29832
+0x5165 0x2985A
+0x5166 0x29964
+0x5167 0x2995C
+0x5168 0x2994D
+0x5169 0x2993F
+0x516A 0x2993E
+0x516B 0x29952
+0x516C 0x29958
+0x516D 0x29957
+0x516E 0x2995E
+0x516F-0x5170 0x29953
+0x5171 0x29956
+0x5172 0x28F65
+0x5173-0x5175 0x29A84
+0x5176 0x29B97
+0x5177-0x5178 0x29BA1
+0x5179 0x4C0B
+0x517A 0x2FA0A
+0x517B 0x29BA3
+0x517C 0x29BA6
+0x517D 0x4C17
+0x517E 0x29C15
+0x5221 0x29C24
+0x5222 0x29C4A
+0x5223 0x29C49
+0x5224 0x29C48
+0x5225 0x29C4B
+0x5226 0x29D0E
+0x5227 0x29962
+0x5228 0x29D0B
+0x5229 0x29D0A
+0x522A 0x29D08
+0x522B 0x29D06
+0x522C 0x29E43
+0x522D 0x29E47
+0x522E 0x29E3F
+0x522F 0x29E46
+0x5230 0x29E50
+0x5231 0x4C6D
+0x5232 0x29E4B
+0x5233 0x4C70
+0x5234 0x29E52
+0x5235 0x2A0D7
+0x5236 0x2A0BF
+0x5237 0x2A0D8
+0x5238 0x2A0E0
+0x5239 0x2A0E7
+0x523A 0x2A0B8
+0x523B 0x2A0D5
+0x523C 0x2A0EF
+0x523D 0x2A0E6
+0x523E 0x2A0E4
+0x523F 0x2A0D4
+0x5240 0x2A0D6
+0x5241 0x2A0EA
+0x5242 0x4CED
+0x5243 0x2A0BB
+0x5244 0x2A0E9
+0x5245 0x2FA10
+0x5246 0x2A26D
+0x5247 0x2A270
+0x5248 0x2A273
+0x5249 0x2A272
+0x524A 0x2A2D4
+0x524B 0x2A2CE
+0x524C 0x2A2D5
+0x524D 0x2A35A
+0x524E 0x2A358
+0x524F 0x2A352
+0x5250 0x2A350
+0x5251 0x2A355
+0x5252 0x2A34E
+0x5253 0x2A34D
+0x5254-0x5256 0x2A3CB
+0x5257 0x2A3D1
+0x5258 0x2A458
+0x5259 0x2A463
+0x525A 0x2A45E
+0x525B 0x2A454
+0x525C 0x2A45B
+0x525D 0x2A4E9
+0x525E-0x525F 0x2A4E7
+0x5260 0x2A51D
+0x5261 0x2A567
+0x5262 0x2A55A
+0x5263 0x2A55C
+0x5264 0x2A55B
+0x5265 0x2A561
+0x5266 0x2A5A1
+0x5267 0x4D8D
+0x5268 0x2A5A4
+0x5269 0x2A5E9
+0x526A 0x2A5EF
+0x526B 0x2A5E5
+0x526C 0x2A5F5
+0x526D 0x2A5EB
+0x526E 0x2A5ED
+0x526F 0x2A696
+0x5270 0x2A695
+0x5271 0x2A6B3
+0x5272 0x2A6B5
+0x5273 0x2A6B1
+0x5274 0x34A7
+0x5275 0x2044D
+0x5276 0x20624
+0x5277 0x2082B
+0x5278 0x209CF
+0x5279 0x20AC9
+0x527A 0x21136
+0x527B 0x21131
+0x527C 0x21154
+0x527D 0x2113A
+0x527E 0x21138
+0x5321 0x21239
+0x5322 0x21238
+0x5323 0x214F4
+0x5324 0x214F3
+0x5325 0x214F6
+0x5326 0x214FC
+0x5327 0x214F5
+0x5328 0x214F1
+0x5329 0x2169C
+0x532A 0x21918
+0x532B 0x2191A
+0x532C 0x21AFC
+0x532D 0x21AFE
+0x532E 0x21B03
+0x532F 0x21B53
+0x5330 0x21D2B
+0x5331 0x21FC6
+0x5332 0x21FC1
+0x5333 0x2217B
+0x5334 0x22306
+0x5335 0x22449
+0x5336 0x224B8
+0x5337 0x225A3
+0x5338 0x22952
+0x5339 0x2294D
+0x533A 0x2295F
+0x533B 0x2295E
+0x533C 0x22961
+0x533D 0x22A23
+0x533E 0x22E8C
+0x533F 0x22E6F
+0x5340 0x22E75
+0x5341 0x22E74
+0x5342 0x22E71
+0x5343 0x22E70
+0x5344 0x22E6C
+0x5345 0x23126
+0x5346 0x23308
+0x5347 0x6707
+0x5348 0x237F0
+0x5349 0x237EF
+0x534A 0x237FB
+0x534B 0x23810
+0x534C 0x2380C
+0x534D 0x237F6
+0x534E 0x237FE
+0x534F 0x23A7C
+0x5350 0x23AE1
+0x5351 0x23C38
+0x5352 0x23C6F
+0x5353 0x24118
+0x5354 0x24115
+0x5355 0x2411C
+0x5356 0x24110
+0x5357 0x24135
+0x5358 0x2F917
+0x5359 0x24117
+0x535A 0x2411D
+0x535B 0x24126
+0x535C-0x535E 0x24128
+0x535F 0x2411A
+0x5360 0x2F916
+0x5361 0x22307
+0x5362-0x5363 0x244AB
+0x5364 0x244A1
+0x5365 0x244AE
+0x5366 0x244A3
+0x5367 0x244A7
+0x5368 0x24548
+0x5369 0x24604
+0x536A 0x246FD
+0x536B 0x3E5A
+0x536C 0x24708
+0x536D 0x248D2
+0x536E 0x24AC6
+0x536F 0x24ABE
+0x5370 0x24B1C
+0x5371-0x5372 0x24BA6
+0x5373 0x24BAB
+0x5374 0x24C00
+0x5375-0x5376 0x24CFB
+0x5377 0x24CF9
+0x5378 0x24D01
+0x5379 0x24F06
+0x537A 0x24F04
+0x537B 0x2F93C
+0x537C 0x25034
+0x537D 0x25336
+0x537E 0x25332
+0x5421 0x25342
+0x5422 0x2532D
+0x5423 0x25335
+0x5424 0x255D8
+0x5425 0x25723
+0x5426 0x25720
+0x5427 0x25901
+0x5428 0x25900
+0x5429 0x25903
+0x542A 0x2A6BC
+0x542B 0x25A3C
+0x542C 0x25A41
+0x542D 0x25A35
+0x542E 0x25AC9
+0x542F 0x25D8E
+0x5430 0x25D9E
+0x5431 0x25D99
+0x5432 0x25DB4
+0x5433 0x25DAA
+0x5434 0x25D9F
+0x5435 0x25D96
+0x5436 0x25D9D
+0x5437 0x25DC3
+0x5438 0x25D74
+0x5439 0x25DAB
+0x543A 0x42AF
+0x543B 0x25F63
+0x543C 0x25F5B
+0x543D 0x25F5A
+0x543E 0x261C5
+0x543F 0x261C4
+0x5440 0x261CF
+0x5441 0x261C8
+0x5442 0x261A4
+0x5443 0x261BD
+0x5444 0x261D3
+0x5445 0x26260
+0x5446 0x2633B
+0x5447 0x263E3
+0x5448 0x263E7
+0x5449 0x264A8
+0x544A 0x264AC
+0x544B 0x264A9
+0x544C 0x2652A
+0x544D-0x544E 0x26608
+0x544F 0x268B9
+0x5450-0x5451 0x26AC1
+0x5452 0x26AB8
+0x5453 0x270E1
+0x5454 0x270EB
+0x5455 0x270E5
+0x5456 0x270FA
+0x5457 0x270E4
+0x5458 0x2710B
+0x5459 0x270D7
+0x545A 0x270EF
+0x545B 0x270E0
+0x545C 0x270EC
+0x545D 0x270FB
+0x545E 0x2F9B0
+0x545F 0x270D3
+0x5460 0x270E6
+0x5461 0x270FC
+0x5462 0x270E3
+0x5463 0x270CF
+0x5464 0x270DA
+0x5465 0x270DC
+0x5466 0x270D2
+0x5467 0x270A4
+0x5468 0x456B
+0x5469 0x27217
+0x546A 0x27216
+0x546B 0x274F2
+0x546C 0x274FC
+0x546D 0x27518
+0x546E 0x274F6
+0x546F 0x274FE
+0x5470 0x274F3
+0x5471 0x274F7
+0x5472 0x27501
+0x5473 0x274F9
+0x5474 0x27506
+0x5475 0x274F5
+0x5476 0x27510
+0x5477 0x274DF
+0x5478 0x27503
+0x5479 0x27508
+0x547A 0x275D8
+0x547B 0x27605
+0x547C 0x27797
+0x547D 0x277B3
+0x547E 0x277AE
+0x5521 0x277AF
+0x5522 0x277A7
+0x5523 0x277B1
+0x5524 0x277A8
+0x5525 0x277AC
+0x5526 0x277AB
+0x5527 0x27804
+0x5528 0x2789A
+0x5529 0x2794A
+0x552A 0x27B42
+0x552B 0x27B58
+0x552C 0x27B4B
+0x552D 0x27B45
+0x552E 0x27B49
+0x552F 0x27B4C
+0x5530 0x27B59
+0x5531 0x27B56
+0x5532 0x471B
+0x5533 0x27B46
+0x5534 0x27B44
+0x5535 0x27B5B
+0x5536 0x27B69
+0x5537-0x5538 0x27C8E
+0x5539 0x27D1E
+0x553A 0x268BC
+0x553B 0x27E2F
+0x553C 0x27F9E
+0x553D 0x27F9D
+0x553E 0x27F9F
+0x553F 0x27F9C
+0x5540 0x281B4
+0x5541 0x281AE
+0x5542 0x281AB
+0x5543 0x281B3
+0x5544 0x281AF
+0x5545 0x281C2
+0x5546 0x28293
+0x5547-0x5549 0x28295
+0x554A 0x283CF
+0x554B 0x283CE
+0x554C 0x283CB
+0x554D 0x2844B
+0x554E 0x28646
+0x554F 0x28643
+0x5550 0x28645
+0x5551 0x28651
+0x5552-0x5554 0x287AE
+0x5555 0x287B8
+0x5556-0x5557 0x287E2
+0x5558 0x287E6
+0x5559 0x288ED
+0x555A 0x288EA
+0x555B 0x2893A
+0x555C 0x28B59
+0x555D 0x28B84
+0x555E 0x28B5F
+0x555F 0x28B7C
+0x5560 0x28B5C
+0x5561 0x28B58
+0x5562 0x28B55
+0x5563 0x28B5D
+0x5564 0x28B7E
+0x5565 0x28B80
+0x5566 0x28B83
+0x5567 0x28B57
+0x5568 0x4963
+0x5569 0x28B5E
+0x556A 0x28CBA
+0x556B 0x28DD5
+0x556C 0x28F58
+0x556D 0x28F68
+0x556E 0x28F67
+0x556F 0x2904A
+0x5570 0x2904C
+0x5571 0x29052
+0x5572 0x29049
+0x5573 0x2904E
+0x5574 0x29047
+0x5575 0x2904D
+0x5576 0x2904B
+0x5577 0x2904F
+0x5578 0x2917E
+0x5579 0x29187
+0x557A 0x29183
+0x557B 0x29189
+0x557C 0x24ACA
+0x557D 0x29186
+0x557E 0x29188
+0x5621 0x29247
+0x5622 0x29242
+0x5623 0x29249
+0x5624 0x29248
+0x5625 0x4A80
+0x5626 0x4A84
+0x5627 0x4A7F
+0x5628 0x29344
+0x5629 0x29351
+0x562A-0x562B 0x29346
+0x562C 0x293E4
+0x562D 0x2940F
+0x562E 0x2943F
+0x562F 0x2954B
+0x5630 0x29557
+0x5631 0x29552
+0x5632 0x4AF1
+0x5633 0x29551
+0x5634 0x29558
+0x5635 0x2955E
+0x5636 0x29553
+0x5637 0x2955D
+0x5638 0x2954D
+0x5639 0x2963C
+0x563A 0x2963F
+0x563B 0x29646
+0x563C 0x2963E
+0x563D-0x563E 0x29644
+0x563F 0x29641
+0x5640 0x29638
+0x5641-0x5642 0x29642
+0x5643 0x2967A
+0x5644 0x297A3
+0x5645 0x297BA
+0x5646 0x297C0
+0x5647 0x297C4
+0x5648 0x297C6
+0x5649 0x297CB
+0x564A 0x29861
+0x564B 0x2997A
+0x564C 0x29973
+0x564D 0x29972
+0x564E 0x29974
+0x564F-0x5650 0x29980
+0x5651 0x9A47
+0x5652 0x29A95
+0x5653-0x5654 0x29A8F
+0x5655 0x29A92
+0x5656 0x29A94
+0x5657 0x29A8B
+0x5658 0x29AE6
+0x5659 0x29BB2
+0x565A 0x29BB8
+0x565B-0x565C 0x29BBD
+0x565D 0x29BCE
+0x565E 0x29BBA
+0x565F 0x29C16
+0x5660 0x29C26
+0x5661 0x29C25
+0x5662 0x29C4C
+0x5663 0x29C50
+0x5664 0x29C4E
+0x5665-0x5666 0x29C51
+0x5667-0x5668 0x29D14
+0x5669 0x29D1B
+0x566A 0x29E82
+0x566B-0x566C 0x29E99
+0x566D 0x29E7D
+0x566E-0x566F 0x29E85
+0x5670 0x29E9C
+0x5671 0x29E79
+0x5672 0x29E7B
+0x5673 0x29E80
+0x5674 0x29E83
+0x5675 0x29E81
+0x5676 0x2A11E
+0x5677 0x2A11B
+0x5678 0x2A12A
+0x5679 0x2A0FB
+0x567A 0x2A105
+0x567B 0x2A120
+0x567C 0x2A111
+0x567D 0x2A104
+0x567E 0x2A0FD
+0x5721 0x2A103
+0x5722 0x2A110
+0x5723 0x2A118
+0x5724 0x2A10A
+0x5725 0x2A14E
+0x5726 0x2A109
+0x5727 0x2A107
+0x5728 0x2A11C
+0x5729 0x4D1C
+0x572A 0x2A277
+0x572B 0x2A276
+0x572C-0x572D 0x2A2D8
+0x572E 0x2A361
+0x572F 0x2A35C
+0x5730 0x2A35E
+0x5731 0x2A360
+0x5732 0x2A3AA
+0x5733 0x2A3D6
+0x5734 0x2A3D8
+0x5735 0x2A409
+0x5736 0x2A408
+0x5737 0x2A46B
+0x5738 0x2A465
+0x5739-0x573A 0x2A473
+0x573B 0x2A4ED
+0x573C-0x573D 0x2A524
+0x573E 0x2A56A
+0x573F-0x5740 0x2A5A7
+0x5741 0x2A60B
+0x5742 0x2A5FA
+0x5743 0x2A5F9
+0x5744 0x2A5FF
+0x5745 0x2A604
+0x5746 0x2A5F6
+0x5747 0x2A605
+0x5748 0x2A699
+0x5749 0x2A6AB
+0x574A 0x2A6BD
+0x574B 0x2A6B8
+0x574C 0x34A8
+0x574D 0x20464
+0x574E 0x2045A
+0x574F 0x20572
+0x5750 0x2097A
+0x5751 0x20B95
+0x5752 0x2115F
+0x5753 0x21161
+0x5754 0x2115E
+0x5755 0x2115A
+0x5756-0x5757 0x2115C
+0x5758 0x2116E
+0x5759-0x575A 0x21157
+0x575B 0x21502
+0x575C 0x2150B
+0x575D 0x21508
+0x575E 0x21551
+0x575F 0x21925
+0x5760 0x21928
+0x5761 0x21923
+0x5762 0x21921
+0x5763 0x21924
+0x5764 0x21929
+0x5765 0x21B06
+0x5766 0x21B0A
+0x5767 0x21FCA
+0x5768 0x21FCC
+0x5769 0x21FCB
+0x576A 0x21FCF
+0x576B 0x2217F
+0x576C 0x2217C
+0x576D 0x221D6
+0x576E 0x22309
+0x576F 0x2230B
+0x5770 0x22376
+0x5771 0x2247D
+0x5772 0x225A5
+0x5773-0x5775 0x2295B
+0x5776 0x22965
+0x5777 0x22E6D
+0x5778-0x5779 0x22E82
+0x577A 0x22E87
+0x577B 0x22E95
+0x577C 0x22E8A
+0x577D 0x230D6
+0x577E 0x23128
+0x5821 0x2330D
+0x5822 0x2382E
+0x5823 0x2F8EE
+0x5824 0x2382D
+0x5825 0x23821
+0x5826 0x23819
+0x5827-0x5828 0x2393B
+0x5829 0x2393A
+0x582A 0x23A7E
+0x582B 0x23C3B
+0x582C 0x24147
+0x582D 0x24139
+0x582E 0x24134
+0x582F 0x24136
+0x5830 0x24146
+0x5831 0x2413B
+0x5832 0x24141
+0x5833 0x24145
+0x5834 0x244C0
+0x5835 0x244C4
+0x5836 0x244BA
+0x5837-0x5838 0x244BD
+0x5839 0x245A3
+0x583A 0x2470C
+0x583B 0x248D9
+0x583C 0x24ACD
+0x583D 0x24BAE
+0x583E 0x24CFF
+0x583F 0x24D24
+0x5840-0x5841 0x24FBB
+0x5842 0x25036
+0x5843 0x250D5
+0x5844 0x250D3
+0x5845 0x250D6
+0x5846 0x2533C
+0x5847 0x2533F
+0x5848 0x255DE
+0x5849 0x255E3
+0x584A 0x25727
+0x584B 0x25729
+0x584C 0x418B
+0x584D 0x25905
+0x584E 0x25907
+0x584F 0x2590C
+0x5850 0x25AD0
+0x5851 0x25DBE
+0x5852 0x25DBC
+0x5853 0x25DD0
+0x5854 0x25DC2
+0x5855 0x25DB5
+0x5856 0x25DC9
+0x5857 0x25F66
+0x5858 0x432B
+0x5859 0x261D5
+0x585A 0x261E2
+0x585B 0x261DC
+0x585C 0x261E3
+0x585D 0x261DA
+0x585E 0x261C2
+0x585F 0x261E8
+0x5860 0x263E9
+0x5861 0x264AF
+0x5862-0x5863 0x264AD
+0x5864 0x2660B
+0x5865 0x268C1
+0x5866 0x269B6
+0x5867 0x269B9
+0x5868 0x26AC0
+0x5869 0x270A5
+0x586A 0x27128
+0x586B 0x27122
+0x586C 0x27129
+0x586D 0x27118
+0x586E 0x2711F
+0x586F 0x2711C
+0x5870 0x27112
+0x5871 0x2712A
+0x5872 0x457A
+0x5873 0x27121
+0x5874 0x2712B
+0x5875 0x27117
+0x5876 0x270F0
+0x5877 0x27116
+0x5878 0x27123
+0x5879 0x2752B
+0x587A 0x27526
+0x587B 0x2753D
+0x587C 0x27522
+0x587D 0x2753A
+0x587E 0x27531
+0x5921 0x27532
+0x5922 0x27554
+0x5923 0x27521
+0x5924 0x27535
+0x5925 0x4609
+0x5926 0x2752E
+0x5927 0x27530
+0x5928 0x2752F
+0x5929 0x27536
+0x592A 0x275DA
+0x592B 0x275D9
+0x592C-0x592D 0x277BB
+0x592E 0x277B7
+0x592F 0x277C2
+0x5930 0x277BD
+0x5931 0x277B2
+0x5932 0x466D
+0x5933 0x25344
+0x5934 0x25DD1
+0x5935 0x27B52
+0x5936 0x27B6B
+0x5937 0x27B67
+0x5938 0x471F
+0x5939 0x27B61
+0x593A 0x27B6C
+0x593B 0x27B51
+0x593C 0x27B74
+0x593D 0x27B77
+0x593E 0x27B6F
+0x593F 0x27B6D
+0x5940 0x27B68
+0x5941 0x2F9D1
+0x5942 0x27B84
+0x5943 0x27C90
+0x5944-0x5945 0x27C92
+0x5946 0x27D1F
+0x5947 0x27E31
+0x5948-0x5949 0x27E38
+0x594A 0x27E37
+0x594B 0x27FAB
+0x594C 0x281C3
+0x594D 0x281C8
+0x594E 0x281CB
+0x594F 0x281CF
+0x5950 0x28298
+0x5951 0x283D4
+0x5952 0x283D3
+0x5953-0x5954 0x283D8
+0x5955 0x283DD
+0x5956 0x283D1
+0x5957 0x283D6
+0x5958 0x2843E
+0x5959 0x28658
+0x595A 0x28657
+0x595B 0x28655
+0x595C 0x287C4
+0x595D 0x287E4
+0x595E-0x595F 0x288EE
+0x5960 0x288F3
+0x5961 0x288F2
+0x5962 0x288F0
+0x5963 0x28BAB
+0x5964 0x28B9A
+0x5965 0x28BAF
+0x5966 0x28B97
+0x5967 0x496A
+0x5968 0x496C
+0x5969 0x28BBF
+0x596A 0x28B94
+0x596B 0x28B93
+0x596C 0x28CBE
+0x596D-0x596E 0x28CBB
+0x596F 0x28DD9
+0x5970 0x28F6C
+0x5971-0x5972 0x29053
+0x5973 0x2905B
+0x5974 0x29058
+0x5975-0x5976 0x29056
+0x5977 0x2919F
+0x5978 0x29194
+0x5979-0x597A 0x29196
+0x597B-0x597C 0x2924A
+0x597D 0x29355
+0x597E 0x2935A
+0x5A21-0x5A22 0x2935E
+0x5A23 0x29359
+0x5A24 0x2935B
+0x5A25 0x29358
+0x5A26 0x29354
+0x5A27 0x293E8
+0x5A28-0x5A29 0x293EB
+0x5A2A 0x29413
+0x5A2B 0x29566
+0x5A2C 0x2956B
+0x5A2D 0x29562
+0x5A2E 0x29569
+0x5A2F 0x29563
+0x5A30 0x2955F
+0x5A31 0x2954E
+0x5A32 0x29648
+0x5A33 0x2964A
+0x5A34 0x297E3
+0x5A35 0x297DB
+0x5A36 0x297D8
+0x5A37 0x297D6
+0x5A38 0x29986
+0x5A39-0x5A3A 0x29990
+0x5A3B 0x29988
+0x5A3C 0x29994
+0x5A3D 0x29983
+0x5A3E 0x4BB2
+0x5A3F 0x2999C
+0x5A40 0x2998D
+0x5A41 0x29985
+0x5A42 0x29A98
+0x5A43 0x29A9A
+0x5A44 0x29A9C
+0x5A45 0x29AE7
+0x5A46 0x29BC5
+0x5A47-0x5A48 0x29BD0
+0x5A49 0x29C19
+0x5A4A 0x29C27
+0x5A4B 0x4C1D
+0x5A4C 0x29C54
+0x5A4D 0x29D2D
+0x5A4E 0x29D22
+0x5A4F 0x4C2D
+0x5A50 0x29D1F
+0x5A51 0x29EBD
+0x5A52 0x29EAE
+0x5A53 0x29EBB
+0x5A54 0x29EAD
+0x5A55 0x29EBC
+0x5A56 0x29EB9
+0x5A57 0x29EB4
+0x5A58 0x29ECB
+0x5A59 0x29EB7
+0x5A5A 0x29EB3
+0x5A5B 0x29EBA
+0x5A5C 0x29EB6
+0x5A5D 0x29ECD
+0x5A5E 0x29EBE
+0x5A5F 0x29EC9
+0x5A60 0x2FA0B
+0x5A61 0x2A15F
+0x5A62 0x2A13B
+0x5A63 0x2A161
+0x5A64 0x2A15C
+0x5A65 0x2A18A
+0x5A66 0x2A15A
+0x5A67 0x2A14D
+0x5A68 0x2A146
+0x5A69 0x2A144
+0x5A6A 0x2A13D
+0x5A6B 0x2A140
+0x5A6C 0x2A13C
+0x5A6D 0x2A18C
+0x5A6E 0x2A141
+0x5A6F 0x2A14C
+0x5A70 0x2A13E
+0x5A71 0x2A14A
+0x5A72 0x2A27C
+0x5A73 0x2A27A
+0x5A74 0x2A365
+0x5A75 0x2A36E
+0x5A76-0x5A77 0x2A369
+0x5A78 0x2A36F
+0x5A79 0x2A36C
+0x5A7A 0x2A370
+0x5A7B 0x2A368
+0x5A7C 0x2A36B
+0x5A7D 0x4D45
+0x5A7E 0x2A3AC
+0x5B21 0x2A3DE
+0x5B22 0x2A3DD
+0x5B23 0x2A3DC
+0x5B24 0x244C5
+0x5B25 0x2A48C
+0x5B26 0x2A483
+0x5B27 0x2A482
+0x5B28 0x2A488
+0x5B29 0x2A485
+0x5B2A 0x2A481
+0x5B2B 0x2A4F5
+0x5B2C 0x2A4EF
+0x5B2D 0x2A4F4
+0x5B2E 0x2A4F2
+0x5B2F 0x2A4F6
+0x5B30 0x2A4F3
+0x5B31-0x5B32 0x2A4F0
+0x5B33 0x2A52B
+0x5B34-0x5B35 0x2A527
+0x5B36 0x2A56C
+0x5B37 0x2A5AE
+0x5B38 0x2A60E
+0x5B39 0x2A61B
+0x5B3A 0x2A616
+0x5B3B 0x2A61F
+0x5B3C 0x2A622
+0x5B3D-0x5B3E 0x2A620
+0x5B3F 0x2A614
+0x5B40 0x2A613
+0x5B41 0x2A69D
+0x5B42 0x2A69C
+0x5B43-0x5B44 0x2A69E
+0x5B45 0x2046B
+0x5B46 0x208C8
+0x5B47 0x21178
+0x5B48 0x21176
+0x5B49-0x5B4A 0x21170
+0x5B4B 0x2150A
+0x5B4C 0x2192C
+0x5B4D 0x22311
+0x5B4E 0x2247E
+0x5B4F 0x22957
+0x5B50 0x22966
+0x5B51 0x22969
+0x5B52-0x5B53 0x22967
+0x5B54 0x22971
+0x5B55 0x2296F
+0x5B56 0x2A3AE
+0x5B57 0x22E8B
+0x5B58 0x22E96
+0x5B59 0x23035
+0x5B5A 0x2303A
+0x5B5B 0x2306B
+0x5B5C 0x23316
+0x5B5D 0x23843
+0x5B5E 0x23846
+0x5B5F 0x2383F
+0x5B60 0x2383B
+0x5B61 0x2383D
+0x5B62-0x5B63 0x239B1
+0x5B64 0x23AE4
+0x5B65 0x23C40
+0x5B66 0x2415D
+0x5B67 0x24151
+0x5B68 0x2414D
+0x5B69 0x2414C
+0x5B6A 0x2415B
+0x5B6B 0x244D4
+0x5B6C 0x244D2
+0x5B6D 0x244CA
+0x5B6E 0x244C8
+0x5B6F 0x244D0
+0x5B70 0x244C9
+0x5B71 0x24549
+0x5B72 0x245A4
+0x5B73 0x24712
+0x5B74 0x2470F
+0x5B75 0x24711
+0x5B76 0x248DB
+0x5B77 0x248DD
+0x5B78 0x248DC
+0x5B79 0x24AD4
+0x5B7A 0x24B21
+0x5B7B 0x24BB2
+0x5B7C 0x24D04
+0x5B7D 0x24D02
+0x5B7E 0x24F11
+0x5C21 0x24F16
+0x5C22 0x24F10
+0x5C23 0x24FBE
+0x5C24 0x2721A
+0x5C25 0x2534C
+0x5C26 0x2534A
+0x5C27 0x255F2
+0x5C28 0x255F1
+0x5C29 0x2572A
+0x5C2A 0x2572C
+0x5C2B 0x2572F
+0x5C2C 0x25731
+0x5C2D-0x5C2E 0x25911
+0x5C2F 0x25A4B
+0x5C30 0x25DDB
+0x5C31 0x25DD6
+0x5C32 0x25DDD
+0x5C33 0x25DE2
+0x5C34 0x25DE4
+0x5C35 0x25DE0
+0x5C36 0x25DDF
+0x5C37 0x25DE3
+0x5C38 0x25F6E
+0x5C39 0x25F71
+0x5C3A-0x5C3B 0x261E9
+0x5C3C 0x26263
+0x5C3D 0x263EB
+0x5C3E 0x263EA
+0x5C3F 0x268BD
+0x5C40 0x268BB
+0x5C41 0x268C6
+0x5C42 0x268CC
+0x5C43 0x268C8
+0x5C44 0x244CF
+0x5C45-0x5C46 0x268C9
+0x5C47-0x5C48 0x268CF
+0x5C49 0x269BA
+0x5C4A 0x269FB
+0x5C4B 0x26A03
+0x5C4C 0x26AC4
+0x5C4D 0x27149
+0x5C4E 0x27153
+0x5C4F 0x27136
+0x5C50 0x2714A
+0x5C51 0x27141
+0x5C52 0x2714E
+0x5C53 0x27119
+0x5C54 0x2714D
+0x5C55 0x27145
+0x5C56 0x2714C
+0x5C57-0x5C58 0x27147
+0x5C59 0x2714F
+0x5C5A 0x27137
+0x5C5B 0x27142
+0x5C5C 0x2754A
+0x5C5D 0x27546
+0x5C5E 0x460A
+0x5C5F 0x27549
+0x5C60 0x2754F
+0x5C61 0x27551
+0x5C62 0x2754C
+0x5C63 0x460C
+0x5C64 0x27606
+0x5C65 0x27951
+0x5C66 0x27B7A
+0x5C67 0x27B83
+0x5C68-0x5C6A 0x27B7E
+0x5C6B 0x24BB5
+0x5C6C 0x27C91
+0x5C6D-0x5C6E 0x27C94
+0x5C6F 0x27D21
+0x5C70 0x27D20
+0x5C71 0x27E3D
+0x5C72 0x27E40
+0x5C73 0x27E46
+0x5C74 0x27E84
+0x5C75-0x5C76 0x27FAC
+0x5C77 0x482E
+0x5C78 0x281DA
+0x5C79 0x281D9
+0x5C7A 0x283E2
+0x5C7B 0x283E1
+0x5C7C-0x5C7D 0x283E3
+0x5C7E 0x283DE
+0x5D21 0x283DF
+0x5D22 0x28641
+0x5D23 0x28659
+0x5D24 0x2865C
+0x5D25 0x2865A
+0x5D26 0x287E8
+0x5D27 0x288F6
+0x5D28 0x288FC
+0x5D29 0x288F7
+0x5D2A 0x288FA
+0x5D2B 0x288F9
+0x5D2C 0x28BC4
+0x5D2D 0x28BBE
+0x5D2E 0x28BD2
+0x5D2F 0x28BBD
+0x5D30 0x28B95
+0x5D31 0x28BD4
+0x5D32 0x28DE4
+0x5D33-0x5D36 0x29061
+0x5D37 0x29060
+0x5D38-0x5D3A 0x2905C
+0x5D3B-0x5D3C 0x291A5
+0x5D3D 0x2924C
+0x5D3E 0x29368
+0x5D3F 0x2936E
+0x5D40 0x29371
+0x5D41 0x2936B
+0x5D42 0x2936F
+0x5D43 0x293EE
+0x5D44 0x293F1
+0x5D45 0x293F0
+0x5D46 0x293EF
+0x5D47 0x29415
+0x5D48 0x29414
+0x5D49 0x28F6E
+0x5D4A 0x29447
+0x5D4B 0x2957C
+0x5D4C 0x2957A
+0x5D4D 0x29574
+0x5D4E 0x29576
+0x5D4F 0x2956E
+0x5D50 0x29578
+0x5D51 0x2956D
+0x5D52 0x2956C
+0x5D53 0x2964E
+0x5D54 0x297D7
+0x5D55 0x297EA
+0x5D56 0x297E5
+0x5D57 0x29864
+0x5D58 0x299B3
+0x5D59 0x299A3
+0x5D5A 0x299A5
+0x5D5B 0x299A7
+0x5D5C 0x299A2
+0x5D5D 0x2999F
+0x5D5E 0x299A6
+0x5D5F 0x2999E
+0x5D60 0x299A8
+0x5D61 0x29AA9
+0x5D62 0x29AA6
+0x5D63-0x5D64 0x29AAA
+0x5D65-0x5D66 0x29AA0
+0x5D67 0x29AA8
+0x5D68-0x5D6A 0x29AE8
+0x5D6B 0x29BE4
+0x5D6C-0x5D6D 0x29BDF
+0x5D6E 0x29C28
+0x5D6F 0x29C5D
+0x5D70 0x29C5B
+0x5D71-0x5D72 0x29C56
+0x5D73 0x29C5F
+0x5D74 0x29C62
+0x5D75 0x29EE1
+0x5D76 0x29EE3
+0x5D77 0x29EDE
+0x5D78 0x29ED9
+0x5D79 0x29EE8
+0x5D7A 0x29EF2
+0x5D7B 0x29EF6
+0x5D7C 0x29EE6
+0x5D7D-0x5D7E 0x29EF4
+0x5E21 0x29EE5
+0x5E22 0x29EE2
+0x5E23 0x4C8D
+0x5E24 0x2A196
+0x5E25 0x2A1AA
+0x5E26 0x2A197
+0x5E27 0x2A170
+0x5E28 0x2A1A1
+0x5E29 0x2A19D
+0x5E2A 0x2A1A9
+0x5E2B 0x2A16F
+0x5E2C 0x2A17E
+0x5E2D 0x2A194
+0x5E2E 0x2A19A
+0x5E2F 0x2A173
+0x5E30 0x2A187
+0x5E31 0x2A171
+0x5E32 0x2A177
+0x5E33 0x2A188
+0x5E34 0x2A18D
+0x5E35 0x2A185
+0x5E36 0x2A178
+0x5E37 0x2A1AD
+0x5E38-0x5E39 0x2A280
+0x5E3A 0x2A2E5
+0x5E3B 0x2A2E7
+0x5E3C 0x2A37C
+0x5E3D 0x2A3AF
+0x5E3E 0x2A3E1
+0x5E3F 0x2A496
+0x5E40 0x2A4A3
+0x5E41 0x2A490
+0x5E42 0x2A4F8
+0x5E43 0x2A52E
+0x5E44 0x2A575
+0x5E45 0x2A57E
+0x5E46 0x2A57D
+0x5E47 0x2A57B
+0x5E48 0x2A578
+0x5E49 0x2A5B0
+0x5E4A 0x2A634
+0x5E4B 0x2A636
+0x5E4C 0x2A630
+0x5E4D 0x2FA1D
+0x5E4E 0x2A62E
+0x5E4F 0x2A637
+0x5E50 0x20ACE
+0x5E51-0x5E52 0x20B97
+0x5E53 0x2117C
+0x5E54 0x2117E
+0x5E55 0x2117D
+0x5E56 0x2117F
+0x5E57 0x2150F
+0x5E58 0x216A4
+0x5E59 0x21931
+0x5E5A-0x5E5B 0x2192E
+0x5E5C 0x21932
+0x5E5D 0x21D2C
+0x5E5E 0x21FD4
+0x5E5F 0x21FDC
+0x5E60 0x21FD8
+0x5E61 0x2200E
+0x5E62-0x5E63 0x22183
+0x5E64 0x22312
+0x5E65 0x22972
+0x5E66 0x2297C
+0x5E67 0x2297E
+0x5E68 0x22EA6
+0x5E69 0x22EA0
+0x5E6A 0x22E9E
+0x5E6B 0x22EA2
+0x5E6C 0x2312A
+0x5E6D 0x23318
+0x5E6E 0x2384D
+0x5E6F 0x23858
+0x5E70 0x2385B
+0x5E71 0x25914
+0x5E72 0x2F8F2
+0x5E73 0x23AE6
+0x5E74 0x24164
+0x5E75 0x24168
+0x5E76 0x24160
+0x5E77 0x24162
+0x5E78 0x244D7
+0x5E79 0x2454B
+0x5E7A 0x248E0
+0x5E7B 0x24B22
+0x5E7C 0x24D05
+0x5E7D-0x5E7E 0x24F19
+0x5F21 0x24FC3
+0x5F22 0x250D8
+0x5F23 0x250DC
+0x5F24 0x2534F
+0x5F25 0x255F7
+0x5F26 0x255F4
+0x5F27 0x255F8
+0x5F28 0x25913
+0x5F29 0x25A50
+0x5F2A 0x25DF0
+0x5F2B 0x25DE9
+0x5F2C 0x25DEF
+0x5F2D 0x25DED
+0x5F2E 0x25DEA
+0x5F2F 0x25DF8
+0x5F30 0x25E05
+0x5F31 0x25DF2
+0x5F32 0x25F72
+0x5F33 0x4331
+0x5F34 0x261F9
+0x5F35 0x261F3
+0x5F36 0x261F6
+0x5F37 0x261F2
+0x5F38 0x261F7
+0x5F39 0x26266
+0x5F3A 0x26265
+0x5F3B 0x26340
+0x5F3C 0x2F977
+0x5F3D 0x268D1
+0x5F3E 0x268D3
+0x5F3F 0x26A04
+0x5F40 0x27159
+0x5F41 0x27160
+0x5F42 0x2715B
+0x5F43-0x5F44 0x2715D
+0x5F45 0x27169
+0x5F46 0x2715C
+0x5F47 0x27161
+0x5F48 0x2716A
+0x5F49 0x2715F
+0x5F4A 0x2754E
+0x5F4B 0x2755C
+0x5F4C 0x27560
+0x5F4D 0x27563
+0x5F4E 0x275DB
+0x5F4F 0x277CA
+0x5F50 0x277C9
+0x5F51 0x277C8
+0x5F52 0x278A5
+0x5F53 0x278A3
+0x5F54 0x27B8E
+0x5F55 0x27B87
+0x5F56 0x27B89
+0x5F57-0x5F58 0x27B85
+0x5F59 0x27B8F
+0x5F5A 0x27B8A
+0x5F5B 0x27B90
+0x5F5C 0x27C98
+0x5F5D 0x27C9B
+0x5F5E 0x27E47
+0x5F5F 0x27E49
+0x5F60 0x27E48
+0x5F61 0x281E5
+0x5F62 0x281EA
+0x5F63 0x281ED
+0x5F64 0x283F0
+0x5F65 0x283EF
+0x5F66 0x283F2
+0x5F67 0x283EC
+0x5F68 0x28440
+0x5F69 0x28660
+0x5F6A 0x2865F
+0x5F6B-0x5F6C 0x287EB
+0x5F6D-0x5F6E 0x28900
+0x5F6F 0x28BE2
+0x5F70-0x5F72 0x28BDF
+0x5F73 0x28BE3
+0x5F74 0x28CC3
+0x5F75 0x28DEB
+0x5F76 0x28DEA
+0x5F77 0x28F61
+0x5F78 0x28F71
+0x5F79 0x2906B
+0x5F7A-0x5F7B 0x29068
+0x5F7C 0x29067
+0x5F7D-0x5F7E 0x291B0
+0x6021 0x291B2
+0x6022 0x29251
+0x6023 0x29374
+0x6024 0x2957F
+0x6025 0x29584
+0x6026-0x6027 0x29653
+0x6028 0x297F0
+0x6029 0x297F4
+0x602A 0x297F1
+0x602B 0x29837
+0x602C 0x299BF
+0x602D 0x4BBC
+0x602E 0x4BBB
+0x602F-0x6030 0x299BD
+0x6031 0x299B7
+0x6032 0x299C0
+0x6033 0x299BA
+0x6034 0x299B8
+0x6035 0x299BC
+0x6036 0x299BB
+0x6037 0x29AEB
+0x6038 0x29BE7
+0x6039 0x29C1D
+0x603A 0x29C1C
+0x603B 0x29C63
+0x603C 0x2244B
+0x603D 0x29D38
+0x603E 0x29D36
+0x603F 0x29D34
+0x6040 0x29D37
+0x6041 0x29F06
+0x6042 0x29F1C
+0x6043 0x29F02
+0x6044-0x6045 0x29F1D
+0x6046 0x29EE0
+0x6047 0x29F11
+0x6048 0x29F18
+0x6049 0x29F21
+0x604A 0x29F20
+0x604B 0x29F10
+0x604C 0x2A1BD
+0x604D 0x2A1AE
+0x604E 0x2A1B5
+0x604F-0x6050 0x2A1B8
+0x6051 0x2A1BE
+0x6052 0x2A1C4
+0x6053 0x2A1BC
+0x6054 0x2A1BA
+0x6055 0x2A283
+0x6056 0x2A2EA
+0x6057 0x2A2EC
+0x6058 0x2A37E
+0x6059 0x2A37B
+0x605A 0x2A3E5
+0x605B 0x2A4A7
+0x605C 0x2A49E
+0x605D 0x2A49A
+0x605E 0x2A52F
+0x605F 0x2A531
+0x6060 0x2A583
+0x6061 0x2A5B5
+0x6062 0x2A646
+0x6063 0x2A641
+0x6064 0x2A643
+0x6065 0x2A63D
+0x6066 0x2A642
+0x6067 0x2A63B
+0x6068 0x2A647
+0x6069 0x2096B
+0x606A 0x209D0
+0x606B 0x2118E
+0x606C 0x21B11
+0x606D 0x2F871
+0x606E 0x2F889
+0x606F 0x2244C
+0x6070 0x2312B
+0x6071 0x2384F
+0x6072 0x2385E
+0x6073 0x23863
+0x6074 0x2386B
+0x6075 0x2393F
+0x6076 0x23AE9
+0x6077 0x2416D
+0x6078 0x2416B
+0x6079 0x2416A
+0x607A 0x29F2A
+0x607B 0x244E0
+0x607C 0x244DD
+0x607D 0x244E1
+0x607E 0x244DE
+0x6121 0x244DC
+0x6122 0x2454D
+0x6123 0x24716
+0x6124 0x248E3
+0x6125 0x24AE5
+0x6126 0x24AE4
+0x6127 0x24F1D
+0x6128 0x2574B
+0x6129 0x2A6C1
+0x612A 0x25A4E
+0x612B 0x25AD6
+0x612C 0x25DFD
+0x612D 0x25E07
+0x612E 0x25DFE
+0x612F 0x25E03
+0x6130 0x25E0B
+0x6131 0x25DFF
+0x6132 0x25F7A
+0x6133 0x25F77
+0x6134 0x261FB
+0x6135 0x26343
+0x6136 0x263ED
+0x6137 0x269BC
+0x6138 0x244DF
+0x6139 0x26A05
+0x613A 0x26AC6
+0x613B 0x26AC5
+0x613C 0x27174
+0x613D 0x27173
+0x613E 0x27172
+0x613F 0x27178
+0x6140 0x27573
+0x6141 0x2757A
+0x6142 0x24F1C
+0x6143 0x27576
+0x6144 0x27575
+0x6145 0x27577
+0x6146 0x277CF
+0x6147 0x277CE
+0x6148 0x277CD
+0x6149 0x278A8
+0x614A 0x27B98
+0x614B 0x27B92
+0x614C 0x27B94
+0x614D 0x27C9A
+0x614E 0x27FB4
+0x614F 0x281EB
+0x6150 0x281F4
+0x6151 0x281F3
+0x6152 0x281EE
+0x6153 0x281F2
+0x6154 0x281F0
+0x6155 0x28664
+0x6156 0x28C05
+0x6157-0x6158 0x28BFB
+0x6159 0x28DF3
+0x615A 0x2906C
+0x615B 0x291BA
+0x615C 0x29379
+0x615D 0x2937E
+0x615E 0x29378
+0x615F 0x293F4
+0x6160 0x29416
+0x6161 0x29657
+0x6162 0x299C8
+0x6163 0x299C3
+0x6164 0x299CE
+0x6165 0x29AB3
+0x6166-0x6167 0x29AED
+0x6168 0x29BF1
+0x6169 0x29BF8
+0x616A 0x4C14
+0x616B-0x616C 0x29C64
+0x616D 0x29F35
+0x616E 0x29F29
+0x616F 0x29F2C
+0x6170 0x29F31
+0x6171 0x29F2B
+0x6172 0x29F2E
+0x6173 0x29F25
+0x6174 0x2A1DA
+0x6175 0x2A1E0
+0x6176 0x2A1D4
+0x6177 0x2A1E1
+0x6178 0x2A1DD
+0x6179 0x2A3E7
+0x617A 0x2A412
+0x617B-0x617C 0x2A4AE
+0x617D 0x2A586
+0x617E 0x2A585
+0x6221 0x2A5D1
+0x6222 0x2A658
+0x6223 0x2A63F
+0x6224 0x2A652
+0x6225 0x2A64B
+0x6226 0x2A653
+0x6227 0x2A650
+0x6228-0x6229 0x2A656
+0x622A 0x2A6CD
+0x622B 0x2A6CB
+0x622C 0x20831
+0x622D 0x20830
+0x622E 0x209D1
+0x622F 0x361C
+0x6230 0x21192
+0x6231 0x21190
+0x6232 0x2118F
+0x6233 0x21193
+0x6234 0x21191
+0x6235 0x3772
+0x6236 0x22313
+0x6237 0x2247F
+0x6238 0x22EAC
+0x6239 0x24170
+0x623A 0x244E5
+0x623B-0x623C 0x24B23
+0x623D 0x24D08
+0x623E 0x24D07
+0x623F-0x6241 0x24F1F
+0x6242 0x250E1
+0x6243 0x25354
+0x6244 0x25357
+0x6245 0x25355
+0x6246 0x255FA
+0x6247 0x25738
+0x6248 0x27186
+0x6249 0x25737
+0x624A 0x25A53
+0x624B 0x25F7E
+0x624C 0x25F7B
+0x624D 0x2F971
+0x624E 0x261FD
+0x624F 0x261FC
+0x6250 0x26346
+0x6251 0x26932
+0x6252 0x26AC7
+0x6253 0x27171
+0x6254 0x27183
+0x6255 0x2716F
+0x6256 0x2717E
+0x6257 0x2717D
+0x6258 0x27181
+0x6259 0x2717C
+0x625A 0x2758A
+0x625B 0x2757E
+0x625C 0x27580
+0x625D 0x2757D
+0x625E 0x2757F
+0x625F 0x27582
+0x6260 0x277D4
+0x6261 0x277D0
+0x6262 0x277D2
+0x6263 0x27955
+0x6264 0x27B9B
+0x6265 0x27B9A
+0x6266 0x27E4E
+0x6267 0x281F1
+0x6268 0x283F8
+0x6269 0x283FD
+0x626A 0x2865E
+0x626B 0x28666
+0x626C 0x28905
+0x626D-0x626E 0x28C0A
+0x626F 0x28C0E
+0x6270 0x28C0D
+0x6271 0x28C11
+0x6272 0x28C09
+0x6273 0x28C10
+0x6274 0x28C0C
+0x6275 0x28C12
+0x6276 0x28CC4
+0x6277-0x6278 0x28DF7
+0x6279-0x627A 0x28F6A
+0x627B 0x291C0
+0x627C 0x291C2
+0x627D 0x29385
+0x627E 0x29380
+0x6321 0x29384
+0x6322 0x29381
+0x6323 0x291C4
+0x6324 0x2958B
+0x6325-0x6326 0x2958D
+0x6327 0x29AB7
+0x6328 0x29AB9
+0x6329 0x29AEF
+0x632A 0x29BFB
+0x632B 0x29BFF
+0x632C-0x632E 0x29C67
+0x632F 0x29D3F
+0x6330 0x29F3C
+0x6331 0x29F4C
+0x6332-0x6334 0x29F3D
+0x6335 0x29F3B
+0x6336 0x2A1FF
+0x6337 0x4D0E
+0x6338 0x2A1F6
+0x6339 0x2A1EE
+0x633A 0x2A1FC
+0x633B 0x2A1F8
+0x633C 0x2A201
+0x633D 0x2A1FA
+0x633E 0x2A288
+0x633F 0x2A380
+0x6340 0x2A411
+0x6341 0x2A4FE
+0x6342 0x2A500
+0x6343 0x2A535
+0x6344 0x2503C
+0x6345 0x2A5BD
+0x6346 0x2A5BB
+0x6347 0x2A65C
+0x6348 0x2A65A
+0x6349 0x2A6D1
+0x634A 0x2A6D0
+0x634B 0x20A0B
+0x634C 0x23873
+0x634D 0x21939
+0x634E 0x21B1A
+0x634F 0x21FE3
+0x6350 0x22187
+0x6351-0x6352 0x22377
+0x6353 0x22EB1
+0x6354 0x2386A
+0x6355 0x23874
+0x6356 0x23AEB
+0x6357 0x2417B
+0x6358 0x245A5
+0x6359 0x248E4
+0x635A 0x24D0B
+0x635B 0x24D0E
+0x635C 0x24D0C
+0x635D 0x25739
+0x635E-0x635F 0x25E10
+0x6360 0x25E16
+0x6361 0x25F81
+0x6362 0x25F80
+0x6363 0x261FE
+0x6364 0x26201
+0x6365 0x26200
+0x6366 0x26347
+0x6367 0x263EF
+0x6368 0x27188
+0x6369 0x2758B
+0x636A 0x2758D
+0x636B 0x27587
+0x636C 0x27585
+0x636D 0x2758F
+0x636E 0x27584
+0x636F 0x27588
+0x6370 0x2758E
+0x6371 0x2758C
+0x6372 0x277D7
+0x6373 0x277D6
+0x6374 0x27B9F
+0x6375 0x22188
+0x6376 0x28203
+0x6377 0x283FE
+0x6378 0x287EF
+0x6379 0x28909
+0x637A 0x28908
+0x637B 0x28C20
+0x637C 0x28C24
+0x637D 0x28C1F
+0x637E 0x29070
+0x6421 0x29256
+0x6422-0x6423 0x293F7
+0x6424 0x293F6
+0x6425 0x29590
+0x6426 0x2965E
+0x6427 0x297F7
+0x6428 0x299D6
+0x6429 0x299D5
+0x642A 0x29ABB
+0x642B 0x29AF0
+0x642C 0x29C01
+0x642D 0x29C6C
+0x642E-0x642F 0x29D41
+0x6430 0x29F4F
+0x6431 0x29F53
+0x6432 0x29F58
+0x6433 0x2A212
+0x6434 0x2A204
+0x6435 0x2A213
+0x6436 0x2A205
+0x6437 0x2A20D
+0x6438 0x2A382
+0x6439 0x2A381
+0x643A 0x2A4B5
+0x643B 0x2A4BA
+0x643C 0x2A5BE
+0x643D 0x2A665
+0x643E 0x2A663
+0x643F 0x2A66E
+0x6440 0x2A66A
+0x6441 0x2A66C
+0x6442 0x2A6C4
+0x6443 0x2096C
+0x6444 0x27BA5
+0x6445 0x21B12
+0x6446 0x2244D
+0x6447 0x2331F
+0x6448-0x6449 0x23877
+0x644A 0x23C44
+0x644B 0x2417C
+0x644C 0x244EB
+0x644D 0x244EA
+0x644E 0x244EC
+0x644F 0x245A7
+0x6450 0x24719
+0x6451 0x24F23
+0x6452 0x7674
+0x6453 0x25601
+0x6454 0x25E1C
+0x6455 0x26203
+0x6456 0x26348
+0x6457 0x268DA
+0x6458-0x6459 0x27191
+0x645A-0x645B 0x27596
+0x645C 0x27591
+0x645D 0x27593
+0x645E 0x277D8
+0x645F 0x277D5
+0x6460-0x6461 0x27957
+0x6462 0x27BA2
+0x6463 0x28205
+0x6464 0x283FA
+0x6465 0x2890C
+0x6466 0x2890A
+0x6467 0x28C2E
+0x6468 0x28C29
+0x6469 0x28C2F
+0x646A 0x28CC5
+0x646B 0x29072
+0x646C 0x291C8
+0x646D 0x2925A
+0x646E 0x29259
+0x646F 0x29389
+0x6470 0x29388
+0x6471 0x299DB
+0x6472-0x6473 0x299D9
+0x6474 0x29ABC
+0x6475 0x4BEC
+0x6476 0x29C06
+0x6477 0x29C05
+0x6478 0x29C6F
+0x6479 0x29C6D
+0x647A 0x29C70
+0x647B 0x29F60
+0x647C 0x29F5E
+0x647D 0x29F63
+0x647E 0x29F5A
+0x6521 0x29F5F
+0x6522 0x2A219
+0x6523 0x2A21D
+0x6524 0x2A21B
+0x6525 0x2A222
+0x6526 0x2A21C
+0x6527 0x2A21E
+0x6528 0x2A2F7
+0x6529 0x2A384
+0x652A 0x2A415
+0x652B 0x2A4B8
+0x652C 0x2A4C1
+0x652D 0x2A501
+0x652E 0x2A50A
+0x652F 0x2A5D2
+0x6530 0x2A675
+0x6531 0x2A674
+0x6532 0x2A672
+0x6533 0x20AD0
+0x6534 0x21B1B
+0x6535 0x22010
+0x6536 0x22379
+0x6537 0x244ED
+0x6538 0x24BB9
+0x6539 0x24F24
+0x653A 0x24FC5
+0x653B 0x25603
+0x653C 0x2634A
+0x653D 0x268F7
+0x653E-0x653F 0x269C1
+0x6540 0x27194
+0x6541-0x6542 0x27599
+0x6543 0x2795A
+0x6544 0x27BA8
+0x6545 0x27C25
+0x6546 0x27C9E
+0x6547 0x28441
+0x6548-0x6549 0x28C32
+0x654A 0x291CB
+0x654B 0x291CA
+0x654C 0x291CC
+0x654D 0x29593
+0x654E 0x299E0
+0x654F 0x29C71
+0x6550 0x29F6B
+0x6551 0x2A22B
+0x6552 0x2A229
+0x6553 0x2A21A
+0x6554-0x6555 0x2A226
+0x6556 0x2A22A
+0x6557 0x2A2F8
+0x6558 0x2503D
+0x6559 0x2A676
+0x655A 0x21518
+0x655B 0x2387A
+0x655C 0x2417F
+0x655D 0x4279
+0x655E 0x263F0
+0x655F 0x2719A
+0x6560 0x27196
+0x6561 0x2759E
+0x6562 0x2759D
+0x6563 0x275DC
+0x6564 0x277DA
+0x6565 0x2820B
+0x6566 0x28402
+0x6567 0x28442
+0x6568 0x28667
+0x6569 0x2938B
+0x656A 0x299E2
+0x656B 0x29F71
+0x656C 0x2A22F
+0x656D 0x2A22E
+0x656E 0x2A4C6
+0x656F 0x2A58E
+0x6570 0x2A67B
+0x6571-0x6572 0x2A677
+0x6573 0x2A67C
+0x6574 0x2387C
+0x6575 0x26207
+0x6576 0x27197
+0x6577 0x27BD9
+0x6578-0x6579 0x2890D
+0x657A-0x657B 0x299E3
+0x657C 0x29AF3
+0x657D 0x29C75
+0x657E 0x2A237
+0x6621 0x2A235
+0x6622 0x2A58F
+0x6623 0x2A680
+0x6624 0x2A67F
+0x6625 0x2A6D4
+0x6626 0x22EB4
+0x6627 0x2A3EC
+0x6628 0x28F75
+0x6629 0x24D10
+0x662A 0x26269
+0x662B 0x275A4
+0x662C 0x277DB
+0x662D 0x291D1
+0x662E 0x2938D
+0x662F 0x29F76
+0x6630 0x2A239
+0x6631 0x2A684
+0x6632 0x2A682
+0x6633 0x20AD2
+0x6634 0x244EE
+0x6635 0x24D11
+0x6636 0x25F84
+0x6637 0x28F74
+0x6638 0x2938F
+0x6639 0x2938E
+0x663A 0x2A23B
+0x663B 0x208CB
+0x663C 0x2A688
+0x663D 0x2A686
+0x663E 0x2335C
+0x663F 0x253A4
+0x6640 0x29075
+0x6641 0x2A68B
+0x6642 0x21519
+0x6643 0x27C9F
+0x6644 0x299E5
+0x6645 0x2A240
+0x6646 0x24D12
+0x6647 0x2A2FB
+0x6648 0x2A68C
+0x6649 0x253A5
+0x664A-0x664B 0x29C77
+0x664C 0x2A6D6
+0x664D 0x277DF
+0x664E 0x291D2
+0x664F 0x2151A
+0x6650 0x27BA9
+0x6651 0x291D3
+0x6652 0x2A4CA
+0x6653 0x269C4
+0x6654 0x278B1
+0x6655 0x29664
diff --git a/etc/charsets/CNS-F.map b/etc/charsets/CNS-F.map
new file mode 100644 (file)
index 0000000..5660127
--- /dev/null
@@ -0,0 +1,3465 @@
+# Generated from glibc-2.3.2/localedata/charmaps/EUC-TW
+0x2121 0x20002
+0x2122 0x2008C
+0x2123 0x200D4
+0x2124 0x201A5
+0x2125-0x2126 0x20092
+0x2127-0x2128 0x200D8
+0x2129 0x201A7
+0x212A-0x212C 0x2062B
+0x212D 0x20630
+0x212E 0x2062E
+0x212F 0x206AB
+0x2130 0x5301
+0x2131 0x2092D
+0x2132 0x2096D
+0x2133 0x2F834
+0x2134 0x20A0F
+0x2136 0x20B9D
+0x2137 0x211A2
+0x2138 0x215D4
+0x2139 0x21B56
+0x213A 0x21BC3
+0x213B 0x22014
+0x213D 0x2471A
+0x213E-0x213F 0x2000F
+0x2140-0x2141 0x2009A
+0x2143 0x201AC
+0x2144 0x3436
+0x2145 0x20097
+0x2146 0x20546
+0x2147 0x434F
+0x2148-0x2149 0x20576
+0x214A 0x205AE
+0x214B 0x2063A
+0x214C 0x2067D
+0x214D 0x21BC5
+0x214E 0x20BA8
+0x2150 0x53FA
+0x2151-0x2152 0x21241
+0x2153-0x2154 0x215D8
+0x2155-0x2156 0x216AA
+0x2157 0x21942
+0x2158 0x21941
+0x2159 0x9F99
+0x215A 0x21BC6
+0x215C-0x215E 0x21D35
+0x215F 0x2F883
+0x2160 0x2634D
+0x2162 0x221B5
+0x2163 0x22317
+0x2164 0x22482
+0x2165 0x233B6
+0x2166 0x6C49
+0x2167 0x23C72
+0x2168 0x2455C
+0x2169 0x245A8
+0x216A 0x8FB7
+0x216B 0x215E3
+0x216C 0x3406
+0x216E 0x200E6
+0x216F-0x2170 0x20144
+0x2171 0x4F29
+0x2172 0x343E
+0x2173-0x2179 0x201C4
+0x217A 0x201D4
+0x217B 0x2057D
+0x217C 0x26272
+0x217D 0x205B2
+0x217E 0x205B4
+0x2221 0x20682
+0x2222-0x2223 0x206C7
+0x2225-0x2228 0x2083C
+0x2229 0x2F824
+0x222A 0x208D3
+0x222B 0x20147
+0x222C 0x534E
+0x222D 0x20A3D
+0x222E 0x20AE2
+0x222F-0x2230 0x20BB8
+0x2231 0x20BC2
+0x2232 0x20BBA
+0x2233 0x20BC6
+0x2234 0x20BBB
+0x2235 0x211AD
+0x2236-0x2237 0x2124C
+0x2239-0x223C 0x216B2
+0x223D-0x2241 0x219C3
+0x2243 0x21BCE
+0x2244 0x21C30
+0x2245-0x2246 0x21D47
+0x2247 0x5C81
+0x2248 0x2205C
+0x224A 0x2205F
+0x224B-0x224C 0x22318
+0x224D 0x2237E
+0x224E 0x5F10
+0x224F 0x225B0
+0x2250 0x22A75
+0x2251 0x6268
+0x2252 0x22A76
+0x2253 0x23041
+0x2254 0x23142
+0x2256 0x233BD
+0x2257 0x6742
+0x2258 0x6740
+0x2259 0x51EA
+0x225A-0x225B 0x23B1E
+0x225C 0x23C87
+0x225D 0x6C62
+0x225E 0x23C78
+0x225F-0x2261 0x24188
+0x2262 0x24617
+0x2263 0x24615
+0x2266 0x7391
+0x2267 0x250E5
+0x2268 0x25609
+0x2269 0x2573B
+0x226A 0x2574F
+0x226C-0x226D 0x2662E
+0x226E 0x26AFF
+0x226F-0x2270 0x26AFD
+0x2271-0x2272 0x8FBB
+0x2274 0x20023
+0x2275 0x200EA
+0x2276 0x2012A
+0x2277-0x2279 0x20149
+0x227A-0x227D 0x201DF
+0x227E 0x205C1
+0x2321-0x2323 0x201E3
+0x2324 0x205C0
+0x2325 0x201E6
+0x2326 0x201F7
+0x2328-0x232C 0x201E7
+0x232D 0x2050E
+0x232E-0x232F 0x20580
+0x2330-0x2333 0x205BA
+0x2334-0x2335 0x2063F
+0x2336 0x20688
+0x2337 0x2F81F
+0x2338 0x20846
+0x233A-0x233B 0x20847
+0x233C 0x20936
+0x233D 0x20972
+0x233E 0x20996
+0x233F 0x20A47
+0x2340 0x20AE7
+0x2341-0x2344 0x20B34
+0x2345-0x2347 0x20BE3
+0x2348 0x20BEB
+0x2349 0x3575
+0x234A-0x234C 0x20BE6
+0x234F 0x211B9
+0x2350 0x56E8
+0x2351 0x211BA
+0x2352 0x575B
+0x2353-0x2354 0x21263
+0x2356 0x21265
+0x2358 0x21266
+0x2359 0x2127C
+0x235A 0x21267
+0x235B 0x2F85A
+0x235C 0x21559
+0x235D-0x2363 0x215E9
+0x2364 0x216BF
+0x2365 0x216CB
+0x2366 0x216C3
+0x2367 0x216D5
+0x2368-0x2369 0x216C4
+0x236A 0x216D3
+0x236B-0x236F 0x216C6
+0x2370 0x2194A
+0x2372 0x219D1
+0x2373 0x21B61
+0x2374 0x21C37
+0x2376 0x21D64
+0x2377 0x21D66
+0x2378 0x5C99
+0x2379-0x237B 0x21D67
+0x237C 0x5C97
+0x237D 0x21D73
+0x237E 0x21D6A
+0x2421 0x21D6B
+0x2422 0x6762
+0x2424 0x22072
+0x2425 0x383C
+0x2426 0x221B9
+0x2427 0x2231C
+0x2428 0x22336
+0x2429 0x223BC
+0x242A-0x242C 0x223BE
+0x242D 0x22487
+0x242E-0x242F 0x225DC
+0x2430 0x225F5
+0x2431-0x2432 0x225DE
+0x2433 0x2F89E
+0x2434-0x2436 0x225E0
+0x2437-0x2438 0x22A2C
+0x2439 0x62A4
+0x243A 0x22AA9
+0x243B-0x2441 0x22A9C
+0x2443-0x2444 0x22AA3
+0x2445 0x22AA7
+0x2446 0x23042
+0x2447 0x23093
+0x2448 0x23151
+0x244A 0x23152
+0x244B 0x23144
+0x244C 0x23153
+0x244D 0x23322
+0x244E-0x244F 0x233C6
+0x2450 0x233C9
+0x2451 0x2F8DD
+0x2452 0x233CA
+0x2453 0x6766
+0x2454 0x233C8
+0x2455-0x2457 0x23B24
+0x2459-0x245A 0x23B27
+0x245C 0x23C58
+0x245D 0x2F8FB
+0x245E 0x23CA7
+0x245F-0x2460 0x23C88
+0x2461 0x23CA5
+0x2462-0x2467 0x23CA8
+0x2468 0x6CA3
+0x2469 0x23C79
+0x246B-0x246D 0x24194
+0x246E 0x3DA5
+0x2470 0x24197
+0x2471 0x707F
+0x2472 0x24198
+0x2473-0x2474 0x2454E
+0x2475 0x24619
+0x2477 0x24741
+0x2478 0x2F92A
+0x2479 0x248F7
+0x247A 0x24C04
+0x247B 0x24C19
+0x247C 0x24C17
+0x247D 0x25040
+0x247E 0x250EC
+0x2521-0x2522 0x2541B
+0x2523 0x77F6
+0x2524 0x2560E
+0x2525 0x25752
+0x2526 0x25AD8
+0x2527 0x25E26
+0x2528 0x26274
+0x252A 0x26275
+0x252B 0x269C6
+0x252C-0x2531 0x26B0B
+0x2532 0x8FC8
+0x2533-0x2534 0x28459
+0x2535-0x2537 0x28683
+0x2539 0x95F5
+0x253A-0x253E 0x28E20
+0x253F 0x28E29
+0x2540 0x200F4
+0x2542 0x2158F
+0x2543 0x20151
+0x2544 0x4FAB
+0x2545-0x2546 0x20217
+0x2547 0x2025B
+0x2548-0x2549 0x20219
+0x254A 0x3453
+0x254B-0x2551 0x2021B
+0x2552 0x2048B
+0x2553 0x20488
+0x2554 0x5C2D
+0x2555 0x20585
+0x2556 0x26287
+0x2557 0x205C7
+0x2558-0x2559 0x2064C
+0x255A-0x255D 0x206FC
+0x2560-0x2563 0x20856
+0x2564-0x2565 0x208DC
+0x2566 0x20973
+0x2567 0x2099D
+0x2568 0x209A1
+0x2569-0x256B 0x2099E
+0x256C 0x209E6
+0x256D-0x256E 0x20A51
+0x256F 0x20B3D
+0x2570 0x20C22
+0x2571 0x549C
+0x2572-0x257A 0x20C23
+0x257C 0x20C40
+0x257D-0x257E 0x20C2C
+0x2621-0x2623 0x20C2E
+0x2624 0x211D0
+0x2625 0x212A8
+0x2626-0x262A 0x21294
+0x262B 0x2129C
+0x262C 0x2129B
+0x262E 0x212A1
+0x262F 0x212A0
+0x2630-0x2631 0x21299
+0x2632 0x212A7
+0x2633 0x5788
+0x2634 0x21564
+0x2636-0x2637 0x21600
+0x263A 0x216E5
+0x263B 0x216E9
+0x263C-0x263D 0x216FB
+0x263E-0x2643 0x216EA
+0x2644 0x216FA
+0x2645-0x2649 0x216F0
+0x264A-0x264D 0x21952
+0x264E 0x21958
+0x264F 0x21956
+0x2651-0x2652 0x219DD
+0x2653 0x219E3
+0x2654-0x2655 0x219DF
+0x2656-0x2657 0x21B22
+0x2658 0x21B68
+0x2659 0x21BDF
+0x265A 0x34AC
+0x265B 0x21C44
+0x265C-0x2661 0x21D94
+0x2662 0x2F879
+0x2663-0x2664 0x21D9A
+0x2665-0x2668 0x21D9D
+0x2669 0x21FF3
+0x266A 0x21FF2
+0x266B 0x2201F
+0x266C 0x22088
+0x266D-0x266E 0x2218F
+0x2670-0x2674 0x221FD
+0x2675 0x2261A
+0x2677-0x267B 0x225E3
+0x267C 0x225EB
+0x267D-0x267E 0x225E8
+0x2721 0x225EA
+0x2722 0x2261D
+0x2723 0x229A4
+0x2724 0x229A3
+0x2725 0x22AD4
+0x2726-0x272D 0x22AC6
+0x272E 0x39DE
+0x272F 0x22ACE
+0x2730 0x62C3
+0x2731-0x2733 0x22EB8
+0x2734 0x2306E
+0x2735-0x2736 0x230DB
+0x2737-0x273D 0x23168
+0x273E 0x6619
+0x273F-0x2740 0x23324
+0x2742 0x23400
+0x2743 0x233E5
+0x2744 0x233F9
+0x2745-0x2747 0x233E7
+0x2748 0x233FE
+0x2749-0x274B 0x233EA
+0x274C 0x3B49
+0x274D 0x233ED
+0x274E 0x67A1
+0x274F 0x233EE
+0x2750 0x67A6
+0x2751 0x233EF
+0x2753 0x23417
+0x2754-0x2755 0x233F0
+0x2756 0x23894
+0x2757-0x2759 0x2395B
+0x275A 0x23B2F
+0x275B 0x3C91
+0x275C-0x275F 0x23B30
+0x2760-0x2762 0x23CCC
+0x2763-0x2765 0x23CAE
+0x2766 0x3CD3
+0x2767-0x276B 0x23CCF
+0x276D 0x23CD4
+0x276E 0x3DA9
+0x276F-0x2771 0x241A6
+0x2772 0x241B0
+0x2773-0x2777 0x241A9
+0x2778-0x2779 0x244FB
+0x277B-0x277C 0x2462D
+0x277D 0x24650
+0x277E 0x2462F
+0x2821 0x24630
+0x2822 0x24765
+0x2823 0x248E6
+0x2824 0x2490C
+0x2825-0x2829 0x24902
+0x282B 0x24BC0
+0x282C-0x282D 0x24C24
+0x282E 0x24D16
+0x282F 0x24D32
+0x2830-0x2833 0x25420
+0x2834 0x77FE
+0x2835 0x25425
+0x2836 0x25619
+0x2837 0x25624
+0x2838-0x283B 0x2561A
+0x283C 0x2F952
+0x283D 0x2561E
+0x283E-0x2842 0x2575A
+0x2843 0x25931
+0x2845 0x25E29
+0x2847-0x2848 0x25F88
+0x2849 0x26289
+0x284A 0x7F57
+0x284B 0x26356
+0x284C 0x264D1
+0x284D 0x264E6
+0x284E-0x284F 0x26532
+0x2850-0x2851 0x26652
+0x2852 0x43D5
+0x2853-0x2854 0x26654
+0x2857-0x285B 0x26B29
+0x285C 0x2F992
+0x285D-0x2862 0x26B2E
+0x2863 0x82C5
+0x2864 0x26B34
+0x2865 0x2719B
+0x2866-0x2867 0x27223
+0x2869 0x27225
+0x286A 0x27227
+0x286B 0x27616
+0x286C 0x27CA0
+0x286D 0x2846F
+0x286E 0x8FDF
+0x286F-0x2870 0x28470
+0x2871 0x8FDC
+0x2872 0x488C
+0x2873-0x2875 0x28472
+0x2876 0x2869C
+0x2877 0x286AA
+0x2878-0x2879 0x2869D
+0x287A 0x4099
+0x287B 0x286AB
+0x287C 0x2869F
+0x287D 0x28E35
+0x287E 0x28E38
+0x2921 0x2A38D
+0x2922-0x2923 0x20035
+0x2924 0x25AEE
+0x2925 0x200B4
+0x2926 0x2A6C9
+0x2927 0x20132
+0x2928 0x20155
+0x2929-0x292C 0x20244
+0x292D 0x4FE4
+0x292E-0x292F 0x20248
+0x2931-0x2938 0x2024A
+0x2939 0x26299
+0x293A 0x205D1
+0x293C-0x293F 0x205D2
+0x2940-0x2942 0x20721
+0x2943-0x2945 0x20868
+0x2946 0x208E2
+0x2947 0x20945
+0x2948-0x294B 0x209EC
+0x294D-0x294E 0x20A62
+0x294F 0x20AF4
+0x2950 0x2006F
+0x2951-0x2952 0x20B44
+0x2953 0x20C79
+0x2954 0x551B
+0x2955-0x295B 0x20C7A
+0x295C 0x3588
+0x295E-0x2964 0x20C81
+0x2965 0x20C8F
+0x2966-0x2967 0x20C88
+0x2968-0x2969 0x212C5
+0x296A 0x57AA
+0x296B-0x2970 0x212C7
+0x2971 0x57AB
+0x2972-0x2973 0x212CD
+0x2974 0x212E3
+0x2975-0x2979 0x212CF
+0x297A 0x212C4
+0x297B-0x297D 0x212D4
+0x297E 0x21520
+0x2A21 0x21521
+0x2A22 0x2161A
+0x2A23 0x21612
+0x2A24-0x2A26 0x21614
+0x2A27 0x21619
+0x2A28-0x2A29 0x21617
+0x2A2A 0x36C9
+0x2A2B 0x2F861
+0x2A2D-0x2A34 0x21712
+0x2A35-0x2A37 0x21961
+0x2A38 0x219F5
+0x2A39 0x5BA9
+0x2A3A-0x2A3C 0x219F6
+0x2A3D 0x21B29
+0x2A3E 0x3917
+0x2A3F 0x21C5D
+0x2A40-0x2A44 0x21C57
+0x2A45 0x21DBB
+0x2A46 0x21DD1
+0x2A47-0x2A48 0x21DBC
+0x2A49 0x268DF
+0x2A4A 0x21DD0
+0x2A4B-0x2A51 0x21DBE
+0x2A52 0x26B6C
+0x2A53-0x2A55 0x220A1
+0x2A56 0x22193
+0x2A57 0x2220D
+0x2A58 0x2220F
+0x2A59 0x2220E
+0x2A5A-0x2A5C 0x22210
+0x2A5D 0x2F895
+0x2A5E 0x224E5
+0x2A5F 0x2262F
+0x2A61 0x22657
+0x2A62 0x22630
+0x2A63 0x22668
+0x2A64 0x2262B
+0x2A65 0x22631
+0x2A66 0x22658
+0x2A67 0x2F8A2
+0x2A68 0x22632
+0x2A69 0x22659
+0x2A6B 0x2265A
+0x2A6C 0x22633
+0x2A6D-0x2A6F 0x2265B
+0x2A70 0x2261E
+0x2A71-0x2A72 0x229AE
+0x2A73-0x2A75 0x22A3B
+0x2A76-0x2A7E 0x22B07
+0x2B21 0x22B10
+0x2B22 0x22B22
+0x2B23-0x2B2A 0x22B11
+0x2B2B 0x2F8B8
+0x2B2D-0x2B2F 0x23046
+0x2B30 0x230E1
+0x2B31 0x23181
+0x2B32 0x23183
+0x2B33 0x20C75
+0x2B35-0x2B36 0x23185
+0x2B37 0x2332A
+0x2B38 0x2F8D1
+0x2B39 0x2332B
+0x2B3A 0x2336B
+0x2B3B-0x2B3D 0x23418
+0x2B3F-0x2B47 0x2341B
+0x2B48 0x6811
+0x2B49-0x2B4F 0x23424
+0x2B50 0x239EF
+0x2B51-0x2B5C 0x23B49
+0x2B5D 0x23B5A
+0x2B5E 0x23B55
+0x2B5F 0x23C5F
+0x2B60-0x2B63 0x23D02
+0x2B64 0x23CD5
+0x2B65-0x2B66 0x23D06
+0x2B67 0x23CD6
+0x2B68-0x2B6B 0x23D08
+0x2B6C 0x23CD7
+0x2B6D-0x2B6E 0x23D0C
+0x2B6F-0x2B79 0x241C8
+0x2B7A 0x7551
+0x2B7B-0x2B7E 0x241D3
+0x2C21 0x241D7
+0x2C22 0x241E2
+0x2C23 0x241D8
+0x2C24-0x2C26 0x24504
+0x2C28-0x2C29 0x24643
+0x2C2A 0x24784
+0x2C2B 0x2478F
+0x2C2C-0x2C2D 0x24785
+0x2C2E 0x2492F
+0x2C2F-0x2C31 0x2491A
+0x2C32 0x3EBD
+0x2C33-0x2C38 0x2491D
+0x2C39 0x2F92C
+0x2C3A-0x2C3B 0x24923
+0x2C3C 0x2490E
+0x2C3D 0x24925
+0x2C3E-0x2C3F 0x2492B
+0x2C40 0x2490B
+0x2C41 0x24AEE
+0x2C43 0x24BC3
+0x2C44-0x2C45 0x24BD8
+0x2C46-0x2C49 0x24C38
+0x2C4A 0x7553
+0x2C4B-0x2C4F 0x24C3C
+0x2C50 0x24D48
+0x2C51 0x24D4C
+0x2C52 0x24F28
+0x2C53-0x2C54 0x24F51
+0x2C55 0x2504C
+0x2C56 0x25123
+0x2C57 0x2F945
+0x2C58 0x25124
+0x2C59-0x2C5B 0x25431
+0x2C5C 0x7818
+0x2C5D-0x2C5F 0x25434
+0x2C60 0x25440
+0x2C61 0x25437
+0x2C63 0x25438
+0x2C64 0x2543D
+0x2C65-0x2C69 0x25638
+0x2C6A 0x2564C
+0x2C6B-0x2C6C 0x25773
+0x2C6D 0x4133
+0x2C6E-0x2C6F 0x25775
+0x2C70 0x25779
+0x2C71-0x2C73 0x25941
+0x2C74 0x25A5B
+0x2C76 0x7AD7
+0x2C77 0x238A6
+0x2C78 0x25A5C
+0x2C79-0x2C7C 0x25AE5
+0x2C7D 0x25AED
+0x2C7E 0x25E30
+0x2D21 0x7C7E
+0x2D22 0x25E31
+0x2D23 0x25F94
+0x2D24 0x26351
+0x2D25-0x2D26 0x263FD
+0x2D27 0x264E9
+0x2D29 0x266B3
+0x2D2A 0x26684
+0x2D2B 0x26694
+0x2D2D 0x2669C
+0x2D2F 0x26685
+0x2D30 0x26900
+0x2D31 0x26937
+0x2D32 0x26957
+0x2D33 0x26B54
+0x2D34 0x26B68
+0x2D35 0x26B55
+0x2D36 0x26B5C
+0x2D37-0x2D3C 0x26B56
+0x2D3D 0x27234
+0x2D3E 0x867E
+0x2D3F 0x27235
+0x2D41 0x27239
+0x2D42-0x2D44 0x27236
+0x2D45 0x275E5
+0x2D46 0x27659
+0x2D48-0x2D49 0x2763A
+0x2D4A 0x27D28
+0x2D4B 0x27E89
+0x2D4D-0x2D50 0x27E8A
+0x2D51 0x27FBC
+0x2D52 0x282A3
+0x2D53 0x4844
+0x2D54 0x282A4
+0x2D55-0x2D59 0x28493
+0x2D5A 0x286B9
+0x2D5B-0x2D5D 0x28E4F
+0x2D5E 0x29076
+0x2D60 0x200FB
+0x2D61 0x20083
+0x2D62 0x20138
+0x2D63 0x2015D
+0x2D64 0x20271
+0x2D66-0x2D67 0x20277
+0x2D68 0x2F807
+0x2D69 0x202C3
+0x2D6A-0x2D6D 0x20279
+0x2D6E 0x20272
+0x2D6F 0x2027D
+0x2D70 0x202A0
+0x2D71-0x2D76 0x2027E
+0x2D77 0x2029E
+0x2D78-0x2D7C 0x20284
+0x2D7D-0x2D7E 0x20493
+0x2E21 0x20495
+0x2E22-0x2E23 0x204EF
+0x2E25 0x2058D
+0x2E26-0x2E29 0x2058F
+0x2E2A 0x205DE
+0x2E2B 0x205E1
+0x2E2C 0x20653
+0x2E2D 0x5266
+0x2E2E-0x2E30 0x2074A
+0x2E31 0x20751
+0x2E32 0x2074D
+0x2E33 0x20748
+0x2E34-0x2E35 0x20874
+0x2E36-0x2E37 0x20920
+0x2E38-0x2E39 0x209A5
+0x2E3A-0x2E3B 0x20A73
+0x2E3C-0x2E3F 0x20B50
+0x2E40-0x2E41 0x20CDB
+0x2E42 0x5520
+0x2E43-0x2E44 0x20CDD
+0x2E45 0x20CFF
+0x2E48-0x2E49 0x20CDF
+0x2E4A 0x5521
+0x2E4B-0x2E54 0x20CE1
+0x2E55-0x2E5B 0x21307
+0x2E5C 0x57D7
+0x2E5D 0x2131A
+0x2E5E-0x2E60 0x2130E
+0x2E61 0x2131C
+0x2E62 0x21527
+0x2E63 0x21566
+0x2E64-0x2E65 0x21598
+0x2E66 0x21633
+0x2E67-0x2E69 0x21624
+0x2E6B 0x36E1
+0x2E6C 0x2173E
+0x2E6D 0x2F864
+0x2E6E 0x2173F
+0x2E6F 0x21757
+0x2E70-0x2E71 0x21740
+0x2E72 0x21758
+0x2E73-0x2E77 0x21742
+0x2E78 0x36E2
+0x2E79 0x21747
+0x2E7A-0x2E7B 0x2196B
+0x2E7C-0x2E7D 0x21A10
+0x2E7E 0x5BBE
+0x2F21 0x21B75
+0x2F22 0x21BEF
+0x2F23-0x2F24 0x21C6A
+0x2F26-0x2F28 0x21C6C
+0x2F29-0x2F2F 0x21DEF
+0x2F30 0x21DFF
+0x2F31 0x21DF6
+0x2F32 0x21E02
+0x2F33 0x21DF7
+0x2F34 0x22022
+0x2F35 0x220C4
+0x2F36 0x220C3
+0x2F37 0x22228
+0x2F38 0x387C
+0x2F39 0x22320
+0x2F3A 0x22325
+0x2F3B-0x2F3C 0x22322
+0x2F3D 0x223EB
+0x2F3E 0x38E3
+0x2F3F-0x2F40 0x224F9
+0x2F41-0x2F43 0x22699
+0x2F44 0x22663
+0x2F46-0x2F48 0x2265E
+0x2F49 0x2269C
+0x2F4A 0x22661
+0x2F4B 0x2269D
+0x2F4C-0x2F52 0x22B54
+0x2F53 0x22B19
+0x2F54 0x22B6A
+0x2F55-0x2F57 0x22B5B
+0x2F58 0x22B66
+0x2F5A-0x2F5B 0x22B5E
+0x2F5C 0x22B1A
+0x2F5D-0x2F5E 0x22B60
+0x2F60 0x22B62
+0x2F61 0x22B1B
+0x2F62 0x22B63
+0x2F63-0x2F64 0x26410
+0x2F65 0x2304C
+0x2F66 0x2309B
+0x2F67-0x2F6A 0x230EB
+0x2F6B 0x231A3
+0x2F6C 0x231A8
+0x2F6D 0x231A6
+0x2F6E 0x3AEC
+0x2F6F-0x2F73 0x2332F
+0x2F74 0x2344F
+0x2F75-0x2F76 0x23451
+0x2F77 0x2347D
+0x2F78-0x2F7E 0x23453
+0x3021-0x3023 0x2345A
+0x3024 0x6857
+0x3025-0x3027 0x2345D
+0x3028 0x2346F
+0x3029-0x302C 0x23460
+0x302D 0x23472
+0x302E 0x23464
+0x3030 0x2346E
+0x3031 0x238B5
+0x3032-0x3039 0x23B65
+0x303A 0x23D0E
+0x303B 0x23D43
+0x303D 0x23D0F
+0x303E-0x3043 0x23D44
+0x3044 0x23D10
+0x3045-0x3048 0x23D4A
+0x3049 0x3CDF
+0x304A-0x3056 0x23D4E
+0x3057 0x23D1D
+0x3058-0x305A 0x23D5B
+0x305B 0x2F906
+0x305D-0x3066 0x241FE
+0x3067 0x24218
+0x3068-0x3069 0x24208
+0x306A 0x241F3
+0x306B-0x306C 0x2420A
+0x306D 0x2421B
+0x306E-0x3072 0x2420C
+0x3073 0x2450F
+0x3074 0x24561
+0x3075 0x24579
+0x3076 0x247C1
+0x3077-0x3078 0x247AC
+0x3079-0x307E 0x24943
+0x3121 0x24949
+0x3122 0x24964
+0x3123-0x3126 0x2494A
+0x3127 0x3EC7
+0x3128 0x2F92D
+0x3129 0x24B39
+0x312A-0x312C 0x24C57
+0x312D 0x24C5F
+0x312E 0x24C5A
+0x312F 0x24D6A
+0x3130 0x24F2B
+0x3131-0x3133 0x24F5D
+0x3135-0x3136 0x24F60
+0x3137-0x3138 0x25058
+0x3139-0x313D 0x2514A
+0x313E 0x25457
+0x313F-0x3140 0x253B3
+0x3141 0x2546E
+0x3142-0x3143 0x2545B
+0x3145-0x3146 0x2545D
+0x3148 0x2546C
+0x3149 0x2563D
+0x314A 0x25654
+0x314B 0x2563E
+0x314C-0x314D 0x25655
+0x314E 0x2563F
+0x314F-0x3154 0x25657
+0x3155-0x3156 0x25788
+0x3158-0x315A 0x25958
+0x315C-0x315F 0x25A67
+0x3161-0x3162 0x25A6B
+0x3163-0x316A 0x25AFE
+0x316B-0x316E 0x25E39
+0x3171-0x3177 0x25FB2
+0x3178 0x7F3C
+0x3179 0x262A2
+0x317A-0x317B 0x26361
+0x317C 0x26414
+0x317E 0x264EB
+0x3221 0x26542
+0x3222 0x26548
+0x3224 0x26543
+0x3225 0x2654E
+0x3226-0x3227 0x26544
+0x3228-0x3229 0x266B4
+0x322D 0x266B6
+0x322F 0x268E1
+0x3230 0x26905
+0x3232 0x8273
+0x3233 0x26B9A
+0x3235-0x3239 0x26B9B
+0x323A 0x2F99A
+0x323B-0x323D 0x26BA0
+0x323E 0x26BB5
+0x323F-0x3240 0x26BA3
+0x3242-0x3245 0x26BA5
+0x3246 0x26BAF
+0x3247-0x324B 0x26BA9
+0x324C 0x26BB3
+0x324E 0x271A0
+0x324F 0x27256
+0x3250 0x27634
+0x3251 0x4627
+0x3252 0x2763C
+0x3253 0x2780C
+0x3255 0x27C3E
+0x3256 0x27CA3
+0x3257-0x3258 0x27D30
+0x3259-0x325D 0x27E97
+0x325E 0x282B2
+0x325F-0x3260 0x282AB
+0x3261 0x286FC
+0x3262-0x3264 0x286E8
+0x3265 0x287F1
+0x3266 0x2893F
+0x3267 0x28CCE
+0x3268-0x326E 0x28E6D
+0x326F 0x96BE
+0x3270 0x29078
+0x3271 0x2983A
+0x3272 0x20167
+0x3273 0x66FA
+0x3274-0x3275 0x20164
+0x3276 0x20307
+0x3277-0x327C 0x202C4
+0x327D 0x202E5
+0x327E 0x202CA
+0x3321 0x202CB
+0x3323-0x3327 0x202CC
+0x3328 0x20497
+0x3329-0x332A 0x2049A
+0x332B 0x205EA
+0x332C-0x332D 0x205EC
+0x332E 0x205F7
+0x332F-0x3330 0x205EE
+0x3331-0x3333 0x2065B
+0x3334-0x3335 0x2076D
+0x3337 0x2076F
+0x3338-0x3339 0x20881
+0x333A 0x2094F
+0x333B 0x209AD
+0x333C 0x2870A
+0x333D 0x20A7E
+0x333E 0x20B69
+0x333F-0x3342 0x20D54
+0x3343 0x35AB
+0x3344-0x3349 0x20D58
+0x334C-0x334D 0x20D5E
+0x334E 0x2133B
+0x334F 0x21336
+0x3350-0x3356 0x2133C
+0x3357 0x364B
+0x3358-0x335A 0x21343
+0x335B 0x21337
+0x335E-0x3361 0x21346
+0x3362 0x2152D
+0x3363 0x215A5
+0x3364 0x2163D
+0x3365 0x2163F
+0x3366 0x2196E
+0x3367 0x217E7
+0x3368-0x336F 0x21775
+0x3370 0x2178E
+0x3371-0x3372 0x2177D
+0x3373 0x5A72
+0x3374-0x337E 0x2177F
+0x3421-0x3423 0x2178A
+0x3424-0x3427 0x2196F
+0x3428-0x342F 0x21A2A
+0x3430 0x21B83
+0x3431-0x3432 0x21C84
+0x3433 0x21C93
+0x3435-0x343A 0x21C86
+0x343B 0x21E36
+0x343C-0x343E 0x21E38
+0x343F 0x37E2
+0x3440-0x3444 0x21E3B
+0x3446-0x3448 0x21E40
+0x3449-0x344C 0x220DE
+0x344D-0x3453 0x2224A
+0x3454 0x22327
+0x3455-0x3457 0x223F9
+0x3458-0x345A 0x22498
+0x345C 0x2251E
+0x345D 0x2269E
+0x345E 0x226F7
+0x345F-0x3460 0x2269F
+0x3461 0x226F0
+0x3462-0x3463 0x226F8
+0x3464-0x3468 0x226A1
+0x3469-0x346D 0x226FA
+0x346E 0x2271F
+0x346F-0x3470 0x226FF
+0x3471 0x2278C
+0x3472 0x22701
+0x3473-0x3474 0x229C2
+0x3476 0x229D3
+0x3477 0x22A4E
+0x3478-0x347C 0x22BAF
+0x347D 0x22BC6
+0x347E 0x22BB4
+0x3522-0x352C 0x22BB5
+0x352D 0x22BC1
+0x352E 0x22BC0
+0x352F-0x3530 0x22BC2
+0x3531-0x3535 0x22F51
+0x3536 0x2305A
+0x3537-0x3538 0x23050
+0x3539 0x23078
+0x353A-0x353B 0x230F8
+0x353C 0x231C6
+0x353D-0x3547 0x231CB
+0x3549-0x354A 0x23337
+0x354B 0x23373
+0x354C-0x354D 0x23490
+0x354E 0x234BF
+0x354F-0x3556 0x23492
+0x3557 0x68BD
+0x3558-0x3563 0x2349A
+0x3565-0x3566 0x234A6
+0x3567-0x356E 0x238BF
+0x356F 0x23975
+0x3570 0x23A43
+0x3571 0x23A12
+0x3572 0x23A9F
+0x3573 0x23A91
+0x3574 0x2F8F6
+0x3575-0x3577 0x23A92
+0x3578-0x357C 0x23B7E
+0x357D 0x23C4C
+0x357E 0x23C63
+0x3621-0x3623 0x23DC0
+0x3624 0x2423A
+0x3625-0x3628 0x23DC3
+0x3629 0x6E15
+0x362A 0x23DC7
+0x362C 0x23DC8
+0x362D 0x23D73
+0x362E-0x3632 0x23DC9
+0x3633 0x3D0E
+0x3636-0x363D 0x23DCE
+0x363E-0x3641 0x2423B
+0x3643-0x3647 0x2423F
+0x3648 0x3DC1
+0x3649-0x364A 0x24244
+0x364B 0x24259
+0x364C-0x364E 0x24246
+0x3650 0x24249
+0x3651 0x24513
+0x3652-0x3653 0x24582
+0x3654-0x3655 0x24666
+0x3656 0x24965
+0x3657 0x7413
+0x3658 0x24966
+0x3659 0x3ED9
+0x365A 0x24975
+0x365B 0x24974
+0x365C 0x24967
+0x365D 0x2496D
+0x365E 0x24976
+0x365F-0x3662 0x24968
+0x3663 0x2494F
+0x3664 0x2496C
+0x3665 0x24AF8
+0x3666 0x24B45
+0x3667 0x74F8
+0x3668 0x24B46
+0x3669 0x24BE4
+0x366A 0x24C85
+0x366B-0x366C 0x24C6F
+0x366D-0x366F 0x24D82
+0x3670 0x24D8B
+0x3671 0x24F2D
+0x3672-0x3673 0x24F68
+0x3674 0x24F77
+0x3675 0x24F64
+0x3676 0x24F6A
+0x3678 0x24FF2
+0x3679 0x24FE2
+0x367A-0x367D 0x25063
+0x367E 0x7B3D
+0x3721-0x3722 0x25067
+0x3723 0x76D8
+0x3725 0x25172
+0x3726 0x2517D
+0x3727 0x25369
+0x3728 0x25484
+0x3729-0x372B 0x25486
+0x372C 0x2549E
+0x372E-0x372F 0x25489
+0x3730 0x25496
+0x3731-0x3733 0x2548B
+0x3734 0x25679
+0x3735 0x25683
+0x3736 0x2567A
+0x3737 0x2565D
+0x3738 0x2567B
+0x373A 0x2579F
+0x373B 0x4148
+0x373C-0x373E 0x257A0
+0x373F 0x79FC
+0x3740-0x3744 0x2596A
+0x3745 0x25A78
+0x3747 0x25A79
+0x3748 0x25A7C
+0x3749-0x374C 0x25B21
+0x374D 0x7B39
+0x374E-0x374F 0x25B25
+0x3750-0x3751 0x25E51
+0x3752 0x25E56
+0x3754 0x7D4B
+0x3755 0x25FE1
+0x3758-0x375B 0x25FD6
+0x375C 0x262B5
+0x375D 0x2636C
+0x375E-0x375F 0x2636F
+0x3760-0x3761 0x264BC
+0x3762 0x264ED
+0x3763-0x3766 0x2655B
+0x3767-0x3768 0x26686
+0x3769 0x266ED
+0x376B 0x266EE
+0x376D-0x376E 0x2690E
+0x3770 0x26A2D
+0x3771 0x26A2A
+0x3772 0x26A2E
+0x3773 0x26ACC
+0x3774-0x3777 0x26BF9
+0x3778 0x83B9
+0x3779 0x26BFD
+0x377A 0x26C1B
+0x377B-0x377E 0x26BFE
+0x3821-0x3822 0x26C02
+0x3823 0x26C21
+0x3824-0x3835 0x26C04
+0x3836-0x3839 0x2727B
+0x383A 0x86CF
+0x383B-0x383C 0x2727F
+0x383D 0x27266
+0x383E-0x3840 0x27281
+0x3841 0x275B2
+0x3843 0x2767F
+0x3844 0x27672
+0x3845 0x2765A
+0x3846 0x277EB
+0x3847 0x27815
+0x3849 0x27816
+0x384A 0x2F9CA
+0x384B 0x27817
+0x384D-0x384F 0x278C5
+0x3850-0x3851 0x27988
+0x3853-0x3856 0x2798A
+0x3857 0x27BDF
+0x3859-0x3860 0x27D3B
+0x3861 0x27E5C
+0x3862 0x27EAF
+0x3863-0x3866 0x27EA9
+0x3867 0x27EB5
+0x3868-0x3869 0x27EAD
+0x386A 0x27FE2
+0x386B 0x28224
+0x386C 0x8EAE
+0x386D 0x282C4
+0x386F 0x284EA
+0x3870-0x3872 0x284D3
+0x3873 0x28686
+0x3875 0x28687
+0x3876 0x286FD
+0x3877 0x28805
+0x3878 0x28949
+0x3879 0x28C5F
+0x387A 0x28CD3
+0x387B 0x28CD5
+0x387C-0x387E 0x28E8A
+0x3921-0x3927 0x28E8D
+0x3928-0x3929 0x2907D
+0x392A 0x96EB
+0x392D 0x291EC
+0x392E 0x2925B
+0x392F 0x29C87
+0x3930 0x29C86
+0x3932-0x3933 0x20046
+0x3934 0x20102
+0x3935-0x3937 0x2016D
+0x3938-0x393F 0x2030D
+0x3940-0x3942 0x2049F
+0x3943 0x204A3
+0x3944-0x3945 0x20521
+0x3946 0x2337C
+0x3947-0x3948 0x20595
+0x3949 0x20661
+0x394A 0x20667
+0x394B-0x394E 0x20791
+0x394F-0x3950 0x2088A
+0x3951 0x208F7
+0x3952 0x20924
+0x3953-0x3954 0x209B0
+0x3955 0x20A8E
+0x3956 0x20B04
+0x3957-0x395A 0x20B6A
+0x395B 0x20DE8
+0x395C 0x20E0C
+0x395D-0x395E 0x20DE9
+0x395F 0x20E0D
+0x3961-0x3968 0x20DEB
+0x3969 0x20E16
+0x396A 0x20DF3
+0x396B 0x20E04
+0x396C 0x20E1D
+0x396D-0x3970 0x20DF4
+0x3971 0x55B0
+0x3972-0x3974 0x21202
+0x3975 0x2139A
+0x3976 0x2137C
+0x3977 0x213C5
+0x3978-0x397C 0x2137D
+0x397D 0x5840
+0x397E 0x5842
+0x3A21-0x3A26 0x21382
+0x3A27 0x215AE
+0x3A28 0x2164D
+0x3A29 0x217B0
+0x3A2A 0x217DC
+0x3A2B-0x3A30 0x217B6
+0x3A31 0x217DB
+0x3A32-0x3A34 0x217BC
+0x3A36-0x3A3A 0x217BF
+0x3A3B 0x217CE
+0x3A3C 0x3701
+0x3A3D 0x217D9
+0x3A3E-0x3A3F 0x217C4
+0x3A40 0x217DA
+0x3A41-0x3A45 0x217C6
+0x3A46 0x2197E
+0x3A47 0x2197B
+0x3A48-0x3A4F 0x21A4E
+0x3A50 0x21B8F
+0x3A51 0x21BFC
+0x3A52-0x3A54 0x21CA6
+0x3A55 0x21D23
+0x3A56 0x21E8B
+0x3A58-0x3A5B 0x21E8C
+0x3A5C 0x21EA4
+0x3A5D 0x20599
+0x3A5E 0x22024
+0x3A5F-0x3A61 0x22046
+0x3A62-0x3A63 0x220FD
+0x3A65 0x2226E
+0x3A66 0x2227C
+0x3A67-0x3A6A 0x2226F
+0x3A6B-0x3A6C 0x22329
+0x3A6D 0x2235F
+0x3A6E 0x224A2
+0x3A6F 0x22530
+0x3A70 0x2252B
+0x3A71 0x22761
+0x3A72-0x3A77 0x22702
+0x3A79-0x3A7A 0x22708
+0x3A7B 0x22762
+0x3A7C-0x3A7E 0x2270A
+0x3B21-0x3B22 0x2270D
+0x3B23 0x22763
+0x3B24 0x22727
+0x3B25 0x2270F
+0x3B27 0x2271B
+0x3B28 0x22764
+0x3B29-0x3B2A 0x22710
+0x3B2B 0x22781
+0x3B2C 0x22712
+0x3B2D 0x22765
+0x3B2E 0x22713
+0x3B2F 0x229CE
+0x3B30 0x22C29
+0x3B31 0x22BC4
+0x3B32 0x22C2A
+0x3B34-0x3B3D 0x22C2B
+0x3B3F-0x3B40 0x22C35
+0x3B41 0x22BE3
+0x3B42-0x3B46 0x22C37
+0x3B47 0x22C4D
+0x3B48-0x3B4A 0x22C3C
+0x3B4C-0x3B4D 0x22ED0
+0x3B4E 0x23055
+0x3B4F 0x23102
+0x3B50 0x23104
+0x3B51 0x231FC
+0x3B52 0x23207
+0x3B53-0x3B54 0x231FD
+0x3B56-0x3B57 0x231FF
+0x3B58 0x23208
+0x3B59-0x3B5A 0x23201
+0x3B5B 0x23235
+0x3B5C-0x3B5D 0x23203
+0x3B5F 0x2333B
+0x3B60 0x23389
+0x3B61-0x3B62 0x23381
+0x3B63 0x26733
+0x3B64-0x3B65 0x234EB
+0x3B67-0x3B69 0x234ED
+0x3B6B-0x3B6D 0x234F0
+0x3B6E 0x692B
+0x3B6F 0x234F3
+0x3B70 0x6916
+0x3B71-0x3B72 0x234F4
+0x3B73 0x2004B
+0x3B74-0x3B7E 0x234F6
+0x3C21 0x691B
+0x3C22-0x3C28 0x23501
+0x3C29 0x6927
+0x3C2A-0x3C2F 0x23508
+0x3C30-0x3C31 0x238D7
+0x3C32 0x23A29
+0x3C33 0x23A9C
+0x3C34 0x23AF8
+0x3C35 0x23B98
+0x3C36 0x23BA4
+0x3C37-0x3C39 0x23B99
+0x3C3A 0x23B97
+0x3C3B 0x23B9C
+0x3C3C 0x6BF5
+0x3C3D 0x23B9D
+0x3C3F-0x3C40 0x23B9E
+0x3C41 0x23C65
+0x3C42 0x23DD6
+0x3C43 0x3D20
+0x3C44-0x3C46 0x23E32
+0x3C47 0x6E82
+0x3C48-0x3C4A 0x23E35
+0x3C4B 0x23DD7
+0x3C4D 0x23DD8
+0x3C4E-0x3C56 0x23E38
+0x3C57 0x23DD9
+0x3C58-0x3C59 0x23E41
+0x3C5A 0x3D21
+0x3C5B-0x3C5C 0x23E43
+0x3C5D 0x6E7A
+0x3C5E-0x3C64 0x2427C
+0x3C66-0x3C69 0x24283
+0x3C6A 0x242A5
+0x3C6B-0x3C72 0x24287
+0x3C75 0x2428F
+0x3C77-0x3C7C 0x24290
+0x3C7E 0x7129
+0x3D21 0x24296
+0x3D22-0x3D23 0x24556
+0x3D24 0x245E1
+0x3D25-0x3D26 0x2460E
+0x3D27-0x3D28 0x2467A
+0x3D29 0x2468B
+0x3D2A-0x3D2B 0x247F2
+0x3D2C-0x3D30 0x24993
+0x3D31 0x249AD
+0x3D32 0x24998
+0x3D33 0x249AB
+0x3D34 0x2497B
+0x3D35-0x3D37 0x24999
+0x3D38 0x24985
+0x3D39-0x3D3A 0x2499C
+0x3D3B 0x3EDA
+0x3D3D 0x249AC
+0x3D3E 0x24979
+0x3D3F 0x2499E
+0x3D40 0x249A4
+0x3D41 0x24AFD
+0x3D42 0x24BEB
+0x3D43 0x24BEA
+0x3D44-0x3D45 0x24C8F
+0x3D46-0x3D48 0x24C86
+0x3D49-0x3D4A 0x24DAC
+0x3D4B 0x24FEC
+0x3D4C-0x3D4D 0x25073
+0x3D4F-0x3D51 0x251AA
+0x3D52 0x253D1
+0x3D53 0x253D7
+0x3D54-0x3D57 0x254B9
+0x3D58-0x3D5A 0x2568E
+0x3D5B 0x2567C
+0x3D5C-0x3D5F 0x25691
+0x3D60 0x2F954
+0x3D61 0x2569A
+0x3D62-0x3D64 0x25695
+0x3D65 0x257BD
+0x3D66 0x257C7
+0x3D67 0x257BE
+0x3D69 0x257BF
+0x3D6B 0x25993
+0x3D6C 0x21A5E
+0x3D6D-0x3D70 0x25A86
+0x3D71-0x3D76 0x25B41
+0x3D77 0x25B4A
+0x3D78-0x3D7A 0x25B47
+0x3D7B 0x25E6B
+0x3D7C 0x25E66
+0x3D7E 0x25E67
+0x3E21 0x7CAB
+0x3E22 0x25E68
+0x3E23 0x7CAC
+0x3E25-0x3E2E 0x25FFD
+0x3E2F 0x26233
+0x3E30 0x262C2
+0x3E31 0x262D0
+0x3E32 0x2F974
+0x3E33-0x3E34 0x26395
+0x3E35-0x3E36 0x26435
+0x3E37-0x3E3A 0x26567
+0x3E3B 0x26572
+0x3E3C-0x3E40 0x2656B
+0x3E41 0x26722
+0x3E44 0x26723
+0x3E45 0x26741
+0x3E46-0x3E4B 0x26724
+0x3E4C 0x266B7
+0x3E50 0x269DA
+0x3E51 0x26ACF
+0x3E52 0x26ADA
+0x3E53 0x26C89
+0x3E54 0x26CB7
+0x3E55-0x3E56 0x26C8A
+0x3E57 0x26D5E
+0x3E58 0x26C8C
+0x3E5A-0x3E61 0x26C8D
+0x3E62 0x26CB6
+0x3E63-0x3E65 0x26C95
+0x3E66 0x83F7
+0x3E68-0x3E6A 0x26C98
+0x3E6B 0x44EA
+0x3E6D 0x26C9B
+0x3E6E 0x26CBD
+0x3E6F-0x3E72 0x26C9C
+0x3E73 0x26CC0
+0x3E74-0x3E7E 0x26CA0
+0x3F22-0x3F24 0x271B4
+0x3F25-0x3F27 0x272B9
+0x3F28 0x27291
+0x3F29 0x272BC
+0x3F2A-0x3F2B 0x275EE
+0x3F2C-0x3F2D 0x27696
+0x3F2E 0x27673
+0x3F2F-0x3F30 0x27698
+0x3F31-0x3F32 0x277ED
+0x3F33 0x278DE
+0x3F34-0x3F3A 0x279B0
+0x3F3B 0x2F9CE
+0x3F3C 0x279B7
+0x3F3D 0x27BE3
+0x3F3E 0x27CB9
+0x3F3F 0x27D55
+0x3F40 0x27D7E
+0x3F41-0x3F45 0x27D56
+0x3F47-0x3F4C 0x27EC4
+0x3F4D 0x27EEE
+0x3F4E 0x27ECF
+0x3F4F-0x3F51 0x27ECA
+0x3F52 0x28009
+0x3F53 0x2F9DA
+0x3F54 0x28003
+0x3F55-0x3F58 0x2822F
+0x3F59-0x3F5D 0x2850E
+0x3F5F-0x3F61 0x28513
+0x3F62 0x284FF
+0x3F63-0x3F65 0x2871F
+0x3F66 0x2872D
+0x3F68-0x3F6B 0x2881B
+0x3F6C-0x3F6F 0x28953
+0x3F70 0x28964
+0x3F71 0x28959
+0x3F72 0x28957
+0x3F74 0x28958
+0x3F75 0x28C6B
+0x3F76 0x4989
+0x3F78-0x3F7D 0x28CE7
+0x3F7E 0x9596
+0x4021 0x28CED
+0x4022 0x28EB1
+0x4023 0x28EB4
+0x4025 0x2908A
+0x4026 0x2908D
+0x4027 0x2908C
+0x4028-0x4029 0x291F2
+0x402B 0x22108
+0x402C 0x29417
+0x402D 0x4AB2
+0x402E 0x2959F
+0x402F 0x296A0
+0x4031 0x2986D
+0x4032 0x2307D
+0x4033 0x29F90
+0x4034 0x2A5C4
+0x4035 0x2004C
+0x4036-0x4038 0x20174
+0x4039-0x4046 0x20349
+0x4047 0x204A4
+0x4048 0x204A9
+0x4049-0x404A 0x2052A
+0x404B 0x207B3
+0x404C 0x207C1
+0x404D 0x20898
+0x404E-0x404F 0x208FB
+0x4050 0x209BC
+0x4051 0x20A96
+0x4052 0x20B0A
+0x4054 0x20EA2
+0x4056-0x4061 0x20E81
+0x4062 0x55F1
+0x4063 0x20E8D
+0x4064 0x20ED1
+0x4065 0x21214
+0x4066-0x4068 0x213C9
+0x4069 0x29AFD
+0x406A-0x4073 0x213CC
+0x4074 0x21571
+0x4075 0x2004D
+0x4076 0x21662
+0x4077 0x2180E
+0x4078-0x407A 0x217FE
+0x407C-0x407E 0x21801
+0x4121 0x21815
+0x4122-0x4123 0x21804
+0x4125 0x21987
+0x4126 0x21989
+0x4127-0x412A 0x21A6E
+0x412B 0x2F86E
+0x412C-0x412E 0x21A72
+0x412F 0x21B9D
+0x4130-0x4132 0x21CB8
+0x4133-0x4134 0x21EC2
+0x4135 0x21ED5
+0x4136 0x21EC4
+0x4137 0x21EC0
+0x4138-0x4139 0x21EC5
+0x413A-0x413C 0x2228A
+0x413D 0x22364
+0x413E 0x25B8C
+0x413F 0x5F41
+0x4140 0x2240D
+0x4141 0x224A8
+0x4142-0x4147 0x2253B
+0x4148 0x22766
+0x4149 0x227CB
+0x414A-0x414D 0x227B7
+0x414E 0x22767
+0x414F 0x227BB
+0x4150-0x4152 0x22768
+0x4153 0x227BC
+0x4155 0x229DB
+0x4156-0x415E 0x22C81
+0x415F 0x2F8BF
+0x4160-0x4161 0x22C8A
+0x4163-0x4167 0x22C8C
+0x4168 0x22CA1
+0x4169 0x22C91
+0x416A 0x22ED6
+0x416B 0x22F9F
+0x416C 0x23058
+0x416D 0x23085
+0x416E-0x416F 0x2310B
+0x4170-0x4171 0x23237
+0x4172 0x2F8CE
+0x4173-0x4178 0x23239
+0x4179-0x417B 0x23240
+0x417D 0x23243
+0x417E 0x2338A
+0x4221 0x2338B
+0x4222 0x23590
+0x4223 0x23559
+0x4224-0x4227 0x2355B
+0x4228 0x698A
+0x4229-0x422E 0x2355F
+0x422F 0x23593
+0x4230-0x4236 0x23565
+0x4237 0x23595
+0x4238-0x423B 0x2356C
+0x423C 0x698C
+0x423D-0x4246 0x23570
+0x4247 0x6980
+0x4248 0x2357A
+0x4249 0x697F
+0x424A 0x2357B
+0x424B 0x235A9
+0x424C 0x2357C
+0x424D 0x238F1
+0x424E 0x238EB
+0x424F 0x2398A
+0x4250 0x23A3D
+0x4251-0x4252 0x23AA6
+0x4253 0x23BBA
+0x4255-0x4257 0x23BBB
+0x4258-0x425E 0x23E91
+0x425F 0x23DDA
+0x4260-0x4262 0x23E98
+0x4265-0x426A 0x23E9B
+0x426B 0x23EBF
+0x426C-0x4272 0x23EA1
+0x4273 0x23E5B
+0x4274 0x2F90D
+0x4275 0x23EA8
+0x4276 0x242CB
+0x4278 0x3DDA
+0x4279 0x242CC
+0x427A 0x2434F
+0x427B-0x427D 0x242CD
+0x427E 0x2434E
+0x4321-0x4323 0x242D0
+0x4325-0x432B 0x242D3
+0x432C 0x242FA
+0x432D-0x432E 0x242DA
+0x432F 0x2F91C
+0x4330 0x242DC
+0x4333-0x433B 0x242DD
+0x433C 0x3DDB
+0x433D-0x433E 0x242E6
+0x433F 0x2458E
+0x4340-0x4341 0x24698
+0x4343 0x2480A
+0x4345-0x4346 0x24826
+0x4347 0x249BD
+0x4348 0x249DF
+0x4349 0x3EE2
+0x434A 0x249BE
+0x434B 0x249DE
+0x434C-0x434F 0x249BF
+0x4350 0x2499F
+0x4351-0x4355 0x249C3
+0x4356 0x3EE3
+0x4357-0x4358 0x249C8
+0x4359 0x249E3
+0x435A-0x4363 0x249CA
+0x4364 0x2F92F
+0x4365 0x249D4
+0x4366 0x24B04
+0x4367 0x24B65
+0x4368 0x24BEE
+0x4369-0x436A 0x24CA0
+0x436B-0x436C 0x24DDD
+0x436D 0x24F83
+0x436E 0x24FFA
+0x436F-0x4370 0x2507F
+0x4371-0x4373 0x251E8
+0x4374 0x235A6
+0x4375 0x253E1
+0x4377-0x437E 0x254DB
+0x4421-0x4424 0x254E3
+0x4425 0x789C
+0x4426 0x254E7
+0x4427 0x256B0
+0x4428 0x25698
+0x4429 0x256B1
+0x442A 0x25699
+0x442B-0x4432 0x256B2
+0x4433-0x443A 0x257E2
+0x443B 0x259AD
+0x443C 0x259CF
+0x443D-0x4440 0x259AE
+0x4441-0x4443 0x25A92
+0x4444 0x25B79
+0x4445 0x7B7B
+0x4446-0x4450 0x25B7A
+0x4451 0x25E97
+0x4452-0x4453 0x25E84
+0x4454 0x25E89
+0x4455-0x4456 0x25E86
+0x4457-0x4462 0x2602C
+0x4463 0x262D2
+0x4464 0x26444
+0x4465 0x26500
+0x4466-0x4467 0x26583
+0x4468 0x2F986
+0x4469-0x446D 0x2677A
+0x446F 0x2677F
+0x4470 0x26787
+0x4471 0x26780
+0x4472 0x26A43
+0x4473 0x26D34
+0x4474 0x4749
+0x4475-0x447E 0x26D35
+0x4521-0x452C 0x26D3F
+0x452E-0x4531 0x26D4B
+0x4532-0x4539 0x272E7
+0x453A 0x275F7
+0x453B 0x2769A
+0x453C 0x276CD
+0x453D 0x2F9C8
+0x453E 0x276A3
+0x453F 0x276CE
+0x4540-0x4542 0x27831
+0x4543 0x279E4
+0x4545-0x4546 0x279E5
+0x4547 0x27CC8
+0x4548-0x454E 0x27D74
+0x454F 0x27E61
+0x4550-0x4557 0x27EDF
+0x4558 0x47F3
+0x4559 0x28031
+0x455A-0x455C 0x2823D
+0x455D-0x455F 0x282F4
+0x4561 0x28417
+0x4562-0x456C 0x28541
+0x456D 0x90D2
+0x456E 0x286BA
+0x456F 0x28744
+0x4570 0x2892A
+0x4571 0x2896D
+0x4572 0x9274
+0x4573 0x2F9E7
+0x4574 0x2897E
+0x4575-0x4578 0x2896E
+0x4579 0x28976
+0x457A 0x28C79
+0x457B 0x95A0
+0x457D 0x28D04
+0x457E 0x28CF8
+0x4621 0x28D05
+0x4622-0x4629 0x28EDA
+0x462A 0x290C5
+0x462B-0x462D 0x2909A
+0x462E-0x4630 0x291D8
+0x4631 0x2926E
+0x4632 0x4A57
+0x4633 0x2946B
+0x4634 0x27D83
+0x4636 0x296D6
+0x4637 0x296BD
+0x4639 0x2322E
+0x463A 0x29AFC
+0x463B 0x29D53
+0x463C 0x29DB7
+0x463D 0x2A28C
+0x463E 0x2A38E
+0x463F 0x2A2FF
+0x4640 0x20076
+0x4641 0x20106
+0x4642 0x2017E
+0x4643-0x4647 0x20384
+0x4648 0x203A7
+0x4649-0x464F 0x20389
+0x4650 0x203A3
+0x4651-0x4654 0x20390
+0x4655 0x203AC
+0x4656-0x4658 0x20394
+0x4659-0x465A 0x204AA
+0x465B 0x2059E
+0x465C 0x51A9
+0x465D-0x465E 0x20608
+0x465F-0x4661 0x20668
+0x4662 0x2069A
+0x4663-0x4665 0x207D9
+0x4666 0x208A8
+0x4667 0x20901
+0x4668 0x20928
+0x4669 0x20977
+0x466A-0x466B 0x209BD
+0x466C 0x20F60
+0x466D 0x20AA0
+0x466E 0x20AA2
+0x466F 0x20B0F
+0x4670 0x20B85
+0x4671-0x4674 0x20EFE
+0x4675 0x20F16
+0x4676-0x467C 0x20F02
+0x467D 0x20F22
+0x467E 0x20F09
+0x4721-0x4723 0x20F0A
+0x4724 0x20F14
+0x4725 0x20F29
+0x4726 0x20E6E
+0x4727-0x472D 0x20F0D
+0x472E-0x4730 0x2121B
+0x4731 0x21413
+0x4732-0x4737 0x213FF
+0x4738 0x2140A
+0x4739-0x473C 0x21405
+0x473D 0x2153A
+0x473E 0x21573
+0x473F-0x4741 0x2166F
+0x4742 0x20052
+0x4744 0x21A9A
+0x4745 0x21860
+0x4746 0x2F869
+0x4747 0x2182B
+0x4748 0x21824
+0x4749-0x4752 0x2182C
+0x4753 0x21845
+0x4754 0x21836
+0x4755-0x4756 0x21992
+0x4757-0x475A 0x21A88
+0x475B 0x21B3F
+0x475D 0x21CCA
+0x475E-0x4761 0x21EF6
+0x4762 0x2212B
+0x4764 0x221A4
+0x4765 0x221CE
+0x4767-0x476F 0x2229E
+0x4770 0x22418
+0x4771-0x4775 0x22560
+0x4776-0x4777 0x227BD
+0x4778 0x2280B
+0x4779-0x477A 0x227BF
+0x477C 0x2280C
+0x477D 0x2278D
+0x477E 0x2280D
+0x4821 0x2280E
+0x4822 0x2285E
+0x4823-0x4824 0x2280F
+0x4825 0x227C1
+0x4826 0x22811
+0x4828 0x227C2
+0x4829-0x482A 0x229EA
+0x482B-0x482F 0x22CE3
+0x4830 0x22C92
+0x4831 0x22D4A
+0x4833-0x4835 0x22CE8
+0x4836 0x22D01
+0x4837-0x4838 0x22CEB
+0x4839 0x22CEF
+0x483A-0x483B 0x22CED
+0x483C-0x4845 0x22CF0
+0x4846 0x22CFE
+0x4847-0x4849 0x22CFA
+0x484A-0x484F 0x23263
+0x4850 0x2360B
+0x4851 0x2360D
+0x4852 0x3BBC
+0x4853-0x4854 0x2360E
+0x4855 0x3BA4
+0x4856 0x23614
+0x4857-0x486F 0x235D4
+0x4870 0x236EC
+0x4871-0x4873 0x235ED
+0x4874 0x23600
+0x4875 0x235F0
+0x4876 0x23904
+0x4878 0x23905
+0x4879 0x2F8F3
+0x487A 0x23AB5
+0x487B 0x2F8F9
+0x487C-0x487E 0x23BD6
+0x4921 0x23BD9
+0x4922 0x23EA9
+0x4923-0x4929 0x23F00
+0x492A 0x23F3F
+0x492B-0x492E 0x23F07
+0x492F 0x23EB6
+0x4930-0x4931 0x23F0B
+0x4934 0x23F0D
+0x4936-0x493A 0x23F0E
+0x493B 0x23F35
+0x493C-0x493D 0x23F13
+0x493E 0x23EAA
+0x4940 0x23FC1
+0x4941-0x4943 0x23F15
+0x4944-0x4947 0x2431E
+0x4949-0x494A 0x24322
+0x494B 0x7195
+0x494C-0x4953 0x24324
+0x4954 0x24307
+0x4955-0x4957 0x2432C
+0x4958 0x3DE8
+0x495A-0x495B 0x2432F
+0x495C 0x24348
+0x495D-0x495E 0x24331
+0x495F 0x7198
+0x4960 0x24333
+0x4962-0x4964 0x24334
+0x4965 0x24559
+0x4966 0x24591
+0x4967 0x245E7
+0x4968-0x496B 0x246B8
+0x496C 0x246C8
+0x496D 0x2484D
+0x496E 0x24889
+0x496F 0x24850
+0x4970 0x24828
+0x4971-0x4975 0x249FB
+0x4976 0x7478
+0x4977-0x4979 0x24A00
+0x497A-0x497B 0x249E4
+0x497C-0x497E 0x24A03
+0x4A21-0x4A22 0x24A06
+0x4A23 0x24A13
+0x4A24-0x4A25 0x24A08
+0x4A26 0x249E6
+0x4A27-0x4A29 0x24A0A
+0x4A2A 0x24B0B
+0x4A2B 0x24BF4
+0x4A2C 0x24C0A
+0x4A2D 0x24CB1
+0x4A2E 0x24E1D
+0x4A2F 0x2F93B
+0x4A30-0x4A31 0x24F8B
+0x4A32 0x24F8F
+0x4A33-0x4A34 0x24F8D
+0x4A35 0x25006
+0x4A36 0x25086
+0x4A37-0x4A3D 0x25222
+0x4A3E 0x253F1
+0x4A3F 0x78B9
+0x4A40 0x25523
+0x4A41 0x25512
+0x4A43-0x4A49 0x25513
+0x4A4A 0x2554B
+0x4A4B-0x4A4D 0x2551A
+0x4A4F-0x4A52 0x2551D
+0x4A53 0x256CA
+0x4A54 0x222AC
+0x4A55-0x4A58 0x256CB
+0x4A5A 0x256CF
+0x4A5B-0x4A5F 0x25810
+0x4A60 0x2580F
+0x4A61-0x4A63 0x25815
+0x4A64 0x7A33
+0x4A65 0x25818
+0x4A66 0x259C6
+0x4A67-0x4A68 0x25A9F
+0x4A69 0x25AA4
+0x4A6A 0x25AA1
+0x4A6B-0x4A70 0x25BB5
+0x4A71 0x25BD0
+0x4A72 0x25BC6
+0x4A73-0x4A7A 0x25BBB
+0x4A7B 0x2F960
+0x4A7C-0x4A7E 0x25EA7
+0x4B21-0x4B23 0x25EAA
+0x4B24 0x25EBC
+0x4B25-0x4B26 0x25EAD
+0x4B27 0x7CC0
+0x4B28-0x4B2A 0x25EAF
+0x4B2B 0x7CC1
+0x4B2C 0x25EB4
+0x4B2D 0x25EB2
+0x4B2E-0x4B37 0x26066
+0x4B39-0x4B3B 0x2623E
+0x4B3C 0x262E8
+0x4B3D-0x4B40 0x26452
+0x4B41-0x4B48 0x26591
+0x4B4A-0x4B4C 0x26599
+0x4B4D-0x4B4F 0x267B7
+0x4B51-0x4B52 0x267BA
+0x4B53 0x267BD
+0x4B55 0x267BC
+0x4B56 0x2F988
+0x4B57 0x2F987
+0x4B58-0x4B59 0x268EB
+0x4B5A 0x26916
+0x4B5B 0x26944
+0x4B5C 0x269E3
+0x4B5D 0x26A58
+0x4B5E-0x4B5F 0x26A53
+0x4B60 0x26AE0
+0x4B61-0x4B63 0x26DB1
+0x4B64 0x26DEA
+0x4B66 0x26DB4
+0x4B67 0x26DF0
+0x4B68-0x4B76 0x26DB5
+0x4B78-0x4B7A 0x26DC4
+0x4B7B 0x26DFC
+0x4B7C-0x4B7E 0x26DC7
+0x4C21-0x4C23 0x26DCA
+0x4C24 0x26E84
+0x4C25-0x4C2A 0x26DCD
+0x4C2B-0x4C2C 0x271CA
+0x4C2D-0x4C2E 0x27336
+0x4C2F 0x2739F
+0x4C30-0x4C32 0x27338
+0x4C33 0x8744
+0x4C34 0x276BE
+0x4C35 0x276F0
+0x4C36-0x4C37 0x276BF
+0x4C38-0x4C39 0x277F7
+0x4C3A 0x277FA
+0x4C3B-0x4C3C 0x27843
+0x4C3D-0x4C40 0x27A0F
+0x4C41 0x8AAD
+0x4C42-0x4C45 0x27A13
+0x4C48 0x27CD3
+0x4C49 0x27CD7
+0x4C4B 0x27DB0
+0x4C4C 0x27D98
+0x4C4D-0x4C4F 0x27D90
+0x4C50 0x27D97
+0x4C51 0x27D93
+0x4C52 0x27E64
+0x4C53-0x4C59 0x27F01
+0x4C5A-0x4C5B 0x2805A
+0x4C5C-0x4C5E 0x2824E
+0x4C5F-0x4C61 0x28319
+0x4C63 0x2831C
+0x4C65-0x4C66 0x28419
+0x4C67 0x4886
+0x4C68 0x2898A
+0x4C69-0x4C6A 0x2856E
+0x4C6B 0x9064
+0x4C6C-0x4C72 0x28570
+0x4C73-0x4C75 0x2883A
+0x4C76 0x2885A
+0x4C77 0x2883D
+0x4C78 0x28842
+0x4C79 0x2898B
+0x4C7A 0x289A0
+0x4C7B-0x4C7D 0x2898C
+0x4C7E 0x289AB
+0x4D21 0x2898F
+0x4D22 0x9277
+0x4D23-0x4D25 0x28990
+0x4D26 0x289AA
+0x4D27 0x92AF
+0x4D28-0x4D29 0x28993
+0x4D2A 0x2899E
+0x4D2B 0x289A8
+0x4D2E-0x4D33 0x28F00
+0x4D34-0x4D35 0x28FC4
+0x4D37 0x290AE
+0x4D38 0x290B2
+0x4D3B 0x291F7
+0x4D3C 0x29213
+0x4D3D 0x2939E
+0x4D3E 0x29485
+0x4D3F 0x25380
+0x4D40 0x294C8
+0x4D41 0x29841
+0x4D42-0x4D45 0x29881
+0x4D46-0x4D48 0x29AC4
+0x4D49-0x4D4B 0x29C95
+0x4D4C-0x4D4D 0x29D58
+0x4D4F-0x4D51 0x29FA9
+0x4D52 0x2A28E
+0x4D53 0x2A303
+0x4D54 0x2A3B3
+0x4D55 0x20B82
+0x4D56 0x20053
+0x4D57-0x4D59 0x20183
+0x4D5A-0x4D5E 0x203CC
+0x4D60-0x4D61 0x203D1
+0x4D62 0x203DA
+0x4D63-0x4D64 0x204B3
+0x4D66 0x20613
+0x4D67 0x2060E
+0x4D68 0x2066B
+0x4D69 0x20903
+0x4D6A 0x20961
+0x4D6B-0x4D6C 0x209C1
+0x4D6D 0x20AB5
+0x4D6E 0x20140
+0x4D6F-0x4D76 0x20F98
+0x4D77 0x20FEE
+0x4D78-0x4D79 0x20FA0
+0x4D7A 0x20F86
+0x4D7B 0x21225
+0x4D7C-0x4D7D 0x21434
+0x4D7E 0x21451
+0x4E21 0x2142D
+0x4E22 0x24362
+0x4E23 0x21454
+0x4E24 0x21452
+0x4E25 0x366D
+0x4E26-0x4E2B 0x21436
+0x4E2C 0x21468
+0x4E2D 0x2143C
+0x4E2E 0x366E
+0x4E2F 0x21577
+0x4E30 0x23296
+0x4E31-0x4E32 0x2167E
+0x4E33-0x4E39 0x21869
+0x4E3A 0x2185D
+0x4E3B 0x21870
+0x4E3C 0x21885
+0x4E3D-0x4E42 0x21871
+0x4E43 0x21884
+0x4E44 0x21877
+0x4E45 0x21883
+0x4E46 0x2199A
+0x4E47-0x4E4C 0x21AA7
+0x4E4D 0x21AB7
+0x4E4E-0x4E4F 0x21AAD
+0x4E51 0x21B45
+0x4E52-0x4E56 0x21CD3
+0x4E57-0x4E59 0x21F26
+0x4E5B-0x4E5C 0x21F29
+0x4E5D 0x22005
+0x4E5E 0x5E64
+0x4E5F 0x221D0
+0x4E60 0x222B7
+0x4E62-0x4E63 0x222B8
+0x4E64-0x4E65 0x22422
+0x4E66-0x4E67 0x22573
+0x4E68 0x2288F
+0x4E69-0x4E6F 0x22812
+0x4E70 0x22861
+0x4E71-0x4E72 0x22866
+0x4E73 0x22819
+0x4E74 0x22868
+0x4E75 0x2281A
+0x4E76 0x22869
+0x4E77-0x4E78 0x22A04
+0x4E7A 0x22A06
+0x4E7B 0x229FD
+0x4E7C-0x4E7E 0x22D50
+0x4F21-0x4F23 0x22D53
+0x4F24 0x22D63
+0x4F25 0x2F8C4
+0x4F26-0x4F2B 0x22D56
+0x4F2D-0x4F30 0x22D5C
+0x4F31 0x22FD7
+0x4F33-0x4F34 0x23060
+0x4F35 0x23117
+0x4F36 0x23139
+0x4F37 0x2328F
+0x4F38 0x232C8
+0x4F39-0x4F3A 0x23290
+0x4F3B-0x4F3C 0x23398
+0x4F3D-0x4F3F 0x23644
+0x4F40 0x23659
+0x4F41 0x236EE
+0x4F42 0x6A2B
+0x4F43-0x4F44 0x23647
+0x4F46-0x4F53 0x23649
+0x4F54 0x23915
+0x4F55 0x2399A
+0x4F56 0x23A58
+0x4F57-0x4F58 0x23AFC
+0x4F59-0x4F5F 0x23F86
+0x4F61 0x2401F
+0x4F62-0x4F68 0x23F8D
+0x4F69 0x2F911
+0x4F6A-0x4F6B 0x23F94
+0x4F6C 0x23ECA
+0x4F6D 0x23F18
+0x4F6F-0x4F78 0x23F96
+0x4F79 0x6F46
+0x4F7B-0x4F7C 0x23FA0
+0x4F7D 0x6F9A
+0x4F7E 0x23FB7
+0x5022 0x24396
+0x5023-0x5024 0x24368
+0x5025 0x2438C
+0x5026-0x502B 0x2436A
+0x502C 0x2437F
+0x502D 0x24384
+0x502E-0x502F 0x24370
+0x5030 0x24385
+0x5031-0x5035 0x24372
+0x5037-0x503C 0x24377
+0x503D 0x2F91E
+0x503E 0x24594
+0x503F 0x246D5
+0x5040 0x24829
+0x5041-0x5046 0x24A2B
+0x5047 0x24A3E
+0x5048-0x504C 0x24A31
+0x504D 0x24B11
+0x504E 0x3F53
+0x504F 0x24CC0
+0x5050-0x5054 0x24E42
+0x5055-0x505A 0x2508C
+0x505B-0x505D 0x25263
+0x505F 0x2F94A
+0x5061 0x253F6
+0x5062-0x5063 0x25536
+0x5064 0x2552C
+0x5065-0x5066 0x25538
+0x5068 0x2553A
+0x5069 0x256E3
+0x506A 0x256E2
+0x506B 0x256F5
+0x506C 0x25847
+0x506E-0x5072 0x25848
+0x5073-0x5075 0x25AA8
+0x5077 0x25C0B
+0x5078 0x25C06
+0x5079 0x25C73
+0x507A-0x507E 0x25C0C
+0x5122 0x25C11
+0x5123 0x2F962
+0x5124 0x25C12
+0x5125-0x5127 0x25C14
+0x5129 0x25C13
+0x512A 0x25C17
+0x512B-0x512D 0x25ED9
+0x512F 0x25EDC
+0x5130-0x5135 0x260A6
+0x5137 0x2F96D
+0x5138-0x513A 0x260AC
+0x513D-0x513F 0x260AF
+0x5140-0x5141 0x26244
+0x5142-0x5143 0x262F7
+0x5144-0x5145 0x2646B
+0x5146 0x26461
+0x5147 0x26512
+0x5148-0x514F 0x265AF
+0x5150 0x26622
+0x5151-0x5154 0x267EA
+0x5155 0x443D
+0x5156 0x268ED
+0x5157 0x2691B
+0x5158 0x26947
+0x5159 0x269E8
+0x515A 0x26AD0
+0x515B-0x515D 0x26AE7
+0x515E-0x5160 0x26E4E
+0x5161 0x26E72
+0x5162-0x5163 0x26E51
+0x5164 0x2F9A7
+0x5165 0x4526
+0x5166-0x516A 0x26E53
+0x516B 0x26E77
+0x516C-0x5170 0x26E58
+0x5171 0x26E6E
+0x5172 0x26E5D
+0x5173 0x4527
+0x5175 0x26E5E
+0x5176 0x4528
+0x5177 0x26E5F
+0x5179 0x271D7
+0x517A-0x517B 0x27389
+0x517D 0x2F9BE
+0x517E 0x2738B
+0x5221-0x5223 0x2738C
+0x5224 0x2F9BC
+0x5225 0x2738F
+0x5227 0x2739A
+0x5228-0x522B 0x27390
+0x522C 0x27712
+0x522D 0x276F1
+0x522F 0x277FE
+0x5230 0x277FB
+0x5231 0x27857
+0x5232-0x5235 0x27A49
+0x5237 0x27A4D
+0x5238 0x27A59
+0x5239-0x523A 0x27A4E
+0x523B 0x27BF4
+0x523C 0x27C65
+0x523D-0x523F 0x27DA6
+0x5240-0x5241 0x27F22
+0x5242-0x5245 0x2808B
+0x5246 0x28258
+0x5248 0x28259
+0x5249-0x524C 0x2833B
+0x524D 0x28448
+0x524E-0x5252 0x28594
+0x5253 0x2877D
+0x5254 0x286FE
+0x5255-0x5256 0x2877E
+0x5258-0x5259 0x2885B
+0x525A 0x289E4
+0x525B 0x289C1
+0x525C 0x289FD
+0x525D 0x289C2
+0x525E 0x289D6
+0x525F-0x5260 0x289C3
+0x5262 0x289DC
+0x5263-0x5265 0x289C5
+0x5266 0x289E1
+0x5267-0x526A 0x289C8
+0x526B 0x92F2
+0x526C-0x526D 0x289CC
+0x526E-0x526F 0x28D35
+0x5270 0x28D47
+0x5271 0x28D37
+0x5272-0x5277 0x28F1B
+0x5278 0x28F7B
+0x5279 0x28F7A
+0x527A 0x28FFE
+0x527B-0x527E 0x290C6
+0x5321 0x290CA
+0x5323-0x5324 0x294A0
+0x5325-0x5326 0x295CC
+0x5327 0x296F1
+0x5328 0x296D7
+0x5329 0x29842
+0x532A 0x29846
+0x532B 0x298A3
+0x532C-0x532D 0x298A5
+0x532E-0x532F 0x29ACB
+0x5330-0x5333 0x29B26
+0x5334-0x5336 0x29CAE
+0x5337 0x29D73
+0x5339 0x29D7C
+0x533A 0x29D74
+0x533C 0x29F80
+0x533D 0x29D75
+0x533E 0x9B79
+0x5340 0x29FCF
+0x5342 0x2A38F
+0x5343 0x20670
+0x5344 0x20085
+0x5345 0x20397
+0x5346-0x5348 0x203F6
+0x5349-0x534A 0x203FA
+0x534B-0x534E 0x204BA
+0x534F-0x5350 0x20534
+0x5351 0x205A2
+0x5352 0x20614
+0x5353 0x20611
+0x5354-0x5355 0x2066E
+0x5356 0x20808
+0x5357 0x208B8
+0x5358 0x20A09
+0x5359-0x535A 0x20ABD
+0x535B 0x20B88
+0x535C 0x20FFE
+0x535D 0x567A
+0x535E-0x5365 0x20FFF
+0x5367-0x536F 0x21007
+0x5373 0x2122C
+0x5374 0x2146B
+0x5376 0x2146C
+0x5377 0x21487
+0x5378 0x2146D
+0x5379 0x21578
+0x537A 0x2168B
+0x537B-0x537E 0x218A4
+0x5421 0x218BE
+0x5422-0x5424 0x218A8
+0x5425 0x2188D
+0x5426-0x5427 0x218AB
+0x5428 0x218BF
+0x542A 0x372C
+0x542B-0x542C 0x218AD
+0x542D-0x542E 0x219A4
+0x542F-0x5431 0x21AC7
+0x5432 0x27DBC
+0x5433-0x5437 0x21ACA
+0x5438 0x21C19
+0x5439 0x21CE6
+0x543A-0x543C 0x21F4C
+0x543D 0x22006
+0x543F-0x5442 0x222CD
+0x5443 0x5F5C
+0x5444-0x5445 0x22581
+0x5446 0x20533
+0x5447-0x5448 0x2286A
+0x5449 0x228B2
+0x544A-0x544B 0x2286C
+0x544C 0x228CC
+0x544D 0x228AE
+0x544E 0x228B3
+0x544F 0x22891
+0x5451 0x2286E
+0x5452 0x228B4
+0x5453 0x2286F
+0x5454 0x22DC9
+0x5455-0x545E 0x22DA7
+0x545F 0x22D60
+0x5460 0x22DB1
+0x5461 0x22EE1
+0x5462 0x22FE3
+0x5463 0x22FF6
+0x5464 0x65D9
+0x5465-0x5467 0x232AF
+0x5468 0x232BA
+0x5469-0x546A 0x232B2
+0x546B 0x2334C
+0x546D-0x546E 0x233A0
+0x546F-0x5473 0x236B0
+0x5474 0x2F8EB
+0x5475-0x547A 0x236B5
+0x547B 0x6A72
+0x547C-0x547E 0x236BB
+0x5521-0x5522 0x236BE
+0x5523 0x236DF
+0x5524-0x5528 0x236C0
+0x5529 0x6A78
+0x552B-0x5530 0x236C5
+0x5531 0x2373C
+0x5532-0x5538 0x236CB
+0x5539 0x6B5A
+0x553A-0x553B 0x2391D
+0x553C-0x553D 0x23A64
+0x553E-0x5540 0x23AC5
+0x5541 0x23AFF
+0x5542-0x5545 0x23BFF
+0x5546 0x23FF5
+0x5547 0x2405C
+0x5548-0x5549 0x23FF6
+0x554A 0x23FB0
+0x554B-0x554C 0x23FF8
+0x554D 0x2405D
+0x554E 0x24050
+0x554F-0x5550 0x23FFA
+0x5551 0x23FA2
+0x5552-0x5555 0x23FFC
+0x5556 0x2F913
+0x5557 0x24000
+0x5558 0x2F91F
+0x5559-0x5563 0x243C1
+0x5564 0x290EF
+0x5565 0x243D7
+0x5566-0x5568 0x243CC
+0x5569 0x24422
+0x556A-0x556B 0x243CF
+0x556D-0x556E 0x243D1
+0x556F 0x243E9
+0x5570-0x5572 0x243D3
+0x5573 0x24538
+0x5574 0x2103B
+0x5575 0x2487D
+0x5576 0x2056F
+0x5577 0x248A1
+0x5578-0x5579 0x24A53
+0x557A 0x3EFB
+0x557B 0x24A55
+0x557C 0x24A3C
+0x557D 0x24A56
+0x5621 0x24A66
+0x5622 0x3EFC
+0x5623-0x5627 0x24A57
+0x5628 0x24A67
+0x5629 0x24A5C
+0x562C 0x24A6A
+0x562D 0x24A5D
+0x562E 0x24A3D
+0x562F 0x24A5E
+0x5630 0x24A65
+0x5631 0x24CE1
+0x5632 0x24CCD
+0x5633 0x2A011
+0x5634-0x5635 0x24E6F
+0x5636 0x2501A
+0x5637-0x5639 0x2509A
+0x563A-0x563B 0x2509E
+0x563C 0x2F93F
+0x563D 0x2528E
+0x563F 0x253FD
+0x5641-0x5643 0x2555E
+0x5644 0x25565
+0x5645-0x5647 0x25567
+0x5649 0x2556A
+0x564A 0x2558F
+0x564B-0x564D 0x2556B
+0x564E-0x5650 0x256F7
+0x5651 0x256E4
+0x5652 0x256FA
+0x5653 0x258B1
+0x5654-0x5655 0x25875
+0x5656-0x565A 0x259FF
+0x565B 0x25AAE
+0x565C 0x25AAD
+0x565D-0x565E 0x25C51
+0x5660-0x5671 0x25C53
+0x5672 0x25C4C
+0x5673 0x25C66
+0x5674-0x5675 0x25EF1
+0x5676-0x567E 0x260F2
+0x5721 0x2624C
+0x5722 0x2624B
+0x5723 0x2631B
+0x5724 0x263CE
+0x5725 0x263B3
+0x5726 0x2647F
+0x5727 0x2F979
+0x5728 0x2F97C
+0x5729 0x2651A
+0x572A-0x572F 0x265C4
+0x5731 0x26819
+0x5732 0x2681C
+0x5733 0x2681A
+0x5734 0x2694C
+0x5735 0x2698E
+0x5736 0x26A7E
+0x5737-0x573D 0x26EEB
+0x573E-0x5741 0x26ED8
+0x5742-0x5744 0x26EF2
+0x5745 0x26F07
+0x5747 0x2F9AC
+0x5749 0x26EF5
+0x574A 0x26F15
+0x574C-0x5754 0x26EF6
+0x5755 0x26FA7
+0x5756-0x575C 0x26EFF
+0x575D-0x575F 0x271E9
+0x5760-0x5761 0x273DE
+0x5763-0x5766 0x273E0
+0x5767-0x576A 0x2773E
+0x576B-0x576D 0x27871
+0x576E-0x5778 0x27A88
+0x577A 0x27CF1
+0x577B-0x577E 0x27DBE
+0x5821-0x5822 0x27DC2
+0x5823 0x27E6E
+0x5824 0x27F37
+0x5825 0x27F57
+0x5826-0x582C 0x27F38
+0x582D 0x27F27
+0x582E 0x27F3F
+0x5831-0x5832 0x280C0
+0x5833 0x8EBE
+0x5834 0x28267
+0x5836 0x28268
+0x5837 0x28358
+0x5838 0x28365
+0x5839-0x583A 0x28359
+0x583B 0x28424
+0x583C-0x583E 0x285CD
+0x583F 0x285D2
+0x5840 0x2879F
+0x5841 0x28722
+0x5842-0x5843 0x2887D
+0x5844 0x289FF
+0x5845 0x28A25
+0x5846-0x5847 0x28A00
+0x5848 0x933B
+0x5849-0x584B 0x28A02
+0x584C 0xFA28
+0x584D-0x584F 0x28A05
+0x5850 0x28A16
+0x5851 0x28A08
+0x5852 0x28A17
+0x5853-0x5854 0x28A09
+0x5855 0x9340
+0x5856-0x5857 0x28A0B
+0x5858 0x28A29
+0x5859 0x933A
+0x585A 0x28A0D
+0x585C 0x28A0E
+0x585D-0x585E 0x28A10
+0x585F 0x28A1D
+0x5860-0x5861 0x28A12
+0x5863-0x5864 0x28A14
+0x5865 0x28C8D
+0x5866-0x5868 0x28D54
+0x5869-0x586C 0x28F33
+0x586D 0x28FFA
+0x586E 0x290E3
+0x586F 0x290E6
+0x5870 0x290ED
+0x5871-0x5875 0x290E7
+0x5876 0x29227
+0x5877 0x29220
+0x5878 0x2F9F8
+0x5879 0x2942A
+0x587A 0x294C9
+0x587C-0x587D 0x294CA
+0x587E 0x294D9
+0x5921-0x5923 0x294CC
+0x5925 0x295E1
+0x5926-0x5929 0x2971B
+0x592A 0x29847
+0x592B 0x298D1
+0x592C 0x298C9
+0x592D-0x592E 0x29AD0
+0x592F-0x5931 0x29B3F
+0x5932 0x2FA09
+0x5933 0x29B42
+0x5934 0x29CC4
+0x5935 0x29D9B
+0x5936-0x5937 0x29D92
+0x5938 0x9B96
+0x5939-0x593A 0x29D94
+0x593D-0x5940 0x29FF3
+0x5941 0x2A260
+0x5942 0x2A29E
+0x5943-0x5944 0x2A2A0
+0x5945 0x2A31C
+0x5946 0x2A39F
+0x5947 0x20056
+0x5948 0x20412
+0x5949 0x2041F
+0x594A-0x594C 0x20415
+0x594D 0x2F80C
+0x594E 0x20418
+0x594F-0x5951 0x204C2
+0x5952 0x205A1
+0x5953-0x5954 0x2061B
+0x5955 0x20671
+0x5956 0x20813
+0x5957 0x20B17
+0x5958 0x20B8F
+0x5959-0x595A 0x2105F
+0x595B 0x210AC
+0x595E-0x5962 0x21061
+0x5964-0x596B 0x21499
+0x596C-0x5971 0x218DA
+0x5972-0x5975 0x21AD5
+0x5976 0x21AE0
+0x5977 0x21BB4
+0x5979-0x597B 0x21F6E
+0x597C 0x22163
+0x597E 0x222D5
+0x5A21-0x5A23 0x222D6
+0x5A24 0x22430
+0x5A25-0x5A26 0x228B5
+0x5A27 0x228C1
+0x5A28 0x228F7
+0x5A29 0x39A0
+0x5A2A 0x228CB
+0x5A2B 0x228E8
+0x5A2D 0x228E9
+0x5A2E 0x228B7
+0x5A2F 0x22A15
+0x5A30-0x5A35 0x22DE6
+0x5A36 0x2F8CA
+0x5A37-0x5A38 0x2300B
+0x5A39 0x23064
+0x5A3A-0x5A3C 0x232D4
+0x5A3D 0x232D8
+0x5A3E 0x233A5
+0x5A3F 0x2005B
+0x5A40-0x5A41 0x2370F
+0x5A43-0x5A4C 0x23711
+0x5A4D 0x2372F
+0x5A4E-0x5A4F 0x2371B
+0x5A50 0x2373F
+0x5A51-0x5A52 0x2371D
+0x5A53 0x2372C
+0x5A54 0x2371F
+0x5A55 0x23924
+0x5A56-0x5A57 0x239A4
+0x5A58 0x26251
+0x5A59 0x23AFE
+0x5A5A-0x5A5C 0x23C11
+0x5A5D 0x23C54
+0x5A5E 0x2405E
+0x5A5F 0x24021
+0x5A60-0x5A65 0x2403F
+0x5A66 0x24020
+0x5A67 0x24045
+0x5A69 0x24046
+0x5A6A 0x240B0
+0x5A6B 0x24047
+0x5A6C 0x24057
+0x5A6D 0x24001
+0x5A6E 0x240B1
+0x5A6F 0x2405A
+0x5A70 0x24048
+0x5A71-0x5A72 0x24404
+0x5A73 0x71F5
+0x5A74-0x5A75 0x2444F
+0x5A76-0x5A7E 0x24406
+0x5B21-0x5B23 0x2440F
+0x5B24-0x5B26 0x24533
+0x5B27-0x5B28 0x245FC
+0x5B29-0x5B2C 0x248B0
+0x5B2D 0x3F01
+0x5B2E-0x5B35 0x24A7B
+0x5B36 0x24BF9
+0x5B37 0x24CDA
+0x5B38 0x24EA1
+0x5B3B-0x5B3C 0x250AD
+0x5B3E-0x5B40 0x252C8
+0x5B41-0x5B49 0x25582
+0x5B4B-0x5B4C 0x25707
+0x5B4D 0x25701
+0x5B4E 0x25709
+0x5B4F 0x25702
+0x5B50-0x5B52 0x2570A
+0x5B53 0x258A7
+0x5B54-0x5B58 0x25898
+0x5B59 0x7A50
+0x5B5A 0x2589D
+0x5B5B 0x25A1A
+0x5B5C 0x25AB2
+0x5B5D-0x5B5E 0x25CB0
+0x5B5F 0x7C14
+0x5B60-0x5B64 0x25CB2
+0x5B65 0x25CC0
+0x5B66-0x5B69 0x25CB7
+0x5B6A 0x25D1D
+0x5B6B-0x5B6D 0x25F0C
+0x5B6E 0x25F35
+0x5B6F-0x5B72 0x25F0F
+0x5B73-0x5B75 0x26122
+0x5B77-0x5B7E 0x26125
+0x5C21-0x5C22 0x2612D
+0x5C23-0x5C24 0x26252
+0x5C25 0x26319
+0x5C26 0x263BF
+0x5C27-0x5C28 0x2648B
+0x5C29-0x5C2A 0x26523
+0x5C2B 0x265F1
+0x5C2C 0x265D8
+0x5C2D 0x2F97F
+0x5C2E-0x5C2F 0x2684E
+0x5C30 0x26855
+0x5C31-0x5C34 0x26850
+0x5C35 0x26802
+0x5C36 0x26854
+0x5C37 0x268F1
+0x5C38 0x26924
+0x5C39 0x26AD1
+0x5C3A-0x5C3E 0x26F7C
+0x5C3F 0x26F9F
+0x5C40-0x5C47 0x26F81
+0x5C48 0x26F9B
+0x5C49-0x5C4C 0x26F89
+0x5C4E 0x26FA1
+0x5C4F-0x5C50 0x26F8D
+0x5C51-0x5C53 0x271F3
+0x5C54-0x5C5A 0x27424
+0x5C5C 0x2742B
+0x5C5D 0x275CD
+0x5C5E 0x27601
+0x5C5F 0x2258D
+0x5C60 0x27770
+0x5C61-0x5C62 0x27880
+0x5C63-0x5C6B 0x27AC0
+0x5C6C 0x27CFE
+0x5C6E 0x27DD9
+0x5C6F 0x27DDC
+0x5C70 0x27DDA
+0x5C71 0x27E75
+0x5C72-0x5C76 0x27F58
+0x5C77 0x280EC
+0x5C78 0x481A
+0x5C79 0x280F3
+0x5C7A-0x5C7B 0x28272
+0x5C7C-0x5C7D 0x28382
+0x5C7E 0x2842A
+0x5D21-0x5D23 0x2842B
+0x5D24 0x285F6
+0x5D25 0x28600
+0x5D26-0x5D28 0x285F7
+0x5D2A-0x5D2C 0x28894
+0x5D2D 0x2891B
+0x5D2E 0x28A86
+0x5D2F-0x5D30 0x28A4C
+0x5D31 0x28A83
+0x5D33 0x28A82
+0x5D34-0x5D37 0x28A4E
+0x5D38 0x28A81
+0x5D39 0x9387
+0x5D3A-0x5D3D 0x28A52
+0x5D3F-0x5D40 0x28A56
+0x5D41 0x9385
+0x5D42 0x28A58
+0x5D43-0x5D49 0x28A5B
+0x5D4A 0x28A7C
+0x5D4B 0x28A62
+0x5D4C 0x493C
+0x5D4E-0x5D4F 0x28A63
+0x5D50 0x28D73
+0x5D51-0x5D53 0x28F45
+0x5D54 0x28F4C
+0x5D55 0x29012
+0x5D57 0x29013
+0x5D58 0x29139
+0x5D59 0x29103
+0x5D5A 0x2910D
+0x5D5B 0x29230
+0x5D5C 0x292D5
+0x5D5D 0x293C0
+0x5D5E-0x5D63 0x294F2
+0x5D64-0x5D65 0x295FA
+0x5D66-0x5D67 0x29745
+0x5D68 0x29849
+0x5D69-0x5D6A 0x298E7
+0x5D6B-0x5D6C 0x29AD8
+0x5D6D-0x5D6F 0x29B55
+0x5D70-0x5D72 0x29CDA
+0x5D73-0x5D75 0x29DB8
+0x5D76 0x9BB1
+0x5D77 0x29DBB
+0x5D78 0x29F89
+0x5D79 0x29DBC
+0x5D7A-0x5D7D 0x2A030
+0x5E21-0x5E23 0x2A034
+0x5E24 0x9D47
+0x5E25 0x2A037
+0x5E26 0x2A2B2
+0x5E27 0x2A390
+0x5E28 0x2A326
+0x5E29 0x2A3A2
+0x5E2A 0x2A438
+0x5E2C 0x2042E
+0x5E2E-0x5E2F 0x2042F
+0x5E30-0x5E31 0x2042A
+0x5E32 0x204C9
+0x5E33 0x20537
+0x5E34 0x20620
+0x5E35 0x20672
+0x5E36 0x2081F
+0x5E37 0x20965
+0x5E38 0x209CA
+0x5E39-0x5E3B 0x20AC0
+0x5E3C-0x5E40 0x210B7
+0x5E43-0x5E45 0x210BC
+0x5E46 0x210F2
+0x5E47 0x214B5
+0x5E48-0x5E49 0x214B7
+0x5E4A 0x210DF
+0x5E4B 0x214B9
+0x5E4C 0x214D5
+0x5E4D-0x5E4E 0x214BA
+0x5E4F 0x2154A
+0x5E50-0x5E52 0x218F2
+0x5E53 0x218FA
+0x5E54 0x218F5
+0x5E55 0x21902
+0x5E56-0x5E57 0x21AE2
+0x5E58 0x21F8E
+0x5E59 0x21F8B
+0x5E5A 0x222E4
+0x5E5B 0x222EB
+0x5E5C 0x222E5
+0x5E5D 0x22435
+0x5E5E 0x22593
+0x5E5F-0x5E60 0x228EA
+0x5E62-0x5E63 0x228EC
+0x5E64 0x22917
+0x5E65-0x5E67 0x228EE
+0x5E68-0x5E6A 0x22E0E
+0x5E6B 0x22E19
+0x5E6C 0x22E18
+0x5E6D-0x5E6F 0x22E11
+0x5E70 0x2F8C7
+0x5E71-0x5E72 0x22E14
+0x5E73 0x3A6B
+0x5E74 0x22E16
+0x5E75 0x23065
+0x5E76-0x5E79 0x232EA
+0x5E7B 0x232EE
+0x5E7C 0x233AC
+0x5E7D 0x237C2
+0x5E7E 0x23769
+0x5F21 0x23781
+0x5F22-0x5F28 0x2376A
+0x5F29 0x3BF4
+0x5F2A-0x5F2C 0x23771
+0x5F2D 0x2378C
+0x5F2E-0x5F30 0x23774
+0x5F31 0x23C24
+0x5F32 0x23C2A
+0x5F33 0x2408E
+0x5F34 0x240AF
+0x5F35-0x5F37 0x2408F
+0x5F39-0x5F43 0x24092
+0x5F44 0x24439
+0x5F45 0x2443B
+0x5F46 0x2443A
+0x5F47-0x5F4A 0x2443C
+0x5F4B 0x24470
+0x5F4C-0x5F4D 0x24440
+0x5F4E-0x5F4F 0x248C0
+0x5F50 0x24AA4
+0x5F51 0x24A97
+0x5F52 0x24AA5
+0x5F53-0x5F55 0x24A98
+0x5F57 0x24A9B
+0x5F58 0x24AA6
+0x5F59-0x5F5C 0x24A9C
+0x5F5D 0x28ACE
+0x5F5E 0x24AC8
+0x5F5F 0x24AA0
+0x5F60 0x24B19
+0x5F61 0x24C0D
+0x5F62 0x250BF
+0x5F63-0x5F64 0x252E9
+0x5F65-0x5F69 0x255A2
+0x5F6A 0x25715
+0x5F6B 0x25717
+0x5F6C-0x5F72 0x258BF
+0x5F73 0x2190D
+0x5F74 0x25A23
+0x5F75 0x25ABE
+0x5F76-0x5F7E 0x25D03
+0x6021 0x25D0C
+0x6022 0x25D20
+0x6023-0x6025 0x25D0D
+0x6027-0x6029 0x25F26
+0x602A-0x6032 0x2615D
+0x6033 0x26257
+0x6034-0x6035 0x263CF
+0x6036-0x6037 0x26499
+0x6038-0x603A 0x265EA
+0x603B-0x603D 0x2687E
+0x6040-0x6041 0x26881
+0x6042 0x268F3
+0x6043 0x26925
+0x6044-0x6045 0x2699F
+0x6046 0x269F3
+0x6047 0x26A00
+0x6048-0x604C 0x26FEB
+0x604E 0x455C
+0x604F-0x6054 0x26FF0
+0x6055-0x605C 0x26FF9
+0x605D 0x2F9AE
+0x605E-0x605F 0x27001
+0x6060 0x27203
+0x6061 0x27486
+0x6062 0x27479
+0x6064-0x6066 0x2747A
+0x6067 0x27484
+0x6068-0x606A 0x2747D
+0x606B-0x606C 0x27786
+0x606D-0x606E 0x27800
+0x606F-0x6071 0x27888
+0x6072 0x27AF5
+0x6074 0x27B25
+0x6075 0x27AF6
+0x6076-0x6079 0x27DEB
+0x607A 0x4787
+0x607B-0x607C 0x27DEF
+0x607D 0x27F6C
+0x607E 0x28121
+0x6121-0x6125 0x28122
+0x6126-0x6127 0x2827B
+0x6128-0x612A 0x28391
+0x612B-0x612D 0x2860E
+0x612E 0x288B3
+0x612F 0x28936
+0x6130 0x28AC6
+0x6131-0x6132 0x28AA1
+0x6133 0x93B9
+0x6134 0x28AA3
+0x6135 0x28ACC
+0x6136-0x6138 0x28AA4
+0x6139 0x28ACB
+0x613A 0x28AA7
+0x613C-0x613E 0x28AA8
+0x6140-0x6142 0x28AAB
+0x6143 0x93BF
+0x6144-0x6146 0x28AAE
+0x6147-0x6149 0x28D8C
+0x614A 0x2F9F1
+0x614B 0x28D92
+0x614C 0x28D8F
+0x614D-0x6150 0x28F52
+0x6151 0x29129
+0x6153-0x6154 0x292F3
+0x6155-0x6158 0x2950D
+0x6159 0x29614
+0x615A-0x615B 0x29771
+0x615C 0x2990F
+0x615D 0x29904
+0x615E 0x29906
+0x6160 0x29907
+0x6161-0x6162 0x29ADC
+0x6163 0x29B6D
+0x6164 0x29B79
+0x6165 0x29B6E
+0x6167 0x29CEC
+0x6168-0x616F 0x29DDD
+0x6170 0x29E3A
+0x6171 0x29DE5
+0x6172 0x9BCF
+0x6173 0x29DE6
+0x6174-0x6175 0x2A06B
+0x6176 0x2444E
+0x6177 0x9D64
+0x6178-0x617A 0x2A2BD
+0x617B 0x2A334
+0x617C 0x9EBF
+0x617D 0x2A512
+0x617E 0x20440
+0x6221 0x20441
+0x6222-0x6226 0x21102
+0x6227 0x214D7
+0x6228 0x214CC
+0x6229 0x21698
+0x622A-0x622B 0x21906
+0x622C-0x622D 0x219AF
+0x622E 0x21AEA
+0x622F 0x21AF2
+0x6230-0x6232 0x21FA2
+0x6233 0x22176
+0x6234-0x6236 0x222F5
+0x6238 0x2293B
+0x6239 0x22925
+0x623A 0x2293A
+0x623B-0x623D 0x2293C
+0x623E-0x6246 0x22E37
+0x6247 0x22E4B
+0x6249 0x22E40
+0x624A 0x23022
+0x624B 0x23067
+0x624C 0x230D3
+0x624D 0x232FA
+0x624F 0x237BC
+0x6252 0x237A5
+0x6253 0x3C07
+0x6254 0x237B6
+0x6256 0x237A6
+0x6257 0x237BB
+0x6258-0x625D 0x237A7
+0x625E 0x237BF
+0x625F-0x6261 0x237AD
+0x6262 0x2392E
+0x6263 0x23B00
+0x6264-0x6265 0x2409D
+0x6266-0x626A 0x240CB
+0x626C 0x2409F
+0x626D-0x6271 0x240D0
+0x6274-0x6277 0x2445D
+0x6278 0x3F05
+0x6279 0x24ABA
+0x627A 0x24ABC
+0x627B 0x3F06
+0x627C 0x24AB5
+0x627D 0x24ABD
+0x627E 0x24AB6
+0x6321-0x6322 0x24AB7
+0x6323 0x24AA8
+0x6324 0x2F932
+0x6325 0x24BFE
+0x6326 0x24BFC
+0x6327 0x24EE1
+0x6328-0x6329 0x250C4
+0x632A 0x25314
+0x632B-0x632E 0x255AE
+0x632F 0x255B9
+0x6330 0x258E7
+0x6331 0x25D46
+0x6333-0x6335 0x25D47
+0x6336-0x6337 0x25D1E
+0x6338-0x633C 0x25D4A
+0x633E 0x25F46
+0x633F 0x25F4B
+0x6340-0x6341 0x26190
+0x6343-0x6345 0x26192
+0x6346 0x2625B
+0x6347 0x265F2
+0x6348-0x6349 0x265F8
+0x634A 0x26894
+0x634B 0x268A4
+0x634C-0x634D 0x26897
+0x634E 0x26929
+0x634F 0x269AE
+0x6350 0x26AAF
+0x6351-0x6352 0x27059
+0x6354-0x635A 0x2705B
+0x635B 0x26FAA
+0x635C-0x6369 0x27062
+0x636B-0x636D 0x274B2
+0x636E 0x45F9
+0x636F-0x6375 0x274B5
+0x6376 0x27788
+0x6377 0x89B8
+0x6378-0x637A 0x27B19
+0x637B 0x27C16
+0x637C-0x637E 0x27E0C
+0x6421 0x27E0F
+0x6423-0x6425 0x27F83
+0x6426-0x6427 0x28283
+0x6428 0x283B0
+0x642A-0x642B 0x28626
+0x642C 0x28636
+0x642D-0x642E 0x28628
+0x6431-0x6433 0x28AE7
+0x6434 0x4953
+0x6435-0x6436 0x28AEA
+0x6438-0x643D 0x28AEC
+0x643E 0x28B0C
+0x643F-0x6445 0x28AF2
+0x6446-0x644A 0x28DA3
+0x644C 0x28F5C
+0x644E 0x2914B
+0x644F 0x291E1
+0x6450 0x29315
+0x6452-0x6453 0x29316
+0x6454-0x6455 0x2952C
+0x6456-0x6457 0x29622
+0x6458-0x6459 0x29796
+0x645B 0x2992E
+0x645C-0x645D 0x29930
+0x645F 0x29ADF
+0x6460-0x6461 0x29B8B
+0x6463 0x29B8D
+0x6464-0x6467 0x29CFC
+0x6468 0x29E17
+0x6469 0x29E2D
+0x646A 0x29E18
+0x646B 0x9BF3
+0x646C 0x29E19
+0x646E 0x29E12
+0x646F-0x6471 0x29E1A
+0x6472 0x4C69
+0x6474 0x2A097
+0x6475 0x4CE5
+0x6476-0x6477 0x2A098
+0x6479 0x2A3C4
+0x647A 0x2044F
+0x647B 0x204CD
+0x647C 0x20AC7
+0x647D-0x647E 0x2111C
+0x6521 0x2111E
+0x6522 0x214E7
+0x6523-0x6525 0x214E9
+0x6526 0x21915
+0x6527-0x6528 0x21CF1
+0x6529 0x21FB6
+0x652A 0x225A0
+0x652B 0x2294A
+0x652C 0x22A20
+0x652D-0x652E 0x22E60
+0x652F 0x22E41
+0x6530 0x22E62
+0x6531-0x6532 0x23303
+0x6533-0x6537 0x237D9
+0x6539-0x653D 0x237DE
+0x653E 0x3C12
+0x653F 0x237E3
+0x6541 0x23C31
+0x6542-0x6544 0x24105
+0x6545 0x24472
+0x6546-0x6547 0x2448A
+0x6548 0x24488
+0x654A-0x654E 0x2448C
+0x654F-0x6550 0x24542
+0x6552-0x6555 0x24AC1
+0x6556 0x250CB
+0x6557 0x25322
+0x655A-0x655D 0x255C3
+0x655E 0x2571E
+0x655F 0x25725
+0x6560-0x6561 0x258F3
+0x6563 0x258F5
+0x6564 0x25A38
+0x6565 0x25A48
+0x6566 0x25ACA
+0x6567 0x7C4F
+0x6568-0x6569 0x25D7A
+0x656A-0x656B 0x25F55
+0x656C-0x656E 0x261B1
+0x6570-0x6571 0x261B4
+0x6572 0x264A4
+0x6573-0x6575 0x26600
+0x6576 0x268AC
+0x6578 0x269B3
+0x6579-0x657E 0x270B6
+0x6621-0x662C 0x270BC
+0x662D-0x6631 0x274E3
+0x6633 0x277B5
+0x6634 0x277A1
+0x6635 0x27895
+0x6636-0x6639 0x27B3B
+0x663A 0x27C14
+0x663B-0x663F 0x27E20
+0x6640-0x6642 0x27F96
+0x6643-0x6647 0x28194
+0x6648-0x6649 0x2828F
+0x664A 0x283BC
+0x664B 0x2843B
+0x664C 0x2863D
+0x664E 0x288DF
+0x664F 0x2891E
+0x6650-0x6651 0x28B23
+0x6652 0x28B49
+0x6653-0x6656 0x28B25
+0x6657 0x9425
+0x6658-0x6659 0x28B29
+0x665A-0x665B 0x28B2E
+0x665C 0x28B4E
+0x665D 0x28B30
+0x665E 0x2F9EB
+0x665F-0x6664 0x28B31
+0x6666 0x28B37
+0x6667 0x28B50
+0x6668 0x28B38
+0x666A-0x666F 0x28B39
+0x6670-0x6671 0x28DB8
+0x6672-0x6673 0x28F62
+0x6674 0x29041
+0x6675 0x2916D
+0x6677 0x29352
+0x6678 0x29337
+0x6679 0x293DB
+0x667A 0x2953F
+0x667B 0x29634
+0x667C 0x2985B
+0x667D 0x29946
+0x667E 0x2995A
+0x6721 0x2995B
+0x6722-0x6725 0x29AE1
+0x6726-0x6728 0x29BA7
+0x6729 0x29D0F
+0x672A 0x29D2B
+0x672B-0x672D 0x29E56
+0x672E 0x29E5E
+0x672F-0x6732 0x29E59
+0x6734 0x29E68
+0x6736 0x2A12C
+0x6737 0x2A0E2
+0x6738 0x2A0F3
+0x6739 0x2A2D2
+0x673A 0x2A356
+0x673B 0x2A3CE
+0x673C 0x2A461
+0x673D 0x2A69B
+0x673E 0x2A6B4
+0x673F 0x2045C
+0x6740 0x2F810
+0x6741 0x204D2
+0x6742 0x20571
+0x6743 0x20673
+0x6744 0x2082C
+0x6745 0x20B94
+0x6747-0x6748 0x2113F
+0x6749-0x674A 0x214F9
+0x674B 0x214FD
+0x674C 0x214FB
+0x674D-0x674E 0x2191C
+0x674F-0x6750 0x21AFF
+0x6751 0x21CF7
+0x6752 0x24CFE
+0x6754 0x224B6
+0x6755 0x22954
+0x6756 0x22E77
+0x6757-0x6759 0x22E79
+0x675A 0x23069
+0x675B-0x6764 0x23802
+0x6765 0x23835
+0x6767 0x23C39
+0x6768-0x676B 0x2411E
+0x676D-0x676F 0x24122
+0x6770 0x2412C
+0x6771 0x244B3
+0x6772-0x6775 0x244B5
+0x6776 0x24AD0
+0x6777 0x24CFA
+0x6778 0x24F07
+0x6779 0x24FBD
+0x677A 0x250D7
+0x677B 0x250D2
+0x677C 0x255DB
+0x677D 0x255D6
+0x677E 0x2045D
+0x6821 0x25A43
+0x6822 0x25ACF
+0x6823-0x6829 0x25DA3
+0x682A-0x682B 0x25F5D
+0x682C-0x682F 0x261C9
+0x6830-0x6831 0x26606
+0x6833 0x268C5
+0x6834 0x268F5
+0x6835 0x269B4
+0x6836 0x269B8
+0x6837 0x269B5
+0x6838 0x270FD
+0x6839 0x4577
+0x683A-0x683F 0x270FE
+0x6840 0x27109
+0x6841-0x6844 0x27104
+0x6845-0x6849 0x27511
+0x684A 0x8977
+0x684B-0x684C 0x27898
+0x684D 0x27E3C
+0x684E-0x684F 0x27E2D
+0x6851-0x6852 0x281BB
+0x6853 0x4878
+0x6854 0x2843D
+0x6855-0x6858 0x28647
+0x6859 0x287E1
+0x685A 0x287E7
+0x685B 0x288EB
+0x685C 0x28920
+0x685D 0x28938
+0x685E 0x28B62
+0x685F-0x6863 0x28B67
+0x6864-0x6869 0x28B6D
+0x686A 0x28B8F
+0x686B-0x686F 0x28B73
+0x6870-0x6871 0x28DC9
+0x6872 0x95E6
+0x6873-0x6875 0x28DCB
+0x6876 0x29051
+0x6879 0x29245
+0x687A-0x687C 0x29559
+0x687D 0x29640
+0x687E 0x297CF
+0x6921 0x2985E
+0x6922 0x2997B
+0x6923 0x29A93
+0x6924 0x29BBC
+0x6925 0x29D16
+0x6926 0x29D30
+0x6928-0x6929 0x29E8D
+0x692A 0x9C2F
+0x692B-0x6932 0x29E8F
+0x6933 0x2A123
+0x6934 0x2A114
+0x6935 0x2A2DB
+0x6936 0x2A40A
+0x6937 0x2A5CE
+0x6938 0x20466
+0x6939 0x20468
+0x693A 0x20467
+0x693B 0x204D3
+0x693C 0x21163
+0x693D 0x21504
+0x693E 0x2169E
+0x693F 0x21926
+0x6940 0x2192A
+0x6941 0x2296C
+0x6942 0x22964
+0x6943-0x6944 0x22E8F
+0x6945 0x23034
+0x6946 0x2330E
+0x6947-0x6949 0x23825
+0x694B 0x23828
+0x694C 0x6B0C
+0x694E-0x6951 0x23829
+0x6952 0x23C3E
+0x6953-0x6954 0x24142
+0x6955 0x24133
+0x6956-0x6958 0x244C1
+0x6959-0x695A 0x24AD6
+0x695B-0x695C 0x255E1
+0x695D 0x2572B
+0x695E 0x25AD1
+0x695F-0x6962 0x25DCC
+0x6963-0x6966 0x261DE
+0x6967 0x268F6
+0x6968 0x2712C
+0x696A 0x27154
+0x696B-0x696C 0x2712D
+0x696D-0x696E 0x27541
+0x696F 0x277C7
+0x6970-0x6971 0x278A0
+0x6972-0x6974 0x27B70
+0x6976-0x6978 0x27E34
+0x6979 0x27FA6
+0x697A 0x281CC
+0x697C 0x28299
+0x697D 0x288F4
+0x697E 0x28B9B
+0x6A21-0x6A2B 0x28B9E
+0x6A2C-0x6A2E 0x28DDB
+0x6A2F 0x28DD7
+0x6A30-0x6A31 0x28DDE
+0x6A32 0x29059
+0x6A33 0x29446
+0x6A34 0x29565
+0x6A35 0x29649
+0x6A37 0x297DD
+0x6A38-0x6A3A 0x29995
+0x6A3B 0x29BD4
+0x6A3C 0x29BD6
+0x6A3D 0x29D26
+0x6A3E 0x9C47
+0x6A3F 0x4C88
+0x6A40 0x29EC8
+0x6A41-0x6A43 0x29EC5
+0x6A44-0x6A48 0x2A151
+0x6A49 0x2A2DE
+0x6A4B 0x2046D
+0x6A4C 0x204D5
+0x6A4D 0x21172
+0x6A4E 0x221AE
+0x6A4F 0x2230F
+0x6A50 0x2296B
+0x6A51-0x6A52 0x2296D
+0x6A53 0x22978
+0x6A54-0x6A56 0x22E98
+0x6A57 0x23844
+0x6A58 0x2385C
+0x6A59 0x23845
+0x6A5A 0x23B01
+0x6A5B-0x6A5D 0x24158
+0x6A5F 0x244D9
+0x6A60 0x244D6
+0x6A61 0x24ADA
+0x6A62 0x24ADF
+0x6A63 0x24ADB
+0x6A64 0x24D03
+0x6A65 0x255EF
+0x6A66 0x7936
+0x6A67 0x25733
+0x6A68 0x25AD2
+0x6A69 0x25DE1
+0x6A6A 0x25F6F
+0x6A6B 0x26264
+0x6A6C 0x2660E
+0x6A6D-0x6A6F 0x27150
+0x6A70-0x6A72 0x27556
+0x6A74-0x6A75 0x27B81
+0x6A76-0x6A77 0x27C1D
+0x6A78 0x27E43
+0x6A79 0x27FAA
+0x6A7A 0x288FD
+0x6A7C-0x6A7D 0x28BC6
+0x6A7E 0x28BD9
+0x6B21 0x28BD7
+0x6B23-0x6B26 0x28BC8
+0x6B27 0x28BDA
+0x6B29-0x6B2E 0x28BCC
+0x6B2F 0x28BBC
+0x6B30-0x6B32 0x28DE1
+0x6B33 0x291A9
+0x6B34 0x2924E
+0x6B35 0x29577
+0x6B38-0x6B39 0x299AC
+0x6B3A 0x29AB6
+0x6B3B 0x29BE5
+0x6B3C 0x29EF8
+0x6B3D 0x29EEA
+0x6B3E 0x29F8D
+0x6B3F 0x29EEB
+0x6B40 0x2A195
+0x6B41 0x2046E
+0x6B42 0x204D8
+0x6B43 0x21183
+0x6B44 0x216A3
+0x6B45 0x21930
+0x6B46 0x21B0F
+0x6B47-0x6B48 0x22979
+0x6B49-0x6B4C 0x22EA7
+0x6B4D 0x23319
+0x6B4E-0x6B50 0x23850
+0x6B51 0x6B15
+0x6B52 0x23868
+0x6B53-0x6B54 0x23853
+0x6B55 0x248E2
+0x6B56 0x24ADC
+0x6B57-0x6B58 0x25915
+0x6B59 0x25A4F
+0x6B5A-0x6B5C 0x25DF5
+0x6B5D 0x261F4
+0x6B5E 0x264CC
+0x6B5F 0x2660F
+0x6B60-0x6B61 0x27166
+0x6B63 0x27168
+0x6B64 0x278A4
+0x6B65-0x6B66 0x27B8B
+0x6B67 0x281FA
+0x6B68 0x28BE6
+0x6B69-0x6B6C 0x28BED
+0x6B6D 0x28BFE
+0x6B6E-0x6B6F 0x28DE7
+0x6B70 0x291B3
+0x6B71 0x291E4
+0x6B72 0x29583
+0x6B73 0x29AEC
+0x6B75 0x29F16
+0x6B78 0x29F17
+0x6B79 0x2A1C3
+0x6B7A 0x2A1AC
+0x6B7B 0x2A2ED
+0x6B7E 0x2A5B4
+0x6C22-0x6C23 0x2118A
+0x6C24 0x21934
+0x6C25 0x21B14
+0x6C26 0x21FDF
+0x6C27 0x224BB
+0x6C28 0x2297F
+0x6C29 0x22981
+0x6C2A-0x6C2B 0x22EAD
+0x6C2C 0x23862
+0x6C2D 0x2386E
+0x6C2F 0x2416E
+0x6C31 0x24717
+0x6C32 0x24AE6
+0x6C33 0x24C10
+0x6C34 0x25919
+0x6C36 0x26610
+0x6C37 0x26AF2
+0x6C38-0x6C39 0x27176
+0x6C3A-0x6C3B 0x27B95
+0x6C3C-0x6C3D 0x28C00
+0x6C3E 0x28C31
+0x6C3F 0x2F9ED
+0x6C40 0x28C1C
+0x6C41 0x2906D
+0x6C42-0x6C43 0x29BF4
+0x6C44 0x29D3D
+0x6C45-0x6C46 0x29F32
+0x6C47 0x2A2F4
+0x6C49 0x20473
+0x6C4A 0x21937
+0x6C4C 0x23871
+0x6C4D 0x25E0F
+0x6C4F 0x25E0E
+0x6C50 0x26611
+0x6C51 0x27185
+0x6C52-0x6C58 0x28C14
+0x6C59 0x291C3
+0x6C5A-0x6C5C 0x29F42
+0x6C5D 0x29F48
+0x6C5E 0x2A1FB
+0x6C5F 0x216A5
+0x6C60 0x219B8
+0x6C61 0x22EB2
+0x6C62 0x2303D
+0x6C63 0x23872
+0x6C64-0x6C65 0x244E7
+0x6C66 0x25359
+0x6C67 0x2573A
+0x6C68 0x25E14
+0x6C69 0x261FF
+0x6C6A 0x269C0
+0x6C6B 0x2718D
+0x6C6C 0x4584
+0x6C6D 0x2718E
+0x6C6F 0x28C22
+0x6C72 0x29C04
+0x6C73 0x29C29
+0x6C74 0x29F51
+0x6C75 0x29F66
+0x6C76 0x2A20E
+0x6C77 0x2FA13
+0x6C79-0x6C7A 0x2119B
+0x6C7B 0x22316
+0x6C7C-0x6C7D 0x22986
+0x6D21 0x28C2C
+0x6D22 0x28C30
+0x6D23 0x28C28
+0x6D24 0x2965F
+0x6D26 0x2417E
+0x6D27 0x25E19
+0x6D28 0x2820A
+0x6D29 0x28C36
+0x6D2A 0x28DFC
+0x6D2B-0x6D2C 0x29F6D
+0x6D2D 0x2A6C6
+0x6D2E 0x53B5
+0x6D2F 0x2387B
+0x6D30 0x26206
+0x6D31 0x2759F
+0x6D32 0x2A232
+0x6D33 0x2820D
+0x6D34 0x2298B
+0x6D35 0x28C3B
+0x6D37 0x2A23D
+0x6D38-0x6D39 0x28C3C
diff --git a/etc/charsets/CP10007.map b/etc/charsets/CP10007.map
new file mode 100644 (file)
index 0000000..f542583
--- /dev/null
@@ -0,0 +1,64 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP10007
+0x00-0x7F 0x0000
+0x80-0x9F 0x0410
+0xA0 0x2020
+0xA1 0x00B0
+0xA2-0xA3 0x00A2
+0xA4 0x00A7
+0xA5 0x2022
+0xA6 0x00B6
+0xA7 0x0406
+0xA8 0x00AE
+0xA9 0x00A9
+0xAA 0x2122
+0xAB 0x0402
+0xAC 0x0452
+0xAD 0x2260
+0xAE 0x0403
+0xAF 0x0453
+0xB0 0x221E
+0xB1 0x00B1
+0xB2-0xB3 0x2264
+0xB4 0x0456
+0xB5 0x00B5
+0xB6 0x0491
+0xB7 0x0408
+0xB8 0x0404
+0xB9 0x0454
+0xBA 0x0407
+0xBB 0x0457
+0xBC 0x0409
+0xBD 0x0459
+0xBE 0x040A
+0xBF 0x045A
+0xC0 0x0458
+0xC1 0x0405
+0xC2 0x00AC
+0xC3 0x221A
+0xC4 0x0192
+0xC5 0x2248
+0xC6 0x2206
+0xC7 0x00AB
+0xC8 0x00BB
+0xC9 0x2026
+0xCA 0x00A0
+0xCB 0x040B
+0xCC 0x045B
+0xCD 0x040C
+0xCE 0x045C
+0xCF 0x0455
+0xD0-0xD1 0x2013
+0xD2-0xD3 0x201C
+0xD4-0xD5 0x2018
+0xD6 0x00F7
+0xD7 0x201E
+0xD8 0x040E
+0xD9 0x045E
+0xDA 0x040F
+0xDB 0x045F
+0xDC 0x2116
+0xDD 0x0401
+0xDE 0x0451
+0xDF 0x044F
+0xE0-0xFE 0x0430
+0xFF 0x00A4
diff --git a/etc/charsets/CP1125.map b/etc/charsets/CP1125.map
new file mode 100644 (file)
index 0000000..12b8d13
--- /dev/null
@@ -0,0 +1,60 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1125
+0x00-0x7F 0x0000
+0x80-0xAF 0x0410
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0-0xEF 0x0440
+0xF0 0x0401
+0xF1 0x0451
+0xF2-0xF3 0x0490
+0xF4 0x0404
+0xF5 0x0454
+0xF6 0x0406
+0xF7 0x0456
+0xF8 0x0407
+0xF9 0x0457
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x2116
+0xFD 0x00A4
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/CP1250.map b/etc/charsets/CP1250.map
new file mode 100644 (file)
index 0000000..8316969
--- /dev/null
@@ -0,0 +1,100 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1250
+0x00-0x7F 0x0000
+0x80 0x20AC
+0x82 0x201A
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x89 0x2030
+0x8A 0x0160
+0x8B 0x2039
+0x8C 0x015A
+0x8D 0x0164
+0x8E 0x017D
+0x8F 0x0179
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x99 0x2122
+0x9A 0x0161
+0x9B 0x203A
+0x9C 0x015B
+0x9D 0x0165
+0x9E 0x017E
+0x9F 0x017A
+0xA0 0x00A0
+0xA1 0x02C7
+0xA2 0x02D8
+0xA3 0x0141
+0xA4 0x00A4
+0xA5 0x0104
+0xA6-0xA9 0x00A6
+0xAA 0x015E
+0xAB-0xAE 0x00AB
+0xAF 0x017B
+0xB0-0xB1 0x00B0
+0xB2 0x02DB
+0xB3 0x0142
+0xB4-0xB8 0x00B4
+0xB9 0x0105
+0xBA 0x015F
+0xBB 0x00BB
+0xBC 0x013D
+0xBD 0x02DD
+0xBE 0x013E
+0xBF 0x017C
+0xC0 0x0154
+0xC1-0xC2 0x00C1
+0xC3 0x0102
+0xC4 0x00C4
+0xC5 0x0139
+0xC6 0x0106
+0xC7 0x00C7
+0xC8 0x010C
+0xC9 0x00C9
+0xCA 0x0118
+0xCB 0x00CB
+0xCC 0x011A
+0xCD-0xCE 0x00CD
+0xCF 0x010E
+0xD0 0x0110
+0xD1 0x0143
+0xD2 0x0147
+0xD3-0xD4 0x00D3
+0xD5 0x0150
+0xD6-0xD7 0x00D6
+0xD8 0x0158
+0xD9 0x016E
+0xDA 0x00DA
+0xDB 0x0170
+0xDC-0xDD 0x00DC
+0xDE 0x0162
+0xDF 0x00DF
+0xE0 0x0155
+0xE1-0xE2 0x00E1
+0xE3 0x0103
+0xE4 0x00E4
+0xE5 0x013A
+0xE6 0x0107
+0xE7 0x00E7
+0xE8 0x010D
+0xE9 0x00E9
+0xEA 0x0119
+0xEB 0x00EB
+0xEC 0x011B
+0xED-0xEE 0x00ED
+0xEF 0x010F
+0xF0 0x0111
+0xF1 0x0144
+0xF2 0x0148
+0xF3-0xF4 0x00F3
+0xF5 0x0151
+0xF6-0xF7 0x00F6
+0xF8 0x0159
+0xF9 0x016F
+0xFA 0x00FA
+0xFB 0x0171
+0xFC-0xFD 0x00FC
+0xFE 0x0163
+0xFF 0x02D9
diff --git a/etc/charsets/CP1251.map b/etc/charsets/CP1251.map
new file mode 100644 (file)
index 0000000..9a980a4
--- /dev/null
@@ -0,0 +1,54 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1251
+0x00-0x7F 0x0000
+0x80-0x81 0x0402
+0x82 0x201A
+0x83 0x0453
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x88 0x20AC
+0x89 0x2030
+0x8A 0x0409
+0x8B 0x2039
+0x8C 0x040A
+0x8D 0x040C
+0x8E 0x040B
+0x8F 0x040F
+0x90 0x0452
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x99 0x2122
+0x9A 0x0459
+0x9B 0x203A
+0x9C 0x045A
+0x9D 0x045C
+0x9E 0x045B
+0x9F 0x045F
+0xA0 0x00A0
+0xA1 0x040E
+0xA2 0x045E
+0xA3 0x0408
+0xA4 0x00A4
+0xA5 0x0490
+0xA6-0xA7 0x00A6
+0xA8 0x0401
+0xA9 0x00A9
+0xAA 0x0404
+0xAB-0xAE 0x00AB
+0xAF 0x0407
+0xB0-0xB1 0x00B0
+0xB2 0x0406
+0xB3 0x0456
+0xB4 0x0491
+0xB5-0xB7 0x00B5
+0xB8 0x0451
+0xB9 0x2116
+0xBA 0x0454
+0xBB 0x00BB
+0xBC 0x0458
+0xBD 0x0405
+0xBE 0x0455
+0xBF 0x0457
+0xC0-0xFF 0x0410
diff --git a/etc/charsets/CP1252.map b/etc/charsets/CP1252.map
new file mode 100644 (file)
index 0000000..1e60d9e
--- /dev/null
@@ -0,0 +1,26 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1252
+0x00-0x7F 0x0000
+0x80 0x20AC
+0x82 0x201A
+0x83 0x0192
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x88 0x02C6
+0x89 0x2030
+0x8A 0x0160
+0x8B 0x2039
+0x8C 0x0152
+0x8E 0x017D
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x98 0x02DC
+0x99 0x2122
+0x9A 0x0161
+0x9B 0x203A
+0x9C 0x0153
+0x9E 0x017E
+0x9F 0x0178
+0xA0-0xFF 0x00A0
diff --git a/etc/charsets/CP1253.map b/etc/charsets/CP1253.map
new file mode 100644 (file)
index 0000000..d83fce2
--- /dev/null
@@ -0,0 +1,30 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1253
+0x00-0x7F 0x0000
+0x80 0x20AC
+0x82 0x201A
+0x83 0x0192
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x89 0x2030
+0x8B 0x2039
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x99 0x2122
+0x9B 0x203A
+0xA0 0x00A0
+0xA1-0xA2 0x0385
+0xA3-0xA9 0x00A3
+0xAB-0xAE 0x00AB
+0xAF 0x2015
+0xB0-0xB3 0x00B0
+0xB4 0x0384
+0xB5-0xB7 0x00B5
+0xB8-0xBA 0x0388
+0xBB 0x00BB
+0xBC 0x038C
+0xBD 0x00BD
+0xBE-0xD1 0x038E
+0xD3-0xFE 0x03A3
diff --git a/etc/charsets/CP1254.map b/etc/charsets/CP1254.map
new file mode 100644 (file)
index 0000000..c50d647
--- /dev/null
@@ -0,0 +1,34 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1254
+0x00-0x7F 0x0000
+0x80 0x20AC
+0x82 0x201A
+0x83 0x0192
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x88 0x02C6
+0x89 0x2030
+0x8A 0x0160
+0x8B 0x2039
+0x8C 0x0152
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x98 0x02DC
+0x99 0x2122
+0x9A 0x0161
+0x9B 0x203A
+0x9C 0x0153
+0x9F 0x0178
+0xA0-0xCF 0x00A0
+0xD0 0x011E
+0xD1-0xDC 0x00D1
+0xDD 0x0130
+0xDE 0x015E
+0xDF-0xEF 0x00DF
+0xF0 0x011F
+0xF1-0xFC 0x00F1
+0xFD 0x0131
+0xFE 0x015F
+0xFF 0x00FF
diff --git a/etc/charsets/CP1255.map b/etc/charsets/CP1255.map
new file mode 100644 (file)
index 0000000..0dbbe81
--- /dev/null
@@ -0,0 +1,30 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1255
+0x00-0x7F 0x0000
+0x80 0x20AC
+0x82 0x201A
+0x83 0x0192
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x88 0x02C6
+0x89 0x2030
+0x8B 0x2039
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x98 0x02DC
+0x99 0x2122
+0x9B 0x203A
+0xA0-0xA3 0x00A0
+0xA4 0x20AA
+0xA5-0xA9 0x00A5
+0xAA 0x00D7
+0xAB-0xB9 0x00AB
+0xBA 0x00F7
+0xBB-0xBF 0x00BB
+0xC0-0xC9 0x05B0
+0xCB-0xD3 0x05BB
+0xD4-0xD8 0x05F0
+0xE0-0xFA 0x05D0
+0xFD-0xFE 0x200E
diff --git a/etc/charsets/CP1256.map b/etc/charsets/CP1256.map
new file mode 100644 (file)
index 0000000..ee6e0a1
--- /dev/null
@@ -0,0 +1,59 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1256
+0x00-0x7F 0x0000
+0x80 0x20AC
+0x81 0x067E
+0x82 0x201A
+0x83 0x0192
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x88 0x02C6
+0x89 0x2030
+0x8A 0x0679
+0x8B 0x2039
+0x8C 0x0152
+0x8D 0x0686
+0x8E 0x0698
+0x8F 0x0688
+0x90 0x06AF
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x98 0x06A9
+0x99 0x2122
+0x9A 0x0691
+0x9B 0x203A
+0x9C 0x0153
+0x9D-0x9E 0x200C
+0x9F 0x06BA
+0xA0 0x00A0
+0xA1 0x060C
+0xA2-0xA9 0x00A2
+0xAA 0x06BE
+0xAB-0xB9 0x00AB
+0xBA 0x061B
+0xBB-0xBE 0x00BB
+0xBF 0x061F
+0xC0 0x06C1
+0xC1-0xD6 0x0621
+0xD7 0x00D7
+0xD8-0xDB 0x0637
+0xDC-0xDF 0x0640
+0xE0 0x00E0
+0xE1 0x0644
+0xE2 0x00E2
+0xE3-0xE6 0x0645
+0xE7-0xEB 0x00E7
+0xEC-0xED 0x0649
+0xEE-0xEF 0x00EE
+0xF0-0xF3 0x064B
+0xF4 0x00F4
+0xF5-0xF6 0x064F
+0xF7 0x00F7
+0xF8 0x0651
+0xF9 0x00F9
+0xFA 0x0652
+0xFB-0xFC 0x00FB
+0xFD-0xFE 0x200E
+0xFF 0x06D2
diff --git a/etc/charsets/CP1257.map b/etc/charsets/CP1257.map
new file mode 100644 (file)
index 0000000..30af706
--- /dev/null
@@ -0,0 +1,92 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1257
+0x00-0x7F 0x0000
+0x80 0x20AC
+0x82 0x201A
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x89 0x2030
+0x8B 0x2039
+0x8D 0x00A8
+0x8E 0x02C7
+0x8F 0x00B8
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x99 0x2122
+0x9B 0x203A
+0x9D 0x00AF
+0x9E 0x02DB
+0xA0 0x00A0
+0xA2-0xA4 0x00A2
+0xA6-0xA7 0x00A6
+0xA8 0x00D8
+0xA9 0x00A9
+0xAA 0x0156
+0xAB-0xAE 0x00AB
+0xAF 0x00C6
+0xB0-0xB7 0x00B0
+0xB8 0x00F8
+0xB9 0x00B9
+0xBA 0x0157
+0xBB-0xBE 0x00BB
+0xBF 0x00E6
+0xC0 0x0104
+0xC1 0x012E
+0xC2 0x0100
+0xC3 0x0106
+0xC4-0xC5 0x00C4
+0xC6 0x0118
+0xC7 0x0112
+0xC8 0x010C
+0xC9 0x00C9
+0xCA 0x0179
+0xCB 0x0116
+0xCC 0x0122
+0xCD 0x0136
+0xCE 0x012A
+0xCF 0x013B
+0xD0 0x0160
+0xD1 0x0143
+0xD2 0x0145
+0xD3 0x00D3
+0xD4 0x014C
+0xD5-0xD7 0x00D5
+0xD8 0x0172
+0xD9 0x0141
+0xDA 0x015A
+0xDB 0x016A
+0xDC 0x00DC
+0xDD 0x017B
+0xDE 0x017D
+0xDF 0x00DF
+0xE0 0x0105
+0xE1 0x012F
+0xE2 0x0101
+0xE3 0x0107
+0xE4-0xE5 0x00E4
+0xE6 0x0119
+0xE7 0x0113
+0xE8 0x010D
+0xE9 0x00E9
+0xEA 0x017A
+0xEB 0x0117
+0xEC 0x0123
+0xED 0x0137
+0xEE 0x012B
+0xEF 0x013C
+0xF0 0x0161
+0xF1 0x0144
+0xF2 0x0146
+0xF3 0x00F3
+0xF4 0x014D
+0xF5-0xF7 0x00F5
+0xF8 0x0173
+0xF9 0x0142
+0xFA 0x015B
+0xFB 0x016B
+0xFC 0x00FC
+0xFD 0x017C
+0xFE 0x017E
+0xFF 0x02D9
diff --git a/etc/charsets/CP1258.map b/etc/charsets/CP1258.map
new file mode 100644 (file)
index 0000000..0193917
--- /dev/null
@@ -0,0 +1,48 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP1258
+0x00-0x7F 0x0000
+0x80 0x20AC
+0x82 0x201A
+0x83 0x0192
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x88 0x02C6
+0x89 0x2030
+0x8B 0x2039
+0x8C 0x0152
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x98 0x02DC
+0x99 0x2122
+0x9B 0x203A
+0x9C 0x0153
+0x9F 0x0178
+0xA0-0xC2 0x00A0
+0xC3 0x0102
+0xC4-0xCB 0x00C4
+0xCC 0x0300
+0xCD-0xCF 0x00CD
+0xD0 0x0110
+0xD1 0x00D1
+0xD2 0x0309
+0xD3-0xD4 0x00D3
+0xD5 0x01A0
+0xD6-0xDC 0x00D6
+0xDD 0x01AF
+0xDE 0x0303
+0xDF-0xE2 0x00DF
+0xE3 0x0103
+0xE4-0xEB 0x00E4
+0xEC 0x0301
+0xED-0xEF 0x00ED
+0xF0 0x0111
+0xF1 0x00F1
+0xF2 0x0323
+0xF3-0xF4 0x00F3
+0xF5 0x01A1
+0xF6-0xFC 0x00F6
+0xFD 0x01B0
+0xFE 0x20AB
+0xFF 0x00FF
diff --git a/etc/charsets/CP720.map b/etc/charsets/CP720.map
new file mode 100644 (file)
index 0000000..9c3937c
--- /dev/null
@@ -0,0 +1,77 @@
+# Generated from http://www.microsoft.com/globaldev/reference/oem/720.htm
+0x00-0x7F 0x0000
+0x82 0x00E9
+0x83 0x00E2
+0x85 0x00E0
+0x87 0x00E7
+0x88-0x89 0x00EA
+0x8A 0x00E8
+0x8B 0x00EF
+0x8C 0x00EE
+0x91-0x92 0x0651
+0x93 0x00F4
+0x94 0x00A4
+0x95 0x0640
+0x96 0x00FB
+0x97 0x00F9
+0x98-0x9B 0x0621
+0x9C 0x00A3
+0x9D-0xAD 0x0625
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0-0xE4 0x0636
+0xE5 0x0641
+0xE6 0x00B5
+0xE7-0xEF 0x0642
+0xF0 0x2261
+0xF1-0xF6 0x064B
+0xF7 0x2248
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x207F
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/CP737.map b/etc/charsets/CP737.map
new file mode 100644 (file)
index 0000000..05a401d
--- /dev/null
@@ -0,0 +1,74 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP737
+0x00-0x7F 0x0000
+0x80-0x90 0x0391
+0x91-0x97 0x03A3
+0x98-0xA8 0x03B1
+0xA9 0x03C3
+0xAA 0x03C2
+0xAB-0xAF 0x03C4
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0 0x03C9
+0xE1-0xE3 0x03AC
+0xE4 0x03CA
+0xE5 0x03AF
+0xE6-0xE7 0x03CC
+0xE8 0x03CB
+0xE9 0x03CE
+0xEA 0x0386
+0xEB-0xED 0x0388
+0xEE 0x038C
+0xEF-0xF0 0x038E
+0xF1 0x00B1
+0xF2 0x2265
+0xF3 0x2264
+0xF4-0xF5 0x03AA
+0xF6 0x00F7
+0xF7 0x2248
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x207F
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/CP775.map b/etc/charsets/CP775.map
new file mode 100644 (file)
index 0000000..dabe9c7
--- /dev/null
@@ -0,0 +1,122 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP775
+0x00-0x7F 0x0000
+0x80 0x0106
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x0101
+0x84 0x00E4
+0x85 0x0123
+0x86 0x00E5
+0x87 0x0107
+0x88 0x0142
+0x89 0x0113
+0x8A-0x8B 0x0156
+0x8C 0x012B
+0x8D 0x0179
+0x8E-0x8F 0x00C4
+0x90 0x00C9
+0x91 0x00E6
+0x92 0x00C6
+0x93 0x014D
+0x94 0x00F6
+0x95 0x0122
+0x96 0x00A2
+0x97-0x98 0x015A
+0x99 0x00D6
+0x9A 0x00DC
+0x9B 0x00F8
+0x9C 0x00A3
+0x9D 0x00D8
+0x9E 0x00D7
+0x9F 0x00A4
+0xA0 0x0100
+0xA1 0x012A
+0xA2 0x00F3
+0xA3-0xA4 0x017B
+0xA5 0x017A
+0xA6 0x201D
+0xA7 0x00A6
+0xA8 0x00A9
+0xA9 0x00AE
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x0141
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5 0x0104
+0xB6 0x010C
+0xB7 0x0118
+0xB8 0x0116
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x012E
+0xBE 0x0160
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6 0x0172
+0xC7 0x016A
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF 0x017D
+0xD0 0x0105
+0xD1 0x010D
+0xD2 0x0119
+0xD3 0x0117
+0xD4 0x012F
+0xD5 0x0161
+0xD6 0x0173
+0xD7 0x016B
+0xD8 0x017E
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0 0x00D3
+0xE1 0x00DF
+0xE2 0x014C
+0xE3 0x0143
+0xE4 0x00F5
+0xE5 0x00D5
+0xE6 0x00B5
+0xE7 0x0144
+0xE8-0xE9 0x0136
+0xEA-0xEB 0x013B
+0xEC 0x0146
+0xED 0x0112
+0xEE 0x0145
+0xEF 0x2019
+0xF0 0x00AD
+0xF1 0x00B1
+0xF2 0x201C
+0xF3 0x00BE
+0xF4 0x00B6
+0xF5 0x00A7
+0xF6 0x00F7
+0xF7 0x201E
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x00B9
+0xFC 0x00B3
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/CP858.map b/etc/charsets/CP858.map
new file mode 100644 (file)
index 0000000..2a2c9e6
--- /dev/null
@@ -0,0 +1,121 @@
+# Generated from http://www.microsoft.com/globaldev/reference/oem/858.htm
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x00E2
+0x84 0x00E4
+0x85 0x00E0
+0x86 0x00E5
+0x87 0x00E7
+0x88-0x89 0x00EA
+0x8A 0x00E8
+0x8B 0x00EF
+0x8C 0x00EE
+0x8D 0x00EC
+0x8E-0x8F 0x00C4
+0x90 0x00C9
+0x91 0x00E6
+0x92 0x00C6
+0x93 0x00F4
+0x94 0x00F6
+0x95 0x00F2
+0x96 0x00FB
+0x97 0x00F9
+0x98 0x00FF
+0x99 0x00D6
+0x9A 0x00DC
+0x9B 0x00F8
+0x9C 0x00A3
+0x9D 0x00D8
+0x9E 0x00D7
+0x9F 0x0192
+0xA0 0x00E1
+0xA1 0x00ED
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4 0x00F1
+0xA5 0x00D1
+0xA6 0x00AA
+0xA7 0x00BA
+0xA8 0x00BF
+0xA9 0x00AE
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x00A1
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x00C1
+0xB7 0x00C0
+0xB8 0x00A9
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x00A2
+0xBE 0x00A5
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6 0x00E3
+0xC7 0x00C3
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF 0x00A4
+0xD0 0x00F0
+0xD1 0x00D0
+0xD2-0xD3 0x00CA
+0xD4 0x00C8
+0xD5 0x20AC
+0xD6-0xD8 0x00CD
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x00A6
+0xDE 0x00CC
+0xDF 0x2580
+0xE0 0x00D3
+0xE1 0x00DF
+0xE2 0x00D4
+0xE3 0x00D2
+0xE4 0x00F5
+0xE5 0x00D5
+0xE6 0x00B5
+0xE7 0x00FE
+0xE8 0x00DE
+0xE9-0xEA 0x00DA
+0xEB 0x00D9
+0xEC 0x00FD
+0xED 0x00DD
+0xEE 0x00AF
+0xEF 0x00B4
+0xF0 0x00AD
+0xF1 0x00B1
+0xF2 0x2017
+0xF3 0x00BE
+0xF4 0x00B6
+0xF5 0x00A7
+0xF6 0x00F7
+0xF7 0x00B8
+0xF8 0x00B0
+0xF9 0x00A8
+0xFA 0x00B7
+0xFB 0x00B9
+0xFC 0x00B3
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/CP932-2BYTE.map b/etc/charsets/CP932-2BYTE.map
new file mode 100644 (file)
index 0000000..cc04e8f
--- /dev/null
@@ -0,0 +1,9605 @@
+# Generated from http://www.unicode.org/Public/MAPPINGS/.../cp932.txt
+0x8140 0x3000 # 0 2121
+0x8141 0x3001 # 0 2122
+0x8142 0x3002 # 0 2123
+0x8143 0xFF0C # 0 2124
+0x8144 0xFF0E # 0 2125
+0x8145 0x30FB # 0 2126
+0x8146 0xFF1A # 0 2127
+0x8147 0xFF1B # 0 2128
+0x8148 0xFF1F # 0 2129
+0x8149 0xFF01 # 0 212A
+0x814A 0x309B # 0 212B
+0x814B 0x309C # 0 212C
+0x814C 0x00B4 # 0 212D
+0x814D 0xFF40 # 0 212E
+0x814E 0x00A8 # 0 212F
+0x814F 0xFF3E # 0 2130
+0x8150 0xFFE3 # 0 2131
+0x8151 0xFF3F # 0 2132
+0x8152 0x30FD # 0 2133
+0x8153 0x30FE # 0 2134
+0x8154 0x309D # 0 2135
+0x8155 0x309E # 0 2136
+0x8156 0x3003 # 0 2137
+0x8157 0x4EDD # 0 2138
+0x8158 0x3005 # 0 2139
+0x8159 0x3006 # 0 213A
+0x815A 0x3007 # 0 213B
+0x815B 0x30FC # 0 213C
+0x815C 0x2015 # 0 213D
+0x815D 0x2010 # 0 213E
+0x815E 0xFF0F # 0 213F
+0x815F 0xFF3C # 0 2140
+0x8160 0xFF5E # 0 2141
+0x8161 0x2225 # 0 2142
+0x8162 0xFF5C # 0 2143
+0x8163 0x2026 # 0 2144
+0x8164 0x2025 # 0 2145
+0x8165 0x2018 # 0 2146
+0x8166 0x2019 # 0 2147
+0x8167 0x201C # 0 2148
+0x8168 0x201D # 0 2149
+0x8169 0xFF08 # 0 214A
+0x816A 0xFF09 # 0 214B
+0x816B 0x3014 # 0 214C
+0x816C 0x3015 # 0 214D
+0x816D 0xFF3B # 0 214E
+0x816E 0xFF3D # 0 214F
+0x816F 0xFF5B # 0 2150
+0x8170 0xFF5D # 0 2151
+0x8171 0x3008 # 0 2152
+0x8172 0x3009 # 0 2153
+0x8173 0x300A # 0 2154
+0x8174 0x300B # 0 2155
+0x8175 0x300C # 0 2156
+0x8176 0x300D # 0 2157
+0x8177 0x300E # 0 2158
+0x8178 0x300F # 0 2159
+0x8179 0x3010 # 0 215A
+0x817A 0x3011 # 0 215B
+0x817B 0xFF0B # 0 215C
+0x817C 0xFF0D # 0 215D
+0x817D 0x00B1 # 0 215E
+0x817E 0x00D7 # 0 215F
+0x8180 0x00F7 # 0 2160
+0x8181 0xFF1D # 0 2161
+0x8182 0x2260 # 0 2162
+0x8183 0xFF1C # 0 2163
+0x8184 0xFF1E # 0 2164
+0x8185 0x2266 # 0 2165
+0x8186 0x2267 # 0 2166
+0x8187 0x221E # 0 2167
+0x8188 0x2234 # 0 2168
+0x8189 0x2642 # 0 2169
+0x818A 0x2640 # 0 216A
+0x818B 0x00B0 # 0 216B
+0x818C 0x2032 # 0 216C
+0x818D 0x2033 # 0 216D
+0x818E 0x2103 # 0 216E
+0x818F 0xFFE5 # 0 216F
+0x8190 0xFF04 # 0 2170
+0x8191 0xFFE0 # 0 2171
+0x8192 0xFFE1 # 0 2172
+0x8193 0xFF05 # 0 2173
+0x8194 0xFF03 # 0 2174
+0x8195 0xFF06 # 0 2175
+0x8196 0xFF0A # 0 2176
+0x8197 0xFF20 # 0 2177
+0x8198 0x00A7 # 0 2178
+0x8199 0x2606 # 0 2179
+0x819A 0x2605 # 0 217A
+0x819B 0x25CB # 0 217B
+0x819C 0x25CF # 0 217C
+0x819D 0x25CE # 0 217D
+0x819E 0x25C7 # 0 217E
+0x819F 0x25C6 # 0 2221
+0x81A0 0x25A1 # 0 2222
+0x81A1 0x25A0 # 0 2223
+0x81A2 0x25B3 # 0 2224
+0x81A3 0x25B2 # 0 2225
+0x81A4 0x25BD # 0 2226
+0x81A5 0x25BC # 0 2227
+0x81A6 0x203B # 0 2228
+0x81A7 0x3012 # 0 2229
+0x81A8 0x2192 # 0 222A
+0x81A9 0x2190 # 0 222B
+0x81AA 0x2191 # 0 222C
+0x81AB 0x2193 # 0 222D
+0x81AC 0x3013 # 0 222E
+0x81B8 0x2208 # 0 223A
+0x81B9 0x220B # 0 223B
+0x81BA 0x2286 # 0 223C
+0x81BB 0x2287 # 0 223D
+0x81BC 0x2282 # 0 223E
+0x81BD 0x2283 # 0 223F
+0x81BE 0x222A # 0 2240
+0x81BF 0x2229 # 0 2241
+0x81C8 0x2227 # 0 224A
+0x81C9 0x2228 # 0 224B
+0x81CA 0xFFE2 # 0 224C
+0x81CB 0x21D2 # 0 224D
+0x81CC 0x21D4 # 0 224E
+0x81CD 0x2200 # 0 224F
+0x81CE 0x2203 # 0 2250
+0x81DA 0x2220 # 0 225C
+0x81DB 0x22A5 # 0 225D
+0x81DC 0x2312 # 0 225E
+0x81DD 0x2202 # 0 225F
+0x81DE 0x2207 # 0 2260
+0x81DF 0x2261 # 0 2261
+0x81E0 0x2252 # 0 2262
+0x81E1 0x226A # 0 2263
+0x81E2 0x226B # 0 2264
+0x81E3 0x221A # 0 2265
+0x81E4 0x223D # 0 2266
+0x81E5 0x221D # 0 2267
+0x81E6 0x2235 # 0 2268
+0x81E7 0x222B # 0 2269
+0x81E8 0x222C # 0 226A
+0x81F0 0x212B # 0 2272
+0x81F1 0x2030 # 0 2273
+0x81F2 0x266F # 0 2274
+0x81F3 0x266D # 0 2275
+0x81F4 0x266A # 0 2276
+0x81F5 0x2020 # 0 2277
+0x81F6 0x2021 # 0 2278
+0x81F7 0x00B6 # 0 2279
+0x81FC 0x25EF # 0 227E
+0x824F 0xFF10 # 0 2330
+0x8250 0xFF11 # 0 2331
+0x8251 0xFF12 # 0 2332
+0x8252 0xFF13 # 0 2333
+0x8253 0xFF14 # 0 2334
+0x8254 0xFF15 # 0 2335
+0x8255 0xFF16 # 0 2336
+0x8256 0xFF17 # 0 2337
+0x8257 0xFF18 # 0 2338
+0x8258 0xFF19 # 0 2339
+0x8260 0xFF21 # 0 2341
+0x8261 0xFF22 # 0 2342
+0x8262 0xFF23 # 0 2343
+0x8263 0xFF24 # 0 2344
+0x8264 0xFF25 # 0 2345
+0x8265 0xFF26 # 0 2346
+0x8266 0xFF27 # 0 2347
+0x8267 0xFF28 # 0 2348
+0x8268 0xFF29 # 0 2349
+0x8269 0xFF2A # 0 234A
+0x826A 0xFF2B # 0 234B
+0x826B 0xFF2C # 0 234C
+0x826C 0xFF2D # 0 234D
+0x826D 0xFF2E # 0 234E
+0x826E 0xFF2F # 0 234F
+0x826F 0xFF30 # 0 2350
+0x8270 0xFF31 # 0 2351
+0x8271 0xFF32 # 0 2352
+0x8272 0xFF33 # 0 2353
+0x8273 0xFF34 # 0 2354
+0x8274 0xFF35 # 0 2355
+0x8275 0xFF36 # 0 2356
+0x8276 0xFF37 # 0 2357
+0x8277 0xFF38 # 0 2358
+0x8278 0xFF39 # 0 2359
+0x8279 0xFF3A # 0 235A
+0x8281 0xFF41 # 0 2361
+0x8282 0xFF42 # 0 2362
+0x8283 0xFF43 # 0 2363
+0x8284 0xFF44 # 0 2364
+0x8285 0xFF45 # 0 2365
+0x8286 0xFF46 # 0 2366
+0x8287 0xFF47 # 0 2367
+0x8288 0xFF48 # 0 2368
+0x8289 0xFF49 # 0 2369
+0x828A 0xFF4A # 0 236A
+0x828B 0xFF4B # 0 236B
+0x828C 0xFF4C # 0 236C
+0x828D 0xFF4D # 0 236D
+0x828E 0xFF4E # 0 236E
+0x828F 0xFF4F # 0 236F
+0x8290 0xFF50 # 0 2370
+0x8291 0xFF51 # 0 2371
+0x8292 0xFF52 # 0 2372
+0x8293 0xFF53 # 0 2373
+0x8294 0xFF54 # 0 2374
+0x8295 0xFF55 # 0 2375
+0x8296 0xFF56 # 0 2376
+0x8297 0xFF57 # 0 2377
+0x8298 0xFF58 # 0 2378
+0x8299 0xFF59 # 0 2379
+0x829A 0xFF5A # 0 237A
+0x829F 0x3041 # 0 2421
+0x82A0 0x3042 # 0 2422
+0x82A1 0x3043 # 0 2423
+0x82A2 0x3044 # 0 2424
+0x82A3 0x3045 # 0 2425
+0x82A4 0x3046 # 0 2426
+0x82A5 0x3047 # 0 2427
+0x82A6 0x3048 # 0 2428
+0x82A7 0x3049 # 0 2429
+0x82A8 0x304A # 0 242A
+0x82A9 0x304B # 0 242B
+0x82AA 0x304C # 0 242C
+0x82AB 0x304D # 0 242D
+0x82AC 0x304E # 0 242E
+0x82AD 0x304F # 0 242F
+0x82AE 0x3050 # 0 2430
+0x82AF 0x3051 # 0 2431
+0x82B0 0x3052 # 0 2432
+0x82B1 0x3053 # 0 2433
+0x82B2 0x3054 # 0 2434
+0x82B3 0x3055 # 0 2435
+0x82B4 0x3056 # 0 2436
+0x82B5 0x3057 # 0 2437
+0x82B6 0x3058 # 0 2438
+0x82B7 0x3059 # 0 2439
+0x82B8 0x305A # 0 243A
+0x82B9 0x305B # 0 243B
+0x82BA 0x305C # 0 243C
+0x82BB 0x305D # 0 243D
+0x82BC 0x305E # 0 243E
+0x82BD 0x305F # 0 243F
+0x82BE 0x3060 # 0 2440
+0x82BF 0x3061 # 0 2441
+0x82C0 0x3062 # 0 2442
+0x82C1 0x3063 # 0 2443
+0x82C2 0x3064 # 0 2444
+0x82C3 0x3065 # 0 2445
+0x82C4 0x3066 # 0 2446
+0x82C5 0x3067 # 0 2447
+0x82C6 0x3068 # 0 2448
+0x82C7 0x3069 # 0 2449
+0x82C8 0x306A # 0 244A
+0x82C9 0x306B # 0 244B
+0x82CA 0x306C # 0 244C
+0x82CB 0x306D # 0 244D
+0x82CC 0x306E # 0 244E
+0x82CD 0x306F # 0 244F
+0x82CE 0x3070 # 0 2450
+0x82CF 0x3071 # 0 2451
+0x82D0 0x3072 # 0 2452
+0x82D1 0x3073 # 0 2453
+0x82D2 0x3074 # 0 2454
+0x82D3 0x3075 # 0 2455
+0x82D4 0x3076 # 0 2456
+0x82D5 0x3077 # 0 2457
+0x82D6 0x3078 # 0 2458
+0x82D7 0x3079 # 0 2459
+0x82D8 0x307A # 0 245A
+0x82D9 0x307B # 0 245B
+0x82DA 0x307C # 0 245C
+0x82DB 0x307D # 0 245D
+0x82DC 0x307E # 0 245E
+0x82DD 0x307F # 0 245F
+0x82DE 0x3080 # 0 2460
+0x82DF 0x3081 # 0 2461
+0x82E0 0x3082 # 0 2462
+0x82E1 0x3083 # 0 2463
+0x82E2 0x3084 # 0 2464
+0x82E3 0x3085 # 0 2465
+0x82E4 0x3086 # 0 2466
+0x82E5 0x3087 # 0 2467
+0x82E6 0x3088 # 0 2468
+0x82E7 0x3089 # 0 2469
+0x82E8 0x308A # 0 246A
+0x82E9 0x308B # 0 246B
+0x82EA 0x308C # 0 246C
+0x82EB 0x308D # 0 246D
+0x82EC 0x308E # 0 246E
+0x82ED 0x308F # 0 246F
+0x82EE 0x3090 # 0 2470
+0x82EF 0x3091 # 0 2471
+0x82F0 0x3092 # 0 2472
+0x82F1 0x3093 # 0 2473
+0x8340 0x30A1 # 0 2521
+0x8341 0x30A2 # 0 2522
+0x8342 0x30A3 # 0 2523
+0x8343 0x30A4 # 0 2524
+0x8344 0x30A5 # 0 2525
+0x8345 0x30A6 # 0 2526
+0x8346 0x30A7 # 0 2527
+0x8347 0x30A8 # 0 2528
+0x8348 0x30A9 # 0 2529
+0x8349 0x30AA # 0 252A
+0x834A 0x30AB # 0 252B
+0x834B 0x30AC # 0 252C
+0x834C 0x30AD # 0 252D
+0x834D 0x30AE # 0 252E
+0x834E 0x30AF # 0 252F
+0x834F 0x30B0 # 0 2530
+0x8350 0x30B1 # 0 2531
+0x8351 0x30B2 # 0 2532
+0x8352 0x30B3 # 0 2533
+0x8353 0x30B4 # 0 2534
+0x8354 0x30B5 # 0 2535
+0x8355 0x30B6 # 0 2536
+0x8356 0x30B7 # 0 2537
+0x8357 0x30B8 # 0 2538
+0x8358 0x30B9 # 0 2539
+0x8359 0x30BA # 0 253A
+0x835A 0x30BB # 0 253B
+0x835B 0x30BC # 0 253C
+0x835C 0x30BD # 0 253D
+0x835D 0x30BE # 0 253E
+0x835E 0x30BF # 0 253F
+0x835F 0x30C0 # 0 2540
+0x8360 0x30C1 # 0 2541
+0x8361 0x30C2 # 0 2542
+0x8362 0x30C3 # 0 2543
+0x8363 0x30C4 # 0 2544
+0x8364 0x30C5 # 0 2545
+0x8365 0x30C6 # 0 2546
+0x8366 0x30C7 # 0 2547
+0x8367 0x30C8 # 0 2548
+0x8368 0x30C9 # 0 2549
+0x8369 0x30CA # 0 254A
+0x836A 0x30CB # 0 254B
+0x836B 0x30CC # 0 254C
+0x836C 0x30CD # 0 254D
+0x836D 0x30CE # 0 254E
+0x836E 0x30CF # 0 254F
+0x836F 0x30D0 # 0 2550
+0x8370 0x30D1 # 0 2551
+0x8371 0x30D2 # 0 2552
+0x8372 0x30D3 # 0 2553
+0x8373 0x30D4 # 0 2554
+0x8374 0x30D5 # 0 2555
+0x8375 0x30D6 # 0 2556
+0x8376 0x30D7 # 0 2557
+0x8377 0x30D8 # 0 2558
+0x8378 0x30D9 # 0 2559
+0x8379 0x30DA # 0 255A
+0x837A 0x30DB # 0 255B
+0x837B 0x30DC # 0 255C
+0x837C 0x30DD # 0 255D
+0x837D 0x30DE # 0 255E
+0x837E 0x30DF # 0 255F
+0x8380 0x30E0 # 0 2560
+0x8381 0x30E1 # 0 2561
+0x8382 0x30E2 # 0 2562
+0x8383 0x30E3 # 0 2563
+0x8384 0x30E4 # 0 2564
+0x8385 0x30E5 # 0 2565
+0x8386 0x30E6 # 0 2566
+0x8387 0x30E7 # 0 2567
+0x8388 0x30E8 # 0 2568
+0x8389 0x30E9 # 0 2569
+0x838A 0x30EA # 0 256A
+0x838B 0x30EB # 0 256B
+0x838C 0x30EC # 0 256C
+0x838D 0x30ED # 0 256D
+0x838E 0x30EE # 0 256E
+0x838F 0x30EF # 0 256F
+0x8390 0x30F0 # 0 2570
+0x8391 0x30F1 # 0 2571
+0x8392 0x30F2 # 0 2572
+0x8393 0x30F3 # 0 2573
+0x8394 0x30F4 # 0 2574
+0x8395 0x30F5 # 0 2575
+0x8396 0x30F6 # 0 2576
+0x839F 0x0391 # 0 2621
+0x83A0 0x0392 # 0 2622
+0x83A1 0x0393 # 0 2623
+0x83A2 0x0394 # 0 2624
+0x83A3 0x0395 # 0 2625
+0x83A4 0x0396 # 0 2626
+0x83A5 0x0397 # 0 2627
+0x83A6 0x0398 # 0 2628
+0x83A7 0x0399 # 0 2629
+0x83A8 0x039A # 0 262A
+0x83A9 0x039B # 0 262B
+0x83AA 0x039C # 0 262C
+0x83AB 0x039D # 0 262D
+0x83AC 0x039E # 0 262E
+0x83AD 0x039F # 0 262F
+0x83AE 0x03A0 # 0 2630
+0x83AF 0x03A1 # 0 2631
+0x83B0 0x03A3 # 0 2632
+0x83B1 0x03A4 # 0 2633
+0x83B2 0x03A5 # 0 2634
+0x83B3 0x03A6 # 0 2635
+0x83B4 0x03A7 # 0 2636
+0x83B5 0x03A8 # 0 2637
+0x83B6 0x03A9 # 0 2638
+0x83BF 0x03B1 # 0 2641
+0x83C0 0x03B2 # 0 2642
+0x83C1 0x03B3 # 0 2643
+0x83C2 0x03B4 # 0 2644
+0x83C3 0x03B5 # 0 2645
+0x83C4 0x03B6 # 0 2646
+0x83C5 0x03B7 # 0 2647
+0x83C6 0x03B8 # 0 2648
+0x83C7 0x03B9 # 0 2649
+0x83C8 0x03BA # 0 264A
+0x83C9 0x03BB # 0 264B
+0x83CA 0x03BC # 0 264C
+0x83CB 0x03BD # 0 264D
+0x83CC 0x03BE # 0 264E
+0x83CD 0x03BF # 0 264F
+0x83CE 0x03C0 # 0 2650
+0x83CF 0x03C1 # 0 2651
+0x83D0 0x03C3 # 0 2652
+0x83D1 0x03C4 # 0 2653
+0x83D2 0x03C5 # 0 2654
+0x83D3 0x03C6 # 0 2655
+0x83D4 0x03C7 # 0 2656
+0x83D5 0x03C8 # 0 2657
+0x83D6 0x03C9 # 0 2658
+0x8440 0x0410 # 0 2721
+0x8441 0x0411 # 0 2722
+0x8442 0x0412 # 0 2723
+0x8443 0x0413 # 0 2724
+0x8444 0x0414 # 0 2725
+0x8445 0x0415 # 0 2726
+0x8446 0x0401 # 0 2727
+0x8447 0x0416 # 0 2728
+0x8448 0x0417 # 0 2729
+0x8449 0x0418 # 0 272A
+0x844A 0x0419 # 0 272B
+0x844B 0x041A # 0 272C
+0x844C 0x041B # 0 272D
+0x844D 0x041C # 0 272E
+0x844E 0x041D # 0 272F
+0x844F 0x041E # 0 2730
+0x8450 0x041F # 0 2731
+0x8451 0x0420 # 0 2732
+0x8452 0x0421 # 0 2733
+0x8453 0x0422 # 0 2734
+0x8454 0x0423 # 0 2735
+0x8455 0x0424 # 0 2736
+0x8456 0x0425 # 0 2737
+0x8457 0x0426 # 0 2738
+0x8458 0x0427 # 0 2739
+0x8459 0x0428 # 0 273A
+0x845A 0x0429 # 0 273B
+0x845B 0x042A # 0 273C
+0x845C 0x042B # 0 273D
+0x845D 0x042C # 0 273E
+0x845E 0x042D # 0 273F
+0x845F 0x042E # 0 2740
+0x8460 0x042F # 0 2741
+0x8470 0x0430 # 0 2751
+0x8471 0x0431 # 0 2752
+0x8472 0x0432 # 0 2753
+0x8473 0x0433 # 0 2754
+0x8474 0x0434 # 0 2755
+0x8475 0x0435 # 0 2756
+0x8476 0x0451 # 0 2757
+0x8477 0x0436 # 0 2758
+0x8478 0x0437 # 0 2759
+0x8479 0x0438 # 0 275A
+0x847A 0x0439 # 0 275B
+0x847B 0x043A # 0 275C
+0x847C 0x043B # 0 275D
+0x847D 0x043C # 0 275E
+0x847E 0x043D # 0 275F
+0x8480 0x043E # 0 2760
+0x8481 0x043F # 0 2761
+0x8482 0x0440 # 0 2762
+0x8483 0x0441 # 0 2763
+0x8484 0x0442 # 0 2764
+0x8485 0x0443 # 0 2765
+0x8486 0x0444 # 0 2766
+0x8487 0x0445 # 0 2767
+0x8488 0x0446 # 0 2768
+0x8489 0x0447 # 0 2769
+0x848A 0x0448 # 0 276A
+0x848B 0x0449 # 0 276B
+0x848C 0x044A # 0 276C
+0x848D 0x044B # 0 276D
+0x848E 0x044C # 0 276E
+0x848F 0x044D # 0 276F
+0x8490 0x044E # 0 2770
+0x8491 0x044F # 0 2771
+0x849F 0x2500 # 0 2821
+0x84A0 0x2502 # 0 2822
+0x84A1 0x250C # 0 2823
+0x84A2 0x2510 # 0 2824
+0x84A3 0x2518 # 0 2825
+0x84A4 0x2514 # 0 2826
+0x84A5 0x251C # 0 2827
+0x84A6 0x252C # 0 2828
+0x84A7 0x2524 # 0 2829
+0x84A8 0x2534 # 0 282A
+0x84A9 0x253C # 0 282B
+0x84AA 0x2501 # 0 282C
+0x84AB 0x2503 # 0 282D
+0x84AC 0x250F # 0 282E
+0x84AD 0x2513 # 0 282F
+0x84AE 0x251B # 0 2830
+0x84AF 0x2517 # 0 2831
+0x84B0 0x2523 # 0 2832
+0x84B1 0x2533 # 0 2833
+0x84B2 0x252B # 0 2834
+0x84B3 0x253B # 0 2835
+0x84B4 0x254B # 0 2836
+0x84B5 0x2520 # 0 2837
+0x84B6 0x252F # 0 2838
+0x84B7 0x2528 # 0 2839
+0x84B8 0x2537 # 0 283A
+0x84B9 0x253F # 0 283B
+0x84BA 0x251D # 0 283C
+0x84BB 0x2530 # 0 283D
+0x84BC 0x2525 # 0 283E
+0x84BD 0x2538 # 0 283F
+0x84BE 0x2542 # 0 2840
+0x889F 0x4E9C # 0 3021
+0x88A0 0x5516 # 0 3022
+0x88A1 0x5A03 # 0 3023
+0x88A2 0x963F # 0 3024
+0x88A3 0x54C0 # 0 3025
+0x88A4 0x611B # 0 3026
+0x88A5 0x6328 # 0 3027
+0x88A6 0x59F6 # 0 3028
+0x88A7 0x9022 # 0 3029
+0x88A8 0x8475 # 0 302A
+0x88A9 0x831C # 0 302B
+0x88AA 0x7A50 # 0 302C
+0x88AB 0x60AA # 0 302D
+0x88AC 0x63E1 # 0 302E
+0x88AD 0x6E25 # 0 302F
+0x88AE 0x65ED # 0 3030
+0x88AF 0x8466 # 0 3031
+0x88B0 0x82A6 # 0 3032
+0x88B1 0x9BF5 # 0 3033
+0x88B2 0x6893 # 0 3034
+0x88B3 0x5727 # 0 3035
+0x88B4 0x65A1 # 0 3036
+0x88B5 0x6271 # 0 3037
+0x88B6 0x5B9B # 0 3038
+0x88B7 0x59D0 # 0 3039
+0x88B8 0x867B # 0 303A
+0x88B9 0x98F4 # 0 303B
+0x88BA 0x7D62 # 0 303C
+0x88BB 0x7DBE # 0 303D
+0x88BC 0x9B8E # 0 303E
+0x88BD 0x6216 # 0 303F
+0x88BE 0x7C9F # 0 3040
+0x88BF 0x88B7 # 0 3041
+0x88C0 0x5B89 # 0 3042
+0x88C1 0x5EB5 # 0 3043
+0x88C2 0x6309 # 0 3044
+0x88C3 0x6697 # 0 3045
+0x88C4 0x6848 # 0 3046
+0x88C5 0x95C7 # 0 3047
+0x88C6 0x978D # 0 3048
+0x88C7 0x674F # 0 3049
+0x88C8 0x4EE5 # 0 304A
+0x88C9 0x4F0A # 0 304B
+0x88CA 0x4F4D # 0 304C
+0x88CB 0x4F9D # 0 304D
+0x88CC 0x5049 # 0 304E
+0x88CD 0x56F2 # 0 304F
+0x88CE 0x5937 # 0 3050
+0x88CF 0x59D4 # 0 3051
+0x88D0 0x5A01 # 0 3052
+0x88D1 0x5C09 # 0 3053
+0x88D2 0x60DF # 0 3054
+0x88D3 0x610F # 0 3055
+0x88D4 0x6170 # 0 3056
+0x88D5 0x6613 # 0 3057
+0x88D6 0x6905 # 0 3058
+0x88D7 0x70BA # 0 3059
+0x88D8 0x754F # 0 305A
+0x88D9 0x7570 # 0 305B
+0x88DA 0x79FB # 0 305C
+0x88DB 0x7DAD # 0 305D
+0x88DC 0x7DEF # 0 305E
+0x88DD 0x80C3 # 0 305F
+0x88DE 0x840E # 0 3060
+0x88DF 0x8863 # 0 3061
+0x88E0 0x8B02 # 0 3062
+0x88E1 0x9055 # 0 3063
+0x88E2 0x907A # 0 3064
+0x88E3 0x533B # 0 3065
+0x88E4 0x4E95 # 0 3066
+0x88E5 0x4EA5 # 0 3067
+0x88E6 0x57DF # 0 3068
+0x88E7 0x80B2 # 0 3069
+0x88E8 0x90C1 # 0 306A
+0x88E9 0x78EF # 0 306B
+0x88EA 0x4E00 # 0 306C
+0x88EB 0x58F1 # 0 306D
+0x88EC 0x6EA2 # 0 306E
+0x88ED 0x9038 # 0 306F
+0x88EE 0x7A32 # 0 3070
+0x88EF 0x8328 # 0 3071
+0x88F0 0x828B # 0 3072
+0x88F1 0x9C2F # 0 3073
+0x88F2 0x5141 # 0 3074
+0x88F3 0x5370 # 0 3075
+0x88F4 0x54BD # 0 3076
+0x88F5 0x54E1 # 0 3077
+0x88F6 0x56E0 # 0 3078
+0x88F7 0x59FB # 0 3079
+0x88F8 0x5F15 # 0 307A
+0x88F9 0x98F2 # 0 307B
+0x88FA 0x6DEB # 0 307C
+0x88FB 0x80E4 # 0 307D
+0x88FC 0x852D # 0 307E
+0x8940 0x9662 # 0 3121
+0x8941 0x9670 # 0 3122
+0x8942 0x96A0 # 0 3123
+0x8943 0x97FB # 0 3124
+0x8944 0x540B # 0 3125
+0x8945 0x53F3 # 0 3126
+0x8946 0x5B87 # 0 3127
+0x8947 0x70CF # 0 3128
+0x8948 0x7FBD # 0 3129
+0x8949 0x8FC2 # 0 312A
+0x894A 0x96E8 # 0 312B
+0x894B 0x536F # 0 312C
+0x894C 0x9D5C # 0 312D
+0x894D 0x7ABA # 0 312E
+0x894E 0x4E11 # 0 312F
+0x894F 0x7893 # 0 3130
+0x8950 0x81FC # 0 3131
+0x8951 0x6E26 # 0 3132
+0x8952 0x5618 # 0 3133
+0x8953 0x5504 # 0 3134
+0x8954 0x6B1D # 0 3135
+0x8955 0x851A # 0 3136
+0x8956 0x9C3B # 0 3137
+0x8957 0x59E5 # 0 3138
+0x8958 0x53A9 # 0 3139
+0x8959 0x6D66 # 0 313A
+0x895A 0x74DC # 0 313B
+0x895B 0x958F # 0 313C
+0x895C 0x5642 # 0 313D
+0x895D 0x4E91 # 0 313E
+0x895E 0x904B # 0 313F
+0x895F 0x96F2 # 0 3140
+0x8960 0x834F # 0 3141
+0x8961 0x990C # 0 3142
+0x8962 0x53E1 # 0 3143
+0x8963 0x55B6 # 0 3144
+0x8964 0x5B30 # 0 3145
+0x8965 0x5F71 # 0 3146
+0x8966 0x6620 # 0 3147
+0x8967 0x66F3 # 0 3148
+0x8968 0x6804 # 0 3149
+0x8969 0x6C38 # 0 314A
+0x896A 0x6CF3 # 0 314B
+0x896B 0x6D29 # 0 314C
+0x896C 0x745B # 0 314D
+0x896D 0x76C8 # 0 314E
+0x896E 0x7A4E # 0 314F
+0x896F 0x9834 # 0 3150
+0x8970 0x82F1 # 0 3151
+0x8971 0x885B # 0 3152
+0x8972 0x8A60 # 0 3153
+0x8973 0x92ED # 0 3154
+0x8974 0x6DB2 # 0 3155
+0x8975 0x75AB # 0 3156
+0x8976 0x76CA # 0 3157
+0x8977 0x99C5 # 0 3158
+0x8978 0x60A6 # 0 3159
+0x8979 0x8B01 # 0 315A
+0x897A 0x8D8A # 0 315B
+0x897B 0x95B2 # 0 315C
+0x897C 0x698E # 0 315D
+0x897D 0x53AD # 0 315E
+0x897E 0x5186 # 0 315F
+0x8980 0x5712 # 0 3160
+0x8981 0x5830 # 0 3161
+0x8982 0x5944 # 0 3162
+0x8983 0x5BB4 # 0 3163
+0x8984 0x5EF6 # 0 3164
+0x8985 0x6028 # 0 3165
+0x8986 0x63A9 # 0 3166
+0x8987 0x63F4 # 0 3167
+0x8988 0x6CBF # 0 3168
+0x8989 0x6F14 # 0 3169
+0x898A 0x708E # 0 316A
+0x898B 0x7114 # 0 316B
+0x898C 0x7159 # 0 316C
+0x898D 0x71D5 # 0 316D
+0x898E 0x733F # 0 316E
+0x898F 0x7E01 # 0 316F
+0x8990 0x8276 # 0 3170
+0x8991 0x82D1 # 0 3171
+0x8992 0x8597 # 0 3172
+0x8993 0x9060 # 0 3173
+0x8994 0x925B # 0 3174
+0x8995 0x9D1B # 0 3175
+0x8996 0x5869 # 0 3176
+0x8997 0x65BC # 0 3177
+0x8998 0x6C5A # 0 3178
+0x8999 0x7525 # 0 3179
+0x899A 0x51F9 # 0 317A
+0x899B 0x592E # 0 317B
+0x899C 0x5965 # 0 317C
+0x899D 0x5F80 # 0 317D
+0x899E 0x5FDC # 0 317E
+0x899F 0x62BC # 0 3221
+0x89A0 0x65FA # 0 3222
+0x89A1 0x6A2A # 0 3223
+0x89A2 0x6B27 # 0 3224
+0x89A3 0x6BB4 # 0 3225
+0x89A4 0x738B # 0 3226
+0x89A5 0x7FC1 # 0 3227
+0x89A6 0x8956 # 0 3228
+0x89A7 0x9D2C # 0 3229
+0x89A8 0x9D0E # 0 322A
+0x89A9 0x9EC4 # 0 322B
+0x89AA 0x5CA1 # 0 322C
+0x89AB 0x6C96 # 0 322D
+0x89AC 0x837B # 0 322E
+0x89AD 0x5104 # 0 322F
+0x89AE 0x5C4B # 0 3230
+0x89AF 0x61B6 # 0 3231
+0x89B0 0x81C6 # 0 3232
+0x89B1 0x6876 # 0 3233
+0x89B2 0x7261 # 0 3234
+0x89B3 0x4E59 # 0 3235
+0x89B4 0x4FFA # 0 3236
+0x89B5 0x5378 # 0 3237
+0x89B6 0x6069 # 0 3238
+0x89B7 0x6E29 # 0 3239
+0x89B8 0x7A4F # 0 323A
+0x89B9 0x97F3 # 0 323B
+0x89BA 0x4E0B # 0 323C
+0x89BB 0x5316 # 0 323D
+0x89BC 0x4EEE # 0 323E
+0x89BD 0x4F55 # 0 323F
+0x89BE 0x4F3D # 0 3240
+0x89BF 0x4FA1 # 0 3241
+0x89C0 0x4F73 # 0 3242
+0x89C1 0x52A0 # 0 3243
+0x89C2 0x53EF # 0 3244
+0x89C3 0x5609 # 0 3245
+0x89C4 0x590F # 0 3246
+0x89C5 0x5AC1 # 0 3247
+0x89C6 0x5BB6 # 0 3248
+0x89C7 0x5BE1 # 0 3249
+0x89C8 0x79D1 # 0 324A
+0x89C9 0x6687 # 0 324B
+0x89CA 0x679C # 0 324C
+0x89CB 0x67B6 # 0 324D
+0x89CC 0x6B4C # 0 324E
+0x89CD 0x6CB3 # 0 324F
+0x89CE 0x706B # 0 3250
+0x89CF 0x73C2 # 0 3251
+0x89D0 0x798D # 0 3252
+0x89D1 0x79BE # 0 3253
+0x89D2 0x7A3C # 0 3254
+0x89D3 0x7B87 # 0 3255
+0x89D4 0x82B1 # 0 3256
+0x89D5 0x82DB # 0 3257
+0x89D6 0x8304 # 0 3258
+0x89D7 0x8377 # 0 3259
+0x89D8 0x83EF # 0 325A
+0x89D9 0x83D3 # 0 325B
+0x89DA 0x8766 # 0 325C
+0x89DB 0x8AB2 # 0 325D
+0x89DC 0x5629 # 0 325E
+0x89DD 0x8CA8 # 0 325F
+0x89DE 0x8FE6 # 0 3260
+0x89DF 0x904E # 0 3261
+0x89E0 0x971E # 0 3262
+0x89E1 0x868A # 0 3263
+0x89E2 0x4FC4 # 0 3264
+0x89E3 0x5CE8 # 0 3265
+0x89E4 0x6211 # 0 3266
+0x89E5 0x7259 # 0 3267
+0x89E6 0x753B # 0 3268
+0x89E7 0x81E5 # 0 3269
+0x89E8 0x82BD # 0 326A
+0x89E9 0x86FE # 0 326B
+0x89EA 0x8CC0 # 0 326C
+0x89EB 0x96C5 # 0 326D
+0x89EC 0x9913 # 0 326E
+0x89ED 0x99D5 # 0 326F
+0x89EE 0x4ECB # 0 3270
+0x89EF 0x4F1A # 0 3271
+0x89F0 0x89E3 # 0 3272
+0x89F1 0x56DE # 0 3273
+0x89F2 0x584A # 0 3274
+0x89F3 0x58CA # 0 3275
+0x89F4 0x5EFB # 0 3276
+0x89F5 0x5FEB # 0 3277
+0x89F6 0x602A # 0 3278
+0x89F7 0x6094 # 0 3279
+0x89F8 0x6062 # 0 327A
+0x89F9 0x61D0 # 0 327B
+0x89FA 0x6212 # 0 327C
+0x89FB 0x62D0 # 0 327D
+0x89FC 0x6539 # 0 327E
+0x8A40 0x9B41 # 0 3321
+0x8A41 0x6666 # 0 3322
+0x8A42 0x68B0 # 0 3323
+0x8A43 0x6D77 # 0 3324
+0x8A44 0x7070 # 0 3325
+0x8A45 0x754C # 0 3326
+0x8A46 0x7686 # 0 3327
+0x8A47 0x7D75 # 0 3328
+0x8A48 0x82A5 # 0 3329
+0x8A49 0x87F9 # 0 332A
+0x8A4A 0x958B # 0 332B
+0x8A4B 0x968E # 0 332C
+0x8A4C 0x8C9D # 0 332D
+0x8A4D 0x51F1 # 0 332E
+0x8A4E 0x52BE # 0 332F
+0x8A4F 0x5916 # 0 3330
+0x8A50 0x54B3 # 0 3331
+0x8A51 0x5BB3 # 0 3332
+0x8A52 0x5D16 # 0 3333
+0x8A53 0x6168 # 0 3334
+0x8A54 0x6982 # 0 3335
+0x8A55 0x6DAF # 0 3336
+0x8A56 0x788D # 0 3337
+0x8A57 0x84CB # 0 3338
+0x8A58 0x8857 # 0 3339
+0x8A59 0x8A72 # 0 333A
+0x8A5A 0x93A7 # 0 333B
+0x8A5B 0x9AB8 # 0 333C
+0x8A5C 0x6D6C # 0 333D
+0x8A5D 0x99A8 # 0 333E
+0x8A5E 0x86D9 # 0 333F
+0x8A5F 0x57A3 # 0 3340
+0x8A60 0x67FF # 0 3341
+0x8A61 0x86CE # 0 3342
+0x8A62 0x920E # 0 3343
+0x8A63 0x5283 # 0 3344
+0x8A64 0x5687 # 0 3345
+0x8A65 0x5404 # 0 3346
+0x8A66 0x5ED3 # 0 3347
+0x8A67 0x62E1 # 0 3348
+0x8A68 0x64B9 # 0 3349
+0x8A69 0x683C # 0 334A
+0x8A6A 0x6838 # 0 334B
+0x8A6B 0x6BBB # 0 334C
+0x8A6C 0x7372 # 0 334D
+0x8A6D 0x78BA # 0 334E
+0x8A6E 0x7A6B # 0 334F
+0x8A6F 0x899A # 0 3350
+0x8A70 0x89D2 # 0 3351
+0x8A71 0x8D6B # 0 3352
+0x8A72 0x8F03 # 0 3353
+0x8A73 0x90ED # 0 3354
+0x8A74 0x95A3 # 0 3355
+0x8A75 0x9694 # 0 3356
+0x8A76 0x9769 # 0 3357
+0x8A77 0x5B66 # 0 3358
+0x8A78 0x5CB3 # 0 3359
+0x8A79 0x697D # 0 335A
+0x8A7A 0x984D # 0 335B
+0x8A7B 0x984E # 0 335C
+0x8A7C 0x639B # 0 335D
+0x8A7D 0x7B20 # 0 335E
+0x8A7E 0x6A2B # 0 335F
+0x8A80 0x6A7F # 0 3360
+0x8A81 0x68B6 # 0 3361
+0x8A82 0x9C0D # 0 3362
+0x8A83 0x6F5F # 0 3363
+0x8A84 0x5272 # 0 3364
+0x8A85 0x559D # 0 3365
+0x8A86 0x6070 # 0 3366
+0x8A87 0x62EC # 0 3367
+0x8A88 0x6D3B # 0 3368
+0x8A89 0x6E07 # 0 3369
+0x8A8A 0x6ED1 # 0 336A
+0x8A8B 0x845B # 0 336B
+0x8A8C 0x8910 # 0 336C
+0x8A8D 0x8F44 # 0 336D
+0x8A8E 0x4E14 # 0 336E
+0x8A8F 0x9C39 # 0 336F
+0x8A90 0x53F6 # 0 3370
+0x8A91 0x691B # 0 3371
+0x8A92 0x6A3A # 0 3372
+0x8A93 0x9784 # 0 3373
+0x8A94 0x682A # 0 3374
+0x8A95 0x515C # 0 3375
+0x8A96 0x7AC3 # 0 3376
+0x8A97 0x84B2 # 0 3377
+0x8A98 0x91DC # 0 3378
+0x8A99 0x938C # 0 3379
+0x8A9A 0x565B # 0 337A
+0x8A9B 0x9D28 # 0 337B
+0x8A9C 0x6822 # 0 337C
+0x8A9D 0x8305 # 0 337D
+0x8A9E 0x8431 # 0 337E
+0x8A9F 0x7CA5 # 0 3421
+0x8AA0 0x5208 # 0 3422
+0x8AA1 0x82C5 # 0 3423
+0x8AA2 0x74E6 # 0 3424
+0x8AA3 0x4E7E # 0 3425
+0x8AA4 0x4F83 # 0 3426
+0x8AA5 0x51A0 # 0 3427
+0x8AA6 0x5BD2 # 0 3428
+0x8AA7 0x520A # 0 3429
+0x8AA8 0x52D8 # 0 342A
+0x8AA9 0x52E7 # 0 342B
+0x8AAA 0x5DFB # 0 342C
+0x8AAB 0x559A # 0 342D
+0x8AAC 0x582A # 0 342E
+0x8AAD 0x59E6 # 0 342F
+0x8AAE 0x5B8C # 0 3430
+0x8AAF 0x5B98 # 0 3431
+0x8AB0 0x5BDB # 0 3432
+0x8AB1 0x5E72 # 0 3433
+0x8AB2 0x5E79 # 0 3434
+0x8AB3 0x60A3 # 0 3435
+0x8AB4 0x611F # 0 3436
+0x8AB5 0x6163 # 0 3437
+0x8AB6 0x61BE # 0 3438
+0x8AB7 0x63DB # 0 3439
+0x8AB8 0x6562 # 0 343A
+0x8AB9 0x67D1 # 0 343B
+0x8ABA 0x6853 # 0 343C
+0x8ABB 0x68FA # 0 343D
+0x8ABC 0x6B3E # 0 343E
+0x8ABD 0x6B53 # 0 343F
+0x8ABE 0x6C57 # 0 3440
+0x8ABF 0x6F22 # 0 3441
+0x8AC0 0x6F97 # 0 3442
+0x8AC1 0x6F45 # 0 3443
+0x8AC2 0x74B0 # 0 3444
+0x8AC3 0x7518 # 0 3445
+0x8AC4 0x76E3 # 0 3446
+0x8AC5 0x770B # 0 3447
+0x8AC6 0x7AFF # 0 3448
+0x8AC7 0x7BA1 # 0 3449
+0x8AC8 0x7C21 # 0 344A
+0x8AC9 0x7DE9 # 0 344B
+0x8ACA 0x7F36 # 0 344C
+0x8ACB 0x7FF0 # 0 344D
+0x8ACC 0x809D # 0 344E
+0x8ACD 0x8266 # 0 344F
+0x8ACE 0x839E # 0 3450
+0x8ACF 0x89B3 # 0 3451
+0x8AD0 0x8ACC # 0 3452
+0x8AD1 0x8CAB # 0 3453
+0x8AD2 0x9084 # 0 3454
+0x8AD3 0x9451 # 0 3455
+0x8AD4 0x9593 # 0 3456
+0x8AD5 0x9591 # 0 3457
+0x8AD6 0x95A2 # 0 3458
+0x8AD7 0x9665 # 0 3459
+0x8AD8 0x97D3 # 0 345A
+0x8AD9 0x9928 # 0 345B
+0x8ADA 0x8218 # 0 345C
+0x8ADB 0x4E38 # 0 345D
+0x8ADC 0x542B # 0 345E
+0x8ADD 0x5CB8 # 0 345F
+0x8ADE 0x5DCC # 0 3460
+0x8ADF 0x73A9 # 0 3461
+0x8AE0 0x764C # 0 3462
+0x8AE1 0x773C # 0 3463
+0x8AE2 0x5CA9 # 0 3464
+0x8AE3 0x7FEB # 0 3465
+0x8AE4 0x8D0B # 0 3466
+0x8AE5 0x96C1 # 0 3467
+0x8AE6 0x9811 # 0 3468
+0x8AE7 0x9854 # 0 3469
+0x8AE8 0x9858 # 0 346A
+0x8AE9 0x4F01 # 0 346B
+0x8AEA 0x4F0E # 0 346C
+0x8AEB 0x5371 # 0 346D
+0x8AEC 0x559C # 0 346E
+0x8AED 0x5668 # 0 346F
+0x8AEE 0x57FA # 0 3470
+0x8AEF 0x5947 # 0 3471
+0x8AF0 0x5B09 # 0 3472
+0x8AF1 0x5BC4 # 0 3473
+0x8AF2 0x5C90 # 0 3474
+0x8AF3 0x5E0C # 0 3475
+0x8AF4 0x5E7E # 0 3476
+0x8AF5 0x5FCC # 0 3477
+0x8AF6 0x63EE # 0 3478
+0x8AF7 0x673A # 0 3479
+0x8AF8 0x65D7 # 0 347A
+0x8AF9 0x65E2 # 0 347B
+0x8AFA 0x671F # 0 347C
+0x8AFB 0x68CB # 0 347D
+0x8AFC 0x68C4 # 0 347E
+0x8B40 0x6A5F # 0 3521
+0x8B41 0x5E30 # 0 3522
+0x8B42 0x6BC5 # 0 3523
+0x8B43 0x6C17 # 0 3524
+0x8B44 0x6C7D # 0 3525
+0x8B45 0x757F # 0 3526
+0x8B46 0x7948 # 0 3527
+0x8B47 0x5B63 # 0 3528
+0x8B48 0x7A00 # 0 3529
+0x8B49 0x7D00 # 0 352A
+0x8B4A 0x5FBD # 0 352B
+0x8B4B 0x898F # 0 352C
+0x8B4C 0x8A18 # 0 352D
+0x8B4D 0x8CB4 # 0 352E
+0x8B4E 0x8D77 # 0 352F
+0x8B4F 0x8ECC # 0 3530
+0x8B50 0x8F1D # 0 3531
+0x8B51 0x98E2 # 0 3532
+0x8B52 0x9A0E # 0 3533
+0x8B53 0x9B3C # 0 3534
+0x8B54 0x4E80 # 0 3535
+0x8B55 0x507D # 0 3536
+0x8B56 0x5100 # 0 3537
+0x8B57 0x5993 # 0 3538
+0x8B58 0x5B9C # 0 3539
+0x8B59 0x622F # 0 353A
+0x8B5A 0x6280 # 0 353B
+0x8B5B 0x64EC # 0 353C
+0x8B5C 0x6B3A # 0 353D
+0x8B5D 0x72A0 # 0 353E
+0x8B5E 0x7591 # 0 353F
+0x8B5F 0x7947 # 0 3540
+0x8B60 0x7FA9 # 0 3541
+0x8B61 0x87FB # 0 3542
+0x8B62 0x8ABC # 0 3543
+0x8B63 0x8B70 # 0 3544
+0x8B64 0x63AC # 0 3545
+0x8B65 0x83CA # 0 3546
+0x8B66 0x97A0 # 0 3547
+0x8B67 0x5409 # 0 3548
+0x8B68 0x5403 # 0 3549
+0x8B69 0x55AB # 0 354A
+0x8B6A 0x6854 # 0 354B
+0x8B6B 0x6A58 # 0 354C
+0x8B6C 0x8A70 # 0 354D
+0x8B6D 0x7827 # 0 354E
+0x8B6E 0x6775 # 0 354F
+0x8B6F 0x9ECD # 0 3550
+0x8B70 0x5374 # 0 3551
+0x8B71 0x5BA2 # 0 3552
+0x8B72 0x811A # 0 3553
+0x8B73 0x8650 # 0 3554
+0x8B74 0x9006 # 0 3555
+0x8B75 0x4E18 # 0 3556
+0x8B76 0x4E45 # 0 3557
+0x8B77 0x4EC7 # 0 3558
+0x8B78 0x4F11 # 0 3559
+0x8B79 0x53CA # 0 355A
+0x8B7A 0x5438 # 0 355B
+0x8B7B 0x5BAE # 0 355C
+0x8B7C 0x5F13 # 0 355D
+0x8B7D 0x6025 # 0 355E
+0x8B7E 0x6551 # 0 355F
+0x8B80 0x673D # 0 3560
+0x8B81 0x6C42 # 0 3561
+0x8B82 0x6C72 # 0 3562
+0x8B83 0x6CE3 # 0 3563
+0x8B84 0x7078 # 0 3564
+0x8B85 0x7403 # 0 3565
+0x8B86 0x7A76 # 0 3566
+0x8B87 0x7AAE # 0 3567
+0x8B88 0x7B08 # 0 3568
+0x8B89 0x7D1A # 0 3569
+0x8B8A 0x7CFE # 0 356A
+0x8B8B 0x7D66 # 0 356B
+0x8B8C 0x65E7 # 0 356C
+0x8B8D 0x725B # 0 356D
+0x8B8E 0x53BB # 0 356E
+0x8B8F 0x5C45 # 0 356F
+0x8B90 0x5DE8 # 0 3570
+0x8B91 0x62D2 # 0 3571
+0x8B92 0x62E0 # 0 3572
+0x8B93 0x6319 # 0 3573
+0x8B94 0x6E20 # 0 3574
+0x8B95 0x865A # 0 3575
+0x8B96 0x8A31 # 0 3576
+0x8B97 0x8DDD # 0 3577
+0x8B98 0x92F8 # 0 3578
+0x8B99 0x6F01 # 0 3579
+0x8B9A 0x79A6 # 0 357A
+0x8B9B 0x9B5A # 0 357B
+0x8B9C 0x4EA8 # 0 357C
+0x8B9D 0x4EAB # 0 357D
+0x8B9E 0x4EAC # 0 357E
+0x8B9F 0x4F9B # 0 3621
+0x8BA0 0x4FA0 # 0 3622
+0x8BA1 0x50D1 # 0 3623
+0x8BA2 0x5147 # 0 3624
+0x8BA3 0x7AF6 # 0 3625
+0x8BA4 0x5171 # 0 3626
+0x8BA5 0x51F6 # 0 3627
+0x8BA6 0x5354 # 0 3628
+0x8BA7 0x5321 # 0 3629
+0x8BA8 0x537F # 0 362A
+0x8BA9 0x53EB # 0 362B
+0x8BAA 0x55AC # 0 362C
+0x8BAB 0x5883 # 0 362D
+0x8BAC 0x5CE1 # 0 362E
+0x8BAD 0x5F37 # 0 362F
+0x8BAE 0x5F4A # 0 3630
+0x8BAF 0x602F # 0 3631
+0x8BB0 0x6050 # 0 3632
+0x8BB1 0x606D # 0 3633
+0x8BB2 0x631F # 0 3634
+0x8BB3 0x6559 # 0 3635
+0x8BB4 0x6A4B # 0 3636
+0x8BB5 0x6CC1 # 0 3637
+0x8BB6 0x72C2 # 0 3638
+0x8BB7 0x72ED # 0 3639
+0x8BB8 0x77EF # 0 363A
+0x8BB9 0x80F8 # 0 363B
+0x8BBA 0x8105 # 0 363C
+0x8BBB 0x8208 # 0 363D
+0x8BBC 0x854E # 0 363E
+0x8BBD 0x90F7 # 0 363F
+0x8BBE 0x93E1 # 0 3640
+0x8BBF 0x97FF # 0 3641
+0x8BC0 0x9957 # 0 3642
+0x8BC1 0x9A5A # 0 3643
+0x8BC2 0x4EF0 # 0 3644
+0x8BC3 0x51DD # 0 3645
+0x8BC4 0x5C2D # 0 3646
+0x8BC5 0x6681 # 0 3647
+0x8BC6 0x696D # 0 3648
+0x8BC7 0x5C40 # 0 3649
+0x8BC8 0x66F2 # 0 364A
+0x8BC9 0x6975 # 0 364B
+0x8BCA 0x7389 # 0 364C
+0x8BCB 0x6850 # 0 364D
+0x8BCC 0x7C81 # 0 364E
+0x8BCD 0x50C5 # 0 364F
+0x8BCE 0x52E4 # 0 3650
+0x8BCF 0x5747 # 0 3651
+0x8BD0 0x5DFE # 0 3652
+0x8BD1 0x9326 # 0 3653
+0x8BD2 0x65A4 # 0 3654
+0x8BD3 0x6B23 # 0 3655
+0x8BD4 0x6B3D # 0 3656
+0x8BD5 0x7434 # 0 3657
+0x8BD6 0x7981 # 0 3658
+0x8BD7 0x79BD # 0 3659
+0x8BD8 0x7B4B # 0 365A
+0x8BD9 0x7DCA # 0 365B
+0x8BDA 0x82B9 # 0 365C
+0x8BDB 0x83CC # 0 365D
+0x8BDC 0x887F # 0 365E
+0x8BDD 0x895F # 0 365F
+0x8BDE 0x8B39 # 0 3660
+0x8BDF 0x8FD1 # 0 3661
+0x8BE0 0x91D1 # 0 3662
+0x8BE1 0x541F # 0 3663
+0x8BE2 0x9280 # 0 3664
+0x8BE3 0x4E5D # 0 3665
+0x8BE4 0x5036 # 0 3666
+0x8BE5 0x53E5 # 0 3667
+0x8BE6 0x533A # 0 3668
+0x8BE7 0x72D7 # 0 3669
+0x8BE8 0x7396 # 0 366A
+0x8BE9 0x77E9 # 0 366B
+0x8BEA 0x82E6 # 0 366C
+0x8BEB 0x8EAF # 0 366D
+0x8BEC 0x99C6 # 0 366E
+0x8BED 0x99C8 # 0 366F
+0x8BEE 0x99D2 # 0 3670
+0x8BEF 0x5177 # 0 3671
+0x8BF0 0x611A # 0 3672
+0x8BF1 0x865E # 0 3673
+0x8BF2 0x55B0 # 0 3674
+0x8BF3 0x7A7A # 0 3675
+0x8BF4 0x5076 # 0 3676
+0x8BF5 0x5BD3 # 0 3677
+0x8BF6 0x9047 # 0 3678
+0x8BF7 0x9685 # 0 3679
+0x8BF8 0x4E32 # 0 367A
+0x8BF9 0x6ADB # 0 367B
+0x8BFA 0x91E7 # 0 367C
+0x8BFB 0x5C51 # 0 367D
+0x8BFC 0x5C48 # 0 367E
+0x8C40 0x6398 # 0 3721
+0x8C41 0x7A9F # 0 3722
+0x8C42 0x6C93 # 0 3723
+0x8C43 0x9774 # 0 3724
+0x8C44 0x8F61 # 0 3725
+0x8C45 0x7AAA # 0 3726
+0x8C46 0x718A # 0 3727
+0x8C47 0x9688 # 0 3728
+0x8C48 0x7C82 # 0 3729
+0x8C49 0x6817 # 0 372A
+0x8C4A 0x7E70 # 0 372B
+0x8C4B 0x6851 # 0 372C
+0x8C4C 0x936C # 0 372D
+0x8C4D 0x52F2 # 0 372E
+0x8C4E 0x541B # 0 372F
+0x8C4F 0x85AB # 0 3730
+0x8C50 0x8A13 # 0 3731
+0x8C51 0x7FA4 # 0 3732
+0x8C52 0x8ECD # 0 3733
+0x8C53 0x90E1 # 0 3734
+0x8C54 0x5366 # 0 3735
+0x8C55 0x8888 # 0 3736
+0x8C56 0x7941 # 0 3737
+0x8C57 0x4FC2 # 0 3738
+0x8C58 0x50BE # 0 3739
+0x8C59 0x5211 # 0 373A
+0x8C5A 0x5144 # 0 373B
+0x8C5B 0x5553 # 0 373C
+0x8C5C 0x572D # 0 373D
+0x8C5D 0x73EA # 0 373E
+0x8C5E 0x578B # 0 373F
+0x8C5F 0x5951 # 0 3740
+0x8C60 0x5F62 # 0 3741
+0x8C61 0x5F84 # 0 3742
+0x8C62 0x6075 # 0 3743
+0x8C63 0x6176 # 0 3744
+0x8C64 0x6167 # 0 3745
+0x8C65 0x61A9 # 0 3746
+0x8C66 0x63B2 # 0 3747
+0x8C67 0x643A # 0 3748
+0x8C68 0x656C # 0 3749
+0x8C69 0x666F # 0 374A
+0x8C6A 0x6842 # 0 374B
+0x8C6B 0x6E13 # 0 374C
+0x8C6C 0x7566 # 0 374D
+0x8C6D 0x7A3D # 0 374E
+0x8C6E 0x7CFB # 0 374F
+0x8C6F 0x7D4C # 0 3750
+0x8C70 0x7D99 # 0 3751
+0x8C71 0x7E4B # 0 3752
+0x8C72 0x7F6B # 0 3753
+0x8C73 0x830E # 0 3754
+0x8C74 0x834A # 0 3755
+0x8C75 0x86CD # 0 3756
+0x8C76 0x8A08 # 0 3757
+0x8C77 0x8A63 # 0 3758
+0x8C78 0x8B66 # 0 3759
+0x8C79 0x8EFD # 0 375A
+0x8C7A 0x981A # 0 375B
+0x8C7B 0x9D8F # 0 375C
+0x8C7C 0x82B8 # 0 375D
+0x8C7D 0x8FCE # 0 375E
+0x8C7E 0x9BE8 # 0 375F
+0x8C80 0x5287 # 0 3760
+0x8C81 0x621F # 0 3761
+0x8C82 0x6483 # 0 3762
+0x8C83 0x6FC0 # 0 3763
+0x8C84 0x9699 # 0 3764
+0x8C85 0x6841 # 0 3765
+0x8C86 0x5091 # 0 3766
+0x8C87 0x6B20 # 0 3767
+0x8C88 0x6C7A # 0 3768
+0x8C89 0x6F54 # 0 3769
+0x8C8A 0x7A74 # 0 376A
+0x8C8B 0x7D50 # 0 376B
+0x8C8C 0x8840 # 0 376C
+0x8C8D 0x8A23 # 0 376D
+0x8C8E 0x6708 # 0 376E
+0x8C8F 0x4EF6 # 0 376F
+0x8C90 0x5039 # 0 3770
+0x8C91 0x5026 # 0 3771
+0x8C92 0x5065 # 0 3772
+0x8C93 0x517C # 0 3773
+0x8C94 0x5238 # 0 3774
+0x8C95 0x5263 # 0 3775
+0x8C96 0x55A7 # 0 3776
+0x8C97 0x570F # 0 3777
+0x8C98 0x5805 # 0 3778
+0x8C99 0x5ACC # 0 3779
+0x8C9A 0x5EFA # 0 377A
+0x8C9B 0x61B2 # 0 377B
+0x8C9C 0x61F8 # 0 377C
+0x8C9D 0x62F3 # 0 377D
+0x8C9E 0x6372 # 0 377E
+0x8C9F 0x691C # 0 3821
+0x8CA0 0x6A29 # 0 3822
+0x8CA1 0x727D # 0 3823
+0x8CA2 0x72AC # 0 3824
+0x8CA3 0x732E # 0 3825
+0x8CA4 0x7814 # 0 3826
+0x8CA5 0x786F # 0 3827
+0x8CA6 0x7D79 # 0 3828
+0x8CA7 0x770C # 0 3829
+0x8CA8 0x80A9 # 0 382A
+0x8CA9 0x898B # 0 382B
+0x8CAA 0x8B19 # 0 382C
+0x8CAB 0x8CE2 # 0 382D
+0x8CAC 0x8ED2 # 0 382E
+0x8CAD 0x9063 # 0 382F
+0x8CAE 0x9375 # 0 3830
+0x8CAF 0x967A # 0 3831
+0x8CB0 0x9855 # 0 3832
+0x8CB1 0x9A13 # 0 3833
+0x8CB2 0x9E78 # 0 3834
+0x8CB3 0x5143 # 0 3835
+0x8CB4 0x539F # 0 3836
+0x8CB5 0x53B3 # 0 3837
+0x8CB6 0x5E7B # 0 3838
+0x8CB7 0x5F26 # 0 3839
+0x8CB8 0x6E1B # 0 383A
+0x8CB9 0x6E90 # 0 383B
+0x8CBA 0x7384 # 0 383C
+0x8CBB 0x73FE # 0 383D
+0x8CBC 0x7D43 # 0 383E
+0x8CBD 0x8237 # 0 383F
+0x8CBE 0x8A00 # 0 3840
+0x8CBF 0x8AFA # 0 3841
+0x8CC0 0x9650 # 0 3842
+0x8CC1 0x4E4E # 0 3843
+0x8CC2 0x500B # 0 3844
+0x8CC3 0x53E4 # 0 3845
+0x8CC4 0x547C # 0 3846
+0x8CC5 0x56FA # 0 3847
+0x8CC6 0x59D1 # 0 3848
+0x8CC7 0x5B64 # 0 3849
+0x8CC8 0x5DF1 # 0 384A
+0x8CC9 0x5EAB # 0 384B
+0x8CCA 0x5F27 # 0 384C
+0x8CCB 0x6238 # 0 384D
+0x8CCC 0x6545 # 0 384E
+0x8CCD 0x67AF # 0 384F
+0x8CCE 0x6E56 # 0 3850
+0x8CCF 0x72D0 # 0 3851
+0x8CD0 0x7CCA # 0 3852
+0x8CD1 0x88B4 # 0 3853
+0x8CD2 0x80A1 # 0 3854
+0x8CD3 0x80E1 # 0 3855
+0x8CD4 0x83F0 # 0 3856
+0x8CD5 0x864E # 0 3857
+0x8CD6 0x8A87 # 0 3858
+0x8CD7 0x8DE8 # 0 3859
+0x8CD8 0x9237 # 0 385A
+0x8CD9 0x96C7 # 0 385B
+0x8CDA 0x9867 # 0 385C
+0x8CDB 0x9F13 # 0 385D
+0x8CDC 0x4E94 # 0 385E
+0x8CDD 0x4E92 # 0 385F
+0x8CDE 0x4F0D # 0 3860
+0x8CDF 0x5348 # 0 3861
+0x8CE0 0x5449 # 0 3862
+0x8CE1 0x543E # 0 3863
+0x8CE2 0x5A2F # 0 3864
+0x8CE3 0x5F8C # 0 3865
+0x8CE4 0x5FA1 # 0 3866
+0x8CE5 0x609F # 0 3867
+0x8CE6 0x68A7 # 0 3868
+0x8CE7 0x6A8E # 0 3869
+0x8CE8 0x745A # 0 386A
+0x8CE9 0x7881 # 0 386B
+0x8CEA 0x8A9E # 0 386C
+0x8CEB 0x8AA4 # 0 386D
+0x8CEC 0x8B77 # 0 386E
+0x8CED 0x9190 # 0 386F
+0x8CEE 0x4E5E # 0 3870
+0x8CEF 0x9BC9 # 0 3871
+0x8CF0 0x4EA4 # 0 3872
+0x8CF1 0x4F7C # 0 3873
+0x8CF2 0x4FAF # 0 3874
+0x8CF3 0x5019 # 0 3875
+0x8CF4 0x5016 # 0 3876
+0x8CF5 0x5149 # 0 3877
+0x8CF6 0x516C # 0 3878
+0x8CF7 0x529F # 0 3879
+0x8CF8 0x52B9 # 0 387A
+0x8CF9 0x52FE # 0 387B
+0x8CFA 0x539A # 0 387C
+0x8CFB 0x53E3 # 0 387D
+0x8CFC 0x5411 # 0 387E
+0x8D40 0x540E # 0 3921
+0x8D41 0x5589 # 0 3922
+0x8D42 0x5751 # 0 3923
+0x8D43 0x57A2 # 0 3924
+0x8D44 0x597D # 0 3925
+0x8D45 0x5B54 # 0 3926
+0x8D46 0x5B5D # 0 3927
+0x8D47 0x5B8F # 0 3928
+0x8D48 0x5DE5 # 0 3929
+0x8D49 0x5DE7 # 0 392A
+0x8D4A 0x5DF7 # 0 392B
+0x8D4B 0x5E78 # 0 392C
+0x8D4C 0x5E83 # 0 392D
+0x8D4D 0x5E9A # 0 392E
+0x8D4E 0x5EB7 # 0 392F
+0x8D4F 0x5F18 # 0 3930
+0x8D50 0x6052 # 0 3931
+0x8D51 0x614C # 0 3932
+0x8D52 0x6297 # 0 3933
+0x8D53 0x62D8 # 0 3934
+0x8D54 0x63A7 # 0 3935
+0x8D55 0x653B # 0 3936
+0x8D56 0x6602 # 0 3937
+0x8D57 0x6643 # 0 3938
+0x8D58 0x66F4 # 0 3939
+0x8D59 0x676D # 0 393A
+0x8D5A 0x6821 # 0 393B
+0x8D5B 0x6897 # 0 393C
+0x8D5C 0x69CB # 0 393D
+0x8D5D 0x6C5F # 0 393E
+0x8D5E 0x6D2A # 0 393F
+0x8D5F 0x6D69 # 0 3940
+0x8D60 0x6E2F # 0 3941
+0x8D61 0x6E9D # 0 3942
+0x8D62 0x7532 # 0 3943
+0x8D63 0x7687 # 0 3944
+0x8D64 0x786C # 0 3945
+0x8D65 0x7A3F # 0 3946
+0x8D66 0x7CE0 # 0 3947
+0x8D67 0x7D05 # 0 3948
+0x8D68 0x7D18 # 0 3949
+0x8D69 0x7D5E # 0 394A
+0x8D6A 0x7DB1 # 0 394B
+0x8D6B 0x8015 # 0 394C
+0x8D6C 0x8003 # 0 394D
+0x8D6D 0x80AF # 0 394E
+0x8D6E 0x80B1 # 0 394F
+0x8D6F 0x8154 # 0 3950
+0x8D70 0x818F # 0 3951
+0x8D71 0x822A # 0 3952
+0x8D72 0x8352 # 0 3953
+0x8D73 0x884C # 0 3954
+0x8D74 0x8861 # 0 3955
+0x8D75 0x8B1B # 0 3956
+0x8D76 0x8CA2 # 0 3957
+0x8D77 0x8CFC # 0 3958
+0x8D78 0x90CA # 0 3959
+0x8D79 0x9175 # 0 395A
+0x8D7A 0x9271 # 0 395B
+0x8D7B 0x783F # 0 395C
+0x8D7C 0x92FC # 0 395D
+0x8D7D 0x95A4 # 0 395E
+0x8D7E 0x964D # 0 395F
+0x8D80 0x9805 # 0 3960
+0x8D81 0x9999 # 0 3961
+0x8D82 0x9AD8 # 0 3962
+0x8D83 0x9D3B # 0 3963
+0x8D84 0x525B # 0 3964
+0x8D85 0x52AB # 0 3965
+0x8D86 0x53F7 # 0 3966
+0x8D87 0x5408 # 0 3967
+0x8D88 0x58D5 # 0 3968
+0x8D89 0x62F7 # 0 3969
+0x8D8A 0x6FE0 # 0 396A
+0x8D8B 0x8C6A # 0 396B
+0x8D8C 0x8F5F # 0 396C
+0x8D8D 0x9EB9 # 0 396D
+0x8D8E 0x514B # 0 396E
+0x8D8F 0x523B # 0 396F
+0x8D90 0x544A # 0 3970
+0x8D91 0x56FD # 0 3971
+0x8D92 0x7A40 # 0 3972
+0x8D93 0x9177 # 0 3973
+0x8D94 0x9D60 # 0 3974
+0x8D95 0x9ED2 # 0 3975
+0x8D96 0x7344 # 0 3976
+0x8D97 0x6F09 # 0 3977
+0x8D98 0x8170 # 0 3978
+0x8D99 0x7511 # 0 3979
+0x8D9A 0x5FFD # 0 397A
+0x8D9B 0x60DA # 0 397B
+0x8D9C 0x9AA8 # 0 397C
+0x8D9D 0x72DB # 0 397D
+0x8D9E 0x8FBC # 0 397E
+0x8D9F 0x6B64 # 0 3A21
+0x8DA0 0x9803 # 0 3A22
+0x8DA1 0x4ECA # 0 3A23
+0x8DA2 0x56F0 # 0 3A24
+0x8DA3 0x5764 # 0 3A25
+0x8DA4 0x58BE # 0 3A26
+0x8DA5 0x5A5A # 0 3A27
+0x8DA6 0x6068 # 0 3A28
+0x8DA7 0x61C7 # 0 3A29
+0x8DA8 0x660F # 0 3A2A
+0x8DA9 0x6606 # 0 3A2B
+0x8DAA 0x6839 # 0 3A2C
+0x8DAB 0x68B1 # 0 3A2D
+0x8DAC 0x6DF7 # 0 3A2E
+0x8DAD 0x75D5 # 0 3A2F
+0x8DAE 0x7D3A # 0 3A30
+0x8DAF 0x826E # 0 3A31
+0x8DB0 0x9B42 # 0 3A32
+0x8DB1 0x4E9B # 0 3A33
+0x8DB2 0x4F50 # 0 3A34
+0x8DB3 0x53C9 # 0 3A35
+0x8DB4 0x5506 # 0 3A36
+0x8DB5 0x5D6F # 0 3A37
+0x8DB6 0x5DE6 # 0 3A38
+0x8DB7 0x5DEE # 0 3A39
+0x8DB8 0x67FB # 0 3A3A
+0x8DB9 0x6C99 # 0 3A3B
+0x8DBA 0x7473 # 0 3A3C
+0x8DBB 0x7802 # 0 3A3D
+0x8DBC 0x8A50 # 0 3A3E
+0x8DBD 0x9396 # 0 3A3F
+0x8DBE 0x88DF # 0 3A40
+0x8DBF 0x5750 # 0 3A41
+0x8DC0 0x5EA7 # 0 3A42
+0x8DC1 0x632B # 0 3A43
+0x8DC2 0x50B5 # 0 3A44
+0x8DC3 0x50AC # 0 3A45
+0x8DC4 0x518D # 0 3A46
+0x8DC5 0x6700 # 0 3A47
+0x8DC6 0x54C9 # 0 3A48
+0x8DC7 0x585E # 0 3A49
+0x8DC8 0x59BB # 0 3A4A
+0x8DC9 0x5BB0 # 0 3A4B
+0x8DCA 0x5F69 # 0 3A4C
+0x8DCB 0x624D # 0 3A4D
+0x8DCC 0x63A1 # 0 3A4E
+0x8DCD 0x683D # 0 3A4F
+0x8DCE 0x6B73 # 0 3A50
+0x8DCF 0x6E08 # 0 3A51
+0x8DD0 0x707D # 0 3A52
+0x8DD1 0x91C7 # 0 3A53
+0x8DD2 0x7280 # 0 3A54
+0x8DD3 0x7815 # 0 3A55
+0x8DD4 0x7826 # 0 3A56
+0x8DD5 0x796D # 0 3A57
+0x8DD6 0x658E # 0 3A58
+0x8DD7 0x7D30 # 0 3A59
+0x8DD8 0x83DC # 0 3A5A
+0x8DD9 0x88C1 # 0 3A5B
+0x8DDA 0x8F09 # 0 3A5C
+0x8DDB 0x969B # 0 3A5D
+0x8DDC 0x5264 # 0 3A5E
+0x8DDD 0x5728 # 0 3A5F
+0x8DDE 0x6750 # 0 3A60
+0x8DDF 0x7F6A # 0 3A61
+0x8DE0 0x8CA1 # 0 3A62
+0x8DE1 0x51B4 # 0 3A63
+0x8DE2 0x5742 # 0 3A64
+0x8DE3 0x962A # 0 3A65
+0x8DE4 0x583A # 0 3A66
+0x8DE5 0x698A # 0 3A67
+0x8DE6 0x80B4 # 0 3A68
+0x8DE7 0x54B2 # 0 3A69
+0x8DE8 0x5D0E # 0 3A6A
+0x8DE9 0x57FC # 0 3A6B
+0x8DEA 0x7895 # 0 3A6C
+0x8DEB 0x9DFA # 0 3A6D
+0x8DEC 0x4F5C # 0 3A6E
+0x8DED 0x524A # 0 3A6F
+0x8DEE 0x548B # 0 3A70
+0x8DEF 0x643E # 0 3A71
+0x8DF0 0x6628 # 0 3A72
+0x8DF1 0x6714 # 0 3A73
+0x8DF2 0x67F5 # 0 3A74
+0x8DF3 0x7A84 # 0 3A75
+0x8DF4 0x7B56 # 0 3A76
+0x8DF5 0x7D22 # 0 3A77
+0x8DF6 0x932F # 0 3A78
+0x8DF7 0x685C # 0 3A79
+0x8DF8 0x9BAD # 0 3A7A
+0x8DF9 0x7B39 # 0 3A7B
+0x8DFA 0x5319 # 0 3A7C
+0x8DFB 0x518A # 0 3A7D
+0x8DFC 0x5237 # 0 3A7E
+0x8E40 0x5BDF # 0 3B21
+0x8E41 0x62F6 # 0 3B22
+0x8E42 0x64AE # 0 3B23
+0x8E43 0x64E6 # 0 3B24
+0x8E44 0x672D # 0 3B25
+0x8E45 0x6BBA # 0 3B26
+0x8E46 0x85A9 # 0 3B27
+0x8E47 0x96D1 # 0 3B28
+0x8E48 0x7690 # 0 3B29
+0x8E49 0x9BD6 # 0 3B2A
+0x8E4A 0x634C # 0 3B2B
+0x8E4B 0x9306 # 0 3B2C
+0x8E4C 0x9BAB # 0 3B2D
+0x8E4D 0x76BF # 0 3B2E
+0x8E4E 0x6652 # 0 3B2F
+0x8E4F 0x4E09 # 0 3B30
+0x8E50 0x5098 # 0 3B31
+0x8E51 0x53C2 # 0 3B32
+0x8E52 0x5C71 # 0 3B33
+0x8E53 0x60E8 # 0 3B34
+0x8E54 0x6492 # 0 3B35
+0x8E55 0x6563 # 0 3B36
+0x8E56 0x685F # 0 3B37
+0x8E57 0x71E6 # 0 3B38
+0x8E58 0x73CA # 0 3B39
+0x8E59 0x7523 # 0 3B3A
+0x8E5A 0x7B97 # 0 3B3B
+0x8E5B 0x7E82 # 0 3B3C
+0x8E5C 0x8695 # 0 3B3D
+0x8E5D 0x8B83 # 0 3B3E
+0x8E5E 0x8CDB # 0 3B3F
+0x8E5F 0x9178 # 0 3B40
+0x8E60 0x9910 # 0 3B41
+0x8E61 0x65AC # 0 3B42
+0x8E62 0x66AB # 0 3B43
+0x8E63 0x6B8B # 0 3B44
+0x8E64 0x4ED5 # 0 3B45
+0x8E65 0x4ED4 # 0 3B46
+0x8E66 0x4F3A # 0 3B47
+0x8E67 0x4F7F # 0 3B48
+0x8E68 0x523A # 0 3B49
+0x8E69 0x53F8 # 0 3B4A
+0x8E6A 0x53F2 # 0 3B4B
+0x8E6B 0x55E3 # 0 3B4C
+0x8E6C 0x56DB # 0 3B4D
+0x8E6D 0x58EB # 0 3B4E
+0x8E6E 0x59CB # 0 3B4F
+0x8E6F 0x59C9 # 0 3B50
+0x8E70 0x59FF # 0 3B51
+0x8E71 0x5B50 # 0 3B52
+0x8E72 0x5C4D # 0 3B53
+0x8E73 0x5E02 # 0 3B54
+0x8E74 0x5E2B # 0 3B55
+0x8E75 0x5FD7 # 0 3B56
+0x8E76 0x601D # 0 3B57
+0x8E77 0x6307 # 0 3B58
+0x8E78 0x652F # 0 3B59
+0x8E79 0x5B5C # 0 3B5A
+0x8E7A 0x65AF # 0 3B5B
+0x8E7B 0x65BD # 0 3B5C
+0x8E7C 0x65E8 # 0 3B5D
+0x8E7D 0x679D # 0 3B5E
+0x8E7E 0x6B62 # 0 3B5F
+0x8E80 0x6B7B # 0 3B60
+0x8E81 0x6C0F # 0 3B61
+0x8E82 0x7345 # 0 3B62
+0x8E83 0x7949 # 0 3B63
+0x8E84 0x79C1 # 0 3B64
+0x8E85 0x7CF8 # 0 3B65
+0x8E86 0x7D19 # 0 3B66
+0x8E87 0x7D2B # 0 3B67
+0x8E88 0x80A2 # 0 3B68
+0x8E89 0x8102 # 0 3B69
+0x8E8A 0x81F3 # 0 3B6A
+0x8E8B 0x8996 # 0 3B6B
+0x8E8C 0x8A5E # 0 3B6C
+0x8E8D 0x8A69 # 0 3B6D
+0x8E8E 0x8A66 # 0 3B6E
+0x8E8F 0x8A8C # 0 3B6F
+0x8E90 0x8AEE # 0 3B70
+0x8E91 0x8CC7 # 0 3B71
+0x8E92 0x8CDC # 0 3B72
+0x8E93 0x96CC # 0 3B73
+0x8E94 0x98FC # 0 3B74
+0x8E95 0x6B6F # 0 3B75
+0x8E96 0x4E8B # 0 3B76
+0x8E97 0x4F3C # 0 3B77
+0x8E98 0x4F8D # 0 3B78
+0x8E99 0x5150 # 0 3B79
+0x8E9A 0x5B57 # 0 3B7A
+0x8E9B 0x5BFA # 0 3B7B
+0x8E9C 0x6148 # 0 3B7C
+0x8E9D 0x6301 # 0 3B7D
+0x8E9E 0x6642 # 0 3B7E
+0x8E9F 0x6B21 # 0 3C21
+0x8EA0 0x6ECB # 0 3C22
+0x8EA1 0x6CBB # 0 3C23
+0x8EA2 0x723E # 0 3C24
+0x8EA3 0x74BD # 0 3C25
+0x8EA4 0x75D4 # 0 3C26
+0x8EA5 0x78C1 # 0 3C27
+0x8EA6 0x793A # 0 3C28
+0x8EA7 0x800C # 0 3C29
+0x8EA8 0x8033 # 0 3C2A
+0x8EA9 0x81EA # 0 3C2B
+0x8EAA 0x8494 # 0 3C2C
+0x8EAB 0x8F9E # 0 3C2D
+0x8EAC 0x6C50 # 0 3C2E
+0x8EAD 0x9E7F # 0 3C2F
+0x8EAE 0x5F0F # 0 3C30
+0x8EAF 0x8B58 # 0 3C31
+0x8EB0 0x9D2B # 0 3C32
+0x8EB1 0x7AFA # 0 3C33
+0x8EB2 0x8EF8 # 0 3C34
+0x8EB3 0x5B8D # 0 3C35
+0x8EB4 0x96EB # 0 3C36
+0x8EB5 0x4E03 # 0 3C37
+0x8EB6 0x53F1 # 0 3C38
+0x8EB7 0x57F7 # 0 3C39
+0x8EB8 0x5931 # 0 3C3A
+0x8EB9 0x5AC9 # 0 3C3B
+0x8EBA 0x5BA4 # 0 3C3C
+0x8EBB 0x6089 # 0 3C3D
+0x8EBC 0x6E7F # 0 3C3E
+0x8EBD 0x6F06 # 0 3C3F
+0x8EBE 0x75BE # 0 3C40
+0x8EBF 0x8CEA # 0 3C41
+0x8EC0 0x5B9F # 0 3C42
+0x8EC1 0x8500 # 0 3C43
+0x8EC2 0x7BE0 # 0 3C44
+0x8EC3 0x5072 # 0 3C45
+0x8EC4 0x67F4 # 0 3C46
+0x8EC5 0x829D # 0 3C47
+0x8EC6 0x5C61 # 0 3C48
+0x8EC7 0x854A # 0 3C49
+0x8EC8 0x7E1E # 0 3C4A
+0x8EC9 0x820E # 0 3C4B
+0x8ECA 0x5199 # 0 3C4C
+0x8ECB 0x5C04 # 0 3C4D
+0x8ECC 0x6368 # 0 3C4E
+0x8ECD 0x8D66 # 0 3C4F
+0x8ECE 0x659C # 0 3C50
+0x8ECF 0x716E # 0 3C51
+0x8ED0 0x793E # 0 3C52
+0x8ED1 0x7D17 # 0 3C53
+0x8ED2 0x8005 # 0 3C54
+0x8ED3 0x8B1D # 0 3C55
+0x8ED4 0x8ECA # 0 3C56
+0x8ED5 0x906E # 0 3C57
+0x8ED6 0x86C7 # 0 3C58
+0x8ED7 0x90AA # 0 3C59
+0x8ED8 0x501F # 0 3C5A
+0x8ED9 0x52FA # 0 3C5B
+0x8EDA 0x5C3A # 0 3C5C
+0x8EDB 0x6753 # 0 3C5D
+0x8EDC 0x707C # 0 3C5E
+0x8EDD 0x7235 # 0 3C5F
+0x8EDE 0x914C # 0 3C60
+0x8EDF 0x91C8 # 0 3C61
+0x8EE0 0x932B # 0 3C62
+0x8EE1 0x82E5 # 0 3C63
+0x8EE2 0x5BC2 # 0 3C64
+0x8EE3 0x5F31 # 0 3C65
+0x8EE4 0x60F9 # 0 3C66
+0x8EE5 0x4E3B # 0 3C67
+0x8EE6 0x53D6 # 0 3C68
+0x8EE7 0x5B88 # 0 3C69
+0x8EE8 0x624B # 0 3C6A
+0x8EE9 0x6731 # 0 3C6B
+0x8EEA 0x6B8A # 0 3C6C
+0x8EEB 0x72E9 # 0 3C6D
+0x8EEC 0x73E0 # 0 3C6E
+0x8EED 0x7A2E # 0 3C6F
+0x8EEE 0x816B # 0 3C70
+0x8EEF 0x8DA3 # 0 3C71
+0x8EF0 0x9152 # 0 3C72
+0x8EF1 0x9996 # 0 3C73
+0x8EF2 0x5112 # 0 3C74
+0x8EF3 0x53D7 # 0 3C75
+0x8EF4 0x546A # 0 3C76
+0x8EF5 0x5BFF # 0 3C77
+0x8EF6 0x6388 # 0 3C78
+0x8EF7 0x6A39 # 0 3C79
+0x8EF8 0x7DAC # 0 3C7A
+0x8EF9 0x9700 # 0 3C7B
+0x8EFA 0x56DA # 0 3C7C
+0x8EFB 0x53CE # 0 3C7D
+0x8EFC 0x5468 # 0 3C7E
+0x8F40 0x5B97 # 0 3D21
+0x8F41 0x5C31 # 0 3D22
+0x8F42 0x5DDE # 0 3D23
+0x8F43 0x4FEE # 0 3D24
+0x8F44 0x6101 # 0 3D25
+0x8F45 0x62FE # 0 3D26
+0x8F46 0x6D32 # 0 3D27
+0x8F47 0x79C0 # 0 3D28
+0x8F48 0x79CB # 0 3D29
+0x8F49 0x7D42 # 0 3D2A
+0x8F4A 0x7E4D # 0 3D2B
+0x8F4B 0x7FD2 # 0 3D2C
+0x8F4C 0x81ED # 0 3D2D
+0x8F4D 0x821F # 0 3D2E
+0x8F4E 0x8490 # 0 3D2F
+0x8F4F 0x8846 # 0 3D30
+0x8F50 0x8972 # 0 3D31
+0x8F51 0x8B90 # 0 3D32
+0x8F52 0x8E74 # 0 3D33
+0x8F53 0x8F2F # 0 3D34
+0x8F54 0x9031 # 0 3D35
+0x8F55 0x914B # 0 3D36
+0x8F56 0x916C # 0 3D37
+0x8F57 0x96C6 # 0 3D38
+0x8F58 0x919C # 0 3D39
+0x8F59 0x4EC0 # 0 3D3A
+0x8F5A 0x4F4F # 0 3D3B
+0x8F5B 0x5145 # 0 3D3C
+0x8F5C 0x5341 # 0 3D3D
+0x8F5D 0x5F93 # 0 3D3E
+0x8F5E 0x620E # 0 3D3F
+0x8F5F 0x67D4 # 0 3D40
+0x8F60 0x6C41 # 0 3D41
+0x8F61 0x6E0B # 0 3D42
+0x8F62 0x7363 # 0 3D43
+0x8F63 0x7E26 # 0 3D44
+0x8F64 0x91CD # 0 3D45
+0x8F65 0x9283 # 0 3D46
+0x8F66 0x53D4 # 0 3D47
+0x8F67 0x5919 # 0 3D48
+0x8F68 0x5BBF # 0 3D49
+0x8F69 0x6DD1 # 0 3D4A
+0x8F6A 0x795D # 0 3D4B
+0x8F6B 0x7E2E # 0 3D4C
+0x8F6C 0x7C9B # 0 3D4D
+0x8F6D 0x587E # 0 3D4E
+0x8F6E 0x719F # 0 3D4F
+0x8F6F 0x51FA # 0 3D50
+0x8F70 0x8853 # 0 3D51
+0x8F71 0x8FF0 # 0 3D52
+0x8F72 0x4FCA # 0 3D53
+0x8F73 0x5CFB # 0 3D54
+0x8F74 0x6625 # 0 3D55
+0x8F75 0x77AC # 0 3D56
+0x8F76 0x7AE3 # 0 3D57
+0x8F77 0x821C # 0 3D58
+0x8F78 0x99FF # 0 3D59
+0x8F79 0x51C6 # 0 3D5A
+0x8F7A 0x5FAA # 0 3D5B
+0x8F7B 0x65EC # 0 3D5C
+0x8F7C 0x696F # 0 3D5D
+0x8F7D 0x6B89 # 0 3D5E
+0x8F7E 0x6DF3 # 0 3D5F
+0x8F80 0x6E96 # 0 3D60
+0x8F81 0x6F64 # 0 3D61
+0x8F82 0x76FE # 0 3D62
+0x8F83 0x7D14 # 0 3D63
+0x8F84 0x5DE1 # 0 3D64
+0x8F85 0x9075 # 0 3D65
+0x8F86 0x9187 # 0 3D66
+0x8F87 0x9806 # 0 3D67
+0x8F88 0x51E6 # 0 3D68
+0x8F89 0x521D # 0 3D69
+0x8F8A 0x6240 # 0 3D6A
+0x8F8B 0x6691 # 0 3D6B
+0x8F8C 0x66D9 # 0 3D6C
+0x8F8D 0x6E1A # 0 3D6D
+0x8F8E 0x5EB6 # 0 3D6E
+0x8F8F 0x7DD2 # 0 3D6F
+0x8F90 0x7F72 # 0 3D70
+0x8F91 0x66F8 # 0 3D71
+0x8F92 0x85AF # 0 3D72
+0x8F93 0x85F7 # 0 3D73
+0x8F94 0x8AF8 # 0 3D74
+0x8F95 0x52A9 # 0 3D75
+0x8F96 0x53D9 # 0 3D76
+0x8F97 0x5973 # 0 3D77
+0x8F98 0x5E8F # 0 3D78
+0x8F99 0x5F90 # 0 3D79
+0x8F9A 0x6055 # 0 3D7A
+0x8F9B 0x92E4 # 0 3D7B
+0x8F9C 0x9664 # 0 3D7C
+0x8F9D 0x50B7 # 0 3D7D
+0x8F9E 0x511F # 0 3D7E
+0x8F9F 0x52DD # 0 3E21
+0x8FA0 0x5320 # 0 3E22
+0x8FA1 0x5347 # 0 3E23
+0x8FA2 0x53EC # 0 3E24
+0x8FA3 0x54E8 # 0 3E25
+0x8FA4 0x5546 # 0 3E26
+0x8FA5 0x5531 # 0 3E27
+0x8FA6 0x5617 # 0 3E28
+0x8FA7 0x5968 # 0 3E29
+0x8FA8 0x59BE # 0 3E2A
+0x8FA9 0x5A3C # 0 3E2B
+0x8FAA 0x5BB5 # 0 3E2C
+0x8FAB 0x5C06 # 0 3E2D
+0x8FAC 0x5C0F # 0 3E2E
+0x8FAD 0x5C11 # 0 3E2F
+0x8FAE 0x5C1A # 0 3E30
+0x8FAF 0x5E84 # 0 3E31
+0x8FB0 0x5E8A # 0 3E32
+0x8FB1 0x5EE0 # 0 3E33
+0x8FB2 0x5F70 # 0 3E34
+0x8FB3 0x627F # 0 3E35
+0x8FB4 0x6284 # 0 3E36
+0x8FB5 0x62DB # 0 3E37
+0x8FB6 0x638C # 0 3E38
+0x8FB7 0x6377 # 0 3E39
+0x8FB8 0x6607 # 0 3E3A
+0x8FB9 0x660C # 0 3E3B
+0x8FBA 0x662D # 0 3E3C
+0x8FBB 0x6676 # 0 3E3D
+0x8FBC 0x677E # 0 3E3E
+0x8FBD 0x68A2 # 0 3E3F
+0x8FBE 0x6A1F # 0 3E40
+0x8FBF 0x6A35 # 0 3E41
+0x8FC0 0x6CBC # 0 3E42
+0x8FC1 0x6D88 # 0 3E43
+0x8FC2 0x6E09 # 0 3E44
+0x8FC3 0x6E58 # 0 3E45
+0x8FC4 0x713C # 0 3E46
+0x8FC5 0x7126 # 0 3E47
+0x8FC6 0x7167 # 0 3E48
+0x8FC7 0x75C7 # 0 3E49
+0x8FC8 0x7701 # 0 3E4A
+0x8FC9 0x785D # 0 3E4B
+0x8FCA 0x7901 # 0 3E4C
+0x8FCB 0x7965 # 0 3E4D
+0x8FCC 0x79F0 # 0 3E4E
+0x8FCD 0x7AE0 # 0 3E4F
+0x8FCE 0x7B11 # 0 3E50
+0x8FCF 0x7CA7 # 0 3E51
+0x8FD0 0x7D39 # 0 3E52
+0x8FD1 0x8096 # 0 3E53
+0x8FD2 0x83D6 # 0 3E54
+0x8FD3 0x848B # 0 3E55
+0x8FD4 0x8549 # 0 3E56
+0x8FD5 0x885D # 0 3E57
+0x8FD6 0x88F3 # 0 3E58
+0x8FD7 0x8A1F # 0 3E59
+0x8FD8 0x8A3C # 0 3E5A
+0x8FD9 0x8A54 # 0 3E5B
+0x8FDA 0x8A73 # 0 3E5C
+0x8FDB 0x8C61 # 0 3E5D
+0x8FDC 0x8CDE # 0 3E5E
+0x8FDD 0x91A4 # 0 3E5F
+0x8FDE 0x9266 # 0 3E60
+0x8FDF 0x937E # 0 3E61
+0x8FE0 0x9418 # 0 3E62
+0x8FE1 0x969C # 0 3E63
+0x8FE2 0x9798 # 0 3E64
+0x8FE3 0x4E0A # 0 3E65
+0x8FE4 0x4E08 # 0 3E66
+0x8FE5 0x4E1E # 0 3E67
+0x8FE6 0x4E57 # 0 3E68
+0x8FE7 0x5197 # 0 3E69
+0x8FE8 0x5270 # 0 3E6A
+0x8FE9 0x57CE # 0 3E6B
+0x8FEA 0x5834 # 0 3E6C
+0x8FEB 0x58CC # 0 3E6D
+0x8FEC 0x5B22 # 0 3E6E
+0x8FED 0x5E38 # 0 3E6F
+0x8FEE 0x60C5 # 0 3E70
+0x8FEF 0x64FE # 0 3E71
+0x8FF0 0x6761 # 0 3E72
+0x8FF1 0x6756 # 0 3E73
+0x8FF2 0x6D44 # 0 3E74
+0x8FF3 0x72B6 # 0 3E75
+0x8FF4 0x7573 # 0 3E76
+0x8FF5 0x7A63 # 0 3E77
+0x8FF6 0x84B8 # 0 3E78
+0x8FF7 0x8B72 # 0 3E79
+0x8FF8 0x91B8 # 0 3E7A
+0x8FF9 0x9320 # 0 3E7B
+0x8FFA 0x5631 # 0 3E7C
+0x8FFB 0x57F4 # 0 3E7D
+0x8FFC 0x98FE # 0 3E7E
+0x9040 0x62ED # 0 3F21
+0x9041 0x690D # 0 3F22
+0x9042 0x6B96 # 0 3F23
+0x9043 0x71ED # 0 3F24
+0x9044 0x7E54 # 0 3F25
+0x9045 0x8077 # 0 3F26
+0x9046 0x8272 # 0 3F27
+0x9047 0x89E6 # 0 3F28
+0x9048 0x98DF # 0 3F29
+0x9049 0x8755 # 0 3F2A
+0x904A 0x8FB1 # 0 3F2B
+0x904B 0x5C3B # 0 3F2C
+0x904C 0x4F38 # 0 3F2D
+0x904D 0x4FE1 # 0 3F2E
+0x904E 0x4FB5 # 0 3F2F
+0x904F 0x5507 # 0 3F30
+0x9050 0x5A20 # 0 3F31
+0x9051 0x5BDD # 0 3F32
+0x9052 0x5BE9 # 0 3F33
+0x9053 0x5FC3 # 0 3F34
+0x9054 0x614E # 0 3F35
+0x9055 0x632F # 0 3F36
+0x9056 0x65B0 # 0 3F37
+0x9057 0x664B # 0 3F38
+0x9058 0x68EE # 0 3F39
+0x9059 0x699B # 0 3F3A
+0x905A 0x6D78 # 0 3F3B
+0x905B 0x6DF1 # 0 3F3C
+0x905C 0x7533 # 0 3F3D
+0x905D 0x75B9 # 0 3F3E
+0x905E 0x771F # 0 3F3F
+0x905F 0x795E # 0 3F40
+0x9060 0x79E6 # 0 3F41
+0x9061 0x7D33 # 0 3F42
+0x9062 0x81E3 # 0 3F43
+0x9063 0x82AF # 0 3F44
+0x9064 0x85AA # 0 3F45
+0x9065 0x89AA # 0 3F46
+0x9066 0x8A3A # 0 3F47
+0x9067 0x8EAB # 0 3F48
+0x9068 0x8F9B # 0 3F49
+0x9069 0x9032 # 0 3F4A
+0x906A 0x91DD # 0 3F4B
+0x906B 0x9707 # 0 3F4C
+0x906C 0x4EBA # 0 3F4D
+0x906D 0x4EC1 # 0 3F4E
+0x906E 0x5203 # 0 3F4F
+0x906F 0x5875 # 0 3F50
+0x9070 0x58EC # 0 3F51
+0x9071 0x5C0B # 0 3F52
+0x9072 0x751A # 0 3F53
+0x9073 0x5C3D # 0 3F54
+0x9074 0x814E # 0 3F55
+0x9075 0x8A0A # 0 3F56
+0x9076 0x8FC5 # 0 3F57
+0x9077 0x9663 # 0 3F58
+0x9078 0x976D # 0 3F59
+0x9079 0x7B25 # 0 3F5A
+0x907A 0x8ACF # 0 3F5B
+0x907B 0x9808 # 0 3F5C
+0x907C 0x9162 # 0 3F5D
+0x907D 0x56F3 # 0 3F5E
+0x907E 0x53A8 # 0 3F5F
+0x9080 0x9017 # 0 3F60
+0x9081 0x5439 # 0 3F61
+0x9082 0x5782 # 0 3F62
+0x9083 0x5E25 # 0 3F63
+0x9084 0x63A8 # 0 3F64
+0x9085 0x6C34 # 0 3F65
+0x9086 0x708A # 0 3F66
+0x9087 0x7761 # 0 3F67
+0x9088 0x7C8B # 0 3F68
+0x9089 0x7FE0 # 0 3F69
+0x908A 0x8870 # 0 3F6A
+0x908B 0x9042 # 0 3F6B
+0x908C 0x9154 # 0 3F6C
+0x908D 0x9310 # 0 3F6D
+0x908E 0x9318 # 0 3F6E
+0x908F 0x968F # 0 3F6F
+0x9090 0x745E # 0 3F70
+0x9091 0x9AC4 # 0 3F71
+0x9092 0x5D07 # 0 3F72
+0x9093 0x5D69 # 0 3F73
+0x9094 0x6570 # 0 3F74
+0x9095 0x67A2 # 0 3F75
+0x9096 0x8DA8 # 0 3F76
+0x9097 0x96DB # 0 3F77
+0x9098 0x636E # 0 3F78
+0x9099 0x6749 # 0 3F79
+0x909A 0x6919 # 0 3F7A
+0x909B 0x83C5 # 0 3F7B
+0x909C 0x9817 # 0 3F7C
+0x909D 0x96C0 # 0 3F7D
+0x909E 0x88FE # 0 3F7E
+0x909F 0x6F84 # 0 4021
+0x90A0 0x647A # 0 4022
+0x90A1 0x5BF8 # 0 4023
+0x90A2 0x4E16 # 0 4024
+0x90A3 0x702C # 0 4025
+0x90A4 0x755D # 0 4026
+0x90A5 0x662F # 0 4027
+0x90A6 0x51C4 # 0 4028
+0x90A7 0x5236 # 0 4029
+0x90A8 0x52E2 # 0 402A
+0x90A9 0x59D3 # 0 402B
+0x90AA 0x5F81 # 0 402C
+0x90AB 0x6027 # 0 402D
+0x90AC 0x6210 # 0 402E
+0x90AD 0x653F # 0 402F
+0x90AE 0x6574 # 0 4030
+0x90AF 0x661F # 0 4031
+0x90B0 0x6674 # 0 4032
+0x90B1 0x68F2 # 0 4033
+0x90B2 0x6816 # 0 4034
+0x90B3 0x6B63 # 0 4035
+0x90B4 0x6E05 # 0 4036
+0x90B5 0x7272 # 0 4037
+0x90B6 0x751F # 0 4038
+0x90B7 0x76DB # 0 4039
+0x90B8 0x7CBE # 0 403A
+0x90B9 0x8056 # 0 403B
+0x90BA 0x58F0 # 0 403C
+0x90BB 0x88FD # 0 403D
+0x90BC 0x897F # 0 403E
+0x90BD 0x8AA0 # 0 403F
+0x90BE 0x8A93 # 0 4040
+0x90BF 0x8ACB # 0 4041
+0x90C0 0x901D # 0 4042
+0x90C1 0x9192 # 0 4043
+0x90C2 0x9752 # 0 4044
+0x90C3 0x9759 # 0 4045
+0x90C4 0x6589 # 0 4046
+0x90C5 0x7A0E # 0 4047
+0x90C6 0x8106 # 0 4048
+0x90C7 0x96BB # 0 4049
+0x90C8 0x5E2D # 0 404A
+0x90C9 0x60DC # 0 404B
+0x90CA 0x621A # 0 404C
+0x90CB 0x65A5 # 0 404D
+0x90CC 0x6614 # 0 404E
+0x90CD 0x6790 # 0 404F
+0x90CE 0x77F3 # 0 4050
+0x90CF 0x7A4D # 0 4051
+0x90D0 0x7C4D # 0 4052
+0x90D1 0x7E3E # 0 4053
+0x90D2 0x810A # 0 4054
+0x90D3 0x8CAC # 0 4055
+0x90D4 0x8D64 # 0 4056
+0x90D5 0x8DE1 # 0 4057
+0x90D6 0x8E5F # 0 4058
+0x90D7 0x78A9 # 0 4059
+0x90D8 0x5207 # 0 405A
+0x90D9 0x62D9 # 0 405B
+0x90DA 0x63A5 # 0 405C
+0x90DB 0x6442 # 0 405D
+0x90DC 0x6298 # 0 405E
+0x90DD 0x8A2D # 0 405F
+0x90DE 0x7A83 # 0 4060
+0x90DF 0x7BC0 # 0 4061
+0x90E0 0x8AAC # 0 4062
+0x90E1 0x96EA # 0 4063
+0x90E2 0x7D76 # 0 4064
+0x90E3 0x820C # 0 4065
+0x90E4 0x8749 # 0 4066
+0x90E5 0x4ED9 # 0 4067
+0x90E6 0x5148 # 0 4068
+0x90E7 0x5343 # 0 4069
+0x90E8 0x5360 # 0 406A
+0x90E9 0x5BA3 # 0 406B
+0x90EA 0x5C02 # 0 406C
+0x90EB 0x5C16 # 0 406D
+0x90EC 0x5DDD # 0 406E
+0x90ED 0x6226 # 0 406F
+0x90EE 0x6247 # 0 4070
+0x90EF 0x64B0 # 0 4071
+0x90F0 0x6813 # 0 4072
+0x90F1 0x6834 # 0 4073
+0x90F2 0x6CC9 # 0 4074
+0x90F3 0x6D45 # 0 4075
+0x90F4 0x6D17 # 0 4076
+0x90F5 0x67D3 # 0 4077
+0x90F6 0x6F5C # 0 4078
+0x90F7 0x714E # 0 4079
+0x90F8 0x717D # 0 407A
+0x90F9 0x65CB # 0 407B
+0x90FA 0x7A7F # 0 407C
+0x90FB 0x7BAD # 0 407D
+0x90FC 0x7DDA # 0 407E
+0x9140 0x7E4A # 0 4121
+0x9141 0x7FA8 # 0 4122
+0x9142 0x817A # 0 4123
+0x9143 0x821B # 0 4124
+0x9144 0x8239 # 0 4125
+0x9145 0x85A6 # 0 4126
+0x9146 0x8A6E # 0 4127
+0x9147 0x8CCE # 0 4128
+0x9148 0x8DF5 # 0 4129
+0x9149 0x9078 # 0 412A
+0x914A 0x9077 # 0 412B
+0x914B 0x92AD # 0 412C
+0x914C 0x9291 # 0 412D
+0x914D 0x9583 # 0 412E
+0x914E 0x9BAE # 0 412F
+0x914F 0x524D # 0 4130
+0x9150 0x5584 # 0 4131
+0x9151 0x6F38 # 0 4132
+0x9152 0x7136 # 0 4133
+0x9153 0x5168 # 0 4134
+0x9154 0x7985 # 0 4135
+0x9155 0x7E55 # 0 4136
+0x9156 0x81B3 # 0 4137
+0x9157 0x7CCE # 0 4138
+0x9158 0x564C # 0 4139
+0x9159 0x5851 # 0 413A
+0x915A 0x5CA8 # 0 413B
+0x915B 0x63AA # 0 413C
+0x915C 0x66FE # 0 413D
+0x915D 0x66FD # 0 413E
+0x915E 0x695A # 0 413F
+0x915F 0x72D9 # 0 4140
+0x9160 0x758F # 0 4141
+0x9161 0x758E # 0 4142
+0x9162 0x790E # 0 4143
+0x9163 0x7956 # 0 4144
+0x9164 0x79DF # 0 4145
+0x9165 0x7C97 # 0 4146
+0x9166 0x7D20 # 0 4147
+0x9167 0x7D44 # 0 4148
+0x9168 0x8607 # 0 4149
+0x9169 0x8A34 # 0 414A
+0x916A 0x963B # 0 414B
+0x916B 0x9061 # 0 414C
+0x916C 0x9F20 # 0 414D
+0x916D 0x50E7 # 0 414E
+0x916E 0x5275 # 0 414F
+0x916F 0x53CC # 0 4150
+0x9170 0x53E2 # 0 4151
+0x9171 0x5009 # 0 4152
+0x9172 0x55AA # 0 4153
+0x9173 0x58EE # 0 4154
+0x9174 0x594F # 0 4155
+0x9175 0x723D # 0 4156
+0x9176 0x5B8B # 0 4157
+0x9177 0x5C64 # 0 4158
+0x9178 0x531D # 0 4159
+0x9179 0x60E3 # 0 415A
+0x917A 0x60F3 # 0 415B
+0x917B 0x635C # 0 415C
+0x917C 0x6383 # 0 415D
+0x917D 0x633F # 0 415E
+0x917E 0x63BB # 0 415F
+0x9180 0x64CD # 0 4160
+0x9181 0x65E9 # 0 4161
+0x9182 0x66F9 # 0 4162
+0x9183 0x5DE3 # 0 4163
+0x9184 0x69CD # 0 4164
+0x9185 0x69FD # 0 4165
+0x9186 0x6F15 # 0 4166
+0x9187 0x71E5 # 0 4167
+0x9188 0x4E89 # 0 4168
+0x9189 0x75E9 # 0 4169
+0x918A 0x76F8 # 0 416A
+0x918B 0x7A93 # 0 416B
+0x918C 0x7CDF # 0 416C
+0x918D 0x7DCF # 0 416D
+0x918E 0x7D9C # 0 416E
+0x918F 0x8061 # 0 416F
+0x9190 0x8349 # 0 4170
+0x9191 0x8358 # 0 4171
+0x9192 0x846C # 0 4172
+0x9193 0x84BC # 0 4173
+0x9194 0x85FB # 0 4174
+0x9195 0x88C5 # 0 4175
+0x9196 0x8D70 # 0 4176
+0x9197 0x9001 # 0 4177
+0x9198 0x906D # 0 4178
+0x9199 0x9397 # 0 4179
+0x919A 0x971C # 0 417A
+0x919B 0x9A12 # 0 417B
+0x919C 0x50CF # 0 417C
+0x919D 0x5897 # 0 417D
+0x919E 0x618E # 0 417E
+0x919F 0x81D3 # 0 4221
+0x91A0 0x8535 # 0 4222
+0x91A1 0x8D08 # 0 4223
+0x91A2 0x9020 # 0 4224
+0x91A3 0x4FC3 # 0 4225
+0x91A4 0x5074 # 0 4226
+0x91A5 0x5247 # 0 4227
+0x91A6 0x5373 # 0 4228
+0x91A7 0x606F # 0 4229
+0x91A8 0x6349 # 0 422A
+0x91A9 0x675F # 0 422B
+0x91AA 0x6E2C # 0 422C
+0x91AB 0x8DB3 # 0 422D
+0x91AC 0x901F # 0 422E
+0x91AD 0x4FD7 # 0 422F
+0x91AE 0x5C5E # 0 4230
+0x91AF 0x8CCA # 0 4231
+0x91B0 0x65CF # 0 4232
+0x91B1 0x7D9A # 0 4233
+0x91B2 0x5352 # 0 4234
+0x91B3 0x8896 # 0 4235
+0x91B4 0x5176 # 0 4236
+0x91B5 0x63C3 # 0 4237
+0x91B6 0x5B58 # 0 4238
+0x91B7 0x5B6B # 0 4239
+0x91B8 0x5C0A # 0 423A
+0x91B9 0x640D # 0 423B
+0x91BA 0x6751 # 0 423C
+0x91BB 0x905C # 0 423D
+0x91BC 0x4ED6 # 0 423E
+0x91BD 0x591A # 0 423F
+0x91BE 0x592A # 0 4240
+0x91BF 0x6C70 # 0 4241
+0x91C0 0x8A51 # 0 4242
+0x91C1 0x553E # 0 4243
+0x91C2 0x5815 # 0 4244
+0x91C3 0x59A5 # 0 4245
+0x91C4 0x60F0 # 0 4246
+0x91C5 0x6253 # 0 4247
+0x91C6 0x67C1 # 0 4248
+0x91C7 0x8235 # 0 4249
+0x91C8 0x6955 # 0 424A
+0x91C9 0x9640 # 0 424B
+0x91CA 0x99C4 # 0 424C
+0x91CB 0x9A28 # 0 424D
+0x91CC 0x4F53 # 0 424E
+0x91CD 0x5806 # 0 424F
+0x91CE 0x5BFE # 0 4250
+0x91CF 0x8010 # 0 4251
+0x91D0 0x5CB1 # 0 4252
+0x91D1 0x5E2F # 0 4253
+0x91D2 0x5F85 # 0 4254
+0x91D3 0x6020 # 0 4255
+0x91D4 0x614B # 0 4256
+0x91D5 0x6234 # 0 4257
+0x91D6 0x66FF # 0 4258
+0x91D7 0x6CF0 # 0 4259
+0x91D8 0x6EDE # 0 425A
+0x91D9 0x80CE # 0 425B
+0x91DA 0x817F # 0 425C
+0x91DB 0x82D4 # 0 425D
+0x91DC 0x888B # 0 425E
+0x91DD 0x8CB8 # 0 425F
+0x91DE 0x9000 # 0 4260
+0x91DF 0x902E # 0 4261
+0x91E0 0x968A # 0 4262
+0x91E1 0x9EDB # 0 4263
+0x91E2 0x9BDB # 0 4264
+0x91E3 0x4EE3 # 0 4265
+0x91E4 0x53F0 # 0 4266
+0x91E5 0x5927 # 0 4267
+0x91E6 0x7B2C # 0 4268
+0x91E7 0x918D # 0 4269
+0x91E8 0x984C # 0 426A
+0x91E9 0x9DF9 # 0 426B
+0x91EA 0x6EDD # 0 426C
+0x91EB 0x7027 # 0 426D
+0x91EC 0x5353 # 0 426E
+0x91ED 0x5544 # 0 426F
+0x91EE 0x5B85 # 0 4270
+0x91EF 0x6258 # 0 4271
+0x91F0 0x629E # 0 4272
+0x91F1 0x62D3 # 0 4273
+0x91F2 0x6CA2 # 0 4274
+0x91F3 0x6FEF # 0 4275
+0x91F4 0x7422 # 0 4276
+0x91F5 0x8A17 # 0 4277
+0x91F6 0x9438 # 0 4278
+0x91F7 0x6FC1 # 0 4279
+0x91F8 0x8AFE # 0 427A
+0x91F9 0x8338 # 0 427B
+0x91FA 0x51E7 # 0 427C
+0x91FB 0x86F8 # 0 427D
+0x91FC 0x53EA # 0 427E
+0x9240 0x53E9 # 0 4321
+0x9241 0x4F46 # 0 4322
+0x9242 0x9054 # 0 4323
+0x9243 0x8FB0 # 0 4324
+0x9244 0x596A # 0 4325
+0x9245 0x8131 # 0 4326
+0x9246 0x5DFD # 0 4327
+0x9247 0x7AEA # 0 4328
+0x9248 0x8FBF # 0 4329
+0x9249 0x68DA # 0 432A
+0x924A 0x8C37 # 0 432B
+0x924B 0x72F8 # 0 432C
+0x924C 0x9C48 # 0 432D
+0x924D 0x6A3D # 0 432E
+0x924E 0x8AB0 # 0 432F
+0x924F 0x4E39 # 0 4330
+0x9250 0x5358 # 0 4331
+0x9251 0x5606 # 0 4332
+0x9252 0x5766 # 0 4333
+0x9253 0x62C5 # 0 4334
+0x9254 0x63A2 # 0 4335
+0x9255 0x65E6 # 0 4336
+0x9256 0x6B4E # 0 4337
+0x9257 0x6DE1 # 0 4338
+0x9258 0x6E5B # 0 4339
+0x9259 0x70AD # 0 433A
+0x925A 0x77ED # 0 433B
+0x925B 0x7AEF # 0 433C
+0x925C 0x7BAA # 0 433D
+0x925D 0x7DBB # 0 433E
+0x925E 0x803D # 0 433F
+0x925F 0x80C6 # 0 4340
+0x9260 0x86CB # 0 4341
+0x9261 0x8A95 # 0 4342
+0x9262 0x935B # 0 4343
+0x9263 0x56E3 # 0 4344
+0x9264 0x58C7 # 0 4345
+0x9265 0x5F3E # 0 4346
+0x9266 0x65AD # 0 4347
+0x9267 0x6696 # 0 4348
+0x9268 0x6A80 # 0 4349
+0x9269 0x6BB5 # 0 434A
+0x926A 0x7537 # 0 434B
+0x926B 0x8AC7 # 0 434C
+0x926C 0x5024 # 0 434D
+0x926D 0x77E5 # 0 434E
+0x926E 0x5730 # 0 434F
+0x926F 0x5F1B # 0 4350
+0x9270 0x6065 # 0 4351
+0x9271 0x667A # 0 4352
+0x9272 0x6C60 # 0 4353
+0x9273 0x75F4 # 0 4354
+0x9274 0x7A1A # 0 4355
+0x9275 0x7F6E # 0 4356
+0x9276 0x81F4 # 0 4357
+0x9277 0x8718 # 0 4358
+0x9278 0x9045 # 0 4359
+0x9279 0x99B3 # 0 435A
+0x927A 0x7BC9 # 0 435B
+0x927B 0x755C # 0 435C
+0x927C 0x7AF9 # 0 435D
+0x927D 0x7B51 # 0 435E
+0x927E 0x84C4 # 0 435F
+0x9280 0x9010 # 0 4360
+0x9281 0x79E9 # 0 4361
+0x9282 0x7A92 # 0 4362
+0x9283 0x8336 # 0 4363
+0x9284 0x5AE1 # 0 4364
+0x9285 0x7740 # 0 4365
+0x9286 0x4E2D # 0 4366
+0x9287 0x4EF2 # 0 4367
+0x9288 0x5B99 # 0 4368
+0x9289 0x5FE0 # 0 4369
+0x928A 0x62BD # 0 436A
+0x928B 0x663C # 0 436B
+0x928C 0x67F1 # 0 436C
+0x928D 0x6CE8 # 0 436D
+0x928E 0x866B # 0 436E
+0x928F 0x8877 # 0 436F
+0x9290 0x8A3B # 0 4370
+0x9291 0x914E # 0 4371
+0x9292 0x92F3 # 0 4372
+0x9293 0x99D0 # 0 4373
+0x9294 0x6A17 # 0 4374
+0x9295 0x7026 # 0 4375
+0x9296 0x732A # 0 4376
+0x9297 0x82E7 # 0 4377
+0x9298 0x8457 # 0 4378
+0x9299 0x8CAF # 0 4379
+0x929A 0x4E01 # 0 437A
+0x929B 0x5146 # 0 437B
+0x929C 0x51CB # 0 437C
+0x929D 0x558B # 0 437D
+0x929E 0x5BF5 # 0 437E
+0x929F 0x5E16 # 0 4421
+0x92A0 0x5E33 # 0 4422
+0x92A1 0x5E81 # 0 4423
+0x92A2 0x5F14 # 0 4424
+0x92A3 0x5F35 # 0 4425
+0x92A4 0x5F6B # 0 4426
+0x92A5 0x5FB4 # 0 4427
+0x92A6 0x61F2 # 0 4428
+0x92A7 0x6311 # 0 4429
+0x92A8 0x66A2 # 0 442A
+0x92A9 0x671D # 0 442B
+0x92AA 0x6F6E # 0 442C
+0x92AB 0x7252 # 0 442D
+0x92AC 0x753A # 0 442E
+0x92AD 0x773A # 0 442F
+0x92AE 0x8074 # 0 4430
+0x92AF 0x8139 # 0 4431
+0x92B0 0x8178 # 0 4432
+0x92B1 0x8776 # 0 4433
+0x92B2 0x8ABF # 0 4434
+0x92B3 0x8ADC # 0 4435
+0x92B4 0x8D85 # 0 4436
+0x92B5 0x8DF3 # 0 4437
+0x92B6 0x929A # 0 4438
+0x92B7 0x9577 # 0 4439
+0x92B8 0x9802 # 0 443A
+0x92B9 0x9CE5 # 0 443B
+0x92BA 0x52C5 # 0 443C
+0x92BB 0x6357 # 0 443D
+0x92BC 0x76F4 # 0 443E
+0x92BD 0x6715 # 0 443F
+0x92BE 0x6C88 # 0 4440
+0x92BF 0x73CD # 0 4441
+0x92C0 0x8CC3 # 0 4442
+0x92C1 0x93AE # 0 4443
+0x92C2 0x9673 # 0 4444
+0x92C3 0x6D25 # 0 4445
+0x92C4 0x589C # 0 4446
+0x92C5 0x690E # 0 4447
+0x92C6 0x69CC # 0 4448
+0x92C7 0x8FFD # 0 4449
+0x92C8 0x939A # 0 444A
+0x92C9 0x75DB # 0 444B
+0x92CA 0x901A # 0 444C
+0x92CB 0x585A # 0 444D
+0x92CC 0x6802 # 0 444E
+0x92CD 0x63B4 # 0 444F
+0x92CE 0x69FB # 0 4450
+0x92CF 0x4F43 # 0 4451
+0x92D0 0x6F2C # 0 4452
+0x92D1 0x67D8 # 0 4453
+0x92D2 0x8FBB # 0 4454
+0x92D3 0x8526 # 0 4455
+0x92D4 0x7DB4 # 0 4456
+0x92D5 0x9354 # 0 4457
+0x92D6 0x693F # 0 4458
+0x92D7 0x6F70 # 0 4459
+0x92D8 0x576A # 0 445A
+0x92D9 0x58F7 # 0 445B
+0x92DA 0x5B2C # 0 445C
+0x92DB 0x7D2C # 0 445D
+0x92DC 0x722A # 0 445E
+0x92DD 0x540A # 0 445F
+0x92DE 0x91E3 # 0 4460
+0x92DF 0x9DB4 # 0 4461
+0x92E0 0x4EAD # 0 4462
+0x92E1 0x4F4E # 0 4463
+0x92E2 0x505C # 0 4464
+0x92E3 0x5075 # 0 4465
+0x92E4 0x5243 # 0 4466
+0x92E5 0x8C9E # 0 4467
+0x92E6 0x5448 # 0 4468
+0x92E7 0x5824 # 0 4469
+0x92E8 0x5B9A # 0 446A
+0x92E9 0x5E1D # 0 446B
+0x92EA 0x5E95 # 0 446C
+0x92EB 0x5EAD # 0 446D
+0x92EC 0x5EF7 # 0 446E
+0x92ED 0x5F1F # 0 446F
+0x92EE 0x608C # 0 4470
+0x92EF 0x62B5 # 0 4471
+0x92F0 0x633A # 0 4472
+0x92F1 0x63D0 # 0 4473
+0x92F2 0x68AF # 0 4474
+0x92F3 0x6C40 # 0 4475
+0x92F4 0x7887 # 0 4476
+0x92F5 0x798E # 0 4477
+0x92F6 0x7A0B # 0 4478
+0x92F7 0x7DE0 # 0 4479
+0x92F8 0x8247 # 0 447A
+0x92F9 0x8A02 # 0 447B
+0x92FA 0x8AE6 # 0 447C
+0x92FB 0x8E44 # 0 447D
+0x92FC 0x9013 # 0 447E
+0x9340 0x90B8 # 0 4521
+0x9341 0x912D # 0 4522
+0x9342 0x91D8 # 0 4523
+0x9343 0x9F0E # 0 4524
+0x9344 0x6CE5 # 0 4525
+0x9345 0x6458 # 0 4526
+0x9346 0x64E2 # 0 4527
+0x9347 0x6575 # 0 4528
+0x9348 0x6EF4 # 0 4529
+0x9349 0x7684 # 0 452A
+0x934A 0x7B1B # 0 452B
+0x934B 0x9069 # 0 452C
+0x934C 0x93D1 # 0 452D
+0x934D 0x6EBA # 0 452E
+0x934E 0x54F2 # 0 452F
+0x934F 0x5FB9 # 0 4530
+0x9350 0x64A4 # 0 4531
+0x9351 0x8F4D # 0 4532
+0x9352 0x8FED # 0 4533
+0x9353 0x9244 # 0 4534
+0x9354 0x5178 # 0 4535
+0x9355 0x586B # 0 4536
+0x9356 0x5929 # 0 4537
+0x9357 0x5C55 # 0 4538
+0x9358 0x5E97 # 0 4539
+0x9359 0x6DFB # 0 453A
+0x935A 0x7E8F # 0 453B
+0x935B 0x751C # 0 453C
+0x935C 0x8CBC # 0 453D
+0x935D 0x8EE2 # 0 453E
+0x935E 0x985B # 0 453F
+0x935F 0x70B9 # 0 4540
+0x9360 0x4F1D # 0 4541
+0x9361 0x6BBF # 0 4542
+0x9362 0x6FB1 # 0 4543
+0x9363 0x7530 # 0 4544
+0x9364 0x96FB # 0 4545
+0x9365 0x514E # 0 4546
+0x9366 0x5410 # 0 4547
+0x9367 0x5835 # 0 4548
+0x9368 0x5857 # 0 4549
+0x9369 0x59AC # 0 454A
+0x936A 0x5C60 # 0 454B
+0x936B 0x5F92 # 0 454C
+0x936C 0x6597 # 0 454D
+0x936D 0x675C # 0 454E
+0x936E 0x6E21 # 0 454F
+0x936F 0x767B # 0 4550
+0x9370 0x83DF # 0 4551
+0x9371 0x8CED # 0 4552
+0x9372 0x9014 # 0 4553
+0x9373 0x90FD # 0 4554
+0x9374 0x934D # 0 4555
+0x9375 0x7825 # 0 4556
+0x9376 0x783A # 0 4557
+0x9377 0x52AA # 0 4558
+0x9378 0x5EA6 # 0 4559
+0x9379 0x571F # 0 455A
+0x937A 0x5974 # 0 455B
+0x937B 0x6012 # 0 455C
+0x937C 0x5012 # 0 455D
+0x937D 0x515A # 0 455E
+0x937E 0x51AC # 0 455F
+0x9380 0x51CD # 0 4560
+0x9381 0x5200 # 0 4561
+0x9382 0x5510 # 0 4562
+0x9383 0x5854 # 0 4563
+0x9384 0x5858 # 0 4564
+0x9385 0x5957 # 0 4565
+0x9386 0x5B95 # 0 4566
+0x9387 0x5CF6 # 0 4567
+0x9388 0x5D8B # 0 4568
+0x9389 0x60BC # 0 4569
+0x938A 0x6295 # 0 456A
+0x938B 0x642D # 0 456B
+0x938C 0x6771 # 0 456C
+0x938D 0x6843 # 0 456D
+0x938E 0x68BC # 0 456E
+0x938F 0x68DF # 0 456F
+0x9390 0x76D7 # 0 4570
+0x9391 0x6DD8 # 0 4571
+0x9392 0x6E6F # 0 4572
+0x9393 0x6D9B # 0 4573
+0x9394 0x706F # 0 4574
+0x9395 0x71C8 # 0 4575
+0x9396 0x5F53 # 0 4576
+0x9397 0x75D8 # 0 4577
+0x9398 0x7977 # 0 4578
+0x9399 0x7B49 # 0 4579
+0x939A 0x7B54 # 0 457A
+0x939B 0x7B52 # 0 457B
+0x939C 0x7CD6 # 0 457C
+0x939D 0x7D71 # 0 457D
+0x939E 0x5230 # 0 457E
+0x939F 0x8463 # 0 4621
+0x93A0 0x8569 # 0 4622
+0x93A1 0x85E4 # 0 4623
+0x93A2 0x8A0E # 0 4624
+0x93A3 0x8B04 # 0 4625
+0x93A4 0x8C46 # 0 4626
+0x93A5 0x8E0F # 0 4627
+0x93A6 0x9003 # 0 4628
+0x93A7 0x900F # 0 4629
+0x93A8 0x9419 # 0 462A
+0x93A9 0x9676 # 0 462B
+0x93AA 0x982D # 0 462C
+0x93AB 0x9A30 # 0 462D
+0x93AC 0x95D8 # 0 462E
+0x93AD 0x50CD # 0 462F
+0x93AE 0x52D5 # 0 4630
+0x93AF 0x540C # 0 4631
+0x93B0 0x5802 # 0 4632
+0x93B1 0x5C0E # 0 4633
+0x93B2 0x61A7 # 0 4634
+0x93B3 0x649E # 0 4635
+0x93B4 0x6D1E # 0 4636
+0x93B5 0x77B3 # 0 4637
+0x93B6 0x7AE5 # 0 4638
+0x93B7 0x80F4 # 0 4639
+0x93B8 0x8404 # 0 463A
+0x93B9 0x9053 # 0 463B
+0x93BA 0x9285 # 0 463C
+0x93BB 0x5CE0 # 0 463D
+0x93BC 0x9D07 # 0 463E
+0x93BD 0x533F # 0 463F
+0x93BE 0x5F97 # 0 4640
+0x93BF 0x5FB3 # 0 4641
+0x93C0 0x6D9C # 0 4642
+0x93C1 0x7279 # 0 4643
+0x93C2 0x7763 # 0 4644
+0x93C3 0x79BF # 0 4645
+0x93C4 0x7BE4 # 0 4646
+0x93C5 0x6BD2 # 0 4647
+0x93C6 0x72EC # 0 4648
+0x93C7 0x8AAD # 0 4649
+0x93C8 0x6803 # 0 464A
+0x93C9 0x6A61 # 0 464B
+0x93CA 0x51F8 # 0 464C
+0x93CB 0x7A81 # 0 464D
+0x93CC 0x6934 # 0 464E
+0x93CD 0x5C4A # 0 464F
+0x93CE 0x9CF6 # 0 4650
+0x93CF 0x82EB # 0 4651
+0x93D0 0x5BC5 # 0 4652
+0x93D1 0x9149 # 0 4653
+0x93D2 0x701E # 0 4654
+0x93D3 0x5678 # 0 4655
+0x93D4 0x5C6F # 0 4656
+0x93D5 0x60C7 # 0 4657
+0x93D6 0x6566 # 0 4658
+0x93D7 0x6C8C # 0 4659
+0x93D8 0x8C5A # 0 465A
+0x93D9 0x9041 # 0 465B
+0x93DA 0x9813 # 0 465C
+0x93DB 0x5451 # 0 465D
+0x93DC 0x66C7 # 0 465E
+0x93DD 0x920D # 0 465F
+0x93DE 0x5948 # 0 4660
+0x93DF 0x90A3 # 0 4661
+0x93E0 0x5185 # 0 4662
+0x93E1 0x4E4D # 0 4663
+0x93E2 0x51EA # 0 4664
+0x93E3 0x8599 # 0 4665
+0x93E4 0x8B0E # 0 4666
+0x93E5 0x7058 # 0 4667
+0x93E6 0x637A # 0 4668
+0x93E7 0x934B # 0 4669
+0x93E8 0x6962 # 0 466A
+0x93E9 0x99B4 # 0 466B
+0x93EA 0x7E04 # 0 466C
+0x93EB 0x7577 # 0 466D
+0x93EC 0x5357 # 0 466E
+0x93ED 0x6960 # 0 466F
+0x93EE 0x8EDF # 0 4670
+0x93EF 0x96E3 # 0 4671
+0x93F0 0x6C5D # 0 4672
+0x93F1 0x4E8C # 0 4673
+0x93F2 0x5C3C # 0 4674
+0x93F3 0x5F10 # 0 4675
+0x93F4 0x8FE9 # 0 4676
+0x93F5 0x5302 # 0 4677
+0x93F6 0x8CD1 # 0 4678
+0x93F7 0x8089 # 0 4679
+0x93F8 0x8679 # 0 467A
+0x93F9 0x5EFF # 0 467B
+0x93FA 0x65E5 # 0 467C
+0x93FB 0x4E73 # 0 467D
+0x93FC 0x5165 # 0 467E
+0x9440 0x5982 # 0 4721
+0x9441 0x5C3F # 0 4722
+0x9442 0x97EE # 0 4723
+0x9443 0x4EFB # 0 4724
+0x9444 0x598A # 0 4725
+0x9445 0x5FCD # 0 4726
+0x9446 0x8A8D # 0 4727
+0x9447 0x6FE1 # 0 4728
+0x9448 0x79B0 # 0 4729
+0x9449 0x7962 # 0 472A
+0x944A 0x5BE7 # 0 472B
+0x944B 0x8471 # 0 472C
+0x944C 0x732B # 0 472D
+0x944D 0x71B1 # 0 472E
+0x944E 0x5E74 # 0 472F
+0x944F 0x5FF5 # 0 4730
+0x9450 0x637B # 0 4731
+0x9451 0x649A # 0 4732
+0x9452 0x71C3 # 0 4733
+0x9453 0x7C98 # 0 4734
+0x9454 0x4E43 # 0 4735
+0x9455 0x5EFC # 0 4736
+0x9456 0x4E4B # 0 4737
+0x9457 0x57DC # 0 4738
+0x9458 0x56A2 # 0 4739
+0x9459 0x60A9 # 0 473A
+0x945A 0x6FC3 # 0 473B
+0x945B 0x7D0D # 0 473C
+0x945C 0x80FD # 0 473D
+0x945D 0x8133 # 0 473E
+0x945E 0x81BF # 0 473F
+0x945F 0x8FB2 # 0 4740
+0x9460 0x8997 # 0 4741
+0x9461 0x86A4 # 0 4742
+0x9462 0x5DF4 # 0 4743
+0x9463 0x628A # 0 4744
+0x9464 0x64AD # 0 4745
+0x9465 0x8987 # 0 4746
+0x9466 0x6777 # 0 4747
+0x9467 0x6CE2 # 0 4748
+0x9468 0x6D3E # 0 4749
+0x9469 0x7436 # 0 474A
+0x946A 0x7834 # 0 474B
+0x946B 0x5A46 # 0 474C
+0x946C 0x7F75 # 0 474D
+0x946D 0x82AD # 0 474E
+0x946E 0x99AC # 0 474F
+0x946F 0x4FF3 # 0 4750
+0x9470 0x5EC3 # 0 4751
+0x9471 0x62DD # 0 4752
+0x9472 0x6392 # 0 4753
+0x9473 0x6557 # 0 4754
+0x9474 0x676F # 0 4755
+0x9475 0x76C3 # 0 4756
+0x9476 0x724C # 0 4757
+0x9477 0x80CC # 0 4758
+0x9478 0x80BA # 0 4759
+0x9479 0x8F29 # 0 475A
+0x947A 0x914D # 0 475B
+0x947B 0x500D # 0 475C
+0x947C 0x57F9 # 0 475D
+0x947D 0x5A92 # 0 475E
+0x947E 0x6885 # 0 475F
+0x9480 0x6973 # 0 4760
+0x9481 0x7164 # 0 4761
+0x9482 0x72FD # 0 4762
+0x9483 0x8CB7 # 0 4763
+0x9484 0x58F2 # 0 4764
+0x9485 0x8CE0 # 0 4765
+0x9486 0x966A # 0 4766
+0x9487 0x9019 # 0 4767
+0x9488 0x877F # 0 4768
+0x9489 0x79E4 # 0 4769
+0x948A 0x77E7 # 0 476A
+0x948B 0x8429 # 0 476B
+0x948C 0x4F2F # 0 476C
+0x948D 0x5265 # 0 476D
+0x948E 0x535A # 0 476E
+0x948F 0x62CD # 0 476F
+0x9490 0x67CF # 0 4770
+0x9491 0x6CCA # 0 4771
+0x9492 0x767D # 0 4772
+0x9493 0x7B94 # 0 4773
+0x9494 0x7C95 # 0 4774
+0x9495 0x8236 # 0 4775
+0x9496 0x8584 # 0 4776
+0x9497 0x8FEB # 0 4777
+0x9498 0x66DD # 0 4778
+0x9499 0x6F20 # 0 4779
+0x949A 0x7206 # 0 477A
+0x949B 0x7E1B # 0 477B
+0x949C 0x83AB # 0 477C
+0x949D 0x99C1 # 0 477D
+0x949E 0x9EA6 # 0 477E
+0x949F 0x51FD # 0 4821
+0x94A0 0x7BB1 # 0 4822
+0x94A1 0x7872 # 0 4823
+0x94A2 0x7BB8 # 0 4824
+0x94A3 0x8087 # 0 4825
+0x94A4 0x7B48 # 0 4826
+0x94A5 0x6AE8 # 0 4827
+0x94A6 0x5E61 # 0 4828
+0x94A7 0x808C # 0 4829
+0x94A8 0x7551 # 0 482A
+0x94A9 0x7560 # 0 482B
+0x94AA 0x516B # 0 482C
+0x94AB 0x9262 # 0 482D
+0x94AC 0x6E8C # 0 482E
+0x94AD 0x767A # 0 482F
+0x94AE 0x9197 # 0 4830
+0x94AF 0x9AEA # 0 4831
+0x94B0 0x4F10 # 0 4832
+0x94B1 0x7F70 # 0 4833
+0x94B2 0x629C # 0 4834
+0x94B3 0x7B4F # 0 4835
+0x94B4 0x95A5 # 0 4836
+0x94B5 0x9CE9 # 0 4837
+0x94B6 0x567A # 0 4838
+0x94B7 0x5859 # 0 4839
+0x94B8 0x86E4 # 0 483A
+0x94B9 0x96BC # 0 483B
+0x94BA 0x4F34 # 0 483C
+0x94BB 0x5224 # 0 483D
+0x94BC 0x534A # 0 483E
+0x94BD 0x53CD # 0 483F
+0x94BE 0x53DB # 0 4840
+0x94BF 0x5E06 # 0 4841
+0x94C0 0x642C # 0 4842
+0x94C1 0x6591 # 0 4843
+0x94C2 0x677F # 0 4844
+0x94C3 0x6C3E # 0 4845
+0x94C4 0x6C4E # 0 4846
+0x94C5 0x7248 # 0 4847
+0x94C6 0x72AF # 0 4848
+0x94C7 0x73ED # 0 4849
+0x94C8 0x7554 # 0 484A
+0x94C9 0x7E41 # 0 484B
+0x94CA 0x822C # 0 484C
+0x94CB 0x85E9 # 0 484D
+0x94CC 0x8CA9 # 0 484E
+0x94CD 0x7BC4 # 0 484F
+0x94CE 0x91C6 # 0 4850
+0x94CF 0x7169 # 0 4851
+0x94D0 0x9812 # 0 4852
+0x94D1 0x98EF # 0 4853
+0x94D2 0x633D # 0 4854
+0x94D3 0x6669 # 0 4855
+0x94D4 0x756A # 0 4856
+0x94D5 0x76E4 # 0 4857
+0x94D6 0x78D0 # 0 4858
+0x94D7 0x8543 # 0 4859
+0x94D8 0x86EE # 0 485A
+0x94D9 0x532A # 0 485B
+0x94DA 0x5351 # 0 485C
+0x94DB 0x5426 # 0 485D
+0x94DC 0x5983 # 0 485E
+0x94DD 0x5E87 # 0 485F
+0x94DE 0x5F7C # 0 4860
+0x94DF 0x60B2 # 0 4861
+0x94E0 0x6249 # 0 4862
+0x94E1 0x6279 # 0 4863
+0x94E2 0x62AB # 0 4864
+0x94E3 0x6590 # 0 4865
+0x94E4 0x6BD4 # 0 4866
+0x94E5 0x6CCC # 0 4867
+0x94E6 0x75B2 # 0 4868
+0x94E7 0x76AE # 0 4869
+0x94E8 0x7891 # 0 486A
+0x94E9 0x79D8 # 0 486B
+0x94EA 0x7DCB # 0 486C
+0x94EB 0x7F77 # 0 486D
+0x94EC 0x80A5 # 0 486E
+0x94ED 0x88AB # 0 486F
+0x94EE 0x8AB9 # 0 4870
+0x94EF 0x8CBB # 0 4871
+0x94F0 0x907F # 0 4872
+0x94F1 0x975E # 0 4873
+0x94F2 0x98DB # 0 4874
+0x94F3 0x6A0B # 0 4875
+0x94F4 0x7C38 # 0 4876
+0x94F5 0x5099 # 0 4877
+0x94F6 0x5C3E # 0 4878
+0x94F7 0x5FAE # 0 4879
+0x94F8 0x6787 # 0 487A
+0x94F9 0x6BD8 # 0 487B
+0x94FA 0x7435 # 0 487C
+0x94FB 0x7709 # 0 487D
+0x94FC 0x7F8E # 0 487E
+0x9540 0x9F3B # 0 4921
+0x9541 0x67CA # 0 4922
+0x9542 0x7A17 # 0 4923
+0x9543 0x5339 # 0 4924
+0x9544 0x758B # 0 4925
+0x9545 0x9AED # 0 4926
+0x9546 0x5F66 # 0 4927
+0x9547 0x819D # 0 4928
+0x9548 0x83F1 # 0 4929
+0x9549 0x8098 # 0 492A
+0x954A 0x5F3C # 0 492B
+0x954B 0x5FC5 # 0 492C
+0x954C 0x7562 # 0 492D
+0x954D 0x7B46 # 0 492E
+0x954E 0x903C # 0 492F
+0x954F 0x6867 # 0 4930
+0x9550 0x59EB # 0 4931
+0x9551 0x5A9B # 0 4932
+0x9552 0x7D10 # 0 4933
+0x9553 0x767E # 0 4934
+0x9554 0x8B2C # 0 4935
+0x9555 0x4FF5 # 0 4936
+0x9556 0x5F6A # 0 4937
+0x9557 0x6A19 # 0 4938
+0x9558 0x6C37 # 0 4939
+0x9559 0x6F02 # 0 493A
+0x955A 0x74E2 # 0 493B
+0x955B 0x7968 # 0 493C
+0x955C 0x8868 # 0 493D
+0x955D 0x8A55 # 0 493E
+0x955E 0x8C79 # 0 493F
+0x955F 0x5EDF # 0 4940
+0x9560 0x63CF # 0 4941
+0x9561 0x75C5 # 0 4942
+0x9562 0x79D2 # 0 4943
+0x9563 0x82D7 # 0 4944
+0x9564 0x9328 # 0 4945
+0x9565 0x92F2 # 0 4946
+0x9566 0x849C # 0 4947
+0x9567 0x86ED # 0 4948
+0x9568 0x9C2D # 0 4949
+0x9569 0x54C1 # 0 494A
+0x956A 0x5F6C # 0 494B
+0x956B 0x658C # 0 494C
+0x956C 0x6D5C # 0 494D
+0x956D 0x7015 # 0 494E
+0x956E 0x8CA7 # 0 494F
+0x956F 0x8CD3 # 0 4950
+0x9570 0x983B # 0 4951
+0x9571 0x654F # 0 4952
+0x9572 0x74F6 # 0 4953
+0x9573 0x4E0D # 0 4954
+0x9574 0x4ED8 # 0 4955
+0x9575 0x57E0 # 0 4956
+0x9576 0x592B # 0 4957
+0x9577 0x5A66 # 0 4958
+0x9578 0x5BCC # 0 4959
+0x9579 0x51A8 # 0 495A
+0x957A 0x5E03 # 0 495B
+0x957B 0x5E9C # 0 495C
+0x957C 0x6016 # 0 495D
+0x957D 0x6276 # 0 495E
+0x957E 0x6577 # 0 495F
+0x9580 0x65A7 # 0 4960
+0x9581 0x666E # 0 4961
+0x9582 0x6D6E # 0 4962
+0x9583 0x7236 # 0 4963
+0x9584 0x7B26 # 0 4964
+0x9585 0x8150 # 0 4965
+0x9586 0x819A # 0 4966
+0x9587 0x8299 # 0 4967
+0x9588 0x8B5C # 0 4968
+0x9589 0x8CA0 # 0 4969
+0x958A 0x8CE6 # 0 496A
+0x958B 0x8D74 # 0 496B
+0x958C 0x961C # 0 496C
+0x958D 0x9644 # 0 496D
+0x958E 0x4FAE # 0 496E
+0x958F 0x64AB # 0 496F
+0x9590 0x6B66 # 0 4970
+0x9591 0x821E # 0 4971
+0x9592 0x8461 # 0 4972
+0x9593 0x856A # 0 4973
+0x9594 0x90E8 # 0 4974
+0x9595 0x5C01 # 0 4975
+0x9596 0x6953 # 0 4976
+0x9597 0x98A8 # 0 4977
+0x9598 0x847A # 0 4978
+0x9599 0x8557 # 0 4979
+0x959A 0x4F0F # 0 497A
+0x959B 0x526F # 0 497B
+0x959C 0x5FA9 # 0 497C
+0x959D 0x5E45 # 0 497D
+0x959E 0x670D # 0 497E
+0x959F 0x798F # 0 4A21
+0x95A0 0x8179 # 0 4A22
+0x95A1 0x8907 # 0 4A23
+0x95A2 0x8986 # 0 4A24
+0x95A3 0x6DF5 # 0 4A25
+0x95A4 0x5F17 # 0 4A26
+0x95A5 0x6255 # 0 4A27
+0x95A6 0x6CB8 # 0 4A28
+0x95A7 0x4ECF # 0 4A29
+0x95A8 0x7269 # 0 4A2A
+0x95A9 0x9B92 # 0 4A2B
+0x95AA 0x5206 # 0 4A2C
+0x95AB 0x543B # 0 4A2D
+0x95AC 0x5674 # 0 4A2E
+0x95AD 0x58B3 # 0 4A2F
+0x95AE 0x61A4 # 0 4A30
+0x95AF 0x626E # 0 4A31
+0x95B0 0x711A # 0 4A32
+0x95B1 0x596E # 0 4A33
+0x95B2 0x7C89 # 0 4A34
+0x95B3 0x7CDE # 0 4A35
+0x95B4 0x7D1B # 0 4A36
+0x95B5 0x96F0 # 0 4A37
+0x95B6 0x6587 # 0 4A38
+0x95B7 0x805E # 0 4A39
+0x95B8 0x4E19 # 0 4A3A
+0x95B9 0x4F75 # 0 4A3B
+0x95BA 0x5175 # 0 4A3C
+0x95BB 0x5840 # 0 4A3D
+0x95BC 0x5E63 # 0 4A3E
+0x95BD 0x5E73 # 0 4A3F
+0x95BE 0x5F0A # 0 4A40
+0x95BF 0x67C4 # 0 4A41
+0x95C0 0x4E26 # 0 4A42
+0x95C1 0x853D # 0 4A43
+0x95C2 0x9589 # 0 4A44
+0x95C3 0x965B # 0 4A45
+0x95C4 0x7C73 # 0 4A46
+0x95C5 0x9801 # 0 4A47
+0x95C6 0x50FB # 0 4A48
+0x95C7 0x58C1 # 0 4A49
+0x95C8 0x7656 # 0 4A4A
+0x95C9 0x78A7 # 0 4A4B
+0x95CA 0x5225 # 0 4A4C
+0x95CB 0x77A5 # 0 4A4D
+0x95CC 0x8511 # 0 4A4E
+0x95CD 0x7B86 # 0 4A4F
+0x95CE 0x504F # 0 4A50
+0x95CF 0x5909 # 0 4A51
+0x95D0 0x7247 # 0 4A52
+0x95D1 0x7BC7 # 0 4A53
+0x95D2 0x7DE8 # 0 4A54
+0x95D3 0x8FBA # 0 4A55
+0x95D4 0x8FD4 # 0 4A56
+0x95D5 0x904D # 0 4A57
+0x95D6 0x4FBF # 0 4A58
+0x95D7 0x52C9 # 0 4A59
+0x95D8 0x5A29 # 0 4A5A
+0x95D9 0x5F01 # 0 4A5B
+0x95DA 0x97AD # 0 4A5C
+0x95DB 0x4FDD # 0 4A5D
+0x95DC 0x8217 # 0 4A5E
+0x95DD 0x92EA # 0 4A5F
+0x95DE 0x5703 # 0 4A60
+0x95DF 0x6355 # 0 4A61
+0x95E0 0x6B69 # 0 4A62
+0x95E1 0x752B # 0 4A63
+0x95E2 0x88DC # 0 4A64
+0x95E3 0x8F14 # 0 4A65
+0x95E4 0x7A42 # 0 4A66
+0x95E5 0x52DF # 0 4A67
+0x95E6 0x5893 # 0 4A68
+0x95E7 0x6155 # 0 4A69
+0x95E8 0x620A # 0 4A6A
+0x95E9 0x66AE # 0 4A6B
+0x95EA 0x6BCD # 0 4A6C
+0x95EB 0x7C3F # 0 4A6D
+0x95EC 0x83E9 # 0 4A6E
+0x95ED 0x5023 # 0 4A6F
+0x95EE 0x4FF8 # 0 4A70
+0x95EF 0x5305 # 0 4A71
+0x95F0 0x5446 # 0 4A72
+0x95F1 0x5831 # 0 4A73
+0x95F2 0x5949 # 0 4A74
+0x95F3 0x5B9D # 0 4A75
+0x95F4 0x5CF0 # 0 4A76
+0x95F5 0x5CEF # 0 4A77
+0x95F6 0x5D29 # 0 4A78
+0x95F7 0x5E96 # 0 4A79
+0x95F8 0x62B1 # 0 4A7A
+0x95F9 0x6367 # 0 4A7B
+0x95FA 0x653E # 0 4A7C
+0x95FB 0x65B9 # 0 4A7D
+0x95FC 0x670B # 0 4A7E
+0x9640 0x6CD5 # 0 4B21
+0x9641 0x6CE1 # 0 4B22
+0x9642 0x70F9 # 0 4B23
+0x9643 0x7832 # 0 4B24
+0x9644 0x7E2B # 0 4B25
+0x9645 0x80DE # 0 4B26
+0x9646 0x82B3 # 0 4B27
+0x9647 0x840C # 0 4B28
+0x9648 0x84EC # 0 4B29
+0x9649 0x8702 # 0 4B2A
+0x964A 0x8912 # 0 4B2B
+0x964B 0x8A2A # 0 4B2C
+0x964C 0x8C4A # 0 4B2D
+0x964D 0x90A6 # 0 4B2E
+0x964E 0x92D2 # 0 4B2F
+0x964F 0x98FD # 0 4B30
+0x9650 0x9CF3 # 0 4B31
+0x9651 0x9D6C # 0 4B32
+0x9652 0x4E4F # 0 4B33
+0x9653 0x4EA1 # 0 4B34
+0x9654 0x508D # 0 4B35
+0x9655 0x5256 # 0 4B36
+0x9656 0x574A # 0 4B37
+0x9657 0x59A8 # 0 4B38
+0x9658 0x5E3D # 0 4B39
+0x9659 0x5FD8 # 0 4B3A
+0x965A 0x5FD9 # 0 4B3B
+0x965B 0x623F # 0 4B3C
+0x965C 0x66B4 # 0 4B3D
+0x965D 0x671B # 0 4B3E
+0x965E 0x67D0 # 0 4B3F
+0x965F 0x68D2 # 0 4B40
+0x9660 0x5192 # 0 4B41
+0x9661 0x7D21 # 0 4B42
+0x9662 0x80AA # 0 4B43
+0x9663 0x81A8 # 0 4B44
+0x9664 0x8B00 # 0 4B45
+0x9665 0x8C8C # 0 4B46
+0x9666 0x8CBF # 0 4B47
+0x9667 0x927E # 0 4B48
+0x9668 0x9632 # 0 4B49
+0x9669 0x5420 # 0 4B4A
+0x966A 0x982C # 0 4B4B
+0x966B 0x5317 # 0 4B4C
+0x966C 0x50D5 # 0 4B4D
+0x966D 0x535C # 0 4B4E
+0x966E 0x58A8 # 0 4B4F
+0x966F 0x64B2 # 0 4B50
+0x9670 0x6734 # 0 4B51
+0x9671 0x7267 # 0 4B52
+0x9672 0x7766 # 0 4B53
+0x9673 0x7A46 # 0 4B54
+0x9674 0x91E6 # 0 4B55
+0x9675 0x52C3 # 0 4B56
+0x9676 0x6CA1 # 0 4B57
+0x9677 0x6B86 # 0 4B58
+0x9678 0x5800 # 0 4B59
+0x9679 0x5E4C # 0 4B5A
+0x967A 0x5954 # 0 4B5B
+0x967B 0x672C # 0 4B5C
+0x967C 0x7FFB # 0 4B5D
+0x967D 0x51E1 # 0 4B5E
+0x967E 0x76C6 # 0 4B5F
+0x9680 0x6469 # 0 4B60
+0x9681 0x78E8 # 0 4B61
+0x9682 0x9B54 # 0 4B62
+0x9683 0x9EBB # 0 4B63
+0x9684 0x57CB # 0 4B64
+0x9685 0x59B9 # 0 4B65
+0x9686 0x6627 # 0 4B66
+0x9687 0x679A # 0 4B67
+0x9688 0x6BCE # 0 4B68
+0x9689 0x54E9 # 0 4B69
+0x968A 0x69D9 # 0 4B6A
+0x968B 0x5E55 # 0 4B6B
+0x968C 0x819C # 0 4B6C
+0x968D 0x6795 # 0 4B6D
+0x968E 0x9BAA # 0 4B6E
+0x968F 0x67FE # 0 4B6F
+0x9690 0x9C52 # 0 4B70
+0x9691 0x685D # 0 4B71
+0x9692 0x4EA6 # 0 4B72
+0x9693 0x4FE3 # 0 4B73
+0x9694 0x53C8 # 0 4B74
+0x9695 0x62B9 # 0 4B75
+0x9696 0x672B # 0 4B76
+0x9697 0x6CAB # 0 4B77
+0x9698 0x8FC4 # 0 4B78
+0x9699 0x4FAD # 0 4B79
+0x969A 0x7E6D # 0 4B7A
+0x969B 0x9EBF # 0 4B7B
+0x969C 0x4E07 # 0 4B7C
+0x969D 0x6162 # 0 4B7D
+0x969E 0x6E80 # 0 4B7E
+0x969F 0x6F2B # 0 4C21
+0x96A0 0x8513 # 0 4C22
+0x96A1 0x5473 # 0 4C23
+0x96A2 0x672A # 0 4C24
+0x96A3 0x9B45 # 0 4C25
+0x96A4 0x5DF3 # 0 4C26
+0x96A5 0x7B95 # 0 4C27
+0x96A6 0x5CAC # 0 4C28
+0x96A7 0x5BC6 # 0 4C29
+0x96A8 0x871C # 0 4C2A
+0x96A9 0x6E4A # 0 4C2B
+0x96AA 0x84D1 # 0 4C2C
+0x96AB 0x7A14 # 0 4C2D
+0x96AC 0x8108 # 0 4C2E
+0x96AD 0x5999 # 0 4C2F
+0x96AE 0x7C8D # 0 4C30
+0x96AF 0x6C11 # 0 4C31
+0x96B0 0x7720 # 0 4C32
+0x96B1 0x52D9 # 0 4C33
+0x96B2 0x5922 # 0 4C34
+0x96B3 0x7121 # 0 4C35
+0x96B4 0x725F # 0 4C36
+0x96B5 0x77DB # 0 4C37
+0x96B6 0x9727 # 0 4C38
+0x96B7 0x9D61 # 0 4C39
+0x96B8 0x690B # 0 4C3A
+0x96B9 0x5A7F # 0 4C3B
+0x96BA 0x5A18 # 0 4C3C
+0x96BB 0x51A5 # 0 4C3D
+0x96BC 0x540D # 0 4C3E
+0x96BD 0x547D # 0 4C3F
+0x96BE 0x660E # 0 4C40
+0x96BF 0x76DF # 0 4C41
+0x96C0 0x8FF7 # 0 4C42
+0x96C1 0x9298 # 0 4C43
+0x96C2 0x9CF4 # 0 4C44
+0x96C3 0x59EA # 0 4C45
+0x96C4 0x725D # 0 4C46
+0x96C5 0x6EC5 # 0 4C47
+0x96C6 0x514D # 0 4C48
+0x96C7 0x68C9 # 0 4C49
+0x96C8 0x7DBF # 0 4C4A
+0x96C9 0x7DEC # 0 4C4B
+0x96CA 0x9762 # 0 4C4C
+0x96CB 0x9EBA # 0 4C4D
+0x96CC 0x6478 # 0 4C4E
+0x96CD 0x6A21 # 0 4C4F
+0x96CE 0x8302 # 0 4C50
+0x96CF 0x5984 # 0 4C51
+0x96D0 0x5B5F # 0 4C52
+0x96D1 0x6BDB # 0 4C53
+0x96D2 0x731B # 0 4C54
+0x96D3 0x76F2 # 0 4C55
+0x96D4 0x7DB2 # 0 4C56
+0x96D5 0x8017 # 0 4C57
+0x96D6 0x8499 # 0 4C58
+0x96D7 0x5132 # 0 4C59
+0x96D8 0x6728 # 0 4C5A
+0x96D9 0x9ED9 # 0 4C5B
+0x96DA 0x76EE # 0 4C5C
+0x96DB 0x6762 # 0 4C5D
+0x96DC 0x52FF # 0 4C5E
+0x96DD 0x9905 # 0 4C5F
+0x96DE 0x5C24 # 0 4C60
+0x96DF 0x623B # 0 4C61
+0x96E0 0x7C7E # 0 4C62
+0x96E1 0x8CB0 # 0 4C63
+0x96E2 0x554F # 0 4C64
+0x96E3 0x60B6 # 0 4C65
+0x96E4 0x7D0B # 0 4C66
+0x96E5 0x9580 # 0 4C67
+0x96E6 0x5301 # 0 4C68
+0x96E7 0x4E5F # 0 4C69
+0x96E8 0x51B6 # 0 4C6A
+0x96E9 0x591C # 0 4C6B
+0x96EA 0x723A # 0 4C6C
+0x96EB 0x8036 # 0 4C6D
+0x96EC 0x91CE # 0 4C6E
+0x96ED 0x5F25 # 0 4C6F
+0x96EE 0x77E2 # 0 4C70
+0x96EF 0x5384 # 0 4C71
+0x96F0 0x5F79 # 0 4C72
+0x96F1 0x7D04 # 0 4C73
+0x96F2 0x85AC # 0 4C74
+0x96F3 0x8A33 # 0 4C75
+0x96F4 0x8E8D # 0 4C76
+0x96F5 0x9756 # 0 4C77
+0x96F6 0x67F3 # 0 4C78
+0x96F7 0x85AE # 0 4C79
+0x96F8 0x9453 # 0 4C7A
+0x96F9 0x6109 # 0 4C7B
+0x96FA 0x6108 # 0 4C7C
+0x96FB 0x6CB9 # 0 4C7D
+0x96FC 0x7652 # 0 4C7E
+0x9740 0x8AED # 0 4D21
+0x9741 0x8F38 # 0 4D22
+0x9742 0x552F # 0 4D23
+0x9743 0x4F51 # 0 4D24
+0x9744 0x512A # 0 4D25
+0x9745 0x52C7 # 0 4D26
+0x9746 0x53CB # 0 4D27
+0x9747 0x5BA5 # 0 4D28
+0x9748 0x5E7D # 0 4D29
+0x9749 0x60A0 # 0 4D2A
+0x974A 0x6182 # 0 4D2B
+0x974B 0x63D6 # 0 4D2C
+0x974C 0x6709 # 0 4D2D
+0x974D 0x67DA # 0 4D2E
+0x974E 0x6E67 # 0 4D2F
+0x974F 0x6D8C # 0 4D30
+0x9750 0x7336 # 0 4D31
+0x9751 0x7337 # 0 4D32
+0x9752 0x7531 # 0 4D33
+0x9753 0x7950 # 0 4D34
+0x9754 0x88D5 # 0 4D35
+0x9755 0x8A98 # 0 4D36
+0x9756 0x904A # 0 4D37
+0x9757 0x9091 # 0 4D38
+0x9758 0x90F5 # 0 4D39
+0x9759 0x96C4 # 0 4D3A
+0x975A 0x878D # 0 4D3B
+0x975B 0x5915 # 0 4D3C
+0x975C 0x4E88 # 0 4D3D
+0x975D 0x4F59 # 0 4D3E
+0x975E 0x4E0E # 0 4D3F
+0x975F 0x8A89 # 0 4D40
+0x9760 0x8F3F # 0 4D41
+0x9761 0x9810 # 0 4D42
+0x9762 0x50AD # 0 4D43
+0x9763 0x5E7C # 0 4D44
+0x9764 0x5996 # 0 4D45
+0x9765 0x5BB9 # 0 4D46
+0x9766 0x5EB8 # 0 4D47
+0x9767 0x63DA # 0 4D48
+0x9768 0x63FA # 0 4D49
+0x9769 0x64C1 # 0 4D4A
+0x976A 0x66DC # 0 4D4B
+0x976B 0x694A # 0 4D4C
+0x976C 0x69D8 # 0 4D4D
+0x976D 0x6D0B # 0 4D4E
+0x976E 0x6EB6 # 0 4D4F
+0x976F 0x7194 # 0 4D50
+0x9770 0x7528 # 0 4D51
+0x9771 0x7AAF # 0 4D52
+0x9772 0x7F8A # 0 4D53
+0x9773 0x8000 # 0 4D54
+0x9774 0x8449 # 0 4D55
+0x9775 0x84C9 # 0 4D56
+0x9776 0x8981 # 0 4D57
+0x9777 0x8B21 # 0 4D58
+0x9778 0x8E0A # 0 4D59
+0x9779 0x9065 # 0 4D5A
+0x977A 0x967D # 0 4D5B
+0x977B 0x990A # 0 4D5C
+0x977C 0x617E # 0 4D5D
+0x977D 0x6291 # 0 4D5E
+0x977E 0x6B32 # 0 4D5F
+0x9780 0x6C83 # 0 4D60
+0x9781 0x6D74 # 0 4D61
+0x9782 0x7FCC # 0 4D62
+0x9783 0x7FFC # 0 4D63
+0x9784 0x6DC0 # 0 4D64
+0x9785 0x7F85 # 0 4D65
+0x9786 0x87BA # 0 4D66
+0x9787 0x88F8 # 0 4D67
+0x9788 0x6765 # 0 4D68
+0x9789 0x83B1 # 0 4D69
+0x978A 0x983C # 0 4D6A
+0x978B 0x96F7 # 0 4D6B
+0x978C 0x6D1B # 0 4D6C
+0x978D 0x7D61 # 0 4D6D
+0x978E 0x843D # 0 4D6E
+0x978F 0x916A # 0 4D6F
+0x9790 0x4E71 # 0 4D70
+0x9791 0x5375 # 0 4D71
+0x9792 0x5D50 # 0 4D72
+0x9793 0x6B04 # 0 4D73
+0x9794 0x6FEB # 0 4D74
+0x9795 0x85CD # 0 4D75
+0x9796 0x862D # 0 4D76
+0x9797 0x89A7 # 0 4D77
+0x9798 0x5229 # 0 4D78
+0x9799 0x540F # 0 4D79
+0x979A 0x5C65 # 0 4D7A
+0x979B 0x674E # 0 4D7B
+0x979C 0x68A8 # 0 4D7C
+0x979D 0x7406 # 0 4D7D
+0x979E 0x7483 # 0 4D7E
+0x979F 0x75E2 # 0 4E21
+0x97A0 0x88CF # 0 4E22
+0x97A1 0x88E1 # 0 4E23
+0x97A2 0x91CC # 0 4E24
+0x97A3 0x96E2 # 0 4E25
+0x97A4 0x9678 # 0 4E26
+0x97A5 0x5F8B # 0 4E27
+0x97A6 0x7387 # 0 4E28
+0x97A7 0x7ACB # 0 4E29
+0x97A8 0x844E # 0 4E2A
+0x97A9 0x63A0 # 0 4E2B
+0x97AA 0x7565 # 0 4E2C
+0x97AB 0x5289 # 0 4E2D
+0x97AC 0x6D41 # 0 4E2E
+0x97AD 0x6E9C # 0 4E2F
+0x97AE 0x7409 # 0 4E30
+0x97AF 0x7559 # 0 4E31
+0x97B0 0x786B # 0 4E32
+0x97B1 0x7C92 # 0 4E33
+0x97B2 0x9686 # 0 4E34
+0x97B3 0x7ADC # 0 4E35
+0x97B4 0x9F8D # 0 4E36
+0x97B5 0x4FB6 # 0 4E37
+0x97B6 0x616E # 0 4E38
+0x97B7 0x65C5 # 0 4E39
+0x97B8 0x865C # 0 4E3A
+0x97B9 0x4E86 # 0 4E3B
+0x97BA 0x4EAE # 0 4E3C
+0x97BB 0x50DA # 0 4E3D
+0x97BC 0x4E21 # 0 4E3E
+0x97BD 0x51CC # 0 4E3F
+0x97BE 0x5BEE # 0 4E40
+0x97BF 0x6599 # 0 4E41
+0x97C0 0x6881 # 0 4E42
+0x97C1 0x6DBC # 0 4E43
+0x97C2 0x731F # 0 4E44
+0x97C3 0x7642 # 0 4E45
+0x97C4 0x77AD # 0 4E46
+0x97C5 0x7A1C # 0 4E47
+0x97C6 0x7CE7 # 0 4E48
+0x97C7 0x826F # 0 4E49
+0x97C8 0x8AD2 # 0 4E4A
+0x97C9 0x907C # 0 4E4B
+0x97CA 0x91CF # 0 4E4C
+0x97CB 0x9675 # 0 4E4D
+0x97CC 0x9818 # 0 4E4E
+0x97CD 0x529B # 0 4E4F
+0x97CE 0x7DD1 # 0 4E50
+0x97CF 0x502B # 0 4E51
+0x97D0 0x5398 # 0 4E52
+0x97D1 0x6797 # 0 4E53
+0x97D2 0x6DCB # 0 4E54
+0x97D3 0x71D0 # 0 4E55
+0x97D4 0x7433 # 0 4E56
+0x97D5 0x81E8 # 0 4E57
+0x97D6 0x8F2A # 0 4E58
+0x97D7 0x96A3 # 0 4E59
+0x97D8 0x9C57 # 0 4E5A
+0x97D9 0x9E9F # 0 4E5B
+0x97DA 0x7460 # 0 4E5C
+0x97DB 0x5841 # 0 4E5D
+0x97DC 0x6D99 # 0 4E5E
+0x97DD 0x7D2F # 0 4E5F
+0x97DE 0x985E # 0 4E60
+0x97DF 0x4EE4 # 0 4E61
+0x97E0 0x4F36 # 0 4E62
+0x97E1 0x4F8B # 0 4E63
+0x97E2 0x51B7 # 0 4E64
+0x97E3 0x52B1 # 0 4E65
+0x97E4 0x5DBA # 0 4E66
+0x97E5 0x601C # 0 4E67
+0x97E6 0x73B2 # 0 4E68
+0x97E7 0x793C # 0 4E69
+0x97E8 0x82D3 # 0 4E6A
+0x97E9 0x9234 # 0 4E6B
+0x97EA 0x96B7 # 0 4E6C
+0x97EB 0x96F6 # 0 4E6D
+0x97EC 0x970A # 0 4E6E
+0x97ED 0x9E97 # 0 4E6F
+0x97EE 0x9F62 # 0 4E70
+0x97EF 0x66A6 # 0 4E71
+0x97F0 0x6B74 # 0 4E72
+0x97F1 0x5217 # 0 4E73
+0x97F2 0x52A3 # 0 4E74
+0x97F3 0x70C8 # 0 4E75
+0x97F4 0x88C2 # 0 4E76
+0x97F5 0x5EC9 # 0 4E77
+0x97F6 0x604B # 0 4E78
+0x97F7 0x6190 # 0 4E79
+0x97F8 0x6F23 # 0 4E7A
+0x97F9 0x7149 # 0 4E7B
+0x97FA 0x7C3E # 0 4E7C
+0x97FB 0x7DF4 # 0 4E7D
+0x97FC 0x806F # 0 4E7E
+0x9840 0x84EE # 0 4F21
+0x9841 0x9023 # 0 4F22
+0x9842 0x932C # 0 4F23
+0x9843 0x5442 # 0 4F24
+0x9844 0x9B6F # 0 4F25
+0x9845 0x6AD3 # 0 4F26
+0x9846 0x7089 # 0 4F27
+0x9847 0x8CC2 # 0 4F28
+0x9848 0x8DEF # 0 4F29
+0x9849 0x9732 # 0 4F2A
+0x984A 0x52B4 # 0 4F2B
+0x984B 0x5A41 # 0 4F2C
+0x984C 0x5ECA # 0 4F2D
+0x984D 0x5F04 # 0 4F2E
+0x984E 0x6717 # 0 4F2F
+0x984F 0x697C # 0 4F30
+0x9850 0x6994 # 0 4F31
+0x9851 0x6D6A # 0 4F32
+0x9852 0x6F0F # 0 4F33
+0x9853 0x7262 # 0 4F34
+0x9854 0x72FC # 0 4F35
+0x9855 0x7BED # 0 4F36
+0x9856 0x8001 # 0 4F37
+0x9857 0x807E # 0 4F38
+0x9858 0x874B # 0 4F39
+0x9859 0x90CE # 0 4F3A
+0x985A 0x516D # 0 4F3B
+0x985B 0x9E93 # 0 4F3C
+0x985C 0x7984 # 0 4F3D
+0x985D 0x808B # 0 4F3E
+0x985E 0x9332 # 0 4F3F
+0x985F 0x8AD6 # 0 4F40
+0x9860 0x502D # 0 4F41
+0x9861 0x548C # 0 4F42
+0x9862 0x8A71 # 0 4F43
+0x9863 0x6B6A # 0 4F44
+0x9864 0x8CC4 # 0 4F45
+0x9865 0x8107 # 0 4F46
+0x9866 0x60D1 # 0 4F47
+0x9867 0x67A0 # 0 4F48
+0x9868 0x9DF2 # 0 4F49
+0x9869 0x4E99 # 0 4F4A
+0x986A 0x4E98 # 0 4F4B
+0x986B 0x9C10 # 0 4F4C
+0x986C 0x8A6B # 0 4F4D
+0x986D 0x85C1 # 0 4F4E
+0x986E 0x8568 # 0 4F4F
+0x986F 0x6900 # 0 4F50
+0x9870 0x6E7E # 0 4F51
+0x9871 0x7897 # 0 4F52
+0x9872 0x8155 # 0 4F53
+0x989F 0x5F0C # 0 5021
+0x98A0 0x4E10 # 0 5022
+0x98A1 0x4E15 # 0 5023
+0x98A2 0x4E2A # 0 5024
+0x98A3 0x4E31 # 0 5025
+0x98A4 0x4E36 # 0 5026
+0x98A5 0x4E3C # 0 5027
+0x98A6 0x4E3F # 0 5028
+0x98A7 0x4E42 # 0 5029
+0x98A8 0x4E56 # 0 502A
+0x98A9 0x4E58 # 0 502B
+0x98AA 0x4E82 # 0 502C
+0x98AB 0x4E85 # 0 502D
+0x98AC 0x8C6B # 0 502E
+0x98AD 0x4E8A # 0 502F
+0x98AE 0x8212 # 0 5030
+0x98AF 0x5F0D # 0 5031
+0x98B0 0x4E8E # 0 5032
+0x98B1 0x4E9E # 0 5033
+0x98B2 0x4E9F # 0 5034
+0x98B3 0x4EA0 # 0 5035
+0x98B4 0x4EA2 # 0 5036
+0x98B5 0x4EB0 # 0 5037
+0x98B6 0x4EB3 # 0 5038
+0x98B7 0x4EB6 # 0 5039
+0x98B8 0x4ECE # 0 503A
+0x98B9 0x4ECD # 0 503B
+0x98BA 0x4EC4 # 0 503C
+0x98BB 0x4EC6 # 0 503D
+0x98BC 0x4EC2 # 0 503E
+0x98BD 0x4ED7 # 0 503F
+0x98BE 0x4EDE # 0 5040
+0x98BF 0x4EED # 0 5041
+0x98C0 0x4EDF # 0 5042
+0x98C1 0x4EF7 # 0 5043
+0x98C2 0x4F09 # 0 5044
+0x98C3 0x4F5A # 0 5045
+0x98C4 0x4F30 # 0 5046
+0x98C5 0x4F5B # 0 5047
+0x98C6 0x4F5D # 0 5048
+0x98C7 0x4F57 # 0 5049
+0x98C8 0x4F47 # 0 504A
+0x98C9 0x4F76 # 0 504B
+0x98CA 0x4F88 # 0 504C
+0x98CB 0x4F8F # 0 504D
+0x98CC 0x4F98 # 0 504E
+0x98CD 0x4F7B # 0 504F
+0x98CE 0x4F69 # 0 5050
+0x98CF 0x4F70 # 0 5051
+0x98D0 0x4F91 # 0 5052
+0x98D1 0x4F6F # 0 5053
+0x98D2 0x4F86 # 0 5054
+0x98D3 0x4F96 # 0 5055
+0x98D4 0x5118 # 0 5056
+0x98D5 0x4FD4 # 0 5057
+0x98D6 0x4FDF # 0 5058
+0x98D7 0x4FCE # 0 5059
+0x98D8 0x4FD8 # 0 505A
+0x98D9 0x4FDB # 0 505B
+0x98DA 0x4FD1 # 0 505C
+0x98DB 0x4FDA # 0 505D
+0x98DC 0x4FD0 # 0 505E
+0x98DD 0x4FE4 # 0 505F
+0x98DE 0x4FE5 # 0 5060
+0x98DF 0x501A # 0 5061
+0x98E0 0x5028 # 0 5062
+0x98E1 0x5014 # 0 5063
+0x98E2 0x502A # 0 5064
+0x98E3 0x5025 # 0 5065
+0x98E4 0x5005 # 0 5066
+0x98E5 0x4F1C # 0 5067
+0x98E6 0x4FF6 # 0 5068
+0x98E7 0x5021 # 0 5069
+0x98E8 0x5029 # 0 506A
+0x98E9 0x502C # 0 506B
+0x98EA 0x4FFE # 0 506C
+0x98EB 0x4FEF # 0 506D
+0x98EC 0x5011 # 0 506E
+0x98ED 0x5006 # 0 506F
+0x98EE 0x5043 # 0 5070
+0x98EF 0x5047 # 0 5071
+0x98F0 0x6703 # 0 5072
+0x98F1 0x5055 # 0 5073
+0x98F2 0x5050 # 0 5074
+0x98F3 0x5048 # 0 5075
+0x98F4 0x505A # 0 5076
+0x98F5 0x5056 # 0 5077
+0x98F6 0x506C # 0 5078
+0x98F7 0x5078 # 0 5079
+0x98F8 0x5080 # 0 507A
+0x98F9 0x509A # 0 507B
+0x98FA 0x5085 # 0 507C
+0x98FB 0x50B4 # 0 507D
+0x98FC 0x50B2 # 0 507E
+0x9940 0x50C9 # 0 5121
+0x9941 0x50CA # 0 5122
+0x9942 0x50B3 # 0 5123
+0x9943 0x50C2 # 0 5124
+0x9944 0x50D6 # 0 5125
+0x9945 0x50DE # 0 5126
+0x9946 0x50E5 # 0 5127
+0x9947 0x50ED # 0 5128
+0x9948 0x50E3 # 0 5129
+0x9949 0x50EE # 0 512A
+0x994A 0x50F9 # 0 512B
+0x994B 0x50F5 # 0 512C
+0x994C 0x5109 # 0 512D
+0x994D 0x5101 # 0 512E
+0x994E 0x5102 # 0 512F
+0x994F 0x5116 # 0 5130
+0x9950 0x5115 # 0 5131
+0x9951 0x5114 # 0 5132
+0x9952 0x511A # 0 5133
+0x9953 0x5121 # 0 5134
+0x9954 0x513A # 0 5135
+0x9955 0x5137 # 0 5136
+0x9956 0x513C # 0 5137
+0x9957 0x513B # 0 5138
+0x9958 0x513F # 0 5139
+0x9959 0x5140 # 0 513A
+0x995A 0x5152 # 0 513B
+0x995B 0x514C # 0 513C
+0x995C 0x5154 # 0 513D
+0x995D 0x5162 # 0 513E
+0x995E 0x7AF8 # 0 513F
+0x995F 0x5169 # 0 5140
+0x9960 0x516A # 0 5141
+0x9961 0x516E # 0 5142
+0x9962 0x5180 # 0 5143
+0x9963 0x5182 # 0 5144
+0x9964 0x56D8 # 0 5145
+0x9965 0x518C # 0 5146
+0x9966 0x5189 # 0 5147
+0x9967 0x518F # 0 5148
+0x9968 0x5191 # 0 5149
+0x9969 0x5193 # 0 514A
+0x996A 0x5195 # 0 514B
+0x996B 0x5196 # 0 514C
+0x996C 0x51A4 # 0 514D
+0x996D 0x51A6 # 0 514E
+0x996E 0x51A2 # 0 514F
+0x996F 0x51A9 # 0 5150
+0x9970 0x51AA # 0 5151
+0x9971 0x51AB # 0 5152
+0x9972 0x51B3 # 0 5153
+0x9973 0x51B1 # 0 5154
+0x9974 0x51B2 # 0 5155
+0x9975 0x51B0 # 0 5156
+0x9976 0x51B5 # 0 5157
+0x9977 0x51BD # 0 5158
+0x9978 0x51C5 # 0 5159
+0x9979 0x51C9 # 0 515A
+0x997A 0x51DB # 0 515B
+0x997B 0x51E0 # 0 515C
+0x997C 0x8655 # 0 515D
+0x997D 0x51E9 # 0 515E
+0x997E 0x51ED # 0 515F
+0x9980 0x51F0 # 0 5160
+0x9981 0x51F5 # 0 5161
+0x9982 0x51FE # 0 5162
+0x9983 0x5204 # 0 5163
+0x9984 0x520B # 0 5164
+0x9985 0x5214 # 0 5165
+0x9986 0x520E # 0 5166
+0x9987 0x5227 # 0 5167
+0x9988 0x522A # 0 5168
+0x9989 0x522E # 0 5169
+0x998A 0x5233 # 0 516A
+0x998B 0x5239 # 0 516B
+0x998C 0x524F # 0 516C
+0x998D 0x5244 # 0 516D
+0x998E 0x524B # 0 516E
+0x998F 0x524C # 0 516F
+0x9990 0x525E # 0 5170
+0x9991 0x5254 # 0 5171
+0x9992 0x526A # 0 5172
+0x9993 0x5274 # 0 5173
+0x9994 0x5269 # 0 5174
+0x9995 0x5273 # 0 5175
+0x9996 0x527F # 0 5176
+0x9997 0x527D # 0 5177
+0x9998 0x528D # 0 5178
+0x9999 0x5294 # 0 5179
+0x999A 0x5292 # 0 517A
+0x999B 0x5271 # 0 517B
+0x999C 0x5288 # 0 517C
+0x999D 0x5291 # 0 517D
+0x999E 0x8FA8 # 0 517E
+0x999F 0x8FA7 # 0 5221
+0x99A0 0x52AC # 0 5222
+0x99A1 0x52AD # 0 5223
+0x99A2 0x52BC # 0 5224
+0x99A3 0x52B5 # 0 5225
+0x99A4 0x52C1 # 0 5226
+0x99A5 0x52CD # 0 5227
+0x99A6 0x52D7 # 0 5228
+0x99A7 0x52DE # 0 5229
+0x99A8 0x52E3 # 0 522A
+0x99A9 0x52E6 # 0 522B
+0x99AA 0x98ED # 0 522C
+0x99AB 0x52E0 # 0 522D
+0x99AC 0x52F3 # 0 522E
+0x99AD 0x52F5 # 0 522F
+0x99AE 0x52F8 # 0 5230
+0x99AF 0x52F9 # 0 5231
+0x99B0 0x5306 # 0 5232
+0x99B1 0x5308 # 0 5233
+0x99B2 0x7538 # 0 5234
+0x99B3 0x530D # 0 5235
+0x99B4 0x5310 # 0 5236
+0x99B5 0x530F # 0 5237
+0x99B6 0x5315 # 0 5238
+0x99B7 0x531A # 0 5239
+0x99B8 0x5323 # 0 523A
+0x99B9 0x532F # 0 523B
+0x99BA 0x5331 # 0 523C
+0x99BB 0x5333 # 0 523D
+0x99BC 0x5338 # 0 523E
+0x99BD 0x5340 # 0 523F
+0x99BE 0x5346 # 0 5240
+0x99BF 0x5345 # 0 5241
+0x99C0 0x4E17 # 0 5242
+0x99C1 0x5349 # 0 5243
+0x99C2 0x534D # 0 5244
+0x99C3 0x51D6 # 0 5245
+0x99C4 0x535E # 0 5246
+0x99C5 0x5369 # 0 5247
+0x99C6 0x536E # 0 5248
+0x99C7 0x5918 # 0 5249
+0x99C8 0x537B # 0 524A
+0x99C9 0x5377 # 0 524B
+0x99CA 0x5382 # 0 524C
+0x99CB 0x5396 # 0 524D
+0x99CC 0x53A0 # 0 524E
+0x99CD 0x53A6 # 0 524F
+0x99CE 0x53A5 # 0 5250
+0x99CF 0x53AE # 0 5251
+0x99D0 0x53B0 # 0 5252
+0x99D1 0x53B6 # 0 5253
+0x99D2 0x53C3 # 0 5254
+0x99D3 0x7C12 # 0 5255
+0x99D4 0x96D9 # 0 5256
+0x99D5 0x53DF # 0 5257
+0x99D6 0x66FC # 0 5258
+0x99D7 0x71EE # 0 5259
+0x99D8 0x53EE # 0 525A
+0x99D9 0x53E8 # 0 525B
+0x99DA 0x53ED # 0 525C
+0x99DB 0x53FA # 0 525D
+0x99DC 0x5401 # 0 525E
+0x99DD 0x543D # 0 525F
+0x99DE 0x5440 # 0 5260
+0x99DF 0x542C # 0 5261
+0x99E0 0x542D # 0 5262
+0x99E1 0x543C # 0 5263
+0x99E2 0x542E # 0 5264
+0x99E3 0x5436 # 0 5265
+0x99E4 0x5429 # 0 5266
+0x99E5 0x541D # 0 5267
+0x99E6 0x544E # 0 5268
+0x99E7 0x548F # 0 5269
+0x99E8 0x5475 # 0 526A
+0x99E9 0x548E # 0 526B
+0x99EA 0x545F # 0 526C
+0x99EB 0x5471 # 0 526D
+0x99EC 0x5477 # 0 526E
+0x99ED 0x5470 # 0 526F
+0x99EE 0x5492 # 0 5270
+0x99EF 0x547B # 0 5271
+0x99F0 0x5480 # 0 5272
+0x99F1 0x5476 # 0 5273
+0x99F2 0x5484 # 0 5274
+0x99F3 0x5490 # 0 5275
+0x99F4 0x5486 # 0 5276
+0x99F5 0x54C7 # 0 5277
+0x99F6 0x54A2 # 0 5278
+0x99F7 0x54B8 # 0 5279
+0x99F8 0x54A5 # 0 527A
+0x99F9 0x54AC # 0 527B
+0x99FA 0x54C4 # 0 527C
+0x99FB 0x54C8 # 0 527D
+0x99FC 0x54A8 # 0 527E
+0x9A40 0x54AB # 0 5321
+0x9A41 0x54C2 # 0 5322
+0x9A42 0x54A4 # 0 5323
+0x9A43 0x54BE # 0 5324
+0x9A44 0x54BC # 0 5325
+0x9A45 0x54D8 # 0 5326
+0x9A46 0x54E5 # 0 5327
+0x9A47 0x54E6 # 0 5328
+0x9A48 0x550F # 0 5329
+0x9A49 0x5514 # 0 532A
+0x9A4A 0x54FD # 0 532B
+0x9A4B 0x54EE # 0 532C
+0x9A4C 0x54ED # 0 532D
+0x9A4D 0x54FA # 0 532E
+0x9A4E 0x54E2 # 0 532F
+0x9A4F 0x5539 # 0 5330
+0x9A50 0x5540 # 0 5331
+0x9A51 0x5563 # 0 5332
+0x9A52 0x554C # 0 5333
+0x9A53 0x552E # 0 5334
+0x9A54 0x555C # 0 5335
+0x9A55 0x5545 # 0 5336
+0x9A56 0x5556 # 0 5337
+0x9A57 0x5557 # 0 5338
+0x9A58 0x5538 # 0 5339
+0x9A59 0x5533 # 0 533A
+0x9A5A 0x555D # 0 533B
+0x9A5B 0x5599 # 0 533C
+0x9A5C 0x5580 # 0 533D
+0x9A5D 0x54AF # 0 533E
+0x9A5E 0x558A # 0 533F
+0x9A5F 0x559F # 0 5340
+0x9A60 0x557B # 0 5341
+0x9A61 0x557E # 0 5342
+0x9A62 0x5598 # 0 5343
+0x9A63 0x559E # 0 5344
+0x9A64 0x55AE # 0 5345
+0x9A65 0x557C # 0 5346
+0x9A66 0x5583 # 0 5347
+0x9A67 0x55A9 # 0 5348
+0x9A68 0x5587 # 0 5349
+0x9A69 0x55A8 # 0 534A
+0x9A6A 0x55DA # 0 534B
+0x9A6B 0x55C5 # 0 534C
+0x9A6C 0x55DF # 0 534D
+0x9A6D 0x55C4 # 0 534E
+0x9A6E 0x55DC # 0 534F
+0x9A6F 0x55E4 # 0 5350
+0x9A70 0x55D4 # 0 5351
+0x9A71 0x5614 # 0 5352
+0x9A72 0x55F7 # 0 5353
+0x9A73 0x5616 # 0 5354
+0x9A74 0x55FE # 0 5355
+0x9A75 0x55FD # 0 5356
+0x9A76 0x561B # 0 5357
+0x9A77 0x55F9 # 0 5358
+0x9A78 0x564E # 0 5359
+0x9A79 0x5650 # 0 535A
+0x9A7A 0x71DF # 0 535B
+0x9A7B 0x5634 # 0 535C
+0x9A7C 0x5636 # 0 535D
+0x9A7D 0x5632 # 0 535E
+0x9A7E 0x5638 # 0 535F
+0x9A80 0x566B # 0 5360
+0x9A81 0x5664 # 0 5361
+0x9A82 0x562F # 0 5362
+0x9A83 0x566C # 0 5363
+0x9A84 0x566A # 0 5364
+0x9A85 0x5686 # 0 5365
+0x9A86 0x5680 # 0 5366
+0x9A87 0x568A # 0 5367
+0x9A88 0x56A0 # 0 5368
+0x9A89 0x5694 # 0 5369
+0x9A8A 0x568F # 0 536A
+0x9A8B 0x56A5 # 0 536B
+0x9A8C 0x56AE # 0 536C
+0x9A8D 0x56B6 # 0 536D
+0x9A8E 0x56B4 # 0 536E
+0x9A8F 0x56C2 # 0 536F
+0x9A90 0x56BC # 0 5370
+0x9A91 0x56C1 # 0 5371
+0x9A92 0x56C3 # 0 5372
+0x9A93 0x56C0 # 0 5373
+0x9A94 0x56C8 # 0 5374
+0x9A95 0x56CE # 0 5375
+0x9A96 0x56D1 # 0 5376
+0x9A97 0x56D3 # 0 5377
+0x9A98 0x56D7 # 0 5378
+0x9A99 0x56EE # 0 5379
+0x9A9A 0x56F9 # 0 537A
+0x9A9B 0x5700 # 0 537B
+0x9A9C 0x56FF # 0 537C
+0x9A9D 0x5704 # 0 537D
+0x9A9E 0x5709 # 0 537E
+0x9A9F 0x5708 # 0 5421
+0x9AA0 0x570B # 0 5422
+0x9AA1 0x570D # 0 5423
+0x9AA2 0x5713 # 0 5424
+0x9AA3 0x5718 # 0 5425
+0x9AA4 0x5716 # 0 5426
+0x9AA5 0x55C7 # 0 5427
+0x9AA6 0x571C # 0 5428
+0x9AA7 0x5726 # 0 5429
+0x9AA8 0x5737 # 0 542A
+0x9AA9 0x5738 # 0 542B
+0x9AAA 0x574E # 0 542C
+0x9AAB 0x573B # 0 542D
+0x9AAC 0x5740 # 0 542E
+0x9AAD 0x574F # 0 542F
+0x9AAE 0x5769 # 0 5430
+0x9AAF 0x57C0 # 0 5431
+0x9AB0 0x5788 # 0 5432
+0x9AB1 0x5761 # 0 5433
+0x9AB2 0x577F # 0 5434
+0x9AB3 0x5789 # 0 5435
+0x9AB4 0x5793 # 0 5436
+0x9AB5 0x57A0 # 0 5437
+0x9AB6 0x57B3 # 0 5438
+0x9AB7 0x57A4 # 0 5439
+0x9AB8 0x57AA # 0 543A
+0x9AB9 0x57B0 # 0 543B
+0x9ABA 0x57C3 # 0 543C
+0x9ABB 0x57C6 # 0 543D
+0x9ABC 0x57D4 # 0 543E
+0x9ABD 0x57D2 # 0 543F
+0x9ABE 0x57D3 # 0 5440
+0x9ABF 0x580A # 0 5441
+0x9AC0 0x57D6 # 0 5442
+0x9AC1 0x57E3 # 0 5443
+0x9AC2 0x580B # 0 5444
+0x9AC3 0x5819 # 0 5445
+0x9AC4 0x581D # 0 5446
+0x9AC5 0x5872 # 0 5447
+0x9AC6 0x5821 # 0 5448
+0x9AC7 0x5862 # 0 5449
+0x9AC8 0x584B # 0 544A
+0x9AC9 0x5870 # 0 544B
+0x9ACA 0x6BC0 # 0 544C
+0x9ACB 0x5852 # 0 544D
+0x9ACC 0x583D # 0 544E
+0x9ACD 0x5879 # 0 544F
+0x9ACE 0x5885 # 0 5450
+0x9ACF 0x58B9 # 0 5451
+0x9AD0 0x589F # 0 5452
+0x9AD1 0x58AB # 0 5453
+0x9AD2 0x58BA # 0 5454
+0x9AD3 0x58DE # 0 5455
+0x9AD4 0x58BB # 0 5456
+0x9AD5 0x58B8 # 0 5457
+0x9AD6 0x58AE # 0 5458
+0x9AD7 0x58C5 # 0 5459
+0x9AD8 0x58D3 # 0 545A
+0x9AD9 0x58D1 # 0 545B
+0x9ADA 0x58D7 # 0 545C
+0x9ADB 0x58D9 # 0 545D
+0x9ADC 0x58D8 # 0 545E
+0x9ADD 0x58E5 # 0 545F
+0x9ADE 0x58DC # 0 5460
+0x9ADF 0x58E4 # 0 5461
+0x9AE0 0x58DF # 0 5462
+0x9AE1 0x58EF # 0 5463
+0x9AE2 0x58FA # 0 5464
+0x9AE3 0x58F9 # 0 5465
+0x9AE4 0x58FB # 0 5466
+0x9AE5 0x58FC # 0 5467
+0x9AE6 0x58FD # 0 5468
+0x9AE7 0x5902 # 0 5469
+0x9AE8 0x590A # 0 546A
+0x9AE9 0x5910 # 0 546B
+0x9AEA 0x591B # 0 546C
+0x9AEB 0x68A6 # 0 546D
+0x9AEC 0x5925 # 0 546E
+0x9AED 0x592C # 0 546F
+0x9AEE 0x592D # 0 5470
+0x9AEF 0x5932 # 0 5471
+0x9AF0 0x5938 # 0 5472
+0x9AF1 0x593E # 0 5473
+0x9AF2 0x7AD2 # 0 5474
+0x9AF3 0x5955 # 0 5475
+0x9AF4 0x5950 # 0 5476
+0x9AF5 0x594E # 0 5477
+0x9AF6 0x595A # 0 5478
+0x9AF7 0x5958 # 0 5479
+0x9AF8 0x5962 # 0 547A
+0x9AF9 0x5960 # 0 547B
+0x9AFA 0x5967 # 0 547C
+0x9AFB 0x596C # 0 547D
+0x9AFC 0x5969 # 0 547E
+0x9B40 0x5978 # 0 5521
+0x9B41 0x5981 # 0 5522
+0x9B42 0x599D # 0 5523
+0x9B43 0x4F5E # 0 5524
+0x9B44 0x4FAB # 0 5525
+0x9B45 0x59A3 # 0 5526
+0x9B46 0x59B2 # 0 5527
+0x9B47 0x59C6 # 0 5528
+0x9B48 0x59E8 # 0 5529
+0x9B49 0x59DC # 0 552A
+0x9B4A 0x598D # 0 552B
+0x9B4B 0x59D9 # 0 552C
+0x9B4C 0x59DA # 0 552D
+0x9B4D 0x5A25 # 0 552E
+0x9B4E 0x5A1F # 0 552F
+0x9B4F 0x5A11 # 0 5530
+0x9B50 0x5A1C # 0 5531
+0x9B51 0x5A09 # 0 5532
+0x9B52 0x5A1A # 0 5533
+0x9B53 0x5A40 # 0 5534
+0x9B54 0x5A6C # 0 5535
+0x9B55 0x5A49 # 0 5536
+0x9B56 0x5A35 # 0 5537
+0x9B57 0x5A36 # 0 5538
+0x9B58 0x5A62 # 0 5539
+0x9B59 0x5A6A # 0 553A
+0x9B5A 0x5A9A # 0 553B
+0x9B5B 0x5ABC # 0 553C
+0x9B5C 0x5ABE # 0 553D
+0x9B5D 0x5ACB # 0 553E
+0x9B5E 0x5AC2 # 0 553F
+0x9B5F 0x5ABD # 0 5540
+0x9B60 0x5AE3 # 0 5541
+0x9B61 0x5AD7 # 0 5542
+0x9B62 0x5AE6 # 0 5543
+0x9B63 0x5AE9 # 0 5544
+0x9B64 0x5AD6 # 0 5545
+0x9B65 0x5AFA # 0 5546
+0x9B66 0x5AFB # 0 5547
+0x9B67 0x5B0C # 0 5548
+0x9B68 0x5B0B # 0 5549
+0x9B69 0x5B16 # 0 554A
+0x9B6A 0x5B32 # 0 554B
+0x9B6B 0x5AD0 # 0 554C
+0x9B6C 0x5B2A # 0 554D
+0x9B6D 0x5B36 # 0 554E
+0x9B6E 0x5B3E # 0 554F
+0x9B6F 0x5B43 # 0 5550
+0x9B70 0x5B45 # 0 5551
+0x9B71 0x5B40 # 0 5552
+0x9B72 0x5B51 # 0 5553
+0x9B73 0x5B55 # 0 5554
+0x9B74 0x5B5A # 0 5555
+0x9B75 0x5B5B # 0 5556
+0x9B76 0x5B65 # 0 5557
+0x9B77 0x5B69 # 0 5558
+0x9B78 0x5B70 # 0 5559
+0x9B79 0x5B73 # 0 555A
+0x9B7A 0x5B75 # 0 555B
+0x9B7B 0x5B78 # 0 555C
+0x9B7C 0x6588 # 0 555D
+0x9B7D 0x5B7A # 0 555E
+0x9B7E 0x5B80 # 0 555F
+0x9B80 0x5B83 # 0 5560
+0x9B81 0x5BA6 # 0 5561
+0x9B82 0x5BB8 # 0 5562
+0x9B83 0x5BC3 # 0 5563
+0x9B84 0x5BC7 # 0 5564
+0x9B85 0x5BC9 # 0 5565
+0x9B86 0x5BD4 # 0 5566
+0x9B87 0x5BD0 # 0 5567
+0x9B88 0x5BE4 # 0 5568
+0x9B89 0x5BE6 # 0 5569
+0x9B8A 0x5BE2 # 0 556A
+0x9B8B 0x5BDE # 0 556B
+0x9B8C 0x5BE5 # 0 556C
+0x9B8D 0x5BEB # 0 556D
+0x9B8E 0x5BF0 # 0 556E
+0x9B8F 0x5BF6 # 0 556F
+0x9B90 0x5BF3 # 0 5570
+0x9B91 0x5C05 # 0 5571
+0x9B92 0x5C07 # 0 5572
+0x9B93 0x5C08 # 0 5573
+0x9B94 0x5C0D # 0 5574
+0x9B95 0x5C13 # 0 5575
+0x9B96 0x5C20 # 0 5576
+0x9B97 0x5C22 # 0 5577
+0x9B98 0x5C28 # 0 5578
+0x9B99 0x5C38 # 0 5579
+0x9B9A 0x5C39 # 0 557A
+0x9B9B 0x5C41 # 0 557B
+0x9B9C 0x5C46 # 0 557C
+0x9B9D 0x5C4E # 0 557D
+0x9B9E 0x5C53 # 0 557E
+0x9B9F 0x5C50 # 0 5621
+0x9BA0 0x5C4F # 0 5622
+0x9BA1 0x5B71 # 0 5623
+0x9BA2 0x5C6C # 0 5624
+0x9BA3 0x5C6E # 0 5625
+0x9BA4 0x4E62 # 0 5626
+0x9BA5 0x5C76 # 0 5627
+0x9BA6 0x5C79 # 0 5628
+0x9BA7 0x5C8C # 0 5629
+0x9BA8 0x5C91 # 0 562A
+0x9BA9 0x5C94 # 0 562B
+0x9BAA 0x599B # 0 562C
+0x9BAB 0x5CAB # 0 562D
+0x9BAC 0x5CBB # 0 562E
+0x9BAD 0x5CB6 # 0 562F
+0x9BAE 0x5CBC # 0 5630
+0x9BAF 0x5CB7 # 0 5631
+0x9BB0 0x5CC5 # 0 5632
+0x9BB1 0x5CBE # 0 5633
+0x9BB2 0x5CC7 # 0 5634
+0x9BB3 0x5CD9 # 0 5635
+0x9BB4 0x5CE9 # 0 5636
+0x9BB5 0x5CFD # 0 5637
+0x9BB6 0x5CFA # 0 5638
+0x9BB7 0x5CED # 0 5639
+0x9BB8 0x5D8C # 0 563A
+0x9BB9 0x5CEA # 0 563B
+0x9BBA 0x5D0B # 0 563C
+0x9BBB 0x5D15 # 0 563D
+0x9BBC 0x5D17 # 0 563E
+0x9BBD 0x5D5C # 0 563F
+0x9BBE 0x5D1F # 0 5640
+0x9BBF 0x5D1B # 0 5641
+0x9BC0 0x5D11 # 0 5642
+0x9BC1 0x5D14 # 0 5643
+0x9BC2 0x5D22 # 0 5644
+0x9BC3 0x5D1A # 0 5645
+0x9BC4 0x5D19 # 0 5646
+0x9BC5 0x5D18 # 0 5647
+0x9BC6 0x5D4C # 0 5648
+0x9BC7 0x5D52 # 0 5649
+0x9BC8 0x5D4E # 0 564A
+0x9BC9 0x5D4B # 0 564B
+0x9BCA 0x5D6C # 0 564C
+0x9BCB 0x5D73 # 0 564D
+0x9BCC 0x5D76 # 0 564E
+0x9BCD 0x5D87 # 0 564F
+0x9BCE 0x5D84 # 0 5650
+0x9BCF 0x5D82 # 0 5651
+0x9BD0 0x5DA2 # 0 5652
+0x9BD1 0x5D9D # 0 5653
+0x9BD2 0x5DAC # 0 5654
+0x9BD3 0x5DAE # 0 5655
+0x9BD4 0x5DBD # 0 5656
+0x9BD5 0x5D90 # 0 5657
+0x9BD6 0x5DB7 # 0 5658
+0x9BD7 0x5DBC # 0 5659
+0x9BD8 0x5DC9 # 0 565A
+0x9BD9 0x5DCD # 0 565B
+0x9BDA 0x5DD3 # 0 565C
+0x9BDB 0x5DD2 # 0 565D
+0x9BDC 0x5DD6 # 0 565E
+0x9BDD 0x5DDB # 0 565F
+0x9BDE 0x5DEB # 0 5660
+0x9BDF 0x5DF2 # 0 5661
+0x9BE0 0x5DF5 # 0 5662
+0x9BE1 0x5E0B # 0 5663
+0x9BE2 0x5E1A # 0 5664
+0x9BE3 0x5E19 # 0 5665
+0x9BE4 0x5E11 # 0 5666
+0x9BE5 0x5E1B # 0 5667
+0x9BE6 0x5E36 # 0 5668
+0x9BE7 0x5E37 # 0 5669
+0x9BE8 0x5E44 # 0 566A
+0x9BE9 0x5E43 # 0 566B
+0x9BEA 0x5E40 # 0 566C
+0x9BEB 0x5E4E # 0 566D
+0x9BEC 0x5E57 # 0 566E
+0x9BED 0x5E54 # 0 566F
+0x9BEE 0x5E5F # 0 5670
+0x9BEF 0x5E62 # 0 5671
+0x9BF0 0x5E64 # 0 5672
+0x9BF1 0x5E47 # 0 5673
+0x9BF2 0x5E75 # 0 5674
+0x9BF3 0x5E76 # 0 5675
+0x9BF4 0x5E7A # 0 5676
+0x9BF5 0x9EBC # 0 5677
+0x9BF6 0x5E7F # 0 5678
+0x9BF7 0x5EA0 # 0 5679
+0x9BF8 0x5EC1 # 0 567A
+0x9BF9 0x5EC2 # 0 567B
+0x9BFA 0x5EC8 # 0 567C
+0x9BFB 0x5ED0 # 0 567D
+0x9BFC 0x5ECF # 0 567E
+0x9C40 0x5ED6 # 0 5721
+0x9C41 0x5EE3 # 0 5722
+0x9C42 0x5EDD # 0 5723
+0x9C43 0x5EDA # 0 5724
+0x9C44 0x5EDB # 0 5725
+0x9C45 0x5EE2 # 0 5726
+0x9C46 0x5EE1 # 0 5727
+0x9C47 0x5EE8 # 0 5728
+0x9C48 0x5EE9 # 0 5729
+0x9C49 0x5EEC # 0 572A
+0x9C4A 0x5EF1 # 0 572B
+0x9C4B 0x5EF3 # 0 572C
+0x9C4C 0x5EF0 # 0 572D
+0x9C4D 0x5EF4 # 0 572E
+0x9C4E 0x5EF8 # 0 572F
+0x9C4F 0x5EFE # 0 5730
+0x9C50 0x5F03 # 0 5731
+0x9C51 0x5F09 # 0 5732
+0x9C52 0x5F5D # 0 5733
+0x9C53 0x5F5C # 0 5734
+0x9C54 0x5F0B # 0 5735
+0x9C55 0x5F11 # 0 5736
+0x9C56 0x5F16 # 0 5737
+0x9C57 0x5F29 # 0 5738
+0x9C58 0x5F2D # 0 5739
+0x9C59 0x5F38 # 0 573A
+0x9C5A 0x5F41 # 0 573B
+0x9C5B 0x5F48 # 0 573C
+0x9C5C 0x5F4C # 0 573D
+0x9C5D 0x5F4E # 0 573E
+0x9C5E 0x5F2F # 0 573F
+0x9C5F 0x5F51 # 0 5740
+0x9C60 0x5F56 # 0 5741
+0x9C61 0x5F57 # 0 5742
+0x9C62 0x5F59 # 0 5743
+0x9C63 0x5F61 # 0 5744
+0x9C64 0x5F6D # 0 5745
+0x9C65 0x5F73 # 0 5746
+0x9C66 0x5F77 # 0 5747
+0x9C67 0x5F83 # 0 5748
+0x9C68 0x5F82 # 0 5749
+0x9C69 0x5F7F # 0 574A
+0x9C6A 0x5F8A # 0 574B
+0x9C6B 0x5F88 # 0 574C
+0x9C6C 0x5F91 # 0 574D
+0x9C6D 0x5F87 # 0 574E
+0x9C6E 0x5F9E # 0 574F
+0x9C6F 0x5F99 # 0 5750
+0x9C70 0x5F98 # 0 5751
+0x9C71 0x5FA0 # 0 5752
+0x9C72 0x5FA8 # 0 5753
+0x9C73 0x5FAD # 0 5754
+0x9C74 0x5FBC # 0 5755
+0x9C75 0x5FD6 # 0 5756
+0x9C76 0x5FFB # 0 5757
+0x9C77 0x5FE4 # 0 5758
+0x9C78 0x5FF8 # 0 5759
+0x9C79 0x5FF1 # 0 575A
+0x9C7A 0x5FDD # 0 575B
+0x9C7B 0x60B3 # 0 575C
+0x9C7C 0x5FFF # 0 575D
+0x9C7D 0x6021 # 0 575E
+0x9C7E 0x6060 # 0 575F
+0x9C80 0x6019 # 0 5760
+0x9C81 0x6010 # 0 5761
+0x9C82 0x6029 # 0 5762
+0x9C83 0x600E # 0 5763
+0x9C84 0x6031 # 0 5764
+0x9C85 0x601B # 0 5765
+0x9C86 0x6015 # 0 5766
+0x9C87 0x602B # 0 5767
+0x9C88 0x6026 # 0 5768
+0x9C89 0x600F # 0 5769
+0x9C8A 0x603A # 0 576A
+0x9C8B 0x605A # 0 576B
+0x9C8C 0x6041 # 0 576C
+0x9C8D 0x606A # 0 576D
+0x9C8E 0x6077 # 0 576E
+0x9C8F 0x605F # 0 576F
+0x9C90 0x604A # 0 5770
+0x9C91 0x6046 # 0 5771
+0x9C92 0x604D # 0 5772
+0x9C93 0x6063 # 0 5773
+0x9C94 0x6043 # 0 5774
+0x9C95 0x6064 # 0 5775
+0x9C96 0x6042 # 0 5776
+0x9C97 0x606C # 0 5777
+0x9C98 0x606B # 0 5778
+0x9C99 0x6059 # 0 5779
+0x9C9A 0x6081 # 0 577A
+0x9C9B 0x608D # 0 577B
+0x9C9C 0x60E7 # 0 577C
+0x9C9D 0x6083 # 0 577D
+0x9C9E 0x609A # 0 577E
+0x9C9F 0x6084 # 0 5821
+0x9CA0 0x609B # 0 5822
+0x9CA1 0x6096 # 0 5823
+0x9CA2 0x6097 # 0 5824
+0x9CA3 0x6092 # 0 5825
+0x9CA4 0x60A7 # 0 5826
+0x9CA5 0x608B # 0 5827
+0x9CA6 0x60E1 # 0 5828
+0x9CA7 0x60B8 # 0 5829
+0x9CA8 0x60E0 # 0 582A
+0x9CA9 0x60D3 # 0 582B
+0x9CAA 0x60B4 # 0 582C
+0x9CAB 0x5FF0 # 0 582D
+0x9CAC 0x60BD # 0 582E
+0x9CAD 0x60C6 # 0 582F
+0x9CAE 0x60B5 # 0 5830
+0x9CAF 0x60D8 # 0 5831
+0x9CB0 0x614D # 0 5832
+0x9CB1 0x6115 # 0 5833
+0x9CB2 0x6106 # 0 5834
+0x9CB3 0x60F6 # 0 5835
+0x9CB4 0x60F7 # 0 5836
+0x9CB5 0x6100 # 0 5837
+0x9CB6 0x60F4 # 0 5838
+0x9CB7 0x60FA # 0 5839
+0x9CB8 0x6103 # 0 583A
+0x9CB9 0x6121 # 0 583B
+0x9CBA 0x60FB # 0 583C
+0x9CBB 0x60F1 # 0 583D
+0x9CBC 0x610D # 0 583E
+0x9CBD 0x610E # 0 583F
+0x9CBE 0x6147 # 0 5840
+0x9CBF 0x613E # 0 5841
+0x9CC0 0x6128 # 0 5842
+0x9CC1 0x6127 # 0 5843
+0x9CC2 0x614A # 0 5844
+0x9CC3 0x613F # 0 5845
+0x9CC4 0x613C # 0 5846
+0x9CC5 0x612C # 0 5847
+0x9CC6 0x6134 # 0 5848
+0x9CC7 0x613D # 0 5849
+0x9CC8 0x6142 # 0 584A
+0x9CC9 0x6144 # 0 584B
+0x9CCA 0x6173 # 0 584C
+0x9CCB 0x6177 # 0 584D
+0x9CCC 0x6158 # 0 584E
+0x9CCD 0x6159 # 0 584F
+0x9CCE 0x615A # 0 5850
+0x9CCF 0x616B # 0 5851
+0x9CD0 0x6174 # 0 5852
+0x9CD1 0x616F # 0 5853
+0x9CD2 0x6165 # 0 5854
+0x9CD3 0x6171 # 0 5855
+0x9CD4 0x615F # 0 5856
+0x9CD5 0x615D # 0 5857
+0x9CD6 0x6153 # 0 5858
+0x9CD7 0x6175 # 0 5859
+0x9CD8 0x6199 # 0 585A
+0x9CD9 0x6196 # 0 585B
+0x9CDA 0x6187 # 0 585C
+0x9CDB 0x61AC # 0 585D
+0x9CDC 0x6194 # 0 585E
+0x9CDD 0x619A # 0 585F
+0x9CDE 0x618A # 0 5860
+0x9CDF 0x6191 # 0 5861
+0x9CE0 0x61AB # 0 5862
+0x9CE1 0x61AE # 0 5863
+0x9CE2 0x61CC # 0 5864
+0x9CE3 0x61CA # 0 5865
+0x9CE4 0x61C9 # 0 5866
+0x9CE5 0x61F7 # 0 5867
+0x9CE6 0x61C8 # 0 5868
+0x9CE7 0x61C3 # 0 5869
+0x9CE8 0x61C6 # 0 586A
+0x9CE9 0x61BA # 0 586B
+0x9CEA 0x61CB # 0 586C
+0x9CEB 0x7F79 # 0 586D
+0x9CEC 0x61CD # 0 586E
+0x9CED 0x61E6 # 0 586F
+0x9CEE 0x61E3 # 0 5870
+0x9CEF 0x61F6 # 0 5871
+0x9CF0 0x61FA # 0 5872
+0x9CF1 0x61F4 # 0 5873
+0x9CF2 0x61FF # 0 5874
+0x9CF3 0x61FD # 0 5875
+0x9CF4 0x61FC # 0 5876
+0x9CF5 0x61FE # 0 5877
+0x9CF6 0x6200 # 0 5878
+0x9CF7 0x6208 # 0 5879
+0x9CF8 0x6209 # 0 587A
+0x9CF9 0x620D # 0 587B
+0x9CFA 0x620C # 0 587C
+0x9CFB 0x6214 # 0 587D
+0x9CFC 0x621B # 0 587E
+0x9D40 0x621E # 0 5921
+0x9D41 0x6221 # 0 5922
+0x9D42 0x622A # 0 5923
+0x9D43 0x622E # 0 5924
+0x9D44 0x6230 # 0 5925
+0x9D45 0x6232 # 0 5926
+0x9D46 0x6233 # 0 5927
+0x9D47 0x6241 # 0 5928
+0x9D48 0x624E # 0 5929
+0x9D49 0x625E # 0 592A
+0x9D4A 0x6263 # 0 592B
+0x9D4B 0x625B # 0 592C
+0x9D4C 0x6260 # 0 592D
+0x9D4D 0x6268 # 0 592E
+0x9D4E 0x627C # 0 592F
+0x9D4F 0x6282 # 0 5930
+0x9D50 0x6289 # 0 5931
+0x9D51 0x627E # 0 5932
+0x9D52 0x6292 # 0 5933
+0x9D53 0x6293 # 0 5934
+0x9D54 0x6296 # 0 5935
+0x9D55 0x62D4 # 0 5936
+0x9D56 0x6283 # 0 5937
+0x9D57 0x6294 # 0 5938
+0x9D58 0x62D7 # 0 5939
+0x9D59 0x62D1 # 0 593A
+0x9D5A 0x62BB # 0 593B
+0x9D5B 0x62CF # 0 593C
+0x9D5C 0x62FF # 0 593D
+0x9D5D 0x62C6 # 0 593E
+0x9D5E 0x64D4 # 0 593F
+0x9D5F 0x62C8 # 0 5940
+0x9D60 0x62DC # 0 5941
+0x9D61 0x62CC # 0 5942
+0x9D62 0x62CA # 0 5943
+0x9D63 0x62C2 # 0 5944
+0x9D64 0x62C7 # 0 5945
+0x9D65 0x629B # 0 5946
+0x9D66 0x62C9 # 0 5947
+0x9D67 0x630C # 0 5948
+0x9D68 0x62EE # 0 5949
+0x9D69 0x62F1 # 0 594A
+0x9D6A 0x6327 # 0 594B
+0x9D6B 0x6302 # 0 594C
+0x9D6C 0x6308 # 0 594D
+0x9D6D 0x62EF # 0 594E
+0x9D6E 0x62F5 # 0 594F
+0x9D6F 0x6350 # 0 5950
+0x9D70 0x633E # 0 5951
+0x9D71 0x634D # 0 5952
+0x9D72 0x641C # 0 5953
+0x9D73 0x634F # 0 5954
+0x9D74 0x6396 # 0 5955
+0x9D75 0x638E # 0 5956
+0x9D76 0x6380 # 0 5957
+0x9D77 0x63AB # 0 5958
+0x9D78 0x6376 # 0 5959
+0x9D79 0x63A3 # 0 595A
+0x9D7A 0x638F # 0 595B
+0x9D7B 0x6389 # 0 595C
+0x9D7C 0x639F # 0 595D
+0x9D7D 0x63B5 # 0 595E
+0x9D7E 0x636B # 0 595F
+0x9D80 0x6369 # 0 5960
+0x9D81 0x63BE # 0 5961
+0x9D82 0x63E9 # 0 5962
+0x9D83 0x63C0 # 0 5963
+0x9D84 0x63C6 # 0 5964
+0x9D85 0x63E3 # 0 5965
+0x9D86 0x63C9 # 0 5966
+0x9D87 0x63D2 # 0 5967
+0x9D88 0x63F6 # 0 5968
+0x9D89 0x63C4 # 0 5969
+0x9D8A 0x6416 # 0 596A
+0x9D8B 0x6434 # 0 596B
+0x9D8C 0x6406 # 0 596C
+0x9D8D 0x6413 # 0 596D
+0x9D8E 0x6426 # 0 596E
+0x9D8F 0x6436 # 0 596F
+0x9D90 0x651D # 0 5970
+0x9D91 0x6417 # 0 5971
+0x9D92 0x6428 # 0 5972
+0x9D93 0x640F # 0 5973
+0x9D94 0x6467 # 0 5974
+0x9D95 0x646F # 0 5975
+0x9D96 0x6476 # 0 5976
+0x9D97 0x644E # 0 5977
+0x9D98 0x652A # 0 5978
+0x9D99 0x6495 # 0 5979
+0x9D9A 0x6493 # 0 597A
+0x9D9B 0x64A5 # 0 597B
+0x9D9C 0x64A9 # 0 597C
+0x9D9D 0x6488 # 0 597D
+0x9D9E 0x64BC # 0 597E
+0x9D9F 0x64DA # 0 5A21
+0x9DA0 0x64D2 # 0 5A22
+0x9DA1 0x64C5 # 0 5A23
+0x9DA2 0x64C7 # 0 5A24
+0x9DA3 0x64BB # 0 5A25
+0x9DA4 0x64D8 # 0 5A26
+0x9DA5 0x64C2 # 0 5A27
+0x9DA6 0x64F1 # 0 5A28
+0x9DA7 0x64E7 # 0 5A29
+0x9DA8 0x8209 # 0 5A2A
+0x9DA9 0x64E0 # 0 5A2B
+0x9DAA 0x64E1 # 0 5A2C
+0x9DAB 0x62AC # 0 5A2D
+0x9DAC 0x64E3 # 0 5A2E
+0x9DAD 0x64EF # 0 5A2F
+0x9DAE 0x652C # 0 5A30
+0x9DAF 0x64F6 # 0 5A31
+0x9DB0 0x64F4 # 0 5A32
+0x9DB1 0x64F2 # 0 5A33
+0x9DB2 0x64FA # 0 5A34
+0x9DB3 0x6500 # 0 5A35
+0x9DB4 0x64FD # 0 5A36
+0x9DB5 0x6518 # 0 5A37
+0x9DB6 0x651C # 0 5A38
+0x9DB7 0x6505 # 0 5A39
+0x9DB8 0x6524 # 0 5A3A
+0x9DB9 0x6523 # 0 5A3B
+0x9DBA 0x652B # 0 5A3C
+0x9DBB 0x6534 # 0 5A3D
+0x9DBC 0x6535 # 0 5A3E
+0x9DBD 0x6537 # 0 5A3F
+0x9DBE 0x6536 # 0 5A40
+0x9DBF 0x6538 # 0 5A41
+0x9DC0 0x754B # 0 5A42
+0x9DC1 0x6548 # 0 5A43
+0x9DC2 0x6556 # 0 5A44
+0x9DC3 0x6555 # 0 5A45
+0x9DC4 0x654D # 0 5A46
+0x9DC5 0x6558 # 0 5A47
+0x9DC6 0x655E # 0 5A48
+0x9DC7 0x655D # 0 5A49
+0x9DC8 0x6572 # 0 5A4A
+0x9DC9 0x6578 # 0 5A4B
+0x9DCA 0x6582 # 0 5A4C
+0x9DCB 0x6583 # 0 5A4D
+0x9DCC 0x8B8A # 0 5A4E
+0x9DCD 0x659B # 0 5A4F
+0x9DCE 0x659F # 0 5A50
+0x9DCF 0x65AB # 0 5A51
+0x9DD0 0x65B7 # 0 5A52
+0x9DD1 0x65C3 # 0 5A53
+0x9DD2 0x65C6 # 0 5A54
+0x9DD3 0x65C1 # 0 5A55
+0x9DD4 0x65C4 # 0 5A56
+0x9DD5 0x65CC # 0 5A57
+0x9DD6 0x65D2 # 0 5A58
+0x9DD7 0x65DB # 0 5A59
+0x9DD8 0x65D9 # 0 5A5A
+0x9DD9 0x65E0 # 0 5A5B
+0x9DDA 0x65E1 # 0 5A5C
+0x9DDB 0x65F1 # 0 5A5D
+0x9DDC 0x6772 # 0 5A5E
+0x9DDD 0x660A # 0 5A5F
+0x9DDE 0x6603 # 0 5A60
+0x9DDF 0x65FB # 0 5A61
+0x9DE0 0x6773 # 0 5A62
+0x9DE1 0x6635 # 0 5A63
+0x9DE2 0x6636 # 0 5A64
+0x9DE3 0x6634 # 0 5A65
+0x9DE4 0x661C # 0 5A66
+0x9DE5 0x664F # 0 5A67
+0x9DE6 0x6644 # 0 5A68
+0x9DE7 0x6649 # 0 5A69
+0x9DE8 0x6641 # 0 5A6A
+0x9DE9 0x665E # 0 5A6B
+0x9DEA 0x665D # 0 5A6C
+0x9DEB 0x6664 # 0 5A6D
+0x9DEC 0x6667 # 0 5A6E
+0x9DED 0x6668 # 0 5A6F
+0x9DEE 0x665F # 0 5A70
+0x9DEF 0x6662 # 0 5A71
+0x9DF0 0x6670 # 0 5A72
+0x9DF1 0x6683 # 0 5A73
+0x9DF2 0x6688 # 0 5A74
+0x9DF3 0x668E # 0 5A75
+0x9DF4 0x6689 # 0 5A76
+0x9DF5 0x6684 # 0 5A77
+0x9DF6 0x6698 # 0 5A78
+0x9DF7 0x669D # 0 5A79
+0x9DF8 0x66C1 # 0 5A7A
+0x9DF9 0x66B9 # 0 5A7B
+0x9DFA 0x66C9 # 0 5A7C
+0x9DFB 0x66BE # 0 5A7D
+0x9DFC 0x66BC # 0 5A7E
+0x9E40 0x66C4 # 0 5B21
+0x9E41 0x66B8 # 0 5B22
+0x9E42 0x66D6 # 0 5B23
+0x9E43 0x66DA # 0 5B24
+0x9E44 0x66E0 # 0 5B25
+0x9E45 0x663F # 0 5B26
+0x9E46 0x66E6 # 0 5B27
+0x9E47 0x66E9 # 0 5B28
+0x9E48 0x66F0 # 0 5B29
+0x9E49 0x66F5 # 0 5B2A
+0x9E4A 0x66F7 # 0 5B2B
+0x9E4B 0x670F # 0 5B2C
+0x9E4C 0x6716 # 0 5B2D
+0x9E4D 0x671E # 0 5B2E
+0x9E4E 0x6726 # 0 5B2F
+0x9E4F 0x6727 # 0 5B30
+0x9E50 0x9738 # 0 5B31
+0x9E51 0x672E # 0 5B32
+0x9E52 0x673F # 0 5B33
+0x9E53 0x6736 # 0 5B34
+0x9E54 0x6741 # 0 5B35
+0x9E55 0x6738 # 0 5B36
+0x9E56 0x6737 # 0 5B37
+0x9E57 0x6746 # 0 5B38
+0x9E58 0x675E # 0 5B39
+0x9E59 0x6760 # 0 5B3A
+0x9E5A 0x6759 # 0 5B3B
+0x9E5B 0x6763 # 0 5B3C
+0x9E5C 0x6764 # 0 5B3D
+0x9E5D 0x6789 # 0 5B3E
+0x9E5E 0x6770 # 0 5B3F
+0x9E5F 0x67A9 # 0 5B40
+0x9E60 0x677C # 0 5B41
+0x9E61 0x676A # 0 5B42
+0x9E62 0x678C # 0 5B43
+0x9E63 0x678B # 0 5B44
+0x9E64 0x67A6 # 0 5B45
+0x9E65 0x67A1 # 0 5B46
+0x9E66 0x6785 # 0 5B47
+0x9E67 0x67B7 # 0 5B48
+0x9E68 0x67EF # 0 5B49
+0x9E69 0x67B4 # 0 5B4A
+0x9E6A 0x67EC # 0 5B4B
+0x9E6B 0x67B3 # 0 5B4C
+0x9E6C 0x67E9 # 0 5B4D
+0x9E6D 0x67B8 # 0 5B4E
+0x9E6E 0x67E4 # 0 5B4F
+0x9E6F 0x67DE # 0 5B50
+0x9E70 0x67DD # 0 5B51
+0x9E71 0x67E2 # 0 5B52
+0x9E72 0x67EE # 0 5B53
+0x9E73 0x67B9 # 0 5B54
+0x9E74 0x67CE # 0 5B55
+0x9E75 0x67C6 # 0 5B56
+0x9E76 0x67E7 # 0 5B57
+0x9E77 0x6A9C # 0 5B58
+0x9E78 0x681E # 0 5B59
+0x9E79 0x6846 # 0 5B5A
+0x9E7A 0x6829 # 0 5B5B
+0x9E7B 0x6840 # 0 5B5C
+0x9E7C 0x684D # 0 5B5D
+0x9E7D 0x6832 # 0 5B5E
+0x9E7E 0x684E # 0 5B5F
+0x9E80 0x68B3 # 0 5B60
+0x9E81 0x682B # 0 5B61
+0x9E82 0x6859 # 0 5B62
+0x9E83 0x6863 # 0 5B63
+0x9E84 0x6877 # 0 5B64
+0x9E85 0x687F # 0 5B65
+0x9E86 0x689F # 0 5B66
+0x9E87 0x688F # 0 5B67
+0x9E88 0x68AD # 0 5B68
+0x9E89 0x6894 # 0 5B69
+0x9E8A 0x689D # 0 5B6A
+0x9E8B 0x689B # 0 5B6B
+0x9E8C 0x6883 # 0 5B6C
+0x9E8D 0x6AAE # 0 5B6D
+0x9E8E 0x68B9 # 0 5B6E
+0x9E8F 0x6874 # 0 5B6F
+0x9E90 0x68B5 # 0 5B70
+0x9E91 0x68A0 # 0 5B71
+0x9E92 0x68BA # 0 5B72
+0x9E93 0x690F # 0 5B73
+0x9E94 0x688D # 0 5B74
+0x9E95 0x687E # 0 5B75
+0x9E96 0x6901 # 0 5B76
+0x9E97 0x68CA # 0 5B77
+0x9E98 0x6908 # 0 5B78
+0x9E99 0x68D8 # 0 5B79
+0x9E9A 0x6922 # 0 5B7A
+0x9E9B 0x6926 # 0 5B7B
+0x9E9C 0x68E1 # 0 5B7C
+0x9E9D 0x690C # 0 5B7D
+0x9E9E 0x68CD # 0 5B7E
+0x9E9F 0x68D4 # 0 5C21
+0x9EA0 0x68E7 # 0 5C22
+0x9EA1 0x68D5 # 0 5C23
+0x9EA2 0x6936 # 0 5C24
+0x9EA3 0x6912 # 0 5C25
+0x9EA4 0x6904 # 0 5C26
+0x9EA5 0x68D7 # 0 5C27
+0x9EA6 0x68E3 # 0 5C28
+0x9EA7 0x6925 # 0 5C29
+0x9EA8 0x68F9 # 0 5C2A
+0x9EA9 0x68E0 # 0 5C2B
+0x9EAA 0x68EF # 0 5C2C
+0x9EAB 0x6928 # 0 5C2D
+0x9EAC 0x692A # 0 5C2E
+0x9EAD 0x691A # 0 5C2F
+0x9EAE 0x6923 # 0 5C30
+0x9EAF 0x6921 # 0 5C31
+0x9EB0 0x68C6 # 0 5C32
+0x9EB1 0x6979 # 0 5C33
+0x9EB2 0x6977 # 0 5C34
+0x9EB3 0x695C # 0 5C35
+0x9EB4 0x6978 # 0 5C36
+0x9EB5 0x696B # 0 5C37
+0x9EB6 0x6954 # 0 5C38
+0x9EB7 0x697E # 0 5C39
+0x9EB8 0x696E # 0 5C3A
+0x9EB9 0x6939 # 0 5C3B
+0x9EBA 0x6974 # 0 5C3C
+0x9EBB 0x693D # 0 5C3D
+0x9EBC 0x6959 # 0 5C3E
+0x9EBD 0x6930 # 0 5C3F
+0x9EBE 0x6961 # 0 5C40
+0x9EBF 0x695E # 0 5C41
+0x9EC0 0x695D # 0 5C42
+0x9EC1 0x6981 # 0 5C43
+0x9EC2 0x696A # 0 5C44
+0x9EC3 0x69B2 # 0 5C45
+0x9EC4 0x69AE # 0 5C46
+0x9EC5 0x69D0 # 0 5C47
+0x9EC6 0x69BF # 0 5C48
+0x9EC7 0x69C1 # 0 5C49
+0x9EC8 0x69D3 # 0 5C4A
+0x9EC9 0x69BE # 0 5C4B
+0x9ECA 0x69CE # 0 5C4C
+0x9ECB 0x5BE8 # 0 5C4D
+0x9ECC 0x69CA # 0 5C4E
+0x9ECD 0x69DD # 0 5C4F
+0x9ECE 0x69BB # 0 5C50
+0x9ECF 0x69C3 # 0 5C51
+0x9ED0 0x69A7 # 0 5C52
+0x9ED1 0x6A2E # 0 5C53
+0x9ED2 0x6991 # 0 5C54
+0x9ED3 0x69A0 # 0 5C55
+0x9ED4 0x699C # 0 5C56
+0x9ED5 0x6995 # 0 5C57
+0x9ED6 0x69B4 # 0 5C58
+0x9ED7 0x69DE # 0 5C59
+0x9ED8 0x69E8 # 0 5C5A
+0x9ED9 0x6A02 # 0 5C5B
+0x9EDA 0x6A1B # 0 5C5C
+0x9EDB 0x69FF # 0 5C5D
+0x9EDC 0x6B0A # 0 5C5E
+0x9EDD 0x69F9 # 0 5C5F
+0x9EDE 0x69F2 # 0 5C60
+0x9EDF 0x69E7 # 0 5C61
+0x9EE0 0x6A05 # 0 5C62
+0x9EE1 0x69B1 # 0 5C63
+0x9EE2 0x6A1E # 0 5C64
+0x9EE3 0x69ED # 0 5C65
+0x9EE4 0x6A14 # 0 5C66
+0x9EE5 0x69EB # 0 5C67
+0x9EE6 0x6A0A # 0 5C68
+0x9EE7 0x6A12 # 0 5C69
+0x9EE8 0x6AC1 # 0 5C6A
+0x9EE9 0x6A23 # 0 5C6B
+0x9EEA 0x6A13 # 0 5C6C
+0x9EEB 0x6A44 # 0 5C6D
+0x9EEC 0x6A0C # 0 5C6E
+0x9EED 0x6A72 # 0 5C6F
+0x9EEE 0x6A36 # 0 5C70
+0x9EEF 0x6A78 # 0 5C71
+0x9EF0 0x6A47 # 0 5C72
+0x9EF1 0x6A62 # 0 5C73
+0x9EF2 0x6A59 # 0 5C74
+0x9EF3 0x6A66 # 0 5C75
+0x9EF4 0x6A48 # 0 5C76
+0x9EF5 0x6A38 # 0 5C77
+0x9EF6 0x6A22 # 0 5C78
+0x9EF7 0x6A90 # 0 5C79
+0x9EF8 0x6A8D # 0 5C7A
+0x9EF9 0x6AA0 # 0 5C7B
+0x9EFA 0x6A84 # 0 5C7C
+0x9EFB 0x6AA2 # 0 5C7D
+0x9EFC 0x6AA3 # 0 5C7E
+0x9F40 0x6A97 # 0 5D21
+0x9F41 0x8617 # 0 5D22
+0x9F42 0x6ABB # 0 5D23
+0x9F43 0x6AC3 # 0 5D24
+0x9F44 0x6AC2 # 0 5D25
+0x9F45 0x6AB8 # 0 5D26
+0x9F46 0x6AB3 # 0 5D27
+0x9F47 0x6AAC # 0 5D28
+0x9F48 0x6ADE # 0 5D29
+0x9F49 0x6AD1 # 0 5D2A
+0x9F4A 0x6ADF # 0 5D2B
+0x9F4B 0x6AAA # 0 5D2C
+0x9F4C 0x6ADA # 0 5D2D
+0x9F4D 0x6AEA # 0 5D2E
+0x9F4E 0x6AFB # 0 5D2F
+0x9F4F 0x6B05 # 0 5D30
+0x9F50 0x8616 # 0 5D31
+0x9F51 0x6AFA # 0 5D32
+0x9F52 0x6B12 # 0 5D33
+0x9F53 0x6B16 # 0 5D34
+0x9F54 0x9B31 # 0 5D35
+0x9F55 0x6B1F # 0 5D36
+0x9F56 0x6B38 # 0 5D37
+0x9F57 0x6B37 # 0 5D38
+0x9F58 0x76DC # 0 5D39
+0x9F59 0x6B39 # 0 5D3A
+0x9F5A 0x98EE # 0 5D3B
+0x9F5B 0x6B47 # 0 5D3C
+0x9F5C 0x6B43 # 0 5D3D
+0x9F5D 0x6B49 # 0 5D3E
+0x9F5E 0x6B50 # 0 5D3F
+0x9F5F 0x6B59 # 0 5D40
+0x9F60 0x6B54 # 0 5D41
+0x9F61 0x6B5B # 0 5D42
+0x9F62 0x6B5F # 0 5D43
+0x9F63 0x6B61 # 0 5D44
+0x9F64 0x6B78 # 0 5D45
+0x9F65 0x6B79 # 0 5D46
+0x9F66 0x6B7F # 0 5D47
+0x9F67 0x6B80 # 0 5D48
+0x9F68 0x6B84 # 0 5D49
+0x9F69 0x6B83 # 0 5D4A
+0x9F6A 0x6B8D # 0 5D4B
+0x9F6B 0x6B98 # 0 5D4C
+0x9F6C 0x6B95 # 0 5D4D
+0x9F6D 0x6B9E # 0 5D4E
+0x9F6E 0x6BA4 # 0 5D4F
+0x9F6F 0x6BAA # 0 5D50
+0x9F70 0x6BAB # 0 5D51
+0x9F71 0x6BAF # 0 5D52
+0x9F72 0x6BB2 # 0 5D53
+0x9F73 0x6BB1 # 0 5D54
+0x9F74 0x6BB3 # 0 5D55
+0x9F75 0x6BB7 # 0 5D56
+0x9F76 0x6BBC # 0 5D57
+0x9F77 0x6BC6 # 0 5D58
+0x9F78 0x6BCB # 0 5D59
+0x9F79 0x6BD3 # 0 5D5A
+0x9F7A 0x6BDF # 0 5D5B
+0x9F7B 0x6BEC # 0 5D5C
+0x9F7C 0x6BEB # 0 5D5D
+0x9F7D 0x6BF3 # 0 5D5E
+0x9F7E 0x6BEF # 0 5D5F
+0x9F80 0x9EBE # 0 5D60
+0x9F81 0x6C08 # 0 5D61
+0x9F82 0x6C13 # 0 5D62
+0x9F83 0x6C14 # 0 5D63
+0x9F84 0x6C1B # 0 5D64
+0x9F85 0x6C24 # 0 5D65
+0x9F86 0x6C23 # 0 5D66
+0x9F87 0x6C5E # 0 5D67
+0x9F88 0x6C55 # 0 5D68
+0x9F89 0x6C62 # 0 5D69
+0x9F8A 0x6C6A # 0 5D6A
+0x9F8B 0x6C82 # 0 5D6B
+0x9F8C 0x6C8D # 0 5D6C
+0x9F8D 0x6C9A # 0 5D6D
+0x9F8E 0x6C81 # 0 5D6E
+0x9F8F 0x6C9B # 0 5D6F
+0x9F90 0x6C7E # 0 5D70
+0x9F91 0x6C68 # 0 5D71
+0x9F92 0x6C73 # 0 5D72
+0x9F93 0x6C92 # 0 5D73
+0x9F94 0x6C90 # 0 5D74
+0x9F95 0x6CC4 # 0 5D75
+0x9F96 0x6CF1 # 0 5D76
+0x9F97 0x6CD3 # 0 5D77
+0x9F98 0x6CBD # 0 5D78
+0x9F99 0x6CD7 # 0 5D79
+0x9F9A 0x6CC5 # 0 5D7A
+0x9F9B 0x6CDD # 0 5D7B
+0x9F9C 0x6CAE # 0 5D7C
+0x9F9D 0x6CB1 # 0 5D7D
+0x9F9E 0x6CBE # 0 5D7E
+0x9F9F 0x6CBA # 0 5E21
+0x9FA0 0x6CDB # 0 5E22
+0x9FA1 0x6CEF # 0 5E23
+0x9FA2 0x6CD9 # 0 5E24
+0x9FA3 0x6CEA # 0 5E25
+0x9FA4 0x6D1F # 0 5E26
+0x9FA5 0x884D # 0 5E27
+0x9FA6 0x6D36 # 0 5E28
+0x9FA7 0x6D2B # 0 5E29
+0x9FA8 0x6D3D # 0 5E2A
+0x9FA9 0x6D38 # 0 5E2B
+0x9FAA 0x6D19 # 0 5E2C
+0x9FAB 0x6D35 # 0 5E2D
+0x9FAC 0x6D33 # 0 5E2E
+0x9FAD 0x6D12 # 0 5E2F
+0x9FAE 0x6D0C # 0 5E30
+0x9FAF 0x6D63 # 0 5E31
+0x9FB0 0x6D93 # 0 5E32
+0x9FB1 0x6D64 # 0 5E33
+0x9FB2 0x6D5A # 0 5E34
+0x9FB3 0x6D79 # 0 5E35
+0x9FB4 0x6D59 # 0 5E36
+0x9FB5 0x6D8E # 0 5E37
+0x9FB6 0x6D95 # 0 5E38
+0x9FB7 0x6FE4 # 0 5E39
+0x9FB8 0x6D85 # 0 5E3A
+0x9FB9 0x6DF9 # 0 5E3B
+0x9FBA 0x6E15 # 0 5E3C
+0x9FBB 0x6E0A # 0 5E3D
+0x9FBC 0x6DB5 # 0 5E3E
+0x9FBD 0x6DC7 # 0 5E3F
+0x9FBE 0x6DE6 # 0 5E40
+0x9FBF 0x6DB8 # 0 5E41
+0x9FC0 0x6DC6 # 0 5E42
+0x9FC1 0x6DEC # 0 5E43
+0x9FC2 0x6DDE # 0 5E44
+0x9FC3 0x6DCC # 0 5E45
+0x9FC4 0x6DE8 # 0 5E46
+0x9FC5 0x6DD2 # 0 5E47
+0x9FC6 0x6DC5 # 0 5E48
+0x9FC7 0x6DFA # 0 5E49
+0x9FC8 0x6DD9 # 0 5E4A
+0x9FC9 0x6DE4 # 0 5E4B
+0x9FCA 0x6DD5 # 0 5E4C
+0x9FCB 0x6DEA # 0 5E4D
+0x9FCC 0x6DEE # 0 5E4E
+0x9FCD 0x6E2D # 0 5E4F
+0x9FCE 0x6E6E # 0 5E50
+0x9FCF 0x6E2E # 0 5E51
+0x9FD0 0x6E19 # 0 5E52
+0x9FD1 0x6E72 # 0 5E53
+0x9FD2 0x6E5F # 0 5E54
+0x9FD3 0x6E3E # 0 5E55
+0x9FD4 0x6E23 # 0 5E56
+0x9FD5 0x6E6B # 0 5E57
+0x9FD6 0x6E2B # 0 5E58
+0x9FD7 0x6E76 # 0 5E59
+0x9FD8 0x6E4D # 0 5E5A
+0x9FD9 0x6E1F # 0 5E5B
+0x9FDA 0x6E43 # 0 5E5C
+0x9FDB 0x6E3A # 0 5E5D
+0x9FDC 0x6E4E # 0 5E5E
+0x9FDD 0x6E24 # 0 5E5F
+0x9FDE 0x6EFF # 0 5E60
+0x9FDF 0x6E1D # 0 5E61
+0x9FE0 0x6E38 # 0 5E62
+0x9FE1 0x6E82 # 0 5E63
+0x9FE2 0x6EAA # 0 5E64
+0x9FE3 0x6E98 # 0 5E65
+0x9FE4 0x6EC9 # 0 5E66
+0x9FE5 0x6EB7 # 0 5E67
+0x9FE6 0x6ED3 # 0 5E68
+0x9FE7 0x6EBD # 0 5E69
+0x9FE8 0x6EAF # 0 5E6A
+0x9FE9 0x6EC4 # 0 5E6B
+0x9FEA 0x6EB2 # 0 5E6C
+0x9FEB 0x6ED4 # 0 5E6D
+0x9FEC 0x6ED5 # 0 5E6E
+0x9FED 0x6E8F # 0 5E6F
+0x9FEE 0x6EA5 # 0 5E70
+0x9FEF 0x6EC2 # 0 5E71
+0x9FF0 0x6E9F # 0 5E72
+0x9FF1 0x6F41 # 0 5E73
+0x9FF2 0x6F11 # 0 5E74
+0x9FF3 0x704C # 0 5E75
+0x9FF4 0x6EEC # 0 5E76
+0x9FF5 0x6EF8 # 0 5E77
+0x9FF6 0x6EFE # 0 5E78
+0x9FF7 0x6F3F # 0 5E79
+0x9FF8 0x6EF2 # 0 5E7A
+0x9FF9 0x6F31 # 0 5E7B
+0x9FFA 0x6EEF # 0 5E7C
+0x9FFB 0x6F32 # 0 5E7D
+0x9FFC 0x6ECC # 0 5E7E
+0xE040 0x6F3E # 0 5F21
+0xE041 0x6F13 # 0 5F22
+0xE042 0x6EF7 # 0 5F23
+0xE043 0x6F86 # 0 5F24
+0xE044 0x6F7A # 0 5F25
+0xE045 0x6F78 # 0 5F26
+0xE046 0x6F81 # 0 5F27
+0xE047 0x6F80 # 0 5F28
+0xE048 0x6F6F # 0 5F29
+0xE049 0x6F5B # 0 5F2A
+0xE04A 0x6FF3 # 0 5F2B
+0xE04B 0x6F6D # 0 5F2C
+0xE04C 0x6F82 # 0 5F2D
+0xE04D 0x6F7C # 0 5F2E
+0xE04E 0x6F58 # 0 5F2F
+0xE04F 0x6F8E # 0 5F30
+0xE050 0x6F91 # 0 5F31
+0xE051 0x6FC2 # 0 5F32
+0xE052 0x6F66 # 0 5F33
+0xE053 0x6FB3 # 0 5F34
+0xE054 0x6FA3 # 0 5F35
+0xE055 0x6FA1 # 0 5F36
+0xE056 0x6FA4 # 0 5F37
+0xE057 0x6FB9 # 0 5F38
+0xE058 0x6FC6 # 0 5F39
+0xE059 0x6FAA # 0 5F3A
+0xE05A 0x6FDF # 0 5F3B
+0xE05B 0x6FD5 # 0 5F3C
+0xE05C 0x6FEC # 0 5F3D
+0xE05D 0x6FD4 # 0 5F3E
+0xE05E 0x6FD8 # 0 5F3F
+0xE05F 0x6FF1 # 0 5F40
+0xE060 0x6FEE # 0 5F41
+0xE061 0x6FDB # 0 5F42
+0xE062 0x7009 # 0 5F43
+0xE063 0x700B # 0 5F44
+0xE064 0x6FFA # 0 5F45
+0xE065 0x7011 # 0 5F46
+0xE066 0x7001 # 0 5F47
+0xE067 0x700F # 0 5F48
+0xE068 0x6FFE # 0 5F49
+0xE069 0x701B # 0 5F4A
+0xE06A 0x701A # 0 5F4B
+0xE06B 0x6F74 # 0 5F4C
+0xE06C 0x701D # 0 5F4D
+0xE06D 0x7018 # 0 5F4E
+0xE06E 0x701F # 0 5F4F
+0xE06F 0x7030 # 0 5F50
+0xE070 0x703E # 0 5F51
+0xE071 0x7032 # 0 5F52
+0xE072 0x7051 # 0 5F53
+0xE073 0x7063 # 0 5F54
+0xE074 0x7099 # 0 5F55
+0xE075 0x7092 # 0 5F56
+0xE076 0x70AF # 0 5F57
+0xE077 0x70F1 # 0 5F58
+0xE078 0x70AC # 0 5F59
+0xE079 0x70B8 # 0 5F5A
+0xE07A 0x70B3 # 0 5F5B
+0xE07B 0x70AE # 0 5F5C
+0xE07C 0x70DF # 0 5F5D
+0xE07D 0x70CB # 0 5F5E
+0xE07E 0x70DD # 0 5F5F
+0xE080 0x70D9 # 0 5F60
+0xE081 0x7109 # 0 5F61
+0xE082 0x70FD # 0 5F62
+0xE083 0x711C # 0 5F63
+0xE084 0x7119 # 0 5F64
+0xE085 0x7165 # 0 5F65
+0xE086 0x7155 # 0 5F66
+0xE087 0x7188 # 0 5F67
+0xE088 0x7166 # 0 5F68
+0xE089 0x7162 # 0 5F69
+0xE08A 0x714C # 0 5F6A
+0xE08B 0x7156 # 0 5F6B
+0xE08C 0x716C # 0 5F6C
+0xE08D 0x718F # 0 5F6D
+0xE08E 0x71FB # 0 5F6E
+0xE08F 0x7184 # 0 5F6F
+0xE090 0x7195 # 0 5F70
+0xE091 0x71A8 # 0 5F71
+0xE092 0x71AC # 0 5F72
+0xE093 0x71D7 # 0 5F73
+0xE094 0x71B9 # 0 5F74
+0xE095 0x71BE # 0 5F75
+0xE096 0x71D2 # 0 5F76
+0xE097 0x71C9 # 0 5F77
+0xE098 0x71D4 # 0 5F78
+0xE099 0x71CE # 0 5F79
+0xE09A 0x71E0 # 0 5F7A
+0xE09B 0x71EC # 0 5F7B
+0xE09C 0x71E7 # 0 5F7C
+0xE09D 0x71F5 # 0 5F7D
+0xE09E 0x71FC # 0 5F7E
+0xE09F 0x71F9 # 0 6021
+0xE0A0 0x71FF # 0 6022
+0xE0A1 0x720D # 0 6023
+0xE0A2 0x7210 # 0 6024
+0xE0A3 0x721B # 0 6025
+0xE0A4 0x7228 # 0 6026
+0xE0A5 0x722D # 0 6027
+0xE0A6 0x722C # 0 6028
+0xE0A7 0x7230 # 0 6029
+0xE0A8 0x7232 # 0 602A
+0xE0A9 0x723B # 0 602B
+0xE0AA 0x723C # 0 602C
+0xE0AB 0x723F # 0 602D
+0xE0AC 0x7240 # 0 602E
+0xE0AD 0x7246 # 0 602F
+0xE0AE 0x724B # 0 6030
+0xE0AF 0x7258 # 0 6031
+0xE0B0 0x7274 # 0 6032
+0xE0B1 0x727E # 0 6033
+0xE0B2 0x7282 # 0 6034
+0xE0B3 0x7281 # 0 6035
+0xE0B4 0x7287 # 0 6036
+0xE0B5 0x7292 # 0 6037
+0xE0B6 0x7296 # 0 6038
+0xE0B7 0x72A2 # 0 6039
+0xE0B8 0x72A7 # 0 603A
+0xE0B9 0x72B9 # 0 603B
+0xE0BA 0x72B2 # 0 603C
+0xE0BB 0x72C3 # 0 603D
+0xE0BC 0x72C6 # 0 603E
+0xE0BD 0x72C4 # 0 603F
+0xE0BE 0x72CE # 0 6040
+0xE0BF 0x72D2 # 0 6041
+0xE0C0 0x72E2 # 0 6042
+0xE0C1 0x72E0 # 0 6043
+0xE0C2 0x72E1 # 0 6044
+0xE0C3 0x72F9 # 0 6045
+0xE0C4 0x72F7 # 0 6046
+0xE0C5 0x500F # 0 6047
+0xE0C6 0x7317 # 0 6048
+0xE0C7 0x730A # 0 6049
+0xE0C8 0x731C # 0 604A
+0xE0C9 0x7316 # 0 604B
+0xE0CA 0x731D # 0 604C
+0xE0CB 0x7334 # 0 604D
+0xE0CC 0x732F # 0 604E
+0xE0CD 0x7329 # 0 604F
+0xE0CE 0x7325 # 0 6050
+0xE0CF 0x733E # 0 6051
+0xE0D0 0x734E # 0 6052
+0xE0D1 0x734F # 0 6053
+0xE0D2 0x9ED8 # 0 6054
+0xE0D3 0x7357 # 0 6055
+0xE0D4 0x736A # 0 6056
+0xE0D5 0x7368 # 0 6057
+0xE0D6 0x7370 # 0 6058
+0xE0D7 0x7378 # 0 6059
+0xE0D8 0x7375 # 0 605A
+0xE0D9 0x737B # 0 605B
+0xE0DA 0x737A # 0 605C
+0xE0DB 0x73C8 # 0 605D
+0xE0DC 0x73B3 # 0 605E
+0xE0DD 0x73CE # 0 605F
+0xE0DE 0x73BB # 0 6060
+0xE0DF 0x73C0 # 0 6061
+0xE0E0 0x73E5 # 0 6062
+0xE0E1 0x73EE # 0 6063
+0xE0E2 0x73DE # 0 6064
+0xE0E3 0x74A2 # 0 6065
+0xE0E4 0x7405 # 0 6066
+0xE0E5 0x746F # 0 6067
+0xE0E6 0x7425 # 0 6068
+0xE0E7 0x73F8 # 0 6069
+0xE0E8 0x7432 # 0 606A
+0xE0E9 0x743A # 0 606B
+0xE0EA 0x7455 # 0 606C
+0xE0EB 0x743F # 0 606D
+0xE0EC 0x745F # 0 606E
+0xE0ED 0x7459 # 0 606F
+0xE0EE 0x7441 # 0 6070
+0xE0EF 0x745C # 0 6071
+0xE0F0 0x7469 # 0 6072
+0xE0F1 0x7470 # 0 6073
+0xE0F2 0x7463 # 0 6074
+0xE0F3 0x746A # 0 6075
+0xE0F4 0x7476 # 0 6076
+0xE0F5 0x747E # 0 6077
+0xE0F6 0x748B # 0 6078
+0xE0F7 0x749E # 0 6079
+0xE0F8 0x74A7 # 0 607A
+0xE0F9 0x74CA # 0 607B
+0xE0FA 0x74CF # 0 607C
+0xE0FB 0x74D4 # 0 607D
+0xE0FC 0x73F1 # 0 607E
+0xE140 0x74E0 # 0 6121
+0xE141 0x74E3 # 0 6122
+0xE142 0x74E7 # 0 6123
+0xE143 0x74E9 # 0 6124
+0xE144 0x74EE # 0 6125
+0xE145 0x74F2 # 0 6126
+0xE146 0x74F0 # 0 6127
+0xE147 0x74F1 # 0 6128
+0xE148 0x74F8 # 0 6129
+0xE149 0x74F7 # 0 612A
+0xE14A 0x7504 # 0 612B
+0xE14B 0x7503 # 0 612C
+0xE14C 0x7505 # 0 612D
+0xE14D 0x750C # 0 612E
+0xE14E 0x750E # 0 612F
+0xE14F 0x750D # 0 6130
+0xE150 0x7515 # 0 6131
+0xE151 0x7513 # 0 6132
+0xE152 0x751E # 0 6133
+0xE153 0x7526 # 0 6134
+0xE154 0x752C # 0 6135
+0xE155 0x753C # 0 6136
+0xE156 0x7544 # 0 6137
+0xE157 0x754D # 0 6138
+0xE158 0x754A # 0 6139
+0xE159 0x7549 # 0 613A
+0xE15A 0x755B # 0 613B
+0xE15B 0x7546 # 0 613C
+0xE15C 0x755A # 0 613D
+0xE15D 0x7569 # 0 613E
+0xE15E 0x7564 # 0 613F
+0xE15F 0x7567 # 0 6140
+0xE160 0x756B # 0 6141
+0xE161 0x756D # 0 6142
+0xE162 0x7578 # 0 6143
+0xE163 0x7576 # 0 6144
+0xE164 0x7586 # 0 6145
+0xE165 0x7587 # 0 6146
+0xE166 0x7574 # 0 6147
+0xE167 0x758A # 0 6148
+0xE168 0x7589 # 0 6149
+0xE169 0x7582 # 0 614A
+0xE16A 0x7594 # 0 614B
+0xE16B 0x759A # 0 614C
+0xE16C 0x759D # 0 614D
+0xE16D 0x75A5 # 0 614E
+0xE16E 0x75A3 # 0 614F
+0xE16F 0x75C2 # 0 6150
+0xE170 0x75B3 # 0 6151
+0xE171 0x75C3 # 0 6152
+0xE172 0x75B5 # 0 6153
+0xE173 0x75BD # 0 6154
+0xE174 0x75B8 # 0 6155
+0xE175 0x75BC # 0 6156
+0xE176 0x75B1 # 0 6157
+0xE177 0x75CD # 0 6158
+0xE178 0x75CA # 0 6159
+0xE179 0x75D2 # 0 615A
+0xE17A 0x75D9 # 0 615B
+0xE17B 0x75E3 # 0 615C
+0xE17C 0x75DE # 0 615D
+0xE17D 0x75FE # 0 615E
+0xE17E 0x75FF # 0 615F
+0xE180 0x75FC # 0 6160
+0xE181 0x7601 # 0 6161
+0xE182 0x75F0 # 0 6162
+0xE183 0x75FA # 0 6163
+0xE184 0x75F2 # 0 6164
+0xE185 0x75F3 # 0 6165
+0xE186 0x760B # 0 6166
+0xE187 0x760D # 0 6167
+0xE188 0x7609 # 0 6168
+0xE189 0x761F # 0 6169
+0xE18A 0x7627 # 0 616A
+0xE18B 0x7620 # 0 616B
+0xE18C 0x7621 # 0 616C
+0xE18D 0x7622 # 0 616D
+0xE18E 0x7624 # 0 616E
+0xE18F 0x7634 # 0 616F
+0xE190 0x7630 # 0 6170
+0xE191 0x763B # 0 6171
+0xE192 0x7647 # 0 6172
+0xE193 0x7648 # 0 6173
+0xE194 0x7646 # 0 6174
+0xE195 0x765C # 0 6175
+0xE196 0x7658 # 0 6176
+0xE197 0x7661 # 0 6177
+0xE198 0x7662 # 0 6178
+0xE199 0x7668 # 0 6179
+0xE19A 0x7669 # 0 617A
+0xE19B 0x766A # 0 617B
+0xE19C 0x7667 # 0 617C
+0xE19D 0x766C # 0 617D
+0xE19E 0x7670 # 0 617E
+0xE19F 0x7672 # 0 6221
+0xE1A0 0x7676 # 0 6222
+0xE1A1 0x7678 # 0 6223
+0xE1A2 0x767C # 0 6224
+0xE1A3 0x7680 # 0 6225
+0xE1A4 0x7683 # 0 6226
+0xE1A5 0x7688 # 0 6227
+0xE1A6 0x768B # 0 6228
+0xE1A7 0x768E # 0 6229
+0xE1A8 0x7696 # 0 622A
+0xE1A9 0x7693 # 0 622B
+0xE1AA 0x7699 # 0 622C
+0xE1AB 0x769A # 0 622D
+0xE1AC 0x76B0 # 0 622E
+0xE1AD 0x76B4 # 0 622F
+0xE1AE 0x76B8 # 0 6230
+0xE1AF 0x76B9 # 0 6231
+0xE1B0 0x76BA # 0 6232
+0xE1B1 0x76C2 # 0 6233
+0xE1B2 0x76CD # 0 6234
+0xE1B3 0x76D6 # 0 6235
+0xE1B4 0x76D2 # 0 6236
+0xE1B5 0x76DE # 0 6237
+0xE1B6 0x76E1 # 0 6238
+0xE1B7 0x76E5 # 0 6239
+0xE1B8 0x76E7 # 0 623A
+0xE1B9 0x76EA # 0 623B
+0xE1BA 0x862F # 0 623C
+0xE1BB 0x76FB # 0 623D
+0xE1BC 0x7708 # 0 623E
+0xE1BD 0x7707 # 0 623F
+0xE1BE 0x7704 # 0 6240
+0xE1BF 0x7729 # 0 6241
+0xE1C0 0x7724 # 0 6242
+0xE1C1 0x771E # 0 6243
+0xE1C2 0x7725 # 0 6244
+0xE1C3 0x7726 # 0 6245
+0xE1C4 0x771B # 0 6246
+0xE1C5 0x7737 # 0 6247
+0xE1C6 0x7738 # 0 6248
+0xE1C7 0x7747 # 0 6249
+0xE1C8 0x775A # 0 624A
+0xE1C9 0x7768 # 0 624B
+0xE1CA 0x776B # 0 624C
+0xE1CB 0x775B # 0 624D
+0xE1CC 0x7765 # 0 624E
+0xE1CD 0x777F # 0 624F
+0xE1CE 0x777E # 0 6250
+0xE1CF 0x7779 # 0 6251
+0xE1D0 0x778E # 0 6252
+0xE1D1 0x778B # 0 6253
+0xE1D2 0x7791 # 0 6254
+0xE1D3 0x77A0 # 0 6255
+0xE1D4 0x779E # 0 6256
+0xE1D5 0x77B0 # 0 6257
+0xE1D6 0x77B6 # 0 6258
+0xE1D7 0x77B9 # 0 6259
+0xE1D8 0x77BF # 0 625A
+0xE1D9 0x77BC # 0 625B
+0xE1DA 0x77BD # 0 625C
+0xE1DB 0x77BB # 0 625D
+0xE1DC 0x77C7 # 0 625E
+0xE1DD 0x77CD # 0 625F
+0xE1DE 0x77D7 # 0 6260
+0xE1DF 0x77DA # 0 6261
+0xE1E0 0x77DC # 0 6262
+0xE1E1 0x77E3 # 0 6263
+0xE1E2 0x77EE # 0 6264
+0xE1E3 0x77FC # 0 6265
+0xE1E4 0x780C # 0 6266
+0xE1E5 0x7812 # 0 6267
+0xE1E6 0x7926 # 0 6268
+0xE1E7 0x7820 # 0 6269
+0xE1E8 0x792A # 0 626A
+0xE1E9 0x7845 # 0 626B
+0xE1EA 0x788E # 0 626C
+0xE1EB 0x7874 # 0 626D
+0xE1EC 0x7886 # 0 626E
+0xE1ED 0x787C # 0 626F
+0xE1EE 0x789A # 0 6270
+0xE1EF 0x788C # 0 6271
+0xE1F0 0x78A3 # 0 6272
+0xE1F1 0x78B5 # 0 6273
+0xE1F2 0x78AA # 0 6274
+0xE1F3 0x78AF # 0 6275
+0xE1F4 0x78D1 # 0 6276
+0xE1F5 0x78C6 # 0 6277
+0xE1F6 0x78CB # 0 6278
+0xE1F7 0x78D4 # 0 6279
+0xE1F8 0x78BE # 0 627A
+0xE1F9 0x78BC # 0 627B
+0xE1FA 0x78C5 # 0 627C
+0xE1FB 0x78CA # 0 627D
+0xE1FC 0x78EC # 0 627E
+0xE240 0x78E7 # 0 6321
+0xE241 0x78DA # 0 6322
+0xE242 0x78FD # 0 6323
+0xE243 0x78F4 # 0 6324
+0xE244 0x7907 # 0 6325
+0xE245 0x7912 # 0 6326
+0xE246 0x7911 # 0 6327
+0xE247 0x7919 # 0 6328
+0xE248 0x792C # 0 6329
+0xE249 0x792B # 0 632A
+0xE24A 0x7940 # 0 632B
+0xE24B 0x7960 # 0 632C
+0xE24C 0x7957 # 0 632D
+0xE24D 0x795F # 0 632E
+0xE24E 0x795A # 0 632F
+0xE24F 0x7955 # 0 6330
+0xE250 0x7953 # 0 6331
+0xE251 0x797A # 0 6332
+0xE252 0x797F # 0 6333
+0xE253 0x798A # 0 6334
+0xE254 0x799D # 0 6335
+0xE255 0x79A7 # 0 6336
+0xE256 0x9F4B # 0 6337
+0xE257 0x79AA # 0 6338
+0xE258 0x79AE # 0 6339
+0xE259 0x79B3 # 0 633A
+0xE25A 0x79B9 # 0 633B
+0xE25B 0x79BA # 0 633C
+0xE25C 0x79C9 # 0 633D
+0xE25D 0x79D5 # 0 633E
+0xE25E 0x79E7 # 0 633F
+0xE25F 0x79EC # 0 6340
+0xE260 0x79E1 # 0 6341
+0xE261 0x79E3 # 0 6342
+0xE262 0x7A08 # 0 6343
+0xE263 0x7A0D # 0 6344
+0xE264 0x7A18 # 0 6345
+0xE265 0x7A19 # 0 6346
+0xE266 0x7A20 # 0 6347
+0xE267 0x7A1F # 0 6348
+0xE268 0x7980 # 0 6349
+0xE269 0x7A31 # 0 634A
+0xE26A 0x7A3B # 0 634B
+0xE26B 0x7A3E # 0 634C
+0xE26C 0x7A37 # 0 634D
+0xE26D 0x7A43 # 0 634E
+0xE26E 0x7A57 # 0 634F
+0xE26F 0x7A49 # 0 6350
+0xE270 0x7A61 # 0 6351
+0xE271 0x7A62 # 0 6352
+0xE272 0x7A69 # 0 6353
+0xE273 0x9F9D # 0 6354
+0xE274 0x7A70 # 0 6355
+0xE275 0x7A79 # 0 6356
+0xE276 0x7A7D # 0 6357
+0xE277 0x7A88 # 0 6358
+0xE278 0x7A97 # 0 6359
+0xE279 0x7A95 # 0 635A
+0xE27A 0x7A98 # 0 635B
+0xE27B 0x7A96 # 0 635C
+0xE27C 0x7AA9 # 0 635D
+0xE27D 0x7AC8 # 0 635E
+0xE27E 0x7AB0 # 0 635F
+0xE280 0x7AB6 # 0 6360
+0xE281 0x7AC5 # 0 6361
+0xE282 0x7AC4 # 0 6362
+0xE283 0x7ABF # 0 6363
+0xE284 0x9083 # 0 6364
+0xE285 0x7AC7 # 0 6365
+0xE286 0x7ACA # 0 6366
+0xE287 0x7ACD # 0 6367
+0xE288 0x7ACF # 0 6368
+0xE289 0x7AD5 # 0 6369
+0xE28A 0x7AD3 # 0 636A
+0xE28B 0x7AD9 # 0 636B
+0xE28C 0x7ADA # 0 636C
+0xE28D 0x7ADD # 0 636D
+0xE28E 0x7AE1 # 0 636E
+0xE28F 0x7AE2 # 0 636F
+0xE290 0x7AE6 # 0 6370
+0xE291 0x7AED # 0 6371
+0xE292 0x7AF0 # 0 6372
+0xE293 0x7B02 # 0 6373
+0xE294 0x7B0F # 0 6374
+0xE295 0x7B0A # 0 6375
+0xE296 0x7B06 # 0 6376
+0xE297 0x7B33 # 0 6377
+0xE298 0x7B18 # 0 6378
+0xE299 0x7B19 # 0 6379
+0xE29A 0x7B1E # 0 637A
+0xE29B 0x7B35 # 0 637B
+0xE29C 0x7B28 # 0 637C
+0xE29D 0x7B36 # 0 637D
+0xE29E 0x7B50 # 0 637E
+0xE29F 0x7B7A # 0 6421
+0xE2A0 0x7B04 # 0 6422
+0xE2A1 0x7B4D # 0 6423
+0xE2A2 0x7B0B # 0 6424
+0xE2A3 0x7B4C # 0 6425
+0xE2A4 0x7B45 # 0 6426
+0xE2A5 0x7B75 # 0 6427
+0xE2A6 0x7B65 # 0 6428
+0xE2A7 0x7B74 # 0 6429
+0xE2A8 0x7B67 # 0 642A
+0xE2A9 0x7B70 # 0 642B
+0xE2AA 0x7B71 # 0 642C
+0xE2AB 0x7B6C # 0 642D
+0xE2AC 0x7B6E # 0 642E
+0xE2AD 0x7B9D # 0 642F
+0xE2AE 0x7B98 # 0 6430
+0xE2AF 0x7B9F # 0 6431
+0xE2B0 0x7B8D # 0 6432
+0xE2B1 0x7B9C # 0 6433
+0xE2B2 0x7B9A # 0 6434
+0xE2B3 0x7B8B # 0 6435
+0xE2B4 0x7B92 # 0 6436
+0xE2B5 0x7B8F # 0 6437
+0xE2B6 0x7B5D # 0 6438
+0xE2B7 0x7B99 # 0 6439
+0xE2B8 0x7BCB # 0 643A
+0xE2B9 0x7BC1 # 0 643B
+0xE2BA 0x7BCC # 0 643C
+0xE2BB 0x7BCF # 0 643D
+0xE2BC 0x7BB4 # 0 643E
+0xE2BD 0x7BC6 # 0 643F
+0xE2BE 0x7BDD # 0 6440
+0xE2BF 0x7BE9 # 0 6441
+0xE2C0 0x7C11 # 0 6442
+0xE2C1 0x7C14 # 0 6443
+0xE2C2 0x7BE6 # 0 6444
+0xE2C3 0x7BE5 # 0 6445
+0xE2C4 0x7C60 # 0 6446
+0xE2C5 0x7C00 # 0 6447
+0xE2C6 0x7C07 # 0 6448
+0xE2C7 0x7C13 # 0 6449
+0xE2C8 0x7BF3 # 0 644A
+0xE2C9 0x7BF7 # 0 644B
+0xE2CA 0x7C17 # 0 644C
+0xE2CB 0x7C0D # 0 644D
+0xE2CC 0x7BF6 # 0 644E
+0xE2CD 0x7C23 # 0 644F
+0xE2CE 0x7C27 # 0 6450
+0xE2CF 0x7C2A # 0 6451
+0xE2D0 0x7C1F # 0 6452
+0xE2D1 0x7C37 # 0 6453
+0xE2D2 0x7C2B # 0 6454
+0xE2D3 0x7C3D # 0 6455
+0xE2D4 0x7C4C # 0 6456
+0xE2D5 0x7C43 # 0 6457
+0xE2D6 0x7C54 # 0 6458
+0xE2D7 0x7C4F # 0 6459
+0xE2D8 0x7C40 # 0 645A
+0xE2D9 0x7C50 # 0 645B
+0xE2DA 0x7C58 # 0 645C
+0xE2DB 0x7C5F # 0 645D
+0xE2DC 0x7C64 # 0 645E
+0xE2DD 0x7C56 # 0 645F
+0xE2DE 0x7C65 # 0 6460
+0xE2DF 0x7C6C # 0 6461
+0xE2E0 0x7C75 # 0 6462
+0xE2E1 0x7C83 # 0 6463
+0xE2E2 0x7C90 # 0 6464
+0xE2E3 0x7CA4 # 0 6465
+0xE2E4 0x7CAD # 0 6466
+0xE2E5 0x7CA2 # 0 6467
+0xE2E6 0x7CAB # 0 6468
+0xE2E7 0x7CA1 # 0 6469
+0xE2E8 0x7CA8 # 0 646A
+0xE2E9 0x7CB3 # 0 646B
+0xE2EA 0x7CB2 # 0 646C
+0xE2EB 0x7CB1 # 0 646D
+0xE2EC 0x7CAE # 0 646E
+0xE2ED 0x7CB9 # 0 646F
+0xE2EE 0x7CBD # 0 6470
+0xE2EF 0x7CC0 # 0 6471
+0xE2F0 0x7CC5 # 0 6472
+0xE2F1 0x7CC2 # 0 6473
+0xE2F2 0x7CD8 # 0 6474
+0xE2F3 0x7CD2 # 0 6475
+0xE2F4 0x7CDC # 0 6476
+0xE2F5 0x7CE2 # 0 6477
+0xE2F6 0x9B3B # 0 6478
+0xE2F7 0x7CEF # 0 6479
+0xE2F8 0x7CF2 # 0 647A
+0xE2F9 0x7CF4 # 0 647B
+0xE2FA 0x7CF6 # 0 647C
+0xE2FB 0x7CFA # 0 647D
+0xE2FC 0x7D06 # 0 647E
+0xE340 0x7D02 # 0 6521
+0xE341 0x7D1C # 0 6522
+0xE342 0x7D15 # 0 6523
+0xE343 0x7D0A # 0 6524
+0xE344 0x7D45 # 0 6525
+0xE345 0x7D4B # 0 6526
+0xE346 0x7D2E # 0 6527
+0xE347 0x7D32 # 0 6528
+0xE348 0x7D3F # 0 6529
+0xE349 0x7D35 # 0 652A
+0xE34A 0x7D46 # 0 652B
+0xE34B 0x7D73 # 0 652C
+0xE34C 0x7D56 # 0 652D
+0xE34D 0x7D4E # 0 652E
+0xE34E 0x7D72 # 0 652F
+0xE34F 0x7D68 # 0 6530
+0xE350 0x7D6E # 0 6531
+0xE351 0x7D4F # 0 6532
+0xE352 0x7D63 # 0 6533
+0xE353 0x7D93 # 0 6534
+0xE354 0x7D89 # 0 6535
+0xE355 0x7D5B # 0 6536
+0xE356 0x7D8F # 0 6537
+0xE357 0x7D7D # 0 6538
+0xE358 0x7D9B # 0 6539
+0xE359 0x7DBA # 0 653A
+0xE35A 0x7DAE # 0 653B
+0xE35B 0x7DA3 # 0 653C
+0xE35C 0x7DB5 # 0 653D
+0xE35D 0x7DC7 # 0 653E
+0xE35E 0x7DBD # 0 653F
+0xE35F 0x7DAB # 0 6540
+0xE360 0x7E3D # 0 6541
+0xE361 0x7DA2 # 0 6542
+0xE362 0x7DAF # 0 6543
+0xE363 0x7DDC # 0 6544
+0xE364 0x7DB8 # 0 6545
+0xE365 0x7D9F # 0 6546
+0xE366 0x7DB0 # 0 6547
+0xE367 0x7DD8 # 0 6548
+0xE368 0x7DDD # 0 6549
+0xE369 0x7DE4 # 0 654A
+0xE36A 0x7DDE # 0 654B
+0xE36B 0x7DFB # 0 654C
+0xE36C 0x7DF2 # 0 654D
+0xE36D 0x7DE1 # 0 654E
+0xE36E 0x7E05 # 0 654F
+0xE36F 0x7E0A # 0 6550
+0xE370 0x7E23 # 0 6551
+0xE371 0x7E21 # 0 6552
+0xE372 0x7E12 # 0 6553
+0xE373 0x7E31 # 0 6554
+0xE374 0x7E1F # 0 6555
+0xE375 0x7E09 # 0 6556
+0xE376 0x7E0B # 0 6557
+0xE377 0x7E22 # 0 6558
+0xE378 0x7E46 # 0 6559
+0xE379 0x7E66 # 0 655A
+0xE37A 0x7E3B # 0 655B
+0xE37B 0x7E35 # 0 655C
+0xE37C 0x7E39 # 0 655D
+0xE37D 0x7E43 # 0 655E
+0xE37E 0x7E37 # 0 655F
+0xE380 0x7E32 # 0 6560
+0xE381 0x7E3A # 0 6561
+0xE382 0x7E67 # 0 6562
+0xE383 0x7E5D # 0 6563
+0xE384 0x7E56 # 0 6564
+0xE385 0x7E5E # 0 6565
+0xE386 0x7E59 # 0 6566
+0xE387 0x7E5A # 0 6567
+0xE388 0x7E79 # 0 6568
+0xE389 0x7E6A # 0 6569
+0xE38A 0x7E69 # 0 656A
+0xE38B 0x7E7C # 0 656B
+0xE38C 0x7E7B # 0 656C
+0xE38D 0x7E83 # 0 656D
+0xE38E 0x7DD5 # 0 656E
+0xE38F 0x7E7D # 0 656F
+0xE390 0x8FAE # 0 6570
+0xE391 0x7E7F # 0 6571
+0xE392 0x7E88 # 0 6572
+0xE393 0x7E89 # 0 6573
+0xE394 0x7E8C # 0 6574
+0xE395 0x7E92 # 0 6575
+0xE396 0x7E90 # 0 6576
+0xE397 0x7E93 # 0 6577
+0xE398 0x7E94 # 0 6578
+0xE399 0x7E96 # 0 6579
+0xE39A 0x7E8E # 0 657A
+0xE39B 0x7E9B # 0 657B
+0xE39C 0x7E9C # 0 657C
+0xE39D 0x7F38 # 0 657D
+0xE39E 0x7F3A # 0 657E
+0xE39F 0x7F45 # 0 6621
+0xE3A0 0x7F4C # 0 6622
+0xE3A1 0x7F4D # 0 6623
+0xE3A2 0x7F4E # 0 6624
+0xE3A3 0x7F50 # 0 6625
+0xE3A4 0x7F51 # 0 6626
+0xE3A5 0x7F55 # 0 6627
+0xE3A6 0x7F54 # 0 6628
+0xE3A7 0x7F58 # 0 6629
+0xE3A8 0x7F5F # 0 662A
+0xE3A9 0x7F60 # 0 662B
+0xE3AA 0x7F68 # 0 662C
+0xE3AB 0x7F69 # 0 662D
+0xE3AC 0x7F67 # 0 662E
+0xE3AD 0x7F78 # 0 662F
+0xE3AE 0x7F82 # 0 6630
+0xE3AF 0x7F86 # 0 6631
+0xE3B0 0x7F83 # 0 6632
+0xE3B1 0x7F88 # 0 6633
+0xE3B2 0x7F87 # 0 6634
+0xE3B3 0x7F8C # 0 6635
+0xE3B4 0x7F94 # 0 6636
+0xE3B5 0x7F9E # 0 6637
+0xE3B6 0x7F9D # 0 6638
+0xE3B7 0x7F9A # 0 6639
+0xE3B8 0x7FA3 # 0 663A
+0xE3B9 0x7FAF # 0 663B
+0xE3BA 0x7FB2 # 0 663C
+0xE3BB 0x7FB9 # 0 663D
+0xE3BC 0x7FAE # 0 663E
+0xE3BD 0x7FB6 # 0 663F
+0xE3BE 0x7FB8 # 0 6640
+0xE3BF 0x8B71 # 0 6641
+0xE3C0 0x7FC5 # 0 6642
+0xE3C1 0x7FC6 # 0 6643
+0xE3C2 0x7FCA # 0 6644
+0xE3C3 0x7FD5 # 0 6645
+0xE3C4 0x7FD4 # 0 6646
+0xE3C5 0x7FE1 # 0 6647
+0xE3C6 0x7FE6 # 0 6648
+0xE3C7 0x7FE9 # 0 6649
+0xE3C8 0x7FF3 # 0 664A
+0xE3C9 0x7FF9 # 0 664B
+0xE3CA 0x98DC # 0 664C
+0xE3CB 0x8006 # 0 664D
+0xE3CC 0x8004 # 0 664E
+0xE3CD 0x800B # 0 664F
+0xE3CE 0x8012 # 0 6650
+0xE3CF 0x8018 # 0 6651
+0xE3D0 0x8019 # 0 6652
+0xE3D1 0x801C # 0 6653
+0xE3D2 0x8021 # 0 6654
+0xE3D3 0x8028 # 0 6655
+0xE3D4 0x803F # 0 6656
+0xE3D5 0x803B # 0 6657
+0xE3D6 0x804A # 0 6658
+0xE3D7 0x8046 # 0 6659
+0xE3D8 0x8052 # 0 665A
+0xE3D9 0x8058 # 0 665B
+0xE3DA 0x805A # 0 665C
+0xE3DB 0x805F # 0 665D
+0xE3DC 0x8062 # 0 665E
+0xE3DD 0x8068 # 0 665F
+0xE3DE 0x8073 # 0 6660
+0xE3DF 0x8072 # 0 6661
+0xE3E0 0x8070 # 0 6662
+0xE3E1 0x8076 # 0 6663
+0xE3E2 0x8079 # 0 6664
+0xE3E3 0x807D # 0 6665
+0xE3E4 0x807F # 0 6666
+0xE3E5 0x8084 # 0 6667
+0xE3E6 0x8086 # 0 6668
+0xE3E7 0x8085 # 0 6669
+0xE3E8 0x809B # 0 666A
+0xE3E9 0x8093 # 0 666B
+0xE3EA 0x809A # 0 666C
+0xE3EB 0x80AD # 0 666D
+0xE3EC 0x5190 # 0 666E
+0xE3ED 0x80AC # 0 666F
+0xE3EE 0x80DB # 0 6670
+0xE3EF 0x80E5 # 0 6671
+0xE3F0 0x80D9 # 0 6672
+0xE3F1 0x80DD # 0 6673
+0xE3F2 0x80C4 # 0 6674
+0xE3F3 0x80DA # 0 6675
+0xE3F4 0x80D6 # 0 6676
+0xE3F5 0x8109 # 0 6677
+0xE3F6 0x80EF # 0 6678
+0xE3F7 0x80F1 # 0 6679
+0xE3F8 0x811B # 0 667A
+0xE3F9 0x8129 # 0 667B
+0xE3FA 0x8123 # 0 667C
+0xE3FB 0x812F # 0 667D
+0xE3FC 0x814B # 0 667E
+0xE440 0x968B # 0 6721
+0xE441 0x8146 # 0 6722
+0xE442 0x813E # 0 6723
+0xE443 0x8153 # 0 6724
+0xE444 0x8151 # 0 6725
+0xE445 0x80FC # 0 6726
+0xE446 0x8171 # 0 6727
+0xE447 0x816E # 0 6728
+0xE448 0x8165 # 0 6729
+0xE449 0x8166 # 0 672A
+0xE44A 0x8174 # 0 672B
+0xE44B 0x8183 # 0 672C
+0xE44C 0x8188 # 0 672D
+0xE44D 0x818A # 0 672E
+0xE44E 0x8180 # 0 672F
+0xE44F 0x8182 # 0 6730
+0xE450 0x81A0 # 0 6731
+0xE451 0x8195 # 0 6732
+0xE452 0x81A4 # 0 6733
+0xE453 0x81A3 # 0 6734
+0xE454 0x815F # 0 6735
+0xE455 0x8193 # 0 6736
+0xE456 0x81A9 # 0 6737
+0xE457 0x81B0 # 0 6738
+0xE458 0x81B5 # 0 6739
+0xE459 0x81BE # 0 673A
+0xE45A 0x81B8 # 0 673B
+0xE45B 0x81BD # 0 673C
+0xE45C 0x81C0 # 0 673D
+0xE45D 0x81C2 # 0 673E
+0xE45E 0x81BA # 0 673F
+0xE45F 0x81C9 # 0 6740
+0xE460 0x81CD # 0 6741
+0xE461 0x81D1 # 0 6742
+0xE462 0x81D9 # 0 6743
+0xE463 0x81D8 # 0 6744
+0xE464 0x81C8 # 0 6745
+0xE465 0x81DA # 0 6746
+0xE466 0x81DF # 0 6747
+0xE467 0x81E0 # 0 6748
+0xE468 0x81E7 # 0 6749
+0xE469 0x81FA # 0 674A
+0xE46A 0x81FB # 0 674B
+0xE46B 0x81FE # 0 674C
+0xE46C 0x8201 # 0 674D
+0xE46D 0x8202 # 0 674E
+0xE46E 0x8205 # 0 674F
+0xE46F 0x8207 # 0 6750
+0xE470 0x820A # 0 6751
+0xE471 0x820D # 0 6752
+0xE472 0x8210 # 0 6753
+0xE473 0x8216 # 0 6754
+0xE474 0x8229 # 0 6755
+0xE475 0x822B # 0 6756
+0xE476 0x8238 # 0 6757
+0xE477 0x8233 # 0 6758
+0xE478 0x8240 # 0 6759
+0xE479 0x8259 # 0 675A
+0xE47A 0x8258 # 0 675B
+0xE47B 0x825D # 0 675C
+0xE47C 0x825A # 0 675D
+0xE47D 0x825F # 0 675E
+0xE47E 0x8264 # 0 675F
+0xE480 0x8262 # 0 6760
+0xE481 0x8268 # 0 6761
+0xE482 0x826A # 0 6762
+0xE483 0x826B # 0 6763
+0xE484 0x822E # 0 6764
+0xE485 0x8271 # 0 6765
+0xE486 0x8277 # 0 6766
+0xE487 0x8278 # 0 6767
+0xE488 0x827E # 0 6768
+0xE489 0x828D # 0 6769
+0xE48A 0x8292 # 0 676A
+0xE48B 0x82AB # 0 676B
+0xE48C 0x829F # 0 676C
+0xE48D 0x82BB # 0 676D
+0xE48E 0x82AC # 0 676E
+0xE48F 0x82E1 # 0 676F
+0xE490 0x82E3 # 0 6770
+0xE491 0x82DF # 0 6771
+0xE492 0x82D2 # 0 6772
+0xE493 0x82F4 # 0 6773
+0xE494 0x82F3 # 0 6774
+0xE495 0x82FA # 0 6775
+0xE496 0x8393 # 0 6776
+0xE497 0x8303 # 0 6777
+0xE498 0x82FB # 0 6778
+0xE499 0x82F9 # 0 6779
+0xE49A 0x82DE # 0 677A
+0xE49B 0x8306 # 0 677B
+0xE49C 0x82DC # 0 677C
+0xE49D 0x8309 # 0 677D
+0xE49E 0x82D9 # 0 677E
+0xE49F 0x8335 # 0 6821
+0xE4A0 0x8334 # 0 6822
+0xE4A1 0x8316 # 0 6823
+0xE4A2 0x8332 # 0 6824
+0xE4A3 0x8331 # 0 6825
+0xE4A4 0x8340 # 0 6826
+0xE4A5 0x8339 # 0 6827
+0xE4A6 0x8350 # 0 6828
+0xE4A7 0x8345 # 0 6829
+0xE4A8 0x832F # 0 682A
+0xE4A9 0x832B # 0 682B
+0xE4AA 0x8317 # 0 682C
+0xE4AB 0x8318 # 0 682D
+0xE4AC 0x8385 # 0 682E
+0xE4AD 0x839A # 0 682F
+0xE4AE 0x83AA # 0 6830
+0xE4AF 0x839F # 0 6831
+0xE4B0 0x83A2 # 0 6832
+0xE4B1 0x8396 # 0 6833
+0xE4B2 0x8323 # 0 6834
+0xE4B3 0x838E # 0 6835
+0xE4B4 0x8387 # 0 6836
+0xE4B5 0x838A # 0 6837
+0xE4B6 0x837C # 0 6838
+0xE4B7 0x83B5 # 0 6839
+0xE4B8 0x8373 # 0 683A
+0xE4B9 0x8375 # 0 683B
+0xE4BA 0x83A0 # 0 683C
+0xE4BB 0x8389 # 0 683D
+0xE4BC 0x83A8 # 0 683E
+0xE4BD 0x83F4 # 0 683F
+0xE4BE 0x8413 # 0 6840
+0xE4BF 0x83EB # 0 6841
+0xE4C0 0x83CE # 0 6842
+0xE4C1 0x83FD # 0 6843
+0xE4C2 0x8403 # 0 6844
+0xE4C3 0x83D8 # 0 6845
+0xE4C4 0x840B # 0 6846
+0xE4C5 0x83C1 # 0 6847
+0xE4C6 0x83F7 # 0 6848
+0xE4C7 0x8407 # 0 6849
+0xE4C8 0x83E0 # 0 684A
+0xE4C9 0x83F2 # 0 684B
+0xE4CA 0x840D # 0 684C
+0xE4CB 0x8422 # 0 684D
+0xE4CC 0x8420 # 0 684E
+0xE4CD 0x83BD # 0 684F
+0xE4CE 0x8438 # 0 6850
+0xE4CF 0x8506 # 0 6851
+0xE4D0 0x83FB # 0 6852
+0xE4D1 0x846D # 0 6853
+0xE4D2 0x842A # 0 6854
+0xE4D3 0x843C # 0 6855
+0xE4D4 0x855A # 0 6856
+0xE4D5 0x8484 # 0 6857
+0xE4D6 0x8477 # 0 6858
+0xE4D7 0x846B # 0 6859
+0xE4D8 0x84AD # 0 685A
+0xE4D9 0x846E # 0 685B
+0xE4DA 0x8482 # 0 685C
+0xE4DB 0x8469 # 0 685D
+0xE4DC 0x8446 # 0 685E
+0xE4DD 0x842C # 0 685F
+0xE4DE 0x846F # 0 6860
+0xE4DF 0x8479 # 0 6861
+0xE4E0 0x8435 # 0 6862
+0xE4E1 0x84CA # 0 6863
+0xE4E2 0x8462 # 0 6864
+0xE4E3 0x84B9 # 0 6865
+0xE4E4 0x84BF # 0 6866
+0xE4E5 0x849F # 0 6867
+0xE4E6 0x84D9 # 0 6868
+0xE4E7 0x84CD # 0 6869
+0xE4E8 0x84BB # 0 686A
+0xE4E9 0x84DA # 0 686B
+0xE4EA 0x84D0 # 0 686C
+0xE4EB 0x84C1 # 0 686D
+0xE4EC 0x84C6 # 0 686E
+0xE4ED 0x84D6 # 0 686F
+0xE4EE 0x84A1 # 0 6870
+0xE4EF 0x8521 # 0 6871
+0xE4F0 0x84FF # 0 6872
+0xE4F1 0x84F4 # 0 6873
+0xE4F2 0x8517 # 0 6874
+0xE4F3 0x8518 # 0 6875
+0xE4F4 0x852C # 0 6876
+0xE4F5 0x851F # 0 6877
+0xE4F6 0x8515 # 0 6878
+0xE4F7 0x8514 # 0 6879
+0xE4F8 0x84FC # 0 687A
+0xE4F9 0x8540 # 0 687B
+0xE4FA 0x8563 # 0 687C
+0xE4FB 0x8558 # 0 687D
+0xE4FC 0x8548 # 0 687E
+0xE540 0x8541 # 0 6921
+0xE541 0x8602 # 0 6922
+0xE542 0x854B # 0 6923
+0xE543 0x8555 # 0 6924
+0xE544 0x8580 # 0 6925
+0xE545 0x85A4 # 0 6926
+0xE546 0x8588 # 0 6927
+0xE547 0x8591 # 0 6928
+0xE548 0x858A # 0 6929
+0xE549 0x85A8 # 0 692A
+0xE54A 0x856D # 0 692B
+0xE54B 0x8594 # 0 692C
+0xE54C 0x859B # 0 692D
+0xE54D 0x85EA # 0 692E
+0xE54E 0x8587 # 0 692F
+0xE54F 0x859C # 0 6930
+0xE550 0x8577 # 0 6931
+0xE551 0x857E # 0 6932
+0xE552 0x8590 # 0 6933
+0xE553 0x85C9 # 0 6934
+0xE554 0x85BA # 0 6935
+0xE555 0x85CF # 0 6936
+0xE556 0x85B9 # 0 6937
+0xE557 0x85D0 # 0 6938
+0xE558 0x85D5 # 0 6939
+0xE559 0x85DD # 0 693A
+0xE55A 0x85E5 # 0 693B
+0xE55B 0x85DC # 0 693C
+0xE55C 0x85F9 # 0 693D
+0xE55D 0x860A # 0 693E
+0xE55E 0x8613 # 0 693F
+0xE55F 0x860B # 0 6940
+0xE560 0x85FE # 0 6941
+0xE561 0x85FA # 0 6942
+0xE562 0x8606 # 0 6943
+0xE563 0x8622 # 0 6944
+0xE564 0x861A # 0 6945
+0xE565 0x8630 # 0 6946
+0xE566 0x863F # 0 6947
+0xE567 0x864D # 0 6948
+0xE568 0x4E55 # 0 6949
+0xE569 0x8654 # 0 694A
+0xE56A 0x865F # 0 694B
+0xE56B 0x8667 # 0 694C
+0xE56C 0x8671 # 0 694D
+0xE56D 0x8693 # 0 694E
+0xE56E 0x86A3 # 0 694F
+0xE56F 0x86A9 # 0 6950
+0xE570 0x86AA # 0 6951
+0xE571 0x868B # 0 6952
+0xE572 0x868C # 0 6953
+0xE573 0x86B6 # 0 6954
+0xE574 0x86AF # 0 6955
+0xE575 0x86C4 # 0 6956
+0xE576 0x86C6 # 0 6957
+0xE577 0x86B0 # 0 6958
+0xE578 0x86C9 # 0 6959
+0xE579 0x8823 # 0 695A
+0xE57A 0x86AB # 0 695B
+0xE57B 0x86D4 # 0 695C
+0xE57C 0x86DE # 0 695D
+0xE57D 0x86E9 # 0 695E
+0xE57E 0x86EC # 0 695F
+0xE580 0x86DF # 0 6960
+0xE581 0x86DB # 0 6961
+0xE582 0x86EF # 0 6962
+0xE583 0x8712 # 0 6963
+0xE584 0x8706 # 0 6964
+0xE585 0x8708 # 0 6965
+0xE586 0x8700 # 0 6966
+0xE587 0x8703 # 0 6967
+0xE588 0x86FB # 0 6968
+0xE589 0x8711 # 0 6969
+0xE58A 0x8709 # 0 696A
+0xE58B 0x870D # 0 696B
+0xE58C 0x86F9 # 0 696C
+0xE58D 0x870A # 0 696D
+0xE58E 0x8734 # 0 696E
+0xE58F 0x873F # 0 696F
+0xE590 0x8737 # 0 6970
+0xE591 0x873B # 0 6971
+0xE592 0x8725 # 0 6972
+0xE593 0x8729 # 0 6973
+0xE594 0x871A # 0 6974
+0xE595 0x8760 # 0 6975
+0xE596 0x875F # 0 6976
+0xE597 0x8778 # 0 6977
+0xE598 0x874C # 0 6978
+0xE599 0x874E # 0 6979
+0xE59A 0x8774 # 0 697A
+0xE59B 0x8757 # 0 697B
+0xE59C 0x8768 # 0 697C
+0xE59D 0x876E # 0 697D
+0xE59E 0x8759 # 0 697E
+0xE59F 0x8753 # 0 6A21
+0xE5A0 0x8763 # 0 6A22
+0xE5A1 0x876A # 0 6A23
+0xE5A2 0x8805 # 0 6A24
+0xE5A3 0x87A2 # 0 6A25
+0xE5A4 0x879F # 0 6A26
+0xE5A5 0x8782 # 0 6A27
+0xE5A6 0x87AF # 0 6A28
+0xE5A7 0x87CB # 0 6A29
+0xE5A8 0x87BD # 0 6A2A
+0xE5A9 0x87C0 # 0 6A2B
+0xE5AA 0x87D0 # 0 6A2C
+0xE5AB 0x96D6 # 0 6A2D
+0xE5AC 0x87AB # 0 6A2E
+0xE5AD 0x87C4 # 0 6A2F
+0xE5AE 0x87B3 # 0 6A30
+0xE5AF 0x87C7 # 0 6A31
+0xE5B0 0x87C6 # 0 6A32
+0xE5B1 0x87BB # 0 6A33
+0xE5B2 0x87EF # 0 6A34
+0xE5B3 0x87F2 # 0 6A35
+0xE5B4 0x87E0 # 0 6A36
+0xE5B5 0x880F # 0 6A37
+0xE5B6 0x880D # 0 6A38
+0xE5B7 0x87FE # 0 6A39
+0xE5B8 0x87F6 # 0 6A3A
+0xE5B9 0x87F7 # 0 6A3B
+0xE5BA 0x880E # 0 6A3C
+0xE5BB 0x87D2 # 0 6A3D
+0xE5BC 0x8811 # 0 6A3E
+0xE5BD 0x8816 # 0 6A3F
+0xE5BE 0x8815 # 0 6A40
+0xE5BF 0x8822 # 0 6A41
+0xE5C0 0x8821 # 0 6A42
+0xE5C1 0x8831 # 0 6A43
+0xE5C2 0x8836 # 0 6A44
+0xE5C3 0x8839 # 0 6A45
+0xE5C4 0x8827 # 0 6A46
+0xE5C5 0x883B # 0 6A47
+0xE5C6 0x8844 # 0 6A48
+0xE5C7 0x8842 # 0 6A49
+0xE5C8 0x8852 # 0 6A4A
+0xE5C9 0x8859 # 0 6A4B
+0xE5CA 0x885E # 0 6A4C
+0xE5CB 0x8862 # 0 6A4D
+0xE5CC 0x886B # 0 6A4E
+0xE5CD 0x8881 # 0 6A4F
+0xE5CE 0x887E # 0 6A50
+0xE5CF 0x889E # 0 6A51
+0xE5D0 0x8875 # 0 6A52
+0xE5D1 0x887D # 0 6A53
+0xE5D2 0x88B5 # 0 6A54
+0xE5D3 0x8872 # 0 6A55
+0xE5D4 0x8882 # 0 6A56
+0xE5D5 0x8897 # 0 6A57
+0xE5D6 0x8892 # 0 6A58
+0xE5D7 0x88AE # 0 6A59
+0xE5D8 0x8899 # 0 6A5A
+0xE5D9 0x88A2 # 0 6A5B
+0xE5DA 0x888D # 0 6A5C
+0xE5DB 0x88A4 # 0 6A5D
+0xE5DC 0x88B0 # 0 6A5E
+0xE5DD 0x88BF # 0 6A5F
+0xE5DE 0x88B1 # 0 6A60
+0xE5DF 0x88C3 # 0 6A61
+0xE5E0 0x88C4 # 0 6A62
+0xE5E1 0x88D4 # 0 6A63
+0xE5E2 0x88D8 # 0 6A64
+0xE5E3 0x88D9 # 0 6A65
+0xE5E4 0x88DD # 0 6A66
+0xE5E5 0x88F9 # 0 6A67
+0xE5E6 0x8902 # 0 6A68
+0xE5E7 0x88FC # 0 6A69
+0xE5E8 0x88F4 # 0 6A6A
+0xE5E9 0x88E8 # 0 6A6B
+0xE5EA 0x88F2 # 0 6A6C
+0xE5EB 0x8904 # 0 6A6D
+0xE5EC 0x890C # 0 6A6E
+0xE5ED 0x890A # 0 6A6F
+0xE5EE 0x8913 # 0 6A70
+0xE5EF 0x8943 # 0 6A71
+0xE5F0 0x891E # 0 6A72
+0xE5F1 0x8925 # 0 6A73
+0xE5F2 0x892A # 0 6A74
+0xE5F3 0x892B # 0 6A75
+0xE5F4 0x8941 # 0 6A76
+0xE5F5 0x8944 # 0 6A77
+0xE5F6 0x893B # 0 6A78
+0xE5F7 0x8936 # 0 6A79
+0xE5F8 0x8938 # 0 6A7A
+0xE5F9 0x894C # 0 6A7B
+0xE5FA 0x891D # 0 6A7C
+0xE5FB 0x8960 # 0 6A7D
+0xE5FC 0x895E # 0 6A7E
+0xE640 0x8966 # 0 6B21
+0xE641 0x8964 # 0 6B22
+0xE642 0x896D # 0 6B23
+0xE643 0x896A # 0 6B24
+0xE644 0x896F # 0 6B25
+0xE645 0x8974 # 0 6B26
+0xE646 0x8977 # 0 6B27
+0xE647 0x897E # 0 6B28
+0xE648 0x8983 # 0 6B29
+0xE649 0x8988 # 0 6B2A
+0xE64A 0x898A # 0 6B2B
+0xE64B 0x8993 # 0 6B2C
+0xE64C 0x8998 # 0 6B2D
+0xE64D 0x89A1 # 0 6B2E
+0xE64E 0x89A9 # 0 6B2F
+0xE64F 0x89A6 # 0 6B30
+0xE650 0x89AC # 0 6B31
+0xE651 0x89AF # 0 6B32
+0xE652 0x89B2 # 0 6B33
+0xE653 0x89BA # 0 6B34
+0xE654 0x89BD # 0 6B35
+0xE655 0x89BF # 0 6B36
+0xE656 0x89C0 # 0 6B37
+0xE657 0x89DA # 0 6B38
+0xE658 0x89DC # 0 6B39
+0xE659 0x89DD # 0 6B3A
+0xE65A 0x89E7 # 0 6B3B
+0xE65B 0x89F4 # 0 6B3C
+0xE65C 0x89F8 # 0 6B3D
+0xE65D 0x8A03 # 0 6B3E
+0xE65E 0x8A16 # 0 6B3F
+0xE65F 0x8A10 # 0 6B40
+0xE660 0x8A0C # 0 6B41
+0xE661 0x8A1B # 0 6B42
+0xE662 0x8A1D # 0 6B43
+0xE663 0x8A25 # 0 6B44
+0xE664 0x8A36 # 0 6B45
+0xE665 0x8A41 # 0 6B46
+0xE666 0x8A5B # 0 6B47
+0xE667 0x8A52 # 0 6B48
+0xE668 0x8A46 # 0 6B49
+0xE669 0x8A48 # 0 6B4A
+0xE66A 0x8A7C # 0 6B4B
+0xE66B 0x8A6D # 0 6B4C
+0xE66C 0x8A6C # 0 6B4D
+0xE66D 0x8A62 # 0 6B4E
+0xE66E 0x8A85 # 0 6B4F
+0xE66F 0x8A82 # 0 6B50
+0xE670 0x8A84 # 0 6B51
+0xE671 0x8AA8 # 0 6B52
+0xE672 0x8AA1 # 0 6B53
+0xE673 0x8A91 # 0 6B54
+0xE674 0x8AA5 # 0 6B55
+0xE675 0x8AA6 # 0 6B56
+0xE676 0x8A9A # 0 6B57
+0xE677 0x8AA3 # 0 6B58
+0xE678 0x8AC4 # 0 6B59
+0xE679 0x8ACD # 0 6B5A
+0xE67A 0x8AC2 # 0 6B5B
+0xE67B 0x8ADA # 0 6B5C
+0xE67C 0x8AEB # 0 6B5D
+0xE67D 0x8AF3 # 0 6B5E
+0xE67E 0x8AE7 # 0 6B5F
+0xE680 0x8AE4 # 0 6B60
+0xE681 0x8AF1 # 0 6B61
+0xE682 0x8B14 # 0 6B62
+0xE683 0x8AE0 # 0 6B63
+0xE684 0x8AE2 # 0 6B64
+0xE685 0x8AF7 # 0 6B65
+0xE686 0x8ADE # 0 6B66
+0xE687 0x8ADB # 0 6B67
+0xE688 0x8B0C # 0 6B68
+0xE689 0x8B07 # 0 6B69
+0xE68A 0x8B1A # 0 6B6A
+0xE68B 0x8AE1 # 0 6B6B
+0xE68C 0x8B16 # 0 6B6C
+0xE68D 0x8B10 # 0 6B6D
+0xE68E 0x8B17 # 0 6B6E
+0xE68F 0x8B20 # 0 6B6F
+0xE690 0x8B33 # 0 6B70
+0xE691 0x97AB # 0 6B71
+0xE692 0x8B26 # 0 6B72
+0xE693 0x8B2B # 0 6B73
+0xE694 0x8B3E # 0 6B74
+0xE695 0x8B28 # 0 6B75
+0xE696 0x8B41 # 0 6B76
+0xE697 0x8B4C # 0 6B77
+0xE698 0x8B4F # 0 6B78
+0xE699 0x8B4E # 0 6B79
+0xE69A 0x8B49 # 0 6B7A
+0xE69B 0x8B56 # 0 6B7B
+0xE69C 0x8B5B # 0 6B7C
+0xE69D 0x8B5A # 0 6B7D
+0xE69E 0x8B6B # 0 6B7E
+0xE69F 0x8B5F # 0 6C21
+0xE6A0 0x8B6C # 0 6C22
+0xE6A1 0x8B6F # 0 6C23
+0xE6A2 0x8B74 # 0 6C24
+0xE6A3 0x8B7D # 0 6C25
+0xE6A4 0x8B80 # 0 6C26
+0xE6A5 0x8B8C # 0 6C27
+0xE6A6 0x8B8E # 0 6C28
+0xE6A7 0x8B92 # 0 6C29
+0xE6A8 0x8B93 # 0 6C2A
+0xE6A9 0x8B96 # 0 6C2B
+0xE6AA 0x8B99 # 0 6C2C
+0xE6AB 0x8B9A # 0 6C2D
+0xE6AC 0x8C3A # 0 6C2E
+0xE6AD 0x8C41 # 0 6C2F
+0xE6AE 0x8C3F # 0 6C30
+0xE6AF 0x8C48 # 0 6C31
+0xE6B0 0x8C4C # 0 6C32
+0xE6B1 0x8C4E # 0 6C33
+0xE6B2 0x8C50 # 0 6C34
+0xE6B3 0x8C55 # 0 6C35
+0xE6B4 0x8C62 # 0 6C36
+0xE6B5 0x8C6C # 0 6C37
+0xE6B6 0x8C78 # 0 6C38
+0xE6B7 0x8C7A # 0 6C39
+0xE6B8 0x8C82 # 0 6C3A
+0xE6B9 0x8C89 # 0 6C3B
+0xE6BA 0x8C85 # 0 6C3C
+0xE6BB 0x8C8A # 0 6C3D
+0xE6BC 0x8C8D # 0 6C3E
+0xE6BD 0x8C8E # 0 6C3F
+0xE6BE 0x8C94 # 0 6C40
+0xE6BF 0x8C7C # 0 6C41
+0xE6C0 0x8C98 # 0 6C42
+0xE6C1 0x621D # 0 6C43
+0xE6C2 0x8CAD # 0 6C44
+0xE6C3 0x8CAA # 0 6C45
+0xE6C4 0x8CBD # 0 6C46
+0xE6C5 0x8CB2 # 0 6C47
+0xE6C6 0x8CB3 # 0 6C48
+0xE6C7 0x8CAE # 0 6C49
+0xE6C8 0x8CB6 # 0 6C4A
+0xE6C9 0x8CC8 # 0 6C4B
+0xE6CA 0x8CC1 # 0 6C4C
+0xE6CB 0x8CE4 # 0 6C4D
+0xE6CC 0x8CE3 # 0 6C4E
+0xE6CD 0x8CDA # 0 6C4F
+0xE6CE 0x8CFD # 0 6C50
+0xE6CF 0x8CFA # 0 6C51
+0xE6D0 0x8CFB # 0 6C52
+0xE6D1 0x8D04 # 0 6C53
+0xE6D2 0x8D05 # 0 6C54
+0xE6D3 0x8D0A # 0 6C55
+0xE6D4 0x8D07 # 0 6C56
+0xE6D5 0x8D0F # 0 6C57
+0xE6D6 0x8D0D # 0 6C58
+0xE6D7 0x8D10 # 0 6C59
+0xE6D8 0x9F4E # 0 6C5A
+0xE6D9 0x8D13 # 0 6C5B
+0xE6DA 0x8CCD # 0 6C5C
+0xE6DB 0x8D14 # 0 6C5D
+0xE6DC 0x8D16 # 0 6C5E
+0xE6DD 0x8D67 # 0 6C5F
+0xE6DE 0x8D6D # 0 6C60
+0xE6DF 0x8D71 # 0 6C61
+0xE6E0 0x8D73 # 0 6C62
+0xE6E1 0x8D81 # 0 6C63
+0xE6E2 0x8D99 # 0 6C64
+0xE6E3 0x8DC2 # 0 6C65
+0xE6E4 0x8DBE # 0 6C66
+0xE6E5 0x8DBA # 0 6C67
+0xE6E6 0x8DCF # 0 6C68
+0xE6E7 0x8DDA # 0 6C69
+0xE6E8 0x8DD6 # 0 6C6A
+0xE6E9 0x8DCC # 0 6C6B
+0xE6EA 0x8DDB # 0 6C6C
+0xE6EB 0x8DCB # 0 6C6D
+0xE6EC 0x8DEA # 0 6C6E
+0xE6ED 0x8DEB # 0 6C6F
+0xE6EE 0x8DDF # 0 6C70
+0xE6EF 0x8DE3 # 0 6C71
+0xE6F0 0x8DFC # 0 6C72
+0xE6F1 0x8E08 # 0 6C73
+0xE6F2 0x8E09 # 0 6C74
+0xE6F3 0x8DFF # 0 6C75
+0xE6F4 0x8E1D # 0 6C76
+0xE6F5 0x8E1E # 0 6C77
+0xE6F6 0x8E10 # 0 6C78
+0xE6F7 0x8E1F # 0 6C79
+0xE6F8 0x8E42 # 0 6C7A
+0xE6F9 0x8E35 # 0 6C7B
+0xE6FA 0x8E30 # 0 6C7C
+0xE6FB 0x8E34 # 0 6C7D
+0xE6FC 0x8E4A # 0 6C7E
+0xE740 0x8E47 # 0 6D21
+0xE741 0x8E49 # 0 6D22
+0xE742 0x8E4C # 0 6D23
+0xE743 0x8E50 # 0 6D24
+0xE744 0x8E48 # 0 6D25
+0xE745 0x8E59 # 0 6D26
+0xE746 0x8E64 # 0 6D27
+0xE747 0x8E60 # 0 6D28
+0xE748 0x8E2A # 0 6D29
+0xE749 0x8E63 # 0 6D2A
+0xE74A 0x8E55 # 0 6D2B
+0xE74B 0x8E76 # 0 6D2C
+0xE74C 0x8E72 # 0 6D2D
+0xE74D 0x8E7C # 0 6D2E
+0xE74E 0x8E81 # 0 6D2F
+0xE74F 0x8E87 # 0 6D30
+0xE750 0x8E85 # 0 6D31
+0xE751 0x8E84 # 0 6D32
+0xE752 0x8E8B # 0 6D33
+0xE753 0x8E8A # 0 6D34
+0xE754 0x8E93 # 0 6D35
+0xE755 0x8E91 # 0 6D36
+0xE756 0x8E94 # 0 6D37
+0xE757 0x8E99 # 0 6D38
+0xE758 0x8EAA # 0 6D39
+0xE759 0x8EA1 # 0 6D3A
+0xE75A 0x8EAC # 0 6D3B
+0xE75B 0x8EB0 # 0 6D3C
+0xE75C 0x8EC6 # 0 6D3D
+0xE75D 0x8EB1 # 0 6D3E
+0xE75E 0x8EBE # 0 6D3F
+0xE75F 0x8EC5 # 0 6D40
+0xE760 0x8EC8 # 0 6D41
+0xE761 0x8ECB # 0 6D42
+0xE762 0x8EDB # 0 6D43
+0xE763 0x8EE3 # 0 6D44
+0xE764 0x8EFC # 0 6D45
+0xE765 0x8EFB # 0 6D46
+0xE766 0x8EEB # 0 6D47
+0xE767 0x8EFE # 0 6D48
+0xE768 0x8F0A # 0 6D49
+0xE769 0x8F05 # 0 6D4A
+0xE76A 0x8F15 # 0 6D4B
+0xE76B 0x8F12 # 0 6D4C
+0xE76C 0x8F19 # 0 6D4D
+0xE76D 0x8F13 # 0 6D4E
+0xE76E 0x8F1C # 0 6D4F
+0xE76F 0x8F1F # 0 6D50
+0xE770 0x8F1B # 0 6D51
+0xE771 0x8F0C # 0 6D52
+0xE772 0x8F26 # 0 6D53
+0xE773 0x8F33 # 0 6D54
+0xE774 0x8F3B # 0 6D55
+0xE775 0x8F39 # 0 6D56
+0xE776 0x8F45 # 0 6D57
+0xE777 0x8F42 # 0 6D58
+0xE778 0x8F3E # 0 6D59
+0xE779 0x8F4C # 0 6D5A
+0xE77A 0x8F49 # 0 6D5B
+0xE77B 0x8F46 # 0 6D5C
+0xE77C 0x8F4E # 0 6D5D
+0xE77D 0x8F57 # 0 6D5E
+0xE77E 0x8F5C # 0 6D5F
+0xE780 0x8F62 # 0 6D60
+0xE781 0x8F63 # 0 6D61
+0xE782 0x8F64 # 0 6D62
+0xE783 0x8F9C # 0 6D63
+0xE784 0x8F9F # 0 6D64
+0xE785 0x8FA3 # 0 6D65
+0xE786 0x8FAD # 0 6D66
+0xE787 0x8FAF # 0 6D67
+0xE788 0x8FB7 # 0 6D68
+0xE789 0x8FDA # 0 6D69
+0xE78A 0x8FE5 # 0 6D6A
+0xE78B 0x8FE2 # 0 6D6B
+0xE78C 0x8FEA # 0 6D6C
+0xE78D 0x8FEF # 0 6D6D
+0xE78E 0x9087 # 0 6D6E
+0xE78F 0x8FF4 # 0 6D6F
+0xE790 0x9005 # 0 6D70
+0xE791 0x8FF9 # 0 6D71
+0xE792 0x8FFA # 0 6D72
+0xE793 0x9011 # 0 6D73
+0xE794 0x9015 # 0 6D74
+0xE795 0x9021 # 0 6D75
+0xE796 0x900D # 0 6D76
+0xE797 0x901E # 0 6D77
+0xE798 0x9016 # 0 6D78
+0xE799 0x900B # 0 6D79
+0xE79A 0x9027 # 0 6D7A
+0xE79B 0x9036 # 0 6D7B
+0xE79C 0x9035 # 0 6D7C
+0xE79D 0x9039 # 0 6D7D
+0xE79E 0x8FF8 # 0 6D7E
+0xE79F 0x904F # 0 6E21
+0xE7A0 0x9050 # 0 6E22
+0xE7A1 0x9051 # 0 6E23
+0xE7A2 0x9052 # 0 6E24
+0xE7A3 0x900E # 0 6E25
+0xE7A4 0x9049 # 0 6E26
+0xE7A5 0x903E # 0 6E27
+0xE7A6 0x9056 # 0 6E28
+0xE7A7 0x9058 # 0 6E29
+0xE7A8 0x905E # 0 6E2A
+0xE7A9 0x9068 # 0 6E2B
+0xE7AA 0x906F # 0 6E2C
+0xE7AB 0x9076 # 0 6E2D
+0xE7AC 0x96A8 # 0 6E2E
+0xE7AD 0x9072 # 0 6E2F
+0xE7AE 0x9082 # 0 6E30
+0xE7AF 0x907D # 0 6E31
+0xE7B0 0x9081 # 0 6E32
+0xE7B1 0x9080 # 0 6E33
+0xE7B2 0x908A # 0 6E34
+0xE7B3 0x9089 # 0 6E35
+0xE7B4 0x908F # 0 6E36
+0xE7B5 0x90A8 # 0 6E37
+0xE7B6 0x90AF # 0 6E38
+0xE7B7 0x90B1 # 0 6E39
+0xE7B8 0x90B5 # 0 6E3A
+0xE7B9 0x90E2 # 0 6E3B
+0xE7BA 0x90E4 # 0 6E3C
+0xE7BB 0x6248 # 0 6E3D
+0xE7BC 0x90DB # 0 6E3E
+0xE7BD 0x9102 # 0 6E3F
+0xE7BE 0x9112 # 0 6E40
+0xE7BF 0x9119 # 0 6E41
+0xE7C0 0x9132 # 0 6E42
+0xE7C1 0x9130 # 0 6E43
+0xE7C2 0x914A # 0 6E44
+0xE7C3 0x9156 # 0 6E45
+0xE7C4 0x9158 # 0 6E46
+0xE7C5 0x9163 # 0 6E47
+0xE7C6 0x9165 # 0 6E48
+0xE7C7 0x9169 # 0 6E49
+0xE7C8 0x9173 # 0 6E4A
+0xE7C9 0x9172 # 0 6E4B
+0xE7CA 0x918B # 0 6E4C
+0xE7CB 0x9189 # 0 6E4D
+0xE7CC 0x9182 # 0 6E4E
+0xE7CD 0x91A2 # 0 6E4F
+0xE7CE 0x91AB # 0 6E50
+0xE7CF 0x91AF # 0 6E51
+0xE7D0 0x91AA # 0 6E52
+0xE7D1 0x91B5 # 0 6E53
+0xE7D2 0x91B4 # 0 6E54
+0xE7D3 0x91BA # 0 6E55
+0xE7D4 0x91C0 # 0 6E56
+0xE7D5 0x91C1 # 0 6E57
+0xE7D6 0x91C9 # 0 6E58
+0xE7D7 0x91CB # 0 6E59
+0xE7D8 0x91D0 # 0 6E5A
+0xE7D9 0x91D6 # 0 6E5B
+0xE7DA 0x91DF # 0 6E5C
+0xE7DB 0x91E1 # 0 6E5D
+0xE7DC 0x91DB # 0 6E5E
+0xE7DD 0x91FC # 0 6E5F
+0xE7DE 0x91F5 # 0 6E60
+0xE7DF 0x91F6 # 0 6E61
+0xE7E0 0x921E # 0 6E62
+0xE7E1 0x91FF # 0 6E63
+0xE7E2 0x9214 # 0 6E64
+0xE7E3 0x922C # 0 6E65
+0xE7E4 0x9215 # 0 6E66
+0xE7E5 0x9211 # 0 6E67
+0xE7E6 0x925E # 0 6E68
+0xE7E7 0x9257 # 0 6E69
+0xE7E8 0x9245 # 0 6E6A
+0xE7E9 0x9249 # 0 6E6B
+0xE7EA 0x9264 # 0 6E6C
+0xE7EB 0x9248 # 0 6E6D
+0xE7EC 0x9295 # 0 6E6E
+0xE7ED 0x923F # 0 6E6F
+0xE7EE 0x924B # 0 6E70
+0xE7EF 0x9250 # 0 6E71
+0xE7F0 0x929C # 0 6E72
+0xE7F1 0x9296 # 0 6E73
+0xE7F2 0x9293 # 0 6E74
+0xE7F3 0x929B # 0 6E75
+0xE7F4 0x925A # 0 6E76
+0xE7F5 0x92CF # 0 6E77
+0xE7F6 0x92B9 # 0 6E78
+0xE7F7 0x92B7 # 0 6E79
+0xE7F8 0x92E9 # 0 6E7A
+0xE7F9 0x930F # 0 6E7B
+0xE7FA 0x92FA # 0 6E7C
+0xE7FB 0x9344 # 0 6E7D
+0xE7FC 0x932E # 0 6E7E
+0xE840 0x9319 # 0 6F21
+0xE841 0x9322 # 0 6F22
+0xE842 0x931A # 0 6F23
+0xE843 0x9323 # 0 6F24
+0xE844 0x933A # 0 6F25
+0xE845 0x9335 # 0 6F26
+0xE846 0x933B # 0 6F27
+0xE847 0x935C # 0 6F28
+0xE848 0x9360 # 0 6F29
+0xE849 0x937C # 0 6F2A
+0xE84A 0x936E # 0 6F2B
+0xE84B 0x9356 # 0 6F2C
+0xE84C 0x93B0 # 0 6F2D
+0xE84D 0x93AC # 0 6F2E
+0xE84E 0x93AD # 0 6F2F
+0xE84F 0x9394 # 0 6F30
+0xE850 0x93B9 # 0 6F31
+0xE851 0x93D6 # 0 6F32
+0xE852 0x93D7 # 0 6F33
+0xE853 0x93E8 # 0 6F34
+0xE854 0x93E5 # 0 6F35
+0xE855 0x93D8 # 0 6F36
+0xE856 0x93C3 # 0 6F37
+0xE857 0x93DD # 0 6F38
+0xE858 0x93D0 # 0 6F39
+0xE859 0x93C8 # 0 6F3A
+0xE85A 0x93E4 # 0 6F3B
+0xE85B 0x941A # 0 6F3C
+0xE85C 0x9414 # 0 6F3D
+0xE85D 0x9413 # 0 6F3E
+0xE85E 0x9403 # 0 6F3F
+0xE85F 0x9407 # 0 6F40
+0xE860 0x9410 # 0 6F41
+0xE861 0x9436 # 0 6F42
+0xE862 0x942B # 0 6F43
+0xE863 0x9435 # 0 6F44
+0xE864 0x9421 # 0 6F45
+0xE865 0x943A # 0 6F46
+0xE866 0x9441 # 0 6F47
+0xE867 0x9452 # 0 6F48
+0xE868 0x9444 # 0 6F49
+0xE869 0x945B # 0 6F4A
+0xE86A 0x9460 # 0 6F4B
+0xE86B 0x9462 # 0 6F4C
+0xE86C 0x945E # 0 6F4D
+0xE86D 0x946A # 0 6F4E
+0xE86E 0x9229 # 0 6F4F
+0xE86F 0x9470 # 0 6F50
+0xE870 0x9475 # 0 6F51
+0xE871 0x9477 # 0 6F52
+0xE872 0x947D # 0 6F53
+0xE873 0x945A # 0 6F54
+0xE874 0x947C # 0 6F55
+0xE875 0x947E # 0 6F56
+0xE876 0x9481 # 0 6F57
+0xE877 0x947F # 0 6F58
+0xE878 0x9582 # 0 6F59
+0xE879 0x9587 # 0 6F5A
+0xE87A 0x958A # 0 6F5B
+0xE87B 0x9594 # 0 6F5C
+0xE87C 0x9596 # 0 6F5D
+0xE87D 0x9598 # 0 6F5E
+0xE87E 0x9599 # 0 6F5F
+0xE880 0x95A0 # 0 6F60
+0xE881 0x95A8 # 0 6F61
+0xE882 0x95A7 # 0 6F62
+0xE883 0x95AD # 0 6F63
+0xE884 0x95BC # 0 6F64
+0xE885 0x95BB # 0 6F65
+0xE886 0x95B9 # 0 6F66
+0xE887 0x95BE # 0 6F67
+0xE888 0x95CA # 0 6F68
+0xE889 0x6FF6 # 0 6F69
+0xE88A 0x95C3 # 0 6F6A
+0xE88B 0x95CD # 0 6F6B
+0xE88C 0x95CC # 0 6F6C
+0xE88D 0x95D5 # 0 6F6D
+0xE88E 0x95D4 # 0 6F6E
+0xE88F 0x95D6 # 0 6F6F
+0xE890 0x95DC # 0 6F70
+0xE891 0x95E1 # 0 6F71
+0xE892 0x95E5 # 0 6F72
+0xE893 0x95E2 # 0 6F73
+0xE894 0x9621 # 0 6F74
+0xE895 0x9628 # 0 6F75
+0xE896 0x962E # 0 6F76
+0xE897 0x962F # 0 6F77
+0xE898 0x9642 # 0 6F78
+0xE899 0x964C # 0 6F79
+0xE89A 0x964F # 0 6F7A
+0xE89B 0x964B # 0 6F7B
+0xE89C 0x9677 # 0 6F7C
+0xE89D 0x965C # 0 6F7D
+0xE89E 0x965E # 0 6F7E
+0xE89F 0x965D # 0 7021
+0xE8A0 0x965F # 0 7022
+0xE8A1 0x9666 # 0 7023
+0xE8A2 0x9672 # 0 7024
+0xE8A3 0x966C # 0 7025
+0xE8A4 0x968D # 0 7026
+0xE8A5 0x9698 # 0 7027
+0xE8A6 0x9695 # 0 7028
+0xE8A7 0x9697 # 0 7029
+0xE8A8 0x96AA # 0 702A
+0xE8A9 0x96A7 # 0 702B
+0xE8AA 0x96B1 # 0 702C
+0xE8AB 0x96B2 # 0 702D
+0xE8AC 0x96B0 # 0 702E
+0xE8AD 0x96B4 # 0 702F
+0xE8AE 0x96B6 # 0 7030
+0xE8AF 0x96B8 # 0 7031
+0xE8B0 0x96B9 # 0 7032
+0xE8B1 0x96CE # 0 7033
+0xE8B2 0x96CB # 0 7034
+0xE8B3 0x96C9 # 0 7035
+0xE8B4 0x96CD # 0 7036
+0xE8B5 0x894D # 0 7037
+0xE8B6 0x96DC # 0 7038
+0xE8B7 0x970D # 0 7039
+0xE8B8 0x96D5 # 0 703A
+0xE8B9 0x96F9 # 0 703B
+0xE8BA 0x9704 # 0 703C
+0xE8BB 0x9706 # 0 703D
+0xE8BC 0x9708 # 0 703E
+0xE8BD 0x9713 # 0 703F
+0xE8BE 0x970E # 0 7040
+0xE8BF 0x9711 # 0 7041
+0xE8C0 0x970F # 0 7042
+0xE8C1 0x9716 # 0 7043
+0xE8C2 0x9719 # 0 7044
+0xE8C3 0x9724 # 0 7045
+0xE8C4 0x972A # 0 7046
+0xE8C5 0x9730 # 0 7047
+0xE8C6 0x9739 # 0 7048
+0xE8C7 0x973D # 0 7049
+0xE8C8 0x973E # 0 704A
+0xE8C9 0x9744 # 0 704B
+0xE8CA 0x9746 # 0 704C
+0xE8CB 0x9748 # 0 704D
+0xE8CC 0x9742 # 0 704E
+0xE8CD 0x9749 # 0 704F
+0xE8CE 0x975C # 0 7050
+0xE8CF 0x9760 # 0 7051
+0xE8D0 0x9764 # 0 7052
+0xE8D1 0x9766 # 0 7053
+0xE8D2 0x9768 # 0 7054
+0xE8D3 0x52D2 # 0 7055
+0xE8D4 0x976B # 0 7056
+0xE8D5 0x9771 # 0 7057
+0xE8D6 0x9779 # 0 7058
+0xE8D7 0x9785 # 0 7059
+0xE8D8 0x977C # 0 705A
+0xE8D9 0x9781 # 0 705B
+0xE8DA 0x977A # 0 705C
+0xE8DB 0x9786 # 0 705D
+0xE8DC 0x978B # 0 705E
+0xE8DD 0x978F # 0 705F
+0xE8DE 0x9790 # 0 7060
+0xE8DF 0x979C # 0 7061
+0xE8E0 0x97A8 # 0 7062
+0xE8E1 0x97A6 # 0 7063
+0xE8E2 0x97A3 # 0 7064
+0xE8E3 0x97B3 # 0 7065
+0xE8E4 0x97B4 # 0 7066
+0xE8E5 0x97C3 # 0 7067
+0xE8E6 0x97C6 # 0 7068
+0xE8E7 0x97C8 # 0 7069
+0xE8E8 0x97CB # 0 706A
+0xE8E9 0x97DC # 0 706B
+0xE8EA 0x97ED # 0 706C
+0xE8EB 0x9F4F # 0 706D
+0xE8EC 0x97F2 # 0 706E
+0xE8ED 0x7ADF # 0 706F
+0xE8EE 0x97F6 # 0 7070
+0xE8EF 0x97F5 # 0 7071
+0xE8F0 0x980F # 0 7072
+0xE8F1 0x980C # 0 7073
+0xE8F2 0x9838 # 0 7074
+0xE8F3 0x9824 # 0 7075
+0xE8F4 0x9821 # 0 7076
+0xE8F5 0x9837 # 0 7077
+0xE8F6 0x983D # 0 7078
+0xE8F7 0x9846 # 0 7079
+0xE8F8 0x984F # 0 707A
+0xE8F9 0x984B # 0 707B
+0xE8FA 0x986B # 0 707C
+0xE8FB 0x986F # 0 707D
+0xE8FC 0x9870 # 0 707E
+0xE940 0x9871 # 0 7121
+0xE941 0x9874 # 0 7122
+0xE942 0x9873 # 0 7123
+0xE943 0x98AA # 0 7124
+0xE944 0x98AF # 0 7125
+0xE945 0x98B1 # 0 7126
+0xE946 0x98B6 # 0 7127
+0xE947 0x98C4 # 0 7128
+0xE948 0x98C3 # 0 7129
+0xE949 0x98C6 # 0 712A
+0xE94A 0x98E9 # 0 712B
+0xE94B 0x98EB # 0 712C
+0xE94C 0x9903 # 0 712D
+0xE94D 0x9909 # 0 712E
+0xE94E 0x9912 # 0 712F
+0xE94F 0x9914 # 0 7130
+0xE950 0x9918 # 0 7131
+0xE951 0x9921 # 0 7132
+0xE952 0x991D # 0 7133
+0xE953 0x991E # 0 7134
+0xE954 0x9924 # 0 7135
+0xE955 0x9920 # 0 7136
+0xE956 0x992C # 0 7137
+0xE957 0x992E # 0 7138
+0xE958 0x993D # 0 7139
+0xE959 0x993E # 0 713A
+0xE95A 0x9942 # 0 713B
+0xE95B 0x9949 # 0 713C
+0xE95C 0x9945 # 0 713D
+0xE95D 0x9950 # 0 713E
+0xE95E 0x994B # 0 713F
+0xE95F 0x9951 # 0 7140
+0xE960 0x9952 # 0 7141
+0xE961 0x994C # 0 7142
+0xE962 0x9955 # 0 7143
+0xE963 0x9997 # 0 7144
+0xE964 0x9998 # 0 7145
+0xE965 0x99A5 # 0 7146
+0xE966 0x99AD # 0 7147
+0xE967 0x99AE # 0 7148
+0xE968 0x99BC # 0 7149
+0xE969 0x99DF # 0 714A
+0xE96A 0x99DB # 0 714B
+0xE96B 0x99DD # 0 714C
+0xE96C 0x99D8 # 0 714D
+0xE96D 0x99D1 # 0 714E
+0xE96E 0x99ED # 0 714F
+0xE96F 0x99EE # 0 7150
+0xE970 0x99F1 # 0 7151
+0xE971 0x99F2 # 0 7152
+0xE972 0x99FB # 0 7153
+0xE973 0x99F8 # 0 7154
+0xE974 0x9A01 # 0 7155
+0xE975 0x9A0F # 0 7156
+0xE976 0x9A05 # 0 7157
+0xE977 0x99E2 # 0 7158
+0xE978 0x9A19 # 0 7159
+0xE979 0x9A2B # 0 715A
+0xE97A 0x9A37 # 0 715B
+0xE97B 0x9A45 # 0 715C
+0xE97C 0x9A42 # 0 715D
+0xE97D 0x9A40 # 0 715E
+0xE97E 0x9A43 # 0 715F
+0xE980 0x9A3E # 0 7160
+0xE981 0x9A55 # 0 7161
+0xE982 0x9A4D # 0 7162
+0xE983 0x9A5B # 0 7163
+0xE984 0x9A57 # 0 7164
+0xE985 0x9A5F # 0 7165
+0xE986 0x9A62 # 0 7166
+0xE987 0x9A65 # 0 7167
+0xE988 0x9A64 # 0 7168
+0xE989 0x9A69 # 0 7169
+0xE98A 0x9A6B # 0 716A
+0xE98B 0x9A6A # 0 716B
+0xE98C 0x9AAD # 0 716C
+0xE98D 0x9AB0 # 0 716D
+0xE98E 0x9ABC # 0 716E
+0xE98F 0x9AC0 # 0 716F
+0xE990 0x9ACF # 0 7170
+0xE991 0x9AD1 # 0 7171
+0xE992 0x9AD3 # 0 7172
+0xE993 0x9AD4 # 0 7173
+0xE994 0x9ADE # 0 7174
+0xE995 0x9ADF # 0 7175
+0xE996 0x9AE2 # 0 7176
+0xE997 0x9AE3 # 0 7177
+0xE998 0x9AE6 # 0 7178
+0xE999 0x9AEF # 0 7179
+0xE99A 0x9AEB # 0 717A
+0xE99B 0x9AEE # 0 717B
+0xE99C 0x9AF4 # 0 717C
+0xE99D 0x9AF1 # 0 717D
+0xE99E 0x9AF7 # 0 717E
+0xE99F 0x9AFB # 0 7221
+0xE9A0 0x9B06 # 0 7222
+0xE9A1 0x9B18 # 0 7223
+0xE9A2 0x9B1A # 0 7224
+0xE9A3 0x9B1F # 0 7225
+0xE9A4 0x9B22 # 0 7226
+0xE9A5 0x9B23 # 0 7227
+0xE9A6 0x9B25 # 0 7228
+0xE9A7 0x9B27 # 0 7229
+0xE9A8 0x9B28 # 0 722A
+0xE9A9 0x9B29 # 0 722B
+0xE9AA 0x9B2A # 0 722C
+0xE9AB 0x9B2E # 0 722D
+0xE9AC 0x9B2F # 0 722E
+0xE9AD 0x9B32 # 0 722F
+0xE9AE 0x9B44 # 0 7230
+0xE9AF 0x9B43 # 0 7231
+0xE9B0 0x9B4F # 0 7232
+0xE9B1 0x9B4D # 0 7233
+0xE9B2 0x9B4E # 0 7234
+0xE9B3 0x9B51 # 0 7235
+0xE9B4 0x9B58 # 0 7236
+0xE9B5 0x9B74 # 0 7237
+0xE9B6 0x9B93 # 0 7238
+0xE9B7 0x9B83 # 0 7239
+0xE9B8 0x9B91 # 0 723A
+0xE9B9 0x9B96 # 0 723B
+0xE9BA 0x9B97 # 0 723C
+0xE9BB 0x9B9F # 0 723D
+0xE9BC 0x9BA0 # 0 723E
+0xE9BD 0x9BA8 # 0 723F
+0xE9BE 0x9BB4 # 0 7240
+0xE9BF 0x9BC0 # 0 7241
+0xE9C0 0x9BCA # 0 7242
+0xE9C1 0x9BB9 # 0 7243
+0xE9C2 0x9BC6 # 0 7244
+0xE9C3 0x9BCF # 0 7245
+0xE9C4 0x9BD1 # 0 7246
+0xE9C5 0x9BD2 # 0 7247
+0xE9C6 0x9BE3 # 0 7248
+0xE9C7 0x9BE2 # 0 7249
+0xE9C8 0x9BE4 # 0 724A
+0xE9C9 0x9BD4 # 0 724B
+0xE9CA 0x9BE1 # 0 724C
+0xE9CB 0x9C3A # 0 724D
+0xE9CC 0x9BF2 # 0 724E
+0xE9CD 0x9BF1 # 0 724F
+0xE9CE 0x9BF0 # 0 7250
+0xE9CF 0x9C15 # 0 7251
+0xE9D0 0x9C14 # 0 7252
+0xE9D1 0x9C09 # 0 7253
+0xE9D2 0x9C13 # 0 7254
+0xE9D3 0x9C0C # 0 7255
+0xE9D4 0x9C06 # 0 7256
+0xE9D5 0x9C08 # 0 7257
+0xE9D6 0x9C12 # 0 7258
+0xE9D7 0x9C0A # 0 7259
+0xE9D8 0x9C04 # 0 725A
+0xE9D9 0x9C2E # 0 725B
+0xE9DA 0x9C1B # 0 725C
+0xE9DB 0x9C25 # 0 725D
+0xE9DC 0x9C24 # 0 725E
+0xE9DD 0x9C21 # 0 725F
+0xE9DE 0x9C30 # 0 7260
+0xE9DF 0x9C47 # 0 7261
+0xE9E0 0x9C32 # 0 7262
+0xE9E1 0x9C46 # 0 7263
+0xE9E2 0x9C3E # 0 7264
+0xE9E3 0x9C5A # 0 7265
+0xE9E4 0x9C60 # 0 7266
+0xE9E5 0x9C67 # 0 7267
+0xE9E6 0x9C76 # 0 7268
+0xE9E7 0x9C78 # 0 7269
+0xE9E8 0x9CE7 # 0 726A
+0xE9E9 0x9CEC # 0 726B
+0xE9EA 0x9CF0 # 0 726C
+0xE9EB 0x9D09 # 0 726D
+0xE9EC 0x9D08 # 0 726E
+0xE9ED 0x9CEB # 0 726F
+0xE9EE 0x9D03 # 0 7270
+0xE9EF 0x9D06 # 0 7271
+0xE9F0 0x9D2A # 0 7272
+0xE9F1 0x9D26 # 0 7273
+0xE9F2 0x9DAF # 0 7274
+0xE9F3 0x9D23 # 0 7275
+0xE9F4 0x9D1F # 0 7276
+0xE9F5 0x9D44 # 0 7277
+0xE9F6 0x9D15 # 0 7278
+0xE9F7 0x9D12 # 0 7279
+0xE9F8 0x9D41 # 0 727A
+0xE9F9 0x9D3F # 0 727B
+0xE9FA 0x9D3E # 0 727C
+0xE9FB 0x9D46 # 0 727D
+0xE9FC 0x9D48 # 0 727E
+0xEA40 0x9D5D # 0 7321
+0xEA41 0x9D5E # 0 7322
+0xEA42 0x9D64 # 0 7323
+0xEA43 0x9D51 # 0 7324
+0xEA44 0x9D50 # 0 7325
+0xEA45 0x9D59 # 0 7326
+0xEA46 0x9D72 # 0 7327
+0xEA47 0x9D89 # 0 7328
+0xEA48 0x9D87 # 0 7329
+0xEA49 0x9DAB # 0 732A
+0xEA4A 0x9D6F # 0 732B
+0xEA4B 0x9D7A # 0 732C
+0xEA4C 0x9D9A # 0 732D
+0xEA4D 0x9DA4 # 0 732E
+0xEA4E 0x9DA9 # 0 732F
+0xEA4F 0x9DB2 # 0 7330
+0xEA50 0x9DC4 # 0 7331
+0xEA51 0x9DC1 # 0 7332
+0xEA52 0x9DBB # 0 7333
+0xEA53 0x9DB8 # 0 7334
+0xEA54 0x9DBA # 0 7335
+0xEA55 0x9DC6 # 0 7336
+0xEA56 0x9DCF # 0 7337
+0xEA57 0x9DC2 # 0 7338
+0xEA58 0x9DD9 # 0 7339
+0xEA59 0x9DD3 # 0 733A
+0xEA5A 0x9DF8 # 0 733B
+0xEA5B 0x9DE6 # 0 733C
+0xEA5C 0x9DED # 0 733D
+0xEA5D 0x9DEF # 0 733E
+0xEA5E 0x9DFD # 0 733F
+0xEA5F 0x9E1A # 0 7340
+0xEA60 0x9E1B # 0 7341
+0xEA61 0x9E1E # 0 7342
+0xEA62 0x9E75 # 0 7343
+0xEA63 0x9E79 # 0 7344
+0xEA64 0x9E7D # 0 7345
+0xEA65 0x9E81 # 0 7346
+0xEA66 0x9E88 # 0 7347
+0xEA67 0x9E8B # 0 7348
+0xEA68 0x9E8C # 0 7349
+0xEA69 0x9E92 # 0 734A
+0xEA6A 0x9E95 # 0 734B
+0xEA6B 0x9E91 # 0 734C
+0xEA6C 0x9E9D # 0 734D
+0xEA6D 0x9EA5 # 0 734E
+0xEA6E 0x9EA9 # 0 734F
+0xEA6F 0x9EB8 # 0 7350
+0xEA70 0x9EAA # 0 7351
+0xEA71 0x9EAD # 0 7352
+0xEA72 0x9761 # 0 7353
+0xEA73 0x9ECC # 0 7354
+0xEA74 0x9ECE # 0 7355
+0xEA75 0x9ECF # 0 7356
+0xEA76 0x9ED0 # 0 7357
+0xEA77 0x9ED4 # 0 7358
+0xEA78 0x9EDC # 0 7359
+0xEA79 0x9EDE # 0 735A
+0xEA7A 0x9EDD # 0 735B
+0xEA7B 0x9EE0 # 0 735C
+0xEA7C 0x9EE5 # 0 735D
+0xEA7D 0x9EE8 # 0 735E
+0xEA7E 0x9EEF # 0 735F
+0xEA80 0x9EF4 # 0 7360
+0xEA81 0x9EF6 # 0 7361
+0xEA82 0x9EF7 # 0 7362
+0xEA83 0x9EF9 # 0 7363
+0xEA84 0x9EFB # 0 7364
+0xEA85 0x9EFC # 0 7365
+0xEA86 0x9EFD # 0 7366
+0xEA87 0x9F07 # 0 7367
+0xEA88 0x9F08 # 0 7368
+0xEA89 0x76B7 # 0 7369
+0xEA8A 0x9F15 # 0 736A
+0xEA8B 0x9F21 # 0 736B
+0xEA8C 0x9F2C # 0 736C
+0xEA8D 0x9F3E # 0 736D
+0xEA8E 0x9F4A # 0 736E
+0xEA8F 0x9F52 # 0 736F
+0xEA90 0x9F54 # 0 7370
+0xEA91 0x9F63 # 0 7371
+0xEA92 0x9F5F # 0 7372
+0xEA93 0x9F60 # 0 7373
+0xEA94 0x9F61 # 0 7374
+0xEA95 0x9F66 # 0 7375
+0xEA96 0x9F67 # 0 7376
+0xEA97 0x9F6C # 0 7377
+0xEA98 0x9F6A # 0 7378
+0xEA99 0x9F77 # 0 7379
+0xEA9A 0x9F72 # 0 737A
+0xEA9B 0x9F76 # 0 737B
+0xEA9C 0x9F95 # 0 737C
+0xEA9D 0x9F9C # 0 737D
+0xEA9E 0x9FA0 # 0 737E
+0xEA9F 0x582F # 0 7421
+0xEAA0 0x69C7 # 0 7422
+0xEAA1 0x9059 # 0 7423
+0xEAA2 0x7464 # 0 7424
+0xEAA3 0x51DC # 0 7425
+0xEAA4 0x7199 # 0 7426
+0x8740 0x2460 # 1 2D21
+0x8741 0x2461 # 1 2D22
+0x8742 0x2462 # 1 2D23
+0x8743 0x2463 # 1 2D24
+0x8744 0x2464 # 1 2D25
+0x8745 0x2465 # 1 2D26
+0x8746 0x2466 # 1 2D27
+0x8747 0x2467 # 1 2D28
+0x8748 0x2468 # 1 2D29
+0x8749 0x2469 # 1 2D2A
+0x874A 0x246A # 1 2D2B
+0x874B 0x246B # 1 2D2C
+0x874C 0x246C # 1 2D2D
+0x874D 0x246D # 1 2D2E
+0x874E 0x246E # 1 2D2F
+0x874F 0x246F # 1 2D30
+0x8750 0x2470 # 1 2D31
+0x8751 0x2471 # 1 2D32
+0x8752 0x2472 # 1 2D33
+0x8753 0x2473 # 1 2D34
+0x8754 0x2160 # 1 2D35
+0x8755 0x2161 # 1 2D36
+0x8756 0x2162 # 1 2D37
+0x8757 0x2163 # 1 2D38
+0x8758 0x2164 # 1 2D39
+0x8759 0x2165 # 1 2D3A
+0x875A 0x2166 # 1 2D3B
+0x875B 0x2167 # 1 2D3C
+0x875C 0x2168 # 1 2D3D
+0x875D 0x2169 # 1 2D3E
+0x875F 0x3349 # 1 2D40
+0x8760 0x3314 # 1 2D41
+0x8761 0x3322 # 1 2D42
+0x8762 0x334D # 1 2D43
+0x8763 0x3318 # 1 2D44
+0x8764 0x3327 # 1 2D45
+0x8765 0x3303 # 1 2D46
+0x8766 0x3336 # 1 2D47
+0x8767 0x3351 # 1 2D48
+0x8768 0x3357 # 1 2D49
+0x8769 0x330D # 1 2D4A
+0x876A 0x3326 # 1 2D4B
+0x876B 0x3323 # 1 2D4C
+0x876C 0x332B # 1 2D4D
+0x876D 0x334A # 1 2D4E
+0x876E 0x333B # 1 2D4F
+0x876F 0x339C # 1 2D50
+0x8770 0x339D # 1 2D51
+0x8771 0x339E # 1 2D52
+0x8772 0x338E # 1 2D53
+0x8773 0x338F # 1 2D54
+0x8774 0x33C4 # 1 2D55
+0x8775 0x33A1 # 1 2D56
+0x877E 0x337B # 1 2D5F
+0x8780 0x301D # 1 2D60
+0x8781 0x301F # 1 2D61
+0x8782 0x2116 # 1 2D62
+0x8783 0x33CD # 1 2D63
+0x8784 0x2121 # 1 2D64
+0x8785 0x32A4 # 1 2D65
+0x8786 0x32A5 # 1 2D66
+0x8787 0x32A6 # 1 2D67
+0x8788 0x32A7 # 1 2D68
+0x8789 0x32A8 # 1 2D69
+0x878A 0x3231 # 1 2D6A
+0x878B 0x3232 # 1 2D6B
+0x878C 0x3239 # 1 2D6C
+0x878D 0x337E # 1 2D6D
+0x878E 0x337D # 1 2D6E
+0x878F 0x337C # 1 2D6F
+0x8790 0x2252 # 1 2D70
+0x8791 0x2261 # 1 2D71
+0x8792 0x222B # 1 2D72
+0x8793 0x222E # 1 2D73
+0x8794 0x2211 # 1 2D74
+0x8795 0x221A # 1 2D75
+0x8796 0x22A5 # 1 2D76
+0x8797 0x2220 # 1 2D77
+0x8798 0x221F # 1 2D78
+0x8799 0x22BF # 1 2D79
+0x879A 0x2235 # 1 2D7A
+0x879B 0x2229 # 1 2D7B
+0x879C 0x222A # 1 2D7C
+0xFA40 0x2170 # 2
+0xFA41 0x2171 # 2
+0xFA42 0x2172 # 2
+0xFA43 0x2173 # 2
+0xFA44 0x2174 # 2
+0xFA45 0x2175 # 2
+0xFA46 0x2176 # 2
+0xFA47 0x2177 # 2
+0xFA48 0x2178 # 2
+0xFA49 0x2179 # 2
+0xFA4A 0x2160 # 2
+0xFA4B 0x2161 # 2
+0xFA4C 0x2162 # 2
+0xFA4D 0x2163 # 2
+0xFA4E 0x2164 # 2
+0xFA4F 0x2165 # 2
+0xFA50 0x2166 # 2
+0xFA51 0x2167 # 2
+0xFA52 0x2168 # 2
+0xFA53 0x2169 # 2
+0xFA54 0xFFE2 # 2
+0xFA55 0xFFE4 # 2
+0xFA56 0xFF07 # 2
+0xFA57 0xFF02 # 2
+0xFA58 0x3231 # 2
+0xFA59 0x2116 # 2
+0xFA5A 0x2121 # 2
+0xFA5B 0x2235 # 2
+0xFA5C 0x7E8A # 2
+0xFA5D 0x891C # 2
+0xFA5E 0x9348 # 2
+0xFA5F 0x9288 # 2
+0xFA60 0x84DC # 2
+0xFA61 0x4FC9 # 2
+0xFA62 0x70BB # 2
+0xFA63 0x6631 # 2
+0xFA64 0x68C8 # 2
+0xFA65 0x92F9 # 2
+0xFA66 0x66FB # 2
+0xFA67 0x5F45 # 2
+0xFA68 0x4E28 # 2
+0xFA69 0x4EE1 # 2
+0xFA6A 0x4EFC # 2
+0xFA6B 0x4F00 # 2
+0xFA6C 0x4F03 # 2
+0xFA6D 0x4F39 # 2
+0xFA6E 0x4F56 # 2
+0xFA6F 0x4F92 # 2
+0xFA70 0x4F8A # 2
+0xFA71 0x4F9A # 2
+0xFA72 0x4F94 # 2
+0xFA73 0x4FCD # 2
+0xFA74 0x5040 # 2
+0xFA75 0x5022 # 2
+0xFA76 0x4FFF # 2
+0xFA77 0x501E # 2
+0xFA78 0x5046 # 2
+0xFA79 0x5070 # 2
+0xFA7A 0x5042 # 2
+0xFA7B 0x5094 # 2
+0xFA7C 0x50F4 # 2
+0xFA7D 0x50D8 # 2
+0xFA7E 0x514A # 2
+0xFA80 0x5164 # 2
+0xFA81 0x519D # 2
+0xFA82 0x51BE # 2
+0xFA83 0x51EC # 2
+0xFA84 0x5215 # 2
+0xFA85 0x529C # 2
+0xFA86 0x52A6 # 2
+0xFA87 0x52C0 # 2
+0xFA88 0x52DB # 2
+0xFA89 0x5300 # 2
+0xFA8A 0x5307 # 2
+0xFA8B 0x5324 # 2
+0xFA8C 0x5372 # 2
+0xFA8D 0x5393 # 2
+0xFA8E 0x53B2 # 2
+0xFA8F 0x53DD # 2
+0xFA90 0xFA0E # 2
+0xFA91 0x549C # 2
+0xFA92 0x548A # 2
+0xFA93 0x54A9 # 2
+0xFA94 0x54FF # 2
+0xFA95 0x5586 # 2
+0xFA96 0x5759 # 2
+0xFA97 0x5765 # 2
+0xFA98 0x57AC # 2
+0xFA99 0x57C8 # 2
+0xFA9A 0x57C7 # 2
+0xFA9B 0xFA0F # 2
+0xFA9C 0xFA10 # 2
+0xFA9D 0x589E # 2
+0xFA9E 0x58B2 # 2
+0xFA9F 0x590B # 2
+0xFAA0 0x5953 # 2
+0xFAA1 0x595B # 2
+0xFAA2 0x595D # 2
+0xFAA3 0x5963 # 2
+0xFAA4 0x59A4 # 2
+0xFAA5 0x59BA # 2
+0xFAA6 0x5B56 # 2
+0xFAA7 0x5BC0 # 2
+0xFAA8 0x752F # 2
+0xFAA9 0x5BD8 # 2
+0xFAAA 0x5BEC # 2
+0xFAAB 0x5C1E # 2
+0xFAAC 0x5CA6 # 2
+0xFAAD 0x5CBA # 2
+0xFAAE 0x5CF5 # 2
+0xFAAF 0x5D27 # 2
+0xFAB0 0x5D53 # 2
+0xFAB1 0xFA11 # 2
+0xFAB2 0x5D42 # 2
+0xFAB3 0x5D6D # 2
+0xFAB4 0x5DB8 # 2
+0xFAB5 0x5DB9 # 2
+0xFAB6 0x5DD0 # 2
+0xFAB7 0x5F21 # 2
+0xFAB8 0x5F34 # 2
+0xFAB9 0x5F67 # 2
+0xFABA 0x5FB7 # 2
+0xFABB 0x5FDE # 2
+0xFABC 0x605D # 2
+0xFABD 0x6085 # 2
+0xFABE 0x608A # 2
+0xFABF 0x60DE # 2
+0xFAC0 0x60D5 # 2
+0xFAC1 0x6120 # 2
+0xFAC2 0x60F2 # 2
+0xFAC3 0x6111 # 2
+0xFAC4 0x6137 # 2
+0xFAC5 0x6130 # 2
+0xFAC6 0x6198 # 2
+0xFAC7 0x6213 # 2
+0xFAC8 0x62A6 # 2
+0xFAC9 0x63F5 # 2
+0xFACA 0x6460 # 2
+0xFACB 0x649D # 2
+0xFACC 0x64CE # 2
+0xFACD 0x654E # 2
+0xFACE 0x6600 # 2
+0xFACF 0x6615 # 2
+0xFAD0 0x663B # 2
+0xFAD1 0x6609 # 2
+0xFAD2 0x662E # 2
+0xFAD3 0x661E # 2
+0xFAD4 0x6624 # 2
+0xFAD5 0x6665 # 2
+0xFAD6 0x6657 # 2
+0xFAD7 0x6659 # 2
+0xFAD8 0xFA12 # 2
+0xFAD9 0x6673 # 2
+0xFADA 0x6699 # 2
+0xFADB 0x66A0 # 2
+0xFADC 0x66B2 # 2
+0xFADD 0x66BF # 2
+0xFADE 0x66FA # 2
+0xFADF 0x670E # 2
+0xFAE0 0xF929 # 2
+0xFAE1 0x6766 # 2
+0xFAE2 0x67BB # 2
+0xFAE3 0x6852 # 2
+0xFAE4 0x67C0 # 2
+0xFAE5 0x6801 # 2
+0xFAE6 0x6844 # 2
+0xFAE7 0x68CF # 2
+0xFAE8 0xFA13 # 2
+0xFAE9 0x6968 # 2
+0xFAEA 0xFA14 # 2
+0xFAEB 0x6998 # 2
+0xFAEC 0x69E2 # 2
+0xFAED 0x6A30 # 2
+0xFAEE 0x6A6B # 2
+0xFAEF 0x6A46 # 2
+0xFAF0 0x6A73 # 2
+0xFAF1 0x6A7E # 2
+0xFAF2 0x6AE2 # 2
+0xFAF3 0x6AE4 # 2
+0xFAF4 0x6BD6 # 2
+0xFAF5 0x6C3F # 2
+0xFAF6 0x6C5C # 2
+0xFAF7 0x6C86 # 2
+0xFAF8 0x6C6F # 2
+0xFAF9 0x6CDA # 2
+0xFAFA 0x6D04 # 2
+0xFAFB 0x6D87 # 2
+0xFAFC 0x6D6F # 2
+0xFB40 0x6D96 # 2
+0xFB41 0x6DAC # 2
+0xFB42 0x6DCF # 2
+0xFB43 0x6DF8 # 2
+0xFB44 0x6DF2 # 2
+0xFB45 0x6DFC # 2
+0xFB46 0x6E39 # 2
+0xFB47 0x6E5C # 2
+0xFB48 0x6E27 # 2
+0xFB49 0x6E3C # 2
+0xFB4A 0x6EBF # 2
+0xFB4B 0x6F88 # 2
+0xFB4C 0x6FB5 # 2
+0xFB4D 0x6FF5 # 2
+0xFB4E 0x7005 # 2
+0xFB4F 0x7007 # 2
+0xFB50 0x7028 # 2
+0xFB51 0x7085 # 2
+0xFB52 0x70AB # 2
+0xFB53 0x710F # 2
+0xFB54 0x7104 # 2
+0xFB55 0x715C # 2
+0xFB56 0x7146 # 2
+0xFB57 0x7147 # 2
+0xFB58 0xFA15 # 2
+0xFB59 0x71C1 # 2
+0xFB5A 0x71FE # 2
+0xFB5B 0x72B1 # 2
+0xFB5C 0x72BE # 2
+0xFB5D 0x7324 # 2
+0xFB5E 0xFA16 # 2
+0xFB5F 0x7377 # 2
+0xFB60 0x73BD # 2
+0xFB61 0x73C9 # 2
+0xFB62 0x73D6 # 2
+0xFB63 0x73E3 # 2
+0xFB64 0x73D2 # 2
+0xFB65 0x7407 # 2
+0xFB66 0x73F5 # 2
+0xFB67 0x7426 # 2
+0xFB68 0x742A # 2
+0xFB69 0x7429 # 2
+0xFB6A 0x742E # 2
+0xFB6B 0x7462 # 2
+0xFB6C 0x7489 # 2
+0xFB6D 0x749F # 2
+0xFB6E 0x7501 # 2
+0xFB6F 0x756F # 2
+0xFB70 0x7682 # 2
+0xFB71 0x769C # 2
+0xFB72 0x769E # 2
+0xFB73 0x769B # 2
+0xFB74 0x76A6 # 2
+0xFB75 0xFA17 # 2
+0xFB76 0x7746 # 2
+0xFB77 0x52AF # 2
+0xFB78 0x7821 # 2
+0xFB79 0x784E # 2
+0xFB7A 0x7864 # 2
+0xFB7B 0x787A # 2
+0xFB7C 0x7930 # 2
+0xFB7D 0xFA18 # 2
+0xFB7E 0xFA19 # 2
+0xFB80 0xFA1A # 2
+0xFB81 0x7994 # 2
+0xFB82 0xFA1B # 2
+0xFB83 0x799B # 2
+0xFB84 0x7AD1 # 2
+0xFB85 0x7AE7 # 2
+0xFB86 0xFA1C # 2
+0xFB87 0x7AEB # 2
+0xFB88 0x7B9E # 2
+0xFB89 0xFA1D # 2
+0xFB8A 0x7D48 # 2
+0xFB8B 0x7D5C # 2
+0xFB8C 0x7DB7 # 2
+0xFB8D 0x7DA0 # 2
+0xFB8E 0x7DD6 # 2
+0xFB8F 0x7E52 # 2
+0xFB90 0x7F47 # 2
+0xFB91 0x7FA1 # 2
+0xFB92 0xFA1E # 2
+0xFB93 0x8301 # 2
+0xFB94 0x8362 # 2
+0xFB95 0x837F # 2
+0xFB96 0x83C7 # 2
+0xFB97 0x83F6 # 2
+0xFB98 0x8448 # 2
+0xFB99 0x84B4 # 2
+0xFB9A 0x8553 # 2
+0xFB9B 0x8559 # 2
+0xFB9C 0x856B # 2
+0xFB9D 0xFA1F # 2
+0xFB9E 0x85B0 # 2
+0xFB9F 0xFA20 # 2
+0xFBA0 0xFA21 # 2
+0xFBA1 0x8807 # 2
+0xFBA2 0x88F5 # 2
+0xFBA3 0x8A12 # 2
+0xFBA4 0x8A37 # 2
+0xFBA5 0x8A79 # 2
+0xFBA6 0x8AA7 # 2
+0xFBA7 0x8ABE # 2
+0xFBA8 0x8ADF # 2
+0xFBA9 0xFA22 # 2
+0xFBAA 0x8AF6 # 2
+0xFBAB 0x8B53 # 2
+0xFBAC 0x8B7F # 2
+0xFBAD 0x8CF0 # 2
+0xFBAE 0x8CF4 # 2
+0xFBAF 0x8D12 # 2
+0xFBB0 0x8D76 # 2
+0xFBB1 0xFA23 # 2
+0xFBB2 0x8ECF # 2
+0xFBB3 0xFA24 # 2
+0xFBB4 0xFA25 # 2
+0xFBB5 0x9067 # 2
+0xFBB6 0x90DE # 2
+0xFBB7 0xFA26 # 2
+0xFBB8 0x9115 # 2
+0xFBB9 0x9127 # 2
+0xFBBA 0x91DA # 2
+0xFBBB 0x91D7 # 2
+0xFBBC 0x91DE # 2
+0xFBBD 0x91ED # 2
+0xFBBE 0x91EE # 2
+0xFBBF 0x91E4 # 2
+0xFBC0 0x91E5 # 2
+0xFBC1 0x9206 # 2
+0xFBC2 0x9210 # 2
+0xFBC3 0x920A # 2
+0xFBC4 0x923A # 2
+0xFBC5 0x9240 # 2
+0xFBC6 0x923C # 2
+0xFBC7 0x924E # 2
+0xFBC8 0x9259 # 2
+0xFBC9 0x9251 # 2
+0xFBCA 0x9239 # 2
+0xFBCB 0x9267 # 2
+0xFBCC 0x92A7 # 2
+0xFBCD 0x9277 # 2
+0xFBCE 0x9278 # 2
+0xFBCF 0x92E7 # 2
+0xFBD0 0x92D7 # 2
+0xFBD1 0x92D9 # 2
+0xFBD2 0x92D0 # 2
+0xFBD3 0xFA27 # 2
+0xFBD4 0x92D5 # 2
+0xFBD5 0x92E0 # 2
+0xFBD6 0x92D3 # 2
+0xFBD7 0x9325 # 2
+0xFBD8 0x9321 # 2
+0xFBD9 0x92FB # 2
+0xFBDA 0xFA28 # 2
+0xFBDB 0x931E # 2
+0xFBDC 0x92FF # 2
+0xFBDD 0x931D # 2
+0xFBDE 0x9302 # 2
+0xFBDF 0x9370 # 2
+0xFBE0 0x9357 # 2
+0xFBE1 0x93A4 # 2
+0xFBE2 0x93C6 # 2
+0xFBE3 0x93DE # 2
+0xFBE4 0x93F8 # 2
+0xFBE5 0x9431 # 2
+0xFBE6 0x9445 # 2
+0xFBE7 0x9448 # 2
+0xFBE8 0x9592 # 2
+0xFBE9 0xF9DC # 2
+0xFBEA 0xFA29 # 2
+0xFBEB 0x969D # 2
+0xFBEC 0x96AF # 2
+0xFBED 0x9733 # 2
+0xFBEE 0x973B # 2
+0xFBEF 0x9743 # 2
+0xFBF0 0x974D # 2
+0xFBF1 0x974F # 2
+0xFBF2 0x9751 # 2
+0xFBF3 0x9755 # 2
+0xFBF4 0x9857 # 2
+0xFBF5 0x9865 # 2
+0xFBF6 0xFA2A # 2
+0xFBF7 0xFA2B # 2
+0xFBF8 0x9927 # 2
+0xFBF9 0xFA2C # 2
+0xFBFA 0x999E # 2
+0xFBFB 0x9A4E # 2
+0xFBFC 0x9AD9 # 2
+0xFC40 0x9ADC # 2
+0xFC41 0x9B75 # 2
+0xFC42 0x9B72 # 2
+0xFC43 0x9B8F # 2
+0xFC44 0x9BB1 # 2
+0xFC45 0x9BBB # 2
+0xFC46 0x9C00 # 2
+0xFC47 0x9D70 # 2
+0xFC48 0x9D6B # 2
+0xFC49 0xFA2D # 2
+0xFC4A 0x9E19 # 2
+0xFC4B 0x9ED1 # 2
+0xED40 0x7E8A # 3 7921
+0xED41 0x891C # 3 7922
+0xED42 0x9348 # 3 7923
+0xED43 0x9288 # 3 7924
+0xED44 0x84DC # 3 7925
+0xED45 0x4FC9 # 3 7926
+0xED46 0x70BB # 3 7927
+0xED47 0x6631 # 3 7928
+0xED48 0x68C8 # 3 7929
+0xED49 0x92F9 # 3 792A
+0xED4A 0x66FB # 3 792B
+0xED4B 0x5F45 # 3 792C
+0xED4C 0x4E28 # 3 792D
+0xED4D 0x4EE1 # 3 792E
+0xED4E 0x4EFC # 3 792F
+0xED4F 0x4F00 # 3 7930
+0xED50 0x4F03 # 3 7931
+0xED51 0x4F39 # 3 7932
+0xED52 0x4F56 # 3 7933
+0xED53 0x4F92 # 3 7934
+0xED54 0x4F8A # 3 7935
+0xED55 0x4F9A # 3 7936
+0xED56 0x4F94 # 3 7937
+0xED57 0x4FCD # 3 7938
+0xED58 0x5040 # 3 7939
+0xED59 0x5022 # 3 793A
+0xED5A 0x4FFF # 3 793B
+0xED5B 0x501E # 3 793C
+0xED5C 0x5046 # 3 793D
+0xED5D 0x5070 # 3 793E
+0xED5E 0x5042 # 3 793F
+0xED5F 0x5094 # 3 7940
+0xED60 0x50F4 # 3 7941
+0xED61 0x50D8 # 3 7942
+0xED62 0x514A # 3 7943
+0xED63 0x5164 # 3 7944
+0xED64 0x519D # 3 7945
+0xED65 0x51BE # 3 7946
+0xED66 0x51EC # 3 7947
+0xED67 0x5215 # 3 7948
+0xED68 0x529C # 3 7949
+0xED69 0x52A6 # 3 794A
+0xED6A 0x52C0 # 3 794B
+0xED6B 0x52DB # 3 794C
+0xED6C 0x5300 # 3 794D
+0xED6D 0x5307 # 3 794E
+0xED6E 0x5324 # 3 794F
+0xED6F 0x5372 # 3 7950
+0xED70 0x5393 # 3 7951
+0xED71 0x53B2 # 3 7952
+0xED72 0x53DD # 3 7953
+0xED73 0xFA0E # 3 7954
+0xED74 0x549C # 3 7955
+0xED75 0x548A # 3 7956
+0xED76 0x54A9 # 3 7957
+0xED77 0x54FF # 3 7958
+0xED78 0x5586 # 3 7959
+0xED79 0x5759 # 3 795A
+0xED7A 0x5765 # 3 795B
+0xED7B 0x57AC # 3 795C
+0xED7C 0x57C8 # 3 795D
+0xED7D 0x57C7 # 3 795E
+0xED7E 0xFA0F # 3 795F
+0xED80 0xFA10 # 3 7960
+0xED81 0x589E # 3 7961
+0xED82 0x58B2 # 3 7962
+0xED83 0x590B # 3 7963
+0xED84 0x5953 # 3 7964
+0xED85 0x595B # 3 7965
+0xED86 0x595D # 3 7966
+0xED87 0x5963 # 3 7967
+0xED88 0x59A4 # 3 7968
+0xED89 0x59BA # 3 7969
+0xED8A 0x5B56 # 3 796A
+0xED8B 0x5BC0 # 3 796B
+0xED8C 0x752F # 3 796C
+0xED8D 0x5BD8 # 3 796D
+0xED8E 0x5BEC # 3 796E
+0xED8F 0x5C1E # 3 796F
+0xED90 0x5CA6 # 3 7970
+0xED91 0x5CBA # 3 7971
+0xED92 0x5CF5 # 3 7972
+0xED93 0x5D27 # 3 7973
+0xED94 0x5D53 # 3 7974
+0xED95 0xFA11 # 3 7975
+0xED96 0x5D42 # 3 7976
+0xED97 0x5D6D # 3 7977
+0xED98 0x5DB8 # 3 7978
+0xED99 0x5DB9 # 3 7979
+0xED9A 0x5DD0 # 3 797A
+0xED9B 0x5F21 # 3 797B
+0xED9C 0x5F34 # 3 797C
+0xED9D 0x5F67 # 3 797D
+0xED9E 0x5FB7 # 3 797E
+0xED9F 0x5FDE # 3 7A21
+0xEDA0 0x605D # 3 7A22
+0xEDA1 0x6085 # 3 7A23
+0xEDA2 0x608A # 3 7A24
+0xEDA3 0x60DE # 3 7A25
+0xEDA4 0x60D5 # 3 7A26
+0xEDA5 0x6120 # 3 7A27
+0xEDA6 0x60F2 # 3 7A28
+0xEDA7 0x6111 # 3 7A29
+0xEDA8 0x6137 # 3 7A2A
+0xEDA9 0x6130 # 3 7A2B
+0xEDAA 0x6198 # 3 7A2C
+0xEDAB 0x6213 # 3 7A2D
+0xEDAC 0x62A6 # 3 7A2E
+0xEDAD 0x63F5 # 3 7A2F
+0xEDAE 0x6460 # 3 7A30
+0xEDAF 0x649D # 3 7A31
+0xEDB0 0x64CE # 3 7A32
+0xEDB1 0x654E # 3 7A33
+0xEDB2 0x6600 # 3 7A34
+0xEDB3 0x6615 # 3 7A35
+0xEDB4 0x663B # 3 7A36
+0xEDB5 0x6609 # 3 7A37
+0xEDB6 0x662E # 3 7A38
+0xEDB7 0x661E # 3 7A39
+0xEDB8 0x6624 # 3 7A3A
+0xEDB9 0x6665 # 3 7A3B
+0xEDBA 0x6657 # 3 7A3C
+0xEDBB 0x6659 # 3 7A3D
+0xEDBC 0xFA12 # 3 7A3E
+0xEDBD 0x6673 # 3 7A3F
+0xEDBE 0x6699 # 3 7A40
+0xEDBF 0x66A0 # 3 7A41
+0xEDC0 0x66B2 # 3 7A42
+0xEDC1 0x66BF # 3 7A43
+0xEDC2 0x66FA # 3 7A44
+0xEDC3 0x670E # 3 7A45
+0xEDC4 0xF929 # 3 7A46
+0xEDC5 0x6766 # 3 7A47
+0xEDC6 0x67BB # 3 7A48
+0xEDC7 0x6852 # 3 7A49
+0xEDC8 0x67C0 # 3 7A4A
+0xEDC9 0x6801 # 3 7A4B
+0xEDCA 0x6844 # 3 7A4C
+0xEDCB 0x68CF # 3 7A4D
+0xEDCC 0xFA13 # 3 7A4E
+0xEDCD 0x6968 # 3 7A4F
+0xEDCE 0xFA14 # 3 7A50
+0xEDCF 0x6998 # 3 7A51
+0xEDD0 0x69E2 # 3 7A52
+0xEDD1 0x6A30 # 3 7A53
+0xEDD2 0x6A6B # 3 7A54
+0xEDD3 0x6A46 # 3 7A55
+0xEDD4 0x6A73 # 3 7A56
+0xEDD5 0x6A7E # 3 7A57
+0xEDD6 0x6AE2 # 3 7A58
+0xEDD7 0x6AE4 # 3 7A59
+0xEDD8 0x6BD6 # 3 7A5A
+0xEDD9 0x6C3F # 3 7A5B
+0xEDDA 0x6C5C # 3 7A5C
+0xEDDB 0x6C86 # 3 7A5D
+0xEDDC 0x6C6F # 3 7A5E
+0xEDDD 0x6CDA # 3 7A5F
+0xEDDE 0x6D04 # 3 7A60
+0xEDDF 0x6D87 # 3 7A61
+0xEDE0 0x6D6F # 3 7A62
+0xEDE1 0x6D96 # 3 7A63
+0xEDE2 0x6DAC # 3 7A64
+0xEDE3 0x6DCF # 3 7A65
+0xEDE4 0x6DF8 # 3 7A66
+0xEDE5 0x6DF2 # 3 7A67
+0xEDE6 0x6DFC # 3 7A68
+0xEDE7 0x6E39 # 3 7A69
+0xEDE8 0x6E5C # 3 7A6A
+0xEDE9 0x6E27 # 3 7A6B
+0xEDEA 0x6E3C # 3 7A6C
+0xEDEB 0x6EBF # 3 7A6D
+0xEDEC 0x6F88 # 3 7A6E
+0xEDED 0x6FB5 # 3 7A6F
+0xEDEE 0x6FF5 # 3 7A70
+0xEDEF 0x7005 # 3 7A71
+0xEDF0 0x7007 # 3 7A72
+0xEDF1 0x7028 # 3 7A73
+0xEDF2 0x7085 # 3 7A74
+0xEDF3 0x70AB # 3 7A75
+0xEDF4 0x710F # 3 7A76
+0xEDF5 0x7104 # 3 7A77
+0xEDF6 0x715C # 3 7A78
+0xEDF7 0x7146 # 3 7A79
+0xEDF8 0x7147 # 3 7A7A
+0xEDF9 0xFA15 # 3 7A7B
+0xEDFA 0x71C1 # 3 7A7C
+0xEDFB 0x71FE # 3 7A7D
+0xEDFC 0x72B1 # 3 7A7E
+0xEE40 0x72BE # 3 7B21
+0xEE41 0x7324 # 3 7B22
+0xEE42 0xFA16 # 3 7B23
+0xEE43 0x7377 # 3 7B24
+0xEE44 0x73BD # 3 7B25
+0xEE45 0x73C9 # 3 7B26
+0xEE46 0x73D6 # 3 7B27
+0xEE47 0x73E3 # 3 7B28
+0xEE48 0x73D2 # 3 7B29
+0xEE49 0x7407 # 3 7B2A
+0xEE4A 0x73F5 # 3 7B2B
+0xEE4B 0x7426 # 3 7B2C
+0xEE4C 0x742A # 3 7B2D
+0xEE4D 0x7429 # 3 7B2E
+0xEE4E 0x742E # 3 7B2F
+0xEE4F 0x7462 # 3 7B30
+0xEE50 0x7489 # 3 7B31
+0xEE51 0x749F # 3 7B32
+0xEE52 0x7501 # 3 7B33
+0xEE53 0x756F # 3 7B34
+0xEE54 0x7682 # 3 7B35
+0xEE55 0x769C # 3 7B36
+0xEE56 0x769E # 3 7B37
+0xEE57 0x769B # 3 7B38
+0xEE58 0x76A6 # 3 7B39
+0xEE59 0xFA17 # 3 7B3A
+0xEE5A 0x7746 # 3 7B3B
+0xEE5B 0x52AF # 3 7B3C
+0xEE5C 0x7821 # 3 7B3D
+0xEE5D 0x784E # 3 7B3E
+0xEE5E 0x7864 # 3 7B3F
+0xEE5F 0x787A # 3 7B40
+0xEE60 0x7930 # 3 7B41
+0xEE61 0xFA18 # 3 7B42
+0xEE62 0xFA19 # 3 7B43
+0xEE63 0xFA1A # 3 7B44
+0xEE64 0x7994 # 3 7B45
+0xEE65 0xFA1B # 3 7B46
+0xEE66 0x799B # 3 7B47
+0xEE67 0x7AD1 # 3 7B48
+0xEE68 0x7AE7 # 3 7B49
+0xEE69 0xFA1C # 3 7B4A
+0xEE6A 0x7AEB # 3 7B4B
+0xEE6B 0x7B9E # 3 7B4C
+0xEE6C 0xFA1D # 3 7B4D
+0xEE6D 0x7D48 # 3 7B4E
+0xEE6E 0x7D5C # 3 7B4F
+0xEE6F 0x7DB7 # 3 7B50
+0xEE70 0x7DA0 # 3 7B51
+0xEE71 0x7DD6 # 3 7B52
+0xEE72 0x7E52 # 3 7B53
+0xEE73 0x7F47 # 3 7B54
+0xEE74 0x7FA1 # 3 7B55
+0xEE75 0xFA1E # 3 7B56
+0xEE76 0x8301 # 3 7B57
+0xEE77 0x8362 # 3 7B58
+0xEE78 0x837F # 3 7B59
+0xEE79 0x83C7 # 3 7B5A
+0xEE7A 0x83F6 # 3 7B5B
+0xEE7B 0x8448 # 3 7B5C
+0xEE7C 0x84B4 # 3 7B5D
+0xEE7D 0x8553 # 3 7B5E
+0xEE7E 0x8559 # 3 7B5F
+0xEE80 0x856B # 3 7B60
+0xEE81 0xFA1F # 3 7B61
+0xEE82 0x85B0 # 3 7B62
+0xEE83 0xFA20 # 3 7B63
+0xEE84 0xFA21 # 3 7B64
+0xEE85 0x8807 # 3 7B65
+0xEE86 0x88F5 # 3 7B66
+0xEE87 0x8A12 # 3 7B67
+0xEE88 0x8A37 # 3 7B68
+0xEE89 0x8A79 # 3 7B69
+0xEE8A 0x8AA7 # 3 7B6A
+0xEE8B 0x8ABE # 3 7B6B
+0xEE8C 0x8ADF # 3 7B6C
+0xEE8D 0xFA22 # 3 7B6D
+0xEE8E 0x8AF6 # 3 7B6E
+0xEE8F 0x8B53 # 3 7B6F
+0xEE90 0x8B7F # 3 7B70
+0xEE91 0x8CF0 # 3 7B71
+0xEE92 0x8CF4 # 3 7B72
+0xEE93 0x8D12 # 3 7B73
+0xEE94 0x8D76 # 3 7B74
+0xEE95 0xFA23 # 3 7B75
+0xEE96 0x8ECF # 3 7B76
+0xEE97 0xFA24 # 3 7B77
+0xEE98 0xFA25 # 3 7B78
+0xEE99 0x9067 # 3 7B79
+0xEE9A 0x90DE # 3 7B7A
+0xEE9B 0xFA26 # 3 7B7B
+0xEE9C 0x9115 # 3 7B7C
+0xEE9D 0x9127 # 3 7B7D
+0xEE9E 0x91DA # 3 7B7E
+0xEE9F 0x91D7 # 3 7C21
+0xEEA0 0x91DE # 3 7C22
+0xEEA1 0x91ED # 3 7C23
+0xEEA2 0x91EE # 3 7C24
+0xEEA3 0x91E4 # 3 7C25
+0xEEA4 0x91E5 # 3 7C26
+0xEEA5 0x9206 # 3 7C27
+0xEEA6 0x9210 # 3 7C28
+0xEEA7 0x920A # 3 7C29
+0xEEA8 0x923A # 3 7C2A
+0xEEA9 0x9240 # 3 7C2B
+0xEEAA 0x923C # 3 7C2C
+0xEEAB 0x924E # 3 7C2D
+0xEEAC 0x9259 # 3 7C2E
+0xEEAD 0x9251 # 3 7C2F
+0xEEAE 0x9239 # 3 7C30
+0xEEAF 0x9267 # 3 7C31
+0xEEB0 0x92A7 # 3 7C32
+0xEEB1 0x9277 # 3 7C33
+0xEEB2 0x9278 # 3 7C34
+0xEEB3 0x92E7 # 3 7C35
+0xEEB4 0x92D7 # 3 7C36
+0xEEB5 0x92D9 # 3 7C37
+0xEEB6 0x92D0 # 3 7C38
+0xEEB7 0xFA27 # 3 7C39
+0xEEB8 0x92D5 # 3 7C3A
+0xEEB9 0x92E0 # 3 7C3B
+0xEEBA 0x92D3 # 3 7C3C
+0xEEBB 0x9325 # 3 7C3D
+0xEEBC 0x9321 # 3 7C3E
+0xEEBD 0x92FB # 3 7C3F
+0xEEBE 0xFA28 # 3 7C40
+0xEEBF 0x931E # 3 7C41
+0xEEC0 0x92FF # 3 7C42
+0xEEC1 0x931D # 3 7C43
+0xEEC2 0x9302 # 3 7C44
+0xEEC3 0x9370 # 3 7C45
+0xEEC4 0x9357 # 3 7C46
+0xEEC5 0x93A4 # 3 7C47
+0xEEC6 0x93C6 # 3 7C48
+0xEEC7 0x93DE # 3 7C49
+0xEEC8 0x93F8 # 3 7C4A
+0xEEC9 0x9431 # 3 7C4B
+0xEECA 0x9445 # 3 7C4C
+0xEECB 0x9448 # 3 7C4D
+0xEECC 0x9592 # 3 7C4E
+0xEECD 0xF9DC # 3 7C4F
+0xEECE 0xFA29 # 3 7C50
+0xEECF 0x969D # 3 7C51
+0xEED0 0x96AF # 3 7C52
+0xEED1 0x9733 # 3 7C53
+0xEED2 0x973B # 3 7C54
+0xEED3 0x9743 # 3 7C55
+0xEED4 0x974D # 3 7C56
+0xEED5 0x974F # 3 7C57
+0xEED6 0x9751 # 3 7C58
+0xEED7 0x9755 # 3 7C59
+0xEED8 0x9857 # 3 7C5A
+0xEED9 0x9865 # 3 7C5B
+0xEEDA 0xFA2A # 3 7C5C
+0xEEDB 0xFA2B # 3 7C5D
+0xEEDC 0x9927 # 3 7C5E
+0xEEDD 0xFA2C # 3 7C5F
+0xEEDE 0x999E # 3 7C60
+0xEEDF 0x9A4E # 3 7C61
+0xEEE0 0x9AD9 # 3 7C62
+0xEEE1 0x9ADC # 3 7C63
+0xEEE2 0x9B75 # 3 7C64
+0xEEE3 0x9B72 # 3 7C65
+0xEEE4 0x9B8F # 3 7C66
+0xEEE5 0x9BB1 # 3 7C67
+0xEEE6 0x9BBB # 3 7C68
+0xEEE7 0x9C00 # 3 7C69
+0xEEE8 0x9D70 # 3 7C6A
+0xEEE9 0x9D6B # 3 7C6B
+0xEEEA 0xFA2D # 3 7C6C
+0xEEEB 0x9E19 # 3 7C6D
+0xEEEC 0x9ED1 # 3 7C6E
+0xEEEF 0x2170 # 3 7C71
+0xEEF0 0x2171 # 3 7C72
+0xEEF1 0x2172 # 3 7C73
+0xEEF2 0x2173 # 3 7C74
+0xEEF3 0x2174 # 3 7C75
+0xEEF4 0x2175 # 3 7C76
+0xEEF5 0x2176 # 3 7C77
+0xEEF6 0x2177 # 3 7C78
+0xEEF7 0x2178 # 3 7C79
+0xEEF8 0x2179 # 3 7C7A
+0xEEF9 0xFFE2 # 3 7C7B
+0xEEFA 0xFFE4 # 3 7C7C
+0xEEFB 0xFF07 # 3 7C7D
+0xEEFC 0xFF02 # 3 7C7E
+0xF040 0xE000 # 4
+0xF041 0xE001 # 4
+0xF042 0xE002 # 4
+0xF043 0xE003 # 4
+0xF044 0xE004 # 4
+0xF045 0xE005 # 4
+0xF046 0xE006 # 4
+0xF047 0xE007 # 4
+0xF048 0xE008 # 4
+0xF049 0xE009 # 4
+0xF04A 0xE00A # 4
+0xF04B 0xE00B # 4
+0xF04C 0xE00C # 4
+0xF04D 0xE00D # 4
+0xF04E 0xE00E # 4
+0xF04F 0xE00F # 4
+0xF050 0xE010 # 4
+0xF051 0xE011 # 4
+0xF052 0xE012 # 4
+0xF053 0xE013 # 4
+0xF054 0xE014 # 4
+0xF055 0xE015 # 4
+0xF056 0xE016 # 4
+0xF057 0xE017 # 4
+0xF058 0xE018 # 4
+0xF059 0xE019 # 4
+0xF05A 0xE01A # 4
+0xF05B 0xE01B # 4
+0xF05C 0xE01C # 4
+0xF05D 0xE01D # 4
+0xF05E 0xE01E # 4
+0xF05F 0xE01F # 4
+0xF060 0xE020 # 4
+0xF061 0xE021 # 4
+0xF062 0xE022 # 4
+0xF063 0xE023 # 4
+0xF064 0xE024 # 4
+0xF065 0xE025 # 4
+0xF066 0xE026 # 4
+0xF067 0xE027 # 4
+0xF068 0xE028 # 4
+0xF069 0xE029 # 4
+0xF06A 0xE02A # 4
+0xF06B 0xE02B # 4
+0xF06C 0xE02C # 4
+0xF06D 0xE02D # 4
+0xF06E 0xE02E # 4
+0xF06F 0xE02F # 4
+0xF070 0xE030 # 4
+0xF071 0xE031 # 4
+0xF072 0xE032 # 4
+0xF073 0xE033 # 4
+0xF074 0xE034 # 4
+0xF075 0xE035 # 4
+0xF076 0xE036 # 4
+0xF077 0xE037 # 4
+0xF078 0xE038 # 4
+0xF079 0xE039 # 4
+0xF07A 0xE03A # 4
+0xF07B 0xE03B # 4
+0xF07C 0xE03C # 4
+0xF07D 0xE03D # 4
+0xF07E 0xE03E # 4
+0xF080 0xE03F # 4
+0xF081 0xE040 # 4
+0xF082 0xE041 # 4
+0xF083 0xE042 # 4
+0xF084 0xE043 # 4
+0xF085 0xE044 # 4
+0xF086 0xE045 # 4
+0xF087 0xE046 # 4
+0xF088 0xE047 # 4
+0xF089 0xE048 # 4
+0xF08A 0xE049 # 4
+0xF08B 0xE04A # 4
+0xF08C 0xE04B # 4
+0xF08D 0xE04C # 4
+0xF08E 0xE04D # 4
+0xF08F 0xE04E # 4
+0xF090 0xE04F # 4
+0xF091 0xE050 # 4
+0xF092 0xE051 # 4
+0xF093 0xE052 # 4
+0xF094 0xE053 # 4
+0xF095 0xE054 # 4
+0xF096 0xE055 # 4
+0xF097 0xE056 # 4
+0xF098 0xE057 # 4
+0xF099 0xE058 # 4
+0xF09A 0xE059 # 4
+0xF09B 0xE05A # 4
+0xF09C 0xE05B # 4
+0xF09D 0xE05C # 4
+0xF09E 0xE05D # 4
+0xF09F 0xE05E # 4
+0xF0A0 0xE05F # 4
+0xF0A1 0xE060 # 4
+0xF0A2 0xE061 # 4
+0xF0A3 0xE062 # 4
+0xF0A4 0xE063 # 4
+0xF0A5 0xE064 # 4
+0xF0A6 0xE065 # 4
+0xF0A7 0xE066 # 4
+0xF0A8 0xE067 # 4
+0xF0A9 0xE068 # 4
+0xF0AA 0xE069 # 4
+0xF0AB 0xE06A # 4
+0xF0AC 0xE06B # 4
+0xF0AD 0xE06C # 4
+0xF0AE 0xE06D # 4
+0xF0AF 0xE06E # 4
+0xF0B0 0xE06F # 4
+0xF0B1 0xE070 # 4
+0xF0B2 0xE071 # 4
+0xF0B3 0xE072 # 4
+0xF0B4 0xE073 # 4
+0xF0B5 0xE074 # 4
+0xF0B6 0xE075 # 4
+0xF0B7 0xE076 # 4
+0xF0B8 0xE077 # 4
+0xF0B9 0xE078 # 4
+0xF0BA 0xE079 # 4
+0xF0BB 0xE07A # 4
+0xF0BC 0xE07B # 4
+0xF0BD 0xE07C # 4
+0xF0BE 0xE07D # 4
+0xF0BF 0xE07E # 4
+0xF0C0 0xE07F # 4
+0xF0C1 0xE080 # 4
+0xF0C2 0xE081 # 4
+0xF0C3 0xE082 # 4
+0xF0C4 0xE083 # 4
+0xF0C5 0xE084 # 4
+0xF0C6 0xE085 # 4
+0xF0C7 0xE086 # 4
+0xF0C8 0xE087 # 4
+0xF0C9 0xE088 # 4
+0xF0CA 0xE089 # 4
+0xF0CB 0xE08A # 4
+0xF0CC 0xE08B # 4
+0xF0CD 0xE08C # 4
+0xF0CE 0xE08D # 4
+0xF0CF 0xE08E # 4
+0xF0D0 0xE08F # 4
+0xF0D1 0xE090 # 4
+0xF0D2 0xE091 # 4
+0xF0D3 0xE092 # 4
+0xF0D4 0xE093 # 4
+0xF0D5 0xE094 # 4
+0xF0D6 0xE095 # 4
+0xF0D7 0xE096 # 4
+0xF0D8 0xE097 # 4
+0xF0D9 0xE098 # 4
+0xF0DA 0xE099 # 4
+0xF0DB 0xE09A # 4
+0xF0DC 0xE09B # 4
+0xF0DD 0xE09C # 4
+0xF0DE 0xE09D # 4
+0xF0DF 0xE09E # 4
+0xF0E0 0xE09F # 4
+0xF0E1 0xE0A0 # 4
+0xF0E2 0xE0A1 # 4
+0xF0E3 0xE0A2 # 4
+0xF0E4 0xE0A3 # 4
+0xF0E5 0xE0A4 # 4
+0xF0E6 0xE0A5 # 4
+0xF0E7 0xE0A6 # 4
+0xF0E8 0xE0A7 # 4
+0xF0E9 0xE0A8 # 4
+0xF0EA 0xE0A9 # 4
+0xF0EB 0xE0AA # 4
+0xF0EC 0xE0AB # 4
+0xF0ED 0xE0AC # 4
+0xF0EE 0xE0AD # 4
+0xF0EF 0xE0AE # 4
+0xF0F0 0xE0AF # 4
+0xF0F1 0xE0B0 # 4
+0xF0F2 0xE0B1 # 4
+0xF0F3 0xE0B2 # 4
+0xF0F4 0xE0B3 # 4
+0xF0F5 0xE0B4 # 4
+0xF0F6 0xE0B5 # 4
+0xF0F7 0xE0B6 # 4
+0xF0F8 0xE0B7 # 4
+0xF0F9 0xE0B8 # 4
+0xF0FA 0xE0B9 # 4
+0xF0FB 0xE0BA # 4
+0xF0FC 0xE0BB # 4
+0xF140 0xE0BC # 4
+0xF141 0xE0BD # 4
+0xF142 0xE0BE # 4
+0xF143 0xE0BF # 4
+0xF144 0xE0C0 # 4
+0xF145 0xE0C1 # 4
+0xF146 0xE0C2 # 4
+0xF147 0xE0C3 # 4
+0xF148 0xE0C4 # 4
+0xF149 0xE0C5 # 4
+0xF14A 0xE0C6 # 4
+0xF14B 0xE0C7 # 4
+0xF14C 0xE0C8 # 4
+0xF14D 0xE0C9 # 4
+0xF14E 0xE0CA # 4
+0xF14F 0xE0CB # 4
+0xF150 0xE0CC # 4
+0xF151 0xE0CD # 4
+0xF152 0xE0CE # 4
+0xF153 0xE0CF # 4
+0xF154 0xE0D0 # 4
+0xF155 0xE0D1 # 4
+0xF156 0xE0D2 # 4
+0xF157 0xE0D3 # 4
+0xF158 0xE0D4 # 4
+0xF159 0xE0D5 # 4
+0xF15A 0xE0D6 # 4
+0xF15B 0xE0D7 # 4
+0xF15C 0xE0D8 # 4
+0xF15D 0xE0D9 # 4
+0xF15E 0xE0DA # 4
+0xF15F 0xE0DB # 4
+0xF160 0xE0DC # 4
+0xF161 0xE0DD # 4
+0xF162 0xE0DE # 4
+0xF163 0xE0DF # 4
+0xF164 0xE0E0 # 4
+0xF165 0xE0E1 # 4
+0xF166 0xE0E2 # 4
+0xF167 0xE0E3 # 4
+0xF168 0xE0E4 # 4
+0xF169 0xE0E5 # 4
+0xF16A 0xE0E6 # 4
+0xF16B 0xE0E7 # 4
+0xF16C 0xE0E8 # 4
+0xF16D 0xE0E9 # 4
+0xF16E 0xE0EA # 4
+0xF16F 0xE0EB # 4
+0xF170 0xE0EC # 4
+0xF171 0xE0ED # 4
+0xF172 0xE0EE # 4
+0xF173 0xE0EF # 4
+0xF174 0xE0F0 # 4
+0xF175 0xE0F1 # 4
+0xF176 0xE0F2 # 4
+0xF177 0xE0F3 # 4
+0xF178 0xE0F4 # 4
+0xF179 0xE0F5 # 4
+0xF17A 0xE0F6 # 4
+0xF17B 0xE0F7 # 4
+0xF17C 0xE0F8 # 4
+0xF17D 0xE0F9 # 4
+0xF17E 0xE0FA # 4
+0xF180 0xE0FB # 4
+0xF181 0xE0FC # 4
+0xF182 0xE0FD # 4
+0xF183 0xE0FE # 4
+0xF184 0xE0FF # 4
+0xF185 0xE100 # 4
+0xF186 0xE101 # 4
+0xF187 0xE102 # 4
+0xF188 0xE103 # 4
+0xF189 0xE104 # 4
+0xF18A 0xE105 # 4
+0xF18B 0xE106 # 4
+0xF18C 0xE107 # 4
+0xF18D 0xE108 # 4
+0xF18E 0xE109 # 4
+0xF18F 0xE10A # 4
+0xF190 0xE10B # 4
+0xF191 0xE10C # 4
+0xF192 0xE10D # 4
+0xF193 0xE10E # 4
+0xF194 0xE10F # 4
+0xF195 0xE110 # 4
+0xF196 0xE111 # 4
+0xF197 0xE112 # 4
+0xF198 0xE113 # 4
+0xF199 0xE114 # 4
+0xF19A 0xE115 # 4
+0xF19B 0xE116 # 4
+0xF19C 0xE117 # 4
+0xF19D 0xE118 # 4
+0xF19E 0xE119 # 4
+0xF19F 0xE11A # 4
+0xF1A0 0xE11B # 4
+0xF1A1 0xE11C # 4
+0xF1A2 0xE11D # 4
+0xF1A3 0xE11E # 4
+0xF1A4 0xE11F # 4
+0xF1A5 0xE120 # 4
+0xF1A6 0xE121 # 4
+0xF1A7 0xE122 # 4
+0xF1A8 0xE123 # 4
+0xF1A9 0xE124 # 4
+0xF1AA 0xE125 # 4
+0xF1AB 0xE126 # 4
+0xF1AC 0xE127 # 4
+0xF1AD 0xE128 # 4
+0xF1AE 0xE129 # 4
+0xF1AF 0xE12A # 4
+0xF1B0 0xE12B # 4
+0xF1B1 0xE12C # 4
+0xF1B2 0xE12D # 4
+0xF1B3 0xE12E # 4
+0xF1B4 0xE12F # 4
+0xF1B5 0xE130 # 4
+0xF1B6 0xE131 # 4
+0xF1B7 0xE132 # 4
+0xF1B8 0xE133 # 4
+0xF1B9 0xE134 # 4
+0xF1BA 0xE135 # 4
+0xF1BB 0xE136 # 4
+0xF1BC 0xE137 # 4
+0xF1BD 0xE138 # 4
+0xF1BE 0xE139 # 4
+0xF1BF 0xE13A # 4
+0xF1C0 0xE13B # 4
+0xF1C1 0xE13C # 4
+0xF1C2 0xE13D # 4
+0xF1C3 0xE13E # 4
+0xF1C4 0xE13F # 4
+0xF1C5 0xE140 # 4
+0xF1C6 0xE141 # 4
+0xF1C7 0xE142 # 4
+0xF1C8 0xE143 # 4
+0xF1C9 0xE144 # 4
+0xF1CA 0xE145 # 4
+0xF1CB 0xE146 # 4
+0xF1CC 0xE147 # 4
+0xF1CD 0xE148 # 4
+0xF1CE 0xE149 # 4
+0xF1CF 0xE14A # 4
+0xF1D0 0xE14B # 4
+0xF1D1 0xE14C # 4
+0xF1D2 0xE14D # 4
+0xF1D3 0xE14E # 4
+0xF1D4 0xE14F # 4
+0xF1D5 0xE150 # 4
+0xF1D6 0xE151 # 4
+0xF1D7 0xE152 # 4
+0xF1D8 0xE153 # 4
+0xF1D9 0xE154 # 4
+0xF1DA 0xE155 # 4
+0xF1DB 0xE156 # 4
+0xF1DC 0xE157 # 4
+0xF1DD 0xE158 # 4
+0xF1DE 0xE159 # 4
+0xF1DF 0xE15A # 4
+0xF1E0 0xE15B # 4
+0xF1E1 0xE15C # 4
+0xF1E2 0xE15D # 4
+0xF1E3 0xE15E # 4
+0xF1E4 0xE15F # 4
+0xF1E5 0xE160 # 4
+0xF1E6 0xE161 # 4
+0xF1E7 0xE162 # 4
+0xF1E8 0xE163 # 4
+0xF1E9 0xE164 # 4
+0xF1EA 0xE165 # 4
+0xF1EB 0xE166 # 4
+0xF1EC 0xE167 # 4
+0xF1ED 0xE168 # 4
+0xF1EE 0xE169 # 4
+0xF1EF 0xE16A # 4
+0xF1F0 0xE16B # 4
+0xF1F1 0xE16C # 4
+0xF1F2 0xE16D # 4
+0xF1F3 0xE16E # 4
+0xF1F4 0xE16F # 4
+0xF1F5 0xE170 # 4
+0xF1F6 0xE171 # 4
+0xF1F7 0xE172 # 4
+0xF1F8 0xE173 # 4
+0xF1F9 0xE174 # 4
+0xF1FA 0xE175 # 4
+0xF1FB 0xE176 # 4
+0xF1FC 0xE177 # 4
+0xF240 0xE178 # 4
+0xF241 0xE179 # 4
+0xF242 0xE17A # 4
+0xF243 0xE17B # 4
+0xF244 0xE17C # 4
+0xF245 0xE17D # 4
+0xF246 0xE17E # 4
+0xF247 0xE17F # 4
+0xF248 0xE180 # 4
+0xF249 0xE181 # 4
+0xF24A 0xE182 # 4
+0xF24B 0xE183 # 4
+0xF24C 0xE184 # 4
+0xF24D 0xE185 # 4
+0xF24E 0xE186 # 4
+0xF24F 0xE187 # 4
+0xF250 0xE188 # 4
+0xF251 0xE189 # 4
+0xF252 0xE18A # 4
+0xF253 0xE18B # 4
+0xF254 0xE18C # 4
+0xF255 0xE18D # 4
+0xF256 0xE18E # 4
+0xF257 0xE18F # 4
+0xF258 0xE190 # 4
+0xF259 0xE191 # 4
+0xF25A 0xE192 # 4
+0xF25B 0xE193 # 4
+0xF25C 0xE194 # 4
+0xF25D 0xE195 # 4
+0xF25E 0xE196 # 4
+0xF25F 0xE197 # 4
+0xF260 0xE198 # 4
+0xF261 0xE199 # 4
+0xF262 0xE19A # 4
+0xF263 0xE19B # 4
+0xF264 0xE19C # 4
+0xF265 0xE19D # 4
+0xF266 0xE19E # 4
+0xF267 0xE19F # 4
+0xF268 0xE1A0 # 4
+0xF269 0xE1A1 # 4
+0xF26A 0xE1A2 # 4
+0xF26B 0xE1A3 # 4
+0xF26C 0xE1A4 # 4
+0xF26D 0xE1A5 # 4
+0xF26E 0xE1A6 # 4
+0xF26F 0xE1A7 # 4
+0xF270 0xE1A8 # 4
+0xF271 0xE1A9 # 4
+0xF272 0xE1AA # 4
+0xF273 0xE1AB # 4
+0xF274 0xE1AC # 4
+0xF275 0xE1AD # 4
+0xF276 0xE1AE # 4
+0xF277 0xE1AF # 4
+0xF278 0xE1B0 # 4
+0xF279 0xE1B1 # 4
+0xF27A 0xE1B2 # 4
+0xF27B 0xE1B3 # 4
+0xF27C 0xE1B4 # 4
+0xF27D 0xE1B5 # 4
+0xF27E 0xE1B6 # 4
+0xF280 0xE1B7 # 4
+0xF281 0xE1B8 # 4
+0xF282 0xE1B9 # 4
+0xF283 0xE1BA # 4
+0xF284 0xE1BB # 4
+0xF285 0xE1BC # 4
+0xF286 0xE1BD # 4
+0xF287 0xE1BE # 4
+0xF288 0xE1BF # 4
+0xF289 0xE1C0 # 4
+0xF28A 0xE1C1 # 4
+0xF28B 0xE1C2 # 4
+0xF28C 0xE1C3 # 4
+0xF28D 0xE1C4 # 4
+0xF28E 0xE1C5 # 4
+0xF28F 0xE1C6 # 4
+0xF290 0xE1C7 # 4
+0xF291 0xE1C8 # 4
+0xF292 0xE1C9 # 4
+0xF293 0xE1CA # 4
+0xF294 0xE1CB # 4
+0xF295 0xE1CC # 4
+0xF296 0xE1CD # 4
+0xF297 0xE1CE # 4
+0xF298 0xE1CF # 4
+0xF299 0xE1D0 # 4
+0xF29A 0xE1D1 # 4
+0xF29B 0xE1D2 # 4
+0xF29C 0xE1D3 # 4
+0xF29D 0xE1D4 # 4
+0xF29E 0xE1D5 # 4
+0xF29F 0xE1D6 # 4
+0xF2A0 0xE1D7 # 4
+0xF2A1 0xE1D8 # 4
+0xF2A2 0xE1D9 # 4
+0xF2A3 0xE1DA # 4
+0xF2A4 0xE1DB # 4
+0xF2A5 0xE1DC # 4
+0xF2A6 0xE1DD # 4
+0xF2A7 0xE1DE # 4
+0xF2A8 0xE1DF # 4
+0xF2A9 0xE1E0 # 4
+0xF2AA 0xE1E1 # 4
+0xF2AB 0xE1E2 # 4
+0xF2AC 0xE1E3 # 4
+0xF2AD 0xE1E4 # 4
+0xF2AE 0xE1E5 # 4
+0xF2AF 0xE1E6 # 4
+0xF2B0 0xE1E7 # 4
+0xF2B1 0xE1E8 # 4
+0xF2B2 0xE1E9 # 4
+0xF2B3 0xE1EA # 4
+0xF2B4 0xE1EB # 4
+0xF2B5 0xE1EC # 4
+0xF2B6 0xE1ED # 4
+0xF2B7 0xE1EE # 4
+0xF2B8 0xE1EF # 4
+0xF2B9 0xE1F0 # 4
+0xF2BA 0xE1F1 # 4
+0xF2BB 0xE1F2 # 4
+0xF2BC 0xE1F3 # 4
+0xF2BD 0xE1F4 # 4
+0xF2BE 0xE1F5 # 4
+0xF2BF 0xE1F6 # 4
+0xF2C0 0xE1F7 # 4
+0xF2C1 0xE1F8 # 4
+0xF2C2 0xE1F9 # 4
+0xF2C3 0xE1FA # 4
+0xF2C4 0xE1FB # 4
+0xF2C5 0xE1FC # 4
+0xF2C6 0xE1FD # 4
+0xF2C7 0xE1FE # 4
+0xF2C8 0xE1FF # 4
+0xF2C9 0xE200 # 4
+0xF2CA 0xE201 # 4
+0xF2CB 0xE202 # 4
+0xF2CC 0xE203 # 4
+0xF2CD 0xE204 # 4
+0xF2CE 0xE205 # 4
+0xF2CF 0xE206 # 4
+0xF2D0 0xE207 # 4
+0xF2D1 0xE208 # 4
+0xF2D2 0xE209 # 4
+0xF2D3 0xE20A # 4
+0xF2D4 0xE20B # 4
+0xF2D5 0xE20C # 4
+0xF2D6 0xE20D # 4
+0xF2D7 0xE20E # 4
+0xF2D8 0xE20F # 4
+0xF2D9 0xE210 # 4
+0xF2DA 0xE211 # 4
+0xF2DB 0xE212 # 4
+0xF2DC 0xE213 # 4
+0xF2DD 0xE214 # 4
+0xF2DE 0xE215 # 4
+0xF2DF 0xE216 # 4
+0xF2E0 0xE217 # 4
+0xF2E1 0xE218 # 4
+0xF2E2 0xE219 # 4
+0xF2E3 0xE21A # 4
+0xF2E4 0xE21B # 4
+0xF2E5 0xE21C # 4
+0xF2E6 0xE21D # 4
+0xF2E7 0xE21E # 4
+0xF2E8 0xE21F # 4
+0xF2E9 0xE220 # 4
+0xF2EA 0xE221 # 4
+0xF2EB 0xE222 # 4
+0xF2EC 0xE223 # 4
+0xF2ED 0xE224 # 4
+0xF2EE 0xE225 # 4
+0xF2EF 0xE226 # 4
+0xF2F0 0xE227 # 4
+0xF2F1 0xE228 # 4
+0xF2F2 0xE229 # 4
+0xF2F3 0xE22A # 4
+0xF2F4 0xE22B # 4
+0xF2F5 0xE22C # 4
+0xF2F6 0xE22D # 4
+0xF2F7 0xE22E # 4
+0xF2F8 0xE22F # 4
+0xF2F9 0xE230 # 4
+0xF2FA 0xE231 # 4
+0xF2FB 0xE232 # 4
+0xF2FC 0xE233 # 4
+0xF340 0xE234 # 4
+0xF341 0xE235 # 4
+0xF342 0xE236 # 4
+0xF343 0xE237 # 4
+0xF344 0xE238 # 4
+0xF345 0xE239 # 4
+0xF346 0xE23A # 4
+0xF347 0xE23B # 4
+0xF348 0xE23C # 4
+0xF349 0xE23D # 4
+0xF34A 0xE23E # 4
+0xF34B 0xE23F # 4
+0xF34C 0xE240 # 4
+0xF34D 0xE241 # 4
+0xF34E 0xE242 # 4
+0xF34F 0xE243 # 4
+0xF350 0xE244 # 4
+0xF351 0xE245 # 4
+0xF352 0xE246 # 4
+0xF353 0xE247 # 4
+0xF354 0xE248 # 4
+0xF355 0xE249 # 4
+0xF356 0xE24A # 4
+0xF357 0xE24B # 4
+0xF358 0xE24C # 4
+0xF359 0xE24D # 4
+0xF35A 0xE24E # 4
+0xF35B 0xE24F # 4
+0xF35C 0xE250 # 4
+0xF35D 0xE251 # 4
+0xF35E 0xE252 # 4
+0xF35F 0xE253 # 4
+0xF360 0xE254 # 4
+0xF361 0xE255 # 4
+0xF362 0xE256 # 4
+0xF363 0xE257 # 4
+0xF364 0xE258 # 4
+0xF365 0xE259 # 4
+0xF366 0xE25A # 4
+0xF367 0xE25B # 4
+0xF368 0xE25C # 4
+0xF369 0xE25D # 4
+0xF36A 0xE25E # 4
+0xF36B 0xE25F # 4
+0xF36C 0xE260 # 4
+0xF36D 0xE261 # 4
+0xF36E 0xE262 # 4
+0xF36F 0xE263 # 4
+0xF370 0xE264 # 4
+0xF371 0xE265 # 4
+0xF372 0xE266 # 4
+0xF373 0xE267 # 4
+0xF374 0xE268 # 4
+0xF375 0xE269 # 4
+0xF376 0xE26A # 4
+0xF377 0xE26B # 4
+0xF378 0xE26C # 4
+0xF379 0xE26D # 4
+0xF37A 0xE26E # 4
+0xF37B 0xE26F # 4
+0xF37C 0xE270 # 4
+0xF37D 0xE271 # 4
+0xF37E 0xE272 # 4
+0xF380 0xE273 # 4
+0xF381 0xE274 # 4
+0xF382 0xE275 # 4
+0xF383 0xE276 # 4
+0xF384 0xE277 # 4
+0xF385 0xE278 # 4
+0xF386 0xE279 # 4
+0xF387 0xE27A # 4
+0xF388 0xE27B # 4
+0xF389 0xE27C # 4
+0xF38A 0xE27D # 4
+0xF38B 0xE27E # 4
+0xF38C 0xE27F # 4
+0xF38D 0xE280 # 4
+0xF38E 0xE281 # 4
+0xF38F 0xE282 # 4
+0xF390 0xE283 # 4
+0xF391 0xE284 # 4
+0xF392 0xE285 # 4
+0xF393 0xE286 # 4
+0xF394 0xE287 # 4
+0xF395 0xE288 # 4
+0xF396 0xE289 # 4
+0xF397 0xE28A # 4
+0xF398 0xE28B # 4
+0xF399 0xE28C # 4
+0xF39A 0xE28D # 4
+0xF39B 0xE28E # 4
+0xF39C 0xE28F # 4
+0xF39D 0xE290 # 4
+0xF39E 0xE291 # 4
+0xF39F 0xE292 # 4
+0xF3A0 0xE293 # 4
+0xF3A1 0xE294 # 4
+0xF3A2 0xE295 # 4
+0xF3A3 0xE296 # 4
+0xF3A4 0xE297 # 4
+0xF3A5 0xE298 # 4
+0xF3A6 0xE299 # 4
+0xF3A7 0xE29A # 4
+0xF3A8 0xE29B # 4
+0xF3A9 0xE29C # 4
+0xF3AA 0xE29D # 4
+0xF3AB 0xE29E # 4
+0xF3AC 0xE29F # 4
+0xF3AD 0xE2A0 # 4
+0xF3AE 0xE2A1 # 4
+0xF3AF 0xE2A2 # 4
+0xF3B0 0xE2A3 # 4
+0xF3B1 0xE2A4 # 4
+0xF3B2 0xE2A5 # 4
+0xF3B3 0xE2A6 # 4
+0xF3B4 0xE2A7 # 4
+0xF3B5 0xE2A8 # 4
+0xF3B6 0xE2A9 # 4
+0xF3B7 0xE2AA # 4
+0xF3B8 0xE2AB # 4
+0xF3B9 0xE2AC # 4
+0xF3BA 0xE2AD # 4
+0xF3BB 0xE2AE # 4
+0xF3BC 0xE2AF # 4
+0xF3BD 0xE2B0 # 4
+0xF3BE 0xE2B1 # 4
+0xF3BF 0xE2B2 # 4
+0xF3C0 0xE2B3 # 4
+0xF3C1 0xE2B4 # 4
+0xF3C2 0xE2B5 # 4
+0xF3C3 0xE2B6 # 4
+0xF3C4 0xE2B7 # 4
+0xF3C5 0xE2B8 # 4
+0xF3C6 0xE2B9 # 4
+0xF3C7 0xE2BA # 4
+0xF3C8 0xE2BB # 4
+0xF3C9 0xE2BC # 4
+0xF3CA 0xE2BD # 4
+0xF3CB 0xE2BE # 4
+0xF3CC 0xE2BF # 4
+0xF3CD 0xE2C0 # 4
+0xF3CE 0xE2C1 # 4
+0xF3CF 0xE2C2 # 4
+0xF3D0 0xE2C3 # 4
+0xF3D1 0xE2C4 # 4
+0xF3D2 0xE2C5 # 4
+0xF3D3 0xE2C6 # 4
+0xF3D4 0xE2C7 # 4
+0xF3D5 0xE2C8 # 4
+0xF3D6 0xE2C9 # 4
+0xF3D7 0xE2CA # 4
+0xF3D8 0xE2CB # 4
+0xF3D9 0xE2CC # 4
+0xF3DA 0xE2CD # 4
+0xF3DB 0xE2CE # 4
+0xF3DC 0xE2CF # 4
+0xF3DD 0xE2D0 # 4
+0xF3DE 0xE2D1 # 4
+0xF3DF 0xE2D2 # 4
+0xF3E0 0xE2D3 # 4
+0xF3E1 0xE2D4 # 4
+0xF3E2 0xE2D5 # 4
+0xF3E3 0xE2D6 # 4
+0xF3E4 0xE2D7 # 4
+0xF3E5 0xE2D8 # 4
+0xF3E6 0xE2D9 # 4
+0xF3E7 0xE2DA # 4
+0xF3E8 0xE2DB # 4
+0xF3E9 0xE2DC # 4
+0xF3EA 0xE2DD # 4
+0xF3EB 0xE2DE # 4
+0xF3EC 0xE2DF # 4
+0xF3ED 0xE2E0 # 4
+0xF3EE 0xE2E1 # 4
+0xF3EF 0xE2E2 # 4
+0xF3F0 0xE2E3 # 4
+0xF3F1 0xE2E4 # 4
+0xF3F2 0xE2E5 # 4
+0xF3F3 0xE2E6 # 4
+0xF3F4 0xE2E7 # 4
+0xF3F5 0xE2E8 # 4
+0xF3F6 0xE2E9 # 4
+0xF3F7 0xE2EA # 4
+0xF3F8 0xE2EB # 4
+0xF3F9 0xE2EC # 4
+0xF3FA 0xE2ED # 4
+0xF3FB 0xE2EE # 4
+0xF3FC 0xE2EF # 4
+0xF440 0xE2F0 # 4
+0xF441 0xE2F1 # 4
+0xF442 0xE2F2 # 4
+0xF443 0xE2F3 # 4
+0xF444 0xE2F4 # 4
+0xF445 0xE2F5 # 4
+0xF446 0xE2F6 # 4
+0xF447 0xE2F7 # 4
+0xF448 0xE2F8 # 4
+0xF449 0xE2F9 # 4
+0xF44A 0xE2FA # 4
+0xF44B 0xE2FB # 4
+0xF44C 0xE2FC # 4
+0xF44D 0xE2FD # 4
+0xF44E 0xE2FE # 4
+0xF44F 0xE2FF # 4
+0xF450 0xE300 # 4
+0xF451 0xE301 # 4
+0xF452 0xE302 # 4
+0xF453 0xE303 # 4
+0xF454 0xE304 # 4
+0xF455 0xE305 # 4
+0xF456 0xE306 # 4
+0xF457 0xE307 # 4
+0xF458 0xE308 # 4
+0xF459 0xE309 # 4
+0xF45A 0xE30A # 4
+0xF45B 0xE30B # 4
+0xF45C 0xE30C # 4
+0xF45D 0xE30D # 4
+0xF45E 0xE30E # 4
+0xF45F 0xE30F # 4
+0xF460 0xE310 # 4
+0xF461 0xE311 # 4
+0xF462 0xE312 # 4
+0xF463 0xE313 # 4
+0xF464 0xE314 # 4
+0xF465 0xE315 # 4
+0xF466 0xE316 # 4
+0xF467 0xE317 # 4
+0xF468 0xE318 # 4
+0xF469 0xE319 # 4
+0xF46A 0xE31A # 4
+0xF46B 0xE31B # 4
+0xF46C 0xE31C # 4
+0xF46D 0xE31D # 4
+0xF46E 0xE31E # 4
+0xF46F 0xE31F # 4
+0xF470 0xE320 # 4
+0xF471 0xE321 # 4
+0xF472 0xE322 # 4
+0xF473 0xE323 # 4
+0xF474 0xE324 # 4
+0xF475 0xE325 # 4
+0xF476 0xE326 # 4
+0xF477 0xE327 # 4
+0xF478 0xE328 # 4
+0xF479 0xE329 # 4
+0xF47A 0xE32A # 4
+0xF47B 0xE32B # 4
+0xF47C 0xE32C # 4
+0xF47D 0xE32D # 4
+0xF47E 0xE32E # 4
+0xF480 0xE32F # 4
+0xF481 0xE330 # 4
+0xF482 0xE331 # 4
+0xF483 0xE332 # 4
+0xF484 0xE333 # 4
+0xF485 0xE334 # 4
+0xF486 0xE335 # 4
+0xF487 0xE336 # 4
+0xF488 0xE337 # 4
+0xF489 0xE338 # 4
+0xF48A 0xE339 # 4
+0xF48B 0xE33A # 4
+0xF48C 0xE33B # 4
+0xF48D 0xE33C # 4
+0xF48E 0xE33D # 4
+0xF48F 0xE33E # 4
+0xF490 0xE33F # 4
+0xF491 0xE340 # 4
+0xF492 0xE341 # 4
+0xF493 0xE342 # 4
+0xF494 0xE343 # 4
+0xF495 0xE344 # 4
+0xF496 0xE345 # 4
+0xF497 0xE346 # 4
+0xF498 0xE347 # 4
+0xF499 0xE348 # 4
+0xF49A 0xE349 # 4
+0xF49B 0xE34A # 4
+0xF49C 0xE34B # 4
+0xF49D 0xE34C # 4
+0xF49E 0xE34D # 4
+0xF49F 0xE34E # 4
+0xF4A0 0xE34F # 4
+0xF4A1 0xE350 # 4
+0xF4A2 0xE351 # 4
+0xF4A3 0xE352 # 4
+0xF4A4 0xE353 # 4
+0xF4A5 0xE354 # 4
+0xF4A6 0xE355 # 4
+0xF4A7 0xE356 # 4
+0xF4A8 0xE357 # 4
+0xF4A9 0xE358 # 4
+0xF4AA 0xE359 # 4
+0xF4AB 0xE35A # 4
+0xF4AC 0xE35B # 4
+0xF4AD 0xE35C # 4
+0xF4AE 0xE35D # 4
+0xF4AF 0xE35E # 4
+0xF4B0 0xE35F # 4
+0xF4B1 0xE360 # 4
+0xF4B2 0xE361 # 4
+0xF4B3 0xE362 # 4
+0xF4B4 0xE363 # 4
+0xF4B5 0xE364 # 4
+0xF4B6 0xE365 # 4
+0xF4B7 0xE366 # 4
+0xF4B8 0xE367 # 4
+0xF4B9 0xE368 # 4
+0xF4BA 0xE369 # 4
+0xF4BB 0xE36A # 4
+0xF4BC 0xE36B # 4
+0xF4BD 0xE36C # 4
+0xF4BE 0xE36D # 4
+0xF4BF 0xE36E # 4
+0xF4C0 0xE36F # 4
+0xF4C1 0xE370 # 4
+0xF4C2 0xE371 # 4
+0xF4C3 0xE372 # 4
+0xF4C4 0xE373 # 4
+0xF4C5 0xE374 # 4
+0xF4C6 0xE375 # 4
+0xF4C7 0xE376 # 4
+0xF4C8 0xE377 # 4
+0xF4C9 0xE378 # 4
+0xF4CA 0xE379 # 4
+0xF4CB 0xE37A # 4
+0xF4CC 0xE37B # 4
+0xF4CD 0xE37C # 4
+0xF4CE 0xE37D # 4
+0xF4CF 0xE37E # 4
+0xF4D0 0xE37F # 4
+0xF4D1 0xE380 # 4
+0xF4D2 0xE381 # 4
+0xF4D3 0xE382 # 4
+0xF4D4 0xE383 # 4
+0xF4D5 0xE384 # 4
+0xF4D6 0xE385 # 4
+0xF4D7 0xE386 # 4
+0xF4D8 0xE387 # 4
+0xF4D9 0xE388 # 4
+0xF4DA 0xE389 # 4
+0xF4DB 0xE38A # 4
+0xF4DC 0xE38B # 4
+0xF4DD 0xE38C # 4
+0xF4DE 0xE38D # 4
+0xF4DF 0xE38E # 4
+0xF4E0 0xE38F # 4
+0xF4E1 0xE390 # 4
+0xF4E2 0xE391 # 4
+0xF4E3 0xE392 # 4
+0xF4E4 0xE393 # 4
+0xF4E5 0xE394 # 4
+0xF4E6 0xE395 # 4
+0xF4E7 0xE396 # 4
+0xF4E8 0xE397 # 4
+0xF4E9 0xE398 # 4
+0xF4EA 0xE399 # 4
+0xF4EB 0xE39A # 4
+0xF4EC 0xE39B # 4
+0xF4ED 0xE39C # 4
+0xF4EE 0xE39D # 4
+0xF4EF 0xE39E # 4
+0xF4F0 0xE39F # 4
+0xF4F1 0xE3A0 # 4
+0xF4F2 0xE3A1 # 4
+0xF4F3 0xE3A2 # 4
+0xF4F4 0xE3A3 # 4
+0xF4F5 0xE3A4 # 4
+0xF4F6 0xE3A5 # 4
+0xF4F7 0xE3A6 # 4
+0xF4F8 0xE3A7 # 4
+0xF4F9 0xE3A8 # 4
+0xF4FA 0xE3A9 # 4
+0xF4FB 0xE3AA # 4
+0xF4FC 0xE3AB # 4
+0xF540 0xE3AC # 4
+0xF541 0xE3AD # 4
+0xF542 0xE3AE # 4
+0xF543 0xE3AF # 4
+0xF544 0xE3B0 # 4
+0xF545 0xE3B1 # 4
+0xF546 0xE3B2 # 4
+0xF547 0xE3B3 # 4
+0xF548 0xE3B4 # 4
+0xF549 0xE3B5 # 4
+0xF54A 0xE3B6 # 4
+0xF54B 0xE3B7 # 4
+0xF54C 0xE3B8 # 4
+0xF54D 0xE3B9 # 4
+0xF54E 0xE3BA # 4
+0xF54F 0xE3BB # 4
+0xF550 0xE3BC # 4
+0xF551 0xE3BD # 4
+0xF552 0xE3BE # 4
+0xF553 0xE3BF # 4
+0xF554 0xE3C0 # 4
+0xF555 0xE3C1 # 4
+0xF556 0xE3C2 # 4
+0xF557 0xE3C3 # 4
+0xF558 0xE3C4 # 4
+0xF559 0xE3C5 # 4
+0xF55A 0xE3C6 # 4
+0xF55B 0xE3C7 # 4
+0xF55C 0xE3C8 # 4
+0xF55D 0xE3C9 # 4
+0xF55E 0xE3CA # 4
+0xF55F 0xE3CB # 4
+0xF560 0xE3CC # 4
+0xF561 0xE3CD # 4
+0xF562 0xE3CE # 4
+0xF563 0xE3CF # 4
+0xF564 0xE3D0 # 4
+0xF565 0xE3D1 # 4
+0xF566 0xE3D2 # 4
+0xF567 0xE3D3 # 4
+0xF568 0xE3D4 # 4
+0xF569 0xE3D5 # 4
+0xF56A 0xE3D6 # 4
+0xF56B 0xE3D7 # 4
+0xF56C 0xE3D8 # 4
+0xF56D 0xE3D9 # 4
+0xF56E 0xE3DA # 4
+0xF56F 0xE3DB # 4
+0xF570 0xE3DC # 4
+0xF571 0xE3DD # 4
+0xF572 0xE3DE # 4
+0xF573 0xE3DF # 4
+0xF574 0xE3E0 # 4
+0xF575 0xE3E1 # 4
+0xF576 0xE3E2 # 4
+0xF577 0xE3E3 # 4
+0xF578 0xE3E4 # 4
+0xF579 0xE3E5 # 4
+0xF57A 0xE3E6 # 4
+0xF57B 0xE3E7 # 4
+0xF57C 0xE3E8 # 4
+0xF57D 0xE3E9 # 4
+0xF57E 0xE3EA # 4
+0xF580 0xE3EB # 4
+0xF581 0xE3EC # 4
+0xF582 0xE3ED # 4
+0xF583 0xE3EE # 4
+0xF584 0xE3EF # 4
+0xF585 0xE3F0 # 4
+0xF586 0xE3F1 # 4
+0xF587 0xE3F2 # 4
+0xF588 0xE3F3 # 4
+0xF589 0xE3F4 # 4
+0xF58A 0xE3F5 # 4
+0xF58B 0xE3F6 # 4
+0xF58C 0xE3F7 # 4
+0xF58D 0xE3F8 # 4
+0xF58E 0xE3F9 # 4
+0xF58F 0xE3FA # 4
+0xF590 0xE3FB # 4
+0xF591 0xE3FC # 4
+0xF592 0xE3FD # 4
+0xF593 0xE3FE # 4
+0xF594 0xE3FF # 4
+0xF595 0xE400 # 4
+0xF596 0xE401 # 4
+0xF597 0xE402 # 4
+0xF598 0xE403 # 4
+0xF599 0xE404 # 4
+0xF59A 0xE405 # 4
+0xF59B 0xE406 # 4
+0xF59C 0xE407 # 4
+0xF59D 0xE408 # 4
+0xF59E 0xE409 # 4
+0xF59F 0xE40A # 4
+0xF5A0 0xE40B # 4
+0xF5A1 0xE40C # 4
+0xF5A2 0xE40D # 4
+0xF5A3 0xE40E # 4
+0xF5A4 0xE40F # 4
+0xF5A5 0xE410 # 4
+0xF5A6 0xE411 # 4
+0xF5A7 0xE412 # 4
+0xF5A8 0xE413 # 4
+0xF5A9 0xE414 # 4
+0xF5AA 0xE415 # 4
+0xF5AB 0xE416 # 4
+0xF5AC 0xE417 # 4
+0xF5AD 0xE418 # 4
+0xF5AE 0xE419 # 4
+0xF5AF 0xE41A # 4
+0xF5B0 0xE41B # 4
+0xF5B1 0xE41C # 4
+0xF5B2 0xE41D # 4
+0xF5B3 0xE41E # 4
+0xF5B4 0xE41F # 4
+0xF5B5 0xE420 # 4
+0xF5B6 0xE421 # 4
+0xF5B7 0xE422 # 4
+0xF5B8 0xE423 # 4
+0xF5B9 0xE424 # 4
+0xF5BA 0xE425 # 4
+0xF5BB 0xE426 # 4
+0xF5BC 0xE427 # 4
+0xF5BD 0xE428 # 4
+0xF5BE 0xE429 # 4
+0xF5BF 0xE42A # 4
+0xF5C0 0xE42B # 4
+0xF5C1 0xE42C # 4
+0xF5C2 0xE42D # 4
+0xF5C3 0xE42E # 4
+0xF5C4 0xE42F # 4
+0xF5C5 0xE430 # 4
+0xF5C6 0xE431 # 4
+0xF5C7 0xE432 # 4
+0xF5C8 0xE433 # 4
+0xF5C9 0xE434 # 4
+0xF5CA 0xE435 # 4
+0xF5CB 0xE436 # 4
+0xF5CC 0xE437 # 4
+0xF5CD 0xE438 # 4
+0xF5CE 0xE439 # 4
+0xF5CF 0xE43A # 4
+0xF5D0 0xE43B # 4
+0xF5D1 0xE43C # 4
+0xF5D2 0xE43D # 4
+0xF5D3 0xE43E # 4
+0xF5D4 0xE43F # 4
+0xF5D5 0xE440 # 4
+0xF5D6 0xE441 # 4
+0xF5D7 0xE442 # 4
+0xF5D8 0xE443 # 4
+0xF5D9 0xE444 # 4
+0xF5DA 0xE445 # 4
+0xF5DB 0xE446 # 4
+0xF5DC 0xE447 # 4
+0xF5DD 0xE448 # 4
+0xF5DE 0xE449 # 4
+0xF5DF 0xE44A # 4
+0xF5E0 0xE44B # 4
+0xF5E1 0xE44C # 4
+0xF5E2 0xE44D # 4
+0xF5E3 0xE44E # 4
+0xF5E4 0xE44F # 4
+0xF5E5 0xE450 # 4
+0xF5E6 0xE451 # 4
+0xF5E7 0xE452 # 4
+0xF5E8 0xE453 # 4
+0xF5E9 0xE454 # 4
+0xF5EA 0xE455 # 4
+0xF5EB 0xE456 # 4
+0xF5EC 0xE457 # 4
+0xF5ED 0xE458 # 4
+0xF5EE 0xE459 # 4
+0xF5EF 0xE45A # 4
+0xF5F0 0xE45B # 4
+0xF5F1 0xE45C # 4
+0xF5F2 0xE45D # 4
+0xF5F3 0xE45E # 4
+0xF5F4 0xE45F # 4
+0xF5F5 0xE460 # 4
+0xF5F6 0xE461 # 4
+0xF5F7 0xE462 # 4
+0xF5F8 0xE463 # 4
+0xF5F9 0xE464 # 4
+0xF5FA 0xE465 # 4
+0xF5FB 0xE466 # 4
+0xF5FC 0xE467 # 4
+0xF640 0xE468 # 4
+0xF641 0xE469 # 4
+0xF642 0xE46A # 4
+0xF643 0xE46B # 4
+0xF644 0xE46C # 4
+0xF645 0xE46D # 4
+0xF646 0xE46E # 4
+0xF647 0xE46F # 4
+0xF648 0xE470 # 4
+0xF649 0xE471 # 4
+0xF64A 0xE472 # 4
+0xF64B 0xE473 # 4
+0xF64C 0xE474 # 4
+0xF64D 0xE475 # 4
+0xF64E 0xE476 # 4
+0xF64F 0xE477 # 4
+0xF650 0xE478 # 4
+0xF651 0xE479 # 4
+0xF652 0xE47A # 4
+0xF653 0xE47B # 4
+0xF654 0xE47C # 4
+0xF655 0xE47D # 4
+0xF656 0xE47E # 4
+0xF657 0xE47F # 4
+0xF658 0xE480 # 4
+0xF659 0xE481 # 4
+0xF65A 0xE482 # 4
+0xF65B 0xE483 # 4
+0xF65C 0xE484 # 4
+0xF65D 0xE485 # 4
+0xF65E 0xE486 # 4
+0xF65F 0xE487 # 4
+0xF660 0xE488 # 4
+0xF661 0xE489 # 4
+0xF662 0xE48A # 4
+0xF663 0xE48B # 4
+0xF664 0xE48C # 4
+0xF665 0xE48D # 4
+0xF666 0xE48E # 4
+0xF667 0xE48F # 4
+0xF668 0xE490 # 4
+0xF669 0xE491 # 4
+0xF66A 0xE492 # 4
+0xF66B 0xE493 # 4
+0xF66C 0xE494 # 4
+0xF66D 0xE495 # 4
+0xF66E 0xE496 # 4
+0xF66F 0xE497 # 4
+0xF670 0xE498 # 4
+0xF671 0xE499 # 4
+0xF672 0xE49A # 4
+0xF673 0xE49B # 4
+0xF674 0xE49C # 4
+0xF675 0xE49D # 4
+0xF676 0xE49E # 4
+0xF677 0xE49F # 4
+0xF678 0xE4A0 # 4
+0xF679 0xE4A1 # 4
+0xF67A 0xE4A2 # 4
+0xF67B 0xE4A3 # 4
+0xF67C 0xE4A4 # 4
+0xF67D 0xE4A5 # 4
+0xF67E 0xE4A6 # 4
+0xF680 0xE4A7 # 4
+0xF681 0xE4A8 # 4
+0xF682 0xE4A9 # 4
+0xF683 0xE4AA # 4
+0xF684 0xE4AB # 4
+0xF685 0xE4AC # 4
+0xF686 0xE4AD # 4
+0xF687 0xE4AE # 4
+0xF688 0xE4AF # 4
+0xF689 0xE4B0 # 4
+0xF68A 0xE4B1 # 4
+0xF68B 0xE4B2 # 4
+0xF68C 0xE4B3 # 4
+0xF68D 0xE4B4 # 4
+0xF68E 0xE4B5 # 4
+0xF68F 0xE4B6 # 4
+0xF690 0xE4B7 # 4
+0xF691 0xE4B8 # 4
+0xF692 0xE4B9 # 4
+0xF693 0xE4BA # 4
+0xF694 0xE4BB # 4
+0xF695 0xE4BC # 4
+0xF696 0xE4BD # 4
+0xF697 0xE4BE # 4
+0xF698 0xE4BF # 4
+0xF699 0xE4C0 # 4
+0xF69A 0xE4C1 # 4
+0xF69B 0xE4C2 # 4
+0xF69C 0xE4C3 # 4
+0xF69D 0xE4C4 # 4
+0xF69E 0xE4C5 # 4
+0xF69F 0xE4C6 # 4
+0xF6A0 0xE4C7 # 4
+0xF6A1 0xE4C8 # 4
+0xF6A2 0xE4C9 # 4
+0xF6A3 0xE4CA # 4
+0xF6A4 0xE4CB # 4
+0xF6A5 0xE4CC # 4
+0xF6A6 0xE4CD # 4
+0xF6A7 0xE4CE # 4
+0xF6A8 0xE4CF # 4
+0xF6A9 0xE4D0 # 4
+0xF6AA 0xE4D1 # 4
+0xF6AB 0xE4D2 # 4
+0xF6AC 0xE4D3 # 4
+0xF6AD 0xE4D4 # 4
+0xF6AE 0xE4D5 # 4
+0xF6AF 0xE4D6 # 4
+0xF6B0 0xE4D7 # 4
+0xF6B1 0xE4D8 # 4
+0xF6B2 0xE4D9 # 4
+0xF6B3 0xE4DA # 4
+0xF6B4 0xE4DB # 4
+0xF6B5 0xE4DC # 4
+0xF6B6 0xE4DD # 4
+0xF6B7 0xE4DE # 4
+0xF6B8 0xE4DF # 4
+0xF6B9 0xE4E0 # 4
+0xF6BA 0xE4E1 # 4
+0xF6BB 0xE4E2 # 4
+0xF6BC 0xE4E3 # 4
+0xF6BD 0xE4E4 # 4
+0xF6BE 0xE4E5 # 4
+0xF6BF 0xE4E6 # 4
+0xF6C0 0xE4E7 # 4
+0xF6C1 0xE4E8 # 4
+0xF6C2 0xE4E9 # 4
+0xF6C3 0xE4EA # 4
+0xF6C4 0xE4EB # 4
+0xF6C5 0xE4EC # 4
+0xF6C6 0xE4ED # 4
+0xF6C7 0xE4EE # 4
+0xF6C8 0xE4EF # 4
+0xF6C9 0xE4F0 # 4
+0xF6CA 0xE4F1 # 4
+0xF6CB 0xE4F2 # 4
+0xF6CC 0xE4F3 # 4
+0xF6CD 0xE4F4 # 4
+0xF6CE 0xE4F5 # 4
+0xF6CF 0xE4F6 # 4
+0xF6D0 0xE4F7 # 4
+0xF6D1 0xE4F8 # 4
+0xF6D2 0xE4F9 # 4
+0xF6D3 0xE4FA # 4
+0xF6D4 0xE4FB # 4
+0xF6D5 0xE4FC # 4
+0xF6D6 0xE4FD # 4
+0xF6D7 0xE4FE # 4
+0xF6D8 0xE4FF # 4
+0xF6D9 0xE500 # 4
+0xF6DA 0xE501 # 4
+0xF6DB 0xE502 # 4
+0xF6DC 0xE503 # 4
+0xF6DD 0xE504 # 4
+0xF6DE 0xE505 # 4
+0xF6DF 0xE506 # 4
+0xF6E0 0xE507 # 4
+0xF6E1 0xE508 # 4
+0xF6E2 0xE509 # 4
+0xF6E3 0xE50A # 4
+0xF6E4 0xE50B # 4
+0xF6E5 0xE50C # 4
+0xF6E6 0xE50D # 4
+0xF6E7 0xE50E # 4
+0xF6E8 0xE50F # 4
+0xF6E9 0xE510 # 4
+0xF6EA 0xE511 # 4
+0xF6EB 0xE512 # 4
+0xF6EC 0xE513 # 4
+0xF6ED 0xE514 # 4
+0xF6EE 0xE515 # 4
+0xF6EF 0xE516 # 4
+0xF6F0 0xE517 # 4
+0xF6F1 0xE518 # 4
+0xF6F2 0xE519 # 4
+0xF6F3 0xE51A # 4
+0xF6F4 0xE51B # 4
+0xF6F5 0xE51C # 4
+0xF6F6 0xE51D # 4
+0xF6F7 0xE51E # 4
+0xF6F8 0xE51F # 4
+0xF6F9 0xE520 # 4
+0xF6FA 0xE521 # 4
+0xF6FB 0xE522 # 4
+0xF6FC 0xE523 # 4
+0xF740 0xE524 # 4
+0xF741 0xE525 # 4
+0xF742 0xE526 # 4
+0xF743 0xE527 # 4
+0xF744 0xE528 # 4
+0xF745 0xE529 # 4
+0xF746 0xE52A # 4
+0xF747 0xE52B # 4
+0xF748 0xE52C # 4
+0xF749 0xE52D # 4
+0xF74A 0xE52E # 4
+0xF74B 0xE52F # 4
+0xF74C 0xE530 # 4
+0xF74D 0xE531 # 4
+0xF74E 0xE532 # 4
+0xF74F 0xE533 # 4
+0xF750 0xE534 # 4
+0xF751 0xE535 # 4
+0xF752 0xE536 # 4
+0xF753 0xE537 # 4
+0xF754 0xE538 # 4
+0xF755 0xE539 # 4
+0xF756 0xE53A # 4
+0xF757 0xE53B # 4
+0xF758 0xE53C # 4
+0xF759 0xE53D # 4
+0xF75A 0xE53E # 4
+0xF75B 0xE53F # 4
+0xF75C 0xE540 # 4
+0xF75D 0xE541 # 4
+0xF75E 0xE542 # 4
+0xF75F 0xE543 # 4
+0xF760 0xE544 # 4
+0xF761 0xE545 # 4
+0xF762 0xE546 # 4
+0xF763 0xE547 # 4
+0xF764 0xE548 # 4
+0xF765 0xE549 # 4
+0xF766 0xE54A # 4
+0xF767 0xE54B # 4
+0xF768 0xE54C # 4
+0xF769 0xE54D # 4
+0xF76A 0xE54E # 4
+0xF76B 0xE54F # 4
+0xF76C 0xE550 # 4
+0xF76D 0xE551 # 4
+0xF76E 0xE552 # 4
+0xF76F 0xE553 # 4
+0xF770 0xE554 # 4
+0xF771 0xE555 # 4
+0xF772 0xE556 # 4
+0xF773 0xE557 # 4
+0xF774 0xE558 # 4
+0xF775 0xE559 # 4
+0xF776 0xE55A # 4
+0xF777 0xE55B # 4
+0xF778 0xE55C # 4
+0xF779 0xE55D # 4
+0xF77A 0xE55E # 4
+0xF77B 0xE55F # 4
+0xF77C 0xE560 # 4
+0xF77D 0xE561 # 4
+0xF77E 0xE562 # 4
+0xF780 0xE563 # 4
+0xF781 0xE564 # 4
+0xF782 0xE565 # 4
+0xF783 0xE566 # 4
+0xF784 0xE567 # 4
+0xF785 0xE568 # 4
+0xF786 0xE569 # 4
+0xF787 0xE56A # 4
+0xF788 0xE56B # 4
+0xF789 0xE56C # 4
+0xF78A 0xE56D # 4
+0xF78B 0xE56E # 4
+0xF78C 0xE56F # 4
+0xF78D 0xE570 # 4
+0xF78E 0xE571 # 4
+0xF78F 0xE572 # 4
+0xF790 0xE573 # 4
+0xF791 0xE574 # 4
+0xF792 0xE575 # 4
+0xF793 0xE576 # 4
+0xF794 0xE577 # 4
+0xF795 0xE578 # 4
+0xF796 0xE579 # 4
+0xF797 0xE57A # 4
+0xF798 0xE57B # 4
+0xF799 0xE57C # 4
+0xF79A 0xE57D # 4
+0xF79B 0xE57E # 4
+0xF79C 0xE57F # 4
+0xF79D 0xE580 # 4
+0xF79E 0xE581 # 4
+0xF79F 0xE582 # 4
+0xF7A0 0xE583 # 4
+0xF7A1 0xE584 # 4
+0xF7A2 0xE585 # 4
+0xF7A3 0xE586 # 4
+0xF7A4 0xE587 # 4
+0xF7A5 0xE588 # 4
+0xF7A6 0xE589 # 4
+0xF7A7 0xE58A # 4
+0xF7A8 0xE58B # 4
+0xF7A9 0xE58C # 4
+0xF7AA 0xE58D # 4
+0xF7AB 0xE58E # 4
+0xF7AC 0xE58F # 4
+0xF7AD 0xE590 # 4
+0xF7AE 0xE591 # 4
+0xF7AF 0xE592 # 4
+0xF7B0 0xE593 # 4
+0xF7B1 0xE594 # 4
+0xF7B2 0xE595 # 4
+0xF7B3 0xE596 # 4
+0xF7B4 0xE597 # 4
+0xF7B5 0xE598 # 4
+0xF7B6 0xE599 # 4
+0xF7B7 0xE59A # 4
+0xF7B8 0xE59B # 4
+0xF7B9 0xE59C # 4
+0xF7BA 0xE59D # 4
+0xF7BB 0xE59E # 4
+0xF7BC 0xE59F # 4
+0xF7BD 0xE5A0 # 4
+0xF7BE 0xE5A1 # 4
+0xF7BF 0xE5A2 # 4
+0xF7C0 0xE5A3 # 4
+0xF7C1 0xE5A4 # 4
+0xF7C2 0xE5A5 # 4
+0xF7C3 0xE5A6 # 4
+0xF7C4 0xE5A7 # 4
+0xF7C5 0xE5A8 # 4
+0xF7C6 0xE5A9 # 4
+0xF7C7 0xE5AA # 4
+0xF7C8 0xE5AB # 4
+0xF7C9 0xE5AC # 4
+0xF7CA 0xE5AD # 4
+0xF7CB 0xE5AE # 4
+0xF7CC 0xE5AF # 4
+0xF7CD 0xE5B0 # 4
+0xF7CE 0xE5B1 # 4
+0xF7CF 0xE5B2 # 4
+0xF7D0 0xE5B3 # 4
+0xF7D1 0xE5B4 # 4
+0xF7D2 0xE5B5 # 4
+0xF7D3 0xE5B6 # 4
+0xF7D4 0xE5B7 # 4
+0xF7D5 0xE5B8 # 4
+0xF7D6 0xE5B9 # 4
+0xF7D7 0xE5BA # 4
+0xF7D8 0xE5BB # 4
+0xF7D9 0xE5BC # 4
+0xF7DA 0xE5BD # 4
+0xF7DB 0xE5BE # 4
+0xF7DC 0xE5BF # 4
+0xF7DD 0xE5C0 # 4
+0xF7DE 0xE5C1 # 4
+0xF7DF 0xE5C2 # 4
+0xF7E0 0xE5C3 # 4
+0xF7E1 0xE5C4 # 4
+0xF7E2 0xE5C5 # 4
+0xF7E3 0xE5C6 # 4
+0xF7E4 0xE5C7 # 4
+0xF7E5 0xE5C8 # 4
+0xF7E6 0xE5C9 # 4
+0xF7E7 0xE5CA # 4
+0xF7E8 0xE5CB # 4
+0xF7E9 0xE5CC # 4
+0xF7EA 0xE5CD # 4
+0xF7EB 0xE5CE # 4
+0xF7EC 0xE5CF # 4
+0xF7ED 0xE5D0 # 4
+0xF7EE 0xE5D1 # 4
+0xF7EF 0xE5D2 # 4
+0xF7F0 0xE5D3 # 4
+0xF7F1 0xE5D4 # 4
+0xF7F2 0xE5D5 # 4
+0xF7F3 0xE5D6 # 4
+0xF7F4 0xE5D7 # 4
+0xF7F5 0xE5D8 # 4
+0xF7F6 0xE5D9 # 4
+0xF7F7 0xE5DA # 4
+0xF7F8 0xE5DB # 4
+0xF7F9 0xE5DC # 4
+0xF7FA 0xE5DD # 4
+0xF7FB 0xE5DE # 4
+0xF7FC 0xE5DF # 4
+0xF840 0xE5E0 # 4
+0xF841 0xE5E1 # 4
+0xF842 0xE5E2 # 4
+0xF843 0xE5E3 # 4
+0xF844 0xE5E4 # 4
+0xF845 0xE5E5 # 4
+0xF846 0xE5E6 # 4
+0xF847 0xE5E7 # 4
+0xF848 0xE5E8 # 4
+0xF849 0xE5E9 # 4
+0xF84A 0xE5EA # 4
+0xF84B 0xE5EB # 4
+0xF84C 0xE5EC # 4
+0xF84D 0xE5ED # 4
+0xF84E 0xE5EE # 4
+0xF84F 0xE5EF # 4
+0xF850 0xE5F0 # 4
+0xF851 0xE5F1 # 4
+0xF852 0xE5F2 # 4
+0xF853 0xE5F3 # 4
+0xF854 0xE5F4 # 4
+0xF855 0xE5F5 # 4
+0xF856 0xE5F6 # 4
+0xF857 0xE5F7 # 4
+0xF858 0xE5F8 # 4
+0xF859 0xE5F9 # 4
+0xF85A 0xE5FA # 4
+0xF85B 0xE5FB # 4
+0xF85C 0xE5FC # 4
+0xF85D 0xE5FD # 4
+0xF85E 0xE5FE # 4
+0xF85F 0xE5FF # 4
+0xF860 0xE600 # 4
+0xF861 0xE601 # 4
+0xF862 0xE602 # 4
+0xF863 0xE603 # 4
+0xF864 0xE604 # 4
+0xF865 0xE605 # 4
+0xF866 0xE606 # 4
+0xF867 0xE607 # 4
+0xF868 0xE608 # 4
+0xF869 0xE609 # 4
+0xF86A 0xE60A # 4
+0xF86B 0xE60B # 4
+0xF86C 0xE60C # 4
+0xF86D 0xE60D # 4
+0xF86E 0xE60E # 4
+0xF86F 0xE60F # 4
+0xF870 0xE610 # 4
+0xF871 0xE611 # 4
+0xF872 0xE612 # 4
+0xF873 0xE613 # 4
+0xF874 0xE614 # 4
+0xF875 0xE615 # 4
+0xF876 0xE616 # 4
+0xF877 0xE617 # 4
+0xF878 0xE618 # 4
+0xF879 0xE619 # 4
+0xF87A 0xE61A # 4
+0xF87B 0xE61B # 4
+0xF87C 0xE61C # 4
+0xF87D 0xE61D # 4
+0xF87E 0xE61E # 4
+0xF880 0xE61F # 4
+0xF881 0xE620 # 4
+0xF882 0xE621 # 4
+0xF883 0xE622 # 4
+0xF884 0xE623 # 4
+0xF885 0xE624 # 4
+0xF886 0xE625 # 4
+0xF887 0xE626 # 4
+0xF888 0xE627 # 4
+0xF889 0xE628 # 4
+0xF88A 0xE629 # 4
+0xF88B 0xE62A # 4
+0xF88C 0xE62B # 4
+0xF88D 0xE62C # 4
+0xF88E 0xE62D # 4
+0xF88F 0xE62E # 4
+0xF890 0xE62F # 4
+0xF891 0xE630 # 4
+0xF892 0xE631 # 4
+0xF893 0xE632 # 4
+0xF894 0xE633 # 4
+0xF895 0xE634 # 4
+0xF896 0xE635 # 4
+0xF897 0xE636 # 4
+0xF898 0xE637 # 4
+0xF899 0xE638 # 4
+0xF89A 0xE639 # 4
+0xF89B 0xE63A # 4
+0xF89C 0xE63B # 4
+0xF89D 0xE63C # 4
+0xF89E 0xE63D # 4
+0xF89F 0xE63E # 4
+0xF8A0 0xE63F # 4
+0xF8A1 0xE640 # 4
+0xF8A2 0xE641 # 4
+0xF8A3 0xE642 # 4
+0xF8A4 0xE643 # 4
+0xF8A5 0xE644 # 4
+0xF8A6 0xE645 # 4
+0xF8A7 0xE646 # 4
+0xF8A8 0xE647 # 4
+0xF8A9 0xE648 # 4
+0xF8AA 0xE649 # 4
+0xF8AB 0xE64A # 4
+0xF8AC 0xE64B # 4
+0xF8AD 0xE64C # 4
+0xF8AE 0xE64D # 4
+0xF8AF 0xE64E # 4
+0xF8B0 0xE64F # 4
+0xF8B1 0xE650 # 4
+0xF8B2 0xE651 # 4
+0xF8B3 0xE652 # 4
+0xF8B4 0xE653 # 4
+0xF8B5 0xE654 # 4
+0xF8B6 0xE655 # 4
+0xF8B7 0xE656 # 4
+0xF8B8 0xE657 # 4
+0xF8B9 0xE658 # 4
+0xF8BA 0xE659 # 4
+0xF8BB 0xE65A # 4
+0xF8BC 0xE65B # 4
+0xF8BD 0xE65C # 4
+0xF8BE 0xE65D # 4
+0xF8BF 0xE65E # 4
+0xF8C0 0xE65F # 4
+0xF8C1 0xE660 # 4
+0xF8C2 0xE661 # 4
+0xF8C3 0xE662 # 4
+0xF8C4 0xE663 # 4
+0xF8C5 0xE664 # 4
+0xF8C6 0xE665 # 4
+0xF8C7 0xE666 # 4
+0xF8C8 0xE667 # 4
+0xF8C9 0xE668 # 4
+0xF8CA 0xE669 # 4
+0xF8CB 0xE66A # 4
+0xF8CC 0xE66B # 4
+0xF8CD 0xE66C # 4
+0xF8CE 0xE66D # 4
+0xF8CF 0xE66E # 4
+0xF8D0 0xE66F # 4
+0xF8D1 0xE670 # 4
+0xF8D2 0xE671 # 4
+0xF8D3 0xE672 # 4
+0xF8D4 0xE673 # 4
+0xF8D5 0xE674 # 4
+0xF8D6 0xE675 # 4
+0xF8D7 0xE676 # 4
+0xF8D8 0xE677 # 4
+0xF8D9 0xE678 # 4
+0xF8DA 0xE679 # 4
+0xF8DB 0xE67A # 4
+0xF8DC 0xE67B # 4
+0xF8DD 0xE67C # 4
+0xF8DE 0xE67D # 4
+0xF8DF 0xE67E # 4
+0xF8E0 0xE67F # 4
+0xF8E1 0xE680 # 4
+0xF8E2 0xE681 # 4
+0xF8E3 0xE682 # 4
+0xF8E4 0xE683 # 4
+0xF8E5 0xE684 # 4
+0xF8E6 0xE685 # 4
+0xF8E7 0xE686 # 4
+0xF8E8 0xE687 # 4
+0xF8E9 0xE688 # 4
+0xF8EA 0xE689 # 4
+0xF8EB 0xE68A # 4
+0xF8EC 0xE68B # 4
+0xF8ED 0xE68C # 4
+0xF8EE 0xE68D # 4
+0xF8EF 0xE68E # 4
+0xF8F0 0xE68F # 4
+0xF8F1 0xE690 # 4
+0xF8F2 0xE691 # 4
+0xF8F3 0xE692 # 4
+0xF8F4 0xE693 # 4
+0xF8F5 0xE694 # 4
+0xF8F6 0xE695 # 4
+0xF8F7 0xE696 # 4
+0xF8F8 0xE697 # 4
+0xF8F9 0xE698 # 4
+0xF8FA 0xE699 # 4
+0xF8FB 0xE69A # 4
+0xF8FC 0xE69B # 4
+0xF940 0xE69C # 4
+0xF941 0xE69D # 4
+0xF942 0xE69E # 4
+0xF943 0xE69F # 4
+0xF944 0xE6A0 # 4
+0xF945 0xE6A1 # 4
+0xF946 0xE6A2 # 4
+0xF947 0xE6A3 # 4
+0xF948 0xE6A4 # 4
+0xF949 0xE6A5 # 4
+0xF94A 0xE6A6 # 4
+0xF94B 0xE6A7 # 4
+0xF94C 0xE6A8 # 4
+0xF94D 0xE6A9 # 4
+0xF94E 0xE6AA # 4
+0xF94F 0xE6AB # 4
+0xF950 0xE6AC # 4
+0xF951 0xE6AD # 4
+0xF952 0xE6AE # 4
+0xF953 0xE6AF # 4
+0xF954 0xE6B0 # 4
+0xF955 0xE6B1 # 4
+0xF956 0xE6B2 # 4
+0xF957 0xE6B3 # 4
+0xF958 0xE6B4 # 4
+0xF959 0xE6B5 # 4
+0xF95A 0xE6B6 # 4
+0xF95B 0xE6B7 # 4
+0xF95C 0xE6B8 # 4
+0xF95D 0xE6B9 # 4
+0xF95E 0xE6BA # 4
+0xF95F 0xE6BB # 4
+0xF960 0xE6BC # 4
+0xF961 0xE6BD # 4
+0xF962 0xE6BE # 4
+0xF963 0xE6BF # 4
+0xF964 0xE6C0 # 4
+0xF965 0xE6C1 # 4
+0xF966 0xE6C2 # 4
+0xF967 0xE6C3 # 4
+0xF968 0xE6C4 # 4
+0xF969 0xE6C5 # 4
+0xF96A 0xE6C6 # 4
+0xF96B 0xE6C7 # 4
+0xF96C 0xE6C8 # 4
+0xF96D 0xE6C9 # 4
+0xF96E 0xE6CA # 4
+0xF96F 0xE6CB # 4
+0xF970 0xE6CC # 4
+0xF971 0xE6CD # 4
+0xF972 0xE6CE # 4
+0xF973 0xE6CF # 4
+0xF974 0xE6D0 # 4
+0xF975 0xE6D1 # 4
+0xF976 0xE6D2 # 4
+0xF977 0xE6D3 # 4
+0xF978 0xE6D4 # 4
+0xF979 0xE6D5 # 4
+0xF97A 0xE6D6 # 4
+0xF97B 0xE6D7 # 4
+0xF97C 0xE6D8 # 4
+0xF97D 0xE6D9 # 4
+0xF97E 0xE6DA # 4
+0xF980 0xE6DB # 4
+0xF981 0xE6DC # 4
+0xF982 0xE6DD # 4
+0xF983 0xE6DE # 4
+0xF984 0xE6DF # 4
+0xF985 0xE6E0 # 4
+0xF986 0xE6E1 # 4
+0xF987 0xE6E2 # 4
+0xF988 0xE6E3 # 4
+0xF989 0xE6E4 # 4
+0xF98A 0xE6E5 # 4
+0xF98B 0xE6E6 # 4
+0xF98C 0xE6E7 # 4
+0xF98D 0xE6E8 # 4
+0xF98E 0xE6E9 # 4
+0xF98F 0xE6EA # 4
+0xF990 0xE6EB # 4
+0xF991 0xE6EC # 4
+0xF992 0xE6ED # 4
+0xF993 0xE6EE # 4
+0xF994 0xE6EF # 4
+0xF995 0xE6F0 # 4
+0xF996 0xE6F1 # 4
+0xF997 0xE6F2 # 4
+0xF998 0xE6F3 # 4
+0xF999 0xE6F4 # 4
+0xF99A 0xE6F5 # 4
+0xF99B 0xE6F6 # 4
+0xF99C 0xE6F7 # 4
+0xF99D 0xE6F8 # 4
+0xF99E 0xE6F9 # 4
+0xF99F 0xE6FA # 4
+0xF9A0 0xE6FB # 4
+0xF9A1 0xE6FC # 4
+0xF9A2 0xE6FD # 4
+0xF9A3 0xE6FE # 4
+0xF9A4 0xE6FF # 4
+0xF9A5 0xE700 # 4
+0xF9A6 0xE701 # 4
+0xF9A7 0xE702 # 4
+0xF9A8 0xE703 # 4
+0xF9A9 0xE704 # 4
+0xF9AA 0xE705 # 4
+0xF9AB 0xE706 # 4
+0xF9AC 0xE707 # 4
+0xF9AD 0xE708 # 4
+0xF9AE 0xE709 # 4
+0xF9AF 0xE70A # 4
+0xF9B0 0xE70B # 4
+0xF9B1 0xE70C # 4
+0xF9B2 0xE70D # 4
+0xF9B3 0xE70E # 4
+0xF9B4 0xE70F # 4
+0xF9B5 0xE710 # 4
+0xF9B6 0xE711 # 4
+0xF9B7 0xE712 # 4
+0xF9B8 0xE713 # 4
+0xF9B9 0xE714 # 4
+0xF9BA 0xE715 # 4
+0xF9BB 0xE716 # 4
+0xF9BC 0xE717 # 4
+0xF9BD 0xE718 # 4
+0xF9BE 0xE719 # 4
+0xF9BF 0xE71A # 4
+0xF9C0 0xE71B # 4
+0xF9C1 0xE71C # 4
+0xF9C2 0xE71D # 4
+0xF9C3 0xE71E # 4
+0xF9C4 0xE71F # 4
+0xF9C5 0xE720 # 4
+0xF9C6 0xE721 # 4
+0xF9C7 0xE722 # 4
+0xF9C8 0xE723 # 4
+0xF9C9 0xE724 # 4
+0xF9CA 0xE725 # 4
+0xF9CB 0xE726 # 4
+0xF9CC 0xE727 # 4
+0xF9CD 0xE728 # 4
+0xF9CE 0xE729 # 4
+0xF9CF 0xE72A # 4
+0xF9D0 0xE72B # 4
+0xF9D1 0xE72C # 4
+0xF9D2 0xE72D # 4
+0xF9D3 0xE72E # 4
+0xF9D4 0xE72F # 4
+0xF9D5 0xE730 # 4
+0xF9D6 0xE731 # 4
+0xF9D7 0xE732 # 4
+0xF9D8 0xE733 # 4
+0xF9D9 0xE734 # 4
+0xF9DA 0xE735 # 4
+0xF9DB 0xE736 # 4
+0xF9DC 0xE737 # 4
+0xF9DD 0xE738 # 4
+0xF9DE 0xE739 # 4
+0xF9DF 0xE73A # 4
+0xF9E0 0xE73B # 4
+0xF9E1 0xE73C # 4
+0xF9E2 0xE73D # 4
+0xF9E3 0xE73E # 4
+0xF9E4 0xE73F # 4
+0xF9E5 0xE740 # 4
+0xF9E6 0xE741 # 4
+0xF9E7 0xE742 # 4
+0xF9E8 0xE743 # 4
+0xF9E9 0xE744 # 4
+0xF9EA 0xE745 # 4
+0xF9EB 0xE746 # 4
+0xF9EC 0xE747 # 4
+0xF9ED 0xE748 # 4
+0xF9EE 0xE749 # 4
+0xF9EF 0xE74A # 4
+0xF9F0 0xE74B # 4
+0xF9F1 0xE74C # 4
+0xF9F2 0xE74D # 4
+0xF9F3 0xE74E # 4
+0xF9F4 0xE74F # 4
+0xF9F5 0xE750 # 4
+0xF9F6 0xE751 # 4
+0xF9F7 0xE752 # 4
+0xF9F8 0xE753 # 4
+0xF9F9 0xE754 # 4
+0xF9FA 0xE755 # 4
+0xF9FB 0xE756 # 4
+0xF9FC 0xE757 # 4
diff --git a/etc/charsets/CP949-2BYTE.map b/etc/charsets/CP949-2BYTE.map
new file mode 100644 (file)
index 0000000..5715c8b
--- /dev/null
@@ -0,0 +1,8449 @@
+# Generated from glibc-2.3.2/localedata/charmaps/CP949
+0x8141-0x8142 0xAC02
+0x8143-0x8144 0xAC05
+0x8145-0x8149 0xAC0B
+0x814A 0xAC18
+0x814B-0x814C 0xAC1E
+0x814D-0x814F 0xAC21
+0x8150-0x8156 0xAC25
+0x8157 0xAC2E
+0x8158-0x815A 0xAC32
+0x8161-0x8163 0xAC35
+0x8164-0x8165 0xAC3A
+0x8166-0x8168 0xAC3D
+0x8169-0x8172 0xAC41
+0x8173 0xAC4C
+0x8174-0x8179 0xAC4E
+0x817A 0xAC55
+0x8181-0x8182 0xAC56
+0x8183-0x8185 0xAC59
+0x8186-0x8198 0xAC5D
+0x8199-0x819A 0xAC72
+0x819B-0x819C 0xAC75
+0x819D 0xAC79
+0x819E-0x81A2 0xAC7B
+0x81A3 0xAC82
+0x81A4-0x81A5 0xAC87
+0x81A6-0x81A8 0xAC8D
+0x81A9-0x81AB 0xAC91
+0x81AC-0x81B2 0xAC95
+0x81B3 0xAC9E
+0x81B4-0x81B9 0xACA2
+0x81BA 0xACAB
+0x81BB-0x81BC 0xACAD
+0x81BD-0x81C3 0xACB1
+0x81C4 0xACBA
+0x81C5-0x81C7 0xACBE
+0x81C8-0x81C9 0xACC2
+0x81CA-0x81CC 0xACC5
+0x81CD-0x81CF 0xACC9
+0x81D0-0x81D7 0xACCD
+0x81D8 0xACD6
+0x81D9-0x81E0 0xACD8
+0x81E1-0x81E2 0xACE2
+0x81E3-0x81E4 0xACE5
+0x81E5 0xACE9
+0x81E6 0xACEB
+0x81E7-0x81E8 0xACED
+0x81E9 0xACF2
+0x81EA 0xACF4
+0x81EB-0x81EF 0xACF7
+0x81F0-0x81F1 0xACFE
+0x81F2-0x81F4 0xAD01
+0x81F5 0xAD05
+0x81F6-0x81FA 0xAD07
+0x81FB 0xAD0E
+0x81FC 0xAD10
+0x81FD-0x81FE 0xAD12
+0x8241-0x8244 0xAD14
+0x8245-0x8247 0xAD19
+0x8248-0x824A 0xAD1D
+0x824B-0x8252 0xAD21
+0x8253-0x8254 0xAD2A
+0x8255-0x825A 0xAD2E
+0x8261-0x8262 0xAD36
+0x8263-0x8265 0xAD39
+0x8266-0x826C 0xAD3D
+0x826D 0xAD46
+0x826E 0xAD48
+0x826F-0x8274 0xAD4A
+0x8275-0x8277 0xAD51
+0x8278-0x827A 0xAD55
+0x8281-0x8288 0xAD59
+0x8289 0xAD62
+0x828A-0x8291 0xAD64
+0x8292-0x8293 0xAD6E
+0x8294-0x8295 0xAD71
+0x8296-0x8299 0xAD77
+0x829A 0xAD7E
+0x829B 0xAD80
+0x829C-0x82A0 0xAD83
+0x82A1-0x82A2 0xAD8A
+0x82A3-0x82A5 0xAD8D
+0x82A6-0x82B0 0xAD91
+0x82B1-0x82B6 0xAD9E
+0x82B7-0x82C8 0xADA5
+0x82C9-0x82D0 0xADB8
+0x82D1-0x82D2 0xADC2
+0x82D3-0x82D5 0xADC5
+0x82D6-0x82DC 0xADC9
+0x82DD 0xADD2
+0x82DE-0x82E5 0xADD4
+0x82E6-0x82E8 0xADDD
+0x82E9-0x82EB 0xADE1
+0x82EC-0x82FE 0xADE5
+0x8341-0x8342 0xADFA
+0x8343-0x8344 0xADFD
+0x8345-0x834A 0xAE02
+0x834B 0xAE0A
+0x834C 0xAE0C
+0x834D-0x8352 0xAE0E
+0x8353-0x835A 0xAE15
+0x8361-0x8373 0xAE1D
+0x8374-0x8375 0xAE32
+0x8376-0x8377 0xAE35
+0x8378 0xAE39
+0x8379-0x837A 0xAE3B
+0x8381-0x8383 0xAE3D
+0x8384 0xAE42
+0x8385 0xAE44
+0x8386-0x8388 0xAE47
+0x8389 0xAE4B
+0x838A 0xAE4F
+0x838B-0x838D 0xAE51
+0x838E 0xAE55
+0x838F-0x8393 0xAE57
+0x8394 0xAE5E
+0x8395-0x8397 0xAE62
+0x8398-0x8399 0xAE66
+0x839A-0x839B 0xAE6A
+0x839C-0x839E 0xAE6D
+0x839F-0x83A5 0xAE71
+0x83A6 0xAE7A
+0x83A7-0x83AC 0xAE7E
+0x83AD-0x83B2 0xAE86
+0x83B3-0x83E1 0xAE8D
+0x83E2 0xAEBF
+0x83E3-0x83E5 0xAEC1
+0x83E6-0x83EC 0xAEC5
+0x83ED 0xAECE
+0x83EE-0x83F3 0xAED2
+0x83F4-0x83F5 0xAEDA
+0x83F6-0x83FE 0xAEDD
+0x8441-0x8442 0xAEE6
+0x8443-0x8444 0xAEE9
+0x8445 0xAEEC
+0x8446-0x844B 0xAEEE
+0x844C-0x844E 0xAEF5
+0x844F-0x8451 0xAEF9
+0x8452-0x845A 0xAEFD
+0x8461 0xAF06
+0x8462-0x8465 0xAF09
+0x8466-0x8467 0xAF0E
+0x8468-0x847A 0xAF11
+0x8481-0x8488 0xAF24
+0x8489-0x848A 0xAF2E
+0x848B 0xAF31
+0x848C 0xAF33
+0x848D-0x8493 0xAF35
+0x8494 0xAF3E
+0x8495 0xAF40
+0x8496-0x8499 0xAF44
+0x849A-0x849F 0xAF4A
+0x84A0-0x84AA 0xAF51
+0x84AB-0x84B0 0xAF5E
+0x84B1-0x84C3 0xAF66
+0x84C4-0x84C9 0xAF7A
+0x84CA-0x84CC 0xAF81
+0x84CD-0x84CF 0xAF85
+0x84D0-0x84D6 0xAF89
+0x84D7-0x84D9 0xAF92
+0x84DA-0x84DF 0xAF96
+0x84E0-0x84FA 0xAF9D
+0x84FB-0x84FC 0xAFBA
+0x84FD-0x84FE 0xAFBD
+0x8541 0xAFBF
+0x8542-0x8547 0xAFC1
+0x8548 0xAFCA
+0x8549 0xAFCC
+0x854A-0x854E 0xAFCF
+0x854F-0x8555 0xAFD5
+0x8556-0x855A 0xAFDD
+0x8561-0x8566 0xAFE2
+0x8567-0x856C 0xAFEA
+0x856D-0x856E 0xAFF2
+0x856F-0x8571 0xAFF5
+0x8572-0x8578 0xAFF9
+0x8579-0x857A 0xB002
+0x8581-0x8587 0xB005
+0x8588-0x858A 0xB00D
+0x858B-0x858D 0xB011
+0x858E-0x8594 0xB015
+0x8595-0x859E 0xB01E
+0x859F-0x85B9 0xB029
+0x85BA-0x85BB 0xB046
+0x85BC 0xB049
+0x85BD 0xB04B
+0x85BE 0xB04D
+0x85BF-0x85C2 0xB04F
+0x85C3 0xB056
+0x85C4 0xB058
+0x85C5-0x85C7 0xB05A
+0x85C8-0x85E5 0xB05E
+0x85E6-0x85E7 0xB07E
+0x85E8-0x85EA 0xB081
+0x85EB-0x85F1 0xB085
+0x85F2 0xB08E
+0x85F3 0xB090
+0x85F4-0x85F9 0xB092
+0x85FA 0xB09B
+0x85FB-0x85FC 0xB09D
+0x85FD-0x85FE 0xB0A3
+0x8641-0x8643 0xB0A5
+0x8644 0xB0AA
+0x8645 0xB0B0
+0x8646 0xB0B2
+0x8647-0x8648 0xB0B6
+0x8649-0x864B 0xB0B9
+0x864C-0x8652 0xB0BD
+0x8653 0xB0C6
+0x8654-0x8659 0xB0CA
+0x865A 0xB0D2
+0x8661 0xB0D3
+0x8662-0x8664 0xB0D5
+0x8665-0x866B 0xB0D9
+0x866C-0x866F 0xB0E1
+0x8670-0x867A 0xB0E6
+0x8681-0x8697 0xB0F1
+0x8698 0xB10A
+0x8699-0x869B 0xB10D
+0x869C 0xB111
+0x869D-0x86A0 0xB114
+0x86A1 0xB11A
+0x86A2-0x86A6 0xB11E
+0x86A7-0x86A8 0xB126
+0x86A9-0x86AB 0xB129
+0x86AC-0x86B2 0xB12D
+0x86B3 0xB136
+0x86B4-0x86B9 0xB13A
+0x86BA-0x86BB 0xB142
+0x86BC-0x86BE 0xB145
+0x86BF-0x86C5 0xB149
+0x86C6-0x86C7 0xB152
+0x86C8-0x86C9 0xB156
+0x86CA-0x86CC 0xB159
+0x86CD-0x86CF 0xB15D
+0x86D0-0x86E6 0xB161
+0x86E7-0x86E8 0xB17A
+0x86E9-0x86EB 0xB17D
+0x86EC 0xB181
+0x86ED-0x86F1 0xB183
+0x86F2 0xB18A
+0x86F3 0xB18C
+0x86F4-0x86F7 0xB18E
+0x86F8-0x86FA 0xB195
+0x86FB-0x86FD 0xB199
+0x86FE 0xB19D
+0x8741-0x874A 0xB19E
+0x874B-0x875A 0xB1A9
+0x8761-0x8773 0xB1B9
+0x8774-0x8776 0xB1CD
+0x8777-0x8779 0xB1D1
+0x877A 0xB1D5
+0x8781-0x8786 0xB1D6
+0x8787 0xB1DE
+0x8788-0x878F 0xB1E0
+0x8790-0x8791 0xB1EA
+0x8792-0x8794 0xB1ED
+0x8795-0x879C 0xB1F1
+0x879D 0xB1FA
+0x879E 0xB1FC
+0x879F-0x87A4 0xB1FE
+0x87A5-0x87A6 0xB206
+0x87A7-0x87A8 0xB209
+0x87A9-0x87AF 0xB20D
+0x87B0 0xB216
+0x87B1 0xB218
+0x87B2-0x87B7 0xB21A
+0x87B8-0x87CA 0xB221
+0x87CB-0x87D1 0xB235
+0x87D2-0x87EC 0xB23D
+0x87ED-0x87EF 0xB259
+0x87F0-0x87F2 0xB25D
+0x87F3-0x87F9 0xB261
+0x87FA-0x87FE 0xB26A
+0x8841-0x8845 0xB26F
+0x8846-0x884B 0xB276
+0x884C-0x8852 0xB27D
+0x8853-0x8855 0xB286
+0x8856-0x885A 0xB28A
+0x8861 0xB28F
+0x8862-0x8863 0xB292
+0x8864-0x8866 0xB295
+0x8867-0x886B 0xB29B
+0x886C 0xB2A2
+0x886D 0xB2A4
+0x886E-0x8870 0xB2A7
+0x8871 0xB2AB
+0x8872-0x8874 0xB2AD
+0x8875-0x8877 0xB2B1
+0x8878-0x887A 0xB2B5
+0x8881-0x8890 0xB2B8
+0x8891-0x8892 0xB2CA
+0x8893-0x8895 0xB2CD
+0x8896 0xB2D1
+0x8897-0x889B 0xB2D3
+0x889C 0xB2DA
+0x889D 0xB2DC
+0x889E-0x88A1 0xB2DE
+0x88A2 0xB2E3
+0x88A3 0xB2E7
+0x88A4-0x88A5 0xB2E9
+0x88A6-0x88A8 0xB2F0
+0x88A9 0xB2F6
+0x88AA-0x88AC 0xB2FC
+0x88AD-0x88AE 0xB302
+0x88AF-0x88B1 0xB305
+0x88B2-0x88B8 0xB309
+0x88B9 0xB312
+0x88BA-0x88BF 0xB316
+0x88C0-0x88F6 0xB31D
+0x88F7 0xB357
+0x88F8-0x88F9 0xB359
+0x88FA 0xB35D
+0x88FB-0x88FE 0xB360
+0x8941 0xB366
+0x8942 0xB368
+0x8943 0xB36A
+0x8944-0x8945 0xB36C
+0x8946 0xB36F
+0x8947-0x8948 0xB372
+0x8949-0x894B 0xB375
+0x894C-0x8952 0xB379
+0x8953 0xB382
+0x8954-0x8959 0xB386
+0x895A 0xB38D
+0x8961-0x8962 0xB38E
+0x8963-0x8965 0xB391
+0x8966-0x8970 0xB395
+0x8971-0x8976 0xB3A2
+0x8977-0x8979 0xB3A9
+0x897A 0xB3AD
+0x8981-0x8996 0xB3AE
+0x8997-0x8998 0xB3C6
+0x8999-0x899A 0xB3C9
+0x899B 0xB3CD
+0x899C 0xB3CF
+0x899D-0x899F 0xB3D1
+0x89A0 0xB3D6
+0x89A1 0xB3D8
+0x89A2 0xB3DA
+0x89A3 0xB3DC
+0x89A4-0x89A5 0xB3DE
+0x89A6-0x89A8 0xB3E1
+0x89A9-0x89AB 0xB3E5
+0x89AC-0x89BE 0xB3E9
+0x89BF-0x89D1 0xB3FD
+0x89D2-0x89D8 0xB411
+0x89D9-0x89DB 0xB419
+0x89DC-0x89DE 0xB41D
+0x89DF-0x89E5 0xB421
+0x89E6 0xB42A
+0x89E7-0x89EE 0xB42C
+0x89EF-0x89FE 0xB435
+0x8A41-0x8A4B 0xB445
+0x8A4C-0x8A4D 0xB452
+0x8A4E-0x8A50 0xB455
+0x8A51-0x8A57 0xB459
+0x8A58 0xB462
+0x8A59 0xB464
+0x8A5A 0xB466
+0x8A61-0x8A65 0xB467
+0x8A66-0x8A78 0xB46D
+0x8A79-0x8A7A 0xB481
+0x8A81-0x8A85 0xB483
+0x8A86-0x8A99 0xB489
+0x8A9A-0x8A9F 0xB49E
+0x8AA0-0x8AA2 0xB4A5
+0x8AA3-0x8AA5 0xB4A9
+0x8AA6-0x8AAD 0xB4AD
+0x8AAE 0xB4B6
+0x8AAF 0xB4B8
+0x8AB0-0x8AB5 0xB4BA
+0x8AB6-0x8AB8 0xB4C1
+0x8AB9-0x8ABB 0xB4C5
+0x8ABC-0x8AC2 0xB4C9
+0x8AC3-0x8AC6 0xB4D1
+0x8AC7-0x8ACC 0xB4D6
+0x8ACD-0x8ACE 0xB4DE
+0x8ACF-0x8AD0 0xB4E1
+0x8AD1 0xB4E5
+0x8AD2-0x8AD6 0xB4E7
+0x8AD7 0xB4EE
+0x8AD8 0xB4F0
+0x8AD9-0x8ADE 0xB4F2
+0x8ADF-0x8AF9 0xB4F9
+0x8AFA-0x8AFB 0xB516
+0x8AFC-0x8AFD 0xB519
+0x8AFE 0xB51D
+0x8B41-0x8B46 0xB51E
+0x8B47 0xB526
+0x8B48-0x8B4C 0xB52B
+0x8B4D-0x8B4E 0xB532
+0x8B4F-0x8B51 0xB535
+0x8B52-0x8B58 0xB539
+0x8B59 0xB542
+0x8B5A 0xB546
+0x8B61-0x8B64 0xB547
+0x8B65-0x8B66 0xB54E
+0x8B67-0x8B69 0xB551
+0x8B6A-0x8B70 0xB555
+0x8B71 0xB55E
+0x8B72-0x8B7A 0xB562
+0x8B81-0x8BB5 0xB56B
+0x8BB6-0x8BB7 0xB5A2
+0x8BB8-0x8BBA 0xB5A5
+0x8BBB 0xB5A9
+0x8BBC-0x8BBF 0xB5AC
+0x8BC0 0xB5B2
+0x8BC1-0x8BC5 0xB5B6
+0x8BC6-0x8BC7 0xB5BE
+0x8BC8-0x8BCA 0xB5C1
+0x8BCB-0x8BD1 0xB5C5
+0x8BD2 0xB5CE
+0x8BD3-0x8BD8 0xB5D2
+0x8BD9-0x8BEB 0xB5D9
+0x8BEC-0x8BFE 0xB5ED
+0x8C41-0x8C50 0xB600
+0x8C51-0x8C52 0xB612
+0x8C53-0x8C55 0xB615
+0x8C56-0x8C5A 0xB619
+0x8C61-0x8C67 0xB61E
+0x8C68-0x8C6D 0xB626
+0x8C6E-0x8C74 0xB62D
+0x8C75-0x8C7A 0xB635
+0x8C81-0x8C8D 0xB63B
+0x8C8E-0x8CA8 0xB649
+0x8CA9-0x8CAB 0xB665
+0x8CAC-0x8CDE 0xB669
+0x8CDF-0x8CE0 0xB69E
+0x8CE1-0x8CE3 0xB6A1
+0x8CE4-0x8CE9 0xB6A5
+0x8CEA-0x8CED 0xB6AD
+0x8CEE-0x8CFE 0xB6B2
+0x8D41-0x8D51 0xB6C3
+0x8D52-0x8D5A 0xB6D5
+0x8D61-0x8D72 0xB6DE
+0x8D73-0x8D75 0xB6F1
+0x8D76-0x8D78 0xB6F5
+0x8D79-0x8D7A 0xB6F9
+0x8D81-0x8D85 0xB6FB
+0x8D86-0x8D88 0xB702
+0x8D89-0x8DAA 0xB706
+0x8DAB-0x8DAC 0xB72A
+0x8DAD-0x8DAE 0xB72D
+0x8DAF-0x8DB5 0xB731
+0x8DB6 0xB73A
+0x8DB7-0x8DBE 0xB73C
+0x8DBF-0x8DC1 0xB745
+0x8DC2-0x8DC4 0xB749
+0x8DC5-0x8DCB 0xB74D
+0x8DCC-0x8DD5 0xB756
+0x8DD6-0x8DD8 0xB761
+0x8DD9-0x8DDB 0xB765
+0x8DDC-0x8DE2 0xB769
+0x8DE3 0xB772
+0x8DE4 0xB774
+0x8DE5-0x8DEA 0xB776
+0x8DEB-0x8DEC 0xB77E
+0x8DED-0x8DEF 0xB781
+0x8DF0-0x8DF6 0xB785
+0x8DF7 0xB78E
+0x8DF8-0x8DFA 0xB793
+0x8DFB-0x8DFC 0xB79A
+0x8DFD-0x8DFE 0xB79D
+0x8E41 0xB79F
+0x8E42-0x8E48 0xB7A1
+0x8E49 0xB7AA
+0x8E4A-0x8E4F 0xB7AE
+0x8E50-0x8E51 0xB7B6
+0x8E52-0x8E5A 0xB7B9
+0x8E61-0x8E65 0xB7C2
+0x8E66 0xB7C8
+0x8E67-0x8E7A 0xB7CA
+0x8E81-0x8E8E 0xB7DE
+0x8E8F-0x8E90 0xB7EE
+0x8E91-0x8E93 0xB7F1
+0x8E94-0x8E9A 0xB7F5
+0x8E9B 0xB7FE
+0x8E9C-0x8EA0 0xB802
+0x8EA1-0x8EA2 0xB80A
+0x8EA3-0x8EA5 0xB80D
+0x8EA6-0x8EAC 0xB811
+0x8EAD 0xB81A
+0x8EAE 0xB81C
+0x8EAF-0x8EB4 0xB81E
+0x8EB5-0x8EB6 0xB826
+0x8EB7-0x8EB9 0xB829
+0x8EBA-0x8EC0 0xB82D
+0x8EC1 0xB836
+0x8EC2-0x8EC7 0xB83A
+0x8EC8-0x8ECA 0xB841
+0x8ECB-0x8ED6 0xB845
+0x8ED7 0xB852
+0x8ED8-0x8EDF 0xB854
+0x8EE0-0x8EE1 0xB85E
+0x8EE2-0x8EE4 0xB861
+0x8EE5-0x8EEB 0xB865
+0x8EEC 0xB86E
+0x8EED 0xB870
+0x8EEE-0x8EF3 0xB872
+0x8EF4-0x8EF6 0xB879
+0x8EF7-0x8EFE 0xB87D
+0x8F41-0x8F48 0xB885
+0x8F49-0x8F5A 0xB88E
+0x8F61-0x8F68 0xB8A0
+0x8F69-0x8F6F 0xB8A9
+0x8F70-0x8F72 0xB8B1
+0x8F73-0x8F75 0xB8B5
+0x8F76-0x8F7A 0xB8B9
+0x8F81-0x8F82 0xB8BE
+0x8F83 0xB8C2
+0x8F84 0xB8C4
+0x8F85-0x8F8A 0xB8C6
+0x8F8B-0x8F8D 0xB8CD
+0x8F8E-0x8F90 0xB8D1
+0x8F91-0x8F98 0xB8D5
+0x8F99 0xB8DE
+0x8F9A 0xB8E0
+0x8F9B-0x8FA0 0xB8E2
+0x8FA1-0x8FA2 0xB8EA
+0x8FA3-0x8FA5 0xB8ED
+0x8FA6-0x8FAC 0xB8F1
+0x8FAD 0xB8FA
+0x8FAE 0xB8FC
+0x8FAF-0x8FB4 0xB8FE
+0x8FB5-0x8FC7 0xB905
+0x8FC8-0x8FCE 0xB919
+0x8FCF-0x8FE9 0xB921
+0x8FEA-0x8FEB 0xB93E
+0x8FEC-0x8FEE 0xB941
+0x8FEF-0x8FF5 0xB945
+0x8FF6-0x8FF7 0xB94D
+0x8FF8 0xB950
+0x8FF9-0x8FFE 0xB952
+0x9041-0x9042 0xB95A
+0x9043-0x9045 0xB95D
+0x9046-0x904C 0xB961
+0x904D 0xB96A
+0x904E 0xB96C
+0x904F-0x9054 0xB96E
+0x9055-0x9056 0xB976
+0x9057-0x9059 0xB979
+0x905A 0xB97D
+0x9061-0x9066 0xB97E
+0x9067 0xB986
+0x9068 0xB988
+0x9069-0x906A 0xB98B
+0x906B-0x907A 0xB98F
+0x9081-0x908D 0xB99F
+0x908E-0x908F 0xB9AE
+0x9090-0x9092 0xB9B1
+0x9093-0x9099 0xB9B5
+0x909A 0xB9BE
+0x909B 0xB9C0
+0x909C-0x90A1 0xB9C2
+0x90A2-0x90A3 0xB9CA
+0x90A4 0xB9CD
+0x90A5-0x90A9 0xB9D3
+0x90AA 0xB9DA
+0x90AB 0xB9DC
+0x90AC-0x90AD 0xB9DF
+0x90AE 0xB9E2
+0x90AF-0x90B0 0xB9E6
+0x90B1-0x90B3 0xB9E9
+0x90B4-0x90BA 0xB9ED
+0x90BB 0xB9F6
+0x90BC-0x90C0 0xB9FB
+0x90C1-0x90C6 0xBA02
+0x90C7-0x90D2 0xBA09
+0x90D3-0x90F4 0xBA16
+0x90F5-0x90F6 0xBA3A
+0x90F7-0x90F9 0xBA3D
+0x90FA 0xBA41
+0x90FB-0x90FE 0xBA43
+0x9141 0xBA47
+0x9142 0xBA4A
+0x9143 0xBA4C
+0x9144-0x9147 0xBA4F
+0x9148-0x9149 0xBA56
+0x914A-0x914C 0xBA59
+0x914D-0x9153 0xBA5D
+0x9154 0xBA66
+0x9155-0x915A 0xBA6A
+0x9161-0x9162 0xBA72
+0x9163-0x9165 0xBA75
+0x9166-0x916F 0xBA79
+0x9170 0xBA86
+0x9171-0x9174 0xBA88
+0x9175-0x917A 0xBA8D
+0x9181-0x9195 0xBA93
+0x9196 0xBAAA
+0x9197-0x9199 0xBAAD
+0x919A 0xBAB1
+0x919B-0x919F 0xBAB3
+0x91A0 0xBABA
+0x91A1 0xBABC
+0x91A2-0x91A7 0xBABE
+0x91A8-0x91AA 0xBAC5
+0x91AB-0x91B9 0xBAC9
+0x91BA-0x91DB 0xBADA
+0x91DC-0x91DE 0xBAFD
+0x91DF-0x91E1 0xBB01
+0x91E2-0x91E9 0xBB05
+0x91EA 0xBB0E
+0x91EB 0xBB10
+0x91EC-0x91F1 0xBB12
+0x91F2-0x91F4 0xBB19
+0x91F5-0x91F7 0xBB1D
+0x91F8-0x91FE 0xBB21
+0x9241 0xBB28
+0x9242 0xBB2A
+0x9243-0x924A 0xBB2C
+0x924B 0xBB37
+0x924C-0x924D 0xBB39
+0x924E-0x9252 0xBB3F
+0x9253 0xBB46
+0x9254 0xBB48
+0x9255-0x9257 0xBB4A
+0x9258 0xBB4E
+0x9259-0x925A 0xBB51
+0x9261 0xBB53
+0x9262-0x9264 0xBB55
+0x9265-0x926C 0xBB59
+0x926D 0xBB62
+0x926E-0x9275 0xBB64
+0x9276-0x927A 0xBB6D
+0x9281-0x9296 0xBB72
+0x9297-0x9299 0xBB89
+0x929A-0x929C 0xBB8D
+0x929D-0x92AF 0xBB91
+0x92B0-0x92B2 0xBBA5
+0x92B3-0x92B5 0xBBA9
+0x92B6-0x92BC 0xBBAD
+0x92BD-0x92BE 0xBBB5
+0x92BF-0x92C6 0xBBB8
+0x92C7-0x92C9 0xBBC1
+0x92CA-0x92CC 0xBBC5
+0x92CD-0x92D3 0xBBC9
+0x92D4-0x92D5 0xBBD1
+0x92D6-0x92F9 0xBBD4
+0x92FA-0x92FB 0xBBFA
+0x92FC-0x92FD 0xBBFD
+0x92FE 0xBC01
+0x9341-0x9345 0xBC03
+0x9346 0xBC0A
+0x9347 0xBC0E
+0x9348 0xBC10
+0x9349-0x934A 0xBC12
+0x934B-0x934C 0xBC19
+0x934D-0x9350 0xBC20
+0x9351 0xBC26
+0x9352 0xBC28
+0x9353-0x9355 0xBC2A
+0x9356-0x9357 0xBC2E
+0x9358-0x9359 0xBC32
+0x935A 0xBC35
+0x9361-0x9362 0xBC36
+0x9363-0x9369 0xBC39
+0x936A 0xBC42
+0x936B-0x936D 0xBC46
+0x936E-0x936F 0xBC4A
+0x9370-0x9371 0xBC4E
+0x9372-0x937A 0xBC51
+0x9381-0x9383 0xBC5A
+0x9384-0x93A9 0xBC5E
+0x93AA-0x93AB 0xBC86
+0x93AC-0x93AD 0xBC89
+0x93AE 0xBC8D
+0x93AF-0x93B3 0xBC8F
+0x93B4 0xBC96
+0x93B5 0xBC98
+0x93B6-0x93BA 0xBC9B
+0x93BB-0x93BC 0xBCA2
+0x93BD-0x93BE 0xBCA5
+0x93BF-0x93C5 0xBCA9
+0x93C6 0xBCB2
+0x93C7-0x93CC 0xBCB6
+0x93CD-0x93CE 0xBCBE
+0x93CF-0x93D1 0xBCC1
+0x93D2-0x93D9 0xBCC5
+0x93DA 0xBCCE
+0x93DB-0x93DD 0xBCD2
+0x93DE-0x93DF 0xBCD6
+0x93E0-0x93E2 0xBCD9
+0x93E3-0x93F9 0xBCDD
+0x93FA 0xBCF7
+0x93FB-0x93FD 0xBCF9
+0x93FE 0xBCFD
+0x9441-0x9446 0xBCFE
+0x9447 0xBD06
+0x9448 0xBD08
+0x9449-0x944E 0xBD0A
+0x944F-0x9451 0xBD11
+0x9452-0x945A 0xBD15
+0x9461-0x9466 0xBD1E
+0x9467-0x946D 0xBD25
+0x946E-0x947A 0xBD2D
+0x9481-0x9486 0xBD3A
+0x9487-0x948D 0xBD41
+0x948E-0x948F 0xBD4A
+0x9490-0x9492 0xBD4D
+0x9493-0x9499 0xBD51
+0x949A-0x94A3 0xBD5A
+0x94A4-0x94A6 0xBD65
+0x94A7-0x94BD 0xBD69
+0x94BE-0x94BF 0xBD82
+0x94C0-0x94C1 0xBD85
+0x94C2-0x94C6 0xBD8B
+0x94C7 0xBD92
+0x94C8 0xBD94
+0x94C9-0x94CB 0xBD96
+0x94CC 0xBD9B
+0x94CD-0x94D3 0xBD9D
+0x94D4-0x94DE 0xBDA5
+0x94DF-0x94E5 0xBDB1
+0x94E6-0x94FE 0xBDB9
+0x9541-0x9542 0xBDD2
+0x9543-0x9544 0xBDD6
+0x9545-0x9547 0xBDD9
+0x9548-0x9553 0xBDDD
+0x9554-0x9559 0xBDEA
+0x955A 0xBDF1
+0x9561-0x9562 0xBDF2
+0x9563-0x9565 0xBDF5
+0x9566-0x956C 0xBDF9
+0x956D-0x956E 0xBE01
+0x956F 0xBE04
+0x9570-0x9575 0xBE06
+0x9576-0x9577 0xBE0E
+0x9578-0x957A 0xBE11
+0x9581-0x9587 0xBE15
+0x9588 0xBE1E
+0x9589-0x95AC 0xBE20
+0x95AD-0x95AE 0xBE46
+0x95AF-0x95B1 0xBE49
+0x95B2 0xBE4D
+0x95B3-0x95B7 0xBE4F
+0x95B8 0xBE56
+0x95B9 0xBE58
+0x95BA-0x95BD 0xBE5C
+0x95BE-0x95BF 0xBE62
+0x95C0-0x95C2 0xBE65
+0x95C3 0xBE69
+0x95C4-0x95C8 0xBE6B
+0x95C9 0xBE72
+0x95CA-0x95CE 0xBE76
+0x95CF-0x95D0 0xBE7E
+0x95D1-0x95D3 0xBE81
+0x95D4-0x95DA 0xBE85
+0x95DB 0xBE8E
+0x95DC-0x95E1 0xBE92
+0x95E2-0x95EF 0xBE9A
+0x95F0-0x95FE 0xBEA9
+0x9641-0x9658 0xBEB8
+0x9659-0x965A 0xBED2
+0x9661-0x9662 0xBED5
+0x9663-0x9669 0xBED9
+0x966A-0x966B 0xBEE1
+0x966C-0x9671 0xBEE6
+0x9672-0x967A 0xBEED
+0x9681-0x968B 0xBEF6
+0x968C-0x9691 0xBF02
+0x9692-0x969F 0xBF0A
+0x96A0 0xBF1A
+0x96A1-0x96C2 0xBF1E
+0x96C3-0x96C4 0xBF42
+0x96C5-0x96C7 0xBF45
+0x96C8-0x96CE 0xBF49
+0x96CF-0x96D1 0xBF52
+0x96D2-0x96FE 0xBF56
+0x9741-0x9751 0xBF83
+0x9752-0x975A 0xBF95
+0x9761-0x9772 0xBF9E
+0x9773-0x977A 0xBFB1
+0x9781-0x978C 0xBFB9
+0x978D-0x9792 0xBFC6
+0x9793-0x9794 0xBFCE
+0x9795-0x9797 0xBFD1
+0x9798-0x979E 0xBFD5
+0x979F-0x97A0 0xBFDD
+0x97A1 0xBFE0
+0x97A2-0x97FB 0xBFE2
+0x97FC-0x97FE 0xC03D
+0x9841-0x9851 0xC040
+0x9852-0x9857 0xC052
+0x9858-0x985A 0xC059
+0x9861-0x9863 0xC05D
+0x9864-0x986A 0xC061
+0x986B-0x987A 0xC06A
+0x9881-0x9896 0xC07A
+0x9897-0x9898 0xC092
+0x9899-0x989B 0xC095
+0x989C-0x98A2 0xC099
+0x98A3 0xC0A2
+0x98A4 0xC0A4
+0x98A5-0x98AA 0xC0A6
+0x98AB 0xC0AE
+0x98AC-0x98AD 0xC0B1
+0x98AE-0x98B2 0xC0B7
+0x98B3 0xC0BE
+0x98B4-0x98B6 0xC0C2
+0x98B7-0x98B8 0xC0C6
+0x98B9-0x98BA 0xC0CA
+0x98BB-0x98BD 0xC0CD
+0x98BE-0x98C4 0xC0D1
+0x98C5 0xC0DA
+0x98C6-0x98CB 0xC0DE
+0x98CC-0x98CD 0xC0E6
+0x98CE-0x98D0 0xC0E9
+0x98D1-0x98D7 0xC0ED
+0x98D8 0xC0F6
+0x98D9 0xC0F8
+0x98DA-0x98DF 0xC0FA
+0x98E0-0x98E2 0xC101
+0x98E3-0x98E5 0xC105
+0x98E6-0x98EC 0xC109
+0x98ED-0x98F0 0xC111
+0x98F1-0x98F6 0xC116
+0x98F7-0x98F8 0xC121
+0x98F9 0xC125
+0x98FA-0x98FD 0xC128
+0x98FE 0xC12E
+0x9941-0x9944 0xC132
+0x9945 0xC137
+0x9946-0x9947 0xC13A
+0x9948-0x994A 0xC13D
+0x994B-0x9951 0xC141
+0x9952 0xC14A
+0x9953-0x9958 0xC14E
+0x9959-0x995A 0xC156
+0x9961-0x9963 0xC159
+0x9964-0x996A 0xC15D
+0x996B 0xC166
+0x996C-0x9971 0xC16A
+0x9972-0x9974 0xC171
+0x9975-0x9977 0xC175
+0x9978-0x997A 0xC179
+0x9981-0x9989 0xC17C
+0x998A-0x998F 0xC186
+0x9990 0xC18F
+0x9991-0x9993 0xC191
+0x9994 0xC195
+0x9995-0x9999 0xC197
+0x999A 0xC19E
+0x999B 0xC1A0
+0x999C-0x999E 0xC1A2
+0x999F-0x99A0 0xC1A6
+0x99A1-0x99A2 0xC1AA
+0x99A3-0x99A5 0xC1AD
+0x99A6-0x99B1 0xC1B1
+0x99B2-0x99B7 0xC1BE
+0x99B8-0x99BA 0xC1C5
+0x99BB-0x99BD 0xC1C9
+0x99BE-0x99C4 0xC1CD
+0x99C5-0x99C6 0xC1D5
+0x99C7-0x99CD 0xC1D9
+0x99CE-0x99D0 0xC1E1
+0x99D1-0x99D3 0xC1E5
+0x99D4-0x99DA 0xC1E9
+0x99DB 0xC1F2
+0x99DC-0x99E3 0xC1F4
+0x99E4-0x99E5 0xC1FE
+0x99E6-0x99E8 0xC201
+0x99E9-0x99EF 0xC205
+0x99F0 0xC20E
+0x99F1 0xC210
+0x99F2-0x99F7 0xC212
+0x99F8-0x99F9 0xC21A
+0x99FA-0x99FB 0xC21D
+0x99FC-0x99FE 0xC221
+0x9A41-0x9A44 0xC224
+0x9A45 0xC22A
+0x9A46 0xC22C
+0x9A47 0xC22E
+0x9A48 0xC230
+0x9A49 0xC233
+0x9A4A-0x9A5A 0xC235
+0x9A61-0x9A62 0xC246
+0x9A63-0x9A69 0xC249
+0x9A6A-0x9A6B 0xC252
+0x9A6C-0x9A6E 0xC255
+0x9A6F-0x9A75 0xC259
+0x9A76-0x9A79 0xC261
+0x9A7A 0xC266
+0x9A81-0x9A85 0xC267
+0x9A86-0x9A87 0xC26E
+0x9A88-0x9A8A 0xC271
+0x9A8B-0x9A91 0xC275
+0x9A92 0xC27E
+0x9A93 0xC280
+0x9A94-0x9A99 0xC282
+0x9A9A-0x9A9F 0xC28A
+0x9AA0-0x9AA6 0xC291
+0x9AA7-0x9AA8 0xC299
+0x9AA9 0xC29C
+0x9AAA-0x9AAF 0xC29E
+0x9AB0-0x9AB1 0xC2A6
+0x9AB2-0x9AB4 0xC2A9
+0x9AB5-0x9ABA 0xC2AE
+0x9ABB 0xC2B6
+0x9ABC 0xC2B8
+0x9ABD-0x9ADE 0xC2BA
+0x9ADF-0x9AE0 0xC2DE
+0x9AE1-0x9AE2 0xC2E1
+0x9AE3-0x9AE8 0xC2E5
+0x9AE9 0xC2EE
+0x9AEA 0xC2F0
+0x9AEB-0x9AEE 0xC2F2
+0x9AEF 0xC2F7
+0x9AF0 0xC2FA
+0x9AF1-0x9AF3 0xC2FD
+0x9AF4-0x9AFA 0xC301
+0x9AFB-0x9AFC 0xC30A
+0x9AFD-0x9AFE 0xC30E
+0x9B41-0x9B43 0xC310
+0x9B44-0x9B45 0xC316
+0x9B46-0x9B48 0xC319
+0x9B49-0x9B4F 0xC31D
+0x9B50-0x9B51 0xC326
+0x9B52-0x9B5A 0xC32A
+0x9B61-0x9B72 0xC333
+0x9B73-0x9B7A 0xC346
+0x9B81-0x9B9A 0xC34E
+0x9B9B-0x9B9C 0xC36A
+0x9B9D-0x9B9F 0xC36D
+0x9BA0 0xC371
+0x9BA1-0x9BA5 0xC373
+0x9BA6-0x9BA7 0xC37A
+0x9BA8-0x9BAD 0xC37E
+0x9BAE-0x9BB0 0xC385
+0x9BB1-0x9BB3 0xC389
+0x9BB4-0x9BE6 0xC38D
+0x9BE7-0x9BFD 0xC3C1
+0x9BFE 0xC3DA
+0x9C41 0xC3DB
+0x9C42-0x9C43 0xC3DD
+0x9C44 0xC3E1
+0x9C45-0x9C49 0xC3E3
+0x9C4A-0x9C4C 0xC3EA
+0x9C4D-0x9C52 0xC3EE
+0x9C53-0x9C54 0xC3F6
+0x9C55-0x9C5A 0xC3F9
+0x9C61-0x9C69 0xC3FF
+0x9C6A-0x9C70 0xC409
+0x9C71-0x9C7A 0xC411
+0x9C81-0x9C89 0xC41B
+0x9C8A-0x9C90 0xC425
+0x9C91-0x9C93 0xC42D
+0x9C94-0x9C96 0xC431
+0x9C97-0x9C9D 0xC435
+0x9C9E-0x9CA7 0xC43E
+0x9CA8-0x9CC2 0xC449
+0x9CC3-0x9CC4 0xC466
+0x9CC5-0x9CC7 0xC469
+0x9CC8-0x9CCE 0xC46D
+0x9CCF-0x9CD1 0xC476
+0x9CD2-0x9CD7 0xC47A
+0x9CD8-0x9CEA 0xC481
+0x9CEB-0x9CF1 0xC495
+0x9CF2-0x9CFE 0xC49D
+0x9D41-0x9D4E 0xC4AA
+0x9D4F-0x9D51 0xC4B9
+0x9D52-0x9D5A 0xC4BD
+0x9D61-0x9D7A 0xC4C6
+0x9D81-0x9D89 0xC4E0
+0x9D8A-0x9D8F 0xC4EA
+0x9D90-0x9D91 0xC4F2
+0x9D92-0x9D94 0xC4F5
+0x9D95 0xC4F9
+0x9D96-0x9D99 0xC4FB
+0x9D9A-0x9DA3 0xC502
+0x9DA4-0x9DA6 0xC50D
+0x9DA7-0x9DA9 0xC511
+0x9DAA-0x9DB0 0xC515
+0x9DB1-0x9DBB 0xC51D
+0x9DBC-0x9DBD 0xC52A
+0x9DBE-0x9DC0 0xC52D
+0x9DC1-0x9DC7 0xC531
+0x9DC8 0xC53A
+0x9DC9 0xC53C
+0x9DCA-0x9DCF 0xC53E
+0x9DD0-0x9DD1 0xC546
+0x9DD2 0xC54B
+0x9DD3-0x9DD6 0xC54F
+0x9DD7 0xC556
+0x9DD8-0x9DDA 0xC55A
+0x9DDB 0xC55F
+0x9DDC-0x9DDD 0xC562
+0x9DDE-0x9DE0 0xC565
+0x9DE1-0x9DE7 0xC569
+0x9DE8 0xC572
+0x9DE9-0x9DEE 0xC576
+0x9DEF-0x9DF0 0xC57E
+0x9DF1-0x9DF3 0xC581
+0x9DF4-0x9DF5 0xC585
+0x9DF6-0x9DF9 0xC588
+0x9DFA 0xC58E
+0x9DFB 0xC590
+0x9DFC-0x9DFE 0xC592
+0x9E41 0xC596
+0x9E42-0x9E44 0xC599
+0x9E45-0x9E47 0xC59D
+0x9E48-0x9E4F 0xC5A1
+0x9E50-0x9E59 0xC5AA
+0x9E5A 0xC5B6
+0x9E61 0xC5B7
+0x9E62 0xC5BA
+0x9E63-0x9E67 0xC5BF
+0x9E68 0xC5CB
+0x9E69 0xC5CD
+0x9E6A 0xC5CF
+0x9E6B-0x9E6C 0xC5D2
+0x9E6D-0x9E6F 0xC5D5
+0x9E70-0x9E76 0xC5D9
+0x9E77 0xC5E2
+0x9E78 0xC5E4
+0x9E79-0x9E7A 0xC5E6
+0x9E81-0x9E84 0xC5E8
+0x9E85 0xC5EF
+0x9E86-0x9E88 0xC5F1
+0x9E89 0xC5F5
+0x9E8A-0x9E8D 0xC5F8
+0x9E8E-0x9E90 0xC602
+0x9E91-0x9E93 0xC609
+0x9E94-0x9E96 0xC60D
+0x9E97-0x9E9D 0xC611
+0x9E9E 0xC61A
+0x9E9F-0x9EA5 0xC61D
+0x9EA6-0x9EA7 0xC626
+0x9EA8-0x9EAA 0xC629
+0x9EAB 0xC62F
+0x9EAC-0x9EAD 0xC631
+0x9EAE 0xC636
+0x9EAF 0xC638
+0x9EB0 0xC63A
+0x9EB1-0x9EB4 0xC63C
+0x9EB5-0x9EB6 0xC642
+0x9EB7-0x9EB9 0xC645
+0x9EBA-0x9EC0 0xC649
+0x9EC1 0xC652
+0x9EC2-0x9EC7 0xC656
+0x9EC8-0x9EC9 0xC65E
+0x9ECA-0x9ED4 0xC661
+0x9ED5-0x9ED6 0xC66D
+0x9ED7 0xC670
+0x9ED8-0x9EDD 0xC672
+0x9EDE-0x9EDF 0xC67A
+0x9EE0-0x9EE2 0xC67D
+0x9EE3-0x9EE9 0xC681
+0x9EEA 0xC68A
+0x9EEB 0xC68C
+0x9EEC-0x9EF1 0xC68E
+0x9EF2-0x9EF3 0xC696
+0x9EF4-0x9EF6 0xC699
+0x9EF7-0x9EFD 0xC69D
+0x9EFE 0xC6A6
+0x9F41 0xC6A8
+0x9F42-0x9F47 0xC6AA
+0x9F48-0x9F49 0xC6B2
+0x9F4A-0x9F4C 0xC6B5
+0x9F4D-0x9F51 0xC6BB
+0x9F52 0xC6C2
+0x9F53 0xC6C4
+0x9F54-0x9F59 0xC6C6
+0x9F5A 0xC6CE
+0x9F61 0xC6CF
+0x9F62-0x9F64 0xC6D1
+0x9F65-0x9F6B 0xC6D5
+0x9F6C-0x9F6D 0xC6DE
+0x9F6E-0x9F73 0xC6E2
+0x9F74-0x9F75 0xC6EA
+0x9F76-0x9F78 0xC6ED
+0x9F79-0x9F7A 0xC6F1
+0x9F81-0x9F85 0xC6F3
+0x9F86-0x9F88 0xC6FA
+0x9F89-0x9F8E 0xC6FE
+0x9F8F-0x9F90 0xC706
+0x9F91-0x9F93 0xC709
+0x9F94-0x9F9A 0xC70D
+0x9F9B 0xC716
+0x9F9C 0xC718
+0x9F9D-0x9FA2 0xC71A
+0x9FA3-0x9FA4 0xC722
+0x9FA5-0x9FA7 0xC725
+0x9FA8-0x9FAE 0xC729
+0x9FAF 0xC732
+0x9FB0 0xC734
+0x9FB1 0xC736
+0x9FB2-0x9FB5 0xC738
+0x9FB6-0x9FB7 0xC73E
+0x9FB8-0x9FBA 0xC741
+0x9FBB-0x9FBF 0xC745
+0x9FC0 0xC74B
+0x9FC1 0xC74E
+0x9FC2 0xC750
+0x9FC3-0x9FC5 0xC759
+0x9FC6-0x9FC8 0xC75D
+0x9FC9-0x9FCF 0xC761
+0x9FD0-0x9FD1 0xC769
+0x9FD2-0x9FD9 0xC76C
+0x9FDA-0x9FDB 0xC776
+0x9FDC-0x9FDE 0xC779
+0x9FDF-0x9FE2 0xC77F
+0x9FE3 0xC786
+0x9FE4-0x9FE6 0xC78B
+0x9FE7 0xC78F
+0x9FE8-0x9FE9 0xC792
+0x9FEA 0xC795
+0x9FEB 0xC799
+0x9FEC-0x9FF0 0xC79B
+0x9FF1 0xC7A2
+0x9FF2-0x9FF6 0xC7A7
+0x9FF7-0x9FF8 0xC7AE
+0x9FF9-0x9FFB 0xC7B1
+0x9FFC-0x9FFE 0xC7B5
+0xA041-0xA044 0xC7B8
+0xA045 0xC7BE
+0xA046-0xA04B 0xC7C2
+0xA04C-0xA04D 0xC7CA
+0xA04E 0xC7CD
+0xA04F 0xC7CF
+0xA050-0xA056 0xC7D1
+0xA057-0xA05A 0xC7D9
+0xA061-0xA066 0xC7DE
+0xA067-0xA069 0xC7E5
+0xA06A-0xA06C 0xC7E9
+0xA06D-0xA07A 0xC7ED
+0xA081-0xA085 0xC7FB
+0xA086-0xA087 0xC802
+0xA088-0xA08A 0xC805
+0xA08B 0xC809
+0xA08C-0xA090 0xC80B
+0xA091 0xC812
+0xA092 0xC814
+0xA093-0xA097 0xC817
+0xA098-0xA099 0xC81E
+0xA09A-0xA09C 0xC821
+0xA09D-0xA0A3 0xC825
+0xA0A4 0xC82E
+0xA0A5 0xC830
+0xA0A6-0xA0AB 0xC832
+0xA0AC-0xA0AE 0xC839
+0xA0AF-0xA0B1 0xC83D
+0xA0B2-0xA0B8 0xC841
+0xA0B9-0xA0BA 0xC84A
+0xA0BB-0xA0C0 0xC84E
+0xA0C1-0xA0DB 0xC855
+0xA0DC-0xA0DD 0xC872
+0xA0DE-0xA0E0 0xC875
+0xA0E1 0xC879
+0xA0E2-0xA0E6 0xC87B
+0xA0E7 0xC882
+0xA0E8 0xC884
+0xA0E9-0xA0EB 0xC888
+0xA0EC-0xA0F1 0xC88E
+0xA0F2-0xA0F9 0xC895
+0xA0FA 0xC89E
+0xA0FB 0xC8A0
+0xA0FC-0xA0FE 0xC8A2
+0xA141-0xA143 0xC8A5
+0xA144-0xA156 0xC8A9
+0xA157-0xA15A 0xC8BE
+0xA161-0xA162 0xC8C2
+0xA163-0xA165 0xC8C5
+0xA166-0xA168 0xC8C9
+0xA169-0xA16F 0xC8CD
+0xA170 0xC8D6
+0xA171 0xC8D8
+0xA172-0xA177 0xC8DA
+0xA178-0xA179 0xC8E2
+0xA17A 0xC8E5
+0xA181-0xA18F 0xC8E6
+0xA190-0xA195 0xC8F6
+0xA196-0xA197 0xC8FE
+0xA198-0xA19A 0xC901
+0xA19B-0xA19F 0xC907
+0xA1A0 0xC90E
+0xA1A1-0xA1A3 0x3000
+0xA1A4 0x00B7
+0xA1A5-0xA1A6 0x2025
+0xA1A7 0x00A8
+0xA1A8 0x3003
+0xA1A9 0x00AD
+0xA1AA 0x2015
+0xA1AB 0x2225
+0xA1AC 0xFF3C
+0xA1AD 0x223C
+0xA1AE-0xA1AF 0x2018
+0xA1B0-0xA1B1 0x201C
+0xA1B2-0xA1B3 0x3014
+0xA1B4-0xA1BD 0x3008
+0xA1BE 0x00B1
+0xA1BF 0x00D7
+0xA1C0 0x00F7
+0xA1C1 0x2260
+0xA1C2-0xA1C3 0x2264
+0xA1C4 0x221E
+0xA1C5 0x2234
+0xA1C6 0x00B0
+0xA1C7-0xA1C8 0x2032
+0xA1C9 0x2103
+0xA1CA 0x212B
+0xA1CB-0xA1CC 0xFFE0
+0xA1CD 0xFFE5
+0xA1CE 0x2642
+0xA1CF 0x2640
+0xA1D0 0x2220
+0xA1D1 0x22A5
+0xA1D2 0x2312
+0xA1D3 0x2202
+0xA1D4 0x2207
+0xA1D5 0x2261
+0xA1D6 0x2252
+0xA1D7 0x00A7
+0xA1D8 0x203B
+0xA1D9 0x2606
+0xA1DA 0x2605
+0xA1DB 0x25CB
+0xA1DC 0x25CF
+0xA1DD 0x25CE
+0xA1DE 0x25C7
+0xA1DF 0x25C6
+0xA1E0 0x25A1
+0xA1E1 0x25A0
+0xA1E2 0x25B3
+0xA1E3 0x25B2
+0xA1E4 0x25BD
+0xA1E5 0x25BC
+0xA1E6 0x2192
+0xA1E7-0xA1E8 0x2190
+0xA1E9-0xA1EA 0x2193
+0xA1EB 0x3013
+0xA1EC-0xA1ED 0x226A
+0xA1EE 0x221A
+0xA1EF 0x223D
+0xA1F0 0x221D
+0xA1F1 0x2235
+0xA1F2-0xA1F3 0x222B
+0xA1F4 0x2208
+0xA1F5 0x220B
+0xA1F6-0xA1F7 0x2286
+0xA1F8-0xA1F9 0x2282
+0xA1FA 0x222A
+0xA1FB 0x2229
+0xA1FC-0xA1FD 0x2227
+0xA1FE 0xFFE2
+0xA241 0xC910
+0xA242-0xA247 0xC912
+0xA248-0xA25A 0xC919
+0xA261-0xA267 0xC92D
+0xA268-0xA27A 0xC935
+0xA281-0xA288 0xC948
+0xA289-0xA28A 0xC952
+0xA28B-0xA28D 0xC955
+0xA28E-0xA294 0xC959
+0xA295 0xC962
+0xA296-0xA29D 0xC964
+0xA29E-0xA2A0 0xC96D
+0xA2A1 0x21D2
+0xA2A2 0x21D4
+0xA2A3 0x2200
+0xA2A4 0x2203
+0xA2A5 0x00B4
+0xA2A6 0xFF5E
+0xA2A7 0x02C7
+0xA2A8 0x02D8
+0xA2A9 0x02DD
+0xA2AA 0x02DA
+0xA2AB 0x02D9
+0xA2AC 0x00B8
+0xA2AD 0x02DB
+0xA2AE 0x00A1
+0xA2AF 0x00BF
+0xA2B0 0x02D0
+0xA2B1 0x222E
+0xA2B2 0x2211
+0xA2B3 0x220F
+0xA2B4 0x00A4
+0xA2B5 0x2109
+0xA2B6 0x2030
+0xA2B7 0x25C1
+0xA2B8 0x25C0
+0xA2B9 0x25B7
+0xA2BA 0x25B6
+0xA2BB 0x2664
+0xA2BC-0xA2BD 0x2660
+0xA2BE 0x2665
+0xA2BF 0x2667
+0xA2C0 0x2663
+0xA2C1 0x2299
+0xA2C2 0x25C8
+0xA2C3 0x25A3
+0xA2C4-0xA2C5 0x25D0
+0xA2C6 0x2592
+0xA2C7-0xA2C8 0x25A4
+0xA2C9 0x25A8
+0xA2CA 0x25A7
+0xA2CB 0x25A6
+0xA2CC 0x25A9
+0xA2CD 0x2668
+0xA2CE 0x260F
+0xA2CF 0x260E
+0xA2D0 0x261C
+0xA2D1 0x261E
+0xA2D2 0x00B6
+0xA2D3-0xA2D4 0x2020
+0xA2D5 0x2195
+0xA2D6 0x2197
+0xA2D7 0x2199
+0xA2D8 0x2196
+0xA2D9 0x2198
+0xA2DA 0x266D
+0xA2DB-0xA2DC 0x2669
+0xA2DD 0x266C
+0xA2DE 0x327F
+0xA2DF 0x321C
+0xA2E0 0x2116
+0xA2E1 0x33C7
+0xA2E2 0x2122
+0xA2E3 0x33C2
+0xA2E4 0x33D8
+0xA2E5 0x2121
+0xA2E6 0x20AC
+0xA2E7 0x00AE
+0xA341-0xA343 0xC971
+0xA344-0xA34A 0xC975
+0xA34B-0xA355 0xC97D
+0xA356-0xA357 0xC98A
+0xA358-0xA35A 0xC98D
+0xA361-0xA367 0xC991
+0xA368 0xC99A
+0xA369 0xC99C
+0xA36A-0xA37A 0xC99E
+0xA381-0xA391 0xC9AF
+0xA392-0xA393 0xC9C2
+0xA394-0xA395 0xC9C5
+0xA396 0xC9C9
+0xA397-0xA39B 0xC9CB
+0xA39C 0xC9D2
+0xA39D 0xC9D4
+0xA39E-0xA39F 0xC9D7
+0xA3A0 0xC9DB
+0xA3A1-0xA3DB 0xFF01
+0xA3DC 0xFFE6
+0xA3DD-0xA3FD 0xFF3D
+0xA3FE 0xFFE3
+0xA441-0xA442 0xC9DE
+0xA443 0xC9E1
+0xA444 0xC9E3
+0xA445-0xA446 0xC9E5
+0xA447-0xA44A 0xC9E8
+0xA44B 0xC9EE
+0xA44C-0xA451 0xC9F2
+0xA452-0xA453 0xC9FA
+0xA454-0xA456 0xC9FD
+0xA457-0xA45A 0xCA01
+0xA461-0xA463 0xCA05
+0xA464 0xCA0A
+0xA465-0xA46A 0xCA0E
+0xA46B-0xA46D 0xCA15
+0xA46E-0xA47A 0xCA19
+0xA481-0xA483 0xCA26
+0xA484-0xA4A0 0xCA2A
+0xA4A1-0xA4FE 0x3131
+0xA541-0xA545 0xCA47
+0xA546-0xA547 0xCA4E
+0xA548-0xA54A 0xCA51
+0xA54B-0xA551 0xCA55
+0xA552 0xCA5E
+0xA553-0xA558 0xCA62
+0xA559-0xA55A 0xCA69
+0xA561-0xA572 0xCA6B
+0xA573-0xA578 0xCA7E
+0xA579-0xA57A 0xCA85
+0xA581-0xA591 0xCA87
+0xA592-0xA5A0 0xCA99
+0xA5A1-0xA5AA 0x2170
+0xA5B0-0xA5B9 0x2160
+0xA5C1-0xA5D1 0x0391
+0xA5D2-0xA5D8 0x03A3
+0xA5E1-0xA5F1 0x03B1
+0xA5F2-0xA5F8 0x03C3
+0xA641-0xA654 0xCAA8
+0xA655-0xA656 0xCABE
+0xA657-0xA659 0xCAC1
+0xA65A 0xCAC5
+0xA661-0xA666 0xCAC6
+0xA667 0xCACE
+0xA668 0xCAD0
+0xA669 0xCAD2
+0xA66A-0xA66D 0xCAD4
+0xA66E-0xA673 0xCADA
+0xA674-0xA67A 0xCAE1
+0xA681-0xA684 0xCAE8
+0xA685-0xA68B 0xCAED
+0xA68C-0xA69E 0xCAF5
+0xA69F-0xA6A0 0xCB09
+0xA6A1 0x2500
+0xA6A2 0x2502
+0xA6A3 0x250C
+0xA6A4 0x2510
+0xA6A5 0x2518
+0xA6A6 0x2514
+0xA6A7 0x251C
+0xA6A8 0x252C
+0xA6A9 0x2524
+0xA6AA 0x2534
+0xA6AB 0x253C
+0xA6AC 0x2501
+0xA6AD 0x2503
+0xA6AE 0x250F
+0xA6AF 0x2513
+0xA6B0 0x251B
+0xA6B1 0x2517
+0xA6B2 0x2523
+0xA6B3 0x2533
+0xA6B4 0x252B
+0xA6B5 0x253B
+0xA6B6 0x254B
+0xA6B7 0x2520
+0xA6B8 0x252F
+0xA6B9 0x2528
+0xA6BA 0x2537
+0xA6BB 0x253F
+0xA6BC 0x251D
+0xA6BD 0x2530
+0xA6BE 0x2525
+0xA6BF 0x2538
+0xA6C0 0x2542
+0xA6C1 0x2512
+0xA6C2 0x2511
+0xA6C3 0x251A
+0xA6C4 0x2519
+0xA6C5 0x2516
+0xA6C6 0x2515
+0xA6C7 0x250E
+0xA6C8 0x250D
+0xA6C9-0xA6CA 0x251E
+0xA6CB-0xA6CC 0x2521
+0xA6CD-0xA6CE 0x2526
+0xA6CF-0xA6D0 0x2529
+0xA6D1-0xA6D2 0x252D
+0xA6D3-0xA6D4 0x2531
+0xA6D5-0xA6D6 0x2535
+0xA6D7-0xA6D8 0x2539
+0xA6D9-0xA6DA 0x253D
+0xA6DB-0xA6DC 0x2540
+0xA6DD-0xA6E4 0x2543
+0xA741-0xA745 0xCB0B
+0xA746-0xA748 0xCB11
+0xA749-0xA74B 0xCB15
+0xA74C-0xA752 0xCB19
+0xA753-0xA75A 0xCB22
+0xA761-0xA777 0xCB2A
+0xA778-0xA77A 0xCB42
+0xA781-0xA783 0xCB45
+0xA784-0xA785 0xCB4A
+0xA786-0xA788 0xCB4D
+0xA789-0xA78F 0xCB51
+0xA790-0xA792 0xCB5A
+0xA793-0xA798 0xCB5E
+0xA799-0xA7A0 0xCB65
+0xA7A1-0xA7A3 0x3395
+0xA7A4 0x2113
+0xA7A5 0x3398
+0xA7A6 0x33C4
+0xA7A7-0xA7AA 0x33A3
+0xA7AB-0xA7B4 0x3399
+0xA7B5 0x33CA
+0xA7B6-0xA7B8 0x338D
+0xA7B9 0x33CF
+0xA7BA-0xA7BB 0x3388
+0xA7BC 0x33C8
+0xA7BD-0xA7BE 0x33A7
+0xA7BF-0xA7C8 0x33B0
+0xA7C9-0xA7CD 0x3380
+0xA7CE-0xA7D3 0x33BA
+0xA7D4-0xA7D8 0x3390
+0xA7D9 0x2126
+0xA7DA-0xA7DB 0x33C0
+0xA7DC-0xA7DE 0x338A
+0xA7DF 0x33D6
+0xA7E0 0x33C5
+0xA7E1-0xA7E3 0x33AD
+0xA7E4 0x33DB
+0xA7E5-0xA7E8 0x33A9
+0xA7E9 0x33DD
+0xA7EA 0x33D0
+0xA7EB 0x33D3
+0xA7EC 0x33C3
+0xA7ED 0x33C9
+0xA7EE 0x33DC
+0xA7EF 0x33C6
+0xA841-0xA84B 0xCB6D
+0xA84C-0xA85A 0xCB7A
+0xA861-0xA873 0xCB89
+0xA874-0xA87A 0xCB9D
+0xA881-0xA894 0xCBA4
+0xA895-0xA8A0 0xCBB9
+0xA8A1 0x00C6
+0xA8A2 0x00D0
+0xA8A3 0x00AA
+0xA8A4 0x0126
+0xA8A6 0x0132
+0xA8A8 0x013F
+0xA8A9 0x0141
+0xA8AA 0x00D8
+0xA8AB 0x0152
+0xA8AC 0x00BA
+0xA8AD 0x00DE
+0xA8AE 0x0166
+0xA8AF 0x014A
+0xA8B1-0xA8CC 0x3260
+0xA8CD-0xA8E6 0x24D0
+0xA8E7-0xA8F5 0x2460
+0xA8F6 0x00BD
+0xA8F7-0xA8F8 0x2153
+0xA8F9 0x00BC
+0xA8FA 0x00BE
+0xA8FB-0xA8FE 0x215B
+0xA941-0xA94F 0xCBC5
+0xA950-0xA95A 0xCBD5
+0xA961-0xA964 0xCBE0
+0xA965-0xA966 0xCBE5
+0xA967 0xCBE8
+0xA968-0xA97A 0xCBEA
+0xA981-0xA98F 0xCBFD
+0xA990-0xA991 0xCC0E
+0xA992-0xA994 0xCC11
+0xA995-0xA99B 0xCC15
+0xA99C-0xA99E 0xCC1E
+0xA99F-0xA9A0 0xCC23
+0xA9A1 0x00E6
+0xA9A2 0x0111
+0xA9A3 0x00F0
+0xA9A4 0x0127
+0xA9A5 0x0131
+0xA9A6 0x0133
+0xA9A7 0x0138
+0xA9A8 0x0140
+0xA9A9 0x0142
+0xA9AA 0x00F8
+0xA9AB 0x0153
+0xA9AC 0x00DF
+0xA9AD 0x00FE
+0xA9AE 0x0167
+0xA9AF 0x014B
+0xA9B0 0x0149
+0xA9B1-0xA9CC 0x3200
+0xA9CD-0xA9E6 0x249C
+0xA9E7-0xA9F5 0x2474
+0xA9F6 0x00B9
+0xA9F7-0xA9F8 0x00B2
+0xA9F9 0x2074
+0xA9FA 0x207F
+0xA9FB-0xA9FE 0x2081
+0xAA41-0xAA42 0xCC25
+0xAA43-0xAA44 0xCC2A
+0xAA45 0xCC2D
+0xAA46 0xCC2F
+0xAA47-0xAA4D 0xCC31
+0xAA4E 0xCC3A
+0xAA4F-0xAA53 0xCC3F
+0xAA54-0xAA55 0xCC46
+0xAA56-0xAA58 0xCC49
+0xAA59-0xAA5A 0xCC4D
+0xAA61-0xAA65 0xCC4F
+0xAA66 0xCC56
+0xAA67-0xAA6C 0xCC5A
+0xAA6D-0xAA6F 0xCC61
+0xAA70 0xCC65
+0xAA71 0xCC67
+0xAA72-0xAA78 0xCC69
+0xAA79-0xAA7A 0xCC71
+0xAA81-0xAA82 0xCC73
+0xAA83-0xAAA0 0xCC76
+0xAAA1-0xAAF3 0x3041
+0xAB41-0xAB44 0xCC94
+0xAB45-0xAB46 0xCC9A
+0xAB47-0xAB49 0xCC9D
+0xAB4A-0xAB50 0xCCA1
+0xAB51 0xCCAA
+0xAB52-0xAB57 0xCCAE
+0xAB58-0xAB59 0xCCB6
+0xAB5A 0xCCB9
+0xAB61-0xAB62 0xCCBA
+0xAB63-0xAB69 0xCCBD
+0xAB6A 0xCCC6
+0xAB6B 0xCCC8
+0xAB6C-0xAB71 0xCCCA
+0xAB72-0xAB74 0xCCD1
+0xAB75-0xAB7A 0xCCD5
+0xAB81-0xAB89 0xCCDB
+0xAB8A-0xAB90 0xCCE5
+0xAB91-0xAB93 0xCCED
+0xAB94-0xABA0 0xCCF1
+0xABA1-0xABF6 0x30A1
+0xAC41-0xAC43 0xCCFE
+0xAC44-0xAC49 0xCD02
+0xAC4A-0xAC4B 0xCD0A
+0xAC4C-0xAC4E 0xCD0D
+0xAC4F-0xAC55 0xCD11
+0xAC56 0xCD1A
+0xAC57 0xCD1C
+0xAC58-0xAC5A 0xCD1E
+0xAC61-0xAC63 0xCD21
+0xAC64-0xAC66 0xCD25
+0xAC67-0xAC69 0xCD29
+0xAC6A-0xAC75 0xCD2D
+0xAC76-0xAC7A 0xCD3A
+0xAC81-0xAC9D 0xCD3F
+0xAC9E-0xACA0 0xCD5D
+0xACA1-0xACA6 0x0410
+0xACA7 0x0401
+0xACA8-0xACC1 0x0416
+0xACD1-0xACD6 0x0430
+0xACD7 0x0451
+0xACD8-0xACF1 0x0436
+0xAD41-0xAD43 0xCD61
+0xAD44-0xAD4A 0xCD65
+0xAD4B 0xCD6E
+0xAD4C 0xCD70
+0xAD4D-0xAD52 0xCD72
+0xAD53-0xAD5A 0xCD79
+0xAD61-0xAD67 0xCD81
+0xAD68-0xAD72 0xCD89
+0xAD73-0xAD74 0xCD96
+0xAD75-0xAD77 0xCD99
+0xAD78-0xAD7A 0xCD9D
+0xAD81-0xAD84 0xCDA0
+0xAD85 0xCDA6
+0xAD86 0xCDA8
+0xAD87-0xAD8C 0xCDAA
+0xAD8D-0xAD9F 0xCDB1
+0xADA0 0xCDC5
+0xAE41-0xAE46 0xCDC6
+0xAE47-0xAE49 0xCDCD
+0xAE4A-0xAE5A 0xCDD1
+0xAE61-0xAE66 0xCDE2
+0xAE67-0xAE69 0xCDE9
+0xAE6A-0xAE6C 0xCDED
+0xAE6D-0xAE73 0xCDF1
+0xAE74 0xCDFA
+0xAE75 0xCDFC
+0xAE76-0xAE7A 0xCDFE
+0xAE81 0xCE03
+0xAE82-0xAE84 0xCE05
+0xAE85-0xAE87 0xCE09
+0xAE88-0xAE8E 0xCE0D
+0xAE8F-0xAE92 0xCE15
+0xAE93-0xAE98 0xCE1A
+0xAE99-0xAE9A 0xCE22
+0xAE9B-0xAE9D 0xCE25
+0xAE9E-0xAEA0 0xCE29
+0xAF41-0xAF44 0xCE2C
+0xAF45 0xCE32
+0xAF46 0xCE34
+0xAF47-0xAF5A 0xCE36
+0xAF61-0xAF6E 0xCE4A
+0xAF6F-0xAF70 0xCE5A
+0xAF71-0xAF72 0xCE5D
+0xAF73-0xAF78 0xCE62
+0xAF79 0xCE6A
+0xAF7A 0xCE6C
+0xAF81-0xAF86 0xCE6E
+0xAF87-0xAF88 0xCE76
+0xAF89-0xAF8B 0xCE79
+0xAF8C-0xAF92 0xCE7D
+0xAF93 0xCE86
+0xAF94 0xCE88
+0xAF95-0xAF9A 0xCE8A
+0xAF9B-0xAF9C 0xCE92
+0xAF9D-0xAF9F 0xCE95
+0xAFA0 0xCE99
+0xB041-0xB046 0xCE9A
+0xB047 0xCEA2
+0xB048-0xB04D 0xCEA6
+0xB04E-0xB05A 0xCEAE
+0xB061-0xB066 0xCEBB
+0xB067-0xB07A 0xCEC2
+0xB081-0xB08E 0xCED6
+0xB08F-0xB090 0xCEE6
+0xB091-0xB092 0xCEE9
+0xB093-0xB099 0xCEED
+0xB09A 0xCEF6
+0xB09B-0xB0A0 0xCEFA
+0xB0A1-0xB0A2 0xAC00
+0xB0A3 0xAC04
+0xB0A4-0xB0A7 0xAC07
+0xB0A8-0xB0AF 0xAC10
+0xB0B0-0xB0B4 0xAC19
+0xB0B5 0xAC20
+0xB0B6 0xAC24
+0xB0B7-0xB0B8 0xAC2C
+0xB0B9-0xB0BB 0xAC2F
+0xB0BC-0xB0BD 0xAC38
+0xB0BE 0xAC3C
+0xB0BF 0xAC40
+0xB0C0 0xAC4B
+0xB0C1 0xAC4D
+0xB0C2 0xAC54
+0xB0C3 0xAC58
+0xB0C4 0xAC5C
+0xB0C5-0xB0C6 0xAC70
+0xB0C7 0xAC74
+0xB0C8-0xB0C9 0xAC77
+0xB0CA 0xAC7A
+0xB0CB-0xB0CC 0xAC80
+0xB0CD-0xB0D0 0xAC83
+0xB0D1-0xB0D4 0xAC89
+0xB0D5 0xAC90
+0xB0D6 0xAC94
+0xB0D7-0xB0D8 0xAC9C
+0xB0D9-0xB0DB 0xAC9F
+0xB0DC-0xB0DE 0xACA8
+0xB0DF 0xACAC
+0xB0E0-0xB0E1 0xACAF
+0xB0E2-0xB0E3 0xACB8
+0xB0E4-0xB0E6 0xACBB
+0xB0E7 0xACC1
+0xB0E8 0xACC4
+0xB0E9 0xACC8
+0xB0EA 0xACCC
+0xB0EB 0xACD5
+0xB0EC 0xACD7
+0xB0ED-0xB0EE 0xACE0
+0xB0EF 0xACE4
+0xB0F0-0xB0F1 0xACE7
+0xB0F2 0xACEA
+0xB0F3 0xACEC
+0xB0F4-0xB0F6 0xACEF
+0xB0F7 0xACF3
+0xB0F8-0xB0F9 0xACF5
+0xB0FA-0xB0FB 0xACFC
+0xB0FC 0xAD00
+0xB0FD 0xAD04
+0xB0FE 0xAD06
+0xB141-0xB142 0xCF02
+0xB143-0xB145 0xCF05
+0xB146-0xB14C 0xCF09
+0xB14D 0xCF12
+0xB14E 0xCF14
+0xB14F-0xB154 0xCF16
+0xB155-0xB157 0xCF1D
+0xB158-0xB15A 0xCF21
+0xB161-0xB167 0xCF25
+0xB168 0xCF2E
+0xB169-0xB16E 0xCF32
+0xB16F-0xB17A 0xCF39
+0xB181-0xB18F 0xCF45
+0xB190-0xB191 0xCF56
+0xB192-0xB194 0xCF59
+0xB195-0xB19B 0xCF5D
+0xB19C 0xCF66
+0xB19D 0xCF68
+0xB19E-0xB1A0 0xCF6A
+0xB1A1-0xB1A2 0xAD0C
+0xB1A3 0xAD0F
+0xB1A4 0xAD11
+0xB1A5 0xAD18
+0xB1A6 0xAD1C
+0xB1A7 0xAD20
+0xB1A8 0xAD29
+0xB1A9-0xB1AA 0xAD2C
+0xB1AB-0xB1AC 0xAD34
+0xB1AD 0xAD38
+0xB1AE 0xAD3C
+0xB1AF-0xB1B0 0xAD44
+0xB1B1 0xAD47
+0xB1B2 0xAD49
+0xB1B3 0xAD50
+0xB1B4 0xAD54
+0xB1B5 0xAD58
+0xB1B6 0xAD61
+0xB1B7 0xAD63
+0xB1B8-0xB1B9 0xAD6C
+0xB1BA 0xAD70
+0xB1BB-0xB1BE 0xAD73
+0xB1BF-0xB1C1 0xAD7B
+0xB1C2 0xAD7F
+0xB1C3-0xB1C4 0xAD81
+0xB1C5-0xB1C6 0xAD88
+0xB1C7 0xAD8C
+0xB1C8 0xAD90
+0xB1C9-0xB1CA 0xAD9C
+0xB1CB 0xADA4
+0xB1CC 0xADB7
+0xB1CD-0xB1CE 0xADC0
+0xB1CF 0xADC4
+0xB1D0 0xADC8
+0xB1D1-0xB1D2 0xADD0
+0xB1D3 0xADD3
+0xB1D4 0xADDC
+0xB1D5 0xADE0
+0xB1D6 0xADE4
+0xB1D7-0xB1D8 0xADF8
+0xB1D9 0xADFC
+0xB1DA-0xB1DC 0xADFF
+0xB1DD-0xB1DE 0xAE08
+0xB1DF 0xAE0B
+0xB1E0 0xAE0D
+0xB1E1 0xAE14
+0xB1E2-0xB1E3 0xAE30
+0xB1E4 0xAE34
+0xB1E5-0xB1E6 0xAE37
+0xB1E7 0xAE3A
+0xB1E8-0xB1E9 0xAE40
+0xB1EA 0xAE43
+0xB1EB-0xB1EC 0xAE45
+0xB1ED 0xAE4A
+0xB1EE-0xB1F0 0xAE4C
+0xB1F1 0xAE50
+0xB1F2 0xAE54
+0xB1F3 0xAE56
+0xB1F4-0xB1F5 0xAE5C
+0xB1F6-0xB1F8 0xAE5F
+0xB1F9 0xAE65
+0xB1FA-0xB1FB 0xAE68
+0xB1FC 0xAE6C
+0xB1FD 0xAE70
+0xB1FE 0xAE78
+0xB241-0xB243 0xCF6D
+0xB244-0xB245 0xCF72
+0xB246-0xB248 0xCF75
+0xB249-0xB24F 0xCF79
+0xB250-0xB253 0xCF81
+0xB254-0xB259 0xCF86
+0xB25A 0xCF8D
+0xB261-0xB273 0xCF8E
+0xB274-0xB279 0xCFA2
+0xB27A 0xCFA9
+0xB281-0xB286 0xCFAA
+0xB287-0xB299 0xCFB1
+0xB29A-0xB2A0 0xCFC5
+0xB2A1 0xAE79
+0xB2A2-0xB2A4 0xAE7B
+0xB2A5-0xB2A6 0xAE84
+0xB2A7 0xAE8C
+0xB2A8-0xB2AA 0xAEBC
+0xB2AB 0xAEC0
+0xB2AC 0xAEC4
+0xB2AD-0xB2AE 0xAECC
+0xB2AF-0xB2B1 0xAECF
+0xB2B2-0xB2B3 0xAED8
+0xB2B4 0xAEDC
+0xB2B5 0xAEE8
+0xB2B6 0xAEEB
+0xB2B7 0xAEED
+0xB2B8 0xAEF4
+0xB2B9 0xAEF8
+0xB2BA 0xAEFC
+0xB2BB-0xB2BC 0xAF07
+0xB2BD 0xAF0D
+0xB2BE 0xAF10
+0xB2BF-0xB2C0 0xAF2C
+0xB2C1 0xAF30
+0xB2C2 0xAF32
+0xB2C3 0xAF34
+0xB2C4-0xB2C5 0xAF3C
+0xB2C6 0xAF3F
+0xB2C7-0xB2C9 0xAF41
+0xB2CA-0xB2CB 0xAF48
+0xB2CC 0xAF50
+0xB2CD-0xB2CE 0xAF5C
+0xB2CF-0xB2D0 0xAF64
+0xB2D1 0xAF79
+0xB2D2 0xAF80
+0xB2D3 0xAF84
+0xB2D4 0xAF88
+0xB2D5-0xB2D6 0xAF90
+0xB2D7 0xAF95
+0xB2D8 0xAF9C
+0xB2D9-0xB2DA 0xAFB8
+0xB2DB 0xAFBC
+0xB2DC 0xAFC0
+0xB2DD-0xB2DF 0xAFC7
+0xB2E0 0xAFCB
+0xB2E1-0xB2E2 0xAFCD
+0xB2E3 0xAFD4
+0xB2E4 0xAFDC
+0xB2E5-0xB2E6 0xAFE8
+0xB2E7-0xB2E8 0xAFF0
+0xB2E9 0xAFF4
+0xB2EA 0xAFF8
+0xB2EB-0xB2EC 0xB000
+0xB2ED 0xB004
+0xB2EE 0xB00C
+0xB2EF 0xB010
+0xB2F0 0xB014
+0xB2F1-0xB2F2 0xB01C
+0xB2F3 0xB028
+0xB2F4-0xB2F5 0xB044
+0xB2F6 0xB048
+0xB2F7 0xB04A
+0xB2F8 0xB04C
+0xB2F9 0xB04E
+0xB2FA-0xB2FC 0xB053
+0xB2FD 0xB057
+0xB2FE 0xB059
+0xB341-0xB354 0xCFCC
+0xB355-0xB356 0xCFE2
+0xB357-0xB359 0xCFE5
+0xB35A 0xCFE9
+0xB361-0xB366 0xCFEA
+0xB367 0xCFF2
+0xB368 0xCFF4
+0xB369-0xB36E 0xCFF6
+0xB36F-0xB371 0xCFFD
+0xB372-0xB374 0xD001
+0xB375-0xB37A 0xD005
+0xB381-0xB386 0xD00B
+0xB387-0xB38C 0xD012
+0xB38D-0xB3A0 0xD019
+0xB3A1 0xB05D
+0xB3A2-0xB3A3 0xB07C
+0xB3A4 0xB080
+0xB3A5 0xB084
+0xB3A6-0xB3A7 0xB08C
+0xB3A8 0xB08F
+0xB3A9 0xB091
+0xB3AA-0xB3AC 0xB098
+0xB3AD 0xB09C
+0xB3AE-0xB3B1 0xB09F
+0xB3B2-0xB3B3 0xB0A8
+0xB3B4-0xB3B8 0xB0AB
+0xB3B9 0xB0B1
+0xB3BA-0xB3BC 0xB0B3
+0xB3BD 0xB0B8
+0xB3BE 0xB0BC
+0xB3BF-0xB3C0 0xB0C4
+0xB3C1-0xB3C3 0xB0C7
+0xB3C4-0xB3C5 0xB0D0
+0xB3C6 0xB0D4
+0xB3C7 0xB0D8
+0xB3C8 0xB0E0
+0xB3C9 0xB0E5
+0xB3CA-0xB3CB 0xB108
+0xB3CC-0xB3CD 0xB10B
+0xB3CE 0xB110
+0xB3CF-0xB3D0 0xB112
+0xB3D1-0xB3D2 0xB118
+0xB3D3-0xB3D5 0xB11B
+0xB3D6-0xB3D8 0xB123
+0xB3D9 0xB128
+0xB3DA 0xB12C
+0xB3DB-0xB3DC 0xB134
+0xB3DD-0xB3DF 0xB137
+0xB3E0-0xB3E1 0xB140
+0xB3E2 0xB144
+0xB3E3 0xB148
+0xB3E4-0xB3E5 0xB150
+0xB3E6-0xB3E7 0xB154
+0xB3E8 0xB158
+0xB3E9 0xB15C
+0xB3EA 0xB160
+0xB3EB-0xB3EC 0xB178
+0xB3ED 0xB17C
+0xB3EE 0xB180
+0xB3EF 0xB182
+0xB3F0-0xB3F1 0xB188
+0xB3F2 0xB18B
+0xB3F3 0xB18D
+0xB3F4-0xB3F6 0xB192
+0xB3F7 0xB198
+0xB3F8 0xB19C
+0xB3F9 0xB1A8
+0xB3FA 0xB1CC
+0xB3FB 0xB1D0
+0xB3FC 0xB1D4
+0xB3FD-0xB3FE 0xB1DC
+0xB441-0xB446 0xD02E
+0xB447-0xB448 0xD036
+0xB449-0xB44B 0xD039
+0xB44C-0xB452 0xD03D
+0xB453 0xD046
+0xB454 0xD048
+0xB455-0xB45A 0xD04A
+0xB461-0xB463 0xD051
+0xB464-0xB466 0xD055
+0xB467-0xB46D 0xD059
+0xB46E-0xB478 0xD061
+0xB479-0xB47A 0xD06E
+0xB481-0xB483 0xD071
+0xB484-0xB48A 0xD075
+0xB48B-0xB48D 0xD07E
+0xB48E-0xB4A0 0xD082
+0xB4A1 0xB1DF
+0xB4A2-0xB4A3 0xB1E8
+0xB4A4 0xB1EC
+0xB4A5 0xB1F0
+0xB4A6 0xB1F9
+0xB4A7 0xB1FB
+0xB4A8 0xB1FD
+0xB4A9-0xB4AA 0xB204
+0xB4AB 0xB208
+0xB4AC-0xB4AD 0xB20B
+0xB4AE-0xB4AF 0xB214
+0xB4B0 0xB217
+0xB4B1 0xB219
+0xB4B2 0xB220
+0xB4B3 0xB234
+0xB4B4 0xB23C
+0xB4B5 0xB258
+0xB4B6 0xB25C
+0xB4B7 0xB260
+0xB4B8-0xB4B9 0xB268
+0xB4BA-0xB4BB 0xB274
+0xB4BC 0xB27C
+0xB4BD-0xB4BE 0xB284
+0xB4BF 0xB289
+0xB4C0-0xB4C1 0xB290
+0xB4C2 0xB294
+0xB4C3-0xB4C5 0xB298
+0xB4C6-0xB4C7 0xB2A0
+0xB4C8 0xB2A3
+0xB4C9-0xB4CA 0xB2A5
+0xB4CB 0xB2AA
+0xB4CC 0xB2AC
+0xB4CD 0xB2B0
+0xB4CE 0xB2B4
+0xB4CF-0xB4D0 0xB2C8
+0xB4D1 0xB2CC
+0xB4D2 0xB2D0
+0xB4D3 0xB2D2
+0xB4D4-0xB4D5 0xB2D8
+0xB4D6 0xB2DB
+0xB4D7 0xB2DD
+0xB4D8 0xB2E2
+0xB4D9-0xB4DB 0xB2E4
+0xB4DC 0xB2E8
+0xB4DD-0xB4E1 0xB2EB
+0xB4E2-0xB4E4 0xB2F3
+0xB4E5-0xB4E9 0xB2F7
+0xB4EA-0xB4EC 0xB2FF
+0xB4ED 0xB304
+0xB4EE 0xB308
+0xB4EF-0xB4F0 0xB310
+0xB4F1-0xB4F3 0xB313
+0xB4F4 0xB31C
+0xB4F5-0xB4F7 0xB354
+0xB4F8 0xB358
+0xB4F9-0xB4FA 0xB35B
+0xB4FB-0xB4FC 0xB35E
+0xB4FD-0xB4FE 0xB364
+0xB541-0xB54F 0xD095
+0xB550-0xB551 0xD0A6
+0xB552-0xB554 0xD0A9
+0xB555-0xB55A 0xD0AD
+0xB561 0xD0B3
+0xB562 0xD0B6
+0xB563 0xD0B8
+0xB564-0xB569 0xD0BA
+0xB56A-0xB56B 0xD0C2
+0xB56C-0xB56E 0xD0C5
+0xB56F-0xB574 0xD0CA
+0xB575 0xD0D2
+0xB576-0xB57A 0xD0D6
+0xB581 0xD0DB
+0xB582-0xB583 0xD0DE
+0xB584-0xB586 0xD0E1
+0xB587-0xB58D 0xD0E5
+0xB58E 0xD0EE
+0xB58F-0xB594 0xD0F2
+0xB595-0xB5A0 0xD0F9
+0xB5A1 0xB367
+0xB5A2 0xB369
+0xB5A3 0xB36B
+0xB5A4 0xB36E
+0xB5A5-0xB5A6 0xB370
+0xB5A7 0xB374
+0xB5A8 0xB378
+0xB5A9-0xB5AA 0xB380
+0xB5AB-0xB5AD 0xB383
+0xB5AE 0xB38C
+0xB5AF 0xB390
+0xB5B0 0xB394
+0xB5B1-0xB5B2 0xB3A0
+0xB5B3 0xB3A8
+0xB5B4 0xB3AC
+0xB5B5-0xB5B6 0xB3C4
+0xB5B7 0xB3C8
+0xB5B8-0xB5B9 0xB3CB
+0xB5BA 0xB3CE
+0xB5BB 0xB3D0
+0xB5BC-0xB5BD 0xB3D4
+0xB5BE 0xB3D7
+0xB5BF 0xB3D9
+0xB5C0 0xB3DB
+0xB5C1 0xB3DD
+0xB5C2 0xB3E0
+0xB5C3 0xB3E4
+0xB5C4 0xB3E8
+0xB5C5 0xB3FC
+0xB5C6 0xB410
+0xB5C7 0xB418
+0xB5C8 0xB41C
+0xB5C9 0xB420
+0xB5CA-0xB5CB 0xB428
+0xB5CC 0xB42B
+0xB5CD 0xB434
+0xB5CE-0xB5CF 0xB450
+0xB5D0 0xB454
+0xB5D1 0xB458
+0xB5D2-0xB5D3 0xB460
+0xB5D4 0xB463
+0xB5D5 0xB465
+0xB5D6 0xB46C
+0xB5D7 0xB480
+0xB5D8 0xB488
+0xB5D9 0xB49D
+0xB5DA 0xB4A4
+0xB5DB 0xB4A8
+0xB5DC 0xB4AC
+0xB5DD 0xB4B5
+0xB5DE 0xB4B7
+0xB5DF 0xB4B9
+0xB5E0 0xB4C0
+0xB5E1 0xB4C4
+0xB5E2 0xB4C8
+0xB5E3 0xB4D0
+0xB5E4 0xB4D5
+0xB5E5-0xB5E6 0xB4DC
+0xB5E7 0xB4E0
+0xB5E8-0xB5E9 0xB4E3
+0xB5EA 0xB4E6
+0xB5EB-0xB5EC 0xB4EC
+0xB5ED 0xB4EF
+0xB5EE 0xB4F1
+0xB5EF 0xB4F8
+0xB5F0-0xB5F1 0xB514
+0xB5F2 0xB518
+0xB5F3-0xB5F4 0xB51B
+0xB5F5-0xB5F6 0xB524
+0xB5F7-0xB5FA 0xB527
+0xB5FB-0xB5FC 0xB530
+0xB5FD 0xB534
+0xB5FE 0xB538
+0xB641-0xB648 0xD105
+0xB649-0xB65A 0xD10E
+0xB661-0xB670 0xD120
+0xB671-0xB672 0xD132
+0xB673-0xB675 0xD135
+0xB676 0xD139
+0xB677-0xB67A 0xD13B
+0xB681 0xD13F
+0xB682 0xD142
+0xB683-0xB688 0xD146
+0xB689-0xB68A 0xD14E
+0xB68B-0xB68D 0xD151
+0xB68E-0xB694 0xD155
+0xB695 0xD15E
+0xB696 0xD160
+0xB697-0xB69C 0xD162
+0xB69D-0xB69F 0xD169
+0xB6A0 0xD16D
+0xB6A1-0xB6A2 0xB540
+0xB6A3-0xB6A5 0xB543
+0xB6A6-0xB6A8 0xB54B
+0xB6A9 0xB550
+0xB6AA 0xB554
+0xB6AB-0xB6AC 0xB55C
+0xB6AD-0xB6AF 0xB55F
+0xB6B0-0xB6B1 0xB5A0
+0xB6B2 0xB5A4
+0xB6B3 0xB5A8
+0xB6B4-0xB6B5 0xB5AA
+0xB6B6-0xB6B7 0xB5B0
+0xB6B8-0xB6BA 0xB5B3
+0xB6BB-0xB6BD 0xB5BB
+0xB6BE 0xB5C0
+0xB6BF 0xB5C4
+0xB6C0-0xB6C1 0xB5CC
+0xB6C2-0xB6C4 0xB5CF
+0xB6C5 0xB5D8
+0xB6C6 0xB5EC
+0xB6C7-0xB6C8 0xB610
+0xB6C9 0xB614
+0xB6CA 0xB618
+0xB6CB 0xB625
+0xB6CC 0xB62C
+0xB6CD 0xB634
+0xB6CE 0xB648
+0xB6CF 0xB664
+0xB6D0 0xB668
+0xB6D1-0xB6D2 0xB69C
+0xB6D3 0xB6A0
+0xB6D4 0xB6A4
+0xB6D5-0xB6D6 0xB6AB
+0xB6D7 0xB6B1
+0xB6D8 0xB6D4
+0xB6D9 0xB6F0
+0xB6DA 0xB6F4
+0xB6DB 0xB6F8
+0xB6DC-0xB6DD 0xB700
+0xB6DE 0xB705
+0xB6DF-0xB6E0 0xB728
+0xB6E1 0xB72C
+0xB6E2-0xB6E3 0xB72F
+0xB6E4-0xB6E5 0xB738
+0xB6E6 0xB73B
+0xB6E7 0xB744
+0xB6E8 0xB748
+0xB6E9 0xB74C
+0xB6EA-0xB6EB 0xB754
+0xB6EC 0xB760
+0xB6ED 0xB764
+0xB6EE 0xB768
+0xB6EF-0xB6F0 0xB770
+0xB6F1 0xB773
+0xB6F2 0xB775
+0xB6F3-0xB6F4 0xB77C
+0xB6F5 0xB780
+0xB6F6 0xB784
+0xB6F7-0xB6F8 0xB78C
+0xB6F9-0xB6FC 0xB78F
+0xB6FD-0xB6FE 0xB796
+0xB741-0xB74E 0xD16E
+0xB74F-0xB755 0xD17D
+0xB756-0xB758 0xD185
+0xB759-0xB75A 0xD189
+0xB761-0xB775 0xD18B
+0xB776-0xB777 0xD1A2
+0xB778-0xB77A 0xD1A5
+0xB781-0xB787 0xD1A9
+0xB788 0xD1B2
+0xB789 0xD1B4
+0xB78A-0xB78D 0xD1B6
+0xB78E 0xD1BB
+0xB78F-0xB791 0xD1BD
+0xB792-0xB7A0 0xD1C1
+0xB7A1-0xB7A2 0xB798
+0xB7A3 0xB79C
+0xB7A4 0xB7A0
+0xB7A5-0xB7A6 0xB7A8
+0xB7A7-0xB7A9 0xB7AB
+0xB7AA-0xB7AB 0xB7B4
+0xB7AC 0xB7B8
+0xB7AD 0xB7C7
+0xB7AE 0xB7C9
+0xB7AF-0xB7B0 0xB7EC
+0xB7B1 0xB7F0
+0xB7B2 0xB7F4
+0xB7B3-0xB7B4 0xB7FC
+0xB7B5-0xB7B7 0xB7FF
+0xB7B8-0xB7BA 0xB807
+0xB7BB 0xB80C
+0xB7BC 0xB810
+0xB7BD-0xB7BE 0xB818
+0xB7BF 0xB81B
+0xB7C0 0xB81D
+0xB7C1-0xB7C2 0xB824
+0xB7C3 0xB828
+0xB7C4 0xB82C
+0xB7C5-0xB7C6 0xB834
+0xB7C7-0xB7C9 0xB837
+0xB7CA 0xB840
+0xB7CB 0xB844
+0xB7CC 0xB851
+0xB7CD 0xB853
+0xB7CE-0xB7CF 0xB85C
+0xB7D0 0xB860
+0xB7D1 0xB864
+0xB7D2-0xB7D3 0xB86C
+0xB7D4 0xB86F
+0xB7D5 0xB871
+0xB7D6 0xB878
+0xB7D7 0xB87C
+0xB7D8 0xB88D
+0xB7D9 0xB8A8
+0xB7DA 0xB8B0
+0xB7DB 0xB8B4
+0xB7DC 0xB8B8
+0xB7DD-0xB7DE 0xB8C0
+0xB7DF 0xB8C3
+0xB7E0 0xB8C5
+0xB7E1 0xB8CC
+0xB7E2 0xB8D0
+0xB7E3 0xB8D4
+0xB7E4 0xB8DD
+0xB7E5 0xB8DF
+0xB7E6 0xB8E1
+0xB7E7-0xB7E8 0xB8E8
+0xB7E9 0xB8EC
+0xB7EA 0xB8F0
+0xB7EB-0xB7EC 0xB8F8
+0xB7ED 0xB8FB
+0xB7EE 0xB8FD
+0xB7EF 0xB904
+0xB7F0 0xB918
+0xB7F1 0xB920
+0xB7F2-0xB7F3 0xB93C
+0xB7F4 0xB940
+0xB7F5 0xB944
+0xB7F6 0xB94C
+0xB7F7 0xB94F
+0xB7F8 0xB951
+0xB7F9-0xB7FA 0xB958
+0xB7FB 0xB95C
+0xB7FC 0xB960
+0xB7FD-0xB7FE 0xB968
+0xB841-0xB848 0xD1D0
+0xB849-0xB85A 0xD1D9
+0xB861-0xB869 0xD1EB
+0xB86A-0xB86C 0xD1F5
+0xB86D-0xB87A 0xD1F9
+0xB881 0xD208
+0xB882-0xB887 0xD20A
+0xB888-0xB8A0 0xD211
+0xB8A1 0xB96B
+0xB8A2 0xB96D
+0xB8A3-0xB8A4 0xB974
+0xB8A5 0xB978
+0xB8A6 0xB97C
+0xB8A7-0xB8A8 0xB984
+0xB8A9 0xB987
+0xB8AA-0xB8AB 0xB989
+0xB8AC-0xB8AD 0xB98D
+0xB8AE-0xB8AF 0xB9AC
+0xB8B0 0xB9B0
+0xB8B1 0xB9B4
+0xB8B2-0xB8B3 0xB9BC
+0xB8B4 0xB9BF
+0xB8B5 0xB9C1
+0xB8B6-0xB8B7 0xB9C8
+0xB8B8 0xB9CC
+0xB8B9-0xB8BD 0xB9CE
+0xB8BE-0xB8BF 0xB9D8
+0xB8C0 0xB9DB
+0xB8C1-0xB8C2 0xB9DD
+0xB8C3 0xB9E1
+0xB8C4-0xB8C6 0xB9E3
+0xB8C7 0xB9E8
+0xB8C8 0xB9EC
+0xB8C9-0xB8CA 0xB9F4
+0xB8CB-0xB8CE 0xB9F7
+0xB8CF-0xB8D0 0xBA00
+0xB8D1 0xBA08
+0xB8D2 0xBA15
+0xB8D3-0xB8D4 0xBA38
+0xB8D5 0xBA3C
+0xB8D6 0xBA40
+0xB8D7 0xBA42
+0xB8D8-0xB8D9 0xBA48
+0xB8DA 0xBA4B
+0xB8DB-0xB8DC 0xBA4D
+0xB8DD-0xB8DF 0xBA53
+0xB8E0 0xBA58
+0xB8E1 0xBA5C
+0xB8E2-0xB8E3 0xBA64
+0xB8E4-0xB8E6 0xBA67
+0xB8E7-0xB8E8 0xBA70
+0xB8E9 0xBA74
+0xB8EA 0xBA78
+0xB8EB-0xB8ED 0xBA83
+0xB8EE 0xBA87
+0xB8EF 0xBA8C
+0xB8F0-0xB8F1 0xBAA8
+0xB8F2-0xB8F3 0xBAAB
+0xB8F4 0xBAB0
+0xB8F5 0xBAB2
+0xB8F6-0xB8F7 0xBAB8
+0xB8F8 0xBABB
+0xB8F9 0xBABD
+0xB8FA 0xBAC4
+0xB8FB 0xBAC8
+0xB8FC-0xB8FD 0xBAD8
+0xB8FE 0xBAFC
+0xB941-0xB942 0xD22A
+0xB943-0xB944 0xD22E
+0xB945-0xB947 0xD231
+0xB948-0xB94E 0xD235
+0xB94F 0xD23E
+0xB950 0xD240
+0xB951-0xB956 0xD242
+0xB957-0xB95A 0xD249
+0xB961-0xB96F 0xD24D
+0xB970-0xB976 0xD25D
+0xB977-0xB97A 0xD265
+0xB981-0xB997 0xD269
+0xB998-0xB999 0xD282
+0xB99A-0xB99C 0xD285
+0xB99D-0xB9A0 0xD289
+0xB9A1 0xBB00
+0xB9A2 0xBB04
+0xB9A3 0xBB0D
+0xB9A4 0xBB0F
+0xB9A5 0xBB11
+0xB9A6 0xBB18
+0xB9A7 0xBB1C
+0xB9A8 0xBB20
+0xB9A9 0xBB29
+0xB9AA 0xBB2B
+0xB9AB-0xB9AD 0xBB34
+0xB9AE 0xBB38
+0xB9AF-0xB9B2 0xBB3B
+0xB9B3-0xB9B4 0xBB44
+0xB9B5 0xBB47
+0xB9B6 0xBB49
+0xB9B7 0xBB4D
+0xB9B8-0xB9B9 0xBB4F
+0xB9BA 0xBB54
+0xB9BB 0xBB58
+0xB9BC 0xBB61
+0xB9BD 0xBB63
+0xB9BE 0xBB6C
+0xB9BF 0xBB88
+0xB9C0 0xBB8C
+0xB9C1 0xBB90
+0xB9C2 0xBBA4
+0xB9C3 0xBBA8
+0xB9C4 0xBBAC
+0xB9C5 0xBBB4
+0xB9C6 0xBBB7
+0xB9C7 0xBBC0
+0xB9C8 0xBBC4
+0xB9C9 0xBBC8
+0xB9CA 0xBBD0
+0xB9CB 0xBBD3
+0xB9CC-0xB9CD 0xBBF8
+0xB9CE 0xBBFC
+0xB9CF-0xB9D0 0xBBFF
+0xB9D1 0xBC02
+0xB9D2-0xB9D3 0xBC08
+0xB9D4-0xB9D6 0xBC0B
+0xB9D7 0xBC0F
+0xB9D8 0xBC11
+0xB9D9-0xB9DD 0xBC14
+0xB9DE-0xB9E2 0xBC1B
+0xB9E3-0xB9E4 0xBC24
+0xB9E5 0xBC27
+0xB9E6 0xBC29
+0xB9E7 0xBC2D
+0xB9E8-0xB9E9 0xBC30
+0xB9EA 0xBC34
+0xB9EB 0xBC38
+0xB9EC-0xB9ED 0xBC40
+0xB9EE-0xB9F0 0xBC43
+0xB9F1 0xBC49
+0xB9F2-0xB9F3 0xBC4C
+0xB9F4 0xBC50
+0xB9F5 0xBC5D
+0xB9F6-0xB9F7 0xBC84
+0xB9F8 0xBC88
+0xB9F9-0xB9FA 0xBC8B
+0xB9FB 0xBC8E
+0xB9FC-0xB9FD 0xBC94
+0xB9FE 0xBC97
+0xBA41-0xBA43 0xD28D
+0xBA44-0xBA46 0xD292
+0xBA47-0xBA4C 0xD296
+0xBA4D-0xBA4F 0xD29D
+0xBA50-0xBA52 0xD2A1
+0xBA53-0xBA59 0xD2A5
+0xBA5A 0xD2AD
+0xBA61-0xBA63 0xD2AE
+0xBA64-0xBA69 0xD2B2
+0xBA6A-0xBA6B 0xD2BA
+0xBA6C-0xBA6D 0xD2BD
+0xBA6E 0xD2C1
+0xBA6F-0xBA73 0xD2C3
+0xBA74 0xD2CA
+0xBA75-0xBA7A 0xD2CC
+0xBA81-0xBA82 0xD2D2
+0xBA83-0xBA85 0xD2D5
+0xBA86-0xBA88 0xD2D9
+0xBA89-0xBA8F 0xD2DD
+0xBA90-0xBA99 0xD2E6
+0xBA9A-0xBA9B 0xD2F2
+0xBA9C-0xBA9E 0xD2F5
+0xBA9F-0xBAA0 0xD2F9
+0xBAA1-0xBAA2 0xBC99
+0xBAA3-0xBAA4 0xBCA0
+0xBAA5 0xBCA4
+0xBAA6-0xBAA7 0xBCA7
+0xBAA8-0xBAA9 0xBCB0
+0xBAAA-0xBAAC 0xBCB3
+0xBAAD-0xBAAE 0xBCBC
+0xBAAF 0xBCC0
+0xBAB0 0xBCC4
+0xBAB1 0xBCCD
+0xBAB2-0xBAB4 0xBCCF
+0xBAB5 0xBCD5
+0xBAB6 0xBCD8
+0xBAB7 0xBCDC
+0xBAB8-0xBABA 0xBCF4
+0xBABB 0xBCF8
+0xBABC 0xBCFC
+0xBABD-0xBABE 0xBD04
+0xBABF 0xBD07
+0xBAC0 0xBD09
+0xBAC1 0xBD10
+0xBAC2 0xBD14
+0xBAC3 0xBD24
+0xBAC4 0xBD2C
+0xBAC5 0xBD40
+0xBAC6-0xBAC7 0xBD48
+0xBAC8 0xBD4C
+0xBAC9 0xBD50
+0xBACA-0xBACB 0xBD58
+0xBACC 0xBD64
+0xBACD 0xBD68
+0xBACE-0xBACF 0xBD80
+0xBAD0 0xBD84
+0xBAD1-0xBAD4 0xBD87
+0xBAD5-0xBAD6 0xBD90
+0xBAD7 0xBD93
+0xBAD8 0xBD95
+0xBAD9-0xBADA 0xBD99
+0xBADB 0xBD9C
+0xBADC 0xBDA4
+0xBADD 0xBDB0
+0xBADE 0xBDB8
+0xBADF-0xBAE0 0xBDD4
+0xBAE1 0xBDD8
+0xBAE2 0xBDDC
+0xBAE3 0xBDE9
+0xBAE4 0xBDF0
+0xBAE5 0xBDF4
+0xBAE6 0xBDF8
+0xBAE7 0xBE00
+0xBAE8 0xBE03
+0xBAE9 0xBE05
+0xBAEA-0xBAEB 0xBE0C
+0xBAEC 0xBE10
+0xBAED 0xBE14
+0xBAEE-0xBAEF 0xBE1C
+0xBAF0 0xBE1F
+0xBAF1-0xBAF2 0xBE44
+0xBAF3 0xBE48
+0xBAF4 0xBE4C
+0xBAF5 0xBE4E
+0xBAF6-0xBAF7 0xBE54
+0xBAF8 0xBE57
+0xBAF9-0xBAFB 0xBE59
+0xBAFC-0xBAFD 0xBE60
+0xBAFE 0xBE64
+0xBB41-0xBB45 0xD2FB
+0xBB46 0xD302
+0xBB47 0xD304
+0xBB48-0xBB4D 0xD306
+0xBB4E 0xD30F
+0xBB4F-0xBB51 0xD311
+0xBB52 0xD315
+0xBB53-0xBB57 0xD317
+0xBB58 0xD31E
+0xBB59-0xBB5A 0xD322
+0xBB61 0xD324
+0xBB62-0xBB63 0xD326
+0xBB64-0xBB65 0xD32A
+0xBB66-0xBB68 0xD32D
+0xBB69-0xBB6F 0xD331
+0xBB70 0xD33A
+0xBB71-0xBB76 0xD33E
+0xBB77-0xBB7A 0xD346
+0xBB81-0xBBA0 0xD34A
+0xBBA1 0xBE68
+0xBBA2 0xBE6A
+0xBBA3-0xBBA4 0xBE70
+0xBBA5-0xBBA7 0xBE73
+0xBBA8-0xBBAA 0xBE7B
+0xBBAB 0xBE80
+0xBBAC 0xBE84
+0xBBAD-0xBBAE 0xBE8C
+0xBBAF-0xBBB1 0xBE8F
+0xBBB2-0xBBB3 0xBE98
+0xBBB4 0xBEA8
+0xBBB5-0xBBB6 0xBED0
+0xBBB7 0xBED4
+0xBBB8-0xBBB9 0xBED7
+0xBBBA 0xBEE0
+0xBBBB-0xBBBD 0xBEE3
+0xBBBE 0xBEEC
+0xBBBF 0xBF01
+0xBBC0-0xBBC1 0xBF08
+0xBBC2-0xBBC3 0xBF18
+0xBBC4-0xBBC6 0xBF1B
+0xBBC7-0xBBC8 0xBF40
+0xBBC9 0xBF44
+0xBBCA 0xBF48
+0xBBCB-0xBBCC 0xBF50
+0xBBCD 0xBF55
+0xBBCE 0xBF94
+0xBBCF 0xBFB0
+0xBBD0 0xBFC5
+0xBBD1-0xBBD2 0xBFCC
+0xBBD3 0xBFD0
+0xBBD4 0xBFD4
+0xBBD5 0xBFDC
+0xBBD6 0xBFDF
+0xBBD7 0xBFE1
+0xBBD8 0xC03C
+0xBBD9 0xC051
+0xBBDA 0xC058
+0xBBDB 0xC05C
+0xBBDC 0xC060
+0xBBDD-0xBBDE 0xC068
+0xBBDF-0xBBE0 0xC090
+0xBBE1 0xC094
+0xBBE2 0xC098
+0xBBE3-0xBBE4 0xC0A0
+0xBBE5 0xC0A3
+0xBBE6 0xC0A5
+0xBBE7-0xBBE8 0xC0AC
+0xBBE9-0xBBEA 0xC0AF
+0xBBEB-0xBBEE 0xC0B3
+0xBBEF-0xBBF0 0xC0BC
+0xBBF1-0xBBF3 0xC0BF
+0xBBF4 0xC0C5
+0xBBF5-0xBBF6 0xC0C8
+0xBBF7 0xC0CC
+0xBBF8 0xC0D0
+0xBBF9-0xBBFA 0xC0D8
+0xBBFB-0xBBFD 0xC0DB
+0xBBFE 0xC0E4
+0xBC41-0xBC52 0xD36A
+0xBC53-0xBC54 0xD37E
+0xBC55-0xBC57 0xD381
+0xBC58-0xBC5A 0xD385
+0xBC61-0xBC64 0xD388
+0xBC65 0xD38E
+0xBC66-0xBC6B 0xD392
+0xBC6C-0xBC6D 0xD39A
+0xBC6E-0xBC70 0xD39D
+0xBC71-0xBC77 0xD3A1
+0xBC78 0xD3AA
+0xBC79 0xD3AC
+0xBC7A 0xD3AE
+0xBC81-0xBC85 0xD3AF
+0xBC86-0xBC88 0xD3B5
+0xBC89-0xBC8B 0xD3B9
+0xBC8C-0xBC92 0xD3BD
+0xBC93-0xBC94 0xD3C6
+0xBC95-0xBC9A 0xD3CA
+0xBC9B-0xBCA0 0xD3D1
+0xBCA1 0xC0E5
+0xBCA2 0xC0E8
+0xBCA3 0xC0EC
+0xBCA4-0xBCA5 0xC0F4
+0xBCA6 0xC0F7
+0xBCA7 0xC0F9
+0xBCA8 0xC100
+0xBCA9 0xC104
+0xBCAA 0xC108
+0xBCAB 0xC110
+0xBCAC 0xC115
+0xBCAD-0xBCB1 0xC11C
+0xBCB2-0xBCB3 0xC123
+0xBCB4-0xBCB5 0xC126
+0xBCB6-0xBCB7 0xC12C
+0xBCB8-0xBCBA 0xC12F
+0xBCBB 0xC136
+0xBCBC-0xBCBD 0xC138
+0xBCBE 0xC13C
+0xBCBF 0xC140
+0xBCC0-0xBCC1 0xC148
+0xBCC2-0xBCC4 0xC14B
+0xBCC5-0xBCC6 0xC154
+0xBCC7 0xC158
+0xBCC8 0xC15C
+0xBCC9-0xBCCA 0xC164
+0xBCCB-0xBCCD 0xC167
+0xBCCE 0xC170
+0xBCCF 0xC174
+0xBCD0 0xC178
+0xBCD1 0xC185
+0xBCD2-0xBCD4 0xC18C
+0xBCD5 0xC190
+0xBCD6 0xC194
+0xBCD7 0xC196
+0xBCD8-0xBCD9 0xC19C
+0xBCDA 0xC19F
+0xBCDB 0xC1A1
+0xBCDC 0xC1A5
+0xBCDD-0xBCDE 0xC1A8
+0xBCDF 0xC1AC
+0xBCE0 0xC1B0
+0xBCE1 0xC1BD
+0xBCE2 0xC1C4
+0xBCE3 0xC1C8
+0xBCE4 0xC1CC
+0xBCE5 0xC1D4
+0xBCE6-0xBCE7 0xC1D7
+0xBCE8 0xC1E0
+0xBCE9 0xC1E4
+0xBCEA 0xC1E8
+0xBCEB-0xBCEC 0xC1F0
+0xBCED 0xC1F3
+0xBCEE-0xBCEF 0xC1FC
+0xBCF0 0xC200
+0xBCF1 0xC204
+0xBCF2-0xBCF3 0xC20C
+0xBCF4 0xC20F
+0xBCF5 0xC211
+0xBCF6-0xBCF7 0xC218
+0xBCF8 0xC21C
+0xBCF9-0xBCFA 0xC21F
+0xBCFB-0xBCFC 0xC228
+0xBCFD 0xC22B
+0xBCFE 0xC22D
+0xBD41 0xD3D7
+0xBD42-0xBD49 0xD3D9
+0xBD4A 0xD3E2
+0xBD4B-0xBD52 0xD3E4
+0xBD53-0xBD54 0xD3EE
+0xBD55-0xBD57 0xD3F1
+0xBD58-0xBD5A 0xD3F5
+0xBD61-0xBD64 0xD3F8
+0xBD65 0xD3FE
+0xBD66 0xD400
+0xBD67-0xBD6C 0xD402
+0xBD6D-0xBD7A 0xD409
+0xBD81-0xBD86 0xD417
+0xBD87-0xBDA0 0xD41E
+0xBDA1 0xC22F
+0xBDA2-0xBDA3 0xC231
+0xBDA4 0xC234
+0xBDA5 0xC248
+0xBDA6-0xBDA7 0xC250
+0xBDA8 0xC254
+0xBDA9 0xC258
+0xBDAA 0xC260
+0xBDAB 0xC265
+0xBDAC-0xBDAD 0xC26C
+0xBDAE 0xC270
+0xBDAF 0xC274
+0xBDB0-0xBDB1 0xC27C
+0xBDB2 0xC27F
+0xBDB3 0xC281
+0xBDB4-0xBDB5 0xC288
+0xBDB6 0xC290
+0xBDB7 0xC298
+0xBDB8 0xC29B
+0xBDB9 0xC29D
+0xBDBA-0xBDBB 0xC2A4
+0xBDBC 0xC2A8
+0xBDBD-0xBDBE 0xC2AC
+0xBDBF-0xBDC0 0xC2B4
+0xBDC1 0xC2B7
+0xBDC2 0xC2B9
+0xBDC3-0xBDC4 0xC2DC
+0xBDC5 0xC2E0
+0xBDC6-0xBDC7 0xC2E3
+0xBDC8-0xBDCA 0xC2EB
+0xBDCB 0xC2EF
+0xBDCC 0xC2F1
+0xBDCD 0xC2F6
+0xBDCE-0xBDCF 0xC2F8
+0xBDD0-0xBDD1 0xC2FB
+0xBDD2 0xC300
+0xBDD3-0xBDD4 0xC308
+0xBDD5-0xBDD6 0xC30C
+0xBDD7-0xBDD9 0xC313
+0xBDDA 0xC318
+0xBDDB 0xC31C
+0xBDDC-0xBDDD 0xC324
+0xBDDE-0xBDDF 0xC328
+0xBDE0 0xC345
+0xBDE1-0xBDE2 0xC368
+0xBDE3 0xC36C
+0xBDE4 0xC370
+0xBDE5 0xC372
+0xBDE6-0xBDE7 0xC378
+0xBDE8-0xBDE9 0xC37C
+0xBDEA 0xC384
+0xBDEB 0xC388
+0xBDEC 0xC38C
+0xBDED 0xC3C0
+0xBDEE-0xBDEF 0xC3D8
+0xBDF0 0xC3DC
+0xBDF1-0xBDF2 0xC3DF
+0xBDF3 0xC3E2
+0xBDF4-0xBDF5 0xC3E8
+0xBDF6 0xC3ED
+0xBDF7-0xBDF8 0xC3F4
+0xBDF9 0xC3F8
+0xBDFA 0xC408
+0xBDFB 0xC410
+0xBDFC 0xC424
+0xBDFD 0xC42C
+0xBDFE 0xC430
+0xBE41-0xBE48 0xD438
+0xBE49-0xBE4B 0xD441
+0xBE4C-0xBE5A 0xD445
+0xBE61-0xBE68 0xD454
+0xBE69-0xBE6B 0xD45D
+0xBE6C-0xBE6E 0xD461
+0xBE6F-0xBE76 0xD465
+0xBE77 0xD46E
+0xBE78-0xBE7A 0xD470
+0xBE81-0xBE85 0xD473
+0xBE86-0xBE87 0xD47A
+0xBE88-0xBE89 0xD47D
+0xBE8A 0xD481
+0xBE8B-0xBE8F 0xD483
+0xBE90 0xD48A
+0xBE91 0xD48C
+0xBE92-0xBE97 0xD48E
+0xBE98-0xBEA0 0xD495
+0xBEA1 0xC434
+0xBEA2-0xBEA3 0xC43C
+0xBEA4 0xC448
+0xBEA5-0xBEA6 0xC464
+0xBEA7 0xC468
+0xBEA8 0xC46C
+0xBEA9-0xBEAA 0xC474
+0xBEAB 0xC479
+0xBEAC 0xC480
+0xBEAD 0xC494
+0xBEAE 0xC49C
+0xBEAF 0xC4B8
+0xBEB0 0xC4BC
+0xBEB1 0xC4E9
+0xBEB2-0xBEB3 0xC4F0
+0xBEB4 0xC4F4
+0xBEB5 0xC4F8
+0xBEB6 0xC4FA
+0xBEB7-0xBEB9 0xC4FF
+0xBEBA 0xC50C
+0xBEBB 0xC510
+0xBEBC 0xC514
+0xBEBD 0xC51C
+0xBEBE-0xBEBF 0xC528
+0xBEC0 0xC52C
+0xBEC1 0xC530
+0xBEC2-0xBEC3 0xC538
+0xBEC4 0xC53B
+0xBEC5 0xC53D
+0xBEC6-0xBEC7 0xC544
+0xBEC8-0xBECA 0xC548
+0xBECB-0xBECD 0xC54C
+0xBECE-0xBED0 0xC553
+0xBED1-0xBED3 0xC557
+0xBED4-0xBED5 0xC55D
+0xBED6-0xBED7 0xC560
+0xBED8 0xC564
+0xBED9 0xC568
+0xBEDA-0xBEDB 0xC570
+0xBEDC-0xBEDE 0xC573
+0xBEDF-0xBEE0 0xC57C
+0xBEE1 0xC580
+0xBEE2 0xC584
+0xBEE3 0xC587
+0xBEE4-0xBEE5 0xC58C
+0xBEE6 0xC58F
+0xBEE7 0xC591
+0xBEE8 0xC595
+0xBEE9-0xBEEA 0xC597
+0xBEEB 0xC59C
+0xBEEC 0xC5A0
+0xBEED 0xC5A9
+0xBEEE-0xBEEF 0xC5B4
+0xBEF0-0xBEF1 0xC5B8
+0xBEF2-0xBEF5 0xC5BB
+0xBEF6-0xBEFC 0xC5C4
+0xBEFD 0xC5CC
+0xBEFE 0xC5CE
+0xBF41-0xBF4B 0xD49E
+0xBF4C-0xBF5A 0xD4AA
+0xBF61-0xBF73 0xD4B9
+0xBF74-0xBF76 0xD4CD
+0xBF77-0xBF79 0xD4D1
+0xBF7A 0xD4D5
+0xBF81-0xBF86 0xD4D6
+0xBF87-0xBF88 0xD4DD
+0xBF89-0xBF90 0xD4E0
+0xBF91-0xBF93 0xD4E9
+0xBF94-0xBF96 0xD4ED
+0xBF97-0xBF9D 0xD4F1
+0xBF9E-0xBF9F 0xD4F9
+0xBFA0 0xD4FC
+0xBFA1-0xBFA2 0xC5D0
+0xBFA3 0xC5D4
+0xBFA4 0xC5D8
+0xBFA5-0xBFA6 0xC5E0
+0xBFA7 0xC5E3
+0xBFA8 0xC5E5
+0xBFA9-0xBFAB 0xC5EC
+0xBFAC 0xC5F0
+0xBFAD 0xC5F4
+0xBFAE-0xBFAF 0xC5F6
+0xBFB0-0xBFB5 0xC5FC
+0xBFB6-0xBFB9 0xC605
+0xBFBA 0xC60C
+0xBFBB 0xC610
+0xBFBC-0xBFBD 0xC618
+0xBFBE-0xBFBF 0xC61B
+0xBFC0-0xBFC1 0xC624
+0xBFC2 0xC628
+0xBFC3-0xBFC5 0xC62C
+0xBFC6 0xC630
+0xBFC7-0xBFC9 0xC633
+0xBFCA 0xC637
+0xBFCB 0xC639
+0xBFCC 0xC63B
+0xBFCD-0xBFCE 0xC640
+0xBFCF 0xC644
+0xBFD0 0xC648
+0xBFD1-0xBFD2 0xC650
+0xBFD3-0xBFD5 0xC653
+0xBFD6-0xBFD7 0xC65C
+0xBFD8 0xC660
+0xBFD9 0xC66C
+0xBFDA 0xC66F
+0xBFDB 0xC671
+0xBFDC-0xBFDD 0xC678
+0xBFDE 0xC67C
+0xBFDF 0xC680
+0xBFE0-0xBFE1 0xC688
+0xBFE2 0xC68B
+0xBFE3 0xC68D
+0xBFE4-0xBFE5 0xC694
+0xBFE6 0xC698
+0xBFE7 0xC69C
+0xBFE8-0xBFE9 0xC6A4
+0xBFEA 0xC6A7
+0xBFEB 0xC6A9
+0xBFEC-0xBFED 0xC6B0
+0xBFEE 0xC6B4
+0xBFEF-0xBFF1 0xC6B8
+0xBFF2-0xBFF3 0xC6C0
+0xBFF4 0xC6C3
+0xBFF5 0xC6C5
+0xBFF6-0xBFF7 0xC6CC
+0xBFF8 0xC6D0
+0xBFF9 0xC6D4
+0xBFFA-0xBFFB 0xC6DC
+0xBFFC-0xBFFD 0xC6E0
+0xBFFE 0xC6E8
+0xC041-0xC046 0xD4FE
+0xC047-0xC049 0xD505
+0xC04A-0xC04C 0xD509
+0xC04D-0xC053 0xD50D
+0xC054 0xD516
+0xC055-0xC05A 0xD518
+0xC061-0xC07A 0xD51E
+0xC081-0xC084 0xD538
+0xC085-0xC086 0xD53E
+0xC087-0xC089 0xD541
+0xC08A-0xC090 0xD545
+0xC091 0xD54E
+0xC092 0xD550
+0xC093-0xC098 0xD552
+0xC099-0xC09A 0xD55A
+0xC09B-0xC09D 0xD55D
+0xC09E-0xC0A0 0xD561
+0xC0A1 0xC6E9
+0xC0A2 0xC6EC
+0xC0A3 0xC6F0
+0xC0A4-0xC0A5 0xC6F8
+0xC0A6 0xC6FD
+0xC0A7-0xC0A8 0xC704
+0xC0A9 0xC708
+0xC0AA 0xC70C
+0xC0AB-0xC0AC 0xC714
+0xC0AD 0xC717
+0xC0AE 0xC719
+0xC0AF-0xC0B0 0xC720
+0xC0B1 0xC724
+0xC0B2 0xC728
+0xC0B3-0xC0B4 0xC730
+0xC0B5 0xC733
+0xC0B6 0xC735
+0xC0B7 0xC737
+0xC0B8-0xC0B9 0xC73C
+0xC0BA 0xC740
+0xC0BB 0xC744
+0xC0BC 0xC74A
+0xC0BD-0xC0BE 0xC74C
+0xC0BF 0xC74F
+0xC0C0-0xC0C7 0xC751
+0xC0C8 0xC75C
+0xC0C9 0xC760
+0xC0CA 0xC768
+0xC0CB 0xC76B
+0xC0CC-0xC0CD 0xC774
+0xC0CE 0xC778
+0xC0CF-0xC0D1 0xC77C
+0xC0D2-0xC0D4 0xC783
+0xC0D5-0xC0D8 0xC787
+0xC0D9 0xC78E
+0xC0DA-0xC0DB 0xC790
+0xC0DC 0xC794
+0xC0DD-0xC0DF 0xC796
+0xC0E0 0xC79A
+0xC0E1-0xC0E2 0xC7A0
+0xC0E3-0xC0E6 0xC7A3
+0xC0E7-0xC0E8 0xC7AC
+0xC0E9 0xC7B0
+0xC0EA 0xC7B4
+0xC0EB-0xC0EC 0xC7BC
+0xC0ED-0xC0EF 0xC7BF
+0xC0F0-0xC0F1 0xC7C8
+0xC0F2 0xC7CC
+0xC0F3 0xC7CE
+0xC0F4 0xC7D0
+0xC0F5 0xC7D8
+0xC0F6 0xC7DD
+0xC0F7 0xC7E4
+0xC0F8 0xC7E8
+0xC0F9 0xC7EC
+0xC0FA-0xC0FB 0xC800
+0xC0FC 0xC804
+0xC0FD 0xC808
+0xC0FE 0xC80A
+0xC141 0xD564
+0xC142-0xC143 0xD566
+0xC144 0xD56A
+0xC145 0xD56C
+0xC146-0xC14B 0xD56E
+0xC14C-0xC14D 0xD576
+0xC14E-0xC150 0xD579
+0xC151-0xC157 0xD57D
+0xC158 0xD586
+0xC159-0xC15A 0xD58A
+0xC161-0xC164 0xD58C
+0xC165-0xC178 0xD591
+0xC179-0xC17A 0xD5A6
+0xC181-0xC1A0 0xD5A8
+0xC1A1-0xC1A2 0xC810
+0xC1A3 0xC813
+0xC1A4-0xC1A5 0xC815
+0xC1A6-0xC1A7 0xC81C
+0xC1A8 0xC820
+0xC1A9 0xC824
+0xC1AA-0xC1AB 0xC82C
+0xC1AC 0xC82F
+0xC1AD 0xC831
+0xC1AE 0xC838
+0xC1AF 0xC83C
+0xC1B0 0xC840
+0xC1B1-0xC1B2 0xC848
+0xC1B3-0xC1B4 0xC84C
+0xC1B5 0xC854
+0xC1B6-0xC1B7 0xC870
+0xC1B8 0xC874
+0xC1B9 0xC878
+0xC1BA 0xC87A
+0xC1BB-0xC1BC 0xC880
+0xC1BD 0xC883
+0xC1BE-0xC1C0 0xC885
+0xC1C1-0xC1C3 0xC88B
+0xC1C4 0xC894
+0xC1C5 0xC89D
+0xC1C6 0xC89F
+0xC1C7 0xC8A1
+0xC1C8 0xC8A8
+0xC1C9-0xC1CA 0xC8BC
+0xC1CB 0xC8C4
+0xC1CC 0xC8C8
+0xC1CD 0xC8CC
+0xC1CE-0xC1CF 0xC8D4
+0xC1D0 0xC8D7
+0xC1D1 0xC8D9
+0xC1D2-0xC1D3 0xC8E0
+0xC1D4 0xC8E4
+0xC1D5 0xC8F5
+0xC1D6-0xC1D7 0xC8FC
+0xC1D8 0xC900
+0xC1D9-0xC1DB 0xC904
+0xC1DC-0xC1DD 0xC90C
+0xC1DE 0xC90F
+0xC1DF 0xC911
+0xC1E0 0xC918
+0xC1E1 0xC92C
+0xC1E2 0xC934
+0xC1E3-0xC1E4 0xC950
+0xC1E5 0xC954
+0xC1E6 0xC958
+0xC1E7-0xC1E8 0xC960
+0xC1E9 0xC963
+0xC1EA 0xC96C
+0xC1EB 0xC970
+0xC1EC 0xC974
+0xC1ED 0xC97C
+0xC1EE-0xC1EF 0xC988
+0xC1F0 0xC98C
+0xC1F1 0xC990
+0xC1F2-0xC1F3 0xC998
+0xC1F4 0xC99B
+0xC1F5 0xC99D
+0xC1F6-0xC1F7 0xC9C0
+0xC1F8 0xC9C4
+0xC1F9-0xC1FA 0xC9C7
+0xC1FB 0xC9CA
+0xC1FC-0xC1FD 0xC9D0
+0xC1FE 0xC9D3
+0xC241-0xC242 0xD5CA
+0xC243-0xC245 0xD5CD
+0xC246 0xD5D1
+0xC247-0xC24B 0xD5D3
+0xC24C 0xD5DA
+0xC24D 0xD5DC
+0xC24E-0xC253 0xD5DE
+0xC254-0xC255 0xD5E6
+0xC256-0xC258 0xD5E9
+0xC259-0xC25A 0xD5ED
+0xC261-0xC265 0xD5EF
+0xC266 0xD5F6
+0xC267 0xD5F8
+0xC268-0xC26D 0xD5FA
+0xC26E-0xC26F 0xD602
+0xC270-0xC272 0xD605
+0xC273-0xC279 0xD609
+0xC27A 0xD612
+0xC281-0xC286 0xD616
+0xC287-0xC289 0xD61D
+0xC28A-0xC28C 0xD621
+0xC28D-0xC294 0xD625
+0xC295-0xC29E 0xD62E
+0xC29F-0xC2A0 0xD63A
+0xC2A1-0xC2A2 0xC9D5
+0xC2A3-0xC2A4 0xC9D9
+0xC2A5-0xC2A6 0xC9DC
+0xC2A7 0xC9E0
+0xC2A8 0xC9E2
+0xC2A9 0xC9E4
+0xC2AA 0xC9E7
+0xC2AB-0xC2AC 0xC9EC
+0xC2AD-0xC2AF 0xC9EF
+0xC2B0-0xC2B1 0xC9F8
+0xC2B2 0xC9FC
+0xC2B3 0xCA00
+0xC2B4-0xC2B5 0xCA08
+0xC2B6-0xC2B8 0xCA0B
+0xC2B9 0xCA14
+0xC2BA 0xCA18
+0xC2BB 0xCA29
+0xC2BC-0xC2BD 0xCA4C
+0xC2BE 0xCA50
+0xC2BF 0xCA54
+0xC2C0-0xC2C1 0xCA5C
+0xC2C2-0xC2C4 0xCA5F
+0xC2C5 0xCA68
+0xC2C6 0xCA7D
+0xC2C7 0xCA84
+0xC2C8 0xCA98
+0xC2C9-0xC2CA 0xCABC
+0xC2CB 0xCAC0
+0xC2CC 0xCAC4
+0xC2CD-0xC2CE 0xCACC
+0xC2CF 0xCACF
+0xC2D0 0xCAD1
+0xC2D1 0xCAD3
+0xC2D2-0xC2D3 0xCAD8
+0xC2D4 0xCAE0
+0xC2D5 0xCAEC
+0xC2D6 0xCAF4
+0xC2D7 0xCB08
+0xC2D8 0xCB10
+0xC2D9 0xCB14
+0xC2DA 0xCB18
+0xC2DB-0xC2DC 0xCB20
+0xC2DD 0xCB41
+0xC2DE-0xC2DF 0xCB48
+0xC2E0 0xCB4C
+0xC2E1 0xCB50
+0xC2E2-0xC2E3 0xCB58
+0xC2E4 0xCB5D
+0xC2E5 0xCB64
+0xC2E6-0xC2E7 0xCB78
+0xC2E8 0xCB9C
+0xC2E9 0xCBB8
+0xC2EA 0xCBD4
+0xC2EB 0xCBE4
+0xC2EC 0xCBE7
+0xC2ED 0xCBE9
+0xC2EE-0xC2EF 0xCC0C
+0xC2F0 0xCC10
+0xC2F1 0xCC14
+0xC2F2-0xC2F3 0xCC1C
+0xC2F4-0xC2F5 0xCC21
+0xC2F6-0xC2F8 0xCC27
+0xC2F9 0xCC2C
+0xC2FA 0xCC2E
+0xC2FB 0xCC30
+0xC2FC-0xC2FD 0xCC38
+0xC2FE 0xCC3B
+0xC341-0xC343 0xD63D
+0xC344-0xC347 0xD641
+0xC348-0xC349 0xD646
+0xC34A 0xD64A
+0xC34B 0xD64C
+0xC34C-0xC34E 0xD64E
+0xC34F-0xC350 0xD652
+0xC351-0xC352 0xD656
+0xC353-0xC355 0xD659
+0xC356-0xC35A 0xD65D
+0xC361-0xC365 0xD662
+0xC366 0xD668
+0xC367-0xC36C 0xD66A
+0xC36D-0xC36E 0xD672
+0xC36F-0xC37A 0xD675
+0xC381-0xC382 0xD681
+0xC383 0xD684
+0xC384-0xC389 0xD686
+0xC38A-0xC38B 0xD68E
+0xC38C-0xC38E 0xD691
+0xC38F-0xC396 0xD695
+0xC397 0xD69E
+0xC398 0xD6A0
+0xC399-0xC39E 0xD6A2
+0xC39F-0xC3A0 0xD6A9
+0xC3A1-0xC3A3 0xCC3C
+0xC3A4-0xC3A5 0xCC44
+0xC3A6 0xCC48
+0xC3A7 0xCC4C
+0xC3A8-0xC3A9 0xCC54
+0xC3AA-0xC3AC 0xCC57
+0xC3AD 0xCC60
+0xC3AE 0xCC64
+0xC3AF 0xCC66
+0xC3B0 0xCC68
+0xC3B1 0xCC70
+0xC3B2 0xCC75
+0xC3B3-0xC3B4 0xCC98
+0xC3B5 0xCC9C
+0xC3B6 0xCCA0
+0xC3B7-0xC3B8 0xCCA8
+0xC3B9-0xC3BB 0xCCAB
+0xC3BC-0xC3BD 0xCCB4
+0xC3BE 0xCCB8
+0xC3BF 0xCCBC
+0xC3C0-0xC3C1 0xCCC4
+0xC3C2 0xCCC7
+0xC3C3 0xCCC9
+0xC3C4 0xCCD0
+0xC3C5 0xCCD4
+0xC3C6 0xCCE4
+0xC3C7 0xCCEC
+0xC3C8 0xCCF0
+0xC3C9 0xCD01
+0xC3CA-0xC3CB 0xCD08
+0xC3CC 0xCD0C
+0xC3CD 0xCD10
+0xC3CE-0xC3CF 0xCD18
+0xC3D0 0xCD1B
+0xC3D1 0xCD1D
+0xC3D2 0xCD24
+0xC3D3 0xCD28
+0xC3D4 0xCD2C
+0xC3D5 0xCD39
+0xC3D6 0xCD5C
+0xC3D7 0xCD60
+0xC3D8 0xCD64
+0xC3D9-0xC3DA 0xCD6C
+0xC3DB 0xCD6F
+0xC3DC 0xCD71
+0xC3DD 0xCD78
+0xC3DE 0xCD88
+0xC3DF-0xC3E0 0xCD94
+0xC3E1 0xCD98
+0xC3E2 0xCD9C
+0xC3E3-0xC3E4 0xCDA4
+0xC3E5 0xCDA7
+0xC3E6 0xCDA9
+0xC3E7 0xCDB0
+0xC3E8 0xCDC4
+0xC3E9 0xCDCC
+0xC3EA 0xCDD0
+0xC3EB 0xCDE8
+0xC3EC 0xCDEC
+0xC3ED 0xCDF0
+0xC3EE-0xC3EF 0xCDF8
+0xC3F0 0xCDFB
+0xC3F1 0xCDFD
+0xC3F2 0xCE04
+0xC3F3 0xCE08
+0xC3F4 0xCE0C
+0xC3F5 0xCE14
+0xC3F6 0xCE19
+0xC3F7-0xC3F8 0xCE20
+0xC3F9 0xCE24
+0xC3FA 0xCE28
+0xC3FB-0xC3FC 0xCE30
+0xC3FD 0xCE33
+0xC3FE 0xCE35
+0xC441 0xD6AB
+0xC442-0xC444 0xD6AD
+0xC445-0xC44C 0xD6B1
+0xC44D 0xD6BA
+0xC44E-0xC455 0xD6BC
+0xC456-0xC457 0xD6C6
+0xC458-0xC45A 0xD6C9
+0xC461-0xC464 0xD6CD
+0xC465-0xC466 0xD6D2
+0xC467-0xC468 0xD6D5
+0xC469 0xD6D8
+0xC46A-0xC46F 0xD6DA
+0xC470-0xC472 0xD6E1
+0xC473-0xC475 0xD6E5
+0xC476-0xC47A 0xD6E9
+0xC481-0xC482 0xD6EE
+0xC483-0xC486 0xD6F1
+0xC487-0xC48C 0xD6F6
+0xC48D-0xC48E 0xD6FE
+0xC48F-0xC491 0xD701
+0xC492-0xC49D 0xD705
+0xC49E-0xC4A0 0xD712
+0xC4A1-0xC4A2 0xCE58
+0xC4A3 0xCE5C
+0xC4A4-0xC4A6 0xCE5F
+0xC4A7-0xC4A8 0xCE68
+0xC4A9 0xCE6B
+0xC4AA 0xCE6D
+0xC4AB-0xC4AC 0xCE74
+0xC4AD 0xCE78
+0xC4AE 0xCE7C
+0xC4AF-0xC4B0 0xCE84
+0xC4B1 0xCE87
+0xC4B2 0xCE89
+0xC4B3-0xC4B4 0xCE90
+0xC4B5 0xCE94
+0xC4B6 0xCE98
+0xC4B7-0xC4B8 0xCEA0
+0xC4B9-0xC4BB 0xCEA3
+0xC4BC-0xC4BD 0xCEAC
+0xC4BE 0xCEC1
+0xC4BF-0xC4C0 0xCEE4
+0xC4C1 0xCEE8
+0xC4C2-0xC4C3 0xCEEB
+0xC4C4-0xC4C5 0xCEF4
+0xC4C6-0xC4C8 0xCEF7
+0xC4C9-0xC4CA 0xCF00
+0xC4CB 0xCF04
+0xC4CC 0xCF08
+0xC4CD-0xC4CE 0xCF10
+0xC4CF 0xCF13
+0xC4D0 0xCF15
+0xC4D1 0xCF1C
+0xC4D2 0xCF20
+0xC4D3 0xCF24
+0xC4D4-0xC4D5 0xCF2C
+0xC4D6-0xC4D8 0xCF2F
+0xC4D9 0xCF38
+0xC4DA-0xC4DB 0xCF54
+0xC4DC 0xCF58
+0xC4DD 0xCF5C
+0xC4DE-0xC4DF 0xCF64
+0xC4E0 0xCF67
+0xC4E1 0xCF69
+0xC4E2-0xC4E3 0xCF70
+0xC4E4 0xCF74
+0xC4E5 0xCF78
+0xC4E6 0xCF80
+0xC4E7 0xCF85
+0xC4E8 0xCF8C
+0xC4E9 0xCFA1
+0xC4EA 0xCFA8
+0xC4EB 0xCFB0
+0xC4EC 0xCFC4
+0xC4ED-0xC4EE 0xCFE0
+0xC4EF 0xCFE4
+0xC4F0 0xCFE8
+0xC4F1-0xC4F2 0xCFF0
+0xC4F3 0xCFF3
+0xC4F4 0xCFF5
+0xC4F5 0xCFFC
+0xC4F6 0xD000
+0xC4F7 0xD004
+0xC4F8 0xD011
+0xC4F9 0xD018
+0xC4FA 0xD02D
+0xC4FB-0xC4FC 0xD034
+0xC4FD 0xD038
+0xC4FE 0xD03C
+0xC541-0xC543 0xD715
+0xC544-0xC545 0xD71A
+0xC546-0xC548 0xD71D
+0xC549-0xC54F 0xD721
+0xC550 0xD72A
+0xC551 0xD72C
+0xC552-0xC557 0xD72E
+0xC558-0xC559 0xD736
+0xC55A 0xD739
+0xC561-0xC562 0xD73A
+0xC563-0xC569 0xD73D
+0xC56A-0xC56B 0xD745
+0xC56C 0xD748
+0xC56D-0xC572 0xD74A
+0xC573-0xC574 0xD752
+0xC575 0xD755
+0xC576-0xC57A 0xD75A
+0xC581 0xD75F
+0xC582 0xD762
+0xC583 0xD764
+0xC584-0xC586 0xD766
+0xC587-0xC588 0xD76A
+0xC589-0xC58B 0xD76D
+0xC58C-0xC58E 0xD771
+0xC58F-0xC595 0xD775
+0xC596-0xC598 0xD77E
+0xC599-0xC59E 0xD782
+0xC59F-0xC5A0 0xD78A
+0xC5A1-0xC5A2 0xD044
+0xC5A3 0xD047
+0xC5A4 0xD049
+0xC5A5 0xD050
+0xC5A6 0xD054
+0xC5A7 0xD058
+0xC5A8 0xD060
+0xC5A9-0xC5AA 0xD06C
+0xC5AB 0xD070
+0xC5AC 0xD074
+0xC5AD-0xC5AE 0xD07C
+0xC5AF 0xD081
+0xC5B0-0xC5B1 0xD0A4
+0xC5B2 0xD0A8
+0xC5B3 0xD0AC
+0xC5B4-0xC5B5 0xD0B4
+0xC5B6 0xD0B7
+0xC5B7 0xD0B9
+0xC5B8-0xC5B9 0xD0C0
+0xC5BA 0xD0C4
+0xC5BB-0xC5BC 0xD0C8
+0xC5BD-0xC5BE 0xD0D0
+0xC5BF-0xC5C1 0xD0D3
+0xC5C2-0xC5C3 0xD0DC
+0xC5C4 0xD0E0
+0xC5C5 0xD0E4
+0xC5C6-0xC5C7 0xD0EC
+0xC5C8-0xC5CA 0xD0EF
+0xC5CB 0xD0F8
+0xC5CC 0xD10D
+0xC5CD-0xC5CE 0xD130
+0xC5CF 0xD134
+0xC5D0 0xD138
+0xC5D1 0xD13A
+0xC5D2-0xC5D3 0xD140
+0xC5D4-0xC5D6 0xD143
+0xC5D7-0xC5D8 0xD14C
+0xC5D9 0xD150
+0xC5DA 0xD154
+0xC5DB-0xC5DC 0xD15C
+0xC5DD 0xD15F
+0xC5DE 0xD161
+0xC5DF 0xD168
+0xC5E0 0xD16C
+0xC5E1 0xD17C
+0xC5E2 0xD184
+0xC5E3 0xD188
+0xC5E4-0xC5E5 0xD1A0
+0xC5E6 0xD1A4
+0xC5E7 0xD1A8
+0xC5E8-0xC5E9 0xD1B0
+0xC5EA 0xD1B3
+0xC5EB 0xD1B5
+0xC5EC 0xD1BA
+0xC5ED 0xD1BC
+0xC5EE 0xD1C0
+0xC5EF 0xD1D8
+0xC5F0 0xD1F4
+0xC5F1 0xD1F8
+0xC5F2 0xD207
+0xC5F3 0xD209
+0xC5F4 0xD210
+0xC5F5-0xC5F6 0xD22C
+0xC5F7 0xD230
+0xC5F8 0xD234
+0xC5F9-0xC5FA 0xD23C
+0xC5FB 0xD23F
+0xC5FC 0xD241
+0xC5FD 0xD248
+0xC5FE 0xD25C
+0xC641-0xC643 0xD78D
+0xC644-0xC64A 0xD791
+0xC64B 0xD79A
+0xC64C 0xD79C
+0xC64D-0xC652 0xD79E
+0xC6A1 0xD264
+0xC6A2-0xC6A3 0xD280
+0xC6A4 0xD284
+0xC6A5 0xD288
+0xC6A6-0xC6A7 0xD290
+0xC6A8 0xD295
+0xC6A9 0xD29C
+0xC6AA 0xD2A0
+0xC6AB 0xD2A4
+0xC6AC 0xD2AC
+0xC6AD 0xD2B1
+0xC6AE-0xC6AF 0xD2B8
+0xC6B0 0xD2BC
+0xC6B1-0xC6B2 0xD2BF
+0xC6B3 0xD2C2
+0xC6B4-0xC6B5 0xD2C8
+0xC6B6 0xD2CB
+0xC6B7 0xD2D4
+0xC6B8 0xD2D8
+0xC6B9 0xD2DC
+0xC6BA-0xC6BB 0xD2E4
+0xC6BC-0xC6BD 0xD2F0
+0xC6BE 0xD2F4
+0xC6BF 0xD2F8
+0xC6C0-0xC6C1 0xD300
+0xC6C2 0xD303
+0xC6C3 0xD305
+0xC6C4-0xC6C6 0xD30C
+0xC6C7 0xD310
+0xC6C8 0xD314
+0xC6C9 0xD316
+0xC6CA-0xC6CB 0xD31C
+0xC6CC-0xC6CE 0xD31F
+0xC6CF 0xD325
+0xC6D0-0xC6D1 0xD328
+0xC6D2 0xD32C
+0xC6D3 0xD330
+0xC6D4-0xC6D5 0xD338
+0xC6D6-0xC6D8 0xD33B
+0xC6D9-0xC6DA 0xD344
+0xC6DB-0xC6DC 0xD37C
+0xC6DD 0xD380
+0xC6DE 0xD384
+0xC6DF-0xC6E0 0xD38C
+0xC6E1-0xC6E3 0xD38F
+0xC6E4-0xC6E5 0xD398
+0xC6E6 0xD39C
+0xC6E7 0xD3A0
+0xC6E8-0xC6E9 0xD3A8
+0xC6EA 0xD3AB
+0xC6EB 0xD3AD
+0xC6EC 0xD3B4
+0xC6ED 0xD3B8
+0xC6EE 0xD3BC
+0xC6EF-0xC6F0 0xD3C4
+0xC6F1-0xC6F2 0xD3C8
+0xC6F3 0xD3D0
+0xC6F4 0xD3D8
+0xC6F5 0xD3E1
+0xC6F6 0xD3E3
+0xC6F7-0xC6F8 0xD3EC
+0xC6F9 0xD3F0
+0xC6FA 0xD3F4
+0xC6FB-0xC6FC 0xD3FC
+0xC6FD 0xD3FF
+0xC6FE 0xD401
+0xC7A1 0xD408
+0xC7A2 0xD41D
+0xC7A3 0xD440
+0xC7A4 0xD444
+0xC7A5 0xD45C
+0xC7A6 0xD460
+0xC7A7 0xD464
+0xC7A8 0xD46D
+0xC7A9 0xD46F
+0xC7AA-0xC7AB 0xD478
+0xC7AC 0xD47C
+0xC7AD-0xC7AE 0xD47F
+0xC7AF 0xD482
+0xC7B0-0xC7B1 0xD488
+0xC7B2 0xD48B
+0xC7B3 0xD48D
+0xC7B4 0xD494
+0xC7B5 0xD4A9
+0xC7B6 0xD4CC
+0xC7B7 0xD4D0
+0xC7B8 0xD4D4
+0xC7B9 0xD4DC
+0xC7BA 0xD4DF
+0xC7BB 0xD4E8
+0xC7BC 0xD4EC
+0xC7BD 0xD4F0
+0xC7BE 0xD4F8
+0xC7BF 0xD4FB
+0xC7C0 0xD4FD
+0xC7C1 0xD504
+0xC7C2 0xD508
+0xC7C3 0xD50C
+0xC7C4-0xC7C5 0xD514
+0xC7C6 0xD517
+0xC7C7-0xC7C8 0xD53C
+0xC7C9 0xD540
+0xC7CA 0xD544
+0xC7CB-0xC7CC 0xD54C
+0xC7CD 0xD54F
+0xC7CE 0xD551
+0xC7CF-0xC7D0 0xD558
+0xC7D1 0xD55C
+0xC7D2 0xD560
+0xC7D3 0xD565
+0xC7D4-0xC7D5 0xD568
+0xC7D6 0xD56B
+0xC7D7 0xD56D
+0xC7D8-0xC7D9 0xD574
+0xC7DA 0xD578
+0xC7DB 0xD57C
+0xC7DC-0xC7DD 0xD584
+0xC7DE-0xC7E0 0xD587
+0xC7E1 0xD590
+0xC7E2 0xD5A5
+0xC7E3-0xC7E4 0xD5C8
+0xC7E5 0xD5CC
+0xC7E6 0xD5D0
+0xC7E7 0xD5D2
+0xC7E8-0xC7E9 0xD5D8
+0xC7EA 0xD5DB
+0xC7EB 0xD5DD
+0xC7EC-0xC7ED 0xD5E4
+0xC7EE 0xD5E8
+0xC7EF 0xD5EC
+0xC7F0-0xC7F1 0xD5F4
+0xC7F2 0xD5F7
+0xC7F3 0xD5F9
+0xC7F4-0xC7F5 0xD600
+0xC7F6 0xD604
+0xC7F7 0xD608
+0xC7F8-0xC7F9 0xD610
+0xC7FA-0xC7FC 0xD613
+0xC7FD 0xD61C
+0xC7FE 0xD620
+0xC8A1 0xD624
+0xC8A2 0xD62D
+0xC8A3-0xC8A4 0xD638
+0xC8A5 0xD63C
+0xC8A6 0xD640
+0xC8A7 0xD645
+0xC8A8-0xC8A9 0xD648
+0xC8AA 0xD64B
+0xC8AB 0xD64D
+0xC8AC 0xD651
+0xC8AD-0xC8AE 0xD654
+0xC8AF 0xD658
+0xC8B0 0xD65C
+0xC8B1 0xD667
+0xC8B2 0xD669
+0xC8B3-0xC8B4 0xD670
+0xC8B5 0xD674
+0xC8B6 0xD683
+0xC8B7 0xD685
+0xC8B8-0xC8B9 0xD68C
+0xC8BA 0xD690
+0xC8BB 0xD694
+0xC8BC 0xD69D
+0xC8BD 0xD69F
+0xC8BE 0xD6A1
+0xC8BF 0xD6A8
+0xC8C0 0xD6AC
+0xC8C1 0xD6B0
+0xC8C2 0xD6B9
+0xC8C3 0xD6BB
+0xC8C4-0xC8C5 0xD6C4
+0xC8C6 0xD6C8
+0xC8C7 0xD6CC
+0xC8C8 0xD6D1
+0xC8C9 0xD6D4
+0xC8CA 0xD6D7
+0xC8CB 0xD6D9
+0xC8CC 0xD6E0
+0xC8CD 0xD6E4
+0xC8CE 0xD6E8
+0xC8CF 0xD6F0
+0xC8D0 0xD6F5
+0xC8D1-0xC8D2 0xD6FC
+0xC8D3 0xD700
+0xC8D4 0xD704
+0xC8D5 0xD711
+0xC8D6-0xC8D7 0xD718
+0xC8D8 0xD71C
+0xC8D9 0xD720
+0xC8DA-0xC8DB 0xD728
+0xC8DC 0xD72B
+0xC8DD 0xD72D
+0xC8DE-0xC8DF 0xD734
+0xC8E0 0xD738
+0xC8E1 0xD73C
+0xC8E2 0xD744
+0xC8E3 0xD747
+0xC8E4 0xD749
+0xC8E5-0xC8E6 0xD750
+0xC8E7 0xD754
+0xC8E8-0xC8EB 0xD756
+0xC8EC-0xC8ED 0xD760
+0xC8EE 0xD763
+0xC8EF 0xD765
+0xC8F0 0xD769
+0xC8F1 0xD76C
+0xC8F2 0xD770
+0xC8F3 0xD774
+0xC8F4-0xC8F5 0xD77C
+0xC8F6 0xD781
+0xC8F7-0xC8F8 0xD788
+0xC8F9 0xD78C
+0xC8FA 0xD790
+0xC8FB-0xC8FC 0xD798
+0xC8FD 0xD79B
+0xC8FE 0xD79D
+0xCAA1 0x4F3D
+0xCAA2 0x4F73
+0xCAA3 0x5047
+0xCAA4 0x50F9
+0xCAA5 0x52A0
+0xCAA6 0x53EF
+0xCAA7 0x5475
+0xCAA8 0x54E5
+0xCAA9 0x5609
+0xCAAA 0x5AC1
+0xCAAB 0x5BB6
+0xCAAC 0x6687
+0xCAAD-0xCAAE 0x67B6
+0xCAAF 0x67EF
+0xCAB0 0x6B4C
+0xCAB1 0x73C2
+0xCAB2 0x75C2
+0xCAB3 0x7A3C
+0xCAB4 0x82DB
+0xCAB5 0x8304
+0xCAB6 0x8857
+0xCAB7 0x8888
+0xCAB8 0x8A36
+0xCAB9 0x8CC8
+0xCABA 0x8DCF
+0xCABB 0x8EFB
+0xCABC 0x8FE6
+0xCABD 0x99D5
+0xCABE 0x523B
+0xCABF 0x5374
+0xCAC0 0x5404
+0xCAC1 0x606A
+0xCAC2 0x6164
+0xCAC3 0x6BBC
+0xCAC4 0x73CF
+0xCAC5 0x811A
+0xCAC6 0x89BA
+0xCAC7 0x89D2
+0xCAC8 0x95A3
+0xCAC9 0x4F83
+0xCACA 0x520A
+0xCACB 0x58BE
+0xCACC 0x5978
+0xCACD 0x59E6
+0xCACE 0x5E72
+0xCACF 0x5E79
+0xCAD0 0x61C7
+0xCAD1 0x63C0
+0xCAD2 0x6746
+0xCAD3 0x67EC
+0xCAD4 0x687F
+0xCAD5 0x6F97
+0xCAD6 0x764E
+0xCAD7 0x770B
+0xCAD8 0x78F5
+0xCAD9 0x7A08
+0xCADA 0x7AFF
+0xCADB 0x7C21
+0xCADC 0x809D
+0xCADD 0x826E
+0xCADE 0x8271
+0xCADF 0x8AEB
+0xCAE0 0x9593
+0xCAE1 0x4E6B
+0xCAE2 0x559D
+0xCAE3 0x66F7
+0xCAE4 0x6E34
+0xCAE5 0x78A3
+0xCAE6 0x7AED
+0xCAE7 0x845B
+0xCAE8 0x8910
+0xCAE9 0x874E
+0xCAEA 0x97A8
+0xCAEB 0x52D8
+0xCAEC 0x574E
+0xCAED 0x582A
+0xCAEE 0x5D4C
+0xCAEF 0x611F
+0xCAF0 0x61BE
+0xCAF1 0x6221
+0xCAF2 0x6562
+0xCAF3 0x67D1
+0xCAF4 0x6A44
+0xCAF5 0x6E1B
+0xCAF6 0x7518
+0xCAF7 0x75B3
+0xCAF8 0x76E3
+0xCAF9 0x77B0
+0xCAFA 0x7D3A
+0xCAFB 0x90AF
+0xCAFC-0xCAFD 0x9451
+0xCAFE 0x9F95
+0xCBA1 0x5323
+0xCBA2 0x5CAC
+0xCBA3 0x7532
+0xCBA4 0x80DB
+0xCBA5 0x9240
+0xCBA6 0x9598
+0xCBA7 0x525B
+0xCBA8 0x5808
+0xCBA9 0x59DC
+0xCBAA 0x5CA1
+0xCBAB 0x5D17
+0xCBAC 0x5EB7
+0xCBAD 0x5F3A
+0xCBAE 0x5F4A
+0xCBAF 0x6177
+0xCBB0 0x6C5F
+0xCBB1 0x757A
+0xCBB2 0x7586
+0xCBB3 0x7CE0
+0xCBB4 0x7D73
+0xCBB5 0x7DB1
+0xCBB6 0x7F8C
+0xCBB7 0x8154
+0xCBB8 0x8221
+0xCBB9 0x8591
+0xCBBA 0x8941
+0xCBBB 0x8B1B
+0xCBBC 0x92FC
+0xCBBD 0x964D
+0xCBBE 0x9C47
+0xCBBF 0x4ECB
+0xCBC0 0x4EF7
+0xCBC1 0x500B
+0xCBC2 0x51F1
+0xCBC3 0x584F
+0xCBC4 0x6137
+0xCBC5 0x613E
+0xCBC6 0x6168
+0xCBC7 0x6539
+0xCBC8 0x69EA
+0xCBC9 0x6F11
+0xCBCA 0x75A5
+0xCBCB 0x7686
+0xCBCC 0x76D6
+0xCBCD 0x7B87
+0xCBCE 0x82A5
+0xCBCF 0x84CB
+0xCBD0 0xF900
+0xCBD1 0x93A7
+0xCBD2 0x958B
+0xCBD3 0x5580
+0xCBD4 0x5BA2
+0xCBD5 0x5751
+0xCBD6 0xF901
+0xCBD7 0x7CB3
+0xCBD8 0x7FB9
+0xCBD9 0x91B5
+0xCBDA 0x5028
+0xCBDB 0x53BB
+0xCBDC 0x5C45
+0xCBDD 0x5DE8
+0xCBDE 0x62D2
+0xCBDF 0x636E
+0xCBE0 0x64DA
+0xCBE1 0x64E7
+0xCBE2 0x6E20
+0xCBE3 0x70AC
+0xCBE4 0x795B
+0xCBE5 0x8DDD
+0xCBE6 0x8E1E
+0xCBE7 0xF902
+0xCBE8 0x907D
+0xCBE9 0x9245
+0xCBEA 0x92F8
+0xCBEB 0x4E7E
+0xCBEC 0x4EF6
+0xCBED 0x5065
+0xCBEE 0x5DFE
+0xCBEF 0x5EFA
+0xCBF0 0x6106
+0xCBF1 0x6957
+0xCBF2 0x8171
+0xCBF3 0x8654
+0xCBF4 0x8E47
+0xCBF5 0x9375
+0xCBF6 0x9A2B
+0xCBF7 0x4E5E
+0xCBF8 0x5091
+0xCBF9 0x6770
+0xCBFA 0x6840
+0xCBFB 0x5109
+0xCBFC 0x528D
+0xCBFD 0x5292
+0xCBFE 0x6AA2
+0xCCA1 0x77BC
+0xCCA2 0x9210
+0xCCA3 0x9ED4
+0xCCA4 0x52AB
+0xCCA5 0x602F
+0xCCA6 0x8FF2
+0xCCA7 0x5048
+0xCCA8 0x61A9
+0xCCA9 0x63ED
+0xCCAA 0x64CA
+0xCCAB 0x683C
+0xCCAC 0x6A84
+0xCCAD 0x6FC0
+0xCCAE 0x8188
+0xCCAF 0x89A1
+0xCCB0 0x9694
+0xCCB1 0x5805
+0xCCB2 0x727D
+0xCCB3 0x72AC
+0xCCB4 0x7504
+0xCCB5 0x7D79
+0xCCB6 0x7E6D
+0xCCB7 0x80A9
+0xCCB8 0x898B
+0xCCB9 0x8B74
+0xCCBA 0x9063
+0xCCBB 0x9D51
+0xCCBC 0x6289
+0xCCBD 0x6C7A
+0xCCBE 0x6F54
+0xCCBF 0x7D50
+0xCCC0 0x7F3A
+0xCCC1 0x8A23
+0xCCC2 0x517C
+0xCCC3 0x614A
+0xCCC4 0x7B9D
+0xCCC5 0x8B19
+0xCCC6 0x9257
+0xCCC7 0x938C
+0xCCC8 0x4EAC
+0xCCC9 0x4FD3
+0xCCCA 0x501E
+0xCCCB 0x50BE
+0xCCCC 0x5106
+0xCCCD 0x52C1
+0xCCCE 0x52CD
+0xCCCF 0x537F
+0xCCD0 0x5770
+0xCCD1 0x5883
+0xCCD2 0x5E9A
+0xCCD3 0x5F91
+0xCCD4 0x6176
+0xCCD5 0x61AC
+0xCCD6 0x64CE
+0xCCD7 0x656C
+0xCCD8 0x666F
+0xCCD9 0x66BB
+0xCCDA 0x66F4
+0xCCDB 0x6897
+0xCCDC 0x6D87
+0xCCDD 0x7085
+0xCCDE 0x70F1
+0xCCDF 0x749F
+0xCCE0 0x74A5
+0xCCE1 0x74CA
+0xCCE2 0x75D9
+0xCCE3 0x786C
+0xCCE4 0x78EC
+0xCCE5 0x7ADF
+0xCCE6 0x7AF6
+0xCCE7 0x7D45
+0xCCE8 0x7D93
+0xCCE9 0x8015
+0xCCEA 0x803F
+0xCCEB 0x811B
+0xCCEC 0x8396
+0xCCED 0x8B66
+0xCCEE 0x8F15
+0xCCEF 0x9015
+0xCCF0 0x93E1
+0xCCF1 0x9803
+0xCCF2 0x9838
+0xCCF3 0x9A5A
+0xCCF4 0x9BE8
+0xCCF5 0x4FC2
+0xCCF6 0x5553
+0xCCF7 0x583A
+0xCCF8 0x5951
+0xCCF9 0x5B63
+0xCCFA 0x5C46
+0xCCFB 0x60B8
+0xCCFC 0x6212
+0xCCFD 0x6842
+0xCCFE 0x68B0
+0xCDA1 0x68E8
+0xCDA2 0x6EAA
+0xCDA3 0x754C
+0xCDA4 0x7678
+0xCDA5 0x78CE
+0xCDA6 0x7A3D
+0xCDA7 0x7CFB
+0xCDA8 0x7E6B
+0xCDA9 0x7E7C
+0xCDAA 0x8A08
+0xCDAB 0x8AA1
+0xCDAC 0x8C3F
+0xCDAD 0x968E
+0xCDAE 0x9DC4
+0xCDAF 0x53E4
+0xCDB0 0x53E9
+0xCDB1 0x544A
+0xCDB2 0x5471
+0xCDB3 0x56FA
+0xCDB4 0x59D1
+0xCDB5 0x5B64
+0xCDB6 0x5C3B
+0xCDB7 0x5EAB
+0xCDB8 0x62F7
+0xCDB9 0x6537
+0xCDBA 0x6545
+0xCDBB 0x6572
+0xCDBC 0x66A0
+0xCDBD 0x67AF
+0xCDBE 0x69C1
+0xCDBF 0x6CBD
+0xCDC0 0x75FC
+0xCDC1 0x7690
+0xCDC2 0x777E
+0xCDC3 0x7A3F
+0xCDC4 0x7F94
+0xCDC5 0x8003
+0xCDC6 0x80A1
+0xCDC7 0x818F
+0xCDC8 0x82E6
+0xCDC9 0x82FD
+0xCDCA 0x83F0
+0xCDCB 0x85C1
+0xCDCC 0x8831
+0xCDCD 0x88B4
+0xCDCE 0x8AA5
+0xCDCF 0xF903
+0xCDD0 0x8F9C
+0xCDD1 0x932E
+0xCDD2 0x96C7
+0xCDD3 0x9867
+0xCDD4 0x9AD8
+0xCDD5 0x9F13
+0xCDD6 0x54ED
+0xCDD7 0x659B
+0xCDD8 0x66F2
+0xCDD9 0x688F
+0xCDDA 0x7A40
+0xCDDB 0x8C37
+0xCDDC 0x9D60
+0xCDDD 0x56F0
+0xCDDE 0x5764
+0xCDDF 0x5D11
+0xCDE0 0x6606
+0xCDE1 0x68B1
+0xCDE2 0x68CD
+0xCDE3 0x6EFE
+0xCDE4 0x7428
+0xCDE5 0x889E
+0xCDE6 0x9BE4
+0xCDE7 0x6C68
+0xCDE8 0xF904
+0xCDE9 0x9AA8
+0xCDEA 0x4F9B
+0xCDEB 0x516C
+0xCDEC 0x5171
+0xCDED 0x529F
+0xCDEE 0x5B54
+0xCDEF 0x5DE5
+0xCDF0 0x6050
+0xCDF1 0x606D
+0xCDF2 0x62F1
+0xCDF3 0x63A7
+0xCDF4 0x653B
+0xCDF5 0x73D9
+0xCDF6 0x7A7A
+0xCDF7 0x86A3
+0xCDF8 0x8CA2
+0xCDF9 0x978F
+0xCDFA 0x4E32
+0xCDFB 0x5BE1
+0xCDFC 0x6208
+0xCDFD 0x679C
+0xCDFE 0x74DC
+0xCEA1 0x79D1
+0xCEA2 0x83D3
+0xCEA3 0x8A87
+0xCEA4 0x8AB2
+0xCEA5 0x8DE8
+0xCEA6 0x904E
+0xCEA7 0x934B
+0xCEA8 0x9846
+0xCEA9 0x5ED3
+0xCEAA 0x69E8
+0xCEAB 0x85FF
+0xCEAC 0x90ED
+0xCEAD 0xF905
+0xCEAE 0x51A0
+0xCEAF 0x5B98
+0xCEB0 0x5BEC
+0xCEB1 0x6163
+0xCEB2 0x68FA
+0xCEB3 0x6B3E
+0xCEB4 0x704C
+0xCEB5 0x742F
+0xCEB6 0x74D8
+0xCEB7 0x7BA1
+0xCEB8 0x7F50
+0xCEB9 0x83C5
+0xCEBA 0x89C0
+0xCEBB 0x8CAB
+0xCEBC 0x95DC
+0xCEBD 0x9928
+0xCEBE 0x522E
+0xCEBF 0x605D
+0xCEC0 0x62EC
+0xCEC1 0x9002
+0xCEC2 0x4F8A
+0xCEC3 0x5149
+0xCEC4 0x5321
+0xCEC5 0x58D9
+0xCEC6 0x5EE3
+0xCEC7 0x66E0
+0xCEC8 0x6D38
+0xCEC9 0x709A
+0xCECA 0x72C2
+0xCECB 0x73D6
+0xCECC 0x7B50
+0xCECD 0x80F1
+0xCECE 0x945B
+0xCECF 0x5366
+0xCED0 0x639B
+0xCED1 0x7F6B
+0xCED2 0x4E56
+0xCED3 0x5080
+0xCED4 0x584A
+0xCED5 0x58DE
+0xCED6 0x602A
+0xCED7 0x6127
+0xCED8 0x62D0
+0xCED9 0x69D0
+0xCEDA 0x9B41
+0xCEDB 0x5B8F
+0xCEDC 0x7D18
+0xCEDD 0x80B1
+0xCEDE 0x8F5F
+0xCEDF 0x4EA4
+0xCEE0 0x50D1
+0xCEE1 0x54AC
+0xCEE2 0x55AC
+0xCEE3 0x5B0C
+0xCEE4 0x5DA0
+0xCEE5 0x5DE7
+0xCEE6 0x652A
+0xCEE7 0x654E
+0xCEE8 0x6821
+0xCEE9 0x6A4B
+0xCEEA 0x72E1
+0xCEEB 0x768E
+0xCEEC 0x77EF
+0xCEED 0x7D5E
+0xCEEE 0x7FF9
+0xCEEF 0x81A0
+0xCEF0 0x854E
+0xCEF1 0x86DF
+0xCEF2 0x8F03
+0xCEF3 0x8F4E
+0xCEF4 0x90CA
+0xCEF5 0x9903
+0xCEF6 0x9A55
+0xCEF7 0x9BAB
+0xCEF8 0x4E18
+0xCEF9 0x4E45
+0xCEFA 0x4E5D
+0xCEFB 0x4EC7
+0xCEFC 0x4FF1
+0xCEFD 0x5177
+0xCEFE 0x52FE
+0xCFA1 0x5340
+0xCFA2 0x53E3
+0xCFA3 0x53E5
+0xCFA4 0x548E
+0xCFA5 0x5614
+0xCFA6 0x5775
+0xCFA7 0x57A2
+0xCFA8 0x5BC7
+0xCFA9 0x5D87
+0xCFAA 0x5ED0
+0xCFAB 0x61FC
+0xCFAC 0x62D8
+0xCFAD 0x6551
+0xCFAE 0x67B8
+0xCFAF 0x67E9
+0xCFB0 0x69CB
+0xCFB1 0x6B50
+0xCFB2 0x6BC6
+0xCFB3 0x6BEC
+0xCFB4 0x6C42
+0xCFB5 0x6E9D
+0xCFB6 0x7078
+0xCFB7 0x72D7
+0xCFB8 0x7396
+0xCFB9 0x7403
+0xCFBA 0x77BF
+0xCFBB 0x77E9
+0xCFBC 0x7A76
+0xCFBD 0x7D7F
+0xCFBE 0x8009
+0xCFBF 0x81FC
+0xCFC0 0x8205
+0xCFC1 0x820A
+0xCFC2 0x82DF
+0xCFC3 0x8862
+0xCFC4 0x8B33
+0xCFC5 0x8CFC
+0xCFC6 0x8EC0
+0xCFC7 0x9011
+0xCFC8 0x90B1
+0xCFC9 0x9264
+0xCFCA 0x92B6
+0xCFCB 0x99D2
+0xCFCC 0x9A45
+0xCFCD 0x9CE9
+0xCFCE 0x9DD7
+0xCFCF 0x9F9C
+0xCFD0 0x570B
+0xCFD1 0x5C40
+0xCFD2 0x83CA
+0xCFD3 0x97A0
+0xCFD4 0x97AB
+0xCFD5 0x9EB4
+0xCFD6 0x541B
+0xCFD7 0x7A98
+0xCFD8 0x7FA4
+0xCFD9 0x88D9
+0xCFDA 0x8ECD
+0xCFDB 0x90E1
+0xCFDC 0x5800
+0xCFDD 0x5C48
+0xCFDE 0x6398
+0xCFDF 0x7A9F
+0xCFE0 0x5BAE
+0xCFE1 0x5F13
+0xCFE2 0x7A79
+0xCFE3 0x7AAE
+0xCFE4 0x828E
+0xCFE5 0x8EAC
+0xCFE6 0x5026
+0xCFE7 0x5238
+0xCFE8 0x52F8
+0xCFE9 0x5377
+0xCFEA 0x5708
+0xCFEB 0x62F3
+0xCFEC 0x6372
+0xCFED 0x6B0A
+0xCFEE 0x6DC3
+0xCFEF 0x7737
+0xCFF0 0x53A5
+0xCFF1 0x7357
+0xCFF2 0x8568
+0xCFF3 0x8E76
+0xCFF4 0x95D5
+0xCFF5 0x673A
+0xCFF6 0x6AC3
+0xCFF7 0x6F70
+0xCFF8 0x8A6D
+0xCFF9 0x8ECC
+0xCFFA 0x994B
+0xCFFB 0xF906
+0xCFFC 0x6677
+0xCFFD 0x6B78
+0xCFFE 0x8CB4
+0xD0A1 0x9B3C
+0xD0A2 0xF907
+0xD0A3 0x53EB
+0xD0A4 0x572D
+0xD0A5 0x594E
+0xD0A6 0x63C6
+0xD0A7 0x69FB
+0xD0A8 0x73EA
+0xD0A9 0x7845
+0xD0AA 0x7ABA
+0xD0AB 0x7AC5
+0xD0AC 0x7CFE
+0xD0AD 0x8475
+0xD0AE 0x898F
+0xD0AF 0x8D73
+0xD0B0 0x9035
+0xD0B1 0x95A8
+0xD0B2 0x52FB
+0xD0B3 0x5747
+0xD0B4 0x7547
+0xD0B5 0x7B60
+0xD0B6 0x83CC
+0xD0B7 0x921E
+0xD0B8 0xF908
+0xD0B9 0x6A58
+0xD0BA 0x514B
+0xD0BB 0x524B
+0xD0BC 0x5287
+0xD0BD 0x621F
+0xD0BE 0x68D8
+0xD0BF 0x6975
+0xD0C0 0x9699
+0xD0C1 0x50C5
+0xD0C2 0x52A4
+0xD0C3 0x52E4
+0xD0C4 0x61C3
+0xD0C5 0x65A4
+0xD0C6 0x6839
+0xD0C7 0x69FF
+0xD0C8 0x747E
+0xD0C9 0x7B4B
+0xD0CA 0x82B9
+0xD0CB 0x83EB
+0xD0CC 0x89B2
+0xD0CD 0x8B39
+0xD0CE 0x8FD1
+0xD0CF 0x9949
+0xD0D0 0xF909
+0xD0D1 0x4ECA
+0xD0D2 0x5997
+0xD0D3 0x64D2
+0xD0D4 0x6611
+0xD0D5 0x6A8E
+0xD0D6 0x7434
+0xD0D7 0x7981
+0xD0D8 0x79BD
+0xD0D9 0x82A9
+0xD0DA-0xD0DB 0x887E
+0xD0DC 0x895F
+0xD0DD 0xF90A
+0xD0DE 0x9326
+0xD0DF 0x4F0B
+0xD0E0 0x53CA
+0xD0E1 0x6025
+0xD0E2 0x6271
+0xD0E3 0x6C72
+0xD0E4 0x7D1A
+0xD0E5 0x7D66
+0xD0E6 0x4E98
+0xD0E7 0x5162
+0xD0E8 0x77DC
+0xD0E9 0x80AF
+0xD0EA 0x4F01
+0xD0EB 0x4F0E
+0xD0EC 0x5176
+0xD0ED 0x5180
+0xD0EE 0x55DC
+0xD0EF 0x5668
+0xD0F0 0x573B
+0xD0F1 0x57FA
+0xD0F2 0x57FC
+0xD0F3 0x5914
+0xD0F4 0x5947
+0xD0F5 0x5993
+0xD0F6 0x5BC4
+0xD0F7 0x5C90
+0xD0F8 0x5D0E
+0xD0F9 0x5DF1
+0xD0FA 0x5E7E
+0xD0FB 0x5FCC
+0xD0FC 0x6280
+0xD0FD 0x65D7
+0xD0FE 0x65E3
+0xD1A1-0xD1A2 0x671E
+0xD1A3 0x675E
+0xD1A4 0x68CB
+0xD1A5 0x68C4
+0xD1A6 0x6A5F
+0xD1A7 0x6B3A
+0xD1A8 0x6C23
+0xD1A9 0x6C7D
+0xD1AA 0x6C82
+0xD1AB 0x6DC7
+0xD1AC 0x7398
+0xD1AD 0x7426
+0xD1AE 0x742A
+0xD1AF 0x7482
+0xD1B0 0x74A3
+0xD1B1 0x7578
+0xD1B2 0x757F
+0xD1B3 0x7881
+0xD1B4 0x78EF
+0xD1B5 0x7941
+0xD1B6-0xD1B7 0x7947
+0xD1B8 0x797A
+0xD1B9 0x7B95
+0xD1BA 0x7D00
+0xD1BB 0x7DBA
+0xD1BC 0x7F88
+0xD1BD 0x8006
+0xD1BE 0x802D
+0xD1BF 0x808C
+0xD1C0 0x8A18
+0xD1C1 0x8B4F
+0xD1C2 0x8C48
+0xD1C3 0x8D77
+0xD1C4 0x9321
+0xD1C5 0x9324
+0xD1C6 0x98E2
+0xD1C7 0x9951
+0xD1C8-0xD1C9 0x9A0E
+0xD1CA 0x9A65
+0xD1CB 0x9E92
+0xD1CC 0x7DCA
+0xD1CD 0x4F76
+0xD1CE 0x5409
+0xD1CF 0x62EE
+0xD1D0 0x6854
+0xD1D1 0x91D1
+0xD1D2 0x55AB
+0xD1D3 0x513A
+0xD1D4-0xD1D5 0xF90B
+0xD1D6 0x5A1C
+0xD1D7 0x61E6
+0xD1D8 0xF90D
+0xD1D9 0x62CF
+0xD1DA 0x62FF
+0xD1DB-0xD1E0 0xF90E
+0xD1E1 0x90A3
+0xD1E2-0xD1E6 0xF914
+0xD1E7 0x8AFE
+0xD1E8-0xD1EB 0xF919
+0xD1EC 0x6696
+0xD1ED 0xF91D
+0xD1EE 0x7156
+0xD1EF-0xD1F0 0xF91E
+0xD1F1 0x96E3
+0xD1F2 0xF920
+0xD1F3 0x634F
+0xD1F4 0x637A
+0xD1F5 0x5357
+0xD1F6 0xF921
+0xD1F7 0x678F
+0xD1F8 0x6960
+0xD1F9 0x6E73
+0xD1FA 0xF922
+0xD1FB 0x7537
+0xD1FC-0xD1FE 0xF923
+0xD2A1 0x7D0D
+0xD2A2-0xD2A3 0xF926
+0xD2A4 0x8872
+0xD2A5 0x56CA
+0xD2A6 0x5A18
+0xD2A7-0xD2AB 0xF928
+0xD2AC 0x4E43
+0xD2AD 0xF92D
+0xD2AE 0x5167
+0xD2AF 0x5948
+0xD2B0 0x67F0
+0xD2B1 0x8010
+0xD2B2 0xF92E
+0xD2B3 0x5973
+0xD2B4 0x5E74
+0xD2B5 0x649A
+0xD2B6 0x79CA
+0xD2B7 0x5FF5
+0xD2B8 0x606C
+0xD2B9 0x62C8
+0xD2BA 0x637B
+0xD2BB 0x5BE7
+0xD2BC 0x5BD7
+0xD2BD 0x52AA
+0xD2BE 0xF92F
+0xD2BF 0x5974
+0xD2C0 0x5F29
+0xD2C1 0x6012
+0xD2C2-0xD2C4 0xF930
+0xD2C5 0x7459
+0xD2C6-0xD2CB 0xF933
+0xD2CC 0x99D1
+0xD2CD-0xD2D7 0xF939
+0xD2D8 0x6FC3
+0xD2D9-0xD2DA 0xF944
+0xD2DB 0x81BF
+0xD2DC 0x8FB2
+0xD2DD 0x60F1
+0xD2DE-0xD2DF 0xF946
+0xD2E0 0x8166
+0xD2E1-0xD2E2 0xF948
+0xD2E3 0x5C3F
+0xD2E4-0xD2EB 0xF94A
+0xD2EC 0x5AE9
+0xD2ED 0x8A25
+0xD2EE 0x677B
+0xD2EF 0x7D10
+0xD2F0-0xD2F5 0xF952
+0xD2F6 0x80FD
+0xD2F7-0xD2F8 0xF958
+0xD2F9 0x5C3C
+0xD2FA 0x6CE5
+0xD2FB 0x533F
+0xD2FC 0x6EBA
+0xD2FD 0x591A
+0xD2FE 0x8336
+0xD3A1 0x4E39
+0xD3A2 0x4EB6
+0xD3A3 0x4F46
+0xD3A4 0x55AE
+0xD3A5 0x5718
+0xD3A6 0x58C7
+0xD3A7 0x5F56
+0xD3A8 0x65B7
+0xD3A9 0x65E6
+0xD3AA 0x6A80
+0xD3AB 0x6BB5
+0xD3AC 0x6E4D
+0xD3AD 0x77ED
+0xD3AE 0x7AEF
+0xD3AF 0x7C1E
+0xD3B0 0x7DDE
+0xD3B1 0x86CB
+0xD3B2 0x8892
+0xD3B3 0x9132
+0xD3B4 0x935B
+0xD3B5 0x64BB
+0xD3B6 0x6FBE
+0xD3B7 0x737A
+0xD3B8 0x75B8
+0xD3B9 0x9054
+0xD3BA 0x5556
+0xD3BB 0x574D
+0xD3BC 0x61BA
+0xD3BD 0x64D4
+0xD3BE 0x66C7
+0xD3BF 0x6DE1
+0xD3C0 0x6E5B
+0xD3C1 0x6F6D
+0xD3C2 0x6FB9
+0xD3C3 0x75F0
+0xD3C4 0x8043
+0xD3C5 0x81BD
+0xD3C6 0x8541
+0xD3C7 0x8983
+0xD3C8 0x8AC7
+0xD3C9 0x8B5A
+0xD3CA 0x931F
+0xD3CB 0x6C93
+0xD3CC 0x7553
+0xD3CD 0x7B54
+0xD3CE 0x8E0F
+0xD3CF 0x905D
+0xD3D0 0x5510
+0xD3D1 0x5802
+0xD3D2 0x5858
+0xD3D3 0x5E62
+0xD3D4 0x6207
+0xD3D5 0x649E
+0xD3D6 0x68E0
+0xD3D7 0x7576
+0xD3D8 0x7CD6
+0xD3D9 0x87B3
+0xD3DA 0x9EE8
+0xD3DB 0x4EE3
+0xD3DC 0x5788
+0xD3DD 0x576E
+0xD3DE 0x5927
+0xD3DF 0x5C0D
+0xD3E0 0x5CB1
+0xD3E1 0x5E36
+0xD3E2 0x5F85
+0xD3E3 0x6234
+0xD3E4 0x64E1
+0xD3E5 0x73B3
+0xD3E6 0x81FA
+0xD3E7 0x888B
+0xD3E8 0x8CB8
+0xD3E9 0x968A
+0xD3EA 0x9EDB
+0xD3EB 0x5B85
+0xD3EC 0x5FB7
+0xD3ED 0x60B3
+0xD3EE 0x5012
+0xD3EF 0x5200
+0xD3F0 0x5230
+0xD3F1 0x5716
+0xD3F2 0x5835
+0xD3F3 0x5857
+0xD3F4 0x5C0E
+0xD3F5 0x5C60
+0xD3F6 0x5CF6
+0xD3F7 0x5D8B
+0xD3F8 0x5EA6
+0xD3F9 0x5F92
+0xD3FA 0x60BC
+0xD3FB 0x6311
+0xD3FC 0x6389
+0xD3FD 0x6417
+0xD3FE 0x6843
+0xD4A1 0x68F9
+0xD4A2 0x6AC2
+0xD4A3 0x6DD8
+0xD4A4 0x6E21
+0xD4A5 0x6ED4
+0xD4A6 0x6FE4
+0xD4A7 0x71FE
+0xD4A8 0x76DC
+0xD4A9 0x7779
+0xD4AA 0x79B1
+0xD4AB 0x7A3B
+0xD4AC 0x8404
+0xD4AD 0x89A9
+0xD4AE 0x8CED
+0xD4AF 0x8DF3
+0xD4B0 0x8E48
+0xD4B1 0x9003
+0xD4B2 0x9014
+0xD4B3 0x9053
+0xD4B4 0x90FD
+0xD4B5 0x934D
+0xD4B6 0x9676
+0xD4B7 0x97DC
+0xD4B8 0x6BD2
+0xD4B9 0x7006
+0xD4BA 0x7258
+0xD4BB 0x72A2
+0xD4BC 0x7368
+0xD4BD 0x7763
+0xD4BE 0x79BF
+0xD4BF 0x7BE4
+0xD4C0 0x7E9B
+0xD4C1 0x8B80
+0xD4C2 0x58A9
+0xD4C3 0x60C7
+0xD4C4 0x6566
+0xD4C5 0x65FD
+0xD4C6 0x66BE
+0xD4C7 0x6C8C
+0xD4C8 0x711E
+0xD4C9 0x71C9
+0xD4CA 0x8C5A
+0xD4CB 0x9813
+0xD4CC 0x4E6D
+0xD4CD 0x7A81
+0xD4CE 0x4EDD
+0xD4CF 0x51AC
+0xD4D0 0x51CD
+0xD4D1 0x52D5
+0xD4D2 0x540C
+0xD4D3 0x61A7
+0xD4D4 0x6771
+0xD4D5 0x6850
+0xD4D6 0x68DF
+0xD4D7 0x6D1E
+0xD4D8 0x6F7C
+0xD4D9 0x75BC
+0xD4DA 0x77B3
+0xD4DB 0x7AE5
+0xD4DC 0x80F4
+0xD4DD 0x8463
+0xD4DE 0x9285
+0xD4DF 0x515C
+0xD4E0 0x6597
+0xD4E1 0x675C
+0xD4E2 0x6793
+0xD4E3 0x75D8
+0xD4E4 0x7AC7
+0xD4E5 0x8373
+0xD4E6 0xF95A
+0xD4E7 0x8C46
+0xD4E8 0x9017
+0xD4E9 0x982D
+0xD4EA 0x5C6F
+0xD4EB 0x81C0
+0xD4EC 0x829A
+0xD4ED 0x9041
+0xD4EE 0x906F
+0xD4EF 0x920D
+0xD4F0 0x5F97
+0xD4F1 0x5D9D
+0xD4F2 0x6A59
+0xD4F3 0x71C8
+0xD4F4 0x767B
+0xD4F5 0x7B49
+0xD4F6 0x85E4
+0xD4F7 0x8B04
+0xD4F8 0x9127
+0xD4F9 0x9A30
+0xD4FA 0x5587
+0xD4FB 0x61F6
+0xD4FC 0xF95B
+0xD4FD 0x7669
+0xD4FE 0x7F85
+0xD5A1 0x863F
+0xD5A2 0x87BA
+0xD5A3 0x88F8
+0xD5A4 0x908F
+0xD5A5 0xF95C
+0xD5A6 0x6D1B
+0xD5A7 0x70D9
+0xD5A8 0x73DE
+0xD5A9 0x7D61
+0xD5AA 0x843D
+0xD5AB 0xF95D
+0xD5AC 0x916A
+0xD5AD 0x99F1
+0xD5AE 0xF95E
+0xD5AF 0x4E82
+0xD5B0 0x5375
+0xD5B1 0x6B04
+0xD5B2 0x6B12
+0xD5B3 0x703E
+0xD5B4 0x721B
+0xD5B5 0x862D
+0xD5B6 0x9E1E
+0xD5B7 0x524C
+0xD5B8 0x8FA3
+0xD5B9 0x5D50
+0xD5BA 0x64E5
+0xD5BB 0x652C
+0xD5BC 0x6B16
+0xD5BD 0x6FEB
+0xD5BE 0x7C43
+0xD5BF 0x7E9C
+0xD5C0 0x85CD
+0xD5C1 0x8964
+0xD5C2 0x89BD
+0xD5C3 0x62C9
+0xD5C4 0x81D8
+0xD5C5 0x881F
+0xD5C6 0x5ECA
+0xD5C7 0x6717
+0xD5C8 0x6D6A
+0xD5C9 0x72FC
+0xD5CA 0x7405
+0xD5CB 0x746F
+0xD5CC 0x8782
+0xD5CD 0x90DE
+0xD5CE 0x4F86
+0xD5CF 0x5D0D
+0xD5D0 0x5FA0
+0xD5D1 0x840A
+0xD5D2 0x51B7
+0xD5D3 0x63A0
+0xD5D4 0x7565
+0xD5D5 0x4EAE
+0xD5D6 0x5006
+0xD5D7 0x5169
+0xD5D8 0x51C9
+0xD5D9 0x6881
+0xD5DA 0x6A11
+0xD5DB 0x7CAE
+0xD5DC 0x7CB1
+0xD5DD 0x7CE7
+0xD5DE 0x826F
+0xD5DF 0x8AD2
+0xD5E0 0x8F1B
+0xD5E1 0x91CF
+0xD5E2 0x4FB6
+0xD5E3 0x5137
+0xD5E4 0x52F5
+0xD5E5 0x5442
+0xD5E6 0x5EEC
+0xD5E7 0x616E
+0xD5E8 0x623E
+0xD5E9 0x65C5
+0xD5EA 0x6ADA
+0xD5EB 0x6FFE
+0xD5EC 0x792A
+0xD5ED 0x85DC
+0xD5EE 0x8823
+0xD5EF 0x95AD
+0xD5F0 0x9A62
+0xD5F1 0x9A6A
+0xD5F2 0x9E97
+0xD5F3 0x9ECE
+0xD5F4 0x529B
+0xD5F5 0x66C6
+0xD5F6 0x6B77
+0xD5F7 0x701D
+0xD5F8 0x792B
+0xD5F9 0x8F62
+0xD5FA 0x9742
+0xD5FB 0x6190
+0xD5FC 0x6200
+0xD5FD 0x6523
+0xD5FE 0x6F23
+0xD6A1 0x7149
+0xD6A2 0x7489
+0xD6A3 0x7DF4
+0xD6A4 0x806F
+0xD6A5 0x84EE
+0xD6A6 0x8F26
+0xD6A7 0x9023
+0xD6A8 0x934A
+0xD6A9 0x51BD
+0xD6AA 0x5217
+0xD6AB 0x52A3
+0xD6AC 0x6D0C
+0xD6AD 0x70C8
+0xD6AE 0x88C2
+0xD6AF 0x5EC9
+0xD6B0 0x6582
+0xD6B1 0x6BAE
+0xD6B2 0x6FC2
+0xD6B3 0x7C3E
+0xD6B4 0x7375
+0xD6B5 0x4EE4
+0xD6B6 0x4F36
+0xD6B7 0x56F9
+0xD6B8 0xF95F
+0xD6B9 0x5CBA
+0xD6BA 0x5DBA
+0xD6BB 0x601C
+0xD6BC 0x73B2
+0xD6BD 0x7B2D
+0xD6BE 0x7F9A
+0xD6BF 0x7FCE
+0xD6C0 0x8046
+0xD6C1 0x901E
+0xD6C2 0x9234
+0xD6C3 0x96F6
+0xD6C4 0x9748
+0xD6C5 0x9818
+0xD6C6 0x9F61
+0xD6C7 0x4F8B
+0xD6C8 0x6FA7
+0xD6C9 0x79AE
+0xD6CA 0x91B4
+0xD6CB 0x96B7
+0xD6CC 0x52DE
+0xD6CD 0xF960
+0xD6CE 0x6488
+0xD6CF 0x64C4
+0xD6D0 0x6AD3
+0xD6D1 0x6F5E
+0xD6D2 0x7018
+0xD6D3 0x7210
+0xD6D4 0x76E7
+0xD6D5 0x8001
+0xD6D6 0x8606
+0xD6D7 0x865C
+0xD6D8 0x8DEF
+0xD6D9 0x8F05
+0xD6DA 0x9732
+0xD6DB 0x9B6F
+0xD6DC 0x9DFA
+0xD6DD 0x9E75
+0xD6DE 0x788C
+0xD6DF 0x797F
+0xD6E0 0x7DA0
+0xD6E1 0x83C9
+0xD6E2 0x9304
+0xD6E3 0x9E7F
+0xD6E4 0x9E93
+0xD6E5 0x8AD6
+0xD6E6 0x58DF
+0xD6E7 0x5F04
+0xD6E8 0x6727
+0xD6E9 0x7027
+0xD6EA 0x74CF
+0xD6EB 0x7C60
+0xD6EC 0x807E
+0xD6ED 0x5121
+0xD6EE 0x7028
+0xD6EF 0x7262
+0xD6F0 0x78CA
+0xD6F1 0x8CC2
+0xD6F2 0x8CDA
+0xD6F3 0x8CF4
+0xD6F4 0x96F7
+0xD6F5 0x4E86
+0xD6F6 0x50DA
+0xD6F7 0x5BEE
+0xD6F8 0x5ED6
+0xD6F9 0x6599
+0xD6FA 0x71CE
+0xD6FB 0x7642
+0xD6FC 0x77AD
+0xD6FD 0x804A
+0xD6FE 0x84FC
+0xD7A1 0x907C
+0xD7A2 0x9B27
+0xD7A3 0x9F8D
+0xD7A4 0x58D8
+0xD7A5 0x5A41
+0xD7A6 0x5C62
+0xD7A7 0x6A13
+0xD7A8 0x6DDA
+0xD7A9 0x6F0F
+0xD7AA 0x763B
+0xD7AB 0x7D2F
+0xD7AC 0x7E37
+0xD7AD 0x851E
+0xD7AE 0x8938
+0xD7AF 0x93E4
+0xD7B0 0x964B
+0xD7B1 0x5289
+0xD7B2 0x65D2
+0xD7B3 0x67F3
+0xD7B4 0x69B4
+0xD7B5 0x6D41
+0xD7B6 0x6E9C
+0xD7B7 0x700F
+0xD7B8 0x7409
+0xD7B9 0x7460
+0xD7BA 0x7559
+0xD7BB 0x7624
+0xD7BC 0x786B
+0xD7BD 0x8B2C
+0xD7BE 0x985E
+0xD7BF 0x516D
+0xD7C0 0x622E
+0xD7C1 0x9678
+0xD7C2 0x4F96
+0xD7C3 0x502B
+0xD7C4 0x5D19
+0xD7C5 0x6DEA
+0xD7C6 0x7DB8
+0xD7C7 0x8F2A
+0xD7C8 0x5F8B
+0xD7C9 0x6144
+0xD7CA 0x6817
+0xD7CB 0xF961
+0xD7CC 0x9686
+0xD7CD 0x52D2
+0xD7CE 0x808B
+0xD7CF 0x51DC
+0xD7D0 0x51CC
+0xD7D1 0x695E
+0xD7D2 0x7A1C
+0xD7D3 0x7DBE
+0xD7D4 0x83F1
+0xD7D5 0x9675
+0xD7D6 0x4FDA
+0xD7D7 0x5229
+0xD7D8 0x5398
+0xD7D9 0x540F
+0xD7DA 0x550E
+0xD7DB 0x5C65
+0xD7DC 0x60A7
+0xD7DD 0x674E
+0xD7DE 0x68A8
+0xD7DF 0x6D6C
+0xD7E0 0x7281
+0xD7E1 0x72F8
+0xD7E2 0x7406
+0xD7E3 0x7483
+0xD7E4 0xF962
+0xD7E5 0x75E2
+0xD7E6 0x7C6C
+0xD7E7 0x7F79
+0xD7E8 0x7FB8
+0xD7E9 0x8389
+0xD7EA 0x88CF
+0xD7EB 0x88E1
+0xD7EC 0x91CC
+0xD7ED 0x91D0
+0xD7EE 0x96E2
+0xD7EF 0x9BC9
+0xD7F0 0x541D
+0xD7F1 0x6F7E
+0xD7F2 0x71D0
+0xD7F3 0x7498
+0xD7F4 0x85FA
+0xD7F5 0x8EAA
+0xD7F6 0x96A3
+0xD7F7 0x9C57
+0xD7F8 0x9E9F
+0xD7F9 0x6797
+0xD7FA 0x6DCB
+0xD7FB 0x7433
+0xD7FC 0x81E8
+0xD7FD 0x9716
+0xD7FE 0x782C
+0xD8A1 0x7ACB
+0xD8A2 0x7B20
+0xD8A3 0x7C92
+0xD8A4 0x6469
+0xD8A5 0x746A
+0xD8A6 0x75F2
+0xD8A7 0x78BC
+0xD8A8 0x78E8
+0xD8A9 0x99AC
+0xD8AA 0x9B54
+0xD8AB 0x9EBB
+0xD8AC 0x5BDE
+0xD8AD 0x5E55
+0xD8AE 0x6F20
+0xD8AF 0x819C
+0xD8B0 0x83AB
+0xD8B1 0x9088
+0xD8B2 0x4E07
+0xD8B3 0x534D
+0xD8B4 0x5A29
+0xD8B5 0x5DD2
+0xD8B6 0x5F4E
+0xD8B7 0x6162
+0xD8B8 0x633D
+0xD8B9 0x6669
+0xD8BA 0x66FC
+0xD8BB 0x6EFF
+0xD8BC 0x6F2B
+0xD8BD 0x7063
+0xD8BE 0x779E
+0xD8BF 0x842C
+0xD8C0 0x8513
+0xD8C1 0x883B
+0xD8C2 0x8F13
+0xD8C3 0x9945
+0xD8C4 0x9C3B
+0xD8C5 0x551C
+0xD8C6 0x62B9
+0xD8C7 0x672B
+0xD8C8 0x6CAB
+0xD8C9 0x8309
+0xD8CA 0x896A
+0xD8CB 0x977A
+0xD8CC 0x4EA1
+0xD8CD 0x5984
+0xD8CE-0xD8CF 0x5FD8
+0xD8D0 0x671B
+0xD8D1 0x7DB2
+0xD8D2 0x7F54
+0xD8D3 0x8292
+0xD8D4 0x832B
+0xD8D5 0x83BD
+0xD8D6 0x8F1E
+0xD8D7 0x9099
+0xD8D8 0x57CB
+0xD8D9 0x59B9
+0xD8DA 0x5A92
+0xD8DB 0x5BD0
+0xD8DC 0x6627
+0xD8DD 0x679A
+0xD8DE 0x6885
+0xD8DF 0x6BCF
+0xD8E0 0x7164
+0xD8E1 0x7F75
+0xD8E2 0x8CB7
+0xD8E3 0x8CE3
+0xD8E4 0x9081
+0xD8E5 0x9B45
+0xD8E6 0x8108
+0xD8E7 0x8C8A
+0xD8E8 0x964C
+0xD8E9 0x9A40
+0xD8EA 0x9EA5
+0xD8EB 0x5B5F
+0xD8EC 0x6C13
+0xD8ED 0x731B
+0xD8EE 0x76F2
+0xD8EF 0x76DF
+0xD8F0 0x840C
+0xD8F1 0x51AA
+0xD8F2 0x8993
+0xD8F3 0x514D
+0xD8F4 0x5195
+0xD8F5 0x52C9
+0xD8F6 0x68C9
+0xD8F7 0x6C94
+0xD8F8 0x7704
+0xD8F9 0x7720
+0xD8FA 0x7DBF
+0xD8FB 0x7DEC
+0xD8FC 0x9762
+0xD8FD 0x9EB5
+0xD8FE 0x6EC5
+0xD9A1 0x8511
+0xD9A2 0x51A5
+0xD9A3 0x540D
+0xD9A4 0x547D
+0xD9A5 0x660E
+0xD9A6 0x669D
+0xD9A7 0x6927
+0xD9A8 0x6E9F
+0xD9A9 0x76BF
+0xD9AA 0x7791
+0xD9AB 0x8317
+0xD9AC 0x84C2
+0xD9AD 0x879F
+0xD9AE 0x9169
+0xD9AF 0x9298
+0xD9B0 0x9CF4
+0xD9B1 0x8882
+0xD9B2 0x4FAE
+0xD9B3 0x5192
+0xD9B4 0x52DF
+0xD9B5 0x59C6
+0xD9B6 0x5E3D
+0xD9B7 0x6155
+0xD9B8-0xD9B9 0x6478
+0xD9BA 0x66AE
+0xD9BB 0x67D0
+0xD9BC 0x6A21
+0xD9BD 0x6BCD
+0xD9BE 0x6BDB
+0xD9BF 0x725F
+0xD9C0 0x7261
+0xD9C1 0x7441
+0xD9C2 0x7738
+0xD9C3 0x77DB
+0xD9C4 0x8017
+0xD9C5 0x82BC
+0xD9C6 0x8305
+0xD9C7 0x8B00
+0xD9C8 0x8B28
+0xD9C9 0x8C8C
+0xD9CA 0x6728
+0xD9CB 0x6C90
+0xD9CC 0x7267
+0xD9CD 0x76EE
+0xD9CE 0x7766
+0xD9CF 0x7A46
+0xD9D0 0x9DA9
+0xD9D1 0x6B7F
+0xD9D2 0x6C92
+0xD9D3 0x5922
+0xD9D4 0x6726
+0xD9D5 0x8499
+0xD9D6 0x536F
+0xD9D7 0x5893
+0xD9D8 0x5999
+0xD9D9 0x5EDF
+0xD9DA 0x63CF
+0xD9DB 0x6634
+0xD9DC 0x6773
+0xD9DD 0x6E3A
+0xD9DE 0x732B
+0xD9DF 0x7AD7
+0xD9E0 0x82D7
+0xD9E1 0x9328
+0xD9E2 0x52D9
+0xD9E3 0x5DEB
+0xD9E4 0x61AE
+0xD9E5 0x61CB
+0xD9E6 0x620A
+0xD9E7 0x62C7
+0xD9E8 0x64AB
+0xD9E9 0x65E0
+0xD9EA 0x6959
+0xD9EB 0x6B66
+0xD9EC 0x6BCB
+0xD9ED 0x7121
+0xD9EE 0x73F7
+0xD9EF 0x755D
+0xD9F0 0x7E46
+0xD9F1 0x821E
+0xD9F2 0x8302
+0xD9F3 0x856A
+0xD9F4 0x8AA3
+0xD9F5 0x8CBF
+0xD9F6 0x9727
+0xD9F7 0x9D61
+0xD9F8 0x58A8
+0xD9F9 0x9ED8
+0xD9FA 0x5011
+0xD9FB 0x520E
+0xD9FC 0x543B
+0xD9FD 0x554F
+0xD9FE 0x6587
+0xDAA1 0x6C76
+0xDAA2-0xDAA3 0x7D0A
+0xDAA4 0x805E
+0xDAA5 0x868A
+0xDAA6 0x9580
+0xDAA7 0x96EF
+0xDAA8 0x52FF
+0xDAA9 0x6C95
+0xDAAA 0x7269
+0xDAAB 0x5473
+0xDAAC 0x5A9A
+0xDAAD 0x5C3E
+0xDAAE 0x5D4B
+0xDAAF 0x5F4C
+0xDAB0 0x5FAE
+0xDAB1 0x672A
+0xDAB2 0x68B6
+0xDAB3 0x6963
+0xDAB4 0x6E3C
+0xDAB5 0x6E44
+0xDAB6 0x7709
+0xDAB7 0x7C73
+0xDAB8 0x7F8E
+0xDAB9 0x8587
+0xDABA 0x8B0E
+0xDABB 0x8FF7
+0xDABC 0x9761
+0xDABD 0x9EF4
+0xDABE 0x5CB7
+0xDABF 0x60B6
+0xDAC0 0x610D
+0xDAC1 0x61AB
+0xDAC2 0x654F
+0xDAC3-0xDAC4 0x65FB
+0xDAC5 0x6C11
+0xDAC6 0x6CEF
+0xDAC7 0x739F
+0xDAC8 0x73C9
+0xDAC9 0x7DE1
+0xDACA 0x9594
+0xDACB 0x5BC6
+0xDACC 0x871C
+0xDACD 0x8B10
+0xDACE 0x525D
+0xDACF 0x535A
+0xDAD0 0x62CD
+0xDAD1 0x640F
+0xDAD2 0x64B2
+0xDAD3 0x6734
+0xDAD4 0x6A38
+0xDAD5 0x6CCA
+0xDAD6 0x73C0
+0xDAD7 0x749E
+0xDAD8 0x7B94
+0xDAD9 0x7C95
+0xDADA 0x7E1B
+0xDADB 0x818A
+0xDADC 0x8236
+0xDADD 0x8584
+0xDADE 0x8FEB
+0xDADF 0x96F9
+0xDAE0 0x99C1
+0xDAE1 0x4F34
+0xDAE2 0x534A
+0xDAE3 0x53CD
+0xDAE4 0x53DB
+0xDAE5 0x62CC
+0xDAE6 0x642C
+0xDAE7 0x6500
+0xDAE8 0x6591
+0xDAE9 0x69C3
+0xDAEA 0x6CEE
+0xDAEB 0x6F58
+0xDAEC 0x73ED
+0xDAED 0x7554
+0xDAEE 0x7622
+0xDAEF 0x76E4
+0xDAF0 0x76FC
+0xDAF1 0x78D0
+0xDAF2 0x78FB
+0xDAF3 0x792C
+0xDAF4 0x7D46
+0xDAF5 0x822C
+0xDAF6 0x87E0
+0xDAF7 0x8FD4
+0xDAF8 0x9812
+0xDAF9 0x98EF
+0xDAFA 0x52C3
+0xDAFB 0x62D4
+0xDAFC 0x64A5
+0xDAFD 0x6E24
+0xDAFE 0x6F51
+0xDBA1 0x767C
+0xDBA2 0x8DCB
+0xDBA3 0x91B1
+0xDBA4 0x9262
+0xDBA5 0x9AEE
+0xDBA6 0x9B43
+0xDBA7 0x5023
+0xDBA8 0x508D
+0xDBA9 0x574A
+0xDBAA 0x59A8
+0xDBAB 0x5C28
+0xDBAC 0x5E47
+0xDBAD 0x5F77
+0xDBAE 0x623F
+0xDBAF 0x653E
+0xDBB0 0x65B9
+0xDBB1 0x65C1
+0xDBB2 0x6609
+0xDBB3 0x678B
+0xDBB4 0x699C
+0xDBB5 0x6EC2
+0xDBB6 0x78C5
+0xDBB7 0x7D21
+0xDBB8 0x80AA
+0xDBB9 0x8180
+0xDBBA 0x822B
+0xDBBB 0x82B3
+0xDBBC 0x84A1
+0xDBBD 0x868C
+0xDBBE 0x8A2A
+0xDBBF 0x8B17
+0xDBC0 0x90A6
+0xDBC1 0x9632
+0xDBC2 0x9F90
+0xDBC3 0x500D
+0xDBC4 0x4FF3
+0xDBC5 0xF963
+0xDBC6 0x57F9
+0xDBC7 0x5F98
+0xDBC8 0x62DC
+0xDBC9 0x6392
+0xDBCA 0x676F
+0xDBCB 0x6E43
+0xDBCC 0x7119
+0xDBCD 0x76C3
+0xDBCE 0x80CC
+0xDBCF 0x80DA
+0xDBD0-0xDBD1 0x88F4
+0xDBD2 0x8919
+0xDBD3 0x8CE0
+0xDBD4 0x8F29
+0xDBD5 0x914D
+0xDBD6 0x966A
+0xDBD7 0x4F2F
+0xDBD8 0x4F70
+0xDBD9 0x5E1B
+0xDBDA 0x67CF
+0xDBDB 0x6822
+0xDBDC-0xDBDD 0x767D
+0xDBDE 0x9B44
+0xDBDF 0x5E61
+0xDBE0 0x6A0A
+0xDBE1 0x7169
+0xDBE2 0x71D4
+0xDBE3 0x756A
+0xDBE4 0xF964
+0xDBE5 0x7E41
+0xDBE6 0x8543
+0xDBE7 0x85E9
+0xDBE8 0x98DC
+0xDBE9 0x4F10
+0xDBEA 0x7B4F
+0xDBEB 0x7F70
+0xDBEC 0x95A5
+0xDBED 0x51E1
+0xDBEE 0x5E06
+0xDBEF 0x68B5
+0xDBF0 0x6C3E
+0xDBF1 0x6C4E
+0xDBF2 0x6CDB
+0xDBF3 0x72AF
+0xDBF4 0x7BC4
+0xDBF5 0x8303
+0xDBF6 0x6CD5
+0xDBF7 0x743A
+0xDBF8 0x50FB
+0xDBF9 0x5288
+0xDBFA 0x58C1
+0xDBFB 0x64D8
+0xDBFC 0x6A97
+0xDBFD 0x74A7
+0xDBFE 0x7656
+0xDCA1 0x78A7
+0xDCA2 0x8617
+0xDCA3 0x95E2
+0xDCA4 0x9739
+0xDCA5 0xF965
+0xDCA6 0x535E
+0xDCA7 0x5F01
+0xDCA8 0x8B8A
+0xDCA9 0x8FA8
+0xDCAA 0x8FAF
+0xDCAB 0x908A
+0xDCAC 0x5225
+0xDCAD 0x77A5
+0xDCAE 0x9C49
+0xDCAF 0x9F08
+0xDCB0 0x4E19
+0xDCB1 0x5002
+0xDCB2 0x5175
+0xDCB3 0x5C5B
+0xDCB4 0x5E77
+0xDCB5 0x661E
+0xDCB6 0x663A
+0xDCB7 0x67C4
+0xDCB8 0x68C5
+0xDCB9 0x70B3
+0xDCBA 0x7501
+0xDCBB 0x75C5
+0xDCBC 0x79C9
+0xDCBD 0x7ADD
+0xDCBE 0x8F27
+0xDCBF 0x9920
+0xDCC0 0x9A08
+0xDCC1 0x4FDD
+0xDCC2 0x5821
+0xDCC3 0x5831
+0xDCC4 0x5BF6
+0xDCC5 0x666E
+0xDCC6 0x6B65
+0xDCC7 0x6D11
+0xDCC8 0x6E7A
+0xDCC9 0x6F7D
+0xDCCA 0x73E4
+0xDCCB 0x752B
+0xDCCC 0x83E9
+0xDCCD 0x88DC
+0xDCCE 0x8913
+0xDCCF 0x8B5C
+0xDCD0 0x8F14
+0xDCD1 0x4F0F
+0xDCD2 0x50D5
+0xDCD3 0x5310
+0xDCD4 0x535C
+0xDCD5 0x5B93
+0xDCD6 0x5FA9
+0xDCD7 0x670D
+0xDCD8 0x798F
+0xDCD9 0x8179
+0xDCDA 0x832F
+0xDCDB 0x8514
+0xDCDC 0x8907
+0xDCDD 0x8986
+0xDCDE 0x8F39
+0xDCDF 0x8F3B
+0xDCE0 0x99A5
+0xDCE1 0x9C12
+0xDCE2 0x672C
+0xDCE3 0x4E76
+0xDCE4 0x4FF8
+0xDCE5 0x5949
+0xDCE6 0x5C01
+0xDCE7-0xDCE8 0x5CEF
+0xDCE9 0x6367
+0xDCEA 0x68D2
+0xDCEB 0x70FD
+0xDCEC 0x71A2
+0xDCED 0x742B
+0xDCEE 0x7E2B
+0xDCEF 0x84EC
+0xDCF0 0x8702
+0xDCF1 0x9022
+0xDCF2 0x92D2
+0xDCF3 0x9CF3
+0xDCF4 0x4E0D
+0xDCF5 0x4ED8
+0xDCF6 0x4FEF
+0xDCF7 0x5085
+0xDCF8 0x5256
+0xDCF9 0x526F
+0xDCFA 0x5426
+0xDCFB 0x5490
+0xDCFC 0x57E0
+0xDCFD 0x592B
+0xDCFE 0x5A66
+0xDDA1 0x5B5A
+0xDDA2 0x5B75
+0xDDA3 0x5BCC
+0xDDA4 0x5E9C
+0xDDA5 0xF966
+0xDDA6 0x6276
+0xDDA7 0x6577
+0xDDA8 0x65A7
+0xDDA9 0x6D6E
+0xDDAA 0x6EA5
+0xDDAB 0x7236
+0xDDAC 0x7B26
+0xDDAD 0x7C3F
+0xDDAE 0x7F36
+0xDDAF-0xDDB0 0x8150
+0xDDB1 0x819A
+0xDDB2 0x8240
+0xDDB3 0x8299
+0xDDB4 0x83A9
+0xDDB5 0x8A03
+0xDDB6 0x8CA0
+0xDDB7 0x8CE6
+0xDDB8 0x8CFB
+0xDDB9 0x8D74
+0xDDBA 0x8DBA
+0xDDBB 0x90E8
+0xDDBC 0x91DC
+0xDDBD 0x961C
+0xDDBE 0x9644
+0xDDBF 0x99D9
+0xDDC0 0x9CE7
+0xDDC1 0x5317
+0xDDC2 0x5206
+0xDDC3 0x5429
+0xDDC4 0x5674
+0xDDC5 0x58B3
+0xDDC6 0x5954
+0xDDC7 0x596E
+0xDDC8 0x5FFF
+0xDDC9 0x61A4
+0xDDCA 0x626E
+0xDDCB 0x6610
+0xDDCC 0x6C7E
+0xDDCD 0x711A
+0xDDCE 0x76C6
+0xDDCF 0x7C89
+0xDDD0 0x7CDE
+0xDDD1 0x7D1B
+0xDDD2 0x82AC
+0xDDD3 0x8CC1
+0xDDD4 0x96F0
+0xDDD5 0xF967
+0xDDD6 0x4F5B
+0xDDD7 0x5F17
+0xDDD8 0x5F7F
+0xDDD9 0x62C2
+0xDDDA 0x5D29
+0xDDDB 0x670B
+0xDDDC 0x68DA
+0xDDDD 0x787C
+0xDDDE 0x7E43
+0xDDDF 0x9D6C
+0xDDE0 0x4E15
+0xDDE1 0x5099
+0xDDE2 0x5315
+0xDDE3 0x532A
+0xDDE4 0x5351
+0xDDE5 0x5983
+0xDDE6 0x5A62
+0xDDE7 0x5E87
+0xDDE8 0x60B2
+0xDDE9 0x618A
+0xDDEA 0x6249
+0xDDEB 0x6279
+0xDDEC 0x6590
+0xDDED 0x6787
+0xDDEE 0x69A7
+0xDDEF 0x6BD4
+0xDDF0-0xDDF2 0x6BD6
+0xDDF3 0x6CB8
+0xDDF4 0xF968
+0xDDF5 0x7435
+0xDDF6 0x75FA
+0xDDF7 0x7812
+0xDDF8 0x7891
+0xDDF9 0x79D5
+0xDDFA 0x79D8
+0xDDFB 0x7C83
+0xDDFC 0x7DCB
+0xDDFD 0x7FE1
+0xDDFE 0x80A5
+0xDEA1 0x813E
+0xDEA2 0x81C2
+0xDEA3 0x83F2
+0xDEA4 0x871A
+0xDEA5 0x88E8
+0xDEA6 0x8AB9
+0xDEA7 0x8B6C
+0xDEA8 0x8CBB
+0xDEA9 0x9119
+0xDEAA 0x975E
+0xDEAB 0x98DB
+0xDEAC 0x9F3B
+0xDEAD 0x56AC
+0xDEAE 0x5B2A
+0xDEAF 0x5F6C
+0xDEB0 0x658C
+0xDEB1 0x6AB3
+0xDEB2 0x6BAF
+0xDEB3 0x6D5C
+0xDEB4 0x6FF1
+0xDEB5 0x7015
+0xDEB6 0x725D
+0xDEB7 0x73AD
+0xDEB8 0x8CA7
+0xDEB9 0x8CD3
+0xDEBA 0x983B
+0xDEBB 0x6191
+0xDEBC 0x6C37
+0xDEBD 0x8058
+0xDEBE 0x9A01
+0xDEBF 0x4E4D
+0xDEC0 0x4E8B
+0xDEC1 0x4E9B
+0xDEC2 0x4ED5
+0xDEC3 0x4F3A
+0xDEC4 0x4F3C
+0xDEC5 0x4F7F
+0xDEC6 0x4FDF
+0xDEC7 0x50FF
+0xDEC8 0x53F2
+0xDEC9 0x53F8
+0xDECA 0x5506
+0xDECB 0x55E3
+0xDECC 0x56DB
+0xDECD 0x58EB
+0xDECE 0x5962
+0xDECF 0x5A11
+0xDED0 0x5BEB
+0xDED1 0x5BFA
+0xDED2 0x5C04
+0xDED3 0x5DF3
+0xDED4 0x5E2B
+0xDED5 0x5F99
+0xDED6 0x601D
+0xDED7 0x6368
+0xDED8 0x659C
+0xDED9 0x65AF
+0xDEDA 0x67F6
+0xDEDB 0x67FB
+0xDEDC 0x68AD
+0xDEDD 0x6B7B
+0xDEDE 0x6C99
+0xDEDF 0x6CD7
+0xDEE0 0x6E23
+0xDEE1 0x7009
+0xDEE2 0x7345
+0xDEE3 0x7802
+0xDEE4 0x793E
+0xDEE5 0x7940
+0xDEE6 0x7960
+0xDEE7 0x79C1
+0xDEE8 0x7BE9
+0xDEE9 0x7D17
+0xDEEA 0x7D72
+0xDEEB 0x8086
+0xDEEC 0x820D
+0xDEED 0x838E
+0xDEEE 0x84D1
+0xDEEF 0x86C7
+0xDEF0 0x88DF
+0xDEF1 0x8A50
+0xDEF2 0x8A5E
+0xDEF3 0x8B1D
+0xDEF4 0x8CDC
+0xDEF5 0x8D66
+0xDEF6 0x8FAD
+0xDEF7 0x90AA
+0xDEF8 0x98FC
+0xDEF9 0x99DF
+0xDEFA 0x9E9D
+0xDEFB 0x524A
+0xDEFC 0xF969
+0xDEFD 0x6714
+0xDEFE 0xF96A
+0xDFA1 0x5098
+0xDFA2 0x522A
+0xDFA3 0x5C71
+0xDFA4 0x6563
+0xDFA5 0x6C55
+0xDFA6 0x73CA
+0xDFA7 0x7523
+0xDFA8 0x759D
+0xDFA9 0x7B97
+0xDFAA 0x849C
+0xDFAB 0x9178
+0xDFAC 0x9730
+0xDFAD 0x4E77
+0xDFAE 0x6492
+0xDFAF 0x6BBA
+0xDFB0 0x715E
+0xDFB1 0x85A9
+0xDFB2 0x4E09
+0xDFB3 0xF96B
+0xDFB4 0x6749
+0xDFB5 0x68EE
+0xDFB6 0x6E17
+0xDFB7 0x829F
+0xDFB8 0x8518
+0xDFB9 0x886B
+0xDFBA 0x63F7
+0xDFBB 0x6F81
+0xDFBC 0x9212
+0xDFBD 0x98AF
+0xDFBE 0x4E0A
+0xDFBF 0x50B7
+0xDFC0 0x50CF
+0xDFC1 0x511F
+0xDFC2 0x5546
+0xDFC3 0x55AA
+0xDFC4 0x5617
+0xDFC5 0x5B40
+0xDFC6 0x5C19
+0xDFC7 0x5CE0
+0xDFC8 0x5E38
+0xDFC9 0x5E8A
+0xDFCA 0x5EA0
+0xDFCB 0x5EC2
+0xDFCC 0x60F3
+0xDFCD 0x6851
+0xDFCE 0x6A61
+0xDFCF 0x6E58
+0xDFD0 0x723D
+0xDFD1 0x7240
+0xDFD2 0x72C0
+0xDFD3 0x76F8
+0xDFD4 0x7965
+0xDFD5 0x7BB1
+0xDFD6 0x7FD4
+0xDFD7 0x88F3
+0xDFD8 0x89F4
+0xDFD9 0x8A73
+0xDFDA 0x8C61
+0xDFDB 0x8CDE
+0xDFDC 0x971C
+0xDFDD 0x585E
+0xDFDE 0x74BD
+0xDFDF 0x8CFD
+0xDFE0 0x55C7
+0xDFE1 0xF96C
+0xDFE2 0x7A61
+0xDFE3 0x7D22
+0xDFE4 0x8272
+0xDFE5 0x7272
+0xDFE6 0x751F
+0xDFE7 0x7525
+0xDFE8 0xF96D
+0xDFE9 0x7B19
+0xDFEA 0x5885
+0xDFEB 0x58FB
+0xDFEC 0x5DBC
+0xDFED 0x5E8F
+0xDFEE 0x5EB6
+0xDFEF 0x5F90
+0xDFF0 0x6055
+0xDFF1 0x6292
+0xDFF2 0x637F
+0xDFF3 0x654D
+0xDFF4 0x6691
+0xDFF5 0x66D9
+0xDFF6 0x66F8
+0xDFF7 0x6816
+0xDFF8 0x68F2
+0xDFF9 0x7280
+0xDFFA 0x745E
+0xDFFB 0x7B6E
+0xDFFC 0x7D6E
+0xDFFD 0x7DD6
+0xDFFE 0x7F72
+0xE0A1 0x80E5
+0xE0A2 0x8212
+0xE0A3 0x85AF
+0xE0A4 0x897F
+0xE0A5 0x8A93
+0xE0A6 0x901D
+0xE0A7 0x92E4
+0xE0A8 0x9ECD
+0xE0A9 0x9F20
+0xE0AA 0x5915
+0xE0AB 0x596D
+0xE0AC 0x5E2D
+0xE0AD 0x60DC
+0xE0AE 0x6614
+0xE0AF 0x6673
+0xE0B0 0x6790
+0xE0B1 0x6C50
+0xE0B2 0x6DC5
+0xE0B3 0x6F5F
+0xE0B4 0x77F3
+0xE0B5 0x78A9
+0xE0B6 0x84C6
+0xE0B7 0x91CB
+0xE0B8 0x932B
+0xE0B9 0x4ED9
+0xE0BA 0x50CA
+0xE0BB 0x5148
+0xE0BC 0x5584
+0xE0BD 0x5B0B
+0xE0BE 0x5BA3
+0xE0BF 0x6247
+0xE0C0 0x657E
+0xE0C1 0x65CB
+0xE0C2 0x6E32
+0xE0C3 0x717D
+0xE0C4 0x7401
+0xE0C5 0x7444
+0xE0C6 0x7487
+0xE0C7 0x74BF
+0xE0C8 0x766C
+0xE0C9 0x79AA
+0xE0CA 0x7DDA
+0xE0CB 0x7E55
+0xE0CC 0x7FA8
+0xE0CD 0x817A
+0xE0CE 0x81B3
+0xE0CF 0x8239
+0xE0D0 0x861A
+0xE0D1 0x87EC
+0xE0D2 0x8A75
+0xE0D3 0x8DE3
+0xE0D4 0x9078
+0xE0D5 0x9291
+0xE0D6 0x9425
+0xE0D7 0x994D
+0xE0D8 0x9BAE
+0xE0D9 0x5368
+0xE0DA 0x5C51
+0xE0DB 0x6954
+0xE0DC 0x6CC4
+0xE0DD 0x6D29
+0xE0DE 0x6E2B
+0xE0DF 0x820C
+0xE0E0 0x859B
+0xE0E1 0x893B
+0xE0E2 0x8A2D
+0xE0E3 0x8AAA
+0xE0E4 0x96EA
+0xE0E5 0x9F67
+0xE0E6 0x5261
+0xE0E7 0x66B9
+0xE0E8 0x6BB2
+0xE0E9 0x7E96
+0xE0EA 0x87FE
+0xE0EB 0x8D0D
+0xE0EC 0x9583
+0xE0ED 0x965D
+0xE0EE 0x651D
+0xE0EF 0x6D89
+0xE0F0 0x71EE
+0xE0F1 0xF96E
+0xE0F2 0x57CE
+0xE0F3 0x59D3
+0xE0F4 0x5BAC
+0xE0F5 0x6027
+0xE0F6 0x60FA
+0xE0F7 0x6210
+0xE0F8 0x661F
+0xE0F9 0x665F
+0xE0FA 0x7329
+0xE0FB 0x73F9
+0xE0FC 0x76DB
+0xE0FD 0x7701
+0xE0FE 0x7B6C
+0xE1A1 0x8056
+0xE1A2 0x8072
+0xE1A3 0x8165
+0xE1A4 0x8AA0
+0xE1A5 0x9192
+0xE1A6 0x4E16
+0xE1A7 0x52E2
+0xE1A8 0x6B72
+0xE1A9 0x6D17
+0xE1AA 0x7A05
+0xE1AB 0x7B39
+0xE1AC 0x7D30
+0xE1AD 0xF96F
+0xE1AE 0x8CB0
+0xE1AF 0x53EC
+0xE1B0 0x562F
+0xE1B1 0x5851
+0xE1B2 0x5BB5
+0xE1B3 0x5C0F
+0xE1B4 0x5C11
+0xE1B5 0x5DE2
+0xE1B6 0x6240
+0xE1B7 0x6383
+0xE1B8 0x6414
+0xE1B9 0x662D
+0xE1BA 0x68B3
+0xE1BB 0x6CBC
+0xE1BC 0x6D88
+0xE1BD 0x6EAF
+0xE1BE 0x701F
+0xE1BF 0x70A4
+0xE1C0 0x71D2
+0xE1C1 0x7526
+0xE1C2 0x758F
+0xE1C3 0x758E
+0xE1C4 0x7619
+0xE1C5 0x7B11
+0xE1C6 0x7BE0
+0xE1C7 0x7C2B
+0xE1C8 0x7D20
+0xE1C9 0x7D39
+0xE1CA 0x852C
+0xE1CB 0x856D
+0xE1CC 0x8607
+0xE1CD 0x8A34
+0xE1CE 0x900D
+0xE1CF 0x9061
+0xE1D0 0x90B5
+0xE1D1 0x92B7
+0xE1D2 0x97F6
+0xE1D3 0x9A37
+0xE1D4 0x4FD7
+0xE1D5 0x5C6C
+0xE1D6 0x675F
+0xE1D7 0x6D91
+0xE1D8 0x7C9F
+0xE1D9 0x7E8C
+0xE1DA 0x8B16
+0xE1DB 0x8D16
+0xE1DC 0x901F
+0xE1DD 0x5B6B
+0xE1DE 0x5DFD
+0xE1DF 0x640D
+0xE1E0 0x84C0
+0xE1E1 0x905C
+0xE1E2 0x98E1
+0xE1E3 0x7387
+0xE1E4 0x5B8B
+0xE1E5 0x609A
+0xE1E6 0x677E
+0xE1E7 0x6DDE
+0xE1E8 0x8A1F
+0xE1E9 0x8AA6
+0xE1EA 0x9001
+0xE1EB 0x980C
+0xE1EC 0x5237
+0xE1ED 0xF970
+0xE1EE 0x7051
+0xE1EF 0x788E
+0xE1F0 0x9396
+0xE1F1 0x8870
+0xE1F2 0x91D7
+0xE1F3 0x4FEE
+0xE1F4 0x53D7
+0xE1F5 0x55FD
+0xE1F6 0x56DA
+0xE1F7 0x5782
+0xE1F8 0x58FD
+0xE1F9 0x5AC2
+0xE1FA 0x5B88
+0xE1FB 0x5CAB
+0xE1FC 0x5CC0
+0xE1FD 0x5E25
+0xE1FE 0x6101
+0xE2A1 0x620D
+0xE2A2 0x624B
+0xE2A3 0x6388
+0xE2A4 0x641C
+0xE2A5 0x6536
+0xE2A6 0x6578
+0xE2A7 0x6A39
+0xE2A8 0x6B8A
+0xE2A9 0x6C34
+0xE2AA 0x6D19
+0xE2AB 0x6F31
+0xE2AC 0x71E7
+0xE2AD 0x72E9
+0xE2AE 0x7378
+0xE2AF 0x7407
+0xE2B0 0x74B2
+0xE2B1 0x7626
+0xE2B2 0x7761
+0xE2B3 0x79C0
+0xE2B4 0x7A57
+0xE2B5 0x7AEA
+0xE2B6 0x7CB9
+0xE2B7 0x7D8F
+0xE2B8 0x7DAC
+0xE2B9 0x7E61
+0xE2BA 0x7F9E
+0xE2BB 0x8129
+0xE2BC 0x8331
+0xE2BD 0x8490
+0xE2BE 0x84DA
+0xE2BF 0x85EA
+0xE2C0 0x8896
+0xE2C1 0x8AB0
+0xE2C2 0x8B90
+0xE2C3 0x8F38
+0xE2C4 0x9042
+0xE2C5 0x9083
+0xE2C6 0x916C
+0xE2C7 0x9296
+0xE2C8 0x92B9
+0xE2C9 0x968B
+0xE2CA-0xE2CB 0x96A7
+0xE2CC 0x96D6
+0xE2CD 0x9700
+0xE2CE 0x9808
+0xE2CF 0x9996
+0xE2D0 0x9AD3
+0xE2D1 0x9B1A
+0xE2D2 0x53D4
+0xE2D3 0x587E
+0xE2D4 0x5919
+0xE2D5 0x5B70
+0xE2D6 0x5BBF
+0xE2D7 0x6DD1
+0xE2D8 0x6F5A
+0xE2D9 0x719F
+0xE2DA 0x7421
+0xE2DB 0x74B9
+0xE2DC 0x8085
+0xE2DD 0x83FD
+0xE2DE 0x5DE1
+0xE2DF 0x5F87
+0xE2E0 0x5FAA
+0xE2E1 0x6042
+0xE2E2 0x65EC
+0xE2E3 0x6812
+0xE2E4 0x696F
+0xE2E5 0x6A53
+0xE2E6 0x6B89
+0xE2E7 0x6D35
+0xE2E8 0x6DF3
+0xE2E9 0x73E3
+0xE2EA 0x76FE
+0xE2EB 0x77AC
+0xE2EC 0x7B4D
+0xE2ED 0x7D14
+0xE2EE 0x8123
+0xE2EF 0x821C
+0xE2F0 0x8340
+0xE2F1 0x84F4
+0xE2F2 0x8563
+0xE2F3 0x8A62
+0xE2F4 0x8AC4
+0xE2F5 0x9187
+0xE2F6 0x931E
+0xE2F7 0x9806
+0xE2F8 0x99B4
+0xE2F9 0x620C
+0xE2FA 0x8853
+0xE2FB 0x8FF0
+0xE2FC 0x9265
+0xE2FD 0x5D07
+0xE2FE 0x5D27
+0xE3A1 0x5D69
+0xE3A2 0x745F
+0xE3A3 0x819D
+0xE3A4 0x8768
+0xE3A5 0x6FD5
+0xE3A6 0x62FE
+0xE3A7 0x7FD2
+0xE3A8 0x8936
+0xE3A9 0x8972
+0xE3AA 0x4E1E
+0xE3AB 0x4E58
+0xE3AC 0x50E7
+0xE3AD 0x52DD
+0xE3AE 0x5347
+0xE3AF 0x627F
+0xE3B0 0x6607
+0xE3B1 0x7E69
+0xE3B2 0x8805
+0xE3B3 0x965E
+0xE3B4 0x4F8D
+0xE3B5 0x5319
+0xE3B6 0x5636
+0xE3B7 0x59CB
+0xE3B8 0x5AA4
+0xE3B9 0x5C38
+0xE3BA 0x5C4E
+0xE3BB 0x5C4D
+0xE3BC 0x5E02
+0xE3BD 0x5F11
+0xE3BE 0x6043
+0xE3BF 0x65BD
+0xE3C0 0x662F
+0xE3C1 0x6642
+0xE3C2 0x67BE
+0xE3C3 0x67F4
+0xE3C4 0x731C
+0xE3C5 0x77E2
+0xE3C6 0x793A
+0xE3C7 0x7FC5
+0xE3C8 0x8494
+0xE3C9 0x84CD
+0xE3CA 0x8996
+0xE3CB 0x8A66
+0xE3CC 0x8A69
+0xE3CD 0x8AE1
+0xE3CE 0x8C55
+0xE3CF 0x8C7A
+0xE3D0 0x57F4
+0xE3D1 0x5BD4
+0xE3D2 0x5F0F
+0xE3D3 0x606F
+0xE3D4 0x62ED
+0xE3D5 0x690D
+0xE3D6 0x6B96
+0xE3D7 0x6E5C
+0xE3D8 0x7184
+0xE3D9 0x7BD2
+0xE3DA 0x8755
+0xE3DB 0x8B58
+0xE3DC 0x8EFE
+0xE3DD 0x98DF
+0xE3DE 0x98FE
+0xE3DF 0x4F38
+0xE3E0 0x4F81
+0xE3E1 0x4FE1
+0xE3E2 0x547B
+0xE3E3 0x5A20
+0xE3E4 0x5BB8
+0xE3E5 0x613C
+0xE3E6 0x65B0
+0xE3E7 0x6668
+0xE3E8 0x71FC
+0xE3E9 0x7533
+0xE3EA 0x795E
+0xE3EB 0x7D33
+0xE3EC 0x814E
+0xE3ED 0x81E3
+0xE3EE 0x8398
+0xE3EF 0x85AA
+0xE3F0 0x85CE
+0xE3F1 0x8703
+0xE3F2 0x8A0A
+0xE3F3 0x8EAB
+0xE3F4 0x8F9B
+0xE3F5 0xF971
+0xE3F6 0x8FC5
+0xE3F7 0x5931
+0xE3F8 0x5BA4
+0xE3F9 0x5BE6
+0xE3FA 0x6089
+0xE3FB 0x5BE9
+0xE3FC 0x5C0B
+0xE3FD 0x5FC3
+0xE3FE 0x6C81
+0xE4A1 0xF972
+0xE4A2 0x6DF1
+0xE4A3 0x700B
+0xE4A4 0x751A
+0xE4A5 0x82AF
+0xE4A6 0x8AF6
+0xE4A7 0x4EC0
+0xE4A8 0x5341
+0xE4A9 0xF973
+0xE4AA 0x96D9
+0xE4AB 0x6C0F
+0xE4AC 0x4E9E
+0xE4AD 0x4FC4
+0xE4AE 0x5152
+0xE4AF 0x555E
+0xE4B0 0x5A25
+0xE4B1 0x5CE8
+0xE4B2 0x6211
+0xE4B3 0x7259
+0xE4B4 0x82BD
+0xE4B5 0x83AA
+0xE4B6 0x86FE
+0xE4B7 0x8859
+0xE4B8 0x8A1D
+0xE4B9 0x963F
+0xE4BA 0x96C5
+0xE4BB 0x9913
+0xE4BC 0x9D09
+0xE4BD 0x9D5D
+0xE4BE 0x580A
+0xE4BF 0x5CB3
+0xE4C0 0x5DBD
+0xE4C1 0x5E44
+0xE4C2 0x60E1
+0xE4C3 0x6115
+0xE4C4 0x63E1
+0xE4C5 0x6A02
+0xE4C6 0x6E25
+0xE4C7 0x9102
+0xE4C8 0x9354
+0xE4C9 0x984E
+0xE4CA 0x9C10
+0xE4CB 0x9F77
+0xE4CC 0x5B89
+0xE4CD 0x5CB8
+0xE4CE 0x6309
+0xE4CF 0x664F
+0xE4D0 0x6848
+0xE4D1 0x773C
+0xE4D2 0x96C1
+0xE4D3 0x978D
+0xE4D4 0x9854
+0xE4D5 0x9B9F
+0xE4D6 0x65A1
+0xE4D7 0x8B01
+0xE4D8 0x8ECB
+0xE4D9 0x95BC
+0xE4DA 0x5535
+0xE4DB 0x5CA9
+0xE4DC 0x5DD6
+0xE4DD 0x5EB5
+0xE4DE 0x6697
+0xE4DF 0x764C
+0xE4E0 0x83F4
+0xE4E1 0x95C7
+0xE4E2 0x58D3
+0xE4E3 0x62BC
+0xE4E4 0x72CE
+0xE4E5 0x9D28
+0xE4E6 0x4EF0
+0xE4E7 0x592E
+0xE4E8 0x600F
+0xE4E9 0x663B
+0xE4EA 0x6B83
+0xE4EB 0x79E7
+0xE4EC 0x9D26
+0xE4ED 0x5393
+0xE4EE 0x54C0
+0xE4EF 0x57C3
+0xE4F0 0x5D16
+0xE4F1 0x611B
+0xE4F2 0x66D6
+0xE4F3 0x6DAF
+0xE4F4 0x788D
+0xE4F5 0x827E
+0xE4F6 0x9698
+0xE4F7 0x9744
+0xE4F8 0x5384
+0xE4F9 0x627C
+0xE4FA 0x6396
+0xE4FB 0x6DB2
+0xE4FC 0x7E0A
+0xE4FD 0x814B
+0xE4FE 0x984D
+0xE5A1 0x6AFB
+0xE5A2 0x7F4C
+0xE5A3 0x9DAF
+0xE5A4 0x9E1A
+0xE5A5 0x4E5F
+0xE5A6 0x503B
+0xE5A7 0x51B6
+0xE5A8 0x591C
+0xE5A9 0x60F9
+0xE5AA 0x63F6
+0xE5AB 0x6930
+0xE5AC 0x723A
+0xE5AD 0x8036
+0xE5AE 0xF974
+0xE5AF 0x91CE
+0xE5B0 0x5F31
+0xE5B1-0xE5B2 0xF975
+0xE5B3 0x7D04
+0xE5B4 0x82E5
+0xE5B5 0x846F
+0xE5B6 0x84BB
+0xE5B7 0x85E5
+0xE5B8 0x8E8D
+0xE5B9 0xF977
+0xE5BA 0x4F6F
+0xE5BB-0xE5BC 0xF978
+0xE5BD 0x58E4
+0xE5BE 0x5B43
+0xE5BF 0x6059
+0xE5C0 0x63DA
+0xE5C1 0x6518
+0xE5C2 0x656D
+0xE5C3 0x6698
+0xE5C4 0xF97A
+0xE5C5 0x694A
+0xE5C6 0x6A23
+0xE5C7 0x6D0B
+0xE5C8 0x7001
+0xE5C9 0x716C
+0xE5CA 0x75D2
+0xE5CB 0x760D
+0xE5CC 0x79B3
+0xE5CD 0x7A70
+0xE5CE 0xF97B
+0xE5CF 0x7F8A
+0xE5D0 0xF97C
+0xE5D1 0x8944
+0xE5D2 0xF97D
+0xE5D3 0x8B93
+0xE5D4 0x91C0
+0xE5D5 0x967D
+0xE5D6 0xF97E
+0xE5D7 0x990A
+0xE5D8 0x5704
+0xE5D9 0x5FA1
+0xE5DA 0x65BC
+0xE5DB 0x6F01
+0xE5DC 0x7600
+0xE5DD 0x79A6
+0xE5DE 0x8A9E
+0xE5DF 0x99AD
+0xE5E0 0x9B5A
+0xE5E1 0x9F6C
+0xE5E2 0x5104
+0xE5E3 0x61B6
+0xE5E4 0x6291
+0xE5E5 0x6A8D
+0xE5E6 0x81C6
+0xE5E7 0x5043
+0xE5E8 0x5830
+0xE5E9 0x5F66
+0xE5EA 0x7109
+0xE5EB 0x8A00
+0xE5EC 0x8AFA
+0xE5ED 0x5B7C
+0xE5EE 0x8616
+0xE5EF 0x4FFA
+0xE5F0 0x513C
+0xE5F1 0x56B4
+0xE5F2 0x5944
+0xE5F3 0x63A9
+0xE5F4 0x6DF9
+0xE5F5 0x5DAA
+0xE5F6 0x696D
+0xE5F7 0x5186
+0xE5F8 0x4E88
+0xE5F9 0x4F59
+0xE5FA-0xE5FC 0xF97F
+0xE5FD 0x5982
+0xE5FE 0xF982
+0xE6A1 0xF983
+0xE6A2 0x6B5F
+0xE6A3 0x6C5D
+0xE6A4 0xF984
+0xE6A5 0x74B5
+0xE6A6 0x7916
+0xE6A7 0xF985
+0xE6A8 0x8207
+0xE6A9 0x8245
+0xE6AA 0x8339
+0xE6AB 0x8F3F
+0xE6AC 0x8F5D
+0xE6AD 0xF986
+0xE6AE 0x9918
+0xE6AF-0xE6B1 0xF987
+0xE6B2 0x4EA6
+0xE6B3 0xF98A
+0xE6B4 0x57DF
+0xE6B5 0x5F79
+0xE6B6 0x6613
+0xE6B7-0xE6B8 0xF98B
+0xE6B9 0x75AB
+0xE6BA 0x7E79
+0xE6BB 0x8B6F
+0xE6BC 0xF98D
+0xE6BD 0x9006
+0xE6BE 0x9A5B
+0xE6BF 0x56A5
+0xE6C0 0x5827
+0xE6C1 0x59F8
+0xE6C2 0x5A1F
+0xE6C3 0x5BB4
+0xE6C4 0xF98E
+0xE6C5 0x5EF6
+0xE6C6-0xE6C7 0xF98F
+0xE6C8 0x6350
+0xE6C9 0x633B
+0xE6CA 0xF991
+0xE6CB 0x693D
+0xE6CC 0x6C87
+0xE6CD 0x6CBF
+0xE6CE 0x6D8E
+0xE6CF 0x6D93
+0xE6D0 0x6DF5
+0xE6D1 0x6F14
+0xE6D2 0xF992
+0xE6D3 0x70DF
+0xE6D4 0x7136
+0xE6D5 0x7159
+0xE6D6 0xF993
+0xE6D7 0x71C3
+0xE6D8 0x71D5
+0xE6D9 0xF994
+0xE6DA 0x784F
+0xE6DB 0x786F
+0xE6DC 0xF995
+0xE6DD 0x7B75
+0xE6DE 0x7DE3
+0xE6DF 0xF996
+0xE6E0 0x7E2F
+0xE6E1 0xF997
+0xE6E2 0x884D
+0xE6E3 0x8EDF
+0xE6E4-0xE6E6 0xF998
+0xE6E7 0x925B
+0xE6E8 0xF99B
+0xE6E9 0x9CF6
+0xE6EA-0xE6EC 0xF99C
+0xE6ED 0x6085
+0xE6EE 0x6D85
+0xE6EF 0xF99F
+0xE6F0 0x71B1
+0xE6F1-0xE6F2 0xF9A0
+0xE6F3 0x95B1
+0xE6F4 0x53AD
+0xE6F5-0xE6F7 0xF9A2
+0xE6F8 0x67D3
+0xE6F9 0xF9A5
+0xE6FA 0x708E
+0xE6FB 0x7130
+0xE6FC 0x7430
+0xE6FD 0x8276
+0xE6FE 0x82D2
+0xE7A1 0xF9A6
+0xE7A2 0x95BB
+0xE7A3 0x9AE5
+0xE7A4 0x9E7D
+0xE7A5 0x66C4
+0xE7A6 0xF9A7
+0xE7A7 0x71C1
+0xE7A8 0x8449
+0xE7A9-0xE7AA 0xF9A8
+0xE7AB 0x584B
+0xE7AC-0xE7AD 0xF9AA
+0xE7AE 0x5DB8
+0xE7AF 0x5F71
+0xE7B0 0xF9AC
+0xE7B1 0x6620
+0xE7B2 0x668E
+0xE7B3 0x6979
+0xE7B4 0x69AE
+0xE7B5 0x6C38
+0xE7B6 0x6CF3
+0xE7B7 0x6E36
+0xE7B8 0x6F41
+0xE7B9 0x6FDA
+0xE7BA 0x701B
+0xE7BB 0x702F
+0xE7BC 0x7150
+0xE7BD 0x71DF
+0xE7BE 0x7370
+0xE7BF 0xF9AD
+0xE7C0 0x745B
+0xE7C1 0xF9AE
+0xE7C2 0x74D4
+0xE7C3 0x76C8
+0xE7C4 0x7A4E
+0xE7C5 0x7E93
+0xE7C6-0xE7C7 0xF9AF
+0xE7C8 0x82F1
+0xE7C9 0x8A60
+0xE7CA 0x8FCE
+0xE7CB 0xF9B1
+0xE7CC 0x9348
+0xE7CD 0xF9B2
+0xE7CE 0x9719
+0xE7CF-0xE7D0 0xF9B3
+0xE7D1 0x4E42
+0xE7D2 0x502A
+0xE7D3 0xF9B5
+0xE7D4 0x5208
+0xE7D5 0x53E1
+0xE7D6 0x66F3
+0xE7D7 0x6C6D
+0xE7D8 0x6FCA
+0xE7D9 0x730A
+0xE7DA 0x777F
+0xE7DB 0x7A62
+0xE7DC 0x82AE
+0xE7DD 0x85DD
+0xE7DE 0x8602
+0xE7DF 0xF9B6
+0xE7E0 0x88D4
+0xE7E1 0x8A63
+0xE7E2 0x8B7D
+0xE7E3 0x8C6B
+0xE7E4 0xF9B7
+0xE7E5 0x92B3
+0xE7E6 0xF9B8
+0xE7E7 0x9713
+0xE7E8 0x9810
+0xE7E9 0x4E94
+0xE7EA 0x4F0D
+0xE7EB 0x4FC9
+0xE7EC 0x50B2
+0xE7ED 0x5348
+0xE7EE 0x543E
+0xE7EF 0x5433
+0xE7F0 0x55DA
+0xE7F1 0x5862
+0xE7F2 0x58BA
+0xE7F3 0x5967
+0xE7F4 0x5A1B
+0xE7F5 0x5BE4
+0xE7F6 0x609F
+0xE7F7 0xF9B9
+0xE7F8 0x61CA
+0xE7F9 0x6556
+0xE7FA 0x65FF
+0xE7FB 0x6664
+0xE7FC 0x68A7
+0xE7FD 0x6C5A
+0xE7FE 0x6FB3
+0xE8A1 0x70CF
+0xE8A2 0x71AC
+0xE8A3 0x7352
+0xE8A4 0x7B7D
+0xE8A5 0x8708
+0xE8A6 0x8AA4
+0xE8A7 0x9C32
+0xE8A8 0x9F07
+0xE8A9 0x5C4B
+0xE8AA 0x6C83
+0xE8AB 0x7344
+0xE8AC 0x7389
+0xE8AD 0x923A
+0xE8AE 0x6EAB
+0xE8AF 0x7465
+0xE8B0 0x761F
+0xE8B1 0x7A69
+0xE8B2 0x7E15
+0xE8B3 0x860A
+0xE8B4 0x5140
+0xE8B5 0x58C5
+0xE8B6 0x64C1
+0xE8B7 0x74EE
+0xE8B8 0x7515
+0xE8B9 0x7670
+0xE8BA 0x7FC1
+0xE8BB 0x9095
+0xE8BC 0x96CD
+0xE8BD 0x9954
+0xE8BE 0x6E26
+0xE8BF 0x74E6
+0xE8C0-0xE8C1 0x7AA9
+0xE8C2 0x81E5
+0xE8C3 0x86D9
+0xE8C4 0x8778
+0xE8C5 0x8A1B
+0xE8C6 0x5A49
+0xE8C7 0x5B8C
+0xE8C8 0x5B9B
+0xE8C9 0x68A1
+0xE8CA 0x6900
+0xE8CB 0x6D63
+0xE8CC 0x73A9
+0xE8CD 0x7413
+0xE8CE 0x742C
+0xE8CF 0x7897
+0xE8D0 0x7DE9
+0xE8D1 0x7FEB
+0xE8D2 0x8118
+0xE8D3 0x8155
+0xE8D4 0x839E
+0xE8D5 0x8C4C
+0xE8D6 0x962E
+0xE8D7 0x9811
+0xE8D8 0x66F0
+0xE8D9 0x5F80
+0xE8DA 0x65FA
+0xE8DB 0x6789
+0xE8DC 0x6C6A
+0xE8DD 0x738B
+0xE8DE 0x502D
+0xE8DF 0x5A03
+0xE8E0 0x6B6A
+0xE8E1 0x77EE
+0xE8E2 0x5916
+0xE8E3 0x5D6C
+0xE8E4 0x5DCD
+0xE8E5 0x7325
+0xE8E6 0x754F
+0xE8E7-0xE8E8 0xF9BA
+0xE8E9 0x50E5
+0xE8EA 0x51F9
+0xE8EB 0x582F
+0xE8EC 0x592D
+0xE8ED 0x5996
+0xE8EE 0x59DA
+0xE8EF 0x5BE5
+0xE8F0-0xE8F1 0xF9BC
+0xE8F2 0x5DA2
+0xE8F3 0x62D7
+0xE8F4 0x6416
+0xE8F5 0x6493
+0xE8F6 0x64FE
+0xE8F7 0xF9BE
+0xE8F8 0x66DC
+0xE8F9 0xF9BF
+0xE8FA 0x6A48
+0xE8FB 0xF9C0
+0xE8FC 0x71FF
+0xE8FD 0x7464
+0xE8FE 0xF9C1
+0xE9A1 0x7A88
+0xE9A2 0x7AAF
+0xE9A3 0x7E47
+0xE9A4 0x7E5E
+0xE9A5 0x8000
+0xE9A6 0x8170
+0xE9A7 0xF9C2
+0xE9A8 0x87EF
+0xE9A9 0x8981
+0xE9AA 0x8B20
+0xE9AB 0x9059
+0xE9AC 0xF9C3
+0xE9AD 0x9080
+0xE9AE 0x9952
+0xE9AF 0x617E
+0xE9B0 0x6B32
+0xE9B1 0x6D74
+0xE9B2 0x7E1F
+0xE9B3 0x8925
+0xE9B4 0x8FB1
+0xE9B5 0x4FD1
+0xE9B6 0x50AD
+0xE9B7 0x5197
+0xE9B8 0x52C7
+0xE9B9 0x57C7
+0xE9BA 0x5889
+0xE9BB 0x5BB9
+0xE9BC 0x5EB8
+0xE9BD 0x6142
+0xE9BE 0x6995
+0xE9BF 0x6D8C
+0xE9C0 0x6E67
+0xE9C1 0x6EB6
+0xE9C2 0x7194
+0xE9C3 0x7462
+0xE9C4 0x7528
+0xE9C5 0x752C
+0xE9C6 0x8073
+0xE9C7 0x8338
+0xE9C8 0x84C9
+0xE9C9 0x8E0A
+0xE9CA 0x9394
+0xE9CB 0x93DE
+0xE9CC 0xF9C4
+0xE9CD 0x4E8E
+0xE9CE 0x4F51
+0xE9CF 0x5076
+0xE9D0 0x512A
+0xE9D1 0x53C8
+0xE9D2 0x53CB
+0xE9D3 0x53F3
+0xE9D4 0x5B87
+0xE9D5 0x5BD3
+0xE9D6 0x5C24
+0xE9D7 0x611A
+0xE9D8 0x6182
+0xE9D9 0x65F4
+0xE9DA 0x725B
+0xE9DB 0x7397
+0xE9DC 0x7440
+0xE9DD 0x76C2
+0xE9DE 0x7950
+0xE9DF 0x7991
+0xE9E0 0x79B9
+0xE9E1 0x7D06
+0xE9E2 0x7FBD
+0xE9E3 0x828B
+0xE9E4 0x85D5
+0xE9E5 0x865E
+0xE9E6 0x8FC2
+0xE9E7 0x9047
+0xE9E8 0x90F5
+0xE9E9 0x91EA
+0xE9EA 0x9685
+0xE9EB-0xE9EC 0x96E8
+0xE9ED 0x52D6
+0xE9EE 0x5F67
+0xE9EF 0x65ED
+0xE9F0 0x6631
+0xE9F1 0x682F
+0xE9F2 0x715C
+0xE9F3 0x7A36
+0xE9F4 0x90C1
+0xE9F5 0x980A
+0xE9F6 0x4E91
+0xE9F7 0xF9C5
+0xE9F8 0x6A52
+0xE9F9 0x6B9E
+0xE9FA 0x6F90
+0xE9FB 0x7189
+0xE9FC 0x8018
+0xE9FD 0x82B8
+0xE9FE 0x8553
+0xEAA1 0x904B
+0xEAA2 0x9695
+0xEAA3 0x96F2
+0xEAA4 0x97FB
+0xEAA5 0x851A
+0xEAA6 0x9B31
+0xEAA7 0x4E90
+0xEAA8 0x718A
+0xEAA9 0x96C4
+0xEAAA 0x5143
+0xEAAB 0x539F
+0xEAAC 0x54E1
+0xEAAD 0x5713
+0xEAAE 0x5712
+0xEAAF 0x57A3
+0xEAB0 0x5A9B
+0xEAB1 0x5AC4
+0xEAB2 0x5BC3
+0xEAB3 0x6028
+0xEAB4 0x613F
+0xEAB5 0x63F4
+0xEAB6 0x6C85
+0xEAB7 0x6D39
+0xEAB8 0x6E72
+0xEAB9 0x6E90
+0xEABA 0x7230
+0xEABB 0x733F
+0xEABC 0x7457
+0xEABD 0x82D1
+0xEABE 0x8881
+0xEABF 0x8F45
+0xEAC0 0x9060
+0xEAC1 0xF9C6
+0xEAC2 0x9662
+0xEAC3 0x9858
+0xEAC4 0x9D1B
+0xEAC5 0x6708
+0xEAC6 0x8D8A
+0xEAC7 0x925E
+0xEAC8 0x4F4D
+0xEAC9 0x5049
+0xEACA 0x50DE
+0xEACB 0x5371
+0xEACC 0x570D
+0xEACD 0x59D4
+0xEACE 0x5A01
+0xEACF 0x5C09
+0xEAD0 0x6170
+0xEAD1 0x6690
+0xEAD2 0x6E2D
+0xEAD3 0x7232
+0xEAD4 0x744B
+0xEAD5 0x7DEF
+0xEAD6 0x80C3
+0xEAD7 0x840E
+0xEAD8 0x8466
+0xEAD9 0x853F
+0xEADA 0x875F
+0xEADB 0x885B
+0xEADC 0x8918
+0xEADD 0x8B02
+0xEADE 0x9055
+0xEADF 0x97CB
+0xEAE0 0x9B4F
+0xEAE1 0x4E73
+0xEAE2 0x4F91
+0xEAE3 0x5112
+0xEAE4 0x516A
+0xEAE5 0xF9C7
+0xEAE6 0x552F
+0xEAE7 0x55A9
+0xEAE8 0x5B7A
+0xEAE9 0x5BA5
+0xEAEA-0xEAEB 0x5E7C
+0xEAEC 0x5EBE
+0xEAED 0x60A0
+0xEAEE 0x60DF
+0xEAEF-0xEAF0 0x6108
+0xEAF1 0x63C4
+0xEAF2 0x6538
+0xEAF3 0x6709
+0xEAF4 0xF9C8
+0xEAF5 0x67D4
+0xEAF6 0x67DA
+0xEAF7 0xF9C9
+0xEAF8-0xEAF9 0x6961
+0xEAFA 0x6CB9
+0xEAFB 0x6D27
+0xEAFC 0xF9CA
+0xEAFD 0x6E38
+0xEAFE 0xF9CB
+0xEBA1 0x6FE1
+0xEBA2-0xEBA3 0x7336
+0xEBA4 0xF9CC
+0xEBA5 0x745C
+0xEBA6 0x7531
+0xEBA7 0xF9CD
+0xEBA8 0x7652
+0xEBA9-0xEBAA 0xF9CE
+0xEBAB 0x7DAD
+0xEBAC 0x81FE
+0xEBAD 0x8438
+0xEBAE 0x88D5
+0xEBAF 0x8A98
+0xEBB0 0x8ADB
+0xEBB1 0x8AED
+0xEBB2 0x8E30
+0xEBB3 0x8E42
+0xEBB4 0x904A
+0xEBB5 0x903E
+0xEBB6 0x907A
+0xEBB7 0x9149
+0xEBB8 0x91C9
+0xEBB9 0x936E
+0xEBBA-0xEBBB 0xF9D0
+0xEBBC 0x5809
+0xEBBD 0xF9D2
+0xEBBE 0x6BD3
+0xEBBF 0x8089
+0xEBC0 0x80B2
+0xEBC1-0xEBC2 0xF9D3
+0xEBC3 0x5141
+0xEBC4 0x596B
+0xEBC5 0x5C39
+0xEBC6-0xEBC7 0xF9D5
+0xEBC8 0x6F64
+0xEBC9 0x73A7
+0xEBCA 0x80E4
+0xEBCB 0x8D07
+0xEBCC 0xF9D7
+0xEBCD 0x9217
+0xEBCE 0x958F
+0xEBCF-0xEBD2 0xF9D8
+0xEBD3 0x807F
+0xEBD4 0x620E
+0xEBD5 0x701C
+0xEBD6 0x7D68
+0xEBD7 0x878D
+0xEBD8 0xF9DC
+0xEBD9 0x57A0
+0xEBDA 0x6069
+0xEBDB 0x6147
+0xEBDC 0x6BB7
+0xEBDD 0x8ABE
+0xEBDE 0x9280
+0xEBDF 0x96B1
+0xEBE0 0x4E59
+0xEBE1 0x541F
+0xEBE2 0x6DEB
+0xEBE3 0x852D
+0xEBE4 0x9670
+0xEBE5 0x97F3
+0xEBE6 0x98EE
+0xEBE7 0x63D6
+0xEBE8 0x6CE3
+0xEBE9 0x9091
+0xEBEA 0x51DD
+0xEBEB 0x61C9
+0xEBEC 0x81BA
+0xEBED 0x9DF9
+0xEBEE 0x4F9D
+0xEBEF 0x501A
+0xEBF0 0x5100
+0xEBF1 0x5B9C
+0xEBF2 0x610F
+0xEBF3 0x61FF
+0xEBF4 0x64EC
+0xEBF5 0x6905
+0xEBF6 0x6BC5
+0xEBF7 0x7591
+0xEBF8 0x77E3
+0xEBF9 0x7FA9
+0xEBFA 0x8264
+0xEBFB 0x858F
+0xEBFC 0x87FB
+0xEBFD 0x8863
+0xEBFE 0x8ABC
+0xECA1 0x8B70
+0xECA2 0x91AB
+0xECA3 0x4E8C
+0xECA4 0x4EE5
+0xECA5 0x4F0A
+0xECA6-0xECA7 0xF9DD
+0xECA8 0x5937
+0xECA9 0x59E8
+0xECAA 0xF9DF
+0xECAB 0x5DF2
+0xECAC 0x5F1B
+0xECAD 0x5F5B
+0xECAE 0x6021
+0xECAF-0xECB2 0xF9E0
+0xECB3 0x723E
+0xECB4 0x73E5
+0xECB5 0xF9E4
+0xECB6 0x7570
+0xECB7 0x75CD
+0xECB8 0xF9E5
+0xECB9 0x79FB
+0xECBA 0xF9E6
+0xECBB 0x800C
+0xECBC 0x8033
+0xECBD 0x8084
+0xECBE 0x82E1
+0xECBF 0x8351
+0xECC0-0xECC1 0xF9E7
+0xECC2 0x8CBD
+0xECC3 0x8CB3
+0xECC4 0x9087
+0xECC5-0xECC6 0xF9E9
+0xECC7 0x98F4
+0xECC8 0x990C
+0xECC9-0xECCA 0xF9EB
+0xECCB 0x7037
+0xECCC 0x76CA
+0xECCD 0x7FCA
+0xECCE 0x7FCC
+0xECCF 0x7FFC
+0xECD0 0x8B1A
+0xECD1 0x4EBA
+0xECD2 0x4EC1
+0xECD3 0x5203
+0xECD4 0x5370
+0xECD5 0xF9ED
+0xECD6 0x54BD
+0xECD7 0x56E0
+0xECD8 0x59FB
+0xECD9 0x5BC5
+0xECDA 0x5F15
+0xECDB 0x5FCD
+0xECDC 0x6E6E
+0xECDD-0xECDE 0xF9EE
+0xECDF 0x7D6A
+0xECE0 0x8335
+0xECE1 0xF9F0
+0xECE2 0x8693
+0xECE3 0x8A8D
+0xECE4 0xF9F1
+0xECE5 0x976D
+0xECE6 0x9777
+0xECE7-0xECE8 0xF9F2
+0xECE9 0x4E00
+0xECEA 0x4F5A
+0xECEB 0x4F7E
+0xECEC 0x58F9
+0xECED 0x65E5
+0xECEE 0x6EA2
+0xECEF 0x9038
+0xECF0 0x93B0
+0xECF1 0x99B9
+0xECF2 0x4EFB
+0xECF3 0x58EC
+0xECF4 0x598A
+0xECF5 0x59D9
+0xECF6 0x6041
+0xECF7-0xECF8 0xF9F4
+0xECF9 0x7A14
+0xECFA 0xF9F6
+0xECFB 0x834F
+0xECFC 0x8CC3
+0xECFD 0x5165
+0xECFE 0x5344
+0xEDA1-0xEDA3 0xF9F7
+0xEDA4 0x4ECD
+0xEDA5 0x5269
+0xEDA6 0x5B55
+0xEDA7 0x82BF
+0xEDA8 0x4ED4
+0xEDA9 0x523A
+0xEDAA 0x54A8
+0xEDAB 0x59C9
+0xEDAC 0x59FF
+0xEDAD 0x5B50
+0xEDAE 0x5B57
+0xEDAF 0x5B5C
+0xEDB0 0x6063
+0xEDB1 0x6148
+0xEDB2 0x6ECB
+0xEDB3 0x7099
+0xEDB4 0x716E
+0xEDB5 0x7386
+0xEDB6 0x74F7
+0xEDB7 0x75B5
+0xEDB8 0x78C1
+0xEDB9 0x7D2B
+0xEDBA 0x8005
+0xEDBB 0x81EA
+0xEDBC 0x8328
+0xEDBD 0x8517
+0xEDBE 0x85C9
+0xEDBF 0x8AEE
+0xEDC0 0x8CC7
+0xEDC1 0x96CC
+0xEDC2 0x4F5C
+0xEDC3 0x52FA
+0xEDC4 0x56BC
+0xEDC5 0x65AB
+0xEDC6 0x6628
+0xEDC7 0x707C
+0xEDC8 0x70B8
+0xEDC9 0x7235
+0xEDCA 0x7DBD
+0xEDCB 0x828D
+0xEDCC 0x914C
+0xEDCD 0x96C0
+0xEDCE 0x9D72
+0xEDCF 0x5B71
+0xEDD0 0x68E7
+0xEDD1 0x6B98
+0xEDD2 0x6F7A
+0xEDD3 0x76DE
+0xEDD4 0x5C91
+0xEDD5 0x66AB
+0xEDD6 0x6F5B
+0xEDD7 0x7BB4
+0xEDD8 0x7C2A
+0xEDD9 0x8836
+0xEDDA 0x96DC
+0xEDDB 0x4E08
+0xEDDC 0x4ED7
+0xEDDD 0x5320
+0xEDDE 0x5834
+0xEDDF 0x58BB
+0xEDE0 0x58EF
+0xEDE1 0x596C
+0xEDE2 0x5C07
+0xEDE3 0x5E33
+0xEDE4 0x5E84
+0xEDE5 0x5F35
+0xEDE6 0x638C
+0xEDE7 0x66B2
+0xEDE8 0x6756
+0xEDE9 0x6A1F
+0xEDEA 0x6AA3
+0xEDEB 0x6B0C
+0xEDEC 0x6F3F
+0xEDED 0x7246
+0xEDEE 0xF9FA
+0xEDEF 0x7350
+0xEDF0 0x748B
+0xEDF1 0x7AE0
+0xEDF2 0x7CA7
+0xEDF3 0x8178
+0xEDF4 0x81DF
+0xEDF5 0x81E7
+0xEDF6 0x838A
+0xEDF7 0x846C
+0xEDF8 0x8523
+0xEDF9 0x8594
+0xEDFA 0x85CF
+0xEDFB 0x88DD
+0xEDFC 0x8D13
+0xEDFD 0x91AC
+0xEDFE 0x9577
+0xEEA1 0x969C
+0xEEA2 0x518D
+0xEEA3 0x54C9
+0xEEA4 0x5728
+0xEEA5 0x5BB0
+0xEEA6 0x624D
+0xEEA7 0x6750
+0xEEA8 0x683D
+0xEEA9 0x6893
+0xEEAA 0x6E3D
+0xEEAB 0x6ED3
+0xEEAC 0x707D
+0xEEAD 0x7E21
+0xEEAE 0x88C1
+0xEEAF 0x8CA1
+0xEEB0 0x8F09
+0xEEB1 0x9F4B
+0xEEB2 0x9F4E
+0xEEB3 0x722D
+0xEEB4 0x7B8F
+0xEEB5 0x8ACD
+0xEEB6 0x931A
+0xEEB7 0x4F47
+0xEEB8 0x4F4E
+0xEEB9 0x5132
+0xEEBA 0x5480
+0xEEBB 0x59D0
+0xEEBC 0x5E95
+0xEEBD 0x62B5
+0xEEBE 0x6775
+0xEEBF 0x696E
+0xEEC0 0x6A17
+0xEEC1 0x6CAE
+0xEEC2 0x6E1A
+0xEEC3 0x72D9
+0xEEC4 0x732A
+0xEEC5 0x75BD
+0xEEC6 0x7BB8
+0xEEC7 0x7D35
+0xEEC8 0x82E7
+0xEEC9 0x83F9
+0xEECA 0x8457
+0xEECB 0x85F7
+0xEECC 0x8A5B
+0xEECD 0x8CAF
+0xEECE 0x8E87
+0xEECF 0x9019
+0xEED0 0x90B8
+0xEED1 0x96CE
+0xEED2 0x9F5F
+0xEED3 0x52E3
+0xEED4 0x540A
+0xEED5 0x5AE1
+0xEED6 0x5BC2
+0xEED7 0x6458
+0xEED8 0x6575
+0xEED9 0x6EF4
+0xEEDA 0x72C4
+0xEEDB 0xF9FB
+0xEEDC 0x7684
+0xEEDD 0x7A4D
+0xEEDE 0x7B1B
+0xEEDF 0x7C4D
+0xEEE0 0x7E3E
+0xEEE1 0x7FDF
+0xEEE2 0x837B
+0xEEE3 0x8B2B
+0xEEE4 0x8CCA
+0xEEE5 0x8D64
+0xEEE6 0x8DE1
+0xEEE7 0x8E5F
+0xEEE8 0x8FEA
+0xEEE9 0x8FF9
+0xEEEA 0x9069
+0xEEEB 0x93D1
+0xEEEC 0x4F43
+0xEEED 0x4F7A
+0xEEEE 0x50B3
+0xEEEF 0x5168
+0xEEF0 0x5178
+0xEEF1 0x524D
+0xEEF2 0x526A
+0xEEF3 0x5861
+0xEEF4 0x587C
+0xEEF5 0x5960
+0xEEF6 0x5C08
+0xEEF7 0x5C55
+0xEEF8 0x5EDB
+0xEEF9 0x609B
+0xEEFA 0x6230
+0xEEFB 0x6813
+0xEEFC 0x6BBF
+0xEEFD 0x6C08
+0xEEFE 0x6FB1
+0xEFA1 0x714E
+0xEFA2 0x7420
+0xEFA3 0x7530
+0xEFA4 0x7538
+0xEFA5 0x7551
+0xEFA6 0x7672
+0xEFA7 0x7B4C
+0xEFA8 0x7B8B
+0xEFA9 0x7BAD
+0xEFAA 0x7BC6
+0xEFAB 0x7E8F
+0xEFAC 0x8A6E
+0xEFAD 0x8F3E
+0xEFAE 0x8F49
+0xEFAF 0x923F
+0xEFB0 0x9293
+0xEFB1 0x9322
+0xEFB2 0x942B
+0xEFB3 0x96FB
+0xEFB4 0x985A
+0xEFB5 0x986B
+0xEFB6 0x991E
+0xEFB7 0x5207
+0xEFB8 0x622A
+0xEFB9 0x6298
+0xEFBA 0x6D59
+0xEFBB 0x7664
+0xEFBC 0x7ACA
+0xEFBD 0x7BC0
+0xEFBE 0x7D76
+0xEFBF 0x5360
+0xEFC0 0x5CBE
+0xEFC1 0x5E97
+0xEFC2 0x6F38
+0xEFC3 0x70B9
+0xEFC4 0x7C98
+0xEFC5 0x9711
+0xEFC6 0x9B8E
+0xEFC7 0x9EDE
+0xEFC8 0x63A5
+0xEFC9 0x647A
+0xEFCA 0x8776
+0xEFCB 0x4E01
+0xEFCC 0x4E95
+0xEFCD 0x4EAD
+0xEFCE 0x505C
+0xEFCF 0x5075
+0xEFD0 0x5448
+0xEFD1 0x59C3
+0xEFD2 0x5B9A
+0xEFD3 0x5E40
+0xEFD4 0x5EAD
+0xEFD5 0x5EF7
+0xEFD6 0x5F81
+0xEFD7 0x60C5
+0xEFD8 0x633A
+0xEFD9 0x653F
+0xEFDA 0x6574
+0xEFDB 0x65CC
+0xEFDC 0x6676
+0xEFDD 0x6678
+0xEFDE 0x67FE
+0xEFDF 0x6968
+0xEFE0 0x6A89
+0xEFE1 0x6B63
+0xEFE2 0x6C40
+0xEFE3 0x6DC0
+0xEFE4 0x6DE8
+0xEFE5 0x6E1F
+0xEFE6 0x6E5E
+0xEFE7 0x701E
+0xEFE8 0x70A1
+0xEFE9 0x738E
+0xEFEA 0x73FD
+0xEFEB 0x753A
+0xEFEC 0x775B
+0xEFED 0x7887
+0xEFEE 0x798E
+0xEFEF 0x7A0B
+0xEFF0 0x7A7D
+0xEFF1 0x7CBE
+0xEFF2 0x7D8E
+0xEFF3 0x8247
+0xEFF4 0x8A02
+0xEFF5 0x8AEA
+0xEFF6 0x8C9E
+0xEFF7 0x912D
+0xEFF8 0x914A
+0xEFF9 0x91D8
+0xEFFA 0x9266
+0xEFFB 0x92CC
+0xEFFC 0x9320
+0xEFFD 0x9706
+0xEFFE 0x9756
+0xF0A1 0x975C
+0xF0A2 0x9802
+0xF0A3 0x9F0E
+0xF0A4 0x5236
+0xF0A5 0x5291
+0xF0A6 0x557C
+0xF0A7 0x5824
+0xF0A8 0x5E1D
+0xF0A9 0x5F1F
+0xF0AA 0x608C
+0xF0AB 0x63D0
+0xF0AC 0x68AF
+0xF0AD 0x6FDF
+0xF0AE 0x796D
+0xF0AF 0x7B2C
+0xF0B0 0x81CD
+0xF0B1 0x85BA
+0xF0B2 0x88FD
+0xF0B3 0x8AF8
+0xF0B4 0x8E44
+0xF0B5 0x918D
+0xF0B6 0x9664
+0xF0B7 0x969B
+0xF0B8 0x973D
+0xF0B9 0x984C
+0xF0BA 0x9F4A
+0xF0BB 0x4FCE
+0xF0BC 0x5146
+0xF0BD 0x51CB
+0xF0BE 0x52A9
+0xF0BF 0x5632
+0xF0C0 0x5F14
+0xF0C1 0x5F6B
+0xF0C2 0x63AA
+0xF0C3 0x64CD
+0xF0C4 0x65E9
+0xF0C5 0x6641
+0xF0C6 0x66FA
+0xF0C7 0x66F9
+0xF0C8 0x671D
+0xF0C9 0x689D
+0xF0CA 0x68D7
+0xF0CB 0x69FD
+0xF0CC 0x6F15
+0xF0CD 0x6F6E
+0xF0CE 0x7167
+0xF0CF 0x71E5
+0xF0D0 0x722A
+0xF0D1 0x74AA
+0xF0D2 0x773A
+0xF0D3 0x7956
+0xF0D4 0x795A
+0xF0D5 0x79DF
+0xF0D6 0x7A20
+0xF0D7 0x7A95
+0xF0D8 0x7C97
+0xF0D9 0x7CDF
+0xF0DA 0x7D44
+0xF0DB 0x7E70
+0xF0DC 0x8087
+0xF0DD 0x85FB
+0xF0DE 0x86A4
+0xF0DF 0x8A54
+0xF0E0 0x8ABF
+0xF0E1 0x8D99
+0xF0E2 0x8E81
+0xF0E3 0x9020
+0xF0E4 0x906D
+0xF0E5 0x91E3
+0xF0E6 0x963B
+0xF0E7 0x96D5
+0xF0E8 0x9CE5
+0xF0E9 0x65CF
+0xF0EA 0x7C07
+0xF0EB 0x8DB3
+0xF0EC 0x93C3
+0xF0ED 0x5B58
+0xF0EE 0x5C0A
+0xF0EF 0x5352
+0xF0F0 0x62D9
+0xF0F1 0x731D
+0xF0F2 0x5027
+0xF0F3 0x5B97
+0xF0F4 0x5F9E
+0xF0F5 0x60B0
+0xF0F6 0x616B
+0xF0F7 0x68D5
+0xF0F8 0x6DD9
+0xF0F9 0x742E
+0xF0FA 0x7A2E
+0xF0FB 0x7D42
+0xF0FC 0x7D9C
+0xF0FD 0x7E31
+0xF0FE 0x816B
+0xF1A1 0x8E2A
+0xF1A2 0x8E35
+0xF1A3 0x937E
+0xF1A4 0x9418
+0xF1A5 0x4F50
+0xF1A6 0x5750
+0xF1A7 0x5DE6
+0xF1A8 0x5EA7
+0xF1A9 0x632B
+0xF1AA 0x7F6A
+0xF1AB 0x4E3B
+0xF1AC 0x4F4F
+0xF1AD 0x4F8F
+0xF1AE 0x505A
+0xF1AF 0x59DD
+0xF1B0 0x80C4
+0xF1B1 0x546A
+0xF1B2 0x5468
+0xF1B3 0x55FE
+0xF1B4 0x594F
+0xF1B5 0x5B99
+0xF1B6 0x5DDE
+0xF1B7 0x5EDA
+0xF1B8 0x665D
+0xF1B9 0x6731
+0xF1BA 0x67F1
+0xF1BB 0x682A
+0xF1BC 0x6CE8
+0xF1BD 0x6D32
+0xF1BE 0x6E4A
+0xF1BF 0x6F8D
+0xF1C0 0x70B7
+0xF1C1 0x73E0
+0xF1C2 0x7587
+0xF1C3 0x7C4C
+0xF1C4 0x7D02
+0xF1C5 0x7D2C
+0xF1C6 0x7DA2
+0xF1C7 0x821F
+0xF1C8 0x86DB
+0xF1C9 0x8A3B
+0xF1CA 0x8A85
+0xF1CB 0x8D70
+0xF1CC 0x8E8A
+0xF1CD 0x8F33
+0xF1CE 0x9031
+0xF1CF 0x914E
+0xF1D0 0x9152
+0xF1D1 0x9444
+0xF1D2 0x99D0
+0xF1D3 0x7AF9
+0xF1D4 0x7CA5
+0xF1D5 0x4FCA
+0xF1D6 0x5101
+0xF1D7 0x51C6
+0xF1D8 0x57C8
+0xF1D9 0x5BEF
+0xF1DA 0x5CFB
+0xF1DB 0x6659
+0xF1DC 0x6A3D
+0xF1DD 0x6D5A
+0xF1DE 0x6E96
+0xF1DF 0x6FEC
+0xF1E0 0x710C
+0xF1E1 0x756F
+0xF1E2 0x7AE3
+0xF1E3 0x8822
+0xF1E4 0x9021
+0xF1E5 0x9075
+0xF1E6 0x96CB
+0xF1E7 0x99FF
+0xF1E8 0x8301
+0xF1E9 0x4E2D
+0xF1EA 0x4EF2
+0xF1EB 0x8846
+0xF1EC 0x91CD
+0xF1ED 0x537D
+0xF1EE 0x6ADB
+0xF1EF 0x696B
+0xF1F0 0x6C41
+0xF1F1 0x847A
+0xF1F2 0x589E
+0xF1F3 0x618E
+0xF1F4 0x66FE
+0xF1F5 0x62EF
+0xF1F6 0x70DD
+0xF1F7 0x7511
+0xF1F8 0x75C7
+0xF1F9 0x7E52
+0xF1FA 0x84B8
+0xF1FB 0x8B49
+0xF1FC 0x8D08
+0xF1FD 0x4E4B
+0xF1FE 0x53EA
+0xF2A1 0x54AB
+0xF2A2 0x5730
+0xF2A3 0x5740
+0xF2A4 0x5FD7
+0xF2A5 0x6301
+0xF2A6 0x6307
+0xF2A7 0x646F
+0xF2A8 0x652F
+0xF2A9 0x65E8
+0xF2AA 0x667A
+0xF2AB 0x679D
+0xF2AC 0x67B3
+0xF2AD 0x6B62
+0xF2AE 0x6C60
+0xF2AF 0x6C9A
+0xF2B0 0x6F2C
+0xF2B1 0x77E5
+0xF2B2 0x7825
+0xF2B3 0x7949
+0xF2B4 0x7957
+0xF2B5 0x7D19
+0xF2B6 0x80A2
+0xF2B7 0x8102
+0xF2B8 0x81F3
+0xF2B9 0x829D
+0xF2BA 0x82B7
+0xF2BB 0x8718
+0xF2BC 0x8A8C
+0xF2BD 0xF9FC
+0xF2BE 0x8D04
+0xF2BF 0x8DBE
+0xF2C0 0x9072
+0xF2C1 0x76F4
+0xF2C2 0x7A19
+0xF2C3 0x7A37
+0xF2C4 0x7E54
+0xF2C5 0x8077
+0xF2C6 0x5507
+0xF2C7 0x55D4
+0xF2C8 0x5875
+0xF2C9 0x632F
+0xF2CA 0x6422
+0xF2CB 0x6649
+0xF2CC 0x664B
+0xF2CD 0x686D
+0xF2CE 0x699B
+0xF2CF 0x6B84
+0xF2D0 0x6D25
+0xF2D1 0x6EB1
+0xF2D2 0x73CD
+0xF2D3 0x7468
+0xF2D4 0x74A1
+0xF2D5 0x755B
+0xF2D6 0x75B9
+0xF2D7 0x76E1
+0xF2D8 0x771E
+0xF2D9 0x778B
+0xF2DA 0x79E6
+0xF2DB 0x7E09
+0xF2DC 0x7E1D
+0xF2DD 0x81FB
+0xF2DE 0x852F
+0xF2DF 0x8897
+0xF2E0 0x8A3A
+0xF2E1 0x8CD1
+0xF2E2 0x8EEB
+0xF2E3 0x8FB0
+0xF2E4 0x9032
+0xF2E5 0x93AD
+0xF2E6 0x9663
+0xF2E7 0x9673
+0xF2E8 0x9707
+0xF2E9 0x4F84
+0xF2EA 0x53F1
+0xF2EB 0x59EA
+0xF2EC 0x5AC9
+0xF2ED 0x5E19
+0xF2EE 0x684E
+0xF2EF 0x74C6
+0xF2F0 0x75BE
+0xF2F1 0x79E9
+0xF2F2 0x7A92
+0xF2F3 0x81A3
+0xF2F4 0x86ED
+0xF2F5 0x8CEA
+0xF2F6 0x8DCC
+0xF2F7 0x8FED
+0xF2F8 0x659F
+0xF2F9 0x6715
+0xF2FA 0xF9FD
+0xF2FB 0x57F7
+0xF2FC 0x6F57
+0xF2FD 0x7DDD
+0xF2FE 0x8F2F
+0xF3A1 0x93F6
+0xF3A2 0x96C6
+0xF3A3 0x5FB5
+0xF3A4 0x61F2
+0xF3A5 0x6F84
+0xF3A6 0x4E14
+0xF3A7 0x4F98
+0xF3A8 0x501F
+0xF3A9 0x53C9
+0xF3AA 0x55DF
+0xF3AB 0x5D6F
+0xF3AC 0x5DEE
+0xF3AD 0x6B21
+0xF3AE 0x6B64
+0xF3AF 0x78CB
+0xF3B0 0x7B9A
+0xF3B1 0xF9FE
+0xF3B2 0x8E49
+0xF3B3 0x8ECA
+0xF3B4 0x906E
+0xF3B5 0x6349
+0xF3B6 0x643E
+0xF3B7 0x7740
+0xF3B8 0x7A84
+0xF3B9 0x932F
+0xF3BA 0x947F
+0xF3BB 0x9F6A
+0xF3BC 0x64B0
+0xF3BD 0x6FAF
+0xF3BE 0x71E6
+0xF3BF 0x74A8
+0xF3C0 0x74DA
+0xF3C1 0x7AC4
+0xF3C2 0x7C12
+0xF3C3 0x7E82
+0xF3C4 0x7CB2
+0xF3C5 0x7E98
+0xF3C6 0x8B9A
+0xF3C7 0x8D0A
+0xF3C8 0x947D
+0xF3C9 0x9910
+0xF3CA 0x994C
+0xF3CB 0x5239
+0xF3CC 0x5BDF
+0xF3CD 0x64E6
+0xF3CE 0x672D
+0xF3CF 0x7D2E
+0xF3D0 0x50ED
+0xF3D1 0x53C3
+0xF3D2 0x5879
+0xF3D3-0xF3D4 0x6158
+0xF3D5 0x61FA
+0xF3D6 0x65AC
+0xF3D7 0x7AD9
+0xF3D8 0x8B92
+0xF3D9 0x8B96
+0xF3DA 0x5009
+0xF3DB 0x5021
+0xF3DC 0x5275
+0xF3DD 0x5531
+0xF3DE 0x5A3C
+0xF3DF 0x5EE0
+0xF3E0 0x5F70
+0xF3E1 0x6134
+0xF3E2 0x655E
+0xF3E3 0x660C
+0xF3E4 0x6636
+0xF3E5 0x66A2
+0xF3E6 0x69CD
+0xF3E7 0x6EC4
+0xF3E8 0x6F32
+0xF3E9 0x7316
+0xF3EA 0x7621
+0xF3EB 0x7A93
+0xF3EC 0x8139
+0xF3ED 0x8259
+0xF3EE 0x83D6
+0xF3EF 0x84BC
+0xF3F0 0x50B5
+0xF3F1 0x57F0
+0xF3F2 0x5BC0
+0xF3F3 0x5BE8
+0xF3F4 0x5F69
+0xF3F5 0x63A1
+0xF3F6 0x7826
+0xF3F7 0x7DB5
+0xF3F8 0x83DC
+0xF3F9 0x8521
+0xF3FA 0x91C7
+0xF3FB 0x91F5
+0xF3FC 0x518A
+0xF3FD 0x67F5
+0xF3FE 0x7B56
+0xF4A1 0x8CAC
+0xF4A2 0x51C4
+0xF4A3 0x59BB
+0xF4A4 0x60BD
+0xF4A5 0x8655
+0xF4A6 0x501C
+0xF4A7 0xF9FF
+0xF4A8 0x5254
+0xF4A9 0x5C3A
+0xF4AA 0x617D
+0xF4AB 0x621A
+0xF4AC 0x62D3
+0xF4AD 0x64F2
+0xF4AE 0x65A5
+0xF4AF 0x6ECC
+0xF4B0 0x7620
+0xF4B1 0x810A
+0xF4B2 0x8E60
+0xF4B3 0x965F
+0xF4B4 0x96BB
+0xF4B5 0x4EDF
+0xF4B6 0x5343
+0xF4B7 0x5598
+0xF4B8 0x5929
+0xF4B9 0x5DDD
+0xF4BA 0x64C5
+0xF4BB 0x6CC9
+0xF4BC 0x6DFA
+0xF4BD 0x7394
+0xF4BE 0x7A7F
+0xF4BF 0x821B
+0xF4C0 0x85A6
+0xF4C1 0x8CE4
+0xF4C2 0x8E10
+0xF4C3 0x9077
+0xF4C4 0x91E7
+0xF4C5 0x95E1
+0xF4C6 0x9621
+0xF4C7 0x97C6
+0xF4C8 0x51F8
+0xF4C9 0x54F2
+0xF4CA 0x5586
+0xF4CB 0x5FB9
+0xF4CC 0x64A4
+0xF4CD 0x6F88
+0xF4CE 0x7DB4
+0xF4CF 0x8F1F
+0xF4D0 0x8F4D
+0xF4D1 0x9435
+0xF4D2 0x50C9
+0xF4D3 0x5C16
+0xF4D4 0x6CBE
+0xF4D5 0x6DFB
+0xF4D6 0x751B
+0xF4D7 0x77BB
+0xF4D8 0x7C3D
+0xF4D9 0x7C64
+0xF4DA 0x8A79
+0xF4DB 0x8AC2
+0xF4DC 0x581E
+0xF4DD 0x59BE
+0xF4DE 0x5E16
+0xF4DF 0x6377
+0xF4E0 0x7252
+0xF4E1 0x758A
+0xF4E2 0x776B
+0xF4E3 0x8ADC
+0xF4E4 0x8CBC
+0xF4E5 0x8F12
+0xF4E6 0x5EF3
+0xF4E7 0x6674
+0xF4E8 0x6DF8
+0xF4E9 0x807D
+0xF4EA 0x83C1
+0xF4EB 0x8ACB
+0xF4EC 0x9751
+0xF4ED 0x9BD6
+0xF4EE 0xFA00
+0xF4EF 0x5243
+0xF4F0 0x66FF
+0xF4F1 0x6D95
+0xF4F2 0x6EEF
+0xF4F3 0x7DE0
+0xF4F4 0x8AE6
+0xF4F5 0x902E
+0xF4F6 0x905E
+0xF4F7 0x9AD4
+0xF4F8 0x521D
+0xF4F9 0x527F
+0xF4FA 0x54E8
+0xF4FB 0x6194
+0xF4FC 0x6284
+0xF4FD 0x62DB
+0xF4FE 0x68A2
+0xF5A1 0x6912
+0xF5A2 0x695A
+0xF5A3 0x6A35
+0xF5A4 0x7092
+0xF5A5 0x7126
+0xF5A6 0x785D
+0xF5A7 0x7901
+0xF5A8 0x790E
+0xF5A9 0x79D2
+0xF5AA 0x7A0D
+0xF5AB 0x8096
+0xF5AC 0x8278
+0xF5AD 0x82D5
+0xF5AE 0x8349
+0xF5AF 0x8549
+0xF5B0 0x8C82
+0xF5B1 0x8D85
+0xF5B2 0x9162
+0xF5B3 0x918B
+0xF5B4 0x91AE
+0xF5B5 0x4FC3
+0xF5B6 0x56D1
+0xF5B7 0x71ED
+0xF5B8 0x77D7
+0xF5B9 0x8700
+0xF5BA 0x89F8
+0xF5BB 0x5BF8
+0xF5BC 0x5FD6
+0xF5BD 0x6751
+0xF5BE 0x90A8
+0xF5BF 0x53E2
+0xF5C0 0x585A
+0xF5C1 0x5BF5
+0xF5C2 0x60A4
+0xF5C3 0x6181
+0xF5C4 0x6460
+0xF5C5 0x7E3D
+0xF5C6 0x8070
+0xF5C7 0x8525
+0xF5C8 0x9283
+0xF5C9 0x64AE
+0xF5CA 0x50AC
+0xF5CB 0x5D14
+0xF5CC 0x6700
+0xF5CD 0x589C
+0xF5CE 0x62BD
+0xF5CF 0x63A8
+0xF5D0 0x690E
+0xF5D1 0x6978
+0xF5D2 0x6A1E
+0xF5D3 0x6E6B
+0xF5D4 0x76BA
+0xF5D5 0x79CB
+0xF5D6 0x82BB
+0xF5D7 0x8429
+0xF5D8 0x8ACF
+0xF5D9 0x8DA8
+0xF5DA 0x8FFD
+0xF5DB 0x9112
+0xF5DC 0x914B
+0xF5DD 0x919C
+0xF5DE 0x9310
+0xF5DF 0x9318
+0xF5E0 0x939A
+0xF5E1 0x96DB
+0xF5E2 0x9A36
+0xF5E3 0x9C0D
+0xF5E4 0x4E11
+0xF5E5 0x755C
+0xF5E6 0x795D
+0xF5E7 0x7AFA
+0xF5E8 0x7B51
+0xF5E9 0x7BC9
+0xF5EA 0x7E2E
+0xF5EB 0x84C4
+0xF5EC 0x8E59
+0xF5ED 0x8E74
+0xF5EE 0x8EF8
+0xF5EF 0x9010
+0xF5F0 0x6625
+0xF5F1 0x693F
+0xF5F2 0x7443
+0xF5F3 0x51FA
+0xF5F4 0x672E
+0xF5F5 0x9EDC
+0xF5F6 0x5145
+0xF5F7 0x5FE0
+0xF5F8 0x6C96
+0xF5F9 0x87F2
+0xF5FA 0x885D
+0xF5FB 0x8877
+0xF5FC 0x60B4
+0xF5FD 0x81B5
+0xF5FE 0x8403
+0xF6A1 0x8D05
+0xF6A2 0x53D6
+0xF6A3 0x5439
+0xF6A4 0x5634
+0xF6A5 0x5A36
+0xF6A6 0x5C31
+0xF6A7 0x708A
+0xF6A8 0x7FE0
+0xF6A9 0x805A
+0xF6AA 0x8106
+0xF6AB 0x81ED
+0xF6AC 0x8DA3
+0xF6AD 0x9189
+0xF6AE 0x9A5F
+0xF6AF 0x9DF2
+0xF6B0 0x5074
+0xF6B1 0x4EC4
+0xF6B2 0x53A0
+0xF6B3 0x60FB
+0xF6B4 0x6E2C
+0xF6B5 0x5C64
+0xF6B6 0x4F88
+0xF6B7 0x5024
+0xF6B8 0x55E4
+0xF6B9 0x5CD9
+0xF6BA 0x5E5F
+0xF6BB 0x6065
+0xF6BC 0x6894
+0xF6BD 0x6CBB
+0xF6BE 0x6DC4
+0xF6BF 0x71BE
+0xF6C0 0x75D4
+0xF6C1 0x75F4
+0xF6C2 0x7661
+0xF6C3 0x7A1A
+0xF6C4 0x7A49
+0xF6C5 0x7DC7
+0xF6C6 0x7DFB
+0xF6C7 0x7F6E
+0xF6C8 0x81F4
+0xF6C9 0x86A9
+0xF6CA 0x8F1C
+0xF6CB 0x96C9
+0xF6CC 0x99B3
+0xF6CD 0x9F52
+0xF6CE 0x5247
+0xF6CF 0x52C5
+0xF6D0 0x98ED
+0xF6D1 0x89AA
+0xF6D2 0x4E03
+0xF6D3 0x67D2
+0xF6D4 0x6F06
+0xF6D5 0x4FB5
+0xF6D6 0x5BE2
+0xF6D7 0x6795
+0xF6D8 0x6C88
+0xF6D9 0x6D78
+0xF6DA 0x741B
+0xF6DB 0x7827
+0xF6DC 0x91DD
+0xF6DD 0x937C
+0xF6DE 0x87C4
+0xF6DF 0x79E4
+0xF6E0 0x7A31
+0xF6E1 0x5FEB
+0xF6E2 0x4ED6
+0xF6E3 0x54A4
+0xF6E4 0x553E
+0xF6E5 0x58AE
+0xF6E6 0x59A5
+0xF6E7 0x60F0
+0xF6E8 0x6253
+0xF6E9 0x62D6
+0xF6EA 0x6736
+0xF6EB 0x6955
+0xF6EC 0x8235
+0xF6ED 0x9640
+0xF6EE 0x99B1
+0xF6EF 0x99DD
+0xF6F0 0x502C
+0xF6F1 0x5353
+0xF6F2 0x5544
+0xF6F3 0x577C
+0xF6F4 0xFA01
+0xF6F5 0x6258
+0xF6F6 0xFA02
+0xF6F7 0x64E2
+0xF6F8 0x666B
+0xF6F9 0x67DD
+0xF6FA 0x6FC1
+0xF6FB 0x6FEF
+0xF6FC 0x7422
+0xF6FD 0x7438
+0xF6FE 0x8A17
+0xF7A1 0x9438
+0xF7A2 0x5451
+0xF7A3 0x5606
+0xF7A4 0x5766
+0xF7A5 0x5F48
+0xF7A6 0x619A
+0xF7A7 0x6B4E
+0xF7A8 0x7058
+0xF7A9 0x70AD
+0xF7AA 0x7DBB
+0xF7AB 0x8A95
+0xF7AC 0x596A
+0xF7AD 0x812B
+0xF7AE 0x63A2
+0xF7AF 0x7708
+0xF7B0 0x803D
+0xF7B1 0x8CAA
+0xF7B2 0x5854
+0xF7B3 0x642D
+0xF7B4 0x69BB
+0xF7B5 0x5B95
+0xF7B6 0x5E11
+0xF7B7 0x6E6F
+0xF7B8 0xFA03
+0xF7B9 0x8569
+0xF7BA 0x514C
+0xF7BB 0x53F0
+0xF7BC 0x592A
+0xF7BD 0x6020
+0xF7BE 0x614B
+0xF7BF 0x6B86
+0xF7C0 0x6C70
+0xF7C1 0x6CF0
+0xF7C2 0x7B1E
+0xF7C3 0x80CE
+0xF7C4 0x82D4
+0xF7C5 0x8DC6
+0xF7C6 0x90B0
+0xF7C7 0x98B1
+0xF7C8 0xFA04
+0xF7C9 0x64C7
+0xF7CA 0x6FA4
+0xF7CB 0x6491
+0xF7CC 0x6504
+0xF7CD 0x514E
+0xF7CE 0x5410
+0xF7CF 0x571F
+0xF7D0 0x8A0E
+0xF7D1 0x615F
+0xF7D2 0x6876
+0xF7D3 0xFA05
+0xF7D4 0x75DB
+0xF7D5 0x7B52
+0xF7D6 0x7D71
+0xF7D7 0x901A
+0xF7D8 0x5806
+0xF7D9 0x69CC
+0xF7DA 0x817F
+0xF7DB 0x892A
+0xF7DC 0x9000
+0xF7DD 0x9839
+0xF7DE 0x5078
+0xF7DF 0x5957
+0xF7E0 0x59AC
+0xF7E1 0x6295
+0xF7E2 0x900F
+0xF7E3 0x9B2A
+0xF7E4 0x615D
+0xF7E5 0x7279
+0xF7E6 0x95D6
+0xF7E7 0x5761
+0xF7E8 0x5A46
+0xF7E9 0x5DF4
+0xF7EA 0x628A
+0xF7EB 0x64AD
+0xF7EC 0x64FA
+0xF7ED 0x6777
+0xF7EE 0x6CE2
+0xF7EF 0x6D3E
+0xF7F0 0x722C
+0xF7F1 0x7436
+0xF7F2 0x7834
+0xF7F3 0x7F77
+0xF7F4 0x82AD
+0xF7F5 0x8DDB
+0xF7F6 0x9817
+0xF7F7 0x5224
+0xF7F8 0x5742
+0xF7F9 0x677F
+0xF7FA 0x7248
+0xF7FB 0x74E3
+0xF7FC 0x8CA9
+0xF7FD 0x8FA6
+0xF7FE 0x9211
+0xF8A1 0x962A
+0xF8A2 0x516B
+0xF8A3 0x53ED
+0xF8A4 0x634C
+0xF8A5 0x4F69
+0xF8A6 0x5504
+0xF8A7 0x6096
+0xF8A8 0x6557
+0xF8A9 0x6C9B
+0xF8AA 0x6D7F
+0xF8AB 0x724C
+0xF8AC 0x72FD
+0xF8AD 0x7A17
+0xF8AE 0x8987
+0xF8AF 0x8C9D
+0xF8B0 0x5F6D
+0xF8B1 0x6F8E
+0xF8B2 0x70F9
+0xF8B3 0x81A8
+0xF8B4 0x610E
+0xF8B5 0x4FBF
+0xF8B6 0x504F
+0xF8B7 0x6241
+0xF8B8 0x7247
+0xF8B9 0x7BC7
+0xF8BA 0x7DE8
+0xF8BB 0x7FE9
+0xF8BC 0x904D
+0xF8BD 0x97AD
+0xF8BE 0x9A19
+0xF8BF 0x8CB6
+0xF8C0 0x576A
+0xF8C1 0x5E73
+0xF8C2 0x67B0
+0xF8C3 0x840D
+0xF8C4 0x8A55
+0xF8C5 0x5420
+0xF8C6 0x5B16
+0xF8C7 0x5E63
+0xF8C8 0x5EE2
+0xF8C9 0x5F0A
+0xF8CA 0x6583
+0xF8CB 0x80BA
+0xF8CC 0x853D
+0xF8CD 0x9589
+0xF8CE 0x965B
+0xF8CF 0x4F48
+0xF8D0 0x5305
+0xF8D1 0x530D
+0xF8D2 0x530F
+0xF8D3 0x5486
+0xF8D4 0x54FA
+0xF8D5 0x5703
+0xF8D6 0x5E03
+0xF8D7 0x6016
+0xF8D8 0x629B
+0xF8D9 0x62B1
+0xF8DA 0x6355
+0xF8DB 0xFA06
+0xF8DC 0x6CE1
+0xF8DD 0x6D66
+0xF8DE 0x75B1
+0xF8DF 0x7832
+0xF8E0 0x80DE
+0xF8E1 0x812F
+0xF8E2 0x82DE
+0xF8E3 0x8461
+0xF8E4 0x84B2
+0xF8E5 0x888D
+0xF8E6 0x8912
+0xF8E7 0x900B
+0xF8E8 0x92EA
+0xF8E9 0x98FD
+0xF8EA 0x9B91
+0xF8EB 0x5E45
+0xF8EC 0x66B4
+0xF8ED 0x66DD
+0xF8EE 0x7011
+0xF8EF 0x7206
+0xF8F0 0xFA07
+0xF8F1 0x4FF5
+0xF8F2 0x527D
+0xF8F3 0x5F6A
+0xF8F4 0x6153
+0xF8F5 0x6753
+0xF8F6 0x6A19
+0xF8F7 0x6F02
+0xF8F8 0x74E2
+0xF8F9 0x7968
+0xF8FA 0x8868
+0xF8FB 0x8C79
+0xF8FC 0x98C7
+0xF8FD 0x98C4
+0xF8FE 0x9A43
+0xF9A1 0x54C1
+0xF9A2 0x7A1F
+0xF9A3 0x6953
+0xF9A4 0x8AF7
+0xF9A5 0x8C4A
+0xF9A6 0x98A8
+0xF9A7 0x99AE
+0xF9A8 0x5F7C
+0xF9A9 0x62AB
+0xF9AA 0x75B2
+0xF9AB 0x76AE
+0xF9AC 0x88AB
+0xF9AD 0x907F
+0xF9AE 0x9642
+0xF9AF 0x5339
+0xF9B0 0x5F3C
+0xF9B1 0x5FC5
+0xF9B2 0x6CCC
+0xF9B3 0x73CC
+0xF9B4 0x7562
+0xF9B5 0x758B
+0xF9B6 0x7B46
+0xF9B7 0x82FE
+0xF9B8 0x999D
+0xF9B9 0x4E4F
+0xF9BA 0x903C
+0xF9BB 0x4E0B
+0xF9BC 0x4F55
+0xF9BD 0x53A6
+0xF9BE 0x590F
+0xF9BF 0x5EC8
+0xF9C0 0x6630
+0xF9C1 0x6CB3
+0xF9C2 0x7455
+0xF9C3 0x8377
+0xF9C4 0x8766
+0xF9C5 0x8CC0
+0xF9C6 0x9050
+0xF9C7 0x971E
+0xF9C8 0x9C15
+0xF9C9 0x58D1
+0xF9CA 0x5B78
+0xF9CB 0x8650
+0xF9CC 0x8B14
+0xF9CD 0x9DB4
+0xF9CE 0x5BD2
+0xF9CF 0x6068
+0xF9D0 0x608D
+0xF9D1 0x65F1
+0xF9D2 0x6C57
+0xF9D3 0x6F22
+0xF9D4 0x6FA3
+0xF9D5 0x701A
+0xF9D6 0x7F55
+0xF9D7 0x7FF0
+0xF9D8-0xF9D9 0x9591
+0xF9DA 0x9650
+0xF9DB 0x97D3
+0xF9DC 0x5272
+0xF9DD 0x8F44
+0xF9DE 0x51FD
+0xF9DF 0x542B
+0xF9E0 0x54B8
+0xF9E1 0x5563
+0xF9E2 0x558A
+0xF9E3 0x6ABB
+0xF9E4 0x6DB5
+0xF9E5 0x7DD8
+0xF9E6 0x8266
+0xF9E7 0x929C
+0xF9E8 0x9677
+0xF9E9 0x9E79
+0xF9EA 0x5408
+0xF9EB 0x54C8
+0xF9EC 0x76D2
+0xF9ED 0x86E4
+0xF9EE 0x95A4
+0xF9EF 0x95D4
+0xF9F0 0x965C
+0xF9F1 0x4EA2
+0xF9F2 0x4F09
+0xF9F3 0x59EE
+0xF9F4 0x5AE6
+0xF9F5 0x5DF7
+0xF9F6 0x6052
+0xF9F7 0x6297
+0xF9F8 0x676D
+0xF9F9 0x6841
+0xF9FA 0x6C86
+0xF9FB 0x6E2F
+0xF9FC 0x7F38
+0xF9FD 0x809B
+0xF9FE 0x822A
+0xFAA1-0xFAA2 0xFA08
+0xFAA3 0x9805
+0xFAA4 0x4EA5
+0xFAA5 0x5055
+0xFAA6 0x54B3
+0xFAA7 0x5793
+0xFAA8 0x595A
+0xFAA9 0x5B69
+0xFAAA 0x5BB3
+0xFAAB 0x61C8
+0xFAAC 0x6977
+0xFAAD 0x6D77
+0xFAAE 0x7023
+0xFAAF 0x87F9
+0xFAB0 0x89E3
+0xFAB1 0x8A72
+0xFAB2 0x8AE7
+0xFAB3 0x9082
+0xFAB4 0x99ED
+0xFAB5 0x9AB8
+0xFAB6 0x52BE
+0xFAB7 0x6838
+0xFAB8 0x5016
+0xFAB9 0x5E78
+0xFABA 0x674F
+0xFABB 0x8347
+0xFABC 0x884C
+0xFABD 0x4EAB
+0xFABE 0x5411
+0xFABF 0x56AE
+0xFAC0 0x73E6
+0xFAC1 0x9115
+0xFAC2 0x97FF
+0xFAC3 0x9909
+0xFAC4 0x9957
+0xFAC5 0x9999
+0xFAC6 0x5653
+0xFAC7 0x589F
+0xFAC8 0x865B
+0xFAC9 0x8A31
+0xFACA 0x61B2
+0xFACB 0x6AF6
+0xFACC 0x737B
+0xFACD 0x8ED2
+0xFACE 0x6B47
+0xFACF 0x96AA
+0xFAD0 0x9A57
+0xFAD1 0x5955
+0xFAD2 0x7200
+0xFAD3 0x8D6B
+0xFAD4 0x9769
+0xFAD5 0x4FD4
+0xFAD6 0x5CF4
+0xFAD7 0x5F26
+0xFAD8 0x61F8
+0xFAD9 0x665B
+0xFADA 0x6CEB
+0xFADB 0x70AB
+0xFADC 0x7384
+0xFADD 0x73B9
+0xFADE 0x73FE
+0xFADF 0x7729
+0xFAE0 0x774D
+0xFAE1 0x7D43
+0xFAE2 0x7D62
+0xFAE3 0x7E23
+0xFAE4 0x8237
+0xFAE5 0x8852
+0xFAE6 0xFA0A
+0xFAE7 0x8CE2
+0xFAE8 0x9249
+0xFAE9 0x986F
+0xFAEA 0x5B51
+0xFAEB 0x7A74
+0xFAEC 0x8840
+0xFAED 0x9801
+0xFAEE 0x5ACC
+0xFAEF 0x4FE0
+0xFAF0 0x5354
+0xFAF1 0x593E
+0xFAF2 0x5CFD
+0xFAF3 0x633E
+0xFAF4 0x6D79
+0xFAF5 0x72F9
+0xFAF6 0x8105
+0xFAF7 0x8107
+0xFAF8 0x83A2
+0xFAF9 0x92CF
+0xFAFA 0x9830
+0xFAFB 0x4EA8
+0xFAFC 0x5144
+0xFAFD 0x5211
+0xFAFE 0x578B
+0xFBA1 0x5F62
+0xFBA2 0x6CC2
+0xFBA3 0x6ECE
+0xFBA4 0x7005
+0xFBA5 0x7050
+0xFBA6 0x70AF
+0xFBA7 0x7192
+0xFBA8 0x73E9
+0xFBA9 0x7469
+0xFBAA 0x834A
+0xFBAB 0x87A2
+0xFBAC 0x8861
+0xFBAD 0x9008
+0xFBAE 0x90A2
+0xFBAF 0x93A3
+0xFBB0 0x99A8
+0xFBB1 0x516E
+0xFBB2 0x5F57
+0xFBB3 0x60E0
+0xFBB4 0x6167
+0xFBB5 0x66B3
+0xFBB6 0x8559
+0xFBB7 0x8E4A
+0xFBB8 0x91AF
+0xFBB9 0x978B
+0xFBBA 0x4E4E
+0xFBBB 0x4E92
+0xFBBC 0x547C
+0xFBBD 0x58D5
+0xFBBE 0x58FA
+0xFBBF 0x597D
+0xFBC0 0x5CB5
+0xFBC1 0x5F27
+0xFBC2 0x6236
+0xFBC3 0x6248
+0xFBC4 0x660A
+0xFBC5 0x6667
+0xFBC6 0x6BEB
+0xFBC7 0x6D69
+0xFBC8 0x6DCF
+0xFBC9 0x6E56
+0xFBCA 0x6EF8
+0xFBCB 0x6F94
+0xFBCC 0x6FE0
+0xFBCD 0x6FE9
+0xFBCE 0x705D
+0xFBCF 0x72D0
+0xFBD0 0x7425
+0xFBD1 0x745A
+0xFBD2 0x74E0
+0xFBD3 0x7693
+0xFBD4 0x795C
+0xFBD5 0x7CCA
+0xFBD6 0x7E1E
+0xFBD7 0x80E1
+0xFBD8 0x82A6
+0xFBD9 0x846B
+0xFBDA 0x84BF
+0xFBDB 0x864E
+0xFBDC 0x865F
+0xFBDD 0x8774
+0xFBDE 0x8B77
+0xFBDF 0x8C6A
+0xFBE0 0x93AC
+0xFBE1 0x9800
+0xFBE2 0x9865
+0xFBE3 0x60D1
+0xFBE4 0x6216
+0xFBE5 0x9177
+0xFBE6 0x5A5A
+0xFBE7 0x660F
+0xFBE8 0x6DF7
+0xFBE9 0x6E3E
+0xFBEA 0x743F
+0xFBEB 0x9B42
+0xFBEC 0x5FFD
+0xFBED 0x60DA
+0xFBEE 0x7B0F
+0xFBEF 0x54C4
+0xFBF0 0x5F18
+0xFBF1 0x6C5E
+0xFBF2 0x6CD3
+0xFBF3 0x6D2A
+0xFBF4 0x70D8
+0xFBF5 0x7D05
+0xFBF6 0x8679
+0xFBF7 0x8A0C
+0xFBF8 0x9D3B
+0xFBF9 0x5316
+0xFBFA 0x548C
+0xFBFB 0x5B05
+0xFBFC 0x6A3A
+0xFBFD 0x706B
+0xFBFE 0x7575
+0xFCA1 0x798D
+0xFCA2 0x79BE
+0xFCA3 0x82B1
+0xFCA4 0x83EF
+0xFCA5 0x8A71
+0xFCA6 0x8B41
+0xFCA7 0x8CA8
+0xFCA8 0x9774
+0xFCA9 0xFA0B
+0xFCAA 0x64F4
+0xFCAB 0x652B
+0xFCAC-0xFCAD 0x78BA
+0xFCAE 0x7A6B
+0xFCAF 0x4E38
+0xFCB0 0x559A
+0xFCB1 0x5950
+0xFCB2 0x5BA6
+0xFCB3 0x5E7B
+0xFCB4 0x60A3
+0xFCB5 0x63DB
+0xFCB6 0x6B61
+0xFCB7 0x6665
+0xFCB8 0x6853
+0xFCB9 0x6E19
+0xFCBA 0x7165
+0xFCBB 0x74B0
+0xFCBC 0x7D08
+0xFCBD 0x9084
+0xFCBE 0x9A69
+0xFCBF 0x9C25
+0xFCC0 0x6D3B
+0xFCC1 0x6ED1
+0xFCC2 0x733E
+0xFCC3 0x8C41
+0xFCC4 0x95CA
+0xFCC5 0x51F0
+0xFCC6 0x5E4C
+0xFCC7 0x5FA8
+0xFCC8 0x604D
+0xFCC9 0x60F6
+0xFCCA 0x6130
+0xFCCB 0x614C
+0xFCCC-0xFCCD 0x6643
+0xFCCE 0x69A5
+0xFCCF 0x6CC1
+0xFCD0 0x6E5F
+0xFCD1 0x6EC9
+0xFCD2 0x6F62
+0xFCD3 0x714C
+0xFCD4 0x749C
+0xFCD5 0x7687
+0xFCD6 0x7BC1
+0xFCD7 0x7C27
+0xFCD8 0x8352
+0xFCD9 0x8757
+0xFCDA 0x9051
+0xFCDB 0x968D
+0xFCDC 0x9EC3
+0xFCDD 0x532F
+0xFCDE 0x56DE
+0xFCDF 0x5EFB
+0xFCE0 0x5F8A
+0xFCE1 0x6062
+0xFCE2 0x6094
+0xFCE3 0x61F7
+0xFCE4 0x6666
+0xFCE5 0x6703
+0xFCE6 0x6A9C
+0xFCE7 0x6DEE
+0xFCE8 0x6FAE
+0xFCE9 0x7070
+0xFCEA 0x736A
+0xFCEB 0x7E6A
+0xFCEC 0x81BE
+0xFCED 0x8334
+0xFCEE 0x86D4
+0xFCEF 0x8AA8
+0xFCF0 0x8CC4
+0xFCF1 0x5283
+0xFCF2 0x7372
+0xFCF3 0x5B96
+0xFCF4 0x6A6B
+0xFCF5 0x9404
+0xFCF6 0x54EE
+0xFCF7 0x5686
+0xFCF8 0x5B5D
+0xFCF9 0x6548
+0xFCFA 0x6585
+0xFCFB 0x66C9
+0xFCFC 0x689F
+0xFCFD 0x6D8D
+0xFCFE 0x6DC6
+0xFDA1 0x723B
+0xFDA2 0x80B4
+0xFDA3 0x9175
+0xFDA4 0x9A4D
+0xFDA5 0x4FAF
+0xFDA6 0x5019
+0xFDA7 0x539A
+0xFDA8 0x540E
+0xFDA9 0x543C
+0xFDAA 0x5589
+0xFDAB 0x55C5
+0xFDAC 0x5E3F
+0xFDAD 0x5F8C
+0xFDAE 0x673D
+0xFDAF 0x7166
+0xFDB0 0x73DD
+0xFDB1 0x9005
+0xFDB2 0x52DB
+0xFDB3 0x52F3
+0xFDB4 0x5864
+0xFDB5 0x58CE
+0xFDB6 0x7104
+0xFDB7 0x718F
+0xFDB8 0x71FB
+0xFDB9 0x85B0
+0xFDBA 0x8A13
+0xFDBB 0x6688
+0xFDBC 0x85A8
+0xFDBD 0x55A7
+0xFDBE 0x6684
+0xFDBF 0x714A
+0xFDC0 0x8431
+0xFDC1 0x5349
+0xFDC2 0x5599
+0xFDC3 0x6BC1
+0xFDC4 0x5F59
+0xFDC5 0x5FBD
+0xFDC6 0x63EE
+0xFDC7 0x6689
+0xFDC8 0x7147
+0xFDC9 0x8AF1
+0xFDCA 0x8F1D
+0xFDCB 0x9EBE
+0xFDCC 0x4F11
+0xFDCD 0x643A
+0xFDCE 0x70CB
+0xFDCF 0x7566
+0xFDD0 0x8667
+0xFDD1 0x6064
+0xFDD2 0x8B4E
+0xFDD3 0x9DF8
+0xFDD4 0x5147
+0xFDD5 0x51F6
+0xFDD6 0x5308
+0xFDD7 0x6D36
+0xFDD8 0x80F8
+0xFDD9 0x9ED1
+0xFDDA 0x6615
+0xFDDB 0x6B23
+0xFDDC 0x7098
+0xFDDD 0x75D5
+0xFDDE 0x5403
+0xFDDF 0x5C79
+0xFDE0 0x7D07
+0xFDE1 0x8A16
+0xFDE2 0x6B20
+0xFDE3 0x6B3D
+0xFDE4 0x6B46
+0xFDE5 0x5438
+0xFDE6 0x6070
+0xFDE7 0x6D3D
+0xFDE8 0x7FD5
+0xFDE9 0x8208
+0xFDEA 0x50D6
+0xFDEB 0x51DE
+0xFDEC 0x559C
+0xFDED 0x566B
+0xFDEE 0x56CD
+0xFDEF 0x59EC
+0xFDF0 0x5B09
+0xFDF1 0x5E0C
+0xFDF2 0x6199
+0xFDF3 0x6198
+0xFDF4 0x6231
+0xFDF5 0x665E
+0xFDF6 0x66E6
+0xFDF7 0x7199
+0xFDF8-0xFDF9 0x71B9
+0xFDFA 0x72A7
+0xFDFB 0x79A7
+0xFDFC 0x7A00
+0xFDFD 0x7FB2
+0xFDFE 0x8A70
diff --git a/etc/charsets/EBCDICUK.map b/etc/charsets/EBCDICUK.map
new file mode 100644 (file)
index 0000000..a1785ca
--- /dev/null
@@ -0,0 +1,71 @@
+# Generated from glibc-2.3.2/localedata/charmaps/EBCDIC-UK
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x4A 0x0024
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x5A 0x0021
+0x5B 0x00A3
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00AC
+0x60 0x002D
+0x61 0x002F
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x81-0x89 0x0061
+0x91-0x99 0x006A
+0xA1 0x203E
+0xA2-0xA9 0x0073
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xE0 0x005C
+0xE2-0xE9 0x0053
+0xF0-0xF9 0x0030
+0xFF 0x009F
diff --git a/etc/charsets/EBCDICUS.map b/etc/charsets/EBCDICUS.map
new file mode 100644 (file)
index 0000000..ce57c9d
--- /dev/null
@@ -0,0 +1,71 @@
+# Generated from glibc-2.3.2/localedata/charmaps/EBCDIC-US
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x4A 0x00A2
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x5A 0x0021
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00AC
+0x60 0x002D
+0x61 0x002F
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x81-0x89 0x0061
+0x91-0x99 0x006A
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xE0 0x005C
+0xE2-0xE9 0x0053
+0xF0-0xF9 0x0030
+0xFF 0x009F
diff --git a/etc/charsets/GB180302.map b/etc/charsets/GB180302.map
new file mode 100644 (file)
index 0000000..a472604
--- /dev/null
@@ -0,0 +1,10451 @@
+# Generated from glibc-2.3.2/localedata/charmaps/GB18030
+0x8140 0x4E02
+0x8141-0x8143 0x4E04
+0x8144 0x4E0F
+0x8145 0x4E12
+0x8146 0x4E17
+0x8147-0x8149 0x4E1F
+0x814A 0x4E23
+0x814B 0x4E26
+0x814C 0x4E29
+0x814D-0x814E 0x4E2E
+0x814F 0x4E31
+0x8150 0x4E33
+0x8151 0x4E35
+0x8152 0x4E37
+0x8153 0x4E3C
+0x8154-0x8156 0x4E40
+0x8157 0x4E44
+0x8158 0x4E46
+0x8159 0x4E4A
+0x815A 0x4E51
+0x815B 0x4E55
+0x815C 0x4E57
+0x815D-0x815E 0x4E5A
+0x815F-0x8162 0x4E62
+0x8163-0x8164 0x4E67
+0x8165-0x816A 0x4E6A
+0x816B 0x4E72
+0x816C-0x8175 0x4E74
+0x8176-0x817C 0x4E7F
+0x817D 0x4E87
+0x817E 0x4E8A
+0x8180 0x4E90
+0x8181-0x8182 0x4E96
+0x8183 0x4E99
+0x8184-0x8186 0x4E9C
+0x8187 0x4EA3
+0x8188 0x4EAA
+0x8189-0x818B 0x4EAF
+0x818C 0x4EB4
+0x818D-0x8190 0x4EB6
+0x8191-0x8193 0x4EBC
+0x8194 0x4EC8
+0x8195 0x4ECC
+0x8196-0x8197 0x4ECF
+0x8198 0x4ED2
+0x8199-0x819B 0x4EDA
+0x819C 0x4EE0
+0x819D 0x4EE2
+0x819E-0x819F 0x4EE6
+0x81A0 0x4EE9
+0x81A1-0x81A3 0x4EED
+0x81A4 0x4EF1
+0x81A5 0x4EF4
+0x81A6-0x81A8 0x4EF8
+0x81A9 0x4EFC
+0x81AA 0x4EFE
+0x81AB 0x4F00
+0x81AC-0x81B2 0x4F02
+0x81B3-0x81B4 0x4F0B
+0x81B5-0x81B9 0x4F12
+0x81BA-0x81BB 0x4F1C
+0x81BC 0x4F21
+0x81BD 0x4F23
+0x81BE-0x81BF 0x4F28
+0x81C0-0x81C2 0x4F2C
+0x81C3 0x4F31
+0x81C4 0x4F33
+0x81C5 0x4F35
+0x81C6 0x4F37
+0x81C7 0x4F39
+0x81C8 0x4F3B
+0x81C9-0x81CD 0x4F3E
+0x81CE-0x81CF 0x4F44
+0x81D0-0x81D5 0x4F47
+0x81D6 0x4F52
+0x81D7 0x4F54
+0x81D8 0x4F56
+0x81D9-0x81DA 0x4F61
+0x81DB 0x4F66
+0x81DC 0x4F68
+0x81DD-0x81DE 0x4F6A
+0x81DF-0x81E0 0x4F6D
+0x81E1-0x81E2 0x4F71
+0x81E3 0x4F75
+0x81E4-0x81E7 0x4F77
+0x81E8 0x4F7D
+0x81E9-0x81EB 0x4F80
+0x81EC-0x81EE 0x4F85
+0x81EF 0x4F8A
+0x81F0 0x4F8C
+0x81F1 0x4F8E
+0x81F2 0x4F90
+0x81F3-0x81F4 0x4F92
+0x81F5-0x81F6 0x4F95
+0x81F7-0x81F9 0x4F98
+0x81FA 0x4F9C
+0x81FB-0x81FC 0x4F9E
+0x81FD-0x81FE 0x4FA1
+0x8240 0x4FA4
+0x8241 0x4FAB
+0x8242 0x4FAD
+0x8243-0x8247 0x4FB0
+0x8248-0x8250 0x4FB6
+0x8251-0x8253 0x4FC0
+0x8254-0x8257 0x4FC6
+0x8258-0x825A 0x4FCB
+0x825B-0x825F 0x4FD2
+0x8260 0x4FD9
+0x8261 0x4FDB
+0x8262 0x4FE0
+0x8263 0x4FE2
+0x8264-0x8265 0x4FE4
+0x8266 0x4FE7
+0x8267-0x8268 0x4FEB
+0x8269 0x4FF0
+0x826A 0x4FF2
+0x826B-0x826E 0x4FF4
+0x826F 0x4FF9
+0x8270-0x8272 0x4FFB
+0x8273-0x827E 0x4FFF
+0x8280 0x500B
+0x8281 0x500E
+0x8282-0x8283 0x5010
+0x8284 0x5013
+0x8285-0x8287 0x5015
+0x8288 0x501B
+0x8289-0x828A 0x501D
+0x828B 0x5020
+0x828C-0x828E 0x5022
+0x828F 0x5027
+0x8290 0x502B
+0x8291-0x829B 0x502F
+0x829C 0x503B
+0x829D 0x503D
+0x829E-0x82A1 0x503F
+0x82A2-0x82A4 0x5044
+0x82A5-0x82A7 0x5049
+0x82A8 0x504D
+0x82A9-0x82AD 0x5050
+0x82AE-0x82B1 0x5056
+0x82B2 0x505B
+0x82B3-0x82BA 0x505D
+0x82BB-0x82C0 0x5066
+0x82C1-0x82C9 0x506D
+0x82CA-0x82CC 0x5078
+0x82CD-0x82CE 0x507C
+0x82CF-0x82D2 0x5081
+0x82D3-0x82D4 0x5086
+0x82D5-0x82D8 0x5089
+0x82D9-0x82ED 0x508E
+0x82EE 0x50A4
+0x82EF 0x50A6
+0x82F0-0x82F1 0x50AA
+0x82F2-0x82F6 0x50AD
+0x82F7-0x82FD 0x50B3
+0x82FE-0x8351 0x50BC
+0x8352-0x8357 0x50D0
+0x8358-0x835A 0x50D7
+0x835B-0x8365 0x50DB
+0x8366-0x8369 0x50E8
+0x836A-0x836D 0x50EF
+0x836E 0x50F4
+0x836F-0x8373 0x50F6
+0x8374-0x837D 0x50FC
+0x837E 0x5108
+0x8380-0x8381 0x5109
+0x8382-0x8387 0x510C
+0x8388-0x8395 0x5113
+0x8396-0x83B2 0x5122
+0x83B3 0x5142
+0x83B4 0x5147
+0x83B5 0x514A
+0x83B6 0x514C
+0x83B7-0x83B9 0x514E
+0x83BA-0x83BB 0x5152
+0x83BC-0x83BE 0x5157
+0x83BF 0x515B
+0x83C0-0x83C4 0x515D
+0x83C5-0x83C6 0x5163
+0x83C7-0x83C8 0x5166
+0x83C9-0x83CA 0x5169
+0x83CB 0x516F
+0x83CC 0x5172
+0x83CD 0x517A
+0x83CE-0x83CF 0x517E
+0x83D0-0x83D1 0x5183
+0x83D2-0x83D3 0x5186
+0x83D4-0x83D5 0x518A
+0x83D6-0x83D9 0x518E
+0x83DA-0x83DB 0x5193
+0x83DC 0x5198
+0x83DD 0x519A
+0x83DE-0x83E0 0x519D
+0x83E1 0x51A1
+0x83E2 0x51A3
+0x83E3-0x83E7 0x51A6
+0x83E8-0x83E9 0x51AD
+0x83EA 0x51B4
+0x83EB-0x83ED 0x51B8
+0x83EE-0x83EF 0x51BE
+0x83F0-0x83F2 0x51C1
+0x83F3 0x51C5
+0x83F4 0x51C8
+0x83F5 0x51CA
+0x83F6-0x83F7 0x51CD
+0x83F8 0x51D0
+0x83F9-0x8442 0x51D2
+0x8443 0x51DC
+0x8444-0x8445 0x51DE
+0x8446-0x8447 0x51E2
+0x8448-0x844D 0x51E5
+0x844E 0x51EC
+0x844F 0x51EE
+0x8450-0x8451 0x51F1
+0x8452 0x51F4
+0x8453 0x51F7
+0x8454 0x51FE
+0x8455-0x8456 0x5204
+0x8457 0x5209
+0x8458-0x8459 0x520B
+0x845A-0x845B 0x520F
+0x845C-0x845E 0x5213
+0x845F 0x521C
+0x8460-0x8461 0x521E
+0x8462-0x8464 0x5221
+0x8465-0x8467 0x5225
+0x8468 0x522A
+0x8469 0x522C
+0x846A 0x522F
+0x846B-0x846C 0x5231
+0x846D-0x846E 0x5234
+0x846F 0x523C
+0x8470 0x523E
+0x8471-0x8476 0x5244
+0x8477 0x524B
+0x8478-0x8479 0x524E
+0x847A-0x847B 0x5252
+0x847C 0x5255
+0x847D-0x847E 0x5257
+0x8480-0x8482 0x5259
+0x8483 0x525D
+0x8484-0x8485 0x525F
+0x8486-0x8488 0x5262
+0x8489 0x5266
+0x848A 0x5268
+0x848B-0x848E 0x526B
+0x848F-0x8490 0x5270
+0x8491-0x849A 0x5273
+0x849B 0x527E
+0x849C 0x5280
+0x849D-0x84A1 0x5283
+0x84A2-0x84A8 0x5289
+0x84A9-0x84AA 0x5291
+0x84AB-0x84B1 0x5294
+0x84B2 0x529C
+0x84B3-0x84B6 0x52A4
+0x84B7-0x84B9 0x52AE
+0x84BA-0x84C3 0x52B4
+0x84C4-0x84C6 0x52C0
+0x84C7-0x84C9 0x52C4
+0x84CA 0x52C8
+0x84CB 0x52CA
+0x84CC-0x84CF 0x52CC
+0x84D0 0x52D1
+0x84D1-0x84D3 0x52D3
+0x84D4 0x52D7
+0x84D5-0x84DA 0x52D9
+0x84DB-0x84DE 0x52E0
+0x84DF-0x84E9 0x52E5
+0x84EA-0x84F1 0x52F1
+0x84F2-0x84F4 0x52FB
+0x84F5-0x84F8 0x5301
+0x84F9 0x5307
+0x84FA-0x84FD 0x5309
+0x84FE 0x530E
+0x8540-0x8543 0x5311
+0x8544 0x5318
+0x8545-0x8546 0x531B
+0x8547-0x8548 0x531E
+0x8549 0x5322
+0x854A-0x854B 0x5324
+0x854C-0x854E 0x5327
+0x854F-0x8551 0x532B
+0x8552-0x855B 0x532F
+0x855C-0x855D 0x533C
+0x855E 0x5340
+0x855F 0x5342
+0x8560 0x5344
+0x8561 0x5346
+0x8562-0x8564 0x534B
+0x8565 0x5350
+0x8566 0x5354
+0x8567-0x8568 0x5358
+0x8569 0x535B
+0x856A 0x535D
+0x856B 0x5365
+0x856C 0x5368
+0x856D 0x536A
+0x856E-0x856F 0x536C
+0x8570 0x5372
+0x8571 0x5376
+0x8572 0x5379
+0x8573-0x8576 0x537B
+0x8577-0x8578 0x5380
+0x8579 0x5383
+0x857A-0x857B 0x5387
+0x857C 0x538A
+0x857D-0x857E 0x538E
+0x8580-0x8584 0x5390
+0x8585-0x8586 0x5396
+0x8587 0x5399
+0x8588-0x8589 0x539B
+0x858A 0x539E
+0x858B-0x858C 0x53A0
+0x858D 0x53A4
+0x858E 0x53A7
+0x858F-0x8592 0x53AA
+0x8593-0x8599 0x53AF
+0x859A-0x859D 0x53B7
+0x859E-0x85A0 0x53BC
+0x85A1 0x53C0
+0x85A2-0x85A6 0x53C3
+0x85A7-0x85A9 0x53CE
+0x85AA-0x85AB 0x53D2
+0x85AC 0x53D5
+0x85AD 0x53DA
+0x85AE-0x85B0 0x53DC
+0x85B1-0x85B2 0x53E1
+0x85B3 0x53E7
+0x85B4 0x53F4
+0x85B5 0x53FA
+0x85B6-0x85B8 0x53FE
+0x85B9 0x5402
+0x85BA 0x5405
+0x85BB 0x5407
+0x85BC 0x540B
+0x85BD 0x5414
+0x85BE-0x85C0 0x5418
+0x85C1 0x541C
+0x85C2 0x5422
+0x85C3-0x85C4 0x5424
+0x85C5 0x542A
+0x85C6 0x5430
+0x85C7 0x5433
+0x85C8-0x85C9 0x5436
+0x85CA 0x543A
+0x85CB 0x543D
+0x85CC 0x543F
+0x85CD-0x85CE 0x5441
+0x85CF-0x85D0 0x5444
+0x85D1 0x5447
+0x85D2 0x5449
+0x85D3-0x85D6 0x544C
+0x85D7 0x5451
+0x85D8 0x545A
+0x85D9-0x85DD 0x545D
+0x85DE 0x5463
+0x85DF 0x5465
+0x85E0 0x5467
+0x85E1-0x85E8 0x5469
+0x85E9 0x5474
+0x85EA-0x85EB 0x5479
+0x85EC-0x85ED 0x547E
+0x85EE 0x5481
+0x85EF 0x5483
+0x85F0 0x5485
+0x85F1-0x85F4 0x5487
+0x85F5 0x548D
+0x85F6 0x5491
+0x85F7 0x5493
+0x85F8-0x85F9 0x5497
+0x85FA 0x549C
+0x85FB-0x8640 0x549E
+0x8641 0x54A5
+0x8642 0x54AE
+0x8643 0x54B0
+0x8644 0x54B2
+0x8645-0x8647 0x54B5
+0x8648-0x8649 0x54B9
+0x864A 0x54BC
+0x864B 0x54BE
+0x864C 0x54C3
+0x864D 0x54C5
+0x864E-0x864F 0x54CA
+0x8650 0x54D6
+0x8651 0x54D8
+0x8652 0x54DB
+0x8653-0x8657 0x54E0
+0x8658-0x8659 0x54EB
+0x865A-0x865C 0x54EF
+0x865D-0x8662 0x54F4
+0x8663 0x54FB
+0x8664 0x54FE
+0x8665 0x5500
+0x8666-0x8669 0x5502
+0x866A 0x5508
+0x866B-0x866F 0x550A
+0x8670-0x8671 0x5512
+0x8672-0x8677 0x5515
+0x8678-0x867B 0x551C
+0x867C 0x5521
+0x867D-0x867E 0x5525
+0x8680-0x8681 0x5528
+0x8682 0x552B
+0x8683 0x552D
+0x8684 0x5532
+0x8685-0x8687 0x5534
+0x8688-0x868B 0x5538
+0x868C 0x553D
+0x868D 0x5540
+0x868E 0x5542
+0x868F 0x5545
+0x8690-0x8691 0x5547
+0x8692-0x8696 0x554B
+0x8697-0x869A 0x5551
+0x869B-0x869F 0x5557
+0x86A0-0x86A3 0x555D
+0x86A4-0x86A5 0x5562
+0x86A6-0x86A7 0x5568
+0x86A8 0x556B
+0x86A9-0x86AE 0x556F
+0x86AF-0x86B0 0x5579
+0x86B1 0x557D
+0x86B2 0x557F
+0x86B3-0x86B4 0x5585
+0x86B5-0x86B7 0x558C
+0x86B8 0x5590
+0x86B9-0x86BA 0x5592
+0x86BB-0x86BD 0x5595
+0x86BE-0x86BF 0x559A
+0x86C0 0x559E
+0x86C1-0x86C7 0x55A0
+0x86C8-0x86D0 0x55A8
+0x86D1 0x55B2
+0x86D2 0x55B4
+0x86D3 0x55B6
+0x86D4 0x55B8
+0x86D5 0x55BA
+0x86D6 0x55BC
+0x86D7-0x86DB 0x55BF
+0x86DC-0x86DE 0x55C6
+0x86DF-0x86E0 0x55CA
+0x86E1-0x86E3 0x55CE
+0x86E4 0x55D5
+0x86E5-0x86E9 0x55D7
+0x86EA 0x55DE
+0x86EB 0x55E0
+0x86EC 0x55E2
+0x86ED 0x55E7
+0x86EE 0x55E9
+0x86EF-0x86F0 0x55ED
+0x86F1-0x86F2 0x55F0
+0x86F3 0x55F4
+0x86F4 0x55F6
+0x86F5-0x86F9 0x55F8
+0x86FA 0x55FF
+0x86FB-0x8741 0x5602
+0x8742-0x8743 0x560A
+0x8744 0x560D
+0x8745-0x874C 0x5610
+0x874D-0x874E 0x5619
+0x874F-0x8750 0x561C
+0x8751-0x8753 0x5620
+0x8754-0x8755 0x5625
+0x8756-0x8759 0x5628
+0x875A-0x875C 0x562E
+0x875D 0x5633
+0x875E 0x5635
+0x875F-0x8760 0x5637
+0x8761 0x563A
+0x8762-0x8764 0x563C
+0x8765-0x8770 0x5640
+0x8771-0x8775 0x564F
+0x8776-0x8777 0x5655
+0x8778-0x8779 0x565A
+0x877A-0x877E 0x565D
+0x8780 0x5663
+0x8781-0x8783 0x5665
+0x8784-0x8787 0x566D
+0x8788-0x878B 0x5672
+0x878C-0x878F 0x5677
+0x8790-0x8797 0x567D
+0x8798-0x879E 0x5687
+0x879F-0x87A1 0x5690
+0x87A2-0x87B0 0x5694
+0x87B1-0x87BB 0x56A4
+0x87BC-0x87C2 0x56B0
+0x87C3-0x87C6 0x56B8
+0x87C7-0x87D3 0x56BD
+0x87D4-0x87DC 0x56CB
+0x87DD-0x87DE 0x56D5
+0x87DF-0x87E0 0x56D8
+0x87E1 0x56DC
+0x87E2 0x56E3
+0x87E3-0x87E8 0x56E5
+0x87E9 0x56EC
+0x87EA-0x87EB 0x56EE
+0x87EC-0x87ED 0x56F2
+0x87EE-0x87F0 0x56F6
+0x87F1-0x87F2 0x56FB
+0x87F3-0x87F5 0x5700
+0x87F6 0x5705
+0x87F7 0x5707
+0x87F8-0x8849 0x570B
+0x884A-0x884B 0x571D
+0x884C-0x884E 0x5720
+0x884F-0x8852 0x5724
+0x8853 0x572B
+0x8854-0x8855 0x5731
+0x8856-0x885A 0x5734
+0x885B-0x885C 0x573C
+0x885D 0x573F
+0x885E 0x5741
+0x885F-0x8862 0x5743
+0x8863-0x8864 0x5748
+0x8865 0x574B
+0x8866-0x886A 0x5752
+0x886B-0x886C 0x5758
+0x886D-0x886E 0x5762
+0x886F 0x5765
+0x8870 0x5767
+0x8871 0x576C
+0x8872 0x576E
+0x8873-0x8875 0x5770
+0x8876-0x8877 0x5774
+0x8878-0x887A 0x5778
+0x887B-0x887E 0x577D
+0x8880 0x5781
+0x8881-0x8884 0x5787
+0x8885-0x8889 0x578D
+0x888A-0x8890 0x5794
+0x8891-0x8894 0x579C
+0x8895 0x57A5
+0x8896 0x57A8
+0x8897 0x57AA
+0x8898 0x57AC
+0x8899-0x889B 0x57AF
+0x889C 0x57B3
+0x889D-0x889F 0x57B5
+0x88A0-0x88A8 0x57B9
+0x88A9-0x88AF 0x57C4
+0x88B0-0x88B1 0x57CC
+0x88B2-0x88B3 0x57D0
+0x88B4 0x57D3
+0x88B5-0x88B6 0x57D6
+0x88B7-0x88B8 0x57DB
+0x88B9 0x57DE
+0x88BA-0x88BC 0x57E1
+0x88BD-0x88C4 0x57E5
+0x88C5 0x57EE
+0x88C6-0x88C9 0x57F0
+0x88CA-0x88CC 0x57F5
+0x88CD-0x88CE 0x57FB
+0x88CF-0x88D0 0x57FE
+0x88D1 0x5801
+0x88D2-0x88D4 0x5803
+0x88D5-0x88D7 0x5808
+0x88D8 0x580C
+0x88D9-0x88DB 0x580E
+0x88DC-0x88DE 0x5812
+0x88DF-0x88E1 0x5816
+0x88E2-0x88E5 0x581A
+0x88E6 0x581F
+0x88E7-0x88E8 0x5822
+0x88E9-0x88ED 0x5825
+0x88EE-0x88F2 0x582B
+0x88F3-0x88F6 0x5831
+0x88F7-0x8945 0x5836
+0x8946-0x894C 0x5845
+0x894D-0x894F 0x584E
+0x8950-0x8951 0x5852
+0x8952-0x8954 0x5855
+0x8955-0x8959 0x5859
+0x895A-0x895F 0x585F
+0x8960-0x8964 0x5866
+0x8965-0x8975 0x586D
+0x8976 0x587F
+0x8977 0x5882
+0x8978 0x5884
+0x8979-0x897B 0x5886
+0x897C-0x897E 0x588A
+0x8980-0x8984 0x588D
+0x8985-0x8989 0x5894
+0x898A-0x898C 0x589B
+0x898D-0x8994 0x58A0
+0x8995-0x89A6 0x58AA
+0x89A7-0x89AA 0x58BD
+0x89AB-0x89AD 0x58C2
+0x89AE-0x89B8 0x58C6
+0x89B9-0x89BB 0x58D2
+0x89BC-0x89C9 0x58D6
+0x89CA-0x89CF 0x58E5
+0x89D0 0x58ED
+0x89D1 0x58EF
+0x89D2-0x89D3 0x58F1
+0x89D4-0x89D5 0x58F4
+0x89D6-0x89D7 0x58F7
+0x89D8-0x89DF 0x58FA
+0x89E0 0x5903
+0x89E1-0x89E2 0x5905
+0x89E3-0x89E7 0x5908
+0x89E8 0x590E
+0x89E9-0x89EC 0x5910
+0x89ED-0x89EE 0x5917
+0x89EF 0x591B
+0x89F0-0x89F1 0x591D
+0x89F2-0x89F5 0x5920
+0x89F6 0x5926
+0x89F7 0x5928
+0x89F8 0x592C
+0x89F9 0x5930
+0x89FA-0x89FB 0x5932
+0x89FC-0x89FD 0x5935
+0x89FE 0x593B
+0x8A40-0x8A43 0x593D
+0x8A44 0x5943
+0x8A45-0x8A46 0x5945
+0x8A47 0x594A
+0x8A48-0x8A49 0x594C
+0x8A4A 0x5950
+0x8A4B-0x8A4C 0x5952
+0x8A4D 0x5959
+0x8A4E-0x8A52 0x595B
+0x8A53 0x5961
+0x8A54-0x8A55 0x5963
+0x8A56-0x8A62 0x5966
+0x8A63 0x5975
+0x8A64 0x5977
+0x8A65-0x8A67 0x597A
+0x8A68-0x8A6A 0x597E
+0x8A6B 0x5985
+0x8A6C 0x5989
+0x8A6D-0x8A6E 0x598B
+0x8A6F-0x8A72 0x598E
+0x8A73-0x8A74 0x5994
+0x8A75 0x5998
+0x8A76-0x8A79 0x599A
+0x8A7A-0x8A7D 0x599F
+0x8A7E 0x59A6
+0x8A80 0x59A7
+0x8A81-0x8A82 0x59AC
+0x8A83-0x8A84 0x59B0
+0x8A85-0x8A8A 0x59B3
+0x8A8B 0x59BA
+0x8A8C-0x8A8D 0x59BC
+0x8A8E-0x8A94 0x59BF
+0x8A95-0x8A97 0x59C7
+0x8A98-0x8A9B 0x59CC
+0x8A9C-0x8A9D 0x59D5
+0x8A9E 0x59D9
+0x8A9F 0x59DB
+0x8AA0-0x8AA4 0x59DE
+0x8AA5 0x59E4
+0x8AA6-0x8AA7 0x59E6
+0x8AA8-0x8AAA 0x59E9
+0x8AAB-0x8AB6 0x59ED
+0x8AB7 0x59FA
+0x8AB8-0x8ABA 0x59FC
+0x8ABB 0x5A00
+0x8ABC 0x5A02
+0x8ABD-0x8ABE 0x5A0A
+0x8ABF-0x8AC2 0x5A0D
+0x8AC3 0x5A12
+0x8AC4-0x8AC7 0x5A14
+0x8AC8-0x8ACA 0x5A19
+0x8ACB-0x8ACC 0x5A1D
+0x8ACD-0x8ACE 0x5A21
+0x8ACF 0x5A24
+0x8AD0-0x8AD2 0x5A26
+0x8AD3-0x8AD9 0x5A2A
+0x8ADA 0x5A33
+0x8ADB 0x5A35
+0x8ADC-0x8AE0 0x5A37
+0x8AE1-0x8AE3 0x5A3D
+0x8AE4-0x8AE8 0x5A41
+0x8AE9-0x8AEA 0x5A47
+0x8AEB-0x8AF4 0x5A4B
+0x8AF5-0x8AF8 0x5A56
+0x8AF9-0x8B40 0x5A5B
+0x8B41-0x8B44 0x5A63
+0x8B45-0x8B46 0x5A68
+0x8B47-0x8B4F 0x5A6B
+0x8B50-0x8B51 0x5A78
+0x8B52-0x8B55 0x5A7B
+0x8B56-0x8B67 0x5A80
+0x8B68-0x8B6E 0x5A93
+0x8B6F-0x8B7C 0x5A9C
+0x8B7D-0x8B7E 0x5AAB
+0x8B80-0x8B84 0x5AAD
+0x8B85 0x5AB4
+0x8B86-0x8B87 0x5AB6
+0x8B88-0x8B8C 0x5AB9
+0x8B8D-0x8B8E 0x5ABF
+0x8B8F-0x8B94 0x5AC3
+0x8B95-0x8B96 0x5ACA
+0x8B97-0x8B9B 0x5ACD
+0x8B9C 0x5AD3
+0x8B9D 0x5AD5
+0x8B9E 0x5AD7
+0x8B9F-0x8BA1 0x5AD9
+0x8BA2-0x8BA4 0x5ADD
+0x8BA5 0x5AE2
+0x8BA6-0x8BA7 0x5AE4
+0x8BA8-0x8BA9 0x5AE7
+0x8BAA 0x5AEA
+0x8BAB-0x8BAF 0x5AEC
+0x8BB0-0x8BC6 0x5AF2
+0x8BC7-0x8BD2 0x5B0A
+0x8BD3-0x8BEC 0x5B18
+0x8BED 0x5B33
+0x8BEE-0x8BEF 0x5B35
+0x8BF0-0x8BF7 0x5B38
+0x8BF8-0x8C47 0x5B41
+0x8C48 0x5B52
+0x8C49 0x5B56
+0x8C4A 0x5B5E
+0x8C4B-0x8C4C 0x5B60
+0x8C4D-0x8C4E 0x5B67
+0x8C4F 0x5B6B
+0x8C50-0x8C52 0x5B6D
+0x8C53 0x5B72
+0x8C54 0x5B74
+0x8C55-0x8C58 0x5B76
+0x8C59-0x8C5A 0x5B7B
+0x8C5B-0x8C5C 0x5B7E
+0x8C5D 0x5B82
+0x8C5E 0x5B86
+0x8C5F 0x5B8A
+0x8C60-0x8C61 0x5B8D
+0x8C62-0x8C64 0x5B90
+0x8C65 0x5B94
+0x8C66 0x5B96
+0x8C67 0x5B9F
+0x8C68-0x8C6A 0x5BA7
+0x8C6B-0x8C6E 0x5BAC
+0x8C6F-0x8C70 0x5BB1
+0x8C71 0x5BB7
+0x8C72-0x8C74 0x5BBA
+0x8C75-0x8C76 0x5BC0
+0x8C77 0x5BC3
+0x8C78-0x8C7B 0x5BC8
+0x8C7C-0x8C7E 0x5BCD
+0x8C80 0x5BD1
+0x8C81-0x8C89 0x5BD4
+0x8C8A 0x5BE0
+0x8C8B-0x8C8C 0x5BE2
+0x8C8D-0x8C8E 0x5BE6
+0x8C8F-0x8C93 0x5BE9
+0x8C94 0x5BEF
+0x8C95-0x8C9B 0x5BF1
+0x8C9C-0x8C9D 0x5BFD
+0x8C9E 0x5C00
+0x8C9F-0x8CA0 0x5C02
+0x8CA1 0x5C05
+0x8CA2-0x8CA3 0x5C07
+0x8CA4-0x8CA7 0x5C0B
+0x8CA8 0x5C10
+0x8CA9-0x8CAA 0x5C12
+0x8CAB 0x5C17
+0x8CAC 0x5C19
+0x8CAD 0x5C1B
+0x8CAE-0x8CB1 0x5C1E
+0x8CB2 0x5C23
+0x8CB3 0x5C26
+0x8CB4-0x8CB7 0x5C28
+0x8CB8-0x8CBB 0x5C2D
+0x8CBC-0x8CBD 0x5C32
+0x8CBE-0x8CC0 0x5C35
+0x8CC1-0x8CC2 0x5C43
+0x8CC3-0x8CC4 0x5C46
+0x8CC5-0x8CC6 0x5C4C
+0x8CC7-0x8CC9 0x5C52
+0x8CCA-0x8CCC 0x5C56
+0x8CCD-0x8CD0 0x5C5A
+0x8CD1 0x5C5F
+0x8CD2 0x5C62
+0x8CD3 0x5C64
+0x8CD4-0x8CDA 0x5C67
+0x8CDB 0x5C70
+0x8CDC-0x8CE2 0x5C72
+0x8CE3-0x8CE6 0x5C7B
+0x8CE7 0x5C80
+0x8CE8-0x8CEC 0x5C83
+0x8CED-0x8CEF 0x5C89
+0x8CF0-0x8CF1 0x5C8E
+0x8CF2-0x8CF3 0x5C92
+0x8CF4 0x5C95
+0x8CF5-0x8CF9 0x5C9D
+0x8CFA-0x8CFE 0x5CA4
+0x8D40 0x5CAA
+0x8D41-0x8D43 0x5CAE
+0x8D44 0x5CB2
+0x8D45 0x5CB4
+0x8D46 0x5CB6
+0x8D47-0x8D4A 0x5CB9
+0x8D4B 0x5CBE
+0x8D4C 0x5CC0
+0x8D4D-0x8D4E 0x5CC2
+0x8D4F-0x8D54 0x5CC5
+0x8D55-0x8D5A 0x5CCC
+0x8D5B-0x8D60 0x5CD3
+0x8D61-0x8D67 0x5CDA
+0x8D68-0x8D69 0x5CE2
+0x8D6A 0x5CE7
+0x8D6B 0x5CE9
+0x8D6C-0x8D6D 0x5CEB
+0x8D6E-0x8D6F 0x5CEE
+0x8D70-0x8D79 0x5CF1
+0x8D7A-0x8D7E 0x5CFC
+0x8D80 0x5D01
+0x8D81-0x8D82 0x5D04
+0x8D83-0x8D88 0x5D08
+0x8D89-0x8D8D 0x5D0F
+0x8D8E 0x5D15
+0x8D8F-0x8D92 0x5D17
+0x8D93-0x8D94 0x5D1C
+0x8D95-0x8D99 0x5D1F
+0x8D9A 0x5D25
+0x8D9B 0x5D28
+0x8D9C-0x8D9E 0x5D2A
+0x8D9F-0x8DA3 0x5D2F
+0x8DA4-0x8DAB 0x5D35
+0x8DAC-0x8DB3 0x5D3F
+0x8DB4-0x8DB5 0x5D48
+0x8DB6-0x8DC0 0x5D4D
+0x8DC1-0x8DC2 0x5D59
+0x8DC3 0x5D5C
+0x8DC4-0x8DCE 0x5D5E
+0x8DCF 0x5D6A
+0x8DD0-0x8DD1 0x5D6D
+0x8DD2-0x8DD5 0x5D70
+0x8DD6-0x8DE2 0x5D75
+0x8DE3-0x8DF8 0x5D83
+0x8DF9-0x8DFB 0x5D9A
+0x8DFC-0x8E55 0x5D9E
+0x8E56-0x8E62 0x5DB8
+0x8E63-0x8E69 0x5DC6
+0x8E6A-0x8E76 0x5DCE
+0x8E77 0x5DDC
+0x8E78-0x8E79 0x5DDF
+0x8E7A-0x8E7B 0x5DE3
+0x8E7C 0x5DEA
+0x8E7D-0x8E7E 0x5DEC
+0x8E80 0x5DF0
+0x8E81-0x8E82 0x5DF5
+0x8E83-0x8E87 0x5DF8
+0x8E88-0x8E89 0x5DFF
+0x8E8A 0x5E04
+0x8E8B 0x5E07
+0x8E8C-0x8E8E 0x5E09
+0x8E8F-0x8E90 0x5E0D
+0x8E91-0x8E92 0x5E12
+0x8E93 0x5E17
+0x8E94-0x8E9B 0x5E1E
+0x8E9C-0x8EA0 0x5E28
+0x8EA1-0x8EA2 0x5E2F
+0x8EA3-0x8EA7 0x5E32
+0x8EA8-0x8EA9 0x5E39
+0x8EAA-0x8EAD 0x5E3E
+0x8EAE 0x5E43
+0x8EAF-0x8EB4 0x5E46
+0x8EB5-0x8EBB 0x5E4D
+0x8EBC-0x8EC0 0x5E56
+0x8EC1-0x8EC2 0x5E5C
+0x8EC3-0x8EC4 0x5E5F
+0x8EC5-0x8ED3 0x5E63
+0x8ED4 0x5E75
+0x8ED5 0x5E77
+0x8ED6 0x5E79
+0x8ED7 0x5E7E
+0x8ED8-0x8EDA 0x5E81
+0x8EDB 0x5E85
+0x8EDC-0x8EDD 0x5E88
+0x8EDE-0x8EE0 0x5E8C
+0x8EE1 0x5E92
+0x8EE2 0x5E98
+0x8EE3 0x5E9B
+0x8EE4 0x5E9D
+0x8EE5-0x8EE8 0x5EA1
+0x8EE9-0x8EED 0x5EA8
+0x8EEE-0x8EF2 0x5EAE
+0x8EF3 0x5EB4
+0x8EF4-0x8EF7 0x5EBA
+0x8EF8-0x8F42 0x5EBF
+0x8F43-0x8F48 0x5ECB
+0x8F49-0x8F4A 0x5ED4
+0x8F4B-0x8F4E 0x5ED7
+0x8F4F-0x8F5A 0x5EDC
+0x8F5B 0x5EE9
+0x8F5C-0x8F64 0x5EEB
+0x8F65 0x5EF5
+0x8F66-0x8F67 0x5EF8
+0x8F68-0x8F6A 0x5EFB
+0x8F6B-0x8F6D 0x5F05
+0x8F6E 0x5F09
+0x8F6F-0x8F71 0x5F0C
+0x8F72 0x5F10
+0x8F73 0x5F12
+0x8F74 0x5F14
+0x8F75 0x5F16
+0x8F76-0x8F77 0x5F19
+0x8F78-0x8F7A 0x5F1C
+0x8F7B-0x8F7E 0x5F21
+0x8F80 0x5F28
+0x8F81-0x8F82 0x5F2B
+0x8F83 0x5F2E
+0x8F84 0x5F30
+0x8F85-0x8F8B 0x5F32
+0x8F8C 0x5F3B
+0x8F8D-0x8F8F 0x5F3D
+0x8F90-0x8F9E 0x5F41
+0x8F9F 0x5F51
+0x8FA0 0x5F54
+0x8FA1-0x8FA4 0x5F59
+0x8FA5-0x8FA7 0x5F5E
+0x8FA8 0x5F63
+0x8FA9 0x5F65
+0x8FAA-0x8FAB 0x5F67
+0x8FAC 0x5F6B
+0x8FAD-0x8FAE 0x5F6E
+0x8FAF 0x5F72
+0x8FB0-0x8FB2 0x5F74
+0x8FB3 0x5F78
+0x8FB4 0x5F7A
+0x8FB5-0x8FB7 0x5F7D
+0x8FB8 0x5F83
+0x8FB9 0x5F86
+0x8FBA-0x8FBC 0x5F8D
+0x8FBD 0x5F91
+0x8FBE-0x8FBF 0x5F93
+0x8FC0 0x5F96
+0x8FC1-0x8FC2 0x5F9A
+0x8FC3-0x8FC6 0x5F9D
+0x8FC7-0x8FCC 0x5FA2
+0x8FCD 0x5FA9
+0x8FCE-0x8FCF 0x5FAB
+0x8FD0-0x8FD5 0x5FAF
+0x8FD6 0x5FB6
+0x8FD7-0x8FDA 0x5FB8
+0x8FDB-0x8FDF 0x5FBE
+0x8FE0-0x8FE1 0x5FC7
+0x8FE2-0x8FE3 0x5FCA
+0x8FE4 0x5FCE
+0x8FE5-0x8FE7 0x5FD3
+0x8FE8-0x8FEA 0x5FDA
+0x8FEB-0x8FEC 0x5FDE
+0x8FED-0x8FEE 0x5FE2
+0x8FEF-0x8FF0 0x5FE5
+0x8FF1-0x8FF2 0x5FE8
+0x8FF3 0x5FEC
+0x8FF4-0x8FF5 0x5FEF
+0x8FF6-0x8FF8 0x5FF2
+0x8FF9-0x8FFA 0x5FF6
+0x8FFB-0x8FFC 0x5FF9
+0x8FFD 0x5FFC
+0x8FFE-0x9041 0x6007
+0x9042-0x9043 0x600B
+0x9044-0x9045 0x6010
+0x9046 0x6013
+0x9047-0x9048 0x6017
+0x9049 0x601A
+0x904A-0x904B 0x601E
+0x904C-0x904E 0x6022
+0x904F-0x9051 0x602C
+0x9052-0x9056 0x6030
+0x9057-0x905B 0x6036
+0x905C-0x905D 0x603D
+0x905E 0x6040
+0x905F-0x9065 0x6044
+0x9066 0x604C
+0x9067-0x9068 0x604E
+0x9069 0x6051
+0x906A-0x906B 0x6053
+0x906C-0x906E 0x6056
+0x906F-0x9070 0x605B
+0x9071-0x9074 0x605E
+0x9075-0x9076 0x6065
+0x9077 0x606E
+0x9078-0x9079 0x6071
+0x907A-0x907B 0x6074
+0x907C 0x6077
+0x907D 0x607E
+0x907E 0x6080
+0x9080-0x9081 0x6081
+0x9082-0x9085 0x6085
+0x9086-0x9087 0x608A
+0x9088-0x908B 0x608E
+0x908C 0x6093
+0x908D 0x6095
+0x908E-0x9090 0x6097
+0x9091 0x609C
+0x9092 0x609E
+0x9093-0x9094 0x60A1
+0x9095-0x9096 0x60A4
+0x9097 0x60A7
+0x9098-0x9099 0x60A9
+0x909A 0x60AE
+0x909B 0x60B0
+0x909C 0x60B3
+0x909D-0x909F 0x60B5
+0x90A0-0x90A1 0x60B9
+0x90A2-0x90A9 0x60BD
+0x90AA-0x90AC 0x60C7
+0x90AD-0x90B1 0x60CC
+0x90B2-0x90B4 0x60D2
+0x90B5-0x90B6 0x60D6
+0x90B7 0x60D9
+0x90B8 0x60DB
+0x90B9 0x60DE
+0x90BA-0x90BE 0x60E1
+0x90BF 0x60EA
+0x90C0-0x90C1 0x60F1
+0x90C2 0x60F5
+0x90C3-0x90C4 0x60F7
+0x90C5-0x90C9 0x60FB
+0x90CA-0x90CD 0x6102
+0x90CE 0x6107
+0x90CF-0x90D1 0x610A
+0x90D2-0x90D6 0x6110
+0x90D7-0x90DA 0x6116
+0x90DB-0x90DE 0x611B
+0x90DF-0x90E0 0x6121
+0x90E1 0x6125
+0x90E2-0x90E4 0x6128
+0x90E5-0x90F7 0x612C
+0x90F8-0x9140 0x6140
+0x9141 0x6149
+0x9142 0x614B
+0x9143 0x614D
+0x9144-0x9145 0x614F
+0x9146-0x9148 0x6152
+0x9149-0x914F 0x6156
+0x9150-0x9153 0x615E
+0x9154-0x9157 0x6163
+0x9158-0x915E 0x6169
+0x915F-0x9162 0x6171
+0x9163 0x6176
+0x9164-0x9176 0x6178
+0x9177-0x9178 0x618C
+0x9179-0x917D 0x618F
+0x917E 0x6195
+0x9180-0x9186 0x6196
+0x9187-0x918F 0x619E
+0x9190-0x9191 0x61AA
+0x9192-0x919B 0x61AD
+0x919C-0x91A1 0x61B8
+0x91A2-0x91A4 0x61BF
+0x91A5-0x91A9 0x61C3
+0x91AA 0x61C9
+0x91AB-0x91AF 0x61CC
+0x91B0 0x61D3
+0x91B1-0x91C1 0x61D5
+0x91C2-0x91CF 0x61E7
+0x91D0-0x91D8 0x61F6
+0x91D9-0x91DE 0x6200
+0x91DF 0x6207
+0x91E0 0x6209
+0x91E1-0x91E2 0x6213
+0x91E3 0x6219
+0x91E4-0x91E6 0x621C
+0x91E7 0x6220
+0x91E8 0x6223
+0x91E9-0x91EC 0x6226
+0x91ED 0x622B
+0x91EE 0x622D
+0x91EF-0x91F2 0x622F
+0x91F3-0x91F4 0x6235
+0x91F5-0x91F9 0x6238
+0x91FA 0x6242
+0x91FB-0x91FD 0x6244
+0x91FE 0x624A
+0x9240-0x9241 0x624F
+0x9242-0x9244 0x6255
+0x9245-0x9246 0x6259
+0x9247-0x924D 0x625C
+0x924E-0x924F 0x6264
+0x9250 0x6268
+0x9251-0x9252 0x6271
+0x9253-0x9254 0x6274
+0x9255-0x9256 0x6277
+0x9257-0x9258 0x627A
+0x9259 0x627D
+0x925A-0x925C 0x6281
+0x925D-0x9260 0x6285
+0x9261-0x9266 0x628B
+0x9267 0x6294
+0x9268 0x6299
+0x9269-0x926B 0x629C
+0x926C 0x62A3
+0x926D-0x926E 0x62A6
+0x926F-0x9270 0x62A9
+0x9271-0x9274 0x62AD
+0x9275-0x9277 0x62B2
+0x9278-0x927A 0x62B6
+0x927B 0x62BA
+0x927C 0x62BE
+0x927D-0x927E 0x62C0
+0x9280 0x62C3
+0x9281 0x62CB
+0x9282 0x62CF
+0x9283 0x62D1
+0x9284 0x62D5
+0x9285-0x9286 0x62DD
+0x9287-0x9288 0x62E0
+0x9289 0x62E4
+0x928A-0x928B 0x62EA
+0x928C 0x62F0
+0x928D 0x62F2
+0x928E 0x62F5
+0x928F-0x9292 0x62F8
+0x9293 0x6300
+0x9294-0x9297 0x6303
+0x9298-0x929B 0x630A
+0x929C-0x929D 0x630F
+0x929E-0x92A1 0x6312
+0x92A2-0x92A4 0x6317
+0x92A5 0x631C
+0x92A6-0x92A7 0x6326
+0x92A8 0x6329
+0x92A9-0x92AB 0x632C
+0x92AC-0x92AD 0x6330
+0x92AE-0x92B3 0x6333
+0x92B4-0x92B5 0x633B
+0x92B6-0x92B9 0x633E
+0x92BA 0x6344
+0x92BB-0x92BC 0x6347
+0x92BD 0x634A
+0x92BE-0x92C1 0x6351
+0x92C2-0x92C9 0x6356
+0x92CA 0x6360
+0x92CB-0x92CD 0x6364
+0x92CE 0x6368
+0x92CF-0x92D1 0x636A
+0x92D2-0x92D3 0x636F
+0x92D4-0x92D7 0x6372
+0x92D8-0x92D9 0x6378
+0x92DA-0x92DD 0x637C
+0x92DE 0x6381
+0x92DF-0x92E2 0x6383
+0x92E3 0x638B
+0x92E4 0x638D
+0x92E5 0x6391
+0x92E6-0x92E8 0x6393
+0x92E9 0x6397
+0x92EA-0x92F0 0x6399
+0x92F1 0x63A1
+0x92F2 0x63A4
+0x92F3 0x63A6
+0x92F4 0x63AB
+0x92F5 0x63AF
+0x92F6-0x92F7 0x63B1
+0x92F8-0x92F9 0x63B5
+0x92FA 0x63B9
+0x92FB 0x63BB
+0x92FC 0x63BD
+0x92FD-0x9342 0x63BF
+0x9343 0x63C5
+0x9344-0x9345 0x63C7
+0x9346-0x9348 0x63CA
+0x9349 0x63D1
+0x934A-0x934C 0x63D3
+0x934D-0x9353 0x63D7
+0x9354 0x63DF
+0x9355 0x63E2
+0x9356-0x935A 0x63E4
+0x935B-0x935C 0x63EB
+0x935D-0x9360 0x63EE
+0x9361 0x63F3
+0x9362 0x63F5
+0x9363 0x63F7
+0x9364-0x9367 0x63F9
+0x9368 0x63FE
+0x9369-0x936A 0x6403
+0x936B-0x936F 0x6406
+0x9370-0x9371 0x640D
+0x9372-0x9373 0x6411
+0x9374-0x9379 0x6415
+0x937A 0x641D
+0x937B 0x641F
+0x937C-0x937E 0x6422
+0x9380 0x6425
+0x9381-0x9383 0x6427
+0x9384 0x642B
+0x9385-0x938A 0x642E
+0x938B-0x938F 0x6435
+0x9390-0x9391 0x643B
+0x9392 0x643E
+0x9393 0x6440
+0x9394-0x9395 0x6442
+0x9396 0x6449
+0x9397-0x939D 0x644B
+0x939E 0x6453
+0x939F-0x93A1 0x6455
+0x93A2-0x93A6 0x6459
+0x93A7-0x93AE 0x645F
+0x93AF 0x6468
+0x93B0-0x93B2 0x646A
+0x93B3-0x93BC 0x646E
+0x93BD-0x93C3 0x647B
+0x93C4 0x6483
+0x93C5 0x6486
+0x93C6-0x93CE 0x6488
+0x93CF-0x93D0 0x6493
+0x93D1-0x93D2 0x6497
+0x93D3-0x93D6 0x649A
+0x93D7-0x93DB 0x649F
+0x93DC-0x93DF 0x64A5
+0x93E0-0x93E1 0x64AA
+0x93E2 0x64AF
+0x93E3-0x93E6 0x64B1
+0x93E7 0x64B6
+0x93E8 0x64B9
+0x93E9 0x64BB
+0x93EA-0x93EC 0x64BD
+0x93ED 0x64C1
+0x93EE-0x93EF 0x64C3
+0x93F0-0x93F6 0x64C6
+0x93F7 0x64CF
+0x93F8 0x64D1
+0x93F9-0x93FC 0x64D3
+0x93FD-0x9442 0x64D9
+0x9443-0x9445 0x64DF
+0x9446 0x64E3
+0x9447 0x64E5
+0x9448-0x9460 0x64E7
+0x9461-0x9468 0x6501
+0x9469-0x9470 0x650A
+0x9471-0x9475 0x6513
+0x9476-0x947E 0x6519
+0x9480-0x9482 0x6522
+0x9483-0x9487 0x6526
+0x9488-0x9489 0x652C
+0x948A-0x948D 0x6530
+0x948E 0x6537
+0x948F 0x653A
+0x9490-0x9491 0x653C
+0x9492-0x9496 0x6540
+0x9497-0x9498 0x6546
+0x9499-0x949A 0x654A
+0x949B-0x949C 0x654D
+0x949D 0x6550
+0x949E-0x94A0 0x6552
+0x94A1-0x94A2 0x6557
+0x94A3 0x655A
+0x94A4 0x655C
+0x94A5-0x94A7 0x655F
+0x94A8-0x94A9 0x6564
+0x94AA-0x94AD 0x6567
+0x94AE-0x94B0 0x656D
+0x94B1 0x6571
+0x94B2 0x6573
+0x94B3-0x94B4 0x6575
+0x94B5-0x94C3 0x6578
+0x94C4-0x94C6 0x6588
+0x94C7-0x94C9 0x658D
+0x94CA 0x6592
+0x94CB-0x94CD 0x6594
+0x94CE 0x6598
+0x94CF 0x659A
+0x94D0-0x94D1 0x659D
+0x94D2 0x65A0
+0x94D3-0x94D4 0x65A2
+0x94D5 0x65A6
+0x94D6 0x65A8
+0x94D7 0x65AA
+0x94D8 0x65AC
+0x94D9 0x65AE
+0x94DA-0x94E1 0x65B1
+0x94E2-0x94E3 0x65BA
+0x94E4-0x94E6 0x65BE
+0x94E7 0x65C2
+0x94E8-0x94EB 0x65C7
+0x94EC 0x65CD
+0x94ED-0x94EE 0x65D0
+0x94EF-0x94F1 0x65D3
+0x94F2-0x94F9 0x65D8
+0x94FA 0x65E1
+0x94FB-0x94FC 0x65E3
+0x94FD-0x94FE 0x65EA
+0x9540-0x9543 0x65F2
+0x9544-0x9545 0x65F8
+0x9546-0x954A 0x65FB
+0x954B 0x6601
+0x954C-0x954D 0x6604
+0x954E-0x9550 0x6607
+0x9551 0x660B
+0x9552 0x660D
+0x9553-0x9555 0x6610
+0x9556-0x9558 0x6616
+0x9559-0x955B 0x661A
+0x955C 0x661E
+0x955D-0x9560 0x6621
+0x9561 0x6626
+0x9562-0x9565 0x6629
+0x9566 0x662E
+0x9567 0x6630
+0x9568-0x9569 0x6632
+0x956A-0x956E 0x6637
+0x956F 0x663D
+0x9570-0x9571 0x663F
+0x9572 0x6642
+0x9573-0x9579 0x6644
+0x957A-0x957B 0x664D
+0x957C-0x957D 0x6650
+0x957E 0x6658
+0x9580 0x6659
+0x9581-0x9584 0x665B
+0x9585 0x6660
+0x9586-0x9587 0x6662
+0x9588 0x6665
+0x9589 0x6667
+0x958A-0x958E 0x6669
+0x958F-0x9591 0x6671
+0x9592 0x6675
+0x9593-0x9594 0x6678
+0x9595-0x9597 0x667B
+0x9598-0x959A 0x667F
+0x959B 0x6683
+0x959C-0x959D 0x6685
+0x959E-0x95A1 0x6688
+0x95A2-0x95A5 0x668D
+0x95A6-0x95A9 0x6692
+0x95AA-0x95AE 0x6698
+0x95AF-0x95B7 0x669E
+0x95B8-0x95BC 0x66A9
+0x95BD-0x95C1 0x66AF
+0x95C2-0x95C5 0x66B5
+0x95C6-0x95C9 0x66BA
+0x95CA-0x95E3 0x66BF
+0x95E4 0x66DA
+0x95E5-0x95EC 0x66DE
+0x95ED-0x95EE 0x66E7
+0x95EF-0x95F4 0x66EA
+0x95F5 0x66F1
+0x95F6-0x95F7 0x66F5
+0x95F8 0x66F8
+0x95F9-0x95FA 0x66FA
+0x95FB 0x66FD
+0x95FC-0x9643 0x6701
+0x9644 0x670C
+0x9645-0x9646 0x670E
+0x9647-0x9649 0x6711
+0x964A 0x6716
+0x964B-0x964D 0x6718
+0x964E 0x671C
+0x964F 0x671E
+0x9650-0x9655 0x6720
+0x9656 0x6727
+0x9657 0x6729
+0x9658 0x672E
+0x9659 0x6730
+0x965A-0x965B 0x6732
+0x965C-0x965F 0x6736
+0x9660-0x9661 0x673B
+0x9662-0x9663 0x673E
+0x9664 0x6741
+0x9665-0x9666 0x6744
+0x9667 0x6747
+0x9668-0x9669 0x674A
+0x966A 0x674D
+0x966B 0x6752
+0x966C-0x966D 0x6754
+0x966E-0x9672 0x6757
+0x9673 0x675D
+0x9674-0x9676 0x6762
+0x9677-0x9678 0x6766
+0x9679-0x967A 0x676B
+0x967B 0x676E
+0x967C 0x6771
+0x967D 0x6774
+0x967E 0x6776
+0x9680-0x9683 0x6778
+0x9684 0x677D
+0x9685 0x6780
+0x9686-0x9687 0x6782
+0x9688-0x9689 0x6785
+0x968A 0x6788
+0x968B 0x678A
+0x968C-0x968F 0x678C
+0x9690-0x9693 0x6791
+0x9694 0x6796
+0x9695 0x6799
+0x9696 0x679B
+0x9697-0x9699 0x679F
+0x969A 0x67A4
+0x969B 0x67A6
+0x969C 0x67A9
+0x969D 0x67AC
+0x969E 0x67AE
+0x969F-0x96A0 0x67B1
+0x96A1 0x67B4
+0x96A2-0x96A9 0x67B9
+0x96AA 0x67C2
+0x96AB-0x96B4 0x67C5
+0x96B5-0x96B7 0x67D5
+0x96B8 0x67DB
+0x96B9 0x67DF
+0x96BA 0x67E1
+0x96BB-0x96BC 0x67E3
+0x96BD-0x96BF 0x67E6
+0x96C0-0x96C1 0x67EA
+0x96C2-0x96C3 0x67ED
+0x96C4 0x67F2
+0x96C5-0x96CC 0x67F5
+0x96CD 0x67FE
+0x96CE-0x96D1 0x6801
+0x96D2 0x6806
+0x96D3 0x680D
+0x96D4 0x6810
+0x96D5 0x6812
+0x96D6-0x96D7 0x6814
+0x96D8-0x96DC 0x6818
+0x96DD-0x96DF 0x681E
+0x96E0-0x96E6 0x6822
+0x96E7-0x96ED 0x682B
+0x96EE-0x96F0 0x6834
+0x96F1-0x96F2 0x683A
+0x96F3 0x683F
+0x96F4 0x6847
+0x96F5 0x684B
+0x96F6 0x684D
+0x96F7 0x684F
+0x96F8 0x6852
+0x96F9-0x9743 0x6856
+0x9744 0x686A
+0x9745-0x974C 0x686C
+0x974D 0x6875
+0x974E-0x9756 0x6878
+0x9757 0x6882
+0x9758 0x6884
+0x9759-0x9760 0x6887
+0x9761-0x9763 0x6890
+0x9764-0x9766 0x6894
+0x9767-0x9770 0x6898
+0x9771-0x9773 0x68A3
+0x9774-0x9777 0x68A9
+0x9778 0x68AE
+0x9779-0x977A 0x68B1
+0x977B 0x68B4
+0x977C-0x977E 0x68B6
+0x9780-0x9786 0x68B9
+0x9787 0x68C1
+0x9788-0x978D 0x68C3
+0x978E 0x68CA
+0x978F 0x68CC
+0x9790-0x9793 0x68CE
+0x9794-0x9795 0x68D3
+0x9796-0x9797 0x68D6
+0x9798 0x68D9
+0x9799-0x979D 0x68DB
+0x979E-0x979F 0x68E1
+0x97A0-0x97A9 0x68E4
+0x97AA 0x68EF
+0x97AB-0x97AD 0x68F2
+0x97AE-0x97B0 0x68F6
+0x97B1 0x68FB
+0x97B2-0x97B5 0x68FD
+0x97B6-0x97B8 0x6902
+0x97B9-0x97BD 0x6906
+0x97BE 0x690C
+0x97BF 0x690F
+0x97C0 0x6911
+0x97C1-0x97CC 0x6913
+0x97CD-0x97CF 0x6921
+0x97D0-0x97D7 0x6925
+0x97D8-0x97D9 0x692E
+0x97DA-0x97DC 0x6931
+0x97DD-0x97E0 0x6935
+0x97E1-0x97E3 0x693A
+0x97E4 0x693E
+0x97E5-0x97E6 0x6940
+0x97E7-0x97F7 0x6943
+0x97F8-0x97F9 0x6955
+0x97FA-0x97FB 0x6958
+0x97FC-0x97FD 0x695B
+0x97FE 0x695F
+0x9840-0x9841 0x6961
+0x9842-0x9843 0x6964
+0x9844-0x9847 0x6967
+0x9848-0x9849 0x696C
+0x984A-0x984B 0x696F
+0x984C-0x9850 0x6972
+0x9851-0x9852 0x697A
+0x9853-0x9855 0x697D
+0x9856 0x6981
+0x9857 0x6983
+0x9858 0x6985
+0x9859-0x985B 0x698A
+0x985C-0x9861 0x698E
+0x9862-0x9863 0x6996
+0x9864-0x9865 0x6999
+0x9866-0x986F 0x699D
+0x9870-0x9871 0x69A9
+0x9872 0x69AC
+0x9873-0x9875 0x69AE
+0x9876-0x9877 0x69B2
+0x9878-0x9879 0x69B5
+0x987A-0x987C 0x69B8
+0x987D-0x987E 0x69BC
+0x9880-0x9882 0x69BE
+0x9883-0x988A 0x69C2
+0x988B 0x69CB
+0x988C 0x69CD
+0x988D 0x69CF
+0x988E-0x9890 0x69D1
+0x9891-0x9896 0x69D5
+0x9897-0x9899 0x69DC
+0x989A-0x98A5 0x69E1
+0x98A6-0x98A9 0x69EE
+0x98AA-0x98B3 0x69F3
+0x98B4 0x69FE
+0x98B5-0x98BE 0x6A00
+0x98BF-0x98CA 0x6A0B
+0x98CB-0x98D0 0x6A19
+0x98D1 0x6A20
+0x98D2-0x98D7 0x6A22
+0x98D8 0x6A29
+0x98D9-0x98DC 0x6A2B
+0x98DD 0x6A30
+0x98DE-0x98E0 0x6A32
+0x98E1-0x98E7 0x6A36
+0x98E8-0x98EC 0x6A3F
+0x98ED-0x98EE 0x6A45
+0x98EF-0x98F6 0x6A48
+0x98F7-0x98FD 0x6A51
+0x98FE 0x6A5A
+0x9940-0x9944 0x6A5C
+0x9945-0x9947 0x6A62
+0x9948-0x9952 0x6A66
+0x9953-0x9959 0x6A72
+0x995A-0x995B 0x6A7A
+0x995C-0x995E 0x6A7D
+0x995F-0x9961 0x6A81
+0x9962-0x996A 0x6A85
+0x996B 0x6A8F
+0x996C-0x9970 0x6A92
+0x9971-0x9978 0x6A98
+0x9979-0x997E 0x6AA1
+0x9980-0x9981 0x6AA7
+0x9982 0x6AAA
+0x9983-0x99F5 0x6AAD
+0x99F6-0x99F7 0x6B25
+0x99F8-0x9A42 0x6B28
+0x9A43-0x9A46 0x6B33
+0x9A47 0x6B38
+0x9A48-0x9A4A 0x6B3B
+0x9A4B-0x9A4E 0x6B3F
+0x9A4F-0x9A50 0x6B44
+0x9A51 0x6B48
+0x9A52-0x9A53 0x6B4A
+0x9A54-0x9A5F 0x6B4D
+0x9A60-0x9A67 0x6B5A
+0x9A68-0x9A69 0x6B68
+0x9A6A-0x9A77 0x6B6B
+0x9A78 0x6B7A
+0x9A79-0x9A7C 0x6B7D
+0x9A7D 0x6B85
+0x9A7E 0x6B88
+0x9A80 0x6B8C
+0x9A81-0x9A84 0x6B8E
+0x9A85-0x9A86 0x6B94
+0x9A87-0x9A89 0x6B97
+0x9A8A-0x9A8E 0x6B9C
+0x9A8F-0x9A96 0x6BA2
+0x9A97-0x9A9E 0x6BAB
+0x9A9F 0x6BB6
+0x9AA0-0x9AA6 0x6BB8
+0x9AA7 0x6BC0
+0x9AA8-0x9AA9 0x6BC3
+0x9AAA-0x9AAE 0x6BC6
+0x9AAF 0x6BCC
+0x9AB0 0x6BCE
+0x9AB1-0x9AB2 0x6BD0
+0x9AB3 0x6BD8
+0x9AB4 0x6BDA
+0x9AB5-0x9AB9 0x6BDC
+0x9ABA-0x9AC1 0x6BE2
+0x9AC2-0x9AC4 0x6BEC
+0x9AC5-0x9AC7 0x6BF0
+0x9AC8 0x6BF4
+0x9AC9-0x9ACB 0x6BF6
+0x9ACC-0x9ACE 0x6BFA
+0x9ACF-0x9AD5 0x6BFE
+0x9AD6-0x9ADA 0x6C08
+0x9ADB 0x6C0E
+0x9ADC 0x6C12
+0x9ADD 0x6C17
+0x9ADE-0x9AE0 0x6C1C
+0x9AE1 0x6C20
+0x9AE2 0x6C23
+0x9AE3 0x6C25
+0x9AE4-0x9AE6 0x6C2B
+0x9AE7 0x6C31
+0x9AE8 0x6C33
+0x9AE9-0x9AEA 0x6C36
+0x9AEB-0x9AEE 0x6C39
+0x9AEF-0x9AF0 0x6C3E
+0x9AF1-0x9AF3 0x6C43
+0x9AF4 0x6C48
+0x9AF5-0x9AF9 0x6C4B
+0x9AFA-0x9AFC 0x6C51
+0x9AFD 0x6C56
+0x9AFE-0x9B41 0x6C58
+0x9B42-0x9B43 0x6C62
+0x9B44-0x9B46 0x6C65
+0x9B47-0x9B4B 0x6C6B
+0x9B4C 0x6C71
+0x9B4D 0x6C73
+0x9B4E 0x6C75
+0x9B4F-0x9B50 0x6C77
+0x9B51-0x9B53 0x6C7A
+0x9B54-0x9B55 0x6C7F
+0x9B56 0x6C84
+0x9B57 0x6C87
+0x9B58-0x9B59 0x6C8A
+0x9B5A-0x9B5B 0x6C8D
+0x9B5C-0x9B5D 0x6C91
+0x9B5E-0x9B61 0x6C95
+0x9B62 0x6C9A
+0x9B63-0x9B65 0x6C9C
+0x9B66 0x6CA0
+0x9B67 0x6CA2
+0x9B68 0x6CA8
+0x9B69 0x6CAC
+0x9B6A-0x9B6B 0x6CAF
+0x9B6C-0x9B6F 0x6CB4
+0x9B70 0x6CBA
+0x9B71-0x9B74 0x6CC0
+0x9B75-0x9B77 0x6CC6
+0x9B78 0x6CCB
+0x9B79-0x9B7B 0x6CCD
+0x9B7C-0x9B7D 0x6CD1
+0x9B7E 0x6CD8
+0x9B80-0x9B81 0x6CD9
+0x9B82-0x9B83 0x6CDC
+0x9B84 0x6CDF
+0x9B85 0x6CE4
+0x9B86-0x9B87 0x6CE6
+0x9B88 0x6CE9
+0x9B89-0x9B8A 0x6CEC
+0x9B8B 0x6CF2
+0x9B8C 0x6CF4
+0x9B8D 0x6CF9
+0x9B8E-0x9B8F 0x6CFF
+0x9B90-0x9B91 0x6D02
+0x9B92-0x9B93 0x6D05
+0x9B94-0x9B96 0x6D08
+0x9B97 0x6D0D
+0x9B98-0x9B9A 0x6D0F
+0x9B9B-0x9B9E 0x6D13
+0x9B9F 0x6D18
+0x9BA0-0x9BA1 0x6D1C
+0x9BA2-0x9BA7 0x6D1F
+0x9BA8 0x6D26
+0x9BA9-0x9BAA 0x6D28
+0x9BAB-0x9BAC 0x6D2C
+0x9BAD-0x9BAE 0x6D2F
+0x9BAF 0x6D34
+0x9BB0-0x9BB2 0x6D36
+0x9BB3 0x6D3A
+0x9BB4-0x9BB5 0x6D3F
+0x9BB6 0x6D42
+0x9BB7 0x6D44
+0x9BB8 0x6D49
+0x9BB9 0x6D4C
+0x9BBA 0x6D50
+0x9BBB-0x9BBE 0x6D55
+0x9BBF 0x6D5B
+0x9BC0 0x6D5D
+0x9BC1 0x6D5F
+0x9BC2-0x9BC3 0x6D61
+0x9BC4-0x9BC5 0x6D64
+0x9BC6-0x9BC7 0x6D67
+0x9BC8-0x9BCA 0x6D6B
+0x9BCB-0x9BCE 0x6D70
+0x9BCF-0x9BD0 0x6D75
+0x9BD1-0x9BD3 0x6D79
+0x9BD4-0x9BD8 0x6D7D
+0x9BD9-0x9BDA 0x6D83
+0x9BDB-0x9BDC 0x6D86
+0x9BDD-0x9BDE 0x6D8A
+0x9BDF 0x6D8D
+0x9BE0-0x9BE1 0x6D8F
+0x9BE2 0x6D92
+0x9BE3-0x9BE7 0x6D96
+0x9BE8 0x6D9C
+0x9BE9 0x6DA2
+0x9BEA 0x6DA5
+0x9BEB-0x9BEC 0x6DAC
+0x9BED-0x9BEE 0x6DB0
+0x9BEF-0x9BF0 0x6DB3
+0x9BF1-0x9BF2 0x6DB6
+0x9BF3-0x9BF8 0x6DB9
+0x9BF9-0x9BFB 0x6DC1
+0x9BFC-0x9BFE 0x6DC8
+0x9C40-0x9C43 0x6DCD
+0x9C44-0x9C47 0x6DD2
+0x9C48 0x6DD7
+0x9C49-0x9C4B 0x6DDA
+0x9C4C 0x6DDF
+0x9C4D-0x9C4E 0x6DE2
+0x9C4F 0x6DE5
+0x9C50-0x9C53 0x6DE7
+0x9C54 0x6DED
+0x9C55-0x9C56 0x6DEF
+0x9C57 0x6DF2
+0x9C58-0x9C5A 0x6DF4
+0x9C5B 0x6DF8
+0x9C5C 0x6DFA
+0x9C5D-0x9C64 0x6DFD
+0x9C65-0x9C68 0x6E06
+0x9C69 0x6E0B
+0x9C6A 0x6E0F
+0x9C6B-0x9C6C 0x6E12
+0x9C6D 0x6E15
+0x9C6E-0x9C6F 0x6E18
+0x9C70-0x9C71 0x6E1B
+0x9C72-0x9C73 0x6E1E
+0x9C74 0x6E22
+0x9C75-0x9C77 0x6E26
+0x9C78 0x6E2A
+0x9C79 0x6E2C
+0x9C7A 0x6E2E
+0x9C7B-0x9C7C 0x6E30
+0x9C7D 0x6E33
+0x9C7E 0x6E35
+0x9C80-0x9C81 0x6E36
+0x9C82 0x6E39
+0x9C83-0x9C8A 0x6E3B
+0x9C8B-0x9C92 0x6E45
+0x9C93-0x9C96 0x6E4F
+0x9C97 0x6E55
+0x9C98 0x6E57
+0x9C99-0x9C9A 0x6E59
+0x9C9B-0x9C9D 0x6E5C
+0x9C9E-0x9CA8 0x6E60
+0x9CA9-0x9CAA 0x6E6C
+0x9CAB-0x9CB9 0x6E6F
+0x9CBA-0x9CBC 0x6E80
+0x9CBD 0x6E84
+0x9CBE-0x9CBF 0x6E87
+0x9CC0-0x9CC4 0x6E8A
+0x9CC5-0x9CCB 0x6E91
+0x9CCC-0x9CCE 0x6E99
+0x9CCF-0x9CD0 0x6E9D
+0x9CD1-0x9CD2 0x6EA0
+0x9CD3-0x9CD4 0x6EA3
+0x9CD5 0x6EA6
+0x9CD6-0x9CD7 0x6EA8
+0x9CD8-0x9CDB 0x6EAB
+0x9CDC 0x6EB0
+0x9CDD 0x6EB3
+0x9CDE 0x6EB5
+0x9CDF-0x9CE0 0x6EB8
+0x9CE1 0x6EBC
+0x9CE2-0x9CE4 0x6EBE
+0x9CE5-0x9CE8 0x6EC3
+0x9CE9-0x9CEB 0x6EC8
+0x9CEC-0x9CEE 0x6ECC
+0x9CEF 0x6ED0
+0x9CF0 0x6ED2
+0x9CF1 0x6ED6
+0x9CF2-0x9CF3 0x6ED8
+0x9CF4-0x9CF6 0x6EDB
+0x9CF7 0x6EE3
+0x9CF8 0x6EE7
+0x9CF9-0x9D43 0x6EEA
+0x9D44-0x9D47 0x6EF5
+0x9D48-0x9D4F 0x6EFA
+0x9D50-0x9D52 0x6F03
+0x9D53-0x9D54 0x6F07
+0x9D55-0x9D59 0x6F0A
+0x9D5A-0x9D5C 0x6F10
+0x9D5D-0x9D66 0x6F16
+0x9D67-0x9D69 0x6F21
+0x9D6A-0x9D6D 0x6F25
+0x9D6E 0x6F2C
+0x9D6F 0x6F2E
+0x9D70 0x6F30
+0x9D71 0x6F32
+0x9D72-0x9D73 0x6F34
+0x9D74-0x9D7A 0x6F37
+0x9D7B-0x9D7E 0x6F3F
+0x9D80-0x9D82 0x6F43
+0x9D83-0x9D85 0x6F48
+0x9D86 0x6F4C
+0x9D87-0x9D90 0x6F4E
+0x9D91-0x9D93 0x6F59
+0x9D94 0x6F5D
+0x9D95-0x9D97 0x6F5F
+0x9D98-0x9D9A 0x6F63
+0x9D9B-0x9DA0 0x6F67
+0x9DA1-0x9DA3 0x6F6F
+0x9DA4 0x6F73
+0x9DA5-0x9DA7 0x6F75
+0x9DA8 0x6F79
+0x9DA9 0x6F7B
+0x9DAA-0x9DB0 0x6F7D
+0x9DB1-0x9DB3 0x6F85
+0x9DB4-0x9DB5 0x6F8A
+0x9DB6-0x9DC2 0x6F8F
+0x9DC3-0x9DC6 0x6F9D
+0x9DC7-0x9DCB 0x6FA2
+0x9DCC-0x9DD6 0x6FA8
+0x9DD7-0x9DD8 0x6FB4
+0x9DD9-0x9DDA 0x6FB7
+0x9DDB-0x9DE0 0x6FBA
+0x9DE1 0x6FC1
+0x9DE2-0x9DE7 0x6FC3
+0x9DE8-0x9DEE 0x6FCA
+0x9DEF-0x9DF9 0x6FD3
+0x9DFA 0x6FDF
+0x9DFB-0x9E47 0x6FE2
+0x9E48-0x9E68 0x6FF0
+0x9E69-0x9E70 0x7012
+0x9E71-0x9E77 0x701C
+0x9E78-0x9E7E 0x7024
+0x9E80-0x9E89 0x702B
+0x9E8A-0x9E8C 0x7036
+0x9E8D-0x9E9E 0x703A
+0x9E9F-0x9EA0 0x704D
+0x9EA1-0x9EAE 0x7050
+0x9EAF-0x9EBA 0x705F
+0x9EBB 0x706E
+0x9EBC-0x9EBF 0x7071
+0x9EC0 0x7077
+0x9EC1-0x9EC3 0x7079
+0x9EC4 0x707D
+0x9EC5-0x9EC8 0x7081
+0x9EC9-0x9ECB 0x7086
+0x9ECC-0x9ECE 0x708B
+0x9ECF-0x9ED1 0x708F
+0x9ED2 0x7093
+0x9ED3-0x9ED4 0x7097
+0x9ED5-0x9ED6 0x709A
+0x9ED7-0x9EE3 0x709E
+0x9EE4 0x70B0
+0x9EE5 0x70B2
+0x9EE6-0x9EE8 0x70B4
+0x9EE9 0x70BA
+0x9EEA-0x9EEB 0x70BE
+0x9EEC-0x9EEF 0x70C4
+0x9EF0 0x70C9
+0x9EF1-0x9EFD 0x70CB
+0x9EFE 0x70DA
+0x9F40-0x9F42 0x70DC
+0x9F43-0x9F46 0x70E0
+0x9F47 0x70E5
+0x9F48 0x70EA
+0x9F49 0x70EE
+0x9F4A-0x9F50 0x70F0
+0x9F51 0x70F8
+0x9F52-0x9F54 0x70FA
+0x9F55-0x9F5F 0x70FE
+0x9F60-0x9F64 0x710B
+0x9F65-0x9F66 0x7111
+0x9F67 0x7114
+0x9F68 0x7117
+0x9F69-0x9F73 0x711B
+0x9F74-0x9F7B 0x7127
+0x9F7C-0x9F7E 0x7132
+0x9F80 0x7135
+0x9F81-0x9F8E 0x7137
+0x9F8F-0x9F92 0x7146
+0x9F93 0x714B
+0x9F94 0x714D
+0x9F95-0x9FA1 0x714F
+0x9FA2 0x715D
+0x9FA3-0x9FA7 0x715F
+0x9FA8 0x7165
+0x9FA9-0x9FAD 0x7169
+0x9FAE-0x9FB0 0x716F
+0x9FB1-0x9FB4 0x7174
+0x9FB5 0x7179
+0x9FB6-0x9FB7 0x717B
+0x9FB8-0x9FBD 0x717E
+0x9FBE-0x9FC2 0x7185
+0x9FC3-0x9FC6 0x718B
+0x9FC7-0x9FCA 0x7190
+0x9FCB-0x9FCD 0x7195
+0x9FCE-0x9FD2 0x719A
+0x9FD3-0x9FD9 0x71A1
+0x9FDA-0x9FDC 0x71A9
+0x9FDD-0x9FE2 0x71AD
+0x9FE3 0x71B4
+0x9FE4-0x9FE6 0x71B6
+0x9FE7-0x9FEF 0x71BA
+0x9FF0-0x9FF9 0x71C4
+0x9FFA-0x9FFE 0x71CF
+0xA040-0xA049 0x71D6
+0xA04A-0xA04D 0x71E1
+0xA04E 0x71E6
+0xA04F-0xA054 0x71E8
+0xA055-0xA05E 0x71EF
+0xA05F-0xA06A 0x71FA
+0xA06B-0xA07E 0x7207
+0xA080-0xA081 0x721B
+0xA082-0xA08B 0x721E
+0xA08C 0x7229
+0xA08D 0x722B
+0xA08E-0xA090 0x722D
+0xA091-0xA093 0x7232
+0xA094 0x723A
+0xA095 0x723C
+0xA096 0x723E
+0xA097-0xA09D 0x7240
+0xA09E-0xA0A0 0x7249
+0xA0A1-0xA0A4 0x724E
+0xA0A5-0xA0A7 0x7253
+0xA0A8-0xA0A9 0x7257
+0xA0AA 0x725A
+0xA0AB 0x725C
+0xA0AC 0x725E
+0xA0AD 0x7260
+0xA0AE-0xA0B0 0x7263
+0xA0B1 0x7268
+0xA0B2-0xA0B5 0x726A
+0xA0B6-0xA0B7 0x7270
+0xA0B8-0xA0B9 0x7273
+0xA0BA-0xA0BC 0x7276
+0xA0BD-0xA0BF 0x727B
+0xA0C0-0xA0C1 0x7282
+0xA0C2-0xA0C6 0x7285
+0xA0C7 0x728C
+0xA0C8 0x728E
+0xA0C9-0xA0CA 0x7290
+0xA0CB-0xA0D6 0x7293
+0xA0D7-0xA0E2 0x72A0
+0xA0E3 0x72AE
+0xA0E4-0xA0E6 0x72B1
+0xA0E7 0x72B5
+0xA0E8-0xA0EE 0x72BA
+0xA0EF-0xA0F1 0x72C5
+0xA0F2-0xA0F5 0x72C9
+0xA0F6 0x72CF
+0xA0F7 0x72D1
+0xA0F8-0xA0FB 0x72D3
+0xA0FC 0x72D8
+0xA0FD-0xA0FE 0x72DA
+0xA140-0xA17E 0xE4C6
+0xA180-0xA1A0 0xE505
+0xA1A1-0xA1A3 0x3000
+0xA1A4 0x00B7
+0xA1A5 0x02C9
+0xA1A6 0x02C7
+0xA1A7 0x00A8
+0xA1A8 0x3003
+0xA1A9 0x3005
+0xA1AA 0x2014
+0xA1AB 0xFF5E
+0xA1AC 0x2016
+0xA1AD 0x2026
+0xA1AE-0xA1AF 0x2018
+0xA1B0-0xA1B1 0x201C
+0xA1B2-0xA1B3 0x3014
+0xA1B4-0xA1BB 0x3008
+0xA1BC-0xA1BD 0x3016
+0xA1BE-0xA1BF 0x3010
+0xA1C0 0x00B1
+0xA1C1 0x00D7
+0xA1C2 0x00F7
+0xA1C3 0x2236
+0xA1C4-0xA1C5 0x2227
+0xA1C6 0x2211
+0xA1C7 0x220F
+0xA1C8 0x222A
+0xA1C9 0x2229
+0xA1CA 0x2208
+0xA1CB 0x2237
+0xA1CC 0x221A
+0xA1CD 0x22A5
+0xA1CE 0x2225
+0xA1CF 0x2220
+0xA1D0 0x2312
+0xA1D1 0x2299
+0xA1D2 0x222B
+0xA1D3 0x222E
+0xA1D4 0x2261
+0xA1D5 0x224C
+0xA1D6 0x2248
+0xA1D7 0x223D
+0xA1D8 0x221D
+0xA1D9 0x2260
+0xA1DA-0xA1DB 0x226E
+0xA1DC-0xA1DD 0x2264
+0xA1DE 0x221E
+0xA1DF 0x2235
+0xA1E0 0x2234
+0xA1E1 0x2642
+0xA1E2 0x2640
+0xA1E3 0x00B0
+0xA1E4-0xA1E5 0x2032
+0xA1E6 0x2103
+0xA1E7 0xFF04
+0xA1E8 0x00A4
+0xA1E9-0xA1EA 0xFFE0
+0xA1EB 0x2030
+0xA1EC 0x00A7
+0xA1ED 0x2116
+0xA1EE 0x2606
+0xA1EF 0x2605
+0xA1F0 0x25CB
+0xA1F1 0x25CF
+0xA1F2 0x25CE
+0xA1F3 0x25C7
+0xA1F4 0x25C6
+0xA1F5 0x25A1
+0xA1F6 0x25A0
+0xA1F7 0x25B3
+0xA1F8 0x25B2
+0xA1F9 0x203B
+0xA1FA 0x2192
+0xA1FB-0xA1FC 0x2190
+0xA1FD 0x2193
+0xA1FE 0x3013
+0xA240-0xA27E 0xE526
+0xA280-0xA2A0 0xE565
+0xA2A1-0xA2AA 0x2170
+0xA2AB-0xA2B0 0xE766
+0xA2B1-0xA2C4 0x2488
+0xA2C5-0xA2D8 0x2474
+0xA2D9-0xA2E2 0x2460
+0xA2E3 0x20AC
+0xA2E4 0xE76D
+0xA2E5-0xA2EE 0x3220
+0xA2EF-0xA2F0 0xE76E
+0xA2F1-0xA2FC 0x2160
+0xA2FD-0xA2FE 0xE770
+0xA340-0xA37E 0xE586
+0xA380-0xA3A0 0xE5C5
+0xA3A1-0xA3A3 0xFF01
+0xA3A4 0xFFE5
+0xA3A5-0xA3FD 0xFF05
+0xA3FE 0xFFE3
+0xA440-0xA47E 0xE5E6
+0xA480-0xA4A0 0xE625
+0xA4A1-0xA4F3 0x3041
+0xA4F4-0xA4FE 0xE772
+0xA540-0xA57E 0xE646
+0xA580-0xA5A0 0xE685
+0xA5A1-0xA5F6 0x30A1
+0xA5F7-0xA5FE 0xE77D
+0xA640-0xA67E 0xE6A6
+0xA680-0xA6A0 0xE6E5
+0xA6A1-0xA6B1 0x0391
+0xA6B2-0xA6B8 0x03A3
+0xA6B9-0xA6C0 0xE785
+0xA6C1-0xA6D1 0x03B1
+0xA6D2-0xA6D8 0x03C3
+0xA6D9-0xA6DF 0xE78D
+0xA6E0-0xA6E1 0xFE35
+0xA6E2-0xA6E3 0xFE39
+0xA6E4-0xA6E5 0xFE3F
+0xA6E6-0xA6E7 0xFE3D
+0xA6E8-0xA6EB 0xFE41
+0xA6EC-0xA6ED 0xE794
+0xA6EE-0xA6EF 0xFE3B
+0xA6F0-0xA6F1 0xFE37
+0xA6F2 0xFE31
+0xA6F3 0xE796
+0xA6F4-0xA6F5 0xFE33
+0xA6F6-0xA6FE 0xE797
+0xA740-0xA77E 0xE706
+0xA780-0xA7A0 0xE745
+0xA7A1-0xA7A6 0x0410
+0xA7A7 0x0401
+0xA7A8-0xA7C1 0x0416
+0xA7C2-0xA7D0 0xE7A0
+0xA7D1-0xA7D6 0x0430
+0xA7D7 0x0451
+0xA7D8-0xA7F1 0x0436
+0xA7F2-0xA7FE 0xE7AF
+0xA840-0xA841 0x02CA
+0xA842 0x02D9
+0xA843 0x2013
+0xA844 0x2015
+0xA845 0x2025
+0xA846 0x2035
+0xA847 0x2105
+0xA848 0x2109
+0xA849-0xA84C 0x2196
+0xA84D 0x2215
+0xA84E 0x221F
+0xA84F 0x2223
+0xA850 0x2252
+0xA851-0xA852 0x2266
+0xA853 0x22BF
+0xA854-0xA877 0x2550
+0xA878-0xA87E 0x2581
+0xA880-0xA887 0x2588
+0xA888-0xA88A 0x2593
+0xA88B-0xA88C 0x25BC
+0xA88D-0xA890 0x25E2
+0xA891 0x2609
+0xA892 0x2295
+0xA893 0x3012
+0xA894-0xA895 0x301D
+0xA896-0xA8A0 0xE7BC
+0xA8A1 0x0101
+0xA8A2 0x00E1
+0xA8A3 0x01CE
+0xA8A4 0x00E0
+0xA8A5 0x0113
+0xA8A6 0x00E9
+0xA8A7 0x011B
+0xA8A8 0x00E8
+0xA8A9 0x012B
+0xA8AA 0x00ED
+0xA8AB 0x01D0
+0xA8AC 0x00EC
+0xA8AD 0x014D
+0xA8AE 0x00F3
+0xA8AF 0x01D2
+0xA8B0 0x00F2
+0xA8B1 0x016B
+0xA8B2 0x00FA
+0xA8B3 0x01D4
+0xA8B4 0x00F9
+0xA8B5 0x01D6
+0xA8B6 0x01D8
+0xA8B7 0x01DA
+0xA8B8 0x01DC
+0xA8B9 0x00FC
+0xA8BA 0x00EA
+0xA8BB 0x0251
+0xA8BC 0xE7C7
+0xA8BD 0x0144
+0xA8BE 0x0148
+0xA8BF 0x01F9
+0xA8C0 0x0261
+0xA8C1-0xA8C4 0xE7C9
+0xA8C5-0xA8E9 0x3105
+0xA8EA-0xA8FE 0xE7CD
+0xA940-0xA948 0x3021
+0xA949 0x32A3
+0xA94A-0xA94B 0x338E
+0xA94C-0xA94E 0x339C
+0xA94F 0x33A1
+0xA950 0x33C4
+0xA951 0x33CE
+0xA952-0xA953 0x33D1
+0xA954 0x33D5
+0xA955 0xFE30
+0xA956 0xFFE2
+0xA957 0xFFE4
+0xA958 0xE7E2
+0xA959 0x2121
+0xA95A 0x3231
+0xA95B 0xE7E3
+0xA95C 0x2010
+0xA95D-0xA95F 0xE7E4
+0xA960 0x30FC
+0xA961-0xA962 0x309B
+0xA963-0xA964 0x30FD
+0xA965 0x3006
+0xA966-0xA967 0x309D
+0xA968-0xA971 0xFE49
+0xA972-0xA975 0xFE54
+0xA976-0xA97E 0xFE59
+0xA980-0xA984 0xFE62
+0xA985-0xA988 0xFE68
+0xA989 0x303E
+0xA98A-0xA995 0x2FF0
+0xA996 0x3007
+0xA997-0xA9A3 0xE7F4
+0xA9A4-0xA9EF 0x2500
+0xA9F0-0xA9FE 0xE801
+0xAA40-0xAA41 0x72DC
+0xAA42 0x72DF
+0xAA43-0xAA48 0x72E2
+0xAA49-0xAA4A 0x72EA
+0xAA4B-0xAA4C 0x72F5
+0xAA4D 0x72F9
+0xAA4E-0xAA51 0x72FD
+0xAA52 0x7302
+0xAA53-0xAA58 0x7304
+0xAA59-0xAA5B 0x730B
+0xAA5C-0xAA5F 0x730F
+0xAA60 0x7314
+0xAA61-0xAA63 0x7318
+0xAA64-0xAA65 0x731F
+0xAA66-0xAA67 0x7323
+0xAA68-0xAA6A 0x7326
+0xAA6B 0x732D
+0xAA6C-0xAA6D 0x732F
+0xAA6E-0xAA6F 0x7332
+0xAA70-0xAA71 0x7335
+0xAA72-0xAA75 0x733A
+0xAA76-0xAA7E 0x7340
+0xAA80-0xAA83 0x7349
+0xAA84-0xAA85 0x734E
+0xAA86 0x7351
+0xAA87-0xAA8A 0x7353
+0xAA8B-0xAA92 0x7358
+0xAA93-0xAA9D 0x7361
+0xAA9E 0x736E
+0xAA9F-0xAAA0 0x7370
+0xAAA1-0xAAFE 0xE000
+0xAB40-0xAB4B 0x7372
+0xAB4C-0xAB50 0x737F
+0xAB51-0xAB52 0x7385
+0xAB53 0x7388
+0xAB54 0x738A
+0xAB55-0xAB56 0x738C
+0xAB57-0xAB58 0x738F
+0xAB59-0xAB5C 0x7392
+0xAB5D-0xAB60 0x7397
+0xAB61-0xAB63 0x739C
+0xAB64-0xAB65 0x73A0
+0xAB66-0xAB6B 0x73A3
+0xAB6C 0x73AA
+0xAB6D-0xAB6E 0x73AC
+0xAB6F 0x73B1
+0xAB70-0xAB72 0x73B4
+0xAB73-0xAB74 0x73B8
+0xAB75-0xAB78 0x73BC
+0xAB79 0x73C1
+0xAB7A-0xAB7E 0x73C3
+0xAB80-0xAB81 0x73CB
+0xAB82 0x73CE
+0xAB83-0xAB89 0x73D2
+0xAB8A-0xAB8D 0x73DA
+0xAB8E 0x73DF
+0xAB8F-0xAB92 0x73E1
+0xAB93 0x73E6
+0xAB94 0x73E8
+0xAB95-0xAB97 0x73EA
+0xAB98-0xAB9B 0x73EE
+0xAB9C-0xABA0 0x73F3
+0xABA1-0xABFE 0xE05E
+0xAC40-0xAC4A 0x73F8
+0xAC4B 0x7404
+0xAC4C-0xAC4D 0x7407
+0xAC4E-0xAC51 0x740B
+0xAC52-0xAC5A 0x7411
+0xAC5B-0xAC60 0x741C
+0xAC61-0xAC62 0x7423
+0xAC63 0x7427
+0xAC64 0x7429
+0xAC65 0x742B
+0xAC66 0x742D
+0xAC67 0x742F
+0xAC68-0xAC69 0x7431
+0xAC6A-0xAC6E 0x7437
+0xAC6F-0xAC72 0x743D
+0xAC73-0xAC7E 0x7442
+0xAC80-0xAC86 0x744E
+0xAC87 0x7456
+0xAC88 0x7458
+0xAC89 0x745D
+0xAC8A-0xAC96 0x7460
+0xAC97-0xAC98 0x746E
+0xAC99-0xAC9D 0x7471
+0xAC9E-0xACA0 0x7478
+0xACA1-0xACFE 0xE0BC
+0xAD40-0xAD42 0x747B
+0xAD43 0x747F
+0xAD44 0x7482
+0xAD45-0xAD47 0x7484
+0xAD48-0xAD4A 0x7488
+0xAD4B-0xAD4C 0x748C
+0xAD4D 0x748F
+0xAD4E-0xAD58 0x7491
+0xAD59 0x749D
+0xAD5A-0xAD61 0x749F
+0xAD62-0xAD71 0x74AA
+0xAD72-0xAD7E 0x74BB
+0xAD80-0xAD89 0x74C8
+0xAD8A-0xAD92 0x74D3
+0xAD93 0x74DD
+0xAD94 0x74DF
+0xAD95 0x74E1
+0xAD96 0x74E5
+0xAD97-0xAD9D 0x74E7
+0xAD9E-0xADA0 0x74F0
+0xADA1-0xADFE 0xE11A
+0xAE40 0x74F3
+0xAE41 0x74F5
+0xAE42-0xAE48 0x74F8
+0xAE49-0xAE4C 0x7500
+0xAE4D-0xAE54 0x7505
+0xAE55 0x750E
+0xAE56 0x7510
+0xAE57 0x7512
+0xAE58-0xAE5B 0x7514
+0xAE5C 0x751B
+0xAE5D-0xAE5E 0x751D
+0xAE5F-0xAE63 0x7520
+0xAE64-0xAE65 0x7526
+0xAE66 0x752A
+0xAE67 0x752E
+0xAE68 0x7534
+0xAE69 0x7536
+0xAE6A 0x7539
+0xAE6B-0xAE6C 0x753C
+0xAE6D 0x753F
+0xAE6E-0xAE71 0x7541
+0xAE72-0xAE73 0x7546
+0xAE74-0xAE75 0x7549
+0xAE76 0x754D
+0xAE77-0xAE7A 0x7550
+0xAE7B-0xAE7E 0x7555
+0xAE80-0xAE87 0x755D
+0xAE88-0xAE8A 0x7567
+0xAE8B-0xAE91 0x756B
+0xAE92 0x7573
+0xAE93-0xAE95 0x7575
+0xAE96-0xAE9A 0x757A
+0xAE9B-0xAE9D 0x7580
+0xAE9E-0xAE9F 0x7584
+0xAEA0 0x7587
+0xAEA1-0xAEFE 0xE178
+0xAF40-0xAF42 0x7588
+0xAF43-0xAF45 0x758C
+0xAF46 0x7590
+0xAF47 0x7593
+0xAF48 0x7595
+0xAF49 0x7598
+0xAF4A-0xAF4B 0x759B
+0xAF4C 0x759E
+0xAF4D 0x75A2
+0xAF4E-0xAF52 0x75A6
+0xAF53 0x75AD
+0xAF54-0xAF55 0x75B6
+0xAF56-0xAF57 0x75BA
+0xAF58-0xAF5A 0x75BF
+0xAF5B 0x75C6
+0xAF5C-0xAF5D 0x75CB
+0xAF5E-0xAF61 0x75CE
+0xAF62 0x75D3
+0xAF63 0x75D7
+0xAF64-0xAF65 0x75D9
+0xAF66-0xAF67 0x75DC
+0xAF68-0xAF6A 0x75DF
+0xAF6B 0x75E5
+0xAF6C 0x75E9
+0xAF6D-0xAF70 0x75EC
+0xAF71-0xAF72 0x75F2
+0xAF73-0xAF76 0x75F5
+0xAF77-0xAF78 0x75FA
+0xAF79-0xAF7A 0x75FD
+0xAF7B 0x7602
+0xAF7C 0x7604
+0xAF7D-0xAF7E 0x7606
+0xAF80-0xAF81 0x7608
+0xAF82 0x760B
+0xAF83-0xAF85 0x760D
+0xAF86-0xAF89 0x7611
+0xAF8A 0x7616
+0xAF8B 0x761A
+0xAF8C-0xAF8E 0x761C
+0xAF8F 0x7621
+0xAF90 0x7623
+0xAF91-0xAF92 0x7627
+0xAF93 0x762C
+0xAF94-0xAF95 0x762E
+0xAF96-0xAF97 0x7631
+0xAF98-0xAF99 0x7636
+0xAF9A-0xAF9C 0x7639
+0xAF9D 0x763D
+0xAF9E-0xAF9F 0x7641
+0xAFA0 0x7644
+0xAFA1-0xAFFE 0xE1D6
+0xB040-0xB046 0x7645
+0xB047-0xB04C 0x764E
+0xB04D 0x7655
+0xB04E-0xB052 0x7657
+0xB053 0x765D
+0xB054-0xB057 0x765F
+0xB058-0xB05E 0x7664
+0xB05F-0xB061 0x766C
+0xB062-0xB069 0x7670
+0xB06A-0xB06B 0x7679
+0xB06C 0x767C
+0xB06D-0xB06F 0x767F
+0xB070 0x7683
+0xB071 0x7685
+0xB072-0xB073 0x7689
+0xB074-0xB075 0x768C
+0xB076-0xB077 0x768F
+0xB078 0x7692
+0xB079-0xB07A 0x7694
+0xB07B-0xB07C 0x7697
+0xB07D-0xB07E 0x769A
+0xB080-0xB087 0x769C
+0xB088-0xB090 0x76A5
+0xB091-0xB092 0x76AF
+0xB093 0x76B3
+0xB094-0xB09D 0x76B5
+0xB09E-0xB09F 0x76C0
+0xB0A0 0x76C3
+0xB0A1 0x554A
+0xB0A2 0x963F
+0xB0A3 0x57C3
+0xB0A4 0x6328
+0xB0A5 0x54CE
+0xB0A6 0x5509
+0xB0A7 0x54C0
+0xB0A8 0x7691
+0xB0A9 0x764C
+0xB0AA 0x853C
+0xB0AB 0x77EE
+0xB0AC 0x827E
+0xB0AD 0x788D
+0xB0AE 0x7231
+0xB0AF 0x9698
+0xB0B0 0x978D
+0xB0B1 0x6C28
+0xB0B2 0x5B89
+0xB0B3 0x4FFA
+0xB0B4 0x6309
+0xB0B5 0x6697
+0xB0B6 0x5CB8
+0xB0B7 0x80FA
+0xB0B8 0x6848
+0xB0B9 0x80AE
+0xB0BA 0x6602
+0xB0BB 0x76CE
+0xB0BC 0x51F9
+0xB0BD 0x6556
+0xB0BE 0x71AC
+0xB0BF 0x7FF1
+0xB0C0 0x8884
+0xB0C1 0x50B2
+0xB0C2 0x5965
+0xB0C3 0x61CA
+0xB0C4 0x6FB3
+0xB0C5 0x82AD
+0xB0C6 0x634C
+0xB0C7 0x6252
+0xB0C8 0x53ED
+0xB0C9 0x5427
+0xB0CA 0x7B06
+0xB0CB 0x516B
+0xB0CC 0x75A4
+0xB0CD 0x5DF4
+0xB0CE 0x62D4
+0xB0CF 0x8DCB
+0xB0D0 0x9776
+0xB0D1 0x628A
+0xB0D2 0x8019
+0xB0D3 0x575D
+0xB0D4 0x9738
+0xB0D5 0x7F62
+0xB0D6 0x7238
+0xB0D7 0x767D
+0xB0D8 0x67CF
+0xB0D9 0x767E
+0xB0DA 0x6446
+0xB0DB 0x4F70
+0xB0DC 0x8D25
+0xB0DD 0x62DC
+0xB0DE 0x7A17
+0xB0DF 0x6591
+0xB0E0 0x73ED
+0xB0E1 0x642C
+0xB0E2 0x6273
+0xB0E3 0x822C
+0xB0E4 0x9881
+0xB0E5 0x677F
+0xB0E6 0x7248
+0xB0E7 0x626E
+0xB0E8 0x62CC
+0xB0E9 0x4F34
+0xB0EA 0x74E3
+0xB0EB 0x534A
+0xB0EC 0x529E
+0xB0ED 0x7ECA
+0xB0EE 0x90A6
+0xB0EF 0x5E2E
+0xB0F0 0x6886
+0xB0F1 0x699C
+0xB0F2 0x8180
+0xB0F3 0x7ED1
+0xB0F4 0x68D2
+0xB0F5 0x78C5
+0xB0F6 0x868C
+0xB0F7 0x9551
+0xB0F8 0x508D
+0xB0F9 0x8C24
+0xB0FA 0x82DE
+0xB0FB 0x80DE
+0xB0FC 0x5305
+0xB0FD 0x8912
+0xB0FE 0x5265
+0xB140 0x76C4
+0xB141 0x76C7
+0xB142 0x76C9
+0xB143-0xB144 0x76CB
+0xB145 0x76D3
+0xB146 0x76D5
+0xB147-0xB148 0x76D9
+0xB149-0xB14B 0x76DC
+0xB14C-0xB150 0x76E0
+0xB151-0xB158 0x76E6
+0xB159 0x76F0
+0xB15A 0x76F3
+0xB15B-0xB15D 0x76F5
+0xB15E-0xB15F 0x76FA
+0xB160 0x76FD
+0xB161-0xB162 0x76FF
+0xB163-0xB164 0x7702
+0xB165-0xB166 0x7705
+0xB167 0x770A
+0xB168 0x770C
+0xB169-0xB173 0x770E
+0xB174-0xB177 0x771B
+0xB178 0x7721
+0xB179-0xB17B 0x7723
+0xB17C 0x7727
+0xB17D-0xB17E 0x772A
+0xB180 0x772C
+0xB181 0x772E
+0xB182-0xB186 0x7730
+0xB187 0x7739
+0xB188 0x773B
+0xB189-0xB18B 0x773D
+0xB18C 0x7742
+0xB18D-0xB18F 0x7744
+0xB190-0xB197 0x7748
+0xB198-0xB19F 0x7752
+0xB1A0 0x775C
+0xB1A1 0x8584
+0xB1A2 0x96F9
+0xB1A3 0x4FDD
+0xB1A4 0x5821
+0xB1A5 0x9971
+0xB1A6 0x5B9D
+0xB1A7 0x62B1
+0xB1A8 0x62A5
+0xB1A9 0x66B4
+0xB1AA 0x8C79
+0xB1AB 0x9C8D
+0xB1AC 0x7206
+0xB1AD 0x676F
+0xB1AE 0x7891
+0xB1AF 0x60B2
+0xB1B0 0x5351
+0xB1B1 0x5317
+0xB1B2 0x8F88
+0xB1B3 0x80CC
+0xB1B4 0x8D1D
+0xB1B5 0x94A1
+0xB1B6 0x500D
+0xB1B7 0x72C8
+0xB1B8 0x5907
+0xB1B9 0x60EB
+0xB1BA 0x7119
+0xB1BB 0x88AB
+0xB1BC 0x5954
+0xB1BD 0x82EF
+0xB1BE 0x672C
+0xB1BF 0x7B28
+0xB1C0 0x5D29
+0xB1C1 0x7EF7
+0xB1C2 0x752D
+0xB1C3 0x6CF5
+0xB1C4 0x8E66
+0xB1C5 0x8FF8
+0xB1C6 0x903C
+0xB1C7 0x9F3B
+0xB1C8 0x6BD4
+0xB1C9 0x9119
+0xB1CA 0x7B14
+0xB1CB 0x5F7C
+0xB1CC 0x78A7
+0xB1CD 0x84D6
+0xB1CE 0x853D
+0xB1CF 0x6BD5
+0xB1D0 0x6BD9
+0xB1D1 0x6BD6
+0xB1D2 0x5E01
+0xB1D3 0x5E87
+0xB1D4 0x75F9
+0xB1D5 0x95ED
+0xB1D6 0x655D
+0xB1D7 0x5F0A
+0xB1D8 0x5FC5
+0xB1D9 0x8F9F
+0xB1DA 0x58C1
+0xB1DB 0x81C2
+0xB1DC 0x907F
+0xB1DD 0x965B
+0xB1DE 0x97AD
+0xB1DF 0x8FB9
+0xB1E0 0x7F16
+0xB1E1 0x8D2C
+0xB1E2 0x6241
+0xB1E3 0x4FBF
+0xB1E4 0x53D8
+0xB1E5 0x535E
+0xB1E6-0xB1E7 0x8FA8
+0xB1E8 0x8FAB
+0xB1E9 0x904D
+0xB1EA 0x6807
+0xB1EB 0x5F6A
+0xB1EC 0x8198
+0xB1ED 0x8868
+0xB1EE 0x9CD6
+0xB1EF 0x618B
+0xB1F0 0x522B
+0xB1F1 0x762A
+0xB1F2 0x5F6C
+0xB1F3 0x658C
+0xB1F4 0x6FD2
+0xB1F5 0x6EE8
+0xB1F6 0x5BBE
+0xB1F7 0x6448
+0xB1F8 0x5175
+0xB1F9 0x51B0
+0xB1FA 0x67C4
+0xB1FB 0x4E19
+0xB1FC 0x79C9
+0xB1FD 0x997C
+0xB1FE 0x70B3
+0xB240-0xB243 0x775D
+0xB244 0x7764
+0xB245 0x7767
+0xB246-0xB247 0x7769
+0xB248-0xB253 0x776D
+0xB254-0xB256 0x777A
+0xB257-0xB259 0x7781
+0xB25A-0xB25F 0x7786
+0xB260-0xB261 0x778F
+0xB262-0xB26D 0x7793
+0xB26E 0x77A1
+0xB26F-0xB270 0x77A3
+0xB271 0x77A6
+0xB272 0x77A8
+0xB273 0x77AB
+0xB274-0xB276 0x77AD
+0xB277-0xB278 0x77B1
+0xB279 0x77B4
+0xB27A-0xB27E 0x77B6
+0xB280 0x77BC
+0xB281 0x77BE
+0xB282-0xB28E 0x77C0
+0xB28F-0xB297 0x77CE
+0xB298-0xB29A 0x77D8
+0xB29B-0xB29F 0x77DD
+0xB2A0 0x77E4
+0xB2A1 0x75C5
+0xB2A2 0x5E76
+0xB2A3 0x73BB
+0xB2A4 0x83E0
+0xB2A5 0x64AD
+0xB2A6 0x62E8
+0xB2A7 0x94B5
+0xB2A8 0x6CE2
+0xB2A9 0x535A
+0xB2AA 0x52C3
+0xB2AB 0x640F
+0xB2AC 0x94C2
+0xB2AD 0x7B94
+0xB2AE 0x4F2F
+0xB2AF 0x5E1B
+0xB2B0 0x8236
+0xB2B1 0x8116
+0xB2B2 0x818A
+0xB2B3 0x6E24
+0xB2B4 0x6CCA
+0xB2B5 0x9A73
+0xB2B6 0x6355
+0xB2B7 0x535C
+0xB2B8 0x54FA
+0xB2B9 0x8865
+0xB2BA 0x57E0
+0xB2BB 0x4E0D
+0xB2BC 0x5E03
+0xB2BD 0x6B65
+0xB2BE 0x7C3F
+0xB2BF 0x90E8
+0xB2C0 0x6016
+0xB2C1 0x64E6
+0xB2C2 0x731C
+0xB2C3 0x88C1
+0xB2C4 0x6750
+0xB2C5 0x624D
+0xB2C6 0x8D22
+0xB2C7 0x776C
+0xB2C8 0x8E29
+0xB2C9 0x91C7
+0xB2CA 0x5F69
+0xB2CB 0x83DC
+0xB2CC 0x8521
+0xB2CD 0x9910
+0xB2CE 0x53C2
+0xB2CF 0x8695
+0xB2D0 0x6B8B
+0xB2D1 0x60ED
+0xB2D2 0x60E8
+0xB2D3 0x707F
+0xB2D4 0x82CD
+0xB2D5 0x8231
+0xB2D6 0x4ED3
+0xB2D7 0x6CA7
+0xB2D8 0x85CF
+0xB2D9 0x64CD
+0xB2DA 0x7CD9
+0xB2DB 0x69FD
+0xB2DC 0x66F9
+0xB2DD 0x8349
+0xB2DE 0x5395
+0xB2DF 0x7B56
+0xB2E0 0x4FA7
+0xB2E1 0x518C
+0xB2E2 0x6D4B
+0xB2E3 0x5C42
+0xB2E4 0x8E6D
+0xB2E5 0x63D2
+0xB2E6 0x53C9
+0xB2E7 0x832C
+0xB2E8 0x8336
+0xB2E9 0x67E5
+0xB2EA 0x78B4
+0xB2EB 0x643D
+0xB2EC 0x5BDF
+0xB2ED 0x5C94
+0xB2EE 0x5DEE
+0xB2EF 0x8BE7
+0xB2F0 0x62C6
+0xB2F1 0x67F4
+0xB2F2 0x8C7A
+0xB2F3 0x6400
+0xB2F4 0x63BA
+0xB2F5 0x8749
+0xB2F6 0x998B
+0xB2F7 0x8C17
+0xB2F8 0x7F20
+0xB2F9 0x94F2
+0xB2FA 0x4EA7
+0xB2FB 0x9610
+0xB2FC 0x98A4
+0xB2FD 0x660C
+0xB2FE 0x7316
+0xB340 0x77E6
+0xB341 0x77E8
+0xB342 0x77EA
+0xB343-0xB346 0x77EF
+0xB347-0xB348 0x77F4
+0xB349 0x77F7
+0xB34A-0xB34D 0x77F9
+0xB34E-0xB353 0x7803
+0xB354-0xB355 0x780A
+0xB356-0xB358 0x780E
+0xB359 0x7813
+0xB35A 0x7815
+0xB35B 0x7819
+0xB35C 0x781B
+0xB35D 0x781E
+0xB35E-0xB360 0x7820
+0xB361 0x7824
+0xB362 0x7828
+0xB363-0xB364 0x782A
+0xB365-0xB366 0x782E
+0xB367-0xB369 0x7831
+0xB36A-0xB36B 0x7835
+0xB36C 0x783D
+0xB36D 0x783F
+0xB36E-0xB371 0x7841
+0xB372 0x7846
+0xB373-0xB376 0x7848
+0xB377 0x784D
+0xB378 0x784F
+0xB379 0x7851
+0xB37A-0xB37B 0x7853
+0xB37C-0xB37E 0x7858
+0xB380-0xB381 0x785B
+0xB382-0xB38D 0x785E
+0xB38E-0xB395 0x786F
+0xB396-0xB399 0x7878
+0xB39A-0xB3A0 0x787D
+0xB3A1 0x573A
+0xB3A2 0x5C1D
+0xB3A3 0x5E38
+0xB3A4 0x957F
+0xB3A5 0x507F
+0xB3A6 0x80A0
+0xB3A7 0x5382
+0xB3A8 0x655E
+0xB3A9 0x7545
+0xB3AA 0x5531
+0xB3AB 0x5021
+0xB3AC 0x8D85
+0xB3AD 0x6284
+0xB3AE 0x949E
+0xB3AF 0x671D
+0xB3B0 0x5632
+0xB3B1 0x6F6E
+0xB3B2 0x5DE2
+0xB3B3 0x5435
+0xB3B4 0x7092
+0xB3B5 0x8F66
+0xB3B6 0x626F
+0xB3B7 0x64A4
+0xB3B8 0x63A3
+0xB3B9 0x5F7B
+0xB3BA 0x6F88
+0xB3BB 0x90F4
+0xB3BC 0x81E3
+0xB3BD 0x8FB0
+0xB3BE 0x5C18
+0xB3BF 0x6668
+0xB3C0 0x5FF1
+0xB3C1 0x6C89
+0xB3C2 0x9648
+0xB3C3 0x8D81
+0xB3C4 0x886C
+0xB3C5 0x6491
+0xB3C6 0x79F0
+0xB3C7 0x57CE
+0xB3C8 0x6A59
+0xB3C9 0x6210
+0xB3CA 0x5448
+0xB3CB 0x4E58
+0xB3CC 0x7A0B
+0xB3CD 0x60E9
+0xB3CE 0x6F84
+0xB3CF 0x8BDA
+0xB3D0 0x627F
+0xB3D1 0x901E
+0xB3D2 0x9A8B
+0xB3D3 0x79E4
+0xB3D4 0x5403
+0xB3D5 0x75F4
+0xB3D6 0x6301
+0xB3D7 0x5319
+0xB3D8 0x6C60
+0xB3D9 0x8FDF
+0xB3DA 0x5F1B
+0xB3DB 0x9A70
+0xB3DC 0x803B
+0xB3DD 0x9F7F
+0xB3DE 0x4F88
+0xB3DF 0x5C3A
+0xB3E0 0x8D64
+0xB3E1 0x7FC5
+0xB3E2 0x65A5
+0xB3E3 0x70BD
+0xB3E4 0x5145
+0xB3E5 0x51B2
+0xB3E6 0x866B
+0xB3E7 0x5D07
+0xB3E8 0x5BA0
+0xB3E9 0x62BD
+0xB3EA 0x916C
+0xB3EB 0x7574
+0xB3EC 0x8E0C
+0xB3ED 0x7A20
+0xB3EE 0x6101
+0xB3EF 0x7B79
+0xB3F0 0x4EC7
+0xB3F1 0x7EF8
+0xB3F2 0x7785
+0xB3F3 0x4E11
+0xB3F4 0x81ED
+0xB3F5 0x521D
+0xB3F6 0x51FA
+0xB3F7 0x6A71
+0xB3F8 0x53A8
+0xB3F9 0x8E87
+0xB3FA 0x9504
+0xB3FB 0x96CF
+0xB3FC 0x6EC1
+0xB3FD 0x9664
+0xB3FE 0x695A
+0xB440-0xB442 0x7884
+0xB443 0x7888
+0xB444-0xB445 0x788A
+0xB446-0xB447 0x788F
+0xB448 0x7892
+0xB449-0xB44B 0x7894
+0xB44C 0x7899
+0xB44D-0xB44E 0x789D
+0xB44F 0x78A0
+0xB450 0x78A2
+0xB451 0x78A4
+0xB452 0x78A6
+0xB453-0xB45A 0x78A8
+0xB45B-0xB45E 0x78B5
+0xB45F-0xB462 0x78BA
+0xB463-0xB464 0x78BF
+0xB465-0xB467 0x78C2
+0xB468-0xB46A 0x78C6
+0xB46B-0xB46E 0x78CC
+0xB46F-0xB471 0x78D1
+0xB472-0xB474 0x78D6
+0xB475-0xB47E 0x78DA
+0xB480-0xB483 0x78E4
+0xB484-0xB486 0x78E9
+0xB487-0xB48B 0x78ED
+0xB48C 0x78F3
+0xB48D-0xB48E 0x78F5
+0xB48F-0xB490 0x78F8
+0xB491-0xB496 0x78FB
+0xB497-0xB499 0x7902
+0xB49A-0xB4A0 0x7906
+0xB4A1 0x7840
+0xB4A2 0x50A8
+0xB4A3 0x77D7
+0xB4A4 0x6410
+0xB4A5 0x89E6
+0xB4A6 0x5904
+0xB4A7 0x63E3
+0xB4A8 0x5DDD
+0xB4A9 0x7A7F
+0xB4AA 0x693D
+0xB4AB 0x4F20
+0xB4AC 0x8239
+0xB4AD 0x5598
+0xB4AE 0x4E32
+0xB4AF 0x75AE
+0xB4B0 0x7A97
+0xB4B1 0x5E62
+0xB4B2 0x5E8A
+0xB4B3 0x95EF
+0xB4B4 0x521B
+0xB4B5 0x5439
+0xB4B6 0x708A
+0xB4B7 0x6376
+0xB4B8 0x9524
+0xB4B9 0x5782
+0xB4BA 0x6625
+0xB4BB 0x693F
+0xB4BC 0x9187
+0xB4BD 0x5507
+0xB4BE 0x6DF3
+0xB4BF 0x7EAF
+0xB4C0 0x8822
+0xB4C1 0x6233
+0xB4C2 0x7EF0
+0xB4C3 0x75B5
+0xB4C4 0x8328
+0xB4C5 0x78C1
+0xB4C6 0x96CC
+0xB4C7 0x8F9E
+0xB4C8 0x6148
+0xB4C9 0x74F7
+0xB4CA 0x8BCD
+0xB4CB 0x6B64
+0xB4CC 0x523A
+0xB4CD 0x8D50
+0xB4CE 0x6B21
+0xB4CF 0x806A
+0xB4D0 0x8471
+0xB4D1 0x56F1
+0xB4D2 0x5306
+0xB4D3 0x4ECE
+0xB4D4 0x4E1B
+0xB4D5 0x51D1
+0xB4D6 0x7C97
+0xB4D7 0x918B
+0xB4D8 0x7C07
+0xB4D9 0x4FC3
+0xB4DA 0x8E7F
+0xB4DB 0x7BE1
+0xB4DC 0x7A9C
+0xB4DD 0x6467
+0xB4DE 0x5D14
+0xB4DF 0x50AC
+0xB4E0 0x8106
+0xB4E1 0x7601
+0xB4E2 0x7CB9
+0xB4E3 0x6DEC
+0xB4E4 0x7FE0
+0xB4E5 0x6751
+0xB4E6 0x5B58
+0xB4E7 0x5BF8
+0xB4E8 0x78CB
+0xB4E9 0x64AE
+0xB4EA 0x6413
+0xB4EB 0x63AA
+0xB4EC 0x632B
+0xB4ED 0x9519
+0xB4EE 0x642D
+0xB4EF 0x8FBE
+0xB4F0 0x7B54
+0xB4F1 0x7629
+0xB4F2 0x6253
+0xB4F3 0x5927
+0xB4F4 0x5446
+0xB4F5 0x6B79
+0xB4F6 0x50A3
+0xB4F7 0x6234
+0xB4F8 0x5E26
+0xB4F9 0x6B86
+0xB4FA 0x4EE3
+0xB4FB 0x8D37
+0xB4FC 0x888B
+0xB4FD 0x5F85
+0xB4FE 0x902E
+0xB540-0xB545 0x790D
+0xB546-0xB54F 0x7914
+0xB550-0xB554 0x791F
+0xB555-0xB563 0x7925
+0xB564-0xB568 0x7935
+0xB569 0x793D
+0xB56A 0x793F
+0xB56B-0xB56E 0x7942
+0xB56F 0x7947
+0xB570-0xB578 0x794A
+0xB579-0xB57A 0x7954
+0xB57B-0xB57C 0x7958
+0xB57D 0x7961
+0xB57E 0x7963
+0xB580 0x7964
+0xB581 0x7966
+0xB582-0xB585 0x7969
+0xB586 0x796E
+0xB587-0xB58D 0x7970
+0xB58E 0x7979
+0xB58F-0xB593 0x797B
+0xB594-0xB595 0x7982
+0xB596-0xB599 0x7986
+0xB59A-0xB59D 0x798B
+0xB59E-0xB5A0 0x7990
+0xB5A1 0x6020
+0xB5A2 0x803D
+0xB5A3 0x62C5
+0xB5A4 0x4E39
+0xB5A5 0x5355
+0xB5A6 0x90F8
+0xB5A7 0x63B8
+0xB5A8 0x80C6
+0xB5A9 0x65E6
+0xB5AA 0x6C2E
+0xB5AB 0x4F46
+0xB5AC 0x60EE
+0xB5AD 0x6DE1
+0xB5AE 0x8BDE
+0xB5AF 0x5F39
+0xB5B0 0x86CB
+0xB5B1 0x5F53
+0xB5B2 0x6321
+0xB5B3 0x515A
+0xB5B4 0x8361
+0xB5B5 0x6863
+0xB5B6 0x5200
+0xB5B7 0x6363
+0xB5B8 0x8E48
+0xB5B9 0x5012
+0xB5BA 0x5C9B
+0xB5BB 0x7977
+0xB5BC 0x5BFC
+0xB5BD 0x5230
+0xB5BE 0x7A3B
+0xB5BF 0x60BC
+0xB5C0 0x9053
+0xB5C1 0x76D7
+0xB5C2 0x5FB7
+0xB5C3 0x5F97
+0xB5C4 0x7684
+0xB5C5 0x8E6C
+0xB5C6 0x706F
+0xB5C7 0x767B
+0xB5C8 0x7B49
+0xB5C9 0x77AA
+0xB5CA 0x51F3
+0xB5CB 0x9093
+0xB5CC 0x5824
+0xB5CD 0x4F4E
+0xB5CE 0x6EF4
+0xB5CF 0x8FEA
+0xB5D0 0x654C
+0xB5D1 0x7B1B
+0xB5D2 0x72C4
+0xB5D3 0x6DA4
+0xB5D4 0x7FDF
+0xB5D5 0x5AE1
+0xB5D6 0x62B5
+0xB5D7 0x5E95
+0xB5D8 0x5730
+0xB5D9 0x8482
+0xB5DA 0x7B2C
+0xB5DB 0x5E1D
+0xB5DC 0x5F1F
+0xB5DD 0x9012
+0xB5DE 0x7F14
+0xB5DF 0x98A0
+0xB5E0 0x6382
+0xB5E1 0x6EC7
+0xB5E2 0x7898
+0xB5E3 0x70B9
+0xB5E4 0x5178
+0xB5E5 0x975B
+0xB5E6 0x57AB
+0xB5E7 0x7535
+0xB5E8 0x4F43
+0xB5E9 0x7538
+0xB5EA 0x5E97
+0xB5EB 0x60E6
+0xB5EC 0x5960
+0xB5ED 0x6DC0
+0xB5EE 0x6BBF
+0xB5EF 0x7889
+0xB5F0 0x53FC
+0xB5F1 0x96D5
+0xB5F2 0x51CB
+0xB5F3 0x5201
+0xB5F4 0x6389
+0xB5F5 0x540A
+0xB5F6 0x9493
+0xB5F7 0x8C03
+0xB5F8 0x8DCC
+0xB5F9 0x7239
+0xB5FA 0x789F
+0xB5FB 0x8776
+0xB5FC 0x8FED
+0xB5FD 0x8C0D
+0xB5FE 0x53E0
+0xB640-0xB646 0x7993
+0xB647-0xB652 0x799B
+0xB653-0xB65D 0x79A8
+0xB65E-0xB662 0x79B4
+0xB663 0x79BC
+0xB664 0x79BF
+0xB665 0x79C2
+0xB666-0xB667 0x79C4
+0xB668-0xB669 0x79C7
+0xB66A 0x79CA
+0xB66B 0x79CC
+0xB66C-0xB66E 0x79CE
+0xB66F-0xB670 0x79D3
+0xB671-0xB672 0x79D6
+0xB673-0xB678 0x79D9
+0xB679-0xB67B 0x79E0
+0xB67C 0x79E5
+0xB67D 0x79E8
+0xB67E 0x79EA
+0xB680 0x79EC
+0xB681 0x79EE
+0xB682-0xB688 0x79F1
+0xB689-0xB68A 0x79F9
+0xB68B 0x79FC
+0xB68C-0xB68D 0x79FE
+0xB68E 0x7A01
+0xB68F-0xB690 0x7A04
+0xB691-0xB694 0x7A07
+0xB695 0x7A0C
+0xB696-0xB69A 0x7A0F
+0xB69B-0xB69C 0x7A15
+0xB69D-0xB69E 0x7A18
+0xB69F-0xB6A0 0x7A1B
+0xB6A1 0x4E01
+0xB6A2 0x76EF
+0xB6A3 0x53EE
+0xB6A4 0x9489
+0xB6A5 0x9876
+0xB6A6 0x9F0E
+0xB6A7 0x952D
+0xB6A8 0x5B9A
+0xB6A9 0x8BA2
+0xB6AA 0x4E22
+0xB6AB 0x4E1C
+0xB6AC 0x51AC
+0xB6AD 0x8463
+0xB6AE 0x61C2
+0xB6AF 0x52A8
+0xB6B0 0x680B
+0xB6B1 0x4F97
+0xB6B2 0x606B
+0xB6B3 0x51BB
+0xB6B4 0x6D1E
+0xB6B5 0x515C
+0xB6B6 0x6296
+0xB6B7 0x6597
+0xB6B8 0x9661
+0xB6B9 0x8C46
+0xB6BA 0x9017
+0xB6BB 0x75D8
+0xB6BC 0x90FD
+0xB6BD 0x7763
+0xB6BE 0x6BD2
+0xB6BF 0x728A
+0xB6C0 0x72EC
+0xB6C1 0x8BFB
+0xB6C2 0x5835
+0xB6C3 0x7779
+0xB6C4 0x8D4C
+0xB6C5 0x675C
+0xB6C6 0x9540
+0xB6C7 0x809A
+0xB6C8 0x5EA6
+0xB6C9 0x6E21
+0xB6CA 0x5992
+0xB6CB 0x7AEF
+0xB6CC 0x77ED
+0xB6CD 0x953B
+0xB6CE 0x6BB5
+0xB6CF 0x65AD
+0xB6D0 0x7F0E
+0xB6D1 0x5806
+0xB6D2 0x5151
+0xB6D3 0x961F
+0xB6D4 0x5BF9
+0xB6D5 0x58A9
+0xB6D6 0x5428
+0xB6D7 0x8E72
+0xB6D8 0x6566
+0xB6D9 0x987F
+0xB6DA 0x56E4
+0xB6DB 0x949D
+0xB6DC 0x76FE
+0xB6DD 0x9041
+0xB6DE 0x6387
+0xB6DF 0x54C6
+0xB6E0 0x591A
+0xB6E1 0x593A
+0xB6E2 0x579B
+0xB6E3 0x8EB2
+0xB6E4 0x6735
+0xB6E5 0x8DFA
+0xB6E6 0x8235
+0xB6E7 0x5241
+0xB6E8 0x60F0
+0xB6E9 0x5815
+0xB6EA 0x86FE
+0xB6EB 0x5CE8
+0xB6EC 0x9E45
+0xB6ED 0x4FC4
+0xB6EE 0x989D
+0xB6EF 0x8BB9
+0xB6F0 0x5A25
+0xB6F1 0x6076
+0xB6F2 0x5384
+0xB6F3 0x627C
+0xB6F4 0x904F
+0xB6F5 0x9102
+0xB6F6 0x997F
+0xB6F7 0x6069
+0xB6F8 0x800C
+0xB6F9 0x513F
+0xB6FA 0x8033
+0xB6FB 0x5C14
+0xB6FC 0x9975
+0xB6FD 0x6D31
+0xB6FE 0x4E8C
+0xB740 0x7A1D
+0xB741 0x7A1F
+0xB742-0xB743 0x7A21
+0xB744-0xB752 0x7A24
+0xB753-0xB755 0x7A34
+0xB756 0x7A38
+0xB757 0x7A3A
+0xB758 0x7A3E
+0xB759-0xB75E 0x7A40
+0xB75F-0xB768 0x7A47
+0xB769-0xB76D 0x7A52
+0xB76E-0xB77E 0x7A58
+0xB780-0xB786 0x7A69
+0xB787-0xB789 0x7A71
+0xB78A 0x7A75
+0xB78B-0xB78E 0x7A7B
+0xB78F 0x7A82
+0xB790 0x7A85
+0xB791 0x7A87
+0xB792-0xB795 0x7A89
+0xB796-0xB798 0x7A8E
+0xB799-0xB79A 0x7A93
+0xB79B-0xB79D 0x7A99
+0xB79E 0x7A9E
+0xB79F-0xB7A0 0x7AA1
+0xB7A1 0x8D30
+0xB7A2 0x53D1
+0xB7A3 0x7F5A
+0xB7A4 0x7B4F
+0xB7A5 0x4F10
+0xB7A6 0x4E4F
+0xB7A7 0x9600
+0xB7A8 0x6CD5
+0xB7A9 0x73D0
+0xB7AA 0x85E9
+0xB7AB 0x5E06
+0xB7AC 0x756A
+0xB7AD 0x7FFB
+0xB7AE 0x6A0A
+0xB7AF 0x77FE
+0xB7B0 0x9492
+0xB7B1 0x7E41
+0xB7B2 0x51E1
+0xB7B3 0x70E6
+0xB7B4 0x53CD
+0xB7B5 0x8FD4
+0xB7B6 0x8303
+0xB7B7 0x8D29
+0xB7B8 0x72AF
+0xB7B9 0x996D
+0xB7BA 0x6CDB
+0xB7BB 0x574A
+0xB7BC 0x82B3
+0xB7BD 0x65B9
+0xB7BE 0x80AA
+0xB7BF 0x623F
+0xB7C0 0x9632
+0xB7C1 0x59A8
+0xB7C2 0x4EFF
+0xB7C3 0x8BBF
+0xB7C4 0x7EBA
+0xB7C5 0x653E
+0xB7C6 0x83F2
+0xB7C7 0x975E
+0xB7C8 0x5561
+0xB7C9 0x98DE
+0xB7CA 0x80A5
+0xB7CB 0x532A
+0xB7CC 0x8BFD
+0xB7CD 0x5420
+0xB7CE 0x80BA
+0xB7CF 0x5E9F
+0xB7D0 0x6CB8
+0xB7D1 0x8D39
+0xB7D2 0x82AC
+0xB7D3 0x915A
+0xB7D4 0x5429
+0xB7D5 0x6C1B
+0xB7D6 0x5206
+0xB7D7 0x7EB7
+0xB7D8 0x575F
+0xB7D9 0x711A
+0xB7DA 0x6C7E
+0xB7DB 0x7C89
+0xB7DC 0x594B
+0xB7DD 0x4EFD
+0xB7DE 0x5FFF
+0xB7DF 0x6124
+0xB7E0 0x7CAA
+0xB7E1 0x4E30
+0xB7E2 0x5C01
+0xB7E3 0x67AB
+0xB7E4 0x8702
+0xB7E5 0x5CF0
+0xB7E6 0x950B
+0xB7E7 0x98CE
+0xB7E8 0x75AF
+0xB7E9 0x70FD
+0xB7EA 0x9022
+0xB7EB 0x51AF
+0xB7EC 0x7F1D
+0xB7ED 0x8BBD
+0xB7EE 0x5949
+0xB7EF 0x51E4
+0xB7F0 0x4F5B
+0xB7F1 0x5426
+0xB7F2 0x592B
+0xB7F3 0x6577
+0xB7F4 0x80A4
+0xB7F5 0x5B75
+0xB7F6 0x6276
+0xB7F7 0x62C2
+0xB7F8 0x8F90
+0xB7F9 0x5E45
+0xB7FA 0x6C1F
+0xB7FB 0x7B26
+0xB7FC 0x4F0F
+0xB7FD 0x4FD8
+0xB7FE 0x670D
+0xB840-0xB841 0x7AA3
+0xB842 0x7AA7
+0xB843-0xB845 0x7AA9
+0xB846-0xB84A 0x7AAE
+0xB84B-0xB855 0x7AB4
+0xB856-0xB860 0x7AC0
+0xB861-0xB86A 0x7ACC
+0xB86B-0xB86C 0x7AD7
+0xB86D-0xB870 0x7ADA
+0xB871-0xB872 0x7AE1
+0xB873 0x7AE4
+0xB874-0xB879 0x7AE7
+0xB87A 0x7AEE
+0xB87B-0xB87E 0x7AF0
+0xB880-0xB884 0x7AF4
+0xB885-0xB886 0x7AFB
+0xB887 0x7AFE
+0xB888-0xB88A 0x7B00
+0xB88B 0x7B05
+0xB88C 0x7B07
+0xB88D 0x7B09
+0xB88E-0xB890 0x7B0C
+0xB891 0x7B10
+0xB892-0xB893 0x7B12
+0xB894-0xB896 0x7B16
+0xB897 0x7B1A
+0xB898-0xB899 0x7B1C
+0xB89A 0x7B1F
+0xB89B-0xB89D 0x7B21
+0xB89E 0x7B27
+0xB89F 0x7B29
+0xB8A0 0x7B2D
+0xB8A1 0x6D6E
+0xB8A2 0x6DAA
+0xB8A3 0x798F
+0xB8A4 0x88B1
+0xB8A5 0x5F17
+0xB8A6 0x752B
+0xB8A7 0x629A
+0xB8A8 0x8F85
+0xB8A9 0x4FEF
+0xB8AA 0x91DC
+0xB8AB 0x65A7
+0xB8AC 0x812F
+0xB8AD 0x8151
+0xB8AE 0x5E9C
+0xB8AF 0x8150
+0xB8B0 0x8D74
+0xB8B1 0x526F
+0xB8B2 0x8986
+0xB8B3 0x8D4B
+0xB8B4 0x590D
+0xB8B5 0x5085
+0xB8B6 0x4ED8
+0xB8B7 0x961C
+0xB8B8 0x7236
+0xB8B9 0x8179
+0xB8BA 0x8D1F
+0xB8BB 0x5BCC
+0xB8BC 0x8BA3
+0xB8BD 0x9644
+0xB8BE 0x5987
+0xB8BF 0x7F1A
+0xB8C0 0x5490
+0xB8C1 0x5676
+0xB8C2 0x560E
+0xB8C3 0x8BE5
+0xB8C4 0x6539
+0xB8C5 0x6982
+0xB8C6 0x9499
+0xB8C7 0x76D6
+0xB8C8 0x6E89
+0xB8C9 0x5E72
+0xB8CA 0x7518
+0xB8CB 0x6746
+0xB8CC 0x67D1
+0xB8CD 0x7AFF
+0xB8CE 0x809D
+0xB8CF 0x8D76
+0xB8D0 0x611F
+0xB8D1 0x79C6
+0xB8D2 0x6562
+0xB8D3 0x8D63
+0xB8D4 0x5188
+0xB8D5 0x521A
+0xB8D6 0x94A2
+0xB8D7 0x7F38
+0xB8D8 0x809B
+0xB8D9 0x7EB2
+0xB8DA 0x5C97
+0xB8DB 0x6E2F
+0xB8DC 0x6760
+0xB8DD 0x7BD9
+0xB8DE 0x768B
+0xB8DF 0x9AD8
+0xB8E0 0x818F
+0xB8E1 0x7F94
+0xB8E2 0x7CD5
+0xB8E3 0x641E
+0xB8E4 0x9550
+0xB8E5 0x7A3F
+0xB8E6 0x544A
+0xB8E7 0x54E5
+0xB8E8 0x6B4C
+0xB8E9 0x6401
+0xB8EA 0x6208
+0xB8EB 0x9E3D
+0xB8EC 0x80F3
+0xB8ED 0x7599
+0xB8EE 0x5272
+0xB8EF 0x9769
+0xB8F0 0x845B
+0xB8F1 0x683C
+0xB8F2 0x86E4
+0xB8F3 0x9601
+0xB8F4 0x9694
+0xB8F5 0x94EC
+0xB8F6 0x4E2A
+0xB8F7 0x5404
+0xB8F8 0x7ED9
+0xB8F9 0x6839
+0xB8FA 0x8DDF
+0xB8FB 0x8015
+0xB8FC 0x66F4
+0xB8FD 0x5E9A
+0xB8FE 0x7FB9
+0xB940-0xB941 0x7B2F
+0xB942 0x7B32
+0xB943-0xB946 0x7B34
+0xB947 0x7B39
+0xB948 0x7B3B
+0xB949 0x7B3D
+0xB94A-0xB94F 0x7B3F
+0xB950 0x7B46
+0xB951 0x7B48
+0xB952 0x7B4A
+0xB953-0xB954 0x7B4D
+0xB955 0x7B53
+0xB956 0x7B55
+0xB957 0x7B57
+0xB958 0x7B59
+0xB959 0x7B5C
+0xB95A-0xB95B 0x7B5E
+0xB95C 0x7B61
+0xB95D-0xB967 0x7B63
+0xB968-0xB969 0x7B6F
+0xB96A-0xB96B 0x7B73
+0xB96C 0x7B76
+0xB96D 0x7B78
+0xB96E 0x7B7A
+0xB96F-0xB970 0x7B7C
+0xB971 0x7B7F
+0xB972-0xB975 0x7B81
+0xB976-0xB97C 0x7B86
+0xB97D-0xB97E 0x7B8E
+0xB980-0xB982 0x7B91
+0xB983 0x7B96
+0xB984-0xB987 0x7B98
+0xB988-0xB98A 0x7B9E
+0xB98B-0xB98D 0x7BA3
+0xB98E-0xB990 0x7BAE
+0xB991-0xB992 0x7BB2
+0xB993-0xB995 0x7BB5
+0xB996-0xB99D 0x7BB9
+0xB99E-0xB9A0 0x7BC2
+0xB9A1 0x57C2
+0xB9A2 0x803F
+0xB9A3 0x6897
+0xB9A4 0x5DE5
+0xB9A5 0x653B
+0xB9A6 0x529F
+0xB9A7 0x606D
+0xB9A8 0x9F9A
+0xB9A9 0x4F9B
+0xB9AA 0x8EAC
+0xB9AB 0x516C
+0xB9AC 0x5BAB
+0xB9AD 0x5F13
+0xB9AE 0x5DE9
+0xB9AF 0x6C5E
+0xB9B0 0x62F1
+0xB9B1 0x8D21
+0xB9B2 0x5171
+0xB9B3 0x94A9
+0xB9B4 0x52FE
+0xB9B5 0x6C9F
+0xB9B6 0x82DF
+0xB9B7 0x72D7
+0xB9B8 0x57A2
+0xB9B9 0x6784
+0xB9BA 0x8D2D
+0xB9BB 0x591F
+0xB9BC 0x8F9C
+0xB9BD 0x83C7
+0xB9BE 0x5495
+0xB9BF 0x7B8D
+0xB9C0 0x4F30
+0xB9C1 0x6CBD
+0xB9C2 0x5B64
+0xB9C3 0x59D1
+0xB9C4 0x9F13
+0xB9C5 0x53E4
+0xB9C6 0x86CA
+0xB9C7 0x9AA8
+0xB9C8 0x8C37
+0xB9C9 0x80A1
+0xB9CA 0x6545
+0xB9CB 0x987E
+0xB9CC 0x56FA
+0xB9CD 0x96C7
+0xB9CE 0x522E
+0xB9CF 0x74DC
+0xB9D0 0x5250
+0xB9D1 0x5BE1
+0xB9D2 0x6302
+0xB9D3 0x8902
+0xB9D4 0x4E56
+0xB9D5 0x62D0
+0xB9D6 0x602A
+0xB9D7 0x68FA
+0xB9D8 0x5173
+0xB9D9 0x5B98
+0xB9DA 0x51A0
+0xB9DB 0x89C2
+0xB9DC 0x7BA1
+0xB9DD 0x9986
+0xB9DE 0x7F50
+0xB9DF 0x60EF
+0xB9E0 0x704C
+0xB9E1 0x8D2F
+0xB9E2 0x5149
+0xB9E3 0x5E7F
+0xB9E4 0x901B
+0xB9E5 0x7470
+0xB9E6 0x89C4
+0xB9E7 0x572D
+0xB9E8 0x7845
+0xB9E9 0x5F52
+0xB9EA 0x9F9F
+0xB9EB 0x95FA
+0xB9EC 0x8F68
+0xB9ED 0x9B3C
+0xB9EE 0x8BE1
+0xB9EF 0x7678
+0xB9F0 0x6842
+0xB9F1 0x67DC
+0xB9F2 0x8DEA
+0xB9F3 0x8D35
+0xB9F4 0x523D
+0xB9F5 0x8F8A
+0xB9F6 0x6EDA
+0xB9F7 0x68CD
+0xB9F8 0x9505
+0xB9F9 0x90ED
+0xB9FA 0x56FD
+0xB9FB 0x679C
+0xB9FC 0x88F9
+0xB9FD 0x8FC7
+0xB9FE 0x54C8
+0xBA40 0x7BC5
+0xBA41-0xBA44 0x7BC8
+0xBA45-0xBA48 0x7BCD
+0xBA49 0x7BD2
+0xBA4A-0xBA4E 0x7BD4
+0xBA4F-0xBA50 0x7BDB
+0xBA51-0xBA53 0x7BDE
+0xBA54-0xBA56 0x7BE2
+0xBA57-0xBA59 0x7BE7
+0xBA5A-0xBA5C 0x7BEB
+0xBA5D-0xBA5E 0x7BEF
+0xBA5F-0xBA63 0x7BF2
+0xBA64-0xBA67 0x7BF8
+0xBA68 0x7BFD
+0xBA69-0xBA70 0x7BFF
+0xBA71-0xBA73 0x7C08
+0xBA74-0xBA75 0x7C0D
+0xBA76-0xBA7B 0x7C10
+0xBA7C-0xBA7E 0x7C17
+0xBA80-0xBA84 0x7C1A
+0xBA85-0xBA8A 0x7C20
+0xBA8B-0xBA8C 0x7C28
+0xBA8D-0xBA99 0x7C2B
+0xBA9A-0xBA9F 0x7C39
+0xBAA0 0x7C42
+0xBAA1 0x9AB8
+0xBAA2 0x5B69
+0xBAA3 0x6D77
+0xBAA4 0x6C26
+0xBAA5 0x4EA5
+0xBAA6 0x5BB3
+0xBAA7 0x9A87
+0xBAA8 0x9163
+0xBAA9 0x61A8
+0xBAAA 0x90AF
+0xBAAB 0x97E9
+0xBAAC 0x542B
+0xBAAD 0x6DB5
+0xBAAE 0x5BD2
+0xBAAF 0x51FD
+0xBAB0 0x558A
+0xBAB1 0x7F55
+0xBAB2 0x7FF0
+0xBAB3 0x64BC
+0xBAB4 0x634D
+0xBAB5 0x65F1
+0xBAB6 0x61BE
+0xBAB7 0x608D
+0xBAB8 0x710A
+0xBAB9 0x6C57
+0xBABA 0x6C49
+0xBABB 0x592F
+0xBABC 0x676D
+0xBABD 0x822A
+0xBABE 0x58D5
+0xBABF 0x568E
+0xBAC0 0x8C6A
+0xBAC1 0x6BEB
+0xBAC2 0x90DD
+0xBAC3 0x597D
+0xBAC4 0x8017
+0xBAC5 0x53F7
+0xBAC6 0x6D69
+0xBAC7 0x5475
+0xBAC8 0x559D
+0xBAC9 0x8377
+0xBACA 0x83CF
+0xBACB 0x6838
+0xBACC 0x79BE
+0xBACD 0x548C
+0xBACE 0x4F55
+0xBACF 0x5408
+0xBAD0 0x76D2
+0xBAD1 0x8C89
+0xBAD2 0x9602
+0xBAD3 0x6CB3
+0xBAD4 0x6DB8
+0xBAD5 0x8D6B
+0xBAD6 0x8910
+0xBAD7 0x9E64
+0xBAD8 0x8D3A
+0xBAD9 0x563F
+0xBADA 0x9ED1
+0xBADB 0x75D5
+0xBADC 0x5F88
+0xBADD 0x72E0
+0xBADE 0x6068
+0xBADF 0x54FC
+0xBAE0 0x4EA8
+0xBAE1 0x6A2A
+0xBAE2 0x8861
+0xBAE3 0x6052
+0xBAE4 0x8F70
+0xBAE5 0x54C4
+0xBAE6 0x70D8
+0xBAE7 0x8679
+0xBAE8 0x9E3F
+0xBAE9 0x6D2A
+0xBAEA 0x5B8F
+0xBAEB 0x5F18
+0xBAEC 0x7EA2
+0xBAED 0x5589
+0xBAEE 0x4FAF
+0xBAEF 0x7334
+0xBAF0 0x543C
+0xBAF1 0x539A
+0xBAF2 0x5019
+0xBAF3 0x540E
+0xBAF4 0x547C
+0xBAF5 0x4E4E
+0xBAF6 0x5FFD
+0xBAF7 0x745A
+0xBAF8 0x58F6
+0xBAF9 0x846B
+0xBAFA 0x80E1
+0xBAFB 0x8774
+0xBAFC 0x72D0
+0xBAFD 0x7CCA
+0xBAFE 0x6E56
+0xBB40-0xBB49 0x7C43
+0xBB4A-0xBB6E 0x7C4E
+0xBB6F-0xBB74 0x7C75
+0xBB75-0xBB7E 0x7C7E
+0xBB80 0x7C88
+0xBB81-0xBB87 0x7C8A
+0xBB88-0xBB89 0x7C93
+0xBB8A 0x7C96
+0xBB8B-0xBB8D 0x7C99
+0xBB8E-0xBB8F 0x7CA0
+0xBB90 0x7CA3
+0xBB91-0xBB94 0x7CA6
+0xBB95-0xBB97 0x7CAB
+0xBB98-0xBB99 0x7CAF
+0xBB9A-0xBB9E 0x7CB4
+0xBB9F-0xBBA0 0x7CBA
+0xBBA1 0x5F27
+0xBBA2 0x864E
+0xBBA3 0x552C
+0xBBA4 0x62A4
+0xBBA5 0x4E92
+0xBBA6 0x6CAA
+0xBBA7 0x6237
+0xBBA8 0x82B1
+0xBBA9 0x54D7
+0xBBAA 0x534E
+0xBBAB 0x733E
+0xBBAC 0x6ED1
+0xBBAD 0x753B
+0xBBAE 0x5212
+0xBBAF 0x5316
+0xBBB0 0x8BDD
+0xBBB1 0x69D0
+0xBBB2 0x5F8A
+0xBBB3 0x6000
+0xBBB4 0x6DEE
+0xBBB5 0x574F
+0xBBB6 0x6B22
+0xBBB7 0x73AF
+0xBBB8 0x6853
+0xBBB9 0x8FD8
+0xBBBA 0x7F13
+0xBBBB 0x6362
+0xBBBC 0x60A3
+0xBBBD 0x5524
+0xBBBE 0x75EA
+0xBBBF 0x8C62
+0xBBC0 0x7115
+0xBBC1 0x6DA3
+0xBBC2 0x5BA6
+0xBBC3 0x5E7B
+0xBBC4 0x8352
+0xBBC5 0x614C
+0xBBC6 0x9EC4
+0xBBC7 0x78FA
+0xBBC8 0x8757
+0xBBC9 0x7C27
+0xBBCA 0x7687
+0xBBCB 0x51F0
+0xBBCC 0x60F6
+0xBBCD 0x714C
+0xBBCE 0x6643
+0xBBCF 0x5E4C
+0xBBD0 0x604D
+0xBBD1 0x8C0E
+0xBBD2 0x7070
+0xBBD3 0x6325
+0xBBD4 0x8F89
+0xBBD5 0x5FBD
+0xBBD6 0x6062
+0xBBD7 0x86D4
+0xBBD8 0x56DE
+0xBBD9 0x6BC1
+0xBBDA 0x6094
+0xBBDB 0x6167
+0xBBDC 0x5349
+0xBBDD 0x60E0
+0xBBDE 0x6666
+0xBBDF 0x8D3F
+0xBBE0 0x79FD
+0xBBE1 0x4F1A
+0xBBE2 0x70E9
+0xBBE3 0x6C47
+0xBBE4 0x8BB3
+0xBBE5 0x8BF2
+0xBBE6 0x7ED8
+0xBBE7 0x8364
+0xBBE8 0x660F
+0xBBE9 0x5A5A
+0xBBEA 0x9B42
+0xBBEB 0x6D51
+0xBBEC 0x6DF7
+0xBBED 0x8C41
+0xBBEE 0x6D3B
+0xBBEF 0x4F19
+0xBBF0 0x706B
+0xBBF1 0x83B7
+0xBBF2 0x6216
+0xBBF3 0x60D1
+0xBBF4 0x970D
+0xBBF5 0x8D27
+0xBBF6 0x7978
+0xBBF7 0x51FB
+0xBBF8 0x573E
+0xBBF9 0x57FA
+0xBBFA 0x673A
+0xBBFB 0x7578
+0xBBFC 0x7A3D
+0xBBFD 0x79EF
+0xBBFE 0x7B95
+0xBC40-0xBC41 0x7CBF
+0xBC42-0xBC44 0x7CC2
+0xBC45 0x7CC6
+0xBC46 0x7CC9
+0xBC47 0x7CCB
+0xBC48-0xBC4E 0x7CCE
+0xBC4F 0x7CD8
+0xBC50-0xBC51 0x7CDA
+0xBC52-0xBC53 0x7CDD
+0xBC54-0xBC5A 0x7CE1
+0xBC5B-0xBC60 0x7CE9
+0xBC61-0xBC68 0x7CF0
+0xBC69-0xBC6A 0x7CF9
+0xBC6B-0xBC78 0x7CFC
+0xBC79-0xBC7E 0x7D0B
+0xBC80-0xBC8E 0x7D11
+0xBC8F 0x7D21
+0xBC90-0xBC93 0x7D23
+0xBC94-0xBC96 0x7D28
+0xBC97-0xBC99 0x7D2C
+0xBC9A-0xBCA0 0x7D30
+0xBCA1 0x808C
+0xBCA2 0x9965
+0xBCA3 0x8FF9
+0xBCA4 0x6FC0
+0xBCA5 0x8BA5
+0xBCA6 0x9E21
+0xBCA7 0x59EC
+0xBCA8 0x7EE9
+0xBCA9 0x7F09
+0xBCAA 0x5409
+0xBCAB 0x6781
+0xBCAC 0x68D8
+0xBCAD 0x8F91
+0xBCAE 0x7C4D
+0xBCAF 0x96C6
+0xBCB0 0x53CA
+0xBCB1 0x6025
+0xBCB2 0x75BE
+0xBCB3 0x6C72
+0xBCB4 0x5373
+0xBCB5 0x5AC9
+0xBCB6 0x7EA7
+0xBCB7 0x6324
+0xBCB8 0x51E0
+0xBCB9 0x810A
+0xBCBA 0x5DF1
+0xBCBB 0x84DF
+0xBCBC 0x6280
+0xBCBD 0x5180
+0xBCBE 0x5B63
+0xBCBF 0x4F0E
+0xBCC0 0x796D
+0xBCC1 0x5242
+0xBCC2 0x60B8
+0xBCC3 0x6D4E
+0xBCC4 0x5BC4
+0xBCC5 0x5BC2
+0xBCC6 0x8BA1
+0xBCC7 0x8BB0
+0xBCC8 0x65E2
+0xBCC9 0x5FCC
+0xBCCA 0x9645
+0xBCCB 0x5993
+0xBCCC 0x7EE7
+0xBCCD 0x7EAA
+0xBCCE 0x5609
+0xBCCF 0x67B7
+0xBCD0 0x5939
+0xBCD1 0x4F73
+0xBCD2 0x5BB6
+0xBCD3 0x52A0
+0xBCD4 0x835A
+0xBCD5 0x988A
+0xBCD6 0x8D3E
+0xBCD7 0x7532
+0xBCD8 0x94BE
+0xBCD9 0x5047
+0xBCDA 0x7A3C
+0xBCDB 0x4EF7
+0xBCDC 0x67B6
+0xBCDD 0x9A7E
+0xBCDE 0x5AC1
+0xBCDF 0x6B7C
+0xBCE0 0x76D1
+0xBCE1 0x575A
+0xBCE2 0x5C16
+0xBCE3 0x7B3A
+0xBCE4 0x95F4
+0xBCE5 0x714E
+0xBCE6 0x517C
+0xBCE7 0x80A9
+0xBCE8 0x8270
+0xBCE9 0x5978
+0xBCEA 0x7F04
+0xBCEB 0x8327
+0xBCEC 0x68C0
+0xBCED 0x67EC
+0xBCEE 0x78B1
+0xBCEF 0x7877
+0xBCF0 0x62E3
+0xBCF1 0x6361
+0xBCF2 0x7B80
+0xBCF3 0x4FED
+0xBCF4 0x526A
+0xBCF5 0x51CF
+0xBCF6 0x8350
+0xBCF7 0x69DB
+0xBCF8 0x9274
+0xBCF9 0x8DF5
+0xBCFA 0x8D31
+0xBCFB 0x89C1
+0xBCFC 0x952E
+0xBCFD 0x7BAD
+0xBCFE 0x4EF6
+0xBD40-0xBD76 0x7D37
+0xBD77-0xBD7E 0x7D6F
+0xBD80-0xBDA0 0x7D78
+0xBDA1 0x5065
+0xBDA2 0x8230
+0xBDA3 0x5251
+0xBDA4 0x996F
+0xBDA5 0x6E10
+0xBDA6 0x6E85
+0xBDA7 0x6DA7
+0xBDA8 0x5EFA
+0xBDA9 0x50F5
+0xBDAA 0x59DC
+0xBDAB 0x5C06
+0xBDAC 0x6D46
+0xBDAD 0x6C5F
+0xBDAE 0x7586
+0xBDAF 0x848B
+0xBDB0 0x6868
+0xBDB1 0x5956
+0xBDB2 0x8BB2
+0xBDB3 0x5320
+0xBDB4 0x9171
+0xBDB5 0x964D
+0xBDB6 0x8549
+0xBDB7 0x6912
+0xBDB8 0x7901
+0xBDB9 0x7126
+0xBDBA 0x80F6
+0xBDBB 0x4EA4
+0xBDBC 0x90CA
+0xBDBD 0x6D47
+0xBDBE 0x9A84
+0xBDBF 0x5A07
+0xBDC0 0x56BC
+0xBDC1 0x6405
+0xBDC2 0x94F0
+0xBDC3 0x77EB
+0xBDC4 0x4FA5
+0xBDC5 0x811A
+0xBDC6 0x72E1
+0xBDC7 0x89D2
+0xBDC8 0x997A
+0xBDC9 0x7F34
+0xBDCA 0x7EDE
+0xBDCB 0x527F
+0xBDCC 0x6559
+0xBDCD 0x9175
+0xBDCE 0x8F7F
+0xBDCF 0x8F83
+0xBDD0 0x53EB
+0xBDD1 0x7A96
+0xBDD2 0x63ED
+0xBDD3 0x63A5
+0xBDD4 0x7686
+0xBDD5 0x79F8
+0xBDD6 0x8857
+0xBDD7 0x9636
+0xBDD8 0x622A
+0xBDD9 0x52AB
+0xBDDA 0x8282
+0xBDDB 0x6854
+0xBDDC 0x6770
+0xBDDD 0x6377
+0xBDDE 0x776B
+0xBDDF 0x7AED
+0xBDE0 0x6D01
+0xBDE1 0x7ED3
+0xBDE2 0x89E3
+0xBDE3 0x59D0
+0xBDE4 0x6212
+0xBDE5 0x85C9
+0xBDE6 0x82A5
+0xBDE7 0x754C
+0xBDE8 0x501F
+0xBDE9 0x4ECB
+0xBDEA 0x75A5
+0xBDEB 0x8BEB
+0xBDEC 0x5C4A
+0xBDED 0x5DFE
+0xBDEE 0x7B4B
+0xBDEF 0x65A4
+0xBDF0 0x91D1
+0xBDF1 0x4ECA
+0xBDF2 0x6D25
+0xBDF3 0x895F
+0xBDF4 0x7D27
+0xBDF5 0x9526
+0xBDF6 0x4EC5
+0xBDF7 0x8C28
+0xBDF8 0x8FDB
+0xBDF9 0x9773
+0xBDFA 0x664B
+0xBDFB 0x7981
+0xBDFC 0x8FD1
+0xBDFD 0x70EC
+0xBDFE 0x6D78
+0xBE40-0xBE4C 0x7D99
+0xBE4D-0xBE53 0x7DA7
+0xBE54-0xBE7E 0x7DAF
+0xBE80-0xBEA0 0x7DDA
+0xBEA1 0x5C3D
+0xBEA2 0x52B2
+0xBEA3 0x8346
+0xBEA4 0x5162
+0xBEA5 0x830E
+0xBEA6 0x775B
+0xBEA7 0x6676
+0xBEA8 0x9CB8
+0xBEA9 0x4EAC
+0xBEAA 0x60CA
+0xBEAB 0x7CBE
+0xBEAC 0x7CB3
+0xBEAD 0x7ECF
+0xBEAE 0x4E95
+0xBEAF 0x8B66
+0xBEB0 0x666F
+0xBEB1 0x9888
+0xBEB2 0x9759
+0xBEB3 0x5883
+0xBEB4 0x656C
+0xBEB5 0x955C
+0xBEB6 0x5F84
+0xBEB7 0x75C9
+0xBEB8 0x9756
+0xBEB9 0x7ADF
+0xBEBA 0x7ADE
+0xBEBB 0x51C0
+0xBEBC 0x70AF
+0xBEBD 0x7A98
+0xBEBE 0x63EA
+0xBEBF 0x7A76
+0xBEC0 0x7EA0
+0xBEC1 0x7396
+0xBEC2 0x97ED
+0xBEC3 0x4E45
+0xBEC4 0x7078
+0xBEC5 0x4E5D
+0xBEC6 0x9152
+0xBEC7 0x53A9
+0xBEC8 0x6551
+0xBEC9 0x65E7
+0xBECA 0x81FC
+0xBECB 0x8205
+0xBECC 0x548E
+0xBECD 0x5C31
+0xBECE 0x759A
+0xBECF 0x97A0
+0xBED0 0x62D8
+0xBED1 0x72D9
+0xBED2 0x75BD
+0xBED3 0x5C45
+0xBED4 0x9A79
+0xBED5 0x83CA
+0xBED6 0x5C40
+0xBED7 0x5480
+0xBED8 0x77E9
+0xBED9 0x4E3E
+0xBEDA 0x6CAE
+0xBEDB 0x805A
+0xBEDC 0x62D2
+0xBEDD 0x636E
+0xBEDE 0x5DE8
+0xBEDF 0x5177
+0xBEE0 0x8DDD
+0xBEE1 0x8E1E
+0xBEE2 0x952F
+0xBEE3 0x4FF1
+0xBEE4 0x53E5
+0xBEE5 0x60E7
+0xBEE6 0x70AC
+0xBEE7 0x5267
+0xBEE8 0x6350
+0xBEE9 0x9E43
+0xBEEA 0x5A1F
+0xBEEB 0x5026
+0xBEEC 0x7737
+0xBEED 0x5377
+0xBEEE 0x7EE2
+0xBEEF 0x6485
+0xBEF0 0x652B
+0xBEF1 0x6289
+0xBEF2 0x6398
+0xBEF3 0x5014
+0xBEF4 0x7235
+0xBEF5 0x89C9
+0xBEF6 0x51B3
+0xBEF7 0x8BC0
+0xBEF8 0x7EDD
+0xBEF9 0x5747
+0xBEFA 0x83CC
+0xBEFB 0x94A7
+0xBEFC 0x519B
+0xBEFD 0x541B
+0xBEFE 0x5CFB
+0xBF40-0xBF7E 0x7DFB
+0xBF80 0x7E3A
+0xBF81-0xBF85 0x7E3C
+0xBF86-0xBF8A 0x7E42
+0xBF8B-0xBFA0 0x7E48
+0xBFA1 0x4FCA
+0xBFA2 0x7AE3
+0xBFA3 0x6D5A
+0xBFA4 0x90E1
+0xBFA5 0x9A8F
+0xBFA6 0x5580
+0xBFA7 0x5496
+0xBFA8 0x5361
+0xBFA9 0x54AF
+0xBFAA 0x5F00
+0xBFAB 0x63E9
+0xBFAC 0x6977
+0xBFAD 0x51EF
+0xBFAE 0x6168
+0xBFAF 0x520A
+0xBFB0 0x582A
+0xBFB1 0x52D8
+0xBFB2 0x574E
+0xBFB3 0x780D
+0xBFB4 0x770B
+0xBFB5 0x5EB7
+0xBFB6 0x6177
+0xBFB7 0x7CE0
+0xBFB8 0x625B
+0xBFB9 0x6297
+0xBFBA 0x4EA2
+0xBFBB 0x7095
+0xBFBC 0x8003
+0xBFBD 0x62F7
+0xBFBE 0x70E4
+0xBFBF 0x9760
+0xBFC0 0x5777
+0xBFC1 0x82DB
+0xBFC2 0x67EF
+0xBFC3 0x68F5
+0xBFC4 0x78D5
+0xBFC5 0x9897
+0xBFC6 0x79D1
+0xBFC7 0x58F3
+0xBFC8 0x54B3
+0xBFC9 0x53EF
+0xBFCA 0x6E34
+0xBFCB 0x514B
+0xBFCC 0x523B
+0xBFCD 0x5BA2
+0xBFCE 0x8BFE
+0xBFCF 0x80AF
+0xBFD0 0x5543
+0xBFD1 0x57A6
+0xBFD2 0x6073
+0xBFD3 0x5751
+0xBFD4 0x542D
+0xBFD5 0x7A7A
+0xBFD6 0x6050
+0xBFD7 0x5B54
+0xBFD8 0x63A7
+0xBFD9 0x62A0
+0xBFDA 0x53E3
+0xBFDB 0x6263
+0xBFDC 0x5BC7
+0xBFDD 0x67AF
+0xBFDE 0x54ED
+0xBFDF 0x7A9F
+0xBFE0 0x82E6
+0xBFE1 0x9177
+0xBFE2 0x5E93
+0xBFE3 0x88E4
+0xBFE4 0x5938
+0xBFE5 0x57AE
+0xBFE6 0x630E
+0xBFE7 0x8DE8
+0xBFE8 0x80EF
+0xBFE9 0x5757
+0xBFEA 0x7B77
+0xBFEB 0x4FA9
+0xBFEC 0x5FEB
+0xBFED 0x5BBD
+0xBFEE 0x6B3E
+0xBFEF 0x5321
+0xBFF0 0x7B50
+0xBFF1 0x72C2
+0xBFF2 0x6846
+0xBFF3 0x77FF
+0xBFF4 0x7736
+0xBFF5 0x65F7
+0xBFF6 0x51B5
+0xBFF7 0x4E8F
+0xBFF8 0x76D4
+0xBFF9 0x5CBF
+0xBFFA 0x7AA5
+0xBFFB 0x8475
+0xBFFC 0x594E
+0xBFFD 0x9B41
+0xBFFE 0x5080
+0xC040-0xC063 0x7E5E
+0xC064-0xC07B 0x7E83
+0xC07C-0xC07E 0x7E9C
+0xC080 0x7EAE
+0xC081 0x7EB4
+0xC082-0xC083 0x7EBB
+0xC084 0x7ED6
+0xC085 0x7EE4
+0xC086 0x7EEC
+0xC087 0x7EF9
+0xC088 0x7F0A
+0xC089 0x7F10
+0xC08A 0x7F1E
+0xC08B 0x7F37
+0xC08C 0x7F39
+0xC08D-0xC093 0x7F3B
+0xC094 0x7F43
+0xC095-0xC09E 0x7F46
+0xC09F-0xC0A0 0x7F52
+0xC0A1 0x9988
+0xC0A2 0x6127
+0xC0A3 0x6E83
+0xC0A4 0x5764
+0xC0A5 0x6606
+0xC0A6 0x6346
+0xC0A7 0x56F0
+0xC0A8 0x62EC
+0xC0A9 0x6269
+0xC0AA 0x5ED3
+0xC0AB 0x9614
+0xC0AC 0x5783
+0xC0AD 0x62C9
+0xC0AE 0x5587
+0xC0AF 0x8721
+0xC0B0 0x814A
+0xC0B1 0x8FA3
+0xC0B2 0x5566
+0xC0B3 0x83B1
+0xC0B4 0x6765
+0xC0B5 0x8D56
+0xC0B6 0x84DD
+0xC0B7 0x5A6A
+0xC0B8 0x680F
+0xC0B9 0x62E6
+0xC0BA 0x7BEE
+0xC0BB 0x9611
+0xC0BC 0x5170
+0xC0BD 0x6F9C
+0xC0BE 0x8C30
+0xC0BF 0x63FD
+0xC0C0 0x89C8
+0xC0C1 0x61D2
+0xC0C2 0x7F06
+0xC0C3 0x70C2
+0xC0C4 0x6EE5
+0xC0C5 0x7405
+0xC0C6 0x6994
+0xC0C7 0x72FC
+0xC0C8 0x5ECA
+0xC0C9 0x90CE
+0xC0CA 0x6717
+0xC0CB 0x6D6A
+0xC0CC 0x635E
+0xC0CD 0x52B3
+0xC0CE 0x7262
+0xC0CF 0x8001
+0xC0D0 0x4F6C
+0xC0D1 0x59E5
+0xC0D2 0x916A
+0xC0D3 0x70D9
+0xC0D4 0x6D9D
+0xC0D5 0x52D2
+0xC0D6 0x4E50
+0xC0D7 0x96F7
+0xC0D8 0x956D
+0xC0D9 0x857E
+0xC0DA 0x78CA
+0xC0DB 0x7D2F
+0xC0DC 0x5121
+0xC0DD 0x5792
+0xC0DE 0x64C2
+0xC0DF 0x808B
+0xC0E0 0x7C7B
+0xC0E1 0x6CEA
+0xC0E2 0x68F1
+0xC0E3 0x695E
+0xC0E4 0x51B7
+0xC0E5 0x5398
+0xC0E6 0x68A8
+0xC0E7 0x7281
+0xC0E8 0x9ECE
+0xC0E9 0x7BF1
+0xC0EA 0x72F8
+0xC0EB 0x79BB
+0xC0EC 0x6F13
+0xC0ED 0x7406
+0xC0EE 0x674E
+0xC0EF 0x91CC
+0xC0F0 0x9CA4
+0xC0F1 0x793C
+0xC0F2 0x8389
+0xC0F3 0x8354
+0xC0F4 0x540F
+0xC0F5 0x6817
+0xC0F6 0x4E3D
+0xC0F7 0x5389
+0xC0F8 0x52B1
+0xC0F9 0x783E
+0xC0FA 0x5386
+0xC0FB 0x5229
+0xC0FC 0x5088
+0xC0FD 0x4F8B
+0xC0FE 0x4FD0
+0xC140 0x7F56
+0xC141 0x7F59
+0xC142-0xC145 0x7F5B
+0xC146 0x7F60
+0xC147-0xC14B 0x7F63
+0xC14C-0xC14E 0x7F6B
+0xC14F-0xC150 0x7F6F
+0xC151 0x7F73
+0xC152-0xC155 0x7F75
+0xC156-0xC159 0x7F7A
+0xC15A-0xC15B 0x7F7F
+0xC15C-0xC163 0x7F82
+0xC164 0x7F8B
+0xC165 0x7F8D
+0xC166-0xC16A 0x7F8F
+0xC16B-0xC16F 0x7F95
+0xC170-0xC171 0x7F9B
+0xC172 0x7FA0
+0xC173-0xC174 0x7FA2
+0xC175-0xC176 0x7FA5
+0xC177-0xC17D 0x7FA8
+0xC17E 0x7FB1
+0xC180-0xC184 0x7FB3
+0xC185-0xC186 0x7FBA
+0xC187 0x7FBE
+0xC188 0x7FC0
+0xC189-0xC18B 0x7FC2
+0xC18C-0xC18F 0x7FC6
+0xC190 0x7FCB
+0xC191 0x7FCD
+0xC192-0xC196 0x7FCF
+0xC197-0xC198 0x7FD6
+0xC199-0xC19E 0x7FD9
+0xC19F-0xC1A0 0x7FE2
+0xC1A1 0x75E2
+0xC1A2 0x7ACB
+0xC1A3 0x7C92
+0xC1A4 0x6CA5
+0xC1A5 0x96B6
+0xC1A6 0x529B
+0xC1A7 0x7483
+0xC1A8 0x54E9
+0xC1A9 0x4FE9
+0xC1AA 0x8054
+0xC1AB 0x83B2
+0xC1AC 0x8FDE
+0xC1AD 0x9570
+0xC1AE 0x5EC9
+0xC1AF 0x601C
+0xC1B0 0x6D9F
+0xC1B1 0x5E18
+0xC1B2 0x655B
+0xC1B3 0x8138
+0xC1B4 0x94FE
+0xC1B5 0x604B
+0xC1B6 0x70BC
+0xC1B7 0x7EC3
+0xC1B8 0x7CAE
+0xC1B9 0x51C9
+0xC1BA 0x6881
+0xC1BB 0x7CB1
+0xC1BC 0x826F
+0xC1BD 0x4E24
+0xC1BE 0x8F86
+0xC1BF 0x91CF
+0xC1C0 0x667E
+0xC1C1 0x4EAE
+0xC1C2 0x8C05
+0xC1C3 0x64A9
+0xC1C4 0x804A
+0xC1C5 0x50DA
+0xC1C6 0x7597
+0xC1C7 0x71CE
+0xC1C8 0x5BE5
+0xC1C9 0x8FBD
+0xC1CA 0x6F66
+0xC1CB 0x4E86
+0xC1CC 0x6482
+0xC1CD 0x9563
+0xC1CE 0x5ED6
+0xC1CF 0x6599
+0xC1D0 0x5217
+0xC1D1 0x88C2
+0xC1D2 0x70C8
+0xC1D3 0x52A3
+0xC1D4 0x730E
+0xC1D5 0x7433
+0xC1D6 0x6797
+0xC1D7 0x78F7
+0xC1D8 0x9716
+0xC1D9 0x4E34
+0xC1DA 0x90BB
+0xC1DB 0x9CDE
+0xC1DC 0x6DCB
+0xC1DD 0x51DB
+0xC1DE 0x8D41
+0xC1DF 0x541D
+0xC1E0 0x62CE
+0xC1E1 0x73B2
+0xC1E2 0x83F1
+0xC1E3 0x96F6
+0xC1E4 0x9F84
+0xC1E5 0x94C3
+0xC1E6 0x4F36
+0xC1E7 0x7F9A
+0xC1E8 0x51CC
+0xC1E9 0x7075
+0xC1EA 0x9675
+0xC1EB 0x5CAD
+0xC1EC 0x9886
+0xC1ED 0x53E6
+0xC1EE 0x4EE4
+0xC1EF 0x6E9C
+0xC1F0 0x7409
+0xC1F1 0x69B4
+0xC1F2 0x786B
+0xC1F3 0x998F
+0xC1F4 0x7559
+0xC1F5 0x5218
+0xC1F6 0x7624
+0xC1F7 0x6D41
+0xC1F8 0x67F3
+0xC1F9 0x516D
+0xC1FA 0x9F99
+0xC1FB 0x804B
+0xC1FC 0x5499
+0xC1FD 0x7B3C
+0xC1FE 0x7ABF
+0xC240 0x7FE4
+0xC241-0xC242 0x7FE7
+0xC243-0xC246 0x7FEA
+0xC247 0x7FEF
+0xC248 0x7FF2
+0xC249-0xC24F 0x7FF4
+0xC250-0xC252 0x7FFD
+0xC253 0x8002
+0xC254-0xC257 0x8007
+0xC258-0xC259 0x800E
+0xC25A 0x8011
+0xC25B 0x8013
+0xC25C-0xC25D 0x801A
+0xC25E-0xC260 0x801D
+0xC261 0x8021
+0xC262-0xC263 0x8023
+0xC264-0xC269 0x802B
+0xC26A 0x8032
+0xC26B 0x8034
+0xC26C-0xC26D 0x8039
+0xC26E 0x803C
+0xC26F 0x803E
+0xC270-0xC271 0x8040
+0xC272-0xC273 0x8044
+0xC274-0xC276 0x8047
+0xC277-0xC27A 0x804E
+0xC27B 0x8053
+0xC27C-0xC27E 0x8055
+0xC280 0x8059
+0xC281-0xC28E 0x805B
+0xC28F-0xC294 0x806B
+0xC295-0xC2A0 0x8072
+0xC2A1 0x9686
+0xC2A2 0x5784
+0xC2A3 0x62E2
+0xC2A4 0x9647
+0xC2A5 0x697C
+0xC2A6 0x5A04
+0xC2A7 0x6402
+0xC2A8 0x7BD3
+0xC2A9 0x6F0F
+0xC2AA 0x964B
+0xC2AB 0x82A6
+0xC2AC 0x5362
+0xC2AD 0x9885
+0xC2AE 0x5E90
+0xC2AF 0x7089
+0xC2B0 0x63B3
+0xC2B1 0x5364
+0xC2B2 0x864F
+0xC2B3 0x9C81
+0xC2B4 0x9E93
+0xC2B5 0x788C
+0xC2B6 0x9732
+0xC2B7 0x8DEF
+0xC2B8 0x8D42
+0xC2B9 0x9E7F
+0xC2BA 0x6F5E
+0xC2BB 0x7984
+0xC2BC 0x5F55
+0xC2BD 0x9646
+0xC2BE 0x622E
+0xC2BF 0x9A74
+0xC2C0 0x5415
+0xC2C1 0x94DD
+0xC2C2 0x4FA3
+0xC2C3 0x65C5
+0xC2C4 0x5C65
+0xC2C5 0x5C61
+0xC2C6 0x7F15
+0xC2C7 0x8651
+0xC2C8 0x6C2F
+0xC2C9 0x5F8B
+0xC2CA 0x7387
+0xC2CB 0x6EE4
+0xC2CC 0x7EFF
+0xC2CD 0x5CE6
+0xC2CE 0x631B
+0xC2CF 0x5B6A
+0xC2D0 0x6EE6
+0xC2D1 0x5375
+0xC2D2 0x4E71
+0xC2D3 0x63A0
+0xC2D4 0x7565
+0xC2D5 0x62A1
+0xC2D6 0x8F6E
+0xC2D7 0x4F26
+0xC2D8 0x4ED1
+0xC2D9 0x6CA6
+0xC2DA 0x7EB6
+0xC2DB 0x8BBA
+0xC2DC 0x841D
+0xC2DD 0x87BA
+0xC2DE 0x7F57
+0xC2DF 0x903B
+0xC2E0 0x9523
+0xC2E1 0x7BA9
+0xC2E2 0x9AA1
+0xC2E3 0x88F8
+0xC2E4 0x843D
+0xC2E5 0x6D1B
+0xC2E6 0x9A86
+0xC2E7 0x7EDC
+0xC2E8 0x5988
+0xC2E9 0x9EBB
+0xC2EA 0x739B
+0xC2EB 0x7801
+0xC2EC 0x8682
+0xC2ED 0x9A6C
+0xC2EE 0x9A82
+0xC2EF 0x561B
+0xC2F0 0x5417
+0xC2F1 0x57CB
+0xC2F2 0x4E70
+0xC2F3 0x9EA6
+0xC2F4 0x5356
+0xC2F5 0x8FC8
+0xC2F6 0x8109
+0xC2F7 0x7792
+0xC2F8 0x9992
+0xC2F9 0x86EE
+0xC2FA 0x6EE1
+0xC2FB 0x8513
+0xC2FC 0x66FC
+0xC2FD 0x6162
+0xC2FE 0x6F2B
+0xC340 0x807E
+0xC341-0xC342 0x8081
+0xC343 0x8085
+0xC344 0x8088
+0xC345 0x808A
+0xC346-0xC34B 0x808D
+0xC34C-0xC34D 0x8094
+0xC34E 0x8097
+0xC34F 0x8099
+0xC350 0x809E
+0xC351 0x80A3
+0xC352-0xC354 0x80A6
+0xC355 0x80AC
+0xC356 0x80B0
+0xC357 0x80B3
+0xC358-0xC359 0x80B5
+0xC35A-0xC35B 0x80B8
+0xC35C 0x80BB
+0xC35D 0x80C5
+0xC35E-0xC362 0x80C7
+0xC363-0xC369 0x80CF
+0xC36A 0x80D8
+0xC36B-0xC36C 0x80DF
+0xC36D-0xC36E 0x80E2
+0xC36F 0x80E6
+0xC370 0x80EE
+0xC371 0x80F5
+0xC372 0x80F7
+0xC373 0x80F9
+0xC374 0x80FB
+0xC375-0xC378 0x80FE
+0xC379-0xC37B 0x8103
+0xC37C-0xC37D 0x8107
+0xC37E 0x810B
+0xC380 0x810C
+0xC381 0x8115
+0xC382 0x8117
+0xC383 0x8119
+0xC384-0xC386 0x811B
+0xC387-0xC393 0x811F
+0xC394-0xC395 0x812D
+0xC396 0x8130
+0xC397-0xC399 0x8133
+0xC39A 0x8137
+0xC39B-0xC39F 0x8139
+0xC3A0 0x813F
+0xC3A1 0x8C29
+0xC3A2 0x8292
+0xC3A3 0x832B
+0xC3A4 0x76F2
+0xC3A5 0x6C13
+0xC3A6 0x5FD9
+0xC3A7 0x83BD
+0xC3A8 0x732B
+0xC3A9 0x8305
+0xC3AA 0x951A
+0xC3AB 0x6BDB
+0xC3AC 0x77DB
+0xC3AD 0x94C6
+0xC3AE 0x536F
+0xC3AF 0x8302
+0xC3B0 0x5192
+0xC3B1 0x5E3D
+0xC3B2 0x8C8C
+0xC3B3 0x8D38
+0xC3B4 0x4E48
+0xC3B5 0x73AB
+0xC3B6 0x679A
+0xC3B7 0x6885
+0xC3B8 0x9176
+0xC3B9 0x9709
+0xC3BA 0x7164
+0xC3BB 0x6CA1
+0xC3BC 0x7709
+0xC3BD 0x5A92
+0xC3BE 0x9541
+0xC3BF 0x6BCF
+0xC3C0 0x7F8E
+0xC3C1 0x6627
+0xC3C2 0x5BD0
+0xC3C3 0x59B9
+0xC3C4 0x5A9A
+0xC3C5 0x95E8
+0xC3C6 0x95F7
+0xC3C7 0x4EEC
+0xC3C8 0x840C
+0xC3C9 0x8499
+0xC3CA 0x6AAC
+0xC3CB 0x76DF
+0xC3CC 0x9530
+0xC3CD 0x731B
+0xC3CE 0x68A6
+0xC3CF 0x5B5F
+0xC3D0 0x772F
+0xC3D1 0x919A
+0xC3D2 0x9761
+0xC3D3 0x7CDC
+0xC3D4 0x8FF7
+0xC3D5 0x8C1C
+0xC3D6 0x5F25
+0xC3D7 0x7C73
+0xC3D8 0x79D8
+0xC3D9 0x89C5
+0xC3DA 0x6CCC
+0xC3DB 0x871C
+0xC3DC 0x5BC6
+0xC3DD 0x5E42
+0xC3DE 0x68C9
+0xC3DF 0x7720
+0xC3E0 0x7EF5
+0xC3E1 0x5195
+0xC3E2 0x514D
+0xC3E3 0x52C9
+0xC3E4 0x5A29
+0xC3E5 0x7F05
+0xC3E6 0x9762
+0xC3E7 0x82D7
+0xC3E8 0x63CF
+0xC3E9 0x7784
+0xC3EA 0x85D0
+0xC3EB 0x79D2
+0xC3EC 0x6E3A
+0xC3ED 0x5E99
+0xC3EE 0x5999
+0xC3EF 0x8511
+0xC3F0 0x706D
+0xC3F1 0x6C11
+0xC3F2 0x62BF
+0xC3F3 0x76BF
+0xC3F4 0x654F
+0xC3F5 0x60AF
+0xC3F6 0x95FD
+0xC3F7 0x660E
+0xC3F8 0x879F
+0xC3F9 0x9E23
+0xC3FA 0x94ED
+0xC3FB 0x540D
+0xC3FC 0x547D
+0xC3FD 0x8C2C
+0xC3FE 0x6478
+0xC440-0xC445 0x8140
+0xC446 0x8147
+0xC447 0x8149
+0xC448-0xC44A 0x814D
+0xC44B 0x8152
+0xC44C-0xC44E 0x8156
+0xC44F-0xC453 0x815B
+0xC454-0xC457 0x8161
+0xC458 0x8166
+0xC459 0x8168
+0xC45A-0xC45C 0x816A
+0xC45D 0x816F
+0xC45E-0xC45F 0x8172
+0xC460-0xC463 0x8175
+0xC464 0x8181
+0xC465-0xC469 0x8183
+0xC46A 0x8189
+0xC46B-0xC46E 0x818B
+0xC46F 0x8190
+0xC470-0xC475 0x8192
+0xC476-0xC477 0x8199
+0xC478-0xC47C 0x819E
+0xC47D-0xC47E 0x81A4
+0xC480 0x81A7
+0xC481 0x81A9
+0xC482-0xC489 0x81AB
+0xC48A-0xC48F 0x81B4
+0xC490-0xC493 0x81BC
+0xC494-0xC495 0x81C4
+0xC496-0xC498 0x81C7
+0xC499 0x81CB
+0xC49A-0xC4A0 0x81CD
+0xC4A1 0x6479
+0xC4A2 0x8611
+0xC4A3 0x6A21
+0xC4A4 0x819C
+0xC4A5 0x78E8
+0xC4A6 0x6469
+0xC4A7 0x9B54
+0xC4A8 0x62B9
+0xC4A9 0x672B
+0xC4AA 0x83AB
+0xC4AB 0x58A8
+0xC4AC 0x9ED8
+0xC4AD 0x6CAB
+0xC4AE 0x6F20
+0xC4AF 0x5BDE
+0xC4B0 0x964C
+0xC4B1 0x8C0B
+0xC4B2 0x725F
+0xC4B3 0x67D0
+0xC4B4 0x62C7
+0xC4B5 0x7261
+0xC4B6 0x4EA9
+0xC4B7 0x59C6
+0xC4B8 0x6BCD
+0xC4B9 0x5893
+0xC4BA 0x66AE
+0xC4BB 0x5E55
+0xC4BC 0x52DF
+0xC4BD 0x6155
+0xC4BE 0x6728
+0xC4BF 0x76EE
+0xC4C0 0x7766
+0xC4C1 0x7267
+0xC4C2 0x7A46
+0xC4C3 0x62FF
+0xC4C4 0x54EA
+0xC4C5 0x5450
+0xC4C6 0x94A0
+0xC4C7 0x90A3
+0xC4C8 0x5A1C
+0xC4C9 0x7EB3
+0xC4CA 0x6C16
+0xC4CB 0x4E43
+0xC4CC 0x5976
+0xC4CD 0x8010
+0xC4CE 0x5948
+0xC4CF 0x5357
+0xC4D0 0x7537
+0xC4D1 0x96BE
+0xC4D2 0x56CA
+0xC4D3 0x6320
+0xC4D4 0x8111
+0xC4D5 0x607C
+0xC4D6 0x95F9
+0xC4D7 0x6DD6
+0xC4D8 0x5462
+0xC4D9 0x9981
+0xC4DA 0x5185
+0xC4DB 0x5AE9
+0xC4DC 0x80FD
+0xC4DD 0x59AE
+0xC4DE 0x9713
+0xC4DF 0x502A
+0xC4E0 0x6CE5
+0xC4E1 0x5C3C
+0xC4E2 0x62DF
+0xC4E3 0x4F60
+0xC4E4 0x533F
+0xC4E5 0x817B
+0xC4E6 0x9006
+0xC4E7 0x6EBA
+0xC4E8 0x852B
+0xC4E9 0x62C8
+0xC4EA 0x5E74
+0xC4EB 0x78BE
+0xC4EC 0x64B5
+0xC4ED 0x637B
+0xC4EE 0x5FF5
+0xC4EF 0x5A18
+0xC4F0 0x917F
+0xC4F1 0x9E1F
+0xC4F2 0x5C3F
+0xC4F3 0x634F
+0xC4F4 0x8042
+0xC4F5 0x5B7D
+0xC4F6 0x556E
+0xC4F7 0x954A
+0xC4F8 0x954D
+0xC4F9 0x6D85
+0xC4FA 0x60A8
+0xC4FB 0x67E0
+0xC4FC 0x72DE
+0xC4FD 0x51DD
+0xC4FE 0x5B81
+0xC540-0xC54E 0x81D4
+0xC54F-0xC551 0x81E4
+0xC552-0xC553 0x81E8
+0xC554 0x81EB
+0xC555-0xC559 0x81EE
+0xC55A-0xC55F 0x81F5
+0xC560 0x81FD
+0xC561 0x81FF
+0xC562 0x8203
+0xC563-0xC567 0x8207
+0xC568-0xC569 0x820E
+0xC56A 0x8211
+0xC56B 0x8213
+0xC56C-0xC571 0x8215
+0xC572 0x821D
+0xC573 0x8220
+0xC574-0xC577 0x8224
+0xC578 0x8229
+0xC579 0x822E
+0xC57A 0x8232
+0xC57B 0x823A
+0xC57C-0xC57D 0x823C
+0xC57E 0x823F
+0xC580-0xC583 0x8240
+0xC584-0xC585 0x8245
+0xC586 0x8248
+0xC587 0x824A
+0xC588-0xC58A 0x824C
+0xC58B-0xC592 0x8250
+0xC593 0x8259
+0xC594-0xC597 0x825B
+0xC598-0xC59F 0x8260
+0xC5A0 0x8269
+0xC5A1 0x62E7
+0xC5A2 0x6CDE
+0xC5A3 0x725B
+0xC5A4 0x626D
+0xC5A5 0x94AE
+0xC5A6 0x7EBD
+0xC5A7 0x8113
+0xC5A8 0x6D53
+0xC5A9 0x519C
+0xC5AA 0x5F04
+0xC5AB 0x5974
+0xC5AC 0x52AA
+0xC5AD 0x6012
+0xC5AE 0x5973
+0xC5AF 0x6696
+0xC5B0 0x8650
+0xC5B1 0x759F
+0xC5B2 0x632A
+0xC5B3 0x61E6
+0xC5B4 0x7CEF
+0xC5B5 0x8BFA
+0xC5B6 0x54E6
+0xC5B7 0x6B27
+0xC5B8 0x9E25
+0xC5B9 0x6BB4
+0xC5BA 0x85D5
+0xC5BB 0x5455
+0xC5BC 0x5076
+0xC5BD 0x6CA4
+0xC5BE 0x556A
+0xC5BF 0x8DB4
+0xC5C0 0x722C
+0xC5C1 0x5E15
+0xC5C2 0x6015
+0xC5C3 0x7436
+0xC5C4 0x62CD
+0xC5C5 0x6392
+0xC5C6 0x724C
+0xC5C7 0x5F98
+0xC5C8 0x6E43
+0xC5C9 0x6D3E
+0xC5CA 0x6500
+0xC5CB 0x6F58
+0xC5CC 0x76D8
+0xC5CD 0x78D0
+0xC5CE 0x76FC
+0xC5CF 0x7554
+0xC5D0 0x5224
+0xC5D1 0x53DB
+0xC5D2 0x4E53
+0xC5D3 0x5E9E
+0xC5D4 0x65C1
+0xC5D5 0x802A
+0xC5D6 0x80D6
+0xC5D7 0x629B
+0xC5D8 0x5486
+0xC5D9 0x5228
+0xC5DA 0x70AE
+0xC5DB 0x888D
+0xC5DC 0x8DD1
+0xC5DD 0x6CE1
+0xC5DE 0x5478
+0xC5DF 0x80DA
+0xC5E0 0x57F9
+0xC5E1 0x88F4
+0xC5E2 0x8D54
+0xC5E3 0x966A
+0xC5E4 0x914D
+0xC5E5 0x4F69
+0xC5E6 0x6C9B
+0xC5E7 0x55B7
+0xC5E8 0x76C6
+0xC5E9 0x7830
+0xC5EA 0x62A8
+0xC5EB 0x70F9
+0xC5EC 0x6F8E
+0xC5ED 0x5F6D
+0xC5EE 0x84EC
+0xC5EF 0x68DA
+0xC5F0 0x787C
+0xC5F1 0x7BF7
+0xC5F2 0x81A8
+0xC5F3 0x670B
+0xC5F4 0x9E4F
+0xC5F5 0x6367
+0xC5F6 0x78B0
+0xC5F7 0x576F
+0xC5F8 0x7812
+0xC5F9 0x9739
+0xC5FA 0x6279
+0xC5FB 0x62AB
+0xC5FC 0x5288
+0xC5FD 0x7435
+0xC5FE 0x6BD7
+0xC640-0xC643 0x826A
+0xC644 0x8271
+0xC645-0xC648 0x8275
+0xC649-0xC64A 0x827B
+0xC64B-0xC64C 0x8280
+0xC64D 0x8283
+0xC64E-0xC650 0x8285
+0xC651 0x8289
+0xC652 0x828C
+0xC653 0x8290
+0xC654-0xC657 0x8293
+0xC658-0xC659 0x829A
+0xC65A 0x829E
+0xC65B 0x82A0
+0xC65C-0xC65D 0x82A2
+0xC65E 0x82A7
+0xC65F 0x82B2
+0xC660-0xC661 0x82B5
+0xC662-0xC664 0x82BA
+0xC665-0xC666 0x82BF
+0xC667-0xC668 0x82C2
+0xC669-0xC66A 0x82C5
+0xC66B 0x82C9
+0xC66C 0x82D0
+0xC66D 0x82D6
+0xC66E-0xC66F 0x82D9
+0xC670 0x82DD
+0xC671 0x82E2
+0xC672-0xC675 0x82E7
+0xC676-0xC678 0x82EC
+0xC679 0x82F0
+0xC67A-0xC67B 0x82F2
+0xC67C-0xC67D 0x82F5
+0xC67E 0x82F8
+0xC680 0x82FA
+0xC681-0xC685 0x82FC
+0xC686-0xC687 0x830A
+0xC688 0x830D
+0xC689 0x8310
+0xC68A-0xC68B 0x8312
+0xC68C 0x8316
+0xC68D-0xC68E 0x8318
+0xC68F-0xC698 0x831D
+0xC699-0xC69A 0x8329
+0xC69B 0x832E
+0xC69C 0x8330
+0xC69D 0x8332
+0xC69E 0x8337
+0xC69F 0x833B
+0xC6A0 0x833D
+0xC6A1 0x5564
+0xC6A2 0x813E
+0xC6A3 0x75B2
+0xC6A4 0x76AE
+0xC6A5 0x5339
+0xC6A6 0x75DE
+0xC6A7 0x50FB
+0xC6A8 0x5C41
+0xC6A9 0x8B6C
+0xC6AA 0x7BC7
+0xC6AB 0x504F
+0xC6AC 0x7247
+0xC6AD 0x9A97
+0xC6AE 0x98D8
+0xC6AF 0x6F02
+0xC6B0 0x74E2
+0xC6B1 0x7968
+0xC6B2 0x6487
+0xC6B3 0x77A5
+0xC6B4 0x62FC
+0xC6B5 0x9891
+0xC6B6 0x8D2B
+0xC6B7 0x54C1
+0xC6B8 0x8058
+0xC6B9 0x4E52
+0xC6BA 0x576A
+0xC6BB 0x82F9
+0xC6BC 0x840D
+0xC6BD 0x5E73
+0xC6BE 0x51ED
+0xC6BF 0x74F6
+0xC6C0 0x8BC4
+0xC6C1 0x5C4F
+0xC6C2 0x5761
+0xC6C3 0x6CFC
+0xC6C4 0x9887
+0xC6C5 0x5A46
+0xC6C6 0x7834
+0xC6C7 0x9B44
+0xC6C8 0x8FEB
+0xC6C9 0x7C95
+0xC6CA 0x5256
+0xC6CB 0x6251
+0xC6CC 0x94FA
+0xC6CD 0x4EC6
+0xC6CE 0x8386
+0xC6CF 0x8461
+0xC6D0 0x83E9
+0xC6D1 0x84B2
+0xC6D2 0x57D4
+0xC6D3 0x6734
+0xC6D4 0x5703
+0xC6D5 0x666E
+0xC6D6 0x6D66
+0xC6D7 0x8C31
+0xC6D8 0x66DD
+0xC6D9 0x7011
+0xC6DA 0x671F
+0xC6DB 0x6B3A
+0xC6DC 0x6816
+0xC6DD 0x621A
+0xC6DE 0x59BB
+0xC6DF 0x4E03
+0xC6E0 0x51C4
+0xC6E1 0x6F06
+0xC6E2 0x67D2
+0xC6E3 0x6C8F
+0xC6E4 0x5176
+0xC6E5 0x68CB
+0xC6E6 0x5947
+0xC6E7 0x6B67
+0xC6E8 0x7566
+0xC6E9 0x5D0E
+0xC6EA 0x8110
+0xC6EB 0x9F50
+0xC6EC 0x65D7
+0xC6ED 0x7948
+0xC6EE 0x7941
+0xC6EF 0x9A91
+0xC6F0 0x8D77
+0xC6F1 0x5C82
+0xC6F2 0x4E5E
+0xC6F3 0x4F01
+0xC6F4 0x542F
+0xC6F5 0x5951
+0xC6F6 0x780C
+0xC6F7 0x5668
+0xC6F8 0x6C14
+0xC6F9 0x8FC4
+0xC6FA 0x5F03
+0xC6FB 0x6C7D
+0xC6FC 0x6CE3
+0xC6FD 0x8BAB
+0xC6FE 0x6390
+0xC740-0xC741 0x833E
+0xC742-0xC743 0x8341
+0xC744-0xC745 0x8344
+0xC746 0x8348
+0xC747-0xC74B 0x834A
+0xC74C 0x8353
+0xC74D-0xC751 0x8355
+0xC752 0x835D
+0xC753 0x8362
+0xC754-0xC75A 0x8370
+0xC75B-0xC75C 0x8379
+0xC75D-0xC763 0x837E
+0xC764-0xC765 0x8387
+0xC766-0xC769 0x838A
+0xC76A-0xC76C 0x838F
+0xC76D-0xC770 0x8394
+0xC771-0xC772 0x8399
+0xC773 0x839D
+0xC774 0x839F
+0xC775-0xC77B 0x83A1
+0xC77C-0xC77E 0x83AC
+0xC780 0x83AF
+0xC781 0x83B5
+0xC782 0x83BB
+0xC783-0xC784 0x83BE
+0xC785-0xC787 0x83C2
+0xC788 0x83C6
+0xC789-0xC78A 0x83C8
+0xC78B 0x83CB
+0xC78C-0xC78D 0x83CD
+0xC78E-0xC791 0x83D0
+0xC792 0x83D5
+0xC793 0x83D7
+0xC794-0xC796 0x83D9
+0xC797 0x83DE
+0xC798-0xC79A 0x83E2
+0xC79B-0xC79D 0x83E6
+0xC79E-0xC7A0 0x83EB
+0xC7A1 0x6070
+0xC7A2 0x6D3D
+0xC7A3 0x7275
+0xC7A4 0x6266
+0xC7A5 0x948E
+0xC7A6 0x94C5
+0xC7A7 0x5343
+0xC7A8 0x8FC1
+0xC7A9 0x7B7E
+0xC7AA 0x4EDF
+0xC7AB 0x8C26
+0xC7AC 0x4E7E
+0xC7AD 0x9ED4
+0xC7AE 0x94B1
+0xC7AF 0x94B3
+0xC7B0 0x524D
+0xC7B1 0x6F5C
+0xC7B2 0x9063
+0xC7B3 0x6D45
+0xC7B4 0x8C34
+0xC7B5 0x5811
+0xC7B6 0x5D4C
+0xC7B7 0x6B20
+0xC7B8 0x6B49
+0xC7B9 0x67AA
+0xC7BA 0x545B
+0xC7BB 0x8154
+0xC7BC 0x7F8C
+0xC7BD 0x5899
+0xC7BE 0x8537
+0xC7BF 0x5F3A
+0xC7C0 0x62A2
+0xC7C1 0x6A47
+0xC7C2 0x9539
+0xC7C3 0x6572
+0xC7C4 0x6084
+0xC7C5 0x6865
+0xC7C6 0x77A7
+0xC7C7 0x4E54
+0xC7C8 0x4FA8
+0xC7C9 0x5DE7
+0xC7CA 0x9798
+0xC7CB 0x64AC
+0xC7CC 0x7FD8
+0xC7CD 0x5CED
+0xC7CE 0x4FCF
+0xC7CF 0x7A8D
+0xC7D0 0x5207
+0xC7D1 0x8304
+0xC7D2 0x4E14
+0xC7D3 0x602F
+0xC7D4 0x7A83
+0xC7D5 0x94A6
+0xC7D6 0x4FB5
+0xC7D7 0x4EB2
+0xC7D8 0x79E6
+0xC7D9 0x7434
+0xC7DA 0x52E4
+0xC7DB 0x82B9
+0xC7DC 0x64D2
+0xC7DD 0x79BD
+0xC7DE 0x5BDD
+0xC7DF 0x6C81
+0xC7E0 0x9752
+0xC7E1 0x8F7B
+0xC7E2 0x6C22
+0xC7E3 0x503E
+0xC7E4 0x537F
+0xC7E5 0x6E05
+0xC7E6 0x64CE
+0xC7E7 0x6674
+0xC7E8 0x6C30
+0xC7E9 0x60C5
+0xC7EA 0x9877
+0xC7EB 0x8BF7
+0xC7EC 0x5E86
+0xC7ED 0x743C
+0xC7EE 0x7A77
+0xC7EF 0x79CB
+0xC7F0 0x4E18
+0xC7F1 0x90B1
+0xC7F2 0x7403
+0xC7F3 0x6C42
+0xC7F4 0x56DA
+0xC7F5 0x914B
+0xC7F6 0x6CC5
+0xC7F7 0x8D8B
+0xC7F8 0x533A
+0xC7F9 0x86C6
+0xC7FA 0x66F2
+0xC7FB 0x8EAF
+0xC7FC 0x5C48
+0xC7FD 0x9A71
+0xC7FE 0x6E20
+0xC840-0xC841 0x83EE
+0xC842-0xC846 0x83F3
+0xC847-0xC849 0x83FA
+0xC84A-0xC84C 0x83FE
+0xC84D 0x8402
+0xC84E 0x8405
+0xC84F-0xC852 0x8407
+0xC853 0x8410
+0xC854-0xC859 0x8412
+0xC85A-0xC85C 0x8419
+0xC85D-0xC862 0x841E
+0xC863-0xC86A 0x8429
+0xC86B-0xC870 0x8432
+0xC871-0xC873 0x8439
+0xC874-0xC87B 0x843E
+0xC87C-0xC87E 0x8447
+0xC880-0xC886 0x844A
+0xC887-0xC88B 0x8452
+0xC88C 0x8458
+0xC88D-0xC890 0x845D
+0xC891 0x8462
+0xC892-0xC896 0x8464
+0xC897 0x846A
+0xC898-0xC89A 0x846E
+0xC89B 0x8472
+0xC89C 0x8474
+0xC89D 0x8477
+0xC89E 0x8479
+0xC89F-0xC8A0 0x847B
+0xC8A1 0x53D6
+0xC8A2 0x5A36
+0xC8A3 0x9F8B
+0xC8A4 0x8DA3
+0xC8A5 0x53BB
+0xC8A6 0x5708
+0xC8A7 0x98A7
+0xC8A8 0x6743
+0xC8A9 0x919B
+0xC8AA 0x6CC9
+0xC8AB 0x5168
+0xC8AC 0x75CA
+0xC8AD 0x62F3
+0xC8AE 0x72AC
+0xC8AF 0x5238
+0xC8B0 0x529D
+0xC8B1 0x7F3A
+0xC8B2 0x7094
+0xC8B3 0x7638
+0xC8B4 0x5374
+0xC8B5 0x9E4A
+0xC8B6 0x69B7
+0xC8B7 0x786E
+0xC8B8 0x96C0
+0xC8B9 0x88D9
+0xC8BA 0x7FA4
+0xC8BB 0x7136
+0xC8BC 0x71C3
+0xC8BD 0x5189
+0xC8BE 0x67D3
+0xC8BF 0x74E4
+0xC8C0 0x58E4
+0xC8C1 0x6518
+0xC8C2 0x56B7
+0xC8C3 0x8BA9
+0xC8C4 0x9976
+0xC8C5 0x6270
+0xC8C6 0x7ED5
+0xC8C7 0x60F9
+0xC8C8 0x70ED
+0xC8C9 0x58EC
+0xC8CA 0x4EC1
+0xC8CB 0x4EBA
+0xC8CC 0x5FCD
+0xC8CD 0x97E7
+0xC8CE 0x4EFB
+0xC8CF 0x8BA4
+0xC8D0 0x5203
+0xC8D1 0x598A
+0xC8D2 0x7EAB
+0xC8D3 0x6254
+0xC8D4 0x4ECD
+0xC8D5 0x65E5
+0xC8D6 0x620E
+0xC8D7 0x8338
+0xC8D8 0x84C9
+0xC8D9 0x8363
+0xC8DA 0x878D
+0xC8DB 0x7194
+0xC8DC 0x6EB6
+0xC8DD 0x5BB9
+0xC8DE 0x7ED2
+0xC8DF 0x5197
+0xC8E0 0x63C9
+0xC8E1 0x67D4
+0xC8E2 0x8089
+0xC8E3 0x8339
+0xC8E4 0x8815
+0xC8E5 0x5112
+0xC8E6 0x5B7A
+0xC8E7 0x5982
+0xC8E8 0x8FB1
+0xC8E9 0x4E73
+0xC8EA 0x6C5D
+0xC8EB 0x5165
+0xC8EC 0x8925
+0xC8ED 0x8F6F
+0xC8EE 0x962E
+0xC8EF 0x854A
+0xC8F0 0x745E
+0xC8F1 0x9510
+0xC8F2 0x95F0
+0xC8F3 0x6DA6
+0xC8F4 0x82E5
+0xC8F5 0x5F31
+0xC8F6 0x6492
+0xC8F7 0x6D12
+0xC8F8 0x8428
+0xC8F9 0x816E
+0xC8FA 0x9CC3
+0xC8FB 0x585E
+0xC8FC 0x8D5B
+0xC8FD 0x4E09
+0xC8FE 0x53C1
+0xC940-0xC944 0x847D
+0xC945-0xC948 0x8483
+0xC949 0x848A
+0xC94A 0x848D
+0xC94B-0xC952 0x848F
+0xC953 0x8498
+0xC954-0xC955 0x849A
+0xC956-0xC959 0x849D
+0xC95A-0xC966 0x84A2
+0xC967-0xC968 0x84B0
+0xC969 0x84B3
+0xC96A-0xC96C 0x84B5
+0xC96D-0xC96E 0x84BB
+0xC96F 0x84BE
+0xC970 0x84C0
+0xC971-0xC972 0x84C2
+0xC973-0xC976 0x84C5
+0xC977-0xC978 0x84CB
+0xC979-0xC97A 0x84CE
+0xC97B 0x84D2
+0xC97C-0xC97D 0x84D4
+0xC97E 0x84D7
+0xC980-0xC984 0x84D8
+0xC985 0x84DE
+0xC986-0xC987 0x84E1
+0xC988 0x84E4
+0xC989-0xC98D 0x84E7
+0xC98E-0xC990 0x84ED
+0xC991-0xC99B 0x84F1
+0xC99C-0xC99D 0x84FD
+0xC99E-0xC9A0 0x8500
+0xC9A1 0x4F1E
+0xC9A2 0x6563
+0xC9A3 0x6851
+0xC9A4 0x55D3
+0xC9A5 0x4E27
+0xC9A6 0x6414
+0xC9A7 0x9A9A
+0xC9A8 0x626B
+0xC9A9 0x5AC2
+0xC9AA 0x745F
+0xC9AB 0x8272
+0xC9AC 0x6DA9
+0xC9AD 0x68EE
+0xC9AE 0x50E7
+0xC9AF 0x838E
+0xC9B0 0x7802
+0xC9B1 0x6740
+0xC9B2 0x5239
+0xC9B3 0x6C99
+0xC9B4 0x7EB1
+0xC9B5 0x50BB
+0xC9B6 0x5565
+0xC9B7 0x715E
+0xC9B8 0x7B5B
+0xC9B9 0x6652
+0xC9BA 0x73CA
+0xC9BB 0x82EB
+0xC9BC 0x6749
+0xC9BD 0x5C71
+0xC9BE 0x5220
+0xC9BF 0x717D
+0xC9C0 0x886B
+0xC9C1 0x95EA
+0xC9C2 0x9655
+0xC9C3 0x64C5
+0xC9C4 0x8D61
+0xC9C5 0x81B3
+0xC9C6 0x5584
+0xC9C7 0x6C55
+0xC9C8 0x6247
+0xC9C9 0x7F2E
+0xC9CA 0x5892
+0xC9CB 0x4F24
+0xC9CC 0x5546
+0xC9CD 0x8D4F
+0xC9CE 0x664C
+0xC9CF 0x4E0A
+0xC9D0 0x5C1A
+0xC9D1 0x88F3
+0xC9D2 0x68A2
+0xC9D3 0x634E
+0xC9D4 0x7A0D
+0xC9D5 0x70E7
+0xC9D6 0x828D
+0xC9D7 0x52FA
+0xC9D8 0x97F6
+0xC9D9 0x5C11
+0xC9DA 0x54E8
+0xC9DB 0x90B5
+0xC9DC 0x7ECD
+0xC9DD 0x5962
+0xC9DE 0x8D4A
+0xC9DF 0x86C7
+0xC9E0-0xC9E1 0x820C
+0xC9E2 0x8D66
+0xC9E3 0x6444
+0xC9E4 0x5C04
+0xC9E5 0x6151
+0xC9E6 0x6D89
+0xC9E7 0x793E
+0xC9E8 0x8BBE
+0xC9E9 0x7837
+0xC9EA 0x7533
+0xC9EB 0x547B
+0xC9EC 0x4F38
+0xC9ED 0x8EAB
+0xC9EE 0x6DF1
+0xC9EF 0x5A20
+0xC9F0 0x7EC5
+0xC9F1 0x795E
+0xC9F2 0x6C88
+0xC9F3 0x5BA1
+0xC9F4 0x5A76
+0xC9F5 0x751A
+0xC9F6 0x80BE
+0xC9F7 0x614E
+0xC9F8 0x6E17
+0xC9F9 0x58F0
+0xC9FA 0x751F
+0xC9FB 0x7525
+0xC9FC 0x7272
+0xC9FD 0x5347
+0xC9FE 0x7EF3
+0xCA40-0xCA48 0x8503
+0xCA49-0xCA4C 0x850D
+0xCA4D 0x8512
+0xCA4E-0xCA50 0x8514
+0xCA51-0xCA52 0x8518
+0xCA53-0xCA56 0x851B
+0xCA57 0x8520
+0xCA58-0xCA60 0x8522
+0xCA61-0xCA6A 0x852D
+0xCA6B-0xCA6F 0x853E
+0xCA70-0xCA73 0x8544
+0xCA74-0xCA7E 0x854B
+0xCA80-0xCA81 0x8557
+0xCA82-0xCA85 0x855A
+0xCA86-0xCA8A 0x855F
+0xCA8B-0xCA8D 0x8565
+0xCA8E-0xCA96 0x8569
+0xCA97 0x8573
+0xCA98-0xCA9B 0x8575
+0xCA9C-0xCA9D 0x857C
+0xCA9E-0xCAA0 0x857F
+0xCAA1 0x7701
+0xCAA2 0x76DB
+0xCAA3 0x5269
+0xCAA4 0x80DC
+0xCAA5 0x5723
+0xCAA6 0x5E08
+0xCAA7 0x5931
+0xCAA8 0x72EE
+0xCAA9 0x65BD
+0xCAAA 0x6E7F
+0xCAAB 0x8BD7
+0xCAAC 0x5C38
+0xCAAD 0x8671
+0xCAAE 0x5341
+0xCAAF 0x77F3
+0xCAB0 0x62FE
+0xCAB1 0x65F6
+0xCAB2 0x4EC0
+0xCAB3 0x98DF
+0xCAB4 0x8680
+0xCAB5 0x5B9E
+0xCAB6 0x8BC6
+0xCAB7 0x53F2
+0xCAB8 0x77E2
+0xCAB9 0x4F7F
+0xCABA 0x5C4E
+0xCABB 0x9A76
+0xCABC 0x59CB
+0xCABD 0x5F0F
+0xCABE 0x793A
+0xCABF 0x58EB
+0xCAC0 0x4E16
+0xCAC1 0x67FF
+0xCAC2 0x4E8B
+0xCAC3 0x62ED
+0xCAC4 0x8A93
+0xCAC5 0x901D
+0xCAC6 0x52BF
+0xCAC7 0x662F
+0xCAC8 0x55DC
+0xCAC9 0x566C
+0xCACA 0x9002
+0xCACB 0x4ED5
+0xCACC 0x4F8D
+0xCACD 0x91CA
+0xCACE 0x9970
+0xCACF 0x6C0F
+0xCAD0 0x5E02
+0xCAD1 0x6043
+0xCAD2 0x5BA4
+0xCAD3 0x89C6
+0xCAD4 0x8BD5
+0xCAD5 0x6536
+0xCAD6 0x624B
+0xCAD7 0x9996
+0xCAD8 0x5B88
+0xCAD9 0x5BFF
+0xCADA 0x6388
+0xCADB 0x552E
+0xCADC 0x53D7
+0xCADD 0x7626
+0xCADE 0x517D
+0xCADF 0x852C
+0xCAE0 0x67A2
+0xCAE1 0x68B3
+0xCAE2 0x6B8A
+0xCAE3 0x6292
+0xCAE4 0x8F93
+0xCAE5 0x53D4
+0xCAE6 0x8212
+0xCAE7 0x6DD1
+0xCAE8 0x758F
+0xCAE9 0x4E66
+0xCAEA 0x8D4E
+0xCAEB 0x5B70
+0xCAEC 0x719F
+0xCAED 0x85AF
+0xCAEE 0x6691
+0xCAEF 0x66D9
+0xCAF0 0x7F72
+0xCAF1 0x8700
+0xCAF2 0x9ECD
+0xCAF3 0x9F20
+0xCAF4 0x5C5E
+0xCAF5 0x672F
+0xCAF6 0x8FF0
+0xCAF7 0x6811
+0xCAF8 0x675F
+0xCAF9 0x620D
+0xCAFA 0x7AD6
+0xCAFB 0x5885
+0xCAFC 0x5EB6
+0xCAFD 0x6570
+0xCAFE 0x6F31
+0xCB40-0xCB41 0x8582
+0xCB42 0x8586
+0xCB43-0xCB49 0x8588
+0xCB4A-0xCB54 0x8590
+0xCB55-0xCB5B 0x859D
+0xCB5C-0xCB5E 0x85A5
+0xCB5F 0x85A9
+0xCB60-0xCB62 0x85AB
+0xCB63-0xCB68 0x85B1
+0xCB69 0x85B8
+0xCB6A-0xCB70 0x85BA
+0xCB71-0xCB77 0x85C2
+0xCB78-0xCB7C 0x85CA
+0xCB7D-0xCB7E 0x85D1
+0xCB80 0x85D4
+0xCB81-0xCB86 0x85D6
+0xCB87-0xCB8D 0x85DD
+0xCB8E-0xCB91 0x85E5
+0xCB92-0xCBA0 0x85EA
+0xCBA1 0x6055
+0xCBA2 0x5237
+0xCBA3 0x800D
+0xCBA4 0x6454
+0xCBA5 0x8870
+0xCBA6 0x7529
+0xCBA7 0x5E05
+0xCBA8 0x6813
+0xCBA9 0x62F4
+0xCBAA 0x971C
+0xCBAB 0x53CC
+0xCBAC 0x723D
+0xCBAD 0x8C01
+0xCBAE 0x6C34
+0xCBAF 0x7761
+0xCBB0 0x7A0E
+0xCBB1 0x542E
+0xCBB2 0x77AC
+0xCBB3 0x987A
+0xCBB4 0x821C
+0xCBB5 0x8BF4
+0xCBB6 0x7855
+0xCBB7 0x6714
+0xCBB8 0x70C1
+0xCBB9 0x65AF
+0xCBBA 0x6495
+0xCBBB 0x5636
+0xCBBC 0x601D
+0xCBBD 0x79C1
+0xCBBE 0x53F8
+0xCBBF 0x4E1D
+0xCBC0 0x6B7B
+0xCBC1 0x8086
+0xCBC2 0x5BFA
+0xCBC3 0x55E3
+0xCBC4 0x56DB
+0xCBC5 0x4F3A
+0xCBC6 0x4F3C
+0xCBC7 0x9972
+0xCBC8 0x5DF3
+0xCBC9 0x677E
+0xCBCA 0x8038
+0xCBCB 0x6002
+0xCBCC 0x9882
+0xCBCD 0x9001
+0xCBCE 0x5B8B
+0xCBCF 0x8BBC
+0xCBD0 0x8BF5
+0xCBD1 0x641C
+0xCBD2 0x8258
+0xCBD3 0x64DE
+0xCBD4 0x55FD
+0xCBD5 0x82CF
+0xCBD6 0x9165
+0xCBD7 0x4FD7
+0xCBD8 0x7D20
+0xCBD9 0x901F
+0xCBDA 0x7C9F
+0xCBDB 0x50F3
+0xCBDC 0x5851
+0xCBDD 0x6EAF
+0xCBDE 0x5BBF
+0xCBDF 0x8BC9
+0xCBE0 0x8083
+0xCBE1 0x9178
+0xCBE2 0x849C
+0xCBE3 0x7B97
+0xCBE4 0x867D
+0xCBE5 0x968B
+0xCBE6 0x968F
+0xCBE7 0x7EE5
+0xCBE8 0x9AD3
+0xCBE9 0x788E
+0xCBEA 0x5C81
+0xCBEB 0x7A57
+0xCBEC 0x9042
+0xCBED 0x96A7
+0xCBEE 0x795F
+0xCBEF 0x5B59
+0xCBF0 0x635F
+0xCBF1 0x7B0B
+0xCBF2 0x84D1
+0xCBF3 0x68AD
+0xCBF4 0x5506
+0xCBF5 0x7F29
+0xCBF6 0x7410
+0xCBF7 0x7D22
+0xCBF8 0x9501
+0xCBF9 0x6240
+0xCBFA 0x584C
+0xCBFB 0x4ED6
+0xCBFC 0x5B83
+0xCBFD 0x5979
+0xCBFE 0x5854
+0xCC40-0xCC41 0x85F9
+0xCC42-0xCC44 0x85FC
+0xCC45-0xCC49 0x8600
+0xCC4A-0xCC54 0x8606
+0xCC55-0xCC58 0x8612
+0xCC59-0xCC68 0x8617
+0xCC69 0x8628
+0xCC6A-0xCC77 0x862A
+0xCC78-0xCC7A 0x8639
+0xCC7B-0xCC7E 0x863D
+0xCC80-0xCC8B 0x8641
+0xCC8C-0xCC8D 0x8652
+0xCC8E-0xCC92 0x8655
+0xCC93-0xCC95 0x865B
+0xCC96-0xCC98 0x865F
+0xCC99-0xCCA0 0x8663
+0xCCA1 0x736D
+0xCCA2 0x631E
+0xCCA3 0x8E4B
+0xCCA4 0x8E0F
+0xCCA5 0x80CE
+0xCCA6 0x82D4
+0xCCA7 0x62AC
+0xCCA8 0x53F0
+0xCCA9 0x6CF0
+0xCCAA 0x915E
+0xCCAB 0x592A
+0xCCAC 0x6001
+0xCCAD 0x6C70
+0xCCAE 0x574D
+0xCCAF 0x644A
+0xCCB0 0x8D2A
+0xCCB1 0x762B
+0xCCB2 0x6EE9
+0xCCB3 0x575B
+0xCCB4 0x6A80
+0xCCB5 0x75F0
+0xCCB6 0x6F6D
+0xCCB7 0x8C2D
+0xCCB8 0x8C08
+0xCCB9 0x5766
+0xCCBA 0x6BEF
+0xCCBB 0x8892
+0xCCBC 0x78B3
+0xCCBD 0x63A2
+0xCCBE 0x53F9
+0xCCBF 0x70AD
+0xCCC0 0x6C64
+0xCCC1 0x5858
+0xCCC2 0x642A
+0xCCC3 0x5802
+0xCCC4 0x68E0
+0xCCC5 0x819B
+0xCCC6 0x5510
+0xCCC7 0x7CD6
+0xCCC8 0x5018
+0xCCC9 0x8EBA
+0xCCCA 0x6DCC
+0xCCCB 0x8D9F
+0xCCCC 0x70EB
+0xCCCD 0x638F
+0xCCCE 0x6D9B
+0xCCCF 0x6ED4
+0xCCD0 0x7EE6
+0xCCD1 0x8404
+0xCCD2 0x6843
+0xCCD3 0x9003
+0xCCD4 0x6DD8
+0xCCD5 0x9676
+0xCCD6 0x8BA8
+0xCCD7 0x5957
+0xCCD8 0x7279
+0xCCD9 0x85E4
+0xCCDA 0x817E
+0xCCDB 0x75BC
+0xCCDC 0x8A8A
+0xCCDD 0x68AF
+0xCCDE 0x5254
+0xCCDF 0x8E22
+0xCCE0 0x9511
+0xCCE1 0x63D0
+0xCCE2 0x9898
+0xCCE3 0x8E44
+0xCCE4 0x557C
+0xCCE5 0x4F53
+0xCCE6 0x66FF
+0xCCE7 0x568F
+0xCCE8 0x60D5
+0xCCE9 0x6D95
+0xCCEA 0x5243
+0xCCEB 0x5C49
+0xCCEC 0x5929
+0xCCED 0x6DFB
+0xCCEE 0x586B
+0xCCEF 0x7530
+0xCCF0 0x751C
+0xCCF1 0x606C
+0xCCF2 0x8214
+0xCCF3 0x8146
+0xCCF4 0x6311
+0xCCF5 0x6761
+0xCCF6 0x8FE2
+0xCCF7 0x773A
+0xCCF8 0x8DF3
+0xCCF9 0x8D34
+0xCCFA 0x94C1
+0xCCFB 0x5E16
+0xCCFC 0x5385
+0xCCFD 0x542C
+0xCCFE 0x70C3
+0xCD40 0x866D
+0xCD41-0xCD42 0x866F
+0xCD43-0xCD49 0x8672
+0xCD4A-0xCD50 0x8683
+0xCD51-0xCD55 0x868E
+0xCD56 0x8694
+0xCD57-0xCD5C 0x8696
+0xCD5D-0xCD61 0x869E
+0xCD62-0xCD63 0x86A5
+0xCD64 0x86AB
+0xCD65-0xCD66 0x86AD
+0xCD67-0xCD68 0x86B2
+0xCD69-0xCD6B 0x86B7
+0xCD6C-0xCD70 0x86BB
+0xCD71-0xCD73 0x86C1
+0xCD74 0x86C5
+0xCD75 0x86C8
+0xCD76-0xCD77 0x86CC
+0xCD78-0xCD79 0x86D2
+0xCD7A-0xCD7C 0x86D5
+0xCD7D 0x86DA
+0xCD7E 0x86DC
+0xCD80 0x86DD
+0xCD81-0xCD84 0x86E0
+0xCD85-0xCD88 0x86E5
+0xCD89-0xCD8B 0x86EA
+0xCD8C 0x86EF
+0xCD8D-0xCD8F 0x86F5
+0xCD90-0xCD93 0x86FA
+0xCD94 0x86FF
+0xCD95 0x8701
+0xCD96-0xCD98 0x8704
+0xCD99-0xCD9A 0x870B
+0xCD9B-0xCD9E 0x870E
+0xCD9F 0x8714
+0xCDA0 0x8716
+0xCDA1 0x6C40
+0xCDA2 0x5EF7
+0xCDA3 0x505C
+0xCDA4 0x4EAD
+0xCDA5 0x5EAD
+0xCDA6 0x633A
+0xCDA7 0x8247
+0xCDA8 0x901A
+0xCDA9 0x6850
+0xCDAA 0x916E
+0xCDAB 0x77B3
+0xCDAC 0x540C
+0xCDAD 0x94DC
+0xCDAE 0x5F64
+0xCDAF 0x7AE5
+0xCDB0 0x6876
+0xCDB1 0x6345
+0xCDB2 0x7B52
+0xCDB3 0x7EDF
+0xCDB4 0x75DB
+0xCDB5 0x5077
+0xCDB6 0x6295
+0xCDB7 0x5934
+0xCDB8 0x900F
+0xCDB9 0x51F8
+0xCDBA 0x79C3
+0xCDBB 0x7A81
+0xCDBC 0x56FE
+0xCDBD 0x5F92
+0xCDBE 0x9014
+0xCDBF 0x6D82
+0xCDC0 0x5C60
+0xCDC1 0x571F
+0xCDC2 0x5410
+0xCDC3 0x5154
+0xCDC4 0x6E4D
+0xCDC5 0x56E2
+0xCDC6 0x63A8
+0xCDC7 0x9893
+0xCDC8 0x817F
+0xCDC9 0x8715
+0xCDCA 0x892A
+0xCDCB 0x9000
+0xCDCC 0x541E
+0xCDCD 0x5C6F
+0xCDCE 0x81C0
+0xCDCF 0x62D6
+0xCDD0 0x6258
+0xCDD1 0x8131
+0xCDD2 0x9E35
+0xCDD3 0x9640
+0xCDD4 0x9A6E
+0xCDD5 0x9A7C
+0xCDD6 0x692D
+0xCDD7 0x59A5
+0xCDD8 0x62D3
+0xCDD9 0x553E
+0xCDDA 0x6316
+0xCDDB 0x54C7
+0xCDDC 0x86D9
+0xCDDD 0x6D3C
+0xCDDE 0x5A03
+0xCDDF 0x74E6
+0xCDE0 0x889C
+0xCDE1 0x6B6A
+0xCDE2 0x5916
+0xCDE3 0x8C4C
+0xCDE4 0x5F2F
+0xCDE5 0x6E7E
+0xCDE6 0x73A9
+0xCDE7 0x987D
+0xCDE8 0x4E38
+0xCDE9 0x70F7
+0xCDEA 0x5B8C
+0xCDEB 0x7897
+0xCDEC 0x633D
+0xCDED 0x665A
+0xCDEE 0x7696
+0xCDEF 0x60CB
+0xCDF0 0x5B9B
+0xCDF1 0x5A49
+0xCDF2 0x4E07
+0xCDF3 0x8155
+0xCDF4 0x6C6A
+0xCDF5 0x738B
+0xCDF6 0x4EA1
+0xCDF7 0x6789
+0xCDF8 0x7F51
+0xCDF9 0x5F80
+0xCDFA 0x65FA
+0xCDFB 0x671B
+0xCDFC 0x5FD8
+0xCDFD 0x5984
+0xCDFE 0x5A01
+0xCE40 0x8719
+0xCE41 0x871B
+0xCE42 0x871D
+0xCE43-0xCE44 0x871F
+0xCE45 0x8724
+0xCE46-0xCE48 0x8726
+0xCE49-0xCE4C 0x872A
+0xCE4D-0xCE4E 0x872F
+0xCE4F-0xCE50 0x8732
+0xCE51-0xCE52 0x8735
+0xCE53-0xCE55 0x8738
+0xCE56-0xCE57 0x873C
+0xCE58-0xCE5E 0x8740
+0xCE5F-0xCE60 0x874A
+0xCE61 0x874D
+0xCE62-0xCE65 0x874F
+0xCE66-0xCE68 0x8754
+0xCE69 0x8758
+0xCE6A-0xCE6F 0x875A
+0xCE70-0xCE71 0x8761
+0xCE72-0xCE79 0x8766
+0xCE7A 0x876F
+0xCE7B-0xCE7D 0x8771
+0xCE7E 0x8775
+0xCE80-0xCE83 0x8777
+0xCE84-0xCE86 0x877F
+0xCE87 0x8784
+0xCE88-0xCE89 0x8786
+0xCE8A-0xCE8B 0x8789
+0xCE8C 0x878C
+0xCE8D-0xCE91 0x878E
+0xCE92-0xCE94 0x8794
+0xCE95-0xCE9B 0x8798
+0xCE9C-0xCEA0 0x87A0
+0xCEA1 0x5DCD
+0xCEA2 0x5FAE
+0xCEA3 0x5371
+0xCEA4 0x97E6
+0xCEA5 0x8FDD
+0xCEA6 0x6845
+0xCEA7 0x56F4
+0xCEA8 0x552F
+0xCEA9 0x60DF
+0xCEAA 0x4E3A
+0xCEAB 0x6F4D
+0xCEAC 0x7EF4
+0xCEAD 0x82C7
+0xCEAE 0x840E
+0xCEAF 0x59D4
+0xCEB0 0x4F1F
+0xCEB1 0x4F2A
+0xCEB2 0x5C3E
+0xCEB3 0x7EAC
+0xCEB4 0x672A
+0xCEB5 0x851A
+0xCEB6 0x5473
+0xCEB7 0x754F
+0xCEB8 0x80C3
+0xCEB9 0x5582
+0xCEBA 0x9B4F
+0xCEBB 0x4F4D
+0xCEBC 0x6E2D
+0xCEBD 0x8C13
+0xCEBE 0x5C09
+0xCEBF 0x6170
+0xCEC0 0x536B
+0xCEC1 0x761F
+0xCEC2 0x6E29
+0xCEC3 0x868A
+0xCEC4 0x6587
+0xCEC5 0x95FB
+0xCEC6 0x7EB9
+0xCEC7 0x543B
+0xCEC8 0x7A33
+0xCEC9 0x7D0A
+0xCECA 0x95EE
+0xCECB 0x55E1
+0xCECC 0x7FC1
+0xCECD 0x74EE
+0xCECE 0x631D
+0xCECF 0x8717
+0xCED0 0x6DA1
+0xCED1 0x7A9D
+0xCED2 0x6211
+0xCED3 0x65A1
+0xCED4 0x5367
+0xCED5 0x63E1
+0xCED6 0x6C83
+0xCED7 0x5DEB
+0xCED8 0x545C
+0xCED9 0x94A8
+0xCEDA 0x4E4C
+0xCEDB 0x6C61
+0xCEDC 0x8BEC
+0xCEDD 0x5C4B
+0xCEDE 0x65E0
+0xCEDF 0x829C
+0xCEE0 0x68A7
+0xCEE1 0x543E
+0xCEE2 0x5434
+0xCEE3 0x6BCB
+0xCEE4 0x6B66
+0xCEE5 0x4E94
+0xCEE6 0x6342
+0xCEE7 0x5348
+0xCEE8 0x821E
+0xCEE9 0x4F0D
+0xCEEA 0x4FAE
+0xCEEB 0x575E
+0xCEEC 0x620A
+0xCEED 0x96FE
+0xCEEE 0x6664
+0xCEEF 0x7269
+0xCEF0 0x52FF
+0xCEF1 0x52A1
+0xCEF2 0x609F
+0xCEF3 0x8BEF
+0xCEF4 0x6614
+0xCEF5 0x7199
+0xCEF6 0x6790
+0xCEF7 0x897F
+0xCEF8 0x7852
+0xCEF9 0x77FD
+0xCEFA 0x6670
+0xCEFB 0x563B
+0xCEFC 0x5438
+0xCEFD 0x9521
+0xCEFE 0x727A
+0xCF40-0xCF42 0x87A5
+0xCF43-0xCF44 0x87A9
+0xCF45 0x87AE
+0xCF46-0xCF48 0x87B0
+0xCF49 0x87B4
+0xCF4A-0xCF4D 0x87B6
+0xCF4E-0xCF4F 0x87BB
+0xCF50-0xCF51 0x87BE
+0xCF52-0xCF56 0x87C1
+0xCF57-0xCF59 0x87C7
+0xCF5A-0xCF5E 0x87CC
+0xCF5F-0xCF65 0x87D4
+0xCF66-0xCF69 0x87DC
+0xCF6A-0xCF6D 0x87E1
+0xCF6E-0xCF71 0x87E6
+0xCF72-0xCF74 0x87EB
+0xCF75-0xCF7E 0x87EF
+0xCF80-0xCF83 0x87FA
+0xCF84-0xCF87 0x87FF
+0xCF88-0xCF8D 0x8804
+0xCF8E-0xCF95 0x880B
+0xCF96 0x8814
+0xCF97-0xCF9A 0x8817
+0xCF9B-0xCF9F 0x881C
+0xCFA0 0x8823
+0xCFA1 0x7A00
+0xCFA2 0x606F
+0xCFA3 0x5E0C
+0xCFA4 0x6089
+0xCFA5 0x819D
+0xCFA6 0x5915
+0xCFA7 0x60DC
+0xCFA8 0x7184
+0xCFA9 0x70EF
+0xCFAA 0x6EAA
+0xCFAB 0x6C50
+0xCFAC 0x7280
+0xCFAD 0x6A84
+0xCFAE 0x88AD
+0xCFAF 0x5E2D
+0xCFB0 0x4E60
+0xCFB1 0x5AB3
+0xCFB2 0x559C
+0xCFB3 0x94E3
+0xCFB4 0x6D17
+0xCFB5 0x7CFB
+0xCFB6 0x9699
+0xCFB7 0x620F
+0xCFB8 0x7EC6
+0xCFB9 0x778E
+0xCFBA 0x867E
+0xCFBB 0x5323
+0xCFBC 0x971E
+0xCFBD 0x8F96
+0xCFBE 0x6687
+0xCFBF 0x5CE1
+0xCFC0 0x4FA0
+0xCFC1 0x72ED
+0xCFC2 0x4E0B
+0xCFC3 0x53A6
+0xCFC4 0x590F
+0xCFC5 0x5413
+0xCFC6 0x6380
+0xCFC7 0x9528
+0xCFC8 0x5148
+0xCFC9 0x4ED9
+0xCFCA 0x9C9C
+0xCFCB 0x7EA4
+0xCFCC 0x54B8
+0xCFCD 0x8D24
+0xCFCE 0x8854
+0xCFCF 0x8237
+0xCFD0 0x95F2
+0xCFD1 0x6D8E
+0xCFD2 0x5F26
+0xCFD3 0x5ACC
+0xCFD4 0x663E
+0xCFD5 0x9669
+0xCFD6 0x73B0
+0xCFD7 0x732E
+0xCFD8 0x53BF
+0xCFD9 0x817A
+0xCFDA 0x9985
+0xCFDB 0x7FA1
+0xCFDC 0x5BAA
+0xCFDD 0x9677
+0xCFDE 0x9650
+0xCFDF 0x7EBF
+0xCFE0 0x76F8
+0xCFE1 0x53A2
+0xCFE2 0x9576
+0xCFE3 0x9999
+0xCFE4 0x7BB1
+0xCFE5 0x8944
+0xCFE6 0x6E58
+0xCFE7 0x4E61
+0xCFE8 0x7FD4
+0xCFE9 0x7965
+0xCFEA 0x8BE6
+0xCFEB 0x60F3
+0xCFEC 0x54CD
+0xCFED 0x4EAB
+0xCFEE 0x9879
+0xCFEF 0x5DF7
+0xCFF0 0x6A61
+0xCFF1 0x50CF
+0xCFF2 0x5411
+0xCFF3 0x8C61
+0xCFF4 0x8427
+0xCFF5 0x785D
+0xCFF6 0x9704
+0xCFF7 0x524A
+0xCFF8 0x54EE
+0xCFF9 0x56A3
+0xCFFA 0x9500
+0xCFFB 0x6D88
+0xCFFC 0x5BB5
+0xCFFD 0x6DC6
+0xCFFE 0x6653
+0xD040-0xD04D 0x8824
+0xD04E-0xD053 0x8833
+0xD054-0xD055 0x883A
+0xD056-0xD058 0x883D
+0xD059-0xD05B 0x8841
+0xD05C-0xD061 0x8846
+0xD062-0xD067 0x884E
+0xD068-0xD069 0x8855
+0xD06A 0x8858
+0xD06B-0xD071 0x885A
+0xD072-0xD073 0x8866
+0xD074 0x886A
+0xD075 0x886D
+0xD076 0x886F
+0xD077 0x8871
+0xD078-0xD07B 0x8873
+0xD07C-0xD07E 0x8878
+0xD080-0xD081 0x887B
+0xD082 0x8880
+0xD083 0x8883
+0xD084-0xD085 0x8886
+0xD086-0xD087 0x8889
+0xD088 0x888C
+0xD089-0xD08C 0x888E
+0xD08D-0xD08F 0x8893
+0xD090-0xD094 0x8897
+0xD095-0xD099 0x889D
+0xD09A 0x88A3
+0xD09B-0xD0A0 0x88A5
+0xD0A1 0x5C0F
+0xD0A2 0x5B5D
+0xD0A3 0x6821
+0xD0A4 0x8096
+0xD0A5 0x5578
+0xD0A6 0x7B11
+0xD0A7 0x6548
+0xD0A8 0x6954
+0xD0A9 0x4E9B
+0xD0AA 0x6B47
+0xD0AB 0x874E
+0xD0AC 0x978B
+0xD0AD 0x534F
+0xD0AE 0x631F
+0xD0AF 0x643A
+0xD0B0 0x90AA
+0xD0B1 0x659C
+0xD0B2 0x80C1
+0xD0B3 0x8C10
+0xD0B4 0x5199
+0xD0B5 0x68B0
+0xD0B6 0x5378
+0xD0B7 0x87F9
+0xD0B8 0x61C8
+0xD0B9 0x6CC4
+0xD0BA 0x6CFB
+0xD0BB 0x8C22
+0xD0BC 0x5C51
+0xD0BD 0x85AA
+0xD0BE 0x82AF
+0xD0BF 0x950C
+0xD0C0 0x6B23
+0xD0C1 0x8F9B
+0xD0C2 0x65B0
+0xD0C3 0x5FFB
+0xD0C4 0x5FC3
+0xD0C5 0x4FE1
+0xD0C6 0x8845
+0xD0C7 0x661F
+0xD0C8 0x8165
+0xD0C9 0x7329
+0xD0CA 0x60FA
+0xD0CB 0x5174
+0xD0CC 0x5211
+0xD0CD 0x578B
+0xD0CE 0x5F62
+0xD0CF 0x90A2
+0xD0D0 0x884C
+0xD0D1 0x9192
+0xD0D2 0x5E78
+0xD0D3 0x674F
+0xD0D4 0x6027
+0xD0D5 0x59D3
+0xD0D6 0x5144
+0xD0D7 0x51F6
+0xD0D8 0x80F8
+0xD0D9 0x5308
+0xD0DA 0x6C79
+0xD0DB 0x96C4
+0xD0DC 0x718A
+0xD0DD 0x4F11
+0xD0DE 0x4FEE
+0xD0DF 0x7F9E
+0xD0E0 0x673D
+0xD0E1 0x55C5
+0xD0E2 0x9508
+0xD0E3 0x79C0
+0xD0E4 0x8896
+0xD0E5 0x7EE3
+0xD0E6 0x589F
+0xD0E7 0x620C
+0xD0E8 0x9700
+0xD0E9 0x865A
+0xD0EA 0x5618
+0xD0EB 0x987B
+0xD0EC 0x5F90
+0xD0ED 0x8BB8
+0xD0EE 0x84C4
+0xD0EF 0x9157
+0xD0F0 0x53D9
+0xD0F1 0x65ED
+0xD0F2 0x5E8F
+0xD0F3 0x755C
+0xD0F4 0x6064
+0xD0F5 0x7D6E
+0xD0F6 0x5A7F
+0xD0F7 0x7EEA
+0xD0F8 0x7EED
+0xD0F9 0x8F69
+0xD0FA 0x55A7
+0xD0FB 0x5BA3
+0xD0FC 0x60AC
+0xD0FD 0x65CB
+0xD0FE 0x7384
+0xD140 0x88AC
+0xD141-0xD143 0x88AE
+0xD144-0xD148 0x88B2
+0xD149-0xD14C 0x88B8
+0xD14D-0xD150 0x88BD
+0xD151-0xD152 0x88C3
+0xD153-0xD154 0x88C7
+0xD155-0xD158 0x88CA
+0xD159-0xD15B 0x88CF
+0xD15C 0x88D3
+0xD15D-0xD15E 0x88D6
+0xD15F-0xD163 0x88DA
+0xD164-0xD165 0x88E0
+0xD166-0xD167 0x88E6
+0xD168-0xD16E 0x88E9
+0xD16F 0x88F2
+0xD170-0xD172 0x88F5
+0xD173-0xD174 0x88FA
+0xD175 0x88FD
+0xD176-0xD178 0x88FF
+0xD179-0xD17E 0x8903
+0xD180 0x8909
+0xD181-0xD185 0x890B
+0xD186 0x8911
+0xD187-0xD18B 0x8914
+0xD18C-0xD190 0x891C
+0xD191-0xD193 0x8922
+0xD194-0xD197 0x8926
+0xD198-0xD19B 0x892C
+0xD19C-0xD19E 0x8931
+0xD19F 0x8935
+0xD1A0 0x8937
+0xD1A1 0x9009
+0xD1A2 0x7663
+0xD1A3 0x7729
+0xD1A4 0x7EDA
+0xD1A5 0x9774
+0xD1A6 0x859B
+0xD1A7 0x5B66
+0xD1A8 0x7A74
+0xD1A9 0x96EA
+0xD1AA 0x8840
+0xD1AB 0x52CB
+0xD1AC 0x718F
+0xD1AD 0x5FAA
+0xD1AE 0x65EC
+0xD1AF 0x8BE2
+0xD1B0 0x5BFB
+0xD1B1 0x9A6F
+0xD1B2 0x5DE1
+0xD1B3 0x6B89
+0xD1B4 0x6C5B
+0xD1B5 0x8BAD
+0xD1B6 0x8BAF
+0xD1B7 0x900A
+0xD1B8 0x8FC5
+0xD1B9 0x538B
+0xD1BA 0x62BC
+0xD1BB 0x9E26
+0xD1BC 0x9E2D
+0xD1BD 0x5440
+0xD1BE 0x4E2B
+0xD1BF 0x82BD
+0xD1C0 0x7259
+0xD1C1 0x869C
+0xD1C2 0x5D16
+0xD1C3 0x8859
+0xD1C4 0x6DAF
+0xD1C5 0x96C5
+0xD1C6 0x54D1
+0xD1C7 0x4E9A
+0xD1C8 0x8BB6
+0xD1C9 0x7109
+0xD1CA 0x54BD
+0xD1CB 0x9609
+0xD1CC 0x70DF
+0xD1CD 0x6DF9
+0xD1CE 0x76D0
+0xD1CF 0x4E25
+0xD1D0 0x7814
+0xD1D1 0x8712
+0xD1D2 0x5CA9
+0xD1D3 0x5EF6
+0xD1D4 0x8A00
+0xD1D5 0x989C
+0xD1D6 0x960E
+0xD1D7 0x708E
+0xD1D8 0x6CBF
+0xD1D9 0x5944
+0xD1DA 0x63A9
+0xD1DB 0x773C
+0xD1DC 0x884D
+0xD1DD 0x6F14
+0xD1DE 0x8273
+0xD1DF 0x5830
+0xD1E0 0x71D5
+0xD1E1 0x538C
+0xD1E2 0x781A
+0xD1E3 0x96C1
+0xD1E4 0x5501
+0xD1E5 0x5F66
+0xD1E6 0x7130
+0xD1E7 0x5BB4
+0xD1E8 0x8C1A
+0xD1E9 0x9A8C
+0xD1EA 0x6B83
+0xD1EB 0x592E
+0xD1EC 0x9E2F
+0xD1ED 0x79E7
+0xD1EE 0x6768
+0xD1EF 0x626C
+0xD1F0 0x4F6F
+0xD1F1 0x75A1
+0xD1F2 0x7F8A
+0xD1F3 0x6D0B
+0xD1F4 0x9633
+0xD1F5 0x6C27
+0xD1F6 0x4EF0
+0xD1F7 0x75D2
+0xD1F8 0x517B
+0xD1F9 0x6837
+0xD1FA 0x6F3E
+0xD1FB 0x9080
+0xD1FC 0x8170
+0xD1FD 0x5996
+0xD1FE 0x7476
+0xD240-0xD248 0x8938
+0xD249-0xD24A 0x8942
+0xD24B-0xD263 0x8945
+0xD264-0xD269 0x8960
+0xD26A-0xD27D 0x8967
+0xD27E 0x897C
+0xD280-0xD281 0x897D
+0xD282 0x8980
+0xD283 0x8982
+0xD284-0xD285 0x8984
+0xD286-0xD2A0 0x8987
+0xD2A1 0x6447
+0xD2A2 0x5C27
+0xD2A3 0x9065
+0xD2A4 0x7A91
+0xD2A5 0x8C23
+0xD2A6 0x59DA
+0xD2A7 0x54AC
+0xD2A8 0x8200
+0xD2A9 0x836F
+0xD2AA 0x8981
+0xD2AB 0x8000
+0xD2AC 0x6930
+0xD2AD 0x564E
+0xD2AE 0x8036
+0xD2AF 0x7237
+0xD2B0 0x91CE
+0xD2B1 0x51B6
+0xD2B2 0x4E5F
+0xD2B3 0x9875
+0xD2B4 0x6396
+0xD2B5 0x4E1A
+0xD2B6 0x53F6
+0xD2B7 0x66F3
+0xD2B8 0x814B
+0xD2B9 0x591C
+0xD2BA 0x6DB2
+0xD2BB 0x4E00
+0xD2BC 0x58F9
+0xD2BD 0x533B
+0xD2BE 0x63D6
+0xD2BF 0x94F1
+0xD2C0 0x4F9D
+0xD2C1 0x4F0A
+0xD2C2 0x8863
+0xD2C3 0x9890
+0xD2C4 0x5937
+0xD2C5 0x9057
+0xD2C6 0x79FB
+0xD2C7 0x4EEA
+0xD2C8 0x80F0
+0xD2C9 0x7591
+0xD2CA 0x6C82
+0xD2CB 0x5B9C
+0xD2CC 0x59E8
+0xD2CD 0x5F5D
+0xD2CE 0x6905
+0xD2CF 0x8681
+0xD2D0 0x501A
+0xD2D1 0x5DF2
+0xD2D2 0x4E59
+0xD2D3 0x77E3
+0xD2D4 0x4EE5
+0xD2D5 0x827A
+0xD2D6 0x6291
+0xD2D7 0x6613
+0xD2D8 0x9091
+0xD2D9 0x5C79
+0xD2DA 0x4EBF
+0xD2DB 0x5F79
+0xD2DC 0x81C6
+0xD2DD 0x9038
+0xD2DE 0x8084
+0xD2DF 0x75AB
+0xD2E0 0x4EA6
+0xD2E1 0x88D4
+0xD2E2 0x610F
+0xD2E3 0x6BC5
+0xD2E4 0x5FC6
+0xD2E5 0x4E49
+0xD2E6 0x76CA
+0xD2E7 0x6EA2
+0xD2E8 0x8BE3
+0xD2E9 0x8BAE
+0xD2EA 0x8C0A
+0xD2EB 0x8BD1
+0xD2EC 0x5F02
+0xD2ED 0x7FFC
+0xD2EE 0x7FCC
+0xD2EF 0x7ECE
+0xD2F0 0x8335
+0xD2F1 0x836B
+0xD2F2 0x56E0
+0xD2F3 0x6BB7
+0xD2F4 0x97F3
+0xD2F5 0x9634
+0xD2F6 0x59FB
+0xD2F7 0x541F
+0xD2F8 0x94F6
+0xD2F9 0x6DEB
+0xD2FA 0x5BC5
+0xD2FB 0x996E
+0xD2FC 0x5C39
+0xD2FD 0x5F15
+0xD2FE 0x9690
+0xD340-0xD35E 0x89A2
+0xD35F 0x89C3
+0xD360 0x89CD
+0xD361-0xD363 0x89D3
+0xD364-0xD366 0x89D7
+0xD367 0x89DB
+0xD368 0x89DD
+0xD369-0xD36C 0x89DF
+0xD36D 0x89E4
+0xD36E-0xD371 0x89E7
+0xD372-0xD374 0x89EC
+0xD375-0xD377 0x89F0
+0xD378-0xD37E 0x89F4
+0xD380-0xD384 0x89FB
+0xD385-0xD38A 0x8A01
+0xD38B-0xD3A0 0x8A08
+0xD3A1 0x5370
+0xD3A2 0x82F1
+0xD3A3 0x6A31
+0xD3A4 0x5A74
+0xD3A5 0x9E70
+0xD3A6 0x5E94
+0xD3A7 0x7F28
+0xD3A8 0x83B9
+0xD3A9-0xD3AA 0x8424
+0xD3AB 0x8367
+0xD3AC 0x8747
+0xD3AD 0x8FCE
+0xD3AE 0x8D62
+0xD3AF 0x76C8
+0xD3B0 0x5F71
+0xD3B1 0x9896
+0xD3B2 0x786C
+0xD3B3 0x6620
+0xD3B4 0x54DF
+0xD3B5 0x62E5
+0xD3B6 0x4F63
+0xD3B7 0x81C3
+0xD3B8 0x75C8
+0xD3B9 0x5EB8
+0xD3BA 0x96CD
+0xD3BB 0x8E0A
+0xD3BC 0x86F9
+0xD3BD 0x548F
+0xD3BE 0x6CF3
+0xD3BF 0x6D8C
+0xD3C0 0x6C38
+0xD3C1 0x607F
+0xD3C2 0x52C7
+0xD3C3 0x7528
+0xD3C4 0x5E7D
+0xD3C5 0x4F18
+0xD3C6 0x60A0
+0xD3C7 0x5FE7
+0xD3C8 0x5C24
+0xD3C9 0x7531
+0xD3CA 0x90AE
+0xD3CB 0x94C0
+0xD3CC 0x72B9
+0xD3CD 0x6CB9
+0xD3CE 0x6E38
+0xD3CF 0x9149
+0xD3D0 0x6709
+0xD3D1 0x53CB
+0xD3D2 0x53F3
+0xD3D3 0x4F51
+0xD3D4 0x91C9
+0xD3D5 0x8BF1
+0xD3D6 0x53C8
+0xD3D7 0x5E7C
+0xD3D8 0x8FC2
+0xD3D9 0x6DE4
+0xD3DA 0x4E8E
+0xD3DB 0x76C2
+0xD3DC 0x6986
+0xD3DD 0x865E
+0xD3DE 0x611A
+0xD3DF 0x8206
+0xD3E0 0x4F59
+0xD3E1 0x4FDE
+0xD3E2 0x903E
+0xD3E3 0x9C7C
+0xD3E4 0x6109
+0xD3E5 0x6E1D
+0xD3E6 0x6E14
+0xD3E7 0x9685
+0xD3E8 0x4E88
+0xD3E9 0x5A31
+0xD3EA 0x96E8
+0xD3EB 0x4E0E
+0xD3EC 0x5C7F
+0xD3ED 0x79B9
+0xD3EE 0x5B87
+0xD3EF 0x8BED
+0xD3F0 0x7FBD
+0xD3F1 0x7389
+0xD3F2 0x57DF
+0xD3F3 0x828B
+0xD3F4 0x90C1
+0xD3F5 0x5401
+0xD3F6 0x9047
+0xD3F7 0x55BB
+0xD3F8 0x5CEA
+0xD3F9 0x5FA1
+0xD3FA 0x6108
+0xD3FB 0x6B32
+0xD3FC 0x72F1
+0xD3FD 0x80B2
+0xD3FE 0x8A89
+0xD440-0xD45F 0x8A1E
+0xD460-0xD468 0x8A3F
+0xD469-0xD47E 0x8A49
+0xD480-0xD499 0x8A5F
+0xD49A-0xD4A0 0x8A7A
+0xD4A1 0x6D74
+0xD4A2 0x5BD3
+0xD4A3 0x88D5
+0xD4A4 0x9884
+0xD4A5 0x8C6B
+0xD4A6 0x9A6D
+0xD4A7 0x9E33
+0xD4A8 0x6E0A
+0xD4A9 0x51A4
+0xD4AA 0x5143
+0xD4AB 0x57A3
+0xD4AC 0x8881
+0xD4AD 0x539F
+0xD4AE 0x63F4
+0xD4AF 0x8F95
+0xD4B0 0x56ED
+0xD4B1 0x5458
+0xD4B2 0x5706
+0xD4B3 0x733F
+0xD4B4 0x6E90
+0xD4B5 0x7F18
+0xD4B6 0x8FDC
+0xD4B7 0x82D1
+0xD4B8 0x613F
+0xD4B9 0x6028
+0xD4BA 0x9662
+0xD4BB 0x66F0
+0xD4BC 0x7EA6
+0xD4BD 0x8D8A
+0xD4BE 0x8DC3
+0xD4BF 0x94A5
+0xD4C0 0x5CB3
+0xD4C1 0x7CA4
+0xD4C2 0x6708
+0xD4C3 0x60A6
+0xD4C4 0x9605
+0xD4C5 0x8018
+0xD4C6 0x4E91
+0xD4C7 0x90E7
+0xD4C8 0x5300
+0xD4C9 0x9668
+0xD4CA 0x5141
+0xD4CB 0x8FD0
+0xD4CC 0x8574
+0xD4CD 0x915D
+0xD4CE 0x6655
+0xD4CF 0x97F5
+0xD4D0 0x5B55
+0xD4D1 0x531D
+0xD4D2 0x7838
+0xD4D3 0x6742
+0xD4D4 0x683D
+0xD4D5 0x54C9
+0xD4D6 0x707E
+0xD4D7 0x5BB0
+0xD4D8 0x8F7D
+0xD4D9 0x518D
+0xD4DA 0x5728
+0xD4DB 0x54B1
+0xD4DC 0x6512
+0xD4DD 0x6682
+0xD4DE 0x8D5E
+0xD4DF 0x8D43
+0xD4E0 0x810F
+0xD4E1 0x846C
+0xD4E2 0x906D
+0xD4E3 0x7CDF
+0xD4E4 0x51FF
+0xD4E5 0x85FB
+0xD4E6 0x67A3
+0xD4E7 0x65E9
+0xD4E8 0x6FA1
+0xD4E9 0x86A4
+0xD4EA 0x8E81
+0xD4EB 0x566A
+0xD4EC 0x9020
+0xD4ED 0x7682
+0xD4EE 0x7076
+0xD4EF 0x71E5
+0xD4F0 0x8D23
+0xD4F1 0x62E9
+0xD4F2 0x5219
+0xD4F3 0x6CFD
+0xD4F4 0x8D3C
+0xD4F5 0x600E
+0xD4F6 0x589E
+0xD4F7 0x618E
+0xD4F8 0x66FE
+0xD4F9 0x8D60
+0xD4FA 0x624E
+0xD4FB 0x55B3
+0xD4FC 0x6E23
+0xD4FD 0x672D
+0xD4FE 0x8F67
+0xD540-0xD547 0x8A81
+0xD548-0xD54F 0x8A8B
+0xD550-0xD57E 0x8A94
+0xD580-0xD5A0 0x8AC3
+0xD5A1 0x94E1
+0xD5A2 0x95F8
+0xD5A3 0x7728
+0xD5A4 0x6805
+0xD5A5 0x69A8
+0xD5A6 0x548B
+0xD5A7 0x4E4D
+0xD5A8 0x70B8
+0xD5A9 0x8BC8
+0xD5AA 0x6458
+0xD5AB 0x658B
+0xD5AC 0x5B85
+0xD5AD 0x7A84
+0xD5AE 0x503A
+0xD5AF 0x5BE8
+0xD5B0 0x77BB
+0xD5B1 0x6BE1
+0xD5B2 0x8A79
+0xD5B3 0x7C98
+0xD5B4 0x6CBE
+0xD5B5 0x76CF
+0xD5B6 0x65A9
+0xD5B7 0x8F97
+0xD5B8 0x5D2D
+0xD5B9 0x5C55
+0xD5BA 0x8638
+0xD5BB 0x6808
+0xD5BC 0x5360
+0xD5BD 0x6218
+0xD5BE 0x7AD9
+0xD5BF 0x6E5B
+0xD5C0 0x7EFD
+0xD5C1 0x6A1F
+0xD5C2 0x7AE0
+0xD5C3 0x5F70
+0xD5C4 0x6F33
+0xD5C5 0x5F20
+0xD5C6 0x638C
+0xD5C7 0x6DA8
+0xD5C8 0x6756
+0xD5C9 0x4E08
+0xD5CA 0x5E10
+0xD5CB 0x8D26
+0xD5CC 0x4ED7
+0xD5CD 0x80C0
+0xD5CE 0x7634
+0xD5CF 0x969C
+0xD5D0 0x62DB
+0xD5D1 0x662D
+0xD5D2 0x627E
+0xD5D3 0x6CBC
+0xD5D4 0x8D75
+0xD5D5 0x7167
+0xD5D6 0x7F69
+0xD5D7 0x5146
+0xD5D8 0x8087
+0xD5D9 0x53EC
+0xD5DA 0x906E
+0xD5DB 0x6298
+0xD5DC 0x54F2
+0xD5DD 0x86F0
+0xD5DE 0x8F99
+0xD5DF 0x8005
+0xD5E0 0x9517
+0xD5E1 0x8517
+0xD5E2 0x8FD9
+0xD5E3 0x6D59
+0xD5E4 0x73CD
+0xD5E5 0x659F
+0xD5E6 0x771F
+0xD5E7 0x7504
+0xD5E8 0x7827
+0xD5E9 0x81FB
+0xD5EA 0x8D1E
+0xD5EB 0x9488
+0xD5EC 0x4FA6
+0xD5ED 0x6795
+0xD5EE 0x75B9
+0xD5EF 0x8BCA
+0xD5F0 0x9707
+0xD5F1 0x632F
+0xD5F2 0x9547
+0xD5F3 0x9635
+0xD5F4 0x84B8
+0xD5F5 0x6323
+0xD5F6 0x7741
+0xD5F7 0x5F81
+0xD5F8 0x72F0
+0xD5F9 0x4E89
+0xD5FA 0x6014
+0xD5FB 0x6574
+0xD5FC 0x62EF
+0xD5FD 0x6B63
+0xD5FE 0x653F
+0xD640-0xD662 0x8AE4
+0xD663-0xD67E 0x8B08
+0xD680-0xD681 0x8B24
+0xD682-0xD6A0 0x8B27
+0xD6A1 0x5E27
+0xD6A2 0x75C7
+0xD6A3 0x90D1
+0xD6A4 0x8BC1
+0xD6A5 0x829D
+0xD6A6 0x679D
+0xD6A7 0x652F
+0xD6A8 0x5431
+0xD6A9 0x8718
+0xD6AA 0x77E5
+0xD6AB 0x80A2
+0xD6AC 0x8102
+0xD6AD 0x6C41
+0xD6AE 0x4E4B
+0xD6AF 0x7EC7
+0xD6B0 0x804C
+0xD6B1 0x76F4
+0xD6B2 0x690D
+0xD6B3 0x6B96
+0xD6B4 0x6267
+0xD6B5 0x503C
+0xD6B6 0x4F84
+0xD6B7 0x5740
+0xD6B8 0x6307
+0xD6B9 0x6B62
+0xD6BA 0x8DBE
+0xD6BB 0x53EA
+0xD6BC 0x65E8
+0xD6BD 0x7EB8
+0xD6BE 0x5FD7
+0xD6BF 0x631A
+0xD6C0 0x63B7
+0xD6C1-0xD6C2 0x81F3
+0xD6C3 0x7F6E
+0xD6C4 0x5E1C
+0xD6C5 0x5CD9
+0xD6C6 0x5236
+0xD6C7 0x667A
+0xD6C8 0x79E9
+0xD6C9 0x7A1A
+0xD6CA 0x8D28
+0xD6CB 0x7099
+0xD6CC 0x75D4
+0xD6CD 0x6EDE
+0xD6CE 0x6CBB
+0xD6CF 0x7A92
+0xD6D0 0x4E2D
+0xD6D1 0x76C5
+0xD6D2 0x5FE0
+0xD6D3 0x949F
+0xD6D4 0x8877
+0xD6D5 0x7EC8
+0xD6D6 0x79CD
+0xD6D7 0x80BF
+0xD6D8 0x91CD
+0xD6D9 0x4EF2
+0xD6DA 0x4F17
+0xD6DB 0x821F
+0xD6DC 0x5468
+0xD6DD 0x5DDE
+0xD6DE 0x6D32
+0xD6DF 0x8BCC
+0xD6E0 0x7CA5
+0xD6E1 0x8F74
+0xD6E2 0x8098
+0xD6E3 0x5E1A
+0xD6E4 0x5492
+0xD6E5 0x76B1
+0xD6E6 0x5B99
+0xD6E7 0x663C
+0xD6E8 0x9AA4
+0xD6E9 0x73E0
+0xD6EA 0x682A
+0xD6EB 0x86DB
+0xD6EC 0x6731
+0xD6ED 0x732A
+0xD6EE 0x8BF8
+0xD6EF 0x8BDB
+0xD6F0 0x9010
+0xD6F1 0x7AF9
+0xD6F2 0x70DB
+0xD6F3 0x716E
+0xD6F4 0x62C4
+0xD6F5 0x77A9
+0xD6F6 0x5631
+0xD6F7 0x4E3B
+0xD6F8 0x8457
+0xD6F9 0x67F1
+0xD6FA 0x52A9
+0xD6FB 0x86C0
+0xD6FC 0x8D2E
+0xD6FD 0x94F8
+0xD6FE 0x7B51
+0xD740-0xD75F 0x8B46
+0xD760-0xD764 0x8B67
+0xD765-0xD77E 0x8B6D
+0xD780-0xD798 0x8B87
+0xD799 0x8BAC
+0xD79A 0x8BB1
+0xD79B 0x8BBB
+0xD79C 0x8BC7
+0xD79D 0x8BD0
+0xD79E 0x8BEA
+0xD79F 0x8C09
+0xD7A0 0x8C1E
+0xD7A1 0x4F4F
+0xD7A2 0x6CE8
+0xD7A3 0x795D
+0xD7A4 0x9A7B
+0xD7A5 0x6293
+0xD7A6 0x722A
+0xD7A7 0x62FD
+0xD7A8 0x4E13
+0xD7A9 0x7816
+0xD7AA 0x8F6C
+0xD7AB 0x64B0
+0xD7AC 0x8D5A
+0xD7AD 0x7BC6
+0xD7AE 0x6869
+0xD7AF 0x5E84
+0xD7B0 0x88C5
+0xD7B1 0x5986
+0xD7B2 0x649E
+0xD7B3 0x58EE
+0xD7B4 0x72B6
+0xD7B5 0x690E
+0xD7B6 0x9525
+0xD7B7 0x8FFD
+0xD7B8 0x8D58
+0xD7B9 0x5760
+0xD7BA 0x7F00
+0xD7BB 0x8C06
+0xD7BC 0x51C6
+0xD7BD 0x6349
+0xD7BE 0x62D9
+0xD7BF 0x5353
+0xD7C0 0x684C
+0xD7C1 0x7422
+0xD7C2 0x8301
+0xD7C3 0x914C
+0xD7C4 0x5544
+0xD7C5 0x7740
+0xD7C6 0x707C
+0xD7C7 0x6D4A
+0xD7C8 0x5179
+0xD7C9 0x54A8
+0xD7CA 0x8D44
+0xD7CB 0x59FF
+0xD7CC 0x6ECB
+0xD7CD 0x6DC4
+0xD7CE 0x5B5C
+0xD7CF 0x7D2B
+0xD7D0 0x4ED4
+0xD7D1 0x7C7D
+0xD7D2 0x6ED3
+0xD7D3 0x5B50
+0xD7D4 0x81EA
+0xD7D5 0x6E0D
+0xD7D6 0x5B57
+0xD7D7 0x9B03
+0xD7D8 0x68D5
+0xD7D9 0x8E2A
+0xD7DA 0x5B97
+0xD7DB 0x7EFC
+0xD7DC 0x603B
+0xD7DD 0x7EB5
+0xD7DE 0x90B9
+0xD7DF 0x8D70
+0xD7E0 0x594F
+0xD7E1 0x63CD
+0xD7E2 0x79DF
+0xD7E3 0x8DB3
+0xD7E4 0x5352
+0xD7E5 0x65CF
+0xD7E6 0x7956
+0xD7E7 0x8BC5
+0xD7E8 0x963B
+0xD7E9 0x7EC4
+0xD7EA 0x94BB
+0xD7EB 0x7E82
+0xD7EC 0x5634
+0xD7ED 0x9189
+0xD7EE 0x6700
+0xD7EF 0x7F6A
+0xD7F0 0x5C0A
+0xD7F1 0x9075
+0xD7F2 0x6628
+0xD7F3 0x5DE6
+0xD7F4 0x4F50
+0xD7F5 0x67DE
+0xD7F6 0x505A
+0xD7F7 0x4F5C
+0xD7F8 0x5750
+0xD7F9 0x5EA7
+0xD7FA-0xD7FE 0xE810
+0xD840-0xD848 0x8C38
+0xD849-0xD84C 0x8C42
+0xD84D 0x8C48
+0xD84E-0xD84F 0x8C4A
+0xD850-0xD857 0x8C4D
+0xD858-0xD85B 0x8C56
+0xD85C-0xD861 0x8C5B
+0xD862-0xD868 0x8C63
+0xD869-0xD86F 0x8C6C
+0xD870-0xD873 0x8C74
+0xD874-0xD87A 0x8C7B
+0xD87B-0xD87C 0x8C83
+0xD87D-0xD87E 0x8C86
+0xD880 0x8C88
+0xD881 0x8C8B
+0xD882-0xD888 0x8C8D
+0xD889-0xD88B 0x8C95
+0xD88C-0xD8A0 0x8C99
+0xD8A1 0x4E8D
+0xD8A2 0x4E0C
+0xD8A3 0x5140
+0xD8A4 0x4E10
+0xD8A5 0x5EFF
+0xD8A6 0x5345
+0xD8A7 0x4E15
+0xD8A8 0x4E98
+0xD8A9 0x4E1E
+0xD8AA 0x9B32
+0xD8AB 0x5B6C
+0xD8AC 0x5669
+0xD8AD 0x4E28
+0xD8AE 0x79BA
+0xD8AF 0x4E3F
+0xD8B0 0x5315
+0xD8B1 0x4E47
+0xD8B2 0x592D
+0xD8B3 0x723B
+0xD8B4 0x536E
+0xD8B5 0x6C10
+0xD8B6 0x56DF
+0xD8B7 0x80E4
+0xD8B8 0x9997
+0xD8B9 0x6BD3
+0xD8BA 0x777E
+0xD8BB 0x9F17
+0xD8BC 0x4E36
+0xD8BD 0x4E9F
+0xD8BE 0x9F10
+0xD8BF 0x4E5C
+0xD8C0 0x4E69
+0xD8C1 0x4E93
+0xD8C2 0x8288
+0xD8C3 0x5B5B
+0xD8C4 0x556C
+0xD8C5 0x560F
+0xD8C6 0x4EC4
+0xD8C7 0x538D
+0xD8C8 0x539D
+0xD8C9 0x53A3
+0xD8CA 0x53A5
+0xD8CB 0x53AE
+0xD8CC 0x9765
+0xD8CD 0x8D5D
+0xD8CE 0x531A
+0xD8CF 0x53F5
+0xD8D0 0x5326
+0xD8D1 0x532E
+0xD8D2 0x533E
+0xD8D3 0x8D5C
+0xD8D4 0x5366
+0xD8D5 0x5363
+0xD8D6 0x5202
+0xD8D7 0x5208
+0xD8D8 0x520E
+0xD8D9 0x522D
+0xD8DA 0x5233
+0xD8DB-0xD8DC 0x523F
+0xD8DD 0x524C
+0xD8DE 0x525E
+0xD8DF 0x5261
+0xD8E0 0x525C
+0xD8E1 0x84AF
+0xD8E2 0x527D
+0xD8E3 0x5282
+0xD8E4 0x5281
+0xD8E5 0x5290
+0xD8E6 0x5293
+0xD8E7 0x5182
+0xD8E8 0x7F54
+0xD8E9 0x4EBB
+0xD8EA 0x4EC3
+0xD8EB 0x4EC9
+0xD8EC 0x4EC2
+0xD8ED 0x4EE8
+0xD8EE 0x4EE1
+0xD8EF 0x4EEB
+0xD8F0 0x4EDE
+0xD8F1 0x4F1B
+0xD8F2 0x4EF3
+0xD8F3 0x4F22
+0xD8F4 0x4F64
+0xD8F5 0x4EF5
+0xD8F6 0x4F25
+0xD8F7 0x4F27
+0xD8F8 0x4F09
+0xD8F9 0x4F2B
+0xD8FA 0x4F5E
+0xD8FB 0x4F67
+0xD8FC 0x6538
+0xD8FD 0x4F5A
+0xD8FE 0x4F5D
+0xD940-0xD97E 0x8CAE
+0xD980-0xD9A0 0x8CED
+0xD9A1 0x4F5F
+0xD9A2 0x4F57
+0xD9A3 0x4F32
+0xD9A4 0x4F3D
+0xD9A5 0x4F76
+0xD9A6 0x4F74
+0xD9A7 0x4F91
+0xD9A8 0x4F89
+0xD9A9 0x4F83
+0xD9AA 0x4F8F
+0xD9AB 0x4F7E
+0xD9AC 0x4F7B
+0xD9AD 0x4FAA
+0xD9AE 0x4F7C
+0xD9AF 0x4FAC
+0xD9B0 0x4F94
+0xD9B1 0x4FE6
+0xD9B2 0x4FE8
+0xD9B3 0x4FEA
+0xD9B4 0x4FC5
+0xD9B5 0x4FDA
+0xD9B6 0x4FE3
+0xD9B7 0x4FDC
+0xD9B8 0x4FD1
+0xD9B9 0x4FDF
+0xD9BA 0x4FF8
+0xD9BB 0x5029
+0xD9BC 0x504C
+0xD9BD 0x4FF3
+0xD9BE 0x502C
+0xD9BF 0x500F
+0xD9C0 0x502E
+0xD9C1 0x502D
+0xD9C2 0x4FFE
+0xD9C3 0x501C
+0xD9C4 0x500C
+0xD9C5 0x5025
+0xD9C6 0x5028
+0xD9C7 0x507E
+0xD9C8 0x5043
+0xD9C9 0x5055
+0xD9CA 0x5048
+0xD9CB 0x504E
+0xD9CC 0x506C
+0xD9CD 0x507B
+0xD9CE 0x50A5
+0xD9CF 0x50A7
+0xD9D0 0x50A9
+0xD9D1 0x50BA
+0xD9D2 0x50D6
+0xD9D3 0x5106
+0xD9D4 0x50ED
+0xD9D5 0x50EC
+0xD9D6 0x50E6
+0xD9D7 0x50EE
+0xD9D8 0x5107
+0xD9D9 0x510B
+0xD9DA 0x4EDD
+0xD9DB 0x6C3D
+0xD9DC 0x4F58
+0xD9DD 0x4F65
+0xD9DE 0x4FCE
+0xD9DF 0x9FA0
+0xD9E0 0x6C46
+0xD9E1 0x7C74
+0xD9E2 0x516E
+0xD9E3 0x5DFD
+0xD9E4 0x9EC9
+0xD9E5 0x9998
+0xD9E6 0x5181
+0xD9E7 0x5914
+0xD9E8 0x52F9
+0xD9E9 0x530D
+0xD9EA 0x8A07
+0xD9EB 0x5310
+0xD9EC 0x51EB
+0xD9ED 0x5919
+0xD9EE 0x5155
+0xD9EF 0x4EA0
+0xD9F0 0x5156
+0xD9F1 0x4EB3
+0xD9F2 0x886E
+0xD9F3 0x88A4
+0xD9F4 0x4EB5
+0xD9F5 0x8114
+0xD9F6 0x88D2
+0xD9F7 0x7980
+0xD9F8 0x5B34
+0xD9F9 0x8803
+0xD9FA 0x7FB8
+0xD9FB 0x51AB
+0xD9FC 0x51B1
+0xD9FD 0x51BD
+0xD9FE 0x51BC
+0xDA40-0xDA4E 0x8D0E
+0xDA4F 0x8D20
+0xDA50-0xDA51 0x8D51
+0xDA52 0x8D57
+0xDA53 0x8D5F
+0xDA54 0x8D65
+0xDA55-0xDA57 0x8D68
+0xDA58 0x8D6C
+0xDA59-0xDA5A 0x8D6E
+0xDA5B-0xDA5C 0x8D71
+0xDA5D-0xDA65 0x8D78
+0xDA66-0xDA67 0x8D82
+0xDA68-0xDA6B 0x8D86
+0xDA6C-0xDA70 0x8D8C
+0xDA71-0xDA72 0x8D92
+0xDA73-0xDA7C 0x8D95
+0xDA7D-0xDA7E 0x8DA0
+0xDA80 0x8DA2
+0xDA81-0xDA8D 0x8DA4
+0xDA8E 0x8DB2
+0xDA8F-0xDA90 0x8DB6
+0xDA91 0x8DB9
+0xDA92 0x8DBB
+0xDA93 0x8DBD
+0xDA94-0xDA96 0x8DC0
+0xDA97 0x8DC5
+0xDA98-0xDA9B 0x8DC7
+0xDA9C 0x8DCD
+0xDA9D 0x8DD0
+0xDA9E-0xDAA0 0x8DD2
+0xDAA1 0x51C7
+0xDAA2 0x5196
+0xDAA3 0x51A2
+0xDAA4 0x51A5
+0xDAA5 0x8BA0
+0xDAA6-0xDAA7 0x8BA6
+0xDAA8 0x8BAA
+0xDAA9-0xDAAA 0x8BB4
+0xDAAB 0x8BB7
+0xDAAC-0xDAAD 0x8BC2
+0xDAAE 0x8BCB
+0xDAAF 0x8BCF
+0xDAB0 0x8BCE
+0xDAB1-0xDAB3 0x8BD2
+0xDAB4 0x8BD6
+0xDAB5-0xDAB6 0x8BD8
+0xDAB7 0x8BDC
+0xDAB8-0xDAB9 0x8BDF
+0xDABA 0x8BE4
+0xDABB-0xDABC 0x8BE8
+0xDABD 0x8BEE
+0xDABE 0x8BF0
+0xDABF 0x8BF3
+0xDAC0 0x8BF6
+0xDAC1 0x8BF9
+0xDAC2 0x8BFC
+0xDAC3-0xDAC4 0x8BFF
+0xDAC5 0x8C02
+0xDAC6 0x8C04
+0xDAC7 0x8C07
+0xDAC8 0x8C0C
+0xDAC9 0x8C0F
+0xDACA-0xDACB 0x8C11
+0xDACC-0xDACE 0x8C14
+0xDACF 0x8C19
+0xDAD0 0x8C1B
+0xDAD1 0x8C18
+0xDAD2 0x8C1D
+0xDAD3-0xDAD5 0x8C1F
+0xDAD6 0x8C25
+0xDAD7 0x8C27
+0xDAD8-0xDAD9 0x8C2A
+0xDADA-0xDADB 0x8C2E
+0xDADC-0xDADD 0x8C32
+0xDADE-0xDADF 0x8C35
+0xDAE0 0x5369
+0xDAE1 0x537A
+0xDAE2 0x961D
+0xDAE3 0x9622
+0xDAE4 0x9621
+0xDAE5 0x9631
+0xDAE6 0x962A
+0xDAE7 0x963D
+0xDAE8 0x963C
+0xDAE9 0x9642
+0xDAEA 0x9649
+0xDAEB 0x9654
+0xDAEC 0x965F
+0xDAED 0x9667
+0xDAEE 0x966C
+0xDAEF 0x9672
+0xDAF0 0x9674
+0xDAF1 0x9688
+0xDAF2 0x968D
+0xDAF3 0x9697
+0xDAF4 0x96B0
+0xDAF5 0x9097
+0xDAF6 0x909B
+0xDAF7 0x909D
+0xDAF8 0x9099
+0xDAF9 0x90AC
+0xDAFA 0x90A1
+0xDAFB 0x90B4
+0xDAFC 0x90B3
+0xDAFD 0x90B6
+0xDAFE 0x90BA
+0xDB40 0x8DD5
+0xDB41-0xDB42 0x8DD8
+0xDB43 0x8DDC
+0xDB44-0xDB46 0x8DE0
+0xDB47-0xDB49 0x8DE5
+0xDB4A 0x8DE9
+0xDB4B-0xDB4C 0x8DED
+0xDB4D-0xDB4F 0x8DF0
+0xDB50 0x8DF4
+0xDB51 0x8DF6
+0xDB52 0x8DFC
+0xDB53-0xDB59 0x8DFE
+0xDB5A-0xDB5C 0x8E06
+0xDB5D 0x8E0B
+0xDB5E-0xDB5F 0x8E0D
+0xDB60-0xDB63 0x8E10
+0xDB64-0xDB6B 0x8E15
+0xDB6C-0xDB6D 0x8E20
+0xDB6E-0xDB72 0x8E24
+0xDB73 0x8E2B
+0xDB74 0x8E2D
+0xDB75 0x8E30
+0xDB76-0xDB78 0x8E32
+0xDB79-0xDB7B 0x8E36
+0xDB7C-0xDB7D 0x8E3B
+0xDB7E 0x8E3E
+0xDB80 0x8E3F
+0xDB81 0x8E43
+0xDB82-0xDB83 0x8E45
+0xDB84-0xDB88 0x8E4C
+0xDB89-0xDB8E 0x8E53
+0xDB8F-0xDB9A 0x8E5A
+0xDB9B-0xDB9C 0x8E67
+0xDB9D-0xDB9E 0x8E6A
+0xDB9F 0x8E6E
+0xDBA0 0x8E71
+0xDBA1 0x90B8
+0xDBA2 0x90B0
+0xDBA3 0x90CF
+0xDBA4 0x90C5
+0xDBA5 0x90BE
+0xDBA6 0x90D0
+0xDBA7 0x90C4
+0xDBA8 0x90C7
+0xDBA9 0x90D3
+0xDBAA 0x90E6
+0xDBAB 0x90E2
+0xDBAC 0x90DC
+0xDBAD 0x90D7
+0xDBAE 0x90DB
+0xDBAF 0x90EB
+0xDBB0 0x90EF
+0xDBB1 0x90FE
+0xDBB2 0x9104
+0xDBB3 0x9122
+0xDBB4 0x911E
+0xDBB5 0x9123
+0xDBB6 0x9131
+0xDBB7 0x912F
+0xDBB8 0x9139
+0xDBB9 0x9143
+0xDBBA 0x9146
+0xDBBB 0x520D
+0xDBBC 0x5942
+0xDBBD 0x52A2
+0xDBBE-0xDBBF 0x52AC
+0xDBC0 0x52BE
+0xDBC1 0x54FF
+0xDBC2 0x52D0
+0xDBC3 0x52D6
+0xDBC4 0x52F0
+0xDBC5 0x53DF
+0xDBC6 0x71EE
+0xDBC7 0x77CD
+0xDBC8 0x5EF4
+0xDBC9 0x51F5
+0xDBCA 0x51FC
+0xDBCB 0x9B2F
+0xDBCC 0x53B6
+0xDBCD 0x5F01
+0xDBCE 0x755A
+0xDBCF 0x5DEF
+0xDBD0 0x574C
+0xDBD1 0x57A9
+0xDBD2 0x57A1
+0xDBD3 0x587E
+0xDBD4 0x58BC
+0xDBD5 0x58C5
+0xDBD6 0x58D1
+0xDBD7 0x5729
+0xDBD8 0x572C
+0xDBD9 0x572A
+0xDBDA 0x5733
+0xDBDB 0x5739
+0xDBDC-0xDBDD 0x572E
+0xDBDE 0x575C
+0xDBDF 0x573B
+0xDBE0 0x5742
+0xDBE1 0x5769
+0xDBE2 0x5785
+0xDBE3 0x576B
+0xDBE4 0x5786
+0xDBE5 0x577C
+0xDBE6 0x577B
+0xDBE7 0x5768
+0xDBE8 0x576D
+0xDBE9 0x5776
+0xDBEA 0x5773
+0xDBEB 0x57AD
+0xDBEC 0x57A4
+0xDBED 0x578C
+0xDBEE 0x57B2
+0xDBEF 0x57CF
+0xDBF0 0x57A7
+0xDBF1 0x57B4
+0xDBF2 0x5793
+0xDBF3 0x57A0
+0xDBF4 0x57D5
+0xDBF5 0x57D8
+0xDBF6 0x57DA
+0xDBF7 0x57D9
+0xDBF8 0x57D2
+0xDBF9 0x57B8
+0xDBFA 0x57F4
+0xDBFB 0x57EF
+0xDBFC 0x57F8
+0xDBFD 0x57E4
+0xDBFE 0x57DD
+0xDC40 0x8E73
+0xDC41 0x8E75
+0xDC42-0xDC46 0x8E77
+0xDC47-0xDC48 0x8E7D
+0xDC49 0x8E80
+0xDC4A-0xDC4C 0x8E82
+0xDC4D 0x8E86
+0xDC4E-0xDC54 0x8E88
+0xDC55-0xDC57 0x8E91
+0xDC58-0xDC5E 0x8E95
+0xDC5F 0x8E9D
+0xDC60-0xDC6B 0x8E9F
+0xDC6C-0xDC6D 0x8EAD
+0xDC6E-0xDC6F 0x8EB0
+0xDC70-0xDC76 0x8EB3
+0xDC77-0xDC7E 0x8EBB
+0xDC80-0xDC8A 0x8EC3
+0xDC8B-0xDCA0 0x8ECF
+0xDCA1 0x580B
+0xDCA2 0x580D
+0xDCA3 0x57FD
+0xDCA4 0x57ED
+0xDCA5 0x5800
+0xDCA6 0x581E
+0xDCA7 0x5819
+0xDCA8 0x5844
+0xDCA9 0x5820
+0xDCAA 0x5865
+0xDCAB 0x586C
+0xDCAC 0x5881
+0xDCAD 0x5889
+0xDCAE 0x589A
+0xDCAF 0x5880
+0xDCB0 0x99A8
+0xDCB1 0x9F19
+0xDCB2 0x61FF
+0xDCB3 0x8279
+0xDCB4 0x827D
+0xDCB5 0x827F
+0xDCB6 0x828F
+0xDCB7 0x828A
+0xDCB8 0x82A8
+0xDCB9 0x8284
+0xDCBA 0x828E
+0xDCBB 0x8291
+0xDCBC 0x8297
+0xDCBD 0x8299
+0xDCBE 0x82AB
+0xDCBF 0x82B8
+0xDCC0 0x82BE
+0xDCC1 0x82B0
+0xDCC2 0x82C8
+0xDCC3 0x82CA
+0xDCC4 0x82E3
+0xDCC5 0x8298
+0xDCC6 0x82B7
+0xDCC7 0x82AE
+0xDCC8-0xDCC9 0x82CB
+0xDCCA 0x82C1
+0xDCCB 0x82A9
+0xDCCC 0x82B4
+0xDCCD 0x82A1
+0xDCCE 0x82AA
+0xDCCF 0x829F
+0xDCD0 0x82C4
+0xDCD1 0x82CE
+0xDCD2 0x82A4
+0xDCD3 0x82E1
+0xDCD4 0x8309
+0xDCD5 0x82F7
+0xDCD6 0x82E4
+0xDCD7 0x830F
+0xDCD8 0x8307
+0xDCD9 0x82DC
+0xDCDA 0x82F4
+0xDCDB 0x82D2
+0xDCDC 0x82D8
+0xDCDD 0x830C
+0xDCDE 0x82FB
+0xDCDF 0x82D3
+0xDCE0 0x8311
+0xDCE1 0x831A
+0xDCE2 0x8306
+0xDCE3-0xDCE4 0x8314
+0xDCE5 0x82E0
+0xDCE6 0x82D5
+0xDCE7 0x831C
+0xDCE8 0x8351
+0xDCE9-0xDCEA 0x835B
+0xDCEB 0x8308
+0xDCEC 0x8392
+0xDCED 0x833C
+0xDCEE 0x8334
+0xDCEF 0x8331
+0xDCF0 0x839B
+0xDCF1 0x835E
+0xDCF2 0x832F
+0xDCF3 0x834F
+0xDCF4 0x8347
+0xDCF5 0x8343
+0xDCF6 0x835F
+0xDCF7 0x8340
+0xDCF8 0x8317
+0xDCF9 0x8360
+0xDCFA 0x832D
+0xDCFB 0x833A
+0xDCFC 0x8333
+0xDCFD 0x8366
+0xDCFE 0x8365
+0xDD40-0xDD7E 0x8EE5
+0xDD80-0xDDA0 0x8F24
+0xDDA1 0x8368
+0xDDA2 0x831B
+0xDDA3 0x8369
+0xDDA4 0x836C
+0xDDA5 0x836A
+0xDDA6-0xDDA7 0x836D
+0xDDA8 0x83B0
+0xDDA9 0x8378
+0xDDAA-0xDDAB 0x83B3
+0xDDAC 0x83A0
+0xDDAD 0x83AA
+0xDDAE 0x8393
+0xDDAF 0x839C
+0xDDB0 0x8385
+0xDDB1 0x837C
+0xDDB2 0x83B6
+0xDDB3 0x83A9
+0xDDB4 0x837D
+0xDDB5 0x83B8
+0xDDB6 0x837B
+0xDDB7 0x8398
+0xDDB8 0x839E
+0xDDB9 0x83A8
+0xDDBA 0x83BA
+0xDDBB 0x83BC
+0xDDBC 0x83C1
+0xDDBD 0x8401
+0xDDBE 0x83E5
+0xDDBF 0x83D8
+0xDDC0 0x5807
+0xDDC1 0x8418
+0xDDC2 0x840B
+0xDDC3 0x83DD
+0xDDC4 0x83FD
+0xDDC5 0x83D6
+0xDDC6 0x841C
+0xDDC7 0x8438
+0xDDC8 0x8411
+0xDDC9 0x8406
+0xDDCA 0x83D4
+0xDDCB 0x83DF
+0xDDCC 0x840F
+0xDDCD 0x8403
+0xDDCE-0xDDCF 0x83F8
+0xDDD0 0x83EA
+0xDDD1 0x83C5
+0xDDD2 0x83C0
+0xDDD3 0x8426
+0xDDD4 0x83F0
+0xDDD5 0x83E1
+0xDDD6 0x845C
+0xDDD7 0x8451
+0xDDD8 0x845A
+0xDDD9 0x8459
+0xDDDA 0x8473
+0xDDDB-0xDDDC 0x8487
+0xDDDD 0x847A
+0xDDDE 0x8489
+0xDDDF 0x8478
+0xDDE0 0x843C
+0xDDE1 0x8446
+0xDDE2 0x8469
+0xDDE3 0x8476
+0xDDE4 0x848C
+0xDDE5 0x848E
+0xDDE6 0x8431
+0xDDE7 0x846D
+0xDDE8 0x84C1
+0xDDE9 0x84CD
+0xDDEA 0x84D0
+0xDDEB 0x84E6
+0xDDEC 0x84BD
+0xDDED 0x84D3
+0xDDEE 0x84CA
+0xDDEF 0x84BF
+0xDDF0 0x84BA
+0xDDF1 0x84E0
+0xDDF2 0x84A1
+0xDDF3 0x84B9
+0xDDF4 0x84B4
+0xDDF5 0x8497
+0xDDF6 0x84E5
+0xDDF7 0x84E3
+0xDDF8 0x850C
+0xDDF9 0x750D
+0xDDFA 0x8538
+0xDDFB 0x84F0
+0xDDFC 0x8539
+0xDDFD 0x851F
+0xDDFE 0x853A
+0xDE40-0xDE60 0x8F45
+0xDE61 0x8F6A
+0xDE62 0x8F80
+0xDE63 0x8F8C
+0xDE64 0x8F92
+0xDE65 0x8F9D
+0xDE66-0xDE68 0x8FA0
+0xDE69-0xDE6C 0x8FA4
+0xDE6D 0x8FAA
+0xDE6E-0xDE71 0x8FAC
+0xDE72-0xDE75 0x8FB2
+0xDE76-0xDE77 0x8FB7
+0xDE78-0xDE7A 0x8FBA
+0xDE7B-0xDE7C 0x8FBF
+0xDE7D 0x8FC3
+0xDE7E 0x8FC6
+0xDE80-0xDE84 0x8FC9
+0xDE85 0x8FCF
+0xDE86 0x8FD2
+0xDE87-0xDE88 0x8FD6
+0xDE89 0x8FDA
+0xDE8A-0xDE8B 0x8FE0
+0xDE8C 0x8FE3
+0xDE8D 0x8FE7
+0xDE8E 0x8FEC
+0xDE8F 0x8FEF
+0xDE90-0xDE91 0x8FF1
+0xDE92-0xDE94 0x8FF4
+0xDE95-0xDE97 0x8FFA
+0xDE98-0xDE99 0x8FFE
+0xDE9A-0xDE9B 0x9007
+0xDE9C 0x900C
+0xDE9D 0x900E
+0xDE9E 0x9013
+0xDE9F 0x9015
+0xDEA0 0x9018
+0xDEA1 0x8556
+0xDEA2 0x853B
+0xDEA3 0x84FF
+0xDEA4 0x84FC
+0xDEA5 0x8559
+0xDEA6 0x8548
+0xDEA7 0x8568
+0xDEA8 0x8564
+0xDEA9 0x855E
+0xDEAA 0x857A
+0xDEAB 0x77A2
+0xDEAC 0x8543
+0xDEAD 0x8572
+0xDEAE 0x857B
+0xDEAF 0x85A4
+0xDEB0 0x85A8
+0xDEB1 0x8587
+0xDEB2 0x858F
+0xDEB3 0x8579
+0xDEB4 0x85AE
+0xDEB5 0x859C
+0xDEB6 0x8585
+0xDEB7 0x85B9
+0xDEB8 0x85B7
+0xDEB9 0x85B0
+0xDEBA 0x85D3
+0xDEBB 0x85C1
+0xDEBC 0x85DC
+0xDEBD 0x85FF
+0xDEBE 0x8627
+0xDEBF 0x8605
+0xDEC0 0x8629
+0xDEC1 0x8616
+0xDEC2 0x863C
+0xDEC3 0x5EFE
+0xDEC4 0x5F08
+0xDEC5 0x593C
+0xDEC6 0x5941
+0xDEC7 0x8037
+0xDEC8 0x5955
+0xDEC9 0x595A
+0xDECA 0x5958
+0xDECB 0x530F
+0xDECC 0x5C22
+0xDECD 0x5C25
+0xDECE 0x5C2C
+0xDECF 0x5C34
+0xDED0 0x624C
+0xDED1 0x626A
+0xDED2 0x629F
+0xDED3 0x62BB
+0xDED4 0x62CA
+0xDED5 0x62DA
+0xDED6 0x62D7
+0xDED7 0x62EE
+0xDED8 0x6322
+0xDED9 0x62F6
+0xDEDA 0x6339
+0xDEDB 0x634B
+0xDEDC 0x6343
+0xDEDD 0x63AD
+0xDEDE 0x63F6
+0xDEDF 0x6371
+0xDEE0 0x637A
+0xDEE1 0x638E
+0xDEE2 0x63B4
+0xDEE3 0x636D
+0xDEE4 0x63AC
+0xDEE5 0x638A
+0xDEE6 0x6369
+0xDEE7 0x63AE
+0xDEE8 0x63BC
+0xDEE9 0x63F2
+0xDEEA 0x63F8
+0xDEEB 0x63E0
+0xDEEC 0x63FF
+0xDEED 0x63C4
+0xDEEE 0x63DE
+0xDEEF 0x63CE
+0xDEF0 0x6452
+0xDEF1 0x63C6
+0xDEF2 0x63BE
+0xDEF3 0x6445
+0xDEF4 0x6441
+0xDEF5 0x640B
+0xDEF6 0x641B
+0xDEF7 0x6420
+0xDEF8 0x640C
+0xDEF9 0x6426
+0xDEFA 0x6421
+0xDEFB 0x645E
+0xDEFC 0x6484
+0xDEFD 0x646D
+0xDEFE 0x6496
+0xDF40 0x9019
+0xDF41 0x901C
+0xDF42-0xDF44 0x9023
+0xDF45-0xDF4A 0x9027
+0xDF4B-0xDF4F 0x9030
+0xDF50 0x9037
+0xDF51-0xDF52 0x9039
+0xDF53 0x903D
+0xDF54-0xDF55 0x903F
+0xDF56 0x9043
+0xDF57-0xDF58 0x9045
+0xDF59-0xDF5D 0x9048
+0xDF5E 0x904E
+0xDF5F-0xDF61 0x9054
+0xDF62-0xDF63 0x9059
+0xDF64-0xDF69 0x905C
+0xDF6A 0x9064
+0xDF6B-0xDF6C 0x9066
+0xDF6D-0xDF70 0x9069
+0xDF71-0xDF75 0x906F
+0xDF76-0xDF7C 0x9076
+0xDF7D 0x907E
+0xDF7E 0x9081
+0xDF80-0xDF83 0x9084
+0xDF84-0xDF85 0x9089
+0xDF86-0xDF8A 0x908C
+0xDF8B 0x9092
+0xDF8C 0x9094
+0xDF8D 0x9096
+0xDF8E 0x9098
+0xDF8F 0x909A
+0xDF90 0x909C
+0xDF91-0xDF93 0x909E
+0xDF94-0xDF95 0x90A4
+0xDF96-0xDF98 0x90A7
+0xDF99 0x90AB
+0xDF9A 0x90AD
+0xDF9B 0x90B2
+0xDF9C 0x90B7
+0xDF9D-0xDF9E 0x90BC
+0xDF9F-0xDFA0 0x90BF
+0xDFA1 0x647A
+0xDFA2-0xDFA3 0x64B7
+0xDFA4 0x6499
+0xDFA5 0x64BA
+0xDFA6 0x64C0
+0xDFA7 0x64D0
+0xDFA8 0x64D7
+0xDFA9 0x64E4
+0xDFAA 0x64E2
+0xDFAB 0x6509
+0xDFAC 0x6525
+0xDFAD 0x652E
+0xDFAE 0x5F0B
+0xDFAF 0x5FD2
+0xDFB0 0x7519
+0xDFB1 0x5F11
+0xDFB2 0x535F
+0xDFB3 0x53F1
+0xDFB4 0x53FD
+0xDFB5 0x53E9
+0xDFB6 0x53E8
+0xDFB7 0x53FB
+0xDFB8 0x5412
+0xDFB9 0x5416
+0xDFBA 0x5406
+0xDFBB 0x544B
+0xDFBC-0xDFBE 0x5452
+0xDFBF 0x5456
+0xDFC0 0x5443
+0xDFC1 0x5421
+0xDFC2 0x5457
+0xDFC3 0x5459
+0xDFC4 0x5423
+0xDFC5 0x5432
+0xDFC6 0x5482
+0xDFC7 0x5494
+0xDFC8 0x5477
+0xDFC9 0x5471
+0xDFCA 0x5464
+0xDFCB-0xDFCC 0x549A
+0xDFCD 0x5484
+0xDFCE 0x5476
+0xDFCF 0x5466
+0xDFD0 0x549D
+0xDFD1 0x54D0
+0xDFD2 0x54AD
+0xDFD3 0x54C2
+0xDFD4 0x54B4
+0xDFD5 0x54D2
+0xDFD6 0x54A7
+0xDFD7 0x54A6
+0xDFD8-0xDFD9 0x54D3
+0xDFDA 0x5472
+0xDFDB 0x54A3
+0xDFDC 0x54D5
+0xDFDD 0x54BB
+0xDFDE 0x54BF
+0xDFDF 0x54CC
+0xDFE0-0xDFE1 0x54D9
+0xDFE2 0x54DC
+0xDFE3-0xDFE4 0x54A9
+0xDFE5 0x54A4
+0xDFE6 0x54DD
+0xDFE7 0x54CF
+0xDFE8 0x54DE
+0xDFE9 0x551B
+0xDFEA 0x54E7
+0xDFEB 0x5520
+0xDFEC 0x54FD
+0xDFED 0x5514
+0xDFEE 0x54F3
+0xDFEF-0xDFF0 0x5522
+0xDFF1 0x550F
+0xDFF2 0x5511
+0xDFF3 0x5527
+0xDFF4 0x552A
+0xDFF5 0x5567
+0xDFF6 0x558F
+0xDFF7 0x55B5
+0xDFF8 0x5549
+0xDFF9 0x556D
+0xDFFA 0x5541
+0xDFFB 0x5555
+0xDFFC 0x553F
+0xDFFD 0x5550
+0xDFFE 0x553C
+0xE040-0xE041 0x90C2
+0xE042 0x90C6
+0xE043-0xE044 0x90C8
+0xE045-0xE047 0x90CB
+0xE048 0x90D2
+0xE049-0xE04B 0x90D4
+0xE04C-0xE04E 0x90D8
+0xE04F-0xE051 0x90DE
+0xE052-0xE054 0x90E3
+0xE055-0xE056 0x90E9
+0xE057 0x90EC
+0xE058 0x90EE
+0xE059-0xE05C 0x90F0
+0xE05D-0xE05F 0x90F5
+0xE060-0xE063 0x90F9
+0xE064-0xE066 0x90FF
+0xE067 0x9103
+0xE068-0xE07B 0x9105
+0xE07C-0xE07E 0x911A
+0xE080 0x911D
+0xE081-0xE083 0x911F
+0xE084-0xE08E 0x9124
+0xE08F 0x9130
+0xE090-0xE096 0x9132
+0xE097-0xE09F 0x913A
+0xE0A0 0x9144
+0xE0A1 0x5537
+0xE0A2 0x5556
+0xE0A3-0xE0A5 0x5575
+0xE0A6 0x5533
+0xE0A7 0x5530
+0xE0A8 0x555C
+0xE0A9 0x558B
+0xE0AA 0x55D2
+0xE0AB 0x5583
+0xE0AC 0x55B1
+0xE0AD 0x55B9
+0xE0AE 0x5588
+0xE0AF 0x5581
+0xE0B0 0x559F
+0xE0B1 0x557E
+0xE0B2 0x55D6
+0xE0B3 0x5591
+0xE0B4 0x557B
+0xE0B5 0x55DF
+0xE0B6-0xE0B7 0x55BD
+0xE0B8 0x5594
+0xE0B9 0x5599
+0xE0BA 0x55EA
+0xE0BB 0x55F7
+0xE0BC 0x55C9
+0xE0BD 0x561F
+0xE0BE 0x55D1
+0xE0BF-0xE0C0 0x55EB
+0xE0C1 0x55D4
+0xE0C2 0x55E6
+0xE0C3 0x55DD
+0xE0C4 0x55C4
+0xE0C5 0x55EF
+0xE0C6 0x55E5
+0xE0C7-0xE0C8 0x55F2
+0xE0C9-0xE0CA 0x55CC
+0xE0CB 0x55E8
+0xE0CC 0x55F5
+0xE0CD 0x55E4
+0xE0CE 0x8F94
+0xE0CF 0x561E
+0xE0D0 0x5608
+0xE0D1 0x560C
+0xE0D2 0x5601
+0xE0D3 0x5624
+0xE0D4 0x5623
+0xE0D5 0x55FE
+0xE0D6 0x5600
+0xE0D7 0x5627
+0xE0D8 0x562D
+0xE0D9 0x5658
+0xE0DA 0x5639
+0xE0DB 0x5657
+0xE0DC 0x562C
+0xE0DD 0x564D
+0xE0DE 0x5662
+0xE0DF 0x5659
+0xE0E0 0x565C
+0xE0E1 0x564C
+0xE0E2 0x5654
+0xE0E3 0x5686
+0xE0E4 0x5664
+0xE0E5 0x5671
+0xE0E6 0x566B
+0xE0E7-0xE0E8 0x567B
+0xE0E9 0x5685
+0xE0EA 0x5693
+0xE0EB 0x56AF
+0xE0EC 0x56D4
+0xE0ED 0x56D7
+0xE0EE 0x56DD
+0xE0EF 0x56E1
+0xE0F0 0x56F5
+0xE0F1 0x56EB
+0xE0F2 0x56F9
+0xE0F3 0x56FF
+0xE0F4 0x5704
+0xE0F5 0x570A
+0xE0F6 0x5709
+0xE0F7 0x571C
+0xE0F8 0x5E0F
+0xE0F9 0x5E19
+0xE0FA 0x5E14
+0xE0FB 0x5E11
+0xE0FC 0x5E31
+0xE0FD-0xE0FE 0x5E3B
+0xE140 0x9145
+0xE141-0xE142 0x9147
+0xE143 0x9151
+0xE144-0xE147 0x9153
+0xE148-0xE149 0x9158
+0xE14A-0xE14B 0x915B
+0xE14C-0xE14D 0x915F
+0xE14E-0xE150 0x9166
+0xE151 0x916B
+0xE152 0x916D
+0xE153 0x9173
+0xE154-0xE156 0x917A
+0xE157-0xE15B 0x9180
+0xE15C 0x9186
+0xE15D 0x9188
+0xE15E 0x918A
+0xE15F-0xE160 0x918E
+0xE161-0xE167 0x9193
+0xE168-0xE16D 0x919C
+0xE16E-0xE173 0x91A4
+0xE174-0xE175 0x91AB
+0xE176-0xE179 0x91B0
+0xE17A-0xE17D 0x91B6
+0xE17E 0x91BB
+0xE180-0xE18A 0x91BC
+0xE18B 0x91C8
+0xE18C 0x91CB
+0xE18D 0x91D0
+0xE18E-0xE197 0x91D2
+0xE198-0xE1A0 0x91DD
+0xE1A1 0x5E37
+0xE1A2 0x5E44
+0xE1A3 0x5E54
+0xE1A4 0x5E5B
+0xE1A5 0x5E5E
+0xE1A6 0x5E61
+0xE1A7 0x5C8C
+0xE1A8 0x5C7A
+0xE1A9 0x5C8D
+0xE1AA 0x5C90
+0xE1AB 0x5C96
+0xE1AC 0x5C88
+0xE1AD-0xE1AE 0x5C98
+0xE1AF 0x5C91
+0xE1B0 0x5C9A
+0xE1B1 0x5C9C
+0xE1B2 0x5CB5
+0xE1B3 0x5CA2
+0xE1B4 0x5CBD
+0xE1B5 0x5CAC
+0xE1B6 0x5CAB
+0xE1B7 0x5CB1
+0xE1B8 0x5CA3
+0xE1B9 0x5CC1
+0xE1BA 0x5CB7
+0xE1BB 0x5CC4
+0xE1BC 0x5CD2
+0xE1BD 0x5CE4
+0xE1BE 0x5CCB
+0xE1BF 0x5CE5
+0xE1C0-0xE1C1 0x5D02
+0xE1C2 0x5D27
+0xE1C3 0x5D26
+0xE1C4 0x5D2E
+0xE1C5 0x5D24
+0xE1C6 0x5D1E
+0xE1C7 0x5D06
+0xE1C8 0x5D1B
+0xE1C9 0x5D58
+0xE1CA 0x5D3E
+0xE1CB 0x5D34
+0xE1CC 0x5D3D
+0xE1CD 0x5D6C
+0xE1CE 0x5D5B
+0xE1CF 0x5D6F
+0xE1D0 0x5D5D
+0xE1D1 0x5D6B
+0xE1D2 0x5D4B
+0xE1D3 0x5D4A
+0xE1D4 0x5D69
+0xE1D5 0x5D74
+0xE1D6 0x5D82
+0xE1D7 0x5D99
+0xE1D8 0x5D9D
+0xE1D9 0x8C73
+0xE1DA 0x5DB7
+0xE1DB 0x5DC5
+0xE1DC 0x5F73
+0xE1DD 0x5F77
+0xE1DE 0x5F82
+0xE1DF 0x5F87
+0xE1E0 0x5F89
+0xE1E1 0x5F8C
+0xE1E2 0x5F95
+0xE1E3 0x5F99
+0xE1E4 0x5F9C
+0xE1E5 0x5FA8
+0xE1E6 0x5FAD
+0xE1E7 0x5FB5
+0xE1E8 0x5FBC
+0xE1E9 0x8862
+0xE1EA 0x5F61
+0xE1EB 0x72AD
+0xE1EC 0x72B0
+0xE1ED 0x72B4
+0xE1EE-0xE1EF 0x72B7
+0xE1F0 0x72C3
+0xE1F1 0x72C1
+0xE1F2 0x72CE
+0xE1F3 0x72CD
+0xE1F4 0x72D2
+0xE1F5 0x72E8
+0xE1F6 0x72EF
+0xE1F7 0x72E9
+0xE1F8 0x72F2
+0xE1F9 0x72F4
+0xE1FA 0x72F7
+0xE1FB 0x7301
+0xE1FC 0x72F3
+0xE1FD 0x7303
+0xE1FE 0x72FA
+0xE240-0xE27E 0x91E6
+0xE280-0xE2A0 0x9225
+0xE2A1 0x72FB
+0xE2A2 0x7317
+0xE2A3 0x7313
+0xE2A4 0x7321
+0xE2A5 0x730A
+0xE2A6 0x731E
+0xE2A7 0x731D
+0xE2A8 0x7315
+0xE2A9 0x7322
+0xE2AA 0x7339
+0xE2AB 0x7325
+0xE2AC 0x732C
+0xE2AD 0x7338
+0xE2AE 0x7331
+0xE2AF 0x7350
+0xE2B0 0x734D
+0xE2B1 0x7357
+0xE2B2 0x7360
+0xE2B3 0x736C
+0xE2B4 0x736F
+0xE2B5 0x737E
+0xE2B6 0x821B
+0xE2B7 0x5925
+0xE2B8 0x98E7
+0xE2B9 0x5924
+0xE2BA 0x5902
+0xE2BB 0x9963
+0xE2BC-0xE2C1 0x9967
+0xE2C2 0x9974
+0xE2C3 0x9977
+0xE2C4 0x997D
+0xE2C5 0x9980
+0xE2C6 0x9984
+0xE2C7 0x9987
+0xE2C8 0x998A
+0xE2C9 0x998D
+0xE2CA-0xE2CB 0x9990
+0xE2CC-0xE2CE 0x9993
+0xE2CF 0x5E80
+0xE2D0 0x5E91
+0xE2D1 0x5E8B
+0xE2D2 0x5E96
+0xE2D3 0x5EA5
+0xE2D4 0x5EA0
+0xE2D5 0x5EB9
+0xE2D6 0x5EB5
+0xE2D7 0x5EBE
+0xE2D8 0x5EB3
+0xE2D9 0x8D53
+0xE2DA 0x5ED2
+0xE2DB 0x5ED1
+0xE2DC 0x5EDB
+0xE2DD 0x5EE8
+0xE2DE 0x5EEA
+0xE2DF 0x81BA
+0xE2E0 0x5FC4
+0xE2E1 0x5FC9
+0xE2E2 0x5FD6
+0xE2E3 0x5FCF
+0xE2E4 0x6003
+0xE2E5 0x5FEE
+0xE2E6 0x6004
+0xE2E7 0x5FE1
+0xE2E8 0x5FE4
+0xE2E9 0x5FFE
+0xE2EA-0xE2EB 0x6005
+0xE2EC 0x5FEA
+0xE2ED 0x5FED
+0xE2EE 0x5FF8
+0xE2EF 0x6019
+0xE2F0 0x6035
+0xE2F1 0x6026
+0xE2F2 0x601B
+0xE2F3 0x600F
+0xE2F4 0x600D
+0xE2F5 0x6029
+0xE2F6 0x602B
+0xE2F7 0x600A
+0xE2F8 0x603F
+0xE2F9 0x6021
+0xE2FA-0xE2FB 0x6078
+0xE2FC 0x607B
+0xE2FD 0x607A
+0xE2FE 0x6042
+0xE340-0xE36D 0x9246
+0xE36E-0xE37E 0x9275
+0xE380-0xE387 0x9286
+0xE388-0xE3A0 0x928F
+0xE3A1 0x606A
+0xE3A2 0x607D
+0xE3A3 0x6096
+0xE3A4 0x609A
+0xE3A5 0x60AD
+0xE3A6 0x609D
+0xE3A7 0x6083
+0xE3A8 0x6092
+0xE3A9 0x608C
+0xE3AA 0x609B
+0xE3AB 0x60EC
+0xE3AC 0x60BB
+0xE3AD 0x60B1
+0xE3AE 0x60DD
+0xE3AF 0x60D8
+0xE3B0 0x60C6
+0xE3B1 0x60DA
+0xE3B2 0x60B4
+0xE3B3 0x6120
+0xE3B4 0x6126
+0xE3B5 0x6115
+0xE3B6 0x6123
+0xE3B7 0x60F4
+0xE3B8 0x6100
+0xE3B9 0x610E
+0xE3BA 0x612B
+0xE3BB 0x614A
+0xE3BC 0x6175
+0xE3BD 0x61AC
+0xE3BE 0x6194
+0xE3BF 0x61A7
+0xE3C0 0x61B7
+0xE3C1 0x61D4
+0xE3C2 0x61F5
+0xE3C3 0x5FDD
+0xE3C4 0x96B3
+0xE3C5 0x95E9
+0xE3C6 0x95EB
+0xE3C7 0x95F1
+0xE3C8 0x95F3
+0xE3C9-0xE3CA 0x95F5
+0xE3CB 0x95FC
+0xE3CC 0x95FE
+0xE3CD-0xE3CE 0x9603
+0xE3CF 0x9606
+0xE3D0 0x9608
+0xE3D1-0xE3D4 0x960A
+0xE3D5 0x960F
+0xE3D6 0x9612
+0xE3D7-0xE3D9 0x9615
+0xE3DA-0xE3DB 0x9619
+0xE3DC 0x4E2C
+0xE3DD 0x723F
+0xE3DE 0x6215
+0xE3DF 0x6C35
+0xE3E0 0x6C54
+0xE3E1 0x6C5C
+0xE3E2 0x6C4A
+0xE3E3 0x6CA3
+0xE3E4 0x6C85
+0xE3E5 0x6C90
+0xE3E6 0x6C94
+0xE3E7 0x6C8C
+0xE3E8-0xE3E9 0x6C68
+0xE3EA 0x6C74
+0xE3EB 0x6C76
+0xE3EC 0x6C86
+0xE3ED 0x6CA9
+0xE3EE 0x6CD0
+0xE3EF 0x6CD4
+0xE3F0 0x6CAD
+0xE3F1-0xE3F2 0x6CF7
+0xE3F3 0x6CF1
+0xE3F4 0x6CD7
+0xE3F5 0x6CB2
+0xE3F6 0x6CE0
+0xE3F7 0x6CD6
+0xE3F8 0x6CFA
+0xE3F9 0x6CEB
+0xE3FA 0x6CEE
+0xE3FB 0x6CB1
+0xE3FC 0x6CD3
+0xE3FD 0x6CEF
+0xE3FE 0x6CFE
+0xE440-0xE445 0x92A8
+0xE446-0xE45E 0x92AF
+0xE45F-0xE47E 0x92C9
+0xE480-0xE4A0 0x92E9
+0xE4A1 0x6D39
+0xE4A2 0x6D27
+0xE4A3 0x6D0C
+0xE4A4 0x6D43
+0xE4A5 0x6D48
+0xE4A6 0x6D07
+0xE4A7 0x6D04
+0xE4A8 0x6D19
+0xE4A9 0x6D0E
+0xE4AA 0x6D2B
+0xE4AB 0x6D4D
+0xE4AC 0x6D2E
+0xE4AD 0x6D35
+0xE4AE 0x6D1A
+0xE4AF 0x6D4F
+0xE4B0 0x6D52
+0xE4B1 0x6D54
+0xE4B2 0x6D33
+0xE4B3 0x6D91
+0xE4B4 0x6D6F
+0xE4B5 0x6D9E
+0xE4B6 0x6DA0
+0xE4B7 0x6D5E
+0xE4B8-0xE4B9 0x6D93
+0xE4BA 0x6D5C
+0xE4BB 0x6D60
+0xE4BC 0x6D7C
+0xE4BD 0x6D63
+0xE4BE 0x6E1A
+0xE4BF 0x6DC7
+0xE4C0 0x6DC5
+0xE4C1 0x6DDE
+0xE4C2 0x6E0E
+0xE4C3 0x6DBF
+0xE4C4 0x6DE0
+0xE4C5 0x6E11
+0xE4C6 0x6DE6
+0xE4C7 0x6DDD
+0xE4C8 0x6DD9
+0xE4C9 0x6E16
+0xE4CA 0x6DAB
+0xE4CB 0x6E0C
+0xE4CC 0x6DAE
+0xE4CD 0x6E2B
+0xE4CE 0x6E6E
+0xE4CF 0x6E4E
+0xE4D0 0x6E6B
+0xE4D1 0x6EB2
+0xE4D2 0x6E5F
+0xE4D3 0x6E86
+0xE4D4-0xE4D5 0x6E53
+0xE4D6 0x6E32
+0xE4D7 0x6E25
+0xE4D8 0x6E44
+0xE4D9 0x6EDF
+0xE4DA 0x6EB1
+0xE4DB 0x6E98
+0xE4DC 0x6EE0
+0xE4DD 0x6F2D
+0xE4DE 0x6EE2
+0xE4DF 0x6EA5
+0xE4E0 0x6EA7
+0xE4E1 0x6EBD
+0xE4E2 0x6EBB
+0xE4E3 0x6EB7
+0xE4E4 0x6ED7
+0xE4E5 0x6EB4
+0xE4E6 0x6ECF
+0xE4E7 0x6E8F
+0xE4E8 0x6EC2
+0xE4E9 0x6E9F
+0xE4EA 0x6F62
+0xE4EB-0xE4EC 0x6F46
+0xE4ED 0x6F24
+0xE4EE 0x6F15
+0xE4EF 0x6EF9
+0xE4F0 0x6F2F
+0xE4F1 0x6F36
+0xE4F2 0x6F4B
+0xE4F3 0x6F74
+0xE4F4 0x6F2A
+0xE4F5 0x6F09
+0xE4F6 0x6F29
+0xE4F7 0x6F89
+0xE4F8 0x6F8D
+0xE4F9 0x6F8C
+0xE4FA 0x6F78
+0xE4FB 0x6F72
+0xE4FC 0x6F7C
+0xE4FD 0x6F7A
+0xE4FE 0x6FD1
+0xE540-0xE573 0x930A
+0xE574-0xE57E 0x933F
+0xE580-0xE59F 0x934A
+0xE5A0 0x936B
+0xE5A1 0x6FC9
+0xE5A2 0x6FA7
+0xE5A3 0x6FB9
+0xE5A4 0x6FB6
+0xE5A5 0x6FC2
+0xE5A6 0x6FE1
+0xE5A7 0x6FEE
+0xE5A8 0x6FDE
+0xE5A9 0x6FE0
+0xE5AA 0x6FEF
+0xE5AB 0x701A
+0xE5AC 0x7023
+0xE5AD 0x701B
+0xE5AE 0x7039
+0xE5AF 0x7035
+0xE5B0 0x704F
+0xE5B1 0x705E
+0xE5B2 0x5B80
+0xE5B3 0x5B84
+0xE5B4 0x5B95
+0xE5B5 0x5B93
+0xE5B6 0x5BA5
+0xE5B7 0x5BB8
+0xE5B8 0x752F
+0xE5B9 0x9A9E
+0xE5BA 0x6434
+0xE5BB 0x5BE4
+0xE5BC 0x5BEE
+0xE5BD 0x8930
+0xE5BE 0x5BF0
+0xE5BF 0x8E47
+0xE5C0 0x8B07
+0xE5C1 0x8FB6
+0xE5C2 0x8FD3
+0xE5C3 0x8FD5
+0xE5C4 0x8FE5
+0xE5C5 0x8FEE
+0xE5C6 0x8FE4
+0xE5C7 0x8FE9
+0xE5C8 0x8FE6
+0xE5C9 0x8FF3
+0xE5CA 0x8FE8
+0xE5CB 0x9005
+0xE5CC 0x9004
+0xE5CD 0x900B
+0xE5CE 0x9026
+0xE5CF 0x9011
+0xE5D0 0x900D
+0xE5D1 0x9016
+0xE5D2 0x9021
+0xE5D3-0xE5D4 0x9035
+0xE5D5 0x902D
+0xE5D6 0x902F
+0xE5D7 0x9044
+0xE5D8-0xE5D9 0x9051
+0xE5DA 0x9050
+0xE5DB 0x9068
+0xE5DC 0x9058
+0xE5DD 0x9062
+0xE5DE 0x905B
+0xE5DF 0x66B9
+0xE5E0 0x9074
+0xE5E1 0x907D
+0xE5E2 0x9082
+0xE5E3 0x9088
+0xE5E4 0x9083
+0xE5E5 0x908B
+0xE5E6 0x5F50
+0xE5E7 0x5F57
+0xE5E8 0x5F56
+0xE5E9 0x5F58
+0xE5EA 0x5C3B
+0xE5EB 0x54AB
+0xE5EC 0x5C50
+0xE5ED 0x5C59
+0xE5EE 0x5B71
+0xE5EF 0x5C63
+0xE5F0 0x5C66
+0xE5F1 0x7FBC
+0xE5F2 0x5F2A
+0xE5F3 0x5F29
+0xE5F4 0x5F2D
+0xE5F5 0x8274
+0xE5F6 0x5F3C
+0xE5F7 0x9B3B
+0xE5F8 0x5C6E
+0xE5F9 0x5981
+0xE5FA 0x5983
+0xE5FB 0x598D
+0xE5FC-0xE5FD 0x59A9
+0xE5FE 0x59A3
+0xE640-0xE662 0x936C
+0xE663-0xE67E 0x9390
+0xE680-0xE69D 0x93AC
+0xE69E-0xE6A0 0x93CB
+0xE6A1 0x5997
+0xE6A2 0x59CA
+0xE6A3 0x59AB
+0xE6A4 0x599E
+0xE6A5 0x59A4
+0xE6A6 0x59D2
+0xE6A7 0x59B2
+0xE6A8 0x59AF
+0xE6A9 0x59D7
+0xE6AA 0x59BE
+0xE6AB-0xE6AC 0x5A05
+0xE6AD 0x59DD
+0xE6AE 0x5A08
+0xE6AF 0x59E3
+0xE6B0 0x59D8
+0xE6B1 0x59F9
+0xE6B2 0x5A0C
+0xE6B3 0x5A09
+0xE6B4 0x5A32
+0xE6B5 0x5A34
+0xE6B6 0x5A11
+0xE6B7 0x5A23
+0xE6B8 0x5A13
+0xE6B9 0x5A40
+0xE6BA 0x5A67
+0xE6BB 0x5A4A
+0xE6BC 0x5A55
+0xE6BD 0x5A3C
+0xE6BE 0x5A62
+0xE6BF 0x5A75
+0xE6C0 0x80EC
+0xE6C1 0x5AAA
+0xE6C2 0x5A9B
+0xE6C3 0x5A77
+0xE6C4 0x5A7A
+0xE6C5 0x5ABE
+0xE6C6 0x5AEB
+0xE6C7 0x5AB2
+0xE6C8 0x5AD2
+0xE6C9 0x5AD4
+0xE6CA 0x5AB8
+0xE6CB 0x5AE0
+0xE6CC 0x5AE3
+0xE6CD 0x5AF1
+0xE6CE 0x5AD6
+0xE6CF 0x5AE6
+0xE6D0 0x5AD8
+0xE6D1 0x5ADC
+0xE6D2 0x5B09
+0xE6D3 0x5B17
+0xE6D4 0x5B16
+0xE6D5 0x5B32
+0xE6D6 0x5B37
+0xE6D7 0x5B40
+0xE6D8 0x5C15
+0xE6D9 0x5C1C
+0xE6DA 0x5B5A
+0xE6DB 0x5B65
+0xE6DC 0x5B73
+0xE6DD 0x5B51
+0xE6DE 0x5B53
+0xE6DF 0x5B62
+0xE6E0 0x9A75
+0xE6E1-0xE6E2 0x9A77
+0xE6E3 0x9A7A
+0xE6E4 0x9A7F
+0xE6E5 0x9A7D
+0xE6E6-0xE6E7 0x9A80
+0xE6E8 0x9A85
+0xE6E9 0x9A88
+0xE6EA 0x9A8A
+0xE6EB 0x9A90
+0xE6EC-0xE6ED 0x9A92
+0xE6EE 0x9A96
+0xE6EF 0x9A98
+0xE6F0-0xE6F2 0x9A9B
+0xE6F3-0xE6F4 0x9A9F
+0xE6F5-0xE6F6 0x9AA2
+0xE6F7 0x9AA5
+0xE6F8 0x9AA7
+0xE6F9 0x7E9F
+0xE6FA 0x7EA1
+0xE6FB 0x7EA3
+0xE6FC 0x7EA5
+0xE6FD-0xE6FE 0x7EA8
+0xE740-0xE747 0x93CE
+0xE748-0xE77E 0x93D7
+0xE780-0xE7A0 0x940E
+0xE7A1 0x7EAD
+0xE7A2 0x7EB0
+0xE7A3 0x7EBE
+0xE7A4-0xE7A6 0x7EC0
+0xE7A7 0x7EC9
+0xE7A8-0xE7A9 0x7ECB
+0xE7AA 0x7ED0
+0xE7AB 0x7ED4
+0xE7AC 0x7ED7
+0xE7AD 0x7EDB
+0xE7AE-0xE7AF 0x7EE0
+0xE7B0 0x7EE8
+0xE7B1 0x7EEB
+0xE7B2-0xE7B3 0x7EEE
+0xE7B4-0xE7B5 0x7EF1
+0xE7B6 0x7F0D
+0xE7B7 0x7EF6
+0xE7B8-0xE7B9 0x7EFA
+0xE7BA 0x7EFE
+0xE7BB-0xE7BD 0x7F01
+0xE7BE-0xE7BF 0x7F07
+0xE7C0-0xE7C1 0x7F0B
+0xE7C2 0x7F0F
+0xE7C3-0xE7C4 0x7F11
+0xE7C5 0x7F17
+0xE7C6 0x7F19
+0xE7C7 0x7F1C
+0xE7C8 0x7F1B
+0xE7C9 0x7F1F
+0xE7CA-0xE7D0 0x7F21
+0xE7D1-0xE7D4 0x7F2A
+0xE7D5-0xE7D9 0x7F2F
+0xE7DA 0x7F35
+0xE7DB 0x5E7A
+0xE7DC 0x757F
+0xE7DD 0x5DDB
+0xE7DE 0x753E
+0xE7DF 0x9095
+0xE7E0 0x738E
+0xE7E1 0x7391
+0xE7E2 0x73AE
+0xE7E3 0x73A2
+0xE7E4 0x739F
+0xE7E5 0x73CF
+0xE7E6 0x73C2
+0xE7E7 0x73D1
+0xE7E8 0x73B7
+0xE7E9 0x73B3
+0xE7EA 0x73C0
+0xE7EB 0x73C9
+0xE7EC 0x73C8
+0xE7ED 0x73E5
+0xE7EE 0x73D9
+0xE7EF 0x987C
+0xE7F0 0x740A
+0xE7F1 0x73E9
+0xE7F2 0x73E7
+0xE7F3 0x73DE
+0xE7F4 0x73BA
+0xE7F5 0x73F2
+0xE7F6 0x740F
+0xE7F7 0x742A
+0xE7F8 0x745B
+0xE7F9 0x7426
+0xE7FA 0x7425
+0xE7FB 0x7428
+0xE7FC 0x7430
+0xE7FD 0x742E
+0xE7FE 0x742C
+0xE840-0xE84E 0x942F
+0xE84F-0xE87A 0x943F
+0xE87B-0xE87E 0x946C
+0xE880-0xE894 0x9470
+0xE895 0x9491
+0xE896 0x9496
+0xE897 0x9498
+0xE898 0x94C7
+0xE899 0x94CF
+0xE89A-0xE89B 0x94D3
+0xE89C 0x94DA
+0xE89D 0x94E6
+0xE89E 0x94FB
+0xE89F 0x951C
+0xE8A0 0x9520
+0xE8A1 0x741B
+0xE8A2 0x741A
+0xE8A3 0x7441
+0xE8A4 0x745C
+0xE8A5 0x7457
+0xE8A6 0x7455
+0xE8A7 0x7459
+0xE8A8 0x7477
+0xE8A9 0x746D
+0xE8AA 0x747E
+0xE8AB 0x749C
+0xE8AC 0x748E
+0xE8AD-0xE8AE 0x7480
+0xE8AF 0x7487
+0xE8B0 0x748B
+0xE8B1 0x749E
+0xE8B2-0xE8B3 0x74A8
+0xE8B4 0x7490
+0xE8B5 0x74A7
+0xE8B6 0x74D2
+0xE8B7 0x74BA
+0xE8B8-0xE8BA 0x97EA
+0xE8BB 0x674C
+0xE8BC 0x6753
+0xE8BD 0x675E
+0xE8BE 0x6748
+0xE8BF 0x6769
+0xE8C0 0x67A5
+0xE8C1 0x6787
+0xE8C2 0x676A
+0xE8C3 0x6773
+0xE8C4 0x6798
+0xE8C5 0x67A7
+0xE8C6 0x6775
+0xE8C7 0x67A8
+0xE8C8 0x679E
+0xE8C9 0x67AD
+0xE8CA 0x678B
+0xE8CB 0x6777
+0xE8CC 0x677C
+0xE8CD 0x67F0
+0xE8CE 0x6809
+0xE8CF 0x67D8
+0xE8D0 0x680A
+0xE8D1 0x67E9
+0xE8D2 0x67B0
+0xE8D3 0x680C
+0xE8D4 0x67D9
+0xE8D5 0x67B5
+0xE8D6 0x67DA
+0xE8D7 0x67B3
+0xE8D8 0x67DD
+0xE8D9 0x6800
+0xE8DA 0x67C3
+0xE8DB 0x67B8
+0xE8DC 0x67E2
+0xE8DD 0x680E
+0xE8DE 0x67C1
+0xE8DF 0x67FD
+0xE8E0-0xE8E1 0x6832
+0xE8E2-0xE8E3 0x6860
+0xE8E4 0x684E
+0xE8E5 0x6862
+0xE8E6 0x6844
+0xE8E7 0x6864
+0xE8E8 0x6883
+0xE8E9 0x681D
+0xE8EA 0x6855
+0xE8EB 0x6866
+0xE8EC 0x6841
+0xE8ED 0x6867
+0xE8EE 0x6840
+0xE8EF 0x683E
+0xE8F0 0x684A
+0xE8F1 0x6849
+0xE8F2 0x6829
+0xE8F3 0x68B5
+0xE8F4 0x688F
+0xE8F5 0x6874
+0xE8F6 0x6877
+0xE8F7 0x6893
+0xE8F8 0x686B
+0xE8F9 0x68C2
+0xE8FA 0x696E
+0xE8FB 0x68FC
+0xE8FC-0xE8FD 0x691F
+0xE8FE 0x68F9
+0xE940 0x9527
+0xE941 0x9533
+0xE942 0x953D
+0xE943 0x9543
+0xE944 0x9548
+0xE945 0x954B
+0xE946 0x9555
+0xE947 0x955A
+0xE948 0x9560
+0xE949 0x956E
+0xE94A-0xE94B 0x9574
+0xE94C-0xE953 0x9577
+0xE954-0xE97E 0x9580
+0xE980-0xE9A0 0x95AB
+0xE9A1 0x6924
+0xE9A2 0x68F0
+0xE9A3 0x690B
+0xE9A4 0x6901
+0xE9A5 0x6957
+0xE9A6 0x68E3
+0xE9A7 0x6910
+0xE9A8 0x6971
+0xE9A9 0x6939
+0xE9AA 0x6960
+0xE9AB 0x6942
+0xE9AC 0x695D
+0xE9AD 0x6984
+0xE9AE 0x696B
+0xE9AF 0x6980
+0xE9B0 0x6998
+0xE9B1 0x6978
+0xE9B2 0x6934
+0xE9B3 0x69CC
+0xE9B4-0xE9B5 0x6987
+0xE9B6 0x69CE
+0xE9B7 0x6989
+0xE9B8 0x6966
+0xE9B9 0x6963
+0xE9BA 0x6979
+0xE9BB 0x699B
+0xE9BC 0x69A7
+0xE9BD 0x69BB
+0xE9BE 0x69AB
+0xE9BF 0x69AD
+0xE9C0 0x69D4
+0xE9C1 0x69B1
+0xE9C2 0x69C1
+0xE9C3 0x69CA
+0xE9C4 0x69DF
+0xE9C5 0x6995
+0xE9C6 0x69E0
+0xE9C7 0x698D
+0xE9C8 0x69FF
+0xE9C9 0x6A2F
+0xE9CA 0x69ED
+0xE9CB-0xE9CC 0x6A17
+0xE9CD 0x6A65
+0xE9CE 0x69F2
+0xE9CF 0x6A44
+0xE9D0 0x6A3E
+0xE9D1 0x6AA0
+0xE9D2 0x6A50
+0xE9D3 0x6A5B
+0xE9D4 0x6A35
+0xE9D5 0x6A8E
+0xE9D6 0x6A79
+0xE9D7 0x6A3D
+0xE9D8 0x6A28
+0xE9D9 0x6A58
+0xE9DA 0x6A7C
+0xE9DB 0x6A91
+0xE9DC 0x6A90
+0xE9DD 0x6AA9
+0xE9DE 0x6A97
+0xE9DF 0x6AAB
+0xE9E0 0x7337
+0xE9E1 0x7352
+0xE9E2-0xE9E3 0x6B81
+0xE9E4 0x6B87
+0xE9E5 0x6B84
+0xE9E6-0xE9E7 0x6B92
+0xE9E8 0x6B8D
+0xE9E9-0xE9EA 0x6B9A
+0xE9EB 0x6BA1
+0xE9EC 0x6BAA
+0xE9ED 0x8F6B
+0xE9EE 0x8F6D
+0xE9EF-0xE9F1 0x8F71
+0xE9F2-0xE9F3 0x8F75
+0xE9F4 0x8F78
+0xE9F5 0x8F77
+0xE9F6-0xE9F7 0x8F79
+0xE9F8 0x8F7C
+0xE9F9 0x8F7E
+0xE9FA-0xE9FB 0x8F81
+0xE9FC 0x8F84
+0xE9FD 0x8F87
+0xE9FE 0x8F8B
+0xEA40-0xEA5B 0x95CC
+0xEA5C 0x95EC
+0xEA5D 0x95FF
+0xEA5E 0x9607
+0xEA5F 0x9613
+0xEA60 0x9618
+0xEA61 0x961B
+0xEA62 0x961E
+0xEA63 0x9620
+0xEA64-0xEA6A 0x9623
+0xEA6B-0xEA6D 0x962B
+0xEA6E-0xEA6F 0x962F
+0xEA70-0xEA73 0x9637
+0xEA74 0x963E
+0xEA75 0x9641
+0xEA76 0x9643
+0xEA77 0x964A
+0xEA78-0xEA79 0x964E
+0xEA7A-0xEA7C 0x9651
+0xEA7D-0xEA7E 0x9656
+0xEA80-0xEA82 0x9658
+0xEA83-0xEA85 0x965C
+0xEA86 0x9660
+0xEA87 0x9663
+0xEA88-0xEA89 0x9665
+0xEA8A 0x966B
+0xEA8B-0xEA8F 0x966D
+0xEA90 0x9673
+0xEA91-0xEA9D 0x9678
+0xEA9E 0x9687
+0xEA9F-0xEAA0 0x9689
+0xEAA1-0xEAA3 0x8F8D
+0xEAA4 0x8F98
+0xEAA5 0x8F9A
+0xEAA6 0x8ECE
+0xEAA7 0x620B
+0xEAA8 0x6217
+0xEAA9 0x621B
+0xEAAA 0x621F
+0xEAAB 0x6222
+0xEAAC 0x6221
+0xEAAD 0x6225
+0xEAAE 0x6224
+0xEAAF 0x622C
+0xEAB0 0x81E7
+0xEAB1 0x74EF
+0xEAB2 0x74F4
+0xEAB3 0x74FF
+0xEAB4 0x750F
+0xEAB5 0x7511
+0xEAB6 0x7513
+0xEAB7 0x6534
+0xEAB8-0xEABA 0x65EE
+0xEABB 0x660A
+0xEABC 0x6619
+0xEABD 0x6772
+0xEABE 0x6603
+0xEABF 0x6615
+0xEAC0 0x6600
+0xEAC1 0x7085
+0xEAC2 0x66F7
+0xEAC3 0x661D
+0xEAC4 0x6634
+0xEAC5 0x6631
+0xEAC6 0x6636
+0xEAC7 0x6635
+0xEAC8 0x8006
+0xEAC9 0x665F
+0xEACA 0x6654
+0xEACB 0x6641
+0xEACC 0x664F
+0xEACD 0x6656
+0xEACE 0x6661
+0xEACF 0x6657
+0xEAD0 0x6677
+0xEAD1 0x6684
+0xEAD2 0x668C
+0xEAD3 0x66A7
+0xEAD4 0x669D
+0xEAD5 0x66BE
+0xEAD6-0xEAD7 0x66DB
+0xEAD8 0x66E6
+0xEAD9 0x66E9
+0xEADA-0xEADB 0x8D32
+0xEADC 0x8D36
+0xEADD 0x8D3B
+0xEADE 0x8D3D
+0xEADF 0x8D40
+0xEAE0-0xEAE1 0x8D45
+0xEAE2-0xEAE3 0x8D48
+0xEAE4 0x8D47
+0xEAE5 0x8D4D
+0xEAE6 0x8D55
+0xEAE7 0x8D59
+0xEAE8 0x89C7
+0xEAE9-0xEAEB 0x89CA
+0xEAEC-0xEAEF 0x89CE
+0xEAF0 0x726E
+0xEAF1 0x729F
+0xEAF2 0x725D
+0xEAF3 0x7266
+0xEAF4 0x726F
+0xEAF5-0xEAF6 0x727E
+0xEAF7 0x7284
+0xEAF8 0x728B
+0xEAF9 0x728D
+0xEAFA 0x728F
+0xEAFB 0x7292
+0xEAFC 0x6308
+0xEAFD 0x6332
+0xEAFE 0x63B0
+0xEB40 0x968C
+0xEB41 0x968E
+0xEB42-0xEB44 0x9691
+0xEB45-0xEB46 0x9695
+0xEB47-0xEB48 0x969A
+0xEB49-0xEB52 0x969D
+0xEB53-0xEB5A 0x96A8
+0xEB5B-0xEB5C 0x96B1
+0xEB5D-0xEB5E 0x96B4
+0xEB5F-0xEB60 0x96B7
+0xEB61-0xEB62 0x96BA
+0xEB63 0x96BF
+0xEB64-0xEB65 0x96C2
+0xEB66 0x96C8
+0xEB67-0xEB68 0x96CA
+0xEB69-0xEB6A 0x96D0
+0xEB6B-0xEB6C 0x96D3
+0xEB6D-0xEB76 0x96D6
+0xEB77-0xEB7D 0x96E1
+0xEB7E 0x96EB
+0xEB80-0xEB82 0x96EC
+0xEB83-0xEB85 0x96F0
+0xEB86-0xEB87 0x96F4
+0xEB88 0x96F8
+0xEB89-0xEB8C 0x96FA
+0xEB8D 0x96FF
+0xEB8E-0xEB8F 0x9702
+0xEB90 0x9705
+0xEB91-0xEB93 0x970A
+0xEB94-0xEB96 0x9710
+0xEB97-0xEB98 0x9714
+0xEB99-0xEB9D 0x9717
+0xEB9E 0x971D
+0xEB9F-0xEBA0 0x971F
+0xEBA1 0x643F
+0xEBA2 0x64D8
+0xEBA3 0x8004
+0xEBA4 0x6BEA
+0xEBA5 0x6BF3
+0xEBA6 0x6BFD
+0xEBA7 0x6BF5
+0xEBA8 0x6BF9
+0xEBA9 0x6C05
+0xEBAA 0x6C07
+0xEBAB 0x6C06
+0xEBAC 0x6C0D
+0xEBAD 0x6C15
+0xEBAE-0xEBB0 0x6C18
+0xEBB1 0x6C21
+0xEBB2 0x6C29
+0xEBB3 0x6C24
+0xEBB4 0x6C2A
+0xEBB5 0x6C32
+0xEBB6 0x6535
+0xEBB7 0x6555
+0xEBB8 0x656B
+0xEBB9 0x724D
+0xEBBA 0x7252
+0xEBBB 0x7256
+0xEBBC 0x7230
+0xEBBD 0x8662
+0xEBBE 0x5216
+0xEBBF 0x809F
+0xEBC0 0x809C
+0xEBC1 0x8093
+0xEBC2 0x80BC
+0xEBC3 0x670A
+0xEBC4 0x80BD
+0xEBC5 0x80B1
+0xEBC6 0x80AB
+0xEBC7 0x80AD
+0xEBC8 0x80B4
+0xEBC9 0x80B7
+0xEBCA-0xEBCD 0x80E7
+0xEBCE 0x80DB
+0xEBCF 0x80C2
+0xEBD0 0x80C4
+0xEBD1 0x80D9
+0xEBD2 0x80CD
+0xEBD3 0x80D7
+0xEBD4 0x6710
+0xEBD5 0x80DD
+0xEBD6 0x80EB
+0xEBD7 0x80F1
+0xEBD8 0x80F4
+0xEBD9 0x80ED
+0xEBDA-0xEBDB 0x810D
+0xEBDC 0x80F2
+0xEBDD 0x80FC
+0xEBDE 0x6715
+0xEBDF 0x8112
+0xEBE0 0x8C5A
+0xEBE1 0x8136
+0xEBE2 0x811E
+0xEBE3 0x812C
+0xEBE4 0x8118
+0xEBE5 0x8132
+0xEBE6 0x8148
+0xEBE7 0x814C
+0xEBE8 0x8153
+0xEBE9 0x8174
+0xEBEA-0xEBEB 0x8159
+0xEBEC 0x8171
+0xEBED 0x8160
+0xEBEE 0x8169
+0xEBEF-0xEBF0 0x817C
+0xEBF1 0x816D
+0xEBF2 0x8167
+0xEBF3 0x584D
+0xEBF4 0x5AB5
+0xEBF5 0x8188
+0xEBF6 0x8182
+0xEBF7 0x8191
+0xEBF8 0x6ED5
+0xEBF9 0x81A3
+0xEBFA 0x81AA
+0xEBFB 0x81CC
+0xEBFC 0x6726
+0xEBFD 0x81CA
+0xEBFE 0x81BB
+0xEC40-0xEC48 0x9721
+0xEC49-0xEC4A 0x972B
+0xEC4B-0xEC4C 0x972E
+0xEC4D 0x9731
+0xEC4E-0xEC52 0x9733
+0xEC53-0xEC56 0x973A
+0xEC57-0xEC69 0x973F
+0xEC6A-0xEC6B 0x9754
+0xEC6C-0xEC6D 0x9757
+0xEC6E 0x975A
+0xEC6F-0xEC70 0x975C
+0xEC71 0x975F
+0xEC72-0xEC73 0x9763
+0xEC74-0xEC76 0x9766
+0xEC77-0xEC7E 0x976A
+0xEC80 0x9772
+0xEC81 0x9775
+0xEC82-0xEC86 0x9777
+0xEC87-0xEC8E 0x977D
+0xEC8F-0xEC93 0x9786
+0xEC94 0x978C
+0xEC95-0xEC97 0x978E
+0xEC98 0x9793
+0xEC99-0xEC9B 0x9795
+0xEC9C-0xECA0 0x9799
+0xECA1 0x81C1
+0xECA2 0x81A6
+0xECA3 0x6B24
+0xECA4 0x6B37
+0xECA5 0x6B39
+0xECA6 0x6B43
+0xECA7 0x6B46
+0xECA8 0x6B59
+0xECA9-0xECAB 0x98D1
+0xECAC 0x98D5
+0xECAD-0xECAE 0x98D9
+0xECAF 0x6BB3
+0xECB0 0x5F40
+0xECB1 0x6BC2
+0xECB2 0x89F3
+0xECB3 0x6590
+0xECB4 0x9F51
+0xECB5 0x6593
+0xECB6 0x65BC
+0xECB7 0x65C6
+0xECB8 0x65C4
+0xECB9 0x65C3
+0xECBA 0x65CC
+0xECBB 0x65CE
+0xECBC 0x65D2
+0xECBD 0x65D6
+0xECBE 0x7080
+0xECBF 0x709C
+0xECC0 0x7096
+0xECC1 0x709D
+0xECC2 0x70BB
+0xECC3 0x70C0
+0xECC4 0x70B7
+0xECC5 0x70AB
+0xECC6 0x70B1
+0xECC7 0x70E8
+0xECC8 0x70CA
+0xECC9 0x7110
+0xECCA 0x7113
+0xECCB 0x7116
+0xECCC 0x712F
+0xECCD 0x7131
+0xECCE 0x7173
+0xECCF 0x715C
+0xECD0 0x7168
+0xECD1 0x7145
+0xECD2 0x7172
+0xECD3 0x714A
+0xECD4 0x7178
+0xECD5 0x717A
+0xECD6 0x7198
+0xECD7 0x71B3
+0xECD8 0x71B5
+0xECD9 0x71A8
+0xECDA 0x71A0
+0xECDB 0x71E0
+0xECDC 0x71D4
+0xECDD 0x71E7
+0xECDE 0x71F9
+0xECDF 0x721D
+0xECE0 0x7228
+0xECE1 0x706C
+0xECE2 0x7118
+0xECE3 0x7166
+0xECE4 0x71B9
+0xECE5 0x623E
+0xECE6 0x623D
+0xECE7 0x6243
+0xECE8-0xECE9 0x6248
+0xECEA 0x793B
+0xECEB 0x7940
+0xECEC 0x7946
+0xECED 0x7949
+0xECEE-0xECEF 0x795B
+0xECF0 0x7953
+0xECF1 0x795A
+0xECF2 0x7962
+0xECF3 0x7957
+0xECF4 0x7960
+0xECF5 0x796F
+0xECF6 0x7967
+0xECF7 0x797A
+0xECF8 0x7985
+0xECF9 0x798A
+0xECFA 0x799A
+0xECFB 0x79A7
+0xECFC 0x79B3
+0xECFD 0x5FD1
+0xECFE 0x5FD0
+0xED40-0xED41 0x979E
+0xED42-0xED43 0x97A1
+0xED44-0xED4A 0x97A4
+0xED4B 0x97AC
+0xED4C 0x97AE
+0xED4D-0xED4E 0x97B0
+0xED4F 0x97B3
+0xED50-0xED7E 0x97B5
+0xED80-0xED81 0x97E4
+0xED82 0x97E8
+0xED83-0xED87 0x97EE
+0xED88 0x97F4
+0xED89-0xEDA0 0x97F7
+0xEDA1 0x603C
+0xEDA2 0x605D
+0xEDA3 0x605A
+0xEDA4 0x6067
+0xEDA5 0x6041
+0xEDA6 0x6059
+0xEDA7 0x6063
+0xEDA8 0x60AB
+0xEDA9 0x6106
+0xEDAA 0x610D
+0xEDAB 0x615D
+0xEDAC 0x61A9
+0xEDAD 0x619D
+0xEDAE 0x61CB
+0xEDAF 0x61D1
+0xEDB0 0x6206
+0xEDB1 0x8080
+0xEDB2 0x807F
+0xEDB3 0x6C93
+0xEDB4 0x6CF6
+0xEDB5 0x6DFC
+0xEDB6 0x77F6
+0xEDB7 0x77F8
+0xEDB8 0x7800
+0xEDB9 0x7809
+0xEDBA-0xEDBB 0x7817
+0xEDBC 0x7811
+0xEDBD 0x65AB
+0xEDBE 0x782D
+0xEDBF-0xEDC0 0x781C
+0xEDC1-0xEDC3 0x7839
+0xEDC4 0x781F
+0xEDC5 0x783C
+0xEDC6 0x7825
+0xEDC7 0x782C
+0xEDC8 0x7823
+0xEDC9 0x7829
+0xEDCA 0x784E
+0xEDCB 0x786D
+0xEDCC-0xEDCD 0x7856
+0xEDCE 0x7826
+0xEDCF 0x7850
+0xEDD0 0x7847
+0xEDD1 0x784C
+0xEDD2 0x786A
+0xEDD3 0x789B
+0xEDD4 0x7893
+0xEDD5 0x789A
+0xEDD6 0x7887
+0xEDD7 0x789C
+0xEDD8 0x78A1
+0xEDD9 0x78A3
+0xEDDA 0x78B2
+0xEDDB 0x78B9
+0xEDDC 0x78A5
+0xEDDD 0x78D4
+0xEDDE 0x78D9
+0xEDDF 0x78C9
+0xEDE0 0x78EC
+0xEDE1 0x78F2
+0xEDE2 0x7905
+0xEDE3 0x78F4
+0xEDE4 0x7913
+0xEDE5 0x7924
+0xEDE6 0x791E
+0xEDE7 0x7934
+0xEDE8 0x9F9B
+0xEDE9 0x9EF9
+0xEDEA-0xEDEB 0x9EFB
+0xEDEC 0x76F1
+0xEDED 0x7704
+0xEDEE 0x770D
+0xEDEF 0x76F9
+0xEDF0-0xEDF1 0x7707
+0xEDF2 0x771A
+0xEDF3 0x7722
+0xEDF4 0x7719
+0xEDF5 0x772D
+0xEDF6 0x7726
+0xEDF7 0x7735
+0xEDF8 0x7738
+0xEDF9-0xEDFA 0x7750
+0xEDFB 0x7747
+0xEDFC 0x7743
+0xEDFD 0x775A
+0xEDFE 0x7768
+0xEE40-0xEE7E 0x980F
+0xEE80-0xEEA0 0x984E
+0xEEA1 0x7762
+0xEEA2 0x7765
+0xEEA3 0x777F
+0xEEA4 0x778D
+0xEEA5 0x777D
+0xEEA6 0x7780
+0xEEA7 0x778C
+0xEEA8 0x7791
+0xEEA9-0xEEAA 0x779F
+0xEEAB 0x77B0
+0xEEAC 0x77B5
+0xEEAD 0x77BD
+0xEEAE 0x753A
+0xEEAF 0x7540
+0xEEB0 0x754E
+0xEEB1 0x754B
+0xEEB2 0x7548
+0xEEB3 0x755B
+0xEEB4 0x7572
+0xEEB5 0x7579
+0xEEB6 0x7583
+0xEEB7 0x7F58
+0xEEB8 0x7F61
+0xEEB9 0x7F5F
+0xEEBA 0x8A48
+0xEEBB 0x7F68
+0xEEBC 0x7F74
+0xEEBD 0x7F71
+0xEEBE 0x7F79
+0xEEBF 0x7F81
+0xEEC0 0x7F7E
+0xEEC1 0x76CD
+0xEEC2 0x76E5
+0xEEC3 0x8832
+0xEEC4-0xEEC6 0x9485
+0xEEC7 0x948B
+0xEEC8 0x948A
+0xEEC9-0xEECA 0x948C
+0xEECB-0xEECC 0x948F
+0xEECD 0x9494
+0xEECE 0x9497
+0xEECF 0x9495
+0xEED0-0xEED2 0x949A
+0xEED3-0xEED4 0x94A3
+0xEED5 0x94AB
+0xEED6 0x94AA
+0xEED7 0x94AD
+0xEED8 0x94AC
+0xEED9-0xEEDA 0x94AF
+0xEEDB 0x94B2
+0xEEDC 0x94B4
+0xEEDD-0xEEE1 0x94B6
+0xEEE2-0xEEE3 0x94BC
+0xEEE4 0x94BF
+0xEEE5 0x94C4
+0xEEE6-0xEEEC 0x94C8
+0xEEED-0xEEEF 0x94D0
+0xEEF0-0xEEF2 0x94D5
+0xEEF3 0x94D9
+0xEEF4 0x94D8
+0xEEF5 0x94DB
+0xEEF6-0xEEF8 0x94DE
+0xEEF9 0x94E2
+0xEEFA-0xEEFB 0x94E4
+0xEEFC-0xEEFD 0x94E7
+0xEEFE 0x94EA
+0xEF40-0xEF45 0x986F
+0xEF46 0x988B
+0xEF47 0x988E
+0xEF48 0x9892
+0xEF49 0x9895
+0xEF4A 0x9899
+0xEF4B 0x98A3
+0xEF4C-0xEF71 0x98A8
+0xEF72-0xEF73 0x98CF
+0xEF74 0x98D4
+0xEF75-0xEF76 0x98D6
+0xEF77-0xEF79 0x98DB
+0xEF7A-0xEF7E 0x98E0
+0xEF80-0xEF81 0x98E5
+0xEF82-0xEFA0 0x98E9
+0xEFA1 0x94E9
+0xEFA2 0x94EB
+0xEFA3-0xEFA4 0x94EE
+0xEFA5-0xEFA7 0x94F3
+0xEFA8 0x94F7
+0xEFA9 0x94F9
+0xEFAA-0xEFAB 0x94FC
+0xEFAC 0x94FF
+0xEFAD 0x9503
+0xEFAE 0x9502
+0xEFAF-0xEFB0 0x9506
+0xEFB1-0xEFB2 0x9509
+0xEFB3-0xEFB5 0x950D
+0xEFB6-0xEFBA 0x9512
+0xEFBB 0x9518
+0xEFBC 0x951B
+0xEFBD-0xEFBF 0x951D
+0xEFC0 0x9522
+0xEFC1-0xEFC2 0x952A
+0xEFC3 0x9529
+0xEFC4 0x952C
+0xEFC5-0xEFC6 0x9531
+0xEFC7 0x9534
+0xEFC8-0xEFCA 0x9536
+0xEFCB 0x953C
+0xEFCC-0xEFCD 0x953E
+0xEFCE 0x9542
+0xEFCF 0x9535
+0xEFD0-0xEFD2 0x9544
+0xEFD3 0x9549
+0xEFD4 0x954C
+0xEFD5-0xEFD6 0x954E
+0xEFD7-0xEFD9 0x9552
+0xEFDA-0xEFDD 0x9556
+0xEFDE 0x955B
+0xEFDF-0xEFE0 0x955E
+0xEFE1 0x955D
+0xEFE2-0xEFE3 0x9561
+0xEFE4-0xEFEC 0x9564
+0xEFED 0x956F
+0xEFEE-0xEFF0 0x9571
+0xEFF1 0x953A
+0xEFF2 0x77E7
+0xEFF3 0x77EC
+0xEFF4 0x96C9
+0xEFF5 0x79D5
+0xEFF6 0x79ED
+0xEFF7 0x79E3
+0xEFF8 0x79EB
+0xEFF9 0x7A06
+0xEFFA 0x5D47
+0xEFFB 0x7A03
+0xEFFC 0x7A02
+0xEFFD 0x7A1E
+0xEFFE 0x7A14
+0xF040-0xF044 0x9908
+0xF045-0xF046 0x990E
+0xF047-0xF063 0x9911
+0xF064-0xF07E 0x992F
+0xF080-0xF089 0x994A
+0xF08A-0xF096 0x9956
+0xF097 0x9964
+0xF098 0x9966
+0xF099 0x9973
+0xF09A-0xF09B 0x9978
+0xF09C 0x997B
+0xF09D 0x997E
+0xF09E-0xF09F 0x9982
+0xF0A0 0x9989
+0xF0A1 0x7A39
+0xF0A2 0x7A37
+0xF0A3 0x7A51
+0xF0A4 0x9ECF
+0xF0A5 0x99A5
+0xF0A6 0x7A70
+0xF0A7 0x7688
+0xF0A8 0x768E
+0xF0A9 0x7693
+0xF0AA 0x7699
+0xF0AB 0x76A4
+0xF0AC 0x74DE
+0xF0AD 0x74E0
+0xF0AE 0x752C
+0xF0AF 0x9E20
+0xF0B0 0x9E22
+0xF0B1-0xF0B5 0x9E28
+0xF0B6 0x9E32
+0xF0B7 0x9E31
+0xF0B8 0x9E36
+0xF0B9 0x9E38
+0xF0BA 0x9E37
+0xF0BB-0xF0BC 0x9E39
+0xF0BD 0x9E3E
+0xF0BE-0xF0BF 0x9E41
+0xF0C0 0x9E44
+0xF0C1-0xF0C4 0x9E46
+0xF0C5-0xF0C6 0x9E4B
+0xF0C7 0x9E4E
+0xF0C8 0x9E51
+0xF0C9 0x9E55
+0xF0CA 0x9E57
+0xF0CB-0xF0CD 0x9E5A
+0xF0CE 0x9E5E
+0xF0CF 0x9E63
+0xF0D0-0xF0D6 0x9E66
+0xF0D7 0x9E71
+0xF0D8 0x9E6D
+0xF0D9 0x9E73
+0xF0DA 0x7592
+0xF0DB 0x7594
+0xF0DC 0x7596
+0xF0DD 0x75A0
+0xF0DE 0x759D
+0xF0DF 0x75AC
+0xF0E0 0x75A3
+0xF0E1-0xF0E2 0x75B3
+0xF0E3 0x75B8
+0xF0E4 0x75C4
+0xF0E5 0x75B1
+0xF0E6 0x75B0
+0xF0E7 0x75C3
+0xF0E8 0x75C2
+0xF0E9 0x75D6
+0xF0EA 0x75CD
+0xF0EB 0x75E3
+0xF0EC 0x75E8
+0xF0ED 0x75E6
+0xF0EE 0x75E4
+0xF0EF 0x75EB
+0xF0F0 0x75E7
+0xF0F1 0x7603
+0xF0F2 0x75F1
+0xF0F3 0x75FC
+0xF0F4 0x75FF
+0xF0F5 0x7610
+0xF0F6 0x7600
+0xF0F7 0x7605
+0xF0F8 0x760C
+0xF0F9 0x7617
+0xF0FA 0x760A
+0xF0FB 0x7625
+0xF0FC 0x7618
+0xF0FD 0x7615
+0xF0FE 0x7619
+0xF140 0x998C
+0xF141 0x998E
+0xF142-0xF14C 0x999A
+0xF14D-0xF14E 0x99A6
+0xF14F-0xF17E 0x99A9
+0xF180-0xF1A0 0x99D9
+0xF1A1 0x761B
+0xF1A2 0x763C
+0xF1A3 0x7622
+0xF1A4 0x7620
+0xF1A5 0x7640
+0xF1A6 0x762D
+0xF1A7 0x7630
+0xF1A8 0x763F
+0xF1A9 0x7635
+0xF1AA 0x7643
+0xF1AB 0x763E
+0xF1AC 0x7633
+0xF1AD 0x764D
+0xF1AE 0x765E
+0xF1AF 0x7654
+0xF1B0 0x765C
+0xF1B1 0x7656
+0xF1B2 0x766B
+0xF1B3 0x766F
+0xF1B4 0x7FCA
+0xF1B5 0x7AE6
+0xF1B6-0xF1B7 0x7A78
+0xF1B8 0x7A80
+0xF1B9 0x7A86
+0xF1BA 0x7A88
+0xF1BB 0x7A95
+0xF1BC 0x7AA6
+0xF1BD 0x7AA0
+0xF1BE 0x7AAC
+0xF1BF 0x7AA8
+0xF1C0 0x7AAD
+0xF1C1 0x7AB3
+0xF1C2 0x8864
+0xF1C3 0x8869
+0xF1C4 0x8872
+0xF1C5 0x887D
+0xF1C6 0x887F
+0xF1C7 0x8882
+0xF1C8 0x88A2
+0xF1C9 0x88C6
+0xF1CA 0x88B7
+0xF1CB 0x88BC
+0xF1CC 0x88C9
+0xF1CD 0x88E2
+0xF1CE 0x88CE
+0xF1CF 0x88E3
+0xF1D0 0x88E5
+0xF1D1 0x88F1
+0xF1D2 0x891A
+0xF1D3 0x88FC
+0xF1D4 0x88E8
+0xF1D5 0x88FE
+0xF1D6 0x88F0
+0xF1D7 0x8921
+0xF1D8 0x8919
+0xF1D9 0x8913
+0xF1DA 0x891B
+0xF1DB 0x890A
+0xF1DC 0x8934
+0xF1DD 0x892B
+0xF1DE 0x8936
+0xF1DF 0x8941
+0xF1E0 0x8966
+0xF1E1 0x897B
+0xF1E2 0x758B
+0xF1E3 0x80E5
+0xF1E4 0x76B2
+0xF1E5 0x76B4
+0xF1E6 0x77DC
+0xF1E7 0x8012
+0xF1E8 0x8014
+0xF1E9 0x8016
+0xF1EA 0x801C
+0xF1EB 0x8020
+0xF1EC 0x8022
+0xF1ED-0xF1EF 0x8025
+0xF1F0 0x8029
+0xF1F1 0x8028
+0xF1F2 0x8031
+0xF1F3 0x800B
+0xF1F4 0x8035
+0xF1F5 0x8043
+0xF1F6 0x8046
+0xF1F7 0x804D
+0xF1F8 0x8052
+0xF1F9 0x8069
+0xF1FA 0x8071
+0xF1FB 0x8983
+0xF1FC 0x9878
+0xF1FD 0x9880
+0xF1FE 0x9883
+0xF240-0xF27E 0x99FA
+0xF280-0xF2A0 0x9A39
+0xF2A1 0x9889
+0xF2A2-0xF2A3 0x988C
+0xF2A4 0x988F
+0xF2A5 0x9894
+0xF2A6-0xF2A7 0x989A
+0xF2A8-0xF2A9 0x989E
+0xF2AA-0xF2AB 0x98A1
+0xF2AC-0xF2AD 0x98A5
+0xF2AE 0x864D
+0xF2AF 0x8654
+0xF2B0 0x866C
+0xF2B1 0x866E
+0xF2B2 0x867F
+0xF2B3 0x867A
+0xF2B4 0x867C
+0xF2B5 0x867B
+0xF2B6 0x86A8
+0xF2B7 0x868D
+0xF2B8 0x868B
+0xF2B9 0x86AC
+0xF2BA 0x869D
+0xF2BB 0x86A7
+0xF2BC 0x86A3
+0xF2BD 0x86AA
+0xF2BE 0x8693
+0xF2BF 0x86A9
+0xF2C0 0x86B6
+0xF2C1 0x86C4
+0xF2C2 0x86B5
+0xF2C3 0x86CE
+0xF2C4 0x86B0
+0xF2C5 0x86BA
+0xF2C6 0x86B1
+0xF2C7 0x86AF
+0xF2C8 0x86C9
+0xF2C9 0x86CF
+0xF2CA 0x86B4
+0xF2CB 0x86E9
+0xF2CC-0xF2CD 0x86F1
+0xF2CE 0x86ED
+0xF2CF 0x86F3
+0xF2D0 0x86D0
+0xF2D1 0x8713
+0xF2D2 0x86DE
+0xF2D3 0x86F4
+0xF2D4 0x86DF
+0xF2D5 0x86D8
+0xF2D6 0x86D1
+0xF2D7 0x8703
+0xF2D8 0x8707
+0xF2D9 0x86F8
+0xF2DA 0x8708
+0xF2DB 0x870A
+0xF2DC 0x870D
+0xF2DD 0x8709
+0xF2DE 0x8723
+0xF2DF 0x873B
+0xF2E0 0x871E
+0xF2E1 0x8725
+0xF2E2 0x872E
+0xF2E3 0x871A
+0xF2E4 0x873E
+0xF2E5 0x8748
+0xF2E6 0x8734
+0xF2E7 0x8731
+0xF2E8 0x8729
+0xF2E9 0x8737
+0xF2EA 0x873F
+0xF2EB 0x8782
+0xF2EC 0x8722
+0xF2ED-0xF2EE 0x877D
+0xF2EF 0x877B
+0xF2F0 0x8760
+0xF2F1 0x8770
+0xF2F2 0x874C
+0xF2F3 0x876E
+0xF2F4 0x878B
+0xF2F5 0x8753
+0xF2F6 0x8763
+0xF2F7 0x877C
+0xF2F8 0x8764
+0xF2F9 0x8759
+0xF2FA 0x8765
+0xF2FB 0x8793
+0xF2FC 0x87AF
+0xF2FD 0x87A8
+0xF2FE 0x87D2
+0xF340-0xF351 0x9A5A
+0xF352 0x9A72
+0xF353 0x9A83
+0xF354 0x9A89
+0xF355-0xF356 0x9A8D
+0xF357-0xF358 0x9A94
+0xF359 0x9A99
+0xF35A 0x9AA6
+0xF35B-0xF361 0x9AA9
+0xF362-0xF365 0x9AB2
+0xF366 0x9AB9
+0xF367 0x9ABB
+0xF368-0xF36A 0x9ABD
+0xF36B-0xF36C 0x9AC3
+0xF36D-0xF371 0x9AC6
+0xF372-0xF375 0x9ACD
+0xF376 0x9AD2
+0xF377-0xF37A 0x9AD4
+0xF37B-0xF37E 0x9AD9
+0xF380-0xF381 0x9ADD
+0xF382 0x9AE0
+0xF383-0xF386 0x9AE2
+0xF387-0xF38A 0x9AE7
+0xF38B 0x9AEC
+0xF38C 0x9AEE
+0xF38D-0xF395 0x9AF0
+0xF396 0x9AFA
+0xF397-0xF39D 0x9AFC
+0xF39E-0xF3A0 0x9B04
+0xF3A1 0x87C6
+0xF3A2 0x8788
+0xF3A3 0x8785
+0xF3A4 0x87AD
+0xF3A5 0x8797
+0xF3A6 0x8783
+0xF3A7 0x87AB
+0xF3A8 0x87E5
+0xF3A9 0x87AC
+0xF3AA 0x87B5
+0xF3AB 0x87B3
+0xF3AC 0x87CB
+0xF3AD 0x87D3
+0xF3AE 0x87BD
+0xF3AF 0x87D1
+0xF3B0 0x87C0
+0xF3B1 0x87CA
+0xF3B2 0x87DB
+0xF3B3 0x87EA
+0xF3B4 0x87E0
+0xF3B5 0x87EE
+0xF3B6 0x8816
+0xF3B7 0x8813
+0xF3B8 0x87FE
+0xF3B9 0x880A
+0xF3BA 0x881B
+0xF3BB 0x8821
+0xF3BC 0x8839
+0xF3BD 0x883C
+0xF3BE 0x7F36
+0xF3BF 0x7F42
+0xF3C0-0xF3C1 0x7F44
+0xF3C2 0x8210
+0xF3C3 0x7AFA
+0xF3C4 0x7AFD
+0xF3C5 0x7B08
+0xF3C6-0xF3C7 0x7B03
+0xF3C8 0x7B15
+0xF3C9 0x7B0A
+0xF3CA 0x7B2B
+0xF3CB 0x7B0F
+0xF3CC 0x7B47
+0xF3CD 0x7B38
+0xF3CE 0x7B2A
+0xF3CF 0x7B19
+0xF3D0 0x7B2E
+0xF3D1 0x7B31
+0xF3D2 0x7B20
+0xF3D3 0x7B25
+0xF3D4 0x7B24
+0xF3D5 0x7B33
+0xF3D6 0x7B3E
+0xF3D7 0x7B1E
+0xF3D8 0x7B58
+0xF3D9 0x7B5A
+0xF3DA 0x7B45
+0xF3DB 0x7B75
+0xF3DC 0x7B4C
+0xF3DD 0x7B5D
+0xF3DE 0x7B60
+0xF3DF 0x7B6E
+0xF3E0 0x7B7B
+0xF3E1 0x7B62
+0xF3E2 0x7B72
+0xF3E3 0x7B71
+0xF3E4 0x7B90
+0xF3E5-0xF3E6 0x7BA6
+0xF3E7 0x7BB8
+0xF3E8 0x7BAC
+0xF3E9 0x7B9D
+0xF3EA 0x7BA8
+0xF3EB 0x7B85
+0xF3EC 0x7BAA
+0xF3ED 0x7B9C
+0xF3EE 0x7BA2
+0xF3EF 0x7BAB
+0xF3F0 0x7BB4
+0xF3F1 0x7BD1
+0xF3F2 0x7BC1
+0xF3F3 0x7BCC
+0xF3F4 0x7BDD
+0xF3F5 0x7BDA
+0xF3F6-0xF3F7 0x7BE5
+0xF3F8 0x7BEA
+0xF3F9 0x7C0C
+0xF3FA 0x7BFE
+0xF3FB 0x7BFC
+0xF3FC 0x7C0F
+0xF3FD 0x7C16
+0xF3FE 0x7C0B
+0xF440 0x9B07
+0xF441-0xF446 0x9B09
+0xF447-0xF449 0x9B10
+0xF44A-0xF454 0x9B14
+0xF455-0xF457 0x9B20
+0xF458-0xF462 0x9B24
+0xF463-0xF464 0x9B30
+0xF465-0xF46C 0x9B33
+0xF46D-0xF470 0x9B3D
+0xF471 0x9B46
+0xF472-0xF474 0x9B4A
+0xF475 0x9B4E
+0xF476 0x9B50
+0xF477-0xF478 0x9B52
+0xF479-0xF47E 0x9B55
+0xF480-0xF4A0 0x9B5B
+0xF4A1 0x7C1F
+0xF4A2 0x7C2A
+0xF4A3 0x7C26
+0xF4A4 0x7C38
+0xF4A5 0x7C41
+0xF4A6 0x7C40
+0xF4A7 0x81FE
+0xF4A8-0xF4A9 0x8201
+0xF4AA 0x8204
+0xF4AB 0x81EC
+0xF4AC 0x8844
+0xF4AD-0xF4AF 0x8221
+0xF4B0 0x822D
+0xF4B1 0x822F
+0xF4B2 0x8228
+0xF4B3 0x822B
+0xF4B4 0x8238
+0xF4B5 0x823B
+0xF4B6-0xF4B7 0x8233
+0xF4B8 0x823E
+0xF4B9 0x8244
+0xF4BA 0x8249
+0xF4BB 0x824B
+0xF4BC 0x824F
+0xF4BD 0x825A
+0xF4BE 0x825F
+0xF4BF 0x8268
+0xF4C0 0x887E
+0xF4C1 0x8885
+0xF4C2 0x8888
+0xF4C3 0x88D8
+0xF4C4 0x88DF
+0xF4C5 0x895E
+0xF4C6 0x7F9D
+0xF4C7 0x7F9F
+0xF4C8 0x7FA7
+0xF4C9-0xF4CA 0x7FAF
+0xF4CB 0x7FB2
+0xF4CC 0x7C7C
+0xF4CD 0x6549
+0xF4CE 0x7C91
+0xF4CF 0x7C9D
+0xF4D0 0x7C9C
+0xF4D1 0x7C9E
+0xF4D2 0x7CA2
+0xF4D3 0x7CB2
+0xF4D4-0xF4D5 0x7CBC
+0xF4D6 0x7CC1
+0xF4D7 0x7CC7
+0xF4D8-0xF4D9 0x7CCC
+0xF4DA 0x7CC8
+0xF4DB 0x7CC5
+0xF4DC 0x7CD7
+0xF4DD 0x7CE8
+0xF4DE 0x826E
+0xF4DF 0x66A8
+0xF4E0 0x7FBF
+0xF4E1 0x7FCE
+0xF4E2 0x7FD5
+0xF4E3 0x7FE5
+0xF4E4 0x7FE1
+0xF4E5 0x7FE6
+0xF4E6 0x7FE9
+0xF4E7 0x7FEE
+0xF4E8 0x7FF3
+0xF4E9 0x7CF8
+0xF4EA 0x7D77
+0xF4EB 0x7DA6
+0xF4EC 0x7DAE
+0xF4ED 0x7E47
+0xF4EE 0x7E9B
+0xF4EF 0x9EB8
+0xF4F0 0x9EB4
+0xF4F1 0x8D73
+0xF4F2 0x8D84
+0xF4F3 0x8D94
+0xF4F4 0x8D91
+0xF4F5 0x8DB1
+0xF4F6 0x8D67
+0xF4F7 0x8D6D
+0xF4F8 0x8C47
+0xF4F9 0x8C49
+0xF4FA 0x914A
+0xF4FB 0x9150
+0xF4FC-0xF4FD 0x914E
+0xF4FE 0x9164
+0xF540-0xF57E 0x9B7C
+0xF580-0xF5A0 0x9BBB
+0xF5A1 0x9162
+0xF5A2 0x9161
+0xF5A3 0x9170
+0xF5A4 0x9169
+0xF5A5 0x916F
+0xF5A6-0xF5A7 0x917D
+0xF5A8 0x9172
+0xF5A9 0x9174
+0xF5AA 0x9179
+0xF5AB 0x918C
+0xF5AC 0x9185
+0xF5AD 0x9190
+0xF5AE 0x918D
+0xF5AF 0x9191
+0xF5B0-0xF5B1 0x91A2
+0xF5B2 0x91AA
+0xF5B3-0xF5B5 0x91AD
+0xF5B6 0x91B5
+0xF5B7 0x91B4
+0xF5B8 0x91BA
+0xF5B9 0x8C55
+0xF5BA 0x9E7E
+0xF5BB 0x8DB8
+0xF5BC 0x8DEB
+0xF5BD 0x8E05
+0xF5BE 0x8E59
+0xF5BF 0x8E69
+0xF5C0 0x8DB5
+0xF5C1 0x8DBF
+0xF5C2 0x8DBC
+0xF5C3 0x8DBA
+0xF5C4 0x8DC4
+0xF5C5-0xF5C6 0x8DD6
+0xF5C7 0x8DDA
+0xF5C8 0x8DDE
+0xF5C9-0xF5CA 0x8DCE
+0xF5CB 0x8DDB
+0xF5CC 0x8DC6
+0xF5CD 0x8DEC
+0xF5CE-0xF5CF 0x8DF7
+0xF5D0 0x8DE3
+0xF5D1 0x8DF9
+0xF5D2 0x8DFB
+0xF5D3 0x8DE4
+0xF5D4 0x8E09
+0xF5D5 0x8DFD
+0xF5D6 0x8E14
+0xF5D7 0x8E1D
+0xF5D8 0x8E1F
+0xF5D9 0x8E2C
+0xF5DA 0x8E2E
+0xF5DB 0x8E23
+0xF5DC 0x8E2F
+0xF5DD 0x8E3A
+0xF5DE 0x8E40
+0xF5DF 0x8E39
+0xF5E0 0x8E35
+0xF5E1 0x8E3D
+0xF5E2 0x8E31
+0xF5E3 0x8E49
+0xF5E4-0xF5E5 0x8E41
+0xF5E6-0xF5E7 0x8E51
+0xF5E8 0x8E4A
+0xF5E9 0x8E70
+0xF5EA 0x8E76
+0xF5EB 0x8E7C
+0xF5EC 0x8E6F
+0xF5ED 0x8E74
+0xF5EE 0x8E85
+0xF5EF 0x8E8F
+0xF5F0 0x8E94
+0xF5F1 0x8E90
+0xF5F2 0x8E9C
+0xF5F3 0x8E9E
+0xF5F4 0x8C78
+0xF5F5 0x8C82
+0xF5F6 0x8C8A
+0xF5F7 0x8C85
+0xF5F8 0x8C98
+0xF5F9 0x8C94
+0xF5FA 0x659B
+0xF5FB 0x89D6
+0xF5FC 0x89DE
+0xF5FD 0x89DA
+0xF5FE 0x89DC
+0xF640-0xF67E 0x9BDC
+0xF680-0xF6A0 0x9C1B
+0xF6A1 0x89E5
+0xF6A2 0x89EB
+0xF6A3 0x89EF
+0xF6A4 0x8A3E
+0xF6A5 0x8B26
+0xF6A6 0x9753
+0xF6A7 0x96E9
+0xF6A8 0x96F3
+0xF6A9 0x96EF
+0xF6AA 0x9706
+0xF6AB 0x9701
+0xF6AC 0x9708
+0xF6AD 0x970F
+0xF6AE 0x970E
+0xF6AF 0x972A
+0xF6B0 0x972D
+0xF6B1 0x9730
+0xF6B2 0x973E
+0xF6B3 0x9F80
+0xF6B4 0x9F83
+0xF6B5-0xF6BA 0x9F85
+0xF6BB 0x9F8C
+0xF6BC 0x9EFE
+0xF6BD 0x9F0B
+0xF6BE 0x9F0D
+0xF6BF 0x96B9
+0xF6C0-0xF6C1 0x96BC
+0xF6C2 0x96CE
+0xF6C3 0x96D2
+0xF6C4 0x77BF
+0xF6C5 0x96E0
+0xF6C6 0x928E
+0xF6C7 0x92AE
+0xF6C8 0x92C8
+0xF6C9 0x933E
+0xF6CA 0x936A
+0xF6CB 0x93CA
+0xF6CC 0x938F
+0xF6CD 0x943E
+0xF6CE 0x946B
+0xF6CF 0x9C7F
+0xF6D0 0x9C82
+0xF6D1-0xF6D4 0x9C85
+0xF6D5 0x7A23
+0xF6D6 0x9C8B
+0xF6D7 0x9C8E
+0xF6D8-0xF6DA 0x9C90
+0xF6DB-0xF6DC 0x9C94
+0xF6DD-0xF6DE 0x9C9A
+0xF6DF-0xF6E4 0x9C9E
+0xF6E5-0xF6E9 0x9CA5
+0xF6EA 0x9CAB
+0xF6EB-0xF6EC 0x9CAD
+0xF6ED-0xF6F4 0x9CB0
+0xF6F5-0xF6F8 0x9CBA
+0xF6F9-0xF6FC 0x9CC4
+0xF6FD-0xF6FE 0x9CCA
+0xF740-0xF77E 0x9C3C
+0xF780 0x9C7B
+0xF781-0xF782 0x9C7D
+0xF783 0x9C80
+0xF784-0xF785 0x9C83
+0xF786-0xF787 0x9C89
+0xF788 0x9C8C
+0xF789 0x9C8F
+0xF78A 0x9C93
+0xF78B-0xF78E 0x9C96
+0xF78F 0x9C9D
+0xF790 0x9CAA
+0xF791 0x9CAC
+0xF792 0x9CAF
+0xF793 0x9CB9
+0xF794-0xF798 0x9CBE
+0xF799-0xF79A 0x9CC8
+0xF79B-0xF79C 0x9CD1
+0xF79D-0xF79E 0x9CDA
+0xF79F-0xF7A0 0x9CE0
+0xF7A1-0xF7A5 0x9CCC
+0xF7A6-0xF7A8 0x9CD3
+0xF7A9-0xF7AB 0x9CD7
+0xF7AC-0xF7AD 0x9CDC
+0xF7AE 0x9CDF
+0xF7AF 0x9CE2
+0xF7B0 0x977C
+0xF7B1 0x9785
+0xF7B2-0xF7B3 0x9791
+0xF7B4 0x9794
+0xF7B5 0x97AF
+0xF7B6 0x97AB
+0xF7B7 0x97A3
+0xF7B8 0x97B2
+0xF7B9 0x97B4
+0xF7BA 0x9AB1
+0xF7BB 0x9AB0
+0xF7BC 0x9AB7
+0xF7BD 0x9E58
+0xF7BE 0x9AB6
+0xF7BF 0x9ABA
+0xF7C0 0x9ABC
+0xF7C1 0x9AC1
+0xF7C2 0x9AC0
+0xF7C3 0x9AC5
+0xF7C4 0x9AC2
+0xF7C5-0xF7C6 0x9ACB
+0xF7C7 0x9AD1
+0xF7C8 0x9B45
+0xF7C9 0x9B43
+0xF7CA 0x9B47
+0xF7CB 0x9B49
+0xF7CC 0x9B48
+0xF7CD 0x9B4D
+0xF7CE 0x9B51
+0xF7CF 0x98E8
+0xF7D0 0x990D
+0xF7D1 0x992E
+0xF7D2 0x9955
+0xF7D3 0x9954
+0xF7D4 0x9ADF
+0xF7D5 0x9AE1
+0xF7D6 0x9AE6
+0xF7D7 0x9AEF
+0xF7D8 0x9AEB
+0xF7D9 0x9AFB
+0xF7DA 0x9AED
+0xF7DB 0x9AF9
+0xF7DC 0x9B08
+0xF7DD 0x9B0F
+0xF7DE 0x9B13
+0xF7DF 0x9B1F
+0xF7E0 0x9B23
+0xF7E1-0xF7E2 0x9EBD
+0xF7E3 0x7E3B
+0xF7E4 0x9E82
+0xF7E5-0xF7E6 0x9E87
+0xF7E7 0x9E8B
+0xF7E8 0x9E92
+0xF7E9 0x93D6
+0xF7EA 0x9E9D
+0xF7EB 0x9E9F
+0xF7EC-0xF7EE 0x9EDB
+0xF7EF 0x9EE0
+0xF7F0 0x9EDF
+0xF7F1 0x9EE2
+0xF7F2 0x9EE9
+0xF7F3 0x9EE7
+0xF7F4 0x9EE5
+0xF7F5 0x9EEA
+0xF7F6 0x9EEF
+0xF7F7 0x9F22
+0xF7F8 0x9F2C
+0xF7F9 0x9F2F
+0xF7FA 0x9F39
+0xF7FB 0x9F37
+0xF7FC-0xF7FD 0x9F3D
+0xF7FE 0x9F44
+0xF840-0xF87E 0x9CE3
+0xF880-0xF8A0 0x9D22
+0xF8A1-0xF8FE 0xE234
+0xF940-0xF97E 0x9D43
+0xF980-0xF9A0 0x9D82
+0xF9A1-0xF9FE 0xE292
+0xFA40-0xFA7E 0x9DA3
+0xFA80-0xFAA0 0x9DE2
+0xFAA1-0xFAFE 0xE2F0
+0xFB40-0xFB5B 0x9E03
+0xFB5C 0x9E24
+0xFB5D 0x9E27
+0xFB5E 0x9E2E
+0xFB5F 0x9E30
+0xFB60 0x9E34
+0xFB61-0xFB62 0x9E3B
+0xFB63 0x9E40
+0xFB64 0x9E4D
+0xFB65 0x9E50
+0xFB66-0xFB68 0x9E52
+0xFB69 0x9E56
+0xFB6A 0x9E59
+0xFB6B 0x9E5D
+0xFB6C-0xFB6F 0x9E5F
+0xFB70 0x9E65
+0xFB71-0xFB72 0x9E6E
+0xFB73 0x9E72
+0xFB74-0xFB7D 0x9E74
+0xFB7E 0x9E80
+0xFB80 0x9E81
+0xFB81-0xFB84 0x9E83
+0xFB85-0xFB86 0x9E89
+0xFB87-0xFB8C 0x9E8C
+0xFB8D-0xFB95 0x9E94
+0xFB96 0x9E9E
+0xFB97-0xFB9C 0x9EA0
+0xFB9D-0xFBA0 0x9EA7
+0xFBA1-0xFBFE 0xE34E
+0xFC40-0xFC48 0x9EAB
+0xFC49-0xFC4B 0x9EB5
+0xFC4C-0xFC4D 0x9EB9
+0xFC4E 0x9EBC
+0xFC4F-0xFC53 0x9EBF
+0xFC54-0xFC57 0x9EC5
+0xFC58-0xFC5A 0x9ECA
+0xFC5B 0x9ED0
+0xFC5C-0xFC5D 0x9ED2
+0xFC5E-0xFC60 0x9ED5
+0xFC61-0xFC62 0x9ED9
+0xFC63 0x9EDE
+0xFC64 0x9EE1
+0xFC65-0xFC66 0x9EE3
+0xFC67 0x9EE6
+0xFC68 0x9EE8
+0xFC69-0xFC6C 0x9EEB
+0xFC6D-0xFC75 0x9EF0
+0xFC76 0x9EFA
+0xFC77 0x9EFD
+0xFC78-0xFC7E 0x9EFF
+0xFC80-0xFC84 0x9F06
+0xFC85 0x9F0C
+0xFC86 0x9F0F
+0xFC87-0xFC88 0x9F11
+0xFC89-0xFC8B 0x9F14
+0xFC8C 0x9F18
+0xFC8D-0xFC92 0x9F1A
+0xFC93 0x9F21
+0xFC94-0xFC9C 0x9F23
+0xFC9D-0xFC9E 0x9F2D
+0xFC9F-0xFCA0 0x9F30
+0xFCA1-0xFCFE 0xE3AC
+0xFD40-0xFD44 0x9F32
+0xFD45 0x9F38
+0xFD46 0x9F3A
+0xFD47 0x9F3C
+0xFD48-0xFD4C 0x9F3F
+0xFD4D-0xFD57 0x9F45
+0xFD58-0xFD7E 0x9F52
+0xFD80-0xFD85 0x9F79
+0xFD86-0xFD87 0x9F81
+0xFD88-0xFD93 0x9F8D
+0xFD94-0xFD96 0x9F9C
+0xFD97-0xFD9B 0x9FA1
+0xFD9C 0xF92C
+0xFD9D 0xF979
+0xFD9E 0xF995
+0xFD9F 0xF9E7
+0xFDA0 0xF9F1
+0xFDA1-0xFDFE 0xE40A
+0xFE40-0xFE43 0xFA0C
+0xFE44 0xFA11
+0xFE45-0xFE46 0xFA13
+0xFE47 0xFA18
+0xFE48-0xFE4A 0xFA1F
+0xFE4B-0xFE4C 0xFA23
+0xFE4D-0xFE4F 0xFA27
+0xFE50 0x2E81
+0xFE51-0xFE53 0xE816
+0xFE54 0x2E84
+0xFE55 0x3473
+0xFE56 0x3447
+0xFE57 0x2E88
+0xFE58 0x2E8B
+0xFE59 0xE81E
+0xFE5A 0x359E
+0xFE5B 0x361A
+0xFE5C 0x360E
+0xFE5D 0x2E8C
+0xFE5E 0x2E97
+0xFE5F 0x396E
+0xFE60 0x3918
+0xFE61 0xE826
+0xFE62 0x39CF
+0xFE63 0x39DF
+0xFE64 0x3A73
+0xFE65 0x39D0
+0xFE66-0xFE67 0xE82B
+0xFE68 0x3B4E
+0xFE69 0x3C6E
+0xFE6A 0x3CE0
+0xFE6B 0x2EA7
+0xFE6C-0xFE6D 0xE831
+0xFE6E 0x2EAA
+0xFE6F 0x4056
+0xFE70 0x415F
+0xFE71 0x2EAE
+0xFE72 0x4337
+0xFE73 0x2EB3
+0xFE74-0xFE75 0x2EB6
+0xFE76 0xE83B
+0xFE77 0x43B1
+0xFE78 0x43AC
+0xFE79 0x2EBB
+0xFE7A 0x43DD
+0xFE7B 0x44D6
+0xFE7C 0x4661
+0xFE7D 0x464C
+0xFE7E 0xE843
+0xFE80 0x4723
+0xFE81 0x4729
+0xFE82 0x477C
+0xFE83 0x478D
+0xFE84 0x2ECA
+0xFE85 0x4947
+0xFE86 0x497A
+0xFE87 0x497D
+0xFE88-0xFE89 0x4982
+0xFE8A-0xFE8B 0x4985
+0xFE8C 0x499F
+0xFE8D 0x499B
+0xFE8E 0x49B7
+0xFE8F 0x49B6
+0xFE90-0xFE91 0xE854
+0xFE92 0x4CA3
+0xFE93-0xFE95 0x4C9F
+0xFE96 0x4C77
+0xFE97 0x4CA2
+0xFE98-0xFE9E 0x4D13
+0xFE9F 0x4DAE
+0xFEA0 0xE864
+0xFEA1-0xFEFE 0xE468
diff --git a/etc/charsets/GB180304.map b/etc/charsets/GB180304.map
new file mode 100644 (file)
index 0000000..d4c6534
--- /dev/null
@@ -0,0 +1,207 @@
+# Generated from glibc-2.3.2/localedata/charmaps/GB18030
+0x81308130-0x81308435  0x0080
+0x81308436-0x81308437  0x00A5
+0x81308438-0x81308534  0x00A9
+0x81308535-0x81308539  0x00B2
+0x81308630-0x81308930  0x00B8
+0x81308931-0x81308938  0x00D8
+0x81308939-0x81308A34  0x00E2
+0x81308A35             0x00EB
+0x81308A36-0x81308A39  0x00EE
+0x81308B30-0x81308B32  0x00F4
+0x81308B33             0x00F8
+0x81308B34             0x00FB
+0x81308B35-0x81308B38  0x00FD
+0x81308B39-0x81308D35  0x0102
+0x81308D36-0x81308E32  0x0114
+0x81308E33-0x81308F37  0x011C
+0x81308F38-0x81309231  0x012C
+0x81309232-0x81309234  0x0145
+0x81309235-0x81309238  0x0149
+0x81309239-0x81309537  0x014E
+0x81309538-0x81309F35  0x016C
+0x81309F36             0x01CF
+0x81309F37             0x01D1
+0x81309F38             0x01D3
+0x81309F39             0x01D5
+0x8130A030             0x01D7
+0x8130A031             0x01D9
+0x8130A032             0x01DB
+0x8130A033-0x8130A330  0x01DD
+0x8130A331-0x8130AB37  0x01FA
+0x8130AB38-0x8130AD32  0x0252
+0x8130AD33-0x8130B733  0x0262
+0x8130B734             0x02C8
+0x8130B735-0x8130B837  0x02CC
+0x8130B838-0x8130CB30  0x02DA
+0x8130CB31             0x03A2
+0x8130CB32-0x8130CB38  0x03AA
+0x8130CB39             0x03C2
+0x8130CC30-0x8130D134  0x03CA
+0x8130D135-0x8130D238  0x0402
+0x8130D239             0x0450
+0x8130D330-0x8136A531  0x0452
+0x8136A532-0x8136A533  0x2011
+0x8136A534             0x2017
+0x8136A535-0x8136A536  0x201A
+0x8136A537-0x8136A633  0x201E
+0x8136A634-0x8136A732  0x2027
+0x8136A733             0x2031
+0x8136A734             0x2034
+0x8136A735-0x8136A739  0x2036
+0x8136A830-0x8136B331  0x203C
+0x8136B332-0x8136BB37  0x20AD
+0x8136BB38             0x2104
+0x8136BB39-0x8136BC31  0x2106
+0x8136BC32-0x8136BD33  0x210A
+0x8136BD34-0x8136BE33  0x2117
+0x8136BE34-0x8136C435  0x2122
+0x8136C436-0x8136C439  0x216C
+0x8136C530-0x8136C731  0x217A
+0x8136C732-0x8136C733  0x2194
+0x8136C734-0x8136D233  0x219A
+0x8136D234-0x8136D239  0x2209
+0x8136D330             0x2210
+0x8136D331-0x8136D333  0x2212
+0x8136D334-0x8136D337  0x2216
+0x8136D338-0x8136D339  0x221B
+0x8136D430-0x8136D431  0x2221
+0x8136D432             0x2224
+0x8136D433             0x2226
+0x8136D434-0x8136D435  0x222C
+0x8136D436-0x8136D530  0x222F
+0x8136D531-0x8136D535  0x2238
+0x8136D536-0x8136D635  0x223E
+0x8136D636-0x8136D638  0x2249
+0x8136D639-0x8136D733  0x224D
+0x8136D734-0x8136D836  0x2253
+0x8136D837-0x8136D838  0x2262
+0x8136D839-0x8136D934  0x2268
+0x8136D935-0x8136DD31  0x2270
+0x8136DD32-0x8136DD34  0x2296
+0x8136DD35-0x8136DE35  0x229A
+0x8136DE36-0x8136E130  0x22A6
+0x8136E131-0x8136E932  0x22C0
+0x8136E933-0x81378C35  0x2313
+0x81378C36-0x81378D35  0x246A
+0x81378D36-0x81379735  0x249C
+0x81379736-0x81379739  0x254C
+0x81379830-0x81379932  0x2574
+0x81379933-0x81379935  0x2590
+0x81379936-0x81379A35  0x2596
+0x81379A36-0x81379C31  0x25A2
+0x81379C32-0x81379C39  0x25B4
+0x81379D30-0x81379D37  0x25BE
+0x81379D38-0x81379E30  0x25C8
+0x81379E31-0x81379E32  0x25CC
+0x81379E33-0x8137A030  0x25D0
+0x8137A031-0x8137A331  0x25E6
+0x8137A332-0x8137A333  0x2607
+0x8137A334-0x8137A837  0x260A
+0x8137A838             0x2641
+0x8137A839-0x8138FD38  0x2643
+0x8138FD39-0x8138FE30  0x2E82
+0x8138FE31-0x8138FE33  0x2E85
+0x8138FE34-0x8138FE35  0x2E89
+0x8138FE36-0x81398135  0x2E8D
+0x81398136-0x81398330  0x2E98
+0x81398331-0x81398332  0x2EA8
+0x81398333-0x81398335  0x2EAB
+0x81398336-0x81398339  0x2EAF
+0x81398430-0x81398431  0x2EB4
+0x81398432-0x81398434  0x2EB8
+0x81398435-0x81398538  0x2EBC
+0x81398539-0x8139A331  0x2ECB
+0x8139A332-0x8139A335  0x2FFC
+0x8139A336             0x3004
+0x8139A337-0x8139A431  0x3018
+0x8139A432-0x8139A433  0x301F
+0x8139A434-0x8139A633  0x302A
+0x8139A634-0x8139A635  0x303F
+0x8139A636-0x8139A732  0x3094
+0x8139A733-0x8139A734  0x309F
+0x8139A735-0x8139A739  0x30F7
+0x8139A830-0x8139A835  0x30FF
+0x8139A836-0x8139C131  0x312A
+0x8139C132-0x8139C138  0x322A
+0x8139C139-0x8139CD31  0x3232
+0x8139CD32-0x8139E435  0x32A4
+0x8139E436-0x8139E537  0x3390
+0x8139E538-0x8139E539  0x339F
+0x8139E630-0x8139E933  0x33A2
+0x8139E934-0x8139EA32  0x33C5
+0x8139EA33-0x8139EA34  0x33CF
+0x8139EA35-0x8139EA36  0x33D3
+0x8139EA37-0x8139F539  0x33D6
+0x8139F630-0x8139FA32  0x3448
+0x8139FA33-0x82309A30  0x3474
+0x82309A31-0x8230A531  0x359F
+0x8230A532-0x8230A632  0x360F
+0x8230A633-0x8230F237  0x361B
+0x8230F238-0x8230FB32  0x3919
+0x8230FB33-0x82318638  0x396F
+0x82318639-0x82318832  0x39D1
+0x82318833-0x82319639  0x39E0
+0x82319730-0x8231AC37  0x3A74
+0x8231AC38-0x8231C934  0x3B4F
+0x8231C935-0x8231D437  0x3C6F
+0x8231D438-0x8232AF32  0x3CE1
+0x8232AF33-0x8232C936  0x4057
+0x8232C937-0x8232F837  0x4160
+0x8232F838-0x82338633  0x4338
+0x82338634-0x82338637  0x43AD
+0x82338638-0x82338B30  0x43B2
+0x82338B31-0x8233A338  0x43DE
+0x8233A339-0x8233C931  0x44D7
+0x8233C932-0x8233CB31  0x464D
+0x8233CB32-0x8233DE34  0x4662
+0x8233DE35-0x8233DE39  0x4724
+0x8233DF30-0x8233E731  0x472A
+0x8233E732-0x8233E837  0x477D
+0x8233E838-0x82349638  0x478E
+0x82349639-0x82349B38  0x4948
+0x82349B39-0x82349C30  0x497B
+0x82349C31-0x82349C34  0x497E
+0x82349C35             0x4984
+0x82349C36-0x82349E35  0x4987
+0x82349E36-0x82349E38  0x499C
+0x82349E39-0x8234A130  0x49A0
+0x8234A131-0x8234E733  0x49B8
+0x8234E734-0x8234EB32  0x4C78
+0x8234EB33-0x8234F633  0x4CA4
+0x8234F634-0x82358731  0x4D1A
+0x82358732-0x82358F32  0x4DAF
+0x82358F33-0x8336C738  0x9FA6
+0x8336C739             0xE76C
+0x8336C830             0xE7C8
+0x8336C831-0x8336C933  0xE7E7
+0x8336C934             0xE815
+0x8336C935-0x8336C939  0xE819
+0x8336CA30-0x8336CA36  0xE81F
+0x8336CA37-0x8336CB30  0xE827
+0x8336CB31-0x8336CB34  0xE82D
+0x8336CB35-0x8336CC32  0xE833
+0x8336CC33-0x8336CC39  0xE83C
+0x8336CD30-0x8336CE35  0xE844
+0x8336CE36-0x8336CF39  0xE856
+0x8336D030-0x84308534  0xE865
+0x84308535-0x84308D30  0xF92D
+0x84308D31-0x84308F37  0xF97A
+0x84308F38-0x84309738  0xF996
+0x84309739-0x84309837  0xF9E8
+0x84309838-0x84309B33  0xF9F2
+0x84309B34             0xFA10
+0x84309B35             0xFA12
+0x84309B36-0x84309B38  0xFA15
+0x84309B39-0x84309C34  0xFA19
+0x84309C35             0xFA22
+0x84309C36-0x84309C37  0xFA25
+0x84309C38-0x84318537  0xFA2A
+0x84318538             0xFE32
+0x84318539-0x84318632  0xFE45
+0x84318633             0xFE53
+0x84318634             0xFE58
+0x84318635             0xFE67
+0x84318636-0x84319534  0xFE6C
+0x84319535-0x8431A233  0xFF5F
+0x8431A234-0x8431A439  0xFFE6
diff --git a/etc/charsets/GB2312.map b/etc/charsets/GB2312.map
new file mode 100644 (file)
index 0000000..85aa1d9
--- /dev/null
@@ -0,0 +1,6554 @@
+# Generated from glibc-2.3.2/localedata/charmaps/GB2312
+0x2121-0x2123 0x3000
+0x2124 0x30FB
+0x2125 0x02C9
+0x2126 0x02C7
+0x2127 0x00A8
+0x2128 0x3003
+0x2129 0x3005
+0x212A 0x2015
+0x212B 0xFF5E
+0x212C 0x2016
+0x212D 0x2026
+0x212E-0x212F 0x2018
+0x2130-0x2131 0x201C
+0x2132-0x2133 0x3014
+0x2134-0x213B 0x3008
+0x213C-0x213D 0x3016
+0x213E-0x213F 0x3010
+0x2140 0x00B1
+0x2141 0x00D7
+0x2142 0x00F7
+0x2143 0x2236
+0x2144-0x2145 0x2227
+0x2146 0x2211
+0x2147 0x220F
+0x2148 0x222A
+0x2149 0x2229
+0x214A 0x2208
+0x214B 0x2237
+0x214C 0x221A
+0x214D 0x22A5
+0x214E 0x2225
+0x214F 0x2220
+0x2150 0x2312
+0x2151 0x2299
+0x2152 0x222B
+0x2153 0x222E
+0x2154 0x2261
+0x2155 0x224C
+0x2156 0x2248
+0x2157 0x223D
+0x2158 0x221D
+0x2159 0x2260
+0x215A-0x215B 0x226E
+0x215C-0x215D 0x2264
+0x215E 0x221E
+0x215F 0x2235
+0x2160 0x2234
+0x2161 0x2642
+0x2162 0x2640
+0x2163 0x00B0
+0x2164-0x2165 0x2032
+0x2166 0x2103
+0x2167 0xFF04
+0x2168 0x00A4
+0x2169-0x216A 0xFFE0
+0x216B 0x2030
+0x216C 0x00A7
+0x216D 0x2116
+0x216E 0x2606
+0x216F 0x2605
+0x2170 0x25CB
+0x2171 0x25CF
+0x2172 0x25CE
+0x2173 0x25C7
+0x2174 0x25C6
+0x2175 0x25A1
+0x2176 0x25A0
+0x2177 0x25B3
+0x2178 0x25B2
+0x2179 0x203B
+0x217A 0x2192
+0x217B-0x217C 0x2190
+0x217D 0x2193
+0x217E 0x3013
+0x2231-0x2244 0x2488
+0x2245-0x2258 0x2474
+0x2259-0x2262 0x2460
+0x2265-0x226E 0x3220
+0x2271-0x227C 0x2160
+0x2321-0x2323 0xFF01
+0x2324 0xFFE5
+0x2325-0x237D 0xFF05
+0x237E 0xFFE3
+0x2421-0x2473 0x3041
+0x2521-0x2576 0x30A1
+0x2621-0x2631 0x0391
+0x2632-0x2638 0x03A3
+0x2641-0x2651 0x03B1
+0x2652-0x2658 0x03C3
+0x2721-0x2726 0x0410
+0x2727 0x0401
+0x2728-0x2741 0x0416
+0x2751-0x2756 0x0430
+0x2757 0x0451
+0x2758-0x2771 0x0436
+0x2821 0x0101
+0x2822 0x00E1
+0x2823 0x01CE
+0x2824 0x00E0
+0x2825 0x0113
+0x2826 0x00E9
+0x2827 0x011B
+0x2828 0x00E8
+0x2829 0x012B
+0x282A 0x00ED
+0x282B 0x01D0
+0x282C 0x00EC
+0x282D 0x014D
+0x282E 0x00F3
+0x282F 0x01D2
+0x2830 0x00F2
+0x2831 0x016B
+0x2832 0x00FA
+0x2833 0x01D4
+0x2834 0x00F9
+0x2835 0x01D6
+0x2836 0x01D8
+0x2837 0x01DA
+0x2838 0x01DC
+0x2839 0x00FC
+0x283A 0x00EA
+0x2845-0x2869 0x3105
+0x2924-0x296F 0x2500
+0x3021 0x554A
+0x3022 0x963F
+0x3023 0x57C3
+0x3024 0x6328
+0x3025 0x54CE
+0x3026 0x5509
+0x3027 0x54C0
+0x3028 0x7691
+0x3029 0x764C
+0x302A 0x853C
+0x302B 0x77EE
+0x302C 0x827E
+0x302D 0x788D
+0x302E 0x7231
+0x302F 0x9698
+0x3030 0x978D
+0x3031 0x6C28
+0x3032 0x5B89
+0x3033 0x4FFA
+0x3034 0x6309
+0x3035 0x6697
+0x3036 0x5CB8
+0x3037 0x80FA
+0x3038 0x6848
+0x3039 0x80AE
+0x303A 0x6602
+0x303B 0x76CE
+0x303C 0x51F9
+0x303D 0x6556
+0x303E 0x71AC
+0x303F 0x7FF1
+0x3040 0x8884
+0x3041 0x50B2
+0x3042 0x5965
+0x3043 0x61CA
+0x3044 0x6FB3
+0x3045 0x82AD
+0x3046 0x634C
+0x3047 0x6252
+0x3048 0x53ED
+0x3049 0x5427
+0x304A 0x7B06
+0x304B 0x516B
+0x304C 0x75A4
+0x304D 0x5DF4
+0x304E 0x62D4
+0x304F 0x8DCB
+0x3050 0x9776
+0x3051 0x628A
+0x3052 0x8019
+0x3053 0x575D
+0x3054 0x9738
+0x3055 0x7F62
+0x3056 0x7238
+0x3057 0x767D
+0x3058 0x67CF
+0x3059 0x767E
+0x305A 0x6446
+0x305B 0x4F70
+0x305C 0x8D25
+0x305D 0x62DC
+0x305E 0x7A17
+0x305F 0x6591
+0x3060 0x73ED
+0x3061 0x642C
+0x3062 0x6273
+0x3063 0x822C
+0x3064 0x9881
+0x3065 0x677F
+0x3066 0x7248
+0x3067 0x626E
+0x3068 0x62CC
+0x3069 0x4F34
+0x306A 0x74E3
+0x306B 0x534A
+0x306C 0x529E
+0x306D 0x7ECA
+0x306E 0x90A6
+0x306F 0x5E2E
+0x3070 0x6886
+0x3071 0x699C
+0x3072 0x8180
+0x3073 0x7ED1
+0x3074 0x68D2
+0x3075 0x78C5
+0x3076 0x868C
+0x3077 0x9551
+0x3078 0x508D
+0x3079 0x8C24
+0x307A 0x82DE
+0x307B 0x80DE
+0x307C 0x5305
+0x307D 0x8912
+0x307E 0x5265
+0x3121 0x8584
+0x3122 0x96F9
+0x3123 0x4FDD
+0x3124 0x5821
+0x3125 0x9971
+0x3126 0x5B9D
+0x3127 0x62B1
+0x3128 0x62A5
+0x3129 0x66B4
+0x312A 0x8C79
+0x312B 0x9C8D
+0x312C 0x7206
+0x312D 0x676F
+0x312E 0x7891
+0x312F 0x60B2
+0x3130 0x5351
+0x3131 0x5317
+0x3132 0x8F88
+0x3133 0x80CC
+0x3134 0x8D1D
+0x3135 0x94A1
+0x3136 0x500D
+0x3137 0x72C8
+0x3138 0x5907
+0x3139 0x60EB
+0x313A 0x7119
+0x313B 0x88AB
+0x313C 0x5954
+0x313D 0x82EF
+0x313E 0x672C
+0x313F 0x7B28
+0x3140 0x5D29
+0x3141 0x7EF7
+0x3142 0x752D
+0x3143 0x6CF5
+0x3144 0x8E66
+0x3145 0x8FF8
+0x3146 0x903C
+0x3147 0x9F3B
+0x3148 0x6BD4
+0x3149 0x9119
+0x314A 0x7B14
+0x314B 0x5F7C
+0x314C 0x78A7
+0x314D 0x84D6
+0x314E 0x853D
+0x314F 0x6BD5
+0x3150 0x6BD9
+0x3151 0x6BD6
+0x3152 0x5E01
+0x3153 0x5E87
+0x3154 0x75F9
+0x3155 0x95ED
+0x3156 0x655D
+0x3157 0x5F0A
+0x3158 0x5FC5
+0x3159 0x8F9F
+0x315A 0x58C1
+0x315B 0x81C2
+0x315C 0x907F
+0x315D 0x965B
+0x315E 0x97AD
+0x315F 0x8FB9
+0x3160 0x7F16
+0x3161 0x8D2C
+0x3162 0x6241
+0x3163 0x4FBF
+0x3164 0x53D8
+0x3165 0x535E
+0x3166-0x3167 0x8FA8
+0x3168 0x8FAB
+0x3169 0x904D
+0x316A 0x6807
+0x316B 0x5F6A
+0x316C 0x8198
+0x316D 0x8868
+0x316E 0x9CD6
+0x316F 0x618B
+0x3170 0x522B
+0x3171 0x762A
+0x3172 0x5F6C
+0x3173 0x658C
+0x3174 0x6FD2
+0x3175 0x6EE8
+0x3176 0x5BBE
+0x3177 0x6448
+0x3178 0x5175
+0x3179 0x51B0
+0x317A 0x67C4
+0x317B 0x4E19
+0x317C 0x79C9
+0x317D 0x997C
+0x317E 0x70B3
+0x3221 0x75C5
+0x3222 0x5E76
+0x3223 0x73BB
+0x3224 0x83E0
+0x3225 0x64AD
+0x3226 0x62E8
+0x3227 0x94B5
+0x3228 0x6CE2
+0x3229 0x535A
+0x322A 0x52C3
+0x322B 0x640F
+0x322C 0x94C2
+0x322D 0x7B94
+0x322E 0x4F2F
+0x322F 0x5E1B
+0x3230 0x8236
+0x3231 0x8116
+0x3232 0x818A
+0x3233 0x6E24
+0x3234 0x6CCA
+0x3235 0x9A73
+0x3236 0x6355
+0x3237 0x535C
+0x3238 0x54FA
+0x3239 0x8865
+0x323A 0x57E0
+0x323B 0x4E0D
+0x323C 0x5E03
+0x323D 0x6B65
+0x323E 0x7C3F
+0x323F 0x90E8
+0x3240 0x6016
+0x3241 0x64E6
+0x3242 0x731C
+0x3243 0x88C1
+0x3244 0x6750
+0x3245 0x624D
+0x3246 0x8D22
+0x3247 0x776C
+0x3248 0x8E29
+0x3249 0x91C7
+0x324A 0x5F69
+0x324B 0x83DC
+0x324C 0x8521
+0x324D 0x9910
+0x324E 0x53C2
+0x324F 0x8695
+0x3250 0x6B8B
+0x3251 0x60ED
+0x3252 0x60E8
+0x3253 0x707F
+0x3254 0x82CD
+0x3255 0x8231
+0x3256 0x4ED3
+0x3257 0x6CA7
+0x3258 0x85CF
+0x3259 0x64CD
+0x325A 0x7CD9
+0x325B 0x69FD
+0x325C 0x66F9
+0x325D 0x8349
+0x325E 0x5395
+0x325F 0x7B56
+0x3260 0x4FA7
+0x3261 0x518C
+0x3262 0x6D4B
+0x3263 0x5C42
+0x3264 0x8E6D
+0x3265 0x63D2
+0x3266 0x53C9
+0x3267 0x832C
+0x3268 0x8336
+0x3269 0x67E5
+0x326A 0x78B4
+0x326B 0x643D
+0x326C 0x5BDF
+0x326D 0x5C94
+0x326E 0x5DEE
+0x326F 0x8BE7
+0x3270 0x62C6
+0x3271 0x67F4
+0x3272 0x8C7A
+0x3273 0x6400
+0x3274 0x63BA
+0x3275 0x8749
+0x3276 0x998B
+0x3277 0x8C17
+0x3278 0x7F20
+0x3279 0x94F2
+0x327A 0x4EA7
+0x327B 0x9610
+0x327C 0x98A4
+0x327D 0x660C
+0x327E 0x7316
+0x3321 0x573A
+0x3322 0x5C1D
+0x3323 0x5E38
+0x3324 0x957F
+0x3325 0x507F
+0x3326 0x80A0
+0x3327 0x5382
+0x3328 0x655E
+0x3329 0x7545
+0x332A 0x5531
+0x332B 0x5021
+0x332C 0x8D85
+0x332D 0x6284
+0x332E 0x949E
+0x332F 0x671D
+0x3330 0x5632
+0x3331 0x6F6E
+0x3332 0x5DE2
+0x3333 0x5435
+0x3334 0x7092
+0x3335 0x8F66
+0x3336 0x626F
+0x3337 0x64A4
+0x3338 0x63A3
+0x3339 0x5F7B
+0x333A 0x6F88
+0x333B 0x90F4
+0x333C 0x81E3
+0x333D 0x8FB0
+0x333E 0x5C18
+0x333F 0x6668
+0x3340 0x5FF1
+0x3341 0x6C89
+0x3342 0x9648
+0x3343 0x8D81
+0x3344 0x886C
+0x3345 0x6491
+0x3346 0x79F0
+0x3347 0x57CE
+0x3348 0x6A59
+0x3349 0x6210
+0x334A 0x5448
+0x334B 0x4E58
+0x334C 0x7A0B
+0x334D 0x60E9
+0x334E 0x6F84
+0x334F 0x8BDA
+0x3350 0x627F
+0x3351 0x901E
+0x3352 0x9A8B
+0x3353 0x79E4
+0x3354 0x5403
+0x3355 0x75F4
+0x3356 0x6301
+0x3357 0x5319
+0x3358 0x6C60
+0x3359 0x8FDF
+0x335A 0x5F1B
+0x335B 0x9A70
+0x335C 0x803B
+0x335D 0x9F7F
+0x335E 0x4F88
+0x335F 0x5C3A
+0x3360 0x8D64
+0x3361 0x7FC5
+0x3362 0x65A5
+0x3363 0x70BD
+0x3364 0x5145
+0x3365 0x51B2
+0x3366 0x866B
+0x3367 0x5D07
+0x3368 0x5BA0
+0x3369 0x62BD
+0x336A 0x916C
+0x336B 0x7574
+0x336C 0x8E0C
+0x336D 0x7A20
+0x336E 0x6101
+0x336F 0x7B79
+0x3370 0x4EC7
+0x3371 0x7EF8
+0x3372 0x7785
+0x3373 0x4E11
+0x3374 0x81ED
+0x3375 0x521D
+0x3376 0x51FA
+0x3377 0x6A71
+0x3378 0x53A8
+0x3379 0x8E87
+0x337A 0x9504
+0x337B 0x96CF
+0x337C 0x6EC1
+0x337D 0x9664
+0x337E 0x695A
+0x3421 0x7840
+0x3422 0x50A8
+0x3423 0x77D7
+0x3424 0x6410
+0x3425 0x89E6
+0x3426 0x5904
+0x3427 0x63E3
+0x3428 0x5DDD
+0x3429 0x7A7F
+0x342A 0x693D
+0x342B 0x4F20
+0x342C 0x8239
+0x342D 0x5598
+0x342E 0x4E32
+0x342F 0x75AE
+0x3430 0x7A97
+0x3431 0x5E62
+0x3432 0x5E8A
+0x3433 0x95EF
+0x3434 0x521B
+0x3435 0x5439
+0x3436 0x708A
+0x3437 0x6376
+0x3438 0x9524
+0x3439 0x5782
+0x343A 0x6625
+0x343B 0x693F
+0x343C 0x9187
+0x343D 0x5507
+0x343E 0x6DF3
+0x343F 0x7EAF
+0x3440 0x8822
+0x3441 0x6233
+0x3442 0x7EF0
+0x3443 0x75B5
+0x3444 0x8328
+0x3445 0x78C1
+0x3446 0x96CC
+0x3447 0x8F9E
+0x3448 0x6148
+0x3449 0x74F7
+0x344A 0x8BCD
+0x344B 0x6B64
+0x344C 0x523A
+0x344D 0x8D50
+0x344E 0x6B21
+0x344F 0x806A
+0x3450 0x8471
+0x3451 0x56F1
+0x3452 0x5306
+0x3453 0x4ECE
+0x3454 0x4E1B
+0x3455 0x51D1
+0x3456 0x7C97
+0x3457 0x918B
+0x3458 0x7C07
+0x3459 0x4FC3
+0x345A 0x8E7F
+0x345B 0x7BE1
+0x345C 0x7A9C
+0x345D 0x6467
+0x345E 0x5D14
+0x345F 0x50AC
+0x3460 0x8106
+0x3461 0x7601
+0x3462 0x7CB9
+0x3463 0x6DEC
+0x3464 0x7FE0
+0x3465 0x6751
+0x3466 0x5B58
+0x3467 0x5BF8
+0x3468 0x78CB
+0x3469 0x64AE
+0x346A 0x6413
+0x346B 0x63AA
+0x346C 0x632B
+0x346D 0x9519
+0x346E 0x642D
+0x346F 0x8FBE
+0x3470 0x7B54
+0x3471 0x7629
+0x3472 0x6253
+0x3473 0x5927
+0x3474 0x5446
+0x3475 0x6B79
+0x3476 0x50A3
+0x3477 0x6234
+0x3478 0x5E26
+0x3479 0x6B86
+0x347A 0x4EE3
+0x347B 0x8D37
+0x347C 0x888B
+0x347D 0x5F85
+0x347E 0x902E
+0x3521 0x6020
+0x3522 0x803D
+0x3523 0x62C5
+0x3524 0x4E39
+0x3525 0x5355
+0x3526 0x90F8
+0x3527 0x63B8
+0x3528 0x80C6
+0x3529 0x65E6
+0x352A 0x6C2E
+0x352B 0x4F46
+0x352C 0x60EE
+0x352D 0x6DE1
+0x352E 0x8BDE
+0x352F 0x5F39
+0x3530 0x86CB
+0x3531 0x5F53
+0x3532 0x6321
+0x3533 0x515A
+0x3534 0x8361
+0x3535 0x6863
+0x3536 0x5200
+0x3537 0x6363
+0x3538 0x8E48
+0x3539 0x5012
+0x353A 0x5C9B
+0x353B 0x7977
+0x353C 0x5BFC
+0x353D 0x5230
+0x353E 0x7A3B
+0x353F 0x60BC
+0x3540 0x9053
+0x3541 0x76D7
+0x3542 0x5FB7
+0x3543 0x5F97
+0x3544 0x7684
+0x3545 0x8E6C
+0x3546 0x706F
+0x3547 0x767B
+0x3548 0x7B49
+0x3549 0x77AA
+0x354A 0x51F3
+0x354B 0x9093
+0x354C 0x5824
+0x354D 0x4F4E
+0x354E 0x6EF4
+0x354F 0x8FEA
+0x3550 0x654C
+0x3551 0x7B1B
+0x3552 0x72C4
+0x3553 0x6DA4
+0x3554 0x7FDF
+0x3555 0x5AE1
+0x3556 0x62B5
+0x3557 0x5E95
+0x3558 0x5730
+0x3559 0x8482
+0x355A 0x7B2C
+0x355B 0x5E1D
+0x355C 0x5F1F
+0x355D 0x9012
+0x355E 0x7F14
+0x355F 0x98A0
+0x3560 0x6382
+0x3561 0x6EC7
+0x3562 0x7898
+0x3563 0x70B9
+0x3564 0x5178
+0x3565 0x975B
+0x3566 0x57AB
+0x3567 0x7535
+0x3568 0x4F43
+0x3569 0x7538
+0x356A 0x5E97
+0x356B 0x60E6
+0x356C 0x5960
+0x356D 0x6DC0
+0x356E 0x6BBF
+0x356F 0x7889
+0x3570 0x53FC
+0x3571 0x96D5
+0x3572 0x51CB
+0x3573 0x5201
+0x3574 0x6389
+0x3575 0x540A
+0x3576 0x9493
+0x3577 0x8C03
+0x3578 0x8DCC
+0x3579 0x7239
+0x357A 0x789F
+0x357B 0x8776
+0x357C 0x8FED
+0x357D 0x8C0D
+0x357E 0x53E0
+0x3621 0x4E01
+0x3622 0x76EF
+0x3623 0x53EE
+0x3624 0x9489
+0x3625 0x9876
+0x3626 0x9F0E
+0x3627 0x952D
+0x3628 0x5B9A
+0x3629 0x8BA2
+0x362A 0x4E22
+0x362B 0x4E1C
+0x362C 0x51AC
+0x362D 0x8463
+0x362E 0x61C2
+0x362F 0x52A8
+0x3630 0x680B
+0x3631 0x4F97
+0x3632 0x606B
+0x3633 0x51BB
+0x3634 0x6D1E
+0x3635 0x515C
+0x3636 0x6296
+0x3637 0x6597
+0x3638 0x9661
+0x3639 0x8C46
+0x363A 0x9017
+0x363B 0x75D8
+0x363C 0x90FD
+0x363D 0x7763
+0x363E 0x6BD2
+0x363F 0x728A
+0x3640 0x72EC
+0x3641 0x8BFB
+0x3642 0x5835
+0x3643 0x7779
+0x3644 0x8D4C
+0x3645 0x675C
+0x3646 0x9540
+0x3647 0x809A
+0x3648 0x5EA6
+0x3649 0x6E21
+0x364A 0x5992
+0x364B 0x7AEF
+0x364C 0x77ED
+0x364D 0x953B
+0x364E 0x6BB5
+0x364F 0x65AD
+0x3650 0x7F0E
+0x3651 0x5806
+0x3652 0x5151
+0x3653 0x961F
+0x3654 0x5BF9
+0x3655 0x58A9
+0x3656 0x5428
+0x3657 0x8E72
+0x3658 0x6566
+0x3659 0x987F
+0x365A 0x56E4
+0x365B 0x949D
+0x365C 0x76FE
+0x365D 0x9041
+0x365E 0x6387
+0x365F 0x54C6
+0x3660 0x591A
+0x3661 0x593A
+0x3662 0x579B
+0x3663 0x8EB2
+0x3664 0x6735
+0x3665 0x8DFA
+0x3666 0x8235
+0x3667 0x5241
+0x3668 0x60F0
+0x3669 0x5815
+0x366A 0x86FE
+0x366B 0x5CE8
+0x366C 0x9E45
+0x366D 0x4FC4
+0x366E 0x989D
+0x366F 0x8BB9
+0x3670 0x5A25
+0x3671 0x6076
+0x3672 0x5384
+0x3673 0x627C
+0x3674 0x904F
+0x3675 0x9102
+0x3676 0x997F
+0x3677 0x6069
+0x3678 0x800C
+0x3679 0x513F
+0x367A 0x8033
+0x367B 0x5C14
+0x367C 0x9975
+0x367D 0x6D31
+0x367E 0x4E8C
+0x3721 0x8D30
+0x3722 0x53D1
+0x3723 0x7F5A
+0x3724 0x7B4F
+0x3725 0x4F10
+0x3726 0x4E4F
+0x3727 0x9600
+0x3728 0x6CD5
+0x3729 0x73D0
+0x372A 0x85E9
+0x372B 0x5E06
+0x372C 0x756A
+0x372D 0x7FFB
+0x372E 0x6A0A
+0x372F 0x77FE
+0x3730 0x9492
+0x3731 0x7E41
+0x3732 0x51E1
+0x3733 0x70E6
+0x3734 0x53CD
+0x3735 0x8FD4
+0x3736 0x8303
+0x3737 0x8D29
+0x3738 0x72AF
+0x3739 0x996D
+0x373A 0x6CDB
+0x373B 0x574A
+0x373C 0x82B3
+0x373D 0x65B9
+0x373E 0x80AA
+0x373F 0x623F
+0x3740 0x9632
+0x3741 0x59A8
+0x3742 0x4EFF
+0x3743 0x8BBF
+0x3744 0x7EBA
+0x3745 0x653E
+0x3746 0x83F2
+0x3747 0x975E
+0x3748 0x5561
+0x3749 0x98DE
+0x374A 0x80A5
+0x374B 0x532A
+0x374C 0x8BFD
+0x374D 0x5420
+0x374E 0x80BA
+0x374F 0x5E9F
+0x3750 0x6CB8
+0x3751 0x8D39
+0x3752 0x82AC
+0x3753 0x915A
+0x3754 0x5429
+0x3755 0x6C1B
+0x3756 0x5206
+0x3757 0x7EB7
+0x3758 0x575F
+0x3759 0x711A
+0x375A 0x6C7E
+0x375B 0x7C89
+0x375C 0x594B
+0x375D 0x4EFD
+0x375E 0x5FFF
+0x375F 0x6124
+0x3760 0x7CAA
+0x3761 0x4E30
+0x3762 0x5C01
+0x3763 0x67AB
+0x3764 0x8702
+0x3765 0x5CF0
+0x3766 0x950B
+0x3767 0x98CE
+0x3768 0x75AF
+0x3769 0x70FD
+0x376A 0x9022
+0x376B 0x51AF
+0x376C 0x7F1D
+0x376D 0x8BBD
+0x376E 0x5949
+0x376F 0x51E4
+0x3770 0x4F5B
+0x3771 0x5426
+0x3772 0x592B
+0x3773 0x6577
+0x3774 0x80A4
+0x3775 0x5B75
+0x3776 0x6276
+0x3777 0x62C2
+0x3778 0x8F90
+0x3779 0x5E45
+0x377A 0x6C1F
+0x377B 0x7B26
+0x377C 0x4F0F
+0x377D 0x4FD8
+0x377E 0x670D
+0x3821 0x6D6E
+0x3822 0x6DAA
+0x3823 0x798F
+0x3824 0x88B1
+0x3825 0x5F17
+0x3826 0x752B
+0x3827 0x629A
+0x3828 0x8F85
+0x3829 0x4FEF
+0x382A 0x91DC
+0x382B 0x65A7
+0x382C 0x812F
+0x382D 0x8151
+0x382E 0x5E9C
+0x382F 0x8150
+0x3830 0x8D74
+0x3831 0x526F
+0x3832 0x8986
+0x3833 0x8D4B
+0x3834 0x590D
+0x3835 0x5085
+0x3836 0x4ED8
+0x3837 0x961C
+0x3838 0x7236
+0x3839 0x8179
+0x383A 0x8D1F
+0x383B 0x5BCC
+0x383C 0x8BA3
+0x383D 0x9644
+0x383E 0x5987
+0x383F 0x7F1A
+0x3840 0x5490
+0x3841 0x5676
+0x3842 0x560E
+0x3843 0x8BE5
+0x3844 0x6539
+0x3845 0x6982
+0x3846 0x9499
+0x3847 0x76D6
+0x3848 0x6E89
+0x3849 0x5E72
+0x384A 0x7518
+0x384B 0x6746
+0x384C 0x67D1
+0x384D 0x7AFF
+0x384E 0x809D
+0x384F 0x8D76
+0x3850 0x611F
+0x3851 0x79C6
+0x3852 0x6562
+0x3853 0x8D63
+0x3854 0x5188
+0x3855 0x521A
+0x3856 0x94A2
+0x3857 0x7F38
+0x3858 0x809B
+0x3859 0x7EB2
+0x385A 0x5C97
+0x385B 0x6E2F
+0x385C 0x6760
+0x385D 0x7BD9
+0x385E 0x768B
+0x385F 0x9AD8
+0x3860 0x818F
+0x3861 0x7F94
+0x3862 0x7CD5
+0x3863 0x641E
+0x3864 0x9550
+0x3865 0x7A3F
+0x3866 0x544A
+0x3867 0x54E5
+0x3868 0x6B4C
+0x3869 0x6401
+0x386A 0x6208
+0x386B 0x9E3D
+0x386C 0x80F3
+0x386D 0x7599
+0x386E 0x5272
+0x386F 0x9769
+0x3870 0x845B
+0x3871 0x683C
+0x3872 0x86E4
+0x3873 0x9601
+0x3874 0x9694
+0x3875 0x94EC
+0x3876 0x4E2A
+0x3877 0x5404
+0x3878 0x7ED9
+0x3879 0x6839
+0x387A 0x8DDF
+0x387B 0x8015
+0x387C 0x66F4
+0x387D 0x5E9A
+0x387E 0x7FB9
+0x3921 0x57C2
+0x3922 0x803F
+0x3923 0x6897
+0x3924 0x5DE5
+0x3925 0x653B
+0x3926 0x529F
+0x3927 0x606D
+0x3928 0x9F9A
+0x3929 0x4F9B
+0x392A 0x8EAC
+0x392B 0x516C
+0x392C 0x5BAB
+0x392D 0x5F13
+0x392E 0x5DE9
+0x392F 0x6C5E
+0x3930 0x62F1
+0x3931 0x8D21
+0x3932 0x5171
+0x3933 0x94A9
+0x3934 0x52FE
+0x3935 0x6C9F
+0x3936 0x82DF
+0x3937 0x72D7
+0x3938 0x57A2
+0x3939 0x6784
+0x393A 0x8D2D
+0x393B 0x591F
+0x393C 0x8F9C
+0x393D 0x83C7
+0x393E 0x5495
+0x393F 0x7B8D
+0x3940 0x4F30
+0x3941 0x6CBD
+0x3942 0x5B64
+0x3943 0x59D1
+0x3944 0x9F13
+0x3945 0x53E4
+0x3946 0x86CA
+0x3947 0x9AA8
+0x3948 0x8C37
+0x3949 0x80A1
+0x394A 0x6545
+0x394B 0x987E
+0x394C 0x56FA
+0x394D 0x96C7
+0x394E 0x522E
+0x394F 0x74DC
+0x3950 0x5250
+0x3951 0x5BE1
+0x3952 0x6302
+0x3953 0x8902
+0x3954 0x4E56
+0x3955 0x62D0
+0x3956 0x602A
+0x3957 0x68FA
+0x3958 0x5173
+0x3959 0x5B98
+0x395A 0x51A0
+0x395B 0x89C2
+0x395C 0x7BA1
+0x395D 0x9986
+0x395E 0x7F50
+0x395F 0x60EF
+0x3960 0x704C
+0x3961 0x8D2F
+0x3962 0x5149
+0x3963 0x5E7F
+0x3964 0x901B
+0x3965 0x7470
+0x3966 0x89C4
+0x3967 0x572D
+0x3968 0x7845
+0x3969 0x5F52
+0x396A 0x9F9F
+0x396B 0x95FA
+0x396C 0x8F68
+0x396D 0x9B3C
+0x396E 0x8BE1
+0x396F 0x7678
+0x3970 0x6842
+0x3971 0x67DC
+0x3972 0x8DEA
+0x3973 0x8D35
+0x3974 0x523D
+0x3975 0x8F8A
+0x3976 0x6EDA
+0x3977 0x68CD
+0x3978 0x9505
+0x3979 0x90ED
+0x397A 0x56FD
+0x397B 0x679C
+0x397C 0x88F9
+0x397D 0x8FC7
+0x397E 0x54C8
+0x3A21 0x9AB8
+0x3A22 0x5B69
+0x3A23 0x6D77
+0x3A24 0x6C26
+0x3A25 0x4EA5
+0x3A26 0x5BB3
+0x3A27 0x9A87
+0x3A28 0x9163
+0x3A29 0x61A8
+0x3A2A 0x90AF
+0x3A2B 0x97E9
+0x3A2C 0x542B
+0x3A2D 0x6DB5
+0x3A2E 0x5BD2
+0x3A2F 0x51FD
+0x3A30 0x558A
+0x3A31 0x7F55
+0x3A32 0x7FF0
+0x3A33 0x64BC
+0x3A34 0x634D
+0x3A35 0x65F1
+0x3A36 0x61BE
+0x3A37 0x608D
+0x3A38 0x710A
+0x3A39 0x6C57
+0x3A3A 0x6C49
+0x3A3B 0x592F
+0x3A3C 0x676D
+0x3A3D 0x822A
+0x3A3E 0x58D5
+0x3A3F 0x568E
+0x3A40 0x8C6A
+0x3A41 0x6BEB
+0x3A42 0x90DD
+0x3A43 0x597D
+0x3A44 0x8017
+0x3A45 0x53F7
+0x3A46 0x6D69
+0x3A47 0x5475
+0x3A48 0x559D
+0x3A49 0x8377
+0x3A4A 0x83CF
+0x3A4B 0x6838
+0x3A4C 0x79BE
+0x3A4D 0x548C
+0x3A4E 0x4F55
+0x3A4F 0x5408
+0x3A50 0x76D2
+0x3A51 0x8C89
+0x3A52 0x9602
+0x3A53 0x6CB3
+0x3A54 0x6DB8
+0x3A55 0x8D6B
+0x3A56 0x8910
+0x3A57 0x9E64
+0x3A58 0x8D3A
+0x3A59 0x563F
+0x3A5A 0x9ED1
+0x3A5B 0x75D5
+0x3A5C 0x5F88
+0x3A5D 0x72E0
+0x3A5E 0x6068
+0x3A5F 0x54FC
+0x3A60 0x4EA8
+0x3A61 0x6A2A
+0x3A62 0x8861
+0x3A63 0x6052
+0x3A64 0x8F70
+0x3A65 0x54C4
+0x3A66 0x70D8
+0x3A67 0x8679
+0x3A68 0x9E3F
+0x3A69 0x6D2A
+0x3A6A 0x5B8F
+0x3A6B 0x5F18
+0x3A6C 0x7EA2
+0x3A6D 0x5589
+0x3A6E 0x4FAF
+0x3A6F 0x7334
+0x3A70 0x543C
+0x3A71 0x539A
+0x3A72 0x5019
+0x3A73 0x540E
+0x3A74 0x547C
+0x3A75 0x4E4E
+0x3A76 0x5FFD
+0x3A77 0x745A
+0x3A78 0x58F6
+0x3A79 0x846B
+0x3A7A 0x80E1
+0x3A7B 0x8774
+0x3A7C 0x72D0
+0x3A7D 0x7CCA
+0x3A7E 0x6E56
+0x3B21 0x5F27
+0x3B22 0x864E
+0x3B23 0x552C
+0x3B24 0x62A4
+0x3B25 0x4E92
+0x3B26 0x6CAA
+0x3B27 0x6237
+0x3B28 0x82B1
+0x3B29 0x54D7
+0x3B2A 0x534E
+0x3B2B 0x733E
+0x3B2C 0x6ED1
+0x3B2D 0x753B
+0x3B2E 0x5212
+0x3B2F 0x5316
+0x3B30 0x8BDD
+0x3B31 0x69D0
+0x3B32 0x5F8A
+0x3B33 0x6000
+0x3B34 0x6DEE
+0x3B35 0x574F
+0x3B36 0x6B22
+0x3B37 0x73AF
+0x3B38 0x6853
+0x3B39 0x8FD8
+0x3B3A 0x7F13
+0x3B3B 0x6362
+0x3B3C 0x60A3
+0x3B3D 0x5524
+0x3B3E 0x75EA
+0x3B3F 0x8C62
+0x3B40 0x7115
+0x3B41 0x6DA3
+0x3B42 0x5BA6
+0x3B43 0x5E7B
+0x3B44 0x8352
+0x3B45 0x614C
+0x3B46 0x9EC4
+0x3B47 0x78FA
+0x3B48 0x8757
+0x3B49 0x7C27
+0x3B4A 0x7687
+0x3B4B 0x51F0
+0x3B4C 0x60F6
+0x3B4D 0x714C
+0x3B4E 0x6643
+0x3B4F 0x5E4C
+0x3B50 0x604D
+0x3B51 0x8C0E
+0x3B52 0x7070
+0x3B53 0x6325
+0x3B54 0x8F89
+0x3B55 0x5FBD
+0x3B56 0x6062
+0x3B57 0x86D4
+0x3B58 0x56DE
+0x3B59 0x6BC1
+0x3B5A 0x6094
+0x3B5B 0x6167
+0x3B5C 0x5349
+0x3B5D 0x60E0
+0x3B5E 0x6666
+0x3B5F 0x8D3F
+0x3B60 0x79FD
+0x3B61 0x4F1A
+0x3B62 0x70E9
+0x3B63 0x6C47
+0x3B64 0x8BB3
+0x3B65 0x8BF2
+0x3B66 0x7ED8
+0x3B67 0x8364
+0x3B68 0x660F
+0x3B69 0x5A5A
+0x3B6A 0x9B42
+0x3B6B 0x6D51
+0x3B6C 0x6DF7
+0x3B6D 0x8C41
+0x3B6E 0x6D3B
+0x3B6F 0x4F19
+0x3B70 0x706B
+0x3B71 0x83B7
+0x3B72 0x6216
+0x3B73 0x60D1
+0x3B74 0x970D
+0x3B75 0x8D27
+0x3B76 0x7978
+0x3B77 0x51FB
+0x3B78 0x573E
+0x3B79 0x57FA
+0x3B7A 0x673A
+0x3B7B 0x7578
+0x3B7C 0x7A3D
+0x3B7D 0x79EF
+0x3B7E 0x7B95
+0x3C21 0x808C
+0x3C22 0x9965
+0x3C23 0x8FF9
+0x3C24 0x6FC0
+0x3C25 0x8BA5
+0x3C26 0x9E21
+0x3C27 0x59EC
+0x3C28 0x7EE9
+0x3C29 0x7F09
+0x3C2A 0x5409
+0x3C2B 0x6781
+0x3C2C 0x68D8
+0x3C2D 0x8F91
+0x3C2E 0x7C4D
+0x3C2F 0x96C6
+0x3C30 0x53CA
+0x3C31 0x6025
+0x3C32 0x75BE
+0x3C33 0x6C72
+0x3C34 0x5373
+0x3C35 0x5AC9
+0x3C36 0x7EA7
+0x3C37 0x6324
+0x3C38 0x51E0
+0x3C39 0x810A
+0x3C3A 0x5DF1
+0x3C3B 0x84DF
+0x3C3C 0x6280
+0x3C3D 0x5180
+0x3C3E 0x5B63
+0x3C3F 0x4F0E
+0x3C40 0x796D
+0x3C41 0x5242
+0x3C42 0x60B8
+0x3C43 0x6D4E
+0x3C44 0x5BC4
+0x3C45 0x5BC2
+0x3C46 0x8BA1
+0x3C47 0x8BB0
+0x3C48 0x65E2
+0x3C49 0x5FCC
+0x3C4A 0x9645
+0x3C4B 0x5993
+0x3C4C 0x7EE7
+0x3C4D 0x7EAA
+0x3C4E 0x5609
+0x3C4F 0x67B7
+0x3C50 0x5939
+0x3C51 0x4F73
+0x3C52 0x5BB6
+0x3C53 0x52A0
+0x3C54 0x835A
+0x3C55 0x988A
+0x3C56 0x8D3E
+0x3C57 0x7532
+0x3C58 0x94BE
+0x3C59 0x5047
+0x3C5A 0x7A3C
+0x3C5B 0x4EF7
+0x3C5C 0x67B6
+0x3C5D 0x9A7E
+0x3C5E 0x5AC1
+0x3C5F 0x6B7C
+0x3C60 0x76D1
+0x3C61 0x575A
+0x3C62 0x5C16
+0x3C63 0x7B3A
+0x3C64 0x95F4
+0x3C65 0x714E
+0x3C66 0x517C
+0x3C67 0x80A9
+0x3C68 0x8270
+0x3C69 0x5978
+0x3C6A 0x7F04
+0x3C6B 0x8327
+0x3C6C 0x68C0
+0x3C6D 0x67EC
+0x3C6E 0x78B1
+0x3C6F 0x7877
+0x3C70 0x62E3
+0x3C71 0x6361
+0x3C72 0x7B80
+0x3C73 0x4FED
+0x3C74 0x526A
+0x3C75 0x51CF
+0x3C76 0x8350
+0x3C77 0x69DB
+0x3C78 0x9274
+0x3C79 0x8DF5
+0x3C7A 0x8D31
+0x3C7B 0x89C1
+0x3C7C 0x952E
+0x3C7D 0x7BAD
+0x3C7E 0x4EF6
+0x3D21 0x5065
+0x3D22 0x8230
+0x3D23 0x5251
+0x3D24 0x996F
+0x3D25 0x6E10
+0x3D26 0x6E85
+0x3D27 0x6DA7
+0x3D28 0x5EFA
+0x3D29 0x50F5
+0x3D2A 0x59DC
+0x3D2B 0x5C06
+0x3D2C 0x6D46
+0x3D2D 0x6C5F
+0x3D2E 0x7586
+0x3D2F 0x848B
+0x3D30 0x6868
+0x3D31 0x5956
+0x3D32 0x8BB2
+0x3D33 0x5320
+0x3D34 0x9171
+0x3D35 0x964D
+0x3D36 0x8549
+0x3D37 0x6912
+0x3D38 0x7901
+0x3D39 0x7126
+0x3D3A 0x80F6
+0x3D3B 0x4EA4
+0x3D3C 0x90CA
+0x3D3D 0x6D47
+0x3D3E 0x9A84
+0x3D3F 0x5A07
+0x3D40 0x56BC
+0x3D41 0x6405
+0x3D42 0x94F0
+0x3D43 0x77EB
+0x3D44 0x4FA5
+0x3D45 0x811A
+0x3D46 0x72E1
+0x3D47 0x89D2
+0x3D48 0x997A
+0x3D49 0x7F34
+0x3D4A 0x7EDE
+0x3D4B 0x527F
+0x3D4C 0x6559
+0x3D4D 0x9175
+0x3D4E 0x8F7F
+0x3D4F 0x8F83
+0x3D50 0x53EB
+0x3D51 0x7A96
+0x3D52 0x63ED
+0x3D53 0x63A5
+0x3D54 0x7686
+0x3D55 0x79F8
+0x3D56 0x8857
+0x3D57 0x9636
+0x3D58 0x622A
+0x3D59 0x52AB
+0x3D5A 0x8282
+0x3D5B 0x6854
+0x3D5C 0x6770
+0x3D5D 0x6377
+0x3D5E 0x776B
+0x3D5F 0x7AED
+0x3D60 0x6D01
+0x3D61 0x7ED3
+0x3D62 0x89E3
+0x3D63 0x59D0
+0x3D64 0x6212
+0x3D65 0x85C9
+0x3D66 0x82A5
+0x3D67 0x754C
+0x3D68 0x501F
+0x3D69 0x4ECB
+0x3D6A 0x75A5
+0x3D6B 0x8BEB
+0x3D6C 0x5C4A
+0x3D6D 0x5DFE
+0x3D6E 0x7B4B
+0x3D6F 0x65A4
+0x3D70 0x91D1
+0x3D71 0x4ECA
+0x3D72 0x6D25
+0x3D73 0x895F
+0x3D74 0x7D27
+0x3D75 0x9526
+0x3D76 0x4EC5
+0x3D77 0x8C28
+0x3D78 0x8FDB
+0x3D79 0x9773
+0x3D7A 0x664B
+0x3D7B 0x7981
+0x3D7C 0x8FD1
+0x3D7D 0x70EC
+0x3D7E 0x6D78
+0x3E21 0x5C3D
+0x3E22 0x52B2
+0x3E23 0x8346
+0x3E24 0x5162
+0x3E25 0x830E
+0x3E26 0x775B
+0x3E27 0x6676
+0x3E28 0x9CB8
+0x3E29 0x4EAC
+0x3E2A 0x60CA
+0x3E2B 0x7CBE
+0x3E2C 0x7CB3
+0x3E2D 0x7ECF
+0x3E2E 0x4E95
+0x3E2F 0x8B66
+0x3E30 0x666F
+0x3E31 0x9888
+0x3E32 0x9759
+0x3E33 0x5883
+0x3E34 0x656C
+0x3E35 0x955C
+0x3E36 0x5F84
+0x3E37 0x75C9
+0x3E38 0x9756
+0x3E39 0x7ADF
+0x3E3A 0x7ADE
+0x3E3B 0x51C0
+0x3E3C 0x70AF
+0x3E3D 0x7A98
+0x3E3E 0x63EA
+0x3E3F 0x7A76
+0x3E40 0x7EA0
+0x3E41 0x7396
+0x3E42 0x97ED
+0x3E43 0x4E45
+0x3E44 0x7078
+0x3E45 0x4E5D
+0x3E46 0x9152
+0x3E47 0x53A9
+0x3E48 0x6551
+0x3E49 0x65E7
+0x3E4A 0x81FC
+0x3E4B 0x8205
+0x3E4C 0x548E
+0x3E4D 0x5C31
+0x3E4E 0x759A
+0x3E4F 0x97A0
+0x3E50 0x62D8
+0x3E51 0x72D9
+0x3E52 0x75BD
+0x3E53 0x5C45
+0x3E54 0x9A79
+0x3E55 0x83CA
+0x3E56 0x5C40
+0x3E57 0x5480
+0x3E58 0x77E9
+0x3E59 0x4E3E
+0x3E5A 0x6CAE
+0x3E5B 0x805A
+0x3E5C 0x62D2
+0x3E5D 0x636E
+0x3E5E 0x5DE8
+0x3E5F 0x5177
+0x3E60 0x8DDD
+0x3E61 0x8E1E
+0x3E62 0x952F
+0x3E63 0x4FF1
+0x3E64 0x53E5
+0x3E65 0x60E7
+0x3E66 0x70AC
+0x3E67 0x5267
+0x3E68 0x6350
+0x3E69 0x9E43
+0x3E6A 0x5A1F
+0x3E6B 0x5026
+0x3E6C 0x7737
+0x3E6D 0x5377
+0x3E6E 0x7EE2
+0x3E6F 0x6485
+0x3E70 0x652B
+0x3E71 0x6289
+0x3E72 0x6398
+0x3E73 0x5014
+0x3E74 0x7235
+0x3E75 0x89C9
+0x3E76 0x51B3
+0x3E77 0x8BC0
+0x3E78 0x7EDD
+0x3E79 0x5747
+0x3E7A 0x83CC
+0x3E7B 0x94A7
+0x3E7C 0x519B
+0x3E7D 0x541B
+0x3E7E 0x5CFB
+0x3F21 0x4FCA
+0x3F22 0x7AE3
+0x3F23 0x6D5A
+0x3F24 0x90E1
+0x3F25 0x9A8F
+0x3F26 0x5580
+0x3F27 0x5496
+0x3F28 0x5361
+0x3F29 0x54AF
+0x3F2A 0x5F00
+0x3F2B 0x63E9
+0x3F2C 0x6977
+0x3F2D 0x51EF
+0x3F2E 0x6168
+0x3F2F 0x520A
+0x3F30 0x582A
+0x3F31 0x52D8
+0x3F32 0x574E
+0x3F33 0x780D
+0x3F34 0x770B
+0x3F35 0x5EB7
+0x3F36 0x6177
+0x3F37 0x7CE0
+0x3F38 0x625B
+0x3F39 0x6297
+0x3F3A 0x4EA2
+0x3F3B 0x7095
+0x3F3C 0x8003
+0x3F3D 0x62F7
+0x3F3E 0x70E4
+0x3F3F 0x9760
+0x3F40 0x5777
+0x3F41 0x82DB
+0x3F42 0x67EF
+0x3F43 0x68F5
+0x3F44 0x78D5
+0x3F45 0x9897
+0x3F46 0x79D1
+0x3F47 0x58F3
+0x3F48 0x54B3
+0x3F49 0x53EF
+0x3F4A 0x6E34
+0x3F4B 0x514B
+0x3F4C 0x523B
+0x3F4D 0x5BA2
+0x3F4E 0x8BFE
+0x3F4F 0x80AF
+0x3F50 0x5543
+0x3F51 0x57A6
+0x3F52 0x6073
+0x3F53 0x5751
+0x3F54 0x542D
+0x3F55 0x7A7A
+0x3F56 0x6050
+0x3F57 0x5B54
+0x3F58 0x63A7
+0x3F59 0x62A0
+0x3F5A 0x53E3
+0x3F5B 0x6263
+0x3F5C 0x5BC7
+0x3F5D 0x67AF
+0x3F5E 0x54ED
+0x3F5F 0x7A9F
+0x3F60 0x82E6
+0x3F61 0x9177
+0x3F62 0x5E93
+0x3F63 0x88E4
+0x3F64 0x5938
+0x3F65 0x57AE
+0x3F66 0x630E
+0x3F67 0x8DE8
+0x3F68 0x80EF
+0x3F69 0x5757
+0x3F6A 0x7B77
+0x3F6B 0x4FA9
+0x3F6C 0x5FEB
+0x3F6D 0x5BBD
+0x3F6E 0x6B3E
+0x3F6F 0x5321
+0x3F70 0x7B50
+0x3F71 0x72C2
+0x3F72 0x6846
+0x3F73 0x77FF
+0x3F74 0x7736
+0x3F75 0x65F7
+0x3F76 0x51B5
+0x3F77 0x4E8F
+0x3F78 0x76D4
+0x3F79 0x5CBF
+0x3F7A 0x7AA5
+0x3F7B 0x8475
+0x3F7C 0x594E
+0x3F7D 0x9B41
+0x3F7E 0x5080
+0x4021 0x9988
+0x4022 0x6127
+0x4023 0x6E83
+0x4024 0x5764
+0x4025 0x6606
+0x4026 0x6346
+0x4027 0x56F0
+0x4028 0x62EC
+0x4029 0x6269
+0x402A 0x5ED3
+0x402B 0x9614
+0x402C 0x5783
+0x402D 0x62C9
+0x402E 0x5587
+0x402F 0x8721
+0x4030 0x814A
+0x4031 0x8FA3
+0x4032 0x5566
+0x4033 0x83B1
+0x4034 0x6765
+0x4035 0x8D56
+0x4036 0x84DD
+0x4037 0x5A6A
+0x4038 0x680F
+0x4039 0x62E6
+0x403A 0x7BEE
+0x403B 0x9611
+0x403C 0x5170
+0x403D 0x6F9C
+0x403E 0x8C30
+0x403F 0x63FD
+0x4040 0x89C8
+0x4041 0x61D2
+0x4042 0x7F06
+0x4043 0x70C2
+0x4044 0x6EE5
+0x4045 0x7405
+0x4046 0x6994
+0x4047 0x72FC
+0x4048 0x5ECA
+0x4049 0x90CE
+0x404A 0x6717
+0x404B 0x6D6A
+0x404C 0x635E
+0x404D 0x52B3
+0x404E 0x7262
+0x404F 0x8001
+0x4050 0x4F6C
+0x4051 0x59E5
+0x4052 0x916A
+0x4053 0x70D9
+0x4054 0x6D9D
+0x4055 0x52D2
+0x4056 0x4E50
+0x4057 0x96F7
+0x4058 0x956D
+0x4059 0x857E
+0x405A 0x78CA
+0x405B 0x7D2F
+0x405C 0x5121
+0x405D 0x5792
+0x405E 0x64C2
+0x405F 0x808B
+0x4060 0x7C7B
+0x4061 0x6CEA
+0x4062 0x68F1
+0x4063 0x695E
+0x4064 0x51B7
+0x4065 0x5398
+0x4066 0x68A8
+0x4067 0x7281
+0x4068 0x9ECE
+0x4069 0x7BF1
+0x406A 0x72F8
+0x406B 0x79BB
+0x406C 0x6F13
+0x406D 0x7406
+0x406E 0x674E
+0x406F 0x91CC
+0x4070 0x9CA4
+0x4071 0x793C
+0x4072 0x8389
+0x4073 0x8354
+0x4074 0x540F
+0x4075 0x6817
+0x4076 0x4E3D
+0x4077 0x5389
+0x4078 0x52B1
+0x4079 0x783E
+0x407A 0x5386
+0x407B 0x5229
+0x407C 0x5088
+0x407D 0x4F8B
+0x407E 0x4FD0
+0x4121 0x75E2
+0x4122 0x7ACB
+0x4123 0x7C92
+0x4124 0x6CA5
+0x4125 0x96B6
+0x4126 0x529B
+0x4127 0x7483
+0x4128 0x54E9
+0x4129 0x4FE9
+0x412A 0x8054
+0x412B 0x83B2
+0x412C 0x8FDE
+0x412D 0x9570
+0x412E 0x5EC9
+0x412F 0x601C
+0x4130 0x6D9F
+0x4131 0x5E18
+0x4132 0x655B
+0x4133 0x8138
+0x4134 0x94FE
+0x4135 0x604B
+0x4136 0x70BC
+0x4137 0x7EC3
+0x4138 0x7CAE
+0x4139 0x51C9
+0x413A 0x6881
+0x413B 0x7CB1
+0x413C 0x826F
+0x413D 0x4E24
+0x413E 0x8F86
+0x413F 0x91CF
+0x4140 0x667E
+0x4141 0x4EAE
+0x4142 0x8C05
+0x4143 0x64A9
+0x4144 0x804A
+0x4145 0x50DA
+0x4146 0x7597
+0x4147 0x71CE
+0x4148 0x5BE5
+0x4149 0x8FBD
+0x414A 0x6F66
+0x414B 0x4E86
+0x414C 0x6482
+0x414D 0x9563
+0x414E 0x5ED6
+0x414F 0x6599
+0x4150 0x5217
+0x4151 0x88C2
+0x4152 0x70C8
+0x4153 0x52A3
+0x4154 0x730E
+0x4155 0x7433
+0x4156 0x6797
+0x4157 0x78F7
+0x4158 0x9716
+0x4159 0x4E34
+0x415A 0x90BB
+0x415B 0x9CDE
+0x415C 0x6DCB
+0x415D 0x51DB
+0x415E 0x8D41
+0x415F 0x541D
+0x4160 0x62CE
+0x4161 0x73B2
+0x4162 0x83F1
+0x4163 0x96F6
+0x4164 0x9F84
+0x4165 0x94C3
+0x4166 0x4F36
+0x4167 0x7F9A
+0x4168 0x51CC
+0x4169 0x7075
+0x416A 0x9675
+0x416B 0x5CAD
+0x416C 0x9886
+0x416D 0x53E6
+0x416E 0x4EE4
+0x416F 0x6E9C
+0x4170 0x7409
+0x4171 0x69B4
+0x4172 0x786B
+0x4173 0x998F
+0x4174 0x7559
+0x4175 0x5218
+0x4176 0x7624
+0x4177 0x6D41
+0x4178 0x67F3
+0x4179 0x516D
+0x417A 0x9F99
+0x417B 0x804B
+0x417C 0x5499
+0x417D 0x7B3C
+0x417E 0x7ABF
+0x4221 0x9686
+0x4222 0x5784
+0x4223 0x62E2
+0x4224 0x9647
+0x4225 0x697C
+0x4226 0x5A04
+0x4227 0x6402
+0x4228 0x7BD3
+0x4229 0x6F0F
+0x422A 0x964B
+0x422B 0x82A6
+0x422C 0x5362
+0x422D 0x9885
+0x422E 0x5E90
+0x422F 0x7089
+0x4230 0x63B3
+0x4231 0x5364
+0x4232 0x864F
+0x4233 0x9C81
+0x4234 0x9E93
+0x4235 0x788C
+0x4236 0x9732
+0x4237 0x8DEF
+0x4238 0x8D42
+0x4239 0x9E7F
+0x423A 0x6F5E
+0x423B 0x7984
+0x423C 0x5F55
+0x423D 0x9646
+0x423E 0x622E
+0x423F 0x9A74
+0x4240 0x5415
+0x4241 0x94DD
+0x4242 0x4FA3
+0x4243 0x65C5
+0x4244 0x5C65
+0x4245 0x5C61
+0x4246 0x7F15
+0x4247 0x8651
+0x4248 0x6C2F
+0x4249 0x5F8B
+0x424A 0x7387
+0x424B 0x6EE4
+0x424C 0x7EFF
+0x424D 0x5CE6
+0x424E 0x631B
+0x424F 0x5B6A
+0x4250 0x6EE6
+0x4251 0x5375
+0x4252 0x4E71
+0x4253 0x63A0
+0x4254 0x7565
+0x4255 0x62A1
+0x4256 0x8F6E
+0x4257 0x4F26
+0x4258 0x4ED1
+0x4259 0x6CA6
+0x425A 0x7EB6
+0x425B 0x8BBA
+0x425C 0x841D
+0x425D 0x87BA
+0x425E 0x7F57
+0x425F 0x903B
+0x4260 0x9523
+0x4261 0x7BA9
+0x4262 0x9AA1
+0x4263 0x88F8
+0x4264 0x843D
+0x4265 0x6D1B
+0x4266 0x9A86
+0x4267 0x7EDC
+0x4268 0x5988
+0x4269 0x9EBB
+0x426A 0x739B
+0x426B 0x7801
+0x426C 0x8682
+0x426D 0x9A6C
+0x426E 0x9A82
+0x426F 0x561B
+0x4270 0x5417
+0x4271 0x57CB
+0x4272 0x4E70
+0x4273 0x9EA6
+0x4274 0x5356
+0x4275 0x8FC8
+0x4276 0x8109
+0x4277 0x7792
+0x4278 0x9992
+0x4279 0x86EE
+0x427A 0x6EE1
+0x427B 0x8513
+0x427C 0x66FC
+0x427D 0x6162
+0x427E 0x6F2B
+0x4321 0x8C29
+0x4322 0x8292
+0x4323 0x832B
+0x4324 0x76F2
+0x4325 0x6C13
+0x4326 0x5FD9
+0x4327 0x83BD
+0x4328 0x732B
+0x4329 0x8305
+0x432A 0x951A
+0x432B 0x6BDB
+0x432C 0x77DB
+0x432D 0x94C6
+0x432E 0x536F
+0x432F 0x8302
+0x4330 0x5192
+0x4331 0x5E3D
+0x4332 0x8C8C
+0x4333 0x8D38
+0x4334 0x4E48
+0x4335 0x73AB
+0x4336 0x679A
+0x4337 0x6885
+0x4338 0x9176
+0x4339 0x9709
+0x433A 0x7164
+0x433B 0x6CA1
+0x433C 0x7709
+0x433D 0x5A92
+0x433E 0x9541
+0x433F 0x6BCF
+0x4340 0x7F8E
+0x4341 0x6627
+0x4342 0x5BD0
+0x4343 0x59B9
+0x4344 0x5A9A
+0x4345 0x95E8
+0x4346 0x95F7
+0x4347 0x4EEC
+0x4348 0x840C
+0x4349 0x8499
+0x434A 0x6AAC
+0x434B 0x76DF
+0x434C 0x9530
+0x434D 0x731B
+0x434E 0x68A6
+0x434F 0x5B5F
+0x4350 0x772F
+0x4351 0x919A
+0x4352 0x9761
+0x4353 0x7CDC
+0x4354 0x8FF7
+0x4355 0x8C1C
+0x4356 0x5F25
+0x4357 0x7C73
+0x4358 0x79D8
+0x4359 0x89C5
+0x435A 0x6CCC
+0x435B 0x871C
+0x435C 0x5BC6
+0x435D 0x5E42
+0x435E 0x68C9
+0x435F 0x7720
+0x4360 0x7EF5
+0x4361 0x5195
+0x4362 0x514D
+0x4363 0x52C9
+0x4364 0x5A29
+0x4365 0x7F05
+0x4366 0x9762
+0x4367 0x82D7
+0x4368 0x63CF
+0x4369 0x7784
+0x436A 0x85D0
+0x436B 0x79D2
+0x436C 0x6E3A
+0x436D 0x5E99
+0x436E 0x5999
+0x436F 0x8511
+0x4370 0x706D
+0x4371 0x6C11
+0x4372 0x62BF
+0x4373 0x76BF
+0x4374 0x654F
+0x4375 0x60AF
+0x4376 0x95FD
+0x4377 0x660E
+0x4378 0x879F
+0x4379 0x9E23
+0x437A 0x94ED
+0x437B 0x540D
+0x437C 0x547D
+0x437D 0x8C2C
+0x437E 0x6478
+0x4421 0x6479
+0x4422 0x8611
+0x4423 0x6A21
+0x4424 0x819C
+0x4425 0x78E8
+0x4426 0x6469
+0x4427 0x9B54
+0x4428 0x62B9
+0x4429 0x672B
+0x442A 0x83AB
+0x442B 0x58A8
+0x442C 0x9ED8
+0x442D 0x6CAB
+0x442E 0x6F20
+0x442F 0x5BDE
+0x4430 0x964C
+0x4431 0x8C0B
+0x4432 0x725F
+0x4433 0x67D0
+0x4434 0x62C7
+0x4435 0x7261
+0x4436 0x4EA9
+0x4437 0x59C6
+0x4438 0x6BCD
+0x4439 0x5893
+0x443A 0x66AE
+0x443B 0x5E55
+0x443C 0x52DF
+0x443D 0x6155
+0x443E 0x6728
+0x443F 0x76EE
+0x4440 0x7766
+0x4441 0x7267
+0x4442 0x7A46
+0x4443 0x62FF
+0x4444 0x54EA
+0x4445 0x5450
+0x4446 0x94A0
+0x4447 0x90A3
+0x4448 0x5A1C
+0x4449 0x7EB3
+0x444A 0x6C16
+0x444B 0x4E43
+0x444C 0x5976
+0x444D 0x8010
+0x444E 0x5948
+0x444F 0x5357
+0x4450 0x7537
+0x4451 0x96BE
+0x4452 0x56CA
+0x4453 0x6320
+0x4454 0x8111
+0x4455 0x607C
+0x4456 0x95F9
+0x4457 0x6DD6
+0x4458 0x5462
+0x4459 0x9981
+0x445A 0x5185
+0x445B 0x5AE9
+0x445C 0x80FD
+0x445D 0x59AE
+0x445E 0x9713
+0x445F 0x502A
+0x4460 0x6CE5
+0x4461 0x5C3C
+0x4462 0x62DF
+0x4463 0x4F60
+0x4464 0x533F
+0x4465 0x817B
+0x4466 0x9006
+0x4467 0x6EBA
+0x4468 0x852B
+0x4469 0x62C8
+0x446A 0x5E74
+0x446B 0x78BE
+0x446C 0x64B5
+0x446D 0x637B
+0x446E 0x5FF5
+0x446F 0x5A18
+0x4470 0x917F
+0x4471 0x9E1F
+0x4472 0x5C3F
+0x4473 0x634F
+0x4474 0x8042
+0x4475 0x5B7D
+0x4476 0x556E
+0x4477 0x954A
+0x4478 0x954D
+0x4479 0x6D85
+0x447A 0x60A8
+0x447B 0x67E0
+0x447C 0x72DE
+0x447D 0x51DD
+0x447E 0x5B81
+0x4521 0x62E7
+0x4522 0x6CDE
+0x4523 0x725B
+0x4524 0x626D
+0x4525 0x94AE
+0x4526 0x7EBD
+0x4527 0x8113
+0x4528 0x6D53
+0x4529 0x519C
+0x452A 0x5F04
+0x452B 0x5974
+0x452C 0x52AA
+0x452D 0x6012
+0x452E 0x5973
+0x452F 0x6696
+0x4530 0x8650
+0x4531 0x759F
+0x4532 0x632A
+0x4533 0x61E6
+0x4534 0x7CEF
+0x4535 0x8BFA
+0x4536 0x54E6
+0x4537 0x6B27
+0x4538 0x9E25
+0x4539 0x6BB4
+0x453A 0x85D5
+0x453B 0x5455
+0x453C 0x5076
+0x453D 0x6CA4
+0x453E 0x556A
+0x453F 0x8DB4
+0x4540 0x722C
+0x4541 0x5E15
+0x4542 0x6015
+0x4543 0x7436
+0x4544 0x62CD
+0x4545 0x6392
+0x4546 0x724C
+0x4547 0x5F98
+0x4548 0x6E43
+0x4549 0x6D3E
+0x454A 0x6500
+0x454B 0x6F58
+0x454C 0x76D8
+0x454D 0x78D0
+0x454E 0x76FC
+0x454F 0x7554
+0x4550 0x5224
+0x4551 0x53DB
+0x4552 0x4E53
+0x4553 0x5E9E
+0x4554 0x65C1
+0x4555 0x802A
+0x4556 0x80D6
+0x4557 0x629B
+0x4558 0x5486
+0x4559 0x5228
+0x455A 0x70AE
+0x455B 0x888D
+0x455C 0x8DD1
+0x455D 0x6CE1
+0x455E 0x5478
+0x455F 0x80DA
+0x4560 0x57F9
+0x4561 0x88F4
+0x4562 0x8D54
+0x4563 0x966A
+0x4564 0x914D
+0x4565 0x4F69
+0x4566 0x6C9B
+0x4567 0x55B7
+0x4568 0x76C6
+0x4569 0x7830
+0x456A 0x62A8
+0x456B 0x70F9
+0x456C 0x6F8E
+0x456D 0x5F6D
+0x456E 0x84EC
+0x456F 0x68DA
+0x4570 0x787C
+0x4571 0x7BF7
+0x4572 0x81A8
+0x4573 0x670B
+0x4574 0x9E4F
+0x4575 0x6367
+0x4576 0x78B0
+0x4577 0x576F
+0x4578 0x7812
+0x4579 0x9739
+0x457A 0x6279
+0x457B 0x62AB
+0x457C 0x5288
+0x457D 0x7435
+0x457E 0x6BD7
+0x4621 0x5564
+0x4622 0x813E
+0x4623 0x75B2
+0x4624 0x76AE
+0x4625 0x5339
+0x4626 0x75DE
+0x4627 0x50FB
+0x4628 0x5C41
+0x4629 0x8B6C
+0x462A 0x7BC7
+0x462B 0x504F
+0x462C 0x7247
+0x462D 0x9A97
+0x462E 0x98D8
+0x462F 0x6F02
+0x4630 0x74E2
+0x4631 0x7968
+0x4632 0x6487
+0x4633 0x77A5
+0x4634 0x62FC
+0x4635 0x9891
+0x4636 0x8D2B
+0x4637 0x54C1
+0x4638 0x8058
+0x4639 0x4E52
+0x463A 0x576A
+0x463B 0x82F9
+0x463C 0x840D
+0x463D 0x5E73
+0x463E 0x51ED
+0x463F 0x74F6
+0x4640 0x8BC4
+0x4641 0x5C4F
+0x4642 0x5761
+0x4643 0x6CFC
+0x4644 0x9887
+0x4645 0x5A46
+0x4646 0x7834
+0x4647 0x9B44
+0x4648 0x8FEB
+0x4649 0x7C95
+0x464A 0x5256
+0x464B 0x6251
+0x464C 0x94FA
+0x464D 0x4EC6
+0x464E 0x8386
+0x464F 0x8461
+0x4650 0x83E9
+0x4651 0x84B2
+0x4652 0x57D4
+0x4653 0x6734
+0x4654 0x5703
+0x4655 0x666E
+0x4656 0x6D66
+0x4657 0x8C31
+0x4658 0x66DD
+0x4659 0x7011
+0x465A 0x671F
+0x465B 0x6B3A
+0x465C 0x6816
+0x465D 0x621A
+0x465E 0x59BB
+0x465F 0x4E03
+0x4660 0x51C4
+0x4661 0x6F06
+0x4662 0x67D2
+0x4663 0x6C8F
+0x4664 0x5176
+0x4665 0x68CB
+0x4666 0x5947
+0x4667 0x6B67
+0x4668 0x7566
+0x4669 0x5D0E
+0x466A 0x8110
+0x466B 0x9F50
+0x466C 0x65D7
+0x466D 0x7948
+0x466E 0x7941
+0x466F 0x9A91
+0x4670 0x8D77
+0x4671 0x5C82
+0x4672 0x4E5E
+0x4673 0x4F01
+0x4674 0x542F
+0x4675 0x5951
+0x4676 0x780C
+0x4677 0x5668
+0x4678 0x6C14
+0x4679 0x8FC4
+0x467A 0x5F03
+0x467B 0x6C7D
+0x467C 0x6CE3
+0x467D 0x8BAB
+0x467E 0x6390
+0x4721 0x6070
+0x4722 0x6D3D
+0x4723 0x7275
+0x4724 0x6266
+0x4725 0x948E
+0x4726 0x94C5
+0x4727 0x5343
+0x4728 0x8FC1
+0x4729 0x7B7E
+0x472A 0x4EDF
+0x472B 0x8C26
+0x472C 0x4E7E
+0x472D 0x9ED4
+0x472E 0x94B1
+0x472F 0x94B3
+0x4730 0x524D
+0x4731 0x6F5C
+0x4732 0x9063
+0x4733 0x6D45
+0x4734 0x8C34
+0x4735 0x5811
+0x4736 0x5D4C
+0x4737 0x6B20
+0x4738 0x6B49
+0x4739 0x67AA
+0x473A 0x545B
+0x473B 0x8154
+0x473C 0x7F8C
+0x473D 0x5899
+0x473E 0x8537
+0x473F 0x5F3A
+0x4740 0x62A2
+0x4741 0x6A47
+0x4742 0x9539
+0x4743 0x6572
+0x4744 0x6084
+0x4745 0x6865
+0x4746 0x77A7
+0x4747 0x4E54
+0x4748 0x4FA8
+0x4749 0x5DE7
+0x474A 0x9798
+0x474B 0x64AC
+0x474C 0x7FD8
+0x474D 0x5CED
+0x474E 0x4FCF
+0x474F 0x7A8D
+0x4750 0x5207
+0x4751 0x8304
+0x4752 0x4E14
+0x4753 0x602F
+0x4754 0x7A83
+0x4755 0x94A6
+0x4756 0x4FB5
+0x4757 0x4EB2
+0x4758 0x79E6
+0x4759 0x7434
+0x475A 0x52E4
+0x475B 0x82B9
+0x475C 0x64D2
+0x475D 0x79BD
+0x475E 0x5BDD
+0x475F 0x6C81
+0x4760 0x9752
+0x4761 0x8F7B
+0x4762 0x6C22
+0x4763 0x503E
+0x4764 0x537F
+0x4765 0x6E05
+0x4766 0x64CE
+0x4767 0x6674
+0x4768 0x6C30
+0x4769 0x60C5
+0x476A 0x9877
+0x476B 0x8BF7
+0x476C 0x5E86
+0x476D 0x743C
+0x476E 0x7A77
+0x476F 0x79CB
+0x4770 0x4E18
+0x4771 0x90B1
+0x4772 0x7403
+0x4773 0x6C42
+0x4774 0x56DA
+0x4775 0x914B
+0x4776 0x6CC5
+0x4777 0x8D8B
+0x4778 0x533A
+0x4779 0x86C6
+0x477A 0x66F2
+0x477B 0x8EAF
+0x477C 0x5C48
+0x477D 0x9A71
+0x477E 0x6E20
+0x4821 0x53D6
+0x4822 0x5A36
+0x4823 0x9F8B
+0x4824 0x8DA3
+0x4825 0x53BB
+0x4826 0x5708
+0x4827 0x98A7
+0x4828 0x6743
+0x4829 0x919B
+0x482A 0x6CC9
+0x482B 0x5168
+0x482C 0x75CA
+0x482D 0x62F3
+0x482E 0x72AC
+0x482F 0x5238
+0x4830 0x529D
+0x4831 0x7F3A
+0x4832 0x7094
+0x4833 0x7638
+0x4834 0x5374
+0x4835 0x9E4A
+0x4836 0x69B7
+0x4837 0x786E
+0x4838 0x96C0
+0x4839 0x88D9
+0x483A 0x7FA4
+0x483B 0x7136
+0x483C 0x71C3
+0x483D 0x5189
+0x483E 0x67D3
+0x483F 0x74E4
+0x4840 0x58E4
+0x4841 0x6518
+0x4842 0x56B7
+0x4843 0x8BA9
+0x4844 0x9976
+0x4845 0x6270
+0x4846 0x7ED5
+0x4847 0x60F9
+0x4848 0x70ED
+0x4849 0x58EC
+0x484A 0x4EC1
+0x484B 0x4EBA
+0x484C 0x5FCD
+0x484D 0x97E7
+0x484E 0x4EFB
+0x484F 0x8BA4
+0x4850 0x5203
+0x4851 0x598A
+0x4852 0x7EAB
+0x4853 0x6254
+0x4854 0x4ECD
+0x4855 0x65E5
+0x4856 0x620E
+0x4857 0x8338
+0x4858 0x84C9
+0x4859 0x8363
+0x485A 0x878D
+0x485B 0x7194
+0x485C 0x6EB6
+0x485D 0x5BB9
+0x485E 0x7ED2
+0x485F 0x5197
+0x4860 0x63C9
+0x4861 0x67D4
+0x4862 0x8089
+0x4863 0x8339
+0x4864 0x8815
+0x4865 0x5112
+0x4866 0x5B7A
+0x4867 0x5982
+0x4868 0x8FB1
+0x4869 0x4E73
+0x486A 0x6C5D
+0x486B 0x5165
+0x486C 0x8925
+0x486D 0x8F6F
+0x486E 0x962E
+0x486F 0x854A
+0x4870 0x745E
+0x4871 0x9510
+0x4872 0x95F0
+0x4873 0x6DA6
+0x4874 0x82E5
+0x4875 0x5F31
+0x4876 0x6492
+0x4877 0x6D12
+0x4878 0x8428
+0x4879 0x816E
+0x487A 0x9CC3
+0x487B 0x585E
+0x487C 0x8D5B
+0x487D 0x4E09
+0x487E 0x53C1
+0x4921 0x4F1E
+0x4922 0x6563
+0x4923 0x6851
+0x4924 0x55D3
+0x4925 0x4E27
+0x4926 0x6414
+0x4927 0x9A9A
+0x4928 0x626B
+0x4929 0x5AC2
+0x492A 0x745F
+0x492B 0x8272
+0x492C 0x6DA9
+0x492D 0x68EE
+0x492E 0x50E7
+0x492F 0x838E
+0x4930 0x7802
+0x4931 0x6740
+0x4932 0x5239
+0x4933 0x6C99
+0x4934 0x7EB1
+0x4935 0x50BB
+0x4936 0x5565
+0x4937 0x715E
+0x4938 0x7B5B
+0x4939 0x6652
+0x493A 0x73CA
+0x493B 0x82EB
+0x493C 0x6749
+0x493D 0x5C71
+0x493E 0x5220
+0x493F 0x717D
+0x4940 0x886B
+0x4941 0x95EA
+0x4942 0x9655
+0x4943 0x64C5
+0x4944 0x8D61
+0x4945 0x81B3
+0x4946 0x5584
+0x4947 0x6C55
+0x4948 0x6247
+0x4949 0x7F2E
+0x494A 0x5892
+0x494B 0x4F24
+0x494C 0x5546
+0x494D 0x8D4F
+0x494E 0x664C
+0x494F 0x4E0A
+0x4950 0x5C1A
+0x4951 0x88F3
+0x4952 0x68A2
+0x4953 0x634E
+0x4954 0x7A0D
+0x4955 0x70E7
+0x4956 0x828D
+0x4957 0x52FA
+0x4958 0x97F6
+0x4959 0x5C11
+0x495A 0x54E8
+0x495B 0x90B5
+0x495C 0x7ECD
+0x495D 0x5962
+0x495E 0x8D4A
+0x495F 0x86C7
+0x4960-0x4961 0x820C
+0x4962 0x8D66
+0x4963 0x6444
+0x4964 0x5C04
+0x4965 0x6151
+0x4966 0x6D89
+0x4967 0x793E
+0x4968 0x8BBE
+0x4969 0x7837
+0x496A 0x7533
+0x496B 0x547B
+0x496C 0x4F38
+0x496D 0x8EAB
+0x496E 0x6DF1
+0x496F 0x5A20
+0x4970 0x7EC5
+0x4971 0x795E
+0x4972 0x6C88
+0x4973 0x5BA1
+0x4974 0x5A76
+0x4975 0x751A
+0x4976 0x80BE
+0x4977 0x614E
+0x4978 0x6E17
+0x4979 0x58F0
+0x497A 0x751F
+0x497B 0x7525
+0x497C 0x7272
+0x497D 0x5347
+0x497E 0x7EF3
+0x4A21 0x7701
+0x4A22 0x76DB
+0x4A23 0x5269
+0x4A24 0x80DC
+0x4A25 0x5723
+0x4A26 0x5E08
+0x4A27 0x5931
+0x4A28 0x72EE
+0x4A29 0x65BD
+0x4A2A 0x6E7F
+0x4A2B 0x8BD7
+0x4A2C 0x5C38
+0x4A2D 0x8671
+0x4A2E 0x5341
+0x4A2F 0x77F3
+0x4A30 0x62FE
+0x4A31 0x65F6
+0x4A32 0x4EC0
+0x4A33 0x98DF
+0x4A34 0x8680
+0x4A35 0x5B9E
+0x4A36 0x8BC6
+0x4A37 0x53F2
+0x4A38 0x77E2
+0x4A39 0x4F7F
+0x4A3A 0x5C4E
+0x4A3B 0x9A76
+0x4A3C 0x59CB
+0x4A3D 0x5F0F
+0x4A3E 0x793A
+0x4A3F 0x58EB
+0x4A40 0x4E16
+0x4A41 0x67FF
+0x4A42 0x4E8B
+0x4A43 0x62ED
+0x4A44 0x8A93
+0x4A45 0x901D
+0x4A46 0x52BF
+0x4A47 0x662F
+0x4A48 0x55DC
+0x4A49 0x566C
+0x4A4A 0x9002
+0x4A4B 0x4ED5
+0x4A4C 0x4F8D
+0x4A4D 0x91CA
+0x4A4E 0x9970
+0x4A4F 0x6C0F
+0x4A50 0x5E02
+0x4A51 0x6043
+0x4A52 0x5BA4
+0x4A53 0x89C6
+0x4A54 0x8BD5
+0x4A55 0x6536
+0x4A56 0x624B
+0x4A57 0x9996
+0x4A58 0x5B88
+0x4A59 0x5BFF
+0x4A5A 0x6388
+0x4A5B 0x552E
+0x4A5C 0x53D7
+0x4A5D 0x7626
+0x4A5E 0x517D
+0x4A5F 0x852C
+0x4A60 0x67A2
+0x4A61 0x68B3
+0x4A62 0x6B8A
+0x4A63 0x6292
+0x4A64 0x8F93
+0x4A65 0x53D4
+0x4A66 0x8212
+0x4A67 0x6DD1
+0x4A68 0x758F
+0x4A69 0x4E66
+0x4A6A 0x8D4E
+0x4A6B 0x5B70
+0x4A6C 0x719F
+0x4A6D 0x85AF
+0x4A6E 0x6691
+0x4A6F 0x66D9
+0x4A70 0x7F72
+0x4A71 0x8700
+0x4A72 0x9ECD
+0x4A73 0x9F20
+0x4A74 0x5C5E
+0x4A75 0x672F
+0x4A76 0x8FF0
+0x4A77 0x6811
+0x4A78 0x675F
+0x4A79 0x620D
+0x4A7A 0x7AD6
+0x4A7B 0x5885
+0x4A7C 0x5EB6
+0x4A7D 0x6570
+0x4A7E 0x6F31
+0x4B21 0x6055
+0x4B22 0x5237
+0x4B23 0x800D
+0x4B24 0x6454
+0x4B25 0x8870
+0x4B26 0x7529
+0x4B27 0x5E05
+0x4B28 0x6813
+0x4B29 0x62F4
+0x4B2A 0x971C
+0x4B2B 0x53CC
+0x4B2C 0x723D
+0x4B2D 0x8C01
+0x4B2E 0x6C34
+0x4B2F 0x7761
+0x4B30 0x7A0E
+0x4B31 0x542E
+0x4B32 0x77AC
+0x4B33 0x987A
+0x4B34 0x821C
+0x4B35 0x8BF4
+0x4B36 0x7855
+0x4B37 0x6714
+0x4B38 0x70C1
+0x4B39 0x65AF
+0x4B3A 0x6495
+0x4B3B 0x5636
+0x4B3C 0x601D
+0x4B3D 0x79C1
+0x4B3E 0x53F8
+0x4B3F 0x4E1D
+0x4B40 0x6B7B
+0x4B41 0x8086
+0x4B42 0x5BFA
+0x4B43 0x55E3
+0x4B44 0x56DB
+0x4B45 0x4F3A
+0x4B46 0x4F3C
+0x4B47 0x9972
+0x4B48 0x5DF3
+0x4B49 0x677E
+0x4B4A 0x8038
+0x4B4B 0x6002
+0x4B4C 0x9882
+0x4B4D 0x9001
+0x4B4E 0x5B8B
+0x4B4F 0x8BBC
+0x4B50 0x8BF5
+0x4B51 0x641C
+0x4B52 0x8258
+0x4B53 0x64DE
+0x4B54 0x55FD
+0x4B55 0x82CF
+0x4B56 0x9165
+0x4B57 0x4FD7
+0x4B58 0x7D20
+0x4B59 0x901F
+0x4B5A 0x7C9F
+0x4B5B 0x50F3
+0x4B5C 0x5851
+0x4B5D 0x6EAF
+0x4B5E 0x5BBF
+0x4B5F 0x8BC9
+0x4B60 0x8083
+0x4B61 0x9178
+0x4B62 0x849C
+0x4B63 0x7B97
+0x4B64 0x867D
+0x4B65 0x968B
+0x4B66 0x968F
+0x4B67 0x7EE5
+0x4B68 0x9AD3
+0x4B69 0x788E
+0x4B6A 0x5C81
+0x4B6B 0x7A57
+0x4B6C 0x9042
+0x4B6D 0x96A7
+0x4B6E 0x795F
+0x4B6F 0x5B59
+0x4B70 0x635F
+0x4B71 0x7B0B
+0x4B72 0x84D1
+0x4B73 0x68AD
+0x4B74 0x5506
+0x4B75 0x7F29
+0x4B76 0x7410
+0x4B77 0x7D22
+0x4B78 0x9501
+0x4B79 0x6240
+0x4B7A 0x584C
+0x4B7B 0x4ED6
+0x4B7C 0x5B83
+0x4B7D 0x5979
+0x4B7E 0x5854
+0x4C21 0x736D
+0x4C22 0x631E
+0x4C23 0x8E4B
+0x4C24 0x8E0F
+0x4C25 0x80CE
+0x4C26 0x82D4
+0x4C27 0x62AC
+0x4C28 0x53F0
+0x4C29 0x6CF0
+0x4C2A 0x915E
+0x4C2B 0x592A
+0x4C2C 0x6001
+0x4C2D 0x6C70
+0x4C2E 0x574D
+0x4C2F 0x644A
+0x4C30 0x8D2A
+0x4C31 0x762B
+0x4C32 0x6EE9
+0x4C33 0x575B
+0x4C34 0x6A80
+0x4C35 0x75F0
+0x4C36 0x6F6D
+0x4C37 0x8C2D
+0x4C38 0x8C08
+0x4C39 0x5766
+0x4C3A 0x6BEF
+0x4C3B 0x8892
+0x4C3C 0x78B3
+0x4C3D 0x63A2
+0x4C3E 0x53F9
+0x4C3F 0x70AD
+0x4C40 0x6C64
+0x4C41 0x5858
+0x4C42 0x642A
+0x4C43 0x5802
+0x4C44 0x68E0
+0x4C45 0x819B
+0x4C46 0x5510
+0x4C47 0x7CD6
+0x4C48 0x5018
+0x4C49 0x8EBA
+0x4C4A 0x6DCC
+0x4C4B 0x8D9F
+0x4C4C 0x70EB
+0x4C4D 0x638F
+0x4C4E 0x6D9B
+0x4C4F 0x6ED4
+0x4C50 0x7EE6
+0x4C51 0x8404
+0x4C52 0x6843
+0x4C53 0x9003
+0x4C54 0x6DD8
+0x4C55 0x9676
+0x4C56 0x8BA8
+0x4C57 0x5957
+0x4C58 0x7279
+0x4C59 0x85E4
+0x4C5A 0x817E
+0x4C5B 0x75BC
+0x4C5C 0x8A8A
+0x4C5D 0x68AF
+0x4C5E 0x5254
+0x4C5F 0x8E22
+0x4C60 0x9511
+0x4C61 0x63D0
+0x4C62 0x9898
+0x4C63 0x8E44
+0x4C64 0x557C
+0x4C65 0x4F53
+0x4C66 0x66FF
+0x4C67 0x568F
+0x4C68 0x60D5
+0x4C69 0x6D95
+0x4C6A 0x5243
+0x4C6B 0x5C49
+0x4C6C 0x5929
+0x4C6D 0x6DFB
+0x4C6E 0x586B
+0x4C6F 0x7530
+0x4C70 0x751C
+0x4C71 0x606C
+0x4C72 0x8214
+0x4C73 0x8146
+0x4C74 0x6311
+0x4C75 0x6761
+0x4C76 0x8FE2
+0x4C77 0x773A
+0x4C78 0x8DF3
+0x4C79 0x8D34
+0x4C7A 0x94C1
+0x4C7B 0x5E16
+0x4C7C 0x5385
+0x4C7D 0x542C
+0x4C7E 0x70C3
+0x4D21 0x6C40
+0x4D22 0x5EF7
+0x4D23 0x505C
+0x4D24 0x4EAD
+0x4D25 0x5EAD
+0x4D26 0x633A
+0x4D27 0x8247
+0x4D28 0x901A
+0x4D29 0x6850
+0x4D2A 0x916E
+0x4D2B 0x77B3
+0x4D2C 0x540C
+0x4D2D 0x94DC
+0x4D2E 0x5F64
+0x4D2F 0x7AE5
+0x4D30 0x6876
+0x4D31 0x6345
+0x4D32 0x7B52
+0x4D33 0x7EDF
+0x4D34 0x75DB
+0x4D35 0x5077
+0x4D36 0x6295
+0x4D37 0x5934
+0x4D38 0x900F
+0x4D39 0x51F8
+0x4D3A 0x79C3
+0x4D3B 0x7A81
+0x4D3C 0x56FE
+0x4D3D 0x5F92
+0x4D3E 0x9014
+0x4D3F 0x6D82
+0x4D40 0x5C60
+0x4D41 0x571F
+0x4D42 0x5410
+0x4D43 0x5154
+0x4D44 0x6E4D
+0x4D45 0x56E2
+0x4D46 0x63A8
+0x4D47 0x9893
+0x4D48 0x817F
+0x4D49 0x8715
+0x4D4A 0x892A
+0x4D4B 0x9000
+0x4D4C 0x541E
+0x4D4D 0x5C6F
+0x4D4E 0x81C0
+0x4D4F 0x62D6
+0x4D50 0x6258
+0x4D51 0x8131
+0x4D52 0x9E35
+0x4D53 0x9640
+0x4D54 0x9A6E
+0x4D55 0x9A7C
+0x4D56 0x692D
+0x4D57 0x59A5
+0x4D58 0x62D3
+0x4D59 0x553E
+0x4D5A 0x6316
+0x4D5B 0x54C7
+0x4D5C 0x86D9
+0x4D5D 0x6D3C
+0x4D5E 0x5A03
+0x4D5F 0x74E6
+0x4D60 0x889C
+0x4D61 0x6B6A
+0x4D62 0x5916
+0x4D63 0x8C4C
+0x4D64 0x5F2F
+0x4D65 0x6E7E
+0x4D66 0x73A9
+0x4D67 0x987D
+0x4D68 0x4E38
+0x4D69 0x70F7
+0x4D6A 0x5B8C
+0x4D6B 0x7897
+0x4D6C 0x633D
+0x4D6D 0x665A
+0x4D6E 0x7696
+0x4D6F 0x60CB
+0x4D70 0x5B9B
+0x4D71 0x5A49
+0x4D72 0x4E07
+0x4D73 0x8155
+0x4D74 0x6C6A
+0x4D75 0x738B
+0x4D76 0x4EA1
+0x4D77 0x6789
+0x4D78 0x7F51
+0x4D79 0x5F80
+0x4D7A 0x65FA
+0x4D7B 0x671B
+0x4D7C 0x5FD8
+0x4D7D 0x5984
+0x4D7E 0x5A01
+0x4E21 0x5DCD
+0x4E22 0x5FAE
+0x4E23 0x5371
+0x4E24 0x97E6
+0x4E25 0x8FDD
+0x4E26 0x6845
+0x4E27 0x56F4
+0x4E28 0x552F
+0x4E29 0x60DF
+0x4E2A 0x4E3A
+0x4E2B 0x6F4D
+0x4E2C 0x7EF4
+0x4E2D 0x82C7
+0x4E2E 0x840E
+0x4E2F 0x59D4
+0x4E30 0x4F1F
+0x4E31 0x4F2A
+0x4E32 0x5C3E
+0x4E33 0x7EAC
+0x4E34 0x672A
+0x4E35 0x851A
+0x4E36 0x5473
+0x4E37 0x754F
+0x4E38 0x80C3
+0x4E39 0x5582
+0x4E3A 0x9B4F
+0x4E3B 0x4F4D
+0x4E3C 0x6E2D
+0x4E3D 0x8C13
+0x4E3E 0x5C09
+0x4E3F 0x6170
+0x4E40 0x536B
+0x4E41 0x761F
+0x4E42 0x6E29
+0x4E43 0x868A
+0x4E44 0x6587
+0x4E45 0x95FB
+0x4E46 0x7EB9
+0x4E47 0x543B
+0x4E48 0x7A33
+0x4E49 0x7D0A
+0x4E4A 0x95EE
+0x4E4B 0x55E1
+0x4E4C 0x7FC1
+0x4E4D 0x74EE
+0x4E4E 0x631D
+0x4E4F 0x8717
+0x4E50 0x6DA1
+0x4E51 0x7A9D
+0x4E52 0x6211
+0x4E53 0x65A1
+0x4E54 0x5367
+0x4E55 0x63E1
+0x4E56 0x6C83
+0x4E57 0x5DEB
+0x4E58 0x545C
+0x4E59 0x94A8
+0x4E5A 0x4E4C
+0x4E5B 0x6C61
+0x4E5C 0x8BEC
+0x4E5D 0x5C4B
+0x4E5E 0x65E0
+0x4E5F 0x829C
+0x4E60 0x68A7
+0x4E61 0x543E
+0x4E62 0x5434
+0x4E63 0x6BCB
+0x4E64 0x6B66
+0x4E65 0x4E94
+0x4E66 0x6342
+0x4E67 0x5348
+0x4E68 0x821E
+0x4E69 0x4F0D
+0x4E6A 0x4FAE
+0x4E6B 0x575E
+0x4E6C 0x620A
+0x4E6D 0x96FE
+0x4E6E 0x6664
+0x4E6F 0x7269
+0x4E70 0x52FF
+0x4E71 0x52A1
+0x4E72 0x609F
+0x4E73 0x8BEF
+0x4E74 0x6614
+0x4E75 0x7199
+0x4E76 0x6790
+0x4E77 0x897F
+0x4E78 0x7852
+0x4E79 0x77FD
+0x4E7A 0x6670
+0x4E7B 0x563B
+0x4E7C 0x5438
+0x4E7D 0x9521
+0x4E7E 0x727A
+0x4F21 0x7A00
+0x4F22 0x606F
+0x4F23 0x5E0C
+0x4F24 0x6089
+0x4F25 0x819D
+0x4F26 0x5915
+0x4F27 0x60DC
+0x4F28 0x7184
+0x4F29 0x70EF
+0x4F2A 0x6EAA
+0x4F2B 0x6C50
+0x4F2C 0x7280
+0x4F2D 0x6A84
+0x4F2E 0x88AD
+0x4F2F 0x5E2D
+0x4F30 0x4E60
+0x4F31 0x5AB3
+0x4F32 0x559C
+0x4F33 0x94E3
+0x4F34 0x6D17
+0x4F35 0x7CFB
+0x4F36 0x9699
+0x4F37 0x620F
+0x4F38 0x7EC6
+0x4F39 0x778E
+0x4F3A 0x867E
+0x4F3B 0x5323
+0x4F3C 0x971E
+0x4F3D 0x8F96
+0x4F3E 0x6687
+0x4F3F 0x5CE1
+0x4F40 0x4FA0
+0x4F41 0x72ED
+0x4F42 0x4E0B
+0x4F43 0x53A6
+0x4F44 0x590F
+0x4F45 0x5413
+0x4F46 0x6380
+0x4F47 0x9528
+0x4F48 0x5148
+0x4F49 0x4ED9
+0x4F4A 0x9C9C
+0x4F4B 0x7EA4
+0x4F4C 0x54B8
+0x4F4D 0x8D24
+0x4F4E 0x8854
+0x4F4F 0x8237
+0x4F50 0x95F2
+0x4F51 0x6D8E
+0x4F52 0x5F26
+0x4F53 0x5ACC
+0x4F54 0x663E
+0x4F55 0x9669
+0x4F56 0x73B0
+0x4F57 0x732E
+0x4F58 0x53BF
+0x4F59 0x817A
+0x4F5A 0x9985
+0x4F5B 0x7FA1
+0x4F5C 0x5BAA
+0x4F5D 0x9677
+0x4F5E 0x9650
+0x4F5F 0x7EBF
+0x4F60 0x76F8
+0x4F61 0x53A2
+0x4F62 0x9576
+0x4F63 0x9999
+0x4F64 0x7BB1
+0x4F65 0x8944
+0x4F66 0x6E58
+0x4F67 0x4E61
+0x4F68 0x7FD4
+0x4F69 0x7965
+0x4F6A 0x8BE6
+0x4F6B 0x60F3
+0x4F6C 0x54CD
+0x4F6D 0x4EAB
+0x4F6E 0x9879
+0x4F6F 0x5DF7
+0x4F70 0x6A61
+0x4F71 0x50CF
+0x4F72 0x5411
+0x4F73 0x8C61
+0x4F74 0x8427
+0x4F75 0x785D
+0x4F76 0x9704
+0x4F77 0x524A
+0x4F78 0x54EE
+0x4F79 0x56A3
+0x4F7A 0x9500
+0x4F7B 0x6D88
+0x4F7C 0x5BB5
+0x4F7D 0x6DC6
+0x4F7E 0x6653
+0x5021 0x5C0F
+0x5022 0x5B5D
+0x5023 0x6821
+0x5024 0x8096
+0x5025 0x5578
+0x5026 0x7B11
+0x5027 0x6548
+0x5028 0x6954
+0x5029 0x4E9B
+0x502A 0x6B47
+0x502B 0x874E
+0x502C 0x978B
+0x502D 0x534F
+0x502E 0x631F
+0x502F 0x643A
+0x5030 0x90AA
+0x5031 0x659C
+0x5032 0x80C1
+0x5033 0x8C10
+0x5034 0x5199
+0x5035 0x68B0
+0x5036 0x5378
+0x5037 0x87F9
+0x5038 0x61C8
+0x5039 0x6CC4
+0x503A 0x6CFB
+0x503B 0x8C22
+0x503C 0x5C51
+0x503D 0x85AA
+0x503E 0x82AF
+0x503F 0x950C
+0x5040 0x6B23
+0x5041 0x8F9B
+0x5042 0x65B0
+0x5043 0x5FFB
+0x5044 0x5FC3
+0x5045 0x4FE1
+0x5046 0x8845
+0x5047 0x661F
+0x5048 0x8165
+0x5049 0x7329
+0x504A 0x60FA
+0x504B 0x5174
+0x504C 0x5211
+0x504D 0x578B
+0x504E 0x5F62
+0x504F 0x90A2
+0x5050 0x884C
+0x5051 0x9192
+0x5052 0x5E78
+0x5053 0x674F
+0x5054 0x6027
+0x5055 0x59D3
+0x5056 0x5144
+0x5057 0x51F6
+0x5058 0x80F8
+0x5059 0x5308
+0x505A 0x6C79
+0x505B 0x96C4
+0x505C 0x718A
+0x505D 0x4F11
+0x505E 0x4FEE
+0x505F 0x7F9E
+0x5060 0x673D
+0x5061 0x55C5
+0x5062 0x9508
+0x5063 0x79C0
+0x5064 0x8896
+0x5065 0x7EE3
+0x5066 0x589F
+0x5067 0x620C
+0x5068 0x9700
+0x5069 0x865A
+0x506A 0x5618
+0x506B 0x987B
+0x506C 0x5F90
+0x506D 0x8BB8
+0x506E 0x84C4
+0x506F 0x9157
+0x5070 0x53D9
+0x5071 0x65ED
+0x5072 0x5E8F
+0x5073 0x755C
+0x5074 0x6064
+0x5075 0x7D6E
+0x5076 0x5A7F
+0x5077 0x7EEA
+0x5078 0x7EED
+0x5079 0x8F69
+0x507A 0x55A7
+0x507B 0x5BA3
+0x507C 0x60AC
+0x507D 0x65CB
+0x507E 0x7384
+0x5121 0x9009
+0x5122 0x7663
+0x5123 0x7729
+0x5124 0x7EDA
+0x5125 0x9774
+0x5126 0x859B
+0x5127 0x5B66
+0x5128 0x7A74
+0x5129 0x96EA
+0x512A 0x8840
+0x512B 0x52CB
+0x512C 0x718F
+0x512D 0x5FAA
+0x512E 0x65EC
+0x512F 0x8BE2
+0x5130 0x5BFB
+0x5131 0x9A6F
+0x5132 0x5DE1
+0x5133 0x6B89
+0x5134 0x6C5B
+0x5135 0x8BAD
+0x5136 0x8BAF
+0x5137 0x900A
+0x5138 0x8FC5
+0x5139 0x538B
+0x513A 0x62BC
+0x513B 0x9E26
+0x513C 0x9E2D
+0x513D 0x5440
+0x513E 0x4E2B
+0x513F 0x82BD
+0x5140 0x7259
+0x5141 0x869C
+0x5142 0x5D16
+0x5143 0x8859
+0x5144 0x6DAF
+0x5145 0x96C5
+0x5146 0x54D1
+0x5147 0x4E9A
+0x5148 0x8BB6
+0x5149 0x7109
+0x514A 0x54BD
+0x514B 0x9609
+0x514C 0x70DF
+0x514D 0x6DF9
+0x514E 0x76D0
+0x514F 0x4E25
+0x5150 0x7814
+0x5151 0x8712
+0x5152 0x5CA9
+0x5153 0x5EF6
+0x5154 0x8A00
+0x5155 0x989C
+0x5156 0x960E
+0x5157 0x708E
+0x5158 0x6CBF
+0x5159 0x5944
+0x515A 0x63A9
+0x515B 0x773C
+0x515C 0x884D
+0x515D 0x6F14
+0x515E 0x8273
+0x515F 0x5830
+0x5160 0x71D5
+0x5161 0x538C
+0x5162 0x781A
+0x5163 0x96C1
+0x5164 0x5501
+0x5165 0x5F66
+0x5166 0x7130
+0x5167 0x5BB4
+0x5168 0x8C1A
+0x5169 0x9A8C
+0x516A 0x6B83
+0x516B 0x592E
+0x516C 0x9E2F
+0x516D 0x79E7
+0x516E 0x6768
+0x516F 0x626C
+0x5170 0x4F6F
+0x5171 0x75A1
+0x5172 0x7F8A
+0x5173 0x6D0B
+0x5174 0x9633
+0x5175 0x6C27
+0x5176 0x4EF0
+0x5177 0x75D2
+0x5178 0x517B
+0x5179 0x6837
+0x517A 0x6F3E
+0x517B 0x9080
+0x517C 0x8170
+0x517D 0x5996
+0x517E 0x7476
+0x5221 0x6447
+0x5222 0x5C27
+0x5223 0x9065
+0x5224 0x7A91
+0x5225 0x8C23
+0x5226 0x59DA
+0x5227 0x54AC
+0x5228 0x8200
+0x5229 0x836F
+0x522A 0x8981
+0x522B 0x8000
+0x522C 0x6930
+0x522D 0x564E
+0x522E 0x8036
+0x522F 0x7237
+0x5230 0x91CE
+0x5231 0x51B6
+0x5232 0x4E5F
+0x5233 0x9875
+0x5234 0x6396
+0x5235 0x4E1A
+0x5236 0x53F6
+0x5237 0x66F3
+0x5238 0x814B
+0x5239 0x591C
+0x523A 0x6DB2
+0x523B 0x4E00
+0x523C 0x58F9
+0x523D 0x533B
+0x523E 0x63D6
+0x523F 0x94F1
+0x5240 0x4F9D
+0x5241 0x4F0A
+0x5242 0x8863
+0x5243 0x9890
+0x5244 0x5937
+0x5245 0x9057
+0x5246 0x79FB
+0x5247 0x4EEA
+0x5248 0x80F0
+0x5249 0x7591
+0x524A 0x6C82
+0x524B 0x5B9C
+0x524C 0x59E8
+0x524D 0x5F5D
+0x524E 0x6905
+0x524F 0x8681
+0x5250 0x501A
+0x5251 0x5DF2
+0x5252 0x4E59
+0x5253 0x77E3
+0x5254 0x4EE5
+0x5255 0x827A
+0x5256 0x6291
+0x5257 0x6613
+0x5258 0x9091
+0x5259 0x5C79
+0x525A 0x4EBF
+0x525B 0x5F79
+0x525C 0x81C6
+0x525D 0x9038
+0x525E 0x8084
+0x525F 0x75AB
+0x5260 0x4EA6
+0x5261 0x88D4
+0x5262 0x610F
+0x5263 0x6BC5
+0x5264 0x5FC6
+0x5265 0x4E49
+0x5266 0x76CA
+0x5267 0x6EA2
+0x5268 0x8BE3
+0x5269 0x8BAE
+0x526A 0x8C0A
+0x526B 0x8BD1
+0x526C 0x5F02
+0x526D 0x7FFC
+0x526E 0x7FCC
+0x526F 0x7ECE
+0x5270 0x8335
+0x5271 0x836B
+0x5272 0x56E0
+0x5273 0x6BB7
+0x5274 0x97F3
+0x5275 0x9634
+0x5276 0x59FB
+0x5277 0x541F
+0x5278 0x94F6
+0x5279 0x6DEB
+0x527A 0x5BC5
+0x527B 0x996E
+0x527C 0x5C39
+0x527D 0x5F15
+0x527E 0x9690
+0x5321 0x5370
+0x5322 0x82F1
+0x5323 0x6A31
+0x5324 0x5A74
+0x5325 0x9E70
+0x5326 0x5E94
+0x5327 0x7F28
+0x5328 0x83B9
+0x5329-0x532A 0x8424
+0x532B 0x8367
+0x532C 0x8747
+0x532D 0x8FCE
+0x532E 0x8D62
+0x532F 0x76C8
+0x5330 0x5F71
+0x5331 0x9896
+0x5332 0x786C
+0x5333 0x6620
+0x5334 0x54DF
+0x5335 0x62E5
+0x5336 0x4F63
+0x5337 0x81C3
+0x5338 0x75C8
+0x5339 0x5EB8
+0x533A 0x96CD
+0x533B 0x8E0A
+0x533C 0x86F9
+0x533D 0x548F
+0x533E 0x6CF3
+0x533F 0x6D8C
+0x5340 0x6C38
+0x5341 0x607F
+0x5342 0x52C7
+0x5343 0x7528
+0x5344 0x5E7D
+0x5345 0x4F18
+0x5346 0x60A0
+0x5347 0x5FE7
+0x5348 0x5C24
+0x5349 0x7531
+0x534A 0x90AE
+0x534B 0x94C0
+0x534C 0x72B9
+0x534D 0x6CB9
+0x534E 0x6E38
+0x534F 0x9149
+0x5350 0x6709
+0x5351 0x53CB
+0x5352 0x53F3
+0x5353 0x4F51
+0x5354 0x91C9
+0x5355 0x8BF1
+0x5356 0x53C8
+0x5357 0x5E7C
+0x5358 0x8FC2
+0x5359 0x6DE4
+0x535A 0x4E8E
+0x535B 0x76C2
+0x535C 0x6986
+0x535D 0x865E
+0x535E 0x611A
+0x535F 0x8206
+0x5360 0x4F59
+0x5361 0x4FDE
+0x5362 0x903E
+0x5363 0x9C7C
+0x5364 0x6109
+0x5365 0x6E1D
+0x5366 0x6E14
+0x5367 0x9685
+0x5368 0x4E88
+0x5369 0x5A31
+0x536A 0x96E8
+0x536B 0x4E0E
+0x536C 0x5C7F
+0x536D 0x79B9
+0x536E 0x5B87
+0x536F 0x8BED
+0x5370 0x7FBD
+0x5371 0x7389
+0x5372 0x57DF
+0x5373 0x828B
+0x5374 0x90C1
+0x5375 0x5401
+0x5376 0x9047
+0x5377 0x55BB
+0x5378 0x5CEA
+0x5379 0x5FA1
+0x537A 0x6108
+0x537B 0x6B32
+0x537C 0x72F1
+0x537D 0x80B2
+0x537E 0x8A89
+0x5421 0x6D74
+0x5422 0x5BD3
+0x5423 0x88D5
+0x5424 0x9884
+0x5425 0x8C6B
+0x5426 0x9A6D
+0x5427 0x9E33
+0x5428 0x6E0A
+0x5429 0x51A4
+0x542A 0x5143
+0x542B 0x57A3
+0x542C 0x8881
+0x542D 0x539F
+0x542E 0x63F4
+0x542F 0x8F95
+0x5430 0x56ED
+0x5431 0x5458
+0x5432 0x5706
+0x5433 0x733F
+0x5434 0x6E90
+0x5435 0x7F18
+0x5436 0x8FDC
+0x5437 0x82D1
+0x5438 0x613F
+0x5439 0x6028
+0x543A 0x9662
+0x543B 0x66F0
+0x543C 0x7EA6
+0x543D 0x8D8A
+0x543E 0x8DC3
+0x543F 0x94A5
+0x5440 0x5CB3
+0x5441 0x7CA4
+0x5442 0x6708
+0x5443 0x60A6
+0x5444 0x9605
+0x5445 0x8018
+0x5446 0x4E91
+0x5447 0x90E7
+0x5448 0x5300
+0x5449 0x9668
+0x544A 0x5141
+0x544B 0x8FD0
+0x544C 0x8574
+0x544D 0x915D
+0x544E 0x6655
+0x544F 0x97F5
+0x5450 0x5B55
+0x5451 0x531D
+0x5452 0x7838
+0x5453 0x6742
+0x5454 0x683D
+0x5455 0x54C9
+0x5456 0x707E
+0x5457 0x5BB0
+0x5458 0x8F7D
+0x5459 0x518D
+0x545A 0x5728
+0x545B 0x54B1
+0x545C 0x6512
+0x545D 0x6682
+0x545E 0x8D5E
+0x545F 0x8D43
+0x5460 0x810F
+0x5461 0x846C
+0x5462 0x906D
+0x5463 0x7CDF
+0x5464 0x51FF
+0x5465 0x85FB
+0x5466 0x67A3
+0x5467 0x65E9
+0x5468 0x6FA1
+0x5469 0x86A4
+0x546A 0x8E81
+0x546B 0x566A
+0x546C 0x9020
+0x546D 0x7682
+0x546E 0x7076
+0x546F 0x71E5
+0x5470 0x8D23
+0x5471 0x62E9
+0x5472 0x5219
+0x5473 0x6CFD
+0x5474 0x8D3C
+0x5475 0x600E
+0x5476 0x589E
+0x5477 0x618E
+0x5478 0x66FE
+0x5479 0x8D60
+0x547A 0x624E
+0x547B 0x55B3
+0x547C 0x6E23
+0x547D 0x672D
+0x547E 0x8F67
+0x5521 0x94E1
+0x5522 0x95F8
+0x5523 0x7728
+0x5524 0x6805
+0x5525 0x69A8
+0x5526 0x548B
+0x5527 0x4E4D
+0x5528 0x70B8
+0x5529 0x8BC8
+0x552A 0x6458
+0x552B 0x658B
+0x552C 0x5B85
+0x552D 0x7A84
+0x552E 0x503A
+0x552F 0x5BE8
+0x5530 0x77BB
+0x5531 0x6BE1
+0x5532 0x8A79
+0x5533 0x7C98
+0x5534 0x6CBE
+0x5535 0x76CF
+0x5536 0x65A9
+0x5537 0x8F97
+0x5538 0x5D2D
+0x5539 0x5C55
+0x553A 0x8638
+0x553B 0x6808
+0x553C 0x5360
+0x553D 0x6218
+0x553E 0x7AD9
+0x553F 0x6E5B
+0x5540 0x7EFD
+0x5541 0x6A1F
+0x5542 0x7AE0
+0x5543 0x5F70
+0x5544 0x6F33
+0x5545 0x5F20
+0x5546 0x638C
+0x5547 0x6DA8
+0x5548 0x6756
+0x5549 0x4E08
+0x554A 0x5E10
+0x554B 0x8D26
+0x554C 0x4ED7
+0x554D 0x80C0
+0x554E 0x7634
+0x554F 0x969C
+0x5550 0x62DB
+0x5551 0x662D
+0x5552 0x627E
+0x5553 0x6CBC
+0x5554 0x8D75
+0x5555 0x7167
+0x5556 0x7F69
+0x5557 0x5146
+0x5558 0x8087
+0x5559 0x53EC
+0x555A 0x906E
+0x555B 0x6298
+0x555C 0x54F2
+0x555D 0x86F0
+0x555E 0x8F99
+0x555F 0x8005
+0x5560 0x9517
+0x5561 0x8517
+0x5562 0x8FD9
+0x5563 0x6D59
+0x5564 0x73CD
+0x5565 0x659F
+0x5566 0x771F
+0x5567 0x7504
+0x5568 0x7827
+0x5569 0x81FB
+0x556A 0x8D1E
+0x556B 0x9488
+0x556C 0x4FA6
+0x556D 0x6795
+0x556E 0x75B9
+0x556F 0x8BCA
+0x5570 0x9707
+0x5571 0x632F
+0x5572 0x9547
+0x5573 0x9635
+0x5574 0x84B8
+0x5575 0x6323
+0x5576 0x7741
+0x5577 0x5F81
+0x5578 0x72F0
+0x5579 0x4E89
+0x557A 0x6014
+0x557B 0x6574
+0x557C 0x62EF
+0x557D 0x6B63
+0x557E 0x653F
+0x5621 0x5E27
+0x5622 0x75C7
+0x5623 0x90D1
+0x5624 0x8BC1
+0x5625 0x829D
+0x5626 0x679D
+0x5627 0x652F
+0x5628 0x5431
+0x5629 0x8718
+0x562A 0x77E5
+0x562B 0x80A2
+0x562C 0x8102
+0x562D 0x6C41
+0x562E 0x4E4B
+0x562F 0x7EC7
+0x5630 0x804C
+0x5631 0x76F4
+0x5632 0x690D
+0x5633 0x6B96
+0x5634 0x6267
+0x5635 0x503C
+0x5636 0x4F84
+0x5637 0x5740
+0x5638 0x6307
+0x5639 0x6B62
+0x563A 0x8DBE
+0x563B 0x53EA
+0x563C 0x65E8
+0x563D 0x7EB8
+0x563E 0x5FD7
+0x563F 0x631A
+0x5640 0x63B7
+0x5641-0x5642 0x81F3
+0x5643 0x7F6E
+0x5644 0x5E1C
+0x5645 0x5CD9
+0x5646 0x5236
+0x5647 0x667A
+0x5648 0x79E9
+0x5649 0x7A1A
+0x564A 0x8D28
+0x564B 0x7099
+0x564C 0x75D4
+0x564D 0x6EDE
+0x564E 0x6CBB
+0x564F 0x7A92
+0x5650 0x4E2D
+0x5651 0x76C5
+0x5652 0x5FE0
+0x5653 0x949F
+0x5654 0x8877
+0x5655 0x7EC8
+0x5656 0x79CD
+0x5657 0x80BF
+0x5658 0x91CD
+0x5659 0x4EF2
+0x565A 0x4F17
+0x565B 0x821F
+0x565C 0x5468
+0x565D 0x5DDE
+0x565E 0x6D32
+0x565F 0x8BCC
+0x5660 0x7CA5
+0x5661 0x8F74
+0x5662 0x8098
+0x5663 0x5E1A
+0x5664 0x5492
+0x5665 0x76B1
+0x5666 0x5B99
+0x5667 0x663C
+0x5668 0x9AA4
+0x5669 0x73E0
+0x566A 0x682A
+0x566B 0x86DB
+0x566C 0x6731
+0x566D 0x732A
+0x566E 0x8BF8
+0x566F 0x8BDB
+0x5670 0x9010
+0x5671 0x7AF9
+0x5672 0x70DB
+0x5673 0x716E
+0x5674 0x62C4
+0x5675 0x77A9
+0x5676 0x5631
+0x5677 0x4E3B
+0x5678 0x8457
+0x5679 0x67F1
+0x567A 0x52A9
+0x567B 0x86C0
+0x567C 0x8D2E
+0x567D 0x94F8
+0x567E 0x7B51
+0x5721 0x4F4F
+0x5722 0x6CE8
+0x5723 0x795D
+0x5724 0x9A7B
+0x5725 0x6293
+0x5726 0x722A
+0x5727 0x62FD
+0x5728 0x4E13
+0x5729 0x7816
+0x572A 0x8F6C
+0x572B 0x64B0
+0x572C 0x8D5A
+0x572D 0x7BC6
+0x572E 0x6869
+0x572F 0x5E84
+0x5730 0x88C5
+0x5731 0x5986
+0x5732 0x649E
+0x5733 0x58EE
+0x5734 0x72B6
+0x5735 0x690E
+0x5736 0x9525
+0x5737 0x8FFD
+0x5738 0x8D58
+0x5739 0x5760
+0x573A 0x7F00
+0x573B 0x8C06
+0x573C 0x51C6
+0x573D 0x6349
+0x573E 0x62D9
+0x573F 0x5353
+0x5740 0x684C
+0x5741 0x7422
+0x5742 0x8301
+0x5743 0x914C
+0x5744 0x5544
+0x5745 0x7740
+0x5746 0x707C
+0x5747 0x6D4A
+0x5748 0x5179
+0x5749 0x54A8
+0x574A 0x8D44
+0x574B 0x59FF
+0x574C 0x6ECB
+0x574D 0x6DC4
+0x574E 0x5B5C
+0x574F 0x7D2B
+0x5750 0x4ED4
+0x5751 0x7C7D
+0x5752 0x6ED3
+0x5753 0x5B50
+0x5754 0x81EA
+0x5755 0x6E0D
+0x5756 0x5B57
+0x5757 0x9B03
+0x5758 0x68D5
+0x5759 0x8E2A
+0x575A 0x5B97
+0x575B 0x7EFC
+0x575C 0x603B
+0x575D 0x7EB5
+0x575E 0x90B9
+0x575F 0x8D70
+0x5760 0x594F
+0x5761 0x63CD
+0x5762 0x79DF
+0x5763 0x8DB3
+0x5764 0x5352
+0x5765 0x65CF
+0x5766 0x7956
+0x5767 0x8BC5
+0x5768 0x963B
+0x5769 0x7EC4
+0x576A 0x94BB
+0x576B 0x7E82
+0x576C 0x5634
+0x576D 0x9189
+0x576E 0x6700
+0x576F 0x7F6A
+0x5770 0x5C0A
+0x5771 0x9075
+0x5772 0x6628
+0x5773 0x5DE6
+0x5774 0x4F50
+0x5775 0x67DE
+0x5776 0x505A
+0x5777 0x4F5C
+0x5778 0x5750
+0x5779 0x5EA7
+0x5821 0x4E8D
+0x5822 0x4E0C
+0x5823 0x5140
+0x5824 0x4E10
+0x5825 0x5EFF
+0x5826 0x5345
+0x5827 0x4E15
+0x5828 0x4E98
+0x5829 0x4E1E
+0x582A 0x9B32
+0x582B 0x5B6C
+0x582C 0x5669
+0x582D 0x4E28
+0x582E 0x79BA
+0x582F 0x4E3F
+0x5830 0x5315
+0x5831 0x4E47
+0x5832 0x592D
+0x5833 0x723B
+0x5834 0x536E
+0x5835 0x6C10
+0x5836 0x56DF
+0x5837 0x80E4
+0x5838 0x9997
+0x5839 0x6BD3
+0x583A 0x777E
+0x583B 0x9F17
+0x583C 0x4E36
+0x583D 0x4E9F
+0x583E 0x9F10
+0x583F 0x4E5C
+0x5840 0x4E69
+0x5841 0x4E93
+0x5842 0x8288
+0x5843 0x5B5B
+0x5844 0x556C
+0x5845 0x560F
+0x5846 0x4EC4
+0x5847 0x538D
+0x5848 0x539D
+0x5849 0x53A3
+0x584A 0x53A5
+0x584B 0x53AE
+0x584C 0x9765
+0x584D 0x8D5D
+0x584E 0x531A
+0x584F 0x53F5
+0x5850 0x5326
+0x5851 0x532E
+0x5852 0x533E
+0x5853 0x8D5C
+0x5854 0x5366
+0x5855 0x5363
+0x5856 0x5202
+0x5857 0x5208
+0x5858 0x520E
+0x5859 0x522D
+0x585A 0x5233
+0x585B-0x585C 0x523F
+0x585D 0x524C
+0x585E 0x525E
+0x585F 0x5261
+0x5860 0x525C
+0x5861 0x84AF
+0x5862 0x527D
+0x5863 0x5282
+0x5864 0x5281
+0x5865 0x5290
+0x5866 0x5293
+0x5867 0x5182
+0x5868 0x7F54
+0x5869 0x4EBB
+0x586A 0x4EC3
+0x586B 0x4EC9
+0x586C 0x4EC2
+0x586D 0x4EE8
+0x586E 0x4EE1
+0x586F 0x4EEB
+0x5870 0x4EDE
+0x5871 0x4F1B
+0x5872 0x4EF3
+0x5873 0x4F22
+0x5874 0x4F64
+0x5875 0x4EF5
+0x5876 0x4F25
+0x5877 0x4F27
+0x5878 0x4F09
+0x5879 0x4F2B
+0x587A 0x4F5E
+0x587B 0x4F67
+0x587C 0x6538
+0x587D 0x4F5A
+0x587E 0x4F5D
+0x5921 0x4F5F
+0x5922 0x4F57
+0x5923 0x4F32
+0x5924 0x4F3D
+0x5925 0x4F76
+0x5926 0x4F74
+0x5927 0x4F91
+0x5928 0x4F89
+0x5929 0x4F83
+0x592A 0x4F8F
+0x592B 0x4F7E
+0x592C 0x4F7B
+0x592D 0x4FAA
+0x592E 0x4F7C
+0x592F 0x4FAC
+0x5930 0x4F94
+0x5931 0x4FE6
+0x5932 0x4FE8
+0x5933 0x4FEA
+0x5934 0x4FC5
+0x5935 0x4FDA
+0x5936 0x4FE3
+0x5937 0x4FDC
+0x5938 0x4FD1
+0x5939 0x4FDF
+0x593A 0x4FF8
+0x593B 0x5029
+0x593C 0x504C
+0x593D 0x4FF3
+0x593E 0x502C
+0x593F 0x500F
+0x5940 0x502E
+0x5941 0x502D
+0x5942 0x4FFE
+0x5943 0x501C
+0x5944 0x500C
+0x5945 0x5025
+0x5946 0x5028
+0x5947 0x507E
+0x5948 0x5043
+0x5949 0x5055
+0x594A 0x5048
+0x594B 0x504E
+0x594C 0x506C
+0x594D 0x507B
+0x594E 0x50A5
+0x594F 0x50A7
+0x5950 0x50A9
+0x5951 0x50BA
+0x5952 0x50D6
+0x5953 0x5106
+0x5954 0x50ED
+0x5955 0x50EC
+0x5956 0x50E6
+0x5957 0x50EE
+0x5958 0x5107
+0x5959 0x510B
+0x595A 0x4EDD
+0x595B 0x6C3D
+0x595C 0x4F58
+0x595D 0x4F65
+0x595E 0x4FCE
+0x595F 0x9FA0
+0x5960 0x6C46
+0x5961 0x7C74
+0x5962 0x516E
+0x5963 0x5DFD
+0x5964 0x9EC9
+0x5965 0x9998
+0x5966 0x5181
+0x5967 0x5914
+0x5968 0x52F9
+0x5969 0x530D
+0x596A 0x8A07
+0x596B 0x5310
+0x596C 0x51EB
+0x596D 0x5919
+0x596E 0x5155
+0x596F 0x4EA0
+0x5970 0x5156
+0x5971 0x4EB3
+0x5972 0x886E
+0x5973 0x88A4
+0x5974 0x4EB5
+0x5975 0x8114
+0x5976 0x88D2
+0x5977 0x7980
+0x5978 0x5B34
+0x5979 0x8803
+0x597A 0x7FB8
+0x597B 0x51AB
+0x597C 0x51B1
+0x597D 0x51BD
+0x597E 0x51BC
+0x5A21 0x51C7
+0x5A22 0x5196
+0x5A23 0x51A2
+0x5A24 0x51A5
+0x5A25 0x8BA0
+0x5A26-0x5A27 0x8BA6
+0x5A28 0x8BAA
+0x5A29-0x5A2A 0x8BB4
+0x5A2B 0x8BB7
+0x5A2C-0x5A2D 0x8BC2
+0x5A2E 0x8BCB
+0x5A2F 0x8BCF
+0x5A30 0x8BCE
+0x5A31-0x5A33 0x8BD2
+0x5A34 0x8BD6
+0x5A35-0x5A36 0x8BD8
+0x5A37 0x8BDC
+0x5A38-0x5A39 0x8BDF
+0x5A3A 0x8BE4
+0x5A3B-0x5A3C 0x8BE8
+0x5A3D 0x8BEE
+0x5A3E 0x8BF0
+0x5A3F 0x8BF3
+0x5A40 0x8BF6
+0x5A41 0x8BF9
+0x5A42 0x8BFC
+0x5A43-0x5A44 0x8BFF
+0x5A45 0x8C02
+0x5A46 0x8C04
+0x5A47 0x8C07
+0x5A48 0x8C0C
+0x5A49 0x8C0F
+0x5A4A-0x5A4B 0x8C11
+0x5A4C-0x5A4E 0x8C14
+0x5A4F 0x8C19
+0x5A50 0x8C1B
+0x5A51 0x8C18
+0x5A52 0x8C1D
+0x5A53-0x5A55 0x8C1F
+0x5A56 0x8C25
+0x5A57 0x8C27
+0x5A58-0x5A59 0x8C2A
+0x5A5A-0x5A5B 0x8C2E
+0x5A5C-0x5A5D 0x8C32
+0x5A5E-0x5A5F 0x8C35
+0x5A60 0x5369
+0x5A61 0x537A
+0x5A62 0x961D
+0x5A63 0x9622
+0x5A64 0x9621
+0x5A65 0x9631
+0x5A66 0x962A
+0x5A67 0x963D
+0x5A68 0x963C
+0x5A69 0x9642
+0x5A6A 0x9649
+0x5A6B 0x9654
+0x5A6C 0x965F
+0x5A6D 0x9667
+0x5A6E 0x966C
+0x5A6F 0x9672
+0x5A70 0x9674
+0x5A71 0x9688
+0x5A72 0x968D
+0x5A73 0x9697
+0x5A74 0x96B0
+0x5A75 0x9097
+0x5A76 0x909B
+0x5A77 0x909D
+0x5A78 0x9099
+0x5A79 0x90AC
+0x5A7A 0x90A1
+0x5A7B 0x90B4
+0x5A7C 0x90B3
+0x5A7D 0x90B6
+0x5A7E 0x90BA
+0x5B21 0x90B8
+0x5B22 0x90B0
+0x5B23 0x90CF
+0x5B24 0x90C5
+0x5B25 0x90BE
+0x5B26 0x90D0
+0x5B27 0x90C4
+0x5B28 0x90C7
+0x5B29 0x90D3
+0x5B2A 0x90E6
+0x5B2B 0x90E2
+0x5B2C 0x90DC
+0x5B2D 0x90D7
+0x5B2E 0x90DB
+0x5B2F 0x90EB
+0x5B30 0x90EF
+0x5B31 0x90FE
+0x5B32 0x9104
+0x5B33 0x9122
+0x5B34 0x911E
+0x5B35 0x9123
+0x5B36 0x9131
+0x5B37 0x912F
+0x5B38 0x9139
+0x5B39 0x9143
+0x5B3A 0x9146
+0x5B3B 0x520D
+0x5B3C 0x5942
+0x5B3D 0x52A2
+0x5B3E-0x5B3F 0x52AC
+0x5B40 0x52BE
+0x5B41 0x54FF
+0x5B42 0x52D0
+0x5B43 0x52D6
+0x5B44 0x52F0
+0x5B45 0x53DF
+0x5B46 0x71EE
+0x5B47 0x77CD
+0x5B48 0x5EF4
+0x5B49 0x51F5
+0x5B4A 0x51FC
+0x5B4B 0x9B2F
+0x5B4C 0x53B6
+0x5B4D 0x5F01
+0x5B4E 0x755A
+0x5B4F 0x5DEF
+0x5B50 0x574C
+0x5B51 0x57A9
+0x5B52 0x57A1
+0x5B53 0x587E
+0x5B54 0x58BC
+0x5B55 0x58C5
+0x5B56 0x58D1
+0x5B57 0x5729
+0x5B58 0x572C
+0x5B59 0x572A
+0x5B5A 0x5733
+0x5B5B 0x5739
+0x5B5C-0x5B5D 0x572E
+0x5B5E 0x575C
+0x5B5F 0x573B
+0x5B60 0x5742
+0x5B61 0x5769
+0x5B62 0x5785
+0x5B63 0x576B
+0x5B64 0x5786
+0x5B65 0x577C
+0x5B66 0x577B
+0x5B67 0x5768
+0x5B68 0x576D
+0x5B69 0x5776
+0x5B6A 0x5773
+0x5B6B 0x57AD
+0x5B6C 0x57A4
+0x5B6D 0x578C
+0x5B6E 0x57B2
+0x5B6F 0x57CF
+0x5B70 0x57A7
+0x5B71 0x57B4
+0x5B72 0x5793
+0x5B73 0x57A0
+0x5B74 0x57D5
+0x5B75 0x57D8
+0x5B76 0x57DA
+0x5B77 0x57D9
+0x5B78 0x57D2
+0x5B79 0x57B8
+0x5B7A 0x57F4
+0x5B7B 0x57EF
+0x5B7C 0x57F8
+0x5B7D 0x57E4
+0x5B7E 0x57DD
+0x5C21 0x580B
+0x5C22 0x580D
+0x5C23 0x57FD
+0x5C24 0x57ED
+0x5C25 0x5800
+0x5C26 0x581E
+0x5C27 0x5819
+0x5C28 0x5844
+0x5C29 0x5820
+0x5C2A 0x5865
+0x5C2B 0x586C
+0x5C2C 0x5881
+0x5C2D 0x5889
+0x5C2E 0x589A
+0x5C2F 0x5880
+0x5C30 0x99A8
+0x5C31 0x9F19
+0x5C32 0x61FF
+0x5C33 0x8279
+0x5C34 0x827D
+0x5C35 0x827F
+0x5C36 0x828F
+0x5C37 0x828A
+0x5C38 0x82A8
+0x5C39 0x8284
+0x5C3A 0x828E
+0x5C3B 0x8291
+0x5C3C 0x8297
+0x5C3D 0x8299
+0x5C3E 0x82AB
+0x5C3F 0x82B8
+0x5C40 0x82BE
+0x5C41 0x82B0
+0x5C42 0x82C8
+0x5C43 0x82CA
+0x5C44 0x82E3
+0x5C45 0x8298
+0x5C46 0x82B7
+0x5C47 0x82AE
+0x5C48-0x5C49 0x82CB
+0x5C4A 0x82C1
+0x5C4B 0x82A9
+0x5C4C 0x82B4
+0x5C4D 0x82A1
+0x5C4E 0x82AA
+0x5C4F 0x829F
+0x5C50 0x82C4
+0x5C51 0x82CE
+0x5C52 0x82A4
+0x5C53 0x82E1
+0x5C54 0x8309
+0x5C55 0x82F7
+0x5C56 0x82E4
+0x5C57 0x830F
+0x5C58 0x8307
+0x5C59 0x82DC
+0x5C5A 0x82F4
+0x5C5B 0x82D2
+0x5C5C 0x82D8
+0x5C5D 0x830C
+0x5C5E 0x82FB
+0x5C5F 0x82D3
+0x5C60 0x8311
+0x5C61 0x831A
+0x5C62 0x8306
+0x5C63-0x5C64 0x8314
+0x5C65 0x82E0
+0x5C66 0x82D5
+0x5C67 0x831C
+0x5C68 0x8351
+0x5C69-0x5C6A 0x835B
+0x5C6B 0x8308
+0x5C6C 0x8392
+0x5C6D 0x833C
+0x5C6E 0x8334
+0x5C6F 0x8331
+0x5C70 0x839B
+0x5C71 0x835E
+0x5C72 0x832F
+0x5C73 0x834F
+0x5C74 0x8347
+0x5C75 0x8343
+0x5C76 0x835F
+0x5C77 0x8340
+0x5C78 0x8317
+0x5C79 0x8360
+0x5C7A 0x832D
+0x5C7B 0x833A
+0x5C7C 0x8333
+0x5C7D 0x8366
+0x5C7E 0x8365
+0x5D21 0x8368
+0x5D22 0x831B
+0x5D23 0x8369
+0x5D24 0x836C
+0x5D25 0x836A
+0x5D26-0x5D27 0x836D
+0x5D28 0x83B0
+0x5D29 0x8378
+0x5D2A-0x5D2B 0x83B3
+0x5D2C 0x83A0
+0x5D2D 0x83AA
+0x5D2E 0x8393
+0x5D2F 0x839C
+0x5D30 0x8385
+0x5D31 0x837C
+0x5D32 0x83B6
+0x5D33 0x83A9
+0x5D34 0x837D
+0x5D35 0x83B8
+0x5D36 0x837B
+0x5D37 0x8398
+0x5D38 0x839E
+0x5D39 0x83A8
+0x5D3A 0x83BA
+0x5D3B 0x83BC
+0x5D3C 0x83C1
+0x5D3D 0x8401
+0x5D3E 0x83E5
+0x5D3F 0x83D8
+0x5D40 0x5807
+0x5D41 0x8418
+0x5D42 0x840B
+0x5D43 0x83DD
+0x5D44 0x83FD
+0x5D45 0x83D6
+0x5D46 0x841C
+0x5D47 0x8438
+0x5D48 0x8411
+0x5D49 0x8406
+0x5D4A 0x83D4
+0x5D4B 0x83DF
+0x5D4C 0x840F
+0x5D4D 0x8403
+0x5D4E-0x5D4F 0x83F8
+0x5D50 0x83EA
+0x5D51 0x83C5
+0x5D52 0x83C0
+0x5D53 0x8426
+0x5D54 0x83F0
+0x5D55 0x83E1
+0x5D56 0x845C
+0x5D57 0x8451
+0x5D58 0x845A
+0x5D59 0x8459
+0x5D5A 0x8473
+0x5D5B-0x5D5C 0x8487
+0x5D5D 0x847A
+0x5D5E 0x8489
+0x5D5F 0x8478
+0x5D60 0x843C
+0x5D61 0x8446
+0x5D62 0x8469
+0x5D63 0x8476
+0x5D64 0x848C
+0x5D65 0x848E
+0x5D66 0x8431
+0x5D67 0x846D
+0x5D68 0x84C1
+0x5D69 0x84CD
+0x5D6A 0x84D0
+0x5D6B 0x84E6
+0x5D6C 0x84BD
+0x5D6D 0x84D3
+0x5D6E 0x84CA
+0x5D6F 0x84BF
+0x5D70 0x84BA
+0x5D71 0x84E0
+0x5D72 0x84A1
+0x5D73 0x84B9
+0x5D74 0x84B4
+0x5D75 0x8497
+0x5D76 0x84E5
+0x5D77 0x84E3
+0x5D78 0x850C
+0x5D79 0x750D
+0x5D7A 0x8538
+0x5D7B 0x84F0
+0x5D7C 0x8539
+0x5D7D 0x851F
+0x5D7E 0x853A
+0x5E21 0x8556
+0x5E22 0x853B
+0x5E23 0x84FF
+0x5E24 0x84FC
+0x5E25 0x8559
+0x5E26 0x8548
+0x5E27 0x8568
+0x5E28 0x8564
+0x5E29 0x855E
+0x5E2A 0x857A
+0x5E2B 0x77A2
+0x5E2C 0x8543
+0x5E2D 0x8572
+0x5E2E 0x857B
+0x5E2F 0x85A4
+0x5E30 0x85A8
+0x5E31 0x8587
+0x5E32 0x858F
+0x5E33 0x8579
+0x5E34 0x85AE
+0x5E35 0x859C
+0x5E36 0x8585
+0x5E37 0x85B9
+0x5E38 0x85B7
+0x5E39 0x85B0
+0x5E3A 0x85D3
+0x5E3B 0x85C1
+0x5E3C 0x85DC
+0x5E3D 0x85FF
+0x5E3E 0x8627
+0x5E3F 0x8605
+0x5E40 0x8629
+0x5E41 0x8616
+0x5E42 0x863C
+0x5E43 0x5EFE
+0x5E44 0x5F08
+0x5E45 0x593C
+0x5E46 0x5941
+0x5E47 0x8037
+0x5E48 0x5955
+0x5E49 0x595A
+0x5E4A 0x5958
+0x5E4B 0x530F
+0x5E4C 0x5C22
+0x5E4D 0x5C25
+0x5E4E 0x5C2C
+0x5E4F 0x5C34
+0x5E50 0x624C
+0x5E51 0x626A
+0x5E52 0x629F
+0x5E53 0x62BB
+0x5E54 0x62CA
+0x5E55 0x62DA
+0x5E56 0x62D7
+0x5E57 0x62EE
+0x5E58 0x6322
+0x5E59 0x62F6
+0x5E5A 0x6339
+0x5E5B 0x634B
+0x5E5C 0x6343
+0x5E5D 0x63AD
+0x5E5E 0x63F6
+0x5E5F 0x6371
+0x5E60 0x637A
+0x5E61 0x638E
+0x5E62 0x63B4
+0x5E63 0x636D
+0x5E64 0x63AC
+0x5E65 0x638A
+0x5E66 0x6369
+0x5E67 0x63AE
+0x5E68 0x63BC
+0x5E69 0x63F2
+0x5E6A 0x63F8
+0x5E6B 0x63E0
+0x5E6C 0x63FF
+0x5E6D 0x63C4
+0x5E6E 0x63DE
+0x5E6F 0x63CE
+0x5E70 0x6452
+0x5E71 0x63C6
+0x5E72 0x63BE
+0x5E73 0x6445
+0x5E74 0x6441
+0x5E75 0x640B
+0x5E76 0x641B
+0x5E77 0x6420
+0x5E78 0x640C
+0x5E79 0x6426
+0x5E7A 0x6421
+0x5E7B 0x645E
+0x5E7C 0x6484
+0x5E7D 0x646D
+0x5E7E 0x6496
+0x5F21 0x647A
+0x5F22-0x5F23 0x64B7
+0x5F24 0x6499
+0x5F25 0x64BA
+0x5F26 0x64C0
+0x5F27 0x64D0
+0x5F28 0x64D7
+0x5F29 0x64E4
+0x5F2A 0x64E2
+0x5F2B 0x6509
+0x5F2C 0x6525
+0x5F2D 0x652E
+0x5F2E 0x5F0B
+0x5F2F 0x5FD2
+0x5F30 0x7519
+0x5F31 0x5F11
+0x5F32 0x535F
+0x5F33 0x53F1
+0x5F34 0x53FD
+0x5F35 0x53E9
+0x5F36 0x53E8
+0x5F37 0x53FB
+0x5F38 0x5412
+0x5F39 0x5416
+0x5F3A 0x5406
+0x5F3B 0x544B
+0x5F3C-0x5F3E 0x5452
+0x5F3F 0x5456
+0x5F40 0x5443
+0x5F41 0x5421
+0x5F42 0x5457
+0x5F43 0x5459
+0x5F44 0x5423
+0x5F45 0x5432
+0x5F46 0x5482
+0x5F47 0x5494
+0x5F48 0x5477
+0x5F49 0x5471
+0x5F4A 0x5464
+0x5F4B-0x5F4C 0x549A
+0x5F4D 0x5484
+0x5F4E 0x5476
+0x5F4F 0x5466
+0x5F50 0x549D
+0x5F51 0x54D0
+0x5F52 0x54AD
+0x5F53 0x54C2
+0x5F54 0x54B4
+0x5F55 0x54D2
+0x5F56 0x54A7
+0x5F57 0x54A6
+0x5F58-0x5F59 0x54D3
+0x5F5A 0x5472
+0x5F5B 0x54A3
+0x5F5C 0x54D5
+0x5F5D 0x54BB
+0x5F5E 0x54BF
+0x5F5F 0x54CC
+0x5F60-0x5F61 0x54D9
+0x5F62 0x54DC
+0x5F63-0x5F64 0x54A9
+0x5F65 0x54A4
+0x5F66 0x54DD
+0x5F67 0x54CF
+0x5F68 0x54DE
+0x5F69 0x551B
+0x5F6A 0x54E7
+0x5F6B 0x5520
+0x5F6C 0x54FD
+0x5F6D 0x5514
+0x5F6E 0x54F3
+0x5F6F-0x5F70 0x5522
+0x5F71 0x550F
+0x5F72 0x5511
+0x5F73 0x5527
+0x5F74 0x552A
+0x5F75 0x5567
+0x5F76 0x558F
+0x5F77 0x55B5
+0x5F78 0x5549
+0x5F79 0x556D
+0x5F7A 0x5541
+0x5F7B 0x5555
+0x5F7C 0x553F
+0x5F7D 0x5550
+0x5F7E 0x553C
+0x6021 0x5537
+0x6022 0x5556
+0x6023-0x6025 0x5575
+0x6026 0x5533
+0x6027 0x5530
+0x6028 0x555C
+0x6029 0x558B
+0x602A 0x55D2
+0x602B 0x5583
+0x602C 0x55B1
+0x602D 0x55B9
+0x602E 0x5588
+0x602F 0x5581
+0x6030 0x559F
+0x6031 0x557E
+0x6032 0x55D6
+0x6033 0x5591
+0x6034 0x557B
+0x6035 0x55DF
+0x6036-0x6037 0x55BD
+0x6038 0x5594
+0x6039 0x5599
+0x603A 0x55EA
+0x603B 0x55F7
+0x603C 0x55C9
+0x603D 0x561F
+0x603E 0x55D1
+0x603F-0x6040 0x55EB
+0x6041 0x55D4
+0x6042 0x55E6
+0x6043 0x55DD
+0x6044 0x55C4
+0x6045 0x55EF
+0x6046 0x55E5
+0x6047-0x6048 0x55F2
+0x6049-0x604A 0x55CC
+0x604B 0x55E8
+0x604C 0x55F5
+0x604D 0x55E4
+0x604E 0x8F94
+0x604F 0x561E
+0x6050 0x5608
+0x6051 0x560C
+0x6052 0x5601
+0x6053 0x5624
+0x6054 0x5623
+0x6055 0x55FE
+0x6056 0x5600
+0x6057 0x5627
+0x6058 0x562D
+0x6059 0x5658
+0x605A 0x5639
+0x605B 0x5657
+0x605C 0x562C
+0x605D 0x564D
+0x605E 0x5662
+0x605F 0x5659
+0x6060 0x565C
+0x6061 0x564C
+0x6062 0x5654
+0x6063 0x5686
+0x6064 0x5664
+0x6065 0x5671
+0x6066 0x566B
+0x6067-0x6068 0x567B
+0x6069 0x5685
+0x606A 0x5693
+0x606B 0x56AF
+0x606C 0x56D4
+0x606D 0x56D7
+0x606E 0x56DD
+0x606F 0x56E1
+0x6070 0x56F5
+0x6071 0x56EB
+0x6072 0x56F9
+0x6073 0x56FF
+0x6074 0x5704
+0x6075 0x570A
+0x6076 0x5709
+0x6077 0x571C
+0x6078 0x5E0F
+0x6079 0x5E19
+0x607A 0x5E14
+0x607B 0x5E11
+0x607C 0x5E31
+0x607D-0x607E 0x5E3B
+0x6121 0x5E37
+0x6122 0x5E44
+0x6123 0x5E54
+0x6124 0x5E5B
+0x6125 0x5E5E
+0x6126 0x5E61
+0x6127 0x5C8C
+0x6128 0x5C7A
+0x6129 0x5C8D
+0x612A 0x5C90
+0x612B 0x5C96
+0x612C 0x5C88
+0x612D-0x612E 0x5C98
+0x612F 0x5C91
+0x6130 0x5C9A
+0x6131 0x5C9C
+0x6132 0x5CB5
+0x6133 0x5CA2
+0x6134 0x5CBD
+0x6135 0x5CAC
+0x6136 0x5CAB
+0x6137 0x5CB1
+0x6138 0x5CA3
+0x6139 0x5CC1
+0x613A 0x5CB7
+0x613B 0x5CC4
+0x613C 0x5CD2
+0x613D 0x5CE4
+0x613E 0x5CCB
+0x613F 0x5CE5
+0x6140-0x6141 0x5D02
+0x6142 0x5D27
+0x6143 0x5D26
+0x6144 0x5D2E
+0x6145 0x5D24
+0x6146 0x5D1E
+0x6147 0x5D06
+0x6148 0x5D1B
+0x6149 0x5D58
+0x614A 0x5D3E
+0x614B 0x5D34
+0x614C 0x5D3D
+0x614D 0x5D6C
+0x614E 0x5D5B
+0x614F 0x5D6F
+0x6150 0x5D5D
+0x6151 0x5D6B
+0x6152 0x5D4B
+0x6153 0x5D4A
+0x6154 0x5D69
+0x6155 0x5D74
+0x6156 0x5D82
+0x6157 0x5D99
+0x6158 0x5D9D
+0x6159 0x8C73
+0x615A 0x5DB7
+0x615B 0x5DC5
+0x615C 0x5F73
+0x615D 0x5F77
+0x615E 0x5F82
+0x615F 0x5F87
+0x6160 0x5F89
+0x6161 0x5F8C
+0x6162 0x5F95
+0x6163 0x5F99
+0x6164 0x5F9C
+0x6165 0x5FA8
+0x6166 0x5FAD
+0x6167 0x5FB5
+0x6168 0x5FBC
+0x6169 0x8862
+0x616A 0x5F61
+0x616B 0x72AD
+0x616C 0x72B0
+0x616D 0x72B4
+0x616E-0x616F 0x72B7
+0x6170 0x72C3
+0x6171 0x72C1
+0x6172 0x72CE
+0x6173 0x72CD
+0x6174 0x72D2
+0x6175 0x72E8
+0x6176 0x72EF
+0x6177 0x72E9
+0x6178 0x72F2
+0x6179 0x72F4
+0x617A 0x72F7
+0x617B 0x7301
+0x617C 0x72F3
+0x617D 0x7303
+0x617E 0x72FA
+0x6221 0x72FB
+0x6222 0x7317
+0x6223 0x7313
+0x6224 0x7321
+0x6225 0x730A
+0x6226 0x731E
+0x6227 0x731D
+0x6228 0x7315
+0x6229 0x7322
+0x622A 0x7339
+0x622B 0x7325
+0x622C 0x732C
+0x622D 0x7338
+0x622E 0x7331
+0x622F 0x7350
+0x6230 0x734D
+0x6231 0x7357
+0x6232 0x7360
+0x6233 0x736C
+0x6234 0x736F
+0x6235 0x737E
+0x6236 0x821B
+0x6237 0x5925
+0x6238 0x98E7
+0x6239 0x5924
+0x623A 0x5902
+0x623B 0x9963
+0x623C-0x6241 0x9967
+0x6242 0x9974
+0x6243 0x9977
+0x6244 0x997D
+0x6245 0x9980
+0x6246 0x9984
+0x6247 0x9987
+0x6248 0x998A
+0x6249 0x998D
+0x624A-0x624B 0x9990
+0x624C-0x624E 0x9993
+0x624F 0x5E80
+0x6250 0x5E91
+0x6251 0x5E8B
+0x6252 0x5E96
+0x6253 0x5EA5
+0x6254 0x5EA0
+0x6255 0x5EB9
+0x6256 0x5EB5
+0x6257 0x5EBE
+0x6258 0x5EB3
+0x6259 0x8D53
+0x625A 0x5ED2
+0x625B 0x5ED1
+0x625C 0x5EDB
+0x625D 0x5EE8
+0x625E 0x5EEA
+0x625F 0x81BA
+0x6260 0x5FC4
+0x6261 0x5FC9
+0x6262 0x5FD6
+0x6263 0x5FCF
+0x6264 0x6003
+0x6265 0x5FEE
+0x6266 0x6004
+0x6267 0x5FE1
+0x6268 0x5FE4
+0x6269 0x5FFE
+0x626A-0x626B 0x6005
+0x626C 0x5FEA
+0x626D 0x5FED
+0x626E 0x5FF8
+0x626F 0x6019
+0x6270 0x6035
+0x6271 0x6026
+0x6272 0x601B
+0x6273 0x600F
+0x6274 0x600D
+0x6275 0x6029
+0x6276 0x602B
+0x6277 0x600A
+0x6278 0x603F
+0x6279 0x6021
+0x627A-0x627B 0x6078
+0x627C 0x607B
+0x627D 0x607A
+0x627E 0x6042
+0x6321 0x606A
+0x6322 0x607D
+0x6323 0x6096
+0x6324 0x609A
+0x6325 0x60AD
+0x6326 0x609D
+0x6327 0x6083
+0x6328 0x6092
+0x6329 0x608C
+0x632A 0x609B
+0x632B 0x60EC
+0x632C 0x60BB
+0x632D 0x60B1
+0x632E 0x60DD
+0x632F 0x60D8
+0x6330 0x60C6
+0x6331 0x60DA
+0x6332 0x60B4
+0x6333 0x6120
+0x6334 0x6126
+0x6335 0x6115
+0x6336 0x6123
+0x6337 0x60F4
+0x6338 0x6100
+0x6339 0x610E
+0x633A 0x612B
+0x633B 0x614A
+0x633C 0x6175
+0x633D 0x61AC
+0x633E 0x6194
+0x633F 0x61A7
+0x6340 0x61B7
+0x6341 0x61D4
+0x6342 0x61F5
+0x6343 0x5FDD
+0x6344 0x96B3
+0x6345 0x95E9
+0x6346 0x95EB
+0x6347 0x95F1
+0x6348 0x95F3
+0x6349-0x634A 0x95F5
+0x634B 0x95FC
+0x634C 0x95FE
+0x634D-0x634E 0x9603
+0x634F 0x9606
+0x6350 0x9608
+0x6351-0x6354 0x960A
+0x6355 0x960F
+0x6356 0x9612
+0x6357-0x6359 0x9615
+0x635A-0x635B 0x9619
+0x635C 0x4E2C
+0x635D 0x723F
+0x635E 0x6215
+0x635F 0x6C35
+0x6360 0x6C54
+0x6361 0x6C5C
+0x6362 0x6C4A
+0x6363 0x6CA3
+0x6364 0x6C85
+0x6365 0x6C90
+0x6366 0x6C94
+0x6367 0x6C8C
+0x6368-0x6369 0x6C68
+0x636A 0x6C74
+0x636B 0x6C76
+0x636C 0x6C86
+0x636D 0x6CA9
+0x636E 0x6CD0
+0x636F 0x6CD4
+0x6370 0x6CAD
+0x6371-0x6372 0x6CF7
+0x6373 0x6CF1
+0x6374 0x6CD7
+0x6375 0x6CB2
+0x6376 0x6CE0
+0x6377 0x6CD6
+0x6378 0x6CFA
+0x6379 0x6CEB
+0x637A 0x6CEE
+0x637B 0x6CB1
+0x637C 0x6CD3
+0x637D 0x6CEF
+0x637E 0x6CFE
+0x6421 0x6D39
+0x6422 0x6D27
+0x6423 0x6D0C
+0x6424 0x6D43
+0x6425 0x6D48
+0x6426 0x6D07
+0x6427 0x6D04
+0x6428 0x6D19
+0x6429 0x6D0E
+0x642A 0x6D2B
+0x642B 0x6D4D
+0x642C 0x6D2E
+0x642D 0x6D35
+0x642E 0x6D1A
+0x642F 0x6D4F
+0x6430 0x6D52
+0x6431 0x6D54
+0x6432 0x6D33
+0x6433 0x6D91
+0x6434 0x6D6F
+0x6435 0x6D9E
+0x6436 0x6DA0
+0x6437 0x6D5E
+0x6438-0x6439 0x6D93
+0x643A 0x6D5C
+0x643B 0x6D60
+0x643C 0x6D7C
+0x643D 0x6D63
+0x643E 0x6E1A
+0x643F 0x6DC7
+0x6440 0x6DC5
+0x6441 0x6DDE
+0x6442 0x6E0E
+0x6443 0x6DBF
+0x6444 0x6DE0
+0x6445 0x6E11
+0x6446 0x6DE6
+0x6447 0x6DDD
+0x6448 0x6DD9
+0x6449 0x6E16
+0x644A 0x6DAB
+0x644B 0x6E0C
+0x644C 0x6DAE
+0x644D 0x6E2B
+0x644E 0x6E6E
+0x644F 0x6E4E
+0x6450 0x6E6B
+0x6451 0x6EB2
+0x6452 0x6E5F
+0x6453 0x6E86
+0x6454-0x6455 0x6E53
+0x6456 0x6E32
+0x6457 0x6E25
+0x6458 0x6E44
+0x6459 0x6EDF
+0x645A 0x6EB1
+0x645B 0x6E98
+0x645C 0x6EE0
+0x645D 0x6F2D
+0x645E 0x6EE2
+0x645F 0x6EA5
+0x6460 0x6EA7
+0x6461 0x6EBD
+0x6462 0x6EBB
+0x6463 0x6EB7
+0x6464 0x6ED7
+0x6465 0x6EB4
+0x6466 0x6ECF
+0x6467 0x6E8F
+0x6468 0x6EC2
+0x6469 0x6E9F
+0x646A 0x6F62
+0x646B-0x646C 0x6F46
+0x646D 0x6F24
+0x646E 0x6F15
+0x646F 0x6EF9
+0x6470 0x6F2F
+0x6471 0x6F36
+0x6472 0x6F4B
+0x6473 0x6F74
+0x6474 0x6F2A
+0x6475 0x6F09
+0x6476 0x6F29
+0x6477 0x6F89
+0x6478 0x6F8D
+0x6479 0x6F8C
+0x647A 0x6F78
+0x647B 0x6F72
+0x647C 0x6F7C
+0x647D 0x6F7A
+0x647E 0x6FD1
+0x6521 0x6FC9
+0x6522 0x6FA7
+0x6523 0x6FB9
+0x6524 0x6FB6
+0x6525 0x6FC2
+0x6526 0x6FE1
+0x6527 0x6FEE
+0x6528 0x6FDE
+0x6529 0x6FE0
+0x652A 0x6FEF
+0x652B 0x701A
+0x652C 0x7023
+0x652D 0x701B
+0x652E 0x7039
+0x652F 0x7035
+0x6530 0x704F
+0x6531 0x705E
+0x6532 0x5B80
+0x6533 0x5B84
+0x6534 0x5B95
+0x6535 0x5B93
+0x6536 0x5BA5
+0x6537 0x5BB8
+0x6538 0x752F
+0x6539 0x9A9E
+0x653A 0x6434
+0x653B 0x5BE4
+0x653C 0x5BEE
+0x653D 0x8930
+0x653E 0x5BF0
+0x653F 0x8E47
+0x6540 0x8B07
+0x6541 0x8FB6
+0x6542 0x8FD3
+0x6543 0x8FD5
+0x6544 0x8FE5
+0x6545 0x8FEE
+0x6546 0x8FE4
+0x6547 0x8FE9
+0x6548 0x8FE6
+0x6549 0x8FF3
+0x654A 0x8FE8
+0x654B 0x9005
+0x654C 0x9004
+0x654D 0x900B
+0x654E 0x9026
+0x654F 0x9011
+0x6550 0x900D
+0x6551 0x9016
+0x6552 0x9021
+0x6553-0x6554 0x9035
+0x6555 0x902D
+0x6556 0x902F
+0x6557 0x9044
+0x6558-0x6559 0x9051
+0x655A 0x9050
+0x655B 0x9068
+0x655C 0x9058
+0x655D 0x9062
+0x655E 0x905B
+0x655F 0x66B9
+0x6560 0x9074
+0x6561 0x907D
+0x6562 0x9082
+0x6563 0x9088
+0x6564 0x9083
+0x6565 0x908B
+0x6566 0x5F50
+0x6567 0x5F57
+0x6568 0x5F56
+0x6569 0x5F58
+0x656A 0x5C3B
+0x656B 0x54AB
+0x656C 0x5C50
+0x656D 0x5C59
+0x656E 0x5B71
+0x656F 0x5C63
+0x6570 0x5C66
+0x6571 0x7FBC
+0x6572 0x5F2A
+0x6573 0x5F29
+0x6574 0x5F2D
+0x6575 0x8274
+0x6576 0x5F3C
+0x6577 0x9B3B
+0x6578 0x5C6E
+0x6579 0x5981
+0x657A 0x5983
+0x657B 0x598D
+0x657C-0x657D 0x59A9
+0x657E 0x59A3
+0x6621 0x5997
+0x6622 0x59CA
+0x6623 0x59AB
+0x6624 0x599E
+0x6625 0x59A4
+0x6626 0x59D2
+0x6627 0x59B2
+0x6628 0x59AF
+0x6629 0x59D7
+0x662A 0x59BE
+0x662B-0x662C 0x5A05
+0x662D 0x59DD
+0x662E 0x5A08
+0x662F 0x59E3
+0x6630 0x59D8
+0x6631 0x59F9
+0x6632 0x5A0C
+0x6633 0x5A09
+0x6634 0x5A32
+0x6635 0x5A34
+0x6636 0x5A11
+0x6637 0x5A23
+0x6638 0x5A13
+0x6639 0x5A40
+0x663A 0x5A67
+0x663B 0x5A4A
+0x663C 0x5A55
+0x663D 0x5A3C
+0x663E 0x5A62
+0x663F 0x5A75
+0x6640 0x80EC
+0x6641 0x5AAA
+0x6642 0x5A9B
+0x6643 0x5A77
+0x6644 0x5A7A
+0x6645 0x5ABE
+0x6646 0x5AEB
+0x6647 0x5AB2
+0x6648 0x5AD2
+0x6649 0x5AD4
+0x664A 0x5AB8
+0x664B 0x5AE0
+0x664C 0x5AE3
+0x664D 0x5AF1
+0x664E 0x5AD6
+0x664F 0x5AE6
+0x6650 0x5AD8
+0x6651 0x5ADC
+0x6652 0x5B09
+0x6653 0x5B17
+0x6654 0x5B16
+0x6655 0x5B32
+0x6656 0x5B37
+0x6657 0x5B40
+0x6658 0x5C15
+0x6659 0x5C1C
+0x665A 0x5B5A
+0x665B 0x5B65
+0x665C 0x5B73
+0x665D 0x5B51
+0x665E 0x5B53
+0x665F 0x5B62
+0x6660 0x9A75
+0x6661-0x6662 0x9A77
+0x6663 0x9A7A
+0x6664 0x9A7F
+0x6665 0x9A7D
+0x6666-0x6667 0x9A80
+0x6668 0x9A85
+0x6669 0x9A88
+0x666A 0x9A8A
+0x666B 0x9A90
+0x666C-0x666D 0x9A92
+0x666E 0x9A96
+0x666F 0x9A98
+0x6670-0x6672 0x9A9B
+0x6673-0x6674 0x9A9F
+0x6675-0x6676 0x9AA2
+0x6677 0x9AA5
+0x6678 0x9AA7
+0x6679 0x7E9F
+0x667A 0x7EA1
+0x667B 0x7EA3
+0x667C 0x7EA5
+0x667D-0x667E 0x7EA8
+0x6721 0x7EAD
+0x6722 0x7EB0
+0x6723 0x7EBE
+0x6724-0x6726 0x7EC0
+0x6727 0x7EC9
+0x6728-0x6729 0x7ECB
+0x672A 0x7ED0
+0x672B 0x7ED4
+0x672C 0x7ED7
+0x672D 0x7EDB
+0x672E-0x672F 0x7EE0
+0x6730 0x7EE8
+0x6731 0x7EEB
+0x6732-0x6733 0x7EEE
+0x6734-0x6735 0x7EF1
+0x6736 0x7F0D
+0x6737 0x7EF6
+0x6738-0x6739 0x7EFA
+0x673A 0x7EFE
+0x673B-0x673D 0x7F01
+0x673E-0x673F 0x7F07
+0x6740-0x6741 0x7F0B
+0x6742 0x7F0F
+0x6743-0x6744 0x7F11
+0x6745 0x7F17
+0x6746 0x7F19
+0x6747 0x7F1C
+0x6748 0x7F1B
+0x6749 0x7F1F
+0x674A-0x6750 0x7F21
+0x6751-0x6754 0x7F2A
+0x6755-0x6759 0x7F2F
+0x675A 0x7F35
+0x675B 0x5E7A
+0x675C 0x757F
+0x675D 0x5DDB
+0x675E 0x753E
+0x675F 0x9095
+0x6760 0x738E
+0x6761 0x7391
+0x6762 0x73AE
+0x6763 0x73A2
+0x6764 0x739F
+0x6765 0x73CF
+0x6766 0x73C2
+0x6767 0x73D1
+0x6768 0x73B7
+0x6769 0x73B3
+0x676A 0x73C0
+0x676B 0x73C9
+0x676C 0x73C8
+0x676D 0x73E5
+0x676E 0x73D9
+0x676F 0x987C
+0x6770 0x740A
+0x6771 0x73E9
+0x6772 0x73E7
+0x6773 0x73DE
+0x6774 0x73BA
+0x6775 0x73F2
+0x6776 0x740F
+0x6777 0x742A
+0x6778 0x745B
+0x6779 0x7426
+0x677A 0x7425
+0x677B 0x7428
+0x677C 0x7430
+0x677D 0x742E
+0x677E 0x742C
+0x6821 0x741B
+0x6822 0x741A
+0x6823 0x7441
+0x6824 0x745C
+0x6825 0x7457
+0x6826 0x7455
+0x6827 0x7459
+0x6828 0x7477
+0x6829 0x746D
+0x682A 0x747E
+0x682B 0x749C
+0x682C 0x748E
+0x682D-0x682E 0x7480
+0x682F 0x7487
+0x6830 0x748B
+0x6831 0x749E
+0x6832-0x6833 0x74A8
+0x6834 0x7490
+0x6835 0x74A7
+0x6836 0x74D2
+0x6837 0x74BA
+0x6838-0x683A 0x97EA
+0x683B 0x674C
+0x683C 0x6753
+0x683D 0x675E
+0x683E 0x6748
+0x683F 0x6769
+0x6840 0x67A5
+0x6841 0x6787
+0x6842 0x676A
+0x6843 0x6773
+0x6844 0x6798
+0x6845 0x67A7
+0x6846 0x6775
+0x6847 0x67A8
+0x6848 0x679E
+0x6849 0x67AD
+0x684A 0x678B
+0x684B 0x6777
+0x684C 0x677C
+0x684D 0x67F0
+0x684E 0x6809
+0x684F 0x67D8
+0x6850 0x680A
+0x6851 0x67E9
+0x6852 0x67B0
+0x6853 0x680C
+0x6854 0x67D9
+0x6855 0x67B5
+0x6856 0x67DA
+0x6857 0x67B3
+0x6858 0x67DD
+0x6859 0x6800
+0x685A 0x67C3
+0x685B 0x67B8
+0x685C 0x67E2
+0x685D 0x680E
+0x685E 0x67C1
+0x685F 0x67FD
+0x6860-0x6861 0x6832
+0x6862-0x6863 0x6860
+0x6864 0x684E
+0x6865 0x6862
+0x6866 0x6844
+0x6867 0x6864
+0x6868 0x6883
+0x6869 0x681D
+0x686A 0x6855
+0x686B 0x6866
+0x686C 0x6841
+0x686D 0x6867
+0x686E 0x6840
+0x686F 0x683E
+0x6870 0x684A
+0x6871 0x6849
+0x6872 0x6829
+0x6873 0x68B5
+0x6874 0x688F
+0x6875 0x6874
+0x6876 0x6877
+0x6877 0x6893
+0x6878 0x686B
+0x6879 0x68C2
+0x687A 0x696E
+0x687B 0x68FC
+0x687C-0x687D 0x691F
+0x687E 0x68F9
+0x6921 0x6924
+0x6922 0x68F0
+0x6923 0x690B
+0x6924 0x6901
+0x6925 0x6957
+0x6926 0x68E3
+0x6927 0x6910
+0x6928 0x6971
+0x6929 0x6939
+0x692A 0x6960
+0x692B 0x6942
+0x692C 0x695D
+0x692D 0x6984
+0x692E 0x696B
+0x692F 0x6980
+0x6930 0x6998
+0x6931 0x6978
+0x6932 0x6934
+0x6933 0x69CC
+0x6934-0x6935 0x6987
+0x6936 0x69CE
+0x6937 0x6989
+0x6938 0x6966
+0x6939 0x6963
+0x693A 0x6979
+0x693B 0x699B
+0x693C 0x69A7
+0x693D 0x69BB
+0x693E 0x69AB
+0x693F 0x69AD
+0x6940 0x69D4
+0x6941 0x69B1
+0x6942 0x69C1
+0x6943 0x69CA
+0x6944 0x69DF
+0x6945 0x6995
+0x6946 0x69E0
+0x6947 0x698D
+0x6948 0x69FF
+0x6949 0x6A2F
+0x694A 0x69ED
+0x694B-0x694C 0x6A17
+0x694D 0x6A65
+0x694E 0x69F2
+0x694F 0x6A44
+0x6950 0x6A3E
+0x6951 0x6AA0
+0x6952 0x6A50
+0x6953 0x6A5B
+0x6954 0x6A35
+0x6955 0x6A8E
+0x6956 0x6A79
+0x6957 0x6A3D
+0x6958 0x6A28
+0x6959 0x6A58
+0x695A 0x6A7C
+0x695B 0x6A91
+0x695C 0x6A90
+0x695D 0x6AA9
+0x695E 0x6A97
+0x695F 0x6AAB
+0x6960 0x7337
+0x6961 0x7352
+0x6962-0x6963 0x6B81
+0x6964 0x6B87
+0x6965 0x6B84
+0x6966-0x6967 0x6B92
+0x6968 0x6B8D
+0x6969-0x696A 0x6B9A
+0x696B 0x6BA1
+0x696C 0x6BAA
+0x696D 0x8F6B
+0x696E 0x8F6D
+0x696F-0x6971 0x8F71
+0x6972-0x6973 0x8F75
+0x6974 0x8F78
+0x6975 0x8F77
+0x6976-0x6977 0x8F79
+0x6978 0x8F7C
+0x6979 0x8F7E
+0x697A-0x697B 0x8F81
+0x697C 0x8F84
+0x697D 0x8F87
+0x697E 0x8F8B
+0x6A21-0x6A23 0x8F8D
+0x6A24 0x8F98
+0x6A25 0x8F9A
+0x6A26 0x8ECE
+0x6A27 0x620B
+0x6A28 0x6217
+0x6A29 0x621B
+0x6A2A 0x621F
+0x6A2B 0x6222
+0x6A2C 0x6221
+0x6A2D 0x6225
+0x6A2E 0x6224
+0x6A2F 0x622C
+0x6A30 0x81E7
+0x6A31 0x74EF
+0x6A32 0x74F4
+0x6A33 0x74FF
+0x6A34 0x750F
+0x6A35 0x7511
+0x6A36 0x7513
+0x6A37 0x6534
+0x6A38-0x6A3A 0x65EE
+0x6A3B 0x660A
+0x6A3C 0x6619
+0x6A3D 0x6772
+0x6A3E 0x6603
+0x6A3F 0x6615
+0x6A40 0x6600
+0x6A41 0x7085
+0x6A42 0x66F7
+0x6A43 0x661D
+0x6A44 0x6634
+0x6A45 0x6631
+0x6A46 0x6636
+0x6A47 0x6635
+0x6A48 0x8006
+0x6A49 0x665F
+0x6A4A 0x6654
+0x6A4B 0x6641
+0x6A4C 0x664F
+0x6A4D 0x6656
+0x6A4E 0x6661
+0x6A4F 0x6657
+0x6A50 0x6677
+0x6A51 0x6684
+0x6A52 0x668C
+0x6A53 0x66A7
+0x6A54 0x669D
+0x6A55 0x66BE
+0x6A56-0x6A57 0x66DB
+0x6A58 0x66E6
+0x6A59 0x66E9
+0x6A5A-0x6A5B 0x8D32
+0x6A5C 0x8D36
+0x6A5D 0x8D3B
+0x6A5E 0x8D3D
+0x6A5F 0x8D40
+0x6A60-0x6A61 0x8D45
+0x6A62-0x6A63 0x8D48
+0x6A64 0x8D47
+0x6A65 0x8D4D
+0x6A66 0x8D55
+0x6A67 0x8D59
+0x6A68 0x89C7
+0x6A69-0x6A6B 0x89CA
+0x6A6C-0x6A6F 0x89CE
+0x6A70 0x726E
+0x6A71 0x729F
+0x6A72 0x725D
+0x6A73 0x7266
+0x6A74 0x726F
+0x6A75-0x6A76 0x727E
+0x6A77 0x7284
+0x6A78 0x728B
+0x6A79 0x728D
+0x6A7A 0x728F
+0x6A7B 0x7292
+0x6A7C 0x6308
+0x6A7D 0x6332
+0x6A7E 0x63B0
+0x6B21 0x643F
+0x6B22 0x64D8
+0x6B23 0x8004
+0x6B24 0x6BEA
+0x6B25 0x6BF3
+0x6B26 0x6BFD
+0x6B27 0x6BF5
+0x6B28 0x6BF9
+0x6B29 0x6C05
+0x6B2A 0x6C07
+0x6B2B 0x6C06
+0x6B2C 0x6C0D
+0x6B2D 0x6C15
+0x6B2E-0x6B30 0x6C18
+0x6B31 0x6C21
+0x6B32 0x6C29
+0x6B33 0x6C24
+0x6B34 0x6C2A
+0x6B35 0x6C32
+0x6B36 0x6535
+0x6B37 0x6555
+0x6B38 0x656B
+0x6B39 0x724D
+0x6B3A 0x7252
+0x6B3B 0x7256
+0x6B3C 0x7230
+0x6B3D 0x8662
+0x6B3E 0x5216
+0x6B3F 0x809F
+0x6B40 0x809C
+0x6B41 0x8093
+0x6B42 0x80BC
+0x6B43 0x670A
+0x6B44 0x80BD
+0x6B45 0x80B1
+0x6B46 0x80AB
+0x6B47 0x80AD
+0x6B48 0x80B4
+0x6B49 0x80B7
+0x6B4A-0x6B4D 0x80E7
+0x6B4E 0x80DB
+0x6B4F 0x80C2
+0x6B50 0x80C4
+0x6B51 0x80D9
+0x6B52 0x80CD
+0x6B53 0x80D7
+0x6B54 0x6710
+0x6B55 0x80DD
+0x6B56 0x80EB
+0x6B57 0x80F1
+0x6B58 0x80F4
+0x6B59 0x80ED
+0x6B5A-0x6B5B 0x810D
+0x6B5C 0x80F2
+0x6B5D 0x80FC
+0x6B5E 0x6715
+0x6B5F 0x8112
+0x6B60 0x8C5A
+0x6B61 0x8136
+0x6B62 0x811E
+0x6B63 0x812C
+0x6B64 0x8118
+0x6B65 0x8132
+0x6B66 0x8148
+0x6B67 0x814C
+0x6B68 0x8153
+0x6B69 0x8174
+0x6B6A-0x6B6B 0x8159
+0x6B6C 0x8171
+0x6B6D 0x8160
+0x6B6E 0x8169
+0x6B6F-0x6B70 0x817C
+0x6B71 0x816D
+0x6B72 0x8167
+0x6B73 0x584D
+0x6B74 0x5AB5
+0x6B75 0x8188
+0x6B76 0x8182
+0x6B77 0x8191
+0x6B78 0x6ED5
+0x6B79 0x81A3
+0x6B7A 0x81AA
+0x6B7B 0x81CC
+0x6B7C 0x6726
+0x6B7D 0x81CA
+0x6B7E 0x81BB
+0x6C21 0x81C1
+0x6C22 0x81A6
+0x6C23 0x6B24
+0x6C24 0x6B37
+0x6C25 0x6B39
+0x6C26 0x6B43
+0x6C27 0x6B46
+0x6C28 0x6B59
+0x6C29-0x6C2B 0x98D1
+0x6C2C 0x98D5
+0x6C2D-0x6C2E 0x98D9
+0x6C2F 0x6BB3
+0x6C30 0x5F40
+0x6C31 0x6BC2
+0x6C32 0x89F3
+0x6C33 0x6590
+0x6C34 0x9F51
+0x6C35 0x6593
+0x6C36 0x65BC
+0x6C37 0x65C6
+0x6C38 0x65C4
+0x6C39 0x65C3
+0x6C3A 0x65CC
+0x6C3B 0x65CE
+0x6C3C 0x65D2
+0x6C3D 0x65D6
+0x6C3E 0x7080
+0x6C3F 0x709C
+0x6C40 0x7096
+0x6C41 0x709D
+0x6C42 0x70BB
+0x6C43 0x70C0
+0x6C44 0x70B7
+0x6C45 0x70AB
+0x6C46 0x70B1
+0x6C47 0x70E8
+0x6C48 0x70CA
+0x6C49 0x7110
+0x6C4A 0x7113
+0x6C4B 0x7116
+0x6C4C 0x712F
+0x6C4D 0x7131
+0x6C4E 0x7173
+0x6C4F 0x715C
+0x6C50 0x7168
+0x6C51 0x7145
+0x6C52 0x7172
+0x6C53 0x714A
+0x6C54 0x7178
+0x6C55 0x717A
+0x6C56 0x7198
+0x6C57 0x71B3
+0x6C58 0x71B5
+0x6C59 0x71A8
+0x6C5A 0x71A0
+0x6C5B 0x71E0
+0x6C5C 0x71D4
+0x6C5D 0x71E7
+0x6C5E 0x71F9
+0x6C5F 0x721D
+0x6C60 0x7228
+0x6C61 0x706C
+0x6C62 0x7118
+0x6C63 0x7166
+0x6C64 0x71B9
+0x6C65 0x623E
+0x6C66 0x623D
+0x6C67 0x6243
+0x6C68-0x6C69 0x6248
+0x6C6A 0x793B
+0x6C6B 0x7940
+0x6C6C 0x7946
+0x6C6D 0x7949
+0x6C6E-0x6C6F 0x795B
+0x6C70 0x7953
+0x6C71 0x795A
+0x6C72 0x7962
+0x6C73 0x7957
+0x6C74 0x7960
+0x6C75 0x796F
+0x6C76 0x7967
+0x6C77 0x797A
+0x6C78 0x7985
+0x6C79 0x798A
+0x6C7A 0x799A
+0x6C7B 0x79A7
+0x6C7C 0x79B3
+0x6C7D 0x5FD1
+0x6C7E 0x5FD0
+0x6D21 0x603C
+0x6D22 0x605D
+0x6D23 0x605A
+0x6D24 0x6067
+0x6D25 0x6041
+0x6D26 0x6059
+0x6D27 0x6063
+0x6D28 0x60AB
+0x6D29 0x6106
+0x6D2A 0x610D
+0x6D2B 0x615D
+0x6D2C 0x61A9
+0x6D2D 0x619D
+0x6D2E 0x61CB
+0x6D2F 0x61D1
+0x6D30 0x6206
+0x6D31 0x8080
+0x6D32 0x807F
+0x6D33 0x6C93
+0x6D34 0x6CF6
+0x6D35 0x6DFC
+0x6D36 0x77F6
+0x6D37 0x77F8
+0x6D38 0x7800
+0x6D39 0x7809
+0x6D3A-0x6D3B 0x7817
+0x6D3C 0x7811
+0x6D3D 0x65AB
+0x6D3E 0x782D
+0x6D3F-0x6D40 0x781C
+0x6D41-0x6D43 0x7839
+0x6D44 0x781F
+0x6D45 0x783C
+0x6D46 0x7825
+0x6D47 0x782C
+0x6D48 0x7823
+0x6D49 0x7829
+0x6D4A 0x784E
+0x6D4B 0x786D
+0x6D4C-0x6D4D 0x7856
+0x6D4E 0x7826
+0x6D4F 0x7850
+0x6D50 0x7847
+0x6D51 0x784C
+0x6D52 0x786A
+0x6D53 0x789B
+0x6D54 0x7893
+0x6D55 0x789A
+0x6D56 0x7887
+0x6D57 0x789C
+0x6D58 0x78A1
+0x6D59 0x78A3
+0x6D5A 0x78B2
+0x6D5B 0x78B9
+0x6D5C 0x78A5
+0x6D5D 0x78D4
+0x6D5E 0x78D9
+0x6D5F 0x78C9
+0x6D60 0x78EC
+0x6D61 0x78F2
+0x6D62 0x7905
+0x6D63 0x78F4
+0x6D64 0x7913
+0x6D65 0x7924
+0x6D66 0x791E
+0x6D67 0x7934
+0x6D68 0x9F9B
+0x6D69 0x9EF9
+0x6D6A-0x6D6B 0x9EFB
+0x6D6C 0x76F1
+0x6D6D 0x7704
+0x6D6E 0x770D
+0x6D6F 0x76F9
+0x6D70-0x6D71 0x7707
+0x6D72 0x771A
+0x6D73 0x7722
+0x6D74 0x7719
+0x6D75 0x772D
+0x6D76 0x7726
+0x6D77 0x7735
+0x6D78 0x7738
+0x6D79-0x6D7A 0x7750
+0x6D7B 0x7747
+0x6D7C 0x7743
+0x6D7D 0x775A
+0x6D7E 0x7768
+0x6E21 0x7762
+0x6E22 0x7765
+0x6E23 0x777F
+0x6E24 0x778D
+0x6E25 0x777D
+0x6E26 0x7780
+0x6E27 0x778C
+0x6E28 0x7791
+0x6E29-0x6E2A 0x779F
+0x6E2B 0x77B0
+0x6E2C 0x77B5
+0x6E2D 0x77BD
+0x6E2E 0x753A
+0x6E2F 0x7540
+0x6E30 0x754E
+0x6E31 0x754B
+0x6E32 0x7548
+0x6E33 0x755B
+0x6E34 0x7572
+0x6E35 0x7579
+0x6E36 0x7583
+0x6E37 0x7F58
+0x6E38 0x7F61
+0x6E39 0x7F5F
+0x6E3A 0x8A48
+0x6E3B 0x7F68
+0x6E3C 0x7F74
+0x6E3D 0x7F71
+0x6E3E 0x7F79
+0x6E3F 0x7F81
+0x6E40 0x7F7E
+0x6E41 0x76CD
+0x6E42 0x76E5
+0x6E43 0x8832
+0x6E44-0x6E46 0x9485
+0x6E47 0x948B
+0x6E48 0x948A
+0x6E49-0x6E4A 0x948C
+0x6E4B-0x6E4C 0x948F
+0x6E4D 0x9494
+0x6E4E 0x9497
+0x6E4F 0x9495
+0x6E50-0x6E52 0x949A
+0x6E53-0x6E54 0x94A3
+0x6E55 0x94AB
+0x6E56 0x94AA
+0x6E57 0x94AD
+0x6E58 0x94AC
+0x6E59-0x6E5A 0x94AF
+0x6E5B 0x94B2
+0x6E5C 0x94B4
+0x6E5D-0x6E61 0x94B6
+0x6E62-0x6E63 0x94BC
+0x6E64 0x94BF
+0x6E65 0x94C4
+0x6E66-0x6E6C 0x94C8
+0x6E6D-0x6E6F 0x94D0
+0x6E70-0x6E72 0x94D5
+0x6E73 0x94D9
+0x6E74 0x94D8
+0x6E75 0x94DB
+0x6E76-0x6E78 0x94DE
+0x6E79 0x94E2
+0x6E7A-0x6E7B 0x94E4
+0x6E7C-0x6E7D 0x94E7
+0x6E7E 0x94EA
+0x6F21 0x94E9
+0x6F22 0x94EB
+0x6F23-0x6F24 0x94EE
+0x6F25-0x6F27 0x94F3
+0x6F28 0x94F7
+0x6F29 0x94F9
+0x6F2A-0x6F2B 0x94FC
+0x6F2C 0x94FF
+0x6F2D 0x9503
+0x6F2E 0x9502
+0x6F2F-0x6F30 0x9506
+0x6F31-0x6F32 0x9509
+0x6F33-0x6F35 0x950D
+0x6F36-0x6F3A 0x9512
+0x6F3B 0x9518
+0x6F3C 0x951B
+0x6F3D-0x6F3F 0x951D
+0x6F40 0x9522
+0x6F41-0x6F42 0x952A
+0x6F43 0x9529
+0x6F44 0x952C
+0x6F45-0x6F46 0x9531
+0x6F47 0x9534
+0x6F48-0x6F4A 0x9536
+0x6F4B 0x953C
+0x6F4C-0x6F4D 0x953E
+0x6F4E 0x9542
+0x6F4F 0x9535
+0x6F50-0x6F52 0x9544
+0x6F53 0x9549
+0x6F54 0x954C
+0x6F55-0x6F56 0x954E
+0x6F57-0x6F59 0x9552
+0x6F5A-0x6F5D 0x9556
+0x6F5E 0x955B
+0x6F5F-0x6F60 0x955E
+0x6F61 0x955D
+0x6F62-0x6F63 0x9561
+0x6F64-0x6F6C 0x9564
+0x6F6D 0x956F
+0x6F6E-0x6F70 0x9571
+0x6F71 0x953A
+0x6F72 0x77E7
+0x6F73 0x77EC
+0x6F74 0x96C9
+0x6F75 0x79D5
+0x6F76 0x79ED
+0x6F77 0x79E3
+0x6F78 0x79EB
+0x6F79 0x7A06
+0x6F7A 0x5D47
+0x6F7B 0x7A03
+0x6F7C 0x7A02
+0x6F7D 0x7A1E
+0x6F7E 0x7A14
+0x7021 0x7A39
+0x7022 0x7A37
+0x7023 0x7A51
+0x7024 0x9ECF
+0x7025 0x99A5
+0x7026 0x7A70
+0x7027 0x7688
+0x7028 0x768E
+0x7029 0x7693
+0x702A 0x7699
+0x702B 0x76A4
+0x702C 0x74DE
+0x702D 0x74E0
+0x702E 0x752C
+0x702F 0x9E20
+0x7030 0x9E22
+0x7031-0x7035 0x9E28
+0x7036 0x9E32
+0x7037 0x9E31
+0x7038 0x9E36
+0x7039 0x9E38
+0x703A 0x9E37
+0x703B-0x703C 0x9E39
+0x703D 0x9E3E
+0x703E-0x703F 0x9E41
+0x7040 0x9E44
+0x7041-0x7044 0x9E46
+0x7045-0x7046 0x9E4B
+0x7047 0x9E4E
+0x7048 0x9E51
+0x7049 0x9E55
+0x704A 0x9E57
+0x704B-0x704D 0x9E5A
+0x704E 0x9E5E
+0x704F 0x9E63
+0x7050-0x7056 0x9E66
+0x7057 0x9E71
+0x7058 0x9E6D
+0x7059 0x9E73
+0x705A 0x7592
+0x705B 0x7594
+0x705C 0x7596
+0x705D 0x75A0
+0x705E 0x759D
+0x705F 0x75AC
+0x7060 0x75A3
+0x7061-0x7062 0x75B3
+0x7063 0x75B8
+0x7064 0x75C4
+0x7065 0x75B1
+0x7066 0x75B0
+0x7067 0x75C3
+0x7068 0x75C2
+0x7069 0x75D6
+0x706A 0x75CD
+0x706B 0x75E3
+0x706C 0x75E8
+0x706D 0x75E6
+0x706E 0x75E4
+0x706F 0x75EB
+0x7070 0x75E7
+0x7071 0x7603
+0x7072 0x75F1
+0x7073 0x75FC
+0x7074 0x75FF
+0x7075 0x7610
+0x7076 0x7600
+0x7077 0x7605
+0x7078 0x760C
+0x7079 0x7617
+0x707A 0x760A
+0x707B 0x7625
+0x707C 0x7618
+0x707D 0x7615
+0x707E 0x7619
+0x7121 0x761B
+0x7122 0x763C
+0x7123 0x7622
+0x7124 0x7620
+0x7125 0x7640
+0x7126 0x762D
+0x7127 0x7630
+0x7128 0x763F
+0x7129 0x7635
+0x712A 0x7643
+0x712B 0x763E
+0x712C 0x7633
+0x712D 0x764D
+0x712E 0x765E
+0x712F 0x7654
+0x7130 0x765C
+0x7131 0x7656
+0x7132 0x766B
+0x7133 0x766F
+0x7134 0x7FCA
+0x7135 0x7AE6
+0x7136-0x7137 0x7A78
+0x7138 0x7A80
+0x7139 0x7A86
+0x713A 0x7A88
+0x713B 0x7A95
+0x713C 0x7AA6
+0x713D 0x7AA0
+0x713E 0x7AAC
+0x713F 0x7AA8
+0x7140 0x7AAD
+0x7141 0x7AB3
+0x7142 0x8864
+0x7143 0x8869
+0x7144 0x8872
+0x7145 0x887D
+0x7146 0x887F
+0x7147 0x8882
+0x7148 0x88A2
+0x7149 0x88C6
+0x714A 0x88B7
+0x714B 0x88BC
+0x714C 0x88C9
+0x714D 0x88E2
+0x714E 0x88CE
+0x714F 0x88E3
+0x7150 0x88E5
+0x7151 0x88F1
+0x7152 0x891A
+0x7153 0x88FC
+0x7154 0x88E8
+0x7155 0x88FE
+0x7156 0x88F0
+0x7157 0x8921
+0x7158 0x8919
+0x7159 0x8913
+0x715A 0x891B
+0x715B 0x890A
+0x715C 0x8934
+0x715D 0x892B
+0x715E 0x8936
+0x715F 0x8941
+0x7160 0x8966
+0x7161 0x897B
+0x7162 0x758B
+0x7163 0x80E5
+0x7164 0x76B2
+0x7165 0x76B4
+0x7166 0x77DC
+0x7167 0x8012
+0x7168 0x8014
+0x7169 0x8016
+0x716A 0x801C
+0x716B 0x8020
+0x716C 0x8022
+0x716D-0x716F 0x8025
+0x7170 0x8029
+0x7171 0x8028
+0x7172 0x8031
+0x7173 0x800B
+0x7174 0x8035
+0x7175 0x8043
+0x7176 0x8046
+0x7177 0x804D
+0x7178 0x8052
+0x7179 0x8069
+0x717A 0x8071
+0x717B 0x8983
+0x717C 0x9878
+0x717D 0x9880
+0x717E 0x9883
+0x7221 0x9889
+0x7222-0x7223 0x988C
+0x7224 0x988F
+0x7225 0x9894
+0x7226-0x7227 0x989A
+0x7228-0x7229 0x989E
+0x722A-0x722B 0x98A1
+0x722C-0x722D 0x98A5
+0x722E 0x864D
+0x722F 0x8654
+0x7230 0x866C
+0x7231 0x866E
+0x7232 0x867F
+0x7233 0x867A
+0x7234 0x867C
+0x7235 0x867B
+0x7236 0x86A8
+0x7237 0x868D
+0x7238 0x868B
+0x7239 0x86AC
+0x723A 0x869D
+0x723B 0x86A7
+0x723C 0x86A3
+0x723D 0x86AA
+0x723E 0x8693
+0x723F 0x86A9
+0x7240 0x86B6
+0x7241 0x86C4
+0x7242 0x86B5
+0x7243 0x86CE
+0x7244 0x86B0
+0x7245 0x86BA
+0x7246 0x86B1
+0x7247 0x86AF
+0x7248 0x86C9
+0x7249 0x86CF
+0x724A 0x86B4
+0x724B 0x86E9
+0x724C-0x724D 0x86F1
+0x724E 0x86ED
+0x724F 0x86F3
+0x7250 0x86D0
+0x7251 0x8713
+0x7252 0x86DE
+0x7253 0x86F4
+0x7254 0x86DF
+0x7255 0x86D8
+0x7256 0x86D1
+0x7257 0x8703
+0x7258 0x8707
+0x7259 0x86F8
+0x725A 0x8708
+0x725B 0x870A
+0x725C 0x870D
+0x725D 0x8709
+0x725E 0x8723
+0x725F 0x873B
+0x7260 0x871E
+0x7261 0x8725
+0x7262 0x872E
+0x7263 0x871A
+0x7264 0x873E
+0x7265 0x8748
+0x7266 0x8734
+0x7267 0x8731
+0x7268 0x8729
+0x7269 0x8737
+0x726A 0x873F
+0x726B 0x8782
+0x726C 0x8722
+0x726D-0x726E 0x877D
+0x726F 0x877B
+0x7270 0x8760
+0x7271 0x8770
+0x7272 0x874C
+0x7273 0x876E
+0x7274 0x878B
+0x7275 0x8753
+0x7276 0x8763
+0x7277 0x877C
+0x7278 0x8764
+0x7279 0x8759
+0x727A 0x8765
+0x727B 0x8793
+0x727C 0x87AF
+0x727D 0x87A8
+0x727E 0x87D2
+0x7321 0x87C6
+0x7322 0x8788
+0x7323 0x8785
+0x7324 0x87AD
+0x7325 0x8797
+0x7326 0x8783
+0x7327 0x87AB
+0x7328 0x87E5
+0x7329 0x87AC
+0x732A 0x87B5
+0x732B 0x87B3
+0x732C 0x87CB
+0x732D 0x87D3
+0x732E 0x87BD
+0x732F 0x87D1
+0x7330 0x87C0
+0x7331 0x87CA
+0x7332 0x87DB
+0x7333 0x87EA
+0x7334 0x87E0
+0x7335 0x87EE
+0x7336 0x8816
+0x7337 0x8813
+0x7338 0x87FE
+0x7339 0x880A
+0x733A 0x881B
+0x733B 0x8821
+0x733C 0x8839
+0x733D 0x883C
+0x733E 0x7F36
+0x733F 0x7F42
+0x7340-0x7341 0x7F44
+0x7342 0x8210
+0x7343 0x7AFA
+0x7344 0x7AFD
+0x7345 0x7B08
+0x7346-0x7347 0x7B03
+0x7348 0x7B15
+0x7349 0x7B0A
+0x734A 0x7B2B
+0x734B 0x7B0F
+0x734C 0x7B47
+0x734D 0x7B38
+0x734E 0x7B2A
+0x734F 0x7B19
+0x7350 0x7B2E
+0x7351 0x7B31
+0x7352 0x7B20
+0x7353 0x7B25
+0x7354 0x7B24
+0x7355 0x7B33
+0x7356 0x7B3E
+0x7357 0x7B1E
+0x7358 0x7B58
+0x7359 0x7B5A
+0x735A 0x7B45
+0x735B 0x7B75
+0x735C 0x7B4C
+0x735D 0x7B5D
+0x735E 0x7B60
+0x735F 0x7B6E
+0x7360 0x7B7B
+0x7361 0x7B62
+0x7362 0x7B72
+0x7363 0x7B71
+0x7364 0x7B90
+0x7365-0x7366 0x7BA6
+0x7367 0x7BB8
+0x7368 0x7BAC
+0x7369 0x7B9D
+0x736A 0x7BA8
+0x736B 0x7B85
+0x736C 0x7BAA
+0x736D 0x7B9C
+0x736E 0x7BA2
+0x736F 0x7BAB
+0x7370 0x7BB4
+0x7371 0x7BD1
+0x7372 0x7BC1
+0x7373 0x7BCC
+0x7374 0x7BDD
+0x7375 0x7BDA
+0x7376-0x7377 0x7BE5
+0x7378 0x7BEA
+0x7379 0x7C0C
+0x737A 0x7BFE
+0x737B 0x7BFC
+0x737C 0x7C0F
+0x737D 0x7C16
+0x737E 0x7C0B
+0x7421 0x7C1F
+0x7422 0x7C2A
+0x7423 0x7C26
+0x7424 0x7C38
+0x7425 0x7C41
+0x7426 0x7C40
+0x7427 0x81FE
+0x7428-0x7429 0x8201
+0x742A 0x8204
+0x742B 0x81EC
+0x742C 0x8844
+0x742D-0x742F 0x8221
+0x7430 0x822D
+0x7431 0x822F
+0x7432 0x8228
+0x7433 0x822B
+0x7434 0x8238
+0x7435 0x823B
+0x7436-0x7437 0x8233
+0x7438 0x823E
+0x7439 0x8244
+0x743A 0x8249
+0x743B 0x824B
+0x743C 0x824F
+0x743D 0x825A
+0x743E 0x825F
+0x743F 0x8268
+0x7440 0x887E
+0x7441 0x8885
+0x7442 0x8888
+0x7443 0x88D8
+0x7444 0x88DF
+0x7445 0x895E
+0x7446 0x7F9D
+0x7447 0x7F9F
+0x7448 0x7FA7
+0x7449-0x744A 0x7FAF
+0x744B 0x7FB2
+0x744C 0x7C7C
+0x744D 0x6549
+0x744E 0x7C91
+0x744F 0x7C9D
+0x7450 0x7C9C
+0x7451 0x7C9E
+0x7452 0x7CA2
+0x7453 0x7CB2
+0x7454-0x7455 0x7CBC
+0x7456 0x7CC1
+0x7457 0x7CC7
+0x7458-0x7459 0x7CCC
+0x745A 0x7CC8
+0x745B 0x7CC5
+0x745C 0x7CD7
+0x745D 0x7CE8
+0x745E 0x826E
+0x745F 0x66A8
+0x7460 0x7FBF
+0x7461 0x7FCE
+0x7462 0x7FD5
+0x7463 0x7FE5
+0x7464 0x7FE1
+0x7465 0x7FE6
+0x7466 0x7FE9
+0x7467 0x7FEE
+0x7468 0x7FF3
+0x7469 0x7CF8
+0x746A 0x7D77
+0x746B 0x7DA6
+0x746C 0x7DAE
+0x746D 0x7E47
+0x746E 0x7E9B
+0x746F 0x9EB8
+0x7470 0x9EB4
+0x7471 0x8D73
+0x7472 0x8D84
+0x7473 0x8D94
+0x7474 0x8D91
+0x7475 0x8DB1
+0x7476 0x8D67
+0x7477 0x8D6D
+0x7478 0x8C47
+0x7479 0x8C49
+0x747A 0x914A
+0x747B 0x9150
+0x747C-0x747D 0x914E
+0x747E 0x9164
+0x7521 0x9162
+0x7522 0x9161
+0x7523 0x9170
+0x7524 0x9169
+0x7525 0x916F
+0x7526-0x7527 0x917D
+0x7528 0x9172
+0x7529 0x9174
+0x752A 0x9179
+0x752B 0x918C
+0x752C 0x9185
+0x752D 0x9190
+0x752E 0x918D
+0x752F 0x9191
+0x7530-0x7531 0x91A2
+0x7532 0x91AA
+0x7533-0x7535 0x91AD
+0x7536 0x91B5
+0x7537 0x91B4
+0x7538 0x91BA
+0x7539 0x8C55
+0x753A 0x9E7E
+0x753B 0x8DB8
+0x753C 0x8DEB
+0x753D 0x8E05
+0x753E 0x8E59
+0x753F 0x8E69
+0x7540 0x8DB5
+0x7541 0x8DBF
+0x7542 0x8DBC
+0x7543 0x8DBA
+0x7544 0x8DC4
+0x7545-0x7546 0x8DD6
+0x7547 0x8DDA
+0x7548 0x8DDE
+0x7549-0x754A 0x8DCE
+0x754B 0x8DDB
+0x754C 0x8DC6
+0x754D 0x8DEC
+0x754E-0x754F 0x8DF7
+0x7550 0x8DE3
+0x7551 0x8DF9
+0x7552 0x8DFB
+0x7553 0x8DE4
+0x7554 0x8E09
+0x7555 0x8DFD
+0x7556 0x8E14
+0x7557 0x8E1D
+0x7558 0x8E1F
+0x7559 0x8E2C
+0x755A 0x8E2E
+0x755B 0x8E23
+0x755C 0x8E2F
+0x755D 0x8E3A
+0x755E 0x8E40
+0x755F 0x8E39
+0x7560 0x8E35
+0x7561 0x8E3D
+0x7562 0x8E31
+0x7563 0x8E49
+0x7564-0x7565 0x8E41
+0x7566-0x7567 0x8E51
+0x7568 0x8E4A
+0x7569 0x8E70
+0x756A 0x8E76
+0x756B 0x8E7C
+0x756C 0x8E6F
+0x756D 0x8E74
+0x756E 0x8E85
+0x756F 0x8E8F
+0x7570 0x8E94
+0x7571 0x8E90
+0x7572 0x8E9C
+0x7573 0x8E9E
+0x7574 0x8C78
+0x7575 0x8C82
+0x7576 0x8C8A
+0x7577 0x8C85
+0x7578 0x8C98
+0x7579 0x8C94
+0x757A 0x659B
+0x757B 0x89D6
+0x757C 0x89DE
+0x757D 0x89DA
+0x757E 0x89DC
+0x7621 0x89E5
+0x7622 0x89EB
+0x7623 0x89EF
+0x7624 0x8A3E
+0x7625 0x8B26
+0x7626 0x9753
+0x7627 0x96E9
+0x7628 0x96F3
+0x7629 0x96EF
+0x762A 0x9706
+0x762B 0x9701
+0x762C 0x9708
+0x762D 0x970F
+0x762E 0x970E
+0x762F 0x972A
+0x7630 0x972D
+0x7631 0x9730
+0x7632 0x973E
+0x7633 0x9F80
+0x7634 0x9F83
+0x7635-0x763A 0x9F85
+0x763B 0x9F8C
+0x763C 0x9EFE
+0x763D 0x9F0B
+0x763E 0x9F0D
+0x763F 0x96B9
+0x7640-0x7641 0x96BC
+0x7642 0x96CE
+0x7643 0x96D2
+0x7644 0x77BF
+0x7645 0x96E0
+0x7646 0x928E
+0x7647 0x92AE
+0x7648 0x92C8
+0x7649 0x933E
+0x764A 0x936A
+0x764B 0x93CA
+0x764C 0x938F
+0x764D 0x943E
+0x764E 0x946B
+0x764F 0x9C7F
+0x7650 0x9C82
+0x7651-0x7654 0x9C85
+0x7655 0x7A23
+0x7656 0x9C8B
+0x7657 0x9C8E
+0x7658-0x765A 0x9C90
+0x765B-0x765C 0x9C94
+0x765D-0x765E 0x9C9A
+0x765F-0x7664 0x9C9E
+0x7665-0x7669 0x9CA5
+0x766A 0x9CAB
+0x766B-0x766C 0x9CAD
+0x766D-0x7674 0x9CB0
+0x7675-0x7678 0x9CBA
+0x7679-0x767C 0x9CC4
+0x767D-0x767E 0x9CCA
+0x7721-0x7725 0x9CCC
+0x7726-0x7728 0x9CD3
+0x7729-0x772B 0x9CD7
+0x772C-0x772D 0x9CDC
+0x772E 0x9CDF
+0x772F 0x9CE2
+0x7730 0x977C
+0x7731 0x9785
+0x7732-0x7733 0x9791
+0x7734 0x9794
+0x7735 0x97AF
+0x7736 0x97AB
+0x7737 0x97A3
+0x7738 0x97B2
+0x7739 0x97B4
+0x773A 0x9AB1
+0x773B 0x9AB0
+0x773C 0x9AB7
+0x773D 0x9E58
+0x773E 0x9AB6
+0x773F 0x9ABA
+0x7740 0x9ABC
+0x7741 0x9AC1
+0x7742 0x9AC0
+0x7743 0x9AC5
+0x7744 0x9AC2
+0x7745-0x7746 0x9ACB
+0x7747 0x9AD1
+0x7748 0x9B45
+0x7749 0x9B43
+0x774A 0x9B47
+0x774B 0x9B49
+0x774C 0x9B48
+0x774D 0x9B4D
+0x774E 0x9B51
+0x774F 0x98E8
+0x7750 0x990D
+0x7751 0x992E
+0x7752 0x9955
+0x7753 0x9954
+0x7754 0x9ADF
+0x7755 0x9AE1
+0x7756 0x9AE6
+0x7757 0x9AEF
+0x7758 0x9AEB
+0x7759 0x9AFB
+0x775A 0x9AED
+0x775B 0x9AF9
+0x775C 0x9B08
+0x775D 0x9B0F
+0x775E 0x9B13
+0x775F 0x9B1F
+0x7760 0x9B23
+0x7761-0x7762 0x9EBD
+0x7763 0x7E3B
+0x7764 0x9E82
+0x7765-0x7766 0x9E87
+0x7767 0x9E8B
+0x7768 0x9E92
+0x7769 0x93D6
+0x776A 0x9E9D
+0x776B 0x9E9F
+0x776C-0x776E 0x9EDB
+0x776F 0x9EE0
+0x7770 0x9EDF
+0x7771 0x9EE2
+0x7772 0x9EE9
+0x7773 0x9EE7
+0x7774 0x9EE5
+0x7775 0x9EEA
+0x7776 0x9EEF
+0x7777 0x9F22
+0x7778 0x9F2C
+0x7779 0x9F2F
+0x777A 0x9F39
+0x777B 0x9F37
+0x777C-0x777D 0x9F3D
+0x777E 0x9F44
diff --git a/etc/charsets/GBK.map b/etc/charsets/GBK.map
new file mode 100644 (file)
index 0000000..76b3caa
--- /dev/null
@@ -0,0 +1,10353 @@
+# Generated from glibc-2.3.2/localedata/charmaps/GBK
+0x8140 0x4E02
+0x8141-0x8143 0x4E04
+0x8144 0x4E0F
+0x8145 0x4E12
+0x8146 0x4E17
+0x8147-0x8149 0x4E1F
+0x814A 0x4E23
+0x814B 0x4E26
+0x814C 0x4E29
+0x814D-0x814E 0x4E2E
+0x814F 0x4E31
+0x8150 0x4E33
+0x8151 0x4E35
+0x8152 0x4E37
+0x8153 0x4E3C
+0x8154-0x8156 0x4E40
+0x8157 0x4E44
+0x8158 0x4E46
+0x8159 0x4E4A
+0x815A 0x4E51
+0x815B 0x4E55
+0x815C 0x4E57
+0x815D-0x815E 0x4E5A
+0x815F-0x8162 0x4E62
+0x8163-0x8164 0x4E67
+0x8165-0x816A 0x4E6A
+0x816B 0x4E72
+0x816C-0x8175 0x4E74
+0x8176-0x817C 0x4E7F
+0x817D 0x4E87
+0x817E 0x4E8A
+0x8180 0x4E90
+0x8181-0x8182 0x4E96
+0x8183 0x4E99
+0x8184-0x8186 0x4E9C
+0x8187 0x4EA3
+0x8188 0x4EAA
+0x8189-0x818B 0x4EAF
+0x818C 0x4EB4
+0x818D-0x8190 0x4EB6
+0x8191-0x8193 0x4EBC
+0x8194 0x4EC8
+0x8195 0x4ECC
+0x8196-0x8197 0x4ECF
+0x8198 0x4ED2
+0x8199-0x819B 0x4EDA
+0x819C 0x4EE0
+0x819D 0x4EE2
+0x819E-0x819F 0x4EE6
+0x81A0 0x4EE9
+0x81A1-0x81A3 0x4EED
+0x81A4 0x4EF1
+0x81A5 0x4EF4
+0x81A6-0x81A8 0x4EF8
+0x81A9 0x4EFC
+0x81AA 0x4EFE
+0x81AB 0x4F00
+0x81AC-0x81B2 0x4F02
+0x81B3-0x81B4 0x4F0B
+0x81B5-0x81B9 0x4F12
+0x81BA-0x81BB 0x4F1C
+0x81BC 0x4F21
+0x81BD 0x4F23
+0x81BE-0x81BF 0x4F28
+0x81C0-0x81C2 0x4F2C
+0x81C3 0x4F31
+0x81C4 0x4F33
+0x81C5 0x4F35
+0x81C6 0x4F37
+0x81C7 0x4F39
+0x81C8 0x4F3B
+0x81C9-0x81CD 0x4F3E
+0x81CE-0x81CF 0x4F44
+0x81D0-0x81D5 0x4F47
+0x81D6 0x4F52
+0x81D7 0x4F54
+0x81D8 0x4F56
+0x81D9-0x81DA 0x4F61
+0x81DB 0x4F66
+0x81DC 0x4F68
+0x81DD-0x81DE 0x4F6A
+0x81DF-0x81E0 0x4F6D
+0x81E1-0x81E2 0x4F71
+0x81E3 0x4F75
+0x81E4-0x81E7 0x4F77
+0x81E8 0x4F7D
+0x81E9-0x81EB 0x4F80
+0x81EC-0x81EE 0x4F85
+0x81EF 0x4F8A
+0x81F0 0x4F8C
+0x81F1 0x4F8E
+0x81F2 0x4F90
+0x81F3-0x81F4 0x4F92
+0x81F5-0x81F6 0x4F95
+0x81F7-0x81F9 0x4F98
+0x81FA 0x4F9C
+0x81FB-0x81FC 0x4F9E
+0x81FD-0x81FE 0x4FA1
+0x8240 0x4FA4
+0x8241 0x4FAB
+0x8242 0x4FAD
+0x8243-0x8247 0x4FB0
+0x8248-0x8250 0x4FB6
+0x8251-0x8253 0x4FC0
+0x8254-0x8257 0x4FC6
+0x8258-0x825A 0x4FCB
+0x825B-0x825F 0x4FD2
+0x8260 0x4FD9
+0x8261 0x4FDB
+0x8262 0x4FE0
+0x8263 0x4FE2
+0x8264-0x8265 0x4FE4
+0x8266 0x4FE7
+0x8267-0x8268 0x4FEB
+0x8269 0x4FF0
+0x826A 0x4FF2
+0x826B-0x826E 0x4FF4
+0x826F 0x4FF9
+0x8270-0x8272 0x4FFB
+0x8273-0x827E 0x4FFF
+0x8280 0x500B
+0x8281 0x500E
+0x8282-0x8283 0x5010
+0x8284 0x5013
+0x8285-0x8287 0x5015
+0x8288 0x501B
+0x8289-0x828A 0x501D
+0x828B 0x5020
+0x828C-0x828E 0x5022
+0x828F 0x5027
+0x8290 0x502B
+0x8291-0x829B 0x502F
+0x829C 0x503B
+0x829D 0x503D
+0x829E-0x82A1 0x503F
+0x82A2-0x82A4 0x5044
+0x82A5-0x82A7 0x5049
+0x82A8 0x504D
+0x82A9-0x82AD 0x5050
+0x82AE-0x82B1 0x5056
+0x82B2 0x505B
+0x82B3-0x82BA 0x505D
+0x82BB-0x82C0 0x5066
+0x82C1-0x82C9 0x506D
+0x82CA-0x82CC 0x5078
+0x82CD-0x82CE 0x507C
+0x82CF-0x82D2 0x5081
+0x82D3-0x82D4 0x5086
+0x82D5-0x82D8 0x5089
+0x82D9-0x82ED 0x508E
+0x82EE 0x50A4
+0x82EF 0x50A6
+0x82F0-0x82F1 0x50AA
+0x82F2-0x82F6 0x50AD
+0x82F7-0x82FD 0x50B3
+0x82FE 0x50BC
+0x8340-0x8351 0x50BD
+0x8352-0x8357 0x50D0
+0x8358-0x835A 0x50D7
+0x835B-0x8365 0x50DB
+0x8366-0x8369 0x50E8
+0x836A-0x836D 0x50EF
+0x836E 0x50F4
+0x836F-0x8373 0x50F6
+0x8374-0x837D 0x50FC
+0x837E 0x5108
+0x8380-0x8381 0x5109
+0x8382-0x8387 0x510C
+0x8388-0x8395 0x5113
+0x8396-0x83B2 0x5122
+0x83B3 0x5142
+0x83B4 0x5147
+0x83B5 0x514A
+0x83B6 0x514C
+0x83B7-0x83B9 0x514E
+0x83BA-0x83BB 0x5152
+0x83BC-0x83BE 0x5157
+0x83BF 0x515B
+0x83C0-0x83C4 0x515D
+0x83C5-0x83C6 0x5163
+0x83C7-0x83C8 0x5166
+0x83C9-0x83CA 0x5169
+0x83CB 0x516F
+0x83CC 0x5172
+0x83CD 0x517A
+0x83CE-0x83CF 0x517E
+0x83D0-0x83D1 0x5183
+0x83D2-0x83D3 0x5186
+0x83D4-0x83D5 0x518A
+0x83D6-0x83D9 0x518E
+0x83DA-0x83DB 0x5193
+0x83DC 0x5198
+0x83DD 0x519A
+0x83DE-0x83E0 0x519D
+0x83E1 0x51A1
+0x83E2 0x51A3
+0x83E3-0x83E7 0x51A6
+0x83E8-0x83E9 0x51AD
+0x83EA 0x51B4
+0x83EB-0x83ED 0x51B8
+0x83EE-0x83EF 0x51BE
+0x83F0-0x83F2 0x51C1
+0x83F3 0x51C5
+0x83F4 0x51C8
+0x83F5 0x51CA
+0x83F6-0x83F7 0x51CD
+0x83F8 0x51D0
+0x83F9-0x83FE 0x51D2
+0x8440-0x8442 0x51D8
+0x8443 0x51DC
+0x8444-0x8445 0x51DE
+0x8446-0x8447 0x51E2
+0x8448-0x844D 0x51E5
+0x844E 0x51EC
+0x844F 0x51EE
+0x8450-0x8451 0x51F1
+0x8452 0x51F4
+0x8453 0x51F7
+0x8454 0x51FE
+0x8455-0x8456 0x5204
+0x8457 0x5209
+0x8458-0x8459 0x520B
+0x845A-0x845B 0x520F
+0x845C-0x845E 0x5213
+0x845F 0x521C
+0x8460-0x8461 0x521E
+0x8462-0x8464 0x5221
+0x8465-0x8467 0x5225
+0x8468 0x522A
+0x8469 0x522C
+0x846A 0x522F
+0x846B-0x846C 0x5231
+0x846D-0x846E 0x5234
+0x846F 0x523C
+0x8470 0x523E
+0x8471-0x8476 0x5244
+0x8477 0x524B
+0x8478-0x8479 0x524E
+0x847A-0x847B 0x5252
+0x847C 0x5255
+0x847D-0x847E 0x5257
+0x8480-0x8482 0x5259
+0x8483 0x525D
+0x8484-0x8485 0x525F
+0x8486-0x8488 0x5262
+0x8489 0x5266
+0x848A 0x5268
+0x848B-0x848E 0x526B
+0x848F-0x8490 0x5270
+0x8491-0x849A 0x5273
+0x849B 0x527E
+0x849C 0x5280
+0x849D-0x84A1 0x5283
+0x84A2-0x84A8 0x5289
+0x84A9-0x84AA 0x5291
+0x84AB-0x84B1 0x5294
+0x84B2 0x529C
+0x84B3-0x84B6 0x52A4
+0x84B7-0x84B9 0x52AE
+0x84BA-0x84C3 0x52B4
+0x84C4-0x84C6 0x52C0
+0x84C7-0x84C9 0x52C4
+0x84CA 0x52C8
+0x84CB 0x52CA
+0x84CC-0x84CF 0x52CC
+0x84D0 0x52D1
+0x84D1-0x84D3 0x52D3
+0x84D4 0x52D7
+0x84D5-0x84DA 0x52D9
+0x84DB-0x84DE 0x52E0
+0x84DF-0x84E9 0x52E5
+0x84EA-0x84F1 0x52F1
+0x84F2-0x84F4 0x52FB
+0x84F5-0x84F8 0x5301
+0x84F9 0x5307
+0x84FA-0x84FD 0x5309
+0x84FE 0x530E
+0x8540-0x8543 0x5311
+0x8544 0x5318
+0x8545-0x8546 0x531B
+0x8547-0x8548 0x531E
+0x8549 0x5322
+0x854A-0x854B 0x5324
+0x854C-0x854E 0x5327
+0x854F-0x8551 0x532B
+0x8552-0x855B 0x532F
+0x855C-0x855D 0x533C
+0x855E 0x5340
+0x855F 0x5342
+0x8560 0x5344
+0x8561 0x5346
+0x8562-0x8564 0x534B
+0x8565 0x5350
+0x8566 0x5354
+0x8567-0x8568 0x5358
+0x8569 0x535B
+0x856A 0x535D
+0x856B 0x5365
+0x856C 0x5368
+0x856D 0x536A
+0x856E-0x856F 0x536C
+0x8570 0x5372
+0x8571 0x5376
+0x8572 0x5379
+0x8573-0x8576 0x537B
+0x8577-0x8578 0x5380
+0x8579 0x5383
+0x857A-0x857B 0x5387
+0x857C 0x538A
+0x857D-0x857E 0x538E
+0x8580-0x8584 0x5390
+0x8585-0x8586 0x5396
+0x8587 0x5399
+0x8588-0x8589 0x539B
+0x858A 0x539E
+0x858B-0x858C 0x53A0
+0x858D 0x53A4
+0x858E 0x53A7
+0x858F-0x8592 0x53AA
+0x8593-0x8599 0x53AF
+0x859A-0x859D 0x53B7
+0x859E-0x85A0 0x53BC
+0x85A1 0x53C0
+0x85A2-0x85A6 0x53C3
+0x85A7-0x85A9 0x53CE
+0x85AA-0x85AB 0x53D2
+0x85AC 0x53D5
+0x85AD 0x53DA
+0x85AE-0x85B0 0x53DC
+0x85B1-0x85B2 0x53E1
+0x85B3 0x53E7
+0x85B4 0x53F4
+0x85B5 0x53FA
+0x85B6-0x85B8 0x53FE
+0x85B9 0x5402
+0x85BA 0x5405
+0x85BB 0x5407
+0x85BC 0x540B
+0x85BD 0x5414
+0x85BE-0x85C0 0x5418
+0x85C1 0x541C
+0x85C2 0x5422
+0x85C3-0x85C4 0x5424
+0x85C5 0x542A
+0x85C6 0x5430
+0x85C7 0x5433
+0x85C8-0x85C9 0x5436
+0x85CA 0x543A
+0x85CB 0x543D
+0x85CC 0x543F
+0x85CD-0x85CE 0x5441
+0x85CF-0x85D0 0x5444
+0x85D1 0x5447
+0x85D2 0x5449
+0x85D3-0x85D6 0x544C
+0x85D7 0x5451
+0x85D8 0x545A
+0x85D9-0x85DD 0x545D
+0x85DE 0x5463
+0x85DF 0x5465
+0x85E0 0x5467
+0x85E1-0x85E8 0x5469
+0x85E9 0x5474
+0x85EA-0x85EB 0x5479
+0x85EC-0x85ED 0x547E
+0x85EE 0x5481
+0x85EF 0x5483
+0x85F0 0x5485
+0x85F1-0x85F4 0x5487
+0x85F5 0x548D
+0x85F6 0x5491
+0x85F7 0x5493
+0x85F8-0x85F9 0x5497
+0x85FA 0x549C
+0x85FB-0x85FE 0x549E
+0x8640 0x54A2
+0x8641 0x54A5
+0x8642 0x54AE
+0x8643 0x54B0
+0x8644 0x54B2
+0x8645-0x8647 0x54B5
+0x8648-0x8649 0x54B9
+0x864A 0x54BC
+0x864B 0x54BE
+0x864C 0x54C3
+0x864D 0x54C5
+0x864E-0x864F 0x54CA
+0x8650 0x54D6
+0x8651 0x54D8
+0x8652 0x54DB
+0x8653-0x8657 0x54E0
+0x8658-0x8659 0x54EB
+0x865A-0x865C 0x54EF
+0x865D-0x8662 0x54F4
+0x8663 0x54FB
+0x8664 0x54FE
+0x8665 0x5500
+0x8666-0x8669 0x5502
+0x866A 0x5508
+0x866B-0x866F 0x550A
+0x8670-0x8671 0x5512
+0x8672-0x8677 0x5515
+0x8678-0x867B 0x551C
+0x867C 0x5521
+0x867D-0x867E 0x5525
+0x8680-0x8681 0x5528
+0x8682 0x552B
+0x8683 0x552D
+0x8684 0x5532
+0x8685-0x8687 0x5534
+0x8688-0x868B 0x5538
+0x868C 0x553D
+0x868D 0x5540
+0x868E 0x5542
+0x868F 0x5545
+0x8690-0x8691 0x5547
+0x8692-0x8696 0x554B
+0x8697-0x869A 0x5551
+0x869B-0x869F 0x5557
+0x86A0-0x86A3 0x555D
+0x86A4-0x86A5 0x5562
+0x86A6-0x86A7 0x5568
+0x86A8 0x556B
+0x86A9-0x86AE 0x556F
+0x86AF-0x86B0 0x5579
+0x86B1 0x557D
+0x86B2 0x557F
+0x86B3-0x86B4 0x5585
+0x86B5-0x86B7 0x558C
+0x86B8 0x5590
+0x86B9-0x86BA 0x5592
+0x86BB-0x86BD 0x5595
+0x86BE-0x86BF 0x559A
+0x86C0 0x559E
+0x86C1-0x86C7 0x55A0
+0x86C8-0x86D0 0x55A8
+0x86D1 0x55B2
+0x86D2 0x55B4
+0x86D3 0x55B6
+0x86D4 0x55B8
+0x86D5 0x55BA
+0x86D6 0x55BC
+0x86D7-0x86DB 0x55BF
+0x86DC-0x86DE 0x55C6
+0x86DF-0x86E0 0x55CA
+0x86E1-0x86E3 0x55CE
+0x86E4 0x55D5
+0x86E5-0x86E9 0x55D7
+0x86EA 0x55DE
+0x86EB 0x55E0
+0x86EC 0x55E2
+0x86ED 0x55E7
+0x86EE 0x55E9
+0x86EF-0x86F0 0x55ED
+0x86F1-0x86F2 0x55F0
+0x86F3 0x55F4
+0x86F4 0x55F6
+0x86F5-0x86F9 0x55F8
+0x86FA 0x55FF
+0x86FB-0x86FE 0x5602
+0x8740-0x8741 0x5606
+0x8742-0x8743 0x560A
+0x8744 0x560D
+0x8745-0x874C 0x5610
+0x874D-0x874E 0x5619
+0x874F-0x8750 0x561C
+0x8751-0x8753 0x5620
+0x8754-0x8755 0x5625
+0x8756-0x8759 0x5628
+0x875A-0x875C 0x562E
+0x875D 0x5633
+0x875E 0x5635
+0x875F-0x8760 0x5637
+0x8761 0x563A
+0x8762-0x8764 0x563C
+0x8765-0x8770 0x5640
+0x8771-0x8775 0x564F
+0x8776-0x8777 0x5655
+0x8778-0x8779 0x565A
+0x877A-0x877E 0x565D
+0x8780 0x5663
+0x8781-0x8783 0x5665
+0x8784-0x8787 0x566D
+0x8788-0x878B 0x5672
+0x878C-0x878F 0x5677
+0x8790-0x8797 0x567D
+0x8798-0x879E 0x5687
+0x879F-0x87A1 0x5690
+0x87A2-0x87B0 0x5694
+0x87B1-0x87BB 0x56A4
+0x87BC-0x87C2 0x56B0
+0x87C3-0x87C6 0x56B8
+0x87C7-0x87D3 0x56BD
+0x87D4-0x87DC 0x56CB
+0x87DD-0x87DE 0x56D5
+0x87DF-0x87E0 0x56D8
+0x87E1 0x56DC
+0x87E2 0x56E3
+0x87E3-0x87E8 0x56E5
+0x87E9 0x56EC
+0x87EA-0x87EB 0x56EE
+0x87EC-0x87ED 0x56F2
+0x87EE-0x87F0 0x56F6
+0x87F1-0x87F2 0x56FB
+0x87F3-0x87F5 0x5700
+0x87F6 0x5705
+0x87F7 0x5707
+0x87F8-0x87FE 0x570B
+0x8840-0x8849 0x5712
+0x884A-0x884B 0x571D
+0x884C-0x884E 0x5720
+0x884F-0x8852 0x5724
+0x8853 0x572B
+0x8854-0x8855 0x5731
+0x8856-0x885A 0x5734
+0x885B-0x885C 0x573C
+0x885D 0x573F
+0x885E 0x5741
+0x885F-0x8862 0x5743
+0x8863-0x8864 0x5748
+0x8865 0x574B
+0x8866-0x886A 0x5752
+0x886B-0x886C 0x5758
+0x886D-0x886E 0x5762
+0x886F 0x5765
+0x8870 0x5767
+0x8871 0x576C
+0x8872 0x576E
+0x8873-0x8875 0x5770
+0x8876-0x8877 0x5774
+0x8878-0x887A 0x5778
+0x887B-0x887E 0x577D
+0x8880 0x5781
+0x8881-0x8884 0x5787
+0x8885-0x8889 0x578D
+0x888A-0x8890 0x5794
+0x8891-0x8894 0x579C
+0x8895 0x57A5
+0x8896 0x57A8
+0x8897 0x57AA
+0x8898 0x57AC
+0x8899-0x889B 0x57AF
+0x889C 0x57B3
+0x889D-0x889F 0x57B5
+0x88A0-0x88A8 0x57B9
+0x88A9-0x88AF 0x57C4
+0x88B0-0x88B1 0x57CC
+0x88B2-0x88B3 0x57D0
+0x88B4 0x57D3
+0x88B5-0x88B6 0x57D6
+0x88B7-0x88B8 0x57DB
+0x88B9 0x57DE
+0x88BA-0x88BC 0x57E1
+0x88BD-0x88C4 0x57E5
+0x88C5 0x57EE
+0x88C6-0x88C9 0x57F0
+0x88CA-0x88CC 0x57F5
+0x88CD-0x88CE 0x57FB
+0x88CF-0x88D0 0x57FE
+0x88D1 0x5801
+0x88D2-0x88D4 0x5803
+0x88D5-0x88D7 0x5808
+0x88D8 0x580C
+0x88D9-0x88DB 0x580E
+0x88DC-0x88DE 0x5812
+0x88DF-0x88E1 0x5816
+0x88E2-0x88E5 0x581A
+0x88E6 0x581F
+0x88E7-0x88E8 0x5822
+0x88E9-0x88ED 0x5825
+0x88EE-0x88F2 0x582B
+0x88F3-0x88F6 0x5831
+0x88F7-0x88FE 0x5836
+0x8940-0x8945 0x583E
+0x8946-0x894C 0x5845
+0x894D-0x894F 0x584E
+0x8950-0x8951 0x5852
+0x8952-0x8954 0x5855
+0x8955-0x8959 0x5859
+0x895A-0x895F 0x585F
+0x8960-0x8964 0x5866
+0x8965-0x8975 0x586D
+0x8976 0x587F
+0x8977 0x5882
+0x8978 0x5884
+0x8979-0x897B 0x5886
+0x897C-0x897E 0x588A
+0x8980-0x8984 0x588D
+0x8985-0x8989 0x5894
+0x898A-0x898C 0x589B
+0x898D-0x8994 0x58A0
+0x8995-0x89A6 0x58AA
+0x89A7-0x89AA 0x58BD
+0x89AB-0x89AD 0x58C2
+0x89AE-0x89B8 0x58C6
+0x89B9-0x89BB 0x58D2
+0x89BC-0x89C9 0x58D6
+0x89CA-0x89CF 0x58E5
+0x89D0 0x58ED
+0x89D1 0x58EF
+0x89D2-0x89D3 0x58F1
+0x89D4-0x89D5 0x58F4
+0x89D6-0x89D7 0x58F7
+0x89D8-0x89DF 0x58FA
+0x89E0 0x5903
+0x89E1-0x89E2 0x5905
+0x89E3-0x89E7 0x5908
+0x89E8 0x590E
+0x89E9-0x89EC 0x5910
+0x89ED-0x89EE 0x5917
+0x89EF 0x591B
+0x89F0-0x89F1 0x591D
+0x89F2-0x89F5 0x5920
+0x89F6 0x5926
+0x89F7 0x5928
+0x89F8 0x592C
+0x89F9 0x5930
+0x89FA-0x89FB 0x5932
+0x89FC-0x89FD 0x5935
+0x89FE 0x593B
+0x8A40-0x8A43 0x593D
+0x8A44 0x5943
+0x8A45-0x8A46 0x5945
+0x8A47 0x594A
+0x8A48-0x8A49 0x594C
+0x8A4A 0x5950
+0x8A4B-0x8A4C 0x5952
+0x8A4D 0x5959
+0x8A4E-0x8A52 0x595B
+0x8A53 0x5961
+0x8A54-0x8A55 0x5963
+0x8A56-0x8A62 0x5966
+0x8A63 0x5975
+0x8A64 0x5977
+0x8A65-0x8A67 0x597A
+0x8A68-0x8A6A 0x597E
+0x8A6B 0x5985
+0x8A6C 0x5989
+0x8A6D-0x8A6E 0x598B
+0x8A6F-0x8A72 0x598E
+0x8A73-0x8A74 0x5994
+0x8A75 0x5998
+0x8A76-0x8A79 0x599A
+0x8A7A-0x8A7D 0x599F
+0x8A7E 0x59A6
+0x8A80 0x59A7
+0x8A81-0x8A82 0x59AC
+0x8A83-0x8A84 0x59B0
+0x8A85-0x8A8A 0x59B3
+0x8A8B 0x59BA
+0x8A8C-0x8A8D 0x59BC
+0x8A8E-0x8A94 0x59BF
+0x8A95-0x8A97 0x59C7
+0x8A98-0x8A9B 0x59CC
+0x8A9C-0x8A9D 0x59D5
+0x8A9E 0x59D9
+0x8A9F 0x59DB
+0x8AA0-0x8AA4 0x59DE
+0x8AA5 0x59E4
+0x8AA6-0x8AA7 0x59E6
+0x8AA8-0x8AAA 0x59E9
+0x8AAB-0x8AB6 0x59ED
+0x8AB7 0x59FA
+0x8AB8-0x8ABA 0x59FC
+0x8ABB 0x5A00
+0x8ABC 0x5A02
+0x8ABD-0x8ABE 0x5A0A
+0x8ABF-0x8AC2 0x5A0D
+0x8AC3 0x5A12
+0x8AC4-0x8AC7 0x5A14
+0x8AC8-0x8ACA 0x5A19
+0x8ACB-0x8ACC 0x5A1D
+0x8ACD-0x8ACE 0x5A21
+0x8ACF 0x5A24
+0x8AD0-0x8AD2 0x5A26
+0x8AD3-0x8AD9 0x5A2A
+0x8ADA 0x5A33
+0x8ADB 0x5A35
+0x8ADC-0x8AE0 0x5A37
+0x8AE1-0x8AE3 0x5A3D
+0x8AE4-0x8AE8 0x5A41
+0x8AE9-0x8AEA 0x5A47
+0x8AEB-0x8AF4 0x5A4B
+0x8AF5-0x8AF8 0x5A56
+0x8AF9-0x8AFE 0x5A5B
+0x8B40 0x5A61
+0x8B41-0x8B44 0x5A63
+0x8B45-0x8B46 0x5A68
+0x8B47-0x8B4F 0x5A6B
+0x8B50-0x8B51 0x5A78
+0x8B52-0x8B55 0x5A7B
+0x8B56-0x8B67 0x5A80
+0x8B68-0x8B6E 0x5A93
+0x8B6F-0x8B7C 0x5A9C
+0x8B7D-0x8B7E 0x5AAB
+0x8B80-0x8B84 0x5AAD
+0x8B85 0x5AB4
+0x8B86-0x8B87 0x5AB6
+0x8B88-0x8B8C 0x5AB9
+0x8B8D-0x8B8E 0x5ABF
+0x8B8F-0x8B94 0x5AC3
+0x8B95-0x8B96 0x5ACA
+0x8B97-0x8B9B 0x5ACD
+0x8B9C 0x5AD3
+0x8B9D 0x5AD5
+0x8B9E 0x5AD7
+0x8B9F-0x8BA1 0x5AD9
+0x8BA2-0x8BA4 0x5ADD
+0x8BA5 0x5AE2
+0x8BA6-0x8BA7 0x5AE4
+0x8BA8-0x8BA9 0x5AE7
+0x8BAA 0x5AEA
+0x8BAB-0x8BAF 0x5AEC
+0x8BB0-0x8BC6 0x5AF2
+0x8BC7-0x8BD2 0x5B0A
+0x8BD3-0x8BEC 0x5B18
+0x8BED 0x5B33
+0x8BEE-0x8BEF 0x5B35
+0x8BF0-0x8BF7 0x5B38
+0x8BF8-0x8BFE 0x5B41
+0x8C40-0x8C47 0x5B48
+0x8C48 0x5B52
+0x8C49 0x5B56
+0x8C4A 0x5B5E
+0x8C4B-0x8C4C 0x5B60
+0x8C4D-0x8C4E 0x5B67
+0x8C4F 0x5B6B
+0x8C50-0x8C52 0x5B6D
+0x8C53 0x5B72
+0x8C54 0x5B74
+0x8C55-0x8C58 0x5B76
+0x8C59-0x8C5A 0x5B7B
+0x8C5B-0x8C5C 0x5B7E
+0x8C5D 0x5B82
+0x8C5E 0x5B86
+0x8C5F 0x5B8A
+0x8C60-0x8C61 0x5B8D
+0x8C62-0x8C64 0x5B90
+0x8C65 0x5B94
+0x8C66 0x5B96
+0x8C67 0x5B9F
+0x8C68-0x8C6A 0x5BA7
+0x8C6B-0x8C6E 0x5BAC
+0x8C6F-0x8C70 0x5BB1
+0x8C71 0x5BB7
+0x8C72-0x8C74 0x5BBA
+0x8C75-0x8C76 0x5BC0
+0x8C77 0x5BC3
+0x8C78-0x8C7B 0x5BC8
+0x8C7C-0x8C7E 0x5BCD
+0x8C80 0x5BD1
+0x8C81-0x8C89 0x5BD4
+0x8C8A 0x5BE0
+0x8C8B-0x8C8C 0x5BE2
+0x8C8D-0x8C8E 0x5BE6
+0x8C8F-0x8C93 0x5BE9
+0x8C94 0x5BEF
+0x8C95-0x8C9B 0x5BF1
+0x8C9C-0x8C9D 0x5BFD
+0x8C9E 0x5C00
+0x8C9F-0x8CA0 0x5C02
+0x8CA1 0x5C05
+0x8CA2-0x8CA3 0x5C07
+0x8CA4-0x8CA7 0x5C0B
+0x8CA8 0x5C10
+0x8CA9-0x8CAA 0x5C12
+0x8CAB 0x5C17
+0x8CAC 0x5C19
+0x8CAD 0x5C1B
+0x8CAE-0x8CB1 0x5C1E
+0x8CB2 0x5C23
+0x8CB3 0x5C26
+0x8CB4-0x8CB7 0x5C28
+0x8CB8-0x8CBB 0x5C2D
+0x8CBC-0x8CBD 0x5C32
+0x8CBE-0x8CC0 0x5C35
+0x8CC1-0x8CC2 0x5C43
+0x8CC3-0x8CC4 0x5C46
+0x8CC5-0x8CC6 0x5C4C
+0x8CC7-0x8CC9 0x5C52
+0x8CCA-0x8CCC 0x5C56
+0x8CCD-0x8CD0 0x5C5A
+0x8CD1 0x5C5F
+0x8CD2 0x5C62
+0x8CD3 0x5C64
+0x8CD4-0x8CDA 0x5C67
+0x8CDB 0x5C70
+0x8CDC-0x8CE2 0x5C72
+0x8CE3-0x8CE6 0x5C7B
+0x8CE7 0x5C80
+0x8CE8-0x8CEC 0x5C83
+0x8CED-0x8CEF 0x5C89
+0x8CF0-0x8CF1 0x5C8E
+0x8CF2-0x8CF3 0x5C92
+0x8CF4 0x5C95
+0x8CF5-0x8CF9 0x5C9D
+0x8CFA-0x8CFE 0x5CA4
+0x8D40 0x5CAA
+0x8D41-0x8D43 0x5CAE
+0x8D44 0x5CB2
+0x8D45 0x5CB4
+0x8D46 0x5CB6
+0x8D47-0x8D4A 0x5CB9
+0x8D4B 0x5CBE
+0x8D4C 0x5CC0
+0x8D4D-0x8D4E 0x5CC2
+0x8D4F-0x8D54 0x5CC5
+0x8D55-0x8D5A 0x5CCC
+0x8D5B-0x8D60 0x5CD3
+0x8D61-0x8D67 0x5CDA
+0x8D68-0x8D69 0x5CE2
+0x8D6A 0x5CE7
+0x8D6B 0x5CE9
+0x8D6C-0x8D6D 0x5CEB
+0x8D6E-0x8D6F 0x5CEE
+0x8D70-0x8D79 0x5CF1
+0x8D7A-0x8D7E 0x5CFC
+0x8D80 0x5D01
+0x8D81-0x8D82 0x5D04
+0x8D83-0x8D88 0x5D08
+0x8D89-0x8D8D 0x5D0F
+0x8D8E 0x5D15
+0x8D8F-0x8D92 0x5D17
+0x8D93-0x8D94 0x5D1C
+0x8D95-0x8D99 0x5D1F
+0x8D9A 0x5D25
+0x8D9B 0x5D28
+0x8D9C-0x8D9E 0x5D2A
+0x8D9F-0x8DA3 0x5D2F
+0x8DA4-0x8DAB 0x5D35
+0x8DAC-0x8DB3 0x5D3F
+0x8DB4-0x8DB5 0x5D48
+0x8DB6-0x8DC0 0x5D4D
+0x8DC1-0x8DC2 0x5D59
+0x8DC3 0x5D5C
+0x8DC4-0x8DCE 0x5D5E
+0x8DCF 0x5D6A
+0x8DD0-0x8DD1 0x5D6D
+0x8DD2-0x8DD5 0x5D70
+0x8DD6-0x8DE2 0x5D75
+0x8DE3-0x8DF8 0x5D83
+0x8DF9-0x8DFB 0x5D9A
+0x8DFC-0x8DFE 0x5D9E
+0x8E40-0x8E55 0x5DA1
+0x8E56-0x8E62 0x5DB8
+0x8E63-0x8E69 0x5DC6
+0x8E6A-0x8E76 0x5DCE
+0x8E77 0x5DDC
+0x8E78-0x8E79 0x5DDF
+0x8E7A-0x8E7B 0x5DE3
+0x8E7C 0x5DEA
+0x8E7D-0x8E7E 0x5DEC
+0x8E80 0x5DF0
+0x8E81-0x8E82 0x5DF5
+0x8E83-0x8E87 0x5DF8
+0x8E88-0x8E89 0x5DFF
+0x8E8A 0x5E04
+0x8E8B 0x5E07
+0x8E8C-0x8E8E 0x5E09
+0x8E8F-0x8E90 0x5E0D
+0x8E91-0x8E92 0x5E12
+0x8E93 0x5E17
+0x8E94-0x8E9B 0x5E1E
+0x8E9C-0x8EA0 0x5E28
+0x8EA1-0x8EA2 0x5E2F
+0x8EA3-0x8EA7 0x5E32
+0x8EA8-0x8EA9 0x5E39
+0x8EAA-0x8EAD 0x5E3E
+0x8EAE 0x5E43
+0x8EAF-0x8EB4 0x5E46
+0x8EB5-0x8EBB 0x5E4D
+0x8EBC-0x8EC0 0x5E56
+0x8EC1-0x8EC2 0x5E5C
+0x8EC3-0x8EC4 0x5E5F
+0x8EC5-0x8ED3 0x5E63
+0x8ED4 0x5E75
+0x8ED5 0x5E77
+0x8ED6 0x5E79
+0x8ED7 0x5E7E
+0x8ED8-0x8EDA 0x5E81
+0x8EDB 0x5E85
+0x8EDC-0x8EDD 0x5E88
+0x8EDE-0x8EE0 0x5E8C
+0x8EE1 0x5E92
+0x8EE2 0x5E98
+0x8EE3 0x5E9B
+0x8EE4 0x5E9D
+0x8EE5-0x8EE8 0x5EA1
+0x8EE9-0x8EED 0x5EA8
+0x8EEE-0x8EF2 0x5EAE
+0x8EF3 0x5EB4
+0x8EF4-0x8EF7 0x5EBA
+0x8EF8-0x8EFE 0x5EBF
+0x8F40-0x8F42 0x5EC6
+0x8F43-0x8F48 0x5ECB
+0x8F49-0x8F4A 0x5ED4
+0x8F4B-0x8F4E 0x5ED7
+0x8F4F-0x8F5A 0x5EDC
+0x8F5B 0x5EE9
+0x8F5C-0x8F64 0x5EEB
+0x8F65 0x5EF5
+0x8F66-0x8F67 0x5EF8
+0x8F68-0x8F6A 0x5EFB
+0x8F6B-0x8F6D 0x5F05
+0x8F6E 0x5F09
+0x8F6F-0x8F71 0x5F0C
+0x8F72 0x5F10
+0x8F73 0x5F12
+0x8F74 0x5F14
+0x8F75 0x5F16
+0x8F76-0x8F77 0x5F19
+0x8F78-0x8F7A 0x5F1C
+0x8F7B-0x8F7E 0x5F21
+0x8F80 0x5F28
+0x8F81-0x8F82 0x5F2B
+0x8F83 0x5F2E
+0x8F84 0x5F30
+0x8F85-0x8F8B 0x5F32
+0x8F8C 0x5F3B
+0x8F8D-0x8F8F 0x5F3D
+0x8F90-0x8F9E 0x5F41
+0x8F9F 0x5F51
+0x8FA0 0x5F54
+0x8FA1-0x8FA4 0x5F59
+0x8FA5-0x8FA7 0x5F5E
+0x8FA8 0x5F63
+0x8FA9 0x5F65
+0x8FAA-0x8FAB 0x5F67
+0x8FAC 0x5F6B
+0x8FAD-0x8FAE 0x5F6E
+0x8FAF 0x5F72
+0x8FB0-0x8FB2 0x5F74
+0x8FB3 0x5F78
+0x8FB4 0x5F7A
+0x8FB5-0x8FB7 0x5F7D
+0x8FB8 0x5F83
+0x8FB9 0x5F86
+0x8FBA-0x8FBC 0x5F8D
+0x8FBD 0x5F91
+0x8FBE-0x8FBF 0x5F93
+0x8FC0 0x5F96
+0x8FC1-0x8FC2 0x5F9A
+0x8FC3-0x8FC6 0x5F9D
+0x8FC7-0x8FCC 0x5FA2
+0x8FCD 0x5FA9
+0x8FCE-0x8FCF 0x5FAB
+0x8FD0-0x8FD5 0x5FAF
+0x8FD6 0x5FB6
+0x8FD7-0x8FDA 0x5FB8
+0x8FDB-0x8FDF 0x5FBE
+0x8FE0-0x8FE1 0x5FC7
+0x8FE2-0x8FE3 0x5FCA
+0x8FE4 0x5FCE
+0x8FE5-0x8FE7 0x5FD3
+0x8FE8-0x8FEA 0x5FDA
+0x8FEB-0x8FEC 0x5FDE
+0x8FED-0x8FEE 0x5FE2
+0x8FEF-0x8FF0 0x5FE5
+0x8FF1-0x8FF2 0x5FE8
+0x8FF3 0x5FEC
+0x8FF4-0x8FF5 0x5FEF
+0x8FF6-0x8FF8 0x5FF2
+0x8FF9-0x8FFA 0x5FF6
+0x8FFB-0x8FFC 0x5FF9
+0x8FFD 0x5FFC
+0x8FFE 0x6007
+0x9040-0x9041 0x6008
+0x9042-0x9043 0x600B
+0x9044-0x9045 0x6010
+0x9046 0x6013
+0x9047-0x9048 0x6017
+0x9049 0x601A
+0x904A-0x904B 0x601E
+0x904C-0x904E 0x6022
+0x904F-0x9051 0x602C
+0x9052-0x9056 0x6030
+0x9057-0x905B 0x6036
+0x905C-0x905D 0x603D
+0x905E 0x6040
+0x905F-0x9065 0x6044
+0x9066 0x604C
+0x9067-0x9068 0x604E
+0x9069 0x6051
+0x906A-0x906B 0x6053
+0x906C-0x906E 0x6056
+0x906F-0x9070 0x605B
+0x9071-0x9074 0x605E
+0x9075-0x9076 0x6065
+0x9077 0x606E
+0x9078-0x9079 0x6071
+0x907A-0x907B 0x6074
+0x907C 0x6077
+0x907D 0x607E
+0x907E 0x6080
+0x9080-0x9081 0x6081
+0x9082-0x9085 0x6085
+0x9086-0x9087 0x608A
+0x9088-0x908B 0x608E
+0x908C 0x6093
+0x908D 0x6095
+0x908E-0x9090 0x6097
+0x9091 0x609C
+0x9092 0x609E
+0x9093-0x9094 0x60A1
+0x9095-0x9096 0x60A4
+0x9097 0x60A7
+0x9098-0x9099 0x60A9
+0x909A 0x60AE
+0x909B 0x60B0
+0x909C 0x60B3
+0x909D-0x909F 0x60B5
+0x90A0-0x90A1 0x60B9
+0x90A2-0x90A9 0x60BD
+0x90AA-0x90AC 0x60C7
+0x90AD-0x90B1 0x60CC
+0x90B2-0x90B4 0x60D2
+0x90B5-0x90B6 0x60D6
+0x90B7 0x60D9
+0x90B8 0x60DB
+0x90B9 0x60DE
+0x90BA-0x90BE 0x60E1
+0x90BF 0x60EA
+0x90C0-0x90C1 0x60F1
+0x90C2 0x60F5
+0x90C3-0x90C4 0x60F7
+0x90C5-0x90C9 0x60FB
+0x90CA-0x90CD 0x6102
+0x90CE 0x6107
+0x90CF-0x90D1 0x610A
+0x90D2-0x90D6 0x6110
+0x90D7-0x90DA 0x6116
+0x90DB-0x90DE 0x611B
+0x90DF-0x90E0 0x6121
+0x90E1 0x6125
+0x90E2-0x90E4 0x6128
+0x90E5-0x90F7 0x612C
+0x90F8-0x90FE 0x6140
+0x9140 0x6147
+0x9141 0x6149
+0x9142 0x614B
+0x9143 0x614D
+0x9144-0x9145 0x614F
+0x9146-0x9148 0x6152
+0x9149-0x914F 0x6156
+0x9150-0x9153 0x615E
+0x9154-0x9157 0x6163
+0x9158-0x915E 0x6169
+0x915F-0x9162 0x6171
+0x9163 0x6176
+0x9164-0x9176 0x6178
+0x9177-0x9178 0x618C
+0x9179-0x917D 0x618F
+0x917E 0x6195
+0x9180-0x9186 0x6196
+0x9187-0x918F 0x619E
+0x9190-0x9191 0x61AA
+0x9192-0x919B 0x61AD
+0x919C-0x91A1 0x61B8
+0x91A2-0x91A4 0x61BF
+0x91A5-0x91A9 0x61C3
+0x91AA 0x61C9
+0x91AB-0x91AF 0x61CC
+0x91B0 0x61D3
+0x91B1-0x91C1 0x61D5
+0x91C2-0x91CF 0x61E7
+0x91D0-0x91D8 0x61F6
+0x91D9-0x91DE 0x6200
+0x91DF 0x6207
+0x91E0 0x6209
+0x91E1-0x91E2 0x6213
+0x91E3 0x6219
+0x91E4-0x91E6 0x621C
+0x91E7 0x6220
+0x91E8 0x6223
+0x91E9-0x91EC 0x6226
+0x91ED 0x622B
+0x91EE 0x622D
+0x91EF-0x91F2 0x622F
+0x91F3-0x91F4 0x6235
+0x91F5-0x91F9 0x6238
+0x91FA 0x6242
+0x91FB-0x91FD 0x6244
+0x91FE 0x624A
+0x9240-0x9241 0x624F
+0x9242-0x9244 0x6255
+0x9245-0x9246 0x6259
+0x9247-0x924D 0x625C
+0x924E-0x924F 0x6264
+0x9250 0x6268
+0x9251-0x9252 0x6271
+0x9253-0x9254 0x6274
+0x9255-0x9256 0x6277
+0x9257-0x9258 0x627A
+0x9259 0x627D
+0x925A-0x925C 0x6281
+0x925D-0x9260 0x6285
+0x9261-0x9266 0x628B
+0x9267 0x6294
+0x9268 0x6299
+0x9269-0x926B 0x629C
+0x926C 0x62A3
+0x926D-0x926E 0x62A6
+0x926F-0x9270 0x62A9
+0x9271-0x9274 0x62AD
+0x9275-0x9277 0x62B2
+0x9278-0x927A 0x62B6
+0x927B 0x62BA
+0x927C 0x62BE
+0x927D-0x927E 0x62C0
+0x9280 0x62C3
+0x9281 0x62CB
+0x9282 0x62CF
+0x9283 0x62D1
+0x9284 0x62D5
+0x9285-0x9286 0x62DD
+0x9287-0x9288 0x62E0
+0x9289 0x62E4
+0x928A-0x928B 0x62EA
+0x928C 0x62F0
+0x928D 0x62F2
+0x928E 0x62F5
+0x928F-0x9292 0x62F8
+0x9293 0x6300
+0x9294-0x9297 0x6303
+0x9298-0x929B 0x630A
+0x929C-0x929D 0x630F
+0x929E-0x92A1 0x6312
+0x92A2-0x92A4 0x6317
+0x92A5 0x631C
+0x92A6-0x92A7 0x6326
+0x92A8 0x6329
+0x92A9-0x92AB 0x632C
+0x92AC-0x92AD 0x6330
+0x92AE-0x92B3 0x6333
+0x92B4-0x92B5 0x633B
+0x92B6-0x92B9 0x633E
+0x92BA 0x6344
+0x92BB-0x92BC 0x6347
+0x92BD 0x634A
+0x92BE-0x92C1 0x6351
+0x92C2-0x92C9 0x6356
+0x92CA 0x6360
+0x92CB-0x92CD 0x6364
+0x92CE 0x6368
+0x92CF-0x92D1 0x636A
+0x92D2-0x92D3 0x636F
+0x92D4-0x92D7 0x6372
+0x92D8-0x92D9 0x6378
+0x92DA-0x92DD 0x637C
+0x92DE 0x6381
+0x92DF-0x92E2 0x6383
+0x92E3 0x638B
+0x92E4 0x638D
+0x92E5 0x6391
+0x92E6-0x92E8 0x6393
+0x92E9 0x6397
+0x92EA-0x92F0 0x6399
+0x92F1 0x63A1
+0x92F2 0x63A4
+0x92F3 0x63A6
+0x92F4 0x63AB
+0x92F5 0x63AF
+0x92F6-0x92F7 0x63B1
+0x92F8-0x92F9 0x63B5
+0x92FA 0x63B9
+0x92FB 0x63BB
+0x92FC 0x63BD
+0x92FD-0x92FE 0x63BF
+0x9340-0x9342 0x63C1
+0x9343 0x63C5
+0x9344-0x9345 0x63C7
+0x9346-0x9348 0x63CA
+0x9349 0x63D1
+0x934A-0x934C 0x63D3
+0x934D-0x9353 0x63D7
+0x9354 0x63DF
+0x9355 0x63E2
+0x9356-0x935A 0x63E4
+0x935B-0x935C 0x63EB
+0x935D-0x9360 0x63EE
+0x9361 0x63F3
+0x9362 0x63F5
+0x9363 0x63F7
+0x9364-0x9367 0x63F9
+0x9368 0x63FE
+0x9369-0x936A 0x6403
+0x936B-0x936F 0x6406
+0x9370-0x9371 0x640D
+0x9372-0x9373 0x6411
+0x9374-0x9379 0x6415
+0x937A 0x641D
+0x937B 0x641F
+0x937C-0x937E 0x6422
+0x9380 0x6425
+0x9381-0x9383 0x6427
+0x9384 0x642B
+0x9385-0x938A 0x642E
+0x938B-0x938F 0x6435
+0x9390-0x9391 0x643B
+0x9392 0x643E
+0x9393 0x6440
+0x9394-0x9395 0x6442
+0x9396 0x6449
+0x9397-0x939D 0x644B
+0x939E 0x6453
+0x939F-0x93A1 0x6455
+0x93A2-0x93A6 0x6459
+0x93A7-0x93AE 0x645F
+0x93AF 0x6468
+0x93B0-0x93B2 0x646A
+0x93B3-0x93BC 0x646E
+0x93BD-0x93C3 0x647B
+0x93C4 0x6483
+0x93C5 0x6486
+0x93C6-0x93CE 0x6488
+0x93CF-0x93D0 0x6493
+0x93D1-0x93D2 0x6497
+0x93D3-0x93D6 0x649A
+0x93D7-0x93DB 0x649F
+0x93DC-0x93DF 0x64A5
+0x93E0-0x93E1 0x64AA
+0x93E2 0x64AF
+0x93E3-0x93E6 0x64B1
+0x93E7 0x64B6
+0x93E8 0x64B9
+0x93E9 0x64BB
+0x93EA-0x93EC 0x64BD
+0x93ED 0x64C1
+0x93EE-0x93EF 0x64C3
+0x93F0-0x93F6 0x64C6
+0x93F7 0x64CF
+0x93F8 0x64D1
+0x93F9-0x93FC 0x64D3
+0x93FD-0x93FE 0x64D9
+0x9440-0x9442 0x64DB
+0x9443-0x9445 0x64DF
+0x9446 0x64E3
+0x9447 0x64E5
+0x9448-0x9460 0x64E7
+0x9461-0x9468 0x6501
+0x9469-0x9470 0x650A
+0x9471-0x9475 0x6513
+0x9476-0x947E 0x6519
+0x9480-0x9482 0x6522
+0x9483-0x9487 0x6526
+0x9488-0x9489 0x652C
+0x948A-0x948D 0x6530
+0x948E 0x6537
+0x948F 0x653A
+0x9490-0x9491 0x653C
+0x9492-0x9496 0x6540
+0x9497-0x9498 0x6546
+0x9499-0x949A 0x654A
+0x949B-0x949C 0x654D
+0x949D 0x6550
+0x949E-0x94A0 0x6552
+0x94A1-0x94A2 0x6557
+0x94A3 0x655A
+0x94A4 0x655C
+0x94A5-0x94A7 0x655F
+0x94A8-0x94A9 0x6564
+0x94AA-0x94AD 0x6567
+0x94AE-0x94B0 0x656D
+0x94B1 0x6571
+0x94B2 0x6573
+0x94B3-0x94B4 0x6575
+0x94B5-0x94C3 0x6578
+0x94C4-0x94C6 0x6588
+0x94C7-0x94C9 0x658D
+0x94CA 0x6592
+0x94CB-0x94CD 0x6594
+0x94CE 0x6598
+0x94CF 0x659A
+0x94D0-0x94D1 0x659D
+0x94D2 0x65A0
+0x94D3-0x94D4 0x65A2
+0x94D5 0x65A6
+0x94D6 0x65A8
+0x94D7 0x65AA
+0x94D8 0x65AC
+0x94D9 0x65AE
+0x94DA-0x94E1 0x65B1
+0x94E2-0x94E3 0x65BA
+0x94E4-0x94E6 0x65BE
+0x94E7 0x65C2
+0x94E8-0x94EB 0x65C7
+0x94EC 0x65CD
+0x94ED-0x94EE 0x65D0
+0x94EF-0x94F1 0x65D3
+0x94F2-0x94F9 0x65D8
+0x94FA 0x65E1
+0x94FB-0x94FC 0x65E3
+0x94FD-0x94FE 0x65EA
+0x9540-0x9543 0x65F2
+0x9544-0x9545 0x65F8
+0x9546-0x954A 0x65FB
+0x954B 0x6601
+0x954C-0x954D 0x6604
+0x954E-0x9550 0x6607
+0x9551 0x660B
+0x9552 0x660D
+0x9553-0x9555 0x6610
+0x9556-0x9558 0x6616
+0x9559-0x955B 0x661A
+0x955C 0x661E
+0x955D-0x9560 0x6621
+0x9561 0x6626
+0x9562-0x9565 0x6629
+0x9566 0x662E
+0x9567 0x6630
+0x9568-0x9569 0x6632
+0x956A-0x956E 0x6637
+0x956F 0x663D
+0x9570-0x9571 0x663F
+0x9572 0x6642
+0x9573-0x9579 0x6644
+0x957A-0x957B 0x664D
+0x957C-0x957D 0x6650
+0x957E 0x6658
+0x9580 0x6659
+0x9581-0x9584 0x665B
+0x9585 0x6660
+0x9586-0x9587 0x6662
+0x9588 0x6665
+0x9589 0x6667
+0x958A-0x958E 0x6669
+0x958F-0x9591 0x6671
+0x9592 0x6675
+0x9593-0x9594 0x6678
+0x9595-0x9597 0x667B
+0x9598-0x959A 0x667F
+0x959B 0x6683
+0x959C-0x959D 0x6685
+0x959E-0x95A1 0x6688
+0x95A2-0x95A5 0x668D
+0x95A6-0x95A9 0x6692
+0x95AA-0x95AE 0x6698
+0x95AF-0x95B7 0x669E
+0x95B8-0x95BC 0x66A9
+0x95BD-0x95C1 0x66AF
+0x95C2-0x95C5 0x66B5
+0x95C6-0x95C9 0x66BA
+0x95CA-0x95E3 0x66BF
+0x95E4 0x66DA
+0x95E5-0x95EC 0x66DE
+0x95ED-0x95EE 0x66E7
+0x95EF-0x95F4 0x66EA
+0x95F5 0x66F1
+0x95F6-0x95F7 0x66F5
+0x95F8 0x66F8
+0x95F9-0x95FA 0x66FA
+0x95FB 0x66FD
+0x95FC-0x95FE 0x6701
+0x9640-0x9643 0x6704
+0x9644 0x670C
+0x9645-0x9646 0x670E
+0x9647-0x9649 0x6711
+0x964A 0x6716
+0x964B-0x964D 0x6718
+0x964E 0x671C
+0x964F 0x671E
+0x9650-0x9655 0x6720
+0x9656 0x6727
+0x9657 0x6729
+0x9658 0x672E
+0x9659 0x6730
+0x965A-0x965B 0x6732
+0x965C-0x965F 0x6736
+0x9660-0x9661 0x673B
+0x9662-0x9663 0x673E
+0x9664 0x6741
+0x9665-0x9666 0x6744
+0x9667 0x6747
+0x9668-0x9669 0x674A
+0x966A 0x674D
+0x966B 0x6752
+0x966C-0x966D 0x6754
+0x966E-0x9672 0x6757
+0x9673 0x675D
+0x9674-0x9676 0x6762
+0x9677-0x9678 0x6766
+0x9679-0x967A 0x676B
+0x967B 0x676E
+0x967C 0x6771
+0x967D 0x6774
+0x967E 0x6776
+0x9680-0x9683 0x6778
+0x9684 0x677D
+0x9685 0x6780
+0x9686-0x9687 0x6782
+0x9688-0x9689 0x6785
+0x968A 0x6788
+0x968B 0x678A
+0x968C-0x968F 0x678C
+0x9690-0x9693 0x6791
+0x9694 0x6796
+0x9695 0x6799
+0x9696 0x679B
+0x9697-0x9699 0x679F
+0x969A 0x67A4
+0x969B 0x67A6
+0x969C 0x67A9
+0x969D 0x67AC
+0x969E 0x67AE
+0x969F-0x96A0 0x67B1
+0x96A1 0x67B4
+0x96A2-0x96A9 0x67B9
+0x96AA 0x67C2
+0x96AB-0x96B4 0x67C5
+0x96B5-0x96B7 0x67D5
+0x96B8 0x67DB
+0x96B9 0x67DF
+0x96BA 0x67E1
+0x96BB-0x96BC 0x67E3
+0x96BD-0x96BF 0x67E6
+0x96C0-0x96C1 0x67EA
+0x96C2-0x96C3 0x67ED
+0x96C4 0x67F2
+0x96C5-0x96CC 0x67F5
+0x96CD 0x67FE
+0x96CE-0x96D1 0x6801
+0x96D2 0x6806
+0x96D3 0x680D
+0x96D4 0x6810
+0x96D5 0x6812
+0x96D6-0x96D7 0x6814
+0x96D8-0x96DC 0x6818
+0x96DD-0x96DF 0x681E
+0x96E0-0x96E6 0x6822
+0x96E7-0x96ED 0x682B
+0x96EE-0x96F0 0x6834
+0x96F1-0x96F2 0x683A
+0x96F3 0x683F
+0x96F4 0x6847
+0x96F5 0x684B
+0x96F6 0x684D
+0x96F7 0x684F
+0x96F8 0x6852
+0x96F9-0x96FE 0x6856
+0x9740-0x9743 0x685C
+0x9744 0x686A
+0x9745-0x974C 0x686C
+0x974D 0x6875
+0x974E-0x9756 0x6878
+0x9757 0x6882
+0x9758 0x6884
+0x9759-0x9760 0x6887
+0x9761-0x9763 0x6890
+0x9764-0x9766 0x6894
+0x9767-0x9770 0x6898
+0x9771-0x9773 0x68A3
+0x9774-0x9777 0x68A9
+0x9778 0x68AE
+0x9779-0x977A 0x68B1
+0x977B 0x68B4
+0x977C-0x977E 0x68B6
+0x9780-0x9786 0x68B9
+0x9787 0x68C1
+0x9788-0x978D 0x68C3
+0x978E 0x68CA
+0x978F 0x68CC
+0x9790-0x9793 0x68CE
+0x9794-0x9795 0x68D3
+0x9796-0x9797 0x68D6
+0x9798 0x68D9
+0x9799-0x979D 0x68DB
+0x979E-0x979F 0x68E1
+0x97A0-0x97A9 0x68E4
+0x97AA 0x68EF
+0x97AB-0x97AD 0x68F2
+0x97AE-0x97B0 0x68F6
+0x97B1 0x68FB
+0x97B2-0x97B5 0x68FD
+0x97B6-0x97B8 0x6902
+0x97B9-0x97BD 0x6906
+0x97BE 0x690C
+0x97BF 0x690F
+0x97C0 0x6911
+0x97C1-0x97CC 0x6913
+0x97CD-0x97CF 0x6921
+0x97D0-0x97D7 0x6925
+0x97D8-0x97D9 0x692E
+0x97DA-0x97DC 0x6931
+0x97DD-0x97E0 0x6935
+0x97E1-0x97E3 0x693A
+0x97E4 0x693E
+0x97E5-0x97E6 0x6940
+0x97E7-0x97F7 0x6943
+0x97F8-0x97F9 0x6955
+0x97FA-0x97FB 0x6958
+0x97FC-0x97FD 0x695B
+0x97FE 0x695F
+0x9840-0x9841 0x6961
+0x9842-0x9843 0x6964
+0x9844-0x9847 0x6967
+0x9848-0x9849 0x696C
+0x984A-0x984B 0x696F
+0x984C-0x9850 0x6972
+0x9851-0x9852 0x697A
+0x9853-0x9855 0x697D
+0x9856 0x6981
+0x9857 0x6983
+0x9858 0x6985
+0x9859-0x985B 0x698A
+0x985C-0x9861 0x698E
+0x9862-0x9863 0x6996
+0x9864-0x9865 0x6999
+0x9866-0x986F 0x699D
+0x9870-0x9871 0x69A9
+0x9872 0x69AC
+0x9873-0x9875 0x69AE
+0x9876-0x9877 0x69B2
+0x9878-0x9879 0x69B5
+0x987A-0x987C 0x69B8
+0x987D-0x987E 0x69BC
+0x9880-0x9882 0x69BE
+0x9883-0x988A 0x69C2
+0x988B 0x69CB
+0x988C 0x69CD
+0x988D 0x69CF
+0x988E-0x9890 0x69D1
+0x9891-0x9896 0x69D5
+0x9897-0x9899 0x69DC
+0x989A-0x98A5 0x69E1
+0x98A6-0x98A9 0x69EE
+0x98AA-0x98B3 0x69F3
+0x98B4 0x69FE
+0x98B5-0x98BE 0x6A00
+0x98BF-0x98CA 0x6A0B
+0x98CB-0x98D0 0x6A19
+0x98D1 0x6A20
+0x98D2-0x98D7 0x6A22
+0x98D8 0x6A29
+0x98D9-0x98DC 0x6A2B
+0x98DD 0x6A30
+0x98DE-0x98E0 0x6A32
+0x98E1-0x98E7 0x6A36
+0x98E8-0x98EC 0x6A3F
+0x98ED-0x98EE 0x6A45
+0x98EF-0x98F6 0x6A48
+0x98F7-0x98FD 0x6A51
+0x98FE 0x6A5A
+0x9940-0x9944 0x6A5C
+0x9945-0x9947 0x6A62
+0x9948-0x9952 0x6A66
+0x9953-0x9959 0x6A72
+0x995A-0x995B 0x6A7A
+0x995C-0x995E 0x6A7D
+0x995F-0x9961 0x6A81
+0x9962-0x996A 0x6A85
+0x996B 0x6A8F
+0x996C-0x9970 0x6A92
+0x9971-0x9978 0x6A98
+0x9979-0x997E 0x6AA1
+0x9980-0x9981 0x6AA7
+0x9982 0x6AAA
+0x9983-0x99F5 0x6AAD
+0x99F6-0x99F7 0x6B25
+0x99F8-0x99FE 0x6B28
+0x9A40-0x9A42 0x6B2F
+0x9A43-0x9A46 0x6B33
+0x9A47 0x6B38
+0x9A48-0x9A4A 0x6B3B
+0x9A4B-0x9A4E 0x6B3F
+0x9A4F-0x9A50 0x6B44
+0x9A51 0x6B48
+0x9A52-0x9A53 0x6B4A
+0x9A54-0x9A5F 0x6B4D
+0x9A60-0x9A67 0x6B5A
+0x9A68-0x9A69 0x6B68
+0x9A6A-0x9A77 0x6B6B
+0x9A78 0x6B7A
+0x9A79-0x9A7C 0x6B7D
+0x9A7D 0x6B85
+0x9A7E 0x6B88
+0x9A80 0x6B8C
+0x9A81-0x9A84 0x6B8E
+0x9A85-0x9A86 0x6B94
+0x9A87-0x9A89 0x6B97
+0x9A8A-0x9A8E 0x6B9C
+0x9A8F-0x9A96 0x6BA2
+0x9A97-0x9A9E 0x6BAB
+0x9A9F 0x6BB6
+0x9AA0-0x9AA6 0x6BB8
+0x9AA7 0x6BC0
+0x9AA8-0x9AA9 0x6BC3
+0x9AAA-0x9AAE 0x6BC6
+0x9AAF 0x6BCC
+0x9AB0 0x6BCE
+0x9AB1-0x9AB2 0x6BD0
+0x9AB3 0x6BD8
+0x9AB4 0x6BDA
+0x9AB5-0x9AB9 0x6BDC
+0x9ABA-0x9AC1 0x6BE2
+0x9AC2-0x9AC4 0x6BEC
+0x9AC5-0x9AC7 0x6BF0
+0x9AC8 0x6BF4
+0x9AC9-0x9ACB 0x6BF6
+0x9ACC-0x9ACE 0x6BFA
+0x9ACF-0x9AD5 0x6BFE
+0x9AD6-0x9ADA 0x6C08
+0x9ADB 0x6C0E
+0x9ADC 0x6C12
+0x9ADD 0x6C17
+0x9ADE-0x9AE0 0x6C1C
+0x9AE1 0x6C20
+0x9AE2 0x6C23
+0x9AE3 0x6C25
+0x9AE4-0x9AE6 0x6C2B
+0x9AE7 0x6C31
+0x9AE8 0x6C33
+0x9AE9-0x9AEA 0x6C36
+0x9AEB-0x9AEE 0x6C39
+0x9AEF-0x9AF0 0x6C3E
+0x9AF1-0x9AF3 0x6C43
+0x9AF4 0x6C48
+0x9AF5-0x9AF9 0x6C4B
+0x9AFA-0x9AFC 0x6C51
+0x9AFD 0x6C56
+0x9AFE 0x6C58
+0x9B40-0x9B41 0x6C59
+0x9B42-0x9B43 0x6C62
+0x9B44-0x9B46 0x6C65
+0x9B47-0x9B4B 0x6C6B
+0x9B4C 0x6C71
+0x9B4D 0x6C73
+0x9B4E 0x6C75
+0x9B4F-0x9B50 0x6C77
+0x9B51-0x9B53 0x6C7A
+0x9B54-0x9B55 0x6C7F
+0x9B56 0x6C84
+0x9B57 0x6C87
+0x9B58-0x9B59 0x6C8A
+0x9B5A-0x9B5B 0x6C8D
+0x9B5C-0x9B5D 0x6C91
+0x9B5E-0x9B61 0x6C95
+0x9B62 0x6C9A
+0x9B63-0x9B65 0x6C9C
+0x9B66 0x6CA0
+0x9B67 0x6CA2
+0x9B68 0x6CA8
+0x9B69 0x6CAC
+0x9B6A-0x9B6B 0x6CAF
+0x9B6C-0x9B6F 0x6CB4
+0x9B70 0x6CBA
+0x9B71-0x9B74 0x6CC0
+0x9B75-0x9B77 0x6CC6
+0x9B78 0x6CCB
+0x9B79-0x9B7B 0x6CCD
+0x9B7C-0x9B7D 0x6CD1
+0x9B7E 0x6CD8
+0x9B80-0x9B81 0x6CD9
+0x9B82-0x9B83 0x6CDC
+0x9B84 0x6CDF
+0x9B85 0x6CE4
+0x9B86-0x9B87 0x6CE6
+0x9B88 0x6CE9
+0x9B89-0x9B8A 0x6CEC
+0x9B8B 0x6CF2
+0x9B8C 0x6CF4
+0x9B8D 0x6CF9
+0x9B8E-0x9B8F 0x6CFF
+0x9B90-0x9B91 0x6D02
+0x9B92-0x9B93 0x6D05
+0x9B94-0x9B96 0x6D08
+0x9B97 0x6D0D
+0x9B98-0x9B9A 0x6D0F
+0x9B9B-0x9B9E 0x6D13
+0x9B9F 0x6D18
+0x9BA0-0x9BA1 0x6D1C
+0x9BA2-0x9BA7 0x6D1F
+0x9BA8 0x6D26
+0x9BA9-0x9BAA 0x6D28
+0x9BAB-0x9BAC 0x6D2C
+0x9BAD-0x9BAE 0x6D2F
+0x9BAF 0x6D34
+0x9BB0-0x9BB2 0x6D36
+0x9BB3 0x6D3A
+0x9BB4-0x9BB5 0x6D3F
+0x9BB6 0x6D42
+0x9BB7 0x6D44
+0x9BB8 0x6D49
+0x9BB9 0x6D4C
+0x9BBA 0x6D50
+0x9BBB-0x9BBE 0x6D55
+0x9BBF 0x6D5B
+0x9BC0 0x6D5D
+0x9BC1 0x6D5F
+0x9BC2-0x9BC3 0x6D61
+0x9BC4-0x9BC5 0x6D64
+0x9BC6-0x9BC7 0x6D67
+0x9BC8-0x9BCA 0x6D6B
+0x9BCB-0x9BCE 0x6D70
+0x9BCF-0x9BD0 0x6D75
+0x9BD1-0x9BD3 0x6D79
+0x9BD4-0x9BD8 0x6D7D
+0x9BD9-0x9BDA 0x6D83
+0x9BDB-0x9BDC 0x6D86
+0x9BDD-0x9BDE 0x6D8A
+0x9BDF 0x6D8D
+0x9BE0-0x9BE1 0x6D8F
+0x9BE2 0x6D92
+0x9BE3-0x9BE7 0x6D96
+0x9BE8 0x6D9C
+0x9BE9 0x6DA2
+0x9BEA 0x6DA5
+0x9BEB-0x9BEC 0x6DAC
+0x9BED-0x9BEE 0x6DB0
+0x9BEF-0x9BF0 0x6DB3
+0x9BF1-0x9BF2 0x6DB6
+0x9BF3-0x9BF8 0x6DB9
+0x9BF9-0x9BFB 0x6DC1
+0x9BFC-0x9BFE 0x6DC8
+0x9C40-0x9C43 0x6DCD
+0x9C44-0x9C47 0x6DD2
+0x9C48 0x6DD7
+0x9C49-0x9C4B 0x6DDA
+0x9C4C 0x6DDF
+0x9C4D-0x9C4E 0x6DE2
+0x9C4F 0x6DE5
+0x9C50-0x9C53 0x6DE7
+0x9C54 0x6DED
+0x9C55-0x9C56 0x6DEF
+0x9C57 0x6DF2
+0x9C58-0x9C5A 0x6DF4
+0x9C5B 0x6DF8
+0x9C5C 0x6DFA
+0x9C5D-0x9C64 0x6DFD
+0x9C65-0x9C68 0x6E06
+0x9C69 0x6E0B
+0x9C6A 0x6E0F
+0x9C6B-0x9C6C 0x6E12
+0x9C6D 0x6E15
+0x9C6E-0x9C6F 0x6E18
+0x9C70-0x9C71 0x6E1B
+0x9C72-0x9C73 0x6E1E
+0x9C74 0x6E22
+0x9C75-0x9C77 0x6E26
+0x9C78 0x6E2A
+0x9C79 0x6E2C
+0x9C7A 0x6E2E
+0x9C7B-0x9C7C 0x6E30
+0x9C7D 0x6E33
+0x9C7E 0x6E35
+0x9C80-0x9C81 0x6E36
+0x9C82 0x6E39
+0x9C83-0x9C8A 0x6E3B
+0x9C8B-0x9C92 0x6E45
+0x9C93-0x9C96 0x6E4F
+0x9C97 0x6E55
+0x9C98 0x6E57
+0x9C99-0x9C9A 0x6E59
+0x9C9B-0x9C9D 0x6E5C
+0x9C9E-0x9CA8 0x6E60
+0x9CA9-0x9CAA 0x6E6C
+0x9CAB-0x9CB9 0x6E6F
+0x9CBA-0x9CBC 0x6E80
+0x9CBD 0x6E84
+0x9CBE-0x9CBF 0x6E87
+0x9CC0-0x9CC4 0x6E8A
+0x9CC5-0x9CCB 0x6E91
+0x9CCC-0x9CCE 0x6E99
+0x9CCF-0x9CD0 0x6E9D
+0x9CD1-0x9CD2 0x6EA0
+0x9CD3-0x9CD4 0x6EA3
+0x9CD5 0x6EA6
+0x9CD6-0x9CD7 0x6EA8
+0x9CD8-0x9CDB 0x6EAB
+0x9CDC 0x6EB0
+0x9CDD 0x6EB3
+0x9CDE 0x6EB5
+0x9CDF-0x9CE0 0x6EB8
+0x9CE1 0x6EBC
+0x9CE2-0x9CE4 0x6EBE
+0x9CE5-0x9CE8 0x6EC3
+0x9CE9-0x9CEB 0x6EC8
+0x9CEC-0x9CEE 0x6ECC
+0x9CEF 0x6ED0
+0x9CF0 0x6ED2
+0x9CF1 0x6ED6
+0x9CF2-0x9CF3 0x6ED8
+0x9CF4-0x9CF6 0x6EDB
+0x9CF7 0x6EE3
+0x9CF8 0x6EE7
+0x9CF9-0x9CFE 0x6EEA
+0x9D40-0x9D43 0x6EF0
+0x9D44-0x9D47 0x6EF5
+0x9D48-0x9D4F 0x6EFA
+0x9D50-0x9D52 0x6F03
+0x9D53-0x9D54 0x6F07
+0x9D55-0x9D59 0x6F0A
+0x9D5A-0x9D5C 0x6F10
+0x9D5D-0x9D66 0x6F16
+0x9D67-0x9D69 0x6F21
+0x9D6A-0x9D6D 0x6F25
+0x9D6E 0x6F2C
+0x9D6F 0x6F2E
+0x9D70 0x6F30
+0x9D71 0x6F32
+0x9D72-0x9D73 0x6F34
+0x9D74-0x9D7A 0x6F37
+0x9D7B-0x9D7E 0x6F3F
+0x9D80-0x9D82 0x6F43
+0x9D83-0x9D85 0x6F48
+0x9D86 0x6F4C
+0x9D87-0x9D90 0x6F4E
+0x9D91-0x9D93 0x6F59
+0x9D94 0x6F5D
+0x9D95-0x9D97 0x6F5F
+0x9D98-0x9D9A 0x6F63
+0x9D9B-0x9DA0 0x6F67
+0x9DA1-0x9DA3 0x6F6F
+0x9DA4 0x6F73
+0x9DA5-0x9DA7 0x6F75
+0x9DA8 0x6F79
+0x9DA9 0x6F7B
+0x9DAA-0x9DB0 0x6F7D
+0x9DB1-0x9DB3 0x6F85
+0x9DB4-0x9DB5 0x6F8A
+0x9DB6-0x9DC2 0x6F8F
+0x9DC3-0x9DC6 0x6F9D
+0x9DC7-0x9DCB 0x6FA2
+0x9DCC-0x9DD6 0x6FA8
+0x9DD7-0x9DD8 0x6FB4
+0x9DD9-0x9DDA 0x6FB7
+0x9DDB-0x9DE0 0x6FBA
+0x9DE1 0x6FC1
+0x9DE2-0x9DE7 0x6FC3
+0x9DE8-0x9DEE 0x6FCA
+0x9DEF-0x9DF9 0x6FD3
+0x9DFA 0x6FDF
+0x9DFB-0x9DFE 0x6FE2
+0x9E40-0x9E47 0x6FE6
+0x9E48-0x9E68 0x6FF0
+0x9E69-0x9E70 0x7012
+0x9E71-0x9E77 0x701C
+0x9E78-0x9E7E 0x7024
+0x9E80-0x9E89 0x702B
+0x9E8A-0x9E8C 0x7036
+0x9E8D-0x9E9E 0x703A
+0x9E9F-0x9EA0 0x704D
+0x9EA1-0x9EAE 0x7050
+0x9EAF-0x9EBA 0x705F
+0x9EBB 0x706E
+0x9EBC-0x9EBF 0x7071
+0x9EC0 0x7077
+0x9EC1-0x9EC3 0x7079
+0x9EC4 0x707D
+0x9EC5-0x9EC8 0x7081
+0x9EC9-0x9ECB 0x7086
+0x9ECC-0x9ECE 0x708B
+0x9ECF-0x9ED1 0x708F
+0x9ED2 0x7093
+0x9ED3-0x9ED4 0x7097
+0x9ED5-0x9ED6 0x709A
+0x9ED7-0x9EE3 0x709E
+0x9EE4 0x70B0
+0x9EE5 0x70B2
+0x9EE6-0x9EE8 0x70B4
+0x9EE9 0x70BA
+0x9EEA-0x9EEB 0x70BE
+0x9EEC-0x9EEF 0x70C4
+0x9EF0 0x70C9
+0x9EF1-0x9EFD 0x70CB
+0x9EFE 0x70DA
+0x9F40-0x9F42 0x70DC
+0x9F43-0x9F46 0x70E0
+0x9F47 0x70E5
+0x9F48 0x70EA
+0x9F49 0x70EE
+0x9F4A-0x9F50 0x70F0
+0x9F51 0x70F8
+0x9F52-0x9F54 0x70FA
+0x9F55-0x9F5F 0x70FE
+0x9F60-0x9F64 0x710B
+0x9F65-0x9F66 0x7111
+0x9F67 0x7114
+0x9F68 0x7117
+0x9F69-0x9F73 0x711B
+0x9F74-0x9F7B 0x7127
+0x9F7C-0x9F7E 0x7132
+0x9F80 0x7135
+0x9F81-0x9F8E 0x7137
+0x9F8F-0x9F92 0x7146
+0x9F93 0x714B
+0x9F94 0x714D
+0x9F95-0x9FA1 0x714F
+0x9FA2 0x715D
+0x9FA3-0x9FA7 0x715F
+0x9FA8 0x7165
+0x9FA9-0x9FAD 0x7169
+0x9FAE-0x9FB0 0x716F
+0x9FB1-0x9FB4 0x7174
+0x9FB5 0x7179
+0x9FB6-0x9FB7 0x717B
+0x9FB8-0x9FBD 0x717E
+0x9FBE-0x9FC2 0x7185
+0x9FC3-0x9FC6 0x718B
+0x9FC7-0x9FCA 0x7190
+0x9FCB-0x9FCD 0x7195
+0x9FCE-0x9FD2 0x719A
+0x9FD3-0x9FD9 0x71A1
+0x9FDA-0x9FDC 0x71A9
+0x9FDD-0x9FE2 0x71AD
+0x9FE3 0x71B4
+0x9FE4-0x9FE6 0x71B6
+0x9FE7-0x9FEF 0x71BA
+0x9FF0-0x9FF9 0x71C4
+0x9FFA-0x9FFE 0x71CF
+0xA040-0xA049 0x71D6
+0xA04A-0xA04D 0x71E1
+0xA04E 0x71E6
+0xA04F-0xA054 0x71E8
+0xA055-0xA05E 0x71EF
+0xA05F-0xA06A 0x71FA
+0xA06B-0xA07E 0x7207
+0xA080-0xA081 0x721B
+0xA082-0xA08B 0x721E
+0xA08C 0x7229
+0xA08D 0x722B
+0xA08E-0xA090 0x722D
+0xA091-0xA093 0x7232
+0xA094 0x723A
+0xA095 0x723C
+0xA096 0x723E
+0xA097-0xA09D 0x7240
+0xA09E-0xA0A0 0x7249
+0xA0A1-0xA0A4 0x724E
+0xA0A5-0xA0A7 0x7253
+0xA0A8-0xA0A9 0x7257
+0xA0AA 0x725A
+0xA0AB 0x725C
+0xA0AC 0x725E
+0xA0AD 0x7260
+0xA0AE-0xA0B0 0x7263
+0xA0B1 0x7268
+0xA0B2-0xA0B5 0x726A
+0xA0B6-0xA0B7 0x7270
+0xA0B8-0xA0B9 0x7273
+0xA0BA-0xA0BC 0x7276
+0xA0BD-0xA0BF 0x727B
+0xA0C0-0xA0C1 0x7282
+0xA0C2-0xA0C6 0x7285
+0xA0C7 0x728C
+0xA0C8 0x728E
+0xA0C9-0xA0CA 0x7290
+0xA0CB-0xA0D6 0x7293
+0xA0D7-0xA0E2 0x72A0
+0xA0E3 0x72AE
+0xA0E4-0xA0E6 0x72B1
+0xA0E7 0x72B5
+0xA0E8-0xA0EE 0x72BA
+0xA0EF-0xA0F1 0x72C5
+0xA0F2-0xA0F5 0x72C9
+0xA0F6 0x72CF
+0xA0F7 0x72D1
+0xA0F8-0xA0FB 0x72D3
+0xA0FC 0x72D8
+0xA0FD-0xA0FE 0x72DA
+0xA1A1-0xA1A3 0x3000
+0xA1A4 0x00B7
+0xA1A5 0x02C9
+0xA1A6 0x02C7
+0xA1A7 0x00A8
+0xA1A8 0x3003
+0xA1A9 0x3005
+0xA1AA 0x2014
+0xA1AB 0xFF5E
+0xA1AC 0x2016
+0xA1AD 0x2026
+0xA1AE-0xA1AF 0x2018
+0xA1B0-0xA1B1 0x201C
+0xA1B2-0xA1B3 0x3014
+0xA1B4-0xA1BB 0x3008
+0xA1BC-0xA1BD 0x3016
+0xA1BE-0xA1BF 0x3010
+0xA1C0 0x00B1
+0xA1C1 0x00D7
+0xA1C2 0x00F7
+0xA1C3 0x2236
+0xA1C4-0xA1C5 0x2227
+0xA1C6 0x2211
+0xA1C7 0x220F
+0xA1C8 0x222A
+0xA1C9 0x2229
+0xA1CA 0x2208
+0xA1CB 0x2237
+0xA1CC 0x221A
+0xA1CD 0x22A5
+0xA1CE 0x2225
+0xA1CF 0x2220
+0xA1D0 0x2312
+0xA1D1 0x2299
+0xA1D2 0x222B
+0xA1D3 0x222E
+0xA1D4 0x2261
+0xA1D5 0x224C
+0xA1D6 0x2248
+0xA1D7 0x223D
+0xA1D8 0x221D
+0xA1D9 0x2260
+0xA1DA-0xA1DB 0x226E
+0xA1DC-0xA1DD 0x2264
+0xA1DE 0x221E
+0xA1DF 0x2235
+0xA1E0 0x2234
+0xA1E1 0x2642
+0xA1E2 0x2640
+0xA1E3 0x00B0
+0xA1E4-0xA1E5 0x2032
+0xA1E6 0x2103
+0xA1E7 0xFF04
+0xA1E8 0x00A4
+0xA1E9-0xA1EA 0xFFE0
+0xA1EB 0x2030
+0xA1EC 0x00A7
+0xA1ED 0x2116
+0xA1EE 0x2606
+0xA1EF 0x2605
+0xA1F0 0x25CB
+0xA1F1 0x25CF
+0xA1F2 0x25CE
+0xA1F3 0x25C7
+0xA1F4 0x25C6
+0xA1F5 0x25A1
+0xA1F6 0x25A0
+0xA1F7 0x25B3
+0xA1F8 0x25B2
+0xA1F9 0x203B
+0xA1FA 0x2192
+0xA1FB-0xA1FC 0x2190
+0xA1FD 0x2193
+0xA1FE 0x3013
+0xA2A1-0xA2AA 0x2170
+0xA2B1-0xA2C4 0x2488
+0xA2C5-0xA2D8 0x2474
+0xA2D9-0xA2E2 0x2460
+0xA2E5-0xA2EE 0x3220
+0xA2F1-0xA2FC 0x2160
+0xA3A1-0xA3A3 0xFF01
+0xA3A4 0xFFE5
+0xA3A5-0xA3FD 0xFF05
+0xA3FE 0xFFE3
+0xA4A1-0xA4F3 0x3041
+0xA5A1-0xA5F6 0x30A1
+0xA6A1-0xA6B1 0x0391
+0xA6B2-0xA6B8 0x03A3
+0xA6C1-0xA6D1 0x03B1
+0xA6D2-0xA6D8 0x03C3
+0xA6E0-0xA6E1 0xFE35
+0xA6E2-0xA6E3 0xFE39
+0xA6E4-0xA6E5 0xFE3F
+0xA6E6-0xA6E7 0xFE3D
+0xA6E8-0xA6EB 0xFE41
+0xA6EE-0xA6EF 0xFE3B
+0xA6F0-0xA6F1 0xFE37
+0xA6F2 0xFE31
+0xA6F4-0xA6F5 0xFE33
+0xA7A1-0xA7A6 0x0410
+0xA7A7 0x0401
+0xA7A8-0xA7C1 0x0416
+0xA7D1-0xA7D6 0x0430
+0xA7D7 0x0451
+0xA7D8-0xA7F1 0x0436
+0xA840-0xA841 0x02CA
+0xA842 0x02D9
+0xA843 0x2013
+0xA844 0x2015
+0xA845 0x2025
+0xA846 0x2035
+0xA847 0x2105
+0xA848 0x2109
+0xA849-0xA84C 0x2196
+0xA84D 0x2215
+0xA84E 0x221F
+0xA84F 0x2223
+0xA850 0x2252
+0xA851-0xA852 0x2266
+0xA853 0x22BF
+0xA854-0xA877 0x2550
+0xA878-0xA87E 0x2581
+0xA880-0xA887 0x2588
+0xA888-0xA88A 0x2593
+0xA88B-0xA88C 0x25BC
+0xA88D-0xA890 0x25E2
+0xA891 0x2609
+0xA892 0x2295
+0xA893 0x3012
+0xA894-0xA895 0x301D
+0xA8A1 0x0101
+0xA8A2 0x00E1
+0xA8A3 0x01CE
+0xA8A4 0x00E0
+0xA8A5 0x0113
+0xA8A6 0x00E9
+0xA8A7 0x011B
+0xA8A8 0x00E8
+0xA8A9 0x012B
+0xA8AA 0x00ED
+0xA8AB 0x01D0
+0xA8AC 0x00EC
+0xA8AD 0x014D
+0xA8AE 0x00F3
+0xA8AF 0x01D2
+0xA8B0 0x00F2
+0xA8B1 0x016B
+0xA8B2 0x00FA
+0xA8B3 0x01D4
+0xA8B4 0x00F9
+0xA8B5 0x01D6
+0xA8B6 0x01D8
+0xA8B7 0x01DA
+0xA8B8 0x01DC
+0xA8B9 0x00FC
+0xA8BA 0x00EA
+0xA8BB 0x0251
+0xA8BD 0x0144
+0xA8BE 0x0148
+0xA8C0 0x0261
+0xA8C5-0xA8E9 0x3105
+0xA940-0xA948 0x3021
+0xA949 0x32A3
+0xA94A-0xA94B 0x338E
+0xA94C-0xA94E 0x339C
+0xA94F 0x33A1
+0xA950 0x33C4
+0xA951 0x33CE
+0xA952-0xA953 0x33D1
+0xA954 0x33D5
+0xA955 0xFE30
+0xA956 0xFFE2
+0xA957 0xFFE4
+0xA959 0x2121
+0xA95A 0x3231
+0xA95C 0x2010
+0xA960 0x30FC
+0xA961-0xA962 0x309B
+0xA963-0xA964 0x30FD
+0xA965 0x3006
+0xA966-0xA967 0x309D
+0xA968-0xA971 0xFE49
+0xA972-0xA975 0xFE54
+0xA976-0xA97E 0xFE59
+0xA980-0xA984 0xFE62
+0xA985-0xA988 0xFE68
+0xA996 0x3007
+0xA9A4-0xA9EF 0x2500
+0xAA40-0xAA41 0x72DC
+0xAA42 0x72DF
+0xAA43-0xAA48 0x72E2
+0xAA49-0xAA4A 0x72EA
+0xAA4B-0xAA4C 0x72F5
+0xAA4D 0x72F9
+0xAA4E-0xAA51 0x72FD
+0xAA52 0x7302
+0xAA53-0xAA58 0x7304
+0xAA59-0xAA5B 0x730B
+0xAA5C-0xAA5F 0x730F
+0xAA60 0x7314
+0xAA61-0xAA63 0x7318
+0xAA64-0xAA65 0x731F
+0xAA66-0xAA67 0x7323
+0xAA68-0xAA6A 0x7326
+0xAA6B 0x732D
+0xAA6C-0xAA6D 0x732F
+0xAA6E-0xAA6F 0x7332
+0xAA70-0xAA71 0x7335
+0xAA72-0xAA75 0x733A
+0xAA76-0xAA7E 0x7340
+0xAA80-0xAA83 0x7349
+0xAA84-0xAA85 0x734E
+0xAA86 0x7351
+0xAA87-0xAA8A 0x7353
+0xAA8B-0xAA92 0x7358
+0xAA93-0xAA9D 0x7361
+0xAA9E 0x736E
+0xAA9F-0xAAA0 0x7370
+0xAB40-0xAB4B 0x7372
+0xAB4C-0xAB50 0x737F
+0xAB51-0xAB52 0x7385
+0xAB53 0x7388
+0xAB54 0x738A
+0xAB55-0xAB56 0x738C
+0xAB57-0xAB58 0x738F
+0xAB59-0xAB5C 0x7392
+0xAB5D-0xAB60 0x7397
+0xAB61-0xAB63 0x739C
+0xAB64-0xAB65 0x73A0
+0xAB66-0xAB6B 0x73A3
+0xAB6C 0x73AA
+0xAB6D-0xAB6E 0x73AC
+0xAB6F 0x73B1
+0xAB70-0xAB72 0x73B4
+0xAB73-0xAB74 0x73B8
+0xAB75-0xAB78 0x73BC
+0xAB79 0x73C1
+0xAB7A-0xAB7E 0x73C3
+0xAB80-0xAB81 0x73CB
+0xAB82 0x73CE
+0xAB83-0xAB89 0x73D2
+0xAB8A-0xAB8D 0x73DA
+0xAB8E 0x73DF
+0xAB8F-0xAB92 0x73E1
+0xAB93 0x73E6
+0xAB94 0x73E8
+0xAB95-0xAB97 0x73EA
+0xAB98-0xAB9B 0x73EE
+0xAB9C-0xABA0 0x73F3
+0xAC40-0xAC4A 0x73F8
+0xAC4B 0x7404
+0xAC4C-0xAC4D 0x7407
+0xAC4E-0xAC51 0x740B
+0xAC52-0xAC5A 0x7411
+0xAC5B-0xAC60 0x741C
+0xAC61-0xAC62 0x7423
+0xAC63 0x7427
+0xAC64 0x7429
+0xAC65 0x742B
+0xAC66 0x742D
+0xAC67 0x742F
+0xAC68-0xAC69 0x7431
+0xAC6A-0xAC6E 0x7437
+0xAC6F-0xAC72 0x743D
+0xAC73-0xAC7E 0x7442
+0xAC80-0xAC86 0x744E
+0xAC87 0x7456
+0xAC88 0x7458
+0xAC89 0x745D
+0xAC8A-0xAC96 0x7460
+0xAC97-0xAC98 0x746E
+0xAC99-0xAC9D 0x7471
+0xAC9E-0xACA0 0x7478
+0xAD40-0xAD42 0x747B
+0xAD43 0x747F
+0xAD44 0x7482
+0xAD45-0xAD47 0x7484
+0xAD48-0xAD4A 0x7488
+0xAD4B-0xAD4C 0x748C
+0xAD4D 0x748F
+0xAD4E-0xAD58 0x7491
+0xAD59 0x749D
+0xAD5A-0xAD61 0x749F
+0xAD62-0xAD71 0x74AA
+0xAD72-0xAD7E 0x74BB
+0xAD80-0xAD89 0x74C8
+0xAD8A-0xAD92 0x74D3
+0xAD93 0x74DD
+0xAD94 0x74DF
+0xAD95 0x74E1
+0xAD96 0x74E5
+0xAD97-0xAD9D 0x74E7
+0xAD9E-0xADA0 0x74F0
+0xAE40 0x74F3
+0xAE41 0x74F5
+0xAE42-0xAE48 0x74F8
+0xAE49-0xAE4C 0x7500
+0xAE4D-0xAE54 0x7505
+0xAE55 0x750E
+0xAE56 0x7510
+0xAE57 0x7512
+0xAE58-0xAE5B 0x7514
+0xAE5C 0x751B
+0xAE5D-0xAE5E 0x751D
+0xAE5F-0xAE63 0x7520
+0xAE64-0xAE65 0x7526
+0xAE66 0x752A
+0xAE67 0x752E
+0xAE68 0x7534
+0xAE69 0x7536
+0xAE6A 0x7539
+0xAE6B-0xAE6C 0x753C
+0xAE6D 0x753F
+0xAE6E-0xAE71 0x7541
+0xAE72-0xAE73 0x7546
+0xAE74-0xAE75 0x7549
+0xAE76 0x754D
+0xAE77-0xAE7A 0x7550
+0xAE7B-0xAE7E 0x7555
+0xAE80-0xAE87 0x755D
+0xAE88-0xAE8A 0x7567
+0xAE8B-0xAE91 0x756B
+0xAE92 0x7573
+0xAE93-0xAE95 0x7575
+0xAE96-0xAE9A 0x757A
+0xAE9B-0xAE9D 0x7580
+0xAE9E-0xAE9F 0x7584
+0xAEA0 0x7587
+0xAF40-0xAF42 0x7588
+0xAF43-0xAF45 0x758C
+0xAF46 0x7590
+0xAF47 0x7593
+0xAF48 0x7595
+0xAF49 0x7598
+0xAF4A-0xAF4B 0x759B
+0xAF4C 0x759E
+0xAF4D 0x75A2
+0xAF4E-0xAF52 0x75A6
+0xAF53 0x75AD
+0xAF54-0xAF55 0x75B6
+0xAF56-0xAF57 0x75BA
+0xAF58-0xAF5A 0x75BF
+0xAF5B 0x75C6
+0xAF5C-0xAF5D 0x75CB
+0xAF5E-0xAF61 0x75CE
+0xAF62 0x75D3
+0xAF63 0x75D7
+0xAF64-0xAF65 0x75D9
+0xAF66-0xAF67 0x75DC
+0xAF68-0xAF6A 0x75DF
+0xAF6B 0x75E5
+0xAF6C 0x75E9
+0xAF6D-0xAF70 0x75EC
+0xAF71-0xAF72 0x75F2
+0xAF73-0xAF76 0x75F5
+0xAF77-0xAF78 0x75FA
+0xAF79-0xAF7A 0x75FD
+0xAF7B 0x7602
+0xAF7C 0x7604
+0xAF7D-0xAF7E 0x7606
+0xAF80-0xAF81 0x7608
+0xAF82 0x760B
+0xAF83-0xAF85 0x760D
+0xAF86-0xAF89 0x7611
+0xAF8A 0x7616
+0xAF8B 0x761A
+0xAF8C-0xAF8E 0x761C
+0xAF8F 0x7621
+0xAF90 0x7623
+0xAF91-0xAF92 0x7627
+0xAF93 0x762C
+0xAF94-0xAF95 0x762E
+0xAF96-0xAF97 0x7631
+0xAF98-0xAF99 0x7636
+0xAF9A-0xAF9C 0x7639
+0xAF9D 0x763D
+0xAF9E-0xAF9F 0x7641
+0xAFA0 0x7644
+0xB040-0xB046 0x7645
+0xB047-0xB04C 0x764E
+0xB04D 0x7655
+0xB04E-0xB052 0x7657
+0xB053 0x765D
+0xB054-0xB057 0x765F
+0xB058-0xB05E 0x7664
+0xB05F-0xB061 0x766C
+0xB062-0xB069 0x7670
+0xB06A-0xB06B 0x7679
+0xB06C 0x767C
+0xB06D-0xB06F 0x767F
+0xB070 0x7683
+0xB071 0x7685
+0xB072-0xB073 0x7689
+0xB074-0xB075 0x768C
+0xB076-0xB077 0x768F
+0xB078 0x7692
+0xB079-0xB07A 0x7694
+0xB07B-0xB07C 0x7697
+0xB07D-0xB07E 0x769A
+0xB080-0xB087 0x769C
+0xB088-0xB090 0x76A5
+0xB091-0xB092 0x76AF
+0xB093 0x76B3
+0xB094-0xB09D 0x76B5
+0xB09E-0xB09F 0x76C0
+0xB0A0 0x76C3
+0xB0A1 0x554A
+0xB0A2 0x963F
+0xB0A3 0x57C3
+0xB0A4 0x6328
+0xB0A5 0x54CE
+0xB0A6 0x5509
+0xB0A7 0x54C0
+0xB0A8 0x7691
+0xB0A9 0x764C
+0xB0AA 0x853C
+0xB0AB 0x77EE
+0xB0AC 0x827E
+0xB0AD 0x788D
+0xB0AE 0x7231
+0xB0AF 0x9698
+0xB0B0 0x978D
+0xB0B1 0x6C28
+0xB0B2 0x5B89
+0xB0B3 0x4FFA
+0xB0B4 0x6309
+0xB0B5 0x6697
+0xB0B6 0x5CB8
+0xB0B7 0x80FA
+0xB0B8 0x6848
+0xB0B9 0x80AE
+0xB0BA 0x6602
+0xB0BB 0x76CE
+0xB0BC 0x51F9
+0xB0BD 0x6556
+0xB0BE 0x71AC
+0xB0BF 0x7FF1
+0xB0C0 0x8884
+0xB0C1 0x50B2
+0xB0C2 0x5965
+0xB0C3 0x61CA
+0xB0C4 0x6FB3
+0xB0C5 0x82AD
+0xB0C6 0x634C
+0xB0C7 0x6252
+0xB0C8 0x53ED
+0xB0C9 0x5427
+0xB0CA 0x7B06
+0xB0CB 0x516B
+0xB0CC 0x75A4
+0xB0CD 0x5DF4
+0xB0CE 0x62D4
+0xB0CF 0x8DCB
+0xB0D0 0x9776
+0xB0D1 0x628A
+0xB0D2 0x8019
+0xB0D3 0x575D
+0xB0D4 0x9738
+0xB0D5 0x7F62
+0xB0D6 0x7238
+0xB0D7 0x767D
+0xB0D8 0x67CF
+0xB0D9 0x767E
+0xB0DA 0x6446
+0xB0DB 0x4F70
+0xB0DC 0x8D25
+0xB0DD 0x62DC
+0xB0DE 0x7A17
+0xB0DF 0x6591
+0xB0E0 0x73ED
+0xB0E1 0x642C
+0xB0E2 0x6273
+0xB0E3 0x822C
+0xB0E4 0x9881
+0xB0E5 0x677F
+0xB0E6 0x7248
+0xB0E7 0x626E
+0xB0E8 0x62CC
+0xB0E9 0x4F34
+0xB0EA 0x74E3
+0xB0EB 0x534A
+0xB0EC 0x529E
+0xB0ED 0x7ECA
+0xB0EE 0x90A6
+0xB0EF 0x5E2E
+0xB0F0 0x6886
+0xB0F1 0x699C
+0xB0F2 0x8180
+0xB0F3 0x7ED1
+0xB0F4 0x68D2
+0xB0F5 0x78C5
+0xB0F6 0x868C
+0xB0F7 0x9551
+0xB0F8 0x508D
+0xB0F9 0x8C24
+0xB0FA 0x82DE
+0xB0FB 0x80DE
+0xB0FC 0x5305
+0xB0FD 0x8912
+0xB0FE 0x5265
+0xB140 0x76C4
+0xB141 0x76C7
+0xB142 0x76C9
+0xB143-0xB144 0x76CB
+0xB145 0x76D3
+0xB146 0x76D5
+0xB147-0xB148 0x76D9
+0xB149-0xB14B 0x76DC
+0xB14C-0xB150 0x76E0
+0xB151-0xB158 0x76E6
+0xB159 0x76F0
+0xB15A 0x76F3
+0xB15B-0xB15D 0x76F5
+0xB15E-0xB15F 0x76FA
+0xB160 0x76FD
+0xB161-0xB162 0x76FF
+0xB163-0xB164 0x7702
+0xB165-0xB166 0x7705
+0xB167 0x770A
+0xB168 0x770C
+0xB169-0xB173 0x770E
+0xB174-0xB177 0x771B
+0xB178 0x7721
+0xB179-0xB17B 0x7723
+0xB17C 0x7727
+0xB17D-0xB17E 0x772A
+0xB180 0x772C
+0xB181 0x772E
+0xB182-0xB186 0x7730
+0xB187 0x7739
+0xB188 0x773B
+0xB189-0xB18B 0x773D
+0xB18C 0x7742
+0xB18D-0xB18F 0x7744
+0xB190-0xB197 0x7748
+0xB198-0xB19F 0x7752
+0xB1A0 0x775C
+0xB1A1 0x8584
+0xB1A2 0x96F9
+0xB1A3 0x4FDD
+0xB1A4 0x5821
+0xB1A5 0x9971
+0xB1A6 0x5B9D
+0xB1A7 0x62B1
+0xB1A8 0x62A5
+0xB1A9 0x66B4
+0xB1AA 0x8C79
+0xB1AB 0x9C8D
+0xB1AC 0x7206
+0xB1AD 0x676F
+0xB1AE 0x7891
+0xB1AF 0x60B2
+0xB1B0 0x5351
+0xB1B1 0x5317
+0xB1B2 0x8F88
+0xB1B3 0x80CC
+0xB1B4 0x8D1D
+0xB1B5 0x94A1
+0xB1B6 0x500D
+0xB1B7 0x72C8
+0xB1B8 0x5907
+0xB1B9 0x60EB
+0xB1BA 0x7119
+0xB1BB 0x88AB
+0xB1BC 0x5954
+0xB1BD 0x82EF
+0xB1BE 0x672C
+0xB1BF 0x7B28
+0xB1C0 0x5D29
+0xB1C1 0x7EF7
+0xB1C2 0x752D
+0xB1C3 0x6CF5
+0xB1C4 0x8E66
+0xB1C5 0x8FF8
+0xB1C6 0x903C
+0xB1C7 0x9F3B
+0xB1C8 0x6BD4
+0xB1C9 0x9119
+0xB1CA 0x7B14
+0xB1CB 0x5F7C
+0xB1CC 0x78A7
+0xB1CD 0x84D6
+0xB1CE 0x853D
+0xB1CF 0x6BD5
+0xB1D0 0x6BD9
+0xB1D1 0x6BD6
+0xB1D2 0x5E01
+0xB1D3 0x5E87
+0xB1D4 0x75F9
+0xB1D5 0x95ED
+0xB1D6 0x655D
+0xB1D7 0x5F0A
+0xB1D8 0x5FC5
+0xB1D9 0x8F9F
+0xB1DA 0x58C1
+0xB1DB 0x81C2
+0xB1DC 0x907F
+0xB1DD 0x965B
+0xB1DE 0x97AD
+0xB1DF 0x8FB9
+0xB1E0 0x7F16
+0xB1E1 0x8D2C
+0xB1E2 0x6241
+0xB1E3 0x4FBF
+0xB1E4 0x53D8
+0xB1E5 0x535E
+0xB1E6-0xB1E7 0x8FA8
+0xB1E8 0x8FAB
+0xB1E9 0x904D
+0xB1EA 0x6807
+0xB1EB 0x5F6A
+0xB1EC 0x8198
+0xB1ED 0x8868
+0xB1EE 0x9CD6
+0xB1EF 0x618B
+0xB1F0 0x522B
+0xB1F1 0x762A
+0xB1F2 0x5F6C
+0xB1F3 0x658C
+0xB1F4 0x6FD2
+0xB1F5 0x6EE8
+0xB1F6 0x5BBE
+0xB1F7 0x6448
+0xB1F8 0x5175
+0xB1F9 0x51B0
+0xB1FA 0x67C4
+0xB1FB 0x4E19
+0xB1FC 0x79C9
+0xB1FD 0x997C
+0xB1FE 0x70B3
+0xB240-0xB243 0x775D
+0xB244 0x7764
+0xB245 0x7767
+0xB246-0xB247 0x7769
+0xB248-0xB253 0x776D
+0xB254-0xB256 0x777A
+0xB257-0xB259 0x7781
+0xB25A-0xB25F 0x7786
+0xB260-0xB261 0x778F
+0xB262-0xB26D 0x7793
+0xB26E 0x77A1
+0xB26F-0xB270 0x77A3
+0xB271 0x77A6
+0xB272 0x77A8
+0xB273 0x77AB
+0xB274-0xB276 0x77AD
+0xB277-0xB278 0x77B1
+0xB279 0x77B4
+0xB27A-0xB27E 0x77B6
+0xB280 0x77BC
+0xB281 0x77BE
+0xB282-0xB28E 0x77C0
+0xB28F-0xB297 0x77CE
+0xB298-0xB29A 0x77D8
+0xB29B-0xB29F 0x77DD
+0xB2A0 0x77E4
+0xB2A1 0x75C5
+0xB2A2 0x5E76
+0xB2A3 0x73BB
+0xB2A4 0x83E0
+0xB2A5 0x64AD
+0xB2A6 0x62E8
+0xB2A7 0x94B5
+0xB2A8 0x6CE2
+0xB2A9 0x535A
+0xB2AA 0x52C3
+0xB2AB 0x640F
+0xB2AC 0x94C2
+0xB2AD 0x7B94
+0xB2AE 0x4F2F
+0xB2AF 0x5E1B
+0xB2B0 0x8236
+0xB2B1 0x8116
+0xB2B2 0x818A
+0xB2B3 0x6E24
+0xB2B4 0x6CCA
+0xB2B5 0x9A73
+0xB2B6 0x6355
+0xB2B7 0x535C
+0xB2B8 0x54FA
+0xB2B9 0x8865
+0xB2BA 0x57E0
+0xB2BB 0x4E0D
+0xB2BC 0x5E03
+0xB2BD 0x6B65
+0xB2BE 0x7C3F
+0xB2BF 0x90E8
+0xB2C0 0x6016
+0xB2C1 0x64E6
+0xB2C2 0x731C
+0xB2C3 0x88C1
+0xB2C4 0x6750
+0xB2C5 0x624D
+0xB2C6 0x8D22
+0xB2C7 0x776C
+0xB2C8 0x8E29
+0xB2C9 0x91C7
+0xB2CA 0x5F69
+0xB2CB 0x83DC
+0xB2CC 0x8521
+0xB2CD 0x9910
+0xB2CE 0x53C2
+0xB2CF 0x8695
+0xB2D0 0x6B8B
+0xB2D1 0x60ED
+0xB2D2 0x60E8
+0xB2D3 0x707F
+0xB2D4 0x82CD
+0xB2D5 0x8231
+0xB2D6 0x4ED3
+0xB2D7 0x6CA7
+0xB2D8 0x85CF
+0xB2D9 0x64CD
+0xB2DA 0x7CD9
+0xB2DB 0x69FD
+0xB2DC 0x66F9
+0xB2DD 0x8349
+0xB2DE 0x5395
+0xB2DF 0x7B56
+0xB2E0 0x4FA7
+0xB2E1 0x518C
+0xB2E2 0x6D4B
+0xB2E3 0x5C42
+0xB2E4 0x8E6D
+0xB2E5 0x63D2
+0xB2E6 0x53C9
+0xB2E7 0x832C
+0xB2E8 0x8336
+0xB2E9 0x67E5
+0xB2EA 0x78B4
+0xB2EB 0x643D
+0xB2EC 0x5BDF
+0xB2ED 0x5C94
+0xB2EE 0x5DEE
+0xB2EF 0x8BE7
+0xB2F0 0x62C6
+0xB2F1 0x67F4
+0xB2F2 0x8C7A
+0xB2F3 0x6400
+0xB2F4 0x63BA
+0xB2F5 0x8749
+0xB2F6 0x998B
+0xB2F7 0x8C17
+0xB2F8 0x7F20
+0xB2F9 0x94F2
+0xB2FA 0x4EA7
+0xB2FB 0x9610
+0xB2FC 0x98A4
+0xB2FD 0x660C
+0xB2FE 0x7316
+0xB340 0x77E6
+0xB341 0x77E8
+0xB342 0x77EA
+0xB343-0xB346 0x77EF
+0xB347-0xB348 0x77F4
+0xB349 0x77F7
+0xB34A-0xB34D 0x77F9
+0xB34E-0xB353 0x7803
+0xB354-0xB355 0x780A
+0xB356-0xB358 0x780E
+0xB359 0x7813
+0xB35A 0x7815
+0xB35B 0x7819
+0xB35C 0x781B
+0xB35D 0x781E
+0xB35E-0xB360 0x7820
+0xB361 0x7824
+0xB362 0x7828
+0xB363-0xB364 0x782A
+0xB365-0xB366 0x782E
+0xB367-0xB369 0x7831
+0xB36A-0xB36B 0x7835
+0xB36C 0x783D
+0xB36D 0x783F
+0xB36E-0xB371 0x7841
+0xB372 0x7846
+0xB373-0xB376 0x7848
+0xB377 0x784D
+0xB378 0x784F
+0xB379 0x7851
+0xB37A-0xB37B 0x7853
+0xB37C-0xB37E 0x7858
+0xB380-0xB381 0x785B
+0xB382-0xB38D 0x785E
+0xB38E-0xB395 0x786F
+0xB396-0xB399 0x7878
+0xB39A-0xB3A0 0x787D
+0xB3A1 0x573A
+0xB3A2 0x5C1D
+0xB3A3 0x5E38
+0xB3A4 0x957F
+0xB3A5 0x507F
+0xB3A6 0x80A0
+0xB3A7 0x5382
+0xB3A8 0x655E
+0xB3A9 0x7545
+0xB3AA 0x5531
+0xB3AB 0x5021
+0xB3AC 0x8D85
+0xB3AD 0x6284
+0xB3AE 0x949E
+0xB3AF 0x671D
+0xB3B0 0x5632
+0xB3B1 0x6F6E
+0xB3B2 0x5DE2
+0xB3B3 0x5435
+0xB3B4 0x7092
+0xB3B5 0x8F66
+0xB3B6 0x626F
+0xB3B7 0x64A4
+0xB3B8 0x63A3
+0xB3B9 0x5F7B
+0xB3BA 0x6F88
+0xB3BB 0x90F4
+0xB3BC 0x81E3
+0xB3BD 0x8FB0
+0xB3BE 0x5C18
+0xB3BF 0x6668
+0xB3C0 0x5FF1
+0xB3C1 0x6C89
+0xB3C2 0x9648
+0xB3C3 0x8D81
+0xB3C4 0x886C
+0xB3C5 0x6491
+0xB3C6 0x79F0
+0xB3C7 0x57CE
+0xB3C8 0x6A59
+0xB3C9 0x6210
+0xB3CA 0x5448
+0xB3CB 0x4E58
+0xB3CC 0x7A0B
+0xB3CD 0x60E9
+0xB3CE 0x6F84
+0xB3CF 0x8BDA
+0xB3D0 0x627F
+0xB3D1 0x901E
+0xB3D2 0x9A8B
+0xB3D3 0x79E4
+0xB3D4 0x5403
+0xB3D5 0x75F4
+0xB3D6 0x6301
+0xB3D7 0x5319
+0xB3D8 0x6C60
+0xB3D9 0x8FDF
+0xB3DA 0x5F1B
+0xB3DB 0x9A70
+0xB3DC 0x803B
+0xB3DD 0x9F7F
+0xB3DE 0x4F88
+0xB3DF 0x5C3A
+0xB3E0 0x8D64
+0xB3E1 0x7FC5
+0xB3E2 0x65A5
+0xB3E3 0x70BD
+0xB3E4 0x5145
+0xB3E5 0x51B2
+0xB3E6 0x866B
+0xB3E7 0x5D07
+0xB3E8 0x5BA0
+0xB3E9 0x62BD
+0xB3EA 0x916C
+0xB3EB 0x7574
+0xB3EC 0x8E0C
+0xB3ED 0x7A20
+0xB3EE 0x6101
+0xB3EF 0x7B79
+0xB3F0 0x4EC7
+0xB3F1 0x7EF8
+0xB3F2 0x7785
+0xB3F3 0x4E11
+0xB3F4 0x81ED
+0xB3F5 0x521D
+0xB3F6 0x51FA
+0xB3F7 0x6A71
+0xB3F8 0x53A8
+0xB3F9 0x8E87
+0xB3FA 0x9504
+0xB3FB 0x96CF
+0xB3FC 0x6EC1
+0xB3FD 0x9664
+0xB3FE 0x695A
+0xB440-0xB442 0x7884
+0xB443 0x7888
+0xB444-0xB445 0x788A
+0xB446-0xB447 0x788F
+0xB448 0x7892
+0xB449-0xB44B 0x7894
+0xB44C 0x7899
+0xB44D-0xB44E 0x789D
+0xB44F 0x78A0
+0xB450 0x78A2
+0xB451 0x78A4
+0xB452 0x78A6
+0xB453-0xB45A 0x78A8
+0xB45B-0xB45E 0x78B5
+0xB45F-0xB462 0x78BA
+0xB463-0xB464 0x78BF
+0xB465-0xB467 0x78C2
+0xB468-0xB46A 0x78C6
+0xB46B-0xB46E 0x78CC
+0xB46F-0xB471 0x78D1
+0xB472-0xB474 0x78D6
+0xB475-0xB47E 0x78DA
+0xB480-0xB483 0x78E4
+0xB484-0xB486 0x78E9
+0xB487-0xB48B 0x78ED
+0xB48C 0x78F3
+0xB48D-0xB48E 0x78F5
+0xB48F-0xB490 0x78F8
+0xB491-0xB496 0x78FB
+0xB497-0xB499 0x7902
+0xB49A-0xB4A0 0x7906
+0xB4A1 0x7840
+0xB4A2 0x50A8
+0xB4A3 0x77D7
+0xB4A4 0x6410
+0xB4A5 0x89E6
+0xB4A6 0x5904
+0xB4A7 0x63E3
+0xB4A8 0x5DDD
+0xB4A9 0x7A7F
+0xB4AA 0x693D
+0xB4AB 0x4F20
+0xB4AC 0x8239
+0xB4AD 0x5598
+0xB4AE 0x4E32
+0xB4AF 0x75AE
+0xB4B0 0x7A97
+0xB4B1 0x5E62
+0xB4B2 0x5E8A
+0xB4B3 0x95EF
+0xB4B4 0x521B
+0xB4B5 0x5439
+0xB4B6 0x708A
+0xB4B7 0x6376
+0xB4B8 0x9524
+0xB4B9 0x5782
+0xB4BA 0x6625
+0xB4BB 0x693F
+0xB4BC 0x9187
+0xB4BD 0x5507
+0xB4BE 0x6DF3
+0xB4BF 0x7EAF
+0xB4C0 0x8822
+0xB4C1 0x6233
+0xB4C2 0x7EF0
+0xB4C3 0x75B5
+0xB4C4 0x8328
+0xB4C5 0x78C1
+0xB4C6 0x96CC
+0xB4C7 0x8F9E
+0xB4C8 0x6148
+0xB4C9 0x74F7
+0xB4CA 0x8BCD
+0xB4CB 0x6B64
+0xB4CC 0x523A
+0xB4CD 0x8D50
+0xB4CE 0x6B21
+0xB4CF 0x806A
+0xB4D0 0x8471
+0xB4D1 0x56F1
+0xB4D2 0x5306
+0xB4D3 0x4ECE
+0xB4D4 0x4E1B
+0xB4D5 0x51D1
+0xB4D6 0x7C97
+0xB4D7 0x918B
+0xB4D8 0x7C07
+0xB4D9 0x4FC3
+0xB4DA 0x8E7F
+0xB4DB 0x7BE1
+0xB4DC 0x7A9C
+0xB4DD 0x6467
+0xB4DE 0x5D14
+0xB4DF 0x50AC
+0xB4E0 0x8106
+0xB4E1 0x7601
+0xB4E2 0x7CB9
+0xB4E3 0x6DEC
+0xB4E4 0x7FE0
+0xB4E5 0x6751
+0xB4E6 0x5B58
+0xB4E7 0x5BF8
+0xB4E8 0x78CB
+0xB4E9 0x64AE
+0xB4EA 0x6413
+0xB4EB 0x63AA
+0xB4EC 0x632B
+0xB4ED 0x9519
+0xB4EE 0x642D
+0xB4EF 0x8FBE
+0xB4F0 0x7B54
+0xB4F1 0x7629
+0xB4F2 0x6253
+0xB4F3 0x5927
+0xB4F4 0x5446
+0xB4F5 0x6B79
+0xB4F6 0x50A3
+0xB4F7 0x6234
+0xB4F8 0x5E26
+0xB4F9 0x6B86
+0xB4FA 0x4EE3
+0xB4FB 0x8D37
+0xB4FC 0x888B
+0xB4FD 0x5F85
+0xB4FE 0x902E
+0xB540-0xB545 0x790D
+0xB546-0xB54F 0x7914
+0xB550-0xB554 0x791F
+0xB555-0xB563 0x7925
+0xB564-0xB568 0x7935
+0xB569 0x793D
+0xB56A 0x793F
+0xB56B-0xB56E 0x7942
+0xB56F 0x7947
+0xB570-0xB578 0x794A
+0xB579-0xB57A 0x7954
+0xB57B-0xB57C 0x7958
+0xB57D 0x7961
+0xB57E 0x7963
+0xB580 0x7964
+0xB581 0x7966
+0xB582-0xB585 0x7969
+0xB586 0x796E
+0xB587-0xB58D 0x7970
+0xB58E 0x7979
+0xB58F-0xB593 0x797B
+0xB594-0xB595 0x7982
+0xB596-0xB599 0x7986
+0xB59A-0xB59D 0x798B
+0xB59E-0xB5A0 0x7990
+0xB5A1 0x6020
+0xB5A2 0x803D
+0xB5A3 0x62C5
+0xB5A4 0x4E39
+0xB5A5 0x5355
+0xB5A6 0x90F8
+0xB5A7 0x63B8
+0xB5A8 0x80C6
+0xB5A9 0x65E6
+0xB5AA 0x6C2E
+0xB5AB 0x4F46
+0xB5AC 0x60EE
+0xB5AD 0x6DE1
+0xB5AE 0x8BDE
+0xB5AF 0x5F39
+0xB5B0 0x86CB
+0xB5B1 0x5F53
+0xB5B2 0x6321
+0xB5B3 0x515A
+0xB5B4 0x8361
+0xB5B5 0x6863
+0xB5B6 0x5200
+0xB5B7 0x6363
+0xB5B8 0x8E48
+0xB5B9 0x5012
+0xB5BA 0x5C9B
+0xB5BB 0x7977
+0xB5BC 0x5BFC
+0xB5BD 0x5230
+0xB5BE 0x7A3B
+0xB5BF 0x60BC
+0xB5C0 0x9053
+0xB5C1 0x76D7
+0xB5C2 0x5FB7
+0xB5C3 0x5F97
+0xB5C4 0x7684
+0xB5C5 0x8E6C
+0xB5C6 0x706F
+0xB5C7 0x767B
+0xB5C8 0x7B49
+0xB5C9 0x77AA
+0xB5CA 0x51F3
+0xB5CB 0x9093
+0xB5CC 0x5824
+0xB5CD 0x4F4E
+0xB5CE 0x6EF4
+0xB5CF 0x8FEA
+0xB5D0 0x654C
+0xB5D1 0x7B1B
+0xB5D2 0x72C4
+0xB5D3 0x6DA4
+0xB5D4 0x7FDF
+0xB5D5 0x5AE1
+0xB5D6 0x62B5
+0xB5D7 0x5E95
+0xB5D8 0x5730
+0xB5D9 0x8482
+0xB5DA 0x7B2C
+0xB5DB 0x5E1D
+0xB5DC 0x5F1F
+0xB5DD 0x9012
+0xB5DE 0x7F14
+0xB5DF 0x98A0
+0xB5E0 0x6382
+0xB5E1 0x6EC7
+0xB5E2 0x7898
+0xB5E3 0x70B9
+0xB5E4 0x5178
+0xB5E5 0x975B
+0xB5E6 0x57AB
+0xB5E7 0x7535
+0xB5E8 0x4F43
+0xB5E9 0x7538
+0xB5EA 0x5E97
+0xB5EB 0x60E6
+0xB5EC 0x5960
+0xB5ED 0x6DC0
+0xB5EE 0x6BBF
+0xB5EF 0x7889
+0xB5F0 0x53FC
+0xB5F1 0x96D5
+0xB5F2 0x51CB
+0xB5F3 0x5201
+0xB5F4 0x6389
+0xB5F5 0x540A
+0xB5F6 0x9493
+0xB5F7 0x8C03
+0xB5F8 0x8DCC
+0xB5F9 0x7239
+0xB5FA 0x789F
+0xB5FB 0x8776
+0xB5FC 0x8FED
+0xB5FD 0x8C0D
+0xB5FE 0x53E0
+0xB640-0xB646 0x7993
+0xB647-0xB652 0x799B
+0xB653-0xB65D 0x79A8
+0xB65E-0xB662 0x79B4
+0xB663 0x79BC
+0xB664 0x79BF
+0xB665 0x79C2
+0xB666-0xB667 0x79C4
+0xB668-0xB669 0x79C7
+0xB66A 0x79CA
+0xB66B 0x79CC
+0xB66C-0xB66E 0x79CE
+0xB66F-0xB670 0x79D3
+0xB671-0xB672 0x79D6
+0xB673-0xB678 0x79D9
+0xB679-0xB67B 0x79E0
+0xB67C 0x79E5
+0xB67D 0x79E8
+0xB67E 0x79EA
+0xB680 0x79EC
+0xB681 0x79EE
+0xB682-0xB688 0x79F1
+0xB689-0xB68A 0x79F9
+0xB68B 0x79FC
+0xB68C-0xB68D 0x79FE
+0xB68E 0x7A01
+0xB68F-0xB690 0x7A04
+0xB691-0xB694 0x7A07
+0xB695 0x7A0C
+0xB696-0xB69A 0x7A0F
+0xB69B-0xB69C 0x7A15
+0xB69D-0xB69E 0x7A18
+0xB69F-0xB6A0 0x7A1B
+0xB6A1 0x4E01
+0xB6A2 0x76EF
+0xB6A3 0x53EE
+0xB6A4 0x9489
+0xB6A5 0x9876
+0xB6A6 0x9F0E
+0xB6A7 0x952D
+0xB6A8 0x5B9A
+0xB6A9 0x8BA2
+0xB6AA 0x4E22
+0xB6AB 0x4E1C
+0xB6AC 0x51AC
+0xB6AD 0x8463
+0xB6AE 0x61C2
+0xB6AF 0x52A8
+0xB6B0 0x680B
+0xB6B1 0x4F97
+0xB6B2 0x606B
+0xB6B3 0x51BB
+0xB6B4 0x6D1E
+0xB6B5 0x515C
+0xB6B6 0x6296
+0xB6B7 0x6597
+0xB6B8 0x9661
+0xB6B9 0x8C46
+0xB6BA 0x9017
+0xB6BB 0x75D8
+0xB6BC 0x90FD
+0xB6BD 0x7763
+0xB6BE 0x6BD2
+0xB6BF 0x728A
+0xB6C0 0x72EC
+0xB6C1 0x8BFB
+0xB6C2 0x5835
+0xB6C3 0x7779
+0xB6C4 0x8D4C
+0xB6C5 0x675C
+0xB6C6 0x9540
+0xB6C7 0x809A
+0xB6C8 0x5EA6
+0xB6C9 0x6E21
+0xB6CA 0x5992
+0xB6CB 0x7AEF
+0xB6CC 0x77ED
+0xB6CD 0x953B
+0xB6CE 0x6BB5
+0xB6CF 0x65AD
+0xB6D0 0x7F0E
+0xB6D1 0x5806
+0xB6D2 0x5151
+0xB6D3 0x961F
+0xB6D4 0x5BF9
+0xB6D5 0x58A9
+0xB6D6 0x5428
+0xB6D7 0x8E72
+0xB6D8 0x6566
+0xB6D9 0x987F
+0xB6DA 0x56E4
+0xB6DB 0x949D
+0xB6DC 0x76FE
+0xB6DD 0x9041
+0xB6DE 0x6387
+0xB6DF 0x54C6
+0xB6E0 0x591A
+0xB6E1 0x593A
+0xB6E2 0x579B
+0xB6E3 0x8EB2
+0xB6E4 0x6735
+0xB6E5 0x8DFA
+0xB6E6 0x8235
+0xB6E7 0x5241
+0xB6E8 0x60F0
+0xB6E9 0x5815
+0xB6EA 0x86FE
+0xB6EB 0x5CE8
+0xB6EC 0x9E45
+0xB6ED 0x4FC4
+0xB6EE 0x989D
+0xB6EF 0x8BB9
+0xB6F0 0x5A25
+0xB6F1 0x6076
+0xB6F2 0x5384
+0xB6F3 0x627C
+0xB6F4 0x904F
+0xB6F5 0x9102
+0xB6F6 0x997F
+0xB6F7 0x6069
+0xB6F8 0x800C
+0xB6F9 0x513F
+0xB6FA 0x8033
+0xB6FB 0x5C14
+0xB6FC 0x9975
+0xB6FD 0x6D31
+0xB6FE 0x4E8C
+0xB740 0x7A1D
+0xB741 0x7A1F
+0xB742-0xB743 0x7A21
+0xB744-0xB752 0x7A24
+0xB753-0xB755 0x7A34
+0xB756 0x7A38
+0xB757 0x7A3A
+0xB758 0x7A3E
+0xB759-0xB75E 0x7A40
+0xB75F-0xB768 0x7A47
+0xB769-0xB76D 0x7A52
+0xB76E-0xB77E 0x7A58
+0xB780-0xB786 0x7A69
+0xB787-0xB789 0x7A71
+0xB78A 0x7A75
+0xB78B-0xB78E 0x7A7B
+0xB78F 0x7A82
+0xB790 0x7A85
+0xB791 0x7A87
+0xB792-0xB795 0x7A89
+0xB796-0xB798 0x7A8E
+0xB799-0xB79A 0x7A93
+0xB79B-0xB79D 0x7A99
+0xB79E 0x7A9E
+0xB79F-0xB7A0 0x7AA1
+0xB7A1 0x8D30
+0xB7A2 0x53D1
+0xB7A3 0x7F5A
+0xB7A4 0x7B4F
+0xB7A5 0x4F10
+0xB7A6 0x4E4F
+0xB7A7 0x9600
+0xB7A8 0x6CD5
+0xB7A9 0x73D0
+0xB7AA 0x85E9
+0xB7AB 0x5E06
+0xB7AC 0x756A
+0xB7AD 0x7FFB
+0xB7AE 0x6A0A
+0xB7AF 0x77FE
+0xB7B0 0x9492
+0xB7B1 0x7E41
+0xB7B2 0x51E1
+0xB7B3 0x70E6
+0xB7B4 0x53CD
+0xB7B5 0x8FD4
+0xB7B6 0x8303
+0xB7B7 0x8D29
+0xB7B8 0x72AF
+0xB7B9 0x996D
+0xB7BA 0x6CDB
+0xB7BB 0x574A
+0xB7BC 0x82B3
+0xB7BD 0x65B9
+0xB7BE 0x80AA
+0xB7BF 0x623F
+0xB7C0 0x9632
+0xB7C1 0x59A8
+0xB7C2 0x4EFF
+0xB7C3 0x8BBF
+0xB7C4 0x7EBA
+0xB7C5 0x653E
+0xB7C6 0x83F2
+0xB7C7 0x975E
+0xB7C8 0x5561
+0xB7C9 0x98DE
+0xB7CA 0x80A5
+0xB7CB 0x532A
+0xB7CC 0x8BFD
+0xB7CD 0x5420
+0xB7CE 0x80BA
+0xB7CF 0x5E9F
+0xB7D0 0x6CB8
+0xB7D1 0x8D39
+0xB7D2 0x82AC
+0xB7D3 0x915A
+0xB7D4 0x5429
+0xB7D5 0x6C1B
+0xB7D6 0x5206
+0xB7D7 0x7EB7
+0xB7D8 0x575F
+0xB7D9 0x711A
+0xB7DA 0x6C7E
+0xB7DB 0x7C89
+0xB7DC 0x594B
+0xB7DD 0x4EFD
+0xB7DE 0x5FFF
+0xB7DF 0x6124
+0xB7E0 0x7CAA
+0xB7E1 0x4E30
+0xB7E2 0x5C01
+0xB7E3 0x67AB
+0xB7E4 0x8702
+0xB7E5 0x5CF0
+0xB7E6 0x950B
+0xB7E7 0x98CE
+0xB7E8 0x75AF
+0xB7E9 0x70FD
+0xB7EA 0x9022
+0xB7EB 0x51AF
+0xB7EC 0x7F1D
+0xB7ED 0x8BBD
+0xB7EE 0x5949
+0xB7EF 0x51E4
+0xB7F0 0x4F5B
+0xB7F1 0x5426
+0xB7F2 0x592B
+0xB7F3 0x6577
+0xB7F4 0x80A4
+0xB7F5 0x5B75
+0xB7F6 0x6276
+0xB7F7 0x62C2
+0xB7F8 0x8F90
+0xB7F9 0x5E45
+0xB7FA 0x6C1F
+0xB7FB 0x7B26
+0xB7FC 0x4F0F
+0xB7FD 0x4FD8
+0xB7FE 0x670D
+0xB840-0xB841 0x7AA3
+0xB842 0x7AA7
+0xB843-0xB845 0x7AA9
+0xB846-0xB84A 0x7AAE
+0xB84B-0xB855 0x7AB4
+0xB856-0xB860 0x7AC0
+0xB861-0xB86A 0x7ACC
+0xB86B-0xB86C 0x7AD7
+0xB86D-0xB870 0x7ADA
+0xB871-0xB872 0x7AE1
+0xB873 0x7AE4
+0xB874-0xB879 0x7AE7
+0xB87A 0x7AEE
+0xB87B-0xB87E 0x7AF0
+0xB880-0xB884 0x7AF4
+0xB885-0xB886 0x7AFB
+0xB887 0x7AFE
+0xB888-0xB88A 0x7B00
+0xB88B 0x7B05
+0xB88C 0x7B07
+0xB88D 0x7B09
+0xB88E-0xB890 0x7B0C
+0xB891 0x7B10
+0xB892-0xB893 0x7B12
+0xB894-0xB896 0x7B16
+0xB897 0x7B1A
+0xB898-0xB899 0x7B1C
+0xB89A 0x7B1F
+0xB89B-0xB89D 0x7B21
+0xB89E 0x7B27
+0xB89F 0x7B29
+0xB8A0 0x7B2D
+0xB8A1 0x6D6E
+0xB8A2 0x6DAA
+0xB8A3 0x798F
+0xB8A4 0x88B1
+0xB8A5 0x5F17
+0xB8A6 0x752B
+0xB8A7 0x629A
+0xB8A8 0x8F85
+0xB8A9 0x4FEF
+0xB8AA 0x91DC
+0xB8AB 0x65A7
+0xB8AC 0x812F
+0xB8AD 0x8151
+0xB8AE 0x5E9C
+0xB8AF 0x8150
+0xB8B0 0x8D74
+0xB8B1 0x526F
+0xB8B2 0x8986
+0xB8B3 0x8D4B
+0xB8B4 0x590D
+0xB8B5 0x5085
+0xB8B6 0x4ED8
+0xB8B7 0x961C
+0xB8B8 0x7236
+0xB8B9 0x8179
+0xB8BA 0x8D1F
+0xB8BB 0x5BCC
+0xB8BC 0x8BA3
+0xB8BD 0x9644
+0xB8BE 0x5987
+0xB8BF 0x7F1A
+0xB8C0 0x5490
+0xB8C1 0x5676
+0xB8C2 0x560E
+0xB8C3 0x8BE5
+0xB8C4 0x6539
+0xB8C5 0x6982
+0xB8C6 0x9499
+0xB8C7 0x76D6
+0xB8C8 0x6E89
+0xB8C9 0x5E72
+0xB8CA 0x7518
+0xB8CB 0x6746
+0xB8CC 0x67D1
+0xB8CD 0x7AFF
+0xB8CE 0x809D
+0xB8CF 0x8D76
+0xB8D0 0x611F
+0xB8D1 0x79C6
+0xB8D2 0x6562
+0xB8D3 0x8D63
+0xB8D4 0x5188
+0xB8D5 0x521A
+0xB8D6 0x94A2
+0xB8D7 0x7F38
+0xB8D8 0x809B
+0xB8D9 0x7EB2
+0xB8DA 0x5C97
+0xB8DB 0x6E2F
+0xB8DC 0x6760
+0xB8DD 0x7BD9
+0xB8DE 0x768B
+0xB8DF 0x9AD8
+0xB8E0 0x818F
+0xB8E1 0x7F94
+0xB8E2 0x7CD5
+0xB8E3 0x641E
+0xB8E4 0x9550
+0xB8E5 0x7A3F
+0xB8E6 0x544A
+0xB8E7 0x54E5
+0xB8E8 0x6B4C
+0xB8E9 0x6401
+0xB8EA 0x6208
+0xB8EB 0x9E3D
+0xB8EC 0x80F3
+0xB8ED 0x7599
+0xB8EE 0x5272
+0xB8EF 0x9769
+0xB8F0 0x845B
+0xB8F1 0x683C
+0xB8F2 0x86E4
+0xB8F3 0x9601
+0xB8F4 0x9694
+0xB8F5 0x94EC
+0xB8F6 0x4E2A
+0xB8F7 0x5404
+0xB8F8 0x7ED9
+0xB8F9 0x6839
+0xB8FA 0x8DDF
+0xB8FB 0x8015
+0xB8FC 0x66F4
+0xB8FD 0x5E9A
+0xB8FE 0x7FB9
+0xB940-0xB941 0x7B2F
+0xB942 0x7B32
+0xB943-0xB946 0x7B34
+0xB947 0x7B39
+0xB948 0x7B3B
+0xB949 0x7B3D
+0xB94A-0xB94F 0x7B3F
+0xB950 0x7B46
+0xB951 0x7B48
+0xB952 0x7B4A
+0xB953-0xB954 0x7B4D
+0xB955 0x7B53
+0xB956 0x7B55
+0xB957 0x7B57
+0xB958 0x7B59
+0xB959 0x7B5C
+0xB95A-0xB95B 0x7B5E
+0xB95C 0x7B61
+0xB95D-0xB967 0x7B63
+0xB968-0xB969 0x7B6F
+0xB96A-0xB96B 0x7B73
+0xB96C 0x7B76
+0xB96D 0x7B78
+0xB96E 0x7B7A
+0xB96F-0xB970 0x7B7C
+0xB971 0x7B7F
+0xB972-0xB975 0x7B81
+0xB976-0xB97C 0x7B86
+0xB97D-0xB97E 0x7B8E
+0xB980-0xB982 0x7B91
+0xB983 0x7B96
+0xB984-0xB987 0x7B98
+0xB988-0xB98A 0x7B9E
+0xB98B-0xB98D 0x7BA3
+0xB98E-0xB990 0x7BAE
+0xB991-0xB992 0x7BB2
+0xB993-0xB995 0x7BB5
+0xB996-0xB99D 0x7BB9
+0xB99E-0xB9A0 0x7BC2
+0xB9A1 0x57C2
+0xB9A2 0x803F
+0xB9A3 0x6897
+0xB9A4 0x5DE5
+0xB9A5 0x653B
+0xB9A6 0x529F
+0xB9A7 0x606D
+0xB9A8 0x9F9A
+0xB9A9 0x4F9B
+0xB9AA 0x8EAC
+0xB9AB 0x516C
+0xB9AC 0x5BAB
+0xB9AD 0x5F13
+0xB9AE 0x5DE9
+0xB9AF 0x6C5E
+0xB9B0 0x62F1
+0xB9B1 0x8D21
+0xB9B2 0x5171
+0xB9B3 0x94A9
+0xB9B4 0x52FE
+0xB9B5 0x6C9F
+0xB9B6 0x82DF
+0xB9B7 0x72D7
+0xB9B8 0x57A2
+0xB9B9 0x6784
+0xB9BA 0x8D2D
+0xB9BB 0x591F
+0xB9BC 0x8F9C
+0xB9BD 0x83C7
+0xB9BE 0x5495
+0xB9BF 0x7B8D
+0xB9C0 0x4F30
+0xB9C1 0x6CBD
+0xB9C2 0x5B64
+0xB9C3 0x59D1
+0xB9C4 0x9F13
+0xB9C5 0x53E4
+0xB9C6 0x86CA
+0xB9C7 0x9AA8
+0xB9C8 0x8C37
+0xB9C9 0x80A1
+0xB9CA 0x6545
+0xB9CB 0x987E
+0xB9CC 0x56FA
+0xB9CD 0x96C7
+0xB9CE 0x522E
+0xB9CF 0x74DC
+0xB9D0 0x5250
+0xB9D1 0x5BE1
+0xB9D2 0x6302
+0xB9D3 0x8902
+0xB9D4 0x4E56
+0xB9D5 0x62D0
+0xB9D6 0x602A
+0xB9D7 0x68FA
+0xB9D8 0x5173
+0xB9D9 0x5B98
+0xB9DA 0x51A0
+0xB9DB 0x89C2
+0xB9DC 0x7BA1
+0xB9DD 0x9986
+0xB9DE 0x7F50
+0xB9DF 0x60EF
+0xB9E0 0x704C
+0xB9E1 0x8D2F
+0xB9E2 0x5149
+0xB9E3 0x5E7F
+0xB9E4 0x901B
+0xB9E5 0x7470
+0xB9E6 0x89C4
+0xB9E7 0x572D
+0xB9E8 0x7845
+0xB9E9 0x5F52
+0xB9EA 0x9F9F
+0xB9EB 0x95FA
+0xB9EC 0x8F68
+0xB9ED 0x9B3C
+0xB9EE 0x8BE1
+0xB9EF 0x7678
+0xB9F0 0x6842
+0xB9F1 0x67DC
+0xB9F2 0x8DEA
+0xB9F3 0x8D35
+0xB9F4 0x523D
+0xB9F5 0x8F8A
+0xB9F6 0x6EDA
+0xB9F7 0x68CD
+0xB9F8 0x9505
+0xB9F9 0x90ED
+0xB9FA 0x56FD
+0xB9FB 0x679C
+0xB9FC 0x88F9
+0xB9FD 0x8FC7
+0xB9FE 0x54C8
+0xBA40 0x7BC5
+0xBA41-0xBA44 0x7BC8
+0xBA45-0xBA48 0x7BCD
+0xBA49 0x7BD2
+0xBA4A-0xBA4E 0x7BD4
+0xBA4F-0xBA50 0x7BDB
+0xBA51-0xBA53 0x7BDE
+0xBA54-0xBA56 0x7BE2
+0xBA57-0xBA59 0x7BE7
+0xBA5A-0xBA5C 0x7BEB
+0xBA5D-0xBA5E 0x7BEF
+0xBA5F-0xBA63 0x7BF2
+0xBA64-0xBA67 0x7BF8
+0xBA68 0x7BFD
+0xBA69-0xBA70 0x7BFF
+0xBA71-0xBA73 0x7C08
+0xBA74-0xBA75 0x7C0D
+0xBA76-0xBA7B 0x7C10
+0xBA7C-0xBA7E 0x7C17
+0xBA80-0xBA84 0x7C1A
+0xBA85-0xBA8A 0x7C20
+0xBA8B-0xBA8C 0x7C28
+0xBA8D-0xBA99 0x7C2B
+0xBA9A-0xBA9F 0x7C39
+0xBAA0 0x7C42
+0xBAA1 0x9AB8
+0xBAA2 0x5B69
+0xBAA3 0x6D77
+0xBAA4 0x6C26
+0xBAA5 0x4EA5
+0xBAA6 0x5BB3
+0xBAA7 0x9A87
+0xBAA8 0x9163
+0xBAA9 0x61A8
+0xBAAA 0x90AF
+0xBAAB 0x97E9
+0xBAAC 0x542B
+0xBAAD 0x6DB5
+0xBAAE 0x5BD2
+0xBAAF 0x51FD
+0xBAB0 0x558A
+0xBAB1 0x7F55
+0xBAB2 0x7FF0
+0xBAB3 0x64BC
+0xBAB4 0x634D
+0xBAB5 0x65F1
+0xBAB6 0x61BE
+0xBAB7 0x608D
+0xBAB8 0x710A
+0xBAB9 0x6C57
+0xBABA 0x6C49
+0xBABB 0x592F
+0xBABC 0x676D
+0xBABD 0x822A
+0xBABE 0x58D5
+0xBABF 0x568E
+0xBAC0 0x8C6A
+0xBAC1 0x6BEB
+0xBAC2 0x90DD
+0xBAC3 0x597D
+0xBAC4 0x8017
+0xBAC5 0x53F7
+0xBAC6 0x6D69
+0xBAC7 0x5475
+0xBAC8 0x559D
+0xBAC9 0x8377
+0xBACA 0x83CF
+0xBACB 0x6838
+0xBACC 0x79BE
+0xBACD 0x548C
+0xBACE 0x4F55
+0xBACF 0x5408
+0xBAD0 0x76D2
+0xBAD1 0x8C89
+0xBAD2 0x9602
+0xBAD3 0x6CB3
+0xBAD4 0x6DB8
+0xBAD5 0x8D6B
+0xBAD6 0x8910
+0xBAD7 0x9E64
+0xBAD8 0x8D3A
+0xBAD9 0x563F
+0xBADA 0x9ED1
+0xBADB 0x75D5
+0xBADC 0x5F88
+0xBADD 0x72E0
+0xBADE 0x6068
+0xBADF 0x54FC
+0xBAE0 0x4EA8
+0xBAE1 0x6A2A
+0xBAE2 0x8861
+0xBAE3 0x6052
+0xBAE4 0x8F70
+0xBAE5 0x54C4
+0xBAE6 0x70D8
+0xBAE7 0x8679
+0xBAE8 0x9E3F
+0xBAE9 0x6D2A
+0xBAEA 0x5B8F
+0xBAEB 0x5F18
+0xBAEC 0x7EA2
+0xBAED 0x5589
+0xBAEE 0x4FAF
+0xBAEF 0x7334
+0xBAF0 0x543C
+0xBAF1 0x539A
+0xBAF2 0x5019
+0xBAF3 0x540E
+0xBAF4 0x547C
+0xBAF5 0x4E4E
+0xBAF6 0x5FFD
+0xBAF7 0x745A
+0xBAF8 0x58F6
+0xBAF9 0x846B
+0xBAFA 0x80E1
+0xBAFB 0x8774
+0xBAFC 0x72D0
+0xBAFD 0x7CCA
+0xBAFE 0x6E56
+0xBB40-0xBB49 0x7C43
+0xBB4A-0xBB6E 0x7C4E
+0xBB6F-0xBB74 0x7C75
+0xBB75-0xBB7E 0x7C7E
+0xBB80 0x7C88
+0xBB81-0xBB87 0x7C8A
+0xBB88-0xBB89 0x7C93
+0xBB8A 0x7C96
+0xBB8B-0xBB8D 0x7C99
+0xBB8E-0xBB8F 0x7CA0
+0xBB90 0x7CA3
+0xBB91-0xBB94 0x7CA6
+0xBB95-0xBB97 0x7CAB
+0xBB98-0xBB99 0x7CAF
+0xBB9A-0xBB9E 0x7CB4
+0xBB9F-0xBBA0 0x7CBA
+0xBBA1 0x5F27
+0xBBA2 0x864E
+0xBBA3 0x552C
+0xBBA4 0x62A4
+0xBBA5 0x4E92
+0xBBA6 0x6CAA
+0xBBA7 0x6237
+0xBBA8 0x82B1
+0xBBA9 0x54D7
+0xBBAA 0x534E
+0xBBAB 0x733E
+0xBBAC 0x6ED1
+0xBBAD 0x753B
+0xBBAE 0x5212
+0xBBAF 0x5316
+0xBBB0 0x8BDD
+0xBBB1 0x69D0
+0xBBB2 0x5F8A
+0xBBB3 0x6000
+0xBBB4 0x6DEE
+0xBBB5 0x574F
+0xBBB6 0x6B22
+0xBBB7 0x73AF
+0xBBB8 0x6853
+0xBBB9 0x8FD8
+0xBBBA 0x7F13
+0xBBBB 0x6362
+0xBBBC 0x60A3
+0xBBBD 0x5524
+0xBBBE 0x75EA
+0xBBBF 0x8C62
+0xBBC0 0x7115
+0xBBC1 0x6DA3
+0xBBC2 0x5BA6
+0xBBC3 0x5E7B
+0xBBC4 0x8352
+0xBBC5 0x614C
+0xBBC6 0x9EC4
+0xBBC7 0x78FA
+0xBBC8 0x8757
+0xBBC9 0x7C27
+0xBBCA 0x7687
+0xBBCB 0x51F0
+0xBBCC 0x60F6
+0xBBCD 0x714C
+0xBBCE 0x6643
+0xBBCF 0x5E4C
+0xBBD0 0x604D
+0xBBD1 0x8C0E
+0xBBD2 0x7070
+0xBBD3 0x6325
+0xBBD4 0x8F89
+0xBBD5 0x5FBD
+0xBBD6 0x6062
+0xBBD7 0x86D4
+0xBBD8 0x56DE
+0xBBD9 0x6BC1
+0xBBDA 0x6094
+0xBBDB 0x6167
+0xBBDC 0x5349
+0xBBDD 0x60E0
+0xBBDE 0x6666
+0xBBDF 0x8D3F
+0xBBE0 0x79FD
+0xBBE1 0x4F1A
+0xBBE2 0x70E9
+0xBBE3 0x6C47
+0xBBE4 0x8BB3
+0xBBE5 0x8BF2
+0xBBE6 0x7ED8
+0xBBE7 0x8364
+0xBBE8 0x660F
+0xBBE9 0x5A5A
+0xBBEA 0x9B42
+0xBBEB 0x6D51
+0xBBEC 0x6DF7
+0xBBED 0x8C41
+0xBBEE 0x6D3B
+0xBBEF 0x4F19
+0xBBF0 0x706B
+0xBBF1 0x83B7
+0xBBF2 0x6216
+0xBBF3 0x60D1
+0xBBF4 0x970D
+0xBBF5 0x8D27
+0xBBF6 0x7978
+0xBBF7 0x51FB
+0xBBF8 0x573E
+0xBBF9 0x57FA
+0xBBFA 0x673A
+0xBBFB 0x7578
+0xBBFC 0x7A3D
+0xBBFD 0x79EF
+0xBBFE 0x7B95
+0xBC40-0xBC41 0x7CBF
+0xBC42-0xBC44 0x7CC2
+0xBC45 0x7CC6
+0xBC46 0x7CC9
+0xBC47 0x7CCB
+0xBC48-0xBC4E 0x7CCE
+0xBC4F 0x7CD8
+0xBC50-0xBC51 0x7CDA
+0xBC52-0xBC53 0x7CDD
+0xBC54-0xBC5A 0x7CE1
+0xBC5B-0xBC60 0x7CE9
+0xBC61-0xBC68 0x7CF0
+0xBC69-0xBC6A 0x7CF9
+0xBC6B-0xBC78 0x7CFC
+0xBC79-0xBC7E 0x7D0B
+0xBC80-0xBC8E 0x7D11
+0xBC8F 0x7D21
+0xBC90-0xBC93 0x7D23
+0xBC94-0xBC96 0x7D28
+0xBC97-0xBC99 0x7D2C
+0xBC9A-0xBCA0 0x7D30
+0xBCA1 0x808C
+0xBCA2 0x9965
+0xBCA3 0x8FF9
+0xBCA4 0x6FC0
+0xBCA5 0x8BA5
+0xBCA6 0x9E21
+0xBCA7 0x59EC
+0xBCA8 0x7EE9
+0xBCA9 0x7F09
+0xBCAA 0x5409
+0xBCAB 0x6781
+0xBCAC 0x68D8
+0xBCAD 0x8F91
+0xBCAE 0x7C4D
+0xBCAF 0x96C6
+0xBCB0 0x53CA
+0xBCB1 0x6025
+0xBCB2 0x75BE
+0xBCB3 0x6C72
+0xBCB4 0x5373
+0xBCB5 0x5AC9
+0xBCB6 0x7EA7
+0xBCB7 0x6324
+0xBCB8 0x51E0
+0xBCB9 0x810A
+0xBCBA 0x5DF1
+0xBCBB 0x84DF
+0xBCBC 0x6280
+0xBCBD 0x5180
+0xBCBE 0x5B63
+0xBCBF 0x4F0E
+0xBCC0 0x796D
+0xBCC1 0x5242
+0xBCC2 0x60B8
+0xBCC3 0x6D4E
+0xBCC4 0x5BC4
+0xBCC5 0x5BC2
+0xBCC6 0x8BA1
+0xBCC7 0x8BB0
+0xBCC8 0x65E2
+0xBCC9 0x5FCC
+0xBCCA 0x9645
+0xBCCB 0x5993
+0xBCCC 0x7EE7
+0xBCCD 0x7EAA
+0xBCCE 0x5609
+0xBCCF 0x67B7
+0xBCD0 0x5939
+0xBCD1 0x4F73
+0xBCD2 0x5BB6
+0xBCD3 0x52A0
+0xBCD4 0x835A
+0xBCD5 0x988A
+0xBCD6 0x8D3E
+0xBCD7 0x7532
+0xBCD8 0x94BE
+0xBCD9 0x5047
+0xBCDA 0x7A3C
+0xBCDB 0x4EF7
+0xBCDC 0x67B6
+0xBCDD 0x9A7E
+0xBCDE 0x5AC1
+0xBCDF 0x6B7C
+0xBCE0 0x76D1
+0xBCE1 0x575A
+0xBCE2 0x5C16
+0xBCE3 0x7B3A
+0xBCE4 0x95F4
+0xBCE5 0x714E
+0xBCE6 0x517C
+0xBCE7 0x80A9
+0xBCE8 0x8270
+0xBCE9 0x5978
+0xBCEA 0x7F04
+0xBCEB 0x8327
+0xBCEC 0x68C0
+0xBCED 0x67EC
+0xBCEE 0x78B1
+0xBCEF 0x7877
+0xBCF0 0x62E3
+0xBCF1 0x6361
+0xBCF2 0x7B80
+0xBCF3 0x4FED
+0xBCF4 0x526A
+0xBCF5 0x51CF
+0xBCF6 0x8350
+0xBCF7 0x69DB
+0xBCF8 0x9274
+0xBCF9 0x8DF5
+0xBCFA 0x8D31
+0xBCFB 0x89C1
+0xBCFC 0x952E
+0xBCFD 0x7BAD
+0xBCFE 0x4EF6
+0xBD40-0xBD76 0x7D37
+0xBD77-0xBD7E 0x7D6F
+0xBD80-0xBDA0 0x7D78
+0xBDA1 0x5065
+0xBDA2 0x8230
+0xBDA3 0x5251
+0xBDA4 0x996F
+0xBDA5 0x6E10
+0xBDA6 0x6E85
+0xBDA7 0x6DA7
+0xBDA8 0x5EFA
+0xBDA9 0x50F5
+0xBDAA 0x59DC
+0xBDAB 0x5C06
+0xBDAC 0x6D46
+0xBDAD 0x6C5F
+0xBDAE 0x7586
+0xBDAF 0x848B
+0xBDB0 0x6868
+0xBDB1 0x5956
+0xBDB2 0x8BB2
+0xBDB3 0x5320
+0xBDB4 0x9171
+0xBDB5 0x964D
+0xBDB6 0x8549
+0xBDB7 0x6912
+0xBDB8 0x7901
+0xBDB9 0x7126
+0xBDBA 0x80F6
+0xBDBB 0x4EA4
+0xBDBC 0x90CA
+0xBDBD 0x6D47
+0xBDBE 0x9A84
+0xBDBF 0x5A07
+0xBDC0 0x56BC
+0xBDC1 0x6405
+0xBDC2 0x94F0
+0xBDC3 0x77EB
+0xBDC4 0x4FA5
+0xBDC5 0x811A
+0xBDC6 0x72E1
+0xBDC7 0x89D2
+0xBDC8 0x997A
+0xBDC9 0x7F34
+0xBDCA 0x7EDE
+0xBDCB 0x527F
+0xBDCC 0x6559
+0xBDCD 0x9175
+0xBDCE 0x8F7F
+0xBDCF 0x8F83
+0xBDD0 0x53EB
+0xBDD1 0x7A96
+0xBDD2 0x63ED
+0xBDD3 0x63A5
+0xBDD4 0x7686
+0xBDD5 0x79F8
+0xBDD6 0x8857
+0xBDD7 0x9636
+0xBDD8 0x622A
+0xBDD9 0x52AB
+0xBDDA 0x8282
+0xBDDB 0x6854
+0xBDDC 0x6770
+0xBDDD 0x6377
+0xBDDE 0x776B
+0xBDDF 0x7AED
+0xBDE0 0x6D01
+0xBDE1 0x7ED3
+0xBDE2 0x89E3
+0xBDE3 0x59D0
+0xBDE4 0x6212
+0xBDE5 0x85C9
+0xBDE6 0x82A5
+0xBDE7 0x754C
+0xBDE8 0x501F
+0xBDE9 0x4ECB
+0xBDEA 0x75A5
+0xBDEB 0x8BEB
+0xBDEC 0x5C4A
+0xBDED 0x5DFE
+0xBDEE 0x7B4B
+0xBDEF 0x65A4
+0xBDF0 0x91D1
+0xBDF1 0x4ECA
+0xBDF2 0x6D25
+0xBDF3 0x895F
+0xBDF4 0x7D27
+0xBDF5 0x9526
+0xBDF6 0x4EC5
+0xBDF7 0x8C28
+0xBDF8 0x8FDB
+0xBDF9 0x9773
+0xBDFA 0x664B
+0xBDFB 0x7981
+0xBDFC 0x8FD1
+0xBDFD 0x70EC
+0xBDFE 0x6D78
+0xBE40-0xBE4C 0x7D99
+0xBE4D-0xBE53 0x7DA7
+0xBE54-0xBE7E 0x7DAF
+0xBE80-0xBEA0 0x7DDA
+0xBEA1 0x5C3D
+0xBEA2 0x52B2
+0xBEA3 0x8346
+0xBEA4 0x5162
+0xBEA5 0x830E
+0xBEA6 0x775B
+0xBEA7 0x6676
+0xBEA8 0x9CB8
+0xBEA9 0x4EAC
+0xBEAA 0x60CA
+0xBEAB 0x7CBE
+0xBEAC 0x7CB3
+0xBEAD 0x7ECF
+0xBEAE 0x4E95
+0xBEAF 0x8B66
+0xBEB0 0x666F
+0xBEB1 0x9888
+0xBEB2 0x9759
+0xBEB3 0x5883
+0xBEB4 0x656C
+0xBEB5 0x955C
+0xBEB6 0x5F84
+0xBEB7 0x75C9
+0xBEB8 0x9756
+0xBEB9 0x7ADF
+0xBEBA 0x7ADE
+0xBEBB 0x51C0
+0xBEBC 0x70AF
+0xBEBD 0x7A98
+0xBEBE 0x63EA
+0xBEBF 0x7A76
+0xBEC0 0x7EA0
+0xBEC1 0x7396
+0xBEC2 0x97ED
+0xBEC3 0x4E45
+0xBEC4 0x7078
+0xBEC5 0x4E5D
+0xBEC6 0x9152
+0xBEC7 0x53A9
+0xBEC8 0x6551
+0xBEC9 0x65E7
+0xBECA 0x81FC
+0xBECB 0x8205
+0xBECC 0x548E
+0xBECD 0x5C31
+0xBECE 0x759A
+0xBECF 0x97A0
+0xBED0 0x62D8
+0xBED1 0x72D9
+0xBED2 0x75BD
+0xBED3 0x5C45
+0xBED4 0x9A79
+0xBED5 0x83CA
+0xBED6 0x5C40
+0xBED7 0x5480
+0xBED8 0x77E9
+0xBED9 0x4E3E
+0xBEDA 0x6CAE
+0xBEDB 0x805A
+0xBEDC 0x62D2
+0xBEDD 0x636E
+0xBEDE 0x5DE8
+0xBEDF 0x5177
+0xBEE0 0x8DDD
+0xBEE1 0x8E1E
+0xBEE2 0x952F
+0xBEE3 0x4FF1
+0xBEE4 0x53E5
+0xBEE5 0x60E7
+0xBEE6 0x70AC
+0xBEE7 0x5267
+0xBEE8 0x6350
+0xBEE9 0x9E43
+0xBEEA 0x5A1F
+0xBEEB 0x5026
+0xBEEC 0x7737
+0xBEED 0x5377
+0xBEEE 0x7EE2
+0xBEEF 0x6485
+0xBEF0 0x652B
+0xBEF1 0x6289
+0xBEF2 0x6398
+0xBEF3 0x5014
+0xBEF4 0x7235
+0xBEF5 0x89C9
+0xBEF6 0x51B3
+0xBEF7 0x8BC0
+0xBEF8 0x7EDD
+0xBEF9 0x5747
+0xBEFA 0x83CC
+0xBEFB 0x94A7
+0xBEFC 0x519B
+0xBEFD 0x541B
+0xBEFE 0x5CFB
+0xBF40-0xBF7E 0x7DFB
+0xBF80 0x7E3A
+0xBF81-0xBF85 0x7E3C
+0xBF86-0xBF8A 0x7E42
+0xBF8B-0xBFA0 0x7E48
+0xBFA1 0x4FCA
+0xBFA2 0x7AE3
+0xBFA3 0x6D5A
+0xBFA4 0x90E1
+0xBFA5 0x9A8F
+0xBFA6 0x5580
+0xBFA7 0x5496
+0xBFA8 0x5361
+0xBFA9 0x54AF
+0xBFAA 0x5F00
+0xBFAB 0x63E9
+0xBFAC 0x6977
+0xBFAD 0x51EF
+0xBFAE 0x6168
+0xBFAF 0x520A
+0xBFB0 0x582A
+0xBFB1 0x52D8
+0xBFB2 0x574E
+0xBFB3 0x780D
+0xBFB4 0x770B
+0xBFB5 0x5EB7
+0xBFB6 0x6177
+0xBFB7 0x7CE0
+0xBFB8 0x625B
+0xBFB9 0x6297
+0xBFBA 0x4EA2
+0xBFBB 0x7095
+0xBFBC 0x8003
+0xBFBD 0x62F7
+0xBFBE 0x70E4
+0xBFBF 0x9760
+0xBFC0 0x5777
+0xBFC1 0x82DB
+0xBFC2 0x67EF
+0xBFC3 0x68F5
+0xBFC4 0x78D5
+0xBFC5 0x9897
+0xBFC6 0x79D1
+0xBFC7 0x58F3
+0xBFC8 0x54B3
+0xBFC9 0x53EF
+0xBFCA 0x6E34
+0xBFCB 0x514B
+0xBFCC 0x523B
+0xBFCD 0x5BA2
+0xBFCE 0x8BFE
+0xBFCF 0x80AF
+0xBFD0 0x5543
+0xBFD1 0x57A6
+0xBFD2 0x6073
+0xBFD3 0x5751
+0xBFD4 0x542D
+0xBFD5 0x7A7A
+0xBFD6 0x6050
+0xBFD7 0x5B54
+0xBFD8 0x63A7
+0xBFD9 0x62A0
+0xBFDA 0x53E3
+0xBFDB 0x6263
+0xBFDC 0x5BC7
+0xBFDD 0x67AF
+0xBFDE 0x54ED
+0xBFDF 0x7A9F
+0xBFE0 0x82E6
+0xBFE1 0x9177
+0xBFE2 0x5E93
+0xBFE3 0x88E4
+0xBFE4 0x5938
+0xBFE5 0x57AE
+0xBFE6 0x630E
+0xBFE7 0x8DE8
+0xBFE8 0x80EF
+0xBFE9 0x5757
+0xBFEA 0x7B77
+0xBFEB 0x4FA9
+0xBFEC 0x5FEB
+0xBFED 0x5BBD
+0xBFEE 0x6B3E
+0xBFEF 0x5321
+0xBFF0 0x7B50
+0xBFF1 0x72C2
+0xBFF2 0x6846
+0xBFF3 0x77FF
+0xBFF4 0x7736
+0xBFF5 0x65F7
+0xBFF6 0x51B5
+0xBFF7 0x4E8F
+0xBFF8 0x76D4
+0xBFF9 0x5CBF
+0xBFFA 0x7AA5
+0xBFFB 0x8475
+0xBFFC 0x594E
+0xBFFD 0x9B41
+0xBFFE 0x5080
+0xC040-0xC063 0x7E5E
+0xC064-0xC07B 0x7E83
+0xC07C-0xC07E 0x7E9C
+0xC080 0x7EAE
+0xC081 0x7EB4
+0xC082-0xC083 0x7EBB
+0xC084 0x7ED6
+0xC085 0x7EE4
+0xC086 0x7EEC
+0xC087 0x7EF9
+0xC088 0x7F0A
+0xC089 0x7F10
+0xC08A 0x7F1E
+0xC08B 0x7F37
+0xC08C 0x7F39
+0xC08D-0xC093 0x7F3B
+0xC094 0x7F43
+0xC095-0xC09E 0x7F46
+0xC09F-0xC0A0 0x7F52
+0xC0A1 0x9988
+0xC0A2 0x6127
+0xC0A3 0x6E83
+0xC0A4 0x5764
+0xC0A5 0x6606
+0xC0A6 0x6346
+0xC0A7 0x56F0
+0xC0A8 0x62EC
+0xC0A9 0x6269
+0xC0AA 0x5ED3
+0xC0AB 0x9614
+0xC0AC 0x5783
+0xC0AD 0x62C9
+0xC0AE 0x5587
+0xC0AF 0x8721
+0xC0B0 0x814A
+0xC0B1 0x8FA3
+0xC0B2 0x5566
+0xC0B3 0x83B1
+0xC0B4 0x6765
+0xC0B5 0x8D56
+0xC0B6 0x84DD
+0xC0B7 0x5A6A
+0xC0B8 0x680F
+0xC0B9 0x62E6
+0xC0BA 0x7BEE
+0xC0BB 0x9611
+0xC0BC 0x5170
+0xC0BD 0x6F9C
+0xC0BE 0x8C30
+0xC0BF 0x63FD
+0xC0C0 0x89C8
+0xC0C1 0x61D2
+0xC0C2 0x7F06
+0xC0C3 0x70C2
+0xC0C4 0x6EE5
+0xC0C5 0x7405
+0xC0C6 0x6994
+0xC0C7 0x72FC
+0xC0C8 0x5ECA
+0xC0C9 0x90CE
+0xC0CA 0x6717
+0xC0CB 0x6D6A
+0xC0CC 0x635E
+0xC0CD 0x52B3
+0xC0CE 0x7262
+0xC0CF 0x8001
+0xC0D0 0x4F6C
+0xC0D1 0x59E5
+0xC0D2 0x916A
+0xC0D3 0x70D9
+0xC0D4 0x6D9D
+0xC0D5 0x52D2
+0xC0D6 0x4E50
+0xC0D7 0x96F7
+0xC0D8 0x956D
+0xC0D9 0x857E
+0xC0DA 0x78CA
+0xC0DB 0x7D2F
+0xC0DC 0x5121
+0xC0DD 0x5792
+0xC0DE 0x64C2
+0xC0DF 0x808B
+0xC0E0 0x7C7B
+0xC0E1 0x6CEA
+0xC0E2 0x68F1
+0xC0E3 0x695E
+0xC0E4 0x51B7
+0xC0E5 0x5398
+0xC0E6 0x68A8
+0xC0E7 0x7281
+0xC0E8 0x9ECE
+0xC0E9 0x7BF1
+0xC0EA 0x72F8
+0xC0EB 0x79BB
+0xC0EC 0x6F13
+0xC0ED 0x7406
+0xC0EE 0x674E
+0xC0EF 0x91CC
+0xC0F0 0x9CA4
+0xC0F1 0x793C
+0xC0F2 0x8389
+0xC0F3 0x8354
+0xC0F4 0x540F
+0xC0F5 0x6817
+0xC0F6 0x4E3D
+0xC0F7 0x5389
+0xC0F8 0x52B1
+0xC0F9 0x783E
+0xC0FA 0x5386
+0xC0FB 0x5229
+0xC0FC 0x5088
+0xC0FD 0x4F8B
+0xC0FE 0x4FD0
+0xC140 0x7F56
+0xC141 0x7F59
+0xC142-0xC145 0x7F5B
+0xC146 0x7F60
+0xC147-0xC14B 0x7F63
+0xC14C-0xC14E 0x7F6B
+0xC14F-0xC150 0x7F6F
+0xC151 0x7F73
+0xC152-0xC155 0x7F75
+0xC156-0xC159 0x7F7A
+0xC15A-0xC15B 0x7F7F
+0xC15C-0xC163 0x7F82
+0xC164 0x7F8B
+0xC165 0x7F8D
+0xC166-0xC16A 0x7F8F
+0xC16B-0xC16F 0x7F95
+0xC170-0xC171 0x7F9B
+0xC172 0x7FA0
+0xC173-0xC174 0x7FA2
+0xC175-0xC176 0x7FA5
+0xC177-0xC17D 0x7FA8
+0xC17E 0x7FB1
+0xC180-0xC184 0x7FB3
+0xC185-0xC186 0x7FBA
+0xC187 0x7FBE
+0xC188 0x7FC0
+0xC189-0xC18B 0x7FC2
+0xC18C-0xC18F 0x7FC6
+0xC190 0x7FCB
+0xC191 0x7FCD
+0xC192-0xC196 0x7FCF
+0xC197-0xC198 0x7FD6
+0xC199-0xC19E 0x7FD9
+0xC19F-0xC1A0 0x7FE2
+0xC1A1 0x75E2
+0xC1A2 0x7ACB
+0xC1A3 0x7C92
+0xC1A4 0x6CA5
+0xC1A5 0x96B6
+0xC1A6 0x529B
+0xC1A7 0x7483
+0xC1A8 0x54E9
+0xC1A9 0x4FE9
+0xC1AA 0x8054
+0xC1AB 0x83B2
+0xC1AC 0x8FDE
+0xC1AD 0x9570
+0xC1AE 0x5EC9
+0xC1AF 0x601C
+0xC1B0 0x6D9F
+0xC1B1 0x5E18
+0xC1B2 0x655B
+0xC1B3 0x8138
+0xC1B4 0x94FE
+0xC1B5 0x604B
+0xC1B6 0x70BC
+0xC1B7 0x7EC3
+0xC1B8 0x7CAE
+0xC1B9 0x51C9
+0xC1BA 0x6881
+0xC1BB 0x7CB1
+0xC1BC 0x826F
+0xC1BD 0x4E24
+0xC1BE 0x8F86
+0xC1BF 0x91CF
+0xC1C0 0x667E
+0xC1C1 0x4EAE
+0xC1C2 0x8C05
+0xC1C3 0x64A9
+0xC1C4 0x804A
+0xC1C5 0x50DA
+0xC1C6 0x7597
+0xC1C7 0x71CE
+0xC1C8 0x5BE5
+0xC1C9 0x8FBD
+0xC1CA 0x6F66
+0xC1CB 0x4E86
+0xC1CC 0x6482
+0xC1CD 0x9563
+0xC1CE 0x5ED6
+0xC1CF 0x6599
+0xC1D0 0x5217
+0xC1D1 0x88C2
+0xC1D2 0x70C8
+0xC1D3 0x52A3
+0xC1D4 0x730E
+0xC1D5 0x7433
+0xC1D6 0x6797
+0xC1D7 0x78F7
+0xC1D8 0x9716
+0xC1D9 0x4E34
+0xC1DA 0x90BB
+0xC1DB 0x9CDE
+0xC1DC 0x6DCB
+0xC1DD 0x51DB
+0xC1DE 0x8D41
+0xC1DF 0x541D
+0xC1E0 0x62CE
+0xC1E1 0x73B2
+0xC1E2 0x83F1
+0xC1E3 0x96F6
+0xC1E4 0x9F84
+0xC1E5 0x94C3
+0xC1E6 0x4F36
+0xC1E7 0x7F9A
+0xC1E8 0x51CC
+0xC1E9 0x7075
+0xC1EA 0x9675
+0xC1EB 0x5CAD
+0xC1EC 0x9886
+0xC1ED 0x53E6
+0xC1EE 0x4EE4
+0xC1EF 0x6E9C
+0xC1F0 0x7409
+0xC1F1 0x69B4
+0xC1F2 0x786B
+0xC1F3 0x998F
+0xC1F4 0x7559
+0xC1F5 0x5218
+0xC1F6 0x7624
+0xC1F7 0x6D41
+0xC1F8 0x67F3
+0xC1F9 0x516D
+0xC1FA 0x9F99
+0xC1FB 0x804B
+0xC1FC 0x5499
+0xC1FD 0x7B3C
+0xC1FE 0x7ABF
+0xC240 0x7FE4
+0xC241-0xC242 0x7FE7
+0xC243-0xC246 0x7FEA
+0xC247 0x7FEF
+0xC248 0x7FF2
+0xC249-0xC24F 0x7FF4
+0xC250-0xC252 0x7FFD
+0xC253 0x8002
+0xC254-0xC257 0x8007
+0xC258-0xC259 0x800E
+0xC25A 0x8011
+0xC25B 0x8013
+0xC25C-0xC25D 0x801A
+0xC25E-0xC260 0x801D
+0xC261 0x8021
+0xC262-0xC263 0x8023
+0xC264-0xC269 0x802B
+0xC26A 0x8032
+0xC26B 0x8034
+0xC26C-0xC26D 0x8039
+0xC26E 0x803C
+0xC26F 0x803E
+0xC270-0xC271 0x8040
+0xC272-0xC273 0x8044
+0xC274-0xC276 0x8047
+0xC277-0xC27A 0x804E
+0xC27B 0x8053
+0xC27C-0xC27E 0x8055
+0xC280 0x8059
+0xC281-0xC28E 0x805B
+0xC28F-0xC294 0x806B
+0xC295-0xC2A0 0x8072
+0xC2A1 0x9686
+0xC2A2 0x5784
+0xC2A3 0x62E2
+0xC2A4 0x9647
+0xC2A5 0x697C
+0xC2A6 0x5A04
+0xC2A7 0x6402
+0xC2A8 0x7BD3
+0xC2A9 0x6F0F
+0xC2AA 0x964B
+0xC2AB 0x82A6
+0xC2AC 0x5362
+0xC2AD 0x9885
+0xC2AE 0x5E90
+0xC2AF 0x7089
+0xC2B0 0x63B3
+0xC2B1 0x5364
+0xC2B2 0x864F
+0xC2B3 0x9C81
+0xC2B4 0x9E93
+0xC2B5 0x788C
+0xC2B6 0x9732
+0xC2B7 0x8DEF
+0xC2B8 0x8D42
+0xC2B9 0x9E7F
+0xC2BA 0x6F5E
+0xC2BB 0x7984
+0xC2BC 0x5F55
+0xC2BD 0x9646
+0xC2BE 0x622E
+0xC2BF 0x9A74
+0xC2C0 0x5415
+0xC2C1 0x94DD
+0xC2C2 0x4FA3
+0xC2C3 0x65C5
+0xC2C4 0x5C65
+0xC2C5 0x5C61
+0xC2C6 0x7F15
+0xC2C7 0x8651
+0xC2C8 0x6C2F
+0xC2C9 0x5F8B
+0xC2CA 0x7387
+0xC2CB 0x6EE4
+0xC2CC 0x7EFF
+0xC2CD 0x5CE6
+0xC2CE 0x631B
+0xC2CF 0x5B6A
+0xC2D0 0x6EE6
+0xC2D1 0x5375
+0xC2D2 0x4E71
+0xC2D3 0x63A0
+0xC2D4 0x7565
+0xC2D5 0x62A1
+0xC2D6 0x8F6E
+0xC2D7 0x4F26
+0xC2D8 0x4ED1
+0xC2D9 0x6CA6
+0xC2DA 0x7EB6
+0xC2DB 0x8BBA
+0xC2DC 0x841D
+0xC2DD 0x87BA
+0xC2DE 0x7F57
+0xC2DF 0x903B
+0xC2E0 0x9523
+0xC2E1 0x7BA9
+0xC2E2 0x9AA1
+0xC2E3 0x88F8
+0xC2E4 0x843D
+0xC2E5 0x6D1B
+0xC2E6 0x9A86
+0xC2E7 0x7EDC
+0xC2E8 0x5988
+0xC2E9 0x9EBB
+0xC2EA 0x739B
+0xC2EB 0x7801
+0xC2EC 0x8682
+0xC2ED 0x9A6C
+0xC2EE 0x9A82
+0xC2EF 0x561B
+0xC2F0 0x5417
+0xC2F1 0x57CB
+0xC2F2 0x4E70
+0xC2F3 0x9EA6
+0xC2F4 0x5356
+0xC2F5 0x8FC8
+0xC2F6 0x8109
+0xC2F7 0x7792
+0xC2F8 0x9992
+0xC2F9 0x86EE
+0xC2FA 0x6EE1
+0xC2FB 0x8513
+0xC2FC 0x66FC
+0xC2FD 0x6162
+0xC2FE 0x6F2B
+0xC340 0x807E
+0xC341-0xC342 0x8081
+0xC343 0x8085
+0xC344 0x8088
+0xC345 0x808A
+0xC346-0xC34B 0x808D
+0xC34C-0xC34D 0x8094
+0xC34E 0x8097
+0xC34F 0x8099
+0xC350 0x809E
+0xC351 0x80A3
+0xC352-0xC354 0x80A6
+0xC355 0x80AC
+0xC356 0x80B0
+0xC357 0x80B3
+0xC358-0xC359 0x80B5
+0xC35A-0xC35B 0x80B8
+0xC35C 0x80BB
+0xC35D 0x80C5
+0xC35E-0xC362 0x80C7
+0xC363-0xC369 0x80CF
+0xC36A 0x80D8
+0xC36B-0xC36C 0x80DF
+0xC36D-0xC36E 0x80E2
+0xC36F 0x80E6
+0xC370 0x80EE
+0xC371 0x80F5
+0xC372 0x80F7
+0xC373 0x80F9
+0xC374 0x80FB
+0xC375-0xC378 0x80FE
+0xC379-0xC37B 0x8103
+0xC37C-0xC37D 0x8107
+0xC37E 0x810B
+0xC380 0x810C
+0xC381 0x8115
+0xC382 0x8117
+0xC383 0x8119
+0xC384-0xC386 0x811B
+0xC387-0xC393 0x811F
+0xC394-0xC395 0x812D
+0xC396 0x8130
+0xC397-0xC399 0x8133
+0xC39A 0x8137
+0xC39B-0xC39F 0x8139
+0xC3A0 0x813F
+0xC3A1 0x8C29
+0xC3A2 0x8292
+0xC3A3 0x832B
+0xC3A4 0x76F2
+0xC3A5 0x6C13
+0xC3A6 0x5FD9
+0xC3A7 0x83BD
+0xC3A8 0x732B
+0xC3A9 0x8305
+0xC3AA 0x951A
+0xC3AB 0x6BDB
+0xC3AC 0x77DB
+0xC3AD 0x94C6
+0xC3AE 0x536F
+0xC3AF 0x8302
+0xC3B0 0x5192
+0xC3B1 0x5E3D
+0xC3B2 0x8C8C
+0xC3B3 0x8D38
+0xC3B4 0x4E48
+0xC3B5 0x73AB
+0xC3B6 0x679A
+0xC3B7 0x6885
+0xC3B8 0x9176
+0xC3B9 0x9709
+0xC3BA 0x7164
+0xC3BB 0x6CA1
+0xC3BC 0x7709
+0xC3BD 0x5A92
+0xC3BE 0x9541
+0xC3BF 0x6BCF
+0xC3C0 0x7F8E
+0xC3C1 0x6627
+0xC3C2 0x5BD0
+0xC3C3 0x59B9
+0xC3C4 0x5A9A
+0xC3C5 0x95E8
+0xC3C6 0x95F7
+0xC3C7 0x4EEC
+0xC3C8 0x840C
+0xC3C9 0x8499
+0xC3CA 0x6AAC
+0xC3CB 0x76DF
+0xC3CC 0x9530
+0xC3CD 0x731B
+0xC3CE 0x68A6
+0xC3CF 0x5B5F
+0xC3D0 0x772F
+0xC3D1 0x919A
+0xC3D2 0x9761
+0xC3D3 0x7CDC
+0xC3D4 0x8FF7
+0xC3D5 0x8C1C
+0xC3D6 0x5F25
+0xC3D7 0x7C73
+0xC3D8 0x79D8
+0xC3D9 0x89C5
+0xC3DA 0x6CCC
+0xC3DB 0x871C
+0xC3DC 0x5BC6
+0xC3DD 0x5E42
+0xC3DE 0x68C9
+0xC3DF 0x7720
+0xC3E0 0x7EF5
+0xC3E1 0x5195
+0xC3E2 0x514D
+0xC3E3 0x52C9
+0xC3E4 0x5A29
+0xC3E5 0x7F05
+0xC3E6 0x9762
+0xC3E7 0x82D7
+0xC3E8 0x63CF
+0xC3E9 0x7784
+0xC3EA 0x85D0
+0xC3EB 0x79D2
+0xC3EC 0x6E3A
+0xC3ED 0x5E99
+0xC3EE 0x5999
+0xC3EF 0x8511
+0xC3F0 0x706D
+0xC3F1 0x6C11
+0xC3F2 0x62BF
+0xC3F3 0x76BF
+0xC3F4 0x654F
+0xC3F5 0x60AF
+0xC3F6 0x95FD
+0xC3F7 0x660E
+0xC3F8 0x879F
+0xC3F9 0x9E23
+0xC3FA 0x94ED
+0xC3FB 0x540D
+0xC3FC 0x547D
+0xC3FD 0x8C2C
+0xC3FE 0x6478
+0xC440-0xC445 0x8140
+0xC446 0x8147
+0xC447 0x8149
+0xC448-0xC44A 0x814D
+0xC44B 0x8152
+0xC44C-0xC44E 0x8156
+0xC44F-0xC453 0x815B
+0xC454-0xC457 0x8161
+0xC458 0x8166
+0xC459 0x8168
+0xC45A-0xC45C 0x816A
+0xC45D 0x816F
+0xC45E-0xC45F 0x8172
+0xC460-0xC463 0x8175
+0xC464 0x8181
+0xC465-0xC469 0x8183
+0xC46A 0x8189
+0xC46B-0xC46E 0x818B
+0xC46F 0x8190
+0xC470-0xC475 0x8192
+0xC476-0xC477 0x8199
+0xC478-0xC47C 0x819E
+0xC47D-0xC47E 0x81A4
+0xC480 0x81A7
+0xC481 0x81A9
+0xC482-0xC489 0x81AB
+0xC48A-0xC48F 0x81B4
+0xC490-0xC493 0x81BC
+0xC494-0xC495 0x81C4
+0xC496-0xC498 0x81C7
+0xC499 0x81CB
+0xC49A-0xC4A0 0x81CD
+0xC4A1 0x6479
+0xC4A2 0x8611
+0xC4A3 0x6A21
+0xC4A4 0x819C
+0xC4A5 0x78E8
+0xC4A6 0x6469
+0xC4A7 0x9B54
+0xC4A8 0x62B9
+0xC4A9 0x672B
+0xC4AA 0x83AB
+0xC4AB 0x58A8
+0xC4AC 0x9ED8
+0xC4AD 0x6CAB
+0xC4AE 0x6F20
+0xC4AF 0x5BDE
+0xC4B0 0x964C
+0xC4B1 0x8C0B
+0xC4B2 0x725F
+0xC4B3 0x67D0
+0xC4B4 0x62C7
+0xC4B5 0x7261
+0xC4B6 0x4EA9
+0xC4B7 0x59C6
+0xC4B8 0x6BCD
+0xC4B9 0x5893
+0xC4BA 0x66AE
+0xC4BB 0x5E55
+0xC4BC 0x52DF
+0xC4BD 0x6155
+0xC4BE 0x6728
+0xC4BF 0x76EE
+0xC4C0 0x7766
+0xC4C1 0x7267
+0xC4C2 0x7A46
+0xC4C3 0x62FF
+0xC4C4 0x54EA
+0xC4C5 0x5450
+0xC4C6 0x94A0
+0xC4C7 0x90A3
+0xC4C8 0x5A1C
+0xC4C9 0x7EB3
+0xC4CA 0x6C16
+0xC4CB 0x4E43
+0xC4CC 0x5976
+0xC4CD 0x8010
+0xC4CE 0x5948
+0xC4CF 0x5357
+0xC4D0 0x7537
+0xC4D1 0x96BE
+0xC4D2 0x56CA
+0xC4D3 0x6320
+0xC4D4 0x8111
+0xC4D5 0x607C
+0xC4D6 0x95F9
+0xC4D7 0x6DD6
+0xC4D8 0x5462
+0xC4D9 0x9981
+0xC4DA 0x5185
+0xC4DB 0x5AE9
+0xC4DC 0x80FD
+0xC4DD 0x59AE
+0xC4DE 0x9713
+0xC4DF 0x502A
+0xC4E0 0x6CE5
+0xC4E1 0x5C3C
+0xC4E2 0x62DF
+0xC4E3 0x4F60
+0xC4E4 0x533F
+0xC4E5 0x817B
+0xC4E6 0x9006
+0xC4E7 0x6EBA
+0xC4E8 0x852B
+0xC4E9 0x62C8
+0xC4EA 0x5E74
+0xC4EB 0x78BE
+0xC4EC 0x64B5
+0xC4ED 0x637B
+0xC4EE 0x5FF5
+0xC4EF 0x5A18
+0xC4F0 0x917F
+0xC4F1 0x9E1F
+0xC4F2 0x5C3F
+0xC4F3 0x634F
+0xC4F4 0x8042
+0xC4F5 0x5B7D
+0xC4F6 0x556E
+0xC4F7 0x954A
+0xC4F8 0x954D
+0xC4F9 0x6D85
+0xC4FA 0x60A8
+0xC4FB 0x67E0
+0xC4FC 0x72DE
+0xC4FD 0x51DD
+0xC4FE 0x5B81
+0xC540-0xC54E 0x81D4
+0xC54F-0xC551 0x81E4
+0xC552-0xC553 0x81E8
+0xC554 0x81EB
+0xC555-0xC559 0x81EE
+0xC55A-0xC55F 0x81F5
+0xC560 0x81FD
+0xC561 0x81FF
+0xC562 0x8203
+0xC563-0xC567 0x8207
+0xC568-0xC569 0x820E
+0xC56A 0x8211
+0xC56B 0x8213
+0xC56C-0xC571 0x8215
+0xC572 0x821D
+0xC573 0x8220
+0xC574-0xC577 0x8224
+0xC578 0x8229
+0xC579 0x822E
+0xC57A 0x8232
+0xC57B 0x823A
+0xC57C-0xC57D 0x823C
+0xC57E 0x823F
+0xC580-0xC583 0x8240
+0xC584-0xC585 0x8245
+0xC586 0x8248
+0xC587 0x824A
+0xC588-0xC58A 0x824C
+0xC58B-0xC592 0x8250
+0xC593 0x8259
+0xC594-0xC597 0x825B
+0xC598-0xC59F 0x8260
+0xC5A0 0x8269
+0xC5A1 0x62E7
+0xC5A2 0x6CDE
+0xC5A3 0x725B
+0xC5A4 0x626D
+0xC5A5 0x94AE
+0xC5A6 0x7EBD
+0xC5A7 0x8113
+0xC5A8 0x6D53
+0xC5A9 0x519C
+0xC5AA 0x5F04
+0xC5AB 0x5974
+0xC5AC 0x52AA
+0xC5AD 0x6012
+0xC5AE 0x5973
+0xC5AF 0x6696
+0xC5B0 0x8650
+0xC5B1 0x759F
+0xC5B2 0x632A
+0xC5B3 0x61E6
+0xC5B4 0x7CEF
+0xC5B5 0x8BFA
+0xC5B6 0x54E6
+0xC5B7 0x6B27
+0xC5B8 0x9E25
+0xC5B9 0x6BB4
+0xC5BA 0x85D5
+0xC5BB 0x5455
+0xC5BC 0x5076
+0xC5BD 0x6CA4
+0xC5BE 0x556A
+0xC5BF 0x8DB4
+0xC5C0 0x722C
+0xC5C1 0x5E15
+0xC5C2 0x6015
+0xC5C3 0x7436
+0xC5C4 0x62CD
+0xC5C5 0x6392
+0xC5C6 0x724C
+0xC5C7 0x5F98
+0xC5C8 0x6E43
+0xC5C9 0x6D3E
+0xC5CA 0x6500
+0xC5CB 0x6F58
+0xC5CC 0x76D8
+0xC5CD 0x78D0
+0xC5CE 0x76FC
+0xC5CF 0x7554
+0xC5D0 0x5224
+0xC5D1 0x53DB
+0xC5D2 0x4E53
+0xC5D3 0x5E9E
+0xC5D4 0x65C1
+0xC5D5 0x802A
+0xC5D6 0x80D6
+0xC5D7 0x629B
+0xC5D8 0x5486
+0xC5D9 0x5228
+0xC5DA 0x70AE
+0xC5DB 0x888D
+0xC5DC 0x8DD1
+0xC5DD 0x6CE1
+0xC5DE 0x5478
+0xC5DF 0x80DA
+0xC5E0 0x57F9
+0xC5E1 0x88F4
+0xC5E2 0x8D54
+0xC5E3 0x966A
+0xC5E4 0x914D
+0xC5E5 0x4F69
+0xC5E6 0x6C9B
+0xC5E7 0x55B7
+0xC5E8 0x76C6
+0xC5E9 0x7830
+0xC5EA 0x62A8
+0xC5EB 0x70F9
+0xC5EC 0x6F8E
+0xC5ED 0x5F6D
+0xC5EE 0x84EC
+0xC5EF 0x68DA
+0xC5F0 0x787C
+0xC5F1 0x7BF7
+0xC5F2 0x81A8
+0xC5F3 0x670B
+0xC5F4 0x9E4F
+0xC5F5 0x6367
+0xC5F6 0x78B0
+0xC5F7 0x576F
+0xC5F8 0x7812
+0xC5F9 0x9739
+0xC5FA 0x6279
+0xC5FB 0x62AB
+0xC5FC 0x5288
+0xC5FD 0x7435
+0xC5FE 0x6BD7
+0xC640-0xC643 0x826A
+0xC644 0x8271
+0xC645-0xC648 0x8275
+0xC649-0xC64A 0x827B
+0xC64B-0xC64C 0x8280
+0xC64D 0x8283
+0xC64E-0xC650 0x8285
+0xC651 0x8289
+0xC652 0x828C
+0xC653 0x8290
+0xC654-0xC657 0x8293
+0xC658-0xC659 0x829A
+0xC65A 0x829E
+0xC65B 0x82A0
+0xC65C-0xC65D 0x82A2
+0xC65E 0x82A7
+0xC65F 0x82B2
+0xC660-0xC661 0x82B5
+0xC662-0xC664 0x82BA
+0xC665-0xC666 0x82BF
+0xC667-0xC668 0x82C2
+0xC669-0xC66A 0x82C5
+0xC66B 0x82C9
+0xC66C 0x82D0
+0xC66D 0x82D6
+0xC66E-0xC66F 0x82D9
+0xC670 0x82DD
+0xC671 0x82E2
+0xC672-0xC675 0x82E7
+0xC676-0xC678 0x82EC
+0xC679 0x82F0
+0xC67A-0xC67B 0x82F2
+0xC67C-0xC67D 0x82F5
+0xC67E 0x82F8
+0xC680 0x82FA
+0xC681-0xC685 0x82FC
+0xC686-0xC687 0x830A
+0xC688 0x830D
+0xC689 0x8310
+0xC68A-0xC68B 0x8312
+0xC68C 0x8316
+0xC68D-0xC68E 0x8318
+0xC68F-0xC698 0x831D
+0xC699-0xC69A 0x8329
+0xC69B 0x832E
+0xC69C 0x8330
+0xC69D 0x8332
+0xC69E 0x8337
+0xC69F 0x833B
+0xC6A0 0x833D
+0xC6A1 0x5564
+0xC6A2 0x813E
+0xC6A3 0x75B2
+0xC6A4 0x76AE
+0xC6A5 0x5339
+0xC6A6 0x75DE
+0xC6A7 0x50FB
+0xC6A8 0x5C41
+0xC6A9 0x8B6C
+0xC6AA 0x7BC7
+0xC6AB 0x504F
+0xC6AC 0x7247
+0xC6AD 0x9A97
+0xC6AE 0x98D8
+0xC6AF 0x6F02
+0xC6B0 0x74E2
+0xC6B1 0x7968
+0xC6B2 0x6487
+0xC6B3 0x77A5
+0xC6B4 0x62FC
+0xC6B5 0x9891
+0xC6B6 0x8D2B
+0xC6B7 0x54C1
+0xC6B8 0x8058
+0xC6B9 0x4E52
+0xC6BA 0x576A
+0xC6BB 0x82F9
+0xC6BC 0x840D
+0xC6BD 0x5E73
+0xC6BE 0x51ED
+0xC6BF 0x74F6
+0xC6C0 0x8BC4
+0xC6C1 0x5C4F
+0xC6C2 0x5761
+0xC6C3 0x6CFC
+0xC6C4 0x9887
+0xC6C5 0x5A46
+0xC6C6 0x7834
+0xC6C7 0x9B44
+0xC6C8 0x8FEB
+0xC6C9 0x7C95
+0xC6CA 0x5256
+0xC6CB 0x6251
+0xC6CC 0x94FA
+0xC6CD 0x4EC6
+0xC6CE 0x8386
+0xC6CF 0x8461
+0xC6D0 0x83E9
+0xC6D1 0x84B2
+0xC6D2 0x57D4
+0xC6D3 0x6734
+0xC6D4 0x5703
+0xC6D5 0x666E
+0xC6D6 0x6D66
+0xC6D7 0x8C31
+0xC6D8 0x66DD
+0xC6D9 0x7011
+0xC6DA 0x671F
+0xC6DB 0x6B3A
+0xC6DC 0x6816
+0xC6DD 0x621A
+0xC6DE 0x59BB
+0xC6DF 0x4E03
+0xC6E0 0x51C4
+0xC6E1 0x6F06
+0xC6E2 0x67D2
+0xC6E3 0x6C8F
+0xC6E4 0x5176
+0xC6E5 0x68CB
+0xC6E6 0x5947
+0xC6E7 0x6B67
+0xC6E8 0x7566
+0xC6E9 0x5D0E
+0xC6EA 0x8110
+0xC6EB 0x9F50
+0xC6EC 0x65D7
+0xC6ED 0x7948
+0xC6EE 0x7941
+0xC6EF 0x9A91
+0xC6F0 0x8D77
+0xC6F1 0x5C82
+0xC6F2 0x4E5E
+0xC6F3 0x4F01
+0xC6F4 0x542F
+0xC6F5 0x5951
+0xC6F6 0x780C
+0xC6F7 0x5668
+0xC6F8 0x6C14
+0xC6F9 0x8FC4
+0xC6FA 0x5F03
+0xC6FB 0x6C7D
+0xC6FC 0x6CE3
+0xC6FD 0x8BAB
+0xC6FE 0x6390
+0xC740-0xC741 0x833E
+0xC742-0xC743 0x8341
+0xC744-0xC745 0x8344
+0xC746 0x8348
+0xC747-0xC74B 0x834A
+0xC74C 0x8353
+0xC74D-0xC751 0x8355
+0xC752 0x835D
+0xC753 0x8362
+0xC754-0xC75A 0x8370
+0xC75B-0xC75C 0x8379
+0xC75D-0xC763 0x837E
+0xC764-0xC765 0x8387
+0xC766-0xC769 0x838A
+0xC76A-0xC76C 0x838F
+0xC76D-0xC770 0x8394
+0xC771-0xC772 0x8399
+0xC773 0x839D
+0xC774 0x839F
+0xC775-0xC77B 0x83A1
+0xC77C-0xC77E 0x83AC
+0xC780 0x83AF
+0xC781 0x83B5
+0xC782 0x83BB
+0xC783-0xC784 0x83BE
+0xC785-0xC787 0x83C2
+0xC788 0x83C6
+0xC789-0xC78A 0x83C8
+0xC78B 0x83CB
+0xC78C-0xC78D 0x83CD
+0xC78E-0xC791 0x83D0
+0xC792 0x83D5
+0xC793 0x83D7
+0xC794-0xC796 0x83D9
+0xC797 0x83DE
+0xC798-0xC79A 0x83E2
+0xC79B-0xC79D 0x83E6
+0xC79E-0xC7A0 0x83EB
+0xC7A1 0x6070
+0xC7A2 0x6D3D
+0xC7A3 0x7275
+0xC7A4 0x6266
+0xC7A5 0x948E
+0xC7A6 0x94C5
+0xC7A7 0x5343
+0xC7A8 0x8FC1
+0xC7A9 0x7B7E
+0xC7AA 0x4EDF
+0xC7AB 0x8C26
+0xC7AC 0x4E7E
+0xC7AD 0x9ED4
+0xC7AE 0x94B1
+0xC7AF 0x94B3
+0xC7B0 0x524D
+0xC7B1 0x6F5C
+0xC7B2 0x9063
+0xC7B3 0x6D45
+0xC7B4 0x8C34
+0xC7B5 0x5811
+0xC7B6 0x5D4C
+0xC7B7 0x6B20
+0xC7B8 0x6B49
+0xC7B9 0x67AA
+0xC7BA 0x545B
+0xC7BB 0x8154
+0xC7BC 0x7F8C
+0xC7BD 0x5899
+0xC7BE 0x8537
+0xC7BF 0x5F3A
+0xC7C0 0x62A2
+0xC7C1 0x6A47
+0xC7C2 0x9539
+0xC7C3 0x6572
+0xC7C4 0x6084
+0xC7C5 0x6865
+0xC7C6 0x77A7
+0xC7C7 0x4E54
+0xC7C8 0x4FA8
+0xC7C9 0x5DE7
+0xC7CA 0x9798
+0xC7CB 0x64AC
+0xC7CC 0x7FD8
+0xC7CD 0x5CED
+0xC7CE 0x4FCF
+0xC7CF 0x7A8D
+0xC7D0 0x5207
+0xC7D1 0x8304
+0xC7D2 0x4E14
+0xC7D3 0x602F
+0xC7D4 0x7A83
+0xC7D5 0x94A6
+0xC7D6 0x4FB5
+0xC7D7 0x4EB2
+0xC7D8 0x79E6
+0xC7D9 0x7434
+0xC7DA 0x52E4
+0xC7DB 0x82B9
+0xC7DC 0x64D2
+0xC7DD 0x79BD
+0xC7DE 0x5BDD
+0xC7DF 0x6C81
+0xC7E0 0x9752
+0xC7E1 0x8F7B
+0xC7E2 0x6C22
+0xC7E3 0x503E
+0xC7E4 0x537F
+0xC7E5 0x6E05
+0xC7E6 0x64CE
+0xC7E7 0x6674
+0xC7E8 0x6C30
+0xC7E9 0x60C5
+0xC7EA 0x9877
+0xC7EB 0x8BF7
+0xC7EC 0x5E86
+0xC7ED 0x743C
+0xC7EE 0x7A77
+0xC7EF 0x79CB
+0xC7F0 0x4E18
+0xC7F1 0x90B1
+0xC7F2 0x7403
+0xC7F3 0x6C42
+0xC7F4 0x56DA
+0xC7F5 0x914B
+0xC7F6 0x6CC5
+0xC7F7 0x8D8B
+0xC7F8 0x533A
+0xC7F9 0x86C6
+0xC7FA 0x66F2
+0xC7FB 0x8EAF
+0xC7FC 0x5C48
+0xC7FD 0x9A71
+0xC7FE 0x6E20
+0xC840-0xC841 0x83EE
+0xC842-0xC846 0x83F3
+0xC847-0xC849 0x83FA
+0xC84A-0xC84C 0x83FE
+0xC84D 0x8402
+0xC84E 0x8405
+0xC84F-0xC852 0x8407
+0xC853 0x8410
+0xC854-0xC859 0x8412
+0xC85A-0xC85C 0x8419
+0xC85D-0xC862 0x841E
+0xC863-0xC86A 0x8429
+0xC86B-0xC870 0x8432
+0xC871-0xC873 0x8439
+0xC874-0xC87B 0x843E
+0xC87C-0xC87E 0x8447
+0xC880-0xC886 0x844A
+0xC887-0xC88B 0x8452
+0xC88C 0x8458
+0xC88D-0xC890 0x845D
+0xC891 0x8462
+0xC892-0xC896 0x8464
+0xC897 0x846A
+0xC898-0xC89A 0x846E
+0xC89B 0x8472
+0xC89C 0x8474
+0xC89D 0x8477
+0xC89E 0x8479
+0xC89F-0xC8A0 0x847B
+0xC8A1 0x53D6
+0xC8A2 0x5A36
+0xC8A3 0x9F8B
+0xC8A4 0x8DA3
+0xC8A5 0x53BB
+0xC8A6 0x5708
+0xC8A7 0x98A7
+0xC8A8 0x6743
+0xC8A9 0x919B
+0xC8AA 0x6CC9
+0xC8AB 0x5168
+0xC8AC 0x75CA
+0xC8AD 0x62F3
+0xC8AE 0x72AC
+0xC8AF 0x5238
+0xC8B0 0x529D
+0xC8B1 0x7F3A
+0xC8B2 0x7094
+0xC8B3 0x7638
+0xC8B4 0x5374
+0xC8B5 0x9E4A
+0xC8B6 0x69B7
+0xC8B7 0x786E
+0xC8B8 0x96C0
+0xC8B9 0x88D9
+0xC8BA 0x7FA4
+0xC8BB 0x7136
+0xC8BC 0x71C3
+0xC8BD 0x5189
+0xC8BE 0x67D3
+0xC8BF 0x74E4
+0xC8C0 0x58E4
+0xC8C1 0x6518
+0xC8C2 0x56B7
+0xC8C3 0x8BA9
+0xC8C4 0x9976
+0xC8C5 0x6270
+0xC8C6 0x7ED5
+0xC8C7 0x60F9
+0xC8C8 0x70ED
+0xC8C9 0x58EC
+0xC8CA 0x4EC1
+0xC8CB 0x4EBA
+0xC8CC 0x5FCD
+0xC8CD 0x97E7
+0xC8CE 0x4EFB
+0xC8CF 0x8BA4
+0xC8D0 0x5203
+0xC8D1 0x598A
+0xC8D2 0x7EAB
+0xC8D3 0x6254
+0xC8D4 0x4ECD
+0xC8D5 0x65E5
+0xC8D6 0x620E
+0xC8D7 0x8338
+0xC8D8 0x84C9
+0xC8D9 0x8363
+0xC8DA 0x878D
+0xC8DB 0x7194
+0xC8DC 0x6EB6
+0xC8DD 0x5BB9
+0xC8DE 0x7ED2
+0xC8DF 0x5197
+0xC8E0 0x63C9
+0xC8E1 0x67D4
+0xC8E2 0x8089
+0xC8E3 0x8339
+0xC8E4 0x8815
+0xC8E5 0x5112
+0xC8E6 0x5B7A
+0xC8E7 0x5982
+0xC8E8 0x8FB1
+0xC8E9 0x4E73
+0xC8EA 0x6C5D
+0xC8EB 0x5165
+0xC8EC 0x8925
+0xC8ED 0x8F6F
+0xC8EE 0x962E
+0xC8EF 0x854A
+0xC8F0 0x745E
+0xC8F1 0x9510
+0xC8F2 0x95F0
+0xC8F3 0x6DA6
+0xC8F4 0x82E5
+0xC8F5 0x5F31
+0xC8F6 0x6492
+0xC8F7 0x6D12
+0xC8F8 0x8428
+0xC8F9 0x816E
+0xC8FA 0x9CC3
+0xC8FB 0x585E
+0xC8FC 0x8D5B
+0xC8FD 0x4E09
+0xC8FE 0x53C1
+0xC940-0xC944 0x847D
+0xC945-0xC948 0x8483
+0xC949 0x848A
+0xC94A 0x848D
+0xC94B-0xC952 0x848F
+0xC953 0x8498
+0xC954-0xC955 0x849A
+0xC956-0xC959 0x849D
+0xC95A-0xC966 0x84A2
+0xC967-0xC968 0x84B0
+0xC969 0x84B3
+0xC96A-0xC96C 0x84B5
+0xC96D-0xC96E 0x84BB
+0xC96F 0x84BE
+0xC970 0x84C0
+0xC971-0xC972 0x84C2
+0xC973-0xC976 0x84C5
+0xC977-0xC978 0x84CB
+0xC979-0xC97A 0x84CE
+0xC97B 0x84D2
+0xC97C-0xC97D 0x84D4
+0xC97E 0x84D7
+0xC980-0xC984 0x84D8
+0xC985 0x84DE
+0xC986-0xC987 0x84E1
+0xC988 0x84E4
+0xC989-0xC98D 0x84E7
+0xC98E-0xC990 0x84ED
+0xC991-0xC99B 0x84F1
+0xC99C-0xC99D 0x84FD
+0xC99E-0xC9A0 0x8500
+0xC9A1 0x4F1E
+0xC9A2 0x6563
+0xC9A3 0x6851
+0xC9A4 0x55D3
+0xC9A5 0x4E27
+0xC9A6 0x6414
+0xC9A7 0x9A9A
+0xC9A8 0x626B
+0xC9A9 0x5AC2
+0xC9AA 0x745F
+0xC9AB 0x8272
+0xC9AC 0x6DA9
+0xC9AD 0x68EE
+0xC9AE 0x50E7
+0xC9AF 0x838E
+0xC9B0 0x7802
+0xC9B1 0x6740
+0xC9B2 0x5239
+0xC9B3 0x6C99
+0xC9B4 0x7EB1
+0xC9B5 0x50BB
+0xC9B6 0x5565
+0xC9B7 0x715E
+0xC9B8 0x7B5B
+0xC9B9 0x6652
+0xC9BA 0x73CA
+0xC9BB 0x82EB
+0xC9BC 0x6749
+0xC9BD 0x5C71
+0xC9BE 0x5220
+0xC9BF 0x717D
+0xC9C0 0x886B
+0xC9C1 0x95EA
+0xC9C2 0x9655
+0xC9C3 0x64C5
+0xC9C4 0x8D61
+0xC9C5 0x81B3
+0xC9C6 0x5584
+0xC9C7 0x6C55
+0xC9C8 0x6247
+0xC9C9 0x7F2E
+0xC9CA 0x5892
+0xC9CB 0x4F24
+0xC9CC 0x5546
+0xC9CD 0x8D4F
+0xC9CE 0x664C
+0xC9CF 0x4E0A
+0xC9D0 0x5C1A
+0xC9D1 0x88F3
+0xC9D2 0x68A2
+0xC9D3 0x634E
+0xC9D4 0x7A0D
+0xC9D5 0x70E7
+0xC9D6 0x828D
+0xC9D7 0x52FA
+0xC9D8 0x97F6
+0xC9D9 0x5C11
+0xC9DA 0x54E8
+0xC9DB 0x90B5
+0xC9DC 0x7ECD
+0xC9DD 0x5962
+0xC9DE 0x8D4A
+0xC9DF 0x86C7
+0xC9E0-0xC9E1 0x820C
+0xC9E2 0x8D66
+0xC9E3 0x6444
+0xC9E4 0x5C04
+0xC9E5 0x6151
+0xC9E6 0x6D89
+0xC9E7 0x793E
+0xC9E8 0x8BBE
+0xC9E9 0x7837
+0xC9EA 0x7533
+0xC9EB 0x547B
+0xC9EC 0x4F38
+0xC9ED 0x8EAB
+0xC9EE 0x6DF1
+0xC9EF 0x5A20
+0xC9F0 0x7EC5
+0xC9F1 0x795E
+0xC9F2 0x6C88
+0xC9F3 0x5BA1
+0xC9F4 0x5A76
+0xC9F5 0x751A
+0xC9F6 0x80BE
+0xC9F7 0x614E
+0xC9F8 0x6E17
+0xC9F9 0x58F0
+0xC9FA 0x751F
+0xC9FB 0x7525
+0xC9FC 0x7272
+0xC9FD 0x5347
+0xC9FE 0x7EF3
+0xCA40-0xCA48 0x8503
+0xCA49-0xCA4C 0x850D
+0xCA4D 0x8512
+0xCA4E-0xCA50 0x8514
+0xCA51-0xCA52 0x8518
+0xCA53-0xCA56 0x851B
+0xCA57 0x8520
+0xCA58-0xCA60 0x8522
+0xCA61-0xCA6A 0x852D
+0xCA6B-0xCA6F 0x853E
+0xCA70-0xCA73 0x8544
+0xCA74-0xCA7E 0x854B
+0xCA80-0xCA81 0x8557
+0xCA82-0xCA85 0x855A
+0xCA86-0xCA8A 0x855F
+0xCA8B-0xCA8D 0x8565
+0xCA8E-0xCA96 0x8569
+0xCA97 0x8573
+0xCA98-0xCA9B 0x8575
+0xCA9C-0xCA9D 0x857C
+0xCA9E-0xCAA0 0x857F
+0xCAA1 0x7701
+0xCAA2 0x76DB
+0xCAA3 0x5269
+0xCAA4 0x80DC
+0xCAA5 0x5723
+0xCAA6 0x5E08
+0xCAA7 0x5931
+0xCAA8 0x72EE
+0xCAA9 0x65BD
+0xCAAA 0x6E7F
+0xCAAB 0x8BD7
+0xCAAC 0x5C38
+0xCAAD 0x8671
+0xCAAE 0x5341
+0xCAAF 0x77F3
+0xCAB0 0x62FE
+0xCAB1 0x65F6
+0xCAB2 0x4EC0
+0xCAB3 0x98DF
+0xCAB4 0x8680
+0xCAB5 0x5B9E
+0xCAB6 0x8BC6
+0xCAB7 0x53F2
+0xCAB8 0x77E2
+0xCAB9 0x4F7F
+0xCABA 0x5C4E
+0xCABB 0x9A76
+0xCABC 0x59CB
+0xCABD 0x5F0F
+0xCABE 0x793A
+0xCABF 0x58EB
+0xCAC0 0x4E16
+0xCAC1 0x67FF
+0xCAC2 0x4E8B
+0xCAC3 0x62ED
+0xCAC4 0x8A93
+0xCAC5 0x901D
+0xCAC6 0x52BF
+0xCAC7 0x662F
+0xCAC8 0x55DC
+0xCAC9 0x566C
+0xCACA 0x9002
+0xCACB 0x4ED5
+0xCACC 0x4F8D
+0xCACD 0x91CA
+0xCACE 0x9970
+0xCACF 0x6C0F
+0xCAD0 0x5E02
+0xCAD1 0x6043
+0xCAD2 0x5BA4
+0xCAD3 0x89C6
+0xCAD4 0x8BD5
+0xCAD5 0x6536
+0xCAD6 0x624B
+0xCAD7 0x9996
+0xCAD8 0x5B88
+0xCAD9 0x5BFF
+0xCADA 0x6388
+0xCADB 0x552E
+0xCADC 0x53D7
+0xCADD 0x7626
+0xCADE 0x517D
+0xCADF 0x852C
+0xCAE0 0x67A2
+0xCAE1 0x68B3
+0xCAE2 0x6B8A
+0xCAE3 0x6292
+0xCAE4 0x8F93
+0xCAE5 0x53D4
+0xCAE6 0x8212
+0xCAE7 0x6DD1
+0xCAE8 0x758F
+0xCAE9 0x4E66
+0xCAEA 0x8D4E
+0xCAEB 0x5B70
+0xCAEC 0x719F
+0xCAED 0x85AF
+0xCAEE 0x6691
+0xCAEF 0x66D9
+0xCAF0 0x7F72
+0xCAF1 0x8700
+0xCAF2 0x9ECD
+0xCAF3 0x9F20
+0xCAF4 0x5C5E
+0xCAF5 0x672F
+0xCAF6 0x8FF0
+0xCAF7 0x6811
+0xCAF8 0x675F
+0xCAF9 0x620D
+0xCAFA 0x7AD6
+0xCAFB 0x5885
+0xCAFC 0x5EB6
+0xCAFD 0x6570
+0xCAFE 0x6F31
+0xCB40-0xCB41 0x8582
+0xCB42 0x8586
+0xCB43-0xCB49 0x8588
+0xCB4A-0xCB54 0x8590
+0xCB55-0xCB5B 0x859D
+0xCB5C-0xCB5E 0x85A5
+0xCB5F 0x85A9
+0xCB60-0xCB62 0x85AB
+0xCB63-0xCB68 0x85B1
+0xCB69 0x85B8
+0xCB6A-0xCB70 0x85BA
+0xCB71-0xCB77 0x85C2
+0xCB78-0xCB7C 0x85CA
+0xCB7D-0xCB7E 0x85D1
+0xCB80 0x85D4
+0xCB81-0xCB86 0x85D6
+0xCB87-0xCB8D 0x85DD
+0xCB8E-0xCB91 0x85E5
+0xCB92-0xCBA0 0x85EA
+0xCBA1 0x6055
+0xCBA2 0x5237
+0xCBA3 0x800D
+0xCBA4 0x6454
+0xCBA5 0x8870
+0xCBA6 0x7529
+0xCBA7 0x5E05
+0xCBA8 0x6813
+0xCBA9 0x62F4
+0xCBAA 0x971C
+0xCBAB 0x53CC
+0xCBAC 0x723D
+0xCBAD 0x8C01
+0xCBAE 0x6C34
+0xCBAF 0x7761
+0xCBB0 0x7A0E
+0xCBB1 0x542E
+0xCBB2 0x77AC
+0xCBB3 0x987A
+0xCBB4 0x821C
+0xCBB5 0x8BF4
+0xCBB6 0x7855
+0xCBB7 0x6714
+0xCBB8 0x70C1
+0xCBB9 0x65AF
+0xCBBA 0x6495
+0xCBBB 0x5636
+0xCBBC 0x601D
+0xCBBD 0x79C1
+0xCBBE 0x53F8
+0xCBBF 0x4E1D
+0xCBC0 0x6B7B
+0xCBC1 0x8086
+0xCBC2 0x5BFA
+0xCBC3 0x55E3
+0xCBC4 0x56DB
+0xCBC5 0x4F3A
+0xCBC6 0x4F3C
+0xCBC7 0x9972
+0xCBC8 0x5DF3
+0xCBC9 0x677E
+0xCBCA 0x8038
+0xCBCB 0x6002
+0xCBCC 0x9882
+0xCBCD 0x9001
+0xCBCE 0x5B8B
+0xCBCF 0x8BBC
+0xCBD0 0x8BF5
+0xCBD1 0x641C
+0xCBD2 0x8258
+0xCBD3 0x64DE
+0xCBD4 0x55FD
+0xCBD5 0x82CF
+0xCBD6 0x9165
+0xCBD7 0x4FD7
+0xCBD8 0x7D20
+0xCBD9 0x901F
+0xCBDA 0x7C9F
+0xCBDB 0x50F3
+0xCBDC 0x5851
+0xCBDD 0x6EAF
+0xCBDE 0x5BBF
+0xCBDF 0x8BC9
+0xCBE0 0x8083
+0xCBE1 0x9178
+0xCBE2 0x849C
+0xCBE3 0x7B97
+0xCBE4 0x867D
+0xCBE5 0x968B
+0xCBE6 0x968F
+0xCBE7 0x7EE5
+0xCBE8 0x9AD3
+0xCBE9 0x788E
+0xCBEA 0x5C81
+0xCBEB 0x7A57
+0xCBEC 0x9042
+0xCBED 0x96A7
+0xCBEE 0x795F
+0xCBEF 0x5B59
+0xCBF0 0x635F
+0xCBF1 0x7B0B
+0xCBF2 0x84D1
+0xCBF3 0x68AD
+0xCBF4 0x5506
+0xCBF5 0x7F29
+0xCBF6 0x7410
+0xCBF7 0x7D22
+0xCBF8 0x9501
+0xCBF9 0x6240
+0xCBFA 0x584C
+0xCBFB 0x4ED6
+0xCBFC 0x5B83
+0xCBFD 0x5979
+0xCBFE 0x5854
+0xCC40-0xCC41 0x85F9
+0xCC42-0xCC44 0x85FC
+0xCC45-0xCC49 0x8600
+0xCC4A-0xCC54 0x8606
+0xCC55-0xCC58 0x8612
+0xCC59-0xCC68 0x8617
+0xCC69 0x8628
+0xCC6A-0xCC77 0x862A
+0xCC78-0xCC7A 0x8639
+0xCC7B-0xCC7E 0x863D
+0xCC80-0xCC8B 0x8641
+0xCC8C-0xCC8D 0x8652
+0xCC8E-0xCC92 0x8655
+0xCC93-0xCC95 0x865B
+0xCC96-0xCC98 0x865F
+0xCC99-0xCCA0 0x8663
+0xCCA1 0x736D
+0xCCA2 0x631E
+0xCCA3 0x8E4B
+0xCCA4 0x8E0F
+0xCCA5 0x80CE
+0xCCA6 0x82D4
+0xCCA7 0x62AC
+0xCCA8 0x53F0
+0xCCA9 0x6CF0
+0xCCAA 0x915E
+0xCCAB 0x592A
+0xCCAC 0x6001
+0xCCAD 0x6C70
+0xCCAE 0x574D
+0xCCAF 0x644A
+0xCCB0 0x8D2A
+0xCCB1 0x762B
+0xCCB2 0x6EE9
+0xCCB3 0x575B
+0xCCB4 0x6A80
+0xCCB5 0x75F0
+0xCCB6 0x6F6D
+0xCCB7 0x8C2D
+0xCCB8 0x8C08
+0xCCB9 0x5766
+0xCCBA 0x6BEF
+0xCCBB 0x8892
+0xCCBC 0x78B3
+0xCCBD 0x63A2
+0xCCBE 0x53F9
+0xCCBF 0x70AD
+0xCCC0 0x6C64
+0xCCC1 0x5858
+0xCCC2 0x642A
+0xCCC3 0x5802
+0xCCC4 0x68E0
+0xCCC5 0x819B
+0xCCC6 0x5510
+0xCCC7 0x7CD6
+0xCCC8 0x5018
+0xCCC9 0x8EBA
+0xCCCA 0x6DCC
+0xCCCB 0x8D9F
+0xCCCC 0x70EB
+0xCCCD 0x638F
+0xCCCE 0x6D9B
+0xCCCF 0x6ED4
+0xCCD0 0x7EE6
+0xCCD1 0x8404
+0xCCD2 0x6843
+0xCCD3 0x9003
+0xCCD4 0x6DD8
+0xCCD5 0x9676
+0xCCD6 0x8BA8
+0xCCD7 0x5957
+0xCCD8 0x7279
+0xCCD9 0x85E4
+0xCCDA 0x817E
+0xCCDB 0x75BC
+0xCCDC 0x8A8A
+0xCCDD 0x68AF
+0xCCDE 0x5254
+0xCCDF 0x8E22
+0xCCE0 0x9511
+0xCCE1 0x63D0
+0xCCE2 0x9898
+0xCCE3 0x8E44
+0xCCE4 0x557C
+0xCCE5 0x4F53
+0xCCE6 0x66FF
+0xCCE7 0x568F
+0xCCE8 0x60D5
+0xCCE9 0x6D95
+0xCCEA 0x5243
+0xCCEB 0x5C49
+0xCCEC 0x5929
+0xCCED 0x6DFB
+0xCCEE 0x586B
+0xCCEF 0x7530
+0xCCF0 0x751C
+0xCCF1 0x606C
+0xCCF2 0x8214
+0xCCF3 0x8146
+0xCCF4 0x6311
+0xCCF5 0x6761
+0xCCF6 0x8FE2
+0xCCF7 0x773A
+0xCCF8 0x8DF3
+0xCCF9 0x8D34
+0xCCFA 0x94C1
+0xCCFB 0x5E16
+0xCCFC 0x5385
+0xCCFD 0x542C
+0xCCFE 0x70C3
+0xCD40 0x866D
+0xCD41-0xCD42 0x866F
+0xCD43-0xCD49 0x8672
+0xCD4A-0xCD50 0x8683
+0xCD51-0xCD55 0x868E
+0xCD56 0x8694
+0xCD57-0xCD5C 0x8696
+0xCD5D-0xCD61 0x869E
+0xCD62-0xCD63 0x86A5
+0xCD64 0x86AB
+0xCD65-0xCD66 0x86AD
+0xCD67-0xCD68 0x86B2
+0xCD69-0xCD6B 0x86B7
+0xCD6C-0xCD70 0x86BB
+0xCD71-0xCD73 0x86C1
+0xCD74 0x86C5
+0xCD75 0x86C8
+0xCD76-0xCD77 0x86CC
+0xCD78-0xCD79 0x86D2
+0xCD7A-0xCD7C 0x86D5
+0xCD7D 0x86DA
+0xCD7E 0x86DC
+0xCD80 0x86DD
+0xCD81-0xCD84 0x86E0
+0xCD85-0xCD88 0x86E5
+0xCD89-0xCD8B 0x86EA
+0xCD8C 0x86EF
+0xCD8D-0xCD8F 0x86F5
+0xCD90-0xCD93 0x86FA
+0xCD94 0x86FF
+0xCD95 0x8701
+0xCD96-0xCD98 0x8704
+0xCD99-0xCD9A 0x870B
+0xCD9B-0xCD9E 0x870E
+0xCD9F 0x8714
+0xCDA0 0x8716
+0xCDA1 0x6C40
+0xCDA2 0x5EF7
+0xCDA3 0x505C
+0xCDA4 0x4EAD
+0xCDA5 0x5EAD
+0xCDA6 0x633A
+0xCDA7 0x8247
+0xCDA8 0x901A
+0xCDA9 0x6850
+0xCDAA 0x916E
+0xCDAB 0x77B3
+0xCDAC 0x540C
+0xCDAD 0x94DC
+0xCDAE 0x5F64
+0xCDAF 0x7AE5
+0xCDB0 0x6876
+0xCDB1 0x6345
+0xCDB2 0x7B52
+0xCDB3 0x7EDF
+0xCDB4 0x75DB
+0xCDB5 0x5077
+0xCDB6 0x6295
+0xCDB7 0x5934
+0xCDB8 0x900F
+0xCDB9 0x51F8
+0xCDBA 0x79C3
+0xCDBB 0x7A81
+0xCDBC 0x56FE
+0xCDBD 0x5F92
+0xCDBE 0x9014
+0xCDBF 0x6D82
+0xCDC0 0x5C60
+0xCDC1 0x571F
+0xCDC2 0x5410
+0xCDC3 0x5154
+0xCDC4 0x6E4D
+0xCDC5 0x56E2
+0xCDC6 0x63A8
+0xCDC7 0x9893
+0xCDC8 0x817F
+0xCDC9 0x8715
+0xCDCA 0x892A
+0xCDCB 0x9000
+0xCDCC 0x541E
+0xCDCD 0x5C6F
+0xCDCE 0x81C0
+0xCDCF 0x62D6
+0xCDD0 0x6258
+0xCDD1 0x8131
+0xCDD2 0x9E35
+0xCDD3 0x9640
+0xCDD4 0x9A6E
+0xCDD5 0x9A7C
+0xCDD6 0x692D
+0xCDD7 0x59A5
+0xCDD8 0x62D3
+0xCDD9 0x553E
+0xCDDA 0x6316
+0xCDDB 0x54C7
+0xCDDC 0x86D9
+0xCDDD 0x6D3C
+0xCDDE 0x5A03
+0xCDDF 0x74E6
+0xCDE0 0x889C
+0xCDE1 0x6B6A
+0xCDE2 0x5916
+0xCDE3 0x8C4C
+0xCDE4 0x5F2F
+0xCDE5 0x6E7E
+0xCDE6 0x73A9
+0xCDE7 0x987D
+0xCDE8 0x4E38
+0xCDE9 0x70F7
+0xCDEA 0x5B8C
+0xCDEB 0x7897
+0xCDEC 0x633D
+0xCDED 0x665A
+0xCDEE 0x7696
+0xCDEF 0x60CB
+0xCDF0 0x5B9B
+0xCDF1 0x5A49
+0xCDF2 0x4E07
+0xCDF3 0x8155
+0xCDF4 0x6C6A
+0xCDF5 0x738B
+0xCDF6 0x4EA1
+0xCDF7 0x6789
+0xCDF8 0x7F51
+0xCDF9 0x5F80
+0xCDFA 0x65FA
+0xCDFB 0x671B
+0xCDFC 0x5FD8
+0xCDFD 0x5984
+0xCDFE 0x5A01
+0xCE40 0x8719
+0xCE41 0x871B
+0xCE42 0x871D
+0xCE43-0xCE44 0x871F
+0xCE45 0x8724
+0xCE46-0xCE48 0x8726
+0xCE49-0xCE4C 0x872A
+0xCE4D-0xCE4E 0x872F
+0xCE4F-0xCE50 0x8732
+0xCE51-0xCE52 0x8735
+0xCE53-0xCE55 0x8738
+0xCE56-0xCE57 0x873C
+0xCE58-0xCE5E 0x8740
+0xCE5F-0xCE60 0x874A
+0xCE61 0x874D
+0xCE62-0xCE65 0x874F
+0xCE66-0xCE68 0x8754
+0xCE69 0x8758
+0xCE6A-0xCE6F 0x875A
+0xCE70-0xCE71 0x8761
+0xCE72-0xCE79 0x8766
+0xCE7A 0x876F
+0xCE7B-0xCE7D 0x8771
+0xCE7E 0x8775
+0xCE80-0xCE83 0x8777
+0xCE84-0xCE86 0x877F
+0xCE87 0x8784
+0xCE88-0xCE89 0x8786
+0xCE8A-0xCE8B 0x8789
+0xCE8C 0x878C
+0xCE8D-0xCE91 0x878E
+0xCE92-0xCE94 0x8794
+0xCE95-0xCE9B 0x8798
+0xCE9C-0xCEA0 0x87A0
+0xCEA1 0x5DCD
+0xCEA2 0x5FAE
+0xCEA3 0x5371
+0xCEA4 0x97E6
+0xCEA5 0x8FDD
+0xCEA6 0x6845
+0xCEA7 0x56F4
+0xCEA8 0x552F
+0xCEA9 0x60DF
+0xCEAA 0x4E3A
+0xCEAB 0x6F4D
+0xCEAC 0x7EF4
+0xCEAD 0x82C7
+0xCEAE 0x840E
+0xCEAF 0x59D4
+0xCEB0 0x4F1F
+0xCEB1 0x4F2A
+0xCEB2 0x5C3E
+0xCEB3 0x7EAC
+0xCEB4 0x672A
+0xCEB5 0x851A
+0xCEB6 0x5473
+0xCEB7 0x754F
+0xCEB8 0x80C3
+0xCEB9 0x5582
+0xCEBA 0x9B4F
+0xCEBB 0x4F4D
+0xCEBC 0x6E2D
+0xCEBD 0x8C13
+0xCEBE 0x5C09
+0xCEBF 0x6170
+0xCEC0 0x536B
+0xCEC1 0x761F
+0xCEC2 0x6E29
+0xCEC3 0x868A
+0xCEC4 0x6587
+0xCEC5 0x95FB
+0xCEC6 0x7EB9
+0xCEC7 0x543B
+0xCEC8 0x7A33
+0xCEC9 0x7D0A
+0xCECA 0x95EE
+0xCECB 0x55E1
+0xCECC 0x7FC1
+0xCECD 0x74EE
+0xCECE 0x631D
+0xCECF 0x8717
+0xCED0 0x6DA1
+0xCED1 0x7A9D
+0xCED2 0x6211
+0xCED3 0x65A1
+0xCED4 0x5367
+0xCED5 0x63E1
+0xCED6 0x6C83
+0xCED7 0x5DEB
+0xCED8 0x545C
+0xCED9 0x94A8
+0xCEDA 0x4E4C
+0xCEDB 0x6C61
+0xCEDC 0x8BEC
+0xCEDD 0x5C4B
+0xCEDE 0x65E0
+0xCEDF 0x829C
+0xCEE0 0x68A7
+0xCEE1 0x543E
+0xCEE2 0x5434
+0xCEE3 0x6BCB
+0xCEE4 0x6B66
+0xCEE5 0x4E94
+0xCEE6 0x6342
+0xCEE7 0x5348
+0xCEE8 0x821E
+0xCEE9 0x4F0D
+0xCEEA 0x4FAE
+0xCEEB 0x575E
+0xCEEC 0x620A
+0xCEED 0x96FE
+0xCEEE 0x6664
+0xCEEF 0x7269
+0xCEF0 0x52FF
+0xCEF1 0x52A1
+0xCEF2 0x609F
+0xCEF3 0x8BEF
+0xCEF4 0x6614
+0xCEF5 0x7199
+0xCEF6 0x6790
+0xCEF7 0x897F
+0xCEF8 0x7852
+0xCEF9 0x77FD
+0xCEFA 0x6670
+0xCEFB 0x563B
+0xCEFC 0x5438
+0xCEFD 0x9521
+0xCEFE 0x727A
+0xCF40-0xCF42 0x87A5
+0xCF43-0xCF44 0x87A9
+0xCF45 0x87AE
+0xCF46-0xCF48 0x87B0
+0xCF49 0x87B4
+0xCF4A-0xCF4D 0x87B6
+0xCF4E-0xCF4F 0x87BB
+0xCF50-0xCF51 0x87BE
+0xCF52-0xCF56 0x87C1
+0xCF57-0xCF59 0x87C7
+0xCF5A-0xCF5E 0x87CC
+0xCF5F-0xCF65 0x87D4
+0xCF66-0xCF69 0x87DC
+0xCF6A-0xCF6D 0x87E1
+0xCF6E-0xCF71 0x87E6
+0xCF72-0xCF74 0x87EB
+0xCF75-0xCF7E 0x87EF
+0xCF80-0xCF83 0x87FA
+0xCF84-0xCF87 0x87FF
+0xCF88-0xCF8D 0x8804
+0xCF8E-0xCF95 0x880B
+0xCF96 0x8814
+0xCF97-0xCF9A 0x8817
+0xCF9B-0xCF9F 0x881C
+0xCFA0 0x8823
+0xCFA1 0x7A00
+0xCFA2 0x606F
+0xCFA3 0x5E0C
+0xCFA4 0x6089
+0xCFA5 0x819D
+0xCFA6 0x5915
+0xCFA7 0x60DC
+0xCFA8 0x7184
+0xCFA9 0x70EF
+0xCFAA 0x6EAA
+0xCFAB 0x6C50
+0xCFAC 0x7280
+0xCFAD 0x6A84
+0xCFAE 0x88AD
+0xCFAF 0x5E2D
+0xCFB0 0x4E60
+0xCFB1 0x5AB3
+0xCFB2 0x559C
+0xCFB3 0x94E3
+0xCFB4 0x6D17
+0xCFB5 0x7CFB
+0xCFB6 0x9699
+0xCFB7 0x620F
+0xCFB8 0x7EC6
+0xCFB9 0x778E
+0xCFBA 0x867E
+0xCFBB 0x5323
+0xCFBC 0x971E
+0xCFBD 0x8F96
+0xCFBE 0x6687
+0xCFBF 0x5CE1
+0xCFC0 0x4FA0
+0xCFC1 0x72ED
+0xCFC2 0x4E0B
+0xCFC3 0x53A6
+0xCFC4 0x590F
+0xCFC5 0x5413
+0xCFC6 0x6380
+0xCFC7 0x9528
+0xCFC8 0x5148
+0xCFC9 0x4ED9
+0xCFCA 0x9C9C
+0xCFCB 0x7EA4
+0xCFCC 0x54B8
+0xCFCD 0x8D24
+0xCFCE 0x8854
+0xCFCF 0x8237
+0xCFD0 0x95F2
+0xCFD1 0x6D8E
+0xCFD2 0x5F26
+0xCFD3 0x5ACC
+0xCFD4 0x663E
+0xCFD5 0x9669
+0xCFD6 0x73B0
+0xCFD7 0x732E
+0xCFD8 0x53BF
+0xCFD9 0x817A
+0xCFDA 0x9985
+0xCFDB 0x7FA1
+0xCFDC 0x5BAA
+0xCFDD 0x9677
+0xCFDE 0x9650
+0xCFDF 0x7EBF
+0xCFE0 0x76F8
+0xCFE1 0x53A2
+0xCFE2 0x9576
+0xCFE3 0x9999
+0xCFE4 0x7BB1
+0xCFE5 0x8944
+0xCFE6 0x6E58
+0xCFE7 0x4E61
+0xCFE8 0x7FD4
+0xCFE9 0x7965
+0xCFEA 0x8BE6
+0xCFEB 0x60F3
+0xCFEC 0x54CD
+0xCFED 0x4EAB
+0xCFEE 0x9879
+0xCFEF 0x5DF7
+0xCFF0 0x6A61
+0xCFF1 0x50CF
+0xCFF2 0x5411
+0xCFF3 0x8C61
+0xCFF4 0x8427
+0xCFF5 0x785D
+0xCFF6 0x9704
+0xCFF7 0x524A
+0xCFF8 0x54EE
+0xCFF9 0x56A3
+0xCFFA 0x9500
+0xCFFB 0x6D88
+0xCFFC 0x5BB5
+0xCFFD 0x6DC6
+0xCFFE 0x6653
+0xD040-0xD04D 0x8824
+0xD04E-0xD053 0x8833
+0xD054-0xD055 0x883A
+0xD056-0xD058 0x883D
+0xD059-0xD05B 0x8841
+0xD05C-0xD061 0x8846
+0xD062-0xD067 0x884E
+0xD068-0xD069 0x8855
+0xD06A 0x8858
+0xD06B-0xD071 0x885A
+0xD072-0xD073 0x8866
+0xD074 0x886A
+0xD075 0x886D
+0xD076 0x886F
+0xD077 0x8871
+0xD078-0xD07B 0x8873
+0xD07C-0xD07E 0x8878
+0xD080-0xD081 0x887B
+0xD082 0x8880
+0xD083 0x8883
+0xD084-0xD085 0x8886
+0xD086-0xD087 0x8889
+0xD088 0x888C
+0xD089-0xD08C 0x888E
+0xD08D-0xD08F 0x8893
+0xD090-0xD094 0x8897
+0xD095-0xD099 0x889D
+0xD09A 0x88A3
+0xD09B-0xD0A0 0x88A5
+0xD0A1 0x5C0F
+0xD0A2 0x5B5D
+0xD0A3 0x6821
+0xD0A4 0x8096
+0xD0A5 0x5578
+0xD0A6 0x7B11
+0xD0A7 0x6548
+0xD0A8 0x6954
+0xD0A9 0x4E9B
+0xD0AA 0x6B47
+0xD0AB 0x874E
+0xD0AC 0x978B
+0xD0AD 0x534F
+0xD0AE 0x631F
+0xD0AF 0x643A
+0xD0B0 0x90AA
+0xD0B1 0x659C
+0xD0B2 0x80C1
+0xD0B3 0x8C10
+0xD0B4 0x5199
+0xD0B5 0x68B0
+0xD0B6 0x5378
+0xD0B7 0x87F9
+0xD0B8 0x61C8
+0xD0B9 0x6CC4
+0xD0BA 0x6CFB
+0xD0BB 0x8C22
+0xD0BC 0x5C51
+0xD0BD 0x85AA
+0xD0BE 0x82AF
+0xD0BF 0x950C
+0xD0C0 0x6B23
+0xD0C1 0x8F9B
+0xD0C2 0x65B0
+0xD0C3 0x5FFB
+0xD0C4 0x5FC3
+0xD0C5 0x4FE1
+0xD0C6 0x8845
+0xD0C7 0x661F
+0xD0C8 0x8165
+0xD0C9 0x7329
+0xD0CA 0x60FA
+0xD0CB 0x5174
+0xD0CC 0x5211
+0xD0CD 0x578B
+0xD0CE 0x5F62
+0xD0CF 0x90A2
+0xD0D0 0x884C
+0xD0D1 0x9192
+0xD0D2 0x5E78
+0xD0D3 0x674F
+0xD0D4 0x6027
+0xD0D5 0x59D3
+0xD0D6 0x5144
+0xD0D7 0x51F6
+0xD0D8 0x80F8
+0xD0D9 0x5308
+0xD0DA 0x6C79
+0xD0DB 0x96C4
+0xD0DC 0x718A
+0xD0DD 0x4F11
+0xD0DE 0x4FEE
+0xD0DF 0x7F9E
+0xD0E0 0x673D
+0xD0E1 0x55C5
+0xD0E2 0x9508
+0xD0E3 0x79C0
+0xD0E4 0x8896
+0xD0E5 0x7EE3
+0xD0E6 0x589F
+0xD0E7 0x620C
+0xD0E8 0x9700
+0xD0E9 0x865A
+0xD0EA 0x5618
+0xD0EB 0x987B
+0xD0EC 0x5F90
+0xD0ED 0x8BB8
+0xD0EE 0x84C4
+0xD0EF 0x9157
+0xD0F0 0x53D9
+0xD0F1 0x65ED
+0xD0F2 0x5E8F
+0xD0F3 0x755C
+0xD0F4 0x6064
+0xD0F5 0x7D6E
+0xD0F6 0x5A7F
+0xD0F7 0x7EEA
+0xD0F8 0x7EED
+0xD0F9 0x8F69
+0xD0FA 0x55A7
+0xD0FB 0x5BA3
+0xD0FC 0x60AC
+0xD0FD 0x65CB
+0xD0FE 0x7384
+0xD140 0x88AC
+0xD141-0xD143 0x88AE
+0xD144-0xD148 0x88B2
+0xD149-0xD14C 0x88B8
+0xD14D-0xD150 0x88BD
+0xD151-0xD152 0x88C3
+0xD153-0xD154 0x88C7
+0xD155-0xD158 0x88CA
+0xD159-0xD15B 0x88CF
+0xD15C 0x88D3
+0xD15D-0xD15E 0x88D6
+0xD15F-0xD163 0x88DA
+0xD164-0xD165 0x88E0
+0xD166-0xD167 0x88E6
+0xD168-0xD16E 0x88E9
+0xD16F 0x88F2
+0xD170-0xD172 0x88F5
+0xD173-0xD174 0x88FA
+0xD175 0x88FD
+0xD176-0xD178 0x88FF
+0xD179-0xD17E 0x8903
+0xD180 0x8909
+0xD181-0xD185 0x890B
+0xD186 0x8911
+0xD187-0xD18B 0x8914
+0xD18C-0xD190 0x891C
+0xD191-0xD193 0x8922
+0xD194-0xD197 0x8926
+0xD198-0xD19B 0x892C
+0xD19C-0xD19E 0x8931
+0xD19F 0x8935
+0xD1A0 0x8937
+0xD1A1 0x9009
+0xD1A2 0x7663
+0xD1A3 0x7729
+0xD1A4 0x7EDA
+0xD1A5 0x9774
+0xD1A6 0x859B
+0xD1A7 0x5B66
+0xD1A8 0x7A74
+0xD1A9 0x96EA
+0xD1AA 0x8840
+0xD1AB 0x52CB
+0xD1AC 0x718F
+0xD1AD 0x5FAA
+0xD1AE 0x65EC
+0xD1AF 0x8BE2
+0xD1B0 0x5BFB
+0xD1B1 0x9A6F
+0xD1B2 0x5DE1
+0xD1B3 0x6B89
+0xD1B4 0x6C5B
+0xD1B5 0x8BAD
+0xD1B6 0x8BAF
+0xD1B7 0x900A
+0xD1B8 0x8FC5
+0xD1B9 0x538B
+0xD1BA 0x62BC
+0xD1BB 0x9E26
+0xD1BC 0x9E2D
+0xD1BD 0x5440
+0xD1BE 0x4E2B
+0xD1BF 0x82BD
+0xD1C0 0x7259
+0xD1C1 0x869C
+0xD1C2 0x5D16
+0xD1C3 0x8859
+0xD1C4 0x6DAF
+0xD1C5 0x96C5
+0xD1C6 0x54D1
+0xD1C7 0x4E9A
+0xD1C8 0x8BB6
+0xD1C9 0x7109
+0xD1CA 0x54BD
+0xD1CB 0x9609
+0xD1CC 0x70DF
+0xD1CD 0x6DF9
+0xD1CE 0x76D0
+0xD1CF 0x4E25
+0xD1D0 0x7814
+0xD1D1 0x8712
+0xD1D2 0x5CA9
+0xD1D3 0x5EF6
+0xD1D4 0x8A00
+0xD1D5 0x989C
+0xD1D6 0x960E
+0xD1D7 0x708E
+0xD1D8 0x6CBF
+0xD1D9 0x5944
+0xD1DA 0x63A9
+0xD1DB 0x773C
+0xD1DC 0x884D
+0xD1DD 0x6F14
+0xD1DE 0x8273
+0xD1DF 0x5830
+0xD1E0 0x71D5
+0xD1E1 0x538C
+0xD1E2 0x781A
+0xD1E3 0x96C1
+0xD1E4 0x5501
+0xD1E5 0x5F66
+0xD1E6 0x7130
+0xD1E7 0x5BB4
+0xD1E8 0x8C1A
+0xD1E9 0x9A8C
+0xD1EA 0x6B83
+0xD1EB 0x592E
+0xD1EC 0x9E2F
+0xD1ED 0x79E7
+0xD1EE 0x6768
+0xD1EF 0x626C
+0xD1F0 0x4F6F
+0xD1F1 0x75A1
+0xD1F2 0x7F8A
+0xD1F3 0x6D0B
+0xD1F4 0x9633
+0xD1F5 0x6C27
+0xD1F6 0x4EF0
+0xD1F7 0x75D2
+0xD1F8 0x517B
+0xD1F9 0x6837
+0xD1FA 0x6F3E
+0xD1FB 0x9080
+0xD1FC 0x8170
+0xD1FD 0x5996
+0xD1FE 0x7476
+0xD240-0xD248 0x8938
+0xD249-0xD24A 0x8942
+0xD24B-0xD263 0x8945
+0xD264-0xD269 0x8960
+0xD26A-0xD27D 0x8967
+0xD27E 0x897C
+0xD280-0xD281 0x897D
+0xD282 0x8980
+0xD283 0x8982
+0xD284-0xD285 0x8984
+0xD286-0xD2A0 0x8987
+0xD2A1 0x6447
+0xD2A2 0x5C27
+0xD2A3 0x9065
+0xD2A4 0x7A91
+0xD2A5 0x8C23
+0xD2A6 0x59DA
+0xD2A7 0x54AC
+0xD2A8 0x8200
+0xD2A9 0x836F
+0xD2AA 0x8981
+0xD2AB 0x8000
+0xD2AC 0x6930
+0xD2AD 0x564E
+0xD2AE 0x8036
+0xD2AF 0x7237
+0xD2B0 0x91CE
+0xD2B1 0x51B6
+0xD2B2 0x4E5F
+0xD2B3 0x9875
+0xD2B4 0x6396
+0xD2B5 0x4E1A
+0xD2B6 0x53F6
+0xD2B7 0x66F3
+0xD2B8 0x814B
+0xD2B9 0x591C
+0xD2BA 0x6DB2
+0xD2BB 0x4E00
+0xD2BC 0x58F9
+0xD2BD 0x533B
+0xD2BE 0x63D6
+0xD2BF 0x94F1
+0xD2C0 0x4F9D
+0xD2C1 0x4F0A
+0xD2C2 0x8863
+0xD2C3 0x9890
+0xD2C4 0x5937
+0xD2C5 0x9057
+0xD2C6 0x79FB
+0xD2C7 0x4EEA
+0xD2C8 0x80F0
+0xD2C9 0x7591
+0xD2CA 0x6C82
+0xD2CB 0x5B9C
+0xD2CC 0x59E8
+0xD2CD 0x5F5D
+0xD2CE 0x6905
+0xD2CF 0x8681
+0xD2D0 0x501A
+0xD2D1 0x5DF2
+0xD2D2 0x4E59
+0xD2D3 0x77E3
+0xD2D4 0x4EE5
+0xD2D5 0x827A
+0xD2D6 0x6291
+0xD2D7 0x6613
+0xD2D8 0x9091
+0xD2D9 0x5C79
+0xD2DA 0x4EBF
+0xD2DB 0x5F79
+0xD2DC 0x81C6
+0xD2DD 0x9038
+0xD2DE 0x8084
+0xD2DF 0x75AB
+0xD2E0 0x4EA6
+0xD2E1 0x88D4
+0xD2E2 0x610F
+0xD2E3 0x6BC5
+0xD2E4 0x5FC6
+0xD2E5 0x4E49
+0xD2E6 0x76CA
+0xD2E7 0x6EA2
+0xD2E8 0x8BE3
+0xD2E9 0x8BAE
+0xD2EA 0x8C0A
+0xD2EB 0x8BD1
+0xD2EC 0x5F02
+0xD2ED 0x7FFC
+0xD2EE 0x7FCC
+0xD2EF 0x7ECE
+0xD2F0 0x8335
+0xD2F1 0x836B
+0xD2F2 0x56E0
+0xD2F3 0x6BB7
+0xD2F4 0x97F3
+0xD2F5 0x9634
+0xD2F6 0x59FB
+0xD2F7 0x541F
+0xD2F8 0x94F6
+0xD2F9 0x6DEB
+0xD2FA 0x5BC5
+0xD2FB 0x996E
+0xD2FC 0x5C39
+0xD2FD 0x5F15
+0xD2FE 0x9690
+0xD340-0xD35E 0x89A2
+0xD35F 0x89C3
+0xD360 0x89CD
+0xD361-0xD363 0x89D3
+0xD364-0xD366 0x89D7
+0xD367 0x89DB
+0xD368 0x89DD
+0xD369-0xD36C 0x89DF
+0xD36D 0x89E4
+0xD36E-0xD371 0x89E7
+0xD372-0xD374 0x89EC
+0xD375-0xD377 0x89F0
+0xD378-0xD37E 0x89F4
+0xD380-0xD384 0x89FB
+0xD385-0xD38A 0x8A01
+0xD38B-0xD3A0 0x8A08
+0xD3A1 0x5370
+0xD3A2 0x82F1
+0xD3A3 0x6A31
+0xD3A4 0x5A74
+0xD3A5 0x9E70
+0xD3A6 0x5E94
+0xD3A7 0x7F28
+0xD3A8 0x83B9
+0xD3A9-0xD3AA 0x8424
+0xD3AB 0x8367
+0xD3AC 0x8747
+0xD3AD 0x8FCE
+0xD3AE 0x8D62
+0xD3AF 0x76C8
+0xD3B0 0x5F71
+0xD3B1 0x9896
+0xD3B2 0x786C
+0xD3B3 0x6620
+0xD3B4 0x54DF
+0xD3B5 0x62E5
+0xD3B6 0x4F63
+0xD3B7 0x81C3
+0xD3B8 0x75C8
+0xD3B9 0x5EB8
+0xD3BA 0x96CD
+0xD3BB 0x8E0A
+0xD3BC 0x86F9
+0xD3BD 0x548F
+0xD3BE 0x6CF3
+0xD3BF 0x6D8C
+0xD3C0 0x6C38
+0xD3C1 0x607F
+0xD3C2 0x52C7
+0xD3C3 0x7528
+0xD3C4 0x5E7D
+0xD3C5 0x4F18
+0xD3C6 0x60A0
+0xD3C7 0x5FE7
+0xD3C8 0x5C24
+0xD3C9 0x7531
+0xD3CA 0x90AE
+0xD3CB 0x94C0
+0xD3CC 0x72B9
+0xD3CD 0x6CB9
+0xD3CE 0x6E38
+0xD3CF 0x9149
+0xD3D0 0x6709
+0xD3D1 0x53CB
+0xD3D2 0x53F3
+0xD3D3 0x4F51
+0xD3D4 0x91C9
+0xD3D5 0x8BF1
+0xD3D6 0x53C8
+0xD3D7 0x5E7C
+0xD3D8 0x8FC2
+0xD3D9 0x6DE4
+0xD3DA 0x4E8E
+0xD3DB 0x76C2
+0xD3DC 0x6986
+0xD3DD 0x865E
+0xD3DE 0x611A
+0xD3DF 0x8206
+0xD3E0 0x4F59
+0xD3E1 0x4FDE
+0xD3E2 0x903E
+0xD3E3 0x9C7C
+0xD3E4 0x6109
+0xD3E5 0x6E1D
+0xD3E6 0x6E14
+0xD3E7 0x9685
+0xD3E8 0x4E88
+0xD3E9 0x5A31
+0xD3EA 0x96E8
+0xD3EB 0x4E0E
+0xD3EC 0x5C7F
+0xD3ED 0x79B9
+0xD3EE 0x5B87
+0xD3EF 0x8BED
+0xD3F0 0x7FBD
+0xD3F1 0x7389
+0xD3F2 0x57DF
+0xD3F3 0x828B
+0xD3F4 0x90C1
+0xD3F5 0x5401
+0xD3F6 0x9047
+0xD3F7 0x55BB
+0xD3F8 0x5CEA
+0xD3F9 0x5FA1
+0xD3FA 0x6108
+0xD3FB 0x6B32
+0xD3FC 0x72F1
+0xD3FD 0x80B2
+0xD3FE 0x8A89
+0xD440-0xD45F 0x8A1E
+0xD460-0xD468 0x8A3F
+0xD469-0xD47E 0x8A49
+0xD480-0xD499 0x8A5F
+0xD49A-0xD4A0 0x8A7A
+0xD4A1 0x6D74
+0xD4A2 0x5BD3
+0xD4A3 0x88D5
+0xD4A4 0x9884
+0xD4A5 0x8C6B
+0xD4A6 0x9A6D
+0xD4A7 0x9E33
+0xD4A8 0x6E0A
+0xD4A9 0x51A4
+0xD4AA 0x5143
+0xD4AB 0x57A3
+0xD4AC 0x8881
+0xD4AD 0x539F
+0xD4AE 0x63F4
+0xD4AF 0x8F95
+0xD4B0 0x56ED
+0xD4B1 0x5458
+0xD4B2 0x5706
+0xD4B3 0x733F
+0xD4B4 0x6E90
+0xD4B5 0x7F18
+0xD4B6 0x8FDC
+0xD4B7 0x82D1
+0xD4B8 0x613F
+0xD4B9 0x6028
+0xD4BA 0x9662
+0xD4BB 0x66F0
+0xD4BC 0x7EA6
+0xD4BD 0x8D8A
+0xD4BE 0x8DC3
+0xD4BF 0x94A5
+0xD4C0 0x5CB3
+0xD4C1 0x7CA4
+0xD4C2 0x6708
+0xD4C3 0x60A6
+0xD4C4 0x9605
+0xD4C5 0x8018
+0xD4C6 0x4E91
+0xD4C7 0x90E7
+0xD4C8 0x5300
+0xD4C9 0x9668
+0xD4CA 0x5141
+0xD4CB 0x8FD0
+0xD4CC 0x8574
+0xD4CD 0x915D
+0xD4CE 0x6655
+0xD4CF 0x97F5
+0xD4D0 0x5B55
+0xD4D1 0x531D
+0xD4D2 0x7838
+0xD4D3 0x6742
+0xD4D4 0x683D
+0xD4D5 0x54C9
+0xD4D6 0x707E
+0xD4D7 0x5BB0
+0xD4D8 0x8F7D
+0xD4D9 0x518D
+0xD4DA 0x5728
+0xD4DB 0x54B1
+0xD4DC 0x6512
+0xD4DD 0x6682
+0xD4DE 0x8D5E
+0xD4DF 0x8D43
+0xD4E0 0x810F
+0xD4E1 0x846C
+0xD4E2 0x906D
+0xD4E3 0x7CDF
+0xD4E4 0x51FF
+0xD4E5 0x85FB
+0xD4E6 0x67A3
+0xD4E7 0x65E9
+0xD4E8 0x6FA1
+0xD4E9 0x86A4
+0xD4EA 0x8E81
+0xD4EB 0x566A
+0xD4EC 0x9020
+0xD4ED 0x7682
+0xD4EE 0x7076
+0xD4EF 0x71E5
+0xD4F0 0x8D23
+0xD4F1 0x62E9
+0xD4F2 0x5219
+0xD4F3 0x6CFD
+0xD4F4 0x8D3C
+0xD4F5 0x600E
+0xD4F6 0x589E
+0xD4F7 0x618E
+0xD4F8 0x66FE
+0xD4F9 0x8D60
+0xD4FA 0x624E
+0xD4FB 0x55B3
+0xD4FC 0x6E23
+0xD4FD 0x672D
+0xD4FE 0x8F67
+0xD540-0xD547 0x8A81
+0xD548-0xD54F 0x8A8B
+0xD550-0xD57E 0x8A94
+0xD580-0xD5A0 0x8AC3
+0xD5A1 0x94E1
+0xD5A2 0x95F8
+0xD5A3 0x7728
+0xD5A4 0x6805
+0xD5A5 0x69A8
+0xD5A6 0x548B
+0xD5A7 0x4E4D
+0xD5A8 0x70B8
+0xD5A9 0x8BC8
+0xD5AA 0x6458
+0xD5AB 0x658B
+0xD5AC 0x5B85
+0xD5AD 0x7A84
+0xD5AE 0x503A
+0xD5AF 0x5BE8
+0xD5B0 0x77BB
+0xD5B1 0x6BE1
+0xD5B2 0x8A79
+0xD5B3 0x7C98
+0xD5B4 0x6CBE
+0xD5B5 0x76CF
+0xD5B6 0x65A9
+0xD5B7 0x8F97
+0xD5B8 0x5D2D
+0xD5B9 0x5C55
+0xD5BA 0x8638
+0xD5BB 0x6808
+0xD5BC 0x5360
+0xD5BD 0x6218
+0xD5BE 0x7AD9
+0xD5BF 0x6E5B
+0xD5C0 0x7EFD
+0xD5C1 0x6A1F
+0xD5C2 0x7AE0
+0xD5C3 0x5F70
+0xD5C4 0x6F33
+0xD5C5 0x5F20
+0xD5C6 0x638C
+0xD5C7 0x6DA8
+0xD5C8 0x6756
+0xD5C9 0x4E08
+0xD5CA 0x5E10
+0xD5CB 0x8D26
+0xD5CC 0x4ED7
+0xD5CD 0x80C0
+0xD5CE 0x7634
+0xD5CF 0x969C
+0xD5D0 0x62DB
+0xD5D1 0x662D
+0xD5D2 0x627E
+0xD5D3 0x6CBC
+0xD5D4 0x8D75
+0xD5D5 0x7167
+0xD5D6 0x7F69
+0xD5D7 0x5146
+0xD5D8 0x8087
+0xD5D9 0x53EC
+0xD5DA 0x906E
+0xD5DB 0x6298
+0xD5DC 0x54F2
+0xD5DD 0x86F0
+0xD5DE 0x8F99
+0xD5DF 0x8005
+0xD5E0 0x9517
+0xD5E1 0x8517
+0xD5E2 0x8FD9
+0xD5E3 0x6D59
+0xD5E4 0x73CD
+0xD5E5 0x659F
+0xD5E6 0x771F
+0xD5E7 0x7504
+0xD5E8 0x7827
+0xD5E9 0x81FB
+0xD5EA 0x8D1E
+0xD5EB 0x9488
+0xD5EC 0x4FA6
+0xD5ED 0x6795
+0xD5EE 0x75B9
+0xD5EF 0x8BCA
+0xD5F0 0x9707
+0xD5F1 0x632F
+0xD5F2 0x9547
+0xD5F3 0x9635
+0xD5F4 0x84B8
+0xD5F5 0x6323
+0xD5F6 0x7741
+0xD5F7 0x5F81
+0xD5F8 0x72F0
+0xD5F9 0x4E89
+0xD5FA 0x6014
+0xD5FB 0x6574
+0xD5FC 0x62EF
+0xD5FD 0x6B63
+0xD5FE 0x653F
+0xD640-0xD662 0x8AE4
+0xD663-0xD67E 0x8B08
+0xD680-0xD681 0x8B24
+0xD682-0xD6A0 0x8B27
+0xD6A1 0x5E27
+0xD6A2 0x75C7
+0xD6A3 0x90D1
+0xD6A4 0x8BC1
+0xD6A5 0x829D
+0xD6A6 0x679D
+0xD6A7 0x652F
+0xD6A8 0x5431
+0xD6A9 0x8718
+0xD6AA 0x77E5
+0xD6AB 0x80A2
+0xD6AC 0x8102
+0xD6AD 0x6C41
+0xD6AE 0x4E4B
+0xD6AF 0x7EC7
+0xD6B0 0x804C
+0xD6B1 0x76F4
+0xD6B2 0x690D
+0xD6B3 0x6B96
+0xD6B4 0x6267
+0xD6B5 0x503C
+0xD6B6 0x4F84
+0xD6B7 0x5740
+0xD6B8 0x6307
+0xD6B9 0x6B62
+0xD6BA 0x8DBE
+0xD6BB 0x53EA
+0xD6BC 0x65E8
+0xD6BD 0x7EB8
+0xD6BE 0x5FD7
+0xD6BF 0x631A
+0xD6C0 0x63B7
+0xD6C1-0xD6C2 0x81F3
+0xD6C3 0x7F6E
+0xD6C4 0x5E1C
+0xD6C5 0x5CD9
+0xD6C6 0x5236
+0xD6C7 0x667A
+0xD6C8 0x79E9
+0xD6C9 0x7A1A
+0xD6CA 0x8D28
+0xD6CB 0x7099
+0xD6CC 0x75D4
+0xD6CD 0x6EDE
+0xD6CE 0x6CBB
+0xD6CF 0x7A92
+0xD6D0 0x4E2D
+0xD6D1 0x76C5
+0xD6D2 0x5FE0
+0xD6D3 0x949F
+0xD6D4 0x8877
+0xD6D5 0x7EC8
+0xD6D6 0x79CD
+0xD6D7 0x80BF
+0xD6D8 0x91CD
+0xD6D9 0x4EF2
+0xD6DA 0x4F17
+0xD6DB 0x821F
+0xD6DC 0x5468
+0xD6DD 0x5DDE
+0xD6DE 0x6D32
+0xD6DF 0x8BCC
+0xD6E0 0x7CA5
+0xD6E1 0x8F74
+0xD6E2 0x8098
+0xD6E3 0x5E1A
+0xD6E4 0x5492
+0xD6E5 0x76B1
+0xD6E6 0x5B99
+0xD6E7 0x663C
+0xD6E8 0x9AA4
+0xD6E9 0x73E0
+0xD6EA 0x682A
+0xD6EB 0x86DB
+0xD6EC 0x6731
+0xD6ED 0x732A
+0xD6EE 0x8BF8
+0xD6EF 0x8BDB
+0xD6F0 0x9010
+0xD6F1 0x7AF9
+0xD6F2 0x70DB
+0xD6F3 0x716E
+0xD6F4 0x62C4
+0xD6F5 0x77A9
+0xD6F6 0x5631
+0xD6F7 0x4E3B
+0xD6F8 0x8457
+0xD6F9 0x67F1
+0xD6FA 0x52A9
+0xD6FB 0x86C0
+0xD6FC 0x8D2E
+0xD6FD 0x94F8
+0xD6FE 0x7B51
+0xD740-0xD75F 0x8B46
+0xD760-0xD764 0x8B67
+0xD765-0xD77E 0x8B6D
+0xD780-0xD798 0x8B87
+0xD799 0x8BAC
+0xD79A 0x8BB1
+0xD79B 0x8BBB
+0xD79C 0x8BC7
+0xD79D 0x8BD0
+0xD79E 0x8BEA
+0xD79F 0x8C09
+0xD7A0 0x8C1E
+0xD7A1 0x4F4F
+0xD7A2 0x6CE8
+0xD7A3 0x795D
+0xD7A4 0x9A7B
+0xD7A5 0x6293
+0xD7A6 0x722A
+0xD7A7 0x62FD
+0xD7A8 0x4E13
+0xD7A9 0x7816
+0xD7AA 0x8F6C
+0xD7AB 0x64B0
+0xD7AC 0x8D5A
+0xD7AD 0x7BC6
+0xD7AE 0x6869
+0xD7AF 0x5E84
+0xD7B0 0x88C5
+0xD7B1 0x5986
+0xD7B2 0x649E
+0xD7B3 0x58EE
+0xD7B4 0x72B6
+0xD7B5 0x690E
+0xD7B6 0x9525
+0xD7B7 0x8FFD
+0xD7B8 0x8D58
+0xD7B9 0x5760
+0xD7BA 0x7F00
+0xD7BB 0x8C06
+0xD7BC 0x51C6
+0xD7BD 0x6349
+0xD7BE 0x62D9
+0xD7BF 0x5353
+0xD7C0 0x684C
+0xD7C1 0x7422
+0xD7C2 0x8301
+0xD7C3 0x914C
+0xD7C4 0x5544
+0xD7C5 0x7740
+0xD7C6 0x707C
+0xD7C7 0x6D4A
+0xD7C8 0x5179
+0xD7C9 0x54A8
+0xD7CA 0x8D44
+0xD7CB 0x59FF
+0xD7CC 0x6ECB
+0xD7CD 0x6DC4
+0xD7CE 0x5B5C
+0xD7CF 0x7D2B
+0xD7D0 0x4ED4
+0xD7D1 0x7C7D
+0xD7D2 0x6ED3
+0xD7D3 0x5B50
+0xD7D4 0x81EA
+0xD7D5 0x6E0D
+0xD7D6 0x5B57
+0xD7D7 0x9B03
+0xD7D8 0x68D5
+0xD7D9 0x8E2A
+0xD7DA 0x5B97
+0xD7DB 0x7EFC
+0xD7DC 0x603B
+0xD7DD 0x7EB5
+0xD7DE 0x90B9
+0xD7DF 0x8D70
+0xD7E0 0x594F
+0xD7E1 0x63CD
+0xD7E2 0x79DF
+0xD7E3 0x8DB3
+0xD7E4 0x5352
+0xD7E5 0x65CF
+0xD7E6 0x7956
+0xD7E7 0x8BC5
+0xD7E8 0x963B
+0xD7E9 0x7EC4
+0xD7EA 0x94BB
+0xD7EB 0x7E82
+0xD7EC 0x5634
+0xD7ED 0x9189
+0xD7EE 0x6700
+0xD7EF 0x7F6A
+0xD7F0 0x5C0A
+0xD7F1 0x9075
+0xD7F2 0x6628
+0xD7F3 0x5DE6
+0xD7F4 0x4F50
+0xD7F5 0x67DE
+0xD7F6 0x505A
+0xD7F7 0x4F5C
+0xD7F8 0x5750
+0xD7F9 0x5EA7
+0xD840-0xD848 0x8C38
+0xD849-0xD84C 0x8C42
+0xD84D 0x8C48
+0xD84E-0xD84F 0x8C4A
+0xD850-0xD857 0x8C4D
+0xD858-0xD85B 0x8C56
+0xD85C-0xD861 0x8C5B
+0xD862-0xD868 0x8C63
+0xD869-0xD86F 0x8C6C
+0xD870-0xD873 0x8C74
+0xD874-0xD87A 0x8C7B
+0xD87B-0xD87C 0x8C83
+0xD87D-0xD87E 0x8C86
+0xD880 0x8C88
+0xD881 0x8C8B
+0xD882-0xD888 0x8C8D
+0xD889-0xD88B 0x8C95
+0xD88C-0xD8A0 0x8C99
+0xD8A1 0x4E8D
+0xD8A2 0x4E0C
+0xD8A3 0x5140
+0xD8A4 0x4E10
+0xD8A5 0x5EFF
+0xD8A6 0x5345
+0xD8A7 0x4E15
+0xD8A8 0x4E98
+0xD8A9 0x4E1E
+0xD8AA 0x9B32
+0xD8AB 0x5B6C
+0xD8AC 0x5669
+0xD8AD 0x4E28
+0xD8AE 0x79BA
+0xD8AF 0x4E3F
+0xD8B0 0x5315
+0xD8B1 0x4E47
+0xD8B2 0x592D
+0xD8B3 0x723B
+0xD8B4 0x536E
+0xD8B5 0x6C10
+0xD8B6 0x56DF
+0xD8B7 0x80E4
+0xD8B8 0x9997
+0xD8B9 0x6BD3
+0xD8BA 0x777E
+0xD8BB 0x9F17
+0xD8BC 0x4E36
+0xD8BD 0x4E9F
+0xD8BE 0x9F10
+0xD8BF 0x4E5C
+0xD8C0 0x4E69
+0xD8C1 0x4E93
+0xD8C2 0x8288
+0xD8C3 0x5B5B
+0xD8C4 0x556C
+0xD8C5 0x560F
+0xD8C6 0x4EC4
+0xD8C7 0x538D
+0xD8C8 0x539D
+0xD8C9 0x53A3
+0xD8CA 0x53A5
+0xD8CB 0x53AE
+0xD8CC 0x9765
+0xD8CD 0x8D5D
+0xD8CE 0x531A
+0xD8CF 0x53F5
+0xD8D0 0x5326
+0xD8D1 0x532E
+0xD8D2 0x533E
+0xD8D3 0x8D5C
+0xD8D4 0x5366
+0xD8D5 0x5363
+0xD8D6 0x5202
+0xD8D7 0x5208
+0xD8D8 0x520E
+0xD8D9 0x522D
+0xD8DA 0x5233
+0xD8DB-0xD8DC 0x523F
+0xD8DD 0x524C
+0xD8DE 0x525E
+0xD8DF 0x5261
+0xD8E0 0x525C
+0xD8E1 0x84AF
+0xD8E2 0x527D
+0xD8E3 0x5282
+0xD8E4 0x5281
+0xD8E5 0x5290
+0xD8E6 0x5293
+0xD8E7 0x5182
+0xD8E8 0x7F54
+0xD8E9 0x4EBB
+0xD8EA 0x4EC3
+0xD8EB 0x4EC9
+0xD8EC 0x4EC2
+0xD8ED 0x4EE8
+0xD8EE 0x4EE1
+0xD8EF 0x4EEB
+0xD8F0 0x4EDE
+0xD8F1 0x4F1B
+0xD8F2 0x4EF3
+0xD8F3 0x4F22
+0xD8F4 0x4F64
+0xD8F5 0x4EF5
+0xD8F6 0x4F25
+0xD8F7 0x4F27
+0xD8F8 0x4F09
+0xD8F9 0x4F2B
+0xD8FA 0x4F5E
+0xD8FB 0x4F67
+0xD8FC 0x6538
+0xD8FD 0x4F5A
+0xD8FE 0x4F5D
+0xD940-0xD97E 0x8CAE
+0xD980-0xD9A0 0x8CED
+0xD9A1 0x4F5F
+0xD9A2 0x4F57
+0xD9A3 0x4F32
+0xD9A4 0x4F3D
+0xD9A5 0x4F76
+0xD9A6 0x4F74
+0xD9A7 0x4F91
+0xD9A8 0x4F89
+0xD9A9 0x4F83
+0xD9AA 0x4F8F
+0xD9AB 0x4F7E
+0xD9AC 0x4F7B
+0xD9AD 0x4FAA
+0xD9AE 0x4F7C
+0xD9AF 0x4FAC
+0xD9B0 0x4F94
+0xD9B1 0x4FE6
+0xD9B2 0x4FE8
+0xD9B3 0x4FEA
+0xD9B4 0x4FC5
+0xD9B5 0x4FDA
+0xD9B6 0x4FE3
+0xD9B7 0x4FDC
+0xD9B8 0x4FD1
+0xD9B9 0x4FDF
+0xD9BA 0x4FF8
+0xD9BB 0x5029
+0xD9BC 0x504C
+0xD9BD 0x4FF3
+0xD9BE 0x502C
+0xD9BF 0x500F
+0xD9C0 0x502E
+0xD9C1 0x502D
+0xD9C2 0x4FFE
+0xD9C3 0x501C
+0xD9C4 0x500C
+0xD9C5 0x5025
+0xD9C6 0x5028
+0xD9C7 0x507E
+0xD9C8 0x5043
+0xD9C9 0x5055
+0xD9CA 0x5048
+0xD9CB 0x504E
+0xD9CC 0x506C
+0xD9CD 0x507B
+0xD9CE 0x50A5
+0xD9CF 0x50A7
+0xD9D0 0x50A9
+0xD9D1 0x50BA
+0xD9D2 0x50D6
+0xD9D3 0x5106
+0xD9D4 0x50ED
+0xD9D5 0x50EC
+0xD9D6 0x50E6
+0xD9D7 0x50EE
+0xD9D8 0x5107
+0xD9D9 0x510B
+0xD9DA 0x4EDD
+0xD9DB 0x6C3D
+0xD9DC 0x4F58
+0xD9DD 0x4F65
+0xD9DE 0x4FCE
+0xD9DF 0x9FA0
+0xD9E0 0x6C46
+0xD9E1 0x7C74
+0xD9E2 0x516E
+0xD9E3 0x5DFD
+0xD9E4 0x9EC9
+0xD9E5 0x9998
+0xD9E6 0x5181
+0xD9E7 0x5914
+0xD9E8 0x52F9
+0xD9E9 0x530D
+0xD9EA 0x8A07
+0xD9EB 0x5310
+0xD9EC 0x51EB
+0xD9ED 0x5919
+0xD9EE 0x5155
+0xD9EF 0x4EA0
+0xD9F0 0x5156
+0xD9F1 0x4EB3
+0xD9F2 0x886E
+0xD9F3 0x88A4
+0xD9F4 0x4EB5
+0xD9F5 0x8114
+0xD9F6 0x88D2
+0xD9F7 0x7980
+0xD9F8 0x5B34
+0xD9F9 0x8803
+0xD9FA 0x7FB8
+0xD9FB 0x51AB
+0xD9FC 0x51B1
+0xD9FD 0x51BD
+0xD9FE 0x51BC
+0xDA40-0xDA4E 0x8D0E
+0xDA4F 0x8D20
+0xDA50-0xDA51 0x8D51
+0xDA52 0x8D57
+0xDA53 0x8D5F
+0xDA54 0x8D65
+0xDA55-0xDA57 0x8D68
+0xDA58 0x8D6C
+0xDA59-0xDA5A 0x8D6E
+0xDA5B-0xDA5C 0x8D71
+0xDA5D-0xDA65 0x8D78
+0xDA66-0xDA67 0x8D82
+0xDA68-0xDA6B 0x8D86
+0xDA6C-0xDA70 0x8D8C
+0xDA71-0xDA72 0x8D92
+0xDA73-0xDA7C 0x8D95
+0xDA7D-0xDA7E 0x8DA0
+0xDA80 0x8DA2
+0xDA81-0xDA8D 0x8DA4
+0xDA8E 0x8DB2
+0xDA8F-0xDA90 0x8DB6
+0xDA91 0x8DB9
+0xDA92 0x8DBB
+0xDA93 0x8DBD
+0xDA94-0xDA96 0x8DC0
+0xDA97 0x8DC5
+0xDA98-0xDA9B 0x8DC7
+0xDA9C 0x8DCD
+0xDA9D 0x8DD0
+0xDA9E-0xDAA0 0x8DD2
+0xDAA1 0x51C7
+0xDAA2 0x5196
+0xDAA3 0x51A2
+0xDAA4 0x51A5
+0xDAA5 0x8BA0
+0xDAA6-0xDAA7 0x8BA6
+0xDAA8 0x8BAA
+0xDAA9-0xDAAA 0x8BB4
+0xDAAB 0x8BB7
+0xDAAC-0xDAAD 0x8BC2
+0xDAAE 0x8BCB
+0xDAAF 0x8BCF
+0xDAB0 0x8BCE
+0xDAB1-0xDAB3 0x8BD2
+0xDAB4 0x8BD6
+0xDAB5-0xDAB6 0x8BD8
+0xDAB7 0x8BDC
+0xDAB8-0xDAB9 0x8BDF
+0xDABA 0x8BE4
+0xDABB-0xDABC 0x8BE8
+0xDABD 0x8BEE
+0xDABE 0x8BF0
+0xDABF 0x8BF3
+0xDAC0 0x8BF6
+0xDAC1 0x8BF9
+0xDAC2 0x8BFC
+0xDAC3-0xDAC4 0x8BFF
+0xDAC5 0x8C02
+0xDAC6 0x8C04
+0xDAC7 0x8C07
+0xDAC8 0x8C0C
+0xDAC9 0x8C0F
+0xDACA-0xDACB 0x8C11
+0xDACC-0xDACE 0x8C14
+0xDACF 0x8C19
+0xDAD0 0x8C1B
+0xDAD1 0x8C18
+0xDAD2 0x8C1D
+0xDAD3-0xDAD5 0x8C1F
+0xDAD6 0x8C25
+0xDAD7 0x8C27
+0xDAD8-0xDAD9 0x8C2A
+0xDADA-0xDADB 0x8C2E
+0xDADC-0xDADD 0x8C32
+0xDADE-0xDADF 0x8C35
+0xDAE0 0x5369
+0xDAE1 0x537A
+0xDAE2 0x961D
+0xDAE3 0x9622
+0xDAE4 0x9621
+0xDAE5 0x9631
+0xDAE6 0x962A
+0xDAE7 0x963D
+0xDAE8 0x963C
+0xDAE9 0x9642
+0xDAEA 0x9649
+0xDAEB 0x9654
+0xDAEC 0x965F
+0xDAED 0x9667
+0xDAEE 0x966C
+0xDAEF 0x9672
+0xDAF0 0x9674
+0xDAF1 0x9688
+0xDAF2 0x968D
+0xDAF3 0x9697
+0xDAF4 0x96B0
+0xDAF5 0x9097
+0xDAF6 0x909B
+0xDAF7 0x909D
+0xDAF8 0x9099
+0xDAF9 0x90AC
+0xDAFA 0x90A1
+0xDAFB 0x90B4
+0xDAFC 0x90B3
+0xDAFD 0x90B6
+0xDAFE 0x90BA
+0xDB40 0x8DD5
+0xDB41-0xDB42 0x8DD8
+0xDB43 0x8DDC
+0xDB44-0xDB46 0x8DE0
+0xDB47-0xDB49 0x8DE5
+0xDB4A 0x8DE9
+0xDB4B-0xDB4C 0x8DED
+0xDB4D-0xDB4F 0x8DF0
+0xDB50 0x8DF4
+0xDB51 0x8DF6
+0xDB52 0x8DFC
+0xDB53-0xDB59 0x8DFE
+0xDB5A-0xDB5C 0x8E06
+0xDB5D 0x8E0B
+0xDB5E-0xDB5F 0x8E0D
+0xDB60-0xDB63 0x8E10
+0xDB64-0xDB6B 0x8E15
+0xDB6C-0xDB6D 0x8E20
+0xDB6E-0xDB72 0x8E24
+0xDB73 0x8E2B
+0xDB74 0x8E2D
+0xDB75 0x8E30
+0xDB76-0xDB78 0x8E32
+0xDB79-0xDB7B 0x8E36
+0xDB7C-0xDB7D 0x8E3B
+0xDB7E 0x8E3E
+0xDB80 0x8E3F
+0xDB81 0x8E43
+0xDB82-0xDB83 0x8E45
+0xDB84-0xDB88 0x8E4C
+0xDB89-0xDB8E 0x8E53
+0xDB8F-0xDB9A 0x8E5A
+0xDB9B-0xDB9C 0x8E67
+0xDB9D-0xDB9E 0x8E6A
+0xDB9F 0x8E6E
+0xDBA0 0x8E71
+0xDBA1 0x90B8
+0xDBA2 0x90B0
+0xDBA3 0x90CF
+0xDBA4 0x90C5
+0xDBA5 0x90BE
+0xDBA6 0x90D0
+0xDBA7 0x90C4
+0xDBA8 0x90C7
+0xDBA9 0x90D3
+0xDBAA 0x90E6
+0xDBAB 0x90E2
+0xDBAC 0x90DC
+0xDBAD 0x90D7
+0xDBAE 0x90DB
+0xDBAF 0x90EB
+0xDBB0 0x90EF
+0xDBB1 0x90FE
+0xDBB2 0x9104
+0xDBB3 0x9122
+0xDBB4 0x911E
+0xDBB5 0x9123
+0xDBB6 0x9131
+0xDBB7 0x912F
+0xDBB8 0x9139
+0xDBB9 0x9143
+0xDBBA 0x9146
+0xDBBB 0x520D
+0xDBBC 0x5942
+0xDBBD 0x52A2
+0xDBBE-0xDBBF 0x52AC
+0xDBC0 0x52BE
+0xDBC1 0x54FF
+0xDBC2 0x52D0
+0xDBC3 0x52D6
+0xDBC4 0x52F0
+0xDBC5 0x53DF
+0xDBC6 0x71EE
+0xDBC7 0x77CD
+0xDBC8 0x5EF4
+0xDBC9 0x51F5
+0xDBCA 0x51FC
+0xDBCB 0x9B2F
+0xDBCC 0x53B6
+0xDBCD 0x5F01
+0xDBCE 0x755A
+0xDBCF 0x5DEF
+0xDBD0 0x574C
+0xDBD1 0x57A9
+0xDBD2 0x57A1
+0xDBD3 0x587E
+0xDBD4 0x58BC
+0xDBD5 0x58C5
+0xDBD6 0x58D1
+0xDBD7 0x5729
+0xDBD8 0x572C
+0xDBD9 0x572A
+0xDBDA 0x5733
+0xDBDB 0x5739
+0xDBDC-0xDBDD 0x572E
+0xDBDE 0x575C
+0xDBDF 0x573B
+0xDBE0 0x5742
+0xDBE1 0x5769
+0xDBE2 0x5785
+0xDBE3 0x576B
+0xDBE4 0x5786
+0xDBE5 0x577C
+0xDBE6 0x577B
+0xDBE7 0x5768
+0xDBE8 0x576D
+0xDBE9 0x5776
+0xDBEA 0x5773
+0xDBEB 0x57AD
+0xDBEC 0x57A4
+0xDBED 0x578C
+0xDBEE 0x57B2
+0xDBEF 0x57CF
+0xDBF0 0x57A7
+0xDBF1 0x57B4
+0xDBF2 0x5793
+0xDBF3 0x57A0
+0xDBF4 0x57D5
+0xDBF5 0x57D8
+0xDBF6 0x57DA
+0xDBF7 0x57D9
+0xDBF8 0x57D2
+0xDBF9 0x57B8
+0xDBFA 0x57F4
+0xDBFB 0x57EF
+0xDBFC 0x57F8
+0xDBFD 0x57E4
+0xDBFE 0x57DD
+0xDC40 0x8E73
+0xDC41 0x8E75
+0xDC42-0xDC46 0x8E77
+0xDC47-0xDC48 0x8E7D
+0xDC49 0x8E80
+0xDC4A-0xDC4C 0x8E82
+0xDC4D 0x8E86
+0xDC4E-0xDC54 0x8E88
+0xDC55-0xDC57 0x8E91
+0xDC58-0xDC5E 0x8E95
+0xDC5F 0x8E9D
+0xDC60-0xDC6B 0x8E9F
+0xDC6C-0xDC6D 0x8EAD
+0xDC6E-0xDC6F 0x8EB0
+0xDC70-0xDC76 0x8EB3
+0xDC77-0xDC7E 0x8EBB
+0xDC80-0xDC8A 0x8EC3
+0xDC8B-0xDCA0 0x8ECF
+0xDCA1 0x580B
+0xDCA2 0x580D
+0xDCA3 0x57FD
+0xDCA4 0x57ED
+0xDCA5 0x5800
+0xDCA6 0x581E
+0xDCA7 0x5819
+0xDCA8 0x5844
+0xDCA9 0x5820
+0xDCAA 0x5865
+0xDCAB 0x586C
+0xDCAC 0x5881
+0xDCAD 0x5889
+0xDCAE 0x589A
+0xDCAF 0x5880
+0xDCB0 0x99A8
+0xDCB1 0x9F19
+0xDCB2 0x61FF
+0xDCB3 0x8279
+0xDCB4 0x827D
+0xDCB5 0x827F
+0xDCB6 0x828F
+0xDCB7 0x828A
+0xDCB8 0x82A8
+0xDCB9 0x8284
+0xDCBA 0x828E
+0xDCBB 0x8291
+0xDCBC 0x8297
+0xDCBD 0x8299
+0xDCBE 0x82AB
+0xDCBF 0x82B8
+0xDCC0 0x82BE
+0xDCC1 0x82B0
+0xDCC2 0x82C8
+0xDCC3 0x82CA
+0xDCC4 0x82E3
+0xDCC5 0x8298
+0xDCC6 0x82B7
+0xDCC7 0x82AE
+0xDCC8-0xDCC9 0x82CB
+0xDCCA 0x82C1
+0xDCCB 0x82A9
+0xDCCC 0x82B4
+0xDCCD 0x82A1
+0xDCCE 0x82AA
+0xDCCF 0x829F
+0xDCD0 0x82C4
+0xDCD1 0x82CE
+0xDCD2 0x82A4
+0xDCD3 0x82E1
+0xDCD4 0x8309
+0xDCD5 0x82F7
+0xDCD6 0x82E4
+0xDCD7 0x830F
+0xDCD8 0x8307
+0xDCD9 0x82DC
+0xDCDA 0x82F4
+0xDCDB 0x82D2
+0xDCDC 0x82D8
+0xDCDD 0x830C
+0xDCDE 0x82FB
+0xDCDF 0x82D3
+0xDCE0 0x8311
+0xDCE1 0x831A
+0xDCE2 0x8306
+0xDCE3-0xDCE4 0x8314
+0xDCE5 0x82E0
+0xDCE6 0x82D5
+0xDCE7 0x831C
+0xDCE8 0x8351
+0xDCE9-0xDCEA 0x835B
+0xDCEB 0x8308
+0xDCEC 0x8392
+0xDCED 0x833C
+0xDCEE 0x8334
+0xDCEF 0x8331
+0xDCF0 0x839B
+0xDCF1 0x835E
+0xDCF2 0x832F
+0xDCF3 0x834F
+0xDCF4 0x8347
+0xDCF5 0x8343
+0xDCF6 0x835F
+0xDCF7 0x8340
+0xDCF8 0x8317
+0xDCF9 0x8360
+0xDCFA 0x832D
+0xDCFB 0x833A
+0xDCFC 0x8333
+0xDCFD 0x8366
+0xDCFE 0x8365
+0xDD40-0xDD7E 0x8EE5
+0xDD80-0xDDA0 0x8F24
+0xDDA1 0x8368
+0xDDA2 0x831B
+0xDDA3 0x8369
+0xDDA4 0x836C
+0xDDA5 0x836A
+0xDDA6-0xDDA7 0x836D
+0xDDA8 0x83B0
+0xDDA9 0x8378
+0xDDAA-0xDDAB 0x83B3
+0xDDAC 0x83A0
+0xDDAD 0x83AA
+0xDDAE 0x8393
+0xDDAF 0x839C
+0xDDB0 0x8385
+0xDDB1 0x837C
+0xDDB2 0x83B6
+0xDDB3 0x83A9
+0xDDB4 0x837D
+0xDDB5 0x83B8
+0xDDB6 0x837B
+0xDDB7 0x8398
+0xDDB8 0x839E
+0xDDB9 0x83A8
+0xDDBA 0x83BA
+0xDDBB 0x83BC
+0xDDBC 0x83C1
+0xDDBD 0x8401
+0xDDBE 0x83E5
+0xDDBF 0x83D8
+0xDDC0 0x5807
+0xDDC1 0x8418
+0xDDC2 0x840B
+0xDDC3 0x83DD
+0xDDC4 0x83FD
+0xDDC5 0x83D6
+0xDDC6 0x841C
+0xDDC7 0x8438
+0xDDC8 0x8411
+0xDDC9 0x8406
+0xDDCA 0x83D4
+0xDDCB 0x83DF
+0xDDCC 0x840F
+0xDDCD 0x8403
+0xDDCE-0xDDCF 0x83F8
+0xDDD0 0x83EA
+0xDDD1 0x83C5
+0xDDD2 0x83C0
+0xDDD3 0x8426
+0xDDD4 0x83F0
+0xDDD5 0x83E1
+0xDDD6 0x845C
+0xDDD7 0x8451
+0xDDD8 0x845A
+0xDDD9 0x8459
+0xDDDA 0x8473
+0xDDDB-0xDDDC 0x8487
+0xDDDD 0x847A
+0xDDDE 0x8489
+0xDDDF 0x8478
+0xDDE0 0x843C
+0xDDE1 0x8446
+0xDDE2 0x8469
+0xDDE3 0x8476
+0xDDE4 0x848C
+0xDDE5 0x848E
+0xDDE6 0x8431
+0xDDE7 0x846D
+0xDDE8 0x84C1
+0xDDE9 0x84CD
+0xDDEA 0x84D0
+0xDDEB 0x84E6
+0xDDEC 0x84BD
+0xDDED 0x84D3
+0xDDEE 0x84CA
+0xDDEF 0x84BF
+0xDDF0 0x84BA
+0xDDF1 0x84E0
+0xDDF2 0x84A1
+0xDDF3 0x84B9
+0xDDF4 0x84B4
+0xDDF5 0x8497
+0xDDF6 0x84E5
+0xDDF7 0x84E3
+0xDDF8 0x850C
+0xDDF9 0x750D
+0xDDFA 0x8538
+0xDDFB 0x84F0
+0xDDFC 0x8539
+0xDDFD 0x851F
+0xDDFE 0x853A
+0xDE40-0xDE60 0x8F45
+0xDE61 0x8F6A
+0xDE62 0x8F80
+0xDE63 0x8F8C
+0xDE64 0x8F92
+0xDE65 0x8F9D
+0xDE66-0xDE68 0x8FA0
+0xDE69-0xDE6C 0x8FA4
+0xDE6D 0x8FAA
+0xDE6E-0xDE71 0x8FAC
+0xDE72-0xDE75 0x8FB2
+0xDE76-0xDE77 0x8FB7
+0xDE78-0xDE7A 0x8FBA
+0xDE7B-0xDE7C 0x8FBF
+0xDE7D 0x8FC3
+0xDE7E 0x8FC6
+0xDE80-0xDE84 0x8FC9
+0xDE85 0x8FCF
+0xDE86 0x8FD2
+0xDE87-0xDE88 0x8FD6
+0xDE89 0x8FDA
+0xDE8A-0xDE8B 0x8FE0
+0xDE8C 0x8FE3
+0xDE8D 0x8FE7
+0xDE8E 0x8FEC
+0xDE8F 0x8FEF
+0xDE90-0xDE91 0x8FF1
+0xDE92-0xDE94 0x8FF4
+0xDE95-0xDE97 0x8FFA
+0xDE98-0xDE99 0x8FFE
+0xDE9A-0xDE9B 0x9007
+0xDE9C 0x900C
+0xDE9D 0x900E
+0xDE9E 0x9013
+0xDE9F 0x9015
+0xDEA0 0x9018
+0xDEA1 0x8556
+0xDEA2 0x853B
+0xDEA3 0x84FF
+0xDEA4 0x84FC
+0xDEA5 0x8559
+0xDEA6 0x8548
+0xDEA7 0x8568
+0xDEA8 0x8564
+0xDEA9 0x855E
+0xDEAA 0x857A
+0xDEAB 0x77A2
+0xDEAC 0x8543
+0xDEAD 0x8572
+0xDEAE 0x857B
+0xDEAF 0x85A4
+0xDEB0 0x85A8
+0xDEB1 0x8587
+0xDEB2 0x858F
+0xDEB3 0x8579
+0xDEB4 0x85AE
+0xDEB5 0x859C
+0xDEB6 0x8585
+0xDEB7 0x85B9
+0xDEB8 0x85B7
+0xDEB9 0x85B0
+0xDEBA 0x85D3
+0xDEBB 0x85C1
+0xDEBC 0x85DC
+0xDEBD 0x85FF
+0xDEBE 0x8627
+0xDEBF 0x8605
+0xDEC0 0x8629
+0xDEC1 0x8616
+0xDEC2 0x863C
+0xDEC3 0x5EFE
+0xDEC4 0x5F08
+0xDEC5 0x593C
+0xDEC6 0x5941
+0xDEC7 0x8037
+0xDEC8 0x5955
+0xDEC9 0x595A
+0xDECA 0x5958
+0xDECB 0x530F
+0xDECC 0x5C22
+0xDECD 0x5C25
+0xDECE 0x5C2C
+0xDECF 0x5C34
+0xDED0 0x624C
+0xDED1 0x626A
+0xDED2 0x629F
+0xDED3 0x62BB
+0xDED4 0x62CA
+0xDED5 0x62DA
+0xDED6 0x62D7
+0xDED7 0x62EE
+0xDED8 0x6322
+0xDED9 0x62F6
+0xDEDA 0x6339
+0xDEDB 0x634B
+0xDEDC 0x6343
+0xDEDD 0x63AD
+0xDEDE 0x63F6
+0xDEDF 0x6371
+0xDEE0 0x637A
+0xDEE1 0x638E
+0xDEE2 0x63B4
+0xDEE3 0x636D
+0xDEE4 0x63AC
+0xDEE5 0x638A
+0xDEE6 0x6369
+0xDEE7 0x63AE
+0xDEE8 0x63BC
+0xDEE9 0x63F2
+0xDEEA 0x63F8
+0xDEEB 0x63E0
+0xDEEC 0x63FF
+0xDEED 0x63C4
+0xDEEE 0x63DE
+0xDEEF 0x63CE
+0xDEF0 0x6452
+0xDEF1 0x63C6
+0xDEF2 0x63BE
+0xDEF3 0x6445
+0xDEF4 0x6441
+0xDEF5 0x640B
+0xDEF6 0x641B
+0xDEF7 0x6420
+0xDEF8 0x640C
+0xDEF9 0x6426
+0xDEFA 0x6421
+0xDEFB 0x645E
+0xDEFC 0x6484
+0xDEFD 0x646D
+0xDEFE 0x6496
+0xDF40 0x9019
+0xDF41 0x901C
+0xDF42-0xDF44 0x9023
+0xDF45-0xDF4A 0x9027
+0xDF4B-0xDF4F 0x9030
+0xDF50 0x9037
+0xDF51-0xDF52 0x9039
+0xDF53 0x903D
+0xDF54-0xDF55 0x903F
+0xDF56 0x9043
+0xDF57-0xDF58 0x9045
+0xDF59-0xDF5D 0x9048
+0xDF5E 0x904E
+0xDF5F-0xDF61 0x9054
+0xDF62-0xDF63 0x9059
+0xDF64-0xDF69 0x905C
+0xDF6A 0x9064
+0xDF6B-0xDF6C 0x9066
+0xDF6D-0xDF70 0x9069
+0xDF71-0xDF75 0x906F
+0xDF76-0xDF7C 0x9076
+0xDF7D 0x907E
+0xDF7E 0x9081
+0xDF80-0xDF83 0x9084
+0xDF84-0xDF85 0x9089
+0xDF86-0xDF8A 0x908C
+0xDF8B 0x9092
+0xDF8C 0x9094
+0xDF8D 0x9096
+0xDF8E 0x9098
+0xDF8F 0x909A
+0xDF90 0x909C
+0xDF91-0xDF93 0x909E
+0xDF94-0xDF95 0x90A4
+0xDF96-0xDF98 0x90A7
+0xDF99 0x90AB
+0xDF9A 0x90AD
+0xDF9B 0x90B2
+0xDF9C 0x90B7
+0xDF9D-0xDF9E 0x90BC
+0xDF9F-0xDFA0 0x90BF
+0xDFA1 0x647A
+0xDFA2-0xDFA3 0x64B7
+0xDFA4 0x6499
+0xDFA5 0x64BA
+0xDFA6 0x64C0
+0xDFA7 0x64D0
+0xDFA8 0x64D7
+0xDFA9 0x64E4
+0xDFAA 0x64E2
+0xDFAB 0x6509
+0xDFAC 0x6525
+0xDFAD 0x652E
+0xDFAE 0x5F0B
+0xDFAF 0x5FD2
+0xDFB0 0x7519
+0xDFB1 0x5F11
+0xDFB2 0x535F
+0xDFB3 0x53F1
+0xDFB4 0x53FD
+0xDFB5 0x53E9
+0xDFB6 0x53E8
+0xDFB7 0x53FB
+0xDFB8 0x5412
+0xDFB9 0x5416
+0xDFBA 0x5406
+0xDFBB 0x544B
+0xDFBC-0xDFBE 0x5452
+0xDFBF 0x5456
+0xDFC0 0x5443
+0xDFC1 0x5421
+0xDFC2 0x5457
+0xDFC3 0x5459
+0xDFC4 0x5423
+0xDFC5 0x5432
+0xDFC6 0x5482
+0xDFC7 0x5494
+0xDFC8 0x5477
+0xDFC9 0x5471
+0xDFCA 0x5464
+0xDFCB-0xDFCC 0x549A
+0xDFCD 0x5484
+0xDFCE 0x5476
+0xDFCF 0x5466
+0xDFD0 0x549D
+0xDFD1 0x54D0
+0xDFD2 0x54AD
+0xDFD3 0x54C2
+0xDFD4 0x54B4
+0xDFD5 0x54D2
+0xDFD6 0x54A7
+0xDFD7 0x54A6
+0xDFD8-0xDFD9 0x54D3
+0xDFDA 0x5472
+0xDFDB 0x54A3
+0xDFDC 0x54D5
+0xDFDD 0x54BB
+0xDFDE 0x54BF
+0xDFDF 0x54CC
+0xDFE0-0xDFE1 0x54D9
+0xDFE2 0x54DC
+0xDFE3-0xDFE4 0x54A9
+0xDFE5 0x54A4
+0xDFE6 0x54DD
+0xDFE7 0x54CF
+0xDFE8 0x54DE
+0xDFE9 0x551B
+0xDFEA 0x54E7
+0xDFEB 0x5520
+0xDFEC 0x54FD
+0xDFED 0x5514
+0xDFEE 0x54F3
+0xDFEF-0xDFF0 0x5522
+0xDFF1 0x550F
+0xDFF2 0x5511
+0xDFF3 0x5527
+0xDFF4 0x552A
+0xDFF5 0x5567
+0xDFF6 0x558F
+0xDFF7 0x55B5
+0xDFF8 0x5549
+0xDFF9 0x556D
+0xDFFA 0x5541
+0xDFFB 0x5555
+0xDFFC 0x553F
+0xDFFD 0x5550
+0xDFFE 0x553C
+0xE040-0xE041 0x90C2
+0xE042 0x90C6
+0xE043-0xE044 0x90C8
+0xE045-0xE047 0x90CB
+0xE048 0x90D2
+0xE049-0xE04B 0x90D4
+0xE04C-0xE04E 0x90D8
+0xE04F-0xE051 0x90DE
+0xE052-0xE054 0x90E3
+0xE055-0xE056 0x90E9
+0xE057 0x90EC
+0xE058 0x90EE
+0xE059-0xE05C 0x90F0
+0xE05D-0xE05F 0x90F5
+0xE060-0xE063 0x90F9
+0xE064-0xE066 0x90FF
+0xE067 0x9103
+0xE068-0xE07B 0x9105
+0xE07C-0xE07E 0x911A
+0xE080 0x911D
+0xE081-0xE083 0x911F
+0xE084-0xE08E 0x9124
+0xE08F 0x9130
+0xE090-0xE096 0x9132
+0xE097-0xE09F 0x913A
+0xE0A0 0x9144
+0xE0A1 0x5537
+0xE0A2 0x5556
+0xE0A3-0xE0A5 0x5575
+0xE0A6 0x5533
+0xE0A7 0x5530
+0xE0A8 0x555C
+0xE0A9 0x558B
+0xE0AA 0x55D2
+0xE0AB 0x5583
+0xE0AC 0x55B1
+0xE0AD 0x55B9
+0xE0AE 0x5588
+0xE0AF 0x5581
+0xE0B0 0x559F
+0xE0B1 0x557E
+0xE0B2 0x55D6
+0xE0B3 0x5591
+0xE0B4 0x557B
+0xE0B5 0x55DF
+0xE0B6-0xE0B7 0x55BD
+0xE0B8 0x5594
+0xE0B9 0x5599
+0xE0BA 0x55EA
+0xE0BB 0x55F7
+0xE0BC 0x55C9
+0xE0BD 0x561F
+0xE0BE 0x55D1
+0xE0BF-0xE0C0 0x55EB
+0xE0C1 0x55D4
+0xE0C2 0x55E6
+0xE0C3 0x55DD
+0xE0C4 0x55C4
+0xE0C5 0x55EF
+0xE0C6 0x55E5
+0xE0C7-0xE0C8 0x55F2
+0xE0C9-0xE0CA 0x55CC
+0xE0CB 0x55E8
+0xE0CC 0x55F5
+0xE0CD 0x55E4
+0xE0CE 0x8F94
+0xE0CF 0x561E
+0xE0D0 0x5608
+0xE0D1 0x560C
+0xE0D2 0x5601
+0xE0D3 0x5624
+0xE0D4 0x5623
+0xE0D5 0x55FE
+0xE0D6 0x5600
+0xE0D7 0x5627
+0xE0D8 0x562D
+0xE0D9 0x5658
+0xE0DA 0x5639
+0xE0DB 0x5657
+0xE0DC 0x562C
+0xE0DD 0x564D
+0xE0DE 0x5662
+0xE0DF 0x5659
+0xE0E0 0x565C
+0xE0E1 0x564C
+0xE0E2 0x5654
+0xE0E3 0x5686
+0xE0E4 0x5664
+0xE0E5 0x5671
+0xE0E6 0x566B
+0xE0E7-0xE0E8 0x567B
+0xE0E9 0x5685
+0xE0EA 0x5693
+0xE0EB 0x56AF
+0xE0EC 0x56D4
+0xE0ED 0x56D7
+0xE0EE 0x56DD
+0xE0EF 0x56E1
+0xE0F0 0x56F5
+0xE0F1 0x56EB
+0xE0F2 0x56F9
+0xE0F3 0x56FF
+0xE0F4 0x5704
+0xE0F5 0x570A
+0xE0F6 0x5709
+0xE0F7 0x571C
+0xE0F8 0x5E0F
+0xE0F9 0x5E19
+0xE0FA 0x5E14
+0xE0FB 0x5E11
+0xE0FC 0x5E31
+0xE0FD-0xE0FE 0x5E3B
+0xE140 0x9145
+0xE141-0xE142 0x9147
+0xE143 0x9151
+0xE144-0xE147 0x9153
+0xE148-0xE149 0x9158
+0xE14A-0xE14B 0x915B
+0xE14C-0xE14D 0x915F
+0xE14E-0xE150 0x9166
+0xE151 0x916B
+0xE152 0x916D
+0xE153 0x9173
+0xE154-0xE156 0x917A
+0xE157-0xE15B 0x9180
+0xE15C 0x9186
+0xE15D 0x9188
+0xE15E 0x918A
+0xE15F-0xE160 0x918E
+0xE161-0xE167 0x9193
+0xE168-0xE16D 0x919C
+0xE16E-0xE173 0x91A4
+0xE174-0xE175 0x91AB
+0xE176-0xE179 0x91B0
+0xE17A-0xE17D 0x91B6
+0xE17E 0x91BB
+0xE180-0xE18A 0x91BC
+0xE18B 0x91C8
+0xE18C 0x91CB
+0xE18D 0x91D0
+0xE18E-0xE197 0x91D2
+0xE198-0xE1A0 0x91DD
+0xE1A1 0x5E37
+0xE1A2 0x5E44
+0xE1A3 0x5E54
+0xE1A4 0x5E5B
+0xE1A5 0x5E5E
+0xE1A6 0x5E61
+0xE1A7 0x5C8C
+0xE1A8 0x5C7A
+0xE1A9 0x5C8D
+0xE1AA 0x5C90
+0xE1AB 0x5C96
+0xE1AC 0x5C88
+0xE1AD-0xE1AE 0x5C98
+0xE1AF 0x5C91
+0xE1B0 0x5C9A
+0xE1B1 0x5C9C
+0xE1B2 0x5CB5
+0xE1B3 0x5CA2
+0xE1B4 0x5CBD
+0xE1B5 0x5CAC
+0xE1B6 0x5CAB
+0xE1B7 0x5CB1
+0xE1B8 0x5CA3
+0xE1B9 0x5CC1
+0xE1BA 0x5CB7
+0xE1BB 0x5CC4
+0xE1BC 0x5CD2
+0xE1BD 0x5CE4
+0xE1BE 0x5CCB
+0xE1BF 0x5CE5
+0xE1C0-0xE1C1 0x5D02
+0xE1C2 0x5D27
+0xE1C3 0x5D26
+0xE1C4 0x5D2E
+0xE1C5 0x5D24
+0xE1C6 0x5D1E
+0xE1C7 0x5D06
+0xE1C8 0x5D1B
+0xE1C9 0x5D58
+0xE1CA 0x5D3E
+0xE1CB 0x5D34
+0xE1CC 0x5D3D
+0xE1CD 0x5D6C
+0xE1CE 0x5D5B
+0xE1CF 0x5D6F
+0xE1D0 0x5D5D
+0xE1D1 0x5D6B
+0xE1D2 0x5D4B
+0xE1D3 0x5D4A
+0xE1D4 0x5D69
+0xE1D5 0x5D74
+0xE1D6 0x5D82
+0xE1D7 0x5D99
+0xE1D8 0x5D9D
+0xE1D9 0x8C73
+0xE1DA 0x5DB7
+0xE1DB 0x5DC5
+0xE1DC 0x5F73
+0xE1DD 0x5F77
+0xE1DE 0x5F82
+0xE1DF 0x5F87
+0xE1E0 0x5F89
+0xE1E1 0x5F8C
+0xE1E2 0x5F95
+0xE1E3 0x5F99
+0xE1E4 0x5F9C
+0xE1E5 0x5FA8
+0xE1E6 0x5FAD
+0xE1E7 0x5FB5
+0xE1E8 0x5FBC
+0xE1E9 0x8862
+0xE1EA 0x5F61
+0xE1EB 0x72AD
+0xE1EC 0x72B0
+0xE1ED 0x72B4
+0xE1EE-0xE1EF 0x72B7
+0xE1F0 0x72C3
+0xE1F1 0x72C1
+0xE1F2 0x72CE
+0xE1F3 0x72CD
+0xE1F4 0x72D2
+0xE1F5 0x72E8
+0xE1F6 0x72EF
+0xE1F7 0x72E9
+0xE1F8 0x72F2
+0xE1F9 0x72F4
+0xE1FA 0x72F7
+0xE1FB 0x7301
+0xE1FC 0x72F3
+0xE1FD 0x7303
+0xE1FE 0x72FA
+0xE240-0xE27E 0x91E6
+0xE280-0xE2A0 0x9225
+0xE2A1 0x72FB
+0xE2A2 0x7317
+0xE2A3 0x7313
+0xE2A4 0x7321
+0xE2A5 0x730A
+0xE2A6 0x731E
+0xE2A7 0x731D
+0xE2A8 0x7315
+0xE2A9 0x7322
+0xE2AA 0x7339
+0xE2AB 0x7325
+0xE2AC 0x732C
+0xE2AD 0x7338
+0xE2AE 0x7331
+0xE2AF 0x7350
+0xE2B0 0x734D
+0xE2B1 0x7357
+0xE2B2 0x7360
+0xE2B3 0x736C
+0xE2B4 0x736F
+0xE2B5 0x737E
+0xE2B6 0x821B
+0xE2B7 0x5925
+0xE2B8 0x98E7
+0xE2B9 0x5924
+0xE2BA 0x5902
+0xE2BB 0x9963
+0xE2BC-0xE2C1 0x9967
+0xE2C2 0x9974
+0xE2C3 0x9977
+0xE2C4 0x997D
+0xE2C5 0x9980
+0xE2C6 0x9984
+0xE2C7 0x9987
+0xE2C8 0x998A
+0xE2C9 0x998D
+0xE2CA-0xE2CB 0x9990
+0xE2CC-0xE2CE 0x9993
+0xE2CF 0x5E80
+0xE2D0 0x5E91
+0xE2D1 0x5E8B
+0xE2D2 0x5E96
+0xE2D3 0x5EA5
+0xE2D4 0x5EA0
+0xE2D5 0x5EB9
+0xE2D6 0x5EB5
+0xE2D7 0x5EBE
+0xE2D8 0x5EB3
+0xE2D9 0x8D53
+0xE2DA 0x5ED2
+0xE2DB 0x5ED1
+0xE2DC 0x5EDB
+0xE2DD 0x5EE8
+0xE2DE 0x5EEA
+0xE2DF 0x81BA
+0xE2E0 0x5FC4
+0xE2E1 0x5FC9
+0xE2E2 0x5FD6
+0xE2E3 0x5FCF
+0xE2E4 0x6003
+0xE2E5 0x5FEE
+0xE2E6 0x6004
+0xE2E7 0x5FE1
+0xE2E8 0x5FE4
+0xE2E9 0x5FFE
+0xE2EA-0xE2EB 0x6005
+0xE2EC 0x5FEA
+0xE2ED 0x5FED
+0xE2EE 0x5FF8
+0xE2EF 0x6019
+0xE2F0 0x6035
+0xE2F1 0x6026
+0xE2F2 0x601B
+0xE2F3 0x600F
+0xE2F4 0x600D
+0xE2F5 0x6029
+0xE2F6 0x602B
+0xE2F7 0x600A
+0xE2F8 0x603F
+0xE2F9 0x6021
+0xE2FA-0xE2FB 0x6078
+0xE2FC 0x607B
+0xE2FD 0x607A
+0xE2FE 0x6042
+0xE340-0xE36D 0x9246
+0xE36E-0xE37E 0x9275
+0xE380-0xE387 0x9286
+0xE388-0xE3A0 0x928F
+0xE3A1 0x606A
+0xE3A2 0x607D
+0xE3A3 0x6096
+0xE3A4 0x609A
+0xE3A5 0x60AD
+0xE3A6 0x609D
+0xE3A7 0x6083
+0xE3A8 0x6092
+0xE3A9 0x608C
+0xE3AA 0x609B
+0xE3AB 0x60EC
+0xE3AC 0x60BB
+0xE3AD 0x60B1
+0xE3AE 0x60DD
+0xE3AF 0x60D8
+0xE3B0 0x60C6
+0xE3B1 0x60DA
+0xE3B2 0x60B4
+0xE3B3 0x6120
+0xE3B4 0x6126
+0xE3B5 0x6115
+0xE3B6 0x6123
+0xE3B7 0x60F4
+0xE3B8 0x6100
+0xE3B9 0x610E
+0xE3BA 0x612B
+0xE3BB 0x614A
+0xE3BC 0x6175
+0xE3BD 0x61AC
+0xE3BE 0x6194
+0xE3BF 0x61A7
+0xE3C0 0x61B7
+0xE3C1 0x61D4
+0xE3C2 0x61F5
+0xE3C3 0x5FDD
+0xE3C4 0x96B3
+0xE3C5 0x95E9
+0xE3C6 0x95EB
+0xE3C7 0x95F1
+0xE3C8 0x95F3
+0xE3C9-0xE3CA 0x95F5
+0xE3CB 0x95FC
+0xE3CC 0x95FE
+0xE3CD-0xE3CE 0x9603
+0xE3CF 0x9606
+0xE3D0 0x9608
+0xE3D1-0xE3D4 0x960A
+0xE3D5 0x960F
+0xE3D6 0x9612
+0xE3D7-0xE3D9 0x9615
+0xE3DA-0xE3DB 0x9619
+0xE3DC 0x4E2C
+0xE3DD 0x723F
+0xE3DE 0x6215
+0xE3DF 0x6C35
+0xE3E0 0x6C54
+0xE3E1 0x6C5C
+0xE3E2 0x6C4A
+0xE3E3 0x6CA3
+0xE3E4 0x6C85
+0xE3E5 0x6C90
+0xE3E6 0x6C94
+0xE3E7 0x6C8C
+0xE3E8-0xE3E9 0x6C68
+0xE3EA 0x6C74
+0xE3EB 0x6C76
+0xE3EC 0x6C86
+0xE3ED 0x6CA9
+0xE3EE 0x6CD0
+0xE3EF 0x6CD4
+0xE3F0 0x6CAD
+0xE3F1-0xE3F2 0x6CF7
+0xE3F3 0x6CF1
+0xE3F4 0x6CD7
+0xE3F5 0x6CB2
+0xE3F6 0x6CE0
+0xE3F7 0x6CD6
+0xE3F8 0x6CFA
+0xE3F9 0x6CEB
+0xE3FA 0x6CEE
+0xE3FB 0x6CB1
+0xE3FC 0x6CD3
+0xE3FD 0x6CEF
+0xE3FE 0x6CFE
+0xE440-0xE445 0x92A8
+0xE446-0xE45E 0x92AF
+0xE45F-0xE47E 0x92C9
+0xE480-0xE4A0 0x92E9
+0xE4A1 0x6D39
+0xE4A2 0x6D27
+0xE4A3 0x6D0C
+0xE4A4 0x6D43
+0xE4A5 0x6D48
+0xE4A6 0x6D07
+0xE4A7 0x6D04
+0xE4A8 0x6D19
+0xE4A9 0x6D0E
+0xE4AA 0x6D2B
+0xE4AB 0x6D4D
+0xE4AC 0x6D2E
+0xE4AD 0x6D35
+0xE4AE 0x6D1A
+0xE4AF 0x6D4F
+0xE4B0 0x6D52
+0xE4B1 0x6D54
+0xE4B2 0x6D33
+0xE4B3 0x6D91
+0xE4B4 0x6D6F
+0xE4B5 0x6D9E
+0xE4B6 0x6DA0
+0xE4B7 0x6D5E
+0xE4B8-0xE4B9 0x6D93
+0xE4BA 0x6D5C
+0xE4BB 0x6D60
+0xE4BC 0x6D7C
+0xE4BD 0x6D63
+0xE4BE 0x6E1A
+0xE4BF 0x6DC7
+0xE4C0 0x6DC5
+0xE4C1 0x6DDE
+0xE4C2 0x6E0E
+0xE4C3 0x6DBF
+0xE4C4 0x6DE0
+0xE4C5 0x6E11
+0xE4C6 0x6DE6
+0xE4C7 0x6DDD
+0xE4C8 0x6DD9
+0xE4C9 0x6E16
+0xE4CA 0x6DAB
+0xE4CB 0x6E0C
+0xE4CC 0x6DAE
+0xE4CD 0x6E2B
+0xE4CE 0x6E6E
+0xE4CF 0x6E4E
+0xE4D0 0x6E6B
+0xE4D1 0x6EB2
+0xE4D2 0x6E5F
+0xE4D3 0x6E86
+0xE4D4-0xE4D5 0x6E53
+0xE4D6 0x6E32
+0xE4D7 0x6E25
+0xE4D8 0x6E44
+0xE4D9 0x6EDF
+0xE4DA 0x6EB1
+0xE4DB 0x6E98
+0xE4DC 0x6EE0
+0xE4DD 0x6F2D
+0xE4DE 0x6EE2
+0xE4DF 0x6EA5
+0xE4E0 0x6EA7
+0xE4E1 0x6EBD
+0xE4E2 0x6EBB
+0xE4E3 0x6EB7
+0xE4E4 0x6ED7
+0xE4E5 0x6EB4
+0xE4E6 0x6ECF
+0xE4E7 0x6E8F
+0xE4E8 0x6EC2
+0xE4E9 0x6E9F
+0xE4EA 0x6F62
+0xE4EB-0xE4EC 0x6F46
+0xE4ED 0x6F24
+0xE4EE 0x6F15
+0xE4EF 0x6EF9
+0xE4F0 0x6F2F
+0xE4F1 0x6F36
+0xE4F2 0x6F4B
+0xE4F3 0x6F74
+0xE4F4 0x6F2A
+0xE4F5 0x6F09
+0xE4F6 0x6F29
+0xE4F7 0x6F89
+0xE4F8 0x6F8D
+0xE4F9 0x6F8C
+0xE4FA 0x6F78
+0xE4FB 0x6F72
+0xE4FC 0x6F7C
+0xE4FD 0x6F7A
+0xE4FE 0x6FD1
+0xE540-0xE573 0x930A
+0xE574-0xE57E 0x933F
+0xE580-0xE59F 0x934A
+0xE5A0 0x936B
+0xE5A1 0x6FC9
+0xE5A2 0x6FA7
+0xE5A3 0x6FB9
+0xE5A4 0x6FB6
+0xE5A5 0x6FC2
+0xE5A6 0x6FE1
+0xE5A7 0x6FEE
+0xE5A8 0x6FDE
+0xE5A9 0x6FE0
+0xE5AA 0x6FEF
+0xE5AB 0x701A
+0xE5AC 0x7023
+0xE5AD 0x701B
+0xE5AE 0x7039
+0xE5AF 0x7035
+0xE5B0 0x704F
+0xE5B1 0x705E
+0xE5B2 0x5B80
+0xE5B3 0x5B84
+0xE5B4 0x5B95
+0xE5B5 0x5B93
+0xE5B6 0x5BA5
+0xE5B7 0x5BB8
+0xE5B8 0x752F
+0xE5B9 0x9A9E
+0xE5BA 0x6434
+0xE5BB 0x5BE4
+0xE5BC 0x5BEE
+0xE5BD 0x8930
+0xE5BE 0x5BF0
+0xE5BF 0x8E47
+0xE5C0 0x8B07
+0xE5C1 0x8FB6
+0xE5C2 0x8FD3
+0xE5C3 0x8FD5
+0xE5C4 0x8FE5
+0xE5C5 0x8FEE
+0xE5C6 0x8FE4
+0xE5C7 0x8FE9
+0xE5C8 0x8FE6
+0xE5C9 0x8FF3
+0xE5CA 0x8FE8
+0xE5CB 0x9005
+0xE5CC 0x9004
+0xE5CD 0x900B
+0xE5CE 0x9026
+0xE5CF 0x9011
+0xE5D0 0x900D
+0xE5D1 0x9016
+0xE5D2 0x9021
+0xE5D3-0xE5D4 0x9035
+0xE5D5 0x902D
+0xE5D6 0x902F
+0xE5D7 0x9044
+0xE5D8-0xE5D9 0x9051
+0xE5DA 0x9050
+0xE5DB 0x9068
+0xE5DC 0x9058
+0xE5DD 0x9062
+0xE5DE 0x905B
+0xE5DF 0x66B9
+0xE5E0 0x9074
+0xE5E1 0x907D
+0xE5E2 0x9082
+0xE5E3 0x9088
+0xE5E4 0x9083
+0xE5E5 0x908B
+0xE5E6 0x5F50
+0xE5E7 0x5F57
+0xE5E8 0x5F56
+0xE5E9 0x5F58
+0xE5EA 0x5C3B
+0xE5EB 0x54AB
+0xE5EC 0x5C50
+0xE5ED 0x5C59
+0xE5EE 0x5B71
+0xE5EF 0x5C63
+0xE5F0 0x5C66
+0xE5F1 0x7FBC
+0xE5F2 0x5F2A
+0xE5F3 0x5F29
+0xE5F4 0x5F2D
+0xE5F5 0x8274
+0xE5F6 0x5F3C
+0xE5F7 0x9B3B
+0xE5F8 0x5C6E
+0xE5F9 0x5981
+0xE5FA 0x5983
+0xE5FB 0x598D
+0xE5FC-0xE5FD 0x59A9
+0xE5FE 0x59A3
+0xE640-0xE662 0x936C
+0xE663-0xE67E 0x9390
+0xE680-0xE69D 0x93AC
+0xE69E-0xE6A0 0x93CB
+0xE6A1 0x5997
+0xE6A2 0x59CA
+0xE6A3 0x59AB
+0xE6A4 0x599E
+0xE6A5 0x59A4
+0xE6A6 0x59D2
+0xE6A7 0x59B2
+0xE6A8 0x59AF
+0xE6A9 0x59D7
+0xE6AA 0x59BE
+0xE6AB-0xE6AC 0x5A05
+0xE6AD 0x59DD
+0xE6AE 0x5A08
+0xE6AF 0x59E3
+0xE6B0 0x59D8
+0xE6B1 0x59F9
+0xE6B2 0x5A0C
+0xE6B3 0x5A09
+0xE6B4 0x5A32
+0xE6B5 0x5A34
+0xE6B6 0x5A11
+0xE6B7 0x5A23
+0xE6B8 0x5A13
+0xE6B9 0x5A40
+0xE6BA 0x5A67
+0xE6BB 0x5A4A
+0xE6BC 0x5A55
+0xE6BD 0x5A3C
+0xE6BE 0x5A62
+0xE6BF 0x5A75
+0xE6C0 0x80EC
+0xE6C1 0x5AAA
+0xE6C2 0x5A9B
+0xE6C3 0x5A77
+0xE6C4 0x5A7A
+0xE6C5 0x5ABE
+0xE6C6 0x5AEB
+0xE6C7 0x5AB2
+0xE6C8 0x5AD2
+0xE6C9 0x5AD4
+0xE6CA 0x5AB8
+0xE6CB 0x5AE0
+0xE6CC 0x5AE3
+0xE6CD 0x5AF1
+0xE6CE 0x5AD6
+0xE6CF 0x5AE6
+0xE6D0 0x5AD8
+0xE6D1 0x5ADC
+0xE6D2 0x5B09
+0xE6D3 0x5B17
+0xE6D4 0x5B16
+0xE6D5 0x5B32
+0xE6D6 0x5B37
+0xE6D7 0x5B40
+0xE6D8 0x5C15
+0xE6D9 0x5C1C
+0xE6DA 0x5B5A
+0xE6DB 0x5B65
+0xE6DC 0x5B73
+0xE6DD 0x5B51
+0xE6DE 0x5B53
+0xE6DF 0x5B62
+0xE6E0 0x9A75
+0xE6E1-0xE6E2 0x9A77
+0xE6E3 0x9A7A
+0xE6E4 0x9A7F
+0xE6E5 0x9A7D
+0xE6E6-0xE6E7 0x9A80
+0xE6E8 0x9A85
+0xE6E9 0x9A88
+0xE6EA 0x9A8A
+0xE6EB 0x9A90
+0xE6EC-0xE6ED 0x9A92
+0xE6EE 0x9A96
+0xE6EF 0x9A98
+0xE6F0-0xE6F2 0x9A9B
+0xE6F3-0xE6F4 0x9A9F
+0xE6F5-0xE6F6 0x9AA2
+0xE6F7 0x9AA5
+0xE6F8 0x9AA7
+0xE6F9 0x7E9F
+0xE6FA 0x7EA1
+0xE6FB 0x7EA3
+0xE6FC 0x7EA5
+0xE6FD-0xE6FE 0x7EA8
+0xE740-0xE747 0x93CE
+0xE748-0xE77E 0x93D7
+0xE780-0xE7A0 0x940E
+0xE7A1 0x7EAD
+0xE7A2 0x7EB0
+0xE7A3 0x7EBE
+0xE7A4-0xE7A6 0x7EC0
+0xE7A7 0x7EC9
+0xE7A8-0xE7A9 0x7ECB
+0xE7AA 0x7ED0
+0xE7AB 0x7ED4
+0xE7AC 0x7ED7
+0xE7AD 0x7EDB
+0xE7AE-0xE7AF 0x7EE0
+0xE7B0 0x7EE8
+0xE7B1 0x7EEB
+0xE7B2-0xE7B3 0x7EEE
+0xE7B4-0xE7B5 0x7EF1
+0xE7B6 0x7F0D
+0xE7B7 0x7EF6
+0xE7B8-0xE7B9 0x7EFA
+0xE7BA 0x7EFE
+0xE7BB-0xE7BD 0x7F01
+0xE7BE-0xE7BF 0x7F07
+0xE7C0-0xE7C1 0x7F0B
+0xE7C2 0x7F0F
+0xE7C3-0xE7C4 0x7F11
+0xE7C5 0x7F17
+0xE7C6 0x7F19
+0xE7C7 0x7F1C
+0xE7C8 0x7F1B
+0xE7C9 0x7F1F
+0xE7CA-0xE7D0 0x7F21
+0xE7D1-0xE7D4 0x7F2A
+0xE7D5-0xE7D9 0x7F2F
+0xE7DA 0x7F35
+0xE7DB 0x5E7A
+0xE7DC 0x757F
+0xE7DD 0x5DDB
+0xE7DE 0x753E
+0xE7DF 0x9095
+0xE7E0 0x738E
+0xE7E1 0x7391
+0xE7E2 0x73AE
+0xE7E3 0x73A2
+0xE7E4 0x739F
+0xE7E5 0x73CF
+0xE7E6 0x73C2
+0xE7E7 0x73D1
+0xE7E8 0x73B7
+0xE7E9 0x73B3
+0xE7EA 0x73C0
+0xE7EB 0x73C9
+0xE7EC 0x73C8
+0xE7ED 0x73E5
+0xE7EE 0x73D9
+0xE7EF 0x987C
+0xE7F0 0x740A
+0xE7F1 0x73E9
+0xE7F2 0x73E7
+0xE7F3 0x73DE
+0xE7F4 0x73BA
+0xE7F5 0x73F2
+0xE7F6 0x740F
+0xE7F7 0x742A
+0xE7F8 0x745B
+0xE7F9 0x7426
+0xE7FA 0x7425
+0xE7FB 0x7428
+0xE7FC 0x7430
+0xE7FD 0x742E
+0xE7FE 0x742C
+0xE840-0xE84E 0x942F
+0xE84F-0xE87A 0x943F
+0xE87B-0xE87E 0x946C
+0xE880-0xE894 0x9470
+0xE895 0x9491
+0xE896 0x9496
+0xE897 0x9498
+0xE898 0x94C7
+0xE899 0x94CF
+0xE89A-0xE89B 0x94D3
+0xE89C 0x94DA
+0xE89D 0x94E6
+0xE89E 0x94FB
+0xE89F 0x951C
+0xE8A0 0x9520
+0xE8A1 0x741B
+0xE8A2 0x741A
+0xE8A3 0x7441
+0xE8A4 0x745C
+0xE8A5 0x7457
+0xE8A6 0x7455
+0xE8A7 0x7459
+0xE8A8 0x7477
+0xE8A9 0x746D
+0xE8AA 0x747E
+0xE8AB 0x749C
+0xE8AC 0x748E
+0xE8AD-0xE8AE 0x7480
+0xE8AF 0x7487
+0xE8B0 0x748B
+0xE8B1 0x749E
+0xE8B2-0xE8B3 0x74A8
+0xE8B4 0x7490
+0xE8B5 0x74A7
+0xE8B6 0x74D2
+0xE8B7 0x74BA
+0xE8B8-0xE8BA 0x97EA
+0xE8BB 0x674C
+0xE8BC 0x6753
+0xE8BD 0x675E
+0xE8BE 0x6748
+0xE8BF 0x6769
+0xE8C0 0x67A5
+0xE8C1 0x6787
+0xE8C2 0x676A
+0xE8C3 0x6773
+0xE8C4 0x6798
+0xE8C5 0x67A7
+0xE8C6 0x6775
+0xE8C7 0x67A8
+0xE8C8 0x679E
+0xE8C9 0x67AD
+0xE8CA 0x678B
+0xE8CB 0x6777
+0xE8CC 0x677C
+0xE8CD 0x67F0
+0xE8CE 0x6809
+0xE8CF 0x67D8
+0xE8D0 0x680A
+0xE8D1 0x67E9
+0xE8D2 0x67B0
+0xE8D3 0x680C
+0xE8D4 0x67D9
+0xE8D5 0x67B5
+0xE8D6 0x67DA
+0xE8D7 0x67B3
+0xE8D8 0x67DD
+0xE8D9 0x6800
+0xE8DA 0x67C3
+0xE8DB 0x67B8
+0xE8DC 0x67E2
+0xE8DD 0x680E
+0xE8DE 0x67C1
+0xE8DF 0x67FD
+0xE8E0-0xE8E1 0x6832
+0xE8E2-0xE8E3 0x6860
+0xE8E4 0x684E
+0xE8E5 0x6862
+0xE8E6 0x6844
+0xE8E7 0x6864
+0xE8E8 0x6883
+0xE8E9 0x681D
+0xE8EA 0x6855
+0xE8EB 0x6866
+0xE8EC 0x6841
+0xE8ED 0x6867
+0xE8EE 0x6840
+0xE8EF 0x683E
+0xE8F0 0x684A
+0xE8F1 0x6849
+0xE8F2 0x6829
+0xE8F3 0x68B5
+0xE8F4 0x688F
+0xE8F5 0x6874
+0xE8F6 0x6877
+0xE8F7 0x6893
+0xE8F8 0x686B
+0xE8F9 0x68C2
+0xE8FA 0x696E
+0xE8FB 0x68FC
+0xE8FC-0xE8FD 0x691F
+0xE8FE 0x68F9
+0xE940 0x9527
+0xE941 0x9533
+0xE942 0x953D
+0xE943 0x9543
+0xE944 0x9548
+0xE945 0x954B
+0xE946 0x9555
+0xE947 0x955A
+0xE948 0x9560
+0xE949 0x956E
+0xE94A-0xE94B 0x9574
+0xE94C-0xE953 0x9577
+0xE954-0xE97E 0x9580
+0xE980-0xE9A0 0x95AB
+0xE9A1 0x6924
+0xE9A2 0x68F0
+0xE9A3 0x690B
+0xE9A4 0x6901
+0xE9A5 0x6957
+0xE9A6 0x68E3
+0xE9A7 0x6910
+0xE9A8 0x6971
+0xE9A9 0x6939
+0xE9AA 0x6960
+0xE9AB 0x6942
+0xE9AC 0x695D
+0xE9AD 0x6984
+0xE9AE 0x696B
+0xE9AF 0x6980
+0xE9B0 0x6998
+0xE9B1 0x6978
+0xE9B2 0x6934
+0xE9B3 0x69CC
+0xE9B4-0xE9B5 0x6987
+0xE9B6 0x69CE
+0xE9B7 0x6989
+0xE9B8 0x6966
+0xE9B9 0x6963
+0xE9BA 0x6979
+0xE9BB 0x699B
+0xE9BC 0x69A7
+0xE9BD 0x69BB
+0xE9BE 0x69AB
+0xE9BF 0x69AD
+0xE9C0 0x69D4
+0xE9C1 0x69B1
+0xE9C2 0x69C1
+0xE9C3 0x69CA
+0xE9C4 0x69DF
+0xE9C5 0x6995
+0xE9C6 0x69E0
+0xE9C7 0x698D
+0xE9C8 0x69FF
+0xE9C9 0x6A2F
+0xE9CA 0x69ED
+0xE9CB-0xE9CC 0x6A17
+0xE9CD 0x6A65
+0xE9CE 0x69F2
+0xE9CF 0x6A44
+0xE9D0 0x6A3E
+0xE9D1 0x6AA0
+0xE9D2 0x6A50
+0xE9D3 0x6A5B
+0xE9D4 0x6A35
+0xE9D5 0x6A8E
+0xE9D6 0x6A79
+0xE9D7 0x6A3D
+0xE9D8 0x6A28
+0xE9D9 0x6A58
+0xE9DA 0x6A7C
+0xE9DB 0x6A91
+0xE9DC 0x6A90
+0xE9DD 0x6AA9
+0xE9DE 0x6A97
+0xE9DF 0x6AAB
+0xE9E0 0x7337
+0xE9E1 0x7352
+0xE9E2-0xE9E3 0x6B81
+0xE9E4 0x6B87
+0xE9E5 0x6B84
+0xE9E6-0xE9E7 0x6B92
+0xE9E8 0x6B8D
+0xE9E9-0xE9EA 0x6B9A
+0xE9EB 0x6BA1
+0xE9EC 0x6BAA
+0xE9ED 0x8F6B
+0xE9EE 0x8F6D
+0xE9EF-0xE9F1 0x8F71
+0xE9F2-0xE9F3 0x8F75
+0xE9F4 0x8F78
+0xE9F5 0x8F77
+0xE9F6-0xE9F7 0x8F79
+0xE9F8 0x8F7C
+0xE9F9 0x8F7E
+0xE9FA-0xE9FB 0x8F81
+0xE9FC 0x8F84
+0xE9FD 0x8F87
+0xE9FE 0x8F8B
+0xEA40-0xEA5B 0x95CC
+0xEA5C 0x95EC
+0xEA5D 0x95FF
+0xEA5E 0x9607
+0xEA5F 0x9613
+0xEA60 0x9618
+0xEA61 0x961B
+0xEA62 0x961E
+0xEA63 0x9620
+0xEA64-0xEA6A 0x9623
+0xEA6B-0xEA6D 0x962B
+0xEA6E-0xEA6F 0x962F
+0xEA70-0xEA73 0x9637
+0xEA74 0x963E
+0xEA75 0x9641
+0xEA76 0x9643
+0xEA77 0x964A
+0xEA78-0xEA79 0x964E
+0xEA7A-0xEA7C 0x9651
+0xEA7D-0xEA7E 0x9656
+0xEA80-0xEA82 0x9658
+0xEA83-0xEA85 0x965C
+0xEA86 0x9660
+0xEA87 0x9663
+0xEA88-0xEA89 0x9665
+0xEA8A 0x966B
+0xEA8B-0xEA8F 0x966D
+0xEA90 0x9673
+0xEA91-0xEA9D 0x9678
+0xEA9E 0x9687
+0xEA9F-0xEAA0 0x9689
+0xEAA1-0xEAA3 0x8F8D
+0xEAA4 0x8F98
+0xEAA5 0x8F9A
+0xEAA6 0x8ECE
+0xEAA7 0x620B
+0xEAA8 0x6217
+0xEAA9 0x621B
+0xEAAA 0x621F
+0xEAAB 0x6222
+0xEAAC 0x6221
+0xEAAD 0x6225
+0xEAAE 0x6224
+0xEAAF 0x622C
+0xEAB0 0x81E7
+0xEAB1 0x74EF
+0xEAB2 0x74F4
+0xEAB3 0x74FF
+0xEAB4 0x750F
+0xEAB5 0x7511
+0xEAB6 0x7513
+0xEAB7 0x6534
+0xEAB8-0xEABA 0x65EE
+0xEABB 0x660A
+0xEABC 0x6619
+0xEABD 0x6772
+0xEABE 0x6603
+0xEABF 0x6615
+0xEAC0 0x6600
+0xEAC1 0x7085
+0xEAC2 0x66F7
+0xEAC3 0x661D
+0xEAC4 0x6634
+0xEAC5 0x6631
+0xEAC6 0x6636
+0xEAC7 0x6635
+0xEAC8 0x8006
+0xEAC9 0x665F
+0xEACA 0x6654
+0xEACB 0x6641
+0xEACC 0x664F
+0xEACD 0x6656
+0xEACE 0x6661
+0xEACF 0x6657
+0xEAD0 0x6677
+0xEAD1 0x6684
+0xEAD2 0x668C
+0xEAD3 0x66A7
+0xEAD4 0x669D
+0xEAD5 0x66BE
+0xEAD6-0xEAD7 0x66DB
+0xEAD8 0x66E6
+0xEAD9 0x66E9
+0xEADA-0xEADB 0x8D32
+0xEADC 0x8D36
+0xEADD 0x8D3B
+0xEADE 0x8D3D
+0xEADF 0x8D40
+0xEAE0-0xEAE1 0x8D45
+0xEAE2-0xEAE3 0x8D48
+0xEAE4 0x8D47
+0xEAE5 0x8D4D
+0xEAE6 0x8D55
+0xEAE7 0x8D59
+0xEAE8 0x89C7
+0xEAE9-0xEAEB 0x89CA
+0xEAEC-0xEAEF 0x89CE
+0xEAF0 0x726E
+0xEAF1 0x729F
+0xEAF2 0x725D
+0xEAF3 0x7266
+0xEAF4 0x726F
+0xEAF5-0xEAF6 0x727E
+0xEAF7 0x7284
+0xEAF8 0x728B
+0xEAF9 0x728D
+0xEAFA 0x728F
+0xEAFB 0x7292
+0xEAFC 0x6308
+0xEAFD 0x6332
+0xEAFE 0x63B0
+0xEB40 0x968C
+0xEB41 0x968E
+0xEB42-0xEB44 0x9691
+0xEB45-0xEB46 0x9695
+0xEB47-0xEB48 0x969A
+0xEB49-0xEB52 0x969D
+0xEB53-0xEB5A 0x96A8
+0xEB5B-0xEB5C 0x96B1
+0xEB5D-0xEB5E 0x96B4
+0xEB5F-0xEB60 0x96B7
+0xEB61-0xEB62 0x96BA
+0xEB63 0x96BF
+0xEB64-0xEB65 0x96C2
+0xEB66 0x96C8
+0xEB67-0xEB68 0x96CA
+0xEB69-0xEB6A 0x96D0
+0xEB6B-0xEB6C 0x96D3
+0xEB6D-0xEB76 0x96D6
+0xEB77-0xEB7D 0x96E1
+0xEB7E 0x96EB
+0xEB80-0xEB82 0x96EC
+0xEB83-0xEB85 0x96F0
+0xEB86-0xEB87 0x96F4
+0xEB88 0x96F8
+0xEB89-0xEB8C 0x96FA
+0xEB8D 0x96FF
+0xEB8E-0xEB8F 0x9702
+0xEB90 0x9705
+0xEB91-0xEB93 0x970A
+0xEB94-0xEB96 0x9710
+0xEB97-0xEB98 0x9714
+0xEB99-0xEB9D 0x9717
+0xEB9E 0x971D
+0xEB9F-0xEBA0 0x971F
+0xEBA1 0x643F
+0xEBA2 0x64D8
+0xEBA3 0x8004
+0xEBA4 0x6BEA
+0xEBA5 0x6BF3
+0xEBA6 0x6BFD
+0xEBA7 0x6BF5
+0xEBA8 0x6BF9
+0xEBA9 0x6C05
+0xEBAA 0x6C07
+0xEBAB 0x6C06
+0xEBAC 0x6C0D
+0xEBAD 0x6C15
+0xEBAE-0xEBB0 0x6C18
+0xEBB1 0x6C21
+0xEBB2 0x6C29
+0xEBB3 0x6C24
+0xEBB4 0x6C2A
+0xEBB5 0x6C32
+0xEBB6 0x6535
+0xEBB7 0x6555
+0xEBB8 0x656B
+0xEBB9 0x724D
+0xEBBA 0x7252
+0xEBBB 0x7256
+0xEBBC 0x7230
+0xEBBD 0x8662
+0xEBBE 0x5216
+0xEBBF 0x809F
+0xEBC0 0x809C
+0xEBC1 0x8093
+0xEBC2 0x80BC
+0xEBC3 0x670A
+0xEBC4 0x80BD
+0xEBC5 0x80B1
+0xEBC6 0x80AB
+0xEBC7 0x80AD
+0xEBC8 0x80B4
+0xEBC9 0x80B7
+0xEBCA-0xEBCD 0x80E7
+0xEBCE 0x80DB
+0xEBCF 0x80C2
+0xEBD0 0x80C4
+0xEBD1 0x80D9
+0xEBD2 0x80CD
+0xEBD3 0x80D7
+0xEBD4 0x6710
+0xEBD5 0x80DD
+0xEBD6 0x80EB
+0xEBD7 0x80F1
+0xEBD8 0x80F4
+0xEBD9 0x80ED
+0xEBDA-0xEBDB 0x810D
+0xEBDC 0x80F2
+0xEBDD 0x80FC
+0xEBDE 0x6715
+0xEBDF 0x8112
+0xEBE0 0x8C5A
+0xEBE1 0x8136
+0xEBE2 0x811E
+0xEBE3 0x812C
+0xEBE4 0x8118
+0xEBE5 0x8132
+0xEBE6 0x8148
+0xEBE7 0x814C
+0xEBE8 0x8153
+0xEBE9 0x8174
+0xEBEA-0xEBEB 0x8159
+0xEBEC 0x8171
+0xEBED 0x8160
+0xEBEE 0x8169
+0xEBEF-0xEBF0 0x817C
+0xEBF1 0x816D
+0xEBF2 0x8167
+0xEBF3 0x584D
+0xEBF4 0x5AB5
+0xEBF5 0x8188
+0xEBF6 0x8182
+0xEBF7 0x8191
+0xEBF8 0x6ED5
+0xEBF9 0x81A3
+0xEBFA 0x81AA
+0xEBFB 0x81CC
+0xEBFC 0x6726
+0xEBFD 0x81CA
+0xEBFE 0x81BB
+0xEC40-0xEC48 0x9721
+0xEC49-0xEC4A 0x972B
+0xEC4B-0xEC4C 0x972E
+0xEC4D 0x9731
+0xEC4E-0xEC52 0x9733
+0xEC53-0xEC56 0x973A
+0xEC57-0xEC69 0x973F
+0xEC6A-0xEC6B 0x9754
+0xEC6C-0xEC6D 0x9757
+0xEC6E 0x975A
+0xEC6F-0xEC70 0x975C
+0xEC71 0x975F
+0xEC72-0xEC73 0x9763
+0xEC74-0xEC76 0x9766
+0xEC77-0xEC7E 0x976A
+0xEC80 0x9772
+0xEC81 0x9775
+0xEC82-0xEC86 0x9777
+0xEC87-0xEC8E 0x977D
+0xEC8F-0xEC93 0x9786
+0xEC94 0x978C
+0xEC95-0xEC97 0x978E
+0xEC98 0x9793
+0xEC99-0xEC9B 0x9795
+0xEC9C-0xECA0 0x9799
+0xECA1 0x81C1
+0xECA2 0x81A6
+0xECA3 0x6B24
+0xECA4 0x6B37
+0xECA5 0x6B39
+0xECA6 0x6B43
+0xECA7 0x6B46
+0xECA8 0x6B59
+0xECA9-0xECAB 0x98D1
+0xECAC 0x98D5
+0xECAD-0xECAE 0x98D9
+0xECAF 0x6BB3
+0xECB0 0x5F40
+0xECB1 0x6BC2
+0xECB2 0x89F3
+0xECB3 0x6590
+0xECB4 0x9F51
+0xECB5 0x6593
+0xECB6 0x65BC
+0xECB7 0x65C6
+0xECB8 0x65C4
+0xECB9 0x65C3
+0xECBA 0x65CC
+0xECBB 0x65CE
+0xECBC 0x65D2
+0xECBD 0x65D6
+0xECBE 0x7080
+0xECBF 0x709C
+0xECC0 0x7096
+0xECC1 0x709D
+0xECC2 0x70BB
+0xECC3 0x70C0
+0xECC4 0x70B7
+0xECC5 0x70AB
+0xECC6 0x70B1
+0xECC7 0x70E8
+0xECC8 0x70CA
+0xECC9 0x7110
+0xECCA 0x7113
+0xECCB 0x7116
+0xECCC 0x712F
+0xECCD 0x7131
+0xECCE 0x7173
+0xECCF 0x715C
+0xECD0 0x7168
+0xECD1 0x7145
+0xECD2 0x7172
+0xECD3 0x714A
+0xECD4 0x7178
+0xECD5 0x717A
+0xECD6 0x7198
+0xECD7 0x71B3
+0xECD8 0x71B5
+0xECD9 0x71A8
+0xECDA 0x71A0
+0xECDB 0x71E0
+0xECDC 0x71D4
+0xECDD 0x71E7
+0xECDE 0x71F9
+0xECDF 0x721D
+0xECE0 0x7228
+0xECE1 0x706C
+0xECE2 0x7118
+0xECE3 0x7166
+0xECE4 0x71B9
+0xECE5 0x623E
+0xECE6 0x623D
+0xECE7 0x6243
+0xECE8-0xECE9 0x6248
+0xECEA 0x793B
+0xECEB 0x7940
+0xECEC 0x7946
+0xECED 0x7949
+0xECEE-0xECEF 0x795B
+0xECF0 0x7953
+0xECF1 0x795A
+0xECF2 0x7962
+0xECF3 0x7957
+0xECF4 0x7960
+0xECF5 0x796F
+0xECF6 0x7967
+0xECF7 0x797A
+0xECF8 0x7985
+0xECF9 0x798A
+0xECFA 0x799A
+0xECFB 0x79A7
+0xECFC 0x79B3
+0xECFD 0x5FD1
+0xECFE 0x5FD0
+0xED40-0xED41 0x979E
+0xED42-0xED43 0x97A1
+0xED44-0xED4A 0x97A4
+0xED4B 0x97AC
+0xED4C 0x97AE
+0xED4D-0xED4E 0x97B0
+0xED4F 0x97B3
+0xED50-0xED7E 0x97B5
+0xED80-0xED81 0x97E4
+0xED82 0x97E8
+0xED83-0xED87 0x97EE
+0xED88 0x97F4
+0xED89-0xEDA0 0x97F7
+0xEDA1 0x603C
+0xEDA2 0x605D
+0xEDA3 0x605A
+0xEDA4 0x6067
+0xEDA5 0x6041
+0xEDA6 0x6059
+0xEDA7 0x6063
+0xEDA8 0x60AB
+0xEDA9 0x6106
+0xEDAA 0x610D
+0xEDAB 0x615D
+0xEDAC 0x61A9
+0xEDAD 0x619D
+0xEDAE 0x61CB
+0xEDAF 0x61D1
+0xEDB0 0x6206
+0xEDB1 0x8080
+0xEDB2 0x807F
+0xEDB3 0x6C93
+0xEDB4 0x6CF6
+0xEDB5 0x6DFC
+0xEDB6 0x77F6
+0xEDB7 0x77F8
+0xEDB8 0x7800
+0xEDB9 0x7809
+0xEDBA-0xEDBB 0x7817
+0xEDBC 0x7811
+0xEDBD 0x65AB
+0xEDBE 0x782D
+0xEDBF-0xEDC0 0x781C
+0xEDC1-0xEDC3 0x7839
+0xEDC4 0x781F
+0xEDC5 0x783C
+0xEDC6 0x7825
+0xEDC7 0x782C
+0xEDC8 0x7823
+0xEDC9 0x7829
+0xEDCA 0x784E
+0xEDCB 0x786D
+0xEDCC-0xEDCD 0x7856
+0xEDCE 0x7826
+0xEDCF 0x7850
+0xEDD0 0x7847
+0xEDD1 0x784C
+0xEDD2 0x786A
+0xEDD3 0x789B
+0xEDD4 0x7893
+0xEDD5 0x789A
+0xEDD6 0x7887
+0xEDD7 0x789C
+0xEDD8 0x78A1
+0xEDD9 0x78A3
+0xEDDA 0x78B2
+0xEDDB 0x78B9
+0xEDDC 0x78A5
+0xEDDD 0x78D4
+0xEDDE 0x78D9
+0xEDDF 0x78C9
+0xEDE0 0x78EC
+0xEDE1 0x78F2
+0xEDE2 0x7905
+0xEDE3 0x78F4
+0xEDE4 0x7913
+0xEDE5 0x7924
+0xEDE6 0x791E
+0xEDE7 0x7934
+0xEDE8 0x9F9B
+0xEDE9 0x9EF9
+0xEDEA-0xEDEB 0x9EFB
+0xEDEC 0x76F1
+0xEDED 0x7704
+0xEDEE 0x770D
+0xEDEF 0x76F9
+0xEDF0-0xEDF1 0x7707
+0xEDF2 0x771A
+0xEDF3 0x7722
+0xEDF4 0x7719
+0xEDF5 0x772D
+0xEDF6 0x7726
+0xEDF7 0x7735
+0xEDF8 0x7738
+0xEDF9-0xEDFA 0x7750
+0xEDFB 0x7747
+0xEDFC 0x7743
+0xEDFD 0x775A
+0xEDFE 0x7768
+0xEE40-0xEE7E 0x980F
+0xEE80-0xEEA0 0x984E
+0xEEA1 0x7762
+0xEEA2 0x7765
+0xEEA3 0x777F
+0xEEA4 0x778D
+0xEEA5 0x777D
+0xEEA6 0x7780
+0xEEA7 0x778C
+0xEEA8 0x7791
+0xEEA9-0xEEAA 0x779F
+0xEEAB 0x77B0
+0xEEAC 0x77B5
+0xEEAD 0x77BD
+0xEEAE 0x753A
+0xEEAF 0x7540
+0xEEB0 0x754E
+0xEEB1 0x754B
+0xEEB2 0x7548
+0xEEB3 0x755B
+0xEEB4 0x7572
+0xEEB5 0x7579
+0xEEB6 0x7583
+0xEEB7 0x7F58
+0xEEB8 0x7F61
+0xEEB9 0x7F5F
+0xEEBA 0x8A48
+0xEEBB 0x7F68
+0xEEBC 0x7F74
+0xEEBD 0x7F71
+0xEEBE 0x7F79
+0xEEBF 0x7F81
+0xEEC0 0x7F7E
+0xEEC1 0x76CD
+0xEEC2 0x76E5
+0xEEC3 0x8832
+0xEEC4-0xEEC6 0x9485
+0xEEC7 0x948B
+0xEEC8 0x948A
+0xEEC9-0xEECA 0x948C
+0xEECB-0xEECC 0x948F
+0xEECD 0x9494
+0xEECE 0x9497
+0xEECF 0x9495
+0xEED0-0xEED2 0x949A
+0xEED3-0xEED4 0x94A3
+0xEED5 0x94AB
+0xEED6 0x94AA
+0xEED7 0x94AD
+0xEED8 0x94AC
+0xEED9-0xEEDA 0x94AF
+0xEEDB 0x94B2
+0xEEDC 0x94B4
+0xEEDD-0xEEE1 0x94B6
+0xEEE2-0xEEE3 0x94BC
+0xEEE4 0x94BF
+0xEEE5 0x94C4
+0xEEE6-0xEEEC 0x94C8
+0xEEED-0xEEEF 0x94D0
+0xEEF0-0xEEF2 0x94D5
+0xEEF3 0x94D9
+0xEEF4 0x94D8
+0xEEF5 0x94DB
+0xEEF6-0xEEF8 0x94DE
+0xEEF9 0x94E2
+0xEEFA-0xEEFB 0x94E4
+0xEEFC-0xEEFD 0x94E7
+0xEEFE 0x94EA
+0xEF40-0xEF45 0x986F
+0xEF46 0x988B
+0xEF47 0x988E
+0xEF48 0x9892
+0xEF49 0x9895
+0xEF4A 0x9899
+0xEF4B 0x98A3
+0xEF4C-0xEF71 0x98A8
+0xEF72-0xEF73 0x98CF
+0xEF74 0x98D4
+0xEF75-0xEF76 0x98D6
+0xEF77-0xEF79 0x98DB
+0xEF7A-0xEF7E 0x98E0
+0xEF80-0xEF81 0x98E5
+0xEF82-0xEFA0 0x98E9
+0xEFA1 0x94E9
+0xEFA2 0x94EB
+0xEFA3-0xEFA4 0x94EE
+0xEFA5-0xEFA7 0x94F3
+0xEFA8 0x94F7
+0xEFA9 0x94F9
+0xEFAA-0xEFAB 0x94FC
+0xEFAC 0x94FF
+0xEFAD 0x9503
+0xEFAE 0x9502
+0xEFAF-0xEFB0 0x9506
+0xEFB1-0xEFB2 0x9509
+0xEFB3-0xEFB5 0x950D
+0xEFB6-0xEFBA 0x9512
+0xEFBB 0x9518
+0xEFBC 0x951B
+0xEFBD-0xEFBF 0x951D
+0xEFC0 0x9522
+0xEFC1-0xEFC2 0x952A
+0xEFC3 0x9529
+0xEFC4 0x952C
+0xEFC5-0xEFC6 0x9531
+0xEFC7 0x9534
+0xEFC8-0xEFCA 0x9536
+0xEFCB 0x953C
+0xEFCC-0xEFCD 0x953E
+0xEFCE 0x9542
+0xEFCF 0x9535
+0xEFD0-0xEFD2 0x9544
+0xEFD3 0x9549
+0xEFD4 0x954C
+0xEFD5-0xEFD6 0x954E
+0xEFD7-0xEFD9 0x9552
+0xEFDA-0xEFDD 0x9556
+0xEFDE 0x955B
+0xEFDF-0xEFE0 0x955E
+0xEFE1 0x955D
+0xEFE2-0xEFE3 0x9561
+0xEFE4-0xEFEC 0x9564
+0xEFED 0x956F
+0xEFEE-0xEFF0 0x9571
+0xEFF1 0x953A
+0xEFF2 0x77E7
+0xEFF3 0x77EC
+0xEFF4 0x96C9
+0xEFF5 0x79D5
+0xEFF6 0x79ED
+0xEFF7 0x79E3
+0xEFF8 0x79EB
+0xEFF9 0x7A06
+0xEFFA 0x5D47
+0xEFFB 0x7A03
+0xEFFC 0x7A02
+0xEFFD 0x7A1E
+0xEFFE 0x7A14
+0xF040-0xF044 0x9908
+0xF045-0xF046 0x990E
+0xF047-0xF063 0x9911
+0xF064-0xF07E 0x992F
+0xF080-0xF089 0x994A
+0xF08A-0xF096 0x9956
+0xF097 0x9964
+0xF098 0x9966
+0xF099 0x9973
+0xF09A-0xF09B 0x9978
+0xF09C 0x997B
+0xF09D 0x997E
+0xF09E-0xF09F 0x9982
+0xF0A0 0x9989
+0xF0A1 0x7A39
+0xF0A2 0x7A37
+0xF0A3 0x7A51
+0xF0A4 0x9ECF
+0xF0A5 0x99A5
+0xF0A6 0x7A70
+0xF0A7 0x7688
+0xF0A8 0x768E
+0xF0A9 0x7693
+0xF0AA 0x7699
+0xF0AB 0x76A4
+0xF0AC 0x74DE
+0xF0AD 0x74E0
+0xF0AE 0x752C
+0xF0AF 0x9E20
+0xF0B0 0x9E22
+0xF0B1-0xF0B5 0x9E28
+0xF0B6 0x9E32
+0xF0B7 0x9E31
+0xF0B8 0x9E36
+0xF0B9 0x9E38
+0xF0BA 0x9E37
+0xF0BB-0xF0BC 0x9E39
+0xF0BD 0x9E3E
+0xF0BE-0xF0BF 0x9E41
+0xF0C0 0x9E44
+0xF0C1-0xF0C4 0x9E46
+0xF0C5-0xF0C6 0x9E4B
+0xF0C7 0x9E4E
+0xF0C8 0x9E51
+0xF0C9 0x9E55
+0xF0CA 0x9E57
+0xF0CB-0xF0CD 0x9E5A
+0xF0CE 0x9E5E
+0xF0CF 0x9E63
+0xF0D0-0xF0D6 0x9E66
+0xF0D7 0x9E71
+0xF0D8 0x9E6D
+0xF0D9 0x9E73
+0xF0DA 0x7592
+0xF0DB 0x7594
+0xF0DC 0x7596
+0xF0DD 0x75A0
+0xF0DE 0x759D
+0xF0DF 0x75AC
+0xF0E0 0x75A3
+0xF0E1-0xF0E2 0x75B3
+0xF0E3 0x75B8
+0xF0E4 0x75C4
+0xF0E5 0x75B1
+0xF0E6 0x75B0
+0xF0E7 0x75C3
+0xF0E8 0x75C2
+0xF0E9 0x75D6
+0xF0EA 0x75CD
+0xF0EB 0x75E3
+0xF0EC 0x75E8
+0xF0ED 0x75E6
+0xF0EE 0x75E4
+0xF0EF 0x75EB
+0xF0F0 0x75E7
+0xF0F1 0x7603
+0xF0F2 0x75F1
+0xF0F3 0x75FC
+0xF0F4 0x75FF
+0xF0F5 0x7610
+0xF0F6 0x7600
+0xF0F7 0x7605
+0xF0F8 0x760C
+0xF0F9 0x7617
+0xF0FA 0x760A
+0xF0FB 0x7625
+0xF0FC 0x7618
+0xF0FD 0x7615
+0xF0FE 0x7619
+0xF140 0x998C
+0xF141 0x998E
+0xF142-0xF14C 0x999A
+0xF14D-0xF14E 0x99A6
+0xF14F-0xF17E 0x99A9
+0xF180-0xF1A0 0x99D9
+0xF1A1 0x761B
+0xF1A2 0x763C
+0xF1A3 0x7622
+0xF1A4 0x7620
+0xF1A5 0x7640
+0xF1A6 0x762D
+0xF1A7 0x7630
+0xF1A8 0x763F
+0xF1A9 0x7635
+0xF1AA 0x7643
+0xF1AB 0x763E
+0xF1AC 0x7633
+0xF1AD 0x764D
+0xF1AE 0x765E
+0xF1AF 0x7654
+0xF1B0 0x765C
+0xF1B1 0x7656
+0xF1B2 0x766B
+0xF1B3 0x766F
+0xF1B4 0x7FCA
+0xF1B5 0x7AE6
+0xF1B6-0xF1B7 0x7A78
+0xF1B8 0x7A80
+0xF1B9 0x7A86
+0xF1BA 0x7A88
+0xF1BB 0x7A95
+0xF1BC 0x7AA6
+0xF1BD 0x7AA0
+0xF1BE 0x7AAC
+0xF1BF 0x7AA8
+0xF1C0 0x7AAD
+0xF1C1 0x7AB3
+0xF1C2 0x8864
+0xF1C3 0x8869
+0xF1C4 0x8872
+0xF1C5 0x887D
+0xF1C6 0x887F
+0xF1C7 0x8882
+0xF1C8 0x88A2
+0xF1C9 0x88C6
+0xF1CA 0x88B7
+0xF1CB 0x88BC
+0xF1CC 0x88C9
+0xF1CD 0x88E2
+0xF1CE 0x88CE
+0xF1CF 0x88E3
+0xF1D0 0x88E5
+0xF1D1 0x88F1
+0xF1D2 0x891A
+0xF1D3 0x88FC
+0xF1D4 0x88E8
+0xF1D5 0x88FE
+0xF1D6 0x88F0
+0xF1D7 0x8921
+0xF1D8 0x8919
+0xF1D9 0x8913
+0xF1DA 0x891B
+0xF1DB 0x890A
+0xF1DC 0x8934
+0xF1DD 0x892B
+0xF1DE 0x8936
+0xF1DF 0x8941
+0xF1E0 0x8966
+0xF1E1 0x897B
+0xF1E2 0x758B
+0xF1E3 0x80E5
+0xF1E4 0x76B2
+0xF1E5 0x76B4
+0xF1E6 0x77DC
+0xF1E7 0x8012
+0xF1E8 0x8014
+0xF1E9 0x8016
+0xF1EA 0x801C
+0xF1EB 0x8020
+0xF1EC 0x8022
+0xF1ED-0xF1EF 0x8025
+0xF1F0 0x8029
+0xF1F1 0x8028
+0xF1F2 0x8031
+0xF1F3 0x800B
+0xF1F4 0x8035
+0xF1F5 0x8043
+0xF1F6 0x8046
+0xF1F7 0x804D
+0xF1F8 0x8052
+0xF1F9 0x8069
+0xF1FA 0x8071
+0xF1FB 0x8983
+0xF1FC 0x9878
+0xF1FD 0x9880
+0xF1FE 0x9883
+0xF240-0xF27E 0x99FA
+0xF280-0xF2A0 0x9A39
+0xF2A1 0x9889
+0xF2A2-0xF2A3 0x988C
+0xF2A4 0x988F
+0xF2A5 0x9894
+0xF2A6-0xF2A7 0x989A
+0xF2A8-0xF2A9 0x989E
+0xF2AA-0xF2AB 0x98A1
+0xF2AC-0xF2AD 0x98A5
+0xF2AE 0x864D
+0xF2AF 0x8654
+0xF2B0 0x866C
+0xF2B1 0x866E
+0xF2B2 0x867F
+0xF2B3 0x867A
+0xF2B4 0x867C
+0xF2B5 0x867B
+0xF2B6 0x86A8
+0xF2B7 0x868D
+0xF2B8 0x868B
+0xF2B9 0x86AC
+0xF2BA 0x869D
+0xF2BB 0x86A7
+0xF2BC 0x86A3
+0xF2BD 0x86AA
+0xF2BE 0x8693
+0xF2BF 0x86A9
+0xF2C0 0x86B6
+0xF2C1 0x86C4
+0xF2C2 0x86B5
+0xF2C3 0x86CE
+0xF2C4 0x86B0
+0xF2C5 0x86BA
+0xF2C6 0x86B1
+0xF2C7 0x86AF
+0xF2C8 0x86C9
+0xF2C9 0x86CF
+0xF2CA 0x86B4
+0xF2CB 0x86E9
+0xF2CC-0xF2CD 0x86F1
+0xF2CE 0x86ED
+0xF2CF 0x86F3
+0xF2D0 0x86D0
+0xF2D1 0x8713
+0xF2D2 0x86DE
+0xF2D3 0x86F4
+0xF2D4 0x86DF
+0xF2D5 0x86D8
+0xF2D6 0x86D1
+0xF2D7 0x8703
+0xF2D8 0x8707
+0xF2D9 0x86F8
+0xF2DA 0x8708
+0xF2DB 0x870A
+0xF2DC 0x870D
+0xF2DD 0x8709
+0xF2DE 0x8723
+0xF2DF 0x873B
+0xF2E0 0x871E
+0xF2E1 0x8725
+0xF2E2 0x872E
+0xF2E3 0x871A
+0xF2E4 0x873E
+0xF2E5 0x8748
+0xF2E6 0x8734
+0xF2E7 0x8731
+0xF2E8 0x8729
+0xF2E9 0x8737
+0xF2EA 0x873F
+0xF2EB 0x8782
+0xF2EC 0x8722
+0xF2ED-0xF2EE 0x877D
+0xF2EF 0x877B
+0xF2F0 0x8760
+0xF2F1 0x8770
+0xF2F2 0x874C
+0xF2F3 0x876E
+0xF2F4 0x878B
+0xF2F5 0x8753
+0xF2F6 0x8763
+0xF2F7 0x877C
+0xF2F8 0x8764
+0xF2F9 0x8759
+0xF2FA 0x8765
+0xF2FB 0x8793
+0xF2FC 0x87AF
+0xF2FD 0x87A8
+0xF2FE 0x87D2
+0xF340-0xF351 0x9A5A
+0xF352 0x9A72
+0xF353 0x9A83
+0xF354 0x9A89
+0xF355-0xF356 0x9A8D
+0xF357-0xF358 0x9A94
+0xF359 0x9A99
+0xF35A 0x9AA6
+0xF35B-0xF361 0x9AA9
+0xF362-0xF365 0x9AB2
+0xF366 0x9AB9
+0xF367 0x9ABB
+0xF368-0xF36A 0x9ABD
+0xF36B-0xF36C 0x9AC3
+0xF36D-0xF371 0x9AC6
+0xF372-0xF375 0x9ACD
+0xF376 0x9AD2
+0xF377-0xF37A 0x9AD4
+0xF37B-0xF37E 0x9AD9
+0xF380-0xF381 0x9ADD
+0xF382 0x9AE0
+0xF383-0xF386 0x9AE2
+0xF387-0xF38A 0x9AE7
+0xF38B 0x9AEC
+0xF38C 0x9AEE
+0xF38D-0xF395 0x9AF0
+0xF396 0x9AFA
+0xF397-0xF39D 0x9AFC
+0xF39E-0xF3A0 0x9B04
+0xF3A1 0x87C6
+0xF3A2 0x8788
+0xF3A3 0x8785
+0xF3A4 0x87AD
+0xF3A5 0x8797
+0xF3A6 0x8783
+0xF3A7 0x87AB
+0xF3A8 0x87E5
+0xF3A9 0x87AC
+0xF3AA 0x87B5
+0xF3AB 0x87B3
+0xF3AC 0x87CB
+0xF3AD 0x87D3
+0xF3AE 0x87BD
+0xF3AF 0x87D1
+0xF3B0 0x87C0
+0xF3B1 0x87CA
+0xF3B2 0x87DB
+0xF3B3 0x87EA
+0xF3B4 0x87E0
+0xF3B5 0x87EE
+0xF3B6 0x8816
+0xF3B7 0x8813
+0xF3B8 0x87FE
+0xF3B9 0x880A
+0xF3BA 0x881B
+0xF3BB 0x8821
+0xF3BC 0x8839
+0xF3BD 0x883C
+0xF3BE 0x7F36
+0xF3BF 0x7F42
+0xF3C0-0xF3C1 0x7F44
+0xF3C2 0x8210
+0xF3C3 0x7AFA
+0xF3C4 0x7AFD
+0xF3C5 0x7B08
+0xF3C6-0xF3C7 0x7B03
+0xF3C8 0x7B15
+0xF3C9 0x7B0A
+0xF3CA 0x7B2B
+0xF3CB 0x7B0F
+0xF3CC 0x7B47
+0xF3CD 0x7B38
+0xF3CE 0x7B2A
+0xF3CF 0x7B19
+0xF3D0 0x7B2E
+0xF3D1 0x7B31
+0xF3D2 0x7B20
+0xF3D3 0x7B25
+0xF3D4 0x7B24
+0xF3D5 0x7B33
+0xF3D6 0x7B3E
+0xF3D7 0x7B1E
+0xF3D8 0x7B58
+0xF3D9 0x7B5A
+0xF3DA 0x7B45
+0xF3DB 0x7B75
+0xF3DC 0x7B4C
+0xF3DD 0x7B5D
+0xF3DE 0x7B60
+0xF3DF 0x7B6E
+0xF3E0 0x7B7B
+0xF3E1 0x7B62
+0xF3E2 0x7B72
+0xF3E3 0x7B71
+0xF3E4 0x7B90
+0xF3E5-0xF3E6 0x7BA6
+0xF3E7 0x7BB8
+0xF3E8 0x7BAC
+0xF3E9 0x7B9D
+0xF3EA 0x7BA8
+0xF3EB 0x7B85
+0xF3EC 0x7BAA
+0xF3ED 0x7B9C
+0xF3EE 0x7BA2
+0xF3EF 0x7BAB
+0xF3F0 0x7BB4
+0xF3F1 0x7BD1
+0xF3F2 0x7BC1
+0xF3F3 0x7BCC
+0xF3F4 0x7BDD
+0xF3F5 0x7BDA
+0xF3F6-0xF3F7 0x7BE5
+0xF3F8 0x7BEA
+0xF3F9 0x7C0C
+0xF3FA 0x7BFE
+0xF3FB 0x7BFC
+0xF3FC 0x7C0F
+0xF3FD 0x7C16
+0xF3FE 0x7C0B
+0xF440 0x9B07
+0xF441-0xF446 0x9B09
+0xF447-0xF449 0x9B10
+0xF44A-0xF454 0x9B14
+0xF455-0xF457 0x9B20
+0xF458-0xF462 0x9B24
+0xF463-0xF464 0x9B30
+0xF465-0xF46C 0x9B33
+0xF46D-0xF470 0x9B3D
+0xF471 0x9B46
+0xF472-0xF474 0x9B4A
+0xF475 0x9B4E
+0xF476 0x9B50
+0xF477-0xF478 0x9B52
+0xF479-0xF47E 0x9B55
+0xF480-0xF4A0 0x9B5B
+0xF4A1 0x7C1F
+0xF4A2 0x7C2A
+0xF4A3 0x7C26
+0xF4A4 0x7C38
+0xF4A5 0x7C41
+0xF4A6 0x7C40
+0xF4A7 0x81FE
+0xF4A8-0xF4A9 0x8201
+0xF4AA 0x8204
+0xF4AB 0x81EC
+0xF4AC 0x8844
+0xF4AD-0xF4AF 0x8221
+0xF4B0 0x822D
+0xF4B1 0x822F
+0xF4B2 0x8228
+0xF4B3 0x822B
+0xF4B4 0x8238
+0xF4B5 0x823B
+0xF4B6-0xF4B7 0x8233
+0xF4B8 0x823E
+0xF4B9 0x8244
+0xF4BA 0x8249
+0xF4BB 0x824B
+0xF4BC 0x824F
+0xF4BD 0x825A
+0xF4BE 0x825F
+0xF4BF 0x8268
+0xF4C0 0x887E
+0xF4C1 0x8885
+0xF4C2 0x8888
+0xF4C3 0x88D8
+0xF4C4 0x88DF
+0xF4C5 0x895E
+0xF4C6 0x7F9D
+0xF4C7 0x7F9F
+0xF4C8 0x7FA7
+0xF4C9-0xF4CA 0x7FAF
+0xF4CB 0x7FB2
+0xF4CC 0x7C7C
+0xF4CD 0x6549
+0xF4CE 0x7C91
+0xF4CF 0x7C9D
+0xF4D0 0x7C9C
+0xF4D1 0x7C9E
+0xF4D2 0x7CA2
+0xF4D3 0x7CB2
+0xF4D4-0xF4D5 0x7CBC
+0xF4D6 0x7CC1
+0xF4D7 0x7CC7
+0xF4D8-0xF4D9 0x7CCC
+0xF4DA 0x7CC8
+0xF4DB 0x7CC5
+0xF4DC 0x7CD7
+0xF4DD 0x7CE8
+0xF4DE 0x826E
+0xF4DF 0x66A8
+0xF4E0 0x7FBF
+0xF4E1 0x7FCE
+0xF4E2 0x7FD5
+0xF4E3 0x7FE5
+0xF4E4 0x7FE1
+0xF4E5 0x7FE6
+0xF4E6 0x7FE9
+0xF4E7 0x7FEE
+0xF4E8 0x7FF3
+0xF4E9 0x7CF8
+0xF4EA 0x7D77
+0xF4EB 0x7DA6
+0xF4EC 0x7DAE
+0xF4ED 0x7E47
+0xF4EE 0x7E9B
+0xF4EF 0x9EB8
+0xF4F0 0x9EB4
+0xF4F1 0x8D73
+0xF4F2 0x8D84
+0xF4F3 0x8D94
+0xF4F4 0x8D91
+0xF4F5 0x8DB1
+0xF4F6 0x8D67
+0xF4F7 0x8D6D
+0xF4F8 0x8C47
+0xF4F9 0x8C49
+0xF4FA 0x914A
+0xF4FB 0x9150
+0xF4FC-0xF4FD 0x914E
+0xF4FE 0x9164
+0xF540-0xF57E 0x9B7C
+0xF580-0xF5A0 0x9BBB
+0xF5A1 0x9162
+0xF5A2 0x9161
+0xF5A3 0x9170
+0xF5A4 0x9169
+0xF5A5 0x916F
+0xF5A6-0xF5A7 0x917D
+0xF5A8 0x9172
+0xF5A9 0x9174
+0xF5AA 0x9179
+0xF5AB 0x918C
+0xF5AC 0x9185
+0xF5AD 0x9190
+0xF5AE 0x918D
+0xF5AF 0x9191
+0xF5B0-0xF5B1 0x91A2
+0xF5B2 0x91AA
+0xF5B3-0xF5B5 0x91AD
+0xF5B6 0x91B5
+0xF5B7 0x91B4
+0xF5B8 0x91BA
+0xF5B9 0x8C55
+0xF5BA 0x9E7E
+0xF5BB 0x8DB8
+0xF5BC 0x8DEB
+0xF5BD 0x8E05
+0xF5BE 0x8E59
+0xF5BF 0x8E69
+0xF5C0 0x8DB5
+0xF5C1 0x8DBF
+0xF5C2 0x8DBC
+0xF5C3 0x8DBA
+0xF5C4 0x8DC4
+0xF5C5-0xF5C6 0x8DD6
+0xF5C7 0x8DDA
+0xF5C8 0x8DDE
+0xF5C9-0xF5CA 0x8DCE
+0xF5CB 0x8DDB
+0xF5CC 0x8DC6
+0xF5CD 0x8DEC
+0xF5CE-0xF5CF 0x8DF7
+0xF5D0 0x8DE3
+0xF5D1 0x8DF9
+0xF5D2 0x8DFB
+0xF5D3 0x8DE4
+0xF5D4 0x8E09
+0xF5D5 0x8DFD
+0xF5D6 0x8E14
+0xF5D7 0x8E1D
+0xF5D8 0x8E1F
+0xF5D9 0x8E2C
+0xF5DA 0x8E2E
+0xF5DB 0x8E23
+0xF5DC 0x8E2F
+0xF5DD 0x8E3A
+0xF5DE 0x8E40
+0xF5DF 0x8E39
+0xF5E0 0x8E35
+0xF5E1 0x8E3D
+0xF5E2 0x8E31
+0xF5E3 0x8E49
+0xF5E4-0xF5E5 0x8E41
+0xF5E6-0xF5E7 0x8E51
+0xF5E8 0x8E4A
+0xF5E9 0x8E70
+0xF5EA 0x8E76
+0xF5EB 0x8E7C
+0xF5EC 0x8E6F
+0xF5ED 0x8E74
+0xF5EE 0x8E85
+0xF5EF 0x8E8F
+0xF5F0 0x8E94
+0xF5F1 0x8E90
+0xF5F2 0x8E9C
+0xF5F3 0x8E9E
+0xF5F4 0x8C78
+0xF5F5 0x8C82
+0xF5F6 0x8C8A
+0xF5F7 0x8C85
+0xF5F8 0x8C98
+0xF5F9 0x8C94
+0xF5FA 0x659B
+0xF5FB 0x89D6
+0xF5FC 0x89DE
+0xF5FD 0x89DA
+0xF5FE 0x89DC
+0xF640-0xF67E 0x9BDC
+0xF680-0xF6A0 0x9C1B
+0xF6A1 0x89E5
+0xF6A2 0x89EB
+0xF6A3 0x89EF
+0xF6A4 0x8A3E
+0xF6A5 0x8B26
+0xF6A6 0x9753
+0xF6A7 0x96E9
+0xF6A8 0x96F3
+0xF6A9 0x96EF
+0xF6AA 0x9706
+0xF6AB 0x9701
+0xF6AC 0x9708
+0xF6AD 0x970F
+0xF6AE 0x970E
+0xF6AF 0x972A
+0xF6B0 0x972D
+0xF6B1 0x9730
+0xF6B2 0x973E
+0xF6B3 0x9F80
+0xF6B4 0x9F83
+0xF6B5-0xF6BA 0x9F85
+0xF6BB 0x9F8C
+0xF6BC 0x9EFE
+0xF6BD 0x9F0B
+0xF6BE 0x9F0D
+0xF6BF 0x96B9
+0xF6C0-0xF6C1 0x96BC
+0xF6C2 0x96CE
+0xF6C3 0x96D2
+0xF6C4 0x77BF
+0xF6C5 0x96E0
+0xF6C6 0x928E
+0xF6C7 0x92AE
+0xF6C8 0x92C8
+0xF6C9 0x933E
+0xF6CA 0x936A
+0xF6CB 0x93CA
+0xF6CC 0x938F
+0xF6CD 0x943E
+0xF6CE 0x946B
+0xF6CF 0x9C7F
+0xF6D0 0x9C82
+0xF6D1-0xF6D4 0x9C85
+0xF6D5 0x7A23
+0xF6D6 0x9C8B
+0xF6D7 0x9C8E
+0xF6D8-0xF6DA 0x9C90
+0xF6DB-0xF6DC 0x9C94
+0xF6DD-0xF6DE 0x9C9A
+0xF6DF-0xF6E4 0x9C9E
+0xF6E5-0xF6E9 0x9CA5
+0xF6EA 0x9CAB
+0xF6EB-0xF6EC 0x9CAD
+0xF6ED-0xF6F4 0x9CB0
+0xF6F5-0xF6F8 0x9CBA
+0xF6F9-0xF6FC 0x9CC4
+0xF6FD-0xF6FE 0x9CCA
+0xF740-0xF77E 0x9C3C
+0xF780 0x9C7B
+0xF781-0xF782 0x9C7D
+0xF783 0x9C80
+0xF784-0xF785 0x9C83
+0xF786-0xF787 0x9C89
+0xF788 0x9C8C
+0xF789 0x9C8F
+0xF78A 0x9C93
+0xF78B-0xF78E 0x9C96
+0xF78F 0x9C9D
+0xF790 0x9CAA
+0xF791 0x9CAC
+0xF792 0x9CAF
+0xF793 0x9CB9
+0xF794-0xF798 0x9CBE
+0xF799-0xF79A 0x9CC8
+0xF79B-0xF79C 0x9CD1
+0xF79D-0xF79E 0x9CDA
+0xF79F-0xF7A0 0x9CE0
+0xF7A1-0xF7A5 0x9CCC
+0xF7A6-0xF7A8 0x9CD3
+0xF7A9-0xF7AB 0x9CD7
+0xF7AC-0xF7AD 0x9CDC
+0xF7AE 0x9CDF
+0xF7AF 0x9CE2
+0xF7B0 0x977C
+0xF7B1 0x9785
+0xF7B2-0xF7B3 0x9791
+0xF7B4 0x9794
+0xF7B5 0x97AF
+0xF7B6 0x97AB
+0xF7B7 0x97A3
+0xF7B8 0x97B2
+0xF7B9 0x97B4
+0xF7BA 0x9AB1
+0xF7BB 0x9AB0
+0xF7BC 0x9AB7
+0xF7BD 0x9E58
+0xF7BE 0x9AB6
+0xF7BF 0x9ABA
+0xF7C0 0x9ABC
+0xF7C1 0x9AC1
+0xF7C2 0x9AC0
+0xF7C3 0x9AC5
+0xF7C4 0x9AC2
+0xF7C5-0xF7C6 0x9ACB
+0xF7C7 0x9AD1
+0xF7C8 0x9B45
+0xF7C9 0x9B43
+0xF7CA 0x9B47
+0xF7CB 0x9B49
+0xF7CC 0x9B48
+0xF7CD 0x9B4D
+0xF7CE 0x9B51
+0xF7CF 0x98E8
+0xF7D0 0x990D
+0xF7D1 0x992E
+0xF7D2 0x9955
+0xF7D3 0x9954
+0xF7D4 0x9ADF
+0xF7D5 0x9AE1
+0xF7D6 0x9AE6
+0xF7D7 0x9AEF
+0xF7D8 0x9AEB
+0xF7D9 0x9AFB
+0xF7DA 0x9AED
+0xF7DB 0x9AF9
+0xF7DC 0x9B08
+0xF7DD 0x9B0F
+0xF7DE 0x9B13
+0xF7DF 0x9B1F
+0xF7E0 0x9B23
+0xF7E1-0xF7E2 0x9EBD
+0xF7E3 0x7E3B
+0xF7E4 0x9E82
+0xF7E5-0xF7E6 0x9E87
+0xF7E7 0x9E8B
+0xF7E8 0x9E92
+0xF7E9 0x93D6
+0xF7EA 0x9E9D
+0xF7EB 0x9E9F
+0xF7EC-0xF7EE 0x9EDB
+0xF7EF 0x9EE0
+0xF7F0 0x9EDF
+0xF7F1 0x9EE2
+0xF7F2 0x9EE9
+0xF7F3 0x9EE7
+0xF7F4 0x9EE5
+0xF7F5 0x9EEA
+0xF7F6 0x9EEF
+0xF7F7 0x9F22
+0xF7F8 0x9F2C
+0xF7F9 0x9F2F
+0xF7FA 0x9F39
+0xF7FB 0x9F37
+0xF7FC-0xF7FD 0x9F3D
+0xF7FE 0x9F44
+0xF840-0xF87E 0x9CE3
+0xF880-0xF8A0 0x9D22
+0xF940-0xF97E 0x9D43
+0xF980-0xF9A0 0x9D82
+0xFA40-0xFA7E 0x9DA3
+0xFA80-0xFAA0 0x9DE2
+0xFB40-0xFB5B 0x9E03
+0xFB5C 0x9E24
+0xFB5D 0x9E27
+0xFB5E 0x9E2E
+0xFB5F 0x9E30
+0xFB60 0x9E34
+0xFB61-0xFB62 0x9E3B
+0xFB63 0x9E40
+0xFB64 0x9E4D
+0xFB65 0x9E50
+0xFB66-0xFB68 0x9E52
+0xFB69 0x9E56
+0xFB6A 0x9E59
+0xFB6B 0x9E5D
+0xFB6C-0xFB6F 0x9E5F
+0xFB70 0x9E65
+0xFB71-0xFB72 0x9E6E
+0xFB73 0x9E72
+0xFB74-0xFB7D 0x9E74
+0xFB7E 0x9E80
+0xFB80 0x9E81
+0xFB81-0xFB84 0x9E83
+0xFB85-0xFB86 0x9E89
+0xFB87-0xFB8C 0x9E8C
+0xFB8D-0xFB95 0x9E94
+0xFB96 0x9E9E
+0xFB97-0xFB9C 0x9EA0
+0xFB9D-0xFBA0 0x9EA7
+0xFC40-0xFC48 0x9EAB
+0xFC49-0xFC4B 0x9EB5
+0xFC4C-0xFC4D 0x9EB9
+0xFC4E 0x9EBC
+0xFC4F-0xFC53 0x9EBF
+0xFC54-0xFC57 0x9EC5
+0xFC58-0xFC5A 0x9ECA
+0xFC5B 0x9ED0
+0xFC5C-0xFC5D 0x9ED2
+0xFC5E-0xFC60 0x9ED5
+0xFC61-0xFC62 0x9ED9
+0xFC63 0x9EDE
+0xFC64 0x9EE1
+0xFC65-0xFC66 0x9EE3
+0xFC67 0x9EE6
+0xFC68 0x9EE8
+0xFC69-0xFC6C 0x9EEB
+0xFC6D-0xFC75 0x9EF0
+0xFC76 0x9EFA
+0xFC77 0x9EFD
+0xFC78-0xFC7E 0x9EFF
+0xFC80-0xFC84 0x9F06
+0xFC85 0x9F0C
+0xFC86 0x9F0F
+0xFC87-0xFC88 0x9F11
+0xFC89-0xFC8B 0x9F14
+0xFC8C 0x9F18
+0xFC8D-0xFC92 0x9F1A
+0xFC93 0x9F21
+0xFC94-0xFC9C 0x9F23
+0xFC9D-0xFC9E 0x9F2D
+0xFC9F-0xFCA0 0x9F30
+0xFD40-0xFD44 0x9F32
+0xFD45 0x9F38
+0xFD46 0x9F3A
+0xFD47 0x9F3C
+0xFD48-0xFD4C 0x9F3F
+0xFD4D-0xFD57 0x9F45
+0xFD58-0xFD7E 0x9F52
+0xFD80-0xFD85 0x9F79
+0xFD86-0xFD87 0x9F81
+0xFD88-0xFD93 0x9F8D
+0xFD94-0xFD96 0x9F9C
+0xFD97-0xFD9B 0x9FA1
+0xFD9C 0xF92C
+0xFD9D 0xF979
+0xFD9E 0xF995
+0xFD9F 0xF9E7
+0xFDA0 0xF9F1
+0xFE40-0xFE43 0xFA0C
+0xFE44 0xFA11
+0xFE45-0xFE46 0xFA13
+0xFE47 0xFA18
+0xFE48-0xFE4A 0xFA1F
+0xFE4B-0xFE4C 0xFA23
+0xFE4D-0xFE4F 0xFA27
diff --git a/etc/charsets/HP-ROMAN8.map b/etc/charsets/HP-ROMAN8.map
new file mode 100644 (file)
index 0000000..b57d9a1
--- /dev/null
@@ -0,0 +1,91 @@
+# Generated from glibc-2.3.2/localedata/charmaps/HP-ROMAN8
+0x00-0xA0 0x0000
+0xA1 0x00C0
+0xA2 0x00C2
+0xA3 0x00C8
+0xA4-0xA5 0x00CA
+0xA6-0xA7 0x00CE
+0xA8 0x00B4
+0xA9 0x02CB
+0xAA 0x02C6
+0xAB 0x00A8
+0xAC 0x02DC
+0xAD 0x00D9
+0xAE 0x00DB
+0xAF 0x20A4
+0xB0 0x00AF
+0xB1 0x00DD
+0xB2 0x00FD
+0xB3 0x00B0
+0xB4 0x00C7
+0xB5 0x00E7
+0xB6 0x00D1
+0xB7 0x00F1
+0xB8 0x00A1
+0xB9 0x00BF
+0xBA 0x00A4
+0xBB 0x00A3
+0xBC 0x00A5
+0xBD 0x00A7
+0xBE 0x0192
+0xBF 0x00A2
+0xC0 0x00E2
+0xC1 0x00EA
+0xC2 0x00F4
+0xC3 0x00FB
+0xC4 0x00E1
+0xC5 0x00E9
+0xC6 0x00F3
+0xC7 0x00FA
+0xC8 0x00E0
+0xC9 0x00E8
+0xCA 0x00F2
+0xCB 0x00F9
+0xCC 0x00E4
+0xCD 0x00EB
+0xCE 0x00F6
+0xCF 0x00FC
+0xD0 0x00C5
+0xD1 0x00EE
+0xD2 0x00D8
+0xD3 0x00C6
+0xD4 0x00E5
+0xD5 0x00ED
+0xD6 0x00F8
+0xD7 0x00E6
+0xD8 0x00C4
+0xD9 0x00EC
+0xDA 0x00D6
+0xDB 0x00DC
+0xDC 0x00C9
+0xDD 0x00EF
+0xDE 0x00DF
+0xDF 0x00D4
+0xE0 0x00C1
+0xE1 0x00C3
+0xE2 0x00E3
+0xE3 0x00D0
+0xE4 0x00F0
+0xE5 0x00CD
+0xE6 0x00CC
+0xE7 0x00D3
+0xE8 0x00D2
+0xE9 0x00D5
+0xEA 0x00F5
+0xEB-0xEC 0x0160
+0xED 0x00DA
+0xEE 0x0178
+0xEF 0x00FF
+0xF0 0x00DE
+0xF1 0x00FE
+0xF2 0x00B7
+0xF3-0xF4 0x00B5
+0xF5 0x00BE
+0xF6 0x2014
+0xF7-0xF8 0x00BC
+0xF9 0x00AA
+0xFA 0x00BA
+0xFB 0x00AB
+0xFC 0x25A0
+0xFD 0x00BB
+0xFE 0x00B1
diff --git a/etc/charsets/IBM037.map b/etc/charsets/IBM037.map
new file mode 100644 (file)
index 0000000..45d27cb
--- /dev/null
@@ -0,0 +1,147 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM037
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x00E7
+0x49 0x00F1
+0x4A 0x00A2
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x0021
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00AC
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0 0x005E
+0xB1 0x00A3
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x005B
+0xBB 0x005D
+0xBC 0x00AF
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB-0xDC 0x00FB
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x005C
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x00D6
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM038.map b/etc/charsets/IBM038.map
new file mode 100644 (file)
index 0000000..e973b4e
--- /dev/null
@@ -0,0 +1,71 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM038
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x81-0x89 0x0061
+0x91-0x99 0x006A
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xE0 0x005C
+0xE2-0xE9 0x0053
+0xF0-0xF9 0x0030
+0xFF 0x009F
diff --git a/etc/charsets/IBM1004.map b/etc/charsets/IBM1004.map
new file mode 100644 (file)
index 0000000..bbe7248
--- /dev/null
@@ -0,0 +1,22 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM1004
+0x00-0x7F 0x0000
+0x82 0x201A
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x88 0x02C6
+0x89 0x2030
+0x8A 0x0160
+0x8B 0x2039
+0x8C 0x0152
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x98 0x02DC
+0x99 0x2122
+0x9A 0x0161
+0x9B 0x203A
+0x9C 0x0153
+0x9F 0x0178
+0xA0-0xFF 0x00A0
diff --git a/etc/charsets/IBM1026.map b/etc/charsets/IBM1026.map
new file mode 100644 (file)
index 0000000..b4a0e06
--- /dev/null
@@ -0,0 +1,150 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM1026
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x007B
+0x49 0x00F1
+0x4A 0x00C7
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x011E
+0x5B 0x0130
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x005B
+0x69 0x00D1
+0x6A 0x015F
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0131
+0x7A 0x003A
+0x7B 0x00D6
+0x7C 0x015E
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x00DC
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x007D
+0x8D 0x0060
+0x8E 0x00A6
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x02DB
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x00F6
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x005D
+0xAD 0x0024
+0xAE 0x0040
+0xAF 0x00AE
+0xB0-0xB1 0x00A2
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00AC
+0xBB 0x007C
+0xBC 0x2014
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x00E7
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x007E
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x011F
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB 0x00FB
+0xDC 0x005C
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x00FC
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x0023
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB 0x00DB
+0xFC 0x0022
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM1047.map b/etc/charsets/IBM1047.map
new file mode 100644 (file)
index 0000000..6d7ac0a
--- /dev/null
@@ -0,0 +1,148 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM1047
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x00E7
+0x49 0x00F1
+0x4A 0x00A2
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x0021
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD 0x005B
+0xAE 0x00DE
+0xAF 0x00AE
+0xB0 0x00AC
+0xB1 0x00A3
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00DD
+0xBB 0x00A8
+0xBC 0x00AF
+0xBD 0x005D
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB-0xDC 0x00FB
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x005C
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x00D6
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM256.map b/etc/charsets/IBM256.map
new file mode 100644 (file)
index 0000000..622e696
--- /dev/null
@@ -0,0 +1,146 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM256
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x00E7
+0x49 0x00F1
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0-0xB1 0x00A2
+0xB2 0x00A5
+0xB3 0x20A7
+0xB4 0x0192
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00AC
+0xBB 0x007C
+0xBC 0x203E
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x2017
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB-0xDC 0x00FB
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x005C
+0xE1 0x2003
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x00D6
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM273.map b/etc/charsets/IBM273.map
new file mode 100644 (file)
index 0000000..844e4a5
--- /dev/null
@@ -0,0 +1,148 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM273
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x007B
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x00E7
+0x49 0x00F1
+0x4A 0x00C4
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x007E
+0x5A 0x00DC
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x005B
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00F6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x00A7
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x00DF
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0-0xB1 0x00A2
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x0040
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00AC
+0xBB 0x007C
+0xBC 0x203E
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x00E4
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00A6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x00FC
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB 0x00FB
+0xDC 0x007D
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x00D6
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x005C
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB 0x00DB
+0xFC 0x005D
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM274.map b/etc/charsets/IBM274.map
new file mode 100644 (file)
index 0000000..27c0fc1
--- /dev/null
@@ -0,0 +1,71 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM274
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x6A 0x00F9
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x00E0
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x81-0x89 0x0061
+0x91-0x99 0x006A
+0xA1 0x00A8
+0xA2-0xA9 0x0073
+0xC0 0x00E9
+0xC1-0xC9 0x0041
+0xD0 0x00E8
+0xD1-0xD9 0x004A
+0xE0 0x00E7
+0xE2-0xE9 0x0053
+0xF0-0xF9 0x0030
+0xFF 0x009F
diff --git a/etc/charsets/IBM275.map b/etc/charsets/IBM275.map
new file mode 100644 (file)
index 0000000..0ba479b
--- /dev/null
@@ -0,0 +1,71 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM275
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x4A 0x00C9
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x5A 0x0024
+0x5B 0x00C7
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x6A 0x00E7
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x79 0x00E3
+0x7A 0x003A
+0x7B 0x00D5
+0x7C 0x00C3
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x81-0x89 0x0061
+0x91-0x99 0x006A
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xC0 0x00F5
+0xC1-0xC9 0x0041
+0xD0 0x00E9
+0xD1-0xD9 0x004A
+0xE0 0x005C
+0xE2-0xE9 0x0053
+0xF0-0xF9 0x0030
+0xFF 0x009F
diff --git a/etc/charsets/IBM277.map b/etc/charsets/IBM277.map
new file mode 100644 (file)
index 0000000..49c4c79
--- /dev/null
@@ -0,0 +1,147 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM277
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x007D
+0x48 0x00E7
+0x49 0x00F1
+0x4A 0x0023
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x00A4
+0x5B 0x00C5
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x0024
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00F8
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00A6
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x00C6
+0x7C 0x00D8
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x0040
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x007B
+0x9D 0x00B8
+0x9E 0x005B
+0x9F 0x005D
+0xA0 0x00B5
+0xA1 0x00FC
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0-0xB1 0x00A2
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00AC
+0xBB 0x007C
+0xBC 0x203E
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x00E6
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x00E5
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB 0x00FB
+0xDC 0x007E
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x005C
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x00D6
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM278.map b/etc/charsets/IBM278.map
new file mode 100644 (file)
index 0000000..5fd38a7
--- /dev/null
@@ -0,0 +1,148 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM278
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x007B
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x007D
+0x48 0x00E7
+0x49 0x00F1
+0x4A 0x00A7
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51 0x0060
+0x52-0x53 0x00EA
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x00A4
+0x5B 0x00C5
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x0023
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x0024
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00F6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x00E9
+0x7A 0x003A
+0x7B 0x00C4
+0x7C 0x00D6
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x005D
+0xA0 0x00B5
+0xA1 0x00FC
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0-0xB1 0x00A2
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x005B
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00AC
+0xBB 0x007C
+0xBC 0x203E
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x00E4
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00A6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x00E5
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB 0x00FB
+0xDC 0x007E
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x005C
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x0040
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM280.map b/etc/charsets/IBM280.map
new file mode 100644 (file)
index 0000000..e8e7834
--- /dev/null
@@ -0,0 +1,151 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM280
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44 0x007B
+0x45 0x00E1
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x005C
+0x49 0x00F1
+0x4A 0x00B0
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51 0x005D
+0x52-0x53 0x00EA
+0x54 0x007D
+0x55-0x57 0x00ED
+0x58 0x007E
+0x59 0x00DF
+0x5A 0x00E9
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00F2
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x00F9
+0x7A 0x003A
+0x7B 0x00A3
+0x7C 0x00A7
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x005B
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x00EC
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0 0x00A2
+0xB1 0x0023
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x0040
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00AC
+0xBB 0x007C
+0xBC 0x203E
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x00E0
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD 0x00A6
+0xCE 0x00F3
+0xCF 0x00F5
+0xD0 0x00E8
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB-0xDC 0x00FB
+0xDD 0x0060
+0xDE 0x00FA
+0xDF 0x00FF
+0xE0 0x00E7
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x00D6
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM281.map b/etc/charsets/IBM281.map
new file mode 100644 (file)
index 0000000..e4dff95
--- /dev/null
@@ -0,0 +1,71 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM281
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x4A 0x00A3
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x5A 0x0021
+0x5B 0x00A5
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00AC
+0x60 0x002D
+0x61 0x002F
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x81-0x89 0x0061
+0x91-0x99 0x006A
+0xA1 0x203E
+0xA2-0xA9 0x0073
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xE0 0x0024
+0xE2-0xE9 0x0053
+0xF0-0xF9 0x0030
+0xFF 0x009F
diff --git a/etc/charsets/IBM284.map b/etc/charsets/IBM284.map
new file mode 100644 (file)
index 0000000..b415f40
--- /dev/null
@@ -0,0 +1,146 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM284
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x00E7
+0x49 0x00A6
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00AC
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x0023
+0x6A 0x00F1
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x00D1
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x00A8
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0-0xB1 0x00A2
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x005E
+0xBB 0x0021
+0xBC 0x203E
+0xBD 0x007E
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB-0xDC 0x00FB
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x005C
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x00D6
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM285.map b/etc/charsets/IBM285.map
new file mode 100644 (file)
index 0000000..36c9fa3
--- /dev/null
@@ -0,0 +1,147 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM285
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x00E7
+0x49 0x00F1
+0x4A 0x0024
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x0021
+0x5B 0x00A3
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00AC
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x203E
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0 0x00A2
+0xB1 0x005B
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x005E
+0xBB 0x005D
+0xBC 0x007E
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB-0xDC 0x00FB
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x005C
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x00D6
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM290.map b/etc/charsets/IBM290.map
new file mode 100644 (file)
index 0000000..eb38d2e
--- /dev/null
@@ -0,0 +1,114 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM290
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x3002
+0x42-0x43 0x300C
+0x44 0x3001
+0x45 0x30FB
+0x46 0x30F2
+0x47 0x30A1
+0x48 0x30A3
+0x49 0x30A5
+0x4A 0x00A3
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x51 0x30A7
+0x52 0x30A9
+0x53 0x30E3
+0x54 0x30E5
+0x55 0x30E7
+0x56 0x30C3
+0x58 0x30FC
+0x5A 0x0021
+0x5B 0x00A5
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00AC
+0x60 0x002D
+0x61 0x002F
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x81 0x30A2
+0x82 0x30A4
+0x83 0x30A6
+0x84 0x30A8
+0x85-0x86 0x30AA
+0x87 0x30AD
+0x88 0x30AF
+0x89 0x30B1
+0x8A 0x30B3
+0x8C 0x30B5
+0x8D 0x30B7
+0x8E 0x30B9
+0x8F 0x30BB
+0x90 0x30BD
+0x91 0x30BF
+0x92 0x30C1
+0x93 0x30C4
+0x94 0x30C6
+0x95 0x30C8
+0x96-0x9A 0x30CA
+0x9D 0x30CF
+0x9E 0x30D2
+0x9F 0x30D5
+0xA1 0x203E
+0xA2 0x30D8
+0xA3 0x30DB
+0xA4-0xA8 0x30DE
+0xA9 0x30E4
+0xAA 0x30E6
+0xAC-0xAF 0x30E8
+0xBA-0xBB 0x30EC
+0xBC 0x30EF
+0xBD 0x30F3
+0xBE-0xBF 0x309B
+0xC1-0xC9 0x0041
+0xD1-0xD9 0x004A
+0xE0 0x0024
+0xE2-0xE9 0x0053
+0xF0-0xF9 0x0030
+0xFF 0x009F
diff --git a/etc/charsets/IBM297.map b/etc/charsets/IBM297.map
new file mode 100644 (file)
index 0000000..dcd5b66
--- /dev/null
@@ -0,0 +1,150 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM297
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44 0x0040
+0x45 0x00E1
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x005C
+0x49 0x00F1
+0x4A 0x00B0
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51 0x007B
+0x52-0x53 0x00EA
+0x54 0x007D
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x00A7
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00F9
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x00B5
+0x7A 0x003A
+0x7B 0x00A3
+0x7C 0x00E0
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x005B
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x0060
+0xA1 0x00A8
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0 0x00A2
+0xB1 0x0023
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x005D
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00AC
+0xBB 0x007C
+0xBC 0x203E
+0xBD 0x007E
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x00E9
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x00E8
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB-0xDC 0x00FB
+0xDD 0x00A6
+0xDE 0x00FA
+0xDF 0x00FF
+0xE0 0x00E7
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x00D6
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM420.map b/etc/charsets/IBM420.map
new file mode 100644 (file)
index 0000000..efc9a10
--- /dev/null
@@ -0,0 +1,135 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM420
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x0651
+0x43 0xFE7D
+0x44 0x0640
+0x46-0x47 0x0621
+0x48 0xFE82
+0x49 0x0623
+0x4A 0x00A2
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x51 0xFE84
+0x52 0x0624
+0x55-0x56 0x0626
+0x57 0xFE8E
+0x58 0x0628
+0x59 0xFE91
+0x5A 0x0021
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00AC
+0x60 0x002D
+0x61 0x002F
+0x62-0x63 0x0629
+0x64 0xFE97
+0x65 0x062B
+0x66 0xFE9B
+0x67 0x062C
+0x68 0xFE9F
+0x69 0x062D
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0xFEA3
+0x71 0x062E
+0x72 0xFEA7
+0x73-0x77 0x062F
+0x78 0xFEB3
+0x79 0x060C
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x0634
+0x81-0x89 0x0061
+0x8A 0xFEB7
+0x8B 0x0635
+0x8C 0xFEBB
+0x8D 0x0636
+0x8E 0xFEBF
+0x8F-0x90 0x0637
+0x91-0x99 0x006A
+0x9A 0x0639
+0x9B-0x9D 0xFECA
+0x9E 0x063A
+0x9F-0xA0 0xFECE
+0xA1 0x00F7
+0xA2-0xA9 0x0073
+0xAA 0xFED0
+0xAB 0x0641
+0xAC 0xFED3
+0xAD 0x0642
+0xAE 0xFED7
+0xAF 0x0643
+0xB0 0xFEDB
+0xB1 0x0644
+0xB2-0xB5 0xFEF5
+0xB8-0xB9 0xFEFB
+0xBA 0xFEDF
+0xBB 0x0645
+0xBC 0xFEE3
+0xBD 0x0646
+0xBE 0xFEE7
+0xBF 0x0647
+0xC0 0x061B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0xFEEB
+0xCD 0xFEEC
+0xCF 0x0648
+0xD0 0x061F
+0xD1-0xD9 0x004A
+0xDA 0x0649
+0xDB 0xFEF0
+0xDC 0x064A
+0xDD-0xDE 0xFEF2
+0xDF 0x0660
+0xE0 0x00D7
+0xE2-0xE9 0x0053
+0xEA-0xEB 0x0661
+0xED-0xEF 0x0663
+0xF0-0xF9 0x0030
+0xFB-0xFE 0x0666
+0xFF 0x009F
diff --git a/etc/charsets/IBM423.map b/etc/charsets/IBM423.map
new file mode 100644 (file)
index 0000000..a6da4e5
--- /dev/null
@@ -0,0 +1,111 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM423
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41-0x49 0x0391
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x58 0x039A
+0x59 0x03A3
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62-0x67 0x03A4
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x71 0x0386
+0x72-0x73 0x0388
+0x75 0x038A
+0x76 0x038C
+0x77-0x78 0x038E
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x00A3
+0x7C 0x00A7
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00C4
+0x81-0x89 0x0061
+0x8A-0x8F 0x03B1
+0x90 0x00D6
+0x91-0x99 0x006A
+0x9A-0x9F 0x03B7
+0xA0 0x00DC
+0xA1 0x00A8
+0xA2-0xA9 0x0073
+0xAA-0xAF 0x03BD
+0xB1-0xB3 0x03AC
+0xB4 0x03CA
+0xB5 0x03AF
+0xB6-0xB7 0x03CC
+0xB8 0x03CB
+0xB9 0x03CE
+0xBA-0xBF 0x03C3
+0xC0 0x00B8
+0xC1-0xC9 0x0041
+0xCB 0x03C9
+0xCC 0x00C2
+0xCD 0x00E0
+0xCE 0x00E4
+0xCF 0x00EA
+0xD0 0x00B4
+0xD1-0xD9 0x004A
+0xDA 0x00B1
+0xDB 0x00E9
+0xDC 0x00E8
+0xDD 0x00EB
+0xDE-0xDF 0x00EE
+0xE0 0x00B0
+0xE2-0xE9 0x0053
+0xEA 0x00BD
+0xEB 0x00F6
+0xEC 0x00F4
+0xED 0x00FB
+0xEE 0x00F9
+0xEF 0x00FC
+0xF0-0xF9 0x0030
+0xFA 0x00FF
+0xFB 0x00E7
+0xFC 0x00C7
+0xFF 0x009F
diff --git a/etc/charsets/IBM424.map b/etc/charsets/IBM424.map
new file mode 100644 (file)
index 0000000..78d4b67
--- /dev/null
@@ -0,0 +1,103 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM424
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41-0x49 0x05D0
+0x4A 0x00A2
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x007C
+0x50 0x0026
+0x51-0x59 0x05D9
+0x5A 0x0021
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00AC
+0x60 0x002D
+0x61 0x002F
+0x62-0x69 0x05E2
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x71 0x05EA
+0x74 0x00A0
+0x78 0x21D4
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9D 0x00B8
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xAF 0x00AE
+0xB0 0x005E
+0xB1 0x00A3
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x005B
+0xBB 0x005D
+0xBC 0x203E
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xE0 0x005C
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFF 0x009F
diff --git a/etc/charsets/IBM437.map b/etc/charsets/IBM437.map
new file mode 100644 (file)
index 0000000..058f981
--- /dev/null
@@ -0,0 +1,119 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM437
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x00E2
+0x84 0x00E4
+0x85 0x00E0
+0x86 0x00E5
+0x87 0x00E7
+0x88-0x89 0x00EA
+0x8A 0x00E8
+0x8B 0x00EF
+0x8C 0x00EE
+0x8D 0x00EC
+0x8E-0x8F 0x00C4
+0x90 0x00C9
+0x91 0x00E6
+0x92 0x00C6
+0x93 0x00F4
+0x94 0x00F6
+0x95 0x00F2
+0x96 0x00FB
+0x97 0x00F9
+0x98 0x00FF
+0x99 0x00D6
+0x9A 0x00DC
+0x9B-0x9C 0x00A2
+0x9D 0x00A5
+0x9E 0x20A7
+0x9F 0x0192
+0xA0 0x00E1
+0xA1 0x00ED
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4 0x00F1
+0xA5 0x00D1
+0xA6 0x00AA
+0xA7 0x00BA
+0xA8 0x00BF
+0xA9 0x2310
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x00A1
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0 0x03B1
+0xE1 0x00DF
+0xE2 0x0393
+0xE3 0x03C0
+0xE4 0x03A3
+0xE5 0x03C3
+0xE6 0x00B5
+0xE7 0x03C4
+0xE8 0x03A6
+0xE9 0x0398
+0xEA 0x03A9
+0xEB 0x03B4
+0xEC 0x221E
+0xED 0x03C6
+0xEE 0x03B5
+0xEF 0x2229
+0xF0 0x2261
+0xF1 0x00B1
+0xF2 0x2265
+0xF3 0x2264
+0xF4-0xF5 0x2320
+0xF6 0x00F7
+0xF7 0x2248
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x207F
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM500.map b/etc/charsets/IBM500.map
new file mode 100644 (file)
index 0000000..296a23a
--- /dev/null
@@ -0,0 +1,146 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM500
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x00E7
+0x49 0x00F1
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x00F0
+0x8D-0x8E 0x00FD
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x00E6
+0x9D 0x00B8
+0x9E 0x00C6
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x00D0
+0xAD-0xAE 0x00DD
+0xAF 0x00AE
+0xB0-0xB1 0x00A2
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00AC
+0xBB 0x007C
+0xBC 0x00AF
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB-0xDC 0x00FB
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x005C
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x00D6
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM850.map b/etc/charsets/IBM850.map
new file mode 100644 (file)
index 0000000..a12ab7a
--- /dev/null
@@ -0,0 +1,121 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM850
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x00E2
+0x84 0x00E4
+0x85 0x00E0
+0x86 0x00E5
+0x87 0x00E7
+0x88-0x89 0x00EA
+0x8A 0x00E8
+0x8B 0x00EF
+0x8C 0x00EE
+0x8D 0x00EC
+0x8E-0x8F 0x00C4
+0x90 0x00C9
+0x91 0x00E6
+0x92 0x00C6
+0x93 0x00F4
+0x94 0x00F6
+0x95 0x00F2
+0x96 0x00FB
+0x97 0x00F9
+0x98 0x00FF
+0x99 0x00D6
+0x9A 0x00DC
+0x9B 0x00F8
+0x9C 0x00A3
+0x9D 0x00D8
+0x9E 0x00D7
+0x9F 0x0192
+0xA0 0x00E1
+0xA1 0x00ED
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4 0x00F1
+0xA5 0x00D1
+0xA6 0x00AA
+0xA7 0x00BA
+0xA8 0x00BF
+0xA9 0x00AE
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x00A1
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x00C1
+0xB7 0x00C0
+0xB8 0x00A9
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x00A2
+0xBE 0x00A5
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6 0x00E3
+0xC7 0x00C3
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF 0x00A4
+0xD0 0x00F0
+0xD1 0x00D0
+0xD2-0xD3 0x00CA
+0xD4 0x00C8
+0xD5 0x0131
+0xD6-0xD8 0x00CD
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x00A6
+0xDE 0x00CC
+0xDF 0x2580
+0xE0 0x00D3
+0xE1 0x00DF
+0xE2 0x00D4
+0xE3 0x00D2
+0xE4 0x00F5
+0xE5 0x00D5
+0xE6 0x00B5
+0xE7 0x00FE
+0xE8 0x00DE
+0xE9-0xEA 0x00DA
+0xEB 0x00D9
+0xEC 0x00FD
+0xED 0x00DD
+0xEE 0x00AF
+0xEF 0x00B4
+0xF0 0x00AD
+0xF1 0x00B1
+0xF2 0x2017
+0xF3 0x00BE
+0xF4 0x00B6
+0xF5 0x00A7
+0xF6 0x00F7
+0xF7 0x00B8
+0xF8 0x00B0
+0xF9 0x00A8
+0xFA 0x00B7
+0xFB 0x00B9
+0xFC 0x00B3
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM851.map b/etc/charsets/IBM851.map
new file mode 100644 (file)
index 0000000..be4e68a
--- /dev/null
@@ -0,0 +1,90 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM851
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x00E2
+0x84 0x00E4
+0x85 0x00E0
+0x86 0x0386
+0x87 0x00E7
+0x88-0x89 0x00EA
+0x8A 0x00E8
+0x8B 0x00EF
+0x8C 0x00EE
+0x8D 0x0388
+0x8E 0x00C4
+0x8F-0x90 0x0389
+0x92 0x038C
+0x93 0x00F4
+0x94 0x00F6
+0x95 0x038E
+0x96 0x00FB
+0x97 0x00F9
+0x98 0x038F
+0x99 0x00D6
+0x9A 0x00DC
+0x9B 0x03AC
+0x9C 0x00A3
+0x9D-0x9F 0x03AD
+0xA0 0x03CA
+0xA1 0x0390
+0xA2-0xA3 0x03CC
+0xA4-0xAA 0x0391
+0xAB 0x00BD
+0xAC-0xAD 0x0398
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x039A
+0xB7 0x039D
+0xB8 0x039C
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD-0xBE 0x039E
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x03A0
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD5 0x03A3
+0xD6-0xD8 0x03B1
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD-0xDE 0x03B4
+0xDF 0x2580
+0xE0-0xEB 0x03B6
+0xEC 0x03C3
+0xED 0x03C2
+0xEE 0x03C4
+0xEF 0x00B4
+0xF0 0x00AD
+0xF1 0x00B1
+0xF2-0xF4 0x03C5
+0xF5 0x00A7
+0xF6 0x03C8
+0xF7 0x02DB
+0xF8 0x00B0
+0xF9 0x00A8
+0xFA 0x03C9
+0xFB 0x03CB
+0xFC 0x03B0
+0xFD 0x03CE
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM852.map b/etc/charsets/IBM852.map
new file mode 100644 (file)
index 0000000..38192e1
--- /dev/null
@@ -0,0 +1,113 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM852
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x00E2
+0x84 0x00E4
+0x85 0x016F
+0x86 0x0107
+0x87 0x00E7
+0x88 0x0142
+0x89 0x00EB
+0x8A-0x8B 0x0150
+0x8C 0x00EE
+0x8D 0x0179
+0x8E 0x00C4
+0x8F 0x0106
+0x90 0x00C9
+0x91-0x92 0x0139
+0x93 0x00F4
+0x94 0x00F6
+0x95-0x96 0x013D
+0x97-0x98 0x015A
+0x99 0x00D6
+0x9A 0x00DC
+0x9B-0x9C 0x0164
+0x9D 0x0141
+0x9E 0x00D7
+0x9F 0x010D
+0xA0 0x00E1
+0xA1 0x00ED
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4-0xA5 0x0104
+0xA6-0xA7 0x017D
+0xA8-0xA9 0x0118
+0xAA 0x00AC
+0xAB 0x017A
+0xAC 0x010C
+0xAD 0x015F
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x00C1
+0xB7 0x011A
+0xB8 0x015E
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD-0xBE 0x017B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x0102
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF 0x00A4
+0xD0 0x0111
+0xD1 0x0110
+0xD2 0x010E
+0xD3 0x00CB
+0xD4 0x010F
+0xD5 0x0147
+0xD6-0xD7 0x00CD
+0xD8 0x011B
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x0162
+0xDE 0x016E
+0xDF 0x2580
+0xE0 0x00D3
+0xE1 0x00DF
+0xE2 0x00D4
+0xE3-0xE4 0x0143
+0xE5 0x0148
+0xE6-0xE7 0x0160
+0xE8 0x0154
+0xE9 0x00DA
+0xEA 0x0155
+0xEB 0x0170
+0xEC 0x00FD
+0xED 0x00DD
+0xEE 0x0163
+0xEF 0x00B4
+0xF0 0x00AD
+0xF1 0x02DD
+0xF2 0x02DB
+0xF3 0x02C7
+0xF4 0x02D8
+0xF5 0x00A7
+0xF6 0x00F7
+0xF7 0x00B8
+0xF8 0x00B0
+0xF9 0x00A8
+0xFA 0x02D9
+0xFB 0x0171
+0xFC-0xFD 0x0158
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM855.map b/etc/charsets/IBM855.map
new file mode 100644 (file)
index 0000000..7018b57
--- /dev/null
@@ -0,0 +1,128 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM855
+0x00-0x7F 0x0000
+0x80 0x0452
+0x81 0x0402
+0x82 0x0453
+0x83 0x0403
+0x84 0x0451
+0x85 0x0401
+0x86 0x0454
+0x87 0x0404
+0x88 0x0455
+0x89 0x0405
+0x8A 0x0456
+0x8B 0x0406
+0x8C 0x0457
+0x8D 0x0407
+0x8E 0x0458
+0x8F 0x0408
+0x90 0x0459
+0x91 0x0409
+0x92 0x045A
+0x93 0x040A
+0x94 0x045B
+0x95 0x040B
+0x96 0x045C
+0x97 0x040C
+0x98 0x045E
+0x99 0x040E
+0x9A 0x045F
+0x9B 0x040F
+0x9C 0x044E
+0x9D 0x042E
+0x9E 0x044A
+0x9F 0x042A
+0xA0 0x0430
+0xA1 0x0410
+0xA2 0x0431
+0xA3 0x0411
+0xA4 0x0446
+0xA5 0x0426
+0xA6 0x0434
+0xA7 0x0414
+0xA8 0x0435
+0xA9 0x0415
+0xAA 0x0444
+0xAB 0x0424
+0xAC 0x0433
+0xAD 0x0413
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5 0x0445
+0xB6 0x0425
+0xB7 0x0438
+0xB8 0x0418
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x0439
+0xBE 0x0419
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6 0x043A
+0xC7 0x041A
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF 0x00A4
+0xD0 0x043B
+0xD1 0x041B
+0xD2 0x043C
+0xD3 0x041C
+0xD4 0x043D
+0xD5 0x041D
+0xD6 0x043E
+0xD7 0x041E
+0xD8 0x043F
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x041F
+0xDE 0x044F
+0xDF 0x2580
+0xE0 0x042F
+0xE1 0x0440
+0xE2 0x0420
+0xE3 0x0441
+0xE4 0x0421
+0xE5 0x0442
+0xE6 0x0422
+0xE7 0x0443
+0xE8 0x0423
+0xE9 0x0436
+0xEA 0x0416
+0xEB 0x0432
+0xEC 0x0412
+0xED 0x044C
+0xEE 0x042C
+0xEF 0x2116
+0xF0 0x00AD
+0xF1 0x044B
+0xF2 0x042B
+0xF3 0x0437
+0xF4 0x0417
+0xF5 0x0448
+0xF6 0x0428
+0xF7 0x044D
+0xF8 0x042D
+0xF9 0x0449
+0xFA 0x0429
+0xFB 0x0447
+0xFC 0x0427
+0xFD 0x00A7
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM856.map b/etc/charsets/IBM856.map
new file mode 100644 (file)
index 0000000..61f6f27
--- /dev/null
@@ -0,0 +1,66 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM856
+0x00-0x19 0x0000
+0x1A 0x001C
+0x1B 0x001B
+0x1C 0x007F
+0x1D-0x7E 0x001D
+0x7F 0x001A
+0x80-0x9A 0x05D0
+0x9C 0x00A3
+0x9E 0x00D7
+0xA9 0x00AE
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB8 0x00A9
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x00A2
+0xBE 0x00A5
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF 0x00A4
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x00A6
+0xDF 0x2580
+0xE6 0x00B5
+0xEE 0x203E
+0xEF 0x00B4
+0xF0 0x00AD
+0xF1 0x00B1
+0xF2 0x2017
+0xF3 0x00BE
+0xF4 0x00B6
+0xF5 0x00A7
+0xF6 0x00F7
+0xF7 0x00B8
+0xF8 0x00B0
+0xF9 0x00A8
+0xFA 0x2022
+0xFB 0x00B9
+0xFC 0x00B3
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM857.map b/etc/charsets/IBM857.map
new file mode 100644 (file)
index 0000000..9aca89a
--- /dev/null
@@ -0,0 +1,116 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM857
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x00E2
+0x84 0x00E4
+0x85 0x00E0
+0x86 0x00E5
+0x87 0x00E7
+0x88-0x89 0x00EA
+0x8A 0x00E8
+0x8B 0x00EF
+0x8C 0x00EE
+0x8D 0x0131
+0x8E-0x8F 0x00C4
+0x90 0x00C9
+0x91 0x00E6
+0x92 0x00C6
+0x93 0x00F4
+0x94 0x00F6
+0x95 0x00F2
+0x96 0x00FB
+0x97 0x00F9
+0x98 0x0130
+0x99 0x00D6
+0x9A 0x00DC
+0x9B 0x00F8
+0x9C 0x00A3
+0x9D 0x00D8
+0x9E-0x9F 0x015E
+0xA0 0x00E1
+0xA1 0x00ED
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4 0x00F1
+0xA5 0x00D1
+0xA6-0xA7 0x011E
+0xA8 0x00BF
+0xA9 0x00AE
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x00A1
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x00C1
+0xB7 0x00C0
+0xB8 0x00A9
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x00A2
+0xBE 0x00A5
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6 0x00E3
+0xC7 0x00C3
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF 0x00A4
+0xD0 0x00BA
+0xD1 0x00AA
+0xD2-0xD3 0x00CA
+0xD4 0x00C8
+0xD6-0xD8 0x00CD
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x00A6
+0xDE 0x00CC
+0xDF 0x2580
+0xE0 0x00D3
+0xE1 0x00DF
+0xE2 0x00D4
+0xE3 0x00D2
+0xE4 0x00F5
+0xE5 0x00D5
+0xE6 0x00B5
+0xE8 0x00D7
+0xE9-0xEA 0x00DA
+0xEB 0x00D9
+0xEC 0x00EC
+0xED 0x00FF
+0xEE 0x00AF
+0xEF 0x00B4
+0xF0 0x00AD
+0xF1 0x00B1
+0xF3 0x00BE
+0xF4 0x00B6
+0xF5 0x00A7
+0xF6 0x00F7
+0xF7 0x00B8
+0xF8 0x00B0
+0xF9 0x00A8
+0xFA 0x00B7
+0xFB 0x00B9
+0xFC 0x00B3
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM860.map b/etc/charsets/IBM860.map
new file mode 100644 (file)
index 0000000..9045d58
--- /dev/null
@@ -0,0 +1,119 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM860
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83-0x84 0x00E2
+0x85 0x00E0
+0x86 0x00C1
+0x87 0x00E7
+0x88 0x00EA
+0x89 0x00CA
+0x8A 0x00E8
+0x8B 0x00CD
+0x8C 0x00D4
+0x8D 0x00EC
+0x8E 0x00C3
+0x8F 0x00C2
+0x90 0x00C9
+0x91 0x00C0
+0x92 0x00C8
+0x93-0x94 0x00F4
+0x95 0x00F2
+0x96 0x00DA
+0x97 0x00F9
+0x98 0x00CC
+0x99 0x00D5
+0x9A 0x00DC
+0x9B-0x9C 0x00A2
+0x9D 0x00D9
+0x9E 0x20A7
+0x9F 0x00D3
+0xA0 0x00E1
+0xA1 0x00ED
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4 0x00F1
+0xA5 0x00D1
+0xA6 0x00AA
+0xA7 0x00BA
+0xA8 0x00BF
+0xA9 0x00D2
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x00A1
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0 0x03B1
+0xE1 0x00DF
+0xE2 0x0393
+0xE3 0x03C0
+0xE4 0x03A3
+0xE5 0x03C3
+0xE6 0x00B5
+0xE7 0x03C4
+0xE8 0x03A6
+0xE9 0x0398
+0xEA 0x03A9
+0xEB 0x03B4
+0xEC 0x221E
+0xED 0x03C6
+0xEE 0x03B5
+0xEF 0x2229
+0xF0 0x2261
+0xF1 0x00B1
+0xF2 0x2265
+0xF3 0x2264
+0xF4-0xF5 0x2320
+0xF6 0x00F7
+0xF7 0x2248
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x207F
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM861.map b/etc/charsets/IBM861.map
new file mode 100644 (file)
index 0000000..3c5f31a
--- /dev/null
@@ -0,0 +1,120 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM861
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x00E2
+0x84 0x00E4
+0x85 0x00E0
+0x86 0x00E5
+0x87 0x00E7
+0x88-0x89 0x00EA
+0x8A 0x00E8
+0x8B 0x00D0
+0x8C 0x00F0
+0x8D 0x00DE
+0x8E-0x8F 0x00C4
+0x90 0x00C9
+0x91 0x00E6
+0x92 0x00C6
+0x93 0x00F4
+0x94 0x00F6
+0x95 0x00FE
+0x96 0x00FB
+0x97 0x00DD
+0x98 0x00FD
+0x99 0x00D6
+0x9A 0x00DC
+0x9B 0x00F8
+0x9C 0x00A3
+0x9D 0x00D8
+0x9E 0x20A7
+0x9F 0x0192
+0xA0 0x00E1
+0xA1 0x00ED
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4 0x00C1
+0xA5 0x00CD
+0xA6 0x00D3
+0xA7 0x00DA
+0xA8 0x00BF
+0xA9 0x2310
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x00A1
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0 0x03B1
+0xE1 0x00DF
+0xE2 0x0393
+0xE3 0x03C0
+0xE4 0x03A3
+0xE5 0x03C3
+0xE6 0x00B5
+0xE7 0x03C4
+0xE8 0x03A6
+0xE9 0x0398
+0xEA 0x03A9
+0xEB 0x03B4
+0xEC 0x221E
+0xED 0x03C6
+0xEE 0x03B5
+0xEF 0x2229
+0xF0 0x2261
+0xF1 0x00B1
+0xF2 0x2265
+0xF3 0x2264
+0xF4-0xF5 0x2320
+0xF6 0x00F7
+0xF7 0x2248
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x207F
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM862.map b/etc/charsets/IBM862.map
new file mode 100644 (file)
index 0000000..07183d3
--- /dev/null
@@ -0,0 +1,95 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM862
+0x00-0x7F 0x0000
+0x80-0x9A 0x05D0
+0x9B-0x9C 0x00A2
+0x9D 0x00A5
+0x9E 0x20A7
+0x9F 0x0192
+0xA0 0x00E1
+0xA1 0x00ED
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4 0x00F1
+0xA5 0x00D1
+0xA6 0x00AA
+0xA7 0x00BA
+0xA8 0x00BF
+0xA9 0x2310
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x00A1
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0 0x03B1
+0xE1 0x00DF
+0xE2 0x0393
+0xE3 0x03C0
+0xE4 0x03A3
+0xE5 0x03C3
+0xE6 0x00B5
+0xE7 0x03C4
+0xE8 0x03A6
+0xE9 0x0398
+0xEA 0x03A9
+0xEB 0x03B4
+0xEC 0x221E
+0xED 0x03C6
+0xEE 0x03B5
+0xEF 0x2229
+0xF0 0x2261
+0xF1 0x00B1
+0xF2 0x2265
+0xF3 0x2264
+0xF4-0xF5 0x2320
+0xF6 0x00F7
+0xF7 0x2248
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x207F
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM863.map b/etc/charsets/IBM863.map
new file mode 100644 (file)
index 0000000..5565e42
--- /dev/null
@@ -0,0 +1,120 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM863
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x00E2
+0x84 0x00C2
+0x85 0x00E0
+0x86 0x00B6
+0x87 0x00E7
+0x88-0x89 0x00EA
+0x8A 0x00E8
+0x8B 0x00EF
+0x8C 0x00EE
+0x8D 0x2017
+0x8E 0x00C0
+0x8F 0x00A7
+0x90 0x00C9
+0x91 0x00C8
+0x92 0x00CA
+0x93 0x00F4
+0x94 0x00CB
+0x95 0x00CF
+0x96 0x00FB
+0x97 0x00F9
+0x98 0x00A4
+0x99 0x00D4
+0x9A 0x00DC
+0x9B-0x9C 0x00A2
+0x9D 0x00D9
+0x9E 0x00DB
+0x9F 0x0192
+0xA0 0x00A6
+0xA1 0x00B4
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4 0x00A8
+0xA5 0x00B8
+0xA6 0x00B3
+0xA7 0x00AF
+0xA8 0x00CE
+0xA9 0x2310
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x00BE
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0 0x03B1
+0xE1 0x00DF
+0xE2 0x0393
+0xE3 0x03C0
+0xE4 0x03A3
+0xE5 0x03C3
+0xE6 0x00B5
+0xE7 0x03C4
+0xE8 0x03A6
+0xE9 0x0398
+0xEA 0x03A9
+0xEB 0x03B4
+0xEC 0x221E
+0xED 0x03C6
+0xEE 0x03B5
+0xEF 0x2229
+0xF0 0x2261
+0xF1 0x00B1
+0xF2 0x2265
+0xF3 0x2264
+0xF4-0xF5 0x2320
+0xF6 0x00F7
+0xF7 0x2248
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x207F
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM864.map b/etc/charsets/IBM864.map
new file mode 100644 (file)
index 0000000..2d627d8
--- /dev/null
@@ -0,0 +1,110 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM864
+0x00-0x24 0x0000
+0x25 0x066A
+0x26-0x7F 0x0026
+0x80 0x00B0
+0x81 0x00B7
+0x82-0x83 0x2219
+0x84 0x2592
+0x85 0x2500
+0x86 0x2502
+0x87 0x253C
+0x88 0x2524
+0x89 0x252C
+0x8A 0x251C
+0x8B 0x2534
+0x8C 0x2510
+0x8D 0x250C
+0x8E 0x2514
+0x8F 0x2518
+0x90 0x03B2
+0x91 0x221E
+0x92 0x03C6
+0x93 0x00B1
+0x94 0x00BD
+0x95 0x00BC
+0x96 0x2248
+0x97 0x00AB
+0x98 0x00BB
+0x99-0x9A 0xFEF7
+0x9D-0x9E 0xFEFB
+0xA0 0x00A0
+0xA1 0x00AD
+0xA2 0xFE82
+0xA3-0xA4 0x00A3
+0xA5 0xFE84
+0xA8-0xA9 0xFE8E
+0xAA 0xFE95
+0xAB 0xFE99
+0xAC 0x060C
+0xAD 0xFE9D
+0xAE 0xFEA1
+0xAF 0xFEA5
+0xB0-0xB9 0x0660
+0xBA 0xFED1
+0xBB 0x061B
+0xBC 0xFEB1
+0xBD 0xFEB5
+0xBE 0xFEB9
+0xBF 0x061F
+0xC0 0x00A2
+0xC1-0xC2 0xFE80
+0xC3 0xFE83
+0xC4 0xFE85
+0xC5 0xFECA
+0xC6 0xFE8B
+0xC7 0xFE8D
+0xC8 0xFE91
+0xC9 0xFE93
+0xCA 0xFE97
+0xCB 0xFE9B
+0xCC 0xFE9F
+0xCD 0xFEA3
+0xCE 0xFEA7
+0xCF 0xFEA9
+0xD0 0xFEAB
+0xD1 0xFEAD
+0xD2 0xFEAF
+0xD3 0xFEB3
+0xD4 0xFEB7
+0xD5 0xFEBB
+0xD6 0xFEBF
+0xD7 0xFEC1
+0xD8 0xFEC5
+0xD9 0xFECB
+0xDA 0xFECF
+0xDB 0x00A6
+0xDC 0x00AC
+0xDD 0x00F7
+0xDE 0x00D7
+0xDF 0xFEC9
+0xE0 0x0640
+0xE1 0xFED3
+0xE2 0xFED7
+0xE3 0xFEDB
+0xE4 0xFEDF
+0xE5 0xFEE3
+0xE6 0xFEE7
+0xE7 0xFEEB
+0xE8 0xFEED
+0xE9 0xFEEF
+0xEA 0xFEF3
+0xEB 0xFEBD
+0xEC 0xFECC
+0xED 0xFECE
+0xEE 0xFECD
+0xEF 0xFEE1
+0xF0 0xFE7D
+0xF1 0x0651
+0xF2 0xFEE5
+0xF3 0xFEE9
+0xF4 0xFEEC
+0xF5 0xFEF0
+0xF6 0xFEF2
+0xF7 0xFED0
+0xF8 0xFED5
+0xF9-0xFA 0xFEF5
+0xFB 0xFEDD
+0xFC 0xFED9
+0xFD 0xFEF1
+0xFE 0x25A0
diff --git a/etc/charsets/IBM865.map b/etc/charsets/IBM865.map
new file mode 100644 (file)
index 0000000..2dbd868
--- /dev/null
@@ -0,0 +1,120 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM865
+0x00-0x7F 0x0000
+0x80 0x00C7
+0x81 0x00FC
+0x82 0x00E9
+0x83 0x00E2
+0x84 0x00E4
+0x85 0x00E0
+0x86 0x00E5
+0x87 0x00E7
+0x88-0x89 0x00EA
+0x8A 0x00E8
+0x8B 0x00EF
+0x8C 0x00EE
+0x8D 0x00EC
+0x8E-0x8F 0x00C4
+0x90 0x00C9
+0x91 0x00E6
+0x92 0x00C6
+0x93 0x00F4
+0x94 0x00F6
+0x95 0x00F2
+0x96 0x00FB
+0x97 0x00F9
+0x98 0x00FF
+0x99 0x00D6
+0x9A 0x00DC
+0x9B 0x00F8
+0x9C 0x00A3
+0x9D 0x00D8
+0x9E 0x20A7
+0x9F 0x0192
+0xA0 0x00E1
+0xA1 0x00ED
+0xA2 0x00F3
+0xA3 0x00FA
+0xA4 0x00F1
+0xA5 0x00D1
+0xA6 0x00AA
+0xA7 0x00BA
+0xA8 0x00BF
+0xA9 0x2310
+0xAA 0x00AC
+0xAB 0x00BD
+0xAC 0x00BC
+0xAD 0x00A1
+0xAE 0x00AB
+0xAF 0x00A4
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0 0x03B1
+0xE1 0x00DF
+0xE2 0x0393
+0xE3 0x03C0
+0xE4 0x03A3
+0xE5 0x03C3
+0xE6 0x00B5
+0xE7 0x03C4
+0xE8 0x03A6
+0xE9 0x0398
+0xEA 0x03A9
+0xEB 0x03B4
+0xEC 0x221E
+0xED 0x03C6
+0xEE 0x03B5
+0xEF 0x2229
+0xF0 0x2261
+0xF1 0x00B1
+0xF2 0x2265
+0xF3 0x2264
+0xF4-0xF5 0x2320
+0xF6 0x00F7
+0xF7 0x2248
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x207F
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM866.map b/etc/charsets/IBM866.map
new file mode 100644 (file)
index 0000000..4c5b1c9
--- /dev/null
@@ -0,0 +1,61 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM866
+0x00-0x7F 0x0000
+0x80-0xAF 0x0410
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB6 0x2561
+0xB7 0x2556
+0xB8 0x2555
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD 0x255C
+0xBE 0x255B
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x255E
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD0 0x2567
+0xD1-0xD2 0x2564
+0xD3 0x2559
+0xD4 0x2558
+0xD5-0xD6 0x2552
+0xD7 0x256B
+0xD8 0x256A
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0-0xEF 0x0440
+0xF0 0x0401
+0xF1 0x0451
+0xF2 0x0404
+0xF3 0x0454
+0xF4 0x0407
+0xF5 0x0457
+0xF6 0x040E
+0xF7 0x045E
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x2116
+0xFD 0x00A4
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM868.map b/etc/charsets/IBM868.map
new file mode 100644 (file)
index 0000000..5ff0130
--- /dev/null
@@ -0,0 +1,88 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM868
+0x00-0x7F 0x0000
+0x80-0x89 0x0660
+0x8A 0x060C
+0x8B 0x061B
+0x8C 0x061F
+0x8D 0x0622
+0x8E 0x0627
+0x8F 0xFE8E
+0x90 0xE016
+0x91 0x0628
+0x92 0xFE91
+0x93 0x067E
+0x95-0x96 0x0629
+0x97 0xFE97
+0x9A 0x062B
+0x9B 0xFE9B
+0x9C 0x062C
+0x9D 0xFE9F
+0xA0 0x062D
+0xA1 0xFEA3
+0xA2 0x062E
+0xA3 0xFEA7
+0xA4 0x062F
+0xA6-0xA7 0x0630
+0xA9 0x0632
+0xAB 0x0633
+0xAC 0xFEB3
+0xAD 0x0634
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0 0xFEB7
+0xB1 0x0635
+0xB2-0xB4 0x2591
+0xB5 0x2502
+0xB6 0x2524
+0xB7 0xFEBB
+0xB8 0x0636
+0xB9 0xFEBF
+0xBA 0x0637
+0xBB 0x2563
+0xBC 0x2551
+0xBD 0x2557
+0xBE 0x255D
+0xBF-0xC0 0x0638
+0xC1 0x2510
+0xC2 0x2514
+0xC3 0x2534
+0xC4 0x252C
+0xC5 0x251C
+0xC6 0x2500
+0xC7 0x253C
+0xC8-0xC9 0xFECA
+0xCA 0x255A
+0xCB 0x2554
+0xCC 0x2569
+0xCD 0x2566
+0xCE 0x2560
+0xCF 0x2550
+0xD0 0x256C
+0xD1 0xFECC
+0xD2 0x063A
+0xD3-0xD5 0xFECE
+0xD6 0x0641
+0xD7 0xFED3
+0xD8 0x0642
+0xD9 0xFED7
+0xDA 0xFEDA
+0xDB 0x2518
+0xDC 0x250C
+0xDD 0x2588
+0xDE 0x2580
+0xDF 0xFEDB
+0xE1 0x2584
+0xE3 0x0644
+0xE4 0xFEDE
+0xE5 0xFEE0
+0xE6 0x0645
+0xE7 0xFEE3
+0xE9 0x0646
+0xEA 0xFEE7
+0xEC 0x0648
+0xF1 0x0621
+0xF2 0x00AD
+0xFB 0x0651
+0xFC 0xFE7D
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM869.map b/etc/charsets/IBM869.map
new file mode 100644 (file)
index 0000000..e4e3a4d
--- /dev/null
@@ -0,0 +1,79 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM869
+0x00-0x7F 0x0000
+0x86 0x0386
+0x88 0x00B7
+0x89 0x00AC
+0x8A 0x00A6
+0x8B-0x8C 0x2018
+0x8D 0x0388
+0x8E 0x2015
+0x8F-0x90 0x0389
+0x91 0x03AA
+0x92 0x038C
+0x95 0x038E
+0x96 0x03AB
+0x97 0x00A9
+0x98 0x038F
+0x99-0x9A 0x00B2
+0x9B 0x03AC
+0x9C 0x00A3
+0x9D-0x9F 0x03AD
+0xA0 0x03CA
+0xA1 0x0390
+0xA2-0xA3 0x03CC
+0xA4-0xAA 0x0391
+0xAB 0x00BD
+0xAC-0xAD 0x0398
+0xAE 0x00AB
+0xAF 0x00BB
+0xB0-0xB2 0x2591
+0xB3 0x2502
+0xB4 0x2524
+0xB5-0xB8 0x039A
+0xB9 0x2563
+0xBA 0x2551
+0xBB 0x2557
+0xBC 0x255D
+0xBD-0xBE 0x039E
+0xBF 0x2510
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6-0xC7 0x03A0
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF-0xD5 0x03A3
+0xD6-0xD8 0x03B1
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD-0xDE 0x03B4
+0xDF 0x2580
+0xE0-0xEB 0x03B6
+0xEC 0x03C3
+0xED 0x03C2
+0xEE 0x03C4
+0xEF 0x0384
+0xF0 0x00AD
+0xF1 0x00B1
+0xF2-0xF4 0x03C5
+0xF5 0x00A7
+0xF6 0x03C8
+0xF7 0x0385
+0xF8 0x00B0
+0xF9 0x00A8
+0xFA 0x03C9
+0xFB 0x03CB
+0xFC 0x03B0
+0xFD 0x03CE
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/IBM870.map b/etc/charsets/IBM870.map
new file mode 100644 (file)
index 0000000..fdd312d
--- /dev/null
@@ -0,0 +1,165 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM870
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44 0x0163
+0x45 0x00E1
+0x46 0x0103
+0x47 0x010D
+0x48 0x00E7
+0x49 0x0107
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51 0x00E9
+0x52 0x0119
+0x53 0x00EB
+0x54 0x016F
+0x55-0x56 0x00ED
+0x57 0x013E
+0x58 0x013A
+0x59 0x00DF
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64 0x02DD
+0x65 0x00C1
+0x66 0x0102
+0x67 0x010C
+0x68 0x00C7
+0x69 0x0106
+0x6A 0x007C
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x02C7
+0x71 0x00C9
+0x72 0x0118
+0x73 0x00CB
+0x74 0x016E
+0x75-0x76 0x00CD
+0x77 0x013D
+0x78 0x0139
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x02D8
+0x81-0x89 0x0061
+0x8A 0x015B
+0x8B 0x0148
+0x8C 0x0111
+0x8D 0x00FD
+0x8E 0x0159
+0x8F 0x015F
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x0142
+0x9B 0x0144
+0x9C 0x0161
+0x9D 0x00B8
+0x9E 0x02DB
+0x9F 0x00A4
+0xA0 0x0105
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xAA 0x015A
+0xAB 0x0147
+0xAC 0x0110
+0xAD 0x00DD
+0xAE 0x0158
+0xAF 0x015E
+0xB0 0x00B7
+0xB1 0x0104
+0xB2 0x017C
+0xB3 0x0162
+0xB4 0x017B
+0xB5 0x00A7
+0xB6 0x017E
+0xB7 0x017A
+0xB8 0x017D
+0xB9 0x0179
+0xBA 0x0141
+0xBB 0x0143
+0xBC 0x0160
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x00F6
+0xCD 0x0155
+0xCE 0x00F3
+0xCF 0x0151
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0x011A
+0xDB 0x0171
+0xDC 0x00FC
+0xDD 0x0165
+0xDE 0x00FA
+0xDF 0x011B
+0xE0 0x005C
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x010F
+0xEB 0x00D4
+0xEC 0x00D6
+0xED 0x0154
+0xEE 0x00D3
+0xEF 0x0150
+0xF0-0xF9 0x0030
+0xFA 0x010E
+0xFB 0x0170
+0xFC 0x00DC
+0xFD 0x0164
+0xFE 0x00DA
+0xFF 0x009F
diff --git a/etc/charsets/IBM871.map b/etc/charsets/IBM871.map
new file mode 100644 (file)
index 0000000..a80d0c2
--- /dev/null
@@ -0,0 +1,148 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM871
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x46 0x00E3
+0x47 0x00E5
+0x48 0x00E7
+0x49 0x00F1
+0x4A 0x00FE
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x00C6
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x00D6
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x66 0x00C3
+0x67 0x00C5
+0x68 0x00C7
+0x69 0x00D1
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00F8
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x00F0
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x00D0
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x00D8
+0x81-0x89 0x0061
+0x8A 0x00AB
+0x8B 0x00BB
+0x8C 0x0060
+0x8D 0x00FD
+0x8E 0x007B
+0x8F 0x00B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x00AA
+0x9B 0x00BA
+0x9C 0x007D
+0x9D 0x00B8
+0x9E 0x005D
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x00F6
+0xA2-0xA9 0x0073
+0xAA 0x00A1
+0xAB 0x00BF
+0xAC 0x0040
+0xAD 0x00DD
+0xAE 0x005B
+0xAF 0x00AE
+0xB0-0xB1 0x00A2
+0xB2 0x00A5
+0xB3 0x00B7
+0xB4 0x00A9
+0xB5 0x00A7
+0xB6 0x00B6
+0xB7-0xB9 0x00BC
+0xBA 0x00AC
+0xBB 0x007C
+0xBC 0x00AF
+0xBD 0x00A8
+0xBE 0x005C
+0xBF 0x00D7
+0xC0 0x00DE
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x007E
+0xCD-0xCE 0x00F2
+0xCF 0x00F5
+0xD0 0x00E6
+0xD1-0xD9 0x004A
+0xDA 0x00B9
+0xDB-0xDC 0x00FB
+0xDD-0xDE 0x00F9
+0xDF 0x00FF
+0xE0 0x00B4
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x005E
+0xED-0xEE 0x00D2
+0xEF 0x00D5
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB-0xFC 0x00DB
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM874.map b/etc/charsets/IBM874.map
new file mode 100644 (file)
index 0000000..1fad3f5
--- /dev/null
@@ -0,0 +1,11 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM874
+0x00-0x7F 0x0000
+0x80 0x20AC
+0x85 0x2026
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0xA0 0x00A0
+0xA1-0xDA 0x0E01
+0xDF-0xFB 0x0E3F
diff --git a/etc/charsets/IBM875.map b/etc/charsets/IBM875.map
new file mode 100644 (file)
index 0000000..c05a7a0
--- /dev/null
@@ -0,0 +1,112 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM875
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41-0x49 0x0391
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x58 0x039A
+0x59 0x03A3
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62-0x69 0x03A4
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70 0x00A8
+0x71 0x0386
+0x72-0x73 0x0388
+0x74 0x2207
+0x75 0x038A
+0x76 0x038C
+0x77-0x78 0x038E
+0x79 0x0060
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x0385
+0x81-0x89 0x0061
+0x8A-0x8F 0x03B1
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A-0x9F 0x03B7
+0xA0 0x00B4
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xAA-0xAE 0x03BD
+0xAF 0x03C3
+0xB0 0x00A3
+0xB1-0xB3 0x03AC
+0xB4 0x0390
+0xB5 0x03AF
+0xB6-0xB7 0x03CC
+0xB8 0x03B0
+0xB9 0x03CE
+0xBA 0x03C2
+0xBB-0xBF 0x03C4
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB-0xCD 0x03C9
+0xCE 0x2018
+0xCF 0x2015
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0x00B1
+0xDB 0x00BD
+0xDD 0x00B7
+0xDE 0x2019
+0xDF 0x00A6
+0xE0 0x005C
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00A7
+0xEE-0xEF 0x00AB
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB 0x00A9
+0xFE 0x00BB
+0xFF 0x009F
diff --git a/etc/charsets/IBM880.map b/etc/charsets/IBM880.map
new file mode 100644 (file)
index 0000000..a0dcc7e
--- /dev/null
@@ -0,0 +1,123 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM880
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x42-0x43 0x0452
+0x44 0x0451
+0x46-0x49 0x0455
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x54 0x0459
+0x56 0x045F
+0x57 0x042A
+0x58 0x2116
+0x59 0x0402
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x0403
+0x63 0x0401
+0x65-0x69 0x0405
+0x6A 0x00A6
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70-0x72 0x040A
+0x75 0x040F
+0x76 0x044E
+0x77-0x78 0x0430
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0x0446
+0x81-0x89 0x0061
+0x8A-0x8B 0x0434
+0x8C 0x0444
+0x8D 0x0433
+0x8E 0x0445
+0x8F-0x90 0x0438
+0x91-0x99 0x006A
+0x9A-0x9F 0x043A
+0xA0 0x044F
+0xA2-0xA9 0x0073
+0xAA-0xAD 0x0440
+0xAE 0x0436
+0xAF 0x0432
+0xB0 0x044C
+0xB1 0x044B
+0xB2 0x0437
+0xB3 0x0448
+0xB4 0x044D
+0xB5 0x0449
+0xB6 0x0447
+0xB7 0x044A
+0xB8 0x042E
+0xB9-0xBA 0x0410
+0xBB 0x0426
+0xBC-0xBD 0x0414
+0xBE 0x0424
+0xBF 0x0413
+0xC1-0xC9 0x0041
+0xCA 0x0425
+0xCB-0xCF 0x0418
+0xD1-0xD9 0x004A
+0xDA-0xDC 0x041D
+0xDD 0x042F
+0xDE-0xDF 0x0420
+0xE0 0x005C
+0xE1 0x00A4
+0xE2-0xE9 0x0053
+0xEA-0xEB 0x0422
+0xEC 0x0416
+0xED 0x0412
+0xEE 0x042C
+0xEF 0x042B
+0xF0-0xF9 0x0030
+0xFA 0x0417
+0xFB 0x0428
+0xFC 0x042D
+0xFD 0x0429
+0xFE 0x0427
+0xFF 0x009F
diff --git a/etc/charsets/IBM891.map b/etc/charsets/IBM891.map
new file mode 100644 (file)
index 0000000..db1f1a8
--- /dev/null
@@ -0,0 +1,2 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM891
+0x00-0x7F 0x0000
diff --git a/etc/charsets/IBM903.map b/etc/charsets/IBM903.map
new file mode 100644 (file)
index 0000000..6e37f45
--- /dev/null
@@ -0,0 +1,2 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM903
+0x00-0x7F 0x0000
diff --git a/etc/charsets/IBM904.map b/etc/charsets/IBM904.map
new file mode 100644 (file)
index 0000000..2a93751
--- /dev/null
@@ -0,0 +1,5 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM904
+0x00-0x7F 0x0000
+0x80 0x00A2
+0xFD 0x00AC
+0xFE 0x00A6
diff --git a/etc/charsets/IBM905.map b/etc/charsets/IBM905.map
new file mode 100644 (file)
index 0000000..9c6cc06
--- /dev/null
@@ -0,0 +1,144 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM905
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x42 0x00E2
+0x43 0x00E4
+0x44-0x45 0x00E0
+0x47 0x010B
+0x48 0x007B
+0x49 0x00F1
+0x4A 0x00C7
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51-0x53 0x00E9
+0x54 0x00E8
+0x55-0x57 0x00ED
+0x58 0x00EC
+0x59 0x00DF
+0x5A 0x011E
+0x5B 0x0130
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0x00C2
+0x63 0x00C4
+0x64-0x65 0x00C0
+0x67 0x010A
+0x68 0x005B
+0x69 0x00D1
+0x6A 0x015F
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x71-0x73 0x00C9
+0x74 0x00C8
+0x75-0x77 0x00CD
+0x78 0x00CC
+0x79 0x0131
+0x7A 0x003A
+0x7B 0x00D6
+0x7C 0x015E
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x00DC
+0x80 0x02D8
+0x81-0x89 0x0061
+0x8A 0x0127
+0x8B 0x0109
+0x8C 0x015D
+0x8D 0x016D
+0x8F 0x007C
+0x90 0x00B0
+0x91-0x99 0x006A
+0x9A 0x0125
+0x9B 0x011D
+0x9C 0x0135
+0x9D 0x02DB
+0x9F 0x00A4
+0xA0 0x00B5
+0xA1 0x00F6
+0xA2-0xA9 0x0073
+0xAA 0x0126
+0xAB 0x0108
+0xAC 0x015C
+0xAD 0x016C
+0xAF 0x0040
+0xB0 0x00B7
+0xB1 0x00A3
+0xB2 0x017C
+0xB3 0x007D
+0xB4 0x017B
+0xB5 0x00A7
+0xB6 0x005D
+0xB8 0x00BD
+0xB9 0x0024
+0xBA 0x0124
+0xBB 0x011C
+0xBC 0x0134
+0xBD 0x00A8
+0xBE 0x00B4
+0xBF 0x00D7
+0xC0 0x00E7
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCB 0x00F4
+0xCC 0x007E
+0xCD-0xCE 0x00F2
+0xCF 0x0121
+0xD0 0x011F
+0xD1-0xD9 0x004A
+0xDA 0x0060
+0xDB 0x00FB
+0xDC 0x005C
+0xDD-0xDE 0x00F9
+0xE0 0x00FC
+0xE1 0x00F7
+0xE2-0xE9 0x0053
+0xEA 0x00B2
+0xEB 0x00D4
+0xEC 0x0023
+0xED-0xEE 0x00D2
+0xEF 0x0120
+0xF0-0xF9 0x0030
+0xFA 0x00B3
+0xFB 0x00DB
+0xFC 0x0022
+0xFD-0xFE 0x00D9
+0xFF 0x009F
diff --git a/etc/charsets/IBM918.map b/etc/charsets/IBM918.map
new file mode 100644 (file)
index 0000000..326e2dc
--- /dev/null
@@ -0,0 +1,124 @@
+# Generated from glibc-2.3.2/localedata/charmaps/IBM918
+0x00-0x03 0x0000
+0x04 0x009C
+0x05 0x0009
+0x06 0x0086
+0x07 0x007F
+0x08 0x0097
+0x09-0x0A 0x008D
+0x0B-0x13 0x000B
+0x14 0x009D
+0x15 0x0085
+0x16 0x0008
+0x17 0x0087
+0x18-0x19 0x0018
+0x1A 0x0092
+0x1B 0x008F
+0x1C-0x1F 0x001C
+0x20-0x24 0x0080
+0x25 0x000A
+0x26 0x0017
+0x27 0x001B
+0x28-0x2C 0x0088
+0x2D-0x2F 0x0005
+0x30-0x31 0x0090
+0x32 0x0016
+0x33-0x36 0x0093
+0x37 0x0004
+0x38-0x3B 0x0098
+0x3C-0x3D 0x0014
+0x3E 0x009E
+0x3F 0x001A
+0x40 0x0020
+0x41 0x00A0
+0x42 0x060C
+0x43 0x061B
+0x44 0x061F
+0x45 0x0623
+0x46 0x0627
+0x47 0xFE8E
+0x49 0x0628
+0x4A 0x005B
+0x4B 0x002E
+0x4C 0x003C
+0x4D 0x0028
+0x4E 0x002B
+0x4F 0x0021
+0x50 0x0026
+0x51 0xFE91
+0x52 0x067E
+0x54-0x55 0x0629
+0x56 0xFE97
+0x59 0x062B
+0x5A 0x005D
+0x5B 0x0024
+0x5C 0x002A
+0x5D 0x0029
+0x5E 0x003B
+0x5F 0x005E
+0x60 0x002D
+0x61 0x002F
+0x62 0xFE9B
+0x63 0x062C
+0x64 0xFE9F
+0x67 0x062D
+0x68 0xFEA3
+0x69 0x062E
+0x6A 0x0060
+0x6B 0x002C
+0x6C 0x0025
+0x6D 0x005F
+0x6E-0x6F 0x003E
+0x70-0x79 0x0660
+0x7A 0x003A
+0x7B 0x0023
+0x7C 0x0040
+0x7D 0x0027
+0x7E 0x003D
+0x7F 0x0022
+0x80 0xFEA7
+0x81-0x89 0x0061
+0x8A 0x062F
+0x8C-0x8D 0x0630
+0x8F 0x0632
+0x91-0x99 0x006A
+0x9A 0x0633
+0x9B 0xFEB3
+0x9C 0x0634
+0x9D 0xFEB7
+0x9E 0x0635
+0x9F 0xFEBB
+0xA0 0x0636
+0xA1 0x007E
+0xA2-0xA9 0x0073
+0xAA 0xFEBF
+0xAB-0xAD 0x0637
+0xAE-0xB0 0xFECA
+0xB1 0x063A
+0xB2-0xB4 0xFECE
+0xB5 0x0641
+0xB6 0xFED3
+0xB7 0x0642
+0xB8 0xFED7
+0xB9 0x0643
+0xBA 0xFEDB
+0xBB 0x007C
+0xBE 0x0644
+0xBF 0xFEDE
+0xC0 0x007B
+0xC1-0xC9 0x0041
+0xCA 0x00AD
+0xCC 0x0645
+0xCD 0xFEE3
+0xCF 0x0646
+0xD0 0x007D
+0xD1-0xD9 0x004A
+0xDA 0xFEE7
+0xDC 0x0648
+0xE0 0x005C
+0xE2-0xE9 0x0053
+0xEA 0x0621
+0xF0-0xF9 0x0030
+0xFD 0x0651
+0xFE 0xFE7D
+0xFF 0x009F
diff --git a/etc/charsets/JISC6226.map b/etc/charsets/JISC6226.map
new file mode 100644 (file)
index 0000000..765e06c
--- /dev/null
@@ -0,0 +1,6798 @@
+# Generated from http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/.../Uni2JIS
+0x2121 0x3000
+0x2122 0x3001
+0x2123 0x3002
+0x2124 0xFF0C
+0x2125 0xFF0E
+0x2126 0x30FB
+0x2127 0xFF1A
+0x2128 0xFF1B
+0x2129 0xFF1F
+0x212A 0xFF01
+0x212B 0x309B
+0x212C 0x309C
+0x212D 0x00B4
+0x212E 0xFF40
+0x212F 0x00A8
+0x2130 0xFF3E
+0x2131 0xFFE3
+0x2132 0xFF3F
+0x2133 0x30FD
+0x2134 0x30FE
+0x2135 0x309D
+0x2136 0x309E
+0x2137 0x3003
+0x2138 0x4EDD
+0x2139 0x3005
+0x213A 0x3006
+0x213B 0x3007
+0x213C 0x30FC
+0x213D 0x2014
+0x213E 0x2010
+0x213F 0xFF0F
+0x2140 0x005C
+0x2141 0x301C
+0x2142 0x2016
+0x2143 0xFF5C
+0x2144 0x2026
+0x2145 0x2025
+0x2146 0x2018
+0x2147 0x2019
+0x2148 0x201C
+0x2149 0x201D
+0x214A 0xFF08
+0x214B 0xFF09
+0x214C 0x3014
+0x214D 0x3015
+0x214E 0xFF3B
+0x214F 0xFF3D
+0x2150 0xFF5B
+0x2151 0xFF5D
+0x2152 0x3008
+0x2153 0x3009
+0x2154 0x300A
+0x2155 0x300B
+0x2156 0x300C
+0x2157 0x300D
+0x2158 0x300E
+0x2159 0x300F
+0x215A 0x3010
+0x215B 0x3011
+0x215C 0xFF0B
+0x215D 0x2212
+0x215E 0x00B1
+0x215F 0x00D7
+0x2160 0x00F7
+0x2161 0xFF1D
+0x2162 0x2260
+0x2163 0xFF1C
+0x2164 0xFF1E
+0x2165 0x2266
+0x2166 0x2267
+0x2167 0x221E
+0x2168 0x2234
+0x2169 0x2642
+0x216A 0x2640
+0x216B 0x00B0
+0x216C 0x2032
+0x216D 0x2033
+0x216E 0x2103
+0x216F 0xFFE5
+0x2170 0xFF04
+0x2171 0x00A2
+0x2172 0x00A3
+0x2173 0xFF05
+0x2174 0xFF03
+0x2175 0xFF06
+0x2176 0xFF0A
+0x2177 0xFF20
+0x2178 0x00A7
+0x2179 0x2606
+0x217A 0x2605
+0x217B 0x25CB
+0x217C 0x25CF
+0x217D 0x25CE
+0x217E 0x25C7
+0x2221 0x25C6
+0x2222 0x25A1
+0x2223 0x25A0
+0x2224 0x25B3
+0x2225 0x25B2
+0x2226 0x25BD
+0x2227 0x25BC
+0x2228 0x203B
+0x2229 0x3012
+0x222A 0x2192
+0x222B 0x2190
+0x222C 0x2191
+0x222D 0x2193
+0x222E 0x3013
+0x2330 0xFF10
+0x2331 0xFF11
+0x2332 0xFF12
+0x2333 0xFF13
+0x2334 0xFF14
+0x2335 0xFF15
+0x2336 0xFF16
+0x2337 0xFF17
+0x2338 0xFF18
+0x2339 0xFF19
+0x2341 0xFF21
+0x2342 0xFF22
+0x2343 0xFF23
+0x2344 0xFF24
+0x2345 0xFF25
+0x2346 0xFF26
+0x2347 0xFF27
+0x2348 0xFF28
+0x2349 0xFF29
+0x234A 0xFF2A
+0x234B 0xFF2B
+0x234C 0xFF2C
+0x234D 0xFF2D
+0x234E 0xFF2E
+0x234F 0xFF2F
+0x2350 0xFF30
+0x2351 0xFF31
+0x2352 0xFF32
+0x2353 0xFF33
+0x2354 0xFF34
+0x2355 0xFF35
+0x2356 0xFF36
+0x2357 0xFF37
+0x2358 0xFF38
+0x2359 0xFF39
+0x235A 0xFF3A
+0x2361 0xFF41
+0x2362 0xFF42
+0x2363 0xFF43
+0x2364 0xFF44
+0x2365 0xFF45
+0x2366 0xFF46
+0x2367 0xFF47
+0x2368 0xFF48
+0x2369 0xFF49
+0x236A 0xFF4A
+0x236B 0xFF4B
+0x236C 0xFF4C
+0x236D 0xFF4D
+0x236E 0xFF4E
+0x236F 0xFF4F
+0x2370 0xFF50
+0x2371 0xFF51
+0x2372 0xFF52
+0x2373 0xFF53
+0x2374 0xFF54
+0x2375 0xFF55
+0x2376 0xFF56
+0x2377 0xFF57
+0x2378 0xFF58
+0x2379 0xFF59
+0x237A 0xFF5A
+0x2421 0x3041
+0x2422 0x3042
+0x2423 0x3043
+0x2424 0x3044
+0x2425 0x3045
+0x2426 0x3046
+0x2427 0x3047
+0x2428 0x3048
+0x2429 0x3049
+0x242A 0x304A
+0x242B 0x304B
+0x242C 0x304C
+0x242D 0x304D
+0x242E 0x304E
+0x242F 0x304F
+0x2430 0x3050
+0x2431 0x3051
+0x2432 0x3052
+0x2433 0x3053
+0x2434 0x3054
+0x2435 0x3055
+0x2436 0x3056
+0x2437 0x3057
+0x2438 0x3058
+0x2439 0x3059
+0x243A 0x305A
+0x243B 0x305B
+0x243C 0x305C
+0x243D 0x305D
+0x243E 0x305E
+0x243F 0x305F
+0x2440 0x3060
+0x2441 0x3061
+0x2442 0x3062
+0x2443 0x3063
+0x2444 0x3064
+0x2445 0x3065
+0x2446 0x3066
+0x2447 0x3067
+0x2448 0x3068
+0x2449 0x3069
+0x244A 0x306A
+0x244B 0x306B
+0x244C 0x306C
+0x244D 0x306D
+0x244E 0x306E
+0x244F 0x306F
+0x2450 0x3070
+0x2451 0x3071
+0x2452 0x3072
+0x2453 0x3073
+0x2454 0x3074
+0x2455 0x3075
+0x2456 0x3076
+0x2457 0x3077
+0x2458 0x3078
+0x2459 0x3079
+0x245A 0x307A
+0x245B 0x307B
+0x245C 0x307C
+0x245D 0x307D
+0x245E 0x307E
+0x245F 0x307F
+0x2460 0x3080
+0x2461 0x3081
+0x2462 0x3082
+0x2463 0x3083
+0x2464 0x3084
+0x2465 0x3085
+0x2466 0x3086
+0x2467 0x3087
+0x2468 0x3088
+0x2469 0x3089
+0x246A 0x308A
+0x246B 0x308B
+0x246C 0x308C
+0x246D 0x308D
+0x246E 0x308E
+0x246F 0x308F
+0x2470 0x3090
+0x2471 0x3091
+0x2472 0x3092
+0x2473 0x3093
+0x2521 0x30A1
+0x2522 0x30A2
+0x2523 0x30A3
+0x2524 0x30A4
+0x2525 0x30A5
+0x2526 0x30A6
+0x2527 0x30A7
+0x2528 0x30A8
+0x2529 0x30A9
+0x252A 0x30AA
+0x252B 0x30AB
+0x252C 0x30AC
+0x252D 0x30AD
+0x252E 0x30AE
+0x252F 0x30AF
+0x2530 0x30B0
+0x2531 0x30B1
+0x2532 0x30B2
+0x2533 0x30B3
+0x2534 0x30B4
+0x2535 0x30B5
+0x2536 0x30B6
+0x2537 0x30B7
+0x2538 0x30B8
+0x2539 0x30B9
+0x253A 0x30BA
+0x253B 0x30BB
+0x253C 0x30BC
+0x253D 0x30BD
+0x253E 0x30BE
+0x253F 0x30BF
+0x2540 0x30C0
+0x2541 0x30C1
+0x2542 0x30C2
+0x2543 0x30C3
+0x2544 0x30C4
+0x2545 0x30C5
+0x2546 0x30C6
+0x2547 0x30C7
+0x2548 0x30C8
+0x2549 0x30C9
+0x254A 0x30CA
+0x254B 0x30CB
+0x254C 0x30CC
+0x254D 0x30CD
+0x254E 0x30CE
+0x254F 0x30CF
+0x2550 0x30D0
+0x2551 0x30D1
+0x2552 0x30D2
+0x2553 0x30D3
+0x2554 0x30D4
+0x2555 0x30D5
+0x2556 0x30D6
+0x2557 0x30D7
+0x2558 0x30D8
+0x2559 0x30D9
+0x255A 0x30DA
+0x255B 0x30DB
+0x255C 0x30DC
+0x255D 0x30DD
+0x255E 0x30DE
+0x255F 0x30DF
+0x2560 0x30E0
+0x2561 0x30E1
+0x2562 0x30E2
+0x2563 0x30E3
+0x2564 0x30E4
+0x2565 0x30E5
+0x2566 0x30E6
+0x2567 0x30E7
+0x2568 0x30E8
+0x2569 0x30E9
+0x256A 0x30EA
+0x256B 0x30EB
+0x256C 0x30EC
+0x256D 0x30ED
+0x256E 0x30EE
+0x256F 0x30EF
+0x2570 0x30F0
+0x2571 0x30F1
+0x2572 0x30F2
+0x2573 0x30F3
+0x2574 0x30F4
+0x2575 0x30F5
+0x2576 0x30F6
+0x2621 0x0391
+0x2622 0x0392
+0x2623 0x0393
+0x2624 0x0394
+0x2625 0x0395
+0x2626 0x0396
+0x2627 0x0397
+0x2628 0x0398
+0x2629 0x0399
+0x262A 0x039A
+0x262B 0x039B
+0x262C 0x039C
+0x262D 0x039D
+0x262E 0x039E
+0x262F 0x039F
+0x2630 0x03A0
+0x2631 0x03A1
+0x2632 0x03A3
+0x2633 0x03A4
+0x2634 0x03A5
+0x2635 0x03A6
+0x2636 0x03A7
+0x2637 0x03A8
+0x2638 0x03A9
+0x2641 0x03B1
+0x2642 0x03B2
+0x2643 0x03B3
+0x2644 0x03B4
+0x2645 0x03B5
+0x2646 0x03B6
+0x2647 0x03B7
+0x2648 0x03B8
+0x2649 0x03B9
+0x264A 0x03BA
+0x264B 0x03BB
+0x264C 0x03BC
+0x264D 0x03BD
+0x264E 0x03BE
+0x264F 0x03BF
+0x2650 0x03C0
+0x2651 0x03C1
+0x2652 0x03C3
+0x2653 0x03C4
+0x2654 0x03C5
+0x2655 0x03C6
+0x2656 0x03C7
+0x2657 0x03C8
+0x2658 0x03C9
+0x2721 0x0410
+0x2722 0x0411
+0x2723 0x0412
+0x2724 0x0413
+0x2725 0x0414
+0x2726 0x0415
+0x2727 0x0401
+0x2728 0x0416
+0x2729 0x0417
+0x272A 0x0418
+0x272B 0x0419
+0x272C 0x041A
+0x272D 0x041B
+0x272E 0x041C
+0x272F 0x041D
+0x2730 0x041E
+0x2731 0x041F
+0x2732 0x0420
+0x2733 0x0421
+0x2734 0x0422
+0x2735 0x0423
+0x2736 0x0424
+0x2737 0x0425
+0x2738 0x0426
+0x2739 0x0427
+0x273A 0x0428
+0x273B 0x0429
+0x273C 0x042A
+0x273D 0x042B
+0x273E 0x042C
+0x273F 0x042D
+0x2740 0x042E
+0x2741 0x042F
+0x2751 0x0430
+0x2752 0x0431
+0x2753 0x0432
+0x2754 0x0433
+0x2755 0x0434
+0x2756 0x0435
+0x2757 0x0451
+0x2758 0x0436
+0x2759 0x0437
+0x275A 0x0438
+0x275B 0x0439
+0x275C 0x043A
+0x275D 0x043B
+0x275E 0x043C
+0x275F 0x043D
+0x2760 0x043E
+0x2761 0x043F
+0x2762 0x0440
+0x2763 0x0441
+0x2764 0x0442
+0x2765 0x0443
+0x2766 0x0444
+0x2767 0x0445
+0x2768 0x0446
+0x2769 0x0447
+0x276A 0x0448
+0x276B 0x0449
+0x276C 0x044A
+0x276D 0x044B
+0x276E 0x044C
+0x276F 0x044D
+0x2770 0x044E
+0x2771 0x044F
+0x3021 0x4E9C
+0x3022 0x555E
+0x3023 0x5A03
+0x3024 0x963F
+0x3025 0x54C0
+0x3026 0x611B
+0x3027 0x6328
+0x3028 0x59F6
+0x3029 0x9022
+0x302A 0x8475
+0x302B 0x831C
+0x302C 0x7A50
+0x302D 0x60AA
+0x302E 0x63E1
+0x302F 0x6E25
+0x3030 0x65ED
+0x3031 0x8466
+0x3032 0x82A6
+0x3033 0x9C3A
+0x3034 0x6893
+0x3035 0x5727
+0x3036 0x65A1
+0x3037 0x6271
+0x3038 0x5B9B
+0x3039 0x59D0
+0x303A 0x867B
+0x303B 0x98F4
+0x303C 0x7D62
+0x303D 0x7DBE
+0x303E 0x9B8E
+0x303F 0x6216
+0x3040 0x7C9F
+0x3041 0x88B7
+0x3042 0x5B89
+0x3043 0x5EB5
+0x3044 0x6309
+0x3045 0x6697
+0x3046 0x6848
+0x3047 0x95C7
+0x3048 0x978D
+0x3049 0x674F
+0x304A 0x4EE5
+0x304B 0x4F0A
+0x304C 0x4F4D
+0x304D 0x4F9D
+0x304E 0x5049
+0x304F 0x56F2
+0x3050 0x5937
+0x3051 0x59D4
+0x3052 0x5A01
+0x3053 0x5C09
+0x3054 0x60DF
+0x3055 0x610F
+0x3056 0x6170
+0x3057 0x6613
+0x3058 0x6905
+0x3059 0x70BA
+0x305A 0x754F
+0x305B 0x7570
+0x305C 0x79FB
+0x305D 0x7DAD
+0x305E 0x7DEF
+0x305F 0x80C3
+0x3060 0x840E
+0x3061 0x8863
+0x3062 0x8B02
+0x3063 0x9055
+0x3064 0x907A
+0x3065 0x533B
+0x3066 0x4E95
+0x3067 0x4EA5
+0x3068 0x57DF
+0x3069 0x80B2
+0x306A 0x90C1
+0x306B 0x78EF
+0x306C 0x4E00
+0x306D 0x58F1
+0x306E 0x6EA2
+0x306F 0x9038
+0x3070 0x7A32
+0x3071 0x8328
+0x3072 0x828B
+0x3073 0x9C2F
+0x3074 0x5141
+0x3075 0x5370
+0x3076 0x54BD
+0x3077 0x54E1
+0x3078 0x56E0
+0x3079 0x59FB
+0x307A 0x5F15
+0x307B 0x98F2
+0x307C 0x6DEB
+0x307D 0x80E4
+0x307E 0x852D
+0x3121 0x9662
+0x3122 0x9670
+0x3123 0x96A0
+0x3124 0x97FB
+0x3125 0x540B
+0x3126 0x53F3
+0x3127 0x5B87
+0x3128 0x70CF
+0x3129 0x7FBD
+0x312A 0x8FC2
+0x312B 0x96E8
+0x312C 0x536F
+0x312D 0x9D5C
+0x312E 0x7ABA
+0x312F 0x4E11
+0x3130 0x7893
+0x3131 0x81FC
+0x3132 0x6E26
+0x3133 0x5618
+0x3134 0x5504
+0x3135 0x6B1D
+0x3136 0x851A
+0x3137 0x9C3B
+0x3138 0x59E5
+0x3139 0x53A9
+0x313A 0x6D66
+0x313B 0x74DC
+0x313C 0x958F
+0x313D 0x5642
+0x313E 0x4E91
+0x313F 0x904B
+0x3140 0x96F2
+0x3141 0x834F
+0x3142 0x990C
+0x3143 0x53E1
+0x3144 0x55B6
+0x3145 0x5B30
+0x3146 0x5F71
+0x3147 0x6620
+0x3148 0x66F3
+0x3149 0x6804
+0x314A 0x6C38
+0x314B 0x6CF3
+0x314C 0x6D29
+0x314D 0x745B
+0x314E 0x76C8
+0x314F 0x7A4E
+0x3150 0x9834
+0x3151 0x82F1
+0x3152 0x885B
+0x3153 0x8A60
+0x3154 0x92ED
+0x3155 0x6DB2
+0x3156 0x75AB
+0x3157 0x76CA
+0x3158 0x99C5
+0x3159 0x60A6
+0x315A 0x8B01
+0x315B 0x8D8A
+0x315C 0x95B2
+0x315D 0x698E
+0x315E 0x53AD
+0x315F 0x5186
+0x3160 0x5712
+0x3161 0x5830
+0x3162 0x5944
+0x3163 0x5BB4
+0x3164 0x5EF6
+0x3165 0x6028
+0x3166 0x63A9
+0x3167 0x63F4
+0x3168 0x6CBF
+0x3169 0x6F14
+0x316A 0x708E
+0x316B 0x7130
+0x316C 0x7159
+0x316D 0x71D5
+0x316E 0x733F
+0x316F 0x7E01
+0x3170 0x8276
+0x3171 0x82D1
+0x3172 0x8597
+0x3173 0x9060
+0x3174 0x925B
+0x3175 0x9D1B
+0x3176 0x5869
+0x3177 0x65BC
+0x3178 0x6C5A
+0x3179 0x7525
+0x317A 0x51F9
+0x317B 0x592E
+0x317C 0x5965
+0x317D 0x5F80
+0x317E 0x5FDC
+0x3221 0x62BC
+0x3222 0x65FA
+0x3223 0x6A2A
+0x3224 0x6B27
+0x3225 0x6BB4
+0x3226 0x738B
+0x3227 0x7FC1
+0x3228 0x8956
+0x3229 0x9DAF
+0x322A 0x9DD7
+0x322B 0x9EC4
+0x322C 0x5CA1
+0x322D 0x6C96
+0x322E 0x837B
+0x322F 0x5104
+0x3230 0x5C4B
+0x3231 0x61B6
+0x3232 0x81C6
+0x3233 0x6876
+0x3234 0x7261
+0x3235 0x4E59
+0x3236 0x4FFA
+0x3237 0x5378
+0x3238 0x6069
+0x3239 0x6E29
+0x323A 0x7A4F
+0x323B 0x97F3
+0x323C 0x4E0B
+0x323D 0x5316
+0x323E 0x4EEE
+0x323F 0x4F55
+0x3240 0x4F3D
+0x3241 0x4FA1
+0x3242 0x4F73
+0x3243 0x52A0
+0x3244 0x53EF
+0x3245 0x5609
+0x3246 0x590F
+0x3247 0x5AC1
+0x3248 0x5BB6
+0x3249 0x5BE1
+0x324A 0x79D1
+0x324B 0x6687
+0x324C 0x679C
+0x324D 0x67B6
+0x324E 0x6B4C
+0x324F 0x6CB3
+0x3250 0x706B
+0x3251 0x73C2
+0x3252 0x798D
+0x3253 0x79BE
+0x3254 0x7A3C
+0x3255 0x7B87
+0x3256 0x82B1
+0x3257 0x82DB
+0x3258 0x8304
+0x3259 0x8377
+0x325A 0x83EF
+0x325B 0x83D3
+0x325C 0x8766
+0x325D 0x8AB2
+0x325E 0x5629
+0x325F 0x8CA8
+0x3260 0x8FE6
+0x3261 0x904E
+0x3262 0x971E
+0x3263 0x868A
+0x3264 0x4FC4
+0x3265 0x5CE8
+0x3266 0x6211
+0x3267 0x7259
+0x3268 0x753B
+0x3269 0x81E5
+0x326A 0x82BD
+0x326B 0x86FE
+0x326C 0x8CC0
+0x326D 0x96C5
+0x326E 0x9913
+0x326F 0x99D5
+0x3270 0x4ECB
+0x3271 0x4F1A
+0x3272 0x89E3
+0x3273 0x56DE
+0x3274 0x584A
+0x3275 0x58CA
+0x3276 0x5EFB
+0x3277 0x5FEB
+0x3278 0x602A
+0x3279 0x6094
+0x327A 0x6062
+0x327B 0x61D0
+0x327C 0x6212
+0x327D 0x62D0
+0x327E 0x6539
+0x3321 0x9B41
+0x3322 0x6666
+0x3323 0x68B0
+0x3324 0x6D77
+0x3325 0x7070
+0x3326 0x754C
+0x3327 0x7686
+0x3328 0x7D75
+0x3329 0x82A5
+0x332A 0x87F9
+0x332B 0x958B
+0x332C 0x968E
+0x332D 0x8C9D
+0x332E 0x51F1
+0x332F 0x52BE
+0x3330 0x5916
+0x3331 0x54B3
+0x3332 0x5BB3
+0x3333 0x5D16
+0x3334 0x6168
+0x3335 0x6982
+0x3336 0x6DAF
+0x3337 0x788D
+0x3338 0x84CB
+0x3339 0x8857
+0x333A 0x8A72
+0x333B 0x93A7
+0x333C 0x9AB8
+0x333D 0x6D6C
+0x333E 0x99A8
+0x333F 0x86D9
+0x3340 0x57A3
+0x3341 0x67FF
+0x3342 0x8823
+0x3343 0x920E
+0x3344 0x5283
+0x3345 0x5687
+0x3346 0x5404
+0x3347 0x5ED3
+0x3348 0x62E1
+0x3349 0x652A
+0x334A 0x683C
+0x334B 0x6838
+0x334C 0x6BBB
+0x334D 0x7372
+0x334E 0x78BA
+0x334F 0x7A6B
+0x3350 0x899A
+0x3351 0x89D2
+0x3352 0x8D6B
+0x3353 0x8F03
+0x3354 0x90ED
+0x3355 0x95A3
+0x3356 0x9694
+0x3357 0x9769
+0x3358 0x5B66
+0x3359 0x5CB3
+0x335A 0x697D
+0x335B 0x984D
+0x335C 0x984E
+0x335D 0x639B
+0x335E 0x7B20
+0x335F 0x6A2B
+0x3360 0x6A7F
+0x3361 0x68B6
+0x3362 0x9C0D
+0x3363 0x6F5F
+0x3364 0x5272
+0x3365 0x559D
+0x3366 0x6070
+0x3367 0x62EC
+0x3368 0x6D3B
+0x3369 0x6E07
+0x336A 0x6ED1
+0x336B 0x845B
+0x336C 0x8910
+0x336D 0x8F44
+0x336E 0x4E14
+0x336F 0x9C39
+0x3370 0x53F6
+0x3371 0x691B
+0x3372 0x6A3A
+0x3373 0x9784
+0x3374 0x682A
+0x3375 0x515C
+0x3376 0x7AC8
+0x3377 0x84B2
+0x3378 0x91DC
+0x3379 0x938C
+0x337A 0x5699
+0x337B 0x9D28
+0x337C 0x6822
+0x337D 0x8305
+0x337E 0x8431
+0x3421 0x7CA5
+0x3422 0x5208
+0x3423 0x82C5
+0x3424 0x74E6
+0x3425 0x4E7E
+0x3426 0x4F83
+0x3427 0x51A0
+0x3428 0x5BD2
+0x3429 0x520A
+0x342A 0x52D8
+0x342B 0x52E7
+0x342C 0x5DFB
+0x342D 0x559A
+0x342E 0x582A
+0x342F 0x59E6
+0x3430 0x5B8C
+0x3431 0x5B98
+0x3432 0x5BDB
+0x3433 0x5E72
+0x3434 0x5E79
+0x3435 0x60A3
+0x3436 0x611F
+0x3437 0x6163
+0x3438 0x61BE
+0x3439 0x63DB
+0x343A 0x6562
+0x343B 0x67D1
+0x343C 0x6853
+0x343D 0x68FA
+0x343E 0x6B3E
+0x343F 0x6B53
+0x3440 0x6C57
+0x3441 0x6F22
+0x3443 0x704C
+0x3444 0x74B0
+0x3445 0x7518
+0x3446 0x76E3
+0x3447 0x770B
+0x3448 0x7AFF
+0x3449 0x7BA1
+0x344A 0x7C21
+0x344B 0x7DE9
+0x344C 0x7F36
+0x344D 0x7FF0
+0x344E 0x809D
+0x344F 0x8266
+0x3450 0x839E
+0x3451 0x89B3
+0x3452 0x8AEB
+0x3453 0x8CAB
+0x3454 0x9084
+0x3455 0x9451
+0x3456 0x9593
+0x3457 0x9591
+0x3458 0x95A2
+0x3459 0x9665
+0x345A 0x97D3
+0x345B 0x9928
+0x345C 0x8218
+0x345D 0x4E38
+0x345E 0x542B
+0x345F 0x5CB8
+0x3460 0x5DCC
+0x3461 0x73A9
+0x3462 0x764C
+0x3463 0x773C
+0x3464 0x5CA9
+0x3465 0x7FEB
+0x3466 0x8D0B
+0x3467 0x96C1
+0x3468 0x9811
+0x3469 0x9854
+0x346A 0x9858
+0x346B 0x4F01
+0x346C 0x4F0E
+0x346D 0x5371
+0x346E 0x559C
+0x346F 0x5668
+0x3470 0x57FA
+0x3471 0x5947
+0x3472 0x5B09
+0x3473 0x5BC4
+0x3474 0x5C90
+0x3475 0x5E0C
+0x3476 0x5E7E
+0x3477 0x5FCC
+0x3478 0x63EE
+0x3479 0x673A
+0x347A 0x65D7
+0x347B 0x65E2
+0x347C 0x671F
+0x347D 0x68CB
+0x347E 0x68C4
+0x3521 0x6A5F
+0x3522 0x5E30
+0x3523 0x6BC5
+0x3524 0x6C17
+0x3525 0x6C7D
+0x3526 0x757F
+0x3527 0x7948
+0x3528 0x5B63
+0x3529 0x7A00
+0x352A 0x7D00
+0x352B 0x5FBD
+0x352C 0x898F
+0x352D 0x8A18
+0x352E 0x8CB4
+0x352F 0x8D77
+0x3530 0x8ECC
+0x3531 0x8F1D
+0x3532 0x98E2
+0x3533 0x9A0E
+0x3534 0x9B3C
+0x3535 0x4E80
+0x3536 0x507D
+0x3537 0x5100
+0x3538 0x5993
+0x3539 0x5B9C
+0x353A 0x622F
+0x353B 0x6280
+0x353C 0x64EC
+0x353D 0x6B3A
+0x353E 0x72A0
+0x353F 0x7591
+0x3540 0x7947
+0x3541 0x7FA9
+0x3542 0x87FB
+0x3543 0x8ABC
+0x3544 0x8B70
+0x3545 0x63AC
+0x3546 0x83CA
+0x3547 0x97A0
+0x3548 0x5409
+0x3549 0x5403
+0x354A 0x55AB
+0x354B 0x6854
+0x354C 0x6A58
+0x354D 0x8A70
+0x354E 0x7827
+0x354F 0x6775
+0x3550 0x9ECD
+0x3551 0x5374
+0x3552 0x5BA2
+0x3553 0x811A
+0x3554 0x8650
+0x3555 0x9006
+0x3556 0x4E18
+0x3557 0x4E45
+0x3558 0x4EC7
+0x3559 0x4F11
+0x355A 0x53CA
+0x355B 0x5438
+0x355C 0x5BAE
+0x355D 0x5F13
+0x355E 0x6025
+0x355F 0x6551
+0x3560 0x673D
+0x3561 0x6C42
+0x3562 0x6C72
+0x3563 0x6CE3
+0x3564 0x7078
+0x3565 0x7403
+0x3566 0x7A76
+0x3567 0x7AAE
+0x3568 0x7B08
+0x3569 0x7D1A
+0x356A 0x7CFE
+0x356B 0x7D66
+0x356C 0x65E7
+0x356D 0x725B
+0x356E 0x53BB
+0x356F 0x5C45
+0x3570 0x5DE8
+0x3571 0x62D2
+0x3572 0x62E0
+0x3573 0x6319
+0x3574 0x6E20
+0x3575 0x865A
+0x3576 0x8A31
+0x3577 0x8DDD
+0x3578 0x92F8
+0x3579 0x6F01
+0x357A 0x79A6
+0x357B 0x9B5A
+0x357C 0x4EA8
+0x357D 0x4EAB
+0x357E 0x4EAC
+0x3621 0x4F9B
+0x3622 0x4FE0
+0x3623 0x50D1
+0x3624 0x5147
+0x3625 0x7AF6
+0x3626 0x5171
+0x3627 0x51F6
+0x3628 0x5354
+0x3629 0x5321
+0x362A 0x537F
+0x362B 0x53EB
+0x362C 0x55AC
+0x362D 0x5883
+0x362E 0x5CE1
+0x362F 0x5F37
+0x3630 0x5F4A
+0x3631 0x602F
+0x3632 0x6050
+0x3633 0x606D
+0x3634 0x631F
+0x3635 0x6559
+0x3636 0x6A4B
+0x3637 0x6CC1
+0x3638 0x72C2
+0x3639 0x72ED
+0x363A 0x77EF
+0x363B 0x80F8
+0x363C 0x8105
+0x363D 0x8208
+0x363E 0x854E
+0x363F 0x90F7
+0x3640 0x93E1
+0x3641 0x97FF
+0x3642 0x9957
+0x3643 0x9A5A
+0x3644 0x4EF0
+0x3645 0x51DD
+0x3646 0x582F
+0x3647 0x6681
+0x3648 0x696D
+0x3649 0x5C40
+0x364A 0x66F2
+0x364B 0x6975
+0x364C 0x7389
+0x364D 0x6850
+0x364E 0x7C81
+0x364F 0x50C5
+0x3650 0x52E4
+0x3651 0x5747
+0x3652 0x5DFE
+0x3653 0x9326
+0x3654 0x65A4
+0x3655 0x6B23
+0x3656 0x6B3D
+0x3657 0x7434
+0x3658 0x7981
+0x3659 0x79BD
+0x365A 0x7B4B
+0x365B 0x7DCA
+0x365C 0x82B9
+0x365D 0x83CC
+0x365E 0x887F
+0x365F 0x895F
+0x3660 0x8B39
+0x3661 0x8FD1
+0x3662 0x91D1
+0x3663 0x541F
+0x3664 0x9280
+0x3665 0x4E5D
+0x3666 0x5036
+0x3667 0x53E5
+0x3668 0x533A
+0x3669 0x72D7
+0x366A 0x7396
+0x366B 0x77E9
+0x366C 0x82E6
+0x366D 0x8EC0
+0x366E 0x99C6
+0x366F 0x99C8
+0x3670 0x99D2
+0x3671 0x5177
+0x3672 0x611A
+0x3673 0x865E
+0x3674 0x55B0
+0x3675 0x7A7A
+0x3676 0x5076
+0x3677 0x5BD3
+0x3678 0x9047
+0x3679 0x9685
+0x367A 0x4E32
+0x367B 0x6ADB
+0x367C 0x91E7
+0x367D 0x5C51
+0x367E 0x5C48
+0x3721 0x6398
+0x3722 0x7A9F
+0x3723 0x6C93
+0x3724 0x9774
+0x3725 0x8F61
+0x3726 0x7AAA
+0x3727 0x718A
+0x3728 0x9688
+0x3729 0x7C82
+0x372A 0x6817
+0x372B 0x7E70
+0x372C 0x6851
+0x372D 0x936C
+0x372E 0x52F2
+0x372F 0x541B
+0x3730 0x85AB
+0x3731 0x8A13
+0x3732 0x7FA4
+0x3733 0x8ECD
+0x3734 0x90E1
+0x3735 0x5366
+0x3736 0x8888
+0x3737 0x7941
+0x3738 0x4FC2
+0x3739 0x50BE
+0x373A 0x5211
+0x373B 0x5144
+0x373C 0x5553
+0x373D 0x572D
+0x373E 0x73EA
+0x373F 0x578B
+0x3740 0x5951
+0x3741 0x5F62
+0x3742 0x5F84
+0x3743 0x6075
+0x3744 0x6176
+0x3745 0x6167
+0x3746 0x61A9
+0x3747 0x63B2
+0x3748 0x643A
+0x3749 0x656C
+0x374A 0x666F
+0x374B 0x6842
+0x374C 0x6E13
+0x374D 0x7566
+0x374F 0x7CFB
+0x3750 0x7D4C
+0x3751 0x7D99
+0x3752 0x7E6B
+0x3753 0x7F6B
+0x3754 0x830E
+0x3755 0x8346
+0x3756 0x86CD
+0x3757 0x8A08
+0x3758 0x8A63
+0x3759 0x8B66
+0x375A 0x8EFD
+0x375B 0x9838
+0x375C 0x9D8F
+0x375D 0x82B8
+0x375E 0x8FCE
+0x375F 0x9BE8
+0x3760 0x5287
+0x3761 0x621F
+0x3762 0x6483
+0x3763 0x6FC0
+0x3765 0x6841
+0x3766 0x5091
+0x3767 0x6B20
+0x3768 0x6C7A
+0x3769 0x6F54
+0x376A 0x7A74
+0x376B 0x7D50
+0x376C 0x8840
+0x376D 0x8A23
+0x376E 0x6708
+0x376F 0x4EF6
+0x3770 0x5039
+0x3771 0x5026
+0x3772 0x5065
+0x3773 0x517C
+0x3774 0x5238
+0x3775 0x5263
+0x3776 0x55A7
+0x3777 0x570F
+0x3778 0x5805
+0x3779 0x5ACC
+0x377A 0x5EFA
+0x377B 0x61B2
+0x377C 0x61F8
+0x377D 0x62F3
+0x377E 0x6372
+0x3821 0x691C
+0x3822 0x6A29
+0x3823 0x727D
+0x3824 0x72AC
+0x3825 0x732E
+0x3826 0x7814
+0x3827 0x786F
+0x3828 0x7D79
+0x3829 0x770C
+0x382A 0x80A9
+0x382B 0x898B
+0x382C 0x8B19
+0x382D 0x8CE2
+0x382E 0x8ED2
+0x382F 0x9063
+0x3830 0x9375
+0x3831 0x967A
+0x3832 0x9855
+0x3833 0x9A13
+0x3834 0x9E7C
+0x3835 0x5143
+0x3836 0x539F
+0x3837 0x53B3
+0x3838 0x5E7B
+0x3839 0x5F26
+0x383A 0x6E1B
+0x383B 0x6E90
+0x383C 0x7384
+0x383D 0x73FE
+0x383E 0x7D43
+0x383F 0x8237
+0x3840 0x8A00
+0x3841 0x8AFA
+0x3842 0x9650
+0x3843 0x4E4E
+0x3844 0x500B
+0x3845 0x53E4
+0x3846 0x547C
+0x3847 0x56FA
+0x3848 0x59D1
+0x3849 0x5B64
+0x384A 0x5DF1
+0x384B 0x5EAB
+0x384C 0x5F27
+0x384D 0x6238
+0x384E 0x6545
+0x384F 0x67AF
+0x3850 0x6E56
+0x3851 0x72D0
+0x3852 0x7CCA
+0x3853 0x88B4
+0x3854 0x80A1
+0x3855 0x80E1
+0x3856 0x83F0
+0x3857 0x864E
+0x3858 0x8A87
+0x3859 0x8DE8
+0x385A 0x9237
+0x385B 0x96C7
+0x385C 0x9867
+0x385D 0x9F13
+0x385E 0x4E94
+0x385F 0x4E92
+0x3860 0x4F0D
+0x3861 0x5348
+0x3862 0x5449
+0x3863 0x543E
+0x3864 0x5A2F
+0x3865 0x5F8C
+0x3866 0x5FA1
+0x3867 0x609F
+0x3868 0x68A7
+0x3869 0x6A8E
+0x386A 0x745A
+0x386B 0x7881
+0x386C 0x8A9E
+0x386D 0x8AA4
+0x386E 0x8B77
+0x386F 0x9190
+0x3870 0x4E5E
+0x3871 0x9BC9
+0x3872 0x4EA4
+0x3873 0x4F7C
+0x3874 0x4FAF
+0x3875 0x5019
+0x3876 0x5016
+0x3877 0x5149
+0x3878 0x516C
+0x3879 0x529F
+0x387A 0x52B9
+0x387B 0x52FE
+0x387C 0x539A
+0x387D 0x53E3
+0x387E 0x5411
+0x3921 0x540E
+0x3922 0x5589
+0x3923 0x5751
+0x3924 0x57A2
+0x3925 0x597D
+0x3926 0x5B54
+0x3927 0x5B5D
+0x3928 0x5B8F
+0x3929 0x5DE5
+0x392A 0x5DE7
+0x392B 0x5DF7
+0x392C 0x5E78
+0x392D 0x5E83
+0x392E 0x5E9A
+0x392F 0x5EB7
+0x3930 0x5F18
+0x3931 0x6052
+0x3932 0x614C
+0x3933 0x6297
+0x3934 0x62D8
+0x3935 0x63A7
+0x3936 0x653B
+0x3937 0x663B
+0x3938 0x6643
+0x3939 0x66F4
+0x393A 0x676D
+0x393B 0x6821
+0x393C 0x6897
+0x393D 0x69CB
+0x393E 0x6C5F
+0x393F 0x6D2A
+0x3940 0x6D69
+0x3941 0x6E2F
+0x3942 0x6E9D
+0x3943 0x7532
+0x3944 0x7687
+0x3945 0x786C
+0x3946 0x7A3F
+0x3947 0x7CE0
+0x3948 0x7D05
+0x3949 0x7D18
+0x394A 0x7D5E
+0x394B 0x7DB1
+0x394C 0x8015
+0x394D 0x8003
+0x394E 0x80AF
+0x394F 0x80B1
+0x3950 0x8154
+0x3951 0x818F
+0x3952 0x822A
+0x3953 0x8352
+0x3954 0x884C
+0x3955 0x8861
+0x3956 0x8B1B
+0x3957 0x8CA2
+0x3958 0x8CFC
+0x3959 0x90CA
+0x395A 0x9175
+0x395B 0x9271
+0x395C 0x7926
+0x395D 0x92FC
+0x395E 0x95A4
+0x395F 0x964D
+0x3960 0x9805
+0x3961 0x9999
+0x3962 0x9AD8
+0x3963 0x9D3B
+0x3964 0x525B
+0x3965 0x52AB
+0x3966 0x53F7
+0x3967 0x5408
+0x3968 0x58D5
+0x3969 0x62F7
+0x396A 0x6FE0
+0x396B 0x8C6A
+0x396C 0x8F5F
+0x396D 0x9EB4
+0x396E 0x514B
+0x396F 0x523B
+0x3970 0x544A
+0x3971 0x56FD
+0x3972 0x7A40
+0x3973 0x9177
+0x3974 0x9D60
+0x3975 0x9ED2
+0x3976 0x7344
+0x3977 0x6F09
+0x3978 0x8170
+0x3979 0x7511
+0x397A 0x5FFD
+0x397B 0x60DA
+0x397C 0x9AA8
+0x397D 0x72DB
+0x397E 0x8FBC
+0x3A21 0x6B64
+0x3A22 0x9803
+0x3A23 0x4ECA
+0x3A24 0x56F0
+0x3A25 0x5764
+0x3A26 0x58BE
+0x3A27 0x5A5A
+0x3A28 0x6068
+0x3A29 0x61C7
+0x3A2A 0x660F
+0x3A2B 0x6606
+0x3A2C 0x6839
+0x3A2D 0x68B1
+0x3A2E 0x6DF7
+0x3A2F 0x75D5
+0x3A30 0x7D3A
+0x3A31 0x826E
+0x3A32 0x9B42
+0x3A33 0x4E9B
+0x3A34 0x4F50
+0x3A35 0x53C9
+0x3A36 0x5506
+0x3A37 0x5D6F
+0x3A38 0x5DE6
+0x3A39 0x5DEE
+0x3A3A 0x67FB
+0x3A3B 0x6C99
+0x3A3C 0x7473
+0x3A3D 0x7802
+0x3A3E 0x8A50
+0x3A3F 0x9396
+0x3A40 0x88DF
+0x3A41 0x5750
+0x3A42 0x5EA7
+0x3A43 0x632B
+0x3A44 0x50B5
+0x3A45 0x50AC
+0x3A46 0x518D
+0x3A47 0x6700
+0x3A48 0x54C9
+0x3A49 0x585E
+0x3A4A 0x59BB
+0x3A4B 0x5BB0
+0x3A4C 0x5F69
+0x3A4D 0x624D
+0x3A4E 0x63A1
+0x3A4F 0x683D
+0x3A50 0x6B73
+0x3A51 0x6E08
+0x3A52 0x707D
+0x3A53 0x91C7
+0x3A54 0x7280
+0x3A55 0x7815
+0x3A56 0x7826
+0x3A57 0x796D
+0x3A58 0x658E
+0x3A59 0x7D30
+0x3A5A 0x83DC
+0x3A5B 0x88C1
+0x3A5C 0x8F09
+0x3A5D 0x969B
+0x3A5E 0x5264
+0x3A5F 0x5728
+0x3A60 0x6750
+0x3A61 0x7F6A
+0x3A62 0x8CA1
+0x3A63 0x51B4
+0x3A64 0x5742
+0x3A65 0x962A
+0x3A66 0x583A
+0x3A67 0x698A
+0x3A68 0x80B4
+0x3A69 0x54B2
+0x3A6A 0x5D0E
+0x3A6B 0x57FC
+0x3A6C 0x7895
+0x3A6D 0x9DFA
+0x3A6E 0x4F5C
+0x3A6F 0x524A
+0x3A70 0x548B
+0x3A71 0x643E
+0x3A72 0x6628
+0x3A73 0x6714
+0x3A74 0x6805
+0x3A75 0x7A84
+0x3A76 0x7B56
+0x3A77 0x7D22
+0x3A78 0x932F
+0x3A79 0x685C
+0x3A7A 0x9BAD
+0x3A7B 0x7B39
+0x3A7C 0x5319
+0x3A7D 0x518A
+0x3A7E 0x5237
+0x3B21 0x5BDF
+0x3B22 0x62F6
+0x3B23 0x64AE
+0x3B24 0x64E6
+0x3B25 0x672D
+0x3B26 0x6BBA
+0x3B27 0x85A9
+0x3B28 0x96D1
+0x3B29 0x7690
+0x3B2A 0x9BD6
+0x3B2B 0x634C
+0x3B2C 0x9306
+0x3B2D 0x9BAB
+0x3B2E 0x76BF
+0x3B2F 0x6652
+0x3B30 0x4E09
+0x3B31 0x5098
+0x3B32 0x53C2
+0x3B33 0x5C71
+0x3B34 0x60E8
+0x3B35 0x6492
+0x3B36 0x6563
+0x3B37 0x685F
+0x3B38 0x71E6
+0x3B39 0x73CA
+0x3B3A 0x7523
+0x3B3B 0x7B97
+0x3B3C 0x7E82
+0x3B3D 0x8695
+0x3B3E 0x8B83
+0x3B3F 0x8CDB
+0x3B40 0x9178
+0x3B41 0x9910
+0x3B42 0x65AC
+0x3B43 0x66AB
+0x3B44 0x6B8B
+0x3B45 0x4ED5
+0x3B46 0x4ED4
+0x3B47 0x4F3A
+0x3B48 0x4F7F
+0x3B49 0x523A
+0x3B4A 0x53F8
+0x3B4B 0x53F2
+0x3B4C 0x55E3
+0x3B4D 0x56DB
+0x3B4E 0x58EB
+0x3B4F 0x59CB
+0x3B50 0x59C9
+0x3B51 0x59FF
+0x3B52 0x5B50
+0x3B53 0x5C4D
+0x3B54 0x5E02
+0x3B55 0x5E2B
+0x3B56 0x5FD7
+0x3B57 0x601D
+0x3B58 0x6307
+0x3B59 0x652F
+0x3B5A 0x5B5C
+0x3B5B 0x65AF
+0x3B5C 0x65BD
+0x3B5D 0x65E8
+0x3B5E 0x679D
+0x3B5F 0x6B62
+0x3B60 0x6B7B
+0x3B61 0x6C0F
+0x3B62 0x7345
+0x3B63 0x7949
+0x3B64 0x79C1
+0x3B65 0x7CF8
+0x3B66 0x7D19
+0x3B67 0x7D2B
+0x3B68 0x80A2
+0x3B69 0x8102
+0x3B6A 0x81F3
+0x3B6B 0x8996
+0x3B6C 0x8A5E
+0x3B6D 0x8A69
+0x3B6E 0x8A66
+0x3B6F 0x8A8C
+0x3B70 0x8AEE
+0x3B71 0x8CC7
+0x3B72 0x8CDC
+0x3B73 0x96CC
+0x3B74 0x98FC
+0x3B75 0x6B6F
+0x3B76 0x4E8B
+0x3B77 0x4F3C
+0x3B78 0x4F8D
+0x3B79 0x5150
+0x3B7A 0x5B57
+0x3B7B 0x5BFA
+0x3B7C 0x6148
+0x3B7D 0x6301
+0x3B7E 0x6642
+0x3C21 0x6B21
+0x3C22 0x6ECB
+0x3C23 0x6CBB
+0x3C24 0x723E
+0x3C25 0x74BD
+0x3C26 0x75D4
+0x3C27 0x78C1
+0x3C28 0x793A
+0x3C29 0x800C
+0x3C2A 0x8033
+0x3C2B 0x81EA
+0x3C2C 0x8494
+0x3C2D 0x8F9E
+0x3C2E 0x6C50
+0x3C2F 0x9E7F
+0x3C30 0x5F0F
+0x3C31 0x8B58
+0x3C32 0x9D2B
+0x3C33 0x7AFA
+0x3C34 0x8EF8
+0x3C35 0x5B8D
+0x3C36 0x96EB
+0x3C37 0x4E03
+0x3C38 0x53F1
+0x3C39 0x57F7
+0x3C3A 0x5931
+0x3C3B 0x5AC9
+0x3C3C 0x5BA4
+0x3C3D 0x6089
+0x3C3E 0x6E7F
+0x3C3F 0x6F06
+0x3C40 0x75BE
+0x3C41 0x8CEA
+0x3C42 0x5B9F
+0x3C43 0x8500
+0x3C44 0x7BE0
+0x3C45 0x5072
+0x3C46 0x67F4
+0x3C47 0x829D
+0x3C48 0x5C62
+0x3C49 0x8602
+0x3C4A 0x7E1E
+0x3C4B 0x820E
+0x3C4C 0x5199
+0x3C4D 0x5C04
+0x3C4E 0x6368
+0x3C4F 0x8D66
+0x3C50 0x659C
+0x3C51 0x716E
+0x3C52 0x793E
+0x3C53 0x7D17
+0x3C54 0x8005
+0x3C55 0x8B1D
+0x3C56 0x8ECA
+0x3C57 0x906E
+0x3C58 0x86C7
+0x3C59 0x90AA
+0x3C5A 0x501F
+0x3C5B 0x52FA
+0x3C5C 0x5C3A
+0x3C5D 0x6753
+0x3C5E 0x707C
+0x3C5F 0x7235
+0x3C60 0x914C
+0x3C61 0x91C8
+0x3C62 0x932B
+0x3C63 0x82E5
+0x3C64 0x5BC2
+0x3C65 0x5F31
+0x3C66 0x60F9
+0x3C67 0x4E3B
+0x3C68 0x53D6
+0x3C69 0x5B88
+0x3C6A 0x624B
+0x3C6B 0x6731
+0x3C6C 0x6B8A
+0x3C6D 0x72E9
+0x3C6E 0x73E0
+0x3C6F 0x7A2E
+0x3C70 0x816B
+0x3C71 0x8DA3
+0x3C72 0x9152
+0x3C73 0x9996
+0x3C74 0x5112
+0x3C75 0x53D7
+0x3C76 0x546A
+0x3C77 0x5BFF
+0x3C78 0x6388
+0x3C79 0x6A39
+0x3C7A 0x7DAC
+0x3C7B 0x9700
+0x3C7C 0x56DA
+0x3C7D 0x53CE
+0x3C7E 0x5468
+0x3D21 0x5B97
+0x3D22 0x5C31
+0x3D23 0x5DDE
+0x3D24 0x4FEE
+0x3D25 0x6101
+0x3D26 0x62FE
+0x3D27 0x6D32
+0x3D28 0x79C0
+0x3D29 0x79CB
+0x3D2A 0x7D42
+0x3D2B 0x7E61
+0x3D2C 0x7FD2
+0x3D2D 0x81ED
+0x3D2E 0x821F
+0x3D2F 0x8490
+0x3D30 0x8846
+0x3D31 0x8972
+0x3D32 0x8B90
+0x3D33 0x8E74
+0x3D34 0x8F2F
+0x3D35 0x9031
+0x3D36 0x914B
+0x3D37 0x916C
+0x3D38 0x96C6
+0x3D39 0x919C
+0x3D3A 0x4EC0
+0x3D3B 0x4F4F
+0x3D3C 0x5145
+0x3D3D 0x5341
+0x3D3E 0x5F93
+0x3D3F 0x620E
+0x3D40 0x67D4
+0x3D41 0x6C41
+0x3D42 0x6E0B
+0x3D43 0x7363
+0x3D44 0x7E26
+0x3D45 0x91CD
+0x3D46 0x9283
+0x3D47 0x53D4
+0x3D48 0x5919
+0x3D49 0x5BBF
+0x3D4A 0x6DD1
+0x3D4B 0x795D
+0x3D4C 0x7E2E
+0x3D4D 0x7C9B
+0x3D4E 0x587E
+0x3D4F 0x719F
+0x3D50 0x51FA
+0x3D51 0x8853
+0x3D52 0x8FF0
+0x3D53 0x4FCA
+0x3D54 0x5CFB
+0x3D55 0x6625
+0x3D56 0x77AC
+0x3D57 0x7AE3
+0x3D58 0x821C
+0x3D59 0x99FF
+0x3D5A 0x51C6
+0x3D5B 0x5FAA
+0x3D5C 0x65EC
+0x3D5D 0x696F
+0x3D5E 0x6B89
+0x3D5F 0x6DF3
+0x3D60 0x6E96
+0x3D61 0x6F64
+0x3D62 0x76FE
+0x3D63 0x7D14
+0x3D64 0x5DE1
+0x3D65 0x9075
+0x3D66 0x9187
+0x3D67 0x9806
+0x3D68 0x51E6
+0x3D69 0x521D
+0x3D6A 0x6240
+0x3D6B 0x6691
+0x3D6C 0x66D9
+0x3D6D 0x6E1A
+0x3D6E 0x5EB6
+0x3D6F 0x7DD2
+0x3D70 0x7F72
+0x3D71 0x66F8
+0x3D72 0x85AF
+0x3D73 0x85F7
+0x3D74 0x8AF8
+0x3D75 0x52A9
+0x3D76 0x53D9
+0x3D77 0x5973
+0x3D78 0x5E8F
+0x3D79 0x5F90
+0x3D7A 0x6055
+0x3D7B 0x92E4
+0x3D7C 0x9664
+0x3D7D 0x50B7
+0x3D7E 0x511F
+0x3E21 0x52DD
+0x3E22 0x5320
+0x3E23 0x5347
+0x3E24 0x53EC
+0x3E25 0x54E8
+0x3E26 0x5546
+0x3E27 0x5531
+0x3E28 0x5617
+0x3E29 0x5968
+0x3E2A 0x59BE
+0x3E2B 0x5A3C
+0x3E2C 0x5BB5
+0x3E2D 0x5C06
+0x3E2E 0x5C0F
+0x3E2F 0x5C11
+0x3E30 0x5C1A
+0x3E31 0x5E84
+0x3E32 0x5E8A
+0x3E33 0x5EE0
+0x3E34 0x5F70
+0x3E35 0x627F
+0x3E36 0x6284
+0x3E37 0x62DB
+0x3E38 0x638C
+0x3E39 0x6377
+0x3E3A 0x6607
+0x3E3B 0x660C
+0x3E3C 0x662D
+0x3E3D 0x6676
+0x3E3E 0x677E
+0x3E3F 0x68A2
+0x3E40 0x6A1F
+0x3E41 0x6A35
+0x3E42 0x6CBC
+0x3E43 0x6D88
+0x3E44 0x6E09
+0x3E45 0x6E58
+0x3E46 0x713C
+0x3E47 0x7126
+0x3E48 0x7167
+0x3E49 0x75C7
+0x3E4A 0x7701
+0x3E4B 0x785D
+0x3E4C 0x7901
+0x3E4D 0x7965
+0x3E4E 0x79F0
+0x3E4F 0x7AE0
+0x3E50 0x7B11
+0x3E51 0x7CA7
+0x3E52 0x7D39
+0x3E53 0x8096
+0x3E54 0x83D6
+0x3E55 0x8523
+0x3E56 0x8549
+0x3E57 0x885D
+0x3E58 0x88F3
+0x3E59 0x8A1F
+0x3E5A 0x8A3C
+0x3E5B 0x8A54
+0x3E5C 0x8A73
+0x3E5D 0x8C61
+0x3E5E 0x8CDE
+0x3E5F 0x91AC
+0x3E60 0x9266
+0x3E61 0x937E
+0x3E62 0x9418
+0x3E63 0x969C
+0x3E64 0x9798
+0x3E65 0x4E0A
+0x3E66 0x4E08
+0x3E67 0x4E1E
+0x3E68 0x4E57
+0x3E69 0x5197
+0x3E6A 0x5270
+0x3E6B 0x57CE
+0x3E6C 0x5834
+0x3E6D 0x58CC
+0x3E6E 0x5B22
+0x3E6F 0x5E38
+0x3E70 0x60C5
+0x3E71 0x64FE
+0x3E72 0x6761
+0x3E73 0x6756
+0x3E74 0x6D44
+0x3E75 0x72B6
+0x3E76 0x7573
+0x3E77 0x7A63
+0x3E78 0x84B8
+0x3E79 0x8B72
+0x3E7A 0x91B8
+0x3E7B 0x9320
+0x3E7C 0x5631
+0x3E7D 0x57F4
+0x3E7E 0x98FE
+0x3F21 0x62ED
+0x3F22 0x690D
+0x3F23 0x6B96
+0x3F24 0x71ED
+0x3F25 0x7E54
+0x3F26 0x8077
+0x3F27 0x8272
+0x3F28 0x89E6
+0x3F29 0x98DF
+0x3F2A 0x8755
+0x3F2B 0x8FB1
+0x3F2C 0x5C3B
+0x3F2D 0x4F38
+0x3F2E 0x4FE1
+0x3F2F 0x4FB5
+0x3F30 0x5507
+0x3F31 0x5A20
+0x3F32 0x5BDD
+0x3F33 0x5BE9
+0x3F34 0x5FC3
+0x3F35 0x614E
+0x3F36 0x632F
+0x3F37 0x65B0
+0x3F38 0x664B
+0x3F39 0x68EE
+0x3F3A 0x699B
+0x3F3B 0x6D78
+0x3F3C 0x6DF1
+0x3F3D 0x7533
+0x3F3E 0x75B9
+0x3F3F 0x771F
+0x3F40 0x795E
+0x3F41 0x79E6
+0x3F42 0x7D33
+0x3F43 0x81E3
+0x3F44 0x82AF
+0x3F45 0x85AA
+0x3F46 0x89AA
+0x3F47 0x8A3A
+0x3F48 0x8EAB
+0x3F49 0x8F9B
+0x3F4A 0x9032
+0x3F4B 0x91DD
+0x3F4C 0x9707
+0x3F4D 0x4EBA
+0x3F4E 0x4EC1
+0x3F4F 0x5203
+0x3F50 0x5875
+0x3F51 0x58EC
+0x3F52 0x5C0B
+0x3F53 0x751A
+0x3F54 0x5C3D
+0x3F55 0x814E
+0x3F56 0x8A0A
+0x3F57 0x8FC5
+0x3F58 0x9663
+0x3F59 0x9771
+0x3F5A 0x7B25
+0x3F5B 0x8ACF
+0x3F5C 0x9808
+0x3F5D 0x9162
+0x3F5E 0x56F3
+0x3F5F 0x53A8
+0x3F60 0x9017
+0x3F61 0x5439
+0x3F62 0x5782
+0x3F63 0x5E25
+0x3F64 0x63A8
+0x3F65 0x6C34
+0x3F66 0x708A
+0x3F67 0x7761
+0x3F68 0x7C8B
+0x3F69 0x7FE0
+0x3F6A 0x8870
+0x3F6B 0x9042
+0x3F6C 0x9154
+0x3F6D 0x9310
+0x3F6E 0x9318
+0x3F6F 0x968F
+0x3F70 0x745E
+0x3F71 0x9AC4
+0x3F72 0x5D07
+0x3F73 0x5D69
+0x3F74 0x6570
+0x3F75 0x67A2
+0x3F76 0x8DA8
+0x3F77 0x96DB
+0x3F78 0x636E
+0x3F79 0x6749
+0x3F7A 0x6919
+0x3F7B 0x83C5
+0x3F7C 0x9817
+0x3F7D 0x96C0
+0x3F7E 0x88FE
+0x4021 0x6F84
+0x4022 0x647A
+0x4023 0x5BF8
+0x4024 0x4E16
+0x4025 0x702C
+0x4026 0x755D
+0x4027 0x662F
+0x4028 0x51C4
+0x4029 0x5236
+0x402A 0x52E2
+0x402B 0x59D3
+0x402C 0x5F81
+0x402D 0x6027
+0x402E 0x6210
+0x402F 0x653F
+0x4030 0x6574
+0x4031 0x661F
+0x4032 0x6674
+0x4033 0x68F2
+0x4034 0x6816
+0x4035 0x6B63
+0x4036 0x6E05
+0x4037 0x7272
+0x4038 0x751F
+0x4039 0x76DB
+0x403A 0x7CBE
+0x403B 0x8056
+0x403C 0x58F0
+0x403D 0x88FD
+0x403E 0x897F
+0x403F 0x8AA0
+0x4040 0x8A93
+0x4041 0x8ACB
+0x4042 0x901D
+0x4043 0x9192
+0x4044 0x9752
+0x4045 0x9759
+0x4046 0x6589
+0x4047 0x7A0E
+0x4048 0x8106
+0x4049 0x96BB
+0x404A 0x5E2D
+0x404B 0x60DC
+0x404C 0x621A
+0x404D 0x65A5
+0x404E 0x6614
+0x404F 0x6790
+0x4050 0x77F3
+0x4051 0x7A4D
+0x4052 0x7C4D
+0x4053 0x7E3E
+0x4054 0x810A
+0x4055 0x8CAC
+0x4056 0x8D64
+0x4057 0x8DE1
+0x4058 0x8E5F
+0x4059 0x78A9
+0x405A 0x5207
+0x405B 0x62D9
+0x405C 0x63A5
+0x405D 0x6442
+0x405E 0x6298
+0x405F 0x8A2D
+0x4060 0x7A83
+0x4061 0x7BC0
+0x4062 0x8AAC
+0x4063 0x96EA
+0x4064 0x7D76
+0x4065 0x820C
+0x4066 0x87EC
+0x4067 0x4ED9
+0x4068 0x5148
+0x4069 0x5343
+0x406A 0x5360
+0x406B 0x5BA3
+0x406C 0x5C02
+0x406D 0x5C16
+0x406E 0x5DDD
+0x406F 0x6226
+0x4070 0x6247
+0x4071 0x64B0
+0x4072 0x6813
+0x4073 0x6834
+0x4074 0x6CC9
+0x4075 0x6D45
+0x4076 0x6D17
+0x4077 0x67D3
+0x4078 0x6F5C
+0x4079 0x714E
+0x407A 0x717D
+0x407B 0x65CB
+0x407C 0x7A7F
+0x407D 0x7BAD
+0x407E 0x7DDA
+0x4121 0x7E4A
+0x4122 0x7FA8
+0x4123 0x817A
+0x4124 0x821B
+0x4125 0x8239
+0x4126 0x85A6
+0x4127 0x8A6E
+0x4128 0x8CE4
+0x4129 0x8DF5
+0x412A 0x9078
+0x412B 0x9077
+0x412C 0x92AD
+0x412D 0x9291
+0x412E 0x9583
+0x412F 0x9BAE
+0x4130 0x524D
+0x4131 0x5584
+0x4132 0x6F38
+0x4133 0x7136
+0x4134 0x5168
+0x4135 0x7985
+0x4136 0x7E55
+0x4137 0x81B3
+0x4138 0x7CCE
+0x4139 0x564C
+0x413A 0x5851
+0x413B 0x5CA8
+0x413C 0x63AA
+0x413D 0x66FE
+0x413E 0x66FD
+0x413F 0x695A
+0x4140 0x72D9
+0x4141 0x758F
+0x4142 0x758E
+0x4143 0x790E
+0x4144 0x7956
+0x4145 0x79DF
+0x4146 0x7C97
+0x4147 0x7D20
+0x4148 0x7D44
+0x4149 0x8607
+0x414A 0x8A34
+0x414B 0x963B
+0x414C 0x9061
+0x414D 0x9F20
+0x414E 0x50E7
+0x414F 0x5275
+0x4150 0x53CC
+0x4151 0x53E2
+0x4152 0x5009
+0x4153 0x55AA
+0x4154 0x58EE
+0x4155 0x594F
+0x4156 0x723D
+0x4157 0x5B8B
+0x4158 0x5C64
+0x4159 0x531D
+0x415A 0x60E3
+0x415B 0x60F3
+0x415C 0x635C
+0x415D 0x6383
+0x415E 0x633F
+0x415F 0x6414
+0x4160 0x64CD
+0x4161 0x65E9
+0x4162 0x66F9
+0x4163 0x5DE3
+0x4164 0x69CD
+0x4165 0x69FD
+0x4166 0x6F15
+0x4167 0x71E5
+0x4168 0x4E89
+0x4169 0x7626
+0x416A 0x76F8
+0x416B 0x7A93
+0x416C 0x7CDF
+0x416D 0x7DCF
+0x416E 0x7D9C
+0x416F 0x8061
+0x4170 0x8349
+0x4171 0x8358
+0x4172 0x846C
+0x4173 0x84BC
+0x4174 0x85FB
+0x4175 0x88C5
+0x4176 0x8D70
+0x4177 0x9001
+0x4178 0x906D
+0x4179 0x9397
+0x417A 0x971C
+0x417B 0x9A12
+0x417C 0x50CF
+0x417D 0x5897
+0x417E 0x618E
+0x4221 0x81D3
+0x4222 0x8535
+0x4223 0x8D08
+0x4224 0x9020
+0x4225 0x4FC3
+0x4226 0x5074
+0x4227 0x5247
+0x4228 0x5373
+0x4229 0x606F
+0x422A 0x6349
+0x422B 0x675F
+0x422C 0x6E2C
+0x422D 0x8DB3
+0x422E 0x901F
+0x422F 0x4FD7
+0x4230 0x5C5E
+0x4231 0x8CCA
+0x4232 0x65CF
+0x4233 0x7D9A
+0x4234 0x5352
+0x4235 0x8896
+0x4236 0x5176
+0x4237 0x63C3
+0x4238 0x5B58
+0x4239 0x5B6B
+0x423A 0x5C0A
+0x423B 0x640D
+0x423C 0x6751
+0x423D 0x905C
+0x423E 0x4ED6
+0x423F 0x591A
+0x4240 0x592A
+0x4241 0x6C70
+0x4242 0x8A51
+0x4243 0x553E
+0x4244 0x5815
+0x4245 0x59A5
+0x4246 0x60F0
+0x4247 0x6253
+0x4248 0x67C1
+0x4249 0x8235
+0x424A 0x6955
+0x424B 0x9640
+0x424C 0x99C4
+0x424D 0x9A52
+0x424E 0x4F53
+0x424F 0x5806
+0x4250 0x5BFE
+0x4251 0x8010
+0x4252 0x5CB1
+0x4253 0x5E2F
+0x4254 0x5F85
+0x4255 0x6020
+0x4256 0x614B
+0x4257 0x6234
+0x4258 0x66FF
+0x4259 0x6CF0
+0x425A 0x6EDE
+0x425B 0x80CE
+0x425C 0x817F
+0x425D 0x82D4
+0x425E 0x888B
+0x425F 0x8CB8
+0x4260 0x9000
+0x4261 0x902E
+0x4262 0x968A
+0x4263 0x9EDB
+0x4264 0x9BDB
+0x4265 0x4EE3
+0x4266 0x53F0
+0x4267 0x5927
+0x4268 0x7B2C
+0x4269 0x918D
+0x426A 0x984C
+0x426B 0x9DF9
+0x426C 0x6EDD
+0x426D 0x7027
+0x426E 0x5353
+0x426F 0x5544
+0x4270 0x5B85
+0x4271 0x6258
+0x4272 0x629E
+0x4273 0x62D3
+0x4274 0x6CA2
+0x4275 0x6FEF
+0x4276 0x7422
+0x4277 0x8A17
+0x4278 0x9438
+0x4279 0x6FC1
+0x427A 0x8AFE
+0x427B 0x8338
+0x427C 0x51E7
+0x427D 0x86F8
+0x427E 0x53EA
+0x4321 0x53E9
+0x4322 0x4F46
+0x4323 0x9054
+0x4324 0x8FB0
+0x4325 0x596A
+0x4326 0x8131
+0x4327 0x5DFD
+0x4328 0x7AEA
+0x4329 0x8FBF
+0x432A 0x68DA
+0x432B 0x8C37
+0x432C 0x72F8
+0x432D 0x9C48
+0x432E 0x6A3D
+0x432F 0x8AB0
+0x4330 0x4E39
+0x4331 0x5358
+0x4332 0x5606
+0x4333 0x5766
+0x4334 0x62C5
+0x4335 0x63A2
+0x4336 0x65E6
+0x4337 0x6B4E
+0x4338 0x6DE1
+0x4339 0x6E5B
+0x433A 0x70AD
+0x433B 0x77ED
+0x433C 0x7AEF
+0x433D 0x7C1E
+0x433E 0x7DBB
+0x433F 0x803D
+0x4340 0x80C6
+0x4341 0x86CB
+0x4342 0x8A95
+0x4343 0x935B
+0x4344 0x56E3
+0x4345 0x58C7
+0x4346 0x5F3E
+0x4347 0x65AD
+0x4348 0x6696
+0x4349 0x6A80
+0x434A 0x6BB5
+0x434B 0x7537
+0x434C 0x8AC7
+0x434D 0x5024
+0x434E 0x77E5
+0x434F 0x5730
+0x4350 0x5F1B
+0x4351 0x6065
+0x4352 0x667A
+0x4353 0x6C60
+0x4354 0x75F4
+0x4355 0x7A1A
+0x4356 0x7F6E
+0x4357 0x81F4
+0x4358 0x8718
+0x4359 0x9045
+0x435A 0x99B3
+0x435B 0x7BC9
+0x435C 0x755C
+0x435D 0x7AF9
+0x435E 0x7B51
+0x435F 0x84C4
+0x4360 0x9010
+0x4361 0x79E9
+0x4362 0x7A92
+0x4363 0x8336
+0x4364 0x5AE1
+0x4365 0x7740
+0x4366 0x4E2D
+0x4367 0x4EF2
+0x4368 0x5B99
+0x4369 0x5FE0
+0x436A 0x62BD
+0x436B 0x663C
+0x436C 0x67F1
+0x436D 0x6CE8
+0x436E 0x866B
+0x436F 0x8877
+0x4370 0x8A3B
+0x4371 0x914E
+0x4372 0x92F3
+0x4373 0x99D0
+0x4374 0x6A17
+0x4375 0x7026
+0x4376 0x732A
+0x4377 0x82E7
+0x4378 0x8457
+0x4379 0x8CAF
+0x437A 0x4E01
+0x437B 0x5146
+0x437C 0x51CB
+0x437D 0x558B
+0x437E 0x5BF5
+0x4421 0x5E16
+0x4422 0x5E33
+0x4423 0x5E81
+0x4424 0x5F14
+0x4425 0x5F35
+0x4426 0x5F6B
+0x4427 0x5FB4
+0x4428 0x61F2
+0x4429 0x6311
+0x442A 0x66A2
+0x442B 0x671D
+0x442C 0x6F6E
+0x442D 0x7252
+0x442E 0x753A
+0x442F 0x773A
+0x4430 0x8074
+0x4431 0x8139
+0x4432 0x8178
+0x4433 0x8776
+0x4434 0x8ABF
+0x4435 0x8ADC
+0x4436 0x8D85
+0x4437 0x8DF3
+0x4438 0x929A
+0x4439 0x9577
+0x443A 0x9802
+0x443B 0x9CE5
+0x443C 0x52C5
+0x443D 0x6357
+0x443E 0x76F4
+0x443F 0x6715
+0x4440 0x6C88
+0x4441 0x73CD
+0x4442 0x8CC3
+0x4443 0x93AE
+0x4444 0x9673
+0x4445 0x6D25
+0x4446 0x589C
+0x4447 0x690E
+0x4448 0x69CC
+0x4449 0x8FFD
+0x444A 0x939A
+0x444B 0x75DB
+0x444C 0x901A
+0x444D 0x585A
+0x444E 0x6802
+0x444F 0x6451
+0x4450 0x69FB
+0x4451 0x4F43
+0x4452 0x6F2C
+0x4453 0x67D8
+0x4454 0x8FBB
+0x4455 0x8526
+0x4456 0x7DB4
+0x4457 0x9354
+0x4458 0x693F
+0x4459 0x6F70
+0x445A 0x576A
+0x445B 0x58FA
+0x445C 0x5B2C
+0x445D 0x7D2C
+0x445E 0x722A
+0x445F 0x540A
+0x4460 0x91E3
+0x4461 0x9DB4
+0x4462 0x4EAD
+0x4463 0x4F4E
+0x4464 0x505C
+0x4465 0x5075
+0x4466 0x5243
+0x4467 0x8C9E
+0x4468 0x5448
+0x4469 0x5824
+0x446A 0x5B9A
+0x446B 0x5E1D
+0x446C 0x5E95
+0x446D 0x5EAD
+0x446E 0x5EF7
+0x446F 0x5F1F
+0x4470 0x608C
+0x4471 0x62B5
+0x4472 0x633A
+0x4473 0x63D0
+0x4474 0x68AF
+0x4475 0x6C40
+0x4476 0x7887
+0x4477 0x798E
+0x4478 0x7A0B
+0x4479 0x7DE0
+0x447A 0x8247
+0x447B 0x8A02
+0x447C 0x8AE6
+0x447D 0x8E44
+0x447E 0x9013
+0x4521 0x90B8
+0x4522 0x912D
+0x4523 0x91D8
+0x4524 0x9F0E
+0x4525 0x6CE5
+0x4526 0x6458
+0x4527 0x64E2
+0x4528 0x6575
+0x4529 0x6EF4
+0x452A 0x7684
+0x452B 0x7B1B
+0x452C 0x9069
+0x452D 0x93D1
+0x452E 0x6EBA
+0x452F 0x54F2
+0x4530 0x5FB9
+0x4531 0x64A4
+0x4532 0x8F4D
+0x4533 0x8FED
+0x4534 0x9244
+0x4535 0x5178
+0x4536 0x5861
+0x4537 0x5929
+0x4538 0x5C55
+0x4539 0x5E97
+0x453A 0x6DFB
+0x453B 0x7E8F
+0x453C 0x751C
+0x453D 0x8CBC
+0x453E 0x8EE2
+0x453F 0x985A
+0x4540 0x70B9
+0x4541 0x4F1D
+0x4542 0x6BBF
+0x4543 0x6FB1
+0x4544 0x7530
+0x4545 0x96FB
+0x4546 0x514E
+0x4547 0x5410
+0x4548 0x5835
+0x4549 0x5857
+0x454A 0x59AC
+0x454B 0x5C60
+0x454C 0x5F92
+0x454D 0x6597
+0x454E 0x675C
+0x454F 0x6E21
+0x4550 0x767B
+0x4551 0x83DF
+0x4552 0x8CED
+0x4553 0x9014
+0x4554 0x90FD
+0x4555 0x934D
+0x4556 0x7825
+0x4557 0x792A
+0x4558 0x52AA
+0x4559 0x5EA6
+0x455A 0x571F
+0x455B 0x5974
+0x455C 0x6012
+0x455D 0x5012
+0x455E 0x515A
+0x455F 0x51AC
+0x4560 0x51CD
+0x4561 0x5200
+0x4562 0x5510
+0x4563 0x5854
+0x4564 0x5858
+0x4565 0x5957
+0x4566 0x5B95
+0x4567 0x5CF6
+0x4568 0x5D8B
+0x4569 0x60BC
+0x456A 0x6295
+0x456B 0x642D
+0x456C 0x6771
+0x456D 0x6843
+0x456E 0x6AAE
+0x456F 0x68DF
+0x4570 0x76D7
+0x4571 0x6DD8
+0x4572 0x6E6F
+0x4573 0x6FE4
+0x4574 0x706F
+0x4575 0x71C8
+0x4576 0x5F53
+0x4577 0x75D8
+0x4578 0x79B1
+0x4579 0x7B49
+0x457A 0x7B54
+0x457B 0x7B52
+0x457C 0x7CD6
+0x457D 0x7D71
+0x457E 0x5230
+0x4621 0x8463
+0x4622 0x8569
+0x4623 0x85E4
+0x4624 0x8A0E
+0x4625 0x8B04
+0x4626 0x8C46
+0x4627 0x8E0F
+0x4628 0x9003
+0x4629 0x900F
+0x462A 0x9419
+0x462B 0x9676
+0x462C 0x982D
+0x462D 0x9A30
+0x462E 0x95D8
+0x462F 0x50CD
+0x4630 0x52D5
+0x4631 0x540C
+0x4632 0x5802
+0x4633 0x5C0E
+0x4634 0x61A7
+0x4635 0x649E
+0x4636 0x6D1E
+0x4637 0x77B3
+0x4638 0x7AE5
+0x4639 0x80F4
+0x463A 0x8404
+0x463B 0x9053
+0x463C 0x9285
+0x463D 0x5CE0
+0x463E 0x9D07
+0x463F 0x533F
+0x4640 0x5F97
+0x4641 0x5FB3
+0x4642 0x7006
+0x4643 0x7279
+0x4644 0x7763
+0x4645 0x79BF
+0x4646 0x7BE4
+0x4647 0x6BD2
+0x4648 0x72EC
+0x4649 0x8AAD
+0x464A 0x6803
+0x464B 0x6A61
+0x464C 0x51F8
+0x464D 0x7A81
+0x464E 0x6934
+0x464F 0x5C4A
+0x4650 0x9CF6
+0x4651 0x82EB
+0x4652 0x5BC5
+0x4653 0x9149
+0x4654 0x701E
+0x4655 0x5678
+0x4656 0x5C6F
+0x4657 0x60C7
+0x4658 0x6566
+0x4659 0x6C8C
+0x465A 0x8C5A
+0x465B 0x9041
+0x465C 0x9813
+0x465D 0x5451
+0x465E 0x66C7
+0x465F 0x920D
+0x4660 0x5948
+0x4661 0x90A3
+0x4662 0x5185
+0x4663 0x4E4D
+0x4664 0x51EA
+0x4665 0x8599
+0x4666 0x8B0E
+0x4667 0x7058
+0x4668 0x637A
+0x4669 0x934B
+0x466A 0x6962
+0x466B 0x99B4
+0x466C 0x7E04
+0x466D 0x7577
+0x466E 0x5357
+0x466F 0x6960
+0x4670 0x8EDF
+0x4671 0x96E3
+0x4672 0x6C5D
+0x4673 0x4E8C
+0x4674 0x5C3C
+0x4675 0x5F10
+0x4676 0x9087
+0x4677 0x5302
+0x4678 0x8CD1
+0x4679 0x8089
+0x467A 0x8679
+0x467B 0x5EFF
+0x467C 0x65E5
+0x467D 0x4E73
+0x467E 0x5165
+0x4721 0x5982
+0x4722 0x5C3F
+0x4723 0x97EE
+0x4724 0x4EFB
+0x4725 0x598A
+0x4726 0x5FCD
+0x4727 0x8A8D
+0x4728 0x6FE1
+0x4729 0x79B0
+0x472A 0x7962
+0x472B 0x5BE7
+0x472C 0x8471
+0x472D 0x732B
+0x472E 0x71B1
+0x472F 0x5E74
+0x4730 0x5FF5
+0x4731 0x637B
+0x4732 0x649A
+0x4733 0x71C3
+0x4734 0x7C98
+0x4735 0x4E43
+0x4736 0x5EFC
+0x4737 0x4E4B
+0x4738 0x57DC
+0x4739 0x56CA
+0x473A 0x60A9
+0x473B 0x6FC3
+0x473C 0x7D0D
+0x473D 0x80FD
+0x473E 0x8133
+0x473F 0x81BF
+0x4740 0x8FB2
+0x4741 0x8997
+0x4742 0x86A4
+0x4743 0x5DF4
+0x4744 0x628A
+0x4745 0x64AD
+0x4746 0x8987
+0x4747 0x6777
+0x4748 0x6CE2
+0x4749 0x6D3E
+0x474A 0x7436
+0x474B 0x7834
+0x474C 0x5A46
+0x474D 0x7F75
+0x474E 0x82AD
+0x474F 0x99AC
+0x4750 0x4FF3
+0x4751 0x5EC3
+0x4752 0x62DD
+0x4753 0x6392
+0x4754 0x6557
+0x4755 0x676F
+0x4756 0x76C3
+0x4757 0x724C
+0x4758 0x80CC
+0x4759 0x80BA
+0x475A 0x8F29
+0x475B 0x914D
+0x475C 0x500D
+0x475D 0x57F9
+0x475E 0x5A92
+0x475F 0x6885
+0x4760 0x6973
+0x4761 0x7164
+0x4762 0x72FD
+0x4763 0x8CB7
+0x4764 0x58F2
+0x4765 0x8CE0
+0x4766 0x966A
+0x4767 0x9019
+0x4768 0x8805
+0x4769 0x79E4
+0x476A 0x77E7
+0x476B 0x8429
+0x476C 0x4F2F
+0x476D 0x525D
+0x476E 0x535A
+0x476F 0x62CD
+0x4770 0x67CF
+0x4771 0x6CCA
+0x4772 0x767D
+0x4773 0x7B94
+0x4774 0x7C95
+0x4775 0x8236
+0x4776 0x8584
+0x4777 0x8FEB
+0x4778 0x66DD
+0x4779 0x6F20
+0x477A 0x7206
+0x477B 0x7E1B
+0x477C 0x83AB
+0x477D 0x99C1
+0x477E 0x9EA6
+0x4821 0x51FD
+0x4822 0x7BB1
+0x4823 0x7872
+0x4824 0x7BB8
+0x4825 0x8087
+0x4826 0x7B48
+0x4827 0x6AE8
+0x4828 0x5E61
+0x4829 0x808C
+0x482A 0x7551
+0x482B 0x7560
+0x482C 0x516B
+0x482D 0x9262
+0x482E 0x6F51
+0x482F 0x767A
+0x4830 0x91B1
+0x4831 0x9AEA
+0x4832 0x4F10
+0x4833 0x7F70
+0x4834 0x629C
+0x4835 0x7B4F
+0x4836 0x95A5
+0x4837 0x9CE9
+0x4838 0x567A
+0x4839 0x5859
+0x483A 0x86E4
+0x483B 0x96BC
+0x483C 0x4F34
+0x483D 0x5224
+0x483E 0x534A
+0x483F 0x53CD
+0x4840 0x53DB
+0x4841 0x5E06
+0x4842 0x642C
+0x4843 0x6591
+0x4844 0x677F
+0x4845 0x6C3E
+0x4846 0x6C4E
+0x4847 0x7248
+0x4848 0x72AF
+0x4849 0x73ED
+0x484A 0x7554
+0x484B 0x7E41
+0x484C 0x822C
+0x484D 0x85E9
+0x484E 0x8CA9
+0x484F 0x7BC4
+0x4850 0x91C6
+0x4851 0x7169
+0x4852 0x9812
+0x4853 0x98EF
+0x4854 0x633D
+0x4855 0x6669
+0x4856 0x756A
+0x4857 0x76E4
+0x4858 0x78D0
+0x4859 0x8543
+0x485A 0x86EE
+0x485B 0x532A
+0x485C 0x5351
+0x485D 0x5426
+0x485E 0x5983
+0x485F 0x5E87
+0x4860 0x5F7C
+0x4861 0x60B2
+0x4862 0x6249
+0x4863 0x6279
+0x4864 0x62AB
+0x4865 0x6590
+0x4866 0x6BD4
+0x4867 0x6CCC
+0x4868 0x75B2
+0x4869 0x76AE
+0x486A 0x7891
+0x486B 0x79D8
+0x486C 0x7DCB
+0x486D 0x7F77
+0x486E 0x80A5
+0x486F 0x88AB
+0x4870 0x8AB9
+0x4871 0x8CBB
+0x4872 0x907F
+0x4873 0x975E
+0x4874 0x98DB
+0x4875 0x6A0B
+0x4876 0x7C38
+0x4877 0x5099
+0x4878 0x5C3E
+0x4879 0x5FAE
+0x487A 0x6787
+0x487B 0x6BD8
+0x487C 0x7435
+0x487D 0x7709
+0x487E 0x7F8E
+0x4921 0x9F3B
+0x4922 0x67CA
+0x4923 0x7A17
+0x4924 0x5339
+0x4925 0x758B
+0x4926 0x9AED
+0x4927 0x5F66
+0x4928 0x819D
+0x4929 0x83F1
+0x492A 0x8098
+0x492B 0x5F3C
+0x492C 0x5FC5
+0x492D 0x7562
+0x492E 0x7B46
+0x492F 0x903C
+0x4930 0x6A9C
+0x4931 0x59EB
+0x4932 0x5A9B
+0x4933 0x7D10
+0x4934 0x767E
+0x4935 0x8B2C
+0x4936 0x4FF5
+0x4937 0x5F6A
+0x4938 0x6A19
+0x4939 0x6C37
+0x493A 0x6F02
+0x493B 0x74E2
+0x493C 0x7968
+0x493D 0x8868
+0x493E 0x8A55
+0x493F 0x8C79
+0x4940 0x5EDF
+0x4941 0x63CF
+0x4942 0x75C5
+0x4943 0x79D2
+0x4944 0x82D7
+0x4945 0x9328
+0x4946 0x92F2
+0x4947 0x849C
+0x4948 0x86ED
+0x4949 0x9C2D
+0x494A 0x54C1
+0x494B 0x5F6C
+0x494C 0x658C
+0x494D 0x6D5C
+0x494E 0x7015
+0x494F 0x8CA7
+0x4950 0x8CD3
+0x4951 0x983B
+0x4952 0x654F
+0x4953 0x74F6
+0x4954 0x4E0D
+0x4955 0x4ED8
+0x4956 0x57E0
+0x4957 0x592B
+0x4958 0x5A66
+0x4959 0x5BCC
+0x495A 0x51A8
+0x495B 0x5E03
+0x495C 0x5E9C
+0x495D 0x6016
+0x495E 0x6276
+0x495F 0x6577
+0x4960 0x65A7
+0x4961 0x666E
+0x4962 0x6D6E
+0x4963 0x7236
+0x4964 0x7B26
+0x4965 0x8150
+0x4966 0x819A
+0x4967 0x8299
+0x4968 0x8B5C
+0x4969 0x8CA0
+0x496A 0x8CE6
+0x496B 0x8D74
+0x496C 0x961C
+0x496D 0x9644
+0x496E 0x4FAE
+0x496F 0x64AB
+0x4970 0x6B66
+0x4971 0x821E
+0x4972 0x8461
+0x4973 0x856A
+0x4974 0x90E8
+0x4975 0x5C01
+0x4976 0x6953
+0x4977 0x98A8
+0x4978 0x847A
+0x4979 0x8557
+0x497A 0x4F0F
+0x497B 0x526F
+0x497C 0x5FA9
+0x497D 0x5E45
+0x497E 0x670D
+0x4A21 0x798F
+0x4A22 0x8179
+0x4A23 0x8907
+0x4A24 0x8986
+0x4A25 0x6DF5
+0x4A26 0x5F17
+0x4A27 0x6255
+0x4A28 0x6CB8
+0x4A29 0x4ECF
+0x4A2A 0x7269
+0x4A2B 0x9B92
+0x4A2C 0x5206
+0x4A2D 0x543B
+0x4A2E 0x5674
+0x4A2F 0x58B3
+0x4A30 0x61A4
+0x4A31 0x626E
+0x4A32 0x711A
+0x4A33 0x596E
+0x4A34 0x7C89
+0x4A35 0x7CDE
+0x4A36 0x7D1B
+0x4A37 0x96F0
+0x4A38 0x6587
+0x4A39 0x805E
+0x4A3A 0x4E19
+0x4A3B 0x4F75
+0x4A3C 0x5175
+0x4A3D 0x5840
+0x4A3E 0x5E63
+0x4A3F 0x5E73
+0x4A40 0x5F0A
+0x4A41 0x67C4
+0x4A42 0x4E26
+0x4A43 0x853D
+0x4A44 0x9589
+0x4A45 0x965B
+0x4A46 0x7C73
+0x4A47 0x9801
+0x4A48 0x50FB
+0x4A49 0x58C1
+0x4A4A 0x7656
+0x4A4B 0x78A7
+0x4A4C 0x5225
+0x4A4D 0x77A5
+0x4A4E 0x8511
+0x4A4F 0x7B86
+0x4A50 0x504F
+0x4A51 0x5909
+0x4A52 0x7247
+0x4A53 0x7BC7
+0x4A54 0x7DE8
+0x4A55 0x8FBA
+0x4A56 0x8FD4
+0x4A57 0x904D
+0x4A58 0x4FBF
+0x4A59 0x52C9
+0x4A5A 0x5A29
+0x4A5B 0x5F01
+0x4A5C 0x97AD
+0x4A5D 0x4FDD
+0x4A5E 0x8217
+0x4A5F 0x92EA
+0x4A60 0x5703
+0x4A61 0x6355
+0x4A62 0x6B69
+0x4A63 0x752B
+0x4A64 0x88DC
+0x4A65 0x8F14
+0x4A66 0x7A42
+0x4A67 0x52DF
+0x4A68 0x5893
+0x4A69 0x6155
+0x4A6A 0x620A
+0x4A6B 0x66AE
+0x4A6C 0x6BCD
+0x4A6D 0x7C3F
+0x4A6E 0x83E9
+0x4A6F 0x5023
+0x4A70 0x4FF8
+0x4A71 0x5305
+0x4A72 0x5446
+0x4A73 0x5831
+0x4A74 0x5949
+0x4A75 0x5B9D
+0x4A76 0x5CF0
+0x4A77 0x5CEF
+0x4A78 0x5D29
+0x4A79 0x5E96
+0x4A7A 0x62B1
+0x4A7B 0x6367
+0x4A7C 0x653E
+0x4A7D 0x65B9
+0x4A7E 0x670B
+0x4B21 0x6CD5
+0x4B22 0x6CE1
+0x4B23 0x70F9
+0x4B24 0x7832
+0x4B25 0x7E2B
+0x4B26 0x80DE
+0x4B27 0x82B3
+0x4B28 0x840C
+0x4B29 0x84EC
+0x4B2A 0x8702
+0x4B2B 0x8912
+0x4B2C 0x8A2A
+0x4B2D 0x8C4A
+0x4B2E 0x90A6
+0x4B2F 0x92D2
+0x4B30 0x98FD
+0x4B31 0x9CF3
+0x4B32 0x9D6C
+0x4B33 0x4E4F
+0x4B34 0x4EA1
+0x4B35 0x508D
+0x4B36 0x5256
+0x4B37 0x574A
+0x4B38 0x59A8
+0x4B39 0x5E3D
+0x4B3A 0x5FD8
+0x4B3B 0x5FD9
+0x4B3C 0x623F
+0x4B3D 0x66B4
+0x4B3E 0x671B
+0x4B3F 0x67D0
+0x4B40 0x68D2
+0x4B41 0x5192
+0x4B42 0x7D21
+0x4B43 0x80AA
+0x4B44 0x81A8
+0x4B45 0x8B00
+0x4B46 0x8C8C
+0x4B47 0x8CBF
+0x4B48 0x927E
+0x4B49 0x9632
+0x4B4A 0x5420
+0x4B4B 0x9830
+0x4B4C 0x5317
+0x4B4D 0x50D5
+0x4B4E 0x535C
+0x4B4F 0x58A8
+0x4B50 0x64B2
+0x4B51 0x6734
+0x4B52 0x7267
+0x4B53 0x7766
+0x4B54 0x7A46
+0x4B55 0x91E6
+0x4B56 0x52C3
+0x4B57 0x6CA1
+0x4B58 0x6B86
+0x4B59 0x5800
+0x4B5A 0x5E4C
+0x4B5B 0x5954
+0x4B5C 0x672C
+0x4B5D 0x7FFB
+0x4B5E 0x51E1
+0x4B5F 0x76C6
+0x4B60 0x6469
+0x4B61 0x78E8
+0x4B62 0x9B54
+0x4B63 0x9EBB
+0x4B64 0x57CB
+0x4B65 0x59B9
+0x4B66 0x6627
+0x4B67 0x679A
+0x4B68 0x6BCE
+0x4B69 0x54E9
+0x4B6A 0x69C7
+0x4B6B 0x5E55
+0x4B6C 0x819C
+0x4B6D 0x6795
+0x4B6E 0x9BAA
+0x4B6F 0x67FE
+0x4B70 0x9C52
+0x4B71 0x685D
+0x4B72 0x4EA6
+0x4B73 0x4FE3
+0x4B74 0x53C8
+0x4B75 0x62B9
+0x4B76 0x672B
+0x4B77 0x6CAB
+0x4B78 0x8FC4
+0x4B79 0x5118
+0x4B7A 0x7E6D
+0x4B7B 0x9EBF
+0x4B7C 0x4E07
+0x4B7D 0x6162
+0x4B7E 0x6E80
+0x4C21 0x6F2B
+0x4C22 0x8513
+0x4C23 0x5473
+0x4C24 0x672A
+0x4C25 0x9B45
+0x4C26 0x5DF3
+0x4C27 0x7B95
+0x4C28 0x5CAC
+0x4C29 0x5BC6
+0x4C2A 0x871C
+0x4C2B 0x6E4A
+0x4C2C 0x84D1
+0x4C2D 0x7A14
+0x4C2E 0x8108
+0x4C2F 0x5999
+0x4C30 0x7C8D
+0x4C31 0x6C11
+0x4C32 0x7720
+0x4C33 0x52D9
+0x4C34 0x5922
+0x4C35 0x7121
+0x4C36 0x725F
+0x4C37 0x77DB
+0x4C38 0x9727
+0x4C39 0x9D61
+0x4C3A 0x690B
+0x4C3B 0x5A7F
+0x4C3C 0x5A18
+0x4C3D 0x51A5
+0x4C3E 0x540D
+0x4C3F 0x547D
+0x4C40 0x660E
+0x4C41 0x76DF
+0x4C42 0x8FF7
+0x4C43 0x9298
+0x4C44 0x9CF4
+0x4C45 0x59EA
+0x4C46 0x725D
+0x4C47 0x6EC5
+0x4C48 0x514D
+0x4C49 0x68C9
+0x4C4A 0x7DBF
+0x4C4B 0x7DEC
+0x4C4C 0x9762
+0x4C4D 0x9EB5
+0x4C4E 0x6478
+0x4C4F 0x6A21
+0x4C50 0x8302
+0x4C51 0x5984
+0x4C52 0x5B5F
+0x4C53 0x6BDB
+0x4C54 0x731B
+0x4C55 0x76F2
+0x4C56 0x7DB2
+0x4C57 0x8017
+0x4C58 0x8499
+0x4C59 0x5132
+0x4C5A 0x6728
+0x4C5B 0x9ED9
+0x4C5C 0x76EE
+0x4C5D 0x6762
+0x4C5E 0x52FF
+0x4C5F 0x9905
+0x4C60 0x5C24
+0x4C61 0x623B
+0x4C62 0x7C7E
+0x4C63 0x8CB0
+0x4C64 0x554F
+0x4C65 0x60B6
+0x4C66 0x7D0B
+0x4C67 0x9580
+0x4C68 0x5301
+0x4C69 0x4E5F
+0x4C6A 0x51B6
+0x4C6B 0x591C
+0x4C6C 0x723A
+0x4C6D 0x8036
+0x4C6E 0x91CE
+0x4C6F 0x5F25
+0x4C70 0x77E2
+0x4C71 0x5384
+0x4C72 0x5F79
+0x4C73 0x7D04
+0x4C74 0x85AC
+0x4C75 0x8A33
+0x4C76 0x8E8D
+0x4C77 0x9756
+0x4C78 0x67F3
+0x4C79 0x85EA
+0x4C7A 0x9453
+0x4C7B 0x6109
+0x4C7C 0x6108
+0x4C7D 0x6CB9
+0x4C7E 0x7652
+0x4D21 0x8AED
+0x4D22 0x8F38
+0x4D23 0x552F
+0x4D24 0x4F51
+0x4D25 0x512A
+0x4D26 0x52C7
+0x4D27 0x53CB
+0x4D28 0x5BA5
+0x4D29 0x5E7D
+0x4D2A 0x60A0
+0x4D2B 0x6182
+0x4D2C 0x63D6
+0x4D2D 0x6709
+0x4D2E 0x67DA
+0x4D2F 0x6E67
+0x4D30 0x6D8C
+0x4D31 0x7336
+0x4D32 0x7337
+0x4D33 0x7531
+0x4D34 0x7950
+0x4D35 0x88D5
+0x4D36 0x8A98
+0x4D37 0x904A
+0x4D38 0x9091
+0x4D39 0x90F5
+0x4D3A 0x96C4
+0x4D3B 0x878D
+0x4D3C 0x5915
+0x4D3D 0x4E88
+0x4D3E 0x4F59
+0x4D3F 0x4E0E
+0x4D40 0x8A89
+0x4D41 0x8F3F
+0x4D42 0x9810
+0x4D43 0x50AD
+0x4D44 0x5E7C
+0x4D45 0x5996
+0x4D46 0x5BB9
+0x4D47 0x5EB8
+0x4D48 0x63DA
+0x4D49 0x63FA
+0x4D4A 0x64C1
+0x4D4B 0x66DC
+0x4D4C 0x694A
+0x4D4D 0x69D8
+0x4D4E 0x6D0B
+0x4D4F 0x6EB6
+0x4D50 0x7194
+0x4D51 0x7528
+0x4D52 0x7AAF
+0x4D53 0x7F8A
+0x4D54 0x8000
+0x4D55 0x8449
+0x4D56 0x84C9
+0x4D57 0x8981
+0x4D58 0x8B21
+0x4D59 0x8E0A
+0x4D5A 0x9059
+0x4D5B 0x967D
+0x4D5C 0x990A
+0x4D5D 0x617E
+0x4D5E 0x6291
+0x4D5F 0x6B32
+0x4D60 0x6C83
+0x4D61 0x6D74
+0x4D62 0x7FCC
+0x4D63 0x7FFC
+0x4D64 0x6DC0
+0x4D65 0x7F85
+0x4D66 0x87BA
+0x4D67 0x88F8
+0x4D68 0x6765
+0x4D69 0x840A
+0x4D6A 0x983C
+0x4D6B 0x96F7
+0x4D6C 0x6D1B
+0x4D6D 0x7D61
+0x4D6E 0x843D
+0x4D6F 0x916A
+0x4D70 0x4E71
+0x4D71 0x5375
+0x4D72 0x5D50
+0x4D73 0x6B04
+0x4D74 0x6FEB
+0x4D75 0x85CD
+0x4D76 0x862D
+0x4D77 0x89A7
+0x4D78 0x5229
+0x4D79 0x540F
+0x4D7A 0x5C65
+0x4D7B 0x674E
+0x4D7C 0x68A8
+0x4D7D 0x7406
+0x4D7E 0x7483
+0x4E21 0x75E2
+0x4E22 0x88CF
+0x4E23 0x88E1
+0x4E24 0x91CC
+0x4E25 0x96E2
+0x4E26 0x9678
+0x4E27 0x5F8B
+0x4E28 0x7387
+0x4E29 0x7ACB
+0x4E2A 0x844E
+0x4E2B 0x63A0
+0x4E2C 0x7565
+0x4E2D 0x5289
+0x4E2E 0x6D41
+0x4E2F 0x6E9C
+0x4E30 0x7409
+0x4E31 0x7559
+0x4E32 0x786B
+0x4E33 0x7C92
+0x4E34 0x9686
+0x4E35 0x7ADC
+0x4E36 0x9F8D
+0x4E37 0x4FB6
+0x4E38 0x616E
+0x4E39 0x65C5
+0x4E3A 0x865C
+0x4E3B 0x4E86
+0x4E3C 0x4EAE
+0x4E3D 0x50DA
+0x4E3E 0x4E21
+0x4E3F 0x51CC
+0x4E40 0x5BEE
+0x4E41 0x6599
+0x4E42 0x6881
+0x4E43 0x6DBC
+0x4E44 0x731F
+0x4E45 0x7642
+0x4E46 0x77AD
+0x4E47 0x7A1C
+0x4E48 0x7CE7
+0x4E49 0x826F
+0x4E4A 0x8AD2
+0x4E4B 0x907C
+0x4E4C 0x91CF
+0x4E4D 0x9675
+0x4E4E 0x9818
+0x4E4F 0x529B
+0x4E50 0x7DD1
+0x4E51 0x502B
+0x4E52 0x5398
+0x4E53 0x6797
+0x4E54 0x6DCB
+0x4E55 0x71D0
+0x4E56 0x7433
+0x4E57 0x81E8
+0x4E58 0x8F2A
+0x4E59 0x96A3
+0x4E5A 0x9C57
+0x4E5B 0x9E9F
+0x4E5C 0x7460
+0x4E5D 0x5841
+0x4E5E 0x6D99
+0x4E5F 0x7D2F
+0x4E60 0x985E
+0x4E61 0x4EE4
+0x4E62 0x4F36
+0x4E63 0x4F8B
+0x4E64 0x51B7
+0x4E65 0x52B1
+0x4E66 0x5DBA
+0x4E67 0x601C
+0x4E68 0x73B2
+0x4E69 0x793C
+0x4E6A 0x82D3
+0x4E6B 0x9234
+0x4E6C 0x96B7
+0x4E6D 0x96F6
+0x4E6E 0x970A
+0x4E6F 0x9E97
+0x4E70 0x9F62
+0x4E71 0x66A6
+0x4E72 0x6B74
+0x4E73 0x5217
+0x4E74 0x52A3
+0x4E75 0x70C8
+0x4E76 0x88C2
+0x4E77 0x5EC9
+0x4E78 0x604B
+0x4E79 0x6190
+0x4E7A 0x6F23
+0x4E7B 0x7149
+0x4E7C 0x7C3E
+0x4E7D 0x7DF4
+0x4E7E 0x806F
+0x4F21 0x84EE
+0x4F22 0x9023
+0x4F23 0x932C
+0x4F24 0x5442
+0x4F25 0x9B6F
+0x4F26 0x6AD3
+0x4F27 0x7089
+0x4F28 0x8CC2
+0x4F29 0x8DEF
+0x4F2A 0x9732
+0x4F2B 0x52B4
+0x4F2C 0x5A41
+0x4F2D 0x5ECA
+0x4F2E 0x5F04
+0x4F2F 0x6717
+0x4F30 0x697C
+0x4F31 0x6994
+0x4F32 0x6D6A
+0x4F33 0x6F0F
+0x4F34 0x7262
+0x4F35 0x72FC
+0x4F36 0x7C60
+0x4F37 0x8001
+0x4F38 0x807E
+0x4F39 0x881F
+0x4F3A 0x90CE
+0x4F3B 0x516D
+0x4F3C 0x9E93
+0x4F3D 0x7984
+0x4F3E 0x808B
+0x4F3F 0x9332
+0x4F40 0x8AD6
+0x4F41 0x502D
+0x4F42 0x548C
+0x4F43 0x8A71
+0x4F44 0x6B6A
+0x4F45 0x8CC4
+0x4F46 0x8107
+0x4F47 0x60D1
+0x4F48 0x67A0
+0x4F49 0x9DF2
+0x4F4A 0x4E99
+0x4F4B 0x4E98
+0x4F4C 0x9C10
+0x4F4D 0x8A6B
+0x4F4E 0x85C1
+0x4F4F 0x8568
+0x4F50 0x6900
+0x4F51 0x6E7E
+0x4F52 0x7897
+0x4F53 0x8155
+0x5021 0x5F0C
+0x5022 0x4E10
+0x5023 0x4E15
+0x5024 0x4E2A
+0x5025 0x4E31
+0x5026 0x4E36
+0x5027 0x4E3C
+0x5028 0x4E3F
+0x5029 0x4E42
+0x502A 0x4E56
+0x502B 0x4E58
+0x502C 0x4E82
+0x502D 0x4E85
+0x502E 0x8C6B
+0x502F 0x4E8A
+0x5030 0x8212
+0x5031 0x5F0D
+0x5032 0x4E8E
+0x5033 0x4E9E
+0x5034 0x4E9F
+0x5035 0x4EA0
+0x5036 0x4EA2
+0x5037 0x4EB0
+0x5038 0x4EB3
+0x5039 0x4EB6
+0x503A 0x4ECE
+0x503B 0x4ECD
+0x503C 0x4EC4
+0x503D 0x4EC6
+0x503E 0x4EC2
+0x503F 0x4ED7
+0x5040 0x4EDE
+0x5041 0x4EED
+0x5042 0x4EDF
+0x5043 0x4EF7
+0x5044 0x4F09
+0x5045 0x4F5A
+0x5046 0x4F30
+0x5047 0x4F5B
+0x5048 0x4F5D
+0x5049 0x4F57
+0x504A 0x4F47
+0x504B 0x4F76
+0x504C 0x4F88
+0x504D 0x4F8F
+0x504E 0x4F98
+0x504F 0x4F7B
+0x5050 0x4F69
+0x5051 0x4F70
+0x5052 0x4F91
+0x5053 0x4F6F
+0x5054 0x4F86
+0x5055 0x4F96
+0x5056 0x4FAD
+0x5057 0x4FD4
+0x5058 0x4FDF
+0x5059 0x4FCE
+0x505A 0x4FD8
+0x505B 0x4FDB
+0x505C 0x4FD1
+0x505D 0x4FDA
+0x505E 0x4FD0
+0x505F 0x4FE4
+0x5060 0x4FE5
+0x5061 0x501A
+0x5062 0x5028
+0x5063 0x5014
+0x5064 0x502A
+0x5065 0x5025
+0x5066 0x5005
+0x5067 0x4F1C
+0x5068 0x4FF6
+0x5069 0x5021
+0x506A 0x5029
+0x506B 0x502C
+0x506C 0x4FFE
+0x506D 0x4FEF
+0x506E 0x5011
+0x506F 0x5006
+0x5070 0x5043
+0x5071 0x5047
+0x5072 0x6703
+0x5073 0x5055
+0x5074 0x5050
+0x5075 0x5048
+0x5076 0x505A
+0x5077 0x5056
+0x5078 0x506C
+0x5079 0x5078
+0x507A 0x5080
+0x507B 0x509A
+0x507C 0x5085
+0x507D 0x50B4
+0x507E 0x50B2
+0x5121 0x50C9
+0x5122 0x50CA
+0x5123 0x50B3
+0x5124 0x50C2
+0x5125 0x50D6
+0x5126 0x50DE
+0x5127 0x50E5
+0x5128 0x50ED
+0x5129 0x50E3
+0x512A 0x50EE
+0x512B 0x50F9
+0x512C 0x50F5
+0x512D 0x5109
+0x512E 0x5101
+0x512F 0x5102
+0x5130 0x5116
+0x5131 0x5115
+0x5132 0x5114
+0x5133 0x511A
+0x5134 0x5121
+0x5135 0x513A
+0x5136 0x5137
+0x5137 0x513C
+0x5138 0x513B
+0x5139 0x513F
+0x513A 0x5140
+0x513B 0x5152
+0x513C 0x514C
+0x513E 0x5162
+0x513F 0x7AF8
+0x5140 0x5169
+0x5141 0x516A
+0x5142 0x516E
+0x5143 0x5180
+0x5144 0x5182
+0x5145 0x56D8
+0x5146 0x518C
+0x5147 0x5189
+0x5148 0x518F
+0x5149 0x5191
+0x514A 0x5193
+0x514B 0x5195
+0x514C 0x5196
+0x514D 0x51A4
+0x514E 0x51A6
+0x514F 0x51A2
+0x5150 0x51A9
+0x5151 0x51AA
+0x5152 0x51AB
+0x5153 0x51B3
+0x5154 0x51B1
+0x5155 0x51B2
+0x5156 0x51B0
+0x5157 0x51B5
+0x5158 0x51BD
+0x5159 0x51C5
+0x515A 0x51C9
+0x515B 0x51DB
+0x515C 0x51E0
+0x515D 0x8655
+0x515E 0x51E9
+0x515F 0x51ED
+0x5160 0x51F0
+0x5161 0x51F5
+0x5162 0x51FE
+0x5163 0x5204
+0x5164 0x520B
+0x5165 0x5214
+0x5166 0x520E
+0x5167 0x5227
+0x5168 0x522A
+0x5169 0x522E
+0x516A 0x5233
+0x516B 0x5239
+0x516C 0x524F
+0x516D 0x5244
+0x516E 0x524B
+0x516F 0x524C
+0x5170 0x525E
+0x5171 0x5254
+0x5172 0x526A
+0x5173 0x5274
+0x5174 0x5269
+0x5175 0x5273
+0x5176 0x527F
+0x5177 0x527D
+0x5178 0x528D
+0x5179 0x5294
+0x517A 0x5292
+0x517B 0x5271
+0x517C 0x5288
+0x517D 0x5291
+0x517E 0x8FA8
+0x5221 0x8FA7
+0x5222 0x52AC
+0x5223 0x52AD
+0x5224 0x52BC
+0x5225 0x52B5
+0x5226 0x52C1
+0x5227 0x52CD
+0x5228 0x52D7
+0x5229 0x52DE
+0x522A 0x52E3
+0x522B 0x52E6
+0x522C 0x98ED
+0x522D 0x52E0
+0x522E 0x52F3
+0x522F 0x52F5
+0x5230 0x52F8
+0x5231 0x52F9
+0x5232 0x5306
+0x5233 0x5308
+0x5234 0x7538
+0x5235 0x530D
+0x5236 0x5310
+0x5237 0x530F
+0x5238 0x5315
+0x5239 0x531A
+0x523A 0x5323
+0x523B 0x532F
+0x523C 0x5331
+0x523D 0x5333
+0x523E 0x5338
+0x523F 0x5340
+0x5240 0x5346
+0x5241 0x5345
+0x5242 0x4E17
+0x5243 0x5349
+0x5244 0x534D
+0x5245 0x51D6
+0x5246 0x535E
+0x5247 0x5369
+0x5248 0x536E
+0x5249 0x5918
+0x524A 0x537B
+0x524B 0x5377
+0x524C 0x5382
+0x524D 0x5396
+0x524E 0x53A0
+0x524F 0x53A6
+0x5250 0x53A5
+0x5251 0x53AE
+0x5252 0x53B0
+0x5253 0x53B6
+0x5254 0x53C3
+0x5255 0x7C12
+0x5256 0x96D9
+0x5257 0x53DF
+0x5258 0x66FC
+0x5259 0x71EE
+0x525A 0x53EE
+0x525B 0x53E8
+0x525C 0x53ED
+0x525D 0x53FA
+0x525E 0x5401
+0x525F 0x543D
+0x5260 0x5440
+0x5261 0x542C
+0x5262 0x542D
+0x5263 0x543C
+0x5264 0x542E
+0x5265 0x5436
+0x5266 0x5429
+0x5267 0x541D
+0x5268 0x544E
+0x5269 0x548F
+0x526A 0x5475
+0x526B 0x548E
+0x526C 0x545F
+0x526D 0x5471
+0x526E 0x5477
+0x526F 0x5470
+0x5270 0x5492
+0x5271 0x547B
+0x5272 0x5480
+0x5273 0x5476
+0x5274 0x5484
+0x5275 0x5490
+0x5276 0x5486
+0x5277 0x54C7
+0x5278 0x54A2
+0x5279 0x54B8
+0x527A 0x54A5
+0x527B 0x54AC
+0x527C 0x54C4
+0x527D 0x54C8
+0x527E 0x54A8
+0x5321 0x54AB
+0x5322 0x54C2
+0x5323 0x54A4
+0x5324 0x54BE
+0x5325 0x54BC
+0x5326 0x54D8
+0x5327 0x54E5
+0x5328 0x54E6
+0x5329 0x550F
+0x532A 0x5514
+0x532B 0x54FD
+0x532C 0x54EE
+0x532D 0x54ED
+0x532E 0x54FA
+0x532F 0x54E2
+0x5330 0x5539
+0x5331 0x5540
+0x5332 0x5563
+0x5333 0x554C
+0x5334 0x552E
+0x5335 0x555C
+0x5336 0x5545
+0x5337 0x5556
+0x5338 0x5557
+0x5339 0x5538
+0x533A 0x5533
+0x533B 0x555D
+0x533C 0x5599
+0x533D 0x5580
+0x533E 0x54AF
+0x533F 0x558A
+0x5340 0x559F
+0x5341 0x557B
+0x5342 0x557E
+0x5343 0x5598
+0x5344 0x559E
+0x5345 0x55AE
+0x5346 0x557C
+0x5347 0x5583
+0x5348 0x55A9
+0x5349 0x5587
+0x534A 0x55A8
+0x534B 0x55DA
+0x534C 0x55C5
+0x534D 0x55DF
+0x534E 0x55C4
+0x534F 0x55DC
+0x5350 0x55E4
+0x5351 0x55D4
+0x5352 0x5614
+0x5353 0x55F7
+0x5354 0x5616
+0x5355 0x55FE
+0x5356 0x55FD
+0x5357 0x561B
+0x5358 0x55F9
+0x5359 0x564E
+0x535A 0x5650
+0x535B 0x71DF
+0x535C 0x5634
+0x535D 0x5636
+0x535E 0x5632
+0x535F 0x5638
+0x5360 0x566B
+0x5361 0x5664
+0x5362 0x562F
+0x5363 0x566C
+0x5364 0x566A
+0x5365 0x5686
+0x5366 0x5680
+0x5367 0x568A
+0x5368 0x56A0
+0x5369 0x5694
+0x536A 0x568F
+0x536B 0x56A5
+0x536C 0x56AE
+0x536D 0x56B6
+0x536E 0x56B4
+0x536F 0x56C2
+0x5370 0x56BC
+0x5371 0x56C1
+0x5372 0x56C3
+0x5373 0x56C0
+0x5374 0x56C8
+0x5375 0x56CE
+0x5376 0x56D1
+0x5377 0x56D3
+0x5378 0x56D7
+0x5379 0x56EE
+0x537A 0x56F9
+0x537B 0x5700
+0x537C 0x56FF
+0x537D 0x5704
+0x537E 0x5709
+0x5421 0x5708
+0x5422 0x570B
+0x5423 0x570D
+0x5424 0x5713
+0x5425 0x5718
+0x5426 0x5716
+0x5427 0x55C7
+0x5428 0x571C
+0x5429 0x5726
+0x542A 0x5737
+0x542B 0x5738
+0x542C 0x574E
+0x542D 0x573B
+0x542E 0x5740
+0x542F 0x574F
+0x5430 0x5769
+0x5431 0x57C0
+0x5432 0x5788
+0x5433 0x5761
+0x5434 0x577F
+0x5435 0x5789
+0x5436 0x5793
+0x5437 0x57A0
+0x5438 0x57B3
+0x5439 0x57A4
+0x543A 0x57AA
+0x543B 0x57B0
+0x543C 0x57C3
+0x543D 0x57C6
+0x543E 0x57D4
+0x543F 0x57D2
+0x5440 0x57D3
+0x5441 0x580A
+0x5442 0x57D6
+0x5443 0x57E3
+0x5444 0x580B
+0x5445 0x5819
+0x5446 0x581D
+0x5447 0x5872
+0x5448 0x5821
+0x5449 0x5862
+0x544A 0x584B
+0x544B 0x5870
+0x544C 0x6BC0
+0x544D 0x5852
+0x544E 0x583D
+0x544F 0x5879
+0x5450 0x5885
+0x5451 0x58B9
+0x5452 0x589F
+0x5453 0x58AB
+0x5454 0x58BA
+0x5455 0x58DE
+0x5456 0x58BB
+0x5457 0x58B8
+0x5458 0x58AE
+0x5459 0x58C5
+0x545A 0x58D3
+0x545B 0x58D1
+0x545C 0x58D7
+0x545D 0x58D9
+0x545E 0x58D8
+0x545F 0x58E5
+0x5460 0x58DC
+0x5461 0x58E4
+0x5462 0x58DF
+0x5463 0x58EF
+0x5464 0x58F7
+0x5465 0x58F9
+0x5466 0x58FB
+0x5467 0x58FC
+0x5468 0x58FD
+0x5469 0x5902
+0x546A 0x590A
+0x546B 0x5910
+0x546C 0x591B
+0x546D 0x68A6
+0x546E 0x5925
+0x546F 0x592C
+0x5470 0x592D
+0x5471 0x5932
+0x5472 0x5938
+0x5473 0x593E
+0x5474 0x7AD2
+0x5475 0x5955
+0x5476 0x5950
+0x5477 0x594E
+0x5478 0x595A
+0x5479 0x5958
+0x547A 0x5962
+0x547B 0x5960
+0x547C 0x5967
+0x547D 0x596C
+0x547E 0x5969
+0x5521 0x5978
+0x5522 0x5981
+0x5523 0x599D
+0x5524 0x4F5E
+0x5525 0x4FAB
+0x5526 0x59A3
+0x5527 0x59B2
+0x5528 0x59C6
+0x5529 0x59E8
+0x552A 0x59DC
+0x552B 0x598D
+0x552C 0x59D9
+0x552D 0x59DA
+0x552E 0x5A25
+0x552F 0x5A1F
+0x5530 0x5A11
+0x5531 0x5A1C
+0x5532 0x5A09
+0x5533 0x5A1A
+0x5534 0x5A40
+0x5535 0x5A6C
+0x5536 0x5A49
+0x5537 0x5A35
+0x5538 0x5A36
+0x5539 0x5A62
+0x553A 0x5A6A
+0x553B 0x5A9A
+0x553C 0x5ABC
+0x553D 0x5ABE
+0x553E 0x5ACB
+0x553F 0x5AC2
+0x5540 0x5ABD
+0x5541 0x5AE3
+0x5542 0x5AD7
+0x5543 0x5AE6
+0x5544 0x5AE9
+0x5545 0x5AD6
+0x5546 0x5AFA
+0x5547 0x5AFB
+0x5548 0x5B0C
+0x5549 0x5B0B
+0x554A 0x5B16
+0x554B 0x5B32
+0x554C 0x5AD0
+0x554D 0x5B2A
+0x554E 0x5B36
+0x554F 0x5B3E
+0x5550 0x5B43
+0x5551 0x5B45
+0x5552 0x5B40
+0x5553 0x5B51
+0x5554 0x5B55
+0x5555 0x5B5A
+0x5556 0x5B5B
+0x5557 0x5B65
+0x5558 0x5B69
+0x5559 0x5B70
+0x555A 0x5B73
+0x555B 0x5B75
+0x555C 0x5B78
+0x555D 0x6588
+0x555E 0x5B7A
+0x555F 0x5B80
+0x5560 0x5B83
+0x5561 0x5BA6
+0x5562 0x5BB8
+0x5563 0x5BC3
+0x5564 0x5BC7
+0x5565 0x5BC9
+0x5566 0x5BD4
+0x5567 0x5BD0
+0x5568 0x5BE4
+0x5569 0x5BE6
+0x556A 0x5BE2
+0x556B 0x5BDE
+0x556C 0x5BE5
+0x556D 0x5BEB
+0x556E 0x5BF0
+0x556F 0x5BF6
+0x5570 0x5BF3
+0x5571 0x5C05
+0x5572 0x5C07
+0x5573 0x5C08
+0x5574 0x5C0D
+0x5575 0x5C13
+0x5576 0x5C20
+0x5577 0x5C22
+0x5578 0x5C28
+0x5579 0x5C38
+0x557A 0x5C39
+0x557B 0x5C41
+0x557C 0x5C46
+0x557D 0x5C4E
+0x557E 0x5C53
+0x5621 0x5C50
+0x5622 0x5C5B
+0x5623 0x5B71
+0x5624 0x5C6C
+0x5625 0x5C6E
+0x5626 0x4E62
+0x5627 0x5C76
+0x5628 0x5C79
+0x5629 0x5C8C
+0x562A 0x5C91
+0x562B 0x5C94
+0x562C 0x599B
+0x562D 0x5CAB
+0x562E 0x5CBB
+0x562F 0x5CB6
+0x5630 0x5CBC
+0x5631 0x5CB7
+0x5632 0x5CC5
+0x5633 0x5CBE
+0x5634 0x5CC7
+0x5635 0x5CD9
+0x5636 0x5CE9
+0x5637 0x5CFD
+0x5638 0x5CFA
+0x5639 0x5CED
+0x563A 0x5D8C
+0x563B 0x5CEA
+0x563C 0x5D0B
+0x563D 0x5D15
+0x563E 0x5D17
+0x563F 0x5D5C
+0x5640 0x5D1F
+0x5641 0x5D1B
+0x5642 0x5D11
+0x5643 0x5D14
+0x5644 0x5D22
+0x5645 0x5D1A
+0x5646 0x5D19
+0x5647 0x5D18
+0x5648 0x5D4C
+0x5649 0x5D52
+0x564A 0x5D4E
+0x564B 0x5D4B
+0x564C 0x5D6C
+0x564D 0x5D73
+0x564E 0x5D76
+0x564F 0x5D87
+0x5650 0x5D84
+0x5651 0x5D82
+0x5652 0x5DA2
+0x5653 0x5D9D
+0x5654 0x5DAC
+0x5655 0x5DAE
+0x5656 0x5DBD
+0x5657 0x5D90
+0x5658 0x5DB7
+0x5659 0x5DBC
+0x565A 0x5DC9
+0x565B 0x5DCD
+0x565C 0x5DD3
+0x565D 0x5DD2
+0x565E 0x5DD6
+0x565F 0x5DDB
+0x5660 0x5DEB
+0x5661 0x5DF2
+0x5662 0x5DF5
+0x5663 0x5E0B
+0x5664 0x5E1A
+0x5665 0x5E19
+0x5666 0x5E11
+0x5667 0x5E1B
+0x5668 0x5E36
+0x5669 0x5E37
+0x566A 0x5E44
+0x566B 0x5E43
+0x566C 0x5E40
+0x566D 0x5E4E
+0x566E 0x5E57
+0x566F 0x5E54
+0x5670 0x5E5F
+0x5671 0x5E62
+0x5672 0x5E64
+0x5673 0x5E47
+0x5674 0x5E75
+0x5675 0x5E76
+0x5676 0x5E7A
+0x5677 0x9EBC
+0x5678 0x5E7F
+0x5679 0x5EA0
+0x567A 0x5EC1
+0x567B 0x5EC2
+0x567C 0x5EC8
+0x567D 0x5ED0
+0x567E 0x5ECF
+0x5721 0x5ED6
+0x5722 0x5EE3
+0x5723 0x5EDD
+0x5724 0x5EDA
+0x5725 0x5EDB
+0x5726 0x5EE2
+0x5727 0x5EE1
+0x5728 0x5EE8
+0x5729 0x5EE9
+0x572A 0x5EEC
+0x572B 0x5EF1
+0x572C 0x5EF3
+0x572D 0x5EF0
+0x572E 0x5EF4
+0x572F 0x5EF8
+0x5730 0x5EFE
+0x5731 0x5F03
+0x5732 0x5F09
+0x5733 0x5F5D
+0x5734 0x5F5C
+0x5735 0x5F0B
+0x5736 0x5F11
+0x5737 0x5F16
+0x5738 0x5F29
+0x5739 0x5F2D
+0x573A 0x5F38
+0x573B 0x5F41
+0x573C 0x5F48
+0x573D 0x5F4C
+0x573E 0x5F4E
+0x573F 0x5F2F
+0x5740 0x5F51
+0x5741 0x5F56
+0x5742 0x5F57
+0x5743 0x5F59
+0x5744 0x5F61
+0x5745 0x5F6D
+0x5746 0x5F73
+0x5747 0x5F77
+0x5748 0x5F83
+0x5749 0x5F82
+0x574A 0x5F7F
+0x574B 0x5F8A
+0x574C 0x5F88
+0x574D 0x5F91
+0x574E 0x5F87
+0x574F 0x5F9E
+0x5750 0x5F99
+0x5751 0x5F98
+0x5752 0x5FA0
+0x5753 0x5FA8
+0x5754 0x5FAD
+0x5755 0x5FBC
+0x5756 0x5FD6
+0x5757 0x5FFB
+0x5758 0x5FE4
+0x5759 0x5FF8
+0x575A 0x5FF1
+0x575B 0x5FDD
+0x575C 0x60B3
+0x575D 0x5FFF
+0x575E 0x6021
+0x575F 0x6060
+0x5760 0x6019
+0x5761 0x6010
+0x5762 0x6029
+0x5763 0x600E
+0x5764 0x6031
+0x5765 0x601B
+0x5766 0x6015
+0x5767 0x602B
+0x5768 0x6026
+0x5769 0x600F
+0x576A 0x603A
+0x576B 0x605A
+0x576C 0x6041
+0x576D 0x606A
+0x576E 0x6077
+0x576F 0x605F
+0x5770 0x604A
+0x5771 0x6046
+0x5772 0x604D
+0x5773 0x6063
+0x5774 0x6043
+0x5775 0x6064
+0x5776 0x6042
+0x5777 0x606C
+0x5778 0x606B
+0x5779 0x6059
+0x577A 0x6081
+0x577B 0x608D
+0x577C 0x60E7
+0x577D 0x6083
+0x577E 0x609A
+0x5821 0x6084
+0x5822 0x609B
+0x5823 0x6096
+0x5824 0x6097
+0x5825 0x6092
+0x5826 0x60A7
+0x5827 0x608B
+0x5828 0x60E1
+0x5829 0x60B8
+0x582A 0x60E0
+0x582B 0x60D3
+0x582C 0x60B4
+0x582D 0x5FF0
+0x582E 0x60BD
+0x582F 0x60C6
+0x5830 0x60B5
+0x5831 0x60D8
+0x5832 0x614D
+0x5833 0x6115
+0x5834 0x6106
+0x5835 0x60F6
+0x5836 0x60F7
+0x5837 0x6100
+0x5838 0x60F4
+0x5839 0x60FA
+0x583A 0x6103
+0x583B 0x6121
+0x583C 0x60FB
+0x583D 0x60F1
+0x583E 0x610D
+0x583F 0x610E
+0x5840 0x6147
+0x5841 0x613E
+0x5842 0x6128
+0x5843 0x6127
+0x5844 0x614A
+0x5845 0x613F
+0x5846 0x613C
+0x5847 0x612C
+0x5848 0x6134
+0x5849 0x613D
+0x584A 0x6142
+0x584B 0x6144
+0x584C 0x6173
+0x584D 0x6177
+0x584E 0x6158
+0x584F 0x6159
+0x5850 0x615A
+0x5851 0x616B
+0x5852 0x6174
+0x5853 0x616F
+0x5854 0x6165
+0x5855 0x6171
+0x5856 0x615F
+0x5857 0x615D
+0x5858 0x6153
+0x5859 0x6175
+0x585A 0x6199
+0x585B 0x6196
+0x585C 0x6187
+0x585D 0x61AC
+0x585E 0x6194
+0x585F 0x619A
+0x5860 0x618A
+0x5861 0x6191
+0x5862 0x61AB
+0x5863 0x61AE
+0x5864 0x61CC
+0x5865 0x61CA
+0x5866 0x61C9
+0x5867 0x61F7
+0x5868 0x61C8
+0x5869 0x61C3
+0x586A 0x61C6
+0x586B 0x61BA
+0x586C 0x61CB
+0x586D 0x7F79
+0x586E 0x61CD
+0x586F 0x61E6
+0x5870 0x61E3
+0x5871 0x61F6
+0x5872 0x61FA
+0x5873 0x61F4
+0x5874 0x61FF
+0x5875 0x61FD
+0x5876 0x61FC
+0x5877 0x61FE
+0x5878 0x6200
+0x5879 0x6208
+0x587A 0x6209
+0x587B 0x620D
+0x587C 0x620C
+0x587D 0x6214
+0x587E 0x621B
+0x5921 0x621E
+0x5922 0x6221
+0x5923 0x622A
+0x5924 0x622E
+0x5925 0x6230
+0x5926 0x6232
+0x5927 0x6233
+0x5928 0x6241
+0x5929 0x624E
+0x592A 0x625E
+0x592B 0x6263
+0x592C 0x625B
+0x592D 0x6260
+0x592E 0x6268
+0x592F 0x627C
+0x5930 0x6282
+0x5931 0x6289
+0x5932 0x627E
+0x5933 0x6292
+0x5934 0x6293
+0x5935 0x6296
+0x5936 0x62D4
+0x5937 0x6283
+0x5938 0x6294
+0x5939 0x62D7
+0x593A 0x62D1
+0x593B 0x62BB
+0x593C 0x62CF
+0x593D 0x62FF
+0x593E 0x62C6
+0x593F 0x64D4
+0x5940 0x62C8
+0x5941 0x62DC
+0x5942 0x62CC
+0x5943 0x62CA
+0x5944 0x62C2
+0x5945 0x62C7
+0x5946 0x629B
+0x5947 0x62C9
+0x5948 0x630C
+0x5949 0x62EE
+0x594A 0x62F1
+0x594B 0x6327
+0x594C 0x6302
+0x594D 0x6308
+0x594E 0x62EF
+0x594F 0x62F5
+0x5950 0x6350
+0x5951 0x633E
+0x5952 0x634D
+0x5953 0x641C
+0x5954 0x634F
+0x5955 0x6396
+0x5956 0x638E
+0x5957 0x6380
+0x5958 0x63AB
+0x5959 0x6376
+0x595A 0x63A3
+0x595B 0x638F
+0x595C 0x6389
+0x595D 0x639F
+0x595E 0x63B5
+0x595F 0x636B
+0x5960 0x6369
+0x5961 0x63BE
+0x5962 0x63E9
+0x5963 0x63C0
+0x5964 0x63C6
+0x5965 0x63E3
+0x5966 0x63C9
+0x5967 0x63D2
+0x5968 0x63F6
+0x5969 0x63C4
+0x596A 0x6416
+0x596B 0x6434
+0x596C 0x6406
+0x596D 0x6413
+0x596E 0x6426
+0x596F 0x6436
+0x5970 0x651D
+0x5971 0x6417
+0x5972 0x6428
+0x5973 0x640F
+0x5974 0x6467
+0x5975 0x646F
+0x5976 0x6476
+0x5977 0x644E
+0x5978 0x64B9
+0x5979 0x6495
+0x597A 0x6493
+0x597B 0x64A5
+0x597C 0x64A9
+0x597D 0x6488
+0x597E 0x64BC
+0x5A21 0x64DA
+0x5A22 0x64D2
+0x5A23 0x64C5
+0x5A24 0x64C7
+0x5A25 0x64BB
+0x5A26 0x64D8
+0x5A27 0x64C2
+0x5A28 0x64F1
+0x5A29 0x64E7
+0x5A2A 0x8209
+0x5A2B 0x64E0
+0x5A2C 0x64E1
+0x5A2D 0x62AC
+0x5A2E 0x64E3
+0x5A2F 0x64EF
+0x5A30 0x652C
+0x5A31 0x64F6
+0x5A32 0x64F4
+0x5A33 0x64F2
+0x5A34 0x64FA
+0x5A35 0x6500
+0x5A36 0x64FD
+0x5A37 0x6518
+0x5A38 0x651C
+0x5A39 0x6522
+0x5A3A 0x6524
+0x5A3B 0x6523
+0x5A3C 0x652B
+0x5A3D 0x6534
+0x5A3E 0x6535
+0x5A3F 0x6537
+0x5A40 0x6536
+0x5A41 0x6538
+0x5A42 0x754B
+0x5A43 0x6548
+0x5A44 0x6556
+0x5A45 0x6555
+0x5A46 0x654D
+0x5A47 0x6558
+0x5A48 0x655E
+0x5A49 0x655D
+0x5A4A 0x6572
+0x5A4B 0x6578
+0x5A4C 0x6582
+0x5A4D 0x6583
+0x5A4E 0x8B8A
+0x5A4F 0x659B
+0x5A50 0x659F
+0x5A51 0x65AB
+0x5A52 0x65B7
+0x5A53 0x65C3
+0x5A54 0x65C6
+0x5A55 0x65C1
+0x5A56 0x65C4
+0x5A57 0x65CC
+0x5A58 0x65D2
+0x5A59 0x65DB
+0x5A5A 0x65D9
+0x5A5B 0x65E0
+0x5A5C 0x65E1
+0x5A5D 0x65F1
+0x5A5E 0x6772
+0x5A5F 0x660A
+0x5A60 0x6603
+0x5A61 0x65FB
+0x5A62 0x6773
+0x5A63 0x6635
+0x5A64 0x6636
+0x5A65 0x6634
+0x5A66 0x661C
+0x5A67 0x664F
+0x5A68 0x6644
+0x5A69 0x6649
+0x5A6A 0x6641
+0x5A6B 0x665E
+0x5A6C 0x665D
+0x5A6D 0x6664
+0x5A6E 0x6667
+0x5A6F 0x6668
+0x5A70 0x665F
+0x5A71 0x6662
+0x5A72 0x6670
+0x5A73 0x6683
+0x5A74 0x6688
+0x5A75 0x668E
+0x5A76 0x6689
+0x5A77 0x6684
+0x5A78 0x6698
+0x5A79 0x669D
+0x5A7A 0x66C1
+0x5A7B 0x66B9
+0x5A7C 0x66C9
+0x5A7D 0x66BE
+0x5A7E 0x66BC
+0x5B21 0x66C4
+0x5B22 0x66B8
+0x5B23 0x66D6
+0x5B24 0x66DA
+0x5B25 0x66E0
+0x5B26 0x663F
+0x5B27 0x66E6
+0x5B28 0x66E9
+0x5B29 0x66F0
+0x5B2A 0x66F5
+0x5B2B 0x66F7
+0x5B2C 0x670F
+0x5B2D 0x6716
+0x5B2E 0x671E
+0x5B2F 0x6726
+0x5B30 0x6727
+0x5B31 0x9738
+0x5B32 0x672E
+0x5B33 0x673F
+0x5B34 0x6736
+0x5B35 0x6741
+0x5B36 0x6738
+0x5B37 0x6737
+0x5B38 0x6746
+0x5B39 0x675E
+0x5B3A 0x6760
+0x5B3B 0x6759
+0x5B3C 0x6763
+0x5B3D 0x6764
+0x5B3E 0x6789
+0x5B3F 0x6770
+0x5B40 0x67A9
+0x5B41 0x677C
+0x5B42 0x676A
+0x5B43 0x678C
+0x5B44 0x678B
+0x5B45 0x67A6
+0x5B46 0x67A1
+0x5B47 0x6785
+0x5B48 0x67B7
+0x5B49 0x67EF
+0x5B4A 0x67B4
+0x5B4B 0x67EC
+0x5B4C 0x67B3
+0x5B4D 0x67E9
+0x5B4E 0x67B8
+0x5B4F 0x67E4
+0x5B50 0x67DE
+0x5B51 0x67DD
+0x5B52 0x67E2
+0x5B53 0x67EE
+0x5B54 0x67B9
+0x5B55 0x67CE
+0x5B56 0x67C6
+0x5B57 0x67E7
+0x5B58 0x6867
+0x5B59 0x681E
+0x5B5A 0x6846
+0x5B5B 0x6829
+0x5B5C 0x6840
+0x5B5D 0x684D
+0x5B5E 0x6832
+0x5B5F 0x684E
+0x5B60 0x68B3
+0x5B61 0x682B
+0x5B62 0x6859
+0x5B63 0x6863
+0x5B64 0x6877
+0x5B65 0x687F
+0x5B66 0x689F
+0x5B67 0x688F
+0x5B68 0x68AD
+0x5B69 0x6894
+0x5B6A 0x689D
+0x5B6B 0x689B
+0x5B6C 0x6883
+0x5B6D 0x68BC
+0x5B6E 0x68B9
+0x5B6F 0x6874
+0x5B70 0x68B5
+0x5B71 0x68A0
+0x5B72 0x68BA
+0x5B73 0x690F
+0x5B74 0x688E
+0x5B75 0x687E
+0x5B76 0x6901
+0x5B77 0x68CA
+0x5B78 0x6908
+0x5B79 0x68D8
+0x5B7A 0x6922
+0x5B7B 0x6926
+0x5B7C 0x68E1
+0x5B7D 0x690C
+0x5B7E 0x68CD
+0x5C21 0x68D4
+0x5C22 0x68E7
+0x5C23 0x68D5
+0x5C24 0x6936
+0x5C25 0x6912
+0x5C26 0x6904
+0x5C27 0x68D7
+0x5C28 0x68E3
+0x5C29 0x6925
+0x5C2A 0x68F9
+0x5C2B 0x68E0
+0x5C2C 0x68EF
+0x5C2D 0x6928
+0x5C2E 0x692A
+0x5C2F 0x691A
+0x5C30 0x6923
+0x5C31 0x6921
+0x5C32 0x68C6
+0x5C33 0x6979
+0x5C34 0x6977
+0x5C35 0x695C
+0x5C36 0x6978
+0x5C37 0x696B
+0x5C38 0x6954
+0x5C39 0x697E
+0x5C3A 0x696E
+0x5C3B 0x6939
+0x5C3C 0x6974
+0x5C3D 0x693D
+0x5C3E 0x6959
+0x5C3F 0x6930
+0x5C40 0x6961
+0x5C41 0x695E
+0x5C42 0x695D
+0x5C43 0x6981
+0x5C44 0x696A
+0x5C45 0x69B2
+0x5C46 0x69AE
+0x5C47 0x69D0
+0x5C48 0x69BF
+0x5C49 0x69C1
+0x5C4A 0x69D3
+0x5C4B 0x69BE
+0x5C4C 0x69CE
+0x5C4D 0x5BE8
+0x5C4E 0x69CA
+0x5C4F 0x69DD
+0x5C50 0x69BB
+0x5C51 0x69C3
+0x5C52 0x69A7
+0x5C53 0x6A2E
+0x5C54 0x6991
+0x5C55 0x69A0
+0x5C56 0x699C
+0x5C57 0x6995
+0x5C58 0x69B4
+0x5C59 0x69DE
+0x5C5A 0x69E8
+0x5C5B 0x6A02
+0x5C5C 0x6A1B
+0x5C5D 0x69FF
+0x5C5E 0x6B0A
+0x5C5F 0x69F9
+0x5C60 0x69F2
+0x5C61 0x69E7
+0x5C62 0x6A05
+0x5C63 0x69B1
+0x5C64 0x6A1E
+0x5C65 0x69ED
+0x5C66 0x6A14
+0x5C67 0x69EB
+0x5C68 0x6A0A
+0x5C69 0x6A12
+0x5C6A 0x6AC1
+0x5C6B 0x6A23
+0x5C6C 0x6A13
+0x5C6D 0x6A44
+0x5C6E 0x6A0C
+0x5C6F 0x6A72
+0x5C70 0x6A36
+0x5C71 0x6A78
+0x5C72 0x6A47
+0x5C73 0x6A62
+0x5C74 0x6A59
+0x5C75 0x6A66
+0x5C76 0x6A48
+0x5C77 0x6A38
+0x5C78 0x6A22
+0x5C79 0x6A90
+0x5C7A 0x6A8D
+0x5C7B 0x6AA0
+0x5C7C 0x6A84
+0x5C7D 0x6AA2
+0x5C7E 0x6AA3
+0x5D21 0x6A97
+0x5D22 0x8617
+0x5D23 0x6ABB
+0x5D24 0x6AC3
+0x5D25 0x6AC2
+0x5D26 0x6AB8
+0x5D27 0x6AB3
+0x5D28 0x6AAC
+0x5D29 0x6ADE
+0x5D2A 0x6AD1
+0x5D2B 0x6ADF
+0x5D2C 0x6AAA
+0x5D2D 0x6ADA
+0x5D2E 0x6AEA
+0x5D2F 0x6AFB
+0x5D30 0x6B05
+0x5D31 0x8616
+0x5D32 0x6AFA
+0x5D33 0x6B12
+0x5D34 0x6B16
+0x5D35 0x9B31
+0x5D36 0x6B1F
+0x5D37 0x6B38
+0x5D38 0x6B37
+0x5D39 0x76DC
+0x5D3A 0x6B39
+0x5D3B 0x98EE
+0x5D3C 0x6B47
+0x5D3D 0x6B43
+0x5D3E 0x6B49
+0x5D3F 0x6B50
+0x5D40 0x6B59
+0x5D41 0x6B54
+0x5D42 0x6B5B
+0x5D43 0x6B5F
+0x5D44 0x6B61
+0x5D45 0x6B78
+0x5D46 0x6B79
+0x5D47 0x6B7F
+0x5D48 0x6B80
+0x5D49 0x6B84
+0x5D4A 0x6B83
+0x5D4B 0x6B8D
+0x5D4C 0x6B98
+0x5D4D 0x6B95
+0x5D4E 0x6B9E
+0x5D4F 0x6BA4
+0x5D50 0x6BAA
+0x5D51 0x6BAB
+0x5D52 0x6BAF
+0x5D53 0x6BB2
+0x5D54 0x6BB1
+0x5D55 0x6BB3
+0x5D56 0x6BB7
+0x5D57 0x6BBC
+0x5D58 0x6BC6
+0x5D59 0x6BCB
+0x5D5A 0x6BD3
+0x5D5B 0x6BDF
+0x5D5C 0x6BEC
+0x5D5D 0x6BEB
+0x5D5E 0x6BF3
+0x5D5F 0x6BEF
+0x5D60 0x9EBE
+0x5D61 0x6C08
+0x5D62 0x6C13
+0x5D63 0x6C14
+0x5D64 0x6C1B
+0x5D65 0x6C24
+0x5D66 0x6C23
+0x5D67 0x6C5E
+0x5D68 0x6C55
+0x5D69 0x6C62
+0x5D6A 0x6C6A
+0x5D6B 0x6C82
+0x5D6C 0x6C8D
+0x5D6D 0x6C9A
+0x5D6E 0x6C81
+0x5D6F 0x6C9B
+0x5D70 0x6C7E
+0x5D71 0x6C68
+0x5D72 0x6C73
+0x5D73 0x6C92
+0x5D74 0x6C90
+0x5D75 0x6CC4
+0x5D76 0x6CF1
+0x5D77 0x6CD3
+0x5D78 0x6CBD
+0x5D79 0x6CD7
+0x5D7A 0x6CC5
+0x5D7B 0x6CDD
+0x5D7C 0x6CAE
+0x5D7D 0x6CB1
+0x5D7E 0x6CBE
+0x5E21 0x6CBA
+0x5E22 0x6CDB
+0x5E23 0x6CEF
+0x5E24 0x6CD9
+0x5E25 0x6CEA
+0x5E26 0x6D1F
+0x5E27 0x884D
+0x5E28 0x6D36
+0x5E29 0x6D2B
+0x5E2A 0x6D3D
+0x5E2B 0x6D38
+0x5E2C 0x6D19
+0x5E2D 0x6D35
+0x5E2E 0x6D33
+0x5E2F 0x6D12
+0x5E30 0x6D0C
+0x5E31 0x6D63
+0x5E32 0x6D93
+0x5E33 0x6D64
+0x5E34 0x6D5A
+0x5E35 0x6D79
+0x5E36 0x6D59
+0x5E37 0x6D8E
+0x5E38 0x6D95
+0x5E39 0x6D9B
+0x5E3A 0x6D85
+0x5E3B 0x6DF9
+0x5E3C 0x6E15
+0x5E3D 0x6E0A
+0x5E3E 0x6DB5
+0x5E3F 0x6DC7
+0x5E40 0x6DE6
+0x5E41 0x6DB8
+0x5E42 0x6DC6
+0x5E43 0x6DEC
+0x5E44 0x6DDE
+0x5E45 0x6DCC
+0x5E46 0x6DE8
+0x5E47 0x6DD2
+0x5E48 0x6DC5
+0x5E49 0x6DFA
+0x5E4A 0x6DD9
+0x5E4B 0x6DE4
+0x5E4C 0x6DD5
+0x5E4D 0x6DEA
+0x5E4E 0x6DEE
+0x5E4F 0x6E2D
+0x5E50 0x6E6E
+0x5E51 0x6E2E
+0x5E52 0x6E19
+0x5E53 0x6E72
+0x5E54 0x6E5F
+0x5E55 0x6E3E
+0x5E56 0x6E23
+0x5E57 0x6E6B
+0x5E58 0x6E2B
+0x5E59 0x6E76
+0x5E5A 0x6E4D
+0x5E5B 0x6E1F
+0x5E5C 0x6E43
+0x5E5D 0x6E3A
+0x5E5E 0x6E4E
+0x5E5F 0x6E24
+0x5E60 0x6EFF
+0x5E61 0x6E1D
+0x5E62 0x6E38
+0x5E63 0x6E82
+0x5E64 0x6EAA
+0x5E65 0x6E98
+0x5E66 0x6EC9
+0x5E67 0x6EB7
+0x5E68 0x6ED3
+0x5E69 0x6EBD
+0x5E6A 0x6EAF
+0x5E6B 0x6EC4
+0x5E6C 0x6EB2
+0x5E6D 0x6ED4
+0x5E6E 0x6ED5
+0x5E6F 0x6E8F
+0x5E70 0x6EA5
+0x5E71 0x6EC2
+0x5E72 0x6E9F
+0x5E73 0x6F41
+0x5E74 0x6F11
+0x5E75 0x6F45
+0x5E76 0x6EEC
+0x5E77 0x6EF8
+0x5E78 0x6EFE
+0x5E79 0x6F3F
+0x5E7A 0x6EF2
+0x5E7B 0x6F31
+0x5E7C 0x6EEF
+0x5E7D 0x6F32
+0x5E7E 0x6ECC
+0x5F21 0x6F3E
+0x5F22 0x6F13
+0x5F23 0x6EF7
+0x5F24 0x6F86
+0x5F25 0x6F7A
+0x5F26 0x6F78
+0x5F27 0x6F81
+0x5F28 0x6F80
+0x5F29 0x6F6F
+0x5F2A 0x6F5B
+0x5F2B 0x6FF3
+0x5F2C 0x6F6D
+0x5F2D 0x6F82
+0x5F2E 0x6F7C
+0x5F2F 0x6F58
+0x5F30 0x6F8E
+0x5F31 0x6F91
+0x5F32 0x6FC2
+0x5F33 0x6F66
+0x5F34 0x6FB3
+0x5F35 0x6FA3
+0x5F36 0x6FA1
+0x5F37 0x6FA4
+0x5F38 0x6FB9
+0x5F39 0x6FC6
+0x5F3A 0x6FAA
+0x5F3B 0x6FDF
+0x5F3C 0x6FD5
+0x5F3D 0x6FEC
+0x5F3E 0x6FD4
+0x5F3F 0x6FD8
+0x5F40 0x6FF1
+0x5F41 0x6FEE
+0x5F42 0x6FDB
+0x5F43 0x7009
+0x5F44 0x700B
+0x5F45 0x6FFA
+0x5F46 0x7011
+0x5F47 0x7001
+0x5F48 0x700F
+0x5F49 0x6FFE
+0x5F4A 0x701B
+0x5F4B 0x701A
+0x5F4C 0x6F74
+0x5F4D 0x701D
+0x5F4E 0x7018
+0x5F4F 0x701F
+0x5F50 0x7030
+0x5F51 0x703E
+0x5F52 0x7032
+0x5F53 0x7051
+0x5F54 0x7063
+0x5F55 0x7099
+0x5F56 0x7092
+0x5F57 0x70AF
+0x5F58 0x70F1
+0x5F59 0x70AC
+0x5F5A 0x70B8
+0x5F5B 0x70B3
+0x5F5C 0x70AE
+0x5F5D 0x70DF
+0x5F5E 0x70CB
+0x5F5F 0x70DD
+0x5F60 0x70D9
+0x5F61 0x7109
+0x5F62 0x70FD
+0x5F63 0x711C
+0x5F64 0x7119
+0x5F65 0x7165
+0x5F66 0x7155
+0x5F67 0x7188
+0x5F68 0x7166
+0x5F69 0x7162
+0x5F6A 0x714C
+0x5F6B 0x7156
+0x5F6C 0x716C
+0x5F6D 0x718F
+0x5F6E 0x71FB
+0x5F6F 0x7184
+0x5F70 0x7195
+0x5F71 0x71A8
+0x5F72 0x71AC
+0x5F73 0x71D7
+0x5F74 0x71B9
+0x5F75 0x71BE
+0x5F76 0x71D2
+0x5F77 0x71C9
+0x5F78 0x71D4
+0x5F79 0x71CE
+0x5F7A 0x71E0
+0x5F7B 0x71EC
+0x5F7C 0x71E7
+0x5F7D 0x71F5
+0x5F7E 0x71FC
+0x6021 0x71F9
+0x6022 0x71FF
+0x6023 0x720D
+0x6024 0x7210
+0x6025 0x721B
+0x6026 0x7228
+0x6027 0x722D
+0x6028 0x722C
+0x6029 0x7230
+0x602A 0x7232
+0x602B 0x723B
+0x602C 0x723C
+0x602D 0x723F
+0x602E 0x7240
+0x602F 0x7246
+0x6030 0x724B
+0x6031 0x7258
+0x6032 0x7274
+0x6033 0x727E
+0x6034 0x7282
+0x6035 0x7281
+0x6036 0x7287
+0x6037 0x7292
+0x6038 0x7296
+0x6039 0x72A2
+0x603A 0x72A7
+0x603B 0x72B9
+0x603C 0x72B2
+0x603D 0x72C3
+0x603E 0x72C6
+0x603F 0x72C4
+0x6040 0x72CE
+0x6041 0x72D2
+0x6042 0x72E2
+0x6043 0x72E0
+0x6044 0x72E1
+0x6045 0x72F9
+0x6046 0x72F7
+0x6047 0x500F
+0x6048 0x7317
+0x6049 0x730A
+0x604A 0x731C
+0x604B 0x7316
+0x604C 0x731D
+0x604D 0x7334
+0x604E 0x732F
+0x604F 0x7329
+0x6050 0x7325
+0x6051 0x733E
+0x6052 0x734E
+0x6053 0x734F
+0x6054 0x9ED8
+0x6055 0x7357
+0x6056 0x736A
+0x6057 0x7368
+0x6058 0x7370
+0x6059 0x7378
+0x605A 0x7375
+0x605B 0x737B
+0x605C 0x737A
+0x605D 0x73C8
+0x605E 0x73B3
+0x605F 0x73CE
+0x6060 0x73BB
+0x6061 0x73C0
+0x6062 0x73E5
+0x6063 0x73EE
+0x6064 0x73DE
+0x6065 0x74A2
+0x6066 0x7405
+0x6067 0x746F
+0x6068 0x7425
+0x6069 0x73F8
+0x606A 0x7432
+0x606B 0x743A
+0x606C 0x7455
+0x606D 0x743F
+0x606E 0x745F
+0x606F 0x7459
+0x6070 0x7441
+0x6071 0x745C
+0x6072 0x7469
+0x6073 0x7470
+0x6074 0x7463
+0x6075 0x746A
+0x6076 0x7464
+0x6077 0x747E
+0x6078 0x748B
+0x6079 0x749E
+0x607A 0x74A7
+0x607B 0x74CA
+0x607C 0x74CF
+0x607D 0x74D4
+0x607E 0x73F1
+0x6121 0x74E0
+0x6122 0x74E3
+0x6123 0x74E7
+0x6124 0x74E9
+0x6125 0x74EE
+0x6126 0x74F2
+0x6127 0x74F0
+0x6128 0x74F1
+0x6129 0x74F8
+0x612A 0x74F7
+0x612B 0x7504
+0x612C 0x7503
+0x612D 0x7505
+0x612E 0x750C
+0x612F 0x750E
+0x6130 0x750D
+0x6131 0x7515
+0x6132 0x7513
+0x6133 0x751E
+0x6134 0x7526
+0x6135 0x752C
+0x6136 0x753C
+0x6137 0x7544
+0x6138 0x754D
+0x6139 0x754A
+0x613A 0x7549
+0x613B 0x755B
+0x613C 0x7546
+0x613D 0x755A
+0x613E 0x7569
+0x613F 0x7564
+0x6140 0x7567
+0x6141 0x756B
+0x6142 0x756D
+0x6143 0x7578
+0x6144 0x7576
+0x6145 0x7586
+0x6146 0x7587
+0x6147 0x7574
+0x6148 0x758A
+0x6149 0x7589
+0x614A 0x7582
+0x614B 0x7594
+0x614C 0x759A
+0x614D 0x759D
+0x614E 0x75A5
+0x614F 0x75A3
+0x6150 0x75C2
+0x6151 0x75B3
+0x6152 0x75C3
+0x6153 0x75B5
+0x6154 0x75BD
+0x6155 0x75B8
+0x6156 0x75BC
+0x6157 0x75B1
+0x6158 0x75CD
+0x6159 0x75CA
+0x615A 0x75D2
+0x615B 0x75D9
+0x615C 0x75E3
+0x615D 0x75DE
+0x615E 0x75FE
+0x615F 0x75FF
+0x6160 0x75FC
+0x6161 0x7601
+0x6162 0x75F0
+0x6163 0x75FA
+0x6164 0x75F2
+0x6165 0x75F3
+0x6166 0x760B
+0x6167 0x760D
+0x6168 0x7609
+0x6169 0x761F
+0x616A 0x7627
+0x616B 0x7620
+0x616C 0x7621
+0x616D 0x7622
+0x616E 0x7624
+0x616F 0x7634
+0x6170 0x7630
+0x6171 0x763B
+0x6172 0x7647
+0x6173 0x7648
+0x6174 0x7646
+0x6175 0x765C
+0x6176 0x7658
+0x6177 0x7661
+0x6178 0x7662
+0x6179 0x7668
+0x617A 0x7669
+0x617B 0x766A
+0x617C 0x7667
+0x617D 0x766C
+0x617E 0x7670
+0x6221 0x7672
+0x6222 0x7676
+0x6223 0x7678
+0x6224 0x767C
+0x6225 0x7680
+0x6226 0x7683
+0x6227 0x7688
+0x6228 0x768B
+0x6229 0x768E
+0x622A 0x7696
+0x622B 0x7693
+0x622C 0x7699
+0x622D 0x769A
+0x622E 0x76B0
+0x622F 0x76B4
+0x6230 0x76B8
+0x6231 0x76B9
+0x6232 0x76BA
+0x6233 0x76C2
+0x6234 0x76CD
+0x6235 0x76D6
+0x6236 0x76D2
+0x6237 0x76DE
+0x6238 0x76E1
+0x6239 0x76E5
+0x623A 0x76E7
+0x623B 0x76EA
+0x623C 0x862F
+0x623D 0x76FB
+0x623E 0x7708
+0x623F 0x7707
+0x6240 0x7704
+0x6241 0x7729
+0x6242 0x7724
+0x6243 0x771E
+0x6244 0x7725
+0x6245 0x7726
+0x6246 0x771B
+0x6247 0x7737
+0x6248 0x7738
+0x6249 0x7747
+0x624A 0x775A
+0x624B 0x7768
+0x624C 0x776B
+0x624D 0x775B
+0x624E 0x7765
+0x624F 0x777F
+0x6250 0x777E
+0x6251 0x7779
+0x6252 0x778E
+0x6253 0x778B
+0x6254 0x7791
+0x6255 0x77A0
+0x6256 0x779E
+0x6257 0x77B0
+0x6258 0x77B6
+0x6259 0x77B9
+0x625A 0x77BF
+0x625B 0x77BC
+0x625C 0x77BD
+0x625D 0x77BB
+0x625E 0x77C7
+0x625F 0x77CD
+0x6260 0x77D7
+0x6261 0x77DA
+0x6262 0x77DC
+0x6263 0x77E3
+0x6264 0x77EE
+0x6265 0x77FC
+0x6266 0x780C
+0x6267 0x7812
+0x6268 0x783F
+0x6269 0x7820
+0x626A 0x783A
+0x626B 0x7845
+0x626C 0x788E
+0x626D 0x7874
+0x626E 0x7886
+0x626F 0x787C
+0x6270 0x789A
+0x6271 0x788C
+0x6272 0x78A3
+0x6273 0x78B5
+0x6274 0x78AA
+0x6275 0x78AF
+0x6276 0x78D1
+0x6277 0x78C6
+0x6278 0x78CB
+0x6279 0x78D4
+0x627A 0x78BE
+0x627B 0x78BC
+0x627C 0x78C5
+0x627D 0x78CA
+0x627E 0x78EC
+0x6321 0x78E7
+0x6322 0x78DA
+0x6323 0x78FD
+0x6324 0x78F4
+0x6325 0x7907
+0x6326 0x7912
+0x6327 0x7911
+0x6328 0x7919
+0x6329 0x792C
+0x632A 0x792B
+0x632B 0x7940
+0x632C 0x7960
+0x632D 0x7957
+0x632E 0x795F
+0x632F 0x795A
+0x6330 0x7955
+0x6331 0x7953
+0x6332 0x797A
+0x6333 0x797F
+0x6334 0x798A
+0x6335 0x799D
+0x6336 0x79A7
+0x6337 0x9F4B
+0x6338 0x79AA
+0x6339 0x79AE
+0x633A 0x79B3
+0x633B 0x79B9
+0x633C 0x79BA
+0x633D 0x79C9
+0x633E 0x79D5
+0x633F 0x79E7
+0x6340 0x79EC
+0x6341 0x79E1
+0x6342 0x79E3
+0x6343 0x7A08
+0x6344 0x7A0D
+0x6345 0x7A18
+0x6346 0x7A19
+0x6347 0x7A20
+0x6348 0x7A1F
+0x6349 0x7980
+0x634A 0x7A31
+0x634B 0x7A3B
+0x634C 0x7A3E
+0x634D 0x7A37
+0x634E 0x7A43
+0x634F 0x7A57
+0x6350 0x7A49
+0x6351 0x7A61
+0x6352 0x7A62
+0x6353 0x7A69
+0x6354 0x9F9D
+0x6355 0x7A70
+0x6356 0x7A79
+0x6357 0x7A7D
+0x6358 0x7A88
+0x6359 0x7A97
+0x635A 0x7A95
+0x635B 0x7A98
+0x635C 0x7A96
+0x635D 0x7AA9
+0x635E 0x7AC3
+0x635F 0x7AB0
+0x6360 0x7AB6
+0x6361 0x7AC5
+0x6362 0x7AC4
+0x6363 0x7ABF
+0x6364 0x9083
+0x6365 0x7AC7
+0x6366 0x7ACA
+0x6367 0x7ACD
+0x6368 0x7ACF
+0x6369 0x7AD5
+0x636A 0x7AD3
+0x636B 0x7AD9
+0x636C 0x7ADA
+0x636D 0x7ADD
+0x636E 0x7AE1
+0x636F 0x7AE2
+0x6370 0x7AE6
+0x6371 0x7AED
+0x6372 0x7AF0
+0x6373 0x7B02
+0x6374 0x7B0F
+0x6375 0x7B0A
+0x6376 0x7B06
+0x6377 0x7B33
+0x6378 0x7B18
+0x6379 0x7B19
+0x637A 0x7B1E
+0x637B 0x7B35
+0x637C 0x7B28
+0x637D 0x7B36
+0x637E 0x7B50
+0x6421 0x7B7A
+0x6422 0x7B04
+0x6423 0x7B4D
+0x6424 0x7B0B
+0x6425 0x7B4C
+0x6426 0x7B45
+0x6427 0x7B75
+0x6428 0x7B65
+0x6429 0x7B74
+0x642A 0x7B67
+0x642B 0x7B70
+0x642C 0x7B71
+0x642D 0x7B6C
+0x642E 0x7B6E
+0x642F 0x7B9D
+0x6430 0x7B98
+0x6431 0x7B9F
+0x6432 0x7B8D
+0x6433 0x7B9C
+0x6434 0x7B9A
+0x6435 0x7B8B
+0x6436 0x7B92
+0x6437 0x7B8F
+0x6438 0x7B5D
+0x6439 0x7B99
+0x643A 0x7BCB
+0x643B 0x7BC1
+0x643C 0x7BCC
+0x643D 0x7BCF
+0x643E 0x7BB4
+0x643F 0x7BC6
+0x6440 0x7BDD
+0x6441 0x7BE9
+0x6442 0x7C11
+0x6443 0x7C14
+0x6444 0x7BE6
+0x6445 0x7BE5
+0x6446 0x7BED
+0x6447 0x7C00
+0x6448 0x7C07
+0x6449 0x7C13
+0x644A 0x7BF3
+0x644B 0x7BF7
+0x644C 0x7C17
+0x644D 0x7C0D
+0x644E 0x7BF6
+0x644F 0x7C23
+0x6450 0x7C27
+0x6451 0x7C2A
+0x6452 0x7C1F
+0x6453 0x7C37
+0x6454 0x7C2B
+0x6455 0x7C3D
+0x6456 0x7C4C
+0x6457 0x7C43
+0x6458 0x7C54
+0x6459 0x7C4F
+0x645A 0x7C40
+0x645B 0x7C50
+0x645C 0x7C58
+0x645D 0x7C5F
+0x645E 0x7C64
+0x645F 0x7C56
+0x6460 0x7C65
+0x6461 0x7C6C
+0x6462 0x7C75
+0x6463 0x7C83
+0x6464 0x7C90
+0x6465 0x7CA4
+0x6466 0x7CAD
+0x6467 0x7CA2
+0x6468 0x7CAB
+0x6469 0x7CA1
+0x646A 0x7CA8
+0x646B 0x7CB3
+0x646C 0x7CB2
+0x646D 0x7CB1
+0x646E 0x7CAE
+0x646F 0x7CB9
+0x6470 0x7CBD
+0x6471 0x7CC0
+0x6472 0x7CC5
+0x6473 0x7CC2
+0x6474 0x7CD8
+0x6475 0x7CD2
+0x6476 0x7CDC
+0x6477 0x7CE2
+0x6478 0x9B3B
+0x6479 0x7CEF
+0x647A 0x7CF2
+0x647B 0x7CF4
+0x647C 0x7CF6
+0x647D 0x7CFA
+0x647E 0x7D06
+0x6521 0x7D02
+0x6522 0x7D1C
+0x6523 0x7D15
+0x6524 0x7D0A
+0x6525 0x7D45
+0x6526 0x7D4B
+0x6527 0x7D2E
+0x6528 0x7D32
+0x6529 0x7D3F
+0x652A 0x7D35
+0x652B 0x7D46
+0x652C 0x7D73
+0x652D 0x7D56
+0x652E 0x7D4E
+0x652F 0x7D72
+0x6530 0x7D68
+0x6531 0x7D6E
+0x6532 0x7D4F
+0x6533 0x7D63
+0x6534 0x7D93
+0x6535 0x7D89
+0x6536 0x7D5B
+0x6537 0x7D8F
+0x6538 0x7D7D
+0x6539 0x7D9B
+0x653A 0x7DBA
+0x653B 0x7DAE
+0x653C 0x7DA3
+0x653D 0x7DB5
+0x653E 0x7DC7
+0x653F 0x7DBD
+0x6540 0x7DAB
+0x6541 0x7E3D
+0x6542 0x7DA2
+0x6543 0x7DAF
+0x6544 0x7DDC
+0x6545 0x7DB8
+0x6546 0x7D9F
+0x6547 0x7DB0
+0x6548 0x7DD8
+0x6549 0x7DDD
+0x654A 0x7DE4
+0x654B 0x7DDE
+0x654C 0x7DFB
+0x654D 0x7DF2
+0x654E 0x7DE1
+0x654F 0x7E05
+0x6550 0x7E0A
+0x6551 0x7E23
+0x6552 0x7E21
+0x6553 0x7E12
+0x6554 0x7E31
+0x6555 0x7E1F
+0x6556 0x7E09
+0x6557 0x7E0B
+0x6558 0x7E22
+0x6559 0x7E46
+0x655A 0x7E66
+0x655B 0x7E3B
+0x655C 0x7E35
+0x655D 0x7E39
+0x655E 0x7E43
+0x655F 0x7E37
+0x6560 0x7E32
+0x6561 0x7E3A
+0x6562 0x7E67
+0x6563 0x7E5D
+0x6564 0x7E56
+0x6565 0x7E5E
+0x6566 0x7E59
+0x6567 0x7E5A
+0x6568 0x7E79
+0x6569 0x7E6A
+0x656A 0x7E69
+0x656B 0x7E7C
+0x656C 0x7E7B
+0x656D 0x7E83
+0x656E 0x7DD5
+0x656F 0x7E7D
+0x6570 0x8FAE
+0x6571 0x7E7F
+0x6572 0x7E88
+0x6573 0x7E89
+0x6574 0x7E8C
+0x6575 0x7E92
+0x6576 0x7E90
+0x6577 0x7E93
+0x6578 0x7E94
+0x6579 0x7E96
+0x657A 0x7E8E
+0x657B 0x7E9B
+0x657C 0x7E9C
+0x657D 0x7F38
+0x657E 0x7F3A
+0x6621 0x7F45
+0x6622 0x7F4C
+0x6623 0x7F4D
+0x6624 0x7F4E
+0x6625 0x7F50
+0x6626 0x7F51
+0x6627 0x7F55
+0x6628 0x7F54
+0x6629 0x7F58
+0x662A 0x7F5F
+0x662B 0x7F60
+0x662C 0x7F68
+0x662D 0x7F69
+0x662E 0x7F67
+0x662F 0x7F78
+0x6630 0x7F82
+0x6631 0x7F86
+0x6632 0x7F83
+0x6633 0x7F88
+0x6634 0x7F87
+0x6635 0x7F8C
+0x6636 0x7F94
+0x6637 0x7F9E
+0x6638 0x7F9D
+0x6639 0x7F9A
+0x663A 0x7FA3
+0x663B 0x7FAF
+0x663C 0x7FB2
+0x663D 0x7FB9
+0x663E 0x7FAE
+0x663F 0x7FB6
+0x6640 0x7FB8
+0x6641 0x8B71
+0x6642 0x7FC5
+0x6643 0x7FC6
+0x6644 0x7FCA
+0x6645 0x7FD5
+0x6646 0x7FD4
+0x6647 0x7FE1
+0x6648 0x7FE6
+0x6649 0x7FE9
+0x664A 0x7FF3
+0x664B 0x7FF9
+0x664C 0x98DC
+0x664D 0x8006
+0x664E 0x8004
+0x664F 0x800B
+0x6650 0x8012
+0x6651 0x8018
+0x6652 0x8019
+0x6653 0x801C
+0x6654 0x8021
+0x6655 0x8028
+0x6656 0x803F
+0x6657 0x803B
+0x6658 0x804A
+0x6659 0x8046
+0x665A 0x8052
+0x665B 0x8058
+0x665C 0x805A
+0x665D 0x805F
+0x665E 0x8062
+0x665F 0x8068
+0x6660 0x8073
+0x6661 0x8072
+0x6662 0x8070
+0x6663 0x8076
+0x6664 0x8079
+0x6665 0x807D
+0x6666 0x807F
+0x6667 0x8084
+0x6668 0x8086
+0x6669 0x8085
+0x666A 0x809B
+0x666B 0x8093
+0x666C 0x809A
+0x666D 0x80AD
+0x666E 0x5190
+0x666F 0x80AC
+0x6670 0x80DB
+0x6671 0x80E5
+0x6672 0x80D9
+0x6673 0x80DD
+0x6674 0x80C4
+0x6675 0x80DA
+0x6676 0x80D6
+0x6677 0x8109
+0x6678 0x80EF
+0x6679 0x80F1
+0x667A 0x811B
+0x667B 0x8129
+0x667C 0x8123
+0x667D 0x812F
+0x667E 0x814B
+0x6721 0x968B
+0x6722 0x8146
+0x6723 0x813E
+0x6724 0x8153
+0x6725 0x8151
+0x6726 0x80FC
+0x6727 0x8171
+0x6728 0x816E
+0x6729 0x8165
+0x672A 0x8166
+0x672B 0x8174
+0x672C 0x8183
+0x672D 0x8188
+0x672E 0x818A
+0x672F 0x8180
+0x6730 0x8182
+0x6731 0x81A0
+0x6732 0x8195
+0x6733 0x81A4
+0x6734 0x81A3
+0x6735 0x815F
+0x6736 0x8193
+0x6737 0x81A9
+0x6738 0x81B0
+0x6739 0x81B5
+0x673A 0x81BE
+0x673B 0x81B8
+0x673C 0x81BD
+0x673D 0x81C0
+0x673E 0x81C2
+0x673F 0x81BA
+0x6740 0x81C9
+0x6741 0x81CD
+0x6742 0x81D1
+0x6743 0x81D9
+0x6744 0x81D8
+0x6745 0x81C8
+0x6746 0x81DA
+0x6747 0x81DF
+0x6748 0x81E0
+0x6749 0x81E7
+0x674A 0x81FA
+0x674B 0x81FB
+0x674C 0x81FE
+0x674D 0x8201
+0x674E 0x8202
+0x674F 0x8205
+0x6750 0x8207
+0x6751 0x820A
+0x6752 0x820D
+0x6753 0x8210
+0x6754 0x8216
+0x6755 0x8229
+0x6756 0x822B
+0x6757 0x8238
+0x6758 0x8233
+0x6759 0x8240
+0x675A 0x8259
+0x675B 0x8258
+0x675C 0x825D
+0x675D 0x825A
+0x675E 0x825F
+0x675F 0x8264
+0x6760 0x8262
+0x6761 0x8268
+0x6762 0x826A
+0x6763 0x826B
+0x6764 0x822E
+0x6765 0x8271
+0x6766 0x8277
+0x6767 0x8278
+0x6768 0x827E
+0x6769 0x828D
+0x676A 0x8292
+0x676B 0x82AB
+0x676C 0x829F
+0x676D 0x82BB
+0x676E 0x82AC
+0x676F 0x82E1
+0x6770 0x82E3
+0x6771 0x82DF
+0x6772 0x82D2
+0x6773 0x82F4
+0x6774 0x82F3
+0x6775 0x82FA
+0x6776 0x8393
+0x6777 0x8303
+0x6778 0x82FB
+0x6779 0x82F9
+0x677A 0x82DE
+0x677B 0x8306
+0x677C 0x82DC
+0x677D 0x8309
+0x677E 0x82D9
+0x6821 0x8335
+0x6822 0x8334
+0x6823 0x8316
+0x6824 0x8332
+0x6825 0x8331
+0x6826 0x8340
+0x6827 0x8339
+0x6828 0x8350
+0x6829 0x8345
+0x682A 0x832F
+0x682B 0x832B
+0x682C 0x8317
+0x682D 0x8318
+0x682E 0x8385
+0x682F 0x839A
+0x6830 0x83AA
+0x6831 0x839F
+0x6832 0x83A2
+0x6833 0x8396
+0x6834 0x8323
+0x6835 0x838E
+0x6836 0x8387
+0x6837 0x838A
+0x6838 0x837C
+0x6839 0x83B5
+0x683A 0x8373
+0x683B 0x8375
+0x683C 0x83A0
+0x683D 0x8389
+0x683E 0x83A8
+0x683F 0x83F4
+0x6840 0x8413
+0x6841 0x83EB
+0x6842 0x83CE
+0x6843 0x83FD
+0x6844 0x8403
+0x6845 0x83D8
+0x6846 0x840B
+0x6847 0x83C1
+0x6848 0x83F7
+0x6849 0x8407
+0x684A 0x83E0
+0x684B 0x83F2
+0x684C 0x840D
+0x684D 0x8422
+0x684E 0x8420
+0x684F 0x83BD
+0x6850 0x8438
+0x6851 0x8506
+0x6852 0x83FB
+0x6853 0x846D
+0x6854 0x842A
+0x6855 0x843C
+0x6856 0x855A
+0x6857 0x8484
+0x6858 0x8477
+0x6859 0x846B
+0x685A 0x84AD
+0x685B 0x846E
+0x685C 0x8482
+0x685D 0x8469
+0x685E 0x8446
+0x685F 0x842C
+0x6860 0x846F
+0x6861 0x8479
+0x6862 0x8435
+0x6863 0x84CA
+0x6864 0x8462
+0x6865 0x84B9
+0x6866 0x84BF
+0x6867 0x849F
+0x6868 0x84D9
+0x6869 0x84CD
+0x686A 0x84BB
+0x686B 0x84DA
+0x686C 0x84D0
+0x686D 0x84C1
+0x686E 0x84C6
+0x686F 0x84D6
+0x6870 0x84A1
+0x6871 0x8521
+0x6872 0x84FF
+0x6873 0x84F4
+0x6874 0x8517
+0x6875 0x8518
+0x6876 0x852C
+0x6877 0x851F
+0x6878 0x8515
+0x6879 0x8514
+0x687A 0x84FC
+0x687B 0x8540
+0x687C 0x8563
+0x687D 0x8558
+0x687E 0x8548
+0x6921 0x8541
+0x6922 0x854A
+0x6923 0x854B
+0x6924 0x8555
+0x6925 0x8580
+0x6926 0x85A4
+0x6927 0x8588
+0x6928 0x8591
+0x6929 0x858A
+0x692A 0x85A8
+0x692B 0x856D
+0x692C 0x8594
+0x692D 0x859B
+0x692E 0x85AE
+0x692F 0x8587
+0x6930 0x859C
+0x6931 0x8577
+0x6932 0x857E
+0x6933 0x8590
+0x6934 0x85C9
+0x6935 0x85BA
+0x6936 0x85CF
+0x6937 0x85B9
+0x6938 0x85D0
+0x6939 0x85D5
+0x693A 0x85DD
+0x693B 0x85E5
+0x693C 0x85DC
+0x693D 0x85F9
+0x693E 0x860A
+0x693F 0x8613
+0x6940 0x860B
+0x6941 0x85FE
+0x6942 0x85FA
+0x6943 0x8606
+0x6944 0x8622
+0x6945 0x861A
+0x6946 0x8630
+0x6947 0x863F
+0x6948 0x864D
+0x6949 0x4E55
+0x694A 0x8654
+0x694B 0x865F
+0x694C 0x8667
+0x694D 0x8671
+0x694E 0x8693
+0x694F 0x86A3
+0x6950 0x86A9
+0x6951 0x86AA
+0x6952 0x868B
+0x6953 0x868C
+0x6954 0x86B6
+0x6955 0x86AF
+0x6956 0x86C4
+0x6957 0x86C6
+0x6958 0x86B0
+0x6959 0x86C9
+0x695A 0x86CE
+0x695B 0x86AB
+0x695C 0x86D4
+0x695D 0x86DE
+0x695E 0x86E9
+0x695F 0x86EC
+0x6960 0x86DF
+0x6961 0x86DB
+0x6962 0x86EF
+0x6963 0x8712
+0x6964 0x8706
+0x6965 0x8708
+0x6966 0x8700
+0x6967 0x8703
+0x6968 0x86FB
+0x6969 0x8711
+0x696A 0x8709
+0x696B 0x870D
+0x696C 0x86F9
+0x696D 0x870A
+0x696E 0x8734
+0x696F 0x873F
+0x6970 0x8737
+0x6971 0x873B
+0x6972 0x8725
+0x6973 0x8729
+0x6974 0x871A
+0x6975 0x8760
+0x6976 0x875F
+0x6977 0x8778
+0x6978 0x874C
+0x6979 0x874E
+0x697A 0x8774
+0x697B 0x8757
+0x697C 0x8768
+0x697D 0x876E
+0x697E 0x8759
+0x6A21 0x8753
+0x6A22 0x8763
+0x6A23 0x876A
+0x6A24 0x877F
+0x6A25 0x87A2
+0x6A26 0x879F
+0x6A27 0x8782
+0x6A28 0x87AF
+0x6A29 0x87CB
+0x6A2A 0x87BD
+0x6A2B 0x87C0
+0x6A2C 0x87D0
+0x6A2D 0x96D6
+0x6A2E 0x87AB
+0x6A2F 0x87C4
+0x6A30 0x87B3
+0x6A31 0x87C7
+0x6A32 0x87C6
+0x6A33 0x87BB
+0x6A34 0x87EF
+0x6A35 0x87F2
+0x6A36 0x87E0
+0x6A37 0x880F
+0x6A38 0x880D
+0x6A39 0x87FE
+0x6A3A 0x87F6
+0x6A3B 0x87F7
+0x6A3C 0x880E
+0x6A3D 0x87D2
+0x6A3E 0x8811
+0x6A3F 0x8816
+0x6A40 0x8815
+0x6A41 0x8822
+0x6A42 0x8821
+0x6A43 0x8831
+0x6A44 0x8836
+0x6A45 0x8839
+0x6A46 0x8827
+0x6A47 0x883B
+0x6A48 0x8844
+0x6A49 0x8842
+0x6A4A 0x8852
+0x6A4B 0x8859
+0x6A4C 0x885E
+0x6A4D 0x8862
+0x6A4E 0x886B
+0x6A4F 0x8881
+0x6A50 0x887E
+0x6A51 0x889E
+0x6A52 0x8875
+0x6A53 0x887D
+0x6A54 0x88B5
+0x6A55 0x8872
+0x6A56 0x8882
+0x6A57 0x8897
+0x6A58 0x8892
+0x6A59 0x88AE
+0x6A5A 0x8899
+0x6A5B 0x88A2
+0x6A5C 0x888D
+0x6A5D 0x88A4
+0x6A5E 0x88B0
+0x6A5F 0x88BF
+0x6A60 0x88B1
+0x6A61 0x88C3
+0x6A62 0x88C4
+0x6A63 0x88D4
+0x6A64 0x88D8
+0x6A65 0x88D9
+0x6A66 0x88DD
+0x6A67 0x88F9
+0x6A68 0x8902
+0x6A69 0x88FC
+0x6A6A 0x88F4
+0x6A6B 0x88E8
+0x6A6C 0x88F2
+0x6A6D 0x8904
+0x6A6E 0x890C
+0x6A6F 0x890A
+0x6A70 0x8913
+0x6A71 0x8943
+0x6A72 0x891E
+0x6A73 0x8925
+0x6A74 0x892A
+0x6A75 0x892B
+0x6A76 0x8941
+0x6A77 0x8944
+0x6A78 0x893B
+0x6A79 0x8936
+0x6A7A 0x8938
+0x6A7B 0x894C
+0x6A7C 0x891D
+0x6A7D 0x8960
+0x6A7E 0x895E
+0x6B21 0x8966
+0x6B22 0x8964
+0x6B23 0x896D
+0x6B24 0x896A
+0x6B25 0x896F
+0x6B26 0x8974
+0x6B27 0x8977
+0x6B28 0x897E
+0x6B29 0x8983
+0x6B2A 0x8988
+0x6B2B 0x898A
+0x6B2C 0x8993
+0x6B2D 0x8998
+0x6B2E 0x89A1
+0x6B2F 0x89A9
+0x6B30 0x89A6
+0x6B31 0x89AC
+0x6B32 0x89AF
+0x6B33 0x89B2
+0x6B34 0x89BA
+0x6B35 0x89BD
+0x6B36 0x89BF
+0x6B37 0x89C0
+0x6B38 0x89DA
+0x6B39 0x89DC
+0x6B3A 0x89DD
+0x6B3B 0x89E7
+0x6B3C 0x89F4
+0x6B3D 0x89F8
+0x6B3E 0x8A03
+0x6B3F 0x8A16
+0x6B40 0x8A10
+0x6B41 0x8A0C
+0x6B42 0x8A1B
+0x6B43 0x8A1D
+0x6B44 0x8A25
+0x6B45 0x8A36
+0x6B46 0x8A41
+0x6B47 0x8A5B
+0x6B48 0x8A52
+0x6B49 0x8A46
+0x6B4A 0x8A48
+0x6B4B 0x8A7C
+0x6B4C 0x8A6D
+0x6B4D 0x8A6C
+0x6B4E 0x8A62
+0x6B4F 0x8A85
+0x6B50 0x8A82
+0x6B51 0x8A84
+0x6B52 0x8AA8
+0x6B53 0x8AA1
+0x6B54 0x8A91
+0x6B55 0x8AA5
+0x6B56 0x8AA6
+0x6B57 0x8A9A
+0x6B58 0x8AA3
+0x6B59 0x8AC4
+0x6B5A 0x8ACD
+0x6B5B 0x8AC2
+0x6B5C 0x8ADA
+0x6B5D 0x8ACC
+0x6B5E 0x8AF3
+0x6B5F 0x8AE7
+0x6B60 0x8AE4
+0x6B61 0x8AF1
+0x6B62 0x8B14
+0x6B63 0x8AE0
+0x6B64 0x8AE2
+0x6B65 0x8AF7
+0x6B66 0x8ADE
+0x6B67 0x8ADB
+0x6B68 0x8B0C
+0x6B69 0x8B07
+0x6B6A 0x8B1A
+0x6B6B 0x8AE1
+0x6B6C 0x8B16
+0x6B6D 0x8B10
+0x6B6E 0x8B17
+0x6B6F 0x8B20
+0x6B70 0x8B33
+0x6B71 0x97AB
+0x6B72 0x8B26
+0x6B73 0x8B2B
+0x6B74 0x8B3E
+0x6B75 0x8B28
+0x6B76 0x8B41
+0x6B77 0x8B4C
+0x6B78 0x8B4F
+0x6B79 0x8B4E
+0x6B7A 0x8B49
+0x6B7B 0x8B56
+0x6B7C 0x8B5B
+0x6B7D 0x8B5A
+0x6B7E 0x8B6B
+0x6C21 0x8B5F
+0x6C22 0x8B6C
+0x6C23 0x8B6F
+0x6C24 0x8B74
+0x6C25 0x8B7D
+0x6C26 0x8B80
+0x6C27 0x8B8C
+0x6C28 0x8B8E
+0x6C29 0x8B92
+0x6C2A 0x8B93
+0x6C2B 0x8B96
+0x6C2C 0x8B99
+0x6C2D 0x8B9A
+0x6C2E 0x8C3A
+0x6C2F 0x8C41
+0x6C30 0x8C3F
+0x6C31 0x8C48
+0x6C32 0x8C4C
+0x6C33 0x8C4E
+0x6C34 0x8C50
+0x6C35 0x8C55
+0x6C36 0x8C62
+0x6C37 0x8C6C
+0x6C38 0x8C78
+0x6C39 0x8C7A
+0x6C3A 0x8C82
+0x6C3B 0x8C89
+0x6C3C 0x8C85
+0x6C3D 0x8C8A
+0x6C3E 0x8C8D
+0x6C3F 0x8C8E
+0x6C40 0x8C94
+0x6C41 0x8C7C
+0x6C42 0x8C98
+0x6C43 0x621D
+0x6C44 0x8CAD
+0x6C45 0x8CAA
+0x6C46 0x8CBD
+0x6C47 0x8CB2
+0x6C48 0x8CB3
+0x6C49 0x8CAE
+0x6C4A 0x8CB6
+0x6C4B 0x8CC8
+0x6C4C 0x8CC1
+0x6C4D 0x8CCE
+0x6C4E 0x8CE3
+0x6C4F 0x8CDA
+0x6C50 0x8CFD
+0x6C51 0x8CFA
+0x6C52 0x8CFB
+0x6C53 0x8D04
+0x6C54 0x8D05
+0x6C55 0x8D0A
+0x6C56 0x8D07
+0x6C57 0x8D0F
+0x6C58 0x8D0D
+0x6C59 0x8D10
+0x6C5A 0x9F4E
+0x6C5B 0x8D13
+0x6C5C 0x8CCD
+0x6C5D 0x8D14
+0x6C5E 0x8D16
+0x6C5F 0x8D67
+0x6C60 0x8D6D
+0x6C61 0x8D71
+0x6C62 0x8D73
+0x6C63 0x8D81
+0x6C64 0x8D99
+0x6C65 0x8DC2
+0x6C66 0x8DBE
+0x6C67 0x8DBA
+0x6C68 0x8DCF
+0x6C69 0x8DDA
+0x6C6A 0x8DD6
+0x6C6B 0x8DCC
+0x6C6C 0x8DDB
+0x6C6D 0x8DCB
+0x6C6E 0x8DEA
+0x6C6F 0x8DEB
+0x6C70 0x8DDF
+0x6C71 0x8DE3
+0x6C72 0x8DFC
+0x6C73 0x8E08
+0x6C74 0x8E09
+0x6C75 0x8DFF
+0x6C76 0x8E1D
+0x6C77 0x8E1E
+0x6C78 0x8E10
+0x6C79 0x8E1F
+0x6C7A 0x8E42
+0x6C7B 0x8E35
+0x6C7C 0x8E30
+0x6C7D 0x8E34
+0x6C7E 0x8E4A
+0x6D21 0x8E47
+0x6D22 0x8E49
+0x6D23 0x8E4C
+0x6D24 0x8E50
+0x6D25 0x8E48
+0x6D26 0x8E59
+0x6D27 0x8E64
+0x6D28 0x8E60
+0x6D29 0x8E2A
+0x6D2A 0x8E63
+0x6D2B 0x8E55
+0x6D2C 0x8E76
+0x6D2D 0x8E72
+0x6D2E 0x8E7C
+0x6D2F 0x8E81
+0x6D30 0x8E87
+0x6D31 0x8E85
+0x6D32 0x8E84
+0x6D33 0x8E8B
+0x6D34 0x8E8A
+0x6D35 0x8E93
+0x6D36 0x8E91
+0x6D37 0x8E94
+0x6D38 0x8E99
+0x6D39 0x8EAA
+0x6D3A 0x8EA1
+0x6D3B 0x8EAC
+0x6D3C 0x8EB0
+0x6D3D 0x8EC6
+0x6D3E 0x8EB1
+0x6D3F 0x8EBE
+0x6D40 0x8EC5
+0x6D41 0x8EC8
+0x6D42 0x8ECB
+0x6D43 0x8EDB
+0x6D44 0x8EE3
+0x6D45 0x8EFC
+0x6D46 0x8EFB
+0x6D47 0x8EEB
+0x6D48 0x8EFE
+0x6D49 0x8F0A
+0x6D4A 0x8F05
+0x6D4B 0x8F15
+0x6D4C 0x8F12
+0x6D4D 0x8F19
+0x6D4E 0x8F13
+0x6D4F 0x8F1C
+0x6D50 0x8F1F
+0x6D51 0x8F1B
+0x6D52 0x8F0C
+0x6D53 0x8F26
+0x6D54 0x8F33
+0x6D55 0x8F3B
+0x6D56 0x8F39
+0x6D57 0x8F45
+0x6D58 0x8F42
+0x6D59 0x8F3E
+0x6D5A 0x8F4C
+0x6D5B 0x8F49
+0x6D5C 0x8F46
+0x6D5D 0x8F4E
+0x6D5E 0x8F57
+0x6D5F 0x8F5C
+0x6D60 0x8F62
+0x6D61 0x8F63
+0x6D62 0x8F64
+0x6D63 0x8F9C
+0x6D64 0x8F9F
+0x6D65 0x8FA3
+0x6D66 0x8FAD
+0x6D67 0x8FAF
+0x6D68 0x8FB7
+0x6D69 0x8FDA
+0x6D6A 0x8FE5
+0x6D6B 0x8FE2
+0x6D6C 0x8FEA
+0x6D6D 0x8FEF
+0x6D6E 0x8FE9
+0x6D6F 0x8FF4
+0x6D70 0x9005
+0x6D71 0x8FF9
+0x6D72 0x8FFA
+0x6D73 0x9011
+0x6D74 0x9015
+0x6D75 0x9021
+0x6D76 0x900D
+0x6D77 0x901E
+0x6D78 0x9016
+0x6D79 0x900B
+0x6D7A 0x9027
+0x6D7B 0x9036
+0x6D7C 0x9035
+0x6D7D 0x9039
+0x6D7E 0x8FF8
+0x6E21 0x904F
+0x6E22 0x9050
+0x6E23 0x9051
+0x6E24 0x9052
+0x6E25 0x900E
+0x6E26 0x9049
+0x6E27 0x903E
+0x6E28 0x9056
+0x6E29 0x9058
+0x6E2A 0x905E
+0x6E2B 0x9068
+0x6E2C 0x906F
+0x6E2D 0x9076
+0x6E2E 0x96A8
+0x6E2F 0x9072
+0x6E30 0x9082
+0x6E31 0x907D
+0x6E32 0x9081
+0x6E33 0x9080
+0x6E34 0x908A
+0x6E35 0x9089
+0x6E36 0x908F
+0x6E37 0x90A8
+0x6E38 0x90AF
+0x6E39 0x90B1
+0x6E3A 0x90B5
+0x6E3B 0x90E2
+0x6E3C 0x90E4
+0x6E3D 0x6248
+0x6E3E 0x90DB
+0x6E3F 0x9102
+0x6E40 0x9112
+0x6E41 0x9119
+0x6E42 0x9132
+0x6E43 0x9130
+0x6E44 0x914A
+0x6E45 0x9156
+0x6E46 0x9158
+0x6E47 0x9163
+0x6E48 0x9165
+0x6E49 0x9169
+0x6E4A 0x9173
+0x6E4B 0x9172
+0x6E4C 0x918B
+0x6E4D 0x9189
+0x6E4E 0x9182
+0x6E4F 0x91A2
+0x6E50 0x91AB
+0x6E51 0x91AF
+0x6E52 0x91AA
+0x6E53 0x91B5
+0x6E54 0x91B4
+0x6E55 0x91BA
+0x6E56 0x91C0
+0x6E57 0x91C1
+0x6E58 0x91C9
+0x6E59 0x91CB
+0x6E5A 0x91D0
+0x6E5B 0x91D6
+0x6E5C 0x91DF
+0x6E5D 0x91E1
+0x6E5E 0x91DB
+0x6E5F 0x91FC
+0x6E60 0x91F5
+0x6E61 0x91F6
+0x6E62 0x921E
+0x6E63 0x91FF
+0x6E64 0x9214
+0x6E65 0x922C
+0x6E66 0x9215
+0x6E67 0x9211
+0x6E68 0x925E
+0x6E69 0x9257
+0x6E6A 0x9245
+0x6E6B 0x9249
+0x6E6C 0x9264
+0x6E6D 0x9248
+0x6E6E 0x9295
+0x6E6F 0x923F
+0x6E70 0x924B
+0x6E71 0x9250
+0x6E72 0x929C
+0x6E73 0x9296
+0x6E74 0x9293
+0x6E75 0x929B
+0x6E76 0x925A
+0x6E77 0x92CF
+0x6E78 0x92B9
+0x6E79 0x92B7
+0x6E7A 0x92E9
+0x6E7B 0x930F
+0x6E7C 0x92FA
+0x6E7D 0x9344
+0x6E7E 0x932E
+0x6F21 0x9319
+0x6F22 0x9322
+0x6F23 0x931A
+0x6F24 0x9323
+0x6F25 0x933A
+0x6F26 0x9335
+0x6F27 0x933B
+0x6F28 0x935C
+0x6F29 0x9360
+0x6F2A 0x937C
+0x6F2B 0x936E
+0x6F2C 0x9356
+0x6F2D 0x93B0
+0x6F2E 0x93AC
+0x6F2F 0x93AD
+0x6F30 0x9394
+0x6F31 0x93B9
+0x6F32 0x93D6
+0x6F33 0x93D7
+0x6F34 0x93E8
+0x6F35 0x93E5
+0x6F36 0x93D8
+0x6F37 0x93C3
+0x6F38 0x93DD
+0x6F39 0x93D0
+0x6F3A 0x93C8
+0x6F3B 0x93E4
+0x6F3C 0x941A
+0x6F3D 0x9414
+0x6F3E 0x9413
+0x6F3F 0x9403
+0x6F40 0x9407
+0x6F41 0x9410
+0x6F42 0x9436
+0x6F43 0x942B
+0x6F44 0x9435
+0x6F45 0x9421
+0x6F46 0x943A
+0x6F47 0x9441
+0x6F48 0x9452
+0x6F49 0x9444
+0x6F4A 0x945B
+0x6F4B 0x9460
+0x6F4C 0x9462
+0x6F4D 0x945E
+0x6F4E 0x946A
+0x6F4F 0x9229
+0x6F50 0x9470
+0x6F51 0x9475
+0x6F52 0x9477
+0x6F53 0x947D
+0x6F54 0x945A
+0x6F55 0x947C
+0x6F56 0x947E
+0x6F57 0x9481
+0x6F58 0x947F
+0x6F59 0x9582
+0x6F5A 0x9587
+0x6F5B 0x958A
+0x6F5C 0x9594
+0x6F5D 0x9596
+0x6F5E 0x9598
+0x6F5F 0x9599
+0x6F60 0x95A0
+0x6F61 0x95A8
+0x6F62 0x95A7
+0x6F63 0x95AD
+0x6F64 0x95BC
+0x6F65 0x95BB
+0x6F66 0x95B9
+0x6F67 0x95BE
+0x6F68 0x95CA
+0x6F69 0x6FF6
+0x6F6A 0x95C3
+0x6F6B 0x95CD
+0x6F6C 0x95CC
+0x6F6D 0x95D5
+0x6F6E 0x95D4
+0x6F6F 0x95D6
+0x6F70 0x95DC
+0x6F71 0x95E1
+0x6F72 0x95E5
+0x6F73 0x95E2
+0x6F74 0x9621
+0x6F75 0x9628
+0x6F76 0x962E
+0x6F77 0x962F
+0x6F78 0x9642
+0x6F79 0x964C
+0x6F7A 0x964F
+0x6F7B 0x964B
+0x6F7C 0x9677
+0x6F7D 0x965C
+0x6F7E 0x965E
+0x7021 0x965D
+0x7022 0x965F
+0x7023 0x9666
+0x7024 0x9672
+0x7025 0x966C
+0x7026 0x968D
+0x7027 0x9698
+0x7028 0x9695
+0x7029 0x9697
+0x702A 0x96AA
+0x702B 0x96A7
+0x702C 0x96B1
+0x702D 0x96B2
+0x702E 0x96B0
+0x702F 0x96B4
+0x7030 0x96B6
+0x7031 0x96B8
+0x7032 0x96B9
+0x7033 0x96CE
+0x7034 0x96CB
+0x7035 0x96C9
+0x7036 0x96CD
+0x7037 0x894D
+0x7038 0x96DC
+0x7039 0x970D
+0x703A 0x96D5
+0x703B 0x96F9
+0x703C 0x9704
+0x703D 0x9706
+0x703E 0x9708
+0x703F 0x9713
+0x7040 0x970E
+0x7041 0x9711
+0x7042 0x970F
+0x7043 0x9716
+0x7044 0x9719
+0x7046 0x972A
+0x7047 0x9730
+0x7048 0x9739
+0x7049 0x973D
+0x704A 0x973E
+0x704B 0x9744
+0x704C 0x9746
+0x704D 0x9748
+0x704E 0x9742
+0x704F 0x9749
+0x7050 0x975C
+0x7051 0x9760
+0x7052 0x9764
+0x7053 0x9766
+0x7054 0x9768
+0x7055 0x52D2
+0x7056 0x976B
+0x7057 0x976D
+0x7058 0x9779
+0x7059 0x9785
+0x705A 0x977C
+0x705B 0x9781
+0x705C 0x977A
+0x705D 0x9786
+0x705E 0x978B
+0x705F 0x978F
+0x7060 0x9790
+0x7061 0x979C
+0x7062 0x97A8
+0x7063 0x97A6
+0x7064 0x97A3
+0x7065 0x97B3
+0x7066 0x97B4
+0x7067 0x97C3
+0x7068 0x97C6
+0x7069 0x97C8
+0x706A 0x97CB
+0x706B 0x97DC
+0x706C 0x97ED
+0x706D 0x9F4F
+0x706E 0x97F2
+0x706F 0x7ADF
+0x7070 0x97F6
+0x7071 0x97F5
+0x7072 0x980F
+0x7073 0x980C
+0x7074 0x981A
+0x7075 0x9824
+0x7076 0x9821
+0x7077 0x9837
+0x7078 0x983D
+0x7079 0x9846
+0x707A 0x984F
+0x707B 0x984B
+0x707C 0x986B
+0x707D 0x986F
+0x707E 0x9870
+0x7121 0x9871
+0x7122 0x9874
+0x7123 0x9873
+0x7124 0x98AA
+0x7125 0x98AF
+0x7126 0x98B1
+0x7127 0x98B6
+0x7128 0x98C4
+0x7129 0x98C3
+0x712A 0x98C6
+0x712B 0x98E9
+0x712C 0x98EB
+0x712D 0x9903
+0x712E 0x9909
+0x712F 0x9912
+0x7130 0x9914
+0x7131 0x9918
+0x7132 0x9921
+0x7133 0x991D
+0x7134 0x991E
+0x7135 0x9924
+0x7136 0x9920
+0x7137 0x992C
+0x7138 0x992E
+0x7139 0x993D
+0x713A 0x993E
+0x713B 0x9942
+0x713C 0x9949
+0x713D 0x9945
+0x713E 0x9950
+0x713F 0x994B
+0x7140 0x9951
+0x7141 0x9952
+0x7142 0x994C
+0x7143 0x9955
+0x7144 0x9997
+0x7145 0x9998
+0x7146 0x99A5
+0x7147 0x99AD
+0x7148 0x99AE
+0x7149 0x99BC
+0x714A 0x99DF
+0x714B 0x99DB
+0x714C 0x99DD
+0x714D 0x99D8
+0x714E 0x99D1
+0x714F 0x99ED
+0x7150 0x99EE
+0x7151 0x99F1
+0x7152 0x99F2
+0x7153 0x99FB
+0x7154 0x99F8
+0x7155 0x9A01
+0x7156 0x9A0F
+0x7157 0x9A05
+0x7158 0x99E2
+0x7159 0x9A19
+0x715A 0x9A2B
+0x715B 0x9A37
+0x715C 0x9A45
+0x715D 0x9A42
+0x715E 0x9A40
+0x715F 0x9A43
+0x7160 0x9A3E
+0x7161 0x9A55
+0x7162 0x9A4D
+0x7163 0x9A5B
+0x7164 0x9A57
+0x7165 0x9A5F
+0x7166 0x9A62
+0x7167 0x9A65
+0x7168 0x9A64
+0x7169 0x9A69
+0x716A 0x9A6B
+0x716B 0x9A6A
+0x716C 0x9AAD
+0x716D 0x9AB0
+0x716E 0x9ABC
+0x716F 0x9AC0
+0x7170 0x9ACF
+0x7171 0x9AD1
+0x7172 0x9AD3
+0x7173 0x9AD4
+0x7174 0x9ADE
+0x7175 0x9ADF
+0x7176 0x9AE2
+0x7177 0x9AE3
+0x7178 0x9AE6
+0x7179 0x9AEF
+0x717A 0x9AEB
+0x717B 0x9AEE
+0x717C 0x9AF4
+0x717D 0x9AF1
+0x717E 0x9AF7
+0x7221 0x9AFB
+0x7222 0x9B06
+0x7223 0x9B18
+0x7224 0x9B1A
+0x7225 0x9B1F
+0x7226 0x9B22
+0x7227 0x9B23
+0x7228 0x9B25
+0x7229 0x9B27
+0x722A 0x9B28
+0x722B 0x9B29
+0x722C 0x9B2A
+0x722D 0x9B2E
+0x722E 0x9B2F
+0x722F 0x9B32
+0x7230 0x9B44
+0x7231 0x9B43
+0x7232 0x9B4F
+0x7233 0x9B4D
+0x7234 0x9B4E
+0x7235 0x9B51
+0x7236 0x9B58
+0x7237 0x9B74
+0x7238 0x9B93
+0x7239 0x9B83
+0x723A 0x9B91
+0x723B 0x9B96
+0x723C 0x9B97
+0x723D 0x9B9F
+0x723E 0x9BA0
+0x723F 0x9BA8
+0x7240 0x9BB4
+0x7241 0x9BC0
+0x7242 0x9BCA
+0x7243 0x9BB9
+0x7244 0x9BC6
+0x7245 0x9BCF
+0x7246 0x9BD1
+0x7247 0x9BD2
+0x7248 0x9BE3
+0x7249 0x9BE2
+0x724A 0x9BE4
+0x724B 0x9BD4
+0x724C 0x9BE1
+0x724D 0x9BF5
+0x724E 0x9BF2
+0x724F 0x9BF1
+0x7250 0x9BF0
+0x7251 0x9C15
+0x7252 0x9C14
+0x7253 0x9C09
+0x7254 0x9C13
+0x7255 0x9C0C
+0x7256 0x9C06
+0x7257 0x9C08
+0x7258 0x9C12
+0x7259 0x9C0A
+0x725A 0x9C04
+0x725B 0x9C2E
+0x725C 0x9C1B
+0x725D 0x9C25
+0x725E 0x9C24
+0x725F 0x9C21
+0x7260 0x9C30
+0x7261 0x9C47
+0x7262 0x9C32
+0x7263 0x9C46
+0x7264 0x9C3E
+0x7265 0x9C5A
+0x7266 0x9C60
+0x7267 0x9C67
+0x7268 0x9C76
+0x7269 0x9C78
+0x726A 0x9CE7
+0x726B 0x9CEC
+0x726C 0x9CF0
+0x726D 0x9D09
+0x726E 0x9D08
+0x726F 0x9CEB
+0x7270 0x9D03
+0x7271 0x9D06
+0x7272 0x9D2A
+0x7273 0x9D26
+0x7274 0x9D2C
+0x7275 0x9D23
+0x7276 0x9D1F
+0x7277 0x9D44
+0x7278 0x9D15
+0x7279 0x9D12
+0x727A 0x9D41
+0x727B 0x9D3F
+0x727C 0x9D3E
+0x727D 0x9D46
+0x727E 0x9D48
+0x7321 0x9D5D
+0x7322 0x9D5E
+0x7323 0x9D64
+0x7324 0x9D51
+0x7325 0x9D50
+0x7326 0x9D59
+0x7327 0x9D72
+0x7328 0x9D89
+0x7329 0x9D87
+0x732A 0x9DAB
+0x732B 0x9D6F
+0x732C 0x9D7A
+0x732D 0x9D9A
+0x732E 0x9DA4
+0x732F 0x9DA9
+0x7330 0x9DB2
+0x7331 0x9DC4
+0x7332 0x9DC1
+0x7333 0x9DBB
+0x7334 0x9DB8
+0x7335 0x9DBA
+0x7336 0x9DC6
+0x7337 0x9DCF
+0x7338 0x9DC2
+0x7339 0x9DD9
+0x733A 0x9DD3
+0x733B 0x9DF8
+0x733C 0x9DE6
+0x733D 0x9DED
+0x733E 0x9DEF
+0x733F 0x9DFD
+0x7340 0x9E1A
+0x7341 0x9E1B
+0x7342 0x9E1E
+0x7343 0x9E75
+0x7344 0x9E79
+0x7345 0x9E7D
+0x7346 0x9E81
+0x7347 0x9E88
+0x7348 0x9E8B
+0x7349 0x9E8C
+0x734A 0x9E92
+0x734B 0x9E95
+0x734C 0x9E91
+0x734D 0x9E9D
+0x734E 0x9EA5
+0x734F 0x9EA9
+0x7350 0x9EB8
+0x7351 0x9EAA
+0x7352 0x9EAD
+0x7353 0x9761
+0x7354 0x9ECC
+0x7355 0x9ECE
+0x7356 0x9ECF
+0x7357 0x9ED0
+0x7358 0x9ED4
+0x7359 0x9EDC
+0x735A 0x9EDE
+0x735B 0x9EDD
+0x735C 0x9EE0
+0x735D 0x9EE5
+0x735E 0x9EE8
+0x735F 0x9EEF
+0x7360 0x9EF4
+0x7361 0x9EF6
+0x7362 0x9EF7
+0x7363 0x9EF9
+0x7364 0x9EFB
+0x7365 0x9EFC
+0x7366 0x9EFD
+0x7367 0x9F07
+0x7368 0x9F08
+0x7369 0x76B7
+0x736A 0x9F15
+0x736B 0x9F21
+0x736C 0x9F2C
+0x736D 0x9F3E
+0x736E 0x9F4A
+0x736F 0x9F52
+0x7370 0x9F54
+0x7371 0x9F63
+0x7372 0x9F5F
+0x7373 0x9F60
+0x7374 0x9F61
+0x7375 0x9F66
+0x7376 0x9F67
+0x7377 0x9F6C
+0x7378 0x9F6A
+0x7379 0x9F77
+0x737A 0x9F72
+0x737B 0x9F76
+0x737C 0x9F95
+0x737D 0x9F9C
+0x737E 0x9FA0
diff --git a/etc/charsets/JISX0201.map b/etc/charsets/JISX0201.map
new file mode 100644 (file)
index 0000000..5a64496
--- /dev/null
@@ -0,0 +1,8 @@
+# Generated from glibc-2.3.2/localedata/charmaps/JIS_X0201
+0x00-0x5B 0x0000
+0x5C 0x00A5
+0x5D-0x7D 0x005D
+0x7E 0x203E
+0x7F-0x9F 0x007F
+# Generated by hand
+0xA1-0xDF 0xFF61
diff --git a/etc/charsets/JISX0208.map b/etc/charsets/JISX0208.map
new file mode 100644 (file)
index 0000000..8722ffa
--- /dev/null
@@ -0,0 +1,6880 @@
+# Generated from glibc-2.3/localedata/charmaps/EUC-JP
+0x2121 0x3000
+0x2122 0x3001
+0x2123 0x3002
+0x2124 0xFF0C
+0x2125 0xFF0E
+0x2126 0x30FB
+0x2127 0xFF1A
+0x2128 0xFF1B
+0x2129 0xFF1F
+0x212a 0xFF01
+0x212b 0x309B
+0x212c 0x309C
+0x212d 0x00B4
+0x212e 0xFF40
+0x212f 0x00A8
+0x2130 0xFF3E
+0x2131 0xFFE3
+0x2132 0xFF3F
+0x2133 0x30FD
+0x2134 0x30FE
+0x2135 0x309D
+0x2136 0x309E
+0x2137 0x3003
+0x2138 0x4EDD
+0x2139 0x3005
+0x213a 0x3006
+0x213b 0x3007
+0x213c 0x30FC
+0x213d 0x2014
+0x213e 0x2010
+0x213f 0xFF0F
+0x2140 0xFF3C
+0x2141 0x301C
+0x2142 0x2016
+0x2143 0xFF5C
+0x2144 0x2026
+0x2145 0x2025
+0x2146 0x2018
+0x2147 0x2019
+0x2148 0x201C
+0x2149 0x201D
+0x214a 0xFF08
+0x214b 0xFF09
+0x214c 0x3014
+0x214d 0x3015
+0x214e 0xFF3B
+0x214f 0xFF3D
+0x2150 0xFF5B
+0x2151 0xFF5D
+0x2152 0x3008
+0x2153 0x3009
+0x2154 0x300A
+0x2155 0x300B
+0x2156 0x300C
+0x2157 0x300D
+0x2158 0x300E
+0x2159 0x300F
+0x215a 0x3010
+0x215b 0x3011
+0x215c 0xFF0B
+0x215d 0x2212
+0x215e 0x00B1
+0x215f 0x00D7
+0x2160 0x00F7
+0x2161 0xFF1D
+0x2162 0x2260
+0x2163 0xFF1C
+0x2164 0xFF1E
+0x2165 0x2266
+0x2166 0x2267
+0x2167 0x221E
+0x2168 0x2234
+0x2169 0x2642
+0x216a 0x2640
+0x216b 0x00B0
+0x216c 0x2032
+0x216d 0x2033
+0x216e 0x2103
+0x216f 0xFFE5
+0x2170 0xFF04
+0x2171 0x00A2
+0x2172 0x00A3
+0x2173 0xFF05
+0x2174 0xFF03
+0x2175 0xFF06
+0x2176 0xFF0A
+0x2177 0xFF20
+0x2178 0x00A7
+0x2179 0x2606
+0x217a 0x2605
+0x217b 0x25CB
+0x217c 0x25CF
+0x217d 0x25CE
+0x217e 0x25C7
+0x2221 0x25C6
+0x2222 0x25A1
+0x2223 0x25A0
+0x2224 0x25B3
+0x2225 0x25B2
+0x2226 0x25BD
+0x2227 0x25BC
+0x2228 0x203B
+0x2229 0x3012
+0x222a 0x2192
+0x222b 0x2190
+0x222c 0x2191
+0x222d 0x2193
+0x222e 0x3013
+0x223a 0x2208
+0x223b 0x220B
+0x223c 0x2286
+0x223d 0x2287
+0x223e 0x2282
+0x223f 0x2283
+0x2240 0x222A
+0x2241 0x2229
+0x224a 0x2227
+0x224b 0x2228
+0x224c 0x00AC
+0x224d 0x21D2
+0x224e 0x21D4
+0x224f 0x2200
+0x2250 0x2203
+0x225c 0x2220
+0x225d 0x22A5
+0x225e 0x2312
+0x225f 0x2202
+0x2260 0x2207
+0x2261 0x2261
+0x2262 0x2252
+0x2263 0x226A
+0x2264 0x226B
+0x2265 0x221A
+0x2266 0x223D
+0x2267 0x221D
+0x2268 0x2235
+0x2269 0x222B
+0x226a 0x222C
+0x2272 0x212B
+0x2273 0x2030
+0x2274 0x266F
+0x2275 0x266D
+0x2276 0x266A
+0x2277 0x2020
+0x2278 0x2021
+0x2279 0x00B6
+0x227e 0x25EF
+0x2330 0xFF10
+0x2331 0xFF11
+0x2332 0xFF12
+0x2333 0xFF13
+0x2334 0xFF14
+0x2335 0xFF15
+0x2336 0xFF16
+0x2337 0xFF17
+0x2338 0xFF18
+0x2339 0xFF19
+0x2341 0xFF21
+0x2342 0xFF22
+0x2343 0xFF23
+0x2344 0xFF24
+0x2345 0xFF25
+0x2346 0xFF26
+0x2347 0xFF27
+0x2348 0xFF28
+0x2349 0xFF29
+0x234a 0xFF2A
+0x234b 0xFF2B
+0x234c 0xFF2C
+0x234d 0xFF2D
+0x234e 0xFF2E
+0x234f 0xFF2F
+0x2350 0xFF30
+0x2351 0xFF31
+0x2352 0xFF32
+0x2353 0xFF33
+0x2354 0xFF34
+0x2355 0xFF35
+0x2356 0xFF36
+0x2357 0xFF37
+0x2358 0xFF38
+0x2359 0xFF39
+0x235a 0xFF3A
+0x2361 0xFF41
+0x2362 0xFF42
+0x2363 0xFF43
+0x2364 0xFF44
+0x2365 0xFF45
+0x2366 0xFF46
+0x2367 0xFF47
+0x2368 0xFF48
+0x2369 0xFF49
+0x236a 0xFF4A
+0x236b 0xFF4B
+0x236c 0xFF4C
+0x236d 0xFF4D
+0x236e 0xFF4E
+0x236f 0xFF4F
+0x2370 0xFF50
+0x2371 0xFF51
+0x2372 0xFF52
+0x2373 0xFF53
+0x2374 0xFF54
+0x2375 0xFF55
+0x2376 0xFF56
+0x2377 0xFF57
+0x2378 0xFF58
+0x2379 0xFF59
+0x237a 0xFF5A
+0x2421 0x3041
+0x2422 0x3042
+0x2423 0x3043
+0x2424 0x3044
+0x2425 0x3045
+0x2426 0x3046
+0x2427 0x3047
+0x2428 0x3048
+0x2429 0x3049
+0x242a 0x304A
+0x242b 0x304B
+0x242c 0x304C
+0x242d 0x304D
+0x242e 0x304E
+0x242f 0x304F
+0x2430 0x3050
+0x2431 0x3051
+0x2432 0x3052
+0x2433 0x3053
+0x2434 0x3054
+0x2435 0x3055
+0x2436 0x3056
+0x2437 0x3057
+0x2438 0x3058
+0x2439 0x3059
+0x243a 0x305A
+0x243b 0x305B
+0x243c 0x305C
+0x243d 0x305D
+0x243e 0x305E
+0x243f 0x305F
+0x2440 0x3060
+0x2441 0x3061
+0x2442 0x3062
+0x2443 0x3063
+0x2444 0x3064
+0x2445 0x3065
+0x2446 0x3066
+0x2447 0x3067
+0x2448 0x3068
+0x2449 0x3069
+0x244a 0x306A
+0x244b 0x306B
+0x244c 0x306C
+0x244d 0x306D
+0x244e 0x306E
+0x244f 0x306F
+0x2450 0x3070
+0x2451 0x3071
+0x2452 0x3072
+0x2453 0x3073
+0x2454 0x3074
+0x2455 0x3075
+0x2456 0x3076
+0x2457 0x3077
+0x2458 0x3078
+0x2459 0x3079
+0x245a 0x307A
+0x245b 0x307B
+0x245c 0x307C
+0x245d 0x307D
+0x245e 0x307E
+0x245f 0x307F
+0x2460 0x3080
+0x2461 0x3081
+0x2462 0x3082
+0x2463 0x3083
+0x2464 0x3084
+0x2465 0x3085
+0x2466 0x3086
+0x2467 0x3087
+0x2468 0x3088
+0x2469 0x3089
+0x246a 0x308A
+0x246b 0x308B
+0x246c 0x308C
+0x246d 0x308D
+0x246e 0x308E
+0x246f 0x308F
+0x2470 0x3090
+0x2471 0x3091
+0x2472 0x3092
+0x2473 0x3093
+0x2521 0x30A1
+0x2522 0x30A2
+0x2523 0x30A3
+0x2524 0x30A4
+0x2525 0x30A5
+0x2526 0x30A6
+0x2527 0x30A7
+0x2528 0x30A8
+0x2529 0x30A9
+0x252a 0x30AA
+0x252b 0x30AB
+0x252c 0x30AC
+0x252d 0x30AD
+0x252e 0x30AE
+0x252f 0x30AF
+0x2530 0x30B0
+0x2531 0x30B1
+0x2532 0x30B2
+0x2533 0x30B3
+0x2534 0x30B4
+0x2535 0x30B5
+0x2536 0x30B6
+0x2537 0x30B7
+0x2538 0x30B8
+0x2539 0x30B9
+0x253a 0x30BA
+0x253b 0x30BB
+0x253c 0x30BC
+0x253d 0x30BD
+0x253e 0x30BE
+0x253f 0x30BF
+0x2540 0x30C0
+0x2541 0x30C1
+0x2542 0x30C2
+0x2543 0x30C3
+0x2544 0x30C4
+0x2545 0x30C5
+0x2546 0x30C6
+0x2547 0x30C7
+0x2548 0x30C8
+0x2549 0x30C9
+0x254a 0x30CA
+0x254b 0x30CB
+0x254c 0x30CC
+0x254d 0x30CD
+0x254e 0x30CE
+0x254f 0x30CF
+0x2550 0x30D0
+0x2551 0x30D1
+0x2552 0x30D2
+0x2553 0x30D3
+0x2554 0x30D4
+0x2555 0x30D5
+0x2556 0x30D6
+0x2557 0x30D7
+0x2558 0x30D8
+0x2559 0x30D9
+0x255a 0x30DA
+0x255b 0x30DB
+0x255c 0x30DC
+0x255d 0x30DD
+0x255e 0x30DE
+0x255f 0x30DF
+0x2560 0x30E0
+0x2561 0x30E1
+0x2562 0x30E2
+0x2563 0x30E3
+0x2564 0x30E4
+0x2565 0x30E5
+0x2566 0x30E6
+0x2567 0x30E7
+0x2568 0x30E8
+0x2569 0x30E9
+0x256a 0x30EA
+0x256b 0x30EB
+0x256c 0x30EC
+0x256d 0x30ED
+0x256e 0x30EE
+0x256f 0x30EF
+0x2570 0x30F0
+0x2571 0x30F1
+0x2572 0x30F2
+0x2573 0x30F3
+0x2574 0x30F4
+0x2575 0x30F5
+0x2576 0x30F6
+0x2621 0x0391
+0x2622 0x0392
+0x2623 0x0393
+0x2624 0x0394
+0x2625 0x0395
+0x2626 0x0396
+0x2627 0x0397
+0x2628 0x0398
+0x2629 0x0399
+0x262a 0x039A
+0x262b 0x039B
+0x262c 0x039C
+0x262d 0x039D
+0x262e 0x039E
+0x262f 0x039F
+0x2630 0x03A0
+0x2631 0x03A1
+0x2632 0x03A3
+0x2633 0x03A4
+0x2634 0x03A5
+0x2635 0x03A6
+0x2636 0x03A7
+0x2637 0x03A8
+0x2638 0x03A9
+0x2641 0x03B1
+0x2642 0x03B2
+0x2643 0x03B3
+0x2644 0x03B4
+0x2645 0x03B5
+0x2646 0x03B6
+0x2647 0x03B7
+0x2648 0x03B8
+0x2649 0x03B9
+0x264a 0x03BA
+0x264b 0x03BB
+0x264c 0x03BC
+0x264d 0x03BD
+0x264e 0x03BE
+0x264f 0x03BF
+0x2650 0x03C0
+0x2651 0x03C1
+0x2652 0x03C3
+0x2653 0x03C4
+0x2654 0x03C5
+0x2655 0x03C6
+0x2656 0x03C7
+0x2657 0x03C8
+0x2658 0x03C9
+0x2721 0x0410
+0x2722 0x0411
+0x2723 0x0412
+0x2724 0x0413
+0x2725 0x0414
+0x2726 0x0415
+0x2727 0x0401
+0x2728 0x0416
+0x2729 0x0417
+0x272a 0x0418
+0x272b 0x0419
+0x272c 0x041A
+0x272d 0x041B
+0x272e 0x041C
+0x272f 0x041D
+0x2730 0x041E
+0x2731 0x041F
+0x2732 0x0420
+0x2733 0x0421
+0x2734 0x0422
+0x2735 0x0423
+0x2736 0x0424
+0x2737 0x0425
+0x2738 0x0426
+0x2739 0x0427
+0x273a 0x0428
+0x273b 0x0429
+0x273c 0x042A
+0x273d 0x042B
+0x273e 0x042C
+0x273f 0x042D
+0x2740 0x042E
+0x2741 0x042F
+0x2751 0x0430
+0x2752 0x0431
+0x2753 0x0432
+0x2754 0x0433
+0x2755 0x0434
+0x2756 0x0435
+0x2757 0x0451
+0x2758 0x0436
+0x2759 0x0437
+0x275a 0x0438
+0x275b 0x0439
+0x275c 0x043A
+0x275d 0x043B
+0x275e 0x043C
+0x275f 0x043D
+0x2760 0x043E
+0x2761 0x043F
+0x2762 0x0440
+0x2763 0x0441
+0x2764 0x0442
+0x2765 0x0443
+0x2766 0x0444
+0x2767 0x0445
+0x2768 0x0446
+0x2769 0x0447
+0x276a 0x0448
+0x276b 0x0449
+0x276c 0x044A
+0x276d 0x044B
+0x276e 0x044C
+0x276f 0x044D
+0x2770 0x044E
+0x2771 0x044F
+0x2821 0x2500
+0x2822 0x2502
+0x2823 0x250C
+0x2824 0x2510
+0x2825 0x2518
+0x2826 0x2514
+0x2827 0x251C
+0x2828 0x252C
+0x2829 0x2524
+0x282a 0x2534
+0x282b 0x253C
+0x282c 0x2501
+0x282d 0x2503
+0x282e 0x250F
+0x282f 0x2513
+0x2830 0x251B
+0x2831 0x2517
+0x2832 0x2523
+0x2833 0x2533
+0x2834 0x252B
+0x2835 0x253B
+0x2836 0x254B
+0x2837 0x2520
+0x2838 0x252F
+0x2839 0x2528
+0x283a 0x2537
+0x283b 0x253F
+0x283c 0x251D
+0x283d 0x2530
+0x283e 0x2525
+0x283f 0x2538
+0x2840 0x2542
+0x3021 0x4E9C
+0x3022 0x5516
+0x3023 0x5A03
+0x3024 0x963F
+0x3025 0x54C0
+0x3026 0x611B
+0x3027 0x6328
+0x3028 0x59F6
+0x3029 0x9022
+0x302a 0x8475
+0x302b 0x831C
+0x302c 0x7A50
+0x302d 0x60AA
+0x302e 0x63E1
+0x302f 0x6E25
+0x3030 0x65ED
+0x3031 0x8466
+0x3032 0x82A6
+0x3033 0x9BF5
+0x3034 0x6893
+0x3035 0x5727
+0x3036 0x65A1
+0x3037 0x6271
+0x3038 0x5B9B
+0x3039 0x59D0
+0x303a 0x867B
+0x303b 0x98F4
+0x303c 0x7D62
+0x303d 0x7DBE
+0x303e 0x9B8E
+0x303f 0x6216
+0x3040 0x7C9F
+0x3041 0x88B7
+0x3042 0x5B89
+0x3043 0x5EB5
+0x3044 0x6309
+0x3045 0x6697
+0x3046 0x6848
+0x3047 0x95C7
+0x3048 0x978D
+0x3049 0x674F
+0x304a 0x4EE5
+0x304b 0x4F0A
+0x304c 0x4F4D
+0x304d 0x4F9D
+0x304e 0x5049
+0x304f 0x56F2
+0x3050 0x5937
+0x3051 0x59D4
+0x3052 0x5A01
+0x3053 0x5C09
+0x3054 0x60DF
+0x3055 0x610F
+0x3056 0x6170
+0x3057 0x6613
+0x3058 0x6905
+0x3059 0x70BA
+0x305a 0x754F
+0x305b 0x7570
+0x305c 0x79FB
+0x305d 0x7DAD
+0x305e 0x7DEF
+0x305f 0x80C3
+0x3060 0x840E
+0x3061 0x8863
+0x3062 0x8B02
+0x3063 0x9055
+0x3064 0x907A
+0x3065 0x533B
+0x3066 0x4E95
+0x3067 0x4EA5
+0x3068 0x57DF
+0x3069 0x80B2
+0x306a 0x90C1
+0x306b 0x78EF
+0x306c 0x4E00
+0x306d 0x58F1
+0x306e 0x6EA2
+0x306f 0x9038
+0x3070 0x7A32
+0x3071 0x8328
+0x3072 0x828B
+0x3073 0x9C2F
+0x3074 0x5141
+0x3075 0x5370
+0x3076 0x54BD
+0x3077 0x54E1
+0x3078 0x56E0
+0x3079 0x59FB
+0x307a 0x5F15
+0x307b 0x98F2
+0x307c 0x6DEB
+0x307d 0x80E4
+0x307e 0x852D
+0x3121 0x9662
+0x3122 0x9670
+0x3123 0x96A0
+0x3124 0x97FB
+0x3125 0x540B
+0x3126 0x53F3
+0x3127 0x5B87
+0x3128 0x70CF
+0x3129 0x7FBD
+0x312a 0x8FC2
+0x312b 0x96E8
+0x312c 0x536F
+0x312d 0x9D5C
+0x312e 0x7ABA
+0x312f 0x4E11
+0x3130 0x7893
+0x3131 0x81FC
+0x3132 0x6E26
+0x3133 0x5618
+0x3134 0x5504
+0x3135 0x6B1D
+0x3136 0x851A
+0x3137 0x9C3B
+0x3138 0x59E5
+0x3139 0x53A9
+0x313a 0x6D66
+0x313b 0x74DC
+0x313c 0x958F
+0x313d 0x5642
+0x313e 0x4E91
+0x313f 0x904B
+0x3140 0x96F2
+0x3141 0x834F
+0x3142 0x990C
+0x3143 0x53E1
+0x3144 0x55B6
+0x3145 0x5B30
+0x3146 0x5F71
+0x3147 0x6620
+0x3148 0x66F3
+0x3149 0x6804
+0x314a 0x6C38
+0x314b 0x6CF3
+0x314c 0x6D29
+0x314d 0x745B
+0x314e 0x76C8
+0x314f 0x7A4E
+0x3150 0x9834
+0x3151 0x82F1
+0x3152 0x885B
+0x3153 0x8A60
+0x3154 0x92ED
+0x3155 0x6DB2
+0x3156 0x75AB
+0x3157 0x76CA
+0x3158 0x99C5
+0x3159 0x60A6
+0x315a 0x8B01
+0x315b 0x8D8A
+0x315c 0x95B2
+0x315d 0x698E
+0x315e 0x53AD
+0x315f 0x5186
+0x3160 0x5712
+0x3161 0x5830
+0x3162 0x5944
+0x3163 0x5BB4
+0x3164 0x5EF6
+0x3165 0x6028
+0x3166 0x63A9
+0x3167 0x63F4
+0x3168 0x6CBF
+0x3169 0x6F14
+0x316a 0x708E
+0x316b 0x7114
+0x316c 0x7159
+0x316d 0x71D5
+0x316e 0x733F
+0x316f 0x7E01
+0x3170 0x8276
+0x3171 0x82D1
+0x3172 0x8597
+0x3173 0x9060
+0x3174 0x925B
+0x3175 0x9D1B
+0x3176 0x5869
+0x3177 0x65BC
+0x3178 0x6C5A
+0x3179 0x7525
+0x317a 0x51F9
+0x317b 0x592E
+0x317c 0x5965
+0x317d 0x5F80
+0x317e 0x5FDC
+0x3221 0x62BC
+0x3222 0x65FA
+0x3223 0x6A2A
+0x3224 0x6B27
+0x3225 0x6BB4
+0x3226 0x738B
+0x3227 0x7FC1
+0x3228 0x8956
+0x3229 0x9D2C
+0x322a 0x9D0E
+0x322b 0x9EC4
+0x322c 0x5CA1
+0x322d 0x6C96
+0x322e 0x837B
+0x322f 0x5104
+0x3230 0x5C4B
+0x3231 0x61B6
+0x3232 0x81C6
+0x3233 0x6876
+0x3234 0x7261
+0x3235 0x4E59
+0x3236 0x4FFA
+0x3237 0x5378
+0x3238 0x6069
+0x3239 0x6E29
+0x323a 0x7A4F
+0x323b 0x97F3
+0x323c 0x4E0B
+0x323d 0x5316
+0x323e 0x4EEE
+0x323f 0x4F55
+0x3240 0x4F3D
+0x3241 0x4FA1
+0x3242 0x4F73
+0x3243 0x52A0
+0x3244 0x53EF
+0x3245 0x5609
+0x3246 0x590F
+0x3247 0x5AC1
+0x3248 0x5BB6
+0x3249 0x5BE1
+0x324a 0x79D1
+0x324b 0x6687
+0x324c 0x679C
+0x324d 0x67B6
+0x324e 0x6B4C
+0x324f 0x6CB3
+0x3250 0x706B
+0x3251 0x73C2
+0x3252 0x798D
+0x3253 0x79BE
+0x3254 0x7A3C
+0x3255 0x7B87
+0x3256 0x82B1
+0x3257 0x82DB
+0x3258 0x8304
+0x3259 0x8377
+0x325a 0x83EF
+0x325b 0x83D3
+0x325c 0x8766
+0x325d 0x8AB2
+0x325e 0x5629
+0x325f 0x8CA8
+0x3260 0x8FE6
+0x3261 0x904E
+0x3262 0x971E
+0x3263 0x868A
+0x3264 0x4FC4
+0x3265 0x5CE8
+0x3266 0x6211
+0x3267 0x7259
+0x3268 0x753B
+0x3269 0x81E5
+0x326a 0x82BD
+0x326b 0x86FE
+0x326c 0x8CC0
+0x326d 0x96C5
+0x326e 0x9913
+0x326f 0x99D5
+0x3270 0x4ECB
+0x3271 0x4F1A
+0x3272 0x89E3
+0x3273 0x56DE
+0x3274 0x584A
+0x3275 0x58CA
+0x3276 0x5EFB
+0x3277 0x5FEB
+0x3278 0x602A
+0x3279 0x6094
+0x327a 0x6062
+0x327b 0x61D0
+0x327c 0x6212
+0x327d 0x62D0
+0x327e 0x6539
+0x3321 0x9B41
+0x3322 0x6666
+0x3323 0x68B0
+0x3324 0x6D77
+0x3325 0x7070
+0x3326 0x754C
+0x3327 0x7686
+0x3328 0x7D75
+0x3329 0x82A5
+0x332a 0x87F9
+0x332b 0x958B
+0x332c 0x968E
+0x332d 0x8C9D
+0x332e 0x51F1
+0x332f 0x52BE
+0x3330 0x5916
+0x3331 0x54B3
+0x3332 0x5BB3
+0x3333 0x5D16
+0x3334 0x6168
+0x3335 0x6982
+0x3336 0x6DAF
+0x3337 0x788D
+0x3338 0x84CB
+0x3339 0x8857
+0x333a 0x8A72
+0x333b 0x93A7
+0x333c 0x9AB8
+0x333d 0x6D6C
+0x333e 0x99A8
+0x333f 0x86D9
+0x3340 0x57A3
+0x3341 0x67FF
+0x3342 0x86CE
+0x3343 0x920E
+0x3344 0x5283
+0x3345 0x5687
+0x3346 0x5404
+0x3347 0x5ED3
+0x3348 0x62E1
+0x3349 0x64B9
+0x334a 0x683C
+0x334b 0x6838
+0x334c 0x6BBB
+0x334d 0x7372
+0x334e 0x78BA
+0x334f 0x7A6B
+0x3350 0x899A
+0x3351 0x89D2
+0x3352 0x8D6B
+0x3353 0x8F03
+0x3354 0x90ED
+0x3355 0x95A3
+0x3356 0x9694
+0x3357 0x9769
+0x3358 0x5B66
+0x3359 0x5CB3
+0x335a 0x697D
+0x335b 0x984D
+0x335c 0x984E
+0x335d 0x639B
+0x335e 0x7B20
+0x335f 0x6A2B
+0x3360 0x6A7F
+0x3361 0x68B6
+0x3362 0x9C0D
+0x3363 0x6F5F
+0x3364 0x5272
+0x3365 0x559D
+0x3366 0x6070
+0x3367 0x62EC
+0x3368 0x6D3B
+0x3369 0x6E07
+0x336a 0x6ED1
+0x336b 0x845B
+0x336c 0x8910
+0x336d 0x8F44
+0x336e 0x4E14
+0x336f 0x9C39
+0x3370 0x53F6
+0x3371 0x691B
+0x3372 0x6A3A
+0x3373 0x9784
+0x3374 0x682A
+0x3375 0x515C
+0x3376 0x7AC3
+0x3377 0x84B2
+0x3378 0x91DC
+0x3379 0x938C
+0x337a 0x565B
+0x337b 0x9D28
+0x337c 0x6822
+0x337d 0x8305
+0x337e 0x8431
+0x3421 0x7CA5
+0x3422 0x5208
+0x3423 0x82C5
+0x3424 0x74E6
+0x3425 0x4E7E
+0x3426 0x4F83
+0x3427 0x51A0
+0x3428 0x5BD2
+0x3429 0x520A
+0x342a 0x52D8
+0x342b 0x52E7
+0x342c 0x5DFB
+0x342d 0x559A
+0x342e 0x582A
+0x342f 0x59E6
+0x3430 0x5B8C
+0x3431 0x5B98
+0x3432 0x5BDB
+0x3433 0x5E72
+0x3434 0x5E79
+0x3435 0x60A3
+0x3436 0x611F
+0x3437 0x6163
+0x3438 0x61BE
+0x3439 0x63DB
+0x343a 0x6562
+0x343b 0x67D1
+0x343c 0x6853
+0x343d 0x68FA
+0x343e 0x6B3E
+0x343f 0x6B53
+0x3440 0x6C57
+0x3441 0x6F22
+0x3442 0x6F97
+0x3443 0x6F45
+0x3444 0x74B0
+0x3445 0x7518
+0x3446 0x76E3
+0x3447 0x770B
+0x3448 0x7AFF
+0x3449 0x7BA1
+0x344a 0x7C21
+0x344b 0x7DE9
+0x344c 0x7F36
+0x344d 0x7FF0
+0x344e 0x809D
+0x344f 0x8266
+0x3450 0x839E
+0x3451 0x89B3
+0x3452 0x8ACC
+0x3453 0x8CAB
+0x3454 0x9084
+0x3455 0x9451
+0x3456 0x9593
+0x3457 0x9591
+0x3458 0x95A2
+0x3459 0x9665
+0x345a 0x97D3
+0x345b 0x9928
+0x345c 0x8218
+0x345d 0x4E38
+0x345e 0x542B
+0x345f 0x5CB8
+0x3460 0x5DCC
+0x3461 0x73A9
+0x3462 0x764C
+0x3463 0x773C
+0x3464 0x5CA9
+0x3465 0x7FEB
+0x3466 0x8D0B
+0x3467 0x96C1
+0x3468 0x9811
+0x3469 0x9854
+0x346a 0x9858
+0x346b 0x4F01
+0x346c 0x4F0E
+0x346d 0x5371
+0x346e 0x559C
+0x346f 0x5668
+0x3470 0x57FA
+0x3471 0x5947
+0x3472 0x5B09
+0x3473 0x5BC4
+0x3474 0x5C90
+0x3475 0x5E0C
+0x3476 0x5E7E
+0x3477 0x5FCC
+0x3478 0x63EE
+0x3479 0x673A
+0x347a 0x65D7
+0x347b 0x65E2
+0x347c 0x671F
+0x347d 0x68CB
+0x347e 0x68C4
+0x3521 0x6A5F
+0x3522 0x5E30
+0x3523 0x6BC5
+0x3524 0x6C17
+0x3525 0x6C7D
+0x3526 0x757F
+0x3527 0x7948
+0x3528 0x5B63
+0x3529 0x7A00
+0x352a 0x7D00
+0x352b 0x5FBD
+0x352c 0x898F
+0x352d 0x8A18
+0x352e 0x8CB4
+0x352f 0x8D77
+0x3530 0x8ECC
+0x3531 0x8F1D
+0x3532 0x98E2
+0x3533 0x9A0E
+0x3534 0x9B3C
+0x3535 0x4E80
+0x3536 0x507D
+0x3537 0x5100
+0x3538 0x5993
+0x3539 0x5B9C
+0x353a 0x622F
+0x353b 0x6280
+0x353c 0x64EC
+0x353d 0x6B3A
+0x353e 0x72A0
+0x353f 0x7591
+0x3540 0x7947
+0x3541 0x7FA9
+0x3542 0x87FB
+0x3543 0x8ABC
+0x3544 0x8B70
+0x3545 0x63AC
+0x3546 0x83CA
+0x3547 0x97A0
+0x3548 0x5409
+0x3549 0x5403
+0x354a 0x55AB
+0x354b 0x6854
+0x354c 0x6A58
+0x354d 0x8A70
+0x354e 0x7827
+0x354f 0x6775
+0x3550 0x9ECD
+0x3551 0x5374
+0x3552 0x5BA2
+0x3553 0x811A
+0x3554 0x8650
+0x3555 0x9006
+0x3556 0x4E18
+0x3557 0x4E45
+0x3558 0x4EC7
+0x3559 0x4F11
+0x355a 0x53CA
+0x355b 0x5438
+0x355c 0x5BAE
+0x355d 0x5F13
+0x355e 0x6025
+0x355f 0x6551
+0x3560 0x673D
+0x3561 0x6C42
+0x3562 0x6C72
+0x3563 0x6CE3
+0x3564 0x7078
+0x3565 0x7403
+0x3566 0x7A76
+0x3567 0x7AAE
+0x3568 0x7B08
+0x3569 0x7D1A
+0x356a 0x7CFE
+0x356b 0x7D66
+0x356c 0x65E7
+0x356d 0x725B
+0x356e 0x53BB
+0x356f 0x5C45
+0x3570 0x5DE8
+0x3571 0x62D2
+0x3572 0x62E0
+0x3573 0x6319
+0x3574 0x6E20
+0x3575 0x865A
+0x3576 0x8A31
+0x3577 0x8DDD
+0x3578 0x92F8
+0x3579 0x6F01
+0x357a 0x79A6
+0x357b 0x9B5A
+0x357c 0x4EA8
+0x357d 0x4EAB
+0x357e 0x4EAC
+0x3621 0x4F9B
+0x3622 0x4FA0
+0x3623 0x50D1
+0x3624 0x5147
+0x3625 0x7AF6
+0x3626 0x5171
+0x3627 0x51F6
+0x3628 0x5354
+0x3629 0x5321
+0x362a 0x537F
+0x362b 0x53EB
+0x362c 0x55AC
+0x362d 0x5883
+0x362e 0x5CE1
+0x362f 0x5F37
+0x3630 0x5F4A
+0x3631 0x602F
+0x3632 0x6050
+0x3633 0x606D
+0x3634 0x631F
+0x3635 0x6559
+0x3636 0x6A4B
+0x3637 0x6CC1
+0x3638 0x72C2
+0x3639 0x72ED
+0x363a 0x77EF
+0x363b 0x80F8
+0x363c 0x8105
+0x363d 0x8208
+0x363e 0x854E
+0x363f 0x90F7
+0x3640 0x93E1
+0x3641 0x97FF
+0x3642 0x9957
+0x3643 0x9A5A
+0x3644 0x4EF0
+0x3645 0x51DD
+0x3646 0x5C2D
+0x3647 0x6681
+0x3648 0x696D
+0x3649 0x5C40
+0x364a 0x66F2
+0x364b 0x6975
+0x364c 0x7389
+0x364d 0x6850
+0x364e 0x7C81
+0x364f 0x50C5
+0x3650 0x52E4
+0x3651 0x5747
+0x3652 0x5DFE
+0x3653 0x9326
+0x3654 0x65A4
+0x3655 0x6B23
+0x3656 0x6B3D
+0x3657 0x7434
+0x3658 0x7981
+0x3659 0x79BD
+0x365a 0x7B4B
+0x365b 0x7DCA
+0x365c 0x82B9
+0x365d 0x83CC
+0x365e 0x887F
+0x365f 0x895F
+0x3660 0x8B39
+0x3661 0x8FD1
+0x3662 0x91D1
+0x3663 0x541F
+0x3664 0x9280
+0x3665 0x4E5D
+0x3666 0x5036
+0x3667 0x53E5
+0x3668 0x533A
+0x3669 0x72D7
+0x366a 0x7396
+0x366b 0x77E9
+0x366c 0x82E6
+0x366d 0x8EAF
+0x366e 0x99C6
+0x366f 0x99C8
+0x3670 0x99D2
+0x3671 0x5177
+0x3672 0x611A
+0x3673 0x865E
+0x3674 0x55B0
+0x3675 0x7A7A
+0x3676 0x5076
+0x3677 0x5BD3
+0x3678 0x9047
+0x3679 0x9685
+0x367a 0x4E32
+0x367b 0x6ADB
+0x367c 0x91E7
+0x367d 0x5C51
+0x367e 0x5C48
+0x3721 0x6398
+0x3722 0x7A9F
+0x3723 0x6C93
+0x3724 0x9774
+0x3725 0x8F61
+0x3726 0x7AAA
+0x3727 0x718A
+0x3728 0x9688
+0x3729 0x7C82
+0x372a 0x6817
+0x372b 0x7E70
+0x372c 0x6851
+0x372d 0x936C
+0x372e 0x52F2
+0x372f 0x541B
+0x3730 0x85AB
+0x3731 0x8A13
+0x3732 0x7FA4
+0x3733 0x8ECD
+0x3734 0x90E1
+0x3735 0x5366
+0x3736 0x8888
+0x3737 0x7941
+0x3738 0x4FC2
+0x3739 0x50BE
+0x373a 0x5211
+0x373b 0x5144
+0x373c 0x5553
+0x373d 0x572D
+0x373e 0x73EA
+0x373f 0x578B
+0x3740 0x5951
+0x3741 0x5F62
+0x3742 0x5F84
+0x3743 0x6075
+0x3744 0x6176
+0x3745 0x6167
+0x3746 0x61A9
+0x3747 0x63B2
+0x3748 0x643A
+0x3749 0x656C
+0x374a 0x666F
+0x374b 0x6842
+0x374c 0x6E13
+0x374d 0x7566
+0x374e 0x7A3D
+0x374f 0x7CFB
+0x3750 0x7D4C
+0x3751 0x7D99
+0x3752 0x7E4B
+0x3753 0x7F6B
+0x3754 0x830E
+0x3755 0x834A
+0x3756 0x86CD
+0x3757 0x8A08
+0x3758 0x8A63
+0x3759 0x8B66
+0x375a 0x8EFD
+0x375b 0x981A
+0x375c 0x9D8F
+0x375d 0x82B8
+0x375e 0x8FCE
+0x375f 0x9BE8
+0x3760 0x5287
+0x3761 0x621F
+0x3762 0x6483
+0x3763 0x6FC0
+0x3764 0x9699
+0x3765 0x6841
+0x3766 0x5091
+0x3767 0x6B20
+0x3768 0x6C7A
+0x3769 0x6F54
+0x376a 0x7A74
+0x376b 0x7D50
+0x376c 0x8840
+0x376d 0x8A23
+0x376e 0x6708
+0x376f 0x4EF6
+0x3770 0x5039
+0x3771 0x5026
+0x3772 0x5065
+0x3773 0x517C
+0x3774 0x5238
+0x3775 0x5263
+0x3776 0x55A7
+0x3777 0x570F
+0x3778 0x5805
+0x3779 0x5ACC
+0x377a 0x5EFA
+0x377b 0x61B2
+0x377c 0x61F8
+0x377d 0x62F3
+0x377e 0x6372
+0x3821 0x691C
+0x3822 0x6A29
+0x3823 0x727D
+0x3824 0x72AC
+0x3825 0x732E
+0x3826 0x7814
+0x3827 0x786F
+0x3828 0x7D79
+0x3829 0x770C
+0x382a 0x80A9
+0x382b 0x898B
+0x382c 0x8B19
+0x382d 0x8CE2
+0x382e 0x8ED2
+0x382f 0x9063
+0x3830 0x9375
+0x3831 0x967A
+0x3832 0x9855
+0x3833 0x9A13
+0x3834 0x9E78
+0x3835 0x5143
+0x3836 0x539F
+0x3837 0x53B3
+0x3838 0x5E7B
+0x3839 0x5F26
+0x383a 0x6E1B
+0x383b 0x6E90
+0x383c 0x7384
+0x383d 0x73FE
+0x383e 0x7D43
+0x383f 0x8237
+0x3840 0x8A00
+0x3841 0x8AFA
+0x3842 0x9650
+0x3843 0x4E4E
+0x3844 0x500B
+0x3845 0x53E4
+0x3846 0x547C
+0x3847 0x56FA
+0x3848 0x59D1
+0x3849 0x5B64
+0x384a 0x5DF1
+0x384b 0x5EAB
+0x384c 0x5F27
+0x384d 0x6238
+0x384e 0x6545
+0x384f 0x67AF
+0x3850 0x6E56
+0x3851 0x72D0
+0x3852 0x7CCA
+0x3853 0x88B4
+0x3854 0x80A1
+0x3855 0x80E1
+0x3856 0x83F0
+0x3857 0x864E
+0x3858 0x8A87
+0x3859 0x8DE8
+0x385a 0x9237
+0x385b 0x96C7
+0x385c 0x9867
+0x385d 0x9F13
+0x385e 0x4E94
+0x385f 0x4E92
+0x3860 0x4F0D
+0x3861 0x5348
+0x3862 0x5449
+0x3863 0x543E
+0x3864 0x5A2F
+0x3865 0x5F8C
+0x3866 0x5FA1
+0x3867 0x609F
+0x3868 0x68A7
+0x3869 0x6A8E
+0x386a 0x745A
+0x386b 0x7881
+0x386c 0x8A9E
+0x386d 0x8AA4
+0x386e 0x8B77
+0x386f 0x9190
+0x3870 0x4E5E
+0x3871 0x9BC9
+0x3872 0x4EA4
+0x3873 0x4F7C
+0x3874 0x4FAF
+0x3875 0x5019
+0x3876 0x5016
+0x3877 0x5149
+0x3878 0x516C
+0x3879 0x529F
+0x387a 0x52B9
+0x387b 0x52FE
+0x387c 0x539A
+0x387d 0x53E3
+0x387e 0x5411
+0x3921 0x540E
+0x3922 0x5589
+0x3923 0x5751
+0x3924 0x57A2
+0x3925 0x597D
+0x3926 0x5B54
+0x3927 0x5B5D
+0x3928 0x5B8F
+0x3929 0x5DE5
+0x392a 0x5DE7
+0x392b 0x5DF7
+0x392c 0x5E78
+0x392d 0x5E83
+0x392e 0x5E9A
+0x392f 0x5EB7
+0x3930 0x5F18
+0x3931 0x6052
+0x3932 0x614C
+0x3933 0x6297
+0x3934 0x62D8
+0x3935 0x63A7
+0x3936 0x653B
+0x3937 0x6602
+0x3938 0x6643
+0x3939 0x66F4
+0x393a 0x676D
+0x393b 0x6821
+0x393c 0x6897
+0x393d 0x69CB
+0x393e 0x6C5F
+0x393f 0x6D2A
+0x3940 0x6D69
+0x3941 0x6E2F
+0x3942 0x6E9D
+0x3943 0x7532
+0x3944 0x7687
+0x3945 0x786C
+0x3946 0x7A3F
+0x3947 0x7CE0
+0x3948 0x7D05
+0x3949 0x7D18
+0x394a 0x7D5E
+0x394b 0x7DB1
+0x394c 0x8015
+0x394d 0x8003
+0x394e 0x80AF
+0x394f 0x80B1
+0x3950 0x8154
+0x3951 0x818F
+0x3952 0x822A
+0x3953 0x8352
+0x3954 0x884C
+0x3955 0x8861
+0x3956 0x8B1B
+0x3957 0x8CA2
+0x3958 0x8CFC
+0x3959 0x90CA
+0x395a 0x9175
+0x395b 0x9271
+0x395c 0x783F
+0x395d 0x92FC
+0x395e 0x95A4
+0x395f 0x964D
+0x3960 0x9805
+0x3961 0x9999
+0x3962 0x9AD8
+0x3963 0x9D3B
+0x3964 0x525B
+0x3965 0x52AB
+0x3966 0x53F7
+0x3967 0x5408
+0x3968 0x58D5
+0x3969 0x62F7
+0x396a 0x6FE0
+0x396b 0x8C6A
+0x396c 0x8F5F
+0x396d 0x9EB9
+0x396e 0x514B
+0x396f 0x523B
+0x3970 0x544A
+0x3971 0x56FD
+0x3972 0x7A40
+0x3973 0x9177
+0x3974 0x9D60
+0x3975 0x9ED2
+0x3976 0x7344
+0x3977 0x6F09
+0x3978 0x8170
+0x3979 0x7511
+0x397a 0x5FFD
+0x397b 0x60DA
+0x397c 0x9AA8
+0x397d 0x72DB
+0x397e 0x8FBC
+0x3a21 0x6B64
+0x3a22 0x9803
+0x3a23 0x4ECA
+0x3a24 0x56F0
+0x3a25 0x5764
+0x3a26 0x58BE
+0x3a27 0x5A5A
+0x3a28 0x6068
+0x3a29 0x61C7
+0x3a2a 0x660F
+0x3a2b 0x6606
+0x3a2c 0x6839
+0x3a2d 0x68B1
+0x3a2e 0x6DF7
+0x3a2f 0x75D5
+0x3a30 0x7D3A
+0x3a31 0x826E
+0x3a32 0x9B42
+0x3a33 0x4E9B
+0x3a34 0x4F50
+0x3a35 0x53C9
+0x3a36 0x5506
+0x3a37 0x5D6F
+0x3a38 0x5DE6
+0x3a39 0x5DEE
+0x3a3a 0x67FB
+0x3a3b 0x6C99
+0x3a3c 0x7473
+0x3a3d 0x7802
+0x3a3e 0x8A50
+0x3a3f 0x9396
+0x3a40 0x88DF
+0x3a41 0x5750
+0x3a42 0x5EA7
+0x3a43 0x632B
+0x3a44 0x50B5
+0x3a45 0x50AC
+0x3a46 0x518D
+0x3a47 0x6700
+0x3a48 0x54C9
+0x3a49 0x585E
+0x3a4a 0x59BB
+0x3a4b 0x5BB0
+0x3a4c 0x5F69
+0x3a4d 0x624D
+0x3a4e 0x63A1
+0x3a4f 0x683D
+0x3a50 0x6B73
+0x3a51 0x6E08
+0x3a52 0x707D
+0x3a53 0x91C7
+0x3a54 0x7280
+0x3a55 0x7815
+0x3a56 0x7826
+0x3a57 0x796D
+0x3a58 0x658E
+0x3a59 0x7D30
+0x3a5a 0x83DC
+0x3a5b 0x88C1
+0x3a5c 0x8F09
+0x3a5d 0x969B
+0x3a5e 0x5264
+0x3a5f 0x5728
+0x3a60 0x6750
+0x3a61 0x7F6A
+0x3a62 0x8CA1
+0x3a63 0x51B4
+0x3a64 0x5742
+0x3a65 0x962A
+0x3a66 0x583A
+0x3a67 0x698A
+0x3a68 0x80B4
+0x3a69 0x54B2
+0x3a6a 0x5D0E
+0x3a6b 0x57FC
+0x3a6c 0x7895
+0x3a6d 0x9DFA
+0x3a6e 0x4F5C
+0x3a6f 0x524A
+0x3a70 0x548B
+0x3a71 0x643E
+0x3a72 0x6628
+0x3a73 0x6714
+0x3a74 0x67F5
+0x3a75 0x7A84
+0x3a76 0x7B56
+0x3a77 0x7D22
+0x3a78 0x932F
+0x3a79 0x685C
+0x3a7a 0x9BAD
+0x3a7b 0x7B39
+0x3a7c 0x5319
+0x3a7d 0x518A
+0x3a7e 0x5237
+0x3b21 0x5BDF
+0x3b22 0x62F6
+0x3b23 0x64AE
+0x3b24 0x64E6
+0x3b25 0x672D
+0x3b26 0x6BBA
+0x3b27 0x85A9
+0x3b28 0x96D1
+0x3b29 0x7690
+0x3b2a 0x9BD6
+0x3b2b 0x634C
+0x3b2c 0x9306
+0x3b2d 0x9BAB
+0x3b2e 0x76BF
+0x3b2f 0x6652
+0x3b30 0x4E09
+0x3b31 0x5098
+0x3b32 0x53C2
+0x3b33 0x5C71
+0x3b34 0x60E8
+0x3b35 0x6492
+0x3b36 0x6563
+0x3b37 0x685F
+0x3b38 0x71E6
+0x3b39 0x73CA
+0x3b3a 0x7523
+0x3b3b 0x7B97
+0x3b3c 0x7E82
+0x3b3d 0x8695
+0x3b3e 0x8B83
+0x3b3f 0x8CDB
+0x3b40 0x9178
+0x3b41 0x9910
+0x3b42 0x65AC
+0x3b43 0x66AB
+0x3b44 0x6B8B
+0x3b45 0x4ED5
+0x3b46 0x4ED4
+0x3b47 0x4F3A
+0x3b48 0x4F7F
+0x3b49 0x523A
+0x3b4a 0x53F8
+0x3b4b 0x53F2
+0x3b4c 0x55E3
+0x3b4d 0x56DB
+0x3b4e 0x58EB
+0x3b4f 0x59CB
+0x3b50 0x59C9
+0x3b51 0x59FF
+0x3b52 0x5B50
+0x3b53 0x5C4D
+0x3b54 0x5E02
+0x3b55 0x5E2B
+0x3b56 0x5FD7
+0x3b57 0x601D
+0x3b58 0x6307
+0x3b59 0x652F
+0x3b5a 0x5B5C
+0x3b5b 0x65AF
+0x3b5c 0x65BD
+0x3b5d 0x65E8
+0x3b5e 0x679D
+0x3b5f 0x6B62
+0x3b60 0x6B7B
+0x3b61 0x6C0F
+0x3b62 0x7345
+0x3b63 0x7949
+0x3b64 0x79C1
+0x3b65 0x7CF8
+0x3b66 0x7D19
+0x3b67 0x7D2B
+0x3b68 0x80A2
+0x3b69 0x8102
+0x3b6a 0x81F3
+0x3b6b 0x8996
+0x3b6c 0x8A5E
+0x3b6d 0x8A69
+0x3b6e 0x8A66
+0x3b6f 0x8A8C
+0x3b70 0x8AEE
+0x3b71 0x8CC7
+0x3b72 0x8CDC
+0x3b73 0x96CC
+0x3b74 0x98FC
+0x3b75 0x6B6F
+0x3b76 0x4E8B
+0x3b77 0x4F3C
+0x3b78 0x4F8D
+0x3b79 0x5150
+0x3b7a 0x5B57
+0x3b7b 0x5BFA
+0x3b7c 0x6148
+0x3b7d 0x6301
+0x3b7e 0x6642
+0x3c21 0x6B21
+0x3c22 0x6ECB
+0x3c23 0x6CBB
+0x3c24 0x723E
+0x3c25 0x74BD
+0x3c26 0x75D4
+0x3c27 0x78C1
+0x3c28 0x793A
+0x3c29 0x800C
+0x3c2a 0x8033
+0x3c2b 0x81EA
+0x3c2c 0x8494
+0x3c2d 0x8F9E
+0x3c2e 0x6C50
+0x3c2f 0x9E7F
+0x3c30 0x5F0F
+0x3c31 0x8B58
+0x3c32 0x9D2B
+0x3c33 0x7AFA
+0x3c34 0x8EF8
+0x3c35 0x5B8D
+0x3c36 0x96EB
+0x3c37 0x4E03
+0x3c38 0x53F1
+0x3c39 0x57F7
+0x3c3a 0x5931
+0x3c3b 0x5AC9
+0x3c3c 0x5BA4
+0x3c3d 0x6089
+0x3c3e 0x6E7F
+0x3c3f 0x6F06
+0x3c40 0x75BE
+0x3c41 0x8CEA
+0x3c42 0x5B9F
+0x3c43 0x8500
+0x3c44 0x7BE0
+0x3c45 0x5072
+0x3c46 0x67F4
+0x3c47 0x829D
+0x3c48 0x5C61
+0x3c49 0x854A
+0x3c4a 0x7E1E
+0x3c4b 0x820E
+0x3c4c 0x5199
+0x3c4d 0x5C04
+0x3c4e 0x6368
+0x3c4f 0x8D66
+0x3c50 0x659C
+0x3c51 0x716E
+0x3c52 0x793E
+0x3c53 0x7D17
+0x3c54 0x8005
+0x3c55 0x8B1D
+0x3c56 0x8ECA
+0x3c57 0x906E
+0x3c58 0x86C7
+0x3c59 0x90AA
+0x3c5a 0x501F
+0x3c5b 0x52FA
+0x3c5c 0x5C3A
+0x3c5d 0x6753
+0x3c5e 0x707C
+0x3c5f 0x7235
+0x3c60 0x914C
+0x3c61 0x91C8
+0x3c62 0x932B
+0x3c63 0x82E5
+0x3c64 0x5BC2
+0x3c65 0x5F31
+0x3c66 0x60F9
+0x3c67 0x4E3B
+0x3c68 0x53D6
+0x3c69 0x5B88
+0x3c6a 0x624B
+0x3c6b 0x6731
+0x3c6c 0x6B8A
+0x3c6d 0x72E9
+0x3c6e 0x73E0
+0x3c6f 0x7A2E
+0x3c70 0x816B
+0x3c71 0x8DA3
+0x3c72 0x9152
+0x3c73 0x9996
+0x3c74 0x5112
+0x3c75 0x53D7
+0x3c76 0x546A
+0x3c77 0x5BFF
+0x3c78 0x6388
+0x3c79 0x6A39
+0x3c7a 0x7DAC
+0x3c7b 0x9700
+0x3c7c 0x56DA
+0x3c7d 0x53CE
+0x3c7e 0x5468
+0x3d21 0x5B97
+0x3d22 0x5C31
+0x3d23 0x5DDE
+0x3d24 0x4FEE
+0x3d25 0x6101
+0x3d26 0x62FE
+0x3d27 0x6D32
+0x3d28 0x79C0
+0x3d29 0x79CB
+0x3d2a 0x7D42
+0x3d2b 0x7E4D
+0x3d2c 0x7FD2
+0x3d2d 0x81ED
+0x3d2e 0x821F
+0x3d2f 0x8490
+0x3d30 0x8846
+0x3d31 0x8972
+0x3d32 0x8B90
+0x3d33 0x8E74
+0x3d34 0x8F2F
+0x3d35 0x9031
+0x3d36 0x914B
+0x3d37 0x916C
+0x3d38 0x96C6
+0x3d39 0x919C
+0x3d3a 0x4EC0
+0x3d3b 0x4F4F
+0x3d3c 0x5145
+0x3d3d 0x5341
+0x3d3e 0x5F93
+0x3d3f 0x620E
+0x3d40 0x67D4
+0x3d41 0x6C41
+0x3d42 0x6E0B
+0x3d43 0x7363
+0x3d44 0x7E26
+0x3d45 0x91CD
+0x3d46 0x9283
+0x3d47 0x53D4
+0x3d48 0x5919
+0x3d49 0x5BBF
+0x3d4a 0x6DD1
+0x3d4b 0x795D
+0x3d4c 0x7E2E
+0x3d4d 0x7C9B
+0x3d4e 0x587E
+0x3d4f 0x719F
+0x3d50 0x51FA
+0x3d51 0x8853
+0x3d52 0x8FF0
+0x3d53 0x4FCA
+0x3d54 0x5CFB
+0x3d55 0x6625
+0x3d56 0x77AC
+0x3d57 0x7AE3
+0x3d58 0x821C
+0x3d59 0x99FF
+0x3d5a 0x51C6
+0x3d5b 0x5FAA
+0x3d5c 0x65EC
+0x3d5d 0x696F
+0x3d5e 0x6B89
+0x3d5f 0x6DF3
+0x3d60 0x6E96
+0x3d61 0x6F64
+0x3d62 0x76FE
+0x3d63 0x7D14
+0x3d64 0x5DE1
+0x3d65 0x9075
+0x3d66 0x9187
+0x3d67 0x9806
+0x3d68 0x51E6
+0x3d69 0x521D
+0x3d6a 0x6240
+0x3d6b 0x6691
+0x3d6c 0x66D9
+0x3d6d 0x6E1A
+0x3d6e 0x5EB6
+0x3d6f 0x7DD2
+0x3d70 0x7F72
+0x3d71 0x66F8
+0x3d72 0x85AF
+0x3d73 0x85F7
+0x3d74 0x8AF8
+0x3d75 0x52A9
+0x3d76 0x53D9
+0x3d77 0x5973
+0x3d78 0x5E8F
+0x3d79 0x5F90
+0x3d7a 0x6055
+0x3d7b 0x92E4
+0x3d7c 0x9664
+0x3d7d 0x50B7
+0x3d7e 0x511F
+0x3e21 0x52DD
+0x3e22 0x5320
+0x3e23 0x5347
+0x3e24 0x53EC
+0x3e25 0x54E8
+0x3e26 0x5546
+0x3e27 0x5531
+0x3e28 0x5617
+0x3e29 0x5968
+0x3e2a 0x59BE
+0x3e2b 0x5A3C
+0x3e2c 0x5BB5
+0x3e2d 0x5C06
+0x3e2e 0x5C0F
+0x3e2f 0x5C11
+0x3e30 0x5C1A
+0x3e31 0x5E84
+0x3e32 0x5E8A
+0x3e33 0x5EE0
+0x3e34 0x5F70
+0x3e35 0x627F
+0x3e36 0x6284
+0x3e37 0x62DB
+0x3e38 0x638C
+0x3e39 0x6377
+0x3e3a 0x6607
+0x3e3b 0x660C
+0x3e3c 0x662D
+0x3e3d 0x6676
+0x3e3e 0x677E
+0x3e3f 0x68A2
+0x3e40 0x6A1F
+0x3e41 0x6A35
+0x3e42 0x6CBC
+0x3e43 0x6D88
+0x3e44 0x6E09
+0x3e45 0x6E58
+0x3e46 0x713C
+0x3e47 0x7126
+0x3e48 0x7167
+0x3e49 0x75C7
+0x3e4a 0x7701
+0x3e4b 0x785D
+0x3e4c 0x7901
+0x3e4d 0x7965
+0x3e4e 0x79F0
+0x3e4f 0x7AE0
+0x3e50 0x7B11
+0x3e51 0x7CA7
+0x3e52 0x7D39
+0x3e53 0x8096
+0x3e54 0x83D6
+0x3e55 0x848B
+0x3e56 0x8549
+0x3e57 0x885D
+0x3e58 0x88F3
+0x3e59 0x8A1F
+0x3e5a 0x8A3C
+0x3e5b 0x8A54
+0x3e5c 0x8A73
+0x3e5d 0x8C61
+0x3e5e 0x8CDE
+0x3e5f 0x91A4
+0x3e60 0x9266
+0x3e61 0x937E
+0x3e62 0x9418
+0x3e63 0x969C
+0x3e64 0x9798
+0x3e65 0x4E0A
+0x3e66 0x4E08
+0x3e67 0x4E1E
+0x3e68 0x4E57
+0x3e69 0x5197
+0x3e6a 0x5270
+0x3e6b 0x57CE
+0x3e6c 0x5834
+0x3e6d 0x58CC
+0x3e6e 0x5B22
+0x3e6f 0x5E38
+0x3e70 0x60C5
+0x3e71 0x64FE
+0x3e72 0x6761
+0x3e73 0x6756
+0x3e74 0x6D44
+0x3e75 0x72B6
+0x3e76 0x7573
+0x3e77 0x7A63
+0x3e78 0x84B8
+0x3e79 0x8B72
+0x3e7a 0x91B8
+0x3e7b 0x9320
+0x3e7c 0x5631
+0x3e7d 0x57F4
+0x3e7e 0x98FE
+0x3f21 0x62ED
+0x3f22 0x690D
+0x3f23 0x6B96
+0x3f24 0x71ED
+0x3f25 0x7E54
+0x3f26 0x8077
+0x3f27 0x8272
+0x3f28 0x89E6
+0x3f29 0x98DF
+0x3f2a 0x8755
+0x3f2b 0x8FB1
+0x3f2c 0x5C3B
+0x3f2d 0x4F38
+0x3f2e 0x4FE1
+0x3f2f 0x4FB5
+0x3f30 0x5507
+0x3f31 0x5A20
+0x3f32 0x5BDD
+0x3f33 0x5BE9
+0x3f34 0x5FC3
+0x3f35 0x614E
+0x3f36 0x632F
+0x3f37 0x65B0
+0x3f38 0x664B
+0x3f39 0x68EE
+0x3f3a 0x699B
+0x3f3b 0x6D78
+0x3f3c 0x6DF1
+0x3f3d 0x7533
+0x3f3e 0x75B9
+0x3f3f 0x771F
+0x3f40 0x795E
+0x3f41 0x79E6
+0x3f42 0x7D33
+0x3f43 0x81E3
+0x3f44 0x82AF
+0x3f45 0x85AA
+0x3f46 0x89AA
+0x3f47 0x8A3A
+0x3f48 0x8EAB
+0x3f49 0x8F9B
+0x3f4a 0x9032
+0x3f4b 0x91DD
+0x3f4c 0x9707
+0x3f4d 0x4EBA
+0x3f4e 0x4EC1
+0x3f4f 0x5203
+0x3f50 0x5875
+0x3f51 0x58EC
+0x3f52 0x5C0B
+0x3f53 0x751A
+0x3f54 0x5C3D
+0x3f55 0x814E
+0x3f56 0x8A0A
+0x3f57 0x8FC5
+0x3f58 0x9663
+0x3f59 0x976D
+0x3f5a 0x7B25
+0x3f5b 0x8ACF
+0x3f5c 0x9808
+0x3f5d 0x9162
+0x3f5e 0x56F3
+0x3f5f 0x53A8
+0x3f60 0x9017
+0x3f61 0x5439
+0x3f62 0x5782
+0x3f63 0x5E25
+0x3f64 0x63A8
+0x3f65 0x6C34
+0x3f66 0x708A
+0x3f67 0x7761
+0x3f68 0x7C8B
+0x3f69 0x7FE0
+0x3f6a 0x8870
+0x3f6b 0x9042
+0x3f6c 0x9154
+0x3f6d 0x9310
+0x3f6e 0x9318
+0x3f6f 0x968F
+0x3f70 0x745E
+0x3f71 0x9AC4
+0x3f72 0x5D07
+0x3f73 0x5D69
+0x3f74 0x6570
+0x3f75 0x67A2
+0x3f76 0x8DA8
+0x3f77 0x96DB
+0x3f78 0x636E
+0x3f79 0x6749
+0x3f7a 0x6919
+0x3f7b 0x83C5
+0x3f7c 0x9817
+0x3f7d 0x96C0
+0x3f7e 0x88FE
+0x4021 0x6F84
+0x4022 0x647A
+0x4023 0x5BF8
+0x4024 0x4E16
+0x4025 0x702C
+0x4026 0x755D
+0x4027 0x662F
+0x4028 0x51C4
+0x4029 0x5236
+0x402a 0x52E2
+0x402b 0x59D3
+0x402c 0x5F81
+0x402d 0x6027
+0x402e 0x6210
+0x402f 0x653F
+0x4030 0x6574
+0x4031 0x661F
+0x4032 0x6674
+0x4033 0x68F2
+0x4034 0x6816
+0x4035 0x6B63
+0x4036 0x6E05
+0x4037 0x7272
+0x4038 0x751F
+0x4039 0x76DB
+0x403a 0x7CBE
+0x403b 0x8056
+0x403c 0x58F0
+0x403d 0x88FD
+0x403e 0x897F
+0x403f 0x8AA0
+0x4040 0x8A93
+0x4041 0x8ACB
+0x4042 0x901D
+0x4043 0x9192
+0x4044 0x9752
+0x4045 0x9759
+0x4046 0x6589
+0x4047 0x7A0E
+0x4048 0x8106
+0x4049 0x96BB
+0x404a 0x5E2D
+0x404b 0x60DC
+0x404c 0x621A
+0x404d 0x65A5
+0x404e 0x6614
+0x404f 0x6790
+0x4050 0x77F3
+0x4051 0x7A4D
+0x4052 0x7C4D
+0x4053 0x7E3E
+0x4054 0x810A
+0x4055 0x8CAC
+0x4056 0x8D64
+0x4057 0x8DE1
+0x4058 0x8E5F
+0x4059 0x78A9
+0x405a 0x5207
+0x405b 0x62D9
+0x405c 0x63A5
+0x405d 0x6442
+0x405e 0x6298
+0x405f 0x8A2D
+0x4060 0x7A83
+0x4061 0x7BC0
+0x4062 0x8AAC
+0x4063 0x96EA
+0x4064 0x7D76
+0x4065 0x820C
+0x4066 0x8749
+0x4067 0x4ED9
+0x4068 0x5148
+0x4069 0x5343
+0x406a 0x5360
+0x406b 0x5BA3
+0x406c 0x5C02
+0x406d 0x5C16
+0x406e 0x5DDD
+0x406f 0x6226
+0x4070 0x6247
+0x4071 0x64B0
+0x4072 0x6813
+0x4073 0x6834
+0x4074 0x6CC9
+0x4075 0x6D45
+0x4076 0x6D17
+0x4077 0x67D3
+0x4078 0x6F5C
+0x4079 0x714E
+0x407a 0x717D
+0x407b 0x65CB
+0x407c 0x7A7F
+0x407d 0x7BAD
+0x407e 0x7DDA
+0x4121 0x7E4A
+0x4122 0x7FA8
+0x4123 0x817A
+0x4124 0x821B
+0x4125 0x8239
+0x4126 0x85A6
+0x4127 0x8A6E
+0x4128 0x8CCE
+0x4129 0x8DF5
+0x412a 0x9078
+0x412b 0x9077
+0x412c 0x92AD
+0x412d 0x9291
+0x412e 0x9583
+0x412f 0x9BAE
+0x4130 0x524D
+0x4131 0x5584
+0x4132 0x6F38
+0x4133 0x7136
+0x4134 0x5168
+0x4135 0x7985
+0x4136 0x7E55
+0x4137 0x81B3
+0x4138 0x7CCE
+0x4139 0x564C
+0x413a 0x5851
+0x413b 0x5CA8
+0x413c 0x63AA
+0x413d 0x66FE
+0x413e 0x66FD
+0x413f 0x695A
+0x4140 0x72D9
+0x4141 0x758F
+0x4142 0x758E
+0x4143 0x790E
+0x4144 0x7956
+0x4145 0x79DF
+0x4146 0x7C97
+0x4147 0x7D20
+0x4148 0x7D44
+0x4149 0x8607
+0x414a 0x8A34
+0x414b 0x963B
+0x414c 0x9061
+0x414d 0x9F20
+0x414e 0x50E7
+0x414f 0x5275
+0x4150 0x53CC
+0x4151 0x53E2
+0x4152 0x5009
+0x4153 0x55AA
+0x4154 0x58EE
+0x4155 0x594F
+0x4156 0x723D
+0x4157 0x5B8B
+0x4158 0x5C64
+0x4159 0x531D
+0x415a 0x60E3
+0x415b 0x60F3
+0x415c 0x635C
+0x415d 0x6383
+0x415e 0x633F
+0x415f 0x63BB
+0x4160 0x64CD
+0x4161 0x65E9
+0x4162 0x66F9
+0x4163 0x5DE3
+0x4164 0x69CD
+0x4165 0x69FD
+0x4166 0x6F15
+0x4167 0x71E5
+0x4168 0x4E89
+0x4169 0x75E9
+0x416a 0x76F8
+0x416b 0x7A93
+0x416c 0x7CDF
+0x416d 0x7DCF
+0x416e 0x7D9C
+0x416f 0x8061
+0x4170 0x8349
+0x4171 0x8358
+0x4172 0x846C
+0x4173 0x84BC
+0x4174 0x85FB
+0x4175 0x88C5
+0x4176 0x8D70
+0x4177 0x9001
+0x4178 0x906D
+0x4179 0x9397
+0x417a 0x971C
+0x417b 0x9A12
+0x417c 0x50CF
+0x417d 0x5897
+0x417e 0x618E
+0x4221 0x81D3
+0x4222 0x8535
+0x4223 0x8D08
+0x4224 0x9020
+0x4225 0x4FC3
+0x4226 0x5074
+0x4227 0x5247
+0x4228 0x5373
+0x4229 0x606F
+0x422a 0x6349
+0x422b 0x675F
+0x422c 0x6E2C
+0x422d 0x8DB3
+0x422e 0x901F
+0x422f 0x4FD7
+0x4230 0x5C5E
+0x4231 0x8CCA
+0x4232 0x65CF
+0x4233 0x7D9A
+0x4234 0x5352
+0x4235 0x8896
+0x4236 0x5176
+0x4237 0x63C3
+0x4238 0x5B58
+0x4239 0x5B6B
+0x423a 0x5C0A
+0x423b 0x640D
+0x423c 0x6751
+0x423d 0x905C
+0x423e 0x4ED6
+0x423f 0x591A
+0x4240 0x592A
+0x4241 0x6C70
+0x4242 0x8A51
+0x4243 0x553E
+0x4244 0x5815
+0x4245 0x59A5
+0x4246 0x60F0
+0x4247 0x6253
+0x4248 0x67C1
+0x4249 0x8235
+0x424a 0x6955
+0x424b 0x9640
+0x424c 0x99C4
+0x424d 0x9A28
+0x424e 0x4F53
+0x424f 0x5806
+0x4250 0x5BFE
+0x4251 0x8010
+0x4252 0x5CB1
+0x4253 0x5E2F
+0x4254 0x5F85
+0x4255 0x6020
+0x4256 0x614B
+0x4257 0x6234
+0x4258 0x66FF
+0x4259 0x6CF0
+0x425a 0x6EDE
+0x425b 0x80CE
+0x425c 0x817F
+0x425d 0x82D4
+0x425e 0x888B
+0x425f 0x8CB8
+0x4260 0x9000
+0x4261 0x902E
+0x4262 0x968A
+0x4263 0x9EDB
+0x4264 0x9BDB
+0x4265 0x4EE3
+0x4266 0x53F0
+0x4267 0x5927
+0x4268 0x7B2C
+0x4269 0x918D
+0x426a 0x984C
+0x426b 0x9DF9
+0x426c 0x6EDD
+0x426d 0x7027
+0x426e 0x5353
+0x426f 0x5544
+0x4270 0x5B85
+0x4271 0x6258
+0x4272 0x629E
+0x4273 0x62D3
+0x4274 0x6CA2
+0x4275 0x6FEF
+0x4276 0x7422
+0x4277 0x8A17
+0x4278 0x9438
+0x4279 0x6FC1
+0x427a 0x8AFE
+0x427b 0x8338
+0x427c 0x51E7
+0x427d 0x86F8
+0x427e 0x53EA
+0x4321 0x53E9
+0x4322 0x4F46
+0x4323 0x9054
+0x4324 0x8FB0
+0x4325 0x596A
+0x4326 0x8131
+0x4327 0x5DFD
+0x4328 0x7AEA
+0x4329 0x8FBF
+0x432a 0x68DA
+0x432b 0x8C37
+0x432c 0x72F8
+0x432d 0x9C48
+0x432e 0x6A3D
+0x432f 0x8AB0
+0x4330 0x4E39
+0x4331 0x5358
+0x4332 0x5606
+0x4333 0x5766
+0x4334 0x62C5
+0x4335 0x63A2
+0x4336 0x65E6
+0x4337 0x6B4E
+0x4338 0x6DE1
+0x4339 0x6E5B
+0x433a 0x70AD
+0x433b 0x77ED
+0x433c 0x7AEF
+0x433d 0x7BAA
+0x433e 0x7DBB
+0x433f 0x803D
+0x4340 0x80C6
+0x4341 0x86CB
+0x4342 0x8A95
+0x4343 0x935B
+0x4344 0x56E3
+0x4345 0x58C7
+0x4346 0x5F3E
+0x4347 0x65AD
+0x4348 0x6696
+0x4349 0x6A80
+0x434a 0x6BB5
+0x434b 0x7537
+0x434c 0x8AC7
+0x434d 0x5024
+0x434e 0x77E5
+0x434f 0x5730
+0x4350 0x5F1B
+0x4351 0x6065
+0x4352 0x667A
+0x4353 0x6C60
+0x4354 0x75F4
+0x4355 0x7A1A
+0x4356 0x7F6E
+0x4357 0x81F4
+0x4358 0x8718
+0x4359 0x9045
+0x435a 0x99B3
+0x435b 0x7BC9
+0x435c 0x755C
+0x435d 0x7AF9
+0x435e 0x7B51
+0x435f 0x84C4
+0x4360 0x9010
+0x4361 0x79E9
+0x4362 0x7A92
+0x4363 0x8336
+0x4364 0x5AE1
+0x4365 0x7740
+0x4366 0x4E2D
+0x4367 0x4EF2
+0x4368 0x5B99
+0x4369 0x5FE0
+0x436a 0x62BD
+0x436b 0x663C
+0x436c 0x67F1
+0x436d 0x6CE8
+0x436e 0x866B
+0x436f 0x8877
+0x4370 0x8A3B
+0x4371 0x914E
+0x4372 0x92F3
+0x4373 0x99D0
+0x4374 0x6A17
+0x4375 0x7026
+0x4376 0x732A
+0x4377 0x82E7
+0x4378 0x8457
+0x4379 0x8CAF
+0x437a 0x4E01
+0x437b 0x5146
+0x437c 0x51CB
+0x437d 0x558B
+0x437e 0x5BF5
+0x4421 0x5E16
+0x4422 0x5E33
+0x4423 0x5E81
+0x4424 0x5F14
+0x4425 0x5F35
+0x4426 0x5F6B
+0x4427 0x5FB4
+0x4428 0x61F2
+0x4429 0x6311
+0x442a 0x66A2
+0x442b 0x671D
+0x442c 0x6F6E
+0x442d 0x7252
+0x442e 0x753A
+0x442f 0x773A
+0x4430 0x8074
+0x4431 0x8139
+0x4432 0x8178
+0x4433 0x8776
+0x4434 0x8ABF
+0x4435 0x8ADC
+0x4436 0x8D85
+0x4437 0x8DF3
+0x4438 0x929A
+0x4439 0x9577
+0x443a 0x9802
+0x443b 0x9CE5
+0x443c 0x52C5
+0x443d 0x6357
+0x443e 0x76F4
+0x443f 0x6715
+0x4440 0x6C88
+0x4441 0x73CD
+0x4442 0x8CC3
+0x4443 0x93AE
+0x4444 0x9673
+0x4445 0x6D25
+0x4446 0x589C
+0x4447 0x690E
+0x4448 0x69CC
+0x4449 0x8FFD
+0x444a 0x939A
+0x444b 0x75DB
+0x444c 0x901A
+0x444d 0x585A
+0x444e 0x6802
+0x444f 0x63B4
+0x4450 0x69FB
+0x4451 0x4F43
+0x4452 0x6F2C
+0x4453 0x67D8
+0x4454 0x8FBB
+0x4455 0x8526
+0x4456 0x7DB4
+0x4457 0x9354
+0x4458 0x693F
+0x4459 0x6F70
+0x445a 0x576A
+0x445b 0x58F7
+0x445c 0x5B2C
+0x445d 0x7D2C
+0x445e 0x722A
+0x445f 0x540A
+0x4460 0x91E3
+0x4461 0x9DB4
+0x4462 0x4EAD
+0x4463 0x4F4E
+0x4464 0x505C
+0x4465 0x5075
+0x4466 0x5243
+0x4467 0x8C9E
+0x4468 0x5448
+0x4469 0x5824
+0x446a 0x5B9A
+0x446b 0x5E1D
+0x446c 0x5E95
+0x446d 0x5EAD
+0x446e 0x5EF7
+0x446f 0x5F1F
+0x4470 0x608C
+0x4471 0x62B5
+0x4472 0x633A
+0x4473 0x63D0
+0x4474 0x68AF
+0x4475 0x6C40
+0x4476 0x7887
+0x4477 0x798E
+0x4478 0x7A0B
+0x4479 0x7DE0
+0x447a 0x8247
+0x447b 0x8A02
+0x447c 0x8AE6
+0x447d 0x8E44
+0x447e 0x9013
+0x4521 0x90B8
+0x4522 0x912D
+0x4523 0x91D8
+0x4524 0x9F0E
+0x4525 0x6CE5
+0x4526 0x6458
+0x4527 0x64E2
+0x4528 0x6575
+0x4529 0x6EF4
+0x452a 0x7684
+0x452b 0x7B1B
+0x452c 0x9069
+0x452d 0x93D1
+0x452e 0x6EBA
+0x452f 0x54F2
+0x4530 0x5FB9
+0x4531 0x64A4
+0x4532 0x8F4D
+0x4533 0x8FED
+0x4534 0x9244
+0x4535 0x5178
+0x4536 0x586B
+0x4537 0x5929
+0x4538 0x5C55
+0x4539 0x5E97
+0x453a 0x6DFB
+0x453b 0x7E8F
+0x453c 0x751C
+0x453d 0x8CBC
+0x453e 0x8EE2
+0x453f 0x985B
+0x4540 0x70B9
+0x4541 0x4F1D
+0x4542 0x6BBF
+0x4543 0x6FB1
+0x4544 0x7530
+0x4545 0x96FB
+0x4546 0x514E
+0x4547 0x5410
+0x4548 0x5835
+0x4549 0x5857
+0x454a 0x59AC
+0x454b 0x5C60
+0x454c 0x5F92
+0x454d 0x6597
+0x454e 0x675C
+0x454f 0x6E21
+0x4550 0x767B
+0x4551 0x83DF
+0x4552 0x8CED
+0x4553 0x9014
+0x4554 0x90FD
+0x4555 0x934D
+0x4556 0x7825
+0x4557 0x783A
+0x4558 0x52AA
+0x4559 0x5EA6
+0x455a 0x571F
+0x455b 0x5974
+0x455c 0x6012
+0x455d 0x5012
+0x455e 0x515A
+0x455f 0x51AC
+0x4560 0x51CD
+0x4561 0x5200
+0x4562 0x5510
+0x4563 0x5854
+0x4564 0x5858
+0x4565 0x5957
+0x4566 0x5B95
+0x4567 0x5CF6
+0x4568 0x5D8B
+0x4569 0x60BC
+0x456a 0x6295
+0x456b 0x642D
+0x456c 0x6771
+0x456d 0x6843
+0x456e 0x68BC
+0x456f 0x68DF
+0x4570 0x76D7
+0x4571 0x6DD8
+0x4572 0x6E6F
+0x4573 0x6D9B
+0x4574 0x706F
+0x4575 0x71C8
+0x4576 0x5F53
+0x4577 0x75D8
+0x4578 0x7977
+0x4579 0x7B49
+0x457a 0x7B54
+0x457b 0x7B52
+0x457c 0x7CD6
+0x457d 0x7D71
+0x457e 0x5230
+0x4621 0x8463
+0x4622 0x8569
+0x4623 0x85E4
+0x4624 0x8A0E
+0x4625 0x8B04
+0x4626 0x8C46
+0x4627 0x8E0F
+0x4628 0x9003
+0x4629 0x900F
+0x462a 0x9419
+0x462b 0x9676
+0x462c 0x982D
+0x462d 0x9A30
+0x462e 0x95D8
+0x462f 0x50CD
+0x4630 0x52D5
+0x4631 0x540C
+0x4632 0x5802
+0x4633 0x5C0E
+0x4634 0x61A7
+0x4635 0x649E
+0x4636 0x6D1E
+0x4637 0x77B3
+0x4638 0x7AE5
+0x4639 0x80F4
+0x463a 0x8404
+0x463b 0x9053
+0x463c 0x9285
+0x463d 0x5CE0
+0x463e 0x9D07
+0x463f 0x533F
+0x4640 0x5F97
+0x4641 0x5FB3
+0x4642 0x6D9C
+0x4643 0x7279
+0x4644 0x7763
+0x4645 0x79BF
+0x4646 0x7BE4
+0x4647 0x6BD2
+0x4648 0x72EC
+0x4649 0x8AAD
+0x464a 0x6803
+0x464b 0x6A61
+0x464c 0x51F8
+0x464d 0x7A81
+0x464e 0x6934
+0x464f 0x5C4A
+0x4650 0x9CF6
+0x4651 0x82EB
+0x4652 0x5BC5
+0x4653 0x9149
+0x4654 0x701E
+0x4655 0x5678
+0x4656 0x5C6F
+0x4657 0x60C7
+0x4658 0x6566
+0x4659 0x6C8C
+0x465a 0x8C5A
+0x465b 0x9041
+0x465c 0x9813
+0x465d 0x5451
+0x465e 0x66C7
+0x465f 0x920D
+0x4660 0x5948
+0x4661 0x90A3
+0x4662 0x5185
+0x4663 0x4E4D
+0x4664 0x51EA
+0x4665 0x8599
+0x4666 0x8B0E
+0x4667 0x7058
+0x4668 0x637A
+0x4669 0x934B
+0x466a 0x6962
+0x466b 0x99B4
+0x466c 0x7E04
+0x466d 0x7577
+0x466e 0x5357
+0x466f 0x6960
+0x4670 0x8EDF
+0x4671 0x96E3
+0x4672 0x6C5D
+0x4673 0x4E8C
+0x4674 0x5C3C
+0x4675 0x5F10
+0x4676 0x8FE9
+0x4677 0x5302
+0x4678 0x8CD1
+0x4679 0x8089
+0x467a 0x8679
+0x467b 0x5EFF
+0x467c 0x65E5
+0x467d 0x4E73
+0x467e 0x5165
+0x4721 0x5982
+0x4722 0x5C3F
+0x4723 0x97EE
+0x4724 0x4EFB
+0x4725 0x598A
+0x4726 0x5FCD
+0x4727 0x8A8D
+0x4728 0x6FE1
+0x4729 0x79B0
+0x472a 0x7962
+0x472b 0x5BE7
+0x472c 0x8471
+0x472d 0x732B
+0x472e 0x71B1
+0x472f 0x5E74
+0x4730 0x5FF5
+0x4731 0x637B
+0x4732 0x649A
+0x4733 0x71C3
+0x4734 0x7C98
+0x4735 0x4E43
+0x4736 0x5EFC
+0x4737 0x4E4B
+0x4738 0x57DC
+0x4739 0x56A2
+0x473a 0x60A9
+0x473b 0x6FC3
+0x473c 0x7D0D
+0x473d 0x80FD
+0x473e 0x8133
+0x473f 0x81BF
+0x4740 0x8FB2
+0x4741 0x8997
+0x4742 0x86A4
+0x4743 0x5DF4
+0x4744 0x628A
+0x4745 0x64AD
+0x4746 0x8987
+0x4747 0x6777
+0x4748 0x6CE2
+0x4749 0x6D3E
+0x474a 0x7436
+0x474b 0x7834
+0x474c 0x5A46
+0x474d 0x7F75
+0x474e 0x82AD
+0x474f 0x99AC
+0x4750 0x4FF3
+0x4751 0x5EC3
+0x4752 0x62DD
+0x4753 0x6392
+0x4754 0x6557
+0x4755 0x676F
+0x4756 0x76C3
+0x4757 0x724C
+0x4758 0x80CC
+0x4759 0x80BA
+0x475a 0x8F29
+0x475b 0x914D
+0x475c 0x500D
+0x475d 0x57F9
+0x475e 0x5A92
+0x475f 0x6885
+0x4760 0x6973
+0x4761 0x7164
+0x4762 0x72FD
+0x4763 0x8CB7
+0x4764 0x58F2
+0x4765 0x8CE0
+0x4766 0x966A
+0x4767 0x9019
+0x4768 0x877F
+0x4769 0x79E4
+0x476a 0x77E7
+0x476b 0x8429
+0x476c 0x4F2F
+0x476d 0x5265
+0x476e 0x535A
+0x476f 0x62CD
+0x4770 0x67CF
+0x4771 0x6CCA
+0x4772 0x767D
+0x4773 0x7B94
+0x4774 0x7C95
+0x4775 0x8236
+0x4776 0x8584
+0x4777 0x8FEB
+0x4778 0x66DD
+0x4779 0x6F20
+0x477a 0x7206
+0x477b 0x7E1B
+0x477c 0x83AB
+0x477d 0x99C1
+0x477e 0x9EA6
+0x4821 0x51FD
+0x4822 0x7BB1
+0x4823 0x7872
+0x4824 0x7BB8
+0x4825 0x8087
+0x4826 0x7B48
+0x4827 0x6AE8
+0x4828 0x5E61
+0x4829 0x808C
+0x482a 0x7551
+0x482b 0x7560
+0x482c 0x516B
+0x482d 0x9262
+0x482e 0x6E8C
+0x482f 0x767A
+0x4830 0x9197
+0x4831 0x9AEA
+0x4832 0x4F10
+0x4833 0x7F70
+0x4834 0x629C
+0x4835 0x7B4F
+0x4836 0x95A5
+0x4837 0x9CE9
+0x4838 0x567A
+0x4839 0x5859
+0x483a 0x86E4
+0x483b 0x96BC
+0x483c 0x4F34
+0x483d 0x5224
+0x483e 0x534A
+0x483f 0x53CD
+0x4840 0x53DB
+0x4841 0x5E06
+0x4842 0x642C
+0x4843 0x6591
+0x4844 0x677F
+0x4845 0x6C3E
+0x4846 0x6C4E
+0x4847 0x7248
+0x4848 0x72AF
+0x4849 0x73ED
+0x484a 0x7554
+0x484b 0x7E41
+0x484c 0x822C
+0x484d 0x85E9
+0x484e 0x8CA9
+0x484f 0x7BC4
+0x4850 0x91C6
+0x4851 0x7169
+0x4852 0x9812
+0x4853 0x98EF
+0x4854 0x633D
+0x4855 0x6669
+0x4856 0x756A
+0x4857 0x76E4
+0x4858 0x78D0
+0x4859 0x8543
+0x485a 0x86EE
+0x485b 0x532A
+0x485c 0x5351
+0x485d 0x5426
+0x485e 0x5983
+0x485f 0x5E87
+0x4860 0x5F7C
+0x4861 0x60B2
+0x4862 0x6249
+0x4863 0x6279
+0x4864 0x62AB
+0x4865 0x6590
+0x4866 0x6BD4
+0x4867 0x6CCC
+0x4868 0x75B2
+0x4869 0x76AE
+0x486a 0x7891
+0x486b 0x79D8
+0x486c 0x7DCB
+0x486d 0x7F77
+0x486e 0x80A5
+0x486f 0x88AB
+0x4870 0x8AB9
+0x4871 0x8CBB
+0x4872 0x907F
+0x4873 0x975E
+0x4874 0x98DB
+0x4875 0x6A0B
+0x4876 0x7C38
+0x4877 0x5099
+0x4878 0x5C3E
+0x4879 0x5FAE
+0x487a 0x6787
+0x487b 0x6BD8
+0x487c 0x7435
+0x487d 0x7709
+0x487e 0x7F8E
+0x4921 0x9F3B
+0x4922 0x67CA
+0x4923 0x7A17
+0x4924 0x5339
+0x4925 0x758B
+0x4926 0x9AED
+0x4927 0x5F66
+0x4928 0x819D
+0x4929 0x83F1
+0x492a 0x8098
+0x492b 0x5F3C
+0x492c 0x5FC5
+0x492d 0x7562
+0x492e 0x7B46
+0x492f 0x903C
+0x4930 0x6867
+0x4931 0x59EB
+0x4932 0x5A9B
+0x4933 0x7D10
+0x4934 0x767E
+0x4935 0x8B2C
+0x4936 0x4FF5
+0x4937 0x5F6A
+0x4938 0x6A19
+0x4939 0x6C37
+0x493a 0x6F02
+0x493b 0x74E2
+0x493c 0x7968
+0x493d 0x8868
+0x493e 0x8A55
+0x493f 0x8C79
+0x4940 0x5EDF
+0x4941 0x63CF
+0x4942 0x75C5
+0x4943 0x79D2
+0x4944 0x82D7
+0x4945 0x9328
+0x4946 0x92F2
+0x4947 0x849C
+0x4948 0x86ED
+0x4949 0x9C2D
+0x494a 0x54C1
+0x494b 0x5F6C
+0x494c 0x658C
+0x494d 0x6D5C
+0x494e 0x7015
+0x494f 0x8CA7
+0x4950 0x8CD3
+0x4951 0x983B
+0x4952 0x654F
+0x4953 0x74F6
+0x4954 0x4E0D
+0x4955 0x4ED8
+0x4956 0x57E0
+0x4957 0x592B
+0x4958 0x5A66
+0x4959 0x5BCC
+0x495a 0x51A8
+0x495b 0x5E03
+0x495c 0x5E9C
+0x495d 0x6016
+0x495e 0x6276
+0x495f 0x6577
+0x4960 0x65A7
+0x4961 0x666E
+0x4962 0x6D6E
+0x4963 0x7236
+0x4964 0x7B26
+0x4965 0x8150
+0x4966 0x819A
+0x4967 0x8299
+0x4968 0x8B5C
+0x4969 0x8CA0
+0x496a 0x8CE6
+0x496b 0x8D74
+0x496c 0x961C
+0x496d 0x9644
+0x496e 0x4FAE
+0x496f 0x64AB
+0x4970 0x6B66
+0x4971 0x821E
+0x4972 0x8461
+0x4973 0x856A
+0x4974 0x90E8
+0x4975 0x5C01
+0x4976 0x6953
+0x4977 0x98A8
+0x4978 0x847A
+0x4979 0x8557
+0x497a 0x4F0F
+0x497b 0x526F
+0x497c 0x5FA9
+0x497d 0x5E45
+0x497e 0x670D
+0x4a21 0x798F
+0x4a22 0x8179
+0x4a23 0x8907
+0x4a24 0x8986
+0x4a25 0x6DF5
+0x4a26 0x5F17
+0x4a27 0x6255
+0x4a28 0x6CB8
+0x4a29 0x4ECF
+0x4a2a 0x7269
+0x4a2b 0x9B92
+0x4a2c 0x5206
+0x4a2d 0x543B
+0x4a2e 0x5674
+0x4a2f 0x58B3
+0x4a30 0x61A4
+0x4a31 0x626E
+0x4a32 0x711A
+0x4a33 0x596E
+0x4a34 0x7C89
+0x4a35 0x7CDE
+0x4a36 0x7D1B
+0x4a37 0x96F0
+0x4a38 0x6587
+0x4a39 0x805E
+0x4a3a 0x4E19
+0x4a3b 0x4F75
+0x4a3c 0x5175
+0x4a3d 0x5840
+0x4a3e 0x5E63
+0x4a3f 0x5E73
+0x4a40 0x5F0A
+0x4a41 0x67C4
+0x4a42 0x4E26
+0x4a43 0x853D
+0x4a44 0x9589
+0x4a45 0x965B
+0x4a46 0x7C73
+0x4a47 0x9801
+0x4a48 0x50FB
+0x4a49 0x58C1
+0x4a4a 0x7656
+0x4a4b 0x78A7
+0x4a4c 0x5225
+0x4a4d 0x77A5
+0x4a4e 0x8511
+0x4a4f 0x7B86
+0x4a50 0x504F
+0x4a51 0x5909
+0x4a52 0x7247
+0x4a53 0x7BC7
+0x4a54 0x7DE8
+0x4a55 0x8FBA
+0x4a56 0x8FD4
+0x4a57 0x904D
+0x4a58 0x4FBF
+0x4a59 0x52C9
+0x4a5a 0x5A29
+0x4a5b 0x5F01
+0x4a5c 0x97AD
+0x4a5d 0x4FDD
+0x4a5e 0x8217
+0x4a5f 0x92EA
+0x4a60 0x5703
+0x4a61 0x6355
+0x4a62 0x6B69
+0x4a63 0x752B
+0x4a64 0x88DC
+0x4a65 0x8F14
+0x4a66 0x7A42
+0x4a67 0x52DF
+0x4a68 0x5893
+0x4a69 0x6155
+0x4a6a 0x620A
+0x4a6b 0x66AE
+0x4a6c 0x6BCD
+0x4a6d 0x7C3F
+0x4a6e 0x83E9
+0x4a6f 0x5023
+0x4a70 0x4FF8
+0x4a71 0x5305
+0x4a72 0x5446
+0x4a73 0x5831
+0x4a74 0x5949
+0x4a75 0x5B9D
+0x4a76 0x5CF0
+0x4a77 0x5CEF
+0x4a78 0x5D29
+0x4a79 0x5E96
+0x4a7a 0x62B1
+0x4a7b 0x6367
+0x4a7c 0x653E
+0x4a7d 0x65B9
+0x4a7e 0x670B
+0x4b21 0x6CD5
+0x4b22 0x6CE1
+0x4b23 0x70F9
+0x4b24 0x7832
+0x4b25 0x7E2B
+0x4b26 0x80DE
+0x4b27 0x82B3
+0x4b28 0x840C
+0x4b29 0x84EC
+0x4b2a 0x8702
+0x4b2b 0x8912
+0x4b2c 0x8A2A
+0x4b2d 0x8C4A
+0x4b2e 0x90A6
+0x4b2f 0x92D2
+0x4b30 0x98FD
+0x4b31 0x9CF3
+0x4b32 0x9D6C
+0x4b33 0x4E4F
+0x4b34 0x4EA1
+0x4b35 0x508D
+0x4b36 0x5256
+0x4b37 0x574A
+0x4b38 0x59A8
+0x4b39 0x5E3D
+0x4b3a 0x5FD8
+0x4b3b 0x5FD9
+0x4b3c 0x623F
+0x4b3d 0x66B4
+0x4b3e 0x671B
+0x4b3f 0x67D0
+0x4b40 0x68D2
+0x4b41 0x5192
+0x4b42 0x7D21
+0x4b43 0x80AA
+0x4b44 0x81A8
+0x4b45 0x8B00
+0x4b46 0x8C8C
+0x4b47 0x8CBF
+0x4b48 0x927E
+0x4b49 0x9632
+0x4b4a 0x5420
+0x4b4b 0x982C
+0x4b4c 0x5317
+0x4b4d 0x50D5
+0x4b4e 0x535C
+0x4b4f 0x58A8
+0x4b50 0x64B2
+0x4b51 0x6734
+0x4b52 0x7267
+0x4b53 0x7766
+0x4b54 0x7A46
+0x4b55 0x91E6
+0x4b56 0x52C3
+0x4b57 0x6CA1
+0x4b58 0x6B86
+0x4b59 0x5800
+0x4b5a 0x5E4C
+0x4b5b 0x5954
+0x4b5c 0x672C
+0x4b5d 0x7FFB
+0x4b5e 0x51E1
+0x4b5f 0x76C6
+0x4b60 0x6469
+0x4b61 0x78E8
+0x4b62 0x9B54
+0x4b63 0x9EBB
+0x4b64 0x57CB
+0x4b65 0x59B9
+0x4b66 0x6627
+0x4b67 0x679A
+0x4b68 0x6BCE
+0x4b69 0x54E9
+0x4b6a 0x69D9
+0x4b6b 0x5E55
+0x4b6c 0x819C
+0x4b6d 0x6795
+0x4b6e 0x9BAA
+0x4b6f 0x67FE
+0x4b70 0x9C52
+0x4b71 0x685D
+0x4b72 0x4EA6
+0x4b73 0x4FE3
+0x4b74 0x53C8
+0x4b75 0x62B9
+0x4b76 0x672B
+0x4b77 0x6CAB
+0x4b78 0x8FC4
+0x4b79 0x4FAD
+0x4b7a 0x7E6D
+0x4b7b 0x9EBF
+0x4b7c 0x4E07
+0x4b7d 0x6162
+0x4b7e 0x6E80
+0x4c21 0x6F2B
+0x4c22 0x8513
+0x4c23 0x5473
+0x4c24 0x672A
+0x4c25 0x9B45
+0x4c26 0x5DF3
+0x4c27 0x7B95
+0x4c28 0x5CAC
+0x4c29 0x5BC6
+0x4c2a 0x871C
+0x4c2b 0x6E4A
+0x4c2c 0x84D1
+0x4c2d 0x7A14
+0x4c2e 0x8108
+0x4c2f 0x5999
+0x4c30 0x7C8D
+0x4c31 0x6C11
+0x4c32 0x7720
+0x4c33 0x52D9
+0x4c34 0x5922
+0x4c35 0x7121
+0x4c36 0x725F
+0x4c37 0x77DB
+0x4c38 0x9727
+0x4c39 0x9D61
+0x4c3a 0x690B
+0x4c3b 0x5A7F
+0x4c3c 0x5A18
+0x4c3d 0x51A5
+0x4c3e 0x540D
+0x4c3f 0x547D
+0x4c40 0x660E
+0x4c41 0x76DF
+0x4c42 0x8FF7
+0x4c43 0x9298
+0x4c44 0x9CF4
+0x4c45 0x59EA
+0x4c46 0x725D
+0x4c47 0x6EC5
+0x4c48 0x514D
+0x4c49 0x68C9
+0x4c4a 0x7DBF
+0x4c4b 0x7DEC
+0x4c4c 0x9762
+0x4c4d 0x9EBA
+0x4c4e 0x6478
+0x4c4f 0x6A21
+0x4c50 0x8302
+0x4c51 0x5984
+0x4c52 0x5B5F
+0x4c53 0x6BDB
+0x4c54 0x731B
+0x4c55 0x76F2
+0x4c56 0x7DB2
+0x4c57 0x8017
+0x4c58 0x8499
+0x4c59 0x5132
+0x4c5a 0x6728
+0x4c5b 0x9ED9
+0x4c5c 0x76EE
+0x4c5d 0x6762
+0x4c5e 0x52FF
+0x4c5f 0x9905
+0x4c60 0x5C24
+0x4c61 0x623B
+0x4c62 0x7C7E
+0x4c63 0x8CB0
+0x4c64 0x554F
+0x4c65 0x60B6
+0x4c66 0x7D0B
+0x4c67 0x9580
+0x4c68 0x5301
+0x4c69 0x4E5F
+0x4c6a 0x51B6
+0x4c6b 0x591C
+0x4c6c 0x723A
+0x4c6d 0x8036
+0x4c6e 0x91CE
+0x4c6f 0x5F25
+0x4c70 0x77E2
+0x4c71 0x5384
+0x4c72 0x5F79
+0x4c73 0x7D04
+0x4c74 0x85AC
+0x4c75 0x8A33
+0x4c76 0x8E8D
+0x4c77 0x9756
+0x4c78 0x67F3
+0x4c79 0x85AE
+0x4c7a 0x9453
+0x4c7b 0x6109
+0x4c7c 0x6108
+0x4c7d 0x6CB9
+0x4c7e 0x7652
+0x4d21 0x8AED
+0x4d22 0x8F38
+0x4d23 0x552F
+0x4d24 0x4F51
+0x4d25 0x512A
+0x4d26 0x52C7
+0x4d27 0x53CB
+0x4d28 0x5BA5
+0x4d29 0x5E7D
+0x4d2a 0x60A0
+0x4d2b 0x6182
+0x4d2c 0x63D6
+0x4d2d 0x6709
+0x4d2e 0x67DA
+0x4d2f 0x6E67
+0x4d30 0x6D8C
+0x4d31 0x7336
+0x4d32 0x7337
+0x4d33 0x7531
+0x4d34 0x7950
+0x4d35 0x88D5
+0x4d36 0x8A98
+0x4d37 0x904A
+0x4d38 0x9091
+0x4d39 0x90F5
+0x4d3a 0x96C4
+0x4d3b 0x878D
+0x4d3c 0x5915
+0x4d3d 0x4E88
+0x4d3e 0x4F59
+0x4d3f 0x4E0E
+0x4d40 0x8A89
+0x4d41 0x8F3F
+0x4d42 0x9810
+0x4d43 0x50AD
+0x4d44 0x5E7C
+0x4d45 0x5996
+0x4d46 0x5BB9
+0x4d47 0x5EB8
+0x4d48 0x63DA
+0x4d49 0x63FA
+0x4d4a 0x64C1
+0x4d4b 0x66DC
+0x4d4c 0x694A
+0x4d4d 0x69D8
+0x4d4e 0x6D0B
+0x4d4f 0x6EB6
+0x4d50 0x7194
+0x4d51 0x7528
+0x4d52 0x7AAF
+0x4d53 0x7F8A
+0x4d54 0x8000
+0x4d55 0x8449
+0x4d56 0x84C9
+0x4d57 0x8981
+0x4d58 0x8B21
+0x4d59 0x8E0A
+0x4d5a 0x9065
+0x4d5b 0x967D
+0x4d5c 0x990A
+0x4d5d 0x617E
+0x4d5e 0x6291
+0x4d5f 0x6B32
+0x4d60 0x6C83
+0x4d61 0x6D74
+0x4d62 0x7FCC
+0x4d63 0x7FFC
+0x4d64 0x6DC0
+0x4d65 0x7F85
+0x4d66 0x87BA
+0x4d67 0x88F8
+0x4d68 0x6765
+0x4d69 0x83B1
+0x4d6a 0x983C
+0x4d6b 0x96F7
+0x4d6c 0x6D1B
+0x4d6d 0x7D61
+0x4d6e 0x843D
+0x4d6f 0x916A
+0x4d70 0x4E71
+0x4d71 0x5375
+0x4d72 0x5D50
+0x4d73 0x6B04
+0x4d74 0x6FEB
+0x4d75 0x85CD
+0x4d76 0x862D
+0x4d77 0x89A7
+0x4d78 0x5229
+0x4d79 0x540F
+0x4d7a 0x5C65
+0x4d7b 0x674E
+0x4d7c 0x68A8
+0x4d7d 0x7406
+0x4d7e 0x7483
+0x4e21 0x75E2
+0x4e22 0x88CF
+0x4e23 0x88E1
+0x4e24 0x91CC
+0x4e25 0x96E2
+0x4e26 0x9678
+0x4e27 0x5F8B
+0x4e28 0x7387
+0x4e29 0x7ACB
+0x4e2a 0x844E
+0x4e2b 0x63A0
+0x4e2c 0x7565
+0x4e2d 0x5289
+0x4e2e 0x6D41
+0x4e2f 0x6E9C
+0x4e30 0x7409
+0x4e31 0x7559
+0x4e32 0x786B
+0x4e33 0x7C92
+0x4e34 0x9686
+0x4e35 0x7ADC
+0x4e36 0x9F8D
+0x4e37 0x4FB6
+0x4e38 0x616E
+0x4e39 0x65C5
+0x4e3a 0x865C
+0x4e3b 0x4E86
+0x4e3c 0x4EAE
+0x4e3d 0x50DA
+0x4e3e 0x4E21
+0x4e3f 0x51CC
+0x4e40 0x5BEE
+0x4e41 0x6599
+0x4e42 0x6881
+0x4e43 0x6DBC
+0x4e44 0x731F
+0x4e45 0x7642
+0x4e46 0x77AD
+0x4e47 0x7A1C
+0x4e48 0x7CE7
+0x4e49 0x826F
+0x4e4a 0x8AD2
+0x4e4b 0x907C
+0x4e4c 0x91CF
+0x4e4d 0x9675
+0x4e4e 0x9818
+0x4e4f 0x529B
+0x4e50 0x7DD1
+0x4e51 0x502B
+0x4e52 0x5398
+0x4e53 0x6797
+0x4e54 0x6DCB
+0x4e55 0x71D0
+0x4e56 0x7433
+0x4e57 0x81E8
+0x4e58 0x8F2A
+0x4e59 0x96A3
+0x4e5a 0x9C57
+0x4e5b 0x9E9F
+0x4e5c 0x7460
+0x4e5d 0x5841
+0x4e5e 0x6D99
+0x4e5f 0x7D2F
+0x4e60 0x985E
+0x4e61 0x4EE4
+0x4e62 0x4F36
+0x4e63 0x4F8B
+0x4e64 0x51B7
+0x4e65 0x52B1
+0x4e66 0x5DBA
+0x4e67 0x601C
+0x4e68 0x73B2
+0x4e69 0x793C
+0x4e6a 0x82D3
+0x4e6b 0x9234
+0x4e6c 0x96B7
+0x4e6d 0x96F6
+0x4e6e 0x970A
+0x4e6f 0x9E97
+0x4e70 0x9F62
+0x4e71 0x66A6
+0x4e72 0x6B74
+0x4e73 0x5217
+0x4e74 0x52A3
+0x4e75 0x70C8
+0x4e76 0x88C2
+0x4e77 0x5EC9
+0x4e78 0x604B
+0x4e79 0x6190
+0x4e7a 0x6F23
+0x4e7b 0x7149
+0x4e7c 0x7C3E
+0x4e7d 0x7DF4
+0x4e7e 0x806F
+0x4f21 0x84EE
+0x4f22 0x9023
+0x4f23 0x932C
+0x4f24 0x5442
+0x4f25 0x9B6F
+0x4f26 0x6AD3
+0x4f27 0x7089
+0x4f28 0x8CC2
+0x4f29 0x8DEF
+0x4f2a 0x9732
+0x4f2b 0x52B4
+0x4f2c 0x5A41
+0x4f2d 0x5ECA
+0x4f2e 0x5F04
+0x4f2f 0x6717
+0x4f30 0x697C
+0x4f31 0x6994
+0x4f32 0x6D6A
+0x4f33 0x6F0F
+0x4f34 0x7262
+0x4f35 0x72FC
+0x4f36 0x7BED
+0x4f37 0x8001
+0x4f38 0x807E
+0x4f39 0x874B
+0x4f3a 0x90CE
+0x4f3b 0x516D
+0x4f3c 0x9E93
+0x4f3d 0x7984
+0x4f3e 0x808B
+0x4f3f 0x9332
+0x4f40 0x8AD6
+0x4f41 0x502D
+0x4f42 0x548C
+0x4f43 0x8A71
+0x4f44 0x6B6A
+0x4f45 0x8CC4
+0x4f46 0x8107
+0x4f47 0x60D1
+0x4f48 0x67A0
+0x4f49 0x9DF2
+0x4f4a 0x4E99
+0x4f4b 0x4E98
+0x4f4c 0x9C10
+0x4f4d 0x8A6B
+0x4f4e 0x85C1
+0x4f4f 0x8568
+0x4f50 0x6900
+0x4f51 0x6E7E
+0x4f52 0x7897
+0x4f53 0x8155
+0x5021 0x5F0C
+0x5022 0x4E10
+0x5023 0x4E15
+0x5024 0x4E2A
+0x5025 0x4E31
+0x5026 0x4E36
+0x5027 0x4E3C
+0x5028 0x4E3F
+0x5029 0x4E42
+0x502a 0x4E56
+0x502b 0x4E58
+0x502c 0x4E82
+0x502d 0x4E85
+0x502e 0x8C6B
+0x502f 0x4E8A
+0x5030 0x8212
+0x5031 0x5F0D
+0x5032 0x4E8E
+0x5033 0x4E9E
+0x5034 0x4E9F
+0x5035 0x4EA0
+0x5036 0x4EA2
+0x5037 0x4EB0
+0x5038 0x4EB3
+0x5039 0x4EB6
+0x503a 0x4ECE
+0x503b 0x4ECD
+0x503c 0x4EC4
+0x503d 0x4EC6
+0x503e 0x4EC2
+0x503f 0x4ED7
+0x5040 0x4EDE
+0x5041 0x4EED
+0x5042 0x4EDF
+0x5043 0x4EF7
+0x5044 0x4F09
+0x5045 0x4F5A
+0x5046 0x4F30
+0x5047 0x4F5B
+0x5048 0x4F5D
+0x5049 0x4F57
+0x504a 0x4F47
+0x504b 0x4F76
+0x504c 0x4F88
+0x504d 0x4F8F
+0x504e 0x4F98
+0x504f 0x4F7B
+0x5050 0x4F69
+0x5051 0x4F70
+0x5052 0x4F91
+0x5053 0x4F6F
+0x5054 0x4F86
+0x5055 0x4F96
+0x5056 0x5118
+0x5057 0x4FD4
+0x5058 0x4FDF
+0x5059 0x4FCE
+0x505a 0x4FD8
+0x505b 0x4FDB
+0x505c 0x4FD1
+0x505d 0x4FDA
+0x505e 0x4FD0
+0x505f 0x4FE4
+0x5060 0x4FE5
+0x5061 0x501A
+0x5062 0x5028
+0x5063 0x5014
+0x5064 0x502A
+0x5065 0x5025
+0x5066 0x5005
+0x5067 0x4F1C
+0x5068 0x4FF6
+0x5069 0x5021
+0x506a 0x5029
+0x506b 0x502C
+0x506c 0x4FFE
+0x506d 0x4FEF
+0x506e 0x5011
+0x506f 0x5006
+0x5070 0x5043
+0x5071 0x5047
+0x5072 0x6703
+0x5073 0x5055
+0x5074 0x5050
+0x5075 0x5048
+0x5076 0x505A
+0x5077 0x5056
+0x5078 0x506C
+0x5079 0x5078
+0x507a 0x5080
+0x507b 0x509A
+0x507c 0x5085
+0x507d 0x50B4
+0x507e 0x50B2
+0x5121 0x50C9
+0x5122 0x50CA
+0x5123 0x50B3
+0x5124 0x50C2
+0x5125 0x50D6
+0x5126 0x50DE
+0x5127 0x50E5
+0x5128 0x50ED
+0x5129 0x50E3
+0x512a 0x50EE
+0x512b 0x50F9
+0x512c 0x50F5
+0x512d 0x5109
+0x512e 0x5101
+0x512f 0x5102
+0x5130 0x5116
+0x5131 0x5115
+0x5132 0x5114
+0x5133 0x511A
+0x5134 0x5121
+0x5135 0x513A
+0x5136 0x5137
+0x5137 0x513C
+0x5138 0x513B
+0x5139 0x513F
+0x513a 0x5140
+0x513b 0x5152
+0x513c 0x514C
+0x513d 0x5154
+0x513e 0x5162
+0x513f 0x7AF8
+0x5140 0x5169
+0x5141 0x516A
+0x5142 0x516E
+0x5143 0x5180
+0x5144 0x5182
+0x5145 0x56D8
+0x5146 0x518C
+0x5147 0x5189
+0x5148 0x518F
+0x5149 0x5191
+0x514a 0x5193
+0x514b 0x5195
+0x514c 0x5196
+0x514d 0x51A4
+0x514e 0x51A6
+0x514f 0x51A2
+0x5150 0x51A9
+0x5151 0x51AA
+0x5152 0x51AB
+0x5153 0x51B3
+0x5154 0x51B1
+0x5155 0x51B2
+0x5156 0x51B0
+0x5157 0x51B5
+0x5158 0x51BD
+0x5159 0x51C5
+0x515a 0x51C9
+0x515b 0x51DB
+0x515c 0x51E0
+0x515d 0x8655
+0x515e 0x51E9
+0x515f 0x51ED
+0x5160 0x51F0
+0x5161 0x51F5
+0x5162 0x51FE
+0x5163 0x5204
+0x5164 0x520B
+0x5165 0x5214
+0x5166 0x520E
+0x5167 0x5227
+0x5168 0x522A
+0x5169 0x522E
+0x516a 0x5233
+0x516b 0x5239
+0x516c 0x524F
+0x516d 0x5244
+0x516e 0x524B
+0x516f 0x524C
+0x5170 0x525E
+0x5171 0x5254
+0x5172 0x526A
+0x5173 0x5274
+0x5174 0x5269
+0x5175 0x5273
+0x5176 0x527F
+0x5177 0x527D
+0x5178 0x528D
+0x5179 0x5294
+0x517a 0x5292
+0x517b 0x5271
+0x517c 0x5288
+0x517d 0x5291
+0x517e 0x8FA8
+0x5221 0x8FA7
+0x5222 0x52AC
+0x5223 0x52AD
+0x5224 0x52BC
+0x5225 0x52B5
+0x5226 0x52C1
+0x5227 0x52CD
+0x5228 0x52D7
+0x5229 0x52DE
+0x522a 0x52E3
+0x522b 0x52E6
+0x522c 0x98ED
+0x522d 0x52E0
+0x522e 0x52F3
+0x522f 0x52F5
+0x5230 0x52F8
+0x5231 0x52F9
+0x5232 0x5306
+0x5233 0x5308
+0x5234 0x7538
+0x5235 0x530D
+0x5236 0x5310
+0x5237 0x530F
+0x5238 0x5315
+0x5239 0x531A
+0x523a 0x5323
+0x523b 0x532F
+0x523c 0x5331
+0x523d 0x5333
+0x523e 0x5338
+0x523f 0x5340
+0x5240 0x5346
+0x5241 0x5345
+0x5242 0x4E17
+0x5243 0x5349
+0x5244 0x534D
+0x5245 0x51D6
+0x5246 0x535E
+0x5247 0x5369
+0x5248 0x536E
+0x5249 0x5918
+0x524a 0x537B
+0x524b 0x5377
+0x524c 0x5382
+0x524d 0x5396
+0x524e 0x53A0
+0x524f 0x53A6
+0x5250 0x53A5
+0x5251 0x53AE
+0x5252 0x53B0
+0x5253 0x53B6
+0x5254 0x53C3
+0x5255 0x7C12
+0x5256 0x96D9
+0x5257 0x53DF
+0x5258 0x66FC
+0x5259 0x71EE
+0x525a 0x53EE
+0x525b 0x53E8
+0x525c 0x53ED
+0x525d 0x53FA
+0x525e 0x5401
+0x525f 0x543D
+0x5260 0x5440
+0x5261 0x542C
+0x5262 0x542D
+0x5263 0x543C
+0x5264 0x542E
+0x5265 0x5436
+0x5266 0x5429
+0x5267 0x541D
+0x5268 0x544E
+0x5269 0x548F
+0x526a 0x5475
+0x526b 0x548E
+0x526c 0x545F
+0x526d 0x5471
+0x526e 0x5477
+0x526f 0x5470
+0x5270 0x5492
+0x5271 0x547B
+0x5272 0x5480
+0x5273 0x5476
+0x5274 0x5484
+0x5275 0x5490
+0x5276 0x5486
+0x5277 0x54C7
+0x5278 0x54A2
+0x5279 0x54B8
+0x527a 0x54A5
+0x527b 0x54AC
+0x527c 0x54C4
+0x527d 0x54C8
+0x527e 0x54A8
+0x5321 0x54AB
+0x5322 0x54C2
+0x5323 0x54A4
+0x5324 0x54BE
+0x5325 0x54BC
+0x5326 0x54D8
+0x5327 0x54E5
+0x5328 0x54E6
+0x5329 0x550F
+0x532a 0x5514
+0x532b 0x54FD
+0x532c 0x54EE
+0x532d 0x54ED
+0x532e 0x54FA
+0x532f 0x54E2
+0x5330 0x5539
+0x5331 0x5540
+0x5332 0x5563
+0x5333 0x554C
+0x5334 0x552E
+0x5335 0x555C
+0x5336 0x5545
+0x5337 0x5556
+0x5338 0x5557
+0x5339 0x5538
+0x533a 0x5533
+0x533b 0x555D
+0x533c 0x5599
+0x533d 0x5580
+0x533e 0x54AF
+0x533f 0x558A
+0x5340 0x559F
+0x5341 0x557B
+0x5342 0x557E
+0x5343 0x5598
+0x5344 0x559E
+0x5345 0x55AE
+0x5346 0x557C
+0x5347 0x5583
+0x5348 0x55A9
+0x5349 0x5587
+0x534a 0x55A8
+0x534b 0x55DA
+0x534c 0x55C5
+0x534d 0x55DF
+0x534e 0x55C4
+0x534f 0x55DC
+0x5350 0x55E4
+0x5351 0x55D4
+0x5352 0x5614
+0x5353 0x55F7
+0x5354 0x5616
+0x5355 0x55FE
+0x5356 0x55FD
+0x5357 0x561B
+0x5358 0x55F9
+0x5359 0x564E
+0x535a 0x5650
+0x535b 0x71DF
+0x535c 0x5634
+0x535d 0x5636
+0x535e 0x5632
+0x535f 0x5638
+0x5360 0x566B
+0x5361 0x5664
+0x5362 0x562F
+0x5363 0x566C
+0x5364 0x566A
+0x5365 0x5686
+0x5366 0x5680
+0x5367 0x568A
+0x5368 0x56A0
+0x5369 0x5694
+0x536a 0x568F
+0x536b 0x56A5
+0x536c 0x56AE
+0x536d 0x56B6
+0x536e 0x56B4
+0x536f 0x56C2
+0x5370 0x56BC
+0x5371 0x56C1
+0x5372 0x56C3
+0x5373 0x56C0
+0x5374 0x56C8
+0x5375 0x56CE
+0x5376 0x56D1
+0x5377 0x56D3
+0x5378 0x56D7
+0x5379 0x56EE
+0x537a 0x56F9
+0x537b 0x5700
+0x537c 0x56FF
+0x537d 0x5704
+0x537e 0x5709
+0x5421 0x5708
+0x5422 0x570B
+0x5423 0x570D
+0x5424 0x5713
+0x5425 0x5718
+0x5426 0x5716
+0x5427 0x55C7
+0x5428 0x571C
+0x5429 0x5726
+0x542a 0x5737
+0x542b 0x5738
+0x542c 0x574E
+0x542d 0x573B
+0x542e 0x5740
+0x542f 0x574F
+0x5430 0x5769
+0x5431 0x57C0
+0x5432 0x5788
+0x5433 0x5761
+0x5434 0x577F
+0x5435 0x5789
+0x5436 0x5793
+0x5437 0x57A0
+0x5438 0x57B3
+0x5439 0x57A4
+0x543a 0x57AA
+0x543b 0x57B0
+0x543c 0x57C3
+0x543d 0x57C6
+0x543e 0x57D4
+0x543f 0x57D2
+0x5440 0x57D3
+0x5441 0x580A
+0x5442 0x57D6
+0x5443 0x57E3
+0x5444 0x580B
+0x5445 0x5819
+0x5446 0x581D
+0x5447 0x5872
+0x5448 0x5821
+0x5449 0x5862
+0x544a 0x584B
+0x544b 0x5870
+0x544c 0x6BC0
+0x544d 0x5852
+0x544e 0x583D
+0x544f 0x5879
+0x5450 0x5885
+0x5451 0x58B9
+0x5452 0x589F
+0x5453 0x58AB
+0x5454 0x58BA
+0x5455 0x58DE
+0x5456 0x58BB
+0x5457 0x58B8
+0x5458 0x58AE
+0x5459 0x58C5
+0x545a 0x58D3
+0x545b 0x58D1
+0x545c 0x58D7
+0x545d 0x58D9
+0x545e 0x58D8
+0x545f 0x58E5
+0x5460 0x58DC
+0x5461 0x58E4
+0x5462 0x58DF
+0x5463 0x58EF
+0x5464 0x58FA
+0x5465 0x58F9
+0x5466 0x58FB
+0x5467 0x58FC
+0x5468 0x58FD
+0x5469 0x5902
+0x546a 0x590A
+0x546b 0x5910
+0x546c 0x591B
+0x546d 0x68A6
+0x546e 0x5925
+0x546f 0x592C
+0x5470 0x592D
+0x5471 0x5932
+0x5472 0x5938
+0x5473 0x593E
+0x5474 0x7AD2
+0x5475 0x5955
+0x5476 0x5950
+0x5477 0x594E
+0x5478 0x595A
+0x5479 0x5958
+0x547a 0x5962
+0x547b 0x5960
+0x547c 0x5967
+0x547d 0x596C
+0x547e 0x5969
+0x5521 0x5978
+0x5522 0x5981
+0x5523 0x599D
+0x5524 0x4F5E
+0x5525 0x4FAB
+0x5526 0x59A3
+0x5527 0x59B2
+0x5528 0x59C6
+0x5529 0x59E8
+0x552a 0x59DC
+0x552b 0x598D
+0x552c 0x59D9
+0x552d 0x59DA
+0x552e 0x5A25
+0x552f 0x5A1F
+0x5530 0x5A11
+0x5531 0x5A1C
+0x5532 0x5A09
+0x5533 0x5A1A
+0x5534 0x5A40
+0x5535 0x5A6C
+0x5536 0x5A49
+0x5537 0x5A35
+0x5538 0x5A36
+0x5539 0x5A62
+0x553a 0x5A6A
+0x553b 0x5A9A
+0x553c 0x5ABC
+0x553d 0x5ABE
+0x553e 0x5ACB
+0x553f 0x5AC2
+0x5540 0x5ABD
+0x5541 0x5AE3
+0x5542 0x5AD7
+0x5543 0x5AE6
+0x5544 0x5AE9
+0x5545 0x5AD6
+0x5546 0x5AFA
+0x5547 0x5AFB
+0x5548 0x5B0C
+0x5549 0x5B0B
+0x554a 0x5B16
+0x554b 0x5B32
+0x554c 0x5AD0
+0x554d 0x5B2A
+0x554e 0x5B36
+0x554f 0x5B3E
+0x5550 0x5B43
+0x5551 0x5B45
+0x5552 0x5B40
+0x5553 0x5B51
+0x5554 0x5B55
+0x5555 0x5B5A
+0x5556 0x5B5B
+0x5557 0x5B65
+0x5558 0x5B69
+0x5559 0x5B70
+0x555a 0x5B73
+0x555b 0x5B75
+0x555c 0x5B78
+0x555d 0x6588
+0x555e 0x5B7A
+0x555f 0x5B80
+0x5560 0x5B83
+0x5561 0x5BA6
+0x5562 0x5BB8
+0x5563 0x5BC3
+0x5564 0x5BC7
+0x5565 0x5BC9
+0x5566 0x5BD4
+0x5567 0x5BD0
+0x5568 0x5BE4
+0x5569 0x5BE6
+0x556a 0x5BE2
+0x556b 0x5BDE
+0x556c 0x5BE5
+0x556d 0x5BEB
+0x556e 0x5BF0
+0x556f 0x5BF6
+0x5570 0x5BF3
+0x5571 0x5C05
+0x5572 0x5C07
+0x5573 0x5C08
+0x5574 0x5C0D
+0x5575 0x5C13
+0x5576 0x5C20
+0x5577 0x5C22
+0x5578 0x5C28
+0x5579 0x5C38
+0x557a 0x5C39
+0x557b 0x5C41
+0x557c 0x5C46
+0x557d 0x5C4E
+0x557e 0x5C53
+0x5621 0x5C50
+0x5622 0x5C4F
+0x5623 0x5B71
+0x5624 0x5C6C
+0x5625 0x5C6E
+0x5626 0x4E62
+0x5627 0x5C76
+0x5628 0x5C79
+0x5629 0x5C8C
+0x562a 0x5C91
+0x562b 0x5C94
+0x562c 0x599B
+0x562d 0x5CAB
+0x562e 0x5CBB
+0x562f 0x5CB6
+0x5630 0x5CBC
+0x5631 0x5CB7
+0x5632 0x5CC5
+0x5633 0x5CBE
+0x5634 0x5CC7
+0x5635 0x5CD9
+0x5636 0x5CE9
+0x5637 0x5CFD
+0x5638 0x5CFA
+0x5639 0x5CED
+0x563a 0x5D8C
+0x563b 0x5CEA
+0x563c 0x5D0B
+0x563d 0x5D15
+0x563e 0x5D17
+0x563f 0x5D5C
+0x5640 0x5D1F
+0x5641 0x5D1B
+0x5642 0x5D11
+0x5643 0x5D14
+0x5644 0x5D22
+0x5645 0x5D1A
+0x5646 0x5D19
+0x5647 0x5D18
+0x5648 0x5D4C
+0x5649 0x5D52
+0x564a 0x5D4E
+0x564b 0x5D4B
+0x564c 0x5D6C
+0x564d 0x5D73
+0x564e 0x5D76
+0x564f 0x5D87
+0x5650 0x5D84
+0x5651 0x5D82
+0x5652 0x5DA2
+0x5653 0x5D9D
+0x5654 0x5DAC
+0x5655 0x5DAE
+0x5656 0x5DBD
+0x5657 0x5D90
+0x5658 0x5DB7
+0x5659 0x5DBC
+0x565a 0x5DC9
+0x565b 0x5DCD
+0x565c 0x5DD3
+0x565d 0x5DD2
+0x565e 0x5DD6
+0x565f 0x5DDB
+0x5660 0x5DEB
+0x5661 0x5DF2
+0x5662 0x5DF5
+0x5663 0x5E0B
+0x5664 0x5E1A
+0x5665 0x5E19
+0x5666 0x5E11
+0x5667 0x5E1B
+0x5668 0x5E36
+0x5669 0x5E37
+0x566a 0x5E44
+0x566b 0x5E43
+0x566c 0x5E40
+0x566d 0x5E4E
+0x566e 0x5E57
+0x566f 0x5E54
+0x5670 0x5E5F
+0x5671 0x5E62
+0x5672 0x5E64
+0x5673 0x5E47
+0x5674 0x5E75
+0x5675 0x5E76
+0x5676 0x5E7A
+0x5677 0x9EBC
+0x5678 0x5E7F
+0x5679 0x5EA0
+0x567a 0x5EC1
+0x567b 0x5EC2
+0x567c 0x5EC8
+0x567d 0x5ED0
+0x567e 0x5ECF
+0x5721 0x5ED6
+0x5722 0x5EE3
+0x5723 0x5EDD
+0x5724 0x5EDA
+0x5725 0x5EDB
+0x5726 0x5EE2
+0x5727 0x5EE1
+0x5728 0x5EE8
+0x5729 0x5EE9
+0x572a 0x5EEC
+0x572b 0x5EF1
+0x572c 0x5EF3
+0x572d 0x5EF0
+0x572e 0x5EF4
+0x572f 0x5EF8
+0x5730 0x5EFE
+0x5731 0x5F03
+0x5732 0x5F09
+0x5733 0x5F5D
+0x5734 0x5F5C
+0x5735 0x5F0B
+0x5736 0x5F11
+0x5737 0x5F16
+0x5738 0x5F29
+0x5739 0x5F2D
+0x573a 0x5F38
+0x573b 0x5F41
+0x573c 0x5F48
+0x573d 0x5F4C
+0x573e 0x5F4E
+0x573f 0x5F2F
+0x5740 0x5F51
+0x5741 0x5F56
+0x5742 0x5F57
+0x5743 0x5F59
+0x5744 0x5F61
+0x5745 0x5F6D
+0x5746 0x5F73
+0x5747 0x5F77
+0x5748 0x5F83
+0x5749 0x5F82
+0x574a 0x5F7F
+0x574b 0x5F8A
+0x574c 0x5F88
+0x574d 0x5F91
+0x574e 0x5F87
+0x574f 0x5F9E
+0x5750 0x5F99
+0x5751 0x5F98
+0x5752 0x5FA0
+0x5753 0x5FA8
+0x5754 0x5FAD
+0x5755 0x5FBC
+0x5756 0x5FD6
+0x5757 0x5FFB
+0x5758 0x5FE4
+0x5759 0x5FF8
+0x575a 0x5FF1
+0x575b 0x5FDD
+0x575c 0x60B3
+0x575d 0x5FFF
+0x575e 0x6021
+0x575f 0x6060
+0x5760 0x6019
+0x5761 0x6010
+0x5762 0x6029
+0x5763 0x600E
+0x5764 0x6031
+0x5765 0x601B
+0x5766 0x6015
+0x5767 0x602B
+0x5768 0x6026
+0x5769 0x600F
+0x576a 0x603A
+0x576b 0x605A
+0x576c 0x6041
+0x576d 0x606A
+0x576e 0x6077
+0x576f 0x605F
+0x5770 0x604A
+0x5771 0x6046
+0x5772 0x604D
+0x5773 0x6063
+0x5774 0x6043
+0x5775 0x6064
+0x5776 0x6042
+0x5777 0x606C
+0x5778 0x606B
+0x5779 0x6059
+0x577a 0x6081
+0x577b 0x608D
+0x577c 0x60E7
+0x577d 0x6083
+0x577e 0x609A
+0x5821 0x6084
+0x5822 0x609B
+0x5823 0x6096
+0x5824 0x6097
+0x5825 0x6092
+0x5826 0x60A7
+0x5827 0x608B
+0x5828 0x60E1
+0x5829 0x60B8
+0x582a 0x60E0
+0x582b 0x60D3
+0x582c 0x60B4
+0x582d 0x5FF0
+0x582e 0x60BD
+0x582f 0x60C6
+0x5830 0x60B5
+0x5831 0x60D8
+0x5832 0x614D
+0x5833 0x6115
+0x5834 0x6106
+0x5835 0x60F6
+0x5836 0x60F7
+0x5837 0x6100
+0x5838 0x60F4
+0x5839 0x60FA
+0x583a 0x6103
+0x583b 0x6121
+0x583c 0x60FB
+0x583d 0x60F1
+0x583e 0x610D
+0x583f 0x610E
+0x5840 0x6147
+0x5841 0x613E
+0x5842 0x6128
+0x5843 0x6127
+0x5844 0x614A
+0x5845 0x613F
+0x5846 0x613C
+0x5847 0x612C
+0x5848 0x6134
+0x5849 0x613D
+0x584a 0x6142
+0x584b 0x6144
+0x584c 0x6173
+0x584d 0x6177
+0x584e 0x6158
+0x584f 0x6159
+0x5850 0x615A
+0x5851 0x616B
+0x5852 0x6174
+0x5853 0x616F
+0x5854 0x6165
+0x5855 0x6171
+0x5856 0x615F
+0x5857 0x615D
+0x5858 0x6153
+0x5859 0x6175
+0x585a 0x6199
+0x585b 0x6196
+0x585c 0x6187
+0x585d 0x61AC
+0x585e 0x6194
+0x585f 0x619A
+0x5860 0x618A
+0x5861 0x6191
+0x5862 0x61AB
+0x5863 0x61AE
+0x5864 0x61CC
+0x5865 0x61CA
+0x5866 0x61C9
+0x5867 0x61F7
+0x5868 0x61C8
+0x5869 0x61C3
+0x586a 0x61C6
+0x586b 0x61BA
+0x586c 0x61CB
+0x586d 0x7F79
+0x586e 0x61CD
+0x586f 0x61E6
+0x5870 0x61E3
+0x5871 0x61F6
+0x5872 0x61FA
+0x5873 0x61F4
+0x5874 0x61FF
+0x5875 0x61FD
+0x5876 0x61FC
+0x5877 0x61FE
+0x5878 0x6200
+0x5879 0x6208
+0x587a 0x6209
+0x587b 0x620D
+0x587c 0x620C
+0x587d 0x6214
+0x587e 0x621B
+0x5921 0x621E
+0x5922 0x6221
+0x5923 0x622A
+0x5924 0x622E
+0x5925 0x6230
+0x5926 0x6232
+0x5927 0x6233
+0x5928 0x6241
+0x5929 0x624E
+0x592a 0x625E
+0x592b 0x6263
+0x592c 0x625B
+0x592d 0x6260
+0x592e 0x6268
+0x592f 0x627C
+0x5930 0x6282
+0x5931 0x6289
+0x5932 0x627E
+0x5933 0x6292
+0x5934 0x6293
+0x5935 0x6296
+0x5936 0x62D4
+0x5937 0x6283
+0x5938 0x6294
+0x5939 0x62D7
+0x593a 0x62D1
+0x593b 0x62BB
+0x593c 0x62CF
+0x593d 0x62FF
+0x593e 0x62C6
+0x593f 0x64D4
+0x5940 0x62C8
+0x5941 0x62DC
+0x5942 0x62CC
+0x5943 0x62CA
+0x5944 0x62C2
+0x5945 0x62C7
+0x5946 0x629B
+0x5947 0x62C9
+0x5948 0x630C
+0x5949 0x62EE
+0x594a 0x62F1
+0x594b 0x6327
+0x594c 0x6302
+0x594d 0x6308
+0x594e 0x62EF
+0x594f 0x62F5
+0x5950 0x6350
+0x5951 0x633E
+0x5952 0x634D
+0x5953 0x641C
+0x5954 0x634F
+0x5955 0x6396
+0x5956 0x638E
+0x5957 0x6380
+0x5958 0x63AB
+0x5959 0x6376
+0x595a 0x63A3
+0x595b 0x638F
+0x595c 0x6389
+0x595d 0x639F
+0x595e 0x63B5
+0x595f 0x636B
+0x5960 0x6369
+0x5961 0x63BE
+0x5962 0x63E9
+0x5963 0x63C0
+0x5964 0x63C6
+0x5965 0x63E3
+0x5966 0x63C9
+0x5967 0x63D2
+0x5968 0x63F6
+0x5969 0x63C4
+0x596a 0x6416
+0x596b 0x6434
+0x596c 0x6406
+0x596d 0x6413
+0x596e 0x6426
+0x596f 0x6436
+0x5970 0x651D
+0x5971 0x6417
+0x5972 0x6428
+0x5973 0x640F
+0x5974 0x6467
+0x5975 0x646F
+0x5976 0x6476
+0x5977 0x644E
+0x5978 0x652A
+0x5979 0x6495
+0x597a 0x6493
+0x597b 0x64A5
+0x597c 0x64A9
+0x597d 0x6488
+0x597e 0x64BC
+0x5a21 0x64DA
+0x5a22 0x64D2
+0x5a23 0x64C5
+0x5a24 0x64C7
+0x5a25 0x64BB
+0x5a26 0x64D8
+0x5a27 0x64C2
+0x5a28 0x64F1
+0x5a29 0x64E7
+0x5a2a 0x8209
+0x5a2b 0x64E0
+0x5a2c 0x64E1
+0x5a2d 0x62AC
+0x5a2e 0x64E3
+0x5a2f 0x64EF
+0x5a30 0x652C
+0x5a31 0x64F6
+0x5a32 0x64F4
+0x5a33 0x64F2
+0x5a34 0x64FA
+0x5a35 0x6500
+0x5a36 0x64FD
+0x5a37 0x6518
+0x5a38 0x651C
+0x5a39 0x6505
+0x5a3a 0x6524
+0x5a3b 0x6523
+0x5a3c 0x652B
+0x5a3d 0x6534
+0x5a3e 0x6535
+0x5a3f 0x6537
+0x5a40 0x6536
+0x5a41 0x6538
+0x5a42 0x754B
+0x5a43 0x6548
+0x5a44 0x6556
+0x5a45 0x6555
+0x5a46 0x654D
+0x5a47 0x6558
+0x5a48 0x655E
+0x5a49 0x655D
+0x5a4a 0x6572
+0x5a4b 0x6578
+0x5a4c 0x6582
+0x5a4d 0x6583
+0x5a4e 0x8B8A
+0x5a4f 0x659B
+0x5a50 0x659F
+0x5a51 0x65AB
+0x5a52 0x65B7
+0x5a53 0x65C3
+0x5a54 0x65C6
+0x5a55 0x65C1
+0x5a56 0x65C4
+0x5a57 0x65CC
+0x5a58 0x65D2
+0x5a59 0x65DB
+0x5a5a 0x65D9
+0x5a5b 0x65E0
+0x5a5c 0x65E1
+0x5a5d 0x65F1
+0x5a5e 0x6772
+0x5a5f 0x660A
+0x5a60 0x6603
+0x5a61 0x65FB
+0x5a62 0x6773
+0x5a63 0x6635
+0x5a64 0x6636
+0x5a65 0x6634
+0x5a66 0x661C
+0x5a67 0x664F
+0x5a68 0x6644
+0x5a69 0x6649
+0x5a6a 0x6641
+0x5a6b 0x665E
+0x5a6c 0x665D
+0x5a6d 0x6664
+0x5a6e 0x6667
+0x5a6f 0x6668
+0x5a70 0x665F
+0x5a71 0x6662
+0x5a72 0x6670
+0x5a73 0x6683
+0x5a74 0x6688
+0x5a75 0x668E
+0x5a76 0x6689
+0x5a77 0x6684
+0x5a78 0x6698
+0x5a79 0x669D
+0x5a7a 0x66C1
+0x5a7b 0x66B9
+0x5a7c 0x66C9
+0x5a7d 0x66BE
+0x5a7e 0x66BC
+0x5b21 0x66C4
+0x5b22 0x66B8
+0x5b23 0x66D6
+0x5b24 0x66DA
+0x5b25 0x66E0
+0x5b26 0x663F
+0x5b27 0x66E6
+0x5b28 0x66E9
+0x5b29 0x66F0
+0x5b2a 0x66F5
+0x5b2b 0x66F7
+0x5b2c 0x670F
+0x5b2d 0x6716
+0x5b2e 0x671E
+0x5b2f 0x6726
+0x5b30 0x6727
+0x5b31 0x9738
+0x5b32 0x672E
+0x5b33 0x673F
+0x5b34 0x6736
+0x5b35 0x6741
+0x5b36 0x6738
+0x5b37 0x6737
+0x5b38 0x6746
+0x5b39 0x675E
+0x5b3a 0x6760
+0x5b3b 0x6759
+0x5b3c 0x6763
+0x5b3d 0x6764
+0x5b3e 0x6789
+0x5b3f 0x6770
+0x5b40 0x67A9
+0x5b41 0x677C
+0x5b42 0x676A
+0x5b43 0x678C
+0x5b44 0x678B
+0x5b45 0x67A6
+0x5b46 0x67A1
+0x5b47 0x6785
+0x5b48 0x67B7
+0x5b49 0x67EF
+0x5b4a 0x67B4
+0x5b4b 0x67EC
+0x5b4c 0x67B3
+0x5b4d 0x67E9
+0x5b4e 0x67B8
+0x5b4f 0x67E4
+0x5b50 0x67DE
+0x5b51 0x67DD
+0x5b52 0x67E2
+0x5b53 0x67EE
+0x5b54 0x67B9
+0x5b55 0x67CE
+0x5b56 0x67C6
+0x5b57 0x67E7
+0x5b58 0x6A9C
+0x5b59 0x681E
+0x5b5a 0x6846
+0x5b5b 0x6829
+0x5b5c 0x6840
+0x5b5d 0x684D
+0x5b5e 0x6832
+0x5b5f 0x684E
+0x5b60 0x68B3
+0x5b61 0x682B
+0x5b62 0x6859
+0x5b63 0x6863
+0x5b64 0x6877
+0x5b65 0x687F
+0x5b66 0x689F
+0x5b67 0x688F
+0x5b68 0x68AD
+0x5b69 0x6894
+0x5b6a 0x689D
+0x5b6b 0x689B
+0x5b6c 0x6883
+0x5b6d 0x6AAE
+0x5b6e 0x68B9
+0x5b6f 0x6874
+0x5b70 0x68B5
+0x5b71 0x68A0
+0x5b72 0x68BA
+0x5b73 0x690F
+0x5b74 0x688D
+0x5b75 0x687E
+0x5b76 0x6901
+0x5b77 0x68CA
+0x5b78 0x6908
+0x5b79 0x68D8
+0x5b7a 0x6922
+0x5b7b 0x6926
+0x5b7c 0x68E1
+0x5b7d 0x690C
+0x5b7e 0x68CD
+0x5c21 0x68D4
+0x5c22 0x68E7
+0x5c23 0x68D5
+0x5c24 0x6936
+0x5c25 0x6912
+0x5c26 0x6904
+0x5c27 0x68D7
+0x5c28 0x68E3
+0x5c29 0x6925
+0x5c2a 0x68F9
+0x5c2b 0x68E0
+0x5c2c 0x68EF
+0x5c2d 0x6928
+0x5c2e 0x692A
+0x5c2f 0x691A
+0x5c30 0x6923
+0x5c31 0x6921
+0x5c32 0x68C6
+0x5c33 0x6979
+0x5c34 0x6977
+0x5c35 0x695C
+0x5c36 0x6978
+0x5c37 0x696B
+0x5c38 0x6954
+0x5c39 0x697E
+0x5c3a 0x696E
+0x5c3b 0x6939
+0x5c3c 0x6974
+0x5c3d 0x693D
+0x5c3e 0x6959
+0x5c3f 0x6930
+0x5c40 0x6961
+0x5c41 0x695E
+0x5c42 0x695D
+0x5c43 0x6981
+0x5c44 0x696A
+0x5c45 0x69B2
+0x5c46 0x69AE
+0x5c47 0x69D0
+0x5c48 0x69BF
+0x5c49 0x69C1
+0x5c4a 0x69D3
+0x5c4b 0x69BE
+0x5c4c 0x69CE
+0x5c4d 0x5BE8
+0x5c4e 0x69CA
+0x5c4f 0x69DD
+0x5c50 0x69BB
+0x5c51 0x69C3
+0x5c52 0x69A7
+0x5c53 0x6A2E
+0x5c54 0x6991
+0x5c55 0x69A0
+0x5c56 0x699C
+0x5c57 0x6995
+0x5c58 0x69B4
+0x5c59 0x69DE
+0x5c5a 0x69E8
+0x5c5b 0x6A02
+0x5c5c 0x6A1B
+0x5c5d 0x69FF
+0x5c5e 0x6B0A
+0x5c5f 0x69F9
+0x5c60 0x69F2
+0x5c61 0x69E7
+0x5c62 0x6A05
+0x5c63 0x69B1
+0x5c64 0x6A1E
+0x5c65 0x69ED
+0x5c66 0x6A14
+0x5c67 0x69EB
+0x5c68 0x6A0A
+0x5c69 0x6A12
+0x5c6a 0x6AC1
+0x5c6b 0x6A23
+0x5c6c 0x6A13
+0x5c6d 0x6A44
+0x5c6e 0x6A0C
+0x5c6f 0x6A72
+0x5c70 0x6A36
+0x5c71 0x6A78
+0x5c72 0x6A47
+0x5c73 0x6A62
+0x5c74 0x6A59
+0x5c75 0x6A66
+0x5c76 0x6A48
+0x5c77 0x6A38
+0x5c78 0x6A22
+0x5c79 0x6A90
+0x5c7a 0x6A8D
+0x5c7b 0x6AA0
+0x5c7c 0x6A84
+0x5c7d 0x6AA2
+0x5c7e 0x6AA3
+0x5d21 0x6A97
+0x5d22 0x8617
+0x5d23 0x6ABB
+0x5d24 0x6AC3
+0x5d25 0x6AC2
+0x5d26 0x6AB8
+0x5d27 0x6AB3
+0x5d28 0x6AAC
+0x5d29 0x6ADE
+0x5d2a 0x6AD1
+0x5d2b 0x6ADF
+0x5d2c 0x6AAA
+0x5d2d 0x6ADA
+0x5d2e 0x6AEA
+0x5d2f 0x6AFB
+0x5d30 0x6B05
+0x5d31 0x8616
+0x5d32 0x6AFA
+0x5d33 0x6B12
+0x5d34 0x6B16
+0x5d35 0x9B31
+0x5d36 0x6B1F
+0x5d37 0x6B38
+0x5d38 0x6B37
+0x5d39 0x76DC
+0x5d3a 0x6B39
+0x5d3b 0x98EE
+0x5d3c 0x6B47
+0x5d3d 0x6B43
+0x5d3e 0x6B49
+0x5d3f 0x6B50
+0x5d40 0x6B59
+0x5d41 0x6B54
+0x5d42 0x6B5B
+0x5d43 0x6B5F
+0x5d44 0x6B61
+0x5d45 0x6B78
+0x5d46 0x6B79
+0x5d47 0x6B7F
+0x5d48 0x6B80
+0x5d49 0x6B84
+0x5d4a 0x6B83
+0x5d4b 0x6B8D
+0x5d4c 0x6B98
+0x5d4d 0x6B95
+0x5d4e 0x6B9E
+0x5d4f 0x6BA4
+0x5d50 0x6BAA
+0x5d51 0x6BAB
+0x5d52 0x6BAF
+0x5d53 0x6BB2
+0x5d54 0x6BB1
+0x5d55 0x6BB3
+0x5d56 0x6BB7
+0x5d57 0x6BBC
+0x5d58 0x6BC6
+0x5d59 0x6BCB
+0x5d5a 0x6BD3
+0x5d5b 0x6BDF
+0x5d5c 0x6BEC
+0x5d5d 0x6BEB
+0x5d5e 0x6BF3
+0x5d5f 0x6BEF
+0x5d60 0x9EBE
+0x5d61 0x6C08
+0x5d62 0x6C13
+0x5d63 0x6C14
+0x5d64 0x6C1B
+0x5d65 0x6C24
+0x5d66 0x6C23
+0x5d67 0x6C5E
+0x5d68 0x6C55
+0x5d69 0x6C62
+0x5d6a 0x6C6A
+0x5d6b 0x6C82
+0x5d6c 0x6C8D
+0x5d6d 0x6C9A
+0x5d6e 0x6C81
+0x5d6f 0x6C9B
+0x5d70 0x6C7E
+0x5d71 0x6C68
+0x5d72 0x6C73
+0x5d73 0x6C92
+0x5d74 0x6C90
+0x5d75 0x6CC4
+0x5d76 0x6CF1
+0x5d77 0x6CD3
+0x5d78 0x6CBD
+0x5d79 0x6CD7
+0x5d7a 0x6CC5
+0x5d7b 0x6CDD
+0x5d7c 0x6CAE
+0x5d7d 0x6CB1
+0x5d7e 0x6CBE
+0x5e21 0x6CBA
+0x5e22 0x6CDB
+0x5e23 0x6CEF
+0x5e24 0x6CD9
+0x5e25 0x6CEA
+0x5e26 0x6D1F
+0x5e27 0x884D
+0x5e28 0x6D36
+0x5e29 0x6D2B
+0x5e2a 0x6D3D
+0x5e2b 0x6D38
+0x5e2c 0x6D19
+0x5e2d 0x6D35
+0x5e2e 0x6D33
+0x5e2f 0x6D12
+0x5e30 0x6D0C
+0x5e31 0x6D63
+0x5e32 0x6D93
+0x5e33 0x6D64
+0x5e34 0x6D5A
+0x5e35 0x6D79
+0x5e36 0x6D59
+0x5e37 0x6D8E
+0x5e38 0x6D95
+0x5e39 0x6FE4
+0x5e3a 0x6D85
+0x5e3b 0x6DF9
+0x5e3c 0x6E15
+0x5e3d 0x6E0A
+0x5e3e 0x6DB5
+0x5e3f 0x6DC7
+0x5e40 0x6DE6
+0x5e41 0x6DB8
+0x5e42 0x6DC6
+0x5e43 0x6DEC
+0x5e44 0x6DDE
+0x5e45 0x6DCC
+0x5e46 0x6DE8
+0x5e47 0x6DD2
+0x5e48 0x6DC5
+0x5e49 0x6DFA
+0x5e4a 0x6DD9
+0x5e4b 0x6DE4
+0x5e4c 0x6DD5
+0x5e4d 0x6DEA
+0x5e4e 0x6DEE
+0x5e4f 0x6E2D
+0x5e50 0x6E6E
+0x5e51 0x6E2E
+0x5e52 0x6E19
+0x5e53 0x6E72
+0x5e54 0x6E5F
+0x5e55 0x6E3E
+0x5e56 0x6E23
+0x5e57 0x6E6B
+0x5e58 0x6E2B
+0x5e59 0x6E76
+0x5e5a 0x6E4D
+0x5e5b 0x6E1F
+0x5e5c 0x6E43
+0x5e5d 0x6E3A
+0x5e5e 0x6E4E
+0x5e5f 0x6E24
+0x5e60 0x6EFF
+0x5e61 0x6E1D
+0x5e62 0x6E38
+0x5e63 0x6E82
+0x5e64 0x6EAA
+0x5e65 0x6E98
+0x5e66 0x6EC9
+0x5e67 0x6EB7
+0x5e68 0x6ED3
+0x5e69 0x6EBD
+0x5e6a 0x6EAF
+0x5e6b 0x6EC4
+0x5e6c 0x6EB2
+0x5e6d 0x6ED4
+0x5e6e 0x6ED5
+0x5e6f 0x6E8F
+0x5e70 0x6EA5
+0x5e71 0x6EC2
+0x5e72 0x6E9F
+0x5e73 0x6F41
+0x5e74 0x6F11
+0x5e75 0x704C
+0x5e76 0x6EEC
+0x5e77 0x6EF8
+0x5e78 0x6EFE
+0x5e79 0x6F3F
+0x5e7a 0x6EF2
+0x5e7b 0x6F31
+0x5e7c 0x6EEF
+0x5e7d 0x6F32
+0x5e7e 0x6ECC
+0x5f21 0x6F3E
+0x5f22 0x6F13
+0x5f23 0x6EF7
+0x5f24 0x6F86
+0x5f25 0x6F7A
+0x5f26 0x6F78
+0x5f27 0x6F81
+0x5f28 0x6F80
+0x5f29 0x6F6F
+0x5f2a 0x6F5B
+0x5f2b 0x6FF3
+0x5f2c 0x6F6D
+0x5f2d 0x6F82
+0x5f2e 0x6F7C
+0x5f2f 0x6F58
+0x5f30 0x6F8E
+0x5f31 0x6F91
+0x5f32 0x6FC2
+0x5f33 0x6F66
+0x5f34 0x6FB3
+0x5f35 0x6FA3
+0x5f36 0x6FA1
+0x5f37 0x6FA4
+0x5f38 0x6FB9
+0x5f39 0x6FC6
+0x5f3a 0x6FAA
+0x5f3b 0x6FDF
+0x5f3c 0x6FD5
+0x5f3d 0x6FEC
+0x5f3e 0x6FD4
+0x5f3f 0x6FD8
+0x5f40 0x6FF1
+0x5f41 0x6FEE
+0x5f42 0x6FDB
+0x5f43 0x7009
+0x5f44 0x700B
+0x5f45 0x6FFA
+0x5f46 0x7011
+0x5f47 0x7001
+0x5f48 0x700F
+0x5f49 0x6FFE
+0x5f4a 0x701B
+0x5f4b 0x701A
+0x5f4c 0x6F74
+0x5f4d 0x701D
+0x5f4e 0x7018
+0x5f4f 0x701F
+0x5f50 0x7030
+0x5f51 0x703E
+0x5f52 0x7032
+0x5f53 0x7051
+0x5f54 0x7063
+0x5f55 0x7099
+0x5f56 0x7092
+0x5f57 0x70AF
+0x5f58 0x70F1
+0x5f59 0x70AC
+0x5f5a 0x70B8
+0x5f5b 0x70B3
+0x5f5c 0x70AE
+0x5f5d 0x70DF
+0x5f5e 0x70CB
+0x5f5f 0x70DD
+0x5f60 0x70D9
+0x5f61 0x7109
+0x5f62 0x70FD
+0x5f63 0x711C
+0x5f64 0x7119
+0x5f65 0x7165
+0x5f66 0x7155
+0x5f67 0x7188
+0x5f68 0x7166
+0x5f69 0x7162
+0x5f6a 0x714C
+0x5f6b 0x7156
+0x5f6c 0x716C
+0x5f6d 0x718F
+0x5f6e 0x71FB
+0x5f6f 0x7184
+0x5f70 0x7195
+0x5f71 0x71A8
+0x5f72 0x71AC
+0x5f73 0x71D7
+0x5f74 0x71B9
+0x5f75 0x71BE
+0x5f76 0x71D2
+0x5f77 0x71C9
+0x5f78 0x71D4
+0x5f79 0x71CE
+0x5f7a 0x71E0
+0x5f7b 0x71EC
+0x5f7c 0x71E7
+0x5f7d 0x71F5
+0x5f7e 0x71FC
+0x6021 0x71F9
+0x6022 0x71FF
+0x6023 0x720D
+0x6024 0x7210
+0x6025 0x721B
+0x6026 0x7228
+0x6027 0x722D
+0x6028 0x722C
+0x6029 0x7230
+0x602a 0x7232
+0x602b 0x723B
+0x602c 0x723C
+0x602d 0x723F
+0x602e 0x7240
+0x602f 0x7246
+0x6030 0x724B
+0x6031 0x7258
+0x6032 0x7274
+0x6033 0x727E
+0x6034 0x7282
+0x6035 0x7281
+0x6036 0x7287
+0x6037 0x7292
+0x6038 0x7296
+0x6039 0x72A2
+0x603a 0x72A7
+0x603b 0x72B9
+0x603c 0x72B2
+0x603d 0x72C3
+0x603e 0x72C6
+0x603f 0x72C4
+0x6040 0x72CE
+0x6041 0x72D2
+0x6042 0x72E2
+0x6043 0x72E0
+0x6044 0x72E1
+0x6045 0x72F9
+0x6046 0x72F7
+0x6047 0x500F
+0x6048 0x7317
+0x6049 0x730A
+0x604a 0x731C
+0x604b 0x7316
+0x604c 0x731D
+0x604d 0x7334
+0x604e 0x732F
+0x604f 0x7329
+0x6050 0x7325
+0x6051 0x733E
+0x6052 0x734E
+0x6053 0x734F
+0x6054 0x9ED8
+0x6055 0x7357
+0x6056 0x736A
+0x6057 0x7368
+0x6058 0x7370
+0x6059 0x7378
+0x605a 0x7375
+0x605b 0x737B
+0x605c 0x737A
+0x605d 0x73C8
+0x605e 0x73B3
+0x605f 0x73CE
+0x6060 0x73BB
+0x6061 0x73C0
+0x6062 0x73E5
+0x6063 0x73EE
+0x6064 0x73DE
+0x6065 0x74A2
+0x6066 0x7405
+0x6067 0x746F
+0x6068 0x7425
+0x6069 0x73F8
+0x606a 0x7432
+0x606b 0x743A
+0x606c 0x7455
+0x606d 0x743F
+0x606e 0x745F
+0x606f 0x7459
+0x6070 0x7441
+0x6071 0x745C
+0x6072 0x7469
+0x6073 0x7470
+0x6074 0x7463
+0x6075 0x746A
+0x6076 0x7476
+0x6077 0x747E
+0x6078 0x748B
+0x6079 0x749E
+0x607a 0x74A7
+0x607b 0x74CA
+0x607c 0x74CF
+0x607d 0x74D4
+0x607e 0x73F1
+0x6121 0x74E0
+0x6122 0x74E3
+0x6123 0x74E7
+0x6124 0x74E9
+0x6125 0x74EE
+0x6126 0x74F2
+0x6127 0x74F0
+0x6128 0x74F1
+0x6129 0x74F8
+0x612a 0x74F7
+0x612b 0x7504
+0x612c 0x7503
+0x612d 0x7505
+0x612e 0x750C
+0x612f 0x750E
+0x6130 0x750D
+0x6131 0x7515
+0x6132 0x7513
+0x6133 0x751E
+0x6134 0x7526
+0x6135 0x752C
+0x6136 0x753C
+0x6137 0x7544
+0x6138 0x754D
+0x6139 0x754A
+0x613a 0x7549
+0x613b 0x755B
+0x613c 0x7546
+0x613d 0x755A
+0x613e 0x7569
+0x613f 0x7564
+0x6140 0x7567
+0x6141 0x756B
+0x6142 0x756D
+0x6143 0x7578
+0x6144 0x7576
+0x6145 0x7586
+0x6146 0x7587
+0x6147 0x7574
+0x6148 0x758A
+0x6149 0x7589
+0x614a 0x7582
+0x614b 0x7594
+0x614c 0x759A
+0x614d 0x759D
+0x614e 0x75A5
+0x614f 0x75A3
+0x6150 0x75C2
+0x6151 0x75B3
+0x6152 0x75C3
+0x6153 0x75B5
+0x6154 0x75BD
+0x6155 0x75B8
+0x6156 0x75BC
+0x6157 0x75B1
+0x6158 0x75CD
+0x6159 0x75CA
+0x615a 0x75D2
+0x615b 0x75D9
+0x615c 0x75E3
+0x615d 0x75DE
+0x615e 0x75FE
+0x615f 0x75FF
+0x6160 0x75FC
+0x6161 0x7601
+0x6162 0x75F0
+0x6163 0x75FA
+0x6164 0x75F2
+0x6165 0x75F3
+0x6166 0x760B
+0x6167 0x760D
+0x6168 0x7609
+0x6169 0x761F
+0x616a 0x7627
+0x616b 0x7620
+0x616c 0x7621
+0x616d 0x7622
+0x616e 0x7624
+0x616f 0x7634
+0x6170 0x7630
+0x6171 0x763B
+0x6172 0x7647
+0x6173 0x7648
+0x6174 0x7646
+0x6175 0x765C
+0x6176 0x7658
+0x6177 0x7661
+0x6178 0x7662
+0x6179 0x7668
+0x617a 0x7669
+0x617b 0x766A
+0x617c 0x7667
+0x617d 0x766C
+0x617e 0x7670
+0x6221 0x7672
+0x6222 0x7676
+0x6223 0x7678
+0x6224 0x767C
+0x6225 0x7680
+0x6226 0x7683
+0x6227 0x7688
+0x6228 0x768B
+0x6229 0x768E
+0x622a 0x7696
+0x622b 0x7693
+0x622c 0x7699
+0x622d 0x769A
+0x622e 0x76B0
+0x622f 0x76B4
+0x6230 0x76B8
+0x6231 0x76B9
+0x6232 0x76BA
+0x6233 0x76C2
+0x6234 0x76CD
+0x6235 0x76D6
+0x6236 0x76D2
+0x6237 0x76DE
+0x6238 0x76E1
+0x6239 0x76E5
+0x623a 0x76E7
+0x623b 0x76EA
+0x623c 0x862F
+0x623d 0x76FB
+0x623e 0x7708
+0x623f 0x7707
+0x6240 0x7704
+0x6241 0x7729
+0x6242 0x7724
+0x6243 0x771E
+0x6244 0x7725
+0x6245 0x7726
+0x6246 0x771B
+0x6247 0x7737
+0x6248 0x7738
+0x6249 0x7747
+0x624a 0x775A
+0x624b 0x7768
+0x624c 0x776B
+0x624d 0x775B
+0x624e 0x7765
+0x624f 0x777F
+0x6250 0x777E
+0x6251 0x7779
+0x6252 0x778E
+0x6253 0x778B
+0x6254 0x7791
+0x6255 0x77A0
+0x6256 0x779E
+0x6257 0x77B0
+0x6258 0x77B6
+0x6259 0x77B9
+0x625a 0x77BF
+0x625b 0x77BC
+0x625c 0x77BD
+0x625d 0x77BB
+0x625e 0x77C7
+0x625f 0x77CD
+0x6260 0x77D7
+0x6261 0x77DA
+0x6262 0x77DC
+0x6263 0x77E3
+0x6264 0x77EE
+0x6265 0x77FC
+0x6266 0x780C
+0x6267 0x7812
+0x6268 0x7926
+0x6269 0x7820
+0x626a 0x792A
+0x626b 0x7845
+0x626c 0x788E
+0x626d 0x7874
+0x626e 0x7886
+0x626f 0x787C
+0x6270 0x789A
+0x6271 0x788C
+0x6272 0x78A3
+0x6273 0x78B5
+0x6274 0x78AA
+0x6275 0x78AF
+0x6276 0x78D1
+0x6277 0x78C6
+0x6278 0x78CB
+0x6279 0x78D4
+0x627a 0x78BE
+0x627b 0x78BC
+0x627c 0x78C5
+0x627d 0x78CA
+0x627e 0x78EC
+0x6321 0x78E7
+0x6322 0x78DA
+0x6323 0x78FD
+0x6324 0x78F4
+0x6325 0x7907
+0x6326 0x7912
+0x6327 0x7911
+0x6328 0x7919
+0x6329 0x792C
+0x632a 0x792B
+0x632b 0x7940
+0x632c 0x7960
+0x632d 0x7957
+0x632e 0x795F
+0x632f 0x795A
+0x6330 0x7955
+0x6331 0x7953
+0x6332 0x797A
+0x6333 0x797F
+0x6334 0x798A
+0x6335 0x799D
+0x6336 0x79A7
+0x6337 0x9F4B
+0x6338 0x79AA
+0x6339 0x79AE
+0x633a 0x79B3
+0x633b 0x79B9
+0x633c 0x79BA
+0x633d 0x79C9
+0x633e 0x79D5
+0x633f 0x79E7
+0x6340 0x79EC
+0x6341 0x79E1
+0x6342 0x79E3
+0x6343 0x7A08
+0x6344 0x7A0D
+0x6345 0x7A18
+0x6346 0x7A19
+0x6347 0x7A20
+0x6348 0x7A1F
+0x6349 0x7980
+0x634a 0x7A31
+0x634b 0x7A3B
+0x634c 0x7A3E
+0x634d 0x7A37
+0x634e 0x7A43
+0x634f 0x7A57
+0x6350 0x7A49
+0x6351 0x7A61
+0x6352 0x7A62
+0x6353 0x7A69
+0x6354 0x9F9D
+0x6355 0x7A70
+0x6356 0x7A79
+0x6357 0x7A7D
+0x6358 0x7A88
+0x6359 0x7A97
+0x635a 0x7A95
+0x635b 0x7A98
+0x635c 0x7A96
+0x635d 0x7AA9
+0x635e 0x7AC8
+0x635f 0x7AB0
+0x6360 0x7AB6
+0x6361 0x7AC5
+0x6362 0x7AC4
+0x6363 0x7ABF
+0x6364 0x9083
+0x6365 0x7AC7
+0x6366 0x7ACA
+0x6367 0x7ACD
+0x6368 0x7ACF
+0x6369 0x7AD5
+0x636a 0x7AD3
+0x636b 0x7AD9
+0x636c 0x7ADA
+0x636d 0x7ADD
+0x636e 0x7AE1
+0x636f 0x7AE2
+0x6370 0x7AE6
+0x6371 0x7AED
+0x6372 0x7AF0
+0x6373 0x7B02
+0x6374 0x7B0F
+0x6375 0x7B0A
+0x6376 0x7B06
+0x6377 0x7B33
+0x6378 0x7B18
+0x6379 0x7B19
+0x637a 0x7B1E
+0x637b 0x7B35
+0x637c 0x7B28
+0x637d 0x7B36
+0x637e 0x7B50
+0x6421 0x7B7A
+0x6422 0x7B04
+0x6423 0x7B4D
+0x6424 0x7B0B
+0x6425 0x7B4C
+0x6426 0x7B45
+0x6427 0x7B75
+0x6428 0x7B65
+0x6429 0x7B74
+0x642a 0x7B67
+0x642b 0x7B70
+0x642c 0x7B71
+0x642d 0x7B6C
+0x642e 0x7B6E
+0x642f 0x7B9D
+0x6430 0x7B98
+0x6431 0x7B9F
+0x6432 0x7B8D
+0x6433 0x7B9C
+0x6434 0x7B9A
+0x6435 0x7B8B
+0x6436 0x7B92
+0x6437 0x7B8F
+0x6438 0x7B5D
+0x6439 0x7B99
+0x643a 0x7BCB
+0x643b 0x7BC1
+0x643c 0x7BCC
+0x643d 0x7BCF
+0x643e 0x7BB4
+0x643f 0x7BC6
+0x6440 0x7BDD
+0x6441 0x7BE9
+0x6442 0x7C11
+0x6443 0x7C14
+0x6444 0x7BE6
+0x6445 0x7BE5
+0x6446 0x7C60
+0x6447 0x7C00
+0x6448 0x7C07
+0x6449 0x7C13
+0x644a 0x7BF3
+0x644b 0x7BF7
+0x644c 0x7C17
+0x644d 0x7C0D
+0x644e 0x7BF6
+0x644f 0x7C23
+0x6450 0x7C27
+0x6451 0x7C2A
+0x6452 0x7C1F
+0x6453 0x7C37
+0x6454 0x7C2B
+0x6455 0x7C3D
+0x6456 0x7C4C
+0x6457 0x7C43
+0x6458 0x7C54
+0x6459 0x7C4F
+0x645a 0x7C40
+0x645b 0x7C50
+0x645c 0x7C58
+0x645d 0x7C5F
+0x645e 0x7C64
+0x645f 0x7C56
+0x6460 0x7C65
+0x6461 0x7C6C
+0x6462 0x7C75
+0x6463 0x7C83
+0x6464 0x7C90
+0x6465 0x7CA4
+0x6466 0x7CAD
+0x6467 0x7CA2
+0x6468 0x7CAB
+0x6469 0x7CA1
+0x646a 0x7CA8
+0x646b 0x7CB3
+0x646c 0x7CB2
+0x646d 0x7CB1
+0x646e 0x7CAE
+0x646f 0x7CB9
+0x6470 0x7CBD
+0x6471 0x7CC0
+0x6472 0x7CC5
+0x6473 0x7CC2
+0x6474 0x7CD8
+0x6475 0x7CD2
+0x6476 0x7CDC
+0x6477 0x7CE2
+0x6478 0x9B3B
+0x6479 0x7CEF
+0x647a 0x7CF2
+0x647b 0x7CF4
+0x647c 0x7CF6
+0x647d 0x7CFA
+0x647e 0x7D06
+0x6521 0x7D02
+0x6522 0x7D1C
+0x6523 0x7D15
+0x6524 0x7D0A
+0x6525 0x7D45
+0x6526 0x7D4B
+0x6527 0x7D2E
+0x6528 0x7D32
+0x6529 0x7D3F
+0x652a 0x7D35
+0x652b 0x7D46
+0x652c 0x7D73
+0x652d 0x7D56
+0x652e 0x7D4E
+0x652f 0x7D72
+0x6530 0x7D68
+0x6531 0x7D6E
+0x6532 0x7D4F
+0x6533 0x7D63
+0x6534 0x7D93
+0x6535 0x7D89
+0x6536 0x7D5B
+0x6537 0x7D8F
+0x6538 0x7D7D
+0x6539 0x7D9B
+0x653a 0x7DBA
+0x653b 0x7DAE
+0x653c 0x7DA3
+0x653d 0x7DB5
+0x653e 0x7DC7
+0x653f 0x7DBD
+0x6540 0x7DAB
+0x6541 0x7E3D
+0x6542 0x7DA2
+0x6543 0x7DAF
+0x6544 0x7DDC
+0x6545 0x7DB8
+0x6546 0x7D9F
+0x6547 0x7DB0
+0x6548 0x7DD8
+0x6549 0x7DDD
+0x654a 0x7DE4
+0x654b 0x7DDE
+0x654c 0x7DFB
+0x654d 0x7DF2
+0x654e 0x7DE1
+0x654f 0x7E05
+0x6550 0x7E0A
+0x6551 0x7E23
+0x6552 0x7E21
+0x6553 0x7E12
+0x6554 0x7E31
+0x6555 0x7E1F
+0x6556 0x7E09
+0x6557 0x7E0B
+0x6558 0x7E22
+0x6559 0x7E46
+0x655a 0x7E66
+0x655b 0x7E3B
+0x655c 0x7E35
+0x655d 0x7E39
+0x655e 0x7E43
+0x655f 0x7E37
+0x6560 0x7E32
+0x6561 0x7E3A
+0x6562 0x7E67
+0x6563 0x7E5D
+0x6564 0x7E56
+0x6565 0x7E5E
+0x6566 0x7E59
+0x6567 0x7E5A
+0x6568 0x7E79
+0x6569 0x7E6A
+0x656a 0x7E69
+0x656b 0x7E7C
+0x656c 0x7E7B
+0x656d 0x7E83
+0x656e 0x7DD5
+0x656f 0x7E7D
+0x6570 0x8FAE
+0x6571 0x7E7F
+0x6572 0x7E88
+0x6573 0x7E89
+0x6574 0x7E8C
+0x6575 0x7E92
+0x6576 0x7E90
+0x6577 0x7E93
+0x6578 0x7E94
+0x6579 0x7E96
+0x657a 0x7E8E
+0x657b 0x7E9B
+0x657c 0x7E9C
+0x657d 0x7F38
+0x657e 0x7F3A
+0x6621 0x7F45
+0x6622 0x7F4C
+0x6623 0x7F4D
+0x6624 0x7F4E
+0x6625 0x7F50
+0x6626 0x7F51
+0x6627 0x7F55
+0x6628 0x7F54
+0x6629 0x7F58
+0x662a 0x7F5F
+0x662b 0x7F60
+0x662c 0x7F68
+0x662d 0x7F69
+0x662e 0x7F67
+0x662f 0x7F78
+0x6630 0x7F82
+0x6631 0x7F86
+0x6632 0x7F83
+0x6633 0x7F88
+0x6634 0x7F87
+0x6635 0x7F8C
+0x6636 0x7F94
+0x6637 0x7F9E
+0x6638 0x7F9D
+0x6639 0x7F9A
+0x663a 0x7FA3
+0x663b 0x7FAF
+0x663c 0x7FB2
+0x663d 0x7FB9
+0x663e 0x7FAE
+0x663f 0x7FB6
+0x6640 0x7FB8
+0x6641 0x8B71
+0x6642 0x7FC5
+0x6643 0x7FC6
+0x6644 0x7FCA
+0x6645 0x7FD5
+0x6646 0x7FD4
+0x6647 0x7FE1
+0x6648 0x7FE6
+0x6649 0x7FE9
+0x664a 0x7FF3
+0x664b 0x7FF9
+0x664c 0x98DC
+0x664d 0x8006
+0x664e 0x8004
+0x664f 0x800B
+0x6650 0x8012
+0x6651 0x8018
+0x6652 0x8019
+0x6653 0x801C
+0x6654 0x8021
+0x6655 0x8028
+0x6656 0x803F
+0x6657 0x803B
+0x6658 0x804A
+0x6659 0x8046
+0x665a 0x8052
+0x665b 0x8058
+0x665c 0x805A
+0x665d 0x805F
+0x665e 0x8062
+0x665f 0x8068
+0x6660 0x8073
+0x6661 0x8072
+0x6662 0x8070
+0x6663 0x8076
+0x6664 0x8079
+0x6665 0x807D
+0x6666 0x807F
+0x6667 0x8084
+0x6668 0x8086
+0x6669 0x8085
+0x666a 0x809B
+0x666b 0x8093
+0x666c 0x809A
+0x666d 0x80AD
+0x666e 0x5190
+0x666f 0x80AC
+0x6670 0x80DB
+0x6671 0x80E5
+0x6672 0x80D9
+0x6673 0x80DD
+0x6674 0x80C4
+0x6675 0x80DA
+0x6676 0x80D6
+0x6677 0x8109
+0x6678 0x80EF
+0x6679 0x80F1
+0x667a 0x811B
+0x667b 0x8129
+0x667c 0x8123
+0x667d 0x812F
+0x667e 0x814B
+0x6721 0x968B
+0x6722 0x8146
+0x6723 0x813E
+0x6724 0x8153
+0x6725 0x8151
+0x6726 0x80FC
+0x6727 0x8171
+0x6728 0x816E
+0x6729 0x8165
+0x672a 0x8166
+0x672b 0x8174
+0x672c 0x8183
+0x672d 0x8188
+0x672e 0x818A
+0x672f 0x8180
+0x6730 0x8182
+0x6731 0x81A0
+0x6732 0x8195
+0x6733 0x81A4
+0x6734 0x81A3
+0x6735 0x815F
+0x6736 0x8193
+0x6737 0x81A9
+0x6738 0x81B0
+0x6739 0x81B5
+0x673a 0x81BE
+0x673b 0x81B8
+0x673c 0x81BD
+0x673d 0x81C0
+0x673e 0x81C2
+0x673f 0x81BA
+0x6740 0x81C9
+0x6741 0x81CD
+0x6742 0x81D1
+0x6743 0x81D9
+0x6744 0x81D8
+0x6745 0x81C8
+0x6746 0x81DA
+0x6747 0x81DF
+0x6748 0x81E0
+0x6749 0x81E7
+0x674a 0x81FA
+0x674b 0x81FB
+0x674c 0x81FE
+0x674d 0x8201
+0x674e 0x8202
+0x674f 0x8205
+0x6750 0x8207
+0x6751 0x820A
+0x6752 0x820D
+0x6753 0x8210
+0x6754 0x8216
+0x6755 0x8229
+0x6756 0x822B
+0x6757 0x8238
+0x6758 0x8233
+0x6759 0x8240
+0x675a 0x8259
+0x675b 0x8258
+0x675c 0x825D
+0x675d 0x825A
+0x675e 0x825F
+0x675f 0x8264
+0x6760 0x8262
+0x6761 0x8268
+0x6762 0x826A
+0x6763 0x826B
+0x6764 0x822E
+0x6765 0x8271
+0x6766 0x8277
+0x6767 0x8278
+0x6768 0x827E
+0x6769 0x828D
+0x676a 0x8292
+0x676b 0x82AB
+0x676c 0x829F
+0x676d 0x82BB
+0x676e 0x82AC
+0x676f 0x82E1
+0x6770 0x82E3
+0x6771 0x82DF
+0x6772 0x82D2
+0x6773 0x82F4
+0x6774 0x82F3
+0x6775 0x82FA
+0x6776 0x8393
+0x6777 0x8303
+0x6778 0x82FB
+0x6779 0x82F9
+0x677a 0x82DE
+0x677b 0x8306
+0x677c 0x82DC
+0x677d 0x8309
+0x677e 0x82D9
+0x6821 0x8335
+0x6822 0x8334
+0x6823 0x8316
+0x6824 0x8332
+0x6825 0x8331
+0x6826 0x8340
+0x6827 0x8339
+0x6828 0x8350
+0x6829 0x8345
+0x682a 0x832F
+0x682b 0x832B
+0x682c 0x8317
+0x682d 0x8318
+0x682e 0x8385
+0x682f 0x839A
+0x6830 0x83AA
+0x6831 0x839F
+0x6832 0x83A2
+0x6833 0x8396
+0x6834 0x8323
+0x6835 0x838E
+0x6836 0x8387
+0x6837 0x838A
+0x6838 0x837C
+0x6839 0x83B5
+0x683a 0x8373
+0x683b 0x8375
+0x683c 0x83A0
+0x683d 0x8389
+0x683e 0x83A8
+0x683f 0x83F4
+0x6840 0x8413
+0x6841 0x83EB
+0x6842 0x83CE
+0x6843 0x83FD
+0x6844 0x8403
+0x6845 0x83D8
+0x6846 0x840B
+0x6847 0x83C1
+0x6848 0x83F7
+0x6849 0x8407
+0x684a 0x83E0
+0x684b 0x83F2
+0x684c 0x840D
+0x684d 0x8422
+0x684e 0x8420
+0x684f 0x83BD
+0x6850 0x8438
+0x6851 0x8506
+0x6852 0x83FB
+0x6853 0x846D
+0x6854 0x842A
+0x6855 0x843C
+0x6856 0x855A
+0x6857 0x8484
+0x6858 0x8477
+0x6859 0x846B
+0x685a 0x84AD
+0x685b 0x846E
+0x685c 0x8482
+0x685d 0x8469
+0x685e 0x8446
+0x685f 0x842C
+0x6860 0x846F
+0x6861 0x8479
+0x6862 0x8435
+0x6863 0x84CA
+0x6864 0x8462
+0x6865 0x84B9
+0x6866 0x84BF
+0x6867 0x849F
+0x6868 0x84D9
+0x6869 0x84CD
+0x686a 0x84BB
+0x686b 0x84DA
+0x686c 0x84D0
+0x686d 0x84C1
+0x686e 0x84C6
+0x686f 0x84D6
+0x6870 0x84A1
+0x6871 0x8521
+0x6872 0x84FF
+0x6873 0x84F4
+0x6874 0x8517
+0x6875 0x8518
+0x6876 0x852C
+0x6877 0x851F
+0x6878 0x8515
+0x6879 0x8514
+0x687a 0x84FC
+0x687b 0x8540
+0x687c 0x8563
+0x687d 0x8558
+0x687e 0x8548
+0x6921 0x8541
+0x6922 0x8602
+0x6923 0x854B
+0x6924 0x8555
+0x6925 0x8580
+0x6926 0x85A4
+0x6927 0x8588
+0x6928 0x8591
+0x6929 0x858A
+0x692a 0x85A8
+0x692b 0x856D
+0x692c 0x8594
+0x692d 0x859B
+0x692e 0x85EA
+0x692f 0x8587
+0x6930 0x859C
+0x6931 0x8577
+0x6932 0x857E
+0x6933 0x8590
+0x6934 0x85C9
+0x6935 0x85BA
+0x6936 0x85CF
+0x6937 0x85B9
+0x6938 0x85D0
+0x6939 0x85D5
+0x693a 0x85DD
+0x693b 0x85E5
+0x693c 0x85DC
+0x693d 0x85F9
+0x693e 0x860A
+0x693f 0x8613
+0x6940 0x860B
+0x6941 0x85FE
+0x6942 0x85FA
+0x6943 0x8606
+0x6944 0x8622
+0x6945 0x861A
+0x6946 0x8630
+0x6947 0x863F
+0x6948 0x864D
+0x6949 0x4E55
+0x694a 0x8654
+0x694b 0x865F
+0x694c 0x8667
+0x694d 0x8671
+0x694e 0x8693
+0x694f 0x86A3
+0x6950 0x86A9
+0x6951 0x86AA
+0x6952 0x868B
+0x6953 0x868C
+0x6954 0x86B6
+0x6955 0x86AF
+0x6956 0x86C4
+0x6957 0x86C6
+0x6958 0x86B0
+0x6959 0x86C9
+0x695a 0x8823
+0x695b 0x86AB
+0x695c 0x86D4
+0x695d 0x86DE
+0x695e 0x86E9
+0x695f 0x86EC
+0x6960 0x86DF
+0x6961 0x86DB
+0x6962 0x86EF
+0x6963 0x8712
+0x6964 0x8706
+0x6965 0x8708
+0x6966 0x8700
+0x6967 0x8703
+0x6968 0x86FB
+0x6969 0x8711
+0x696a 0x8709
+0x696b 0x870D
+0x696c 0x86F9
+0x696d 0x870A
+0x696e 0x8734
+0x696f 0x873F
+0x6970 0x8737
+0x6971 0x873B
+0x6972 0x8725
+0x6973 0x8729
+0x6974 0x871A
+0x6975 0x8760
+0x6976 0x875F
+0x6977 0x8778
+0x6978 0x874C
+0x6979 0x874E
+0x697a 0x8774
+0x697b 0x8757
+0x697c 0x8768
+0x697d 0x876E
+0x697e 0x8759
+0x6a21 0x8753
+0x6a22 0x8763
+0x6a23 0x876A
+0x6a24 0x8805
+0x6a25 0x87A2
+0x6a26 0x879F
+0x6a27 0x8782
+0x6a28 0x87AF
+0x6a29 0x87CB
+0x6a2a 0x87BD
+0x6a2b 0x87C0
+0x6a2c 0x87D0
+0x6a2d 0x96D6
+0x6a2e 0x87AB
+0x6a2f 0x87C4
+0x6a30 0x87B3
+0x6a31 0x87C7
+0x6a32 0x87C6
+0x6a33 0x87BB
+0x6a34 0x87EF
+0x6a35 0x87F2
+0x6a36 0x87E0
+0x6a37 0x880F
+0x6a38 0x880D
+0x6a39 0x87FE
+0x6a3a 0x87F6
+0x6a3b 0x87F7
+0x6a3c 0x880E
+0x6a3d 0x87D2
+0x6a3e 0x8811
+0x6a3f 0x8816
+0x6a40 0x8815
+0x6a41 0x8822
+0x6a42 0x8821
+0x6a43 0x8831
+0x6a44 0x8836
+0x6a45 0x8839
+0x6a46 0x8827
+0x6a47 0x883B
+0x6a48 0x8844
+0x6a49 0x8842
+0x6a4a 0x8852
+0x6a4b 0x8859
+0x6a4c 0x885E
+0x6a4d 0x8862
+0x6a4e 0x886B
+0x6a4f 0x8881
+0x6a50 0x887E
+0x6a51 0x889E
+0x6a52 0x8875
+0x6a53 0x887D
+0x6a54 0x88B5
+0x6a55 0x8872
+0x6a56 0x8882
+0x6a57 0x8897
+0x6a58 0x8892
+0x6a59 0x88AE
+0x6a5a 0x8899
+0x6a5b 0x88A2
+0x6a5c 0x888D
+0x6a5d 0x88A4
+0x6a5e 0x88B0
+0x6a5f 0x88BF
+0x6a60 0x88B1
+0x6a61 0x88C3
+0x6a62 0x88C4
+0x6a63 0x88D4
+0x6a64 0x88D8
+0x6a65 0x88D9
+0x6a66 0x88DD
+0x6a67 0x88F9
+0x6a68 0x8902
+0x6a69 0x88FC
+0x6a6a 0x88F4
+0x6a6b 0x88E8
+0x6a6c 0x88F2
+0x6a6d 0x8904
+0x6a6e 0x890C
+0x6a6f 0x890A
+0x6a70 0x8913
+0x6a71 0x8943
+0x6a72 0x891E
+0x6a73 0x8925
+0x6a74 0x892A
+0x6a75 0x892B
+0x6a76 0x8941
+0x6a77 0x8944
+0x6a78 0x893B
+0x6a79 0x8936
+0x6a7a 0x8938
+0x6a7b 0x894C
+0x6a7c 0x891D
+0x6a7d 0x8960
+0x6a7e 0x895E
+0x6b21 0x8966
+0x6b22 0x8964
+0x6b23 0x896D
+0x6b24 0x896A
+0x6b25 0x896F
+0x6b26 0x8974
+0x6b27 0x8977
+0x6b28 0x897E
+0x6b29 0x8983
+0x6b2a 0x8988
+0x6b2b 0x898A
+0x6b2c 0x8993
+0x6b2d 0x8998
+0x6b2e 0x89A1
+0x6b2f 0x89A9
+0x6b30 0x89A6
+0x6b31 0x89AC
+0x6b32 0x89AF
+0x6b33 0x89B2
+0x6b34 0x89BA
+0x6b35 0x89BD
+0x6b36 0x89BF
+0x6b37 0x89C0
+0x6b38 0x89DA
+0x6b39 0x89DC
+0x6b3a 0x89DD
+0x6b3b 0x89E7
+0x6b3c 0x89F4
+0x6b3d 0x89F8
+0x6b3e 0x8A03
+0x6b3f 0x8A16
+0x6b40 0x8A10
+0x6b41 0x8A0C
+0x6b42 0x8A1B
+0x6b43 0x8A1D
+0x6b44 0x8A25
+0x6b45 0x8A36
+0x6b46 0x8A41
+0x6b47 0x8A5B
+0x6b48 0x8A52
+0x6b49 0x8A46
+0x6b4a 0x8A48
+0x6b4b 0x8A7C
+0x6b4c 0x8A6D
+0x6b4d 0x8A6C
+0x6b4e 0x8A62
+0x6b4f 0x8A85
+0x6b50 0x8A82
+0x6b51 0x8A84
+0x6b52 0x8AA8
+0x6b53 0x8AA1
+0x6b54 0x8A91
+0x6b55 0x8AA5
+0x6b56 0x8AA6
+0x6b57 0x8A9A
+0x6b58 0x8AA3
+0x6b59 0x8AC4
+0x6b5a 0x8ACD
+0x6b5b 0x8AC2
+0x6b5c 0x8ADA
+0x6b5d 0x8AEB
+0x6b5e 0x8AF3
+0x6b5f 0x8AE7
+0x6b60 0x8AE4
+0x6b61 0x8AF1
+0x6b62 0x8B14
+0x6b63 0x8AE0
+0x6b64 0x8AE2
+0x6b65 0x8AF7
+0x6b66 0x8ADE
+0x6b67 0x8ADB
+0x6b68 0x8B0C
+0x6b69 0x8B07
+0x6b6a 0x8B1A
+0x6b6b 0x8AE1
+0x6b6c 0x8B16
+0x6b6d 0x8B10
+0x6b6e 0x8B17
+0x6b6f 0x8B20
+0x6b70 0x8B33
+0x6b71 0x97AB
+0x6b72 0x8B26
+0x6b73 0x8B2B
+0x6b74 0x8B3E
+0x6b75 0x8B28
+0x6b76 0x8B41
+0x6b77 0x8B4C
+0x6b78 0x8B4F
+0x6b79 0x8B4E
+0x6b7a 0x8B49
+0x6b7b 0x8B56
+0x6b7c 0x8B5B
+0x6b7d 0x8B5A
+0x6b7e 0x8B6B
+0x6c21 0x8B5F
+0x6c22 0x8B6C
+0x6c23 0x8B6F
+0x6c24 0x8B74
+0x6c25 0x8B7D
+0x6c26 0x8B80
+0x6c27 0x8B8C
+0x6c28 0x8B8E
+0x6c29 0x8B92
+0x6c2a 0x8B93
+0x6c2b 0x8B96
+0x6c2c 0x8B99
+0x6c2d 0x8B9A
+0x6c2e 0x8C3A
+0x6c2f 0x8C41
+0x6c30 0x8C3F
+0x6c31 0x8C48
+0x6c32 0x8C4C
+0x6c33 0x8C4E
+0x6c34 0x8C50
+0x6c35 0x8C55
+0x6c36 0x8C62
+0x6c37 0x8C6C
+0x6c38 0x8C78
+0x6c39 0x8C7A
+0x6c3a 0x8C82
+0x6c3b 0x8C89
+0x6c3c 0x8C85
+0x6c3d 0x8C8A
+0x6c3e 0x8C8D
+0x6c3f 0x8C8E
+0x6c40 0x8C94
+0x6c41 0x8C7C
+0x6c42 0x8C98
+0x6c43 0x621D
+0x6c44 0x8CAD
+0x6c45 0x8CAA
+0x6c46 0x8CBD
+0x6c47 0x8CB2
+0x6c48 0x8CB3
+0x6c49 0x8CAE
+0x6c4a 0x8CB6
+0x6c4b 0x8CC8
+0x6c4c 0x8CC1
+0x6c4d 0x8CE4
+0x6c4e 0x8CE3
+0x6c4f 0x8CDA
+0x6c50 0x8CFD
+0x6c51 0x8CFA
+0x6c52 0x8CFB
+0x6c53 0x8D04
+0x6c54 0x8D05
+0x6c55 0x8D0A
+0x6c56 0x8D07
+0x6c57 0x8D0F
+0x6c58 0x8D0D
+0x6c59 0x8D10
+0x6c5a 0x9F4E
+0x6c5b 0x8D13
+0x6c5c 0x8CCD
+0x6c5d 0x8D14
+0x6c5e 0x8D16
+0x6c5f 0x8D67
+0x6c60 0x8D6D
+0x6c61 0x8D71
+0x6c62 0x8D73
+0x6c63 0x8D81
+0x6c64 0x8D99
+0x6c65 0x8DC2
+0x6c66 0x8DBE
+0x6c67 0x8DBA
+0x6c68 0x8DCF
+0x6c69 0x8DDA
+0x6c6a 0x8DD6
+0x6c6b 0x8DCC
+0x6c6c 0x8DDB
+0x6c6d 0x8DCB
+0x6c6e 0x8DEA
+0x6c6f 0x8DEB
+0x6c70 0x8DDF
+0x6c71 0x8DE3
+0x6c72 0x8DFC
+0x6c73 0x8E08
+0x6c74 0x8E09
+0x6c75 0x8DFF
+0x6c76 0x8E1D
+0x6c77 0x8E1E
+0x6c78 0x8E10
+0x6c79 0x8E1F
+0x6c7a 0x8E42
+0x6c7b 0x8E35
+0x6c7c 0x8E30
+0x6c7d 0x8E34
+0x6c7e 0x8E4A
+0x6d21 0x8E47
+0x6d22 0x8E49
+0x6d23 0x8E4C
+0x6d24 0x8E50
+0x6d25 0x8E48
+0x6d26 0x8E59
+0x6d27 0x8E64
+0x6d28 0x8E60
+0x6d29 0x8E2A
+0x6d2a 0x8E63
+0x6d2b 0x8E55
+0x6d2c 0x8E76
+0x6d2d 0x8E72
+0x6d2e 0x8E7C
+0x6d2f 0x8E81
+0x6d30 0x8E87
+0x6d31 0x8E85
+0x6d32 0x8E84
+0x6d33 0x8E8B
+0x6d34 0x8E8A
+0x6d35 0x8E93
+0x6d36 0x8E91
+0x6d37 0x8E94
+0x6d38 0x8E99
+0x6d39 0x8EAA
+0x6d3a 0x8EA1
+0x6d3b 0x8EAC
+0x6d3c 0x8EB0
+0x6d3d 0x8EC6
+0x6d3e 0x8EB1
+0x6d3f 0x8EBE
+0x6d40 0x8EC5
+0x6d41 0x8EC8
+0x6d42 0x8ECB
+0x6d43 0x8EDB
+0x6d44 0x8EE3
+0x6d45 0x8EFC
+0x6d46 0x8EFB
+0x6d47 0x8EEB
+0x6d48 0x8EFE
+0x6d49 0x8F0A
+0x6d4a 0x8F05
+0x6d4b 0x8F15
+0x6d4c 0x8F12
+0x6d4d 0x8F19
+0x6d4e 0x8F13
+0x6d4f 0x8F1C
+0x6d50 0x8F1F
+0x6d51 0x8F1B
+0x6d52 0x8F0C
+0x6d53 0x8F26
+0x6d54 0x8F33
+0x6d55 0x8F3B
+0x6d56 0x8F39
+0x6d57 0x8F45
+0x6d58 0x8F42
+0x6d59 0x8F3E
+0x6d5a 0x8F4C
+0x6d5b 0x8F49
+0x6d5c 0x8F46
+0x6d5d 0x8F4E
+0x6d5e 0x8F57
+0x6d5f 0x8F5C
+0x6d60 0x8F62
+0x6d61 0x8F63
+0x6d62 0x8F64
+0x6d63 0x8F9C
+0x6d64 0x8F9F
+0x6d65 0x8FA3
+0x6d66 0x8FAD
+0x6d67 0x8FAF
+0x6d68 0x8FB7
+0x6d69 0x8FDA
+0x6d6a 0x8FE5
+0x6d6b 0x8FE2
+0x6d6c 0x8FEA
+0x6d6d 0x8FEF
+0x6d6e 0x9087
+0x6d6f 0x8FF4
+0x6d70 0x9005
+0x6d71 0x8FF9
+0x6d72 0x8FFA
+0x6d73 0x9011
+0x6d74 0x9015
+0x6d75 0x9021
+0x6d76 0x900D
+0x6d77 0x901E
+0x6d78 0x9016
+0x6d79 0x900B
+0x6d7a 0x9027
+0x6d7b 0x9036
+0x6d7c 0x9035
+0x6d7d 0x9039
+0x6d7e 0x8FF8
+0x6e21 0x904F
+0x6e22 0x9050
+0x6e23 0x9051
+0x6e24 0x9052
+0x6e25 0x900E
+0x6e26 0x9049
+0x6e27 0x903E
+0x6e28 0x9056
+0x6e29 0x9058
+0x6e2a 0x905E
+0x6e2b 0x9068
+0x6e2c 0x906F
+0x6e2d 0x9076
+0x6e2e 0x96A8
+0x6e2f 0x9072
+0x6e30 0x9082
+0x6e31 0x907D
+0x6e32 0x9081
+0x6e33 0x9080
+0x6e34 0x908A
+0x6e35 0x9089
+0x6e36 0x908F
+0x6e37 0x90A8
+0x6e38 0x90AF
+0x6e39 0x90B1
+0x6e3a 0x90B5
+0x6e3b 0x90E2
+0x6e3c 0x90E4
+0x6e3d 0x6248
+0x6e3e 0x90DB
+0x6e3f 0x9102
+0x6e40 0x9112
+0x6e41 0x9119
+0x6e42 0x9132
+0x6e43 0x9130
+0x6e44 0x914A
+0x6e45 0x9156
+0x6e46 0x9158
+0x6e47 0x9163
+0x6e48 0x9165
+0x6e49 0x9169
+0x6e4a 0x9173
+0x6e4b 0x9172
+0x6e4c 0x918B
+0x6e4d 0x9189
+0x6e4e 0x9182
+0x6e4f 0x91A2
+0x6e50 0x91AB
+0x6e51 0x91AF
+0x6e52 0x91AA
+0x6e53 0x91B5
+0x6e54 0x91B4
+0x6e55 0x91BA
+0x6e56 0x91C0
+0x6e57 0x91C1
+0x6e58 0x91C9
+0x6e59 0x91CB
+0x6e5a 0x91D0
+0x6e5b 0x91D6
+0x6e5c 0x91DF
+0x6e5d 0x91E1
+0x6e5e 0x91DB
+0x6e5f 0x91FC
+0x6e60 0x91F5
+0x6e61 0x91F6
+0x6e62 0x921E
+0x6e63 0x91FF
+0x6e64 0x9214
+0x6e65 0x922C
+0x6e66 0x9215
+0x6e67 0x9211
+0x6e68 0x925E
+0x6e69 0x9257
+0x6e6a 0x9245
+0x6e6b 0x9249
+0x6e6c 0x9264
+0x6e6d 0x9248
+0x6e6e 0x9295
+0x6e6f 0x923F
+0x6e70 0x924B
+0x6e71 0x9250
+0x6e72 0x929C
+0x6e73 0x9296
+0x6e74 0x9293
+0x6e75 0x929B
+0x6e76 0x925A
+0x6e77 0x92CF
+0x6e78 0x92B9
+0x6e79 0x92B7
+0x6e7a 0x92E9
+0x6e7b 0x930F
+0x6e7c 0x92FA
+0x6e7d 0x9344
+0x6e7e 0x932E
+0x6f21 0x9319
+0x6f22 0x9322
+0x6f23 0x931A
+0x6f24 0x9323
+0x6f25 0x933A
+0x6f26 0x9335
+0x6f27 0x933B
+0x6f28 0x935C
+0x6f29 0x9360
+0x6f2a 0x937C
+0x6f2b 0x936E
+0x6f2c 0x9356
+0x6f2d 0x93B0
+0x6f2e 0x93AC
+0x6f2f 0x93AD
+0x6f30 0x9394
+0x6f31 0x93B9
+0x6f32 0x93D6
+0x6f33 0x93D7
+0x6f34 0x93E8
+0x6f35 0x93E5
+0x6f36 0x93D8
+0x6f37 0x93C3
+0x6f38 0x93DD
+0x6f39 0x93D0
+0x6f3a 0x93C8
+0x6f3b 0x93E4
+0x6f3c 0x941A
+0x6f3d 0x9414
+0x6f3e 0x9413
+0x6f3f 0x9403
+0x6f40 0x9407
+0x6f41 0x9410
+0x6f42 0x9436
+0x6f43 0x942B
+0x6f44 0x9435
+0x6f45 0x9421
+0x6f46 0x943A
+0x6f47 0x9441
+0x6f48 0x9452
+0x6f49 0x9444
+0x6f4a 0x945B
+0x6f4b 0x9460
+0x6f4c 0x9462
+0x6f4d 0x945E
+0x6f4e 0x946A
+0x6f4f 0x9229
+0x6f50 0x9470
+0x6f51 0x9475
+0x6f52 0x9477
+0x6f53 0x947D
+0x6f54 0x945A
+0x6f55 0x947C
+0x6f56 0x947E
+0x6f57 0x9481
+0x6f58 0x947F
+0x6f59 0x9582
+0x6f5a 0x9587
+0x6f5b 0x958A
+0x6f5c 0x9594
+0x6f5d 0x9596
+0x6f5e 0x9598
+0x6f5f 0x9599
+0x6f60 0x95A0
+0x6f61 0x95A8
+0x6f62 0x95A7
+0x6f63 0x95AD
+0x6f64 0x95BC
+0x6f65 0x95BB
+0x6f66 0x95B9
+0x6f67 0x95BE
+0x6f68 0x95CA
+0x6f69 0x6FF6
+0x6f6a 0x95C3
+0x6f6b 0x95CD
+0x6f6c 0x95CC
+0x6f6d 0x95D5
+0x6f6e 0x95D4
+0x6f6f 0x95D6
+0x6f70 0x95DC
+0x6f71 0x95E1
+0x6f72 0x95E5
+0x6f73 0x95E2
+0x6f74 0x9621
+0x6f75 0x9628
+0x6f76 0x962E
+0x6f77 0x962F
+0x6f78 0x9642
+0x6f79 0x964C
+0x6f7a 0x964F
+0x6f7b 0x964B
+0x6f7c 0x9677
+0x6f7d 0x965C
+0x6f7e 0x965E
+0x7021 0x965D
+0x7022 0x965F
+0x7023 0x9666
+0x7024 0x9672
+0x7025 0x966C
+0x7026 0x968D
+0x7027 0x9698
+0x7028 0x9695
+0x7029 0x9697
+0x702a 0x96AA
+0x702b 0x96A7
+0x702c 0x96B1
+0x702d 0x96B2
+0x702e 0x96B0
+0x702f 0x96B4
+0x7030 0x96B6
+0x7031 0x96B8
+0x7032 0x96B9
+0x7033 0x96CE
+0x7034 0x96CB
+0x7035 0x96C9
+0x7036 0x96CD
+0x7037 0x894D
+0x7038 0x96DC
+0x7039 0x970D
+0x703a 0x96D5
+0x703b 0x96F9
+0x703c 0x9704
+0x703d 0x9706
+0x703e 0x9708
+0x703f 0x9713
+0x7040 0x970E
+0x7041 0x9711
+0x7042 0x970F
+0x7043 0x9716
+0x7044 0x9719
+0x7045 0x9724
+0x7046 0x972A
+0x7047 0x9730
+0x7048 0x9739
+0x7049 0x973D
+0x704a 0x973E
+0x704b 0x9744
+0x704c 0x9746
+0x704d 0x9748
+0x704e 0x9742
+0x704f 0x9749
+0x7050 0x975C
+0x7051 0x9760
+0x7052 0x9764
+0x7053 0x9766
+0x7054 0x9768
+0x7055 0x52D2
+0x7056 0x976B
+0x7057 0x9771
+0x7058 0x9779
+0x7059 0x9785
+0x705a 0x977C
+0x705b 0x9781
+0x705c 0x977A
+0x705d 0x9786
+0x705e 0x978B
+0x705f 0x978F
+0x7060 0x9790
+0x7061 0x979C
+0x7062 0x97A8
+0x7063 0x97A6
+0x7064 0x97A3
+0x7065 0x97B3
+0x7066 0x97B4
+0x7067 0x97C3
+0x7068 0x97C6
+0x7069 0x97C8
+0x706a 0x97CB
+0x706b 0x97DC
+0x706c 0x97ED
+0x706d 0x9F4F
+0x706e 0x97F2
+0x706f 0x7ADF
+0x7070 0x97F6
+0x7071 0x97F5
+0x7072 0x980F
+0x7073 0x980C
+0x7074 0x9838
+0x7075 0x9824
+0x7076 0x9821
+0x7077 0x9837
+0x7078 0x983D
+0x7079 0x9846
+0x707a 0x984F
+0x707b 0x984B
+0x707c 0x986B
+0x707d 0x986F
+0x707e 0x9870
+0x7121 0x9871
+0x7122 0x9874
+0x7123 0x9873
+0x7124 0x98AA
+0x7125 0x98AF
+0x7126 0x98B1
+0x7127 0x98B6
+0x7128 0x98C4
+0x7129 0x98C3
+0x712a 0x98C6
+0x712b 0x98E9
+0x712c 0x98EB
+0x712d 0x9903
+0x712e 0x9909
+0x712f 0x9912
+0x7130 0x9914
+0x7131 0x9918
+0x7132 0x9921
+0x7133 0x991D
+0x7134 0x991E
+0x7135 0x9924
+0x7136 0x9920
+0x7137 0x992C
+0x7138 0x992E
+0x7139 0x993D
+0x713a 0x993E
+0x713b 0x9942
+0x713c 0x9949
+0x713d 0x9945
+0x713e 0x9950
+0x713f 0x994B
+0x7140 0x9951
+0x7141 0x9952
+0x7142 0x994C
+0x7143 0x9955
+0x7144 0x9997
+0x7145 0x9998
+0x7146 0x99A5
+0x7147 0x99AD
+0x7148 0x99AE
+0x7149 0x99BC
+0x714a 0x99DF
+0x714b 0x99DB
+0x714c 0x99DD
+0x714d 0x99D8
+0x714e 0x99D1
+0x714f 0x99ED
+0x7150 0x99EE
+0x7151 0x99F1
+0x7152 0x99F2
+0x7153 0x99FB
+0x7154 0x99F8
+0x7155 0x9A01
+0x7156 0x9A0F
+0x7157 0x9A05
+0x7158 0x99E2
+0x7159 0x9A19
+0x715a 0x9A2B
+0x715b 0x9A37
+0x715c 0x9A45
+0x715d 0x9A42
+0x715e 0x9A40
+0x715f 0x9A43
+0x7160 0x9A3E
+0x7161 0x9A55
+0x7162 0x9A4D
+0x7163 0x9A5B
+0x7164 0x9A57
+0x7165 0x9A5F
+0x7166 0x9A62
+0x7167 0x9A65
+0x7168 0x9A64
+0x7169 0x9A69
+0x716a 0x9A6B
+0x716b 0x9A6A
+0x716c 0x9AAD
+0x716d 0x9AB0
+0x716e 0x9ABC
+0x716f 0x9AC0
+0x7170 0x9ACF
+0x7171 0x9AD1
+0x7172 0x9AD3
+0x7173 0x9AD4
+0x7174 0x9ADE
+0x7175 0x9ADF
+0x7176 0x9AE2
+0x7177 0x9AE3
+0x7178 0x9AE6
+0x7179 0x9AEF
+0x717a 0x9AEB
+0x717b 0x9AEE
+0x717c 0x9AF4
+0x717d 0x9AF1
+0x717e 0x9AF7
+0x7221 0x9AFB
+0x7222 0x9B06
+0x7223 0x9B18
+0x7224 0x9B1A
+0x7225 0x9B1F
+0x7226 0x9B22
+0x7227 0x9B23
+0x7228 0x9B25
+0x7229 0x9B27
+0x722a 0x9B28
+0x722b 0x9B29
+0x722c 0x9B2A
+0x722d 0x9B2E
+0x722e 0x9B2F
+0x722f 0x9B32
+0x7230 0x9B44
+0x7231 0x9B43
+0x7232 0x9B4F
+0x7233 0x9B4D
+0x7234 0x9B4E
+0x7235 0x9B51
+0x7236 0x9B58
+0x7237 0x9B74
+0x7238 0x9B93
+0x7239 0x9B83
+0x723a 0x9B91
+0x723b 0x9B96
+0x723c 0x9B97
+0x723d 0x9B9F
+0x723e 0x9BA0
+0x723f 0x9BA8
+0x7240 0x9BB4
+0x7241 0x9BC0
+0x7242 0x9BCA
+0x7243 0x9BB9
+0x7244 0x9BC6
+0x7245 0x9BCF
+0x7246 0x9BD1
+0x7247 0x9BD2
+0x7248 0x9BE3
+0x7249 0x9BE2
+0x724a 0x9BE4
+0x724b 0x9BD4
+0x724c 0x9BE1
+0x724d 0x9C3A
+0x724e 0x9BF2
+0x724f 0x9BF1
+0x7250 0x9BF0
+0x7251 0x9C15
+0x7252 0x9C14
+0x7253 0x9C09
+0x7254 0x9C13
+0x7255 0x9C0C
+0x7256 0x9C06
+0x7257 0x9C08
+0x7258 0x9C12
+0x7259 0x9C0A
+0x725a 0x9C04
+0x725b 0x9C2E
+0x725c 0x9C1B
+0x725d 0x9C25
+0x725e 0x9C24
+0x725f 0x9C21
+0x7260 0x9C30
+0x7261 0x9C47
+0x7262 0x9C32
+0x7263 0x9C46
+0x7264 0x9C3E
+0x7265 0x9C5A
+0x7266 0x9C60
+0x7267 0x9C67
+0x7268 0x9C76
+0x7269 0x9C78
+0x726a 0x9CE7
+0x726b 0x9CEC
+0x726c 0x9CF0
+0x726d 0x9D09
+0x726e 0x9D08
+0x726f 0x9CEB
+0x7270 0x9D03
+0x7271 0x9D06
+0x7272 0x9D2A
+0x7273 0x9D26
+0x7274 0x9DAF
+0x7275 0x9D23
+0x7276 0x9D1F
+0x7277 0x9D44
+0x7278 0x9D15
+0x7279 0x9D12
+0x727a 0x9D41
+0x727b 0x9D3F
+0x727c 0x9D3E
+0x727d 0x9D46
+0x727e 0x9D48
+0x7321 0x9D5D
+0x7322 0x9D5E
+0x7323 0x9D64
+0x7324 0x9D51
+0x7325 0x9D50
+0x7326 0x9D59
+0x7327 0x9D72
+0x7328 0x9D89
+0x7329 0x9D87
+0x732a 0x9DAB
+0x732b 0x9D6F
+0x732c 0x9D7A
+0x732d 0x9D9A
+0x732e 0x9DA4
+0x732f 0x9DA9
+0x7330 0x9DB2
+0x7331 0x9DC4
+0x7332 0x9DC1
+0x7333 0x9DBB
+0x7334 0x9DB8
+0x7335 0x9DBA
+0x7336 0x9DC6
+0x7337 0x9DCF
+0x7338 0x9DC2
+0x7339 0x9DD9
+0x733a 0x9DD3
+0x733b 0x9DF8
+0x733c 0x9DE6
+0x733d 0x9DED
+0x733e 0x9DEF
+0x733f 0x9DFD
+0x7340 0x9E1A
+0x7341 0x9E1B
+0x7342 0x9E1E
+0x7343 0x9E75
+0x7344 0x9E79
+0x7345 0x9E7D
+0x7346 0x9E81
+0x7347 0x9E88
+0x7348 0x9E8B
+0x7349 0x9E8C
+0x734a 0x9E92
+0x734b 0x9E95
+0x734c 0x9E91
+0x734d 0x9E9D
+0x734e 0x9EA5
+0x734f 0x9EA9
+0x7350 0x9EB8
+0x7351 0x9EAA
+0x7352 0x9EAD
+0x7353 0x9761
+0x7354 0x9ECC
+0x7355 0x9ECE
+0x7356 0x9ECF
+0x7357 0x9ED0
+0x7358 0x9ED4
+0x7359 0x9EDC
+0x735a 0x9EDE
+0x735b 0x9EDD
+0x735c 0x9EE0
+0x735d 0x9EE5
+0x735e 0x9EE8
+0x735f 0x9EEF
+0x7360 0x9EF4
+0x7361 0x9EF6
+0x7362 0x9EF7
+0x7363 0x9EF9
+0x7364 0x9EFB
+0x7365 0x9EFC
+0x7366 0x9EFD
+0x7367 0x9F07
+0x7368 0x9F08
+0x7369 0x76B7
+0x736a 0x9F15
+0x736b 0x9F21
+0x736c 0x9F2C
+0x736d 0x9F3E
+0x736e 0x9F4A
+0x736f 0x9F52
+0x7370 0x9F54
+0x7371 0x9F63
+0x7372 0x9F5F
+0x7373 0x9F60
+0x7374 0x9F61
+0x7375 0x9F66
+0x7376 0x9F67
+0x7377 0x9F6C
+0x7378 0x9F6A
+0x7379 0x9F77
+0x737a 0x9F72
+0x737b 0x9F76
+0x737c 0x9F95
+0x737d 0x9F9C
+0x737e 0x9FA0
+0x7421 0x582F
+0x7422 0x69C7
+0x7423 0x9059
+0x7424 0x7464
+0x7425 0x51DC
+0x7426 0x7199
diff --git a/etc/charsets/JISX0212.map b/etc/charsets/JISX0212.map
new file mode 100644 (file)
index 0000000..39b47a9
--- /dev/null
@@ -0,0 +1,4239 @@
+# Generated from glibc-2.3.2/localedata/charmaps/EUC-JP
+0x222F 0x02D8
+0x2230 0x02C7
+0x2231 0x00B8
+0x2232 0x02D9
+0x2233 0x02DD
+0x2234 0x00AF
+0x2235 0x02DB
+0x2236 0x02DA
+0x2237 0xFF5E
+0x2238-0x2239 0x0384
+0x2242 0x00A1
+0x2243 0x00A6
+0x2244 0x00BF
+0x226B 0x00BA
+0x226C 0x00AA
+0x226D 0x00A9
+0x226E 0x00AE
+0x226F 0x2122
+0x2270 0x00A4
+0x2271 0x2116
+0x2661 0x0386
+0x2662-0x2664 0x0388
+0x2665 0x03AA
+0x2667 0x038C
+0x2669 0x038E
+0x266A 0x03AB
+0x266C 0x038F
+0x2671-0x2674 0x03AC
+0x2675 0x03CA
+0x2676 0x0390
+0x2677 0x03CC
+0x2678 0x03C2
+0x2679 0x03CD
+0x267A 0x03CB
+0x267B 0x03B0
+0x267C 0x03CE
+0x2742-0x274C 0x0402
+0x274D-0x274E 0x040E
+0x2772-0x277C 0x0452
+0x277D-0x277E 0x045E
+0x2921 0x00C6
+0x2922 0x0110
+0x2924 0x0126
+0x2926 0x0132
+0x2928 0x0141
+0x2929 0x013F
+0x292B 0x014A
+0x292C 0x00D8
+0x292D 0x0152
+0x292F 0x0166
+0x2930 0x00DE
+0x2941 0x00E6
+0x2942 0x0111
+0x2943 0x00F0
+0x2944 0x0127
+0x2945 0x0131
+0x2946 0x0133
+0x2947 0x0138
+0x2948 0x0142
+0x2949 0x0140
+0x294A 0x0149
+0x294B 0x014B
+0x294C 0x00F8
+0x294D 0x0153
+0x294E 0x00DF
+0x294F 0x0167
+0x2950 0x00FE
+0x2A21 0x00C1
+0x2A22 0x00C0
+0x2A23 0x00C4
+0x2A24 0x00C2
+0x2A25 0x0102
+0x2A26 0x01CD
+0x2A27 0x0100
+0x2A28 0x0104
+0x2A29 0x00C5
+0x2A2A 0x00C3
+0x2A2B 0x0106
+0x2A2C 0x0108
+0x2A2D 0x010C
+0x2A2E 0x00C7
+0x2A2F 0x010A
+0x2A30 0x010E
+0x2A31 0x00C9
+0x2A32 0x00C8
+0x2A33 0x00CB
+0x2A34 0x00CA
+0x2A35 0x011A
+0x2A36 0x0116
+0x2A37 0x0112
+0x2A38 0x0118
+0x2A3A 0x011C
+0x2A3B 0x011E
+0x2A3C 0x0122
+0x2A3D 0x0120
+0x2A3E 0x0124
+0x2A3F 0x00CD
+0x2A40 0x00CC
+0x2A41 0x00CF
+0x2A42 0x00CE
+0x2A43 0x01CF
+0x2A44 0x0130
+0x2A45 0x012A
+0x2A46 0x012E
+0x2A47 0x0128
+0x2A48 0x0134
+0x2A49 0x0136
+0x2A4A 0x0139
+0x2A4B 0x013D
+0x2A4C 0x013B
+0x2A4D 0x0143
+0x2A4E 0x0147
+0x2A4F 0x0145
+0x2A50 0x00D1
+0x2A51 0x00D3
+0x2A52 0x00D2
+0x2A53 0x00D6
+0x2A54 0x00D4
+0x2A55 0x01D1
+0x2A56 0x0150
+0x2A57 0x014C
+0x2A58 0x00D5
+0x2A59 0x0154
+0x2A5A 0x0158
+0x2A5B 0x0156
+0x2A5C 0x015A
+0x2A5D 0x015C
+0x2A5E 0x0160
+0x2A5F 0x015E
+0x2A60 0x0164
+0x2A61 0x0162
+0x2A62 0x00DA
+0x2A63 0x00D9
+0x2A64 0x00DC
+0x2A65 0x00DB
+0x2A66 0x016C
+0x2A67 0x01D3
+0x2A68 0x0170
+0x2A69 0x016A
+0x2A6A 0x0172
+0x2A6B 0x016E
+0x2A6C 0x0168
+0x2A6D 0x01D7
+0x2A6E 0x01DB
+0x2A6F 0x01D9
+0x2A70 0x01D5
+0x2A71 0x0174
+0x2A72 0x00DD
+0x2A73 0x0178
+0x2A74 0x0176
+0x2A75 0x0179
+0x2A76 0x017D
+0x2A77 0x017B
+0x2B21 0x00E1
+0x2B22 0x00E0
+0x2B23 0x00E4
+0x2B24 0x00E2
+0x2B25 0x0103
+0x2B26 0x01CE
+0x2B27 0x0101
+0x2B28 0x0105
+0x2B29 0x00E5
+0x2B2A 0x00E3
+0x2B2B 0x0107
+0x2B2C 0x0109
+0x2B2D 0x010D
+0x2B2E 0x00E7
+0x2B2F 0x010B
+0x2B30 0x010F
+0x2B31 0x00E9
+0x2B32 0x00E8
+0x2B33 0x00EB
+0x2B34 0x00EA
+0x2B35 0x011B
+0x2B36 0x0117
+0x2B37 0x0113
+0x2B38 0x0119
+0x2B39 0x01F5
+0x2B3A 0x011D
+0x2B3B 0x011F
+0x2B3D 0x0121
+0x2B3E 0x0125
+0x2B3F 0x00ED
+0x2B40 0x00EC
+0x2B41 0x00EF
+0x2B42 0x00EE
+0x2B43 0x01D0
+0x2B45 0x012B
+0x2B46 0x012F
+0x2B47 0x0129
+0x2B48 0x0135
+0x2B49 0x0137
+0x2B4A 0x013A
+0x2B4B 0x013E
+0x2B4C 0x013C
+0x2B4D 0x0144
+0x2B4E 0x0148
+0x2B4F 0x0146
+0x2B50 0x00F1
+0x2B51 0x00F3
+0x2B52 0x00F2
+0x2B53 0x00F6
+0x2B54 0x00F4
+0x2B55 0x01D2
+0x2B56 0x0151
+0x2B57 0x014D
+0x2B58 0x00F5
+0x2B59 0x0155
+0x2B5A 0x0159
+0x2B5B 0x0157
+0x2B5C 0x015B
+0x2B5D 0x015D
+0x2B5E 0x0161
+0x2B5F 0x015F
+0x2B60 0x0165
+0x2B61 0x0163
+0x2B62 0x00FA
+0x2B63 0x00F9
+0x2B64 0x00FC
+0x2B65 0x00FB
+0x2B66 0x016D
+0x2B67 0x01D4
+0x2B68 0x0171
+0x2B69 0x016B
+0x2B6A 0x0173
+0x2B6B 0x016F
+0x2B6C 0x0169
+0x2B6D 0x01D8
+0x2B6E 0x01DC
+0x2B6F 0x01DA
+0x2B70 0x01D6
+0x2B71 0x0175
+0x2B72 0x00FD
+0x2B73 0x00FF
+0x2B74 0x0177
+0x2B75 0x017A
+0x2B76 0x017E
+0x2B77 0x017C
+0x3021 0x4E02
+0x3022-0x3023 0x4E04
+0x3024 0x4E0C
+0x3025 0x4E12
+0x3026 0x4E1F
+0x3027-0x3028 0x4E23
+0x3029 0x4E28
+0x302A 0x4E2B
+0x302B-0x302D 0x4E2E
+0x302E 0x4E35
+0x302F-0x3030 0x4E40
+0x3031 0x4E44
+0x3032 0x4E47
+0x3033 0x4E51
+0x3034 0x4E5A
+0x3035 0x4E5C
+0x3036 0x4E63
+0x3037-0x3038 0x4E68
+0x3039-0x303A 0x4E74
+0x303B 0x4E79
+0x303C 0x4E7F
+0x303D 0x4E8D
+0x303E-0x303F 0x4E96
+0x3040 0x4E9D
+0x3041 0x4EAF
+0x3042 0x4EB9
+0x3043 0x4EC3
+0x3044 0x4ED0
+0x3045-0x3046 0x4EDA
+0x3047-0x3049 0x4EE0
+0x304A 0x4EE8
+0x304B 0x4EEF
+0x304C 0x4EF1
+0x304D 0x4EF3
+0x304E 0x4EF5
+0x304F-0x3052 0x4EFD
+0x3053-0x3054 0x4F02
+0x3055 0x4F08
+0x3056-0x3057 0x4F0B
+0x3058 0x4F12
+0x3059-0x305B 0x4F15
+0x305C 0x4F19
+0x305D 0x4F2E
+0x305E 0x4F31
+0x305F 0x4F60
+0x3060 0x4F33
+0x3061 0x4F35
+0x3062 0x4F37
+0x3063 0x4F39
+0x3064 0x4F3B
+0x3065 0x4F3E
+0x3066 0x4F40
+0x3067 0x4F42
+0x3068-0x3069 0x4F48
+0x306A-0x306B 0x4F4B
+0x306C 0x4F52
+0x306D 0x4F54
+0x306E 0x4F56
+0x306F 0x4F58
+0x3070 0x4F5F
+0x3071 0x4F63
+0x3072 0x4F6A
+0x3073 0x4F6C
+0x3074 0x4F6E
+0x3075 0x4F71
+0x3076-0x3079 0x4F77
+0x307A-0x307B 0x4F7D
+0x307C-0x307D 0x4F81
+0x307E 0x4F84
+0x3121 0x4F85
+0x3122-0x3123 0x4F89
+0x3124 0x4F8C
+0x3125 0x4F8E
+0x3126 0x4F90
+0x3127-0x3129 0x4F92
+0x312A 0x4F97
+0x312B-0x312C 0x4F99
+0x312D-0x312E 0x4F9E
+0x312F 0x4FB2
+0x3130 0x4FB7
+0x3131 0x4FB9
+0x3132-0x3135 0x4FBB
+0x3136-0x3137 0x4FC0
+0x3138-0x3139 0x4FC5
+0x313A-0x313B 0x4FC8
+0x313C-0x313E 0x4FCB
+0x313F 0x4FCF
+0x3140 0x4FD2
+0x3141 0x4FDC
+0x3142 0x4FE0
+0x3143 0x4FE2
+0x3144 0x4FF0
+0x3145 0x4FF2
+0x3146-0x3147 0x4FFC
+0x3148-0x314A 0x4FFF
+0x314B 0x5004
+0x314C 0x5007
+0x314D 0x500A
+0x314E 0x500C
+0x314F 0x500E
+0x3150 0x5010
+0x3151 0x5013
+0x3152-0x3153 0x5017
+0x3154-0x3157 0x501B
+0x3158 0x5022
+0x3159 0x5027
+0x315A 0x502E
+0x315B 0x5030
+0x315C-0x315D 0x5032
+0x315E 0x5035
+0x315F-0x3161 0x5040
+0x3162-0x3163 0x5045
+0x3164 0x504A
+0x3165 0x504C
+0x3166 0x504E
+0x3167-0x3169 0x5051
+0x316A 0x5057
+0x316B 0x5059
+0x316C-0x316D 0x505F
+0x316E-0x316F 0x5062
+0x3170-0x3171 0x5066
+0x3172 0x506A
+0x3173 0x506D
+0x3174-0x3175 0x5070
+0x3176 0x503B
+0x3177 0x5081
+0x3178-0x3179 0x5083
+0x317A 0x5086
+0x317B 0x508A
+0x317C-0x317E 0x508E
+0x3221-0x3223 0x5092
+0x3224 0x5096
+0x3225-0x3226 0x509B
+0x3227-0x322B 0x509E
+0x322C 0x50AA
+0x322D-0x322E 0x50AF
+0x322F-0x3230 0x50B9
+0x3231 0x50BD
+0x3232 0x50C0
+0x3233-0x3234 0x50C3
+0x3235 0x50C7
+0x3236 0x50CC
+0x3237 0x50CE
+0x3238 0x50D0
+0x3239-0x323A 0x50D3
+0x323B 0x50D8
+0x323C-0x323D 0x50DC
+0x323E 0x50DF
+0x323F 0x50E2
+0x3240 0x50E4
+0x3241 0x50E6
+0x3242-0x3243 0x50E8
+0x3244 0x50EF
+0x3245 0x50F1
+0x3246 0x50F6
+0x3247 0x50FA
+0x3248 0x50FE
+0x3249 0x5103
+0x324A-0x324C 0x5106
+0x324D-0x3250 0x510B
+0x3251 0x50F2
+0x3252 0x5110
+0x3253 0x5117
+0x3254 0x5119
+0x3255-0x3258 0x511B
+0x3259 0x5123
+0x325A-0x325B 0x5127
+0x325C-0x325D 0x512C
+0x325E 0x512F
+0x325F 0x5131
+0x3260-0x3262 0x5133
+0x3263-0x3264 0x5138
+0x3265 0x5142
+0x3266 0x514A
+0x3267 0x514F
+0x3268 0x5153
+0x3269 0x5155
+0x326A-0x326B 0x5157
+0x326C 0x515F
+0x326D 0x5164
+0x326E 0x5166
+0x326F 0x517E
+0x3270-0x3271 0x5183
+0x3272 0x518B
+0x3273 0x518E
+0x3274 0x5198
+0x3275 0x519D
+0x3276 0x51A1
+0x3277 0x51A3
+0x3278 0x51AD
+0x3279 0x51B8
+0x327A 0x51BA
+0x327B 0x51BC
+0x327C-0x327D 0x51BE
+0x327E 0x51C2
+0x3321 0x51C8
+0x3322 0x51CF
+0x3323-0x3325 0x51D1
+0x3326 0x51D5
+0x3327 0x51D8
+0x3328 0x51DE
+0x3329 0x51E2
+0x332A 0x51E5
+0x332B 0x51EE
+0x332C-0x332E 0x51F2
+0x332F 0x51F7
+0x3330-0x3331 0x5201
+0x3332 0x5205
+0x3333-0x3334 0x5212
+0x3335-0x3336 0x5215
+0x3337 0x5218
+0x3338 0x5222
+0x3339 0x5228
+0x333A-0x333B 0x5231
+0x333C 0x5235
+0x333D 0x523C
+0x333E 0x5245
+0x333F 0x5249
+0x3340 0x5255
+0x3341-0x3342 0x5257
+0x3343 0x525A
+0x3344 0x525C
+0x3345-0x3347 0x525F
+0x3348 0x5266
+0x3349 0x526E
+0x334A-0x334C 0x5277
+0x334D 0x5280
+0x334E 0x5282
+0x334F 0x5285
+0x3350 0x528A
+0x3351 0x528C
+0x3352 0x5293
+0x3353-0x3356 0x5295
+0x3357 0x529A
+0x3358 0x529C
+0x3359-0x335C 0x52A4
+0x335D-0x335E 0x52AF
+0x335F-0x3361 0x52B6
+0x3362-0x3363 0x52BA
+0x3364 0x52BD
+0x3365 0x52C0
+0x3366 0x52C4
+0x3367 0x52C6
+0x3368 0x52C8
+0x3369 0x52CC
+0x336A 0x52CF
+0x336B 0x52D1
+0x336C 0x52D4
+0x336D 0x52D6
+0x336E-0x336F 0x52DB
+0x3370 0x52E1
+0x3371 0x52E5
+0x3372-0x3374 0x52E8
+0x3375 0x52EC
+0x3376-0x3377 0x52F0
+0x3378 0x52F4
+0x3379-0x337A 0x52F6
+0x337B 0x5300
+0x337C 0x5303
+0x337D-0x337E 0x530A
+0x3421 0x530C
+0x3422 0x5311
+0x3423 0x5313
+0x3424 0x5318
+0x3425-0x3426 0x531B
+0x3427-0x3428 0x531E
+0x3429 0x5325
+0x342A-0x342C 0x5327
+0x342D-0x342F 0x532B
+0x3430 0x5330
+0x3431 0x5332
+0x3432 0x5335
+0x3433-0x3435 0x533C
+0x3436 0x5342
+0x3437 0x534C
+0x3438 0x534B
+0x3439 0x5359
+0x343A 0x535B
+0x343B 0x5361
+0x343C 0x5363
+0x343D 0x5365
+0x343E-0x343F 0x536C
+0x3440 0x5372
+0x3441 0x5379
+0x3442 0x537E
+0x3443 0x5383
+0x3444-0x3445 0x5387
+0x3446 0x538E
+0x3447-0x3448 0x5393
+0x3449 0x5399
+0x344A 0x539D
+0x344B 0x53A1
+0x344C 0x53A4
+0x344D-0x344E 0x53AA
+0x344F 0x53AF
+0x3450 0x53B2
+0x3451-0x3452 0x53B4
+0x3453-0x3454 0x53B7
+0x3455 0x53BA
+0x3456 0x53BD
+0x3457 0x53C0
+0x3458 0x53C5
+0x3459 0x53CF
+0x345A-0x345B 0x53D2
+0x345C 0x53D5
+0x345D 0x53DA
+0x345E-0x345F 0x53DD
+0x3460 0x53E0
+0x3461-0x3462 0x53E6
+0x3463 0x53F5
+0x3464 0x5402
+0x3465 0x5413
+0x3466 0x541A
+0x3467 0x5421
+0x3468-0x3469 0x5427
+0x346A 0x542A
+0x346B 0x542F
+0x346C 0x5431
+0x346D-0x346E 0x5434
+0x346F-0x3470 0x5443
+0x3471 0x5447
+0x3472 0x544D
+0x3473 0x544F
+0x3474 0x545E
+0x3475 0x5462
+0x3476 0x5464
+0x3477-0x3478 0x5466
+0x3479 0x5469
+0x347A 0x546B
+0x347B-0x347C 0x546D
+0x347D 0x5474
+0x347E 0x547F
+0x3521 0x5481
+0x3522 0x5483
+0x3523 0x5485
+0x3524-0x3525 0x5488
+0x3526 0x548D
+0x3527 0x5491
+0x3528-0x3529 0x5495
+0x352A 0x549C
+0x352B 0x549F
+0x352C 0x54A1
+0x352D-0x352E 0x54A6
+0x352F-0x3530 0x54A9
+0x3531-0x3532 0x54AD
+0x3533 0x54B1
+0x3534 0x54B7
+0x3535-0x3537 0x54B9
+0x3538 0x54BF
+0x3539 0x54C6
+0x353A 0x54CA
+0x353B-0x353C 0x54CD
+0x353D 0x54E0
+0x353E 0x54EA
+0x353F 0x54EC
+0x3540 0x54EF
+0x3541 0x54F6
+0x3542 0x54FC
+0x3543-0x3546 0x54FE
+0x3547 0x5505
+0x3548-0x3549 0x5508
+0x354A-0x354C 0x550C
+0x354D 0x5515
+0x354E-0x354F 0x552A
+0x3550 0x5532
+0x3551-0x3552 0x5535
+0x3553-0x3555 0x553B
+0x3556 0x5541
+0x3557 0x5547
+0x3558-0x3559 0x5549
+0x355A 0x554D
+0x355B-0x355C 0x5550
+0x355D 0x5558
+0x355E-0x355F 0x555A
+0x3560 0x555E
+0x3561-0x3562 0x5560
+0x3563 0x5564
+0x3564 0x5566
+0x3565 0x557F
+0x3566-0x3567 0x5581
+0x3568 0x5586
+0x3569 0x5588
+0x356A-0x356B 0x558E
+0x356C-0x356F 0x5591
+0x3570 0x5597
+0x3571-0x3572 0x55A3
+0x3573 0x55AD
+0x3574 0x55B2
+0x3575 0x55BF
+0x3576 0x55C1
+0x3577 0x55C3
+0x3578 0x55C6
+0x3579 0x55C9
+0x357A-0x357B 0x55CB
+0x357C 0x55CE
+0x357D-0x357E 0x55D1
+0x3621 0x55D3
+0x3622-0x3623 0x55D7
+0x3624 0x55DB
+0x3625 0x55DE
+0x3626 0x55E2
+0x3627 0x55E9
+0x3628 0x55F6
+0x3629 0x55FF
+0x362A 0x5605
+0x362B 0x5608
+0x362C 0x560A
+0x362D-0x3632 0x560D
+0x3633 0x5619
+0x3634 0x562C
+0x3635 0x5630
+0x3636 0x5633
+0x3637 0x5635
+0x3638 0x5637
+0x3639 0x5639
+0x363A-0x363C 0x563B
+0x363D-0x363F 0x563F
+0x3640-0x3641 0x5643
+0x3642 0x5646
+0x3643 0x5649
+0x3644 0x564B
+0x3645 0x564D
+0x3646 0x564F
+0x3647 0x5654
+0x3648 0x565E
+0x3649-0x364C 0x5660
+0x364D 0x5666
+0x364E 0x5669
+0x364F 0x566D
+0x3650 0x566F
+0x3651-0x3652 0x5671
+0x3653 0x5675
+0x3654-0x3655 0x5684
+0x3656 0x5688
+0x3657-0x3658 0x568B
+0x3659 0x5695
+0x365A-0x365B 0x5699
+0x365C-0x365E 0x569D
+0x365F-0x3662 0x56A6
+0x3663-0x3665 0x56AB
+0x3666 0x56B1
+0x3667 0x56B3
+0x3668 0x56B7
+0x3669 0x56BE
+0x366A 0x56C5
+0x366B-0x366D 0x56C9
+0x366E-0x366F 0x56CF
+0x3670-0x3671 0x56CC
+0x3672 0x56D9
+0x3673-0x3674 0x56DC
+0x3675 0x56DF
+0x3676 0x56E1
+0x3677-0x367B 0x56E4
+0x367C 0x56F1
+0x367D 0x56EB
+0x367E 0x56ED
+0x3721-0x3722 0x56F6
+0x3723-0x3724 0x5701
+0x3725 0x5707
+0x3726 0x570A
+0x3727 0x570C
+0x3728 0x5711
+0x3729 0x5715
+0x372A-0x372B 0x571A
+0x372C 0x571D
+0x372D 0x5720
+0x372E-0x3731 0x5722
+0x3732-0x3733 0x5729
+0x3734 0x572C
+0x3735-0x3736 0x572E
+0x3737-0x3738 0x5733
+0x3739-0x373B 0x573D
+0x373C-0x373D 0x5745
+0x373E-0x373F 0x574C
+0x3740 0x5752
+0x3741 0x5762
+0x3742 0x5765
+0x3743-0x3744 0x5767
+0x3745 0x576B
+0x3746-0x374A 0x576D
+0x374B-0x374D 0x5773
+0x374E 0x5777
+0x374F-0x3752 0x5779
+0x3753 0x577E
+0x3754 0x5781
+0x3755 0x5783
+0x3756 0x578C
+0x3757 0x5794
+0x3758 0x5797
+0x3759-0x375A 0x5799
+0x375B-0x375E 0x579C
+0x375F 0x57A1
+0x3760 0x5795
+0x3761-0x3763 0x57A7
+0x3764 0x57AC
+0x3765 0x57B8
+0x3766 0x57BD
+0x3767-0x3768 0x57C7
+0x3769 0x57CC
+0x376A 0x57CF
+0x376B 0x57D5
+0x376C-0x376D 0x57DD
+0x376E 0x57E4
+0x376F-0x3770 0x57E6
+0x3771 0x57E9
+0x3772 0x57ED
+0x3773 0x57F0
+0x3774-0x3775 0x57F5
+0x3776 0x57F8
+0x3777-0x3779 0x57FD
+0x377A-0x377B 0x5803
+0x377C-0x377D 0x5808
+0x377E 0x57E1
+0x3821-0x3822 0x580C
+0x3823 0x581B
+0x3824-0x3826 0x581E
+0x3827-0x3828 0x5826
+0x3829 0x582D
+0x382A 0x5832
+0x382B 0x5839
+0x382C 0x583F
+0x382D 0x5849
+0x382E-0x382F 0x584C
+0x3830-0x3831 0x584F
+0x3832 0x5855
+0x3833 0x585F
+0x3834 0x5861
+0x3835 0x5864
+0x3836-0x3837 0x5867
+0x3838 0x5878
+0x3839 0x587C
+0x383A-0x383C 0x587F
+0x383D-0x3840 0x5887
+0x3841-0x3842 0x588C
+0x3843-0x3844 0x588F
+0x3845 0x5894
+0x3846 0x5896
+0x3847 0x589D
+0x3848-0x384A 0x58A0
+0x384B 0x58A6
+0x384C 0x58A9
+0x384D-0x384E 0x58B1
+0x384F 0x58C4
+0x3850 0x58BC
+0x3851 0x58C2
+0x3852 0x58C8
+0x3853-0x3854 0x58CD
+0x3855 0x58D0
+0x3856 0x58D2
+0x3857 0x58D4
+0x3858 0x58D6
+0x3859 0x58DA
+0x385A 0x58DD
+0x385B-0x385C 0x58E1
+0x385D 0x58E9
+0x385E 0x58F3
+0x385F-0x3860 0x5905
+0x3861-0x3862 0x590B
+0x3863-0x3865 0x5912
+0x3866 0x8641
+0x3867 0x591D
+0x3868 0x5921
+0x3869-0x386A 0x5923
+0x386B 0x5928
+0x386C-0x386D 0x592F
+0x386E 0x5933
+0x386F-0x3870 0x5935
+0x3871 0x593F
+0x3872 0x5943
+0x3873 0x5946
+0x3874-0x3875 0x5952
+0x3876 0x5959
+0x3877 0x595B
+0x3878-0x387A 0x595D
+0x387B 0x5961
+0x387C 0x5963
+0x387D 0x596B
+0x387E 0x596D
+0x3921 0x596F
+0x3922 0x5972
+0x3923-0x3924 0x5975
+0x3925 0x5979
+0x3926-0x3927 0x597B
+0x3928-0x3929 0x598B
+0x392A 0x598E
+0x392B 0x5992
+0x392C 0x5995
+0x392D 0x5997
+0x392E 0x599F
+0x392F 0x59A4
+0x3930 0x59A7
+0x3931-0x3934 0x59AD
+0x3935 0x59B3
+0x3936 0x59B7
+0x3937 0x59BA
+0x3938 0x59BC
+0x3939 0x59C1
+0x393A-0x393B 0x59C3
+0x393C 0x59C8
+0x393D 0x59CA
+0x393E 0x59CD
+0x393F 0x59D2
+0x3940-0x3942 0x59DD
+0x3943-0x3944 0x59E3
+0x3945 0x59E7
+0x3946-0x3947 0x59EE
+0x3948-0x3949 0x59F1
+0x394A 0x59F4
+0x394B 0x59F7
+0x394C 0x5A00
+0x394D 0x5A04
+0x394E-0x3950 0x5A0C
+0x3951-0x3952 0x5A12
+0x3953 0x5A1E
+0x3954-0x3955 0x5A23
+0x3956-0x3957 0x5A27
+0x3958 0x5A2A
+0x3959 0x5A2D
+0x395A 0x5A30
+0x395B-0x395C 0x5A44
+0x395D-0x395E 0x5A47
+0x395F 0x5A4C
+0x3960 0x5A50
+0x3961 0x5A55
+0x3962 0x5A5E
+0x3963 0x5A63
+0x3964 0x5A65
+0x3965 0x5A67
+0x3966 0x5A6D
+0x3967 0x5A77
+0x3968-0x3969 0x5A7A
+0x396A 0x5A7E
+0x396B 0x5A8B
+0x396C 0x5A90
+0x396D 0x5A93
+0x396E 0x5A96
+0x396F 0x5A99
+0x3970 0x5A9C
+0x3971-0x3973 0x5A9E
+0x3974 0x5AA2
+0x3975 0x5AA7
+0x3976 0x5AAC
+0x3977-0x3979 0x5AB1
+0x397A 0x5AB5
+0x397B 0x5AB8
+0x397C-0x397D 0x5ABA
+0x397E 0x5ABF
+0x3A21 0x5AC4
+0x3A22 0x5AC6
+0x3A23 0x5AC8
+0x3A24 0x5ACF
+0x3A25 0x5ADA
+0x3A26 0x5ADC
+0x3A27 0x5AE0
+0x3A28 0x5AE5
+0x3A29 0x5AEA
+0x3A2A 0x5AEE
+0x3A2B-0x3A2C 0x5AF5
+0x3A2D 0x5AFD
+0x3A2E-0x3A2F 0x5B00
+0x3A30 0x5B08
+0x3A31 0x5B17
+0x3A32 0x5B34
+0x3A33 0x5B19
+0x3A34 0x5B1B
+0x3A35 0x5B1D
+0x3A36 0x5B21
+0x3A37 0x5B25
+0x3A38 0x5B2D
+0x3A39 0x5B38
+0x3A3A 0x5B41
+0x3A3B-0x3A3C 0x5B4B
+0x3A3D 0x5B52
+0x3A3E 0x5B56
+0x3A3F 0x5B5E
+0x3A40 0x5B68
+0x3A41-0x3A42 0x5B6E
+0x3A43-0x3A46 0x5B7C
+0x3A47 0x5B81
+0x3A48 0x5B84
+0x3A49 0x5B86
+0x3A4A 0x5B8A
+0x3A4B 0x5B8E
+0x3A4C-0x3A4D 0x5B90
+0x3A4E-0x3A4F 0x5B93
+0x3A50 0x5B96
+0x3A51-0x3A52 0x5BA8
+0x3A53-0x3A54 0x5BAC
+0x3A55 0x5BAF
+0x3A56-0x3A57 0x5BB1
+0x3A58 0x5BB7
+0x3A59 0x5BBA
+0x3A5A 0x5BBC
+0x3A5B-0x3A5C 0x5BC0
+0x3A5D 0x5BCD
+0x3A5E 0x5BCF
+0x3A5F-0x3A63 0x5BD6
+0x3A64 0x5BE0
+0x3A65 0x5BEF
+0x3A66 0x5BF1
+0x3A67 0x5BF4
+0x3A68 0x5BFD
+0x3A69 0x5C0C
+0x3A6A 0x5C17
+0x3A6B-0x3A6C 0x5C1E
+0x3A6D 0x5C23
+0x3A6E 0x5C26
+0x3A6F 0x5C29
+0x3A70-0x3A71 0x5C2B
+0x3A72 0x5C2E
+0x3A73 0x5C30
+0x3A74 0x5C32
+0x3A75-0x3A76 0x5C35
+0x3A77-0x3A78 0x5C59
+0x3A79 0x5C5C
+0x3A7A-0x3A7B 0x5C62
+0x3A7C-0x3A7E 0x5C67
+0x3B21 0x5C6D
+0x3B22 0x5C70
+0x3B23-0x3B24 0x5C74
+0x3B25-0x3B28 0x5C7A
+0x3B29-0x3B2A 0x5C87
+0x3B2B 0x5C8A
+0x3B2C 0x5C8F
+0x3B2D 0x5C92
+0x3B2E 0x5C9D
+0x3B2F-0x3B30 0x5C9F
+0x3B31-0x3B32 0x5CA2
+0x3B33 0x5CA6
+0x3B34 0x5CAA
+0x3B35 0x5CB2
+0x3B36-0x3B37 0x5CB4
+0x3B38 0x5CBA
+0x3B39 0x5CC9
+0x3B3A 0x5CCB
+0x3B3B 0x5CD2
+0x3B3C 0x5CDD
+0x3B3D 0x5CD7
+0x3B3E 0x5CEE
+0x3B3F-0x3B40 0x5CF1
+0x3B41 0x5CF4
+0x3B42 0x5D01
+0x3B43 0x5D06
+0x3B44 0x5D0D
+0x3B45 0x5D12
+0x3B46 0x5D2B
+0x3B47-0x3B48 0x5D23
+0x3B49-0x3B4A 0x5D26
+0x3B4B 0x5D31
+0x3B4C 0x5D34
+0x3B4D 0x5D39
+0x3B4E 0x5D3D
+0x3B4F 0x5D3F
+0x3B50-0x3B51 0x5D42
+0x3B52 0x5D46
+0x3B53 0x5D48
+0x3B54 0x5D55
+0x3B55 0x5D51
+0x3B56 0x5D59
+0x3B57 0x5D4A
+0x3B58-0x3B5B 0x5D5F
+0x3B5C 0x5D64
+0x3B5D 0x5D6A
+0x3B5E 0x5D6D
+0x3B5F 0x5D70
+0x3B60-0x3B61 0x5D79
+0x3B62-0x3B63 0x5D7E
+0x3B64 0x5D81
+0x3B65 0x5D83
+0x3B66 0x5D88
+0x3B67 0x5D8A
+0x3B68-0x3B6B 0x5D92
+0x3B6C 0x5D99
+0x3B6D 0x5D9B
+0x3B6E-0x3B6F 0x5D9F
+0x3B70 0x5DA7
+0x3B71 0x5DAB
+0x3B72 0x5DB0
+0x3B73 0x5DB4
+0x3B74-0x3B75 0x5DB8
+0x3B76 0x5DC3
+0x3B77 0x5DC7
+0x3B78 0x5DCB
+0x3B79 0x5DD0
+0x3B7A 0x5DCE
+0x3B7B-0x3B7C 0x5DD8
+0x3B7D 0x5DE0
+0x3B7E 0x5DE4
+0x3C21 0x5DE9
+0x3C22-0x3C23 0x5DF8
+0x3C24 0x5E00
+0x3C25 0x5E07
+0x3C26 0x5E0D
+0x3C27 0x5E12
+0x3C28-0x3C29 0x5E14
+0x3C2A 0x5E18
+0x3C2B-0x3C2C 0x5E1F
+0x3C2D 0x5E2E
+0x3C2E 0x5E28
+0x3C2F 0x5E32
+0x3C30 0x5E35
+0x3C31 0x5E3E
+0x3C32 0x5E4B
+0x3C33 0x5E50
+0x3C34 0x5E49
+0x3C35 0x5E51
+0x3C36 0x5E56
+0x3C37 0x5E58
+0x3C38-0x3C39 0x5E5B
+0x3C3A 0x5E5E
+0x3C3B 0x5E68
+0x3C3C-0x3C40 0x5E6A
+0x3C41 0x5E70
+0x3C42 0x5E80
+0x3C43 0x5E8B
+0x3C44 0x5E8E
+0x3C45 0x5EA2
+0x3C46-0x3C47 0x5EA4
+0x3C48 0x5EA8
+0x3C49 0x5EAA
+0x3C4A 0x5EAC
+0x3C4B 0x5EB1
+0x3C4C 0x5EB3
+0x3C4D-0x3C4F 0x5EBD
+0x3C50 0x5EC6
+0x3C51 0x5ECC
+0x3C52 0x5ECB
+0x3C53 0x5ECE
+0x3C54-0x3C55 0x5ED1
+0x3C56-0x3C57 0x5ED4
+0x3C58 0x5EDC
+0x3C59 0x5EDE
+0x3C5A 0x5EE5
+0x3C5B 0x5EEB
+0x3C5C 0x5F02
+0x3C5D-0x3C5F 0x5F06
+0x3C60 0x5F0E
+0x3C61 0x5F19
+0x3C62-0x3C63 0x5F1C
+0x3C64-0x3C67 0x5F21
+0x3C68 0x5F28
+0x3C69-0x3C6A 0x5F2B
+0x3C6B 0x5F2E
+0x3C6C 0x5F30
+0x3C6D 0x5F34
+0x3C6E 0x5F36
+0x3C6F 0x5F3B
+0x3C70 0x5F3D
+0x3C71-0x3C72 0x5F3F
+0x3C73-0x3C74 0x5F44
+0x3C75 0x5F47
+0x3C76 0x5F4D
+0x3C77 0x5F50
+0x3C78 0x5F54
+0x3C79 0x5F58
+0x3C7A 0x5F5B
+0x3C7B 0x5F60
+0x3C7C-0x3C7D 0x5F63
+0x3C7E 0x5F67
+0x3D21 0x5F6F
+0x3D22 0x5F72
+0x3D23-0x3D24 0x5F74
+0x3D25 0x5F78
+0x3D26 0x5F7A
+0x3D27-0x3D28 0x5F7D
+0x3D29 0x5F89
+0x3D2A 0x5F8D
+0x3D2B 0x5F8F
+0x3D2C 0x5F96
+0x3D2D-0x3D2E 0x5F9C
+0x3D2F 0x5FA2
+0x3D30 0x5FA7
+0x3D31 0x5FAB
+0x3D32 0x5FA4
+0x3D33 0x5FAC
+0x3D34-0x3D36 0x5FAF
+0x3D37 0x5FB8
+0x3D38 0x5FC4
+0x3D39-0x3D3B 0x5FC7
+0x3D3C 0x5FCB
+0x3D3D-0x3D41 0x5FD0
+0x3D42 0x5FDE
+0x3D43-0x3D44 0x5FE1
+0x3D45-0x3D47 0x5FE8
+0x3D48-0x3D4B 0x5FEC
+0x3D4C-0x3D4D 0x5FF2
+0x3D4E 0x5FF6
+0x3D4F 0x5FFA
+0x3D50 0x5FFC
+0x3D51 0x6007
+0x3D52 0x600A
+0x3D53 0x600D
+0x3D54-0x3D55 0x6013
+0x3D56-0x3D57 0x6017
+0x3D58 0x601A
+0x3D59 0x601F
+0x3D5A 0x6024
+0x3D5B 0x602D
+0x3D5C 0x6033
+0x3D5D 0x6035
+0x3D5E 0x6040
+0x3D5F-0x3D61 0x6047
+0x3D62 0x604C
+0x3D63 0x6051
+0x3D64 0x6054
+0x3D65-0x3D66 0x6056
+0x3D67 0x605D
+0x3D68 0x6061
+0x3D69 0x6067
+0x3D6A 0x6071
+0x3D6B-0x3D6C 0x607E
+0x3D6D 0x6082
+0x3D6E 0x6086
+0x3D6F 0x6088
+0x3D70 0x608A
+0x3D71 0x608E
+0x3D72 0x6091
+0x3D73 0x6093
+0x3D74 0x6095
+0x3D75 0x6098
+0x3D76-0x3D77 0x609D
+0x3D78 0x60A2
+0x3D79-0x3D7A 0x60A4
+0x3D7B 0x60A8
+0x3D7C-0x3D7D 0x60B0
+0x3D7E 0x60B7
+0x3E21 0x60BB
+0x3E22 0x60BE
+0x3E23 0x60C2
+0x3E24 0x60C4
+0x3E25-0x3E28 0x60C8
+0x3E29-0x3E2A 0x60CE
+0x3E2B-0x3E2C 0x60D4
+0x3E2D 0x60D9
+0x3E2E 0x60DB
+0x3E2F-0x3E30 0x60DD
+0x3E31 0x60E2
+0x3E32 0x60E5
+0x3E33 0x60F2
+0x3E34 0x60F5
+0x3E35 0x60F8
+0x3E36-0x3E37 0x60FC
+0x3E38 0x6102
+0x3E39 0x6107
+0x3E3A 0x610A
+0x3E3B 0x610C
+0x3E3C-0x3E40 0x6110
+0x3E41-0x3E42 0x6116
+0x3E43 0x6119
+0x3E44 0x611C
+0x3E45 0x611E
+0x3E46 0x6122
+0x3E47-0x3E48 0x612A
+0x3E49-0x3E4A 0x6130
+0x3E4B-0x3E4D 0x6135
+0x3E4E 0x6139
+0x3E4F 0x6141
+0x3E50-0x3E51 0x6145
+0x3E52 0x6149
+0x3E53 0x615E
+0x3E54 0x6160
+0x3E55 0x616C
+0x3E56 0x6172
+0x3E57 0x6178
+0x3E58-0x3E59 0x617B
+0x3E5A-0x3E5C 0x617F
+0x3E5D-0x3E5E 0x6183
+0x3E5F 0x618B
+0x3E60 0x618D
+0x3E61-0x3E62 0x6192
+0x3E63-0x3E64 0x6197
+0x3E65-0x3E66 0x619C
+0x3E67-0x3E68 0x619F
+0x3E69 0x61A5
+0x3E6A 0x61A8
+0x3E6B 0x61AA
+0x3E6C 0x61AD
+0x3E6D-0x3E6E 0x61B8
+0x3E6F 0x61BC
+0x3E70-0x3E72 0x61C0
+0x3E73-0x3E74 0x61CE
+0x3E75 0x61D5
+0x3E76-0x3E79 0x61DC
+0x3E7A-0x3E7B 0x61E1
+0x3E7C 0x61E7
+0x3E7D 0x61E9
+0x3E7E 0x61E5
+0x3F21-0x3F22 0x61EC
+0x3F23 0x61EF
+0x3F24 0x6201
+0x3F25-0x3F26 0x6203
+0x3F27 0x6207
+0x3F28 0x6213
+0x3F29 0x6215
+0x3F2A 0x621C
+0x3F2B 0x6220
+0x3F2C-0x3F2D 0x6222
+0x3F2E 0x6227
+0x3F2F 0x6229
+0x3F30 0x622B
+0x3F31 0x6239
+0x3F32 0x623D
+0x3F33-0x3F35 0x6242
+0x3F36 0x6246
+0x3F37 0x624C
+0x3F38-0x3F3A 0x6250
+0x3F3B 0x6254
+0x3F3C 0x6256
+0x3F3D 0x625A
+0x3F3E 0x625C
+0x3F3F 0x6264
+0x3F40 0x626D
+0x3F41 0x626F
+0x3F42 0x6273
+0x3F43 0x627A
+0x3F44 0x627D
+0x3F45-0x3F48 0x628D
+0x3F49 0x62A6
+0x3F4A 0x62A8
+0x3F4B 0x62B3
+0x3F4C-0x3F4D 0x62B6
+0x3F4E 0x62BA
+0x3F4F-0x3F50 0x62BE
+0x3F51 0x62C4
+0x3F52 0x62CE
+0x3F53-0x3F54 0x62D5
+0x3F55 0x62DA
+0x3F56 0x62EA
+0x3F57 0x62F2
+0x3F58 0x62F4
+0x3F59-0x3F5A 0x62FC
+0x3F5B-0x3F5C 0x6303
+0x3F5D-0x3F5E 0x630A
+0x3F5F 0x630D
+0x3F60 0x6310
+0x3F61 0x6313
+0x3F62 0x6316
+0x3F63 0x6318
+0x3F64-0x3F65 0x6329
+0x3F66 0x632D
+0x3F67-0x3F68 0x6335
+0x3F69 0x6339
+0x3F6A 0x633C
+0x3F6B-0x3F6E 0x6341
+0x3F6F 0x6346
+0x3F70-0x3F71 0x634A
+0x3F72 0x634E
+0x3F73-0x3F75 0x6352
+0x3F76 0x6358
+0x3F77 0x635B
+0x3F78-0x3F79 0x6365
+0x3F7A-0x3F7B 0x636C
+0x3F7C 0x6371
+0x3F7D-0x3F7E 0x6374
+0x4021 0x6378
+0x4022-0x4023 0x637C
+0x4024 0x637F
+0x4025 0x6382
+0x4026 0x6384
+0x4027 0x6387
+0x4028 0x638A
+0x4029 0x6390
+0x402A-0x402B 0x6394
+0x402C-0x402D 0x6399
+0x402E 0x639E
+0x402F 0x63A4
+0x4030 0x63A6
+0x4031-0x4033 0x63AD
+0x4034 0x63BD
+0x4035 0x63C1
+0x4036 0x63C5
+0x4037 0x63C8
+0x4038 0x63CE
+0x4039 0x63D1
+0x403A-0x403C 0x63D3
+0x403D 0x63DC
+0x403E 0x63E0
+0x403F 0x63E5
+0x4040 0x63EA
+0x4041 0x63EC
+0x4042-0x4043 0x63F2
+0x4044 0x63F5
+0x4045-0x4046 0x63F8
+0x4047-0x4048 0x6409
+0x4049 0x6410
+0x404A 0x6412
+0x404B 0x6414
+0x404C 0x6418
+0x404D 0x641E
+0x404E 0x6420
+0x404F 0x6422
+0x4050-0x4051 0x6424
+0x4052-0x4053 0x6429
+0x4054-0x4055 0x642F
+0x4056 0x6435
+0x4057 0x643D
+0x4058 0x643F
+0x4059 0x644B
+0x405A 0x644F
+0x405B-0x405E 0x6451
+0x405F-0x4062 0x645A
+0x4063-0x4065 0x645F
+0x4066 0x6463
+0x4067 0x646D
+0x4068-0x4069 0x6473
+0x406A 0x647B
+0x406B 0x647D
+0x406C 0x6485
+0x406D 0x6487
+0x406E-0x4070 0x648F
+0x4071-0x4072 0x6498
+0x4073 0x649B
+0x4074 0x649D
+0x4075 0x649F
+0x4076 0x64A1
+0x4077 0x64A3
+0x4078 0x64A6
+0x4079 0x64A8
+0x407A 0x64AC
+0x407B 0x64B3
+0x407C-0x407E 0x64BD
+0x4121 0x64C4
+0x4122-0x4125 0x64C9
+0x4126 0x64CE
+0x4127-0x4128 0x64D0
+0x4129 0x64D5
+0x412A 0x64D7
+0x412B-0x412C 0x64E4
+0x412D-0x412E 0x64E9
+0x412F 0x64ED
+0x4130 0x64F0
+0x4131 0x64F5
+0x4132 0x64F7
+0x4133 0x64FB
+0x4134 0x64FF
+0x4135 0x6501
+0x4136 0x6504
+0x4137-0x4139 0x6508
+0x413A 0x650F
+0x413B-0x413C 0x6513
+0x413D 0x6516
+0x413E 0x6519
+0x413F 0x651B
+0x4140-0x4141 0x651E
+0x4142 0x6522
+0x4143 0x6526
+0x4144 0x6529
+0x4145 0x652E
+0x4146 0x6531
+0x4147 0x653A
+0x4148-0x4149 0x653C
+0x414A 0x6543
+0x414B 0x6547
+0x414C 0x6549
+0x414D 0x6550
+0x414E 0x6552
+0x414F 0x6554
+0x4150-0x4151 0x655F
+0x4152 0x6567
+0x4153 0x656B
+0x4154 0x657A
+0x4155 0x657D
+0x4156 0x6581
+0x4157 0x6585
+0x4158 0x658A
+0x4159 0x6592
+0x415A 0x6595
+0x415B 0x6598
+0x415C 0x659D
+0x415D 0x65A0
+0x415E 0x65A3
+0x415F 0x65A6
+0x4160 0x65AE
+0x4161-0x4163 0x65B2
+0x4164 0x65BF
+0x4165 0x65C2
+0x4166-0x4167 0x65C8
+0x4168 0x65CE
+0x4169 0x65D0
+0x416A 0x65D4
+0x416B 0x65D6
+0x416C 0x65D8
+0x416D 0x65DF
+0x416E 0x65F0
+0x416F 0x65F2
+0x4170-0x4171 0x65F4
+0x4172 0x65F9
+0x4173-0x4175 0x65FE
+0x4176 0x6604
+0x4177-0x4178 0x6608
+0x4179 0x660D
+0x417A-0x417B 0x6611
+0x417C-0x417D 0x6615
+0x417E 0x661D
+0x4221 0x661E
+0x4222-0x4225 0x6621
+0x4226 0x6626
+0x4227-0x422A 0x6629
+0x422B 0x662E
+0x422C-0x422D 0x6630
+0x422E 0x6633
+0x422F 0x6639
+0x4230 0x6637
+0x4231 0x6640
+0x4232-0x4233 0x6645
+0x4234 0x664A
+0x4235 0x664C
+0x4236 0x6651
+0x4237 0x664E
+0x4238-0x423A 0x6657
+0x423B-0x423C 0x665B
+0x423D-0x423E 0x6660
+0x423F 0x66FB
+0x4240-0x4242 0x666A
+0x4243 0x667E
+0x4244 0x6673
+0x4245 0x6675
+0x4246 0x667F
+0x4247-0x4249 0x6677
+0x424A 0x667B
+0x424B 0x6680
+0x424C 0x667C
+0x424D-0x424F 0x668B
+0x4250 0x6690
+0x4251 0x6692
+0x4252-0x4255 0x6699
+0x4256-0x4257 0x669F
+0x4258 0x66A4
+0x4259 0x66AD
+0x425A-0x425B 0x66B1
+0x425C 0x66B5
+0x425D 0x66BB
+0x425E-0x425F 0x66BF
+0x4260-0x4261 0x66C2
+0x4262 0x66C8
+0x4263 0x66CC
+0x4264-0x4265 0x66CE
+0x4266 0x66D4
+0x4267 0x66DB
+0x4268 0x66DF
+0x4269 0x66E8
+0x426A-0x426B 0x66EB
+0x426C 0x66EE
+0x426D 0x66FA
+0x426E 0x6705
+0x426F 0x6707
+0x4270 0x670E
+0x4271 0x6713
+0x4272 0x6719
+0x4273 0x671C
+0x4274 0x6720
+0x4275 0x6722
+0x4276 0x6733
+0x4277 0x673E
+0x4278 0x6745
+0x4279-0x427A 0x6747
+0x427B 0x674C
+0x427C-0x427D 0x6754
+0x427E 0x675D
+0x4321 0x6766
+0x4322 0x676C
+0x4323 0x676E
+0x4324 0x6774
+0x4325 0x6776
+0x4326 0x677B
+0x4327 0x6781
+0x4328 0x6784
+0x4329-0x432A 0x678E
+0x432B 0x6791
+0x432C 0x6793
+0x432D 0x6796
+0x432E-0x432F 0x6798
+0x4330 0x679B
+0x4331-0x4333 0x67B0
+0x4334 0x67B5
+0x4335-0x4337 0x67BB
+0x4338 0x67F9
+0x4339 0x67C0
+0x433A-0x433B 0x67C2
+0x433C 0x67C5
+0x433D-0x433E 0x67C8
+0x433F 0x67D2
+0x4340 0x67D7
+0x4341 0x67D9
+0x4342 0x67DC
+0x4343 0x67E1
+0x4344 0x67E6
+0x4345 0x67F0
+0x4346 0x67F2
+0x4347-0x4348 0x67F6
+0x4349 0x6852
+0x434A 0x6814
+0x434B 0x6819
+0x434C 0x681D
+0x434D 0x681F
+0x434E 0x6828
+0x434F 0x6827
+0x4350-0x4351 0x682C
+0x4352-0x4354 0x682F
+0x4355 0x6833
+0x4356 0x683B
+0x4357 0x683F
+0x4358-0x4359 0x6844
+0x435A 0x684A
+0x435B 0x684C
+0x435C 0x6855
+0x435D-0x435E 0x6857
+0x435F 0x685B
+0x4360 0x686B
+0x4361-0x4365 0x686E
+0x4366 0x6875
+0x4367-0x436A 0x6879
+0x436B 0x6882
+0x436C 0x6884
+0x436D 0x6886
+0x436E 0x6888
+0x436F 0x6896
+0x4370 0x6898
+0x4371 0x689A
+0x4372 0x689C
+0x4373 0x68A1
+0x4374 0x68A3
+0x4375 0x68A5
+0x4376-0x4377 0x68A9
+0x4378 0x68AE
+0x4379 0x68B2
+0x437A 0x68BB
+0x437B 0x68C5
+0x437C 0x68C8
+0x437D 0x68CC
+0x437E 0x68CF
+0x4421-0x4422 0x68D0
+0x4423 0x68D3
+0x4424 0x68D6
+0x4425 0x68D9
+0x4426-0x4427 0x68DC
+0x4428 0x68E5
+0x4429 0x68E8
+0x442A-0x442D 0x68EA
+0x442E-0x442F 0x68F0
+0x4430-0x4431 0x68F5
+0x4432-0x4434 0x68FB
+0x4435 0x6906
+0x4436-0x4437 0x6909
+0x4438-0x4439 0x6910
+0x443A 0x6913
+0x443B-0x443C 0x6916
+0x443D 0x6931
+0x443E 0x6933
+0x443F 0x6935
+0x4440 0x6938
+0x4441 0x693B
+0x4442 0x6942
+0x4443 0x6945
+0x4444 0x6949
+0x4445 0x694E
+0x4446 0x6957
+0x4447 0x695B
+0x4448-0x444B 0x6963
+0x444C-0x444D 0x6968
+0x444E 0x696C
+0x444F-0x4451 0x6970
+0x4452-0x4453 0x697A
+0x4454-0x4455 0x697F
+0x4456 0x698D
+0x4457 0x6992
+0x4458 0x6996
+0x4459 0x6998
+0x445A 0x69A1
+0x445B-0x445C 0x69A5
+0x445D 0x69A8
+0x445E 0x69AB
+0x445F 0x69AD
+0x4460 0x69AF
+0x4461-0x4462 0x69B7
+0x4463 0x69BA
+0x4464 0x69BC
+0x4465 0x69C5
+0x4466 0x69C8
+0x4467 0x69D1
+0x4468-0x4469 0x69D6
+0x446A 0x69E2
+0x446B 0x69E5
+0x446C-0x446D 0x69EE
+0x446E 0x69F1
+0x446F 0x69F3
+0x4470 0x69F5
+0x4471 0x69FE
+0x4472-0x4473 0x6A00
+0x4474 0x6A03
+0x4475 0x6A0F
+0x4476 0x6A11
+0x4477 0x6A15
+0x4478 0x6A1A
+0x4479 0x6A1D
+0x447A 0x6A20
+0x447B 0x6A24
+0x447C 0x6A28
+0x447D 0x6A30
+0x447E 0x6A32
+0x4521 0x6A34
+0x4522 0x6A37
+0x4523 0x6A3B
+0x4524-0x4525 0x6A3E
+0x4526-0x4527 0x6A45
+0x4528-0x4529 0x6A49
+0x452A 0x6A4E
+0x452B-0x452D 0x6A50
+0x452E-0x452F 0x6A55
+0x4530 0x6A5B
+0x4531 0x6A64
+0x4532 0x6A67
+0x4533 0x6A6A
+0x4534 0x6A71
+0x4535 0x6A73
+0x4536 0x6A7E
+0x4537 0x6A81
+0x4538 0x6A83
+0x4539-0x453A 0x6A86
+0x453B 0x6A89
+0x453C 0x6A8B
+0x453D 0x6A91
+0x453E 0x6A9B
+0x453F-0x4541 0x6A9D
+0x4542 0x6AA5
+0x4543 0x6AAB
+0x4544-0x4546 0x6AAF
+0x4547 0x6AB4
+0x4548-0x454A 0x6ABD
+0x454B 0x6AC6
+0x454C 0x6AC9
+0x454D 0x6AC8
+0x454E 0x6ACC
+0x454F 0x6AD0
+0x4550-0x4552 0x6AD4
+0x4553-0x4554 0x6ADC
+0x4555 0x6AE4
+0x4556 0x6AE7
+0x4557 0x6AEC
+0x4558-0x455A 0x6AF0
+0x455B-0x455C 0x6AFC
+0x455D-0x455E 0x6B02
+0x455F-0x4560 0x6B06
+0x4561 0x6B09
+0x4562-0x4564 0x6B0F
+0x4565 0x6B17
+0x4566 0x6B1B
+0x4567 0x6B1E
+0x4568 0x6B24
+0x4569 0x6B28
+0x456A-0x456B 0x6B2B
+0x456C 0x6B2F
+0x456D-0x456E 0x6B35
+0x456F 0x6B3B
+0x4570 0x6B3F
+0x4571 0x6B46
+0x4572 0x6B4A
+0x4573 0x6B4D
+0x4574 0x6B52
+0x4575 0x6B56
+0x4576 0x6B58
+0x4577 0x6B5D
+0x4578 0x6B60
+0x4579 0x6B67
+0x457A 0x6B6B
+0x457B 0x6B6E
+0x457C 0x6B70
+0x457D 0x6B75
+0x457E 0x6B7D
+0x4621 0x6B7E
+0x4622 0x6B82
+0x4623 0x6B85
+0x4624 0x6B97
+0x4625 0x6B9B
+0x4626-0x4627 0x6B9F
+0x4628-0x4629 0x6BA2
+0x462A-0x462B 0x6BA8
+0x462C-0x462E 0x6BAC
+0x462F 0x6BB0
+0x4630-0x4631 0x6BB8
+0x4632-0x4633 0x6BBD
+0x4634-0x4635 0x6BC3
+0x4636 0x6BC9
+0x4637 0x6BCC
+0x4638 0x6BD6
+0x4639 0x6BDA
+0x463A 0x6BE1
+0x463B 0x6BE3
+0x463C-0x463D 0x6BE6
+0x463E 0x6BEE
+0x463F 0x6BF1
+0x4640 0x6BF7
+0x4641 0x6BF9
+0x4642 0x6BFF
+0x4643 0x6C02
+0x4644-0x4645 0x6C04
+0x4646 0x6C09
+0x4647-0x4648 0x6C0D
+0x4649 0x6C10
+0x464A 0x6C12
+0x464B 0x6C19
+0x464C 0x6C1F
+0x464D-0x464F 0x6C26
+0x4650 0x6C2C
+0x4651 0x6C2E
+0x4652 0x6C33
+0x4653-0x4654 0x6C35
+0x4655-0x4656 0x6C3A
+0x4657 0x6C3F
+0x4658-0x4659 0x6C4A
+0x465A 0x6C4D
+0x465B 0x6C4F
+0x465C 0x6C52
+0x465D 0x6C54
+0x465E 0x6C59
+0x465F-0x4660 0x6C5B
+0x4661 0x6C6B
+0x4662 0x6C6D
+0x4663 0x6C6F
+0x4664 0x6C74
+0x4665 0x6C76
+0x4666-0x4667 0x6C78
+0x4668 0x6C7B
+0x4669-0x466B 0x6C85
+0x466C 0x6C89
+0x466D-0x466E 0x6C94
+0x466F-0x4670 0x6C97
+0x4671 0x6C9C
+0x4672 0x6C9F
+0x4673 0x6CB0
+0x4674 0x6CB2
+0x4675 0x6CB4
+0x4676 0x6CC2
+0x4677 0x6CC6
+0x4678 0x6CCD
+0x4679-0x467C 0x6CCF
+0x467D 0x6CD4
+0x467E 0x6CD6
+0x4721 0x6CDA
+0x4722 0x6CDC
+0x4723 0x6CE0
+0x4724 0x6CE7
+0x4725 0x6CE9
+0x4726-0x4727 0x6CEB
+0x4728 0x6CEE
+0x4729 0x6CF2
+0x472A 0x6CF4
+0x472B 0x6D04
+0x472C 0x6D07
+0x472D 0x6D0A
+0x472E-0x472F 0x6D0E
+0x4730 0x6D11
+0x4731 0x6D13
+0x4732 0x6D1A
+0x4733-0x4735 0x6D26
+0x4736 0x6C67
+0x4737-0x4738 0x6D2E
+0x4739 0x6D31
+0x473A 0x6D39
+0x473B 0x6D3C
+0x473C 0x6D3F
+0x473D 0x6D57
+0x473E-0x473F 0x6D5E
+0x4740 0x6D61
+0x4741 0x6D65
+0x4742 0x6D67
+0x4743-0x4744 0x6D6F
+0x4745 0x6D7C
+0x4746 0x6D82
+0x4747 0x6D87
+0x4748-0x4749 0x6D91
+0x474A 0x6D94
+0x474B-0x474D 0x6D96
+0x474E 0x6DAA
+0x474F 0x6DAC
+0x4750 0x6DB4
+0x4751 0x6DB7
+0x4752 0x6DB9
+0x4753 0x6DBD
+0x4754 0x6DBF
+0x4755 0x6DC4
+0x4756 0x6DC8
+0x4757 0x6DCA
+0x4758-0x4759 0x6DCE
+0x475A 0x6DD6
+0x475B 0x6DDB
+0x475C 0x6DDD
+0x475D-0x475E 0x6DDF
+0x475F 0x6DE2
+0x4760 0x6DE5
+0x4761 0x6DE9
+0x4762-0x4763 0x6DEF
+0x4764 0x6DF4
+0x4765 0x6DF6
+0x4766 0x6DFC
+0x4767 0x6E00
+0x4768 0x6E04
+0x4769 0x6E1E
+0x476A 0x6E22
+0x476B 0x6E27
+0x476C 0x6E32
+0x476D 0x6E36
+0x476E 0x6E39
+0x476F-0x4770 0x6E3B
+0x4771-0x4772 0x6E44
+0x4773-0x4774 0x6E48
+0x4775 0x6E4B
+0x4776 0x6E4F
+0x4777-0x477A 0x6E51
+0x477B 0x6E57
+0x477C-0x477E 0x6E5C
+0x4821-0x4822 0x6E62
+0x4823 0x6E68
+0x4824 0x6E73
+0x4825 0x6E7B
+0x4826 0x6E7D
+0x4827 0x6E8D
+0x4828 0x6E93
+0x4829 0x6E99
+0x482A 0x6EA0
+0x482B 0x6EA7
+0x482C-0x482D 0x6EAD
+0x482E 0x6EB1
+0x482F 0x6EB3
+0x4830 0x6EBB
+0x4831-0x4833 0x6EBF
+0x4834 0x6EC3
+0x4835-0x4836 0x6EC7
+0x4837 0x6ECA
+0x4838-0x483A 0x6ECD
+0x483B 0x6EEB
+0x483C-0x483D 0x6EED
+0x483E 0x6EF9
+0x483F 0x6EFB
+0x4840 0x6EFD
+0x4841 0x6F04
+0x4842 0x6F08
+0x4843 0x6F0A
+0x4844-0x4845 0x6F0C
+0x4846 0x6F16
+0x4847 0x6F18
+0x4848-0x4849 0x6F1A
+0x484A 0x6F26
+0x484B-0x484C 0x6F29
+0x484D-0x484E 0x6F2F
+0x484F 0x6F33
+0x4850 0x6F36
+0x4851-0x4852 0x6F3B
+0x4853 0x6F2D
+0x4854 0x6F4F
+0x4855-0x4857 0x6F51
+0x4858 0x6F57
+0x4859-0x485A 0x6F59
+0x485B-0x485C 0x6F5D
+0x485D-0x485E 0x6F61
+0x485F 0x6F68
+0x4860 0x6F6C
+0x4861-0x4862 0x6F7D
+0x4863 0x6F83
+0x4864-0x4865 0x6F87
+0x4866-0x4868 0x6F8B
+0x4869 0x6F90
+0x486A-0x486C 0x6F92
+0x486D 0x6F96
+0x486E 0x6F9A
+0x486F-0x4870 0x6F9F
+0x4871-0x4874 0x6FA5
+0x4875-0x4877 0x6FAE
+0x4878-0x4879 0x6FB5
+0x487A 0x6FBC
+0x487B 0x6FC5
+0x487C-0x487D 0x6FC7
+0x487E 0x6FCA
+0x4921 0x6FDA
+0x4922 0x6FDE
+0x4923-0x4924 0x6FE8
+0x4925 0x6FF0
+0x4926 0x6FF5
+0x4927 0x6FF9
+0x4928-0x4929 0x6FFC
+0x492A 0x7000
+0x492B-0x492D 0x7005
+0x492E 0x700D
+0x492F 0x7017
+0x4930 0x7020
+0x4931 0x7023
+0x4932 0x702F
+0x4933 0x7034
+0x4934 0x7037
+0x4935 0x7039
+0x4936 0x703C
+0x4937-0x4938 0x7043
+0x4939-0x493C 0x7048
+0x493D-0x493E 0x7054
+0x493F-0x4940 0x705D
+0x4941 0x704E
+0x4942-0x4943 0x7064
+0x4944 0x706C
+0x4945 0x706E
+0x4946-0x4947 0x7075
+0x4948 0x707E
+0x4949 0x7081
+0x494A-0x494B 0x7085
+0x494C-0x4950 0x7094
+0x4951 0x709B
+0x4952 0x70A4
+0x4953 0x70AB
+0x4954-0x4955 0x70B0
+0x4956 0x70B4
+0x4957 0x70B7
+0x4958 0x70CA
+0x4959 0x70D1
+0x495A-0x495D 0x70D3
+0x495E 0x70D8
+0x495F 0x70DC
+0x4960 0x70E4
+0x4961 0x70FA
+0x4962-0x4966 0x7103
+0x4967-0x4968 0x710B
+0x4969 0x710F
+0x496A 0x711E
+0x496B 0x7120
+0x496C 0x712B
+0x496D 0x712D
+0x496E-0x4970 0x712F
+0x4971 0x7138
+0x4972 0x7141
+0x4973-0x4975 0x7145
+0x4976-0x4977 0x714A
+0x4978 0x7150
+0x4979 0x7152
+0x497A 0x7157
+0x497B 0x715A
+0x497C 0x715C
+0x497D 0x715E
+0x497E 0x7160
+0x4A21 0x7168
+0x4A22 0x7179
+0x4A23 0x7180
+0x4A24 0x7185
+0x4A25 0x7187
+0x4A26 0x718C
+0x4A27 0x7192
+0x4A28-0x4A29 0x719A
+0x4A2A 0x71A0
+0x4A2B 0x71A2
+0x4A2C-0x4A2D 0x71AF
+0x4A2E-0x4A2F 0x71B2
+0x4A30 0x71BA
+0x4A31-0x4A33 0x71BF
+0x4A34 0x71C4
+0x4A35-0x4A36 0x71CB
+0x4A37 0x71D3
+0x4A38 0x71D6
+0x4A39-0x4A3A 0x71D9
+0x4A3B 0x71DC
+0x4A3C 0x71F8
+0x4A3D 0x71FE
+0x4A3E 0x7200
+0x4A3F-0x4A41 0x7207
+0x4A42 0x7213
+0x4A43 0x7217
+0x4A44 0x721A
+0x4A45 0x721D
+0x4A46 0x721F
+0x4A47 0x7224
+0x4A48 0x722B
+0x4A49 0x722F
+0x4A4A 0x7234
+0x4A4B-0x4A4C 0x7238
+0x4A4D-0x4A4F 0x7241
+0x4A50 0x7245
+0x4A51-0x4A53 0x724E
+0x4A54 0x7253
+0x4A55-0x4A56 0x7255
+0x4A57 0x725A
+0x4A58 0x725C
+0x4A59 0x725E
+0x4A5A 0x7260
+0x4A5B 0x7263
+0x4A5C 0x7268
+0x4A5D 0x726B
+0x4A5E-0x4A5F 0x726E
+0x4A60 0x7271
+0x4A61-0x4A62 0x7277
+0x4A63-0x4A64 0x727B
+0x4A65 0x727F
+0x4A66 0x7284
+0x4A67 0x7289
+0x4A68-0x4A69 0x728D
+0x4A6A 0x7293
+0x4A6B 0x729B
+0x4A6C 0x72A8
+0x4A6D-0x4A6E 0x72AD
+0x4A6F 0x72B1
+0x4A70 0x72B4
+0x4A71 0x72BE
+0x4A72 0x72C1
+0x4A73 0x72C7
+0x4A74 0x72C9
+0x4A75 0x72CC
+0x4A76-0x4A77 0x72D5
+0x4A78 0x72D8
+0x4A79 0x72DF
+0x4A7A 0x72E5
+0x4A7B-0x4A7C 0x72F3
+0x4A7D-0x4A7E 0x72FA
+0x4B21 0x72FE
+0x4B22 0x7302
+0x4B23-0x4B24 0x7304
+0x4B25 0x7307
+0x4B26 0x730B
+0x4B27 0x730D
+0x4B28-0x4B29 0x7312
+0x4B2A-0x4B2B 0x7318
+0x4B2C 0x731E
+0x4B2D 0x7322
+0x4B2E 0x7324
+0x4B2F-0x4B30 0x7327
+0x4B31 0x732C
+0x4B32-0x4B33 0x7331
+0x4B34 0x7335
+0x4B35-0x4B36 0x733A
+0x4B37 0x733D
+0x4B38 0x7343
+0x4B39 0x734D
+0x4B3A 0x7350
+0x4B3B 0x7352
+0x4B3C 0x7356
+0x4B3D 0x7358
+0x4B3E-0x4B41 0x735D
+0x4B42-0x4B43 0x7366
+0x4B44 0x7369
+0x4B45-0x4B46 0x736B
+0x4B47-0x4B48 0x736E
+0x4B49 0x7371
+0x4B4A 0x7377
+0x4B4B 0x7379
+0x4B4C 0x737C
+0x4B4D-0x4B4E 0x7380
+0x4B4F 0x7383
+0x4B50-0x4B51 0x7385
+0x4B52 0x738E
+0x4B53 0x7390
+0x4B54 0x7393
+0x4B55 0x7395
+0x4B56-0x4B57 0x7397
+0x4B58 0x739C
+0x4B59-0x4B5B 0x739E
+0x4B5C 0x73A2
+0x4B5D-0x4B5E 0x73A5
+0x4B5F-0x4B60 0x73AA
+0x4B61 0x73AD
+0x4B62 0x73B5
+0x4B63 0x73B7
+0x4B64 0x73B9
+0x4B65-0x4B66 0x73BC
+0x4B67 0x73BF
+0x4B68-0x4B69 0x73C5
+0x4B6A 0x73C9
+0x4B6B-0x4B6C 0x73CB
+0x4B6D 0x73CF
+0x4B6E-0x4B6F 0x73D2
+0x4B70 0x73D6
+0x4B71 0x73D9
+0x4B72 0x73DD
+0x4B73 0x73E1
+0x4B74 0x73E3
+0x4B75-0x4B76 0x73E6
+0x4B77 0x73E9
+0x4B78-0x4B79 0x73F4
+0x4B7A 0x73F7
+0x4B7B-0x4B7D 0x73F9
+0x4B7E 0x73FD
+0x4C21-0x4C23 0x73FF
+0x4C24 0x7404
+0x4C25 0x7407
+0x4C26 0x740A
+0x4C27 0x7411
+0x4C28-0x4C29 0x741A
+0x4C2A 0x7424
+0x4C2B 0x7426
+0x4C2C-0x4C35 0x7428
+0x4C36 0x7439
+0x4C37 0x7440
+0x4C38-0x4C39 0x7443
+0x4C3A-0x4C3B 0x7446
+0x4C3C 0x744B
+0x4C3D 0x744D
+0x4C3E-0x4C3F 0x7451
+0x4C40 0x7457
+0x4C41 0x745D
+0x4C42 0x7462
+0x4C43-0x4C45 0x7466
+0x4C46 0x746B
+0x4C47-0x4C48 0x746D
+0x4C49-0x4C4A 0x7471
+0x4C4B-0x4C4C 0x7480
+0x4C4D-0x4C4F 0x7485
+0x4C50 0x7489
+0x4C51-0x4C54 0x748F
+0x4C55-0x4C57 0x7498
+0x4C58 0x749C
+0x4C59-0x4C5B 0x749F
+0x4C5C 0x74A3
+0x4C5D 0x74A6
+0x4C5E-0x4C61 0x74A8
+0x4C62-0x4C63 0x74AE
+0x4C64-0x4C65 0x74B1
+0x4C66 0x74B5
+0x4C67 0x74B9
+0x4C68 0x74BB
+0x4C69 0x74BF
+0x4C6A-0x4C6B 0x74C8
+0x4C6C 0x74CC
+0x4C6D 0x74D0
+0x4C6E 0x74D3
+0x4C6F 0x74D8
+0x4C70-0x4C71 0x74DA
+0x4C72-0x4C73 0x74DE
+0x4C74 0x74E4
+0x4C75 0x74E8
+0x4C76-0x4C77 0x74EA
+0x4C78 0x74EF
+0x4C79 0x74F4
+0x4C7A-0x4C7C 0x74FA
+0x4C7D 0x74FF
+0x4C7E 0x7506
+0x4D21 0x7512
+0x4D22-0x4D23 0x7516
+0x4D24-0x4D25 0x7520
+0x4D26 0x7524
+0x4D27 0x7527
+0x4D28-0x4D29 0x7529
+0x4D2A 0x752F
+0x4D2B 0x7536
+0x4D2C 0x7539
+0x4D2D-0x4D30 0x753D
+0x4D31 0x7543
+0x4D32-0x4D33 0x7547
+0x4D34 0x754E
+0x4D35 0x7550
+0x4D36 0x7552
+0x4D37 0x7557
+0x4D38-0x4D39 0x755E
+0x4D3A 0x7561
+0x4D3B 0x756F
+0x4D3C 0x7571
+0x4D3D-0x4D42 0x7579
+0x4D43 0x7581
+0x4D44 0x7585
+0x4D45 0x7590
+0x4D46-0x4D47 0x7592
+0x4D48 0x7595
+0x4D49 0x7599
+0x4D4A 0x759C
+0x4D4B 0x75A2
+0x4D4C 0x75A4
+0x4D4D 0x75B4
+0x4D4E 0x75BA
+0x4D4F-0x4D51 0x75BF
+0x4D52 0x75C4
+0x4D53 0x75C6
+0x4D54 0x75CC
+0x4D55-0x4D56 0x75CE
+0x4D57 0x75D7
+0x4D58 0x75DC
+0x4D59-0x4D5B 0x75DF
+0x4D5C 0x75E4
+0x4D5D 0x75E7
+0x4D5E 0x75EC
+0x4D5F-0x4D60 0x75EE
+0x4D61 0x75F1
+0x4D62 0x75F9
+0x4D63 0x7600
+0x4D64-0x4D66 0x7602
+0x4D67-0x4D68 0x7607
+0x4D69 0x760A
+0x4D6A 0x760C
+0x4D6B 0x760F
+0x4D6C-0x4D6D 0x7612
+0x4D6E-0x4D6F 0x7615
+0x4D70 0x7619
+0x4D71-0x4D74 0x761B
+0x4D75 0x7623
+0x4D76-0x4D77 0x7625
+0x4D78 0x7629
+0x4D79 0x762D
+0x4D7A-0x4D7B 0x7632
+0x4D7C 0x7635
+0x4D7D-0x4D7E 0x7638
+0x4E21 0x763A
+0x4E22 0x763C
+0x4E23 0x764A
+0x4E24-0x4E25 0x7640
+0x4E26-0x4E28 0x7643
+0x4E29 0x7649
+0x4E2A 0x764B
+0x4E2B 0x7655
+0x4E2C 0x7659
+0x4E2D 0x765F
+0x4E2E-0x4E2F 0x7664
+0x4E30-0x4E32 0x766D
+0x4E33 0x7671
+0x4E34 0x7674
+0x4E35 0x7681
+0x4E36 0x7685
+0x4E37-0x4E38 0x768C
+0x4E39 0x7695
+0x4E3A-0x4E3C 0x769B
+0x4E3D-0x4E3E 0x769F
+0x4E3F-0x4E45 0x76A2
+0x4E46 0x76AA
+0x4E47 0x76AD
+0x4E48 0x76BD
+0x4E49 0x76C1
+0x4E4A 0x76C5
+0x4E4B 0x76C9
+0x4E4C-0x4E4D 0x76CB
+0x4E4E 0x76CE
+0x4E4F 0x76D4
+0x4E50 0x76D9
+0x4E51 0x76E0
+0x4E52 0x76E6
+0x4E53 0x76E8
+0x4E54 0x76EC
+0x4E55-0x4E56 0x76F0
+0x4E57 0x76F6
+0x4E58 0x76F9
+0x4E59 0x76FC
+0x4E5A 0x7700
+0x4E5B 0x7706
+0x4E5C 0x770A
+0x4E5D 0x770E
+0x4E5E 0x7712
+0x4E5F-0x4E60 0x7714
+0x4E61 0x7717
+0x4E62-0x4E63 0x7719
+0x4E64 0x771C
+0x4E65 0x7722
+0x4E66 0x7728
+0x4E67-0x4E69 0x772D
+0x4E6A-0x4E6C 0x7734
+0x4E6D 0x7739
+0x4E6E-0x4E6F 0x773D
+0x4E70 0x7742
+0x4E71-0x4E72 0x7745
+0x4E73 0x774A
+0x4E74-0x4E76 0x774D
+0x4E77 0x7752
+0x4E78-0x4E79 0x7756
+0x4E7A 0x775C
+0x4E7B-0x4E7D 0x775E
+0x4E7E 0x7762
+0x4F21 0x7764
+0x4F22 0x7767
+0x4F23 0x776A
+0x4F24 0x776C
+0x4F25 0x7770
+0x4F26-0x4F28 0x7772
+0x4F29 0x777A
+0x4F2A 0x777D
+0x4F2B 0x7780
+0x4F2C 0x7784
+0x4F2D-0x4F2E 0x778C
+0x4F2F-0x4F31 0x7794
+0x4F32 0x779A
+0x4F33 0x779F
+0x4F34 0x77A2
+0x4F35 0x77A7
+0x4F36 0x77AA
+0x4F37-0x4F38 0x77AE
+0x4F39 0x77B1
+0x4F3A 0x77B5
+0x4F3B 0x77BE
+0x4F3C 0x77C3
+0x4F3D 0x77C9
+0x4F3E-0x4F3F 0x77D1
+0x4F40 0x77D5
+0x4F41 0x77D9
+0x4F42-0x4F44 0x77DE
+0x4F45 0x77E4
+0x4F46 0x77E6
+0x4F47 0x77EA
+0x4F48 0x77EC
+0x4F49-0x4F4A 0x77F0
+0x4F4B 0x77F4
+0x4F4C 0x77F8
+0x4F4D 0x77FB
+0x4F4E-0x4F4F 0x7805
+0x4F50 0x7809
+0x4F51-0x4F52 0x780D
+0x4F53 0x7811
+0x4F54 0x781D
+0x4F55-0x4F57 0x7821
+0x4F58-0x4F59 0x782D
+0x4F5A 0x7830
+0x4F5B 0x7835
+0x4F5C 0x7837
+0x4F5D-0x4F5E 0x7843
+0x4F5F-0x4F60 0x7847
+0x4F61 0x784C
+0x4F62 0x784E
+0x4F63 0x7852
+0x4F64 0x785C
+0x4F65 0x785E
+0x4F66-0x4F67 0x7860
+0x4F68-0x4F69 0x7863
+0x4F6A 0x7868
+0x4F6B 0x786A
+0x4F6C 0x786E
+0x4F6D 0x787A
+0x4F6E 0x787E
+0x4F6F 0x788A
+0x4F70 0x788F
+0x4F71 0x7894
+0x4F72 0x7898
+0x4F73 0x78A1
+0x4F74-0x4F76 0x789D
+0x4F77 0x78A4
+0x4F78 0x78A8
+0x4F79-0x4F7A 0x78AC
+0x4F7B-0x4F7E 0x78B0
+0x5021 0x78BB
+0x5022 0x78BD
+0x5023 0x78BF
+0x5024-0x5026 0x78C7
+0x5027 0x78CC
+0x5028 0x78CE
+0x5029-0x502A 0x78D2
+0x502B-0x502C 0x78D5
+0x502D 0x78E4
+0x502E 0x78DB
+0x502F-0x5031 0x78DF
+0x5032 0x78E6
+0x5033 0x78EA
+0x5034-0x5035 0x78F2
+0x5036 0x7900
+0x5037-0x5038 0x78F6
+0x5039-0x503A 0x78FA
+0x503B 0x78FF
+0x503C 0x7906
+0x503D 0x790C
+0x503E 0x7910
+0x503F 0x791A
+0x5040 0x791C
+0x5041-0x5043 0x791E
+0x5044 0x7925
+0x5045 0x7927
+0x5046 0x7929
+0x5047 0x792D
+0x5048 0x7931
+0x5049-0x504A 0x7934
+0x504B 0x793B
+0x504C 0x793D
+0x504D 0x793F
+0x504E-0x5050 0x7944
+0x5051-0x5052 0x794A
+0x5053 0x794F
+0x5054 0x7951
+0x5055 0x7954
+0x5056 0x7958
+0x5057-0x5058 0x795B
+0x5059 0x7967
+0x505A 0x7969
+0x505B 0x796B
+0x505C 0x7972
+0x505D 0x7979
+0x505E-0x505F 0x797B
+0x5060 0x797E
+0x5061-0x5062 0x798B
+0x5063 0x7991
+0x5064-0x5067 0x7993
+0x5068 0x7998
+0x5069-0x506A 0x799B
+0x506B 0x79A1
+0x506C-0x506D 0x79A8
+0x506E 0x79AB
+0x506F 0x79AF
+0x5070 0x79B1
+0x5071 0x79B4
+0x5072 0x79B8
+0x5073 0x79BB
+0x5074 0x79C2
+0x5075 0x79C4
+0x5076-0x5077 0x79C7
+0x5078 0x79CA
+0x5079 0x79CF
+0x507A 0x79D4
+0x507B 0x79D6
+0x507C 0x79DA
+0x507D-0x507E 0x79DD
+0x5121 0x79E0
+0x5122 0x79E2
+0x5123 0x79E5
+0x5124-0x5125 0x79EA
+0x5126 0x79ED
+0x5127 0x79F1
+0x5128 0x79F8
+0x5129 0x79FC
+0x512A-0x512B 0x7A02
+0x512C 0x7A07
+0x512D-0x512E 0x7A09
+0x512F 0x7A0C
+0x5130 0x7A11
+0x5131 0x7A15
+0x5132 0x7A1B
+0x5133 0x7A1E
+0x5134 0x7A21
+0x5135 0x7A27
+0x5136 0x7A2B
+0x5137 0x7A2D
+0x5138-0x5139 0x7A2F
+0x513A-0x513B 0x7A34
+0x513C-0x513E 0x7A38
+0x513F-0x5140 0x7A44
+0x5141-0x5142 0x7A47
+0x5143 0x7A4C
+0x5144-0x5145 0x7A55
+0x5146 0x7A59
+0x5147-0x5148 0x7A5C
+0x5149-0x514A 0x7A5F
+0x514B 0x7A65
+0x514C 0x7A67
+0x514D 0x7A6A
+0x514E 0x7A6D
+0x514F 0x7A75
+0x5150 0x7A78
+0x5151 0x7A7E
+0x5152 0x7A80
+0x5153 0x7A82
+0x5154-0x5155 0x7A85
+0x5156-0x5157 0x7A8A
+0x5158-0x5159 0x7A90
+0x515A 0x7A94
+0x515B 0x7A9E
+0x515C 0x7AA0
+0x515D 0x7AA3
+0x515E 0x7AAC
+0x515F 0x7AB3
+0x5160 0x7AB5
+0x5161 0x7AB9
+0x5162-0x5163 0x7ABB
+0x5164 0x7AC6
+0x5165 0x7AC9
+0x5166 0x7ACC
+0x5167 0x7ACE
+0x5168 0x7AD1
+0x5169 0x7ADB
+0x516A-0x516B 0x7AE8
+0x516C-0x516D 0x7AEB
+0x516E 0x7AF1
+0x516F 0x7AF4
+0x5170 0x7AFB
+0x5171-0x5172 0x7AFD
+0x5173 0x7B07
+0x5174 0x7B14
+0x5175 0x7B1F
+0x5176 0x7B23
+0x5177 0x7B27
+0x5178-0x517A 0x7B29
+0x517B-0x517E 0x7B2D
+0x5221 0x7B31
+0x5222 0x7B34
+0x5223 0x7B3D
+0x5224-0x5226 0x7B3F
+0x5227 0x7B47
+0x5228 0x7B4E
+0x5229 0x7B55
+0x522A 0x7B60
+0x522B 0x7B64
+0x522C 0x7B66
+0x522D-0x522E 0x7B69
+0x522F 0x7B6D
+0x5230 0x7B6F
+0x5231-0x5232 0x7B72
+0x5233 0x7B77
+0x5234 0x7B84
+0x5235 0x7B89
+0x5236 0x7B8E
+0x5237-0x5238 0x7B90
+0x5239 0x7B96
+0x523A 0x7B9B
+0x523B 0x7B9E
+0x523C 0x7BA0
+0x523D 0x7BA5
+0x523E 0x7BAC
+0x523F-0x5240 0x7BAF
+0x5241 0x7BB2
+0x5242-0x5243 0x7BB5
+0x5244-0x5247 0x7BBA
+0x5248 0x7BC2
+0x5249 0x7BC5
+0x524A 0x7BC8
+0x524B 0x7BCA
+0x524C 0x7BD4
+0x524D-0x524E 0x7BD6
+0x524F-0x5251 0x7BD9
+0x5252 0x7BE8
+0x5253 0x7BEA
+0x5254 0x7BF2
+0x5255-0x5256 0x7BF4
+0x5257-0x5259 0x7BF8
+0x525A 0x7BFC
+0x525B 0x7BFE
+0x525C-0x525F 0x7C01
+0x5260 0x7C06
+0x5261 0x7C09
+0x5262-0x5263 0x7C0B
+0x5264-0x5265 0x7C0E
+0x5266 0x7C19
+0x5267 0x7C1B
+0x5268 0x7C20
+0x5269-0x526A 0x7C25
+0x526B 0x7C28
+0x526C 0x7C2C
+0x526D 0x7C31
+0x526E-0x526F 0x7C33
+0x5270 0x7C36
+0x5271-0x5272 0x7C39
+0x5273 0x7C46
+0x5274 0x7C4A
+0x5275 0x7C55
+0x5276-0x5278 0x7C51
+0x5279-0x527E 0x7C59
+0x5321 0x7C61
+0x5322 0x7C63
+0x5323 0x7C67
+0x5324 0x7C69
+0x5325-0x5326 0x7C6D
+0x5327 0x7C70
+0x5328 0x7C72
+0x5329 0x7C79
+0x532A-0x532B 0x7C7C
+0x532C-0x532D 0x7C86
+0x532E 0x7C8F
+0x532F 0x7C94
+0x5330 0x7C9E
+0x5331 0x7CA0
+0x5332 0x7CA6
+0x5333 0x7CB0
+0x5334-0x5335 0x7CB6
+0x5336-0x5338 0x7CBA
+0x5339 0x7CBF
+0x533A 0x7CC4
+0x533B-0x533D 0x7CC7
+0x533E 0x7CCD
+0x533F 0x7CCF
+0x5340-0x5342 0x7CD3
+0x5343 0x7CD7
+0x5344-0x5345 0x7CD9
+0x5346 0x7CDD
+0x5347 0x7CE6
+0x5348 0x7CE9
+0x5349 0x7CEB
+0x534A 0x7CF5
+0x534B 0x7D03
+0x534C-0x534E 0x7D07
+0x534F 0x7D0F
+0x5350-0x5352 0x7D11
+0x5353 0x7D16
+0x5354-0x5355 0x7D1D
+0x5356 0x7D23
+0x5357 0x7D26
+0x5358 0x7D2A
+0x5359 0x7D2D
+0x535A 0x7D31
+0x535B-0x535D 0x7D3C
+0x535E-0x535F 0x7D40
+0x5360-0x5361 0x7D47
+0x5362 0x7D4D
+0x5363 0x7D51
+0x5364 0x7D53
+0x5365 0x7D57
+0x5366-0x5367 0x7D59
+0x5368-0x5369 0x7D5C
+0x536A 0x7D65
+0x536B 0x7D67
+0x536C 0x7D6A
+0x536D 0x7D70
+0x536E 0x7D78
+0x536F-0x5370 0x7D7A
+0x5371 0x7D7F
+0x5372-0x5374 0x7D81
+0x5375-0x5376 0x7D85
+0x5377 0x7D88
+0x5378-0x537A 0x7D8B
+0x537B 0x7D91
+0x537C-0x537D 0x7D96
+0x537E 0x7D9D
+0x5421 0x7D9E
+0x5422-0x5423 0x7DA6
+0x5424 0x7DAA
+0x5425 0x7DB3
+0x5426-0x5427 0x7DB6
+0x5428 0x7DB9
+0x5429-0x542D 0x7DC2
+0x542E-0x5430 0x7DCC
+0x5431 0x7DD7
+0x5432 0x7DD9
+0x5433 0x7E00
+0x5434 0x7DE2
+0x5435-0x5436 0x7DE5
+0x5437-0x5438 0x7DEA
+0x5439 0x7DED
+0x543A 0x7DF1
+0x543B-0x543C 0x7DF5
+0x543D-0x543E 0x7DF9
+0x543F 0x7E08
+0x5440-0x5441 0x7E10
+0x5442 0x7E15
+0x5443 0x7E17
+0x5444-0x5445 0x7E1C
+0x5446 0x7E20
+0x5447-0x5448 0x7E27
+0x5449-0x544A 0x7E2C
+0x544B 0x7E2F
+0x544C 0x7E33
+0x544D 0x7E36
+0x544E 0x7E3F
+0x544F-0x5450 0x7E44
+0x5451 0x7E47
+0x5452 0x7E4E
+0x5453 0x7E50
+0x5454 0x7E52
+0x5455 0x7E58
+0x5456 0x7E5F
+0x5457-0x5458 0x7E61
+0x5459 0x7E65
+0x545A 0x7E6B
+0x545B-0x545C 0x7E6E
+0x545D 0x7E73
+0x545E 0x7E78
+0x545F 0x7E7E
+0x5460 0x7E81
+0x5461-0x5462 0x7E86
+0x5463 0x7E8A
+0x5464 0x7E8D
+0x5465 0x7E91
+0x5466 0x7E95
+0x5467 0x7E98
+0x5468 0x7E9A
+0x5469-0x546A 0x7E9D
+0x546B 0x7F3C
+0x546C 0x7F3B
+0x546D-0x546F 0x7F3D
+0x5470-0x5471 0x7F43
+0x5472 0x7F47
+0x5473 0x7F4F
+0x5474-0x5475 0x7F52
+0x5476-0x5478 0x7F5B
+0x5479 0x7F61
+0x547A-0x547D 0x7F63
+0x547E 0x7F6D
+0x5521 0x7F71
+0x5522-0x5525 0x7F7D
+0x5526 0x7F8B
+0x5527 0x7F8D
+0x5528-0x552A 0x7F8F
+0x552B-0x552C 0x7F96
+0x552D 0x7F9C
+0x552E-0x552F 0x7FA1
+0x5530 0x7FA6
+0x5531 0x7FAA
+0x5532 0x7FAD
+0x5533 0x7FB4
+0x5534 0x7FBC
+0x5535-0x5536 0x7FBF
+0x5537 0x7FC3
+0x5538 0x7FC8
+0x5539-0x553A 0x7FCE
+0x553B 0x7FDB
+0x553C 0x7FDF
+0x553D 0x7FE3
+0x553E 0x7FE5
+0x553F 0x7FE8
+0x5540 0x7FEC
+0x5541-0x5542 0x7FEE
+0x5543 0x7FF2
+0x5544 0x7FFA
+0x5545-0x5547 0x7FFD
+0x5548-0x5549 0x8007
+0x554A 0x800A
+0x554B-0x554D 0x800D
+0x554E 0x8011
+0x554F-0x5550 0x8013
+0x5551 0x8016
+0x5552-0x5555 0x801D
+0x5556 0x8024
+0x5557 0x8026
+0x5558 0x802C
+0x5559 0x802E
+0x555A 0x8030
+0x555B-0x555C 0x8034
+0x555D 0x8037
+0x555E-0x555F 0x8039
+0x5560 0x803C
+0x5561 0x803E
+0x5562 0x8040
+0x5563 0x8044
+0x5564 0x8060
+0x5565 0x8064
+0x5566 0x8066
+0x5567 0x806D
+0x5568 0x8071
+0x5569 0x8075
+0x556A 0x8081
+0x556B 0x8088
+0x556C 0x808E
+0x556D 0x809C
+0x556E 0x809E
+0x556F-0x5570 0x80A6
+0x5571 0x80AB
+0x5572-0x5573 0x80B8
+0x5574 0x80C8
+0x5575 0x80CD
+0x5576 0x80CF
+0x5577 0x80D2
+0x5578-0x5579 0x80D4
+0x557A-0x557B 0x80D7
+0x557C 0x80E0
+0x557D-0x557E 0x80ED
+0x5621 0x80F0
+0x5622-0x5623 0x80F2
+0x5624 0x80F6
+0x5625-0x5626 0x80F9
+0x5627 0x80FE
+0x5628 0x8103
+0x5629 0x810B
+0x562A-0x562C 0x8116
+0x562D 0x811C
+0x562E 0x811E
+0x562F 0x8120
+0x5630 0x8124
+0x5631 0x8127
+0x5632 0x812C
+0x5633 0x8130
+0x5634 0x8135
+0x5635 0x813A
+0x5636 0x813C
+0x5637 0x8145
+0x5638 0x8147
+0x5639 0x814A
+0x563A 0x814C
+0x563B 0x8152
+0x563C 0x8157
+0x563D-0x563E 0x8160
+0x563F-0x5641 0x8167
+0x5642 0x816D
+0x5643 0x816F
+0x5644 0x8177
+0x5645 0x8181
+0x5646 0x8190
+0x5647-0x5649 0x8184
+0x564A 0x818B
+0x564B 0x818E
+0x564C 0x8196
+0x564D 0x8198
+0x564E 0x819B
+0x564F 0x819E
+0x5650 0x81A2
+0x5651 0x81AE
+0x5652 0x81B2
+0x5653 0x81B4
+0x5654 0x81BB
+0x5655 0x81CB
+0x5656 0x81C3
+0x5657 0x81C5
+0x5658 0x81CA
+0x5659-0x565A 0x81CE
+0x565B 0x81D5
+0x565C 0x81D7
+0x565D 0x81DB
+0x565E-0x565F 0x81DD
+0x5660 0x81E1
+0x5661 0x81E4
+0x5662-0x5663 0x81EB
+0x5664-0x5666 0x81F0
+0x5667-0x5668 0x81F5
+0x5669-0x566A 0x81F8
+0x566B 0x81FD
+0x566C-0x566D 0x81FF
+0x566E 0x8203
+0x566F 0x820F
+0x5670-0x5671 0x8213
+0x5672-0x5673 0x8219
+0x5674 0x821D
+0x5675-0x5676 0x8221
+0x5677 0x8228
+0x5678 0x8232
+0x5679 0x8234
+0x567A 0x823A
+0x567B-0x567E 0x8243
+0x5721 0x824B
+0x5722-0x5723 0x824E
+0x5724 0x8251
+0x5725 0x8256
+0x5726 0x825C
+0x5727 0x8260
+0x5728 0x8263
+0x5729 0x8267
+0x572A 0x826D
+0x572B 0x8274
+0x572C 0x827B
+0x572D 0x827D
+0x572E-0x5730 0x827F
+0x5731-0x5732 0x8283
+0x5733 0x8287
+0x5734-0x5735 0x8289
+0x5736 0x828E
+0x5737 0x8291
+0x5738 0x8294
+0x5739 0x8296
+0x573A 0x8298
+0x573B-0x573C 0x829A
+0x573D-0x573E 0x82A0
+0x573F-0x5740 0x82A3
+0x5741-0x5744 0x82A7
+0x5745 0x82AE
+0x5746 0x82B0
+0x5747 0x82B2
+0x5748 0x82B4
+0x5749 0x82B7
+0x574A 0x82BA
+0x574B 0x82BC
+0x574C-0x574D 0x82BE
+0x574E 0x82C6
+0x574F 0x82D0
+0x5750 0x82D5
+0x5751 0x82DA
+0x5752 0x82E0
+0x5753 0x82E2
+0x5754 0x82E4
+0x5755 0x82E8
+0x5756 0x82EA
+0x5757 0x82ED
+0x5758 0x82EF
+0x5759-0x575A 0x82F6
+0x575B-0x575C 0x82FD
+0x575D-0x575E 0x8300
+0x575F-0x5760 0x8307
+0x5761-0x5762 0x830A
+0x5763 0x8354
+0x5764 0x831B
+0x5765-0x5767 0x831D
+0x5768-0x5769 0x8321
+0x576A-0x576C 0x832C
+0x576D 0x8330
+0x576E 0x8333
+0x576F 0x8337
+0x5770 0x833A
+0x5771-0x5772 0x833C
+0x5773-0x5775 0x8342
+0x5776 0x8347
+0x5777-0x5778 0x834D
+0x5779 0x8351
+0x577A-0x577C 0x8355
+0x577D 0x8370
+0x577E 0x8378
+0x5821 0x837D
+0x5822-0x5823 0x837F
+0x5824 0x8382
+0x5825 0x8384
+0x5826 0x8386
+0x5827 0x838D
+0x5828 0x8392
+0x5829-0x582A 0x8394
+0x582B-0x582C 0x8398
+0x582D-0x582F 0x839B
+0x5830-0x5831 0x83A6
+0x5832 0x83A9
+0x5833 0x83AC
+0x5834-0x5836 0x83BE
+0x5837 0x83C7
+0x5838 0x83C9
+0x5839-0x583B 0x83CF
+0x583C 0x83D4
+0x583D 0x83DD
+0x583E 0x8353
+0x583F 0x83E8
+0x5840 0x83EA
+0x5841 0x83F6
+0x5842-0x5843 0x83F8
+0x5844 0x83FC
+0x5845 0x8401
+0x5846 0x8406
+0x5847 0x840A
+0x5848 0x840F
+0x5849 0x8411
+0x584A 0x8415
+0x584B 0x8419
+0x584C 0x83AD
+0x584D 0x842F
+0x584E 0x8439
+0x584F 0x8445
+0x5850-0x5851 0x8447
+0x5852 0x844A
+0x5853 0x844D
+0x5854 0x844F
+0x5855-0x5856 0x8451
+0x5857 0x8456
+0x5858-0x585A 0x8458
+0x585B 0x845C
+0x585C 0x8460
+0x585D-0x585E 0x8464
+0x585F 0x8467
+0x5860 0x846A
+0x5861 0x8470
+0x5862-0x5863 0x8473
+0x5864 0x8476
+0x5865 0x8478
+0x5866-0x5867 0x847C
+0x5868 0x8481
+0x5869 0x8485
+0x586A-0x586B 0x8492
+0x586C 0x8495
+0x586D 0x849E
+0x586E 0x84A6
+0x586F-0x5871 0x84A8
+0x5872 0x84AF
+0x5873 0x84B1
+0x5874 0x84B4
+0x5875 0x84BA
+0x5876-0x5877 0x84BD
+0x5878 0x84C0
+0x5879 0x84C2
+0x587A-0x587B 0x84C7
+0x587C 0x84CC
+0x587D 0x84CF
+0x587E 0x84D3
+0x5921 0x84DC
+0x5922 0x84E7
+0x5923 0x84EA
+0x5924-0x5927 0x84EF
+0x5928 0x84F7
+0x5929 0x8532
+0x592A-0x592B 0x84FA
+0x592C 0x84FD
+0x592D-0x592E 0x8502
+0x592F 0x8507
+0x5930 0x850C
+0x5931 0x850E
+0x5932 0x8510
+0x5933 0x851C
+0x5934 0x851E
+0x5935-0x5938 0x8522
+0x5939 0x8527
+0x593A-0x593B 0x852A
+0x593C 0x852F
+0x593D-0x593E 0x8533
+0x593F 0x8536
+0x5940 0x853F
+0x5941 0x8546
+0x5942-0x5946 0x854F
+0x5947 0x8556
+0x5948 0x8559
+0x5949-0x594F 0x855C
+0x5950 0x8564
+0x5951 0x856B
+0x5952 0x856F
+0x5953-0x5955 0x8579
+0x5956 0x857D
+0x5957 0x857F
+0x5958 0x8581
+0x5959-0x595A 0x8585
+0x595B 0x8589
+0x595C-0x595D 0x858B
+0x595E 0x858F
+0x595F 0x8593
+0x5960 0x8598
+0x5961 0x859D
+0x5962-0x5963 0x859F
+0x5964 0x85A2
+0x5965 0x85A5
+0x5966 0x85A7
+0x5967 0x85B4
+0x5968-0x596A 0x85B6
+0x596B-0x596E 0x85BC
+0x596F 0x85C2
+0x5970 0x85C7
+0x5971-0x5972 0x85CA
+0x5973 0x85CE
+0x5974 0x85AD
+0x5975 0x85D8
+0x5976 0x85DA
+0x5977-0x5978 0x85DF
+0x5979 0x85E6
+0x597A 0x85E8
+0x597B 0x85ED
+0x597C 0x85F3
+0x597D 0x85F6
+0x597E 0x85FC
+0x5A21-0x5A22 0x85FF
+0x5A23-0x5A24 0x8604
+0x5A25-0x5A26 0x860D
+0x5A27-0x5A29 0x8610
+0x5A2A-0x5A2B 0x8618
+0x5A2C 0x861B
+0x5A2D 0x861E
+0x5A2E 0x8621
+0x5A2F 0x8627
+0x5A30 0x8629
+0x5A31 0x8636
+0x5A32 0x8638
+0x5A33 0x863A
+0x5A34-0x5A35 0x863C
+0x5A36 0x8640
+0x5A37 0x8642
+0x5A38 0x8646
+0x5A39-0x5A3A 0x8652
+0x5A3B-0x5A3E 0x8656
+0x5A3F 0x865D
+0x5A40-0x5A44 0x8660
+0x5A45 0x8669
+0x5A46 0x866C
+0x5A47 0x866F
+0x5A48-0x5A4A 0x8675
+0x5A4B 0x867A
+0x5A4C 0x868D
+0x5A4D 0x8691
+0x5A4E 0x8696
+0x5A4F 0x8698
+0x5A50 0x869A
+0x5A51 0x869C
+0x5A52 0x86A1
+0x5A53-0x5A55 0x86A6
+0x5A56 0x86AD
+0x5A57 0x86B1
+0x5A58-0x5A5A 0x86B3
+0x5A5B-0x5A5D 0x86B7
+0x5A5E-0x5A60 0x86BF
+0x5A61 0x86C3
+0x5A62 0x86C5
+0x5A63-0x5A64 0x86D1
+0x5A65 0x86D5
+0x5A66 0x86D7
+0x5A67 0x86DA
+0x5A68 0x86DC
+0x5A69 0x86E0
+0x5A6A 0x86E3
+0x5A6B 0x86E5
+0x5A6C 0x86E7
+0x5A6D 0x8688
+0x5A6E 0x86FA
+0x5A6F-0x5A70 0x86FC
+0x5A71-0x5A72 0x8704
+0x5A73 0x8707
+0x5A74 0x870B
+0x5A75-0x5A77 0x870E
+0x5A78-0x5A79 0x8713
+0x5A7A 0x8719
+0x5A7B-0x5A7C 0x871E
+0x5A7D 0x8721
+0x5A7E 0x8723
+0x5B21 0x8728
+0x5B22-0x5B23 0x872E
+0x5B24-0x5B25 0x8731
+0x5B26-0x5B27 0x8739
+0x5B28-0x5B2A 0x873C
+0x5B2B 0x8740
+0x5B2C 0x8743
+0x5B2D 0x8745
+0x5B2E 0x874D
+0x5B2F 0x8758
+0x5B30 0x875D
+0x5B31 0x8761
+0x5B32-0x5B33 0x8764
+0x5B34 0x876F
+0x5B35-0x5B36 0x8771
+0x5B37 0x877B
+0x5B38-0x5B3E 0x8783
+0x5B3F-0x5B40 0x878B
+0x5B41 0x8790
+0x5B42 0x8793
+0x5B43 0x8795
+0x5B44-0x5B46 0x8797
+0x5B47 0x879E
+0x5B48 0x87A0
+0x5B49 0x87A3
+0x5B4A 0x87A7
+0x5B4B-0x5B4D 0x87AC
+0x5B4E 0x87B1
+0x5B4F 0x87B5
+0x5B50-0x5B51 0x87BE
+0x5B52 0x87C1
+0x5B53-0x5B55 0x87C8
+0x5B56 0x87CE
+0x5B57-0x5B58 0x87D5
+0x5B59-0x5B5A 0x87D9
+0x5B5B 0x87DC
+0x5B5C 0x87DF
+0x5B5D-0x5B5F 0x87E2
+0x5B60-0x5B61 0x87EA
+0x5B62 0x87ED
+0x5B63 0x87F1
+0x5B64 0x87F3
+0x5B65 0x87F8
+0x5B66 0x87FA
+0x5B67 0x87FF
+0x5B68 0x8801
+0x5B69 0x8803
+0x5B6A 0x8806
+0x5B6B-0x5B6D 0x8809
+0x5B6E 0x8810
+0x5B6F 0x8819
+0x5B70-0x5B72 0x8812
+0x5B73 0x8818
+0x5B74-0x5B76 0x881A
+0x5B77-0x5B78 0x881E
+0x5B79 0x8828
+0x5B7A-0x5B7B 0x882D
+0x5B7C 0x8830
+0x5B7D 0x8832
+0x5B7E 0x8835
+0x5C21 0x883A
+0x5C22 0x883C
+0x5C23 0x8841
+0x5C24 0x8843
+0x5C25 0x8845
+0x5C26-0x5C29 0x8848
+0x5C2A 0x884E
+0x5C2B 0x8851
+0x5C2C-0x5C2D 0x8855
+0x5C2E 0x8858
+0x5C2F 0x885A
+0x5C30 0x885C
+0x5C31-0x5C32 0x885F
+0x5C33 0x8864
+0x5C34 0x8869
+0x5C35 0x8871
+0x5C36 0x8879
+0x5C37 0x887B
+0x5C38 0x8880
+0x5C39 0x8898
+0x5C3A-0x5C3C 0x889A
+0x5C3D-0x5C3E 0x889F
+0x5C3F 0x88A8
+0x5C40 0x88AA
+0x5C41 0x88BA
+0x5C42-0x5C43 0x88BD
+0x5C44 0x88C0
+0x5C45-0x5C49 0x88CA
+0x5C4A-0x5C4C 0x88D1
+0x5C4D 0x88DB
+0x5C4E 0x88DE
+0x5C4F 0x88E7
+0x5C50-0x5C52 0x88EF
+0x5C53 0x88F5
+0x5C54 0x88F7
+0x5C55 0x8901
+0x5C56 0x8906
+0x5C57-0x5C59 0x890D
+0x5C5A-0x5C5B 0x8915
+0x5C5C-0x5C5E 0x8918
+0x5C5F 0x891C
+0x5C60 0x8920
+0x5C61-0x5C63 0x8926
+0x5C64-0x5C66 0x8930
+0x5C67 0x8935
+0x5C68-0x5C69 0x8939
+0x5C6A 0x893E
+0x5C6B 0x8940
+0x5C6C 0x8942
+0x5C6D-0x5C6E 0x8945
+0x5C6F 0x8949
+0x5C70 0x894F
+0x5C71 0x8952
+0x5C72 0x8957
+0x5C73-0x5C75 0x895A
+0x5C76-0x5C78 0x8961
+0x5C79 0x896B
+0x5C7A 0x896E
+0x5C7B 0x8970
+0x5C7C 0x8973
+0x5C7D 0x8975
+0x5C7E 0x897A
+0x5D21-0x5D23 0x897B
+0x5D24 0x8989
+0x5D25 0x898D
+0x5D26 0x8990
+0x5D27-0x5D28 0x8994
+0x5D29-0x5D2A 0x899B
+0x5D2B-0x5D2C 0x899F
+0x5D2D 0x89A5
+0x5D2E 0x89B0
+0x5D2F-0x5D32 0x89B4
+0x5D33 0x89BC
+0x5D34-0x5D38 0x89D4
+0x5D39 0x89E5
+0x5D3A 0x89E9
+0x5D3B 0x89EB
+0x5D3C 0x89ED
+0x5D3D 0x89F1
+0x5D3E 0x89F3
+0x5D3F 0x89F6
+0x5D40 0x89F9
+0x5D41 0x89FD
+0x5D42 0x89FF
+0x5D43-0x5D44 0x8A04
+0x5D45 0x8A07
+0x5D46 0x8A0F
+0x5D47-0x5D48 0x8A11
+0x5D49-0x5D4A 0x8A14
+0x5D4B 0x8A1E
+0x5D4C 0x8A20
+0x5D4D 0x8A22
+0x5D4E 0x8A24
+0x5D4F 0x8A26
+0x5D50-0x5D51 0x8A2B
+0x5D52 0x8A2F
+0x5D53 0x8A35
+0x5D54 0x8A37
+0x5D55-0x5D56 0x8A3D
+0x5D57 0x8A40
+0x5D58 0x8A43
+0x5D59 0x8A45
+0x5D5A 0x8A47
+0x5D5B 0x8A49
+0x5D5C-0x5D5D 0x8A4D
+0x5D5E 0x8A53
+0x5D5F-0x5D61 0x8A56
+0x5D62-0x5D63 0x8A5C
+0x5D64 0x8A61
+0x5D65 0x8A65
+0x5D66 0x8A67
+0x5D67-0x5D69 0x8A75
+0x5D6A-0x5D6C 0x8A79
+0x5D6D-0x5D6F 0x8A7E
+0x5D70 0x8A83
+0x5D71 0x8A86
+0x5D72 0x8A8B
+0x5D73-0x5D74 0x8A8F
+0x5D75 0x8A92
+0x5D76-0x5D77 0x8A96
+0x5D78 0x8A99
+0x5D79 0x8A9F
+0x5D7A 0x8AA7
+0x5D7B 0x8AA9
+0x5D7C-0x5D7D 0x8AAE
+0x5D7E 0x8AB3
+0x5E21-0x5E22 0x8AB6
+0x5E23 0x8ABB
+0x5E24 0x8ABE
+0x5E25 0x8AC3
+0x5E26 0x8AC6
+0x5E27-0x5E29 0x8AC8
+0x5E2A 0x8AD1
+0x5E2B-0x5E2D 0x8AD3
+0x5E2E 0x8AD7
+0x5E2F 0x8ADD
+0x5E30 0x8ADF
+0x5E31 0x8AEC
+0x5E32 0x8AF0
+0x5E33-0x5E35 0x8AF4
+0x5E36 0x8AFC
+0x5E37 0x8AFF
+0x5E38-0x5E39 0x8B05
+0x5E3A 0x8B0B
+0x5E3B 0x8B11
+0x5E3C 0x8B1C
+0x5E3D-0x5E3E 0x8B1E
+0x5E3F 0x8B0A
+0x5E40 0x8B2D
+0x5E41 0x8B30
+0x5E42 0x8B37
+0x5E43 0x8B3C
+0x5E44-0x5E48 0x8B42
+0x5E49 0x8B48
+0x5E4A-0x5E4C 0x8B52
+0x5E4D 0x8B59
+0x5E4E 0x8B4D
+0x5E4F 0x8B5E
+0x5E50 0x8B63
+0x5E51 0x8B6D
+0x5E52 0x8B76
+0x5E53-0x5E54 0x8B78
+0x5E55 0x8B7C
+0x5E56 0x8B7E
+0x5E57 0x8B81
+0x5E58-0x5E59 0x8B84
+0x5E5A 0x8B8B
+0x5E5B 0x8B8D
+0x5E5C 0x8B8F
+0x5E5D-0x5E5E 0x8B94
+0x5E5F 0x8B9C
+0x5E60-0x5E61 0x8B9E
+0x5E62-0x5E63 0x8C38
+0x5E64-0x5E65 0x8C3D
+0x5E66 0x8C45
+0x5E67 0x8C47
+0x5E68 0x8C49
+0x5E69 0x8C4B
+0x5E6A 0x8C4F
+0x5E6B 0x8C51
+0x5E6C-0x5E6D 0x8C53
+0x5E6E-0x5E6F 0x8C57
+0x5E70 0x8C5B
+0x5E71 0x8C5D
+0x5E72 0x8C59
+0x5E73-0x5E74 0x8C63
+0x5E75 0x8C66
+0x5E76-0x5E77 0x8C68
+0x5E78 0x8C6D
+0x5E79 0x8C73
+0x5E7A-0x5E7B 0x8C75
+0x5E7C 0x8C7B
+0x5E7D 0x8C7E
+0x5E7E 0x8C86
+0x5F21 0x8C87
+0x5F22 0x8C8B
+0x5F23 0x8C90
+0x5F24-0x5F25 0x8C92
+0x5F26 0x8C99
+0x5F27-0x5F28 0x8C9B
+0x5F29 0x8CA4
+0x5F2A-0x5F2B 0x8CB9
+0x5F2C-0x5F2D 0x8CC5
+0x5F2E 0x8CC9
+0x5F2F 0x8CCB
+0x5F30 0x8CCF
+0x5F31 0x8CD6
+0x5F32 0x8CD5
+0x5F33 0x8CD9
+0x5F34 0x8CDD
+0x5F35 0x8CE1
+0x5F36 0x8CE8
+0x5F37 0x8CEC
+0x5F38-0x5F39 0x8CEF
+0x5F3A 0x8CF2
+0x5F3B 0x8CF5
+0x5F3C-0x5F3D 0x8CF7
+0x5F3E-0x5F3F 0x8CFE
+0x5F40 0x8D01
+0x5F41 0x8D03
+0x5F42 0x8D09
+0x5F43 0x8D12
+0x5F44 0x8D17
+0x5F45 0x8D1B
+0x5F46 0x8D65
+0x5F47 0x8D69
+0x5F48 0x8D6C
+0x5F49 0x8D6E
+0x5F4A 0x8D7F
+0x5F4B 0x8D82
+0x5F4C 0x8D84
+0x5F4D 0x8D88
+0x5F4E 0x8D8D
+0x5F4F-0x5F50 0x8D90
+0x5F51 0x8D95
+0x5F52-0x5F54 0x8D9E
+0x5F55 0x8DA6
+0x5F56-0x5F57 0x8DAB
+0x5F58 0x8DAF
+0x5F59 0x8DB2
+0x5F5A 0x8DB5
+0x5F5B 0x8DB7
+0x5F5C 0x8DB9
+0x5F5D 0x8DBB
+0x5F5E 0x8DC0
+0x5F5F-0x5F62 0x8DC5
+0x5F63 0x8DCA
+0x5F64 0x8DCE
+0x5F65 0x8DD1
+0x5F66-0x5F67 0x8DD4
+0x5F68 0x8DD7
+0x5F69 0x8DD9
+0x5F6A-0x5F6B 0x8DE4
+0x5F6C 0x8DE7
+0x5F6D 0x8DEC
+0x5F6E 0x8DF0
+0x5F6F 0x8DBC
+0x5F70-0x5F71 0x8DF1
+0x5F72 0x8DF4
+0x5F73 0x8DFD
+0x5F74 0x8E01
+0x5F75-0x5F77 0x8E04
+0x5F78 0x8E0B
+0x5F79 0x8E11
+0x5F7A 0x8E14
+0x5F7B 0x8E16
+0x5F7C-0x5F7E 0x8E20
+0x6021 0x8E23
+0x6022-0x6023 0x8E26
+0x6024 0x8E31
+0x6025 0x8E33
+0x6026-0x6029 0x8E36
+0x602A 0x8E3D
+0x602B-0x602C 0x8E40
+0x602D 0x8E4B
+0x602E-0x6030 0x8E4D
+0x6031 0x8E54
+0x6032-0x6035 0x8E5B
+0x6036-0x6037 0x8E61
+0x6038 0x8E69
+0x6039-0x603A 0x8E6C
+0x603B-0x603D 0x8E6F
+0x603E-0x6040 0x8E79
+0x6041-0x6042 0x8E82
+0x6043 0x8E89
+0x6044 0x8E90
+0x6045 0x8E92
+0x6046 0x8E95
+0x6047-0x6048 0x8E9A
+0x6049-0x604A 0x8E9D
+0x604B 0x8EA2
+0x604C 0x8EA7
+0x604D 0x8EA9
+0x604E-0x604F 0x8EAD
+0x6050 0x8EB3
+0x6051 0x8EB5
+0x6052-0x6053 0x8EBA
+0x6054-0x6055 0x8EC0
+0x6056-0x6057 0x8EC3
+0x6058 0x8EC7
+0x6059 0x8ECF
+0x605A 0x8ED1
+0x605B 0x8ED4
+0x605C 0x8EDC
+0x605D 0x8EE8
+0x605E 0x8EEE
+0x605F-0x6060 0x8EF0
+0x6061 0x8EF7
+0x6062-0x6063 0x8EF9
+0x6064 0x8EED
+0x6065 0x8F00
+0x6066 0x8F02
+0x6067-0x6068 0x8F07
+0x6069-0x606A 0x8F0F
+0x606B-0x606D 0x8F16
+0x606E 0x8F1E
+0x606F-0x6070 0x8F20
+0x6071 0x8F23
+0x6072 0x8F25
+0x6073-0x6074 0x8F27
+0x6075-0x6077 0x8F2C
+0x6078-0x607B 0x8F34
+0x607C 0x8F3A
+0x607D-0x607E 0x8F40
+0x6121 0x8F43
+0x6122 0x8F47
+0x6123 0x8F4F
+0x6124-0x6128 0x8F51
+0x6129 0x8F58
+0x612A-0x612B 0x8F5D
+0x612C 0x8F65
+0x612D 0x8F9D
+0x612E-0x612F 0x8FA0
+0x6130-0x6132 0x8FA4
+0x6133-0x6134 0x8FB5
+0x6135 0x8FB8
+0x6136 0x8FBE
+0x6137-0x6138 0x8FC0
+0x6139 0x8FC6
+0x613A-0x613B 0x8FCA
+0x613C 0x8FCD
+0x613D 0x8FD0
+0x613E-0x613F 0x8FD2
+0x6140 0x8FD5
+0x6141 0x8FE0
+0x6142-0x6143 0x8FE3
+0x6144 0x8FE8
+0x6145 0x8FEE
+0x6146 0x8FF1
+0x6147-0x6148 0x8FF5
+0x6149 0x8FFB
+0x614A 0x8FFE
+0x614B 0x9002
+0x614C 0x9004
+0x614D 0x9008
+0x614E 0x900C
+0x614F 0x9018
+0x6150 0x901B
+0x6151-0x6152 0x9028
+0x6153 0x902F
+0x6154 0x902A
+0x6155-0x6156 0x902C
+0x6157-0x6158 0x9033
+0x6159 0x9037
+0x615A 0x903F
+0x615B-0x615C 0x9043
+0x615D 0x904C
+0x615E 0x905B
+0x615F 0x905D
+0x6160 0x9062
+0x6161-0x6162 0x9066
+0x6163 0x906C
+0x6164 0x9070
+0x6165 0x9074
+0x6166 0x9079
+0x6167 0x9085
+0x6168 0x9088
+0x6169-0x616A 0x908B
+0x616B 0x908E
+0x616C 0x9090
+0x616D 0x9095
+0x616E-0x6170 0x9097
+0x6171 0x909B
+0x6172-0x6174 0x90A0
+0x6175 0x90A5
+0x6176 0x90B0
+0x6177-0x6179 0x90B2
+0x617A 0x90B6
+0x617B 0x90BD
+0x617C 0x90CC
+0x617D 0x90BE
+0x617E 0x90C3
+0x6221-0x6222 0x90C4
+0x6223-0x6224 0x90C7
+0x6225 0x90D5
+0x6226-0x6228 0x90D7
+0x6229-0x622A 0x90DC
+0x622B 0x90DF
+0x622C 0x90E5
+0x622D 0x90D2
+0x622E 0x90F6
+0x622F 0x90EB
+0x6230-0x6231 0x90EF
+0x6232 0x90F4
+0x6233-0x6235 0x90FE
+0x6236-0x6238 0x9104
+0x6239 0x9108
+0x623A 0x910D
+0x623B 0x9110
+0x623C 0x9114
+0x623D-0x623F 0x9116
+0x6240 0x911A
+0x6241 0x911C
+0x6242 0x911E
+0x6243 0x9120
+0x6244 0x9125
+0x6245-0x6246 0x9122
+0x6247 0x9127
+0x6248 0x9129
+0x6249-0x624A 0x912E
+0x624B 0x9131
+0x624C 0x9134
+0x624D-0x624E 0x9136
+0x624F-0x6250 0x9139
+0x6251-0x6252 0x913C
+0x6253 0x9143
+0x6254-0x6255 0x9147
+0x6256 0x914F
+0x6257 0x9153
+0x6258 0x9157
+0x6259-0x625B 0x9159
+0x625C 0x9161
+0x625D 0x9164
+0x625E 0x9167
+0x625F 0x916D
+0x6260 0x9174
+0x6261-0x6263 0x9179
+0x6264 0x9181
+0x6265 0x9183
+0x6266-0x6267 0x9185
+0x6268 0x918A
+0x6269 0x918E
+0x626A 0x9191
+0x626B-0x626D 0x9193
+0x626E 0x9198
+0x626F 0x919E
+0x6270 0x91A1
+0x6271 0x91A6
+0x6272 0x91A8
+0x6273-0x6275 0x91AC
+0x6276-0x6279 0x91B0
+0x627A 0x91B6
+0x627B-0x627D 0x91BB
+0x627E 0x91BF
+0x6321-0x6322 0x91C2
+0x6323 0x91C5
+0x6324-0x6325 0x91D3
+0x6326 0x91D7
+0x6327-0x6328 0x91D9
+0x6329 0x91DE
+0x632A-0x632B 0x91E4
+0x632C-0x632D 0x91E9
+0x632E-0x6333 0x91EC
+0x6334 0x91F7
+0x6335 0x91F9
+0x6336 0x91FB
+0x6337 0x91FD
+0x6338-0x6339 0x9200
+0x633A-0x633D 0x9204
+0x633E-0x633F 0x9209
+0x6340 0x920C
+0x6341 0x9210
+0x6342-0x6343 0x9212
+0x6344 0x9216
+0x6345 0x9218
+0x6346-0x6347 0x921C
+0x6348-0x634B 0x9223
+0x634C 0x9228
+0x634D-0x634F 0x922E
+0x6350 0x9233
+0x6351-0x6352 0x9235
+0x6353-0x6355 0x9238
+0x6356 0x923C
+0x6357 0x923E
+0x6358 0x9240
+0x6359-0x635A 0x9242
+0x635B-0x635C 0x9246
+0x635D 0x924A
+0x635E-0x6360 0x924D
+0x6361 0x9251
+0x6362-0x6363 0x9258
+0x6364-0x6365 0x925C
+0x6366-0x6367 0x9260
+0x6368 0x9265
+0x6369-0x636B 0x9267
+0x636C-0x636E 0x926E
+0x636F-0x6373 0x9275
+0x6374-0x6376 0x927B
+0x6377 0x927F
+0x6378-0x637A 0x9288
+0x637B-0x637C 0x928D
+0x637D 0x9292
+0x637E 0x9297
+0x6421 0x9299
+0x6422-0x6423 0x929F
+0x6424-0x6425 0x92A4
+0x6426-0x6427 0x92A7
+0x6428 0x92AB
+0x6429 0x92AF
+0x642A 0x92B2
+0x642B 0x92B6
+0x642C 0x92B8
+0x642D-0x6430 0x92BA
+0x6431-0x6435 0x92BF
+0x6436-0x6439 0x92C5
+0x643A-0x643D 0x92CB
+0x643E 0x92D0
+0x643F 0x92D3
+0x6440 0x92D5
+0x6441-0x6443 0x92D7
+0x6444-0x6445 0x92DC
+0x6446-0x6448 0x92DF
+0x6449 0x92E3
+0x644A 0x92E5
+0x644B-0x644C 0x92E7
+0x644D 0x92EC
+0x644E 0x92EE
+0x644F 0x92F0
+0x6450 0x92F9
+0x6451 0x92FB
+0x6452-0x6453 0x92FF
+0x6454 0x9302
+0x6455 0x9308
+0x6456 0x930D
+0x6457 0x9311
+0x6458-0x6459 0x9314
+0x645A-0x645D 0x931C
+0x645E 0x9321
+0x645F-0x6460 0x9324
+0x6461 0x9327
+0x6462-0x6463 0x9329
+0x6464-0x6465 0x9333
+0x6466-0x6467 0x9336
+0x6468-0x646A 0x9347
+0x646B-0x646D 0x9350
+0x646E 0x9355
+0x646F-0x6470 0x9357
+0x6471 0x935A
+0x6472 0x935E
+0x6473-0x6474 0x9364
+0x6475 0x9367
+0x6476-0x6477 0x9369
+0x6478 0x936D
+0x6479-0x647B 0x936F
+0x647C-0x647D 0x9373
+0x647E 0x9376
+0x6521 0x937A
+0x6522 0x937D
+0x6523-0x6526 0x937F
+0x6527 0x9388
+0x6528-0x6529 0x938A
+0x652A 0x938D
+0x652B 0x938F
+0x652C 0x9392
+0x652D 0x9395
+0x652E 0x9398
+0x652F 0x939B
+0x6530 0x939E
+0x6531 0x93A1
+0x6532-0x6533 0x93A3
+0x6534 0x93A6
+0x6535 0x93A8
+0x6536 0x93AB
+0x6537-0x6539 0x93B4
+0x653A 0x93BA
+0x653B 0x93A9
+0x653C 0x93C1
+0x653D-0x6540 0x93C4
+0x6541-0x6545 0x93C9
+0x6546 0x93D3
+0x6547 0x93D9
+0x6548 0x93DC
+0x6549-0x654A 0x93DE
+0x654B 0x93E2
+0x654C-0x654D 0x93E6
+0x654E 0x93F9
+0x654F-0x6550 0x93F7
+0x6551-0x6552 0x93FA
+0x6553 0x93FD
+0x6554-0x6555 0x9401
+0x6556 0x9404
+0x6557-0x6558 0x9408
+0x6559-0x655B 0x940D
+0x655C-0x655E 0x9415
+0x655F 0x941F
+0x6560-0x6561 0x942E
+0x6562-0x6565 0x9431
+0x6566 0x943B
+0x6567 0x943F
+0x6568 0x943D
+0x6569 0x9443
+0x656A 0x9445
+0x656B 0x9448
+0x656C 0x944A
+0x656D 0x944C
+0x656E 0x9455
+0x656F 0x9459
+0x6570 0x945C
+0x6571 0x945F
+0x6572 0x9461
+0x6573 0x9463
+0x6574 0x9468
+0x6575 0x946B
+0x6576-0x6578 0x946D
+0x6579-0x657A 0x9471
+0x657B 0x9484
+0x657C 0x9483
+0x657D-0x657E 0x9578
+0x6621 0x957E
+0x6622 0x9584
+0x6623 0x9588
+0x6624-0x6626 0x958C
+0x6627-0x6629 0x959D
+0x662A 0x95A1
+0x662B 0x95A6
+0x662C 0x95A9
+0x662D-0x662E 0x95AB
+0x662F 0x95B4
+0x6630 0x95B6
+0x6631 0x95BA
+0x6632 0x95BD
+0x6633 0x95BF
+0x6634 0x95C6
+0x6635-0x6636 0x95C8
+0x6637 0x95CB
+0x6638-0x663B 0x95D0
+0x663C-0x663D 0x95D9
+0x663E-0x6641 0x95DD
+0x6642 0x95E4
+0x6643 0x95E6
+0x6644-0x6645 0x961D
+0x6646 0x9622
+0x6647-0x6649 0x9624
+0x664A 0x962C
+0x664B 0x9631
+0x664C 0x9633
+0x664D-0x6650 0x9637
+0x6651-0x6652 0x963C
+0x6653 0x9641
+0x6654 0x9652
+0x6655 0x9654
+0x6656-0x6658 0x9656
+0x6659 0x9661
+0x665A 0x966E
+0x665B 0x9674
+0x665C-0x665D 0x967B
+0x665E-0x665F 0x967E
+0x6660-0x6663 0x9681
+0x6664 0x9689
+0x6665 0x9691
+0x6666 0x9696
+0x6667 0x969A
+0x6668 0x969D
+0x6669 0x969F
+0x666A-0x666C 0x96A4
+0x666D 0x96A9
+0x666E-0x666F 0x96AE
+0x6670 0x96B3
+0x6671 0x96BA
+0x6672 0x96CA
+0x6673 0x96D2
+0x6674 0x5DB2
+0x6675 0x96D8
+0x6676 0x96DA
+0x6677-0x6679 0x96DD
+0x667A 0x96E9
+0x667B 0x96EF
+0x667C 0x96F1
+0x667D 0x96FA
+0x667E 0x9702
+0x6721 0x9703
+0x6722 0x9705
+0x6723 0x9709
+0x6724-0x6725 0x971A
+0x6726 0x971D
+0x6727-0x6729 0x9721
+0x672A 0x9728
+0x672B 0x9731
+0x672C 0x9733
+0x672D 0x9741
+0x672E 0x9743
+0x672F 0x974A
+0x6730-0x6731 0x974E
+0x6732 0x9755
+0x6733-0x6734 0x9757
+0x6735-0x6736 0x975A
+0x6737 0x9763
+0x6738 0x9767
+0x6739 0x976A
+0x673A 0x976E
+0x673B 0x9773
+0x673C-0x673E 0x9776
+0x673F 0x977B
+0x6740 0x977D
+0x6741-0x6742 0x977F
+0x6743 0x9789
+0x6744-0x6746 0x9795
+0x6747-0x6748 0x9799
+0x6749-0x674A 0x979E
+0x674B 0x97A2
+0x674C 0x97AC
+0x674D 0x97AE
+0x674E-0x674F 0x97B1
+0x6750-0x6751 0x97B5
+0x6752-0x6754 0x97B8
+0x6755 0x97BC
+0x6756-0x6757 0x97BE
+0x6758 0x97C1
+0x6759-0x675A 0x97C4
+0x675B 0x97C7
+0x675C-0x675D 0x97C9
+0x675E-0x6760 0x97CC
+0x6761-0x6762 0x97D0
+0x6763 0x97D4
+0x6764-0x6766 0x97D7
+0x6767-0x6768 0x97DD
+0x6769 0x97E0
+0x676A 0x97DB
+0x676B 0x97E1
+0x676C 0x97E4
+0x676D 0x97EF
+0x676E 0x97F1
+0x676F 0x97F4
+0x6770-0x6771 0x97F7
+0x6772 0x97FA
+0x6773 0x9807
+0x6774 0x980A
+0x6775 0x9819
+0x6776-0x6777 0x980D
+0x6778 0x9814
+0x6779 0x9816
+0x677A 0x981C
+0x677B 0x981E
+0x677C 0x9820
+0x677D 0x9823
+0x677E 0x9826
+0x6821 0x982B
+0x6822-0x6824 0x982E
+0x6825-0x6826 0x9832
+0x6827 0x9835
+0x6828 0x9825
+0x6829 0x983E
+0x682A 0x9844
+0x682B 0x9847
+0x682C 0x984A
+0x682D-0x682F 0x9851
+0x6830-0x6831 0x9856
+0x6832-0x6833 0x9859
+0x6834-0x6835 0x9862
+0x6836-0x6837 0x9865
+0x6838 0x986A
+0x6839 0x986C
+0x683A 0x98AB
+0x683B-0x683C 0x98AD
+0x683D 0x98B0
+0x683E 0x98B4
+0x683F-0x6840 0x98B7
+0x6841-0x6842 0x98BA
+0x6843 0x98BF
+0x6844 0x98C2
+0x6845 0x98C5
+0x6846 0x98C8
+0x6847 0x98CC
+0x6848 0x98E1
+0x6849 0x98E3
+0x684A-0x684C 0x98E5
+0x684D 0x98EA
+0x684E 0x98F3
+0x684F 0x98F6
+0x6850 0x9902
+0x6851-0x6852 0x9907
+0x6853 0x9911
+0x6854-0x6856 0x9915
+0x6857-0x6859 0x991A
+0x685A 0x991F
+0x685B 0x9922
+0x685C-0x685D 0x9926
+0x685E 0x992B
+0x685F-0x6863 0x9931
+0x6864-0x6867 0x9939
+0x6868-0x6869 0x9940
+0x686A-0x686C 0x9946
+0x686D-0x686E 0x994D
+0x686F 0x9954
+0x6870-0x6871 0x9958
+0x6872-0x6873 0x995B
+0x6874-0x6876 0x995E
+0x6877 0x999B
+0x6878 0x999D
+0x6879 0x999F
+0x687A 0x99A6
+0x687B-0x687D 0x99B0
+0x687E 0x99B5
+0x6921-0x6922 0x99B9
+0x6923 0x99BD
+0x6924 0x99BF
+0x6925 0x99C3
+0x6926 0x99C9
+0x6927-0x6928 0x99D3
+0x6929-0x692A 0x99D9
+0x692B 0x99DC
+0x692C 0x99DE
+0x692D 0x99E7
+0x692E-0x6930 0x99EA
+0x6931 0x99F0
+0x6932-0x6933 0x99F4
+0x6934 0x99F9
+0x6935-0x6936 0x99FD
+0x6937-0x6939 0x9A02
+0x693A-0x693B 0x9A0B
+0x693C-0x693D 0x9A10
+0x693E 0x9A16
+0x693F 0x9A1E
+0x6940 0x9A20
+0x6941-0x6943 0x9A22
+0x6944 0x9A27
+0x6945-0x6946 0x9A2D
+0x6947 0x9A33
+0x6948-0x6949 0x9A35
+0x694A 0x9A38
+0x694B 0x9A47
+0x694C 0x9A41
+0x694D 0x9A44
+0x694E-0x6950 0x9A4A
+0x6951 0x9A4E
+0x6952 0x9A51
+0x6953 0x9A54
+0x6954 0x9A56
+0x6955 0x9A5D
+0x6956 0x9AAA
+0x6957 0x9AAC
+0x6958-0x6959 0x9AAE
+0x695A 0x9AB2
+0x695B-0x695D 0x9AB4
+0x695E 0x9AB9
+0x695F 0x9ABB
+0x6960-0x6961 0x9ABE
+0x6962 0x9AC1
+0x6963 0x9AC3
+0x6964 0x9AC6
+0x6965 0x9AC8
+0x6966 0x9ACE
+0x6967 0x9AD0
+0x6968 0x9AD2
+0x6969-0x696B 0x9AD5
+0x696C-0x696D 0x9ADB
+0x696E 0x9AE0
+0x696F-0x6970 0x9AE4
+0x6971 0x9AE7
+0x6972 0x9AE9
+0x6973 0x9AEC
+0x6974-0x6975 0x9AF2
+0x6976 0x9AF5
+0x6977-0x6978 0x9AF9
+0x6979 0x9AFD
+0x697A-0x697E 0x9AFF
+0x6A21-0x6A22 0x9B04
+0x6A23-0x6A24 0x9B08
+0x6A25-0x6A28 0x9B0B
+0x6A29 0x9B10
+0x6A2A 0x9B12
+0x6A2B 0x9B16
+0x6A2C 0x9B19
+0x6A2D-0x6A2E 0x9B1B
+0x6A2F 0x9B20
+0x6A30 0x9B26
+0x6A31 0x9B2B
+0x6A32 0x9B2D
+0x6A33-0x6A35 0x9B33
+0x6A36 0x9B37
+0x6A37-0x6A38 0x9B39
+0x6A39 0x9B3D
+0x6A3A 0x9B48
+0x6A3B-0x6A3C 0x9B4B
+0x6A3D-0x6A3F 0x9B55
+0x6A40 0x9B5B
+0x6A41 0x9B5E
+0x6A42 0x9B61
+0x6A43 0x9B63
+0x6A44-0x6A45 0x9B65
+0x6A46 0x9B68
+0x6A47-0x6A4B 0x9B6A
+0x6A4C 0x9B73
+0x6A4D 0x9B75
+0x6A4E-0x6A50 0x9B77
+0x6A51-0x6A52 0x9B7F
+0x6A53-0x6A56 0x9B84
+0x6A57-0x6A59 0x9B89
+0x6A5A 0x9B8D
+0x6A5B-0x6A5C 0x9B8F
+0x6A5D 0x9B94
+0x6A5E 0x9B9A
+0x6A5F-0x6A60 0x9B9D
+0x6A61-0x6A62 0x9BA6
+0x6A63 0x9BA9
+0x6A64 0x9BAC
+0x6A65-0x6A67 0x9BB0
+0x6A68-0x6A69 0x9BB7
+0x6A6A-0x6A6B 0x9BBB
+0x6A6C-0x6A6D 0x9BBE
+0x6A6E 0x9BC1
+0x6A6F-0x6A70 0x9BC7
+0x6A71 0x9BCE
+0x6A72 0x9BD0
+0x6A73-0x6A74 0x9BD7
+0x6A75 0x9BDD
+0x6A76 0x9BDF
+0x6A77 0x9BE5
+0x6A78 0x9BE7
+0x6A79-0x6A7A 0x9BEA
+0x6A7B 0x9BEF
+0x6A7C 0x9BF3
+0x6A7D-0x6A7E 0x9BF7
+0x6B21-0x6B22 0x9BF9
+0x6B23 0x9BFD
+0x6B24-0x6B25 0x9BFF
+0x6B26 0x9C02
+0x6B27 0x9C0B
+0x6B28 0x9C0F
+0x6B29 0x9C11
+0x6B2A 0x9C16
+0x6B2B-0x6B2D 0x9C18
+0x6B2E 0x9C1C
+0x6B2F 0x9C1E
+0x6B30-0x6B31 0x9C22
+0x6B32-0x6B36 0x9C26
+0x6B37 0x9C31
+0x6B38-0x6B3A 0x9C35
+0x6B3B 0x9C3D
+0x6B3C 0x9C41
+0x6B3D-0x6B3F 0x9C43
+0x6B40-0x6B41 0x9C49
+0x6B42-0x6B44 0x9C4E
+0x6B45-0x6B46 0x9C53
+0x6B47 0x9C56
+0x6B48 0x9C58
+0x6B49 0x9C5B
+0x6B4A-0x6B4C 0x9C5D
+0x6B4D 0x9C63
+0x6B4E-0x6B4F 0x9C69
+0x6B50 0x9C5C
+0x6B51 0x9C6B
+0x6B52 0x9C68
+0x6B53 0x9C6E
+0x6B54 0x9C70
+0x6B55 0x9C72
+0x6B56 0x9C75
+0x6B57 0x9C77
+0x6B58 0x9C7B
+0x6B59 0x9CE6
+0x6B5A 0x9CF2
+0x6B5B 0x9CF7
+0x6B5C 0x9CF9
+0x6B5D 0x9D0B
+0x6B5E 0x9D02
+0x6B5F 0x9D11
+0x6B60-0x6B61 0x9D17
+0x6B62-0x6B64 0x9D1C
+0x6B65-0x6B66 0x9D2F
+0x6B67-0x6B69 0x9D32
+0x6B6A 0x9D3A
+0x6B6B 0x9D3C
+0x6B6C 0x9D45
+0x6B6D 0x9D3D
+0x6B6E-0x6B6F 0x9D42
+0x6B70 0x9D47
+0x6B71 0x9D4A
+0x6B72-0x6B73 0x9D53
+0x6B74 0x9D5F
+0x6B75 0x9D63
+0x6B76 0x9D62
+0x6B77 0x9D65
+0x6B78-0x6B7A 0x9D69
+0x6B7B 0x9D70
+0x6B7C-0x6B7D 0x9D76
+0x6B7E 0x9D7B
+0x6C21 0x9D7C
+0x6C22 0x9D7E
+0x6C23-0x6C24 0x9D83
+0x6C25 0x9D86
+0x6C26 0x9D8A
+0x6C27-0x6C28 0x9D8D
+0x6C29-0x6C2A 0x9D92
+0x6C2B-0x6C2E 0x9D95
+0x6C2F 0x9DA1
+0x6C30 0x9DAA
+0x6C31 0x9DAC
+0x6C32 0x9DAE
+0x6C33 0x9DB1
+0x6C34 0x9DB5
+0x6C35 0x9DB9
+0x6C36 0x9DBC
+0x6C37 0x9DBF
+0x6C38 0x9DC3
+0x6C39 0x9DC7
+0x6C3A-0x6C3B 0x9DC9
+0x6C3C-0x6C3F 0x9DD4
+0x6C40 0x9DDA
+0x6C41-0x6C43 0x9DDE
+0x6C44 0x9DE5
+0x6C45 0x9DE7
+0x6C46 0x9DE9
+0x6C47 0x9DEB
+0x6C48 0x9DEE
+0x6C49 0x9DF0
+0x6C4A-0x6C4B 0x9DF3
+0x6C4C 0x9DFE
+0x6C4D 0x9E0A
+0x6C4E 0x9E02
+0x6C4F 0x9E07
+0x6C50 0x9E0E
+0x6C51-0x6C53 0x9E10
+0x6C54-0x6C55 0x9E15
+0x6C56 0x9E19
+0x6C57-0x6C58 0x9E1C
+0x6C59-0x6C5B 0x9E7A
+0x6C5C 0x9E80
+0x6C5D-0x6C60 0x9E82
+0x6C61 0x9E87
+0x6C62-0x6C63 0x9E8E
+0x6C64 0x9E96
+0x6C65 0x9E98
+0x6C66 0x9E9B
+0x6C67 0x9E9E
+0x6C68 0x9EA4
+0x6C69 0x9EA8
+0x6C6A 0x9EAC
+0x6C6B-0x6C6D 0x9EAE
+0x6C6E-0x6C70 0x9EB3
+0x6C71 0x9EC6
+0x6C72 0x9EC8
+0x6C73 0x9ECB
+0x6C74 0x9ED5
+0x6C75 0x9EDF
+0x6C76 0x9EE4
+0x6C77 0x9EE7
+0x6C78-0x6C7A 0x9EEC
+0x6C7B-0x6C7D 0x9EF0
+0x6C7E 0x9EF5
+0x6D21 0x9EF8
+0x6D22 0x9EFF
+0x6D23-0x6D24 0x9F02
+0x6D25 0x9F09
+0x6D26-0x6D29 0x9F0F
+0x6D2A 0x9F14
+0x6D2B-0x6D2C 0x9F16
+0x6D2D-0x6D2F 0x9F19
+0x6D30 0x9F1F
+0x6D31 0x9F22
+0x6D32 0x9F26
+0x6D33-0x6D34 0x9F2A
+0x6D35 0x9F2F
+0x6D36-0x6D37 0x9F31
+0x6D38 0x9F34
+0x6D39 0x9F37
+0x6D3A-0x6D3B 0x9F39
+0x6D3C-0x6D3D 0x9F3C
+0x6D3E 0x9F3F
+0x6D3F 0x9F41
+0x6D40-0x6D44 0x9F43
+0x6D45 0x9F53
+0x6D46-0x6D49 0x9F55
+0x6D4A 0x9F5A
+0x6D4B-0x6D4C 0x9F5D
+0x6D4D-0x6D4E 0x9F68
+0x6D4F-0x6D53 0x9F6D
+0x6D54 0x9F73
+0x6D55 0x9F75
+0x6D56 0x9F7A
+0x6D57 0x9F7D
+0x6D58-0x6D5B 0x9F8F
+0x6D5C 0x9F94
+0x6D5D-0x6D5E 0x9F96
+0x6D5F 0x9F9E
+0x6D60-0x6D62 0x9FA1
+0x6D63 0x9FA5
diff --git a/etc/charsets/JISX2131.map b/etc/charsets/JISX2131.map
new file mode 100644 (file)
index 0000000..ef1d7e0
--- /dev/null
@@ -0,0 +1,8763 @@
+# Generated from glibc-2.3.2/localedata/charmaps/EUC-JISX0213
+0x2121 0x3000
+0x2122 0x3001
+0x2123 0x3002
+0x2124 0xFF0C
+0x2125 0xFF0E
+0x2126 0x30FB
+0x2127 0xFF1A
+0x2128 0xFF1B
+0x2129 0xFF1F
+0x212a 0xFF01
+0x212b 0x309B
+0x212c 0x309C
+0x212d 0x00B4
+0x212e 0xFF40
+0x212f 0x00A8
+0x2130 0xFF3E
+0x2131 0xFFE3
+0x2132 0xFF3F
+0x2133 0x30FD
+0x2134 0x30FE
+0x2135 0x309D
+0x2136 0x309E
+0x2137 0x3003
+0x2138 0x4EDD
+0x2139 0x3005
+0x213a 0x3006
+0x213b 0x3007
+0x213c 0x30FC
+0x213d 0x2014
+0x213e 0x2010
+0x213f 0xFF0F
+0x2140 0xFF3C
+0x2141 0x301C
+0x2142 0x2016
+0x2143 0xFF5C
+0x2144 0x2026
+0x2145 0x2025
+0x2146 0x2018
+0x2147 0x2019
+0x2148 0x201C
+0x2149 0x201D
+0x214a 0xFF08
+0x214b 0xFF09
+0x214c 0x3014
+0x214d 0x3015
+0x214e 0xFF3B
+0x214f 0xFF3D
+0x2150 0xFF5B
+0x2151 0xFF5D
+0x2152 0x3008
+0x2153 0x3009
+0x2154 0x300A
+0x2155 0x300B
+0x2156 0x300C
+0x2157 0x300D
+0x2158 0x300E
+0x2159 0x300F
+0x215a 0x3010
+0x215b 0x3011
+0x215c 0xFF0B
+0x215d 0x2212
+0x215e 0x00B1
+0x215f 0x00D7
+0x2160 0x00F7
+0x2161 0xFF1D
+0x2162 0x2260
+0x2163 0xFF1C
+0x2164 0xFF1E
+0x2165 0x2266
+0x2166 0x2267
+0x2167 0x221E
+0x2168 0x2234
+0x2169 0x2642
+0x216a 0x2640
+0x216b 0x00B0
+0x216c 0x2032
+0x216d 0x2033
+0x216e 0x2103
+0x216f 0xFFE5
+0x2170 0xFF04
+0x2171 0x00A2
+0x2172 0x00A3
+0x2173 0xFF05
+0x2174 0xFF03
+0x2175 0xFF06
+0x2176 0xFF0A
+0x2177 0xFF20
+0x2178 0x00A7
+0x2179 0x2606
+0x217a 0x2605
+0x217b 0x25CB
+0x217c 0x25CF
+0x217d 0x25CE
+0x217e 0x25C7
+0x2221 0x25C6
+0x2222 0x25A1
+0x2223 0x25A0
+0x2224 0x25B3
+0x2225 0x25B2
+0x2226 0x25BD
+0x2227 0x25BC
+0x2228 0x203B
+0x2229 0x3012
+0x222a 0x2192
+0x222b 0x2190
+0x222c 0x2191
+0x222d 0x2193
+0x222e 0x3013
+0x222f 0xFF07
+0x2230 0xFF02
+0x2231 0xFF0D
+0x2232 0xFF5E
+0x2233 0x3033
+0x2234 0x3034
+0x2235 0x3035
+0x2236 0x303B
+0x2237 0x303C
+0x2238 0x30FF
+0x2239 0x309F
+0x223a 0x2208
+0x223b 0x220B
+0x223c 0x2286
+0x223d 0x2287
+0x223e 0x2282
+0x223f 0x2283
+0x2240 0x222A
+0x2241 0x2229
+0x2242 0x2284
+0x2243 0x2285
+0x2244 0x228A
+0x2245 0x228B
+0x2246 0x2209
+0x2247 0x2205
+0x2248 0x2305
+0x2249 0x2306
+0x224a 0x2227
+0x224b 0x2228
+0x224c 0x00AC
+0x224d 0x21D2
+0x224e 0x21D4
+0x224f 0x2200
+0x2250 0x2203
+0x2251 0x2295
+0x2252 0x2296
+0x2253 0x2297
+0x2254 0x2225
+0x2255 0x2226
+0x2256 0xFF5F
+0x2257 0xFF60
+0x2258 0x3018
+0x2259 0x3019
+0x225a 0x3016
+0x225b 0x3017
+0x225c 0x2220
+0x225d 0x22A5
+0x225e 0x2312
+0x225f 0x2202
+0x2260 0x2207
+0x2261 0x2261
+0x2262 0x2252
+0x2263 0x226A
+0x2264 0x226B
+0x2265 0x221A
+0x2266 0x223D
+0x2267 0x221D
+0x2268 0x2235
+0x2269 0x222B
+0x226a 0x222C
+0x226b 0x2262
+0x226c 0x2243
+0x226d 0x2245
+0x226e 0x2248
+0x226f 0x2276
+0x2270 0x2277
+0x2271 0x2194
+0x2272 0x212B
+0x2273 0x2030
+0x2274 0x266F
+0x2275 0x266D
+0x2276 0x266A
+0x2277 0x2020
+0x2278 0x2021
+0x2279 0x00B6
+0x227a 0x266E
+0x227b 0x266B
+0x227c 0x266C
+0x227d 0x2669
+0x227e 0x25EF
+0x2321 0x25B7
+0x2322 0x25B6
+0x2323 0x25C1
+0x2324 0x25C0
+0x2325 0x2197
+0x2326 0x2198
+0x2327 0x2196
+0x2328 0x2199
+0x2329 0x21C4
+0x232a 0x21E8
+0x232b 0x21E6
+0x232c 0x21E7
+0x232d 0x21E9
+0x232e 0x2934
+0x232f 0x2935
+0x2330 0xFF10
+0x2331 0xFF11
+0x2332 0xFF12
+0x2333 0xFF13
+0x2334 0xFF14
+0x2335 0xFF15
+0x2336 0xFF16
+0x2337 0xFF17
+0x2338 0xFF18
+0x2339 0xFF19
+0x233a 0x29BF
+0x233b 0x25C9
+0x233c 0x303D
+0x233d 0xFE46
+0x233e 0xFE45
+0x233f 0x25E6
+0x2340 0x2022
+0x2341 0xFF21
+0x2342 0xFF22
+0x2343 0xFF23
+0x2344 0xFF24
+0x2345 0xFF25
+0x2346 0xFF26
+0x2347 0xFF27
+0x2348 0xFF28
+0x2349 0xFF29
+0x234a 0xFF2A
+0x234b 0xFF2B
+0x234c 0xFF2C
+0x234d 0xFF2D
+0x234e 0xFF2E
+0x234f 0xFF2F
+0x2350 0xFF30
+0x2351 0xFF31
+0x2352 0xFF32
+0x2353 0xFF33
+0x2354 0xFF34
+0x2355 0xFF35
+0x2356 0xFF36
+0x2357 0xFF37
+0x2358 0xFF38
+0x2359 0xFF39
+0x235a 0xFF3A
+0x235b 0x2213
+0x235c 0x2135
+0x235d 0x210F
+0x235e 0x33CB
+0x235f 0x2113
+0x2360 0x2127
+0x2361 0xFF41
+0x2362 0xFF42
+0x2363 0xFF43
+0x2364 0xFF44
+0x2365 0xFF45
+0x2366 0xFF46
+0x2367 0xFF47
+0x2368 0xFF48
+0x2369 0xFF49
+0x236a 0xFF4A
+0x236b 0xFF4B
+0x236c 0xFF4C
+0x236d 0xFF4D
+0x236e 0xFF4E
+0x236f 0xFF4F
+0x2370 0xFF50
+0x2371 0xFF51
+0x2372 0xFF52
+0x2373 0xFF53
+0x2374 0xFF54
+0x2375 0xFF55
+0x2376 0xFF56
+0x2377 0xFF57
+0x2378 0xFF58
+0x2379 0xFF59
+0x237a 0xFF5A
+0x237b 0x30A0
+0x237c 0x2013
+0x237d 0x29FA
+0x237e 0x29FB
+0x2421 0x3041
+0x2422 0x3042
+0x2423 0x3043
+0x2424 0x3044
+0x2425 0x3045
+0x2426 0x3046
+0x2427 0x3047
+0x2428 0x3048
+0x2429 0x3049
+0x242a 0x304A
+0x242b 0x304B
+0x242c 0x304C
+0x242d 0x304D
+0x242e 0x304E
+0x242f 0x304F
+0x2430 0x3050
+0x2431 0x3051
+0x2432 0x3052
+0x2433 0x3053
+0x2434 0x3054
+0x2435 0x3055
+0x2436 0x3056
+0x2437 0x3057
+0x2438 0x3058
+0x2439 0x3059
+0x243a 0x305A
+0x243b 0x305B
+0x243c 0x305C
+0x243d 0x305D
+0x243e 0x305E
+0x243f 0x305F
+0x2440 0x3060
+0x2441 0x3061
+0x2442 0x3062
+0x2443 0x3063
+0x2444 0x3064
+0x2445 0x3065
+0x2446 0x3066
+0x2447 0x3067
+0x2448 0x3068
+0x2449 0x3069
+0x244a 0x306A
+0x244b 0x306B
+0x244c 0x306C
+0x244d 0x306D
+0x244e 0x306E
+0x244f 0x306F
+0x2450 0x3070
+0x2451 0x3071
+0x2452 0x3072
+0x2453 0x3073
+0x2454 0x3074
+0x2455 0x3075
+0x2456 0x3076
+0x2457 0x3077
+0x2458 0x3078
+0x2459 0x3079
+0x245a 0x307A
+0x245b 0x307B
+0x245c 0x307C
+0x245d 0x307D
+0x245e 0x307E
+0x245f 0x307F
+0x2460 0x3080
+0x2461 0x3081
+0x2462 0x3082
+0x2463 0x3083
+0x2464 0x3084
+0x2465 0x3085
+0x2466 0x3086
+0x2467 0x3087
+0x2468 0x3088
+0x2469 0x3089
+0x246a 0x308A
+0x246b 0x308B
+0x246c 0x308C
+0x246d 0x308D
+0x246e 0x308E
+0x246f 0x308F
+0x2470 0x3090
+0x2471 0x3091
+0x2472 0x3092
+0x2473 0x3093
+0x2474 0x3094
+0x2475 0x3095
+0x2476 0x3096
+0x2521 0x30A1
+0x2522 0x30A2
+0x2523 0x30A3
+0x2524 0x30A4
+0x2525 0x30A5
+0x2526 0x30A6
+0x2527 0x30A7
+0x2528 0x30A8
+0x2529 0x30A9
+0x252a 0x30AA
+0x252b 0x30AB
+0x252c 0x30AC
+0x252d 0x30AD
+0x252e 0x30AE
+0x252f 0x30AF
+0x2530 0x30B0
+0x2531 0x30B1
+0x2532 0x30B2
+0x2533 0x30B3
+0x2534 0x30B4
+0x2535 0x30B5
+0x2536 0x30B6
+0x2537 0x30B7
+0x2538 0x30B8
+0x2539 0x30B9
+0x253a 0x30BA
+0x253b 0x30BB
+0x253c 0x30BC
+0x253d 0x30BD
+0x253e 0x30BE
+0x253f 0x30BF
+0x2540 0x30C0
+0x2541 0x30C1
+0x2542 0x30C2
+0x2543 0x30C3
+0x2544 0x30C4
+0x2545 0x30C5
+0x2546 0x30C6
+0x2547 0x30C7
+0x2548 0x30C8
+0x2549 0x30C9
+0x254a 0x30CA
+0x254b 0x30CB
+0x254c 0x30CC
+0x254d 0x30CD
+0x254e 0x30CE
+0x254f 0x30CF
+0x2550 0x30D0
+0x2551 0x30D1
+0x2552 0x30D2
+0x2553 0x30D3
+0x2554 0x30D4
+0x2555 0x30D5
+0x2556 0x30D6
+0x2557 0x30D7
+0x2558 0x30D8
+0x2559 0x30D9
+0x255a 0x30DA
+0x255b 0x30DB
+0x255c 0x30DC
+0x255d 0x30DD
+0x255e 0x30DE
+0x255f 0x30DF
+0x2560 0x30E0
+0x2561 0x30E1
+0x2562 0x30E2
+0x2563 0x30E3
+0x2564 0x30E4
+0x2565 0x30E5
+0x2566 0x30E6
+0x2567 0x30E7
+0x2568 0x30E8
+0x2569 0x30E9
+0x256a 0x30EA
+0x256b 0x30EB
+0x256c 0x30EC
+0x256d 0x30ED
+0x256e 0x30EE
+0x256f 0x30EF
+0x2570 0x30F0
+0x2571 0x30F1
+0x2572 0x30F2
+0x2573 0x30F3
+0x2574 0x30F4
+0x2575 0x30F5
+0x2576 0x30F6
+0x2621 0x0391
+0x2622 0x0392
+0x2623 0x0393
+0x2624 0x0394
+0x2625 0x0395
+0x2626 0x0396
+0x2627 0x0397
+0x2628 0x0398
+0x2629 0x0399
+0x262a 0x039A
+0x262b 0x039B
+0x262c 0x039C
+0x262d 0x039D
+0x262e 0x039E
+0x262f 0x039F
+0x2630 0x03A0
+0x2631 0x03A1
+0x2632 0x03A3
+0x2633 0x03A4
+0x2634 0x03A5
+0x2635 0x03A6
+0x2636 0x03A7
+0x2637 0x03A8
+0x2638 0x03A9
+0x2639 0x2664
+0x263a 0x2660
+0x263b 0x2662
+0x263c 0x2666
+0x263d 0x2661
+0x263e 0x2665
+0x263f 0x2667
+0x2640 0x2663
+0x2641 0x03B1
+0x2642 0x03B2
+0x2643 0x03B3
+0x2644 0x03B4
+0x2645 0x03B5
+0x2646 0x03B6
+0x2647 0x03B7
+0x2648 0x03B8
+0x2649 0x03B9
+0x264a 0x03BA
+0x264b 0x03BB
+0x264c 0x03BC
+0x264d 0x03BD
+0x264e 0x03BE
+0x264f 0x03BF
+0x2650 0x03C0
+0x2651 0x03C1
+0x2652 0x03C3
+0x2653 0x03C4
+0x2654 0x03C5
+0x2655 0x03C6
+0x2656 0x03C7
+0x2657 0x03C8
+0x2658 0x03C9
+0x2659 0x03C2
+0x265a 0x24F5
+0x265b 0x24F6
+0x265c 0x24F7
+0x265d 0x24F8
+0x265e 0x24F9
+0x265f 0x24FA
+0x2660 0x24FB
+0x2661 0x24FC
+0x2662 0x24FD
+0x2663 0x24FE
+0x2664 0x2616
+0x2665 0x2617
+0x2666 0x3020
+0x2667 0x260E
+0x2668 0x2600
+0x2669 0x2601
+0x266a 0x2602
+0x266b 0x2603
+0x266c 0x2668
+0x266d 0x25B1
+0x266e 0x31F0
+0x266f 0x31F1
+0x2670 0x31F2
+0x2671 0x31F3
+0x2672 0x31F4
+0x2673 0x31F5
+0x2674 0x31F6
+0x2675 0x31F7
+0x2676 0x31F8
+0x2677 0x31F9
+0x2679 0x31FA
+0x267a 0x31FB
+0x267b 0x31FC
+0x267c 0x31FD
+0x267d 0x31FE
+0x267e 0x31FF
+0x2721 0x0410
+0x2722 0x0411
+0x2723 0x0412
+0x2724 0x0413
+0x2725 0x0414
+0x2726 0x0415
+0x2727 0x0401
+0x2728 0x0416
+0x2729 0x0417
+0x272a 0x0418
+0x272b 0x0419
+0x272c 0x041A
+0x272d 0x041B
+0x272e 0x041C
+0x272f 0x041D
+0x2730 0x041E
+0x2731 0x041F
+0x2732 0x0420
+0x2733 0x0421
+0x2734 0x0422
+0x2735 0x0423
+0x2736 0x0424
+0x2737 0x0425
+0x2738 0x0426
+0x2739 0x0427
+0x273a 0x0428
+0x273b 0x0429
+0x273c 0x042A
+0x273d 0x042B
+0x273e 0x042C
+0x273f 0x042D
+0x2740 0x042E
+0x2741 0x042F
+0x2742 0x23BE
+0x2743 0x23BF
+0x2744 0x23C0
+0x2745 0x23C1
+0x2746 0x23C2
+0x2747 0x23C3
+0x2748 0x23C4
+0x2749 0x23C5
+0x274a 0x23C6
+0x274b 0x23C7
+0x274c 0x23C8
+0x274d 0x23C9
+0x274e 0x23CA
+0x274f 0x23CB
+0x2750 0x23CC
+0x2751 0x0430
+0x2752 0x0431
+0x2753 0x0432
+0x2754 0x0433
+0x2755 0x0434
+0x2756 0x0435
+0x2757 0x0451
+0x2758 0x0436
+0x2759 0x0437
+0x275a 0x0438
+0x275b 0x0439
+0x275c 0x043A
+0x275d 0x043B
+0x275e 0x043C
+0x275f 0x043D
+0x2760 0x043E
+0x2761 0x043F
+0x2762 0x0440
+0x2763 0x0441
+0x2764 0x0442
+0x2765 0x0443
+0x2766 0x0444
+0x2767 0x0445
+0x2768 0x0446
+0x2769 0x0447
+0x276a 0x0448
+0x276b 0x0449
+0x276c 0x044A
+0x276d 0x044B
+0x276e 0x044C
+0x276f 0x044D
+0x2770 0x044E
+0x2771 0x044F
+0x2772 0x30F7
+0x2773 0x30F8
+0x2774 0x30F9
+0x2775 0x30FA
+0x2776 0x22DA
+0x2777 0x22DB
+0x2778 0x2153
+0x2779 0x2154
+0x277a 0x2155
+0x277b 0x2713
+0x277c 0x2318
+0x277d 0x2423
+0x277e 0x23CE
+0x2821 0x2500
+0x2822 0x2502
+0x2823 0x250C
+0x2824 0x2510
+0x2825 0x2518
+0x2826 0x2514
+0x2827 0x251C
+0x2828 0x252C
+0x2829 0x2524
+0x282a 0x2534
+0x282b 0x253C
+0x282c 0x2501
+0x282d 0x2503
+0x282e 0x250F
+0x282f 0x2513
+0x2830 0x251B
+0x2831 0x2517
+0x2832 0x2523
+0x2833 0x2533
+0x2834 0x252B
+0x2835 0x253B
+0x2836 0x254B
+0x2837 0x2520
+0x2838 0x252F
+0x2839 0x2528
+0x283a 0x2537
+0x283b 0x253F
+0x283c 0x251D
+0x283d 0x2530
+0x283e 0x2525
+0x283f 0x2538
+0x2840 0x2542
+0x2841 0x3251
+0x2842 0x3252
+0x2843 0x3253
+0x2844 0x3254
+0x2845 0x3255
+0x2846 0x3256
+0x2847 0x3257
+0x2848 0x3258
+0x2849 0x3259
+0x284a 0x325A
+0x284b 0x325B
+0x284c 0x325C
+0x284d 0x325D
+0x284e 0x325E
+0x284f 0x325F
+0x2850 0x32B1
+0x2851 0x32B2
+0x2852 0x32B3
+0x2853 0x32B4
+0x2854 0x32B5
+0x2855 0x32B6
+0x2856 0x32B7
+0x2857 0x32B8
+0x2858 0x32B9
+0x2859 0x32BA
+0x285a 0x32BB
+0x285b 0x32BC
+0x285c 0x32BD
+0x285d 0x32BE
+0x285e 0x32BF
+0x2867 0x25D0
+0x2868 0x25D1
+0x2869 0x25D2
+0x286a 0x25D3
+0x286b 0x203C
+0x286c 0x2047
+0x286d 0x2048
+0x286e 0x2049
+0x286f 0x01CD
+0x2870 0x01CE
+0x2871 0x01D0
+0x2872 0x1E3E
+0x2873 0x1E3F
+0x2874 0x01F8
+0x2875 0x01F9
+0x2876 0x01D1
+0x2877 0x01D2
+0x2878 0x01D4
+0x2879 0x01D6
+0x287a 0x01D8
+0x287b 0x01DA
+0x287c 0x01DC
+0x2921 0x20AC
+0x2922 0x00A0
+0x2923 0x00A1
+0x2924 0x00A4
+0x2925 0x00A6
+0x2926 0x00A9
+0x2927 0x00AA
+0x2928 0x00AB
+0x2929 0x00AD
+0x292a 0x00AE
+0x292b 0x00AF
+0x292c 0x00B2
+0x292d 0x00B3
+0x292e 0x00B7
+0x292f 0x00B8
+0x2930 0x00B9
+0x2931 0x00BA
+0x2932 0x00BB
+0x2933 0x00BC
+0x2934 0x00BD
+0x2935 0x00BE
+0x2936 0x00BF
+0x2937 0x00C0
+0x2938 0x00C1
+0x2939 0x00C2
+0x293a 0x00C3
+0x293b 0x00C4
+0x293c 0x00C5
+0x293d 0x00C6
+0x293e 0x00C7
+0x293f 0x00C8
+0x2940 0x00C9
+0x2941 0x00CA
+0x2942 0x00CB
+0x2943 0x00CC
+0x2944 0x00CD
+0x2945 0x00CE
+0x2946 0x00CF
+0x2947 0x00D0
+0x2948 0x00D1
+0x2949 0x00D2
+0x294a 0x00D3
+0x294b 0x00D4
+0x294c 0x00D5
+0x294d 0x00D6
+0x294e 0x00D8
+0x294f 0x00D9
+0x2950 0x00DA
+0x2951 0x00DB
+0x2952 0x00DC
+0x2953 0x00DD
+0x2954 0x00DE
+0x2955 0x00DF
+0x2956 0x00E0
+0x2957 0x00E1
+0x2958 0x00E2
+0x2959 0x00E3
+0x295a 0x00E4
+0x295b 0x00E5
+0x295c 0x00E6
+0x295d 0x00E7
+0x295e 0x00E8
+0x295f 0x00E9
+0x2960 0x00EA
+0x2961 0x00EB
+0x2962 0x00EC
+0x2963 0x00ED
+0x2964 0x00EE
+0x2965 0x00EF
+0x2966 0x00F0
+0x2967 0x00F1
+0x2968 0x00F2
+0x2969 0x00F3
+0x296a 0x00F4
+0x296b 0x00F5
+0x296c 0x00F6
+0x296d 0x00F8
+0x296e 0x00F9
+0x296f 0x00FA
+0x2970 0x00FB
+0x2971 0x00FC
+0x2972 0x00FD
+0x2973 0x00FE
+0x2974 0x00FF
+0x2975 0x0100
+0x2976 0x012A
+0x2977 0x016A
+0x2978 0x0112
+0x2979 0x014C
+0x297a 0x0101
+0x297b 0x012B
+0x297c 0x016B
+0x297d 0x0113
+0x297e 0x014D
+0x2a21 0x0104
+0x2a22 0x02D8
+0x2a23 0x0141
+0x2a24 0x013D
+0x2a25 0x015A
+0x2a26 0x0160
+0x2a27 0x015E
+0x2a28 0x0164
+0x2a29 0x0179
+0x2a2a 0x017D
+0x2a2b 0x017B
+0x2a2c 0x0105
+0x2a2d 0x02DB
+0x2a2e 0x0142
+0x2a2f 0x013E
+0x2a30 0x015B
+0x2a31 0x02C7
+0x2a32 0x0161
+0x2a33 0x015F
+0x2a34 0x0165
+0x2a35 0x017A
+0x2a36 0x02DD
+0x2a37 0x017E
+0x2a38 0x017C
+0x2a39 0x0154
+0x2a3a 0x0102
+0x2a3b 0x0139
+0x2a3c 0x0106
+0x2a3d 0x010C
+0x2a3e 0x0118
+0x2a3f 0x011A
+0x2a40 0x010E
+0x2a41 0x0143
+0x2a42 0x0147
+0x2a43 0x0150
+0x2a44 0x0158
+0x2a45 0x016E
+0x2a46 0x0170
+0x2a47 0x0162
+0x2a48 0x0155
+0x2a49 0x0103
+0x2a4a 0x013A
+0x2a4b 0x0107
+0x2a4c 0x010D
+0x2a4d 0x0119
+0x2a4e 0x011B
+0x2a4f 0x010F
+0x2a50 0x0111
+0x2a51 0x0144
+0x2a52 0x0148
+0x2a53 0x0151
+0x2a54 0x0159
+0x2a55 0x016F
+0x2a56 0x0171
+0x2a57 0x0163
+0x2a58 0x02D9
+0x2a59 0x0108
+0x2a5a 0x011C
+0x2a5b 0x0124
+0x2a5c 0x0134
+0x2a5d 0x015C
+0x2a5e 0x016C
+0x2a5f 0x0109
+0x2a60 0x011D
+0x2a61 0x0125
+0x2a62 0x0135
+0x2a63 0x015D
+0x2a64 0x016D
+0x2a65 0x0271
+0x2a66 0x028B
+0x2a67 0x027E
+0x2a68 0x0283
+0x2a69 0x0292
+0x2a6a 0x026C
+0x2a6b 0x026E
+0x2a6c 0x0279
+0x2a6d 0x0288
+0x2a6e 0x0256
+0x2a6f 0x0273
+0x2a70 0x027D
+0x2a71 0x0282
+0x2a72 0x0290
+0x2a73 0x027B
+0x2a74 0x026D
+0x2a75 0x025F
+0x2a76 0x0272
+0x2a77 0x029D
+0x2a78 0x028E
+0x2a79 0x0261
+0x2a7a 0x014B
+0x2a7b 0x0270
+0x2a7c 0x0281
+0x2a7d 0x0127
+0x2a7e 0x0295
+0x2b21 0x0294
+0x2b22 0x0266
+0x2b23 0x0298
+0x2b24 0x01C2
+0x2b25 0x0253
+0x2b26 0x0257
+0x2b27 0x0284
+0x2b28 0x0260
+0x2b29 0x0193
+0x2b2a 0x0153
+0x2b2b 0x0152
+0x2b2c 0x0268
+0x2b2d 0x0289
+0x2b2e 0x0258
+0x2b2f 0x0275
+0x2b30 0x0259
+0x2b31 0x025C
+0x2b32 0x025E
+0x2b33 0x0250
+0x2b34 0x026F
+0x2b35 0x028A
+0x2b36 0x0264
+0x2b37 0x028C
+0x2b38 0x0254
+0x2b39 0x0251
+0x2b3a 0x0252
+0x2b3b 0x028D
+0x2b3c 0x0265
+0x2b3d 0x02A2
+0x2b3e 0x02A1
+0x2b3f 0x0255
+0x2b40 0x0291
+0x2b41 0x027A
+0x2b42 0x0267
+0x2b43 0x025A
+0x2b45 0x01FD
+0x2b46 0x1F70
+0x2b47 0x1F71
+0x2b50 0x1F72
+0x2b51 0x1F73
+0x2b52 0x0361
+0x2b53 0x02C8
+0x2b54 0x02CC
+0x2b55 0x02D0
+0x2b56 0x02D1
+0x2b57 0x0306
+0x2b58 0x203F
+0x2b59 0x030B
+0x2b5a 0x0301
+0x2b5b 0x0304
+0x2b5c 0x0300
+0x2b5d 0x030F
+0x2b5e 0x030C
+0x2b5f 0x0302
+0x2b60 0x02E5
+0x2b61 0x02E6
+0x2b62 0x02E7
+0x2b63 0x02E8
+0x2b64 0x02E9
+0x2b67 0x0325
+0x2b68 0x032C
+0x2b69 0x0339
+0x2b6a 0x031C
+0x2b6b 0x031F
+0x2b6c 0x0320
+0x2b6d 0x0308
+0x2b6e 0x033D
+0x2b6f 0x0329
+0x2b70 0x032F
+0x2b71 0x02DE
+0x2b72 0x0324
+0x2b73 0x0330
+0x2b74 0x033C
+0x2b75 0x0334
+0x2b76 0x031D
+0x2b77 0x031E
+0x2b78 0x0318
+0x2b79 0x0319
+0x2b7a 0x032A
+0x2b7b 0x033A
+0x2b7c 0x033B
+0x2b7d 0x0303
+0x2b7e 0x031A
+0x2c21 0x2776
+0x2c22 0x2777
+0x2c23 0x2778
+0x2c24 0x2779
+0x2c25 0x277A
+0x2c26 0x277B
+0x2c27 0x277C
+0x2c28 0x277D
+0x2c29 0x277E
+0x2c2a 0x277F
+0x2c2b 0x24EB
+0x2c2c 0x24EC
+0x2c2d 0x24ED
+0x2c2e 0x24EE
+0x2c2f 0x24EF
+0x2c30 0x24F0
+0x2c31 0x24F1
+0x2c32 0x24F2
+0x2c33 0x24F3
+0x2c34 0x24F4
+0x2c35 0x2170
+0x2c36 0x2171
+0x2c37 0x2172
+0x2c38 0x2173
+0x2c39 0x2174
+0x2c3a 0x2175
+0x2c3b 0x2176
+0x2c3c 0x2177
+0x2c3d 0x2178
+0x2c3e 0x2179
+0x2c3f 0x217A
+0x2c40 0x217B
+0x2c41 0x24D0
+0x2c42 0x24D1
+0x2c43 0x24D2
+0x2c44 0x24D3
+0x2c45 0x24D4
+0x2c46 0x24D5
+0x2c47 0x24D6
+0x2c48 0x24D7
+0x2c49 0x24D8
+0x2c4a 0x24D9
+0x2c4b 0x24DA
+0x2c4c 0x24DB
+0x2c4d 0x24DC
+0x2c4e 0x24DD
+0x2c4f 0x24DE
+0x2c50 0x24DF
+0x2c51 0x24E0
+0x2c52 0x24E1
+0x2c53 0x24E2
+0x2c54 0x24E3
+0x2c55 0x24E4
+0x2c56 0x24E5
+0x2c57 0x24E6
+0x2c58 0x24E7
+0x2c59 0x24E8
+0x2c5a 0x24E9
+0x2c5b 0x32D0
+0x2c5c 0x32D1
+0x2c5d 0x32D2
+0x2c5e 0x32D3
+0x2c5f 0x32D4
+0x2c60 0x32D5
+0x2c61 0x32D6
+0x2c62 0x32D7
+0x2c63 0x32D8
+0x2c64 0x32D9
+0x2c65 0x32DA
+0x2c66 0x32DB
+0x2c67 0x32DC
+0x2c68 0x32DD
+0x2c69 0x32DE
+0x2c6a 0x32DF
+0x2c6b 0x32E0
+0x2c6c 0x32E1
+0x2c6d 0x32E2
+0x2c6e 0x32E3
+0x2c6f 0x32FA
+0x2c70 0x32E9
+0x2c71 0x32E5
+0x2c72 0x32ED
+0x2c73 0x32EC
+0x2c7d 0x2051
+0x2c7e 0x2042
+0x2d21 0x2460
+0x2d22 0x2461
+0x2d23 0x2462
+0x2d24 0x2463
+0x2d25 0x2464
+0x2d26 0x2465
+0x2d27 0x2466
+0x2d28 0x2467
+0x2d29 0x2468
+0x2d2a 0x2469
+0x2d2b 0x246A
+0x2d2c 0x246B
+0x2d2d 0x246C
+0x2d2e 0x246D
+0x2d2f 0x246E
+0x2d30 0x246F
+0x2d31 0x2470
+0x2d32 0x2471
+0x2d33 0x2472
+0x2d34 0x2473
+0x2d35 0x2160
+0x2d36 0x2161
+0x2d37 0x2162
+0x2d38 0x2163
+0x2d39 0x2164
+0x2d3a 0x2165
+0x2d3b 0x2166
+0x2d3c 0x2167
+0x2d3d 0x2168
+0x2d3e 0x2169
+0x2d3f 0x216A
+0x2d40 0x3349
+0x2d41 0x3314
+0x2d42 0x3322
+0x2d43 0x334D
+0x2d44 0x3318
+0x2d45 0x3327
+0x2d46 0x3303
+0x2d47 0x3336
+0x2d48 0x3351
+0x2d49 0x3357
+0x2d4a 0x330D
+0x2d4b 0x3326
+0x2d4c 0x3323
+0x2d4d 0x332B
+0x2d4e 0x334A
+0x2d4f 0x333B
+0x2d50 0x339C
+0x2d51 0x339D
+0x2d52 0x339E
+0x2d53 0x338E
+0x2d54 0x338F
+0x2d55 0x33C4
+0x2d56 0x33A1
+0x2d57 0x216B
+0x2d5f 0x337B
+0x2d60 0x301D
+0x2d61 0x301F
+0x2d62 0x2116
+0x2d63 0x33CD
+0x2d64 0x2121
+0x2d65 0x32A4
+0x2d66 0x32A5
+0x2d67 0x32A6
+0x2d68 0x32A7
+0x2d69 0x32A8
+0x2d6a 0x3231
+0x2d6b 0x3232
+0x2d6c 0x3239
+0x2d6d 0x337E
+0x2d6e 0x337D
+0x2d6f 0x337C
+0x2d73 0x222E
+0x2d78 0x221F
+0x2d79 0x22BF
+0x2d7d 0x2756
+0x2d7e 0x261E
+0x2e22 0x0002000B
+0x2e23 0x3402
+0x2e24 0x4E28
+0x2e25 0x4E2F
+0x2e26 0x4E30
+0x2e27 0x4E8D
+0x2e28 0x4EE1
+0x2e29 0x4EFD
+0x2e2a 0x4EFF
+0x2e2b 0x4F03
+0x2e2c 0x4F0B
+0x2e2d 0x4F60
+0x2e2e 0x4F48
+0x2e2f 0x4F49
+0x2e30 0x4F56
+0x2e31 0x4F5F
+0x2e32 0x4F6A
+0x2e33 0x4F6C
+0x2e34 0x4F7E
+0x2e35 0x4F8A
+0x2e36 0x4F94
+0x2e37 0x4F97
+0x2e38 0xFA30
+0x2e39 0x4FC9
+0x2e3a 0x4FE0
+0x2e3b 0x5001
+0x2e3c 0x5002
+0x2e3d 0x500E
+0x2e3e 0x5018
+0x2e3f 0x5027
+0x2e40 0x502E
+0x2e41 0x5040
+0x2e42 0x503B
+0x2e43 0x5041
+0x2e44 0x5094
+0x2e45 0x50CC
+0x2e46 0x50F2
+0x2e47 0x50D0
+0x2e48 0x50E6
+0x2e49 0xFA31
+0x2e4a 0x5106
+0x2e4b 0x5103
+0x2e4c 0x510B
+0x2e4d 0x511E
+0x2e4e 0x5135
+0x2e4f 0x514A
+0x2e50 0xFA32
+0x2e51 0x5155
+0x2e52 0x5157
+0x2e53 0x34B5
+0x2e54 0x519D
+0x2e55 0x51C3
+0x2e56 0x51CA
+0x2e57 0x51DE
+0x2e58 0x51E2
+0x2e59 0x51EE
+0x2e5a 0x5201
+0x2e5b 0x34DB
+0x2e5c 0x5213
+0x2e5d 0x5215
+0x2e5e 0x5249
+0x2e5f 0x5257
+0x2e60 0x5261
+0x2e61 0x5293
+0x2e62 0x52C8
+0x2e63 0xFA33
+0x2e64 0x52CC
+0x2e65 0x52D0
+0x2e66 0x52D6
+0x2e67 0x52DB
+0x2e68 0xFA34
+0x2e69 0x52F0
+0x2e6a 0x52FB
+0x2e6b 0x5300
+0x2e6c 0x5307
+0x2e6d 0x531C
+0x2e6e 0xFA35
+0x2e6f 0x5361
+0x2e70 0x5363
+0x2e71 0x537D
+0x2e72 0x5393
+0x2e73 0x539D
+0x2e74 0x53B2
+0x2e75 0x5412
+0x2e76 0x5427
+0x2e77 0x544D
+0x2e78 0x549C
+0x2e79 0x546B
+0x2e7a 0x5474
+0x2e7b 0x547F
+0x2e7c 0x5488
+0x2e7d 0x5496
+0x2e7e 0x54A1
+0x2f21 0x54A9
+0x2f22 0x54C6
+0x2f23 0x54FF
+0x2f24 0x550E
+0x2f25 0x552B
+0x2f26 0x5535
+0x2f27 0x5550
+0x2f28 0x555E
+0x2f29 0x5581
+0x2f2a 0x5586
+0x2f2b 0x558E
+0x2f2c 0xFA36
+0x2f2d 0x55AD
+0x2f2e 0x55CE
+0x2f2f 0xFA37
+0x2f30 0x5608
+0x2f31 0x560E
+0x2f32 0x563B
+0x2f33 0x5649
+0x2f34 0x5676
+0x2f35 0x5666
+0x2f36 0xFA38
+0x2f37 0x566F
+0x2f38 0x5671
+0x2f39 0x5672
+0x2f3a 0x5699
+0x2f3b 0x569E
+0x2f3c 0x56A9
+0x2f3d 0x56AC
+0x2f3e 0x56B3
+0x2f3f 0x56C9
+0x2f40 0x56CA
+0x2f41 0x570A
+0x2f42 0x0002123D
+0x2f43 0x5721
+0x2f44 0x572F
+0x2f45 0x5733
+0x2f46 0x5734
+0x2f47 0x5770
+0x2f48 0x5777
+0x2f49 0x577C
+0x2f4a 0x579C
+0x2f4b 0xFA0F
+0x2f4c 0x0002131B
+0x2f4d 0x57B8
+0x2f4e 0x57C7
+0x2f4f 0x57C8
+0x2f50 0x57CF
+0x2f51 0x57E4
+0x2f52 0x57ED
+0x2f53 0x57F5
+0x2f54 0x57F6
+0x2f55 0x57FF
+0x2f56 0x5809
+0x2f57 0xFA10
+0x2f58 0x5861
+0x2f59 0x5864
+0x2f5a 0xFA39
+0x2f5b 0x587C
+0x2f5c 0x5889
+0x2f5d 0x589E
+0x2f5e 0xFA3A
+0x2f5f 0x58A9
+0x2f60 0x0002146E
+0x2f61 0x58D2
+0x2f62 0x58CE
+0x2f63 0x58D4
+0x2f64 0x58DA
+0x2f65 0x58E0
+0x2f66 0x58E9
+0x2f67 0x590C
+0x2f68 0x8641
+0x2f69 0x595D
+0x2f6a 0x596D
+0x2f6b 0x598B
+0x2f6c 0x5992
+0x2f6d 0x59A4
+0x2f6e 0x59C3
+0x2f6f 0x59D2
+0x2f70 0x59DD
+0x2f71 0x5A13
+0x2f72 0x5A23
+0x2f73 0x5A67
+0x2f74 0x5A6D
+0x2f75 0x5A77
+0x2f76 0x5A7E
+0x2f77 0x5A84
+0x2f78 0x5A9E
+0x2f79 0x5AA7
+0x2f7a 0x5AC4
+0x2f7b 0x000218BD
+0x2f7c 0x5B19
+0x2f7d 0x5B25
+0x3021 0x4E9C
+0x3022 0x5516
+0x3023 0x5A03
+0x3024 0x963F
+0x3025 0x54C0
+0x3026 0x611B
+0x3027 0x6328
+0x3028 0x59F6
+0x3029 0x9022
+0x302a 0x8475
+0x302b 0x831C
+0x302c 0x7A50
+0x302d 0x60AA
+0x302e 0x63E1
+0x302f 0x6E25
+0x3030 0x65ED
+0x3031 0x8466
+0x3032 0x82A6
+0x3033 0x9BF5
+0x3034 0x6893
+0x3035 0x5727
+0x3036 0x65A1
+0x3037 0x6271
+0x3038 0x5B9B
+0x3039 0x59D0
+0x303a 0x867B
+0x303b 0x98F4
+0x303c 0x7D62
+0x303d 0x7DBE
+0x303e 0x9B8E
+0x303f 0x6216
+0x3040 0x7C9F
+0x3041 0x88B7
+0x3042 0x5B89
+0x3043 0x5EB5
+0x3044 0x6309
+0x3045 0x6697
+0x3046 0x6848
+0x3047 0x95C7
+0x3048 0x978D
+0x3049 0x674F
+0x304a 0x4EE5
+0x304b 0x4F0A
+0x304c 0x4F4D
+0x304d 0x4F9D
+0x304e 0x5049
+0x304f 0x56F2
+0x3050 0x5937
+0x3051 0x59D4
+0x3052 0x5A01
+0x3053 0x5C09
+0x3054 0x60DF
+0x3055 0x610F
+0x3056 0x6170
+0x3057 0x6613
+0x3058 0x6905
+0x3059 0x70BA
+0x305a 0x754F
+0x305b 0x7570
+0x305c 0x79FB
+0x305d 0x7DAD
+0x305e 0x7DEF
+0x305f 0x80C3
+0x3060 0x840E
+0x3061 0x8863
+0x3062 0x8B02
+0x3063 0x9055
+0x3064 0x907A
+0x3065 0x533B
+0x3066 0x4E95
+0x3067 0x4EA5
+0x3068 0x57DF
+0x3069 0x80B2
+0x306a 0x90C1
+0x306b 0x78EF
+0x306c 0x4E00
+0x306d 0x58F1
+0x306e 0x6EA2
+0x306f 0x9038
+0x3070 0x7A32
+0x3071 0x8328
+0x3072 0x828B
+0x3073 0x9C2F
+0x3074 0x5141
+0x3075 0x5370
+0x3076 0x54BD
+0x3077 0x54E1
+0x3078 0x56E0
+0x3079 0x59FB
+0x307a 0x5F15
+0x307b 0x98F2
+0x307c 0x6DEB
+0x307d 0x80E4
+0x307e 0x852D
+0x3121 0x9662
+0x3122 0x9670
+0x3123 0x96A0
+0x3124 0x97FB
+0x3125 0x540B
+0x3126 0x53F3
+0x3127 0x5B87
+0x3128 0x70CF
+0x3129 0x7FBD
+0x312a 0x8FC2
+0x312b 0x96E8
+0x312c 0x536F
+0x312d 0x9D5C
+0x312e 0x7ABA
+0x312f 0x4E11
+0x3130 0x7893
+0x3131 0x81FC
+0x3132 0x6E26
+0x3133 0x5618
+0x3134 0x5504
+0x3135 0x6B1D
+0x3136 0x851A
+0x3137 0x9C3B
+0x3138 0x59E5
+0x3139 0x53A9
+0x313a 0x6D66
+0x313b 0x74DC
+0x313c 0x958F
+0x313d 0x5642
+0x313e 0x4E91
+0x313f 0x904B
+0x3140 0x96F2
+0x3141 0x834F
+0x3142 0x990C
+0x3143 0x53E1
+0x3144 0x55B6
+0x3145 0x5B30
+0x3146 0x5F71
+0x3147 0x6620
+0x3148 0x66F3
+0x3149 0x6804
+0x314a 0x6C38
+0x314b 0x6CF3
+0x314c 0x6D29
+0x314d 0x745B
+0x314e 0x76C8
+0x314f 0x7A4E
+0x3150 0x9834
+0x3151 0x82F1
+0x3152 0x885B
+0x3153 0x8A60
+0x3154 0x92ED
+0x3155 0x6DB2
+0x3156 0x75AB
+0x3157 0x76CA
+0x3158 0x99C5
+0x3159 0x60A6
+0x315a 0x8B01
+0x315b 0x8D8A
+0x315c 0x95B2
+0x315d 0x698E
+0x315e 0x53AD
+0x315f 0x5186
+0x3160 0x5712
+0x3161 0x5830
+0x3162 0x5944
+0x3163 0x5BB4
+0x3164 0x5EF6
+0x3165 0x6028
+0x3166 0x63A9
+0x3167 0x63F4
+0x3168 0x6CBF
+0x3169 0x6F14
+0x316a 0x708E
+0x316b 0x7114
+0x316c 0x7159
+0x316d 0x71D5
+0x316e 0x733F
+0x316f 0x7E01
+0x3170 0x8276
+0x3171 0x82D1
+0x3172 0x8597
+0x3173 0x9060
+0x3174 0x925B
+0x3175 0x9D1B
+0x3176 0x5869
+0x3177 0x65BC
+0x3178 0x6C5A
+0x3179 0x7525
+0x317a 0x51F9
+0x317b 0x592E
+0x317c 0x5965
+0x317d 0x5F80
+0x317e 0x5FDC
+0x3221 0x62BC
+0x3222 0x65FA
+0x3223 0x6A2A
+0x3224 0x6B27
+0x3225 0x6BB4
+0x3226 0x738B
+0x3227 0x7FC1
+0x3228 0x8956
+0x3229 0x9D2C
+0x322a 0x9D0E
+0x322b 0x9EC4
+0x322c 0x5CA1
+0x322d 0x6C96
+0x322e 0x837B
+0x322f 0x5104
+0x3230 0x5C4B
+0x3231 0x61B6
+0x3232 0x81C6
+0x3233 0x6876
+0x3234 0x7261
+0x3235 0x4E59
+0x3236 0x4FFA
+0x3237 0x5378
+0x3238 0x6069
+0x3239 0x6E29
+0x323a 0x7A4F
+0x323b 0x97F3
+0x323c 0x4E0B
+0x323d 0x5316
+0x323e 0x4EEE
+0x323f 0x4F55
+0x3240 0x4F3D
+0x3241 0x4FA1
+0x3242 0x4F73
+0x3243 0x52A0
+0x3244 0x53EF
+0x3245 0x5609
+0x3246 0x590F
+0x3247 0x5AC1
+0x3248 0x5BB6
+0x3249 0x5BE1
+0x324a 0x79D1
+0x324b 0x6687
+0x324c 0x679C
+0x324d 0x67B6
+0x324e 0x6B4C
+0x324f 0x6CB3
+0x3250 0x706B
+0x3251 0x73C2
+0x3252 0x798D
+0x3253 0x79BE
+0x3254 0x7A3C
+0x3255 0x7B87
+0x3256 0x82B1
+0x3257 0x82DB
+0x3258 0x8304
+0x3259 0x8377
+0x325a 0x83EF
+0x325b 0x83D3
+0x325c 0x8766
+0x325d 0x8AB2
+0x325e 0x5629
+0x325f 0x8CA8
+0x3260 0x8FE6
+0x3261 0x904E
+0x3262 0x971E
+0x3263 0x868A
+0x3264 0x4FC4
+0x3265 0x5CE8
+0x3266 0x6211
+0x3267 0x7259
+0x3268 0x753B
+0x3269 0x81E5
+0x326a 0x82BD
+0x326b 0x86FE
+0x326c 0x8CC0
+0x326d 0x96C5
+0x326e 0x9913
+0x326f 0x99D5
+0x3270 0x4ECB
+0x3271 0x4F1A
+0x3272 0x89E3
+0x3273 0x56DE
+0x3274 0x584A
+0x3275 0x58CA
+0x3276 0x5EFB
+0x3277 0x5FEB
+0x3278 0x602A
+0x3279 0x6094
+0x327a 0x6062
+0x327b 0x61D0
+0x327c 0x6212
+0x327d 0x62D0
+0x327e 0x6539
+0x3321 0x9B41
+0x3322 0x6666
+0x3323 0x68B0
+0x3324 0x6D77
+0x3325 0x7070
+0x3326 0x754C
+0x3327 0x7686
+0x3328 0x7D75
+0x3329 0x82A5
+0x332a 0x87F9
+0x332b 0x958B
+0x332c 0x968E
+0x332d 0x8C9D
+0x332e 0x51F1
+0x332f 0x52BE
+0x3330 0x5916
+0x3331 0x54B3
+0x3332 0x5BB3
+0x3333 0x5D16
+0x3334 0x6168
+0x3335 0x6982
+0x3336 0x6DAF
+0x3337 0x788D
+0x3338 0x84CB
+0x3339 0x8857
+0x333a 0x8A72
+0x333b 0x93A7
+0x333c 0x9AB8
+0x333d 0x6D6C
+0x333e 0x99A8
+0x333f 0x86D9
+0x3340 0x57A3
+0x3341 0x67FF
+0x3342 0x86CE
+0x3343 0x920E
+0x3344 0x5283
+0x3345 0x5687
+0x3346 0x5404
+0x3347 0x5ED3
+0x3348 0x62E1
+0x3349 0x64B9
+0x334a 0x683C
+0x334b 0x6838
+0x334c 0x6BBB
+0x334d 0x7372
+0x334e 0x78BA
+0x334f 0x7A6B
+0x3350 0x899A
+0x3351 0x89D2
+0x3352 0x8D6B
+0x3353 0x8F03
+0x3354 0x90ED
+0x3355 0x95A3
+0x3356 0x9694
+0x3357 0x9769
+0x3358 0x5B66
+0x3359 0x5CB3
+0x335a 0x697D
+0x335b 0x984D
+0x335c 0x984E
+0x335d 0x639B
+0x335e 0x7B20
+0x335f 0x6A2B
+0x3360 0x6A7F
+0x3361 0x68B6
+0x3362 0x9C0D
+0x3363 0x6F5F
+0x3364 0x5272
+0x3365 0x559D
+0x3366 0x6070
+0x3367 0x62EC
+0x3368 0x6D3B
+0x3369 0x6E07
+0x336a 0x6ED1
+0x336b 0x845B
+0x336c 0x8910
+0x336d 0x8F44
+0x336e 0x4E14
+0x336f 0x9C39
+0x3370 0x53F6
+0x3371 0x691B
+0x3372 0x6A3A
+0x3373 0x9784
+0x3374 0x682A
+0x3375 0x515C
+0x3376 0x7AC3
+0x3377 0x84B2
+0x3378 0x91DC
+0x3379 0x938C
+0x337a 0x565B
+0x337b 0x9D28
+0x337c 0x6822
+0x337d 0x8305
+0x337e 0x8431
+0x3421 0x7CA5
+0x3422 0x5208
+0x3423 0x82C5
+0x3424 0x74E6
+0x3425 0x4E7E
+0x3426 0x4F83
+0x3427 0x51A0
+0x3428 0x5BD2
+0x3429 0x520A
+0x342a 0x52D8
+0x342b 0x52E7
+0x342c 0x5DFB
+0x342d 0x559A
+0x342e 0x582A
+0x342f 0x59E6
+0x3430 0x5B8C
+0x3431 0x5B98
+0x3432 0x5BDB
+0x3433 0x5E72
+0x3434 0x5E79
+0x3435 0x60A3
+0x3436 0x611F
+0x3437 0x6163
+0x3438 0x61BE
+0x3439 0x63DB
+0x343a 0x6562
+0x343b 0x67D1
+0x343c 0x6853
+0x343d 0x68FA
+0x343e 0x6B3E
+0x343f 0x6B53
+0x3440 0x6C57
+0x3441 0x6F22
+0x3442 0x6F97
+0x3443 0x6F45
+0x3444 0x74B0
+0x3445 0x7518
+0x3446 0x76E3
+0x3447 0x770B
+0x3448 0x7AFF
+0x3449 0x7BA1
+0x344a 0x7C21
+0x344b 0x7DE9
+0x344c 0x7F36
+0x344d 0x7FF0
+0x344e 0x809D
+0x344f 0x8266
+0x3450 0x839E
+0x3451 0x89B3
+0x3452 0x8ACC
+0x3453 0x8CAB
+0x3454 0x9084
+0x3455 0x9451
+0x3456 0x9593
+0x3457 0x9591
+0x3458 0x95A2
+0x3459 0x9665
+0x345a 0x97D3
+0x345b 0x9928
+0x345c 0x8218
+0x345d 0x4E38
+0x345e 0x542B
+0x345f 0x5CB8
+0x3460 0x5DCC
+0x3461 0x73A9
+0x3462 0x764C
+0x3463 0x773C
+0x3464 0x5CA9
+0x3465 0x7FEB
+0x3466 0x8D0B
+0x3467 0x96C1
+0x3468 0x9811
+0x3469 0x9854
+0x346a 0x9858
+0x346b 0x4F01
+0x346c 0x4F0E
+0x346d 0x5371
+0x346e 0x559C
+0x346f 0x5668
+0x3470 0x57FA
+0x3471 0x5947
+0x3472 0x5B09
+0x3473 0x5BC4
+0x3474 0x5C90
+0x3475 0x5E0C
+0x3476 0x5E7E
+0x3477 0x5FCC
+0x3478 0x63EE
+0x3479 0x673A
+0x347a 0x65D7
+0x347b 0x65E2
+0x347c 0x671F
+0x347d 0x68CB
+0x347e 0x68C4
+0x3521 0x6A5F
+0x3522 0x5E30
+0x3523 0x6BC5
+0x3524 0x6C17
+0x3525 0x6C7D
+0x3526 0x757F
+0x3527 0x7948
+0x3528 0x5B63
+0x3529 0x7A00
+0x352a 0x7D00
+0x352b 0x5FBD
+0x352c 0x898F
+0x352d 0x8A18
+0x352e 0x8CB4
+0x352f 0x8D77
+0x3530 0x8ECC
+0x3531 0x8F1D
+0x3532 0x98E2
+0x3533 0x9A0E
+0x3534 0x9B3C
+0x3535 0x4E80
+0x3536 0x507D
+0x3537 0x5100
+0x3538 0x5993
+0x3539 0x5B9C
+0x353a 0x622F
+0x353b 0x6280
+0x353c 0x64EC
+0x353d 0x6B3A
+0x353e 0x72A0
+0x353f 0x7591
+0x3540 0x7947
+0x3541 0x7FA9
+0x3542 0x87FB
+0x3543 0x8ABC
+0x3544 0x8B70
+0x3545 0x63AC
+0x3546 0x83CA
+0x3547 0x97A0
+0x3548 0x5409
+0x3549 0x5403
+0x354a 0x55AB
+0x354b 0x6854
+0x354c 0x6A58
+0x354d 0x8A70
+0x354e 0x7827
+0x354f 0x6775
+0x3550 0x9ECD
+0x3551 0x5374
+0x3552 0x5BA2
+0x3553 0x811A
+0x3554 0x8650
+0x3555 0x9006
+0x3556 0x4E18
+0x3557 0x4E45
+0x3558 0x4EC7
+0x3559 0x4F11
+0x355a 0x53CA
+0x355b 0x5438
+0x355c 0x5BAE
+0x355d 0x5F13
+0x355e 0x6025
+0x355f 0x6551
+0x3560 0x673D
+0x3561 0x6C42
+0x3562 0x6C72
+0x3563 0x6CE3
+0x3564 0x7078
+0x3565 0x7403
+0x3566 0x7A76
+0x3567 0x7AAE
+0x3568 0x7B08
+0x3569 0x7D1A
+0x356a 0x7CFE
+0x356b 0x7D66
+0x356c 0x65E7
+0x356d 0x725B
+0x356e 0x53BB
+0x356f 0x5C45
+0x3570 0x5DE8
+0x3571 0x62D2
+0x3572 0x62E0
+0x3573 0x6319
+0x3574 0x6E20
+0x3575 0x865A
+0x3576 0x8A31
+0x3577 0x8DDD
+0x3578 0x92F8
+0x3579 0x6F01
+0x357a 0x79A6
+0x357b 0x9B5A
+0x357c 0x4EA8
+0x357d 0x4EAB
+0x357e 0x4EAC
+0x3621 0x4F9B
+0x3622 0x4FA0
+0x3623 0x50D1
+0x3624 0x5147
+0x3625 0x7AF6
+0x3626 0x5171
+0x3627 0x51F6
+0x3628 0x5354
+0x3629 0x5321
+0x362a 0x537F
+0x362b 0x53EB
+0x362c 0x55AC
+0x362d 0x5883
+0x362e 0x5CE1
+0x362f 0x5F37
+0x3630 0x5F4A
+0x3631 0x602F
+0x3632 0x6050
+0x3633 0x606D
+0x3634 0x631F
+0x3635 0x6559
+0x3636 0x6A4B
+0x3637 0x6CC1
+0x3638 0x72C2
+0x3639 0x72ED
+0x363a 0x77EF
+0x363b 0x80F8
+0x363c 0x8105
+0x363d 0x8208
+0x363e 0x854E
+0x363f 0x90F7
+0x3640 0x93E1
+0x3641 0x97FF
+0x3642 0x9957
+0x3643 0x9A5A
+0x3644 0x4EF0
+0x3645 0x51DD
+0x3646 0x5C2D
+0x3647 0x6681
+0x3648 0x696D
+0x3649 0x5C40
+0x364a 0x66F2
+0x364b 0x6975
+0x364c 0x7389
+0x364d 0x6850
+0x364e 0x7C81
+0x364f 0x50C5
+0x3650 0x52E4
+0x3651 0x5747
+0x3652 0x5DFE
+0x3653 0x9326
+0x3654 0x65A4
+0x3655 0x6B23
+0x3656 0x6B3D
+0x3657 0x7434
+0x3658 0x7981
+0x3659 0x79BD
+0x365a 0x7B4B
+0x365b 0x7DCA
+0x365c 0x82B9
+0x365d 0x83CC
+0x365e 0x887F
+0x365f 0x895F
+0x3660 0x8B39
+0x3661 0x8FD1
+0x3662 0x91D1
+0x3663 0x541F
+0x3664 0x9280
+0x3665 0x4E5D
+0x3666 0x5036
+0x3667 0x53E5
+0x3668 0x533A
+0x3669 0x72D7
+0x366a 0x7396
+0x366b 0x77E9
+0x366c 0x82E6
+0x366d 0x8EAF
+0x366e 0x99C6
+0x366f 0x99C8
+0x3670 0x99D2
+0x3671 0x5177
+0x3672 0x611A
+0x3673 0x865E
+0x3674 0x55B0
+0x3675 0x7A7A
+0x3676 0x5076
+0x3677 0x5BD3
+0x3678 0x9047
+0x3679 0x9685
+0x367a 0x4E32
+0x367b 0x6ADB
+0x367c 0x91E7
+0x367d 0x5C51
+0x367e 0x5C48
+0x3721 0x6398
+0x3722 0x7A9F
+0x3723 0x6C93
+0x3724 0x9774
+0x3725 0x8F61
+0x3726 0x7AAA
+0x3727 0x718A
+0x3728 0x9688
+0x3729 0x7C82
+0x372a 0x6817
+0x372b 0x7E70
+0x372c 0x6851
+0x372d 0x936C
+0x372e 0x52F2
+0x372f 0x541B
+0x3730 0x85AB
+0x3731 0x8A13
+0x3732 0x7FA4
+0x3733 0x8ECD
+0x3734 0x90E1
+0x3735 0x5366
+0x3736 0x8888
+0x3737 0x7941
+0x3738 0x4FC2
+0x3739 0x50BE
+0x373a 0x5211
+0x373b 0x5144
+0x373c 0x5553
+0x373d 0x572D
+0x373e 0x73EA
+0x373f 0x578B
+0x3740 0x5951
+0x3741 0x5F62
+0x3742 0x5F84
+0x3743 0x6075
+0x3744 0x6176
+0x3745 0x6167
+0x3746 0x61A9
+0x3747 0x63B2
+0x3748 0x643A
+0x3749 0x656C
+0x374a 0x666F
+0x374b 0x6842
+0x374c 0x6E13
+0x374d 0x7566
+0x374e 0x7A3D
+0x374f 0x7CFB
+0x3750 0x7D4C
+0x3751 0x7D99
+0x3752 0x7E4B
+0x3753 0x7F6B
+0x3754 0x830E
+0x3755 0x834A
+0x3756 0x86CD
+0x3757 0x8A08
+0x3758 0x8A63
+0x3759 0x8B66
+0x375a 0x8EFD
+0x375b 0x981A
+0x375c 0x9D8F
+0x375d 0x82B8
+0x375e 0x8FCE
+0x375f 0x9BE8
+0x3760 0x5287
+0x3761 0x621F
+0x3762 0x6483
+0x3763 0x6FC0
+0x3764 0x9699
+0x3765 0x6841
+0x3766 0x5091
+0x3767 0x6B20
+0x3768 0x6C7A
+0x3769 0x6F54
+0x376a 0x7A74
+0x376b 0x7D50
+0x376c 0x8840
+0x376d 0x8A23
+0x376e 0x6708
+0x376f 0x4EF6
+0x3770 0x5039
+0x3771 0x5026
+0x3772 0x5065
+0x3773 0x517C
+0x3774 0x5238
+0x3775 0x5263
+0x3776 0x55A7
+0x3777 0x570F
+0x3778 0x5805
+0x3779 0x5ACC
+0x377a 0x5EFA
+0x377b 0x61B2
+0x377c 0x61F8
+0x377d 0x62F3
+0x377e 0x6372
+0x3821 0x691C
+0x3822 0x6A29
+0x3823 0x727D
+0x3824 0x72AC
+0x3825 0x732E
+0x3826 0x7814
+0x3827 0x786F
+0x3828 0x7D79
+0x3829 0x770C
+0x382a 0x80A9
+0x382b 0x898B
+0x382c 0x8B19
+0x382d 0x8CE2
+0x382e 0x8ED2
+0x382f 0x9063
+0x3830 0x9375
+0x3831 0x967A
+0x3832 0x9855
+0x3833 0x9A13
+0x3834 0x9E78
+0x3835 0x5143
+0x3836 0x539F
+0x3837 0x53B3
+0x3838 0x5E7B
+0x3839 0x5F26
+0x383a 0x6E1B
+0x383b 0x6E90
+0x383c 0x7384
+0x383d 0x73FE
+0x383e 0x7D43
+0x383f 0x8237
+0x3840 0x8A00
+0x3841 0x8AFA
+0x3842 0x9650
+0x3843 0x4E4E
+0x3844 0x500B
+0x3845 0x53E4
+0x3846 0x547C
+0x3847 0x56FA
+0x3848 0x59D1
+0x3849 0x5B64
+0x384a 0x5DF1
+0x384b 0x5EAB
+0x384c 0x5F27
+0x384d 0x6238
+0x384e 0x6545
+0x384f 0x67AF
+0x3850 0x6E56
+0x3851 0x72D0
+0x3852 0x7CCA
+0x3853 0x88B4
+0x3854 0x80A1
+0x3855 0x80E1
+0x3856 0x83F0
+0x3857 0x864E
+0x3858 0x8A87
+0x3859 0x8DE8
+0x385a 0x9237
+0x385b 0x96C7
+0x385c 0x9867
+0x385d 0x9F13
+0x385e 0x4E94
+0x385f 0x4E92
+0x3860 0x4F0D
+0x3861 0x5348
+0x3862 0x5449
+0x3863 0x543E
+0x3864 0x5A2F
+0x3865 0x5F8C
+0x3866 0x5FA1
+0x3867 0x609F
+0x3868 0x68A7
+0x3869 0x6A8E
+0x386a 0x745A
+0x386b 0x7881
+0x386c 0x8A9E
+0x386d 0x8AA4
+0x386e 0x8B77
+0x386f 0x9190
+0x3870 0x4E5E
+0x3871 0x9BC9
+0x3872 0x4EA4
+0x3873 0x4F7C
+0x3874 0x4FAF
+0x3875 0x5019
+0x3876 0x5016
+0x3877 0x5149
+0x3878 0x516C
+0x3879 0x529F
+0x387a 0x52B9
+0x387b 0x52FE
+0x387c 0x539A
+0x387d 0x53E3
+0x387e 0x5411
+0x3921 0x540E
+0x3922 0x5589
+0x3923 0x5751
+0x3924 0x57A2
+0x3925 0x597D
+0x3926 0x5B54
+0x3927 0x5B5D
+0x3928 0x5B8F
+0x3929 0x5DE5
+0x392a 0x5DE7
+0x392b 0x5DF7
+0x392c 0x5E78
+0x392d 0x5E83
+0x392e 0x5E9A
+0x392f 0x5EB7
+0x3930 0x5F18
+0x3931 0x6052
+0x3932 0x614C
+0x3933 0x6297
+0x3934 0x62D8
+0x3935 0x63A7
+0x3936 0x653B
+0x3937 0x6602
+0x3938 0x6643
+0x3939 0x66F4
+0x393a 0x676D
+0x393b 0x6821
+0x393c 0x6897
+0x393d 0x69CB
+0x393e 0x6C5F
+0x393f 0x6D2A
+0x3940 0x6D69
+0x3941 0x6E2F
+0x3942 0x6E9D
+0x3943 0x7532
+0x3944 0x7687
+0x3945 0x786C
+0x3946 0x7A3F
+0x3947 0x7CE0
+0x3948 0x7D05
+0x3949 0x7D18
+0x394a 0x7D5E
+0x394b 0x7DB1
+0x394c 0x8015
+0x394d 0x8003
+0x394e 0x80AF
+0x394f 0x80B1
+0x3950 0x8154
+0x3951 0x818F
+0x3952 0x822A
+0x3953 0x8352
+0x3954 0x884C
+0x3955 0x8861
+0x3956 0x8B1B
+0x3957 0x8CA2
+0x3958 0x8CFC
+0x3959 0x90CA
+0x395a 0x9175
+0x395b 0x9271
+0x395c 0x783F
+0x395d 0x92FC
+0x395e 0x95A4
+0x395f 0x964D
+0x3960 0x9805
+0x3961 0x9999
+0x3962 0x9AD8
+0x3963 0x9D3B
+0x3964 0x525B
+0x3965 0x52AB
+0x3966 0x53F7
+0x3967 0x5408
+0x3968 0x58D5
+0x3969 0x62F7
+0x396a 0x6FE0
+0x396b 0x8C6A
+0x396c 0x8F5F
+0x396d 0x9EB9
+0x396e 0x514B
+0x396f 0x523B
+0x3970 0x544A
+0x3971 0x56FD
+0x3972 0x7A40
+0x3973 0x9177
+0x3974 0x9D60
+0x3975 0x9ED2
+0x3976 0x7344
+0x3977 0x6F09
+0x3978 0x8170
+0x3979 0x7511
+0x397a 0x5FFD
+0x397b 0x60DA
+0x397c 0x9AA8
+0x397d 0x72DB
+0x397e 0x8FBC
+0x3a21 0x6B64
+0x3a22 0x9803
+0x3a23 0x4ECA
+0x3a24 0x56F0
+0x3a25 0x5764
+0x3a26 0x58BE
+0x3a27 0x5A5A
+0x3a28 0x6068
+0x3a29 0x61C7
+0x3a2a 0x660F
+0x3a2b 0x6606
+0x3a2c 0x6839
+0x3a2d 0x68B1
+0x3a2e 0x6DF7
+0x3a2f 0x75D5
+0x3a30 0x7D3A
+0x3a31 0x826E
+0x3a32 0x9B42
+0x3a33 0x4E9B
+0x3a34 0x4F50
+0x3a35 0x53C9
+0x3a36 0x5506
+0x3a37 0x5D6F
+0x3a38 0x5DE6
+0x3a39 0x5DEE
+0x3a3a 0x67FB
+0x3a3b 0x6C99
+0x3a3c 0x7473
+0x3a3d 0x7802
+0x3a3e 0x8A50
+0x3a3f 0x9396
+0x3a40 0x88DF
+0x3a41 0x5750
+0x3a42 0x5EA7
+0x3a43 0x632B
+0x3a44 0x50B5
+0x3a45 0x50AC
+0x3a46 0x518D
+0x3a47 0x6700
+0x3a48 0x54C9
+0x3a49 0x585E
+0x3a4a 0x59BB
+0x3a4b 0x5BB0
+0x3a4c 0x5F69
+0x3a4d 0x624D
+0x3a4e 0x63A1
+0x3a4f 0x683D
+0x3a50 0x6B73
+0x3a51 0x6E08
+0x3a52 0x707D
+0x3a53 0x91C7
+0x3a54 0x7280
+0x3a55 0x7815
+0x3a56 0x7826
+0x3a57 0x796D
+0x3a58 0x658E
+0x3a59 0x7D30
+0x3a5a 0x83DC
+0x3a5b 0x88C1
+0x3a5c 0x8F09
+0x3a5d 0x969B
+0x3a5e 0x5264
+0x3a5f 0x5728
+0x3a60 0x6750
+0x3a61 0x7F6A
+0x3a62 0x8CA1
+0x3a63 0x51B4
+0x3a64 0x5742
+0x3a65 0x962A
+0x3a66 0x583A
+0x3a67 0x698A
+0x3a68 0x80B4
+0x3a69 0x54B2
+0x3a6a 0x5D0E
+0x3a6b 0x57FC
+0x3a6c 0x7895
+0x3a6d 0x9DFA
+0x3a6e 0x4F5C
+0x3a6f 0x524A
+0x3a70 0x548B
+0x3a71 0x643E
+0x3a72 0x6628
+0x3a73 0x6714
+0x3a74 0x67F5
+0x3a75 0x7A84
+0x3a76 0x7B56
+0x3a77 0x7D22
+0x3a78 0x932F
+0x3a79 0x685C
+0x3a7a 0x9BAD
+0x3a7b 0x7B39
+0x3a7c 0x5319
+0x3a7d 0x518A
+0x3a7e 0x5237
+0x3b21 0x5BDF
+0x3b22 0x62F6
+0x3b23 0x64AE
+0x3b24 0x64E6
+0x3b25 0x672D
+0x3b26 0x6BBA
+0x3b27 0x85A9
+0x3b28 0x96D1
+0x3b29 0x7690
+0x3b2a 0x9BD6
+0x3b2b 0x634C
+0x3b2c 0x9306
+0x3b2d 0x9BAB
+0x3b2e 0x76BF
+0x3b2f 0x6652
+0x3b30 0x4E09
+0x3b31 0x5098
+0x3b32 0x53C2
+0x3b33 0x5C71
+0x3b34 0x60E8
+0x3b35 0x6492
+0x3b36 0x6563
+0x3b37 0x685F
+0x3b38 0x71E6
+0x3b39 0x73CA
+0x3b3a 0x7523
+0x3b3b 0x7B97
+0x3b3c 0x7E82
+0x3b3d 0x8695
+0x3b3e 0x8B83
+0x3b3f 0x8CDB
+0x3b40 0x9178
+0x3b41 0x9910
+0x3b42 0x65AC
+0x3b43 0x66AB
+0x3b44 0x6B8B
+0x3b45 0x4ED5
+0x3b46 0x4ED4
+0x3b47 0x4F3A
+0x3b48 0x4F7F
+0x3b49 0x523A
+0x3b4a 0x53F8
+0x3b4b 0x53F2
+0x3b4c 0x55E3
+0x3b4d 0x56DB
+0x3b4e 0x58EB
+0x3b4f 0x59CB
+0x3b50 0x59C9
+0x3b51 0x59FF
+0x3b52 0x5B50
+0x3b53 0x5C4D
+0x3b54 0x5E02
+0x3b55 0x5E2B
+0x3b56 0x5FD7
+0x3b57 0x601D
+0x3b58 0x6307
+0x3b59 0x652F
+0x3b5a 0x5B5C
+0x3b5b 0x65AF
+0x3b5c 0x65BD
+0x3b5d 0x65E8
+0x3b5e 0x679D
+0x3b5f 0x6B62
+0x3b60 0x6B7B
+0x3b61 0x6C0F
+0x3b62 0x7345
+0x3b63 0x7949
+0x3b64 0x79C1
+0x3b65 0x7CF8
+0x3b66 0x7D19
+0x3b67 0x7D2B
+0x3b68 0x80A2
+0x3b69 0x8102
+0x3b6a 0x81F3
+0x3b6b 0x8996
+0x3b6c 0x8A5E
+0x3b6d 0x8A69
+0x3b6e 0x8A66
+0x3b6f 0x8A8C
+0x3b70 0x8AEE
+0x3b71 0x8CC7
+0x3b72 0x8CDC
+0x3b73 0x96CC
+0x3b74 0x98FC
+0x3b75 0x6B6F
+0x3b76 0x4E8B
+0x3b77 0x4F3C
+0x3b78 0x4F8D
+0x3b79 0x5150
+0x3b7a 0x5B57
+0x3b7b 0x5BFA
+0x3b7c 0x6148
+0x3b7d 0x6301
+0x3b7e 0x6642
+0x3c21 0x6B21
+0x3c22 0x6ECB
+0x3c23 0x6CBB
+0x3c24 0x723E
+0x3c25 0x74BD
+0x3c26 0x75D4
+0x3c27 0x78C1
+0x3c28 0x793A
+0x3c29 0x800C
+0x3c2a 0x8033
+0x3c2b 0x81EA
+0x3c2c 0x8494
+0x3c2d 0x8F9E
+0x3c2e 0x6C50
+0x3c2f 0x9E7F
+0x3c30 0x5F0F
+0x3c31 0x8B58
+0x3c32 0x9D2B
+0x3c33 0x7AFA
+0x3c34 0x8EF8
+0x3c35 0x5B8D
+0x3c36 0x96EB
+0x3c37 0x4E03
+0x3c38 0x53F1
+0x3c39 0x57F7
+0x3c3a 0x5931
+0x3c3b 0x5AC9
+0x3c3c 0x5BA4
+0x3c3d 0x6089
+0x3c3e 0x6E7F
+0x3c3f 0x6F06
+0x3c40 0x75BE
+0x3c41 0x8CEA
+0x3c42 0x5B9F
+0x3c43 0x8500
+0x3c44 0x7BE0
+0x3c45 0x5072
+0x3c46 0x67F4
+0x3c47 0x829D
+0x3c48 0x5C61
+0x3c49 0x854A
+0x3c4a 0x7E1E
+0x3c4b 0x820E
+0x3c4c 0x5199
+0x3c4d 0x5C04
+0x3c4e 0x6368
+0x3c4f 0x8D66
+0x3c50 0x659C
+0x3c51 0x716E
+0x3c52 0x793E
+0x3c53 0x7D17
+0x3c54 0x8005
+0x3c55 0x8B1D
+0x3c56 0x8ECA
+0x3c57 0x906E
+0x3c58 0x86C7
+0x3c59 0x90AA
+0x3c5a 0x501F
+0x3c5b 0x52FA
+0x3c5c 0x5C3A
+0x3c5d 0x6753
+0x3c5e 0x707C
+0x3c5f 0x7235
+0x3c60 0x914C
+0x3c61 0x91C8
+0x3c62 0x932B
+0x3c63 0x82E5
+0x3c64 0x5BC2
+0x3c65 0x5F31
+0x3c66 0x60F9
+0x3c67 0x4E3B
+0x3c68 0x53D6
+0x3c69 0x5B88
+0x3c6a 0x624B
+0x3c6b 0x6731
+0x3c6c 0x6B8A
+0x3c6d 0x72E9
+0x3c6e 0x73E0
+0x3c6f 0x7A2E
+0x3c70 0x816B
+0x3c71 0x8DA3
+0x3c72 0x9152
+0x3c73 0x9996
+0x3c74 0x5112
+0x3c75 0x53D7
+0x3c76 0x546A
+0x3c77 0x5BFF
+0x3c78 0x6388
+0x3c79 0x6A39
+0x3c7a 0x7DAC
+0x3c7b 0x9700
+0x3c7c 0x56DA
+0x3c7d 0x53CE
+0x3c7e 0x5468
+0x3d21 0x5B97
+0x3d22 0x5C31
+0x3d23 0x5DDE
+0x3d24 0x4FEE
+0x3d25 0x6101
+0x3d26 0x62FE
+0x3d27 0x6D32
+0x3d28 0x79C0
+0x3d29 0x79CB
+0x3d2a 0x7D42
+0x3d2b 0x7E4D
+0x3d2c 0x7FD2
+0x3d2d 0x81ED
+0x3d2e 0x821F
+0x3d2f 0x8490
+0x3d30 0x8846
+0x3d31 0x8972
+0x3d32 0x8B90
+0x3d33 0x8E74
+0x3d34 0x8F2F
+0x3d35 0x9031
+0x3d36 0x914B
+0x3d37 0x916C
+0x3d38 0x96C6
+0x3d39 0x919C
+0x3d3a 0x4EC0
+0x3d3b 0x4F4F
+0x3d3c 0x5145
+0x3d3d 0x5341
+0x3d3e 0x5F93
+0x3d3f 0x620E
+0x3d40 0x67D4
+0x3d41 0x6C41
+0x3d42 0x6E0B
+0x3d43 0x7363
+0x3d44 0x7E26
+0x3d45 0x91CD
+0x3d46 0x9283
+0x3d47 0x53D4
+0x3d48 0x5919
+0x3d49 0x5BBF
+0x3d4a 0x6DD1
+0x3d4b 0x795D
+0x3d4c 0x7E2E
+0x3d4d 0x7C9B
+0x3d4e 0x587E
+0x3d4f 0x719F
+0x3d50 0x51FA
+0x3d51 0x8853
+0x3d52 0x8FF0
+0x3d53 0x4FCA
+0x3d54 0x5CFB
+0x3d55 0x6625
+0x3d56 0x77AC
+0x3d57 0x7AE3
+0x3d58 0x821C
+0x3d59 0x99FF
+0x3d5a 0x51C6
+0x3d5b 0x5FAA
+0x3d5c 0x65EC
+0x3d5d 0x696F
+0x3d5e 0x6B89
+0x3d5f 0x6DF3
+0x3d60 0x6E96
+0x3d61 0x6F64
+0x3d62 0x76FE
+0x3d63 0x7D14
+0x3d64 0x5DE1
+0x3d65 0x9075
+0x3d66 0x9187
+0x3d67 0x9806
+0x3d68 0x51E6
+0x3d69 0x521D
+0x3d6a 0x6240
+0x3d6b 0x6691
+0x3d6c 0x66D9
+0x3d6d 0x6E1A
+0x3d6e 0x5EB6
+0x3d6f 0x7DD2
+0x3d70 0x7F72
+0x3d71 0x66F8
+0x3d72 0x85AF
+0x3d73 0x85F7
+0x3d74 0x8AF8
+0x3d75 0x52A9
+0x3d76 0x53D9
+0x3d77 0x5973
+0x3d78 0x5E8F
+0x3d79 0x5F90
+0x3d7a 0x6055
+0x3d7b 0x92E4
+0x3d7c 0x9664
+0x3d7d 0x50B7
+0x3d7e 0x511F
+0x3e21 0x52DD
+0x3e22 0x5320
+0x3e23 0x5347
+0x3e24 0x53EC
+0x3e25 0x54E8
+0x3e26 0x5546
+0x3e27 0x5531
+0x3e28 0x5617
+0x3e29 0x5968
+0x3e2a 0x59BE
+0x3e2b 0x5A3C
+0x3e2c 0x5BB5
+0x3e2d 0x5C06
+0x3e2e 0x5C0F
+0x3e2f 0x5C11
+0x3e30 0x5C1A
+0x3e31 0x5E84
+0x3e32 0x5E8A
+0x3e33 0x5EE0
+0x3e34 0x5F70
+0x3e35 0x627F
+0x3e36 0x6284
+0x3e37 0x62DB
+0x3e38 0x638C
+0x3e39 0x6377
+0x3e3a 0x6607
+0x3e3b 0x660C
+0x3e3c 0x662D
+0x3e3d 0x6676
+0x3e3e 0x677E
+0x3e3f 0x68A2
+0x3e40 0x6A1F
+0x3e41 0x6A35
+0x3e42 0x6CBC
+0x3e43 0x6D88
+0x3e44 0x6E09
+0x3e45 0x6E58
+0x3e46 0x713C
+0x3e47 0x7126
+0x3e48 0x7167
+0x3e49 0x75C7
+0x3e4a 0x7701
+0x3e4b 0x785D
+0x3e4c 0x7901
+0x3e4d 0x7965
+0x3e4e 0x79F0
+0x3e4f 0x7AE0
+0x3e50 0x7B11
+0x3e51 0x7CA7
+0x3e52 0x7D39
+0x3e53 0x8096
+0x3e54 0x83D6
+0x3e55 0x848B
+0x3e56 0x8549
+0x3e57 0x885D
+0x3e58 0x88F3
+0x3e59 0x8A1F
+0x3e5a 0x8A3C
+0x3e5b 0x8A54
+0x3e5c 0x8A73
+0x3e5d 0x8C61
+0x3e5e 0x8CDE
+0x3e5f 0x91A4
+0x3e60 0x9266
+0x3e61 0x937E
+0x3e62 0x9418
+0x3e63 0x969C
+0x3e64 0x9798
+0x3e65 0x4E0A
+0x3e66 0x4E08
+0x3e67 0x4E1E
+0x3e68 0x4E57
+0x3e69 0x5197
+0x3e6a 0x5270
+0x3e6b 0x57CE
+0x3e6c 0x5834
+0x3e6d 0x58CC
+0x3e6e 0x5B22
+0x3e6f 0x5E38
+0x3e70 0x60C5
+0x3e71 0x64FE
+0x3e72 0x6761
+0x3e73 0x6756
+0x3e74 0x6D44
+0x3e75 0x72B6
+0x3e76 0x7573
+0x3e77 0x7A63
+0x3e78 0x84B8
+0x3e79 0x8B72
+0x3e7a 0x91B8
+0x3e7b 0x9320
+0x3e7c 0x5631
+0x3e7d 0x57F4
+0x3e7e 0x98FE
+0x3f21 0x62ED
+0x3f22 0x690D
+0x3f23 0x6B96
+0x3f24 0x71ED
+0x3f25 0x7E54
+0x3f26 0x8077
+0x3f27 0x8272
+0x3f28 0x89E6
+0x3f29 0x98DF
+0x3f2a 0x8755
+0x3f2b 0x8FB1
+0x3f2c 0x5C3B
+0x3f2d 0x4F38
+0x3f2e 0x4FE1
+0x3f2f 0x4FB5
+0x3f30 0x5507
+0x3f31 0x5A20
+0x3f32 0x5BDD
+0x3f33 0x5BE9
+0x3f34 0x5FC3
+0x3f35 0x614E
+0x3f36 0x632F
+0x3f37 0x65B0
+0x3f38 0x664B
+0x3f39 0x68EE
+0x3f3a 0x699B
+0x3f3b 0x6D78
+0x3f3c 0x6DF1
+0x3f3d 0x7533
+0x3f3e 0x75B9
+0x3f3f 0x771F
+0x3f40 0x795E
+0x3f41 0x79E6
+0x3f42 0x7D33
+0x3f43 0x81E3
+0x3f44 0x82AF
+0x3f45 0x85AA
+0x3f46 0x89AA
+0x3f47 0x8A3A
+0x3f48 0x8EAB
+0x3f49 0x8F9B
+0x3f4a 0x9032
+0x3f4b 0x91DD
+0x3f4c 0x9707
+0x3f4d 0x4EBA
+0x3f4e 0x4EC1
+0x3f4f 0x5203
+0x3f50 0x5875
+0x3f51 0x58EC
+0x3f52 0x5C0B
+0x3f53 0x751A
+0x3f54 0x5C3D
+0x3f55 0x814E
+0x3f56 0x8A0A
+0x3f57 0x8FC5
+0x3f58 0x9663
+0x3f59 0x976D
+0x3f5a 0x7B25
+0x3f5b 0x8ACF
+0x3f5c 0x9808
+0x3f5d 0x9162
+0x3f5e 0x56F3
+0x3f5f 0x53A8
+0x3f60 0x9017
+0x3f61 0x5439
+0x3f62 0x5782
+0x3f63 0x5E25
+0x3f64 0x63A8
+0x3f65 0x6C34
+0x3f66 0x708A
+0x3f67 0x7761
+0x3f68 0x7C8B
+0x3f69 0x7FE0
+0x3f6a 0x8870
+0x3f6b 0x9042
+0x3f6c 0x9154
+0x3f6d 0x9310
+0x3f6e 0x9318
+0x3f6f 0x968F
+0x3f70 0x745E
+0x3f71 0x9AC4
+0x3f72 0x5D07
+0x3f73 0x5D69
+0x3f74 0x6570
+0x3f75 0x67A2
+0x3f76 0x8DA8
+0x3f77 0x96DB
+0x3f78 0x636E
+0x3f79 0x6749
+0x3f7a 0x6919
+0x3f7b 0x83C5
+0x3f7c 0x9817
+0x3f7d 0x96C0
+0x3f7e 0x88FE
+0x4021 0x6F84
+0x4022 0x647A
+0x4023 0x5BF8
+0x4024 0x4E16
+0x4025 0x702C
+0x4026 0x755D
+0x4027 0x662F
+0x4028 0x51C4
+0x4029 0x5236
+0x402a 0x52E2
+0x402b 0x59D3
+0x402c 0x5F81
+0x402d 0x6027
+0x402e 0x6210
+0x402f 0x653F
+0x4030 0x6574
+0x4031 0x661F
+0x4032 0x6674
+0x4033 0x68F2
+0x4034 0x6816
+0x4035 0x6B63
+0x4036 0x6E05
+0x4037 0x7272
+0x4038 0x751F
+0x4039 0x76DB
+0x403a 0x7CBE
+0x403b 0x8056
+0x403c 0x58F0
+0x403d 0x88FD
+0x403e 0x897F
+0x403f 0x8AA0
+0x4040 0x8A93
+0x4041 0x8ACB
+0x4042 0x901D
+0x4043 0x9192
+0x4044 0x9752
+0x4045 0x9759
+0x4046 0x6589
+0x4047 0x7A0E
+0x4048 0x8106
+0x4049 0x96BB
+0x404a 0x5E2D
+0x404b 0x60DC
+0x404c 0x621A
+0x404d 0x65A5
+0x404e 0x6614
+0x404f 0x6790
+0x4050 0x77F3
+0x4051 0x7A4D
+0x4052 0x7C4D
+0x4053 0x7E3E
+0x4054 0x810A
+0x4055 0x8CAC
+0x4056 0x8D64
+0x4057 0x8DE1
+0x4058 0x8E5F
+0x4059 0x78A9
+0x405a 0x5207
+0x405b 0x62D9
+0x405c 0x63A5
+0x405d 0x6442
+0x405e 0x6298
+0x405f 0x8A2D
+0x4060 0x7A83
+0x4061 0x7BC0
+0x4062 0x8AAC
+0x4063 0x96EA
+0x4064 0x7D76
+0x4065 0x820C
+0x4066 0x8749
+0x4067 0x4ED9
+0x4068 0x5148
+0x4069 0x5343
+0x406a 0x5360
+0x406b 0x5BA3
+0x406c 0x5C02
+0x406d 0x5C16
+0x406e 0x5DDD
+0x406f 0x6226
+0x4070 0x6247
+0x4071 0x64B0
+0x4072 0x6813
+0x4073 0x6834
+0x4074 0x6CC9
+0x4075 0x6D45
+0x4076 0x6D17
+0x4077 0x67D3
+0x4078 0x6F5C
+0x4079 0x714E
+0x407a 0x717D
+0x407b 0x65CB
+0x407c 0x7A7F
+0x407d 0x7BAD
+0x407e 0x7DDA
+0x4121 0x7E4A
+0x4122 0x7FA8
+0x4123 0x817A
+0x4124 0x821B
+0x4125 0x8239
+0x4126 0x85A6
+0x4127 0x8A6E
+0x4128 0x8CCE
+0x4129 0x8DF5
+0x412a 0x9078
+0x412b 0x9077
+0x412c 0x92AD
+0x412d 0x9291
+0x412e 0x9583
+0x412f 0x9BAE
+0x4130 0x524D
+0x4131 0x5584
+0x4132 0x6F38
+0x4133 0x7136
+0x4134 0x5168
+0x4135 0x7985
+0x4136 0x7E55
+0x4137 0x81B3
+0x4138 0x7CCE
+0x4139 0x564C
+0x413a 0x5851
+0x413b 0x5CA8
+0x413c 0x63AA
+0x413d 0x66FE
+0x413e 0x66FD
+0x413f 0x695A
+0x4140 0x72D9
+0x4141 0x758F
+0x4142 0x758E
+0x4143 0x790E
+0x4144 0x7956
+0x4145 0x79DF
+0x4146 0x7C97
+0x4147 0x7D20
+0x4148 0x7D44
+0x4149 0x8607
+0x414a 0x8A34
+0x414b 0x963B
+0x414c 0x9061
+0x414d 0x9F20
+0x414e 0x50E7
+0x414f 0x5275
+0x4150 0x53CC
+0x4151 0x53E2
+0x4152 0x5009
+0x4153 0x55AA
+0x4154 0x58EE
+0x4155 0x594F
+0x4156 0x723D
+0x4157 0x5B8B
+0x4158 0x5C64
+0x4159 0x531D
+0x415a 0x60E3
+0x415b 0x60F3
+0x415c 0x635C
+0x415d 0x6383
+0x415e 0x633F
+0x415f 0x63BB
+0x4160 0x64CD
+0x4161 0x65E9
+0x4162 0x66F9
+0x4163 0x5DE3
+0x4164 0x69CD
+0x4165 0x69FD
+0x4166 0x6F15
+0x4167 0x71E5
+0x4168 0x4E89
+0x4169 0x75E9
+0x416a 0x76F8
+0x416b 0x7A93
+0x416c 0x7CDF
+0x416d 0x7DCF
+0x416e 0x7D9C
+0x416f 0x8061
+0x4170 0x8349
+0x4171 0x8358
+0x4172 0x846C
+0x4173 0x84BC
+0x4174 0x85FB
+0x4175 0x88C5
+0x4176 0x8D70
+0x4177 0x9001
+0x4178 0x906D
+0x4179 0x9397
+0x417a 0x971C
+0x417b 0x9A12
+0x417c 0x50CF
+0x417d 0x5897
+0x417e 0x618E
+0x4221 0x81D3
+0x4222 0x8535
+0x4223 0x8D08
+0x4224 0x9020
+0x4225 0x4FC3
+0x4226 0x5074
+0x4227 0x5247
+0x4228 0x5373
+0x4229 0x606F
+0x422a 0x6349
+0x422b 0x675F
+0x422c 0x6E2C
+0x422d 0x8DB3
+0x422e 0x901F
+0x422f 0x4FD7
+0x4230 0x5C5E
+0x4231 0x8CCA
+0x4232 0x65CF
+0x4233 0x7D9A
+0x4234 0x5352
+0x4235 0x8896
+0x4236 0x5176
+0x4237 0x63C3
+0x4238 0x5B58
+0x4239 0x5B6B
+0x423a 0x5C0A
+0x423b 0x640D
+0x423c 0x6751
+0x423d 0x905C
+0x423e 0x4ED6
+0x423f 0x591A
+0x4240 0x592A
+0x4241 0x6C70
+0x4242 0x8A51
+0x4243 0x553E
+0x4244 0x5815
+0x4245 0x59A5
+0x4246 0x60F0
+0x4247 0x6253
+0x4248 0x67C1
+0x4249 0x8235
+0x424a 0x6955
+0x424b 0x9640
+0x424c 0x99C4
+0x424d 0x9A28
+0x424e 0x4F53
+0x424f 0x5806
+0x4250 0x5BFE
+0x4251 0x8010
+0x4252 0x5CB1
+0x4253 0x5E2F
+0x4254 0x5F85
+0x4255 0x6020
+0x4256 0x614B
+0x4257 0x6234
+0x4258 0x66FF
+0x4259 0x6CF0
+0x425a 0x6EDE
+0x425b 0x80CE
+0x425c 0x817F
+0x425d 0x82D4
+0x425e 0x888B
+0x425f 0x8CB8
+0x4260 0x9000
+0x4261 0x902E
+0x4262 0x968A
+0x4263 0x9EDB
+0x4264 0x9BDB
+0x4265 0x4EE3
+0x4266 0x53F0
+0x4267 0x5927
+0x4268 0x7B2C
+0x4269 0x918D
+0x426a 0x984C
+0x426b 0x9DF9
+0x426c 0x6EDD
+0x426d 0x7027
+0x426e 0x5353
+0x426f 0x5544
+0x4270 0x5B85
+0x4271 0x6258
+0x4272 0x629E
+0x4273 0x62D3
+0x4274 0x6CA2
+0x4275 0x6FEF
+0x4276 0x7422
+0x4277 0x8A17
+0x4278 0x9438
+0x4279 0x6FC1
+0x427a 0x8AFE
+0x427b 0x8338
+0x427c 0x51E7
+0x427d 0x86F8
+0x427e 0x53EA
+0x4321 0x53E9
+0x4322 0x4F46
+0x4323 0x9054
+0x4324 0x8FB0
+0x4325 0x596A
+0x4326 0x8131
+0x4327 0x5DFD
+0x4328 0x7AEA
+0x4329 0x8FBF
+0x432a 0x68DA
+0x432b 0x8C37
+0x432c 0x72F8
+0x432d 0x9C48
+0x432e 0x6A3D
+0x432f 0x8AB0
+0x4330 0x4E39
+0x4331 0x5358
+0x4332 0x5606
+0x4333 0x5766
+0x4334 0x62C5
+0x4335 0x63A2
+0x4336 0x65E6
+0x4337 0x6B4E
+0x4338 0x6DE1
+0x4339 0x6E5B
+0x433a 0x70AD
+0x433b 0x77ED
+0x433c 0x7AEF
+0x433d 0x7BAA
+0x433e 0x7DBB
+0x433f 0x803D
+0x4340 0x80C6
+0x4341 0x86CB
+0x4342 0x8A95
+0x4343 0x935B
+0x4344 0x56E3
+0x4345 0x58C7
+0x4346 0x5F3E
+0x4347 0x65AD
+0x4348 0x6696
+0x4349 0x6A80
+0x434a 0x6BB5
+0x434b 0x7537
+0x434c 0x8AC7
+0x434d 0x5024
+0x434e 0x77E5
+0x434f 0x5730
+0x4350 0x5F1B
+0x4351 0x6065
+0x4352 0x667A
+0x4353 0x6C60
+0x4354 0x75F4
+0x4355 0x7A1A
+0x4356 0x7F6E
+0x4357 0x81F4
+0x4358 0x8718
+0x4359 0x9045
+0x435a 0x99B3
+0x435b 0x7BC9
+0x435c 0x755C
+0x435d 0x7AF9
+0x435e 0x7B51
+0x435f 0x84C4
+0x4360 0x9010
+0x4361 0x79E9
+0x4362 0x7A92
+0x4363 0x8336
+0x4364 0x5AE1
+0x4365 0x7740
+0x4366 0x4E2D
+0x4367 0x4EF2
+0x4368 0x5B99
+0x4369 0x5FE0
+0x436a 0x62BD
+0x436b 0x663C
+0x436c 0x67F1
+0x436d 0x6CE8
+0x436e 0x866B
+0x436f 0x8877
+0x4370 0x8A3B
+0x4371 0x914E
+0x4372 0x92F3
+0x4373 0x99D0
+0x4374 0x6A17
+0x4375 0x7026
+0x4376 0x732A
+0x4377 0x82E7
+0x4378 0x8457
+0x4379 0x8CAF
+0x437a 0x4E01
+0x437b 0x5146
+0x437c 0x51CB
+0x437d 0x558B
+0x437e 0x5BF5
+0x4421 0x5E16
+0x4422 0x5E33
+0x4423 0x5E81
+0x4424 0x5F14
+0x4425 0x5F35
+0x4426 0x5F6B
+0x4427 0x5FB4
+0x4428 0x61F2
+0x4429 0x6311
+0x442a 0x66A2
+0x442b 0x671D
+0x442c 0x6F6E
+0x442d 0x7252
+0x442e 0x753A
+0x442f 0x773A
+0x4430 0x8074
+0x4431 0x8139
+0x4432 0x8178
+0x4433 0x8776
+0x4434 0x8ABF
+0x4435 0x8ADC
+0x4436 0x8D85
+0x4437 0x8DF3
+0x4438 0x929A
+0x4439 0x9577
+0x443a 0x9802
+0x443b 0x9CE5
+0x443c 0x52C5
+0x443d 0x6357
+0x443e 0x76F4
+0x443f 0x6715
+0x4440 0x6C88
+0x4441 0x73CD
+0x4442 0x8CC3
+0x4443 0x93AE
+0x4444 0x9673
+0x4445 0x6D25
+0x4446 0x589C
+0x4447 0x690E
+0x4448 0x69CC
+0x4449 0x8FFD
+0x444a 0x939A
+0x444b 0x75DB
+0x444c 0x901A
+0x444d 0x585A
+0x444e 0x6802
+0x444f 0x63B4
+0x4450 0x69FB
+0x4451 0x4F43
+0x4452 0x6F2C
+0x4453 0x67D8
+0x4454 0x8FBB
+0x4455 0x8526
+0x4456 0x7DB4
+0x4457 0x9354
+0x4458 0x693F
+0x4459 0x6F70
+0x445a 0x576A
+0x445b 0x58F7
+0x445c 0x5B2C
+0x445d 0x7D2C
+0x445e 0x722A
+0x445f 0x540A
+0x4460 0x91E3
+0x4461 0x9DB4
+0x4462 0x4EAD
+0x4463 0x4F4E
+0x4464 0x505C
+0x4465 0x5075
+0x4466 0x5243
+0x4467 0x8C9E
+0x4468 0x5448
+0x4469 0x5824
+0x446a 0x5B9A
+0x446b 0x5E1D
+0x446c 0x5E95
+0x446d 0x5EAD
+0x446e 0x5EF7
+0x446f 0x5F1F
+0x4470 0x608C
+0x4471 0x62B5
+0x4472 0x633A
+0x4473 0x63D0
+0x4474 0x68AF
+0x4475 0x6C40
+0x4476 0x7887
+0x4477 0x798E
+0x4478 0x7A0B
+0x4479 0x7DE0
+0x447a 0x8247
+0x447b 0x8A02
+0x447c 0x8AE6
+0x447d 0x8E44
+0x447e 0x9013
+0x4521 0x90B8
+0x4522 0x912D
+0x4523 0x91D8
+0x4524 0x9F0E
+0x4525 0x6CE5
+0x4526 0x6458
+0x4527 0x64E2
+0x4528 0x6575
+0x4529 0x6EF4
+0x452a 0x7684
+0x452b 0x7B1B
+0x452c 0x9069
+0x452d 0x93D1
+0x452e 0x6EBA
+0x452f 0x54F2
+0x4530 0x5FB9
+0x4531 0x64A4
+0x4532 0x8F4D
+0x4533 0x8FED
+0x4534 0x9244
+0x4535 0x5178
+0x4536 0x586B
+0x4537 0x5929
+0x4538 0x5C55
+0x4539 0x5E97
+0x453a 0x6DFB
+0x453b 0x7E8F
+0x453c 0x751C
+0x453d 0x8CBC
+0x453e 0x8EE2
+0x453f 0x985B
+0x4540 0x70B9
+0x4541 0x4F1D
+0x4542 0x6BBF
+0x4543 0x6FB1
+0x4544 0x7530
+0x4545 0x96FB
+0x4546 0x514E
+0x4547 0x5410
+0x4548 0x5835
+0x4549 0x5857
+0x454a 0x59AC
+0x454b 0x5C60
+0x454c 0x5F92
+0x454d 0x6597
+0x454e 0x675C
+0x454f 0x6E21
+0x4550 0x767B
+0x4551 0x83DF
+0x4552 0x8CED
+0x4553 0x9014
+0x4554 0x90FD
+0x4555 0x934D
+0x4556 0x7825
+0x4557 0x783A
+0x4558 0x52AA
+0x4559 0x5EA6
+0x455a 0x571F
+0x455b 0x5974
+0x455c 0x6012
+0x455d 0x5012
+0x455e 0x515A
+0x455f 0x51AC
+0x4560 0x51CD
+0x4561 0x5200
+0x4562 0x5510
+0x4563 0x5854
+0x4564 0x5858
+0x4565 0x5957
+0x4566 0x5B95
+0x4567 0x5CF6
+0x4568 0x5D8B
+0x4569 0x60BC
+0x456a 0x6295
+0x456b 0x642D
+0x456c 0x6771
+0x456d 0x6843
+0x456e 0x68BC
+0x456f 0x68DF
+0x4570 0x76D7
+0x4571 0x6DD8
+0x4572 0x6E6F
+0x4573 0x6D9B
+0x4574 0x706F
+0x4575 0x71C8
+0x4576 0x5F53
+0x4577 0x75D8
+0x4578 0x7977
+0x4579 0x7B49
+0x457a 0x7B54
+0x457b 0x7B52
+0x457c 0x7CD6
+0x457d 0x7D71
+0x457e 0x5230
+0x4621 0x8463
+0x4622 0x8569
+0x4623 0x85E4
+0x4624 0x8A0E
+0x4625 0x8B04
+0x4626 0x8C46
+0x4627 0x8E0F
+0x4628 0x9003
+0x4629 0x900F
+0x462a 0x9419
+0x462b 0x9676
+0x462c 0x982D
+0x462d 0x9A30
+0x462e 0x95D8
+0x462f 0x50CD
+0x4630 0x52D5
+0x4631 0x540C
+0x4632 0x5802
+0x4633 0x5C0E
+0x4634 0x61A7
+0x4635 0x649E
+0x4636 0x6D1E
+0x4637 0x77B3
+0x4638 0x7AE5
+0x4639 0x80F4
+0x463a 0x8404
+0x463b 0x9053
+0x463c 0x9285
+0x463d 0x5CE0
+0x463e 0x9D07
+0x463f 0x533F
+0x4640 0x5F97
+0x4641 0x5FB3
+0x4642 0x6D9C
+0x4643 0x7279
+0x4644 0x7763
+0x4645 0x79BF
+0x4646 0x7BE4
+0x4647 0x6BD2
+0x4648 0x72EC
+0x4649 0x8AAD
+0x464a 0x6803
+0x464b 0x6A61
+0x464c 0x51F8
+0x464d 0x7A81
+0x464e 0x6934
+0x464f 0x5C4A
+0x4650 0x9CF6
+0x4651 0x82EB
+0x4652 0x5BC5
+0x4653 0x9149
+0x4654 0x701E
+0x4655 0x5678
+0x4656 0x5C6F
+0x4657 0x60C7
+0x4658 0x6566
+0x4659 0x6C8C
+0x465a 0x8C5A
+0x465b 0x9041
+0x465c 0x9813
+0x465d 0x5451
+0x465e 0x66C7
+0x465f 0x920D
+0x4660 0x5948
+0x4661 0x90A3
+0x4662 0x5185
+0x4663 0x4E4D
+0x4664 0x51EA
+0x4665 0x8599
+0x4666 0x8B0E
+0x4667 0x7058
+0x4668 0x637A
+0x4669 0x934B
+0x466a 0x6962
+0x466b 0x99B4
+0x466c 0x7E04
+0x466d 0x7577
+0x466e 0x5357
+0x466f 0x6960
+0x4670 0x8EDF
+0x4671 0x96E3
+0x4672 0x6C5D
+0x4673 0x4E8C
+0x4674 0x5C3C
+0x4675 0x5F10
+0x4676 0x8FE9
+0x4677 0x5302
+0x4678 0x8CD1
+0x4679 0x8089
+0x467a 0x8679
+0x467b 0x5EFF
+0x467c 0x65E5
+0x467d 0x4E73
+0x467e 0x5165
+0x4721 0x5982
+0x4722 0x5C3F
+0x4723 0x97EE
+0x4724 0x4EFB
+0x4725 0x598A
+0x4726 0x5FCD
+0x4727 0x8A8D
+0x4728 0x6FE1
+0x4729 0x79B0
+0x472a 0x7962
+0x472b 0x5BE7
+0x472c 0x8471
+0x472d 0x732B
+0x472e 0x71B1
+0x472f 0x5E74
+0x4730 0x5FF5
+0x4731 0x637B
+0x4732 0x649A
+0x4733 0x71C3
+0x4734 0x7C98
+0x4735 0x4E43
+0x4736 0x5EFC
+0x4737 0x4E4B
+0x4738 0x57DC
+0x4739 0x56A2
+0x473a 0x60A9
+0x473b 0x6FC3
+0x473c 0x7D0D
+0x473d 0x80FD
+0x473e 0x8133
+0x473f 0x81BF
+0x4740 0x8FB2
+0x4741 0x8997
+0x4742 0x86A4
+0x4743 0x5DF4
+0x4744 0x628A
+0x4745 0x64AD
+0x4746 0x8987
+0x4747 0x6777
+0x4748 0x6CE2
+0x4749 0x6D3E
+0x474a 0x7436
+0x474b 0x7834
+0x474c 0x5A46
+0x474d 0x7F75
+0x474e 0x82AD
+0x474f 0x99AC
+0x4750 0x4FF3
+0x4751 0x5EC3
+0x4752 0x62DD
+0x4753 0x6392
+0x4754 0x6557
+0x4755 0x676F
+0x4756 0x76C3
+0x4757 0x724C
+0x4758 0x80CC
+0x4759 0x80BA
+0x475a 0x8F29
+0x475b 0x914D
+0x475c 0x500D
+0x475d 0x57F9
+0x475e 0x5A92
+0x475f 0x6885
+0x4760 0x6973
+0x4761 0x7164
+0x4762 0x72FD
+0x4763 0x8CB7
+0x4764 0x58F2
+0x4765 0x8CE0
+0x4766 0x966A
+0x4767 0x9019
+0x4768 0x877F
+0x4769 0x79E4
+0x476a 0x77E7
+0x476b 0x8429
+0x476c 0x4F2F
+0x476d 0x5265
+0x476e 0x535A
+0x476f 0x62CD
+0x4770 0x67CF
+0x4771 0x6CCA
+0x4772 0x767D
+0x4773 0x7B94
+0x4774 0x7C95
+0x4775 0x8236
+0x4776 0x8584
+0x4777 0x8FEB
+0x4778 0x66DD
+0x4779 0x6F20
+0x477a 0x7206
+0x477b 0x7E1B
+0x477c 0x83AB
+0x477d 0x99C1
+0x477e 0x9EA6
+0x4821 0x51FD
+0x4822 0x7BB1
+0x4823 0x7872
+0x4824 0x7BB8
+0x4825 0x8087
+0x4826 0x7B48
+0x4827 0x6AE8
+0x4828 0x5E61
+0x4829 0x808C
+0x482a 0x7551
+0x482b 0x7560
+0x482c 0x516B
+0x482d 0x9262
+0x482e 0x6E8C
+0x482f 0x767A
+0x4830 0x9197
+0x4831 0x9AEA
+0x4832 0x4F10
+0x4833 0x7F70
+0x4834 0x629C
+0x4835 0x7B4F
+0x4836 0x95A5
+0x4837 0x9CE9
+0x4838 0x567A
+0x4839 0x5859
+0x483a 0x86E4
+0x483b 0x96BC
+0x483c 0x4F34
+0x483d 0x5224
+0x483e 0x534A
+0x483f 0x53CD
+0x4840 0x53DB
+0x4841 0x5E06
+0x4842 0x642C
+0x4843 0x6591
+0x4844 0x677F
+0x4845 0x6C3E
+0x4846 0x6C4E
+0x4847 0x7248
+0x4848 0x72AF
+0x4849 0x73ED
+0x484a 0x7554
+0x484b 0x7E41
+0x484c 0x822C
+0x484d 0x85E9
+0x484e 0x8CA9
+0x484f 0x7BC4
+0x4850 0x91C6
+0x4851 0x7169
+0x4852 0x9812
+0x4853 0x98EF
+0x4854 0x633D
+0x4855 0x6669
+0x4856 0x756A
+0x4857 0x76E4
+0x4858 0x78D0
+0x4859 0x8543
+0x485a 0x86EE
+0x485b 0x532A
+0x485c 0x5351
+0x485d 0x5426
+0x485e 0x5983
+0x485f 0x5E87
+0x4860 0x5F7C
+0x4861 0x60B2
+0x4862 0x6249
+0x4863 0x6279
+0x4864 0x62AB
+0x4865 0x6590
+0x4866 0x6BD4
+0x4867 0x6CCC
+0x4868 0x75B2
+0x4869 0x76AE
+0x486a 0x7891
+0x486b 0x79D8
+0x486c 0x7DCB
+0x486d 0x7F77
+0x486e 0x80A5
+0x486f 0x88AB
+0x4870 0x8AB9
+0x4871 0x8CBB
+0x4872 0x907F
+0x4873 0x975E
+0x4874 0x98DB
+0x4875 0x6A0B
+0x4876 0x7C38
+0x4877 0x5099
+0x4878 0x5C3E
+0x4879 0x5FAE
+0x487a 0x6787
+0x487b 0x6BD8
+0x487c 0x7435
+0x487d 0x7709
+0x487e 0x7F8E
+0x4921 0x9F3B
+0x4922 0x67CA
+0x4923 0x7A17
+0x4924 0x5339
+0x4925 0x758B
+0x4926 0x9AED
+0x4927 0x5F66
+0x4928 0x819D
+0x4929 0x83F1
+0x492a 0x8098
+0x492b 0x5F3C
+0x492c 0x5FC5
+0x492d 0x7562
+0x492e 0x7B46
+0x492f 0x903C
+0x4930 0x6867
+0x4931 0x59EB
+0x4932 0x5A9B
+0x4933 0x7D10
+0x4934 0x767E
+0x4935 0x8B2C
+0x4936 0x4FF5
+0x4937 0x5F6A
+0x4938 0x6A19
+0x4939 0x6C37
+0x493a 0x6F02
+0x493b 0x74E2
+0x493c 0x7968
+0x493d 0x8868
+0x493e 0x8A55
+0x493f 0x8C79
+0x4940 0x5EDF
+0x4941 0x63CF
+0x4942 0x75C5
+0x4943 0x79D2
+0x4944 0x82D7
+0x4945 0x9328
+0x4946 0x92F2
+0x4947 0x849C
+0x4948 0x86ED
+0x4949 0x9C2D
+0x494a 0x54C1
+0x494b 0x5F6C
+0x494c 0x658C
+0x494d 0x6D5C
+0x494e 0x7015
+0x494f 0x8CA7
+0x4950 0x8CD3
+0x4951 0x983B
+0x4952 0x654F
+0x4953 0x74F6
+0x4954 0x4E0D
+0x4955 0x4ED8
+0x4956 0x57E0
+0x4957 0x592B
+0x4958 0x5A66
+0x4959 0x5BCC
+0x495a 0x51A8
+0x495b 0x5E03
+0x495c 0x5E9C
+0x495d 0x6016
+0x495e 0x6276
+0x495f 0x6577
+0x4960 0x65A7
+0x4961 0x666E
+0x4962 0x6D6E
+0x4963 0x7236
+0x4964 0x7B26
+0x4965 0x8150
+0x4966 0x819A
+0x4967 0x8299
+0x4968 0x8B5C
+0x4969 0x8CA0
+0x496a 0x8CE6
+0x496b 0x8D74
+0x496c 0x961C
+0x496d 0x9644
+0x496e 0x4FAE
+0x496f 0x64AB
+0x4970 0x6B66
+0x4971 0x821E
+0x4972 0x8461
+0x4973 0x856A
+0x4974 0x90E8
+0x4975 0x5C01
+0x4976 0x6953
+0x4977 0x98A8
+0x4978 0x847A
+0x4979 0x8557
+0x497a 0x4F0F
+0x497b 0x526F
+0x497c 0x5FA9
+0x497d 0x5E45
+0x497e 0x670D
+0x4a21 0x798F
+0x4a22 0x8179
+0x4a23 0x8907
+0x4a24 0x8986
+0x4a25 0x6DF5
+0x4a26 0x5F17
+0x4a27 0x6255
+0x4a28 0x6CB8
+0x4a29 0x4ECF
+0x4a2a 0x7269
+0x4a2b 0x9B92
+0x4a2c 0x5206
+0x4a2d 0x543B
+0x4a2e 0x5674
+0x4a2f 0x58B3
+0x4a30 0x61A4
+0x4a31 0x626E
+0x4a32 0x711A
+0x4a33 0x596E
+0x4a34 0x7C89
+0x4a35 0x7CDE
+0x4a36 0x7D1B
+0x4a37 0x96F0
+0x4a38 0x6587
+0x4a39 0x805E
+0x4a3a 0x4E19
+0x4a3b 0x4F75
+0x4a3c 0x5175
+0x4a3d 0x5840
+0x4a3e 0x5E63
+0x4a3f 0x5E73
+0x4a40 0x5F0A
+0x4a41 0x67C4
+0x4a42 0x4E26
+0x4a43 0x853D
+0x4a44 0x9589
+0x4a45 0x965B
+0x4a46 0x7C73
+0x4a47 0x9801
+0x4a48 0x50FB
+0x4a49 0x58C1
+0x4a4a 0x7656
+0x4a4b 0x78A7
+0x4a4c 0x5225
+0x4a4d 0x77A5
+0x4a4e 0x8511
+0x4a4f 0x7B86
+0x4a50 0x504F
+0x4a51 0x5909
+0x4a52 0x7247
+0x4a53 0x7BC7
+0x4a54 0x7DE8
+0x4a55 0x8FBA
+0x4a56 0x8FD4
+0x4a57 0x904D
+0x4a58 0x4FBF
+0x4a59 0x52C9
+0x4a5a 0x5A29
+0x4a5b 0x5F01
+0x4a5c 0x97AD
+0x4a5d 0x4FDD
+0x4a5e 0x8217
+0x4a5f 0x92EA
+0x4a60 0x5703
+0x4a61 0x6355
+0x4a62 0x6B69
+0x4a63 0x752B
+0x4a64 0x88DC
+0x4a65 0x8F14
+0x4a66 0x7A42
+0x4a67 0x52DF
+0x4a68 0x5893
+0x4a69 0x6155
+0x4a6a 0x620A
+0x4a6b 0x66AE
+0x4a6c 0x6BCD
+0x4a6d 0x7C3F
+0x4a6e 0x83E9
+0x4a6f 0x5023
+0x4a70 0x4FF8
+0x4a71 0x5305
+0x4a72 0x5446
+0x4a73 0x5831
+0x4a74 0x5949
+0x4a75 0x5B9D
+0x4a76 0x5CF0
+0x4a77 0x5CEF
+0x4a78 0x5D29
+0x4a79 0x5E96
+0x4a7a 0x62B1
+0x4a7b 0x6367
+0x4a7c 0x653E
+0x4a7d 0x65B9
+0x4a7e 0x670B
+0x4b21 0x6CD5
+0x4b22 0x6CE1
+0x4b23 0x70F9
+0x4b24 0x7832
+0x4b25 0x7E2B
+0x4b26 0x80DE
+0x4b27 0x82B3
+0x4b28 0x840C
+0x4b29 0x84EC
+0x4b2a 0x8702
+0x4b2b 0x8912
+0x4b2c 0x8A2A
+0x4b2d 0x8C4A
+0x4b2e 0x90A6
+0x4b2f 0x92D2
+0x4b30 0x98FD
+0x4b31 0x9CF3
+0x4b32 0x9D6C
+0x4b33 0x4E4F
+0x4b34 0x4EA1
+0x4b35 0x508D
+0x4b36 0x5256
+0x4b37 0x574A
+0x4b38 0x59A8
+0x4b39 0x5E3D
+0x4b3a 0x5FD8
+0x4b3b 0x5FD9
+0x4b3c 0x623F
+0x4b3d 0x66B4
+0x4b3e 0x671B
+0x4b3f 0x67D0
+0x4b40 0x68D2
+0x4b41 0x5192
+0x4b42 0x7D21
+0x4b43 0x80AA
+0x4b44 0x81A8
+0x4b45 0x8B00
+0x4b46 0x8C8C
+0x4b47 0x8CBF
+0x4b48 0x927E
+0x4b49 0x9632
+0x4b4a 0x5420
+0x4b4b 0x982C
+0x4b4c 0x5317
+0x4b4d 0x50D5
+0x4b4e 0x535C
+0x4b4f 0x58A8
+0x4b50 0x64B2
+0x4b51 0x6734
+0x4b52 0x7267
+0x4b53 0x7766
+0x4b54 0x7A46
+0x4b55 0x91E6
+0x4b56 0x52C3
+0x4b57 0x6CA1
+0x4b58 0x6B86
+0x4b59 0x5800
+0x4b5a 0x5E4C
+0x4b5b 0x5954
+0x4b5c 0x672C
+0x4b5d 0x7FFB
+0x4b5e 0x51E1
+0x4b5f 0x76C6
+0x4b60 0x6469
+0x4b61 0x78E8
+0x4b62 0x9B54
+0x4b63 0x9EBB
+0x4b64 0x57CB
+0x4b65 0x59B9
+0x4b66 0x6627
+0x4b67 0x679A
+0x4b68 0x6BCE
+0x4b69 0x54E9
+0x4b6a 0x69D9
+0x4b6b 0x5E55
+0x4b6c 0x819C
+0x4b6d 0x6795
+0x4b6e 0x9BAA
+0x4b6f 0x67FE
+0x4b70 0x9C52
+0x4b71 0x685D
+0x4b72 0x4EA6
+0x4b73 0x4FE3
+0x4b74 0x53C8
+0x4b75 0x62B9
+0x4b76 0x672B
+0x4b77 0x6CAB
+0x4b78 0x8FC4
+0x4b79 0x4FAD
+0x4b7a 0x7E6D
+0x4b7b 0x9EBF
+0x4b7c 0x4E07
+0x4b7d 0x6162
+0x4b7e 0x6E80
+0x4c21 0x6F2B
+0x4c22 0x8513
+0x4c23 0x5473
+0x4c24 0x672A
+0x4c25 0x9B45
+0x4c26 0x5DF3
+0x4c27 0x7B95
+0x4c28 0x5CAC
+0x4c29 0x5BC6
+0x4c2a 0x871C
+0x4c2b 0x6E4A
+0x4c2c 0x84D1
+0x4c2d 0x7A14
+0x4c2e 0x8108
+0x4c2f 0x5999
+0x4c30 0x7C8D
+0x4c31 0x6C11
+0x4c32 0x7720
+0x4c33 0x52D9
+0x4c34 0x5922
+0x4c35 0x7121
+0x4c36 0x725F
+0x4c37 0x77DB
+0x4c38 0x9727
+0x4c39 0x9D61
+0x4c3a 0x690B
+0x4c3b 0x5A7F
+0x4c3c 0x5A18
+0x4c3d 0x51A5
+0x4c3e 0x540D
+0x4c3f 0x547D
+0x4c40 0x660E
+0x4c41 0x76DF
+0x4c42 0x8FF7
+0x4c43 0x9298
+0x4c44 0x9CF4
+0x4c45 0x59EA
+0x4c46 0x725D
+0x4c47 0x6EC5
+0x4c48 0x514D
+0x4c49 0x68C9
+0x4c4a 0x7DBF
+0x4c4b 0x7DEC
+0x4c4c 0x9762
+0x4c4d 0x9EBA
+0x4c4e 0x6478
+0x4c4f 0x6A21
+0x4c50 0x8302
+0x4c51 0x5984
+0x4c52 0x5B5F
+0x4c53 0x6BDB
+0x4c54 0x731B
+0x4c55 0x76F2
+0x4c56 0x7DB2
+0x4c57 0x8017
+0x4c58 0x8499
+0x4c59 0x5132
+0x4c5a 0x6728
+0x4c5b 0x9ED9
+0x4c5c 0x76EE
+0x4c5d 0x6762
+0x4c5e 0x52FF
+0x4c5f 0x9905
+0x4c60 0x5C24
+0x4c61 0x623B
+0x4c62 0x7C7E
+0x4c63 0x8CB0
+0x4c64 0x554F
+0x4c65 0x60B6
+0x4c66 0x7D0B
+0x4c67 0x9580
+0x4c68 0x5301
+0x4c69 0x4E5F
+0x4c6a 0x51B6
+0x4c6b 0x591C
+0x4c6c 0x723A
+0x4c6d 0x8036
+0x4c6e 0x91CE
+0x4c6f 0x5F25
+0x4c70 0x77E2
+0x4c71 0x5384
+0x4c72 0x5F79
+0x4c73 0x7D04
+0x4c74 0x85AC
+0x4c75 0x8A33
+0x4c76 0x8E8D
+0x4c77 0x9756
+0x4c78 0x67F3
+0x4c79 0x85AE
+0x4c7a 0x9453
+0x4c7b 0x6109
+0x4c7c 0x6108
+0x4c7d 0x6CB9
+0x4c7e 0x7652
+0x4d21 0x8AED
+0x4d22 0x8F38
+0x4d23 0x552F
+0x4d24 0x4F51
+0x4d25 0x512A
+0x4d26 0x52C7
+0x4d27 0x53CB
+0x4d28 0x5BA5
+0x4d29 0x5E7D
+0x4d2a 0x60A0
+0x4d2b 0x6182
+0x4d2c 0x63D6
+0x4d2d 0x6709
+0x4d2e 0x67DA
+0x4d2f 0x6E67
+0x4d30 0x6D8C
+0x4d31 0x7336
+0x4d32 0x7337
+0x4d33 0x7531
+0x4d34 0x7950
+0x4d35 0x88D5
+0x4d36 0x8A98
+0x4d37 0x904A
+0x4d38 0x9091
+0x4d39 0x90F5
+0x4d3a 0x96C4
+0x4d3b 0x878D
+0x4d3c 0x5915
+0x4d3d 0x4E88
+0x4d3e 0x4F59
+0x4d3f 0x4E0E
+0x4d40 0x8A89
+0x4d41 0x8F3F
+0x4d42 0x9810
+0x4d43 0x50AD
+0x4d44 0x5E7C
+0x4d45 0x5996
+0x4d46 0x5BB9
+0x4d47 0x5EB8
+0x4d48 0x63DA
+0x4d49 0x63FA
+0x4d4a 0x64C1
+0x4d4b 0x66DC
+0x4d4c 0x694A
+0x4d4d 0x69D8
+0x4d4e 0x6D0B
+0x4d4f 0x6EB6
+0x4d50 0x7194
+0x4d51 0x7528
+0x4d52 0x7AAF
+0x4d53 0x7F8A
+0x4d54 0x8000
+0x4d55 0x8449
+0x4d56 0x84C9
+0x4d57 0x8981
+0x4d58 0x8B21
+0x4d59 0x8E0A
+0x4d5a 0x9065
+0x4d5b 0x967D
+0x4d5c 0x990A
+0x4d5d 0x617E
+0x4d5e 0x6291
+0x4d5f 0x6B32
+0x4d60 0x6C83
+0x4d61 0x6D74
+0x4d62 0x7FCC
+0x4d63 0x7FFC
+0x4d64 0x6DC0
+0x4d65 0x7F85
+0x4d66 0x87BA
+0x4d67 0x88F8
+0x4d68 0x6765
+0x4d69 0x83B1
+0x4d6a 0x983C
+0x4d6b 0x96F7
+0x4d6c 0x6D1B
+0x4d6d 0x7D61
+0x4d6e 0x843D
+0x4d6f 0x916A
+0x4d70 0x4E71
+0x4d71 0x5375
+0x4d72 0x5D50
+0x4d73 0x6B04
+0x4d74 0x6FEB
+0x4d75 0x85CD
+0x4d76 0x862D
+0x4d77 0x89A7
+0x4d78 0x5229
+0x4d79 0x540F
+0x4d7a 0x5C65
+0x4d7b 0x674E
+0x4d7c 0x68A8
+0x4d7d 0x7406
+0x4d7e 0x7483
+0x4e21 0x75E2
+0x4e22 0x88CF
+0x4e23 0x88E1
+0x4e24 0x91CC
+0x4e25 0x96E2
+0x4e26 0x9678
+0x4e27 0x5F8B
+0x4e28 0x7387
+0x4e29 0x7ACB
+0x4e2a 0x844E
+0x4e2b 0x63A0
+0x4e2c 0x7565
+0x4e2d 0x5289
+0x4e2e 0x6D41
+0x4e2f 0x6E9C
+0x4e30 0x7409
+0x4e31 0x7559
+0x4e32 0x786B
+0x4e33 0x7C92
+0x4e34 0x9686
+0x4e35 0x7ADC
+0x4e36 0x9F8D
+0x4e37 0x4FB6
+0x4e38 0x616E
+0x4e39 0x65C5
+0x4e3a 0x865C
+0x4e3b 0x4E86
+0x4e3c 0x4EAE
+0x4e3d 0x50DA
+0x4e3e 0x4E21
+0x4e3f 0x51CC
+0x4e40 0x5BEE
+0x4e41 0x6599
+0x4e42 0x6881
+0x4e43 0x6DBC
+0x4e44 0x731F
+0x4e45 0x7642
+0x4e46 0x77AD
+0x4e47 0x7A1C
+0x4e48 0x7CE7
+0x4e49 0x826F
+0x4e4a 0x8AD2
+0x4e4b 0x907C
+0x4e4c 0x91CF
+0x4e4d 0x9675
+0x4e4e 0x9818
+0x4e4f 0x529B
+0x4e50 0x7DD1
+0x4e51 0x502B
+0x4e52 0x5398
+0x4e53 0x6797
+0x4e54 0x6DCB
+0x4e55 0x71D0
+0x4e56 0x7433
+0x4e57 0x81E8
+0x4e58 0x8F2A
+0x4e59 0x96A3
+0x4e5a 0x9C57
+0x4e5b 0x9E9F
+0x4e5c 0x7460
+0x4e5d 0x5841
+0x4e5e 0x6D99
+0x4e5f 0x7D2F
+0x4e60 0x985E
+0x4e61 0x4EE4
+0x4e62 0x4F36
+0x4e63 0x4F8B
+0x4e64 0x51B7
+0x4e65 0x52B1
+0x4e66 0x5DBA
+0x4e67 0x601C
+0x4e68 0x73B2
+0x4e69 0x793C
+0x4e6a 0x82D3
+0x4e6b 0x9234
+0x4e6c 0x96B7
+0x4e6d 0x96F6
+0x4e6e 0x970A
+0x4e6f 0x9E97
+0x4e70 0x9F62
+0x4e71 0x66A6
+0x4e72 0x6B74
+0x4e73 0x5217
+0x4e74 0x52A3
+0x4e75 0x70C8
+0x4e76 0x88C2
+0x4e77 0x5EC9
+0x4e78 0x604B
+0x4e79 0x6190
+0x4e7a 0x6F23
+0x4e7b 0x7149
+0x4e7c 0x7C3E
+0x4e7d 0x7DF4
+0x4e7e 0x806F
+0x4f21 0x84EE
+0x4f22 0x9023
+0x4f23 0x932C
+0x4f24 0x5442
+0x4f25 0x9B6F
+0x4f26 0x6AD3
+0x4f27 0x7089
+0x4f28 0x8CC2
+0x4f29 0x8DEF
+0x4f2a 0x9732
+0x4f2b 0x52B4
+0x4f2c 0x5A41
+0x4f2d 0x5ECA
+0x4f2e 0x5F04
+0x4f2f 0x6717
+0x4f30 0x697C
+0x4f31 0x6994
+0x4f32 0x6D6A
+0x4f33 0x6F0F
+0x4f34 0x7262
+0x4f35 0x72FC
+0x4f36 0x7BED
+0x4f37 0x8001
+0x4f38 0x807E
+0x4f39 0x874B
+0x4f3a 0x90CE
+0x4f3b 0x516D
+0x4f3c 0x9E93
+0x4f3d 0x7984
+0x4f3e 0x808B
+0x4f3f 0x9332
+0x4f40 0x8AD6
+0x4f41 0x502D
+0x4f42 0x548C
+0x4f43 0x8A71
+0x4f44 0x6B6A
+0x4f45 0x8CC4
+0x4f46 0x8107
+0x4f47 0x60D1
+0x4f48 0x67A0
+0x4f49 0x9DF2
+0x4f4a 0x4E99
+0x4f4b 0x4E98
+0x4f4c 0x9C10
+0x4f4d 0x8A6B
+0x4f4e 0x85C1
+0x4f4f 0x8568
+0x4f50 0x6900
+0x4f51 0x6E7E
+0x4f52 0x7897
+0x4f53 0x8155
+0x4f55 0x5B41
+0x4f56 0x5B56
+0x4f57 0x5B7D
+0x4f58 0x5B93
+0x4f59 0x5BD8
+0x4f5a 0x5BEC
+0x4f5b 0x5C12
+0x4f5c 0x5C1E
+0x4f5d 0x5C23
+0x4f5e 0x5C2B
+0x4f5f 0x378D
+0x4f60 0x5C62
+0x4f61 0xFA3B
+0x4f62 0xFA3C
+0x4f63 0x000216B4
+0x4f64 0x5C7A
+0x4f65 0x5C8F
+0x4f66 0x5C9F
+0x4f67 0x5CA3
+0x4f68 0x5CAA
+0x4f69 0x5CBA
+0x4f6a 0x5CCB
+0x4f6b 0x5CD0
+0x4f6c 0x5CD2
+0x4f6d 0x5CF4
+0x4f6e 0x00021E34
+0x4f6f 0x37E2
+0x4f70 0x5D0D
+0x4f71 0x5D27
+0x4f72 0xFA11
+0x4f73 0x5D46
+0x4f74 0x5D47
+0x4f75 0x5D53
+0x4f76 0x5D4A
+0x4f77 0x5D6D
+0x4f78 0x5D81
+0x4f79 0x5DA0
+0x4f7a 0x5DA4
+0x4f7b 0x5DA7
+0x4f7c 0x5DB8
+0x4f7d 0x5DCB
+0x5021 0x5F0C
+0x5022 0x4E10
+0x5023 0x4E15
+0x5024 0x4E2A
+0x5025 0x4E31
+0x5026 0x4E36
+0x5027 0x4E3C
+0x5028 0x4E3F
+0x5029 0x4E42
+0x502a 0x4E56
+0x502b 0x4E58
+0x502c 0x4E82
+0x502d 0x4E85
+0x502e 0x8C6B
+0x502f 0x4E8A
+0x5030 0x8212
+0x5031 0x5F0D
+0x5032 0x4E8E
+0x5033 0x4E9E
+0x5034 0x4E9F
+0x5035 0x4EA0
+0x5036 0x4EA2
+0x5037 0x4EB0
+0x5038 0x4EB3
+0x5039 0x4EB6
+0x503a 0x4ECE
+0x503b 0x4ECD
+0x503c 0x4EC4
+0x503d 0x4EC6
+0x503e 0x4EC2
+0x503f 0x4ED7
+0x5040 0x4EDE
+0x5041 0x4EED
+0x5042 0x4EDF
+0x5043 0x4EF7
+0x5044 0x4F09
+0x5045 0x4F5A
+0x5046 0x4F30
+0x5047 0x4F5B
+0x5048 0x4F5D
+0x5049 0x4F57
+0x504a 0x4F47
+0x504b 0x4F76
+0x504c 0x4F88
+0x504d 0x4F8F
+0x504e 0x4F98
+0x504f 0x4F7B
+0x5050 0x4F69
+0x5051 0x4F70
+0x5052 0x4F91
+0x5053 0x4F6F
+0x5054 0x4F86
+0x5055 0x4F96
+0x5056 0x5118
+0x5057 0x4FD4
+0x5058 0x4FDF
+0x5059 0x4FCE
+0x505a 0x4FD8
+0x505b 0x4FDB
+0x505c 0x4FD1
+0x505d 0x4FDA
+0x505e 0x4FD0
+0x505f 0x4FE4
+0x5060 0x4FE5
+0x5061 0x501A
+0x5062 0x5028
+0x5063 0x5014
+0x5064 0x502A
+0x5065 0x5025
+0x5066 0x5005
+0x5067 0x4F1C
+0x5068 0x4FF6
+0x5069 0x5021
+0x506a 0x5029
+0x506b 0x502C
+0x506c 0x4FFE
+0x506d 0x4FEF
+0x506e 0x5011
+0x506f 0x5006
+0x5070 0x5043
+0x5071 0x5047
+0x5072 0x6703
+0x5073 0x5055
+0x5074 0x5050
+0x5075 0x5048
+0x5076 0x505A
+0x5077 0x5056
+0x5078 0x506C
+0x5079 0x5078
+0x507a 0x5080
+0x507b 0x509A
+0x507c 0x5085
+0x507d 0x50B4
+0x507e 0x50B2
+0x5121 0x50C9
+0x5122 0x50CA
+0x5123 0x50B3
+0x5124 0x50C2
+0x5125 0x50D6
+0x5126 0x50DE
+0x5127 0x50E5
+0x5128 0x50ED
+0x5129 0x50E3
+0x512a 0x50EE
+0x512b 0x50F9
+0x512c 0x50F5
+0x512d 0x5109
+0x512e 0x5101
+0x512f 0x5102
+0x5130 0x5116
+0x5131 0x5115
+0x5132 0x5114
+0x5133 0x511A
+0x5134 0x5121
+0x5135 0x513A
+0x5136 0x5137
+0x5137 0x513C
+0x5138 0x513B
+0x5139 0x513F
+0x513a 0x5140
+0x513b 0x5152
+0x513c 0x514C
+0x513d 0x5154
+0x513e 0x5162
+0x513f 0x7AF8
+0x5140 0x5169
+0x5141 0x516A
+0x5142 0x516E
+0x5143 0x5180
+0x5144 0x5182
+0x5145 0x56D8
+0x5146 0x518C
+0x5147 0x5189
+0x5148 0x518F
+0x5149 0x5191
+0x514a 0x5193
+0x514b 0x5195
+0x514c 0x5196
+0x514d 0x51A4
+0x514e 0x51A6
+0x514f 0x51A2
+0x5150 0x51A9
+0x5151 0x51AA
+0x5152 0x51AB
+0x5153 0x51B3
+0x5154 0x51B1
+0x5155 0x51B2
+0x5156 0x51B0
+0x5157 0x51B5
+0x5158 0x51BD
+0x5159 0x51C5
+0x515a 0x51C9
+0x515b 0x51DB
+0x515c 0x51E0
+0x515d 0x8655
+0x515e 0x51E9
+0x515f 0x51ED
+0x5160 0x51F0
+0x5161 0x51F5
+0x5162 0x51FE
+0x5163 0x5204
+0x5164 0x520B
+0x5165 0x5214
+0x5166 0x520E
+0x5167 0x5227
+0x5168 0x522A
+0x5169 0x522E
+0x516a 0x5233
+0x516b 0x5239
+0x516c 0x524F
+0x516d 0x5244
+0x516e 0x524B
+0x516f 0x524C
+0x5170 0x525E
+0x5171 0x5254
+0x5172 0x526A
+0x5173 0x5274
+0x5174 0x5269
+0x5175 0x5273
+0x5176 0x527F
+0x5177 0x527D
+0x5178 0x528D
+0x5179 0x5294
+0x517a 0x5292
+0x517b 0x5271
+0x517c 0x5288
+0x517d 0x5291
+0x517e 0x8FA8
+0x5221 0x8FA7
+0x5222 0x52AC
+0x5223 0x52AD
+0x5224 0x52BC
+0x5225 0x52B5
+0x5226 0x52C1
+0x5227 0x52CD
+0x5228 0x52D7
+0x5229 0x52DE
+0x522a 0x52E3
+0x522b 0x52E6
+0x522c 0x98ED
+0x522d 0x52E0
+0x522e 0x52F3
+0x522f 0x52F5
+0x5230 0x52F8
+0x5231 0x52F9
+0x5232 0x5306
+0x5233 0x5308
+0x5234 0x7538
+0x5235 0x530D
+0x5236 0x5310
+0x5237 0x530F
+0x5238 0x5315
+0x5239 0x531A
+0x523a 0x5323
+0x523b 0x532F
+0x523c 0x5331
+0x523d 0x5333
+0x523e 0x5338
+0x523f 0x5340
+0x5240 0x5346
+0x5241 0x5345
+0x5242 0x4E17
+0x5243 0x5349
+0x5244 0x534D
+0x5245 0x51D6
+0x5246 0x535E
+0x5247 0x5369
+0x5248 0x536E
+0x5249 0x5918
+0x524a 0x537B
+0x524b 0x5377
+0x524c 0x5382
+0x524d 0x5396
+0x524e 0x53A0
+0x524f 0x53A6
+0x5250 0x53A5
+0x5251 0x53AE
+0x5252 0x53B0
+0x5253 0x53B6
+0x5254 0x53C3
+0x5255 0x7C12
+0x5256 0x96D9
+0x5257 0x53DF
+0x5258 0x66FC
+0x5259 0x71EE
+0x525a 0x53EE
+0x525b 0x53E8
+0x525c 0x53ED
+0x525d 0x53FA
+0x525e 0x5401
+0x525f 0x543D
+0x5260 0x5440
+0x5261 0x542C
+0x5262 0x542D
+0x5263 0x543C
+0x5264 0x542E
+0x5265 0x5436
+0x5266 0x5429
+0x5267 0x541D
+0x5268 0x544E
+0x5269 0x548F
+0x526a 0x5475
+0x526b 0x548E
+0x526c 0x545F
+0x526d 0x5471
+0x526e 0x5477
+0x526f 0x5470
+0x5270 0x5492
+0x5271 0x547B
+0x5272 0x5480
+0x5273 0x5476
+0x5274 0x5484
+0x5275 0x5490
+0x5276 0x5486
+0x5277 0x54C7
+0x5278 0x54A2
+0x5279 0x54B8
+0x527a 0x54A5
+0x527b 0x54AC
+0x527c 0x54C4
+0x527d 0x54C8
+0x527e 0x54A8
+0x5321 0x54AB
+0x5322 0x54C2
+0x5323 0x54A4
+0x5324 0x54BE
+0x5325 0x54BC
+0x5326 0x54D8
+0x5327 0x54E5
+0x5328 0x54E6
+0x5329 0x550F
+0x532a 0x5514
+0x532b 0x54FD
+0x532c 0x54EE
+0x532d 0x54ED
+0x532e 0x54FA
+0x532f 0x54E2
+0x5330 0x5539
+0x5331 0x5540
+0x5332 0x5563
+0x5333 0x554C
+0x5334 0x552E
+0x5335 0x555C
+0x5336 0x5545
+0x5337 0x5556
+0x5338 0x5557
+0x5339 0x5538
+0x533a 0x5533
+0x533b 0x555D
+0x533c 0x5599
+0x533d 0x5580
+0x533e 0x54AF
+0x533f 0x558A
+0x5340 0x559F
+0x5341 0x557B
+0x5342 0x557E
+0x5343 0x5598
+0x5344 0x559E
+0x5345 0x55AE
+0x5346 0x557C
+0x5347 0x5583
+0x5348 0x55A9
+0x5349 0x5587
+0x534a 0x55A8
+0x534b 0x55DA
+0x534c 0x55C5
+0x534d 0x55DF
+0x534e 0x55C4
+0x534f 0x55DC
+0x5350 0x55E4
+0x5351 0x55D4
+0x5352 0x5614
+0x5353 0x55F7
+0x5354 0x5616
+0x5355 0x55FE
+0x5356 0x55FD
+0x5357 0x561B
+0x5358 0x55F9
+0x5359 0x564E
+0x535a 0x5650
+0x535b 0x71DF
+0x535c 0x5634
+0x535d 0x5636
+0x535e 0x5632
+0x535f 0x5638
+0x5360 0x566B
+0x5361 0x5664
+0x5362 0x562F
+0x5363 0x566C
+0x5364 0x566A
+0x5365 0x5686
+0x5366 0x5680
+0x5367 0x568A
+0x5368 0x56A0
+0x5369 0x5694
+0x536a 0x568F
+0x536b 0x56A5
+0x536c 0x56AE
+0x536d 0x56B6
+0x536e 0x56B4
+0x536f 0x56C2
+0x5370 0x56BC
+0x5371 0x56C1
+0x5372 0x56C3
+0x5373 0x56C0
+0x5374 0x56C8
+0x5375 0x56CE
+0x5376 0x56D1
+0x5377 0x56D3
+0x5378 0x56D7
+0x5379 0x56EE
+0x537a 0x56F9
+0x537b 0x5700
+0x537c 0x56FF
+0x537d 0x5704
+0x537e 0x5709
+0x5421 0x5708
+0x5422 0x570B
+0x5423 0x570D
+0x5424 0x5713
+0x5425 0x5718
+0x5426 0x5716
+0x5427 0x55C7
+0x5428 0x571C
+0x5429 0x5726
+0x542a 0x5737
+0x542b 0x5738
+0x542c 0x574E
+0x542d 0x573B
+0x542e 0x5740
+0x542f 0x574F
+0x5430 0x5769
+0x5431 0x57C0
+0x5432 0x5788
+0x5433 0x5761
+0x5434 0x577F
+0x5435 0x5789
+0x5436 0x5793
+0x5437 0x57A0
+0x5438 0x57B3
+0x5439 0x57A4
+0x543a 0x57AA
+0x543b 0x57B0
+0x543c 0x57C3
+0x543d 0x57C6
+0x543e 0x57D4
+0x543f 0x57D2
+0x5440 0x57D3
+0x5441 0x580A
+0x5442 0x57D6
+0x5443 0x57E3
+0x5444 0x580B
+0x5445 0x5819
+0x5446 0x581D
+0x5447 0x5872
+0x5448 0x5821
+0x5449 0x5862
+0x544a 0x584B
+0x544b 0x5870
+0x544c 0x6BC0
+0x544d 0x5852
+0x544e 0x583D
+0x544f 0x5879
+0x5450 0x5885
+0x5451 0x58B9
+0x5452 0x589F
+0x5453 0x58AB
+0x5454 0x58BA
+0x5455 0x58DE
+0x5456 0x58BB
+0x5457 0x58B8
+0x5458 0x58AE
+0x5459 0x58C5
+0x545a 0x58D3
+0x545b 0x58D1
+0x545c 0x58D7
+0x545d 0x58D9
+0x545e 0x58D8
+0x545f 0x58E5
+0x5460 0x58DC
+0x5461 0x58E4
+0x5462 0x58DF
+0x5463 0x58EF
+0x5464 0x58FA
+0x5465 0x58F9
+0x5466 0x58FB
+0x5467 0x58FC
+0x5468 0x58FD
+0x5469 0x5902
+0x546a 0x590A
+0x546b 0x5910
+0x546c 0x591B
+0x546d 0x68A6
+0x546e 0x5925
+0x546f 0x592C
+0x5470 0x592D
+0x5471 0x5932
+0x5472 0x5938
+0x5473 0x593E
+0x5474 0x7AD2
+0x5475 0x5955
+0x5476 0x5950
+0x5477 0x594E
+0x5478 0x595A
+0x5479 0x5958
+0x547a 0x5962
+0x547b 0x5960
+0x547c 0x5967
+0x547d 0x596C
+0x547e 0x5969
+0x5521 0x5978
+0x5522 0x5981
+0x5523 0x599D
+0x5524 0x4F5E
+0x5525 0x4FAB
+0x5526 0x59A3
+0x5527 0x59B2
+0x5528 0x59C6
+0x5529 0x59E8
+0x552a 0x59DC
+0x552b 0x598D
+0x552c 0x59D9
+0x552d 0x59DA
+0x552e 0x5A25
+0x552f 0x5A1F
+0x5530 0x5A11
+0x5531 0x5A1C
+0x5532 0x5A09
+0x5533 0x5A1A
+0x5534 0x5A40
+0x5535 0x5A6C
+0x5536 0x5A49
+0x5537 0x5A35
+0x5538 0x5A36
+0x5539 0x5A62
+0x553a 0x5A6A
+0x553b 0x5A9A
+0x553c 0x5ABC
+0x553d 0x5ABE
+0x553e 0x5ACB
+0x553f 0x5AC2
+0x5540 0x5ABD
+0x5541 0x5AE3
+0x5542 0x5AD7
+0x5543 0x5AE6
+0x5544 0x5AE9
+0x5545 0x5AD6
+0x5546 0x5AFA
+0x5547 0x5AFB
+0x5548 0x5B0C
+0x5549 0x5B0B
+0x554a 0x5B16
+0x554b 0x5B32
+0x554c 0x5AD0
+0x554d 0x5B2A
+0x554e 0x5B36
+0x554f 0x5B3E
+0x5550 0x5B43
+0x5551 0x5B45
+0x5552 0x5B40
+0x5553 0x5B51
+0x5554 0x5B55
+0x5555 0x5B5A
+0x5556 0x5B5B
+0x5557 0x5B65
+0x5558 0x5B69
+0x5559 0x5B70
+0x555a 0x5B73
+0x555b 0x5B75
+0x555c 0x5B78
+0x555d 0x6588
+0x555e 0x5B7A
+0x555f 0x5B80
+0x5560 0x5B83
+0x5561 0x5BA6
+0x5562 0x5BB8
+0x5563 0x5BC3
+0x5564 0x5BC7
+0x5565 0x5BC9
+0x5566 0x5BD4
+0x5567 0x5BD0
+0x5568 0x5BE4
+0x5569 0x5BE6
+0x556a 0x5BE2
+0x556b 0x5BDE
+0x556c 0x5BE5
+0x556d 0x5BEB
+0x556e 0x5BF0
+0x556f 0x5BF6
+0x5570 0x5BF3
+0x5571 0x5C05
+0x5572 0x5C07
+0x5573 0x5C08
+0x5574 0x5C0D
+0x5575 0x5C13
+0x5576 0x5C20
+0x5577 0x5C22
+0x5578 0x5C28
+0x5579 0x5C38
+0x557a 0x5C39
+0x557b 0x5C41
+0x557c 0x5C46
+0x557d 0x5C4E
+0x557e 0x5C53
+0x5621 0x5C50
+0x5622 0x5C4F
+0x5623 0x5B71
+0x5624 0x5C6C
+0x5625 0x5C6E
+0x5626 0x4E62
+0x5627 0x5C76
+0x5628 0x5C79
+0x5629 0x5C8C
+0x562a 0x5C91
+0x562b 0x5C94
+0x562c 0x599B
+0x562d 0x5CAB
+0x562e 0x5CBB
+0x562f 0x5CB6
+0x5630 0x5CBC
+0x5631 0x5CB7
+0x5632 0x5CC5
+0x5633 0x5CBE
+0x5634 0x5CC7
+0x5635 0x5CD9
+0x5636 0x5CE9
+0x5637 0x5CFD
+0x5638 0x5CFA
+0x5639 0x5CED
+0x563a 0x5D8C
+0x563b 0x5CEA
+0x563c 0x5D0B
+0x563d 0x5D15
+0x563e 0x5D17
+0x563f 0x5D5C
+0x5640 0x5D1F
+0x5641 0x5D1B
+0x5642 0x5D11
+0x5643 0x5D14
+0x5644 0x5D22
+0x5645 0x5D1A
+0x5646 0x5D19
+0x5647 0x5D18
+0x5648 0x5D4C
+0x5649 0x5D52
+0x564a 0x5D4E
+0x564b 0x5D4B
+0x564c 0x5D6C
+0x564d 0x5D73
+0x564e 0x5D76
+0x564f 0x5D87
+0x5650 0x5D84
+0x5651 0x5D82
+0x5652 0x5DA2
+0x5653 0x5D9D
+0x5654 0x5DAC
+0x5655 0x5DAE
+0x5656 0x5DBD
+0x5657 0x5D90
+0x5658 0x5DB7
+0x5659 0x5DBC
+0x565a 0x5DC9
+0x565b 0x5DCD
+0x565c 0x5DD3
+0x565d 0x5DD2
+0x565e 0x5DD6
+0x565f 0x5DDB
+0x5660 0x5DEB
+0x5661 0x5DF2
+0x5662 0x5DF5
+0x5663 0x5E0B
+0x5664 0x5E1A
+0x5665 0x5E19
+0x5666 0x5E11
+0x5667 0x5E1B
+0x5668 0x5E36
+0x5669 0x5E37
+0x566a 0x5E44
+0x566b 0x5E43
+0x566c 0x5E40
+0x566d 0x5E4E
+0x566e 0x5E57
+0x566f 0x5E54
+0x5670 0x5E5F
+0x5671 0x5E62
+0x5672 0x5E64
+0x5673 0x5E47
+0x5674 0x5E75
+0x5675 0x5E76
+0x5676 0x5E7A
+0x5677 0x9EBC
+0x5678 0x5E7F
+0x5679 0x5EA0
+0x567a 0x5EC1
+0x567b 0x5EC2
+0x567c 0x5EC8
+0x567d 0x5ED0
+0x567e 0x5ECF
+0x5721 0x5ED6
+0x5722 0x5EE3
+0x5723 0x5EDD
+0x5724 0x5EDA
+0x5725 0x5EDB
+0x5726 0x5EE2
+0x5727 0x5EE1
+0x5728 0x5EE8
+0x5729 0x5EE9
+0x572a 0x5EEC
+0x572b 0x5EF1
+0x572c 0x5EF3
+0x572d 0x5EF0
+0x572e 0x5EF4
+0x572f 0x5EF8
+0x5730 0x5EFE
+0x5731 0x5F03
+0x5732 0x5F09
+0x5733 0x5F5D
+0x5734 0x5F5C
+0x5735 0x5F0B
+0x5736 0x5F11
+0x5737 0x5F16
+0x5738 0x5F29
+0x5739 0x5F2D
+0x573a 0x5F38
+0x573b 0x5F41
+0x573c 0x5F48
+0x573d 0x5F4C
+0x573e 0x5F4E
+0x573f 0x5F2F
+0x5740 0x5F51
+0x5741 0x5F56
+0x5742 0x5F57
+0x5743 0x5F59
+0x5744 0x5F61
+0x5745 0x5F6D
+0x5746 0x5F73
+0x5747 0x5F77
+0x5748 0x5F83
+0x5749 0x5F82
+0x574a 0x5F7F
+0x574b 0x5F8A
+0x574c 0x5F88
+0x574d 0x5F91
+0x574e 0x5F87
+0x574f 0x5F9E
+0x5750 0x5F99
+0x5751 0x5F98
+0x5752 0x5FA0
+0x5753 0x5FA8
+0x5754 0x5FAD
+0x5755 0x5FBC
+0x5756 0x5FD6
+0x5757 0x5FFB
+0x5758 0x5FE4
+0x5759 0x5FF8
+0x575a 0x5FF1
+0x575b 0x5FDD
+0x575c 0x60B3
+0x575d 0x5FFF
+0x575e 0x6021
+0x575f 0x6060
+0x5760 0x6019
+0x5761 0x6010
+0x5762 0x6029
+0x5763 0x600E
+0x5764 0x6031
+0x5765 0x601B
+0x5766 0x6015
+0x5767 0x602B
+0x5768 0x6026
+0x5769 0x600F
+0x576a 0x603A
+0x576b 0x605A
+0x576c 0x6041
+0x576d 0x606A
+0x576e 0x6077
+0x576f 0x605F
+0x5770 0x604A
+0x5771 0x6046
+0x5772 0x604D
+0x5773 0x6063
+0x5774 0x6043
+0x5775 0x6064
+0x5776 0x6042
+0x5777 0x606C
+0x5778 0x606B
+0x5779 0x6059
+0x577a 0x6081
+0x577b 0x608D
+0x577c 0x60E7
+0x577d 0x6083
+0x577e 0x609A
+0x5821 0x6084
+0x5822 0x609B
+0x5823 0x6096
+0x5824 0x6097
+0x5825 0x6092
+0x5826 0x60A7
+0x5827 0x608B
+0x5828 0x60E1
+0x5829 0x60B8
+0x582a 0x60E0
+0x582b 0x60D3
+0x582c 0x60B4
+0x582d 0x5FF0
+0x582e 0x60BD
+0x582f 0x60C6
+0x5830 0x60B5
+0x5831 0x60D8
+0x5832 0x614D
+0x5833 0x6115
+0x5834 0x6106
+0x5835 0x60F6
+0x5836 0x60F7
+0x5837 0x6100
+0x5838 0x60F4
+0x5839 0x60FA
+0x583a 0x6103
+0x583b 0x6121
+0x583c 0x60FB
+0x583d 0x60F1
+0x583e 0x610D
+0x583f 0x610E
+0x5840 0x6147
+0x5841 0x613E
+0x5842 0x6128
+0x5843 0x6127
+0x5844 0x614A
+0x5845 0x613F
+0x5846 0x613C
+0x5847 0x612C
+0x5848 0x6134
+0x5849 0x613D
+0x584a 0x6142
+0x584b 0x6144
+0x584c 0x6173
+0x584d 0x6177
+0x584e 0x6158
+0x584f 0x6159
+0x5850 0x615A
+0x5851 0x616B
+0x5852 0x6174
+0x5853 0x616F
+0x5854 0x6165
+0x5855 0x6171
+0x5856 0x615F
+0x5857 0x615D
+0x5858 0x6153
+0x5859 0x6175
+0x585a 0x6199
+0x585b 0x6196
+0x585c 0x6187
+0x585d 0x61AC
+0x585e 0x6194
+0x585f 0x619A
+0x5860 0x618A
+0x5861 0x6191
+0x5862 0x61AB
+0x5863 0x61AE
+0x5864 0x61CC
+0x5865 0x61CA
+0x5866 0x61C9
+0x5867 0x61F7
+0x5868 0x61C8
+0x5869 0x61C3
+0x586a 0x61C6
+0x586b 0x61BA
+0x586c 0x61CB
+0x586d 0x7F79
+0x586e 0x61CD
+0x586f 0x61E6
+0x5870 0x61E3
+0x5871 0x61F6
+0x5872 0x61FA
+0x5873 0x61F4
+0x5874 0x61FF
+0x5875 0x61FD
+0x5876 0x61FC
+0x5877 0x61FE
+0x5878 0x6200
+0x5879 0x6208
+0x587a 0x6209
+0x587b 0x620D
+0x587c 0x620C
+0x587d 0x6214
+0x587e 0x621B
+0x5921 0x621E
+0x5922 0x6221
+0x5923 0x622A
+0x5924 0x622E
+0x5925 0x6230
+0x5926 0x6232
+0x5927 0x6233
+0x5928 0x6241
+0x5929 0x624E
+0x592a 0x625E
+0x592b 0x6263
+0x592c 0x625B
+0x592d 0x6260
+0x592e 0x6268
+0x592f 0x627C
+0x5930 0x6282
+0x5931 0x6289
+0x5932 0x627E
+0x5933 0x6292
+0x5934 0x6293
+0x5935 0x6296
+0x5936 0x62D4
+0x5937 0x6283
+0x5938 0x6294
+0x5939 0x62D7
+0x593a 0x62D1
+0x593b 0x62BB
+0x593c 0x62CF
+0x593d 0x62FF
+0x593e 0x62C6
+0x593f 0x64D4
+0x5940 0x62C8
+0x5941 0x62DC
+0x5942 0x62CC
+0x5943 0x62CA
+0x5944 0x62C2
+0x5945 0x62C7
+0x5946 0x629B
+0x5947 0x62C9
+0x5948 0x630C
+0x5949 0x62EE
+0x594a 0x62F1
+0x594b 0x6327
+0x594c 0x6302
+0x594d 0x6308
+0x594e 0x62EF
+0x594f 0x62F5
+0x5950 0x6350
+0x5951 0x633E
+0x5952 0x634D
+0x5953 0x641C
+0x5954 0x634F
+0x5955 0x6396
+0x5956 0x638E
+0x5957 0x6380
+0x5958 0x63AB
+0x5959 0x6376
+0x595a 0x63A3
+0x595b 0x638F
+0x595c 0x6389
+0x595d 0x639F
+0x595e 0x63B5
+0x595f 0x636B
+0x5960 0x6369
+0x5961 0x63BE
+0x5962 0x63E9
+0x5963 0x63C0
+0x5964 0x63C6
+0x5965 0x63E3
+0x5966 0x63C9
+0x5967 0x63D2
+0x5968 0x63F6
+0x5969 0x63C4
+0x596a 0x6416
+0x596b 0x6434
+0x596c 0x6406
+0x596d 0x6413
+0x596e 0x6426
+0x596f 0x6436
+0x5970 0x651D
+0x5971 0x6417
+0x5972 0x6428
+0x5973 0x640F
+0x5974 0x6467
+0x5975 0x646F
+0x5976 0x6476
+0x5977 0x644E
+0x5978 0x652A
+0x5979 0x6495
+0x597a 0x6493
+0x597b 0x64A5
+0x597c 0x64A9
+0x597d 0x6488
+0x597e 0x64BC
+0x5a21 0x64DA
+0x5a22 0x64D2
+0x5a23 0x64C5
+0x5a24 0x64C7
+0x5a25 0x64BB
+0x5a26 0x64D8
+0x5a27 0x64C2
+0x5a28 0x64F1
+0x5a29 0x64E7
+0x5a2a 0x8209
+0x5a2b 0x64E0
+0x5a2c 0x64E1
+0x5a2d 0x62AC
+0x5a2e 0x64E3
+0x5a2f 0x64EF
+0x5a30 0x652C
+0x5a31 0x64F6
+0x5a32 0x64F4
+0x5a33 0x64F2
+0x5a34 0x64FA
+0x5a35 0x6500
+0x5a36 0x64FD
+0x5a37 0x6518
+0x5a38 0x651C
+0x5a39 0x6505
+0x5a3a 0x6524
+0x5a3b 0x6523
+0x5a3c 0x652B
+0x5a3d 0x6534
+0x5a3e 0x6535
+0x5a3f 0x6537
+0x5a40 0x6536
+0x5a41 0x6538
+0x5a42 0x754B
+0x5a43 0x6548
+0x5a44 0x6556
+0x5a45 0x6555
+0x5a46 0x654D
+0x5a47 0x6558
+0x5a48 0x655E
+0x5a49 0x655D
+0x5a4a 0x6572
+0x5a4b 0x6578
+0x5a4c 0x6582
+0x5a4d 0x6583
+0x5a4e 0x8B8A
+0x5a4f 0x659B
+0x5a50 0x659F
+0x5a51 0x65AB
+0x5a52 0x65B7
+0x5a53 0x65C3
+0x5a54 0x65C6
+0x5a55 0x65C1
+0x5a56 0x65C4
+0x5a57 0x65CC
+0x5a58 0x65D2
+0x5a59 0x65DB
+0x5a5a 0x65D9
+0x5a5b 0x65E0
+0x5a5c 0x65E1
+0x5a5d 0x65F1
+0x5a5e 0x6772
+0x5a5f 0x660A
+0x5a60 0x6603
+0x5a61 0x65FB
+0x5a62 0x6773
+0x5a63 0x6635
+0x5a64 0x6636
+0x5a65 0x6634
+0x5a66 0x661C
+0x5a67 0x664F
+0x5a68 0x6644
+0x5a69 0x6649
+0x5a6a 0x6641
+0x5a6b 0x665E
+0x5a6c 0x665D
+0x5a6d 0x6664
+0x5a6e 0x6667
+0x5a6f 0x6668
+0x5a70 0x665F
+0x5a71 0x6662
+0x5a72 0x6670
+0x5a73 0x6683
+0x5a74 0x6688
+0x5a75 0x668E
+0x5a76 0x6689
+0x5a77 0x6684
+0x5a78 0x6698
+0x5a79 0x669D
+0x5a7a 0x66C1
+0x5a7b 0x66B9
+0x5a7c 0x66C9
+0x5a7d 0x66BE
+0x5a7e 0x66BC
+0x5b21 0x66C4
+0x5b22 0x66B8
+0x5b23 0x66D6
+0x5b24 0x66DA
+0x5b25 0x66E0
+0x5b26 0x663F
+0x5b27 0x66E6
+0x5b28 0x66E9
+0x5b29 0x66F0
+0x5b2a 0x66F5
+0x5b2b 0x66F7
+0x5b2c 0x670F
+0x5b2d 0x6716
+0x5b2e 0x671E
+0x5b2f 0x6726
+0x5b30 0x6727
+0x5b31 0x9738
+0x5b32 0x672E
+0x5b33 0x673F
+0x5b34 0x6736
+0x5b35 0x6741
+0x5b36 0x6738
+0x5b37 0x6737
+0x5b38 0x6746
+0x5b39 0x675E
+0x5b3a 0x6760
+0x5b3b 0x6759
+0x5b3c 0x6763
+0x5b3d 0x6764
+0x5b3e 0x6789
+0x5b3f 0x6770
+0x5b40 0x67A9
+0x5b41 0x677C
+0x5b42 0x676A
+0x5b43 0x678C
+0x5b44 0x678B
+0x5b45 0x67A6
+0x5b46 0x67A1
+0x5b47 0x6785
+0x5b48 0x67B7
+0x5b49 0x67EF
+0x5b4a 0x67B4
+0x5b4b 0x67EC
+0x5b4c 0x67B3
+0x5b4d 0x67E9
+0x5b4e 0x67B8
+0x5b4f 0x67E4
+0x5b50 0x67DE
+0x5b51 0x67DD
+0x5b52 0x67E2
+0x5b53 0x67EE
+0x5b54 0x67B9
+0x5b55 0x67CE
+0x5b56 0x67C6
+0x5b57 0x67E7
+0x5b58 0x6A9C
+0x5b59 0x681E
+0x5b5a 0x6846
+0x5b5b 0x6829
+0x5b5c 0x6840
+0x5b5d 0x684D
+0x5b5e 0x6832
+0x5b5f 0x684E
+0x5b60 0x68B3
+0x5b61 0x682B
+0x5b62 0x6859
+0x5b63 0x6863
+0x5b64 0x6877
+0x5b65 0x687F
+0x5b66 0x689F
+0x5b67 0x688F
+0x5b68 0x68AD
+0x5b69 0x6894
+0x5b6a 0x689D
+0x5b6b 0x689B
+0x5b6c 0x6883
+0x5b6d 0x6AAE
+0x5b6e 0x68B9
+0x5b6f 0x6874
+0x5b70 0x68B5
+0x5b71 0x68A0
+0x5b72 0x68BA
+0x5b73 0x690F
+0x5b74 0x688D
+0x5b75 0x687E
+0x5b76 0x6901
+0x5b77 0x68CA
+0x5b78 0x6908
+0x5b79 0x68D8
+0x5b7a 0x6922
+0x5b7b 0x6926
+0x5b7c 0x68E1
+0x5b7d 0x690C
+0x5b7e 0x68CD
+0x5c21 0x68D4
+0x5c22 0x68E7
+0x5c23 0x68D5
+0x5c24 0x6936
+0x5c25 0x6912
+0x5c26 0x6904
+0x5c27 0x68D7
+0x5c28 0x68E3
+0x5c29 0x6925
+0x5c2a 0x68F9
+0x5c2b 0x68E0
+0x5c2c 0x68EF
+0x5c2d 0x6928
+0x5c2e 0x692A
+0x5c2f 0x691A
+0x5c30 0x6923
+0x5c31 0x6921
+0x5c32 0x68C6
+0x5c33 0x6979
+0x5c34 0x6977
+0x5c35 0x695C
+0x5c36 0x6978
+0x5c37 0x696B
+0x5c38 0x6954
+0x5c39 0x697E
+0x5c3a 0x696E
+0x5c3b 0x6939
+0x5c3c 0x6974
+0x5c3d 0x693D
+0x5c3e 0x6959
+0x5c3f 0x6930
+0x5c40 0x6961
+0x5c41 0x695E
+0x5c42 0x695D
+0x5c43 0x6981
+0x5c44 0x696A
+0x5c45 0x69B2
+0x5c46 0x69AE
+0x5c47 0x69D0
+0x5c48 0x69BF
+0x5c49 0x69C1
+0x5c4a 0x69D3
+0x5c4b 0x69BE
+0x5c4c 0x69CE
+0x5c4d 0x5BE8
+0x5c4e 0x69CA
+0x5c4f 0x69DD
+0x5c50 0x69BB
+0x5c51 0x69C3
+0x5c52 0x69A7
+0x5c53 0x6A2E
+0x5c54 0x6991
+0x5c55 0x69A0
+0x5c56 0x699C
+0x5c57 0x6995
+0x5c58 0x69B4
+0x5c59 0x69DE
+0x5c5a 0x69E8
+0x5c5b 0x6A02
+0x5c5c 0x6A1B
+0x5c5d 0x69FF
+0x5c5e 0x6B0A
+0x5c5f 0x69F9
+0x5c60 0x69F2
+0x5c61 0x69E7
+0x5c62 0x6A05
+0x5c63 0x69B1
+0x5c64 0x6A1E
+0x5c65 0x69ED
+0x5c66 0x6A14
+0x5c67 0x69EB
+0x5c68 0x6A0A
+0x5c69 0x6A12
+0x5c6a 0x6AC1
+0x5c6b 0x6A23
+0x5c6c 0x6A13
+0x5c6d 0x6A44
+0x5c6e 0x6A0C
+0x5c6f 0x6A72
+0x5c70 0x6A36
+0x5c71 0x6A78
+0x5c72 0x6A47
+0x5c73 0x6A62
+0x5c74 0x6A59
+0x5c75 0x6A66
+0x5c76 0x6A48
+0x5c77 0x6A38
+0x5c78 0x6A22
+0x5c79 0x6A90
+0x5c7a 0x6A8D
+0x5c7b 0x6AA0
+0x5c7c 0x6A84
+0x5c7d 0x6AA2
+0x5c7e 0x6AA3
+0x5d21 0x6A97
+0x5d22 0x8617
+0x5d23 0x6ABB
+0x5d24 0x6AC3
+0x5d25 0x6AC2
+0x5d26 0x6AB8
+0x5d27 0x6AB3
+0x5d28 0x6AAC
+0x5d29 0x6ADE
+0x5d2a 0x6AD1
+0x5d2b 0x6ADF
+0x5d2c 0x6AAA
+0x5d2d 0x6ADA
+0x5d2e 0x6AEA
+0x5d2f 0x6AFB
+0x5d30 0x6B05
+0x5d31 0x8616
+0x5d32 0x6AFA
+0x5d33 0x6B12
+0x5d34 0x6B16
+0x5d35 0x9B31
+0x5d36 0x6B1F
+0x5d37 0x6B38
+0x5d38 0x6B37
+0x5d39 0x76DC
+0x5d3a 0x6B39
+0x5d3b 0x98EE
+0x5d3c 0x6B47
+0x5d3d 0x6B43
+0x5d3e 0x6B49
+0x5d3f 0x6B50
+0x5d40 0x6B59
+0x5d41 0x6B54
+0x5d42 0x6B5B
+0x5d43 0x6B5F
+0x5d44 0x6B61
+0x5d45 0x6B78
+0x5d46 0x6B79
+0x5d47 0x6B7F
+0x5d48 0x6B80
+0x5d49 0x6B84
+0x5d4a 0x6B83
+0x5d4b 0x6B8D
+0x5d4c 0x6B98
+0x5d4d 0x6B95
+0x5d4e 0x6B9E
+0x5d4f 0x6BA4
+0x5d50 0x6BAA
+0x5d51 0x6BAB
+0x5d52 0x6BAF
+0x5d53 0x6BB2
+0x5d54 0x6BB1
+0x5d55 0x6BB3
+0x5d56 0x6BB7
+0x5d57 0x6BBC
+0x5d58 0x6BC6
+0x5d59 0x6BCB
+0x5d5a 0x6BD3
+0x5d5b 0x6BDF
+0x5d5c 0x6BEC
+0x5d5d 0x6BEB
+0x5d5e 0x6BF3
+0x5d5f 0x6BEF
+0x5d60 0x9EBE
+0x5d61 0x6C08
+0x5d62 0x6C13
+0x5d63 0x6C14
+0x5d64 0x6C1B
+0x5d65 0x6C24
+0x5d66 0x6C23
+0x5d67 0x6C5E
+0x5d68 0x6C55
+0x5d69 0x6C62
+0x5d6a 0x6C6A
+0x5d6b 0x6C82
+0x5d6c 0x6C8D
+0x5d6d 0x6C9A
+0x5d6e 0x6C81
+0x5d6f 0x6C9B
+0x5d70 0x6C7E
+0x5d71 0x6C68
+0x5d72 0x6C73
+0x5d73 0x6C92
+0x5d74 0x6C90
+0x5d75 0x6CC4
+0x5d76 0x6CF1
+0x5d77 0x6CD3
+0x5d78 0x6CBD
+0x5d79 0x6CD7
+0x5d7a 0x6CC5
+0x5d7b 0x6CDD
+0x5d7c 0x6CAE
+0x5d7d 0x6CB1
+0x5d7e 0x6CBE
+0x5e21 0x6CBA
+0x5e22 0x6CDB
+0x5e23 0x6CEF
+0x5e24 0x6CD9
+0x5e25 0x6CEA
+0x5e26 0x6D1F
+0x5e27 0x884D
+0x5e28 0x6D36
+0x5e29 0x6D2B
+0x5e2a 0x6D3D
+0x5e2b 0x6D38
+0x5e2c 0x6D19
+0x5e2d 0x6D35
+0x5e2e 0x6D33
+0x5e2f 0x6D12
+0x5e30 0x6D0C
+0x5e31 0x6D63
+0x5e32 0x6D93
+0x5e33 0x6D64
+0x5e34 0x6D5A
+0x5e35 0x6D79
+0x5e36 0x6D59
+0x5e37 0x6D8E
+0x5e38 0x6D95
+0x5e39 0x6FE4
+0x5e3a 0x6D85
+0x5e3b 0x6DF9
+0x5e3c 0x6E15
+0x5e3d 0x6E0A
+0x5e3e 0x6DB5
+0x5e3f 0x6DC7
+0x5e40 0x6DE6
+0x5e41 0x6DB8
+0x5e42 0x6DC6
+0x5e43 0x6DEC
+0x5e44 0x6DDE
+0x5e45 0x6DCC
+0x5e46 0x6DE8
+0x5e47 0x6DD2
+0x5e48 0x6DC5
+0x5e49 0x6DFA
+0x5e4a 0x6DD9
+0x5e4b 0x6DE4
+0x5e4c 0x6DD5
+0x5e4d 0x6DEA
+0x5e4e 0x6DEE
+0x5e4f 0x6E2D
+0x5e50 0x6E6E
+0x5e51 0x6E2E
+0x5e52 0x6E19
+0x5e53 0x6E72
+0x5e54 0x6E5F
+0x5e55 0x6E3E
+0x5e56 0x6E23
+0x5e57 0x6E6B
+0x5e58 0x6E2B
+0x5e59 0x6E76
+0x5e5a 0x6E4D
+0x5e5b 0x6E1F
+0x5e5c 0x6E43
+0x5e5d 0x6E3A
+0x5e5e 0x6E4E
+0x5e5f 0x6E24
+0x5e60 0x6EFF
+0x5e61 0x6E1D
+0x5e62 0x6E38
+0x5e63 0x6E82
+0x5e64 0x6EAA
+0x5e65 0x6E98
+0x5e66 0x6EC9
+0x5e67 0x6EB7
+0x5e68 0x6ED3
+0x5e69 0x6EBD
+0x5e6a 0x6EAF
+0x5e6b 0x6EC4
+0x5e6c 0x6EB2
+0x5e6d 0x6ED4
+0x5e6e 0x6ED5
+0x5e6f 0x6E8F
+0x5e70 0x6EA5
+0x5e71 0x6EC2
+0x5e72 0x6E9F
+0x5e73 0x6F41
+0x5e74 0x6F11
+0x5e75 0x704C
+0x5e76 0x6EEC
+0x5e77 0x6EF8
+0x5e78 0x6EFE
+0x5e79 0x6F3F
+0x5e7a 0x6EF2
+0x5e7b 0x6F31
+0x5e7c 0x6EEF
+0x5e7d 0x6F32
+0x5e7e 0x6ECC
+0x5f21 0x6F3E
+0x5f22 0x6F13
+0x5f23 0x6EF7
+0x5f24 0x6F86
+0x5f25 0x6F7A
+0x5f26 0x6F78
+0x5f27 0x6F81
+0x5f28 0x6F80
+0x5f29 0x6F6F
+0x5f2a 0x6F5B
+0x5f2b 0x6FF3
+0x5f2c 0x6F6D
+0x5f2d 0x6F82
+0x5f2e 0x6F7C
+0x5f2f 0x6F58
+0x5f30 0x6F8E
+0x5f31 0x6F91
+0x5f32 0x6FC2
+0x5f33 0x6F66
+0x5f34 0x6FB3
+0x5f35 0x6FA3
+0x5f36 0x6FA1
+0x5f37 0x6FA4
+0x5f38 0x6FB9
+0x5f39 0x6FC6
+0x5f3a 0x6FAA
+0x5f3b 0x6FDF
+0x5f3c 0x6FD5
+0x5f3d 0x6FEC
+0x5f3e 0x6FD4
+0x5f3f 0x6FD8
+0x5f40 0x6FF1
+0x5f41 0x6FEE
+0x5f42 0x6FDB
+0x5f43 0x7009
+0x5f44 0x700B
+0x5f45 0x6FFA
+0x5f46 0x7011
+0x5f47 0x7001
+0x5f48 0x700F
+0x5f49 0x6FFE
+0x5f4a 0x701B
+0x5f4b 0x701A
+0x5f4c 0x6F74
+0x5f4d 0x701D
+0x5f4e 0x7018
+0x5f4f 0x701F
+0x5f50 0x7030
+0x5f51 0x703E
+0x5f52 0x7032
+0x5f53 0x7051
+0x5f54 0x7063
+0x5f55 0x7099
+0x5f56 0x7092
+0x5f57 0x70AF
+0x5f58 0x70F1
+0x5f59 0x70AC
+0x5f5a 0x70B8
+0x5f5b 0x70B3
+0x5f5c 0x70AE
+0x5f5d 0x70DF
+0x5f5e 0x70CB
+0x5f5f 0x70DD
+0x5f60 0x70D9
+0x5f61 0x7109
+0x5f62 0x70FD
+0x5f63 0x711C
+0x5f64 0x7119
+0x5f65 0x7165
+0x5f66 0x7155
+0x5f67 0x7188
+0x5f68 0x7166
+0x5f69 0x7162
+0x5f6a 0x714C
+0x5f6b 0x7156
+0x5f6c 0x716C
+0x5f6d 0x718F
+0x5f6e 0x71FB
+0x5f6f 0x7184
+0x5f70 0x7195
+0x5f71 0x71A8
+0x5f72 0x71AC
+0x5f73 0x71D7
+0x5f74 0x71B9
+0x5f75 0x71BE
+0x5f76 0x71D2
+0x5f77 0x71C9
+0x5f78 0x71D4
+0x5f79 0x71CE
+0x5f7a 0x71E0
+0x5f7b 0x71EC
+0x5f7c 0x71E7
+0x5f7d 0x71F5
+0x5f7e 0x71FC
+0x6021 0x71F9
+0x6022 0x71FF
+0x6023 0x720D
+0x6024 0x7210
+0x6025 0x721B
+0x6026 0x7228
+0x6027 0x722D
+0x6028 0x722C
+0x6029 0x7230
+0x602a 0x7232
+0x602b 0x723B
+0x602c 0x723C
+0x602d 0x723F
+0x602e 0x7240
+0x602f 0x7246
+0x6030 0x724B
+0x6031 0x7258
+0x6032 0x7274
+0x6033 0x727E
+0x6034 0x7282
+0x6035 0x7281
+0x6036 0x7287
+0x6037 0x7292
+0x6038 0x7296
+0x6039 0x72A2
+0x603a 0x72A7
+0x603b 0x72B9
+0x603c 0x72B2
+0x603d 0x72C3
+0x603e 0x72C6
+0x603f 0x72C4
+0x6040 0x72CE
+0x6041 0x72D2
+0x6042 0x72E2
+0x6043 0x72E0
+0x6044 0x72E1
+0x6045 0x72F9
+0x6046 0x72F7
+0x6047 0x500F
+0x6048 0x7317
+0x6049 0x730A
+0x604a 0x731C
+0x604b 0x7316
+0x604c 0x731D
+0x604d 0x7334
+0x604e 0x732F
+0x604f 0x7329
+0x6050 0x7325
+0x6051 0x733E
+0x6052 0x734E
+0x6053 0x734F
+0x6054 0x9ED8
+0x6055 0x7357
+0x6056 0x736A
+0x6057 0x7368
+0x6058 0x7370
+0x6059 0x7378
+0x605a 0x7375
+0x605b 0x737B
+0x605c 0x737A
+0x605d 0x73C8
+0x605e 0x73B3
+0x605f 0x73CE
+0x6060 0x73BB
+0x6061 0x73C0
+0x6062 0x73E5
+0x6063 0x73EE
+0x6064 0x73DE
+0x6065 0x74A2
+0x6066 0x7405
+0x6067 0x746F
+0x6068 0x7425
+0x6069 0x73F8
+0x606a 0x7432
+0x606b 0x743A
+0x606c 0x7455
+0x606d 0x743F
+0x606e 0x745F
+0x606f 0x7459
+0x6070 0x7441
+0x6071 0x745C
+0x6072 0x7469
+0x6073 0x7470
+0x6074 0x7463
+0x6075 0x746A
+0x6076 0x7476
+0x6077 0x747E
+0x6078 0x748B
+0x6079 0x749E
+0x607a 0x74A7
+0x607b 0x74CA
+0x607c 0x74CF
+0x607d 0x74D4
+0x607e 0x73F1
+0x6121 0x74E0
+0x6122 0x74E3
+0x6123 0x74E7
+0x6124 0x74E9
+0x6125 0x74EE
+0x6126 0x74F2
+0x6127 0x74F0
+0x6128 0x74F1
+0x6129 0x74F8
+0x612a 0x74F7
+0x612b 0x7504
+0x612c 0x7503
+0x612d 0x7505
+0x612e 0x750C
+0x612f 0x750E
+0x6130 0x750D
+0x6131 0x7515
+0x6132 0x7513
+0x6133 0x751E
+0x6134 0x7526
+0x6135 0x752C
+0x6136 0x753C
+0x6137 0x7544
+0x6138 0x754D
+0x6139 0x754A
+0x613a 0x7549
+0x613b 0x755B
+0x613c 0x7546
+0x613d 0x755A
+0x613e 0x7569
+0x613f 0x7564
+0x6140 0x7567
+0x6141 0x756B
+0x6142 0x756D
+0x6143 0x7578
+0x6144 0x7576
+0x6145 0x7586
+0x6146 0x7587
+0x6147 0x7574
+0x6148 0x758A
+0x6149 0x7589
+0x614a 0x7582
+0x614b 0x7594
+0x614c 0x759A
+0x614d 0x759D
+0x614e 0x75A5
+0x614f 0x75A3
+0x6150 0x75C2
+0x6151 0x75B3
+0x6152 0x75C3
+0x6153 0x75B5
+0x6154 0x75BD
+0x6155 0x75B8
+0x6156 0x75BC
+0x6157 0x75B1
+0x6158 0x75CD
+0x6159 0x75CA
+0x615a 0x75D2
+0x615b 0x75D9
+0x615c 0x75E3
+0x615d 0x75DE
+0x615e 0x75FE
+0x615f 0x75FF
+0x6160 0x75FC
+0x6161 0x7601
+0x6162 0x75F0
+0x6163 0x75FA
+0x6164 0x75F2
+0x6165 0x75F3
+0x6166 0x760B
+0x6167 0x760D
+0x6168 0x7609
+0x6169 0x761F
+0x616a 0x7627
+0x616b 0x7620
+0x616c 0x7621
+0x616d 0x7622
+0x616e 0x7624
+0x616f 0x7634
+0x6170 0x7630
+0x6171 0x763B
+0x6172 0x7647
+0x6173 0x7648
+0x6174 0x7646
+0x6175 0x765C
+0x6176 0x7658
+0x6177 0x7661
+0x6178 0x7662
+0x6179 0x7668
+0x617a 0x7669
+0x617b 0x766A
+0x617c 0x7667
+0x617d 0x766C
+0x617e 0x7670
+0x6221 0x7672
+0x6222 0x7676
+0x6223 0x7678
+0x6224 0x767C
+0x6225 0x7680
+0x6226 0x7683
+0x6227 0x7688
+0x6228 0x768B
+0x6229 0x768E
+0x622a 0x7696
+0x622b 0x7693
+0x622c 0x7699
+0x622d 0x769A
+0x622e 0x76B0
+0x622f 0x76B4
+0x6230 0x76B8
+0x6231 0x76B9
+0x6232 0x76BA
+0x6233 0x76C2
+0x6234 0x76CD
+0x6235 0x76D6
+0x6236 0x76D2
+0x6237 0x76DE
+0x6238 0x76E1
+0x6239 0x76E5
+0x623a 0x76E7
+0x623b 0x76EA
+0x623c 0x862F
+0x623d 0x76FB
+0x623e 0x7708
+0x623f 0x7707
+0x6240 0x7704
+0x6241 0x7729
+0x6242 0x7724
+0x6243 0x771E
+0x6244 0x7725
+0x6245 0x7726
+0x6246 0x771B
+0x6247 0x7737
+0x6248 0x7738
+0x6249 0x7747
+0x624a 0x775A
+0x624b 0x7768
+0x624c 0x776B
+0x624d 0x775B
+0x624e 0x7765
+0x624f 0x777F
+0x6250 0x777E
+0x6251 0x7779
+0x6252 0x778E
+0x6253 0x778B
+0x6254 0x7791
+0x6255 0x77A0
+0x6256 0x779E
+0x6257 0x77B0
+0x6258 0x77B6
+0x6259 0x77B9
+0x625a 0x77BF
+0x625b 0x77BC
+0x625c 0x77BD
+0x625d 0x77BB
+0x625e 0x77C7
+0x625f 0x77CD
+0x6260 0x77D7
+0x6261 0x77DA
+0x6262 0x77DC
+0x6263 0x77E3
+0x6264 0x77EE
+0x6265 0x77FC
+0x6266 0x780C
+0x6267 0x7812
+0x6268 0x7926
+0x6269 0x7820
+0x626a 0x792A
+0x626b 0x7845
+0x626c 0x788E
+0x626d 0x7874
+0x626e 0x7886
+0x626f 0x787C
+0x6270 0x789A
+0x6271 0x788C
+0x6272 0x78A3
+0x6273 0x78B5
+0x6274 0x78AA
+0x6275 0x78AF
+0x6276 0x78D1
+0x6277 0x78C6
+0x6278 0x78CB
+0x6279 0x78D4
+0x627a 0x78BE
+0x627b 0x78BC
+0x627c 0x78C5
+0x627d 0x78CA
+0x627e 0x78EC
+0x6321 0x78E7
+0x6322 0x78DA
+0x6323 0x78FD
+0x6324 0x78F4
+0x6325 0x7907
+0x6326 0x7912
+0x6327 0x7911
+0x6328 0x7919
+0x6329 0x792C
+0x632a 0x792B
+0x632b 0x7940
+0x632c 0x7960
+0x632d 0x7957
+0x632e 0x795F
+0x632f 0x795A
+0x6330 0x7955
+0x6331 0x7953
+0x6332 0x797A
+0x6333 0x797F
+0x6334 0x798A
+0x6335 0x799D
+0x6336 0x79A7
+0x6337 0x9F4B
+0x6338 0x79AA
+0x6339 0x79AE
+0x633a 0x79B3
+0x633b 0x79B9
+0x633c 0x79BA
+0x633d 0x79C9
+0x633e 0x79D5
+0x633f 0x79E7
+0x6340 0x79EC
+0x6341 0x79E1
+0x6342 0x79E3
+0x6343 0x7A08
+0x6344 0x7A0D
+0x6345 0x7A18
+0x6346 0x7A19
+0x6347 0x7A20
+0x6348 0x7A1F
+0x6349 0x7980
+0x634a 0x7A31
+0x634b 0x7A3B
+0x634c 0x7A3E
+0x634d 0x7A37
+0x634e 0x7A43
+0x634f 0x7A57
+0x6350 0x7A49
+0x6351 0x7A61
+0x6352 0x7A62
+0x6353 0x7A69
+0x6354 0x9F9D
+0x6355 0x7A70
+0x6356 0x7A79
+0x6357 0x7A7D
+0x6358 0x7A88
+0x6359 0x7A97
+0x635a 0x7A95
+0x635b 0x7A98
+0x635c 0x7A96
+0x635d 0x7AA9
+0x635e 0x7AC8
+0x635f 0x7AB0
+0x6360 0x7AB6
+0x6361 0x7AC5
+0x6362 0x7AC4
+0x6363 0x7ABF
+0x6364 0x9083
+0x6365 0x7AC7
+0x6366 0x7ACA
+0x6367 0x7ACD
+0x6368 0x7ACF
+0x6369 0x7AD5
+0x636a 0x7AD3
+0x636b 0x7AD9
+0x636c 0x7ADA
+0x636d 0x7ADD
+0x636e 0x7AE1
+0x636f 0x7AE2
+0x6370 0x7AE6
+0x6371 0x7AED
+0x6372 0x7AF0
+0x6373 0x7B02
+0x6374 0x7B0F
+0x6375 0x7B0A
+0x6376 0x7B06
+0x6377 0x7B33
+0x6378 0x7B18
+0x6379 0x7B19
+0x637a 0x7B1E
+0x637b 0x7B35
+0x637c 0x7B28
+0x637d 0x7B36
+0x637e 0x7B50
+0x6421 0x7B7A
+0x6422 0x7B04
+0x6423 0x7B4D
+0x6424 0x7B0B
+0x6425 0x7B4C
+0x6426 0x7B45
+0x6427 0x7B75
+0x6428 0x7B65
+0x6429 0x7B74
+0x642a 0x7B67
+0x642b 0x7B70
+0x642c 0x7B71
+0x642d 0x7B6C
+0x642e 0x7B6E
+0x642f 0x7B9D
+0x6430 0x7B98
+0x6431 0x7B9F
+0x6432 0x7B8D
+0x6433 0x7B9C
+0x6434 0x7B9A
+0x6435 0x7B8B
+0x6436 0x7B92
+0x6437 0x7B8F
+0x6438 0x7B5D
+0x6439 0x7B99
+0x643a 0x7BCB
+0x643b 0x7BC1
+0x643c 0x7BCC
+0x643d 0x7BCF
+0x643e 0x7BB4
+0x643f 0x7BC6
+0x6440 0x7BDD
+0x6441 0x7BE9
+0x6442 0x7C11
+0x6443 0x7C14
+0x6444 0x7BE6
+0x6445 0x7BE5
+0x6446 0x7C60
+0x6447 0x7C00
+0x6448 0x7C07
+0x6449 0x7C13
+0x644a 0x7BF3
+0x644b 0x7BF7
+0x644c 0x7C17
+0x644d 0x7C0D
+0x644e 0x7BF6
+0x644f 0x7C23
+0x6450 0x7C27
+0x6451 0x7C2A
+0x6452 0x7C1F
+0x6453 0x7C37
+0x6454 0x7C2B
+0x6455 0x7C3D
+0x6456 0x7C4C
+0x6457 0x7C43
+0x6458 0x7C54
+0x6459 0x7C4F
+0x645a 0x7C40
+0x645b 0x7C50
+0x645c 0x7C58
+0x645d 0x7C5F
+0x645e 0x7C64
+0x645f 0x7C56
+0x6460 0x7C65
+0x6461 0x7C6C
+0x6462 0x7C75
+0x6463 0x7C83
+0x6464 0x7C90
+0x6465 0x7CA4
+0x6466 0x7CAD
+0x6467 0x7CA2
+0x6468 0x7CAB
+0x6469 0x7CA1
+0x646a 0x7CA8
+0x646b 0x7CB3
+0x646c 0x7CB2
+0x646d 0x7CB1
+0x646e 0x7CAE
+0x646f 0x7CB9
+0x6470 0x7CBD
+0x6471 0x7CC0
+0x6472 0x7CC5
+0x6473 0x7CC2
+0x6474 0x7CD8
+0x6475 0x7CD2
+0x6476 0x7CDC
+0x6477 0x7CE2
+0x6478 0x9B3B
+0x6479 0x7CEF
+0x647a 0x7CF2
+0x647b 0x7CF4
+0x647c 0x7CF6
+0x647d 0x7CFA
+0x647e 0x7D06
+0x6521 0x7D02
+0x6522 0x7D1C
+0x6523 0x7D15
+0x6524 0x7D0A
+0x6525 0x7D45
+0x6526 0x7D4B
+0x6527 0x7D2E
+0x6528 0x7D32
+0x6529 0x7D3F
+0x652a 0x7D35
+0x652b 0x7D46
+0x652c 0x7D73
+0x652d 0x7D56
+0x652e 0x7D4E
+0x652f 0x7D72
+0x6530 0x7D68
+0x6531 0x7D6E
+0x6532 0x7D4F
+0x6533 0x7D63
+0x6534 0x7D93
+0x6535 0x7D89
+0x6536 0x7D5B
+0x6537 0x7D8F
+0x6538 0x7D7D
+0x6539 0x7D9B
+0x653a 0x7DBA
+0x653b 0x7DAE
+0x653c 0x7DA3
+0x653d 0x7DB5
+0x653e 0x7DC7
+0x653f 0x7DBD
+0x6540 0x7DAB
+0x6541 0x7E3D
+0x6542 0x7DA2
+0x6543 0x7DAF
+0x6544 0x7DDC
+0x6545 0x7DB8
+0x6546 0x7D9F
+0x6547 0x7DB0
+0x6548 0x7DD8
+0x6549 0x7DDD
+0x654a 0x7DE4
+0x654b 0x7DDE
+0x654c 0x7DFB
+0x654d 0x7DF2
+0x654e 0x7DE1
+0x654f 0x7E05
+0x6550 0x7E0A
+0x6551 0x7E23
+0x6552 0x7E21
+0x6553 0x7E12
+0x6554 0x7E31
+0x6555 0x7E1F
+0x6556 0x7E09
+0x6557 0x7E0B
+0x6558 0x7E22
+0x6559 0x7E46
+0x655a 0x7E66
+0x655b 0x7E3B
+0x655c 0x7E35
+0x655d 0x7E39
+0x655e 0x7E43
+0x655f 0x7E37
+0x6560 0x7E32
+0x6561 0x7E3A
+0x6562 0x7E67
+0x6563 0x7E5D
+0x6564 0x7E56
+0x6565 0x7E5E
+0x6566 0x7E59
+0x6567 0x7E5A
+0x6568 0x7E79
+0x6569 0x7E6A
+0x656a 0x7E69
+0x656b 0x7E7C
+0x656c 0x7E7B
+0x656d 0x7E83
+0x656e 0x7DD5
+0x656f 0x7E7D
+0x6570 0x8FAE
+0x6571 0x7E7F
+0x6572 0x7E88
+0x6573 0x7E89
+0x6574 0x7E8C
+0x6575 0x7E92
+0x6576 0x7E90
+0x6577 0x7E93
+0x6578 0x7E94
+0x6579 0x7E96
+0x657a 0x7E8E
+0x657b 0x7E9B
+0x657c 0x7E9C
+0x657d 0x7F38
+0x657e 0x7F3A
+0x6621 0x7F45
+0x6622 0x7F4C
+0x6623 0x7F4D
+0x6624 0x7F4E
+0x6625 0x7F50
+0x6626 0x7F51
+0x6627 0x7F55
+0x6628 0x7F54
+0x6629 0x7F58
+0x662a 0x7F5F
+0x662b 0x7F60
+0x662c 0x7F68
+0x662d 0x7F69
+0x662e 0x7F67
+0x662f 0x7F78
+0x6630 0x7F82
+0x6631 0x7F86
+0x6632 0x7F83
+0x6633 0x7F88
+0x6634 0x7F87
+0x6635 0x7F8C
+0x6636 0x7F94
+0x6637 0x7F9E
+0x6638 0x7F9D
+0x6639 0x7F9A
+0x663a 0x7FA3
+0x663b 0x7FAF
+0x663c 0x7FB2
+0x663d 0x7FB9
+0x663e 0x7FAE
+0x663f 0x7FB6
+0x6640 0x7FB8
+0x6641 0x8B71
+0x6642 0x7FC5
+0x6643 0x7FC6
+0x6644 0x7FCA
+0x6645 0x7FD5
+0x6646 0x7FD4
+0x6647 0x7FE1
+0x6648 0x7FE6
+0x6649 0x7FE9
+0x664a 0x7FF3
+0x664b 0x7FF9
+0x664c 0x98DC
+0x664d 0x8006
+0x664e 0x8004
+0x664f 0x800B
+0x6650 0x8012
+0x6651 0x8018
+0x6652 0x8019
+0x6653 0x801C
+0x6654 0x8021
+0x6655 0x8028
+0x6656 0x803F
+0x6657 0x803B
+0x6658 0x804A
+0x6659 0x8046
+0x665a 0x8052
+0x665b 0x8058
+0x665c 0x805A
+0x665d 0x805F
+0x665e 0x8062
+0x665f 0x8068
+0x6660 0x8073
+0x6661 0x8072
+0x6662 0x8070
+0x6663 0x8076
+0x6664 0x8079
+0x6665 0x807D
+0x6666 0x807F
+0x6667 0x8084
+0x6668 0x8086
+0x6669 0x8085
+0x666a 0x809B
+0x666b 0x8093
+0x666c 0x809A
+0x666d 0x80AD
+0x666e 0x5190
+0x666f 0x80AC
+0x6670 0x80DB
+0x6671 0x80E5
+0x6672 0x80D9
+0x6673 0x80DD
+0x6674 0x80C4
+0x6675 0x80DA
+0x6676 0x80D6
+0x6677 0x8109
+0x6678 0x80EF
+0x6679 0x80F1
+0x667a 0x811B
+0x667b 0x8129
+0x667c 0x8123
+0x667d 0x812F
+0x667e 0x814B
+0x6721 0x968B
+0x6722 0x8146
+0x6723 0x813E
+0x6724 0x8153
+0x6725 0x8151
+0x6726 0x80FC
+0x6727 0x8171
+0x6728 0x816E
+0x6729 0x8165
+0x672a 0x8166
+0x672b 0x8174
+0x672c 0x8183
+0x672d 0x8188
+0x672e 0x818A
+0x672f 0x8180
+0x6730 0x8182
+0x6731 0x81A0
+0x6732 0x8195
+0x6733 0x81A4
+0x6734 0x81A3
+0x6735 0x815F
+0x6736 0x8193
+0x6737 0x81A9
+0x6738 0x81B0
+0x6739 0x81B5
+0x673a 0x81BE
+0x673b 0x81B8
+0x673c 0x81BD
+0x673d 0x81C0
+0x673e 0x81C2
+0x673f 0x81BA
+0x6740 0x81C9
+0x6741 0x81CD
+0x6742 0x81D1
+0x6743 0x81D9
+0x6744 0x81D8
+0x6745 0x81C8
+0x6746 0x81DA
+0x6747 0x81DF
+0x6748 0x81E0
+0x6749 0x81E7
+0x674a 0x81FA
+0x674b 0x81FB
+0x674c 0x81FE
+0x674d 0x8201
+0x674e 0x8202
+0x674f 0x8205
+0x6750 0x8207
+0x6751 0x820A
+0x6752 0x820D
+0x6753 0x8210
+0x6754 0x8216
+0x6755 0x8229
+0x6756 0x822B
+0x6757 0x8238
+0x6758 0x8233
+0x6759 0x8240
+0x675a 0x8259
+0x675b 0x8258
+0x675c 0x825D
+0x675d 0x825A
+0x675e 0x825F
+0x675f 0x8264
+0x6760 0x8262
+0x6761 0x8268
+0x6762 0x826A
+0x6763 0x826B
+0x6764 0x822E
+0x6765 0x8271
+0x6766 0x8277
+0x6767 0x8278
+0x6768 0x827E
+0x6769 0x828D
+0x676a 0x8292
+0x676b 0x82AB
+0x676c 0x829F
+0x676d 0x82BB
+0x676e 0x82AC
+0x676f 0x82E1
+0x6770 0x82E3
+0x6771 0x82DF
+0x6772 0x82D2
+0x6773 0x82F4
+0x6774 0x82F3
+0x6775 0x82FA
+0x6776 0x8393
+0x6777 0x8303
+0x6778 0x82FB
+0x6779 0x82F9
+0x677a 0x82DE
+0x677b 0x8306
+0x677c 0x82DC
+0x677d 0x8309
+0x677e 0x82D9
+0x6821 0x8335
+0x6822 0x8334
+0x6823 0x8316
+0x6824 0x8332
+0x6825 0x8331
+0x6826 0x8340
+0x6827 0x8339
+0x6828 0x8350
+0x6829 0x8345
+0x682a 0x832F
+0x682b 0x832B
+0x682c 0x8317
+0x682d 0x8318
+0x682e 0x8385
+0x682f 0x839A
+0x6830 0x83AA
+0x6831 0x839F
+0x6832 0x83A2
+0x6833 0x8396
+0x6834 0x8323
+0x6835 0x838E
+0x6836 0x8387
+0x6837 0x838A
+0x6838 0x837C
+0x6839 0x83B5
+0x683a 0x8373
+0x683b 0x8375
+0x683c 0x83A0
+0x683d 0x8389
+0x683e 0x83A8
+0x683f 0x83F4
+0x6840 0x8413
+0x6841 0x83EB
+0x6842 0x83CE
+0x6843 0x83FD
+0x6844 0x8403
+0x6845 0x83D8
+0x6846 0x840B
+0x6847 0x83C1
+0x6848 0x83F7
+0x6849 0x8407
+0x684a 0x83E0
+0x684b 0x83F2
+0x684c 0x840D
+0x684d 0x8422
+0x684e 0x8420
+0x684f 0x83BD
+0x6850 0x8438
+0x6851 0x8506
+0x6852 0x83FB
+0x6853 0x846D
+0x6854 0x842A
+0x6855 0x843C
+0x6856 0x855A
+0x6857 0x8484
+0x6858 0x8477
+0x6859 0x846B
+0x685a 0x84AD
+0x685b 0x846E
+0x685c 0x8482
+0x685d 0x8469
+0x685e 0x8446
+0x685f 0x842C
+0x6860 0x846F
+0x6861 0x8479
+0x6862 0x8435
+0x6863 0x84CA
+0x6864 0x8462
+0x6865 0x84B9
+0x6866 0x84BF
+0x6867 0x849F
+0x6868 0x84D9
+0x6869 0x84CD
+0x686a 0x84BB
+0x686b 0x84DA
+0x686c 0x84D0
+0x686d 0x84C1
+0x686e 0x84C6
+0x686f 0x84D6
+0x6870 0x84A1
+0x6871 0x8521
+0x6872 0x84FF
+0x6873 0x84F4
+0x6874 0x8517
+0x6875 0x8518
+0x6876 0x852C
+0x6877 0x851F
+0x6878 0x8515
+0x6879 0x8514
+0x687a 0x84FC
+0x687b 0x8540
+0x687c 0x8563
+0x687d 0x8558
+0x687e 0x8548
+0x6921 0x8541
+0x6922 0x8602
+0x6923 0x854B
+0x6924 0x8555
+0x6925 0x8580
+0x6926 0x85A4
+0x6927 0x8588
+0x6928 0x8591
+0x6929 0x858A
+0x692a 0x85A8
+0x692b 0x856D
+0x692c 0x8594
+0x692d 0x859B
+0x692e 0x85EA
+0x692f 0x8587
+0x6930 0x859C
+0x6931 0x8577
+0x6932 0x857E
+0x6933 0x8590
+0x6934 0x85C9
+0x6935 0x85BA
+0x6936 0x85CF
+0x6937 0x85B9
+0x6938 0x85D0
+0x6939 0x85D5
+0x693a 0x85DD
+0x693b 0x85E5
+0x693c 0x85DC
+0x693d 0x85F9
+0x693e 0x860A
+0x693f 0x8613
+0x6940 0x860B
+0x6941 0x85FE
+0x6942 0x85FA
+0x6943 0x8606
+0x6944 0x8622
+0x6945 0x861A
+0x6946 0x8630
+0x6947 0x863F
+0x6948 0x864D
+0x6949 0x4E55
+0x694a 0x8654
+0x694b 0x865F
+0x694c 0x8667
+0x694d 0x8671
+0x694e 0x8693
+0x694f 0x86A3
+0x6950 0x86A9
+0x6951 0x86AA
+0x6952 0x868B
+0x6953 0x868C
+0x6954 0x86B6
+0x6955 0x86AF
+0x6956 0x86C4
+0x6957 0x86C6
+0x6958 0x86B0
+0x6959 0x86C9
+0x695a 0x8823
+0x695b 0x86AB
+0x695c 0x86D4
+0x695d 0x86DE
+0x695e 0x86E9
+0x695f 0x86EC
+0x6960 0x86DF
+0x6961 0x86DB
+0x6962 0x86EF
+0x6963 0x8712
+0x6964 0x8706
+0x6965 0x8708
+0x6966 0x8700
+0x6967 0x8703
+0x6968 0x86FB
+0x6969 0x8711
+0x696a 0x8709
+0x696b 0x870D
+0x696c 0x86F9
+0x696d 0x870A
+0x696e 0x8734
+0x696f 0x873F
+0x6970 0x8737
+0x6971 0x873B
+0x6972 0x8725
+0x6973 0x8729
+0x6974 0x871A
+0x6975 0x8760
+0x6976 0x875F
+0x6977 0x8778
+0x6978 0x874C
+0x6979 0x874E
+0x697a 0x8774
+0x697b 0x8757
+0x697c 0x8768
+0x697d 0x876E
+0x697e 0x8759
+0x6a21 0x8753
+0x6a22 0x8763
+0x6a23 0x876A
+0x6a24 0x8805
+0x6a25 0x87A2
+0x6a26 0x879F
+0x6a27 0x8782
+0x6a28 0x87AF
+0x6a29 0x87CB
+0x6a2a 0x87BD
+0x6a2b 0x87C0
+0x6a2c 0x87D0
+0x6a2d 0x96D6
+0x6a2e 0x87AB
+0x6a2f 0x87C4
+0x6a30 0x87B3
+0x6a31 0x87C7
+0x6a32 0x87C6
+0x6a33 0x87BB
+0x6a34 0x87EF
+0x6a35 0x87F2
+0x6a36 0x87E0
+0x6a37 0x880F
+0x6a38 0x880D
+0x6a39 0x87FE
+0x6a3a 0x87F6
+0x6a3b 0x87F7
+0x6a3c 0x880E
+0x6a3d 0x87D2
+0x6a3e 0x8811
+0x6a3f 0x8816
+0x6a40 0x8815
+0x6a41 0x8822
+0x6a42 0x8821
+0x6a43 0x8831
+0x6a44 0x8836
+0x6a45 0x8839
+0x6a46 0x8827
+0x6a47 0x883B
+0x6a48 0x8844
+0x6a49 0x8842
+0x6a4a 0x8852
+0x6a4b 0x8859
+0x6a4c 0x885E
+0x6a4d 0x8862
+0x6a4e 0x886B
+0x6a4f 0x8881
+0x6a50 0x887E
+0x6a51 0x889E
+0x6a52 0x8875
+0x6a53 0x887D
+0x6a54 0x88B5
+0x6a55 0x8872
+0x6a56 0x8882
+0x6a57 0x8897
+0x6a58 0x8892
+0x6a59 0x88AE
+0x6a5a 0x8899
+0x6a5b 0x88A2
+0x6a5c 0x888D
+0x6a5d 0x88A4
+0x6a5e 0x88B0
+0x6a5f 0x88BF
+0x6a60 0x88B1
+0x6a61 0x88C3
+0x6a62 0x88C4
+0x6a63 0x88D4
+0x6a64 0x88D8
+0x6a65 0x88D9
+0x6a66 0x88DD
+0x6a67 0x88F9
+0x6a68 0x8902
+0x6a69 0x88FC
+0x6a6a 0x88F4
+0x6a6b 0x88E8
+0x6a6c 0x88F2
+0x6a6d 0x8904
+0x6a6e 0x890C
+0x6a6f 0x890A
+0x6a70 0x8913
+0x6a71 0x8943
+0x6a72 0x891E
+0x6a73 0x8925
+0x6a74 0x892A
+0x6a75 0x892B
+0x6a76 0x8941
+0x6a77 0x8944
+0x6a78 0x893B
+0x6a79 0x8936
+0x6a7a 0x8938
+0x6a7b 0x894C
+0x6a7c 0x891D
+0x6a7d 0x8960
+0x6a7e 0x895E
+0x6b21 0x8966
+0x6b22 0x8964
+0x6b23 0x896D
+0x6b24 0x896A
+0x6b25 0x896F
+0x6b26 0x8974
+0x6b27 0x8977
+0x6b28 0x897E
+0x6b29 0x8983
+0x6b2a 0x8988
+0x6b2b 0x898A
+0x6b2c 0x8993
+0x6b2d 0x8998
+0x6b2e 0x89A1
+0x6b2f 0x89A9
+0x6b30 0x89A6
+0x6b31 0x89AC
+0x6b32 0x89AF
+0x6b33 0x89B2
+0x6b34 0x89BA
+0x6b35 0x89BD
+0x6b36 0x89BF
+0x6b37 0x89C0
+0x6b38 0x89DA
+0x6b39 0x89DC
+0x6b3a 0x89DD
+0x6b3b 0x89E7
+0x6b3c 0x89F4
+0x6b3d 0x89F8
+0x6b3e 0x8A03
+0x6b3f 0x8A16
+0x6b40 0x8A10
+0x6b41 0x8A0C
+0x6b42 0x8A1B
+0x6b43 0x8A1D
+0x6b44 0x8A25
+0x6b45 0x8A36
+0x6b46 0x8A41
+0x6b47 0x8A5B
+0x6b48 0x8A52
+0x6b49 0x8A46
+0x6b4a 0x8A48
+0x6b4b 0x8A7C
+0x6b4c 0x8A6D
+0x6b4d 0x8A6C
+0x6b4e 0x8A62
+0x6b4f 0x8A85
+0x6b50 0x8A82
+0x6b51 0x8A84
+0x6b52 0x8AA8
+0x6b53 0x8AA1
+0x6b54 0x8A91
+0x6b55 0x8AA5
+0x6b56 0x8AA6
+0x6b57 0x8A9A
+0x6b58 0x8AA3
+0x6b59 0x8AC4
+0x6b5a 0x8ACD
+0x6b5b 0x8AC2
+0x6b5c 0x8ADA
+0x6b5d 0x8AEB
+0x6b5e 0x8AF3
+0x6b5f 0x8AE7
+0x6b60 0x8AE4
+0x6b61 0x8AF1
+0x6b62 0x8B14
+0x6b63 0x8AE0
+0x6b64 0x8AE2
+0x6b65 0x8AF7
+0x6b66 0x8ADE
+0x6b67 0x8ADB
+0x6b68 0x8B0C
+0x6b69 0x8B07
+0x6b6a 0x8B1A
+0x6b6b 0x8AE1
+0x6b6c 0x8B16
+0x6b6d 0x8B10
+0x6b6e 0x8B17
+0x6b6f 0x8B20
+0x6b70 0x8B33
+0x6b71 0x97AB
+0x6b72 0x8B26
+0x6b73 0x8B2B
+0x6b74 0x8B3E
+0x6b75 0x8B28
+0x6b76 0x8B41
+0x6b77 0x8B4C
+0x6b78 0x8B4F
+0x6b79 0x8B4E
+0x6b7a 0x8B49
+0x6b7b 0x8B56
+0x6b7c 0x8B5B
+0x6b7d 0x8B5A
+0x6b7e 0x8B6B
+0x6c21 0x8B5F
+0x6c22 0x8B6C
+0x6c23 0x8B6F
+0x6c24 0x8B74
+0x6c25 0x8B7D
+0x6c26 0x8B80
+0x6c27 0x8B8C
+0x6c28 0x8B8E
+0x6c29 0x8B92
+0x6c2a 0x8B93
+0x6c2b 0x8B96
+0x6c2c 0x8B99
+0x6c2d 0x8B9A
+0x6c2e 0x8C3A
+0x6c2f 0x8C41
+0x6c30 0x8C3F
+0x6c31 0x8C48
+0x6c32 0x8C4C
+0x6c33 0x8C4E
+0x6c34 0x8C50
+0x6c35 0x8C55
+0x6c36 0x8C62
+0x6c37 0x8C6C
+0x6c38 0x8C78
+0x6c39 0x8C7A
+0x6c3a 0x8C82
+0x6c3b 0x8C89
+0x6c3c 0x8C85
+0x6c3d 0x8C8A
+0x6c3e 0x8C8D
+0x6c3f 0x8C8E
+0x6c40 0x8C94
+0x6c41 0x8C7C
+0x6c42 0x8C98
+0x6c43 0x621D
+0x6c44 0x8CAD
+0x6c45 0x8CAA
+0x6c46 0x8CBD
+0x6c47 0x8CB2
+0x6c48 0x8CB3
+0x6c49 0x8CAE
+0x6c4a 0x8CB6
+0x6c4b 0x8CC8
+0x6c4c 0x8CC1
+0x6c4d 0x8CE4
+0x6c4e 0x8CE3
+0x6c4f 0x8CDA
+0x6c50 0x8CFD
+0x6c51 0x8CFA
+0x6c52 0x8CFB
+0x6c53 0x8D04
+0x6c54 0x8D05
+0x6c55 0x8D0A
+0x6c56 0x8D07
+0x6c57 0x8D0F
+0x6c58 0x8D0D
+0x6c59 0x8D10
+0x6c5a 0x9F4E
+0x6c5b 0x8D13
+0x6c5c 0x8CCD
+0x6c5d 0x8D14
+0x6c5e 0x8D16
+0x6c5f 0x8D67
+0x6c60 0x8D6D
+0x6c61 0x8D71
+0x6c62 0x8D73
+0x6c63 0x8D81
+0x6c64 0x8D99
+0x6c65 0x8DC2
+0x6c66 0x8DBE
+0x6c67 0x8DBA
+0x6c68 0x8DCF
+0x6c69 0x8DDA
+0x6c6a 0x8DD6
+0x6c6b 0x8DCC
+0x6c6c 0x8DDB
+0x6c6d 0x8DCB
+0x6c6e 0x8DEA
+0x6c6f 0x8DEB
+0x6c70 0x8DDF
+0x6c71 0x8DE3
+0x6c72 0x8DFC
+0x6c73 0x8E08
+0x6c74 0x8E09
+0x6c75 0x8DFF
+0x6c76 0x8E1D
+0x6c77 0x8E1E
+0x6c78 0x8E10
+0x6c79 0x8E1F
+0x6c7a 0x8E42
+0x6c7b 0x8E35
+0x6c7c 0x8E30
+0x6c7d 0x8E34
+0x6c7e 0x8E4A
+0x6d21 0x8E47
+0x6d22 0x8E49
+0x6d23 0x8E4C
+0x6d24 0x8E50
+0x6d25 0x8E48
+0x6d26 0x8E59
+0x6d27 0x8E64
+0x6d28 0x8E60
+0x6d29 0x8E2A
+0x6d2a 0x8E63
+0x6d2b 0x8E55
+0x6d2c 0x8E76
+0x6d2d 0x8E72
+0x6d2e 0x8E7C
+0x6d2f 0x8E81
+0x6d30 0x8E87
+0x6d31 0x8E85
+0x6d32 0x8E84
+0x6d33 0x8E8B
+0x6d34 0x8E8A
+0x6d35 0x8E93
+0x6d36 0x8E91
+0x6d37 0x8E94
+0x6d38 0x8E99
+0x6d39 0x8EAA
+0x6d3a 0x8EA1
+0x6d3b 0x8EAC
+0x6d3c 0x8EB0
+0x6d3d 0x8EC6
+0x6d3e 0x8EB1
+0x6d3f 0x8EBE
+0x6d40 0x8EC5
+0x6d41 0x8EC8
+0x6d42 0x8ECB
+0x6d43 0x8EDB
+0x6d44 0x8EE3
+0x6d45 0x8EFC
+0x6d46 0x8EFB
+0x6d47 0x8EEB
+0x6d48 0x8EFE
+0x6d49 0x8F0A
+0x6d4a 0x8F05
+0x6d4b 0x8F15
+0x6d4c 0x8F12
+0x6d4d 0x8F19
+0x6d4e 0x8F13
+0x6d4f 0x8F1C
+0x6d50 0x8F1F
+0x6d51 0x8F1B
+0x6d52 0x8F0C
+0x6d53 0x8F26
+0x6d54 0x8F33
+0x6d55 0x8F3B
+0x6d56 0x8F39
+0x6d57 0x8F45
+0x6d58 0x8F42
+0x6d59 0x8F3E
+0x6d5a 0x8F4C
+0x6d5b 0x8F49
+0x6d5c 0x8F46
+0x6d5d 0x8F4E
+0x6d5e 0x8F57
+0x6d5f 0x8F5C
+0x6d60 0x8F62
+0x6d61 0x8F63
+0x6d62 0x8F64
+0x6d63 0x8F9C
+0x6d64 0x8F9F
+0x6d65 0x8FA3
+0x6d66 0x8FAD
+0x6d67 0x8FAF
+0x6d68 0x8FB7
+0x6d69 0x8FDA
+0x6d6a 0x8FE5
+0x6d6b 0x8FE2
+0x6d6c 0x8FEA
+0x6d6d 0x8FEF
+0x6d6e 0x9087
+0x6d6f 0x8FF4
+0x6d70 0x9005
+0x6d71 0x8FF9
+0x6d72 0x8FFA
+0x6d73 0x9011
+0x6d74 0x9015
+0x6d75 0x9021
+0x6d76 0x900D
+0x6d77 0x901E
+0x6d78 0x9016
+0x6d79 0x900B
+0x6d7a 0x9027
+0x6d7b 0x9036
+0x6d7c 0x9035
+0x6d7d 0x9039
+0x6d7e 0x8FF8
+0x6e21 0x904F
+0x6e22 0x9050
+0x6e23 0x9051
+0x6e24 0x9052
+0x6e25 0x900E
+0x6e26 0x9049
+0x6e27 0x903E
+0x6e28 0x9056
+0x6e29 0x9058
+0x6e2a 0x905E
+0x6e2b 0x9068
+0x6e2c 0x906F
+0x6e2d 0x9076
+0x6e2e 0x96A8
+0x6e2f 0x9072
+0x6e30 0x9082
+0x6e31 0x907D
+0x6e32 0x9081
+0x6e33 0x9080
+0x6e34 0x908A
+0x6e35 0x9089
+0x6e36 0x908F
+0x6e37 0x90A8
+0x6e38 0x90AF
+0x6e39 0x90B1
+0x6e3a 0x90B5
+0x6e3b 0x90E2
+0x6e3c 0x90E4
+0x6e3d 0x6248
+0x6e3e 0x90DB
+0x6e3f 0x9102
+0x6e40 0x9112
+0x6e41 0x9119
+0x6e42 0x9132
+0x6e43 0x9130
+0x6e44 0x914A
+0x6e45 0x9156
+0x6e46 0x9158
+0x6e47 0x9163
+0x6e48 0x9165
+0x6e49 0x9169
+0x6e4a 0x9173
+0x6e4b 0x9172
+0x6e4c 0x918B
+0x6e4d 0x9189
+0x6e4e 0x9182
+0x6e4f 0x91A2
+0x6e50 0x91AB
+0x6e51 0x91AF
+0x6e52 0x91AA
+0x6e53 0x91B5
+0x6e54 0x91B4
+0x6e55 0x91BA
+0x6e56 0x91C0
+0x6e57 0x91C1
+0x6e58 0x91C9
+0x6e59 0x91CB
+0x6e5a 0x91D0
+0x6e5b 0x91D6
+0x6e5c 0x91DF
+0x6e5d 0x91E1
+0x6e5e 0x91DB
+0x6e5f 0x91FC
+0x6e60 0x91F5
+0x6e61 0x91F6
+0x6e62 0x921E
+0x6e63 0x91FF
+0x6e64 0x9214
+0x6e65 0x922C
+0x6e66 0x9215
+0x6e67 0x9211
+0x6e68 0x925E
+0x6e69 0x9257
+0x6e6a 0x9245
+0x6e6b 0x9249
+0x6e6c 0x9264
+0x6e6d 0x9248
+0x6e6e 0x9295
+0x6e6f 0x923F
+0x6e70 0x924B
+0x6e71 0x9250
+0x6e72 0x929C
+0x6e73 0x9296
+0x6e74 0x9293
+0x6e75 0x929B
+0x6e76 0x925A
+0x6e77 0x92CF
+0x6e78 0x92B9
+0x6e79 0x92B7
+0x6e7a 0x92E9
+0x6e7b 0x930F
+0x6e7c 0x92FA
+0x6e7d 0x9344
+0x6e7e 0x932E
+0x6f21 0x9319
+0x6f22 0x9322
+0x6f23 0x931A
+0x6f24 0x9323
+0x6f25 0x933A
+0x6f26 0x9335
+0x6f27 0x933B
+0x6f28 0x935C
+0x6f29 0x9360
+0x6f2a 0x937C
+0x6f2b 0x936E
+0x6f2c 0x9356
+0x6f2d 0x93B0
+0x6f2e 0x93AC
+0x6f2f 0x93AD
+0x6f30 0x9394
+0x6f31 0x93B9
+0x6f32 0x93D6
+0x6f33 0x93D7
+0x6f34 0x93E8
+0x6f35 0x93E5
+0x6f36 0x93D8
+0x6f37 0x93C3
+0x6f38 0x93DD
+0x6f39 0x93D0
+0x6f3a 0x93C8
+0x6f3b 0x93E4
+0x6f3c 0x941A
+0x6f3d 0x9414
+0x6f3e 0x9413
+0x6f3f 0x9403
+0x6f40 0x9407
+0x6f41 0x9410
+0x6f42 0x9436
+0x6f43 0x942B
+0x6f44 0x9435
+0x6f45 0x9421
+0x6f46 0x943A
+0x6f47 0x9441
+0x6f48 0x9452
+0x6f49 0x9444
+0x6f4a 0x945B
+0x6f4b 0x9460
+0x6f4c 0x9462
+0x6f4d 0x945E
+0x6f4e 0x946A
+0x6f4f 0x9229
+0x6f50 0x9470
+0x6f51 0x9475
+0x6f52 0x9477
+0x6f53 0x947D
+0x6f54 0x945A
+0x6f55 0x947C
+0x6f56 0x947E
+0x6f57 0x9481
+0x6f58 0x947F
+0x6f59 0x9582
+0x6f5a 0x9587
+0x6f5b 0x958A
+0x6f5c 0x9594
+0x6f5d 0x9596
+0x6f5e 0x9598
+0x6f5f 0x9599
+0x6f60 0x95A0
+0x6f61 0x95A8
+0x6f62 0x95A7
+0x6f63 0x95AD
+0x6f64 0x95BC
+0x6f65 0x95BB
+0x6f66 0x95B9
+0x6f67 0x95BE
+0x6f68 0x95CA
+0x6f69 0x6FF6
+0x6f6a 0x95C3
+0x6f6b 0x95CD
+0x6f6c 0x95CC
+0x6f6d 0x95D5
+0x6f6e 0x95D4
+0x6f6f 0x95D6
+0x6f70 0x95DC
+0x6f71 0x95E1
+0x6f72 0x95E5
+0x6f73 0x95E2
+0x6f74 0x9621
+0x6f75 0x9628
+0x6f76 0x962E
+0x6f77 0x962F
+0x6f78 0x9642
+0x6f79 0x964C
+0x6f7a 0x964F
+0x6f7b 0x964B
+0x6f7c 0x9677
+0x6f7d 0x965C
+0x6f7e 0x965E
+0x7021 0x965D
+0x7022 0x965F
+0x7023 0x9666
+0x7024 0x9672
+0x7025 0x966C
+0x7026 0x968D
+0x7027 0x9698
+0x7028 0x9695
+0x7029 0x9697
+0x702a 0x96AA
+0x702b 0x96A7
+0x702c 0x96B1
+0x702d 0x96B2
+0x702e 0x96B0
+0x702f 0x96B4
+0x7030 0x96B6
+0x7031 0x96B8
+0x7032 0x96B9
+0x7033 0x96CE
+0x7034 0x96CB
+0x7035 0x96C9
+0x7036 0x96CD
+0x7037 0x894D
+0x7038 0x96DC
+0x7039 0x970D
+0x703a 0x96D5
+0x703b 0x96F9
+0x703c 0x9704
+0x703d 0x9706
+0x703e 0x9708
+0x703f 0x9713
+0x7040 0x970E
+0x7041 0x9711
+0x7042 0x970F
+0x7043 0x9716
+0x7044 0x9719
+0x7045 0x9724
+0x7046 0x972A
+0x7047 0x9730
+0x7048 0x9739
+0x7049 0x973D
+0x704a 0x973E
+0x704b 0x9744
+0x704c 0x9746
+0x704d 0x9748
+0x704e 0x9742
+0x704f 0x9749
+0x7050 0x975C
+0x7051 0x9760
+0x7052 0x9764
+0x7053 0x9766
+0x7054 0x9768
+0x7055 0x52D2
+0x7056 0x976B
+0x7057 0x9771
+0x7058 0x9779
+0x7059 0x9785
+0x705a 0x977C
+0x705b 0x9781
+0x705c 0x977A
+0x705d 0x9786
+0x705e 0x978B
+0x705f 0x978F
+0x7060 0x9790
+0x7061 0x979C
+0x7062 0x97A8
+0x7063 0x97A6
+0x7064 0x97A3
+0x7065 0x97B3
+0x7066 0x97B4
+0x7067 0x97C3
+0x7068 0x97C6
+0x7069 0x97C8
+0x706a 0x97CB
+0x706b 0x97DC
+0x706c 0x97ED
+0x706d 0x9F4F
+0x706e 0x97F2
+0x706f 0x7ADF
+0x7070 0x97F6
+0x7071 0x97F5
+0x7072 0x980F
+0x7073 0x980C
+0x7074 0x9838
+0x7075 0x9824
+0x7076 0x9821
+0x7077 0x9837
+0x7078 0x983D
+0x7079 0x9846
+0x707a 0x984F
+0x707b 0x984B
+0x707c 0x986B
+0x707d 0x986F
+0x707e 0x9870
+0x7121 0x9871
+0x7122 0x9874
+0x7123 0x9873
+0x7124 0x98AA
+0x7125 0x98AF
+0x7126 0x98B1
+0x7127 0x98B6
+0x7128 0x98C4
+0x7129 0x98C3
+0x712a 0x98C6
+0x712b 0x98E9
+0x712c 0x98EB
+0x712d 0x9903
+0x712e 0x9909
+0x712f 0x9912
+0x7130 0x9914
+0x7131 0x9918
+0x7132 0x9921
+0x7133 0x991D
+0x7134 0x991E
+0x7135 0x9924
+0x7136 0x9920
+0x7137 0x992C
+0x7138 0x992E
+0x7139 0x993D
+0x713a 0x993E
+0x713b 0x9942
+0x713c 0x9949
+0x713d 0x9945
+0x713e 0x9950
+0x713f 0x994B
+0x7140 0x9951
+0x7141 0x9952
+0x7142 0x994C
+0x7143 0x9955
+0x7144 0x9997
+0x7145 0x9998
+0x7146 0x99A5
+0x7147 0x99AD
+0x7148 0x99AE
+0x7149 0x99BC
+0x714a 0x99DF
+0x714b 0x99DB
+0x714c 0x99DD
+0x714d 0x99D8
+0x714e 0x99D1
+0x714f 0x99ED
+0x7150 0x99EE
+0x7151 0x99F1
+0x7152 0x99F2
+0x7153 0x99FB
+0x7154 0x99F8
+0x7155 0x9A01
+0x7156 0x9A0F
+0x7157 0x9A05
+0x7158 0x99E2
+0x7159 0x9A19
+0x715a 0x9A2B
+0x715b 0x9A37
+0x715c 0x9A45
+0x715d 0x9A42
+0x715e 0x9A40
+0x715f 0x9A43
+0x7160 0x9A3E
+0x7161 0x9A55
+0x7162 0x9A4D
+0x7163 0x9A5B
+0x7164 0x9A57
+0x7165 0x9A5F
+0x7166 0x9A62
+0x7167 0x9A65
+0x7168 0x9A64
+0x7169 0x9A69
+0x716a 0x9A6B
+0x716b 0x9A6A
+0x716c 0x9AAD
+0x716d 0x9AB0
+0x716e 0x9ABC
+0x716f 0x9AC0
+0x7170 0x9ACF
+0x7171 0x9AD1
+0x7172 0x9AD3
+0x7173 0x9AD4
+0x7174 0x9ADE
+0x7175 0x9ADF
+0x7176 0x9AE2
+0x7177 0x9AE3
+0x7178 0x9AE6
+0x7179 0x9AEF
+0x717a 0x9AEB
+0x717b 0x9AEE
+0x717c 0x9AF4
+0x717d 0x9AF1
+0x717e 0x9AF7
+0x7221 0x9AFB
+0x7222 0x9B06
+0x7223 0x9B18
+0x7224 0x9B1A
+0x7225 0x9B1F
+0x7226 0x9B22
+0x7227 0x9B23
+0x7228 0x9B25
+0x7229 0x9B27
+0x722a 0x9B28
+0x722b 0x9B29
+0x722c 0x9B2A
+0x722d 0x9B2E
+0x722e 0x9B2F
+0x722f 0x9B32
+0x7230 0x9B44
+0x7231 0x9B43
+0x7232 0x9B4F
+0x7233 0x9B4D
+0x7234 0x9B4E
+0x7235 0x9B51
+0x7236 0x9B58
+0x7237 0x9B74
+0x7238 0x9B93
+0x7239 0x9B83
+0x723a 0x9B91
+0x723b 0x9B96
+0x723c 0x9B97
+0x723d 0x9B9F
+0x723e 0x9BA0
+0x723f 0x9BA8
+0x7240 0x9BB4
+0x7241 0x9BC0
+0x7242 0x9BCA
+0x7243 0x9BB9
+0x7244 0x9BC6
+0x7245 0x9BCF
+0x7246 0x9BD1
+0x7247 0x9BD2
+0x7248 0x9BE3
+0x7249 0x9BE2
+0x724a 0x9BE4
+0x724b 0x9BD4
+0x724c 0x9BE1
+0x724d 0x9C3A
+0x724e 0x9BF2
+0x724f 0x9BF1
+0x7250 0x9BF0
+0x7251 0x9C15
+0x7252 0x9C14
+0x7253 0x9C09
+0x7254 0x9C13
+0x7255 0x9C0C
+0x7256 0x9C06
+0x7257 0x9C08
+0x7258 0x9C12
+0x7259 0x9C0A
+0x725a 0x9C04
+0x725b 0x9C2E
+0x725c 0x9C1B
+0x725d 0x9C25
+0x725e 0x9C24
+0x725f 0x9C21
+0x7260 0x9C30
+0x7261 0x9C47
+0x7262 0x9C32
+0x7263 0x9C46
+0x7264 0x9C3E
+0x7265 0x9C5A
+0x7266 0x9C60
+0x7267 0x9C67
+0x7268 0x9C76
+0x7269 0x9C78
+0x726a 0x9CE7
+0x726b 0x9CEC
+0x726c 0x9CF0
+0x726d 0x9D09
+0x726e 0x9D08
+0x726f 0x9CEB
+0x7270 0x9D03
+0x7271 0x9D06
+0x7272 0x9D2A
+0x7273 0x9D26
+0x7274 0x9DAF
+0x7275 0x9D23
+0x7276 0x9D1F
+0x7277 0x9D44
+0x7278 0x9D15
+0x7279 0x9D12
+0x727a 0x9D41
+0x727b 0x9D3F
+0x727c 0x9D3E
+0x727d 0x9D46
+0x727e 0x9D48
+0x7321 0x9D5D
+0x7322 0x9D5E
+0x7323 0x9D64
+0x7324 0x9D51
+0x7325 0x9D50
+0x7326 0x9D59
+0x7327 0x9D72
+0x7328 0x9D89
+0x7329 0x9D87
+0x732a 0x9DAB
+0x732b 0x9D6F
+0x732c 0x9D7A
+0x732d 0x9D9A
+0x732e 0x9DA4
+0x732f 0x9DA9
+0x7330 0x9DB2
+0x7331 0x9DC4
+0x7332 0x9DC1
+0x7333 0x9DBB
+0x7334 0x9DB8
+0x7335 0x9DBA
+0x7336 0x9DC6
+0x7337 0x9DCF
+0x7338 0x9DC2
+0x7339 0x9DD9
+0x733a 0x9DD3
+0x733b 0x9DF8
+0x733c 0x9DE6
+0x733d 0x9DED
+0x733e 0x9DEF
+0x733f 0x9DFD
+0x7340 0x9E1A
+0x7341 0x9E1B
+0x7342 0x9E1E
+0x7343 0x9E75
+0x7344 0x9E79
+0x7345 0x9E7D
+0x7346 0x9E81
+0x7347 0x9E88
+0x7348 0x9E8B
+0x7349 0x9E8C
+0x734a 0x9E92
+0x734b 0x9E95
+0x734c 0x9E91
+0x734d 0x9E9D
+0x734e 0x9EA5
+0x734f 0x9EA9
+0x7350 0x9EB8
+0x7351 0x9EAA
+0x7352 0x9EAD
+0x7353 0x9761
+0x7354 0x9ECC
+0x7355 0x9ECE
+0x7356 0x9ECF
+0x7357 0x9ED0
+0x7358 0x9ED4
+0x7359 0x9EDC
+0x735a 0x9EDE
+0x735b 0x9EDD
+0x735c 0x9EE0
+0x735d 0x9EE5
+0x735e 0x9EE8
+0x735f 0x9EEF
+0x7360 0x9EF4
+0x7361 0x9EF6
+0x7362 0x9EF7
+0x7363 0x9EF9
+0x7364 0x9EFB
+0x7365 0x9EFC
+0x7366 0x9EFD
+0x7367 0x9F07
+0x7368 0x9F08
+0x7369 0x76B7
+0x736a 0x9F15
+0x736b 0x9F21
+0x736c 0x9F2C
+0x736d 0x9F3E
+0x736e 0x9F4A
+0x736f 0x9F52
+0x7370 0x9F54
+0x7371 0x9F63
+0x7372 0x9F5F
+0x7373 0x9F60
+0x7374 0x9F61
+0x7375 0x9F66
+0x7376 0x9F67
+0x7377 0x9F6C
+0x7378 0x9F6A
+0x7379 0x9F77
+0x737a 0x9F72
+0x737b 0x9F76
+0x737c 0x9F95
+0x737d 0x9F9C
+0x737e 0x9FA0
+0x7421 0x582F
+0x7422 0x69C7
+0x7423 0x9059
+0x7424 0x7464
+0x7425 0x51DC
+0x7426 0x7199
+0x7428 0x5DE2
+0x7429 0x5E14
+0x742a 0x5E18
+0x742b 0x5E58
+0x742c 0x5E5E
+0x742d 0x5EBE
+0x742e 0xF928
+0x742f 0x5ECB
+0x7430 0x5EF9
+0x7431 0x5F00
+0x7432 0x5F02
+0x7433 0x5F07
+0x7434 0x5F1D
+0x7435 0x5F23
+0x7436 0x5F34
+0x7437 0x5F36
+0x7438 0x5F3D
+0x7439 0x5F40
+0x743a 0x5F45
+0x743b 0x5F54
+0x743c 0x5F58
+0x743d 0x5F64
+0x743e 0x5F67
+0x743f 0x5F7D
+0x7440 0x5F89
+0x7441 0x5F9C
+0x7442 0x5FA7
+0x7443 0x5FAF
+0x7444 0x5FB5
+0x7445 0x5FB7
+0x7446 0x5FC9
+0x7447 0x5FDE
+0x7448 0x5FE1
+0x7449 0x5FE9
+0x744a 0x600D
+0x744b 0x6014
+0x744c 0x6018
+0x744d 0x6033
+0x744e 0x6035
+0x744f 0x6047
+0x7450 0xFA3D
+0x7451 0x609D
+0x7452 0x609E
+0x7453 0x60CB
+0x7454 0x60D4
+0x7455 0x60D5
+0x7456 0x60DD
+0x7457 0x60F8
+0x7458 0x611C
+0x7459 0x612B
+0x745a 0x6130
+0x745b 0x6137
+0x745c 0xFA3E
+0x745d 0x618D
+0x745e 0xFA3F
+0x745f 0x61BC
+0x7460 0x61B9
+0x7461 0xFA40
+0x7462 0x6222
+0x7463 0x623E
+0x7464 0x6243
+0x7465 0x6256
+0x7466 0x625A
+0x7467 0x626F
+0x7468 0x6285
+0x7469 0x62C4
+0x746a 0x62D6
+0x746b 0x62FC
+0x746c 0x630A
+0x746d 0x6318
+0x746e 0x6339
+0x746f 0x6343
+0x7470 0x6365
+0x7471 0x637C
+0x7472 0x63E5
+0x7473 0x63ED
+0x7474 0x63F5
+0x7475 0x6410
+0x7476 0x6414
+0x7477 0x6422
+0x7478 0x6479
+0x7479 0x6451
+0x747a 0x6460
+0x747b 0x646D
+0x747c 0x64CE
+0x747d 0x64BE
+0x747e 0x64BF
+0x7521 0x64C4
+0x7522 0x64CA
+0x7523 0x64D0
+0x7524 0x64F7
+0x7525 0x64FB
+0x7526 0x6522
+0x7527 0x6529
+0x7528 0xFA41
+0x7529 0x6567
+0x752a 0x659D
+0x752b 0xFA42
+0x752c 0x6600
+0x752d 0x6609
+0x752e 0x6615
+0x752f 0x661E
+0x7530 0x663A
+0x7531 0x6622
+0x7532 0x6624
+0x7533 0x662B
+0x7534 0x6630
+0x7535 0x6631
+0x7536 0x6633
+0x7537 0x66FB
+0x7538 0x6648
+0x7539 0x664C
+0x753a 0x000231C4
+0x753b 0x6659
+0x753c 0x665A
+0x753d 0x6661
+0x753e 0x6665
+0x753f 0x6673
+0x7540 0x6677
+0x7541 0x6678
+0x7542 0x668D
+0x7543 0xFA43
+0x7544 0x66A0
+0x7545 0x66B2
+0x7546 0x66BB
+0x7547 0x66C6
+0x7548 0x66C8
+0x7549 0x3B22
+0x754a 0x66DB
+0x754b 0x66E8
+0x754c 0x66FA
+0x754d 0x6713
+0x754e 0xF929
+0x754f 0x6733
+0x7550 0x6766
+0x7551 0x6747
+0x7552 0x6748
+0x7553 0x677B
+0x7554 0x6781
+0x7555 0x6793
+0x7556 0x6798
+0x7557 0x679B
+0x7558 0x67BB
+0x7559 0x67F9
+0x755a 0x67C0
+0x755b 0x67D7
+0x755c 0x67FC
+0x755d 0x6801
+0x755e 0x6852
+0x755f 0x681D
+0x7560 0x682C
+0x7561 0x6831
+0x7562 0x685B
+0x7563 0x6872
+0x7564 0x6875
+0x7565 0xFA44
+0x7566 0x68A3
+0x7567 0x68A5
+0x7568 0x68B2
+0x7569 0x68C8
+0x756a 0x68D0
+0x756b 0x68E8
+0x756c 0x68ED
+0x756d 0x68F0
+0x756e 0x68F1
+0x756f 0x68FC
+0x7570 0x690A
+0x7571 0x6949
+0x7572 0x000235C4
+0x7573 0x6935
+0x7574 0x6942
+0x7575 0x6957
+0x7576 0x6963
+0x7577 0x6964
+0x7578 0x6968
+0x7579 0x6980
+0x757a 0xFA14
+0x757b 0x69A5
+0x757c 0x69AD
+0x757d 0x69CF
+0x757e 0x3BB6
+0x7621 0x3BC3
+0x7622 0x69E2
+0x7623 0x69E9
+0x7624 0x69EA
+0x7625 0x69F5
+0x7626 0x69F6
+0x7627 0x6A0F
+0x7628 0x6A15
+0x7629 0x0002373F
+0x762a 0x6A3B
+0x762b 0x6A3E
+0x762c 0x6A45
+0x762d 0x6A50
+0x762e 0x6A56
+0x762f 0x6A5B
+0x7630 0x6A6B
+0x7631 0x6A73
+0x7632 0x00023763
+0x7633 0x6A89
+0x7634 0x6A94
+0x7635 0x6A9D
+0x7636 0x6A9E
+0x7637 0x6AA5
+0x7638 0x6AE4
+0x7639 0x6AE7
+0x763a 0x3C0F
+0x763b 0xF91D
+0x763c 0x6B1B
+0x763d 0x6B1E
+0x763e 0x6B2C
+0x763f 0x6B35
+0x7640 0x6B46
+0x7641 0x6B56
+0x7642 0x6B60
+0x7643 0x6B65
+0x7644 0x6B67
+0x7645 0x6B77
+0x7646 0x6B82
+0x7647 0x6BA9
+0x7648 0x6BAD
+0x7649 0xF970
+0x764a 0x6BCF
+0x764b 0x6BD6
+0x764c 0x6BD7
+0x764d 0x6BFF
+0x764e 0x6C05
+0x764f 0x6C10
+0x7650 0x6C33
+0x7651 0x6C59
+0x7652 0x6C5C
+0x7653 0x6CAA
+0x7654 0x6C74
+0x7655 0x6C76
+0x7656 0x6C85
+0x7657 0x6C86
+0x7658 0x6C98
+0x7659 0x6C9C
+0x765a 0x6CFB
+0x765b 0x6CC6
+0x765c 0x6CD4
+0x765d 0x6CE0
+0x765e 0x6CEB
+0x765f 0x6CEE
+0x7660 0x00023CFE
+0x7661 0x6D04
+0x7662 0x6D0E
+0x7663 0x6D2E
+0x7664 0x6D31
+0x7665 0x6D39
+0x7666 0x6D3F
+0x7667 0x6D58
+0x7668 0x6D65
+0x7669 0xFA45
+0x766a 0x6D82
+0x766b 0x6D87
+0x766c 0x6D89
+0x766d 0x6D94
+0x766e 0x6DAA
+0x766f 0x6DAC
+0x7670 0x6DBF
+0x7671 0x6DC4
+0x7672 0x6DD6
+0x7673 0x6DDA
+0x7674 0x6DDB
+0x7675 0x6DDD
+0x7676 0x6DFC
+0x7677 0xFA46
+0x7678 0x6E34
+0x7679 0x6E44
+0x767a 0x6E5C
+0x767b 0x6E5E
+0x767c 0x6EAB
+0x767d 0x6EB1
+0x767e 0x6EC1
+0x7721 0x6EC7
+0x7722 0x6ECE
+0x7723 0x6F10
+0x7724 0x6F1A
+0x7725 0xFA47
+0x7726 0x6F2A
+0x7727 0x6F2F
+0x7728 0x6F33
+0x7729 0x6F51
+0x772a 0x6F59
+0x772b 0x6F5E
+0x772c 0x6F61
+0x772d 0x6F62
+0x772e 0x6F7E
+0x772f 0x6F88
+0x7730 0x6F8C
+0x7731 0x6F8D
+0x7732 0x6F94
+0x7733 0x6FA0
+0x7734 0x6FA7
+0x7735 0x6FB6
+0x7736 0x6FBC
+0x7737 0x6FC7
+0x7738 0x6FCA
+0x7739 0x6FF9
+0x773a 0x6FF0
+0x773b 0x6FF5
+0x773c 0x7005
+0x773d 0x7006
+0x773e 0x7028
+0x773f 0x704A
+0x7740 0x705D
+0x7741 0x705E
+0x7742 0x704E
+0x7743 0x7064
+0x7744 0x7075
+0x7745 0x7085
+0x7746 0x70A4
+0x7747 0x70AB
+0x7748 0x70B7
+0x7749 0x70D4
+0x774a 0x70D8
+0x774b 0x70E4
+0x774c 0x710F
+0x774d 0x712B
+0x774e 0x711E
+0x774f 0x7120
+0x7750 0x712E
+0x7751 0x7130
+0x7752 0x7146
+0x7753 0x7147
+0x7754 0x7151
+0x7755 0xFA48
+0x7756 0x7152
+0x7757 0x715C
+0x7758 0x7160
+0x7759 0x7168
+0x775a 0xFA15
+0x775b 0x7185
+0x775c 0x7187
+0x775d 0x7192
+0x775e 0x71C1
+0x775f 0x71BA
+0x7760 0x71C4
+0x7761 0x71FE
+0x7762 0x7200
+0x7763 0x7215
+0x7764 0x7255
+0x7765 0x7256
+0x7766 0x3E3F
+0x7767 0x728D
+0x7768 0x729B
+0x7769 0x72BE
+0x776a 0x72C0
+0x776b 0x72FB
+0x776c 0x000247F1
+0x776d 0x7327
+0x776e 0x7328
+0x776f 0xFA16
+0x7770 0x7350
+0x7771 0x7366
+0x7772 0x737C
+0x7773 0x7395
+0x7774 0x739F
+0x7775 0x73A0
+0x7776 0x73A2
+0x7777 0x73A6
+0x7778 0x73AB
+0x7779 0x73C9
+0x777a 0x73CF
+0x777b 0x73D6
+0x777c 0x73D9
+0x777d 0x73E3
+0x777e 0x73E9
+0x7821 0x7407
+0x7822 0x740A
+0x7823 0x741A
+0x7824 0x741B
+0x7825 0xFA4A
+0x7826 0x7426
+0x7827 0x7428
+0x7828 0x742A
+0x7829 0x742B
+0x782a 0x742C
+0x782b 0x742E
+0x782c 0x742F
+0x782d 0x7430
+0x782e 0x7444
+0x782f 0x7446
+0x7830 0x7447
+0x7831 0x744B
+0x7832 0x7457
+0x7833 0x7462
+0x7834 0x746B
+0x7835 0x746D
+0x7836 0x7486
+0x7837 0x7487
+0x7838 0x7489
+0x7839 0x7498
+0x783a 0x749C
+0x783b 0x749F
+0x783c 0x74A3
+0x783d 0x7490
+0x783e 0x74A6
+0x783f 0x74A8
+0x7840 0x74A9
+0x7841 0x74B5
+0x7842 0x74BF
+0x7843 0x74C8
+0x7844 0x74C9
+0x7845 0x74DA
+0x7846 0x74FF
+0x7847 0x7501
+0x7848 0x7517
+0x7849 0x752F
+0x784a 0x756F
+0x784b 0x7579
+0x784c 0x7592
+0x784d 0x3F72
+0x784e 0x75CE
+0x784f 0x75E4
+0x7850 0x7600
+0x7851 0x7602
+0x7852 0x7608
+0x7853 0x7615
+0x7854 0x7616
+0x7855 0x7619
+0x7856 0x761E
+0x7857 0x762D
+0x7858 0x7635
+0x7859 0x7643
+0x785a 0x764B
+0x785b 0x7664
+0x785c 0x7665
+0x785d 0x766D
+0x785e 0x766F
+0x785f 0x7671
+0x7860 0x7681
+0x7861 0x769B
+0x7862 0x769D
+0x7863 0x769E
+0x7864 0x76A6
+0x7865 0x76AA
+0x7866 0x76B6
+0x7867 0x76C5
+0x7868 0x76CC
+0x7869 0x76CE
+0x786a 0x76D4
+0x786b 0x76E6
+0x786c 0x76F1
+0x786d 0x76FC
+0x786e 0x770A
+0x786f 0x7719
+0x7870 0x7734
+0x7871 0x7736
+0x7872 0x7746
+0x7873 0x774D
+0x7874 0x774E
+0x7875 0x775C
+0x7876 0x775F
+0x7877 0x7762
+0x7878 0x777A
+0x7879 0x7780
+0x787a 0x7794
+0x787b 0x77AA
+0x787c 0x77E0
+0x787d 0x782D
+0x787e 0x0002548E
+0x7921 0x7843
+0x7922 0x784E
+0x7923 0x784F
+0x7924 0x7851
+0x7925 0x7868
+0x7926 0x786E
+0x7927 0xFA4B
+0x7928 0x78B0
+0x7929 0x0002550E
+0x792a 0x78AD
+0x792b 0x78E4
+0x792c 0x78F2
+0x792d 0x7900
+0x792e 0x78F7
+0x792f 0x791C
+0x7930 0x792E
+0x7931 0x7931
+0x7932 0x7934
+0x7933 0xFA4C
+0x7934 0xFA4D
+0x7935 0x7945
+0x7936 0x7946
+0x7937 0xFA4E
+0x7938 0xFA4F
+0x7939 0xFA50
+0x793a 0x795C
+0x793b 0xFA51
+0x793c 0xFA19
+0x793d 0xFA1A
+0x793e 0x7979
+0x793f 0xFA52
+0x7940 0xFA53
+0x7941 0xFA1B
+0x7942 0x7998
+0x7943 0x79B1
+0x7944 0x79B8
+0x7945 0x79C8
+0x7946 0x79CA
+0x7947 0x00025771
+0x7948 0x79D4
+0x7949 0x79DE
+0x794a 0x79EB
+0x794b 0x79ED
+0x794c 0x7A03
+0x794d 0xFA54
+0x794e 0x7A39
+0x794f 0x7A5D
+0x7950 0x7A6D
+0x7951 0xFA55
+0x7952 0x7A85
+0x7953 0x7AA0
+0x7954 0x000259C4
+0x7955 0x7AB3
+0x7956 0x7ABB
+0x7957 0x7ACE
+0x7958 0x7AEB
+0x7959 0x7AFD
+0x795a 0x7B12
+0x795b 0x7B2D
+0x795c 0x7B3B
+0x795d 0x7B47
+0x795e 0x7B4E
+0x795f 0x7B60
+0x7960 0x7B6D
+0x7961 0x7B6F
+0x7962 0x7B72
+0x7963 0x7B9E
+0x7964 0xFA56
+0x7965 0x7BD7
+0x7966 0x7BD9
+0x7967 0x7C01
+0x7968 0x7C31
+0x7969 0x7C1E
+0x796a 0x7C20
+0x796b 0x7C33
+0x796c 0x7C36
+0x796d 0x4264
+0x796e 0x00025DA1
+0x796f 0x7C59
+0x7970 0x7C6D
+0x7971 0x7C79
+0x7972 0x7C8F
+0x7973 0x7C94
+0x7974 0x7CA0
+0x7975 0x7CBC
+0x7976 0x7CD5
+0x7977 0x7CD9
+0x7978 0x7CDD
+0x7979 0x7D07
+0x797a 0x7D08
+0x797b 0x7D13
+0x797c 0x7D1D
+0x797d 0x7D23
+0x797e 0x7D31
+0x7a21 0x7D41
+0x7a22 0x7D48
+0x7a23 0x7D53
+0x7a24 0x7D5C
+0x7a25 0x7D7A
+0x7a26 0x7D83
+0x7a27 0x7D8B
+0x7a28 0x7DA0
+0x7a29 0x7DA6
+0x7a2a 0x7DC2
+0x7a2b 0x7DCC
+0x7a2c 0x7DD6
+0x7a2d 0x7DE3
+0x7a2e 0xFA57
+0x7a2f 0x7E28
+0x7a30 0x7E08
+0x7a31 0x7E11
+0x7a32 0x7E15
+0x7a33 0xFA59
+0x7a34 0x7E47
+0x7a35 0x7E52
+0x7a36 0x7E61
+0x7a37 0x7E8A
+0x7a38 0x7E8D
+0x7a39 0x7F47
+0x7a3a 0xFA5A
+0x7a3b 0x7F91
+0x7a3c 0x7F97
+0x7a3d 0x7FBF
+0x7a3e 0x7FCE
+0x7a3f 0x7FDB
+0x7a40 0x7FDF
+0x7a41 0x7FEC
+0x7a42 0x7FEE
+0x7a43 0x7FFA
+0x7a44 0xFA5B
+0x7a45 0x8014
+0x7a46 0x8026
+0x7a47 0x8035
+0x7a48 0x8037
+0x7a49 0x803C
+0x7a4a 0x80CA
+0x7a4b 0x80D7
+0x7a4c 0x80E0
+0x7a4d 0x80F3
+0x7a4e 0x8118
+0x7a4f 0x814A
+0x7a50 0x8160
+0x7a51 0x8167
+0x7a52 0x8168
+0x7a53 0x816D
+0x7a54 0x81BB
+0x7a55 0x81CA
+0x7a56 0x81CF
+0x7a57 0x81D7
+0x7a58 0xFA5C
+0x7a59 0x4453
+0x7a5a 0x445B
+0x7a5b 0x8260
+0x7a5c 0x8274
+0x7a5d 0x00026AFF
+0x7a5e 0x828E
+0x7a5f 0x82A1
+0x7a60 0x82A3
+0x7a61 0x82A4
+0x7a62 0x82A9
+0x7a63 0x82AE
+0x7a64 0x82B7
+0x7a65 0x82BE
+0x7a66 0x82BF
+0x7a67 0x82C6
+0x7a68 0x82D5
+0x7a69 0x82FD
+0x7a6a 0x82FE
+0x7a6b 0x8300
+0x7a6c 0x8301
+0x7a6d 0x8362
+0x7a6e 0x8322
+0x7a6f 0x832D
+0x7a70 0x833A
+0x7a71 0x8343
+0x7a72 0x8347
+0x7a73 0x8351
+0x7a74 0x8355
+0x7a75 0x837D
+0x7a76 0x8386
+0x7a77 0x8392
+0x7a78 0x8398
+0x7a79 0x83A7
+0x7a7a 0x83A9
+0x7a7b 0x83BF
+0x7a7c 0x83C0
+0x7a7d 0x83C7
+0x7a7e 0x83CF
+0x7b21 0x83D1
+0x7b22 0x83E1
+0x7b23 0x83EA
+0x7b24 0x8401
+0x7b25 0x8406
+0x7b26 0x840A
+0x7b27 0xFA5F
+0x7b28 0x8448
+0x7b29 0x845F
+0x7b2a 0x8470
+0x7b2b 0x8473
+0x7b2c 0x8485
+0x7b2d 0x849E
+0x7b2e 0x84AF
+0x7b2f 0x84B4
+0x7b30 0x84BA
+0x7b31 0x84C0
+0x7b32 0x84C2
+0x7b33 0x00026E40
+0x7b34 0x8532
+0x7b35 0x851E
+0x7b36 0x8523
+0x7b37 0x852F
+0x7b38 0x8559
+0x7b39 0x8564
+0x7b3a 0xFA1F
+0x7b3b 0x85AD
+0x7b3c 0x857A
+0x7b3d 0x858C
+0x7b3e 0x858F
+0x7b3f 0x85A2
+0x7b40 0x85B0
+0x7b41 0x85CB
+0x7b42 0x85CE
+0x7b43 0x85ED
+0x7b44 0x8612
+0x7b45 0x85FF
+0x7b46 0x8604
+0x7b47 0x8605
+0x7b48 0x8610
+0x7b49 0x000270F4
+0x7b4a 0x8618
+0x7b4b 0x8629
+0x7b4c 0x8638
+0x7b4d 0x8657
+0x7b4e 0x865B
+0x7b4f 0xF936
+0x7b50 0x8662
+0x7b51 0x459D
+0x7b52 0x866C
+0x7b53 0x8675
+0x7b54 0x8698
+0x7b55 0x86B8
+0x7b56 0x86FA
+0x7b57 0x86FC
+0x7b58 0x86FD
+0x7b59 0x870B
+0x7b5a 0x8771
+0x7b5b 0x8787
+0x7b5c 0x8788
+0x7b5d 0x87AC
+0x7b5e 0x87AD
+0x7b5f 0x87B5
+0x7b60 0x45EA
+0x7b61 0x87D6
+0x7b62 0x87EC
+0x7b63 0x8806
+0x7b64 0x880A
+0x7b65 0x8810
+0x7b66 0x8814
+0x7b67 0x881F
+0x7b68 0x8898
+0x7b69 0x88AA
+0x7b6a 0x88CA
+0x7b6b 0x88CE
+0x7b6c 0x00027684
+0x7b6d 0x88F5
+0x7b6e 0x891C
+0x7b6f 0xFA60
+0x7b70 0x8918
+0x7b71 0x8919
+0x7b72 0x891A
+0x7b73 0x8927
+0x7b74 0x8930
+0x7b75 0x8932
+0x7b76 0x8939
+0x7b77 0x8940
+0x7b78 0x8994
+0x7b79 0xFA61
+0x7b7a 0x89D4
+0x7b7b 0x89E5
+0x7b7c 0x89F6
+0x7b7d 0x8A12
+0x7b7e 0x8A15
+0x7c21 0x8A22
+0x7c22 0x8A37
+0x7c23 0x8A47
+0x7c24 0x8A4E
+0x7c25 0x8A5D
+0x7c26 0x8A61
+0x7c27 0x8A75
+0x7c28 0x8A79
+0x7c29 0x8AA7
+0x7c2a 0x8AD0
+0x7c2b 0x8ADF
+0x7c2c 0x8AF4
+0x7c2d 0x8AF6
+0x7c2e 0xFA22
+0x7c2f 0xFA62
+0x7c30 0xFA63
+0x7c31 0x8B46
+0x7c32 0x8B54
+0x7c33 0x8B59
+0x7c34 0x8B69
+0x7c35 0x8B9D
+0x7c36 0x8C49
+0x7c37 0x8C68
+0x7c38 0xFA64
+0x7c39 0x8CE1
+0x7c3a 0x8CF4
+0x7c3b 0x8CF8
+0x7c3c 0x8CFE
+0x7c3d 0xFA65
+0x7c3e 0x8D12
+0x7c3f 0x8D1B
+0x7c40 0x8DAF
+0x7c41 0x8DCE
+0x7c42 0x8DD1
+0x7c43 0x8DD7
+0x7c44 0x8E20
+0x7c45 0x8E23
+0x7c46 0x8E3D
+0x7c47 0x8E70
+0x7c48 0x8E7B
+0x7c49 0x00028277
+0x7c4a 0x8EC0
+0x7c4b 0x4844
+0x7c4c 0x8EFA
+0x7c4d 0x8F1E
+0x7c4e 0x8F2D
+0x7c4f 0x8F36
+0x7c50 0x8F54
+0x7c51 0x000283CD
+0x7c52 0x8FA6
+0x7c53 0x8FB5
+0x7c54 0x8FE4
+0x7c55 0x8FE8
+0x7c56 0x8FEE
+0x7c57 0x9008
+0x7c58 0x902D
+0x7c59 0xFA67
+0x7c5a 0x9088
+0x7c5b 0x9095
+0x7c5c 0x9097
+0x7c5d 0x9099
+0x7c5e 0x909B
+0x7c5f 0x90A2
+0x7c60 0x90B3
+0x7c61 0x90BE
+0x7c62 0x90C4
+0x7c63 0x90C5
+0x7c64 0x90C7
+0x7c65 0x90D7
+0x7c66 0x90DD
+0x7c67 0x90DE
+0x7c68 0x90EF
+0x7c69 0x90F4
+0x7c6a 0xFA26
+0x7c6b 0x9114
+0x7c6c 0x9115
+0x7c6d 0x9116
+0x7c6e 0x9122
+0x7c6f 0x9123
+0x7c70 0x9127
+0x7c71 0x912F
+0x7c72 0x9131
+0x7c73 0x9134
+0x7c74 0x913D
+0x7c75 0x9148
+0x7c76 0x915B
+0x7c77 0x9183
+0x7c78 0x919E
+0x7c79 0x91AC
+0x7c7a 0x91B1
+0x7c7b 0x91BC
+0x7c7c 0x91D7
+0x7c7d 0x91FB
+0x7c7e 0x91E4
+0x7d21 0x91E5
+0x7d22 0x91ED
+0x7d23 0x91F1
+0x7d24 0x9207
+0x7d25 0x9210
+0x7d26 0x9238
+0x7d27 0x9239
+0x7d28 0x923A
+0x7d29 0x923C
+0x7d2a 0x9240
+0x7d2b 0x9243
+0x7d2c 0x924F
+0x7d2d 0x9278
+0x7d2e 0x9288
+0x7d2f 0x92C2
+0x7d30 0x92CB
+0x7d31 0x92CC
+0x7d32 0x92D3
+0x7d33 0x92E0
+0x7d34 0x92FF
+0x7d35 0x9304
+0x7d36 0x931F
+0x7d37 0x9321
+0x7d38 0x9325
+0x7d39 0x9348
+0x7d3a 0x9349
+0x7d3b 0x934A
+0x7d3c 0x9364
+0x7d3d 0x9365
+0x7d3e 0x936A
+0x7d3f 0x9370
+0x7d40 0x939B
+0x7d41 0x93A3
+0x7d42 0x93BA
+0x7d43 0x93C6
+0x7d44 0x93DE
+0x7d45 0x93DF
+0x7d46 0x9404
+0x7d47 0x93FD
+0x7d48 0x9433
+0x7d49 0x944A
+0x7d4a 0x9463
+0x7d4b 0x946B
+0x7d4c 0x9471
+0x7d4d 0x9472
+0x7d4e 0x958E
+0x7d4f 0x959F
+0x7d50 0x95A6
+0x7d51 0x95A9
+0x7d52 0x95AC
+0x7d53 0x95B6
+0x7d54 0x95BD
+0x7d55 0x95CB
+0x7d56 0x95D0
+0x7d57 0x95D3
+0x7d58 0x49B0
+0x7d59 0x95DA
+0x7d5a 0x95DE
+0x7d5b 0x9658
+0x7d5c 0x9684
+0x7d5d 0xF9DC
+0x7d5e 0x969D
+0x7d5f 0x96A4
+0x7d60 0x96A5
+0x7d61 0x96D2
+0x7d62 0x96DE
+0x7d63 0xFA68
+0x7d64 0x96E9
+0x7d65 0x96EF
+0x7d66 0x9733
+0x7d67 0x973B
+0x7d68 0x974D
+0x7d69 0x974E
+0x7d6a 0x974F
+0x7d6b 0x975A
+0x7d6c 0x976E
+0x7d6d 0x9773
+0x7d6e 0x9795
+0x7d6f 0x97AE
+0x7d70 0x97BA
+0x7d71 0x97C1
+0x7d72 0x97C9
+0x7d73 0x97DE
+0x7d74 0x97DB
+0x7d75 0x97F4
+0x7d76 0xFA69
+0x7d77 0x980A
+0x7d78 0x981E
+0x7d79 0x982B
+0x7d7a 0x9830
+0x7d7b 0xFA6A
+0x7d7c 0x9852
+0x7d7d 0x9853
+0x7d7e 0x9856
+0x7e21 0x9857
+0x7e22 0x9859
+0x7e23 0x985A
+0x7e24 0xF9D0
+0x7e25 0x9865
+0x7e26 0x986C
+0x7e27 0x98BA
+0x7e28 0x98C8
+0x7e29 0x98E7
+0x7e2a 0x9958
+0x7e2b 0x999E
+0x7e2c 0x9A02
+0x7e2d 0x9A03
+0x7e2e 0x9A24
+0x7e2f 0x9A2D
+0x7e30 0x9A2E
+0x7e31 0x9A38
+0x7e32 0x9A4A
+0x7e33 0x9A4E
+0x7e34 0x9A52
+0x7e35 0x9AB6
+0x7e36 0x9AC1
+0x7e37 0x9AC3
+0x7e38 0x9ACE
+0x7e39 0x9AD6
+0x7e3a 0x9AF9
+0x7e3b 0x9B02
+0x7e3c 0x9B08
+0x7e3d 0x9B20
+0x7e3e 0x4C17
+0x7e3f 0x9B2D
+0x7e40 0x9B5E
+0x7e41 0x9B79
+0x7e42 0x9B66
+0x7e43 0x9B72
+0x7e44 0x9B75
+0x7e45 0x9B84
+0x7e46 0x9B8A
+0x7e47 0x9B8F
+0x7e48 0x9B9E
+0x7e49 0x9BA7
+0x7e4a 0x9BC1
+0x7e4b 0x9BCE
+0x7e4c 0x9BE5
+0x7e4d 0x9BF8
+0x7e4e 0x9BFD
+0x7e4f 0x9C00
+0x7e50 0x9C23
+0x7e51 0x9C41
+0x7e52 0x9C4F
+0x7e53 0x9C50
+0x7e54 0x9C53
+0x7e55 0x9C63
+0x7e56 0x9C65
+0x7e57 0x9C77
+0x7e58 0x9D1D
+0x7e59 0x9D1E
+0x7e5a 0x9D43
+0x7e5b 0x9D47
+0x7e5c 0x9D52
+0x7e5d 0x9D63
+0x7e5e 0x9D70
+0x7e5f 0x9D7C
+0x7e60 0x9D8A
+0x7e61 0x9D96
+0x7e62 0x9DC0
+0x7e63 0x9DAC
+0x7e64 0x9DBC
+0x7e65 0x9DD7
+0x7e66 0x0002A190
+0x7e67 0x9DE7
+0x7e68 0x9E07
+0x7e69 0x9E15
+0x7e6a 0x9E7C
+0x7e6b 0x9E9E
+0x7e6c 0x9EA4
+0x7e6d 0x9EAC
+0x7e6e 0x9EAF
+0x7e6f 0x9EB4
+0x7e70 0x9EB5
+0x7e71 0x9EC3
+0x7e72 0x9ED1
+0x7e73 0x9F10
+0x7e74 0x9F39
+0x7e75 0x9F57
+0x7e76 0x9F90
+0x7e77 0x9F94
+0x7e78 0x9F97
+0x7e79 0x9FA2
diff --git a/etc/charsets/JISX2132.map b/etc/charsets/JISX2132.map
new file mode 100644 (file)
index 0000000..3dbf783
--- /dev/null
@@ -0,0 +1,2437 @@
+# Generated from glibc-2.3.2/localedata/charmaps/EUC-JISX0213
+0x2121 0x00020089
+0x2122 0x4E02
+0x2123 0x4E0F
+0x2124 0x4E12
+0x2125 0x4E29
+0x2126 0x4E2B
+0x2127 0x4E2E
+0x2128 0x4E40
+0x2129 0x4E47
+0x212a 0x4E48
+0x212b 0x000200A2
+0x212c 0x4E51
+0x212d 0x3406
+0x212e 0x000200A4
+0x212f 0x4E5A
+0x2130 0x4E69
+0x2131 0x4E9D
+0x2132 0x342C
+0x2133 0x342E
+0x2134 0x4EB9
+0x2135 0x4EBB
+0x2136 0x000201A2
+0x2137 0x4EBC
+0x2138 0x4EC3
+0x2139 0x4EC8
+0x213a 0x4ED0
+0x213b 0x4EEB
+0x213c 0x4EDA
+0x213d 0x4EF1
+0x213e 0x4EF5
+0x213f 0x4F00
+0x2140 0x4F16
+0x2141 0x4F64
+0x2142 0x4F37
+0x2143 0x4F3E
+0x2144 0x4F54
+0x2145 0x4F58
+0x2146 0x00020213
+0x2147 0x4F77
+0x2148 0x4F78
+0x2149 0x4F7A
+0x214a 0x4F7D
+0x214b 0x4F82
+0x214c 0x4F85
+0x214d 0x4F92
+0x214e 0x4F9A
+0x214f 0x4FE6
+0x2150 0x4FB2
+0x2151 0x4FBE
+0x2152 0x4FC5
+0x2153 0x4FCB
+0x2154 0x4FCF
+0x2155 0x4FD2
+0x2156 0x346A
+0x2157 0x4FF2
+0x2158 0x5000
+0x2159 0x5010
+0x215a 0x5013
+0x215b 0x501C
+0x215c 0x501E
+0x215d 0x5022
+0x215e 0x3468
+0x215f 0x5042
+0x2160 0x5046
+0x2161 0x504E
+0x2162 0x5053
+0x2163 0x5057
+0x2164 0x5063
+0x2165 0x5066
+0x2166 0x506A
+0x2167 0x5070
+0x2168 0x50A3
+0x2169 0x5088
+0x216a 0x5092
+0x216b 0x5093
+0x216c 0x5095
+0x216d 0x5096
+0x216e 0x509C
+0x216f 0x50AA
+0x2170 0x0002032B
+0x2171 0x50B1
+0x2172 0x50BA
+0x2173 0x50BB
+0x2174 0x50C4
+0x2175 0x50C7
+0x2176 0x50F3
+0x2177 0x00020381
+0x2178 0x50CE
+0x2179 0x00020371
+0x217a 0x50D4
+0x217b 0x50D9
+0x217c 0x50E1
+0x217d 0x50E9
+0x217e 0x3492
+0x2321 0x5108
+0x2322 0x000203F9
+0x2323 0x5117
+0x2324 0x511B
+0x2325 0x0002044A
+0x2326 0x5160
+0x2327 0x00020509
+0x2328 0x5173
+0x2329 0x5183
+0x232a 0x518B
+0x232b 0x34BC
+0x232c 0x5198
+0x232d 0x51A3
+0x232e 0x51AD
+0x232f 0x34C7
+0x2330 0x51BC
+0x2331 0x000205D6
+0x2332 0x00020628
+0x2333 0x51F3
+0x2334 0x51F4
+0x2335 0x5202
+0x2336 0x5212
+0x2337 0x5216
+0x2338 0x0002074F
+0x2339 0x5255
+0x233a 0x525C
+0x233b 0x526C
+0x233c 0x5277
+0x233d 0x5284
+0x233e 0x5282
+0x233f 0x00020807
+0x2340 0x5298
+0x2341 0x0002083A
+0x2342 0x52A4
+0x2343 0x52A6
+0x2344 0x52AF
+0x2345 0x52BA
+0x2346 0x52BB
+0x2347 0x52CA
+0x2348 0x351F
+0x2349 0x52D1
+0x234a 0x000208B9
+0x234b 0x52F7
+0x234c 0x530A
+0x234d 0x530B
+0x234e 0x5324
+0x234f 0x5335
+0x2350 0x533E
+0x2351 0x5342
+0x2352 0x0002097C
+0x2353 0x0002099D
+0x2354 0x5367
+0x2355 0x536C
+0x2356 0x537A
+0x2357 0x53A4
+0x2358 0x53B4
+0x2359 0x00020AD3
+0x235a 0x53B7
+0x235b 0x53C0
+0x235c 0x00020B1D
+0x235d 0x355D
+0x235e 0x355E
+0x235f 0x53D5
+0x2360 0x53DA
+0x2361 0x3563
+0x2362 0x53F4
+0x2363 0x53F5
+0x2364 0x5455
+0x2365 0x5424
+0x2366 0x5428
+0x2367 0x356E
+0x2368 0x5443
+0x2369 0x5462
+0x236a 0x5466
+0x236b 0x546C
+0x236c 0x548A
+0x236d 0x548D
+0x236e 0x5495
+0x236f 0x54A0
+0x2370 0x54A6
+0x2371 0x54AD
+0x2372 0x54AE
+0x2373 0x54B7
+0x2374 0x54BA
+0x2375 0x54BF
+0x2376 0x54C3
+0x2377 0x00020D45
+0x2378 0x54EC
+0x2379 0x54EF
+0x237a 0x54F1
+0x237b 0x54F3
+0x237c 0x5500
+0x237d 0x5501
+0x237e 0x5509
+0x2421 0x553C
+0x2422 0x5541
+0x2423 0x35A6
+0x2424 0x5547
+0x2425 0x554A
+0x2426 0x35A8
+0x2427 0x5560
+0x2428 0x5561
+0x2429 0x5564
+0x242a 0x00020DE1
+0x242b 0x557D
+0x242c 0x5582
+0x242d 0x5588
+0x242e 0x5591
+0x242f 0x35C5
+0x2430 0x55D2
+0x2431 0x00020E95
+0x2432 0x00020E6D
+0x2433 0x55BF
+0x2434 0x55C9
+0x2435 0x55CC
+0x2436 0x55D1
+0x2437 0x55DD
+0x2438 0x35DA
+0x2439 0x55E2
+0x243a 0x00020E64
+0x243b 0x55E9
+0x243c 0x5628
+0x243d 0x00020F5F
+0x243e 0x5607
+0x243f 0x5610
+0x2440 0x5630
+0x2441 0x5637
+0x2442 0x35F4
+0x2443 0x563D
+0x2444 0x563F
+0x2445 0x5640
+0x2446 0x5647
+0x2447 0x565E
+0x2448 0x5660
+0x2449 0x566D
+0x244a 0x3605
+0x244b 0x5688
+0x244c 0x568C
+0x244d 0x5695
+0x244e 0x569A
+0x244f 0x569D
+0x2450 0x56A8
+0x2451 0x56AD
+0x2452 0x56B2
+0x2453 0x56C5
+0x2454 0x56CD
+0x2455 0x56DF
+0x2456 0x56E8
+0x2457 0x56F6
+0x2458 0x56F7
+0x2459 0x00021201
+0x245a 0x5715
+0x245b 0x5723
+0x245c 0x00021255
+0x245d 0x5729
+0x245e 0x0002127B
+0x245f 0x5745
+0x2460 0x5746
+0x2461 0x574C
+0x2462 0x574D
+0x2463 0x00021274
+0x2464 0x5768
+0x2465 0x576F
+0x2466 0x5773
+0x2467 0x5774
+0x2468 0x5775
+0x2469 0x577B
+0x246a 0x000212E4
+0x246b 0x000212D7
+0x246c 0x57AC
+0x246d 0x579A
+0x246e 0x579D
+0x246f 0x579E
+0x2470 0x57A8
+0x2471 0x57D7
+0x2472 0x000212FD
+0x2473 0x57CC
+0x2474 0x00021336
+0x2475 0x00021344
+0x2476 0x57DE
+0x2477 0x57E6
+0x2478 0x57F0
+0x2479 0x364A
+0x247a 0x57F8
+0x247b 0x57FB
+0x247c 0x57FD
+0x247d 0x5804
+0x247e 0x581E
+0x2521 0x5820
+0x2522 0x5827
+0x2523 0x5832
+0x2524 0x5839
+0x2525 0x000213C4
+0x2526 0x5849
+0x2527 0x584C
+0x2528 0x5867
+0x2529 0x588A
+0x252a 0x588B
+0x252b 0x588D
+0x252c 0x588F
+0x252d 0x5890
+0x252e 0x5894
+0x252f 0x589D
+0x2530 0x58AA
+0x2531 0x58B1
+0x2532 0x0002146D
+0x2533 0x58C3
+0x2534 0x58CD
+0x2535 0x58E2
+0x2536 0x58F3
+0x2537 0x58F4
+0x2538 0x5905
+0x2539 0x5906
+0x253a 0x590B
+0x253b 0x590D
+0x253c 0x5914
+0x253d 0x5924
+0x253e 0x000215D7
+0x253f 0x3691
+0x2540 0x593D
+0x2541 0x3699
+0x2542 0x5946
+0x2543 0x3696
+0x2544 0x00026C29
+0x2545 0x595B
+0x2546 0x595F
+0x2547 0x00021647
+0x2548 0x5975
+0x2549 0x5976
+0x254a 0x597C
+0x254b 0x599F
+0x254c 0x59AE
+0x254d 0x59BC
+0x254e 0x59C8
+0x254f 0x59CD
+0x2550 0x59DE
+0x2551 0x59E3
+0x2552 0x59E4
+0x2553 0x59E7
+0x2554 0x59EE
+0x2555 0x00021706
+0x2556 0x00021742
+0x2557 0x36CF
+0x2558 0x5A0C
+0x2559 0x5A0D
+0x255a 0x5A17
+0x255b 0x5A27
+0x255c 0x5A2D
+0x255d 0x5A55
+0x255e 0x5A65
+0x255f 0x5A7A
+0x2560 0x5A8B
+0x2561 0x5A9C
+0x2562 0x5A9F
+0x2563 0x5AA0
+0x2564 0x5AA2
+0x2565 0x5AB1
+0x2566 0x5AB3
+0x2567 0x5AB5
+0x2568 0x5ABA
+0x2569 0x5ABF
+0x256a 0x5ADA
+0x256b 0x5ADC
+0x256c 0x5AE0
+0x256d 0x5AE5
+0x256e 0x5AF0
+0x256f 0x5AEE
+0x2570 0x5AF5
+0x2571 0x5B00
+0x2572 0x5B08
+0x2573 0x5B17
+0x2574 0x5B34
+0x2575 0x5B2D
+0x2576 0x5B4C
+0x2577 0x5B52
+0x2578 0x5B68
+0x2579 0x5B6F
+0x257a 0x5B7C
+0x257b 0x5B7F
+0x257c 0x5B81
+0x257d 0x5B84
+0x257e 0x000219C3
+0x2821 0x5B96
+0x2822 0x5BAC
+0x2823 0x3761
+0x2824 0x5BC0
+0x2825 0x3762
+0x2826 0x5BCE
+0x2827 0x5BD6
+0x2828 0x376C
+0x2829 0x376B
+0x282a 0x5BF1
+0x282b 0x5BFD
+0x282c 0x3775
+0x282d 0x5C03
+0x282e 0x5C29
+0x282f 0x5C30
+0x2830 0x00021C56
+0x2831 0x5C5F
+0x2832 0x5C63
+0x2833 0x5C67
+0x2834 0x5C68
+0x2835 0x5C69
+0x2836 0x5C70
+0x2837 0x00021D2D
+0x2838 0x00021D45
+0x2839 0x5C7C
+0x283a 0x00021D78
+0x283b 0x00021D62
+0x283c 0x5C88
+0x283d 0x5C8A
+0x283e 0x37C1
+0x283f 0x00021DA1
+0x2840 0x00021D9C
+0x2841 0x5CA0
+0x2842 0x5CA2
+0x2843 0x5CA6
+0x2844 0x5CA7
+0x2845 0x00021D92
+0x2846 0x5CAD
+0x2847 0x5CB5
+0x2848 0x00021DB7
+0x2849 0x5CC9
+0x284a 0x00021DE0
+0x284b 0x00021E33
+0x284c 0x5D06
+0x284d 0x5D10
+0x284e 0x5D2B
+0x284f 0x5D1D
+0x2850 0x5D20
+0x2851 0x5D24
+0x2852 0x5D26
+0x2853 0x5D31
+0x2854 0x5D39
+0x2855 0x5D42
+0x2856 0x37E8
+0x2857 0x5D61
+0x2858 0x5D6A
+0x2859 0x37F4
+0x285a 0x5D70
+0x285b 0x00021F1E
+0x285c 0x37FD
+0x285d 0x5D88
+0x285e 0x3800
+0x285f 0x5D92
+0x2860 0x5D94
+0x2861 0x5D97
+0x2862 0x5D99
+0x2863 0x5DB0
+0x2864 0x5DB2
+0x2865 0x5DB4
+0x2866 0x00021F76
+0x2867 0x5DB9
+0x2868 0x5DD1
+0x2869 0x5DD7
+0x286a 0x5DD8
+0x286b 0x5DE0
+0x286c 0x00021FFA
+0x286d 0x5DE4
+0x286e 0x5DE9
+0x286f 0x382F
+0x2870 0x5E00
+0x2871 0x3836
+0x2872 0x5E12
+0x2873 0x5E15
+0x2874 0x3840
+0x2875 0x5E1F
+0x2876 0x5E2E
+0x2877 0x5E3E
+0x2878 0x5E49
+0x2879 0x385C
+0x287a 0x5E56
+0x287b 0x3861
+0x287c 0x5E6B
+0x287d 0x5E6C
+0x287e 0x5E6D
+0x2c21 0x5E6E
+0x2c22 0x0002217B
+0x2c23 0x5EA5
+0x2c24 0x5EAA
+0x2c25 0x5EAC
+0x2c26 0x5EB9
+0x2c27 0x5EBF
+0x2c28 0x5EC6
+0x2c29 0x5ED2
+0x2c2a 0x5ED9
+0x2c2b 0x0002231E
+0x2c2c 0x5EFD
+0x2c2d 0x5F08
+0x2c2e 0x5F0E
+0x2c2f 0x5F1C
+0x2c30 0x000223AD
+0x2c31 0x5F1E
+0x2c32 0x5F47
+0x2c33 0x5F63
+0x2c34 0x5F72
+0x2c35 0x5F7E
+0x2c36 0x5F8F
+0x2c37 0x5FA2
+0x2c38 0x5FA4
+0x2c39 0x5FB8
+0x2c3a 0x5FC4
+0x2c3b 0x38FA
+0x2c3c 0x5FC7
+0x2c3d 0x5FCB
+0x2c3e 0x5FD2
+0x2c3f 0x5FD3
+0x2c40 0x5FD4
+0x2c41 0x5FE2
+0x2c42 0x5FEE
+0x2c43 0x5FEF
+0x2c44 0x5FF3
+0x2c45 0x5FFC
+0x2c46 0x3917
+0x2c47 0x6017
+0x2c48 0x6022
+0x2c49 0x6024
+0x2c4a 0x391A
+0x2c4b 0x604C
+0x2c4c 0x607F
+0x2c4d 0x608A
+0x2c4e 0x6095
+0x2c4f 0x60A8
+0x2c50 0x000226F3
+0x2c51 0x60B0
+0x2c52 0x60B1
+0x2c53 0x60BE
+0x2c54 0x60C8
+0x2c55 0x60D9
+0x2c56 0x60DB
+0x2c57 0x60EE
+0x2c58 0x60F2
+0x2c59 0x60F5
+0x2c5a 0x6110
+0x2c5b 0x6112
+0x2c5c 0x6113
+0x2c5d 0x6119
+0x2c5e 0x611E
+0x2c5f 0x613A
+0x2c60 0x396F
+0x2c61 0x6141
+0x2c62 0x6146
+0x2c63 0x6160
+0x2c64 0x617C
+0x2c65 0x0002285B
+0x2c66 0x6192
+0x2c67 0x6193
+0x2c68 0x6197
+0x2c69 0x6198
+0x2c6a 0x61A5
+0x2c6b 0x61A8
+0x2c6c 0x61AD
+0x2c6d 0x000228AB
+0x2c6e 0x61D5
+0x2c6f 0x61DD
+0x2c70 0x61DF
+0x2c71 0x61F5
+0x2c72 0x0002298F
+0x2c73 0x6215
+0x2c74 0x6223
+0x2c75 0x6229
+0x2c76 0x6246
+0x2c77 0x624C
+0x2c78 0x6251
+0x2c79 0x6252
+0x2c7a 0x6261
+0x2c7b 0x6264
+0x2c7c 0x627B
+0x2c7d 0x626D
+0x2c7e 0x6273
+0x2d21 0x6299
+0x2d22 0x62A6
+0x2d23 0x62D5
+0x2d24 0x00022AB8
+0x2d25 0x62FD
+0x2d26 0x6303
+0x2d27 0x630D
+0x2d28 0x6310
+0x2d29 0x00022B4F
+0x2d2a 0x00022B50
+0x2d2b 0x6332
+0x2d2c 0x6335
+0x2d2d 0x633B
+0x2d2e 0x633C
+0x2d2f 0x6341
+0x2d30 0x6344
+0x2d31 0x634E
+0x2d32 0x00022B46
+0x2d33 0x6359
+0x2d34 0x00022C1D
+0x2d35 0x00022BA6
+0x2d36 0x636C
+0x2d37 0x6384
+0x2d38 0x6399
+0x2d39 0x00022C24
+0x2d3a 0x6394
+0x2d3b 0x63BD
+0x2d3c 0x63F7
+0x2d3d 0x63D4
+0x2d3e 0x63D5
+0x2d3f 0x63DC
+0x2d40 0x63E0
+0x2d41 0x63EB
+0x2d42 0x63EC
+0x2d43 0x63F2
+0x2d44 0x6409
+0x2d45 0x641E
+0x2d46 0x6425
+0x2d47 0x6429
+0x2d48 0x642F
+0x2d49 0x645A
+0x2d4a 0x645B
+0x2d4b 0x645D
+0x2d4c 0x6473
+0x2d4d 0x647D
+0x2d4e 0x6487
+0x2d4f 0x6491
+0x2d50 0x649D
+0x2d51 0x649F
+0x2d52 0x64CB
+0x2d53 0x64CC
+0x2d54 0x64D5
+0x2d55 0x64D7
+0x2d56 0x00022DE1
+0x2d57 0x64E4
+0x2d58 0x64E5
+0x2d59 0x64FF
+0x2d5a 0x6504
+0x2d5b 0x3A6E
+0x2d5c 0x650F
+0x2d5d 0x6514
+0x2d5e 0x6516
+0x2d5f 0x3A73
+0x2d60 0x651E
+0x2d61 0x6532
+0x2d62 0x6544
+0x2d63 0x6554
+0x2d64 0x656B
+0x2d65 0x657A
+0x2d66 0x6581
+0x2d67 0x6584
+0x2d68 0x6585
+0x2d69 0x658A
+0x2d6a 0x65B2
+0x2d6b 0x65B5
+0x2d6c 0x65B8
+0x2d6d 0x65BF
+0x2d6e 0x65C2
+0x2d6f 0x65C9
+0x2d70 0x65D4
+0x2d71 0x3AD6
+0x2d72 0x65F2
+0x2d73 0x65F9
+0x2d74 0x65FC
+0x2d75 0x6604
+0x2d76 0x6608
+0x2d77 0x6621
+0x2d78 0x662A
+0x2d79 0x6645
+0x2d7a 0x6651
+0x2d7b 0x664E
+0x2d7c 0x3AEA
+0x2d7d 0x000231C3
+0x2d7e 0x6657
+0x2e21 0x665B
+0x2e22 0x6663
+0x2e23 0x000231F5
+0x2e24 0x000231B6
+0x2e25 0x666A
+0x2e26 0x666B
+0x2e27 0x666C
+0x2e28 0x666D
+0x2e29 0x667B
+0x2e2a 0x6680
+0x2e2b 0x6690
+0x2e2c 0x6692
+0x2e2d 0x6699
+0x2e2e 0x3B0E
+0x2e2f 0x66AD
+0x2e30 0x66B1
+0x2e31 0x66B5
+0x2e32 0x3B1A
+0x2e33 0x66BF
+0x2e34 0x3B1C
+0x2e35 0x66EC
+0x2e36 0x3AD7
+0x2e37 0x6701
+0x2e38 0x6705
+0x2e39 0x6712
+0x2e3a 0x00023372
+0x2e3b 0x6719
+0x2e3c 0x000233D3
+0x2e3d 0x000233D2
+0x2e3e 0x674C
+0x2e3f 0x674D
+0x2e40 0x6754
+0x2e41 0x675D
+0x2e42 0x000233D0
+0x2e43 0x000233E4
+0x2e44 0x000233D5
+0x2e45 0x6774
+0x2e46 0x6776
+0x2e47 0x000233DA
+0x2e48 0x6792
+0x2e49 0x000233DF
+0x2e4a 0x8363
+0x2e4b 0x6810
+0x2e4c 0x67B0
+0x2e4d 0x67B2
+0x2e4e 0x67C3
+0x2e4f 0x67C8
+0x2e50 0x67D2
+0x2e51 0x67D9
+0x2e52 0x67DB
+0x2e53 0x67F0
+0x2e54 0x67F7
+0x2e55 0x0002344A
+0x2e56 0x00023451
+0x2e57 0x0002344B
+0x2e58 0x6818
+0x2e59 0x681F
+0x2e5a 0x682D
+0x2e5b 0x00023465
+0x2e5c 0x6833
+0x2e5d 0x683B
+0x2e5e 0x683E
+0x2e5f 0x6844
+0x2e60 0x6845
+0x2e61 0x6849
+0x2e62 0x684C
+0x2e63 0x6855
+0x2e64 0x6857
+0x2e65 0x3B77
+0x2e66 0x686B
+0x2e67 0x686E
+0x2e68 0x687A
+0x2e69 0x687C
+0x2e6a 0x6882
+0x2e6b 0x6890
+0x2e6c 0x6896
+0x2e6d 0x3B6D
+0x2e6e 0x6898
+0x2e6f 0x6899
+0x2e70 0x689A
+0x2e71 0x689C
+0x2e72 0x68AA
+0x2e73 0x68AB
+0x2e74 0x68B4
+0x2e75 0x68BB
+0x2e76 0x68FB
+0x2e77 0x000234E4
+0x2e78 0x0002355A
+0x2e79 0xFA13
+0x2e7a 0x68C3
+0x2e7b 0x68C5
+0x2e7c 0x68CC
+0x2e7d 0x68CF
+0x2e7e 0x68D6
+0x2f21 0x68D9
+0x2f22 0x68E4
+0x2f23 0x68E5
+0x2f24 0x68EC
+0x2f25 0x68F7
+0x2f26 0x6903
+0x2f27 0x6907
+0x2f28 0x3B87
+0x2f29 0x3B88
+0x2f2a 0x00023594
+0x2f2b 0x693B
+0x2f2c 0x3B8D
+0x2f2d 0x6946
+0x2f2e 0x6969
+0x2f2f 0x696C
+0x2f30 0x6972
+0x2f31 0x697A
+0x2f32 0x697F
+0x2f33 0x6992
+0x2f34 0x3BA4
+0x2f35 0x6996
+0x2f36 0x6998
+0x2f37 0x69A6
+0x2f38 0x69B0
+0x2f39 0x69B7
+0x2f3a 0x69BA
+0x2f3b 0x69BC
+0x2f3c 0x69C0
+0x2f3d 0x69D1
+0x2f3e 0x69D6
+0x2f3f 0x00023639
+0x2f40 0x00023647
+0x2f41 0x6A30
+0x2f42 0x00023638
+0x2f43 0x0002363A
+0x2f44 0x69E3
+0x2f45 0x69EE
+0x2f46 0x69EF
+0x2f47 0x69F3
+0x2f48 0x3BCD
+0x2f49 0x69F4
+0x2f4a 0x69FE
+0x2f4b 0x6A11
+0x2f4c 0x6A1A
+0x2f4d 0x6A1D
+0x2f4e 0x0002371C
+0x2f4f 0x6A32
+0x2f50 0x6A33
+0x2f51 0x6A34
+0x2f52 0x6A3F
+0x2f53 0x6A46
+0x2f54 0x6A49
+0x2f55 0x6A7A
+0x2f56 0x6A4E
+0x2f57 0x6A52
+0x2f58 0x6A64
+0x2f59 0x0002370C
+0x2f5a 0x6A7E
+0x2f5b 0x6A83
+0x2f5c 0x6A8B
+0x2f5d 0x3BF0
+0x2f5e 0x6A91
+0x2f5f 0x6A9F
+0x2f60 0x6AA1
+0x2f61 0x00023764
+0x2f62 0x6AAB
+0x2f63 0x6ABD
+0x2f64 0x6AC6
+0x2f65 0x6AD4
+0x2f66 0x6AD0
+0x2f67 0x6ADC
+0x2f68 0x6ADD
+0x2f69 0x000237FF
+0x2f6a 0x000237E7
+0x2f6b 0x6AEC
+0x2f6c 0x6AF1
+0x2f6d 0x6AF2
+0x2f6e 0x6AF3
+0x2f6f 0x6AFD
+0x2f70 0x00023824
+0x2f71 0x6B0B
+0x2f72 0x6B0F
+0x2f73 0x6B10
+0x2f74 0x6B11
+0x2f75 0x0002383D
+0x2f76 0x6B17
+0x2f77 0x3C26
+0x2f78 0x6B2F
+0x2f79 0x6B4A
+0x2f7a 0x6B58
+0x2f7b 0x6B6C
+0x2f7c 0x6B75
+0x2f7d 0x6B7A
+0x2f7e 0x6B81
+0x6e21 0x6B9B
+0x6e22 0x6BAE
+0x6e23 0x00023A98
+0x6e24 0x6BBD
+0x6e25 0x6BBE
+0x6e26 0x6BC7
+0x6e27 0x6BC8
+0x6e28 0x6BC9
+0x6e29 0x6BDA
+0x6e2a 0x6BE6
+0x6e2b 0x6BE7
+0x6e2c 0x6BEE
+0x6e2d 0x6BF1
+0x6e2e 0x6C02
+0x6e2f 0x6C0A
+0x6e30 0x6C0E
+0x6e31 0x6C35
+0x6e32 0x6C36
+0x6e33 0x6C3A
+0x6e34 0x00023C7F
+0x6e35 0x6C3F
+0x6e36 0x6C4D
+0x6e37 0x6C5B
+0x6e38 0x6C6D
+0x6e39 0x6C84
+0x6e3a 0x6C89
+0x6e3b 0x3CC3
+0x6e3c 0x6C94
+0x6e3d 0x6C95
+0x6e3e 0x6C97
+0x6e3f 0x6CAD
+0x6e40 0x6CC2
+0x6e41 0x6CD0
+0x6e42 0x3CD2
+0x6e43 0x6CD6
+0x6e44 0x6CDA
+0x6e45 0x6CDC
+0x6e46 0x6CE9
+0x6e47 0x6CEC
+0x6e48 0x6CED
+0x6e49 0x00023D00
+0x6e4a 0x6D00
+0x6e4b 0x6D0A
+0x6e4c 0x6D24
+0x6e4d 0x6D26
+0x6e4e 0x6D27
+0x6e4f 0x6C67
+0x6e50 0x6D2F
+0x6e51 0x6D3C
+0x6e52 0x6D5B
+0x6e53 0x6D5E
+0x6e54 0x6D60
+0x6e55 0x6D70
+0x6e56 0x6D80
+0x6e57 0x6D81
+0x6e58 0x6D8A
+0x6e59 0x6D8D
+0x6e5a 0x6D91
+0x6e5b 0x6D98
+0x6e5c 0x00023D40
+0x6e5d 0x6E17
+0x6e5e 0x00023DFA
+0x6e5f 0x00023DF9
+0x6e60 0x00023DD3
+0x6e61 0x6DAB
+0x6e62 0x6DAE
+0x6e63 0x6DB4
+0x6e64 0x6DC2
+0x6e65 0x6D34
+0x6e66 0x6DC8
+0x6e67 0x6DCE
+0x6e68 0x6DCF
+0x6e69 0x6DD0
+0x6e6a 0x6DDF
+0x6e6b 0x6DE9
+0x6e6c 0x6DF6
+0x6e6d 0x6E36
+0x6e6e 0x6E1E
+0x6e6f 0x6E22
+0x6e70 0x6E27
+0x6e71 0x3D11
+0x6e72 0x6E32
+0x6e73 0x6E3C
+0x6e74 0x6E48
+0x6e75 0x6E49
+0x6e76 0x6E4B
+0x6e77 0x6E4C
+0x6e78 0x6E4F
+0x6e79 0x6E51
+0x6e7a 0x6E53
+0x6e7b 0x6E54
+0x6e7c 0x6E57
+0x6e7d 0x6E63
+0x6e7e 0x3D1E
+0x6f21 0x6E93
+0x6f22 0x6EA7
+0x6f23 0x6EB4
+0x6f24 0x6EBF
+0x6f25 0x6EC3
+0x6f26 0x6ECA
+0x6f27 0x6ED9
+0x6f28 0x6F35
+0x6f29 0x6EEB
+0x6f2a 0x6EF9
+0x6f2b 0x6EFB
+0x6f2c 0x6F0A
+0x6f2d 0x6F0C
+0x6f2e 0x6F18
+0x6f2f 0x6F25
+0x6f30 0x6F36
+0x6f31 0x6F3C
+0x6f32 0x00023F7E
+0x6f33 0x6F52
+0x6f34 0x6F57
+0x6f35 0x6F5A
+0x6f36 0x6F60
+0x6f37 0x6F68
+0x6f38 0x6F98
+0x6f39 0x6F7D
+0x6f3a 0x6F90
+0x6f3b 0x6F96
+0x6f3c 0x6FBE
+0x6f3d 0x6F9F
+0x6f3e 0x6FA5
+0x6f3f 0x6FAF
+0x6f40 0x3D64
+0x6f41 0x6FB5
+0x6f42 0x6FC8
+0x6f43 0x6FC9
+0x6f44 0x6FDA
+0x6f45 0x6FDE
+0x6f46 0x6FE9
+0x6f47 0x00024096
+0x6f48 0x6FFC
+0x6f49 0x7000
+0x6f4a 0x7007
+0x6f4b 0x700A
+0x6f4c 0x7023
+0x6f4d 0x00024103
+0x6f4e 0x7039
+0x6f4f 0x703A
+0x6f50 0x703C
+0x6f51 0x7043
+0x6f52 0x7047
+0x6f53 0x704B
+0x6f54 0x3D9A
+0x6f55 0x7054
+0x6f56 0x7065
+0x6f57 0x7069
+0x6f58 0x706C
+0x6f59 0x706E
+0x6f5a 0x7076
+0x6f5b 0x707E
+0x6f5c 0x7081
+0x6f5d 0x7086
+0x6f5e 0x7095
+0x6f5f 0x7097
+0x6f60 0x70BB
+0x6f61 0x000241C6
+0x6f62 0x709F
+0x6f63 0x70B1
+0x6f64 0x000241FE
+0x6f65 0x70EC
+0x6f66 0x70CA
+0x6f67 0x70D1
+0x6f68 0x70D3
+0x6f69 0x70DC
+0x6f6a 0x7103
+0x6f6b 0x7104
+0x6f6c 0x7106
+0x6f6d 0x7107
+0x6f6e 0x7108
+0x6f6f 0x710C
+0x6f70 0x3DC0
+0x6f71 0x712F
+0x6f72 0x7131
+0x6f73 0x7150
+0x6f74 0x714A
+0x6f75 0x7153
+0x6f76 0x715E
+0x6f77 0x3DD4
+0x6f78 0x7196
+0x6f79 0x7180
+0x6f7a 0x719B
+0x6f7b 0x71A0
+0x6f7c 0x71A2
+0x6f7d 0x71AE
+0x6f7e 0x71AF
+0x7021 0x71B3
+0x7022 0x000243BC
+0x7023 0x71CB
+0x7024 0x71D3
+0x7025 0x71D9
+0x7026 0x71DC
+0x7027 0x7207
+0x7028 0x3E05
+0x7029 0xFA49
+0x702a 0x722B
+0x702b 0x7234
+0x702c 0x7238
+0x702d 0x7239
+0x702e 0x4E2C
+0x702f 0x7242
+0x7030 0x7253
+0x7031 0x7257
+0x7032 0x7263
+0x7033 0x00024629
+0x7034 0x726E
+0x7035 0x726F
+0x7036 0x7278
+0x7037 0x727F
+0x7038 0x728E
+0x7039 0x000246A5
+0x703a 0x72AD
+0x703b 0x72AE
+0x703c 0x72B0
+0x703d 0x72B1
+0x703e 0x72C1
+0x703f 0x3E60
+0x7040 0x72CC
+0x7041 0x3E66
+0x7042 0x3E68
+0x7043 0x72F3
+0x7044 0x72FA
+0x7045 0x7307
+0x7046 0x7312
+0x7047 0x7318
+0x7048 0x7319
+0x7049 0x3E83
+0x704a 0x7339
+0x704b 0x732C
+0x704c 0x7331
+0x704d 0x7333
+0x704e 0x733D
+0x704f 0x7352
+0x7050 0x3E94
+0x7051 0x736B
+0x7052 0x736C
+0x7053 0x00024896
+0x7054 0x736E
+0x7055 0x736F
+0x7056 0x7371
+0x7057 0x7377
+0x7058 0x7381
+0x7059 0x7385
+0x705a 0x738A
+0x705b 0x7394
+0x705c 0x7398
+0x705d 0x739C
+0x705e 0x739E
+0x705f 0x73A5
+0x7060 0x73A8
+0x7061 0x73B5
+0x7062 0x73B7
+0x7063 0x73B9
+0x7064 0x73BC
+0x7065 0x73BF
+0x7066 0x73C5
+0x7067 0x73CB
+0x7068 0x73E1
+0x7069 0x73E7
+0x706a 0x73F9
+0x706b 0x7413
+0x706c 0x73FA
+0x706d 0x7401
+0x706e 0x7424
+0x706f 0x7431
+0x7070 0x7439
+0x7071 0x7453
+0x7072 0x7440
+0x7073 0x7443
+0x7074 0x744D
+0x7075 0x7452
+0x7076 0x745D
+0x7077 0x7471
+0x7078 0x7481
+0x7079 0x7485
+0x707a 0x7488
+0x707b 0x00024A4D
+0x707c 0x7492
+0x707d 0x7497
+0x707e 0x7499
+0x7121 0x74A0
+0x7122 0x74A1
+0x7123 0x74A5
+0x7124 0x74AA
+0x7125 0x74AB
+0x7126 0x74B9
+0x7127 0x74BB
+0x7128 0x74BA
+0x7129 0x74D6
+0x712a 0x74D8
+0x712b 0x74DE
+0x712c 0x74EF
+0x712d 0x74EB
+0x712e 0x00024B56
+0x712f 0x74FA
+0x7130 0x00024B6F
+0x7131 0x7520
+0x7132 0x7524
+0x7133 0x752A
+0x7134 0x3F57
+0x7135 0x00024C16
+0x7136 0x753D
+0x7137 0x753E
+0x7138 0x7540
+0x7139 0x7548
+0x713a 0x754E
+0x713b 0x7550
+0x713c 0x7552
+0x713d 0x756C
+0x713e 0x7572
+0x713f 0x7571
+0x7140 0x757A
+0x7141 0x757D
+0x7142 0x757E
+0x7143 0x7581
+0x7144 0x00024D14
+0x7145 0x758C
+0x7146 0x3F75
+0x7147 0x75A2
+0x7148 0x3F77
+0x7149 0x75B0
+0x714a 0x75B7
+0x714b 0x75BF
+0x714c 0x75C0
+0x714d 0x75C6
+0x714e 0x75CF
+0x714f 0x75D3
+0x7150 0x75DD
+0x7151 0x75DF
+0x7152 0x75E0
+0x7153 0x75E7
+0x7154 0x75EC
+0x7155 0x75EE
+0x7156 0x75F1
+0x7157 0x75F9
+0x7158 0x7603
+0x7159 0x7618
+0x715a 0x7607
+0x715b 0x760F
+0x715c 0x3FAE
+0x715d 0x00024E0E
+0x715e 0x7613
+0x715f 0x761B
+0x7160 0x761C
+0x7161 0x00024E37
+0x7162 0x7625
+0x7163 0x7628
+0x7164 0x763C
+0x7165 0x7633
+0x7166 0x00024E6A
+0x7167 0x3FC9
+0x7168 0x7641
+0x7169 0x00024E8B
+0x716a 0x7649
+0x716b 0x7655
+0x716c 0x3FD7
+0x716d 0x766E
+0x716e 0x7695
+0x716f 0x769C
+0x7170 0x76A1
+0x7171 0x76A0
+0x7172 0x76A7
+0x7173 0x76A8
+0x7174 0x76AF
+0x7175 0x0002504A
+0x7176 0x76C9
+0x7177 0x00025055
+0x7178 0x76E8
+0x7179 0x76EC
+0x717a 0x00025122
+0x717b 0x7717
+0x717c 0x771A
+0x717d 0x772D
+0x717e 0x7735
+0x7221 0x000251A9
+0x7222 0x4039
+0x7223 0x000251E5
+0x7224 0x000251CD
+0x7225 0x7758
+0x7226 0x7760
+0x7227 0x776A
+0x7228 0x0002521E
+0x7229 0x7772
+0x722a 0x777C
+0x722b 0x777D
+0x722c 0x0002524C
+0x722d 0x4058
+0x722e 0x779A
+0x722f 0x779F
+0x7230 0x77A2
+0x7231 0x77A4
+0x7232 0x77A9
+0x7233 0x77DE
+0x7234 0x77DF
+0x7235 0x77E4
+0x7236 0x77E6
+0x7237 0x77EA
+0x7238 0x77EC
+0x7239 0x4093
+0x723a 0x77F0
+0x723b 0x77F4
+0x723c 0x77FB
+0x723d 0x0002542E
+0x723e 0x7805
+0x723f 0x7806
+0x7240 0x7809
+0x7241 0x780D
+0x7242 0x7819
+0x7243 0x7821
+0x7244 0x782C
+0x7245 0x7847
+0x7246 0x7864
+0x7247 0x786A
+0x7248 0x000254D9
+0x7249 0x788A
+0x724a 0x7894
+0x724b 0x78A4
+0x724c 0x789D
+0x724d 0x789E
+0x724e 0x789F
+0x724f 0x78BB
+0x7250 0x78C8
+0x7251 0x78CC
+0x7252 0x78CE
+0x7253 0x78D5
+0x7254 0x78E0
+0x7255 0x78E1
+0x7256 0x78E6
+0x7257 0x78F9
+0x7258 0x78FA
+0x7259 0x78FB
+0x725a 0x78FE
+0x725b 0x000255A7
+0x725c 0x7910
+0x725d 0x791B
+0x725e 0x7930
+0x725f 0x7925
+0x7260 0x793B
+0x7261 0x794A
+0x7262 0x7958
+0x7263 0x795B
+0x7264 0x4105
+0x7265 0x7967
+0x7266 0x7972
+0x7267 0x7994
+0x7268 0x7995
+0x7269 0x7996
+0x726a 0x799B
+0x726b 0x79A1
+0x726c 0x79A9
+0x726d 0x79B4
+0x726e 0x79BB
+0x726f 0x79C2
+0x7270 0x79C7
+0x7271 0x79CC
+0x7272 0x79CD
+0x7273 0x79D6
+0x7274 0x4148
+0x7275 0x000257A9
+0x7276 0x000257B4
+0x7277 0x414F
+0x7278 0x7A0A
+0x7279 0x7A11
+0x727a 0x7A15
+0x727b 0x7A1B
+0x727c 0x7A1E
+0x727d 0x4163
+0x727e 0x7A2D
+0x7321 0x7A38
+0x7322 0x7A47
+0x7323 0x7A4C
+0x7324 0x7A56
+0x7325 0x7A59
+0x7326 0x7A5C
+0x7327 0x7A5F
+0x7328 0x7A60
+0x7329 0x7A67
+0x732a 0x7A6A
+0x732b 0x7A75
+0x732c 0x7A78
+0x732d 0x7A82
+0x732e 0x7A8A
+0x732f 0x7A90
+0x7330 0x7AA3
+0x7331 0x7AAC
+0x7332 0x000259D4
+0x7333 0x41B4
+0x7334 0x7AB9
+0x7335 0x7ABC
+0x7336 0x7ABE
+0x7337 0x41BF
+0x7338 0x7ACC
+0x7339 0x7AD1
+0x733a 0x7AE7
+0x733b 0x7AE8
+0x733c 0x7AF4
+0x733d 0x00025AE4
+0x733e 0x00025AE3
+0x733f 0x7B07
+0x7340 0x00025AF1
+0x7341 0x7B3D
+0x7342 0x7B27
+0x7343 0x7B2A
+0x7344 0x7B2E
+0x7345 0x7B2F
+0x7346 0x7B31
+0x7347 0x41E6
+0x7348 0x41F3
+0x7349 0x7B7F
+0x734a 0x7B41
+0x734b 0x41EE
+0x734c 0x7B55
+0x734d 0x7B79
+0x734e 0x7B64
+0x734f 0x7B66
+0x7350 0x7B69
+0x7351 0x7B73
+0x7352 0x00025BB2
+0x7353 0x4207
+0x7354 0x7B90
+0x7355 0x7B91
+0x7356 0x7B9B
+0x7357 0x420E
+0x7358 0x7BAF
+0x7359 0x7BB5
+0x735a 0x7BBC
+0x735b 0x7BC5
+0x735c 0x7BCA
+0x735d 0x00025C4B
+0x735e 0x00025C64
+0x735f 0x7BD4
+0x7360 0x7BD6
+0x7361 0x7BDA
+0x7362 0x7BEA
+0x7363 0x7BF0
+0x7364 0x7C03
+0x7365 0x7C0B
+0x7366 0x7C0E
+0x7367 0x7C0F
+0x7368 0x7C26
+0x7369 0x7C45
+0x736a 0x7C4A
+0x736b 0x7C51
+0x736c 0x7C57
+0x736d 0x7C5E
+0x736e 0x7C61
+0x736f 0x7C69
+0x7370 0x7C6E
+0x7371 0x7C6F
+0x7372 0x7C70
+0x7373 0x00025E2E
+0x7374 0x00025E56
+0x7375 0x00025E65
+0x7376 0x7CA6
+0x7377 0x00025E62
+0x7378 0x7CB6
+0x7379 0x7CB7
+0x737a 0x7CBF
+0x737b 0x00025ED8
+0x737c 0x7CC4
+0x737d 0x00025EC2
+0x737e 0x7CC8
+0x7421 0x7CCD
+0x7422 0x00025EE8
+0x7423 0x7CD7
+0x7424 0x00025F23
+0x7425 0x7CE6
+0x7426 0x7CEB
+0x7427 0x00025F5C
+0x7428 0x7CF5
+0x7429 0x7D03
+0x742a 0x7D09
+0x742b 0x42C6
+0x742c 0x7D12
+0x742d 0x7D1E
+0x742e 0x00025FE0
+0x742f 0x00025FD4
+0x7430 0x7D3D
+0x7431 0x7D3E
+0x7432 0x7D40
+0x7433 0x7D47
+0x7434 0x0002600C
+0x7435 0x00025FFB
+0x7436 0x42D6
+0x7437 0x7D59
+0x7438 0x7D5A
+0x7439 0x7D6A
+0x743a 0x7D70
+0x743b 0x42DD
+0x743c 0x7D7F
+0x743d 0x00026017
+0x743e 0x7D86
+0x743f 0x7D88
+0x7440 0x7D8C
+0x7441 0x7D97
+0x7442 0x00026060
+0x7443 0x7D9D
+0x7444 0x7DA7
+0x7445 0x7DAA
+0x7446 0x7DB6
+0x7447 0x7DB7
+0x7448 0x7DC0
+0x7449 0x7DD7
+0x744a 0x7DD9
+0x744b 0x7DE6
+0x744c 0x7DF1
+0x744d 0x7DF9
+0x744e 0x4302
+0x744f 0x000260ED
+0x7450 0xFA58
+0x7451 0x7E10
+0x7452 0x7E17
+0x7453 0x7E1D
+0x7454 0x7E20
+0x7455 0x7E27
+0x7456 0x7E2C
+0x7457 0x7E45
+0x7458 0x7E73
+0x7459 0x7E75
+0x745a 0x7E7E
+0x745b 0x7E86
+0x745c 0x7E87
+0x745d 0x432B
+0x745e 0x7E91
+0x745f 0x7E98
+0x7460 0x7E9A
+0x7461 0x4343
+0x7462 0x7F3C
+0x7463 0x7F3B
+0x7464 0x7F3E
+0x7465 0x7F43
+0x7466 0x7F44
+0x7467 0x7F4F
+0x7468 0x34C1
+0x7469 0x00026270
+0x746a 0x7F52
+0x746b 0x00026286
+0x746c 0x7F61
+0x746d 0x7F63
+0x746e 0x7F64
+0x746f 0x7F6D
+0x7470 0x7F7D
+0x7471 0x7F7E
+0x7472 0x0002634C
+0x7473 0x7F90
+0x7474 0x517B
+0x7475 0x00023D0E
+0x7476 0x7F96
+0x7477 0x7F9C
+0x7478 0x7FAD
+0x7479 0x00026402
+0x747a 0x7FC3
+0x747b 0x7FCF
+0x747c 0x7FE3
+0x747d 0x7FE5
+0x747e 0x7FEF
+0x7521 0x7FF2
+0x7522 0x8002
+0x7523 0x800A
+0x7524 0x8008
+0x7525 0x800E
+0x7526 0x8011
+0x7527 0x8016
+0x7528 0x8024
+0x7529 0x802C
+0x752a 0x8030
+0x752b 0x8043
+0x752c 0x8066
+0x752d 0x8071
+0x752e 0x8075
+0x752f 0x807B
+0x7530 0x8099
+0x7531 0x809C
+0x7532 0x80A4
+0x7533 0x80A7
+0x7534 0x80B8
+0x7535 0x0002667E
+0x7536 0x80C5
+0x7537 0x80D5
+0x7538 0x80D8
+0x7539 0x80E6
+0x753a 0x000266B0
+0x753b 0x810D
+0x753c 0x80F5
+0x753d 0x80FB
+0x753e 0x43EE
+0x753f 0x8135
+0x7540 0x8116
+0x7541 0x811E
+0x7542 0x43F0
+0x7543 0x8124
+0x7544 0x8127
+0x7545 0x812C
+0x7546 0x0002671D
+0x7547 0x813D
+0x7548 0x4408
+0x7549 0x8169
+0x754a 0x4417
+0x754b 0x8181
+0x754c 0x441C
+0x754d 0x8184
+0x754e 0x8185
+0x754f 0x4422
+0x7550 0x8198
+0x7551 0x81B2
+0x7552 0x81C1
+0x7553 0x81C3
+0x7554 0x81D6
+0x7555 0x81DB
+0x7556 0x000268DD
+0x7557 0x81E4
+0x7558 0x000268EA
+0x7559 0x81EC
+0x755a 0x00026951
+0x755b 0x81FD
+0x755c 0x81FF
+0x755d 0x0002696F
+0x755e 0x8204
+0x755f 0x000269DD
+0x7560 0x8219
+0x7561 0x8221
+0x7562 0x8222
+0x7563 0x00026A1E
+0x7564 0x8232
+0x7565 0x8234
+0x7566 0x823C
+0x7567 0x8246
+0x7568 0x8249
+0x7569 0x8245
+0x756a 0x00026A58
+0x756b 0x824B
+0x756c 0x4476
+0x756d 0x824F
+0x756e 0x447A
+0x756f 0x8257
+0x7570 0x00026A8C
+0x7571 0x825C
+0x7572 0x8263
+0x7573 0x00026AB7
+0x7574 0xFA5D
+0x7575 0xFA5E
+0x7576 0x8279
+0x7577 0x4491
+0x7578 0x827D
+0x7579 0x827F
+0x757a 0x8283
+0x757b 0x828A
+0x757c 0x8293
+0x757d 0x82A7
+0x757e 0x82A8
+0x7621 0x82B2
+0x7622 0x82B4
+0x7623 0x82BA
+0x7624 0x82BC
+0x7625 0x82E2
+0x7626 0x82E8
+0x7627 0x82F7
+0x7628 0x8307
+0x7629 0x8308
+0x762a 0x830C
+0x762b 0x8354
+0x762c 0x831B
+0x762d 0x831D
+0x762e 0x8330
+0x762f 0x833C
+0x7630 0x8344
+0x7631 0x8357
+0x7632 0x44BE
+0x7633 0x837F
+0x7634 0x44D4
+0x7635 0x44B3
+0x7636 0x838D
+0x7637 0x8394
+0x7638 0x8395
+0x7639 0x839B
+0x763a 0x839D
+0x763b 0x83C9
+0x763c 0x83D0
+0x763d 0x83D4
+0x763e 0x83DD
+0x763f 0x83E5
+0x7640 0x83F9
+0x7641 0x840F
+0x7642 0x8411
+0x7643 0x8415
+0x7644 0x00026C73
+0x7645 0x8417
+0x7646 0x8439
+0x7647 0x844A
+0x7648 0x844F
+0x7649 0x8451
+0x764a 0x8452
+0x764b 0x8459
+0x764c 0x845A
+0x764d 0x845C
+0x764e 0x00026CDD
+0x764f 0x8465
+0x7650 0x8476
+0x7651 0x8478
+0x7652 0x847C
+0x7653 0x8481
+0x7654 0x450D
+0x7655 0x84DC
+0x7656 0x8497
+0x7657 0x84A6
+0x7658 0x84BE
+0x7659 0x4508
+0x765a 0x84CE
+0x765b 0x84CF
+0x765c 0x84D3
+0x765d 0x00026E65
+0x765e 0x84E7
+0x765f 0x84EA
+0x7660 0x84EF
+0x7661 0x84F0
+0x7662 0x84F1
+0x7663 0x84FA
+0x7664 0x84FD
+0x7665 0x850C
+0x7666 0x851B
+0x7667 0x8524
+0x7668 0x8525
+0x7669 0x852B
+0x766a 0x8534
+0x766b 0x854F
+0x766c 0x856F
+0x766d 0x4525
+0x766e 0x4543
+0x766f 0x853E
+0x7670 0x8551
+0x7671 0x8553
+0x7672 0x855E
+0x7673 0x8561
+0x7674 0x8562
+0x7675 0x00026F94
+0x7676 0x857B
+0x7677 0x857D
+0x7678 0x857F
+0x7679 0x8581
+0x767a 0x8586
+0x767b 0x8593
+0x767c 0x859D
+0x767d 0x859F
+0x767e 0x00026FF8
+0x7721 0x00026FF6
+0x7722 0x00026FF7
+0x7723 0x85B7
+0x7724 0x85BC
+0x7725 0x85C7
+0x7726 0x85CA
+0x7727 0x85D8
+0x7728 0x85D9
+0x7729 0x85DF
+0x772a 0x85E1
+0x772b 0x85E6
+0x772c 0x85F6
+0x772d 0x8600
+0x772e 0x8611
+0x772f 0x861E
+0x7730 0x8621
+0x7731 0x8624
+0x7732 0x8627
+0x7733 0x0002710D
+0x7734 0x8639
+0x7735 0x863C
+0x7736 0x00027139
+0x7737 0x8640
+0x7738 0xFA20
+0x7739 0x8653
+0x773a 0x8656
+0x773b 0x866F
+0x773c 0x8677
+0x773d 0x867A
+0x773e 0x8687
+0x773f 0x8689
+0x7740 0x868D
+0x7741 0x8691
+0x7742 0x869C
+0x7743 0x869D
+0x7744 0x86A8
+0x7745 0xFA21
+0x7746 0x86B1
+0x7747 0x86B3
+0x7748 0x86C1
+0x7749 0x86C3
+0x774a 0x86D1
+0x774b 0x86D5
+0x774c 0x86D7
+0x774d 0x86E3
+0x774e 0x86E6
+0x774f 0x45B8
+0x7750 0x8705
+0x7751 0x8707
+0x7752 0x870E
+0x7753 0x8710
+0x7754 0x8713
+0x7755 0x8719
+0x7756 0x871F
+0x7757 0x8721
+0x7758 0x8723
+0x7759 0x8731
+0x775a 0x873A
+0x775b 0x873E
+0x775c 0x8740
+0x775d 0x8743
+0x775e 0x8751
+0x775f 0x8758
+0x7760 0x8764
+0x7761 0x8765
+0x7762 0x8772
+0x7763 0x877C
+0x7764 0x000273DB
+0x7765 0x000273DA
+0x7766 0x87A7
+0x7767 0x8789
+0x7768 0x878B
+0x7769 0x8793
+0x776a 0x87A0
+0x776b 0x000273FE
+0x776c 0x45E5
+0x776d 0x87BE
+0x776e 0x00027410
+0x776f 0x87C1
+0x7770 0x87CE
+0x7771 0x87F5
+0x7772 0x87DF
+0x7773 0x00027449
+0x7774 0x87E3
+0x7775 0x87E5
+0x7776 0x87E6
+0x7777 0x87EA
+0x7778 0x87EB
+0x7779 0x87ED
+0x777a 0x8801
+0x777b 0x8803
+0x777c 0x880B
+0x777d 0x8813
+0x777e 0x8828
+0x7821 0x882E
+0x7822 0x8832
+0x7823 0x883C
+0x7824 0x460F
+0x7825 0x884A
+0x7826 0x8858
+0x7827 0x885F
+0x7828 0x8864
+0x7829 0x00027615
+0x782a 0x00027614
+0x782b 0x8869
+0x782c 0x00027631
+0x782d 0x886F
+0x782e 0x88A0
+0x782f 0x88BC
+0x7830 0x88BD
+0x7831 0x88BE
+0x7832 0x88C0
+0x7833 0x88D2
+0x7834 0x00027693
+0x7835 0x88D1
+0x7836 0x88D3
+0x7837 0x88DB
+0x7838 0x88F0
+0x7839 0x88F1
+0x783a 0x4641
+0x783b 0x8901
+0x783c 0x0002770E
+0x783d 0x8937
+0x783e 0x00027723
+0x783f 0x8942
+0x7840 0x8945
+0x7841 0x8949
+0x7842 0x00027752
+0x7843 0x4665
+0x7844 0x8962
+0x7845 0x8980
+0x7846 0x8989
+0x7847 0x8990
+0x7848 0x899F
+0x7849 0x89B0
+0x784a 0x89B7
+0x784b 0x89D6
+0x784c 0x89D8
+0x784d 0x89EB
+0x784e 0x46A1
+0x784f 0x89F1
+0x7850 0x89F3
+0x7851 0x89FD
+0x7852 0x89FF
+0x7853 0x46AF
+0x7854 0x8A11
+0x7855 0x8A14
+0x7856 0x00027985
+0x7857 0x8A21
+0x7858 0x8A35
+0x7859 0x8A3E
+0x785a 0x8A45
+0x785b 0x8A4D
+0x785c 0x8A58
+0x785d 0x8AAE
+0x785e 0x8A90
+0x785f 0x8AB7
+0x7860 0x8ABE
+0x7861 0x8AD7
+0x7862 0x8AFC
+0x7863 0x00027A84
+0x7864 0x8B0A
+0x7865 0x8B05
+0x7866 0x8B0D
+0x7867 0x8B1C
+0x7868 0x8B1F
+0x7869 0x8B2D
+0x786a 0x8B43
+0x786b 0x470C
+0x786c 0x8B51
+0x786d 0x8B5E
+0x786e 0x8B76
+0x786f 0x8B7F
+0x7870 0x8B81
+0x7871 0x8B8B
+0x7872 0x8B94
+0x7873 0x8B95
+0x7874 0x8B9C
+0x7875 0x8B9E
+0x7876 0x8C39
+0x7877 0x00027BB3
+0x7878 0x8C3D
+0x7879 0x00027BBE
+0x787a 0x00027BC7
+0x787b 0x8C45
+0x787c 0x8C47
+0x787d 0x8C4F
+0x787e 0x8C54
+0x7921 0x8C57
+0x7922 0x8C69
+0x7923 0x8C6D
+0x7924 0x8C73
+0x7925 0x00027CB8
+0x7926 0x8C93
+0x7927 0x8C92
+0x7928 0x8C99
+0x7929 0x4764
+0x792a 0x8C9B
+0x792b 0x8CA4
+0x792c 0x8CD6
+0x792d 0x8CD5
+0x792e 0x8CD9
+0x792f 0x00027DA0
+0x7930 0x8CF0
+0x7931 0x8CF1
+0x7932 0x00027E10
+0x7933 0x8D09
+0x7934 0x8D0E
+0x7935 0x8D6C
+0x7936 0x8D84
+0x7937 0x8D95
+0x7938 0x8DA6
+0x7939 0x00027FB7
+0x793a 0x8DC6
+0x793b 0x8DC8
+0x793c 0x8DD9
+0x793d 0x8DEC
+0x793e 0x8E0C
+0x793f 0x47FD
+0x7940 0x8DFD
+0x7941 0x8E06
+0x7942 0x0002808A
+0x7943 0x8E14
+0x7944 0x8E16
+0x7945 0x8E21
+0x7946 0x8E22
+0x7947 0x8E27
+0x7948 0x000280BB
+0x7949 0x4816
+0x794a 0x8E36
+0x794b 0x8E39
+0x794c 0x8E4B
+0x794d 0x8E54
+0x794e 0x8E62
+0x794f 0x8E6C
+0x7950 0x8E6D
+0x7951 0x8E6F
+0x7952 0x8E98
+0x7953 0x8E9E
+0x7954 0x8EAE
+0x7955 0x8EB3
+0x7956 0x8EB5
+0x7957 0x8EB6
+0x7958 0x8EBB
+0x7959 0x00028282
+0x795a 0x8ED1
+0x795b 0x8ED4
+0x795c 0x484E
+0x795d 0x8EF9
+0x795e 0x000282F3
+0x795f 0x8F00
+0x7960 0x8F08
+0x7961 0x8F17
+0x7962 0x8F2B
+0x7963 0x8F40
+0x7964 0x8F4A
+0x7965 0x8F58
+0x7966 0x0002840C
+0x7967 0x8FA4
+0x7968 0x8FB4
+0x7969 0xFA66
+0x796a 0x8FB6
+0x796b 0x00028455
+0x796c 0x8FC1
+0x796d 0x8FC6
+0x796e 0xFA24
+0x796f 0x8FCA
+0x7970 0x8FCD
+0x7971 0x8FD3
+0x7972 0x8FD5
+0x7973 0x8FE0
+0x7974 0x8FF1
+0x7975 0x8FF5
+0x7976 0x8FFB
+0x7977 0x9002
+0x7978 0x900C
+0x7979 0x9037
+0x797a 0x0002856B
+0x797b 0x9043
+0x797c 0x9044
+0x797d 0x905D
+0x797e 0x000285C8
+0x7a21 0x000285C9
+0x7a22 0x9085
+0x7a23 0x908C
+0x7a24 0x9090
+0x7a25 0x961D
+0x7a26 0x90A1
+0x7a27 0x48B5
+0x7a28 0x90B0
+0x7a29 0x90B6
+0x7a2a 0x90C3
+0x7a2b 0x90C8
+0x7a2c 0x000286D7
+0x7a2d 0x90DC
+0x7a2e 0x90DF
+0x7a2f 0x000286FA
+0x7a30 0x90F6
+0x7a31 0x90F2
+0x7a32 0x9100
+0x7a33 0x90EB
+0x7a34 0x90FE
+0x7a35 0x90FF
+0x7a36 0x9104
+0x7a37 0x9106
+0x7a38 0x9118
+0x7a39 0x911C
+0x7a3a 0x911E
+0x7a3b 0x9137
+0x7a3c 0x9139
+0x7a3d 0x913A
+0x7a3e 0x9146
+0x7a3f 0x9147
+0x7a40 0x9157
+0x7a41 0x9159
+0x7a42 0x9161
+0x7a43 0x9164
+0x7a44 0x9174
+0x7a45 0x9179
+0x7a46 0x9185
+0x7a47 0x918E
+0x7a48 0x91A8
+0x7a49 0x91AE
+0x7a4a 0x91B3
+0x7a4b 0x91B6
+0x7a4c 0x91C3
+0x7a4d 0x91C4
+0x7a4e 0x91DA
+0x7a4f 0x00028949
+0x7a50 0x00028946
+0x7a51 0x91EC
+0x7a52 0x91EE
+0x7a53 0x9201
+0x7a54 0x920A
+0x7a55 0x9216
+0x7a56 0x9217
+0x7a57 0x0002896B
+0x7a58 0x9233
+0x7a59 0x9242
+0x7a5a 0x9247
+0x7a5b 0x924A
+0x7a5c 0x924E
+0x7a5d 0x9251
+0x7a5e 0x9256
+0x7a5f 0x9259
+0x7a60 0x9260
+0x7a61 0x9261
+0x7a62 0x9265
+0x7a63 0x9267
+0x7a64 0x9268
+0x7a65 0x00028987
+0x7a66 0x00028988
+0x7a67 0x927C
+0x7a68 0x927D
+0x7a69 0x927F
+0x7a6a 0x9289
+0x7a6b 0x928D
+0x7a6c 0x9297
+0x7a6d 0x9299
+0x7a6e 0x929F
+0x7a6f 0x92A7
+0x7a70 0x92AB
+0x7a71 0x000289BA
+0x7a72 0x000289BB
+0x7a73 0x92B2
+0x7a74 0x92BF
+0x7a75 0x92C0
+0x7a76 0x92C6
+0x7a77 0x92CE
+0x7a78 0x92D0
+0x7a79 0x92D7
+0x7a7a 0x92D9
+0x7a7b 0x92E5
+0x7a7c 0x92E7
+0x7a7d 0x9311
+0x7a7e 0x00028A1E
+0x7b21 0x00028A29
+0x7b22 0x92F7
+0x7b23 0x92F9
+0x7b24 0x92FB
+0x7b25 0x9302
+0x7b26 0x930D
+0x7b27 0x9315
+0x7b28 0x931D
+0x7b29 0x931E
+0x7b2a 0x9327
+0x7b2b 0x9329
+0x7b2c 0x00028A71
+0x7b2d 0x00028A43
+0x7b2e 0x9347
+0x7b2f 0x9351
+0x7b30 0x9357
+0x7b31 0x935A
+0x7b32 0x936B
+0x7b33 0x9371
+0x7b34 0x9373
+0x7b35 0x93A1
+0x7b36 0x00028A99
+0x7b37 0x00028ACD
+0x7b38 0x9388
+0x7b39 0x938B
+0x7b3a 0x938F
+0x7b3b 0x939E
+0x7b3c 0x93F5
+0x7b3d 0x00028AE4
+0x7b3e 0x00028ADD
+0x7b3f 0x93F1
+0x7b40 0x93C1
+0x7b41 0x93C7
+0x7b42 0x93DC
+0x7b43 0x93E2
+0x7b44 0x93E7
+0x7b45 0x9409
+0x7b46 0x940F
+0x7b47 0x9416
+0x7b48 0x9417
+0x7b49 0x93FB
+0x7b4a 0x9432
+0x7b4b 0x9434
+0x7b4c 0x943B
+0x7b4d 0x9445
+0x7b4e 0x00028BC1
+0x7b4f 0x00028BEF
+0x7b50 0x946D
+0x7b51 0x946F
+0x7b52 0x9578
+0x7b53 0x9579
+0x7b54 0x9586
+0x7b55 0x958C
+0x7b56 0x958D
+0x7b57 0x00028D10
+0x7b58 0x95AB
+0x7b59 0x95B4
+0x7b5a 0x00028D71
+0x7b5b 0x95C8
+0x7b5c 0x00028DFB
+0x7b5d 0x00028E1F
+0x7b5e 0x962C
+0x7b5f 0x9633
+0x7b60 0x9634
+0x7b61 0x00028E36
+0x7b62 0x963C
+0x7b63 0x9641
+0x7b64 0x9661
+0x7b65 0x00028E89
+0x7b66 0x9682
+0x7b67 0x00028EEB
+0x7b68 0x969A
+0x7b69 0x00028F32
+0x7b6a 0x49E7
+0x7b6b 0x96A9
+0x7b6c 0x96AF
+0x7b6d 0x96B3
+0x7b6e 0x96BA
+0x7b6f 0x96BD
+0x7b70 0x49FA
+0x7b71 0x00028FF8
+0x7b72 0x96D8
+0x7b73 0x96DA
+0x7b74 0x96DD
+0x7b75 0x4A04
+0x7b76 0x9714
+0x7b77 0x9723
+0x7b78 0x4A29
+0x7b79 0x9736
+0x7b7a 0x9741
+0x7b7b 0x9747
+0x7b7c 0x9755
+0x7b7d 0x9757
+0x7b7e 0x975B
+0x7c21 0x976A
+0x7c22 0x000292A0
+0x7c23 0x000292B1
+0x7c24 0x9796
+0x7c25 0x979A
+0x7c26 0x979E
+0x7c27 0x97A2
+0x7c28 0x97B1
+0x7c29 0x97B2
+0x7c2a 0x97BE
+0x7c2b 0x97CC
+0x7c2c 0x97D1
+0x7c2d 0x97D4
+0x7c2e 0x97D8
+0x7c2f 0x97D9
+0x7c30 0x97E1
+0x7c31 0x97F1
+0x7c32 0x9804
+0x7c33 0x980D
+0x7c34 0x980E
+0x7c35 0x9814
+0x7c36 0x9816
+0x7c37 0x4ABC
+0x7c38 0x00029490
+0x7c39 0x9823
+0x7c3a 0x9832
+0x7c3b 0x9833
+0x7c3c 0x9825
+0x7c3d 0x9847
+0x7c3e 0x9866
+0x7c3f 0x98AB
+0x7c40 0x98AD
+0x7c41 0x98B0
+0x7c42 0x000295CF
+0x7c43 0x98B7
+0x7c44 0x98B8
+0x7c45 0x98BB
+0x7c46 0x98BC
+0x7c47 0x98BF
+0x7c48 0x98C2
+0x7c49 0x98C7
+0x7c4a 0x98CB
+0x7c4b 0x98E0
+0x7c4c 0x0002967F
+0x7c4d 0x98E1
+0x7c4e 0x98E3
+0x7c4f 0x98E5
+0x7c50 0x98EA
+0x7c51 0x98F0
+0x7c52 0x98F1
+0x7c53 0x98F3
+0x7c54 0x9908
+0x7c55 0x4B3B
+0x7c56 0x000296F0
+0x7c57 0x9916
+0x7c58 0x9917
+0x7c59 0x00029719
+0x7c5a 0x991A
+0x7c5b 0x991B
+0x7c5c 0x991C
+0x7c5d 0x00029750
+0x7c5e 0x9931
+0x7c5f 0x9932
+0x7c60 0x9933
+0x7c61 0x993A
+0x7c62 0x993B
+0x7c63 0x993C
+0x7c64 0x9940
+0x7c65 0x9941
+0x7c66 0x9946
+0x7c67 0x994D
+0x7c68 0x994E
+0x7c69 0x995C
+0x7c6a 0x995F
+0x7c6b 0x9960
+0x7c6c 0x99A3
+0x7c6d 0x99A6
+0x7c6e 0x99B9
+0x7c6f 0x99BD
+0x7c70 0x99BF
+0x7c71 0x99C3
+0x7c72 0x99C9
+0x7c73 0x99D4
+0x7c74 0x99D9
+0x7c75 0x99DE
+0x7c76 0x000298C6
+0x7c77 0x99F0
+0x7c78 0x99F9
+0x7c79 0x99FC
+0x7c7a 0x9A0A
+0x7c7b 0x9A11
+0x7c7c 0x9A16
+0x7c7d 0x9A1A
+0x7c7e 0x9A20
+0x7d21 0x9A31
+0x7d22 0x9A36
+0x7d23 0x9A44
+0x7d24 0x9A4C
+0x7d25 0x9A58
+0x7d26 0x4BC2
+0x7d27 0x9AAF
+0x7d28 0x4BCA
+0x7d29 0x9AB7
+0x7d2a 0x4BD2
+0x7d2b 0x9AB9
+0x7d2c 0x00029A72
+0x7d2d 0x9AC6
+0x7d2e 0x9AD0
+0x7d2f 0x9AD2
+0x7d30 0x9AD5
+0x7d31 0x4BE8
+0x7d32 0x9ADC
+0x7d33 0x9AE0
+0x7d34 0x9AE5
+0x7d35 0x9AE9
+0x7d36 0x9B03
+0x7d37 0x9B0C
+0x7d38 0x9B10
+0x7d39 0x9B12
+0x7d3a 0x9B16
+0x7d3b 0x9B1C
+0x7d3c 0x9B2B
+0x7d3d 0x9B33
+0x7d3e 0x9B3D
+0x7d3f 0x4C20
+0x7d40 0x9B4B
+0x7d41 0x9B63
+0x7d42 0x9B65
+0x7d43 0x9B6B
+0x7d44 0x9B6C
+0x7d45 0x9B73
+0x7d46 0x9B76
+0x7d47 0x9B77
+0x7d48 0x9BA6
+0x7d49 0x9BAC
+0x7d4a 0x9BB1
+0x7d4b 0x00029DDB
+0x7d4c 0x00029E3D
+0x7d4d 0x9BB2
+0x7d4e 0x9BB8
+0x7d4f 0x9BBE
+0x7d50 0x9BC7
+0x7d51 0x9BF3
+0x7d52 0x9BD8
+0x7d53 0x9BDD
+0x7d54 0x9BE7
+0x7d55 0x9BEA
+0x7d56 0x9BEB
+0x7d57 0x9BEF
+0x7d58 0x9BEE
+0x7d59 0x00029E15
+0x7d5a 0x9BFA
+0x7d5b 0x00029E8A
+0x7d5c 0x9BF7
+0x7d5d 0x00029E49
+0x7d5e 0x9C16
+0x7d5f 0x9C18
+0x7d60 0x9C19
+0x7d61 0x9C1A
+0x7d62 0x9C1D
+0x7d63 0x9C22
+0x7d64 0x9C27
+0x7d65 0x9C29
+0x7d66 0x9C2A
+0x7d67 0x00029EC4
+0x7d68 0x9C31
+0x7d69 0x9C36
+0x7d6a 0x9C37
+0x7d6b 0x9C45
+0x7d6c 0x9C5C
+0x7d6d 0x00029EE9
+0x7d6e 0x9C49
+0x7d6f 0x9C4A
+0x7d70 0x00029EDB
+0x7d71 0x9C54
+0x7d72 0x9C58
+0x7d73 0x9C5B
+0x7d74 0x9C5D
+0x7d75 0x9C5F
+0x7d76 0x9C69
+0x7d77 0x9C6A
+0x7d78 0x9C6B
+0x7d79 0x9C6D
+0x7d7a 0x9C6E
+0x7d7b 0x9C70
+0x7d7c 0x9C72
+0x7d7d 0x9C75
+0x7d7e 0x9C7A
+0x7e21 0x9CE6
+0x7e22 0x9CF2
+0x7e23 0x9D0B
+0x7e24 0x9D02
+0x7e25 0x00029FCE
+0x7e26 0x9D11
+0x7e27 0x9D17
+0x7e28 0x9D18
+0x7e29 0x0002A02F
+0x7e2a 0x4CC4
+0x7e2b 0x0002A01A
+0x7e2c 0x9D32
+0x7e2d 0x4CD1
+0x7e2e 0x9D42
+0x7e2f 0x9D4A
+0x7e30 0x9D5F
+0x7e31 0x9D62
+0x7e32 0x0002A0F9
+0x7e33 0x9D69
+0x7e34 0x9D6B
+0x7e35 0x0002A082
+0x7e36 0x9D73
+0x7e37 0x9D76
+0x7e38 0x9D77
+0x7e39 0x9D7E
+0x7e3a 0x9D84
+0x7e3b 0x9D8D
+0x7e3c 0x9D99
+0x7e3d 0x9DA1
+0x7e3e 0x9DBF
+0x7e3f 0x9DB5
+0x7e40 0x9DB9
+0x7e41 0x9DBD
+0x7e42 0x9DC3
+0x7e43 0x9DC7
+0x7e44 0x9DC9
+0x7e45 0x9DD6
+0x7e46 0x9DDA
+0x7e47 0x9DDF
+0x7e48 0x9DE0
+0x7e49 0x9DE3
+0x7e4a 0x9DF4
+0x7e4b 0x4D07
+0x7e4c 0x9E0A
+0x7e4d 0x9E02
+0x7e4e 0x9E0D
+0x7e4f 0x9E19
+0x7e50 0x9E1C
+0x7e51 0x9E1D
+0x7e52 0x9E7B
+0x7e53 0x00022218
+0x7e54 0x9E80
+0x7e55 0x9E85
+0x7e56 0x9E9B
+0x7e57 0x9EA8
+0x7e58 0x0002A38C
+0x7e59 0x9EBD
+0x7e5a 0x0002A437
+0x7e5b 0x9EDF
+0x7e5c 0x9EE7
+0x7e5d 0x9EEE
+0x7e5e 0x9EFF
+0x7e5f 0x9F02
+0x7e60 0x4D77
+0x7e61 0x9F03
+0x7e62 0x9F17
+0x7e63 0x9F19
+0x7e64 0x9F2F
+0x7e65 0x9F37
+0x7e66 0x9F3A
+0x7e67 0x9F3D
+0x7e68 0x9F41
+0x7e69 0x9F45
+0x7e6a 0x9F46
+0x7e6b 0x9F53
+0x7e6c 0x9F55
+0x7e6d 0x9F58
+0x7e6e 0x0002A5F1
+0x7e6f 0x9F5D
+0x7e70 0x0002A602
+0x7e71 0x9F69
+0x7e72 0x0002A61A
+0x7e73 0x9F6D
+0x7e74 0x9F70
+0x7e75 0x9F75
+0x7e76 0x0002A6B2
diff --git a/etc/charsets/JISX213A.map b/etc/charsets/JISX213A.map
new file mode 100644 (file)
index 0000000..95facca
--- /dev/null
@@ -0,0 +1,10 @@
+0x2E21 0x4FF1
+0x2F7E 0x525D
+0x4F54 0x20B9F
+0x4F7E 0x541E
+0x7427 0x5653
+0x7E7A 0x59F8
+0x7E7B 0x5C5B
+0x7E7C 0x5E77
+0x7E7D 0x7626
+0x7E7E 0x7E6B
diff --git a/etc/charsets/JOHAB.map b/etc/charsets/JOHAB.map
new file mode 100644 (file)
index 0000000..cd13cc8
--- /dev/null
@@ -0,0 +1,5891 @@
+# Generated from glibc-2.3.2/localedata/charmaps/JOHAB
+0x8444 0x3133
+0x8446-0x8447 0x3135
+0x844A-0x8450 0x313A
+0x8454 0x3144
+0x8461 0x314F
+0x8481 0x3150
+0x84A1 0x3151
+0x84C1 0x3152
+0x84E1 0x3153
+0x8541 0x3154
+0x8561 0x3155
+0x8581 0x3156
+0x85A1 0x3157
+0x85C1 0x3158
+0x85E1 0x3159
+0x8641 0x315A
+0x8661 0x315B
+0x8681 0x315C
+0x86A1 0x315D
+0x86C1 0x315E
+0x86E1 0x315F
+0x8741 0x3160
+0x8761 0x3161
+0x8781 0x3162
+0x87A1 0x3163
+0x8841 0x3131
+0x8861-0x8871 0xAC00
+0x8873-0x887D 0xAC11
+0x8881-0x8891 0xAC1C
+0x8893-0x889D 0xAC2D
+0x88A1-0x88B1 0xAC38
+0x88B3-0x88BD 0xAC49
+0x88C1-0x88D1 0xAC54
+0x88D3-0x88DD 0xAC65
+0x88E1-0x88F1 0xAC70
+0x88F3-0x88FD 0xAC81
+0x8941-0x8951 0xAC8C
+0x8953-0x895D 0xAC9D
+0x8961-0x8971 0xACA8
+0x8973-0x897D 0xACB9
+0x8981-0x8991 0xACC4
+0x8993-0x899D 0xACD5
+0x89A1-0x89B1 0xACE0
+0x89B3-0x89BD 0xACF1
+0x89C1-0x89D1 0xACFC
+0x89D3-0x89DD 0xAD0D
+0x89E1-0x89F1 0xAD18
+0x89F3-0x89FD 0xAD29
+0x8A41-0x8A51 0xAD34
+0x8A53-0x8A5D 0xAD45
+0x8A61-0x8A71 0xAD50
+0x8A73-0x8A7D 0xAD61
+0x8A81-0x8A91 0xAD6C
+0x8A93-0x8A9D 0xAD7D
+0x8AA1-0x8AB1 0xAD88
+0x8AB3-0x8ABD 0xAD99
+0x8AC1-0x8AD1 0xADA4
+0x8AD3-0x8ADD 0xADB5
+0x8AE1-0x8AF1 0xADC0
+0x8AF3-0x8AFD 0xADD1
+0x8B41-0x8B51 0xADDC
+0x8B53-0x8B5D 0xADED
+0x8B61-0x8B71 0xADF8
+0x8B73-0x8B7D 0xAE09
+0x8B81-0x8B91 0xAE14
+0x8B93-0x8B9D 0xAE25
+0x8BA1-0x8BB1 0xAE30
+0x8BB3-0x8BBD 0xAE41
+0x8C41 0x3132
+0x8C61-0x8C71 0xAE4C
+0x8C73-0x8C7D 0xAE5D
+0x8C81-0x8C91 0xAE68
+0x8C93-0x8C9D 0xAE79
+0x8CA1-0x8CB1 0xAE84
+0x8CB3-0x8CBD 0xAE95
+0x8CC1-0x8CD1 0xAEA0
+0x8CD3-0x8CDD 0xAEB1
+0x8CE1-0x8CF1 0xAEBC
+0x8CF3-0x8CFD 0xAECD
+0x8D41-0x8D51 0xAED8
+0x8D53-0x8D5D 0xAEE9
+0x8D61-0x8D71 0xAEF4
+0x8D73-0x8D7D 0xAF05
+0x8D81-0x8D91 0xAF10
+0x8D93-0x8D9D 0xAF21
+0x8DA1-0x8DB1 0xAF2C
+0x8DB3-0x8DBD 0xAF3D
+0x8DC1-0x8DD1 0xAF48
+0x8DD3-0x8DDD 0xAF59
+0x8DE1-0x8DF1 0xAF64
+0x8DF3-0x8DFD 0xAF75
+0x8E41-0x8E51 0xAF80
+0x8E53-0x8E5D 0xAF91
+0x8E61-0x8E71 0xAF9C
+0x8E73-0x8E7D 0xAFAD
+0x8E81-0x8E91 0xAFB8
+0x8E93-0x8E9D 0xAFC9
+0x8EA1-0x8EB1 0xAFD4
+0x8EB3-0x8EBD 0xAFE5
+0x8EC1-0x8ED1 0xAFF0
+0x8ED3-0x8EDD 0xB001
+0x8EE1-0x8EF1 0xB00C
+0x8EF3-0x8EFD 0xB01D
+0x8F41-0x8F51 0xB028
+0x8F53-0x8F5D 0xB039
+0x8F61-0x8F71 0xB044
+0x8F73-0x8F7D 0xB055
+0x8F81-0x8F91 0xB060
+0x8F93-0x8F9D 0xB071
+0x8FA1-0x8FB1 0xB07C
+0x8FB3-0x8FBD 0xB08D
+0x9041 0x3134
+0x9061-0x9071 0xB098
+0x9073-0x907D 0xB0A9
+0x9081-0x9091 0xB0B4
+0x9093-0x909D 0xB0C5
+0x90A1-0x90B1 0xB0D0
+0x90B3-0x90BD 0xB0E1
+0x90C1-0x90D1 0xB0EC
+0x90D3-0x90DD 0xB0FD
+0x90E1-0x90F1 0xB108
+0x90F3-0x90FD 0xB119
+0x9141-0x9151 0xB124
+0x9153-0x915D 0xB135
+0x9161-0x9171 0xB140
+0x9173-0x917D 0xB151
+0x9181-0x9191 0xB15C
+0x9193-0x919D 0xB16D
+0x91A1-0x91B1 0xB178
+0x91B3-0x91BD 0xB189
+0x91C1-0x91D1 0xB194
+0x91D3-0x91DD 0xB1A5
+0x91E1-0x91F1 0xB1B0
+0x91F3-0x91FD 0xB1C1
+0x9241-0x9251 0xB1CC
+0x9253-0x925D 0xB1DD
+0x9261-0x9271 0xB1E8
+0x9273-0x927D 0xB1F9
+0x9281-0x9291 0xB204
+0x9293-0x929D 0xB215
+0x92A1-0x92B1 0xB220
+0x92B3-0x92BD 0xB231
+0x92C1-0x92D1 0xB23C
+0x92D3-0x92DD 0xB24D
+0x92E1-0x92F1 0xB258
+0x92F3-0x92FD 0xB269
+0x9341-0x9351 0xB274
+0x9353-0x935D 0xB285
+0x9361-0x9371 0xB290
+0x9373-0x937D 0xB2A1
+0x9381-0x9391 0xB2AC
+0x9393-0x939D 0xB2BD
+0x93A1-0x93B1 0xB2C8
+0x93B3-0x93BD 0xB2D9
+0x9441 0x3137
+0x9461-0x9471 0xB2E4
+0x9473-0x947D 0xB2F5
+0x9481-0x9491 0xB300
+0x9493-0x949D 0xB311
+0x94A1-0x94B1 0xB31C
+0x94B3-0x94BD 0xB32D
+0x94C1-0x94D1 0xB338
+0x94D3-0x94DD 0xB349
+0x94E1-0x94F1 0xB354
+0x94F3-0x94FD 0xB365
+0x9541-0x9551 0xB370
+0x9553-0x955D 0xB381
+0x9561-0x9571 0xB38C
+0x9573-0x957D 0xB39D
+0x9581-0x9591 0xB3A8
+0x9593-0x959D 0xB3B9
+0x95A1-0x95B1 0xB3C4
+0x95B3-0x95BD 0xB3D5
+0x95C1-0x95D1 0xB3E0
+0x95D3-0x95DD 0xB3F1
+0x95E1-0x95F1 0xB3FC
+0x95F3-0x95FD 0xB40D
+0x9641-0x9651 0xB418
+0x9653-0x965D 0xB429
+0x9661-0x9671 0xB434
+0x9673-0x967D 0xB445
+0x9681-0x9691 0xB450
+0x9693-0x969D 0xB461
+0x96A1-0x96B1 0xB46C
+0x96B3-0x96BD 0xB47D
+0x96C1-0x96D1 0xB488
+0x96D3-0x96DD 0xB499
+0x96E1-0x96F1 0xB4A4
+0x96F3-0x96FD 0xB4B5
+0x9741-0x9751 0xB4C0
+0x9753-0x975D 0xB4D1
+0x9761-0x9771 0xB4DC
+0x9773-0x977D 0xB4ED
+0x9781-0x9791 0xB4F8
+0x9793-0x979D 0xB509
+0x97A1-0x97B1 0xB514
+0x97B3-0x97BD 0xB525
+0x9841 0x3138
+0x9861-0x9871 0xB530
+0x9873-0x987D 0xB541
+0x9881-0x9891 0xB54C
+0x9893-0x989D 0xB55D
+0x98A1-0x98B1 0xB568
+0x98B3-0x98BD 0xB579
+0x98C1-0x98D1 0xB584
+0x98D3-0x98DD 0xB595
+0x98E1-0x98F1 0xB5A0
+0x98F3-0x98FD 0xB5B1
+0x9941-0x9951 0xB5BC
+0x9953-0x995D 0xB5CD
+0x9961-0x9971 0xB5D8
+0x9973-0x997D 0xB5E9
+0x9981-0x9991 0xB5F4
+0x9993-0x999D 0xB605
+0x99A1-0x99B1 0xB610
+0x99B3-0x99BD 0xB621
+0x99C1-0x99D1 0xB62C
+0x99D3-0x99DD 0xB63D
+0x99E1-0x99F1 0xB648
+0x99F3-0x99FD 0xB659
+0x9A41-0x9A51 0xB664
+0x9A53-0x9A5D 0xB675
+0x9A61-0x9A71 0xB680
+0x9A73-0x9A7D 0xB691
+0x9A81-0x9A91 0xB69C
+0x9A93-0x9A9D 0xB6AD
+0x9AA1-0x9AB1 0xB6B8
+0x9AB3-0x9ABD 0xB6C9
+0x9AC1-0x9AD1 0xB6D4
+0x9AD3-0x9ADD 0xB6E5
+0x9AE1-0x9AF1 0xB6F0
+0x9AF3-0x9AFD 0xB701
+0x9B41-0x9B51 0xB70C
+0x9B53-0x9B5D 0xB71D
+0x9B61-0x9B71 0xB728
+0x9B73-0x9B7D 0xB739
+0x9B81-0x9B91 0xB744
+0x9B93-0x9B9D 0xB755
+0x9BA1-0x9BB1 0xB760
+0x9BB3-0x9BBD 0xB771
+0x9C41 0x3139
+0x9C61-0x9C71 0xB77C
+0x9C73-0x9C7D 0xB78D
+0x9C81-0x9C91 0xB798
+0x9C93-0x9C9D 0xB7A9
+0x9CA1-0x9CB1 0xB7B4
+0x9CB3-0x9CBD 0xB7C5
+0x9CC1-0x9CD1 0xB7D0
+0x9CD3-0x9CDD 0xB7E1
+0x9CE1-0x9CF1 0xB7EC
+0x9CF3-0x9CFD 0xB7FD
+0x9D41-0x9D51 0xB808
+0x9D53-0x9D5D 0xB819
+0x9D61-0x9D71 0xB824
+0x9D73-0x9D7D 0xB835
+0x9D81-0x9D91 0xB840
+0x9D93-0x9D9D 0xB851
+0x9DA1-0x9DB1 0xB85C
+0x9DB3-0x9DBD 0xB86D
+0x9DC1-0x9DD1 0xB878
+0x9DD3-0x9DDD 0xB889
+0x9DE1-0x9DF1 0xB894
+0x9DF3-0x9DFD 0xB8A5
+0x9E41-0x9E51 0xB8B0
+0x9E53-0x9E5D 0xB8C1
+0x9E61-0x9E71 0xB8CC
+0x9E73-0x9E7D 0xB8DD
+0x9E81-0x9E91 0xB8E8
+0x9E93-0x9E9D 0xB8F9
+0x9EA1-0x9EB1 0xB904
+0x9EB3-0x9EBD 0xB915
+0x9EC1-0x9ED1 0xB920
+0x9ED3-0x9EDD 0xB931
+0x9EE1-0x9EF1 0xB93C
+0x9EF3-0x9EFD 0xB94D
+0x9F41-0x9F51 0xB958
+0x9F53-0x9F5D 0xB969
+0x9F61-0x9F71 0xB974
+0x9F73-0x9F7D 0xB985
+0x9F81-0x9F91 0xB990
+0x9F93-0x9F9D 0xB9A1
+0x9FA1-0x9FB1 0xB9AC
+0x9FB3-0x9FBD 0xB9BD
+0xA041 0x3141
+0xA061-0xA071 0xB9C8
+0xA073-0xA07D 0xB9D9
+0xA081-0xA091 0xB9E4
+0xA093-0xA09D 0xB9F5
+0xA0A1-0xA0B1 0xBA00
+0xA0B3-0xA0BD 0xBA11
+0xA0C1-0xA0D1 0xBA1C
+0xA0D3-0xA0DD 0xBA2D
+0xA0E1-0xA0F1 0xBA38
+0xA0F3-0xA0FD 0xBA49
+0xA141-0xA151 0xBA54
+0xA153-0xA15D 0xBA65
+0xA161-0xA171 0xBA70
+0xA173-0xA17D 0xBA81
+0xA181-0xA191 0xBA8C
+0xA193-0xA19D 0xBA9D
+0xA1A1-0xA1B1 0xBAA8
+0xA1B3-0xA1BD 0xBAB9
+0xA1C1-0xA1D1 0xBAC4
+0xA1D3-0xA1DD 0xBAD5
+0xA1E1-0xA1F1 0xBAE0
+0xA1F3-0xA1FD 0xBAF1
+0xA241-0xA251 0xBAFC
+0xA253-0xA25D 0xBB0D
+0xA261-0xA271 0xBB18
+0xA273-0xA27D 0xBB29
+0xA281-0xA291 0xBB34
+0xA293-0xA29D 0xBB45
+0xA2A1-0xA2B1 0xBB50
+0xA2B3-0xA2BD 0xBB61
+0xA2C1-0xA2D1 0xBB6C
+0xA2D3-0xA2DD 0xBB7D
+0xA2E1-0xA2F1 0xBB88
+0xA2F3-0xA2FD 0xBB99
+0xA341-0xA351 0xBBA4
+0xA353-0xA35D 0xBBB5
+0xA361-0xA371 0xBBC0
+0xA373-0xA37D 0xBBD1
+0xA381-0xA391 0xBBDC
+0xA393-0xA39D 0xBBED
+0xA3A1-0xA3B1 0xBBF8
+0xA3B3-0xA3BD 0xBC09
+0xA441 0x3142
+0xA461-0xA471 0xBC14
+0xA473-0xA47D 0xBC25
+0xA481-0xA491 0xBC30
+0xA493-0xA49D 0xBC41
+0xA4A1-0xA4B1 0xBC4C
+0xA4B3-0xA4BD 0xBC5D
+0xA4C1-0xA4D1 0xBC68
+0xA4D3-0xA4DD 0xBC79
+0xA4E1-0xA4F1 0xBC84
+0xA4F3-0xA4FD 0xBC95
+0xA541-0xA551 0xBCA0
+0xA553-0xA55D 0xBCB1
+0xA561-0xA571 0xBCBC
+0xA573-0xA57D 0xBCCD
+0xA581-0xA591 0xBCD8
+0xA593-0xA59D 0xBCE9
+0xA5A1-0xA5B1 0xBCF4
+0xA5B3-0xA5BD 0xBD05
+0xA5C1-0xA5D1 0xBD10
+0xA5D3-0xA5DD 0xBD21
+0xA5E1-0xA5F1 0xBD2C
+0xA5F3-0xA5FD 0xBD3D
+0xA641-0xA651 0xBD48
+0xA653-0xA65D 0xBD59
+0xA661-0xA671 0xBD64
+0xA673-0xA67D 0xBD75
+0xA681-0xA691 0xBD80
+0xA693-0xA69D 0xBD91
+0xA6A1-0xA6B1 0xBD9C
+0xA6B3-0xA6BD 0xBDAD
+0xA6C1-0xA6D1 0xBDB8
+0xA6D3-0xA6DD 0xBDC9
+0xA6E1-0xA6F1 0xBDD4
+0xA6F3-0xA6FD 0xBDE5
+0xA741-0xA751 0xBDF0
+0xA753-0xA75D 0xBE01
+0xA761-0xA771 0xBE0C
+0xA773-0xA77D 0xBE1D
+0xA781-0xA791 0xBE28
+0xA793-0xA79D 0xBE39
+0xA7A1-0xA7B1 0xBE44
+0xA7B3-0xA7BD 0xBE55
+0xA841 0x3143
+0xA861-0xA871 0xBE60
+0xA873-0xA87D 0xBE71
+0xA881-0xA891 0xBE7C
+0xA893-0xA89D 0xBE8D
+0xA8A1-0xA8B1 0xBE98
+0xA8B3-0xA8BD 0xBEA9
+0xA8C1-0xA8D1 0xBEB4
+0xA8D3-0xA8DD 0xBEC5
+0xA8E1-0xA8F1 0xBED0
+0xA8F3-0xA8FD 0xBEE1
+0xA941-0xA951 0xBEEC
+0xA953-0xA95D 0xBEFD
+0xA961-0xA971 0xBF08
+0xA973-0xA97D 0xBF19
+0xA981-0xA991 0xBF24
+0xA993-0xA99D 0xBF35
+0xA9A1-0xA9B1 0xBF40
+0xA9B3-0xA9BD 0xBF51
+0xA9C1-0xA9D1 0xBF5C
+0xA9D3-0xA9DD 0xBF6D
+0xA9E1-0xA9F1 0xBF78
+0xA9F3-0xA9FD 0xBF89
+0xAA41-0xAA51 0xBF94
+0xAA53-0xAA5D 0xBFA5
+0xAA61-0xAA71 0xBFB0
+0xAA73-0xAA7D 0xBFC1
+0xAA81-0xAA91 0xBFCC
+0xAA93-0xAA9D 0xBFDD
+0xAAA1-0xAAB1 0xBFE8
+0xAAB3-0xAABD 0xBFF9
+0xAAC1-0xAAD1 0xC004
+0xAAD3-0xAADD 0xC015
+0xAAE1-0xAAF1 0xC020
+0xAAF3-0xAAFD 0xC031
+0xAB41-0xAB51 0xC03C
+0xAB53-0xAB5D 0xC04D
+0xAB61-0xAB71 0xC058
+0xAB73-0xAB7D 0xC069
+0xAB81-0xAB91 0xC074
+0xAB93-0xAB9D 0xC085
+0xABA1-0xABB1 0xC090
+0xABB3-0xABBD 0xC0A1
+0xAC41 0x3145
+0xAC61-0xAC71 0xC0AC
+0xAC73-0xAC7D 0xC0BD
+0xAC81-0xAC91 0xC0C8
+0xAC93-0xAC9D 0xC0D9
+0xACA1-0xACB1 0xC0E4
+0xACB3-0xACBD 0xC0F5
+0xACC1-0xACD1 0xC100
+0xACD3-0xACDD 0xC111
+0xACE1-0xACF1 0xC11C
+0xACF3-0xACFD 0xC12D
+0xAD41-0xAD51 0xC138
+0xAD53-0xAD5D 0xC149
+0xAD61-0xAD71 0xC154
+0xAD73-0xAD7D 0xC165
+0xAD81-0xAD91 0xC170
+0xAD93-0xAD9D 0xC181
+0xADA1-0xADB1 0xC18C
+0xADB3-0xADBD 0xC19D
+0xADC1-0xADD1 0xC1A8
+0xADD3-0xADDD 0xC1B9
+0xADE1-0xADF1 0xC1C4
+0xADF3-0xADFD 0xC1D5
+0xAE41-0xAE51 0xC1E0
+0xAE53-0xAE5D 0xC1F1
+0xAE61-0xAE71 0xC1FC
+0xAE73-0xAE7D 0xC20D
+0xAE81-0xAE91 0xC218
+0xAE93-0xAE9D 0xC229
+0xAEA1-0xAEB1 0xC234
+0xAEB3-0xAEBD 0xC245
+0xAEC1-0xAED1 0xC250
+0xAED3-0xAEDD 0xC261
+0xAEE1-0xAEF1 0xC26C
+0xAEF3-0xAEFD 0xC27D
+0xAF41-0xAF51 0xC288
+0xAF53-0xAF5D 0xC299
+0xAF61-0xAF71 0xC2A4
+0xAF73-0xAF7D 0xC2B5
+0xAF81-0xAF91 0xC2C0
+0xAF93-0xAF9D 0xC2D1
+0xAFA1-0xAFB1 0xC2DC
+0xAFB3-0xAFBD 0xC2ED
+0xB041 0x3146
+0xB061-0xB071 0xC2F8
+0xB073-0xB07D 0xC309
+0xB081-0xB091 0xC314
+0xB093-0xB09D 0xC325
+0xB0A1-0xB0B1 0xC330
+0xB0B3-0xB0BD 0xC341
+0xB0C1-0xB0D1 0xC34C
+0xB0D3-0xB0DD 0xC35D
+0xB0E1-0xB0F1 0xC368
+0xB0F3-0xB0FD 0xC379
+0xB141-0xB151 0xC384
+0xB153-0xB15D 0xC395
+0xB161-0xB171 0xC3A0
+0xB173-0xB17D 0xC3B1
+0xB181-0xB191 0xC3BC
+0xB193-0xB19D 0xC3CD
+0xB1A1-0xB1B1 0xC3D8
+0xB1B3-0xB1BD 0xC3E9
+0xB1C1-0xB1D1 0xC3F4
+0xB1D3-0xB1DD 0xC405
+0xB1E1-0xB1F1 0xC410
+0xB1F3-0xB1FD 0xC421
+0xB241-0xB251 0xC42C
+0xB253-0xB25D 0xC43D
+0xB261-0xB271 0xC448
+0xB273-0xB27D 0xC459
+0xB281-0xB291 0xC464
+0xB293-0xB29D 0xC475
+0xB2A1-0xB2B1 0xC480
+0xB2B3-0xB2BD 0xC491
+0xB2C1-0xB2D1 0xC49C
+0xB2D3-0xB2DD 0xC4AD
+0xB2E1-0xB2F1 0xC4B8
+0xB2F3-0xB2FD 0xC4C9
+0xB341-0xB351 0xC4D4
+0xB353-0xB35D 0xC4E5
+0xB361-0xB371 0xC4F0
+0xB373-0xB37D 0xC501
+0xB381-0xB391 0xC50C
+0xB393-0xB39D 0xC51D
+0xB3A1-0xB3B1 0xC528
+0xB3B3-0xB3BD 0xC539
+0xB441 0x3147
+0xB461-0xB471 0xC544
+0xB473-0xB47D 0xC555
+0xB481-0xB491 0xC560
+0xB493-0xB49D 0xC571
+0xB4A1-0xB4B1 0xC57C
+0xB4B3-0xB4BD 0xC58D
+0xB4C1-0xB4D1 0xC598
+0xB4D3-0xB4DD 0xC5A9
+0xB4E1-0xB4F1 0xC5B4
+0xB4F3-0xB4FD 0xC5C5
+0xB541-0xB551 0xC5D0
+0xB553-0xB55D 0xC5E1
+0xB561-0xB571 0xC5EC
+0xB573-0xB57D 0xC5FD
+0xB581-0xB591 0xC608
+0xB593-0xB59D 0xC619
+0xB5A1-0xB5B1 0xC624
+0xB5B3-0xB5BD 0xC635
+0xB5C1-0xB5D1 0xC640
+0xB5D3-0xB5DD 0xC651
+0xB5E1-0xB5F1 0xC65C
+0xB5F3-0xB5FD 0xC66D
+0xB641-0xB651 0xC678
+0xB653-0xB65D 0xC689
+0xB661-0xB671 0xC694
+0xB673-0xB67D 0xC6A5
+0xB681-0xB691 0xC6B0
+0xB693-0xB69D 0xC6C1
+0xB6A1-0xB6B1 0xC6CC
+0xB6B3-0xB6BD 0xC6DD
+0xB6C1-0xB6D1 0xC6E8
+0xB6D3-0xB6DD 0xC6F9
+0xB6E1-0xB6F1 0xC704
+0xB6F3-0xB6FD 0xC715
+0xB741-0xB751 0xC720
+0xB753-0xB75D 0xC731
+0xB761-0xB771 0xC73C
+0xB773-0xB77D 0xC74D
+0xB781-0xB791 0xC758
+0xB793-0xB79D 0xC769
+0xB7A1-0xB7B1 0xC774
+0xB7B3-0xB7BD 0xC785
+0xB841 0x3148
+0xB861-0xB871 0xC790
+0xB873-0xB87D 0xC7A1
+0xB881-0xB891 0xC7AC
+0xB893-0xB89D 0xC7BD
+0xB8A1-0xB8B1 0xC7C8
+0xB8B3-0xB8BD 0xC7D9
+0xB8C1-0xB8D1 0xC7E4
+0xB8D3-0xB8DD 0xC7F5
+0xB8E1-0xB8F1 0xC800
+0xB8F3-0xB8FD 0xC811
+0xB941-0xB951 0xC81C
+0xB953-0xB95D 0xC82D
+0xB961-0xB971 0xC838
+0xB973-0xB97D 0xC849
+0xB981-0xB991 0xC854
+0xB993-0xB99D 0xC865
+0xB9A1-0xB9B1 0xC870
+0xB9B3-0xB9BD 0xC881
+0xB9C1-0xB9D1 0xC88C
+0xB9D3-0xB9DD 0xC89D
+0xB9E1-0xB9F1 0xC8A8
+0xB9F3-0xB9FD 0xC8B9
+0xBA41-0xBA51 0xC8C4
+0xBA53-0xBA5D 0xC8D5
+0xBA61-0xBA71 0xC8E0
+0xBA73-0xBA7D 0xC8F1
+0xBA81-0xBA91 0xC8FC
+0xBA93-0xBA9D 0xC90D
+0xBAA1-0xBAB1 0xC918
+0xBAB3-0xBABD 0xC929
+0xBAC1-0xBAD1 0xC934
+0xBAD3-0xBADD 0xC945
+0xBAE1-0xBAF1 0xC950
+0xBAF3-0xBAFD 0xC961
+0xBB41-0xBB51 0xC96C
+0xBB53-0xBB5D 0xC97D
+0xBB61-0xBB71 0xC988
+0xBB73-0xBB7D 0xC999
+0xBB81-0xBB91 0xC9A4
+0xBB93-0xBB9D 0xC9B5
+0xBBA1-0xBBB1 0xC9C0
+0xBBB3-0xBBBD 0xC9D1
+0xBC41 0x3149
+0xBC61-0xBC71 0xC9DC
+0xBC73-0xBC7D 0xC9ED
+0xBC81-0xBC91 0xC9F8
+0xBC93-0xBC9D 0xCA09
+0xBCA1-0xBCB1 0xCA14
+0xBCB3-0xBCBD 0xCA25
+0xBCC1-0xBCD1 0xCA30
+0xBCD3-0xBCDD 0xCA41
+0xBCE1-0xBCF1 0xCA4C
+0xBCF3-0xBCFD 0xCA5D
+0xBD41-0xBD51 0xCA68
+0xBD53-0xBD5D 0xCA79
+0xBD61-0xBD71 0xCA84
+0xBD73-0xBD7D 0xCA95
+0xBD81-0xBD91 0xCAA0
+0xBD93-0xBD9D 0xCAB1
+0xBDA1-0xBDB1 0xCABC
+0xBDB3-0xBDBD 0xCACD
+0xBDC1-0xBDD1 0xCAD8
+0xBDD3-0xBDDD 0xCAE9
+0xBDE1-0xBDF1 0xCAF4
+0xBDF3-0xBDFD 0xCB05
+0xBE41-0xBE51 0xCB10
+0xBE53-0xBE5D 0xCB21
+0xBE61-0xBE71 0xCB2C
+0xBE73-0xBE7D 0xCB3D
+0xBE81-0xBE91 0xCB48
+0xBE93-0xBE9D 0xCB59
+0xBEA1-0xBEB1 0xCB64
+0xBEB3-0xBEBD 0xCB75
+0xBEC1-0xBED1 0xCB80
+0xBED3-0xBEDD 0xCB91
+0xBEE1-0xBEF1 0xCB9C
+0xBEF3-0xBEFD 0xCBAD
+0xBF41-0xBF51 0xCBB8
+0xBF53-0xBF5D 0xCBC9
+0xBF61-0xBF71 0xCBD4
+0xBF73-0xBF7D 0xCBE5
+0xBF81-0xBF91 0xCBF0
+0xBF93-0xBF9D 0xCC01
+0xBFA1-0xBFB1 0xCC0C
+0xBFB3-0xBFBD 0xCC1D
+0xC041 0x314A
+0xC061-0xC071 0xCC28
+0xC073-0xC07D 0xCC39
+0xC081-0xC091 0xCC44
+0xC093-0xC09D 0xCC55
+0xC0A1-0xC0B1 0xCC60
+0xC0B3-0xC0BD 0xCC71
+0xC0C1-0xC0D1 0xCC7C
+0xC0D3-0xC0DD 0xCC8D
+0xC0E1-0xC0F1 0xCC98
+0xC0F3-0xC0FD 0xCCA9
+0xC141-0xC151 0xCCB4
+0xC153-0xC15D 0xCCC5
+0xC161-0xC171 0xCCD0
+0xC173-0xC17D 0xCCE1
+0xC181-0xC191 0xCCEC
+0xC193-0xC19D 0xCCFD
+0xC1A1-0xC1B1 0xCD08
+0xC1B3-0xC1BD 0xCD19
+0xC1C1-0xC1D1 0xCD24
+0xC1D3-0xC1DD 0xCD35
+0xC1E1-0xC1F1 0xCD40
+0xC1F3-0xC1FD 0xCD51
+0xC241-0xC251 0xCD5C
+0xC253-0xC25D 0xCD6D
+0xC261-0xC271 0xCD78
+0xC273-0xC27D 0xCD89
+0xC281-0xC291 0xCD94
+0xC293-0xC29D 0xCDA5
+0xC2A1-0xC2B1 0xCDB0
+0xC2B3-0xC2BD 0xCDC1
+0xC2C1-0xC2D1 0xCDCC
+0xC2D3-0xC2DD 0xCDDD
+0xC2E1-0xC2F1 0xCDE8
+0xC2F3-0xC2FD 0xCDF9
+0xC341-0xC351 0xCE04
+0xC353-0xC35D 0xCE15
+0xC361-0xC371 0xCE20
+0xC373-0xC37D 0xCE31
+0xC381-0xC391 0xCE3C
+0xC393-0xC39D 0xCE4D
+0xC3A1-0xC3B1 0xCE58
+0xC3B3-0xC3BD 0xCE69
+0xC441 0x314B
+0xC461-0xC471 0xCE74
+0xC473-0xC47D 0xCE85
+0xC481-0xC491 0xCE90
+0xC493-0xC49D 0xCEA1
+0xC4A1-0xC4B1 0xCEAC
+0xC4B3-0xC4BD 0xCEBD
+0xC4C1-0xC4D1 0xCEC8
+0xC4D3-0xC4DD 0xCED9
+0xC4E1-0xC4F1 0xCEE4
+0xC4F3-0xC4FD 0xCEF5
+0xC541-0xC551 0xCF00
+0xC553-0xC55D 0xCF11
+0xC561-0xC571 0xCF1C
+0xC573-0xC57D 0xCF2D
+0xC581-0xC591 0xCF38
+0xC593-0xC59D 0xCF49
+0xC5A1-0xC5B1 0xCF54
+0xC5B3-0xC5BD 0xCF65
+0xC5C1-0xC5D1 0xCF70
+0xC5D3-0xC5DD 0xCF81
+0xC5E1-0xC5F1 0xCF8C
+0xC5F3-0xC5FD 0xCF9D
+0xC641-0xC651 0xCFA8
+0xC653-0xC65D 0xCFB9
+0xC661-0xC671 0xCFC4
+0xC673-0xC67D 0xCFD5
+0xC681-0xC691 0xCFE0
+0xC693-0xC69D 0xCFF1
+0xC6A1-0xC6B1 0xCFFC
+0xC6B3-0xC6BD 0xD00D
+0xC6C1-0xC6D1 0xD018
+0xC6D3-0xC6DD 0xD029
+0xC6E1-0xC6F1 0xD034
+0xC6F3-0xC6FD 0xD045
+0xC741-0xC751 0xD050
+0xC753-0xC75D 0xD061
+0xC761-0xC771 0xD06C
+0xC773-0xC77D 0xD07D
+0xC781-0xC791 0xD088
+0xC793-0xC79D 0xD099
+0xC7A1-0xC7B1 0xD0A4
+0xC7B3-0xC7BD 0xD0B5
+0xC841 0x314C
+0xC861-0xC871 0xD0C0
+0xC873-0xC87D 0xD0D1
+0xC881-0xC891 0xD0DC
+0xC893-0xC89D 0xD0ED
+0xC8A1-0xC8B1 0xD0F8
+0xC8B3-0xC8BD 0xD109
+0xC8C1-0xC8D1 0xD114
+0xC8D3-0xC8DD 0xD125
+0xC8E1-0xC8F1 0xD130
+0xC8F3-0xC8FD 0xD141
+0xC941-0xC951 0xD14C
+0xC953-0xC95D 0xD15D
+0xC961-0xC971 0xD168
+0xC973-0xC97D 0xD179
+0xC981-0xC991 0xD184
+0xC993-0xC99D 0xD195
+0xC9A1-0xC9B1 0xD1A0
+0xC9B3-0xC9BD 0xD1B1
+0xC9C1-0xC9D1 0xD1BC
+0xC9D3-0xC9DD 0xD1CD
+0xC9E1-0xC9F1 0xD1D8
+0xC9F3-0xC9FD 0xD1E9
+0xCA41-0xCA51 0xD1F4
+0xCA53-0xCA5D 0xD205
+0xCA61-0xCA71 0xD210
+0xCA73-0xCA7D 0xD221
+0xCA81-0xCA91 0xD22C
+0xCA93-0xCA9D 0xD23D
+0xCAA1-0xCAB1 0xD248
+0xCAB3-0xCABD 0xD259
+0xCAC1-0xCAD1 0xD264
+0xCAD3-0xCADD 0xD275
+0xCAE1-0xCAF1 0xD280
+0xCAF3-0xCAFD 0xD291
+0xCB41-0xCB51 0xD29C
+0xCB53-0xCB5D 0xD2AD
+0xCB61-0xCB71 0xD2B8
+0xCB73-0xCB7D 0xD2C9
+0xCB81-0xCB91 0xD2D4
+0xCB93-0xCB9D 0xD2E5
+0xCBA1-0xCBB1 0xD2F0
+0xCBB3-0xCBBD 0xD301
+0xCC41 0x314D
+0xCC61-0xCC71 0xD30C
+0xCC73-0xCC7D 0xD31D
+0xCC81-0xCC91 0xD328
+0xCC93-0xCC9D 0xD339
+0xCCA1-0xCCB1 0xD344
+0xCCB3-0xCCBD 0xD355
+0xCCC1-0xCCD1 0xD360
+0xCCD3-0xCCDD 0xD371
+0xCCE1-0xCCF1 0xD37C
+0xCCF3-0xCCFD 0xD38D
+0xCD41-0xCD51 0xD398
+0xCD53-0xCD5D 0xD3A9
+0xCD61-0xCD71 0xD3B4
+0xCD73-0xCD7D 0xD3C5
+0xCD81-0xCD91 0xD3D0
+0xCD93-0xCD9D 0xD3E1
+0xCDA1-0xCDB1 0xD3EC
+0xCDB3-0xCDBD 0xD3FD
+0xCDC1-0xCDD1 0xD408
+0xCDD3-0xCDDD 0xD419
+0xCDE1-0xCDF1 0xD424
+0xCDF3-0xCDFD 0xD435
+0xCE41-0xCE51 0xD440
+0xCE53-0xCE5D 0xD451
+0xCE61-0xCE71 0xD45C
+0xCE73-0xCE7D 0xD46D
+0xCE81-0xCE91 0xD478
+0xCE93-0xCE9D 0xD489
+0xCEA1-0xCEB1 0xD494
+0xCEB3-0xCEBD 0xD4A5
+0xCEC1-0xCED1 0xD4B0
+0xCED3-0xCEDD 0xD4C1
+0xCEE1-0xCEF1 0xD4CC
+0xCEF3-0xCEFD 0xD4DD
+0xCF41-0xCF51 0xD4E8
+0xCF53-0xCF5D 0xD4F9
+0xCF61-0xCF71 0xD504
+0xCF73-0xCF7D 0xD515
+0xCF81-0xCF91 0xD520
+0xCF93-0xCF9D 0xD531
+0xCFA1-0xCFB1 0xD53C
+0xCFB3-0xCFBD 0xD54D
+0xD041 0x314E
+0xD061-0xD071 0xD558
+0xD073-0xD07D 0xD569
+0xD081-0xD091 0xD574
+0xD093-0xD09D 0xD585
+0xD0A1-0xD0B1 0xD590
+0xD0B3-0xD0BD 0xD5A1
+0xD0C1-0xD0D1 0xD5AC
+0xD0D3-0xD0DD 0xD5BD
+0xD0E1-0xD0F1 0xD5C8
+0xD0F3-0xD0FD 0xD5D9
+0xD141-0xD151 0xD5E4
+0xD153-0xD15D 0xD5F5
+0xD161-0xD171 0xD600
+0xD173-0xD17D 0xD611
+0xD181-0xD191 0xD61C
+0xD193-0xD19D 0xD62D
+0xD1A1-0xD1B1 0xD638
+0xD1B3-0xD1BD 0xD649
+0xD1C1-0xD1D1 0xD654
+0xD1D3-0xD1DD 0xD665
+0xD1E1-0xD1F1 0xD670
+0xD1F3-0xD1FD 0xD681
+0xD241-0xD251 0xD68C
+0xD253-0xD25D 0xD69D
+0xD261-0xD271 0xD6A8
+0xD273-0xD27D 0xD6B9
+0xD281-0xD291 0xD6C4
+0xD293-0xD29D 0xD6D5
+0xD2A1-0xD2B1 0xD6E0
+0xD2B3-0xD2BD 0xD6F1
+0xD2C1-0xD2D1 0xD6FC
+0xD2D3-0xD2DD 0xD70D
+0xD2E1-0xD2F1 0xD718
+0xD2F3-0xD2FD 0xD729
+0xD341-0xD351 0xD734
+0xD353-0xD35D 0xD745
+0xD361-0xD371 0xD750
+0xD373-0xD37D 0xD761
+0xD381-0xD391 0xD76C
+0xD393-0xD39D 0xD77D
+0xD3A1-0xD3B1 0xD788
+0xD3B3-0xD3BD 0xD799
+0xD931-0xD933 0x3000
+0xD934 0x00B7
+0xD935-0xD936 0x2025
+0xD937 0x00A8
+0xD938 0x3003
+0xD939 0x00AD
+0xD93A 0x2015
+0xD93B 0x2225
+0xD93C 0xFF3C
+0xD93D 0x223C
+0xD93E-0xD93F 0x2018
+0xD940-0xD941 0x201C
+0xD942-0xD943 0x3014
+0xD944-0xD94D 0x3008
+0xD94E 0x00B1
+0xD94F 0x00D7
+0xD950 0x00F7
+0xD951 0x2260
+0xD952-0xD953 0x2264
+0xD954 0x221E
+0xD955 0x2234
+0xD956 0x00B0
+0xD957-0xD958 0x2032
+0xD959 0x2103
+0xD95A 0x212B
+0xD95B-0xD95C 0xFFE0
+0xD95D 0xFFE5
+0xD95E 0x2642
+0xD95F 0x2640
+0xD960 0x2220
+0xD961 0x22A5
+0xD962 0x2312
+0xD963 0x2202
+0xD964 0x2207
+0xD965 0x2261
+0xD966 0x2252
+0xD967 0x00A7
+0xD968 0x203B
+0xD969 0x2606
+0xD96A 0x2605
+0xD96B 0x25CB
+0xD96C 0x25CF
+0xD96D 0x25CE
+0xD96E 0x25C7
+0xD96F 0x25C6
+0xD970 0x25A1
+0xD971 0x25A0
+0xD972 0x25B3
+0xD973 0x25B2
+0xD974 0x25BD
+0xD975 0x25BC
+0xD976 0x2192
+0xD977-0xD978 0x2190
+0xD979-0xD97A 0x2193
+0xD97B 0x3013
+0xD97C-0xD97D 0x226A
+0xD97E 0x221A
+0xD991 0x223D
+0xD992 0x221D
+0xD993 0x2235
+0xD994-0xD995 0x222B
+0xD996 0x2208
+0xD997 0x220B
+0xD998-0xD999 0x2286
+0xD99A-0xD99B 0x2282
+0xD99C 0x222A
+0xD99D 0x2229
+0xD99E-0xD99F 0x2227
+0xD9A0 0xFFE2
+0xD9A1 0x21D2
+0xD9A2 0x21D4
+0xD9A3 0x2200
+0xD9A4 0x2203
+0xD9A5 0x00B4
+0xD9A6 0xFF5E
+0xD9A7 0x02C7
+0xD9A8 0x02D8
+0xD9A9 0x02DD
+0xD9AA 0x02DA
+0xD9AB 0x02D9
+0xD9AC 0x00B8
+0xD9AD 0x02DB
+0xD9AE 0x00A1
+0xD9AF 0x00BF
+0xD9B0 0x02D0
+0xD9B1 0x222E
+0xD9B2 0x2211
+0xD9B3 0x220F
+0xD9B4 0x00A4
+0xD9B5 0x2109
+0xD9B6 0x2030
+0xD9B7 0x25C1
+0xD9B8 0x25C0
+0xD9B9 0x25B7
+0xD9BA 0x25B6
+0xD9BB 0x2664
+0xD9BC-0xD9BD 0x2660
+0xD9BE 0x2665
+0xD9BF 0x2667
+0xD9C0 0x2663
+0xD9C1 0x2299
+0xD9C2 0x25C8
+0xD9C3 0x25A3
+0xD9C4-0xD9C5 0x25D0
+0xD9C6 0x2592
+0xD9C7-0xD9C8 0x25A4
+0xD9C9 0x25A8
+0xD9CA 0x25A7
+0xD9CB 0x25A6
+0xD9CC 0x25A9
+0xD9CD 0x2668
+0xD9CE 0x260F
+0xD9CF 0x260E
+0xD9D0 0x261C
+0xD9D1 0x261E
+0xD9D2 0x00B6
+0xD9D3-0xD9D4 0x2020
+0xD9D5 0x2195
+0xD9D6 0x2197
+0xD9D7 0x2199
+0xD9D8 0x2196
+0xD9D9 0x2198
+0xD9DA 0x266D
+0xD9DB-0xD9DC 0x2669
+0xD9DD 0x266C
+0xD9DE 0x327F
+0xD9DF 0x321C
+0xD9E0 0x2116
+0xD9E1 0x33C7
+0xD9E2 0x2122
+0xD9E3 0x33C2
+0xD9E4 0x33D8
+0xD9E5 0x2121
+0xDA31-0xDA6B 0xFF01
+0xDA6C 0xFFE6
+0xDA6D-0xDA7E 0xFF3D
+0xDA91-0xDA9F 0xFF4F
+0xDAA0 0xFFE3
+0xDAD4-0xDAFE 0x3164
+0xDB31-0xDB3A 0x2170
+0xDB40-0xDB49 0x2160
+0xDB51-0xDB61 0x0391
+0xDB62-0xDB68 0x03A3
+0xDB71-0xDB7E 0x03B1
+0xDB91-0xDB93 0x03BF
+0xDB94-0xDB9A 0x03C3
+0xDBA1 0x2500
+0xDBA2 0x2502
+0xDBA3 0x250C
+0xDBA4 0x2510
+0xDBA5 0x2518
+0xDBA6 0x2514
+0xDBA7 0x251C
+0xDBA8 0x252C
+0xDBA9 0x2524
+0xDBAA 0x2534
+0xDBAB 0x253C
+0xDBAC 0x2501
+0xDBAD 0x2503
+0xDBAE 0x250F
+0xDBAF 0x2513
+0xDBB0 0x251B
+0xDBB1 0x2517
+0xDBB2 0x2523
+0xDBB3 0x2533
+0xDBB4 0x252B
+0xDBB5 0x253B
+0xDBB6 0x254B
+0xDBB7 0x2520
+0xDBB8 0x252F
+0xDBB9 0x2528
+0xDBBA 0x2537
+0xDBBB 0x253F
+0xDBBC 0x251D
+0xDBBD 0x2530
+0xDBBE 0x2525
+0xDBBF 0x2538
+0xDBC0 0x2542
+0xDBC1 0x2512
+0xDBC2 0x2511
+0xDBC3 0x251A
+0xDBC4 0x2519
+0xDBC5 0x2516
+0xDBC6 0x2515
+0xDBC7 0x250E
+0xDBC8 0x250D
+0xDBC9-0xDBCA 0x251E
+0xDBCB-0xDBCC 0x2521
+0xDBCD-0xDBCE 0x2526
+0xDBCF-0xDBD0 0x2529
+0xDBD1-0xDBD2 0x252D
+0xDBD3-0xDBD4 0x2531
+0xDBD5-0xDBD6 0x2535
+0xDBD7-0xDBD8 0x2539
+0xDBD9-0xDBDA 0x253D
+0xDBDB-0xDBDC 0x2540
+0xDBDD-0xDBE4 0x2543
+0xDC31-0xDC33 0x3395
+0xDC34 0x2113
+0xDC35 0x3398
+0xDC36 0x33C4
+0xDC37-0xDC3A 0x33A3
+0xDC3B-0xDC44 0x3399
+0xDC45 0x33CA
+0xDC46-0xDC48 0x338D
+0xDC49 0x33CF
+0xDC4A-0xDC4B 0x3388
+0xDC4C 0x33C8
+0xDC4D-0xDC4E 0x33A7
+0xDC4F-0xDC58 0x33B0
+0xDC59-0xDC5D 0x3380
+0xDC5E-0xDC63 0x33BA
+0xDC64-0xDC68 0x3390
+0xDC69 0x2126
+0xDC6A-0xDC6B 0x33C0
+0xDC6C-0xDC6E 0x338A
+0xDC6F 0x33D6
+0xDC70 0x33C5
+0xDC71-0xDC73 0x33AD
+0xDC74 0x33DB
+0xDC75-0xDC78 0x33A9
+0xDC79 0x33DD
+0xDC7A 0x33D0
+0xDC7B 0x33D3
+0xDC7C 0x33C3
+0xDC7D 0x33C9
+0xDC7E 0x33DC
+0xDC91 0x33C6
+0xDCA1 0x00C6
+0xDCA2 0x00D0
+0xDCA3 0x00AA
+0xDCA4 0x0126
+0xDCA6 0x0132
+0xDCA8 0x013F
+0xDCA9 0x0141
+0xDCAA 0x00D8
+0xDCAB 0x0152
+0xDCAC 0x00BA
+0xDCAD 0x00DE
+0xDCAE 0x0166
+0xDCAF 0x014A
+0xDCB1-0xDCCC 0x3260
+0xDCCD-0xDCE6 0x24D0
+0xDCE7-0xDCF5 0x2460
+0xDCF6 0x00BD
+0xDCF7-0xDCF8 0x2153
+0xDCF9 0x00BC
+0xDCFA 0x00BE
+0xDCFB-0xDCFE 0x215B
+0xDD31 0x00E6
+0xDD32 0x0111
+0xDD33 0x00F0
+0xDD34 0x0127
+0xDD35 0x0131
+0xDD36 0x0133
+0xDD37 0x0138
+0xDD38 0x0140
+0xDD39 0x0142
+0xDD3A 0x00F8
+0xDD3B 0x0153
+0xDD3C 0x00DF
+0xDD3D 0x00FE
+0xDD3E 0x0167
+0xDD3F 0x014B
+0xDD40 0x0149
+0xDD41-0xDD5C 0x3200
+0xDD5D-0xDD76 0x249C
+0xDD77-0xDD7E 0x2474
+0xDD91-0xDD97 0x247C
+0xDD98 0x00B9
+0xDD99-0xDD9A 0x00B2
+0xDD9B 0x2074
+0xDD9C 0x207F
+0xDD9D-0xDDA0 0x2081
+0xDDA1-0xDDF3 0x3041
+0xDE31-0xDE7E 0x30A1
+0xDE91-0xDE98 0x30EF
+0xDEA1-0xDEA6 0x0410
+0xDEA7 0x0401
+0xDEA8-0xDEC1 0x0416
+0xDED1-0xDED6 0x0430
+0xDED7 0x0451
+0xDED8-0xDEF1 0x0436
+0xE031 0x4F3D
+0xE032 0x4F73
+0xE033 0x5047
+0xE034 0x50F9
+0xE035 0x52A0
+0xE036 0x53EF
+0xE037 0x5475
+0xE038 0x54E5
+0xE039 0x5609
+0xE03A 0x5AC1
+0xE03B 0x5BB6
+0xE03C 0x6687
+0xE03D-0xE03E 0x67B6
+0xE03F 0x67EF
+0xE040 0x6B4C
+0xE041 0x73C2
+0xE042 0x75C2
+0xE043 0x7A3C
+0xE044 0x82DB
+0xE045 0x8304
+0xE046 0x8857
+0xE047 0x8888
+0xE048 0x8A36
+0xE049 0x8CC8
+0xE04A 0x8DCF
+0xE04B 0x8EFB
+0xE04C 0x8FE6
+0xE04D 0x99D5
+0xE04E 0x523B
+0xE04F 0x5374
+0xE050 0x5404
+0xE051 0x606A
+0xE052 0x6164
+0xE053 0x6BBC
+0xE054 0x73CF
+0xE055 0x811A
+0xE056 0x89BA
+0xE057 0x89D2
+0xE058 0x95A3
+0xE059 0x4F83
+0xE05A 0x520A
+0xE05B 0x58BE
+0xE05C 0x5978
+0xE05D 0x59E6
+0xE05E 0x5E72
+0xE05F 0x5E79
+0xE060 0x61C7
+0xE061 0x63C0
+0xE062 0x6746
+0xE063 0x67EC
+0xE064 0x687F
+0xE065 0x6F97
+0xE066 0x764E
+0xE067 0x770B
+0xE068 0x78F5
+0xE069 0x7A08
+0xE06A 0x7AFF
+0xE06B 0x7C21
+0xE06C 0x809D
+0xE06D 0x826E
+0xE06E 0x8271
+0xE06F 0x8AEB
+0xE070 0x9593
+0xE071 0x4E6B
+0xE072 0x559D
+0xE073 0x66F7
+0xE074 0x6E34
+0xE075 0x78A3
+0xE076 0x7AED
+0xE077 0x845B
+0xE078 0x8910
+0xE079 0x874E
+0xE07A 0x97A8
+0xE07B 0x52D8
+0xE07C 0x574E
+0xE07D 0x582A
+0xE07E 0x5D4C
+0xE091 0x611F
+0xE092 0x61BE
+0xE093 0x6221
+0xE094 0x6562
+0xE095 0x67D1
+0xE096 0x6A44
+0xE097 0x6E1B
+0xE098 0x7518
+0xE099 0x75B3
+0xE09A 0x76E3
+0xE09B 0x77B0
+0xE09C 0x7D3A
+0xE09D 0x90AF
+0xE09E-0xE09F 0x9451
+0xE0A0 0x9F95
+0xE0A1 0x5323
+0xE0A2 0x5CAC
+0xE0A3 0x7532
+0xE0A4 0x80DB
+0xE0A5 0x9240
+0xE0A6 0x9598
+0xE0A7 0x525B
+0xE0A8 0x5808
+0xE0A9 0x59DC
+0xE0AA 0x5CA1
+0xE0AB 0x5D17
+0xE0AC 0x5EB7
+0xE0AD 0x5F3A
+0xE0AE 0x5F4A
+0xE0AF 0x6177
+0xE0B0 0x6C5F
+0xE0B1 0x757A
+0xE0B2 0x7586
+0xE0B3 0x7CE0
+0xE0B4 0x7D73
+0xE0B5 0x7DB1
+0xE0B6 0x7F8C
+0xE0B7 0x8154
+0xE0B8 0x8221
+0xE0B9 0x8591
+0xE0BA 0x8941
+0xE0BB 0x8B1B
+0xE0BC 0x92FC
+0xE0BD 0x964D
+0xE0BE 0x9C47
+0xE0BF 0x4ECB
+0xE0C0 0x4EF7
+0xE0C1 0x500B
+0xE0C2 0x51F1
+0xE0C3 0x584F
+0xE0C4 0x6137
+0xE0C5 0x613E
+0xE0C6 0x6168
+0xE0C7 0x6539
+0xE0C8 0x69EA
+0xE0C9 0x6F11
+0xE0CA 0x75A5
+0xE0CB 0x7686
+0xE0CC 0x76D6
+0xE0CD 0x7B87
+0xE0CE 0x82A5
+0xE0CF 0x84CB
+0xE0D0 0xF900
+0xE0D1 0x93A7
+0xE0D2 0x958B
+0xE0D3 0x5580
+0xE0D4 0x5BA2
+0xE0D5 0x5751
+0xE0D6 0xF901
+0xE0D7 0x7CB3
+0xE0D8 0x7FB9
+0xE0D9 0x91B5
+0xE0DA 0x5028
+0xE0DB 0x53BB
+0xE0DC 0x5C45
+0xE0DD 0x5DE8
+0xE0DE 0x62D2
+0xE0DF 0x636E
+0xE0E0 0x64DA
+0xE0E1 0x64E7
+0xE0E2 0x6E20
+0xE0E3 0x70AC
+0xE0E4 0x795B
+0xE0E5 0x8DDD
+0xE0E6 0x8E1E
+0xE0E7 0xF902
+0xE0E8 0x907D
+0xE0E9 0x9245
+0xE0EA 0x92F8
+0xE0EB 0x4E7E
+0xE0EC 0x4EF6
+0xE0ED 0x5065
+0xE0EE 0x5DFE
+0xE0EF 0x5EFA
+0xE0F0 0x6106
+0xE0F1 0x6957
+0xE0F2 0x8171
+0xE0F3 0x8654
+0xE0F4 0x8E47
+0xE0F5 0x9375
+0xE0F6 0x9A2B
+0xE0F7 0x4E5E
+0xE0F8 0x5091
+0xE0F9 0x6770
+0xE0FA 0x6840
+0xE0FB 0x5109
+0xE0FC 0x528D
+0xE0FD 0x5292
+0xE0FE 0x6AA2
+0xE131 0x77BC
+0xE132 0x9210
+0xE133 0x9ED4
+0xE134 0x52AB
+0xE135 0x602F
+0xE136 0x8FF2
+0xE137 0x5048
+0xE138 0x61A9
+0xE139 0x63ED
+0xE13A 0x64CA
+0xE13B 0x683C
+0xE13C 0x6A84
+0xE13D 0x6FC0
+0xE13E 0x8188
+0xE13F 0x89A1
+0xE140 0x9694
+0xE141 0x5805
+0xE142 0x727D
+0xE143 0x72AC
+0xE144 0x7504
+0xE145 0x7D79
+0xE146 0x7E6D
+0xE147 0x80A9
+0xE148 0x898B
+0xE149 0x8B74
+0xE14A 0x9063
+0xE14B 0x9D51
+0xE14C 0x6289
+0xE14D 0x6C7A
+0xE14E 0x6F54
+0xE14F 0x7D50
+0xE150 0x7F3A
+0xE151 0x8A23
+0xE152 0x517C
+0xE153 0x614A
+0xE154 0x7B9D
+0xE155 0x8B19
+0xE156 0x9257
+0xE157 0x938C
+0xE158 0x4EAC
+0xE159 0x4FD3
+0xE15A 0x501E
+0xE15B 0x50BE
+0xE15C 0x5106
+0xE15D 0x52C1
+0xE15E 0x52CD
+0xE15F 0x537F
+0xE160 0x5770
+0xE161 0x5883
+0xE162 0x5E9A
+0xE163 0x5F91
+0xE164 0x6176
+0xE165 0x61AC
+0xE166 0x64CE
+0xE167 0x656C
+0xE168 0x666F
+0xE169 0x66BB
+0xE16A 0x66F4
+0xE16B 0x6897
+0xE16C 0x6D87
+0xE16D 0x7085
+0xE16E 0x70F1
+0xE16F 0x749F
+0xE170 0x74A5
+0xE171 0x74CA
+0xE172 0x75D9
+0xE173 0x786C
+0xE174 0x78EC
+0xE175 0x7ADF
+0xE176 0x7AF6
+0xE177 0x7D45
+0xE178 0x7D93
+0xE179 0x8015
+0xE17A 0x803F
+0xE17B 0x811B
+0xE17C 0x8396
+0xE17D 0x8B66
+0xE17E 0x8F15
+0xE191 0x9015
+0xE192 0x93E1
+0xE193 0x9803
+0xE194 0x9838
+0xE195 0x9A5A
+0xE196 0x9BE8
+0xE197 0x4FC2
+0xE198 0x5553
+0xE199 0x583A
+0xE19A 0x5951
+0xE19B 0x5B63
+0xE19C 0x5C46
+0xE19D 0x60B8
+0xE19E 0x6212
+0xE19F 0x6842
+0xE1A0 0x68B0
+0xE1A1 0x68E8
+0xE1A2 0x6EAA
+0xE1A3 0x754C
+0xE1A4 0x7678
+0xE1A5 0x78CE
+0xE1A6 0x7A3D
+0xE1A7 0x7CFB
+0xE1A8 0x7E6B
+0xE1A9 0x7E7C
+0xE1AA 0x8A08
+0xE1AB 0x8AA1
+0xE1AC 0x8C3F
+0xE1AD 0x968E
+0xE1AE 0x9DC4
+0xE1AF 0x53E4
+0xE1B0 0x53E9
+0xE1B1 0x544A
+0xE1B2 0x5471
+0xE1B3 0x56FA
+0xE1B4 0x59D1
+0xE1B5 0x5B64
+0xE1B6 0x5C3B
+0xE1B7 0x5EAB
+0xE1B8 0x62F7
+0xE1B9 0x6537
+0xE1BA 0x6545
+0xE1BB 0x6572
+0xE1BC 0x66A0
+0xE1BD 0x67AF
+0xE1BE 0x69C1
+0xE1BF 0x6CBD
+0xE1C0 0x75FC
+0xE1C1 0x7690
+0xE1C2 0x777E
+0xE1C3 0x7A3F
+0xE1C4 0x7F94
+0xE1C5 0x8003
+0xE1C6 0x80A1
+0xE1C7 0x818F
+0xE1C8 0x82E6
+0xE1C9 0x82FD
+0xE1CA 0x83F0
+0xE1CB 0x85C1
+0xE1CC 0x8831
+0xE1CD 0x88B4
+0xE1CE 0x8AA5
+0xE1CF 0xF903
+0xE1D0 0x8F9C
+0xE1D1 0x932E
+0xE1D2 0x96C7
+0xE1D3 0x9867
+0xE1D4 0x9AD8
+0xE1D5 0x9F13
+0xE1D6 0x54ED
+0xE1D7 0x659B
+0xE1D8 0x66F2
+0xE1D9 0x688F
+0xE1DA 0x7A40
+0xE1DB 0x8C37
+0xE1DC 0x9D60
+0xE1DD 0x56F0
+0xE1DE 0x5764
+0xE1DF 0x5D11
+0xE1E0 0x6606
+0xE1E1 0x68B1
+0xE1E2 0x68CD
+0xE1E3 0x6EFE
+0xE1E4 0x7428
+0xE1E5 0x889E
+0xE1E6 0x9BE4
+0xE1E7 0x6C68
+0xE1E8 0xF904
+0xE1E9 0x9AA8
+0xE1EA 0x4F9B
+0xE1EB 0x516C
+0xE1EC 0x5171
+0xE1ED 0x529F
+0xE1EE 0x5B54
+0xE1EF 0x5DE5
+0xE1F0 0x6050
+0xE1F1 0x606D
+0xE1F2 0x62F1
+0xE1F3 0x63A7
+0xE1F4 0x653B
+0xE1F5 0x73D9
+0xE1F6 0x7A7A
+0xE1F7 0x86A3
+0xE1F8 0x8CA2
+0xE1F9 0x978F
+0xE1FA 0x4E32
+0xE1FB 0x5BE1
+0xE1FC 0x6208
+0xE1FD 0x679C
+0xE1FE 0x74DC
+0xE231 0x79D1
+0xE232 0x83D3
+0xE233 0x8A87
+0xE234 0x8AB2
+0xE235 0x8DE8
+0xE236 0x904E
+0xE237 0x934B
+0xE238 0x9846
+0xE239 0x5ED3
+0xE23A 0x69E8
+0xE23B 0x85FF
+0xE23C 0x90ED
+0xE23D 0xF905
+0xE23E 0x51A0
+0xE23F 0x5B98
+0xE240 0x5BEC
+0xE241 0x6163
+0xE242 0x68FA
+0xE243 0x6B3E
+0xE244 0x704C
+0xE245 0x742F
+0xE246 0x74D8
+0xE247 0x7BA1
+0xE248 0x7F50
+0xE249 0x83C5
+0xE24A 0x89C0
+0xE24B 0x8CAB
+0xE24C 0x95DC
+0xE24D 0x9928
+0xE24E 0x522E
+0xE24F 0x605D
+0xE250 0x62EC
+0xE251 0x9002
+0xE252 0x4F8A
+0xE253 0x5149
+0xE254 0x5321
+0xE255 0x58D9
+0xE256 0x5EE3
+0xE257 0x66E0
+0xE258 0x6D38
+0xE259 0x709A
+0xE25A 0x72C2
+0xE25B 0x73D6
+0xE25C 0x7B50
+0xE25D 0x80F1
+0xE25E 0x945B
+0xE25F 0x5366
+0xE260 0x639B
+0xE261 0x7F6B
+0xE262 0x4E56
+0xE263 0x5080
+0xE264 0x584A
+0xE265 0x58DE
+0xE266 0x602A
+0xE267 0x6127
+0xE268 0x62D0
+0xE269 0x69D0
+0xE26A 0x9B41
+0xE26B 0x5B8F
+0xE26C 0x7D18
+0xE26D 0x80B1
+0xE26E 0x8F5F
+0xE26F 0x4EA4
+0xE270 0x50D1
+0xE271 0x54AC
+0xE272 0x55AC
+0xE273 0x5B0C
+0xE274 0x5DA0
+0xE275 0x5DE7
+0xE276 0x652A
+0xE277 0x654E
+0xE278 0x6821
+0xE279 0x6A4B
+0xE27A 0x72E1
+0xE27B 0x768E
+0xE27C 0x77EF
+0xE27D 0x7D5E
+0xE27E 0x7FF9
+0xE291 0x81A0
+0xE292 0x854E
+0xE293 0x86DF
+0xE294 0x8F03
+0xE295 0x8F4E
+0xE296 0x90CA
+0xE297 0x9903
+0xE298 0x9A55
+0xE299 0x9BAB
+0xE29A 0x4E18
+0xE29B 0x4E45
+0xE29C 0x4E5D
+0xE29D 0x4EC7
+0xE29E 0x4FF1
+0xE29F 0x5177
+0xE2A0 0x52FE
+0xE2A1 0x5340
+0xE2A2 0x53E3
+0xE2A3 0x53E5
+0xE2A4 0x548E
+0xE2A5 0x5614
+0xE2A6 0x5775
+0xE2A7 0x57A2
+0xE2A8 0x5BC7
+0xE2A9 0x5D87
+0xE2AA 0x5ED0
+0xE2AB 0x61FC
+0xE2AC 0x62D8
+0xE2AD 0x6551
+0xE2AE 0x67B8
+0xE2AF 0x67E9
+0xE2B0 0x69CB
+0xE2B1 0x6B50
+0xE2B2 0x6BC6
+0xE2B3 0x6BEC
+0xE2B4 0x6C42
+0xE2B5 0x6E9D
+0xE2B6 0x7078
+0xE2B7 0x72D7
+0xE2B8 0x7396
+0xE2B9 0x7403
+0xE2BA 0x77BF
+0xE2BB 0x77E9
+0xE2BC 0x7A76
+0xE2BD 0x7D7F
+0xE2BE 0x8009
+0xE2BF 0x81FC
+0xE2C0 0x8205
+0xE2C1 0x820A
+0xE2C2 0x82DF
+0xE2C3 0x8862
+0xE2C4 0x8B33
+0xE2C5 0x8CFC
+0xE2C6 0x8EC0
+0xE2C7 0x9011
+0xE2C8 0x90B1
+0xE2C9 0x9264
+0xE2CA 0x92B6
+0xE2CB 0x99D2
+0xE2CC 0x9A45
+0xE2CD 0x9CE9
+0xE2CE 0x9DD7
+0xE2CF 0x9F9C
+0xE2D0 0x570B
+0xE2D1 0x5C40
+0xE2D2 0x83CA
+0xE2D3 0x97A0
+0xE2D4 0x97AB
+0xE2D5 0x9EB4
+0xE2D6 0x541B
+0xE2D7 0x7A98
+0xE2D8 0x7FA4
+0xE2D9 0x88D9
+0xE2DA 0x8ECD
+0xE2DB 0x90E1
+0xE2DC 0x5800
+0xE2DD 0x5C48
+0xE2DE 0x6398
+0xE2DF 0x7A9F
+0xE2E0 0x5BAE
+0xE2E1 0x5F13
+0xE2E2 0x7A79
+0xE2E3 0x7AAE
+0xE2E4 0x828E
+0xE2E5 0x8EAC
+0xE2E6 0x5026
+0xE2E7 0x5238
+0xE2E8 0x52F8
+0xE2E9 0x5377
+0xE2EA 0x5708
+0xE2EB 0x62F3
+0xE2EC 0x6372
+0xE2ED 0x6B0A
+0xE2EE 0x6DC3
+0xE2EF 0x7737
+0xE2F0 0x53A5
+0xE2F1 0x7357
+0xE2F2 0x8568
+0xE2F3 0x8E76
+0xE2F4 0x95D5
+0xE2F5 0x673A
+0xE2F6 0x6AC3
+0xE2F7 0x6F70
+0xE2F8 0x8A6D
+0xE2F9 0x8ECC
+0xE2FA 0x994B
+0xE2FB 0xF906
+0xE2FC 0x6677
+0xE2FD 0x6B78
+0xE2FE 0x8CB4
+0xE331 0x9B3C
+0xE332 0xF907
+0xE333 0x53EB
+0xE334 0x572D
+0xE335 0x594E
+0xE336 0x63C6
+0xE337 0x69FB
+0xE338 0x73EA
+0xE339 0x7845
+0xE33A 0x7ABA
+0xE33B 0x7AC5
+0xE33C 0x7CFE
+0xE33D 0x8475
+0xE33E 0x898F
+0xE33F 0x8D73
+0xE340 0x9035
+0xE341 0x95A8
+0xE342 0x52FB
+0xE343 0x5747
+0xE344 0x7547
+0xE345 0x7B60
+0xE346 0x83CC
+0xE347 0x921E
+0xE348 0xF908
+0xE349 0x6A58
+0xE34A 0x514B
+0xE34B 0x524B
+0xE34C 0x5287
+0xE34D 0x621F
+0xE34E 0x68D8
+0xE34F 0x6975
+0xE350 0x9699
+0xE351 0x50C5
+0xE352 0x52A4
+0xE353 0x52E4
+0xE354 0x61C3
+0xE355 0x65A4
+0xE356 0x6839
+0xE357 0x69FF
+0xE358 0x747E
+0xE359 0x7B4B
+0xE35A 0x82B9
+0xE35B 0x83EB
+0xE35C 0x89B2
+0xE35D 0x8B39
+0xE35E 0x8FD1
+0xE35F 0x9949
+0xE360 0xF909
+0xE361 0x4ECA
+0xE362 0x5997
+0xE363 0x64D2
+0xE364 0x6611
+0xE365 0x6A8E
+0xE366 0x7434
+0xE367 0x7981
+0xE368 0x79BD
+0xE369 0x82A9
+0xE36A-0xE36B 0x887E
+0xE36C 0x895F
+0xE36D 0xF90A
+0xE36E 0x9326
+0xE36F 0x4F0B
+0xE370 0x53CA
+0xE371 0x6025
+0xE372 0x6271
+0xE373 0x6C72
+0xE374 0x7D1A
+0xE375 0x7D66
+0xE376 0x4E98
+0xE377 0x5162
+0xE378 0x77DC
+0xE379 0x80AF
+0xE37A 0x4F01
+0xE37B 0x4F0E
+0xE37C 0x5176
+0xE37D 0x5180
+0xE37E 0x55DC
+0xE391 0x5668
+0xE392 0x573B
+0xE393 0x57FA
+0xE394 0x57FC
+0xE395 0x5914
+0xE396 0x5947
+0xE397 0x5993
+0xE398 0x5BC4
+0xE399 0x5C90
+0xE39A 0x5D0E
+0xE39B 0x5DF1
+0xE39C 0x5E7E
+0xE39D 0x5FCC
+0xE39E 0x6280
+0xE39F 0x65D7
+0xE3A0 0x65E3
+0xE3A1-0xE3A2 0x671E
+0xE3A3 0x675E
+0xE3A4 0x68CB
+0xE3A5 0x68C4
+0xE3A6 0x6A5F
+0xE3A7 0x6B3A
+0xE3A8 0x6C23
+0xE3A9 0x6C7D
+0xE3AA 0x6C82
+0xE3AB 0x6DC7
+0xE3AC 0x7398
+0xE3AD 0x7426
+0xE3AE 0x742A
+0xE3AF 0x7482
+0xE3B0 0x74A3
+0xE3B1 0x7578
+0xE3B2 0x757F
+0xE3B3 0x7881
+0xE3B4 0x78EF
+0xE3B5 0x7941
+0xE3B6-0xE3B7 0x7947
+0xE3B8 0x797A
+0xE3B9 0x7B95
+0xE3BA 0x7D00
+0xE3BB 0x7DBA
+0xE3BC 0x7F88
+0xE3BD 0x8006
+0xE3BE 0x802D
+0xE3BF 0x808C
+0xE3C0 0x8A18
+0xE3C1 0x8B4F
+0xE3C2 0x8C48
+0xE3C3 0x8D77
+0xE3C4 0x9321
+0xE3C5 0x9324
+0xE3C6 0x98E2
+0xE3C7 0x9951
+0xE3C8-0xE3C9 0x9A0E
+0xE3CA 0x9A65
+0xE3CB 0x9E92
+0xE3CC 0x7DCA
+0xE3CD 0x4F76
+0xE3CE 0x5409
+0xE3CF 0x62EE
+0xE3D0 0x6854
+0xE3D1 0x91D1
+0xE3D2 0x55AB
+0xE3D3 0x513A
+0xE3D4-0xE3D5 0xF90B
+0xE3D6 0x5A1C
+0xE3D7 0x61E6
+0xE3D8 0xF90D
+0xE3D9 0x62CF
+0xE3DA 0x62FF
+0xE3DB-0xE3E0 0xF90E
+0xE3E1 0x90A3
+0xE3E2-0xE3E6 0xF914
+0xE3E7 0x8AFE
+0xE3E8-0xE3EB 0xF919
+0xE3EC 0x6696
+0xE3ED 0xF91D
+0xE3EE 0x7156
+0xE3EF-0xE3F0 0xF91E
+0xE3F1 0x96E3
+0xE3F2 0xF920
+0xE3F3 0x634F
+0xE3F4 0x637A
+0xE3F5 0x5357
+0xE3F6 0xF921
+0xE3F7 0x678F
+0xE3F8 0x6960
+0xE3F9 0x6E73
+0xE3FA 0xF922
+0xE3FB 0x7537
+0xE3FC-0xE3FE 0xF923
+0xE431 0x7D0D
+0xE432-0xE433 0xF926
+0xE434 0x8872
+0xE435 0x56CA
+0xE436 0x5A18
+0xE437-0xE43B 0xF928
+0xE43C 0x4E43
+0xE43D 0xF92D
+0xE43E 0x5167
+0xE43F 0x5948
+0xE440 0x67F0
+0xE441 0x8010
+0xE442 0xF92E
+0xE443 0x5973
+0xE444 0x5E74
+0xE445 0x649A
+0xE446 0x79CA
+0xE447 0x5FF5
+0xE448 0x606C
+0xE449 0x62C8
+0xE44A 0x637B
+0xE44B 0x5BE7
+0xE44C 0x5BD7
+0xE44D 0x52AA
+0xE44E 0xF92F
+0xE44F 0x5974
+0xE450 0x5F29
+0xE451 0x6012
+0xE452-0xE454 0xF930
+0xE455 0x7459
+0xE456-0xE45B 0xF933
+0xE45C 0x99D1
+0xE45D-0xE467 0xF939
+0xE468 0x6FC3
+0xE469-0xE46A 0xF944
+0xE46B 0x81BF
+0xE46C 0x8FB2
+0xE46D 0x60F1
+0xE46E-0xE46F 0xF946
+0xE470 0x8166
+0xE471-0xE472 0xF948
+0xE473 0x5C3F
+0xE474-0xE47B 0xF94A
+0xE47C 0x5AE9
+0xE47D 0x8A25
+0xE47E 0x677B
+0xE491 0x7D10
+0xE492-0xE497 0xF952
+0xE498 0x80FD
+0xE499-0xE49A 0xF958
+0xE49B 0x5C3C
+0xE49C 0x6CE5
+0xE49D 0x533F
+0xE49E 0x6EBA
+0xE49F 0x591A
+0xE4A0 0x8336
+0xE4A1 0x4E39
+0xE4A2 0x4EB6
+0xE4A3 0x4F46
+0xE4A4 0x55AE
+0xE4A5 0x5718
+0xE4A6 0x58C7
+0xE4A7 0x5F56
+0xE4A8 0x65B7
+0xE4A9 0x65E6
+0xE4AA 0x6A80
+0xE4AB 0x6BB5
+0xE4AC 0x6E4D
+0xE4AD 0x77ED
+0xE4AE 0x7AEF
+0xE4AF 0x7C1E
+0xE4B0 0x7DDE
+0xE4B1 0x86CB
+0xE4B2 0x8892
+0xE4B3 0x9132
+0xE4B4 0x935B
+0xE4B5 0x64BB
+0xE4B6 0x6FBE
+0xE4B7 0x737A
+0xE4B8 0x75B8
+0xE4B9 0x9054
+0xE4BA 0x5556
+0xE4BB 0x574D
+0xE4BC 0x61BA
+0xE4BD 0x64D4
+0xE4BE 0x66C7
+0xE4BF 0x6DE1
+0xE4C0 0x6E5B
+0xE4C1 0x6F6D
+0xE4C2 0x6FB9
+0xE4C3 0x75F0
+0xE4C4 0x8043
+0xE4C5 0x81BD
+0xE4C6 0x8541
+0xE4C7 0x8983
+0xE4C8 0x8AC7
+0xE4C9 0x8B5A
+0xE4CA 0x931F
+0xE4CB 0x6C93
+0xE4CC 0x7553
+0xE4CD 0x7B54
+0xE4CE 0x8E0F
+0xE4CF 0x905D
+0xE4D0 0x5510
+0xE4D1 0x5802
+0xE4D2 0x5858
+0xE4D3 0x5E62
+0xE4D4 0x6207
+0xE4D5 0x649E
+0xE4D6 0x68E0
+0xE4D7 0x7576
+0xE4D8 0x7CD6
+0xE4D9 0x87B3
+0xE4DA 0x9EE8
+0xE4DB 0x4EE3
+0xE4DC 0x5788
+0xE4DD 0x576E
+0xE4DE 0x5927
+0xE4DF 0x5C0D
+0xE4E0 0x5CB1
+0xE4E1 0x5E36
+0xE4E2 0x5F85
+0xE4E3 0x6234
+0xE4E4 0x64E1
+0xE4E5 0x73B3
+0xE4E6 0x81FA
+0xE4E7 0x888B
+0xE4E8 0x8CB8
+0xE4E9 0x968A
+0xE4EA 0x9EDB
+0xE4EB 0x5B85
+0xE4EC 0x5FB7
+0xE4ED 0x60B3
+0xE4EE 0x5012
+0xE4EF 0x5200
+0xE4F0 0x5230
+0xE4F1 0x5716
+0xE4F2 0x5835
+0xE4F3 0x5857
+0xE4F4 0x5C0E
+0xE4F5 0x5C60
+0xE4F6 0x5CF6
+0xE4F7 0x5D8B
+0xE4F8 0x5EA6
+0xE4F9 0x5F92
+0xE4FA 0x60BC
+0xE4FB 0x6311
+0xE4FC 0x6389
+0xE4FD 0x6417
+0xE4FE 0x6843
+0xE531 0x68F9
+0xE532 0x6AC2
+0xE533 0x6DD8
+0xE534 0x6E21
+0xE535 0x6ED4
+0xE536 0x6FE4
+0xE537 0x71FE
+0xE538 0x76DC
+0xE539 0x7779
+0xE53A 0x79B1
+0xE53B 0x7A3B
+0xE53C 0x8404
+0xE53D 0x89A9
+0xE53E 0x8CED
+0xE53F 0x8DF3
+0xE540 0x8E48
+0xE541 0x9003
+0xE542 0x9014
+0xE543 0x9053
+0xE544 0x90FD
+0xE545 0x934D
+0xE546 0x9676
+0xE547 0x97DC
+0xE548 0x6BD2
+0xE549 0x7006
+0xE54A 0x7258
+0xE54B 0x72A2
+0xE54C 0x7368
+0xE54D 0x7763
+0xE54E 0x79BF
+0xE54F 0x7BE4
+0xE550 0x7E9B
+0xE551 0x8B80
+0xE552 0x58A9
+0xE553 0x60C7
+0xE554 0x6566
+0xE555 0x65FD
+0xE556 0x66BE
+0xE557 0x6C8C
+0xE558 0x711E
+0xE559 0x71C9
+0xE55A 0x8C5A
+0xE55B 0x9813
+0xE55C 0x4E6D
+0xE55D 0x7A81
+0xE55E 0x4EDD
+0xE55F 0x51AC
+0xE560 0x51CD
+0xE561 0x52D5
+0xE562 0x540C
+0xE563 0x61A7
+0xE564 0x6771
+0xE565 0x6850
+0xE566 0x68DF
+0xE567 0x6D1E
+0xE568 0x6F7C
+0xE569 0x75BC
+0xE56A 0x77B3
+0xE56B 0x7AE5
+0xE56C 0x80F4
+0xE56D 0x8463
+0xE56E 0x9285
+0xE56F 0x515C
+0xE570 0x6597
+0xE571 0x675C
+0xE572 0x6793
+0xE573 0x75D8
+0xE574 0x7AC7
+0xE575 0x8373
+0xE576 0xF95A
+0xE577 0x8C46
+0xE578 0x9017
+0xE579 0x982D
+0xE57A 0x5C6F
+0xE57B 0x81C0
+0xE57C 0x829A
+0xE57D 0x9041
+0xE57E 0x906F
+0xE591 0x920D
+0xE592 0x5F97
+0xE593 0x5D9D
+0xE594 0x6A59
+0xE595 0x71C8
+0xE596 0x767B
+0xE597 0x7B49
+0xE598 0x85E4
+0xE599 0x8B04
+0xE59A 0x9127
+0xE59B 0x9A30
+0xE59C 0x5587
+0xE59D 0x61F6
+0xE59E 0xF95B
+0xE59F 0x7669
+0xE5A0 0x7F85
+0xE5A1 0x863F
+0xE5A2 0x87BA
+0xE5A3 0x88F8
+0xE5A4 0x908F
+0xE5A5 0xF95C
+0xE5A6 0x6D1B
+0xE5A7 0x70D9
+0xE5A8 0x73DE
+0xE5A9 0x7D61
+0xE5AA 0x843D
+0xE5AB 0xF95D
+0xE5AC 0x916A
+0xE5AD 0x99F1
+0xE5AE 0xF95E
+0xE5AF 0x4E82
+0xE5B0 0x5375
+0xE5B1 0x6B04
+0xE5B2 0x6B12
+0xE5B3 0x703E
+0xE5B4 0x721B
+0xE5B5 0x862D
+0xE5B6 0x9E1E
+0xE5B7 0x524C
+0xE5B8 0x8FA3
+0xE5B9 0x5D50
+0xE5BA 0x64E5
+0xE5BB 0x652C
+0xE5BC 0x6B16
+0xE5BD 0x6FEB
+0xE5BE 0x7C43
+0xE5BF 0x7E9C
+0xE5C0 0x85CD
+0xE5C1 0x8964
+0xE5C2 0x89BD
+0xE5C3 0x62C9
+0xE5C4 0x81D8
+0xE5C5 0x881F
+0xE5C6 0x5ECA
+0xE5C7 0x6717
+0xE5C8 0x6D6A
+0xE5C9 0x72FC
+0xE5CA 0x7405
+0xE5CB 0x746F
+0xE5CC 0x8782
+0xE5CD 0x90DE
+0xE5CE 0x4F86
+0xE5CF 0x5D0D
+0xE5D0 0x5FA0
+0xE5D1 0x840A
+0xE5D2 0x51B7
+0xE5D3 0x63A0
+0xE5D4 0x7565
+0xE5D5 0x4EAE
+0xE5D6 0x5006
+0xE5D7 0x5169
+0xE5D8 0x51C9
+0xE5D9 0x6881
+0xE5DA 0x6A11
+0xE5DB 0x7CAE
+0xE5DC 0x7CB1
+0xE5DD 0x7CE7
+0xE5DE 0x826F
+0xE5DF 0x8AD2
+0xE5E0 0x8F1B
+0xE5E1 0x91CF
+0xE5E2 0x4FB6
+0xE5E3 0x5137
+0xE5E4 0x52F5
+0xE5E5 0x5442
+0xE5E6 0x5EEC
+0xE5E7 0x616E
+0xE5E8 0x623E
+0xE5E9 0x65C5
+0xE5EA 0x6ADA
+0xE5EB 0x6FFE
+0xE5EC 0x792A
+0xE5ED 0x85DC
+0xE5EE 0x8823
+0xE5EF 0x95AD
+0xE5F0 0x9A62
+0xE5F1 0x9A6A
+0xE5F2 0x9E97
+0xE5F3 0x9ECE
+0xE5F4 0x529B
+0xE5F5 0x66C6
+0xE5F6 0x6B77
+0xE5F7 0x701D
+0xE5F8 0x792B
+0xE5F9 0x8F62
+0xE5FA 0x9742
+0xE5FB 0x6190
+0xE5FC 0x6200
+0xE5FD 0x6523
+0xE5FE 0x6F23
+0xE631 0x7149
+0xE632 0x7489
+0xE633 0x7DF4
+0xE634 0x806F
+0xE635 0x84EE
+0xE636 0x8F26
+0xE637 0x9023
+0xE638 0x934A
+0xE639 0x51BD
+0xE63A 0x5217
+0xE63B 0x52A3
+0xE63C 0x6D0C
+0xE63D 0x70C8
+0xE63E 0x88C2
+0xE63F 0x5EC9
+0xE640 0x6582
+0xE641 0x6BAE
+0xE642 0x6FC2
+0xE643 0x7C3E
+0xE644 0x7375
+0xE645 0x4EE4
+0xE646 0x4F36
+0xE647 0x56F9
+0xE648 0xF95F
+0xE649 0x5CBA
+0xE64A 0x5DBA
+0xE64B 0x601C
+0xE64C 0x73B2
+0xE64D 0x7B2D
+0xE64E 0x7F9A
+0xE64F 0x7FCE
+0xE650 0x8046
+0xE651 0x901E
+0xE652 0x9234
+0xE653 0x96F6
+0xE654 0x9748
+0xE655 0x9818
+0xE656 0x9F61
+0xE657 0x4F8B
+0xE658 0x6FA7
+0xE659 0x79AE
+0xE65A 0x91B4
+0xE65B 0x96B7
+0xE65C 0x52DE
+0xE65D 0xF960
+0xE65E 0x6488
+0xE65F 0x64C4
+0xE660 0x6AD3
+0xE661 0x6F5E
+0xE662 0x7018
+0xE663 0x7210
+0xE664 0x76E7
+0xE665 0x8001
+0xE666 0x8606
+0xE667 0x865C
+0xE668 0x8DEF
+0xE669 0x8F05
+0xE66A 0x9732
+0xE66B 0x9B6F
+0xE66C 0x9DFA
+0xE66D 0x9E75
+0xE66E 0x788C
+0xE66F 0x797F
+0xE670 0x7DA0
+0xE671 0x83C9
+0xE672 0x9304
+0xE673 0x9E7F
+0xE674 0x9E93
+0xE675 0x8AD6
+0xE676 0x58DF
+0xE677 0x5F04
+0xE678 0x6727
+0xE679 0x7027
+0xE67A 0x74CF
+0xE67B 0x7C60
+0xE67C 0x807E
+0xE67D 0x5121
+0xE67E 0x7028
+0xE691 0x7262
+0xE692 0x78CA
+0xE693 0x8CC2
+0xE694 0x8CDA
+0xE695 0x8CF4
+0xE696 0x96F7
+0xE697 0x4E86
+0xE698 0x50DA
+0xE699 0x5BEE
+0xE69A 0x5ED6
+0xE69B 0x6599
+0xE69C 0x71CE
+0xE69D 0x7642
+0xE69E 0x77AD
+0xE69F 0x804A
+0xE6A0 0x84FC
+0xE6A1 0x907C
+0xE6A2 0x9B27
+0xE6A3 0x9F8D
+0xE6A4 0x58D8
+0xE6A5 0x5A41
+0xE6A6 0x5C62
+0xE6A7 0x6A13
+0xE6A8 0x6DDA
+0xE6A9 0x6F0F
+0xE6AA 0x763B
+0xE6AB 0x7D2F
+0xE6AC 0x7E37
+0xE6AD 0x851E
+0xE6AE 0x8938
+0xE6AF 0x93E4
+0xE6B0 0x964B
+0xE6B1 0x5289
+0xE6B2 0x65D2
+0xE6B3 0x67F3
+0xE6B4 0x69B4
+0xE6B5 0x6D41
+0xE6B6 0x6E9C
+0xE6B7 0x700F
+0xE6B8 0x7409
+0xE6B9 0x7460
+0xE6BA 0x7559
+0xE6BB 0x7624
+0xE6BC 0x786B
+0xE6BD 0x8B2C
+0xE6BE 0x985E
+0xE6BF 0x516D
+0xE6C0 0x622E
+0xE6C1 0x9678
+0xE6C2 0x4F96
+0xE6C3 0x502B
+0xE6C4 0x5D19
+0xE6C5 0x6DEA
+0xE6C6 0x7DB8
+0xE6C7 0x8F2A
+0xE6C8 0x5F8B
+0xE6C9 0x6144
+0xE6CA 0x6817
+0xE6CB 0xF961
+0xE6CC 0x9686
+0xE6CD 0x52D2
+0xE6CE 0x808B
+0xE6CF 0x51DC
+0xE6D0 0x51CC
+0xE6D1 0x695E
+0xE6D2 0x7A1C
+0xE6D3 0x7DBE
+0xE6D4 0x83F1
+0xE6D5 0x9675
+0xE6D6 0x4FDA
+0xE6D7 0x5229
+0xE6D8 0x5398
+0xE6D9 0x540F
+0xE6DA 0x550E
+0xE6DB 0x5C65
+0xE6DC 0x60A7
+0xE6DD 0x674E
+0xE6DE 0x68A8
+0xE6DF 0x6D6C
+0xE6E0 0x7281
+0xE6E1 0x72F8
+0xE6E2 0x7406
+0xE6E3 0x7483
+0xE6E4 0xF962
+0xE6E5 0x75E2
+0xE6E6 0x7C6C
+0xE6E7 0x7F79
+0xE6E8 0x7FB8
+0xE6E9 0x8389
+0xE6EA 0x88CF
+0xE6EB 0x88E1
+0xE6EC 0x91CC
+0xE6ED 0x91D0
+0xE6EE 0x96E2
+0xE6EF 0x9BC9
+0xE6F0 0x541D
+0xE6F1 0x6F7E
+0xE6F2 0x71D0
+0xE6F3 0x7498
+0xE6F4 0x85FA
+0xE6F5 0x8EAA
+0xE6F6 0x96A3
+0xE6F7 0x9C57
+0xE6F8 0x9E9F
+0xE6F9 0x6797
+0xE6FA 0x6DCB
+0xE6FB 0x7433
+0xE6FC 0x81E8
+0xE6FD 0x9716
+0xE6FE 0x782C
+0xE731 0x7ACB
+0xE732 0x7B20
+0xE733 0x7C92
+0xE734 0x6469
+0xE735 0x746A
+0xE736 0x75F2
+0xE737 0x78BC
+0xE738 0x78E8
+0xE739 0x99AC
+0xE73A 0x9B54
+0xE73B 0x9EBB
+0xE73C 0x5BDE
+0xE73D 0x5E55
+0xE73E 0x6F20
+0xE73F 0x819C
+0xE740 0x83AB
+0xE741 0x9088
+0xE742 0x4E07
+0xE743 0x534D
+0xE744 0x5A29
+0xE745 0x5DD2
+0xE746 0x5F4E
+0xE747 0x6162
+0xE748 0x633D
+0xE749 0x6669
+0xE74A 0x66FC
+0xE74B 0x6EFF
+0xE74C 0x6F2B
+0xE74D 0x7063
+0xE74E 0x779E
+0xE74F 0x842C
+0xE750 0x8513
+0xE751 0x883B
+0xE752 0x8F13
+0xE753 0x9945
+0xE754 0x9C3B
+0xE755 0x551C
+0xE756 0x62B9
+0xE757 0x672B
+0xE758 0x6CAB
+0xE759 0x8309
+0xE75A 0x896A
+0xE75B 0x977A
+0xE75C 0x4EA1
+0xE75D 0x5984
+0xE75E-0xE75F 0x5FD8
+0xE760 0x671B
+0xE761 0x7DB2
+0xE762 0x7F54
+0xE763 0x8292
+0xE764 0x832B
+0xE765 0x83BD
+0xE766 0x8F1E
+0xE767 0x9099
+0xE768 0x57CB
+0xE769 0x59B9
+0xE76A 0x5A92
+0xE76B 0x5BD0
+0xE76C 0x6627
+0xE76D 0x679A
+0xE76E 0x6885
+0xE76F 0x6BCF
+0xE770 0x7164
+0xE771 0x7F75
+0xE772 0x8CB7
+0xE773 0x8CE3
+0xE774 0x9081
+0xE775 0x9B45
+0xE776 0x8108
+0xE777 0x8C8A
+0xE778 0x964C
+0xE779 0x9A40
+0xE77A 0x9EA5
+0xE77B 0x5B5F
+0xE77C 0x6C13
+0xE77D 0x731B
+0xE77E 0x76F2
+0xE791 0x76DF
+0xE792 0x840C
+0xE793 0x51AA
+0xE794 0x8993
+0xE795 0x514D
+0xE796 0x5195
+0xE797 0x52C9
+0xE798 0x68C9
+0xE799 0x6C94
+0xE79A 0x7704
+0xE79B 0x7720
+0xE79C 0x7DBF
+0xE79D 0x7DEC
+0xE79E 0x9762
+0xE79F 0x9EB5
+0xE7A0 0x6EC5
+0xE7A1 0x8511
+0xE7A2 0x51A5
+0xE7A3 0x540D
+0xE7A4 0x547D
+0xE7A5 0x660E
+0xE7A6 0x669D
+0xE7A7 0x6927
+0xE7A8 0x6E9F
+0xE7A9 0x76BF
+0xE7AA 0x7791
+0xE7AB 0x8317
+0xE7AC 0x84C2
+0xE7AD 0x879F
+0xE7AE 0x9169
+0xE7AF 0x9298
+0xE7B0 0x9CF4
+0xE7B1 0x8882
+0xE7B2 0x4FAE
+0xE7B3 0x5192
+0xE7B4 0x52DF
+0xE7B5 0x59C6
+0xE7B6 0x5E3D
+0xE7B7 0x6155
+0xE7B8-0xE7B9 0x6478
+0xE7BA 0x66AE
+0xE7BB 0x67D0
+0xE7BC 0x6A21
+0xE7BD 0x6BCD
+0xE7BE 0x6BDB
+0xE7BF 0x725F
+0xE7C0 0x7261
+0xE7C1 0x7441
+0xE7C2 0x7738
+0xE7C3 0x77DB
+0xE7C4 0x8017
+0xE7C5 0x82BC
+0xE7C6 0x8305
+0xE7C7 0x8B00
+0xE7C8 0x8B28
+0xE7C9 0x8C8C
+0xE7CA 0x6728
+0xE7CB 0x6C90
+0xE7CC 0x7267
+0xE7CD 0x76EE
+0xE7CE 0x7766
+0xE7CF 0x7A46
+0xE7D0 0x9DA9
+0xE7D1 0x6B7F
+0xE7D2 0x6C92
+0xE7D3 0x5922
+0xE7D4 0x6726
+0xE7D5 0x8499
+0xE7D6 0x536F
+0xE7D7 0x5893
+0xE7D8 0x5999
+0xE7D9 0x5EDF
+0xE7DA 0x63CF
+0xE7DB 0x6634
+0xE7DC 0x6773
+0xE7DD 0x6E3A
+0xE7DE 0x732B
+0xE7DF 0x7AD7
+0xE7E0 0x82D7
+0xE7E1 0x9328
+0xE7E2 0x52D9
+0xE7E3 0x5DEB
+0xE7E4 0x61AE
+0xE7E5 0x61CB
+0xE7E6 0x620A
+0xE7E7 0x62C7
+0xE7E8 0x64AB
+0xE7E9 0x65E0
+0xE7EA 0x6959
+0xE7EB 0x6B66
+0xE7EC 0x6BCB
+0xE7ED 0x7121
+0xE7EE 0x73F7
+0xE7EF 0x755D
+0xE7F0 0x7E46
+0xE7F1 0x821E
+0xE7F2 0x8302
+0xE7F3 0x856A
+0xE7F4 0x8AA3
+0xE7F5 0x8CBF
+0xE7F6 0x9727
+0xE7F7 0x9D61
+0xE7F8 0x58A8
+0xE7F9 0x9ED8
+0xE7FA 0x5011
+0xE7FB 0x520E
+0xE7FC 0x543B
+0xE7FD 0x554F
+0xE7FE 0x6587
+0xE831 0x6C76
+0xE832-0xE833 0x7D0A
+0xE834 0x805E
+0xE835 0x868A
+0xE836 0x9580
+0xE837 0x96EF
+0xE838 0x52FF
+0xE839 0x6C95
+0xE83A 0x7269
+0xE83B 0x5473
+0xE83C 0x5A9A
+0xE83D 0x5C3E
+0xE83E 0x5D4B
+0xE83F 0x5F4C
+0xE840 0x5FAE
+0xE841 0x672A
+0xE842 0x68B6
+0xE843 0x6963
+0xE844 0x6E3C
+0xE845 0x6E44
+0xE846 0x7709
+0xE847 0x7C73
+0xE848 0x7F8E
+0xE849 0x8587
+0xE84A 0x8B0E
+0xE84B 0x8FF7
+0xE84C 0x9761
+0xE84D 0x9EF4
+0xE84E 0x5CB7
+0xE84F 0x60B6
+0xE850 0x610D
+0xE851 0x61AB
+0xE852 0x654F
+0xE853-0xE854 0x65FB
+0xE855 0x6C11
+0xE856 0x6CEF
+0xE857 0x739F
+0xE858 0x73C9
+0xE859 0x7DE1
+0xE85A 0x9594
+0xE85B 0x5BC6
+0xE85C 0x871C
+0xE85D 0x8B10
+0xE85E 0x525D
+0xE85F 0x535A
+0xE860 0x62CD
+0xE861 0x640F
+0xE862 0x64B2
+0xE863 0x6734
+0xE864 0x6A38
+0xE865 0x6CCA
+0xE866 0x73C0
+0xE867 0x749E
+0xE868 0x7B94
+0xE869 0x7C95
+0xE86A 0x7E1B
+0xE86B 0x818A
+0xE86C 0x8236
+0xE86D 0x8584
+0xE86E 0x8FEB
+0xE86F 0x96F9
+0xE870 0x99C1
+0xE871 0x4F34
+0xE872 0x534A
+0xE873 0x53CD
+0xE874 0x53DB
+0xE875 0x62CC
+0xE876 0x642C
+0xE877 0x6500
+0xE878 0x6591
+0xE879 0x69C3
+0xE87A 0x6CEE
+0xE87B 0x6F58
+0xE87C 0x73ED
+0xE87D 0x7554
+0xE87E 0x7622
+0xE891 0x76E4
+0xE892 0x76FC
+0xE893 0x78D0
+0xE894 0x78FB
+0xE895 0x792C
+0xE896 0x7D46
+0xE897 0x822C
+0xE898 0x87E0
+0xE899 0x8FD4
+0xE89A 0x9812
+0xE89B 0x98EF
+0xE89C 0x52C3
+0xE89D 0x62D4
+0xE89E 0x64A5
+0xE89F 0x6E24
+0xE8A0 0x6F51
+0xE8A1 0x767C
+0xE8A2 0x8DCB
+0xE8A3 0x91B1
+0xE8A4 0x9262
+0xE8A5 0x9AEE
+0xE8A6 0x9B43
+0xE8A7 0x5023
+0xE8A8 0x508D
+0xE8A9 0x574A
+0xE8AA 0x59A8
+0xE8AB 0x5C28
+0xE8AC 0x5E47
+0xE8AD 0x5F77
+0xE8AE 0x623F
+0xE8AF 0x653E
+0xE8B0 0x65B9
+0xE8B1 0x65C1
+0xE8B2 0x6609
+0xE8B3 0x678B
+0xE8B4 0x699C
+0xE8B5 0x6EC2
+0xE8B6 0x78C5
+0xE8B7 0x7D21
+0xE8B8 0x80AA
+0xE8B9 0x8180
+0xE8BA 0x822B
+0xE8BB 0x82B3
+0xE8BC 0x84A1
+0xE8BD 0x868C
+0xE8BE 0x8A2A
+0xE8BF 0x8B17
+0xE8C0 0x90A6
+0xE8C1 0x9632
+0xE8C2 0x9F90
+0xE8C3 0x500D
+0xE8C4 0x4FF3
+0xE8C5 0xF963
+0xE8C6 0x57F9
+0xE8C7 0x5F98
+0xE8C8 0x62DC
+0xE8C9 0x6392
+0xE8CA 0x676F
+0xE8CB 0x6E43
+0xE8CC 0x7119
+0xE8CD 0x76C3
+0xE8CE 0x80CC
+0xE8CF 0x80DA
+0xE8D0-0xE8D1 0x88F4
+0xE8D2 0x8919
+0xE8D3 0x8CE0
+0xE8D4 0x8F29
+0xE8D5 0x914D
+0xE8D6 0x966A
+0xE8D7 0x4F2F
+0xE8D8 0x4F70
+0xE8D9 0x5E1B
+0xE8DA 0x67CF
+0xE8DB 0x6822
+0xE8DC-0xE8DD 0x767D
+0xE8DE 0x9B44
+0xE8DF 0x5E61
+0xE8E0 0x6A0A
+0xE8E1 0x7169
+0xE8E2 0x71D4
+0xE8E3 0x756A
+0xE8E4 0xF964
+0xE8E5 0x7E41
+0xE8E6 0x8543
+0xE8E7 0x85E9
+0xE8E8 0x98DC
+0xE8E9 0x4F10
+0xE8EA 0x7B4F
+0xE8EB 0x7F70
+0xE8EC 0x95A5
+0xE8ED 0x51E1
+0xE8EE 0x5E06
+0xE8EF 0x68B5
+0xE8F0 0x6C3E
+0xE8F1 0x6C4E
+0xE8F2 0x6CDB
+0xE8F3 0x72AF
+0xE8F4 0x7BC4
+0xE8F5 0x8303
+0xE8F6 0x6CD5
+0xE8F7 0x743A
+0xE8F8 0x50FB
+0xE8F9 0x5288
+0xE8FA 0x58C1
+0xE8FB 0x64D8
+0xE8FC 0x6A97
+0xE8FD 0x74A7
+0xE8FE 0x7656
+0xE931 0x78A7
+0xE932 0x8617
+0xE933 0x95E2
+0xE934 0x9739
+0xE935 0xF965
+0xE936 0x535E
+0xE937 0x5F01
+0xE938 0x8B8A
+0xE939 0x8FA8
+0xE93A 0x8FAF
+0xE93B 0x908A
+0xE93C 0x5225
+0xE93D 0x77A5
+0xE93E 0x9C49
+0xE93F 0x9F08
+0xE940 0x4E19
+0xE941 0x5002
+0xE942 0x5175
+0xE943 0x5C5B
+0xE944 0x5E77
+0xE945 0x661E
+0xE946 0x663A
+0xE947 0x67C4
+0xE948 0x68C5
+0xE949 0x70B3
+0xE94A 0x7501
+0xE94B 0x75C5
+0xE94C 0x79C9
+0xE94D 0x7ADD
+0xE94E 0x8F27
+0xE94F 0x9920
+0xE950 0x9A08
+0xE951 0x4FDD
+0xE952 0x5821
+0xE953 0x5831
+0xE954 0x5BF6
+0xE955 0x666E
+0xE956 0x6B65
+0xE957 0x6D11
+0xE958 0x6E7A
+0xE959 0x6F7D
+0xE95A 0x73E4
+0xE95B 0x752B
+0xE95C 0x83E9
+0xE95D 0x88DC
+0xE95E 0x8913
+0xE95F 0x8B5C
+0xE960 0x8F14
+0xE961 0x4F0F
+0xE962 0x50D5
+0xE963 0x5310
+0xE964 0x535C
+0xE965 0x5B93
+0xE966 0x5FA9
+0xE967 0x670D
+0xE968 0x798F
+0xE969 0x8179
+0xE96A 0x832F
+0xE96B 0x8514
+0xE96C 0x8907
+0xE96D 0x8986
+0xE96E 0x8F39
+0xE96F 0x8F3B
+0xE970 0x99A5
+0xE971 0x9C12
+0xE972 0x672C
+0xE973 0x4E76
+0xE974 0x4FF8
+0xE975 0x5949
+0xE976 0x5C01
+0xE977-0xE978 0x5CEF
+0xE979 0x6367
+0xE97A 0x68D2
+0xE97B 0x70FD
+0xE97C 0x71A2
+0xE97D 0x742B
+0xE97E 0x7E2B
+0xE991 0x84EC
+0xE992 0x8702
+0xE993 0x9022
+0xE994 0x92D2
+0xE995 0x9CF3
+0xE996 0x4E0D
+0xE997 0x4ED8
+0xE998 0x4FEF
+0xE999 0x5085
+0xE99A 0x5256
+0xE99B 0x526F
+0xE99C 0x5426
+0xE99D 0x5490
+0xE99E 0x57E0
+0xE99F 0x592B
+0xE9A0 0x5A66
+0xE9A1 0x5B5A
+0xE9A2 0x5B75
+0xE9A3 0x5BCC
+0xE9A4 0x5E9C
+0xE9A5 0xF966
+0xE9A6 0x6276
+0xE9A7 0x6577
+0xE9A8 0x65A7
+0xE9A9 0x6D6E
+0xE9AA 0x6EA5
+0xE9AB 0x7236
+0xE9AC 0x7B26
+0xE9AD 0x7C3F
+0xE9AE 0x7F36
+0xE9AF-0xE9B0 0x8150
+0xE9B1 0x819A
+0xE9B2 0x8240
+0xE9B3 0x8299
+0xE9B4 0x83A9
+0xE9B5 0x8A03
+0xE9B6 0x8CA0
+0xE9B7 0x8CE6
+0xE9B8 0x8CFB
+0xE9B9 0x8D74
+0xE9BA 0x8DBA
+0xE9BB 0x90E8
+0xE9BC 0x91DC
+0xE9BD 0x961C
+0xE9BE 0x9644
+0xE9BF 0x99D9
+0xE9C0 0x9CE7
+0xE9C1 0x5317
+0xE9C2 0x5206
+0xE9C3 0x5429
+0xE9C4 0x5674
+0xE9C5 0x58B3
+0xE9C6 0x5954
+0xE9C7 0x596E
+0xE9C8 0x5FFF
+0xE9C9 0x61A4
+0xE9CA 0x626E
+0xE9CB 0x6610
+0xE9CC 0x6C7E
+0xE9CD 0x711A
+0xE9CE 0x76C6
+0xE9CF 0x7C89
+0xE9D0 0x7CDE
+0xE9D1 0x7D1B
+0xE9D2 0x82AC
+0xE9D3 0x8CC1
+0xE9D4 0x96F0
+0xE9D5 0xF967
+0xE9D6 0x4F5B
+0xE9D7 0x5F17
+0xE9D8 0x5F7F
+0xE9D9 0x62C2
+0xE9DA 0x5D29
+0xE9DB 0x670B
+0xE9DC 0x68DA
+0xE9DD 0x787C
+0xE9DE 0x7E43
+0xE9DF 0x9D6C
+0xE9E0 0x4E15
+0xE9E1 0x5099
+0xE9E2 0x5315
+0xE9E3 0x532A
+0xE9E4 0x5351
+0xE9E5 0x5983
+0xE9E6 0x5A62
+0xE9E7 0x5E87
+0xE9E8 0x60B2
+0xE9E9 0x618A
+0xE9EA 0x6249
+0xE9EB 0x6279
+0xE9EC 0x6590
+0xE9ED 0x6787
+0xE9EE 0x69A7
+0xE9EF 0x6BD4
+0xE9F0-0xE9F2 0x6BD6
+0xE9F3 0x6CB8
+0xE9F4 0xF968
+0xE9F5 0x7435
+0xE9F6 0x75FA
+0xE9F7 0x7812
+0xE9F8 0x7891
+0xE9F9 0x79D5
+0xE9FA 0x79D8
+0xE9FB 0x7C83
+0xE9FC 0x7DCB
+0xE9FD 0x7FE1
+0xE9FE 0x80A5
+0xEA31 0x813E
+0xEA32 0x81C2
+0xEA33 0x83F2
+0xEA34 0x871A
+0xEA35 0x88E8
+0xEA36 0x8AB9
+0xEA37 0x8B6C
+0xEA38 0x8CBB
+0xEA39 0x9119
+0xEA3A 0x975E
+0xEA3B 0x98DB
+0xEA3C 0x9F3B
+0xEA3D 0x56AC
+0xEA3E 0x5B2A
+0xEA3F 0x5F6C
+0xEA40 0x658C
+0xEA41 0x6AB3
+0xEA42 0x6BAF
+0xEA43 0x6D5C
+0xEA44 0x6FF1
+0xEA45 0x7015
+0xEA46 0x725D
+0xEA47 0x73AD
+0xEA48 0x8CA7
+0xEA49 0x8CD3
+0xEA4A 0x983B
+0xEA4B 0x6191
+0xEA4C 0x6C37
+0xEA4D 0x8058
+0xEA4E 0x9A01
+0xEA4F 0x4E4D
+0xEA50 0x4E8B
+0xEA51 0x4E9B
+0xEA52 0x4ED5
+0xEA53 0x4F3A
+0xEA54 0x4F3C
+0xEA55 0x4F7F
+0xEA56 0x4FDF
+0xEA57 0x50FF
+0xEA58 0x53F2
+0xEA59 0x53F8
+0xEA5A 0x5506
+0xEA5B 0x55E3
+0xEA5C 0x56DB
+0xEA5D 0x58EB
+0xEA5E 0x5962
+0xEA5F 0x5A11
+0xEA60 0x5BEB
+0xEA61 0x5BFA
+0xEA62 0x5C04
+0xEA63 0x5DF3
+0xEA64 0x5E2B
+0xEA65 0x5F99
+0xEA66 0x601D
+0xEA67 0x6368
+0xEA68 0x659C
+0xEA69 0x65AF
+0xEA6A 0x67F6
+0xEA6B 0x67FB
+0xEA6C 0x68AD
+0xEA6D 0x6B7B
+0xEA6E 0x6C99
+0xEA6F 0x6CD7
+0xEA70 0x6E23
+0xEA71 0x7009
+0xEA72 0x7345
+0xEA73 0x7802
+0xEA74 0x793E
+0xEA75 0x7940
+0xEA76 0x7960
+0xEA77 0x79C1
+0xEA78 0x7BE9
+0xEA79 0x7D17
+0xEA7A 0x7D72
+0xEA7B 0x8086
+0xEA7C 0x820D
+0xEA7D 0x838E
+0xEA7E 0x84D1
+0xEA91 0x86C7
+0xEA92 0x88DF
+0xEA93 0x8A50
+0xEA94 0x8A5E
+0xEA95 0x8B1D
+0xEA96 0x8CDC
+0xEA97 0x8D66
+0xEA98 0x8FAD
+0xEA99 0x90AA
+0xEA9A 0x98FC
+0xEA9B 0x99DF
+0xEA9C 0x9E9D
+0xEA9D 0x524A
+0xEA9E 0xF969
+0xEA9F 0x6714
+0xEAA0 0xF96A
+0xEAA1 0x5098
+0xEAA2 0x522A
+0xEAA3 0x5C71
+0xEAA4 0x6563
+0xEAA5 0x6C55
+0xEAA6 0x73CA
+0xEAA7 0x7523
+0xEAA8 0x759D
+0xEAA9 0x7B97
+0xEAAA 0x849C
+0xEAAB 0x9178
+0xEAAC 0x9730
+0xEAAD 0x4E77
+0xEAAE 0x6492
+0xEAAF 0x6BBA
+0xEAB0 0x715E
+0xEAB1 0x85A9
+0xEAB2 0x4E09
+0xEAB3 0xF96B
+0xEAB4 0x6749
+0xEAB5 0x68EE
+0xEAB6 0x6E17
+0xEAB7 0x829F
+0xEAB8 0x8518
+0xEAB9 0x886B
+0xEABA 0x63F7
+0xEABB 0x6F81
+0xEABC 0x9212
+0xEABD 0x98AF
+0xEABE 0x4E0A
+0xEABF 0x50B7
+0xEAC0 0x50CF
+0xEAC1 0x511F
+0xEAC2 0x5546
+0xEAC3 0x55AA
+0xEAC4 0x5617
+0xEAC5 0x5B40
+0xEAC6 0x5C19
+0xEAC7 0x5CE0
+0xEAC8 0x5E38
+0xEAC9 0x5E8A
+0xEACA 0x5EA0
+0xEACB 0x5EC2
+0xEACC 0x60F3
+0xEACD 0x6851
+0xEACE 0x6A61
+0xEACF 0x6E58
+0xEAD0 0x723D
+0xEAD1 0x7240
+0xEAD2 0x72C0
+0xEAD3 0x76F8
+0xEAD4 0x7965
+0xEAD5 0x7BB1
+0xEAD6 0x7FD4
+0xEAD7 0x88F3
+0xEAD8 0x89F4
+0xEAD9 0x8A73
+0xEADA 0x8C61
+0xEADB 0x8CDE
+0xEADC 0x971C
+0xEADD 0x585E
+0xEADE 0x74BD
+0xEADF 0x8CFD
+0xEAE0 0x55C7
+0xEAE1 0xF96C
+0xEAE2 0x7A61
+0xEAE3 0x7D22
+0xEAE4 0x8272
+0xEAE5 0x7272
+0xEAE6 0x751F
+0xEAE7 0x7525
+0xEAE8 0xF96D
+0xEAE9 0x7B19
+0xEAEA 0x5885
+0xEAEB 0x58FB
+0xEAEC 0x5DBC
+0xEAED 0x5E8F
+0xEAEE 0x5EB6
+0xEAEF 0x5F90
+0xEAF0 0x6055
+0xEAF1 0x6292
+0xEAF2 0x637F
+0xEAF3 0x654D
+0xEAF4 0x6691
+0xEAF5 0x66D9
+0xEAF6 0x66F8
+0xEAF7 0x6816
+0xEAF8 0x68F2
+0xEAF9 0x7280
+0xEAFA 0x745E
+0xEAFB 0x7B6E
+0xEAFC 0x7D6E
+0xEAFD 0x7DD6
+0xEAFE 0x7F72
+0xEB31 0x80E5
+0xEB32 0x8212
+0xEB33 0x85AF
+0xEB34 0x897F
+0xEB35 0x8A93
+0xEB36 0x901D
+0xEB37 0x92E4
+0xEB38 0x9ECD
+0xEB39 0x9F20
+0xEB3A 0x5915
+0xEB3B 0x596D
+0xEB3C 0x5E2D
+0xEB3D 0x60DC
+0xEB3E 0x6614
+0xEB3F 0x6673
+0xEB40 0x6790
+0xEB41 0x6C50
+0xEB42 0x6DC5
+0xEB43 0x6F5F
+0xEB44 0x77F3
+0xEB45 0x78A9
+0xEB46 0x84C6
+0xEB47 0x91CB
+0xEB48 0x932B
+0xEB49 0x4ED9
+0xEB4A 0x50CA
+0xEB4B 0x5148
+0xEB4C 0x5584
+0xEB4D 0x5B0B
+0xEB4E 0x5BA3
+0xEB4F 0x6247
+0xEB50 0x657E
+0xEB51 0x65CB
+0xEB52 0x6E32
+0xEB53 0x717D
+0xEB54 0x7401
+0xEB55 0x7444
+0xEB56 0x7487
+0xEB57 0x74BF
+0xEB58 0x766C
+0xEB59 0x79AA
+0xEB5A 0x7DDA
+0xEB5B 0x7E55
+0xEB5C 0x7FA8
+0xEB5D 0x817A
+0xEB5E 0x81B3
+0xEB5F 0x8239
+0xEB60 0x861A
+0xEB61 0x87EC
+0xEB62 0x8A75
+0xEB63 0x8DE3
+0xEB64 0x9078
+0xEB65 0x9291
+0xEB66 0x9425
+0xEB67 0x994D
+0xEB68 0x9BAE
+0xEB69 0x5368
+0xEB6A 0x5C51
+0xEB6B 0x6954
+0xEB6C 0x6CC4
+0xEB6D 0x6D29
+0xEB6E 0x6E2B
+0xEB6F 0x820C
+0xEB70 0x859B
+0xEB71 0x893B
+0xEB72 0x8A2D
+0xEB73 0x8AAA
+0xEB74 0x96EA
+0xEB75 0x9F67
+0xEB76 0x5261
+0xEB77 0x66B9
+0xEB78 0x6BB2
+0xEB79 0x7E96
+0xEB7A 0x87FE
+0xEB7B 0x8D0D
+0xEB7C 0x9583
+0xEB7D 0x965D
+0xEB7E 0x651D
+0xEB91 0x6D89
+0xEB92 0x71EE
+0xEB93 0xF96E
+0xEB94 0x57CE
+0xEB95 0x59D3
+0xEB96 0x5BAC
+0xEB97 0x6027
+0xEB98 0x60FA
+0xEB99 0x6210
+0xEB9A 0x661F
+0xEB9B 0x665F
+0xEB9C 0x7329
+0xEB9D 0x73F9
+0xEB9E 0x76DB
+0xEB9F 0x7701
+0xEBA0 0x7B6C
+0xEBA1 0x8056
+0xEBA2 0x8072
+0xEBA3 0x8165
+0xEBA4 0x8AA0
+0xEBA5 0x9192
+0xEBA6 0x4E16
+0xEBA7 0x52E2
+0xEBA8 0x6B72
+0xEBA9 0x6D17
+0xEBAA 0x7A05
+0xEBAB 0x7B39
+0xEBAC 0x7D30
+0xEBAD 0xF96F
+0xEBAE 0x8CB0
+0xEBAF 0x53EC
+0xEBB0 0x562F
+0xEBB1 0x5851
+0xEBB2 0x5BB5
+0xEBB3 0x5C0F
+0xEBB4 0x5C11
+0xEBB5 0x5DE2
+0xEBB6 0x6240
+0xEBB7 0x6383
+0xEBB8 0x6414
+0xEBB9 0x662D
+0xEBBA 0x68B3
+0xEBBB 0x6CBC
+0xEBBC 0x6D88
+0xEBBD 0x6EAF
+0xEBBE 0x701F
+0xEBBF 0x70A4
+0xEBC0 0x71D2
+0xEBC1 0x7526
+0xEBC2 0x758F
+0xEBC3 0x758E
+0xEBC4 0x7619
+0xEBC5 0x7B11
+0xEBC6 0x7BE0
+0xEBC7 0x7C2B
+0xEBC8 0x7D20
+0xEBC9 0x7D39
+0xEBCA 0x852C
+0xEBCB 0x856D
+0xEBCC 0x8607
+0xEBCD 0x8A34
+0xEBCE 0x900D
+0xEBCF 0x9061
+0xEBD0 0x90B5
+0xEBD1 0x92B7
+0xEBD2 0x97F6
+0xEBD3 0x9A37
+0xEBD4 0x4FD7
+0xEBD5 0x5C6C
+0xEBD6 0x675F
+0xEBD7 0x6D91
+0xEBD8 0x7C9F
+0xEBD9 0x7E8C
+0xEBDA 0x8B16
+0xEBDB 0x8D16
+0xEBDC 0x901F
+0xEBDD 0x5B6B
+0xEBDE 0x5DFD
+0xEBDF 0x640D
+0xEBE0 0x84C0
+0xEBE1 0x905C
+0xEBE2 0x98E1
+0xEBE3 0x7387
+0xEBE4 0x5B8B
+0xEBE5 0x609A
+0xEBE6 0x677E
+0xEBE7 0x6DDE
+0xEBE8 0x8A1F
+0xEBE9 0x8AA6
+0xEBEA 0x9001
+0xEBEB 0x980C
+0xEBEC 0x5237
+0xEBED 0xF970
+0xEBEE 0x7051
+0xEBEF 0x788E
+0xEBF0 0x9396
+0xEBF1 0x8870
+0xEBF2 0x91D7
+0xEBF3 0x4FEE
+0xEBF4 0x53D7
+0xEBF5 0x55FD
+0xEBF6 0x56DA
+0xEBF7 0x5782
+0xEBF8 0x58FD
+0xEBF9 0x5AC2
+0xEBFA 0x5B88
+0xEBFB 0x5CAB
+0xEBFC 0x5CC0
+0xEBFD 0x5E25
+0xEBFE 0x6101
+0xEC31 0x620D
+0xEC32 0x624B
+0xEC33 0x6388
+0xEC34 0x641C
+0xEC35 0x6536
+0xEC36 0x6578
+0xEC37 0x6A39
+0xEC38 0x6B8A
+0xEC39 0x6C34
+0xEC3A 0x6D19
+0xEC3B 0x6F31
+0xEC3C 0x71E7
+0xEC3D 0x72E9
+0xEC3E 0x7378
+0xEC3F 0x7407
+0xEC40 0x74B2
+0xEC41 0x7626
+0xEC42 0x7761
+0xEC43 0x79C0
+0xEC44 0x7A57
+0xEC45 0x7AEA
+0xEC46 0x7CB9
+0xEC47 0x7D8F
+0xEC48 0x7DAC
+0xEC49 0x7E61
+0xEC4A 0x7F9E
+0xEC4B 0x8129
+0xEC4C 0x8331
+0xEC4D 0x8490
+0xEC4E 0x84DA
+0xEC4F 0x85EA
+0xEC50 0x8896
+0xEC51 0x8AB0
+0xEC52 0x8B90
+0xEC53 0x8F38
+0xEC54 0x9042
+0xEC55 0x9083
+0xEC56 0x916C
+0xEC57 0x9296
+0xEC58 0x92B9
+0xEC59 0x968B
+0xEC5A-0xEC5B 0x96A7
+0xEC5C 0x96D6
+0xEC5D 0x9700
+0xEC5E 0x9808
+0xEC5F 0x9996
+0xEC60 0x9AD3
+0xEC61 0x9B1A
+0xEC62 0x53D4
+0xEC63 0x587E
+0xEC64 0x5919
+0xEC65 0x5B70
+0xEC66 0x5BBF
+0xEC67 0x6DD1
+0xEC68 0x6F5A
+0xEC69 0x719F
+0xEC6A 0x7421
+0xEC6B 0x74B9
+0xEC6C 0x8085
+0xEC6D 0x83FD
+0xEC6E 0x5DE1
+0xEC6F 0x5F87
+0xEC70 0x5FAA
+0xEC71 0x6042
+0xEC72 0x65EC
+0xEC73 0x6812
+0xEC74 0x696F
+0xEC75 0x6A53
+0xEC76 0x6B89
+0xEC77 0x6D35
+0xEC78 0x6DF3
+0xEC79 0x73E3
+0xEC7A 0x76FE
+0xEC7B 0x77AC
+0xEC7C 0x7B4D
+0xEC7D 0x7D14
+0xEC7E 0x8123
+0xEC91 0x821C
+0xEC92 0x8340
+0xEC93 0x84F4
+0xEC94 0x8563
+0xEC95 0x8A62
+0xEC96 0x8AC4
+0xEC97 0x9187
+0xEC98 0x931E
+0xEC99 0x9806
+0xEC9A 0x99B4
+0xEC9B 0x620C
+0xEC9C 0x8853
+0xEC9D 0x8FF0
+0xEC9E 0x9265
+0xEC9F 0x5D07
+0xECA0 0x5D27
+0xECA1 0x5D69
+0xECA2 0x745F
+0xECA3 0x819D
+0xECA4 0x8768
+0xECA5 0x6FD5
+0xECA6 0x62FE
+0xECA7 0x7FD2
+0xECA8 0x8936
+0xECA9 0x8972
+0xECAA 0x4E1E
+0xECAB 0x4E58
+0xECAC 0x50E7
+0xECAD 0x52DD
+0xECAE 0x5347
+0xECAF 0x627F
+0xECB0 0x6607
+0xECB1 0x7E69
+0xECB2 0x8805
+0xECB3 0x965E
+0xECB4 0x4F8D
+0xECB5 0x5319
+0xECB6 0x5636
+0xECB7 0x59CB
+0xECB8 0x5AA4
+0xECB9 0x5C38
+0xECBA 0x5C4E
+0xECBB 0x5C4D
+0xECBC 0x5E02
+0xECBD 0x5F11
+0xECBE 0x6043
+0xECBF 0x65BD
+0xECC0 0x662F
+0xECC1 0x6642
+0xECC2 0x67BE
+0xECC3 0x67F4
+0xECC4 0x731C
+0xECC5 0x77E2
+0xECC6 0x793A
+0xECC7 0x7FC5
+0xECC8 0x8494
+0xECC9 0x84CD
+0xECCA 0x8996
+0xECCB 0x8A66
+0xECCC 0x8A69
+0xECCD 0x8AE1
+0xECCE 0x8C55
+0xECCF 0x8C7A
+0xECD0 0x57F4
+0xECD1 0x5BD4
+0xECD2 0x5F0F
+0xECD3 0x606F
+0xECD4 0x62ED
+0xECD5 0x690D
+0xECD6 0x6B96
+0xECD7 0x6E5C
+0xECD8 0x7184
+0xECD9 0x7BD2
+0xECDA 0x8755
+0xECDB 0x8B58
+0xECDC 0x8EFE
+0xECDD 0x98DF
+0xECDE 0x98FE
+0xECDF 0x4F38
+0xECE0 0x4F81
+0xECE1 0x4FE1
+0xECE2 0x547B
+0xECE3 0x5A20
+0xECE4 0x5BB8
+0xECE5 0x613C
+0xECE6 0x65B0
+0xECE7 0x6668
+0xECE8 0x71FC
+0xECE9 0x7533
+0xECEA 0x795E
+0xECEB 0x7D33
+0xECEC 0x814E
+0xECED 0x81E3
+0xECEE 0x8398
+0xECEF 0x85AA
+0xECF0 0x85CE
+0xECF1 0x8703
+0xECF2 0x8A0A
+0xECF3 0x8EAB
+0xECF4 0x8F9B
+0xECF5 0xF971
+0xECF6 0x8FC5
+0xECF7 0x5931
+0xECF8 0x5BA4
+0xECF9 0x5BE6
+0xECFA 0x6089
+0xECFB 0x5BE9
+0xECFC 0x5C0B
+0xECFD 0x5FC3
+0xECFE 0x6C81
+0xED31 0xF972
+0xED32 0x6DF1
+0xED33 0x700B
+0xED34 0x751A
+0xED35 0x82AF
+0xED36 0x8AF6
+0xED37 0x4EC0
+0xED38 0x5341
+0xED39 0xF973
+0xED3A 0x96D9
+0xED3B 0x6C0F
+0xED3C 0x4E9E
+0xED3D 0x4FC4
+0xED3E 0x5152
+0xED3F 0x555E
+0xED40 0x5A25
+0xED41 0x5CE8
+0xED42 0x6211
+0xED43 0x7259
+0xED44 0x82BD
+0xED45 0x83AA
+0xED46 0x86FE
+0xED47 0x8859
+0xED48 0x8A1D
+0xED49 0x963F
+0xED4A 0x96C5
+0xED4B 0x9913
+0xED4C 0x9D09
+0xED4D 0x9D5D
+0xED4E 0x580A
+0xED4F 0x5CB3
+0xED50 0x5DBD
+0xED51 0x5E44
+0xED52 0x60E1
+0xED53 0x6115
+0xED54 0x63E1
+0xED55 0x6A02
+0xED56 0x6E25
+0xED57 0x9102
+0xED58 0x9354
+0xED59 0x984E
+0xED5A 0x9C10
+0xED5B 0x9F77
+0xED5C 0x5B89
+0xED5D 0x5CB8
+0xED5E 0x6309
+0xED5F 0x664F
+0xED60 0x6848
+0xED61 0x773C
+0xED62 0x96C1
+0xED63 0x978D
+0xED64 0x9854
+0xED65 0x9B9F
+0xED66 0x65A1
+0xED67 0x8B01
+0xED68 0x8ECB
+0xED69 0x95BC
+0xED6A 0x5535
+0xED6B 0x5CA9
+0xED6C 0x5DD6
+0xED6D 0x5EB5
+0xED6E 0x6697
+0xED6F 0x764C
+0xED70 0x83F4
+0xED71 0x95C7
+0xED72 0x58D3
+0xED73 0x62BC
+0xED74 0x72CE
+0xED75 0x9D28
+0xED76 0x4EF0
+0xED77 0x592E
+0xED78 0x600F
+0xED79 0x663B
+0xED7A 0x6B83
+0xED7B 0x79E7
+0xED7C 0x9D26
+0xED7D 0x5393
+0xED7E 0x54C0
+0xED91 0x57C3
+0xED92 0x5D16
+0xED93 0x611B
+0xED94 0x66D6
+0xED95 0x6DAF
+0xED96 0x788D
+0xED97 0x827E
+0xED98 0x9698
+0xED99 0x9744
+0xED9A 0x5384
+0xED9B 0x627C
+0xED9C 0x6396
+0xED9D 0x6DB2
+0xED9E 0x7E0A
+0xED9F 0x814B
+0xEDA0 0x984D
+0xEDA1 0x6AFB
+0xEDA2 0x7F4C
+0xEDA3 0x9DAF
+0xEDA4 0x9E1A
+0xEDA5 0x4E5F
+0xEDA6 0x503B
+0xEDA7 0x51B6
+0xEDA8 0x591C
+0xEDA9 0x60F9
+0xEDAA 0x63F6
+0xEDAB 0x6930
+0xEDAC 0x723A
+0xEDAD 0x8036
+0xEDAE 0xF974
+0xEDAF 0x91CE
+0xEDB0 0x5F31
+0xEDB1-0xEDB2 0xF975
+0xEDB3 0x7D04
+0xEDB4 0x82E5
+0xEDB5 0x846F
+0xEDB6 0x84BB
+0xEDB7 0x85E5
+0xEDB8 0x8E8D
+0xEDB9 0xF977
+0xEDBA 0x4F6F
+0xEDBB-0xEDBC 0xF978
+0xEDBD 0x58E4
+0xEDBE 0x5B43
+0xEDBF 0x6059
+0xEDC0 0x63DA
+0xEDC1 0x6518
+0xEDC2 0x656D
+0xEDC3 0x6698
+0xEDC4 0xF97A
+0xEDC5 0x694A
+0xEDC6 0x6A23
+0xEDC7 0x6D0B
+0xEDC8 0x7001
+0xEDC9 0x716C
+0xEDCA 0x75D2
+0xEDCB 0x760D
+0xEDCC 0x79B3
+0xEDCD 0x7A70
+0xEDCE 0xF97B
+0xEDCF 0x7F8A
+0xEDD0 0xF97C
+0xEDD1 0x8944
+0xEDD2 0xF97D
+0xEDD3 0x8B93
+0xEDD4 0x91C0
+0xEDD5 0x967D
+0xEDD6 0xF97E
+0xEDD7 0x990A
+0xEDD8 0x5704
+0xEDD9 0x5FA1
+0xEDDA 0x65BC
+0xEDDB 0x6F01
+0xEDDC 0x7600
+0xEDDD 0x79A6
+0xEDDE 0x8A9E
+0xEDDF 0x99AD
+0xEDE0 0x9B5A
+0xEDE1 0x9F6C
+0xEDE2 0x5104
+0xEDE3 0x61B6
+0xEDE4 0x6291
+0xEDE5 0x6A8D
+0xEDE6 0x81C6
+0xEDE7 0x5043
+0xEDE8 0x5830
+0xEDE9 0x5F66
+0xEDEA 0x7109
+0xEDEB 0x8A00
+0xEDEC 0x8AFA
+0xEDED 0x5B7C
+0xEDEE 0x8616
+0xEDEF 0x4FFA
+0xEDF0 0x513C
+0xEDF1 0x56B4
+0xEDF2 0x5944
+0xEDF3 0x63A9
+0xEDF4 0x6DF9
+0xEDF5 0x5DAA
+0xEDF6 0x696D
+0xEDF7 0x5186
+0xEDF8 0x4E88
+0xEDF9 0x4F59
+0xEDFA-0xEDFC 0xF97F
+0xEDFD 0x5982
+0xEDFE 0xF982
+0xEE31 0xF983
+0xEE32 0x6B5F
+0xEE33 0x6C5D
+0xEE34 0xF984
+0xEE35 0x74B5
+0xEE36 0x7916
+0xEE37 0xF985
+0xEE38 0x8207
+0xEE39 0x8245
+0xEE3A 0x8339
+0xEE3B 0x8F3F
+0xEE3C 0x8F5D
+0xEE3D 0xF986
+0xEE3E 0x9918
+0xEE3F-0xEE41 0xF987
+0xEE42 0x4EA6
+0xEE43 0xF98A
+0xEE44 0x57DF
+0xEE45 0x5F79
+0xEE46 0x6613
+0xEE47-0xEE48 0xF98B
+0xEE49 0x75AB
+0xEE4A 0x7E79
+0xEE4B 0x8B6F
+0xEE4C 0xF98D
+0xEE4D 0x9006
+0xEE4E 0x9A5B
+0xEE4F 0x56A5
+0xEE50 0x5827
+0xEE51 0x59F8
+0xEE52 0x5A1F
+0xEE53 0x5BB4
+0xEE54 0xF98E
+0xEE55 0x5EF6
+0xEE56-0xEE57 0xF98F
+0xEE58 0x6350
+0xEE59 0x633B
+0xEE5A 0xF991
+0xEE5B 0x693D
+0xEE5C 0x6C87
+0xEE5D 0x6CBF
+0xEE5E 0x6D8E
+0xEE5F 0x6D93
+0xEE60 0x6DF5
+0xEE61 0x6F14
+0xEE62 0xF992
+0xEE63 0x70DF
+0xEE64 0x7136
+0xEE65 0x7159
+0xEE66 0xF993
+0xEE67 0x71C3
+0xEE68 0x71D5
+0xEE69 0xF994
+0xEE6A 0x784F
+0xEE6B 0x786F
+0xEE6C 0xF995
+0xEE6D 0x7B75
+0xEE6E 0x7DE3
+0xEE6F 0xF996
+0xEE70 0x7E2F
+0xEE71 0xF997
+0xEE72 0x884D
+0xEE73 0x8EDF
+0xEE74-0xEE76 0xF998
+0xEE77 0x925B
+0xEE78 0xF99B
+0xEE79 0x9CF6
+0xEE7A-0xEE7C 0xF99C
+0xEE7D 0x6085
+0xEE7E 0x6D85
+0xEE91 0xF99F
+0xEE92 0x71B1
+0xEE93-0xEE94 0xF9A0
+0xEE95 0x95B1
+0xEE96 0x53AD
+0xEE97-0xEE99 0xF9A2
+0xEE9A 0x67D3
+0xEE9B 0xF9A5
+0xEE9C 0x708E
+0xEE9D 0x7130
+0xEE9E 0x7430
+0xEE9F 0x8276
+0xEEA0 0x82D2
+0xEEA1 0xF9A6
+0xEEA2 0x95BB
+0xEEA3 0x9AE5
+0xEEA4 0x9E7D
+0xEEA5 0x66C4
+0xEEA6 0xF9A7
+0xEEA7 0x71C1
+0xEEA8 0x8449
+0xEEA9-0xEEAA 0xF9A8
+0xEEAB 0x584B
+0xEEAC-0xEEAD 0xF9AA
+0xEEAE 0x5DB8
+0xEEAF 0x5F71
+0xEEB0 0xF9AC
+0xEEB1 0x6620
+0xEEB2 0x668E
+0xEEB3 0x6979
+0xEEB4 0x69AE
+0xEEB5 0x6C38
+0xEEB6 0x6CF3
+0xEEB7 0x6E36
+0xEEB8 0x6F41
+0xEEB9 0x6FDA
+0xEEBA 0x701B
+0xEEBB 0x702F
+0xEEBC 0x7150
+0xEEBD 0x71DF
+0xEEBE 0x7370
+0xEEBF 0xF9AD
+0xEEC0 0x745B
+0xEEC1 0xF9AE
+0xEEC2 0x74D4
+0xEEC3 0x76C8
+0xEEC4 0x7A4E
+0xEEC5 0x7E93
+0xEEC6-0xEEC7 0xF9AF
+0xEEC8 0x82F1
+0xEEC9 0x8A60
+0xEECA 0x8FCE
+0xEECB 0xF9B1
+0xEECC 0x9348
+0xEECD 0xF9B2
+0xEECE 0x9719
+0xEECF-0xEED0 0xF9B3
+0xEED1 0x4E42
+0xEED2 0x502A
+0xEED3 0xF9B5
+0xEED4 0x5208
+0xEED5 0x53E1
+0xEED6 0x66F3
+0xEED7 0x6C6D
+0xEED8 0x6FCA
+0xEED9 0x730A
+0xEEDA 0x777F
+0xEEDB 0x7A62
+0xEEDC 0x82AE
+0xEEDD 0x85DD
+0xEEDE 0x8602
+0xEEDF 0xF9B6
+0xEEE0 0x88D4
+0xEEE1 0x8A63
+0xEEE2 0x8B7D
+0xEEE3 0x8C6B
+0xEEE4 0xF9B7
+0xEEE5 0x92B3
+0xEEE6 0xF9B8
+0xEEE7 0x9713
+0xEEE8 0x9810
+0xEEE9 0x4E94
+0xEEEA 0x4F0D
+0xEEEB 0x4FC9
+0xEEEC 0x50B2
+0xEEED 0x5348
+0xEEEE 0x543E
+0xEEEF 0x5433
+0xEEF0 0x55DA
+0xEEF1 0x5862
+0xEEF2 0x58BA
+0xEEF3 0x5967
+0xEEF4 0x5A1B
+0xEEF5 0x5BE4
+0xEEF6 0x609F
+0xEEF7 0xF9B9
+0xEEF8 0x61CA
+0xEEF9 0x6556
+0xEEFA 0x65FF
+0xEEFB 0x6664
+0xEEFC 0x68A7
+0xEEFD 0x6C5A
+0xEEFE 0x6FB3
+0xEF31 0x70CF
+0xEF32 0x71AC
+0xEF33 0x7352
+0xEF34 0x7B7D
+0xEF35 0x8708
+0xEF36 0x8AA4
+0xEF37 0x9C32
+0xEF38 0x9F07
+0xEF39 0x5C4B
+0xEF3A 0x6C83
+0xEF3B 0x7344
+0xEF3C 0x7389
+0xEF3D 0x923A
+0xEF3E 0x6EAB
+0xEF3F 0x7465
+0xEF40 0x761F
+0xEF41 0x7A69
+0xEF42 0x7E15
+0xEF43 0x860A
+0xEF44 0x5140
+0xEF45 0x58C5
+0xEF46 0x64C1
+0xEF47 0x74EE
+0xEF48 0x7515
+0xEF49 0x7670
+0xEF4A 0x7FC1
+0xEF4B 0x9095
+0xEF4C 0x96CD
+0xEF4D 0x9954
+0xEF4E 0x6E26
+0xEF4F 0x74E6
+0xEF50-0xEF51 0x7AA9
+0xEF52 0x81E5
+0xEF53 0x86D9
+0xEF54 0x8778
+0xEF55 0x8A1B
+0xEF56 0x5A49
+0xEF57 0x5B8C
+0xEF58 0x5B9B
+0xEF59 0x68A1
+0xEF5A 0x6900
+0xEF5B 0x6D63
+0xEF5C 0x73A9
+0xEF5D 0x7413
+0xEF5E 0x742C
+0xEF5F 0x7897
+0xEF60 0x7DE9
+0xEF61 0x7FEB
+0xEF62 0x8118
+0xEF63 0x8155
+0xEF64 0x839E
+0xEF65 0x8C4C
+0xEF66 0x962E
+0xEF67 0x9811
+0xEF68 0x66F0
+0xEF69 0x5F80
+0xEF6A 0x65FA
+0xEF6B 0x6789
+0xEF6C 0x6C6A
+0xEF6D 0x738B
+0xEF6E 0x502D
+0xEF6F 0x5A03
+0xEF70 0x6B6A
+0xEF71 0x77EE
+0xEF72 0x5916
+0xEF73 0x5D6C
+0xEF74 0x5DCD
+0xEF75 0x7325
+0xEF76 0x754F
+0xEF77-0xEF78 0xF9BA
+0xEF79 0x50E5
+0xEF7A 0x51F9
+0xEF7B 0x582F
+0xEF7C 0x592D
+0xEF7D 0x5996
+0xEF7E 0x59DA
+0xEF91 0x5BE5
+0xEF92-0xEF93 0xF9BC
+0xEF94 0x5DA2
+0xEF95 0x62D7
+0xEF96 0x6416
+0xEF97 0x6493
+0xEF98 0x64FE
+0xEF99 0xF9BE
+0xEF9A 0x66DC
+0xEF9B 0xF9BF
+0xEF9C 0x6A48
+0xEF9D 0xF9C0
+0xEF9E 0x71FF
+0xEF9F 0x7464
+0xEFA0 0xF9C1
+0xEFA1 0x7A88
+0xEFA2 0x7AAF
+0xEFA3 0x7E47
+0xEFA4 0x7E5E
+0xEFA5 0x8000
+0xEFA6 0x8170
+0xEFA7 0xF9C2
+0xEFA8 0x87EF
+0xEFA9 0x8981
+0xEFAA 0x8B20
+0xEFAB 0x9059
+0xEFAC 0xF9C3
+0xEFAD 0x9080
+0xEFAE 0x9952
+0xEFAF 0x617E
+0xEFB0 0x6B32
+0xEFB1 0x6D74
+0xEFB2 0x7E1F
+0xEFB3 0x8925
+0xEFB4 0x8FB1
+0xEFB5 0x4FD1
+0xEFB6 0x50AD
+0xEFB7 0x5197
+0xEFB8 0x52C7
+0xEFB9 0x57C7
+0xEFBA 0x5889
+0xEFBB 0x5BB9
+0xEFBC 0x5EB8
+0xEFBD 0x6142
+0xEFBE 0x6995
+0xEFBF 0x6D8C
+0xEFC0 0x6E67
+0xEFC1 0x6EB6
+0xEFC2 0x7194
+0xEFC3 0x7462
+0xEFC4 0x7528
+0xEFC5 0x752C
+0xEFC6 0x8073
+0xEFC7 0x8338
+0xEFC8 0x84C9
+0xEFC9 0x8E0A
+0xEFCA 0x9394
+0xEFCB 0x93DE
+0xEFCC 0xF9C4
+0xEFCD 0x4E8E
+0xEFCE 0x4F51
+0xEFCF 0x5076
+0xEFD0 0x512A
+0xEFD1 0x53C8
+0xEFD2 0x53CB
+0xEFD3 0x53F3
+0xEFD4 0x5B87
+0xEFD5 0x5BD3
+0xEFD6 0x5C24
+0xEFD7 0x611A
+0xEFD8 0x6182
+0xEFD9 0x65F4
+0xEFDA 0x725B
+0xEFDB 0x7397
+0xEFDC 0x7440
+0xEFDD 0x76C2
+0xEFDE 0x7950
+0xEFDF 0x7991
+0xEFE0 0x79B9
+0xEFE1 0x7D06
+0xEFE2 0x7FBD
+0xEFE3 0x828B
+0xEFE4 0x85D5
+0xEFE5 0x865E
+0xEFE6 0x8FC2
+0xEFE7 0x9047
+0xEFE8 0x90F5
+0xEFE9 0x91EA
+0xEFEA 0x9685
+0xEFEB-0xEFEC 0x96E8
+0xEFED 0x52D6
+0xEFEE 0x5F67
+0xEFEF 0x65ED
+0xEFF0 0x6631
+0xEFF1 0x682F
+0xEFF2 0x715C
+0xEFF3 0x7A36
+0xEFF4 0x90C1
+0xEFF5 0x980A
+0xEFF6 0x4E91
+0xEFF7 0xF9C5
+0xEFF8 0x6A52
+0xEFF9 0x6B9E
+0xEFFA 0x6F90
+0xEFFB 0x7189
+0xEFFC 0x8018
+0xEFFD 0x82B8
+0xEFFE 0x8553
+0xF031 0x904B
+0xF032 0x9695
+0xF033 0x96F2
+0xF034 0x97FB
+0xF035 0x851A
+0xF036 0x9B31
+0xF037 0x4E90
+0xF038 0x718A
+0xF039 0x96C4
+0xF03A 0x5143
+0xF03B 0x539F
+0xF03C 0x54E1
+0xF03D 0x5713
+0xF03E 0x5712
+0xF03F 0x57A3
+0xF040 0x5A9B
+0xF041 0x5AC4
+0xF042 0x5BC3
+0xF043 0x6028
+0xF044 0x613F
+0xF045 0x63F4
+0xF046 0x6C85
+0xF047 0x6D39
+0xF048 0x6E72
+0xF049 0x6E90
+0xF04A 0x7230
+0xF04B 0x733F
+0xF04C 0x7457
+0xF04D 0x82D1
+0xF04E 0x8881
+0xF04F 0x8F45
+0xF050 0x9060
+0xF051 0xF9C6
+0xF052 0x9662
+0xF053 0x9858
+0xF054 0x9D1B
+0xF055 0x6708
+0xF056 0x8D8A
+0xF057 0x925E
+0xF058 0x4F4D
+0xF059 0x5049
+0xF05A 0x50DE
+0xF05B 0x5371
+0xF05C 0x570D
+0xF05D 0x59D4
+0xF05E 0x5A01
+0xF05F 0x5C09
+0xF060 0x6170
+0xF061 0x6690
+0xF062 0x6E2D
+0xF063 0x7232
+0xF064 0x744B
+0xF065 0x7DEF
+0xF066 0x80C3
+0xF067 0x840E
+0xF068 0x8466
+0xF069 0x853F
+0xF06A 0x875F
+0xF06B 0x885B
+0xF06C 0x8918
+0xF06D 0x8B02
+0xF06E 0x9055
+0xF06F 0x97CB
+0xF070 0x9B4F
+0xF071 0x4E73
+0xF072 0x4F91
+0xF073 0x5112
+0xF074 0x516A
+0xF075 0xF9C7
+0xF076 0x552F
+0xF077 0x55A9
+0xF078 0x5B7A
+0xF079 0x5BA5
+0xF07A-0xF07B 0x5E7C
+0xF07C 0x5EBE
+0xF07D 0x60A0
+0xF07E 0x60DF
+0xF091-0xF092 0x6108
+0xF093 0x63C4
+0xF094 0x6538
+0xF095 0x6709
+0xF096 0xF9C8
+0xF097 0x67D4
+0xF098 0x67DA
+0xF099 0xF9C9
+0xF09A-0xF09B 0x6961
+0xF09C 0x6CB9
+0xF09D 0x6D27
+0xF09E 0xF9CA
+0xF09F 0x6E38
+0xF0A0 0xF9CB
+0xF0A1 0x6FE1
+0xF0A2-0xF0A3 0x7336
+0xF0A4 0xF9CC
+0xF0A5 0x745C
+0xF0A6 0x7531
+0xF0A7 0xF9CD
+0xF0A8 0x7652
+0xF0A9-0xF0AA 0xF9CE
+0xF0AB 0x7DAD
+0xF0AC 0x81FE
+0xF0AD 0x8438
+0xF0AE 0x88D5
+0xF0AF 0x8A98
+0xF0B0 0x8ADB
+0xF0B1 0x8AED
+0xF0B2 0x8E30
+0xF0B3 0x8E42
+0xF0B4 0x904A
+0xF0B5 0x903E
+0xF0B6 0x907A
+0xF0B7 0x9149
+0xF0B8 0x91C9
+0xF0B9 0x936E
+0xF0BA-0xF0BB 0xF9D0
+0xF0BC 0x5809
+0xF0BD 0xF9D2
+0xF0BE 0x6BD3
+0xF0BF 0x8089
+0xF0C0 0x80B2
+0xF0C1-0xF0C2 0xF9D3
+0xF0C3 0x5141
+0xF0C4 0x596B
+0xF0C5 0x5C39
+0xF0C6-0xF0C7 0xF9D5
+0xF0C8 0x6F64
+0xF0C9 0x73A7
+0xF0CA 0x80E4
+0xF0CB 0x8D07
+0xF0CC 0xF9D7
+0xF0CD 0x9217
+0xF0CE 0x958F
+0xF0CF-0xF0D2 0xF9D8
+0xF0D3 0x807F
+0xF0D4 0x620E
+0xF0D5 0x701C
+0xF0D6 0x7D68
+0xF0D7 0x878D
+0xF0D8 0xF9DC
+0xF0D9 0x57A0
+0xF0DA 0x6069
+0xF0DB 0x6147
+0xF0DC 0x6BB7
+0xF0DD 0x8ABE
+0xF0DE 0x9280
+0xF0DF 0x96B1
+0xF0E0 0x4E59
+0xF0E1 0x541F
+0xF0E2 0x6DEB
+0xF0E3 0x852D
+0xF0E4 0x9670
+0xF0E5 0x97F3
+0xF0E6 0x98EE
+0xF0E7 0x63D6
+0xF0E8 0x6CE3
+0xF0E9 0x9091
+0xF0EA 0x51DD
+0xF0EB 0x61C9
+0xF0EC 0x81BA
+0xF0ED 0x9DF9
+0xF0EE 0x4F9D
+0xF0EF 0x501A
+0xF0F0 0x5100
+0xF0F1 0x5B9C
+0xF0F2 0x610F
+0xF0F3 0x61FF
+0xF0F4 0x64EC
+0xF0F5 0x6905
+0xF0F6 0x6BC5
+0xF0F7 0x7591
+0xF0F8 0x77E3
+0xF0F9 0x7FA9
+0xF0FA 0x8264
+0xF0FB 0x858F
+0xF0FC 0x87FB
+0xF0FD 0x8863
+0xF0FE 0x8ABC
+0xF131 0x8B70
+0xF132 0x91AB
+0xF133 0x4E8C
+0xF134 0x4EE5
+0xF135 0x4F0A
+0xF136-0xF137 0xF9DD
+0xF138 0x5937
+0xF139 0x59E8
+0xF13A 0xF9DF
+0xF13B 0x5DF2
+0xF13C 0x5F1B
+0xF13D 0x5F5B
+0xF13E 0x6021
+0xF13F-0xF142 0xF9E0
+0xF143 0x723E
+0xF144 0x73E5
+0xF145 0xF9E4
+0xF146 0x7570
+0xF147 0x75CD
+0xF148 0xF9E5
+0xF149 0x79FB
+0xF14A 0xF9E6
+0xF14B 0x800C
+0xF14C 0x8033
+0xF14D 0x8084
+0xF14E 0x82E1
+0xF14F 0x8351
+0xF150-0xF151 0xF9E7
+0xF152 0x8CBD
+0xF153 0x8CB3
+0xF154 0x9087
+0xF155-0xF156 0xF9E9
+0xF157 0x98F4
+0xF158 0x990C
+0xF159-0xF15A 0xF9EB
+0xF15B 0x7037
+0xF15C 0x76CA
+0xF15D 0x7FCA
+0xF15E 0x7FCC
+0xF15F 0x7FFC
+0xF160 0x8B1A
+0xF161 0x4EBA
+0xF162 0x4EC1
+0xF163 0x5203
+0xF164 0x5370
+0xF165 0xF9ED
+0xF166 0x54BD
+0xF167 0x56E0
+0xF168 0x59FB
+0xF169 0x5BC5
+0xF16A 0x5F15
+0xF16B 0x5FCD
+0xF16C 0x6E6E
+0xF16D-0xF16E 0xF9EE
+0xF16F 0x7D6A
+0xF170 0x8335
+0xF171 0xF9F0
+0xF172 0x8693
+0xF173 0x8A8D
+0xF174 0xF9F1
+0xF175 0x976D
+0xF176 0x9777
+0xF177-0xF178 0xF9F2
+0xF179 0x4E00
+0xF17A 0x4F5A
+0xF17B 0x4F7E
+0xF17C 0x58F9
+0xF17D 0x65E5
+0xF17E 0x6EA2
+0xF191 0x9038
+0xF192 0x93B0
+0xF193 0x99B9
+0xF194 0x4EFB
+0xF195 0x58EC
+0xF196 0x598A
+0xF197 0x59D9
+0xF198 0x6041
+0xF199-0xF19A 0xF9F4
+0xF19B 0x7A14
+0xF19C 0xF9F6
+0xF19D 0x834F
+0xF19E 0x8CC3
+0xF19F 0x5165
+0xF1A0 0x5344
+0xF1A1-0xF1A3 0xF9F7
+0xF1A4 0x4ECD
+0xF1A5 0x5269
+0xF1A6 0x5B55
+0xF1A7 0x82BF
+0xF1A8 0x4ED4
+0xF1A9 0x523A
+0xF1AA 0x54A8
+0xF1AB 0x59C9
+0xF1AC 0x59FF
+0xF1AD 0x5B50
+0xF1AE 0x5B57
+0xF1AF 0x5B5C
+0xF1B0 0x6063
+0xF1B1 0x6148
+0xF1B2 0x6ECB
+0xF1B3 0x7099
+0xF1B4 0x716E
+0xF1B5 0x7386
+0xF1B6 0x74F7
+0xF1B7 0x75B5
+0xF1B8 0x78C1
+0xF1B9 0x7D2B
+0xF1BA 0x8005
+0xF1BB 0x81EA
+0xF1BC 0x8328
+0xF1BD 0x8517
+0xF1BE 0x85C9
+0xF1BF 0x8AEE
+0xF1C0 0x8CC7
+0xF1C1 0x96CC
+0xF1C2 0x4F5C
+0xF1C3 0x52FA
+0xF1C4 0x56BC
+0xF1C5 0x65AB
+0xF1C6 0x6628
+0xF1C7 0x707C
+0xF1C8 0x70B8
+0xF1C9 0x7235
+0xF1CA 0x7DBD
+0xF1CB 0x828D
+0xF1CC 0x914C
+0xF1CD 0x96C0
+0xF1CE 0x9D72
+0xF1CF 0x5B71
+0xF1D0 0x68E7
+0xF1D1 0x6B98
+0xF1D2 0x6F7A
+0xF1D3 0x76DE
+0xF1D4 0x5C91
+0xF1D5 0x66AB
+0xF1D6 0x6F5B
+0xF1D7 0x7BB4
+0xF1D8 0x7C2A
+0xF1D9 0x8836
+0xF1DA 0x96DC
+0xF1DB 0x4E08
+0xF1DC 0x4ED7
+0xF1DD 0x5320
+0xF1DE 0x5834
+0xF1DF 0x58BB
+0xF1E0 0x58EF
+0xF1E1 0x596C
+0xF1E2 0x5C07
+0xF1E3 0x5E33
+0xF1E4 0x5E84
+0xF1E5 0x5F35
+0xF1E6 0x638C
+0xF1E7 0x66B2
+0xF1E8 0x6756
+0xF1E9 0x6A1F
+0xF1EA 0x6AA3
+0xF1EB 0x6B0C
+0xF1EC 0x6F3F
+0xF1ED 0x7246
+0xF1EE 0xF9FA
+0xF1EF 0x7350
+0xF1F0 0x748B
+0xF1F1 0x7AE0
+0xF1F2 0x7CA7
+0xF1F3 0x8178
+0xF1F4 0x81DF
+0xF1F5 0x81E7
+0xF1F6 0x838A
+0xF1F7 0x846C
+0xF1F8 0x8523
+0xF1F9 0x8594
+0xF1FA 0x85CF
+0xF1FB 0x88DD
+0xF1FC 0x8D13
+0xF1FD 0x91AC
+0xF1FE 0x9577
+0xF231 0x969C
+0xF232 0x518D
+0xF233 0x54C9
+0xF234 0x5728
+0xF235 0x5BB0
+0xF236 0x624D
+0xF237 0x6750
+0xF238 0x683D
+0xF239 0x6893
+0xF23A 0x6E3D
+0xF23B 0x6ED3
+0xF23C 0x707D
+0xF23D 0x7E21
+0xF23E 0x88C1
+0xF23F 0x8CA1
+0xF240 0x8F09
+0xF241 0x9F4B
+0xF242 0x9F4E
+0xF243 0x722D
+0xF244 0x7B8F
+0xF245 0x8ACD
+0xF246 0x931A
+0xF247 0x4F47
+0xF248 0x4F4E
+0xF249 0x5132
+0xF24A 0x5480
+0xF24B 0x59D0
+0xF24C 0x5E95
+0xF24D 0x62B5
+0xF24E 0x6775
+0xF24F 0x696E
+0xF250 0x6A17
+0xF251 0x6CAE
+0xF252 0x6E1A
+0xF253 0x72D9
+0xF254 0x732A
+0xF255 0x75BD
+0xF256 0x7BB8
+0xF257 0x7D35
+0xF258 0x82E7
+0xF259 0x83F9
+0xF25A 0x8457
+0xF25B 0x85F7
+0xF25C 0x8A5B
+0xF25D 0x8CAF
+0xF25E 0x8E87
+0xF25F 0x9019
+0xF260 0x90B8
+0xF261 0x96CE
+0xF262 0x9F5F
+0xF263 0x52E3
+0xF264 0x540A
+0xF265 0x5AE1
+0xF266 0x5BC2
+0xF267 0x6458
+0xF268 0x6575
+0xF269 0x6EF4
+0xF26A 0x72C4
+0xF26B 0xF9FB
+0xF26C 0x7684
+0xF26D 0x7A4D
+0xF26E 0x7B1B
+0xF26F 0x7C4D
+0xF270 0x7E3E
+0xF271 0x7FDF
+0xF272 0x837B
+0xF273 0x8B2B
+0xF274 0x8CCA
+0xF275 0x8D64
+0xF276 0x8DE1
+0xF277 0x8E5F
+0xF278 0x8FEA
+0xF279 0x8FF9
+0xF27A 0x9069
+0xF27B 0x93D1
+0xF27C 0x4F43
+0xF27D 0x4F7A
+0xF27E 0x50B3
+0xF291 0x5168
+0xF292 0x5178
+0xF293 0x524D
+0xF294 0x526A
+0xF295 0x5861
+0xF296 0x587C
+0xF297 0x5960
+0xF298 0x5C08
+0xF299 0x5C55
+0xF29A 0x5EDB
+0xF29B 0x609B
+0xF29C 0x6230
+0xF29D 0x6813
+0xF29E 0x6BBF
+0xF29F 0x6C08
+0xF2A0 0x6FB1
+0xF2A1 0x714E
+0xF2A2 0x7420
+0xF2A3 0x7530
+0xF2A4 0x7538
+0xF2A5 0x7551
+0xF2A6 0x7672
+0xF2A7 0x7B4C
+0xF2A8 0x7B8B
+0xF2A9 0x7BAD
+0xF2AA 0x7BC6
+0xF2AB 0x7E8F
+0xF2AC 0x8A6E
+0xF2AD 0x8F3E
+0xF2AE 0x8F49
+0xF2AF 0x923F
+0xF2B0 0x9293
+0xF2B1 0x9322
+0xF2B2 0x942B
+0xF2B3 0x96FB
+0xF2B4 0x985A
+0xF2B5 0x986B
+0xF2B6 0x991E
+0xF2B7 0x5207
+0xF2B8 0x622A
+0xF2B9 0x6298
+0xF2BA 0x6D59
+0xF2BB 0x7664
+0xF2BC 0x7ACA
+0xF2BD 0x7BC0
+0xF2BE 0x7D76
+0xF2BF 0x5360
+0xF2C0 0x5CBE
+0xF2C1 0x5E97
+0xF2C2 0x6F38
+0xF2C3 0x70B9
+0xF2C4 0x7C98
+0xF2C5 0x9711
+0xF2C6 0x9B8E
+0xF2C7 0x9EDE
+0xF2C8 0x63A5
+0xF2C9 0x647A
+0xF2CA 0x8776
+0xF2CB 0x4E01
+0xF2CC 0x4E95
+0xF2CD 0x4EAD
+0xF2CE 0x505C
+0xF2CF 0x5075
+0xF2D0 0x5448
+0xF2D1 0x59C3
+0xF2D2 0x5B9A
+0xF2D3 0x5E40
+0xF2D4 0x5EAD
+0xF2D5 0x5EF7
+0xF2D6 0x5F81
+0xF2D7 0x60C5
+0xF2D8 0x633A
+0xF2D9 0x653F
+0xF2DA 0x6574
+0xF2DB 0x65CC
+0xF2DC 0x6676
+0xF2DD 0x6678
+0xF2DE 0x67FE
+0xF2DF 0x6968
+0xF2E0 0x6A89
+0xF2E1 0x6B63
+0xF2E2 0x6C40
+0xF2E3 0x6DC0
+0xF2E4 0x6DE8
+0xF2E5 0x6E1F
+0xF2E6 0x6E5E
+0xF2E7 0x701E
+0xF2E8 0x70A1
+0xF2E9 0x738E
+0xF2EA 0x73FD
+0xF2EB 0x753A
+0xF2EC 0x775B
+0xF2ED 0x7887
+0xF2EE 0x798E
+0xF2EF 0x7A0B
+0xF2F0 0x7A7D
+0xF2F1 0x7CBE
+0xF2F2 0x7D8E
+0xF2F3 0x8247
+0xF2F4 0x8A02
+0xF2F5 0x8AEA
+0xF2F6 0x8C9E
+0xF2F7 0x912D
+0xF2F8 0x914A
+0xF2F9 0x91D8
+0xF2FA 0x9266
+0xF2FB 0x92CC
+0xF2FC 0x9320
+0xF2FD 0x9706
+0xF2FE 0x9756
+0xF331 0x975C
+0xF332 0x9802
+0xF333 0x9F0E
+0xF334 0x5236
+0xF335 0x5291
+0xF336 0x557C
+0xF337 0x5824
+0xF338 0x5E1D
+0xF339 0x5F1F
+0xF33A 0x608C
+0xF33B 0x63D0
+0xF33C 0x68AF
+0xF33D 0x6FDF
+0xF33E 0x796D
+0xF33F 0x7B2C
+0xF340 0x81CD
+0xF341 0x85BA
+0xF342 0x88FD
+0xF343 0x8AF8
+0xF344 0x8E44
+0xF345 0x918D
+0xF346 0x9664
+0xF347 0x969B
+0xF348 0x973D
+0xF349 0x984C
+0xF34A 0x9F4A
+0xF34B 0x4FCE
+0xF34C 0x5146
+0xF34D 0x51CB
+0xF34E 0x52A9
+0xF34F 0x5632
+0xF350 0x5F14
+0xF351 0x5F6B
+0xF352 0x63AA
+0xF353 0x64CD
+0xF354 0x65E9
+0xF355 0x6641
+0xF356 0x66FA
+0xF357 0x66F9
+0xF358 0x671D
+0xF359 0x689D
+0xF35A 0x68D7
+0xF35B 0x69FD
+0xF35C 0x6F15
+0xF35D 0x6F6E
+0xF35E 0x7167
+0xF35F 0x71E5
+0xF360 0x722A
+0xF361 0x74AA
+0xF362 0x773A
+0xF363 0x7956
+0xF364 0x795A
+0xF365 0x79DF
+0xF366 0x7A20
+0xF367 0x7A95
+0xF368 0x7C97
+0xF369 0x7CDF
+0xF36A 0x7D44
+0xF36B 0x7E70
+0xF36C 0x8087
+0xF36D 0x85FB
+0xF36E 0x86A4
+0xF36F 0x8A54
+0xF370 0x8ABF
+0xF371 0x8D99
+0xF372 0x8E81
+0xF373 0x9020
+0xF374 0x906D
+0xF375 0x91E3
+0xF376 0x963B
+0xF377 0x96D5
+0xF378 0x9CE5
+0xF379 0x65CF
+0xF37A 0x7C07
+0xF37B 0x8DB3
+0xF37C 0x93C3
+0xF37D 0x5B58
+0xF37E 0x5C0A
+0xF391 0x5352
+0xF392 0x62D9
+0xF393 0x731D
+0xF394 0x5027
+0xF395 0x5B97
+0xF396 0x5F9E
+0xF397 0x60B0
+0xF398 0x616B
+0xF399 0x68D5
+0xF39A 0x6DD9
+0xF39B 0x742E
+0xF39C 0x7A2E
+0xF39D 0x7D42
+0xF39E 0x7D9C
+0xF39F 0x7E31
+0xF3A0 0x816B
+0xF3A1 0x8E2A
+0xF3A2 0x8E35
+0xF3A3 0x937E
+0xF3A4 0x9418
+0xF3A5 0x4F50
+0xF3A6 0x5750
+0xF3A7 0x5DE6
+0xF3A8 0x5EA7
+0xF3A9 0x632B
+0xF3AA 0x7F6A
+0xF3AB 0x4E3B
+0xF3AC 0x4F4F
+0xF3AD 0x4F8F
+0xF3AE 0x505A
+0xF3AF 0x59DD
+0xF3B0 0x80C4
+0xF3B1 0x546A
+0xF3B2 0x5468
+0xF3B3 0x55FE
+0xF3B4 0x594F
+0xF3B5 0x5B99
+0xF3B6 0x5DDE
+0xF3B7 0x5EDA
+0xF3B8 0x665D
+0xF3B9 0x6731
+0xF3BA 0x67F1
+0xF3BB 0x682A
+0xF3BC 0x6CE8
+0xF3BD 0x6D32
+0xF3BE 0x6E4A
+0xF3BF 0x6F8D
+0xF3C0 0x70B7
+0xF3C1 0x73E0
+0xF3C2 0x7587
+0xF3C3 0x7C4C
+0xF3C4 0x7D02
+0xF3C5 0x7D2C
+0xF3C6 0x7DA2
+0xF3C7 0x821F
+0xF3C8 0x86DB
+0xF3C9 0x8A3B
+0xF3CA 0x8A85
+0xF3CB 0x8D70
+0xF3CC 0x8E8A
+0xF3CD 0x8F33
+0xF3CE 0x9031
+0xF3CF 0x914E
+0xF3D0 0x9152
+0xF3D1 0x9444
+0xF3D2 0x99D0
+0xF3D3 0x7AF9
+0xF3D4 0x7CA5
+0xF3D5 0x4FCA
+0xF3D6 0x5101
+0xF3D7 0x51C6
+0xF3D8 0x57C8
+0xF3D9 0x5BEF
+0xF3DA 0x5CFB
+0xF3DB 0x6659
+0xF3DC 0x6A3D
+0xF3DD 0x6D5A
+0xF3DE 0x6E96
+0xF3DF 0x6FEC
+0xF3E0 0x710C
+0xF3E1 0x756F
+0xF3E2 0x7AE3
+0xF3E3 0x8822
+0xF3E4 0x9021
+0xF3E5 0x9075
+0xF3E6 0x96CB
+0xF3E7 0x99FF
+0xF3E8 0x8301
+0xF3E9 0x4E2D
+0xF3EA 0x4EF2
+0xF3EB 0x8846
+0xF3EC 0x91CD
+0xF3ED 0x537D
+0xF3EE 0x6ADB
+0xF3EF 0x696B
+0xF3F0 0x6C41
+0xF3F1 0x847A
+0xF3F2 0x589E
+0xF3F3 0x618E
+0xF3F4 0x66FE
+0xF3F5 0x62EF
+0xF3F6 0x70DD
+0xF3F7 0x7511
+0xF3F8 0x75C7
+0xF3F9 0x7E52
+0xF3FA 0x84B8
+0xF3FB 0x8B49
+0xF3FC 0x8D08
+0xF3FD 0x4E4B
+0xF3FE 0x53EA
+0xF431 0x54AB
+0xF432 0x5730
+0xF433 0x5740
+0xF434 0x5FD7
+0xF435 0x6301
+0xF436 0x6307
+0xF437 0x646F
+0xF438 0x652F
+0xF439 0x65E8
+0xF43A 0x667A
+0xF43B 0x679D
+0xF43C 0x67B3
+0xF43D 0x6B62
+0xF43E 0x6C60
+0xF43F 0x6C9A
+0xF440 0x6F2C
+0xF441 0x77E5
+0xF442 0x7825
+0xF443 0x7949
+0xF444 0x7957
+0xF445 0x7D19
+0xF446 0x80A2
+0xF447 0x8102
+0xF448 0x81F3
+0xF449 0x829D
+0xF44A 0x82B7
+0xF44B 0x8718
+0xF44C 0x8A8C
+0xF44D 0xF9FC
+0xF44E 0x8D04
+0xF44F 0x8DBE
+0xF450 0x9072
+0xF451 0x76F4
+0xF452 0x7A19
+0xF453 0x7A37
+0xF454 0x7E54
+0xF455 0x8077
+0xF456 0x5507
+0xF457 0x55D4
+0xF458 0x5875
+0xF459 0x632F
+0xF45A 0x6422
+0xF45B 0x6649
+0xF45C 0x664B
+0xF45D 0x686D
+0xF45E 0x699B
+0xF45F 0x6B84
+0xF460 0x6D25
+0xF461 0x6EB1
+0xF462 0x73CD
+0xF463 0x7468
+0xF464 0x74A1
+0xF465 0x755B
+0xF466 0x75B9
+0xF467 0x76E1
+0xF468 0x771E
+0xF469 0x778B
+0xF46A 0x79E6
+0xF46B 0x7E09
+0xF46C 0x7E1D
+0xF46D 0x81FB
+0xF46E 0x852F
+0xF46F 0x8897
+0xF470 0x8A3A
+0xF471 0x8CD1
+0xF472 0x8EEB
+0xF473 0x8FB0
+0xF474 0x9032
+0xF475 0x93AD
+0xF476 0x9663
+0xF477 0x9673
+0xF478 0x9707
+0xF479 0x4F84
+0xF47A 0x53F1
+0xF47B 0x59EA
+0xF47C 0x5AC9
+0xF47D 0x5E19
+0xF47E 0x684E
+0xF491 0x74C6
+0xF492 0x75BE
+0xF493 0x79E9
+0xF494 0x7A92
+0xF495 0x81A3
+0xF496 0x86ED
+0xF497 0x8CEA
+0xF498 0x8DCC
+0xF499 0x8FED
+0xF49A 0x659F
+0xF49B 0x6715
+0xF49C 0xF9FD
+0xF49D 0x57F7
+0xF49E 0x6F57
+0xF49F 0x7DDD
+0xF4A0 0x8F2F
+0xF4A1 0x93F6
+0xF4A2 0x96C6
+0xF4A3 0x5FB5
+0xF4A4 0x61F2
+0xF4A5 0x6F84
+0xF4A6 0x4E14
+0xF4A7 0x4F98
+0xF4A8 0x501F
+0xF4A9 0x53C9
+0xF4AA 0x55DF
+0xF4AB 0x5D6F
+0xF4AC 0x5DEE
+0xF4AD 0x6B21
+0xF4AE 0x6B64
+0xF4AF 0x78CB
+0xF4B0 0x7B9A
+0xF4B1 0xF9FE
+0xF4B2 0x8E49
+0xF4B3 0x8ECA
+0xF4B4 0x906E
+0xF4B5 0x6349
+0xF4B6 0x643E
+0xF4B7 0x7740
+0xF4B8 0x7A84
+0xF4B9 0x932F
+0xF4BA 0x947F
+0xF4BB 0x9F6A
+0xF4BC 0x64B0
+0xF4BD 0x6FAF
+0xF4BE 0x71E6
+0xF4BF 0x74A8
+0xF4C0 0x74DA
+0xF4C1 0x7AC4
+0xF4C2 0x7C12
+0xF4C3 0x7E82
+0xF4C4 0x7CB2
+0xF4C5 0x7E98
+0xF4C6 0x8B9A
+0xF4C7 0x8D0A
+0xF4C8 0x947D
+0xF4C9 0x9910
+0xF4CA 0x994C
+0xF4CB 0x5239
+0xF4CC 0x5BDF
+0xF4CD 0x64E6
+0xF4CE 0x672D
+0xF4CF 0x7D2E
+0xF4D0 0x50ED
+0xF4D1 0x53C3
+0xF4D2 0x5879
+0xF4D3-0xF4D4 0x6158
+0xF4D5 0x61FA
+0xF4D6 0x65AC
+0xF4D7 0x7AD9
+0xF4D8 0x8B92
+0xF4D9 0x8B96
+0xF4DA 0x5009
+0xF4DB 0x5021
+0xF4DC 0x5275
+0xF4DD 0x5531
+0xF4DE 0x5A3C
+0xF4DF 0x5EE0
+0xF4E0 0x5F70
+0xF4E1 0x6134
+0xF4E2 0x655E
+0xF4E3 0x660C
+0xF4E4 0x6636
+0xF4E5 0x66A2
+0xF4E6 0x69CD
+0xF4E7 0x6EC4
+0xF4E8 0x6F32
+0xF4E9 0x7316
+0xF4EA 0x7621
+0xF4EB 0x7A93
+0xF4EC 0x8139
+0xF4ED 0x8259
+0xF4EE 0x83D6
+0xF4EF 0x84BC
+0xF4F0 0x50B5
+0xF4F1 0x57F0
+0xF4F2 0x5BC0
+0xF4F3 0x5BE8
+0xF4F4 0x5F69
+0xF4F5 0x63A1
+0xF4F6 0x7826
+0xF4F7 0x7DB5
+0xF4F8 0x83DC
+0xF4F9 0x8521
+0xF4FA 0x91C7
+0xF4FB 0x91F5
+0xF4FC 0x518A
+0xF4FD 0x67F5
+0xF4FE 0x7B56
+0xF531 0x8CAC
+0xF532 0x51C4
+0xF533 0x59BB
+0xF534 0x60BD
+0xF535 0x8655
+0xF536 0x501C
+0xF537 0xF9FF
+0xF538 0x5254
+0xF539 0x5C3A
+0xF53A 0x617D
+0xF53B 0x621A
+0xF53C 0x62D3
+0xF53D 0x64F2
+0xF53E 0x65A5
+0xF53F 0x6ECC
+0xF540 0x7620
+0xF541 0x810A
+0xF542 0x8E60
+0xF543 0x965F
+0xF544 0x96BB
+0xF545 0x4EDF
+0xF546 0x5343
+0xF547 0x5598
+0xF548 0x5929
+0xF549 0x5DDD
+0xF54A 0x64C5
+0xF54B 0x6CC9
+0xF54C 0x6DFA
+0xF54D 0x7394
+0xF54E 0x7A7F
+0xF54F 0x821B
+0xF550 0x85A6
+0xF551 0x8CE4
+0xF552 0x8E10
+0xF553 0x9077
+0xF554 0x91E7
+0xF555 0x95E1
+0xF556 0x9621
+0xF557 0x97C6
+0xF558 0x51F8
+0xF559 0x54F2
+0xF55A 0x5586
+0xF55B 0x5FB9
+0xF55C 0x64A4
+0xF55D 0x6F88
+0xF55E 0x7DB4
+0xF55F 0x8F1F
+0xF560 0x8F4D
+0xF561 0x9435
+0xF562 0x50C9
+0xF563 0x5C16
+0xF564 0x6CBE
+0xF565 0x6DFB
+0xF566 0x751B
+0xF567 0x77BB
+0xF568 0x7C3D
+0xF569 0x7C64
+0xF56A 0x8A79
+0xF56B 0x8AC2
+0xF56C 0x581E
+0xF56D 0x59BE
+0xF56E 0x5E16
+0xF56F 0x6377
+0xF570 0x7252
+0xF571 0x758A
+0xF572 0x776B
+0xF573 0x8ADC
+0xF574 0x8CBC
+0xF575 0x8F12
+0xF576 0x5EF3
+0xF577 0x6674
+0xF578 0x6DF8
+0xF579 0x807D
+0xF57A 0x83C1
+0xF57B 0x8ACB
+0xF57C 0x9751
+0xF57D 0x9BD6
+0xF57E 0xFA00
+0xF591 0x5243
+0xF592 0x66FF
+0xF593 0x6D95
+0xF594 0x6EEF
+0xF595 0x7DE0
+0xF596 0x8AE6
+0xF597 0x902E
+0xF598 0x905E
+0xF599 0x9AD4
+0xF59A 0x521D
+0xF59B 0x527F
+0xF59C 0x54E8
+0xF59D 0x6194
+0xF59E 0x6284
+0xF59F 0x62DB
+0xF5A0 0x68A2
+0xF5A1 0x6912
+0xF5A2 0x695A
+0xF5A3 0x6A35
+0xF5A4 0x7092
+0xF5A5 0x7126
+0xF5A6 0x785D
+0xF5A7 0x7901
+0xF5A8 0x790E
+0xF5A9 0x79D2
+0xF5AA 0x7A0D
+0xF5AB 0x8096
+0xF5AC 0x8278
+0xF5AD 0x82D5
+0xF5AE 0x8349
+0xF5AF 0x8549
+0xF5B0 0x8C82
+0xF5B1 0x8D85
+0xF5B2 0x9162
+0xF5B3 0x918B
+0xF5B4 0x91AE
+0xF5B5 0x4FC3
+0xF5B6 0x56D1
+0xF5B7 0x71ED
+0xF5B8 0x77D7
+0xF5B9 0x8700
+0xF5BA 0x89F8
+0xF5BB 0x5BF8
+0xF5BC 0x5FD6
+0xF5BD 0x6751
+0xF5BE 0x90A8
+0xF5BF 0x53E2
+0xF5C0 0x585A
+0xF5C1 0x5BF5
+0xF5C2 0x60A4
+0xF5C3 0x6181
+0xF5C4 0x6460
+0xF5C5 0x7E3D
+0xF5C6 0x8070
+0xF5C7 0x8525
+0xF5C8 0x9283
+0xF5C9 0x64AE
+0xF5CA 0x50AC
+0xF5CB 0x5D14
+0xF5CC 0x6700
+0xF5CD 0x589C
+0xF5CE 0x62BD
+0xF5CF 0x63A8
+0xF5D0 0x690E
+0xF5D1 0x6978
+0xF5D2 0x6A1E
+0xF5D3 0x6E6B
+0xF5D4 0x76BA
+0xF5D5 0x79CB
+0xF5D6 0x82BB
+0xF5D7 0x8429
+0xF5D8 0x8ACF
+0xF5D9 0x8DA8
+0xF5DA 0x8FFD
+0xF5DB 0x9112
+0xF5DC 0x914B
+0xF5DD 0x919C
+0xF5DE 0x9310
+0xF5DF 0x9318
+0xF5E0 0x939A
+0xF5E1 0x96DB
+0xF5E2 0x9A36
+0xF5E3 0x9C0D
+0xF5E4 0x4E11
+0xF5E5 0x755C
+0xF5E6 0x795D
+0xF5E7 0x7AFA
+0xF5E8 0x7B51
+0xF5E9 0x7BC9
+0xF5EA 0x7E2E
+0xF5EB 0x84C4
+0xF5EC 0x8E59
+0xF5ED 0x8E74
+0xF5EE 0x8EF8
+0xF5EF 0x9010
+0xF5F0 0x6625
+0xF5F1 0x693F
+0xF5F2 0x7443
+0xF5F3 0x51FA
+0xF5F4 0x672E
+0xF5F5 0x9EDC
+0xF5F6 0x5145
+0xF5F7 0x5FE0
+0xF5F8 0x6C96
+0xF5F9 0x87F2
+0xF5FA 0x885D
+0xF5FB 0x8877
+0xF5FC 0x60B4
+0xF5FD 0x81B5
+0xF5FE 0x8403
+0xF631 0x8D05
+0xF632 0x53D6
+0xF633 0x5439
+0xF634 0x5634
+0xF635 0x5A36
+0xF636 0x5C31
+0xF637 0x708A
+0xF638 0x7FE0
+0xF639 0x805A
+0xF63A 0x8106
+0xF63B 0x81ED
+0xF63C 0x8DA3
+0xF63D 0x9189
+0xF63E 0x9A5F
+0xF63F 0x9DF2
+0xF640 0x5074
+0xF641 0x4EC4
+0xF642 0x53A0
+0xF643 0x60FB
+0xF644 0x6E2C
+0xF645 0x5C64
+0xF646 0x4F88
+0xF647 0x5024
+0xF648 0x55E4
+0xF649 0x5CD9
+0xF64A 0x5E5F
+0xF64B 0x6065
+0xF64C 0x6894
+0xF64D 0x6CBB
+0xF64E 0x6DC4
+0xF64F 0x71BE
+0xF650 0x75D4
+0xF651 0x75F4
+0xF652 0x7661
+0xF653 0x7A1A
+0xF654 0x7A49
+0xF655 0x7DC7
+0xF656 0x7DFB
+0xF657 0x7F6E
+0xF658 0x81F4
+0xF659 0x86A9
+0xF65A 0x8F1C
+0xF65B 0x96C9
+0xF65C 0x99B3
+0xF65D 0x9F52
+0xF65E 0x5247
+0xF65F 0x52C5
+0xF660 0x98ED
+0xF661 0x89AA
+0xF662 0x4E03
+0xF663 0x67D2
+0xF664 0x6F06
+0xF665 0x4FB5
+0xF666 0x5BE2
+0xF667 0x6795
+0xF668 0x6C88
+0xF669 0x6D78
+0xF66A 0x741B
+0xF66B 0x7827
+0xF66C 0x91DD
+0xF66D 0x937C
+0xF66E 0x87C4
+0xF66F 0x79E4
+0xF670 0x7A31
+0xF671 0x5FEB
+0xF672 0x4ED6
+0xF673 0x54A4
+0xF674 0x553E
+0xF675 0x58AE
+0xF676 0x59A5
+0xF677 0x60F0
+0xF678 0x6253
+0xF679 0x62D6
+0xF67A 0x6736
+0xF67B 0x6955
+0xF67C 0x8235
+0xF67D 0x9640
+0xF67E 0x99B1
+0xF691 0x99DD
+0xF692 0x502C
+0xF693 0x5353
+0xF694 0x5544
+0xF695 0x577C
+0xF696 0xFA01
+0xF697 0x6258
+0xF698 0xFA02
+0xF699 0x64E2
+0xF69A 0x666B
+0xF69B 0x67DD
+0xF69C 0x6FC1
+0xF69D 0x6FEF
+0xF69E 0x7422
+0xF69F 0x7438
+0xF6A0 0x8A17
+0xF6A1 0x9438
+0xF6A2 0x5451
+0xF6A3 0x5606
+0xF6A4 0x5766
+0xF6A5 0x5F48
+0xF6A6 0x619A
+0xF6A7 0x6B4E
+0xF6A8 0x7058
+0xF6A9 0x70AD
+0xF6AA 0x7DBB
+0xF6AB 0x8A95
+0xF6AC 0x596A
+0xF6AD 0x812B
+0xF6AE 0x63A2
+0xF6AF 0x7708
+0xF6B0 0x803D
+0xF6B1 0x8CAA
+0xF6B2 0x5854
+0xF6B3 0x642D
+0xF6B4 0x69BB
+0xF6B5 0x5B95
+0xF6B6 0x5E11
+0xF6B7 0x6E6F
+0xF6B8 0xFA03
+0xF6B9 0x8569
+0xF6BA 0x514C
+0xF6BB 0x53F0
+0xF6BC 0x592A
+0xF6BD 0x6020
+0xF6BE 0x614B
+0xF6BF 0x6B86
+0xF6C0 0x6C70
+0xF6C1 0x6CF0
+0xF6C2 0x7B1E
+0xF6C3 0x80CE
+0xF6C4 0x82D4
+0xF6C5 0x8DC6
+0xF6C6 0x90B0
+0xF6C7 0x98B1
+0xF6C8 0xFA04
+0xF6C9 0x64C7
+0xF6CA 0x6FA4
+0xF6CB 0x6491
+0xF6CC 0x6504
+0xF6CD 0x514E
+0xF6CE 0x5410
+0xF6CF 0x571F
+0xF6D0 0x8A0E
+0xF6D1 0x615F
+0xF6D2 0x6876
+0xF6D3 0xFA05
+0xF6D4 0x75DB
+0xF6D5 0x7B52
+0xF6D6 0x7D71
+0xF6D7 0x901A
+0xF6D8 0x5806
+0xF6D9 0x69CC
+0xF6DA 0x817F
+0xF6DB 0x892A
+0xF6DC 0x9000
+0xF6DD 0x9839
+0xF6DE 0x5078
+0xF6DF 0x5957
+0xF6E0 0x59AC
+0xF6E1 0x6295
+0xF6E2 0x900F
+0xF6E3 0x9B2A
+0xF6E4 0x615D
+0xF6E5 0x7279
+0xF6E6 0x95D6
+0xF6E7 0x5761
+0xF6E8 0x5A46
+0xF6E9 0x5DF4
+0xF6EA 0x628A
+0xF6EB 0x64AD
+0xF6EC 0x64FA
+0xF6ED 0x6777
+0xF6EE 0x6CE2
+0xF6EF 0x6D3E
+0xF6F0 0x722C
+0xF6F1 0x7436
+0xF6F2 0x7834
+0xF6F3 0x7F77
+0xF6F4 0x82AD
+0xF6F5 0x8DDB
+0xF6F6 0x9817
+0xF6F7 0x5224
+0xF6F8 0x5742
+0xF6F9 0x677F
+0xF6FA 0x7248
+0xF6FB 0x74E3
+0xF6FC 0x8CA9
+0xF6FD 0x8FA6
+0xF6FE 0x9211
+0xF731 0x962A
+0xF732 0x516B
+0xF733 0x53ED
+0xF734 0x634C
+0xF735 0x4F69
+0xF736 0x5504
+0xF737 0x6096
+0xF738 0x6557
+0xF739 0x6C9B
+0xF73A 0x6D7F
+0xF73B 0x724C
+0xF73C 0x72FD
+0xF73D 0x7A17
+0xF73E 0x8987
+0xF73F 0x8C9D
+0xF740 0x5F6D
+0xF741 0x6F8E
+0xF742 0x70F9
+0xF743 0x81A8
+0xF744 0x610E
+0xF745 0x4FBF
+0xF746 0x504F
+0xF747 0x6241
+0xF748 0x7247
+0xF749 0x7BC7
+0xF74A 0x7DE8
+0xF74B 0x7FE9
+0xF74C 0x904D
+0xF74D 0x97AD
+0xF74E 0x9A19
+0xF74F 0x8CB6
+0xF750 0x576A
+0xF751 0x5E73
+0xF752 0x67B0
+0xF753 0x840D
+0xF754 0x8A55
+0xF755 0x5420
+0xF756 0x5B16
+0xF757 0x5E63
+0xF758 0x5EE2
+0xF759 0x5F0A
+0xF75A 0x6583
+0xF75B 0x80BA
+0xF75C 0x853D
+0xF75D 0x9589
+0xF75E 0x965B
+0xF75F 0x4F48
+0xF760 0x5305
+0xF761 0x530D
+0xF762 0x530F
+0xF763 0x5486
+0xF764 0x54FA
+0xF765 0x5703
+0xF766 0x5E03
+0xF767 0x6016
+0xF768 0x629B
+0xF769 0x62B1
+0xF76A 0x6355
+0xF76B 0xFA06
+0xF76C 0x6CE1
+0xF76D 0x6D66
+0xF76E 0x75B1
+0xF76F 0x7832
+0xF770 0x80DE
+0xF771 0x812F
+0xF772 0x82DE
+0xF773 0x8461
+0xF774 0x84B2
+0xF775 0x888D
+0xF776 0x8912
+0xF777 0x900B
+0xF778 0x92EA
+0xF779 0x98FD
+0xF77A 0x9B91
+0xF77B 0x5E45
+0xF77C 0x66B4
+0xF77D 0x66DD
+0xF77E 0x7011
+0xF791 0x7206
+0xF792 0xFA07
+0xF793 0x4FF5
+0xF794 0x527D
+0xF795 0x5F6A
+0xF796 0x6153
+0xF797 0x6753
+0xF798 0x6A19
+0xF799 0x6F02
+0xF79A 0x74E2
+0xF79B 0x7968
+0xF79C 0x8868
+0xF79D 0x8C79
+0xF79E 0x98C7
+0xF79F 0x98C4
+0xF7A0 0x9A43
+0xF7A1 0x54C1
+0xF7A2 0x7A1F
+0xF7A3 0x6953
+0xF7A4 0x8AF7
+0xF7A5 0x8C4A
+0xF7A6 0x98A8
+0xF7A7 0x99AE
+0xF7A8 0x5F7C
+0xF7A9 0x62AB
+0xF7AA 0x75B2
+0xF7AB 0x76AE
+0xF7AC 0x88AB
+0xF7AD 0x907F
+0xF7AE 0x9642
+0xF7AF 0x5339
+0xF7B0 0x5F3C
+0xF7B1 0x5FC5
+0xF7B2 0x6CCC
+0xF7B3 0x73CC
+0xF7B4 0x7562
+0xF7B5 0x758B
+0xF7B6 0x7B46
+0xF7B7 0x82FE
+0xF7B8 0x999D
+0xF7B9 0x4E4F
+0xF7BA 0x903C
+0xF7BB 0x4E0B
+0xF7BC 0x4F55
+0xF7BD 0x53A6
+0xF7BE 0x590F
+0xF7BF 0x5EC8
+0xF7C0 0x6630
+0xF7C1 0x6CB3
+0xF7C2 0x7455
+0xF7C3 0x8377
+0xF7C4 0x8766
+0xF7C5 0x8CC0
+0xF7C6 0x9050
+0xF7C7 0x971E
+0xF7C8 0x9C15
+0xF7C9 0x58D1
+0xF7CA 0x5B78
+0xF7CB 0x8650
+0xF7CC 0x8B14
+0xF7CD 0x9DB4
+0xF7CE 0x5BD2
+0xF7CF 0x6068
+0xF7D0 0x608D
+0xF7D1 0x65F1
+0xF7D2 0x6C57
+0xF7D3 0x6F22
+0xF7D4 0x6FA3
+0xF7D5 0x701A
+0xF7D6 0x7F55
+0xF7D7 0x7FF0
+0xF7D8-0xF7D9 0x9591
+0xF7DA 0x9650
+0xF7DB 0x97D3
+0xF7DC 0x5272
+0xF7DD 0x8F44
+0xF7DE 0x51FD
+0xF7DF 0x542B
+0xF7E0 0x54B8
+0xF7E1 0x5563
+0xF7E2 0x558A
+0xF7E3 0x6ABB
+0xF7E4 0x6DB5
+0xF7E5 0x7DD8
+0xF7E6 0x8266
+0xF7E7 0x929C
+0xF7E8 0x9677
+0xF7E9 0x9E79
+0xF7EA 0x5408
+0xF7EB 0x54C8
+0xF7EC 0x76D2
+0xF7ED 0x86E4
+0xF7EE 0x95A4
+0xF7EF 0x95D4
+0xF7F0 0x965C
+0xF7F1 0x4EA2
+0xF7F2 0x4F09
+0xF7F3 0x59EE
+0xF7F4 0x5AE6
+0xF7F5 0x5DF7
+0xF7F6 0x6052
+0xF7F7 0x6297
+0xF7F8 0x676D
+0xF7F9 0x6841
+0xF7FA 0x6C86
+0xF7FB 0x6E2F
+0xF7FC 0x7F38
+0xF7FD 0x809B
+0xF7FE 0x822A
+0xF831-0xF832 0xFA08
+0xF833 0x9805
+0xF834 0x4EA5
+0xF835 0x5055
+0xF836 0x54B3
+0xF837 0x5793
+0xF838 0x595A
+0xF839 0x5B69
+0xF83A 0x5BB3
+0xF83B 0x61C8
+0xF83C 0x6977
+0xF83D 0x6D77
+0xF83E 0x7023
+0xF83F 0x87F9
+0xF840 0x89E3
+0xF841 0x8A72
+0xF842 0x8AE7
+0xF843 0x9082
+0xF844 0x99ED
+0xF845 0x9AB8
+0xF846 0x52BE
+0xF847 0x6838
+0xF848 0x5016
+0xF849 0x5E78
+0xF84A 0x674F
+0xF84B 0x8347
+0xF84C 0x884C
+0xF84D 0x4EAB
+0xF84E 0x5411
+0xF84F 0x56AE
+0xF850 0x73E6
+0xF851 0x9115
+0xF852 0x97FF
+0xF853 0x9909
+0xF854 0x9957
+0xF855 0x9999
+0xF856 0x5653
+0xF857 0x589F
+0xF858 0x865B
+0xF859 0x8A31
+0xF85A 0x61B2
+0xF85B 0x6AF6
+0xF85C 0x737B
+0xF85D 0x8ED2
+0xF85E 0x6B47
+0xF85F 0x96AA
+0xF860 0x9A57
+0xF861 0x5955
+0xF862 0x7200
+0xF863 0x8D6B
+0xF864 0x9769
+0xF865 0x4FD4
+0xF866 0x5CF4
+0xF867 0x5F26
+0xF868 0x61F8
+0xF869 0x665B
+0xF86A 0x6CEB
+0xF86B 0x70AB
+0xF86C 0x7384
+0xF86D 0x73B9
+0xF86E 0x73FE
+0xF86F 0x7729
+0xF870 0x774D
+0xF871 0x7D43
+0xF872 0x7D62
+0xF873 0x7E23
+0xF874 0x8237
+0xF875 0x8852
+0xF876 0xFA0A
+0xF877 0x8CE2
+0xF878 0x9249
+0xF879 0x986F
+0xF87A 0x5B51
+0xF87B 0x7A74
+0xF87C 0x8840
+0xF87D 0x9801
+0xF87E 0x5ACC
+0xF891 0x4FE0
+0xF892 0x5354
+0xF893 0x593E
+0xF894 0x5CFD
+0xF895 0x633E
+0xF896 0x6D79
+0xF897 0x72F9
+0xF898 0x8105
+0xF899 0x8107
+0xF89A 0x83A2
+0xF89B 0x92CF
+0xF89C 0x9830
+0xF89D 0x4EA8
+0xF89E 0x5144
+0xF89F 0x5211
+0xF8A0 0x578B
+0xF8A1 0x5F62
+0xF8A2 0x6CC2
+0xF8A3 0x6ECE
+0xF8A4 0x7005
+0xF8A5 0x7050
+0xF8A6 0x70AF
+0xF8A7 0x7192
+0xF8A8 0x73E9
+0xF8A9 0x7469
+0xF8AA 0x834A
+0xF8AB 0x87A2
+0xF8AC 0x8861
+0xF8AD 0x9008
+0xF8AE 0x90A2
+0xF8AF 0x93A3
+0xF8B0 0x99A8
+0xF8B1 0x516E
+0xF8B2 0x5F57
+0xF8B3 0x60E0
+0xF8B4 0x6167
+0xF8B5 0x66B3
+0xF8B6 0x8559
+0xF8B7 0x8E4A
+0xF8B8 0x91AF
+0xF8B9 0x978B
+0xF8BA 0x4E4E
+0xF8BB 0x4E92
+0xF8BC 0x547C
+0xF8BD 0x58D5
+0xF8BE 0x58FA
+0xF8BF 0x597D
+0xF8C0 0x5CB5
+0xF8C1 0x5F27
+0xF8C2 0x6236
+0xF8C3 0x6248
+0xF8C4 0x660A
+0xF8C5 0x6667
+0xF8C6 0x6BEB
+0xF8C7 0x6D69
+0xF8C8 0x6DCF
+0xF8C9 0x6E56
+0xF8CA 0x6EF8
+0xF8CB 0x6F94
+0xF8CC 0x6FE0
+0xF8CD 0x6FE9
+0xF8CE 0x705D
+0xF8CF 0x72D0
+0xF8D0 0x7425
+0xF8D1 0x745A
+0xF8D2 0x74E0
+0xF8D3 0x7693
+0xF8D4 0x795C
+0xF8D5 0x7CCA
+0xF8D6 0x7E1E
+0xF8D7 0x80E1
+0xF8D8 0x82A6
+0xF8D9 0x846B
+0xF8DA 0x84BF
+0xF8DB 0x864E
+0xF8DC 0x865F
+0xF8DD 0x8774
+0xF8DE 0x8B77
+0xF8DF 0x8C6A
+0xF8E0 0x93AC
+0xF8E1 0x9800
+0xF8E2 0x9865
+0xF8E3 0x60D1
+0xF8E4 0x6216
+0xF8E5 0x9177
+0xF8E6 0x5A5A
+0xF8E7 0x660F
+0xF8E8 0x6DF7
+0xF8E9 0x6E3E
+0xF8EA 0x743F
+0xF8EB 0x9B42
+0xF8EC 0x5FFD
+0xF8ED 0x60DA
+0xF8EE 0x7B0F
+0xF8EF 0x54C4
+0xF8F0 0x5F18
+0xF8F1 0x6C5E
+0xF8F2 0x6CD3
+0xF8F3 0x6D2A
+0xF8F4 0x70D8
+0xF8F5 0x7D05
+0xF8F6 0x8679
+0xF8F7 0x8A0C
+0xF8F8 0x9D3B
+0xF8F9 0x5316
+0xF8FA 0x548C
+0xF8FB 0x5B05
+0xF8FC 0x6A3A
+0xF8FD 0x706B
+0xF8FE 0x7575
+0xF931 0x798D
+0xF932 0x79BE
+0xF933 0x82B1
+0xF934 0x83EF
+0xF935 0x8A71
+0xF936 0x8B41
+0xF937 0x8CA8
+0xF938 0x9774
+0xF939 0xFA0B
+0xF93A 0x64F4
+0xF93B 0x652B
+0xF93C-0xF93D 0x78BA
+0xF93E 0x7A6B
+0xF93F 0x4E38
+0xF940 0x559A
+0xF941 0x5950
+0xF942 0x5BA6
+0xF943 0x5E7B
+0xF944 0x60A3
+0xF945 0x63DB
+0xF946 0x6B61
+0xF947 0x6665
+0xF948 0x6853
+0xF949 0x6E19
+0xF94A 0x7165
+0xF94B 0x74B0
+0xF94C 0x7D08
+0xF94D 0x9084
+0xF94E 0x9A69
+0xF94F 0x9C25
+0xF950 0x6D3B
+0xF951 0x6ED1
+0xF952 0x733E
+0xF953 0x8C41
+0xF954 0x95CA
+0xF955 0x51F0
+0xF956 0x5E4C
+0xF957 0x5FA8
+0xF958 0x604D
+0xF959 0x60F6
+0xF95A 0x6130
+0xF95B 0x614C
+0xF95C-0xF95D 0x6643
+0xF95E 0x69A5
+0xF95F 0x6CC1
+0xF960 0x6E5F
+0xF961 0x6EC9
+0xF962 0x6F62
+0xF963 0x714C
+0xF964 0x749C
+0xF965 0x7687
+0xF966 0x7BC1
+0xF967 0x7C27
+0xF968 0x8352
+0xF969 0x8757
+0xF96A 0x9051
+0xF96B 0x968D
+0xF96C 0x9EC3
+0xF96D 0x532F
+0xF96E 0x56DE
+0xF96F 0x5EFB
+0xF970 0x5F8A
+0xF971 0x6062
+0xF972 0x6094
+0xF973 0x61F7
+0xF974 0x6666
+0xF975 0x6703
+0xF976 0x6A9C
+0xF977 0x6DEE
+0xF978 0x6FAE
+0xF979 0x7070
+0xF97A 0x736A
+0xF97B 0x7E6A
+0xF97C 0x81BE
+0xF97D 0x8334
+0xF97E 0x86D4
+0xF991 0x8AA8
+0xF992 0x8CC4
+0xF993 0x5283
+0xF994 0x7372
+0xF995 0x5B96
+0xF996 0x6A6B
+0xF997 0x9404
+0xF998 0x54EE
+0xF999 0x5686
+0xF99A 0x5B5D
+0xF99B 0x6548
+0xF99C 0x6585
+0xF99D 0x66C9
+0xF99E 0x689F
+0xF99F 0x6D8D
+0xF9A0 0x6DC6
+0xF9A1 0x723B
+0xF9A2 0x80B4
+0xF9A3 0x9175
+0xF9A4 0x9A4D
+0xF9A5 0x4FAF
+0xF9A6 0x5019
+0xF9A7 0x539A
+0xF9A8 0x540E
+0xF9A9 0x543C
+0xF9AA 0x5589
+0xF9AB 0x55C5
+0xF9AC 0x5E3F
+0xF9AD 0x5F8C
+0xF9AE 0x673D
+0xF9AF 0x7166
+0xF9B0 0x73DD
+0xF9B1 0x9005
+0xF9B2 0x52DB
+0xF9B3 0x52F3
+0xF9B4 0x5864
+0xF9B5 0x58CE
+0xF9B6 0x7104
+0xF9B7 0x718F
+0xF9B8 0x71FB
+0xF9B9 0x85B0
+0xF9BA 0x8A13
+0xF9BB 0x6688
+0xF9BC 0x85A8
+0xF9BD 0x55A7
+0xF9BE 0x6684
+0xF9BF 0x714A
+0xF9C0 0x8431
+0xF9C1 0x5349
+0xF9C2 0x5599
+0xF9C3 0x6BC1
+0xF9C4 0x5F59
+0xF9C5 0x5FBD
+0xF9C6 0x63EE
+0xF9C7 0x6689
+0xF9C8 0x7147
+0xF9C9 0x8AF1
+0xF9CA 0x8F1D
+0xF9CB 0x9EBE
+0xF9CC 0x4F11
+0xF9CD 0x643A
+0xF9CE 0x70CB
+0xF9CF 0x7566
+0xF9D0 0x8667
+0xF9D1 0x6064
+0xF9D2 0x8B4E
+0xF9D3 0x9DF8
+0xF9D4 0x5147
+0xF9D5 0x51F6
+0xF9D6 0x5308
+0xF9D7 0x6D36
+0xF9D8 0x80F8
+0xF9D9 0x9ED1
+0xF9DA 0x6615
+0xF9DB 0x6B23
+0xF9DC 0x7098
+0xF9DD 0x75D5
+0xF9DE 0x5403
+0xF9DF 0x5C79
+0xF9E0 0x7D07
+0xF9E1 0x8A16
+0xF9E2 0x6B20
+0xF9E3 0x6B3D
+0xF9E4 0x6B46
+0xF9E5 0x5438
+0xF9E6 0x6070
+0xF9E7 0x6D3D
+0xF9E8 0x7FD5
+0xF9E9 0x8208
+0xF9EA 0x50D6
+0xF9EB 0x51DE
+0xF9EC 0x559C
+0xF9ED 0x566B
+0xF9EE 0x56CD
+0xF9EF 0x59EC
+0xF9F0 0x5B09
+0xF9F1 0x5E0C
+0xF9F2 0x6199
+0xF9F3 0x6198
+0xF9F4 0x6231
+0xF9F5 0x665E
+0xF9F6 0x66E6
+0xF9F7 0x7199
+0xF9F8-0xF9F9 0x71B9
+0xF9FA 0x72A7
+0xF9FB 0x79A7
+0xF9FC 0x7A00
+0xF9FD 0x7FB2
+0xF9FE 0x8A70
diff --git a/etc/charsets/KA-ACADEMY.map b/etc/charsets/KA-ACADEMY.map
new file mode 100644 (file)
index 0000000..dab4267
--- /dev/null
@@ -0,0 +1,27 @@
+# Generated from glibc-2.3.2/localedata/charmaps/GEORGIAN-ACADEMY
+0x00-0x81 0x0000
+0x82 0x201A
+0x83 0x0192
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x88 0x02C6
+0x89 0x2030
+0x8A 0x0160
+0x8B 0x2039
+0x8C 0x0152
+0x8D-0x90 0x008D
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x98 0x02DC
+0x99 0x2122
+0x9A 0x0161
+0x9B 0x203A
+0x9C 0x0153
+0x9D-0x9E 0x009D
+0x9F 0x0178
+0xA0-0xBF 0x00A0
+0xC0-0xE6 0x10D0
+0xE7-0xFF 0x00E7
diff --git a/etc/charsets/KA-PS.map b/etc/charsets/KA-PS.map
new file mode 100644 (file)
index 0000000..ebf572c
--- /dev/null
@@ -0,0 +1,36 @@
+# Generated from glibc-2.3.2/localedata/charmaps/GEORGIAN-PS
+0x00-0x81 0x0000
+0x82 0x201A
+0x83 0x0192
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x88 0x02C6
+0x89 0x2030
+0x8A 0x0160
+0x8B 0x2039
+0x8C 0x0152
+0x8D-0x90 0x008D
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x98 0x02DC
+0x99 0x2122
+0x9A 0x0161
+0x9B 0x203A
+0x9C 0x0153
+0x9D-0x9E 0x009D
+0x9F 0x0178
+0xA0-0xBF 0x00A0
+0xC0-0xC6 0x10D0
+0xC7 0x10F1
+0xC8-0xCD 0x10D7
+0xCE 0x10F2
+0xCF-0xD4 0x10DD
+0xD5 0x10F3
+0xD6-0xE1 0x10E3
+0xE2 0x10F4
+0xE3-0xE4 0x10EF
+0xE5 0x10F5
+0xE6-0xFF 0x00E6
diff --git a/etc/charsets/KOI-8.map b/etc/charsets/KOI-8.map
new file mode 100644 (file)
index 0000000..9ca5859
--- /dev/null
@@ -0,0 +1,41 @@
+# Generated from glibc-2.3.2/localedata/charmaps/KOI-8
+0x00-0x7F 0x0000
+0xC0 0x044E
+0xC1-0xC2 0x0430
+0xC3 0x0446
+0xC4-0xC5 0x0434
+0xC6 0x0444
+0xC7 0x0433
+0xC8 0x0445
+0xC9-0xD0 0x0438
+0xD1 0x044F
+0xD2-0xD5 0x0440
+0xD6 0x0436
+0xD7 0x0432
+0xD8 0x044C
+0xD9 0x044B
+0xDA 0x0437
+0xDB 0x0448
+0xDC 0x044D
+0xDD 0x0449
+0xDE 0x0447
+0xDF 0x044A
+0xE0 0x042E
+0xE1-0xE2 0x0410
+0xE3 0x0426
+0xE4-0xE5 0x0414
+0xE6 0x0424
+0xE7 0x0413
+0xE8 0x0425
+0xE9-0xF0 0x0418
+0xF1 0x042F
+0xF2-0xF5 0x0420
+0xF6 0x0416
+0xF7 0x0412
+0xF8 0x042C
+0xF9 0x042B
+0xFA 0x0417
+0xFB 0x0428
+0xFC 0x042D
+0xFD 0x0429
+0xFE 0x0427
diff --git a/etc/charsets/KOI8-R.map b/etc/charsets/KOI8-R.map
new file mode 100644 (file)
index 0000000..4edb48b
--- /dev/null
@@ -0,0 +1,75 @@
+# Generated from glibc-2.3.2/localedata/charmaps/KOI8-R
+0x00-0x7F 0x0000
+0x80 0x2500
+0x81 0x2502
+0x82 0x250C
+0x83 0x2510
+0x84 0x2514
+0x85 0x2518
+0x86 0x251C
+0x87 0x2524
+0x88 0x252C
+0x89 0x2534
+0x8A 0x253C
+0x8B 0x2580
+0x8C 0x2584
+0x8D 0x2588
+0x8E 0x258C
+0x8F-0x92 0x2590
+0x93 0x2320
+0x94 0x25A0
+0x95-0x96 0x2219
+0x97 0x2248
+0x98-0x99 0x2264
+0x9A 0x00A0
+0x9B 0x2321
+0x9C 0x00B0
+0x9D 0x00B2
+0x9E 0x00B7
+0x9F 0x00F7
+0xA0-0xA2 0x2550
+0xA3 0x0451
+0xA4-0xB2 0x2553
+0xB3 0x0401
+0xB4-0xBE 0x2562
+0xBF 0x00A9
+0xC0 0x044E
+0xC1-0xC2 0x0430
+0xC3 0x0446
+0xC4-0xC5 0x0434
+0xC6 0x0444
+0xC7 0x0433
+0xC8 0x0445
+0xC9-0xD0 0x0438
+0xD1 0x044F
+0xD2-0xD5 0x0440
+0xD6 0x0436
+0xD7 0x0432
+0xD8 0x044C
+0xD9 0x044B
+0xDA 0x0437
+0xDB 0x0448
+0xDC 0x044D
+0xDD 0x0449
+0xDE 0x0447
+0xDF 0x044A
+0xE0 0x042E
+0xE1-0xE2 0x0410
+0xE3 0x0426
+0xE4-0xE5 0x0414
+0xE6 0x0424
+0xE7 0x0413
+0xE8 0x0425
+0xE9-0xF0 0x0418
+0xF1 0x042F
+0xF2-0xF5 0x0420
+0xF6 0x0416
+0xF7 0x0412
+0xF8 0x042C
+0xF9 0x042B
+0xFA 0x0417
+0xFB 0x0428
+0xFC 0x042D
+0xFD 0x0429
+0xFE 0x0427
+0xFF 0x042A
diff --git a/etc/charsets/KOI8-T.map b/etc/charsets/KOI8-T.map
new file mode 100644 (file)
index 0000000..2e92909
--- /dev/null
@@ -0,0 +1,76 @@
+# Generated from glibc-2.3.2/localedata/charmaps/KOI8-T
+0x00-0x7F 0x0000
+0x80 0x049B
+0x81 0x0493
+0x82 0x201A
+0x83 0x0492
+0x84 0x201E
+0x85 0x2026
+0x86-0x87 0x2020
+0x89 0x2030
+0x8A 0x04B3
+0x8B 0x2039
+0x8C 0x04B2
+0x8D 0x04B7
+0x8E 0x04B6
+0x90 0x049A
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x99 0x2122
+0x9B 0x203A
+0xA1 0x04EF
+0xA2 0x04EE
+0xA3 0x0451
+0xA4 0x00A4
+0xA5 0x04E3
+0xA6-0xA7 0x00A6
+0xAB-0xAE 0x00AB
+0xB0-0xB2 0x00B0
+0xB3 0x0401
+0xB5 0x04E2
+0xB6-0xB7 0x00B6
+0xB9 0x2116
+0xBB 0x00BB
+0xBF 0x00A9
+0xC0 0x044E
+0xC1-0xC2 0x0430
+0xC3 0x0446
+0xC4-0xC5 0x0434
+0xC6 0x0444
+0xC7 0x0433
+0xC8 0x0445
+0xC9-0xD0 0x0438
+0xD1 0x044F
+0xD2-0xD5 0x0440
+0xD6 0x0436
+0xD7 0x0432
+0xD8 0x044C
+0xD9 0x044B
+0xDA 0x0437
+0xDB 0x0448
+0xDC 0x044D
+0xDD 0x0449
+0xDE 0x0447
+0xDF 0x044A
+0xE0 0x042E
+0xE1-0xE2 0x0410
+0xE3 0x0426
+0xE4-0xE5 0x0414
+0xE6 0x0424
+0xE7 0x0413
+0xE8 0x0425
+0xE9-0xF0 0x0418
+0xF1 0x042F
+0xF2-0xF5 0x0420
+0xF6 0x0416
+0xF7 0x0412
+0xF8 0x042C
+0xF9 0x042B
+0xFA 0x0417
+0xFB 0x0428
+0xFC 0x042D
+0xFD 0x0429
+0xFE 0x0427
+0xFF 0x042A
diff --git a/etc/charsets/KOI8-U.map b/etc/charsets/KOI8-U.map
new file mode 100644 (file)
index 0000000..cec41ce
--- /dev/null
@@ -0,0 +1,85 @@
+# Generated from glibc-2.3.2/localedata/charmaps/KOI8-U
+0x00-0x7F 0x0000
+0x80 0x2500
+0x81 0x2502
+0x82 0x250C
+0x83 0x2510
+0x84 0x2514
+0x85 0x2518
+0x86 0x251C
+0x87 0x2524
+0x88 0x252C
+0x89 0x2534
+0x8A 0x253C
+0x8B 0x2580
+0x8C 0x2584
+0x8D 0x2588
+0x8E 0x258C
+0x8F-0x92 0x2590
+0x93 0x2320
+0x94 0x25A0
+0x95-0x96 0x2219
+0x97 0x2248
+0x98-0x99 0x2264
+0x9A 0x00A0
+0x9B 0x2321
+0x9C 0x00B0
+0x9D 0x00B2
+0x9E 0x00B7
+0x9F 0x00F7
+0xA0-0xA2 0x2550
+0xA3 0x0451
+0xA4 0x0454
+0xA5 0x2554
+0xA6-0xA7 0x0456
+0xA8-0xAC 0x2557
+0xAD 0x0491
+0xAE-0xB2 0x255D
+0xB3 0x0401
+0xB4 0x0404
+0xB5 0x2563
+0xB6-0xB7 0x0406
+0xB8-0xBC 0x2566
+0xBD 0x0490
+0xBE 0x256C
+0xBF 0x00A9
+0xC0 0x044E
+0xC1-0xC2 0x0430
+0xC3 0x0446
+0xC4-0xC5 0x0434
+0xC6 0x0444
+0xC7 0x0433
+0xC8 0x0445
+0xC9-0xD0 0x0438
+0xD1 0x044F
+0xD2-0xD5 0x0440
+0xD6 0x0436
+0xD7 0x0432
+0xD8 0x044C
+0xD9 0x044B
+0xDA 0x0437
+0xDB 0x0448
+0xDC 0x044D
+0xDD 0x0449
+0xDE 0x0447
+0xDF 0x044A
+0xE0 0x042E
+0xE1-0xE2 0x0410
+0xE3 0x0426
+0xE4-0xE5 0x0414
+0xE6 0x0424
+0xE7 0x0413
+0xE8 0x0425
+0xE9-0xF0 0x0418
+0xF1 0x042F
+0xF2-0xF5 0x0420
+0xF6 0x0416
+0xF7 0x0412
+0xF8 0x042C
+0xF9 0x042B
+0xFA 0x0417
+0xFB 0x0428
+0xFC 0x042D
+0xFD 0x0429
+0xFE 0x0427
+0xFF 0x042A
diff --git a/etc/charsets/KSC5601.map b/etc/charsets/KSC5601.map
new file mode 100644 (file)
index 0000000..bc73942
--- /dev/null
@@ -0,0 +1,6665 @@
+# Generated from glibc-2.3.2/localedata/charmaps/EUC-KR
+0x2121-0x2123 0x3000
+0x2124 0x00B7
+0x2125-0x2126 0x2025
+0x2127 0x00A8
+0x2128 0x3003
+0x2129 0x00AD
+0x212A 0x2015
+0x212B 0x2225
+0x212C 0xFF3C
+0x212D 0x223C
+0x212E-0x212F 0x2018
+0x2130-0x2131 0x201C
+0x2132-0x2133 0x3014
+0x2134-0x213D 0x3008
+0x213E 0x00B1
+0x213F 0x00D7
+0x2140 0x00F7
+0x2141 0x2260
+0x2142-0x2143 0x2264
+0x2144 0x221E
+0x2145 0x2234
+0x2146 0x00B0
+0x2147-0x2148 0x2032
+0x2149 0x2103
+0x214A 0x212B
+0x214B-0x214C 0xFFE0
+0x214D 0xFFE5
+0x214E 0x2642
+0x214F 0x2640
+0x2150 0x2220
+0x2151 0x22A5
+0x2152 0x2312
+0x2153 0x2202
+0x2154 0x2207
+0x2155 0x2261
+0x2156 0x2252
+0x2157 0x00A7
+0x2158 0x203B
+0x2159 0x2606
+0x215A 0x2605
+0x215B 0x25CB
+0x215C 0x25CF
+0x215D 0x25CE
+0x215E 0x25C7
+0x215F 0x25C6
+0x2160 0x25A1
+0x2161 0x25A0
+0x2162 0x25B3
+0x2163 0x25B2
+0x2164 0x25BD
+0x2165 0x25BC
+0x2166 0x2192
+0x2167-0x2168 0x2190
+0x2169-0x216A 0x2193
+0x216B 0x3013
+0x216C-0x216D 0x226A
+0x216E 0x221A
+0x216F 0x223D
+0x2170 0x221D
+0x2171 0x2235
+0x2172-0x2173 0x222B
+0x2174 0x2208
+0x2175 0x220B
+0x2176-0x2177 0x2286
+0x2178-0x2179 0x2282
+0x217A 0x222A
+0x217B 0x2229
+0x217C-0x217D 0x2227
+0x217E 0xFFE2
+0x2221 0x21D2
+0x2222 0x21D4
+0x2223 0x2200
+0x2224 0x2203
+0x2225 0x00B4
+0x2226 0xFF5E
+0x2227 0x02C7
+0x2228 0x02D8
+0x2229 0x02DD
+0x222A 0x02DA
+0x222B 0x02D9
+0x222C 0x00B8
+0x222D 0x02DB
+0x222E 0x00A1
+0x222F 0x00BF
+0x2230 0x02D0
+0x2231 0x222E
+0x2232 0x2211
+0x2233 0x220F
+0x2234 0x00A4
+0x2235 0x2109
+0x2236 0x2030
+0x2237 0x25C1
+0x2238 0x25C0
+0x2239 0x25B7
+0x223A 0x25B6
+0x223B 0x2664
+0x223C-0x223D 0x2660
+0x223E 0x2665
+0x223F 0x2667
+0x2240 0x2663
+0x2241 0x2299
+0x2242 0x25C8
+0x2243 0x25A3
+0x2244-0x2245 0x25D0
+0x2246 0x2592
+0x2247-0x2248 0x25A4
+0x2249 0x25A8
+0x224A 0x25A7
+0x224B 0x25A6
+0x224C 0x25A9
+0x224D 0x2668
+0x224E 0x260F
+0x224F 0x260E
+0x2250 0x261C
+0x2251 0x261E
+0x2252 0x00B6
+0x2253-0x2254 0x2020
+0x2255 0x2195
+0x2256 0x2197
+0x2257 0x2199
+0x2258 0x2196
+0x2259 0x2198
+0x225A 0x266D
+0x225B-0x225C 0x2669
+0x225D 0x266C
+0x225E 0x327F
+0x225F 0x321C
+0x2260 0x2116
+0x2261 0x33C7
+0x2262 0x2122
+0x2263 0x33C2
+0x2264 0x33D8
+0x2265 0x2121
+0x2266 0x20AC
+0x2267 0x00AE
+0x2321-0x235B 0xFF01
+0x235C 0xFFE6
+0x235D-0x237D 0xFF3D
+0x237E 0xFFE3
+0x2421-0x247E 0x3131
+0x2521-0x252A 0x2170
+0x2530-0x2539 0x2160
+0x2541-0x2551 0x0391
+0x2552-0x2558 0x03A3
+0x2561-0x2571 0x03B1
+0x2572-0x2578 0x03C3
+0x2621 0x2500
+0x2622 0x2502
+0x2623 0x250C
+0x2624 0x2510
+0x2625 0x2518
+0x2626 0x2514
+0x2627 0x251C
+0x2628 0x252C
+0x2629 0x2524
+0x262A 0x2534
+0x262B 0x253C
+0x262C 0x2501
+0x262D 0x2503
+0x262E 0x250F
+0x262F 0x2513
+0x2630 0x251B
+0x2631 0x2517
+0x2632 0x2523
+0x2633 0x2533
+0x2634 0x252B
+0x2635 0x253B
+0x2636 0x254B
+0x2637 0x2520
+0x2638 0x252F
+0x2639 0x2528
+0x263A 0x2537
+0x263B 0x253F
+0x263C 0x251D
+0x263D 0x2530
+0x263E 0x2525
+0x263F 0x2538
+0x2640 0x2542
+0x2641 0x2512
+0x2642 0x2511
+0x2643 0x251A
+0x2644 0x2519
+0x2645 0x2516
+0x2646 0x2515
+0x2647 0x250E
+0x2648 0x250D
+0x2649-0x264A 0x251E
+0x264B-0x264C 0x2521
+0x264D-0x264E 0x2526
+0x264F-0x2650 0x2529
+0x2651-0x2652 0x252D
+0x2653-0x2654 0x2531
+0x2655-0x2656 0x2535
+0x2657-0x2658 0x2539
+0x2659-0x265A 0x253D
+0x265B-0x265C 0x2540
+0x265D-0x2664 0x2543
+0x2721-0x2723 0x3395
+0x2724 0x2113
+0x2725 0x3398
+0x2726 0x33C4
+0x2727-0x272A 0x33A3
+0x272B-0x2734 0x3399
+0x2735 0x33CA
+0x2736-0x2738 0x338D
+0x2739 0x33CF
+0x273A-0x273B 0x3388
+0x273C 0x33C8
+0x273D-0x273E 0x33A7
+0x273F-0x2748 0x33B0
+0x2749-0x274D 0x3380
+0x274E-0x2753 0x33BA
+0x2754-0x2758 0x3390
+0x2759 0x2126
+0x275A-0x275B 0x33C0
+0x275C-0x275E 0x338A
+0x275F 0x33D6
+0x2760 0x33C5
+0x2761-0x2763 0x33AD
+0x2764 0x33DB
+0x2765-0x2768 0x33A9
+0x2769 0x33DD
+0x276A 0x33D0
+0x276B 0x33D3
+0x276C 0x33C3
+0x276D 0x33C9
+0x276E 0x33DC
+0x276F 0x33C6
+0x2821 0x00C6
+0x2822 0x00D0
+0x2823 0x00AA
+0x2824 0x0126
+0x2826 0x0132
+0x2828 0x013F
+0x2829 0x0141
+0x282A 0x00D8
+0x282B 0x0152
+0x282C 0x00BA
+0x282D 0x00DE
+0x282E 0x0166
+0x282F 0x014A
+0x2831-0x284C 0x3260
+0x284D-0x2866 0x24D0
+0x2867-0x2875 0x2460
+0x2876 0x00BD
+0x2877-0x2878 0x2153
+0x2879 0x00BC
+0x287A 0x00BE
+0x287B-0x287E 0x215B
+0x2921 0x00E6
+0x2922 0x0111
+0x2923 0x00F0
+0x2924 0x0127
+0x2925 0x0131
+0x2926 0x0133
+0x2927 0x0138
+0x2928 0x0140
+0x2929 0x0142
+0x292A 0x00F8
+0x292B 0x0153
+0x292C 0x00DF
+0x292D 0x00FE
+0x292E 0x0167
+0x292F 0x014B
+0x2930 0x0149
+0x2931-0x294C 0x3200
+0x294D-0x2966 0x249C
+0x2967-0x2975 0x2474
+0x2976 0x00B9
+0x2977-0x2978 0x00B2
+0x2979 0x2074
+0x297A 0x207F
+0x297B-0x297E 0x2081
+0x2A21-0x2A73 0x3041
+0x2B21-0x2B76 0x30A1
+0x2C21-0x2C26 0x0410
+0x2C27 0x0401
+0x2C28-0x2C41 0x0416
+0x2C51-0x2C56 0x0430
+0x2C57 0x0451
+0x2C58-0x2C71 0x0436
+0x3021-0x3022 0xAC00
+0x3023 0xAC04
+0x3024-0x3027 0xAC07
+0x3028-0x302F 0xAC10
+0x3030-0x3034 0xAC19
+0x3035 0xAC20
+0x3036 0xAC24
+0x3037-0x3038 0xAC2C
+0x3039-0x303B 0xAC2F
+0x303C-0x303D 0xAC38
+0x303E 0xAC3C
+0x303F 0xAC40
+0x3040 0xAC4B
+0x3041 0xAC4D
+0x3042 0xAC54
+0x3043 0xAC58
+0x3044 0xAC5C
+0x3045-0x3046 0xAC70
+0x3047 0xAC74
+0x3048-0x3049 0xAC77
+0x304A 0xAC7A
+0x304B-0x304C 0xAC80
+0x304D-0x3050 0xAC83
+0x3051-0x3054 0xAC89
+0x3055 0xAC90
+0x3056 0xAC94
+0x3057-0x3058 0xAC9C
+0x3059-0x305B 0xAC9F
+0x305C-0x305E 0xACA8
+0x305F 0xACAC
+0x3060-0x3061 0xACAF
+0x3062-0x3063 0xACB8
+0x3064-0x3066 0xACBB
+0x3067 0xACC1
+0x3068 0xACC4
+0x3069 0xACC8
+0x306A 0xACCC
+0x306B 0xACD5
+0x306C 0xACD7
+0x306D-0x306E 0xACE0
+0x306F 0xACE4
+0x3070-0x3071 0xACE7
+0x3072 0xACEA
+0x3073 0xACEC
+0x3074-0x3076 0xACEF
+0x3077 0xACF3
+0x3078-0x3079 0xACF5
+0x307A-0x307B 0xACFC
+0x307C 0xAD00
+0x307D 0xAD04
+0x307E 0xAD06
+0x3121-0x3122 0xAD0C
+0x3123 0xAD0F
+0x3124 0xAD11
+0x3125 0xAD18
+0x3126 0xAD1C
+0x3127 0xAD20
+0x3128 0xAD29
+0x3129-0x312A 0xAD2C
+0x312B-0x312C 0xAD34
+0x312D 0xAD38
+0x312E 0xAD3C
+0x312F-0x3130 0xAD44
+0x3131 0xAD47
+0x3132 0xAD49
+0x3133 0xAD50
+0x3134 0xAD54
+0x3135 0xAD58
+0x3136 0xAD61
+0x3137 0xAD63
+0x3138-0x3139 0xAD6C
+0x313A 0xAD70
+0x313B-0x313E 0xAD73
+0x313F-0x3141 0xAD7B
+0x3142 0xAD7F
+0x3143-0x3144 0xAD81
+0x3145-0x3146 0xAD88
+0x3147 0xAD8C
+0x3148 0xAD90
+0x3149-0x314A 0xAD9C
+0x314B 0xADA4
+0x314C 0xADB7
+0x314D-0x314E 0xADC0
+0x314F 0xADC4
+0x3150 0xADC8
+0x3151-0x3152 0xADD0
+0x3153 0xADD3
+0x3154 0xADDC
+0x3155 0xADE0
+0x3156 0xADE4
+0x3157-0x3158 0xADF8
+0x3159 0xADFC
+0x315A-0x315C 0xADFF
+0x315D-0x315E 0xAE08
+0x315F 0xAE0B
+0x3160 0xAE0D
+0x3161 0xAE14
+0x3162-0x3163 0xAE30
+0x3164 0xAE34
+0x3165-0x3166 0xAE37
+0x3167 0xAE3A
+0x3168-0x3169 0xAE40
+0x316A 0xAE43
+0x316B-0x316C 0xAE45
+0x316D 0xAE4A
+0x316E-0x3170 0xAE4C
+0x3171 0xAE50
+0x3172 0xAE54
+0x3173 0xAE56
+0x3174-0x3175 0xAE5C
+0x3176-0x3178 0xAE5F
+0x3179 0xAE65
+0x317A-0x317B 0xAE68
+0x317C 0xAE6C
+0x317D 0xAE70
+0x317E 0xAE78
+0x3221 0xAE79
+0x3222-0x3224 0xAE7B
+0x3225-0x3226 0xAE84
+0x3227 0xAE8C
+0x3228-0x322A 0xAEBC
+0x322B 0xAEC0
+0x322C 0xAEC4
+0x322D-0x322E 0xAECC
+0x322F-0x3231 0xAECF
+0x3232-0x3233 0xAED8
+0x3234 0xAEDC
+0x3235 0xAEE8
+0x3236 0xAEEB
+0x3237 0xAEED
+0x3238 0xAEF4
+0x3239 0xAEF8
+0x323A 0xAEFC
+0x323B-0x323C 0xAF07
+0x323D 0xAF0D
+0x323E 0xAF10
+0x323F-0x3240 0xAF2C
+0x3241 0xAF30
+0x3242 0xAF32
+0x3243 0xAF34
+0x3244-0x3245 0xAF3C
+0x3246 0xAF3F
+0x3247-0x3249 0xAF41
+0x324A-0x324B 0xAF48
+0x324C 0xAF50
+0x324D-0x324E 0xAF5C
+0x324F-0x3250 0xAF64
+0x3251 0xAF79
+0x3252 0xAF80
+0x3253 0xAF84
+0x3254 0xAF88
+0x3255-0x3256 0xAF90
+0x3257 0xAF95
+0x3258 0xAF9C
+0x3259-0x325A 0xAFB8
+0x325B 0xAFBC
+0x325C 0xAFC0
+0x325D-0x325F 0xAFC7
+0x3260 0xAFCB
+0x3261-0x3262 0xAFCD
+0x3263 0xAFD4
+0x3264 0xAFDC
+0x3265-0x3266 0xAFE8
+0x3267-0x3268 0xAFF0
+0x3269 0xAFF4
+0x326A 0xAFF8
+0x326B-0x326C 0xB000
+0x326D 0xB004
+0x326E 0xB00C
+0x326F 0xB010
+0x3270 0xB014
+0x3271-0x3272 0xB01C
+0x3273 0xB028
+0x3274-0x3275 0xB044
+0x3276 0xB048
+0x3277 0xB04A
+0x3278 0xB04C
+0x3279 0xB04E
+0x327A-0x327C 0xB053
+0x327D 0xB057
+0x327E 0xB059
+0x3321 0xB05D
+0x3322-0x3323 0xB07C
+0x3324 0xB080
+0x3325 0xB084
+0x3326-0x3327 0xB08C
+0x3328 0xB08F
+0x3329 0xB091
+0x332A-0x332C 0xB098
+0x332D 0xB09C
+0x332E-0x3331 0xB09F
+0x3332-0x3333 0xB0A8
+0x3334-0x3338 0xB0AB
+0x3339 0xB0B1
+0x333A-0x333C 0xB0B3
+0x333D 0xB0B8
+0x333E 0xB0BC
+0x333F-0x3340 0xB0C4
+0x3341-0x3343 0xB0C7
+0x3344-0x3345 0xB0D0
+0x3346 0xB0D4
+0x3347 0xB0D8
+0x3348 0xB0E0
+0x3349 0xB0E5
+0x334A-0x334B 0xB108
+0x334C-0x334D 0xB10B
+0x334E 0xB110
+0x334F-0x3350 0xB112
+0x3351-0x3352 0xB118
+0x3353-0x3355 0xB11B
+0x3356-0x3358 0xB123
+0x3359 0xB128
+0x335A 0xB12C
+0x335B-0x335C 0xB134
+0x335D-0x335F 0xB137
+0x3360-0x3361 0xB140
+0x3362 0xB144
+0x3363 0xB148
+0x3364-0x3365 0xB150
+0x3366-0x3367 0xB154
+0x3368 0xB158
+0x3369 0xB15C
+0x336A 0xB160
+0x336B-0x336C 0xB178
+0x336D 0xB17C
+0x336E 0xB180
+0x336F 0xB182
+0x3370-0x3371 0xB188
+0x3372 0xB18B
+0x3373 0xB18D
+0x3374-0x3376 0xB192
+0x3377 0xB198
+0x3378 0xB19C
+0x3379 0xB1A8
+0x337A 0xB1CC
+0x337B 0xB1D0
+0x337C 0xB1D4
+0x337D-0x337E 0xB1DC
+0x3421 0xB1DF
+0x3422-0x3423 0xB1E8
+0x3424 0xB1EC
+0x3425 0xB1F0
+0x3426 0xB1F9
+0x3427 0xB1FB
+0x3428 0xB1FD
+0x3429-0x342A 0xB204
+0x342B 0xB208
+0x342C-0x342D 0xB20B
+0x342E-0x342F 0xB214
+0x3430 0xB217
+0x3431 0xB219
+0x3432 0xB220
+0x3433 0xB234
+0x3434 0xB23C
+0x3435 0xB258
+0x3436 0xB25C
+0x3437 0xB260
+0x3438-0x3439 0xB268
+0x343A-0x343B 0xB274
+0x343C 0xB27C
+0x343D-0x343E 0xB284
+0x343F 0xB289
+0x3440-0x3441 0xB290
+0x3442 0xB294
+0x3443-0x3445 0xB298
+0x3446-0x3447 0xB2A0
+0x3448 0xB2A3
+0x3449-0x344A 0xB2A5
+0x344B 0xB2AA
+0x344C 0xB2AC
+0x344D 0xB2B0
+0x344E 0xB2B4
+0x344F-0x3450 0xB2C8
+0x3451 0xB2CC
+0x3452 0xB2D0
+0x3453 0xB2D2
+0x3454-0x3455 0xB2D8
+0x3456 0xB2DB
+0x3457 0xB2DD
+0x3458 0xB2E2
+0x3459-0x345B 0xB2E4
+0x345C 0xB2E8
+0x345D-0x3461 0xB2EB
+0x3462-0x3464 0xB2F3
+0x3465-0x3469 0xB2F7
+0x346A-0x346C 0xB2FF
+0x346D 0xB304
+0x346E 0xB308
+0x346F-0x3470 0xB310
+0x3471-0x3473 0xB313
+0x3474 0xB31C
+0x3475-0x3477 0xB354
+0x3478 0xB358
+0x3479-0x347A 0xB35B
+0x347B-0x347C 0xB35E
+0x347D-0x347E 0xB364
+0x3521 0xB367
+0x3522 0xB369
+0x3523 0xB36B
+0x3524 0xB36E
+0x3525-0x3526 0xB370
+0x3527 0xB374
+0x3528 0xB378
+0x3529-0x352A 0xB380
+0x352B-0x352D 0xB383
+0x352E 0xB38C
+0x352F 0xB390
+0x3530 0xB394
+0x3531-0x3532 0xB3A0
+0x3533 0xB3A8
+0x3534 0xB3AC
+0x3535-0x3536 0xB3C4
+0x3537 0xB3C8
+0x3538-0x3539 0xB3CB
+0x353A 0xB3CE
+0x353B 0xB3D0
+0x353C-0x353D 0xB3D4
+0x353E 0xB3D7
+0x353F 0xB3D9
+0x3540 0xB3DB
+0x3541 0xB3DD
+0x3542 0xB3E0
+0x3543 0xB3E4
+0x3544 0xB3E8
+0x3545 0xB3FC
+0x3546 0xB410
+0x3547 0xB418
+0x3548 0xB41C
+0x3549 0xB420
+0x354A-0x354B 0xB428
+0x354C 0xB42B
+0x354D 0xB434
+0x354E-0x354F 0xB450
+0x3550 0xB454
+0x3551 0xB458
+0x3552-0x3553 0xB460
+0x3554 0xB463
+0x3555 0xB465
+0x3556 0xB46C
+0x3557 0xB480
+0x3558 0xB488
+0x3559 0xB49D
+0x355A 0xB4A4
+0x355B 0xB4A8
+0x355C 0xB4AC
+0x355D 0xB4B5
+0x355E 0xB4B7
+0x355F 0xB4B9
+0x3560 0xB4C0
+0x3561 0xB4C4
+0x3562 0xB4C8
+0x3563 0xB4D0
+0x3564 0xB4D5
+0x3565-0x3566 0xB4DC
+0x3567 0xB4E0
+0x3568-0x3569 0xB4E3
+0x356A 0xB4E6
+0x356B-0x356C 0xB4EC
+0x356D 0xB4EF
+0x356E 0xB4F1
+0x356F 0xB4F8
+0x3570-0x3571 0xB514
+0x3572 0xB518
+0x3573-0x3574 0xB51B
+0x3575-0x3576 0xB524
+0x3577-0x357A 0xB527
+0x357B-0x357C 0xB530
+0x357D 0xB534
+0x357E 0xB538
+0x3621-0x3622 0xB540
+0x3623-0x3625 0xB543
+0x3626-0x3628 0xB54B
+0x3629 0xB550
+0x362A 0xB554
+0x362B-0x362C 0xB55C
+0x362D-0x362F 0xB55F
+0x3630-0x3631 0xB5A0
+0x3632 0xB5A4
+0x3633 0xB5A8
+0x3634-0x3635 0xB5AA
+0x3636-0x3637 0xB5B0
+0x3638-0x363A 0xB5B3
+0x363B-0x363D 0xB5BB
+0x363E 0xB5C0
+0x363F 0xB5C4
+0x3640-0x3641 0xB5CC
+0x3642-0x3644 0xB5CF
+0x3645 0xB5D8
+0x3646 0xB5EC
+0x3647-0x3648 0xB610
+0x3649 0xB614
+0x364A 0xB618
+0x364B 0xB625
+0x364C 0xB62C
+0x364D 0xB634
+0x364E 0xB648
+0x364F 0xB664
+0x3650 0xB668
+0x3651-0x3652 0xB69C
+0x3653 0xB6A0
+0x3654 0xB6A4
+0x3655-0x3656 0xB6AB
+0x3657 0xB6B1
+0x3658 0xB6D4
+0x3659 0xB6F0
+0x365A 0xB6F4
+0x365B 0xB6F8
+0x365C-0x365D 0xB700
+0x365E 0xB705
+0x365F-0x3660 0xB728
+0x3661 0xB72C
+0x3662-0x3663 0xB72F
+0x3664-0x3665 0xB738
+0x3666 0xB73B
+0x3667 0xB744
+0x3668 0xB748
+0x3669 0xB74C
+0x366A-0x366B 0xB754
+0x366C 0xB760
+0x366D 0xB764
+0x366E 0xB768
+0x366F-0x3670 0xB770
+0x3671 0xB773
+0x3672 0xB775
+0x3673-0x3674 0xB77C
+0x3675 0xB780
+0x3676 0xB784
+0x3677-0x3678 0xB78C
+0x3679-0x367C 0xB78F
+0x367D-0x367E 0xB796
+0x3721-0x3722 0xB798
+0x3723 0xB79C
+0x3724 0xB7A0
+0x3725-0x3726 0xB7A8
+0x3727-0x3729 0xB7AB
+0x372A-0x372B 0xB7B4
+0x372C 0xB7B8
+0x372D 0xB7C7
+0x372E 0xB7C9
+0x372F-0x3730 0xB7EC
+0x3731 0xB7F0
+0x3732 0xB7F4
+0x3733-0x3734 0xB7FC
+0x3735-0x3737 0xB7FF
+0x3738-0x373A 0xB807
+0x373B 0xB80C
+0x373C 0xB810
+0x373D-0x373E 0xB818
+0x373F 0xB81B
+0x3740 0xB81D
+0x3741-0x3742 0xB824
+0x3743 0xB828
+0x3744 0xB82C
+0x3745-0x3746 0xB834
+0x3747-0x3749 0xB837
+0x374A 0xB840
+0x374B 0xB844
+0x374C 0xB851
+0x374D 0xB853
+0x374E-0x374F 0xB85C
+0x3750 0xB860
+0x3751 0xB864
+0x3752-0x3753 0xB86C
+0x3754 0xB86F
+0x3755 0xB871
+0x3756 0xB878
+0x3757 0xB87C
+0x3758 0xB88D
+0x3759 0xB8A8
+0x375A 0xB8B0
+0x375B 0xB8B4
+0x375C 0xB8B8
+0x375D-0x375E 0xB8C0
+0x375F 0xB8C3
+0x3760 0xB8C5
+0x3761 0xB8CC
+0x3762 0xB8D0
+0x3763 0xB8D4
+0x3764 0xB8DD
+0x3765 0xB8DF
+0x3766 0xB8E1
+0x3767-0x3768 0xB8E8
+0x3769 0xB8EC
+0x376A 0xB8F0
+0x376B-0x376C 0xB8F8
+0x376D 0xB8FB
+0x376E 0xB8FD
+0x376F 0xB904
+0x3770 0xB918
+0x3771 0xB920
+0x3772-0x3773 0xB93C
+0x3774 0xB940
+0x3775 0xB944
+0x3776 0xB94C
+0x3777 0xB94F
+0x3778 0xB951
+0x3779-0x377A 0xB958
+0x377B 0xB95C
+0x377C 0xB960
+0x377D-0x377E 0xB968
+0x3821 0xB96B
+0x3822 0xB96D
+0x3823-0x3824 0xB974
+0x3825 0xB978
+0x3826 0xB97C
+0x3827-0x3828 0xB984
+0x3829 0xB987
+0x382A-0x382B 0xB989
+0x382C-0x382D 0xB98D
+0x382E-0x382F 0xB9AC
+0x3830 0xB9B0
+0x3831 0xB9B4
+0x3832-0x3833 0xB9BC
+0x3834 0xB9BF
+0x3835 0xB9C1
+0x3836-0x3837 0xB9C8
+0x3838 0xB9CC
+0x3839-0x383D 0xB9CE
+0x383E-0x383F 0xB9D8
+0x3840 0xB9DB
+0x3841-0x3842 0xB9DD
+0x3843 0xB9E1
+0x3844-0x3846 0xB9E3
+0x3847 0xB9E8
+0x3848 0xB9EC
+0x3849-0x384A 0xB9F4
+0x384B-0x384E 0xB9F7
+0x384F-0x3850 0xBA00
+0x3851 0xBA08
+0x3852 0xBA15
+0x3853-0x3854 0xBA38
+0x3855 0xBA3C
+0x3856 0xBA40
+0x3857 0xBA42
+0x3858-0x3859 0xBA48
+0x385A 0xBA4B
+0x385B-0x385C 0xBA4D
+0x385D-0x385F 0xBA53
+0x3860 0xBA58
+0x3861 0xBA5C
+0x3862-0x3863 0xBA64
+0x3864-0x3866 0xBA67
+0x3867-0x3868 0xBA70
+0x3869 0xBA74
+0x386A 0xBA78
+0x386B-0x386D 0xBA83
+0x386E 0xBA87
+0x386F 0xBA8C
+0x3870-0x3871 0xBAA8
+0x3872-0x3873 0xBAAB
+0x3874 0xBAB0
+0x3875 0xBAB2
+0x3876-0x3877 0xBAB8
+0x3878 0xBABB
+0x3879 0xBABD
+0x387A 0xBAC4
+0x387B 0xBAC8
+0x387C-0x387D 0xBAD8
+0x387E 0xBAFC
+0x3921 0xBB00
+0x3922 0xBB04
+0x3923 0xBB0D
+0x3924 0xBB0F
+0x3925 0xBB11
+0x3926 0xBB18
+0x3927 0xBB1C
+0x3928 0xBB20
+0x3929 0xBB29
+0x392A 0xBB2B
+0x392B-0x392D 0xBB34
+0x392E 0xBB38
+0x392F-0x3932 0xBB3B
+0x3933-0x3934 0xBB44
+0x3935 0xBB47
+0x3936 0xBB49
+0x3937 0xBB4D
+0x3938-0x3939 0xBB4F
+0x393A 0xBB54
+0x393B 0xBB58
+0x393C 0xBB61
+0x393D 0xBB63
+0x393E 0xBB6C
+0x393F 0xBB88
+0x3940 0xBB8C
+0x3941 0xBB90
+0x3942 0xBBA4
+0x3943 0xBBA8
+0x3944 0xBBAC
+0x3945 0xBBB4
+0x3946 0xBBB7
+0x3947 0xBBC0
+0x3948 0xBBC4
+0x3949 0xBBC8
+0x394A 0xBBD0
+0x394B 0xBBD3
+0x394C-0x394D 0xBBF8
+0x394E 0xBBFC
+0x394F-0x3950 0xBBFF
+0x3951 0xBC02
+0x3952-0x3953 0xBC08
+0x3954-0x3956 0xBC0B
+0x3957 0xBC0F
+0x3958 0xBC11
+0x3959-0x395D 0xBC14
+0x395E-0x3962 0xBC1B
+0x3963-0x3964 0xBC24
+0x3965 0xBC27
+0x3966 0xBC29
+0x3967 0xBC2D
+0x3968-0x3969 0xBC30
+0x396A 0xBC34
+0x396B 0xBC38
+0x396C-0x396D 0xBC40
+0x396E-0x3970 0xBC43
+0x3971 0xBC49
+0x3972-0x3973 0xBC4C
+0x3974 0xBC50
+0x3975 0xBC5D
+0x3976-0x3977 0xBC84
+0x3978 0xBC88
+0x3979-0x397A 0xBC8B
+0x397B 0xBC8E
+0x397C-0x397D 0xBC94
+0x397E 0xBC97
+0x3A21-0x3A22 0xBC99
+0x3A23-0x3A24 0xBCA0
+0x3A25 0xBCA4
+0x3A26-0x3A27 0xBCA7
+0x3A28-0x3A29 0xBCB0
+0x3A2A-0x3A2C 0xBCB3
+0x3A2D-0x3A2E 0xBCBC
+0x3A2F 0xBCC0
+0x3A30 0xBCC4
+0x3A31 0xBCCD
+0x3A32-0x3A34 0xBCCF
+0x3A35 0xBCD5
+0x3A36 0xBCD8
+0x3A37 0xBCDC
+0x3A38-0x3A3A 0xBCF4
+0x3A3B 0xBCF8
+0x3A3C 0xBCFC
+0x3A3D-0x3A3E 0xBD04
+0x3A3F 0xBD07
+0x3A40 0xBD09
+0x3A41 0xBD10
+0x3A42 0xBD14
+0x3A43 0xBD24
+0x3A44 0xBD2C
+0x3A45 0xBD40
+0x3A46-0x3A47 0xBD48
+0x3A48 0xBD4C
+0x3A49 0xBD50
+0x3A4A-0x3A4B 0xBD58
+0x3A4C 0xBD64
+0x3A4D 0xBD68
+0x3A4E-0x3A4F 0xBD80
+0x3A50 0xBD84
+0x3A51-0x3A54 0xBD87
+0x3A55-0x3A56 0xBD90
+0x3A57 0xBD93
+0x3A58 0xBD95
+0x3A59-0x3A5A 0xBD99
+0x3A5B 0xBD9C
+0x3A5C 0xBDA4
+0x3A5D 0xBDB0
+0x3A5E 0xBDB8
+0x3A5F-0x3A60 0xBDD4
+0x3A61 0xBDD8
+0x3A62 0xBDDC
+0x3A63 0xBDE9
+0x3A64 0xBDF0
+0x3A65 0xBDF4
+0x3A66 0xBDF8
+0x3A67 0xBE00
+0x3A68 0xBE03
+0x3A69 0xBE05
+0x3A6A-0x3A6B 0xBE0C
+0x3A6C 0xBE10
+0x3A6D 0xBE14
+0x3A6E-0x3A6F 0xBE1C
+0x3A70 0xBE1F
+0x3A71-0x3A72 0xBE44
+0x3A73 0xBE48
+0x3A74 0xBE4C
+0x3A75 0xBE4E
+0x3A76-0x3A77 0xBE54
+0x3A78 0xBE57
+0x3A79-0x3A7B 0xBE59
+0x3A7C-0x3A7D 0xBE60
+0x3A7E 0xBE64
+0x3B21 0xBE68
+0x3B22 0xBE6A
+0x3B23-0x3B24 0xBE70
+0x3B25-0x3B27 0xBE73
+0x3B28-0x3B2A 0xBE7B
+0x3B2B 0xBE80
+0x3B2C 0xBE84
+0x3B2D-0x3B2E 0xBE8C
+0x3B2F-0x3B31 0xBE8F
+0x3B32-0x3B33 0xBE98
+0x3B34 0xBEA8
+0x3B35-0x3B36 0xBED0
+0x3B37 0xBED4
+0x3B38-0x3B39 0xBED7
+0x3B3A 0xBEE0
+0x3B3B-0x3B3D 0xBEE3
+0x3B3E 0xBEEC
+0x3B3F 0xBF01
+0x3B40-0x3B41 0xBF08
+0x3B42-0x3B43 0xBF18
+0x3B44-0x3B46 0xBF1B
+0x3B47-0x3B48 0xBF40
+0x3B49 0xBF44
+0x3B4A 0xBF48
+0x3B4B-0x3B4C 0xBF50
+0x3B4D 0xBF55
+0x3B4E 0xBF94
+0x3B4F 0xBFB0
+0x3B50 0xBFC5
+0x3B51-0x3B52 0xBFCC
+0x3B53 0xBFD0
+0x3B54 0xBFD4
+0x3B55 0xBFDC
+0x3B56 0xBFDF
+0x3B57 0xBFE1
+0x3B58 0xC03C
+0x3B59 0xC051
+0x3B5A 0xC058
+0x3B5B 0xC05C
+0x3B5C 0xC060
+0x3B5D-0x3B5E 0xC068
+0x3B5F-0x3B60 0xC090
+0x3B61 0xC094
+0x3B62 0xC098
+0x3B63-0x3B64 0xC0A0
+0x3B65 0xC0A3
+0x3B66 0xC0A5
+0x3B67-0x3B68 0xC0AC
+0x3B69-0x3B6A 0xC0AF
+0x3B6B-0x3B6E 0xC0B3
+0x3B6F-0x3B70 0xC0BC
+0x3B71-0x3B73 0xC0BF
+0x3B74 0xC0C5
+0x3B75-0x3B76 0xC0C8
+0x3B77 0xC0CC
+0x3B78 0xC0D0
+0x3B79-0x3B7A 0xC0D8
+0x3B7B-0x3B7D 0xC0DB
+0x3B7E 0xC0E4
+0x3C21 0xC0E5
+0x3C22 0xC0E8
+0x3C23 0xC0EC
+0x3C24-0x3C25 0xC0F4
+0x3C26 0xC0F7
+0x3C27 0xC0F9
+0x3C28 0xC100
+0x3C29 0xC104
+0x3C2A 0xC108
+0x3C2B 0xC110
+0x3C2C 0xC115
+0x3C2D-0x3C31 0xC11C
+0x3C32-0x3C33 0xC123
+0x3C34-0x3C35 0xC126
+0x3C36-0x3C37 0xC12C
+0x3C38-0x3C3A 0xC12F
+0x3C3B 0xC136
+0x3C3C-0x3C3D 0xC138
+0x3C3E 0xC13C
+0x3C3F 0xC140
+0x3C40-0x3C41 0xC148
+0x3C42-0x3C44 0xC14B
+0x3C45-0x3C46 0xC154
+0x3C47 0xC158
+0x3C48 0xC15C
+0x3C49-0x3C4A 0xC164
+0x3C4B-0x3C4D 0xC167
+0x3C4E 0xC170
+0x3C4F 0xC174
+0x3C50 0xC178
+0x3C51 0xC185
+0x3C52-0x3C54 0xC18C
+0x3C55 0xC190
+0x3C56 0xC194
+0x3C57 0xC196
+0x3C58-0x3C59 0xC19C
+0x3C5A 0xC19F
+0x3C5B 0xC1A1
+0x3C5C 0xC1A5
+0x3C5D-0x3C5E 0xC1A8
+0x3C5F 0xC1AC
+0x3C60 0xC1B0
+0x3C61 0xC1BD
+0x3C62 0xC1C4
+0x3C63 0xC1C8
+0x3C64 0xC1CC
+0x3C65 0xC1D4
+0x3C66-0x3C67 0xC1D7
+0x3C68 0xC1E0
+0x3C69 0xC1E4
+0x3C6A 0xC1E8
+0x3C6B-0x3C6C 0xC1F0
+0x3C6D 0xC1F3
+0x3C6E-0x3C6F 0xC1FC
+0x3C70 0xC200
+0x3C71 0xC204
+0x3C72-0x3C73 0xC20C
+0x3C74 0xC20F
+0x3C75 0xC211
+0x3C76-0x3C77 0xC218
+0x3C78 0xC21C
+0x3C79-0x3C7A 0xC21F
+0x3C7B-0x3C7C 0xC228
+0x3C7D 0xC22B
+0x3C7E 0xC22D
+0x3D21 0xC22F
+0x3D22-0x3D23 0xC231
+0x3D24 0xC234
+0x3D25 0xC248
+0x3D26-0x3D27 0xC250
+0x3D28 0xC254
+0x3D29 0xC258
+0x3D2A 0xC260
+0x3D2B 0xC265
+0x3D2C-0x3D2D 0xC26C
+0x3D2E 0xC270
+0x3D2F 0xC274
+0x3D30-0x3D31 0xC27C
+0x3D32 0xC27F
+0x3D33 0xC281
+0x3D34-0x3D35 0xC288
+0x3D36 0xC290
+0x3D37 0xC298
+0x3D38 0xC29B
+0x3D39 0xC29D
+0x3D3A-0x3D3B 0xC2A4
+0x3D3C 0xC2A8
+0x3D3D-0x3D3E 0xC2AC
+0x3D3F-0x3D40 0xC2B4
+0x3D41 0xC2B7
+0x3D42 0xC2B9
+0x3D43-0x3D44 0xC2DC
+0x3D45 0xC2E0
+0x3D46-0x3D47 0xC2E3
+0x3D48-0x3D4A 0xC2EB
+0x3D4B 0xC2EF
+0x3D4C 0xC2F1
+0x3D4D 0xC2F6
+0x3D4E-0x3D4F 0xC2F8
+0x3D50-0x3D51 0xC2FB
+0x3D52 0xC300
+0x3D53-0x3D54 0xC308
+0x3D55-0x3D56 0xC30C
+0x3D57-0x3D59 0xC313
+0x3D5A 0xC318
+0x3D5B 0xC31C
+0x3D5C-0x3D5D 0xC324
+0x3D5E-0x3D5F 0xC328
+0x3D60 0xC345
+0x3D61-0x3D62 0xC368
+0x3D63 0xC36C
+0x3D64 0xC370
+0x3D65 0xC372
+0x3D66-0x3D67 0xC378
+0x3D68-0x3D69 0xC37C
+0x3D6A 0xC384
+0x3D6B 0xC388
+0x3D6C 0xC38C
+0x3D6D 0xC3C0
+0x3D6E-0x3D6F 0xC3D8
+0x3D70 0xC3DC
+0x3D71-0x3D72 0xC3DF
+0x3D73 0xC3E2
+0x3D74-0x3D75 0xC3E8
+0x3D76 0xC3ED
+0x3D77-0x3D78 0xC3F4
+0x3D79 0xC3F8
+0x3D7A 0xC408
+0x3D7B 0xC410
+0x3D7C 0xC424
+0x3D7D 0xC42C
+0x3D7E 0xC430
+0x3E21 0xC434
+0x3E22-0x3E23 0xC43C
+0x3E24 0xC448
+0x3E25-0x3E26 0xC464
+0x3E27 0xC468
+0x3E28 0xC46C
+0x3E29-0x3E2A 0xC474
+0x3E2B 0xC479
+0x3E2C 0xC480
+0x3E2D 0xC494
+0x3E2E 0xC49C
+0x3E2F 0xC4B8
+0x3E30 0xC4BC
+0x3E31 0xC4E9
+0x3E32-0x3E33 0xC4F0
+0x3E34 0xC4F4
+0x3E35 0xC4F8
+0x3E36 0xC4FA
+0x3E37-0x3E39 0xC4FF
+0x3E3A 0xC50C
+0x3E3B 0xC510
+0x3E3C 0xC514
+0x3E3D 0xC51C
+0x3E3E-0x3E3F 0xC528
+0x3E40 0xC52C
+0x3E41 0xC530
+0x3E42-0x3E43 0xC538
+0x3E44 0xC53B
+0x3E45 0xC53D
+0x3E46-0x3E47 0xC544
+0x3E48-0x3E4A 0xC548
+0x3E4B-0x3E4D 0xC54C
+0x3E4E-0x3E50 0xC553
+0x3E51-0x3E53 0xC557
+0x3E54-0x3E55 0xC55D
+0x3E56-0x3E57 0xC560
+0x3E58 0xC564
+0x3E59 0xC568
+0x3E5A-0x3E5B 0xC570
+0x3E5C-0x3E5E 0xC573
+0x3E5F-0x3E60 0xC57C
+0x3E61 0xC580
+0x3E62 0xC584
+0x3E63 0xC587
+0x3E64-0x3E65 0xC58C
+0x3E66 0xC58F
+0x3E67 0xC591
+0x3E68 0xC595
+0x3E69-0x3E6A 0xC597
+0x3E6B 0xC59C
+0x3E6C 0xC5A0
+0x3E6D 0xC5A9
+0x3E6E-0x3E6F 0xC5B4
+0x3E70-0x3E71 0xC5B8
+0x3E72-0x3E75 0xC5BB
+0x3E76-0x3E7C 0xC5C4
+0x3E7D 0xC5CC
+0x3E7E 0xC5CE
+0x3F21-0x3F22 0xC5D0
+0x3F23 0xC5D4
+0x3F24 0xC5D8
+0x3F25-0x3F26 0xC5E0
+0x3F27 0xC5E3
+0x3F28 0xC5E5
+0x3F29-0x3F2B 0xC5EC
+0x3F2C 0xC5F0
+0x3F2D 0xC5F4
+0x3F2E-0x3F2F 0xC5F6
+0x3F30-0x3F35 0xC5FC
+0x3F36-0x3F39 0xC605
+0x3F3A 0xC60C
+0x3F3B 0xC610
+0x3F3C-0x3F3D 0xC618
+0x3F3E-0x3F3F 0xC61B
+0x3F40-0x3F41 0xC624
+0x3F42 0xC628
+0x3F43-0x3F45 0xC62C
+0x3F46 0xC630
+0x3F47-0x3F49 0xC633
+0x3F4A 0xC637
+0x3F4B 0xC639
+0x3F4C 0xC63B
+0x3F4D-0x3F4E 0xC640
+0x3F4F 0xC644
+0x3F50 0xC648
+0x3F51-0x3F52 0xC650
+0x3F53-0x3F55 0xC653
+0x3F56-0x3F57 0xC65C
+0x3F58 0xC660
+0x3F59 0xC66C
+0x3F5A 0xC66F
+0x3F5B 0xC671
+0x3F5C-0x3F5D 0xC678
+0x3F5E 0xC67C
+0x3F5F 0xC680
+0x3F60-0x3F61 0xC688
+0x3F62 0xC68B
+0x3F63 0xC68D
+0x3F64-0x3F65 0xC694
+0x3F66 0xC698
+0x3F67 0xC69C
+0x3F68-0x3F69 0xC6A4
+0x3F6A 0xC6A7
+0x3F6B 0xC6A9
+0x3F6C-0x3F6D 0xC6B0
+0x3F6E 0xC6B4
+0x3F6F-0x3F71 0xC6B8
+0x3F72-0x3F73 0xC6C0
+0x3F74 0xC6C3
+0x3F75 0xC6C5
+0x3F76-0x3F77 0xC6CC
+0x3F78 0xC6D0
+0x3F79 0xC6D4
+0x3F7A-0x3F7B 0xC6DC
+0x3F7C-0x3F7D 0xC6E0
+0x3F7E 0xC6E8
+0x4021 0xC6E9
+0x4022 0xC6EC
+0x4023 0xC6F0
+0x4024-0x4025 0xC6F8
+0x4026 0xC6FD
+0x4027-0x4028 0xC704
+0x4029 0xC708
+0x402A 0xC70C
+0x402B-0x402C 0xC714
+0x402D 0xC717
+0x402E 0xC719
+0x402F-0x4030 0xC720
+0x4031 0xC724
+0x4032 0xC728
+0x4033-0x4034 0xC730
+0x4035 0xC733
+0x4036 0xC735
+0x4037 0xC737
+0x4038-0x4039 0xC73C
+0x403A 0xC740
+0x403B 0xC744
+0x403C 0xC74A
+0x403D-0x403E 0xC74C
+0x403F 0xC74F
+0x4040-0x4047 0xC751
+0x4048 0xC75C
+0x4049 0xC760
+0x404A 0xC768
+0x404B 0xC76B
+0x404C-0x404D 0xC774
+0x404E 0xC778
+0x404F-0x4051 0xC77C
+0x4052-0x4054 0xC783
+0x4055-0x4058 0xC787
+0x4059 0xC78E
+0x405A-0x405B 0xC790
+0x405C 0xC794
+0x405D-0x405F 0xC796
+0x4060 0xC79A
+0x4061-0x4062 0xC7A0
+0x4063-0x4066 0xC7A3
+0x4067-0x4068 0xC7AC
+0x4069 0xC7B0
+0x406A 0xC7B4
+0x406B-0x406C 0xC7BC
+0x406D-0x406F 0xC7BF
+0x4070-0x4071 0xC7C8
+0x4072 0xC7CC
+0x4073 0xC7CE
+0x4074 0xC7D0
+0x4075 0xC7D8
+0x4076 0xC7DD
+0x4077 0xC7E4
+0x4078 0xC7E8
+0x4079 0xC7EC
+0x407A-0x407B 0xC800
+0x407C 0xC804
+0x407D 0xC808
+0x407E 0xC80A
+0x4121-0x4122 0xC810
+0x4123 0xC813
+0x4124-0x4125 0xC815
+0x4126-0x4127 0xC81C
+0x4128 0xC820
+0x4129 0xC824
+0x412A-0x412B 0xC82C
+0x412C 0xC82F
+0x412D 0xC831
+0x412E 0xC838
+0x412F 0xC83C
+0x4130 0xC840
+0x4131-0x4132 0xC848
+0x4133-0x4134 0xC84C
+0x4135 0xC854
+0x4136-0x4137 0xC870
+0x4138 0xC874
+0x4139 0xC878
+0x413A 0xC87A
+0x413B-0x413C 0xC880
+0x413D 0xC883
+0x413E-0x4140 0xC885
+0x4141-0x4143 0xC88B
+0x4144 0xC894
+0x4145 0xC89D
+0x4146 0xC89F
+0x4147 0xC8A1
+0x4148 0xC8A8
+0x4149-0x414A 0xC8BC
+0x414B 0xC8C4
+0x414C 0xC8C8
+0x414D 0xC8CC
+0x414E-0x414F 0xC8D4
+0x4150 0xC8D7
+0x4151 0xC8D9
+0x4152-0x4153 0xC8E0
+0x4154 0xC8E4
+0x4155 0xC8F5
+0x4156-0x4157 0xC8FC
+0x4158 0xC900
+0x4159-0x415B 0xC904
+0x415C-0x415D 0xC90C
+0x415E 0xC90F
+0x415F 0xC911
+0x4160 0xC918
+0x4161 0xC92C
+0x4162 0xC934
+0x4163-0x4164 0xC950
+0x4165 0xC954
+0x4166 0xC958
+0x4167-0x4168 0xC960
+0x4169 0xC963
+0x416A 0xC96C
+0x416B 0xC970
+0x416C 0xC974
+0x416D 0xC97C
+0x416E-0x416F 0xC988
+0x4170 0xC98C
+0x4171 0xC990
+0x4172-0x4173 0xC998
+0x4174 0xC99B
+0x4175 0xC99D
+0x4176-0x4177 0xC9C0
+0x4178 0xC9C4
+0x4179-0x417A 0xC9C7
+0x417B 0xC9CA
+0x417C-0x417D 0xC9D0
+0x417E 0xC9D3
+0x4221-0x4222 0xC9D5
+0x4223-0x4224 0xC9D9
+0x4225-0x4226 0xC9DC
+0x4227 0xC9E0
+0x4228 0xC9E2
+0x4229 0xC9E4
+0x422A 0xC9E7
+0x422B-0x422C 0xC9EC
+0x422D-0x422F 0xC9EF
+0x4230-0x4231 0xC9F8
+0x4232 0xC9FC
+0x4233 0xCA00
+0x4234-0x4235 0xCA08
+0x4236-0x4238 0xCA0B
+0x4239 0xCA14
+0x423A 0xCA18
+0x423B 0xCA29
+0x423C-0x423D 0xCA4C
+0x423E 0xCA50
+0x423F 0xCA54
+0x4240-0x4241 0xCA5C
+0x4242-0x4244 0xCA5F
+0x4245 0xCA68
+0x4246 0xCA7D
+0x4247 0xCA84
+0x4248 0xCA98
+0x4249-0x424A 0xCABC
+0x424B 0xCAC0
+0x424C 0xCAC4
+0x424D-0x424E 0xCACC
+0x424F 0xCACF
+0x4250 0xCAD1
+0x4251 0xCAD3
+0x4252-0x4253 0xCAD8
+0x4254 0xCAE0
+0x4255 0xCAEC
+0x4256 0xCAF4
+0x4257 0xCB08
+0x4258 0xCB10
+0x4259 0xCB14
+0x425A 0xCB18
+0x425B-0x425C 0xCB20
+0x425D 0xCB41
+0x425E-0x425F 0xCB48
+0x4260 0xCB4C
+0x4261 0xCB50
+0x4262-0x4263 0xCB58
+0x4264 0xCB5D
+0x4265 0xCB64
+0x4266-0x4267 0xCB78
+0x4268 0xCB9C
+0x4269 0xCBB8
+0x426A 0xCBD4
+0x426B 0xCBE4
+0x426C 0xCBE7
+0x426D 0xCBE9
+0x426E-0x426F 0xCC0C
+0x4270 0xCC10
+0x4271 0xCC14
+0x4272-0x4273 0xCC1C
+0x4274-0x4275 0xCC21
+0x4276-0x4278 0xCC27
+0x4279 0xCC2C
+0x427A 0xCC2E
+0x427B 0xCC30
+0x427C-0x427D 0xCC38
+0x427E 0xCC3B
+0x4321-0x4323 0xCC3C
+0x4324-0x4325 0xCC44
+0x4326 0xCC48
+0x4327 0xCC4C
+0x4328-0x4329 0xCC54
+0x432A-0x432C 0xCC57
+0x432D 0xCC60
+0x432E 0xCC64
+0x432F 0xCC66
+0x4330 0xCC68
+0x4331 0xCC70
+0x4332 0xCC75
+0x4333-0x4334 0xCC98
+0x4335 0xCC9C
+0x4336 0xCCA0
+0x4337-0x4338 0xCCA8
+0x4339-0x433B 0xCCAB
+0x433C-0x433D 0xCCB4
+0x433E 0xCCB8
+0x433F 0xCCBC
+0x4340-0x4341 0xCCC4
+0x4342 0xCCC7
+0x4343 0xCCC9
+0x4344 0xCCD0
+0x4345 0xCCD4
+0x4346 0xCCE4
+0x4347 0xCCEC
+0x4348 0xCCF0
+0x4349 0xCD01
+0x434A-0x434B 0xCD08
+0x434C 0xCD0C
+0x434D 0xCD10
+0x434E-0x434F 0xCD18
+0x4350 0xCD1B
+0x4351 0xCD1D
+0x4352 0xCD24
+0x4353 0xCD28
+0x4354 0xCD2C
+0x4355 0xCD39
+0x4356 0xCD5C
+0x4357 0xCD60
+0x4358 0xCD64
+0x4359-0x435A 0xCD6C
+0x435B 0xCD6F
+0x435C 0xCD71
+0x435D 0xCD78
+0x435E 0xCD88
+0x435F-0x4360 0xCD94
+0x4361 0xCD98
+0x4362 0xCD9C
+0x4363-0x4364 0xCDA4
+0x4365 0xCDA7
+0x4366 0xCDA9
+0x4367 0xCDB0
+0x4368 0xCDC4
+0x4369 0xCDCC
+0x436A 0xCDD0
+0x436B 0xCDE8
+0x436C 0xCDEC
+0x436D 0xCDF0
+0x436E-0x436F 0xCDF8
+0x4370 0xCDFB
+0x4371 0xCDFD
+0x4372 0xCE04
+0x4373 0xCE08
+0x4374 0xCE0C
+0x4375 0xCE14
+0x4376 0xCE19
+0x4377-0x4378 0xCE20
+0x4379 0xCE24
+0x437A 0xCE28
+0x437B-0x437C 0xCE30
+0x437D 0xCE33
+0x437E 0xCE35
+0x4421-0x4422 0xCE58
+0x4423 0xCE5C
+0x4424-0x4426 0xCE5F
+0x4427-0x4428 0xCE68
+0x4429 0xCE6B
+0x442A 0xCE6D
+0x442B-0x442C 0xCE74
+0x442D 0xCE78
+0x442E 0xCE7C
+0x442F-0x4430 0xCE84
+0x4431 0xCE87
+0x4432 0xCE89
+0x4433-0x4434 0xCE90
+0x4435 0xCE94
+0x4436 0xCE98
+0x4437-0x4438 0xCEA0
+0x4439-0x443B 0xCEA3
+0x443C-0x443D 0xCEAC
+0x443E 0xCEC1
+0x443F-0x4440 0xCEE4
+0x4441 0xCEE8
+0x4442-0x4443 0xCEEB
+0x4444-0x4445 0xCEF4
+0x4446-0x4448 0xCEF7
+0x4449-0x444A 0xCF00
+0x444B 0xCF04
+0x444C 0xCF08
+0x444D-0x444E 0xCF10
+0x444F 0xCF13
+0x4450 0xCF15
+0x4451 0xCF1C
+0x4452 0xCF20
+0x4453 0xCF24
+0x4454-0x4455 0xCF2C
+0x4456-0x4458 0xCF2F
+0x4459 0xCF38
+0x445A-0x445B 0xCF54
+0x445C 0xCF58
+0x445D 0xCF5C
+0x445E-0x445F 0xCF64
+0x4460 0xCF67
+0x4461 0xCF69
+0x4462-0x4463 0xCF70
+0x4464 0xCF74
+0x4465 0xCF78
+0x4466 0xCF80
+0x4467 0xCF85
+0x4468 0xCF8C
+0x4469 0xCFA1
+0x446A 0xCFA8
+0x446B 0xCFB0
+0x446C 0xCFC4
+0x446D-0x446E 0xCFE0
+0x446F 0xCFE4
+0x4470 0xCFE8
+0x4471-0x4472 0xCFF0
+0x4473 0xCFF3
+0x4474 0xCFF5
+0x4475 0xCFFC
+0x4476 0xD000
+0x4477 0xD004
+0x4478 0xD011
+0x4479 0xD018
+0x447A 0xD02D
+0x447B-0x447C 0xD034
+0x447D 0xD038
+0x447E 0xD03C
+0x4521-0x4522 0xD044
+0x4523 0xD047
+0x4524 0xD049
+0x4525 0xD050
+0x4526 0xD054
+0x4527 0xD058
+0x4528 0xD060
+0x4529-0x452A 0xD06C
+0x452B 0xD070
+0x452C 0xD074
+0x452D-0x452E 0xD07C
+0x452F 0xD081
+0x4530-0x4531 0xD0A4
+0x4532 0xD0A8
+0x4533 0xD0AC
+0x4534-0x4535 0xD0B4
+0x4536 0xD0B7
+0x4537 0xD0B9
+0x4538-0x4539 0xD0C0
+0x453A 0xD0C4
+0x453B-0x453C 0xD0C8
+0x453D-0x453E 0xD0D0
+0x453F-0x4541 0xD0D3
+0x4542-0x4543 0xD0DC
+0x4544 0xD0E0
+0x4545 0xD0E4
+0x4546-0x4547 0xD0EC
+0x4548-0x454A 0xD0EF
+0x454B 0xD0F8
+0x454C 0xD10D
+0x454D-0x454E 0xD130
+0x454F 0xD134
+0x4550 0xD138
+0x4551 0xD13A
+0x4552-0x4553 0xD140
+0x4554-0x4556 0xD143
+0x4557-0x4558 0xD14C
+0x4559 0xD150
+0x455A 0xD154
+0x455B-0x455C 0xD15C
+0x455D 0xD15F
+0x455E 0xD161
+0x455F 0xD168
+0x4560 0xD16C
+0x4561 0xD17C
+0x4562 0xD184
+0x4563 0xD188
+0x4564-0x4565 0xD1A0
+0x4566 0xD1A4
+0x4567 0xD1A8
+0x4568-0x4569 0xD1B0
+0x456A 0xD1B3
+0x456B 0xD1B5
+0x456C 0xD1BA
+0x456D 0xD1BC
+0x456E 0xD1C0
+0x456F 0xD1D8
+0x4570 0xD1F4
+0x4571 0xD1F8
+0x4572 0xD207
+0x4573 0xD209
+0x4574 0xD210
+0x4575-0x4576 0xD22C
+0x4577 0xD230
+0x4578 0xD234
+0x4579-0x457A 0xD23C
+0x457B 0xD23F
+0x457C 0xD241
+0x457D 0xD248
+0x457E 0xD25C
+0x4621 0xD264
+0x4622-0x4623 0xD280
+0x4624 0xD284
+0x4625 0xD288
+0x4626-0x4627 0xD290
+0x4628 0xD295
+0x4629 0xD29C
+0x462A 0xD2A0
+0x462B 0xD2A4
+0x462C 0xD2AC
+0x462D 0xD2B1
+0x462E-0x462F 0xD2B8
+0x4630 0xD2BC
+0x4631-0x4632 0xD2BF
+0x4633 0xD2C2
+0x4634-0x4635 0xD2C8
+0x4636 0xD2CB
+0x4637 0xD2D4
+0x4638 0xD2D8
+0x4639 0xD2DC
+0x463A-0x463B 0xD2E4
+0x463C-0x463D 0xD2F0
+0x463E 0xD2F4
+0x463F 0xD2F8
+0x4640-0x4641 0xD300
+0x4642 0xD303
+0x4643 0xD305
+0x4644-0x4646 0xD30C
+0x4647 0xD310
+0x4648 0xD314
+0x4649 0xD316
+0x464A-0x464B 0xD31C
+0x464C-0x464E 0xD31F
+0x464F 0xD325
+0x4650-0x4651 0xD328
+0x4652 0xD32C
+0x4653 0xD330
+0x4654-0x4655 0xD338
+0x4656-0x4658 0xD33B
+0x4659-0x465A 0xD344
+0x465B-0x465C 0xD37C
+0x465D 0xD380
+0x465E 0xD384
+0x465F-0x4660 0xD38C
+0x4661-0x4663 0xD38F
+0x4664-0x4665 0xD398
+0x4666 0xD39C
+0x4667 0xD3A0
+0x4668-0x4669 0xD3A8
+0x466A 0xD3AB
+0x466B 0xD3AD
+0x466C 0xD3B4
+0x466D 0xD3B8
+0x466E 0xD3BC
+0x466F-0x4670 0xD3C4
+0x4671-0x4672 0xD3C8
+0x4673 0xD3D0
+0x4674 0xD3D8
+0x4675 0xD3E1
+0x4676 0xD3E3
+0x4677-0x4678 0xD3EC
+0x4679 0xD3F0
+0x467A 0xD3F4
+0x467B-0x467C 0xD3FC
+0x467D 0xD3FF
+0x467E 0xD401
+0x4721 0xD408
+0x4722 0xD41D
+0x4723 0xD440
+0x4724 0xD444
+0x4725 0xD45C
+0x4726 0xD460
+0x4727 0xD464
+0x4728 0xD46D
+0x4729 0xD46F
+0x472A-0x472B 0xD478
+0x472C 0xD47C
+0x472D-0x472E 0xD47F
+0x472F 0xD482
+0x4730-0x4731 0xD488
+0x4732 0xD48B
+0x4733 0xD48D
+0x4734 0xD494
+0x4735 0xD4A9
+0x4736 0xD4CC
+0x4737 0xD4D0
+0x4738 0xD4D4
+0x4739 0xD4DC
+0x473A 0xD4DF
+0x473B 0xD4E8
+0x473C 0xD4EC
+0x473D 0xD4F0
+0x473E 0xD4F8
+0x473F 0xD4FB
+0x4740 0xD4FD
+0x4741 0xD504
+0x4742 0xD508
+0x4743 0xD50C
+0x4744-0x4745 0xD514
+0x4746 0xD517
+0x4747-0x4748 0xD53C
+0x4749 0xD540
+0x474A 0xD544
+0x474B-0x474C 0xD54C
+0x474D 0xD54F
+0x474E 0xD551
+0x474F-0x4750 0xD558
+0x4751 0xD55C
+0x4752 0xD560
+0x4753 0xD565
+0x4754-0x4755 0xD568
+0x4756 0xD56B
+0x4757 0xD56D
+0x4758-0x4759 0xD574
+0x475A 0xD578
+0x475B 0xD57C
+0x475C-0x475D 0xD584
+0x475E-0x4760 0xD587
+0x4761 0xD590
+0x4762 0xD5A5
+0x4763-0x4764 0xD5C8
+0x4765 0xD5CC
+0x4766 0xD5D0
+0x4767 0xD5D2
+0x4768-0x4769 0xD5D8
+0x476A 0xD5DB
+0x476B 0xD5DD
+0x476C-0x476D 0xD5E4
+0x476E 0xD5E8
+0x476F 0xD5EC
+0x4770-0x4771 0xD5F4
+0x4772 0xD5F7
+0x4773 0xD5F9
+0x4774-0x4775 0xD600
+0x4776 0xD604
+0x4777 0xD608
+0x4778-0x4779 0xD610
+0x477A-0x477C 0xD613
+0x477D 0xD61C
+0x477E 0xD620
+0x4821 0xD624
+0x4822 0xD62D
+0x4823-0x4824 0xD638
+0x4825 0xD63C
+0x4826 0xD640
+0x4827 0xD645
+0x4828-0x4829 0xD648
+0x482A 0xD64B
+0x482B 0xD64D
+0x482C 0xD651
+0x482D-0x482E 0xD654
+0x482F 0xD658
+0x4830 0xD65C
+0x4831 0xD667
+0x4832 0xD669
+0x4833-0x4834 0xD670
+0x4835 0xD674
+0x4836 0xD683
+0x4837 0xD685
+0x4838-0x4839 0xD68C
+0x483A 0xD690
+0x483B 0xD694
+0x483C 0xD69D
+0x483D 0xD69F
+0x483E 0xD6A1
+0x483F 0xD6A8
+0x4840 0xD6AC
+0x4841 0xD6B0
+0x4842 0xD6B9
+0x4843 0xD6BB
+0x4844-0x4845 0xD6C4
+0x4846 0xD6C8
+0x4847 0xD6CC
+0x4848 0xD6D1
+0x4849 0xD6D4
+0x484A 0xD6D7
+0x484B 0xD6D9
+0x484C 0xD6E0
+0x484D 0xD6E4
+0x484E 0xD6E8
+0x484F 0xD6F0
+0x4850 0xD6F5
+0x4851-0x4852 0xD6FC
+0x4853 0xD700
+0x4854 0xD704
+0x4855 0xD711
+0x4856-0x4857 0xD718
+0x4858 0xD71C
+0x4859 0xD720
+0x485A-0x485B 0xD728
+0x485C 0xD72B
+0x485D 0xD72D
+0x485E-0x485F 0xD734
+0x4860 0xD738
+0x4861 0xD73C
+0x4862 0xD744
+0x4863 0xD747
+0x4864 0xD749
+0x4865-0x4866 0xD750
+0x4867 0xD754
+0x4868-0x486B 0xD756
+0x486C-0x486D 0xD760
+0x486E 0xD763
+0x486F 0xD765
+0x4870 0xD769
+0x4871 0xD76C
+0x4872 0xD770
+0x4873 0xD774
+0x4874-0x4875 0xD77C
+0x4876 0xD781
+0x4877-0x4878 0xD788
+0x4879 0xD78C
+0x487A 0xD790
+0x487B-0x487C 0xD798
+0x487D 0xD79B
+0x487E 0xD79D
+0x4A21 0x4F3D
+0x4A22 0x4F73
+0x4A23 0x5047
+0x4A24 0x50F9
+0x4A25 0x52A0
+0x4A26 0x53EF
+0x4A27 0x5475
+0x4A28 0x54E5
+0x4A29 0x5609
+0x4A2A 0x5AC1
+0x4A2B 0x5BB6
+0x4A2C 0x6687
+0x4A2D-0x4A2E 0x67B6
+0x4A2F 0x67EF
+0x4A30 0x6B4C
+0x4A31 0x73C2
+0x4A32 0x75C2
+0x4A33 0x7A3C
+0x4A34 0x82DB
+0x4A35 0x8304
+0x4A36 0x8857
+0x4A37 0x8888
+0x4A38 0x8A36
+0x4A39 0x8CC8
+0x4A3A 0x8DCF
+0x4A3B 0x8EFB
+0x4A3C 0x8FE6
+0x4A3D 0x99D5
+0x4A3E 0x523B
+0x4A3F 0x5374
+0x4A40 0x5404
+0x4A41 0x606A
+0x4A42 0x6164
+0x4A43 0x6BBC
+0x4A44 0x73CF
+0x4A45 0x811A
+0x4A46 0x89BA
+0x4A47 0x89D2
+0x4A48 0x95A3
+0x4A49 0x4F83
+0x4A4A 0x520A
+0x4A4B 0x58BE
+0x4A4C 0x5978
+0x4A4D 0x59E6
+0x4A4E 0x5E72
+0x4A4F 0x5E79
+0x4A50 0x61C7
+0x4A51 0x63C0
+0x4A52 0x6746
+0x4A53 0x67EC
+0x4A54 0x687F
+0x4A55 0x6F97
+0x4A56 0x764E
+0x4A57 0x770B
+0x4A58 0x78F5
+0x4A59 0x7A08
+0x4A5A 0x7AFF
+0x4A5B 0x7C21
+0x4A5C 0x809D
+0x4A5D 0x826E
+0x4A5E 0x8271
+0x4A5F 0x8AEB
+0x4A60 0x9593
+0x4A61 0x4E6B
+0x4A62 0x559D
+0x4A63 0x66F7
+0x4A64 0x6E34
+0x4A65 0x78A3
+0x4A66 0x7AED
+0x4A67 0x845B
+0x4A68 0x8910
+0x4A69 0x874E
+0x4A6A 0x97A8
+0x4A6B 0x52D8
+0x4A6C 0x574E
+0x4A6D 0x582A
+0x4A6E 0x5D4C
+0x4A6F 0x611F
+0x4A70 0x61BE
+0x4A71 0x6221
+0x4A72 0x6562
+0x4A73 0x67D1
+0x4A74 0x6A44
+0x4A75 0x6E1B
+0x4A76 0x7518
+0x4A77 0x75B3
+0x4A78 0x76E3
+0x4A79 0x77B0
+0x4A7A 0x7D3A
+0x4A7B 0x90AF
+0x4A7C-0x4A7D 0x9451
+0x4A7E 0x9F95
+0x4B21 0x5323
+0x4B22 0x5CAC
+0x4B23 0x7532
+0x4B24 0x80DB
+0x4B25 0x9240
+0x4B26 0x9598
+0x4B27 0x525B
+0x4B28 0x5808
+0x4B29 0x59DC
+0x4B2A 0x5CA1
+0x4B2B 0x5D17
+0x4B2C 0x5EB7
+0x4B2D 0x5F3A
+0x4B2E 0x5F4A
+0x4B2F 0x6177
+0x4B30 0x6C5F
+0x4B31 0x757A
+0x4B32 0x7586
+0x4B33 0x7CE0
+0x4B34 0x7D73
+0x4B35 0x7DB1
+0x4B36 0x7F8C
+0x4B37 0x8154
+0x4B38 0x8221
+0x4B39 0x8591
+0x4B3A 0x8941
+0x4B3B 0x8B1B
+0x4B3C 0x92FC
+0x4B3D 0x964D
+0x4B3E 0x9C47
+0x4B3F 0x4ECB
+0x4B40 0x4EF7
+0x4B41 0x500B
+0x4B42 0x51F1
+0x4B43 0x584F
+0x4B44 0x6137
+0x4B45 0x613E
+0x4B46 0x6168
+0x4B47 0x6539
+0x4B48 0x69EA
+0x4B49 0x6F11
+0x4B4A 0x75A5
+0x4B4B 0x7686
+0x4B4C 0x76D6
+0x4B4D 0x7B87
+0x4B4E 0x82A5
+0x4B4F 0x84CB
+0x4B50 0xF900
+0x4B51 0x93A7
+0x4B52 0x958B
+0x4B53 0x5580
+0x4B54 0x5BA2
+0x4B55 0x5751
+0x4B56 0xF901
+0x4B57 0x7CB3
+0x4B58 0x7FB9
+0x4B59 0x91B5
+0x4B5A 0x5028
+0x4B5B 0x53BB
+0x4B5C 0x5C45
+0x4B5D 0x5DE8
+0x4B5E 0x62D2
+0x4B5F 0x636E
+0x4B60 0x64DA
+0x4B61 0x64E7
+0x4B62 0x6E20
+0x4B63 0x70AC
+0x4B64 0x795B
+0x4B65 0x8DDD
+0x4B66 0x8E1E
+0x4B67 0xF902
+0x4B68 0x907D
+0x4B69 0x9245
+0x4B6A 0x92F8
+0x4B6B 0x4E7E
+0x4B6C 0x4EF6
+0x4B6D 0x5065
+0x4B6E 0x5DFE
+0x4B6F 0x5EFA
+0x4B70 0x6106
+0x4B71 0x6957
+0x4B72 0x8171
+0x4B73 0x8654
+0x4B74 0x8E47
+0x4B75 0x9375
+0x4B76 0x9A2B
+0x4B77 0x4E5E
+0x4B78 0x5091
+0x4B79 0x6770
+0x4B7A 0x6840
+0x4B7B 0x5109
+0x4B7C 0x528D
+0x4B7D 0x5292
+0x4B7E 0x6AA2
+0x4C21 0x77BC
+0x4C22 0x9210
+0x4C23 0x9ED4
+0x4C24 0x52AB
+0x4C25 0x602F
+0x4C26 0x8FF2
+0x4C27 0x5048
+0x4C28 0x61A9
+0x4C29 0x63ED
+0x4C2A 0x64CA
+0x4C2B 0x683C
+0x4C2C 0x6A84
+0x4C2D 0x6FC0
+0x4C2E 0x8188
+0x4C2F 0x89A1
+0x4C30 0x9694
+0x4C31 0x5805
+0x4C32 0x727D
+0x4C33 0x72AC
+0x4C34 0x7504
+0x4C35 0x7D79
+0x4C36 0x7E6D
+0x4C37 0x80A9
+0x4C38 0x898B
+0x4C39 0x8B74
+0x4C3A 0x9063
+0x4C3B 0x9D51
+0x4C3C 0x6289
+0x4C3D 0x6C7A
+0x4C3E 0x6F54
+0x4C3F 0x7D50
+0x4C40 0x7F3A
+0x4C41 0x8A23
+0x4C42 0x517C
+0x4C43 0x614A
+0x4C44 0x7B9D
+0x4C45 0x8B19
+0x4C46 0x9257
+0x4C47 0x938C
+0x4C48 0x4EAC
+0x4C49 0x4FD3
+0x4C4A 0x501E
+0x4C4B 0x50BE
+0x4C4C 0x5106
+0x4C4D 0x52C1
+0x4C4E 0x52CD
+0x4C4F 0x537F
+0x4C50 0x5770
+0x4C51 0x5883
+0x4C52 0x5E9A
+0x4C53 0x5F91
+0x4C54 0x6176
+0x4C55 0x61AC
+0x4C56 0x64CE
+0x4C57 0x656C
+0x4C58 0x666F
+0x4C59 0x66BB
+0x4C5A 0x66F4
+0x4C5B 0x6897
+0x4C5C 0x6D87
+0x4C5D 0x7085
+0x4C5E 0x70F1
+0x4C5F 0x749F
+0x4C60 0x74A5
+0x4C61 0x74CA
+0x4C62 0x75D9
+0x4C63 0x786C
+0x4C64 0x78EC
+0x4C65 0x7ADF
+0x4C66 0x7AF6
+0x4C67 0x7D45
+0x4C68 0x7D93
+0x4C69 0x8015
+0x4C6A 0x803F
+0x4C6B 0x811B
+0x4C6C 0x8396
+0x4C6D 0x8B66
+0x4C6E 0x8F15
+0x4C6F 0x9015
+0x4C70 0x93E1
+0x4C71 0x9803
+0x4C72 0x9838
+0x4C73 0x9A5A
+0x4C74 0x9BE8
+0x4C75 0x4FC2
+0x4C76 0x5553
+0x4C77 0x583A
+0x4C78 0x5951
+0x4C79 0x5B63
+0x4C7A 0x5C46
+0x4C7B 0x60B8
+0x4C7C 0x6212
+0x4C7D 0x6842
+0x4C7E 0x68B0
+0x4D21 0x68E8
+0x4D22 0x6EAA
+0x4D23 0x754C
+0x4D24 0x7678
+0x4D25 0x78CE
+0x4D26 0x7A3D
+0x4D27 0x7CFB
+0x4D28 0x7E6B
+0x4D29 0x7E7C
+0x4D2A 0x8A08
+0x4D2B 0x8AA1
+0x4D2C 0x8C3F
+0x4D2D 0x968E
+0x4D2E 0x9DC4
+0x4D2F 0x53E4
+0x4D30 0x53E9
+0x4D31 0x544A
+0x4D32 0x5471
+0x4D33 0x56FA
+0x4D34 0x59D1
+0x4D35 0x5B64
+0x4D36 0x5C3B
+0x4D37 0x5EAB
+0x4D38 0x62F7
+0x4D39 0x6537
+0x4D3A 0x6545
+0x4D3B 0x6572
+0x4D3C 0x66A0
+0x4D3D 0x67AF
+0x4D3E 0x69C1
+0x4D3F 0x6CBD
+0x4D40 0x75FC
+0x4D41 0x7690
+0x4D42 0x777E
+0x4D43 0x7A3F
+0x4D44 0x7F94
+0x4D45 0x8003
+0x4D46 0x80A1
+0x4D47 0x818F
+0x4D48 0x82E6
+0x4D49 0x82FD
+0x4D4A 0x83F0
+0x4D4B 0x85C1
+0x4D4C 0x8831
+0x4D4D 0x88B4
+0x4D4E 0x8AA5
+0x4D4F 0xF903
+0x4D50 0x8F9C
+0x4D51 0x932E
+0x4D52 0x96C7
+0x4D53 0x9867
+0x4D54 0x9AD8
+0x4D55 0x9F13
+0x4D56 0x54ED
+0x4D57 0x659B
+0x4D58 0x66F2
+0x4D59 0x688F
+0x4D5A 0x7A40
+0x4D5B 0x8C37
+0x4D5C 0x9D60
+0x4D5D 0x56F0
+0x4D5E 0x5764
+0x4D5F 0x5D11
+0x4D60 0x6606
+0x4D61 0x68B1
+0x4D62 0x68CD
+0x4D63 0x6EFE
+0x4D64 0x7428
+0x4D65 0x889E
+0x4D66 0x9BE4
+0x4D67 0x6C68
+0x4D68 0xF904
+0x4D69 0x9AA8
+0x4D6A 0x4F9B
+0x4D6B 0x516C
+0x4D6C 0x5171
+0x4D6D 0x529F
+0x4D6E 0x5B54
+0x4D6F 0x5DE5
+0x4D70 0x6050
+0x4D71 0x606D
+0x4D72 0x62F1
+0x4D73 0x63A7
+0x4D74 0x653B
+0x4D75 0x73D9
+0x4D76 0x7A7A
+0x4D77 0x86A3
+0x4D78 0x8CA2
+0x4D79 0x978F
+0x4D7A 0x4E32
+0x4D7B 0x5BE1
+0x4D7C 0x6208
+0x4D7D 0x679C
+0x4D7E 0x74DC
+0x4E21 0x79D1
+0x4E22 0x83D3
+0x4E23 0x8A87
+0x4E24 0x8AB2
+0x4E25 0x8DE8
+0x4E26 0x904E
+0x4E27 0x934B
+0x4E28 0x9846
+0x4E29 0x5ED3
+0x4E2A 0x69E8
+0x4E2B 0x85FF
+0x4E2C 0x90ED
+0x4E2D 0xF905
+0x4E2E 0x51A0
+0x4E2F 0x5B98
+0x4E30 0x5BEC
+0x4E31 0x6163
+0x4E32 0x68FA
+0x4E33 0x6B3E
+0x4E34 0x704C
+0x4E35 0x742F
+0x4E36 0x74D8
+0x4E37 0x7BA1
+0x4E38 0x7F50
+0x4E39 0x83C5
+0x4E3A 0x89C0
+0x4E3B 0x8CAB
+0x4E3C 0x95DC
+0x4E3D 0x9928
+0x4E3E 0x522E
+0x4E3F 0x605D
+0x4E40 0x62EC
+0x4E41 0x9002
+0x4E42 0x4F8A
+0x4E43 0x5149
+0x4E44 0x5321
+0x4E45 0x58D9
+0x4E46 0x5EE3
+0x4E47 0x66E0
+0x4E48 0x6D38
+0x4E49 0x709A
+0x4E4A 0x72C2
+0x4E4B 0x73D6
+0x4E4C 0x7B50
+0x4E4D 0x80F1
+0x4E4E 0x945B
+0x4E4F 0x5366
+0x4E50 0x639B
+0x4E51 0x7F6B
+0x4E52 0x4E56
+0x4E53 0x5080
+0x4E54 0x584A
+0x4E55 0x58DE
+0x4E56 0x602A
+0x4E57 0x6127
+0x4E58 0x62D0
+0x4E59 0x69D0
+0x4E5A 0x9B41
+0x4E5B 0x5B8F
+0x4E5C 0x7D18
+0x4E5D 0x80B1
+0x4E5E 0x8F5F
+0x4E5F 0x4EA4
+0x4E60 0x50D1
+0x4E61 0x54AC
+0x4E62 0x55AC
+0x4E63 0x5B0C
+0x4E64 0x5DA0
+0x4E65 0x5DE7
+0x4E66 0x652A
+0x4E67 0x654E
+0x4E68 0x6821
+0x4E69 0x6A4B
+0x4E6A 0x72E1
+0x4E6B 0x768E
+0x4E6C 0x77EF
+0x4E6D 0x7D5E
+0x4E6E 0x7FF9
+0x4E6F 0x81A0
+0x4E70 0x854E
+0x4E71 0x86DF
+0x4E72 0x8F03
+0x4E73 0x8F4E
+0x4E74 0x90CA
+0x4E75 0x9903
+0x4E76 0x9A55
+0x4E77 0x9BAB
+0x4E78 0x4E18
+0x4E79 0x4E45
+0x4E7A 0x4E5D
+0x4E7B 0x4EC7
+0x4E7C 0x4FF1
+0x4E7D 0x5177
+0x4E7E 0x52FE
+0x4F21 0x5340
+0x4F22 0x53E3
+0x4F23 0x53E5
+0x4F24 0x548E
+0x4F25 0x5614
+0x4F26 0x5775
+0x4F27 0x57A2
+0x4F28 0x5BC7
+0x4F29 0x5D87
+0x4F2A 0x5ED0
+0x4F2B 0x61FC
+0x4F2C 0x62D8
+0x4F2D 0x6551
+0x4F2E 0x67B8
+0x4F2F 0x67E9
+0x4F30 0x69CB
+0x4F31 0x6B50
+0x4F32 0x6BC6
+0x4F33 0x6BEC
+0x4F34 0x6C42
+0x4F35 0x6E9D
+0x4F36 0x7078
+0x4F37 0x72D7
+0x4F38 0x7396
+0x4F39 0x7403
+0x4F3A 0x77BF
+0x4F3B 0x77E9
+0x4F3C 0x7A76
+0x4F3D 0x7D7F
+0x4F3E 0x8009
+0x4F3F 0x81FC
+0x4F40 0x8205
+0x4F41 0x820A
+0x4F42 0x82DF
+0x4F43 0x8862
+0x4F44 0x8B33
+0x4F45 0x8CFC
+0x4F46 0x8EC0
+0x4F47 0x9011
+0x4F48 0x90B1
+0x4F49 0x9264
+0x4F4A 0x92B6
+0x4F4B 0x99D2
+0x4F4C 0x9A45
+0x4F4D 0x9CE9
+0x4F4E 0x9DD7
+0x4F4F 0x9F9C
+0x4F50 0x570B
+0x4F51 0x5C40
+0x4F52 0x83CA
+0x4F53 0x97A0
+0x4F54 0x97AB
+0x4F55 0x9EB4
+0x4F56 0x541B
+0x4F57 0x7A98
+0x4F58 0x7FA4
+0x4F59 0x88D9
+0x4F5A 0x8ECD
+0x4F5B 0x90E1
+0x4F5C 0x5800
+0x4F5D 0x5C48
+0x4F5E 0x6398
+0x4F5F 0x7A9F
+0x4F60 0x5BAE
+0x4F61 0x5F13
+0x4F62 0x7A79
+0x4F63 0x7AAE
+0x4F64 0x828E
+0x4F65 0x8EAC
+0x4F66 0x5026
+0x4F67 0x5238
+0x4F68 0x52F8
+0x4F69 0x5377
+0x4F6A 0x5708
+0x4F6B 0x62F3
+0x4F6C 0x6372
+0x4F6D 0x6B0A
+0x4F6E 0x6DC3
+0x4F6F 0x7737
+0x4F70 0x53A5
+0x4F71 0x7357
+0x4F72 0x8568
+0x4F73 0x8E76
+0x4F74 0x95D5
+0x4F75 0x673A
+0x4F76 0x6AC3
+0x4F77 0x6F70
+0x4F78 0x8A6D
+0x4F79 0x8ECC
+0x4F7A 0x994B
+0x4F7B 0xF906
+0x4F7C 0x6677
+0x4F7D 0x6B78
+0x4F7E 0x8CB4
+0x5021 0x9B3C
+0x5022 0xF907
+0x5023 0x53EB
+0x5024 0x572D
+0x5025 0x594E
+0x5026 0x63C6
+0x5027 0x69FB
+0x5028 0x73EA
+0x5029 0x7845
+0x502A 0x7ABA
+0x502B 0x7AC5
+0x502C 0x7CFE
+0x502D 0x8475
+0x502E 0x898F
+0x502F 0x8D73
+0x5030 0x9035
+0x5031 0x95A8
+0x5032 0x52FB
+0x5033 0x5747
+0x5034 0x7547
+0x5035 0x7B60
+0x5036 0x83CC
+0x5037 0x921E
+0x5038 0xF908
+0x5039 0x6A58
+0x503A 0x514B
+0x503B 0x524B
+0x503C 0x5287
+0x503D 0x621F
+0x503E 0x68D8
+0x503F 0x6975
+0x5040 0x9699
+0x5041 0x50C5
+0x5042 0x52A4
+0x5043 0x52E4
+0x5044 0x61C3
+0x5045 0x65A4
+0x5046 0x6839
+0x5047 0x69FF
+0x5048 0x747E
+0x5049 0x7B4B
+0x504A 0x82B9
+0x504B 0x83EB
+0x504C 0x89B2
+0x504D 0x8B39
+0x504E 0x8FD1
+0x504F 0x9949
+0x5050 0xF909
+0x5051 0x4ECA
+0x5052 0x5997
+0x5053 0x64D2
+0x5054 0x6611
+0x5055 0x6A8E
+0x5056 0x7434
+0x5057 0x7981
+0x5058 0x79BD
+0x5059 0x82A9
+0x505A-0x505B 0x887E
+0x505C 0x895F
+0x505D 0xF90A
+0x505E 0x9326
+0x505F 0x4F0B
+0x5060 0x53CA
+0x5061 0x6025
+0x5062 0x6271
+0x5063 0x6C72
+0x5064 0x7D1A
+0x5065 0x7D66
+0x5066 0x4E98
+0x5067 0x5162
+0x5068 0x77DC
+0x5069 0x80AF
+0x506A 0x4F01
+0x506B 0x4F0E
+0x506C 0x5176
+0x506D 0x5180
+0x506E 0x55DC
+0x506F 0x5668
+0x5070 0x573B
+0x5071 0x57FA
+0x5072 0x57FC
+0x5073 0x5914
+0x5074 0x5947
+0x5075 0x5993
+0x5076 0x5BC4
+0x5077 0x5C90
+0x5078 0x5D0E
+0x5079 0x5DF1
+0x507A 0x5E7E
+0x507B 0x5FCC
+0x507C 0x6280
+0x507D 0x65D7
+0x507E 0x65E3
+0x5121-0x5122 0x671E
+0x5123 0x675E
+0x5124 0x68CB
+0x5125 0x68C4
+0x5126 0x6A5F
+0x5127 0x6B3A
+0x5128 0x6C23
+0x5129 0x6C7D
+0x512A 0x6C82
+0x512B 0x6DC7
+0x512C 0x7398
+0x512D 0x7426
+0x512E 0x742A
+0x512F 0x7482
+0x5130 0x74A3
+0x5131 0x7578
+0x5132 0x757F
+0x5133 0x7881
+0x5134 0x78EF
+0x5135 0x7941
+0x5136-0x5137 0x7947
+0x5138 0x797A
+0x5139 0x7B95
+0x513A 0x7D00
+0x513B 0x7DBA
+0x513C 0x7F88
+0x513D 0x8006
+0x513E 0x802D
+0x513F 0x808C
+0x5140 0x8A18
+0x5141 0x8B4F
+0x5142 0x8C48
+0x5143 0x8D77
+0x5144 0x9321
+0x5145 0x9324
+0x5146 0x98E2
+0x5147 0x9951
+0x5148-0x5149 0x9A0E
+0x514A 0x9A65
+0x514B 0x9E92
+0x514C 0x7DCA
+0x514D 0x4F76
+0x514E 0x5409
+0x514F 0x62EE
+0x5150 0x6854
+0x5151 0x91D1
+0x5152 0x55AB
+0x5153 0x513A
+0x5154-0x5155 0xF90B
+0x5156 0x5A1C
+0x5157 0x61E6
+0x5158 0xF90D
+0x5159 0x62CF
+0x515A 0x62FF
+0x515B-0x5160 0xF90E
+0x5161 0x90A3
+0x5162-0x5166 0xF914
+0x5167 0x8AFE
+0x5168-0x516B 0xF919
+0x516C 0x6696
+0x516D 0xF91D
+0x516E 0x7156
+0x516F-0x5170 0xF91E
+0x5171 0x96E3
+0x5172 0xF920
+0x5173 0x634F
+0x5174 0x637A
+0x5175 0x5357
+0x5176 0xF921
+0x5177 0x678F
+0x5178 0x6960
+0x5179 0x6E73
+0x517A 0xF922
+0x517B 0x7537
+0x517C-0x517E 0xF923
+0x5221 0x7D0D
+0x5222-0x5223 0xF926
+0x5224 0x8872
+0x5225 0x56CA
+0x5226 0x5A18
+0x5227-0x522B 0xF928
+0x522C 0x4E43
+0x522D 0xF92D
+0x522E 0x5167
+0x522F 0x5948
+0x5230 0x67F0
+0x5231 0x8010
+0x5232 0xF92E
+0x5233 0x5973
+0x5234 0x5E74
+0x5235 0x649A
+0x5236 0x79CA
+0x5237 0x5FF5
+0x5238 0x606C
+0x5239 0x62C8
+0x523A 0x637B
+0x523B 0x5BE7
+0x523C 0x5BD7
+0x523D 0x52AA
+0x523E 0xF92F
+0x523F 0x5974
+0x5240 0x5F29
+0x5241 0x6012
+0x5242-0x5244 0xF930
+0x5245 0x7459
+0x5246-0x524B 0xF933
+0x524C 0x99D1
+0x524D-0x5257 0xF939
+0x5258 0x6FC3
+0x5259-0x525A 0xF944
+0x525B 0x81BF
+0x525C 0x8FB2
+0x525D 0x60F1
+0x525E-0x525F 0xF946
+0x5260 0x8166
+0x5261-0x5262 0xF948
+0x5263 0x5C3F
+0x5264-0x526B 0xF94A
+0x526C 0x5AE9
+0x526D 0x8A25
+0x526E 0x677B
+0x526F 0x7D10
+0x5270-0x5275 0xF952
+0x5276 0x80FD
+0x5277-0x5278 0xF958
+0x5279 0x5C3C
+0x527A 0x6CE5
+0x527B 0x533F
+0x527C 0x6EBA
+0x527D 0x591A
+0x527E 0x8336
+0x5321 0x4E39
+0x5322 0x4EB6
+0x5323 0x4F46
+0x5324 0x55AE
+0x5325 0x5718
+0x5326 0x58C7
+0x5327 0x5F56
+0x5328 0x65B7
+0x5329 0x65E6
+0x532A 0x6A80
+0x532B 0x6BB5
+0x532C 0x6E4D
+0x532D 0x77ED
+0x532E 0x7AEF
+0x532F 0x7C1E
+0x5330 0x7DDE
+0x5331 0x86CB
+0x5332 0x8892
+0x5333 0x9132
+0x5334 0x935B
+0x5335 0x64BB
+0x5336 0x6FBE
+0x5337 0x737A
+0x5338 0x75B8
+0x5339 0x9054
+0x533A 0x5556
+0x533B 0x574D
+0x533C 0x61BA
+0x533D 0x64D4
+0x533E 0x66C7
+0x533F 0x6DE1
+0x5340 0x6E5B
+0x5341 0x6F6D
+0x5342 0x6FB9
+0x5343 0x75F0
+0x5344 0x8043
+0x5345 0x81BD
+0x5346 0x8541
+0x5347 0x8983
+0x5348 0x8AC7
+0x5349 0x8B5A
+0x534A 0x931F
+0x534B 0x6C93
+0x534C 0x7553
+0x534D 0x7B54
+0x534E 0x8E0F
+0x534F 0x905D
+0x5350 0x5510
+0x5351 0x5802
+0x5352 0x5858
+0x5353 0x5E62
+0x5354 0x6207
+0x5355 0x649E
+0x5356 0x68E0
+0x5357 0x7576
+0x5358 0x7CD6
+0x5359 0x87B3
+0x535A 0x9EE8
+0x535B 0x4EE3
+0x535C 0x5788
+0x535D 0x576E
+0x535E 0x5927
+0x535F 0x5C0D
+0x5360 0x5CB1
+0x5361 0x5E36
+0x5362 0x5F85
+0x5363 0x6234
+0x5364 0x64E1
+0x5365 0x73B3
+0x5366 0x81FA
+0x5367 0x888B
+0x5368 0x8CB8
+0x5369 0x968A
+0x536A 0x9EDB
+0x536B 0x5B85
+0x536C 0x5FB7
+0x536D 0x60B3
+0x536E 0x5012
+0x536F 0x5200
+0x5370 0x5230
+0x5371 0x5716
+0x5372 0x5835
+0x5373 0x5857
+0x5374 0x5C0E
+0x5375 0x5C60
+0x5376 0x5CF6
+0x5377 0x5D8B
+0x5378 0x5EA6
+0x5379 0x5F92
+0x537A 0x60BC
+0x537B 0x6311
+0x537C 0x6389
+0x537D 0x6417
+0x537E 0x6843
+0x5421 0x68F9
+0x5422 0x6AC2
+0x5423 0x6DD8
+0x5424 0x6E21
+0x5425 0x6ED4
+0x5426 0x6FE4
+0x5427 0x71FE
+0x5428 0x76DC
+0x5429 0x7779
+0x542A 0x79B1
+0x542B 0x7A3B
+0x542C 0x8404
+0x542D 0x89A9
+0x542E 0x8CED
+0x542F 0x8DF3
+0x5430 0x8E48
+0x5431 0x9003
+0x5432 0x9014
+0x5433 0x9053
+0x5434 0x90FD
+0x5435 0x934D
+0x5436 0x9676
+0x5437 0x97DC
+0x5438 0x6BD2
+0x5439 0x7006
+0x543A 0x7258
+0x543B 0x72A2
+0x543C 0x7368
+0x543D 0x7763
+0x543E 0x79BF
+0x543F 0x7BE4
+0x5440 0x7E9B
+0x5441 0x8B80
+0x5442 0x58A9
+0x5443 0x60C7
+0x5444 0x6566
+0x5445 0x65FD
+0x5446 0x66BE
+0x5447 0x6C8C
+0x5448 0x711E
+0x5449 0x71C9
+0x544A 0x8C5A
+0x544B 0x9813
+0x544C 0x4E6D
+0x544D 0x7A81
+0x544E 0x4EDD
+0x544F 0x51AC
+0x5450 0x51CD
+0x5451 0x52D5
+0x5452 0x540C
+0x5453 0x61A7
+0x5454 0x6771
+0x5455 0x6850
+0x5456 0x68DF
+0x5457 0x6D1E
+0x5458 0x6F7C
+0x5459 0x75BC
+0x545A 0x77B3
+0x545B 0x7AE5
+0x545C 0x80F4
+0x545D 0x8463
+0x545E 0x9285
+0x545F 0x515C
+0x5460 0x6597
+0x5461 0x675C
+0x5462 0x6793
+0x5463 0x75D8
+0x5464 0x7AC7
+0x5465 0x8373
+0x5466 0xF95A
+0x5467 0x8C46
+0x5468 0x9017
+0x5469 0x982D
+0x546A 0x5C6F
+0x546B 0x81C0
+0x546C 0x829A
+0x546D 0x9041
+0x546E 0x906F
+0x546F 0x920D
+0x5470 0x5F97
+0x5471 0x5D9D
+0x5472 0x6A59
+0x5473 0x71C8
+0x5474 0x767B
+0x5475 0x7B49
+0x5476 0x85E4
+0x5477 0x8B04
+0x5478 0x9127
+0x5479 0x9A30
+0x547A 0x5587
+0x547B 0x61F6
+0x547C 0xF95B
+0x547D 0x7669
+0x547E 0x7F85
+0x5521 0x863F
+0x5522 0x87BA
+0x5523 0x88F8
+0x5524 0x908F
+0x5525 0xF95C
+0x5526 0x6D1B
+0x5527 0x70D9
+0x5528 0x73DE
+0x5529 0x7D61
+0x552A 0x843D
+0x552B 0xF95D
+0x552C 0x916A
+0x552D 0x99F1
+0x552E 0xF95E
+0x552F 0x4E82
+0x5530 0x5375
+0x5531 0x6B04
+0x5532 0x6B12
+0x5533 0x703E
+0x5534 0x721B
+0x5535 0x862D
+0x5536 0x9E1E
+0x5537 0x524C
+0x5538 0x8FA3
+0x5539 0x5D50
+0x553A 0x64E5
+0x553B 0x652C
+0x553C 0x6B16
+0x553D 0x6FEB
+0x553E 0x7C43
+0x553F 0x7E9C
+0x5540 0x85CD
+0x5541 0x8964
+0x5542 0x89BD
+0x5543 0x62C9
+0x5544 0x81D8
+0x5545 0x881F
+0x5546 0x5ECA
+0x5547 0x6717
+0x5548 0x6D6A
+0x5549 0x72FC
+0x554A 0x7405
+0x554B 0x746F
+0x554C 0x8782
+0x554D 0x90DE
+0x554E 0x4F86
+0x554F 0x5D0D
+0x5550 0x5FA0
+0x5551 0x840A
+0x5552 0x51B7
+0x5553 0x63A0
+0x5554 0x7565
+0x5555 0x4EAE
+0x5556 0x5006
+0x5557 0x5169
+0x5558 0x51C9
+0x5559 0x6881
+0x555A 0x6A11
+0x555B 0x7CAE
+0x555C 0x7CB1
+0x555D 0x7CE7
+0x555E 0x826F
+0x555F 0x8AD2
+0x5560 0x8F1B
+0x5561 0x91CF
+0x5562 0x4FB6
+0x5563 0x5137
+0x5564 0x52F5
+0x5565 0x5442
+0x5566 0x5EEC
+0x5567 0x616E
+0x5568 0x623E
+0x5569 0x65C5
+0x556A 0x6ADA
+0x556B 0x6FFE
+0x556C 0x792A
+0x556D 0x85DC
+0x556E 0x8823
+0x556F 0x95AD
+0x5570 0x9A62
+0x5571 0x9A6A
+0x5572 0x9E97
+0x5573 0x9ECE
+0x5574 0x529B
+0x5575 0x66C6
+0x5576 0x6B77
+0x5577 0x701D
+0x5578 0x792B
+0x5579 0x8F62
+0x557A 0x9742
+0x557B 0x6190
+0x557C 0x6200
+0x557D 0x6523
+0x557E 0x6F23
+0x5621 0x7149
+0x5622 0x7489
+0x5623 0x7DF4
+0x5624 0x806F
+0x5625 0x84EE
+0x5626 0x8F26
+0x5627 0x9023
+0x5628 0x934A
+0x5629 0x51BD
+0x562A 0x5217
+0x562B 0x52A3
+0x562C 0x6D0C
+0x562D 0x70C8
+0x562E 0x88C2
+0x562F 0x5EC9
+0x5630 0x6582
+0x5631 0x6BAE
+0x5632 0x6FC2
+0x5633 0x7C3E
+0x5634 0x7375
+0x5635 0x4EE4
+0x5636 0x4F36
+0x5637 0x56F9
+0x5638 0xF95F
+0x5639 0x5CBA
+0x563A 0x5DBA
+0x563B 0x601C
+0x563C 0x73B2
+0x563D 0x7B2D
+0x563E 0x7F9A
+0x563F 0x7FCE
+0x5640 0x8046
+0x5641 0x901E
+0x5642 0x9234
+0x5643 0x96F6
+0x5644 0x9748
+0x5645 0x9818
+0x5646 0x9F61
+0x5647 0x4F8B
+0x5648 0x6FA7
+0x5649 0x79AE
+0x564A 0x91B4
+0x564B 0x96B7
+0x564C 0x52DE
+0x564D 0xF960
+0x564E 0x6488
+0x564F 0x64C4
+0x5650 0x6AD3
+0x5651 0x6F5E
+0x5652 0x7018
+0x5653 0x7210
+0x5654 0x76E7
+0x5655 0x8001
+0x5656 0x8606
+0x5657 0x865C
+0x5658 0x8DEF
+0x5659 0x8F05
+0x565A 0x9732
+0x565B 0x9B6F
+0x565C 0x9DFA
+0x565D 0x9E75
+0x565E 0x788C
+0x565F 0x797F
+0x5660 0x7DA0
+0x5661 0x83C9
+0x5662 0x9304
+0x5663 0x9E7F
+0x5664 0x9E93
+0x5665 0x8AD6
+0x5666 0x58DF
+0x5667 0x5F04
+0x5668 0x6727
+0x5669 0x7027
+0x566A 0x74CF
+0x566B 0x7C60
+0x566C 0x807E
+0x566D 0x5121
+0x566E 0x7028
+0x566F 0x7262
+0x5670 0x78CA
+0x5671 0x8CC2
+0x5672 0x8CDA
+0x5673 0x8CF4
+0x5674 0x96F7
+0x5675 0x4E86
+0x5676 0x50DA
+0x5677 0x5BEE
+0x5678 0x5ED6
+0x5679 0x6599
+0x567A 0x71CE
+0x567B 0x7642
+0x567C 0x77AD
+0x567D 0x804A
+0x567E 0x84FC
+0x5721 0x907C
+0x5722 0x9B27
+0x5723 0x9F8D
+0x5724 0x58D8
+0x5725 0x5A41
+0x5726 0x5C62
+0x5727 0x6A13
+0x5728 0x6DDA
+0x5729 0x6F0F
+0x572A 0x763B
+0x572B 0x7D2F
+0x572C 0x7E37
+0x572D 0x851E
+0x572E 0x8938
+0x572F 0x93E4
+0x5730 0x964B
+0x5731 0x5289
+0x5732 0x65D2
+0x5733 0x67F3
+0x5734 0x69B4
+0x5735 0x6D41
+0x5736 0x6E9C
+0x5737 0x700F
+0x5738 0x7409
+0x5739 0x7460
+0x573A 0x7559
+0x573B 0x7624
+0x573C 0x786B
+0x573D 0x8B2C
+0x573E 0x985E
+0x573F 0x516D
+0x5740 0x622E
+0x5741 0x9678
+0x5742 0x4F96
+0x5743 0x502B
+0x5744 0x5D19
+0x5745 0x6DEA
+0x5746 0x7DB8
+0x5747 0x8F2A
+0x5748 0x5F8B
+0x5749 0x6144
+0x574A 0x6817
+0x574B 0xF961
+0x574C 0x9686
+0x574D 0x52D2
+0x574E 0x808B
+0x574F 0x51DC
+0x5750 0x51CC
+0x5751 0x695E
+0x5752 0x7A1C
+0x5753 0x7DBE
+0x5754 0x83F1
+0x5755 0x9675
+0x5756 0x4FDA
+0x5757 0x5229
+0x5758 0x5398
+0x5759 0x540F
+0x575A 0x550E
+0x575B 0x5C65
+0x575C 0x60A7
+0x575D 0x674E
+0x575E 0x68A8
+0x575F 0x6D6C
+0x5760 0x7281
+0x5761 0x72F8
+0x5762 0x7406
+0x5763 0x7483
+0x5764 0xF962
+0x5765 0x75E2
+0x5766 0x7C6C
+0x5767 0x7F79
+0x5768 0x7FB8
+0x5769 0x8389
+0x576A 0x88CF
+0x576B 0x88E1
+0x576C 0x91CC
+0x576D 0x91D0
+0x576E 0x96E2
+0x576F 0x9BC9
+0x5770 0x541D
+0x5771 0x6F7E
+0x5772 0x71D0
+0x5773 0x7498
+0x5774 0x85FA
+0x5775 0x8EAA
+0x5776 0x96A3
+0x5777 0x9C57
+0x5778 0x9E9F
+0x5779 0x6797
+0x577A 0x6DCB
+0x577B 0x7433
+0x577C 0x81E8
+0x577D 0x9716
+0x577E 0x782C
+0x5821 0x7ACB
+0x5822 0x7B20
+0x5823 0x7C92
+0x5824 0x6469
+0x5825 0x746A
+0x5826 0x75F2
+0x5827 0x78BC
+0x5828 0x78E8
+0x5829 0x99AC
+0x582A 0x9B54
+0x582B 0x9EBB
+0x582C 0x5BDE
+0x582D 0x5E55
+0x582E 0x6F20
+0x582F 0x819C
+0x5830 0x83AB
+0x5831 0x9088
+0x5832 0x4E07
+0x5833 0x534D
+0x5834 0x5A29
+0x5835 0x5DD2
+0x5836 0x5F4E
+0x5837 0x6162
+0x5838 0x633D
+0x5839 0x6669
+0x583A 0x66FC
+0x583B 0x6EFF
+0x583C 0x6F2B
+0x583D 0x7063
+0x583E 0x779E
+0x583F 0x842C
+0x5840 0x8513
+0x5841 0x883B
+0x5842 0x8F13
+0x5843 0x9945
+0x5844 0x9C3B
+0x5845 0x551C
+0x5846 0x62B9
+0x5847 0x672B
+0x5848 0x6CAB
+0x5849 0x8309
+0x584A 0x896A
+0x584B 0x977A
+0x584C 0x4EA1
+0x584D 0x5984
+0x584E-0x584F 0x5FD8
+0x5850 0x671B
+0x5851 0x7DB2
+0x5852 0x7F54
+0x5853 0x8292
+0x5854 0x832B
+0x5855 0x83BD
+0x5856 0x8F1E
+0x5857 0x9099
+0x5858 0x57CB
+0x5859 0x59B9
+0x585A 0x5A92
+0x585B 0x5BD0
+0x585C 0x6627
+0x585D 0x679A
+0x585E 0x6885
+0x585F 0x6BCF
+0x5860 0x7164
+0x5861 0x7F75
+0x5862 0x8CB7
+0x5863 0x8CE3
+0x5864 0x9081
+0x5865 0x9B45
+0x5866 0x8108
+0x5867 0x8C8A
+0x5868 0x964C
+0x5869 0x9A40
+0x586A 0x9EA5
+0x586B 0x5B5F
+0x586C 0x6C13
+0x586D 0x731B
+0x586E 0x76F2
+0x586F 0x76DF
+0x5870 0x840C
+0x5871 0x51AA
+0x5872 0x8993
+0x5873 0x514D
+0x5874 0x5195
+0x5875 0x52C9
+0x5876 0x68C9
+0x5877 0x6C94
+0x5878 0x7704
+0x5879 0x7720
+0x587A 0x7DBF
+0x587B 0x7DEC
+0x587C 0x9762
+0x587D 0x9EB5
+0x587E 0x6EC5
+0x5921 0x8511
+0x5922 0x51A5
+0x5923 0x540D
+0x5924 0x547D
+0x5925 0x660E
+0x5926 0x669D
+0x5927 0x6927
+0x5928 0x6E9F
+0x5929 0x76BF
+0x592A 0x7791
+0x592B 0x8317
+0x592C 0x84C2
+0x592D 0x879F
+0x592E 0x9169
+0x592F 0x9298
+0x5930 0x9CF4
+0x5931 0x8882
+0x5932 0x4FAE
+0x5933 0x5192
+0x5934 0x52DF
+0x5935 0x59C6
+0x5936 0x5E3D
+0x5937 0x6155
+0x5938-0x5939 0x6478
+0x593A 0x66AE
+0x593B 0x67D0
+0x593C 0x6A21
+0x593D 0x6BCD
+0x593E 0x6BDB
+0x593F 0x725F
+0x5940 0x7261
+0x5941 0x7441
+0x5942 0x7738
+0x5943 0x77DB
+0x5944 0x8017
+0x5945 0x82BC
+0x5946 0x8305
+0x5947 0x8B00
+0x5948 0x8B28
+0x5949 0x8C8C
+0x594A 0x6728
+0x594B 0x6C90
+0x594C 0x7267
+0x594D 0x76EE
+0x594E 0x7766
+0x594F 0x7A46
+0x5950 0x9DA9
+0x5951 0x6B7F
+0x5952 0x6C92
+0x5953 0x5922
+0x5954 0x6726
+0x5955 0x8499
+0x5956 0x536F
+0x5957 0x5893
+0x5958 0x5999
+0x5959 0x5EDF
+0x595A 0x63CF
+0x595B 0x6634
+0x595C 0x6773
+0x595D 0x6E3A
+0x595E 0x732B
+0x595F 0x7AD7
+0x5960 0x82D7
+0x5961 0x9328
+0x5962 0x52D9
+0x5963 0x5DEB
+0x5964 0x61AE
+0x5965 0x61CB
+0x5966 0x620A
+0x5967 0x62C7
+0x5968 0x64AB
+0x5969 0x65E0
+0x596A 0x6959
+0x596B 0x6B66
+0x596C 0x6BCB
+0x596D 0x7121
+0x596E 0x73F7
+0x596F 0x755D
+0x5970 0x7E46
+0x5971 0x821E
+0x5972 0x8302
+0x5973 0x856A
+0x5974 0x8AA3
+0x5975 0x8CBF
+0x5976 0x9727
+0x5977 0x9D61
+0x5978 0x58A8
+0x5979 0x9ED8
+0x597A 0x5011
+0x597B 0x520E
+0x597C 0x543B
+0x597D 0x554F
+0x597E 0x6587
+0x5A21 0x6C76
+0x5A22-0x5A23 0x7D0A
+0x5A24 0x805E
+0x5A25 0x868A
+0x5A26 0x9580
+0x5A27 0x96EF
+0x5A28 0x52FF
+0x5A29 0x6C95
+0x5A2A 0x7269
+0x5A2B 0x5473
+0x5A2C 0x5A9A
+0x5A2D 0x5C3E
+0x5A2E 0x5D4B
+0x5A2F 0x5F4C
+0x5A30 0x5FAE
+0x5A31 0x672A
+0x5A32 0x68B6
+0x5A33 0x6963
+0x5A34 0x6E3C
+0x5A35 0x6E44
+0x5A36 0x7709
+0x5A37 0x7C73
+0x5A38 0x7F8E
+0x5A39 0x8587
+0x5A3A 0x8B0E
+0x5A3B 0x8FF7
+0x5A3C 0x9761
+0x5A3D 0x9EF4
+0x5A3E 0x5CB7
+0x5A3F 0x60B6
+0x5A40 0x610D
+0x5A41 0x61AB
+0x5A42 0x654F
+0x5A43-0x5A44 0x65FB
+0x5A45 0x6C11
+0x5A46 0x6CEF
+0x5A47 0x739F
+0x5A48 0x73C9
+0x5A49 0x7DE1
+0x5A4A 0x9594
+0x5A4B 0x5BC6
+0x5A4C 0x871C
+0x5A4D 0x8B10
+0x5A4E 0x525D
+0x5A4F 0x535A
+0x5A50 0x62CD
+0x5A51 0x640F
+0x5A52 0x64B2
+0x5A53 0x6734
+0x5A54 0x6A38
+0x5A55 0x6CCA
+0x5A56 0x73C0
+0x5A57 0x749E
+0x5A58 0x7B94
+0x5A59 0x7C95
+0x5A5A 0x7E1B
+0x5A5B 0x818A
+0x5A5C 0x8236
+0x5A5D 0x8584
+0x5A5E 0x8FEB
+0x5A5F 0x96F9
+0x5A60 0x99C1
+0x5A61 0x4F34
+0x5A62 0x534A
+0x5A63 0x53CD
+0x5A64 0x53DB
+0x5A65 0x62CC
+0x5A66 0x642C
+0x5A67 0x6500
+0x5A68 0x6591
+0x5A69 0x69C3
+0x5A6A 0x6CEE
+0x5A6B 0x6F58
+0x5A6C 0x73ED
+0x5A6D 0x7554
+0x5A6E 0x7622
+0x5A6F 0x76E4
+0x5A70 0x76FC
+0x5A71 0x78D0
+0x5A72 0x78FB
+0x5A73 0x792C
+0x5A74 0x7D46
+0x5A75 0x822C
+0x5A76 0x87E0
+0x5A77 0x8FD4
+0x5A78 0x9812
+0x5A79 0x98EF
+0x5A7A 0x52C3
+0x5A7B 0x62D4
+0x5A7C 0x64A5
+0x5A7D 0x6E24
+0x5A7E 0x6F51
+0x5B21 0x767C
+0x5B22 0x8DCB
+0x5B23 0x91B1
+0x5B24 0x9262
+0x5B25 0x9AEE
+0x5B26 0x9B43
+0x5B27 0x5023
+0x5B28 0x508D
+0x5B29 0x574A
+0x5B2A 0x59A8
+0x5B2B 0x5C28
+0x5B2C 0x5E47
+0x5B2D 0x5F77
+0x5B2E 0x623F
+0x5B2F 0x653E
+0x5B30 0x65B9
+0x5B31 0x65C1
+0x5B32 0x6609
+0x5B33 0x678B
+0x5B34 0x699C
+0x5B35 0x6EC2
+0x5B36 0x78C5
+0x5B37 0x7D21
+0x5B38 0x80AA
+0x5B39 0x8180
+0x5B3A 0x822B
+0x5B3B 0x82B3
+0x5B3C 0x84A1
+0x5B3D 0x868C
+0x5B3E 0x8A2A
+0x5B3F 0x8B17
+0x5B40 0x90A6
+0x5B41 0x9632
+0x5B42 0x9F90
+0x5B43 0x500D
+0x5B44 0x4FF3
+0x5B45 0xF963
+0x5B46 0x57F9
+0x5B47 0x5F98
+0x5B48 0x62DC
+0x5B49 0x6392
+0x5B4A 0x676F
+0x5B4B 0x6E43
+0x5B4C 0x7119
+0x5B4D 0x76C3
+0x5B4E 0x80CC
+0x5B4F 0x80DA
+0x5B50-0x5B51 0x88F4
+0x5B52 0x8919
+0x5B53 0x8CE0
+0x5B54 0x8F29
+0x5B55 0x914D
+0x5B56 0x966A
+0x5B57 0x4F2F
+0x5B58 0x4F70
+0x5B59 0x5E1B
+0x5B5A 0x67CF
+0x5B5B 0x6822
+0x5B5C-0x5B5D 0x767D
+0x5B5E 0x9B44
+0x5B5F 0x5E61
+0x5B60 0x6A0A
+0x5B61 0x7169
+0x5B62 0x71D4
+0x5B63 0x756A
+0x5B64 0xF964
+0x5B65 0x7E41
+0x5B66 0x8543
+0x5B67 0x85E9
+0x5B68 0x98DC
+0x5B69 0x4F10
+0x5B6A 0x7B4F
+0x5B6B 0x7F70
+0x5B6C 0x95A5
+0x5B6D 0x51E1
+0x5B6E 0x5E06
+0x5B6F 0x68B5
+0x5B70 0x6C3E
+0x5B71 0x6C4E
+0x5B72 0x6CDB
+0x5B73 0x72AF
+0x5B74 0x7BC4
+0x5B75 0x8303
+0x5B76 0x6CD5
+0x5B77 0x743A
+0x5B78 0x50FB
+0x5B79 0x5288
+0x5B7A 0x58C1
+0x5B7B 0x64D8
+0x5B7C 0x6A97
+0x5B7D 0x74A7
+0x5B7E 0x7656
+0x5C21 0x78A7
+0x5C22 0x8617
+0x5C23 0x95E2
+0x5C24 0x9739
+0x5C25 0xF965
+0x5C26 0x535E
+0x5C27 0x5F01
+0x5C28 0x8B8A
+0x5C29 0x8FA8
+0x5C2A 0x8FAF
+0x5C2B 0x908A
+0x5C2C 0x5225
+0x5C2D 0x77A5
+0x5C2E 0x9C49
+0x5C2F 0x9F08
+0x5C30 0x4E19
+0x5C31 0x5002
+0x5C32 0x5175
+0x5C33 0x5C5B
+0x5C34 0x5E77
+0x5C35 0x661E
+0x5C36 0x663A
+0x5C37 0x67C4
+0x5C38 0x68C5
+0x5C39 0x70B3
+0x5C3A 0x7501
+0x5C3B 0x75C5
+0x5C3C 0x79C9
+0x5C3D 0x7ADD
+0x5C3E 0x8F27
+0x5C3F 0x9920
+0x5C40 0x9A08
+0x5C41 0x4FDD
+0x5C42 0x5821
+0x5C43 0x5831
+0x5C44 0x5BF6
+0x5C45 0x666E
+0x5C46 0x6B65
+0x5C47 0x6D11
+0x5C48 0x6E7A
+0x5C49 0x6F7D
+0x5C4A 0x73E4
+0x5C4B 0x752B
+0x5C4C 0x83E9
+0x5C4D 0x88DC
+0x5C4E 0x8913
+0x5C4F 0x8B5C
+0x5C50 0x8F14
+0x5C51 0x4F0F
+0x5C52 0x50D5
+0x5C53 0x5310
+0x5C54 0x535C
+0x5C55 0x5B93
+0x5C56 0x5FA9
+0x5C57 0x670D
+0x5C58 0x798F
+0x5C59 0x8179
+0x5C5A 0x832F
+0x5C5B 0x8514
+0x5C5C 0x8907
+0x5C5D 0x8986
+0x5C5E 0x8F39
+0x5C5F 0x8F3B
+0x5C60 0x99A5
+0x5C61 0x9C12
+0x5C62 0x672C
+0x5C63 0x4E76
+0x5C64 0x4FF8
+0x5C65 0x5949
+0x5C66 0x5C01
+0x5C67-0x5C68 0x5CEF
+0x5C69 0x6367
+0x5C6A 0x68D2
+0x5C6B 0x70FD
+0x5C6C 0x71A2
+0x5C6D 0x742B
+0x5C6E 0x7E2B
+0x5C6F 0x84EC
+0x5C70 0x8702
+0x5C71 0x9022
+0x5C72 0x92D2
+0x5C73 0x9CF3
+0x5C74 0x4E0D
+0x5C75 0x4ED8
+0x5C76 0x4FEF
+0x5C77 0x5085
+0x5C78 0x5256
+0x5C79 0x526F
+0x5C7A 0x5426
+0x5C7B 0x5490
+0x5C7C 0x57E0
+0x5C7D 0x592B
+0x5C7E 0x5A66
+0x5D21 0x5B5A
+0x5D22 0x5B75
+0x5D23 0x5BCC
+0x5D24 0x5E9C
+0x5D25 0xF966
+0x5D26 0x6276
+0x5D27 0x6577
+0x5D28 0x65A7
+0x5D29 0x6D6E
+0x5D2A 0x6EA5
+0x5D2B 0x7236
+0x5D2C 0x7B26
+0x5D2D 0x7C3F
+0x5D2E 0x7F36
+0x5D2F-0x5D30 0x8150
+0x5D31 0x819A
+0x5D32 0x8240
+0x5D33 0x8299
+0x5D34 0x83A9
+0x5D35 0x8A03
+0x5D36 0x8CA0
+0x5D37 0x8CE6
+0x5D38 0x8CFB
+0x5D39 0x8D74
+0x5D3A 0x8DBA
+0x5D3B 0x90E8
+0x5D3C 0x91DC
+0x5D3D 0x961C
+0x5D3E 0x9644
+0x5D3F 0x99D9
+0x5D40 0x9CE7
+0x5D41 0x5317
+0x5D42 0x5206
+0x5D43 0x5429
+0x5D44 0x5674
+0x5D45 0x58B3
+0x5D46 0x5954
+0x5D47 0x596E
+0x5D48 0x5FFF
+0x5D49 0x61A4
+0x5D4A 0x626E
+0x5D4B 0x6610
+0x5D4C 0x6C7E
+0x5D4D 0x711A
+0x5D4E 0x76C6
+0x5D4F 0x7C89
+0x5D50 0x7CDE
+0x5D51 0x7D1B
+0x5D52 0x82AC
+0x5D53 0x8CC1
+0x5D54 0x96F0
+0x5D55 0xF967
+0x5D56 0x4F5B
+0x5D57 0x5F17
+0x5D58 0x5F7F
+0x5D59 0x62C2
+0x5D5A 0x5D29
+0x5D5B 0x670B
+0x5D5C 0x68DA
+0x5D5D 0x787C
+0x5D5E 0x7E43
+0x5D5F 0x9D6C
+0x5D60 0x4E15
+0x5D61 0x5099
+0x5D62 0x5315
+0x5D63 0x532A
+0x5D64 0x5351
+0x5D65 0x5983
+0x5D66 0x5A62
+0x5D67 0x5E87
+0x5D68 0x60B2
+0x5D69 0x618A
+0x5D6A 0x6249
+0x5D6B 0x6279
+0x5D6C 0x6590
+0x5D6D 0x6787
+0x5D6E 0x69A7
+0x5D6F 0x6BD4
+0x5D70-0x5D72 0x6BD6
+0x5D73 0x6CB8
+0x5D74 0xF968
+0x5D75 0x7435
+0x5D76 0x75FA
+0x5D77 0x7812
+0x5D78 0x7891
+0x5D79 0x79D5
+0x5D7A 0x79D8
+0x5D7B 0x7C83
+0x5D7C 0x7DCB
+0x5D7D 0x7FE1
+0x5D7E 0x80A5
+0x5E21 0x813E
+0x5E22 0x81C2
+0x5E23 0x83F2
+0x5E24 0x871A
+0x5E25 0x88E8
+0x5E26 0x8AB9
+0x5E27 0x8B6C
+0x5E28 0x8CBB
+0x5E29 0x9119
+0x5E2A 0x975E
+0x5E2B 0x98DB
+0x5E2C 0x9F3B
+0x5E2D 0x56AC
+0x5E2E 0x5B2A
+0x5E2F 0x5F6C
+0x5E30 0x658C
+0x5E31 0x6AB3
+0x5E32 0x6BAF
+0x5E33 0x6D5C
+0x5E34 0x6FF1
+0x5E35 0x7015
+0x5E36 0x725D
+0x5E37 0x73AD
+0x5E38 0x8CA7
+0x5E39 0x8CD3
+0x5E3A 0x983B
+0x5E3B 0x6191
+0x5E3C 0x6C37
+0x5E3D 0x8058
+0x5E3E 0x9A01
+0x5E3F 0x4E4D
+0x5E40 0x4E8B
+0x5E41 0x4E9B
+0x5E42 0x4ED5
+0x5E43 0x4F3A
+0x5E44 0x4F3C
+0x5E45 0x4F7F
+0x5E46 0x4FDF
+0x5E47 0x50FF
+0x5E48 0x53F2
+0x5E49 0x53F8
+0x5E4A 0x5506
+0x5E4B 0x55E3
+0x5E4C 0x56DB
+0x5E4D 0x58EB
+0x5E4E 0x5962
+0x5E4F 0x5A11
+0x5E50 0x5BEB
+0x5E51 0x5BFA
+0x5E52 0x5C04
+0x5E53 0x5DF3
+0x5E54 0x5E2B
+0x5E55 0x5F99
+0x5E56 0x601D
+0x5E57 0x6368
+0x5E58 0x659C
+0x5E59 0x65AF
+0x5E5A 0x67F6
+0x5E5B 0x67FB
+0x5E5C 0x68AD
+0x5E5D 0x6B7B
+0x5E5E 0x6C99
+0x5E5F 0x6CD7
+0x5E60 0x6E23
+0x5E61 0x7009
+0x5E62 0x7345
+0x5E63 0x7802
+0x5E64 0x793E
+0x5E65 0x7940
+0x5E66 0x7960
+0x5E67 0x79C1
+0x5E68 0x7BE9
+0x5E69 0x7D17
+0x5E6A 0x7D72
+0x5E6B 0x8086
+0x5E6C 0x820D
+0x5E6D 0x838E
+0x5E6E 0x84D1
+0x5E6F 0x86C7
+0x5E70 0x88DF
+0x5E71 0x8A50
+0x5E72 0x8A5E
+0x5E73 0x8B1D
+0x5E74 0x8CDC
+0x5E75 0x8D66
+0x5E76 0x8FAD
+0x5E77 0x90AA
+0x5E78 0x98FC
+0x5E79 0x99DF
+0x5E7A 0x9E9D
+0x5E7B 0x524A
+0x5E7C 0xF969
+0x5E7D 0x6714
+0x5E7E 0xF96A
+0x5F21 0x5098
+0x5F22 0x522A
+0x5F23 0x5C71
+0x5F24 0x6563
+0x5F25 0x6C55
+0x5F26 0x73CA
+0x5F27 0x7523
+0x5F28 0x759D
+0x5F29 0x7B97
+0x5F2A 0x849C
+0x5F2B 0x9178
+0x5F2C 0x9730
+0x5F2D 0x4E77
+0x5F2E 0x6492
+0x5F2F 0x6BBA
+0x5F30 0x715E
+0x5F31 0x85A9
+0x5F32 0x4E09
+0x5F33 0xF96B
+0x5F34 0x6749
+0x5F35 0x68EE
+0x5F36 0x6E17
+0x5F37 0x829F
+0x5F38 0x8518
+0x5F39 0x886B
+0x5F3A 0x63F7
+0x5F3B 0x6F81
+0x5F3C 0x9212
+0x5F3D 0x98AF
+0x5F3E 0x4E0A
+0x5F3F 0x50B7
+0x5F40 0x50CF
+0x5F41 0x511F
+0x5F42 0x5546
+0x5F43 0x55AA
+0x5F44 0x5617
+0x5F45 0x5B40
+0x5F46 0x5C19
+0x5F47 0x5CE0
+0x5F48 0x5E38
+0x5F49 0x5E8A
+0x5F4A 0x5EA0
+0x5F4B 0x5EC2
+0x5F4C 0x60F3
+0x5F4D 0x6851
+0x5F4E 0x6A61
+0x5F4F 0x6E58
+0x5F50 0x723D
+0x5F51 0x7240
+0x5F52 0x72C0
+0x5F53 0x76F8
+0x5F54 0x7965
+0x5F55 0x7BB1
+0x5F56 0x7FD4
+0x5F57 0x88F3
+0x5F58 0x89F4
+0x5F59 0x8A73
+0x5F5A 0x8C61
+0x5F5B 0x8CDE
+0x5F5C 0x971C
+0x5F5D 0x585E
+0x5F5E 0x74BD
+0x5F5F 0x8CFD
+0x5F60 0x55C7
+0x5F61 0xF96C
+0x5F62 0x7A61
+0x5F63 0x7D22
+0x5F64 0x8272
+0x5F65 0x7272
+0x5F66 0x751F
+0x5F67 0x7525
+0x5F68 0xF96D
+0x5F69 0x7B19
+0x5F6A 0x5885
+0x5F6B 0x58FB
+0x5F6C 0x5DBC
+0x5F6D 0x5E8F
+0x5F6E 0x5EB6
+0x5F6F 0x5F90
+0x5F70 0x6055
+0x5F71 0x6292
+0x5F72 0x637F
+0x5F73 0x654D
+0x5F74 0x6691
+0x5F75 0x66D9
+0x5F76 0x66F8
+0x5F77 0x6816
+0x5F78 0x68F2
+0x5F79 0x7280
+0x5F7A 0x745E
+0x5F7B 0x7B6E
+0x5F7C 0x7D6E
+0x5F7D 0x7DD6
+0x5F7E 0x7F72
+0x6021 0x80E5
+0x6022 0x8212
+0x6023 0x85AF
+0x6024 0x897F
+0x6025 0x8A93
+0x6026 0x901D
+0x6027 0x92E4
+0x6028 0x9ECD
+0x6029 0x9F20
+0x602A 0x5915
+0x602B 0x596D
+0x602C 0x5E2D
+0x602D 0x60DC
+0x602E 0x6614
+0x602F 0x6673
+0x6030 0x6790
+0x6031 0x6C50
+0x6032 0x6DC5
+0x6033 0x6F5F
+0x6034 0x77F3
+0x6035 0x78A9
+0x6036 0x84C6
+0x6037 0x91CB
+0x6038 0x932B
+0x6039 0x4ED9
+0x603A 0x50CA
+0x603B 0x5148
+0x603C 0x5584
+0x603D 0x5B0B
+0x603E 0x5BA3
+0x603F 0x6247
+0x6040 0x657E
+0x6041 0x65CB
+0x6042 0x6E32
+0x6043 0x717D
+0x6044 0x7401
+0x6045 0x7444
+0x6046 0x7487
+0x6047 0x74BF
+0x6048 0x766C
+0x6049 0x79AA
+0x604A 0x7DDA
+0x604B 0x7E55
+0x604C 0x7FA8
+0x604D 0x817A
+0x604E 0x81B3
+0x604F 0x8239
+0x6050 0x861A
+0x6051 0x87EC
+0x6052 0x8A75
+0x6053 0x8DE3
+0x6054 0x9078
+0x6055 0x9291
+0x6056 0x9425
+0x6057 0x994D
+0x6058 0x9BAE
+0x6059 0x5368
+0x605A 0x5C51
+0x605B 0x6954
+0x605C 0x6CC4
+0x605D 0x6D29
+0x605E 0x6E2B
+0x605F 0x820C
+0x6060 0x859B
+0x6061 0x893B
+0x6062 0x8A2D
+0x6063 0x8AAA
+0x6064 0x96EA
+0x6065 0x9F67
+0x6066 0x5261
+0x6067 0x66B9
+0x6068 0x6BB2
+0x6069 0x7E96
+0x606A 0x87FE
+0x606B 0x8D0D
+0x606C 0x9583
+0x606D 0x965D
+0x606E 0x651D
+0x606F 0x6D89
+0x6070 0x71EE
+0x6071 0xF96E
+0x6072 0x57CE
+0x6073 0x59D3
+0x6074 0x5BAC
+0x6075 0x6027
+0x6076 0x60FA
+0x6077 0x6210
+0x6078 0x661F
+0x6079 0x665F
+0x607A 0x7329
+0x607B 0x73F9
+0x607C 0x76DB
+0x607D 0x7701
+0x607E 0x7B6C
+0x6121 0x8056
+0x6122 0x8072
+0x6123 0x8165
+0x6124 0x8AA0
+0x6125 0x9192
+0x6126 0x4E16
+0x6127 0x52E2
+0x6128 0x6B72
+0x6129 0x6D17
+0x612A 0x7A05
+0x612B 0x7B39
+0x612C 0x7D30
+0x612D 0xF96F
+0x612E 0x8CB0
+0x612F 0x53EC
+0x6130 0x562F
+0x6131 0x5851
+0x6132 0x5BB5
+0x6133 0x5C0F
+0x6134 0x5C11
+0x6135 0x5DE2
+0x6136 0x6240
+0x6137 0x6383
+0x6138 0x6414
+0x6139 0x662D
+0x613A 0x68B3
+0x613B 0x6CBC
+0x613C 0x6D88
+0x613D 0x6EAF
+0x613E 0x701F
+0x613F 0x70A4
+0x6140 0x71D2
+0x6141 0x7526
+0x6142 0x758F
+0x6143 0x758E
+0x6144 0x7619
+0x6145 0x7B11
+0x6146 0x7BE0
+0x6147 0x7C2B
+0x6148 0x7D20
+0x6149 0x7D39
+0x614A 0x852C
+0x614B 0x856D
+0x614C 0x8607
+0x614D 0x8A34
+0x614E 0x900D
+0x614F 0x9061
+0x6150 0x90B5
+0x6151 0x92B7
+0x6152 0x97F6
+0x6153 0x9A37
+0x6154 0x4FD7
+0x6155 0x5C6C
+0x6156 0x675F
+0x6157 0x6D91
+0x6158 0x7C9F
+0x6159 0x7E8C
+0x615A 0x8B16
+0x615B 0x8D16
+0x615C 0x901F
+0x615D 0x5B6B
+0x615E 0x5DFD
+0x615F 0x640D
+0x6160 0x84C0
+0x6161 0x905C
+0x6162 0x98E1
+0x6163 0x7387
+0x6164 0x5B8B
+0x6165 0x609A
+0x6166 0x677E
+0x6167 0x6DDE
+0x6168 0x8A1F
+0x6169 0x8AA6
+0x616A 0x9001
+0x616B 0x980C
+0x616C 0x5237
+0x616D 0xF970
+0x616E 0x7051
+0x616F 0x788E
+0x6170 0x9396
+0x6171 0x8870
+0x6172 0x91D7
+0x6173 0x4FEE
+0x6174 0x53D7
+0x6175 0x55FD
+0x6176 0x56DA
+0x6177 0x5782
+0x6178 0x58FD
+0x6179 0x5AC2
+0x617A 0x5B88
+0x617B 0x5CAB
+0x617C 0x5CC0
+0x617D 0x5E25
+0x617E 0x6101
+0x6221 0x620D
+0x6222 0x624B
+0x6223 0x6388
+0x6224 0x641C
+0x6225 0x6536
+0x6226 0x6578
+0x6227 0x6A39
+0x6228 0x6B8A
+0x6229 0x6C34
+0x622A 0x6D19
+0x622B 0x6F31
+0x622C 0x71E7
+0x622D 0x72E9
+0x622E 0x7378
+0x622F 0x7407
+0x6230 0x74B2
+0x6231 0x7626
+0x6232 0x7761
+0x6233 0x79C0
+0x6234 0x7A57
+0x6235 0x7AEA
+0x6236 0x7CB9
+0x6237 0x7D8F
+0x6238 0x7DAC
+0x6239 0x7E61
+0x623A 0x7F9E
+0x623B 0x8129
+0x623C 0x8331
+0x623D 0x8490
+0x623E 0x84DA
+0x623F 0x85EA
+0x6240 0x8896
+0x6241 0x8AB0
+0x6242 0x8B90
+0x6243 0x8F38
+0x6244 0x9042
+0x6245 0x9083
+0x6246 0x916C
+0x6247 0x9296
+0x6248 0x92B9
+0x6249 0x968B
+0x624A-0x624B 0x96A7
+0x624C 0x96D6
+0x624D 0x9700
+0x624E 0x9808
+0x624F 0x9996
+0x6250 0x9AD3
+0x6251 0x9B1A
+0x6252 0x53D4
+0x6253 0x587E
+0x6254 0x5919
+0x6255 0x5B70
+0x6256 0x5BBF
+0x6257 0x6DD1
+0x6258 0x6F5A
+0x6259 0x719F
+0x625A 0x7421
+0x625B 0x74B9
+0x625C 0x8085
+0x625D 0x83FD
+0x625E 0x5DE1
+0x625F 0x5F87
+0x6260 0x5FAA
+0x6261 0x6042
+0x6262 0x65EC
+0x6263 0x6812
+0x6264 0x696F
+0x6265 0x6A53
+0x6266 0x6B89
+0x6267 0x6D35
+0x6268 0x6DF3
+0x6269 0x73E3
+0x626A 0x76FE
+0x626B 0x77AC
+0x626C 0x7B4D
+0x626D 0x7D14
+0x626E 0x8123
+0x626F 0x821C
+0x6270 0x8340
+0x6271 0x84F4
+0x6272 0x8563
+0x6273 0x8A62
+0x6274 0x8AC4
+0x6275 0x9187
+0x6276 0x931E
+0x6277 0x9806
+0x6278 0x99B4
+0x6279 0x620C
+0x627A 0x8853
+0x627B 0x8FF0
+0x627C 0x9265
+0x627D 0x5D07
+0x627E 0x5D27
+0x6321 0x5D69
+0x6322 0x745F
+0x6323 0x819D
+0x6324 0x8768
+0x6325 0x6FD5
+0x6326 0x62FE
+0x6327 0x7FD2
+0x6328 0x8936
+0x6329 0x8972
+0x632A 0x4E1E
+0x632B 0x4E58
+0x632C 0x50E7
+0x632D 0x52DD
+0x632E 0x5347
+0x632F 0x627F
+0x6330 0x6607
+0x6331 0x7E69
+0x6332 0x8805
+0x6333 0x965E
+0x6334 0x4F8D
+0x6335 0x5319
+0x6336 0x5636
+0x6337 0x59CB
+0x6338 0x5AA4
+0x6339 0x5C38
+0x633A 0x5C4E
+0x633B 0x5C4D
+0x633C 0x5E02
+0x633D 0x5F11
+0x633E 0x6043
+0x633F 0x65BD
+0x6340 0x662F
+0x6341 0x6642
+0x6342 0x67BE
+0x6343 0x67F4
+0x6344 0x731C
+0x6345 0x77E2
+0x6346 0x793A
+0x6347 0x7FC5
+0x6348 0x8494
+0x6349 0x84CD
+0x634A 0x8996
+0x634B 0x8A66
+0x634C 0x8A69
+0x634D 0x8AE1
+0x634E 0x8C55
+0x634F 0x8C7A
+0x6350 0x57F4
+0x6351 0x5BD4
+0x6352 0x5F0F
+0x6353 0x606F
+0x6354 0x62ED
+0x6355 0x690D
+0x6356 0x6B96
+0x6357 0x6E5C
+0x6358 0x7184
+0x6359 0x7BD2
+0x635A 0x8755
+0x635B 0x8B58
+0x635C 0x8EFE
+0x635D 0x98DF
+0x635E 0x98FE
+0x635F 0x4F38
+0x6360 0x4F81
+0x6361 0x4FE1
+0x6362 0x547B
+0x6363 0x5A20
+0x6364 0x5BB8
+0x6365 0x613C
+0x6366 0x65B0
+0x6367 0x6668
+0x6368 0x71FC
+0x6369 0x7533
+0x636A 0x795E
+0x636B 0x7D33
+0x636C 0x814E
+0x636D 0x81E3
+0x636E 0x8398
+0x636F 0x85AA
+0x6370 0x85CE
+0x6371 0x8703
+0x6372 0x8A0A
+0x6373 0x8EAB
+0x6374 0x8F9B
+0x6375 0xF971
+0x6376 0x8FC5
+0x6377 0x5931
+0x6378 0x5BA4
+0x6379 0x5BE6
+0x637A 0x6089
+0x637B 0x5BE9
+0x637C 0x5C0B
+0x637D 0x5FC3
+0x637E 0x6C81
+0x6421 0xF972
+0x6422 0x6DF1
+0x6423 0x700B
+0x6424 0x751A
+0x6425 0x82AF
+0x6426 0x8AF6
+0x6427 0x4EC0
+0x6428 0x5341
+0x6429 0xF973
+0x642A 0x96D9
+0x642B 0x6C0F
+0x642C 0x4E9E
+0x642D 0x4FC4
+0x642E 0x5152
+0x642F 0x555E
+0x6430 0x5A25
+0x6431 0x5CE8
+0x6432 0x6211
+0x6433 0x7259
+0x6434 0x82BD
+0x6435 0x83AA
+0x6436 0x86FE
+0x6437 0x8859
+0x6438 0x8A1D
+0x6439 0x963F
+0x643A 0x96C5
+0x643B 0x9913
+0x643C 0x9D09
+0x643D 0x9D5D
+0x643E 0x580A
+0x643F 0x5CB3
+0x6440 0x5DBD
+0x6441 0x5E44
+0x6442 0x60E1
+0x6443 0x6115
+0x6444 0x63E1
+0x6445 0x6A02
+0x6446 0x6E25
+0x6447 0x9102
+0x6448 0x9354
+0x6449 0x984E
+0x644A 0x9C10
+0x644B 0x9F77
+0x644C 0x5B89
+0x644D 0x5CB8
+0x644E 0x6309
+0x644F 0x664F
+0x6450 0x6848
+0x6451 0x773C
+0x6452 0x96C1
+0x6453 0x978D
+0x6454 0x9854
+0x6455 0x9B9F
+0x6456 0x65A1
+0x6457 0x8B01
+0x6458 0x8ECB
+0x6459 0x95BC
+0x645A 0x5535
+0x645B 0x5CA9
+0x645C 0x5DD6
+0x645D 0x5EB5
+0x645E 0x6697
+0x645F 0x764C
+0x6460 0x83F4
+0x6461 0x95C7
+0x6462 0x58D3
+0x6463 0x62BC
+0x6464 0x72CE
+0x6465 0x9D28
+0x6466 0x4EF0
+0x6467 0x592E
+0x6468 0x600F
+0x6469 0x663B
+0x646A 0x6B83
+0x646B 0x79E7
+0x646C 0x9D26
+0x646D 0x5393
+0x646E 0x54C0
+0x646F 0x57C3
+0x6470 0x5D16
+0x6471 0x611B
+0x6472 0x66D6
+0x6473 0x6DAF
+0x6474 0x788D
+0x6475 0x827E
+0x6476 0x9698
+0x6477 0x9744
+0x6478 0x5384
+0x6479 0x627C
+0x647A 0x6396
+0x647B 0x6DB2
+0x647C 0x7E0A
+0x647D 0x814B
+0x647E 0x984D
+0x6521 0x6AFB
+0x6522 0x7F4C
+0x6523 0x9DAF
+0x6524 0x9E1A
+0x6525 0x4E5F
+0x6526 0x503B
+0x6527 0x51B6
+0x6528 0x591C
+0x6529 0x60F9
+0x652A 0x63F6
+0x652B 0x6930
+0x652C 0x723A
+0x652D 0x8036
+0x652E 0xF974
+0x652F 0x91CE
+0x6530 0x5F31
+0x6531-0x6532 0xF975
+0x6533 0x7D04
+0x6534 0x82E5
+0x6535 0x846F
+0x6536 0x84BB
+0x6537 0x85E5
+0x6538 0x8E8D
+0x6539 0xF977
+0x653A 0x4F6F
+0x653B-0x653C 0xF978
+0x653D 0x58E4
+0x653E 0x5B43
+0x653F 0x6059
+0x6540 0x63DA
+0x6541 0x6518
+0x6542 0x656D
+0x6543 0x6698
+0x6544 0xF97A
+0x6545 0x694A
+0x6546 0x6A23
+0x6547 0x6D0B
+0x6548 0x7001
+0x6549 0x716C
+0x654A 0x75D2
+0x654B 0x760D
+0x654C 0x79B3
+0x654D 0x7A70
+0x654E 0xF97B
+0x654F 0x7F8A
+0x6550 0xF97C
+0x6551 0x8944
+0x6552 0xF97D
+0x6553 0x8B93
+0x6554 0x91C0
+0x6555 0x967D
+0x6556 0xF97E
+0x6557 0x990A
+0x6558 0x5704
+0x6559 0x5FA1
+0x655A 0x65BC
+0x655B 0x6F01
+0x655C 0x7600
+0x655D 0x79A6
+0x655E 0x8A9E
+0x655F 0x99AD
+0x6560 0x9B5A
+0x6561 0x9F6C
+0x6562 0x5104
+0x6563 0x61B6
+0x6564 0x6291
+0x6565 0x6A8D
+0x6566 0x81C6
+0x6567 0x5043
+0x6568 0x5830
+0x6569 0x5F66
+0x656A 0x7109
+0x656B 0x8A00
+0x656C 0x8AFA
+0x656D 0x5B7C
+0x656E 0x8616
+0x656F 0x4FFA
+0x6570 0x513C
+0x6571 0x56B4
+0x6572 0x5944
+0x6573 0x63A9
+0x6574 0x6DF9
+0x6575 0x5DAA
+0x6576 0x696D
+0x6577 0x5186
+0x6578 0x4E88
+0x6579 0x4F59
+0x657A-0x657C 0xF97F
+0x657D 0x5982
+0x657E 0xF982
+0x6621 0xF983
+0x6622 0x6B5F
+0x6623 0x6C5D
+0x6624 0xF984
+0x6625 0x74B5
+0x6626 0x7916
+0x6627 0xF985
+0x6628 0x8207
+0x6629 0x8245
+0x662A 0x8339
+0x662B 0x8F3F
+0x662C 0x8F5D
+0x662D 0xF986
+0x662E 0x9918
+0x662F-0x6631 0xF987
+0x6632 0x4EA6
+0x6633 0xF98A
+0x6634 0x57DF
+0x6635 0x5F79
+0x6636 0x6613
+0x6637-0x6638 0xF98B
+0x6639 0x75AB
+0x663A 0x7E79
+0x663B 0x8B6F
+0x663C 0xF98D
+0x663D 0x9006
+0x663E 0x9A5B
+0x663F 0x56A5
+0x6640 0x5827
+0x6641 0x59F8
+0x6642 0x5A1F
+0x6643 0x5BB4
+0x6644 0xF98E
+0x6645 0x5EF6
+0x6646-0x6647 0xF98F
+0x6648 0x6350
+0x6649 0x633B
+0x664A 0xF991
+0x664B 0x693D
+0x664C 0x6C87
+0x664D 0x6CBF
+0x664E 0x6D8E
+0x664F 0x6D93
+0x6650 0x6DF5
+0x6651 0x6F14
+0x6652 0xF992
+0x6653 0x70DF
+0x6654 0x7136
+0x6655 0x7159
+0x6656 0xF993
+0x6657 0x71C3
+0x6658 0x71D5
+0x6659 0xF994
+0x665A 0x784F
+0x665B 0x786F
+0x665C 0xF995
+0x665D 0x7B75
+0x665E 0x7DE3
+0x665F 0xF996
+0x6660 0x7E2F
+0x6661 0xF997
+0x6662 0x884D
+0x6663 0x8EDF
+0x6664-0x6666 0xF998
+0x6667 0x925B
+0x6668 0xF99B
+0x6669 0x9CF6
+0x666A-0x666C 0xF99C
+0x666D 0x6085
+0x666E 0x6D85
+0x666F 0xF99F
+0x6670 0x71B1
+0x6671-0x6672 0xF9A0
+0x6673 0x95B1
+0x6674 0x53AD
+0x6675-0x6677 0xF9A2
+0x6678 0x67D3
+0x6679 0xF9A5
+0x667A 0x708E
+0x667B 0x7130
+0x667C 0x7430
+0x667D 0x8276
+0x667E 0x82D2
+0x6721 0xF9A6
+0x6722 0x95BB
+0x6723 0x9AE5
+0x6724 0x9E7D
+0x6725 0x66C4
+0x6726 0xF9A7
+0x6727 0x71C1
+0x6728 0x8449
+0x6729-0x672A 0xF9A8
+0x672B 0x584B
+0x672C-0x672D 0xF9AA
+0x672E 0x5DB8
+0x672F 0x5F71
+0x6730 0xF9AC
+0x6731 0x6620
+0x6732 0x668E
+0x6733 0x6979
+0x6734 0x69AE
+0x6735 0x6C38
+0x6736 0x6CF3
+0x6737 0x6E36
+0x6738 0x6F41
+0x6739 0x6FDA
+0x673A 0x701B
+0x673B 0x702F
+0x673C 0x7150
+0x673D 0x71DF
+0x673E 0x7370
+0x673F 0xF9AD
+0x6740 0x745B
+0x6741 0xF9AE
+0x6742 0x74D4
+0x6743 0x76C8
+0x6744 0x7A4E
+0x6745 0x7E93
+0x6746-0x6747 0xF9AF
+0x6748 0x82F1
+0x6749 0x8A60
+0x674A 0x8FCE
+0x674B 0xF9B1
+0x674C 0x9348
+0x674D 0xF9B2
+0x674E 0x9719
+0x674F-0x6750 0xF9B3
+0x6751 0x4E42
+0x6752 0x502A
+0x6753 0xF9B5
+0x6754 0x5208
+0x6755 0x53E1
+0x6756 0x66F3
+0x6757 0x6C6D
+0x6758 0x6FCA
+0x6759 0x730A
+0x675A 0x777F
+0x675B 0x7A62
+0x675C 0x82AE
+0x675D 0x85DD
+0x675E 0x8602
+0x675F 0xF9B6
+0x6760 0x88D4
+0x6761 0x8A63
+0x6762 0x8B7D
+0x6763 0x8C6B
+0x6764 0xF9B7
+0x6765 0x92B3
+0x6766 0xF9B8
+0x6767 0x9713
+0x6768 0x9810
+0x6769 0x4E94
+0x676A 0x4F0D
+0x676B 0x4FC9
+0x676C 0x50B2
+0x676D 0x5348
+0x676E 0x543E
+0x676F 0x5433
+0x6770 0x55DA
+0x6771 0x5862
+0x6772 0x58BA
+0x6773 0x5967
+0x6774 0x5A1B
+0x6775 0x5BE4
+0x6776 0x609F
+0x6777 0xF9B9
+0x6778 0x61CA
+0x6779 0x6556
+0x677A 0x65FF
+0x677B 0x6664
+0x677C 0x68A7
+0x677D 0x6C5A
+0x677E 0x6FB3
+0x6821 0x70CF
+0x6822 0x71AC
+0x6823 0x7352
+0x6824 0x7B7D
+0x6825 0x8708
+0x6826 0x8AA4
+0x6827 0x9C32
+0x6828 0x9F07
+0x6829 0x5C4B
+0x682A 0x6C83
+0x682B 0x7344
+0x682C 0x7389
+0x682D 0x923A
+0x682E 0x6EAB
+0x682F 0x7465
+0x6830 0x761F
+0x6831 0x7A69
+0x6832 0x7E15
+0x6833 0x860A
+0x6834 0x5140
+0x6835 0x58C5
+0x6836 0x64C1
+0x6837 0x74EE
+0x6838 0x7515
+0x6839 0x7670
+0x683A 0x7FC1
+0x683B 0x9095
+0x683C 0x96CD
+0x683D 0x9954
+0x683E 0x6E26
+0x683F 0x74E6
+0x6840-0x6841 0x7AA9
+0x6842 0x81E5
+0x6843 0x86D9
+0x6844 0x8778
+0x6845 0x8A1B
+0x6846 0x5A49
+0x6847 0x5B8C
+0x6848 0x5B9B
+0x6849 0x68A1
+0x684A 0x6900
+0x684B 0x6D63
+0x684C 0x73A9
+0x684D 0x7413
+0x684E 0x742C
+0x684F 0x7897
+0x6850 0x7DE9
+0x6851 0x7FEB
+0x6852 0x8118
+0x6853 0x8155
+0x6854 0x839E
+0x6855 0x8C4C
+0x6856 0x962E
+0x6857 0x9811
+0x6858 0x66F0
+0x6859 0x5F80
+0x685A 0x65FA
+0x685B 0x6789
+0x685C 0x6C6A
+0x685D 0x738B
+0x685E 0x502D
+0x685F 0x5A03
+0x6860 0x6B6A
+0x6861 0x77EE
+0x6862 0x5916
+0x6863 0x5D6C
+0x6864 0x5DCD
+0x6865 0x7325
+0x6866 0x754F
+0x6867-0x6868 0xF9BA
+0x6869 0x50E5
+0x686A 0x51F9
+0x686B 0x582F
+0x686C 0x592D
+0x686D 0x5996
+0x686E 0x59DA
+0x686F 0x5BE5
+0x6870-0x6871 0xF9BC
+0x6872 0x5DA2
+0x6873 0x62D7
+0x6874 0x6416
+0x6875 0x6493
+0x6876 0x64FE
+0x6877 0xF9BE
+0x6878 0x66DC
+0x6879 0xF9BF
+0x687A 0x6A48
+0x687B 0xF9C0
+0x687C 0x71FF
+0x687D 0x7464
+0x687E 0xF9C1
+0x6921 0x7A88
+0x6922 0x7AAF
+0x6923 0x7E47
+0x6924 0x7E5E
+0x6925 0x8000
+0x6926 0x8170
+0x6927 0xF9C2
+0x6928 0x87EF
+0x6929 0x8981
+0x692A 0x8B20
+0x692B 0x9059
+0x692C 0xF9C3
+0x692D 0x9080
+0x692E 0x9952
+0x692F 0x617E
+0x6930 0x6B32
+0x6931 0x6D74
+0x6932 0x7E1F
+0x6933 0x8925
+0x6934 0x8FB1
+0x6935 0x4FD1
+0x6936 0x50AD
+0x6937 0x5197
+0x6938 0x52C7
+0x6939 0x57C7
+0x693A 0x5889
+0x693B 0x5BB9
+0x693C 0x5EB8
+0x693D 0x6142
+0x693E 0x6995
+0x693F 0x6D8C
+0x6940 0x6E67
+0x6941 0x6EB6
+0x6942 0x7194
+0x6943 0x7462
+0x6944 0x7528
+0x6945 0x752C
+0x6946 0x8073
+0x6947 0x8338
+0x6948 0x84C9
+0x6949 0x8E0A
+0x694A 0x9394
+0x694B 0x93DE
+0x694C 0xF9C4
+0x694D 0x4E8E
+0x694E 0x4F51
+0x694F 0x5076
+0x6950 0x512A
+0x6951 0x53C8
+0x6952 0x53CB
+0x6953 0x53F3
+0x6954 0x5B87
+0x6955 0x5BD3
+0x6956 0x5C24
+0x6957 0x611A
+0x6958 0x6182
+0x6959 0x65F4
+0x695A 0x725B
+0x695B 0x7397
+0x695C 0x7440
+0x695D 0x76C2
+0x695E 0x7950
+0x695F 0x7991
+0x6960 0x79B9
+0x6961 0x7D06
+0x6962 0x7FBD
+0x6963 0x828B
+0x6964 0x85D5
+0x6965 0x865E
+0x6966 0x8FC2
+0x6967 0x9047
+0x6968 0x90F5
+0x6969 0x91EA
+0x696A 0x9685
+0x696B-0x696C 0x96E8
+0x696D 0x52D6
+0x696E 0x5F67
+0x696F 0x65ED
+0x6970 0x6631
+0x6971 0x682F
+0x6972 0x715C
+0x6973 0x7A36
+0x6974 0x90C1
+0x6975 0x980A
+0x6976 0x4E91
+0x6977 0xF9C5
+0x6978 0x6A52
+0x6979 0x6B9E
+0x697A 0x6F90
+0x697B 0x7189
+0x697C 0x8018
+0x697D 0x82B8
+0x697E 0x8553
+0x6A21 0x904B
+0x6A22 0x9695
+0x6A23 0x96F2
+0x6A24 0x97FB
+0x6A25 0x851A
+0x6A26 0x9B31
+0x6A27 0x4E90
+0x6A28 0x718A
+0x6A29 0x96C4
+0x6A2A 0x5143
+0x6A2B 0x539F
+0x6A2C 0x54E1
+0x6A2D 0x5713
+0x6A2E 0x5712
+0x6A2F 0x57A3
+0x6A30 0x5A9B
+0x6A31 0x5AC4
+0x6A32 0x5BC3
+0x6A33 0x6028
+0x6A34 0x613F
+0x6A35 0x63F4
+0x6A36 0x6C85
+0x6A37 0x6D39
+0x6A38 0x6E72
+0x6A39 0x6E90
+0x6A3A 0x7230
+0x6A3B 0x733F
+0x6A3C 0x7457
+0x6A3D 0x82D1
+0x6A3E 0x8881
+0x6A3F 0x8F45
+0x6A40 0x9060
+0x6A41 0xF9C6
+0x6A42 0x9662
+0x6A43 0x9858
+0x6A44 0x9D1B
+0x6A45 0x6708
+0x6A46 0x8D8A
+0x6A47 0x925E
+0x6A48 0x4F4D
+0x6A49 0x5049
+0x6A4A 0x50DE
+0x6A4B 0x5371
+0x6A4C 0x570D
+0x6A4D 0x59D4
+0x6A4E 0x5A01
+0x6A4F 0x5C09
+0x6A50 0x6170
+0x6A51 0x6690
+0x6A52 0x6E2D
+0x6A53 0x7232
+0x6A54 0x744B
+0x6A55 0x7DEF
+0x6A56 0x80C3
+0x6A57 0x840E
+0x6A58 0x8466
+0x6A59 0x853F
+0x6A5A 0x875F
+0x6A5B 0x885B
+0x6A5C 0x8918
+0x6A5D 0x8B02
+0x6A5E 0x9055
+0x6A5F 0x97CB
+0x6A60 0x9B4F
+0x6A61 0x4E73
+0x6A62 0x4F91
+0x6A63 0x5112
+0x6A64 0x516A
+0x6A65 0xF9C7
+0x6A66 0x552F
+0x6A67 0x55A9
+0x6A68 0x5B7A
+0x6A69 0x5BA5
+0x6A6A-0x6A6B 0x5E7C
+0x6A6C 0x5EBE
+0x6A6D 0x60A0
+0x6A6E 0x60DF
+0x6A6F-0x6A70 0x6108
+0x6A71 0x63C4
+0x6A72 0x6538
+0x6A73 0x6709
+0x6A74 0xF9C8
+0x6A75 0x67D4
+0x6A76 0x67DA
+0x6A77 0xF9C9
+0x6A78-0x6A79 0x6961
+0x6A7A 0x6CB9
+0x6A7B 0x6D27
+0x6A7C 0xF9CA
+0x6A7D 0x6E38
+0x6A7E 0xF9CB
+0x6B21 0x6FE1
+0x6B22-0x6B23 0x7336
+0x6B24 0xF9CC
+0x6B25 0x745C
+0x6B26 0x7531
+0x6B27 0xF9CD
+0x6B28 0x7652
+0x6B29-0x6B2A 0xF9CE
+0x6B2B 0x7DAD
+0x6B2C 0x81FE
+0x6B2D 0x8438
+0x6B2E 0x88D5
+0x6B2F 0x8A98
+0x6B30 0x8ADB
+0x6B31 0x8AED
+0x6B32 0x8E30
+0x6B33 0x8E42
+0x6B34 0x904A
+0x6B35 0x903E
+0x6B36 0x907A
+0x6B37 0x9149
+0x6B38 0x91C9
+0x6B39 0x936E
+0x6B3A-0x6B3B 0xF9D0
+0x6B3C 0x5809
+0x6B3D 0xF9D2
+0x6B3E 0x6BD3
+0x6B3F 0x8089
+0x6B40 0x80B2
+0x6B41-0x6B42 0xF9D3
+0x6B43 0x5141
+0x6B44 0x596B
+0x6B45 0x5C39
+0x6B46-0x6B47 0xF9D5
+0x6B48 0x6F64
+0x6B49 0x73A7
+0x6B4A 0x80E4
+0x6B4B 0x8D07
+0x6B4C 0xF9D7
+0x6B4D 0x9217
+0x6B4E 0x958F
+0x6B4F-0x6B52 0xF9D8
+0x6B53 0x807F
+0x6B54 0x620E
+0x6B55 0x701C
+0x6B56 0x7D68
+0x6B57 0x878D
+0x6B58 0xF9DC
+0x6B59 0x57A0
+0x6B5A 0x6069
+0x6B5B 0x6147
+0x6B5C 0x6BB7
+0x6B5D 0x8ABE
+0x6B5E 0x9280
+0x6B5F 0x96B1
+0x6B60 0x4E59
+0x6B61 0x541F
+0x6B62 0x6DEB
+0x6B63 0x852D
+0x6B64 0x9670
+0x6B65 0x97F3
+0x6B66 0x98EE
+0x6B67 0x63D6
+0x6B68 0x6CE3
+0x6B69 0x9091
+0x6B6A 0x51DD
+0x6B6B 0x61C9
+0x6B6C 0x81BA
+0x6B6D 0x9DF9
+0x6B6E 0x4F9D
+0x6B6F 0x501A
+0x6B70 0x5100
+0x6B71 0x5B9C
+0x6B72 0x610F
+0x6B73 0x61FF
+0x6B74 0x64EC
+0x6B75 0x6905
+0x6B76 0x6BC5
+0x6B77 0x7591
+0x6B78 0x77E3
+0x6B79 0x7FA9
+0x6B7A 0x8264
+0x6B7B 0x858F
+0x6B7C 0x87FB
+0x6B7D 0x8863
+0x6B7E 0x8ABC
+0x6C21 0x8B70
+0x6C22 0x91AB
+0x6C23 0x4E8C
+0x6C24 0x4EE5
+0x6C25 0x4F0A
+0x6C26-0x6C27 0xF9DD
+0x6C28 0x5937
+0x6C29 0x59E8
+0x6C2A 0xF9DF
+0x6C2B 0x5DF2
+0x6C2C 0x5F1B
+0x6C2D 0x5F5B
+0x6C2E 0x6021
+0x6C2F-0x6C32 0xF9E0
+0x6C33 0x723E
+0x6C34 0x73E5
+0x6C35 0xF9E4
+0x6C36 0x7570
+0x6C37 0x75CD
+0x6C38 0xF9E5
+0x6C39 0x79FB
+0x6C3A 0xF9E6
+0x6C3B 0x800C
+0x6C3C 0x8033
+0x6C3D 0x8084
+0x6C3E 0x82E1
+0x6C3F 0x8351
+0x6C40-0x6C41 0xF9E7
+0x6C42 0x8CBD
+0x6C43 0x8CB3
+0x6C44 0x9087
+0x6C45-0x6C46 0xF9E9
+0x6C47 0x98F4
+0x6C48 0x990C
+0x6C49-0x6C4A 0xF9EB
+0x6C4B 0x7037
+0x6C4C 0x76CA
+0x6C4D 0x7FCA
+0x6C4E 0x7FCC
+0x6C4F 0x7FFC
+0x6C50 0x8B1A
+0x6C51 0x4EBA
+0x6C52 0x4EC1
+0x6C53 0x5203
+0x6C54 0x5370
+0x6C55 0xF9ED
+0x6C56 0x54BD
+0x6C57 0x56E0
+0x6C58 0x59FB
+0x6C59 0x5BC5
+0x6C5A 0x5F15
+0x6C5B 0x5FCD
+0x6C5C 0x6E6E
+0x6C5D-0x6C5E 0xF9EE
+0x6C5F 0x7D6A
+0x6C60 0x8335
+0x6C61 0xF9F0
+0x6C62 0x8693
+0x6C63 0x8A8D
+0x6C64 0xF9F1
+0x6C65 0x976D
+0x6C66 0x9777
+0x6C67-0x6C68 0xF9F2
+0x6C69 0x4E00
+0x6C6A 0x4F5A
+0x6C6B 0x4F7E
+0x6C6C 0x58F9
+0x6C6D 0x65E5
+0x6C6E 0x6EA2
+0x6C6F 0x9038
+0x6C70 0x93B0
+0x6C71 0x99B9
+0x6C72 0x4EFB
+0x6C73 0x58EC
+0x6C74 0x598A
+0x6C75 0x59D9
+0x6C76 0x6041
+0x6C77-0x6C78 0xF9F4
+0x6C79 0x7A14
+0x6C7A 0xF9F6
+0x6C7B 0x834F
+0x6C7C 0x8CC3
+0x6C7D 0x5165
+0x6C7E 0x5344
+0x6D21-0x6D23 0xF9F7
+0x6D24 0x4ECD
+0x6D25 0x5269
+0x6D26 0x5B55
+0x6D27 0x82BF
+0x6D28 0x4ED4
+0x6D29 0x523A
+0x6D2A 0x54A8
+0x6D2B 0x59C9
+0x6D2C 0x59FF
+0x6D2D 0x5B50
+0x6D2E 0x5B57
+0x6D2F 0x5B5C
+0x6D30 0x6063
+0x6D31 0x6148
+0x6D32 0x6ECB
+0x6D33 0x7099
+0x6D34 0x716E
+0x6D35 0x7386
+0x6D36 0x74F7
+0x6D37 0x75B5
+0x6D38 0x78C1
+0x6D39 0x7D2B
+0x6D3A 0x8005
+0x6D3B 0x81EA
+0x6D3C 0x8328
+0x6D3D 0x8517
+0x6D3E 0x85C9
+0x6D3F 0x8AEE
+0x6D40 0x8CC7
+0x6D41 0x96CC
+0x6D42 0x4F5C
+0x6D43 0x52FA
+0x6D44 0x56BC
+0x6D45 0x65AB
+0x6D46 0x6628
+0x6D47 0x707C
+0x6D48 0x70B8
+0x6D49 0x7235
+0x6D4A 0x7DBD
+0x6D4B 0x828D
+0x6D4C 0x914C
+0x6D4D 0x96C0
+0x6D4E 0x9D72
+0x6D4F 0x5B71
+0x6D50 0x68E7
+0x6D51 0x6B98
+0x6D52 0x6F7A
+0x6D53 0x76DE
+0x6D54 0x5C91
+0x6D55 0x66AB
+0x6D56 0x6F5B
+0x6D57 0x7BB4
+0x6D58 0x7C2A
+0x6D59 0x8836
+0x6D5A 0x96DC
+0x6D5B 0x4E08
+0x6D5C 0x4ED7
+0x6D5D 0x5320
+0x6D5E 0x5834
+0x6D5F 0x58BB
+0x6D60 0x58EF
+0x6D61 0x596C
+0x6D62 0x5C07
+0x6D63 0x5E33
+0x6D64 0x5E84
+0x6D65 0x5F35
+0x6D66 0x638C
+0x6D67 0x66B2
+0x6D68 0x6756
+0x6D69 0x6A1F
+0x6D6A 0x6AA3
+0x6D6B 0x6B0C
+0x6D6C 0x6F3F
+0x6D6D 0x7246
+0x6D6E 0xF9FA
+0x6D6F 0x7350
+0x6D70 0x748B
+0x6D71 0x7AE0
+0x6D72 0x7CA7
+0x6D73 0x8178
+0x6D74 0x81DF
+0x6D75 0x81E7
+0x6D76 0x838A
+0x6D77 0x846C
+0x6D78 0x8523
+0x6D79 0x8594
+0x6D7A 0x85CF
+0x6D7B 0x88DD
+0x6D7C 0x8D13
+0x6D7D 0x91AC
+0x6D7E 0x9577
+0x6E21 0x969C
+0x6E22 0x518D
+0x6E23 0x54C9
+0x6E24 0x5728
+0x6E25 0x5BB0
+0x6E26 0x624D
+0x6E27 0x6750
+0x6E28 0x683D
+0x6E29 0x6893
+0x6E2A 0x6E3D
+0x6E2B 0x6ED3
+0x6E2C 0x707D
+0x6E2D 0x7E21
+0x6E2E 0x88C1
+0x6E2F 0x8CA1
+0x6E30 0x8F09
+0x6E31 0x9F4B
+0x6E32 0x9F4E
+0x6E33 0x722D
+0x6E34 0x7B8F
+0x6E35 0x8ACD
+0x6E36 0x931A
+0x6E37 0x4F47
+0x6E38 0x4F4E
+0x6E39 0x5132
+0x6E3A 0x5480
+0x6E3B 0x59D0
+0x6E3C 0x5E95
+0x6E3D 0x62B5
+0x6E3E 0x6775
+0x6E3F 0x696E
+0x6E40 0x6A17
+0x6E41 0x6CAE
+0x6E42 0x6E1A
+0x6E43 0x72D9
+0x6E44 0x732A
+0x6E45 0x75BD
+0x6E46 0x7BB8
+0x6E47 0x7D35
+0x6E48 0x82E7
+0x6E49 0x83F9
+0x6E4A 0x8457
+0x6E4B 0x85F7
+0x6E4C 0x8A5B
+0x6E4D 0x8CAF
+0x6E4E 0x8E87
+0x6E4F 0x9019
+0x6E50 0x90B8
+0x6E51 0x96CE
+0x6E52 0x9F5F
+0x6E53 0x52E3
+0x6E54 0x540A
+0x6E55 0x5AE1
+0x6E56 0x5BC2
+0x6E57 0x6458
+0x6E58 0x6575
+0x6E59 0x6EF4
+0x6E5A 0x72C4
+0x6E5B 0xF9FB
+0x6E5C 0x7684
+0x6E5D 0x7A4D
+0x6E5E 0x7B1B
+0x6E5F 0x7C4D
+0x6E60 0x7E3E
+0x6E61 0x7FDF
+0x6E62 0x837B
+0x6E63 0x8B2B
+0x6E64 0x8CCA
+0x6E65 0x8D64
+0x6E66 0x8DE1
+0x6E67 0x8E5F
+0x6E68 0x8FEA
+0x6E69 0x8FF9
+0x6E6A 0x9069
+0x6E6B 0x93D1
+0x6E6C 0x4F43
+0x6E6D 0x4F7A
+0x6E6E 0x50B3
+0x6E6F 0x5168
+0x6E70 0x5178
+0x6E71 0x524D
+0x6E72 0x526A
+0x6E73 0x5861
+0x6E74 0x587C
+0x6E75 0x5960
+0x6E76 0x5C08
+0x6E77 0x5C55
+0x6E78 0x5EDB
+0x6E79 0x609B
+0x6E7A 0x6230
+0x6E7B 0x6813
+0x6E7C 0x6BBF
+0x6E7D 0x6C08
+0x6E7E 0x6FB1
+0x6F21 0x714E
+0x6F22 0x7420
+0x6F23 0x7530
+0x6F24 0x7538
+0x6F25 0x7551
+0x6F26 0x7672
+0x6F27 0x7B4C
+0x6F28 0x7B8B
+0x6F29 0x7BAD
+0x6F2A 0x7BC6
+0x6F2B 0x7E8F
+0x6F2C 0x8A6E
+0x6F2D 0x8F3E
+0x6F2E 0x8F49
+0x6F2F 0x923F
+0x6F30 0x9293
+0x6F31 0x9322
+0x6F32 0x942B
+0x6F33 0x96FB
+0x6F34 0x985A
+0x6F35 0x986B
+0x6F36 0x991E
+0x6F37 0x5207
+0x6F38 0x622A
+0x6F39 0x6298
+0x6F3A 0x6D59
+0x6F3B 0x7664
+0x6F3C 0x7ACA
+0x6F3D 0x7BC0
+0x6F3E 0x7D76
+0x6F3F 0x5360
+0x6F40 0x5CBE
+0x6F41 0x5E97
+0x6F42 0x6F38
+0x6F43 0x70B9
+0x6F44 0x7C98
+0x6F45 0x9711
+0x6F46 0x9B8E
+0x6F47 0x9EDE
+0x6F48 0x63A5
+0x6F49 0x647A
+0x6F4A 0x8776
+0x6F4B 0x4E01
+0x6F4C 0x4E95
+0x6F4D 0x4EAD
+0x6F4E 0x505C
+0x6F4F 0x5075
+0x6F50 0x5448
+0x6F51 0x59C3
+0x6F52 0x5B9A
+0x6F53 0x5E40
+0x6F54 0x5EAD
+0x6F55 0x5EF7
+0x6F56 0x5F81
+0x6F57 0x60C5
+0x6F58 0x633A
+0x6F59 0x653F
+0x6F5A 0x6574
+0x6F5B 0x65CC
+0x6F5C 0x6676
+0x6F5D 0x6678
+0x6F5E 0x67FE
+0x6F5F 0x6968
+0x6F60 0x6A89
+0x6F61 0x6B63
+0x6F62 0x6C40
+0x6F63 0x6DC0
+0x6F64 0x6DE8
+0x6F65 0x6E1F
+0x6F66 0x6E5E
+0x6F67 0x701E
+0x6F68 0x70A1
+0x6F69 0x738E
+0x6F6A 0x73FD
+0x6F6B 0x753A
+0x6F6C 0x775B
+0x6F6D 0x7887
+0x6F6E 0x798E
+0x6F6F 0x7A0B
+0x6F70 0x7A7D
+0x6F71 0x7CBE
+0x6F72 0x7D8E
+0x6F73 0x8247
+0x6F74 0x8A02
+0x6F75 0x8AEA
+0x6F76 0x8C9E
+0x6F77 0x912D
+0x6F78 0x914A
+0x6F79 0x91D8
+0x6F7A 0x9266
+0x6F7B 0x92CC
+0x6F7C 0x9320
+0x6F7D 0x9706
+0x6F7E 0x9756
+0x7021 0x975C
+0x7022 0x9802
+0x7023 0x9F0E
+0x7024 0x5236
+0x7025 0x5291
+0x7026 0x557C
+0x7027 0x5824
+0x7028 0x5E1D
+0x7029 0x5F1F
+0x702A 0x608C
+0x702B 0x63D0
+0x702C 0x68AF
+0x702D 0x6FDF
+0x702E 0x796D
+0x702F 0x7B2C
+0x7030 0x81CD
+0x7031 0x85BA
+0x7032 0x88FD
+0x7033 0x8AF8
+0x7034 0x8E44
+0x7035 0x918D
+0x7036 0x9664
+0x7037 0x969B
+0x7038 0x973D
+0x7039 0x984C
+0x703A 0x9F4A
+0x703B 0x4FCE
+0x703C 0x5146
+0x703D 0x51CB
+0x703E 0x52A9
+0x703F 0x5632
+0x7040 0x5F14
+0x7041 0x5F6B
+0x7042 0x63AA
+0x7043 0x64CD
+0x7044 0x65E9
+0x7045 0x6641
+0x7046 0x66FA
+0x7047 0x66F9
+0x7048 0x671D
+0x7049 0x689D
+0x704A 0x68D7
+0x704B 0x69FD
+0x704C 0x6F15
+0x704D 0x6F6E
+0x704E 0x7167
+0x704F 0x71E5
+0x7050 0x722A
+0x7051 0x74AA
+0x7052 0x773A
+0x7053 0x7956
+0x7054 0x795A
+0x7055 0x79DF
+0x7056 0x7A20
+0x7057 0x7A95
+0x7058 0x7C97
+0x7059 0x7CDF
+0x705A 0x7D44
+0x705B 0x7E70
+0x705C 0x8087
+0x705D 0x85FB
+0x705E 0x86A4
+0x705F 0x8A54
+0x7060 0x8ABF
+0x7061 0x8D99
+0x7062 0x8E81
+0x7063 0x9020
+0x7064 0x906D
+0x7065 0x91E3
+0x7066 0x963B
+0x7067 0x96D5
+0x7068 0x9CE5
+0x7069 0x65CF
+0x706A 0x7C07
+0x706B 0x8DB3
+0x706C 0x93C3
+0x706D 0x5B58
+0x706E 0x5C0A
+0x706F 0x5352
+0x7070 0x62D9
+0x7071 0x731D
+0x7072 0x5027
+0x7073 0x5B97
+0x7074 0x5F9E
+0x7075 0x60B0
+0x7076 0x616B
+0x7077 0x68D5
+0x7078 0x6DD9
+0x7079 0x742E
+0x707A 0x7A2E
+0x707B 0x7D42
+0x707C 0x7D9C
+0x707D 0x7E31
+0x707E 0x816B
+0x7121 0x8E2A
+0x7122 0x8E35
+0x7123 0x937E
+0x7124 0x9418
+0x7125 0x4F50
+0x7126 0x5750
+0x7127 0x5DE6
+0x7128 0x5EA7
+0x7129 0x632B
+0x712A 0x7F6A
+0x712B 0x4E3B
+0x712C 0x4F4F
+0x712D 0x4F8F
+0x712E 0x505A
+0x712F 0x59DD
+0x7130 0x80C4
+0x7131 0x546A
+0x7132 0x5468
+0x7133 0x55FE
+0x7134 0x594F
+0x7135 0x5B99
+0x7136 0x5DDE
+0x7137 0x5EDA
+0x7138 0x665D
+0x7139 0x6731
+0x713A 0x67F1
+0x713B 0x682A
+0x713C 0x6CE8
+0x713D 0x6D32
+0x713E 0x6E4A
+0x713F 0x6F8D
+0x7140 0x70B7
+0x7141 0x73E0
+0x7142 0x7587
+0x7143 0x7C4C
+0x7144 0x7D02
+0x7145 0x7D2C
+0x7146 0x7DA2
+0x7147 0x821F
+0x7148 0x86DB
+0x7149 0x8A3B
+0x714A 0x8A85
+0x714B 0x8D70
+0x714C 0x8E8A
+0x714D 0x8F33
+0x714E 0x9031
+0x714F 0x914E
+0x7150 0x9152
+0x7151 0x9444
+0x7152 0x99D0
+0x7153 0x7AF9
+0x7154 0x7CA5
+0x7155 0x4FCA
+0x7156 0x5101
+0x7157 0x51C6
+0x7158 0x57C8
+0x7159 0x5BEF
+0x715A 0x5CFB
+0x715B 0x6659
+0x715C 0x6A3D
+0x715D 0x6D5A
+0x715E 0x6E96
+0x715F 0x6FEC
+0x7160 0x710C
+0x7161 0x756F
+0x7162 0x7AE3
+0x7163 0x8822
+0x7164 0x9021
+0x7165 0x9075
+0x7166 0x96CB
+0x7167 0x99FF
+0x7168 0x8301
+0x7169 0x4E2D
+0x716A 0x4EF2
+0x716B 0x8846
+0x716C 0x91CD
+0x716D 0x537D
+0x716E 0x6ADB
+0x716F 0x696B
+0x7170 0x6C41
+0x7171 0x847A
+0x7172 0x589E
+0x7173 0x618E
+0x7174 0x66FE
+0x7175 0x62EF
+0x7176 0x70DD
+0x7177 0x7511
+0x7178 0x75C7
+0x7179 0x7E52
+0x717A 0x84B8
+0x717B 0x8B49
+0x717C 0x8D08
+0x717D 0x4E4B
+0x717E 0x53EA
+0x7221 0x54AB
+0x7222 0x5730
+0x7223 0x5740
+0x7224 0x5FD7
+0x7225 0x6301
+0x7226 0x6307
+0x7227 0x646F
+0x7228 0x652F
+0x7229 0x65E8
+0x722A 0x667A
+0x722B 0x679D
+0x722C 0x67B3
+0x722D 0x6B62
+0x722E 0x6C60
+0x722F 0x6C9A
+0x7230 0x6F2C
+0x7231 0x77E5
+0x7232 0x7825
+0x7233 0x7949
+0x7234 0x7957
+0x7235 0x7D19
+0x7236 0x80A2
+0x7237 0x8102
+0x7238 0x81F3
+0x7239 0x829D
+0x723A 0x82B7
+0x723B 0x8718
+0x723C 0x8A8C
+0x723D 0xF9FC
+0x723E 0x8D04
+0x723F 0x8DBE
+0x7240 0x9072
+0x7241 0x76F4
+0x7242 0x7A19
+0x7243 0x7A37
+0x7244 0x7E54
+0x7245 0x8077
+0x7246 0x5507
+0x7247 0x55D4
+0x7248 0x5875
+0x7249 0x632F
+0x724A 0x6422
+0x724B 0x6649
+0x724C 0x664B
+0x724D 0x686D
+0x724E 0x699B
+0x724F 0x6B84
+0x7250 0x6D25
+0x7251 0x6EB1
+0x7252 0x73CD
+0x7253 0x7468
+0x7254 0x74A1
+0x7255 0x755B
+0x7256 0x75B9
+0x7257 0x76E1
+0x7258 0x771E
+0x7259 0x778B
+0x725A 0x79E6
+0x725B 0x7E09
+0x725C 0x7E1D
+0x725D 0x81FB
+0x725E 0x852F
+0x725F 0x8897
+0x7260 0x8A3A
+0x7261 0x8CD1
+0x7262 0x8EEB
+0x7263 0x8FB0
+0x7264 0x9032
+0x7265 0x93AD
+0x7266 0x9663
+0x7267 0x9673
+0x7268 0x9707
+0x7269 0x4F84
+0x726A 0x53F1
+0x726B 0x59EA
+0x726C 0x5AC9
+0x726D 0x5E19
+0x726E 0x684E
+0x726F 0x74C6
+0x7270 0x75BE
+0x7271 0x79E9
+0x7272 0x7A92
+0x7273 0x81A3
+0x7274 0x86ED
+0x7275 0x8CEA
+0x7276 0x8DCC
+0x7277 0x8FED
+0x7278 0x659F
+0x7279 0x6715
+0x727A 0xF9FD
+0x727B 0x57F7
+0x727C 0x6F57
+0x727D 0x7DDD
+0x727E 0x8F2F
+0x7321 0x93F6
+0x7322 0x96C6
+0x7323 0x5FB5
+0x7324 0x61F2
+0x7325 0x6F84
+0x7326 0x4E14
+0x7327 0x4F98
+0x7328 0x501F
+0x7329 0x53C9
+0x732A 0x55DF
+0x732B 0x5D6F
+0x732C 0x5DEE
+0x732D 0x6B21
+0x732E 0x6B64
+0x732F 0x78CB
+0x7330 0x7B9A
+0x7331 0xF9FE
+0x7332 0x8E49
+0x7333 0x8ECA
+0x7334 0x906E
+0x7335 0x6349
+0x7336 0x643E
+0x7337 0x7740
+0x7338 0x7A84
+0x7339 0x932F
+0x733A 0x947F
+0x733B 0x9F6A
+0x733C 0x64B0
+0x733D 0x6FAF
+0x733E 0x71E6
+0x733F 0x74A8
+0x7340 0x74DA
+0x7341 0x7AC4
+0x7342 0x7C12
+0x7343 0x7E82
+0x7344 0x7CB2
+0x7345 0x7E98
+0x7346 0x8B9A
+0x7347 0x8D0A
+0x7348 0x947D
+0x7349 0x9910
+0x734A 0x994C
+0x734B 0x5239
+0x734C 0x5BDF
+0x734D 0x64E6
+0x734E 0x672D
+0x734F 0x7D2E
+0x7350 0x50ED
+0x7351 0x53C3
+0x7352 0x5879
+0x7353-0x7354 0x6158
+0x7355 0x61FA
+0x7356 0x65AC
+0x7357 0x7AD9
+0x7358 0x8B92
+0x7359 0x8B96
+0x735A 0x5009
+0x735B 0x5021
+0x735C 0x5275
+0x735D 0x5531
+0x735E 0x5A3C
+0x735F 0x5EE0
+0x7360 0x5F70
+0x7361 0x6134
+0x7362 0x655E
+0x7363 0x660C
+0x7364 0x6636
+0x7365 0x66A2
+0x7366 0x69CD
+0x7367 0x6EC4
+0x7368 0x6F32
+0x7369 0x7316
+0x736A 0x7621
+0x736B 0x7A93
+0x736C 0x8139
+0x736D 0x8259
+0x736E 0x83D6
+0x736F 0x84BC
+0x7370 0x50B5
+0x7371 0x57F0
+0x7372 0x5BC0
+0x7373 0x5BE8
+0x7374 0x5F69
+0x7375 0x63A1
+0x7376 0x7826
+0x7377 0x7DB5
+0x7378 0x83DC
+0x7379 0x8521
+0x737A 0x91C7
+0x737B 0x91F5
+0x737C 0x518A
+0x737D 0x67F5
+0x737E 0x7B56
+0x7421 0x8CAC
+0x7422 0x51C4
+0x7423 0x59BB
+0x7424 0x60BD
+0x7425 0x8655
+0x7426 0x501C
+0x7427 0xF9FF
+0x7428 0x5254
+0x7429 0x5C3A
+0x742A 0x617D
+0x742B 0x621A
+0x742C 0x62D3
+0x742D 0x64F2
+0x742E 0x65A5
+0x742F 0x6ECC
+0x7430 0x7620
+0x7431 0x810A
+0x7432 0x8E60
+0x7433 0x965F
+0x7434 0x96BB
+0x7435 0x4EDF
+0x7436 0x5343
+0x7437 0x5598
+0x7438 0x5929
+0x7439 0x5DDD
+0x743A 0x64C5
+0x743B 0x6CC9
+0x743C 0x6DFA
+0x743D 0x7394
+0x743E 0x7A7F
+0x743F 0x821B
+0x7440 0x85A6
+0x7441 0x8CE4
+0x7442 0x8E10
+0x7443 0x9077
+0x7444 0x91E7
+0x7445 0x95E1
+0x7446 0x9621
+0x7447 0x97C6
+0x7448 0x51F8
+0x7449 0x54F2
+0x744A 0x5586
+0x744B 0x5FB9
+0x744C 0x64A4
+0x744D 0x6F88
+0x744E 0x7DB4
+0x744F 0x8F1F
+0x7450 0x8F4D
+0x7451 0x9435
+0x7452 0x50C9
+0x7453 0x5C16
+0x7454 0x6CBE
+0x7455 0x6DFB
+0x7456 0x751B
+0x7457 0x77BB
+0x7458 0x7C3D
+0x7459 0x7C64
+0x745A 0x8A79
+0x745B 0x8AC2
+0x745C 0x581E
+0x745D 0x59BE
+0x745E 0x5E16
+0x745F 0x6377
+0x7460 0x7252
+0x7461 0x758A
+0x7462 0x776B
+0x7463 0x8ADC
+0x7464 0x8CBC
+0x7465 0x8F12
+0x7466 0x5EF3
+0x7467 0x6674
+0x7468 0x6DF8
+0x7469 0x807D
+0x746A 0x83C1
+0x746B 0x8ACB
+0x746C 0x9751
+0x746D 0x9BD6
+0x746E 0xFA00
+0x746F 0x5243
+0x7470 0x66FF
+0x7471 0x6D95
+0x7472 0x6EEF
+0x7473 0x7DE0
+0x7474 0x8AE6
+0x7475 0x902E
+0x7476 0x905E
+0x7477 0x9AD4
+0x7478 0x521D
+0x7479 0x527F
+0x747A 0x54E8
+0x747B 0x6194
+0x747C 0x6284
+0x747D 0x62DB
+0x747E 0x68A2
+0x7521 0x6912
+0x7522 0x695A
+0x7523 0x6A35
+0x7524 0x7092
+0x7525 0x7126
+0x7526 0x785D
+0x7527 0x7901
+0x7528 0x790E
+0x7529 0x79D2
+0x752A 0x7A0D
+0x752B 0x8096
+0x752C 0x8278
+0x752D 0x82D5
+0x752E 0x8349
+0x752F 0x8549
+0x7530 0x8C82
+0x7531 0x8D85
+0x7532 0x9162
+0x7533 0x918B
+0x7534 0x91AE
+0x7535 0x4FC3
+0x7536 0x56D1
+0x7537 0x71ED
+0x7538 0x77D7
+0x7539 0x8700
+0x753A 0x89F8
+0x753B 0x5BF8
+0x753C 0x5FD6
+0x753D 0x6751
+0x753E 0x90A8
+0x753F 0x53E2
+0x7540 0x585A
+0x7541 0x5BF5
+0x7542 0x60A4
+0x7543 0x6181
+0x7544 0x6460
+0x7545 0x7E3D
+0x7546 0x8070
+0x7547 0x8525
+0x7548 0x9283
+0x7549 0x64AE
+0x754A 0x50AC
+0x754B 0x5D14
+0x754C 0x6700
+0x754D 0x589C
+0x754E 0x62BD
+0x754F 0x63A8
+0x7550 0x690E
+0x7551 0x6978
+0x7552 0x6A1E
+0x7553 0x6E6B
+0x7554 0x76BA
+0x7555 0x79CB
+0x7556 0x82BB
+0x7557 0x8429
+0x7558 0x8ACF
+0x7559 0x8DA8
+0x755A 0x8FFD
+0x755B 0x9112
+0x755C 0x914B
+0x755D 0x919C
+0x755E 0x9310
+0x755F 0x9318
+0x7560 0x939A
+0x7561 0x96DB
+0x7562 0x9A36
+0x7563 0x9C0D
+0x7564 0x4E11
+0x7565 0x755C
+0x7566 0x795D
+0x7567 0x7AFA
+0x7568 0x7B51
+0x7569 0x7BC9
+0x756A 0x7E2E
+0x756B 0x84C4
+0x756C 0x8E59
+0x756D 0x8E74
+0x756E 0x8EF8
+0x756F 0x9010
+0x7570 0x6625
+0x7571 0x693F
+0x7572 0x7443
+0x7573 0x51FA
+0x7574 0x672E
+0x7575 0x9EDC
+0x7576 0x5145
+0x7577 0x5FE0
+0x7578 0x6C96
+0x7579 0x87F2
+0x757A 0x885D
+0x757B 0x8877
+0x757C 0x60B4
+0x757D 0x81B5
+0x757E 0x8403
+0x7621 0x8D05
+0x7622 0x53D6
+0x7623 0x5439
+0x7624 0x5634
+0x7625 0x5A36
+0x7626 0x5C31
+0x7627 0x708A
+0x7628 0x7FE0
+0x7629 0x805A
+0x762A 0x8106
+0x762B 0x81ED
+0x762C 0x8DA3
+0x762D 0x9189
+0x762E 0x9A5F
+0x762F 0x9DF2
+0x7630 0x5074
+0x7631 0x4EC4
+0x7632 0x53A0
+0x7633 0x60FB
+0x7634 0x6E2C
+0x7635 0x5C64
+0x7636 0x4F88
+0x7637 0x5024
+0x7638 0x55E4
+0x7639 0x5CD9
+0x763A 0x5E5F
+0x763B 0x6065
+0x763C 0x6894
+0x763D 0x6CBB
+0x763E 0x6DC4
+0x763F 0x71BE
+0x7640 0x75D4
+0x7641 0x75F4
+0x7642 0x7661
+0x7643 0x7A1A
+0x7644 0x7A49
+0x7645 0x7DC7
+0x7646 0x7DFB
+0x7647 0x7F6E
+0x7648 0x81F4
+0x7649 0x86A9
+0x764A 0x8F1C
+0x764B 0x96C9
+0x764C 0x99B3
+0x764D 0x9F52
+0x764E 0x5247
+0x764F 0x52C5
+0x7650 0x98ED
+0x7651 0x89AA
+0x7652 0x4E03
+0x7653 0x67D2
+0x7654 0x6F06
+0x7655 0x4FB5
+0x7656 0x5BE2
+0x7657 0x6795
+0x7658 0x6C88
+0x7659 0x6D78
+0x765A 0x741B
+0x765B 0x7827
+0x765C 0x91DD
+0x765D 0x937C
+0x765E 0x87C4
+0x765F 0x79E4
+0x7660 0x7A31
+0x7661 0x5FEB
+0x7662 0x4ED6
+0x7663 0x54A4
+0x7664 0x553E
+0x7665 0x58AE
+0x7666 0x59A5
+0x7667 0x60F0
+0x7668 0x6253
+0x7669 0x62D6
+0x766A 0x6736
+0x766B 0x6955
+0x766C 0x8235
+0x766D 0x9640
+0x766E 0x99B1
+0x766F 0x99DD
+0x7670 0x502C
+0x7671 0x5353
+0x7672 0x5544
+0x7673 0x577C
+0x7674 0xFA01
+0x7675 0x6258
+0x7676 0xFA02
+0x7677 0x64E2
+0x7678 0x666B
+0x7679 0x67DD
+0x767A 0x6FC1
+0x767B 0x6FEF
+0x767C 0x7422
+0x767D 0x7438
+0x767E 0x8A17
+0x7721 0x9438
+0x7722 0x5451
+0x7723 0x5606
+0x7724 0x5766
+0x7725 0x5F48
+0x7726 0x619A
+0x7727 0x6B4E
+0x7728 0x7058
+0x7729 0x70AD
+0x772A 0x7DBB
+0x772B 0x8A95
+0x772C 0x596A
+0x772D 0x812B
+0x772E 0x63A2
+0x772F 0x7708
+0x7730 0x803D
+0x7731 0x8CAA
+0x7732 0x5854
+0x7733 0x642D
+0x7734 0x69BB
+0x7735 0x5B95
+0x7736 0x5E11
+0x7737 0x6E6F
+0x7738 0xFA03
+0x7739 0x8569
+0x773A 0x514C
+0x773B 0x53F0
+0x773C 0x592A
+0x773D 0x6020
+0x773E 0x614B
+0x773F 0x6B86
+0x7740 0x6C70
+0x7741 0x6CF0
+0x7742 0x7B1E
+0x7743 0x80CE
+0x7744 0x82D4
+0x7745 0x8DC6
+0x7746 0x90B0
+0x7747 0x98B1
+0x7748 0xFA04
+0x7749 0x64C7
+0x774A 0x6FA4
+0x774B 0x6491
+0x774C 0x6504
+0x774D 0x514E
+0x774E 0x5410
+0x774F 0x571F
+0x7750 0x8A0E
+0x7751 0x615F
+0x7752 0x6876
+0x7753 0xFA05
+0x7754 0x75DB
+0x7755 0x7B52
+0x7756 0x7D71
+0x7757 0x901A
+0x7758 0x5806
+0x7759 0x69CC
+0x775A 0x817F
+0x775B 0x892A
+0x775C 0x9000
+0x775D 0x9839
+0x775E 0x5078
+0x775F 0x5957
+0x7760 0x59AC
+0x7761 0x6295
+0x7762 0x900F
+0x7763 0x9B2A
+0x7764 0x615D
+0x7765 0x7279
+0x7766 0x95D6
+0x7767 0x5761
+0x7768 0x5A46
+0x7769 0x5DF4
+0x776A 0x628A
+0x776B 0x64AD
+0x776C 0x64FA
+0x776D 0x6777
+0x776E 0x6CE2
+0x776F 0x6D3E
+0x7770 0x722C
+0x7771 0x7436
+0x7772 0x7834
+0x7773 0x7F77
+0x7774 0x82AD
+0x7775 0x8DDB
+0x7776 0x9817
+0x7777 0x5224
+0x7778 0x5742
+0x7779 0x677F
+0x777A 0x7248
+0x777B 0x74E3
+0x777C 0x8CA9
+0x777D 0x8FA6
+0x777E 0x9211
+0x7821 0x962A
+0x7822 0x516B
+0x7823 0x53ED
+0x7824 0x634C
+0x7825 0x4F69
+0x7826 0x5504
+0x7827 0x6096
+0x7828 0x6557
+0x7829 0x6C9B
+0x782A 0x6D7F
+0x782B 0x724C
+0x782C 0x72FD
+0x782D 0x7A17
+0x782E 0x8987
+0x782F 0x8C9D
+0x7830 0x5F6D
+0x7831 0x6F8E
+0x7832 0x70F9
+0x7833 0x81A8
+0x7834 0x610E
+0x7835 0x4FBF
+0x7836 0x504F
+0x7837 0x6241
+0x7838 0x7247
+0x7839 0x7BC7
+0x783A 0x7DE8
+0x783B 0x7FE9
+0x783C 0x904D
+0x783D 0x97AD
+0x783E 0x9A19
+0x783F 0x8CB6
+0x7840 0x576A
+0x7841 0x5E73
+0x7842 0x67B0
+0x7843 0x840D
+0x7844 0x8A55
+0x7845 0x5420
+0x7846 0x5B16
+0x7847 0x5E63
+0x7848 0x5EE2
+0x7849 0x5F0A
+0x784A 0x6583
+0x784B 0x80BA
+0x784C 0x853D
+0x784D 0x9589
+0x784E 0x965B
+0x784F 0x4F48
+0x7850 0x5305
+0x7851 0x530D
+0x7852 0x530F
+0x7853 0x5486
+0x7854 0x54FA
+0x7855 0x5703
+0x7856 0x5E03
+0x7857 0x6016
+0x7858 0x629B
+0x7859 0x62B1
+0x785A 0x6355
+0x785B 0xFA06
+0x785C 0x6CE1
+0x785D 0x6D66
+0x785E 0x75B1
+0x785F 0x7832
+0x7860 0x80DE
+0x7861 0x812F
+0x7862 0x82DE
+0x7863 0x8461
+0x7864 0x84B2
+0x7865 0x888D
+0x7866 0x8912
+0x7867 0x900B
+0x7868 0x92EA
+0x7869 0x98FD
+0x786A 0x9B91
+0x786B 0x5E45
+0x786C 0x66B4
+0x786D 0x66DD
+0x786E 0x7011
+0x786F 0x7206
+0x7870 0xFA07
+0x7871 0x4FF5
+0x7872 0x527D
+0x7873 0x5F6A
+0x7874 0x6153
+0x7875 0x6753
+0x7876 0x6A19
+0x7877 0x6F02
+0x7878 0x74E2
+0x7879 0x7968
+0x787A 0x8868
+0x787B 0x8C79
+0x787C 0x98C7
+0x787D 0x98C4
+0x787E 0x9A43
+0x7921 0x54C1
+0x7922 0x7A1F
+0x7923 0x6953
+0x7924 0x8AF7
+0x7925 0x8C4A
+0x7926 0x98A8
+0x7927 0x99AE
+0x7928 0x5F7C
+0x7929 0x62AB
+0x792A 0x75B2
+0x792B 0x76AE
+0x792C 0x88AB
+0x792D 0x907F
+0x792E 0x9642
+0x792F 0x5339
+0x7930 0x5F3C
+0x7931 0x5FC5
+0x7932 0x6CCC
+0x7933 0x73CC
+0x7934 0x7562
+0x7935 0x758B
+0x7936 0x7B46
+0x7937 0x82FE
+0x7938 0x999D
+0x7939 0x4E4F
+0x793A 0x903C
+0x793B 0x4E0B
+0x793C 0x4F55
+0x793D 0x53A6
+0x793E 0x590F
+0x793F 0x5EC8
+0x7940 0x6630
+0x7941 0x6CB3
+0x7942 0x7455
+0x7943 0x8377
+0x7944 0x8766
+0x7945 0x8CC0
+0x7946 0x9050
+0x7947 0x971E
+0x7948 0x9C15
+0x7949 0x58D1
+0x794A 0x5B78
+0x794B 0x8650
+0x794C 0x8B14
+0x794D 0x9DB4
+0x794E 0x5BD2
+0x794F 0x6068
+0x7950 0x608D
+0x7951 0x65F1
+0x7952 0x6C57
+0x7953 0x6F22
+0x7954 0x6FA3
+0x7955 0x701A
+0x7956 0x7F55
+0x7957 0x7FF0
+0x7958-0x7959 0x9591
+0x795A 0x9650
+0x795B 0x97D3
+0x795C 0x5272
+0x795D 0x8F44
+0x795E 0x51FD
+0x795F 0x542B
+0x7960 0x54B8
+0x7961 0x5563
+0x7962 0x558A
+0x7963 0x6ABB
+0x7964 0x6DB5
+0x7965 0x7DD8
+0x7966 0x8266
+0x7967 0x929C
+0x7968 0x9677
+0x7969 0x9E79
+0x796A 0x5408
+0x796B 0x54C8
+0x796C 0x76D2
+0x796D 0x86E4
+0x796E 0x95A4
+0x796F 0x95D4
+0x7970 0x965C
+0x7971 0x4EA2
+0x7972 0x4F09
+0x7973 0x59EE
+0x7974 0x5AE6
+0x7975 0x5DF7
+0x7976 0x6052
+0x7977 0x6297
+0x7978 0x676D
+0x7979 0x6841
+0x797A 0x6C86
+0x797B 0x6E2F
+0x797C 0x7F38
+0x797D 0x809B
+0x797E 0x822A
+0x7A21-0x7A22 0xFA08
+0x7A23 0x9805
+0x7A24 0x4EA5
+0x7A25 0x5055
+0x7A26 0x54B3
+0x7A27 0x5793
+0x7A28 0x595A
+0x7A29 0x5B69
+0x7A2A 0x5BB3
+0x7A2B 0x61C8
+0x7A2C 0x6977
+0x7A2D 0x6D77
+0x7A2E 0x7023
+0x7A2F 0x87F9
+0x7A30 0x89E3
+0x7A31 0x8A72
+0x7A32 0x8AE7
+0x7A33 0x9082
+0x7A34 0x99ED
+0x7A35 0x9AB8
+0x7A36 0x52BE
+0x7A37 0x6838
+0x7A38 0x5016
+0x7A39 0x5E78
+0x7A3A 0x674F
+0x7A3B 0x8347
+0x7A3C 0x884C
+0x7A3D 0x4EAB
+0x7A3E 0x5411
+0x7A3F 0x56AE
+0x7A40 0x73E6
+0x7A41 0x9115
+0x7A42 0x97FF
+0x7A43 0x9909
+0x7A44 0x9957
+0x7A45 0x9999
+0x7A46 0x5653
+0x7A47 0x589F
+0x7A48 0x865B
+0x7A49 0x8A31
+0x7A4A 0x61B2
+0x7A4B 0x6AF6
+0x7A4C 0x737B
+0x7A4D 0x8ED2
+0x7A4E 0x6B47
+0x7A4F 0x96AA
+0x7A50 0x9A57
+0x7A51 0x5955
+0x7A52 0x7200
+0x7A53 0x8D6B
+0x7A54 0x9769
+0x7A55 0x4FD4
+0x7A56 0x5CF4
+0x7A57 0x5F26
+0x7A58 0x61F8
+0x7A59 0x665B
+0x7A5A 0x6CEB
+0x7A5B 0x70AB
+0x7A5C 0x7384
+0x7A5D 0x73B9
+0x7A5E 0x73FE
+0x7A5F 0x7729
+0x7A60 0x774D
+0x7A61 0x7D43
+0x7A62 0x7D62
+0x7A63 0x7E23
+0x7A64 0x8237
+0x7A65 0x8852
+0x7A66 0xFA0A
+0x7A67 0x8CE2
+0x7A68 0x9249
+0x7A69 0x986F
+0x7A6A 0x5B51
+0x7A6B 0x7A74
+0x7A6C 0x8840
+0x7A6D 0x9801
+0x7A6E 0x5ACC
+0x7A6F 0x4FE0
+0x7A70 0x5354
+0x7A71 0x593E
+0x7A72 0x5CFD
+0x7A73 0x633E
+0x7A74 0x6D79
+0x7A75 0x72F9
+0x7A76 0x8105
+0x7A77 0x8107
+0x7A78 0x83A2
+0x7A79 0x92CF
+0x7A7A 0x9830
+0x7A7B 0x4EA8
+0x7A7C 0x5144
+0x7A7D 0x5211
+0x7A7E 0x578B
+0x7B21 0x5F62
+0x7B22 0x6CC2
+0x7B23 0x6ECE
+0x7B24 0x7005
+0x7B25 0x7050
+0x7B26 0x70AF
+0x7B27 0x7192
+0x7B28 0x73E9
+0x7B29 0x7469
+0x7B2A 0x834A
+0x7B2B 0x87A2
+0x7B2C 0x8861
+0x7B2D 0x9008
+0x7B2E 0x90A2
+0x7B2F 0x93A3
+0x7B30 0x99A8
+0x7B31 0x516E
+0x7B32 0x5F57
+0x7B33 0x60E0
+0x7B34 0x6167
+0x7B35 0x66B3
+0x7B36 0x8559
+0x7B37 0x8E4A
+0x7B38 0x91AF
+0x7B39 0x978B
+0x7B3A 0x4E4E
+0x7B3B 0x4E92
+0x7B3C 0x547C
+0x7B3D 0x58D5
+0x7B3E 0x58FA
+0x7B3F 0x597D
+0x7B40 0x5CB5
+0x7B41 0x5F27
+0x7B42 0x6236
+0x7B43 0x6248
+0x7B44 0x660A
+0x7B45 0x6667
+0x7B46 0x6BEB
+0x7B47 0x6D69
+0x7B48 0x6DCF
+0x7B49 0x6E56
+0x7B4A 0x6EF8
+0x7B4B 0x6F94
+0x7B4C 0x6FE0
+0x7B4D 0x6FE9
+0x7B4E 0x705D
+0x7B4F 0x72D0
+0x7B50 0x7425
+0x7B51 0x745A
+0x7B52 0x74E0
+0x7B53 0x7693
+0x7B54 0x795C
+0x7B55 0x7CCA
+0x7B56 0x7E1E
+0x7B57 0x80E1
+0x7B58 0x82A6
+0x7B59 0x846B
+0x7B5A 0x84BF
+0x7B5B 0x864E
+0x7B5C 0x865F
+0x7B5D 0x8774
+0x7B5E 0x8B77
+0x7B5F 0x8C6A
+0x7B60 0x93AC
+0x7B61 0x9800
+0x7B62 0x9865
+0x7B63 0x60D1
+0x7B64 0x6216
+0x7B65 0x9177
+0x7B66 0x5A5A
+0x7B67 0x660F
+0x7B68 0x6DF7
+0x7B69 0x6E3E
+0x7B6A 0x743F
+0x7B6B 0x9B42
+0x7B6C 0x5FFD
+0x7B6D 0x60DA
+0x7B6E 0x7B0F
+0x7B6F 0x54C4
+0x7B70 0x5F18
+0x7B71 0x6C5E
+0x7B72 0x6CD3
+0x7B73 0x6D2A
+0x7B74 0x70D8
+0x7B75 0x7D05
+0x7B76 0x8679
+0x7B77 0x8A0C
+0x7B78 0x9D3B
+0x7B79 0x5316
+0x7B7A 0x548C
+0x7B7B 0x5B05
+0x7B7C 0x6A3A
+0x7B7D 0x706B
+0x7B7E 0x7575
+0x7C21 0x798D
+0x7C22 0x79BE
+0x7C23 0x82B1
+0x7C24 0x83EF
+0x7C25 0x8A71
+0x7C26 0x8B41
+0x7C27 0x8CA8
+0x7C28 0x9774
+0x7C29 0xFA0B
+0x7C2A 0x64F4
+0x7C2B 0x652B
+0x7C2C-0x7C2D 0x78BA
+0x7C2E 0x7A6B
+0x7C2F 0x4E38
+0x7C30 0x559A
+0x7C31 0x5950
+0x7C32 0x5BA6
+0x7C33 0x5E7B
+0x7C34 0x60A3
+0x7C35 0x63DB
+0x7C36 0x6B61
+0x7C37 0x6665
+0x7C38 0x6853
+0x7C39 0x6E19
+0x7C3A 0x7165
+0x7C3B 0x74B0
+0x7C3C 0x7D08
+0x7C3D 0x9084
+0x7C3E 0x9A69
+0x7C3F 0x9C25
+0x7C40 0x6D3B
+0x7C41 0x6ED1
+0x7C42 0x733E
+0x7C43 0x8C41
+0x7C44 0x95CA
+0x7C45 0x51F0
+0x7C46 0x5E4C
+0x7C47 0x5FA8
+0x7C48 0x604D
+0x7C49 0x60F6
+0x7C4A 0x6130
+0x7C4B 0x614C
+0x7C4C-0x7C4D 0x6643
+0x7C4E 0x69A5
+0x7C4F 0x6CC1
+0x7C50 0x6E5F
+0x7C51 0x6EC9
+0x7C52 0x6F62
+0x7C53 0x714C
+0x7C54 0x749C
+0x7C55 0x7687
+0x7C56 0x7BC1
+0x7C57 0x7C27
+0x7C58 0x8352
+0x7C59 0x8757
+0x7C5A 0x9051
+0x7C5B 0x968D
+0x7C5C 0x9EC3
+0x7C5D 0x532F
+0x7C5E 0x56DE
+0x7C5F 0x5EFB
+0x7C60 0x5F8A
+0x7C61 0x6062
+0x7C62 0x6094
+0x7C63 0x61F7
+0x7C64 0x6666
+0x7C65 0x6703
+0x7C66 0x6A9C
+0x7C67 0x6DEE
+0x7C68 0x6FAE
+0x7C69 0x7070
+0x7C6A 0x736A
+0x7C6B 0x7E6A
+0x7C6C 0x81BE
+0x7C6D 0x8334
+0x7C6E 0x86D4
+0x7C6F 0x8AA8
+0x7C70 0x8CC4
+0x7C71 0x5283
+0x7C72 0x7372
+0x7C73 0x5B96
+0x7C74 0x6A6B
+0x7C75 0x9404
+0x7C76 0x54EE
+0x7C77 0x5686
+0x7C78 0x5B5D
+0x7C79 0x6548
+0x7C7A 0x6585
+0x7C7B 0x66C9
+0x7C7C 0x689F
+0x7C7D 0x6D8D
+0x7C7E 0x6DC6
+0x7D21 0x723B
+0x7D22 0x80B4
+0x7D23 0x9175
+0x7D24 0x9A4D
+0x7D25 0x4FAF
+0x7D26 0x5019
+0x7D27 0x539A
+0x7D28 0x540E
+0x7D29 0x543C
+0x7D2A 0x5589
+0x7D2B 0x55C5
+0x7D2C 0x5E3F
+0x7D2D 0x5F8C
+0x7D2E 0x673D
+0x7D2F 0x7166
+0x7D30 0x73DD
+0x7D31 0x9005
+0x7D32 0x52DB
+0x7D33 0x52F3
+0x7D34 0x5864
+0x7D35 0x58CE
+0x7D36 0x7104
+0x7D37 0x718F
+0x7D38 0x71FB
+0x7D39 0x85B0
+0x7D3A 0x8A13
+0x7D3B 0x6688
+0x7D3C 0x85A8
+0x7D3D 0x55A7
+0x7D3E 0x6684
+0x7D3F 0x714A
+0x7D40 0x8431
+0x7D41 0x5349
+0x7D42 0x5599
+0x7D43 0x6BC1
+0x7D44 0x5F59
+0x7D45 0x5FBD
+0x7D46 0x63EE
+0x7D47 0x6689
+0x7D48 0x7147
+0x7D49 0x8AF1
+0x7D4A 0x8F1D
+0x7D4B 0x9EBE
+0x7D4C 0x4F11
+0x7D4D 0x643A
+0x7D4E 0x70CB
+0x7D4F 0x7566
+0x7D50 0x8667
+0x7D51 0x6064
+0x7D52 0x8B4E
+0x7D53 0x9DF8
+0x7D54 0x5147
+0x7D55 0x51F6
+0x7D56 0x5308
+0x7D57 0x6D36
+0x7D58 0x80F8
+0x7D59 0x9ED1
+0x7D5A 0x6615
+0x7D5B 0x6B23
+0x7D5C 0x7098
+0x7D5D 0x75D5
+0x7D5E 0x5403
+0x7D5F 0x5C79
+0x7D60 0x7D07
+0x7D61 0x8A16
+0x7D62 0x6B20
+0x7D63 0x6B3D
+0x7D64 0x6B46
+0x7D65 0x5438
+0x7D66 0x6070
+0x7D67 0x6D3D
+0x7D68 0x7FD5
+0x7D69 0x8208
+0x7D6A 0x50D6
+0x7D6B 0x51DE
+0x7D6C 0x559C
+0x7D6D 0x566B
+0x7D6E 0x56CD
+0x7D6F 0x59EC
+0x7D70 0x5B09
+0x7D71 0x5E0C
+0x7D72 0x6199
+0x7D73 0x6198
+0x7D74 0x6231
+0x7D75 0x665E
+0x7D76 0x66E6
+0x7D77 0x7199
+0x7D78-0x7D79 0x71B9
+0x7D7A 0x72A7
+0x7D7B 0x79A7
+0x7D7C 0x7A00
+0x7D7D 0x7FB2
+0x7D7E 0x8A70
diff --git a/etc/charsets/KSC5636.map b/etc/charsets/KSC5636.map
new file mode 100644 (file)
index 0000000..3b50db3
--- /dev/null
@@ -0,0 +1,4 @@
+# Generated from glibc-2.3.2/localedata/charmaps/KSC5636
+0x00-0x5B 0x0000
+0x5C 0x20A9
+0x5D-0x7F 0x005D
diff --git a/etc/charsets/MACINTOSH.map b/etc/charsets/MACINTOSH.map
new file mode 100644 (file)
index 0000000..adffce0
--- /dev/null
@@ -0,0 +1,112 @@
+# Generated from glibc-2.3.2/localedata/charmaps/MACINTOSH
+0x00-0x7F 0x0000
+0x80-0x81 0x00C4
+0x82 0x00C7
+0x83 0x00C9
+0x84 0x00D1
+0x85 0x00D6
+0x86 0x00DC
+0x87 0x00E1
+0x88 0x00E0
+0x89 0x00E2
+0x8A 0x00E4
+0x8B 0x00E3
+0x8C 0x00E5
+0x8D 0x00E7
+0x8E 0x00E9
+0x8F 0x00E8
+0x90-0x91 0x00EA
+0x92 0x00ED
+0x93 0x00EC
+0x94-0x95 0x00EE
+0x96 0x00F1
+0x97 0x00F3
+0x98 0x00F2
+0x99 0x00F4
+0x9A 0x00F6
+0x9B 0x00F5
+0x9C 0x00FA
+0x9D 0x00F9
+0x9E-0x9F 0x00FB
+0xA0 0x2020
+0xA1 0x00B0
+0xA2-0xA3 0x00A2
+0xA4 0x00A7
+0xA5 0x2022
+0xA6 0x00B6
+0xA7 0x00DF
+0xA8 0x00AE
+0xA9 0x00A9
+0xAA 0x2122
+0xAB 0x00B4
+0xAC 0x00A8
+0xAD 0x2260
+0xAE 0x00C6
+0xAF 0x00D8
+0xB0 0x221E
+0xB1 0x00B1
+0xB2-0xB3 0x2264
+0xB4 0x00A5
+0xB5 0x00B5
+0xB6 0x2202
+0xB7 0x2211
+0xB8 0x220F
+0xB9 0x03C0
+0xBA 0x222B
+0xBB 0x00AA
+0xBC 0x00BA
+0xBD 0x03A9
+0xBE 0x00E6
+0xBF 0x00F8
+0xC0 0x00BF
+0xC1 0x00A1
+0xC2 0x00AC
+0xC3 0x221A
+0xC4 0x0192
+0xC5 0x2248
+0xC6 0x0394
+0xC7 0x00AB
+0xC8 0x00BB
+0xC9 0x2026
+0xCA 0x00A0
+0xCB 0x00C0
+0xCC 0x00C3
+0xCD 0x00D5
+0xCE-0xCF 0x0152
+0xD0-0xD1 0x2013
+0xD2-0xD3 0x201C
+0xD4-0xD5 0x2018
+0xD6 0x00F7
+0xD7 0x25CA
+0xD8 0x00FF
+0xD9 0x0178
+0xDA 0x2044
+0xDB 0x20AC
+0xDC-0xDD 0x2039
+0xDE-0xDF 0xFB01
+0xE0 0x2021
+0xE1 0x00B7
+0xE2 0x201A
+0xE3 0x201E
+0xE4 0x2030
+0xE5 0x00C2
+0xE6 0x00CA
+0xE7 0x00C1
+0xE8 0x00CB
+0xE9 0x00C8
+0xEA-0xEC 0x00CD
+0xED 0x00CC
+0xEE-0xEF 0x00D3
+0xF0 0xE01E
+0xF1 0x00D2
+0xF2-0xF3 0x00DA
+0xF4 0x00D9
+0xF5 0x0131
+0xF6 0x02C6
+0xF7 0x02DC
+0xF8 0x00AF
+0xF9-0xFB 0x02D8
+0xFC 0x00B8
+0xFD 0x02DD
+0xFE 0x02DB
+0xFF 0x02C7
diff --git a/etc/charsets/MIK.map b/etc/charsets/MIK.map
new file mode 100644 (file)
index 0000000..3ebd5b1
--- /dev/null
@@ -0,0 +1,63 @@
+# Generated from http://czyborra.com/charsets/bulgarian-mik.txt.gz
+0x20-0x7E 0x0020
+0x80-0xBF 0x0410
+0xC0 0x2514
+0xC1 0x2534
+0xC2 0x252C
+0xC3 0x251C
+0xC4 0x2500
+0xC5 0x253C
+0xC6 0x2563
+0xC7 0x2551
+0xC8 0x255A
+0xC9 0x2554
+0xCA 0x2569
+0xCB 0x2566
+0xCC 0x2560
+0xCD 0x2550
+0xCE 0x256C
+0xCF 0x2510
+0xD0-0xD2 0x2591
+0xD3 0x2502
+0xD4 0x2524
+0xD5 0x2116
+0xD6 0x00A7
+0xD7 0x2557
+0xD8 0x255D
+0xD9 0x2518
+0xDA 0x250C
+0xDB 0x2588
+0xDC 0x2584
+0xDD 0x258C
+0xDE 0x2590
+0xDF 0x2580
+0xE0-0xE1 0x03B1
+0xE2 0x0393
+0xE3 0x03C0
+0xE4 0x03A3
+0xE5 0x03C3
+0xE6 0x03BC
+0xE7 0x03C4
+0xE8 0x03A6
+0xE9 0x0398
+0xEA 0x03A9
+0xEB 0x03B4
+0xEC 0x221E
+0xED 0x2205
+0xEE 0x2208
+0xEF 0x2229
+0xF0 0x2261
+0xF1 0x00B1
+0xF2 0x2265
+0xF3 0x2264
+0xF4-0xF5 0x2320
+0xF6 0x00F7
+0xF7 0x2248
+0xF8 0x00B0
+0xF9 0x2219
+0xFA 0x00B7
+0xFB 0x221A
+0xFC 0x207F
+0xFD 0x00B2
+0xFE 0x25A0
+0xFF 0x00A0
diff --git a/etc/charsets/MULE-ethiopic.map b/etc/charsets/MULE-ethiopic.map
new file mode 100644 (file)
index 0000000..cd8f73b
--- /dev/null
@@ -0,0 +1,345 @@
+0x2121 0x1200
+0x2122 0x1201
+0x2123 0x1202
+0x2124 0x1203
+0x2125 0x1204
+0x2126 0x1205
+0x2127 0x1206
+0x2129 0x1208
+0x212A 0x1209
+0x212B 0x120A
+0x212C 0x120B
+0x212D 0x120C
+0x212E 0x120D
+0x212F 0x120E
+0x2130 0x120F
+0x2131 0x1210
+0x2132 0x1211
+0x2133 0x1212
+0x2134 0x1213
+0x2135 0x1214
+0x2136 0x1215
+0x2137 0x1216
+0x2138 0x1217
+0x2139 0x1218
+0x213A 0x1219
+0x213B 0x121A
+0x213C 0x121B
+0x213D 0x121C
+0x213E 0x121D
+0x213F 0x121E
+0x2140 0x121F
+0x2141 0x1220
+0x2142 0x1221
+0x2143 0x1222
+0x2144 0x1223
+0x2145 0x1224
+0x2146 0x1225
+0x2147 0x1226
+0x2148 0x1227
+0x2149 0x1228
+0x214A 0x1229
+0x214B 0x122A
+0x214C 0x122B
+0x214D 0x122C
+0x214E 0x122D
+0x214F 0x122E
+0x2150 0x122F
+0x2151 0x1230
+0x2152 0x1231
+0x2153 0x1232
+0x2154 0x1233
+0x2155 0x1234
+0x2156 0x1235
+0x2157 0x1236
+0x2158 0x1237
+0x2159 0x1238
+0x215A 0x1239
+0x215B 0x123A
+0x215C 0x123B
+0x215D 0x123C
+0x215E 0x123D
+0x215F 0x123E
+0x2160 0x123F
+0x2161 0x1240
+0x2162 0x1241
+0x2163 0x1242
+0x2164 0x1243
+0x2165 0x1244
+0x2166 0x1245
+0x2167 0x1246
+0x2169 0x1248
+0x216B 0x124A
+0x216C 0x124B
+0x216D 0x124C
+0x216E 0x124D
+0x2171 0x1250
+0x2172 0x1251
+0x2173 0x1252
+0x2174 0x1253
+0x2175 0x1254
+0x2176 0x1255
+0x2177 0x1256
+0x2179 0x1258
+0x217B 0x125A
+0x217C 0x125B
+0x217D 0x125C
+0x217E 0x125D
+0x2223 0x1260
+0x2224 0x1261
+0x2225 0x1262
+0x2226 0x1263
+0x2227 0x1264
+0x2228 0x1265
+0x2229 0x1266
+0x222A 0x1267
+0x222B 0x1268
+0x222C 0x1269
+0x222D 0x126A
+0x222E 0x126B
+0x222F 0x126C
+0x2230 0x126D
+0x2231 0x126E
+0x2232 0x126F
+0x2233 0x1270
+0x2234 0x1271
+0x2235 0x1272
+0x2236 0x1273
+0x2237 0x1274
+0x2238 0x1275
+0x2239 0x1276
+0x223A 0x1277
+0x223B 0x1278
+0x223C 0x1279
+0x223D 0x127A
+0x223E 0x127B
+0x223F 0x127C
+0x2240 0x127D
+0x2241 0x127E
+0x2242 0x127F
+0x2243 0x1280
+0x2244 0x1281
+0x2245 0x1282
+0x2246 0x1283
+0x2247 0x1284
+0x2248 0x1285
+0x2249 0x1286
+0x224B 0x1288
+0x224D 0x128A
+0x224E 0x128B
+0x224F 0x128C
+0x2250 0x128D
+0x2253 0x1290
+0x2254 0x1291
+0x2255 0x1292
+0x2256 0x1293
+0x2257 0x1294
+0x2258 0x1295
+0x2259 0x1296
+0x225A 0x1297
+0x225B 0x1298
+0x225C 0x1299
+0x225D 0x129A
+0x225E 0x129B
+0x225F 0x129C
+0x2260 0x129D
+0x2261 0x129E
+0x2262 0x129F
+0x2263 0x12A0
+0x2264 0x12A1
+0x2265 0x12A2
+0x2266 0x12A3
+0x2267 0x12A4
+0x2268 0x12A5
+0x2269 0x12A6
+0x226A 0x12A7
+0x226B 0x12A8
+0x226C 0x12A9
+0x226D 0x12AA
+0x226E 0x12AB
+0x226F 0x12AC
+0x2270 0x12AD
+0x2271 0x12AE
+0x2273 0x12B0
+0x2275 0x12B2
+0x2276 0x12B3
+0x2277 0x12B4
+0x2278 0x12B5
+0x227B 0x12B8
+0x227C 0x12B9
+0x227D 0x12BA
+0x227E 0x12BB
+0x2321 0x12BC
+0x2322 0x12BD
+0x2323 0x12BE
+0x2325 0x12C0
+0x2327 0x12C2
+0x2328 0x12C3
+0x2329 0x12C4
+0x232A 0x12C5
+0x232D 0x12C8
+0x232E 0x12C9
+0x232F 0x12CA
+0x2330 0x12CB
+0x2331 0x12CC
+0x2332 0x12CD
+0x2333 0x12CE
+0x2335 0x12D0
+0x2336 0x12D1
+0x2337 0x12D2
+0x2338 0x12D3
+0x2339 0x12D4
+0x233A 0x12D5
+0x233B 0x12D6
+0x233D 0x12D8
+0x233E 0x12D9
+0x233F 0x12DA
+0x2340 0x12DB
+0x2341 0x12DC
+0x2342 0x12DD
+0x2343 0x12DE
+0x2344 0x12DF
+0x2345 0x12E0
+0x2346 0x12E1
+0x2347 0x12E2
+0x2348 0x12E3
+0x2349 0x12E4
+0x234A 0x12E5
+0x234B 0x12E6
+0x234C 0x12E7
+0x234D 0x12E8
+0x234E 0x12E9
+0x234F 0x12EA
+0x2350 0x12EB
+0x2351 0x12EC
+0x2352 0x12ED
+0x2353 0x12EE
+0x2355 0x12F0
+0x2356 0x12F1
+0x2357 0x12F2
+0x2358 0x12F3
+0x2359 0x12F4
+0x235A 0x12F5
+0x235B 0x12F6
+0x235C 0x12F7
+0x235D 0x12F8
+0x235E 0x12F9
+0x235F 0x12FA
+0x2360 0x12FB
+0x2361 0x12FC
+0x2362 0x12FD
+0x2363 0x12FE
+0x2364 0x12FF
+0x2365 0x1300
+0x2366 0x1301
+0x2367 0x1302
+0x2368 0x1303
+0x2369 0x1304
+0x236A 0x1305
+0x236B 0x1306
+0x236C 0x1307
+0x236D 0x1308
+0x236E 0x1309
+0x236F 0x130A
+0x2370 0x130B
+0x2371 0x130C
+0x2372 0x130D
+0x2373 0x130E
+0x2375 0x1310
+0x2377 0x1312
+0x2378 0x1313
+0x2379 0x1314
+0x237A 0x1315
+0x237D 0x1318
+0x237E 0x1319
+0x2421 0x131A
+0x2422 0x131B
+0x2423 0x131C
+0x2424 0x131D
+0x2425 0x131E
+0x2427 0x1320
+0x2428 0x1321
+0x2429 0x1322
+0x242A 0x1323
+0x242B 0x1324
+0x242C 0x1325
+0x242D 0x1326
+0x242E 0x1327
+0x242F 0x1328
+0x2430 0x1329
+0x2431 0x132A
+0x2432 0x132B
+0x2433 0x132C
+0x2434 0x132D
+0x2435 0x132E
+0x2436 0x132F
+0x2437 0x1330
+0x2438 0x1331
+0x2439 0x1332
+0x243A 0x1333
+0x243B 0x1334
+0x243C 0x1335
+0x243D 0x1336
+0x243E 0x1337
+0x243F 0x1338
+0x2440 0x1339
+0x2441 0x133A
+0x2442 0x133B
+0x2443 0x133C
+0x2444 0x133D
+0x2445 0x133E
+0x2446 0x133F
+0x2447 0x1340
+0x2448 0x1341
+0x2449 0x1342
+0x244A 0x1343
+0x244B 0x1344
+0x244C 0x1345
+0x244D 0x1346
+0x244F 0x1348
+0x2450 0x1349
+0x2451 0x134A
+0x2452 0x134B
+0x2453 0x134C
+0x2454 0x134D
+0x2455 0x134E
+0x2456 0x134F
+0x2457 0x1350
+0x2458 0x1351
+0x2459 0x1352
+0x245A 0x1353
+0x245B 0x1354
+0x245C 0x1355
+0x245D 0x1356
+0x245E 0x1357
+0x245F 0x1358
+0x2460 0x1359
+0x2461 0x135A
+0x2468 0x1361
+0x2469 0x1362
+0x246A 0x1363
+0x246B 0x1364
+0x246C 0x1365
+0x246D 0x1366
+0x246E 0x1367
+0x246F 0x1368
+0x2470 0x1369
+0x2471 0x136A
+0x2472 0x136B
+0x2473 0x136C
+0x2474 0x136D
+0x2475 0x136E
+0x2476 0x136F
+0x2477 0x1370
+0x2478 0x1371
+0x2479 0x1372
+0x247A 0x1373
+0x247B 0x1374
+0x247C 0x1375
+0x247D 0x1376
+0x247E 0x1377
+0x2521 0x1378
+0x2522 0x1379
+0x2523 0x137A
+0x2524 0x137B
+0x2525 0x137C
diff --git a/etc/charsets/MULE-ipa.map b/etc/charsets/MULE-ipa.map
new file mode 100644 (file)
index 0000000..09f54b5
--- /dev/null
@@ -0,0 +1,61 @@
+0x20 0x0069
+0x21 0x026A
+0x22 0x0065
+0x23 0x025B
+0x24 0x00E6
+0x25 0x0061
+0x26 0x0268
+0x27 0x0259
+0x28 0x0250
+0x29 0x026F
+0x2A 0x0264
+0x2B 0x028C
+0x2C 0x0251
+0x2D 0x0079
+0x2E 0x028F
+0x2F 0x00F8
+0x30 0x0153
+0x31 0x0276
+0x32 0x0289
+0x33 0x0275
+0x34 0x0075
+0x35 0x028A
+0x36 0x006F
+0x37 0x0254
+0x38 0x0252
+0x3A 0x025A
+0x40 0x0070
+0x41 0x0062
+0x42 0x0074
+0x43 0x0064
+0x44 0x006B
+0x45 0x0067
+0x46 0x0066
+0x47 0x0076
+0x48 0x03B8
+0x49 0x00F0
+0x4A 0x0073
+0x4B 0x007A
+0x4C 0x0283
+0x4D 0x0292
+0x4E 0x00E7
+0x4F 0x0078
+0x50 0x0281
+0x51 0x0068
+0x52 0x006D
+0x53 0x006E
+0x54 0x0272
+0x55 0x014B
+0x56 0x0072
+0x57 0x0280
+0x58 0x0279
+0x59 0x006A
+0x5A 0x006C
+0x5B 0x028E
+0x5C 0x029F
+0x5D 0x0265
+0x5E 0x0077
+0x5F 0x028D
+0x70 0x02C8
+0x71 0x02CC
+0x72 0x02D0
diff --git a/etc/charsets/MULE-is13194.map b/etc/charsets/MULE-is13194.map
new file mode 100644 (file)
index 0000000..ef1a440
--- /dev/null
@@ -0,0 +1,83 @@
+0x21 0x0901
+0x22 0x0902
+0x23 0x0903
+0x24 0x0905
+0x25 0x0906
+0x26 0x0907
+0x27 0x0908
+0x28 0x0909
+0x29 0x090A
+0x2A 0x090B
+0x2B 0x090E
+0x2C 0x090F
+0x2D 0x0910
+0x2E 0x090D
+0x2F 0x0912
+0x30 0x0913
+0x31 0x0914
+0x32 0x090D
+0x33 0x0915
+0x34 0x0916
+0x35 0x0917
+0x36 0x0918
+0x37 0x0919
+0x38 0x091A
+0x39 0x091B
+0x3A 0x091C
+0x3B 0x091D
+0x3C 0x091E
+0x3D 0x091F
+0x3E 0x0920
+0x3F 0x0921
+0x40 0x0922
+0x41 0x0923
+0x42 0x0924
+0x43 0x0925
+0x44 0x0926
+0x45 0x0927
+0x46 0x0928
+0x47 0x0929
+0x48 0x092A
+0x49 0x092B
+0x4A 0x092C
+0x4B 0x092D
+0x4C 0x092E
+0x4D 0x092F
+0x4E 0x095F
+0x4F 0x0930
+0x50 0x0931
+0x51 0x0932
+0x52 0x0933
+0x53 0x0934
+0x54 0x0935
+0x55 0x0936
+0x56 0x0937
+0x57 0x0938
+0x58 0x0939
+0x5A 0x093E
+0x5B 0x093F
+0x5C 0x0940
+0x5D 0x0941
+0x5E 0x0942
+0x5F 0x0943
+0x60 0x0946
+0x61 0x0947
+0x62 0x0948
+0x63 0x0945
+0x64 0x094A
+0x65 0x094B
+0x66 0x094C
+0x67 0x0949
+0x68 0x094D
+0x69 0x093C
+0x6A 0x0964
+0x71 0x0966
+0x72 0x0967
+0x73 0x0968
+0x74 0x0969
+0x75 0x096A
+0x76 0x096B
+0x77 0x096C
+0x78 0x096D
+0x79 0x096E
+0x7A 0x096F
diff --git a/etc/charsets/MULE-lviscii.map b/etc/charsets/MULE-lviscii.map
new file mode 100644 (file)
index 0000000..de25642
--- /dev/null
@@ -0,0 +1,67 @@
+0x21 0x1EAF
+0x22 0x1EB1
+0x23 0x1EB7
+0x24 0x1EA5
+0x25 0x1EA7
+0x26 0x1EA9
+0x27 0x1EAD
+0x28 0x1EBD
+0x29 0x1EB9
+0x2A 0x1EBF
+0x2B 0x1EC1
+0x2C 0x1EC3
+0x2D 0x1EC5
+0x2E 0x1EC7
+0x2F 0x1ED1
+0x30 0x1ED3
+0x31 0x1ED5
+0x32 0x1ED7
+0x35 0x1ED9
+0x36 0x1EDD
+0x37 0x1EDF
+0x38 0x1ECB
+0x3D 0x01A1
+0x3E 0x1EDB
+0x46 0x1EB3
+0x47 0x1EB5
+0x4F 0x1EF3
+0x51 0x1EE9
+0x55 0x1EA1
+0x56 0x1EF7
+0x57 0x1EEB
+0x58 0x1EED
+0x5B 0x1EF9
+0x5C 0x1EF5
+0x5E 0x1EE1
+0x5F 0x01B0
+0x60 0x00E0
+0x61 0x00E1
+0x62 0x00E2
+0x63 0x00E3
+0x64 0x1EA3
+0x65 0x0103
+0x66 0x1EEF
+0x67 0x1EAB
+0x68 0x00E8
+0x69 0x00E9
+0x6A 0x00EA
+0x6B 0x1EBB
+0x6C 0x00EC
+0x6D 0x00ED
+0x6E 0x0129
+0x6F 0x1EC9
+0x70 0x0111
+0x71 0x1EF1
+0x72 0x00F2
+0x73 0x00F3
+0x74 0x00F4
+0x75 0x00F5
+0x76 0x1ECF
+0x77 0x1ECD
+0x78 0x1EE5
+0x79 0x00F9
+0x7A 0x00FA
+0x7B 0x0169
+0x7C 0x1EE7
+0x7D 0x00FD
+0x7E 0x1EE3
diff --git a/etc/charsets/MULE-sisheng.map b/etc/charsets/MULE-sisheng.map
new file mode 100644 (file)
index 0000000..9f0adb1
--- /dev/null
@@ -0,0 +1,71 @@
+0x21 0x0101
+0x22 0x00E1
+0x23 0x01CE
+0x24 0x00E0
+0x25 0x0113
+0x26 0x00E9
+0x27 0x011B
+0x28 0x00E8
+0x29 0x012B
+0x2A 0x00ED
+0x2B 0x01D0
+0x2C 0x00EC
+0x2D 0x014D
+0x2E 0x00F3
+0x2F 0x01D2
+0x30 0x00F2
+0x31 0x016B
+0x32 0x00FA
+0x33 0x01D4
+0x34 0x00F9
+0x35 0x01D6
+0x36 0x01D8
+0x37 0x01DA
+0x38 0x01DC
+0x39 0x00FC
+0x3A 0x00EA
+0x3C 0x1E3F
+0x3D 0x0144
+0x3E 0x0148
+0x3F 0x01F9
+0x41 0x02C9
+0x42 0x02CA
+0x43 0x02C7
+0x44 0x02CB
+0x45 0x3105
+0x46 0x3106
+0x47 0x3107
+0x48 0x3108
+0x49 0x3109
+0x4A 0x310A
+0x4B 0x310B
+0x4C 0x310C
+0x4D 0x310D
+0x4E 0x310E
+0x4F 0x310F
+0x50 0x3110
+0x51 0x3111
+0x52 0x3112
+0x53 0x3113
+0x54 0x3114
+0x55 0x3115
+0x56 0x3116
+0x57 0x3117
+0x58 0x3118
+0x59 0x3119
+0x5A 0x311A
+0x5B 0x311B
+0x5C 0x311C
+0x5D 0x311D
+0x5E 0x311E
+0x5F 0x311F
+0x60 0x3120
+0x61 0x3121
+0x62 0x3122
+0x63 0x3123
+0x64 0x3124
+0x65 0x3125
+0x66 0x3126
+0x67 0x3127
+0x68 0x3128
+0x69 0x3129
diff --git a/etc/charsets/MULE-tibetan.map b/etc/charsets/MULE-tibetan.map
new file mode 100644 (file)
index 0000000..9729dd9
--- /dev/null
@@ -0,0 +1,193 @@
+0x2130 0x0F00
+0x2131 0x0F01
+0x2132 0x0F02
+0x2133 0x0F03
+0x2134 0x0F04
+0x2135 0x0F05
+0x2136 0x0F06
+0x2137 0x0F07
+0x2138 0x0F08
+0x2139 0x0F09
+0x213A 0x0F0A
+0x213B 0x0F0B
+0x213C 0x0F0C
+0x213D 0x0F0D
+0x213E 0x0F0E
+0x213F 0x0F0F
+0x2140 0x0F10
+0x2141 0x0F11
+0x2142 0x0F12
+0x2143 0x0F13
+0x2144 0x0F14
+0x2145 0x0F15
+0x2146 0x0F16
+0x2147 0x0F17
+0x2148 0x0F18
+0x2149 0x0F19
+0x214A 0x0F1A
+0x214B 0x0F1B
+0x214C 0x0F1C
+0x214D 0x0F1D
+0x214E 0x0F1E
+0x214F 0x0F1F
+0x2150 0x0F20
+0x2151 0x0F21
+0x2152 0x0F22
+0x2153 0x0F23
+0x2154 0x0F24
+0x2155 0x0F25
+0x2156 0x0F26
+0x2157 0x0F27
+0x2158 0x0F28
+0x2159 0x0F29
+0x215A 0x0F2A
+0x215B 0x0F2B
+0x215C 0x0F2C
+0x215D 0x0F2D
+0x215E 0x0F2E
+0x215F 0x0F2F
+0x2160 0x0F30
+0x2161 0x0F31
+0x2162 0x0F32
+0x2163 0x0F33
+0x2164 0x0F34
+0x2165 0x0F35
+0x2166 0x0F36
+0x2167 0x0F37
+0x2168 0x0F38
+0x2169 0x0F39
+0x216A 0x0F3A
+0x216B 0x0F3B
+0x216C 0x0F3C
+0x216D 0x0F3D
+0x216E 0x0F3E
+0x216F 0x0F3F
+0x2221 0x0F40
+0x2222 0x0F41
+0x2223 0x0F42
+0x2224 0x0F43
+0x2225 0x0F44
+0x2226 0x0F45
+0x2227 0x0F46
+0x2228 0x0F47
+0x222A 0x0F49
+0x222B 0x0F4A
+0x222C 0x0F4B
+0x222D 0x0F4C
+0x222E 0x0F4D
+0x222F 0x0F4E
+0x2230 0x0F4F
+0x2231 0x0F50
+0x2232 0x0F51
+0x2233 0x0F52
+0x2234 0x0F53
+0x2235 0x0F54
+0x2236 0x0F55
+0x2237 0x0F56
+0x2238 0x0F57
+0x2239 0x0F58
+0x223A 0x0F59
+0x223B 0x0F5A
+0x223C 0x0F5B
+0x223D 0x0F5C
+0x223E 0x0F5D
+0x223F 0x0F5E
+0x2240 0x0F5F
+0x2241 0x0F60
+0x2242 0x0F61
+0x2243 0x0F62
+0x2244 0x0F63
+0x2245 0x0F64
+0x2246 0x0F65
+0x2247 0x0F66
+0x2248 0x0F67
+0x2249 0x0F68
+0x224A 0x0F69
+0x224B 0x0F6A
+0x2252 0x0F71
+0x2253 0x0F72
+0x2254 0x0F73
+0x2255 0x0F74
+0x2256 0x0F75
+0x2257 0x0F76
+0x2258 0x0F77
+0x2259 0x0F78
+0x225A 0x0F79
+0x225B 0x0F7A
+0x225C 0x0F7B
+0x225D 0x0F7C
+0x225E 0x0F7D
+0x225F 0x0F7E
+0x2260 0x0F7F
+0x2261 0x0F80
+0x2262 0x0F81
+0x2263 0x0F82
+0x2264 0x0F83
+0x2265 0x0F84
+0x2266 0x0F85
+0x2267 0x0F86
+0x2268 0x0F87
+0x2269 0x0F88
+0x226A 0x0F89
+0x226B 0x0F8A
+0x226C 0x0F8B
+0x2321 0x0F90
+0x2322 0x0F91
+0x2323 0x0F92
+0x2324 0x0F93
+0x2325 0x0F94
+0x2326 0x0F95
+0x2327 0x0F96
+0x2328 0x0F97
+0x232A 0x0F99
+0x232B 0x0F9A
+0x232C 0x0F9B
+0x232D 0x0F9C
+0x232E 0x0F9D
+0x232F 0x0F9E
+0x2330 0x0F9F
+0x2331 0x0FA0
+0x2332 0x0FA1
+0x2333 0x0FA2
+0x2334 0x0FA3
+0x2335 0x0FA4
+0x2336 0x0FA5
+0x2337 0x0FA6
+0x2338 0x0FA7
+0x2339 0x0FA8
+0x233A 0x0FA9
+0x233B 0x0FAA
+0x233C 0x0FAB
+0x233D 0x0FAC
+0x233E 0x0FAD
+0x233F 0x0FAE
+0x2340 0x0FAF
+0x2341 0x0FB0
+0x2342 0x0FB1
+0x2343 0x0FB2
+0x2344 0x0FB3
+0x2345 0x0FB4
+0x2346 0x0FB5
+0x2347 0x0FB6
+0x2348 0x0FB7
+0x2349 0x0FB8
+0x234A 0x0FB9
+0x234B 0x0FBA
+0x234C 0x0FBB
+0x234D 0x0FBC
+0x234F 0x0FBE
+0x2350 0x0FBF
+0x2351 0x0FC0
+0x2352 0x0FC1
+0x2353 0x0FC2
+0x2354 0x0FC3
+0x2355 0x0FC4
+0x2356 0x0FC5
+0x2357 0x0FC6
+0x2358 0x0FC7
+0x2359 0x0FC8
+0x235A 0x0FC9
+0x235B 0x0FCA
+0x235C 0x0FCB
+0x235D 0x0FCC
+0x2360 0x0FCF
diff --git a/etc/charsets/MULE-uviscii.map b/etc/charsets/MULE-uviscii.map
new file mode 100644 (file)
index 0000000..3464605
--- /dev/null
@@ -0,0 +1,67 @@
+0x21 0x1EAE
+0x22 0x1EB0
+0x23 0x1EB6
+0x24 0x1EA4
+0x25 0x1EA6
+0x26 0x1EA8
+0x27 0x1EAC
+0x28 0x1EBC
+0x29 0x1EB8
+0x2A 0x1EBE
+0x2B 0x1EC0
+0x2C 0x1EC2
+0x2D 0x1EC4
+0x2E 0x1EC6
+0x2F 0x1ED0
+0x30 0x1ED2
+0x31 0x1ED4
+0x32 0x1ED6
+0x35 0x1ED8
+0x36 0x1EDC
+0x37 0x1EDE
+0x38 0x1ECA
+0x3D 0x01A0
+0x3E 0x1EDA
+0x46 0x1EB2
+0x47 0x1EB4
+0x4F 0x1EF2
+0x51 0x1EE8
+0x55 0x1EA0
+0x56 0x1EF6
+0x57 0x1EEA
+0x58 0x1EEC
+0x5B 0x1EF8
+0x5C 0x1EF4
+0x5E 0x1EE0
+0x5F 0x01AF
+0x60 0x00C0
+0x61 0x00C1
+0x62 0x00C2
+0x63 0x00C3
+0x64 0x1EA2
+0x65 0x0102
+0x66 0x1EEE
+0x67 0x1EAA
+0x68 0x00C8
+0x69 0x00C9
+0x6A 0x00CA
+0x6B 0x1EBA
+0x6C 0x00CC
+0x6D 0x00CD
+0x6E 0x0128
+0x6F 0x1EC8
+0x70 0x0110
+0x71 0x1EF0
+0x72 0x00D2
+0x73 0x00D3
+0x74 0x00D4
+0x75 0x00D5
+0x76 0x1ECE
+0x77 0x1ECC
+0x78 0x1EE4
+0x79 0x00D9
+0x7A 0x00DA
+0x7B 0x0168
+0x7C 0x1EE6
+0x7D 0x00DD
+0x7E 0x1EE2
diff --git a/etc/charsets/NEXTSTEP.map b/etc/charsets/NEXTSTEP.map
new file mode 100644 (file)
index 0000000..01ec8cc
--- /dev/null
@@ -0,0 +1,74 @@
+# Generated from glibc-2.3.2/localedata/charmaps/NEXTSTEP
+0x00-0x7F 0x0000
+0x80 0x00A0
+0x81-0x86 0x00C0
+0x87-0x96 0x00C7
+0x97-0x9C 0x00D9
+0x9D 0x00B5
+0x9E 0x00D7
+0x9F 0x00F7
+0xA0 0x00A9
+0xA1-0xA3 0x00A1
+0xA4 0x2044
+0xA5 0x00A5
+0xA6 0x0192
+0xA7 0x00A7
+0xA8 0x00A4
+0xA9 0x2019
+0xAA 0x201C
+0xAB 0x00AB
+0xAC-0xAD 0x2039
+0xAE-0xAF 0xFB01
+0xB0 0x00AE
+0xB1 0x2013
+0xB2-0xB3 0x2020
+0xB4 0x00B7
+0xB5 0x00A6
+0xB6 0x00B6
+0xB7 0x2022
+0xB8 0x201A
+0xB9 0x201E
+0xBA 0x201D
+0xBB 0x00BB
+0xBC 0x2026
+0xBD 0x2030
+0xBE 0x00AC
+0xBF 0x00BF
+0xC0 0x00B9
+0xC1 0x02CB
+0xC2 0x00B4
+0xC3 0x02C6
+0xC4 0x02DC
+0xC5 0x00AF
+0xC6-0xC7 0x02D8
+0xC8 0x00A8
+0xC9 0x00B2
+0xCA 0x02DA
+0xCB 0x00B8
+0xCC 0x00B3
+0xCD 0x02DD
+0xCE 0x02DB
+0xCF 0x02C7
+0xD0 0x2014
+0xD1 0x00B1
+0xD2-0xD4 0x00BC
+0xD5-0xDA 0x00E0
+0xDB-0xE0 0x00E7
+0xE1 0x00C6
+0xE2 0x00ED
+0xE3 0x00AA
+0xE4-0xE7 0x00EE
+0xE8 0x0141
+0xE9 0x00D8
+0xEA 0x0152
+0xEB 0x00BA
+0xEC-0xF0 0x00F2
+0xF1 0x00E6
+0xF2-0xF4 0x00F9
+0xF5 0x0131
+0xF6-0xF7 0x00FC
+0xF8 0x0142
+0xF9 0x00F8
+0xFA 0x0153
+0xFB 0x00DF
+0xFC-0xFD 0x00FE
diff --git a/etc/charsets/PTCP154.map b/etc/charsets/PTCP154.map
new file mode 100644 (file)
index 0000000..46c14bf
--- /dev/null
@@ -0,0 +1,61 @@
+# Generated from http://www.iana.org/assignments/charset-reg/PTCP154
+0x00-0x7F 0x0000
+0x80 0x0496
+0x81 0x0492
+0x82 0x04EE
+0x83 0x0493
+0x84 0x201E
+0x85 0x2026
+0x86 0x04B6
+0x87 0x04AE
+0x88 0x04B2
+0x89 0x04AF
+0x8A 0x04A0
+0x8B 0x04E2
+0x8C 0x04A2
+0x8D 0x049A
+0x8E 0x04BA
+0x8F 0x04B8
+0x90 0x0497
+0x91-0x92 0x2018
+0x93-0x94 0x201C
+0x95 0x2022
+0x96-0x97 0x2013
+0x98 0x04B3
+0x99 0x04B7
+0x9A 0x04A1
+0x9B 0x04E3
+0x9C 0x04A3
+0x9D 0x049B
+0x9E 0x04BB
+0x9F 0x04B9
+0xA0 0x00A0
+0xA1 0x040E
+0xA2 0x045E
+0xA3 0x0408
+0xA4 0x04E8
+0xA5 0x0498
+0xA6 0x04B0
+0xA7 0x00A7
+0xA8 0x0401
+0xA9 0x00A9
+0xAA 0x04D8
+0xAB-0xAC 0x00AB
+0xAD 0x04EF
+0xAE 0x00AE
+0xAF 0x049C
+0xB0 0x00B0
+0xB1 0x04B1
+0xB2 0x0406
+0xB3 0x0456
+0xB4 0x0499
+0xB5 0x04E9
+0xB6-0xB7 0x00B6
+0xB8 0x0451
+0xB9 0x2116
+0xBA 0x04D9
+0xBB 0x00BB
+0xBC 0x0458
+0xBD-0xBE 0x04AA
+0xBF 0x049D
+0xC0-0xFF 0x0410
diff --git a/etc/charsets/README b/etc/charsets/README
new file mode 100644 (file)
index 0000000..ab72713
--- /dev/null
@@ -0,0 +1,44 @@
+# README file for charset mapping files in this directory.
+# Copyright (C) 2003
+#   National Institute of Advanced Industrial Science and Technology (AIST)
+#   Registration Number H13PRO009
+# Copyright (C) 2003 Free Software Foundation, Inc.
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs 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 2, or (at your option)
+# any later version.
+
+# GNU Emacs 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 General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+
+(1) Format of mapping files
+
+Each line contains a code point and the corresponding Unicode
+character code separated by a space.  Both code points and Unicode
+character codes are in hexadecimal preceded by "0x".  Comments may be
+used, starting with "#".  Code ranges may also be used, with
+(inclusive) start and end code points separated by "-" followed by the
+unicode of the start of the range
+
+Examples:
+0xA0 0x00A0  # no-break space
+
+0x8141-0x8143 0x4E04 # map onto a Unicode range
+
+
+(2) Source of mapping files
+
+All mapping files are generated automatically from data files freely
+available on the Internet (e.g. glibc/localedata/charmaps").  See the
+file ../../admin/charsets/Makefile for the detail.
diff --git a/etc/charsets/TIS-620.map b/etc/charsets/TIS-620.map
new file mode 100644 (file)
index 0000000..15afc4d
--- /dev/null
@@ -0,0 +1,4 @@
+# Generated from glibc-2.3.2/localedata/charmaps/TIS-620
+0x00-0x7F 0x0000
+0xA1-0xDA 0x0E01
+0xDF-0xFB 0x0E3F
diff --git a/etc/charsets/VISCII.map b/etc/charsets/VISCII.map
new file mode 100644 (file)
index 0000000..4f5975c
--- /dev/null
@@ -0,0 +1,122 @@
+# Generated from glibc-2.3.2/localedata/charmaps/VISCII
+0x00-0x01 0x0000
+0x02 0x1EB2
+0x03-0x04 0x0003
+0x05 0x1EB4
+0x06 0x1EAA
+0x07-0x13 0x0007
+0x14 0x1EF6
+0x15-0x18 0x0015
+0x19 0x1EF8
+0x1A-0x1D 0x001A
+0x1E 0x1EF4
+0x1F-0x7F 0x001F
+0x80 0x1EA0
+0x81 0x1EAE
+0x82 0x1EB0
+0x83 0x1EB6
+0x84 0x1EA4
+0x85 0x1EA6
+0x86 0x1EA8
+0x87 0x1EAC
+0x88 0x1EBC
+0x89 0x1EB8
+0x8A 0x1EBE
+0x8B 0x1EC0
+0x8C 0x1EC2
+0x8D 0x1EC4
+0x8E 0x1EC6
+0x8F 0x1ED0
+0x90 0x1ED2
+0x91 0x1ED4
+0x92 0x1ED6
+0x93 0x1ED8
+0x94 0x1EE2
+0x95 0x1EDA
+0x96 0x1EDC
+0x97 0x1EDE
+0x98 0x1ECA
+0x99 0x1ECE
+0x9A 0x1ECC
+0x9B 0x1EC8
+0x9C 0x1EE6
+0x9D 0x0168
+0x9E 0x1EE4
+0x9F 0x1EF2
+0xA0 0x00D5
+0xA1 0x1EAF
+0xA2 0x1EB1
+0xA3 0x1EB7
+0xA4 0x1EA5
+0xA5 0x1EA7
+0xA6 0x1EA9
+0xA7 0x1EAD
+0xA8 0x1EBD
+0xA9 0x1EB9
+0xAA 0x1EBF
+0xAB 0x1EC1
+0xAC 0x1EC3
+0xAD 0x1EC5
+0xAE 0x1EC7
+0xAF 0x1ED1
+0xB0 0x1ED3
+0xB1 0x1ED5
+0xB2 0x1ED7
+0xB3 0x1EE0
+0xB4 0x01A0
+0xB5 0x1ED9
+0xB6 0x1EDD
+0xB7 0x1EDF
+0xB8 0x1ECB
+0xB9 0x1EF0
+0xBA 0x1EE8
+0xBB 0x1EEA
+0xBC 0x1EEC
+0xBD 0x01A1
+0xBE 0x1EDB
+0xBF 0x01AF
+0xC0-0xC3 0x00C0
+0xC4 0x1EA2
+0xC5 0x0102
+0xC6 0x1EB3
+0xC7 0x1EB5
+0xC8-0xCA 0x00C8
+0xCB 0x1EBA
+0xCC-0xCD 0x00CC
+0xCE 0x0128
+0xCF 0x1EF3
+0xD0 0x0110
+0xD1 0x1EE9
+0xD2-0xD4 0x00D2
+0xD5 0x1EA1
+0xD6 0x1EF7
+0xD7 0x1EEB
+0xD8 0x1EED
+0xD9-0xDA 0x00D9
+0xDB 0x1EF9
+0xDC 0x1EF5
+0xDD 0x00DD
+0xDE 0x1EE1
+0xDF 0x01B0
+0xE0-0xE3 0x00E0
+0xE4 0x1EA3
+0xE5 0x0103
+0xE6 0x1EEF
+0xE7 0x1EAB
+0xE8-0xEA 0x00E8
+0xEB 0x1EBB
+0xEC-0xED 0x00EC
+0xEE 0x0129
+0xEF 0x1EC9
+0xF0 0x0111
+0xF1 0x1EF1
+0xF2-0xF5 0x00F2
+0xF6 0x1ECF
+0xF7 0x1ECD
+0xF8 0x1EE5
+0xF9-0xFA 0x00F9
+0xFB 0x0169
+0xFC 0x1EE7
+0xFD 0x00FD
+0xFE 0x1EE3
+0xFF 0x1EEE
diff --git a/etc/charsets/VSCII-2.map b/etc/charsets/VSCII-2.map
new file mode 100644 (file)
index 0000000..5e984d0
--- /dev/null
@@ -0,0 +1,98 @@
+# Generated from glibc-2.3.2/localedata/charmaps/TCVN5712-1
+0x00-0x7F 0x0000
+0xA0 0x00A0
+0xA1 0x0102
+0xA2 0x00C2
+0xA3 0x00CA
+0xA4 0x00D4
+0xA5 0x01A0
+0xA6 0x01AF
+0xA7 0x0110
+0xA8 0x0103
+0xA9 0x00E2
+0xAA 0x00EA
+0xAB 0x00F4
+0xAC 0x01A1
+0xAD 0x01B0
+0xAE 0x0111
+0xAF 0x1EB0
+0xB0 0x0300
+0xB1 0x0309
+0xB2 0x0303
+0xB3 0x0301
+0xB4 0x0323
+0xB5 0x00E0
+0xB6 0x1EA3
+0xB7 0x00E3
+0xB8 0x00E1
+0xB9 0x1EA1
+0xBA 0x1EB2
+0xBB 0x1EB1
+0xBC 0x1EB3
+0xBD 0x1EB5
+0xBE 0x1EAF
+0xBF 0x1EB4
+0xC0 0x1EAE
+0xC1 0x1EA6
+0xC2 0x1EA8
+0xC3 0x1EAA
+0xC4 0x1EA4
+0xC5 0x1EC0
+0xC6 0x1EB7
+0xC7 0x1EA7
+0xC8 0x1EA9
+0xC9 0x1EAB
+0xCA 0x1EA5
+0xCB 0x1EAD
+0xCC 0x00E8
+0xCD 0x1EC2
+0xCE 0x1EBB
+0xCF 0x1EBD
+0xD0 0x00E9
+0xD1 0x1EB9
+0xD2 0x1EC1
+0xD3 0x1EC3
+0xD4 0x1EC5
+0xD5 0x1EBF
+0xD6 0x1EC7
+0xD7 0x00EC
+0xD8 0x1EC9
+0xD9 0x1EC4
+0xDA 0x1EBE
+0xDB 0x1ED2
+0xDC 0x0129
+0xDD 0x00ED
+0xDE 0x1ECB
+0xDF 0x00F2
+0xE0 0x1ED4
+0xE1 0x1ECF
+0xE2 0x00F5
+0xE3 0x00F3
+0xE4 0x1ECD
+0xE5 0x1ED3
+0xE6 0x1ED5
+0xE7 0x1ED7
+0xE8 0x1ED1
+0xE9 0x1ED9
+0xEA 0x1EDD
+0xEB 0x1EDF
+0xEC 0x1EE1
+0xED 0x1EDB
+0xEE 0x1EE3
+0xEF 0x00F9
+0xF0 0x1ED6
+0xF1 0x1EE7
+0xF2 0x0169
+0xF3 0x00FA
+0xF4 0x1EE5
+0xF5 0x1EEB
+0xF6 0x1EED
+0xF7 0x1EEF
+0xF8 0x1EE9
+0xF9 0x1EF1
+0xFA 0x1EF3
+0xFB 0x1EF7
+0xFC 0x1EF9
+0xFD 0x00FD
+0xFE 0x1EF5
+0xFF 0x1ED0
diff --git a/etc/charsets/VSCII.map b/etc/charsets/VSCII.map
new file mode 100644 (file)
index 0000000..7e9ec53
--- /dev/null
@@ -0,0 +1,145 @@
+# Generated from glibc-2.3.2/localedata/charmaps/TCVN5712-1
+0x00 0x0000
+0x01 0x00DA
+0x02 0x1EE4
+0x03 0x0003
+0x04 0x1EEA
+0x05 0x1EEC
+0x06 0x1EEE
+0x07-0x10 0x0007
+0x11 0x1EE8
+0x12 0x1EF0
+0x13 0x1EF2
+0x14 0x1EF6
+0x15 0x1EF8
+0x16 0x00DD
+0x17 0x1EF4
+0x18-0x7F 0x0018
+0x80 0x00C0
+0x81 0x1EA2
+0x82 0x00C3
+0x83 0x00C1
+0x84 0x1EA0
+0x85 0x1EB6
+0x86 0x1EAC
+0x87 0x00C8
+0x88 0x1EBA
+0x89 0x1EBC
+0x8A 0x00C9
+0x8B 0x1EB8
+0x8C 0x1EC6
+0x8D 0x00CC
+0x8E 0x1EC8
+0x8F 0x0128
+0x90 0x00CD
+0x91 0x1ECA
+0x92 0x00D2
+0x93 0x1ECE
+0x94 0x00D5
+0x95 0x00D3
+0x96 0x1ECC
+0x97 0x1ED8
+0x98 0x1EDC
+0x99 0x1EDE
+0x9A 0x1EE0
+0x9B 0x1EDA
+0x9C 0x1EE2
+0x9D 0x00D9
+0x9E 0x1EE6
+0x9F 0x0168
+0xA0 0x00A0
+0xA1 0x0102
+0xA2 0x00C2
+0xA3 0x00CA
+0xA4 0x00D4
+0xA5 0x01A0
+0xA6 0x01AF
+0xA7 0x0110
+0xA8 0x0103
+0xA9 0x00E2
+0xAA 0x00EA
+0xAB 0x00F4
+0xAC 0x01A1
+0xAD 0x01B0
+0xAE 0x0111
+0xAF 0x1EB0
+0xB0 0x0300
+0xB1 0x0309
+0xB2 0x0303
+0xB3 0x0301
+0xB4 0x0323
+0xB5 0x00E0
+0xB6 0x1EA3
+0xB7 0x00E3
+0xB8 0x00E1
+0xB9 0x1EA1
+0xBA 0x1EB2
+0xBB 0x1EB1
+0xBC 0x1EB3
+0xBD 0x1EB5
+0xBE 0x1EAF
+0xBF 0x1EB4
+0xC0 0x1EAE
+0xC1 0x1EA6
+0xC2 0x1EA8
+0xC3 0x1EAA
+0xC4 0x1EA4
+0xC5 0x1EC0
+0xC6 0x1EB7
+0xC7 0x1EA7
+0xC8 0x1EA9
+0xC9 0x1EAB
+0xCA 0x1EA5
+0xCB 0x1EAD
+0xCC 0x00E8
+0xCD 0x1EC2
+0xCE 0x1EBB
+0xCF 0x1EBD
+0xD0 0x00E9
+0xD1 0x1EB9
+0xD2 0x1EC1
+0xD3 0x1EC3
+0xD4 0x1EC5
+0xD5 0x1EBF
+0xD6 0x1EC7
+0xD7 0x00EC
+0xD8 0x1EC9
+0xD9 0x1EC4
+0xDA 0x1EBE
+0xDB 0x1ED2
+0xDC 0x0129
+0xDD 0x00ED
+0xDE 0x1ECB
+0xDF 0x00F2
+0xE0 0x1ED4
+0xE1 0x1ECF
+0xE2 0x00F5
+0xE3 0x00F3
+0xE4 0x1ECD
+0xE5 0x1ED3
+0xE6 0x1ED5
+0xE7 0x1ED7
+0xE8 0x1ED1
+0xE9 0x1ED9
+0xEA 0x1EDD
+0xEB 0x1EDF
+0xEC 0x1EE1
+0xED 0x1EDB
+0xEE 0x1EE3
+0xEF 0x00F9
+0xF0 0x1ED6
+0xF1 0x1EE7
+0xF2 0x0169
+0xF3 0x00FA
+0xF4 0x1EE5
+0xF5 0x1EEB
+0xF6 0x1EED
+0xF7 0x1EEF
+0xF8 0x1EE9
+0xF9 0x1EF1
+0xFA 0x1EF3
+0xFB 0x1EF7
+0xFC 0x1EF9
+0xFD 0x00FD
+0xFE 0x1EF5
+0xFF 0x1ED0
diff --git a/etc/charsets/stdenc.map b/etc/charsets/stdenc.map
new file mode 100644 (file)
index 0000000..c6def4c
--- /dev/null
@@ -0,0 +1,61 @@
+# Generated from http://www.unicode.org/Public/MAPPINGS/.../stdenc.txt
+0x20 0x0020
+0x20 0x00A0
+0x21-0x26 0x0021
+0x27 0x2019
+0x28-0x2D 0x0028
+0x2D 0x00AD
+0x2E-0x5F 0x002E
+0x60 0x2018
+0x61-0x7E 0x0061
+0xA1-0xA3 0x00A1
+0xA4 0x2044
+0xA4 0x2215
+0xA5 0x00A5
+0xA6 0x0192
+0xA7 0x00A7
+0xA8 0x00A4
+0xA9 0x0027
+0xAA 0x201C
+0xAB 0x00AB
+0xAC-0xAD 0x2039
+0xAE-0xAF 0xFB01
+0xB1 0x2013
+0xB2-0xB3 0x2020
+0xB4 0x00B7
+0xB4 0x2219
+0xB6 0x00B6
+0xB7 0x2022
+0xB8 0x201A
+0xB9 0x201E
+0xBA 0x201D
+0xBB 0x00BB
+0xBC 0x2026
+0xBD 0x2030
+0xBF 0x00BF
+0xC1 0x0060
+0xC2 0x00B4
+0xC3 0x02C6
+0xC4 0x02DC
+0xC5 0x00AF
+0xC5 0x02C9
+0xC6-0xC7 0x02D8
+0xC8 0x00A8
+0xCA 0x02DA
+0xCB 0x00B8
+0xCD 0x02DD
+0xCE 0x02DB
+0xCF 0x02C7
+0xD0 0x2014
+0xE1 0x00C6
+0xE3 0x00AA
+0xE8 0x0141
+0xE9 0x00D8
+0xEA 0x0152
+0xEB 0x00BA
+0xF1 0x00E6
+0xF5 0x0131
+0xF8 0x0142
+0xF9 0x00F8
+0xFA 0x0153
+0xFB 0x00DF
diff --git a/etc/charsets/symbol.map b/etc/charsets/symbol.map
new file mode 100644 (file)
index 0000000..3ea1f1d
--- /dev/null
@@ -0,0 +1,128 @@
+# Generated from http://www.unicode.org/Public/MAPPINGS/.../symbol.txt
+0x20 0x0020
+0x20 0x00A0
+0x21 0x0021
+0x22 0x2200
+0x23 0x0023
+0x24 0x2203
+0x25-0x26 0x0025
+0x27 0x220B
+0x28-0x29 0x0028
+0x2A 0x2217
+0x2B-0x2C 0x002B
+0x2D 0x2212
+0x2E-0x3F 0x002E
+0x40 0x2245
+0x41-0x42 0x0391
+0x43 0x03A7
+0x44 0x0394
+0x44 0x2206
+0x45 0x0395
+0x46 0x03A6
+0x47 0x0393
+0x48 0x0397
+0x49 0x0399
+0x4A 0x03D1
+0x4B-0x4E 0x039A
+0x4F-0x50 0x039F
+0x51 0x0398
+0x52 0x03A1
+0x53-0x55 0x03A3
+0x56 0x03C2
+0x57 0x03A9
+0x57 0x2126
+0x58 0x039E
+0x59 0x03A8
+0x5A 0x0396
+0x5B 0x005B
+0x5C 0x2234
+0x5D 0x005D
+0x5E 0x22A5
+0x5F 0x005F
+0x60 0xF8E5
+0x61-0x62 0x03B1
+0x63 0x03C7
+0x64-0x65 0x03B4
+0x66 0x03C6
+0x67 0x03B3
+0x68 0x03B7
+0x69 0x03B9
+0x6A 0x03D5
+0x6B-0x6C 0x03BA
+0x6D 0x00B5
+0x6D-0x6E 0x03BC
+0x6F-0x70 0x03BF
+0x71 0x03B8
+0x72 0x03C1
+0x73-0x75 0x03C3
+0x76 0x03D6
+0x77 0x03C9
+0x78 0x03BE
+0x79 0x03C8
+0x7A 0x03B6
+0x7B-0x7D 0x007B
+0x7E 0x223C
+0xA0 0x20AC
+0xA1 0x03D2
+0xA2 0x2032
+0xA3 0x2264
+0xA4 0x2044
+0xA4 0x2215
+0xA5 0x221E
+0xA6 0x0192
+0xA7 0x2663
+0xA8 0x2666
+0xA9 0x2665
+0xAA 0x2660
+0xAB 0x2194
+0xAC-0xAF 0x2190
+0xB0-0xB1 0x00B0
+0xB2 0x2033
+0xB3 0x2265
+0xB4 0x00D7
+0xB5 0x221D
+0xB6 0x2202
+0xB7 0x2022
+0xB8 0x00F7
+0xB9-0xBA 0x2260
+0xBB 0x2248
+0xBC 0x2026
+0xBD-0xBE 0xF8E6
+0xBF 0x21B5
+0xC0 0x2135
+0xC1 0x2111
+0xC2 0x211C
+0xC3 0x2118
+0xC4 0x2297
+0xC5 0x2295
+0xC6 0x2205
+0xC7-0xC8 0x2229
+0xC9 0x2283
+0xCA 0x2287
+0xCB 0x2284
+0xCC 0x2282
+0xCD 0x2286
+0xCE-0xCF 0x2208
+0xD0 0x2220
+0xD1 0x2207
+0xD2 0xF6DA
+0xD3 0xF6D9
+0xD4 0xF6DB
+0xD5 0x220F
+0xD6 0x221A
+0xD7 0x22C5
+0xD8 0x00AC
+0xD9-0xDA 0x2227
+0xDB 0x21D4
+0xDC-0xDF 0x21D0
+0xE0 0x25CA
+0xE1 0x2329
+0xE2-0xE4 0xF8E8
+0xE5 0x2211
+0xE6-0xEF 0xF8EB
+0xF1 0x232A
+0xF2 0x222B
+0xF3 0x2320
+0xF4 0xF8F5
+0xF5 0x2321
+0xF6-0xFE 0xF8F6
diff --git a/etc/refcards/Makefile b/etc/refcards/Makefile
deleted file mode 100644 (file)
index 8ac87d2..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-### Makefile for Emacs refcards
-
-## Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006,
-##   2007 Free Software Foundation, Inc.
-
-## This file is part of GNU Emacs.
-
-## GNU Emacs 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.
-
-## GNU Emacs 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 General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with GNU Emacs; see the file COPYING.  If not, write to the
-## Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-## Boston, MA 02110-1301, USA.
-
-
-## Top-level targets.
-
-## PDF files that are included with Emacs.
-all: refcards_pdf dired-refcards_pdf misc-refcards_pdf
-
-REFCARDS_PDF = refcard.pdf cs-refcard.pdf de-refcard.pdf fr-refcard.pdf \
-            pl-refcard.pdf pt-br-refcard.pdf ru-refcard.pdf sk-refcard.pdf
-refcards_pdf: ${REFCARDS_PDF}
-refcards_ps: ${REFCARDS_PDF:.pdf=.ps}
-
-DIRED-REFCARDS_PDF = dired-ref.pdf cs-dired-ref.pdf fr-dired-ref.pdf \
-               sk-dired-ref.pdf
-dired-refcards_pdf: ${DIRED-REFCARDS_PDF}
-dired-refcards_ps: ${DIRED-REFCARDS_PDF:.pdf=.ps}
-
-MISC-REFCARDS_PDF = calccard.pdf gnus-booklet.pdf gnus-refcard.pdf orgcard.pdf
-misc-refcards_pdf: ${MISC-REFCARDS_PDF}
-misc-refcards_ps: ${MISC-REFCARDS_PDF:.pdf=.ps}
-
-
-## The following files are not included with Emacs.
-SURVIVAL-CARDS_PDF = survival.pdf cs-survival.pdf sk-survival.pdf
-survival-cards_pdf: ${SURVIVAL-CARDS_PDF}
-survival-cards_ps: ${SURVIVAL-CARDS_PDF:.pdf=.ps}
-
-VIPER-CARDS_PDF = vipcard.pdf viperCard.pdf
-viper-cards_pdf: ${VIPER-CARDS_PDF}
-viper-cards_ps: ${VIPER-CARDS_PDF:.pdf=.ps}
-
-
-## PDF files.
-
-## The page layouts (a4/letter) are written directly in the .tex files.
-
-cs-refcard.pdf cs-dired-ref.pdf cs-survival.pdf sk-refcard.pdf \
-sk-dired-ref.pdf sk-survival.pdf: %.pdf:       %.tex
-       csplain "\pdfoutput=1\input $<"
-
-pl-refcard.pdf: %.pdf: %.tex
-       if ! kpsewhich -format=fmt mex > /dev/null; then \
-         echo "No mex format found."; false; \
-       fi
-       pdftex $<
-
-ru-refcard.pdf: %.pdf: %.tex
-       pdflatex $<
-
-gnus-logo.pdf: %.pdf: %.eps
-       ps2pdf $<
-
-gnus-refcard.pdf: %.pdf: %.tex gnus-logo.pdf 
-       pdflatex $<
-
-gnus-booklet.pdf: gnus-refcard.tex gnus-logo.pdf
-       pdflatex '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
-       mv gnus-refcard.pdf $@
-
-## Everything not explicitly listed above.
-%.pdf: %.tex
-       pdftex $<
-
-
-
-## dvi files.
-
-cs-refcard.dvi cs-dired-ref.dvi cs-survival.dvi sk-refcard.dvi \
-sk-dired-ref.dvi sk-survival.dvi: %.dvi:       %.tex
-       csplain $<
-
-pl-refcard.dvi: %.dvi: %.tex
-       if ! kpsewhich -format=fmt mex > /dev/null; then \
-         echo "No mex format found."; false; \
-       fi
-       tex $<
-
-ru-refcard.dvi gnus-refcard.dvi: %.dvi: %.tex
-       latex $<
-
-gnus-booklet.dvi: gnus-refcard.tex
-       latex '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
-       mv gnus-refcard.dvi $@
-
-## Everything not explicitly listed above.
-%.dvi: %.tex
-       tex $<
-
-
-## PostScript files.
-
-## Note that some of the tex files (refcard, de-refcard, fr-refcard,
-## pt-br-refcard) have settings for letter or a4 paper. Following are
-## the default paper sizes (letter for English, A4 for translations).
-## FIXME orgcard.ps does not fit on letter (see orgcard.tex).
-
-## A4, landscape.
-de-refcard.ps fr-refcard.ps pt-br-refcard.ps orgcard.ps: %.ps: %.dvi
-       dvips -t a4 -t landscape $< -o $@
-
-## A4, portrait.
-cs-dired-ref.ps cs-refcard.ps cs-survival.ps fr-dired-ref.ps \
-pl-refcard.ps ru-refcard.ps \
-sk-dired-ref.ps sk-refcard.ps sk-survival.ps: %.ps: %.dvi
-       dvips -t a4 $< -o $@
-
-## letter, landscape.
-calccard.ps refcard.ps: %.ps: %.dvi
-       dvips -t letter -t landscape $< -o $@
-
-## letter, portrait.
-dired-ref.ps gnus-booklet.ps gnus-refcard.ps survival.ps vipcard.ps \
-viperCard.ps: %.ps: %.dvi
-       dvips -t letter $< -o $@
-
-
-.PHONY: clean
-
-clean:
-       -rm -f *.dvi *.log
-
-### Makefile ends here
index 5d334e8ebd2e7c57d483fa9e7d247c3095f762fb..df71a7cb1feccd432c5c49112134337aef2a3201 100644 (file)
@@ -21,7 +21,7 @@
 # This DTD is based on the CALS Table Model
 # PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
 # 
-# $Id: calstbl.rnc,v 1.2 2003/08/30 06:04:02 jjc Exp $
+# $Id: calstbl.rnc,v 1.1 2007/11/23 06:57:43 hexmode Exp $
 # 
 # Permission to use, copy, modify and distribute the DocBook DTD
 # and its accompanying documentation for any purpose and without fee
index 1671b01fbcec583cbeca10bc28878b62db7ec7bf..fd735bc62dab074de7297f849ec1c4751d70c8f9 100644 (file)
@@ -10,7 +10,7 @@
 # Organization for the Advancement of Structured Information
 # Standards (OASIS).
 # 
-# $Id: dbhier.rnc,v 1.1 2003/08/30 04:19:27 jjc Exp $
+# $Id: dbhier.rnc,v 1.1 2007/11/23 06:57:44 hexmode Exp $
 # 
 # Permission to use, copy, modify and distribute the DocBook DTD
 # and its accompanying documentation for any purpose and without fee
index 2a6185f27fd932efa367147bc4ea3f3728807b8c..bb1116fc19f4c702d53c3611c07f10735d55b11d 100644 (file)
@@ -10,7 +10,7 @@
 # Organization for the Advancement of Structured Information
 # Standards (OASIS).
 # 
-# $Id: dbnotn.rnc,v 1.1 2003/08/30 04:19:27 jjc Exp $
+# $Id: dbnotn.rnc,v 1.1 2007/11/23 06:57:44 hexmode Exp $
 # 
 # Permission to use, copy, modify and distribute the DocBook DTD
 # and its accompanying documentation for any purpose and without fee
index 46236eb7b7b30407c9758fa0bb6ec79221ad8eb8..ec99516700e7748f5dc4637faa696c627a7a03b4 100644 (file)
@@ -13,7 +13,7 @@
 # Organization for the Advancement of Structured Information
 # Standards (OASIS).
 # 
-# $Id: dbpool.rnc,v 1.4 2003/08/30 07:48:31 jjc Exp $
+# $Id: dbpool.rnc,v 1.1 2007/11/23 06:57:44 hexmode Exp $
 # 
 # Permission to use, copy, modify and distribute the DocBook XML DTD
 # and its accompanying documentation for any purpose and without fee
index eaa332f86b393ead3c0fe341438ccee4ad72aa11..573e6f934780459cf56f486473419e9613fb36d7 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: xslt.rnc,v 1.2 2003/08/30 08:09:03 jjc Exp $
+# $Id: xslt.rnc,v 1.1 2007/11/23 06:57:47 hexmode Exp $
 
 # This was mostly generated from the syntax summary in the XSLT
 # Recommendation (using XSLT of course).
index 94a9ed024d3859793618152ea559a168bbcbb5e2..d60c31a97a544b53039088d14fe9114583c0efc3 100644 (file)
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
 
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-                            Preamble
+                           Preamble
 
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
 your programs, too.
 
   When we speak of free software, we are referring to freedom, not
 price.  Our General Public Licenses are designed to make sure that you
 have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
 
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
 
   For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
 
   The precise terms and conditions for copying, distribution and
 modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
 this License.
 
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement or
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
 otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time.  Such new versions will
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
 be similar in spirit to the present version, but may differ in detail to
 address new problems or concerns.
 
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
@@ -628,15 +287,15 @@ free software which everyone can redistribute and change under these terms.
 
   To do so, attach the following notices to the program.  It is safest
 to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
+convey the exclusion of warranty; and each file should have at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
     Copyright (C) <year>  <name of author>
 
-    This program is free software: you can redistribute it and/or modify
+    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 of the License, or
+    the Free Software Foundation; either version 2 of the License, or
     (at your option) any later version.
 
     This program is distributed in the hope that it will be useful,
@@ -645,30 +304,37 @@ the "copyright" line and a pointer to where the full notice is found.
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
 
 Also add information on how to contact you by electronic and paper mail.
 
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
 
-    <program>  Copyright (C) <year>  <name of author>
-    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
 
 The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
-  You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
-  The GNU General Public License does not permit incorporating your program
-into proprietary programs.  If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/leim/ChangeLog.unicode b/leim/ChangeLog.unicode
new file mode 100644 (file)
index 0000000..7622dac
--- /dev/null
@@ -0,0 +1,123 @@
+2007-08-20  James Cloos  <cloos@jhcloos.com>
+
+       * quail/arabic.el: Updated (sync with xkeyboard-config keyboard).
+
+2007-04-26  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.in (OTHERS): Add arabic.elc.
+
+2007-04-26  James Cloos  <cloos@jhcloos.com>
+
+       * quail/arabic.el: New file.
+
+2004-10-19  Kenichi Handa  <handa@m17n.org>
+
+       * MISC-DIC/pinyin.map: Fix encoding to that of the original file.
+
+2004-01-08  KAWABATA, Taichi  <kawabata@m17n.org>
+
+       * quail/indian.el (quail-indian-flatten-list): Delete it.
+       (quail-define-inscript-package): Pay attention to `nil' values of
+       char/key-table.
+       (inscript-tml-keytable): New variable.  Use it for Tamil inscript.
+
+2003-02-13  Dave Love  <fx@gnu.org>
+
+       * quail/latin-post.el ("turkish-latin-3-postfix"): Make it
+       just an alias for turkish-postfix.
+
+       * quail/latin-alt.el ("turkish-latin-3-alt-postfix"): Make it
+       just an alias for turkish-alt-postfix.
+
+       * quail/cyrillic.el (ukrainian-computer): Fix duplicate `\'.
+
+2002-11-07  Kenichi Handa  <handa@m17n.org>
+
+       * quail/thai.el: Don't require thai-util.
+       (quail-thai-update-translation): Function deleted.
+       (thai-generate-quail-map): Changed to a macro that directly calls
+       quail-define-rules.
+       ("thai-kesmanee", "thai-pattachote"): Don't use
+       UPDATE-TRANSLATION-FUNCTION.
+
+       * quail/indian.el (quail-indian-preceding-char-position): Function
+       deleted.
+       (quail-indian-update-preceding-char): Variable deleted.
+       (quail-indian-update-translation): Function deleted.
+       (quail-define-indian-trans-package): Don't call
+       quail-define-package with quail-indian-update-translation.
+       (quail-define-inscript-package): Likewise.
+
+2002-10-06  Dave Love  <fx@gnu.org>
+
+       * quail/indian.el (quail-indian-preceding-char-position) 
+       (quail-indian-update-translation, quail-define-inscript-package):
+       Use characterp, not char-valid-p.
+
+2002-07-30  Dave Love  <fx@gnu.org>
+
+       * quail/welsh.el ("welsh"): Doc fix.
+
+       * quail/cyrillic.el: Reinstate some commented-out redundancies.
+       ("russian-typewriter"): Renamed from cyrillic-typewriter.  Make
+       cyrillic-jcuken effectively an alias for it.
+       ("russian-computer"): New.
+       ("bulgarian-phonetic"): Renamed from bulgarian-pho.
+       ("bulgarian-bds"): Renamed from bulgarian-standard.
+
+2002-07-01  Dave Love  <fx@gnu.org>
+
+       * quail/indian.el: Update from head.
+
+2002-06-27  Dave Love  <fx@gnu.org>
+
+       * ja-dic/ja-dic.el: Add coding tag.
+
+2002-06-24  Dave Love  <fx@gnu.org>
+
+       * latin-post.el: Recoded to utf-8.
+       ("latin-postfix"): New method.
+
+       * latin-alt.el: Recoded to utf-8.
+       ("latin-alt-postfix"): New method.
+
+       * quail/latin-pre.el: Recoded to utf-8.
+       ("latin-1-prefix", "latin-8-prefix", "latin-9-prefix"): Add nbsp.
+       ("latin-3-prefix"): Remove bogus Latin-3 characters and ~o -> \e,Cu\e(B,
+       ~O -> \e,CU\e(B.
+       ("latin-prefix"): New method.
+
+       * quail/uni-input.el (utf-8-ccl-encode): Deleted.
+       (ucs-input-method): Modified.
+
+2002-06-10  Dave Love  <fx@gnu.org>
+
+       * quail/hanja3.el, quail/hanja.el, makefile.nt, Makefile.in: 
+       * quail/vntelex.el: Update from trunk.
+
+       * quail/cyrillic.el: Doc fixes.
+       ("cyrillic-beylorussian"): Commented-out.
+       ("cyrillic-translit-bulgarian"): Deleted.
+       ("cyrillic-ukrainian"): Fix `q', `Q', `W', `w' bindings.
+       ("ukrainian-computer", "belarusian", "bulgarian-standard"): New.
+       ("bulgarian-pho"): Add \e,A'\e(B, \e,Lp\e(B, \e,LN\e(B.
+
+2002-05-31  Kenichi Handa  <handa@etl.go.jp>
+
+       * quail/indian.el: Replace commented-out lines with a condition
+       that is always false.  The same change by Eli on 2002-04-19 in
+       the HEAD trunk.
+
+2002-05-22  Kenichi Handa  <handa@etl.go.jp>
+
+       * Makefile.in (RUN-EMACS): Add LC_ALL=C.
+
+;; Local Variables:
+;; coding: iso-2022-7bit-unix
+;; End:
+
+    Copyright (C) 2002 Free Software Foundation, Inc.
+  Copying and distribution of this file, with or without modification,
+  are permitted provided the copyright notice and this notice are preserved.
+
+;;; arch-tag: c3252583-f87e-476c-9f21-482773f7ed8a
index 8ae03d4ea771a4ce1832b59eb1a13c0c78347c59..47078e502828f17e48f17a677d7f0dcf8c453704 100644 (file)
-% Header added for Emacs
-%
-% This file is included in the free package called CCE.  It is
-% available at:
-%      http://ftp.debian.org/debian/dists/potato/main
-%              /source/utils/cce_0.36.orig.tar.gz
-%
-% As the file itself doesn't contain copyright and license notices,
-% the following statements of the file cce/Copyright covers it.
-%
-%             Copyright (C) 1999, Rui He, herui@cs.duke.edu
-%
-%
-%                  CCE(Console Chinese Environment) 0.32
-%
-% CCE 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 1, or (at your option) any later version.
-%
-% CCE 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 General Public License for more
-% details.
-%
-% You should have received a copy of the GNU General Public License along with
-% CCE; see the file COPYING.  If not, write to the Free Software Foundation,
-% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-%
-% End of header added for Emacs
-a      \e$A0"0!:Gkg`Do9_9\e(B
-ai     \e$A0.0'0$0-0#0)0,0&0+0%0(0*0/jSv0^_`Hh(fHoM`ImA\e(B
-an     \e$A020804050603ZOwv0001bVhqpF07o'^nam[{\e(B
-ang    \e$A0:090;\e(B
-ao     \e$A0B0D0A0>0=0<0@0C[j`;^Vwifqw!0?a.bZe[iaqzfAr|vK\e(B
-ba     \e$A0Q0K0I0M0V0U0N0H0E0T0P0G0L0O0S0J0RtNe1\X]CwIa10FnYvQ\e(B
-bai    \e$A0Y0W0\0Z2.0]0X_Bj~^c0[0^\e(B
-ban    \e$A0l0k0f0c0`0e0i0a0g0_0d0j0h0b0mZf[`q#nSt2q-\e(B
-bang   \e$A0o0n0t0r0q0x0s0u0yd:0p0w0v]r\e(B
-bao    \e$A1(1#0|1)1&1'1!0{1,1+1%1$FXEY0}1*1"0z]aqYf_lRp1v5u@\e(B
-bei    \e$A1;1118131/121-16141.10]m19c#17_B1:pGXCZ}Zi[}mUqXvMw9]I15\e(B
-ben    \e$A1>1<1?1=:;[NjZo<[P\e(B
-beng   \e$A1@1B1A1D1Ej41C`T0v\e(B
-bi     \e$A1H1X1J1O1R1\1U1G1K1F1Z1[1W1L1I1P1N1SX0h51V1]evswf>c91Te~e(niqTYBwB]I^5_YaybXouddt01Q_AfT1MjZn/])[}sYsk\EtEuO\j\e(B
-bian   \e$A1`1c1_1d1i1g1f1a1^1h1b1em>\PXRcjrysVm\q9q[[Mv}bmlTgB\e(B
-biao   \e$A1m1j1koZ1lftopqQh<l-q&wTl.f;l)w'\e(B
-bie    \e$A1p1o1qu?1n\e(B
-bin    \e$A1v1u1r1sw^gMik1tiD1wkwYOgcaYwFoY\e(B
-bing   \e$A2"2!1x1y1}1{1z1|1~YwZ{^p\e(B
-bo     \e$A2(2%2)2.2*1!2&240X0~2#2527212+22bDt$j~20uKmg2$2/2,2'23i^n`k"2-u@XCp>u[Yq`#\e(B
-bu     \e$A2;2?2<2=29262@272>28FR_22:n_eMu3jNj3nP\e(B
-ca     \e$A2A`jme\e(B
-cai    \e$A2E2I2K2F2D2J2C2B2L2H2G\e(B
-can    \e$A2N2M2P2R2S2Q2t2Oh2enfnwutS\e(B
-cang   \e$A2X2T2V2W2UXw\e(B
-cao    \e$A2]2Y2\2Z`P2[s)t=dn\e(B
-ce     \e$A2_2b2`2^2ab|\e(B
-cen    \e$A2Na/d9\e(B
-ceng   \e$ATx2c2d`a\e(B
-cha    \e$A2i2l2n2h2eI22f2o2g2jT{2m`jqCh>i+i6i_oo2koJb*bGcbf1\e(B
-chai   \e$A2n2q2p2rnNY-r2p{\e(B
-chan   \e$A2z2|2xlx2u2v2y2s2{2td}bcs8f?ZF2wb\ene$Yfup][fvjhobeq\e(B
-chang  \e$A3$3!3#3*3'3"2}3&3%3)3+LH3(bjf=2~fOXvk)adjFvpcQ]E\I[Kc.\e(B
-chao   \e$A3,3/3134333-303.4B32jKlLbwqi\e(B
-che    \e$A353937363:38[em:\e(B
-chen   \e$A3F3B3A3?3>3<3C3D3=3;Z_h!3@`AXw^SZHe7i4v3mW\e(B
-cheng  \e$A3I3G3L3F3P3OJ"3K3J3E3M3N3Sn*3H`a3QnuX)3R[thGksnqqNu(h_rI\e(B
-chi    \e$A3T3V3Y3_3`3b3X3U3]3[3\3a3W3^_j`M`43Zr?3csWk7_3bAuXp7q]ty[f\/\]sxYQfJs$a\mwwNq!\e(B
-chong  \e$AVX3e3d3g3f3hc?bgt>\{t)o%\e(B
-chou   \e$A3i3n3p3s3o3t3j3q3l3rc03k3mvEY1`|q,\e(B
-chu    \e$A3v4&3}3u3~4%4"4!3xPs3y3w3{4#bp3zhF4$g)wmqRr\ui[;3|hzc@X!iK\e(B
-chuai  \e$A4'`(u_`\kz^u\e(B
-chuan  \e$A4+4)4(4,4.4-b6eWt-g]k04*nK\e(B
-chuang \e$A44404243414/bk\e(B
-chui   \e$A4549464847Zoi3i"\e(B
-chun   \e$A4:4?4=4@4<4>4;pHrm];\e(B
-chuo   \e$A4B4A`(j!uVv:\e(B
-ci     \e$A4K4N4J2n4L4G4H4E4M4IWH4D4Flt4C_ZpKtY\k\e(B
-cong   \e$A4S4R4O4T4P4Qg}dHhH\Jfuh.\e(B
-cou    \e$A4Ui(j#km\e(B
-cu     \e$A4Y4V4X4WWdb'umu>a^ic]}u!\e(B
-cuan   \e$AT\4\4[4Z_%oiY`l`\e(B
-cui    \e$A4`4b4_4]4^]M4d4ac2h-v?4ck%iA_}\e(B
-cun    \e$A4f4e4gbbqe\e(B
-cuo    \e$A4m4k4j4l4i4hucosaOkbpnp{u:XHo1\e(B
-da     \e$A4s4r4o4p4n4q`*m3^GqWw2sNw0brf'_Upc\e(B
-dai    \e$A4z4x4}4w4|4t4{4~4u4ywl5!gia7eJ4v_>ffg*\$_0\e(B
-dan    \e$A5+5%5#5/5-5)505(5.5$5"5,mq`"e#5'iislpwjfpcqu5*]L5&YY\e(B
-dang   \e$A5153545552qInue4[J]PZTm8\e(B
-dao    \e$A5=5@5<595:565?5A58575;_65>ba`|k.tn\e(B
-de     \e$A5D5C5Bo=\e(B
-deng   \e$A5H5G5F5K5J5I5E`bmcj-okt#aX\e(B
-di     \e$A5X5ZLa5W5M5[5\5P5V5]5N5O5Y5L5Q5^5S`VZ.ZP5R[!m{5U5TmFf7i&]6tF[fh\jkw>X5g0oamZYa\e(B
-dia    \e$A`G\e(B
-dian   \e$A5c5g5j5d5_5i5m5f5n5a5l5k5`5bq2a[uZ5hght!Zg[c5endq0X<\e(B
-diao   \e$A5w5t5u5q5s5v5r5puu5oo"nvvt\e(B
-die    \e$A5y5x5~5|5z5}5{`)X}uZk:qsu^\&p,^i[lvx\e(B
-ding   \e$A6(6)6%6!6"6$6&6#n.nzkktzXj6'p[`$g`mVqt\e(B
-diu    \e$A6*n{\e(B
-dong   \e$A6/6+6.6,64636-60_K6261k1mOp4a4[ma<kKkX\e(B
-dou    \e$A6<6769666:6568q<]zr=s{6;\e(B
-du     \e$A6<6A6H6@6>6=6I6G6E6C6B6D6J`=dBsFk96F6?wrwGh|\6s<\e(B
-duan   \e$A6O6N6L6K6M6PlQi2s}\e(B
-dui    \e$A6T6S6Q6RmTm-m!of\e(B
-dun    \e$A6Y6\6V6X6W6[l@6]mocg6Z6Uu;ofmbm;\e(B
-duo    \e$A6`6a6d6c6f6iub_M6e6_6g6h6bMT6^nlqV_ag6cuh^\e(B
-e      \e$A6n6m6q6vE66l6sc56tX,6p6k_@6r6u6of96jinr&vyoIZLemo0cU[Qkq\CpJ]`]-\e(B
-ei     \e$AZ@\e(B
-en     \e$A6w^t]l\e(B
-er     \e$A6x6~6y6{6zeG6|6}p9gmnov\7!Y&\e(B
-fa     \e$A7"7(7#7&7%7'm@7$[R7)\e(B
-fan    \e$A7479787-767273757,77717:7+7*a&hs7.l\^,n270^@7/ul\e(B
-fang   \e$A7=7E7?7C7@7B7<7A7Da]7;7>t3nUvPZzhJ\e(B
-fei    \e$A7G7Q7I7O7J7H7P7F7N7K7Lkhli7Mv-g3ezl3tdrcprdGc-vnsu\@atoPi<\e(B
-fen    \e$A7V7]7W7\7_7[7U7R7X7Y7`7^7T7Zh{wwgc7SYGe/vw\e(B
-feng   \e$A7g7b7a7e7h7f7j7n7l7o7m7k7d7c7iY:m?_t[:]Wcc\e(B
-fo     \e$A7p\e(B
-fou    \e$A7qs>\e(B
-fu     \e$A7r8.7~84888:818#8;868>8=7p7y7|7{808/8!7v898'827t838%858(7w8&8)8+8?8@8,8$7}7s87\=8*fZ8-Yk7u7x8"8<7zhur]\@\^\r]3]Ja%bv^Tdfmkeutog&g(uClpmImjn7r6uFrp_;Yl[.o{fbjgp%rsvVv{\e(B
-ga     \e$A?'^N8B8AT~Y$j8nEfXfY\e(B
-gai    \e$A8D8C8E8GX$8Fj`8H[rZkj.\e(B
-gan    \e$A8P8I8R8O8J8N8K^O8SiO8M8Q_&[a\U8Lcom7dwpat{dFg$j:\e(B
-gang   \e$A8U8[8V8Z8Y8W?88\8T8Xn8m0s`\e(B
-gao    \e$A8_8f8e8c8b8`8^8aX:iB^;gI8]8dZ>i@j=[,o/\e(B
-ge     \e$A8v8o8w8h8q8g8j8t8p8n8s8l8i8m?)8k`Cw@r"RYk!kuoSf|qKXnX*\*[Y[At48umQr4\e(B
-gei    \e$A8x\e(B
-gen    \e$A8y8zX(t^_g]"\e(B
-geng   \e$A8|9"8{>18}8~9#_lbYva9!g.\e(B
-gong   \e$A9$9+929)9&9%9,919'9.9*9(9-90kE9/r<gnv!\e(B
-gou    \e$A9;9:999795949693jmst98X~a8Z8w8sQh[e\fEgCl0\e(B
-gu     \e$A9J9E9K9I9D9C9G9L9B9H9@9M9<9>9A9?9=ciioo@9Fhtp3l1p@k{n-n9n\u}w=]TrAXEZ,aDt~jvjtpsvq\e(B
-gua    \e$A9R9O9N9Q_I9SXT9Pp;hikRZ4\e(B
-guai   \e$A9V9T9U^b\e(B
-guan   \e$A9X9[9\9Y9]9_9Z9a9^9`9W]8YDBZ^hnBdJw$pY\e(B
-guang  \e$A9c9b9dan_[kWhf\e(B
-gui    \e$A9f9i9s9m9p9r9q9l9e9n9t9j9h9kp'?~9o9gjPs~f#vYXPbQe3H2X[hmjAw,\e(B
-gun    \e$A9v9wvgg5m^9uYr\e(B
-guo    \e$A9z9}9{9x9y9|`~reqxYe^b[vk=_CaFb#i$rd\e(B
-ha     \e$A9~8rn~\e(B
-hai    \e$A;9:#:":&:Y?H:%:':!`Kk\u0:$\e(B
-han    \e$A:::0:,:.:9:+:6:-:/:2:3:1:5:4:(:7:)jOe+w}q|c[:8r@lJr%]U^~Zu:*\e(B
-hang   \e$APP:=Oo:<:;clq~g,gq\e(B
-hao    \e$A:C:E:A:@:F:Dp):?j;:B:>]o:Qe08d`F`c^6e)r:r+\e(B
-he     \e$A:M:N:O:S:H:U:KOE:X:P:G:L:I:W[V:R:VZ-:TcX`@:QjBr"[@nAf|rBtg:J\e(B
-hei    \e$A:Z:Y`K\e(B
-hen    \e$A:\:^:]:[\e(B
-heng   \e$A:a:b:c:_:`^?gqhl\e(B
-hong   \e$A:l:d:i:h:e:j:g:k:fc|cH^0Z'^.YjYd]&\e(B
-hou    \e$A:s:raa:q:n:m:p:oeKtWw?\)pzssvW\e(B
-hu     \e$A:u;$:t:z;':~:v;%:};":x:|;&c1d0;#:y;!:{`q:wuzlob)p@u-lflh_|sKgzdopIiulCY|a2bow=iNl2p-pWlN\e(B
-hua    \e$A;0;*;/;(;.;-;,;)hk;+m9n|fh\e(B
-huai   \e$A;3;5;2;4;1uW\e(B
-huan   \e$A;6;;;9;7;:;<;C;=;B;@;>e>w_;Ad=[<;8gY;?oL[(]H`wd!_'b5dqeUvi\e(B
-huang  \e$A;F;J;D;N;E;M;L;P;Qh+ae;I;K;Odj;Hs(eXZrkA;Gq%dRsrv|\e(B
-hui    \e$A;a;X;c;S;T;R;];Y;Z;V;[;f;U;d;_;2;^;`;eZ6jMegwb;b\v;\\n`9;Wm#d'gu^%_\_Td+r3g@hmcDs3\e(B
-hun    \e$A;i;l;j;h;kbF;gZ;dccTgu\e(B
-huo    \e$A:M;r;n;p;q;u;o;v;s;t;mb7oAqkXenX_+^=`kols6\e(B
-ji     \e$A<88x<:;z<G<0<F<4;y<C<-<6<+<D<J<<</<M;wFf<1<$<L<H;}<.<&<*<7<#<><E<(<2<"<@<)<I<A;x<'m6<!<5<%=e_4<9<=;|<K<,fw;{<;<3<Ba'<?sEuRq$X=Z5t_v+n?p"YJj*ozi._svjwY\y;~ji]pg\r1l4ij[TY%^a\8X"wd^*_RaU\AsG_bd)X@j+elX^uUgav]jejw\e(B
-jia    \e$A<R<S<[<Y<\<W<Q<]<P<^<N<V<ZGQY.P.<Up(=D<Oglj)eHY$d$phkNsU<T]g<XoXXE[#^Xa5ahdPk8tBp}m"nrqJrLuJ\e(B
-jian   \e$A<{<d<~=(<r<a<`<u=%<l=!<f=#<h<g<|<v<b<x<t<y<i<q<}="<p<z=&<e<s<w<n<_<j<k<c<mZIe?YT=']Qe@<omzo5=$k&vdw5]s^vZY`ndUgLhEj/j'jyqPsHteuBi%jppOklu]\e(B
-jiang  \e$A=+=2G?=-=1=5=/=.=4=*=,=)=3jqgVg-=0qpmdd.tx\|t]\e(B
-jiao   \e$A=L=;>uP#=P=O=G=E=9=>=<=N=A=@=:=I=J=H=7=C=?Y.=F==uSf/=Q=K=Dp(=6=M=8v^ahdPk8YUpTa=rT=B\4\z^X`]u4\e(B
-jie    \e$A=g=b=S=a=Z=V=c=W=i=h=d=\=l=T=]=X=`=R=Y=_=e=^=k`5^Wf]mY=UZ5hn=fYJr!Z&p\=jf<tIvZr;w:`.\e(B
-jin    \e$A=x=q=p=|>!=v=t={>"=r=o=w=u=n=z=m=~=sh*qf=ygF=}`djnbK]@qF]#b[f!ZajaiH\e(B
-jing   \e$A>->)>+>3>/>9>2>*>0>4>&>5>:>;>.>6>'>#>$>1c=>8>(c~ZeYSl:>7eI>%kVkf]<>,b0kBerf:XYv&\e(B
-jiong  \e$A>=><eDlgjA\e(B
-jiu    \e$A>M>E>?>F>C>I>H>@>>>N>K>Btqp/>D>L`1>JpUcNYV>G>AhQhjw]\e(B
-ju     \e$A>V>]>S>d>Y>_>g>^>[>\>c>`>e>U>P>X=[>T>O>W>ZvD>b>fl+tr^dua>aeaiYYF>Rv4epjxqUnR\ZvBw6i'Z*\Do8>Qi0\lh[i7q@u6h"\e(B
-juan   \e$A>h>m>k>l>jvA>n>id8oToC[2azhpnC\e(B
-jue    \e$A>u>x>v=E=@>r>waH>t>q>sb1`5XJuj>pZ\[G>o`ef^iS`YgehvXcl_oc^'u{\e(B
-jun    \e$A>|>y>}?!>~>{vAs^>z?$?%?"weqd^\?#\e(B
-ka     \e$A?(?'?&_GX{kL\e(B
-kai    \e$A?*?.?-nx?+?,b}[n]\o4X\oGbi\e(B
-kan    \e$A?4?/Y)?0?3?2<w?1n+mhc[](j,\e(B
-kang   \e$A?9?5?6?8?;?:?7XxcJnV\e(B
-kao    \e$A?<??nm?>?=j{h`ej\e(B
-ke     \e$A?I?K?F?M?L?N?E?J?B:G?Cc!?H?A?D?G?@`>n'ipo}pbrrd[wAn]q=r$gfa3flg<k4o>rB\e(B
-ken    \e$A?O?R?P?Qv8qL\e(B
-keng   \e$A?S?To,\e(B
-kong   \e$A?U?V?X?WYEaGsm\e(B
-kou    \e$A?Z?[?Y?\_5^"mn\RsX\e(B
-ku     \e$A?`?^?b?c?a?]?_w<XZ\%`7g+\e(B
-kua    \e$A?d?g?e?f?hY(\e(B
-kuai   \e$A;a?l?i?jkZXa_`?kavd+[&\e(B
-kuan   \e$A?n?mwE\e(B
-kuang  \e$A?v?q?s?r?u?t?p?o_QZwZ2^EZ?[[f~j\\e(B
-kui    \e$A?w@"@#?z?}@!n%?xeS?{?|XQ?~`0qy?yX8Ygsq`-c&jRZs]^rqc4^quM\e(B
-kun    \e$A@'@%@&@$voc'wUo?u+cMg{\e(B
-kuo    \e$A@(@+@)@*hirR\e(B
-la     \e$A@-@2@1@0@.@,@/X]eej9pxmG\e(B
-lai    \e$A@4@5@3myq.t%abd5jco*aAd~\e(B
-lan    \e$A@<@6@8@C@A@@@D@9@:@?@=i-@7@Bl5a0@;q\ogn=@>dm\e(B
-lang   \e$A@K@G@J@I@H@Erk@F`%]9o6o|cO]u\e(B
-lao    \e$A@O@M@N@L@Q@PAJ_k@S@R@Ta@plu2o)hannql\e(B
-le     \e$AAK@V@U@__7cnw&Xl\e(B
-lei    \e$A@`@a@[@W@Y@]@Z@^@_@\YzZ3@X`Oi[fPgPu*qg\e(B
-leng   \e$A@dc6@c@b\(\e(B
-li     \e$A@o@mA&@{A"@n@z@k@}@q@v@x@h@wA'@rA(sRA#@~@l@u@j@fA%@tA$@i@e@gv(n>]0le@pY5mB^<Y3r[ws[*A!h@eNf2n:fj@sw/`,p?fKs;X*vbc&[^\B@y^:_?`&a{d`e"h]iv]q@|gJp]p_rCo.svtOuHu7\e(B
-lia    \e$AA)\e(B
-lian   \e$AA*A,A3A7A5A/A+A.A6A1A4A2A0A-iggvi,qMqOs9vce%l!dr]|^F\e(B
-liang  \e$AA=A?A<AAA>A:A)A9A8ABA;A@uT]9\.wKi#v&\e(B
-liao   \e$AAKAOADAFAIAEANAHAMAJACALgTAGe<`ZnIb2pS^$^M\e(B
-lie    \e$AAPARAQASAT_VtsY}d#^f[xuqw`\e(B
-lin    \e$AAVAYAZAUA\AXwkA]A_A[AWuoA^aWj%i]e`tT]~cAn,_xl"b^\e(B
-ling   \e$AAlAnAmAiAcAdAhAaAeAjAkA`Afqv`r@bAbta\_j2hyg1_JhZvl[9cvAgrH\e(B
-liu    \e$AAyAtAwB=AuAoAxB5AvAqd/ArApe^AsoVfrg8o3l<lVvLpR\e(B
-long   \e$AAzB!A}kJB#A|A{B"ggA~B$q*\WhPcq[bmC\e(B
-lou    \e$AB%B*B)B'`6B(YMB&wCrwoN]daPqop|\e(B
-lu     \e$AB7B=B<B,B6B3B/B9B5B.B+``B-B;j$B1B2B4crB8duB>s|iqpXB0B:vT_#hS[dkM^$dKp5eVh4i{iVoet5k*\e(B
-lv     \e$ABIBCBLBJBGBDBEBBBFB?B@i5BK^[BAqZcLkvBHoy\e(B
-luan   \e$ABRBQBMBNBOhovGf.BPp=Yu\e(B
-lue    \e$ABTBSo2\e(B
-lun    \e$AB[BVBWBYBXBU`pBZ\e(B
-luo    \e$ABdB^BgBeB_BcBfB\B]B`Ba^{@S^[gsBbb$o]i!Y@Yy\}q'cxdpkamQvC\e(B
-m      \e$A_<\e(B
-ma     \e$ABmBpBhBkBiBnBoD(BjBls!_ih?aofV\e(B
-mai    \e$ABrBtBsBqBuBvv2[=]$\e(B
-man    \e$ABzB}B~B|ByBxBwB{r)C!\,a#r}w4w)gOlWo\\e(B
-mang   \e$AC&C#C$C"C%C'r~Zxd]mK\e(B
-mao    \e$AC+C0C(C3C,C1C2C)C/wVC.k#h#C*m.YsC-a9jss1cwjD\bl8rzn&\e(B
-me     \e$AC4wa\e(B
-mei    \e$AC;C@C?CCC<C7C=C6wHC:CAC9C5CDCBCSqGC8].aRi9dXb-oQd<pLC>\e(B
-men    \e$ACGCECF^Qm/lKnM\e(B
-meng   \e$ACNCICMCKk|COCH[BcBCJs7^+]ymfrlr5t;t?CL\e(B
-mi     \e$AC\CWCXCTCVCUCYCPC[CR_dZWCZCSche5wgCQettMXBlrk_C]wc`W^Bb(ti\e(B
-mian   \e$ACfCbC^C_CeC`CckoCaCddOcfmmv<dE\e(B
-miao   \e$ACnChCkCmCgClCiCjgQm5g?_wmpecpEhB\e(B
-mie    \e$ACpCosz_cX?s:\e(B
-min    \e$ACqCtCuCvc}gkCsCrcI\ea:gEgdm*v<w*\e(B
-ming   \e$AC{CwC|CyCzZ$\xdiu$n(jTCx\e(B
-miu    \e$AC}gQ\e(B
-mo     \e$AD,D*D#waD)D%C~D&D/D.D+D(D'D0:YD-D$]kD"\TbID!:QZSfFowoRibq"qruvux\e(B
-mou    \e$AD3D1mxgQvJ_hY0rV\e(B
-mu     \e$AD?D8D>D;D7D=DAD9D<D:D2D6DBD@D4ceD5Xo[i\Yk$nb\e(B
-n      \e$A`E_m\e(B
-na     \e$ADGDCDXDDDIDHDE^`DFoUkGqD\e(B
-nai    \e$ADKDLDNDMDJ\5X>Y&]AhM\e(B
-nan    \e$ADQDODPi*`+`o`nknrotv\e(B
-nang   \e$ADR`lbN_-jY\e(B
-nao    \e$ADTDVDUDSh'DW_Nb.nsX+mPrM[q\e(B
-ne     \e$ADXZ+\e(B
-nei    \e$ADZDY\e(B
-nen    \e$AD[m%\e(B
-neng   \e$AD\\e(B
-ng     \e$A`E_m\e(B
-ni     \e$ADcDXDaD`DfD_DdDbDeD]D^jGDgl;m~vr[hb%buY#lrm+nj\e(B
-nian   \e$ADjDnX%U3DkDmDhDlDip$vsvSi}[~\e(B
-niang  \e$ADoDp\e(B
-niao   \e$ADqDrtAfU\`ke\e(B
-nie    \e$ADsDyDtDuuf`?DvDwDxX?Zmr(t+^A\e(B
-nin    \e$ADzm%\e(B
-ning   \e$AD~D}E!E"_LD|D{Xzqw\Qe8\e(B
-niu    \e$AE#E&E$f$E%^Vbnap\e(B
-nong   \e$AE)E*E(Y/_fE'\e(B
-nou    \e$Aqq\e(B
-nu     \e$AE-E,E+esfef@f[\e(B
-nv     \e$AE.nOm$t,\e(B
-nuan   \e$AE/\e(B
-nue    \e$AE0E1\e(B
-nuo    \e$AE5E2E3E4_v^yYPo;\e(B
-o      \e$AE6`^`8\e(B
-ou     \e$AE7E<E9E;E8Z)j1E:E=qnbf\e(B
-pa     \e$AEBE@EA0GE?E>EC]b0RhKnYsa\e(B
-pai    \e$AEIEEEFEDEGEHY=]e__\e(B
-pan    \e$AEPELENEQEOEKEJ^UugEMc]s4qaqHcz\e(B
-pang   \e$AETESEVER0r0ua]s&dhEUeL\e(B
-pao    \e$AE\EZEWE]E[EYEXaspekcbR^K\e(B
-pei    \e$AEdEcE`EeEbEfEaE^E_u,oB`N`zl7v,\e(B
-pen    \e$AEhEgdT\e(B
-peng   \e$AEsEtEvEmEuEoEnErEkEjEqEiElbq\!s2`XEp\e(B
-pi     \e$AEz7qF$F(E{F#1YF!F"F%F'E|F)EwF&q1E}E~Ey`hfG[/qTg"X'\1[\r7rguyZiZpExXr[}_(_AbOZ|qb\EhAn<dDnkj6n"\e(B
-pian   \e$A1cF,F*F+F-tf1bjzZRudfigBk]\e(B
-piao   \e$AF1F/F.F0fNn)ft`QXbs*gN]3ih\e(B
-pie    \e$AF2F3k-X/\V\e(B
-pin    \e$AF7F6F4F5F8^Uf0fIi/r-jr\e(B
-ping   \e$AF=F@F?F>F<F9FAF;F:hRf3Y7vR\e(B
-po     \e$AFFFHFDFEFB24FCFGFIgjXOj7n^sMnGZicx[6p+\e(B
-pou    \e$AFJYv^e\e(B
-pu     \e$AFUFLFKFSFWFVFOFQFM8,FYFPd_Yih1`[FTFRk+ohukode'FN\e(B
-qi     \e$AFpFdFZFxF_FfF^FsFwF{FeFkFlFzFtFoF[FgFqF]F`F|FugwFrFmFaFyFjF\FclwFiFngyuhFvm,d?c`X=g2F}`Ra*]BY9h=\N\yjHiJq}\;a(l%hgtl]=rSr`tkw"wh^-FbXAfk]]Fh[_mS\e(B
-qia    \e$AG!G"F~Y$qJ]VwD\e(B
-qian   \e$AG0G.G'G)G7G#G3G1G(G+G2G8OKG6G,G4G&r/G/e9Y;G5G-^gc%\7gWm)]!\MZdY]e:e=kIG%G*jynTa)siw\G$c;h}\e(B
-qiang  \e$AG9G=G@G;G:oOuDG<G>c^q_iIlAr^fMo:j(tGoj\e(B
-qiao   \e$AGEGDGGGIGHGFGCGLGNGOGMGBGKuNc>iTGJGAZ=c8Z[\qa=gXmMw3Xd\e(B
-qie    \e$AGPGRGTGSGQtrf*Fvc+Y$oFj|['sfc;\e(B
-qin    \e$AGWGUGYGVGXGZG[G\G^q{G_G]`_^liUo7\K`:r{t@b[dZ_D\e(B
-qing   \e$AGiGkG`GeGaGgGlGcGdGfGjGbs@r_m`v%\\`uiQwtvkGhsdtl\e(B
-qiong  \e$AGnGmq7\dZvrKsLu<vF\e(B
-qiu    \e$AGsGrGoGqGtGpGurGtCY4r0vzeOeYjdGvi1aldPrx[Ow|t\\e(B
-qu     \e$AH%H!GxGzH$G|GwG}G~G{H"jovDa+PgrPaiGyq3tpcVlnmap6Z0s=[>^!^>H#\Dwqh3k,kT\e(B
-quan   \e$AH+H(H&H0H*H/H-H.Z9H'rig9\un}H,w\izc*n0H)s\\e(B
-que    \e$AH4H7H1H8H3H6H5cWcZH2m(\e(B
-qun    \e$AH:H9eRwe\e(B
-ran    \e$AH;H>H<H=wW\[rE\e(B
-rang   \e$AHCHBHAH@H?p&l|\e(B
-rao    \e$AHEHFHDf,hc\i\e(B
-re     \e$AHHHG_v\e(B
-ren    \e$AHKHNHOHLHJHMHPHRb?HIXpo~]X\sHQimqE\e(B
-reng   \e$AHTHS\e(B
-ri     \e$AHU\e(B
-rong   \e$AH]HYHZHXH\H^H[iEHVaIHWH_k@rnau\e(B
-rou    \e$AHbHaH`uew7t[\e(B
-ru     \e$AHgHkHhHeHiHjHl`iHce&HdHfgHq`r,^8]jd2dao(\e(B
-ruan   \e$AHmHnkC\e(B
-rui    \e$AHpHq\Gn#^(hDHor8\e(B
-run    \e$AHsHr\e(B
-ruo    \e$AHtHuY<sh\e(B
-sa     \e$AHwHvHxX&Xml*j}k[\e(B
-sai    \e$AH|H{Hy`gHz\e(B
-san    \e$AH}I"I!H~k'bLtVv1\e(B
-sang   \e$AI%I#I$^zm_r*\e(B
-sao    \e$AI(I'I)IRk}I&gXgRv~\#p~\e(B
-se     \e$AI+H{I,I*XDo$p#\e(B
-sen    \e$AI-\e(B
-seng   \e$AI.\e(B
-sha    \e$AI1I3I6I5OCI2I4I/I7I0v.`Dj}l&vh_~pptDo!\e(B
-shai   \e$AI9I8u'\e(B
-shan   \e$AI=IFIAI@I>I?IHIBI:I<IC2tIEU$Z(uGIGf)IDdzIIfS5'k~fs\O[oX_nL[7t.I;wTp^s5w-\e(B
-shang  \e$AIOILIKIPIMidIQINu|lXIJg4[p\e(B
-shao   \e$AIYI\IUITIWIZI[IRISIX\fGJd{[?h<IVrYsbt9\e(B
-she    \e$AIgIhIaIfIdIcI`I_I]IbIeY\I^wjn4XGd\l(b&\e(B
-shei   \e$AK-\e(B
-shen   \e$AJ2ImInIq2NIuIjIsIrIlIwIxIpIvIkIt]7rW]XIodIorZ7IitVZEi)kO_S\e(B
-sheng  \e$AIzIyJ!J$I}J%J"J#I|I~I{sOdEmraSjI\e(B
-shi    \e$AJGJ1J.JBJ5J9J@JPJ6J<J?J&J+J=J'J7JSJ>J3JRJFJTJ/JMJ)JJJOJ;JNJ,J0JEJ*JDJ(JHJ4PjJ:JL3WVEJKJQJAixJ8JIJCJ-_1]i[u]*lBZVveu9j[nfs'sBs_vuu'\e(B
-shou   \e$AJVJ\JUJWJZJXJ[J]JYJ^awg7t<\e(B
-shu    \e$AJiJ}JuJtJdJwJvJlJxJpJbJfJeJsJhJgJcJmJaJnJzJqK!J{JkJ~J`SaJjJrJ_JoY?J|Jy[Sdxf-g#oxk(l/qb]DX-cp^skr\e(B
-shua   \e$AK"K#`'\e(B
-shuai  \e$ABJK%K$K&K's0\e(B
-shuan  \e$AdLK(K)cE\e(B
-shuang \e$AK+K,K*fWcq\e(B
-shui   \e$AK.K-K0K/\e(B
-shun   \e$AK3K4K2K1\e(B
-shuo   \e$AK5K7K6K8neey]tiC^w\e(B
-si     \e$AKDK@K<K9K>KFK=K?KBK:KAXKK;KEKGKClkKHfap8Y9cact[LYnrO_Pf&dygAqjsSoH\e(B
-song   \e$AKMKIKNKPKJKLKOc$KKbldA]?aBaTZ!q5\e(B
-sou    \e$AKQKRKTKSbH^4`U[E`2dQl,oKn$rt\e(B
-su     \e$AKUK_KYKXKWK`K^K\vUK]KVKZsyYm`<ZUK[c:d3]xv"\e(B
-suan   \e$AKcKaKbb!\e(B
-sui    \e$AKjKfKdKiKlKnKmKhedKkKeKgn!]4l]ZGmue!\e(B
-sun    \e$AKoKpKq]%axb8i>v@\e(B
-suo    \e$AKyKwKuKxKvKs`BKtj}f6m|_o`JKrtHhx\e(B
-ta     \e$AK{K}K|L$K~Kzi=`*L#m3e]L"w#cKnhuAdpdbL!\e(B
-tai    \e$AL+L(L,L)L'L%L-L&_>vX["^7L*fflFuLkDnQ\e(B
-tan    \e$AL8L=5/L9L>L3L/L0L2L:L7L6L1L?q{L5l~L.L;L<e#L4j<ob[0oDnc\e(B
-tang   \e$ALCLFL@LILGLKLHLLLJLELALDLBdgs+h)iLs%o&u1o[qmb<YN`{tJ\e(B
-tao    \e$ALVLWLSLNLMLULRLTLOLQlb_{h:wRd,LPX;\e(B
-te     \e$ALXl}_/m+o+\e(B
-tei    \e$A_/\e(B
-teng   \e$ALZL[LYL\kx\e(B
-ti     \e$ALeLaLbLfL_L]LdLiLcL^LjLhLkLgc)u.g>pCL`\hYCg0eQqS\e(B
-tian   \e$ALlLoLnLpLmLsLrLqndcYn1cCie^]\e(B
-tiao   \e$ALu5wLxLtLvLwvfY,\fq;wXtPsTv6lvrh\e(B
-tie    \e$ALzLyL{wQ]F\e(B
-ting   \e$AL}M#M%L|M&M$fCM"M'n.v*M!nzrQ\phh]cL~\e(B
-tong   \e$AM,M(M3M4M/M.M2M-M0M1M)M+Y!bzM*6261mE`LYZ[m\ma<d|\e(B
-tou    \e$AM7M6M5M8nWw;\e(B
-tu     \e$AMAM;M<M>M=M@M?MBMCM:M9]1u)nJ]K\"\e(B
-tuan   \e$AMEMD^Rn6eh\e(B
-tui    \e$AMFMKMHMJMGMI_/lU\e(B
-tun    \e$AMLMMb=MJMN6Zk`jUY[\e(B
-tuo    \e$AMPMQMOMWMXMSMUMYMVmHMTc{uI[gMRX1v>iRY"bUnhu"h^hXsj\e(B
-wa     \e$AM_MZM`M^M[0<f4M\M]Xtkp\e(B
-wai    \e$AMbMaaK\e(B
-wan    \e$AMrMjMmMeMfMkMdMlMgMsMqMoMpMhrj]8n5X`McMnf}g~kdMi\9]Rg:\e(B
-wang   \e$AM{MuMyMxM|MvMtMzMwM}c/Xh^Li~wM\e(B
-wei    \e$AN*N;N4N/N,N6N'N@M~N"N0N=N(N#N?N2N%N:gbN5N1N7N8N9l?N$N)N!N3N.f8N-N>a!N<b+YK^1ptb,eT`xh8lPv[N&N+Zq[W`mZCZsaKd"]ZaMcGcmd6t:j&\e(B
-wen    \e$ANDNJNENBNHNGNFNCv)NINAckXXcSh7\e(B
-weng   \e$ANLNMNK]n^3\e(B
-wo     \e$ANRNUNQNTdWNVNPNSNOa"`8YANN]+k?mRv;\e(B
-wu     \e$AN^NeNoNqNdNgNhl6Ns6qNbN]NiNrNaN[NZNmNjNfNWNcNXN\NpN`NkNlX#_mNnN_pMNYe|pmpDbhe;fpZyjuwy[Xd4XuZc\LbPfDbdh;lIrZeCvH\e(B
-xi     \e$ANwO5O"O#O2O/O0O8O7N|O4O'O!O$NvO&N~O.NtNuYbO*O6N{N}NzO1iXO(O%[-O,l{jX^ItKuh_qd@fRp*O+ac\ggtldO)tbs,eoO-d;YRq6raZtjjs#O3]>]_]{t8NytQNxu5l$w{l(b>cRlyt*\e(B
-xia    \e$AOBODOEO?OCO@OAO<O9O>O:;#O=eZO;woh&_HarhTmLp}sA\e(B
-xian   \e$AOVOHOTO_OUO^OXOJOWOPO\O]OMOIOSOLO[OFOROKf5ONOZOQOOOYuPe_a-a}r9sZuQ]2OGpBpoO3k/lltLY~^:u#\Hl^v1\e(B
-xiang  \e$AOkO`OrOsOcOgOqOlOnOm=5OdOjOiOoOaOfOpOhObwOOebCfx]YbTv_\<g=s-\e(B
-xiao   \e$AP!P&P#O{P'O~OzdlP$OtP"O|OwOyP%ePOuOvO}OxhIfgsosc_XhUg/wLrYaE\e(B
-xie    \e$AP)P4P;P-P,P/P1P9P2P*P3P0P5P<P6P.P8P:YtP7YIebi?_"P(e,P+r![D^/[FusgSb3g%b]iGdM\e(B
-xin    \e$APDPBPEP@PAP=\0vNP>PFj?PCP?l'obX6\e(B
-xing   \e$APPPTPNPKPGPMPUPRPLPQPHPSc,PJPOPI\t_)\~b<mJZj\e(B
-xiong  \e$AP[PVPXPWP\PYPZ\:\e(B
-xiu    \e$AP^P]PcPdK^3tP_PeP`PbPa_]uww[bJbSp<a6de\e(B
-xu     \e$APmPxPhPkPlPrPiPwSuPnPpPsPjPtPud0PfPqPvhrPgZ<qcPolcm9mltZu/go[Cd*dS[W^#\e(B
-xuan   \e$AQ!P{P}P|H/PzPyP~lEdVQ$Q#]fdvjQh/ZNngYXpgcylSi8Q"m[^oo`\e(B
-xue    \e$AQ'Q*Q)OwQ(ZJQ%Q&u=`em4w(\e(B
-xun    \e$AQ0Q/Q5Q8Q6Q2Q7Q-Q.Q,Q+Q1;gQ3u8Yca_[w\wa>d-^9Q4[(jVq?b~b4d1v`^&?#\e(B
-ya     \e$AQGQ9QEQ@Q=Q:QDQHQ;QFQ<QBQ>Q?QCT~pim}f+QAXsqba,gp[k^keBhbk2m<\e(B
-yan    \e$AQ[QTQOQ]QPQLQiQSQXQZQUQaQWQ`QVQgQNQJQRQcQfQ^QIQMQ\QKQYQhY2i\QQQekglMjLQde{QbfLkYdNs[Q_XMwPwz\>YHwJcFaCXIX_b{cUYp[1g|n;[3Z]dYZgw|u&]N\e(B
-yang   \e$AQyQsQtQkQnQxQoQvQrQwQzcsQuQlQmQjm&QqlHQpw1bsa`l>rU\e(B
-yao    \e$AR*R!R)R+R#Q{Q|R&R'R"R%Q~R$X2kHQ}_:T?=DhCq:pNjWR(o"g[X3aftmw%griwaJ\e(B
-ye     \e$AR2R5R9R/R6R0R3R:R.QJR7W'^^R-lGR1R,R4R8ZKZ~XLjJnt\e(B
-yi     \e$AR;RTRbRQReRiR=RWRBRUR@RkRFRlRfR`RZRIRERdRKRNRARGRjRVRmRSR[0,RRRgRcI_RaR]RLRDisbyRO^DRPRnRCR_RoRM_WX}^HlZj]dtRheF_.\2_=fd_^R>l=RYpj^2`foWXWRJR\gKRXRHb"t`nFt/XfXnt}Y+[|Z1[]\hR<^ZaZbB`Ia;bxc(R?l%ilwp\SR^onpyq/q4rfmtth\e(B
-yin    \e$ARrRtR}S!RxR~R{RuRvq+RwRzRsRyRpRqR|r>[s`3dNX7[4k3v/[_nwa~_Eb9\'v8d&\aq?\e(B
-ying   \e$AS&S"S0S*S-S2S3S.S/S1S%S$S,S#S(S+b_S)]S]:s?e-i:S'r#YxpPgx\c`Sh,\~^|[+q(]vd^dkkt\e(B
-yo     \e$AS4`!\e(B
-yong   \e$ASCS@S5SBS?S;S>S9S6S=Y8S:SAp.S7g_o^S8[Uw+wS`/\-S<c<\e(B
-you    \e$ASPSVSISQSNSRSMSESJSDSHSGSLSFSWSUSSwnX|_OSOhVvO],`swxSKXUi`k;npp`rDrvSTrxtm]/Y']5e6rJ^L\e(B
-yu     \e$ASZSkSoS}S`SvS|Sjl6S{T$ShScSqSzSrS~SuSnT"T%S^S_V`StSwSpSiT#SdSmT!bESySbSfSeSa]Gh$SgT&SX^m`tZMS\SlSYX9S]X.ZDe}kiSxsDSsf%t'l#v9jlS[jElOlYl[q>ruaNa|XqY6t(`vbW]R]wb@cPewpuqAv'pvfzm2nZpApVrb\e(B
-yuan   \e$AT1T*T-T:T6T8T0T4T2T9T5T.T)T,T(T7T3T'T/T+fBcdiZ\>k<s"v=ms`wp0sn\+[y^rh%\e(B
-yue    \e$ATB@VT=T<TDT>T;TCT@TAT?k>e.h]iPY_na\e(B
-yun    \e$ATKTFTJTOTNTPTHTLTMs^\?TETIg!ifc3k5aqlY[)c"j@h9TG\e(B
-za     \e$ATSTzTRU&_FTQ^Y\e(B
-zai    \e$ATZTYTXTVWPTWTUTTaLg^\e(B
-zan    \e$AT[T^T]T\t"tXh6^YjCtuvI\e(B
-zang   \e$A2XT`TaT_j0U`^Jf`\e(B
-zao    \e$ATgTlTbTcThTnTjTkTdTfTmToTiTegX_p\e(B
-ze     \e$ATrTpTsTqU&_uXFeEsPset7`}XSj>\e(B
-zei    \e$ATt\e(B
-zen    \e$ATuZZ\e(B
-zeng   \e$ATvTyTwgUn@j5o-\e(B
-zha    \e$AU(TzU&U)U'U#T|T}U$T~U"U%T{^jWui+_n_8U!mDw~_epdrF\e(B
-zhai   \e$AU*U.U,U-U+U/5TmNq)\e(B
-zhan   \e$AU=U9U>U<U4U6U7U3U5U8U0U@U:U?U2U1U;Z^^xl9\e(B
-zhang  \e$A3$UEUBUIUFUGUJUOUKUMULUHUCh0s/UAUNUDaV[5b/Xka$fQ\e(B
-zhao   \e$AWEURUUUP3/UTUYUVUWUQUXUSZ/nH_zh~sI\e(B
-zhe    \e$AUbWEU_U[U\UcUZU^i|ZXUaU]q^pQU`m]_!rXtwhO\e(B
-zhen   \e$AUfUsUrUpUkUd[ZUqUoUmUeUjUljbUgUispUnUhhegGn3itkSp!lud%dZ]hi)i;k^p2\e(B
-zheng  \e$AU~U}V$U{UyUwUuV#V"UvagUtUzs]U|o#a?UxZ:vkn[V!\e(B
-zhi    \e$AV.V;V*VAVFV1VNV8V'V>V0VBV5V/V=V9VJV4VGVCV7V&VHV2V<VMagVDVIV?V-V@V3V%V(V+V,VEV6VOV)V:VKVLek\FhNhWu\hd`yhYlmiyj^pkutX4ir[zZl[$mibeeifou%^}tjuEkyotp:kUrNuYlsv#\e(B
-zhong  \e$AVPVVVXVZVUVSVRVTVWVYoqu`VQZ#blt1s.\e(B
-zhou   \e$AV\V]V^V`V[VeVhVaVfVdVgVbVckPf{V_g'f(mX_z]'t&tmt|\e(B
-zhu    \e$AVwW!W"VzVxVpVnVlW$ViW#VmV~VqVsVvVyVrV}VjVuVkXyVtV|d(VoqRnysgV{\olDunsChLtcd>dswfiFiM\QY*pqpf[%t6\e(B
-zhua   \e$AW%W&\e(B
-zhuai  \e$AW'`\\e(B
-zhuan  \e$A4+W(W*W,W+W)W-_ybMr'\e(B
-zhuang \e$AW0W4W3W/W2W141W.^JYWm0\e(B
-zhui   \e$AW7W9W:W6W8v?W5c7fmgD\e(B
-zhun   \e$AW<W;q8kF\e(B
-zhuo   \e$AWEW@W=W?WAWFWCW>WGe*WBWDm=omdClLd7Y>lzZB_*\e(B
-zi     \e$AWSWTWVWJWIWOWLWPWKV(WHWNhwWUWQf"m'WRZQv7ov_Zj"oEmvsJwZWM\ku~v$g;qhvvaQj_f\tRtt\e(B
-zong   \e$AW\WZW]WYW[WXtUWWYLkjhH\e(B
-zou    \e$AW_W`W^WafcvmZAZn[8\e(B
-zu     \e$AWiWcWeWfWbWhWdWgY^o_]O\e(B
-zuan   \e$AW,Wj_,WkurgZ\e(B
-zui    \e$AWnWoWlWm>Wu~^)\e(B
-zun    \e$AWpWqiWw._$\e(B
-zuo    \e$AWwWvWxWyWsWrWAWtTd4iWu`\btkQ_rsPZhlqu!\e(B
+% Header added for Emacs\r
+%\r
+% This file is included in the free package called CCE.  It is\r
+% available at:\r
+%      http://ftp.debian.org/debian/dists/potato/main\r
+%              /source/utils/cce_0.36.orig.tar.gz\r
+%\r
+% As the file itself doesn't contain copyright and license notices,\r
+% the following statements of the file cce/Copyright covers it.\r
+%\r
+%             Copyright (C) 1999, Rui He, herui@cs.duke.edu\r
+%\r
+%\r
+%                  CCE(Console Chinese Environment) 0.32\r
+%\r
+% CCE is free software; you can redistribute it and/or modify it under the\r
+% terms of the GNU General Public License as published by the Free Software\r
+% Foundation; either version 1, or (at your option) any later version.\r
+%\r
+% CCE is distributed in the hope that it will be useful, but WITHOUT ANY\r
+% WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+% FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more\r
+% details.\r
+%\r
+% You should have received a copy of the GNU General Public License along with\r
+% CCE; see the file COPYING.  If not, write to the Free Software Foundation,\r
+% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
+%\r
+% End of header added for Emacs\r
+a      Â°Â¢Â°Â¡ÂºÃ‡Ã«Ã§Ã Ã„ï¹ß¹\r
+ai     Â°Â®Â°Â§Â°Â¤Â°Â­Â°Â£Â°Â©Â°Â¬Â°Â¦Â°Â«Â°Â¥Â°Â¨Â°ÂªÂ°Â¯ÃªÃ“ö°ÞßàÈè¨æÈïÃàÉíÃ\r
+an     Â°Â²Â°Â¸Â°Â´Â°ÂµÂ°Â¶Â°Â³ÃšÃ÷ö°°°±âÖèñðÆ°·ï§ÞîáíÛû\r
+ang    Â°ÂºÂ°Â¹Â°Â»\r
+ao     Â°Ã‚°Ä°Ã°¾°½°¼°À°ÃÛêà»ÞÖ÷éæñ÷¡°¿á®âÚåÛéáñúæÃòüöË\r
+ba     Â°Ã‘°Ë°É°Ã°Ö°Õ°Î°È°Å°Ô°Ã°Ç°Ì°Ã°Ó°Ê°ÒôÎå±ÜØÃÃ÷Éá±°ÆîÙöÑ\r
+bai    Â°Ã™Â°Ã—°Ü°Ú²®°Ã°ØßÂêþÞã°Û°Þ\r
+ban    Â°Ã¬Â°Ã«Â°Ã¦Â°Ã£Â°Ã Â°Ã¥Â°Ã©Â°Ã¡Â°Ã§Â°ÃŸÂ°Ã¤Â°ÃªÂ°Ã¨Â°Ã¢Â°Ã­ÃšÃ¦Ã›Ã Ã±Â£Ã®Ã“ô²ñ­\r
+bang   Â°Ã¯Â°Ã®Â°Ã´Â°Ã²Â°Ã±Â°Ã¸Â°Ã³Â°ÃµÂ°Ã¹Ã¤ÂºÂ°Ã°Â°Ã·Â°Ã¶Ãò\r
+bao    Â±Â¨Â±Â£Â°Ã¼Â±Â©Â±Â¦Â±Â§Â±Â¡Â°Ã»Â±Â¬Â±Â«Â±Â¥Â±Â¤Ã†Ã˜Ã…Ù°ý±ª±¢°úÃáñÙæßìÒð±öµõÀ\r
+bei    Â±Â»Â±Â±Â±Â¸Â±Â³Â±Â¯Â±Â²Â±Â­Â±Â¶Â±Â´Â±Â®Â±Â°Ãí±¹ã£±·ß±ºðÇØÃÚýÚéÛýíÕñØöÃ÷¹Ãɱµ\r
+ben    Â±Â¾Â±Â¼Â±Â¿Â±Â½ÂºÂ»Ã›ÃŽÃªÃšÃ¯Â¼Ã›Ã\r
+beng   Â±Ã€Â±Ã‚±Ã±Ä±Åê´±ÃàÔ°ö\r
+bi     Â±ÃˆÂ±Ã˜Â±ÃŠÂ±Ã±Ò±Ü±Õ±Ç±Ë±Æ±Ú±Û±×±Ì±É±Ã±Î±ÓØ°èµ±Ö±Ãåöó÷æ¾ã¹±Ôåþå¨îéñÔÙÂ÷ÂÃÉÞµßÙáùâØïõääô°±ÑßÃæÔ±ÃêÚî¯Ã©ÛýóÙóëÜÅôÅõÃÜê\r
+bian   Â±Ã Â±Ã£Â±ÃŸÂ±Ã¤Â±Ã©Â±Ã§Â±Ã¦Â±Ã¡Â±ÃžÂ±Ã¨Â±Ã¢Â±Ã¥Ã­Â¾ÃœÃØÒãêòùóÖíÜñ¹ñÛÛÃöýâíìÔçÂ\r
+biao   Â±Ã­Â±ÃªÂ±Ã«Ã¯ÃšÂ±Ã¬Ã¦Ã´Ã¯Ã°Ã±Ã‘è¼ì­ñ¦÷Ôì®æ»ì©÷§\r
+bie    Â±Ã°Â±Ã¯Â±Ã±ÃµÂ¿Â±Ã®\r
+bin    Â±Ã¶Â±ÃµÂ±Ã²Â±Ã³Ã·ÃžÃ§Ãéë±ôéı÷ë÷ÙÃçãáÙ÷ÆïÙ\r
+bing   Â²Â¢Â²Â¡Â±Ã¸Â±Ã¹Â±Ã½Â±Ã»Â±ÃºÂ±Ã¼Â±Ã¾Ã™Ã·ÃšÃ»ÃžÃ°\r
+bo     Â²Â¨Â²Â¥Â²Â©Â²Â®Â²ÂªÂ±Â¡Â²Â¦Â²Â´Â°Ã˜Â°Ã¾Â²Â£Â²ÂµÂ²Â·Â²Â±Â²Â«Â²Â²Ã¢Ã„ô¤êþ²°õËí粤²¯²¬²§²³éÞîà뢲­õÀØÃð¾õÛÙñà£\r
+bu     Â²Â»Â²Â¿Â²Â¼Â²Â½Â²Â¹Â²Â¶Â²Ã€Â²Â·Â²Â¾Â²Â¸Ã†Ã’ß²²ºîßåÃõ³êÎê³îÃ\r
+ca     Â²Ãàêíå\r
+cai    Â²Ã…²É²Ë²Æ²Ä²Ê²Ã²Â²Ì²È²Ç\r
+can    Â²ÃŽÂ²Ã²Ã²Ò²Ó²Ñ²ô²Ãè²åîæî÷õôÓ\r
+cang   Â²Ã˜Â²Ã”²Ö²×²ÕØ÷\r
+cao    Â²Ã²Ù²Ü²ÚàòÛó©ô½äî\r
+ce     Â²ÃŸÂ²Ã¢Â²Ã Â²ÃžÂ²Ã¡Ã¢Ã¼\r
+cen    Â²ÃŽÃ¡Â¯Ã¤Â¹\r
+ceng   Ã”ø²ã²äàá\r
+cha    Â²Ã©Â²Ã¬Â²Ã®Â²Ã¨Â²Ã¥Ã‰Â²Â²Ã¦Â²Ã¯Â²Ã§Â²ÃªÃ”û²íàêñÃè¾é«é¶éßïï²ëïÊâªâÇãâæ±\r
+chai   Â²Ã®Â²Ã±Â²Ã°Â²Ã²Ã®ÃŽÃ™Â­Ã²Â²Ã°Ã»\r
+chan   Â²ÃºÂ²Ã¼Â²Ã¸Ã¬Ã¸Â²ÃµÂ²Ã¶Â²Ã¹Â²Ã³Â²Ã»Â²Ã´Ã¤Ã½Ã¢Ã£Ã³Â¸Ã¦Â¿ÃšÃ†Â²Ã·Ã¢ÃœÃ¥Ã®Ã¥Â¤Ã™Ã¦ÃµÃ°ÃÛæöêèïâåñ\r
+chang  Â³Â¤Â³Â¡Â³Â£Â³ÂªÂ³Â§Â³Â¢Â²Ã½Â³Â¦Â³Â¥Â³Â©Â³Â«ÃŒÃˆÂ³Â¨Ã¢ÃªÃ¦Â½Â²Ã¾Ã¦ÃØöë©áäêÆöðãÑÃÅÜÉÛËã®\r
+chao   Â³Â¬Â³Â¯Â³Â±Â³Â´Â³Â³Â³Â­Â³Â°Â³Â®Â´Ã‚³²êËìÌâ÷ñé\r
+che    Â³ÂµÂ³Â¹Â³Â·Â³Â¶Â³ÂºÂ³Â¸Ã›Ã¥Ã­Âº\r
+chen   Â³Ã†Â³Ã‚³Ã³¿³¾³¼³Ã³Ä³½³»Úß衳ÀàÃØ÷ÞÓÚÈå·é´ö³í×\r
+cheng  Â³Ã‰Â³Ã‡Â³ÃŒÂ³Ã†Â³Ã³ÃÊ¢³Ë³Ê³Å³Ã³Î³ÓÈàá³ÑîõØ©³ÒÛôèÇëóîññÎõ¨èßòÉ\r
+chi    Â³Ã”³Ö³Ù³ß³à³â³Ø³Õ³Ã³Û³Ü³á³×³ÞßêàÃà´³Úò¿³ãó×ë·ß³âÃõØð·ñÃôùÛæܯÜÃóøÙÑæÊó¤áÜí÷÷Îñ¡\r
+chong  Ã–سå³ä³ç³æ³èã¿âçô¾Üûô©ï¥\r
+chou   Â³Ã©Â³Ã®Â³Ã°Â³Ã³Â³Ã¯Â³Ã´Â³ÃªÂ³Ã±Â³Ã¬Â³Ã²Ã£Â°Â³Ã«Â³Ã­Ã¶Ã…Ù±àüñ¬\r
+chu    Â³Ã¶Â´Â¦Â³Ã½Â³ÃµÂ³Ã¾Â´Â¥Â´Â¢Â´Â¡Â³Ã¸Ãó³ù³÷³û´£âð³úèÆ´¤ç©÷íñÒòÜõéÛ»³üèúãÀØ¡éË\r
+chuai  Â´Â§Ã Â¨ÃµÃŸÃ ÃœÃ«ÃºÃžÃµ\r
+chuan  Â´Â«Â´Â©Â´Â¨Â´Â¬Â´Â®Â´Â­Ã¢Â¶Ã¥Ã—ô­çÃë°´ªîË\r
+chuang Â´Â´Â´Â°Â´Â²Â´Â³Â´Â±Â´Â¯Ã¢Ã«\r
+chui   Â´ÂµÂ´Â¹Â´Â¶Â´Â¸Â´Â·ÃšÃ¯Ã©Â³Ã©Â¢\r
+chun   Â´ÂºÂ´Â¿Â´Â½Â´Ã€Â´Â¼Â´Â¾Â´Â»Ã°ÃˆÃ²Ã­Ã»\r
+chuo   Â´Ã‚´Ãà¨ê¡õÖöº\r
+ci     Â´Ã‹Â´ÃŽÂ´ÃŠÂ²Ã®Â´ÃŒÂ´Ã‡Â´ÃˆÂ´Ã…´Ã´É×È´Ä´Æìô´ÃßÚðËôÙÜë\r
+cong   Â´Ã“´Ò´Ã´Ô´Ã´ÑçýäÈèÈÜÊæõè®\r
+cou    Â´Ã•Ã©Â¨ÃªÂ£Ã«Ã­\r
+cu     Â´Ã™Â´Ã–´Ø´××äâ§õíõ¾áÞéãÃýõ¡\r
+cuan   Ã”Ü´Ü´Û´ÚߥïéÙàìà\r
+cui    Â´Ã Â´Ã¢Â´ÃŸÂ´Ã´ÞÃôä´áã²è­ö¿´ãë¥éÃßý\r
+cun    Â´Ã¦Â´Ã¥Â´Ã§Ã¢Ã¢Ã±Ã¥\r
+cuo    Â´Ã­Â´Ã«Â´ÃªÂ´Ã¬Â´Ã©Â´Ã¨ÃµÃ£Ã¯Ã³Ã¡ÃëâðîðûõºØÈï±\r
+da     Â´Ã³Â´Ã²Â´Ã¯Â´Ã°Â´Ã®Â´Ã±Ã ÂªÃ­Â³ÃžÃ‡Ã±Ã—÷²óÎ÷°âòæ§ßÕðã\r
+dai    Â´ÃºÂ´Ã¸Â´Ã½Â´Ã·Â´Ã¼Â´Ã´Â´Ã»Â´Ã¾Â´ÃµÂ´Ã¹Ã·Ã¬ÂµÂ¡Ã§Ã©Ã¡Â·Ã¥ÃŠÂ´Ã¶ÃŸÂ¾Ã¦Ã¦Ã§ÂªÃœÂ¤ÃŸÂ°\r
+dan    ÂµÂ«ÂµÂ¥ÂµÂ£ÂµÂ¯ÂµÂ­ÂµÂ©ÂµÂ°ÂµÂ¨ÂµÂ®ÂµÂ¤ÂµÂ¢ÂµÂ¬Ã­Ã±Ã Â¢Ã¥Â£ÂµÂ§Ã©Ã©Ã³Ã¬Ã°Ã·ÃªÃ¦Ã°Ã£Ã±ÃµÂµÂªÃ̵¦ÙÙ\r
+dang   ÂµÂ±ÂµÂ³ÂµÂ´ÂµÂµÂµÂ²Ã±Ã‰Ã®ÃµÃ¥Â´Ã›ÃŠÃÃÚÔí¸\r
+dao    ÂµÂ½ÂµÃ€ÂµÂ¼ÂµÂ¹ÂµÂºÂµÂ¶ÂµÂ¿ÂµÃµ¸µ·µ»ß¶µ¾âáàüë®ôî\r
+de     ÂµÃ„µÃµÂï½\r
+deng   ÂµÃˆÂµÃ‡ÂµÃ†ÂµÃ‹ÂµÃŠÂµÃ‰ÂµÃ…àâíãê­ïëô£áØ\r
+di     ÂµÃ˜ÂµÃšÃŒÃ¡ÂµÃ—µÃµÛµÜµÃµÖµÃµÎµÃµÙµÌµÑµÞµÓàÖÚ®ÚõÒÛ¡íûµÕµÔíÆæ·é¦Ã¶ôÆÛæèÜêë÷¾Øµç°ïáíÚÙá\r
+dia    Ã Ã‡\r
+dian   ÂµÃ£ÂµÃ§ÂµÃªÂµÃ¤ÂµÃŸÂµÃ©ÂµÃ­ÂµÃ¦ÂµÃ®ÂµÃ¡ÂµÃ¬ÂµÃ«ÂµÃ ÂµÃ¢Ã±Â²Ã¡Ã›ÃµÃšÂµÃ¨Ã§Ã¨Ã´Â¡ÃšÃ§Ã›Ã£ÂµÃ¥Ã®Ã¤Ã±Â°Ã˜Â¼\r
+diao   ÂµÃ·ÂµÃ´ÂµÃµÂµÃ±ÂµÃ³ÂµÃ¶ÂµÃ²ÂµÃ°ÃµÃµÂµÃ¯Ã¯Â¢Ã®Ã¶Ã¶Ã´\r
+die    ÂµÃ¹ÂµÃ¸ÂµÃ¾ÂµÃ¼ÂµÃºÂµÃ½ÂµÃ»Ã Â©Ã˜Ã½ÃµÃšÃ«ÂºÃ±Ã³ÃµÃžÃœÂ¦Ã°Â¬ÃžÃ©Ã›Ã¬Ã¶Ã¸\r
+ding   Â¶Â¨Â¶Â©Â¶Â¥Â¶Â¡Â¶Â¢Â¶Â¤Â¶Â¦Â¶Â£Ã®Â®Ã®ÃºÃ«Ã«Ã´ÃºÃ˜ÃªÂ¶Â§Ã°Ã›Ã Â¤Ã§Ã Ã­Ã–ñô\r
+diu    Â¶ÂªÃ®Ã»\r
+dong   Â¶Â¯Â¶Â«Â¶Â®Â¶Â¬Â¶Â´Â¶Â³Â¶Â­Â¶Â°ÃŸÃ‹Â¶Â²Â¶Â±Ã«Â±Ã­Ãð´á´Ûíá¼ëËëØ\r
+dou    Â¶Â¼Â¶Â·Â¶Â¹Â¶Â¶Â¶ÂºÂ¶ÂµÂ¶Â¸Ã±Â¼Ãúò½óû¶»\r
+du     Â¶Â¼Â¶Ã¶È¶À¶¾¶½¶É¶Ç¶Å¶Ã¶Â¶Ä¶Êà½äÂóÆ빶ƶ¿÷ò÷Çèüܶó¼\r
+duan   Â¶Ã¶Î¶Ì¶Ë¶Ã¶ÃìÑé²óý\r
+dui    Â¶Ã”¶Ó¶Ñ¶ÒíÔí­í¡ïæ\r
+dun    Â¶Ã™Â¶ÃœÂ¶Ã–¶Ø¶×¶ÛìÀ¶Ãíïãç¶Ú¶Õõ»ïæíâí»\r
+duo    Â¶Ã Â¶Ã¡Â¶Ã¤Â¶Ã£Â¶Ã¦Â¶Ã©ÃµÃ¢ÃŸÃ¶å¶ß¶ç¶è¶âÃÔ¶ÞîìñÖßáç¶ãõèÞ\r
+e      Â¶Ã®Â¶Ã­Â¶Ã±Â¶Ã¶Ã…¶¶ì¶ó㵶ôج¶ð¶ëßÀ¶ò¶õ¶ï湶êéîò¦öùïÉÚÌåíï°ãÕÛÑëñÜÃðÊÃàí\r
+ei     ÃšÃ€\r
+en     Â¶Ã·ÃžÃ´Ãì\r
+er     Â¶Ã¸Â¶Ã¾Â¶Ã¹Â¶Ã»Â¶ÃºÃ¥Ã‡Â¶Ã¼Â¶Ã½Ã°Â¹Ã§Ã­Ã®Ã¯Ã¶ÃœÂ·Â¡Ã™Â¦\r
+fa     Â·Â¢Â·Â¨Â·Â£Â·Â¦Â·Â¥Â·Â§Ã­Ã€Â·Â¤Ã›Ã’·©\r
+fan    Â·Â´Â·Â¹Â·Â¸Â·Â­Â·Â¶Â·Â²Â·Â³Â·ÂµÂ·Â¬Â·Â·Â·Â±Â·ÂºÂ·Â«Â·ÂªÃ¡Â¦Ã¨Ã³Â·Â®Ã¬ÃœÃžÂ¬Ã®Â²Â·Â°ÃžÃ€Â·Â¯ÃµÃ¬\r
+fang   Â·Â½Â·Ã…·¿·Ã·À·Â·¼·Ã·Äá÷»·¾ô³îÕöÃÚúèÊ\r
+fei    Â·Ã‡Â·Ã‘·É·Ã·Ê·È·Ã·Æ·Î·Ë·Ìëèìé·Ãö­ç³åúì³ôäòãðòäÇã­öîóõÜÀáôïÃé¼\r
+fen    Â·Ã–·Ã·×·Ü·ß·Û·Õ·Ò·Ø·Ù·à·Þ·Ô·Úèû÷÷çã·ÓÙÇå¯ö÷\r
+feng   Â·Ã§Â·Ã¢Â·Ã¡Â·Ã¥Â·Ã¨Â·Ã¦Â·ÃªÂ·Ã®Â·Ã¬Â·Ã¯Â·Ã­Â·Ã«Â·Ã¤Â·Ã£Â·Ã©Ã™ÂºÃ­Â¿ÃŸÃ´Ã›ÂºÃ×ãã\r
+fo     Â·Ã°\r
+fou    Â·Ã±Ã³Â¾\r
+fu     Â·Ã²Â¸Â®Â·Ã¾Â¸Â´Â¸Â¸Â¸ÂºÂ¸Â±Â¸Â£Â¸Â»Â¸Â¶Â¸Â¾Â¸Â½Â·Ã°Â·Ã¹Â·Ã¼Â·Ã»Â¸Â°Â¸Â¯Â¸Â¡Â·Ã¶Â¸Â¹Â¸Â§Â¸Â²Â·Ã´Â¸Â³Â¸Â¥Â¸ÂµÂ¸Â¨Â·Ã·Â¸Â¦Â¸Â©Â¸Â«Â¸Â¿Â¸Ã€Â¸Â¬Â¸Â¤Â·Ã½Â·Ã³Â¸Â·ÃœÂ½Â¸ÂªÃ¦ÃšÂ¸Â­Ã™Ã«Â·ÃµÂ·Ã¸Â¸Â¢Â¸Â¼Â·ÃºÃ¨ÃµÃ²ÃÜÀÜÞÜòóÃÊá¥âöÞÔäæíëåõôïç¦ç¨õÃìðíÉíêî·ò¶õÆòðß»ÙìÛ®ïûæâêçð¥òóöÖöû\r
+ga     Â¿Â§ÃžÃŽÂ¸Ã‚¸ÃÔþÙ¤ê¸îÅæØæÙ\r
+gai    Â¸Ã„¸Ã¸Å¸Çؤ¸Æêà¸ÈÛòÚëê®\r
+gan    Â¸Ã¸É¸Ò¸Ã¸Ê¸Î¸ËÞøÓéøøÑߦÛáÜÕ¸Ìãïí·ä÷ðáôûäÆç¤êº\r
+gang   Â¸Ã•Â¸Ã›Â¸Ã–¸Ú¸Ù¸×¿¸¸Ü¸Ô¸Øî¸í°óà\r
+gao    Â¸ÃŸÂ¸Ã¦Â¸Ã¥Â¸Ã£Â¸Ã¢Â¸Ã Â¸ÃžÂ¸Ã¡Ã˜ÂºÃ©Ã‚Þ»çɸøäÚ¾éÀê½Û¬ï¯\r
+ge     Â¸Ã¶Â¸Ã¯Â¸Ã·Â¸Ã¨Â¸Ã±Â¸Ã§Â¸ÃªÂ¸Ã´Â¸Ã°Â¸Ã®Â¸Ã³Â¸Ã¬Â¸Ã©Â¸Ã­Â¿Â©Â¸Ã«Ã ÃƒÃ·Ã€Ã²Â¢Ã’Ùë¡ëõïÓæüñËØîتܪÛÙÛÃô´¸õíÑò´\r
+gei    Â¸Ã¸\r
+gen    Â¸Ã¹Â¸ÃºÃ˜Â¨Ã´ÃžÃŸÃ§Ã¢\r
+geng   Â¸Ã¼Â¹Â¢Â¸Ã»Â¾Â±Â¸Ã½Â¸Ã¾Â¹Â£ÃŸÃ¬Ã¢Ã™Ã¶Ã¡Â¹Â¡Ã§Â®\r
+gong   Â¹Â¤Â¹Â«Â¹Â²Â¹Â©Â¹Â¦Â¹Â¥Â¹Â¬Â¹Â±Â¹Â§Â¹Â®Â¹ÂªÂ¹Â¨Â¹Â­Â¹Â°Ã«Ã…¹¯ò¼çîö¡\r
+gou    Â¹Â»Â¹ÂºÂ¹Â¹Â¹Â·Â¹ÂµÂ¹Â´Â¹Â¶Â¹Â³ÃªÃ­Ã³Ã´Â¹Â¸Ã˜Ã¾Ã¡Â¸ÃšÂ¸Ã·Â¸Ã³Ã‘èÛåÜæÅçÃì°\r
+gu     Â¹ÃŠÂ¹Ã…¹Ë¹É¹Ä¹Ã¹Ç¹Ì¹Â¹È¹À¹Ã¹¼¹¾¹Ã¹¿¹½ãééïïÀ¹Æèôð³ì±ðÀëûî­î¹îÜõý÷½ÃÔòÃØÅÚ¬áÄôþêöêôðóöñ\r
+gua    Â¹Ã’¹Ã¹Î¹ÑßɹÓØÔ¹Ãð»èéëÒÚ´\r
+guai   Â¹Ã–¹Ô¹ÕÞâ\r
+guan   Â¹Ã˜Â¹Ã›Â¹ÃœÂ¹Ã™Â¹Ã¹ß¹Ú¹á¹Þ¹à¹×øÙÄÂÚÞèîÂäÊ÷¤ðÙ\r
+guang  Â¹Ã£Â¹Ã¢Â¹Ã¤Ã¡Ã®ÃŸÃ›Ã«Ã—èæ\r
+gui    Â¹Ã¦Â¹Ã©Â¹Ã³Â¹Ã­Â¹Ã°Â¹Ã²Â¹Ã±Â¹Ã¬Â¹Ã¥Â¹Ã®Â¹Ã´Â¹ÃªÂ¹Ã¨Â¹Ã«Ã°Â§Â¿Ã¾Â¹Ã¯Â¹Ã§ÃªÃóþæ£öÙØÃâÑå³È²ØÛèíêÃ÷¬\r
+gun    Â¹Ã¶Â¹Ã·Ã¶Ã§Ã§ÂµÃ­ÃžÂ¹ÃµÃ™Ã²\r
+guo    Â¹ÃºÂ¹Ã½Â¹Ã»Â¹Ã¸Â¹Ã¹Â¹Ã¼Ã Ã¾Ã²Ã¥Ã±Ã¸Ã™Ã¥ÃžÃ¢Ã›Ã¶Ã«Â½ÃŸÃƒÃ¡Ã†Ã¢Â£Ã©Â¤Ã²Ã¤\r
+ha     Â¹Ã¾Â¸Ã²Ã®Ã¾\r
+hai    Â»Â¹ÂºÂ£ÂºÂ¢ÂºÂ¦ÂºÃ™Â¿ÃˆÂºÂ¥ÂºÂ§ÂºÂ¡Ã Ã‹Ã«ÃœÃµÂ°ÂºÂ¤\r
+han    ÂºÂºÂºÂ°ÂºÂ¬ÂºÂ®ÂºÂ¹ÂºÂ«ÂºÂ¶ÂºÂ­ÂºÂ¯ÂºÂ²ÂºÂ³ÂºÂ±ÂºÂµÂºÂ´ÂºÂ¨ÂºÂ·ÂºÂ©ÃªÃå«÷ýñüãÛº¸òÀìÊò¥ÃÕÞþÚõºª\r
+hang   Ãú½Ãﺼº»ãìñþç¬çñ\r
+hao    ÂºÃƒÂºÃ…ºÃºÀºÆºÄ𩺿껺º¾ÃïºÑå°¸äàÆàãÞ¶å©òºò«\r
+he     ÂºÃºÎºÃºÓºÈºÕºËÃźغúǺ̺ɺ×ÛÖºÒºÖÚ­ºÔãØàÀºÑêÂò¢ÛÀîÃæüòÂôçºÊ\r
+hei    ÂºÃšÂºÃ™Ã Ã‹\r
+hen    ÂºÃœÂºÃžÂºÃºÛ\r
+heng   ÂºÃ¡ÂºÃ¢ÂºÃ£ÂºÃŸÂºÃ ÃžÂ¿Ã§Ã±Ã¨Ã¬\r
+hong   ÂºÃ¬ÂºÃ¤ÂºÃ©ÂºÃ¨ÂºÃ¥ÂºÃªÂºÃ§ÂºÃ«ÂºÃ¦Ã£Ã¼Ã£ÃˆÃžÂ°ÃšÂ§ÃžÂ®Ã™ÃªÃ™Ã¤Ã¦\r
+hou    ÂºÃ³ÂºÃ²Ã¡Ã¡ÂºÃ±ÂºÃ®ÂºÃ­ÂºÃ°ÂºÃ¯Ã¥Ã‹Ã´Ã—÷¿Ü©ðúóóö×\r
+hu     ÂºÃµÂ»Â¤ÂºÃ´ÂºÃºÂ»Â§ÂºÃ¾ÂºÃ¶Â»Â¥ÂºÃ½Â»Â¢ÂºÃ¸ÂºÃ¼Â»Â¦Ã£Â±Ã¤Â°Â»Â£ÂºÃ¹Â»Â¡ÂºÃ»Ã Ã±ÂºÃ·ÃµÃºÃ¬Ã¯Ã¢Â©Ã°Ã€ÃµÂ­Ã¬Ã¦Ã¬Ã¨ÃŸÃ¼Ã³Ã‹Ã§ÃºÃ¤Ã¯Ã°Ã‰Ã©ÃµÃ¬ÃƒÃ™Ã¼Ã¡Â²Ã¢Ã¯Ã·Â½Ã©ÃŽÃ¬Â²Ã°Â­Ã°Ã—ìÎ\r
+hua    Â»Â°Â»ÂªÂ»Â¯Â»Â¨Â»Â®Â»Â­Â»Â¬Â»Â©Ã¨Ã«Â»Â«Ã­Â¹Ã®Ã¼Ã¦Ã¨\r
+huai   Â»Â³Â»ÂµÂ»Â²Â»Â´Â»Â±ÃµÃ—\r
+huan   Â»Â¶Â»Â»Â»Â¹Â»Â·Â»ÂºÂ»Â¼Â»ÃƒÂ»Â½Â»Ã‚»À»¾å¾÷ß»Ãä½Û¼»¸çÙ»¿ïÌÛ¨ÃÈà÷ä¡ß§âµäñåÕöé\r
+huang  Â»Ã†Â»ÃŠÂ»Ã„»Î»Å»Ã»Ì»Ã»Ñè«áå»É»Ë»Ãäê»Èó¨åØÚòëûÇñ¥äÒóòöü\r
+hui    Â»Ã¡Â»Ã˜Â»Ã£Â»Ã“»Ô»Ò»Ã»Ù»Ú»Ö»Û»æ»Õ»ä»ß»²»Þ»à»åÚ¶êÃåç÷â»âÜö»ÜÜî๻×í£ä§çõÞ¥ßÜßÔä«ò³çÀèíãÄó³\r
+hun    Â»Ã©Â»Ã¬Â»ÃªÂ»Ã¨Â»Ã«Ã¢Ã†Â»Ã§ÃšÂ»Ã¤Ã£Ã£Ã”çõ\r
+huo    ÂºÃ»ò»î»ð»ñ»õ»ï»ö»ó»ô»íâ·ïÃñëØåîØß«Þ½àëïìó¶\r
+ji     Â¼Â¸Â¸Ã¸Â¼ÂºÂ»ÃºÂ¼Ã‡Â¼Â°Â¼Ã†Â¼Â´Â»Ã¹Â¼ÃƒÂ¼Â­Â¼Â¶Â¼Â«Â¼Ã„¼Ê¼¼¼¯¼Ã»÷Ææ¼±¼¤¼Ì¼È»ý¼®¼¦¼ª¼·¼£¼¾¼Å¼¨¼²¼¢¼À¼©¼É¼Ã»ø¼§í¶¼¡¼µ¼¥½åß´¼¹¼½»ü¼Ë¼¬æ÷»û¼»¼³¼Â᧼¿óÅõÒñ¤Ø½Úµôßö«î¿ð¢ÙÊêªïúé®ßóöê÷ÙÜù»þêéÃðçÜò±ì´éêÛÔÙ¥Þáܸآ÷äÞªßÒáÕÜÃóÇßâä©ØÀê«åìØÞõÕçáöÃêåê÷\r
+jia    Â¼Ã’¼Ó¼Û¼Ù¼Ü¼×¼Ñ¼Ã¼Ã¼Þ¼Î¼Ö¼ÚÇÑٮî¼Õð¨½Ä¼Ãçìê©åÈÙ¤ä¤ðèëÎóÕ¼ÔÃç¼ØïØØÅÛ£ÞØáµáèäÃë¸ôÂðýí¢îòñÊòÌõÊ\r
+jian   Â¼Ã»Â¼Ã¤Â¼Ã¾Â½Â¨Â¼Ã²Â¼Ã¡Â¼Ã Â¼ÃµÂ½Â¥Â¼Ã¬Â½Â¡Â¼Ã¦Â½Â£Â¼Ã¨Â¼Ã§Â¼Ã¼Â¼Ã¶Â¼Ã¢Â¼Ã¸Â¼Ã´Â¼Ã¹Â¼Ã©Â¼Ã±Â¼Ã½Â½Â¢Â¼Ã°Â¼ÃºÂ½Â¦Â¼Ã¥Â¼Ã³Â¼Ã·Â¼Ã®Â¼ÃŸÂ¼ÃªÂ¼Ã«Â¼Ã£Â¼Ã­ÃšÃ‰Ã¥Â¿Ã™Ã”½§ÃÑåÀ¼ïíúïµ½¤ë¦öä÷µÃóÞöÚÙàîäÕçÌèÅê¯ê§êùñÃóÈôåõÂé¥êððÃëìõÃ\r
+jiang  Â½Â«Â½Â²Ã‡Â¿Â½Â­Â½Â±Â½ÂµÂ½Â¯Â½Â®Â½Â´Â½ÂªÂ½Â¬Â½Â©Â½Â³ÃªÃ±Ã§Ã–ç­½°ñðíää®ôøÜüôÃ\r
+jiao   Â½ÃŒÂ½Â»Â¾ÃµÃ£½Ã½Ã½Ç½Å½¹½¾½¼½Î½Ã½À½º½É½Ê½È½·½Ã½¿Ù®½Æ½½õÓ毽ѽ˽Ä𨽶½Ã½¸öÞáèäÃë¸ÙÕðÔá½òÔ½ÂÜ´ÜúÞØàÃõ´\r
+jie    Â½Ã§Â½Ã¢Â½Ã“½á½Ú½Ö½ã½×½é½è½ä½Ü½ì½Ô½Ã½Ø½à½Ò½Ù½ß½å½Þ½ëàµÞ×æÃíÙ½ÕÚµèî½æÙÊò¡Ú¦ðܽêæ¼ôÉöÚò»÷ºà®\r
+jin    Â½Ã¸Â½Ã±Â½Ã°Â½Ã¼Â¾Â¡Â½Ã¶Â½Ã´Â½Ã»Â¾Â¢Â½Ã²Â½Ã¯Â½Ã·Â½ÃµÂ½Ã®Â½ÃºÂ½Ã­Â½Ã¾Â½Ã³Ã¨ÂªÃ±Ã¦Â½Ã¹Ã§Ã†Â½Ã½Ã Ã¤ÃªÃ®Ã¢Ã‹ÃÀñÆãâÛæ¡ÚáêáéÈ\r
+jing   Â¾Â­Â¾Â©Â¾Â«Â¾Â³Â¾Â¯Â¾Â¹Â¾Â²Â¾ÂªÂ¾Â°Â¾Â´Â¾Â¦Â¾ÂµÂ¾ÂºÂ¾Â»Â¾Â®Â¾Â¶Â¾Â§Â¾Â£Â¾Â¤Â¾Â±Ã£Â½Â¾Â¸Â¾Â¨Ã£Ã¾ÃšÃ¥Ã™Ã“캾·åɾ¥ëÖëæü¾¬â°ëÂåòæºØÙö¦\r
+jiong  Â¾Â½Â¾Â¼Ã¥Ã„ìçêÃ\r
+jiu    Â¾Ã¾Å¾¿¾Æ¾Ã¾É¾È¾À¾¾¾Î¾Ë¾Âôñð¯¾Ä¾Ìà±¾ÊðÕãÎÙ־ǾÃèÑèê÷Ã\r
+ju     Â¾Ã–¾Ã¾Ó¾ä¾Ù¾ß¾ç¾Þ¾Û¾Ü¾ã¾à¾å¾Õ¾Ã¾Ø½Û¾Ô¾Ã¾×¾Úöľâ¾æì«ôòÞäõá¾áåáéÙÙƾÒö´åðêøñÕîÒÜÚöÂ÷¶é§ÚªÜÄ︾Ñé°ÜìèÛé·ñÀõ¶è¢\r
+juan   Â¾Ã¨Â¾Ã­Â¾Ã«Â¾Ã¬Â¾ÃªÃ¶Ã¾î¾éä¸ïÔïÃÛ²áúèðîÃ\r
+jue    Â¾ÃµÂ¾Ã¸Â¾Ã¶Â½Ã…½À¾ò¾÷áȾô¾ñ¾óâ±àµØÊõê¾ðÚÜÛǾïàåæÞéÓàÙçåèöØãìßïãÞ§õû\r
+jun    Â¾Ã¼Â¾Ã¹Â¾Ã½Â¿Â¡Â¾Ã¾Â¾Ã»Ã¶ÃóÞ¾ú¿¤¿¥¿¢÷åñäÞÜ¿£\r
+ka     Â¿Â¨Â¿Â§Â¿Â¦ÃŸÃ‡Ã˜Ã»Ã«ÃŒ\r
+kai    Â¿ÂªÂ¿Â®Â¿Â­Ã®Ã¸Â¿Â«Â¿Â¬Ã¢Ã½Ã›Ã®ÃÜï´ØÜïÇâé\r
+kan    Â¿Â´Â¿Â¯Ã™Â©Â¿Â°Â¿Â³Â¿Â²Â¼Ã·Â¿Â±Ã®Â«Ã­Ã¨Ã£Ã›Ã¨ê¬\r
+kang   Â¿Â¹Â¿ÂµÂ¿Â¶Â¿Â¸Â¿Â»Â¿ÂºÂ¿Â·Ã˜Ã¸Ã£ÃŠÃ®Ã–\r
+kao    Â¿Â¼Â¿Â¿Ã®Ã­Â¿Â¾Â¿Â½ÃªÃ»Ã¨Ã Ã¥Ãª\r
+ke     Â¿Ã‰Â¿Ã‹Â¿Ã†Â¿Ã¿Ì¿Î¿Å¿Ê¿ÂºÇ¿Ã㡿ȿÿĿǿÀà¾î§éðïýðâòòäÛ÷ÃîÃñ½ò¤çæá³æìç¼ë´ï¾òÂ\r
+ken    Â¿Ã¿Ò¿Ã¿Ñö¸ñÌ\r
+keng   Â¿Ã“¿Ôï¬\r
+kong   Â¿Ã•Â¿Ã–¿Ø¿×ÙÅáÇóí\r
+kou    Â¿ÃšÂ¿Ã›Â¿Ã™Â¿ÃœÃŸÂµÃžÂ¢Ã­Ã®ÃœÃ’óØ\r
+ku     Â¿Ã Â¿ÃžÂ¿Ã¢Â¿Ã£Â¿Ã¡Â¿Ã¿ß÷¼ØÚÜ¥à·ç«\r
+kua    Â¿Ã¤Â¿Ã§Â¿Ã¥Â¿Ã¦Â¿Ã¨Ã™Â¨\r
+kuai   Â»Ã¡Â¿Ã¬Â¿Ã©Â¿ÃªÃ«ÃšÃ˜Ã¡ÃŸÃ Â¿Ã«Ã¡Ã¶Ã¤Â«Ã›Â¦\r
+kuan   Â¿Ã®Â¿Ã­Ã·Ã…\r
+kuang  Â¿Ã¶Â¿Ã±Â¿Ã³Â¿Ã²Â¿ÃµÂ¿Ã´Â¿Ã°Â¿Ã¯ÃŸÃ‘Ú÷Ú²ÞÅÚ¿ÛÛæþêÜ\r
+kui    Â¿Ã·Ã€Â¢Ã€Â£Â¿ÃºÂ¿Ã½Ã€Â¡Ã®Â¥Â¿Ã¸Ã¥Ã“¿û¿üØÑ¿þà°ñù¿ùظÙçóñà­ã¦êÒÚóÃÞòñã´ÞñõÃ\r
+kun    Ã€Â§Ã€Â¥Ã€Â¦Ã€Â¤Ã¶Ã¯Ã£Â§Ã·Ã•Ã¯Â¿ÃµÂ«Ã£Ãçû\r
+kuo    Ã€Â¨Ã€Â«Ã€Â©Ã€ÂªÃ¨Ã©Ã²Ã’\r
+la     Ã€Â­Ã€Â²Ã€Â±Ã€Â°Ã€Â®Ã€Â¬Ã€Â¯Ã˜Ãååê¹ðøíÇ\r
+lai    Ã€Â´Ã€ÂµÃ€Â³Ã­Ã¹Ã±Â®Ã´Â¥Ã¡Ã¢Ã¤ÂµÃªÃ£Ã¯ÂªÃ¡Ãäþ\r
+lan    Ã€Â¼Ã€Â¶Ã€Â¸Ã€ÃƒÃ€ÃÀÀÀÄÀ¹ÀºÀ¿À½é­À·ÀÂìµá°À»ñÜïçî½À¾äí\r
+lang   Ã€Ã‹Ã€Ã‡Ã€ÃŠÃ€Ã‰Ã€ÃˆÃ€Ã…òëÀÆà¥Ã¹ï¶ïüãÃÃõ\r
+lao    Ã€ÃÀÃÀÎÀÌÀÑÀÃÃÊßëÀÓÀÒÀÔáÀðìõ²ï©èáîîñì\r
+le     ÃËÀÖÀÕÀßß·ãî÷¦Øì\r
+lei    Ã€Ã Ã€Ã¡Ã€Ã›Ã€Ã—ÀÙÀÃÀÚÀÞÀßÀÜÙúÚ³ÀØàÃéÛæÃçÃõªñç\r
+leng   Ã€Ã¤Ã£Â¶Ã€Ã£Ã€Ã¢ÃœÂ¨\r
+li     Ã€Ã¯Ã€Ã­Ã¦ÀûâÀîÀúÀëÀýÀñÀöÀøÀèÀ÷çÀòèóÒãÀþÀìÀõÀêÀæÃ¥ÀôäÀéÀåÀçö¨î¾Ã°ìåÀðÙµíÂÞ¼Ù³òÛ÷ó۪áèÀåÎæ²îºæêÀó÷¯à¬ð¿æËó»Øªöâã¦ÛÞÜÂÀù޺߿à¦áûäàå¢èÃéöÃñÀüçÊðÃðßòÃï®óöôÃõÈõ·\r
+lia    Ã©\r
+lian   ÃªÃ¬Ã³Ã·ÃµÃ¯Ã«Ã®Ã¶Ã±Ã´Ã²Ã°Ã­éççöé¬ñÃñÃó¹öãå¥ì¡äòÃüÞÆ\r
+liang  Ã½Ã¿Ã¼ÃÃþúéùøÃÂûÃÀõÔùܮ÷Ëé£ö¦\r
+liao   ÃËÃÃÃÄÃÆÃÉÃÃ…ÃÃŽÃÈÃÃÃÊÃÃÃÌçÔÃÇå¼àÚîÉâ²ðÓÞ¤ÞÃ\r
+lie    ÃÃÃÃ’ÃÑÃÓÃÔßÖôóÙýä£ÞæÛøõñ÷à\r
+lin    ÃÖÃÙÃÚÃÕÃÃœÃØ÷ëÃÃÃßÃÛÃ×õïÃÞá×ê¥éÃåàôÔÃþãÃî¬ßøì¢âÞ\r
+ling   ÃìÃîÃíÃéÃãÃäÃèÃáÃÃ¥ÃêÃëÃàÃæñöàòÀâÃâôáÜßê²èùç±ßÊèÚöìÛ¹ãöÃçòÈ\r
+liu    ÃùÃôÃ÷½ÃõÃïÃøµÃöÃñä¯ÃòÃðåÞÃóïÖæòç¸ï³ì¼ìÖöÌðÒ\r
+long   Ãú¡ÃýëÊ£ÃüÃû¢ççÃþ¤ñªÜ×èÃãñÛâíÃ\r
+lou    Ã‚¥ÂªÂ©Â§à¶Â¨Ùæ÷Ãò÷ïÎÃäáÃñïðü\r
+lu     Ã‚·Â½Â¼Â¬Â¶Â³Â¯Â¹ÂµÂ®Â«àà­»ê¤Â±Â²Â´ãò¸äõ¾óüéñðØ°ºöÔߣèÓÛäëÃÞ¤äËðµåÖè´éûéÖïåôµëª\r
+lv     Ã‚ÉÂÃÂÌÂÊÂÇÂÄÂÅÂÂÂÆ¿ÂÀéµÂËÞÛÂÃñÚãÌëöÂÈïù\r
+luan   Ã‚ÒÂÑÂÃÂÎÂÃèïöÇæ®ÂÃð½Ùõ\r
+lue    Ã‚ÔÂÓï²\r
+lun    Ã‚ÛÂÖÂ×ÂÙÂØÂÕàðÂÚ\r
+luo    Ã‚äÂÞÂçÂåÂßÂãÂæÂÜÂÃÂàÂáÞûÀÓÞÛçóÂââ¤ïÃé¡ÙÀÙùÜýñ§ãøäðëáíÑöÃ\r
+m      ß¼\r
+ma     Ã‚íÂðÂèÂëÂéÂîÂïĨÂêÂìó¡ßéè¿áïæÖ\r
+mai    Ã‚òÂôÂóÂñÂõÂöö²Û½Ã¤\r
+man    Ã‚úÂýÂþÂüÂùÂøÂ÷Âûò©Ã¡Ü¬á£òý÷´÷©çÃì×ïÜ\r
+mang   ÃƒÂ¦ÃƒÂ£ÃƒÂ¤ÃƒÂ¢ÃƒÂ¥ÃƒÂ§Ã²Ã¾ÃšÃ¸Ã¤ÃíË\r
+mao    ÃƒÂ«ÃƒÂ°ÃƒÂ¨ÃƒÂ³ÃƒÂ¬ÃƒÂ±ÃƒÂ²ÃƒÂ©ÃƒÂ¯Ã·Ã–îë£è£Ãªí®Ùóíá¹êóó±ã÷êÄÜâì¸òúî¦\r
+me     ÃƒÂ´Ã·Ã¡\r
+mei    ÃƒÂ»ÃƒÃ€ÃƒÂ¿ÃƒÃƒÃƒÂ¼ÃƒÂ·ÃƒÂ½ÃƒÂ¶Ã·ÃˆÃƒÂºÃƒÃùõÃÄÃÂÃÓñÇøîáÒé¹äØâ­ïÑä¼ðÌþ\r
+men    ÃƒÃ‡ÃƒÃ…ÃÆÞÑí¯ìËîÃ\r
+meng   ÃƒÃŽÃƒÃ‰ÃƒÃÃËëüÃÃÃÈÛÂãÂÃÊó·Þ«Ãùíæòìòµô»ô¿ÃÌ\r
+mi     ÃƒÃœÃƒÃ—ÃØÃÔÃÖÃÕÃÙÃÃÃÛÃÒßäÚ×ÃÚÃÓãèåµ÷çÃÑåôôÃØÂìòëßÃÃ÷ãà×ÞÂâ¨ôé\r
+mian   ÃƒÃ¦ÃƒÃ¢ÃƒÃžÃƒÃŸÃƒÃ¥ÃƒÃ ÃƒÃ£Ã«Ã¯ÃƒÃ¡ÃƒÃ¤Ã¤Ããæííö¼äÅ\r
+miao   ÃƒÃ®ÃƒÃ¨ÃƒÃ«ÃƒÃ­ÃƒÃ§ÃƒÃ¬ÃƒÃ©ÃƒÃªÃ§Ã‘íµç¿ß÷íðåãðÅèÂ\r
+mie    ÃƒÃ°ÃƒÃ¯Ã³ÃºÃŸÃ£Ã˜Â¿Ã³Âº\r
+min    ÃƒÃ±ÃƒÃ´ÃƒÃµÃƒÃ¶Ã£Ã½Ã§Ã«ÃƒÃ³ÃƒÃ²Ã£Ã‰ÃœÃ¥Ã¡ÂºÃ§Ã…çäíªö¼÷ª\r
+ming   ÃƒÃ»ÃƒÃ·ÃƒÃ¼ÃƒÃ¹ÃƒÃºÃšÂ¤ÃœÃ¸Ã¤Ã©ÃµÂ¤Ã®Â¨ÃªÃ”Ãø\r
+miu    ÃƒÃ½Ã§Ã‘\r
+mo     Ã„¬ÄªÄ£÷áÄ©Ä¥ÃþĦįĮīĨħݺÙĭĤÃëÄ¢ÜÔâÉÄ¡ºÑÚÓæÆï÷ïÒéâñ¢ñòõöõø\r
+mou    Ã„³Ä±íøçÑöÊßèÙ°òÖ\r
+mu     Ã„¿Ä¸Ä¾Ä»Ä·Ä½ÄÃĹļĺIJĶÄÂÄÀÄ´ãåĵØïÛéÜÙë¤îâ\r
+n      Ã Ã…ßí\r
+na     Ã„ÇÄÃÄØÄÄÄÉÄÈÄÅÞàÄÆïÕëÇñÄ\r
+nai    Ã„ËÄÌÄÎÄÃÄÊܵؾ٦ÃÃèÃ\r
+nan    Ã„ÑÄÃÄÃéªà«àïàîëîòïôö\r
+nang   Ã„ÒàìâÎß­êÙ\r
+nao    Ã„ÔÄÖÄÕÄÓè§Ä×ßÎâ®îóØ«íÃòÃÛñ\r
+ne     Ã„ØÚ«\r
+nei    Ã„ÚÄÙ\r
+nen    Ã„Ûí¥\r
+neng   Ã„Ãœ\r
+ng     Ã Ã…ßí\r
+ni     Ã„ãÄØÄáÄàÄæÄßÄäÄâÄåÄÃÄÞêÇÄçì»íþöòÛèâ¥âõÙ£ìòí«îê\r
+nian   Ã„êÄîØ¥Õ³ÄëÄíÄèÄìÄéð¤öóöÓéýÛþ\r
+niang  Ã„ïÄð\r
+niao   Ã„ñÄòôÃæÕÜàëå\r
+nie    Ã„óÄùÄôÄõõæà¿ÄöÄ÷ÄøØ¿Úíò¨ô«ÞÃ\r
+nin    Ã„úí¥\r
+ning   Ã„þÄýÅ¡Å¢ßÌÄüÄûØúñ÷ÜÑå¸\r
+niu    Ã…£Å¦Å¤æ¤Å¥ÞÖâîáð\r
+nong   Ã…©ÅªÅ¨Ù¯ßæŧ\r
+nou    Ã±Ã±\r
+nu     Ã…­Å¬Å«åóæåæÀæÛ\r
+nv     Ã…®îÃí¤ô¬\r
+nuan   Å¯\r
+nue    Å°Å±\r
+nuo    Ã…µÅ²Å³Å´ßöÞùÙÃï»\r
+o      Ã…¶àÞà¸\r
+ou     Ã…·Å¼Å¹Å»Å¸Ú©ê±ÅºÅ½ñîâæ\r
+pa     Ã…ÂÅÀÅðÇſžÅÃÃâ°ÒèËîÙóá\r
+pai    Ã…ÉÅÅÅÆÅÄÅÇÅÈÙ½Ãåßß\r
+pan    Ã…ÃÅÌÅÎÅÑÅÃÅËÅÊÞÕõçÅÃãÃó´ñáñÈãú\r
+pang   Ã…ÔÅÓÅÖÅÒ°ò°õáÃó¦äèÅÕåÌ\r
+pao    Ã…ÜÅÚÅ×ÅÃÅÛÅÙÅØáóðåëãâÒÞË\r
+pei    Ã…äÅãÅàÅåÅâÅæÅáÅÞÅßõ¬ïÂàÎàúì·ö¬\r
+pen    Ã…èÅçäÔ\r
+peng   Ã…óÅôÅöÅíÅõÅïÅîÅòÅëÅêÅñÅéÅìâñÜ¡ó²àØÅð\r
+pi     Ã…ú·ñƤƨÅûÆ£±ÙơƢƥƧÅüÆ©Å÷Ʀñ±ÅýÅþÅùàèæÇÛ¯ñÔç¢Ø§Ü±ÛÜò·òçõùÚéÚðÅøØòÛýߨßÃâÃÚüñâÜÅèÃî¼äÄîëê¶î¢\r
+pian   Â±Ã£Ã†Â¬Ã†ÂªÃ†Â«Ã†Â­Ã´Ã¦Â±Ã¢ÃªÃºÃšÃ’õäæéçÂëÃ\r
+piao   Ã†Â±Ã†Â¯Ã†Â®Ã†Â°Ã¦ÃŽÃ®Â©Ã¦Ã´Ã Ã‘ØâóªçÎóéè\r
+pie    Ã†Â²Ã†Â³Ã«Â­Ã˜Â¯ÃœÃ–\r
+pin    Ã†Â·Ã†Â¶Ã†Â´Ã†ÂµÃ†Â¸ÃžÃ•Ã¦Â°Ã¦Ã‰Ã©Â¯Ã²Â­ÃªÃ²\r
+ping   Ã†Â½Ã†Ã€Ã†Â¿Ã†Â¾Ã†Â¼Ã†Â¹Ã†ÃƻƺèÒæ³Ù·öÒ\r
+po     Ã†Ã†Ã†ÃˆÃ†Ã„ÆÅƲ´ÆÃÆÇÆÉçêØÃê·îÞóÃîÇÚéãøÛ¶ð«\r
+pou    Ã†ÃŠÃ™Ã¶ÃžÃ¥\r
+pu     Ã†Ã•Ã†ÃŒÃ†Ã‹Ã†Ã“Æ×ÆÖÆÃÆÑÆø¬ÆÙÆÃäßÙéè±àÛÆÔÆÒë«ïèõëïäå§ÆÎ\r
+qi     Ã†Ã°Ã†Ã¤Ã†ÃšÃ†Ã¸Ã†ÃŸÃ†Ã¦Ã†ÃžÃ†Ã³Ã†Ã·Ã†Ã»Ã†Ã¥Ã†Ã«Ã†Ã¬Ã†ÃºÃ†Ã´Ã†Ã¯Ã†Ã›Ã†Ã§Ã†Ã±Ã†ÃÆàÆüÆõç÷ÆòÆíÆáÆùÆêÆÜÆãì÷ÆéÆîçùõèÆöí¬ä¿ãàؽç²ÆýàÒáªÃÂÙ¹è½ÜÎÜùêÈéÊñýÜ»á¨ì¥èçôìýòÓòàôë÷¢÷èÞ­ÆâØÃæëÃÃÆèÛßíÓ\r
+qia    Ã‡Â¡Ã‡Â¢Ã†Ã¾Ã™Â¤Ã±ÃŠÃÖ÷Ä\r
+qian   Ã‡Â°Ã‡Â®Ã‡Â§Ã‡Â©Ã‡Â·Ã‡Â£Ã‡Â³Ã‡Â±Ã‡Â¨Ã‡Â«Ã‡Â²Ã‡Â¸ÃËǶǬǴǦò¯Ç¯å¹Ù»ÇµÇ­Þçã¥Ü·ç×í©Ã¡ÜÃÚäÙÃåºå½ëÉǥǪêùîÔá©óé÷ÜǤã»èý\r
+qiang  Ã‡Â¹Ã‡Â½Ã‡Ã€Ã‡Â»Ã‡ÂºÃ¯ÃõÄǼǾãÞñßéÉìÃòÞæÃïºê¨ôÇïê\r
+qiao   Ã‡Ã…ÇÄÇÇÇÉÇÈÇÆÇÃÇÌÇÎÇÃÇÃÇÂÇËõÎã¾éÔÇÊÇÃÚ½ã¸ÚÛÜñá½çØíÃ÷³Øä\r
+qie    Ã‡ÃÇÒÇÔÇÓÇÑôòæªÆöã«Ù¤ïÆêüÛ§óæã»\r
+qin    Ã‡Ã—ÇÕÇÙÇÖÇØÇÚÇÛÇÜÇÞñûÇßÇÃàßÞìéÕï·ÜËàºòûôÀâÛäÚßÄ\r
+qing   Ã‡Ã©Ã‡Ã«Ã‡Ã Ã‡Ã¥Ã‡Ã¡Ã‡Ã§Ã‡Ã¬Ã‡Ã£Ã‡Ã¤Ã‡Ã¦Ã‡ÃªÃ‡Ã¢Ã³Ã€Ã²ÃŸÃ­Ã Ã¶Â¥ÃœÃœÃ ÃµÃ©Ã‘÷ôöëÇèóäôì\r
+qiong  Ã‡Ã®Ã‡Ã­Ã±Â·ÃœÃ¤ÃšÃ¶Ã²Ã‹Ã³ÃŒÃµÂ¼Ã¶Ã†\r
+qiu    Ã‡Ã³Ã‡Ã²Ã‡Ã¯Ã‡Ã±Ã‡Ã´Ã‡Ã°Ã‡ÃµÃ²Ã‡Ã´ÃƒÃ™Â´Ã²Â°Ã¶ÃºÃ¥ÃåÙêäÇöé±áìäÃòøÛÃ÷üôÜ\r
+qu     ÃˆÂ¥ÃˆÂ¡Ã‡Ã¸Ã‡ÃºÃˆÂ¤Ã‡Ã¼Ã‡Ã·Ã‡Ã½Ã‡Ã¾Ã‡Ã»ÃˆÂ¢ÃªÃ¯Ã¶Ã„á«ÃçòÃáéÇùñ³ôðãÖìîíáð¶Ú°ó½Û¾Þ¡Þ¾È£ÜÄ÷ñè³ë¬ëÔ\r
+quan   ÃˆÂ«ÃˆÂ¨ÃˆÂ¦ÃˆÂ°ÃˆÂªÃˆÂ¯ÃˆÂ­ÃˆÂ®ÃšÂ¹ÃˆÂ§Ã²Ã©Ã§Â¹ÃœÃµÃ®Ã½ÃˆÂ¬Ã·ÃœÃ©ÃºÃ£ÂªÃ®Â°ÃˆÂ©Ã³Ãœ\r
+que    ÃˆÂ´ÃˆÂ·ÃˆÂ±ÃˆÂ¸ÃˆÂ³ÃˆÂ¶ÃˆÂµÃ£Ã—ãÚȲí¨\r
+qun    ÃˆÂºÃˆÂ¹Ã¥Ã’֌\r
+ran    ÃˆÂ»ÃˆÂ¾ÃˆÂ¼ÃˆÂ½Ã·Ã—ÜÛòÅ\r
+rang   ÃˆÃƒÃˆÃ‚ÈÃÈÀÈ¿ð¦ìü\r
+rao    ÃˆÃ…ÈÆÈÄæ¬èãÜé\r
+re     ÃˆÃˆÃˆÃ‡ÃŸÃ¶\r
+ren    ÃˆÃ‹ÃˆÃŽÃˆÃÈÌÈÊÈÃÈÃÈÒâ¿ÈÉØðïþÃØÜóÈÑéíñÅ\r
+reng   ÃˆÃ”ÈÓ\r
+ri     ÃˆÃ•\r
+rong   ÃˆÃÈÙÈÚÈØÈÜÈÞÈÛéÅÈÖáÉÈ×ÈßëÀòîáõ\r
+rou    ÃˆÃ¢ÃˆÃ¡ÃˆÃ ÃµÃ¥Ã·Â·Ã´Ã›\r
+ru     ÃˆÃ§ÃˆÃ«ÃˆÃ¨ÃˆÃ¥ÃˆÃ©ÃˆÃªÃˆÃ¬Ã Ã©ÃˆÃ£Ã¥Â¦ÃˆÃ¤ÃˆÃ¦Ã§ÃˆÃ±Ã Ã²Â¬ÃžÂ¸Ãêä²äáï¨\r
+ruan   ÃˆÃ­ÃˆÃ®Ã«Ãƒ\r
+rui    ÃˆÃ°ÃˆÃ±ÃœÃ‡Ã®Â£ÃžÂ¨Ã¨Ã„Èïò¸\r
+run    ÃˆÃ³ÃˆÃ²\r
+ruo    ÃˆÃ´ÃˆÃµÃ™Â¼Ã³Ã¨\r
+sa     ÃˆÃ·ÃˆÃ¶ÃˆÃ¸Ã˜Â¦Ã˜Ã­Ã¬ÂªÃªÃ½Ã«Ã›\r
+sai    ÃˆÃ¼ÃˆÃ»ÃˆÃ¹Ã Ã§ÃˆÃº\r
+san    ÃˆÃ½Ã‰Â¢Ã‰Â¡ÃˆÃ¾Ã«Â§Ã¢ÃŒÃ´Ã–ö±\r
+sang   Ã‰Â¥Ã‰Â£Ã‰Â¤ÃžÃºÃ­ÃŸÃ²Âª\r
+sao    Ã‰Â¨Ã‰Â§Ã‰Â©Ã‰Ã’ëýɦçØçÒöþÜ£ðþ\r
+se     Ã‰Â«ÃˆÃ»Ã‰Â¬Ã‰ÂªÃ˜Ã„ï¤ð£\r
+sen    É­\r
+seng   É®\r
+sha    Ã‰Â±Ã‰Â³Ã‰Â¶Ã‰ÂµÃÃɲɴɯɷɰö®àÄêýì¦öèßþððôÄï¡\r
+shai   Ã‰Â¹Ã‰Â¸ÃµÂ§\r
+shan   Ã‰Â½Ã‰Ã†Ã‰ÃÉÀɾɿÉÈÉÂɺɼÉòôÉÅÕ¤Ú¨õÇÉÇæ©ÉÄäúÉÉæÓµ§ëþæóÜÃÛïØßîÌÛ·ô®É»÷ÔðÞóµ÷­\r
+shang  Ã‰ÃÉÌÉËÉÃÉÃéäÉÑÉÎõüìØÉÊç´Ûð\r
+shao   Ã‰Ã™Ã‰ÃœÃ‰Ã•Ã‰Ã”É×ÉÚÉÛÉÒÉÓÉØÜæÇÊäûÛ¿è¼ÉÖòÙóâô¹\r
+she    Ã‰Ã§Ã‰Ã¨Ã‰Ã¡Ã‰Ã¦Ã‰Ã¤Ã‰Ã£Ã‰Ã Ã‰ÃŸÃ‰ÃÉâÉåÙÜÉÞ÷êî´ØÇäÜì¨â¦\r
+shei   Ë­\r
+shen   ÃŠÂ²Ã‰Ã­Ã‰Ã®Ã‰Ã±Â²ÃŽÃ‰ÃµÃ‰ÃªÃ‰Ã³Ã‰Ã²Ã‰Ã¬Ã‰Ã·Ã‰Ã¸Ã‰Ã°Ã‰Ã¶Ã‰Ã«Ã‰Ã´Ã·ò×ÃØÉïäÉïòÚ·ÉéôÖÚÅé©ëÃßÓ\r
+sheng  Ã‰ÃºÃ‰Ã¹ÃŠÂ¡ÃŠÂ¤Ã‰Ã½ÃŠÂ¥ÃŠÂ¢ÃŠÂ£Ã‰Ã¼Ã‰Ã¾Ã‰Ã»Ã³ÃäÅíòáÓêÉ\r
+shi    ÃŠÃ‡ÃŠÂ±ÃŠÂ®ÃŠÃ‚ʵʹÊÀÊÃʶʼʿʦʫʽʧʷÊÓʾʳÊÒÊÆÊÔʯÊÃÊ©ÊÊÊÃÊ»ÊÎʬʰÊÅʪÊÄʨÊÈÊ´ÃêʺÊ̳×ÖÅÊËÊÑÊÃéøʸÊÉÊÃÊ­ß±ÃéÛõêìÂÚÖöåõ¹êÛîæó§óÂóßöõõ§\r
+shou   ÃŠÃ–ÊÜÊÕÊ×ÊÚÊØÊÛÊÃÊÙÊÞá÷ç·ô¼\r
+shu    ÃŠÃ©ÃŠÃ½ÃŠÃµÃŠÃ´ÃŠÃ¤ÃŠÃ·ÃŠÃ¶ÃŠÃ¬ÃŠÃ¸ÃŠÃ°ÃŠÃ¢ÃŠÃ¦ÃŠÃ¥ÃŠÃ³ÃŠÃ¨ÃŠÃ§ÃŠÃ£ÃŠÃ­ÃŠÃ¡ÃŠÃ®ÃŠÃºÃŠÃ±Ã‹Â¡ÃŠÃ»ÃŠÃ«ÃŠÃ¾ÃŠÃ Ã“áÊêÊòÊßÊïÙ¿ÊüÊùÛÓäøæ­ç£ïøë¨ì¯ñâÃÄØ­ãðÞóëò\r
+shua   Ã‹Â¢Ã‹Â£Ã Â§\r
+shuai  Ã‚Ê˥ˤ˦˧ó°\r
+shuan  Ã¤ÃŒÃ‹Â¨Ã‹Â©Ã£Ã…\r
+shuang Ã‹Â«Ã‹Â¬Ã‹ÂªÃ¦Ã—ãñ\r
+shui   Ë®Ë­Ë°Ë¯\r
+shun   Ë³Ë´Ë²Ë±\r
+shuo   Ã‹ÂµÃ‹Â·Ã‹Â¶Ã‹Â¸Ã®Ã¥Ã¥Ã¹ÃôéÃÞ÷\r
+si     Ã‹Ã„ËÀ˼˹˾ËÆ˽˿ËÂ˺ËÃØËË»ËÅËÇËÃìëËÈæáð¸Ù¹ãáãôÛÌÙîòÃßÃæ¦äùçÃñêóÓïÈ\r
+song   Ã‹ÃËÉËÎËÃËÊËÌËÃã¤ËËâìäÃÿáÂáÔÚ¡ñµ\r
+sou    Ã‹Ã‘ËÒËÔËÓâÈÞ´àÕÛÅà²äÑì¬ïËî¤òô\r
+su     Ã‹Ã•Ã‹ÃŸÃ‹Ã™Ã‹Ã˜Ã‹Ã—ËàËÞËÜöÕËÃËÖËÚóùÙíà¼ÚÕËÛãºä³Ãøö¢\r
+suan   Ã‹Ã£Ã‹Ã¡Ã‹Ã¢Ã¢Â¡\r
+sui    Ã‹ÃªÃ‹Ã¦Ã‹Ã¤Ã‹Ã©Ã‹Ã¬Ã‹Ã®Ã‹Ã­Ã‹Ã¨Ã¥Ã¤Ã‹Ã«Ã‹Ã¥Ã‹Ã§Ã®Â¡Ã´ìÃÚÇíõå¡\r
+sun    Ã‹Ã¯Ã‹Ã°Ã‹Ã±Ã¥áøâ¸é¾öÀ\r
+suo    Ã‹Ã¹Ã‹Ã·Ã‹ÃµÃ‹Ã¸Ã‹Ã¶Ã‹Ã³Ã Ã‚Ëôêýæ¶íüßïàÊËòôÈèø\r
+ta     Ã‹Ã»Ã‹Ã½Ã‹Ã¼ÃŒÂ¤Ã‹Ã¾Ã‹ÃºÃ©Â½Ã ÂªÃŒÂ£Ã­Â³Ã¥ÃÌ¢÷£ãËîèõÃäðäâÌ¡\r
+tai    ÃŒÂ«ÃŒÂ¨ÃŒÂ¬ÃŒÂ©ÃŒÂ§ÃŒÂ¥ÃŒÂ­ÃŒÂ¦ÃŸÂ¾Ã¶Ã˜Ã›Â¢ÃžÂ·ÃŒÂªÃ¦Ã¦Ã¬Ã†ÃµÃŒÃ«Ã„îÑ\r
+tan    ÃŒÂ¸ÃŒÂ½ÂµÂ¯ÃŒÂ¹ÃŒÂ¾ÃŒÂ³ÃŒÂ¯ÃŒÂ°ÃŒÂ²ÃŒÂºÃŒÂ·ÃŒÂ¶ÃŒÂ±ÃŒÂ¿Ã±Ã»ÃŒÂµÃ¬Ã¾ÃŒÂ®ÃŒÂ»ÃŒÂ¼Ã¥Â£ÃŒÂ´ÃªÂ¼Ã¯Ã¢Ã›Â°Ã¯Ã„îã\r
+tang   ÃŒÃƒÃŒÃ†ÃŒÃ€ÃŒÃ‰ÃŒÃ‡ÃŒÃ‹ÃŒÃˆÃŒÃŒÃŒÃŠÃŒÃ…ÃŒÃÌÄÌÂäçó«è©éÌó¥ï¦õ±ïÛñíâ¼ÙÎàûôÊ\r
+tao    ÃŒÃ–Ì×ÌÓÌÎÌÃÌÕÌÒÌÔÌÃÌÑìâßûèº÷Òä¬ÌÃØ»\r
+te     ÃŒÃ˜Ã¬Ã½ÃŸÂ¯Ã­Â«Ã¯Â«\r
+tei    ß¯\r
+teng   ÃŒÃšÃŒÃ›ÃŒÃ™ÃŒÃœÃ«Ã¸\r
+ti     ÃŒÃ¥ÃŒÃ¡ÃŒÃ¢ÃŒÃ¦ÃŒÃŸÃŒÃÌäÌéÌãÌÞÌêÌèÌëÌçã©õ®ç¾ðÃÌàÜèÙÃç°åÑñÓ\r
+tian   ÃŒÃ¬ÃŒÃ¯ÃŒÃ®ÃŒÃ°ÃŒÃ­ÃŒÃ³ÃŒÃ²ÃŒÃ±Ã®Ã¤Ã£Ã™Ã®Â±Ã£ÃƒÃ©Ã¥ÃžÃ\r
+tiao   ÃŒÃµÂµÃ·ÃŒÃ¸ÃŒÃ´ÃŒÃ¶ÃŒÃ·Ã¶Ã¦Ã™Â¬ÃœÃ¦Ã±Â»Ã·Ã˜Ã´ÃóÔö¶ìöòè\r
+tie    ÃŒÃºÃŒÃ¹ÃŒÃ»Ã·Ã‘ÃÆ\r
+ting   ÃŒÃ½Ã£Ã¥ÌüæäæÃâçî®öªÃ¡îúòÑÜðèèÃãÌþ\r
+tong   Ã¬Ã¨Ã³Ã´Ã¯Ã®Ã²Ã­Ã°Ã±Ã©Ã«Ù¡âú궲¶±íÅàÌÙÚÛíÜíá¼äü\r
+tou    Ã·Ã¶ÃµÃ¸î×÷»\r
+tu     ÃÃûüþýÃÀÿÃÂÃÃúùñõ©îÊÃËÜ¢\r
+tuan   ÃÃ…ÃÄÞÒî¶åè\r
+tui    ÃÆÃËÃÈÃÊÃÇÃÉ߯ìÕ\r
+tun    ÃÃŒÃÃâ½ÃÊÃζÚëàêÕÙÛ\r
+tuo    ÃÃÃÑÃÃÃ×ÃØÃÓÃÕÃÙÃÖíÈÃÔãûõÉÛçÃÒرö¾éÒÙ¢âÕîèõ¢èÞèØóê\r
+wa     ÃßÃÚÃàÃÞÃÛ°¼æ´ÃÃœÃÃØôëð\r
+wai    ÃâÃááË\r
+wan    ÃòÃêÃíÃÃ¥ÃæÃëÃäÃìÃçÃóÃñÃïÃðÃèòêøîµØàÃãÃîæýçþëäÃéܹÃÒçº\r
+wang   ÃûÃõÃùÃøÃüÃöÃôÃúÃ÷Ãýã¯ØèÞÌéþ÷Ã\r
+wei    ÃŽÂªÃŽÂ»ÃŽÂ´ÃŽÂ¯ÃŽÂ¬ÃŽÂ¶ÃŽÂ§ÃŽÃ€Ãþ΢ΰνΨΣοβΥκçâεαηθιì¿Î¤Î©Î¡Î³Î®æ¸Î­Î¾á¡Î¼â«ÙËÞ±ðôâ¬åÔàøè¸ìÃöÛΦΫÚñÛ×àíÚÃÚóáËä¢ÃÚáÃãÇãíä¶ôºê¦\r
+wen    ÃŽÃ„ÎÊÎÅÎÂÎÈÎÇÎÆÎÃö©ÎÉÎÃãëØØãÓè·\r
+weng   ÃŽÃŒÃŽÃÎËÃîÞ³\r
+wo     ÃŽÃ’ÎÕÎÑÎÔä×ÎÖÎÃÎÓÎÃá¢à¸ÙÃÎÎëë¿íÒö»\r
+wu     ÃŽÃžÃŽÃ¥ÃŽÃ¯ÃŽÃ±ÃŽÃ¤ÃŽÃ§ÃŽÃ¨Ã¬Â¶ÃŽÃ³Â¶Ã±ÃŽÃ¢ÃŽÃÎéÎòÎáÎÛÎÚÎíÎêÎæÎ×ÎãÎØÎÜÎðÎàÎëÎìØ£ßíÎîÎßðÃÎÙåüðíðÄâèå»æðÚùêõ÷ùÛØä´ØõÚãÜÌâÃæÄâäè»ìÉòÚåÃöÈ\r
+xi     ÃŽÃ·ÃµÃ¢Ã£Ã²Ã¯Ã°Ã¸Ã·ÎüôçáäÎöæÎþîÎôÎõÙâêöÎûÎýÎúñéØèåۭììûêØÞÉôËõèßñäÀæÒðªÃ«áãÜççôìäéôâó¬åïíä»ÙÒñ¶òáÚôêêó£Ã³Ã¾ÃßÃûô¸ÎùôÑÎøõµì¤÷ûì¨â¾ãÒìùôª\r
+xia    ÃÂÃÄÃÅÿÃÃÃÀÃÃüùþú»£Ã½åÚû÷ïè¦ßÈáòèÔíÌðýóÃ\r
+xian   ÃÖÃÈÃÔÃßÃÕÃÞÃØÃÊÃ×ÃÃÃÃœÃÃÃÃÃÉÃÓÃÃŒÃÛÃÆÃÃ’ÃËæµÃÃŽÃÚÃÑÃÃÃÙõÃåßá­áýò¹óÚõÑòÃÇðÂðïóë¯ììôÌÙþÞºõ£ÜÈìÞö±\r
+xiang  ÃëÃàÃòÃóÃãÃçÃñÃìÃîÃí½µÃäÃêÃéÃïÃáÃæÃðÃèÃâ÷ÃÃåâÃæøÃÙâÔößܼç½ó­\r
+xiao   Ã¡Ã¦Ã£ÃûçÃþÃúäìäÃôâÃüÃ÷ÃùÃ¥åÃÃõÃöÃýÃøèÉæçóïóãßØèÕç¯÷ÌòÙáÅ\r
+xie    Ã©Ã´Ã»Ã­Ã¬Ã¯Ã±Ã¹Ã²ÃªÃ³Ã°ÃµÃ¼Ã¶Ã®Ã¸ÃºÙô÷ÙÉåâé¿ß¢Ã¨å¬Ã«ò¡ÛÄÞ¯ÛÆõóçÓâ³ç¥âÃéÇäÃ\r
+xin    ÃÄÃÂÃÃ…ÃÀÃÃýܰöÎþÃÆê¿ÃÃÿì§ïâض\r
+xing   ÃÃÃÔÃÃŽÃËÃÇÃÃÃÕÃÃ’ÃÃŒÃÑÃÈÃÓã¬ÃÊÃÃÃÉÜôß©Üþâ¼íÊÚê\r
+xiong  ÃÛÃÖÃØÃ×ÃÃœÃÙÃÚܺ\r
+xiu    ÃÞÃÃÃãÃäËÞ³ôÃßÃÃ¥ÃàÃâÃáßÃõ÷÷ÛâÊâÓð¼á¶äå\r
+xu     ÃíÃøÃèÃëÃìÃòÃéÃ÷ÓõÃîÃðÃóÃêÃôÃõä°ÃæÃñÃöèòÃçÚ¼ñãÃïìãí¹íìôÚõ¯çïÛÃäªäÓÛ×Þ£\r
+xuan   Ã‘¡ÃûÃýÃüȯÃúÃùÃþìÅäÖѤѣÃæäöêÑè¯ÚÎîçÙØðçãùìÓé¸Ñ¢íÛÞïïà\r
+xue    Ã‘§ÑªÑ©Ã÷ѨÚÊѥѦõ½àåí´÷¨\r
+xun    Ã‘°Ñ¯ÑµÑ¸Ñ¶Ñ²Ñ·Ñ­Ñ®Ñ¬Ñ«Ñ±»çѳõ¸ÙãáßÛ÷Ü÷á¾ä­Þ¹Ñ´Û¨êÖñ¿âþâ´ä±öàÞ¦¿£\r
+ya     Ã‘ÇѹÑÅÑÀѽѺÑÄÑÈÑ»ÑÆѼÑÂѾѿÑÃÔþðéíýæ«ÑÃØóñâá¬çðÛëÞëåÂèâë²í¼\r
+yan    Ã‘ÛÑÔÑÃÑÃÑÃÑÌÑéÑÓÑØÑÚÑÕÑáÑ×ÑàÑÖÑçÑÎÑÊÑÒÑãÑæÑÞÑÉÑÃÑÜÑËÑÙÑèÙ²éÜÑÑÑåëçìÃêÌÑäåûÑâæÌëÙäÎóÛÑßØÃ÷Ã÷úܾÙÈ÷ÊãÆáÃØÉØßâûãÕÙðÛ±çüî»Û³ÚÃäÙÚç÷üõ¦ÃÃŽ\r
+yang   Ã‘ùÑóÑôÑëÑîÑøÑïÑöÑòÑ÷ÑúãóÑõÑìÑíÑêí¦ÑñìÈÑð÷±âóáàì¾òÕ\r
+yao    Ã’ªÒ¡Ò©Ò«Ò£ÑûÑüÒ¦Ò§Ò¢Ò¥ÑþҤزëÈÑýߺԿ½ÄèÃñºðÎê×Ò¨ï¢çÛسáæôí÷¥çòé÷áÊ\r
+ye     Ã’²ÒµÒ¹Ò¯Ò¶Ò°Ò³ÒºÒ®ÑÊҷקÞÞÒ­ìÇÒ±Ò¬Ò´Ò¸ÚËÚþØÌêÊîô\r
+yi     Ã’»ÒÔÒâÒÑÒåÒéÒ½Ò×ÒÂÒÕÒÀÒëÒÆÒìÒæÒàÒÚÒÉÒÅÒäÒËÒÎÒÃÒÇÒêÒÖÒíÒÓÒÛ°¬ÒÒÒçÒãÉßÒáÒÃÒÌÒÄéóâùÒÃÞÄÒÃÒîÒÃÒßÒïÒÃß×ØýÞÈìÚêÃäôÒèåÆ߽߮ܲæäßÞÒ¾ì½ÒÙðêÞ²àæï×Ø×ÒÊÒÜçËÒØÒÈâ¢ôàîÆô¯ØæØîôýÙ«ÛüÚ±ÛÃÜèÒ¼ÞÚáÚâÂàÉá»âøã¨Ò¿ì¥éì÷ðÜÓÒÞïîðùñ¯ñ´òæíôôè\r
+yin    Ã’òÒôÒýÓ¡ÒøÒþÒûÒõÒöñ«Ò÷ÒúÒóÒùÒðÒñÒüò¾Ûóà³äÎØ·Û´ë³ö¯Ûßî÷áþßÅâ¹Ü§ö¸ä¦Üáñ¿\r
+ying   Ã“¦Ó¢Ó°ÓªÓ­Ó²Ó³Ó®Ó¯Ó±Ó¥Ó¤Ó¬Ó£Ó¨Ó«âßÓ©ÃÓúó¿å­éºÓ§ò£ÙøðÃçøÜãàÓè¬ÜþÞüÛ«ñ¨ÃöäÞäëëô\r
+yo     Ã“´à¡\r
+yong   Ã“ÃÓÀÓµÓÂÓ¿Ó»Ó¾Ó¹Ó¶Ó½Ù¸ÓºÓÃð®Ó·çßïÞÓ¸ÛÕ÷«÷Óà¯Ü­Ó¼ã¼\r
+you    Ã“ÃÓÖÓÉÓÑÓÎÓÒÓÃÓÅÓÊÓÄÓÈÓÇÓÌÓÆÓ×ÓÕÓÓ÷îØüßÃÓÃèÖöÃìàó÷øÓËØÕéàë»îððàòÄòöÓÔòøôíï٧õå¶òÊÞÌ\r
+yu     Ã“ÚÓëÓïÓýÓàÓöÓüÓêì¶ÓûÔ¤ÓèÓãÓñÓúÓòÓþÓõÓîÔ¢Ô¥ÓÞÓßÖàÓôÓ÷ÓðÓéÔ£ÓäÓíÔ¡âÅÓùÓâÓæÓåÓáÃÇè¤ÓçÔ¦ÓØÞíàôÚÃÓÜÓìÓÙعÓÃØ®ÚÄåýëéÓøóÄÓóæ¥ô§ì£ö¹êìÓÛêÅìÃìÙìÛñ¾òõáÎáüØñÙ¶ô¨àöâ×ÃÃ’Ã։ˋÃå÷ðõñÃö§ðöæúí²îÚðÃðÖòâ\r
+yuan   Ã”±ÔªÔ­ÔºÔ¶Ô¸Ô°Ô´Ô²Ô¹ÔµÔ®Ô©Ô¬Ô¨Ô·Ô³Ô§Ô¯Ô«æÂãäéÚܾë¼ó¢ö½íóà÷ð°óîÜ«ÛùÞòè¥\r
+yue    Ã”ÂÀÖÔ½Ô¼ÔÄÔ¾Ô»ÔÃÔÀÔÃÔ¿ë¾å®èÃéÃÙßîá\r
+yun    Ã”ËÔÆÔÊÔÃÔÎÔÃÔÈÔÌÔÃóÞÜ¿ÔÅÔÉç¡éæã³ëµáñìÙÛ©ã¢êÀè¹ÔÇ\r
+za     Ã”ÓÔúÔÒÕ¦ßÆÔÑÞÙ\r
+zai    Ã”ÚÔÙÔØÔÖ×ÃÔ×ÔÕÔÔáÌçÞ\r
+zan    Ã”ÛÔÞÔÃÔÜô¢ôØè¶ÞÙêÃôõöÉ\r
+zang   Â²Ã˜Ã”àÔáÔßê°ÕàÞÊæà\r
+zao    Ã”çÔìÔâÔãÔèÔîÔêÔëÔäÔæÔíÔïÔéÔåçØßð\r
+ze     Ã”òÔðÔóÔñÕ¦ßõØÆåÅóÃóåô·àýØÓê¾\r
+zei    Ã”ô\r
+zen    Ã”õÚÚ\r
+zeng   Ã”öÔùÔ÷çÕîÀêµï­\r
+zha    Ã•Â¨Ã”úÕ¦Õ©Õ§Õ£ÔüÔýÕ¤ÔþÕ¢Õ¥ÔûÞê×õé«ßî߸աíÄ÷þßåðäòÆ\r
+zhai   Ã•ÂªÃ•Â®Ã•Â¬Ã•Â­Ã•Â«Ã•Â¯ÂµÃ”íÎñ©\r
+zhan   Ã•Â½Ã•Â¹Ã•Â¾Ã•Â¼Ã•Â´Ã•Â¶Ã•Â·Ã•Â³Ã•ÂµÃ•Â¸Ã•Â°Ã•Ã€Ã•ÂºÃ•Â¿Ã•Â²Ã•Â±Ã•Â»ÃšÃžÃžÃ¸Ã¬Â¹\r
+zhang  Â³Â¤Ã•Ã…ÕÂÕÉÕÆÕÇÕÊÕÃÕËÕÃÕÌÕÈÕÃè°ó¯ÕÃÕÎÕÄáÖÛµâ¯Øëá¤æÑ\r
+zhao   Ã—ÅÕÒÕÕÕó¯ÕÔÕÙÕÖÕ×ÕÑÕØÕÓÚ¯îÈßúèþóÉ\r
+zhe    Ã•Ã¢Ã—ÅÕßÕÛÕÜÕãÕÚÕÞéüÚØÕáÕÃñÞðÑÕàíÃß¡òØô÷èÃ\r
+zhen   Ã•Ã¦Ã•Ã³Ã•Ã²Ã•Ã°Ã•Ã«Ã•Ã¤Ã›ÃšÃ•Ã±Ã•Ã¯Ã•Ã­Ã•Ã¥Ã•ÃªÃ•Ã¬ÃªÃ¢Ã•Ã§Ã•Ã©Ã³Ã°Ã•Ã®Ã•Ã¨Ã¨Ã¥Ã§Ã‡Ã®Â³Ã©Ã´Ã«Ã“ð¡ìõä¥äÚÃèé©é»ëÞð²\r
+zheng  Ã•Ã¾Ã•Ã½Ã–¤ÕûÕùÕ÷ÕõÖ£Ö¢ÕöáçÕôÕúóÃÕüï£á¿ÕøÚºöëîÛÖ¡\r
+zhi    Ã–®Ö»ÖªÖÃÖÆÖ±ÖÎÖ¸Ö§Ö¾Ö°ÖÂÖµÖ¯Ö½Ö¹ÖÊÖ´ÖÇÖÃÖ·Ö¦ÖÈÖ²Ö¼ÖÃáçÖÄÖÉÖ¿Ö­ÖÀÖ³Ö¥Ö¨Ö«Ö¬ÖÅÖ¶ÖÃÖ©ÖºÖËÖÌåëÜÆèÎè×õÜèäàùèÙìíéùêÞðëõôØ´éòÛúÚìÛ¤íéâååéæïõ¥ÞýôêõÅëùïôðºëÕòÎõÙìóö£\r
+zhong  Ã–ÃÖÖÖØÖÚÖÕÖÓÖÒÖÔÖ×ÖÙïñõàÖÑÚ£âìô±ó®\r
+zhou   Ã–ÜÖÃÖÞÖàÖÛÖåÖèÖáÖæÖäÖçÖâÖãëÃæûÖßç§æ¨íØßúçô¦ôíôü\r
+zhu    Ã–÷סעÖúÖøÖðÖîÖìפÖé×£ÖíÖþÖñÖóÖöÖùÖòÖýÖêÖõÖëØùÖôÖüä¨ÖïñÒîùóçÖûÜïìÄõîóÃèÌôãä¾äó÷æéÆéÃÜÑÙªðñðæÛ¥ô¶\r
+zhua   ×¥×¦\r
+zhuai  Ã—§àÜ\r
+zhuan  Â´Â«Ã—¨×ª×¬×«×©×­ßùâÃò§\r
+zhuang Ã—°×´×³×¯×²×±´±×®ÞÊÙ×í°\r
+zhui   Ã—·×¹×º×¶×¸ö¿×µã·æíçÄ\r
+zhun   Ã—¼×»ñ¸ëÆ\r
+zhuo   Ã—Å×À׽׿×Ã×Æ×Ã×¾×Çåª×Â×Äí½ïíäÃìÌä·Ù¾ìúÚÂߪ\r
+zi     Ã—Ó×Ô×Ö×Ê×É×Ã×Ì×Ã×ËÖ¨×È×Îè÷×Õ×Ñæ¢í§×ÒÚÑö·ïößÚê¢ïÅíöóÊ÷Ú×ÃÜëõþö¤ç»ñèööáÑêßæÜôÒôô\r
+zong   Ã—Ü×Ú×Ã×Ù×Û×ØôÕ××ÙÌëêèÈ\r
+zou    Ã—ß×à×Þ×áæãöíÚÃÚîÛ¸\r
+zu     Ã—é×ã×å×æ×â×è×ä×çÙÞïßÃÃ\r
+zuan   Ã—¬×ê߬×ëõòçÚ\r
+zui    Ã—î×ï×ì×í¾×õþÞ©\r
+zun    Ã—ð×ñé×÷®ß¤\r
+zuo    Ã—÷×ö×ø×ù×ó×ò×Ã×ôÔä´é×õàÜâôëÑßòóÃÚèìñõ¡\r
index 14bcffb26fe91d1564c6f3858ef1a8d7db87bf88..8ffa462c89602d5d806b3b892a328e9194113b9c 100644 (file)
@@ -48,7 +48,7 @@ BUILT-EMACS = ${dot}${dot}/src/emacs
 buildlisppath=${srcdir}/${dot}${dot}/lisp
 
 # How to run Emacs.
-RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C\
+RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \
        ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
 
 # Subdirectories to be made if ${srcdir} is different from the current
@@ -124,6 +124,7 @@ GREEK=${srcdir}/quail/greek.elc
 RUSSIAN=${srcdir}/quail/cyrillic.elc ${srcdir}/quail/cyril-jis.elc
 
 OTHERS= \
+       ${srcdir}/quail/arabic.elc \
        ${srcdir}/quail/ethiopic.elc \
        ${srcdir}/quail/ipa.elc \
        ${srcdir}/quail/hebrew.elc \
diff --git a/leim/quail/arabic.el b/leim/quail/arabic.el
new file mode 100644 (file)
index 0000000..791ecf7
--- /dev/null
@@ -0,0 +1,116 @@
+;;; arabic.el --- Quail package for inputting Arabic   -*- coding: utf-8;-*-
+
+;; Copyright (C) 2007 Free Software Foundation, Inc.
+;; Written by James Cloos <cloos@jhcloos.com>
+;; Keywords: mule, input method, Arabic
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs 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 General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'quail)
+
+(quail-define-package
+ "arabic" "Arabic" "ع" nil "Arabic input method.
+
+Based on Arabic table in X Keyboard Configuration DB.
+" nil t t t t nil nil nil nil nil t)
+
+;;  Ø°Ù‘ 1! 2@ 3# 4$ 5% 6^ 7& 8* 9) 0( -_ =+
+;;      Ø¶ÙŽ ØµÙ‹ Ø«Ù Ù‚ÙŒ Ùﻹ ØºØ¥ Ø¹` Ù‡Ã· Ø®Ã— Ø­Ø› Ø¬< Ø¯> <>
+;;       Ø´Ù Ø³Ù ÙŠ] Ø¨[ Ù„ï»· Ø§Ø£ ØªÙ€ Ù†ØŒ Ù…/ Ùƒ: Ø·"
+;;        Ø¦~ Ø¡Ù’ Ø¤} Ø±{ ï»»ï»µ Ù‰Ø¢ Ø©' Ùˆ, Ø². Ø¸ØŸ
+;;
+
+(quail-define-rules
+ ("`" ?Ø°)
+
+ ("Q" ?ÙŽ)
+ ("W" ?Ù‹)
+ ("E" ?Ù)
+ ("R" ?ÙŒ)
+ ("T" ?ﻹ)
+ ("Y" ?Ø¥)
+ ("U" ?`)
+ ("I" ?÷)
+ ("O" ?×)
+ ("P" ?Ø›)
+
+ ("A" ?Ù)
+ ("S" ?Ù)
+ ("D" ?])
+ ("F" ?[)
+ ("G" ?ï»·)
+ ("H" ?Ø£)
+ ("J" ?Ù€)
+ ("K" ?ØŒ)
+ ("L" ?/)
+ (";" ?:)
+
+ ("Z" ?~)
+ ("X" ?Ù’)
+ ("C" ?})
+ ("V" ?{)
+ ("B" ?ﻵ)
+ ("N" ?Ø¢)
+ ("M" ?')
+ ("<" ?,)
+ (">" ?.)
+ ("?" ?ØŸ)
+
+ ("`" ?Ø°)
+
+ ("q" ?ض)
+ ("w" ?ص)
+ ("e" ?Ø«)
+ ("r" ?Ù‚)
+ ("t" ?Ù)
+ ("y" ?غ)
+ ("u" ?ع)
+ ("i" ?Ù‡)
+ ("o" ?Ø®)
+ ("p" ?Ø­)
+
+ ("a" ?Ø´)
+ ("s" ?س)
+ ("d" ?ÙŠ)
+ ("f" ?ب)
+ ("g" ?Ù„)
+ ("h" ?ا)
+ ("j" ?ت)
+ ("k" ?Ù†)
+ ("l" ?Ù…)
+ (";" ?Ùƒ)
+
+ ("z" ?ئ)
+ ("x" ?Ø¡)
+ ("c" ?ؤ)
+ ("v" ?ر)
+ ("b" ?ï»»)
+ ("n" ?Ù‰)
+ ("m" ?Ø©)
+ ("," ?Ùˆ)
+ ("." ?ز)
+ ("/" ?ظ)
+
+ ("'" ?Ø·))
+
+;; arch-tag: 7e81e2af-5ea5-417f-bfe7-dfa6fd955cb5
+;;; arabic.el ends here
index bb837c828dc9c6b5b2b76d6244b24160f8e265e1..be749a7647b6c05eb9bb8489ebc23363e7c9aa7d 100644 (file)
 ;; least the top row is different.
 (quail-define-package
  "cyrillic-macedonian" "Cyrillic" "\e,L6\e(BM" nil
- "\e,L)*5@B7\e(B-\e,L#,\e(B keyboard layout based on JUS.I.K1.004 (ISO 8859-5 encoding)"
+ "\e,L)*5@B7\e(B-\e,L#,\e(B keyboard layout based on JUS.I.K1.004"
  nil t t t t nil nil nil nil nil t)
 
 ;;  1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
 
 (quail-define-package
  "cyrillic-serbian" "Cyrillic" "\e,L6\e(BS" nil
- "\e,L)*5@B7\e(B-\e,L"+\e(B keyboard layout based on JUS.I.K1.005 (ISO 8859-5 encoding)"
+ "\e,L)*5@B7\e(B-\e,L"+\e(B keyboard layout based on JUS.I.K1.005"
  nil t t t t nil nil nil nil nil t)
 
 ;;  1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
 ;; Fixme: add GHE_WITH_UPTURN.
 (quail-define-package
  "cyrillic-ukrainian" "Ukrainian" "\e,L6\e(BU" nil
- "\e,L$'5@B7\e(B-\e,L&.\e(B UKRAINIAN (ISO 8859-5 encoding)
+ "\e,L$'5@B7\e(B-\e,L&.\e(B UKRAINIAN
 
 Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
  nil t t t t nil nil nil nil nil t)
@@ -838,7 +838,7 @@ Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
 ;; (mostly Russian) from time to time.
 (quail-define-package
  "cyrillic-yawerty" "Cyrillic" "\e,L6O\e(B" nil
- "\e,LO25@BK\e(B Roman transcription (ISO 8859-5 encoding)
+ "\e,LO25@BK\e(B Roman transcription
 
 This layout is based on Roman transcription by phonemic resemblance.
 When preceded by a '/', the second and the third rows (number key row) change
index 8afd18da520ffa2fe949dc9f5202322f745e7751..92d946a9ff9c35f50f97b24cb78238ba07843de5 100644 (file)
@@ -55,7 +55,7 @@
    (?1 . "\e$(C$>\e(B")
    ;; other bindings
    (?G . "/")  (?T . ";")   (?H . "'")   (?B . "!")  (?Y . "<")
-   (?P . ">")  (?\[ . "\e$(C!8\e(B") (?\[ . "\e$(C!9\e(B") (?{ . "\e$(C!:\e(B") (?{ . "\e$(C!;\e(B")
+   (?P . ">")  (?\[ . "[") (?\[ . "]") (?{ . "{") (?{ . "}")
    (?N . "0")  (?M . "1")   (?< . "2")   (?> . "3")  (?J . "4")
    (?K . "5")  (?L . "6")   (?U . "7")   (?I . "8")  (?O . "9"))
  "\e$(CGQ1[\e(B 3\e$(C9z=D\e(B: Hangul input method
  ("B" ?!)
  ("Y" ?<)
  ("P" ?>)
- ("\[" ?\e$(C!8\e(B)
- ("\]" ?\e$(C!9\e(B)
- ("{" ?\e$(C!:\e(B)
- ("}" ?\e$(C!;\e(B)
+ ("\[" ?[)
+ ("\]" ?])
+ ("{" ?{)
+ ("}" ?})
  ("N" ?0)
  ("M" ?1)
  ("<" ?2)
 
 ;;; arch-tag: 20ea2223-ab47-414f-8e28-d03dc83617b7
 ;;; hangul3.el ends here
+
index 90f84c2df0909299fcb2e76c8159a71ac4210ead..c304757a9f49937043c6fca40305cf95daaf1160 100644 (file)
 ;;; Code:
 
 (require 'quail)
-(require 'devan-util)
 (require 'ind-util)
-
-(defun quail-indian-preceding-char-position (position)
-  "Return the position of preceding composite character."
-  (let (prec-composed)
-    (if (char-valid-p (char-before position)) ;; range o.k.
-        (if (setq prec-composed (find-composition (1- position)))
-            (car prec-composed)
-          (1- position))
-      nil)))
-
-(defvar quail-indian-update-preceding-char nil)
-
-;; Input value ::
-;;   CONTROL-FLAG is integer `n'
-;;     quail-current-key :: keyboard input.
-;;                          Only first `n' can be translated.
-;;     quail-current-str :: corresonding string.
-;;     jobs :: (1) put last (len-n) char to unrread-command-event.
-;;             (2) put translated string to  quail-current-str.
-;;
-;;   CONTROL-FLAG is t (terminate) or nil (proceed the translation)
-;;     quail-current-key :: keyboard input.
-;;     quail-current-str :: corresponding string.
-;;     jobs :: (1) put modified translated string to quail-current-str.
-;;
-;; When non-nil value is returned from quail-translation-update-function,
-;; the quail-current-str is split to characters and put into event queue,
-;; with `compose-last-char' event with composition info at the end.
-
-(defun quail-indian-update-translation (control-flag)
-  ;; make quail-current-str string when possible.
-  (if (char-valid-p quail-current-str)
-      (setq quail-current-str (char-to-string quail-current-str)))
-  ;(message "\n input control-flag=%s, str=%s, key=%s q-ind-upd-prec-char=%s"
-  ;         control-flag quail-current-str quail-current-key
-  ;         quail-indian-update-preceding-char)
-  ;; reset quail-indian-update-preceding-char if it's initial.
-  (if (= (overlay-start quail-overlay) (overlay-end quail-overlay))
-      (setq quail-indian-update-preceding-char nil))
-  ;; Check the preceding character of the quail region.  If the
-  ;; preceding character can be composed with quail-current-str, then
-  ;; grab that preceding character into the quail-current-str and
-  ;; remove that char from the region.
-  (let* (prec-char-position composition-regexp
-         prec-char-str candidate-str match-pos match-end)
-    (when (and quail-current-str
-               (null quail-indian-update-preceding-char)
-               (null input-method-use-echo-area)
-               (null input-method-exit-on-first-char)
-               (setq prec-char-position
-                     (quail-indian-preceding-char-position
-                      (overlay-start quail-overlay)))
-               (setq composition-regexp
-                     (if prec-char-position
-                         (caar (elt composition-function-table
-                                    (char-after prec-char-position)))))
-               (setq prec-char-str
-                     (buffer-substring prec-char-position
-                                       (overlay-start quail-overlay))
-                     candidate-str (concat prec-char-str quail-current-str)
-                     match-pos (string-match composition-regexp candidate-str)
-                     match-end (match-end 0))
-               (> match-end (length prec-char-str)))
-      (setq quail-indian-update-preceding-char prec-char-str)
-      (delete-region prec-char-position
-                     (overlay-start quail-overlay))))
-  (setq quail-current-str
-        (indian-compose-string
-         (concat quail-indian-update-preceding-char
-                 quail-current-str)))
-  (if (numberp control-flag)
-      (setq unread-command-events
-            (string-to-list
-             (substring quail-current-key control-flag))))
-  (when control-flag
-    (setq quail-indian-update-preceding-char nil))
-  ;(message "output control-flag=%s, str=%s, key=%s q-ind-upd-prec-char=%s"
-  ;         control-flag quail-current-str quail-current-key
-  ;         quail-indian-update-preceding-char)
-  control-flag)
+(require 'devan-util)
 
 ;;;
 ;;; Input by transliteration
 (defun quail-define-indian-trans-package (hashtbls pkgname
                                                   lang title doc)
   (funcall 'quail-define-package pkgname lang title t doc
-          nil nil nil nil nil nil t nil
-          'quail-indian-update-translation)
+          nil nil nil nil nil nil t nil)
   (maphash
    (lambda (key val)
      (quail-defrule key (if (= (length val) 1)
 ;;; Input by Inscript
 ;;;
 
-(defun quail-indian-flatten-list (lst)
-  "Flatten the nested LIST so that there would be no innner list."
-  (if (listp lst)
-      (apply 'append (mapcar 'quail-indian-flatten-list lst))
-    (list lst)))
-
-(defun quail-define-inscript-package (char-table key-table pkgname lang title
-                                                docstring)
-  (setq char-table (quail-indian-flatten-list char-table))
-  (setq key-table (quail-indian-flatten-list key-table))
+(defun quail-define-inscript-package (char-tables key-tables pkgname lang
+                                                  title docstring)
   (funcall 'quail-define-package pkgname lang title nil docstring
-          nil nil nil nil nil nil nil nil
-          'quail-indian-update-translation)
-  (dolist (key key-table)
-    (let ((val (pop char-table)))
-      (if (and key val)
-         (quail-defrule
-           (if (char-valid-p key) (char-to-string key) key)
-           (if (stringp val) (vector val) val))))))
+          nil nil nil nil nil nil nil nil)
+  (let (char-table key-table char key)
+    (while (and char-tables key-tables)
+      (setq char-table  (car char-tables)
+            char-tables (cdr char-tables)
+            key-table   (car key-tables)
+            key-tables  (cdr key-tables))
+      (while (and char-table key-table)
+        (setq char       (car char-table)
+              char-table (cdr char-table)
+              key        (car key-table)
+              key-table  (cdr key-table))
+        (if (and (consp char) (consp key))
+            (setq char-table (append char char-table)
+                  key-table  (append key  key-table))
+          (if (and key char)
+              (quail-defrule
+               (if (characterp key) (char-to-string key) key)
+               (if (stringp char)   (vector char) char))))))))
 
 ;;
 
     (;; Inscripts
      ?# ?$ ?^ ?* ?\])))
 
+(defvar inscript-tml-keytable
+  '(
+    (;; VOWELS  (18)
+     (?D nil) (?E ?e) (?F ?f) (?R ?r) (?G ?g) (?T ?t)
+     nil nil nil (?S ?s) (?Z ?z) (?W ?w)
+     nil (?A ?a) (?~ ?`) (?Q ?q) nil nil)
+    (;; CONSONANTS (42)
+     ?k ?K ?i ?I ?U                ;; GRUTTALS
+     ?\; ?: ?p ?P ?}               ;; PALATALS
+     ?' ?\" ?\[ ?{ ?C              ;; CEREBRALS
+     ?l ?L ?o ?O ?v ?V             ;; DENTALS
+     ?h ?H ?y ?Y ?c                ;; LABIALS
+     ?/ ?j ?J ?n ?N "N]" ?b        ;; SEMIVOWELS
+     ?M ?< ?m ?u                   ;; SIBILANTS
+     "k]" "K]" "i]" "p]" "[]" "{]" "H]" "/]" ;; NUKTAS
+     ?% ?&)
+    (;; Misc Symbols (7)
+     ?X ?x ?_ ">]" ?d "X]" ?>)
+    (;; Digits
+     ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9)
+    (;; Inscripts
+     ?# ?$ ?^ ?* ?\])))
+
 (if nil
     (quail-define-package "devanagari-inscript" "Devanagari" "DevIS" t "Devanagari keyboard Inscript"))
 (quail-define-inscript-package
 (if nil
     (quail-define-package "tamil-inscript" "Tamil" "TmlIS" t "Tamil keyboard Inscript"))
 (quail-define-inscript-package
- indian-tml-base-table inscript-dev-keytable
+ indian-tml-base-table inscript-tml-keytable
  "tamil-inscript" "Tamil" "TmlIS"
  "Tamil keyboard Inscript.")
 
index 30b3598fcbaa3e2a721c36e9f681ddd708a974a7..b0da98d6449eeacc7c2dbdd32ff5f2b712db4af4 100644 (file)
@@ -1,4 +1,4 @@
-;;; latin-alt.el --- Quail package for inputting various European characters -*-coding: iso-2022-7bit;-*-
+;;; latin-alt.el --- Quail package for inputting various European characters -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   Free Software Foundation, Inc.
@@ -50,15 +50,15 @@ special (so you can use that to enter a slash).
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Aa\e(B
-  grave      |    `    | a` -> \e,A`\e(B
-  circumflex |    ^    | a^ -> \e,Ab\e(B
-  diaeresis  |    \"    | a\" -> \e,Ad\e(B
-  tilde      |    ~    | a~ -> \e,Ac\e(B
-  cedilla    |    /    | c/ -> \e,Ag\e(B
-  nordic     |    /    | d/ -> \e,Ap\e(B   t/ -> \e,A~\e(B   a/ -> \e,Ae\e(B   e/ -> \e,Af\e(B   o/ -> \e,Ax\e(B
-  others     |   /<>   | s/ -> \e,A_\e(B   ?/ -> \e,A?\e(B   !/ -> \e,A!\e(B
-             | various | << -> \e,A+\e(B   >> -> \e,A;\e(B   o_ -> \e,A:\e(B   a_ -> \e,A*\e(B
+  acute      |    '    | a' -> Ã¡
+  grave      |    `    | a` -> Ã 
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  tilde      |    ~    | a~ -> Ã£
+  cedilla    |    /    | c/ -> Ã§
+  nordic     |    /    | d/ -> Ã°   t/ -> Ã¾   a/ -> Ã¥   e/ -> Ã¦   o/ -> Ã¸
+  others     |   /<>   | s/ -> ÃŸ   ?/ -> Â¿   !/ -> Â¡
+             | various | << -> Â«   >> -> Â»   o_ -> Âº   a_ -> Âª
 
 It seems natural to use comma for cedillas, but that is
 inconvenient in practice because commas are needed very
@@ -68,74 +68,74 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A`" ?\e,A@\e(B)
- ("A'" ?\e,AA\e(B)
- ("A^" ?\e,AB\e(B)
- ("A~" ?\e,AC\e(B)
- ("A\"" ?\e,AD\e(B)
- ("A/" ?\e,AE\e(B)
- ("a`" ?\e,A`\e(B)
- ("a'" ?\e,Aa\e(B)
- ("a^" ?\e,Ab\e(B)
- ("a~" ?\e,Ac\e(B)
- ("a\"" ?\e,Ad\e(B)
- ("a/" ?\e,Ae\e(B)
- ("E`" ?\e,AH\e(B)
- ("E'" ?\e,AI\e(B)
- ("E^" ?\e,AJ\e(B)
- ("E\"" ?\e,AK\e(B)
- ("E/" ?\e,AF\e(B)
- ("e`" ?\e,Ah\e(B)
- ("e'" ?\e,Ai\e(B)
- ("e^" ?\e,Aj\e(B)
- ("e\"" ?\e,Ak\e(B)
- ("e/" ?\e,Af\e(B)
- ("I`" ?\e,AL\e(B)
- ("i`" ?\e,Al\e(B)
- ("I'" ?\e,AM\e(B)
- ("i'" ?\e,Am\e(B)
- ("I^" ?\e,AN\e(B)
- ("i^" ?\e,An\e(B)
- ("I\"" ?\e,AO\e(B)
- ("i\"" ?\e,Ao\e(B)
- ("O`" ?\e,AR\e(B)
- ("o`" ?\e,Ar\e(B)
- ("O'" ?\e,AS\e(B)
- ("o'" ?\e,As\e(B)
- ("O^" ?\e,AT\e(B)
- ("o^" ?\e,At\e(B)
- ("O~" ?\e,AU\e(B)
- ("o~" ?\e,Au\e(B)
- ("O\"" ?\e,AV\e(B)
- ("o\"" ?\e,Av\e(B)
- ("O/" ?\e,AX\e(B)
- ("o/" ?\e,Ax\e(B)
- ("U`" ?\e,AY\e(B)
- ("u`" ?\e,Ay\e(B)
- ("U'" ?\e,AZ\e(B)
- ("u'" ?\e,Az\e(B)
- ("U^" ?\e,A[\e(B)
- ("u^" ?\e,A{\e(B)
- ("U\"" ?\e,A\\e(B)
- ("u\"" ?\e,A|\e(B)
- ("Y'" ?\e,A]\e(B)
- ("y'" ?\e,A}\e(B)
- ("y\"" ?\e,A\7f\e(B)
- ("D/" ?\e,AP\e(B)
- ("d/" ?\e,Ap\e(B)
- ("T/" ?\e,A^\e(B)
- ("t/" ?\e,A~\e(B)
- ("s/" ?\e,A_\e(B)
- ("C/" ?\e,AG\e(B)
- ("c/" ?\e,Ag\e(B)
- ("N~" ?\e,AQ\e(B)
- ("n~" ?\e,Aq\e(B)
- ("?/" ?\e,A?\e(B)
- ("!/" ?\e,A!\e(B)
- ("<<" ?\e,A+\e(B)
- (">>" ?\e,A;\e(B)
- ("o_" ?\e,A:\e(B)
- ("a_" ?\e,A*\e(B)
+ ("A`" ?À)
+ ("A'" ?Ã)
+ ("A^" ?Â)
+ ("A~" ?Ã)
+ ("A\"" ?Ä)
+ ("A/" ?Ã…)
+ ("a`" ?à)
+ ("a'" ?á)
+ ("a^" ?â)
+ ("a~" ?ã)
+ ("a\"" ?ä)
+ ("a/" ?Ã¥)
+ ("E`" ?È)
+ ("E'" ?É)
+ ("E^" ?Ê)
+ ("E\"" ?Ë)
+ ("E/" ?Æ)
+ ("e`" ?è)
+ ("e'" ?é)
+ ("e^" ?ê)
+ ("e\"" ?ë)
+ ("e/" ?æ)
+ ("I`" ?ÃŒ)
+ ("i`" ?ì)
+ ("I'" ?Ã)
+ ("i'" ?í)
+ ("I^" ?ÃŽ)
+ ("i^" ?î)
+ ("I\"" ?Ã)
+ ("i\"" ?ï)
+ ("O`" ?Ã’)
+ ("o`" ?ò)
+ ("O'" ?Ó)
+ ("o'" ?ó)
+ ("O^" ?Ô)
+ ("o^" ?ô)
+ ("O~" ?Õ)
+ ("o~" ?õ)
+ ("O\"" ?Ö)
+ ("o\"" ?ö)
+ ("O/" ?Ø)
+ ("o/" ?ø)
+ ("U`" ?Ù)
+ ("u`" ?ù)
+ ("U'" ?Ú)
+ ("u'" ?ú)
+ ("U^" ?Û)
+ ("u^" ?û)
+ ("U\"" ?Ãœ)
+ ("u\"" ?ü)
+ ("Y'" ?Ã)
+ ("y'" ?ý)
+ ("y\"" ?ÿ)
+ ("D/" ?Ã)
+ ("d/" ?ð)
+ ("T/" ?Þ)
+ ("t/" ?þ)
+ ("s/" ?ß)
+ ("C/" ?Ç)
+ ("c/" ?ç)
+ ("N~" ?Ñ)
+ ("n~" ?ñ)
+ ("?/" ?¿)
+ ("!/" ?¡)
+ ("<<" ?«)
+ (">>" ?»)
+ ("o_" ?º)
+ ("a_" ?ª)
 
  ("A``" ["A`"])
  ("A''" ["A'"])
@@ -215,18 +215,18 @@ comma and period are not special (use ` instead).
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Ba\e(B
-  ogonek     |    `    | a` -> \e,B1\e(B
-  diaeresis  |    \"    | a\" -> \e,Bd\e(B
-  circumflex |    ^    | a^ -> \e,Bb\e(B
-  breve      |    ~    | a~ -> \e,Bc\e(B
-  cedilla    |    `    | c` -> \e,Bg\e(B
-  caron      |    ~    | c~ -> \e,Bh\e(B
-  dbl. acute |    :    | o: -> \e,Bu\e(B
-  ring       |    `    | u` -> \e,By\e(B
-  dot        |    `    | z` -> \e,B?\e(B
-  stroke     |    /    | d/ -> \e,Bp\e(B
-  others     |    /    | s/ -> \e,B_\e(B
+  acute      |    '    | a' -> Ã¡
+  ogonek     |    `    | a` -> Ä…
+  diaeresis  |    \"    | a\" -> Ã¤
+  circumflex |    ^    | a^ -> Ã¢
+  breve      |    ~    | a~ -> Äƒ
+  cedilla    |    `    | c` -> Ã§
+  caron      |    ~    | c~ -> Ä
+  dbl. acute |    :    | o: -> Å‘
+  ring       |    `    | u` -> Å¯
+  dot        |    `    | z` -> Å¼
+  stroke     |    /    | d/ -> Ä‘
+  others     |    /    | s/ -> ÃŸ
 
 It seems natural to use period and comma for dots/rings and
 cedillas/ogoneks, but that is inconvenient in practice, because
@@ -236,87 +236,87 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A'" ?\e,BA\e(B)
- ("A`" ?\e,B!\e(B)
- ("A\"" ?\e,BD\e(B)
- ("A^" ?\e,BB\e(B)
- ("A~" ?\e,BC\e(B)
- ("C'" ?\e,BF\e(B)
- ("C`" ?\e,BG\e(B)
- ("C~" ?\e,BH\e(B)
- ("D/" ?\e,BP\e(B)
- ("D~" ?\e,BO\e(B)
- ("E'" ?\e,BI\e(B)
- ("E`" ?\e,BJ\e(B)
- ("E\"" ?\e,BK\e(B)
- ("E~" ?\e,BL\e(B)
- ("I'" ?\e,BM\e(B)
- ("I^" ?\e,BN\e(B)
- ("L'" ?\e,BE\e(B)
- ("L/" ?\e,B#\e(B)
- ("L~" ?\e,B%\e(B)
- ("N'" ?\e,BQ\e(B)
- ("N~" ?\e,BR\e(B)
- ("O'" ?\e,BS\e(B)
- ("O:" ?\e,BU\e(B)
- ("O\"" ?\e,BV\e(B)
- ("O^" ?\e,BT\e(B)
- ("R'" ?\e,B@\e(B)
- ("R~" ?\e,BX\e(B)
- ("S'" ?\e,B&\e(B)
- ("S`" ?\e,B*\e(B)
- ("S~" ?\e,B)\e(B)
- ("T`" ?\e,B^\e(B)
- ("T~" ?\e,B+\e(B)
- ("U'" ?\e,BZ\e(B)
- ("U:" ?\e,B[\e(B)
- ("U\"" ?\e,B\\e(B)
- ("U`" ?\e,BY\e(B)
- ("Y'" ?\e,B]\e(B)
- ("Z'" ?\e,B,\e(B)
- ("Z`" ?\e,B/\e(B)
- ("Z~" ?\e,B.\e(B)
- ("a'" ?\e,Ba\e(B)
- ("a`" ?\e,B1\e(B)
- ("a\"" ?\e,Bd\e(B)
- ("a^" ?\e,Bb\e(B)
- ("a~" ?\e,Bc\e(B)
- ("c'" ?\e,Bf\e(B)
- ("c`" ?\e,Bg\e(B)
- ("c~" ?\e,Bh\e(B)
- ("d/" ?\e,Bp\e(B)
- ("d~" ?\e,Bo\e(B)
- ("e'" ?\e,Bi\e(B)
- ("e`" ?\e,Bj\e(B)
- ("e\"" ?\e,Bk\e(B)
- ("e~" ?\e,Bl\e(B)
- ("i'" ?\e,Bm\e(B)
- ("i^" ?\e,Bn\e(B)
- ("l'" ?\e,Be\e(B)
- ("l/" ?\e,B3\e(B)
- ("l~" ?\e,B5\e(B)
- ("n'" ?\e,Bq\e(B)
- ("n~" ?\e,Br\e(B)
- ("o'" ?\e,Bs\e(B)
- ("o:" ?\e,Bu\e(B)
- ("o\"" ?\e,Bv\e(B)
- ("o^" ?\e,Bt\e(B)
- ("r'" ?\e,B`\e(B)
- ("r~" ?\e,Bx\e(B)
- ("s'" ?\e,B6\e(B)
- ("s`" ?\e,B:\e(B)
- ("s/" ?\e,B_\e(B)
- ("s~" ?\e,B9\e(B)
- ("t`" ?\e,B~\e(B)
- ("t~" ?\e,B;\e(B)
- ("u'" ?\e,Bz\e(B)
- ("u:" ?\e,B{\e(B)
- ("u\"" ?\e,B|\e(B)
- ("u`" ?\e,By\e(B)
- ("y'" ?\e,B}\e(B)
- ("z'" ?\e,B<\e(B)
- ("z`" ?\e,B?\e(B)
- ("z~" ?\e,B>\e(B)
+ ("A'" ?Ã)
+ ("A`" ?Ä„)
+ ("A\"" ?Ä)
+ ("A^" ?Â)
+ ("A~" ?Ä‚)
+ ("C'" ?Ć)
+ ("C`" ?Ç)
+ ("C~" ?ÄŒ)
+ ("D/" ?Ä)
+ ("D~" ?ÄŽ)
+ ("E'" ?É)
+ ("E`" ?Ę)
+ ("E\"" ?Ë)
+ ("E~" ?Äš)
+ ("I'" ?Ã)
+ ("I^" ?ÃŽ)
+ ("L'" ?Ĺ)
+ ("L/" ?Å)
+ ("L~" ?Ľ)
+ ("N'" ?Ń)
+ ("N~" ?Ň)
+ ("O'" ?Ó)
+ ("O:" ?Å)
+ ("O\"" ?Ö)
+ ("O^" ?Ô)
+ ("R'" ?Å”)
+ ("R~" ?Ř)
+ ("S'" ?Åš)
+ ("S`" ?Åž)
+ ("S~" ?Å )
+ ("T`" ?Å¢)
+ ("T~" ?Ť)
+ ("U'" ?Ú)
+ ("U:" ?Å°)
+ ("U\"" ?Ãœ)
+ ("U`" ?Å®)
+ ("Y'" ?Ã)
+ ("Z'" ?Ź)
+ ("Z`" ?Å»)
+ ("Z~" ?Ž)
+ ("a'" ?á)
+ ("a`" ?Ä…)
+ ("a\"" ?ä)
+ ("a^" ?â)
+ ("a~" ?ă)
+ ("c'" ?ć)
+ ("c`" ?ç)
+ ("c~" ?Ä)
+ ("d/" ?Ä‘)
+ ("d~" ?Ä)
+ ("e'" ?é)
+ ("e`" ?Ä™)
+ ("e\"" ?ë)
+ ("e~" ?Ä›)
+ ("i'" ?í)
+ ("i^" ?î)
+ ("l'" ?ĺ)
+ ("l/" ?Å‚)
+ ("l~" ?ľ)
+ ("n'" ?Å„)
+ ("n~" ?ň)
+ ("o'" ?ó)
+ ("o:" ?Å‘)
+ ("o\"" ?ö)
+ ("o^" ?ô)
+ ("r'" ?Å•)
+ ("r~" ?Å™)
+ ("s'" ?Å›)
+ ("s`" ?ÅŸ)
+ ("s/" ?ß)
+ ("s~" ?Å¡)
+ ("t`" ?Å£)
+ ("t~" ?Å¥)
+ ("u'" ?ú)
+ ("u:" ?ű)
+ ("u\"" ?ü)
+ ("u`" ?ů)
+ ("y'" ?ý)
+ ("z'" ?ź)
+ ("z`" ?ż)
+ ("z~" ?ž)
 
  ("A''" ["A'"])
  ("A``" ["A`"])
@@ -410,16 +410,16 @@ special (use slash instead).
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Ca\e(B
-  grave      |    `    | a` -> \e,C`\e(B
-  circumflex |    ^    | a^ -> \e,Cb\e(B
-  diaeresis  |    \"    | a\" -> \e,Cd\e(B
-  dot        |    /    | c/ -> \e,Ce\e(B   i/ -> \e,C9\e(B   I/ -> \e,C)\e(B
-  cedilla    |    `    | c` -> \e,Cg\e(B
-  breve      |    ~    | g~ -> \e,C;\e(B
-  tilde      |    ~    | n~ -> \e,Cq\e(B
-  stroke     |    /    | h/ -> \e,C1\e(B
-  others     |    /    | s/ -> \e,C_\e(B
+  acute      |    '    | a' -> Ã¡
+  grave      |    `    | a` -> Ã 
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  dot        |    /    | c/ -> Ä‹   i/ -> Ä±   I/ -> Ä°
+  cedilla    |    `    | c` -> Ã§
+  breve      |    ~    | g~ -> ÄŸ
+  tilde      |    ~    | n~ -> Ã±
+  stroke     |    /    | h/ -> Ä§
+  others     |    /    | s/ -> ÃŸ
 
 It would be natural to use period and comma for dots and cedillas, but
 that would inconvenient in practice, because periods and commas are
@@ -429,77 +429,77 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A`" ?\e,C@\e(B)
- ("A'" ?\e,CA\e(B)
- ("A^" ?\e,CB\e(B)
- ("A\"" ?\e,CD\e(B)
- ("C/" ?\e,CE\e(B)
- ("C^" ?\e,CF\e(B)
- ("C`" ?\e,CG\e(B)
- ("E`" ?\e,CH\e(B)
- ("E'" ?\e,CI\e(B)
- ("E^" ?\e,CJ\e(B)
- ("E\"" ?\e,CK\e(B)
- ("G~" ?\e,C+\e(B)
- ("G/" ?\e,CU\e(B)
- ("G^" ?\e,CX\e(B)
- ("H/" ?\e,C!\e(B)
- ("H^" ?\e,C&\e(B)
- ("I/" ?\e,C)\e(B)
- ("I`" ?\e,CL\e(B)
- ("I'" ?\e,CM\e(B)
- ("I^" ?\e,CN\e(B)
- ("I\"" ?\e,CO\e(B)
- ("J^" ?\e,C,\e(B)
- ("N~" ?\e,CQ\e(B)
- ("O`" ?\e,CR\e(B)
- ("O'" ?\e,CS\e(B)
- ("O^" ?\e,CT\e(B)
- ("O\"" ?\e,CV\e(B)
- ("S`" ?\e,C*\e(B)
- ("S^" ?\e,C^\e(B)
- ("U`" ?\e,CY\e(B)
- ("U'" ?\e,CZ\e(B)
- ("U^" ?\e,C[\e(B)
- ("U\"" ?\e,C\\e(B)
- ("U~" ?\e,C]\e(B)
- ("Z/" ?\e,C/\e(B)
- ("a`" ?\e,C`\e(B)
- ("a'" ?\e,Ca\e(B)
- ("a^" ?\e,Cb\e(B)
- ("a\"" ?\e,Cd\e(B)
- ("c/" ?\e,Ce\e(B)
- ("c^" ?\e,Cf\e(B)
- ("c`" ?\e,Cg\e(B)
- ("e`" ?\e,Ch\e(B)
- ("e'" ?\e,Ci\e(B)
- ("e^" ?\e,Cj\e(B)
- ("e\"" ?\e,Ck\e(B)
- ("g~" ?\e,C;\e(B)
- ("g/" ?\e,Cu\e(B)
- ("g^" ?\e,Cx\e(B)
- ("h/" ?\e,C1\e(B)
- ("h^" ?\e,C6\e(B)
- ("i/" ?\e,C9\e(B)
- ("i`" ?\e,Cl\e(B)
- ("i'" ?\e,Cm\e(B)
- ("i^" ?\e,Cn\e(B)
- ("i\"" ?\e,Co\e(B)
- ("j^" ?\e,C<\e(B)
- ("n~" ?\e,Cq\e(B)
- ("o`" ?\e,Cr\e(B)
- ("o'" ?\e,Cs\e(B)
- ("o^" ?\e,Ct\e(B)
- ("o\"" ?\e,Cv\e(B)
- ("s`" ?\e,C:\e(B)
- ("s/" ?\e,C_\e(B)
- ("s^" ?\e,C~\e(B)
- ("u`" ?\e,Cy\e(B)
- ("u'" ?\e,Cz\e(B)
- ("u^" ?\e,C{\e(B)
- ("u\"" ?\e,C|\e(B)
- ("u~" ?\e,C}\e(B)
- ("z/" ?\e,C?\e(B)
+ ("A`" ?À)
+ ("A'" ?Ã)
+ ("A^" ?Â)
+ ("A\"" ?Ä)
+ ("C/" ?ÄŠ)
+ ("C^" ?Ĉ)
+ ("C`" ?Ç)
+ ("E`" ?È)
+ ("E'" ?É)
+ ("E^" ?Ê)
+ ("E\"" ?Ë)
+ ("G~" ?Äž)
+ ("G/" ?Ä )
+ ("G^" ?Äœ)
+ ("H/" ?Ħ)
+ ("H^" ?Ĥ)
+ ("I/" ?Ä°)
+ ("I`" ?ÃŒ)
+ ("I'" ?Ã)
+ ("I^" ?ÃŽ)
+ ("I\"" ?Ã)
+ ("J^" ?Ä´)
+ ("N~" ?Ñ)
+ ("O`" ?Ã’)
+ ("O'" ?Ó)
+ ("O^" ?Ô)
+ ("O\"" ?Ö)
+ ("S`" ?Åž)
+ ("S^" ?Åœ)
+ ("U`" ?Ù)
+ ("U'" ?Ú)
+ ("U^" ?Û)
+ ("U\"" ?Ãœ)
+ ("U~" ?Ŭ)
+ ("Z/" ?Å»)
+ ("a`" ?à)
+ ("a'" ?á)
+ ("a^" ?â)
+ ("a\"" ?ä)
+ ("c/" ?Ä‹)
+ ("c^" ?ĉ)
+ ("c`" ?ç)
+ ("e`" ?è)
+ ("e'" ?é)
+ ("e^" ?ê)
+ ("e\"" ?ë)
+ ("g~" ?ÄŸ)
+ ("g/" ?Ä¡)
+ ("g^" ?Ä)
+ ("h/" ?ħ)
+ ("h^" ?Ä¥)
+ ("i/" ?ı)
+ ("i`" ?ì)
+ ("i'" ?í)
+ ("i^" ?î)
+ ("i\"" ?ï)
+ ("j^" ?ĵ)
+ ("n~" ?ñ)
+ ("o`" ?ò)
+ ("o'" ?ó)
+ ("o^" ?ô)
+ ("o\"" ?ö)
+ ("s`" ?ÅŸ)
+ ("s/" ?ß)
+ ("s^" ?Å)
+ ("u`" ?ù)
+ ("u'" ?ú)
+ ("u^" ?û)
+ ("u\"" ?ü)
+ ("u~" ?Å­)
+ ("z/" ?ż)
 
  ("A``" ["A`"])
  ("A''" ["A'"])
@@ -583,18 +583,18 @@ special (use ~ instead).
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Da\e(B
-  circumflex |    ^    | a^ -> \e,Db\e(B
-  diaeresis  |    \"    | a\" -> \e,Dd\e(B
-  ogonek     |    `    | a` -> \e,D1\e(B
-  macron     |    -    | a- -> \e,D`\e(B
-  tilde      |    ~    | a~ -> \e,Dc\e(B
-  caron      |    ~    | c~ -> \e,Dh\e(B
-  dot        |    ~    | e~ -> \e,Dl\e(B
-  cedilla    |    `    | k` -> \e,Ds\e(B   g` -> \e,D;\e(B
-  stroke     |    /    | d/ -> \e,Dp\e(B
-  nordic     |    /    | a/ -> \e,De\e(B   e/ -> \e,Df\e(B   o/ -> \e,Dx\e(B
-  others     |    /    | s/ -> \e,D_\e(B   n/ -> \e,D?\e(B   k/ -> \e,D"\e(B
+  acute      |    '    | a' -> Ã¡
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  ogonek     |    `    | a` -> Ä…
+  macron     |    -    | a- -> Ä
+  tilde      |    ~    | a~ -> Ã£
+  caron      |    ~    | c~ -> Ä
+  dot        |    ~    | e~ -> Ä—
+  cedilla    |    `    | k` -> Ä·   g` -> Ä£
+  stroke     |    /    | d/ -> Ä‘
+  nordic     |    /    | a/ -> Ã¥   e/ -> Ã¦   o/ -> Ã¸
+  others     |    /    | s/ -> ÃŸ   n/ -> Å‹   k/ -> Ä¸
 
 It seems natural to use period and comma for dots and
 cedillas/ogoneks, but that is inconvenient in practice, because
@@ -604,88 +604,88 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A`" ?\e,D!\e(B)
- ("A-" ?\e,D@\e(B)
- ("A'" ?\e,DA\e(B)
- ("A^" ?\e,DB\e(B)
- ("A~" ?\e,DC\e(B)
- ("A\"" ?\e,DD\e(B)
- ("A/" ?\e,DE\e(B)
- ("C~" ?\e,DH\e(B)
- ("D/" ?\e,DP\e(B)
- ("E/" ?\e,DF\e(B)
- ("E-" ?\e,D*\e(B)
- ("E'" ?\e,DI\e(B)
- ("E`" ?\e,DJ\e(B)
- ("E\"" ?\e,DK\e(B)
- ("E~" ?\e,DL\e(B)
- ("G`" ?\e,D+\e(B)
- ("I~" ?\e,D%\e(B)
- ("I`" ?\e,DG\e(B)
- ("I'" ?\e,DM\e(B)
- ("I^" ?\e,DN\e(B)
- ("I-" ?\e,DO\e(B)
- ("K`" ?\e,DS\e(B)
- ("L`" ?\e,D&\e(B)
- ("N/" ?\e,D=\e(B)
- ("N`" ?\e,DQ\e(B)
- ("O-" ?\e,DR\e(B)
- ("O^" ?\e,DT\e(B)
- ("O~" ?\e,DU\e(B)
- ("O\"" ?\e,DV\e(B)
- ("O/" ?\e,DX\e(B)
- ("R`" ?\e,D#\e(B)
- ("S~" ?\e,D)\e(B)
- ("T/" ?\e,D,\e(B)
- ("U`" ?\e,DY\e(B)
- ("U'" ?\e,DZ\e(B)
- ("U^" ?\e,D[\e(B)
- ("U\"" ?\e,D\\e(B)
- ("U~" ?\e,D]\e(B)
- ("U-" ?\e,D^\e(B)
- ("Z~" ?\e,D.\e(B)
- ("a`" ?\e,D1\e(B)
- ("a-" ?\e,D`\e(B)
- ("a'" ?\e,Da\e(B)
- ("a^" ?\e,Db\e(B)
- ("a~" ?\e,Dc\e(B)
- ("a\"" ?\e,Dd\e(B)
- ("a/" ?\e,De\e(B)
- ("c~" ?\e,Dh\e(B)
- ("d/" ?\e,Dp\e(B)
- ("e/" ?\e,Df\e(B)
- ("e-" ?\e,D:\e(B)
- ("e'" ?\e,Di\e(B)
- ("e`" ?\e,Dj\e(B)
- ("e\"" ?\e,Dk\e(B)
- ("e~" ?\e,Dl\e(B)
- ("g`" ?\e,D;\e(B)
- ("i~" ?\e,D5\e(B)
- ("i`" ?\e,Dg\e(B)
- ("i'" ?\e,Dm\e(B)
- ("i^" ?\e,Dn\e(B)
- ("i-" ?\e,Do\e(B)
- ("k/" ?\e,D"\e(B)
- ("k`" ?\e,Ds\e(B)
- ("l`" ?\e,D6\e(B)
- ("n/" ?\e,D?\e(B)
- ("n`" ?\e,Dq\e(B)
- ("o-" ?\e,Dr\e(B)
- ("o^" ?\e,Dt\e(B)
- ("o~" ?\e,Du\e(B)
- ("o\"" ?\e,Dv\e(B)
- ("o/" ?\e,Dx\e(B)
- ("r`" ?\e,D3\e(B)
- ("s/" ?\e,D_\e(B)
- ("s~" ?\e,D9\e(B)
- ("t/" ?\e,D<\e(B)
- ("u`" ?\e,Dy\e(B)
- ("u'" ?\e,Dz\e(B)
- ("u^" ?\e,D{\e(B)
- ("u\"" ?\e,D|\e(B)
- ("u~" ?\e,D}\e(B)
- ("u-" ?\e,D~\e(B)
- ("z~" ?\e,D>\e(B)
+ ("A`" ?Ä„)
+ ("A-" ?Ä€)
+ ("A'" ?Ã)
+ ("A^" ?Â)
+ ("A~" ?Ã)
+ ("A\"" ?Ä)
+ ("A/" ?Ã…)
+ ("C~" ?ÄŒ)
+ ("D/" ?Ä)
+ ("E/" ?Æ)
+ ("E-" ?Ä’)
+ ("E'" ?É)
+ ("E`" ?Ę)
+ ("E\"" ?Ë)
+ ("E~" ?Ä–)
+ ("G`" ?Ä¢)
+ ("I~" ?Ĩ)
+ ("I`" ?Ä®)
+ ("I'" ?Ã)
+ ("I^" ?ÃŽ)
+ ("I-" ?Ī)
+ ("K`" ?Ķ)
+ ("L`" ?Ä»)
+ ("N/" ?ÅŠ)
+ ("N`" ?Å…)
+ ("O-" ?ÅŒ)
+ ("O^" ?Ô)
+ ("O~" ?Õ)
+ ("O\"" ?Ö)
+ ("O/" ?Ø)
+ ("R`" ?Å–)
+ ("S~" ?Å )
+ ("T/" ?Ŧ)
+ ("U`" ?Ų)
+ ("U'" ?Ú)
+ ("U^" ?Û)
+ ("U\"" ?Ãœ)
+ ("U~" ?Ũ)
+ ("U-" ?Ū)
+ ("Z~" ?Ž)
+ ("a`" ?Ä…)
+ ("a-" ?Ä)
+ ("a'" ?á)
+ ("a^" ?â)
+ ("a~" ?ã)
+ ("a\"" ?ä)
+ ("a/" ?Ã¥)
+ ("c~" ?Ä)
+ ("d/" ?Ä‘)
+ ("e/" ?æ)
+ ("e-" ?Ä“)
+ ("e'" ?é)
+ ("e`" ?Ä™)
+ ("e\"" ?ë)
+ ("e~" ?Ä—)
+ ("g`" ?Ä£)
+ ("i~" ?Ä©)
+ ("i`" ?į)
+ ("i'" ?í)
+ ("i^" ?î)
+ ("i-" ?Ä«)
+ ("k/" ?ĸ)
+ ("k`" ?Ä·)
+ ("l`" ?ļ)
+ ("n/" ?Å‹)
+ ("n`" ?ņ)
+ ("o-" ?Å)
+ ("o^" ?ô)
+ ("o~" ?õ)
+ ("o\"" ?ö)
+ ("o/" ?ø)
+ ("r`" ?Å—)
+ ("s/" ?ß)
+ ("s~" ?Å¡)
+ ("t/" ?ŧ)
+ ("u`" ?ų)
+ ("u'" ?ú)
+ ("u^" ?û)
+ ("u\"" ?ü)
+ ("u~" ?Å©)
+ ("u-" ?Å«)
+ ("z~" ?ž)
 
  ("A``" ["A`"])
  ("A--" ["A-"])
@@ -780,16 +780,16 @@ special (use / instead).
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Ma\e(B
-  grave      |    `    | a` -> \e,M`\e(B
-  circumflex |    ^    | a^ -> \e,Mb\e(B
-  diaeresis  |    \"    | a\" -> \e,Md\e(B
-  tilde      |    ~    | a~ -> \e,Mc\e(B
-  breve      |    ~    | g~ -> \e,Mp\e(B
-  cedilla    |    `    | c` -> \e,Mg\e(B
-  dot        |    /    | i/ -> \e,M}\e(B   I/ -> \e,M]\e(B
-  nordic     |    /    | a/ -> \e,Me\e(B   e/ -> \e,Mf\e(B   o/ -> \e,Mx\e(B
-  others     |    /    | s/ -> \e,M_\e(B
+  acute      |    '    | a' -> Ã¡
+  grave      |    `    | a` -> Ã 
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  tilde      |    ~    | a~ -> Ã£
+  breve      |    ~    | g~ -> ÄŸ
+  cedilla    |    `    | c` -> Ã§
+  dot        |    /    | i/ -> Ä±   I/ -> Ä°
+  nordic     |    /    | a/ -> Ã¥   e/ -> Ã¦   o/ -> Ã¸
+  others     |    /    | s/ -> ÃŸ
 
 It seems natural to use period and comma for dots and cedillas, but
 that is inconvenient in practice, because periods and commas are
@@ -799,68 +799,68 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A'" ?\e,MA\e(B)
- ("A/" ?\e,ME\e(B)
- ("A\"" ?\e,MD\e(B)
- ("A^" ?\e,MB\e(B)
- ("A`" ?\e,M@\e(B)
- ("A~" ?\e,MC\e(B)
- ("C`" ?\e,MG\e(B)
- ("E'" ?\e,MI\e(B)
- ("E/" ?\e,MF\e(B)
- ("E\"" ?\e,MK\e(B)
- ("E^" ?\e,MJ\e(B)
- ("E`" ?\e,MH\e(B)
- ("G~" ?\e,MP\e(B)
- ("I'" ?\e,MM\e(B)
- ("I/" ?\e,M]\e(B)
- ("I\"" ?\e,MO\e(B)
- ("I^" ?\e,MN\e(B)
- ("I`" ?\e,ML\e(B)
- ("N~" ?\e,MQ\e(B)
- ("O'" ?\e,MS\e(B)
- ("O/" ?\e,MX\e(B)
- ("O\"" ?\e,MV\e(B)
- ("O^" ?\e,MT\e(B)
- ("O`" ?\e,MR\e(B)
- ("O~" ?\e,MU\e(B)
- ("S`" ?\e,M^\e(B)
- ("U'" ?\e,MZ\e(B)
- ("U\"" ?\e,M\\e(B)
- ("U^" ?\e,M[\e(B)
- ("U`" ?\e,MY\e(B)
- ("a'" ?\e,Ma\e(B)
- ("a/" ?\e,Me\e(B)
- ("a\"" ?\e,Md\e(B)
- ("a^" ?\e,Mb\e(B)
- ("a`" ?\e,M`\e(B)
- ("a~" ?\e,Mc\e(B)
- ("c`" ?\e,Mg\e(B)
- ("e'" ?\e,Mi\e(B)
- ("e/" ?\e,Mf\e(B)
- ("e\"" ?\e,Mk\e(B)
- ("e^" ?\e,Mj\e(B)
- ("e`" ?\e,Mh\e(B)
- ("g~" ?\e,Mp\e(B)
- ("i'" ?\e,Mm\e(B)
- ("i/" ?\e,M}\e(B)
- ("i\"" ?\e,Mo\e(B)
- ("i^" ?\e,Mn\e(B)
- ("i`" ?\e,Ml\e(B)
- ("n~" ?\e,Mq\e(B)
- ("o'" ?\e,Ms\e(B)
- ("o/" ?\e,Mx\e(B)
- ("o\"" ?\e,Mv\e(B)
- ("o^" ?\e,Mt\e(B)
- ("o`" ?\e,Mr\e(B)
- ("o~" ?\e,Mu\e(B)
- ("s`" ?\e,M~\e(B)
- ("s/" ?\e,M_\e(B)
- ("u'" ?\e,Mz\e(B)
- ("u\"" ?\e,M|\e(B)
- ("u^" ?\e,M{\e(B)
- ("u`" ?\e,My\e(B)
- ("y\"" ?\e,M\7f\e(B)
+ ("A'" ?Ã)
+ ("A/" ?Ã…)
+ ("A\"" ?Ä)
+ ("A^" ?Â)
+ ("A`" ?À)
+ ("A~" ?Ã)
+ ("C`" ?Ç)
+ ("E'" ?É)
+ ("E/" ?Æ)
+ ("E\"" ?Ë)
+ ("E^" ?Ê)
+ ("E`" ?È)
+ ("G~" ?Äž)
+ ("I'" ?Ã)
+ ("I/" ?Ä°)
+ ("I\"" ?Ã)
+ ("I^" ?ÃŽ)
+ ("I`" ?ÃŒ)
+ ("N~" ?Ñ)
+ ("O'" ?Ó)
+ ("O/" ?Ø)
+ ("O\"" ?Ö)
+ ("O^" ?Ô)
+ ("O`" ?Ã’)
+ ("O~" ?Õ)
+ ("S`" ?Åž)
+ ("U'" ?Ú)
+ ("U\"" ?Ãœ)
+ ("U^" ?Û)
+ ("U`" ?Ù)
+ ("a'" ?á)
+ ("a/" ?Ã¥)
+ ("a\"" ?ä)
+ ("a^" ?â)
+ ("a`" ?à)
+ ("a~" ?ã)
+ ("c`" ?ç)
+ ("e'" ?é)
+ ("e/" ?æ)
+ ("e\"" ?ë)
+ ("e^" ?ê)
+ ("e`" ?è)
+ ("g~" ?ÄŸ)
+ ("i'" ?í)
+ ("i/" ?ı)
+ ("i\"" ?ï)
+ ("i^" ?î)
+ ("i`" ?ì)
+ ("n~" ?ñ)
+ ("o'" ?ó)
+ ("o/" ?ø)
+ ("o\"" ?ö)
+ ("o^" ?ô)
+ ("o`" ?ò)
+ ("o~" ?õ)
+ ("s`" ?ÅŸ)
+ ("s/" ?ß)
+ ("u'" ?ú)
+ ("u\"" ?ü)
+ ("u^" ?û)
+ ("u`" ?ù)
+ ("y\"" ?ÿ)
 
  ("A''" ["A'"])
  ("A//" ["A/"])
@@ -930,12 +930,12 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 
 (quail-define-package
  "french-alt-postfix" "French" "FR<" t
- "French (Fran\e,Ag\e(Bais) input method with postfix modifiers
+ "French (Français) input method with postfix modifiers
 
-` pour grave, ' pour aigu, ^ pour circonflexe, et \" pour tr\e,Ai\e(Bma.
-Par exemple: a` -> \e,A`\e(B   e' -> \e,Ai\e(B.
+` pour grave, ' pour aigu, ^ pour circonflexe, et \" pour tréma.
+Par exemple: a` -> Ã    e' -> Ã©.
 
-\e,AG\e(B, \e,A+\e(B, et \e,A;\e(B sont produits par C/, <<, et >>.
+Ç, Â«, et Â» sont produits par C/, <<, et >>.
 
 En doublant la frappe des diacritiques, ils s'isoleront de la lettre.
 Par exemple: e'' -> e'
@@ -944,34 +944,34 @@ Par exemple: e'' -> e'
  nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A`" ?\e,A@\e(B)
- ("A^" ?\e,AB\e(B)
- ("a`" ?\e,A`\e(B)
- ("a^" ?\e,Ab\e(B)
- ("E`" ?\e,AH\e(B)
- ("E'" ?\e,AI\e(B)
- ("E^" ?\e,AJ\e(B)
- ("E\"" ?\e,AK\e(B)
- ("e`" ?\e,Ah\e(B)
- ("e'" ?\e,Ai\e(B)
- ("e^" ?\e,Aj\e(B)
- ("e\"" ?\e,Ak\e(B)
- ("I^" ?\e,AN\e(B)
- ("I\"" ?\e,AO\e(B)
- ("i^" ?\e,An\e(B)
- ("i\"" ?\e,Ao\e(B)
- ("O^" ?\e,AT\e(B)
- ("o^" ?\e,At\e(B)
- ("U`" ?\e,AY\e(B)
- ("U^" ?\e,A[\e(B)
- ("U\"" ?\e,A\\e(B)
- ("u`" ?\e,Ay\e(B)
- ("u^" ?\e,A{\e(B)
- ("u\"" ?\e,A|\e(B)
- ("C/" ?\e,AG\e(B)
- ("c/" ?\e,Ag\e(B)
- ("<<" ?\e,A+\e(B)
- (">>" ?\e,A;\e(B)
+ ("A`" ?À)
+ ("A^" ?Â)
+ ("a`" ?à)
+ ("a^" ?â)
+ ("E`" ?È)
+ ("E'" ?É)
+ ("E^" ?Ê)
+ ("E\"" ?Ë)
+ ("e`" ?è)
+ ("e'" ?é)
+ ("e^" ?ê)
+ ("e\"" ?ë)
+ ("I^" ?ÃŽ)
+ ("I\"" ?Ã)
+ ("i^" ?î)
+ ("i\"" ?ï)
+ ("O^" ?Ô)
+ ("o^" ?ô)
+ ("U`" ?Ù)
+ ("U^" ?Û)
+ ("U\"" ?Ãœ)
+ ("u`" ?ù)
+ ("u^" ?û)
+ ("u\"" ?ü)
+ ("C/" ?Ç)
+ ("c/" ?ç)
+ ("<<" ?«)
+ (">>" ?»)
 
  ("A``" ["A`"])
  ("A^^" ["A^"])
@@ -1009,11 +1009,11 @@ Par exemple: e'' -> e'
  "italian-alt-postfix" "Latin-1" "IT<" t
  "Italian (Italiano) input method with postfix modifiers
 
-a' -> \e,Aa\e(B    A' -> \e,AA\e(B    a` -> \e,A`\e(B    A` -> \e,A@\e(B    i^ -> \e,An\e(B    << -> \e,A+\e(B
-e' -> \e,Ai\e(B    E' -> \e,AI\e(B    e` -> \e,Ah\e(B    E` -> \e,AH\e(B    I^ -> \e,AN\e(B    >> -> \e,A;\e(B
-i' -> \e,Am\e(B    I' -> \e,AM\e(B    i` -> \e,Al\e(B    I` -> \e,AL\e(B               o_ -> \e,A:\e(B
-o' -> \e,As\e(B    O' -> \e,AS\e(B    o` -> \e,Ar\e(B    O` -> \e,AR\e(B               a_ -> \e,A*\e(B
-u' -> \e,Az\e(B    U' -> \e,AZ\e(B    u` -> \e,Ay\e(B    U` -> \e,AY\e(B
+a' -> Ã¡    A' -> Ã    a` -> Ã     A` -> Ã€    i^ -> Ã®    << -> Â«
+e' -> Ã©    E' -> Ã‰    e` -> Ã¨    E` -> Ãˆ    I^ -> ÃŽ    >> -> Â»
+i' -> Ã­    I' -> Ã    i` -> Ã¬    I` -> ÃŒ               o_ -> Âº
+o' -> Ã³    O' -> Ã“    o` -> Ã²    O` -> Ã’               a_ -> Âª
+u' -> Ãº    U' -> Ãš    u` -> Ã¹    U` -> Ã™
 
 This method is for purists who like accents the old way.
 
@@ -1021,32 +1021,32 @@ Doubling the postfix separates the letter and postfix: e.g. a`` -> a`
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A`" ?\e,A@\e(B)
- ("A'" ?\e,AA\e(B)
- ("a`" ?\e,A`\e(B)
- ("a'" ?\e,Aa\e(B)
- ("E`" ?\e,AH\e(B)
- ("E'" ?\e,AI\e(B)
- ("e`" ?\e,Ah\e(B)
- ("e'" ?\e,Ai\e(B)
- ("I`" ?\e,AL\e(B)
- ("i`" ?\e,Al\e(B)
- ("I'" ?\e,AM\e(B)
- ("i'" ?\e,Am\e(B)
- ("I^" ?\e,AN\e(B)
- ("i^" ?\e,An\e(B)
- ("O`" ?\e,AR\e(B)
- ("o`" ?\e,Ar\e(B)
- ("O'" ?\e,AS\e(B)
- ("o'" ?\e,As\e(B)
- ("U`" ?\e,AY\e(B)
- ("u`" ?\e,Ay\e(B)
- ("U'" ?\e,AZ\e(B)
- ("u'" ?\e,Az\e(B)
- ("<<" ?\e,A+\e(B)
- (">>" ?\e,A;\e(B)
- ("o_" ?\e,A:\e(B)
- ("a_" ?\e,A*\e(B)
+ ("A`" ?À)
+ ("A'" ?Ã)
+ ("a`" ?à)
+ ("a'" ?á)
+ ("E`" ?È)
+ ("E'" ?É)
+ ("e`" ?è)
+ ("e'" ?é)
+ ("I`" ?ÃŒ)
+ ("i`" ?ì)
+ ("I'" ?Ã)
+ ("i'" ?í)
+ ("I^" ?ÃŽ)
+ ("i^" ?î)
+ ("O`" ?Ã’)
+ ("o`" ?ò)
+ ("O'" ?Ó)
+ ("o'" ?ó)
+ ("U`" ?Ù)
+ ("u`" ?ù)
+ ("U'" ?Ú)
+ ("u'" ?ú)
+ ("<<" ?«)
+ (">>" ?»)
+ ("o_" ?º)
+ ("a_" ?ª)
 
  ("A``" ["A`"])
  ("A''" ["A'"])
@@ -1078,114 +1078,48 @@ Doubling the postfix separates the letter and postfix: e.g. a`` -> a`
 
 
 (quail-define-package
- "turkish-latin-3-alt-postfix" "Turkish" "TR3<<" t
- "Turkish (T\e,A|\e(Brk\e,Ag\e(Be) input method with postfix modifiers.
-This input method differs from `turkish-latin-3-postfix' in that
-comma is not special (use ` instead).
-
-This is for those who use Latin-3 (ISO-8859-3) for Turkish.  If you
-use Latin-5 (ISO-8859-9), you should use \"turkish-alt-postfix\" instead.
-
-Note for I, \e,C9\e(B, \e,C)\e(B, i.
-
-A^ -> \e,CB\e(B
-C` -> \e,CG\e(B
-G^ -> \e,C+\e(B
-I  -> I
-i  -> \e,C9\e(B
-I/ -> \e,C)\e(B
-i/ -> i
-O\" -> \e,CV\e(B
-S` -> \e,C*\e(B
-U\" -> \e,C\\e(B
-U^ -> \e,C[\e(B
-
-Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
-" nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("A^" ?\e,CB\e(B)
- ("a^" ?\e,Cb\e(B)
- ("C`" ?\e,CG\e(B)
- ("c`" ?\e,Cg\e(B)
- ("G^" ?\e,C+\e(B)
- ("g^" ?\e,C;\e(B)
- ("I/" ?\e,C)\e(B)
- ("i" ?\e,C9\e(B)
- ("i/" ?i)
- ("O\"" ?\e,CV\e(B)
- ("o\"" ?\e,Cv\e(B)
- ("S`" ?\e,C*\e(B)
- ("s`" ?\e,C:\e(B)
- ("U\"" ?\e,C\\e(B)
- ("u\"" ?\e,C|\e(B)
- ("U^" ?\e,C[\e(B)
- ("u^" ?\e,C{\e(B)
-
- ("A^^" ["A^"])
- ("a^^" ["a^"])
- ("C``" ["C`"])
- ("c``" ["c`"])
- ("G^^" ["G^"])
- ("g^^" ["g^"])
- ("I//" ["I/"])
- ("i" ["i"])
- ("i//" ["i/"])
- ("O\"\"" ["O\""])
- ("o\"\"" ["o\""])
- ("S``" ["S`"])
- ("s``" ["s`"])
- ("U\"\"" ["U\""])
- ("u\"\"" ["u\""])
- ("U^^" ["U^"])
- ("u^^" ["u^"])
- )
-
-(quail-define-package
- "turkish-alt-postfix" "Turkish" "TR\e,A+\e(B" t
- "Turkish (T\e,A|\e(Brk\e,Ag\e(Be) input method with postfix modifiers.
+ "turkish-alt-postfix" "Turkish" "TR«" t
+ "Turkish (Türkçe) input method with postfix modifiers.
 This input method differs from `turkish-postfix' in that
 comma is not special (use ` instead).
 
-This is for those who use Latin-5 (ISO-8859-9) for Turkish.  If you
-use Latin-3 (ISO-8859-3), you should use
-\"turkish-latin-3-alt-postfix\" instead.
+turkish-latin-3-alt-postfix is an obsolete alias for turkish-alt-postfix.
 
-Note for I, \e,M}\e(B, \e,M]\e(B, i.
+Note for I, Ä±, Ä°, i.
 
-A^ -> \e,MB\e(B
-C` -> \e,MG\e(B
-G^ -> \e,MP\e(B
+A^ -> Ã‚
+C` -> Ã‡
+G^ -> Äž
 I  -> I
-i  -> \e,M}\e(B
-I/ -> \e,M]\e(B
+i  -> Ä±
+I/ -> Ä°
 i/ -> i
-O\" -> \e,MV\e(B
-S` -> \e,M^\e(B
-U\" -> \e,M\\e(B
-U^ -> \e,M[\e(B
+O\" -> Ã–
+S` -> Åž
+U\" -> Ãœ
+U^ -> Ã›
 
 Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A^" ?\e,MB\e(B)
- ("a^" ?\e,Mb\e(B)
- ("C`" ?\e,MG\e(B)
- ("c`" ?\e,Mg\e(B)
- ("G^" ?\e,MP\e(B)
- ("g^" ?\e,Mp\e(B)
- ("I/" ?\e,M]\e(B)
- ("i" ?\e,M}\e(B)
+ ("A^" ?Â)
+ ("a^" ?â)
+ ("C`" ?Ç)
+ ("c`" ?ç)
+ ("G^" ?Äž)
+ ("g^" ?ÄŸ)
+ ("I/" ?Ä°)
+ ("i" ?ı)
  ("i/" ?i)
- ("O\"" ?\e,MV\e(B)
- ("o\"" ?\e,Cv\e(B)
- ("S`" ?\e,M^\e(B)
- ("s`" ?\e,M~\e(B)
- ("U\"" ?\e,M\\e(B)
- ("u\"" ?\e,M|\e(B)
- ("U^" ?\e,M[\e(B)
- ("u^" ?\e,M{\e(B)
+ ("O\"" ?Ö)
+ ("o\"" ?ö)
+ ("S`" ?Åž)
+ ("s`" ?ÅŸ)
+ ("U\"" ?Ãœ)
+ ("u\"" ?ü)
+ ("U^" ?Û)
+ ("u^" ?û)
 
  ("A^^" ["A^"])
  ("a^^" ["a^"])
@@ -1206,94 +1140,99 @@ Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
  ("u^^" ["u^"])
  )
 
+;; Backwards compatibility.
+(push (cons "turkish-latin-3-alt-postfix"
+           (cdr (assoc "turkish-alt-postfix" quail-package-alist)))
+      quail-package-alist)
+
 ;; Dutch Quail input method derived from the one in Yudit by Roman
 ;; Czyborra.
 (quail-define-package
  "dutch" "Dutch" "NL" t
  "Dutch character mixfix input method.
-Uses the `mule-unicode-0100-24ff' charset to supplement Latin-1.
+Caters for French and Turkish as well as Dutch.
 
              |         | examples
  ------------+---------+----------
-  others     |         | fl. -> \e$,1!R\e(B  eur. -> \e$,1tL\e(B  ij -> \e$,1 S\e(B  IJ -> \e$,1 R\e(B
+  others     |         | fl. -> Æ’  eur. -> â‚¬  ij -> Ä³  IJ -> Ä²
  ------------+---------+----------
              | postfix |
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Aa\e(B
-  grave      |    `    | a` -> \e,A`\e(B
-  circumflex |    ^    | a^ -> \e,Ab\e(B
-  Turkish    | various | i/ -> \e$,1 Q\e(B  s, -> \e$,1 \7f\e(B  g^ -> \e$,1 ?\e(B   I/ -> \e$,1 P\e(B
-             |         |  S, -> \e$,1 ~\e(B  G^ -> \e$,1 >\e(B
+  acute      |    '    | a' -> Ã¡
+  grave      |    `    | a` -> Ã 
+  circumflex |    ^    | a^ -> Ã¢
+  Turkish    | various | i/ -> Ä±  s, -> ÅŸ  g^ -> ÄŸ   I/ -> Ä°
+             |         |  S, -> Åž  G^ -> Äž
  ------------+---------+----------
              | prefix  |
  ------------+---------+----------
-  diaeresis  |    \"    | \"a -> \e,Ad\e(B
+  diaeresis  |    \"    | \"a -> Ã¤
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("fl." ?\e$,1!R\e(B) ;; LATIN SMALL LETTER F WITH HOOK (florin currency symbol)
- ("eur." ?\e$,1tL\e(B) ;; EURO SIGN
- ;; \e$,1r|\e(BThe 25th letter of the Dutch alphabet.\e$,1r}\e(B
- ("ij" ?\e$,1 S\e(B) ;; LATIN SMALL LIGATURE IJ
- ("IJ" ?\e$,1 R\e(B) ;; LATIN CAPITAL LIGATURE IJ
- ;; \e$,1r|\e(BTrema on the second letter of vowel pair.\e$,1r}\e(B  Yudit uses `:', not `"'.
- ("\"a" ?\e,Ad\e(B) ;; LATIN SMALL LETTER A WITH DIAERESIS
- ("\"e" ?\e,Ak\e(B) ;; LATIN SMALL LETTER E WITH DIAERESIS
- ("\"i" ?\e,Ao\e(B) ;; LATIN SMALL LETTER I WITH DIAERESIS
- ("\"o" ?\e,Av\e(B) ;; LATIN SMALL LETTER O WITH DIAERESIS
- ("\"u" ?\e,A|\e(B) ;; LATIN SMALL LETTER U WITH DIAERESIS
- ("\"A" ?\e,AD\e(B) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
- ("\"E" ?\e,AK\e(B) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
- ("\"I" ?\e,AO\e(B) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
- ("\"O" ?\e,AV\e(B) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
- ("\"U" ?\e,A\\e(B) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
- ;; \e$,1r|\e(BAcute, marking emphasis on long vowels\e$,1r}\e(B:
- ("a'" ?\e,Aa\e(B) ;; LATIN SMALL LETTER A WITH ACUTE
- ("e'" ?\e,Ai\e(B) ;; LATIN SMALL LETTER E WITH ACUTE
- ("i'" ?\e,Am\e(B) ;; LATIN SMALL LETTER I WITH ACUTE
- ("o'" ?\e,As\e(B) ;; LATIN SMALL LETTER O WITH ACUTE
- ("u'" ?\e,Az\e(B) ;; LATIN SMALL LETTER U WITH ACUTE
- ("A'" ?\e,AA\e(B) ;; LATIN CAPITAL LETTER A WITH ACUTE
- ("E'" ?\e,AI\e(B) ;; LATIN CAPITAL LETTER E WITH ACUTE
- ("I'" ?\e,AM\e(B) ;; LATIN CAPITAL LETTER I WITH ACUTE
- ("O'" ?\e,AS\e(B) ;; LATIN CAPITAL LETTER O WITH ACUTE
- ("U'" ?\e,AZ\e(B) ;; LATIN CAPITAL LETTER U WITH ACUTE
- ;; \e$,1r|\e(BGrave, marking emphasis on short vowels\e$,1r}\e(B:
- ("a`" ?\e,A`\e(B) ;; LATIN SMALL LETTER A WITH GRAVE
- ("e`" ?\e,Ah\e(B) ;; LATIN SMALL LETTER E WITH GRAVE
- ("i`" ?\e,Al\e(B) ;; LATIN SMALL LETTER I WITH GRAVE
- ("o`" ?\e,Ar\e(B) ;; LATIN SMALL LETTER O WITH GRAVE
- ("u`" ?\e,Ay\e(B) ;; LATIN SMALL LETTER U WITH GRAVE
- ("A`" ?\e,A@\e(B) ;; LATIN CAPITAL LETTER A WITH GRAVE
- ("E`" ?\e,AH\e(B) ;; LATIN CAPITAL LETTER E WITH GRAVE
- ("I`" ?\e,AL\e(B) ;; LATIN CAPITAL LETTER I WITH GRAVE
- ("O`" ?\e,AR\e(B) ;; LATIN CAPITAL LETTER O WITH GRAVE
- ("U`" ?\e,AY\e(B) ;; LATIN CAPITAL LETTER U WITH GRAVE
- ;; \e$,1r|\e(BCater for the use of many French words and use of the circumflex
- ;; in Frisian.\e$,1r}\e(B  Yudit used `;' for cedilla.
- ("c," ?\e,Ag\e(B) ;; LATIN SMALL LETTER C WITH CEDILLA
- ("C," ?\e,AG\e(B) ;; LATIN CAPITAL LETTER C WITH CEDILLA
- ("a^" ?\e,Ab\e(B) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
- ("e^" ?\e,Aj\e(B) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
- ("i^" ?\e,An\e(B) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
- ("o^" ?\e,At\e(B) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
- ("u^" ?\e,A{\e(B) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
- ("A^" ?\e,AB\e(B) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- ("E^" ?\e,AJ\e(B) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- ("I^" ?\e,AN\e(B) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- ("O^" ?\e,AT\e(B) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- ("U^" ?\e,A[\e(B) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- ;; \e$,1r|\e(BFollow the example of the Dutch POSIX locale, using ISO-8859-9 to
- ;; cater to the many Turks in Dutch society.\e$,1r}\e(B  Perhaps German methods
+ ("fl." ?Æ’) ;; LATIN SMALL LETTER F WITH HOOK (florin currency symbol)
+ ("eur." ?€) ;; EURO SIGN
+ ;; â€œThe 25th letter of the Dutch alphabet.â€
+ ("ij" ?ij) ;; LATIN SMALL LIGATURE IJ
+ ("IJ" ?IJ) ;; LATIN CAPITAL LIGATURE IJ
+ ;; â€œTrema on the second letter of vowel pair.† Yudit uses `:', not `"'.
+ ("\"a" ?ä) ;; LATIN SMALL LETTER A WITH DIAERESIS 
+ ("\"e" ?ë) ;; LATIN SMALL LETTER E WITH DIAERESIS 
+ ("\"i" ?ï) ;; LATIN SMALL LETTER I WITH DIAERESIS 
+ ("\"o" ?ö) ;; LATIN SMALL LETTER O WITH DIAERESIS 
+ ("\"u" ?ü) ;; LATIN SMALL LETTER U WITH DIAERESIS 
+ ("\"A" ?Ä) ;; LATIN CAPITAL LETTER A WITH DIAERESIS 
+ ("\"E" ?Ë) ;; LATIN CAPITAL LETTER E WITH DIAERESIS 
+ ("\"I" ?Ã) ;; LATIN CAPITAL LETTER I WITH DIAERESIS 
+ ("\"O" ?Ö) ;; LATIN CAPITAL LETTER O WITH DIAERESIS 
+ ("\"U" ?Ãœ) ;; LATIN CAPITAL LETTER U WITH DIAERESIS 
+ ;; â€œAcute, marking emphasis on long vowelsâ€:
+ ("a'" ?á) ;; LATIN SMALL LETTER A WITH ACUTE 
+ ("e'" ?é) ;; LATIN SMALL LETTER E WITH ACUTE 
+ ("i'" ?í) ;; LATIN SMALL LETTER I WITH ACUTE 
+ ("o'" ?ó) ;; LATIN SMALL LETTER O WITH ACUTE 
+ ("u'" ?ú) ;; LATIN SMALL LETTER U WITH ACUTE 
+ ("A'" ?Ã) ;; LATIN CAPITAL LETTER A WITH ACUTE 
+ ("E'" ?É) ;; LATIN CAPITAL LETTER E WITH ACUTE 
+ ("I'" ?Ã) ;; LATIN CAPITAL LETTER I WITH ACUTE 
+ ("O'" ?Ó) ;; LATIN CAPITAL LETTER O WITH ACUTE 
+ ("U'" ?Ú) ;; LATIN CAPITAL LETTER U WITH ACUTE 
+ ;; â€œGrave, marking emphasis on short vowelsâ€:
+ ("a`" ?à) ;; LATIN SMALL LETTER A WITH GRAVE
+ ("e`" ?è) ;; LATIN SMALL LETTER E WITH GRAVE 
+ ("i`" ?ì) ;; LATIN SMALL LETTER I WITH GRAVE 
+ ("o`" ?ò) ;; LATIN SMALL LETTER O WITH GRAVE 
+ ("u`" ?ù) ;; LATIN SMALL LETTER U WITH GRAVE 
+ ("A`" ?À) ;; LATIN CAPITAL LETTER A WITH GRAVE 
+ ("E`" ?È) ;; LATIN CAPITAL LETTER E WITH GRAVE 
+ ("I`" ?ÃŒ) ;; LATIN CAPITAL LETTER I WITH GRAVE 
+ ("O`" ?Ã’) ;; LATIN CAPITAL LETTER O WITH GRAVE 
+ ("U`" ?Ù) ;; LATIN CAPITAL LETTER U WITH GRAVE
+ ;; â€œCater for the use of many French words and use of the circumflex
+ ;; in Frisian.† Yudit used `;' for cedilla.
+ ("c," ?ç) ;; LATIN SMALL LETTER C WITH CEDILLA 
+ ("C," ?Ç) ;; LATIN CAPITAL LETTER C WITH CEDILLA 
+ ("a^" ?â) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX 
+ ("e^" ?ê) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX 
+ ("i^" ?î) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX 
+ ("o^" ?ô) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX 
+ ("u^" ?û) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX 
+ ("A^" ?Â) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX 
+ ("E^" ?Ê) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX 
+ ("I^" ?ÃŽ) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX 
+ ("O^" ?Ô) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX 
+ ("U^" ?Û) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+ ;; â€œFollow the example of the Dutch POSIX locale, using ISO-8859-9 to
+ ;; cater to the many Turks in Dutch society.† Perhaps German methods
  ;; should do so too.  Follow turkish-alt-postfix here.
- ("i/" ?\e$,1 Q\e(B) ;; LATIN SMALL LETTER I WITH NO DOT
- ("s," ?\e$,1 \7f\e(B) ;; LATIN SMALL LETTER S WITH CEDILLA
- ("g^" ?\e$,1 ?\e(B) ;; LATIN SMALL LETTER G WITH BREVE
- ("I/" ?\e$,1 P\e(B) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE
- ("S," ?\e$,1 ~\e(B) ;; LATIN CAPITAL LETTER S WITH CEDILLA
- ("G^" ?\e$,1 >\e(B) ;; LATIN CAPITAL LETTER G WITH BREVE
+ ("i/" ?ı) ;; LATIN SMALL LETTER I WITH NO DOT
+ ("s," ?ÅŸ) ;; LATIN SMALL LETTER S WITH CEDILLA 
+ ("g^" ?ÄŸ) ;; LATIN SMALL LETTER G WITH BREVE 
+ ("I/" ?Ä°) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE
+ ("S," ?Åž) ;; LATIN CAPITAL LETTER S WITH CEDILLA 
+ ("G^" ?Äž) ;; LATIN CAPITAL LETTER G WITH BREVE 
  )
 
 ;; Originally from Yudit, discussed with Albertas Agejevas
@@ -1304,26 +1243,26 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
- ("1" ?\e$,1 %\e(B)
- ("2" ?\e$,1 -\e(B)
- ("3" ?\e$,1 9\e(B)
- ("4" ?\e$,1 7\e(B)
- ("5" ?\e$,1 O\e(B)
- ("6" ?\e$,1!!\e(B)
- ("7" ?\e$,1!3\e(B)
- ("8" ?\e$,1!+\e(B)
- ("9" ?\e$,1r~\e(B)
- ("0" ?\e$,1r|\e(B)
- ("=" ?\e$,1!>\e(B)
- ("!" ?\e$,1 $\e(B)
- ("@" ?\e$,1 ,\e(B)
- ("#" ?\e$,1 8\e(B)
- ("$" ?\e$,1 6\e(B)
- ("%" ?\e$,1 N\e(B)
- ("^" ?\e$,1! \e(B)
- ("&" ?\e$,1!2\e(B)
- ("*" ?\e$,1!*\e(B)
- ("+" ?\e$,1!=\e(B))
+ ("1" ?Ä…)
+ ("2" ?Ä)
+ ("3" ?Ä™)
+ ("4" ?Ä—)
+ ("5" ?į)
+ ("6" ?Å¡)
+ ("7" ?ų)
+ ("8" ?Å«)
+ ("9" ?„)
+ ("0" ?“)
+ ("=" ?ž)
+ ("!" ?Ä„)
+ ("@" ?ÄŒ)
+ ("#" ?Ę)
+ ("$" ?Ä–)
+ ("%" ?Ä®)
+ ("^" ?Å )
+ ("&" ?Ų)
+ ("*" ?Ū)
+ ("+" ?Ž))
 
 ;; From XFree 4.1 /usr/X11R6/lib/X11/xkb/symbols/lt, suggested by
 ;; Albertas Agejevas <alga@uosis.mif.vu.lt>
@@ -1333,23 +1272,23 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
- ("1" ?\e$,1 %\e(B)
- ("!" ?\e$,1 $\e(B)
- ("2" ?\e$,1 -\e(B)
- ("@" ?\e$,1 ,\e(B)
- ("#" ?\e$,1 8\e(B)
- ("4" ?\e$,1 7\e(B)
- ("$" ?\e$,1 6\e(B)
- ("5" ?\e$,1 O\e(B)
- ("%" ?\e$,1 N\e(B)
- ("6" ?\e$,1!!\e(B)
- ("^" ?\e$,1! \e(B)
- ("7" ?\e$,1!3\e(B)
- ("&" ?\e$,1!2\e(B)
- ("9" ?\e$,1r~\e(B)
- ("0" ?\e$,1r|\e(B)
- ("=" ?\e$,1!>\e(B)
- ("+" ?\e$,1!=\e(B))
+ ("1" ?Ä…)
+ ("!" ?Ä„)
+ ("2" ?Ä)
+ ("@" ?ÄŒ)
+ ("#" ?Ę)
+ ("4" ?Ä—)
+ ("$" ?Ä–)
+ ("5" ?į)
+ ("%" ?Ä®)
+ ("6" ?Å¡)
+ ("^" ?Å )
+ ("7" ?ų)
+ ("&" ?Ų)
+ ("9" ?„)
+ ("0" ?“)
+ ("=" ?ž)
+ ("+" ?Ž))
 
 ;; From XFree 4.1 /usr/X11R6/lib/X11/xkb/symbols/lv
 (quail-define-package
@@ -1358,36 +1297,36 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t t t t nil nil nil nil nil t)
 
 (quail-define-rules
- ("4" ?\e$,1tL\e(B)
- ("$" ?\e,A"\e(B)
- ("e" ?\e$,1 3\e(B)
- ("E" ?\e$,1 2\e(B)
- ("r" ?\e$,1 w\e(B)
- ("R" ?\e$,1 v\e(B)
- ("u" ?\e$,1!+\e(B)
- ("U" ?\e$,1!*\e(B)
- ("i" ?\e$,1 K\e(B)
- ("I" ?\e$,1 J\e(B)
- ("o" ?\e$,1 m\e(B)
- ("O" ?\e$,1 l\e(B)
- ("a" ?\e$,1 !\e(B)
- ("A" ?\e$,1  \e(B)
- ("s" ?\e$,1!!\e(B)
- ("S" ?\e$,1! \e(B)
- ("g" ?\e$,1 C\e(B)
- ("G" ?\e$,1 B\e(B)
- ("k" ?\e$,1 W\e(B)
- ("K" ?\e$,1 V\e(B)
- ("l" ?\e$,1 \\e(B)
- ("L" ?\e$,1 [\e(B)
- ("\'" ?\e$,1r|\e(B)
- ("\"" ?\e$,1r~\e(B)
- ("z" ?\e$,1!>\e(B)
- ("Z" ?\e$,1!=\e(B)
- ("c" ?\e$,1 -\e(B)
- ("C" ?\e$,1 ,\e(B)
- ("n" ?\e$,1 f\e(B)
- ("N" ?\e$,1 e\e(B))
+ ("4" ?€)
+ ("$" ?¢)
+ ("e" ?Ä“)
+ ("E" ?Ä’)
+ ("r" ?Å—)
+ ("R" ?Å–)
+ ("u" ?Å«)
+ ("U" ?Ū)
+ ("i" ?Ä«)
+ ("I" ?Ī)
+ ("o" ?Å)
+ ("O" ?ÅŒ)
+ ("a" ?Ä)
+ ("A" ?Ä€)
+ ("s" ?Å¡)
+ ("S" ?Å )
+ ("g" ?Ä£)
+ ("G" ?Ä¢)
+ ("k" ?Ä·)
+ ("K" ?Ķ)
+ ("l" ?ļ)
+ ("L" ?Ä»)
+ ("\'" ?“)
+ ("\"" ?„)
+ ("z" ?ž)
+ ("Z" ?Ž)
+ ("c" ?Ä)
+ ("C" ?ÄŒ)
+ ("n" ?ņ)
+ ("N" ?Å…))
 
 (quail-define-package
  "latin-alt-postfix" "Latin" "L<" t
@@ -1397,22 +1336,22 @@ of characters from a single Latin-N charset.
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Aa\e(B
-  grave      |    `    | a` -> \e,A`\e(B
-  circumflex |    ^    | a^ -> \e,Ab\e(B
-  diaeresis  |    \"    | a\" -> \e,Ad\e(B
-  tilde      |    ~    | a~ -> \e,Ac\e(B
-  cedilla    |    /`   | c/ -> \e,Ag\e(B   c` -> \e,Ag\e(B
-  ogonek     |    `    | a` -> \e$,1 %\e(B
-  breve      |    ~    | a~ -> \e$,1 #\e(B
-  caron      |    ~    | c~ -> \e$,1 -\e(B
-  dbl. acute |    :    | o: -> \e$,1 q\e(B
-  ring       |    `    | u` -> \e$,1!/\e(B
-  dot        |    `    | z` -> \e$,1!<\e(B
-  stroke     |    /    | d/ -> \e$,1 1\e(B
-  nordic     |    /    | d/ -> \e,Ap\e(B   t/ -> \e,A~\e(B   a/ -> \e,Ae\e(B   e/ -> \e,Af\e(B   o/ -> \e,Ax\e(B
-  others     |   /<>   | s/ -> \e,A_\e(B   ?/ -> \e,A?\e(B   !/ -> \e,A!\e(B
-             | various | << -> \e,A+\e(B   >> -> \e,A;\e(B   o_ -> \e,A:\e(B   a_ -> \e,A*\e(B
+  acute      |    '    | a' -> Ã¡
+  grave      |    `    | a` -> Ã 
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  tilde      |    ~    | a~ -> Ã£
+  cedilla    |    /`   | c/ -> Ã§   c` -> Ã§
+  ogonek     |    `    | a` -> Ä…
+  breve      |    ~    | a~ -> Äƒ
+  caron      |    ~    | c~ -> Ä
+  dbl. acute |    :    | o: -> Å‘
+  ring       |    `    | u` -> Å¯
+  dot        |    `    | z` -> Å¼
+  stroke     |    /    | d/ -> Ä‘
+  nordic     |    /    | d/ -> Ã°   t/ -> Ã¾   a/ -> Ã¥   e/ -> Ã¦   o/ -> Ã¸
+  others     |   /<>   | s/ -> ÃŸ   ?/ -> Â¿   !/ -> Â¡
+             | various | << -> Â«   >> -> Â»   o_ -> Âº   a_ -> Âª
 
 It would be natural to use comma for cedillas, but that would be
 inconvenient in practice because commas are needed very often after a
@@ -1421,197 +1360,197 @@ letter.
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
-;; Fixme: \e,A&\e(B \e,A'\e(B \e,A(\e(B \e,A)\e(B \e,A,\e(B \e,A-\e(B \e,A.\e(B \e,A/\e(B \e,A0\e(B \e,A1\e(B \e,A2\e(B \e,A3\e(B \e,A4\e(B \e,A5\e(B \e,A6\e(B \e,A7\e(B \e,A8\e(B \e,A9\e(B \e,A<\e(B \e,A=\e(B \e,A>\e(B \e,AW\e(B \e,Aw\e(B
+;; Fixme: Â¦ Â§ Â¨ Â© Â¬ Â­ Â® Â¯ Â° Â± Â² Â³ Â´ Âµ Â¶ Â· Â¸ Â¹ Â¼ Â½ Â¾ Ã— Ã·
 (quail-define-rules
- (" _" ?\e,A \e(B)
- ("!/" ?\e,A!\e(B)
- ("//" ?\e,A0\e(B)
- ("<<" ?\e,A+\e(B)
- (">>" ?\e,A;\e(B)
- ("?/" ?\e,A?\e(B)
- ("$/" ?\e,A#\e(B)
- ("$/" ?\e,A$\e(B)
- ("A'" ?\e,AA\e(B)
- ("A-" ?\e$,1  \e(B)
- ("A/" ?\e,AE\e(B)
- ("A\"" ?\e,AD\e(B)
- ("A^" ?\e,AB\e(B)
- ("A`" ?\e,A@\e(B)
- ("A`" ?\e$,1 $\e(B)
- ("A~" ?\e,AC\e(B)
- ("A~" ?\e$,1 "\e(B)
- ("C'" ?\e$,1 &\e(B)
- ("C/" ?\e,AG\e(B)
- ("C/" ?\e$,1 *\e(B)
- ("C^" ?\e$,1 (\e(B)
- ("C`" ?\e,AG\e(B)
- ("C~" ?\e$,1 ,\e(B)
- ("D/" ?\e,AP\e(B)
- ("D/" ?\e$,1 0\e(B)
- ("D~" ?\e$,1 .\e(B)
- ("E'" ?\e,AI\e(B)
- ("E-" ?\e$,1 2\e(B)
- ("E/" ?\e,AF\e(B)
- ("E\"" ?\e,AK\e(B)
- ("E^" ?\e,AJ\e(B)
- ("E`" ?\e,AH\e(B)
- ("E`" ?\e$,1 8\e(B)
- ("E~" ?\e$,1 6\e(B)
- ("E~" ?\e$,1 :\e(B)
- ("G/" ?\e$,1 @\e(B)
- ("G^" ?\e$,1 <\e(B)
- ("G`" ?\e$,1 B\e(B)
- ("G~" ?\e$,1 >\e(B)
- ("H/" ?\e$,1 F\e(B)
- ("H^" ?\e$,1 D\e(B)
- ("I'" ?\e,AM\e(B)
- ("I-" ?\e$,1 J\e(B)
- ("I/" ?\e$,1 P\e(B)
- ("I\"" ?\e,AO\e(B)
- ("I^" ?\e,AN\e(B)
- ("I`" ?\e,AL\e(B)
- ("I`" ?\e$,1 N\e(B)
- ("I~" ?\e$,1 H\e(B)
- ("J^" ?\e$,1 T\e(B)
- ("K`" ?\e$,1 V\e(B)
- ("L'" ?\e$,1 Y\e(B)
- ("L/" ?\e$,1 a\e(B)
- ("L`" ?\e$,1 [\e(B)
- ("L~" ?\e$,1 ]\e(B)
- ("N'" ?\e$,1 c\e(B)
- ("N/" ?\e$,1 j\e(B)
- ("N`" ?\e$,1 e\e(B)
- ("N~" ?\e,AQ\e(B)
- ("N~" ?\e$,1 g\e(B)
- ("O'" ?\e,AS\e(B)
- ("O-" ?\e$,1 l\e(B)
- ("O/" ?\e,AX\e(B)
- ("O:" ?\e$,1 p\e(B)
- ("O\"" ?\e,AV\e(B)
- ("O^" ?\e,AT\e(B)
- ("O`" ?\e,AR\e(B)
- ("O~" ?\e,AU\e(B)
- ("R'" ?\e$,1 t\e(B)
- ("R`" ?\e$,1 v\e(B)
- ("R~" ?\e$,1 x\e(B)
- ("S'" ?\e$,1 z\e(B)
- ("S^" ?\e$,1 |\e(B)
- ("S`" ?\e$,1 ~\e(B)
- ("S~" ?\e$,1! \e(B)
- ("T/" ?\e,A^\e(B)
- ("T/" ?\e$,1!&\e(B)
- ("T`" ?\e$,1!"\e(B)
- ("T~" ?\e$,1!$\e(B)
- ("U'" ?\e,AZ\e(B)
- ("U-" ?\e$,1!*\e(B)
- ("U:" ?\e$,1!0\e(B)
- ("U\"" ?\e,A\\e(B)
- ("U^" ?\e,A[\e(B)
- ("U`" ?\e,AY\e(B)
- ("U`" ?\e$,1!.\e(B)
- ("U`" ?\e$,1!2\e(B)
- ("U~" ?\e$,1!(\e(B)
- ("U~" ?\e$,1!,\e(B)
- ("Y'" ?\e,A]\e(B)
- ("Y\"" ?\e$,1!8\e(B)
- ("Y=" ?\e,A%\e(B)
- ("Z'" ?\e$,1!9\e(B)
- ("Z/" ?\e$,1!;\e(B)
- ("Z`" ?\e$,1!;\e(B)
- ("Z~" ?\e$,1!=\e(B)
- ("a'" ?\e,Aa\e(B)
- ("a-" ?\e$,1 !\e(B)
- ("a/" ?\e,Ae\e(B)
- ("a\"" ?\e,Ad\e(B)
- ("a^" ?\e,Ab\e(B)
- ("a_" ?\e,A*\e(B)
- ("a`" ?\e,A`\e(B)
- ("a`" ?\e$,1 %\e(B)
- ("a~" ?\e,Ac\e(B)
- ("a~" ?\e$,1 #\e(B)
- ("c'" ?\e$,1 '\e(B)
- ("c/" ?\e,Ag\e(B)
- ("c/" ?\e$,1 +\e(B)
- ("c/" ?\e,A"\e(B)
- ("c^" ?\e$,1 )\e(B)
- ("c`" ?\e,Ag\e(B)
- ("c~" ?\e$,1 -\e(B)
- ("d/" ?\e,Ap\e(B)
- ("d/" ?\e$,1 1\e(B)
- ("d~" ?\e$,1 /\e(B)
- ("e'" ?\e,Ai\e(B)
- ("e-" ?\e$,1 3\e(B)
- ("e/" ?\e,Af\e(B)
- ("e\"" ?\e,Ak\e(B)
- ("e^" ?\e,Aj\e(B)
- ("e`" ?\e,Ah\e(B)
- ("e`" ?\e$,1 9\e(B)
- ("e~" ?\e$,1 7\e(B)
- ("e~" ?\e$,1 ;\e(B)
- ("e=" ?\e$,1tL\e(B)
- ("g/" ?\e$,1 A\e(B)
- ("g^" ?\e$,1 =\e(B)
- ("g`" ?\e$,1 C\e(B)
- ("g~" ?\e$,1 ?\e(B)
- ("h/" ?\e$,1 G\e(B)
- ("h^" ?\e$,1 E\e(B)
- ("i'" ?\e,Am\e(B)
- ("i-" ?\e$,1 K\e(B)
- ("i/" ?\e$,1 Q\e(B)
- ("i\"" ?\e,Ao\e(B)
- ("i^" ?\e,An\e(B)
- ("i`" ?\e,Al\e(B)
- ("i`" ?\e$,1 O\e(B)
- ("i~" ?\e$,1 I\e(B)
- ("j^" ?\e$,1 U\e(B)
- ("k/" ?\e$,1 X\e(B)
- ("k`" ?\e$,1 W\e(B)
- ("l'" ?\e$,1 Z\e(B)
- ("l/" ?\e$,1 b\e(B)
- ("l`" ?\e$,1 \\e(B)
- ("l~" ?\e$,1 ^\e(B)
- ("n'" ?\e$,1 d\e(B)
- ("n/" ?\e$,1 k\e(B)
- ("n`" ?\e$,1 f\e(B)
- ("n~" ?\e,Aq\e(B)
- ("n~" ?\e$,1 h\e(B)
- ("o'" ?\e,As\e(B)
- ("o-" ?\e$,1 m\e(B)
- ("o/" ?\e,Ax\e(B)
- ("o:" ?\e$,1 q\e(B)
- ("o\"" ?\e,Av\e(B)
- ("o^" ?\e,At\e(B)
- ("o_" ?\e,A:\e(B)
- ("o`" ?\e,Ar\e(B)
- ("o~" ?\e,Au\e(B)
- ("r'" ?\e$,1 u\e(B)
- ("r`" ?\e$,1 w\e(B)
- ("r~" ?\e$,1 y\e(B)
- ("s'" ?\e$,1 {\e(B)
- ("s/" ?\e,A_\e(B)
- ("s^" ?\e$,1 }\e(B)
- ("s`" ?\e$,1 \7f\e(B)
- ("s~" ?\e$,1!!\e(B)
- ("t/" ?\e,A~\e(B)
- ("t/" ?\e$,1!'\e(B)
- ("t`" ?\e$,1!#\e(B)
- ("t~" ?\e$,1!%\e(B)
- ("u'" ?\e,Az\e(B)
- ("u-" ?\e$,1!+\e(B)
- ("u:" ?\e$,1!1\e(B)
- ("u\"" ?\e,A|\e(B)
- ("u^" ?\e,A{\e(B)
- ("u`" ?\e,Ay\e(B)
- ("u`" ?\e$,1!/\e(B)
- ("u`" ?\e$,1!3\e(B)
- ("u~" ?\e$,1!)\e(B)
- ("u~" ?\e$,1!-\e(B)
- ("y'" ?\e,A}\e(B)
- ("y\"" ?\e,A\7f\e(B)
- ("z'" ?\e$,1!:\e(B)
- ("z/" ?\e$,1!<\e(B)
- ("z`" ?\e$,1!<\e(B)
- ("z~" ?\e$,1!>\e(B)
+ (" _" ? )
+ ("!/" ?¡)
+ ("//" ?°)
+ ("<<" ?«)
+ (">>" ?»)
+ ("?/" ?¿)
+ ("$/" ?£)
+ ("$/" ?¤)
+ ("A'" ?Ã)
+ ("A-" ?Ä€)
+ ("A/" ?Ã…)
+ ("A\"" ?Ä)
+ ("A^" ?Â)
+ ("A`" ?À)
+ ("A`" ?Ä„)
+ ("A~" ?Ã)
+ ("A~" ?Ä‚)
+ ("C'" ?Ć)
+ ("C/" ?Ç)
+ ("C/" ?ÄŠ)
+ ("C^" ?Ĉ)
+ ("C`" ?Ç)
+ ("C~" ?ÄŒ)
+ ("D/" ?Ã)
+ ("D/" ?Ä)
+ ("D~" ?ÄŽ)
+ ("E'" ?É)
+ ("E-" ?Ä’)
+ ("E/" ?Æ)
+ ("E\"" ?Ë)
+ ("E^" ?Ê)
+ ("E`" ?È)
+ ("E`" ?Ę)
+ ("E~" ?Ä–)
+ ("E~" ?Äš)
+ ("G/" ?Ä )
+ ("G^" ?Äœ)
+ ("G`" ?Ä¢)
+ ("G~" ?Äž)
+ ("H/" ?Ħ)
+ ("H^" ?Ĥ)
+ ("I'" ?Ã)
+ ("I-" ?Ī)
+ ("I/" ?Ä°)
+ ("I\"" ?Ã)
+ ("I^" ?ÃŽ)
+ ("I`" ?ÃŒ)
+ ("I`" ?Ä®)
+ ("I~" ?Ĩ)
+ ("J^" ?Ä´)
+ ("K`" ?Ķ)
+ ("L'" ?Ĺ)
+ ("L/" ?Å)
+ ("L`" ?Ä»)
+ ("L~" ?Ľ)
+ ("N'" ?Ń)
+ ("N/" ?ÅŠ)
+ ("N`" ?Å…)
+ ("N~" ?Ñ)
+ ("N~" ?Ň)
+ ("O'" ?Ó)
+ ("O-" ?ÅŒ)
+ ("O/" ?Ø)
+ ("O:" ?Å)
+ ("O\"" ?Ö)
+ ("O^" ?Ô)
+ ("O`" ?Ã’)
+ ("O~" ?Õ)
+ ("R'" ?Å”)
+ ("R`" ?Å–)
+ ("R~" ?Ř)
+ ("S'" ?Åš)
+ ("S^" ?Åœ)
+ ("S`" ?Åž)
+ ("S~" ?Å )
+ ("T/" ?Þ)
+ ("T/" ?Ŧ)
+ ("T`" ?Å¢)
+ ("T~" ?Ť)
+ ("U'" ?Ú)
+ ("U-" ?Ū)
+ ("U:" ?Å°)
+ ("U\"" ?Ãœ)
+ ("U^" ?Û)
+ ("U`" ?Ù)
+ ("U`" ?Å®)
+ ("U`" ?Ų)
+ ("U~" ?Ũ)
+ ("U~" ?Ŭ)
+ ("Y'" ?Ã)
+ ("Y\"" ?Ÿ)
+ ("Y=" ?Â¥)
+ ("Z'" ?Ź)
+ ("Z/" ?Å»)
+ ("Z`" ?Å»)
+ ("Z~" ?Ž)
+ ("a'" ?á)
+ ("a-" ?Ä)
+ ("a/" ?Ã¥)
+ ("a\"" ?ä)
+ ("a^" ?â)
+ ("a_" ?ª)
+ ("a`" ?à)
+ ("a`" ?Ä…)
+ ("a~" ?ã)
+ ("a~" ?ă)
+ ("c'" ?ć)
+ ("c/" ?ç)
+ ("c/" ?Ä‹)
+ ("c/" ?¢)
+ ("c^" ?ĉ)
+ ("c`" ?ç)
+ ("c~" ?Ä)
+ ("d/" ?ð)
+ ("d/" ?Ä‘)
+ ("d~" ?Ä)
+ ("e'" ?é)
+ ("e-" ?Ä“)
+ ("e/" ?æ)
+ ("e\"" ?ë)
+ ("e^" ?ê)
+ ("e`" ?è)
+ ("e`" ?Ä™)
+ ("e~" ?Ä—)
+ ("e~" ?Ä›)
+ ("e=" ?€)
+ ("g/" ?Ä¡)
+ ("g^" ?Ä)
+ ("g`" ?Ä£)
+ ("g~" ?ÄŸ)
+ ("h/" ?ħ)
+ ("h^" ?Ä¥)
+ ("i'" ?í)
+ ("i-" ?Ä«)
+ ("i/" ?ı)
+ ("i\"" ?ï)
+ ("i^" ?î)
+ ("i`" ?ì)
+ ("i`" ?į)
+ ("i~" ?Ä©)
+ ("j^" ?ĵ)
+ ("k/" ?ĸ)
+ ("k`" ?Ä·)
+ ("l'" ?ĺ)
+ ("l/" ?Å‚)
+ ("l`" ?ļ)
+ ("l~" ?ľ)
+ ("n'" ?Å„)
+ ("n/" ?Å‹)
+ ("n`" ?ņ)
+ ("n~" ?ñ)
+ ("n~" ?ň)
+ ("o'" ?ó)
+ ("o-" ?Å)
+ ("o/" ?ø)
+ ("o:" ?Å‘)
+ ("o\"" ?ö)
+ ("o^" ?ô)
+ ("o_" ?º)
+ ("o`" ?ò)
+ ("o~" ?õ)
+ ("r'" ?Å•)
+ ("r`" ?Å—)
+ ("r~" ?Å™)
+ ("s'" ?Å›)
+ ("s/" ?ß)
+ ("s^" ?Å)
+ ("s`" ?ÅŸ)
+ ("s~" ?Å¡)
+ ("t/" ?þ)
+ ("t/" ?ŧ)
+ ("t`" ?Å£)
+ ("t~" ?Å¥)
+ ("u'" ?ú)
+ ("u-" ?Å«)
+ ("u:" ?ű)
+ ("u\"" ?ü)
+ ("u^" ?û)
+ ("u`" ?ù)
+ ("u`" ?ů)
+ ("u`" ?ų)
+ ("u~" ?Å©)
+ ("u~" ?Å­)
+ ("y'" ?ý)
+ ("y\"" ?ÿ)
+ ("z'" ?ź)
+ ("z/" ?ż)
+ ("z`" ?ż)
+ ("z~" ?ž)
 
  (" __" [" _"])
  ("!//" ["!/"])
index cb8a938a10eae5b44cab0f8fea46449df0cd39f0..9d7b8ee4d7148296910d3c8fe71769850855e155 100644 (file)
@@ -1,4 +1,4 @@
-;;; latin-post.el --- Quail packages for inputting various European characters  -*-coding: iso-2022-7bit;-*-
+;;; latin-post.el --- Quail packages for inputting various European characters  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   Free Software Foundation, Inc.
@@ -6,8 +6,11 @@
 ;;   2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
-;; Keywords: multilingual, input method, latin
+;; Keywords: multilingual, input method, latin, i18n
 
 ;; This file is part of GNU Emacs.
 
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Aa\e(B
-  grave      |    `    | a` -> \e,A`\e(B
-  circumflex |    ^    | a^ -> \e,Ab\e(B
-  diaeresis  |    \"    | a\" -> \e,Ad\e(B
-  tilde      |    ~    | a~ -> \e,Ac\e(B
-  cedilla    |    ,    | c, -> \e,Ag\e(B
-  nordic     |    /    | d/ -> \e,Ap\e(B   t/ -> \e,A~\e(B   a/ -> \e,Ae\e(B   e/ -> \e,Af\e(B   o/ -> \e,Ax\e(B
-  others     |    /    | s/ -> \e,A_\e(B   ?/ -> \e,A?\e(B   !/ -> \e,A!\e(B   // -> \e,A0\e(B
-             | various | << -> \e,A+\e(B   >> -> \e,A;\e(B   o_ -> \e,A:\e(B   a_ -> \e,A*\e(B
+  acute      |    '    | a' -> Ã¡
+  grave      |    `    | a` -> Ã 
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  tilde      |    ~    | a~ -> Ã£
+  cedilla    |    ,    | c, -> Ã§
+  nordic     |    /    | d/ -> Ã°   t/ -> Ã¾   a/ -> Ã¥   e/ -> Ã¦   o/ -> Ã¸
+  others     |    /    | s/ -> ÃŸ   ?/ -> Â¿   !/ -> Â¡   // -> Â°
+             | various | << -> Â«   >> -> Â»   o_ -> Âº   a_ -> Âª
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A`" ?\e,A@\e(B)
- ("A'" ?\e,AA\e(B)
- ("A^" ?\e,AB\e(B)
- ("A~" ?\e,AC\e(B)
- ("A\"" ?\e,AD\e(B)
- ("A/" ?\e,AE\e(B)
- ("a`" ?\e,A`\e(B)
- ("a'" ?\e,Aa\e(B)
- ("a^" ?\e,Ab\e(B)
- ("a~" ?\e,Ac\e(B)
- ("a\"" ?\e,Ad\e(B)
- ("a/" ?\e,Ae\e(B)
- ("E`" ?\e,AH\e(B)
- ("E'" ?\e,AI\e(B)
- ("E^" ?\e,AJ\e(B)
- ("E\"" ?\e,AK\e(B)
- ("E/" ?\e,AF\e(B)
- ("e`" ?\e,Ah\e(B)
- ("e'" ?\e,Ai\e(B)
- ("e^" ?\e,Aj\e(B)
- ("e\"" ?\e,Ak\e(B)
- ("e/" ?\e,Af\e(B)
- ("I`" ?\e,AL\e(B)
- ("i`" ?\e,Al\e(B)
- ("I'" ?\e,AM\e(B)
- ("i'" ?\e,Am\e(B)
- ("I^" ?\e,AN\e(B)
- ("i^" ?\e,An\e(B)
- ("I\"" ?\e,AO\e(B)
- ("i\"" ?\e,Ao\e(B)
- ("O`" ?\e,AR\e(B)
- ("o`" ?\e,Ar\e(B)
- ("O'" ?\e,AS\e(B)
- ("o'" ?\e,As\e(B)
- ("O^" ?\e,AT\e(B)
- ("o^" ?\e,At\e(B)
- ("O~" ?\e,AU\e(B)
- ("o~" ?\e,Au\e(B)
- ("O\"" ?\e,AV\e(B)
- ("o\"" ?\e,Av\e(B)
- ("O/" ?\e,AX\e(B)
- ("o/" ?\e,Ax\e(B)
- ("U`" ?\e,AY\e(B)
- ("u`" ?\e,Ay\e(B)
- ("U'" ?\e,AZ\e(B)
- ("u'" ?\e,Az\e(B)
- ("U^" ?\e,A[\e(B)
- ("u^" ?\e,A{\e(B)
- ("U\"" ?\e,A\\e(B)
- ("u\"" ?\e,A|\e(B)
- ("Y'" ?\e,A]\e(B)
- ("y'" ?\e,A}\e(B)
- ("y\"" ?\e,A\7f\e(B)
- ("D/" ?\e,AP\e(B)
- ("d/" ?\e,Ap\e(B)
- ("T/" ?\e,A^\e(B)
- ("t/" ?\e,A~\e(B)
- ("s/" ?\e,A_\e(B)
- ("C," ?\e,AG\e(B)
- ("c," ?\e,Ag\e(B)
- ("N~" ?\e,AQ\e(B)
- ("n~" ?\e,Aq\e(B)
- ("?/" ?\e,A?\e(B)
- ("!/" ?\e,A!\e(B)
- ("<<" ?\e,A+\e(B)
- (">>" ?\e,A;\e(B)
- ("o_" ?\e,A:\e(B)
- ("a_" ?\e,A*\e(B)
- ("//" ?\e,A0\e(B)
+ ("A`" ?À)
+ ("A'" ?Ã)
+ ("A^" ?Â)
+ ("A~" ?Ã)
+ ("A\"" ?Ä)
+ ("A/" ?Ã…)
+ ("a`" ?à)
+ ("a'" ?á)
+ ("a^" ?â)
+ ("a~" ?ã)
+ ("a\"" ?ä)
+ ("a/" ?Ã¥)
+ ("E`" ?È)
+ ("E'" ?É)
+ ("E^" ?Ê)
+ ("E\"" ?Ë)
+ ("E/" ?Æ)
+ ("e`" ?è)
+ ("e'" ?é)
+ ("e^" ?ê)
+ ("e\"" ?ë)
+ ("e/" ?æ)
+ ("I`" ?ÃŒ)
+ ("i`" ?ì)
+ ("I'" ?Ã)
+ ("i'" ?í)
+ ("I^" ?ÃŽ)
+ ("i^" ?î)
+ ("I\"" ?Ã)
+ ("i\"" ?ï)
+ ("O`" ?Ã’)
+ ("o`" ?ò)
+ ("O'" ?Ó)
+ ("o'" ?ó)
+ ("O^" ?Ô)
+ ("o^" ?ô)
+ ("O~" ?Õ)
+ ("o~" ?õ)
+ ("O\"" ?Ö)
+ ("o\"" ?ö)
+ ("O/" ?Ø)
+ ("o/" ?ø)
+ ("U`" ?Ù)
+ ("u`" ?ù)
+ ("U'" ?Ú)
+ ("u'" ?ú)
+ ("U^" ?Û)
+ ("u^" ?û)
+ ("U\"" ?Ãœ)
+ ("u\"" ?ü)
+ ("Y'" ?Ã)
+ ("y'" ?ý)
+ ("y\"" ?ÿ)
+ ("D/" ?Ã)
+ ("d/" ?ð)
+ ("T/" ?Þ)
+ ("t/" ?þ)
+ ("s/" ?ß)
+ ("C," ?Ç)
+ ("c," ?ç)
+ ("N~" ?Ñ)
+ ("n~" ?ñ)
+ ("?/" ?¿)
+ ("!/" ?¡)
+ ("<<" ?«)
+ (">>" ?»)
+ ("o_" ?º)
+ ("a_" ?ª)
+ ("//" ?°)
 
  ("A``" ["A`"])
  ("A''" ["A'"])
@@ -201,104 +204,104 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Ba\e(B
-  ogonek     |    ,    | a, -> \e,B1\e(B
-  diaeresis  |    \"    | a\" -> \e,Bd\e(B
-  circumflex |    ^    | a^ -> \e,Bb\e(B
-  breve      |    ~    | a~ -> \e,Bc\e(B
-  cedilla    |    ,    | c, -> \e,Bg\e(B
-  caron      |    ~    | c~ -> \e,Bh\e(B
-  dbl. acute |    :    | o: -> \e,Bu\e(B
-  ring       |    .    | u. -> \e,By\e(B
-  dot        |    .    | z. -> \e,B?\e(B
-  stroke     |    /    | d/ -> \e,Bp\e(B
-  others     |    /    | s/ -> \e,B_\e(B
+  acute      |    '    | a' -> Ã¡
+  ogonek     |    ,    | a, -> Ä…
+  diaeresis  |    \"    | a\" -> Ã¤
+  circumflex |    ^    | a^ -> Ã¢
+  breve      |    ~    | a~ -> Äƒ
+  cedilla    |    ,    | c, -> Ã§
+  caron      |    ~    | c~ -> Ä
+  dbl. acute |    :    | o: -> Å‘
+  ring       |    .    | u. -> Å¯
+  dot        |    .    | z. -> Å¼
+  stroke     |    /    | d/ -> Ä‘
+  others     |    /    | s/ -> ÃŸ
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A'" ?\e,BA\e(B)
- ("A," ?\e,B!\e(B)
- ("A\"" ?\e,BD\e(B)
- ("A^" ?\e,BB\e(B)
- ("A~" ?\e,BC\e(B)
- ("C'" ?\e,BF\e(B)
- ("C," ?\e,BG\e(B)
- ("C~" ?\e,BH\e(B)
- ("D/" ?\e,BP\e(B)
- ("D~" ?\e,BO\e(B)
- ("E'" ?\e,BI\e(B)
- ("E," ?\e,BJ\e(B)
- ("E\"" ?\e,BK\e(B)
- ("E~" ?\e,BL\e(B)
- ("I'" ?\e,BM\e(B)
- ("I^" ?\e,BN\e(B)
- ("L'" ?\e,BE\e(B)
- ("L/" ?\e,B#\e(B)
- ("L~" ?\e,B%\e(B)
- ("N'" ?\e,BQ\e(B)
- ("N~" ?\e,BR\e(B)
- ("O'" ?\e,BS\e(B)
- ("O:" ?\e,BU\e(B)
- ("O\"" ?\e,BV\e(B)
- ("O^" ?\e,BT\e(B)
- ("R'" ?\e,B@\e(B)
- ("R~" ?\e,BX\e(B)
- ("S'" ?\e,B&\e(B)
- ("S," ?\e,B*\e(B)
- ("S~" ?\e,B)\e(B)
- ("T," ?\e,B^\e(B)
- ("T~" ?\e,B+\e(B)
- ("U'" ?\e,BZ\e(B)
- ("U:" ?\e,B[\e(B)
- ("U\"" ?\e,B\\e(B)
- ("U." ?\e,BY\e(B)
- ("Y'" ?\e,B]\e(B)
- ("Z'" ?\e,B,\e(B)
- ("Z." ?\e,B/\e(B)
- ("Z~" ?\e,B.\e(B)
- ("a'" ?\e,Ba\e(B)
- ("a," ?\e,B1\e(B)
- ("a\"" ?\e,Bd\e(B)
- ("a^" ?\e,Bb\e(B)
- ("a~" ?\e,Bc\e(B)
- ("c'" ?\e,Bf\e(B)
- ("c," ?\e,Bg\e(B)
- ("c~" ?\e,Bh\e(B)
- ("d/" ?\e,Bp\e(B)
- ("d~" ?\e,Bo\e(B)
- ("e'" ?\e,Bi\e(B)
- ("e," ?\e,Bj\e(B)
- ("e\"" ?\e,Bk\e(B)
- ("e~" ?\e,Bl\e(B)
- ("i'" ?\e,Bm\e(B)
- ("i^" ?\e,Bn\e(B)
- ("l'" ?\e,Be\e(B)
- ("l/" ?\e,B3\e(B)
- ("l~" ?\e,B5\e(B)
- ("n'" ?\e,Bq\e(B)
- ("n~" ?\e,Br\e(B)
- ("o'" ?\e,Bs\e(B)
- ("o:" ?\e,Bu\e(B)
- ("o\"" ?\e,Bv\e(B)
- ("o^" ?\e,Bt\e(B)
- ("r'" ?\e,B`\e(B)
- ("r~" ?\e,Bx\e(B)
- ("s'" ?\e,B6\e(B)
- ("s," ?\e,B:\e(B)
- ("s/" ?\e,B_\e(B)
- ("s~" ?\e,B9\e(B)
- ("t," ?\e,B~\e(B)
- ("t~" ?\e,B;\e(B)
- ("u'" ?\e,Bz\e(B)
- ("u:" ?\e,B{\e(B)
- ("u\"" ?\e,B|\e(B)
- ("u." ?\e,By\e(B)
- ("y'" ?\e,B}\e(B)
- ("z'" ?\e,B<\e(B)
- ("z." ?\e,B?\e(B)
- ("z~" ?\e,B>\e(B)
+ ("A'" ?Ã)
+ ("A," ?Ä„)
+ ("A\"" ?Ä)
+ ("A^" ?Â)
+ ("A~" ?Ä‚)
+ ("C'" ?Ć)
+ ("C," ?Ç)
+ ("C~" ?ÄŒ)
+ ("D/" ?Ä)
+ ("D~" ?ÄŽ)
+ ("E'" ?É)
+ ("E," ?Ę)
+ ("E\"" ?Ë)
+ ("E~" ?Äš)
+ ("I'" ?Ã)
+ ("I^" ?ÃŽ)
+ ("L'" ?Ĺ)
+ ("L/" ?Å)
+ ("L~" ?Ľ)
+ ("N'" ?Ń)
+ ("N~" ?Ň)
+ ("O'" ?Ó)
+ ("O:" ?Å)
+ ("O\"" ?Ö)
+ ("O^" ?Ô)
+ ("R'" ?Å”)
+ ("R~" ?Ř)
+ ("S'" ?Åš)
+ ("S," ?Åž)
+ ("S~" ?Å )
+ ("T," ?Å¢)
+ ("T~" ?Ť)
+ ("U'" ?Ú)
+ ("U:" ?Å°)
+ ("U\"" ?Ãœ)
+ ("U." ?Å®)
+ ("Y'" ?Ã)
+ ("Z'" ?Ź)
+ ("Z." ?Å»)
+ ("Z~" ?Ž)
+ ("a'" ?á)
+ ("a," ?Ä…)
+ ("a\"" ?ä)
+ ("a^" ?â)
+ ("a~" ?ă)
+ ("c'" ?ć)
+ ("c," ?ç)
+ ("c~" ?Ä)
+ ("d/" ?Ä‘)
+ ("d~" ?Ä)
+ ("e'" ?é)
+ ("e," ?Ä™)
+ ("e\"" ?ë)
+ ("e~" ?Ä›)
+ ("i'" ?í)
+ ("i^" ?î)
+ ("l'" ?ĺ)
+ ("l/" ?Å‚)
+ ("l~" ?ľ)
+ ("n'" ?Å„)
+ ("n~" ?ň)
+ ("o'" ?ó)
+ ("o:" ?Å‘)
+ ("o\"" ?ö)
+ ("o^" ?ô)
+ ("r'" ?Å•)
+ ("r~" ?Å™)
+ ("s'" ?Å›)
+ ("s," ?ÅŸ)
+ ("s/" ?ß)
+ ("s~" ?Å¡)
+ ("t," ?Å£)
+ ("t~" ?Å¥)
+ ("u'" ?ú)
+ ("u:" ?ű)
+ ("u\"" ?ü)
+ ("u." ?ů)
+ ("y'" ?ý)
+ ("z'" ?ź)
+ ("z." ?ż)
+ ("z~" ?ž)
 
  ("A''" ["A'"])
  ("A,," ["A,"])
@@ -389,92 +392,92 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Ca\e(B
-  grave      |    `    | a` -> \e,C`\e(B
-  circumflex |    ^    | a^ -> \e,Cb\e(B
-  diaeresis  |    \"    | a\" -> \e,Cd\e(B
-  dot        |    .    | c. -> \e,Ce\e(B   i. -> \e,C9\e(B   I. -> \e,C)\e(B
-  cedilla    |    ,    | c, -> \e,Cg\e(B
-  breve      |    ~    | g~ -> \e,C;\e(B
-  tilde      |    ~    | n~ -> \e,Cq\e(B
-  stroke     |    /    | h/ -> \e,C1\e(B
-  others     |    /    | s/ -> \e,C_\e(B
+  acute      |    '    | a' -> Ã¡
+  grave      |    `    | a` -> Ã 
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  dot        |    .    | c. -> Ä‹   i. -> Ä±   I. -> Ä°
+  cedilla    |    ,    | c, -> Ã§
+  breve      |    ~    | g~ -> ÄŸ
+  tilde      |    ~    | n~ -> Ã±
+  stroke     |    /    | h/ -> Ä§
+  others     |    /    | s/ -> ÃŸ
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A`" ?\e,C@\e(B)
- ("A'" ?\e,CA\e(B)
- ("A^" ?\e,CB\e(B)
- ("A\"" ?\e,CD\e(B)
- ("C." ?\e,CE\e(B)
- ("C^" ?\e,CF\e(B)
- ("C," ?\e,CG\e(B)
- ("E`" ?\e,CH\e(B)
- ("E'" ?\e,CI\e(B)
- ("E^" ?\e,CJ\e(B)
- ("E\"" ?\e,CK\e(B)
- ("G~" ?\e,C+\e(B)
- ("G." ?\e,CU\e(B)
- ("G^" ?\e,CX\e(B)
- ("H/" ?\e,C!\e(B)
- ("H^" ?\e,C&\e(B)
- ("I." ?\e,C)\e(B)
- ("I`" ?\e,CL\e(B)
- ("I'" ?\e,CM\e(B)
- ("I^" ?\e,CN\e(B)
- ("I\"" ?\e,CO\e(B)
- ("J^" ?\e,C,\e(B)
- ("N~" ?\e,CQ\e(B)
- ("O`" ?\e,CR\e(B)
- ("O'" ?\e,CS\e(B)
- ("O^" ?\e,CT\e(B)
- ("O\"" ?\e,CV\e(B)
- ("S," ?\e,C*\e(B)
- ("S^" ?\e,C^\e(B)
- ("U`" ?\e,CY\e(B)
- ("U'" ?\e,CZ\e(B)
- ("U^" ?\e,C[\e(B)
- ("U\"" ?\e,C\\e(B)
- ("U~" ?\e,C]\e(B)
- ("Z." ?\e,C/\e(B)
- ("a`" ?\e,C`\e(B)
- ("a'" ?\e,Ca\e(B)
- ("a^" ?\e,Cb\e(B)
- ("a\"" ?\e,Cd\e(B)
- ("c." ?\e,Ce\e(B)
- ("c^" ?\e,Cf\e(B)
- ("c," ?\e,Cg\e(B)
- ("e`" ?\e,Ch\e(B)
- ("e'" ?\e,Ci\e(B)
- ("e^" ?\e,Cj\e(B)
- ("e\"" ?\e,Ck\e(B)
- ("g~" ?\e,C;\e(B)
- ("g." ?\e,Cu\e(B)
- ("g^" ?\e,Cx\e(B)
- ("h/" ?\e,C1\e(B)
- ("h^" ?\e,C6\e(B)
- ("i." ?\e,C9\e(B)
- ("i`" ?\e,Cl\e(B)
- ("i'" ?\e,Cm\e(B)
- ("i^" ?\e,Cn\e(B)
- ("i\"" ?\e,Co\e(B)
- ("j^" ?\e,C<\e(B)
- ("n~" ?\e,Cq\e(B)
- ("o`" ?\e,Cr\e(B)
- ("o'" ?\e,Cs\e(B)
- ("o^" ?\e,Ct\e(B)
- ("o\"" ?\e,Cv\e(B)
- ("s," ?\e,C:\e(B)
- ("s/" ?\e,C_\e(B)
- ("s^" ?\e,C~\e(B)
- ("u`" ?\e,Cy\e(B)
- ("u'" ?\e,Cz\e(B)
- ("u^" ?\e,C{\e(B)
- ("u\"" ?\e,C|\e(B)
- ("u~" ?\e,C}\e(B)
- ("z." ?\e,C?\e(B)
+ ("A`" ?À)
+ ("A'" ?Ã)
+ ("A^" ?Â)
+ ("A\"" ?Ä)
+ ("C." ?ÄŠ)
+ ("C^" ?Ĉ)
+ ("C," ?Ç)
+ ("E`" ?È)
+ ("E'" ?É)
+ ("E^" ?Ê)
+ ("E\"" ?Ë)
+ ("G~" ?Äž)
+ ("G." ?Ä )
+ ("G^" ?Äœ)
+ ("H/" ?Ħ)
+ ("H^" ?Ĥ)
+ ("I." ?Ä°)
+ ("I`" ?ÃŒ)
+ ("I'" ?Ã)
+ ("I^" ?ÃŽ)
+ ("I\"" ?Ã)
+ ("J^" ?Ä´)
+ ("N~" ?Ñ)
+ ("O`" ?Ã’)
+ ("O'" ?Ó)
+ ("O^" ?Ô)
+ ("O\"" ?Ö)
+ ("S," ?Åž)
+ ("S^" ?Åœ)
+ ("U`" ?Ù)
+ ("U'" ?Ú)
+ ("U^" ?Û)
+ ("U\"" ?Ãœ)
+ ("U~" ?Ŭ)
+ ("Z." ?Å»)
+ ("a`" ?à)
+ ("a'" ?á)
+ ("a^" ?â)
+ ("a\"" ?ä)
+ ("c." ?Ä‹)
+ ("c^" ?ĉ)
+ ("c," ?ç)
+ ("e`" ?è)
+ ("e'" ?é)
+ ("e^" ?ê)
+ ("e\"" ?ë)
+ ("g~" ?ÄŸ)
+ ("g." ?Ä¡)
+ ("g^" ?Ä)
+ ("h/" ?ħ)
+ ("h^" ?Ä¥)
+ ("i." ?ı)
+ ("i`" ?ì)
+ ("i'" ?í)
+ ("i^" ?î)
+ ("i\"" ?ï)
+ ("j^" ?ĵ)
+ ("n~" ?ñ)
+ ("o`" ?ò)
+ ("o'" ?ó)
+ ("o^" ?ô)
+ ("o\"" ?ö)
+ ("s," ?ÅŸ)
+ ("s/" ?ß)
+ ("s^" ?Å)
+ ("u`" ?ù)
+ ("u'" ?ú)
+ ("u^" ?û)
+ ("u\"" ?ü)
+ ("u~" ?Å­)
+ ("z." ?ż)
 
  ("A``" ["A`"])
  ("A''" ["A'"])
@@ -555,105 +558,105 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Da\e(B
-  circumflex |    ^    | a^ -> \e,Db\e(B
-  diaeresis  |    \"    | a\" -> \e,Dd\e(B
-  ogonek     |    ,    | a, -> \e,D1\e(B
-  macron     |    -    | a- -> \e,D`\e(B
-  tilde      |    ~    | a~ -> \e,Dc\e(B
-  caron      |    ~    | c~ -> \e,Dh\e(B
-  dot        |    .    | e. -> \e,Dl\e(B
-  cedilla    |    ,    | k, -> \e,Ds\e(B   g, -> \e,D;\e(B
-  stroke     |    /    | d/ -> \e,Dp\e(B
-  nordic     |    /    | a/ -> \e,De\e(B   e/ -> \e,Df\e(B   o/ -> \e,Dx\e(B
-  others     |    /    | s/ -> \e,D_\e(B   n/ -> \e,D?\e(B   k/ -> \e,D"\e(B
+  acute      |    '    | a' -> Ã¡
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  ogonek     |    ,    | a, -> Ä…
+  macron     |    -    | a- -> Ä
+  tilde      |    ~    | a~ -> Ã£
+  caron      |    ~    | c~ -> Ä
+  dot        |    .    | e. -> Ä—
+  cedilla    |    ,    | k, -> Ä·   g, -> Ä£
+  stroke     |    /    | d/ -> Ä‘
+  nordic     |    /    | a/ -> Ã¥   e/ -> Ã¦   o/ -> Ã¸
+  others     |    /    | s/ -> ÃŸ   n/ -> Å‹   k/ -> Ä¸
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A," ?\e,D!\e(B)
- ("A-" ?\e,D@\e(B)
- ("A'" ?\e,DA\e(B)
- ("A^" ?\e,DB\e(B)
- ("A~" ?\e,DC\e(B)
- ("A\"" ?\e,DD\e(B)
- ("A/" ?\e,DE\e(B)
- ("C~" ?\e,DH\e(B)
- ("D/" ?\e,DP\e(B)
- ("E/" ?\e,DF\e(B)
- ("E-" ?\e,D*\e(B)
- ("E'" ?\e,DI\e(B)
- ("E," ?\e,DJ\e(B)
- ("E\"" ?\e,DK\e(B)
- ("E." ?\e,DL\e(B)
- ("G," ?\e,D+\e(B)
- ("I~" ?\e,D%\e(B)
- ("I," ?\e,DG\e(B)
- ("I'" ?\e,DM\e(B)
- ("I^" ?\e,DN\e(B)
- ("I-" ?\e,DO\e(B)
- ("K," ?\e,DS\e(B)
- ("L," ?\e,D&\e(B)
- ("N/" ?\e,D=\e(B)
- ("N," ?\e,DQ\e(B)
- ("O-" ?\e,DR\e(B)
- ("O^" ?\e,DT\e(B)
- ("O~" ?\e,DU\e(B)
- ("O\"" ?\e,DV\e(B)
- ("O/" ?\e,DX\e(B)
- ("R," ?\e,D#\e(B)
- ("S~" ?\e,D)\e(B)
- ("T/" ?\e,D,\e(B)
- ("U," ?\e,DY\e(B)
- ("U'" ?\e,DZ\e(B)
- ("U^" ?\e,D[\e(B)
- ("U\"" ?\e,D\\e(B)
- ("U~" ?\e,D]\e(B)
- ("U-" ?\e,D^\e(B)
- ("Z~" ?\e,D.\e(B)
- ("a," ?\e,D1\e(B)
- ("a-" ?\e,D`\e(B)
- ("a'" ?\e,Da\e(B)
- ("a^" ?\e,Db\e(B)
- ("a~" ?\e,Dc\e(B)
- ("a\"" ?\e,Dd\e(B)
- ("a/" ?\e,De\e(B)
- ("c~" ?\e,Dh\e(B)
- ("d/" ?\e,Dp\e(B)
- ("e/" ?\e,Df\e(B)
- ("e-" ?\e,D:\e(B)
- ("e'" ?\e,Di\e(B)
- ("e," ?\e,Dj\e(B)
- ("e\"" ?\e,Dk\e(B)
- ("e." ?\e,Dl\e(B)
- ("g," ?\e,D;\e(B)
- ("i~" ?\e,D5\e(B)
- ("i," ?\e,Dg\e(B)
- ("i'" ?\e,Dm\e(B)
- ("i^" ?\e,Dn\e(B)
- ("i-" ?\e,Do\e(B)
- ("k/" ?\e,D"\e(B)
- ("k," ?\e,Ds\e(B)
- ("l," ?\e,D6\e(B)
- ("n/" ?\e,D?\e(B)
- ("n," ?\e,Dq\e(B)
- ("o-" ?\e,Dr\e(B)
- ("o^" ?\e,Dt\e(B)
- ("o~" ?\e,Du\e(B)
- ("o\"" ?\e,Dv\e(B)
- ("o/" ?\e,Dx\e(B)
- ("r," ?\e,D3\e(B)
- ("s/" ?\e,D_\e(B)
- ("s~" ?\e,D9\e(B)
- ("t/" ?\e,D<\e(B)
- ("u," ?\e,Dy\e(B)
- ("u'" ?\e,Dz\e(B)
- ("u^" ?\e,D{\e(B)
- ("u\"" ?\e,D|\e(B)
- ("u~" ?\e,D}\e(B)
- ("u-" ?\e,D~\e(B)
- ("z~" ?\e,D>\e(B)
+ ("A," ?Ä„)
+ ("A-" ?Ä€)
+ ("A'" ?Ã)
+ ("A^" ?Â)
+ ("A~" ?Ã)
+ ("A\"" ?Ä)
+ ("A/" ?Ã…)
+ ("C~" ?ÄŒ)
+ ("D/" ?Ä)
+ ("E/" ?Æ)
+ ("E-" ?Ä’)
+ ("E'" ?É)
+ ("E," ?Ę)
+ ("E\"" ?Ë)
+ ("E." ?Ä–)
+ ("G," ?Ä¢)
+ ("I~" ?Ĩ)
+ ("I," ?Ä®)
+ ("I'" ?Ã)
+ ("I^" ?ÃŽ)
+ ("I-" ?Ī)
+ ("K," ?Ķ)
+ ("L," ?Ä»)
+ ("N/" ?ÅŠ)
+ ("N," ?Å…)
+ ("O-" ?ÅŒ)
+ ("O^" ?Ô)
+ ("O~" ?Õ)
+ ("O\"" ?Ö)
+ ("O/" ?Ø)
+ ("R," ?Å–)
+ ("S~" ?Å )
+ ("T/" ?Ŧ)
+ ("U," ?Ų)
+ ("U'" ?Ú)
+ ("U^" ?Û)
+ ("U\"" ?Ãœ)
+ ("U~" ?Ũ)
+ ("U-" ?Ū)
+ ("Z~" ?Ž)
+ ("a," ?Ä…)
+ ("a-" ?Ä)
+ ("a'" ?á)
+ ("a^" ?â)
+ ("a~" ?ã)
+ ("a\"" ?ä)
+ ("a/" ?Ã¥)
+ ("c~" ?Ä)
+ ("d/" ?Ä‘)
+ ("e/" ?æ)
+ ("e-" ?Ä“)
+ ("e'" ?é)
+ ("e," ?Ä™)
+ ("e\"" ?ë)
+ ("e." ?Ä—)
+ ("g," ?Ä£)
+ ("i~" ?Ä©)
+ ("i," ?į)
+ ("i'" ?í)
+ ("i^" ?î)
+ ("i-" ?Ä«)
+ ("k/" ?ĸ)
+ ("k," ?Ä·)
+ ("l," ?ļ)
+ ("n/" ?Å‹)
+ ("n," ?ņ)
+ ("o-" ?Å)
+ ("o^" ?ô)
+ ("o~" ?õ)
+ ("o\"" ?ö)
+ ("o/" ?ø)
+ ("r," ?Å—)
+ ("s/" ?ß)
+ ("s~" ?Å¡)
+ ("t/" ?ŧ)
+ ("u," ?ų)
+ ("u'" ?ú)
+ ("u^" ?û)
+ ("u\"" ?ü)
+ ("u~" ?Å©)
+ ("u-" ?Å«)
+ ("z~" ?ž)
 
  ("A,," ["A,"])
  ("A--" ["A-"])
@@ -745,83 +748,83 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Ma\e(B
-  grave      |    `    | a` -> \e,M`\e(B
-  circumflex |    ^    | a^ -> \e,Mb\e(B
-  diaeresis  |    \"    | a\" -> \e,Md\e(B
-  tilde      |    ~    | a~ -> \e,Mc\e(B
-  breve      |    ~    | g~ -> \e,Mp\e(B
-  cedilla    |    ,    | c, -> \e,Mg\e(B
-  dot        |    .    | i. -> \e,M}\e(B   I. -> \e,M]\e(B
-  nordic     |    /    | a/ -> \e,Me\e(B   e/ -> \e,Mf\e(B   o/ -> \e,Mx\e(B
-  others     |    /    | s/ -> \e,M_\e(B
+  acute      |    '    | a' -> Ã¡
+  grave      |    `    | a` -> Ã 
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  tilde      |    ~    | a~ -> Ã£
+  breve      |    ~    | g~ -> ÄŸ
+  cedilla    |    ,    | c, -> Ã§
+  dot        |    .    | i. -> Ä±   I. -> Ä°
+  nordic     |    /    | a/ -> Ã¥   e/ -> Ã¦   o/ -> Ã¸
+  others     |    /    | s/ -> ÃŸ
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A'" ?\e,MA\e(B)
- ("A/" ?\e,ME\e(B)
- ("A\"" ?\e,MD\e(B)
- ("A^" ?\e,MB\e(B)
- ("A`" ?\e,M@\e(B)
- ("A~" ?\e,MC\e(B)
- ("C," ?\e,MG\e(B)
- ("E'" ?\e,MI\e(B)
- ("E/" ?\e,MF\e(B)
- ("E\"" ?\e,MK\e(B)
- ("E^" ?\e,MJ\e(B)
- ("E`" ?\e,MH\e(B)
- ("G~" ?\e,MP\e(B)
- ("I'" ?\e,MM\e(B)
- ("I." ?\e,M]\e(B)
- ("I\"" ?\e,MO\e(B)
- ("I^" ?\e,MN\e(B)
- ("I`" ?\e,ML\e(B)
- ("N~" ?\e,MQ\e(B)
- ("O'" ?\e,MS\e(B)
- ("O/" ?\e,MX\e(B)
- ("O\"" ?\e,MV\e(B)
- ("O^" ?\e,MT\e(B)
- ("O`" ?\e,MR\e(B)
- ("O~" ?\e,MU\e(B)
- ("S," ?\e,M^\e(B)
- ("U'" ?\e,MZ\e(B)
- ("U\"" ?\e,M\\e(B)
- ("U^" ?\e,M[\e(B)
- ("U`" ?\e,MY\e(B)
- ("a'" ?\e,Ma\e(B)
- ("a/" ?\e,Me\e(B)
- ("a\"" ?\e,Md\e(B)
- ("a^" ?\e,Mb\e(B)
- ("a`" ?\e,M`\e(B)
- ("a~" ?\e,Mc\e(B)
- ("c," ?\e,Mg\e(B)
- ("e'" ?\e,Mi\e(B)
- ("e/" ?\e,Mf\e(B)
- ("e\"" ?\e,Mk\e(B)
- ("e^" ?\e,Mj\e(B)
- ("e`" ?\e,Mh\e(B)
- ("g~" ?\e,Mp\e(B)
- ("i'" ?\e,Mm\e(B)
- ("i." ?\e,M}\e(B)
- ("i\"" ?\e,Mo\e(B)
- ("i^" ?\e,Mn\e(B)
- ("i`" ?\e,Ml\e(B)
- ("n~" ?\e,Mq\e(B)
- ("o'" ?\e,Ms\e(B)
- ("o/" ?\e,Mx\e(B)
- ("o\"" ?\e,Mv\e(B)
- ("o^" ?\e,Mt\e(B)
- ("o`" ?\e,Mr\e(B)
- ("o~" ?\e,Mu\e(B)
- ("s," ?\e,M~\e(B)
- ("s/" ?\e,M_\e(B)
- ("u'" ?\e,Mz\e(B)
- ("u\"" ?\e,M|\e(B)
- ("u^" ?\e,M{\e(B)
- ("u`" ?\e,My\e(B)
- ("y\"" ?\e,M\7f\e(B)
+ ("A'" ?Ã)
+ ("A/" ?Ã…)
+ ("A\"" ?Ä)
+ ("A^" ?Â)
+ ("A`" ?À)
+ ("A~" ?Ã)
+ ("C," ?Ç)
+ ("E'" ?É)
+ ("E/" ?Æ)
+ ("E\"" ?Ë)
+ ("E^" ?Ê)
+ ("E`" ?È)
+ ("G~" ?Äž)
+ ("I'" ?Ã)
+ ("I." ?Ä°)
+ ("I\"" ?Ã)
+ ("I^" ?ÃŽ)
+ ("I`" ?ÃŒ)
+ ("N~" ?Ñ)
+ ("O'" ?Ó)
+ ("O/" ?Ø)
+ ("O\"" ?Ö)
+ ("O^" ?Ô)
+ ("O`" ?Ã’)
+ ("O~" ?Õ)
+ ("S," ?Åž)
+ ("U'" ?Ú)
+ ("U\"" ?Ãœ)
+ ("U^" ?Û)
+ ("U`" ?Ù)
+ ("a'" ?á)
+ ("a/" ?Ã¥)
+ ("a\"" ?ä)
+ ("a^" ?â)
+ ("a`" ?à)
+ ("a~" ?ã)
+ ("c," ?ç)
+ ("e'" ?é)
+ ("e/" ?æ)
+ ("e\"" ?ë)
+ ("e^" ?ê)
+ ("e`" ?è)
+ ("g~" ?ÄŸ)
+ ("i'" ?í)
+ ("i." ?ı)
+ ("i\"" ?ï)
+ ("i^" ?î)
+ ("i`" ?ì)
+ ("n~" ?ñ)
+ ("o'" ?ó)
+ ("o/" ?ø)
+ ("o\"" ?ö)
+ ("o^" ?ô)
+ ("o`" ?ò)
+ ("o~" ?õ)
+ ("s," ?ÅŸ)
+ ("s/" ?ß)
+ ("u'" ?ú)
+ ("u\"" ?ü)
+ ("u^" ?û)
+ ("u`" ?ù)
+ ("y\"" ?ÿ)
 
  ("A''" ["A'"])
  ("A//" ["A/"])
@@ -889,21 +892,21 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 
 (quail-define-package
  "danish-postfix" "Latin-1" "DA<" t
- "Danish input method (rule: AE -> \e,AF\e(B, OE -> \e,AX\e(B, AA -> \e,AE\e(B, E' -> \e,AI\e(B)
+ "Danish input method (rule: AE -> Ã†, OE -> Ã˜, AA -> Ã…, E' -> Ã‰)
 
 Doubling the postfix separates the letter and postfix: e.g. aee -> ae
 "
  nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("AE" ?\e,AF\e(B)
- ("ae" ?\e,Af\e(B)
- ("OE" ?\e,AX\e(B)
- ("oe" ?\e,Ax\e(B)
- ("AA" ?\e,AE\e(B)
- ("aa" ?\e,Ae\e(B)
- ("E'" ?\e,AI\e(B)
- ("e'" ?\e,Ai\e(B)
+ ("AE" ?Æ)
+ ("ae" ?æ)
+ ("OE" ?Ø)
+ ("oe" ?ø)
+ ("AA" ?Ã…)
+ ("aa" ?Ã¥)
+ ("E'" ?É)
+ ("e'" ?é)
 
  ("AEE" ["AE"])
  ("aee" ["ae"])
@@ -920,37 +923,37 @@ Doubling the postfix separates the letter and postfix: e.g. aee -> ae
  "Esperanto input method with postfix modifiers
 
 A following ^ or x will produce an accented character,
-e.g. c^ -> \e,Cf\e(B   gx -> \e,Cx\e(B   u^ -> \e,C}\e(B.
+e.g. c^ -> Ä‰   gx -> Ä   u^ -> Å­.
 
 Doubling the postfix separates the letter and postfix,
 e.g. a'' -> a'.
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("Cx" ?\e,CF\e(B)
- ("C^" ?\e,CF\e(B)
- ("cx" ?\e,Cf\e(B)
- ("c^" ?\e,Cf\e(B)
- ("Gx" ?\e,CX\e(B)
- ("G^" ?\e,CX\e(B)
- ("gx" ?\e,Cx\e(B)
- ("g^" ?\e,Cx\e(B)
- ("Hx" ?\e,C&\e(B)
- ("H^" ?\e,C&\e(B)
- ("hx" ?\e,C6\e(B)
- ("h^" ?\e,C6\e(B)
- ("Jx" ?\e,C,\e(B)
- ("J^" ?\e,C,\e(B)
- ("jx" ?\e,C<\e(B)
- ("j^" ?\e,C<\e(B)
- ("Sx" ?\e,C^\e(B)
- ("S^" ?\e,C^\e(B)
- ("sx" ?\e,C~\e(B)
- ("s^" ?\e,C~\e(B)
- ("Ux" ?\e,C]\e(B)
- ("U^" ?\e,C]\e(B)
- ("ux" ?\e,C}\e(B)
- ("u^" ?\e,C}\e(B)
+ ("Cx" ?Ĉ)
+ ("C^" ?Ĉ)
+ ("cx" ?ĉ)
+ ("c^" ?ĉ)
+ ("Gx" ?Äœ)
+ ("G^" ?Äœ)
+ ("gx" ?Ä)
+ ("g^" ?Ä)
+ ("Hx" ?Ĥ)
+ ("H^" ?Ĥ)
+ ("hx" ?Ä¥)
+ ("h^" ?Ä¥)
+ ("Jx" ?Ä´)
+ ("J^" ?Ä´)
+ ("jx" ?ĵ)
+ ("j^" ?ĵ)
+ ("Sx" ?Åœ)
+ ("S^" ?Åœ)
+ ("sx" ?Å)
+ ("s^" ?Å)
+ ("Ux" ?Ŭ)
+ ("U^" ?Ŭ)
+ ("ux" ?Å­)
+ ("u^" ?Å­)
 
  ("Cxx" ["Cx"])
  ("C^^" ["C^"])
@@ -982,18 +985,18 @@ e.g. a'' -> a'.
  "finnish-postfix" "Latin-1" "FI<" t
  "Finnish (Suomi) input method
 
-AE  -> \e,AD\e(B
+AE  -> Ã„
 AEE -> AE
-OE  -> \e,AV\e(B
+OE  -> Ã–
 OEE -> OE
 "
  nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("AE" ?\e,AD\e(B)
- ("ae" ?\e,Ad\e(B)
- ("OE" ?\e,AV\e(B)
- ("oe" ?\e,Av\e(B)
+ ("AE" ?Ä)
+ ("ae" ?ä)
+ ("OE" ?Ö)
+ ("oe" ?ö)
 
  ("AEE" ["AE"])
  ("aee" ["ae"])
@@ -1003,12 +1006,12 @@ OEE -> OE
 
 (quail-define-package
  "french-postfix" "French" "FR<" t
- "French (Fran\e,Ag\e(Bais) input method with postfix modifiers
+ "French (Français) input method with postfix modifiers
 
-` pour grave, ' pour aigu, ^ pour circonflexe, et \" pour tr\e,Ai\e(Bma.
-Par exemple: a` -> \e,A`\e(B   e' -> \e,Ai\e(B.
+` pour grave, ' pour aigu, ^ pour circonflexe, et \" pour tréma.
+Par exemple: a` -> Ã    e' -> Ã©.
 
-\e,AG\e(B, \e,A+\e(B, et \e,A;\e(B sont produits par C,, <<, et >>.
+Ç, Â«, et Â» sont produits par C,, <<, et >>.
 
 En doublant la frappe des diacritiques, ils s'isoleront de la lettre.
 Par exemple: e'' -> e'
@@ -1017,34 +1020,34 @@ Par exemple: e'' -> e'
  nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A`" ?\e,A@\e(B)
- ("A^" ?\e,AB\e(B)
- ("a`" ?\e,A`\e(B)
- ("a^" ?\e,Ab\e(B)
- ("E`" ?\e,AH\e(B)
- ("E'" ?\e,AI\e(B)
- ("E^" ?\e,AJ\e(B)
- ("E\"" ?\e,AK\e(B)
- ("e`" ?\e,Ah\e(B)
- ("e'" ?\e,Ai\e(B)
- ("e^" ?\e,Aj\e(B)
- ("e\"" ?\e,Ak\e(B)
- ("I^" ?\e,AN\e(B)
- ("I\"" ?\e,AO\e(B)
- ("i^" ?\e,An\e(B)
- ("i\"" ?\e,Ao\e(B)
- ("O^" ?\e,AT\e(B)
- ("o^" ?\e,At\e(B)
- ("U`" ?\e,AY\e(B)
- ("U^" ?\e,A[\e(B)
- ("U\"" ?\e,A\\e(B)
- ("u`" ?\e,Ay\e(B)
- ("u^" ?\e,A{\e(B)
- ("u\"" ?\e,A|\e(B)
- ("C," ?\e,AG\e(B)
- ("c," ?\e,Ag\e(B)
- ("<<" ?\e,A+\e(B)
- (">>" ?\e,A;\e(B)
+ ("A`" ?À)
+ ("A^" ?Â)
+ ("a`" ?à)
+ ("a^" ?â)
+ ("E`" ?È)
+ ("E'" ?É)
+ ("E^" ?Ê)
+ ("E\"" ?Ë)
+ ("e`" ?è)
+ ("e'" ?é)
+ ("e^" ?ê)
+ ("e\"" ?ë)
+ ("I^" ?ÃŽ)
+ ("I\"" ?Ã)
+ ("i^" ?î)
+ ("i\"" ?ï)
+ ("O^" ?Ô)
+ ("o^" ?ô)
+ ("U`" ?Ù)
+ ("U^" ?Û)
+ ("U\"" ?Ãœ)
+ ("u`" ?ù)
+ ("u^" ?û)
+ ("u\"" ?ü)
+ ("C," ?Ç)
+ ("c," ?ç)
+ ("<<" ?«)
+ (">>" ?»)
 
  ("A``" ["A`"])
  ("A^^" ["A^"])
@@ -1080,25 +1083,25 @@ Par exemple: e'' -> e'
  "german-postfix" "German" "DE<" t
  "German (Deutsch) input method
 
-ae  -> \e,Ad\e(B
+ae  -> Ã¤
 aee -> ae
-oe  -> \e,Av\e(B
+oe  -> Ã¶
 oee -> oe
-ue  -> \e,A|\e(B
+ue  -> Ã¼
 uee -> ue
-sz  -> \e,A_\e(B
+sz  -> ÃŸ
 szz -> sz
 "
  nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("AE" ?\e,AD\e(B)
- ("ae" ?\e,Ad\e(B)
- ("OE" ?\e,AV\e(B)
- ("oe" ?\e,Av\e(B)
- ("UE" ?\e,A\\e(B)
- ("ue" ?\e,A|\e(B)
- ("sz" ?\e,A_\e(B)
+ ("AE" ?Ä)
+ ("ae" ?ä)
+ ("OE" ?Ö)
+ ("oe" ?ö)
+ ("UE" ?Ãœ)
+ ("ue" ?ü)
+ ("sz" ?ß)
 
  ("AEE" ["AE"])
  ("aee" ["ae"])
@@ -1111,43 +1114,43 @@ szz -> sz
 
 (quail-define-package
  "icelandic-postfix" "Latin-1" "IS<" t
- "Icelandic (\e,AM\e(Bslenska) input method with postfix modifiers
-
-A' -> \e,AA\e(B
-E' -> \e,AI\e(B
-I' -> \e,AM\e(B
-O' -> \e,AS\e(B
-U' -> \e,AZ\e(B
-Y' -> \e,A]\e(B
-AE -> \e,AF\e(B
-OE -> \e,AV\e(B
-D/ -> \e,AP\e(B (eth)
-T/ -> \e,A^\e(B (thorn)
+ "Icelandic (Ãslenska) input method with postfix modifiers
+
+A' -> Ã
+E' -> Ã‰
+I' -> Ã
+O' -> Ã“
+U' -> Ãš
+Y' -> Ã
+AE -> Ã†
+OE -> Ã–
+D/ -> Ã (eth)
+T/ -> Ãž (thorn)
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A'" ?\e,AA\e(B)
- ("a'" ?\e,Aa\e(B)
- ("E'" ?\e,AI\e(B)
- ("e'" ?\e,Ai\e(B)
- ("I'" ?\e,AM\e(B)
- ("i'" ?\e,Am\e(B)
- ("O'" ?\e,AS\e(B)
- ("o'" ?\e,As\e(B)
- ("U'" ?\e,AZ\e(B)
- ("u'" ?\e,Az\e(B)
- ("Y'" ?\e,A]\e(B)
- ("y'" ?\e,A}\e(B)
- ("AE" ?\e,AF\e(B)
- ("ae" ?\e,Af\e(B)
- ("OE" ?\e,AV\e(B)
- ("oe" ?\e,Av\e(B)
- ("D/" ?\e,AP\e(B)
- ("d/" ?\e,Ap\e(B)
- ("T/" ?\e,A^\e(B)
- ("t/" ?\e,A~\e(B)
+ ("A'" ?Ã)
+ ("a'" ?á)
+ ("E'" ?É)
+ ("e'" ?é)
+ ("I'" ?Ã)
+ ("i'" ?í)
+ ("O'" ?Ó)
+ ("o'" ?ó)
+ ("U'" ?Ú)
+ ("u'" ?ú)
+ ("Y'" ?Ã)
+ ("y'" ?ý)
+ ("AE" ?Æ)
+ ("ae" ?æ)
+ ("OE" ?Ö)
+ ("oe" ?ö)
+ ("D/" ?Ã)
+ ("d/" ?ð)
+ ("T/" ?Þ)
+ ("t/" ?þ)
 
  ("A''" ["A'"])
  ("a''" ["a'"])
@@ -1175,11 +1178,11 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
  "italian-postfix" "Latin-1" "IT<" t
  "Italian (Italiano) input method with postfix modifiers
 
-a` -> \e,A`\e(B    A` -> \e,A@\e(B    e' -> \e,Ai\e(B    << -> \e,A+\e(B
-e` -> \e,Ah\e(B    E` -> \e,AH\e(B    E' -> \e,AI\e(B    >> -> \e,A;\e(B
-i` -> \e,Al\e(B    I` -> \e,AL\e(B               o_ -> \e,A:\e(B
-o` -> \e,Ar\e(B    O` -> \e,AR\e(B               a_ -> \e,A*\e(B
-u` -> \e,Ay\e(B    U` -> \e,AY\e(B
+a` -> Ã     A` -> Ã€    e' -> Ã©    << -> Â«
+e` -> Ã¨    E` -> Ãˆ    E' -> Ã‰    >> -> Â»
+i` -> Ã¬    I` -> ÃŒ               o_ -> Âº
+o` -> Ã²    O` -> Ã’               a_ -> Âª
+u` -> Ã¹    U` -> Ã™
 
 Typewriter-style italian characters.
 
@@ -1187,22 +1190,22 @@ Doubling the postfix separates the letter and postfix: e.g. a`` -> a`
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A`" ?\e,A@\e(B)
- ("a`" ?\e,A`\e(B)
- ("E`" ?\e,AH\e(B)
- ("E'" ?\e,AI\e(B)
- ("e`" ?\e,Ah\e(B)
- ("e'" ?\e,Ai\e(B)
- ("I`" ?\e,AL\e(B)
- ("i`" ?\e,Al\e(B)
- ("O`" ?\e,AR\e(B)
- ("o`" ?\e,Ar\e(B)
- ("U`" ?\e,AY\e(B)
- ("u`" ?\e,Ay\e(B)
- ("<<" ?\e,A+\e(B)
- (">>" ?\e,A;\e(B)
- ("o_" ?\e,A:\e(B)
- ("a_" ?\e,A*\e(B)
+ ("A`" ?À)
+ ("a`" ?à)
+ ("E`" ?È)
+ ("E'" ?É)
+ ("e`" ?è)
+ ("e'" ?é)
+ ("I`" ?ÃŒ)
+ ("i`" ?ì)
+ ("O`" ?Ã’)
+ ("o`" ?ò)
+ ("U`" ?Ù)
+ ("u`" ?ù)
+ ("<<" ?«)
+ (">>" ?»)
+ ("o_" ?º)
+ ("a_" ?ª)
 
  ("A``" ["A`"])
  ("a``" ["a`"])
@@ -1224,21 +1227,21 @@ Doubling the postfix separates the letter and postfix: e.g. a`` -> a`
 
 (quail-define-package
  "norwegian-postfix" "Latin-1" "NO<" t
- "Norwegian (Norsk) input method (rule: AE->\e,AF\e(B   OE->\e,AX\e(B   AA->\e,AE\e(B   E'->\e,AI\e(B)
+ "Norwegian (Norsk) input method (rule: AE->Æ   OE->Ø   AA->Ã…   E'->É)
 
 Doubling the postfix separates the letter and postfix: e.g. aee -> ae
 "
  nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("AE" ?\e,AF\e(B)
- ("ae" ?\e,Af\e(B)
- ("OE" ?\e,AX\e(B)
- ("oe" ?\e,Ax\e(B)
- ("AA" ?\e,AE\e(B)
- ("aa" ?\e,Ae\e(B)
- ("E'" ?\e,AI\e(B)
- ("e'" ?\e,Ai\e(B)
+ ("AE" ?Æ)
+ ("ae" ?æ)
+ ("OE" ?Ø)
+ ("oe" ?ø)
+ ("AA" ?Ã…)
+ ("aa" ?Ã¥)
+ ("E'" ?É)
+ ("e'" ?é)
 
  ("AEE" ["AE"])
  ("aee" ["ae"])
@@ -1255,30 +1258,30 @@ Doubling the postfix separates the letter and postfix: e.g. aee -> ae
  "Scandinavian input method with postfix modifiers
 Supported languages are Swedish, Norwegian, Danish, and Finnish.
 
-ae -> \e,Af\e(B
-oe -> \e,Ax\e(B
-aa -> \e,Ae\e(B
-a\" -> \e,Ad\e(B
-o\" -> \e,Av\e(B
-e' -> \e,Ai\e(B
+ae -> Ã¦
+oe -> Ã¸
+aa -> Ã¥
+a\" -> Ã¤
+o\" -> Ã¶
+e' -> Ã©
 
 Doubling the postfix separates the letter and postfix:
 aee -> ae   o\"\" -> o\"   etc.
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("AE" ?\e,AF\e(B)
- ("ae" ?\e,Af\e(B)
- ("OE" ?\e,AX\e(B)
- ("oe" ?\e,Ax\e(B)
- ("AA" ?\e,AE\e(B)
- ("aa" ?\e,Ae\e(B)
- ("A\"" ?\e,AD\e(B)
- ("a\"" ?\e,Ad\e(B)
- ("O\"" ?\e,AV\e(B)
- ("o\"" ?\e,Av\e(B)
- ("E'" ?\e,AI\e(B)
- ("e'" ?\e,Ai\e(B)
+ ("AE" ?Æ)
+ ("ae" ?æ)
+ ("OE" ?Ø)
+ ("oe" ?ø)
+ ("AA" ?Ã…)
+ ("aa" ?Ã¥)
+ ("A\"" ?Ä)
+ ("a\"" ?ä)
+ ("O\"" ?Ö)
+ ("o\"" ?ö)
+ ("E'" ?É)
+ ("e'" ?é)
 
  ("AEE" ["AE"])
  ("aee" ["ae"])
@@ -1296,38 +1299,38 @@ aee -> ae   o\"\" -> o\"   etc.
 
 (quail-define-package
  "spanish-postfix" "Spanish" "ES<" t
- "Spanish (Espa\e,Aq\e(Bol) input method with postfix modifiers
+ "Spanish (Español) input method with postfix modifiers
 
-A' -> \e,AA\e(B
-E' -> \e,AI\e(B
-I' -> \e,AM\e(B
-O' -> \e,AS\e(B
-U' -> \e,AZ\e(B
-N~ -> \e,AQ\e(B
-!/ -> \e,A!\e(B
-?/ -> \e,A?\e(B
+A' -> Ã
+E' -> Ã‰
+I' -> Ã
+O' -> Ã“
+U' -> Ãš
+N~ -> Ã‘
+!/ -> Â¡
+?/ -> Â¿
 
 Doubling the postfix separates the letter and postfix:
 a'' -> a'   n~~ -> n~, etc.
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A'" ?\e,AA\e(B)
- ("a'" ?\e,Aa\e(B)
- ("E'" ?\e,AI\e(B)
- ("e'" ?\e,Ai\e(B)
- ("I'" ?\e,AM\e(B)
- ("i'" ?\e,Am\e(B)
- ("O'" ?\e,AS\e(B)
- ("o'" ?\e,As\e(B)
- ("U'" ?\e,AZ\e(B)
- ("u'" ?\e,Az\e(B)
- ("U\"" ?\e,C\\e(B)
- ("u\"" ?\e,C|\e(B)
- ("N~" ?\e,AQ\e(B)
- ("n~" ?\e,Aq\e(B)
- ("?/" ?\e,A?\e(B)
- ("!/" ?\e,A!\e(B)
+ ("A'" ?Ã)
+ ("a'" ?á)
+ ("E'" ?É)
+ ("e'" ?é)
+ ("I'" ?Ã)
+ ("i'" ?í)
+ ("O'" ?Ó)
+ ("o'" ?ó)
+ ("U'" ?Ú)
+ ("u'" ?ú)
+ ("U\"" ?Ãœ)
+ ("u\"" ?ü)
+ ("N~" ?Ñ)
+ ("n~" ?ñ)
+ ("?/" ?¿)
+ ("!/" ?¡)
 
  ("A''" ["A'"])
  ("a''" ["a'"])
@@ -1349,20 +1352,20 @@ a'' -> a'   n~~ -> n~, etc.
 
 (quail-define-package
  "swedish-postfix" "Latin-1" "SV<" t
- "Swedish (Svenska) input method (rule: AA -> \e,AE\e(B   AE -> \e,AD\e(B   OE -> \e,AV\e(B   E' -> \e,AI\e(B)
+ "Swedish (Svenska) input method (rule: AA -> Ã…   AE -> Ã„   OE -> Ã–   E' -> Ã‰)
 
 Doubling the postfix separates the letter and postfix: e.g. aee -> ae
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("AA" ?\e,AE\e(B)
- ("aa" ?\e,Ae\e(B)
- ("AE" ?\e,AD\e(B)
- ("ae" ?\e,Ad\e(B)
- ("OE" ?\e,AV\e(B)
- ("oe" ?\e,Av\e(B)
- ("E'" ?\e,AI\e(B)
- ("e'" ?\e,Ai\e(B)
+ ("AA" ?Ã…)
+ ("aa" ?Ã¥)
+ ("AE" ?Ä)
+ ("ae" ?ä)
+ ("OE" ?Ö)
+ ("oe" ?ö)
+ ("E'" ?É)
+ ("e'" ?é)
 
  ("AAA" ["AA"])
  ("aaa" ["aa"])
@@ -1374,111 +1377,46 @@ Doubling the postfix separates the letter and postfix: e.g. aee -> ae
  ("e''" ["e'"])
  )
 
-(quail-define-package
- "turkish-latin-3-postfix" "Turkish" "TR3<" t
- "Turkish (T\e,C|\e(Brk\e,Cg\e(Be) input method with postfix modifiers.
-
-This is for those who use Latin-3 (ISO-8859-3) for Turkish.  If you
-use Latin-5 (ISO-8859-9), you should use \"turkish-postfix\" instead.
-
-Note for I, \e,C9\e(B, \e,C)\e(B, i.
-
-A^ -> \e,CB\e(B
-C, -> \e,CG\e(B
-G^ -> \e,C+\e(B
-I  -> I
-i  -> \e,C9\e(B
-I. -> \e,C)\e(B
-i. -> i
-O\" -> \e,CV\e(B
-S, -> \e,C*\e(B
-U\" -> \e,C\\e(B
-U^ -> \e,C[\e(B
-
-Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
-" nil t nil nil nil nil nil nil nil nil t)
-
-(quail-define-rules
- ("A^" ?\e,CB\e(B)
- ("a^" ?\e,Cb\e(B)
- ("C," ?\e,CG\e(B)
- ("c," ?\e,Cg\e(B)
- ("G^" ?\e,C+\e(B)
- ("g^" ?\e,C;\e(B)
- ("I." ?\e,C)\e(B)
- ("i" ?\e,C9\e(B)
- ("i." ?i)
- ("O\"" ?\e,CV\e(B)
- ("o\"" ?\e,Cv\e(B)
- ("S," ?\e,C*\e(B)
- ("s," ?\e,C:\e(B)
- ("U\"" ?\e,C\\e(B)
- ("u\"" ?\e,C|\e(B)
- ("U^" ?\e,C[\e(B)
- ("u^" ?\e,C{\e(B)
-
- ("A^^" ["A^"])
- ("a^^" ["a^"])
- ("C,," ["C,"])
- ("c,," ["c,"])
- ("G^^" ["G^"])
- ("g^^" ["g^"])
- ("I.." ["I."])
- ("i" ["i"])
- ("i.." ["i."])
- ("O\"\"" ["O\""])
- ("o\"\"" ["o\""])
- ("S,," ["S,"])
- ("s,," ["s,"])
- ("U\"\"" ["U\""])
- ("u\"\"" ["u\""])
- ("U^^" ["U^"])
- ("u^^" ["u^"])
- )
-
 (quail-define-package
  "turkish-postfix" "Turkish" "TR<" t
- "Turkish (T\e,M|\e(Brk\e,Mg\e(Be) input method with postfix modifiers.
+ "Turkish (Türkçe) input method with postfix modifiers.
+turkish-latin-3-postfix is an obsolete alias for turkish-postfix.
 
-This is for those who use Latin-5 (ISO-8859-9) for Turkish.  If you
-use Latin-3 (ISO-8859-3), you should use \"turkish-latin-3-postfix\"
-instead.
+Note for I, Ä±, Ä°, i.
 
-Note for I, \e,M}\e(B, \e,M]\e(B, i.
-
-A^ -> \e,MB\e(B
-C, -> \e,MG\e(B
-G^ -> \e,MP\e(B
+A^ -> Ã‚
+C, -> Ã‡
+G^ -> Äž
 I  -> I
-i  -> \e,M}\e(B
-I. -> \e,M]\e(B
+i  -> Ä±
+I. -> Ä°
 i. -> i
-O\" -> \e,MV\e(B
-S, -> \e,M^\e(B
-U\" -> \e,M\\e(B
-U^ -> \e,M[\e(B
+O\" -> Ã–
+S, -> Åž
+U\" -> Ãœ
+U^ -> Ã›
 
 Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("A^" ?\e,MB\e(B)
- ("a^" ?\e,Mb\e(B)
- ("C," ?\e,MG\e(B)
- ("c," ?\e,Mg\e(B)
- ("G^" ?\e,MP\e(B)
- ("g^" ?\e,Mp\e(B)
- ("I." ?\e,M]\e(B)
- ("i" ?\e,M}\e(B)
+ ("A^" ?Â)
+ ("a^" ?â)
+ ("C," ?Ç)
+ ("c," ?ç)
+ ("G^" ?Äž)
+ ("g^" ?ÄŸ)
+ ("I." ?Ä°)
+ ("i" ?ı)
  ("i." ?i)
- ("O\"" ?\e,MV\e(B)
- ("o\"" ?\e,Mv\e(B)
- ("S," ?\e,M^\e(B)
- ("s," ?\e,M~\e(B)
- ("U\"" ?\e,M\\e(B)
- ("u\"" ?\e,M|\e(B)
- ("U^" ?\e,M[\e(B)
- ("u^" ?\e,M{\e(B)
+ ("O\"" ?Ö)
+ ("o\"" ?ö)
+ ("S," ?Åž)
+ ("s," ?ÅŸ)
+ ("U\"" ?Ãœ)
+ ("u\"" ?ü)
+ ("U^" ?Û)
+ ("u^" ?û)
 
  ("A^^" ["A^"])
  ("a^^" ["a^"])
@@ -1499,17 +1437,22 @@ Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
  ("u^^" ["u^"])
  )
 
+;; Backwards compatibility.
+(push (cons "turkish-latin-3-postfix"
+           (cdr (assoc "turkish-postfix" quail-package-alist)))
+      quail-package-alist)
+
 (quail-define-package
- "british" "Latin-1" "\e,A#\e(B@" t
- "British English input method with Latin-1 character \e,A#\e(B (# -> \e,A#\e(B)"
+ "british" "Latin-1" "£@" t
+ "British English input method with Latin-1 character Â£ (# -> Â£)"
  nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("#" [?\e,A#\e(B ?#])
+ ("#" [?£ ?#])
  )
 
 ;; The following are various quail packages for those who think
-;; the aboves are too awkward.  Supported languages and their
+;; the above are too awkward.  Supported languages and their
 ;; package name are:
 ;;
 ;; French      (frnch, azerty)
@@ -1529,28 +1472,28 @@ Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
 ;;
 (quail-define-package
  "french-keyboard" "French" "FR@" t
- "French (Fran\e,Ag\e(Bais) input method simulating some French keyboard
+ "French (Français) input method simulating some French keyboard
 <e dans l'o> n'est pas disponible." nil t t t t nil nil nil nil nil t)
 
-;; \e,Aj\e(B1  \e,Ai\e(B2  \e,Ah\e(B3  \e,At\e(B4  \e,An\e(B5  \e,Ao\e(B6  \e,Ab\e(B7  \e,A{\e(B8  \e,Ay\e(B9  \e,A`\e(B0  -_  \e,Ak\e(B+  `~
-;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AgG\e(B  \e,A|\e(B&
+;; Ãª1  Ã©2  Ã¨3  Ã´4  Ã®5  Ã¯6  Ã¢7  Ã»8  Ã¹9  Ã 0  -_  Ã«+  `~
+;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  Ã§Ã‡  Ã¼&
 ;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  ;:  '"  \|
 ;;    zZ  xX  cC  vV  bB  nN  mM  ,(  .)  !?
 
 (quail-define-rules
- ("1" ?\e,Aj\e(B)
- ("2" ?\e,Ai\e(B)
- ("3" ?\e,Ah\e(B)
- ("4" ?\e,At\e(B)
- ("5" ?\e,An\e(B)
- ("6" ?\e,Ao\e(B)
- ("7" ?\e,Ab\e(B)
- ("8" ?\e,A{\e(B)
- ("9" ?\e,Ay\e(B)
- ("0" ?\e,A`\e(B)
- ("=" ?\e,Ak\e(B)
- ("[" ?\e,Ag\e(B)
- ("]" ?\e,A|\e(B)
+ ("1" ?ê)
+ ("2" ?é)
+ ("3" ?è)
+ ("4" ?ô)
+ ("5" ?î)
+ ("6" ?ï)
+ ("7" ?â)
+ ("8" ?û)
+ ("9" ?ù)
+ ("0" ?à)
+ ("=" ?ë)
+ ("[" ?ç)
+ ("]" ?ü)
 
  ("!" ?1)
  ("@" ?2)
@@ -1562,7 +1505,7 @@ Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
  ("*" ?8)
  ("(" ?9)
  (")" ?0)
- ("{" ?\e,AG\e(B)
+ ("{" ?Ç)
  ("}" ?&)
  ("<" ?\()
  (">" ?\))
@@ -1571,28 +1514,28 @@ Doubling the postfix separates the letter and postfix: e.g. a^^ -> a^
 ;;
 (quail-define-package
  "french-azerty" "French" "AZ@" t
- "French (Fran\e,Ag\e(Bais) input method simulating Azerty keyboard
+ "French (Français) input method simulating Azerty keyboard
 
-Similaire au clavier fran\e,Ag\e(Bais de SUN.
-pr\e,Ai\e(Bfixes:  ^ pour circonflexe,  \e,A(\e(B pour tr\e,Ai\e(Bma.
+Similaire au clavier français de SUN.
+préfixes:  ^ pour circonflexe,  Â¨ pour tréma.
 <e dans l'o> n'est pas disponible." nil t t t t nil nil nil nil nil t)
 
-;; &1  \e,Ai\e(B2  "3  '4  (5  \e,A'\e(B6  \e,Ah\e(B7  !8  \e,Ag\e(B9  \e,A`\e(B0  )\e,A0\e(B -_  @~
-;;  aA  zZ  eE  rR  tT  yY  uU  iI  oO  pP  ^\e,A(\e(B  `$
-;;   qQ  sS  dD  fF  gG  hH  jJ  kK  lL  mM  \e,Ay\e(B%  *|
+;; &1  Ã©2  "3  '4  (5  Â§6  Ã¨7  !8  Ã§9  Ã 0  )° -_  @~
+;;  aA  zZ  eE  rR  tT  yY  uU  iI  oO  pP  ^¨  `$
+;;   qQ  sS  dD  fF  gG  hH  jJ  kK  lL  mM  Ã¹%  *|
 ;;    wW  xX  cC  vV  bB  nN  ,?  ;.  :/  =+
 
 (quail-define-rules
  ("1" ?&)
- ("2" ?\e,Ai\e(B)
+ ("2" ?é)
  ("3" ?\")
  ("4" ?')
  ("5" ?\()
- ("6" ?\e,A'\e(B)
- ("7" ?\e,Ah\e(B)
+ ("6" ?§)
+ ("7" ?è)
  ("8" ?!)
- ("9" ?\e,Ag\e(B)
- ("0" ?\e,A`\e(B)
+ ("9" ?ç)
+ ("0" ?à)
  ("-" ?\))
  ("=" ?-)
  ("`" ?@)
@@ -1618,7 +1561,7 @@ pr\e,Ai\e(Bfixes:  ^ pour circonflexe,  \e,A(\e(B pour tr\e,Ai\e(Bma.
  ("k" ?k)
  ("l" ?l)
  (";" ?m)
- ("'" ?\e,Ay\e(B)
+ ("'" ?ù)
  ("\\" ?*)
  ("z" ?w)
  ("x" ?x)
@@ -1641,7 +1584,7 @@ pr\e,Ai\e(Bfixes:  ^ pour circonflexe,  \e,A(\e(B pour tr\e,Ai\e(Bma.
  ("*" ?8)
  ("(" ?9)
  (")" ?0)
- ("_" ?\e,A0\e(B)
+ ("_" ?°)
  ("+" ?_)
  ("~" ?~)
  ("Q" ?A)
@@ -1654,7 +1597,7 @@ pr\e,Ai\e(Bfixes:  ^ pour circonflexe,  \e,A(\e(B pour tr\e,Ai\e(Bma.
  ("I" ?I)
  ("O" ?O)
  ("P" ?P)
- ("{" ?\e,A(\e(B)
+ ("{" ?¨)
  ("}" ?$)
  ("A" ?Q)
  ("S" ?S)
@@ -1679,68 +1622,68 @@ pr\e,Ai\e(Bfixes:  ^ pour circonflexe,  \e,A(\e(B pour tr\e,Ai\e(Bma.
  (">" ?/)
  ("?" ?+)
 
- ("[q" ?\e,Ab\e(B)
- ("[e" ?\e,Aj\e(B)
- ("[i" ?\e,An\e(B)
- ("[o" ?\e,At\e(B)
- ("[u" ?\e,A{\e(B)
+ ("[q" ?â)
+ ("[e" ?ê)
+ ("[i" ?î)
+ ("[o" ?ô)
+ ("[u" ?û)
 
- ("{e" ?\e,Ak\e(B)
- ("{i" ?\e,Ao\e(B)
- ("{u" ?\e,A|\e(B)
+ ("{e" ?ë)
+ ("{i" ?ï)
+ ("{u" ?ü)
 
  ("[[" ?^)
- ("{{" ?\e,A(\e(B)
+ ("{{" ?¨)
  )
 
 ;;
 (quail-define-package
  "icelandic-keyboard" "Latin-1" "IS@" t
- "Icelandic (\e,AM\e(Bslenska) input method simulating some Icelandic keyboard
+ "Icelandic (Ãslenska) input method simulating some Icelandic keyboard
 
-Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
+Dead accent is right to Ã¦." nil t t t t nil nil nil nil nil t)
 
-;; 1!  2"  3#  4$  5%  6^  7&  8*  9(  0)  \e,AvV\e(B  -_  `~
-;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,ApP\e(B  '?
-;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  \e,AfF\e(B  \e,A44\e(B  +*
-;;    zZ  xX  cC  vV  bB  nN  mM  ,;  .:  \e,A~^\e(B
+;; 1!  2"  3#  4$  5%  6^  7&  8*  9(  0)  Ã¶Ã–  -_  `~
+;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  Ã°Ã  '?
+;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  Ã¦Ã†  Â´Â´  +*
+;;    zZ  xX  cC  vV  bB  nN  mM  ,;  .:  Ã¾Ãž
 
 (quail-define-rules
- ("-" ?\e,Av\e(B)
+ ("-" ?ö)
  ("=" ?-)
- ("[" ?\e,Ap\e(B)
+ ("[" ?ð)
  ("]" ?')
- (";" ?\e,Af\e(B)
- ("'" ?\e,A4\e(B)
+ (";" ?æ)
+ ("'" ?´)
  ("\\" ?+)
- ("/" ?\e,A~\e(B)
+ ("/" ?þ)
 
  ("@" ?\")
- ("_" ?\e,AV\e(B)
+ ("_" ?Ö)
  ("+" ?_)
- ("{" ?\e,AP\e(B)
+ ("{" ?Ã)
  ("}" ??)
- (":" ?\e,AF\e(B)
- ("\"" ?\e,A4\e(B)
+ (":" ?Æ)
+ ("\"" ?´)
  ("|" ?*)
  ("<" ?\;)
  (">" ?:)
- ("?" ?\e,A^\e(B)
-
- ("'a" ?\e,Aa\e(B)
- ("'e" ?\e,Ai\e(B)
- ("'i" ?\e,Am\e(B)
- ("'o" ?\e,As\e(B)
- ("'u" ?\e,Az\e(B)
- ("'y" ?\e,A}\e(B)
- ("'A" ?\e,AA\e(B)
- ("'E" ?\e,AI\e(B)
- ("'I" ?\e,AM\e(B)
- ("'O" ?\e,AS\e(B)
- ("'U" ?\e,AZ\e(B)
- ("'Y" ?\e,A]\e(B)
-
- ("''" ?\e,A4\e(B)
+ ("?" ?Þ)
+
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
+ ("'y" ?ý)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'Y" ?Ã)
+
+ ("''" ?´)
  )
 
 ;;
@@ -1749,36 +1692,36 @@ Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
  "Danish input method simulating SUN Danish keyboard"
  nil t t t t nil nil nil nil nil t)
 
-;; 1!  2"  3#  4\e,A$\e(B  5%  6&  7/  8(  9)  0=  +?  \e,A='\e(B  ~^
-;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AeE\e(B  \e,AiI\e(B
-;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  \e,AfF\e(B  \e,AxX\e(B  '*
+;; 1!  2"  3#  4¤  5%  6&  7/  8(  9)  0=  +?  Â½Â§  ~^
+;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  Ã¥Ã…  Ã©Ã‰
+;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  Ã¦Ã†  Ã¸Ã˜  '*
 ;;    zZ  xX  cC  vV  bB  nN  mM  ,;  .:  -_
 
 (quail-define-rules
  ("-" ?+)
- ("=" ?\e,A=\e(B)
+ ("=" ?½)
  ("`" ?~)
- ("[" ?\e,Ae\e(B)
- ("]" ?\e,Ai\e(B)
- (";" ?\e,Af\e(B)
- ("'" ?\e,Ax\e(B)
+ ("[" ?Ã¥)
+ ("]" ?é)
+ (";" ?æ)
+ ("'" ?ø)
  ("\\" ?')
  ("/" ?-)
 
  ("@" ?\")
- ("$" ?\e,A$\e(B)
+ ("$" ?¤)
  ("^" ?&)
  ("&" ?/)
  ("*" ?\()
  ("(" ?\))
  (")" ?=)
  ("_" ??)
- ("+" ?\e,A'\e(B)
+ ("+" ?§)
  ("~" ?^)
- ("{" ?\e,AE\e(B)
- ("}" ?\e,AI\e(B)
- (":" ?\e,AF\e(B)
- ("\"" ?\e,AX\e(B)
+ ("{" ?Ã…)
+ ("}" ?É)
+ (":" ?Æ)
+ ("\"" ?Ø)
  ("|" ?*)
  ("<" ?\;)
  (">" ?:)
@@ -1791,37 +1734,37 @@ Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
  "Norwegian (Norsk) input method simulating SUN Norwegian keyboard"
  nil t t t t nil nil nil nil nil t)
 
-;; 1!  2"  3#  4\e,A$\e(B  5%  6&  7/  8(  9)  0=  +?  |\e,A'\e(B  ~^
-;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AeE\e(B  \e,AiI\e(B
-;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  \e,AxX\e(B  \e,AfF\e(B  '*
+;; 1!  2"  3#  4¤  5%  6&  7/  8(  9)  0=  +?  |§  ~^
+;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  Ã¥Ã…  Ã©Ã‰
+;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  Ã¸Ã˜  Ã¦Ã†  '*
 ;;    zZ  xX  cC  vV  bB  nN  mM  ,;  .:  '?
 
 (quail-define-rules
  ("-" ?+)
  ("=" ?|)
  ("`" ?~)
- ("[" ?\e,Ae\e(B)
- ("]" ?\e,Ai\e(B)
- (";" ?\e,Ax\e(B)
- ("'" ?\e,Af\e(B)
+ ("[" ?Ã¥)
+ ("]" ?é)
+ (";" ?ø)
+ ("'" ?æ)
  ("\\" ?')
  ("/" ?-)
 
  ("!" ?!)
  ("@" ?\")
- ("$" ?\e,A$\e(B)
+ ("$" ?¤)
  ("^" ?&)
  ("&" ?/)
  ("*" ?\()
  ("(" ?\))
  (")" ?=)
  ("_" ??)
- ("+" ?\e,A'\e(B)
+ ("+" ?§)
  ("~" ?^)
- ("{" ?\e,AE\e(B)
- ("}" ?\e,AI\e(B)
- (":" ?\e,AX\e(B)
- ("\"" ?\e,AF\e(B)
+ ("{" ?Ã…)
+ ("}" ?É)
+ (":" ?Ø)
+ ("\"" ?Æ)
  ("|" ?*)
  ("<" ?\;)
  (">" ?:)
@@ -1834,36 +1777,36 @@ Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
  "Swedish (Svenska) input method simulating SUN Swedish/Finnish keyboard"
  nil t t t t nil nil nil nil nil t)
 
-;; 1!  2"  3#  4\e,A$\e(B  5%  6&  7/  8(  9)  0=  +?  \e,A'=\e(B  ~^
-;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AeE\e(B  \e,AiI\e(B
-;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  \e,AvV\e(B  \e,AdD\e(B  '*
+;; 1!  2"  3#  4¤  5%  6&  7/  8(  9)  0=  +?  Â§Â½  ~^
+;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  Ã¥Ã…  Ã©Ã‰
+;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  Ã¶Ã–  Ã¤Ã„  '*
 ;;    zZ  xX  cC  vV  bB  nN  mM  ,;  .:  -_
 
 (quail-define-rules
  ("-" ?+)
- ("=" ?\e,A'\e(B)
+ ("=" ?§)
  ("`" ?~)
- ("[" ?\e,Ae\e(B)
- ("]" ?\e,Ai\e(B)
- (";" ?\e,Av\e(B)
- ("'" ?\e,Ad\e(B)
+ ("[" ?Ã¥)
+ ("]" ?é)
+ (";" ?ö)
+ ("'" ?ä)
  ("\\" ?')
  ("/" ?-)
 
  ("@" ?\")
- ("$" ?\e,A$\e(B)
+ ("$" ?¤)
  ("^" ?&)
  ("&" ?/)
  ("*" ?\()
  ("(" ?\))
  (")" ?=)
  ("_" ??)
- ("+" ?\e,A=\e(B)
+ ("+" ?½)
  ("~" ?^)
- ("{" ?\e,AE\e(B)
- ("}" ?\e,AI\e(B)
- (":" ?\e,AV\e(B)
- ("\"" ?\e,AD\e(B)
+ ("{" ?Ã…)
+ ("}" ?É)
+ (":" ?Ö)
+ ("\"" ?Ä)
  ("|" ?*)
  ("<" ?\;)
  (">" ?:)
@@ -1876,36 +1819,36 @@ Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
  "Finnish input method simulating SUN Finnish/Swedish keyboard"
  nil t t t t nil nil nil nil nil t)
 
-;; 1!  2"  3#  4\e,A$\e(B  5%  6&  7/  8(  9)  0=  +?  \e,A'=\e(B  ~^
-;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AeE\e(B  \e,AiI\e(B
-;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  \e,AvV\e(B  \e,AdD\e(B  '*
+;; 1!  2"  3#  4¤  5%  6&  7/  8(  9)  0=  +?  Â§Â½  ~^
+;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  Ã¥Ã…  Ã©Ã‰
+;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  Ã¶Ã–  Ã¤Ã„  '*
 ;;    zZ  xX  cC  vV  bB  nN  mM  ,;  .:  -_
 
 (quail-define-rules
  ("-" ?+)
- ("=" ?\e,A'\e(B)
+ ("=" ?§)
  ("`" ?~)
- ("[" ?\e,Ae\e(B)
- ("]" ?\e,Ai\e(B)
- (";" ?\e,Av\e(B)
- ("'" ?\e,Ad\e(B)
+ ("[" ?Ã¥)
+ ("]" ?é)
+ (";" ?ö)
+ ("'" ?ä)
  ("\\" ?')
  ("/" ?-)
 
  ("@" ?\")
- ("$" ?\e,A$\e(B)
+ ("$" ?¤)
  ("^" ?&)
  ("&" ?/)
  ("*" ?\()
  ("(" ?\))
  (")" ?=)
  ("_" ??)
- ("+" ?\e,A=\e(B)
+ ("+" ?½)
  ("~" ?^)
- ("{" ?\e,AE\e(B)
- ("}" ?\e,AI\e(B)
- (":" ?\e,AV\e(B)
- ("\"" ?\e,AD\e(B)
+ ("{" ?Ã…)
+ ("}" ?É)
+ (":" ?Ö)
+ ("\"" ?Ä)
  ("|" ?*)
  ("<" ?\;)
  (">" ?:)
@@ -1918,26 +1861,26 @@ Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
  "German (Deutsch) input method simulating SUN German keyboard"
  nil t t t t nil nil nil nil nil t)
 
-;; 1!  2"  3\e,A'\e(B  4$  5%  6&  7/  8(  9)  0=  \e,A_\e(B?  [{  ]}
-;;  qQ  wW  eE  rR  tT  zZ  uU  iI  oO  pP  \e,A|\\e(B  +*
-;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  \e,AvV\e(B  \e,AdD\e(B  #^
+;; 1!  2"  3§  4$  5%  6&  7/  8(  9)  0=  ÃŸ?  [{  ]}
+;;  qQ  wW  eE  rR  tT  zZ  uU  iI  oO  pP  Ã¼Ãœ  +*
+;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  Ã¶Ã–  Ã¤Ã„  #^
 ;;    yY  xX  cC  vV  bB  nN  mM  ,;  .:  -_
 
 (quail-define-rules
- ("-" ?\e,A_\e(B)
+ ("-" ?ß)
  ("=" ?\[)
  ("`" ?\])
  ("y" ?z)
- ("[" ?\e,A|\e(B)
+ ("[" ?ü)
  ("]" ?+)
- (";" ?\e,Av\e(B)
- ("'" ?\e,Ad\e(B)
+ (";" ?ö)
+ ("'" ?ä)
  ("\\" ?#)
  ("z" ?y)
  ("/" ?-)
 
  ("@" ?\")
- ("#" ?\e,A'\e(B)
+ ("#" ?§)
  ("^" ?&)
  ("&" ?/)
  ("*" ?\()
@@ -1947,10 +1890,10 @@ Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
  ("_" ??)
  ("+" ?{)
  ("~" ?})
- ("{" ?\e,A\\e(B)
+ ("{" ?Ãœ)
  ("}" ?*)
- (":" ?\e,AV\e(B)
- ("\"" ?\e,AD\e(B)
+ (":" ?Ö)
+ ("\"" ?Ä)
  ("|" ?^)
  ("Z" ?Y)
  ("<" ?\;)
@@ -1964,23 +1907,23 @@ Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
  "Italian (Italiano) input method simulating SUN Italian keyboard"
  nil t t t t nil nil nil nil nil t)
 
-;; 1!  2"  3\e,A#\e(B  4$  5%  6&  7/  8(  9)  0=  '?  \e,Al\e(B^  `~
-;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,Ahi\e(B  +*
-;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  \e,Arg\e(B  \e,A`0\e(B  \e,Ay'\e(B
+;; 1!  2"  3£  4$  5%  6&  7/  8(  9)  0=  '?  Ã¬^  `~
+;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  Ã¨Ã©  +*
+;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  Ã²Ã§  Ã Â°  Ã¹Â§
 ;;    zZ  xX  cC  vV  bB  nN  mM  ,;  .:  -_
 
 (quail-define-rules
  ("-" ?')
- ("=" ?\e,Al\e(B)
- ("[" ?\e,Ah\e(B)
+ ("=" ?ì)
+ ("[" ?è)
  ("]" ?+)
- (";" ?\e,Ar\e(B)
- ("'" ?\e,A`\e(B)
- ("\\" ?\e,Ay\e(B)
+ (";" ?ò)
+ ("'" ?à)
+ ("\\" ?ù)
  ("/" ?-)
 
  ("@" ?\")
- ("#" ?\e,A#\e(B)
+ ("#" ?£)
  ("^" ?&)
  ("&" ?/)
  ("*" ?\()
@@ -1989,11 +1932,11 @@ Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
  ("_" ??)
  ("+" ?^)
  ("~" ?~)
- ("{" ?\e,Ai\e(B)
+ ("{" ?é)
  ("}" ?*)
- (":" ?\e,Ag\e(B)
- ("\"" ?\e,A0\e(B)
- ("|" ?\e,A'\e(B)
+ (":" ?ç)
+ ("\"" ?°)
+ ("|" ?§)
  ("<" ?\;)
  (">" ?:)
  ("?" ?_)
@@ -2002,40 +1945,40 @@ Dead accent is right to \e,Af\e(B." nil t t t t nil nil nil nil nil t)
 ;;
 (quail-define-package
  "spanish-keyboard" "Spanish" "ES@" t
- "Spanish (Espa\e,Aq\e(Bol) input method simulating SUN Spanish keyboard"
+ "Spanish (Español) input method simulating SUN Spanish keyboard"
  nil t t t t nil nil nil nil nil t)
 
-;; 1!  2"  3\e,A7\e(B  4$  5%  6&  7/  8(  9)  0=  '?  \e,A!?\e(B  \e,AmM\e(B
-;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  \e,AiI\e(B  \e,AsS\e(B
-;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  \e,AqQ\e(B  \e,AaA\e(B  \e,AzZ\e(B
+;; 1!  2"  3·  4$  5%  6&  7/  8(  9)  0=  '?  Â¡Â¿  Ã­Ã
+;;  qQ  wW  eE  rR  tT  yY  uU  iI  oO  pP  Ã©Ã‰  Ã³Ã“
+;;   aA  sS  dD  fF  gG  hH  jJ  kK  lL  Ã±Ã‘  Ã¡Ã  ÃºÃš
 ;;    zZ  xX  cC  vV  bB  nN  mM  ,;  .:  -_
 
 (quail-define-rules
  ("-" ?')
- ("=" ?\e,A!\e(B)
- ("`" ?\e,Am\e(B)
- ("[" ?\e,Ai\e(B)
- ("]" ?\e,As\e(B)
- (";" ?\e,Aq\e(B)
- ("'" ?\e,Aa\e(B)
- ("\\" ?\e,Az\e(B)
+ ("=" ?¡)
+ ("`" ?í)
+ ("[" ?é)
+ ("]" ?ó)
+ (";" ?ñ)
+ ("'" ?á)
+ ("\\" ?ú)
  ("/" ?-)
 
  ("@" ?\")
- ("#" ?\e,A7\e(B)
+ ("#" ?·)
  ("^" ?&)
  ("&" ?/)
  ("*" ?\()
  ("(" ?\))
  (")" ?=)
  ("_" ??)
- ("+" ?\e,A?\e(B)
- ("~" ?\e,AM\e(B)
- ("{" ?\e,AI\e(B)
- ("}" ?\e,AS\e(B)
- (":" ?\e,AQ\e(B)
- ("\"" ?\e,AA\e(B)
- ("|" ?\e,AZ\e(B)
+ ("+" ?¿)
+ ("~" ?Ã)
+ ("{" ?É)
+ ("}" ?Ó)
+ (":" ?Ñ)
+ ("\"" ?Ã)
+ ("|" ?Ú)
  ("<" ?\;)
  (">" ?:)
  ("?" ?_)
@@ -2138,215 +2081,215 @@ of characters from a single Latin-N charset.
 
              | postfix | examples
  ------------+---------+----------
-  acute      |    '    | a' -> \e,Aa\e(B
-  grave      |    `    | a` -> \e,A`\e(B
-  circumflex |    ^    | a^ -> \e,Ab\e(B
-  diaeresis  |    \"    | a\" -> \e,Ad\e(B
-  tilde      |    ~    | a~ -> \e,Ac\e(B
-  cedilla    |    ,    | c, -> \e,Ag\e(B
-  ogonek     |    ,    | a, -> \e$,1 %\e(B
-  breve      |    ~    | a~ -> \e$,1 #\e(B
-  caron      |    ~    | c~ -> \e$,1 -\e(B
-  dbl. acute |    :    | o: -> \e$,1 q\e(B
-  ring       |    .    | u. -> \e$,1!/\e(B
-  dot        |    .    | z. -> \e$,1!<\e(B
-  stroke     |    /    | d/ -> \e$,1 1\e(B
-  nordic     |    /    | d/ -> \e,Ap\e(B   t/ -> \e,A~\e(B   a/ -> \e,Ae\e(B   e/ -> \e,Af\e(B   o/ -> \e,Ax\e(B
-  others     |    /    | s/ -> \e,A_\e(B   ?/ -> \e,A?\e(B   !/ -> \e,A!\e(B   // -> \e,A0\e(B
-             | various | << -> \e,A+\e(B   >> -> \e,A;\e(B   o_ -> \e,A:\e(B   a_ -> \e,A*\e(B
+  acute      |    '    | a' -> Ã¡
+  grave      |    `    | a` -> Ã 
+  circumflex |    ^    | a^ -> Ã¢
+  diaeresis  |    \"    | a\" -> Ã¤
+  tilde      |    ~    | a~ -> Ã£
+  cedilla    |    ,    | c, -> Ã§
+  ogonek     |    ,    | a, -> Ä…
+  breve      |    ~    | a~ -> Äƒ
+  caron      |    ~    | c~ -> Ä
+  dbl. acute |    :    | o: -> Å‘
+  ring       |    .    | u. -> Å¯
+  dot        |    .    | z. -> Å¼
+  stroke     |    /    | d/ -> Ä‘
+  nordic     |    /    | d/ -> Ã°   t/ -> Ã¾   a/ -> Ã¥   e/ -> Ã¦   o/ -> Ã¸
+  others     |    /    | s/ -> ÃŸ   ?/ -> Â¿   !/ -> Â¡   // -> Â°
+             | various | << -> Â«   >> -> Â»   o_ -> Âº   a_ -> Âª
 
 Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
 " nil t nil nil nil nil nil nil nil nil t)
 
-;; Fixme: \e,A&\e(B \e,A'\e(B \e,A(\e(B \e,A)\e(B \e,A,\e(B \e,A-\e(B \e,A.\e(B \e,A/\e(B \e,A1\e(B \e,A2\e(B \e,A3\e(B \e,A4\e(B \e,A5\e(B \e,A6\e(B \e,A7\e(B \e,A8\e(B \e,A9\e(B \e,A<\e(B \e,A=\e(B \e,A>\e(B \e,AW\e(B \e,Aw\e(B
+;; Fixme: Â¦ Â§ Â¨ Â© Â¬ Â­ Â® Â¯ Â± Â² Â³ Â´ Âµ Â¶ Â· Â¸ Â¹ Â¼ Â½ Â¾ Ã— Ã·
 (quail-define-rules
- (" _" ?\e,A \e(B)
- ("!/" ?\e,A!\e(B)
- ("//" ?\e,A0\e(B)
- ("<<" ?\\e,A+\e(B)
- (">>" ?\\e,A;\e(B)
- ("?/" ?\e,A?\e(B)
- ("$/" ?\e,A#\e(B)
- ("$/" ?\e,A$\e(B)
- ("A'" ?\e,AA\e(B)
- ("A," ?\e$,1 $\e(B)
- ("A-" ?\e$,1  \e(B)
- ("A/" ?\e,AE\e(B)
- ("A\"" ?\e,AD\e(B)
- ("A^" ?\e,AB\e(B)
- ("A`" ?\e,A@\e(B)
- ("A~" ?\e,AC\e(B)
- ("A~" ?\e$,1 "\e(B)
- ("C'" ?\e$,1 &\e(B)
- ("C," ?\e,AG\e(B)
- ("C." ?\e$,1 *\e(B)
- ("C^" ?\e$,1 (\e(B)
- ("C~" ?\e$,1 ,\e(B)
- ("D/" ?\e,AP\e(B)
- ("D/" ?\e$,1 0\e(B)
- ("D~" ?\e$,1 .\e(B)
- ("E'" ?\e,AI\e(B)
- ("E," ?\e$,1 8\e(B)
- ("E-" ?\e$,1 2\e(B)
- ("E." ?\e$,1 6\e(B)
- ("E/" ?\e,AF\e(B)
- ("E\"" ?\e,AK\e(B)
- ("E^" ?\e,AJ\e(B)
- ("E`" ?\e,AH\e(B)
- ("E~" ?\e$,1 :\e(B)
- ("G," ?\e$,1 B\e(B)
- ("G." ?\e$,1 @\e(B)
- ("G^" ?\e$,1 <\e(B)
- ("G~" ?\e$,1 >\e(B)
- ("H/" ?\e$,1 F\e(B)
- ("H^" ?\e$,1 D\e(B)
- ("I'" ?\e,AM\e(B)
- ("I," ?\e$,1 N\e(B)
- ("I-" ?\e$,1 J\e(B)
- ("I." ?\e$,1 P\e(B)
- ("I\"" ?\e,AO\e(B)
- ("I^" ?\e,AN\e(B)
- ("I`" ?\e,AL\e(B)
- ("I~" ?\e$,1 H\e(B)
- ("J^" ?\e$,1 T\e(B)
- ("K," ?\e$,1 V\e(B)
- ("L'" ?\e$,1 Y\e(B)
- ("L," ?\e$,1 [\e(B)
- ("L/" ?\e$,1 a\e(B)
- ("L~" ?\e$,1 ]\e(B)
- ("N'" ?\e$,1 c\e(B)
- ("N," ?\e$,1 e\e(B)
- ("N/" ?\e$,1 j\e(B)
- ("N~" ?\e,AQ\e(B)
- ("N~" ?\e$,1 g\e(B)
- ("O'" ?\e,AS\e(B)
- ("O-" ?\e$,1 l\e(B)
- ("O/" ?\e,AX\e(B)
- ("O/" ?\e$,1 r\e(B)
- ("O:" ?\e$,1 p\e(B)
- ("O\"" ?\e,AV\e(B)
- ("O^" ?\e,AT\e(B)
- ("O`" ?\e,AR\e(B)
- ("O~" ?\e,AU\e(B)
- ("R'" ?\e$,1 t\e(B)
- ("R," ?\e$,1 v\e(B)
- ("R~" ?\e$,1 x\e(B)
- ("S'" ?\e$,1 z\e(B)
- ("S," ?\e$,1 ~\e(B)
- ("S^" ?\e$,1 |\e(B)
- ("S~" ?\e$,1! \e(B)
- ("T," ?\e$,1!"\e(B)
- ("T/" ?\e,A^\e(B)
- ("T/" ?\e$,1!&\e(B)
- ("T~" ?\e$,1!$\e(B)
- ("U'" ?\e,AZ\e(B)
- ("U," ?\e$,1!2\e(B)
- ("U-" ?\e$,1!*\e(B)
- ("U." ?\e$,1!.\e(B)
- ("U:" ?\e$,1!0\e(B)
- ("U\"" ?\e,A\\e(B)
- ("U^" ?\e,A[\e(B)
- ("U`" ?\e,AY\e(B)
- ("U~" ?\e$,1!(\e(B)
- ("U~" ?\e$,1!,\e(B)
- ("Y'" ?\e,A]\e(B)
- ("Y\"" ?\e$,1!8\e(B)
- ("Y=" ?\e,A%\e(B)
- ("Z'" ?\e$,1!9\e(B)
- ("Z." ?\e$,1!;\e(B)
- ("Z~" ?\e$,1!=\e(B)
- ("a'" ?\e,Aa\e(B)
- ("a," ?\e$,1 %\e(B)
- ("a-" ?\e$,1 !\e(B)
- ("a/" ?\e,Ae\e(B)
- ("a\"" ?\e,Ad\e(B)
- ("a^" ?\e,Ab\e(B)
- ("a_" ?\e,A*\e(B)
- ("a`" ?\e,A`\e(B)
- ("a~" ?\e,Ac\e(B)
- ("a~" ?\e$,1 #\e(B)
- ("c'" ?\e$,1 '\e(B)
- ("c," ?\e,Ag\e(B)
- ("c." ?\e$,1 +\e(B)
- ("c^" ?\e$,1 )\e(B)
- ("c~" ?\e$,1 -\e(B)
- ("c/" ?\e,A"\e(B)
- ("d/" ?\e,Ap\e(B)
- ("d/" ?\e$,1 1\e(B)
- ("d~" ?\e$,1 /\e(B)
- ("e'" ?\e,Ai\e(B)
- ("e," ?\e$,1 9\e(B)
- ("e-" ?\e$,1 3\e(B)
- ("e." ?\e$,1 7\e(B)
- ("e/" ?\e,Af\e(B)
- ("e\"" ?\e,Ak\e(B)
- ("e^" ?\e,Aj\e(B)
- ("e`" ?\e,Ah\e(B)
- ("e~" ?\e$,1 ;\e(B)
- ("e=" ?\e$,1tL\e(B)
- ("g," ?\e$,1 C\e(B)
- ("g." ?\e$,1 A\e(B)
- ("g^" ?\e$,1 =\e(B)
- ("g~" ?\e$,1 ?\e(B)
- ("h/" ?\e$,1 G\e(B)
- ("h^" ?\e$,1 E\e(B)
- ("i'" ?\e,Am\e(B)
- ("i," ?\e$,1 O\e(B)
- ("i-" ?\e$,1 K\e(B)
- ("i." ?\e$,1 Q\e(B)
- ("i\"" ?\e,Ao\e(B)
- ("i^" ?\e,An\e(B)
- ("i`" ?\e,Al\e(B)
- ("i~" ?\e$,1 I\e(B)
- ("j^" ?\e$,1 U\e(B)
- ("k," ?\e$,1 W\e(B)
- ("k/" ?\e$,1 X\e(B)
- ("l'" ?\e$,1 Z\e(B)
- ("l," ?\e$,1 \\e(B)
- ("l/" ?\e$,1 b\e(B)
- ("l~" ?\e$,1 ^\e(B)
- ("n'" ?\e$,1 d\e(B)
- ("n," ?\e$,1 f\e(B)
- ("n/" ?\e$,1 k\e(B)
- ("n~" ?\e,Aq\e(B)
- ("n~" ?\e$,1 h\e(B)
- ("o'" ?\e,As\e(B)
- ("o-" ?\e$,1 m\e(B)
- ("o/" ?\e,Ax\e(B)
- ("o/" ?\e$,1 s\e(B)
- ("o:" ?\e$,1 q\e(B)
- ("o\"" ?\e,Av\e(B)
- ("o^" ?\e,At\e(B)
- ("o_" ?\e,A:\e(B)
- ("o`" ?\e,Ar\e(B)
- ("o~" ?\e,Au\e(B)
- ("r'" ?\e$,1 u\e(B)
- ("r," ?\e$,1 w\e(B)
- ("r~" ?\e$,1 y\e(B)
- ("s'" ?\e$,1 {\e(B)
- ("s," ?\e$,1 \7f\e(B)
- ("s/" ?\e,A_\e(B)
- ("s^" ?\e$,1 }\e(B)
- ("s~" ?\e$,1!!\e(B)
- ("t," ?\e$,1!#\e(B)
- ("t/" ?\e,A~\e(B)
- ("t/" ?\e$,1!'\e(B)
- ("t~" ?\e$,1!%\e(B)
- ("u'" ?\e,Az\e(B)
- ("u," ?\e$,1!3\e(B)
- ("u-" ?\e$,1!+\e(B)
- ("u." ?\e$,1!/\e(B)
- ("u:" ?\e$,1!1\e(B)
- ("u\"" ?\e,A|\e(B)
- ("u^" ?\e,A{\e(B)
- ("u`" ?\e,Ay\e(B)
- ("u~" ?\e$,1!)\e(B)
- ("u~" ?\e$,1!-\e(B)
- ("y'" ?\e,A}\e(B)
- ("y\"" ?\e,A\7f\e(B)
- ("z'" ?\e$,1!:\e(B)
- ("z." ?\e$,1!<\e(B)
- ("z~" ?\e$,1!>\e(B)
+ (" _" ? )
+ ("!/" ?¡)
+ ("//" ?°)
+ ("<<" ?\«)
+ (">>" ?\»)
+ ("?/" ?¿)
+ ("$/" ?£)
+ ("$/" ?¤)
+ ("A'" ?Ã)
+ ("A," ?Ä„)
+ ("A-" ?Ä€)
+ ("A/" ?Ã…)
+ ("A\"" ?Ä)
+ ("A^" ?Â)
+ ("A`" ?À)
+ ("A~" ?Ã)
+ ("A~" ?Ä‚)
+ ("C'" ?Ć)
+ ("C," ?Ç)
+ ("C." ?ÄŠ)
+ ("C^" ?Ĉ)
+ ("C~" ?ÄŒ)
+ ("D/" ?Ã)
+ ("D/" ?Ä)
+ ("D~" ?ÄŽ)
+ ("E'" ?É)
+ ("E," ?Ę)
+ ("E-" ?Ä’)
+ ("E." ?Ä–)
+ ("E/" ?Æ)
+ ("E\"" ?Ë)
+ ("E^" ?Ê)
+ ("E`" ?È)
+ ("E~" ?Äš)
+ ("G," ?Ä¢)
+ ("G." ?Ä )
+ ("G^" ?Äœ)
+ ("G~" ?Äž)
+ ("H/" ?Ħ)
+ ("H^" ?Ĥ)
+ ("I'" ?Ã)
+ ("I," ?Ä®)
+ ("I-" ?Ī)
+ ("I." ?Ä°)
+ ("I\"" ?Ã)
+ ("I^" ?ÃŽ)
+ ("I`" ?ÃŒ)
+ ("I~" ?Ĩ)
+ ("J^" ?Ä´)
+ ("K," ?Ķ)
+ ("L'" ?Ĺ)
+ ("L," ?Ä»)
+ ("L/" ?Å)
+ ("L~" ?Ľ)
+ ("N'" ?Ń)
+ ("N," ?Å…)
+ ("N/" ?ÅŠ)
+ ("N~" ?Ñ)
+ ("N~" ?Ň)
+ ("O'" ?Ó)
+ ("O-" ?ÅŒ)
+ ("O/" ?Ø)
+ ("O/" ?Å’)
+ ("O:" ?Å)
+ ("O\"" ?Ö)
+ ("O^" ?Ô)
+ ("O`" ?Ã’)
+ ("O~" ?Õ)
+ ("R'" ?Å”)
+ ("R," ?Å–)
+ ("R~" ?Ř)
+ ("S'" ?Åš)
+ ("S," ?Åž)
+ ("S^" ?Åœ)
+ ("S~" ?Å )
+ ("T," ?Å¢)
+ ("T/" ?Þ)
+ ("T/" ?Ŧ)
+ ("T~" ?Ť)
+ ("U'" ?Ú)
+ ("U," ?Ų)
+ ("U-" ?Ū)
+ ("U." ?Å®)
+ ("U:" ?Å°)
+ ("U\"" ?Ãœ)
+ ("U^" ?Û)
+ ("U`" ?Ù)
+ ("U~" ?Ũ)
+ ("U~" ?Ŭ)
+ ("Y'" ?Ã)
+ ("Y\"" ?Ÿ)
+ ("Y=" ?Â¥)
+ ("Z'" ?Ź)
+ ("Z." ?Å»)
+ ("Z~" ?Ž)
+ ("a'" ?á)
+ ("a," ?Ä…)
+ ("a-" ?Ä)
+ ("a/" ?Ã¥)
+ ("a\"" ?ä)
+ ("a^" ?â)
+ ("a_" ?ª)
+ ("a`" ?à)
+ ("a~" ?ã)
+ ("a~" ?ă)
+ ("c'" ?ć)
+ ("c," ?ç)
+ ("c." ?Ä‹)
+ ("c^" ?ĉ)
+ ("c~" ?Ä)
+ ("c/" ?¢)
+ ("d/" ?ð)
+ ("d/" ?Ä‘)
+ ("d~" ?Ä)
+ ("e'" ?é)
+ ("e," ?Ä™)
+ ("e-" ?Ä“)
+ ("e." ?Ä—)
+ ("e/" ?æ)
+ ("e\"" ?ë)
+ ("e^" ?ê)
+ ("e`" ?è)
+ ("e~" ?Ä›)
+ ("e=" ?€)
+ ("g," ?Ä£)
+ ("g." ?Ä¡)
+ ("g^" ?Ä)
+ ("g~" ?ÄŸ)
+ ("h/" ?ħ)
+ ("h^" ?Ä¥)
+ ("i'" ?í)
+ ("i," ?į)
+ ("i-" ?Ä«)
+ ("i." ?ı)
+ ("i\"" ?ï)
+ ("i^" ?î)
+ ("i`" ?ì)
+ ("i~" ?Ä©)
+ ("j^" ?ĵ)
+ ("k," ?Ä·)
+ ("k/" ?ĸ)
+ ("l'" ?ĺ)
+ ("l," ?ļ)
+ ("l/" ?Å‚)
+ ("l~" ?ľ)
+ ("n'" ?Å„)
+ ("n," ?ņ)
+ ("n/" ?Å‹)
+ ("n~" ?ñ)
+ ("n~" ?ň)
+ ("o'" ?ó)
+ ("o-" ?Å)
+ ("o/" ?ø)
+ ("o/" ?Å“)
+ ("o:" ?Å‘)
+ ("o\"" ?ö)
+ ("o^" ?ô)
+ ("o_" ?º)
+ ("o`" ?ò)
+ ("o~" ?õ)
+ ("r'" ?Å•)
+ ("r," ?Å—)
+ ("r~" ?Å™)
+ ("s'" ?Å›)
+ ("s," ?ÅŸ)
+ ("s/" ?ß)
+ ("s^" ?Å)
+ ("s~" ?Å¡)
+ ("t," ?Å£)
+ ("t/" ?þ)
+ ("t/" ?ŧ)
+ ("t~" ?Å¥)
+ ("u'" ?ú)
+ ("u," ?ų)
+ ("u-" ?Å«)
+ ("u." ?ů)
+ ("u:" ?ű)
+ ("u\"" ?ü)
+ ("u^" ?û)
+ ("u`" ?ù)
+ ("u~" ?Å©)
+ ("u~" ?Å­)
+ ("y'" ?ý)
+ ("y\"" ?ÿ)
+ ("z'" ?ź)
+ ("z." ?ż)
+ ("z~" ?ž)
 
  ("!//" ["!/"])
  ("///" ["//"])
@@ -2531,16 +2474,16 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
  nil t t t nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("C<" ?\e,BH\e(B)
- ("C'" ?\e,BF\e(B)
- ("D;" ?\e,BP\e(B)
- ("S<" ?\e,B)\e(B)
- ("Z<" ?\e,B.\e(B)
- ("c<" ?\e,Bh\e(B)
- ("c'" ?\e,Bf\e(B)
- ("d;" ?\e,Bp\e(B)
- ("s<" ?\e,B9\e(B)
- ("z<" ?\e,B>\e(B))
+ ("C<" ?ÄŒ)
+ ("C'" ?Ć)
+ ("D;" ?Ä)
+ ("S<" ?Å )
+ ("Z<" ?Ž)
+ ("c<" ?Ä)
+ ("c'" ?ć)
+ ("d;" ?Ä‘)
+ ("s<" ?Å¡)
+ ("z<" ?ž))
 
 ;;; arch-tag: 170180fb-9617-4d58-9d51-65ca23c05d94
 ;;; latin-post.el ends here
index 0b2e7d6ecf50b56c84706af2f680f859123ac130..620486d8c3f2ddc9dede7c5d480f41d569edd6ae 100644 (file)
@@ -1,4 +1,4 @@
-;;; latin-pre.el --- Quail packages for inputting various European characters  -*-coding: iso-2022-7bit;-*-
+;;; latin-pre.el --- Quail packages for inputting various European characters  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007
@@ -35,8 +35,8 @@
 ;;                 by R.F. Smith <rsmith@xs4all.nl>
 ;;
 ;; polish-slash:
-;; Author: W\e,B3\e(Bodek Bzyl <matwb@univ.gda.pl>
-;; Maintainer: W\e,B3\e(Bodek Bzyl <matwb@univ.gda.pl>
+;; Author: WÅ‚odek Bzyl <matwb@univ.gda.pl>
+;; Maintainer: WÅ‚odek Bzyl <matwb@univ.gda.pl>
 ;;
 ;; latin-[89]-prefix: Dave Love <fx@gnu.org>
 
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'a -> \e,Aa\e(B, '' -> \e,A4\e(B
-    grave    |   `    | `a -> \e,A`\e(B
-  circumflex |   ^    | ^a -> \e,Ab\e(B
-  diaeresis  |   \"    | \"a -> \e,Ad\e(B  \"\" -> \e,A(\e(B
-    tilde    |   ~    | ~a -> \e,Ac\e(B
-   cedilla   |   ~    | ~c -> \e,Ag\e(B
-    misc     | \" ~ /  | \"s -> \e,A_\e(B  ~d -> \e,Ap\e(B  ~t -> \e,A~\e(B  /a -> \e,Ae\e(B  /e -> \e,Af\e(B  /o -> \e,Ax\e(B
-   symbol    |   ~    | ~> -> \e,A;\e(B  ~< -> \e,A+\e(B  ~! -> \e,A!\e(B  ~? -> \e,A?\e(B  ~~ -> \e,A8\e(B
-             |   ~    | ~s -> \e,A'\e(B  ~x -> \e,A$\e(B  ~. -> \e,A7\e(B  ~$ -> \e,A#\e(B  ~u -> \e,A5\e(B
-             |   ~    | ~p -> \e,A6\e(B  ~- -> \e,A-\e(B  ~= -> \e,A/\e(B  ~| -> \e,A&\e(B
-   symbol    |  _ /   | _o -> \e,A:\e(B  _a -> \e,A*\e(B  // -> \e,A0\e(B  /\\ -> \e,AW\e(B  _y -> \e,A%\e(B
-             |  _ /   | _: -> \e,Aw\e(B  /c -> \e,A"\e(B  /2 -> \e,A=\e(B  /4 -> \e,A<\e(B  /3 -> \e,A>\e(B
-             |  _ /   | /= -> \e,A,\e(B
-   symbol    |   ^    | ^r -> \e,A.\e(B  ^c -> \e,A)\e(B  ^1 -> \e,A9\e(B  ^2 -> \e,A2\e(B  ^3 -> \e,A3\e(B
+    acute    |   '    | 'a -> Ã¡, '' -> Â´
+    grave    |   `    | `a -> Ã 
+  circumflex |   ^    | ^a -> Ã¢
+  diaeresis  |   \"    | \"a -> Ã¤  \"\" -> Â¨
+    tilde    |   ~    | ~a -> Ã£
+   cedilla   |   ~    | ~c -> Ã§
+    misc     | \" ~ /  | \"s -> ÃŸ  ~d -> Ã°  ~t -> Ã¾  /a -> Ã¥  /e -> Ã¦  /o -> Ã¸
+   symbol    |   ~    | ~> -> Â»  ~< -> Â«  ~! -> Â¡  ~? -> Â¿  ~~ -> Â¸
+             |   ~    | ~s -> Â§  ~x -> Â¤  ~. -> Â·  ~$ -> Â£  ~u -> Âµ
+             |   ~    | ~p -> Â¶  ~- -> Â­  ~= -> Â¯  ~| -> Â¦
+   symbol    |  _ /   | _o -> Âº  _a -> Âª  // -> Â°  /\\ -> Ã—  _y -> Â¥
+             |  _ /   | _: -> Ã·  /c -> Â¢  /2 -> Â½  /4 -> Â¼  /3 -> Â¾
+             |  _ /   | /= -> Â¬
+   symbol    |   ^    | ^r -> Â®  ^c -> Â©  ^1 -> Â¹  ^2 -> Â²  ^3 -> Â³
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'A" ?\e,AA\e(B)
- ("'E" ?\e,AI\e(B)
- ("'I" ?\e,AM\e(B)
- ("'O" ?\e,AS\e(B)
- ("'U" ?\e,AZ\e(B)
- ("'Y" ?\e,A]\e(B)
- ("'a" ?\e,Aa\e(B)
- ("'e" ?\e,Ai\e(B)
- ("'i" ?\e,Am\e(B)
- ("'o" ?\e,As\e(B)
- ("'u" ?\e,Az\e(B)
- ("'y" ?\e,A}\e(B)
- ("''" ?\e,A4\e(B)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'Y" ?Ã)
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
+ ("'y" ?ý)
+ ("''" ?´)
  ("' " ?')
- ("`A" ?\e,A@\e(B)
- ("`E" ?\e,AH\e(B)
- ("`I" ?\e,AL\e(B)
- ("`O" ?\e,AR\e(B)
- ("`U" ?\e,AY\e(B)
- ("`a" ?\e,A`\e(B)
- ("`e" ?\e,Ah\e(B)
- ("`i" ?\e,Al\e(B)
- ("`o" ?\e,Ar\e(B)
- ("`u" ?\e,Ay\e(B)
+ ("`A" ?À)
+ ("`E" ?È)
+ ("`I" ?ÃŒ)
+ ("`O" ?Ã’)
+ ("`U" ?Ù)
+ ("`a" ?à)
+ ("`e" ?è)
+ ("`i" ?ì)
+ ("`o" ?ò)
+ ("`u" ?ù)
  ("``" ?`)
  ("` " ?`)
- ("^A" ?\e,AB\e(B)
- ("^E" ?\e,AJ\e(B)
- ("^I" ?\e,AN\e(B)
- ("^O" ?\e,AT\e(B)
- ("^U" ?\e,A[\e(B)
- ("^a" ?\e,Ab\e(B)
- ("^e" ?\e,Aj\e(B)
- ("^i" ?\e,An\e(B)
- ("^o" ?\e,At\e(B)
- ("^u" ?\e,A{\e(B)
+ ("^A" ?Â)
+ ("^E" ?Ê)
+ ("^I" ?ÃŽ)
+ ("^O" ?Ô)
+ ("^U" ?Û)
+ ("^a" ?â)
+ ("^e" ?ê)
+ ("^i" ?î)
+ ("^o" ?ô)
+ ("^u" ?û)
  ("^^" ?^)
  ("^ " ?^)
- ("\"A" ?\e,AD\e(B)
- ("\"E" ?\e,AK\e(B)
- ("\"I" ?\e,AO\e(B)
- ("\"O" ?\e,AV\e(B)
- ("\"U" ?\e,A\\e(B)
- ("\"a" ?\e,Ad\e(B)
- ("\"e" ?\e,Ak\e(B)
- ("\"i" ?\e,Ao\e(B)
- ("\"o" ?\e,Av\e(B)
- ("\"s" ?\e,A_\e(B)
- ("\"u" ?\e,A|\e(B)
- ("\"y" ?\e,A\7f\e(B)
- ("\"\"" ?\e,A(\e(B)
+ ("\"A" ?Ä)
+ ("\"E" ?Ë)
+ ("\"I" ?Ã)
+ ("\"O" ?Ö)
+ ("\"U" ?Ãœ)
+ ("\"a" ?ä)
+ ("\"e" ?ë)
+ ("\"i" ?ï)
+ ("\"o" ?ö)
+ ("\"s" ?ß)
+ ("\"u" ?ü)
+ ("\"y" ?ÿ)
+ ("\"\"" ?¨)
  ("\" " ?\")
- ("~A" ?\e,AC\e(B)
- ("~C" ?\e,AG\e(B)
- ("~D" ?\e,AP\e(B)
- ("~N" ?\e,AQ\e(B)
- ("~O" ?\e,AU\e(B)
- ("~T" ?\e,A^\e(B)
- ("~a" ?\e,Ac\e(B)
- ("~c" ?\e,Ag\e(B)
- ("~d" ?\e,Ap\e(B)
- ("~n" ?\e,Aq\e(B)
- ("~o" ?\e,Au\e(B)
- ("~t" ?\e,A~\e(B)
- ("~>" ?\\e,A;\e(B)
- ("~<" ?\\e,A+\e(B)
- ("~!" ?\e,A!\e(B)
- ("~?" ?\e,A?\e(B)
- ("~~" ?\e,A8\e(B)
+ ("~A" ?Ã)
+ ("~C" ?Ç)
+ ("~D" ?Ã)
+ ("~N" ?Ñ)
+ ("~O" ?Õ)
+ ("~T" ?Þ)
+ ("~a" ?ã)
+ ("~c" ?ç)
+ ("~d" ?ð)
+ ("~n" ?ñ)
+ ("~o" ?õ)
+ ("~t" ?þ)
+ ("~>" ?\»)
+ ("~<" ?\«)
+ ("~!" ?¡)
+ ("~?" ?¿)
+ ("~~" ?¸)
  ("~ " ?~)
- ("/A" ?\e,AE\e(B)
- ("/E" ?\e,AF\e(B)
- ("/O" ?\e,AX\e(B)
- ("/a" ?\e,Ae\e(B)
- ("/e" ?\e,Af\e(B)
- ("/o" ?\e,Ax\e(B)
- ("//" ?\e,A0\e(B)
+ ("/A" ?Ã…)
+ ("/E" ?Æ)
+ ("/O" ?Ø)
+ ("/a" ?Ã¥)
+ ("/e" ?æ)
+ ("/o" ?ø)
+ ("//" ?°)
  ("/ " ?/)
- ("_o" ?\e,A:\e(B)
- ("_a" ?\e,A*\e(B)
- ("_ " ?\e,A \e(B)
+ ("_o" ?º)
+ ("_a" ?ª)
+ ("_ " ? )
 ;; Symbols added by Roland Smith <rsmith@xs4all.nl>
- ("_+" ?\e,A1\e(B)
- ("_y" ?\e,A%\e(B)
- ("_:" ?\e,Aw\e(B)
+ ("_+" ?±)
+ ("_y" ?Â¥)
+ ("_:" ?÷)
  ("__" ?_)
- ("/c" ?\e,A"\e(B)
- ("/\\" ?\e,AW\e(B)
- ("/2" ?\e,A=\e(B)
- ("/4" ?\e,A<\e(B)
- ("/3" ?\e,A>\e(B)
- ("~s" ?\e,A'\e(B)
- ("~p" ?\e,A6\e(B)
- ("~x" ?\e,A$\e(B)
- ("~." ?\e,A7\e(B)
- ("~$" ?\e,A#\e(B)
- ("~u" ?\e,A5\e(B)
- ("^r" ?\e,A.\e(B)
- ("^c" ?\e,A)\e(B)
- ("^1" ?\e,A9\e(B)
- ("^2" ?\e,A2\e(B)
- ("^3" ?\e,A3\e(B)
- ("~-" ?\e,A-\e(B)
- ("~|" ?\e,A&\e(B)
- ("/=" ?\e,A,\e(B)
- ("~=" ?\e,A/\e(B)
+ ("/c" ?¢)
+ ("/\\" ?×)
+ ("/2" ?½)
+ ("/4" ?¼)
+ ("/3" ?¾)
+ ("~s" ?§)
+ ("~p" ?¶)
+ ("~x" ?¤)
+ ("~." ?·)
+ ("~$" ?£)
+ ("~u" ?µ)
+ ("^r" ?®)
+ ("^c" ?©)
+ ("^1" ?¹)
+ ("^2" ?²)
+ ("^3" ?³)
+ ("~-" ?­)
+ ("~|" ?¦)
+ ("/=" ?¬)
+ ("~=" ?¯)
 )
 
 (quail-define-package
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'a -> \e,Aa\e(B   '' -> \e,A4\e(B
-    grave    |   `    | `a -> \e,A`\e(B
-  diaeresis  |   \"    | \"i -> \e,Ao\e(B   \"\" -> \e,A(\e(B
-    tilde    |   ~    | ~n -> \e,Aq\e(B
-   cedilla   |   ~    | ~c -> \e,Ag\e(B
-   symbol    |   ~    | ~> -> \e,A;\e(B   ~< -> \e,A+\e(B   ~! -> \e,A!\e(B   ~? -> \e,A?\e(B
+    acute    |   '    | 'a -> Ã¡   '' -> Â´
+    grave    |   `    | `a -> Ã 
+  diaeresis  |   \"    | \"i -> Ã¯   \"\" -> Â¨
+    tilde    |   ~    | ~n -> Ã±
+   cedilla   |   ~    | ~c -> Ã§
+   symbol    |   ~    | ~> -> Â»   ~< -> Â«   ~! -> Â¡   ~? -> Â¿
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'A" ?\e,AA\e(B)
- ("'E" ?\e,AI\e(B)
- ("'I" ?\e,AM\e(B)
- ("'O" ?\e,AS\e(B)
- ("'U" ?\e,AZ\e(B)
- ("'a" ?\e,Aa\e(B)
- ("'e" ?\e,Ai\e(B)
- ("'i" ?\e,Am\e(B)
- ("'o" ?\e,As\e(B)
- ("'u" ?\e,Az\e(B)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
  ("' " ?')
- ("`A" ?\e,A@\e(B)
- ("`E" ?\e,AH\e(B)
- ("`O" ?\e,AR\e(B)
- ("`a" ?\e,A`\e(B)
- ("`e" ?\e,Ah\e(B)
- ("`o" ?\e,Ar\e(B)
+ ("`A" ?À)
+ ("`E" ?È)
+ ("`O" ?Ã’)
+ ("`a" ?à)
+ ("`e" ?è)
+ ("`o" ?ò)
  ("` " ?`)
- ("\"I" ?\e,AO\e(B)
- ("\"U" ?\e,A\\e(B)
- ("\"i" ?\e,Ao\e(B)
- ("\"u" ?\e,A|\e(B)
+ ("\"I" ?Ã)
+ ("\"U" ?Ãœ)
+ ("\"i" ?ï)
+ ("\"u" ?ü)
  ("\" " ?\")
- ("~C" ?\e,AG\e(B)
- ("~N" ?\e,AQ\e(B)
- ("~c" ?\e,Ag\e(B)
- ("~n" ?\e,Aq\e(B)
- ("~>" ?\\e,A;\e(B)
- ("~<" ?\\e,A+\e(B)
- ("~!" ?\e,A!\e(B)
- ("~?" ?\e,A?\e(B)
+ ("~C" ?Ç)
+ ("~N" ?Ñ)
+ ("~c" ?ç)
+ ("~n" ?ñ)
+ ("~>" ?\»)
+ ("~<" ?\«)
+ ("~!" ?¡)
+ ("~?" ?¿)
  ("~ " ?~)
 )
 
  "esperanto-prefix" "Latin-3" "EO>" t
  "Esperanto input method with prefix modifiers
 Key translation rules are:
- ^H -> ?\e,C&\e(B   ^J -> ?\e,C,\e(B   ^h -> ?\e,C6\e(B   ^j -> ?\e,C<\e(B   ^C -> ?\e,CF\e(B   ^G -> ?\e,CX\e(B,
- ^S -> ?\e,C^\e(B   ^c -> ?\e,Cf\e(B   ^g -> ?\e,Cx\e(B   ^s -> ?\e,C~\e(B   ~U -> ?\e,C]\e(B   ~u -> ?\e,C}\e(B
+ ^H -> ?Ĥ   ^J -> ?Ä´   ^h -> ?Ä¥   ^j -> ?ĵ   ^C -> ?Ĉ   ^G -> ?Äœ,
+ ^S -> ?Åœ   ^c -> ?ĉ   ^g -> ?Ä   ^s -> ?Å   ~U -> ?Ŭ   ~u -> ?Å­
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("^H" ?\e,C&\e(B)
- ("^J" ?\e,C,\e(B)
- ("^h" ?\e,C6\e(B)
- ("^j" ?\e,C<\e(B)
- ("^C" ?\e,CF\e(B)
- ("^G" ?\e,CX\e(B)
- ("^S" ?\e,C^\e(B)
- ("^c" ?\e,Cf\e(B)
- ("^g" ?\e,Cx\e(B)
- ("^s" ?\e,C~\e(B)
+ ("^H" ?Ĥ)
+ ("^J" ?Ä´)
+ ("^h" ?Ä¥)
+ ("^j" ?ĵ)
+ ("^C" ?Ĉ)
+ ("^G" ?Äœ)
+ ("^S" ?Åœ)
+ ("^c" ?ĉ)
+ ("^g" ?Ä)
+ ("^s" ?Å)
  ("^^" ?^)
  ("^ " ?^)
- ("~U" ?\e,C]\e(B)
- ("~u" ?\e,C}\e(B)
+ ("~U" ?Ŭ)
+ ("~u" ?Å­)
  ("~ " ?~)
 )
 
 (quail-define-package
  "french-prefix" "French" "FR>" t
- "French (Fran\e,Ag\e(Bais) input method with prefix modifiers
+ "French (Français) input method with prefix modifiers
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'e -> \e,Ai\e(B
-    grave    |   `    | `a -> \e,A`\e(B
-  circumflex |   ^    | ^a -> \e,Ab\e(B
-  diaeresis  |   \"    | \"i -> \e,Ao\e(B
-   cedilla   | ~ or , | ~c -> \e,Ag\e(B   ,c -> \e,Ag\e(B
-   symbol    |   ~    | ~> -> \e,A;\e(B   ~< -> \e,A+\e(B
+    acute    |   '    | 'e -> Ã©
+    grave    |   `    | `a -> Ã 
+  circumflex |   ^    | ^a -> Ã¢
+  diaeresis  |   \"    | \"i -> Ã¯
+   cedilla   | ~ or , | ~c -> Ã§   ,c -> Ã§
+   symbol    |   ~    | ~> -> Â»   ~< -> Â«
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'E" ?\e,AI\e(B)
- ("'C" ?\e,AG\e(B)
- ("'e" ?\e,Ai\e(B)
- ("'c" ?\e,Ag\e(B)
+ ("'E" ?É)
+ ("'C" ?Ç)
+ ("'e" ?é)
+ ("'c" ?ç)
  ("' " ?')
- ("`A" ?\e,A@\e(B)
- ("`E" ?\e,AH\e(B)
- ("`U" ?\e,AY\e(B)
- ("`a" ?\e,A`\e(B)
- ("`e" ?\e,Ah\e(B)
- ("`u" ?\e,Ay\e(B)
+ ("`A" ?À)
+ ("`E" ?È)
+ ("`U" ?Ù)
+ ("`a" ?à)
+ ("`e" ?è)
+ ("`u" ?ù)
  ("` " ?`)
- ("^A" ?\e,AB\e(B)
- ("^E" ?\e,AJ\e(B)
- ("^I" ?\e,AN\e(B)
- ("^O" ?\e,AT\e(B)
- ("^U" ?\e,A[\e(B)
- ("^a" ?\e,Ab\e(B)
- ("^e" ?\e,Aj\e(B)
- ("^i" ?\e,An\e(B)
- ("^o" ?\e,At\e(B)
- ("^u" ?\e,A{\e(B)
+ ("^A" ?Â)
+ ("^E" ?Ê)
+ ("^I" ?ÃŽ)
+ ("^O" ?Ô)
+ ("^U" ?Û)
+ ("^a" ?â)
+ ("^e" ?ê)
+ ("^i" ?î)
+ ("^o" ?ô)
+ ("^u" ?û)
  ("^ " ?^)
- ("\"E" ?\e,AK\e(B)
- ("\"I" ?\e,AO\e(B)
- ("\"e" ?\e,Ak\e(B)
- ("\"i" ?\e,Ao\e(B)
+ ("\"E" ?Ë)
+ ("\"I" ?Ã)
+ ("\"e" ?ë)
+ ("\"i" ?ï)
  ("\" " ?\")
- ("~<" ?\\e,A+\e(B)
- ("~>" ?\\e,A;\e(B)
- ("~C" ?\e,AG\e(B)
- ("~c" ?\e,Ag\e(B)
+ ("~<" ?\«)
+ ("~>" ?\»)
+ ("~C" ?Ç)
+ ("~c" ?ç)
  ("~ " ?~)
- (",C" ?\e,AG\e(B)
- (",c" ?\e,Ag\e(B)
+ (",C" ?Ç)
+ (",c" ?ç)
  (", " ?,)
 )
 
 (quail-define-package
  "romanian-prefix" "Romanian" "RO>" t
- "Romanian (rom\e,Bb\e(Bne\e,B:\e(Bte) input method with prefix modifiers
+ "Romanian (româneÅŸte) input method with prefix modifiers
 
     effect   | prefix | examples
  ------------+--------+------------------
-    tilde    |   ~    | ~a -> \e,Bc\e(B
-  circumflex |   ^    | ^a -> \e,Bb\e(B, ^i -> \e,Bn\e(B
-   cedilla   |   ,    | ,s -> \e,B:\e(B, ,t -> \e,B~\e(B
+    tilde    |   ~    | ~a -> Äƒ
+  circumflex |   ^    | ^a -> Ã¢, ^i -> Ã®
+   cedilla   |   ,    | ,s -> ÅŸ, ,t -> Å£
    ~         |   ~    | ~~ -> ~
    ^         |   ^    | ^^ -> ^
    ,         |   ,    | ,, -> ,
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("~A" ?\e,BC\e(B) ("~a" ?\e,Bc\e(B)
- ("^A" ?\e,BB\e(B) ("^a" ?\e,Bb\e(B)
- ("^I" ?\e,BN\e(B) ("^i" ?\e,Bn\e(B)
- (",S" ?\e,B*\e(B) (",s" ?\e,B:\e(B)
- (",T" ?\e,B^\e(B) (",t" ?\e,B~\e(B)
+ ("~A" ?Ä‚) ("~a" ?ă)
+ ("^A" ?Â) ("^a" ?â)
+ ("^I" ?ÃŽ) ("^i" ?î)
+ (",S" ?Åž) (",s" ?ÅŸ)
+ (",T" ?Å¢) (",t" ?Å£)
  ("^^" ?^) ("~~" ?~) (",," ?,))
 
 (quail-define-package
  "romanian-alt-prefix" "Romanian" "RO>" t
- "Alternative Romanian (rom\e,Bb\e(Bne\e,B:\e(Bte) input method with prefix modifiers
+ "Alternative Romanian (româneÅŸte) input method with prefix modifiers
 
     effect   | prefix | examples
  ------------+--------+------------------
-    tilde    |   \"    | \"a -> \e,Bb\e(B
-  circumflex |   '    | 'a -> \e,Bb\e(B, 'i -> \e,Bn\e(B
-   cedilla   |   '    | 's -> \e,B:\e(B, 't -> \e,B~\e(B
+    tilde    |   \"    | \"a -> Ã¢
+  circumflex |   '    | 'a -> Ã¢, 'i -> Ã®
+   cedilla   |   '    | 's -> ÅŸ, 't -> Å£
    '         |   '    | '' -> '
    \"         |   \"    | \"\" -> \"
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'A" ?\e,BC\e(B) ("'a" ?\e,Bc\e(B)
- ("\"A" ?\e,BB\e(B) ("\"a" ?\e,Bb\e(B)
- ("'I" ?\e,BN\e(B) ("'i" ?\e,Bn\e(B)
- ("'S" ?\e,B*\e(B) ("'s" ?\e,B:\e(B)
- ("'T" ?\e,B^\e(B) ("'t" ?\e,B~\e(B)
+ ("'A" ?Ä‚) ("'a" ?ă)
+ ("\"A" ?Â) ("\"a" ?â)
+ ("'I" ?ÃŽ) ("'i" ?î)
+ ("'S" ?Åž) ("'s" ?ÅŸ)
+ ("'T" ?Å¢) ("'t" ?Å£)
  ("''" ?') ("\"\"" ?\"))
 
 (quail-define-package
  "german-prefix" "German" "DE>" t
  "German (Deutsch) input method with prefix modifiers
 Key translation rules are:
- \"A -> \e,AD\e(B ->   \"O -> \e,AV\e(B   \"U -> \e,A\\e(B   \"s -> \e,A_\e(B
+ \"A -> Ã„ ->   \"O -> Ã–   \"U -> Ãœ   \"s -> ÃŸ
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("\"A" ?\e,AD\e(B)
- ("\"O" ?\e,AV\e(B)
- ("\"U" ?\e,A\\e(B)
- ("\"a" ?\e,Ad\e(B)
- ("\"o" ?\e,Av\e(B)
- ("\"u" ?\e,A|\e(B)
- ("\"s" ?\e,A_\e(B)
+ ("\"A" ?Ä)
+ ("\"O" ?Ö)
+ ("\"U" ?Ãœ)
+ ("\"a" ?ä)
+ ("\"o" ?ö)
+ ("\"u" ?ü)
+ ("\"s" ?ß)
  ("\" " ?\")
 )
 
@@ -374,20 +374,20 @@ Key translation rules are:
  "irish-prefix" "Latin-1" "GA>" t
  "Irish input method with prefix modifiers
 Key translation rules are:
- 'A -> \e,AA\e(B   'E -> \e,AI\e(B   'I -> \e,AM\e(B   'O -> \e,AS\e(B   'U -> \e,AZ\e(B
+ 'A -> Ã   'E -> Ã‰   'I -> Ã   'O -> Ã“   'U -> Ãš
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'A" ?\e,AA\e(B)
- ("'E" ?\e,AI\e(B)
- ("'I" ?\e,AM\e(B)
- ("'O" ?\e,AS\e(B)
- ("'U" ?\e,AZ\e(B)
- ("'a" ?\e,Aa\e(B)
- ("'e" ?\e,Ai\e(B)
- ("'i" ?\e,Am\e(B)
- ("'o" ?\e,As\e(B)
- ("'u" ?\e,Az\e(B)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
  ("' " ?')
 )
 
@@ -397,84 +397,84 @@ Key translation rules are:
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'a -> \e,Aa\e(B   '' -> \e,A4\e(B
-    grave    |   `    | `a -> \e,A`\e(B
-  circumflex |   ^    | ^a -> \e,Ab\e(B
-  diaeresis  |   \"    | \"u -> \e,A|\e(B
-    tilde    |   ~    | ~a -> \e,Ac\e(B
-   cedilla   | ' or , | 'c -> \e,Ag\e(B   ,c -> \e,Ag\e(B
+    acute    |   '    | 'a -> Ã¡   '' -> Â´
+    grave    |   `    | `a -> Ã 
+  circumflex |   ^    | ^a -> Ã¢
+  diaeresis  |   \"    | \"u -> Ã¼
+    tilde    |   ~    | ~a -> Ã£
+   cedilla   | ' or , | 'c -> Ã§   ,c -> Ã§
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'A" ?\e,AA\e(B)
- ("'E" ?\e,AI\e(B)
- ("'I" ?\e,AM\e(B)
- ("'O" ?\e,AS\e(B)
- ("'U" ?\e,AZ\e(B)
- ("'C" ?\e,AG\e(B)
- ("'a" ?\e,Aa\e(B)
- ("'e" ?\e,Ai\e(B)
- ("'i" ?\e,Am\e(B)
- ("'o" ?\e,As\e(B)
- ("'u" ?\e,Az\e(B)
- ("'c" ?\e,Ag\e(B)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'C" ?Ç)
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
+ ("'c" ?ç)
  ("' " ?')
- ("`A" ?\e,A@\e(B)
- ("`a" ?\e,A`\e(B)
+ ("`A" ?À)
+ ("`a" ?à)
  ("` " ?`)
- ("^A" ?\e,AB\e(B)
- ("^E" ?\e,AJ\e(B)
- ("^O" ?\e,AT\e(B)
- ("^a" ?\e,Ab\e(B)
- ("^e" ?\e,Aj\e(B)
- ("^o" ?\e,At\e(B)
+ ("^A" ?Â)
+ ("^E" ?Ê)
+ ("^O" ?Ô)
+ ("^a" ?â)
+ ("^e" ?ê)
+ ("^o" ?ô)
  ("^ " ?^)
- ("\"U" ?\e,A\\e(B)
- ("\"u" ?\e,A|\e(B)
+ ("\"U" ?Ãœ)
+ ("\"u" ?ü)
  ("\" " ?\")
- ("~A" ?\e,AC\e(B)
- ("~O" ?\e,AU\e(B)
- ("~a" ?\e,Ac\e(B)
- ("~o" ?\e,Au\e(B)
+ ("~A" ?Ã)
+ ("~O" ?Õ)
+ ("~a" ?ã)
+ ("~o" ?õ)
  ("~ " ?~)
- (",c" ?\e,Ag\e(B)
- (",C" ?\e,AG\e(B)
+ (",c" ?ç)
+ (",C" ?Ç)
  (",," ?,)
 )
 
 (quail-define-package
  "spanish-prefix" "Spanish" "ES>" t
- "Spanish (Espa\e,Aq\e(Bol) input method with prefix modifiers
+ "Spanish (Español) input method with prefix modifiers
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'a -> \e,Aa\e(B
-  diaeresis  |   \"    | \"u -> \e,A|\e(B
-    tilde    |   ~    | ~n -> \e,Aq\e(B
-   symbol    |   ~    | ~> -> \e,A;\e(B   ~< -> \e,A+\e(B   ~! -> \e,A!\e(B   ~? -> \e,A?\e(B
+    acute    |   '    | 'a -> Ã¡
+  diaeresis  |   \"    | \"u -> Ã¼
+    tilde    |   ~    | ~n -> Ã±
+   symbol    |   ~    | ~> -> Â»   ~< -> Â«   ~! -> Â¡   ~? -> Â¿
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'A" ?\e,AA\e(B)
- ("'E" ?\e,AI\e(B)
- ("'I" ?\e,AM\e(B)
- ("'O" ?\e,AS\e(B)
- ("'U" ?\e,AZ\e(B)
- ("'a" ?\e,Aa\e(B)
- ("'e" ?\e,Ai\e(B)
- ("'i" ?\e,Am\e(B)
- ("'o" ?\e,As\e(B)
- ("'u" ?\e,Az\e(B)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
  ("' " ?')
- ("\"U" ?\e,A\\e(B)
- ("\"u" ?\e,A|\e(B)
+ ("\"U" ?Ãœ)
+ ("\"u" ?ü)
  ("\" " ?\")
- ("~N" ?\e,AQ\e(B)
- ("~n" ?\e,Aq\e(B)
- ("~>" ?\\e,A;\e(B)
- ("~<" ?\\e,A+\e(B)
- ("~!" ?\e,A!\e(B)
- ("~?" ?\e,A?\e(B)
+ ("~N" ?Ñ)
+ ("~n" ?ñ)
+ ("~>" ?\»)
+ ("~<" ?\«)
+ ("~!" ?¡)
+ ("~?" ?¿)
  ("~ " ?~)
 )
 
@@ -484,108 +484,108 @@ Key translation rules are:
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'a -> \e,Ba\e(B   '' -> ?\e,B4\e(B
-  circumflex |   ^    | ^a -> \e,Bb\e(B
-  diaeresis  |   \"    | \"a -> \e,Bd\e(B   \"\" -> \e,B(\e(B
-    breve    |   ~    | ~a -> \e,Bc\e(B
-    caron    |   ~    | ~c -> \e,Bh\e(B
-   cedilla   |   `    | `c -> \e,Bg\e(B   `e -> ?\e,Bj\e(B
-    misc     | ' ` ~  | 'd -> \e,Bp\e(B   `l -> \e,B3\e(B   `z -> \e,B?\e(B   ~o -> \e,Bu\e(B   ~u -> \e,B{\e(B
-   symbol    |   ~    | `. -> \e,B\7f\e(B   ~~ -> \e,B"\e(B   ~. -> ?\e,B8\e(B
+    acute    |   '    | 'a -> Ã¡   '' -> ?´
+  circumflex |   ^    | ^a -> Ã¢
+  diaeresis  |   \"    | \"a -> Ã¤   \"\" -> Â¨
+    breve    |   ~    | ~a -> Äƒ
+    caron    |   ~    | ~c -> Ä
+   cedilla   |   `    | `c -> Ã§   `e -> ?Ä™
+    misc     | ' ` ~  | 'd -> Ä‘   `l -> Å‚   `z -> Å¼   ~o -> Å‘   ~u -> Å±
+   symbol    |   ~    | `. -> Ë™   ~~ -> Ë˜   ~. -> ?¸
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'A" ?\e,BA\e(B)
- ("'C" ?\e,BF\e(B)
- ("'D" ?\e,BP\e(B)
- ("'E" ?\e,BI\e(B)
- ("'I" ?\e,BM\e(B)
- ("'L" ?\e,BE\e(B)
- ("'N" ?\e,BQ\e(B)
- ("'O" ?\e,BS\e(B)
- ("'R" ?\e,B@\e(B)
- ("'S" ?\e,B&\e(B)
- ("'U" ?\e,BZ\e(B)
- ("'Y" ?\e,B]\e(B)
- ("'Z" ?\e,B,\e(B)
- ("'a" ?\e,Ba\e(B)
- ("'c" ?\e,Bf\e(B)
- ("'d" ?\e,Bp\e(B)
- ("'e" ?\e,Bi\e(B)
- ("'i" ?\e,Bm\e(B)
- ("'l" ?\e,Be\e(B)
- ("'n" ?\e,Bq\e(B)
- ("'o" ?\e,Bs\e(B)
- ("'r" ?\e,B`\e(B)
- ("'s" ?\e,B6\e(B)
- ("'u" ?\e,Bz\e(B)
- ("'y" ?\e,B}\e(B)
- ("'z" ?\e,B<\e(B)
- ("''" ?\e,B4\e(B)
+ ("'A" ?Ã)
+ ("'C" ?Ć)
+ ("'D" ?Ä)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'L" ?Ĺ)
+ ("'N" ?Ń)
+ ("'O" ?Ó)
+ ("'R" ?Å”)
+ ("'S" ?Åš)
+ ("'U" ?Ú)
+ ("'Y" ?Ã)
+ ("'Z" ?Ź)
+ ("'a" ?á)
+ ("'c" ?ć)
+ ("'d" ?Ä‘)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'l" ?ĺ)
+ ("'n" ?Å„)
+ ("'o" ?ó)
+ ("'r" ?Å•)
+ ("'s" ?Å›)
+ ("'u" ?ú)
+ ("'y" ?ý)
+ ("'z" ?ź)
+ ("''" ?´)
  ("' " ?')
- ("`A" ?\e,B!\e(B)
- ("`C" ?\e,BG\e(B)
- ("`E" ?\e,BJ\e(B)
- ("`L" ?\e,B#\e(B)
- ("`S" ?\e,B*\e(B)
- ("`T" ?\e,B^\e(B)
- ("`Z" ?\e,B/\e(B)
- ("`a" ?\e,B1\e(B)
- ("`l" ?\e,B3\e(B)
- ("`c" ?\e,Bg\e(B)
- ("`e" ?\e,Bj\e(B)
- ("`s" ?\e,B:\e(B)
- ("`t" ?\e,B~\e(B)
- ("`z" ?\e,B?\e(B)
- ("``" ?\e,B*\e(B)
- ("`." ?\e,B\7f\e(B)
+ ("`A" ?Ä„)
+ ("`C" ?Ç)
+ ("`E" ?Ę)
+ ("`L" ?Å)
+ ("`S" ?Åž)
+ ("`T" ?Å¢)
+ ("`Z" ?Å»)
+ ("`a" ?Ä…)
+ ("`l" ?Å‚)
+ ("`c" ?ç)
+ ("`e" ?Ä™)
+ ("`s" ?ÅŸ)
+ ("`t" ?Å£)
+ ("`z" ?ż)
+ ("``" ?Åž)
+ ("`." ?Ë™)
  ("` " ?`)
- ("^A" ?\e,BB\e(B)
- ("^I" ?\e,BN\e(B)
- ("^O" ?\e,BT\e(B)
- ("^a" ?\e,Bb\e(B)
- ("^i" ?\e,Bn\e(B)
- ("^o" ?\e,Bt\e(B)
+ ("^A" ?Â)
+ ("^I" ?ÃŽ)
+ ("^O" ?Ô)
+ ("^a" ?â)
+ ("^i" ?î)
+ ("^o" ?ô)
  ("^^" ?^)
  ("^ " ?^)
- ("\"A" ?\e,BD\e(B)
- ("\"E" ?\e,BK\e(B)
- ("\"O" ?\e,BV\e(B)
- ("\"U" ?\e,B\\e(B)
- ("\"a" ?\e,Bd\e(B)
- ("\"e" ?\e,Bk\e(B)
- ("\"o" ?\e,Bv\e(B)
- ("\"s" ?\e,B_\e(B)
- ("\"u" ?\e,B|\e(B)
- ("\"\"" ?\e,B(\e(B)
+ ("\"A" ?Ä)
+ ("\"E" ?Ë)
+ ("\"O" ?Ö)
+ ("\"U" ?Ãœ)
+ ("\"a" ?ä)
+ ("\"e" ?ë)
+ ("\"o" ?ö)
+ ("\"s" ?ß)
+ ("\"u" ?ü)
+ ("\"\"" ?¨)
  ("\" " ?\")
- ("~A" ?\e,BC\e(B)
- ("~C" ?\e,BH\e(B)
- ("~D" ?\e,BO\e(B)
- ("~E" ?\e,BL\e(B)
- ("~L" ?\e,B%\e(B)
- ("~N" ?\e,BR\e(B)
- ("~O" ?\e,BU\e(B)
- ("~R" ?\e,BX\e(B)
- ("~S" ?\e,B)\e(B)
- ("~T" ?\e,B+\e(B)
- ("~U" ?\e,B[\e(B)
- ("~Z" ?\e,B.\e(B)
- ("~a" ?\e,Bc\e(B)
- ("~c" ?\e,Bh\e(B)
- ("~d" ?\e,Bo\e(B)
- ("~e" ?\e,Bl\e(B)
- ("~l" ?\e,B5\e(B)
- ("~n" ?\e,Br\e(B)
- ("~o" ?\e,Bu\e(B)
- ("~r" ?\e,Bx\e(B)
- ("~s" ?\e,B9\e(B)
- ("~t" ?\e,B;\e(B)
- ("~u" ?\e,B{\e(B)
- ("~z" ?\e,B>\e(B)
- ("~v" ?\e,B"\e(B)
- ("~~" ?\e,B"\e(B)
- ("~." ?\e,B8\e(B)
+ ("~A" ?Ä‚)
+ ("~C" ?ÄŒ)
+ ("~D" ?ÄŽ)
+ ("~E" ?Äš)
+ ("~L" ?Ľ)
+ ("~N" ?Ň)
+ ("~O" ?Å)
+ ("~R" ?Ř)
+ ("~S" ?Å )
+ ("~T" ?Ť)
+ ("~U" ?Å°)
+ ("~Z" ?Ž)
+ ("~a" ?ă)
+ ("~c" ?Ä)
+ ("~d" ?Ä)
+ ("~e" ?Ä›)
+ ("~l" ?ľ)
+ ("~n" ?ň)
+ ("~o" ?Å‘)
+ ("~r" ?Å™)
+ ("~s" ?Å¡)
+ ("~t" ?Å¥)
+ ("~u" ?ű)
+ ("~z" ?ž)
+ ("~v" ?˘)
+ ("~~" ?˘)
+ ("~." ?¸)
  ("~ " ?~)
 )
 
@@ -595,111 +595,111 @@ Key translation rules are:
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'a -> \e,Ca\e(B   '' -> ?\e,C4\e(B
-    grave    |   `    | `a -> \e,C`\e(B
-  circumflex |   ^    | ^a -> \e,Cb\e(B
-  diaeresis  |   \"    | \"a -> \e,Cd\e(B   \"\" -> \e,C(\e(B
-   cedilla   |   ~    | ~c -> \e,Cg\e(B   ~s -> \e,C:\e(B   ~~ -> \e,C8\e(B
-  dot above  |   / .  | /g -> \e,Cu\e(B   .o -> \e,Cu\e(B
-    misc     | \" ~ /  | \"s -> \e,C_\e(B   ~g -> \e,C;\e(B   ~u -> \e,C}\e(B   /h -> \e,C1\e(B   /i -> \e,C9\e(B
-   symbol    |   ~    | ~` -> \e,C"\e(B   /# -> \e,C#\e(B   /$ -> \e,C$\e(B   // -> \e,C0\e(B
+    acute    |   '    | 'a -> Ã¡   '' -> ?´
+    grave    |   `    | `a -> Ã 
+  circumflex |   ^    | ^a -> Ã¢
+  diaeresis  |   \"    | \"a -> Ã¤   \"\" -> Â¨
+   cedilla   |   ~    | ~c -> Ã§   ~s -> ÅŸ   ~~ -> Â¸
+  dot above  |   / .  | /g -> Ä¡   .o -> Ä¡
+    misc     | \" ~ /  | \"s -> ÃŸ   ~g -> ÄŸ   ~u -> Å­   /h -> Ä§   /i -> Ä±
+   symbol    |   ~    | ~` -> Ë˜   /# -> Â£   /$ -> Â¤   // -> Â°
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'A" ?\e,CA\e(B)
- ("'E" ?\e,CI\e(B)
- ("'I" ?\e,CM\e(B)
- ("'O" ?\e,CS\e(B)
- ("'U" ?\e,CZ\e(B)
- ("'a" ?\e,Ca\e(B)
- ("'e" ?\e,Ci\e(B)
- ("'i" ?\e,Cm\e(B)
- ("'o" ?\e,Cs\e(B)
- ("'u" ?\e,Cz\e(B)
- ("''" ?\e,C4\e(B)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
+ ("''" ?´)
  ("' " ?')
- ("`A" ?\e,C@\e(B)
- ("`E" ?\e,CH\e(B)
- ("`I" ?\e,CL\e(B)
- ("`O" ?\e,CR\e(B)
- ("`U" ?\e,CY\e(B)
- ("`a" ?\e,C`\e(B)
- ("`e" ?\e,Ch\e(B)
- ("`i" ?\e,Cl\e(B)
- ("`o" ?\e,Cr\e(B)
- ("`u" ?\e,Cy\e(B)
+ ("`A" ?À)
+ ("`E" ?È)
+ ("`I" ?ÃŒ)
+ ("`O" ?Ã’)
+ ("`U" ?Ù)
+ ("`a" ?à)
+ ("`e" ?è)
+ ("`i" ?ì)
+ ("`o" ?ò)
+ ("`u" ?ù)
  ("``" ?`)
  ("` " ?`)
- ("^A" ?\e,CB\e(B)
- ("^C" ?\e,CF\e(B)
- ("^E" ?\e,CJ\e(B)
- ("^G" ?\e,CX\e(B)
- ("^H" ?\e,C&\e(B)
- ("^I" ?\e,CN\e(B)
- ("^J" ?\e,C,\e(B)
- ("^O" ?\e,CT\e(B)
- ("^S" ?\e,C^\e(B)
- ("^U" ?\e,C[\e(B)
- ("^a" ?\e,Cb\e(B)
- ("^c" ?\e,Cf\e(B)
- ("^e" ?\e,Cj\e(B)
- ("^g" ?\e,Cx\e(B)
- ("^h" ?\e,C6\e(B)
- ("^i" ?\e,Cn\e(B)
- ("^j" ?\e,C<\e(B)
- ("^o" ?\e,Ct\e(B)
- ("^s" ?\e,C~\e(B)
- ("^u" ?\e,C{\e(B)
+ ("^A" ?Â)
+ ("^C" ?Ĉ)
+ ("^E" ?Ê)
+ ("^G" ?Äœ)
+ ("^H" ?Ĥ)
+ ("^I" ?ÃŽ)
+ ("^J" ?Ä´)
+ ("^O" ?Ô)
+ ("^S" ?Åœ)
+ ("^U" ?Û)
+ ("^a" ?â)
+ ("^c" ?ĉ)
+ ("^e" ?ê)
+ ("^g" ?Ä)
+ ("^h" ?Ä¥)
+ ("^i" ?î)
+ ("^j" ?ĵ)
+ ("^o" ?ô)
+ ("^s" ?Å)
+ ("^u" ?û)
  ("^^" ?^)
  ("^ " ?^)
- ("\"A" ?\e,CD\e(B)
- ("\"E" ?\e,CK\e(B)
- ("\"I" ?\e,CO\e(B)
- ("\"O" ?\e,CV\e(B)
- ("\"U" ?\e,C\\e(B)
- ("\"a" ?\e,Cd\e(B)
- ("\"e" ?\e,Ck\e(B)
- ("\"i" ?\e,Co\e(B)
- ("\"o" ?\e,Cv\e(B)
- ("\"u" ?\e,C|\e(B)
- ("\"s" ?\e,C_\e(B)
- ("\"\"" ?\e,C(\e(B)
+ ("\"A" ?Ä)
+ ("\"E" ?Ë)
+ ("\"I" ?Ã)
+ ("\"O" ?Ö)
+ ("\"U" ?Ãœ)
+ ("\"a" ?ä)
+ ("\"e" ?ë)
+ ("\"i" ?ï)
+ ("\"o" ?ö)
+ ("\"u" ?ü)
+ ("\"s" ?ß)
+ ("\"\"" ?¨)
  ("\" " ?\")
- ("~C" ?\e,CG\e(B)
- ("~N" ?\e,CQ\e(B)
- ("~c" ?\e,Cg\e(B)
- ("~n" ?\e,Cq\e(B)
- ("~S" ?\e,C*\e(B)
- ("~s" ?\e,C:\e(B)
- ("~G" ?\e,C+\e(B)
- ("~g" ?\e,C;\e(B)
- ("~U" ?\e,C]\e(B)
- ("~u" ?\e,C}\e(B)
- ("~`" ?\e,C"\e(B)
- ("~~" ?\e,C8\e(B)
+ ("~C" ?Ç)
+ ("~N" ?Ñ)
+ ("~c" ?ç)
+ ("~n" ?ñ)
+ ("~S" ?Åž)
+ ("~s" ?ÅŸ)
+ ("~G" ?Äž)
+ ("~g" ?ÄŸ)
+ ("~U" ?Ŭ)
+ ("~u" ?Å­)
+ ("~`" ?˘)
+ ("~~" ?¸)
  ("~ " ?~)
- ("/C" ?\e,CE\e(B)
- ("/G" ?\e,CU\e(B)
- ("/H" ?\e,C!\e(B)
- ("/I" ?\e,C)\e(B)
- ("/Z" ?\e,C/\e(B)
- ("/c" ?\e,Ce\e(B)
- ("/g" ?\e,Cu\e(B)
- ("/h" ?\e,C1\e(B)
- ("/i" ?\e,C9\e(B)
- ("/z" ?\e,C?\e(B)
- ("/." ?\e,C\7f\e(B)
- ("/#" ?\e,C#\e(B)
- ("/$" ?\e,C$\e(B)
- ("//" ?\e,C0\e(B)
+ ("/C" ?ÄŠ)
+ ("/G" ?Ä )
+ ("/H" ?Ħ)
+ ("/I" ?Ä°)
+ ("/Z" ?Å»)
+ ("/c" ?Ä‹)
+ ("/g" ?Ä¡)
+ ("/h" ?ħ)
+ ("/i" ?ı)
+ ("/z" ?ż)
+ ("/." ?Ë™)
+ ("/#" ?£)
+ ("/$" ?¤)
+ ("//" ?°)
  ("/ " ?/)
- (".C" ?\e,CE\e(B)
- (".G" ?\e,CU\e(B)
- (".I" ?\e,C)\e(B)
- (".Z" ?\e,C/\e(B)
- (".c" ?\e,Ce\e(B)
- (".g" ?\e,Cu\e(B)
- (".z" ?\e,C?\e(B)
+ (".C" ?ÄŠ)
+ (".G" ?Ä )
+ (".I" ?Ä°)
+ (".Z" ?Å»)
+ (".c" ?Ä‹)
+ (".g" ?Ä¡)
+ (".z" ?ż)
 )
 
 
@@ -711,24 +711,24 @@ For example, the character named `aogonek' is obtained by `/a'."
 
 (quail-define-rules
  ("//" ?/)
- ("/a" ?\e,B1\e(B)
- ("/c" ?\e,Bf\e(B)
- ("/e" ?\e,Bj\e(B)
- ("/l" ?\e,B3\e(B)
- ("/n" ?\e,Bq\e(B)
- ("/o" ?\e,Bs\e(B)
- ("/s" ?\e,B6\e(B)
- ("/x" ?\e,B<\e(B)
- ("/z" ?\e,B?\e(B)
- ("/A" ?\e,B!\e(B)
- ("/C" ?\e,BF\e(B)
- ("/E" ?\e,BJ\e(B)
- ("/L" ?\e,B#\e(B)
- ("/N" ?\e,BQ\e(B)
- ("/O" ?\e,BS\e(B)
- ("/S" ?\e,B&\e(B)
- ("/X" ?\e,B,\e(B)
- ("/Z" ?\e,B/\e(B))
+ ("/a" ?Ä…)
+ ("/c" ?ć)
+ ("/e" ?Ä™)
+ ("/l" ?Å‚)
+ ("/n" ?Å„)
+ ("/o" ?ó)
+ ("/s" ?Å›)
+ ("/x" ?ź)
+ ("/z" ?ż)
+ ("/A" ?Ä„)
+ ("/C" ?Ć)
+ ("/E" ?Ę)
+ ("/L" ?Å)
+ ("/N" ?Ń)
+ ("/O" ?Ó)
+ ("/S" ?Åš)
+ ("/X" ?Ź)
+ ("/Z" ?Å»))
 
 (quail-define-package
  "latin-9-prefix" "Latin-9" "0>" t
@@ -736,131 +736,131 @@ For example, the character named `aogonek' is obtained by `/a'."
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'a -> \e,ba\e(B
-    grave    |   `    | `a -> \e,b`\e(B
-  circumflex |   ^    | ^a -> \e,bb\e(B
-  diaeresis  |   \"    | \"a -> \e,bd\e(B, \"Y -> \e,b>\e(B
-    tilde    |   ~    | ~a -> \e,bc\e(B
-    caron    |   ~    | ~z -> \e,b8\e(B
-   cedilla   |   ~    | ~c -> \e,bg\e(B
-    misc     | \" ~ /  | \"s -> \e,b_\e(B  ~d -> \e,bp\e(B  ~t -> \e,b~\e(B  /a -> \e,be\e(B  /e -> \e,bf\e(B  /o -> \e,bx\e(B
-             | \" ~ /  | /o -> \e,b=\e(B
-   symbol    |   ~    | ~> -> \e,b;\e(B  ~< -> \e,b+\e(B  ~! -> \e,b!\e(B  ~? -> \e,b?\e(B  ~~ -> \e,b8\e(B
-             |   ~    | ~s -> \e,b'\e(B  ~e -> \e,b$\e(B  ~. -> \e,b7\e(B  ~$ -> \e,b#\e(B  ~u -> \e,b5\e(B
-             |   ~    | ~- -> \e,b-\e(B  ~= -> \e,b/\e(B
-   symbol    |  _ /   | _o -> \e,b:\e(B  _a -> \e,b*\e(B  // -> \e,b0\e(B  /\\ -> \e,bW\e(B  _y -> \e,b%\e(B
-             |  _ /   | _: -> \e,bw\e(B  /c -> \e,b"\e(B  ~p -> \e,b6\e(B
-             |  _ /   | /= -> \e,b,\e(B
-   symbol    |   ^    | ^r -> \e,b.\e(B  ^c -> \e,b)\e(B  ^1 -> \e,b9\e(B  ^2 -> \e,b2\e(B  ^3 -> \e,b3\e(B  _a -> \e,b*\e(B
+    acute    |   '    | 'a -> Ã¡
+    grave    |   `    | `a -> Ã 
+  circumflex |   ^    | ^a -> Ã¢
+  diaeresis  |   \"    | \"a -> Ã¤, \"Y -> Å¸
+    tilde    |   ~    | ~a -> Ã£
+    caron    |   ~    | ~z -> Å¾
+   cedilla   |   ~    | ~c -> Ã§
+    misc     | \" ~ /  | \"s -> ÃŸ  ~d -> Ã°  ~t -> Ã¾  /a -> Ã¥  /e -> Ã¦  /o -> Ã¸
+             | \" ~ /  | /o -> Å“
+   symbol    |   ~    | ~> -> Â»  ~< -> Â«  ~! -> Â¡  ~? -> Â¿  ~~ -> Å¾
+             |   ~    | ~s -> Â§  ~e -> â‚¬  ~. -> Â·  ~$ -> Â£  ~u -> Âµ
+             |   ~    | ~- -> Â­  ~= -> Â¯
+   symbol    |  _ /   | _o -> Âº  _a -> Âª  // -> Â°  /\\ -> Ã—  _y -> Â¥
+             |  _ /   | _: -> Ã·  /c -> Â¢  ~p -> Â¶
+             |  _ /   | /= -> Â¬
+   symbol    |   ^    | ^r -> Â®  ^c -> Â©  ^1 -> Â¹  ^2 -> Â²  ^3 -> Â³  _a -> Âª
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
- ("'A" ?\e,bA\e(B)
- ("'E" ?\e,bI\e(B)
- ("'I" ?\e,bM\e(B)
- ("'O" ?\e,bS\e(B)
- ("'U" ?\e,bZ\e(B)
- ("'Y" ?\e,b]\e(B)
- ("'a" ?\e,ba\e(B)
- ("'e" ?\e,bi\e(B)
- ("'i" ?\e,bm\e(B)
- ("'o" ?\e,bs\e(B)
- ("'u" ?\e,bz\e(B)
- ("'y" ?\e,b}\e(B)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'Y" ?Ã)
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
+ ("'y" ?ý)
  ("' " ?')
- ("`A" ?\e,b@\e(B)
- ("`E" ?\e,bH\e(B)
- ("`I" ?\e,bL\e(B)
- ("`O" ?\e,bR\e(B)
- ("`U" ?\e,bY\e(B)
- ("`a" ?\e,b`\e(B)
- ("`e" ?\e,bh\e(B)
- ("`i" ?\e,bl\e(B)
- ("`o" ?\e,br\e(B)
- ("`u" ?\e,by\e(B)
+ ("`A" ?À)
+ ("`E" ?È)
+ ("`I" ?ÃŒ)
+ ("`O" ?Ã’)
+ ("`U" ?Ù)
+ ("`a" ?à)
+ ("`e" ?è)
+ ("`i" ?ì)
+ ("`o" ?ò)
+ ("`u" ?ù)
  ("``" ?`)
  ("` " ?`)
- ("^A" ?\e,bB\e(B)
- ("^E" ?\e,bJ\e(B)
- ("^I" ?\e,bN\e(B)
- ("^O" ?\e,bT\e(B)
- ("^U" ?\e,b[\e(B)
- ("^a" ?\e,bb\e(B)
- ("^e" ?\e,bj\e(B)
- ("^i" ?\e,bn\e(B)
- ("^o" ?\e,bt\e(B)
- ("^u" ?\e,b{\e(B)
+ ("^A" ?Â)
+ ("^E" ?Ê)
+ ("^I" ?ÃŽ)
+ ("^O" ?Ô)
+ ("^U" ?Û)
+ ("^a" ?â)
+ ("^e" ?ê)
+ ("^i" ?î)
+ ("^o" ?ô)
+ ("^u" ?û)
  ("^^" ?^)
  ("^ " ?^)
- ("\"A" ?\e,bD\e(B)
- ("\"E" ?\e,bK\e(B)
- ("\"I" ?\e,bO\e(B)
- ("\"O" ?\e,bV\e(B)
- ("\"U" ?\e,b\\e(B)
- ("\"a" ?\e,bd\e(B)
- ("\"e" ?\e,bk\e(B)
- ("\"i" ?\e,bo\e(B)
- ("\"o" ?\e,bv\e(B)
- ("\"s" ?\e,b_\e(B)
- ("\"u" ?\e,b|\e(B)
- ("\"y" ?\e,b\7f\e(B)
+ ("\"A" ?Ä)
+ ("\"E" ?Ë)
+ ("\"I" ?Ã)
+ ("\"O" ?Ö)
+ ("\"U" ?Ãœ)
+ ("\"a" ?ä)
+ ("\"e" ?ë)
+ ("\"i" ?ï)
+ ("\"o" ?ö)
+ ("\"s" ?ß)
+ ("\"u" ?ü)
+ ("\"y" ?ÿ)
  ("\" " ?\")
- ("~A" ?\e,bC\e(B)
- ("~C" ?\e,bG\e(B)
- ("~D" ?\e,bP\e(B)
- ("~N" ?\e,bQ\e(B)
- ("~O" ?\e,bU\e(B)
- ("~S" ?\e,b&\e(B)
- ("~T" ?\e,b^\e(B)
- ("~Z" ?\e,b4\e(B)
- ("~a" ?\e,bc\e(B)
- ("~c" ?\e,bg\e(B)
- ("~d" ?\e,bp\e(B)
- ("~n" ?\e,bq\e(B)
- ("~o" ?\e,bu\e(B)
- ("~s" ?\e,b(\e(B)
- ("~t" ?\e,b~\e(B)
- ("~z" ?\e,b8\e(B)
- ("~>" ?\\e,b;\e(B)
- ("~<" ?\\e,b+\e(B)
- ("~!" ?\e,b!\e(B)
- ("~?" ?\e,b?\e(B)
+ ("~A" ?Ã)
+ ("~C" ?Ç)
+ ("~D" ?Ã)
+ ("~N" ?Ñ)
+ ("~O" ?Õ)
+ ("~S" ?Å )
+ ("~T" ?Þ)
+ ("~Z" ?Ž)
+ ("~a" ?ã)
+ ("~c" ?ç)
+ ("~d" ?ð)
+ ("~n" ?ñ)
+ ("~o" ?õ)
+ ("~s" ?Å¡)
+ ("~t" ?þ)
+ ("~z" ?ž)
+ ("~>" ?\»)
+ ("~<" ?\«)
+ ("~!" ?¡)
+ ("~?" ?¿)
  ("~ " ?~)
- ("/A" ?\e,bE\e(B)
- ("/E" ?\e,bF\e(B)
- ("/O" ?\e,bX\e(B)
- ("/a" ?\e,be\e(B)
- ("/e" ?\e,bf\e(B)
- ("/o" ?\e,bx\e(B)
- ("//" ?\e,b0\e(B)
+ ("/A" ?Ã…)
+ ("/E" ?Æ)
+ ("/O" ?Ø)
+ ("/a" ?Ã¥)
+ ("/e" ?æ)
+ ("/o" ?ø)
+ ("//" ?°)
  ("/ " ?/)
- ("_o" ?\e,b:\e(B)
- ("_a" ?\e,b*\e(B)
- ("_+" ?\e,b1\e(B)
- ("_y" ?\e,b%\e(B)
- ("_:" ?\e,bw\e(B)
- ("_ " ?\e,b \e(B)
+ ("_o" ?º)
+ ("_a" ?ª)
+ ("_+" ?±)
+ ("_y" ?Â¥)
+ ("_:" ?÷)
+ ("_ " ? )
  ("__" ?_)
- ("/c" ?\e,b"\e(B)
- ("/\\" ?\e,bW\e(B)
- ("/o" ?\e,b=\e(B)                               ; clash with \e,bx\e(B, but \e,bf\e(B uses /
- ("/O" ?\e,b<\e(B)
- ("\"Y" ?\e,b>\e(B)
- ("~s" ?\e,b'\e(B)
- ("~p" ?\e,b6\e(B)
+ ("/c" ?¢)
+ ("/\\" ?×)
+ ("/o" ?Å“)                            ; clash with Ã¸, but Ã¦ uses /
+ ("/O" ?Å’)
+ ("\"Y" ?Ÿ)
+ ("~s" ?§)
+ ("~p" ?¶)
  ;; Is this the best option for Euro entry?
- ("~e" ?\e,b$\e(B)
- ("~." ?\e,b7\e(B)
- ("~$" ?\e,b#\e(B)
- ("~u" ?\e,b5\e(B)
- ("^r" ?\e,b.\e(B)
- ("^c" ?\e,b)\e(B)
- ("^1" ?\e,b9\e(B)
- ("^2" ?\e,b2\e(B)
- ("^3" ?\e,b3\e(B)
- ("~-" ?\e,b-\e(B)
- ("~=" ?\e,b/\e(B)
- ("/=" ?\e,b,\e(B))
+ ("~e" ?€)
+ ("~." ?·)
+ ("~$" ?£)
+ ("~u" ?µ)
+ ("^r" ?®)
+ ("^c" ?©)
+ ("^1" ?¹)
+ ("^2" ?²)
+ ("^3" ?³)
+ ("~-" ?­)
+ ("~=" ?¯)
+ ("/=" ?¬))
 
 ;; Latin-8 was done by an Englishman -- Johnny Celt should take a
 ;; squint at it.
@@ -871,122 +871,122 @@ For example, the character named `aogonek' is obtained by `/a'."
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'a -> \e,_a\e(B
-    grave    |   `    | `a -> \e,_`\e(B
-  circumflex |   ^    | ^w -> \e,_p\e(B
-  diaeresis  |   \"    | \"a -> \e,_d\e(B
-  dot above  |   .    | .b -> \e,_"\e(B
-    tilde    |   ~    | ~a -> \e,_c\e(B
-   cedilla   |   ~    | ~c -> \e,_g\e(B
-    misc     | \" ~ /  | \"s -> \e,__\e(B   /a -> \e,_e\e(B  /e -> \e,_f\e(B  /o -> \e,_x\e(B
-             |   ~    | ~s -> \e,_'\e(B  ~$ -> \e,_#\e(B  ~p -> \e,_6\e(B
-   symbol    |   ^    | ^r -> \e,_.\e(B  ^c -> \e,_)\e(B
+    acute    |   '    | 'a -> Ã¡
+    grave    |   `    | `a -> Ã 
+  circumflex |   ^    | ^w -> Åµ
+  diaeresis  |   \"    | \"a -> Ã¤
+  dot above  |   .    | .b -> á¸ƒ
+    tilde    |   ~    | ~a -> Ã£
+   cedilla   |   ~    | ~c -> Ã§
+    misc     | \" ~ /  | \"s -> ÃŸ   /a -> Ã¥  /e -> Ã¦  /o -> Ã¸
+             |   ~    | ~s -> Â§  ~$ -> Â£  ~p -> Â¶
+   symbol    |   ^    | ^r -> Â®  ^c -> Â©
 " nil t nil nil nil nil nil nil nil nil t)
 
 ;; Basically following Latin-1, plus dottiness from Latin-3.
 (quail-define-rules
- (".B" ?\e,_!\e(B)
- (".b" ?\e,_"\e(B)
- (".c" ?\e,_%\e(B)
- (".C" ?\e,_$\e(B)
- (".D" ?\e,_&\e(B)
- (".d" ?\e,_+\e(B)
- (".f" ?\e,_1\e(B)
- (".F" ?\e,_0\e(B)
- (".g" ?\e,_3\e(B)
- (".G" ?\e,_2\e(B)
- (".m" ?\e,_5\e(B)
- (".M" ?\e,_4\e(B)
- (".p" ?\e,_9\e(B)
- (".P" ?\e,_7\e(B)
- (".s" ?\e,_?\e(B)
- (".S" ?\e,_;\e(B)
- (".t" ?\e,_w\e(B)
- (".T" ?\e,_W\e(B)
- ("'A" ?\e,_A\e(B)
- ("'E" ?\e,_I\e(B)
- ("'I" ?\e,_M\e(B)
- ("'O" ?\e,_S\e(B)
- ("'U" ?\e,_Z\e(B)
- ("'Y" ?\e,_]\e(B)
- ("'W" ?\e,_*\e(B)
- ("'a" ?\e,_a\e(B)
- ("'e" ?\e,_i\e(B)
- ("'i" ?\e,_m\e(B)
- ("'o" ?\e,_s\e(B)
- ("'u" ?\e,_z\e(B)
- ("'w" ?\e,_:\e(B)
- ("'y" ?\e,_}\e(B)
+ (".B" ?Ḃ)
+ (".b" ?ḃ)
+ (".c" ?Ä‹)
+ (".C" ?ÄŠ)
+ (".D" ?Ḋ)
+ (".d" ?ḋ)
+ (".f" ?ḟ)
+ (".F" ?Ḟ)
+ (".g" ?Ä¡)
+ (".G" ?Ä )
+ (".m" ?á¹)
+ (".M" ?á¹€)
+ (".p" ?á¹—)
+ (".P" ?á¹–)
+ (".s" ?ṡ)
+ (".S" ?á¹ )
+ (".t" ?ṫ)
+ (".T" ?Ṫ)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'Y" ?Ã)
+ ("'W" ?Ẃ)
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
+ ("'w" ?ẃ)
+ ("'y" ?ý)
  ("' " ?')
- ("`A" ?\e,_@\e(B)
- ("`E" ?\e,_H\e(B)
- ("`I" ?\e,_L\e(B)
- ("`O" ?\e,_R\e(B)
- ("`U" ?\e,_Y\e(B)
- ("`W" ?\e,_(\e(B)
- ("`Y" ?\e,_,\e(B)
- ("`a" ?\e,_`\e(B)
- ("`e" ?\e,_h\e(B)
- ("`i" ?\e,_l\e(B)
- ("`o" ?\e,_r\e(B)
- ("`u" ?\e,_y\e(B)
- ("`w" ?\e,_8\e(B)
- ("`y" ?\e,_<\e(B)
+ ("`A" ?À)
+ ("`E" ?È)
+ ("`I" ?ÃŒ)
+ ("`O" ?Ã’)
+ ("`U" ?Ù)
+ ("`W" ?Ẁ)
+ ("`Y" ?Ỳ)
+ ("`a" ?à)
+ ("`e" ?è)
+ ("`i" ?ì)
+ ("`o" ?ò)
+ ("`u" ?ù)
+ ("`w" ?áº)
+ ("`y" ?ỳ)
  ("``" ?`)
  ("` " ?`)
- ("^A" ?\e,_B\e(B)
- ("^E" ?\e,_J\e(B)
- ("^I" ?\e,_N\e(B)
- ("^O" ?\e,_T\e(B)
- ("^U" ?\e,_[\e(B)
- ("^a" ?\e,_b\e(B)
- ("^e" ?\e,_j\e(B)
- ("^i" ?\e,_n\e(B)
- ("^o" ?\e,_t\e(B)
- ("^u" ?\e,_{\e(B)
- ("^w" ?\e,_p\e(B)
- ("^W" ?\e,_P\e(B)
- ("^y" ?\e,_~\e(B)
- ("^Y" ?\e,_^\e(B)
+ ("^A" ?Â)
+ ("^E" ?Ê)
+ ("^I" ?ÃŽ)
+ ("^O" ?Ô)
+ ("^U" ?Û)
+ ("^a" ?â)
+ ("^e" ?ê)
+ ("^i" ?î)
+ ("^o" ?ô)
+ ("^u" ?û)
+ ("^w" ?ŵ)
+ ("^W" ?Å´)
+ ("^y" ?Å·)
+ ("^Y" ?Ŷ)
  ("^^" ?^)
  ("^ " ?^)
- ("\"A" ?\e,_D\e(B)
- ("\"E" ?\e,_K\e(B)
- ("\"I" ?\e,_O\e(B)
- ("\"O" ?\e,_V\e(B)
- ("\"U" ?\e,_\\e(B)
- ("\"a" ?\e,_d\e(B)
- ("\"e" ?\e,_k\e(B)
- ("\"i" ?\e,_o\e(B)
- ("\"o" ?\e,_v\e(B)
- ("\"s" ?\e,__\e(B)
- ("\"u" ?\e,_|\e(B)
- ("\"w" ?\e,_>\e(B)
- ("\"W" ?\e,_=\e(B)
- ("\"y" ?\e,_\7f\e(B)
- ("\"Y" ?\e,_/\e(B)
+ ("\"A" ?Ä)
+ ("\"E" ?Ë)
+ ("\"I" ?Ã)
+ ("\"O" ?Ö)
+ ("\"U" ?Ãœ)
+ ("\"a" ?ä)
+ ("\"e" ?ë)
+ ("\"i" ?ï)
+ ("\"o" ?ö)
+ ("\"s" ?ß)
+ ("\"u" ?ü)
+ ("\"w" ?ẅ)
+ ("\"W" ?Ẅ)
+ ("\"y" ?ÿ)
+ ("\"Y" ?Ÿ)
  ("\" " ?\")
- ("~A" ?\e,_C\e(B)
- ("~C" ?\e,_G\e(B)
- ("~N" ?\e,_Q\e(B)
- ("~O" ?\e,_U\e(B)
- ("~a" ?\e,_c\e(B)
- ("~c" ?\e,_g\e(B)
- ("~n" ?\e,_q\e(B)
- ("~o" ?\e,_u\e(B)
+ ("~A" ?Ã)
+ ("~C" ?Ç)
+ ("~N" ?Ñ)
+ ("~O" ?Õ)
+ ("~a" ?ã)
+ ("~c" ?ç)
+ ("~n" ?ñ)
+ ("~o" ?õ)
  ("~ " ?~)
- ("/A" ?\e,_E\e(B)
- ("/E" ?\e,_F\e(B)
- ("/O" ?\e,_X\e(B)
- ("/a" ?\e,_e\e(B)
- ("/e" ?\e,_f\e(B)
- ("/o" ?\e,_x\e(B)
+ ("/A" ?Ã…)
+ ("/E" ?Æ)
+ ("/O" ?Ø)
+ ("/a" ?Ã¥)
+ ("/e" ?æ)
+ ("/o" ?ø)
  ("/ " ?/)
- ("~p" ?\e,_6\e(B)
- ("~s" ?\e,_'\e(B)
- ("~$" ?\e,_#\e(B)
- ("^r" ?\e,_.\e(B)
- ("^c" ?\e,_)\e(B))
+ ("~p" ?¶)
+ ("~s" ?§)
+ ("~$" ?£)
+ ("^r" ?®)
+ ("^c" ?©))
 
 (quail-define-package
  "latin-prefix" "Latin" "L>" t
@@ -996,199 +996,199 @@ of characters from a single Latin-N charset.
 
     effect   | prefix | examples
  ------------+--------+----------
-    acute    |   '    | 'a -> \e,Aa\e(B, '' -> \e,A4\e(B
-    grave    |   `    | `a -> \e,A`\e(B
-  circumflex |   ^    | ^a -> \e,Ab\e(B
-  diaeresis  |   \"    | \"a -> \e,Ad\e(B  \"\" -> \e,A(\e(B
-    tilde    |   ~    | ~a -> \e,Ac\e(B
-   cedilla   |   ~    | ~c -> \e,Ag\e(B
-    breve    |   ~    | ~a -> \e$,1 #\e(B
-    caron    |   ~    | ~c -> \e$,1 -\e(B
-  dot above  | ~ / .  | ~o -> \e$,1 A\e(B   /o -> \e$,1 A\e(B   .o -> \e$,1 A\e(B
-    misc     | \" ~ /  | \"s -> \e,A_\e(B  ~d -> \e,Ap\e(B  ~t -> \e,A~\e(B  /a -> \e,Ae\e(B  /e -> \e,Af\e(B  /o -> \e,Ax\e(B
-   symbol    |   ~    | ~> -> \e,A;\e(B  ~< -> \e,A+\e(B  ~! -> \e,A!\e(B  ~? -> \e,A?\e(B  ~~ -> \e,A8\e(B
-   symbol    |  _ /   | _o -> \e,A:\e(B  _a -> \e,A*\e(B  // -> \e,A0\e(B  /\\ -> \e,AW\e(B  _y -> \e,A%\e(B
-   symbol    |   ^    | ^r -> \e,A.\e(B  ^c -> \e,A)\e(B  ^1 -> \e,A9\e(B  ^2 -> \e,A2\e(B  ^3 -> \e,A3\e(B
+    acute    |   '    | 'a -> Ã¡, '' -> Â´
+    grave    |   `    | `a -> Ã 
+  circumflex |   ^    | ^a -> Ã¢
+  diaeresis  |   \"    | \"a -> Ã¤  \"\" -> Â¨
+    tilde    |   ~    | ~a -> Ã£
+   cedilla   |   ~    | ~c -> Ã§
+    breve    |   ~    | ~a -> Äƒ
+    caron    |   ~    | ~c -> Ä
+  dot above  | ~ / .  | ~o -> Ä¡   /o -> Ä¡   .o -> Ä¡
+    misc     | \" ~ /  | \"s -> ÃŸ  ~d -> Ã°  ~t -> Ã¾  /a -> Ã¥  /e -> Ã¦  /o -> Ã¸
+   symbol    |   ~    | ~> -> Â»  ~< -> Â«  ~! -> Â¡  ~? -> Â¿  ~~ -> Â¸
+   symbol    |  _ /   | _o -> Âº  _a -> Âª  // -> Â°  /\\ -> Ã—  _y -> Â¥
+   symbol    |   ^    | ^r -> Â®  ^c -> Â©  ^1 -> Â¹  ^2 -> Â²  ^3 -> Â³
 " nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("' " ?')
- ("''" ?\e,A4\e(B)
- ("'A" ?\e,AA\e(B)
- ("'E" ?\e,AI\e(B)
- ("'I" ?\e,AM\e(B)
- ("'O" ?\e,AS\e(B)
- ("'U" ?\e,AZ\e(B)
- ("'W" ?\e$,1nb\e(B)
- ("'Y" ?\e,A]\e(B)
- ("'a" ?\e,Aa\e(B)
- ("'e" ?\e,Ai\e(B)
- ("'i" ?\e,Am\e(B)
- ("'o" ?\e,As\e(B)
- ("'u" ?\e,Az\e(B)
- ("'w" ?\e$,1nc\e(B)
- ("'y" ?\e,A}\e(B)
- (".B" ?\e$,1mB\e(B)
- (".C" ?\e$,1 *\e(B)
- (".D" ?\e$,1mJ\e(B)
- (".F" ?\e$,1m^\e(B)
- (".G" ?\e$,1 @\e(B)
- (".I" ?\e$,1 P\e(B)
- (".M" ?\e$,1n \e(B)
- (".P" ?\e$,1n6\e(B)
- (".S" ?\e$,1n@\e(B)
- (".T" ?\e$,1nJ\e(B)
- (".Z" ?\e$,1!;\e(B)
- (".b" ?\e$,1mC\e(B)
- (".c" ?\e$,1 +\e(B)
- (".d" ?\e$,1mK\e(B)
- (".f" ?\e$,1m_\e(B)
- (".g" ?\e$,1 A\e(B)
- (".m" ?\e$,1n!\e(B)
- (".p" ?\e$,1n7\e(B)
- (".s" ?\e$,1nA\e(B)
- (".t" ?\e$,1nK\e(B)
- (".z" ?\e$,1!<\e(B)
+ ("''" ?´)
+ ("'A" ?Ã)
+ ("'E" ?É)
+ ("'I" ?Ã)
+ ("'O" ?Ó)
+ ("'U" ?Ú)
+ ("'W" ?Ẃ)
+ ("'Y" ?Ã)
+ ("'a" ?á)
+ ("'e" ?é)
+ ("'i" ?í)
+ ("'o" ?ó)
+ ("'u" ?ú)
+ ("'w" ?ẃ)
+ ("'y" ?ý)
+ (".B" ?Ḃ)
+ (".C" ?ÄŠ)
+ (".D" ?Ḋ)
+ (".F" ?Ḟ)
+ (".G" ?Ä )
+ (".I" ?Ä°)
+ (".M" ?á¹€)
+ (".P" ?á¹–)
+ (".S" ?á¹ )
+ (".T" ?Ṫ)
+ (".Z" ?Å»)
+ (".b" ?ḃ)
+ (".c" ?Ä‹)
+ (".d" ?ḋ)
+ (".f" ?ḟ)
+ (".g" ?Ä¡)
+ (".m" ?á¹)
+ (".p" ?á¹—)
+ (".s" ?ṡ)
+ (".t" ?ṫ)
+ (".z" ?ż)
  ("/ " ?/)
- ("/#" ?\e,A#\e(B)
- ("/$" ?\e,A$\e(B)
- ("/." ?\e$,1$y\e(B)
- ("//" ?\e,A0\e(B)
- ("/2" ?\e,A=\e(B)
- ("/3" ?\e,A>\e(B)
- ("/4" ?\e,A<\e(B)
- ("/=" ?\e,A,\e(B)
- ("/A" ?\e,AE\e(B)
- ("/C" ?\e$,1 *\e(B)
- ("/E" ?\e,AF\e(B)
- ("/G" ?\e$,1 @\e(B)
- ("/H" ?\e$,1 F\e(B)
- ("/I" ?\e$,1 P\e(B)
- ("/O" ?\e,AX\e(B)
- ("/O" ?\e$,1 r\e(B)
- ("/Z" ?\e$,1!;\e(B)
- ("/\\" ?\e,AW\e(B)
- ("/a" ?\e,Ae\e(B)
- ("/c" ?\e,A"\e(B)
- ("/c" ?\e$,1 +\e(B)
- ("/e" ?\e,Af\e(B)
- ("/g" ?\e$,1 A\e(B)
- ("/h" ?\e$,1 G\e(B)
- ("/i" ?\e$,1 Q\e(B)
- ("/o" ?\e,Ax\e(B)
- ("/o" ?\e$,1 s\e(B)
- ("/z" ?\e$,1!<\e(B)
+ ("/#" ?£)
+ ("/$" ?¤)
+ ("/." ?Ë™)
+ ("//" ?°)
+ ("/2" ?½)
+ ("/3" ?¾)
+ ("/4" ?¼)
+ ("/=" ?¬)
+ ("/A" ?Ã…)
+ ("/C" ?ÄŠ)
+ ("/E" ?Æ)
+ ("/G" ?Ä )
+ ("/H" ?Ħ)
+ ("/I" ?Ä°)
+ ("/O" ?Ø)
+ ("/O" ?Å’)
+ ("/Z" ?Å»)
+ ("/\\" ?×)
+ ("/a" ?Ã¥)
+ ("/c" ?¢)
+ ("/c" ?Ä‹)
+ ("/e" ?æ)
+ ("/g" ?Ä¡)
+ ("/h" ?ħ)
+ ("/i" ?ı)
+ ("/o" ?ø)
+ ("/o" ?Å“)
+ ("/z" ?ż)
  ("\" " ?\")
- ("\"A" ?\e,AD\e(B)
- ("\"E" ?\e,AK\e(B)
- ("\"I" ?\e,AO\e(B)
- ("\"O" ?\e,AV\e(B)
- ("\"U" ?\e,A\\e(B)
- ("\"W" ?\e$,1nd\e(B)
- ("\"Y" ?\e$,1!8\e(B)
- ("\"\"" ?\e,A(\e(B)
- ("\"a" ?\e,Ad\e(B)
- ("\"e" ?\e,Ak\e(B)
- ("\"i" ?\e,Ao\e(B)
- ("\"o" ?\e,Av\e(B)
- ("\"s" ?\e,A_\e(B)
- ("\"u" ?\e,A|\e(B)
- ("\"w" ?\e$,1ne\e(B)
- ("\"y" ?\e,A\7f\e(B)
+ ("\"A" ?Ä)
+ ("\"E" ?Ë)
+ ("\"I" ?Ã)
+ ("\"O" ?Ö)
+ ("\"U" ?Ãœ)
+ ("\"W" ?Ẅ)
+ ("\"Y" ?Ÿ)
+ ("\"\"" ?¨)
+ ("\"a" ?ä)
+ ("\"e" ?ë)
+ ("\"i" ?ï)
+ ("\"o" ?ö)
+ ("\"s" ?ß)
+ ("\"u" ?ü)
+ ("\"w" ?ẅ)
+ ("\"y" ?ÿ)
  ("^ " ?^)
- ("^1" ?\e,A9\e(B)
- ("^2" ?\e,A2\e(B)
- ("^3" ?\e,A3\e(B)
- ("^A" ?\e,AB\e(B)
- ("^C" ?\e$,1 (\e(B)
- ("^E" ?\e,AJ\e(B)
- ("^G" ?\e$,1 <\e(B)
- ("^H" ?\e$,1 D\e(B)
- ("^I" ?\e,AN\e(B)
- ("^J" ?\e$,1 T\e(B)
- ("^O" ?\e,AT\e(B)
- ("^S" ?\e$,1 |\e(B)
- ("^U" ?\e,A[\e(B)
- ("^W" ?\e$,1!4\e(B)
- ("^Y" ?\e$,1!6\e(B)
+ ("^1" ?¹)
+ ("^2" ?²)
+ ("^3" ?³)
+ ("^A" ?Â)
+ ("^C" ?Ĉ)
+ ("^E" ?Ê)
+ ("^G" ?Äœ)
+ ("^H" ?Ĥ)
+ ("^I" ?ÃŽ)
+ ("^J" ?Ä´)
+ ("^O" ?Ô)
+ ("^S" ?Åœ)
+ ("^U" ?Û)
+ ("^W" ?Å´)
+ ("^Y" ?Ŷ)
  ("^^" ?^)
- ("^a" ?\e,Ab\e(B)
- ("^c" ?\e,A)\e(B)
- ("^c" ?\e$,1 )\e(B)
- ("^e" ?\e,Aj\e(B)
- ("^g" ?\e$,1 =\e(B)
- ("^h" ?\e$,1 E\e(B)
- ("^i" ?\e,An\e(B)
- ("^j" ?\e$,1 U\e(B)
- ("^o" ?\e,At\e(B)
- ("^r" ?\e,A.\e(B)
- ("^s" ?\e$,1 }\e(B)
- ("^u" ?\e,A{\e(B)
- ("^w" ?\e$,1!5\e(B)
- ("^y" ?\e$,1!7\e(B)
- ("_+" ?\e,A1\e(B)
- ("_:" ?\e,Aw\e(B)
- ("_a" ?\e,A*\e(B)
- ("_o" ?\e,A:\e(B)
- ("_y" ?\e,A%\e(B)
- ("_ " ?\e,A \e(B)
+ ("^a" ?â)
+ ("^c" ?©)
+ ("^c" ?ĉ)
+ ("^e" ?ê)
+ ("^g" ?Ä)
+ ("^h" ?Ä¥)
+ ("^i" ?î)
+ ("^j" ?ĵ)
+ ("^o" ?ô)
+ ("^r" ?®)
+ ("^s" ?Å)
+ ("^u" ?û)
+ ("^w" ?ŵ)
+ ("^y" ?Å·)
+ ("_+" ?±)
+ ("_:" ?÷)
+ ("_a" ?ª)
+ ("_o" ?º)
+ ("_y" ?Â¥)
+ ("_ " ? )
  ("` " ?`)
- ("`A" ?\e,A@\e(B)
- ("`E" ?\e,AH\e(B)
- ("`I" ?\e,AL\e(B)
- ("`O" ?\e,AR\e(B)
- ("`U" ?\e,AY\e(B)
- ("`W" ?\e$,1n`\e(B)
- ("`Y" ?\e$,1or\e(B)
+ ("`A" ?À)
+ ("`E" ?È)
+ ("`I" ?ÃŒ)
+ ("`O" ?Ã’)
+ ("`U" ?Ù)
+ ("`W" ?Ẁ)
+ ("`Y" ?Ỳ)
  ("``" ?`)
- ("`a" ?\e,A`\e(B)
- ("`e" ?\e,Ah\e(B)
- ("`i" ?\e,Al\e(B)
- ("`o" ?\e,Ar\e(B)
- ("`u" ?\e,Ay\e(B)
- ("`w" ?\e$,1na\e(B)
- ("`y" ?\e$,1os\e(B)
+ ("`a" ?à)
+ ("`e" ?è)
+ ("`i" ?ì)
+ ("`o" ?ò)
+ ("`u" ?ù)
+ ("`w" ?áº)
+ ("`y" ?ỳ)
  ("~ " ?~)
- ("~!" ?\e,A!\e(B)
- ("~$" ?\e,A#\e(B)
- ("~-" ?\e,A-\e(B)
- ("~." ?\e,A7\e(B)
- ("~<" ?\\e,A+\e(B)
- ("~=" ?\e,A/\e(B)
- ("~>" ?\\e,A;\e(B)
- ("~?" ?\e,A?\e(B)
- ("~A" ?\e,AC\e(B)
- ("~C" ?\e,AG\e(B)
- ("~D" ?\e,AP\e(B)
- ("~G" ?\e$,1 >\e(B)
- ("~N" ?\e,AQ\e(B)
- ("~O" ?\e,AU\e(B)
- ("~O" ?\e$,1 @\e(B)
- ("~S" ?\e$,1 ~\e(B)
- ("~S" ?\e$,1! \e(B)
- ("~T" ?\e,A^\e(B)
- ("~U" ?\e$,1!,\e(B)
- ("~Z" ?\e$,1!=\e(B)
- ("~`" ?\e$,1$x\e(B)
- ("~a" ?\e,Ac\e(B)
- ("~c" ?\e,Ag\e(B)
- ("~d" ?\e,Ap\e(B)
- ("~e" ?\e$,1tL\e(B)
- ("~g" ?\e$,1 ?\e(B)
- ("~n" ?\e,Aq\e(B)
- ("~o" ?\e,Au\e(B)
- ("~o" ?\e$,1 A\e(B)
- ("~p" ?\e,A6\e(B)
- ("~s" ?\e,A'\e(B)
- ("~s" ?\e$,1 \7f\e(B)
- ("~s" ?\e$,1!!\e(B)
- ("~t" ?\e,A~\e(B)
- ("~u" ?\e,A5\e(B)
- ("~u" ?\e$,1!-\e(B)
- ("~x" ?\e,A$\e(B)
- ("~z" ?\e$,1!>\e(B)
- ("~|" ?\e,A&\e(B)
- ("~~" ?\e,A8\e(B)
+ ("~!" ?¡)
+ ("~$" ?£)
+ ("~-" ?­)
+ ("~." ?·)
+ ("~<" ?\«)
+ ("~=" ?¯)
+ ("~>" ?\»)
+ ("~?" ?¿)
+ ("~A" ?Ã)
+ ("~C" ?Ç)
+ ("~D" ?Ã)
+ ("~G" ?Äž)
+ ("~N" ?Ñ)
+ ("~O" ?Õ)
+ ("~O" ?Ä )
+ ("~S" ?Åž)
+ ("~S" ?Å )
+ ("~T" ?Þ)
+ ("~U" ?Ŭ)
+ ("~Z" ?Ž)
+ ("~`" ?˘)
+ ("~a" ?ã)
+ ("~c" ?ç)
+ ("~d" ?ð)
+ ("~e" ?€)
+ ("~g" ?ÄŸ)
+ ("~n" ?ñ)
+ ("~o" ?õ)
+ ("~o" ?Ä¡)
+ ("~p" ?¶)
+ ("~s" ?§)
+ ("~s" ?ÅŸ)
+ ("~s" ?Å¡)
+ ("~t" ?þ)
+ ("~u" ?µ)
+ ("~u" ?Å­)
+ ("~x" ?¤)
+ ("~z" ?ž)
+ ("~|" ?¦)
+ ("~~" ?¸)
 )
 
 ;;; arch-tag: 83017837-6b84-4366-b183-e0577e3ed838
index e4503108875388687b26f5faf5d0bccf9795dfca..24f6c7ddc447a8278f69a75b6cf7e1b0474359df 100644 (file)
@@ -1,4 +1,4 @@
-;;; pypunct-b5.el --- Quail packages for Chinese (pinyin + extra symbols)
+;;; pypunct-b5.el --- Quail packages for Chinese (pinyin + extra symbols) -*-coding: iso-2022-7bit;-*-
 
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007
index d3429f8c284fa52e476b5a70dda7943489b69b35..5aa5f76fd979f599ce949d5cc162217f25b7a5bc 100644 (file)
@@ -1,4 +1,4 @@
-;;; symbol-ksc.el --- Quail-package for Korean Symbol (KSC5601)
+;;; symbol-ksc.el --- Quail-package for Korean Symbol (KSC5601) -*-coding: iso-2022-7bit;-*-
 
 ;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   Free Software Foundation, Inc.
index 840e0c8997475f4b1c128d13c7a973b200a47d22..889cd12bf5f4179f0e5ff6b5011314d6ee51fc29 100644 (file)
@@ -1,4 +1,4 @@
-;;; thai.el --- Quail package for inputting Thai characters
+;;; thai.el --- Quail package for inputting Thai characters -*-coding: iso-2022-7bit;-*-
 
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007
@@ -29,7 +29,6 @@
 ;;; Code:
 
 (require 'quail)
-(require 'thai-util)
 
 (defmacro thai-generate-quail-map (translation-table)
   (let (map)
@@ -54,41 +53,39 @@ The difference from the ordinal Thai keyboard:
     Don't know where to assign characters '\e,Tz\e(B' and '\e,T{\e(B'."
  nil t t t t nil nil nil nil nil t)
 
-(quail-install-map
- (thai-generate-quail-map
-  [
-   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0     ; control codes
-   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0     ; control codes
+(thai-generate-quail-map
+ [
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0      ; control codes
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0      ; control codes
 ;; This data is quite old.
-;;    0   "#" "." "\e,Tr\e(B" "\e,Ts\e(B" "\e,Tt\e(B" "\e,TQi\e(B" "\e,T'\e(B"   ; SPC .. '
-;;    "\e,Tv\e(B" "\e,Tw\e(B" "\e,Tu\e(B" "\e,Ty\e(B" "\e,TA\e(B" "\e,T"\e(B" "\e,Tc\e(B" "\e,T=\e(B"  ; ( .. /
-;;    "\e,T(\e(B" "\e,TE\e(B" "/" "_" "\e,T@\e(B" "\e,T6\e(B" "\e,TX\e(B" "\e,TV\e(B"      ; 0 .. 7
-;;    "\e,T$\e(B" "\e,T5\e(B" "\e,T+\e(B" "\e,TG\e(B" "\e,T2\e(B" "\e,T*\e(B" "\e,TL\e(B" "\e,TF\e(B"  ; 8 .. ?
-;;    "\e,Tq\e(B" "\e,TD\e(B" "\e,TZ\e(B" "\e,T)\e(B" "\e,T/\e(B" "\e,T.\e(B" "\e,Tb\e(B" "\e,T,\e(B"  ; @ .. G
-;;    "\e,Tg\e(B" "\e,T3\e(B" "\e,Tk\e(B" "\e,TI\e(B" "\e,TH\e(B" "\e,Tn\e(B" "\e,Tl\e(B" "\e,TO\e(B"  ; H .. O
-;;    "\e,T-\e(B" "\e,Tp\e(B" "\e,T1\e(B" "\e,T&\e(B" "\e,T8\e(B" "\e,Tj\e(B" "\e,TN\e(B" "\""       ; P .. W
-;;    ")" "\e,Tm\e(B" "(" "\e,T:\e(B" "\e,T_\e(B" "\e,TE\e(B" "\e,TY\e(B" "\e,Tx\e(B"      ; X .. _
-;;    "\e,T#\e(B" "\e,T?\e(B" "\e,TT\e(B" "\e,Ta\e(B" "\e,T!\e(B" "\e,TS\e(B" "\e,T4\e(B" "\e,T`\e(B"  ; ` .. g
-;;    "\e,Ti\e(B" "\e,TC\e(B" "\e,Th\e(B" "\e,TR\e(B" "\e,TJ\e(B" "\e,T7\e(B" "\e,TW\e(B" "\e,T9\e(B"  ; h .. o
-;;    "\e,TB\e(B" "\e,Tf\e(B" "\e,T>\e(B" "\e,TK\e(B" "\e,TP\e(B" "\e,TU\e(B" "\e,TM\e(B" "\e,Td\e(B"  ; p .. w
-;;    "\e,T;\e(B" "\e,TQ\e(B" "\e,T<\e(B" "\e,T0\e(B" "\e,To\e(B" "," "\e,T%\e(B" 0        ; x .. DEL
+;;   0   "#" "." "\e,Tr\e(B" "\e,Ts\e(B" "\e,Tt\e(B" "\e,TQi\e(B" "\e,T'\e(B"    ; SPC .. '
+;;   "\e,Tv\e(B" "\e,Tw\e(B" "\e,Tu\e(B" "\e,Ty\e(B" "\e,TA\e(B" "\e,T"\e(B" "\e,Tc\e(B" "\e,T=\e(B"   ; ( .. /
+;;   "\e,T(\e(B" "\e,TE\e(B" "/" "_" "\e,T@\e(B" "\e,T6\e(B" "\e,TX\e(B" "\e,TV\e(B"       ; 0 .. 7
+;;   "\e,T$\e(B" "\e,T5\e(B" "\e,T+\e(B" "\e,TG\e(B" "\e,T2\e(B" "\e,T*\e(B" "\e,TL\e(B" "\e,TF\e(B"   ; 8 .. ?
+;;   "\e,Tq\e(B" "\e,TD\e(B" "\e,TZ\e(B" "\e,T)\e(B" "\e,T/\e(B" "\e,T.\e(B" "\e,Tb\e(B" "\e,T,\e(B"   ; @ .. G
+;;   "\e,Tg\e(B" "\e,T3\e(B" "\e,Tk\e(B" "\e,TI\e(B" "\e,TH\e(B" "\e,Tn\e(B" "\e,Tl\e(B" "\e,TO\e(B"   ; H .. O
+;;   "\e,T-\e(B" "\e,Tp\e(B" "\e,T1\e(B" "\e,T&\e(B" "\e,T8\e(B" "\e,Tj\e(B" "\e,TN\e(B" "\""        ; P .. W
+;;   ")" "\e,Tm\e(B" "(" "\e,T:\e(B" "\e,T_\e(B" "\e,TE\e(B" "\e,TY\e(B" "\e,Tx\e(B"       ; X .. _
+;;   "\e,T#\e(B" "\e,T?\e(B" "\e,TT\e(B" "\e,Ta\e(B" "\e,T!\e(B" "\e,TS\e(B" "\e,T4\e(B" "\e,T`\e(B"   ; ` .. g
+;;   "\e,Ti\e(B" "\e,TC\e(B" "\e,Th\e(B" "\e,TR\e(B" "\e,TJ\e(B" "\e,T7\e(B" "\e,TW\e(B" "\e,T9\e(B"   ; h .. o
+;;   "\e,TB\e(B" "\e,Tf\e(B" "\e,T>\e(B" "\e,TK\e(B" "\e,TP\e(B" "\e,TU\e(B" "\e,TM\e(B" "\e,Td\e(B"   ; p .. w
+;;   "\e,T;\e(B" "\e,TQ\e(B" "\e,T<\e(B" "\e,T0\e(B" "\e,To\e(B" "," "\e,T%\e(B" 0 ; x .. DEL
 ;; This is the correct data nowadays.
-   0  "+" "." "\e,Tr\e(B" "\e,Ts\e(B" "\e,Tt\e(B" "\e,T_\e(B" "\e,T'\e(B"        ; SPC .. '
-   "\e,Tv\e(B" "\e,Tw\e(B" "\e,Tu\e(B" "\e,Ty\e(B" "\e,TA\e(B" "\e,T"\e(B" "\e,Tc\e(B" "\e,T=\e(B"     ; ( .. /
-   "\e,T(\e(B" "\e,Te\e(B" "/" "-" "\e,T@\e(B" "\e,T6\e(B" "\e,TX\e(B" "\e,TV\e(B" ; 0 .. 7
-   "\e,T$\e(B" "\e,T5\e(B" "\e,T+\e(B" "\e,TG\e(B" "\e,T2\e(B" "\e,T*\e(B" "\e,TL\e(B" "\e,TF\e(B"     ; 8 .. ?
-   "\e,Tq\e(B" "\e,TD\e(B" "\e,TZ\e(B" "\e,T)\e(B" "\e,T/\e(B" "\e,T.\e(B" "\e,Tb\e(B" "\e,T,\e(B"     ; @ .. G
-   "\e,Tg\e(B" "\e,T3\e(B" "\e,Tk\e(B" "\e,TI\e(B" "\e,TH\e(B" "?" "\e,Tl\e(B" "\e,TO\e(B"   ; H .. O
-   "\e,T-\e(B" "\e,Tp\e(B" "\e,T1\e(B" "\e,T&\e(B" "\e,T8\e(B" "\e,Tj\e(B" "\e,TN\e(B" "\""  ; P .. W
-   "\)" "\e,Tm\e(B" "\(" "\e,T:\e(B" "\e,T#\e(B" "\e,TE\e(B" "\e,TY\e(B" "\e,Tx\e(B"       ; X .. _
-   "_" "\e,T?\e(B" "\e,TT\e(B" "\e,Ta\e(B" "\e,T!\e(B" "\e,TS\e(B" "\e,T4\e(B" "\e,T`\e(B"   ; ` .. g
-   "\e,Ti\e(B" "\e,TC\e(B" "\e,Th\e(B" "\e,TR\e(B" "\e,TJ\e(B" "\e,T7\e(B" "\e,TW\e(B" "\e,T9\e(B"     ; h .. o
-   "\e,TB\e(B" "\e,Tf\e(B" "\e,T>\e(B" "\e,TK\e(B" "\e,TP\e(B" "\e,TU\e(B" "\e,TM\e(B" "\e,Td\e(B"     ; p .. w
-   "\e,T;\e(B" "\e,TQ\e(B" "\e,T<\e(B" "\e,T0\e(B" "\e,T%\e(B" "," "%" 0 ; x .. DEL
-   ]))
-
-
-\f
+  0  "+" "." "\e,Tr\e(B" "\e,Ts\e(B" "\e,Tt\e(B" "\e,T_\e(B" "\e,T'\e(B" ; SPC .. '
+  "\e,Tv\e(B" "\e,Tw\e(B" "\e,Tu\e(B" "\e,Ty\e(B" "\e,TA\e(B" "\e,T"\e(B" "\e,Tc\e(B" "\e,T=\e(B"      ; ( .. /
+  "\e,T(\e(B" "\e,Te\e(B" "/" "-" "\e,T@\e(B" "\e,T6\e(B" "\e,TX\e(B" "\e,TV\e(B"  ; 0 .. 7
+  "\e,T$\e(B" "\e,T5\e(B" "\e,T+\e(B" "\e,TG\e(B" "\e,T2\e(B" "\e,T*\e(B" "\e,TL\e(B" "\e,TF\e(B"      ; 8 .. ?
+  "\e,Tq\e(B" "\e,TD\e(B" "\e,TZ\e(B" "\e,T)\e(B" "\e,T/\e(B" "\e,T.\e(B" "\e,Tb\e(B" "\e,T,\e(B"      ; @ .. G
+  "\e,Tg\e(B" "\e,T3\e(B" "\e,Tk\e(B" "\e,TI\e(B" "\e,TH\e(B" "?" "\e,Tl\e(B" "\e,TO\e(B"    ; H .. O
+  "\e,T-\e(B" "\e,Tp\e(B" "\e,T1\e(B" "\e,T&\e(B" "\e,T8\e(B" "\e,Tj\e(B" "\e,TN\e(B" "\""   ; P .. W
+  "\)" "\e,Tm\e(B" "\(" "\e,T:\e(B" "\e,T#\e(B" "\e,TE\e(B" "\e,TY\e(B" "\e,Tx\e(B"        ; X .. _
+  "_" "\e,T?\e(B" "\e,TT\e(B" "\e,Ta\e(B" "\e,T!\e(B" "\e,TS\e(B" "\e,T4\e(B" "\e,T`\e(B"    ; ` .. g
+  "\e,Ti\e(B" "\e,TC\e(B" "\e,Th\e(B" "\e,TR\e(B" "\e,TJ\e(B" "\e,T7\e(B" "\e,TW\e(B" "\e,T9\e(B"      ; h .. o
+  "\e,TB\e(B" "\e,Tf\e(B" "\e,T>\e(B" "\e,TK\e(B" "\e,TP\e(B" "\e,TU\e(B" "\e,TM\e(B" "\e,Td\e(B"      ; p .. w
+  "\e,T;\e(B" "\e,TQ\e(B" "\e,T<\e(B" "\e,T0\e(B" "\e,T%\e(B" "," "%" 0  ; x .. DEL
+  ])
+
+
 ;; Thai Pattachote keyboard support.
 
 (quail-define-package
@@ -96,23 +93,23 @@ The difference from the ordinal Thai keyboard:
  "Thai Pattachote input method with TIS620 keyboard layout"
  nil t t t t nil nil nil nil nil t)
 
-(quail-install-map
- (thai-generate-quail-map
-  [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    ; control codes
-    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    ; control codes
-    0 "+" "\e,T1\e(B" "/" "," "?" "_" "\e,T"\e(B"  ; SPC .. '
-    "(" ")" "." "%" "\e,TP\e(B" "\e,Tq\e(B" "\e,T(\e(B" "\e,T>\e(B"    ; ( .. /
-    "\e,Tp\e(B" "=" "\e,Tr\e(B" "\e,Ts\e(B" "\e,Tt\e(B" "\e,Tu\e(B" "\e,TY\e(B" "\e,Tw\e(B"  ; 0 .. 7
-    "\e,Tx\e(B" "\e,Ty\e(B" "\e,T&\e(B" "\e,Td\e(B" "\e,T?\e(B" "\e,Tv\e(B" "\e,T2\e(B" "\e,TL\e(B"    ; 8 .. ?
-    "\"" "\e,Tk\e(B" "\e,TQ\e(B" "\e,T0\e(B" "\e,TS\e(B" "\e,Tf\e(B" "\e,T3\e(B" "\e,Tl\e(B" ; @ .. G
-    "\e,TW\e(B" "\e,T+\e(B" "\e,T<\e(B" "\e,T*\e(B" "\e,Tb\e(B" "\e,TN\e(B" "\e,TH\e(B" "\e,T6\e(B"    ; H .. O
-    "\e,T2\e(B" "\e,Tj\e(B" "\e,T-\e(B" "\e,T8\e(B" "\e,TI\e(B" "\e,T=\e(B" "\e,T@\e(B" "\e,TD\e(B"    ; P .. W
-    "\e,T.\e(B" "\e,TV\e(B" "\e,T.\e(B" "\e,Tc\e(B" "\e,TZ\e(B" "\e,T2\e(B" "\e,TX\e(B" "-"  ; X .. _
-    "\e,T#\e(B" "\e,Ti\e(B" "\e,TT\e(B" "\e,TE\e(B" "\e,T'\e(B" "\e,TB\e(B" "\e,T!\e(B" "\e,TQ\e(B"    ; ` .. g
-    "\e,TU\e(B" "\e,TA\e(B" "\e,TR\e(B" "\e,T9\e(B" "\e,T`\e(B" "\e,TJ\e(B" "\e,T$\e(B" "\e,TG\e(B"    ; h .. o
-    "\e,Ta\e(B" "\e,Tg\e(B" "\e,TM\e(B" "\e,T7\e(B" "\e,TC\e(B" "\e,T4\e(B" "\e,TK\e(B" "\e,T5\e(B"    ; p .. w
-    "\e,T;\e(B" "\e,Th\e(B" "\e,T:\e(B" "\e,TO\e(B" "\e,Tm\e(B" "\e,TF\e(B" "\e,T%\e(B" 0    ; x .. DEL
-    ]))
+(thai-generate-quail-map
+ [
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0      ; control codes
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0      ; control codes
+  0 "+" "\e,T1\e(B" "/" "," "?" "_" "\e,T"\e(B"            ; SPC .. '
+  "(" ")" "." "%" "\e,TP\e(B" "\e,Tq\e(B" "\e,T(\e(B" "\e,T>\e(B"      ; ( .. /
+  "\e,Tp\e(B" "=" "\e,Tr\e(B" "\e,Ts\e(B" "\e,Tt\e(B" "\e,Tu\e(B" "\e,TY\e(B" "\e,Tw\e(B"    ; 0 .. 7
+  "\e,Tx\e(B" "\e,Ty\e(B" "\e,T&\e(B" "\e,Td\e(B" "\e,T?\e(B" "\e,Tv\e(B" "\e,T2\e(B" "\e,TL\e(B"      ; 8 .. ?
+  "\"" "\e,Tk\e(B" "\e,TQ\e(B" "\e,T0\e(B" "\e,TS\e(B" "\e,Tf\e(B" "\e,T3\e(B" "\e,Tl\e(B"   ; @ .. G
+  "\e,TW\e(B" "\e,T+\e(B" "\e,T<\e(B" "\e,T*\e(B" "\e,Tb\e(B" "\e,TN\e(B" "\e,TH\e(B" "\e,T6\e(B"      ; H .. O
+  "\e,T2\e(B" "\e,Tj\e(B" "\e,T-\e(B" "\e,T8\e(B" "\e,TI\e(B" "\e,T=\e(B" "\e,T@\e(B" "\e,TD\e(B"      ; P .. W
+  "\e,T.\e(B" "\e,TV\e(B" "\e,T.\e(B" "\e,Tc\e(B" "\e,TZ\e(B" "\e,T2\e(B" "\e,TX\e(B" "-"    ; X .. _
+  "\e,T#\e(B" "\e,Ti\e(B" "\e,TT\e(B" "\e,TE\e(B" "\e,T'\e(B" "\e,TB\e(B" "\e,T!\e(B" "\e,TQ\e(B"      ; ` .. g
+  "\e,TU\e(B" "\e,TA\e(B" "\e,TR\e(B" "\e,T9\e(B" "\e,T`\e(B" "\e,TJ\e(B" "\e,T$\e(B" "\e,TG\e(B"      ; h .. o
+  "\e,Ta\e(B" "\e,Tg\e(B" "\e,TM\e(B" "\e,T7\e(B" "\e,TC\e(B" "\e,T4\e(B" "\e,TK\e(B" "\e,T5\e(B"      ; p .. w
+  "\e,T;\e(B" "\e,Th\e(B" "\e,T:\e(B" "\e,TO\e(B" "\e,Tm\e(B" "\e,TF\e(B" "\e,T%\e(B" 0              ; x .. DEL
+  ])
 
 ;;; arch-tag: fed6c468-0616-44b0-88bf-47347bf64825
 ;;; thai.el ends here
index 561b100764804c11ceade772e9c3901d8632def0..e2fd156766af234e3e44f10695978a0d8f46bbc4 100644 (file)
@@ -1,4 +1,4 @@
-;;; tibetan.el --- Quail package for inputting Tibetan characters
+;;; tibetan.el --- Quail package for inputting Tibetan characters -*-coding: iso-2022-7bit;-*-
 
 ;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   Free Software Foundation, Inc.
index 88f5ec6a9bc5ac57250e2e423a81f4a3bb3bb5f4..48edfd7f9b3c1d7440101cccdee3ce8300cc8800 100644 (file)
 ;; This is not really a Quail method, but uses some Quail functions.
 ;; There is probably A Better Way.
 
-;; Compare `ucs-insert', which explicitly inserts a unicoded character
-;; rather than supplying an input method.
+;; You can get a similar effect by using C-q with
+;; `read-quoted-char-radix' set to 16.
+
+;; Note that this only allows you to enter BMP values unless someone
+;; extends it to use variable numbers of digits.
 
 ;;; Code:
 
 (require 'quail)
 
-;; Maybe stolen from Mule-UCS -- I don't remember.
-(define-ccl-program utf-8-ccl-encode
-  `(4 (if (r0 < ?\x80)
-       ((write r0))
-      (if (r0 < #x800)
-         ((write ((r0 >> 6) | ?\xC0))
-          (write ((r0 & ?\x3F) | ?\x80)))
-       (if (r0 < #x10000)
-           ((write ((r0 >> 12) | ?\xE0))
-            (write (((r0 >> 6) & ?\x3F) | ?\x80))
-            (write ((r0 & ?\x3F) | ?\x80)))
-         (if (r0 < #x200000)
-             ((write ((r0 >> 18) | ?\xF0))
-              (write (((r0 >> 12) & ?\x3F) | ?\x80))
-              (write (((r0 >> 6) & ?\x3F) | ?\x80))
-              (write ((r0 & ?\x3F) | ?\x80)))
-           (if (r0 < #x4000000)
-               ((write ((r0 >> 24) | ?\xF8))
-                (write (((r0 >> 18) & ?\x3F) | ?\x80))
-                (write (((r0 >> 12) & ?\x3F) | ?\x80))
-                (write (((r0 >> 6) & ?\x3F) | ?\x80))
-                (write ((r0 & ?\x3F) | ?\x80)))
-             ((write ((r0 >> 30) | ?\xFC))
-              (write (((r0 >> 24) & ?\x3F) | ?\x80))
-              (write (((r0 >> 18) & ?\x3F) | ?\x80))
-              (write (((r0 >> 12) & ?\x3F) | ?\x80))
-              (write (((r0 >> 6) & ?\x3F) | ?\x80))
-              (write ((r0 & ?\x3F) | ?\x80))))))))))
-
 (defun ucs-input-insert-char (char)
   (insert char)
   (move-overlay quail-overlay (overlay-start quail-overlay) (point)))
@@ -97,7 +71,7 @@
                           (= 1 (length seq))
                           (setq key (aref seq 0))
                           (memq key '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a
-                                      ?b ?c ?d ?e ?f ?A ?B ?C ?D ?E ?F)))
+                                         ?b ?c ?d ?e ?f ?A ?B ?C ?D ?E ?F)))
                      (progn
                        (push key events)
                        (ucs-input-insert-char key))
                    (throw 'non-digit (append (reverse events)
                                              (listify-key-sequence seq))))))
              (quail-delete-region)
-             (let* ((n (string-to-number (apply 'string
-                                                (cdr (nreverse events)))
-                                         16))
-                    (c (decode-char 'ucs n)))
-               (if c
-                   (list c)
-                 ;; The intention of the following code is to insert
-                 ;; a correct UTF-8 sequence by raw bytes, but
-                 ;; currently it doesn't work.
-                 ;; (let ((status (make-vector 9 nil)))
-                 ;;   (aset status 0 n)
-                 ;;   (string-to-list (ccl-execute-on-string
-                 ;;                    'utf-8-ccl-encode status "")))
-                 (error "Character U+%04X is not yet supported" n)))))
+             (let ((n (string-to-number (apply 'string
+                                           (cdr (nreverse events)))
+                                    16)))
+               (if (characterp n)
+                   (list n)))))
        (quail-delete-overlays)
        (set-buffer-modified-p modified-p)
        (run-hooks 'input-method-after-insert-chunk-hook)))))
index f77b52fe58fe1d4ad14187a8b5887a2d3952d05c..d7bb4b88ae5ef331506f4b06e2b76987af040449 100644 (file)
@@ -26,8 +26,6 @@
 ;;; Commentary:
 
 ;; Welsh input following the Yudit map by david@sheetmusic.org.uk.
-;; This is set up to produce utf-8.  A Latin-8 version of most of it
-;; is commented-out at the end.
 
 ;;; Code:
 
@@ -35,7 +33,7 @@
 
 (quail-define-package
  "welsh" "Welsh" "\e$,1!4\e(B" t
- "Welsh postfix input method, using Unicode"
+ "Welsh postfix input method"
  nil t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
diff --git a/lib-src/ChangeLog.unicode b/lib-src/ChangeLog.unicode
new file mode 100644 (file)
index 0000000..7d105d8
--- /dev/null
@@ -0,0 +1,17 @@
+2007-10-21  Jason Rumney  <jasonr@gnu.org>
+
+       * makefile.w32-in (obj): Sync with src/Makefile.in
+       (TOOLTIP_SUPPORT, WINDOW_SUPPORT): New definitions.
+       (WINNT_SUPPORT): Add term/w32-win.elc.
+       (lisp1, lisp2): Sync with lisp in src/Makefile.in.
+
+2007-06-06  Jason Rumney  <jasonr@gnu.org>
+
+       * makefile.w32-in (obj): Add font.o and w32font.o
+
+2005-10-14  Zhang Wei <id.brep@gmail.com>  (tiny change)
+
+       * lib-src/makefile.w32-in (lisp1): Delete ucs-tables.elc,
+       utf-8.elc, and latin-*.el.
+
+;; arch-tag: c7cd5592-edad-4f68-a810-0d2704087cf8
index a61edad3820b96f8c8df6788e59f5181061e23c7..8b327bfabf821a7247d521b597dca5301d4d5f46 100644 (file)
@@ -142,14 +142,15 @@ $(BLD)/ctags.$(O): ctags.c
 # make-docfile blindly replaces .o with .c anyway.  Keep .o in this list
 # as it is required by code in doc.c.
 #
-obj   dosfns.o msdos.o \
-       xterm.o xfns.o xmenu.o xselect.o xrdb.o  fringe.o image.o \
-       mac.o macterm.o macfns.o macmenu.o fontset.o \
+obj =   dosfns.o msdos.o \
+       xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
+       mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
        w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
        w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
+       font.o w32font.o \
        dispnew.o frame.o scroll.o xdisp.o window.o \
-       charset.o coding.o category.o ccl.o \
-       cm.o term.o xfaces.o \
+       charset.o coding.o category.o ccl.o character.o chartab.o \
+       cm.o term.o terminal.o xfaces.o \
        emacs.o keyboard.o macros.o keymap.o sysdep.o \
        buffer.o filelock.o insdel.o marker.o \
        minibuf.o fileio.o dired.o filemode.o \
@@ -166,30 +167,56 @@ obj=    dosfns.o msdos.o \
 #
 lispsource = ../lisp/
 
-MOUSE_SUPPORT = $(lispsource)select.elc $(lispsource)scroll-bar.elc $(lispsource)mouse.elc $(lispsource)tooltip.elc
-WINNT_SUPPORT = $(lispsource)ls-lisp.elc $(lispsource)disp-table.elc $(lispsource)w32-fns.elc $(lispsource)dos-w32.elc $(lispsource)w32-vars.elc
+MOUSE_SUPPORT = \
+       $(lispsource)select.elc \
+       $(lispsource)scroll-bar.elc \
+       $(lispsource)mouse.elc \
+       $(lispsource)tooltip.elc
+WINNT_SUPPORT = \
+       $(lispsource)ls-lisp.elc \
+       $(lispsource)disp-table.elc \
+       $(lispsource)w32-fns.elc \
+       $(lispsource)dos-w32.elc \
+       $(lispsource)w32-vars.elc \
+       $(lispsource)term/w32-win.elc
 
 # lisp files that are loaded up on other platforms
-MSDOS_SUPPORT = $(lispsource)dos-fns.elc $(lispsource)dos-vars.elc $(lispsource)international/ccl.elc $(lispsource)international/codepage.elc
-VMS_SUPPORT = $(lispsource)vmsproc.el $(lispsource)vms-patch.el
+MSDOS_SUPPORT = \
+       $(lispsource)dos-fns.elc \
+       $(lispsource)dos-vars.elc \
+       $(lispsource)international/ccl.elc \
+       $(lispsource)international/codepage.elc
+VMS_SUPPORT = \
+       $(lispsource)vmsproc.el \
+       $(lispsource)vms-patch.el
+TOOLTIP_SUPPORT = $(lispsource)tooltip.elc
+WINDOW_SUPPORT = \
+       $(lispsource)fringe.elc \
+       $(lispsource)image.elc \
+       $(lispsource)international/fontset.elc \
+       $(lispsource)dnd.elc \
+       $(lispsource)tool-bar.elc \
+       $(lispsource)mwheel.elc
 
 lisp1= \
        $(lispsource)abbrev.elc \
        $(lispsource)buff-menu.elc \
        $(lispsource)button.elc \
        $(lispsource)emacs-lisp/byte-run.elc \
+       ${lispsource}composite.elc \
        $(lispsource)cus-face.elc \
        $(lispsource)cus-start.elc \
        $(lispsource)custom.elc \
        $(lispsource)emacs-lisp/backquote.elc \
        $(lispsource)emacs-lisp/lisp-mode.elc \
        $(lispsource)emacs-lisp/lisp.elc \
-       $(lispsource)facemenu.elc \
-       $(MOUSE_SUPPORT) \
+       $(lispsource)env.elc \
        $(lispsource)faces.elc \
        $(lispsource)files.elc \
-       $(lispsource)emacs-lisp/float-sup.elc \
        $(lispsource)format.elc \
+       $(lispsource)facemenu.elc \
+       $(MOUSE_SUPPORT) \
+       $(lispsource)emacs-lisp/float-sup.elc \
        $(lispsource)frame.elc \
        $(lispsource)help.elc \
        $(lispsource)indent.elc \
@@ -199,33 +226,18 @@ lisp1= \
        $(lispsource)loaddefs.el \
        $(lispsource)bindings.elc \
        $(lispsource)emacs-lisp/map-ynp.elc \
-       $(lispsource)env.elc \
+       $(lispsource)menu-bar.elc \
        $(lispsource)international/mule.elc \
        $(lispsource)international/mule-conf.el \
        $(lispsource)international/mule-cmds.elc \
        $(lispsource)international/characters.elc \
-       $(lispsource)international/ucs-tables.elc \
-       $(lispsource)international/utf-8.elc \
-       $(lispsource)international/utf-16.elc \
-       $(lispsource)international/latin-1.el \
-       $(lispsource)international/latin-2.el \
-       $(lispsource)international/latin-3.el \
-       $(lispsource)international/latin-4.el \
-       $(lispsource)international/latin-5.el \
-       $(lispsource)international/latin-8.el \
-       $(lispsource)international/latin-9.el \
-       $(lispsource)fringe.elc \
-       $(lispsource)image.elc \
-       $(lispsource)international/fontset.elc \
-       $(lispsource)dnd.elc \
-       $(lispsource)mwheel.elc \
-       $(lispsource)tool-bar.elc \
+       $(lispsource)international/charprop.el \
        $(lispsource)case-table.elc
 
 lisp2 = \
-       $(lispsource)language/chinese.elc \
-       $(lispsource)language/cyrillic.elc \
-       $(lispsource)language/indian.elc \
+       $(lispsource)language/chinese.el \
+       $(lispsource)language/cyrillic.el \
+       $(lispsource)language/indian.el \
        $(lispsource)language/devanagari.el \
        $(lispsource)language/kannada.el \
        $(lispsource)language/malayalam.el \
@@ -241,13 +253,13 @@ lisp2 = \
        $(lispsource)language/japanese.el \
        $(lispsource)language/korean.el \
        $(lispsource)language/lao.el \
+       $(lispsource)language/tai-viet.el \
        $(lispsource)language/thai.el \
        $(lispsource)language/tibetan.elc \
-       $(lispsource)language/vietnamese.elc \
+       $(lispsource)language/vietnamese.el \
        $(lispsource)language/misc-lang.el \
        $(lispsource)language/utf-8-lang.el \
        $(lispsource)language/georgian.el \
-       $(lispsource)menu-bar.elc \
        $(lispsource)paths.el \
        $(lispsource)register.elc \
        $(lispsource)replace.elc \
@@ -264,12 +276,14 @@ lisp2 = \
        $(lispsource)textmodes/paragraphs.elc \
        $(lispsource)textmodes/text-mode.elc \
        $(lispsource)emacs-lisp/timer.elc \
-       $(lispsource)vc-hooks.elc \
        $(lispsource)jka-cmpr-hook.elc \
+       $(lispsource)vc-hooks.elc \
        $(lispsource)ediff-hook.elc \
+       $(TOOLTIP_SUPPORT) \
        $(VMS_SUPPORT) \
        $(MSDOS_SUPPORT) \
        $(WINNT_SUPPORT) \
+       $(WINDOW_SUPPORT) \
        $(lispsource)widget.elc \
        $(lispsource)window.elc \
        $(lispsource)version.el
index 470812daa18d1267743f7b724bff94e087b22def..f3b62b87e1071bf10df0fa5dbf50eee194e88578 100644 (file)
 
        * international/characters.el: Undo unwanted and unexplained change.
 
-2007-10-10  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-       * ps-print.el: Fix the usage of :foreground and :background face
-       attributes.  Reported by Nikolaj Schumacher <n_schumacher@web.de>.
-       (ps-print-version): New version 6.7.6.
-       (ps-face-attributes, ps-face-attribute-list, ps-face-background):
-       Fix code.
-       (ps-face-foreground-color-p, ps-face-background-color-p)
-       (ps-face-color-p): New inline funs.
-
 2007-10-10  Carsten Dominik  <dominik@science.uva.nl>
 
        * textmodes/org.el (org-additional-option-like-keywords): New constant.
 
        * calc/calc.el (calc-language-alist): Add texinfo-mode.
 
-2007-08-16  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-       * ps-print.el (ps-header-font-size, ps-header-title-font-size)
-       (ps-footer-font-size, ps-line-number-font-size, ps-line-spacing)
-       (ps-paragraph-spacing): Docstring fix.
-
-2007-08-16  Glenn Morris  <rgm@gnu.org>
-
-       * ps-print.el (ps-font-size): Doc fix.
-
 2007-08-16  Richard Stallman  <rms@gnu.org>
 
        * emacs-lisp/copyright.el (copyright-names-regexp): Add custom group.
        (tex-font-script-display, tex-font-lock-suscript): Change from a cons
        cell to a list of 2 elements to simplify the unfontify code.
 
-2007-08-08  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-       * ps-print.el (ps-default-fg, ps-default-bg): Docstring fix.
-       (ps-begin-job): Use ps-default-fg and ps-default-bg only when
-       ps-print-color-p is neither nil nor black-white.  Reported by Christian
-       Schlauer <cs-muelleimer-rubbish.bin@arcor.de>.
-
 2007-08-08  Andreas Schwab  <schwab@suse.de>
 
        * mail/mailabbrev.el (sendmail-pre-abbrev-expand-hook): Check for
        format-mode-line because it may be a list,
        e.g., (sgml-xml-mode "XML" "SGML"), and not a string.
 
-2007-08-06  Vinicius Jose Latorre  <viniciusig@ig.com.br>
-
-       * printing.el (pr-update-menus): Docstring fix.
-
 2007-08-06  Jason Rumney  <jasonr@gnu.org>
 
        * menu-bar.el (menu-bar-vc-filter): Use vc-call-backend.
        * calc/calc-nlfit.el (math-nlfit-curve): Remove unnecessary variables.
        (math-nlfit-givens): Let bind free variables.
 
-2007-08-05  Vinicius Jose Latorre  <viniciusig@ig.com.br>
-
-       * printing.el: Require lpr and ps-print when loading printing package.
-       Reported by Glenn Morris <rgm@gnu.org>.
-
 2007-08-05  Michael Albinus  <michael.albinus@gmx.de>
 
        * files.el (set-auto-mode): Handle also remote files wrt
        may match up to 4 lines.
        (diff-beginning-of-file-and-junk): Rewrite.
 
-2007-08-03  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-       * printing.el: Evaluate require only during compilation.
-       (pr-version): New version 6.9.1.
-       (deactivate-mark): Replace (defvar VAR nil) by (defvar VAR).
-       (pr-global-menubar): Fix code.
-
 2007-08-03  Dan Nicolaescu  <dann@ics.uci.edu>
 
        * term.el (term-erase-in-display): Fix case when point is not at
        * vc-git.el (vc-git-revision-table)
        (vc-git-revision-completion-table): New functions.
 
-2007-07-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-       * progmodes/ebnf-abn.el (ebnf-abn-skip-comment):
-       * progmodes/ebnf-bnf.el (ebnf-bnf-skip-comment):
-       * progmodes/ebnf-dtd.el (ebnf-dtd-skip-comment):
-       * progmodes/ebnf-ebx.el (ebnf-ebx-skip-comment):
-       * progmodes/ebnf-iso.el (ebnf-iso-skip-comment):
-       * progmodes/ebnf-yac.el (ebnf-yac-skip-comment): New version.
-       New command actions for EPS header and EPS footer.
-
-       * progmodes/ebnf2ps.el: New command actions for EPS header and EPS
-       footer.  Fix some problems with one-or-more, zero-or-more and
-       alternative constructions generation.  Some log messages
-       implementation.  Doc fix.
-       (ebnf-version): New version 4.4.
-       (ebnf-eps-header-font, ebnf-eps-header, ebnf-eps-footer-font)
-       (ebnf-eps-footer, ebnf-log): New options.
-       (ebnf-find-style, ebnf-eps-header-footer, ebnf-eps-header)
-       (ebnf-eps-footer, ebnf-eps-string, ebnf-eps-header-footer-comment)
-       (ebnf-eps-header-footer-p, ebnf-eps-header-comment)
-       (ebnf-eps-footer-comment, ebnf-eps-header-footer-file)
-       (ebnf-eps-header-footer-set, ebnf-log-header, ebnf-log): New funs.
-       (ebnf-style-custom-list, ebnf-style-database): Put new values.
-       (ebnf-print-directory, ebnf-print-file, ebnf-print-buffer)
-       (ebnf-print-region, ebnf-spool-directory, ebnf-spool-file)
-       (ebnf-spool-buffer, ebnf-spool-region, ebnf-eps-directory)
-       (ebnf-eps-file, ebnf-eps-buffer, ebnf-eps-region)
-       (ebnf-syntax-directory, ebnf-syntax-file, ebnf-syntax-buffer)
-       (ebnf-syntax-region, ebnf-parse-and-sort, ebnf-begin-job)
-       (ebnf-dimensions, ebnf-production-dimension, ebnf-terminal-dimension)
-       (ebnf-non-terminal-dimension, ebnf-special-dimension)
-       (ebnf-terminal-dimension1, ebnf-repeat-dimension)
-       (ebnf-except-dimension, ebnf-alternative-dimension)
-       (ebnf-optional-dimension, ebnf-one-or-more-dimension)
-       (ebnf-zero-or-more-dimension, ebnf-sequence-dimension): Insert log
-       message fun.
-       (ebnf-setup, ebnf-generate-one-or-more, ebnf-generate-zero-or-more)
-       (ebnf-begin-job, ebnf-begin-file, ebnf-eps-finish-and-write)
-       (ebnf-insert-ebnf-prologue, ebnf-production-dimension)
-       (ebnf-terminal-dimension1, ebnf-alternative-dimension)
-       (ebnf-one-or-more-dimension, ebnf-zero-or-more-dimension)
-       (ebnf-eps-add-context, ebnf-eps-add-production): Fix code.
-       (ebnf-eps-filename, ebnf-trim-right): Replace `?\s' by `?\ ' to keep
-       compatibility with Emacs 20 & 21.
-       (ebnf-eps-header-comment, ebnf-eps-footer-comment)
-       (ebnf-eps-file-alist, ebnf-basic-width-extra)
-       (ebnf-basic-empty-height): New vars.
-       (ebnf-prologue): Fix PostScript code.
-       (ebnf-make-empty, ebnf-make-terminal1, ebnf-make-or-more1)
-       (ebnf-make-production, ebnf-make-alternative, ebnf-make-optional)
-       (ebnf-make-except, ebnf-make-repeat, ebnf-make-sequence)
-       (ebnf-make-dup-sequence, ebnf-token-alternative): Add comments.
-
 2007-07-25  Glenn Morris  <rgm@gnu.org>
 
        * Relicense all FSF files to GPLv3 or later.
        * vc-git.el (vc-git-log-view-mode): Port to the multi-file vc interface.
        (vc-git-create-snapshot, vc-git-retrieve-snapshot): New functions.
 
-2007-07-25  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-       * ps-print.el (ps-multibyte-buffer): Docstring fix.
-
-       * ps-mule.el: Doc fix.
-       (ps-multibyte-buffer, ps-mule-font-info-database-default)
-       (ps-mule-external-libraries, ps-mule-begin-job): Docstring fix.
-
 2007-07-25  Glenn Morris  <rgm@gnu.org>
 
        * calendar/cal-tex.el (cal-tex-which-days, cal-tex-holidays)
 
        * vc-hg.el (vc-hg-diff): Use vc-hg-command.
 
-2007-07-20  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-       * ps-print.el: Problem with foreground and background color when
-       printing a buffer with and without faces.  Reported by Christian
-       Schlauer <cs-muelleimer-rubbish.bin@arcor.de>.
-       (ps-print-version): New version 6.7.5.
-       (ps-default-fg): Change default value to nil, so black color is used
-       when a face does not specify a foreground color.
-       (ps-default-bg): Change default value to nil, so white color is used
-       for background color.
-       (ps-begin-job): Fix code.
-
 2007-07-20  Eli Zaretskii  <eliz@gnu.org>
 
        * makefile.w32-in (install-lisp-SH): Don't create subdirectories
        for start and end positions.
        (ispell-word): Assume END is a marker.
 
-2007-05-17  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-       * printing.el: Group together all XEmacs/Emacs definitions.
-       (pr-version): New version 6.9.
-       (pr-global-menubar, pr-menu-char-height, pr-menu-char-width): New funs.
-       (pr-menu-char-height, pr-menu-char-width): Fix initialization code.
-       (pr-menu-bind): Fix code.
-       (pr-e-frame-char-height, pr-e-frame-char-width)
-       (pr-e-mouse-pixel-position, pr-x-add-submenu, pr-x-event-function)
-       (pr-x-event-object, pr-x-find-menu-item, pr-x-font-height)
-       (pr-x-font-width, pr-x-get-popup-menu-response, pr-x-make-event)
-       (pr-x-misc-user-event-p, pr-x-relabel-menu-item, pr-x-event-x-pixel)
-       (pr-x-event-y-pixel): Aliases eliminated.
-       (pr-xemacs-global-menubar): Macro moved.
-       (current-menubar, current-mouse-event, zmacs-region-stays)
-       (deactivate-mark, pr-menu-position, pr-menu-state, pr-ps-name-old)
-       (pr-txt-name-old, pr-ps-utility-old, pr-even-or-odd-old, pr-temp-menu):
-       Vars moved.
-       (pr-region-active-p, pr-menu-position, pr-menu-lookup, pr-menu-lock)
-       (pr-update-mode-line, pr-do-update-menus, pr-menu-alist)
-       (pr-relabel-menu-item, pr-menu-set-ps-title, pr-menu-set-txt-title)
-       (pr-menu-set-utility-title, pr-even-or-odd-pages)
-       (pr-f-set-keymap-parents, pr-f-set-keymap-name, pr-f-read-string)
-       (pr-keep-region-active, pr-menu-get-item, pr-menu-set-item-name): Funs
-       moved.
-
 2007-05-17  Christian Plate  <cplate@web.de>  (tiny change)
 
        * textmodes/sgml-mode.el (sgml-tag):
        * files.el (mode-require-final-newline, require-final-newline)
        (enable-local-variables, enable-local-eval): Doc fixes.
 
-2007-05-13  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-       * ps-print.el: Use default color when foreground or background color
-       are unspecified.  Reported by Leo <sdl.web@gmail.com>.
-       (ps-print-version): New version 6.7.4.
-       (ps-rgb-color): New argument.  Use default color when color is
-       unspecified.
-       (ps-begin-job): Fix code.
-
 2007-05-12  Chong Yidong  <cyd@stupidchicken.com>
 
        * longlines.el (longlines-mode): Make longlines-auto-wrap
index 2c6111f3ec364509854b0e9595d562ebf718edc1..cb4924a89307c465831b8325700385ff1104072f 100644 (file)
        * elide-head.el (elide-head-headers-to-hide): Recognize the FSF's
        new address as well.
 
-2005-07-07  Kenichi Handa  <handa@m17n.org>
-
-       * international/mule.el (make-coding-system):
-       Describe `ascii-incompatible' property in the docstring.
-       (set-file-name-coding-system): Signal an error if coding-system is
-       ascii-incompatible.
-       (set-keyboard-coding-system): Likewise.
-
-       * international/mule-cmds.el (set-default-coding-systems):
-       Don't set default-file-name-coding-system and
-       default-keyboard-coding-system if coding-system is ASCII-incompatible.
-
-       * international/utf-16.el: Declare that all UTF-16-based coding
-       systems are ASCII-incompatible.
-
 2005-07-07  Nick Roberts  <nickrob@snap.net.nz>
 
        * progmodes/gud.el: Require font-lock for displaying errors.
diff --git a/lisp/ChangeLog.unicode b/lisp/ChangeLog.unicode
new file mode 100644 (file)
index 0000000..471f60c
--- /dev/null
@@ -0,0 +1,3324 @@
+2007-12-28  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * international/fontset.el (setup-default-fontset): Fix lao OTF
+       script name.
+
+2007-12-27  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * composite.el (terminal-composition-function): Fix previous change.
+       (terminal-composition-modification): Delete it.
+
+2007-12-26  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * international/fontset.el (x-complement-fontset-spec): Complement
+       size too.
+
+2007-12-20  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * international/fontset.el (font-encoding-charset-alist):
+       Initialize it.
+       (otf-script-alist): Fix typo of canadian-aboriginal.
+       (setup-default-fontset): Specify font-specs for many more scripts.
+       (x-complement-fontset-spec): The 1st argument changed to a
+       font-spec object.
+       (create-fontset-from-fontset-spec): Adjusted for the above change.
+
+2007-12-25  Kenichi Handa  <handa@m17n.org>
+
+       * language/devanagari.el: Register font-shape-text in
+       composition-function-table.
+
+       * language/tibetan.el: Register font-shape-text in
+       composition-function-table.
+
+       * language/thai-util.el (thai-composition-function): Fix arguments.
+
+       * language/tamil.el: Register font-shape-text in
+       composition-function-table.
+
+       * language/malayalam.el: Register font-shape-text in
+       composition-function-table.
+
+       * language/lao.el: Register font-shape-text in
+       composition-function-table.
+
+       * language/kannada.el: Register font-shape-text in
+       composition-function-table.
+
+       * language/european.el (diacritic-composition-function): Fix
+       arguments.
+
+       * language/ethio-util.el (ethio-composition-function): Fix
+       arguments.
+
+       * language/tv-util.el (tai-viet-composition-function): Fix
+       arguments.
+
+       * composite.el (composition-function-table): Fix docstring.
+       (terminal-composition-function): Fix arguments.
+       (auto-compose-current-font): Delete it.
+       (auto-compose-chars): Adjusted for the change of
+       composition-function-table.
+
+2007-12-13  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * international/fontset.el (font-encoding-alist): Add the entry of
+       "unicode-bmp".
+
+2007-12-10  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * composite.el (auto-compose-chars): Be sure to calculate
+       composition at least at POS.
+
+2007-12-09  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+
+       * printing.el: Fix pr-interface-map initialization code.
+       (pr-version): New version 6.9.3.
+       (pr-f-set-keymap-parents): Replaced by pr-set-keymap-parents.
+       (pr-f-set-keymap-name): Replaced by pr-set-keymap-name.
+       (pr-f-read-string): Replaced by pr-read-string.
+       (pr-set-keymap-parents, pr-set-keymap-name, pr-read-string): New fun
+       name.
+       (pr-interactive-n-up, pr-interactive-regexp): Code fix.
+
+2007-12-09  Kenichi Handa  <handa@m17n.org>
+
+       * language/tv-util.el (tai-viet-re): Include '-'.
+       (tai-viet-glyph-info): Handle '-'.
+
+       * descr-text.el (describe-char): Improve the previous change (show
+       font name).
+
+2007-12-04  Kenichi Handa  <handa@m17n.org>
+
+       * language/devan-util.el (devanagari-composition-function): Fix
+       previous change.
+
+       * descr-text.el (describe-char): Handle a composition of the new
+       format.
+
+2007-12-06  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * language/tibet-util.el (tibetan-composition-function): Use
+       font-shape-text if auto-compose-current-font is non-nil.
+
+       * language/tibetan.el: Fix the range for recording
+       tibetan-composition-function in composition-function-table.
+
+       * language/mlm-util.el (malayalam-composition-function): Use
+       font-shape-text if auto-compose-current-font is non-nil.
+
+       * international/mule-conf.el: Flag many charsets as supplementary.
+
+       * international/mule.el (define-charset): Update the docstring for
+       :supplementary-p.
+
+       * international/fontset.el (setup-default-fontset): Add OpenType
+       fonts for malayalam and tibetan.
+
+2007-12-03  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * international/fontset.el (x-complement-fontset-spec): Use
+       font-spec.
+
+2007-12-01  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * international/fontset.el (otf-script-alist): Make all otf tags
+       4-letters.
+       (setup-default-fontset): Add OpenType fonts for devanagari and
+       tamil.
+
+       * language/tml-util.el (tamil-composition-function): Use
+       font-shape-text if auto-compose-current-font is non-nil.
+
+       * language/devan-util.el (devanagari-composition-function): Use
+       font-shape-text if auto-compose-current-font is non-nil.
+
+       * composite.el (auto-compose-chars): Argument font-object changed
+       to window.
+
+2007-11-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el (ps-lpr-switches): Docstring fix.
+       (ps-string-list): New fun.
+       (ps-do-despool): Code fix.
+
+2007-11-19  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * international/utf-7.el (utf-7-imap-post-read-conversion)
+       (utf-7-imap-pre-write-conversion): New functions.
+
+       * international/mule-conf.el (utf-7-imap): New coding system.
+
+2007-11-18  Kenichi Handa  <handa@m17n.org>
+
+       * term/x-win.el (x-selection-value): If x-select-request-type is
+       nil, try also STRING at last.
+       (x-select-request-type): Doc adjusted the change of
+       x-selection-value.
+
+       * select.el (selection-coding-system)
+       (next-selection-coding-system): Declaration moded from xselect.c.
+       (x-get-selection): Decode by selection-coding-system if it is
+       non-nil.  If it is nil, decode by a proper coding system.  Handle
+       C_STRING.
+       (ccl-check-utf-8, string-utf-8-p): Delete them.
+       (xselect-convert-to-string): Fix determining data-type in the case
+       that TEXT is requested.  Don't use selection-coding-system if it's
+       not proper for the data-type.
+
+2007-11-17  Kenichi Handa  <handa@m17n.org>
+
+       * term/x-win.el (x-selection-value): If x-select-request-type is
+       nil, simply try UTF8_STRING and COMPOUND-TEXT in this order.
+
+2007-11-14  Jason Rumney  <jasonr@gnu.org>
+
+       * term/w32-win.el (w32-initialize-window-system): Use t, not nil
+       to signify default fontset.
+
+2007-06-19  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (describe-language-environment):
+       Check if the specified input method exists or not.
+
+2007-11-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * ldefs-boot.el: Regenerate.
+
+2007-11-11  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el (ps-do-despool): Do not force ps-lpr-switches to be a
+       list.
+       (ps-begin-job): Error if ps-lpr-switches is not a list.
+       (ps-face-background-name): Remove this function.  It's already defined
+       in ps-def.el file.
+
+2007-11-09  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el (ps-do-despool): If ps-lpr-switches is not a list, force
+       it to be one.
+       (ps-print-version): New version 7.3.1.
+
+2007-10-31  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Eliminate the check if ps-print was running on Lucid or
+       Epoch emacsen.
+
+2007-10-27  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Now detect if text foreground and background colors are
+       equals and replace the foreground color by another color, so the text
+       becomes visible.  Doc fix.
+       (ps-print-version): New version 7.3.
+       (ps-default-fg, ps-default-bg): Docstring fix.
+       (ps-fg-list, ps-fg-validate-p): New options.
+       (ps-foreground-list): New var.
+       (ps-generate-header-line): Replace fboundp by functionp.
+       (ps-setup, ps-begin-job, ps-plot-region): Fix code.
+
+2007-10-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * printing.el: Pacify byte compiler, that is, no compiler warnings.
+       Move (again) some variable definitions before use, define some fun
+       aliases, no code change.
+       (pr-version): New version 6.9.2.
+       (pr-path-style, pr-auto-region, pr-menu-char-height)
+       (pr-menu-char-width, pr-menu-lock, pr-ps-printer-alist)
+       (pr-txt-printer-alist, pr-ps-utility-alist): Options declaration
+       via (defvar VAR).
+       (pr-menu-lookup, pr-menu-lock, pr-menu-alist, pr-even-or-odd-pages)
+       (pr-menu-get-item, pr-menu-set-item-name, pr-menu-set-utility-title)
+       (pr-menu-set-ps-title, pr-menu-set-txt-title, pr-region-active-p)
+       (pr-do-update-menus, pr-update-mode-line, pr-f-read-string)
+       (pr-f-set-keymap-parents, pr-keep-region-active): Fun aliases.
+       (pr-menu-print-item, pr-ps-printer-menu-modified)
+       (pr-txt-printer-menu-modified, pr-ps-utility-menu-modified)
+       (pr-even-or-odd-alist): Vars definition moved.
+
+2007-10-23  Kenichi Handa  <handa@m17n.org>
+
+       * language/chinese.el (cp936): Delete duplicated alias.
+
+       * international/mule-diag.el (list-block-of-chars): Don't insert
+       non-Unicode characters.
+
+2007-10-14  Jason Rumney  <jasonr@gnu.org>
+
+       * loadup.el [windows-nt]: Don't load code-pages and ccl.
+       * term/w32-win.el: Don't require code-pages.
+
+2007-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Fix up multi-tty merge.
+
+       * version.el (emacs-version): Bump to 23.0.60.
+
+       * term/x-win.el (x-initialize-window-system): Don't try to create
+       a fontset from a font-specification anymore.  This was removed on the
+       unicode branch and mistakenly re-added by the multi-tty merge.
+
+       * term/w32-win.el: Remove duplicate code that's now in
+       w32-initialize-window-system.
+       (w32-initialize-window-system): Don't try to create a fontset from
+       a font-specification anymore.  This was removed on the unicode branch
+       and mistakenly re-added by the multi-tty merge.
+
+       * term/mac-win.el: Remove duplicate top-level code.
+
+       * ldefs-boot.el: Update.
+
+       * language/ethio-util.el:
+       * international/characters.el: Use utf-8 rather than utf-8-emacs
+       since it works as well and has the advantage of working with
+       non-unicode versions of Emacs.
+
+       * international/encoded-kb.el (encoded-kbd-setup-display): Use the new
+       multi-tty code, which includes the previous local change.
+
+2007-10-10  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Fix the usage of :foreground and :background face
+       attributes.  Reported by Nikolaj Schumacher <n_schumacher@web.de>.
+       (ps-print-version): New version 7.2.5.
+       (ps-face-attributes, ps-face-attribute-list, ps-face-background): Fix
+       code.
+       (ps-face-foreground-color-p, ps-face-background-color-p)
+       (ps-face-color-p): New inline funs.
+       (ps-background, ps-begin-file, ps-build-reference-face-lists): Use
+       `mapc' rather than `mapcar'.
+
+2007-09-07  Kenichi Handa  <handa@m17n.org>
+
+       * skeleton.el (skeleton-internal-1): Use integerp and stringp
+       instead of char-or-string-p to catch -1.
+
+2007-09-04  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (inactivate-input-method): Set
+       input-method-function to nil before calling
+       inactivate-current-input-method-function.
+
+2007-08-23  Kenichi Handa  <handa@m17n.org>
+
+       * play/gamegrid.el (gamegrid-setup-default-font): Calculate a font
+       height that doesn't exceed the requested height by rounding off.
+
+2007-08-16  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el (ps-header-font-size, ps-header-title-font-size)
+       (ps-footer-font-size, ps-line-number-font-size, ps-line-spacing)
+       (ps-paragraph-spacing): Docstring fix.
+
+2007-08-16  Glenn Morris  <rgm@gnu.org>
+
+       * ps-print.el (ps-font-size): Doc fix.
+
+2007-08-08  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el (ps-default-fg, ps-default-bg): Docstring fix.
+       (ps-begin-job): Use ps-default-fg and ps-default-bg only when
+       ps-print-color-p is neither nil nor black-white.  Reported by Christian
+       Schlauer <cs-muelleimer-rubbish.bin@arcor.de>.
+
+2007-08-06  Vinicius Jose Latorre  <viniciusig@ig.com.br>
+
+       * printing.el (pr-update-menus): Docstring fix.
+
+2007-08-05  Vinicius Jose Latorre  <viniciusig@ig.com.br>
+
+       * printing.el: Require lpr and ps-print when loading printing package.
+       Reported by Glenn Morris <rgm@gnu.org>.
+
+2007-08-03  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * printing.el: Evaluate require only during compilation.
+       (pr-version): New version 6.9.1.
+       (deactivate-mark): Replace (defvar VAR nil) by (defvar VAR).
+       (pr-global-menubar): Fix code.
+
+2007-07-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * progmodes/ebnf-abn.el (ebnf-abn-skip-comment):
+       * progmodes/ebnf-bnf.el (ebnf-bnf-skip-comment):
+       * progmodes/ebnf-dtd.el (ebnf-dtd-skip-comment):
+       * progmodes/ebnf-ebx.el (ebnf-ebx-skip-comment):
+       * progmodes/ebnf-iso.el (ebnf-iso-skip-comment):
+       * progmodes/ebnf-yac.el (ebnf-yac-skip-comment): New version.
+       New command actions for EPS header and EPS footer.
+
+       * progmodes/ebnf2ps.el: New command actions for EPS header and EPS
+       footer.  Fix some problems with one-or-more, zero-or-more and
+       alternative constructions generation.  Some log messages
+       implementation.  Doc fix.
+       (ebnf-version): New version 4.4.
+       (ebnf-eps-header-font, ebnf-eps-header, ebnf-eps-footer-font)
+       (ebnf-eps-footer, ebnf-log): New options.
+       (ebnf-find-style, ebnf-eps-header-footer, ebnf-eps-header)
+       (ebnf-eps-footer, ebnf-eps-string, ebnf-eps-header-footer-comment)
+       (ebnf-eps-header-footer-p, ebnf-eps-header-comment)
+       (ebnf-eps-footer-comment, ebnf-eps-header-footer-file)
+       (ebnf-eps-header-footer-set, ebnf-log-header, ebnf-log): New funs.
+       (ebnf-style-custom-list, ebnf-style-database): Put new values.
+       (ebnf-print-directory, ebnf-print-file, ebnf-print-buffer)
+       (ebnf-print-region, ebnf-spool-directory, ebnf-spool-file)
+       (ebnf-spool-buffer, ebnf-spool-region, ebnf-eps-directory)
+       (ebnf-eps-file, ebnf-eps-buffer, ebnf-eps-region)
+       (ebnf-syntax-directory, ebnf-syntax-file, ebnf-syntax-buffer)
+       (ebnf-syntax-region, ebnf-parse-and-sort, ebnf-begin-job)
+       (ebnf-dimensions, ebnf-production-dimension, ebnf-terminal-dimension)
+       (ebnf-non-terminal-dimension, ebnf-special-dimension)
+       (ebnf-terminal-dimension1, ebnf-repeat-dimension)
+       (ebnf-except-dimension, ebnf-alternative-dimension)
+       (ebnf-optional-dimension, ebnf-one-or-more-dimension)
+       (ebnf-zero-or-more-dimension, ebnf-sequence-dimension): Insert log
+       message fun.
+       (ebnf-setup, ebnf-generate-one-or-more, ebnf-generate-zero-or-more)
+       (ebnf-begin-job, ebnf-begin-file, ebnf-eps-finish-and-write)
+       (ebnf-insert-ebnf-prologue, ebnf-production-dimension)
+       (ebnf-terminal-dimension1, ebnf-alternative-dimension)
+       (ebnf-one-or-more-dimension, ebnf-zero-or-more-dimension)
+       (ebnf-eps-add-context, ebnf-eps-add-production): Fix code.
+       (ebnf-eps-filename, ebnf-trim-right): Replace `?\s' by `?\ ' to keep
+       compatibility with Emacs 20 & 21.
+       (ebnf-eps-header-comment, ebnf-eps-footer-comment)
+       (ebnf-eps-file-alist, ebnf-basic-width-extra)
+       (ebnf-basic-empty-height): New vars.
+       (ebnf-prologue): Fix PostScript code.
+       (ebnf-make-empty, ebnf-make-terminal1, ebnf-make-or-more1)
+       (ebnf-make-production, ebnf-make-alternative, ebnf-make-optional)
+       (ebnf-make-except, ebnf-make-repeat, ebnf-make-sequence)
+       (ebnf-make-dup-sequence, ebnf-token-alternative): Add comments.
+
+2007-07-26  Andreas Schwab  <schwab@suse.de>
+
+       * international/mule-diag.el (print-fontset-element): Use fontp
+       only if defined.
+
+2007-07-25  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el (ps-multibyte-buffer): Docstring fix.
+
+       * ps-mule.el: Doc fix.
+       (ps-multibyte-buffer, ps-mule-font-info-database, ps-mule-prepare-font)
+       (ps-mule-external-libraries, ps-mule-encode-region)
+       (ps-mule-plot-composition, ps-mule-encode-header-string)
+       (ps-mule-begin-job): Docstring fix.
+       (ps-mule-prologue-generated): Code fix.
+
+2007-07-20  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Problem with foreground and background color when
+       printing a buffer with and without faces.  Reported by Christian
+       Schlauer <cs-muelleimer-rubbish.bin@arcor.de>.
+       (ps-print-version): New version 7.2.4.
+       (ps-default-fg): Change default value to nil, so black color is used
+       when a face does not specify a foreground color.
+       (ps-default-bg): Change default value to nil, so white color is used
+       for background color.
+       (ps-begin-job): Fix code.
+
+2007-06-26  Kenichi Handa  <handa@m17n.org>
+
+       * dnd.el (dnd-get-local-file-name): Call replace-regexp-in-string
+       with FIXEDCASE t.
+
+2007-06-20  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-diag.el (print-fontset-element): Fix for the
+       format change of a fontset element for font-backend feature.
+
+2007-06-19  Kenichi Handa  <handa@m17n.org>
+
+       * descr-text.el (describe-char): Fix for the case that a component
+       character is TAB.
+
+2007-06-16  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el
+       (select-safe-coding-system-interactively): Fix printing of
+       rejected and unsafe coding-systems.
+
+       * international/fontset.el (setup-default-fontset): Add tai-viet.
+
+       * international/characters.el: Setup syntax/category table for Tai
+       Viet.
+       (script-list): Add tai-viet.
+
+       * loadup.el: Load "language/tai-viet".
+
+       * language/tai-viet.el: New file.
+
+       * language/tv-util.el: New file.
+
+2007-06-01  Jason Rumney  <jasonr@gnu.org>
+
+       * faces.el (font-weight-table): Use defaults on w32 that match
+       LOGFONT.lfWeight.
+
+       * term/w32-win.el: Don't create fontset from command-line font.
+
+2007-05-29  Juanma Barranquero  <lekktu@gmail.com>
+
+       * international/mule-cmds.el (toggle-enable-multibyte-characters)
+       (sort-coding-systems, search-unencodable-char): Doc fixes.
+       (default-input-method, input-method-verbose-flag)
+       (input-method-highlight-flag): Remove * in defcustom's docstrings.
+       (exit-language-environment-hook, set-default-coding-systems)
+       (coding-system-change-eol-conversion, prefer-coding-system)
+       (find-multibyte-characters, leim-list-entry-regexp)
+       (set-input-method, input-method-exit-on-first-char, princ-list)
+       (locale-language-names, locale-charset-language-names)
+       (define-char-code-property): Fix typos in docstrings.
+
+2007-05-28  Kenichi Handa  <handa@m17n.org>
+
+       * disp-table.el (make-glyph-code): Fix for a new character code
+       space (22-bit).
+       (glyph-char): Likewise.
+       (glyph-face): Likewise.
+
+2007-05-17  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * printing.el: Group together all XEmacs/Emacs definitions.
+       (pr-version): New version 6.9.
+       (pr-global-menubar, pr-menu-char-height, pr-menu-char-width): New funs.
+       (pr-menu-char-height, pr-menu-char-width): Fix initialization code.
+       (pr-menu-bind): Fix code.
+       (pr-e-frame-char-height, pr-e-frame-char-width)
+       (pr-e-mouse-pixel-position, pr-x-add-submenu, pr-x-event-function)
+       (pr-x-event-object, pr-x-find-menu-item, pr-x-font-height)
+       (pr-x-font-width, pr-x-get-popup-menu-response, pr-x-make-event)
+       (pr-x-misc-user-event-p, pr-x-relabel-menu-item, pr-x-event-x-pixel)
+       (pr-x-event-y-pixel): Aliases eliminated.
+       (pr-xemacs-global-menubar): Macro moved.
+       (current-menubar, current-mouse-event, zmacs-region-stays)
+       (deactivate-mark, pr-menu-position, pr-menu-state, pr-ps-name-old)
+       (pr-txt-name-old, pr-ps-utility-old, pr-even-or-odd-old, pr-temp-menu):
+       Vars moved.
+       (pr-region-active-p, pr-menu-position, pr-menu-lookup, pr-menu-lock)
+       (pr-update-mode-line, pr-do-update-menus, pr-menu-alist)
+       (pr-relabel-menu-item, pr-menu-set-ps-title, pr-menu-set-txt-title)
+       (pr-menu-set-utility-title, pr-even-or-odd-pages)
+       (pr-f-set-keymap-parents, pr-f-set-keymap-name, pr-f-read-string)
+       (pr-keep-region-active, pr-menu-get-item, pr-menu-set-item-name): Funs
+       moved.
+
+2007-05-16  Juanma Barranquero  <lekktu@gmail.com>
+
+       * printing.el (pr-ps-fast-fire): Fix typos in docstring.
+
+2007-05-13  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Use default color when foreground or background color
+       are unspecified.  Reported by Leo <sdl.web@gmail.com>.
+       (ps-print-version): New version 7.2.3.
+       (ps-rgb-color): New argument.  Use default color when color is
+       unspecified.
+       (ps-begin-job): Fix code.
+
+2007-03-28  Riccardo Murri  <riccardo.murri@gmail.com>
+
+       * vc-bzr.el: New file.
+
+2007-03-23  Kenichi Handa  <handa@m17n.org>
+
+       * international/characters.el: Add more cases/syntaxes from Latin
+       characters.
+
+2007-03-09  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-def.el (installation-directory): Must be initialized when defining
+       it in XEmacs.
+       (coding-system-for-read): Eliminate duplicated definition.
+
+2007-03-05  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Replace some (defvar VAR) by (defvar VAR nil).
+
+2007-03-01  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Replace (defvar VAR nil) by (defvar VAR).
+       (ps-print-emacs-type): Var eliminated.
+       (ps-setup): Remove ps-print-emacs-type. Print which Emacsen is
+       running ps-print package.
+
+       * ps-def.el: Replace (defvar VAR nil) by (defvar VAR).
+       (ps-frame-parameter): Replace defun by defalias.
+       (mark-active): defvar eliminated.
+
+       * ps-samp.el (ps-prsc, ps-c-prsc, ps-s-prsc): Macros eliminated.
+       (ps-rmail-mode-hook, ps-vm-mode-hook, ps-gnus-summary-setup)
+       (ps-jts-ps-setup): Replace macros by vector key definition.
+
+2007-02-16  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * progmodes/ebnf-abn.el (ebnf-abn-skip-comment):
+       * progmodes/ebnf-bnf.el (ebnf-bnf-skip-comment):
+       * progmodes/ebnf-dtd.el (ebnf-dtd-skip-comment):
+       * progmodes/ebnf-ebx.el (ebnf-ebx-skip-comment):
+       * progmodes/ebnf-iso.el (ebnf-iso-skip-comment):
+       * progmodes/ebnf-yac.el (ebnf-yac-skip-comment): New version.
+       New command actions for EPS header and EPS footer.
+
+       * progmodes/ebnf2ps.el: New command actions for EPS header and EPS
+       footer.  Fix some problems with one-or-more, zero-or-more and
+       alternative constructions generation.  Some log messages
+       implementation.  Doc fix.
+       (ebnf-version): New version 4.4.
+       (ebnf-eps-header-font, ebnf-eps-header, ebnf-eps-footer-font)
+       (ebnf-eps-footer, ebnf-log): New options.
+       (ebnf-find-style, ebnf-eps-header-footer, ebnf-eps-header)
+       (ebnf-eps-footer, ebnf-eps-string, ebnf-eps-header-footer-comment)
+       (ebnf-eps-header-footer-p, ebnf-eps-header-comment)
+       (ebnf-eps-footer-comment, ebnf-eps-header-footer-file)
+       (ebnf-eps-header-footer-set, ebnf-log-header, ebnf-log): New funs.
+       (ebnf-style-custom-list, ebnf-style-database): Put new values.
+       (ebnf-print-directory, ebnf-print-file, ebnf-print-buffer)
+       (ebnf-print-region, ebnf-spool-directory, ebnf-spool-file)
+       (ebnf-spool-buffer, ebnf-spool-region, ebnf-eps-directory)
+       (ebnf-eps-file, ebnf-eps-buffer, ebnf-eps-region)
+       (ebnf-syntax-directory, ebnf-syntax-file, ebnf-syntax-buffer)
+       (ebnf-syntax-region, ebnf-parse-and-sort, ebnf-begin-job)
+       (ebnf-dimensions, ebnf-production-dimension, ebnf-terminal-dimension)
+       (ebnf-non-terminal-dimension, ebnf-special-dimension)
+       (ebnf-terminal-dimension1, ebnf-repeat-dimension)
+       (ebnf-except-dimension, ebnf-alternative-dimension)
+       (ebnf-optional-dimension, ebnf-one-or-more-dimension)
+       (ebnf-zero-or-more-dimension, ebnf-sequence-dimension): Insert log
+       message fun.
+       (ebnf-setup, ebnf-generate-one-or-more, ebnf-generate-zero-or-more)
+       (ebnf-begin-job, ebnf-begin-file, ebnf-eps-finish-and-write)
+       (ebnf-insert-ebnf-prologue, ebnf-production-dimension)
+       (ebnf-terminal-dimension1, ebnf-alternative-dimension)
+       (ebnf-one-or-more-dimension, ebnf-zero-or-more-dimension)
+       (ebnf-eps-add-context, ebnf-eps-add-production): Fix code.
+       (ebnf-eps-filename, ebnf-trim-right): Replace `?\s' by `?\ ' to keep
+       compatibility with Emacs 20 & 21.
+       (ebnf-eps-header-comment, ebnf-eps-footer-comment)
+       (ebnf-eps-file-alist, ebnf-basic-width-extra)
+       (ebnf-basic-empty-height): New vars.
+       (ebnf-prologue): Fix PostScript code.
+       (ebnf-make-empty, ebnf-make-terminal1, ebnf-make-or-more1)
+       (ebnf-make-production, ebnf-make-alternative, ebnf-make-optional)
+       (ebnf-make-except, ebnf-make-repeat, ebnf-make-sequence)
+       (ebnf-make-dup-sequence, ebnf-token-alternative): Add comments.
+
+2007-02-14  Kenichi Handa  <handa@m17n.org>
+
+       * international/titdic-cnv.el: Synch with HEAD.
+
+2007-02-11  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * printing.el: Group together all XEmacs/Emacs definitions.
+       (pr-version): New version 6.9.
+       (pr-global-menubar, pr-menu-char-height, pr-menu-char-width): New funs.
+       (pr-menu-char-height, pr-menu-char-width): Fix initialization code.
+       (pr-menu-bind): Fix code.
+       (pr-e-frame-char-height, pr-e-frame-char-width)
+       (pr-e-mouse-pixel-position, pr-x-add-submenu, pr-x-event-function)
+       (pr-x-event-object, pr-x-find-menu-item, pr-x-font-height)
+       (pr-x-font-width, pr-x-get-popup-menu-response, pr-x-make-event)
+       (pr-x-misc-user-event-p, pr-x-relabel-menu-item, pr-x-event-x-pixel)
+       (pr-x-event-y-pixel): Aliases eliminated.
+       (pr-xemacs-global-menubar): Macro moved.
+       (current-menubar, current-mouse-event, zmacs-region-stays)
+       (deactivate-mark, pr-menu-position, pr-menu-state, pr-ps-name-old)
+       (pr-txt-name-old, pr-ps-utility-old, pr-even-or-odd-old, pr-temp-menu):
+       Vars moved.
+       (pr-region-active-p, pr-menu-position, pr-menu-lookup, pr-menu-lock)
+       (pr-update-mode-line, pr-do-update-menus, pr-menu-alist)
+       (pr-relabel-menu-item, pr-menu-set-ps-title, pr-menu-set-txt-title)
+       (pr-menu-set-utility-title, pr-even-or-odd-pages)
+       (pr-f-set-keymap-parents, pr-f-set-keymap-name, pr-f-read-string)
+       (pr-keep-region-active, pr-menu-get-item, pr-menu-set-item-name): Funs
+       moved.
+
+2007-02-07  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.ps: The ps-print commands without face printing should not
+       print background color.  Reported by Leo <sdl.web@gmail.com>.
+       (ps-print-version): New version 7.2.2.
+       (ps-begin-job): New arg.  Fix ps-default-background and
+       ps-default-foreground initialization.
+       (ps-face-attributes): Fix doc string.
+       (ps-face-background, ps-generate-postscript, ps-generate): Fix code.
+
+       * printing.el: Fix ps-print link.
+
+2007-01-30  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-diag.el (list-character-sets-2): Don't print
+       width.
+
+2007-01-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.ps: Fix background height.
+       (ps-print-version): New version 7.2.1.
+
+2007-01-25  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Split XEmacs/Emacs definitions and sample setup code
+       into separate files.
+       (ps-print-version): New version 7.2.
+       (ps-postscript-code-directory): Fix XEmacs initialization.
+       (ps-generate-postscript-with-faces): Call
+       ps-generate-postscript-with-faces1 (new fun).
+       (ps-color-format, ps-float-format): Vars moved to ps-def.el.
+       (ps-xemacs-color-name, ps-mapper, ps-extent-sorter)
+       (ps-xemacs-face-kind-p, ps-mark-active-p, ps-face-foreground-name)
+       (ps-face-background-name, ps-frame-parameter, ps-color-device)
+       (ps-color-values, ps-face-bold-p, ps-face-italic-p): Funs moved to
+       ps-def.el.
+       (ps-prsc, ps-c-prsc, ps-s-prsc, ps-rmail-mode-hook)
+       (ps-rmail-print-message-from-summary, ps-print-message-from-summary)
+       (ps-article-subject, ps-article-author, ps-gnus-article-prepare-hook)
+       (ps-vm-mode-hook, ps-gnus-print-article-from-summary)
+       (ps-vm-print-message-from-summary, ps-gnus-summary-setup, ps-info-file)
+       (ps-info-node, ps-info-mode-hook, ps-jts-ps-setup, ps-jack-setup): Funs
+       moved to ps-samp.el.
+
+       * ps-bdf.el (installation-directory, coding-system-for-read): Vars
+       moved to ps-def.el.
+
+       * ps-mule.el (leading-code-private-22): Var moved to ps-def.el.
+       (charset-bytes, charset-dimension, charset-id, charset-width)
+       (find-charset-region, char-width, chars-in-region, forward-point)
+       (decompose-composite-char, encode-coding-string, coding-system-p)
+       (ccl-execute-on-string, define-ccl-program, multibyte-string-p)
+       (string-make-multibyte, encode-char): Funs moved to ps-def.el.
+
+       * ps-def.el: New file. XEmacs/Emacs definitions.
+       (ps-generate-postscript-with-faces1): New fun.
+       (ps-color-format, ps-float-format): Vars moved from ps-print.el.
+       (ps-xemacs-color-name, ps-mapper, ps-extent-sorter)
+       (ps-xemacs-face-kind-p, ps-mark-active-p, ps-face-foreground-name)
+       (ps-face-background-name, ps-frame-parameter, ps-color-device)
+       (ps-color-values, ps-face-bold-p, ps-face-italic-p): Funs moved from
+       ps-print.el.
+       (installation-directory, coding-system-for-read): Vars moved from
+       ps-bdf.el.
+       (leading-code-private-22): Var moved from ps-mule.el.
+       (charset-bytes, charset-dimension, charset-id, charset-width)
+       (find-charset-region, char-width, chars-in-region, forward-point)
+       (decompose-composite-char, encode-coding-string, coding-system-p)
+       (ccl-execute-on-string, define-ccl-program, multibyte-string-p)
+       (string-make-multibyte, encode-char): Funs moved from ps-mule.el.
+
+       * ps-samp.el: New file. Sample setup code.
+       (ps-prsc, ps-c-prsc, ps-s-prsc, ps-rmail-mode-hook)
+       (ps-rmail-print-message-from-summary, ps-print-message-from-summary)
+       (ps-article-subject, ps-article-author, ps-gnus-article-prepare-hook)
+       (ps-vm-mode-hook, ps-gnus-print-article-from-summary)
+       (ps-vm-print-message-from-summary, ps-gnus-summary-setup, ps-info-file)
+       (ps-info-node, ps-info-mode-hook, ps-jts-ps-setup, ps-jack-setup): Funs
+       moved from ps-print.el.
+
+2007-01-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Handle frame parameters (background and/or foreground
+       colors) changing dynamically.  Reported by Leo <sdl.web@gmail.com>.
+       (ps-print-version): New version 7.1.
+       (ps-x-frame-property, ps-e-frame-parameter): New aliases.
+       (ps-frame-parameter): New fun.
+       (ps-default-fg, ps-default-bg): New default value ('frame-parameter).
+       Fix doc and customization.
+       (ps-begin-job): Get frame parameters (background and/or foreground
+       colors).
+       (ps-do-despool): Ensure ps-printer-name has a valid value.
+
+2006-12-04  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * progmodes/ebnf-abn.el:
+       * progmodes/ebnf-bnf.el:
+       * progmodes/ebnf-dtd.el:
+       * progmodes/ebnf-ebx.el:
+       * progmodes/ebnf-iso.el:
+       * progmodes/ebnf-otz.el:
+       * progmodes/ebnf-yac.el:
+       * progmodes/ebnf2ps.el:
+       * delim-col.el:
+       * printing.el:
+       * ps-bdf.el:
+       * ps-mule.el:
+       * ps-print.el: Remove 'Time-stamp' comment mark.
+
+       * printing.el (pr-menu-bind): Replace 'easy-menu-change' by
+       'easy-menu-add-item' when called in Emacs 21 or higher.
+
+2006-12-01  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el : Fix doc.
+       (ps-print-version): New version 7.0.
+
+2006-11-29  Kenichi Handa  <handa@m17n.org>
+
+       * mail/emacsbug.el (report-emacs-bug): Insert also the value of
+       XMODIFIERS.
+
+2006-11-28  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+       * ps-print.el: Fix maintainer email.  Eliminate function declaration
+       that kept compatibility with older Emacs version.
+       (ps-print-version): New version 6.7.
+
+2006-11-28  Kenichi Handa  <handa@m17n.org>
+
+       * international/quail.el (quail-get-translations): Make
+       quail-current-key multibyte if not yet done.
+
+2006-11-27  Zhang Wei  <id.brep@gmail.com>
+
+       * language/chinese.el ("Chinese-GBK"): Add tutorial.
+       ("Chinese-GB18030"): Add sample-text and tutorial.
+
+       * international/fontset.el (font-encoding-alist): Add gb18030.
+       (setup-default-fontset): Likewise.
+       (x-pixel-size-width-font-regexp, vertical-centering-font-regexp):
+       Add gbk and gb18030.
+       (charset-script-alist): Likewise.
+
+       * international/characters.el: Put property
+       preferred-coding-system to gbk and gb18030.
+
+       * international/mule-cmds.el (locale-language-names): Add an entry
+       for "zh_CN.UTF-8" and change "chs" to "Chinese-GBK".
+
+       * faces.el (face-font-registry-alternatives): Add gb18030.
+
+2006-11-22  Vinicius Jose Latorre  <viniciusjl@ig.com.br>  (tiny change)
+
+       * ps-mule.el: Fix maintainer email.
+
+2006-11-22  Kenichi Handa  <handa@m17n.org>
+
+       * language/european.el ("Turkish"): Sync with HEAD.
+
+       * international/characters.el: Sync with HEAD.
+
+       * international/mule-cmds.el (set-default-coding-systems): Sync
+       with HEAD.
+
+2006-11-21  Kenichi Handa  <handa@m17n.org>
+
+       * international/quail.el (quail-insert-kbd-layout): Check the
+       length of (cdr translation).
+       (quail-get-current-str): Check the length of (cdr def).
+
+2006-11-16  Kenichi Handa  <handa@m17n.org>
+
+       * ruler-mode.el (ruler-mode-ruler): Make the string `ruler'
+       mulitbyte.
+
+2006-11-13  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (ucs-insert): Re-implement.
+
+2006-11-09  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (terminal-composition-modification): New function.
+       (terminal-composition-function): Create composition with the above
+       modification function.
+
+2006-11-08  Zhang Wei  <id.brep@gmail.com>  (tiny change)
+
+       * international/characters.el: Add more full-width characters in
+       char-width-table.
+
+2006-10-30  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (create-fontset-from-fontset-spec): Fix
+       script name handling.
+
+2006-10-26  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (terminal-composition-function): New function.
+       (terminal-composition-function-table): New variable.
+       (auto-compose-chars): If running on a terminal, use
+       terminal-composition-function-table.
+
+       * loadup.el: Load "composite" after "international/characters".
+
+       * international/characters.el: Delete codes for setting up charset
+       property nospace-between-words.  Fix setting up of
+       char-width-table.  Don't make ethiopic and tibetan double column.
+
+       * textmodes/fill.el (fill-find-break-point-function-table): Don't
+       setup it in defvar.
+       (fill-nospace-between-words-table): New variable.
+       (fill-delete-newlines): Check fill-nospace-between-words-table
+       instead of charset property nospcae-between-words.
+
+2006-10-23  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (global-auto-composition-mode): Make the initial
+       value not depend on emacs-basic-display.
+
+       * textmodes/fill.el: Don't use charset property
+       `fill-find-break-point-function'.
+       (fill-find-break-point-function-table): New variable.
+       (fill-find-break-point): Lookup
+       fill-find-break-point-function-table.
+
+2006-10-17  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (coding-system-list): Be sure to exclude
+       subsidiary coding systems.
+
+2006-10-05  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (auto-composition-after-change): Remove
+       `auto-composed' property instead of put nil to it.
+       (toggle-auto-composition): Likewise.
+
+2006-10-02  Kenichi Handa  <handa@m17n.org>
+
+       * language/misc-lang.el (iso-8859-6): New coding system.
+
+2006-09-21  Kenichi Handa  <handa@m17n.org>
+
+       * dnd.el (dnd-get-local-file-name): Give a unibyte string to
+       replace-regexp-in-string as replacement.
+
+2006-08-28  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (otf-script-alist): Add byzm, math,
+       musc, and nko.
+
+       * international/characters.el (script-list): Add nko,
+       byzantine-musical-symbol, musical-symbol, and mathematical.
+
+2006-08-21  Kenichi Handa  <handa@m17n.org>
+
+       * international/uni-bidi.el, international/uni-category.el,
+       international/uni-combining.el, international/uni-comment.el,
+       international/uni-decimal.el, international/uni-decomposition.el,
+       international/uni-digit.el, international/uni-lowercase.el,
+       international/uni-mirrored.el, international/uni-name.el,
+       international/uni-numeric.el, international/uni-old-name.el,
+       international/uni-titlecase.el, international/uni-uppercase.el:
+       Re-generated.
+
+2006-08-04  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (select-safe-coding-system): Fix
+       synching with head.
+
+2006-08-03  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * ldefs-boot.el: Delete the section for utf-7.
+
+2006-07-24  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (auto-compose-current-font): New variable.
+       (auto-compose-chars): New arg FONT-OBJECT.
+
+2006-07-20  Kenichi Handa  <handa@m17n.org>
+
+       * international/characters.el: Modify category-table and
+       script-table for new Ethiopic character range.
+
+2006-07-07  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (set-language-info): Fix synching
+       with HEAD.
+       (set-language-environment): Likewise.
+       (standard-display-european-internal): Sync with HEAD.
+       (set-language-environment-nonascii-translation): Fix synching with
+       HEAD.
+       (set-language-environment-fontset): Delete it.
+       (set-language-environment-unibyte): Fix synching with HEAD.
+
+2006-07-03  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (otf-script-alist): Set it.
+
+2006-06-28  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (font-encoding-alist): Fix for
+       "ethiopic-unicode".
+
+2006-06-23  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (script-representative-chars): Add an
+       entry for latin script.
+
+2006-06-19  Kenichi Handa  <handa@m17n.org>
+
+       * faces.el (font-weight-table): Treat regular and normal as the
+       same as medium.
+       (font-slant-table): Add (roman . 100).
+
+2006-06-09  Kenichi Handa  <handa@m17n.org>
+
+       * tar-mode.el (tar-extract): Sync with HEAD.
+
+2006-06-06  Kenichi Handa  <handa@m17n.org>
+
+       These changes are for the new font handling codes.
+
+       * faces.el (font-weight-table, font-slant-table)
+       (font-swidth-table): New customizable variables.
+
+       * international/fontset.el (font-encoding-alist): Add koi8-4.
+       (script-representative-chars): Set the default value.
+       (create-fontset-from-x-resource): Delete `message'.
+
+2006-05-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * term/mac-win.el (mac-utxt-to-string, mac-string-to-utxt)
+       (mac-TEXT-to-string, mac-string-to-TEXT): Sync with HEAD.
+
+2006-04-09  Kenichi Handa  <handa@m17n.org>
+
+       * international/characters.el: Cancel unnecessary sync code for
+       HEAD.
+
+2006-03-28  Kenichi Handa  <handa@m17n.org>
+
+       * tar-mode.el (tar-untar-buffer, tar-summarize-buffer): Call
+       set-buffer-multibyte with arg `to'.
+
+2006-03-14  Kenichi Handa  <handa@m17n.org>
+
+       * info.el (Info-fontify-node): Check if already fontified or not
+       by next-single-property-change.
+
+2006-03-08  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (ctext-pre-write-conversion): Produce
+       extra designation sequence for ASCII at the end off extended
+       segment.
+
+2006-03-07  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (ctext-non-standard-encodings-table):
+       Reverse the returning list.
+       (ctext-pre-write-conversion): Fix encoding with extended segments.
+
+       * international/mule-conf.el (compound-text)
+       (compound-text-with-extensions): Add long-form in :flags.
+
+2006-03-06  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (create-fontset-from-fontset-spec): Fix
+       regexp for paring FONTSET-SPEC (allow spaces after `:').
+
+2006-03-03  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (create-fontset-from-fontset-spec): Fix
+       for the case that a charset is specified as target.
+
+       * international/ccl.el (ccl-dump-write-const-string): Fix previous
+       change.
+
+2006-03-02  Kenichi Handa  <handa@m17n.org>
+
+       * international/ccl.el (ccl-embed-string): Check string length.
+       Set special flag for multibyte character sequence.
+       (ccl-compile-write-string): Don't make str unibyte.
+       (ccl-compile-write-repeat): Likewise.
+       (ccl-compile-write): If the character code doesn't fit in 22-bit
+       (ccl-dump-write-const-string): Check special flag for multibyte
+       character sequence.
+
+2006-02-28  Kenichi Handa  <handa@m17n.org>
+
+       * ps-mule.el (ps-mule-eight-bit-char): Delete this function.
+       (ps-mule-encode-region): Don't use ps-mule-eight-bit-char.
+       (ps-mule-plot-composition): Likewise.
+
+2006-02-27  Kenichi Handa  <handa@m17n.org>
+
+       * language/chinese.el ("Chinese-BIG5"): Set
+       ctext-non-standard-encodings property to "big5-0".
+
+       * international/mule.el (ctext-non-standard-encodings): Initialize
+       to nil.
+       (ctext-non-standard-encodings-alist): Set charset `big5' in the
+       entry for "big5-0".
+       (ctext-non-standard-encodings-table): Return a list instead of
+       char-table.
+       (ctext-pre-write-conversion): Adjusted for the above change.
+
+2006-02-27  Zhang Wei  <id.brep@gmail.com>  (tiny change)
+
+       * international/mule.el (ctext-non-standard-encodings-alist): Add
+       an entry for gbk-0.
+       (ctext-post-read-conversion): Use multibyt-char-to-unibyte to read
+       a row 8-bit.
+
+       * language/chinese.el ("Chinese-GBK"): Set
+       ctext-non-standard-encodings property to "gbk-0".  Add sample-text
+       property.
+
+2006-02-27  Kenichi Handa  <handa@m17n.org>
+
+       * international/kkc.el (kkc-region): Use
+       this-single-command-raw-keys on pushing back an unhandled key
+       sequence.
+
+2006-02-24  Kenichi Handa  <handa@m17n.org>
+
+       * international/encoded-kb.el (encoded-kbd-mode): Check
+       saved-input-mode on turing off Encoded Kbd mode.
+
+       * composite.el (auto-composition-after-change): Use
+       save-buffer-state.
+       (turn-on-auto-composition-if-enabled): Don't turn on
+       auto-composition-mode in a unibyte buffer.
+
+2006-02-21  Kenichi Handa  <handa@m17n.org>
+
+       * startup.el (command-line): Use custom-reevaluate-setting for
+       global-auto-composition-mode.
+
+       * composite.el (auto-composition-function): Make it buffer local.
+       (auto-composition-mode): New minor mode.
+       (turn-on-auto-composition-if-enabled): New function.
+       (global-auto-composition-mode): New global minor mode.
+
+2006-01-24  Kenichi Handa  <handa@m17n.org>
+
+       * descr-text.el (describe-char): Use insert-text-button instead of
+       widget-create for "customize what to show" button.
+
+2006-01-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * tar-mode.el: Merge changes from the trunk:
+       (tar-header-block-tokenize): Tighten regexp.
+       (tar-summarize-buffer): Don't clear the modified-p bit if it wasn't
+       cleared before.  Obey default-enable-multibyte-characters.
+       Use mapconcat.
+       (tar-mode-map): Move initialization inside delcaration.
+       (tar-alter-one-field): Don't hardcode point-min==1.
+
+2006-01-20  Naoto Takahashi  <ntakahas@m17n.org>
+
+       * language/ethiopic.el: Copyright fixed.
+       (composition-function-table): Support a new character in Unicode
+       4.1.
+
+       * language/ethio-util.el (ethio-fidel-to-tex-buffer)
+       (ethio-tex-to-fidel-buffer, ethio-composition-function)
+       ("ethiopic-tex"): Support new characters in Unicode 4.1.
+
+       * descr-text.el (describe-char): Fix for sync with HEAD.
+
+2006-01-19  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (autoload-coding-system): Install the same
+       function as in HEAD.
+
+2005-12-28  Kenichi Handa  <handa@m17n.org>
+
+       * international/characters.el: Register characters in
+       auto-fill-chars.  Put nospace-between-words to more charsets.
+
+2005-10-27  Zhang Wei  <id.brep@gmail.com>  (tiny change)
+
+       * international/mule-cmds.el (locale-language-names): Add entries
+       for zh_CN.GB2312, zh_CN.GBK, and zh_CN.GB18030.
+       (locale-preferred-coding-systems): Fix entries for Chinese locales.
+
+2005-10-24  Kenichi Handa  <handa@etlken>
+
+       * international/utf-7.el: Delete the definition of utf-7.
+       (utf-7-post-read-conversion, utf-7-pre-write-conversion):
+       Add autoload cookies.
+
+2005-10-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * term/mac-win.el: Delete the code to create a fontset from the X
+       resource "Font".
+
+2005-07-29  Naoto Takahashi  <ntakahas@m17n.org>
+
+       * international/robin.el (robin-define-package): Be sure to call
+       put-char-code-property.
+
+2005-07-29  Kenichi Handa  <handa@m17n.org>
+
+       * language/korean.el (iso-2022-kr): Set :suitable-for-keyboard
+       property to 1.
+
+       * international/mule-conf.el (cp1125): Set :ascii-compatible-p
+       property to t.
+
+       * descr-text.el (describe-char): Sync with the main trunk.
+
+       * international/mule.el (coding-system-get):
+       Check `ascii-incompatible' for backward compatiblity.
+       (set-file-name-coding-system): Signal an error for a coding system
+       not suitable for file name.
+       (set-keyboard-coding-system): Signal an error for a coding system
+       not suitable for keyboard.
+
+       * language/chinese.el (iso-2022-cn, iso-2022-cn-ext):
+       Set :suitable-for-keyboard property to 1.
+
+       * language/japanese.el (iso-2022-jp, iso-2022-jp-2)
+       (iso-2022-jp-2004): Set :suitable-for-keyboard property to 1.
+
+       * language/vietnamese.el (vietnamese-viscii, vietnamese-vscii)
+       (vietnamese-tcvn): Set :suitable-for-file-name property to t.
+
+2005-07-26  Naoto Takahashi  <ntakahas@m17n.org>
+
+       * international/robin.el (robin-define-package): Delete redundant code.
+       (robin-add-rule): Allow N-1 reverse conversion.
+
+2005-07-26  Naoto Takahashi  <ntakahas@m17n.org>
+
+       * international/robin.el (robin-define-package): Make the
+       expaneded form shorter.
+
+2005-06-05  Zhang Wei  <id.brep@gmail.com>  (tiny change)
+
+       * language/chinese.el (chinese-iso-8bit): Fix mime-charset of
+       chiense-iso-8bit.
+
+2005-05-11  Kenichi Handa  <handa@m17n.org>
+
+       * loadup.el: If we are byte-compiling unidata-gen.el or running
+       unidata-ge-files, set purify-flag to nil.
+
+2005-05-10  Kenichi Handa  <handa@m17n.org>
+
+       * loadup.el: Load international/charprop.el with NOERROR t.
+
+       * Makefile.in (AUTOGENEL): Add charprop.el and uni-*.el.
+
+2005-05-07  Kenichi Handa  <handa@m17n.org>
+
+       * international/uni-bidi.el, international/uni-category.el,
+       international/uni-combining.el, international/uni-comment.el,
+       international/uni-decimal.el, international/uni-decomposition.el,
+       international/uni-digit.el, international/uni-lowercase.el,
+       international/uni-mirrored.el, international/uni-name.el,
+       international/uni-numeric.el, international/uni-old-name.el,
+       international/uni-titlecase.el, international/uni-uppercase.el,
+       international/charprop.el: Re-generated.
+
+2005-04-22  Kenichi Handa  <handa@m17n.org>
+
+       * term/mac-win.el: Sync with the main trunk.
+       (mac-centraleurroman, mac-cyrillic): New charsets and coding
+       systems.
+       (mac-symbol, mac-dingbats): New charsets.
+
+2005-04-21  Kenichi Handa  <handa@m17n.org>
+
+       * international/characters.el: Set syntax of NBSP to punctuation.
+
+2005-04-11  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el: Don't require wid-edit.
+
+2005-04-09  Kenichi Handa  <handa@m17n.org>
+
+       * language/thai-util.el: Fix previous change.
+
+2005-03-28  Kenichi Handa  <handa@m17n.org>
+
+       * language/thai-util.el: Sync with the main trunk.
+
+2005-03-16  Naoto Takahashi  <ntakahas@m17n.org>
+
+       * international/robin.el: New file.
+
+       * language/ethiopic.el: Encoding changed to utf-8-emacs.
+       Register ethio-composition-function in composition-function-table.
+       ("Ethiopic"): Coding-systems changed to utf-8-emacs.
+
+       * language/ethio-util.el: Encoding changed to utf-8-emacs.  All
+       transliteration functions rewritten to use robin.el.
+       (ethio-fidel-to-sera-map, ethio-fidel-to-tex-map)
+       (ethio-sera-to-fidel-table, ethio-implicit-period-conversion)
+       (ethio-prefer-ascii-punctuation): Deleted variables.
+       (ethio-char-to-ethiocode, ethio-convert-digit)
+       (ethio-ethiocode-to-char, ethio-fidel-to-sera-mail)
+       (ethio-fidel-to-sera-mail-or-marker, ethio-lone-consonant-p)
+       (ethio-sera-to-fidel-english, ethio-sera-to-fidel-ethio)
+       (ethio-sera-to-fidel-mail, ethio-sera-to-fidel-mail-or-marker)
+       (ethio-tilde-escape, ethio-toggle-punctuation): Deleted functions.
+       (ethio-adjust-robin, ethio-composition-function)
+       (ethio-get-consonant, ethio-prefer-amharic, ethio-process-digits)
+       (ethio-sera-to-fidel-region-ethio)
+       (ethio-sera-to-fidel-region-noethio)
+       (ethio-use-colon-for-colon, ethio-use-three-dot-question): New
+       functions.
+
+2005-01-30  Kenichi Handa  <handa@m17n.org>
+
+       * international/uni-name.el: Re-generated.
+
+2005-02-24  Miles Bader  <miles@gnu.org>
+
+       * international/mule.el (auto-coding-regexp-alist)
+       (ctext-pre-write-conversion): Replace embedded control characters
+       with octal escapes; this prevents diff from thinking the file is
+       binary.
+
+2005-02-12  Miles Bader  <miles@gnu.org>
+
+       * version.el (emacs-version): Change to "23.0.0".
+
+       * descr-text.el (describe-char-unidata-list):
+       Replace references to Emacs version "22" with "23".
+       * emacs-lisp/bytecomp.el (byte-compile-fix-header)
+       (byte-compile-insert-header): Likewise.
+       * international/mule.el (charset-list, set-coding-priority)
+       (ignore-relative-composition): Likewise.
+       * international/mule-util.el (detect-coding-with-priority): Likewise.
+       * international/mule-diag.el: Likewise.
+       * international/mule-cmds.el (language-info-custom-alist): Likewise.
+       * international/codepage.el (codepage-setup): Likewise.
+
+2005-02-13  Kenichi Handa  <handa@m17n.org>
+
+       * case-table.el: Adjust code merged from trunk for unicode
+       branch (for the change on 2005-02-02).
+
+2005-01-30  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.in (DONTCOMPILE): Include charprop.el and uni-*.el.
+
+       * international/fontset.el (font-encoding-alist): Add an entry for
+       microsoft-cp1251.
+       (setup-default-fontset): Add entries for microsoft-cp1251 and
+       koi8-r for cyrillic.
+
+       * international/mule-cmds.el (char-code-property-alist): New
+       variable.
+       (define-char-code-property): New function.
+       (get-char-code-property): Handle a char-table registerd in
+       char-code-property-alist.
+       (put-char-code-property): Likewise.
+       (set-language-environment): Check :ascii-compatible-p property of
+       nonascii charset instead of its dimension.
+
+       * international/uni-bidi.el, international/uni-category.el,
+       international/uni-combining.el, international/uni-comment.el,
+       international/uni-decimal.el, international/uni-decomposition.el,
+       international/uni-digit.el, international/uni-lowercase.el,
+       international/uni-mirrored.el, international/uni-name.el,
+       international/uni-numeric.el, international/uni-old-name.el,
+       international/uni-titlecase.el, international/uni-uppercase.el,
+       international/charprop.el: New files automatically generated by
+       admin/unidata/Makefile.
+
+       * loadup.el: Load internationnal/charprop.el.
+
+       * descr-text.el (describe-char-unidata-list): New variable.
+       (describe-char-unicode-data): Use char-code-property-description.
+       (describe-char): Add lines for describing Unicode-based character
+       properties.
+
+2005-01-17  Kenichi Handa  <handa@m17n.org>
+
+       * textmodes/ispell.el: These changes are to fix the code merged
+       from trunk for the change on 2005-01-13.
+       (ispell-unified-chars-table): Delete it.
+       (ispell-get-decoded-string): Don't check
+       ispell-unified-chars-table.
+
+       * tar-mode.el (tar-extract): Adjust code merged from trunk for
+       unicode branch (for the change on 2005-01-15).
+
+2004-12-09  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-util.el (char-displayable-p): Check
+       :charset-list property of CODING.
+
+2004-12-06  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (select-safe-coding-system-interactively):
+       Change 'mime-charset to :mime-charset.
+       (select-safe-coding-system): Use above (sync to HEAD).
+       (set-language-environment): Delete unnecessary code for handling
+       overriding-fontspec
+
+2004-10-28  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-conf.el: New coding system aliases unix, dos,
+       and mac.
+
+2004-10-19  Kenichi Handa  <handa@m17n.org>
+
+       * international/titdic-cnv.el (tit-process-header): Fix embedded
+       coding tag.
+       (titdic-convert): Bind coding-system-for-write to the coding
+       system specfied in the map file.  Remove `charset' property after
+       decoding.
+       (miscdic-convert): Bind coding-system-for-write to the coding
+       system specfied for the map file.  Fix LANGUAGE arg to
+       quail-define-package.
+       (batch-miscdic-convert): Check if a file is directory or not.
+
+2004-10-16  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (coding-system-equal): Move from mule-util.el.
+
+       * international/mule-util.el (coding-system-equal): Move to mule.el.
+
+2004-10-15  Kenichi Handa  <handa@m17n.org>
+
+       * international/encoded-kb.el (encoded-kbd-decode-code-list): New
+       function.
+       (encoded-kbd-self-insert-charset): Support multibyte charsets.
+       (encoded-kbd-setup-keymap): Likewise.
+
+2004-10-12  Kenichi Handa  <handa@m17n.org>
+
+       * language/china-util.el (hz-set-msb-table): Turn chars beyond 128
+       to eight-bit chars.
+
+       * international/mule-conf.el: Dont' define coding system
+       `undecided' here.
+
+2004-10-06  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (locale-language-names): Fix for
+       gb18030 and gdk.
+
+2004-10-05  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (font-encoding-alist): Add gbk.
+       (charset-script-alist): Add chinese-gbk.
+
+2004-10-04  Kenichi Handa  <handa@m17n.org>
+
+       * language/chinese.el (chinese-gbk): Include ascii in
+       charset-list.
+
+       * international/encoded-kb.el (encoded-kbd-setup-keymap): Fix
+       previous change.
+
+2004-09-19  Kenichi Handa  <handa@m17n.org>
+
+       * language/japanese.el ("Japanese"): Fix ordering of charsets.
+
+2004-08-18  Kenichi Handa  <handa@m17n.org>
+
+       * international/encoded-kb.el (encoded-kbd-self-insert-charset)
+       (encoded-kbd-self-insert-utf-8, encoded-kbd-setup-keymap)
+       (encoded-kbd-mode): Adjust code merged from trunk for unicode branch.
+
+2004-08-17  Kenichi Handa  <handa@m17n.org>
+
+       * descr-text.el (describe-char): Fix for the case CODE is a cons
+       of integers.
+
+2004-08-03  Steven Tamm  <steventamm@mac.com>
+
+       * term/mac-win.el: Use mac-standard-fontset-spec to create
+       fontset-mac
+       (mac-standard-fontset-spec): Created
+
+2004-04-27  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-diag.el (unicode-data): Call
+       find-file-noselect with NOWARN t.
+
+2004-04-21  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-conf.el (cp932-2-byte): Fix :code-space.
+
+2004-04-20  Kenichi Handa  <handa@m17n.org>
+
+       * international/characters.el: Give more CJK characters the
+       category `|'.
+
+       * descr-text.el (describe-char): Make it work on *Help* buffer.
+       Suppress auto-compostion on a region describing about composition.
+
+       * language/european.el (diacritic-compose-region): Compose
+       diacritical marks only with a character whose syntax is word
+       constituent.
+       (diacritic-compose-string): Likewise.
+       (diacritic-composition-function): Likewise.
+       (diacritic-post-read-conversion): Delete it.
+
+2004-04-19  Kenichi Handa  <handa@m17n.org>
+
+       * international/characters.el: Fix invalid encoding caused by the
+       previous sync.
+
+2004-04-16  Kenichi Handa  <handa@m17n.org>
+
+       Sync all files to HEAD.
+
+2004-04-15  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (auto-compose-chars): Execute the main code in
+       condition-case.
+
+2004-04-14  Kenichi Handa  <handa@m17n.org>
+
+       * descr-text.el (describe-property-list): Sync to HEAD.
+
+       * international/mule-diag.el: Sync to HEAD.
+
+       * international/fontset.el (x-complement-fontset-spec): Don't
+       change CHARSET_REGISTRY and CHARSET_ENCODING fields.
+
+2004-04-13  Kenichi Handa  <handa@m17n.org>
+
+       * international/characters.el (next-word-boundary-kana): Handle
+       half-width kana.
+
+2004-04-12  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-conf.el (indian-1-column): Fix :emacs-mule-id.
+
+2004-04-09  Kenichi Handa  <handa@m17n.org>
+
+       * language/japanese.el (japanese-iso-8bit): Fix order of
+       :charset-list.
+
+       * mail/rmail.el (rmail-decode-babyl-format): Use
+       with-coding-priority instead of detect-coding-with-priority.
+
+2004-04-07  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (make-translation-table): Set the second
+       extra slot of the char table to 1.
+       (make-translation-table-from-vector): Likewise.
+       (make-translation-table-from-alist): Fix handling of multiple
+       entries.
+
+2004-03-11  Kenichi Handa  <handa@m17n.org>
+
+       * language/japanese.el (jisx0213-to-unicode, unicode-to-jisx0213):
+       New translation tables.
+
+       * international/mule.el (make-translation-table-from-alist): New
+       function.
+
+2004-03-04  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (translate-region): Re-implement it here.
+       Make it interactive.
+
+2004-03-03  Kenichi Handa  <handa@m17n.org>
+
+       * ps-mule.el (ps-mule-font-info-database): Typo in doc fixed.
+
+2004-02-16  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (font-encoding-alist): Cancel previous
+       change.
+
+2004-02-13  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (font-encoding-alist): Register
+       "iso10646-2" for unicode-sip.
+
+2004-02-12  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-conf.el (chinese-cns11643-15): New charset.
+
+2004-02-09  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (font-encoding-alist): Add entries for
+       variations of cns11643 fonts.
+       (setup-default-fontset): Add cns11643 fonts as fallback fonts.
+
+2004-02-06  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-diag.el (list-charset-chars): Put charset
+       text property.
+
+       * international/fontset.el (setup-default-fontset): Delete the
+       entry for symbol script, add JISX0213 to kana script, specify
+       fallback fonts.
+
+2004-02-05  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (setup-default-fontset): Register
+       "JISX0213.2004-1".
+       (font-encoding-alist): Likewise.
+
+       * international/mule-diag.el (list-character-sets): Fix the first
+       line message.
+       (sort-listed-character-sets): Adjusted for the change of
+       list-characters-sets-1.
+       (list-character-sets-1): List supplementary character sets in a
+       different section.
+       (list-charset-chars): Validate charset at early stage.
+
+       * international/characters.el: Fix `han' script range.
+
+       * international/mule-conf.el (japanese-jisx0213.2004-1): Specify
+       :code-space.
+       (cp932-2-byte): Fix :code-space.
+       (unicode-smp, unicode-sip, unicode-ssp): New charsets.
+
+2004-02-03  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-conf.el (japanese-jisx0213.2004-1): Specify
+       :dimension 2.
+
+       * language/japanese.el (iso-2022-jp): Exclude japanese-jisx0212.
+       (japanese-ucs-cp932-to-jis-map): Fix previous change.
+       (japanese-ucs-jis-to-cp932-map): Likewise.
+       (iso-2022-jp-2004, euc-jis-2004, japanese-shift-jis-2004): New
+       coding systems.
+       (iso-2022-jp-3, euc-jisx0213, shift_jis-2004): New coding system
+       aliases.
+       ("Japanese"): Add new charsets and coding system.s
+
+2004-02-02  Kenichi Handa  <handa@m17n.org>
+
+       * language/japanese.el (japanese-ucs-cp932-to-jis-map): Renamed
+       from japanese-ucs-cp932-map.
+       (japanese-ucs-jis-to-cp932-map): Renamed from
+       japanese-ucs-jis-map.
+       (japanese-ucs-glibc-map): Delete this tranlastion table.
+       (japanese-ucs-glibc-to-jis-map): New tranlastion table.
+       (japanese-ucs-jis-to-glibc-map): New tranlastion table.
+
+2004-01-30  Kenichi Handa  <handa@m17n.org>
+
+       * cus-start.el: Handle charset-map-path, not
+       charset-map-directory.
+
+2004-01-29  Kenichi Handa  <handa@m17n.org>
+
+       * term/x-win.el (x-selection-value): Optimize for ASCII only case.
+
+2004-01-28  Kenichi Handa  <handa@m17n.org>
+
+       * language/japanese.el: Add map #x00A6 <-> #xFFE4 to translation
+       tables japanese-ucs-*-map.
+
+2004-01-27  Kenichi Handa  <handa@m17n.org>
+
+       * international/eucjp-ms.el: New file (automatically generated by
+       admin/charsets/Makefile).
+
+       * international/cp51932.el: New file (automatically generated by
+       admin/charsets/Makefile).
+
+       * language/japanese.el: Load cp51932 and eucjp-ms.
+       (japanese-ucs-cp932-map, japanese-ucs-jis-map)
+       (japanese-ucs-glibc-map): New translation tables.
+       (eucjp-ms): New coding system.
+
+       * international/mule.el (coding-system-put): Delete it.
+       It's implemented in C now.
+
+       * international/mule-conf.el (katakana-sjis): Fix :superset to
+       :subset.
+       (japanese-jisx0213-a): New supplementary charset.
+       (japanese-jisx0213.2004-1): New charset.
+
+2004-01-25  Kenichi Handa  <handa@m17n.org>
+
+       * language/japanese.el (japanese-cp932): New coding system.
+       (cp932): New alias of it.
+
+       * international/mule-conf.el (katakana-sjis, cp932-2-byte)
+       (cp932): New charsets.
+
+       * international/mule.el (define-charset): If :code-space is not
+       given, generate it from :dimension.
+
+2004-01-23  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (reference-point-alist): Doc fixed.
+       (encode-composition-rule): Handle a rule (GREF NREF XOFF YOFF).
+       (decode-composition-rule): Likewise.
+
+2004-01-20  Kenichi Handa  <handa@m17n.org>
+
+       * language/european.el (diacritic-composition-function): Fix for
+       the case that POS is at the head.  Allow combining with more
+       characters.
+
+2004-01-16  Kenichi Handa  <handa@m17n.org>
+
+       * descr-text.el (describe-char): Check `charset' property.
+       Show the code point in the charset in hexadigits.
+
+       * international/mule-diag.el (stretches-for-character-list):
+       Delete it.
+       (list-block-of-chars): Use tabs instead of `display' property for
+       aligning characters.
+       (print-fontset-element): Fix the printing of XLFD.
+
+2004-01-15  Kenichi Handa  <handa@m17n.org>
+
+       * international/encoded-kb.el (encoded-kbd-self-insert-utf-8):
+       New function.
+       (encoded-kbd-setup-keymap): Add code for handling utf-8.
+       (encoded-kbd-mode): Likewise.
+
+2003-12-29  Kenichi Handa  <handa@m17n.org>
+
+       * faces.el (read-face-font): Include fontsets in the completion
+       list.
+
+       * international/mule-cmds.el (set-locale-environment): Insert
+       locale-translation-file-name in a unibyte buffer.
+
+       * international/characters.el: Fix setting of category `|'.
+
+2003-12-02  Kenichi Handa  <handa@m17n.org>
+
+       * language/chinese.el (chinese-gb18030): Fix :charset-list.
+
+2003-11-26  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (auto-compose-chars): Fix previous change.
+
+2003-11-25  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (select-safe-coding-system): Fix for
+       the case that the first element of default-coding-system is t.
+       Fix a message when some coding systems are rejected.
+
+       * composite.el (auto-compose-chars): Fix previous change.
+
+2003-11-24  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (set-language-environment): Put
+       higher priority to charsets listed in `charset' property of the
+       language environment.
+
+2003-11-23  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (auto-compose-chars): Don't do unnecessary
+       save-exclusion and save-restriction.
+
+2003-11-22  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-conf.el (ctext-no-compositions): Remove
+       garbage arguments.
+
+       * international/mule.el (make-coding-system): Fix generation of
+       properties.
+
+       * international/fontset.el (setup-default-fontset): Specify fonts
+       for `symbol' script.
+
+       * international/characters.el (script-list): Include `currency'
+       in `symbol'.
+
+2003-11-13  Alex Schroeder  <alex@gnu.org>
+
+       * timezone.el (timezone-parse-date): Fix style 8 to accept ISO
+       8601 format (a capital T between the date and the time).
+
+2003-11-17  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (private-char-area-1-min)
+       (private-char-area-1-max, private-char-area-2-min)
+       (private-char-area-2-max, emacs-mule-charset-table): New
+       variables.
+       (convert-define-charset-argument): New function.
+       (define-charset): Handle the old calling style.  Update
+       emacs-mule-charset-table.
+       (make-char-internal): New function.
+
+2003-11-03  Jason Rumney  <jasonr@gnu.org>
+
+       * w32-charset-info-alist: Define iso10646-1 always.
+
+2003-10-24  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (compose-region): Doc fix (delete duplicated line).
+
+2003-10-17  Kenichi Handa  <handa@m17n.org>
+
+       * international/characters.el: Fix syntax for Ethiopic.
+
+2003-10-12  Jason Rumney  <jasonr@gnu.org>
+
+       * w32-fns.el (w32-charset-info-alist): Accept more charset aliases.
+
+       * makefile.w32-in (DONTCOMPILE): Remove old languages. Add
+       international/latin1-disp.el.
+       (LC_ALL): Define as C.
+
+2003-10-11  Jason Rumney  <jasonr@gnu.org>
+
+       * term/w32-win.el: Don't set fontsets to use sjis.
+
+2003-10-01  Kenichi Handa  <handa@m17n.org>
+
+       * language/japanese.el (iso-2022-jp, iso-2022-jp-2)
+       (japanese-iso-8bit): Fix the order of charsets in :charset-list.
+
+2003-09-30  Kenichi Handa  <handa@m17n.org>
+
+       * composite.el (auto-composition-chunk-size): Variable deleted.
+       (auto-compose-chars): Always stop after processing a newline.
+
+2003-09-28  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (define-coding-system): Fix attribute
+       name :for-unibyte.
+
+2003-09-26  Kenichi Handa  <handa@m17n.org>
+
+       * ps-bdf.el: Mostly re-written.
+
+       * ps-mule.el: Mostly re-written.
+
+       * ps-print.el (ps-generate-string-list): Function deleted.
+       (ps-rh-cache, ps-lf-cache, ps-rf-cache): Variables deleted.
+       (ps-header-footer-string): Function deleted.
+       (ps-encode-header-string-function): New variable
+       (ps-generate-header-line): Call ps-encode-header-string-function.
+       (ps-basic-plot-string-function): New variable
+       (ps-begin-job): Set ps-basic-plot-string-function and
+       ps-encode-header-string-function.  For setting up headers and
+       footers, don't use caches such as ps-rh-cache.  Don't call
+       ps-mule-begin-page.
+       (ps-basic-plot-str): Don't call ps-mule-prepare-ascii-font.
+       (ps-basic-plot-string): Likewise.
+       (ps-control-character): Likewise.
+       (ps-plot-region): Don't pay attention to composition and
+       non-ASCII characters.
+       (ps-generate): Call ps-mule-end-job.
+       (ps-mule-prepare-ascii-font): Delete autoload.
+       (ps-mule-set-ascii-font): Likewise.
+       (ps-mule-plot-string): Likewise.
+       (ps-mule-begin-page): Likewise.
+       (ps-mule-end-job): Declare autoload.
+
+       * composite.el (auto-compose-region): New function.
+
+2003-09-11  Dave Love  <fx@gnu.org>
+
+       * international/mule-util.el
+       (detect-coding-with-language-environment): Doc fix.
+
+       * composite.el: Doc fixes.
+       (auto-compose-chars): Use functionp, not fboundp.
+
+       * international/mule-diag.el (list-charset-chars): Set buffer file
+       coding system.
+
+       * progmodes/cap-words.el (capitalized-words-mode): Add autoload
+       cookie.  Doc fix.
+
+2003-09-10  Dave Love  <fx@gnu.org>
+
+       * international/mule-diag.el (list-charset-chars): Set buffer file
+       coding system.
+
+       * progmodes/cap-words.el (capitalized-words-mode): Add autoload
+       cookie.  Doc fix.
+
+       * textmodes/tex-mode.el (tex-font-lock-syntactic-face-function):
+       * progmodes/sh-script.el (sh-font-lock-syntactic-face-function):
+       * progmodes/perl-mode.el (perl-font-lock-syntactic-face-function):
+       * eshell/esh-opt.el (eshell-process-option):
+       * emulation/keypad.el (keypad-setup):
+       * emacs-lisp/lisp-mode.el (prin1-char):
+       * generic.el (generic-mode-set-comments):
+       * edmacro.el (edmacro-parse-keys):
+       * disp-table.el (standard-display-default): Use characterp.
+
+2003-06-23  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-conf.el (utf-16-be): Make it an alias of
+       utf-16be-with-signature.
+       (utf-16-le): Make it an alias of utf-16le-with-signature.
+       (utf-16-be-with-signature, utf-16-le-with-signature): Remove these
+       coding system aliases.
+
+       * international/utf-7.el (utf-7-decode, utf-7-encode): Use
+       utf-16be, not utf-16-be.
+
+2003-06-06  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (coding-system-category): New function.
+       (set-coding-priority): Re-written.
+       (make-translation-table): Re-written.
+
+       * international/mule-cmds.el (universal-coding-system-argument):
+       Check the coding system type `undecided', not `t'.
+       (sort-coding-systems): Fix for iso-2022 coding systems.
+       (find-multibyte-characters): Fix for eight-bit chars.
+       (set-language-environment): Set charset priorities according to
+       the charsets supported by the coding systems of higher priorities.
+
+2003-06-05  Kenichi Handa  <handa@m17n.org>
+
+       * font-lock.el
+       (font-lock-match-c-style-declaration-item-and-skip-to-next):
+       Check (match-end 2) before goto there.
+
+2003-05-30  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (ctext-non-standard-designations-alist):
+       Exclude entries for iso8859-1[03456].  Fix docstring.
+       (ctext-pre-write-conversion): Make it work for the case that FROM
+       is a string.  Don't do unnecessary save-restriction and
+       narrow-to-region.
+
+2003-05-28  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule.el (ctext-non-standard-encodings-alist):
+       Renamed from non-standard-icccm-encodings-alist.
+       (ctext-non-standard-encodings-regexp): New variable
+       (ctext-post-read-conversion): Full rewrite.
+       (ctext-non-standard-designations-alist): Renamed from
+       non-standard-designations-alist.
+       (ctext-pre-write-conversion): Full rewrite.
+       (define-coding-system): Doc fix (escape '"' by '\').
+
+2003-05-24  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (utf-16le, utf-16be-16be)
+       (utf-16le-with-signature, utf-16be-with-signature, utf-16):
+       Define :mime-text-unsuitable.  `utf-16{b,l}e...' renamed from
+       `-16-{b,l}e-' and aliases defined for the old names.
+
+       * international/mule.el (define-coding-system): Doc fix.
+
+2003-05-08  Dave Love  <fx@gnu.org>
+
+       * international/utf-7.el: New file.
+
+       * international/mule-conf.el (utf-7): New.
+
+2003-05-06  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-conf.el (utf-16-be)
+       (utf-16-be-with-signature): Cancel the previous change.
+       (utf-16): Add :endinan 'big.
+
+       * international/mule.el (define-coding-system): Fix docstring
+       about :bom and :endian.
+
+2003-04-30  Dave Love  <fx@gnu.org>
+
+       * mule-conf.el (utf-16-be)
+       (utf-16-be-with-signature): Comment-out :endian.
+
+       * mule-diag.el (describe-character-set): Fix
+       printing dimensions.  Use `\e,AW\e(B', not `x'.
+
+2003-04-12  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el: Register CDAC fonts in
+       face-font-rescale-alist instead of face-resizing-fonts.
+
+2003-03-28  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-conf.el (utf-16-le): Renamed from
+       utf-16-le-nosig.
+       (utf-16-be): Renamed from utf-16-be-nosig.
+       (utf-16-le-with-signature): Renamed from utf-16-le.
+       (utf-16-be-with-signature): Renamed from utf-16-be.
+       (utf-16): Set :bom to (utf-16-le-with-signature .
+       utf-16-be-with-signature).
+
+2003-02-12  Dave Love  <fx@gnu.org>
+
+       * language/georgian.el (georgian-ps, georgian-academy): New coding
+       system.
+
+       * language/chinese.el (chinese-big5-hkscs): New coding system.
+       (big5-hkscs, cn-big5-hkscs): New aliases.
+
+       * international/mule-conf.el (big5-hkscs, georgian-academy): New
+       charset.
+       (ibm1047): Doc fix.
+       (pt154): Add mime-charset.
+       (ptcp154, cp154): New aliases.
+
+2003-02-04  Dave Love  <fx@gnu.org>
+
+       * international/mule.el (charset-iso-final-char)
+       (define-coding-system): Doc fix.
+
+2003-01-30  Kenichi Handa  <handa@m17n.org>
+
+       * international/ccl.el (define-ccl-program): Fset charset-id
+       to charset-id-internal temporarily.
+
+2003-01-21  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-diag.el (list-block-of-chars): Use
+       decode-char instead of make-char.
+
+2003-01-10  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el: Enable the default fontset to use
+       unicode fonts for ASCII characters.
+       (x-decompose-font-name): Don't try to resolve PATTERN by
+       x-resolve-font-name.
+       (x-complement-fontset-spec): Never prepend an ASCII font.
+       (create-fontset-from-fontset-spec): If a fontset of the same name
+       already exists, override it instead of signalling an error.  Don't
+       turn `ascii' into `latin'.  Don't update fontset-alias-alist here.
+
+       * international/mule-conf.el (unicode-bmp): Delete duplicated
+       definition.  Give it :code-offset 0.
+
+       * international/mule-diag.el (print-fontset-element): New
+       function.
+       (print-fontset): Use print-fontset-element to print the elements
+       of a fontset.  Use it also to print fonts fallen back to the
+       default fontsets.
+
+       * term/x-win.el: Delete the code to create a fontset from the X
+       resource "Font".
+
+2003-01-09  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-diag.el (print-fontset): Insert proper
+       newline and indentation spaces.
+
+2003-01-07  Dave Love  <fx@gnu.org>
+
+       * emacs-lisp/byte-opt.el (side-effect-free-fns): Add langinfo,
+       multibyte-char-to-unibyte.
+
+       * emacs-lisp/cl-macs.el (cl-make-type-test): Use characterp.
+
+       * international/mule-cmds.el (find-coding-systems-for-charsets):
+       Use coding-system-type, coding-system-charset-list.
+       (standard-keyboard-coding-systems): Deleted.
+       (set-locale-environment): Maybe set keyboard coding system.  Avoid
+       typical warning about codeset in C locale.
+
+2003-01-06  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/fontset.el (x-complement-fontset-spec): If a
+       fontname doesn't conform to XLFD format, try to get XLFD name by
+       x-list-fonts.
+
+2002-12-08  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (mik, pt154): New charsets.
+
+       * language/cyrillic.el (mik, pt154): New coding systems.
+
+2002-12-05  Dave Love  <fx@gnu.org>
+
+       * international/characters.el: Move parts around so that syntax
+       definitions aren't overwritten wrongly.
+
+       * international/mule-diag.el (unicode-data): Fix treatment of
+       numeric-value fields.
+
+2002-12-01  Dave Love  <fx@gnu.org>
+
+       * progmodes/cap-words.el: New file.
+
+2002-11-07  Kenichi Handa  <handa@m17n.org>
+
+       The following changes are to make character composition happen
+       automatically on displaying.
+
+       * composite.el: Remove all autoload cookies.
+       (composition-function-table): Variable declaration moved from
+       composite.c.  Format changed.
+       (save-buffer-state): Copied from font-lock.el.
+       (auto-composition-chunk-size): New variable.
+       (auto-compose-chars): New function.  Set
+       auto-composition-function to it.
+       (toggle-auto-composition): New function.
+
+       * international/characters.el: Make all chararacters in the
+       charset tibetan to tibetan script.
+
+       * international/mule-conf.el (tibetan): Fix :code-space property.
+       (tibetan-1-column): Delete :superset property, add :code-offset
+       property.
+
+       * international/quail.el (quail-input-string-to-events): Don't
+       generate compose-chars-after events.
+
+       * language/devanagari.el: Register devanagari-composable-function
+       in composition-function-table for Devanagari characters.
+
+       * language/devan-util.el: Register devanagari-composable-pattern
+       in indian-composable-pattern.
+       (devanagari-composition-function): Add autoload cookie.  Change
+       arguments to conform to composition-function-table.
+
+       * language/european.el: Register combining characters in
+       composition-function-table.
+       (diacritic-composition-function): Change arguments to conform to
+       composition-function-table.
+
+       * language/indian.el (indian-composable-pattern): New variable.
+
+       * language/ind-util.el (indian-compose-region): Don't call
+       compose-chars-after, instead call a function registered in
+       composition-function-table.
+
+       * language/lao.el: Register lao-composition-function in
+       composition-function-table for Lao vowels and tones.
+       (lao): Don't use lao-post-read-conversion.
+
+       * language/lao-util.el (lao-post-read-conversion): Delete this
+       function.
+       (lao-composition-function): Change arguments to conform to
+       composition-function-table.
+
+       * language/thai.el: Register thai-composition-function in
+       composition-function-table for Thai vowels and tones.
+       (thai-tis620): Don't use thai-post-read-conversion.
+
+       * language/thai-util.el (thai-post-read-conversion): Delete this
+       function.
+       (thai-composition-function): Change arguments to conform to
+       composition-function-table.
+
+       * language/tibetan.el: Register tibetan-composition-function in
+       composition-function-table for Tibetan characters.
+
+       * language/tibet-util.el (tibetan-composition-function): Change
+       arguments to conform to composition-function-table.
+
+       * loadup.el: Load composite.
+
+2002-11-01  Dave Love  <fx@gnu.org>
+
+       * international/mule-diag.el (unicode-data): Find unicodedata-file
+       literally.
+
+2002-10-31  Dave Love  <fx@gnu.org>
+
+       * international/fontset.el: Doc fixes.
+       ("fontset-default"): Add iso8859-15.
+
+2002-10-30  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el ("fontset-default"): Add an entry for
+       `indian-is13194' charset.
+
+       * international/mule-conf.el (indian-is13194): Delete :unify-map
+       property.  Don't unify this charset.
+       (indian-2-column): Delete :superset property, add :code-offset
+       property.
+
+       * language/devan-util.el: Delete the superfluous autoload cookie
+       near the head of the file.
+       (devanagari-compose-region): Add autoload cookie.
+
+       * language/ind-util.el (indian-2-column-to-ucs-region): Add
+       autoload cookie.
+
+2002-10-29  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el ("fontset-default"): Add an entry for
+       `devanagari' script and `malayalam-glyph' charset.
+       (face-resizing-fonts): Register CDAC fonts.
+
+       * international/mule-conf.el (malayalam-glyph): New charset.
+
+2002-10-28  Dave Love  <fx@gnu.org>
+
+       * term/x-win.el: Fix typo in loop setting x-keysym-table.
+
+2002-10-27  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (utf-8-emacs): Delete :mime-charset.
+
+       * term/x-win.el: Remove some ancient compatibility code.  Populate
+       x-keysym-table.
+
+       * international/mule-cmds.el (wid-edit): Require when compiling.
+       (set-locale-environment): Check locale against coding system
+       aliases too.
+
+2002-10-25  Kenichi Handa  <handa@m17n.org>
+
+       * language/indian.el (in-is13194-devanagari): Fix
+       :post-read-conversion and :pre-write-conversion.
+
+2002-10-16  Dave Love  <fx@gnu.org>
+
+       * international/mule-cmds.el (charset): Supply doc, :tag.
+
+2002-10-16  Kenichi Handa  <handa@m17n.org>
+
+       * emacs-lisp/bytecomp.el (byte-compile-lapcode): Be sure to
+       return a unibyte string.
+
+2002-10-15  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (set-locale-environment): Delete
+       superfluous ')'s at the tail.
+
+2002-10-14  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/mule.el (define-coding-system): Fix typo;
+       "docode" -> "decode".
+
+2002-10-14  Dave Love  <fx@gnu.org>
+
+       * emacs-lisp/byte-opt.el (side-effect-free-fns): Add
+        string-make-unibyte string-make-multibyte string-to-multibyte
+        string-as-multibyte string-as-unibyte.
+
+2002-10-11  Dave Love  <fx@gnu.org>
+
+       * language/english.el (ibm1047, cp1047): New.
+
+       * international/mule-conf.el (alternativnyj): Use new table.
+       (cp866): Define standalone, not as alias.
+       (ibm866): Change alias.
+       (ibm1047): New.
+
+       * language/cyrillic.el (cyrillic-alternativnyj): Remove
+       mime-charset.  Use alternativnj charset.
+       (cp866): Remove alias.  Define standalone.
+
+2002-10-09  Dave Love  <fx@gnu.org>
+
+       * language/european.el ("Latin-2", "Latin-5"): Doc fix.
+
+       * language/cyrillic.el ("Bulgarian"): Fix input method and
+       charset.
+       ("Tajik", "Belarusian"): Fix charset.
+
+       * international/mule-cmds.el (describe-language-environment): Be
+       case-insensitive when looking for input methods.
+       (locale-name-match): Doc fix.
+       (locale-charset-match-p): New.
+       (set-locale-environment): Warn if coding system doesn't agree
+       with system locale.
+
+2002-10-09  Kenichi Handa  <handa@m17n.org>
+
+       * international/mule-cmds.el (select-safe-coding-system): If
+       :mime-charset property of a coding system is not equal to that
+       coding system, don't show that :mime-charset name.
+
+2002-10-06  Dave Love  <fx@gnu.org>
+
+       * international/quail.el (quail-help): Fix underlining.
+
+       * language/chinese.el (chinese-gb18030, gb18030)
+       ("Chinese-GB18030"): New.
+
+       * international/mule-cmds.el (locale-language-names): Add GB18030.
+
+       * international/swedish.el: Don't require latin-1.
+
+2002-10-05  Dave Love  <fx@gnu.org>
+
+       * language/czech.el ("Czech"):
+       * language/slovak.el ("Slovak"):
+       * language/romanian.el ("Romanian"): Remove unibyte-syntax property.
+
+       * language/greek.el ("Greek"): Remove unibyte-syntax property.
+       (cp737): New coding system.
+
+       * language/european.el: Remove unibyte-syntax properties.
+       Augment some coding-system properties.
+
+       * international/mule-cmds.el (set-language-environment): Check
+       for charset property of environment.
+       (language-info-alist): Doc fix.
+
+       * Makefile.in (DONTCOMPILE): Remove latin-N.el.
+
+       * international/characters.el: Add Latin-1.
+
+       * international/latin-1, international/latin-2, international/latin-3:
+       * international/latin-4, international/latin-5, international/latin-8:
+       * international/latin-9: Deleted.
+
+       * loadup.el: Remove international/latin-N.el.
+
+       * case-table.el (set-case-syntax-charset, set-case-syntax-1)
+       (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
+       Undo last changes.
+
+       * international/mule-diag.el (unicode-data): Check that
+       `unicodedata-file' exists.
+
+2002-10-05  Kenichi Handa  <handa@m17n.org>
+
+       * international/fontset.el (charset-script-alist): Fix script
+       names.
+
+2002-10-01  Kenichi Handa  <handa@m17n.org>
+
+       * international/latin-1.el: Bind set-case-syntax-charset to
+       iso-8859-1.  Never provide latin-1.
+
+       * international/latin-2.el: Bind set-case-syntax-charset to
+       iso-8859-2.  Never provide latin-2.
+
+       * international/latin-3.el: Bind set-case-syntax-charset to
+       iso-8859-3.  Never provide latin-3.
+
+       * international/latin-4.el: Bind set-case-syntax-charset to
+       iso-8859-4.  Never provide latin-4.
+
+       * international/latin-5.el: Bind set-case-syntax-charset to
+       iso-8859-9.  Never provide latin-5.
+
+       * international/latin-8.el: Bind set-case-syntax-charset to
+       iso-8859-14.  Never provide latin-8.
+
+       * international/latin-9.el: Bind set-case-syntax-charset to
+       iso-8859-15.  Never provide latin-9.
+
+       * case-table.el (set-case-syntax-set-multibyte): This variable
+       deleted.
+       (set-case-syntax-charset): New variable.
+       (set-case-syntax-1): New function.
+       (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax):
+       Call set-case-syntax-1 on arguments.
+
+       * international/mule-cmds.el (set-language-environment): Delete
+       unnecessary setup of syntax/case for unibyte case.
+
+2002-09-27  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/fontset.el (generate-fontset-menu): Exclude the
+       default fontset.
+
+       * faces.el (describe-face): Describe :fontset property too.
+
+2002-09-25  Dave Love  <fx@gnu.org>
+
+       * international/characters.el: Fix last change.
+
+2002-09-23  Dave Love  <fx@gnu.org>
+
+       * international/characters.el: Don't set char width of CJK
+       charsets generally.  Add some non-word syntax cases.
+       (korean-ksc5601): Fix ranges with symbol syntax.
+
+2002-09-14  Dave Love  <fx@gnu.org>
+
+       * Makefile.in (DONTCOMPILE): Add indian.el.
+
+       * language/ind-util.el:
+       (ucs-bengali-to-is13194-alist, ucs-assamese-to-is13194-alist)
+       (ucs-gurmukhi-to-is13194-alist, ucs-gujarati-to-is13194-alist)
+       (ucs-oriya-to-is13194-alist, ucs-tamil-to-is13194-alist)
+       (ucs-telugu-to-is13194-alist, ucs-malayalam-to-is13194-alist):
+       Remove declarations and let-bind them in re-written top-level loop
+       over scripts, including ucs-devanagari-to-is13194-alist.
+
+2002-09-14  Dave Love  <fx@gnu.org>
+
+       * international/mule-cmds.el (charset): Move.
+       (language-info-custom-alist): Move.  Alter :set.
+       (find-coding-systems-for-charsets): Check charset type before
+       getting :charset-list.
+
+       * language/ind-util.el (iscii-to-ucs-region): Fix typo.
+
+2002-09-12  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/mule-conf.el (emacs-mule, iso-2022-7bit)
+       (iso-2022-7bit-ss2, iso-2022-7bit-lock, iso-2022-8bit-ss2)
+       (compound-text, ctext-no-compositions): Cancel provious change.
+
+2002-09-09  Dave Love  <fx@gnu.org>
+
+       * wid-edit.el (widget-string-complete): New.
+       (widget-coding-system-prompt-value-history): Deleted.
+       (coding-system): Use coding-system-value-history.
+
+       * international/mule-cmds.el (charset): New widget.
+       (language-info-custom-alist): Use it.
+       (default-input-method): Modify :type.
+
+2002-09-08  Dave Love  <fx@gnu.org>
+
+       * language/ind-util.el (ucs-devanagari-to-is13194-alist)
+       (indian-glyph-char, indian-char-glyph): Delete.
+       (is13194-default-repertory): Rename from is13194-default-repartory.
+       (iscii-to-ucs-region): Hoist evals from loop.
+
+       * language/devan-util.el (dev-charseq): Avoid indian-glyph-char.
+
+       * language/indian.el (indian-script-table)
+       (ccl-encode-indian-glyph-font): Delete.
+
+       * international/mule-conf.el (emacs-mule, iso-2022-7bit)
+       (iso-2022-7bit-ss2, iso-2022-7bit-lock, iso-2022-8bit-ss2)
+       (compound-text, ctext-no-compositions): Remove :charset-list.
+
+       * international/mule-cmds.el (language-info-custom-alist): New.
+       (input-method-activate-hook, input-method-inactivate-hook)
+       (input-method-after-insert-chunk-hook)
+       (input-method-use-echo-area, set-language-environment-hook)
+       (exit-language-environment-hook): Customize.
+       (find-coding-systems-for-charsets): Rewritten.
+       (default-input-method): Add :link.
+
+2002-09-08  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (eight-bit): Add :docstring,
+       :short-name properties.
+       (cp851): Doc fix.
+       (unicode-bmp): New.
+
+       * case-table.el (set-case-syntax-pair): Remove check on byte lengths.
+
+       * language/european.el (cp858): New.
+       ("Turkish"): Add special case rules.
+
+2002-09-05  Dave Love  <fx@gnu.org>
+
+       * international/characters.el: Make \e,_/\e(B and \e,A\7f\e(B a case pair.
+
+2002-09-03  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/mule-conf.el: Don't define the charset iso-8859-1
+       here, just setup its properties.
+
+2002-08-21  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/mule-conf.el (utf-8): Give :mime-charset property.
+
+2002-08-20  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/characters.el: Remove duplicated case setting for
+       Cyrillic and Greek letters.   Don't setup printable-chars here.
+
+       * case-table.el (describe-buffer-case-table): Handle the case
+       that KEY is a cons within map-char-table.
+
+2002-08-19  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/characters.el: Fix categories ?A and ?C.
+       Treat ASCII characters as `latin' script.
+
+2002-08-18  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/fontset.el (fontset-plain-name): If the fontset
+       name doesn't ends with "-fontset-*", use family name as the first
+       part of the plain name.
+       (create-fontset-from-ascii-font): If "fontset-startup" is not yet
+       created, use that name for the fontset.  Fix arguments to
+       subst-char-in-string.
+
+2002-08-18  Dave Love  <fx@gnu.org>
+
+       * term.el (term-char-mode): Remove generic-character-list code.
+
+       * ruler-mode.el (ruler-mode-character-validate): Use characterp.
+
+       * wid-edit.el (character): Use characterp.
+
+       * international/mule-diag.el (describe-coding-system): Add utf-16 case.
+
+       * language/viet-util.el (viet-encode-viscii-char): Use encode-char.
+
+       * language/cyrillic.el ("Tajik", "Bulgarian", "Belarusian"):
+       Add charset.
+       ("Ukrainian"): New.
+
+       * language/georgian.el (georgian-ps): New coding system.
+
+2002-08-15  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/mule-cmds.el (reset-language-environment):
+       Don't set nonascii-translation-table and nonascii-insert-offset.
+       Call set-unibyte-charset, not set-primary-charset.
+       (nonascii-translation-table, nonascii-insert-offset):
+       Declare these variable as obsolete ones.
+       (set-language-environment): Call set-unibyte-charset, not
+       set-primary-charset.  Call set-charset-priority with `charset'
+       info of the language environment.
+
+2002-08-08  Kenichi Handa  <handa@etl.go.jp>
+
+       * tar-mode.el (tar-extract): Fix previous change.
+
+2002-08-02  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/characters.el (next-word-boundary-han):
+       Don't treat katakana following han characters as a part of a word.
+
+2002-08-01  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/characters.el: Call map-charset-chars on big5 (not
+       chinese-big5-1/2) to set categories `c', `C', and `|'.
+       (next-word-boundary-han): New function.  Register it in
+       next-word-boundary-function-table.
+       (next-word-boundary-kana): Likewise.
+
+2002-07-31  Kenichi Handa  <handa@etl.go.jp>
+
+       * arc-mode.el (archive-file-name-coding-system): New variable.
+       Make it permanent-local.
+       (byte-after, bref, insert-unibyte): New function.  Change most of
+       char-after, aref, insert to them respectively.
+       (archive-mode): Set archive-file-name-coding-system.
+       (archive-summarize): Don't change the buffer's multibyteness.
+       (archive-extract): Inherit archive-file-name-coding-system from
+       archive-superior-buffer.  Bind coding-system-for-write to
+       archive-file-name-coding-system.
+       (archive-*-write-file-member): Encode ENAME by
+       archive-file-name-coding-system.  Bind coding-system-for-write to
+       no-conversion.
+       (archive-rename-entry): Encode the filename by
+       archive-file-name-coding-system.
+       (archive-mode-revert): Don't change the buffer's multibyteness.
+       (archive-arc-summarize, archive-lzh-summarize)
+       (archive-zoo-summarize): Don't change the buffer's multibyteness.
+       Decode filenames by archive-file-name-coding-system.
+       (archive-arc-rename-entry, archive-zip-chmod-entry): Don't change
+       the buffer's multibyteness.
+
+       * tar-mode.el (tar-file-name-coding-system): New variable.
+       Make it permanent-local.
+       (tar-header-block-tokenize): Decode filename and linkname by
+       tar-file-name-coding-system.
+       (tar-header-block-checksum): Call multibyte-char-to-unibyte to get
+       the byte value of eight-bit chars.
+       (tar-summarize-buffer): Call set-buffer-multibyte with METHOD
+       `to'.  Delete unnecessary call of position-bytes.
+       (tar-mode): Set tar-file-name-coding-system.  Delete unnecessary
+       call of position-bytes.
+       (tar-extract): Simplify by calling decode-coding-region with
+       DESTINATION argument.  Don't toggle multibyteness of tar buffer.
+       (tar-copy): Don't toggle multibyteness of tar buffer.
+       (tar-expunge): Likewise.
+       (tar-clear-modification-flags): Delete unnecessary call of
+       position-bytes.
+       (tar-rename-entry): Call tar-alter-one-field with encoded new name.
+       (tar-alter-one-field): Don't toggle multibyteness of tar buffer.
+       Convert new-data-string by string-to-multibyte before inserting it.
+       (tar-subfile-save-buffer): Don't toggle multibyteness of tar
+       buffer.  Simplify by calling encoding-coding-region with
+       DESTINATION argument.
+       (tar-mode-write-file): Delete unnecessary call of byte-to-position.
+
+2002-07-30  Dave Love  <fx@gnu.org>
+
+       * international/titdic-cnv.el (quail-cxterm-package-ext-info): Doc fix.
+
+       * emacs-lisp/copyright.el (copyright-regexp): Remove redundancy.
+
+2002-07-26  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/characters.el: Setup char-script-table.
+
+       * international/fontset.el: Setup the default fontset by the new
+       script based way.
+       (x-complement-fontset-spec): Change the format of arg FONTLIST to
+       an alist of charsets vs font name lists.
+       (charset-script-alist): New variable.
+       (create-fontset-from-fontset-spec): Allow script name in
+       FONTSET-SPEC.  If charset is specified in FONTSET-SPEC, change it
+       to the corresponding script name.
+       (create-fontset-from-ascii-font): Slightly tuned.
+
+       * international/mule-conf.el (devanagari-glyph): New charset.
+       Unify these charsets: korean-ksc5601, ipa, tibetan, ethiopic,
+       japanese-jisx0208, japanese-jisx0212, japanese-jisx0213-1,
+       japanese-jisx0213-2.
+
+       * international/mule-diag.el (print-fontset): Use describe-vector
+       to handle a char table returned by fontset-info.
+
+       * language/indian.el: Don't register ccl-encode-indian-glyph-font
+       and ccl-encode-unicode-font in font-ccl-encoder-alist.
+
+2002-07-18  Dave Love  <fx@gnu.org>
+
+       * startup.el (fancy-splash-head): Warn about status.
+       (fancy-splash-tail): Copyright up-date.
+
+2002-07-17  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/mule-util.el (detect-coding-with-priority):
+       Fix the place of using `,' marker in backguote form.
+
+2002-07-12  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (mule-unicode-e000-ffff): Set :max-code.
+
+       * international/mule-util.el (with-coding-priority): Fix.
+
+       * international/mule.el (set-coding-priority): Fix obsolete spec.
+
+2002-07-05  Dave Love  <fx@gnu.org>
+
+       * international/mule-cmds.el (leim-list-header): Add coding tag.
+
+2002-07-05  Dave Love  <fx@gnu.org>
+
+       * international/mule-cmds.el (find-coding-systems-region)
+       (language-info-alist, reset-language-environment, princ-list): Doc
+       fix.
+       (input-method-verbose-flag): Fix :type.
+       (set-locale-environment): Revert last change.
+
+2002-07-03  Dave Love  <fx@gnu.org>
+
+       * international/mule.el (set-char-table-default): Make obsolete.
+
+2002-07-01  Dave Love  <fx@gnu.org>
+
+       * language/devanagari.el ("Devanagari"): Fix coding-system,
+       coding-priority.
+
+       * international/mule-diag.el (describe-char-after): Modify display
+       list processing.
+       (unicodedata-file, unicodedata-find): New.
+
+2002-06-29  Dave Love  <fx@gnu.org>
+
+       * emacs-lisp/bytecomp.el (batch-byte-compile-if-not-done): Add
+       autoload cookie.
+
+       * international/ja-dic-cnv.el (skkdic-convert): Add coding tag.
+
+2002-06-28  Dave Love  <fx@gnu.org>
+
+       * international/mule-util.el (detect-coding-with-priority):
+       Rewritten.
+
+2002-06-27  Dave Love  <fx@gnu.org>
+
+       * composite.el (compose-string): Doc fix.
+
+       * language/georgian.el ("Georgian"): Delete code-pages feature,
+       add nonascii-translation.
+
+       * language/european.el ("German", "French", "Spanish"): Add
+       latin-9 as alternative coding system.
+       ("Slovenian", "Polish"): Add windows-1250 as alternative coding
+       system.
+       ("Dutch"): Add latin-9 as alternative coding system.  Add input
+       method.
+       ("Turkish"): Add windows-1254 and latin-3 as alternative coding
+       systems.
+       ("Lithuanian", "Latvian"): Add windows-1257 as alternative coding
+       system.
+
+       * emacs-lisp/byte-opt.el (side-effect-free-fns): Add decode-char,
+       encode-coding-char.
+       (side-effect-and-error-free-fns): Add charsetp, max-char,
+       primary-charset.
+
+       * simple.el: Don't require cl when compiling.
+
+       * Makefile.in (DONTCOMPILE): Fix duplicates.
+
+       * emacs-lisp/bytecomp.el (byte-compile-insert-header): Fix typo.
+
+       * international/mule.el: Doc fixes.
+       (load-with-code-conversion): Fix coding-system-type test.
+
+       * international/mule-cmds.el (sort-coding-systems): Comment out
+       iso-2022 case.
+       (encoded-string-description): Fix coding-system-type test.
+
+2002-06-24  Dave Love  <fx@gnu.org>
+
+       * international/characters.el: Make korean-ksc5601 double-width.
+
+       * international/mule.el (auto-coding-regexp-alist): Recognize
+       Emacs 20/1 byte-compiled files.
+
+       * international/mule-conf.el (file-coding-system-alist): Change
+       .elc to utf-8-emacs.
+
+       * emacs-lisp/bytecomp.el (byte-recompile-directory)
+       (batch-byte-recompile-directory): Update from trunk.
+       (byte-compile-fix-header): Adjust for use of utf-8-emacs.
+       (byte-compile-insert-header): Update magic number.  Add ballast.
+       (map-char-table): Use byte-compile-funarg-2.
+
+2002-06-16  Dave Love  <fx@gnu.org>
+
+       * international/mule-cmds.el (set-locale-environment): Use
+       locale-codeset.
+
+2002-06-15  Dave Love  <fx@gnu.org>
+
+       * language/cyrillic.el ("Belarusian"): Doc fix.
+       (cp1125, koi8-t): Doc fix.
+
+       * international/mule-cmds.el (find-multibyte-characters): Doc fix.
+       (find-multibyte-characters): Don't test for charset `unknown'.
+       (locale-language-names): Change or add: be, bs, cy, mk, ru.koi8,
+       ru, sr_YU, tg, wa, zh.gbk.
+       (locale-language-names): Change sp to Cyrillic.
+       (locale-charset-language-names): Match @euro after utf-8.
+
+2002-06-13  Dave Love  <fx@gnu.org>
+
+       * language/chinese.el (chinese-gbk, gbk, cp936, windows-936): New
+       coding systems.
+       ("Chinese-GBK"): New environment.
+
+2002-06-12  Dave Love  <fx@gnu.org>
+
+       * language/chinese.el (chinese-gbk, gbk, cp936, windows-936): New
+       coding systems.
+       ("Chinese-GBK"): New environment.
+
+       * language/thai-util.el: Remove redundant unicodes in
+       category-setting.
+
+       * language/lao-util.el: Remove redundant unicodes in
+       category-setting.
+
+       * international/mule-conf.el (japanese-jisx0213-1)
+       (japanese-jisx0213-2): Add unify-map.
+
+2002-06-12  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/quail.el (quail-update-leim-list-file): Force
+       writing the file by iso-2022-7bit.
+
+       * international/titdic-cnv.el (miscdic-convert): Force writing the
+       file by iso-2022-7bit.
+
+       * international/mule.el (define-charset): Change the attribute
+       :parents to :subset or :superset.
+
+       * international/mule-conf.el: Adjusted for the change of
+       define-charset (:parent -> :subset or :superset).
+
+       * international/characters.el: Fix the last change.
+
+2002-06-11  Dave Love  <fx@gnu.org>
+
+       * language/cyril-util.el (cyrillic-encode-koi8-r-char)
+       (cyrillic-encode-alternativnyj-char): Fixed.
+       (standard-display-cyrillic-translit): Remove redundant unicodes.
+
+2002-06-10  Dave Love  <fx@gnu.org>
+
+       * language/cyrillic.el ("Tajik", "Bulgarian", "Belarusian"): New
+       environments.
+
+       * international/mule-conf.el (control-1): New charset.
+       (eight-bit-control, eight-bit-graphic): Redefined to use raw-bytes
+       space.
+       (korean-ksc5601): Redefine to use code-offset and unify-map.
+
+2002-06-07  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (tcvn-5712): New charset.
+
+       * language/vietnamese.el (vietnamese-tcvn, tcvn): New coding
+       system.
+       ("Vietnamese"): Doc fix.
+
+2002-06-06  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (windows-936): New alias.
+
+       * cus-start.el: Add scalable-fonts-allowed.
+
+       * international/characters.el: Reinstate various CJK syntax and
+       category setup.  Remove obsolete syntax setting in Greek section.
+       Optimize the char tables.
+
+       * language/thai.el ("Thai"): Add cp874, iso-8859-11 coding
+       systems.
+
+       * language/vietnamese.el ("Vietnamese"): Add windows-1258 coding
+       system.
+
+       * language/greek.el ("Greek"): Add windows-1253, cp851, cp869
+       coding systems.
+
+       * language/romanian.el ("Romanian"): Add iso-latin-10 coding
+       system.
+
+2002-06-03  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/characters.el (printable-chars): Setup correctly.
+
+2002-06-02  Dave Love  <fx@gnu.org>
+
+       * cus-start.el: Add selection-coding-system.
+
+       * language/hebrew.el ("Hebrew"): Add windows-1255, cp862 coding
+       systems.
+
+       * language/china-util.el (post-read-decode-hz)
+       (pre-write-encode-hz): Moved from chinese.el.
+       (big5-to-flat-code, flat-code-to-big5, euc-to-flat-code)
+       (flat-code-to-euc, expand-euc-big5-alist, big5-to-cns): Deleted.
+
+       * language/chinese.el (post-read-decode-hz)
+       (pre-write-encode-hz): Moved to china-util.el.
+
+       * case-table.el (set-case-syntax-pair): Test again for equal byte
+       lengths of the pair.
+
+       * international/characters.el: Add Vietnamese category to
+       equivalent unicodes.
+
+2002-05-31  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (chinese-sisheng, ipa)
+       (indian-is13194, tibetan, ethiopic): Add :unify-map.
+
+       * international/mule-diag.el (describe-character-set): Account for
+       more than two dimensions of possibly different size.
+       (describe-current-coding-system): Add selection-coding-system.
+
+       * international/mule-cmds.el (unify-8859-on-encoding-mode)
+       (unify-8859-on-decoding-mode): Moved from mule.el.
+
+       * international/mule.el (unify-8859-on-encoding-mode)
+       (unify-8859-on-decoding-mode): Remove :init-value.
+       (charset-chars): Add optional dimension arg.
+       (unify-8859-on-encoding-mode, unify-8859-on-decoding-mode): Moved
+       to mule-cmds.el.
+
+2002-05-31  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/fontset.el: Change registry for japanese-jisx0208
+       to "JISX0208*" in the default fontset.
+       (font-encoding-alist): Add an entry for "JISX0208.1983" and
+       "ISO10646.indian-1".
+
+2002-05-30  Kenichi Handa  <handa@etl.go.jp>
+
+       * language/japanese.el (japanese-iso-7bit-1978-irv): Add
+       `designation' to :flags, `ascii' to :charset-list.
+
+       * international/mule.el (define-charset): New args :min-code and
+       :max-code.
+       (coding-system-iso-2022-flags): Add use-roman, use-oldjis.
+
+       * international/mule-conf.el (chinese-gbk): Change :code-offset to
+       #x160000.
+       (gb18030-2-byte, gb18030-4-byte-bmp, gb18030-4-byte-smp,
+       gb18030-4-byte-ext-1, gb18030-4-byte-ext-2, gb18030): New
+       charsets.
+
+2002-05-29  Dave Love  <fx@gnu.org>
+
+       * language/thai.el (iso-8859-11): New coding system.
+
+       * international/mule-conf.el: Doc fixes.
+       (iso-8859-11): New.
+
+2002-05-28  Dave Love  <fx@albion.dl.ac.uk>
+
+       * cus-start.el (scalable-fonts-allowed): Add.
+
+2002-05-27  Dave Love  <fx@gnu.org>
+
+       * international/mule.el (unify-8859-on-encoding-mode)
+       (unify-8859-on-decoding-mode): Dummy versions.
+
+       * international/ucs-tables.el: Removed.
+
+       * Makefile.in (DONTCOMPILE): Add language/chinese.el,
+       language/japanese.el.
+
+       * international/mule-conf.el: Doc fixes.
+       (cp936): New alias.
+       (cp720, cp858): New charsets.
+
+       * mail/sendmail.el (mail-recover-1, mail-recover): Use utf-8-emacs
+       coding system, not emacs-mule.
+
+       * files.el (revert-buffer, recover-file): Likewise.
+
+       * desktop.el (desktop-save): Likewise.
+
+2002-05-26  Dave Love  <fx@gnu.org>
+
+       * international/mule.el (with-category-table): Use make-symbol.
+       (coding-system-list): Use coding-system-aliases.
+       (make-translation-table): Don't deal with generic characters.
+
+       * international/mule-util.el: (coding-system-post-read-conversion)
+       (coding-system-pre-write-conversion)
+       (coding-system-translation-table-for-decode)
+       (coding-system-translation-table-for-encode): Get the right
+       properties.
+       (with-coding-priority): New macro.
+       (detect-coding-with-language-environment): Use it.
+       (coding-system-equal): Use coding-system-plist.
+
+       * encoded-kb.el: (encoded-kbd-setup-keymap) <ccl>:
+       Use :valid property.
+
+       * mule-cmds.el (encode-coding-char): Use
+       find-coding-systems-string.  Don't use make-char.
+       (describe-language-environment): Use coding-system-aliases.
+       (prefer-coding-system): Doc fix.
+
+       * mule-diag.el (describe-current-coding-system): Fix aliases
+       listing.
+       (print-iso-2022-flags): Deleted.
+       (print-designation): Partly re-written.
+       (describe-coding-system): Deal with iso-2022 designations, flags.
+       Fix shift_jis case.
+       (describe-char-after): Use characterp.  Print explicit unicode.
+       Remove some obsolete code.
+       (print-coding-system-briefly): Fix printing aliases.
+       (print-coding-system): Use coding-system-aliases.
+       (mule-diag): Don't list coding categories.
+
+       * mule-conf.el: Doc fixes.  Remove redundant
+       :long-name properties.  Re-order charset priorities.
+       (binary): New alias.
+       (iso-8859-16): Fix nickname.
+       (define-iso-single-byte-charset): Un-define after use.
+
+2002-05-26  Dave Love  <fx@gnu.org>
+
+       * international/mule.el (coding-system-iso-2022-flags): Revert
+       last change.
+
+2002-05-25  Dave Love  <fx@gnu.org>
+
+       * international/characters.el: Additional double width
+       specifications.
+
+       * international/mule-diag.el (print-coding-system): Incomplete
+       updates.
+       (describe-character-set): List more properties.
+       (print-fontset): Fix case of vector font-spec.
+       (describe-current-coding-system): Fix iso-7, iso-7-else.
+
+       * international/mule-conf.el (ibm866): Fix alias.
+       (iso-8859-16): Fix nickname.
+
+       * international/mule.el (coding-system-iso-2022-flags): Add
+       use-roman, use-oldjis.
+
+2002-05-23  Dave Love  <fx@gnu.org>
+
+       * language/ind-util.el: Avoid decode-char.
+       (indian--puthash-char, indian--puthash-c, indian--puthash-cv):
+       Use characterp, not char-valid-p.
+
+       * language/devan-util.el: Add coding tag, avoid decode-char.
+
+       * international/titdic-cnv.el: Add coding tag.
+       (tit-process-header): Add coding tag to output.
+
+       * language/thai.el (cp874, ibm874): New coding systems.
+
+       * emacs-lisp/byte-opt.el <side-effect-and-error-free-fns>: Add
+       character-p.
+
+       * language/european.el (cp852, ibm852, cp857, ibm857, cp860)
+       (ibm860, cp861, ibm861, cp863, cp865, ibm865, cp437, ibm437): New
+       coding systems.
+       <set-language-info-alist>: Avoid decode-char.
+
+       * language/hebrew.el (cp862, ibm862): New coding systems.
+
+       * language/greek.el (cp851, ibm851, cp869, ibm869): New coding
+       systems.
+
+       * language/cyrillic.el (cp855, ibm855): New coding systems.
+
+       * international/mule-conf.el: Avoid decode-char in top-level code
+       for self-inserting multibyte chars.
+       (cp437, cp737, cp775, cp851, cp852, cp855, cp857, cp855, cp857)
+       (cp860, cp861, cp862, cp863, cp864, cp865, cp869, cp874):  New
+       charsets.
+
+       * international/characters.el: Various simplifications and
+       additions.
+
+2002-05-22  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (code-pages): Provide, for
+       compatibility.
+
+       * international/code-pages.el: Removed.
+
+2002-05-22  Kenichi Handa  <handa@etl.go.jp>
+
+       * Makefile.in: Cancel the 2002-05-17 change of mine.
+
+       * international/fontset.el: Add setting for unicode font at the
+       end of the default fontset.
+
+2002-05-21  Dave Love  <fx@gnu.org>
+
+       * international/mule-conf.el (adobe-standard-encoding, symbol):
+       Adjust :code-space.
+       (ibm850): Add :ascii-compatible-p.
+
+2002-05-21  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/mule-conf.el (vietnamese-viscii-lower)
+       (vietnamese-viscii-upper): Supply them :code-offset, then unify by
+       mapping table.
+
+2002-05-20  Dave Love  <fx@gnu.org>
+
+       * cus-start.el: Add charset-map-directory.
+
+       * international/fontset.el (font-encoding-alist): Add
+       adobe-symbol.
+
+       * format.el (format-alist): Remove ibm, mac, hp entries (available
+       natively).
+
+       * language/romanian.el (iso-latin-10): Add :mime-charset.
+       ("Romanian"): Add doc.
+
+       * international/mule-conf.el (iso-8859-10, symbol)
+       (adobe-standard-encoding, ibm850): New charsets.
+       (iso-8859-13): Fix IR number, final char.
+       (file-coding-system-alist): Add .xml.
+
+       * language/european.el (iso-latin-6, iso-8859-10, latin-6)
+       (iso-latin-7, iso-8859-13, latin-7, hp-roman8, roman8)
+       (adobe-standard-encoding, cp850, ibm850): New coding systems.
+       ("Latin-6", "Latin-7"): New language environments.
+
+2002-05-19  Dave Love  <fx@gnu.org>
+
+       * Makefile.in (DONTCOMPILE): Remove ucs-tables, utf-8,
+       utf-8-subst; add vietnamese, cyrillic, czech.
+
+       * language/romanian.el (iso-latin-10): New coding system.
+
+       * international/mule-conf.el (emacs-mule): Set :charset-list,
+       consistent with coding-system-charset-list doc.
+       (iso-8859-16): New charset.
+
+       * international/mule-diag.el (describe-coding-system): Avoid error
+       for iso-2022, emacs-mule.
+
+2002-05-17  Dave Love  <fx@gnu.org>
+
+       * international/codepage.el: Most of code removed or commented
+       out.
+       (codepage-setup): Re-written as trivial, obsolete function.
+
+       * language/utf-8-lang.el ("UTF-8"): Use utf-8, not mule-utf-8.
+       Remove setup function.
+
+       * language/english.el (ebcdic-us, ebcdic-uk): New coding systems.
+
+       * Makefile.in (DONTCOMPILE): Add language/vietnamese.el,
+       language/cyrillic.el, language/czech.el.
+
+       * language/vietnamese.el (windows-1258, cp1258): New coding
+       systems.
+       (font-ccl-encoder-alist): Remove viscii, vscii.
+
+       * language/hebrew.el (windows-1255, cp1255): New coding systems.
+
+       * language/european.el (windows-1254, cp1254, windows-1257)
+       (cp1257, next, iso-latin-7, iso-8859-13, latin-7): New coding
+       systems.
+       ("Latin-7", "Lithuanian", "Latvian"): Don't require code-pages.
+
+       * language/greek.el (windows-1253, cp1253): New coding systems.
+
+       * international/mule-conf.el (ebcdic-us, ebcdic-uk): Change map
+       file name.
+       (windows-1253, windows-1254, windows-1255, windows-1256)
+       (windows-1257, windows-1258, next): New charsets.
+
+       * international/utf-8.el, international/utf-8-subst.el: Removed.
+
+       * international/mule.el: Doc fixes.
+       (charset-list, generic-char-p, set-coding-priority): Make
+       obsolete.
+       (coding-system-get): Try to convert old-style symbol to keyword.
+       (define-charset): Purecopy strings in property list.
+       (define-coding-system): Purecopy docstring.
+
+       * international/mule-diag.el (list-character-sets-2): Avoid
+       charset-bytes.
+       (list-iso-charset-chars, list-non-iso-charset-chars): Deleted.
+       (list-block-of-chars): Re-written.
+       (describe-character-set): Show more properties.
+       (describe-char-after): Correct codepoint display.
+       (print-coding-system): Use symbolic types.
+
+2002-05-17  Kenichi Handa  <handa@etl.go.jp>
+
+       * Makefile.in: Be sure also to run emacs with LANG=C.
+
+2002-05-16  Dave Love  <fx@gnu.org>
+
+       * international/mule-diag.el: Doc fixes.
+       (sort-charset-list, charset-multibyte-form-string): Removed.
+       (list-character-sets, list-character-sets-1)
+       (list-character-sets-2): Re-written.
+       (non-iso-charset-alist): Set to nil and made obsolete.
+       (decode-codepage-char): Re-written and made obsolete.
+       (read-charset): Don't use non-iso-charset-alist.
+       (describe-coding-system): Use keyword properties.
+       (describe-character-set): Re-written.
+
+       * international/mule-conf.el (koi8-u, koi8-t, georgian-ps)
+       (windows-1250, windows-1251, windows-1252, cp1125, ebcdic-us)
+       (ebcdic-uk): New charsets.
+
+       * language/cyrillic.el (koi8-u, koi8-t, windows-1251, cp1125): New
+       coding systems.
+
+       * language/european.el (windows-1252): New coding system.
+
+2002-05-16  Kenichi Handa  <handa@etl.go.jp>
+
+       * Makefile.in: By sure to run emacs with LC_ALL=C.
+
+       * international/encoded-kb.el (encoded-kbd-handle-8bit): Call
+       encoded-kbd-self-insert-iso2022-8bit with argument 1.
+       (encoded-kbd-self-insert-charset): New function.
+       (encoded-kbd-setup-keymap): Handle a coding-system of type
+       charset.
+       (encoded-kbd-mode): Likewise.
+
+2002-05-15  Dave Love  <fx@gnu.org>
+
+       * international/mule-cmds.el (set-locale-environment): Comment out
+       set-keyboard-coding-system stuff.
+
+2002-05-14  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/mule.el (define-coding-system): Docstring
+       fixed (sjis->shift-jis).
+
+       * international/mule-conf.el: Use decode-char instead of
+       make-char.
+
+       * international/encoded-kb.el
+       (encoded-kbd-self-insert-iso2022-8bit): New arg ARG.  Directly
+       call self-insert-command.   This is a temporary workaround to
+       make it work with latin-1.
+       (encoded-kbd-mode): Change `sjis' to `shift-jis'.
+
+       * international/characters.el: Setup char-width-table for CJK
+       characters.
+
+2002-05-15  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/ja-dic-utl.el (skkdic-jisx0208-hiragana-block):
+       Fix the initial value to specify character range of
+       japanese-jisx0208, not unicode.
+
+       * international/characters.el: Set syntax/category for
+       japanese-jisx0208.
+
+2002-05-14  Dave Love  <fx@gnu.org>
+
+       * mail/sendmail.el (sendmail-send-it): Use :mime-charset, not
+       mime-charset.
+
+       * language/vietnamese.el, language/korean.el, language/japanese.el:
+       * language/hebrew.el, language/greek.el, language/chinese.el:
+       Fix :mime-charset properties.
+
+       * language/cyrillic.el (cyrillic-iso-8bit, cyrillic-koi8)
+       (cyrillic-alternativnyj): Fix :mime-charset.
+       (cp878, cp866): New alias.
+
+       * language/european.el: Fix mime-charset properties.
+
+       * international/mule-cmds.el (sort-coding-systems)
+       (select-safe-coding-system, select-message-coding-system): Use
+       :mime-charset, not 'mime-charset.
+
+       * international/mule-conf.el: Add various :mime-charset
+       properties.
+
+2002-05-13  Dave Love  <fx@gnu.org>
+
+       * international/encoded-kb.el (encoded-kbd-self-insert-ccl): Fix
+       getting decoder.
+       (encoded-kbd-mode): Fix code for coding system type and
+       designations.
+
+       * international/mule-conf.el: Speling fixes.
+
+2002-05-13  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/fontset.el (fontset-plain-name): Handle the case
+       that size, weight, slant are not specified in the fontset name.
+
+2002-05-10  Yong Lu <lyongu@asia-infonet.com>
+
+       * language/greek.el (greek-iso-8bit): Fix typo.
+
+2002-05-10  Kenichi Handa  <handa@etl.go.jp>
+
+       * language/chinese.el (chinese-big5): Change :coding-type to
+       `charset'.
+
+2002-05-09  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/characters.el: Change encoding to utf-8-emacs.
+       Remove apparent duplicate codes.
+
+2002-05-07  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/fontset.el: Change the registry for
+       chinese-gb2312 and add the registry for chinese-gbk.
+
+       * international/mule.el (charset-chars): Fix typo.
+
+       * international/mule-conf.el (chinese-gbk): New charset.
+
+       * international/titdic-cnv.el (titdic-convert): Read into a
+       unibyte buffer then make the buffer multibyte.
+
+2002-03-07  Kenichi Handa  <handa@etl.go.jp>
+
+       * international/mule-conf.el (utf-16-le): Use :bom attribute
+       instead of :signature.
+       (utf-16-be): Likewise.
+
+2002-03-05  Kenichi Handa  <handa@etl.go.jp>
+
+       * language/czech.el ("Czech"): Set `iso-8859-2' for
+       `nonascii-translation'.
+
+       * language/romanian.el ("Romanian"): Likewise.
+
+       * language/slovak.el ("Slovak"): Likewise.
+
+       * international/characters.el: Optimize calls of
+       modify-category-entry.
+
+2002-03-01  Kenichi Handa  <handa@etl.go.jp>
+
+       * bindings.el: Don't bind multibyte characters to
+       self-insert-command here.  It's done in mule-conf.el
+
+       * case-table.el (set-case-syntax-offset): Variable deleted.
+       (set-case-syntax-1): Function deleted.  Callers changed.
+       (set-case-syntax-delims): Don't check byte length of characters.
+
+       * isearch.el (isearch-mode-map): Call set-char-table-range to bind
+       characters to isearch-printing-char.
+
+       * loadup.el: Don't load "international/utf-8".  Don't call
+       update-coding-systems-internal.  Bind coding-system-for-write to
+       `utf-8' while writing fns-XXX.el.  Call clear-charset-maps before
+       dumping.
+
+       * version.el (emacs-version): Set to "22.0.0".
+
+       * emacs-lisp/regexp-opt.el (regexp-opt-charset): Adjusted for the
+       change of map-char-table.
+
+       * eshell/esh-mode.el: Adjusted for the change of map-char-table.
+
+       * international/characters.el: Adjusted for the deletion of
+       generic characters.
+
+       * international/code-pages.el (cp-make-translation-table,
+       cp-valid-codes, cp-fix-safe-chars): Deleted.  Caller changed.
+       (cp-make-coding-system): Call define-coding-system.
+
+       * international/fontset.el: Mostly re-written.
+
+       * international/ja-dic-cnv.el (skkdic-get-kana-compact-codes):
+       Call encode-char instead of split-char.
+
+       * international/ja-dic-utl.el (skkdic-jisx0208-hiragana-block):
+       Value changed.
+       (skkdic-lookup-key): Call encode-char instead of split-char.
+
+       * international/titdic-cnv.el (titdic-convert): Bind
+       coding-system-for-write to 'iso-2022-7bit.  Don't work on unibyte
+       buffer.
+
+       * international/latin-1.el: Don't bind set-case-syntax-offset.
+
+       * international/latin-2.el: Don't bind set-case-syntax-offset.
+
+       * international/latin-3.el: Don't bind set-case-syntax-offset.
+
+       * international/latin-4.el: Don't bind set-case-syntax-offset.
+
+       * international/latin-5.el: Don't bind set-case-syntax-offset.
+
+       * international/latin-8.el: Don't bind set-case-syntax-offset.
+
+       * international/latin-9.el: Don't bind set-case-syntax-offset.
+
+       * international/mule-cmds.el: Don't use coding category.  Call
+       set-coding-system-priority instead of set-coding-priority.
+       (sort-coding-systems): Call coding-system-priority-list to get the
+       most preferred one.
+       (select-safe-coding-system): Likewise.
+       (reset-language-environment): Order of coding system priority
+       changed.  Set primary charset to iso-8859-1.
+       (set-language-environment-coding-systems): Call
+       set-coding-system-priority instead of set-coding-priority.
+       (get-charset-property, put-charset-property): Moved to mule.el.
+
+       * international/mule-conf.el: Fully Re-written.
+
+       * international/mule-diag.el (print-designation): Arguments
+       changed.
+       (print-iso-2022-flags): New function.
+       (describe-coding-system): Adjusted for the new structure of coding
+       system.
+       (describe-current-coding-system): Likewise.
+
+       * international/mule.el (char-valid-p): Make it an alias of
+       characterp.
+       (define-charset): Fully re-designed.
+       (charset-quoted-standard-p): Deleted.
+       (charsetp): Moved to charset.c.
+       (charset-info, charset-id, charset-bytes, charset-width,
+       charset-directioin, charset-iso-graphic-plane,
+       charset-reverse-charset): Deleted.
+       (charset-dimension, charset-chars, charset-iso-final-char,
+       charset-description, charset-short-name, charset-long-name): Call
+       charset-plist instead of charset-info.
+       (charset-plist, set-charset-plist): Moved to charset.c.
+       (get-charset-property, put-charset-property): Moved from
+       mule-cmds.el.  Call charset-plist and set-charset-plist.
+       (make-char): Deleted.
+       (generic-char-p): Make it always return nil.
+       (decode-char, encode-char): Moved to charset.c.
+       (coding-spec-XXX-idx): Variables deleted.
+       (coding-system-iso-2022-flags): New variable.
+       (define-coding-system): New function.
+       (transform-make-coding-system-args, make-coding-system): Delete.
+       (set-coding-priority): Make it obsolete.
+       (after-insert-file-set-buffer-file-coding-system): Adjust for
+       the new coding system structure.
+       (find-new-buffer-file-coding-system): Likewise.
+
+       * language/chinese.el, language/cyrillic.el, language/european.el,
+       language/greek.el, language/hebrew.el, language/indian.el,
+       language/japanese.el, language/korean.el, language/lao.el,
+       language/thai.el, language/tibetan.el, language/vietnamese.el:
+       Call define-coding-system instead of make-coding-system.  All CCL
+       program deleted.
+
+       * textmodes/sgml-mode.el (sgml-mode-map): Use encode-char instead
+       of make-char.
+       (sgml-char-names-table): Iteration limit fixed.
+
+       * term/mac-win.el: Deleted unnecessary calls of set-fontset-font.
+       (ccl-encode-mac-roman-font): Delete.
+
+       * Makefile.in (DONTCOMPILE): Add latin1-disp.el, ucs-tables.el,
+       utf-8.el, and utf-8-subst.el as they can't be bytecompiled
+       currently.  This is just a temporary workaround.
+
+;; Local Variables:
+;; coding: iso-2022-7bit
+;; End:
+
+    Copyright (C) 2002 Free Software Foundation, Inc.
+  Copying and distribution of this file, with or without modification,
+  are permitted provided the copyright notice and this notice are preserved.
+
+;;; arch-tag: d0d613db-0a9b-459c-a1c7-8a1722c771c1
index c81db54c72cede44c252e4939fdfec66476ea09e..a221ccdf4a48287b36b85eb743cbc81ce588f152 100644 (file)
@@ -52,7 +52,9 @@ AUTOGENEL = loaddefs.el \
        finder-inf.el \
        subdirs.el \
        eshell/esh-groups.el \
-       mh-e/mh-loaddefs.el
+       mh-e/mh-loaddefs.el \
+       international/charprop.el \
+       international/uni-*.el
 
 # Files to compile before others during a bootstrap.  This is done to
 # speed up the bootstrap process.  The CC files are compiled first
@@ -69,7 +71,7 @@ COMPILE_FIRST = \
 
 # The actual Emacs command run in the targets below.
 
-emacs = EMACSLOADPATH=$(lisp) $(EMACS) $(EMACSOPT)
+emacs = EMACSLOADPATH=$(lisp) LC_ALL=C $(EMACS) $(EMACSOPT)
 
 # Common command to find subdirectories
 
@@ -96,12 +98,12 @@ $(lisp)/cus-load.el:
 custom-deps: $(lisp)/subdirs.el $(lisp)/loaddefs.el $(lisp)/cus-load.el doit
        wd=$(lisp); $(setwins_almost); \
        echo Directories: $$wins; \
-       $(emacs) -l cus-dep --eval '(setq generated-custom-dependencies-file "$(lisp)/cus-load.el")' -f custom-make-dependencies $$wins
+       LC_ALL=C $(emacs) -l cus-dep --eval '(setq generated-custom-dependencies-file "$(lisp)/cus-load.el")' -f custom-make-dependencies $$wins
 
 finder-data: $(lisp)/subdirs.el $(lisp)/loaddefs.el doit
        wd=$(lisp); $(setwins_almost); \
        echo Directories: $$wins; \
-       $(emacs) -l finder --eval '(setq generated-finder-keywords-file "$(lisp)/finder-inf.el")' -f finder-compile-keywords-make-dist $$wins
+       LC_ALL=C $(emacs) -l finder --eval '(setq generated-finder-keywords-file "$(lisp)/finder-inf.el")' -f finder-compile-keywords-make-dist $$wins
 
 $(lisp)/loaddefs.el:
        echo ";;; loaddefs.el --- automatically extracted autoloads" >> $@
@@ -116,7 +118,7 @@ $(lisp)/loaddefs.el:
 autoloads: $(lisp)/subdirs.el $(lisp)/loaddefs.el doit
        wd=$(lisp); $(setwins_almost); \
        echo Directories: $$wins; \
-       $(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
+       LC_ALL=C $(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
 
 $(lisp)/subdirs.el:
        $(MAKE) $(MFLAGS) update-subdirs
@@ -216,7 +218,7 @@ compile-after-backup: backup-compiled-files compile-always
 # new ones.
 
 recompile: doit mh-autoloads $(lisp)/progmodes/cc-mode.elc
-       $(emacs) --eval "(batch-byte-recompile-directory 0)" $(lisp)
+       LC_ALL=C $(emacs) --eval "(batch-byte-recompile-directory 0)" $(lisp)
 
 # CC Mode uses a compile time macro system which causes a compile time
 # dependency in cc-mode.elc on the macros in cc-langs.el and the
index 8fb9e239b1ca061dfd786656cfc1f054897a5c7b..3cfd07398c525e66f6e690793fd83d275185c6d9 100644 (file)
@@ -452,6 +452,10 @@ Archive and member name will be added."
 (make-variable-buffer-local 'archive-subfile-mode)
 (put 'archive-subfile-mode 'permanent-local t)
 
+(defvar archive-file-name-coding-system nil)
+(make-variable-buffer-local 'archive-file-name-coding-system)
+(put 'archive-file-name-coding-system 'permanent-local t)
+
 (defvar archive-files nil
   "Vector of file descriptors.
 Each descriptor is a vector of the form
@@ -461,6 +465,18 @@ Each descriptor is a vector of the form
 ;; -------------------------------------------------------------------------
 ;;; Section: Support functions.
 
+(eval-when-compile
+  (defsubst byte-after (pos)
+    "Like char-after but an eight-bit char is converted to unibyte."
+    (multibyte-char-to-unibyte (char-after pos)))
+  (defsubst insert-unibyte (&rest args)
+    "Like insert but don't make unibyte string and eight-bit char multibyte."
+    (dolist (elt args)
+      (if (integerp elt)
+         (insert (if (< elt 128) elt (decode-char 'eight-bit elt)))
+       (insert (string-to-multibyte elt)))))
+  )
+
 (defsubst archive-name (suffix)
   (intern (concat "archive-" (symbol-name archive-subtype) "-" suffix)))
 
@@ -473,6 +489,7 @@ FLOAT, if non-nil, means generate and return a float instead of an integer
   (if (stringp str)
       (setq len (length str))
     (setq str (buffer-substring str (+ str len))))
+  (setq str (string-as-unibyte str))
   (let ((result 0)
         (i 0))
     (while (< i len)
@@ -677,6 +694,12 @@ archive.
       (make-local-variable 'archive-file-list-start)
       (make-local-variable 'archive-file-list-end)
       (make-local-variable 'archive-file-name-indent)
+      (setq archive-file-name-coding-system
+           (or file-name-coding-system
+               default-file-name-coding-system
+               locale-coding-system))
+      (if default-enable-multibyte-characters
+         (set-buffer-multibyte 'to))
       (archive-summarize nil)
       (setq buffer-read-only t))))
 
@@ -727,7 +750,6 @@ is visible (and the real data of the buffer is hidden).
 Optional argument SHUT-UP, if non-nil, means don't print messages
 when parsing the archive."
   (widen)
-  (set-buffer-multibyte nil)
   (let ((inhibit-read-only t))
     (setq archive-proper-file-start (copy-marker (point-min) t))
     (set (make-local-variable 'change-major-mode-hook) 'archive-desummarize)
@@ -933,7 +955,8 @@ using `make-temp-file', and the generated name is returned."
                          (string-match file-name-invalid-regexp ename)))
         (arcfilename (expand-file-name (concat arcname ":" iname)))
          (buffer (get-buffer bufname))
-         (just-created nil))
+         (just-created nil)
+        (file-name-coding archive-file-name-coding-system))
       (if (and buffer
               (string= (buffer-file-name buffer) arcfilename))
           nil
@@ -951,13 +974,14 @@ using `make-temp-file', and the generated name is returned."
           (setq archive-superior-buffer archive-buffer)
           (add-hook 'write-file-functions 'archive-write-file-member nil t)
           (setq archive-subfile-mode descr)
+         (setq archive-file-name-coding-system file-name-coding)
          (if (and
               (null
                (let (;; We may have to encode file name arguement for
                      ;; external programs.
                      (coding-system-for-write
                       (and enable-multibyte-characters
-                           file-name-coding-system))
+                           archive-file-name-coding-system))
                      ;; We read an archive member by no-conversion at
                      ;; first, then decode appropriately by calling
                      ;; archive-set-buffer-as-visiting-file later.
@@ -1134,15 +1158,16 @@ using `make-temp-file', and the generated name is returned."
          (if (aref descr 3)
              ;; Set the file modes, but make sure we can read it.
              (set-file-modes tmpfile (logior ?\400 (aref descr 3))))
-         (if enable-multibyte-characters
-             (setq ename
-                   (encode-coding-string ename file-name-coding-system)))
-          (let ((exitcode (apply 'call-process
-                                 (car command)
-                                 nil
-                                 nil
-                                 nil
-                                 (append (cdr command) (list archive ename)))))
+         (setq ename
+               (encode-coding-string ename archive-file-name-coding-system))
+          (let* ((coding-system-for-write 'no-conversion)
+                (exitcode (apply 'call-process
+                                 (car command)
+                                 nil
+                                 nil
+                                 nil
+                                 (append (cdr command)
+                                         (list archive ename)))))
             (if (equal exitcode 0)
                 nil
               (error "Updating was unsuccessful (%S)" exitcode))))
@@ -1315,9 +1340,8 @@ as a relative change like \"g+rw\" as for chmod(2)."
     (if (fboundp func)
         (progn
          (funcall func
-                  (if enable-multibyte-characters
-                      (encode-coding-string newname file-name-coding-system)
-                    newname)
+                  (encode-coding-string newname
+                                        archive-file-name-coding-system)
                   descr)
          (archive-resummarize))
       (error "Renaming is not supported for this archive type"))))
@@ -1328,7 +1352,6 @@ as a relative change like \"g+rw\" as for chmod(2)."
     (setq archive-files nil)
     (let ((revert-buffer-function nil)
          (coding-system-for-read 'no-conversion))
-      (set-buffer-multibyte nil)
       (revert-buffer t t))
     (archive-mode)
     (goto-char archive-file-list-start)
@@ -1350,11 +1373,12 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
         files
        visual)
     (while (and (< (+ p 29) (point-max))
-               (= (char-after p) ?\C-z)
-               (> (char-after (1+ p)) 0))
+               (= (byte-after p) ?\C-z)
+               (> (byte-after (1+ p)) 0))
       (let* ((namefld (buffer-substring (+ p 2) (+ p 2 13)))
             (fnlen   (or (string-match "\0" namefld) 13))
-            (efnname (substring namefld 0 fnlen))
+            (efnname (decode-coding-string (substring namefld 0 fnlen)
+                                           archive-file-name-coding-system))
             ;; Convert to float to avoid overflow for very large files.
              (csize   (archive-l-e (+ p 15) 4 'float))
              (moddate (archive-l-e (+ p 19) 2))
@@ -1406,10 +1430,9 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
     (save-restriction
       (save-excursion
        (widen)
-       (set-buffer-multibyte nil)
        (goto-char (+ archive-proper-file-start (aref descr 4) 2))
        (delete-char 13)
-       (insert name)))))
+       (insert-unibyte name)))))
 ;; -------------------------------------------------------------------------
 ;;; Section: Lzh Archives
 
@@ -1421,14 +1444,14 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
        visual)
     (while (progn (goto-char p)                ;beginning of a base header.
                  (looking-at "\\(.\\|\n\\)\\(.\\|\n\\)-l[hz][0-9ds]-"))
-      (let* ((hsize   (char-after p))  ;size of the base header (level 0 and 1)
+      (let* ((hsize   (byte-after p))  ;size of the base header (level 0 and 1)
             ;; Convert to float to avoid overflow for very large files.
             (csize   (archive-l-e (+ p 7) 4 'float)) ;size of a compressed file to follow (level 0 and 2),
                                        ;size of extended headers + the compressed file to follow (level 1).
              (ucsize  (archive-l-e (+ p 11) 4 'float)) ;size of an uncompressed file.
             (time1   (archive-l-e (+ p 15) 2)) ;date/time (MSDOS format in level 0, 1 headers
             (time2   (archive-l-e (+ p 17) 2)) ;and UNIX format in level 2 header.)
-            (hdrlvl  (char-after (+ p 20))) ;header level
+            (hdrlvl  (byte-after (+ p 20))) ;header level
             thsize             ;total header size (base + extensions)
             fnlen efnname osid fiddle ifnname width p2
             neh        ;beginning of next extension header (level 1 and 2)
@@ -1436,11 +1459,10 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
             gname uname modtime moddate)
        (if (= hdrlvl 3) (error "can't handle lzh level 3 header type"))
        (when (or (= hdrlvl 0) (= hdrlvl 1))
-         (setq fnlen   (char-after (+ p 21))) ;filename length
+         (setq fnlen   (byte-after (+ p 21))) ;filename length
          (setq efnname (let ((str (buffer-substring (+ p 22) (+ p 22 fnlen)))) ;filename from offset 22
-                       (if file-name-coding-system
-                           (decode-coding-string str file-name-coding-system)
-                         (string-as-multibyte str))))
+                       (decode-coding-string
+                        str archive-file-name-coding-system)))
          (setq p2      (+ p 22 fnlen))) ;
        (if (= hdrlvl 1)
             (setq neh (+ p2 3))         ;specific to level 1 header
@@ -1448,19 +1470,19 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
               (setq neh (+ p 24))))     ;specific to level 2 header
        (if neh         ;if level 1 or 2 we expect extension headers to follow
            (let* ((ehsize (archive-l-e neh 2)) ;size of the extension header
-                  (etype (char-after (+ neh 2)))) ;extension type
+                  (etype (byte-after (+ neh 2)))) ;extension type
              (while (not (= ehsize 0))
                  (cond
                 ((= etype 1)   ;file name
                  (let ((i (+ neh 3)))
                    (while (< i (+ neh ehsize))
-                     (setq efnname (concat efnname (char-to-string (char-after i))))
+                     (setq efnname (concat efnname (char-to-string (byte-after i))))
                      (setq i (1+ i)))))
                 ((= etype 2)   ;directory name
                  (let ((i (+ neh 3)))
                    (while (< i (+ neh ehsize))
                                    (setq dir (concat dir
-                                                      (if (= (char-after i)
+                                                      (if (= (byte-after i)
                                                              255)
                                                           "/"
                                                         (char-to-string
@@ -1484,7 +1506,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
                   )
                (setq neh (+ neh ehsize))
                (setq ehsize (archive-l-e neh 2))
-               (setq etype (char-after (+ neh 2))))
+               (setq etype (byte-after (+ neh 2))))
              ;;get total header size for level 1 and 2 headers
              (setq thsize (- neh p))))
        (if (= hdrlvl 0)  ;total header size
@@ -1545,7 +1567,6 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
               (setq p (+ p thsize 2 (round csize)))))
        ))
     (goto-char (point-min))
-    (set-buffer-multibyte default-enable-multibyte-characters)
     (let ((dash (concat (if archive-alternate-display
                            "- --------  -----  -----  "
                          "- ----------  --------  -----------  --------  ")
@@ -1576,7 +1597,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
   (let ((sum 0))
     (while (> count 0)
       (setq count (1- count)
-           sum (+ sum (char-after p))
+           sum (+ sum (byte-after p))
            p (1+ p)))
     (logand sum 255)))
 
@@ -1584,10 +1605,9 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
   (save-restriction
     (save-excursion
       (widen)
-      (set-buffer-multibyte nil)
       (let* ((p        (+ archive-proper-file-start (aref descr 4)))
-            (oldhsize (char-after p))
-            (oldfnlen (char-after (+ p 21)))
+            (oldhsize (byte-after p))
+            (oldfnlen (byte-after (+ p 21)))
             (newfnlen (length newname))
             (newhsize (+ oldhsize newfnlen (- oldfnlen)))
             (inhibit-read-only t))
@@ -1595,22 +1615,21 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
            (error "The file name is too long"))
        (goto-char (+ p 21))
        (delete-char (1+ oldfnlen))
-       (insert newfnlen newname)
+       (insert-unibyte newfnlen newname)
        (goto-char p)
        (delete-char 2)
-       (insert newhsize (archive-lzh-resum p newhsize))))))
+       (insert-unibyte newhsize (archive-lzh-resum p newhsize))))))
 
 (defun archive-lzh-ogm (newval files errtxt ofs)
   (save-excursion
     (save-restriction
       (widen)
-      (set-buffer-multibyte nil)
       (dolist (fil files)
        (let* ((p (+ archive-proper-file-start (aref fil 4)))
-              (hsize   (char-after p))
-              (fnlen   (char-after (+ p 21)))
+              (hsize   (byte-after p))
+              (fnlen   (byte-after (+ p 21)))
               (p2      (+ p 22 fnlen))
-              (creator (if (>= (- hsize fnlen) 24) (char-after (+ p2 2)) 0))
+              (creator (if (>= (- hsize fnlen) 24) (byte-after (+ p2 2)) 0))
               (inhibit-read-only t))
          (if (= creator ?U)
              (progn
@@ -1618,10 +1637,10 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
                    (setq newval (funcall newval (archive-l-e (+ p2 ofs) 2))))
                (goto-char (+ p2 ofs))
                (delete-char 2)
-               (insert (logand newval 255) (lsh newval -8))
+               (insert-unibyte (logand newval 255) (lsh newval -8))
                (goto-char (1+ p))
                (delete-char 1)
-               (insert (archive-lzh-resum (1+ p) hsize)))
+               (insert-unibyte (archive-lzh-resum (1+ p) hsize)))
            (message "Member %s does not have %s field"
                     (aref fil 1) errtxt)))))))
 
@@ -1676,7 +1695,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
         files
        visual)
     (while (string= "PK\001\002" (buffer-substring p (+ p 4)))
-      (let* ((creator (char-after (+ p 5)))
+      (let* ((creator (byte-after (+ p 5)))
             ;; (method  (archive-l-e (+ p 10) 2))
              (modtime (archive-l-e (+ p 12) 2))
              (moddate (archive-l-e (+ p 14) 2))
@@ -1687,9 +1706,8 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
              (fclen   (archive-l-e (+ p 32) 2))
              (lheader (archive-l-e (+ p 42) 4))
              (efnname (let ((str (buffer-substring (+ p 46) (+ p 46 fnlen))))
-                       (if file-name-coding-system
-                           (decode-coding-string str file-name-coding-system)
-                         (string-as-multibyte str))))
+                       (decode-coding-string
+                        str archive-file-name-coding-system)))
             (isdir   (and (= ucsize 0)
                           (string= (file-name-nondirectory efnname) "")))
             (mode    (cond ((memq creator '(2 3)) ; Unix + VMS
@@ -1698,7 +1716,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
                             (logior ?\444
                                     (if isdir (logior 16384 ?\111) 0)
                                     (if (zerop
-                                         (logand 1 (char-after (+ p 38))))
+                                         (logand 1 (byte-after (+ p 38))))
                                         ?\222 0)))
                            (t nil)))
             (modestr (if mode (archive-int-to-mode mode) "??????????"))
@@ -1755,21 +1773,20 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
   (save-restriction
     (save-excursion
       (widen)
-      (set-buffer-multibyte nil)
       (dolist (fil files)
        (let* ((p (+ archive-proper-file-start (car (aref fil 4))))
-              (creator (char-after (+ p 5)))
+              (creator (byte-after (+ p 5)))
               (oldmode (aref fil 3))
               (newval  (archive-calc-mode oldmode newmode t))
               (inhibit-read-only t))
          (cond ((memq creator '(2 3)) ; Unix + VMS
                 (goto-char (+ p 40))
                 (delete-char 2)
-                (insert (logand newval 255) (lsh newval -8)))
+                (insert-unibyte (logand newval 255) (lsh newval -8)))
                ((memq creator '(0 5 6 7 10 11 15)) ; Dos etc.
                 (goto-char (+ p 38))
-                (insert (logior (logand (char-after (point)) 254)
-                                (logand (logxor 1 (lsh newval -7)) 1)))
+                (insert-unibyte (logior (logand (byte-after (point)) 254)
+                                        (logand (logxor 1 (lsh newval -7)) 1)))
                 (delete-char 1))
                (t (message "Don't know how to change mode for this member"))))
         ))))
@@ -1790,9 +1807,9 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
             ;; Convert to float to avoid overflow for very large files.
              (ucsize  (archive-l-e (+ p 20) 4 'float))
             (namefld (buffer-substring (+ p 38) (+ p 38 13)))
-            (dirtype (char-after (+ p 4)))
-            (lfnlen  (if (= dirtype 2) (char-after (+ p 56)) 0))
-            (ldirlen (if (= dirtype 2) (char-after (+ p 57)) 0))
+            (dirtype (byte-after (+ p 4)))
+            (lfnlen  (if (= dirtype 2) (byte-after (+ p 56)) 0))
+            (ldirlen (if (= dirtype 2) (byte-after (+ p 57)) 0))
             (fnlen   (or (string-match "\0" namefld) 13))
             (efnname (let ((str
                             (concat
@@ -1806,9 +1823,8 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
                                  (buffer-substring (+ p 58)
                                                    (+ p 58 lfnlen -1))
                                (substring namefld 0 fnlen)))))
-                       (if file-name-coding-system
-                           (decode-coding-string str file-name-coding-system)
-                         (string-as-multibyte str))))
+                       (decode-coding-string
+                        str archive-file-name-coding-system)))
             (fiddle  (and (= lfnlen 0) (string= efnname (upcase efnname))))
              (ifnname (if fiddle (downcase efnname) efnname))
             (width (string-width ifnname))
index 435c935a69c1a1b1d92448ea73d9534a8be33fd3..f0f85bbd8bdb78b5956dd9bb0852c7f9300d0605 100644 (file)
@@ -623,12 +623,6 @@ language you are using."
 ;; that we will not need to keep permanently.
 (garbage-collect)
 \f
-;; Make all multibyte characters self-insert.
-(let ((l (generic-character-list))
-      (table (nth 1 global-map)))
-  (while l
-    (aset table (car l) 'self-insert-command)
-    (setq l (cdr l))))
 
 (setq help-event-list '(help f1))
 
index 33768bb2277dba058d3a38832ec882ae861f4048..10b6af5d5678cb9f6b0e897df3cdc9d611deac8c 100644 (file)
 
 ;;; Code:
 
-(defvar set-case-syntax-offset 0)
-
-(defvar set-case-syntax-set-multibyte nil)
-
 (defun describe-buffer-case-table ()
   "Describe the case table of the current buffer."
   (interactive)
   (let ((description (make-char-table 'case-table)))
     (map-char-table
      (function (lambda (key value)
-                (aset
-                 description key
-                 (cond ((not (natnump value))
-                        "case-invariant")
-                       ((/= key (downcase key))
-                        (concat "uppercase, matches "
-                                (char-to-string (downcase key))))
-                       ((/= key (upcase key))
-                        (concat "lowercase, matches "
-                                (char-to-string (upcase key))))
-                       (t "case-invariant")))))
+                (if (consp key)
+                    (set-char-table-range description key "case-invariant")
+                  (aset
+                   description key
+                   (cond ((not (natnump value))
+                          "case-invariant")
+                         ((/= key (downcase key))
+                          (concat "uppercase, matches "
+                                  (char-to-string (downcase key))))
+                         ((/= key (upcase key))
+                          (concat "lowercase, matches "
+                                  (char-to-string (upcase key))))
+                         (t "case-invariant"))))))
      (current-case-table))
     (save-excursion
      (with-output-to-temp-buffer "*Help*"
     (set-char-table-extra-slot copy 2 nil)
     copy))
 
-(defsubst set-case-syntax-1 (char)
-  "Offset CHAR by `set-case-syntax-offset' if CHAR is a non-ASCII 8-bit char."
-  (if (and (>= char 128) (< char 256))
-      (+ char set-case-syntax-offset)
-    char))
-
 (defun set-case-syntax-delims (l r table)
   "Make characters L and R a matching pair of non-case-converting delimiters.
 This sets the entries for L and R in TABLE, which is a string
 that will be used as the downcase part of a case table.
 It also modifies `standard-syntax-table' to
 indicate left and right delimiters."
-  (setq l (set-case-syntax-1 l))
-  (setq r (set-case-syntax-1 r))
   (aset table l l)
   (aset table r r)
   (let ((up (get-upcase-table table)))
@@ -121,8 +111,6 @@ This sets the entries for characters UC and LC in TABLE, which is a string
 that will be used as the downcase part of a case table.
 It also modifies `standard-syntax-table' to give them the syntax of
 word constituents."
-  (setq uc (set-case-syntax-1 uc))
-  (setq lc (set-case-syntax-1 lc))
   (aset table uc lc)
   (aset table lc lc)
   (let ((up (get-upcase-table table)))
@@ -139,8 +127,6 @@ word constituents."
   "Make character UC an upcase of character LC.
 It also modifies `standard-syntax-table' to give them the syntax of
 word constituents."
-  (setq uc (set-case-syntax-1 uc))
-  (setq lc (set-case-syntax-1 lc))
   (aset table lc lc)
   (let ((up (get-upcase-table table)))
     (aset up uc uc)
@@ -156,8 +142,6 @@ word constituents."
   "Make character LC a downcase of character UC.
 It also modifies `standard-syntax-table' to give them the syntax of
 word constituents."
-  (setq uc (set-case-syntax-1 uc))
-  (setq lc (set-case-syntax-1 lc))
   (aset table uc lc)
   (aset table lc lc)
   (let ((up (get-upcase-table table)))
@@ -175,7 +159,6 @@ This sets the entry for character C in TABLE, which is a string
 that will be used as the downcase part of a case table.
 It also modifies `standard-syntax-table'.
 SYNTAX should be \" \", \"w\", \".\" or \"_\"."
-  (setq c (set-case-syntax-1 c))
   (aset table c c)
   (let ((up (get-upcase-table table)))
     (aset up c c))
index a2457ab75143936e39456c0f093ecc5ce9ac0bbd..8fdcc67426d16d6f9097282685188e5a61403e4e 100644 (file)
@@ -27,7 +27,6 @@
 
 ;;; Code:
 
-;;;###autoload
 (defconst reference-point-alist
   '((tl . 0) (tc . 1) (tr . 2)
     (Bl . 3) (Bc . 4) (Br . 5)
@@ -42,8 +41,7 @@
     (mid-left . 3) (mid-center . 10) (mid-right . 5))
   "Alist of symbols vs integer codes of glyph reference points.
 A glyph reference point symbol is to be used to specify a composition
-rule in COMPONENTS argument to such functions as `compose-region' and
-`make-composition'.
+rule in COMPONENTS argument to such functions as `compose-region'.
 
 Meanings of glyph reference point codes are as follows:
 
@@ -76,7 +74,12 @@ follows (the point `*' corresponds to both reference points):
     |    | new |
     |    |glyph|
     +----+-----+ <--- new descent
-")
+
+A composition rule may have the form \(GLOBAL-REF-POINT
+NEW-REF-POINT XOFF YOFF), where XOFF and YOFF specifies how much
+to shift NEW-REF-POINT from GLOBAL-REF-POINT.  In this case, XOFF
+and YOFF are integers in the range -100..100 representing the
+shifting percentage against the font size.")
 
 
 ;;;###autoload
@@ -91,17 +94,29 @@ RULE is a cons of global and new reference point symbols
   (if (and (integerp rule) (< rule 144))
       ;; Already encoded.
       rule
-    (or (consp rule)
-       (error "Invalid composition rule: %S" rule))
-    (let ((gref (car rule))
-         (nref (cdr rule)))
-      (or (integerp gref)
-         (setq gref (cdr (assq gref reference-point-alist))))
-      (or (integerp nref)
-         (setq nref (cdr (assq nref reference-point-alist))))
-      (or (and (>= gref 0) (< gref 12) (>= nref 0) (< nref 12))
-         (error "Invalid composition rule: %S" rule))
-      (+ (* gref 12) nref))))
+    (if (consp rule)
+       (let ((gref (car rule))
+             (nref (cdr rule))
+             xoff yoff)
+         (if (consp nref)              ; (GREF NREF XOFF YOFF)
+             (progn
+               (setq xoff (nth 1 nref)
+                     yoff (nth 2 nref)
+                     nref (car nref))
+               (or (and (>= xoff -100) (<= xoff 100)
+                        (>= yoff -100) (<= yoff 100))
+                   (error "Invalid compostion rule: %s" rule))
+               (setq xoff (+ xoff 128) yoff (+ yoff 128)))
+           ;; (GREF . NREF)
+           (setq xoff 0 yoff 0))
+         (or (integerp gref)
+             (setq gref (cdr (assq gref reference-point-alist))))
+         (or (integerp nref)
+             (setq nref (cdr (assq nref reference-point-alist))))
+         (or (and (>= gref 0) (< gref 12) (>= nref 0) (< nref 12))
+             (error "Invalid composition rule: %S" rule))
+         (logior (lsh xoff 16) (lsh yoff 8) (+ (* gref 12) nref)))
+      (error "Invalid composition rule: %S" rule))))
 
 ;; Decode encoded composition rule RULE-CODE.  The value is a cons of
 ;; global and new reference point symbols.
@@ -109,13 +124,20 @@ RULE is a cons of global and new reference point symbols
 ;; defined in composite.h.
 
 (defun decode-composition-rule (rule-code)
-  (or (and (natnump rule-code) (< rule-code 144))
+  (or (and (natnump rule-code) (< rule-code #x1000000))
       (error "Invalid encoded composition rule: %S" rule-code))
-  (let ((gref (car (rassq (/ rule-code 12) reference-point-alist)))
-       (nref (car (rassq (% rule-code 12) reference-point-alist))))
+  (let ((xoff (lsh rule-code -16))
+       (yoff (logand (lsh rule-code -8) #xFF))
+       gref nref)
+    (setq rule-code (logand rule-code #xFF)
+         gref (car (rassq (/ rule-code 12) reference-point-alist))
+         nref (car (rassq (% rule-code 12) reference-point-alist)))
     (or (and gref (symbolp gref) nref (symbolp nref))
        (error "Invalid composition rule code: %S" rule-code))
-    (cons gref nref)))
+    (if (and (= xoff 0) (= yoff 0))
+       (cons gref nref)
+      (setq xoff (- xoff 128) yoff (- yoff 128))
+      (list gref xoff yoff nref))))
 
 ;; Encode composition rules in composition components COMPONENTS.  The
 ;; value is a copy of COMPONENTS, where composition rules (cons of
@@ -159,7 +181,6 @@ RULE is a cons of global and new reference point symbols
       (setq i (+ i 2))))
   components)
 
-;;;###autoload
 (defun compose-region (start end &optional components modification-func)
   "Compose characters in the current region.
 
@@ -171,9 +192,8 @@ When called from a program, expects these four arguments.
 First two arguments START and END are positions (integers or markers)
 specifying the region.
 
-Optional 3rd argument COMPONENTS, if non-nil, is a character or a
-sequence (vector, list, or string) of integers.  In this case,
-characters are composed not relatively but according to COMPONENTS.
+Optional 3rd argument COMPONENTS, if non-nil, is a character, a string
+or a vector or list of integers and rules.
 
 If it is a character, it is an alternate character to display instead
 of the text in the region.
@@ -200,7 +220,6 @@ text in the composition."
     (compose-region-internal start end components modification-func)
     (restore-buffer-modified-p modified-p)))
 
-;;;###autoload
 (defun decompose-region (start end)
   "Decompose text in the current region.
 
@@ -212,11 +231,10 @@ positions (integers or markers) specifying the region."
     (remove-text-properties start end '(composition nil))
     (restore-buffer-modified-p modified-p)))
 
-;;;###autoload
 (defun compose-string (string &optional start end components modification-func)
   "Compose characters in string STRING.
 
-The return value is STRING where `composition' property is put on all
+The return value is STRING with the `composition' property put on all
 the characters in it.
 
 Optional 2nd and 3rd arguments START and END specify the range of
@@ -237,13 +255,11 @@ text in the composition."
   (compose-string-internal string start end components modification-func)
   string)
 
-;;;###autoload
 (defun decompose-string (string)
   "Return STRING where `composition' property is removed."
   (remove-text-properties 0 (length string) '(composition nil) string)
   string)
 
-;;;###autoload
 (defun compose-chars (&rest args)
   "Return a string from arguments in which all characters are composed.
 For relative composition, arguments are characters.
@@ -267,7 +283,6 @@ A composition rule is a cons of glyph reference points of the form
       (setq str (concat args)))
     (compose-string-internal str 0 (length str) components)))
 
-;;;###autoload
 (defun find-composition (pos &optional limit string detail-p)
   "Return information about a composition at or nearest to buffer position POS.
 
@@ -307,7 +322,6 @@ WIDTH is a number of columns the composition occupies on the screen."
     result))
 
 \f
-;;;###autoload
 (defun compose-chars-after (pos &optional limit object)
   "Compose characters in current buffer after position POS.
 
@@ -328,7 +342,7 @@ is:
 Optional 2nd arg LIMIT, if non-nil, limits the matching of text.
 
 Optional 3rd arg OBJECT, if non-nil, is a string that contains the
-text to compose.  In that case, POS and LIMIT index to the string.
+text to compose.  In that case, POS and LIMIT index into the string.
 
 This function is the default value of `compose-chars-after-function'."
   (let ((tail (aref composition-function-table (char-after pos)))
@@ -348,7 +362,6 @@ This function is the default value of `compose-chars-after-function'."
              (setq func nil tail (cdr tail)))))))
       result))
 
-;;;###autoload
 (defun compose-last-chars (args)
   "Compose last characters.
 The argument is a parameterized event of the form
@@ -369,13 +382,294 @@ after a sequence of character events."
            (compose-region (- (point) chars) (point) (nth 2 args))
          (compose-chars-after (- (point) chars) (point))))))
 
-;;;###autoload(global-set-key [compose-last-chars] 'compose-last-chars)
+(global-set-key [compose-last-chars] 'compose-last-chars)
+
+\f
+;;; Automatic character composition.
+
+(defvar composition-function-table
+  (make-char-table nil)
+  "Char table of functions for automatic character composition.
+For each character that has to be composed automatically with
+preceding and/or following characters, this char table contains
+a function to call to compose that character.
+
+An element, if non-nil, is FUNC or an alist of PATTERNs vs FUNCs,
+where PATTERNs are regular expressions and FUNCs are functions.
+If the element is FUNC, FUNC itself determines the region to
+compose.
+
+Each function is called with 5 arguments, FROM, TO, FONT-OBJECT,
+and STRING.
+
+If STRING is nil, FROM and TO are positions specifying the region
+maching with PATTERN in the current buffer, and the function has
+to compose character in that region (possibly with characters
+preceding FROM).  The return value of the function is the end
+position where characters are composed.
+
+Otherwise, STRING is a string, and FROM and TO are indices into
+the string.  In this case, the function has to compose a
+character in the string.
+
+FONT-OBJECT may be nil if not available (e.g. for the case of
+terminal).
+
+See also the command `toggle-auto-composition'.")
+
+;; Copied from font-lock.el.
+(eval-when-compile
+  ;; Borrowed from lazy-lock.el.
+  ;; We use this to preserve or protect things when modifying text properties.
+  (defmacro save-buffer-state (varlist &rest body)
+    "Bind variables according to VARLIST and eval BODY restoring buffer state."
+    `(let* ,(append varlist
+                   '((modified (buffer-modified-p)) (buffer-undo-list t)
+                     (inhibit-read-only t) (inhibit-point-motion-hooks t)
+                     (inhibit-modification-hooks t)
+                     deactivate-mark buffer-file-name buffer-file-truename))
+       ,@body
+       (unless modified
+        (restore-buffer-modified-p nil))))
+  ;; Fixme: This makes bootstrapping fail with this error.
+  ;;   Symbol's function definition is void: eval-defun
+  ;;(def-edebug-spec save-buffer-state let)
+  )
+
+(put 'save-buffer-state 'lisp-indent-function 1)
+
+(defun terminal-composition-function (from to font-object string)
+  "General composition function used on terminal.
+Non-spacing characters are composed with the preceding spacing
+character.  All non-spacing characters has this function in
+`terminal-composition-function-table'."
+  (let ((pos (1+ from)))
+    (if string
+       (progn
+         (while (and (< pos to)
+                     (= (aref char-width-table (aref string pos)) 0))
+           (setq pos (1+ pos)))
+         (if (> from 0)
+             (compose-string string (1- from) pos)
+           (compose-string string from pos
+                           (concat " " (buffer-substring from pos)))))
+      (while (and (< pos to)
+                 (= (aref char-width-table (char-after pos)) 0))
+       (setq pos (1+ pos)))
+      (if (> from (point-min))
+         (compose-region (1- from) pos (buffer-substring from pos))
+       (compose-region from pos
+                       (concat " " (buffer-substring from pos)))))
+    pos))
+
+(defvar terminal-composition-function-table
+  (let ((table (make-char-table nil)))
+    (map-char-table
+     #'(lambda (key val)
+        (if (= val 0) (set-char-table-range table key
+                                            'terminal-composition-function)))
+     char-width-table)
+    table)
+  "Char table of functions for automatic character composition on terminal.
+This is like `composition-function-table' but used when Emacs is running
+on a terminal.")
+
+(defun auto-compose-chars (from to window string)
+  "Compose characters in the region between FROM and TO.
+WINDOW is a window displaying the current buffer.
+If STRING is non-nil, it is a string, and FROM and TO are indices
+into the string.  In that case, compose characters in the string.
+
+This function is the default value of `auto-composition-function' (which see)."
+  (save-buffer-state nil
+    (save-excursion
+      (save-restriction
+       (save-match-data
+         (let ((table (if (display-graphic-p)
+                          composition-function-table
+                        terminal-composition-function-table))
+               (start from))
+           (setq to (or (text-property-any (1+ from) to 'auto-composed t
+                                           string)
+                        to))
+           (if string
+               (while (< from to)
+                 (let* ((ch (aref string from))
+                        (elt (aref table ch))
+                        font-obj newpos)
+                   (when elt
+                     (if window
+                         (setq font-obj (font-at from window string)))
+                     (if (functionp elt)
+                         (setq newpos (funcall elt from to font-obj string))
+                       (while (and elt
+                                   (or (not (eq (string-match (caar elt) string
+                                                              from)
+                                                from))
+                                       (not (setq newpos
+                                                  (funcall (cdar elt) from
+                                                           (match-end 0)
+                                                           font-obj string)))))
+                         (setq elt (cdr elt)))))
+                   (if (and newpos (> newpos from))
+                       (setq from newpos)
+                     (setq from (1+ from)))))
+             (narrow-to-region from to)
+             (while (< from to)
+                 (let* ((ch (char-after from))
+                        (elt (aref table ch))
+                        func pattern font-obj newpos)
+                   (when elt
+                     (if window
+                         (setq font-obj (font-at from window)))
+                     (if (functionp elt)
+                         (setq newpos (funcall elt from to font-obj nil))
+                       (goto-char from)
+                       (while (and elt
+                                   (or (not (looking-at (caar elt)))
+                                       (not (setq newpos
+                                                  (funcall (cdar elt) from
+                                                           (match-end 0)
+                                                           font-obj nil)))))
+                         (setq elt (cdr elt)))))
+                   (if (and newpos (> newpos from))
+                       (setq from newpos)
+                     (setq from (1+ from))))))
+           (put-text-property start to 'auto-composed t string)))))))
+
+(make-variable-buffer-local 'auto-composition-function)
+
+;;;###autoload
+(define-minor-mode auto-composition-mode
+  "Toggle Auto Compostion mode.
+With arg, turn Auto Compostion mode off if and only if arg is a non-positive
+number; if arg is nil, toggle Auto Compostion mode; anything else turns Auto
+Compostion on.
+
+When Auto Composition is enabled, text characters are automatically composed
+by functions registered in `composition-function-table' (which see).
+
+You can use Global Auto Composition mode to automagically turn on
+Auto Composition mode in all buffers (this is the default)."
+  nil nil nil
+  (if noninteractive
+      (setq auto-composition-mode nil))
+  (cond (auto-composition-mode
+        (add-hook 'after-change-functions 'auto-composition-after-change nil t)
+        (setq auto-composition-function 'auto-compose-chars))
+       (t
+        (remove-hook 'after-change-functions 'auto-composition-after-change t)
+        (setq auto-composition-function nil)))
+  (save-buffer-state nil
+    (save-restriction
+      (widen)
+      (remove-text-properties (point-min) (point-max) '(auto-composed nil))
+      (decompose-region (point-min) (point-max)))))
+
+(defun auto-composition-after-change (start end old-len)
+  (save-buffer-state nil
+    (if (< start (point-min))
+       (setq start (point-min)))
+    (if (> end (point-max))
+       (setq end (point-max)))
+    (when (and auto-composition-mode (not memory-full))
+      (let (func1 func2)
+       (when (and (> start (point-min))
+                  (setq func2 (aref composition-function-table
+                                    (char-after (1- start))))
+                  (or (= start (point-max))
+                      (not (setq func1 (aref composition-function-table
+                                             (char-after start))))
+                      (eq func1 func2)))
+         (setq start (1- start)
+               func1 func2)
+         (while (eq func1 func2)
+           (if (> start (point-min))
+               (setq start (1- start)
+                     func2 (aref composition-function-table
+                                 (char-after start)))
+             (setq func2 nil))))
+       (when (and (< end (point-max))
+                  (setq func2 (aref composition-function-table
+                                    (char-after end)))
+                  (or (= end (point-min))
+                      (not (setq func1 (aref composition-function-table
+                                             (char-after (1- end)))))
+                      (eq func1 func2)))
+         (setq end (1+ end)
+               func1 func2)
+         (while (eq func1 func2)
+           (if (< end (point-max))
+               (setq func2 (aref composition-function-table
+                                 (char-after end))
+                     end (1+ end))
+             (setq func2 nil))))
+       (if (< start end)
+           (remove-text-properties start end '(auto-composed nil)))))))
+
+(defun turn-on-auto-composition-if-enabled ()
+  (if enable-multibyte-characters
+      (auto-composition-mode 1)))
+
+;;;###autoload
+(define-global-minor-mode global-auto-composition-mode
+  auto-composition-mode turn-on-auto-composition-if-enabled
+  :extra-args (dummy)
+  :initialize 'custom-initialize-safe-default
+  :init-value (not noninteractive)
+  :group 'auto-composition
+  :version "23.1")
+
+(defun toggle-auto-composition (&optional arg)
+  "Change whether automatic character composition is enabled in this buffer.
+With arg, enable it iff arg is positive."
+  (interactive "P")
+  (let ((enable (if (null arg) (not auto-composition-function)
+                 (> (prefix-numeric-value arg) 0))))
+    (if enable
+       (kill-local-variable 'auto-composition-function)
+      (make-local-variable 'auto-composition-function)
+      (setq auto-composition-function nil)
+      (save-buffer-state nil
+       (save-restriction
+         (widen)
+         (decompose-region (point-min) (point-max)))))
+
+    (save-buffer-state nil
+      (save-restriction
+       (widen)
+       (remove-text-properties (point-min) (point-max)
+                               '(auto-composed nil))))))
+
+(defun auto-compose-region (from to)
+  "Force automatic character composition on the region FROM and TO."
+  (save-excursion
+    (if (get-text-property from 'auto-composed)
+       (setq from (next-single-property-change from 'auto-composed nil to)))
+    (goto-char from)
+    (let ((modified-p (buffer-modified-p))
+         (inhibit-read-only '(composition auto-composed))
+         (stop (next-single-property-change (point) 'auto-composed nil to)))
+      (while (< (point) to)
+       (if (= (point) stop)
+           (progn
+             (goto-char (next-single-property-change (point)
+                                                     'auto-composed nil to))
+             (setq stop (next-single-property-change (point)
+                                                     'auto-composed nil to)))
+         (let ((func (aref composition-function-table (following-char)))
+               (pos (point)))
+           (if (functionp func)
+               (goto-char (funcall func (point) nil)))
+           (if (<= (point) pos)
+               (forward-char 1)))))
+      (put-text-property from to 'auto-composed t)
+      (set-buffer-modified-p modified-p))))
 
 \f
 ;; The following codes are only for backward compatibility with Emacs
 ;; 20.4 and earlier.
 
-;;;###autoload
 (defun decompose-composite-char (char &optional type with-composition-rule)
   "Convert CHAR to string.
 
@@ -387,7 +681,6 @@ Optional 3rd arg WITH-COMPOSITION-RULE is ignored."
        ((eq type 'list) (list char))
        (t (vector char))))
 
-;;;###autoload
 (make-obsolete 'decompose-composite-char 'char-to-string "21.1")
 
 \f
index fda7b356774c49a90bd3a8c2f002d3f959feb77a..8b900b697d6d306a4fdc51efa8c1bbc2074b65cd 100644 (file)
@@ -103,6 +103,9 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
             (exec-path execute
                        (repeat (choice (const :tag "default directory" nil)
                                        (directory :format "%v"))))
+            ;; charset.c
+            (charset-map-path installation
+                              (repeat (directory :format "%v")))
             ;; coding.c
             (inhibit-eol-conversion mule boolean)
             (eol-mnemonic-undecided mule string)
index 3452874f343e5c13fcd02b3bbc0bafc94101249f..2f11e5d9946df9ad9c9da640d0a4239c523d3107 100644 (file)
@@ -183,6 +183,27 @@ otherwise."
        (insert "There are text properties here:\n")
        (describe-property-list properties)))))
 \f
+(defcustom describe-char-unidata-list nil
+  "List of Unicode-based character property names shown by `describe-char'."
+  :group 'mule
+  :version "23.1"
+  :type '(set
+         (const :tag "Unicode Name" name)
+         (const :tag "Unicode general category " general-category)
+         (const :tag "Unicode canonical combining class"
+                canonical-combining-class)
+         (const :tag "Unicode bidi class" bidi-class)
+         (const :tag "Unicode decomposition mapping" decomposition)
+         (const :tag "Unicode decimal digit value" decimal-digit-value)
+         (const :tag "Unicode digit value" digit-value)
+         (const :tag "Unicode numeric value" numeric-value)
+         (const :tag "Unicode mirrored" mirrored)
+         (const :tag "Unicode old name" old-name)
+         (const :tag "Unicode ISO 10646 comment" iso-10646-comment)
+         (const :tag "Unicode simple uppercase mapping" uppercase)
+         (const :tag "Unicode simple lowercase mapping" lowercase)
+         (const :tag "Unicode simple titlecase mapping" titlecase)))
+
 (defcustom describe-char-unicodedata-file nil
   "Location of Unicode data file.
 This is the UnicodeData.txt file from the Unicode Consortium, used for
@@ -208,7 +229,8 @@ At the time of writing it is at the URL
 (defun describe-char-unicode-data (char)
   "Return a list of Unicode data for unicode CHAR.
 Each element is a list of a property description and the property value.
-The list is null if CHAR isn't found in `describe-char-unicodedata-file'."
+The list is null if CHAR isn't found in `describe-char-unicodedata-file'.
+This function is semi-obsolete.  Use `get-char-code-property'."
   (when describe-char-unicodedata-file
     (unless (file-exists-p describe-char-unicodedata-file)
       (error "`unicodedata-file' %s not found" describe-char-unicodedata-file))
@@ -257,91 +279,20 @@ The list is null if CHAR isn't found in `describe-char-unicodedata-file'."
                                  (concat (match-string 1 name) ">")
                                name)))
               (list "Category"
-                    (cdr (assoc
-                          (nth 1 fields)
-                          '(("Lu" . "uppercase letter")
-                            ("Ll" . "lowercase letter")
-                            ("Lt" . "titlecase letter")
-                            ("Mn" . "non-spacing mark")
-                            ("Mc" . "spacing-combining mark")
-                            ("Me" . "enclosing mark")
-                            ("Nd" . "decimal digit")
-                            ("Nl" . "letter number")
-                            ("No" . "other number")
-                            ("Zs" . "space separator")
-                            ("Zl" . "line separator")
-                            ("Zp" . "paragraph separator")
-                            ("Cc" . "other control")
-                            ("Cf" . "other format")
-                            ("Cs" . "surrogate")
-                            ("Co" . "private use")
-                            ("Cn" . "not assigned")
-                            ("Lm" . "modifier letter")
-                            ("Lo" . "other letter")
-                            ("Pc" . "connector punctuation")
-                            ("Pd" . "dash punctuation")
-                            ("Ps" . "open punctuation")
-                            ("Pe" . "close punctuation")
-                            ("Pi" . "initial-quotation punctuation")
-                            ("Pf" . "final-quotation punctuation")
-                            ("Po" . "other punctuation")
-                            ("Sm" . "math symbol")
-                            ("Sc" . "currency symbol")
-                            ("Sk" . "modifier symbol")
-                            ("So" . "other symbol")))))
+                    (let ((val (nth 1 fields)))
+                      (or (char-code-property-description
+                           'general-category (intern val))
+                          val)))
               (list "Combining class"
-                    (cdr (assoc
-                          (string-to-number (nth 2 fields))
-                          '((0 . "Spacing")
-                            (1 . "Overlays and interior")
-                            (7 . "Nuktas")
-                            (8 . "Hiragana/Katakana voicing marks")
-                            (9 . "Viramas")
-                            (10 . "Start of fixed position classes")
-                            (199 . "End of fixed position classes")
-                            (200 . "Below left attached")
-                            (202 . "Below attached")
-                            (204 . "Below right attached")
-                            (208 . "Left attached (reordrant around \
-single base character)")
-                            (210 . "Right attached")
-                            (212 . "Above left attached")
-                            (214 . "Above attached")
-                            (216 . "Above right attached")
-                            (218 . "Below left")
-                            (220 . "Below")
-                            (222 . "Below right")
-                            (224 . "Left (reordrant around single base \
-character)")
-                            (226 . "Right")
-                            (228 . "Above left")
-                            (230 . "Above")
-                            (232 . "Above right")
-                            (233 . "Double below")
-                            (234 . "Double above")
-                            (240 . "Below (iota subscript)")))))
+                    (let ((val (nth 1 fields)))
+                      (or (char-code-property-description
+                           'canonical-combining-class (intern val))
+                          val)))
               (list "Bidi category"
-                    (cdr (assoc
-                          (nth 3 fields)
-                          '(("L" . "Left-to-Right")
-                            ("LRE" . "Left-to-Right Embedding")
-                            ("LRO" . "Left-to-Right Override")
-                            ("R" . "Right-to-Left")
-                            ("AL" . "Right-to-Left Arabic")
-                            ("RLE" . "Right-to-Left Embedding")
-                            ("RLO" . "Right-to-Left Override")
-                            ("PDF" . "Pop Directional Format")
-                            ("EN" . "European Number")
-                            ("ES" . "European Number Separator")
-                            ("ET" . "European Number Terminator")
-                            ("AN" . "Arabic Number")
-                            ("CS" . "Common Number Separator")
-                            ("NSM" . "Non-Spacing Mark")
-                            ("BN" . "Boundary Neutral")
-                            ("B" . "Paragraph Separator")
-                            ("S" . "Segment Separator")
-                            ("WS" . "Whitespace")
-                            ("ON" . "Other Neutrals")))))
+                    (let ((val (nth 1 fields)))
+                      (or (char-code-property-description
+                           'bidi-class (intern val))
+                          val)))
               (list
                "Decomposition"
                (if (nth 4 fields)
@@ -351,14 +302,9 @@ character)")
                          (setq info (match-string 1 info))
                        (setq info nil))
                      (if info (setq parts (cdr parts)))
-                     ;; Maybe printing ? for unrepresentable unicodes
-                     ;; here and below should be changed?
                      (setq parts (mapconcat
                                   (lambda (arg)
-                                    (string (or (decode-char
-                                                 'ucs
-                                                 (string-to-number arg 16))
-                                                ??)))
+                                    (string (string-to-number arg 16)))
                                   parts " "))
                      (concat info parts))))
               (list "Decimal digit value"
@@ -373,23 +319,14 @@ character)")
               (list "Old name" (nth 9 fields))
               (list "ISO 10646 comment" (nth 10 fields))
               (list "Uppercase" (and (nth 11 fields)
-                                     (string (or (decode-char
-                                                  'ucs
-                                                  (string-to-number
-                                                   (nth 11 fields) 16))
-                                                 ??))))
+                                     (string (string-to-number
+                                              (nth 11 fields) 16))))
               (list "Lowercase" (and (nth 12 fields)
-                                     (string (or (decode-char
-                                                  'ucs
-                                                  (string-to-number
-                                                   (nth 12 fields) 16))
-                                                 ??))))
+                                     (string (string-to-number
+                                              (nth 12 fields) 16))))
               (list "Titlecase" (and (nth 13 fields)
-                                     (string (or (decode-char
-                                                  'ucs
-                                                  (string-to-number
-                                                   (nth 13 fields) 16))
-                                                 ??)))))))))))
+                                     (string (string-to-number
+                                              (nth 13 fields) 16)))))))))))
 
 ;; Return information about how CHAR is displayed at the buffer
 ;; position POS.  If the selected frame is on a graphic display,
@@ -438,45 +375,40 @@ as well as widgets, buttons, overlays, and text properties."
                  (describe-text-properties pos tmp-buf)
                  (with-current-buffer tmp-buf (buffer-string)))
              (kill-buffer tmp-buf))))
-        item-list max-width unicode)
+        item-list max-width code)
 
-    (if (or (< char 256)
-           (memq 'mule-utf-8 (find-coding-systems-region pos (1+ pos)))
-           (get-char-property pos 'untranslated-utf-8))
-       (setq unicode (or (get-char-property pos 'untranslated-utf-8)
-                         (encode-char char 'ucs))))
+    (setq code (encode-char char charset))
     (setq item-list
          `(("character"
-            ,(format "%s (%d, #o%o, #x%x%s)"
+            ,(format "%s (%d, #o%o, #x%x)"
                      (apply 'propertize char-description
                             (text-properties-at pos))
-                     char char char
-                     (if unicode
-                         (format ", U+%04X" unicode)
-                       "")))
-           ("charset"
+                     char char char))
+           ("preferred charset"
             ,`(insert-text-button
                ,(symbol-name charset)
                'type 'help-character-set 'help-args '(,charset))
             ,(format "(%s)" (charset-description charset)))
            ("code point"
-            ,(let ((split (split-char char)))
-               `(insert-text-button
-                 ,(if (= (charset-dimension charset) 1)
-                      (format "#x%02X" (nth 1 split))
-                    (format "#x%02X #x%02X" (nth 1 split)
-                            (nth 2 split)))
-                 'action (lambda (&rest ignore)
-                           (list-charset-chars ',charset)
-                           (with-selected-window
-                               (get-buffer-window "*Character List*" 0)
-                             (goto-char (point-min))
-                             (forward-line 2) ;Skip the header.
-                             (let ((case-fold-search nil))
-                               (search-forward ,(char-to-string char)
-                                               nil t))))
-                 'help-echo
-                 "mouse-2, RET: show this character in its character set")))
+            ,(let ((str (if (integerp code)
+                            (format (if (< code 256) "0x%02X" "0x%04X") code)
+                          (format "0x%04X%04X" (car code) (cdr code)))))
+               (if (<= (charset-dimension charset) 2)
+                   `(insert-text-button
+                     ,str
+                     'action (lambda (&rest ignore)
+                               (list-charset-chars ',charset)
+                               (with-selected-window
+                                   (get-buffer-window "*Character List*" 0)
+                                 (goto-char (point-min))
+                                 (forward-line 2) ;Skip the header.
+                                 (let ((case-fold-search nil))
+                                   (if (search-forward ,(char-to-string char)
+                                                       nil t)
+                                       (goto-char (match-beginning 0))))))
+                     'help-echo
+                     "mouse-2, RET: show this character in its character set")
+                 str)))
            ("syntax"
             ,(let ((syntax (syntax-after pos)))
                (with-temp-buffer
@@ -489,13 +421,6 @@ as well as widgets, buttons, overlays, and text properties."
                   (mapcar #'(lambda (x) (format "%c:%s"
                                                 x (category-docstring x)))
                           (category-set-mnemonics category-set)))))
-           ,@(let ((props (aref char-code-property-table char))
-                   ps)
-               (when props
-                 (while props
-                   (push (format "%s:" (pop props)) ps)
-                   (push (format "%s;" (pop props)) ps))
-                 (list (cons "Properties" (nreverse ps)))))
            ("to input"
             ,@(let ((key-list (and (eq input-method-function
                                        'quail-input-method)
@@ -570,9 +495,9 @@ as well as widgets, buttons, overlays, and text properties."
                                (save-excursion (goto-char pos)
                                                (looking-at "[ \t]+$")))
                           'trailing-whitespace)
-                         ((and nobreak-char-display unicode (eq unicode '#xa0))
+                         ((and nobreak-char-display char (eq char '#xa0))
                           'nobreak-space)
-                         ((and nobreak-char-display unicode (eq unicode '#xad))
+                         ((and nobreak-char-display char (eq char '#xad))
                           'escape-glyph)
                          ((and (< char 32) (not (memq char '(9 10))))
                           'escape-glyph)))))
@@ -580,11 +505,10 @@ as well as widgets, buttons, overlays, and text properties."
                                     `(insert-text-button
                                       ,(symbol-name face)
                                       'type 'help-face 'help-args '(,face))))))
-           ,@(let ((unicodedata (and unicode
-                                     (describe-char-unicode-data unicode))))
+           ,@(let ((unicodedata (describe-char-unicode-data char)))
                (if unicodedata
                    (cons (list "Unicode data" " ") unicodedata)))))
-    (setq max-width (apply #'max (mapcar #'(lambda (x)
+    (setq max-width (apply #'max (mapcar #'(lambda (x) 
                                             (if (cadr x) (length (car x)) 0))
                                         item-list)))
     (help-setup-xref nil (interactive-p))
@@ -659,29 +583,60 @@ as well as widgets, buttons, overlays, and text properties."
            (if (cadr composition)
                (insert " with the following character(s) \""
                        (cadr composition) "\"")))
-         (insert " by the rule:\n\t("
-                 (mapconcat (lambda (x)
-                              (format (if (consp x) "%S" "?%c") x))
-                            (nth 2 composition)
-                            " ")
-                 ")")
-         (insert  "\nThe component character(s) are displayed by ")
-         (if (display-graphic-p (selected-frame))
+         (if (and (vectorp (nth 2 composition))
+                  (vectorp (aref (nth 2 composition) 0)))
              (progn
-               (insert "these fonts (glyph codes):")
-               (dolist (elt component-chars)
-                 (insert "\n " (car elt) ?:
-                         (propertize " " 'display '(space :align-to 5))
-                         (if (cdr elt)
-                             (format "%s (#x%02X)" (cadr elt) (cddr elt))
-                           "-- no font --"))))
-           (insert "these terminal codes:")
-           (dolist (elt component-chars)
-             (insert "\n  " (car elt) ":"
-                     (propertize " " 'display '(space :align-to 5))
-                     (or (cdr elt) "-- not encodable --"))))
-         (insert "\nSee the variable `reference-point-alist' for "
-                 "the meaning of the rule.\n"))
+               (insert " using this font:\n  "
+                       (aref (query-font (aref (aref (nth 2 composition) 0) 0))
+                             0)
+                       "\nby these glyphs:\n")
+               (mapc (lambda (x) (insert (format "  %S\n" x)))
+                     (nth 2 composition)))
+           (insert " by the rule:\n\t("
+                   (mapconcat (lambda (x)
+                                (if (consp x) (format "%S" x)
+                                  (if (= x ?\t)
+                                      (single-key-description x)
+                                    (string ?? x))))
+                              (nth 2 composition)
+                              " ")
+                   ")")
+           (insert  "\nThe component character(s) are displayed by ")
+           (if (display-graphic-p (selected-frame))
+               (progn
+                 (insert "these fonts (glyph codes):")
+                 (dolist (elt component-chars)
+                   (if (/= (car elt) ?\t)
+                       (insert "\n " (car elt) ?:
+                               (propertize " " 'display '(space :align-to 5))
+                               (if (cdr elt)
+                                   (format "%s (#x%02X)" (cadr elt) (cddr elt))
+                                 "-- no font --")))))
+             (insert "these terminal codes:")
+             (dolist (elt component-chars)
+               (insert "\n  " (car elt) ":"
+                       (propertize " " 'display '(space :align-to 4))
+                       (or (cdr elt) "-- not encodable --"))))
+           (insert "\nSee the variable `reference-point-alist' for "
+                   "the meaning of the rule.\n")))
+
+       (if (not describe-char-unidata-list)
+           (insert "\nCharacter code properties are not shown: ")
+         (insert "\nCharacter code properties: "))
+       (insert-text-button
+        "customize what to show"
+        'action (lambda (&rest ignore)
+                  (customize-variable
+                   'describe-char-unidata-list)))
+       (insert "\n")
+       (dolist (elt describe-char-unidata-list)
+         (let ((val (get-char-code-property char elt))
+               description)
+           (when val
+             (setq description (char-code-property-description elt val))
+             (if description
+                 (insert (format "  %s: %s (%s)\n" elt val description))
+               (insert (format "  %s: %s\n" elt val))))))
 
         (if text-props-desc (insert text-props-desc))
        (setq help-xref-stack-item (list 'help-insert-string (buffer-string)))
index c34bf8105ea30a504cab30f5309358ca42ec9b2e..749956091df004d679b94ee46a2d212a47956645 100644 (file)
@@ -842,6 +842,7 @@ DIRNAME must be the directory in which the desktop file will be saved."
     ((eq desktop-file-name-format 'local) (file-relative-name filename dirname))
     (t (expand-file-name filename))))
 
+
 ;; ----------------------------------------------------------------------------
 ;;;###autoload
 (defun desktop-save (dirname &optional release)
index 653d5b8360bd7e6b2666e285bf8fe8679581d29e..201e4d6ce89ae9dd2a8fcef93087b4fb5e979e7f 100644 (file)
@@ -125,7 +125,7 @@ Valid symbols are `truncation', `wrap', `escape', `control',
   (or standard-display-table
       (setq standard-display-table (make-display-table)))
   (while (<= l h)
-    (if (and (>= l ?\s) (char-valid-p l))
+    (if (and (>= l ?\s) (characterp l))
        (aset standard-display-table l nil))
     (setq l (1+ l))))
 
@@ -189,20 +189,20 @@ X frame."
 (defun make-glyph-code (char &optional face)
   "Return a glyph code representing char CHAR with face FACE."
   ;; Due to limitations on Emacs integer values, faces with
-  ;; face id greater that 4091 are silently ignored.
-  (if (and face (<= (face-id face) #xfff))
-      (logior char (lsh (face-id face) 19))
+  ;; face id greater that 512 are silently ignored.
+  (if (and face (<= (face-id face) #x1ff))
+      (logior char (lsh (face-id face) 22))
     char))
 
 ;;;###autoload
 (defun glyph-char (glyph)
   "Return the character of glyph code GLYPH."
-  (logand glyph #x7ffff))
+  (logand glyph #x3fffff))
 
 ;;;###autoload
 (defun glyph-face (glyph)
   "Return the face of glyph code GLYPH, or nil if glyph has default face."
-  (let ((face-id (lsh glyph -19)))
+  (let ((face-id (lsh glyph -22)))
     (and (> face-id 0)
         (car (delq nil (mapcar (lambda (face)
                                  (and (eq (get face 'face) face-id)
index 72ce4c6d7775eb79b05c8074fcc3ebbda0f5c598..dbbab8252db9ca37e4c7b35beec8837802b92ecb 100644 (file)
@@ -148,7 +148,9 @@ Return nil if URI is not a local file."
       (setq f (replace-regexp-in-string
               "%[A-Fa-f0-9][A-Fa-f0-9]"
               (lambda (arg)
-                (format "%c" (string-to-number (substring arg 1) 16)))
+                (let ((str (make-string 1 0)))
+                  (aset str 0 (string-to-number (substring arg 1) 16))
+                  str))
               f t t))
       (let* ((decoded-f (decode-coding-string
                         f
index abd08f4b0b9d8fa937ee4b9177c92a51b9949829..55138f18bca67705915fb1d93b23f86b25c1afab 100644 (file)
@@ -768,7 +768,7 @@ This function assumes that the events can be stored in a string."
       (setq res (edmacro-subseq res 2 -2)))
     (if (and (not need-vector)
             (loop for ch across res
-                  always (and (char-valid-p ch)
+                  always (and (characterp ch)
                               (let ((ch2 (logand ch (lognot ?\M-\^@))))
                                 (and (>= ch2 0) (<= ch2 127))))))
        (concat (loop for ch across res
index 14877e1b18f487d6b47e0cea825404aabce074d5..669c055de263a6e1330650b58ef01b0d6bdd82e7 100644 (file)
@@ -642,8 +642,9 @@ directory or directories specified."
 (defun batch-update-autoloads ()
   "Update loaddefs.el autoloads in batch mode.
 Calls `update-directory-autoloads' on the command line arguments."
-  (apply 'update-directory-autoloads command-line-args-left)
-  (setq command-line-args-left nil))
+  (let ((args command-line-args-left))
+    (setq command-line-args-left nil)
+    (apply 'update-directory-autoloads args)))
 
 (provide 'autoload)
 
index b021b8d9f1a7e9259350f836ebfec2731d77823b..eb8c80af145d6f70f91340504df9b301ecfd0313 100644 (file)
         char-equal char-to-string char-width
         compare-strings concat coordinates-in-window-p
         copy-alist copy-sequence copy-marker cos count-lines
+        decdoe-char
         decode-time default-boundp default-value documentation downcase
-        elt exp expt encode-time error-message-string
+        elt encode-char exp expt encode-time error-message-string
         fboundp fceiling featurep ffloor
         file-directory-p file-exists-p file-locked-p file-name-absolute-p
         file-newer-than-file-p file-readable-p file-symlink-p file-writable-p
         int-to-string intern-soft
         keymap-parent
         length local-variable-if-set-p local-variable-p log log10 logand
-        logb logior lognot logxor lsh
+        logb logior lognot logxor lsh langinfo
         make-list make-string make-symbol
         marker-buffer max member memq min mod multibyte-char-to-unibyte
         next-window nth nthcdr number-to-string
         string-to-int string-to-number substring sxhash symbol-function
         symbol-name symbol-plist symbol-value string-make-unibyte
         string-make-multibyte string-as-multibyte string-as-unibyte
+        string-to-multibyte
         tan truncate
         unibyte-char-to-multibyte upcase user-full-name
         user-login-name user-original-login-name user-variable-p
        '(arrayp atom
         bobp bolp bool-vector-p
         buffer-end buffer-list buffer-size buffer-string bufferp
-        car-safe case-table-p cdr-safe char-or-string-p commandp cons consp
+        car-safe case-table-p cdr-safe char-or-string-p characterp
+        charsetp commandp cons consp
         current-buffer current-global-map current-indentation
         current-local-map current-minor-mode-maps current-time
         current-time-string current-time-zone
         invocation-directory invocation-name
         keymapp
         line-beginning-position line-end-position list listp
-        make-marker mark mark-marker markerp memory-limit minibuffer-window
+        make-marker mark mark-marker markerp max-char
+        memory-limit minibuffer-window
         mouse-movement-p
         natnump nlistp not null number-or-marker-p numberp
         one-window-p overlayp
-        point point-marker point-min point-max preceding-char processp
+        point point-marker point-min point-max preceding-char primary-charset
+        processp
         recent-keys recursion-depth
         safe-length selected-frame selected-window sequencep
         standard-case-table standard-syntax-table stringp subrp symbolp
index eaff1ad72f53dad2aca4948689b8d1ab8b8ca394..82866a07ff7de4c9dce1c0c2c87bfcb6b51604b8 100644 (file)
@@ -864,7 +864,7 @@ otherwise pop it")
               (setcar (cdr bytes) (logand pc 255))
               (setcar bytes (lsh pc -8))))
        (setq patchlist (cdr patchlist))))
-    (concat (nreverse bytes))))
+    (string-make-unibyte (concat (nreverse bytes)))))
 
 \f
 ;;; compile-time evaluation
@@ -1949,13 +1949,13 @@ and will be removed soon.  See (elisp)Backquote in the manual."))
        (delete-region (point) (progn (re-search-forward "^(")
                                      (beginning-of-line)
                                      (point)))
-       (insert ";;; This file contains multibyte non-ASCII characters\n"
-               ";;; and therefore cannot be loaded into Emacs 19.\n")
-       ;; Replace "19" or "19.29" with "20", twice.
+       (insert ";;; This file contains utf-8 non-ASCII characters\n"
+               ";;; and therefore cannot be loaded into Emacs 21 or earlier.\n")
+       ;; Replace "19" or "19.29" with "22", twice.
        (re-search-forward "19\\(\\.[0-9]+\\)")
-       (replace-match "20")
+       (replace-match "23")
        (re-search-forward "19\\(\\.[0-9]+\\)")
-       (replace-match "20")
+       (replace-match "23")
        ;; Now compensate for the change in size,
        ;; to make sure all positions in the file remain valid.
        (setq delta (- (point-max) old-header-end))
@@ -1970,7 +1970,7 @@ and will be removed soon.  See (elisp)Backquote in the manual."))
     (set-buffer outbuffer)
     (goto-char (point-min))
     ;; The magic number of .elc files is ";ELC", or 0x3B454C43.  After
-    ;; that is the file-format version number (18, 19 or 20) as a
+    ;; that is the file-format version number (18, 19, 20, or 23) as a
     ;; byte, followed by some nulls.  The primary motivation for doing
     ;; this is to get some binary characters up in the first line of
     ;; the file so that `diff' will simply say "Binary files differ"
@@ -1982,7 +1982,7 @@ and will be removed soon.  See (elisp)Backquote in the manual."))
 
     (insert
      ";ELC"
-     (if (byte-compile-version-cond byte-compile-compatibility) 18 20)
+     (if (byte-compile-version-cond byte-compile-compatibility) 18 23)
      "\000\000\000\n"
      )
     (insert ";;; Compiled by "
@@ -2038,7 +2038,7 @@ and will be removed soon.  See (elisp)Backquote in the manual."))
           ;; Insert semicolons as ballast, so that byte-compile-fix-header
           ;; can delete them so as to keep the buffer positions
           ;; constant for the actual compiled code.
-          ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n"))
+          ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n"))
       ;; Here if we want Emacs 18 compatibility.
       (when dynamic-docstrings
        (error "Version-18 compatibility doesn't support dynamic doc strings"))
@@ -3485,6 +3485,8 @@ That command is designed for interactive use only" fn))
 (byte-defop-compiler-1 mapc byte-compile-funarg)
 (byte-defop-compiler-1 maphash byte-compile-funarg)
 (byte-defop-compiler-1 map-char-table byte-compile-funarg)
+(byte-defop-compiler-1 map-char-table byte-compile-funarg-2)
+;; map-charset-chars should be funarg but has optional third arg
 (byte-defop-compiler-1 sort byte-compile-funarg-2)
 (byte-defop-compiler-1 let)
 (byte-defop-compiler-1 let*)
index e47247557d01dc78d6ef382ba8d3b5de001b1fd0..4cdf70363692d8b990d9bda4ba5c283c9b291c66 100644 (file)
@@ -283,7 +283,7 @@ Not documented
 ;;;;;;  do* do loop return-from return block etypecase typecase ecase
 ;;;;;;  case load-time-value eval-when destructuring-bind function*
 ;;;;;;  defmacro* defun* gentemp gensym cl-compile-time-init) "cl-macs"
-;;;;;;  "cl-macs.el" "c9b59a98f2066022e751aa5203b8d6b0")
+;;;;;;  "cl-macs.el" "6ebe05f6ba95a14ea35d74ef52c17882")
 ;;; Generated autoloads from cl-macs.el
 
 (autoload 'cl-compile-time-init "cl-macs" "\
index f3f28de5198a3b4c38987b1880e3f142415342cb..b99de0aac98b480c5302708f933de48968c2fd19 100644 (file)
@@ -2452,7 +2452,7 @@ The type name can then be used in `typecase', `check-type', etc."
            ((eq type 'real) `(numberp ,val))
            ((eq type 'fixnum) `(integerp ,val))
            ;; FIXME: Should `character' accept things like ?\C-\M-a ?  -stef
-           ((memq type '(character string-char)) `(char-valid-p ,val))
+           ((memq type '(character string-char)) `(characterp ,val))
            (t
             (let* ((name (symbol-name type))
                    (namep (intern (concat name "p"))))
index b53ec9c217b18eea35b57d1180f27213e8f7f422..77781ec390e140f67307679b634bad142ec08369 100644 (file)
@@ -43,11 +43,9 @@ A value of nil means to search whole buffer."
   :type '(choice (integer :tag "Limit")
                 (const :tag "No limit")))
 
-;; The character classes have the Latin-1 version and the Latin-9
-;; version, which is probably enough.
 (defcustom copyright-regexp
- "\\([\81©\81©]\\|@copyright{}\\|[Cc]opyright\\s *:?\\s *\\(?:(C)\\)?\
-\\|[Cc]opyright\\s *:?\\s *[\81©\81©]\\)\
+ "\\(©\\|@copyright{}\\|[Cc]opyright\\s *:?\\s *\\(?:(C)\\)?\
+\\|[Cc]opyright\\s *:?\\s *©\\)\
 \\s *\\([1-9]\\([-0-9, ';/*%#\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)"
   "What your copyright notice looks like.
 The second \\( \\) construct must match the years."
@@ -258,7 +256,7 @@ Uses heuristic: year >= 50 means 19xx, < 50 means 20xx."
 
 ;; For the copyright sign:
 ;; Local Variables:
-;; coding: emacs-mule
+;; coding: utf-8
 ;; End:
 
 ;; arch-tag: b4991afb-b6b1-4590-bebe-e076d9d4aee8
index 805507adb49ef1616560668624ff3b263e7d1aa7..99016d7c43a57e12fd0bc032152213f47135e014 100644 (file)
@@ -240,9 +240,9 @@ Some generic modes are defined in `generic-x.el'."
        (when (consp start)
          (setq end (cdr start))
          (setq start (car start)))
-       (when (char-valid-p start) (setq start (char-to-string start)))
+       (when (characterp start) (setq start (char-to-string start)))
        (cond
-        ((char-valid-p end)   (setq end (char-to-string end)))
+        ((characterp end)   (setq end (char-to-string end)))
         ((zerop (length end)) (setq end "\n")))
 
        ;; Setup the vars for `comment-region'
index f89909e0af8090a9cde64e7d2f7a80ac79c9056d..c5de234c972bd8a16b167d2ced12e692367f6619 100644 (file)
@@ -263,13 +263,21 @@ This means the number of non-shy regexp grouping constructs
     (map-char-table
      (lambda (c v)
        (when v
-        (if (= (1- c) end) (setq end c)
-          (if (> end (+ start 2))
+        (if (consp c)
+            (if (= (1- (car c)) end) (setq end (cdr c))
+              (if (> end (+ start 2))
+                  (setq charset (format "%s%c-%c" charset start end))
+                (while (>= end start)
+                  (setq charset (format "%s%c" charset start))
+                  (incf start)))
+              (setq start (car c) end (cdr c)))
+          (if (= (1- c) end) (setq end c)
+            (if (> end (+ start 2))
               (setq charset (format "%s%c-%c" charset start end))
             (while (>= end start)
               (setq charset (format "%s%c" charset start))
               (incf start)))
-          (setq start c end c))))
+            (setq start c end c)))))
      charmap)
     (when (>= end start)
       (if (> end (+ start 2))
index 413f5e063df5e3230fe284ab6bc31e412e1faa28..307eadd069a375f250b0008e73f8ef76733505c8 100644 (file)
@@ -234,7 +234,7 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.'"
         (bind
          (cond
           ((or (eq setup 'numeric)
-               (char-valid-p setup))
+               (characterp setup))
            (if (eq decimal 'numeric)
                (setq decimal nil))
            (vector (or decimal ?.) ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9))
index 180515b7b79fe70449043f6e2bf2965a1c73cb85..eb618f6b6b8912f0b6b0b32747a33a01cade5714 100644 (file)
@@ -276,8 +276,11 @@ This is used by `eshell-watch-for-password-prompt'."
        (map-char-table
         (function
          (lambda (key val)
-           (and (>= key 256)
-                (/= (char-syntax key) ?w)
+           (and (if (consp key)
+                    (and (>= (car key) 128)
+                         (/= (char-syntax (car key)) ?w))
+                  (and (>= key 256)
+                       (/= (char-syntax key) ?w)))
                 (modify-syntax-entry key "_   "
                                      eshell-mode-syntax-table))))
         (standard-syntax-table)))))
index 953284e539213ee9389d25f57be32924ede38254..ec2279dff29679949fef24fe17e9829714d4e966 100644 (file)
@@ -196,7 +196,7 @@ switch is unrecognized."
          (setq extcmd (eshell-search-path (cadr extcmd)))
          (if extcmd
              (throw 'eshell-ext-command extcmd)
-           (if (char-valid-p switch)
+           (if (characterp switch)
                (error "%s: unrecognized option -%c" name switch)
              (error "%s: unrecognized option --%s" name switch))))))))
 
index 18398b5e86f996d1afc78f6c3e8ec7cb704bbf15..11d9ba7b8eb317505ebc53bdf7a3ee4afa7c465a 100644 (file)
@@ -81,11 +81,11 @@ ALTERNATIVE2 etc."
 (defcustom face-font-registry-alternatives
   (if (eq system-type 'windows-nt)
       '(("iso8859-1" "ms-oemlatin")
-       ("gb2312.1980" "gb2312")
+       ("gb2312.1980" "gb2312" "gbk" "gb18030")
        ("jisx0208.1990" "jisx0208.1983" "jisx0208.1978")
        ("ksc5601.1989" "ksx1001.1992" "ksc5601.1987")
        ("muletibetan-2" "muletibetan-0"))
-    '(("gb2312.1980" "gb2312.80&gb8565.88" "gbk*")
+    '(("gb2312.1980" "gb2312.80&gb8565.88" "gbk" "gb18030")
       ("jisx0208.1990" "jisx0208.1983" "jisx0208.1978")
       ("ksc5601.1989" "ksx1001.1992" "ksc5601.1987")
       ("muletibetan-2" "muletibetan-0")))
@@ -103,6 +103,76 @@ REGISTRY, ALTERNATIVE1, ALTERNATIVE2, and etc."
           (internal-set-alternative-font-registry-alist value)))
 
 
+(defcustom font-weight-table
+  (if (eq system-type 'windows-nt)
+      '((thin . 100)
+        (ultralight . 200) (ultra-light . 200) (extra-light . 200)
+        (light . 300)
+        (semilight . 330) (semi-light . 330)
+        (book . 350)
+        (normal . 400) (regular . 400)
+        (medium . 500) 
+        (semibold . 600) (semi-bold . 600) (demibold . 600) (demi . 600)
+        (bold . 700)
+        (extrabold . 800) (extra-bold . 800)
+        (ultrabold . 800) (ultra-bold . 800)
+        (black . 900) (heavy . 900))
+    '((thin . 0)
+      (ultralight . 40) (ultra-light . 40) (extra-light . 40)
+      (light . 50)
+      (semilight . 65) (semi-light . 65)
+      (book . 75)
+      (medium . 100) (regular . 100) (normal . 100)
+      (semibold . 180) (semi-bold . 180) (demibold . 180) (demi . 180)
+      (bold . 200)
+      (extrabold . 205) (extra-bold . 205)
+      (ultrabold . 205) (ultra-bold . 205)
+      (black . 210) (heavy . 210)))
+  "*Alist of font weight symbols vs the corresponding numeric values."
+  :tag "Font weight table"
+  :version "23.1"
+  :group 'font-selection
+  :type '(repeat (cons symbol integer))
+  :set #'(lambda (symbol value)
+          (set-default symbol value)
+          (if (fboundp 'internal-set-font-style-table)
+              (internal-set-font-style-table :weight value))))
+
+(defcustom font-slant-table
+  '((ro . 0)
+    (ri . 10)
+    (r . 100) (roman . 100) (normal . 100)
+    (i . 200) (italic . 200) (ot . 200)
+    (o . 210) (oblique . 210))
+  "*Alist of font slant symbols vs the corresponding numeric values."
+  :tag "Font slant table"
+  :version "23.1"
+  :group 'font-selection
+  :type '(repeat (cons symbol integer))
+  :set #'(lambda (symbol value)
+          (set-default symbol value)
+          (if (fboundp 'internal-set-font-style-table)
+              (internal-set-font-style-table :slant value))))
+
+(defcustom font-swidth-table
+  '((ultracondensed . 50) (ultra-condensed . 50)
+    (extracondensed . 63) (extra-condensed . 63)
+    (condensed . 75) (compressed . 75) (narrow . 75)
+    (semicondensed . 87) (semi-condensed . 87)
+    (normal . 100) (medium . 100) (regular . 100)
+    (semiexpanded . 113) (semi-expanded . 113) (demiexpanded . 113)
+    (expanded . 125)
+    (extraexpanded . 150) (extra-expanded . 150)
+    (ultraexpanded . 200) (ultra-expanded . 200) (wide . 200))
+  "*Alist of font swidth symbols vs the corresponding numeric values."
+  :tag "Font swidth table"
+  :version "23.1"
+  :group 'font-selection
+  :type '(repeat (cons symbol integer))
+  :set #'(lambda (symbol value)
+          (set-default symbol value)
+          (if (fboundp 'internal-set-font-style-table)
+              (internal-set-font-style-table :width value))))
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Creation, copying.
@@ -1110,7 +1180,7 @@ of a global face.  Value is the new attribute value."
 If optional argument FRAME is nil or omitted, use the selected frame."
   (let ((completion-ignore-case t))
     (completing-read (format "Set font attributes of face `%s' from font: " face)
-                    (x-list-fonts "*" nil frame))))
+                    (append (fontset-list) (x-list-fonts "*" nil frame)))))
 
 
 (defun read-all-face-attributes (face &optional frame)
@@ -1283,7 +1353,8 @@ If FRAME is omitted or nil, use the selected frame."
                  (:box . "Box")
                  (:inverse-video . "Inverse")
                  (:stipple . "Stipple")
-                 (:font . "Font or fontset")
+                 (:font . "Font")
+                 (:fontset . "Fontset")
                  (:inherit . "Inherit")))
        (max-width (apply #'max (mapcar #'(lambda (x) (length (cdr x)))
                                        attrs))))
index 96306be221574a70c90797da90af235a1ae2d478..147b98f5a557fcde8e7a78f23f4c10164d144da1 100644 (file)
@@ -2134,7 +2134,8 @@ This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item."
            ;; Move over any item value, etc., to the next item.
            (while (not (looking-at "[ \t\n]*\\(\\(,\\)\\|;\\|\\'\\)"))
              (goto-char (or (scan-sexps (point) 1) (point-max))))
-           (goto-char (match-end 2)))
+           (if (match-end 2)
+               (goto-char (match-end 2))))
        (error t)))))
 
 ;; C preprocessor(cpp) is used outside of C, C++ and Objective-C source file.
index 6e0abd7724e9af417684390ac023bc19367bc906..480ed7def8723f57f10baffed30b4974d97a4891 100644 (file)
           ;; Plain only exists so that there is an obvious neutral choice in
           ;; the completion list.
           nil nil nil nil nil)
-    (ibm   "IBM Code Page 850 (DOS)"
-          nil                          ; The original "1\\(^\\)" is obscure.
-          "recode -f ibm-pc:latin1" "recode -f latin1:ibm-pc" t nil)
-    (mac   "Apple Macintosh"
-          nil
-          "recode -f mac:latin1" "recode -f latin1:mac" t nil)
-    (hp    "HP Roman8"
-          nil
-          "recode -f roman8:latin1" "recode -f latin1:roman8" t nil)
     (TeX   "TeX (encoding)"
           nil
           iso-tex2iso iso-iso2tex t nil)
diff --git a/lisp/gnus/ChangeLog.unicode b/lisp/gnus/ChangeLog.unicode
new file mode 100644 (file)
index 0000000..bee0154
--- /dev/null
@@ -0,0 +1,138 @@
+2006-11-27  Zhang Wei  <id.brep@gmail.com>
+
+       * rfc2047.el (rfc2047-charset-encoding-alist): Add gbk and GB18030.
+
+       * mm-util.el (mm-mime-mule-charset-alist): Add gbk and GB18030.
+
+2006-09-25  Kenichi Handa  <handa@m17n.org>
+
+       * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Use correct
+       form for specifying a mode in the header line.
+
+2004-09-27  Miles Bader  <miles@gnu.org>
+
+       * mml.el (mml-parse-1): Remove apparently vestigial use of
+       `mm-hack-charsets'.
+       * mm-bodies.el (mm-encode-body): Likewise.
+
+2003-11-17  Kenichi Handa  <handa@m17n.org>
+
+       * mm-util.el (mm-enable-multibyte): Call set-buffer-multibyte
+       with the arg `to'.
+
+2003-11-13  Kenichi Handa  <handa@m17n.org>
+
+       * rfc2104.el (rfc2104-hexstring-to-byte-list): Renamed from
+       rfc2104-hexstring-to-bitstring and changed to return a byte list.
+       (rfc2104-hash): Convert the result of concat to unibyte string.
+
+2002-10-16  Dave Love  <fx@gnu.org>
+
+       * mm-bodies.el (mm-encode-body): Doc fix.
+
+       * qp.el (quoted-printable-encode-region): Fix non-Emacs 22 case.
+
+2002-10-09  Dave Love  <fx@gnu.org>
+
+       * qp.el (quoted-printable-encode-region): Fix non-multibyte search
+       for Emacs 22.
+
+2002-10-07  Dave Love  <fx@gnu.org>
+
+       * qp.el (quoted-printable-encode-region): Go to start of range
+       before searching.
+       (quoted-printable-encode-region): Use multibyte-char-to-unibyte.
+
+2002-09-05  Dave Love  <fx@gnu.org>
+
+       * qp.el (quoted-printable-decode-region): Use mm-insert-byte.
+
+       * mm-util.el (mm-hack-charsets, mm-iso-8859-15-compatible) 
+       (mm-iso-8859-x-to-15-table, mm-iso-8859-x-to-15-region): Deleted.
+       (mm-find-mime-charset-region): Remove hack-charsets stuff.
+       (mm-insert-byte): New.
+
+       * rfc2047.el (message-posting-charset): defvar when compiling.
+       (rfc2047-header-encoding-alist): Add `address-mime' part.
+       (rfc2047-charset-encoding-alist): Use B for iso-8859-7.  Doc fix.
+       (rfc2047-q-encoding-alist): Augment header list.
+       (rfc2047-encodable-p): Use mm-find-mime-charset-region.
+       (rfc2047-special-chars, rfc2047-non-special-chars): New.
+       (rfc2047-dissect-region, rfc2047-encode-region, rfc2047-encode):
+       Rewritten to avoid charset stuff and to take account of rfc2822
+       tokens.
+       (rfc2047-encode-message-header): Don't include header name field
+       in encoding.  Add `address-mime' case and bind
+       rfc2047-special-chars for `mime' case.
+
+2002-08-21  Kenichi Handa  <handa@etl.go.jp>
+
+       * qp.el (quoted-printable-decode-region): Insert bytes by
+       `insert-byte'.
+
+2002-08-18  Dave Love  <fx@gnu.org>
+
+       * rfc2047.el (rfc2047-encode): Fix last change.
+
+2002-07-30  Dave Love  <fx@gnu.org>
+
+       * rfc2047.el (rfc2047-charset-encoding-alist): Use B for Hebrew.
+       Doc fix.
+
+       * gnus-start.el (gnus-read-newsrc-el-file): Don't bind
+       coding-system-for-read.
+       (gnus-gnus-to-quick-newsrc-format): Insert coding cookie.
+
+2002-07-09  Dave Love  <fx@gnu.org>
+
+       * mm-util.el (mm-find-mime-charset-region): Fix :mime-charset
+       part.
+
+2002-06-26  Dave Love  <fx@gnu.org>
+
+       * rfc2047.el (rfc2047-encodable-p): Avoid mm-find-charset-region.
+       (rfc2047-dissect-region): Don't record charsets.
+       (rfc2047-encode): Remove arg CHARSET.
+       (rfc2047-encode-region): Change rfc2047-encode call.
+
+2002-06-24  Dave Love  <fx@gnu.org>
+
+       * mm-util.el (mm-mule4-p, mm-enable-multibyte-mule4)
+       (mm-disable-multibyte-mule4)    
+       (mm-with-unibyte-current-buffer-mule4): Deleted.
+
+       * gnus-sum.el (gnus-summary-mode, gnus-summary-display-article)
+       (gnus-summary-select-article, gnus-summary-edit-article): Use
+       mm-{en,dis}able-multibyte, not mm-{en,dis}able-multibyte-mule4.
+
+       * message.el (message-forward-make-body): Use
+       mm-{en,dis}able-multibyte, not mm-{en,dis}able-multibyte-mule4.
+
+       * qp.el (quoted-printable-encode-region): Avoid
+       find-charset-region.
+
+       * mm-bodies.el (mm-body-7-or-8): Don't special-case Mule.
+       (mm-encode-body): Just call mm-encode-coding-region in encoding
+       case.
+
+2002-05-27  Dave Love  <fx@gnu.org>
+
+       * mm-util.el (mm-auto-save-coding-system): Prefer utf-8-emacs
+       coding system to emacs-mule.
+
+2002-05-14  Dave Love  <fx@gnu.org>
+
+       * mm-util.el (mm-mime-mule-charset-alist)
+       (mm-mule-charset-to-mime-charset, mm-charset-to-coding-system)
+       (mm-mime-charset, mm-find-mime-charset-region): Look for
+       `:mime-charset' property of coding systems before `mime-charset'.
+
+;; Local Variables:
+;; coding: iso-2022-7bit
+;; End:
+
+    Copyright (C) 2002 Free Software Foundation, Inc.
+  Copying and distribution of this file, with or without modification,
+  are permitted provided the copyright notice and this notice are preserved.
+
+;;; arch-tag: d7f0febd-4aca-429a-9493-d71cd04ad9f0
index 75f9dda7c2be66fc43438ee6759be7474ad8e925..bd0e4efafade344c0ef2caa57a4e7e24132f598a 100644 (file)
@@ -463,6 +463,8 @@ Can be used to turn version control on or off."
 
 ;;; Internal variables
 
+;; Fixme: deal with old emacs-mule when mm-universal-coding-system is
+;; utf-8-emacs.
 (defvar gnus-ding-file-coding-system mm-universal-coding-system
   "Coding system for ding file.")
 
@@ -2404,8 +2406,7 @@ If FORCE is non-nil, the .newsrc file is read."
       ;; We always, always read the .eld file.
       (gnus-message 5 "Reading %s..." ding-file)
       (let (gnus-newsrc-assoc)
-       (let ((coding-system-for-read gnus-ding-file-coding-system))
-         (gnus-load ding-file))
+       (gnus-load ding-file)
        ;; Older versions of `gnus-format-specs' are no longer valid
        ;; in Oort Gnus 0.01.
        (let ((version
@@ -2837,7 +2838,8 @@ If FORCE is non-nil, the .newsrc file is read."
 
 (defun gnus-gnus-to-quick-newsrc-format (&optional minimal name &rest specific-variables)
   "Print Gnus variables such as `gnus-newsrc-alist' in Lisp format."
-    (princ ";; -*- emacs-lisp -*-\n")
+    (princ (format ";; -*- mode:emacs-lisp; coding: %s; -*-\n"
+                  gnus-ding-file-coding-system))
     (if name
        (princ (format ";; %s\n" name))
       (princ ";; Gnus startup file.\n"))
index e7743d12d30452518cb9241bf903c9bd5063b562..758925b5c8b310d1414d18586423975f1fc2d70f 100644 (file)
@@ -104,8 +104,7 @@ If no encoding was done, nil is returned."
                                     (mm-charset-to-coding-system charset))
            charset)
        (goto-char (point-min))
-       (let ((charsets (mm-find-mime-charset-region (point-min) (point-max)
-                                                    mm-hack-charsets)))
+       (let ((charsets (mm-find-mime-charset-region (point-min) (point-max))))
          (cond
           ;; No encoding.
           ((null charsets)
index 8a2e34498cbd3d8cf085523adedcda27bee568f0..e6e5ea95d18b7498d471391c46b80a679df2b724 100644 (file)
@@ -492,6 +492,10 @@ could use `autoload-coding-system' here."
     (iso-2022-jp latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978)
     (euc-kr korean-ksc5601)
     (gb2312 chinese-gb2312)
+    (gbk chinese-gbk)
+    (gb18030 gb18030-2-byte
+            gb18030-4-byte-bmp gb18030-4-byte-smp
+            gb18030-4-byte-ext-1 gb18030-4-byte-ext-2)
     (big5 chinese-big5-1 chinese-big5-2)
     (tibetan tibetan)
     (thai-tis620 thai-tis620)
@@ -560,7 +564,7 @@ with Mule charsets.  It is completely useless for Emacs."
          cs mime mule alist)
       (while css
        (setq cs (pop css)
-             mime (or (coding-system-get cs :mime-charset) ; Emacs 23 (unicode)
+             mime (or (coding-system-get cs :mime-charset); Emacs 23 (unicode)
                       (coding-system-get cs 'mime-charset)))
        (when (and mime
                   (not (eq t (setq mule
@@ -569,36 +573,6 @@ with Mule charsets.  It is completely useless for Emacs."
          (push (cons mime (delq 'ascii mule)) alist)))
       (setq mm-mime-mule-charset-alist (nreverse alist)))))
 
-(defvar mm-hack-charsets '(iso-8859-15 iso-2022-jp-2)
-  "A list of special charsets.
-Valid elements include:
-`iso-8859-15'    convert ISO-8859-1, -9 to ISO-8859-15 if ISO-8859-15 exists.
-`iso-2022-jp-2'  convert ISO-2022-jp to ISO-2022-jp-2 if ISO-2022-jp-2 exists."
-)
-
-(defvar mm-iso-8859-15-compatible
-  '((iso-8859-1 "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE")
-    (iso-8859-9 "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE\xD0\xDD\xDE\xF0\xFD\xFE"))
-  "ISO-8859-15 exchangeable coding systems and inconvertible characters.")
-
-(defvar mm-iso-8859-x-to-15-table
-  (and (fboundp 'coding-system-p)
-       (mm-coding-system-p 'iso-8859-15)
-       (mapcar
-       (lambda (cs)
-         (if (mm-coding-system-p (car cs))
-             (let ((c (string-to-char
-                       (decode-coding-string "\341" (car cs)))))
-               (cons (char-charset c)
-                     (cons
-                      (- (string-to-char
-                          (decode-coding-string "\341" 'iso-8859-15)) c)
-                      (string-to-list (decode-coding-string (car (cdr cs))
-                                                            (car cs))))))
-           '(gnus-charset 0)))
-       mm-iso-8859-15-compatible))
-  "A table of the difference character between ISO-8859-X and ISO-8859-15.")
-
 (defcustom mm-coding-system-priorities
   (if (boundp 'current-language-environment)
       (let ((lang (symbol-value 'current-language-environment)))
@@ -852,27 +826,6 @@ This affects whether coding conversion should be attempted generally."
          default-enable-multibyte-characters
        t)))
 
-(defun mm-iso-8859-x-to-15-region (&optional b e)
-  (if (fboundp 'char-charset)
-      (let (charset item c inconvertible)
-       (save-restriction
-         (if e (narrow-to-region b e))
-         (goto-char (point-min))
-         (skip-chars-forward "\0-\177")
-         (while (not (eobp))
-           (cond
-            ((not (setq item (assq (char-charset (setq c (char-after)))
-                                   mm-iso-8859-x-to-15-table)))
-             (forward-char))
-            ((memq c (cdr (cdr item)))
-             (setq inconvertible t)
-             (forward-char))
-            (t
-             (insert-before-markers (prog1 (+ c (car (cdr item)))
-                                      (delete-char 1)))))
-           (skip-chars-forward "\0-\177")))
-       (not inconvertible))))
-
 (defun mm-sort-coding-systems-predicate (a b)
   (let ((priorities
         (mapcar (lambda (cs)
@@ -1012,32 +965,14 @@ charset, and a longer list means no appropriate charset."
        ;; Otherwise, we'll get nil, and the next setq will get invoked.
        (setq charsets (mm-xemacs-find-mime-charset b e))
 
+       ;; Fixme: won't work for unibyte Emacs 23:
+
        ;; We're not multibyte, or a single coding system won't cover it.
        (setq charsets
              (mm-delete-duplicates
               (mapcar 'mm-mime-charset
                       (delq 'ascii
                             (mm-find-charset-region b e))))))
-    (if (and (> (length charsets) 1)
-            (memq 'iso-8859-15 charsets)
-            (memq 'iso-8859-15 hack-charsets)
-            (save-excursion (mm-iso-8859-x-to-15-region b e)))
-       (dolist (x mm-iso-8859-15-compatible)
-         (setq charsets (delq (car x) charsets))))
-    (if (and (memq 'iso-2022-jp-2 charsets)
-            (memq 'iso-2022-jp-2 hack-charsets))
-       (setq charsets (delq 'iso-2022-jp charsets)))
-    ;; Attempt to reduce the number of charsets if utf-8 is available.
-    (if (and (featurep 'xemacs)
-            (> (length charsets) 1)
-            (mm-coding-system-p 'utf-8))
-       (let ((mm-coding-system-priorities
-              (cons 'utf-8 mm-coding-system-priorities)))
-         (setq charsets
-               (mm-delete-duplicates
-                (mapcar 'mm-mime-charset
-                        (delq 'ascii
-                              (mm-find-charset-region b e)))))))
     charsets))
 
 (defmacro mm-with-unibyte-buffer (&rest forms)
index 1c66353f4544161b4b62be9cf5c2383197aee0a7..c9dee3fc714cfbc1da50266dfdaebcb688887084 100644 (file)
@@ -284,8 +284,7 @@ part.  This is for the internal use, you should never modify the value.")
                         (list
                          (intern (downcase (cdr (assq 'charset tag))))))
                        (t
-                        (mm-find-mime-charset-region point (point)
-                                                     mm-hack-charsets))))
+                        (mm-find-mime-charset-region point (point)))))
        (when (and (not raw) (memq nil charsets))
          (if (or (memq 'unknown-encoding mml-confirmation-set)
                  (message-options-get 'unknown-encoding)
index 55d60ae3fb7c6535e82e3b4b1e6281c6bc7fe57c..aa9999a77222065ed0c8c53e33b4a54c0632c3ff 100644 (file)
@@ -78,6 +78,8 @@ The values can be:
     (iso-2022-jp . B)
     (iso-2022-kr . B)
     (gb2312 . B)
+    (gbk . B)
+    (gb18030 . B)
     (big5 . B)
     (cn-big5 . B)
     (cn-gb . B)
@@ -344,7 +346,7 @@ The buffer may be narrowed."
   ;; (make-char-table 'syntax-table '(2)) only works in Emacs.
   (let ((table (make-syntax-table)))
     ;; The following is done to work for setting all elements of the table
-    ;; in Emacs 21 and 22 and XEmacs; it appears to be the cleanest way.
+    ;; in Emacs 21-23 and XEmacs; it appears to be the cleanest way.
     ;; Play safe and don't assume the form of the word syntax entry --
     ;; copy it from ?a.
     (if (fboundp 'set-char-table-range)        ; Emacs
index 1c4fc9e2de0f35deedc9befa72a4bfb1ac6fd6a5..836d6e8a1f78ff1337d03595f53274abdae74b63 100644 (file)
@@ -53,6 +53,7 @@
 ;;; 1999-10-23  included in pgnus
 ;;; 2000-08-15  `rfc2104-hexstring-to-bitstring'
 ;;; 2000-05-12  added sha-1 example, added test case reference
+;;; 2003-11-13  change rfc2104-hexstring-to-bitstring to ...-byte-list
 
 ;;; Code:
 
        (rfc2104-hex-to-int (reverse (append str nil))))
     0))
 
-(defun rfc2104-hexstring-to-bitstring (str)
+(defun rfc2104-hexstring-to-byte-list (str)
   (let (out)
     (while (< 0 (length str))
       (push (rfc2104-hex-to-int (substring str -2)) out)
       (setq str (substring str 0 -2)))
-    (concat out)))
+    out))
 
 (defun rfc2104-hash (hash block-length hash-length key text)
   (let* (;; if key is longer than B, reset it to HASH(key)
     (setq k_ipad (mapcar (lambda (c) (logxor c rfc2104-ipad)) k_ipad))
     (setq k_opad (mapcar (lambda (c) (logxor c rfc2104-opad)) k_opad))
     ;; perform outer hash
-    (funcall hash (concat k_opad (rfc2104-hexstring-to-bitstring
-                                 ;; perform inner hash
-                                 (funcall hash (concat k_ipad text)))))))
+    (funcall hash
+            (encode-coding-string
+             (concat k_opad (rfc2104-hexstring-to-byte-list
+                             ;; perform inner hash
+                             (funcall hash (concat k_ipad text))))
+             'iso-latin-1))))
 
 (provide 'rfc2104)
 
index b842cc2adb67c4d714eb41bed5c6b0144327e04d..15e448d8cce6df11f9e71091daaa487fa7a84169 100644 (file)
@@ -3740,7 +3740,8 @@ the variable `Info-file-list-for-emacs'."
            (case-fold-search t)
            paragraph-markers
            (not-fontified-p ; the node hasn't already been fontified
-            (not (let ((where (next-property-change (point-min))))
+            (not (let ((where (next-single-property-change (point-min) 
+                                                          'font-lock-face)))
                    (and where (not (= where (point-max)))))))
            (fontify-visited-p ; visited nodes need to be re-fontified
             (and Info-fontify-visited-nodes
diff --git a/lisp/international/.arch-inventory b/lisp/international/.arch-inventory
new file mode 100644 (file)
index 0000000..1b376b6
--- /dev/null
@@ -0,0 +1,4 @@
+# "uni-*.el" and "charprop.el" files are generated at compile time
+precious ^(charprop|uni-.*)\.el$
+
+# arch-tag: 7290e69e-5886-4603-9d06-b0f251fb1679
index d155c19973899fb63f9dc1b95adddd03e6d94b78..5efd84ad34308a5684698a143aa885c4753aa5d2 100644 (file)
 ;; Embed string STR of length LEN in `ccl-program-vector' at
 ;; `ccl-current-ic'.
 (defun ccl-embed-string (len str)
-  (let ((i 0))
-    (while (< i len)
-      (ccl-embed-data (logior (ash (aref str i) 16)
-                              (if (< (1+ i) len)
-                                  (ash (aref str (1+ i)) 8)
-                                0)
-                              (if (< (+ i 2) len)
-                                  (aref str (+ i 2))
-                                0)))
-      (setq i (+ i 3)))))
+  (if (> len #xFFFFF)
+      (error "CCL: String too long: %d" len))
+  (if (> (string-bytes str) len)
+      (dotimes (i len)
+       (ccl-embed-data (logior #x1000000 (aref str i))))
+    (let ((i 0))
+      (while (< i len)
+       (ccl-embed-data (logior (ash (aref str i) 16)
+                               (if (< (1+ i) len)
+                                   (ash (aref str (1+ i)) 8)
+                                 0)
+                               (if (< (+ i 2) len)
+                                   (aref str (+ i 2))
+                                 0)))
+       (setq i (+ i 3))))))
 
 ;; Embed a relative jump address to `ccl-current-ic' in
 ;; `ccl-program-vector' at IC without altering the other bit field.
 
 ;; Compile WRITE statement with string argument.
 (defun ccl-compile-write-string (str)
-  (setq str (string-as-unibyte str))
   (let ((len (length str)))
     (ccl-embed-code 'write-const-string 1 len)
     (ccl-embed-string len str))
           (ccl-embed-code 'write-const-jump 0 ccl-loop-head)
           (ccl-embed-data arg))
          ((stringp arg)
-          (setq arg (string-as-unibyte arg))
           (let ((len (length arg))
                 (i 0))
             (ccl-embed-code 'write-string-jump 0 ccl-loop-head)
       (error "CCL: Invalid number of arguments: %s" cmd))
   (let ((rrr (nth 1 cmd)))
     (cond ((integerp rrr)
-          (ccl-embed-code 'write-const-string 0 rrr))
+          (if (> rrr #xFFFFF)
+              (ccl-compile-write-string (string rrr))
+            (ccl-embed-code 'write-const-string 0 rrr)))
          ((stringp rrr)
           (ccl-compile-write-string rrr))
          ((and (symbolp rrr) (vectorp (nth 2 cmd)))
       (insert "write \"")
       (while (< i len)
        (let ((code (ccl-get-next-code)))
-         (insert (format "%c" (lsh code -16)))
-         (if (< (1+ i) len)
-             (insert (format "%c" (logand (lsh code -8) 255))))
-         (if (< (+ i 2) len)
-             (insert (format "%c" (logand code 255))))
-         (setq i (+ i 3))))
+         (if (/= (logand code #x1000000) 0)
+             (progn
+               (insert (logand code #xFFFFFF))
+               (setq i (1+ i)))
+           (insert (format "%c" (lsh code -16)))
+           (if (< (1+ i) len)
+               (insert (format "%c" (logand (lsh code -8) 255))))
+           (if (< (+ i 2) len)
+               (insert (format "%c" (logand code 255))))
+           (setq i (+ i 3)))))
       (insert "\"\n"))))
 
 (defun ccl-dump-write-array (rrr cc)
@@ -1509,7 +1518,12 @@ MAP-IDs := MAP-ID ...
 MAP-SET := MAP-IDs | (MAP-IDs) MAP-SET
 MAP-ID := integer
 "
-  `(let ((prog ,(ccl-compile (eval ccl-program))))
+  `(let ((prog ,(unwind-protect
+                   (progn
+                     ;; To make ,(charset-id CHARSET) works well.
+                     (fset 'charset-id 'charset-id-internal)
+                     (ccl-compile (eval ccl-program)))
+                 (fmakunbound 'charset-id))))
      (defconst ,name prog ,doc)
      (put ',name 'ccl-program-idx (register-ccl-program ',name prog))
      nil))
index 8d86043646c049e2369b2648c2af24cfe71dd131..74cfb62061d847143e6afcd0420ecae25d8ff3e6 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: multibyte character, character set, syntax, category
 
 
 ;;; Commentary:
 
-;; This file contains multibyte characters.  Save this file always in
-;; the coding system `iso-2022-7bit'.
-
-;; This file does not define the syntax for Latin-N character sets;
-;; those are defined by the files latin-N.el.
-
 ;;; Code:
 
-;; We must set utf-translate-cjk-mode to nil while loading this file
-;; to avoid translating CJK characters in decode-char.
-(defvar saved-utf-translate-cjk-mode utf-translate-cjk-mode)
-(setq utf-translate-cjk-mode nil)
-
 ;;; Predefined categories.
 
 ;; For each character set.
@@ -80,7 +72,7 @@
 (define-category ?1 "base (independent) vowel")
 (define-category ?2 "upper diacritical mark (including upper vowel)")
 (define-category ?3 "lower diacritical mark (including lower vowel)")
-(define-category ?4 "tone mark")
+(define-category ?4 "combining tone mark")
 (define-category ?5 "symbol")
 (define-category ?6 "digit")
 (define-category ?7 "vowel-modifying diacritical mark")
 
 ;; ASCII
 
-(let ((ch 32))
-  (while (< ch 127)                    ; All ASCII characters have
-    (modify-category-entry ch ?a)      ; the category `a' (ASCII)
-    (modify-category-entry ch ?l)      ; and `l' (Latin).
-    (setq ch (1+ ch))))
+;; All ASCII characters have the category `a' (ASCII) and `l' (Latin).
+(modify-category-entry '(32 . 127) ?a)
+(modify-category-entry '(32 . 127) ?l)
 
-;; Arabic character set
+;; Deal with the CJK charsets first.  Since the syntax of blocks is
+;; defined per charset, and the charsets may contain e.g. Latin
+;; characters, we end up with the wrong syntax definitions if we're
+;; not careful.
 
-(let ((charsets '(arabic-iso8859-6
-                 arabic-digit
-                 arabic-1-column
-                 arabic-2-column)))
-  (while charsets
-;;     (modify-syntax-entry (make-char (car charsets)) "w")
-    (modify-category-entry (make-char (car charsets)) ?b)
-    (setq charsets (cdr charsets))))
-(let ((ch #x600))
-  (while (<= ch #x6ff)
-    (modify-category-entry (decode-char 'ucs ch) ?b)
-    (setq ch (1+ ch)))
-  (setq ch #xfb50)
-  (while (<= ch #xfdff)
-    (modify-category-entry (decode-char 'ucs ch) ?b)
-    (setq ch (1+ ch)))
-  (setq ch #xfe70)
-  (while (<= ch #xfefe)
-    (modify-category-entry (decode-char 'ucs ch) ?b)
-    (setq ch (1+ ch))))
-
-;; Chinese character set (GB2312)
-
-;; (modify-syntax-entry (make-char 'chinese-gb2312) "w")
-(modify-syntax-entry (make-char 'chinese-gb2312 33) "_")
-(modify-syntax-entry (make-char 'chinese-gb2312 34) "_")
-(modify-syntax-entry (make-char 'chinese-gb2312 41) "_")
-(modify-syntax-entry ?\\e$A!2\e(B "(\e$A!3\e(B")
-(modify-syntax-entry ?\\e$A!4\e(B "(\e$A!5\e(B")
-(modify-syntax-entry ?\\e$A!6\e(B "(\e$A!7\e(B")
-(modify-syntax-entry ?\\e$A!8\e(B "(\e$A!9\e(B")
-(modify-syntax-entry ?\\e$A!:\e(B "(\e$A!;\e(B")
-(modify-syntax-entry ?\\e$A!<\e(B "(\e$A!=\e(B")
-(modify-syntax-entry ?\\e$A!>\e(B "(\e$A!?\e(B")
-(modify-syntax-entry ?\\e$A#(\e(B "(\e$A#)\e(B")
-(modify-syntax-entry ?\\e$A#{\e(B "(\e$A#}\e(B")
-(modify-syntax-entry ?\\e$A#[\e(B "(\e$A#]\e(B")
-(modify-syntax-entry ?\\e$A!3\e(B ")\e$A!2\e(B")
-(modify-syntax-entry ?\\e$A!5\e(B ")\e$A!4\e(B")
-(modify-syntax-entry ?\\e$A!7\e(B ")\e$A!6\e(B")
-(modify-syntax-entry ?\\e$A!9\e(B ")\e$A!8\e(B")
-(modify-syntax-entry ?\\e$A!;\e(B ")\e$A!:\e(B")
-(modify-syntax-entry ?\\e$A!=\e(B ")\e$A!<\e(B")
-(modify-syntax-entry ?\\e$A!?\e(B ")\e$A!>\e(B")
-(modify-syntax-entry ?\\e$A#)\e(B ")\e$A#(\e(B")
-(modify-syntax-entry ?\\e$A#}\e(B ")\e$A#{\e(B")
-(modify-syntax-entry ?\\e$A#]\e(B ")\e$A#[\e(B")
-
-(let ((chars "\e$A#,!"!##.!$#;#:#?#!!C!-!'#|#_!.!/!0!1#"!e#`!d\e(B"))
-  (dotimes (i (length chars))
-    (modify-syntax-entry (aref chars i) ".")))
-
-(modify-category-entry (make-char 'chinese-gb2312) ?c)
-(modify-category-entry (make-char 'chinese-gb2312) ?\|)
-(modify-category-entry (make-char 'chinese-gb2312 35) ?A)
-(modify-category-entry (make-char 'chinese-gb2312 36) ?H)
-(modify-category-entry (make-char 'chinese-gb2312 37) ?K)
-(modify-category-entry (make-char 'chinese-gb2312 38) ?G)
-(modify-category-entry (make-char 'chinese-gb2312 39) ?Y)
-(let ((row 48))
-  (while (< row 127)
-    (modify-category-entry (make-char 'chinese-gb2312 row) ?C)
-    (setq row (1+ row))))
-
-(let ((tbl (standard-case-table)))
-  (dotimes (i 26)
-    (set-case-syntax-pair (make-char 'chinese-gb2312 #x23 (+ #x41 i))
-                         (make-char 'chinese-gb2312 #x23 (+ #x61 i)) tbl))
-  (dotimes (i 24)
-    (set-case-syntax-pair (make-char 'chinese-gb2312 #x26 (+ #x21 i))
-                         (make-char 'chinese-gb2312 #x26 (+ #x41 i)) tbl))
-  (dotimes (i 33)
-    (set-case-syntax-pair (make-char 'chinese-gb2312 #x27 (+ #x21 i))
-                         (make-char 'chinese-gb2312 #x27 (+ #x51 i)) tbl)))
-
-;; Chinese character set (BIG5)
-
-(let ((from (decode-big5-char #xA141))
-      (to (decode-big5-char #xA15D)))
-  (while (< from to)
-    (modify-syntax-entry from ".")
-    (setq from (1+ from))))
-(let ((from (decode-big5-char #xA1A5))
-      (to (decode-big5-char #xA1AD)))
-  (while (< from to)
-    (modify-syntax-entry from ".")
-    (setq from (1+ from))))
-(let ((from (decode-big5-char #xA1AD))
-      (to (decode-big5-char #xA2AF)))
-  (while (< from to)
-    (modify-syntax-entry from "_")
-    (setq from (1+ from))))
-
-(let ((parens "\e$(0!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c\e(B")
-      open close)
-  (dotimes (i (/ (length parens) 2))
-    (setq open (aref parens (* i 2))
-         close (aref parens (1+ (* i 2))))
-    (modify-syntax-entry open (format "(%c" close))
-    (modify-syntax-entry close (format ")%c" open))))
+;; Chinese characters (Unicode)
+(modify-category-entry '(#x2E80 . #x312F) ?|)
+(modify-category-entry '(#x3190 . #x33FF) ?|)
+(modify-category-entry '(#x3400 . #x9FAF) ?C)
+(modify-category-entry '(#x3400 . #x9FAF) ?c)
+(modify-category-entry '(#x3400 . #x9FAF) ?|)
+(modify-category-entry '(#xF900 . #xFAFF) ?C)
+(modify-category-entry '(#xF900 . #xFAFF) ?c)
+(modify-category-entry '(#xF900 . #xFAFF) ?|)
+(modify-category-entry '(#x20000 . #x2AFFF) ?|)
+(modify-category-entry '(#x2F800 . #x2FFFF) ?|)
 
-(let ((generic-big5-1-char (make-char 'chinese-big5-1))
-      (generic-big5-2-char (make-char 'chinese-big5-2)))
-;;   (modify-syntax-entry generic-big5-1-char "w")
-;;   (modify-syntax-entry generic-big5-2-char "w")
 
-  (modify-category-entry generic-big5-1-char ?c)
-  (modify-category-entry generic-big5-2-char ?c)
+;; Chinese character set (GB2312)
 
-  (modify-category-entry generic-big5-1-char ?C)
-  (modify-category-entry generic-big5-2-char ?C)
+(map-charset-chars #'modify-syntax-entry 'chinese-gb2312 "_" #x2121 #x217E)
+(map-charset-chars #'modify-syntax-entry 'chinese-gb2312 "_" #x2221 #x227E)
+(map-charset-chars #'modify-syntax-entry 'chinese-gb2312 "_" #x2921 #x297E)
 
-  (modify-category-entry generic-big5-1-char ?\|)
-  (modify-category-entry generic-big5-2-char ?\|))
+(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?c)
+(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?A #x2330 #x2339)
+(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?A #x2341 #x235A)
+(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?A #x2361 #x237A)
+(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?H #x2421 #x247E)
+(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?K #x2521 #x257E)
+(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?G #x2621 #x267E)
+(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?Y #x2721 #x277E)
+(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?C #x3021 #x7E7E)
 
-(let ((tbl (standard-case-table)))
-  (dotimes (i 22)
-    (set-case-syntax-pair (decode-big5-char (+ #xA2CF i))
-                         (decode-big5-char (+ #xA2CF i 26)) tbl))
-  (dotimes (i 4)
-    (set-case-syntax-pair (decode-big5-char (+ #xA2E4 i))
-                         (decode-big5-char (+ #xA340 i)) tbl))
-  (dotimes (i 24)
-    (set-case-syntax-pair (decode-big5-char (+ #xA344 i))
-                         (decode-big5-char (+ #xA344 i 24)) tbl)))
+;; Chinese character set (BIG5)
 
+(map-charset-chars #'modify-category-entry 'big5 ?c)
+(map-charset-chars #'modify-category-entry 'big5 ?C #xA259 #xA25F)
+(map-charset-chars #'modify-category-entry 'big5 ?C #xA440 #xC67E)
+(map-charset-chars #'modify-category-entry 'big5 ?C #xC940 #xF9DF)
 
 ;; Chinese character set (CNS11643)
 
-(let ((cns-list '(chinese-cns11643-1
-                 chinese-cns11643-2
-                 chinese-cns11643-3
-                 chinese-cns11643-4
-                 chinese-cns11643-5
-                 chinese-cns11643-6
-                 chinese-cns11643-7))
-      generic-char)
-  (while cns-list
-    (setq generic-char (make-char (car cns-list)))
-;;     (modify-syntax-entry generic-char "w")
-    (modify-category-entry generic-char ?c)
-    (modify-category-entry generic-char ?C)
-    (modify-category-entry generic-char ?|)
-    (setq cns-list (cdr cns-list))))
-
-(let ((parens "\e$(G!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c\e(B")
-      open close)
-  (dotimes (i (/ (length parens) 2))
-    (setq open (aref parens (* i 2))
-         close (aref parens (1+ (* i 2))))
-    (modify-syntax-entry open (format "(%c" close))
-    (modify-syntax-entry close (format ")%c" open))))
+(dolist (c '(chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3
+            chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6
+            chinese-cns11643-7))
+  (map-charset-chars #'modify-category-entry c ?c)
+  (if (eq c 'chinese-cns11643-1)
+      (map-charset-chars #'modify-category-entry c ?C #x4421 #x7E7E)
+    (map-charset-chars #'modify-category-entry c ?C)))
 
-;; Cyrillic character set (ISO-8859-5)
+;; Japanese character set (JISX0201, JISX0208, JISX0212, JISX0213)
 
-(modify-category-entry (make-char 'cyrillic-iso8859-5) ?y)
-
-(modify-syntax-entry (make-char 'cyrillic-iso8859-5 160) " ")
-(modify-syntax-entry ?\e,L-\e(B ".")
-(modify-syntax-entry ?\e,Lp\e(B ".")
-(modify-syntax-entry ?\e,L}\e(B ".")
-(let ((tbl (standard-case-table)))
-  (set-case-syntax-pair ?\e,L!\e(B ?\e,Lq\e(B tbl)
-  (set-case-syntax-pair ?\e,L"\e(B ?\e,Lr\e(B tbl)
-  (set-case-syntax-pair ?\e,L#\e(B ?\e,Ls\e(B tbl)
-  (set-case-syntax-pair ?\e,L$\e(B ?\e,Lt\e(B tbl)
-  (set-case-syntax-pair ?\e,L%\e(B ?\e,Lu\e(B tbl)
-  (set-case-syntax-pair ?\e,L&\e(B ?\e,Lv\e(B tbl)
-  (set-case-syntax-pair ?\e,L'\e(B ?\e,Lw\e(B tbl)
-  (set-case-syntax-pair ?\e,L(\e(B ?\e,Lx\e(B tbl)
-  (set-case-syntax-pair ?\e,L)\e(B ?\e,Ly\e(B tbl)
-  (set-case-syntax-pair ?\e,L*\e(B ?\e,Lz\e(B tbl)
-  (set-case-syntax-pair ?\e,L+\e(B ?\e,L{\e(B tbl)
-  (set-case-syntax-pair ?\e,L,\e(B ?\e,L|\e(B tbl)
-  (set-case-syntax-pair ?\e,L.\e(B ?\e,L~\e(B tbl)
-  (set-case-syntax-pair ?\e,L/\e(B ?\e,L\7f\e(B tbl)
-  (set-case-syntax-pair ?\e,L0\e(B ?\e,LP\e(B tbl)
-  (set-case-syntax-pair ?\e,L1\e(B ?\e,LQ\e(B tbl)
-  (set-case-syntax-pair ?\e,L2\e(B ?\e,LR\e(B tbl)
-  (set-case-syntax-pair ?\e,L3\e(B ?\e,LS\e(B tbl)
-  (set-case-syntax-pair ?\e,L4\e(B ?\e,LT\e(B tbl)
-  (set-case-syntax-pair ?\e,L5\e(B ?\e,LU\e(B tbl)
-  (set-case-syntax-pair ?\e,L6\e(B ?\e,LV\e(B tbl)
-  (set-case-syntax-pair ?\e,L7\e(B ?\e,LW\e(B tbl)
-  (set-case-syntax-pair ?\e,L8\e(B ?\e,LX\e(B tbl)
-  (set-case-syntax-pair ?\e,L9\e(B ?\e,LY\e(B tbl)
-  (set-case-syntax-pair ?\e,L:\e(B ?\e,LZ\e(B tbl)
-  (set-case-syntax-pair ?\e,L;\e(B ?\e,L[\e(B tbl)
-  (set-case-syntax-pair ?\e,L<\e(B ?\e,L\\e(B tbl)
-  (set-case-syntax-pair ?\e,L=\e(B ?\e,L]\e(B tbl)
-  (set-case-syntax-pair ?\e,L>\e(B ?\e,L^\e(B tbl)
-  (set-case-syntax-pair ?\e,L?\e(B ?\e,L_\e(B tbl)
-  (set-case-syntax-pair ?\e,L@\e(B ?\e,L`\e(B tbl)
-  (set-case-syntax-pair ?\e,LA\e(B ?\e,La\e(B tbl)
-  (set-case-syntax-pair ?\e,LB\e(B ?\e,Lb\e(B tbl)
-  (set-case-syntax-pair ?\e,LC\e(B ?\e,Lc\e(B tbl)
-  (set-case-syntax-pair ?\e,LD\e(B ?\e,Ld\e(B tbl)
-  (set-case-syntax-pair ?\e,LE\e(B ?\e,Le\e(B tbl)
-  (set-case-syntax-pair ?\e,LF\e(B ?\e,Lf\e(B tbl)
-  (set-case-syntax-pair ?\e,LG\e(B ?\e,Lg\e(B tbl)
-  (set-case-syntax-pair ?\e,LH\e(B ?\e,Lh\e(B tbl)
-  (set-case-syntax-pair ?\e,LI\e(B ?\e,Li\e(B tbl)
-  (set-case-syntax-pair ?\e,LJ\e(B ?\e,Lj\e(B tbl)
-  (set-case-syntax-pair ?\e,LK\e(B ?\e,Lk\e(B tbl)
-  (set-case-syntax-pair ?\e,LL\e(B ?\e,Ll\e(B tbl)
-  (set-case-syntax-pair ?\e,LM\e(B ?\e,Lm\e(B tbl)
-  (set-case-syntax-pair ?\e,LN\e(B ?\e,Ln\e(B tbl)
-  (set-case-syntax-pair ?\e,LO\e(B ?\e,Lo\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(!\e(B ?\e$,1(q\e(B tbl)
-  (set-case-syntax-pair ?\e$,1("\e(B ?\e$,1(r\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(#\e(B ?\e$,1(s\e(B tbl)
-  (set-case-syntax-pair ?\e$,1($\e(B ?\e$,1(t\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(%\e(B ?\e$,1(u\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(&\e(B ?\e$,1(v\e(B tbl)
-  (set-case-syntax-pair ?\e$,1('\e(B ?\e$,1(w\e(B tbl)
-  (set-case-syntax-pair ?\e$,1((\e(B ?\e$,1(x\e(B tbl)
-  (set-case-syntax-pair ?\e$,1()\e(B ?\e$,1(y\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(*\e(B ?\e$,1(z\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(+\e(B ?\e$,1({\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(,\e(B ?\e$,1(|\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(.\e(B ?\e$,1(~\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(/\e(B ?\e$,1(\7f\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(0\e(B ?\e$,1(P\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(1\e(B ?\e$,1(Q\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(2\e(B ?\e$,1(R\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(3\e(B ?\e$,1(S\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(4\e(B ?\e$,1(T\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(5\e(B ?\e$,1(U\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(6\e(B ?\e$,1(V\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(7\e(B ?\e$,1(W\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(8\e(B ?\e$,1(X\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(9\e(B ?\e$,1(Y\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(:\e(B ?\e$,1(Z\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(;\e(B ?\e$,1([\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(<\e(B ?\e$,1(\\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(=\e(B ?\e$,1(]\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(>\e(B ?\e$,1(^\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(?\e(B ?\e$,1(_\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(@\e(B ?\e$,1(`\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(A\e(B ?\e$,1(a\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(B\e(B ?\e$,1(b\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(C\e(B ?\e$,1(c\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(D\e(B ?\e$,1(d\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(E\e(B ?\e$,1(e\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(F\e(B ?\e$,1(f\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(G\e(B ?\e$,1(g\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(H\e(B ?\e$,1(h\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(I\e(B ?\e$,1(i\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(J\e(B ?\e$,1(j\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(K\e(B ?\e$,1(k\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(L\e(B ?\e$,1(l\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(M\e(B ?\e$,1(m\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(N\e(B ?\e$,1(n\e(B tbl)
-  (set-case-syntax-pair ?\e$,1(O\e(B ?\e$,1(o\e(B tbl))
-
-;; Devanagari character set
-
-;;; Commented out since the categories appear not to be used anywhere
-;;; and word syntax is the default.
-;; (let ((deflist      '(;; chars      syntax  category
-;;               ("\e$(5!!!"!#\e(B"      "w"     ?7) ; vowel-modifying diacritical mark
-;;                                         ; chandrabindu, anuswar, visarga
-;;               ("\e$(5!$\e(B-\e$(5!2\e(B"        "w"     ?1) ; independent vowel
-;;               ("\e$(5!3\e(B-\e$(5!X\e(B"        "w"     ?0) ; consonant
-;;               ("\e$(5!Z\e(B-\e$(5!g\e(B"        "w"     ?8) ; matra
-;;               ("\e$(5!q\e(B-\e$(5!z\e(B"        "w"     ?6) ; digit
-;;               ;; Unicode equivalents
-;;               ("\e$,15A5B5C\e(B"      "w"     ?7) ; vowel-modifying diacritical mark
-;;                                         ; chandrabindu, anuswar, visarga
-;;               ("\e$,15E\e(B-\e$,15M\e(B"        "w"     ?1) ; independent vowel
-;;               ("\e$,15U\e(B-\e$,15y\e(B"        "w"     ?0) ; consonant
-;;               ("\e$,15~\e(B-\e$,16)\e(B"        "w"     ?8) ; matra
-;;               ("\e$,16F\e(B-\e$,16O\e(B"        "w"     ?6) ; digit
-;;               ))
-;;       elm chars len syntax category to ch i)
-;;   (while deflist
-;;     (setq elm (car deflist))
-;;     (setq chars (car elm)
-;;       len (length chars)
-;;       syntax (nth 1 elm)
-;;       category (nth 2 elm)
-;;       i 0)
-;;     (while (< i len)
-;;       (if (= (aref chars i) ?-)
-;;       (setq i (1+ i)
-;;             to (aref chars i))
-;;     (setq ch (aref chars i)
-;;           to ch))
-;;       (while (<= ch to)
-;;     (modify-syntax-entry ch syntax)
-;;     (modify-category-entry ch category)
-;;     (setq ch (1+ ch)))
-;;       (setq i (1+ i)))
-;;     (setq deflist (cdr deflist))))
+(map-charset-chars #'modify-category-entry 'katakana-jisx0201 ?k)
 
-;; Ethiopic character set
+(map-charset-chars #'modify-category-entry 'latin-jisx0201 ?r)
 
-(modify-category-entry (make-char 'ethiopic) ?e)
-;; (modify-syntax-entry (make-char 'ethiopic) "w")
-(dotimes (i (1+ (- #x137c #x1200)))
-  (modify-category-entry (decode-char 'ucs (+ #x1200 i)) ?e))
-(let ((chars '(?\e$(3$h\e(B ?\e$(3$i\e(B ?\e$(3$j\e(B ?\e$(3$k\e(B ?\e$(3$l\e(B ?\e$(3$m\e(B ?\e$(3$n\e(B ?\e$(3$o\e(B ?\e$(3%i\e(B ?\e$(3%t\e(B ?\e$(3%u\e(B ?\e$(3%v\e(B ?\e$(3%w\e(B ?\e$(3%x\e(B
-              ;; Unicode equivalents of the above:
-              ?\e$,1Q!\e(B ?\e$,1Q"\e(B ?\e$,1Q#\e(B ?\e$,1Q$\e(B ?\e$,1Q%\e(B ?\e$,1Q&\e(B ?\e$,1Q'\e(B ?\e$,1Q(\e(B ?\e$,3op\e(B ?\e$,3o{\e(B ?\e$,3o|\e(B ?\e$,3o}\e(B ?\e$,3o~\e(B ?\e$,3o\7f\e(B)))
-  (while chars
-    (modify-syntax-entry (car chars) ".")
-    (setq chars (cdr chars))))
-
-;; Greek character set (ISO-8859-7)
-
-(modify-category-entry (make-char 'greek-iso8859-7) ?g)
-(let ((c #x370))
-  (while (<= c #x3ff)
-    (modify-category-entry (decode-char 'ucs c) ?g)
-    (setq c (1+ c))))
-
-;; (let ((c 182))
-;;   (while (< c 255)
-;;     (modify-syntax-entry (make-char 'greek-iso8859-7 c) "w")
-;;     (setq c (1+ c))))
-;; (modify-syntax-entry (make-char 'greek-iso8859-7 160) "w") ; NBSP
-(modify-syntax-entry ?\e,F7\e(B ".")
-(modify-syntax-entry ?\e,F;\e(B ".")
-(modify-syntax-entry ?\e,F=\e(B ".")
-(let ((tbl (standard-case-table)))
-  ;; Fixme: non-letter syntax copied from latin-1, but that's dubious
-  ;; in several cases.
-  (set-case-syntax ?\e,F!\e(B "." tbl)
-  (set-case-syntax ?\e,F"\e(B "." tbl)
-  (set-case-syntax ?\e,F&\e(B "." tbl)
-  (set-case-syntax ?\e,F&\e(B "_" tbl)
-  (set-case-syntax ?\e,F'\e(B "." tbl)
-  (set-case-syntax ?\e,F)\e(B "_" tbl)
-  (set-case-syntax ?\e,F+\e(B "." tbl)
-  (set-case-syntax ?\e,F,\e(B "_" tbl)
-  (set-case-syntax ?\e,F-\e(B "_" tbl)
-  (set-case-syntax ?\e,F/\e(B "." tbl)
-  (set-case-syntax ?\e,F0\e(B "_" tbl)
-  (set-case-syntax ?\e,F1\e(B "_" tbl)
-;;  (set-case-syntax ?\e,F7\e(B "_" tbl)
-;;  (set-case-syntax ?\e,F=\e(B "_" tbl)
-  (set-case-syntax-pair ?\e,FA\e(B ?\e,Fa\e(B tbl)
-  (set-case-syntax-pair ?\e,FB\e(B ?\e,Fb\e(B tbl)
-  (set-case-syntax-pair ?\e,FC\e(B ?\e,Fc\e(B tbl)
-  (set-case-syntax-pair ?\e,FD\e(B ?\e,Fd\e(B tbl)
-  (set-case-syntax-pair ?\e,FE\e(B ?\e,Fe\e(B tbl)
-  (set-case-syntax-pair ?\e,FF\e(B ?\e,Ff\e(B tbl)
-  (set-case-syntax-pair ?\e,FG\e(B ?\e,Fg\e(B tbl)
-  (set-case-syntax-pair ?\e,FH\e(B ?\e,Fh\e(B tbl)
-  (set-case-syntax-pair ?\e,FI\e(B ?\e,Fi\e(B tbl)
-  (set-case-syntax-pair ?\e,FJ\e(B ?\e,Fj\e(B tbl)
-  (set-case-syntax-pair ?\e,FK\e(B ?\e,Fk\e(B tbl)
-  (set-case-syntax-pair ?\e,FL\e(B ?\e,Fl\e(B tbl)
-  (set-case-syntax-pair ?\e,FM\e(B ?\e,Fm\e(B tbl)
-  (set-case-syntax-pair ?\e,FN\e(B ?\e,Fn\e(B tbl)
-  (set-case-syntax-pair ?\e,FO\e(B ?\e,Fo\e(B tbl)
-  (set-case-syntax-pair ?\e,FP\e(B ?\e,Fp\e(B tbl)
-  (set-case-syntax-pair ?\e,FQ\e(B ?\e,Fq\e(B tbl)
-  (set-upcase-syntax    ?\e,FS\e(B ?\e,Fr\e(B tbl)
-  (set-case-syntax-pair ?\e,FS\e(B ?\e,Fs\e(B tbl)
-  (set-case-syntax-pair ?\e,FT\e(B ?\e,Ft\e(B tbl)
-  (set-case-syntax-pair ?\e,FU\e(B ?\e,Fu\e(B tbl)
-  (set-case-syntax-pair ?\e,FV\e(B ?\e,Fv\e(B tbl)
-  (set-case-syntax-pair ?\e,FW\e(B ?\e,Fw\e(B tbl)
-  (set-case-syntax-pair ?\e,FX\e(B ?\e,Fx\e(B tbl)
-  (set-case-syntax-pair ?\e,FY\e(B ?\e,Fy\e(B tbl)
-  (set-case-syntax-pair ?\e,FZ\e(B ?\e,Fz\e(B tbl)
-  (set-case-syntax-pair ?\e,F[\e(B ?\e,F{\e(B tbl)
-  (set-case-syntax-pair ?\e,F?\e(B ?\e,F~\e(B tbl)
-  (set-case-syntax-pair ?\e,F>\e(B ?\e,F}\e(B tbl)
-  (set-case-syntax-pair ?\e,F<\e(B ?\e,F|\e(B tbl)
-  (set-case-syntax-pair ?\e,F6\e(B ?\e,F\\e(B tbl)
-  (set-case-syntax-pair ?\e,F8\e(B ?\e,F]\e(B tbl)
-  (set-case-syntax-pair ?\e,F9\e(B ?\e,F^\e(B tbl)
-  (set-case-syntax-pair ?\e,F:\e(B ?\e,F_\e(B tbl)
-  ;; Unicode equivalents
-  (set-case-syntax-pair ?\e$,1&q\e(B ?\e$,1'1\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&r\e(B ?\e$,1'2\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&s\e(B ?\e$,1'3\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&t\e(B ?\e$,1'4\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&u\e(B ?\e$,1'5\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&v\e(B ?\e$,1'6\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&w\e(B ?\e$,1'7\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&x\e(B ?\e$,1'8\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&y\e(B ?\e$,1'9\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&z\e(B ?\e$,1':\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&{\e(B ?\e$,1';\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&|\e(B ?\e$,1'<\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&}\e(B ?\e$,1'=\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&~\e(B ?\e$,1'>\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&\7f\e(B ?\e$,1'?\e(B tbl)
-  (set-case-syntax-pair ?\e$,1' \e(B ?\e$,1'@\e(B tbl)
-  (set-case-syntax-pair ?\e$,1'!\e(B ?\e$,1'A\e(B tbl)
-  (set-upcase-syntax    ?\e$,1'#\e(B ?\e$,1'B\e(B tbl)
-  (set-case-syntax-pair ?\e$,1'#\e(B ?\e$,1'C\e(B tbl)
-  (set-case-syntax-pair ?\e$,1'$\e(B ?\e$,1'D\e(B tbl)
-  (set-case-syntax-pair ?\e$,1'%\e(B ?\e$,1'E\e(B tbl)
-  (set-case-syntax-pair ?\e$,1'&\e(B ?\e$,1'F\e(B tbl)
-  (set-case-syntax-pair ?\e$,1''\e(B ?\e$,1'G\e(B tbl)
-  (set-case-syntax-pair ?\e$,1'(\e(B ?\e$,1'H\e(B tbl)
-  (set-case-syntax-pair ?\e$,1')\e(B ?\e$,1'I\e(B tbl)
-  (set-case-syntax-pair ?\e$,1'*\e(B ?\e$,1'J\e(B tbl)
-  (set-case-syntax-pair ?\e$,1'+\e(B ?\e$,1'K\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&o\e(B ?\e$,1'N\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&n\e(B ?\e$,1'M\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&l\e(B ?\e$,1'L\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&f\e(B ?\e$,1',\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&h\e(B ?\e$,1'-\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&i\e(B ?\e$,1'.\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&j\e(B ?\e$,1'/\e(B tbl))
-
-;; Hebrew character set (ISO-8859-8)
-
-(modify-category-entry (make-char 'hebrew-iso8859-8) ?w)
-(let ((c #x591))
-  (while (<= c #x5f4)
-    (modify-category-entry (decode-char 'ucs c) ?w)
-    (setq c (1+ c))))
-
-(modify-syntax-entry (make-char 'hebrew-iso8859-8 208) ".") ; PASEQ
-(modify-syntax-entry (make-char 'hebrew-iso8859-8 211) ".") ; SOF PASUQ
-(modify-syntax-entry (decode-char 'ucs #x5be) ".") ; MAQAF
-(modify-syntax-entry (decode-char 'ucs #x5c0) ".") ; PASEQ
-(modify-syntax-entry (decode-char 'ucs #x5c3) ".") ; SOF PASUQ
-(modify-syntax-entry (decode-char 'ucs #x5f3) ".") ; GERESH
-(modify-syntax-entry (decode-char 'ucs #x5f4) ".") ; GERSHAYIM
-
-;; (let ((c 224))
-;;   (while (< c 251)
-;;     (modify-syntax-entry (make-char 'hebrew-iso8859-8 c) "w")
-;;     (setq c (1+ c))))
-;; (modify-syntax-entry (make-char 'hebrew-iso8859-8 160) "w") ; NBSP
-
-;; Indian character set (IS 13194 and other Emacs original Indian charsets)
-
-(modify-category-entry (make-char 'indian-is13194) ?i)
-(modify-category-entry (make-char 'indian-2-column) ?I)
-(modify-category-entry (make-char 'indian-glyph) ?I)
-;; Unicode Devanagari block
-(let ((c #x901))
-  (while (<= c #x970)
-    (modify-category-entry (decode-char 'ucs c) ?i)
-    (setq c (1+ c))))
-
-(let ((l '(;; RANGE   CATEGORY         MEANINGS
-          (#x01 #x03 ?7)               ; vowel modifier
-          (#x05 #x14 ?1)               ; base vowel
-          (#x15 #x39 ?0)               ; consonants
-          (#x3e #x4d ?8)               ; vowel modifier
-          (#x51 #x54 ?4)               ; stress/tone mark
-          (#x58 #x5f ?0)               ; consonants
-          (#x60 #x61 ?1)               ; base vowel
-          (#x62 #x63 ?8)               ; vowel modifier
-          (#x66 #x6f ?6)               ; digits
-          )))
-  (dolist (elt1 '(#x900 #x980 #xa00 #xa80 #xb00 #xb80 #xc00 #xc80 #xd00))
-    (dolist (elt2 l)
-      (let* ((from (car elt2))
-            (counts (1+ (- (nth 1 elt2) from)))
-            (category (nth 2 elt2)))
-       (dotimes (i counts)
-         (modify-category-entry (decode-char 'ucs (+ elt1 from i)) 
-                                category))))))
-
-;; Japanese character set (JISX0201-kana, JISX0201-roman, JISX0208, JISX0212)
-
-(modify-category-entry (make-char 'katakana-jisx0201) ?k)
-(modify-category-entry (make-char 'katakana-jisx0201) ?j)
-(modify-category-entry (make-char 'latin-jisx0201) ?r)
-(modify-category-entry (make-char 'japanese-jisx0208) ?j)
-(modify-category-entry (make-char 'japanese-jisx0212) ?j)
-(modify-category-entry (make-char 'katakana-jisx0201) ?\|)
-(modify-category-entry (make-char 'japanese-jisx0208) ?\|)
-(modify-category-entry (make-char 'japanese-jisx0212) ?\|)
+(dolist (l '(katakana-jisx0201 japanese-jisx0208 japanese-jisx0212
+                              japanese-jisx0213-1 japanese-jisx0213-2))
+  (map-charset-chars #'modify-category-entry l ?j))
 
 ;; Unicode equivalents of JISX0201-kana
-(let ((c #xff61))
-  (while (<= c #xff9f)
-    (modify-category-entry (decode-char 'ucs c) ?k)
-    (modify-category-entry (decode-char 'ucs c) ?j)
-    (modify-category-entry (decode-char 'ucs c) ?\|)
-    (setq c (1+ c))))
+(let ((range '(#xff61 . #xff9f)))
+  (modify-category-entry range  ?k)
+  (modify-category-entry range ?j)
+  (modify-category-entry range ?\|))
 
 ;; Katakana block
-(let ((c #x30a0))
-  (while (<= c #x30ff)
-    ;; ?K is double width, ?k isn't specified
-    (modify-category-entry (decode-char 'ucs c) ?k)
-    (modify-category-entry (decode-char 'ucs c) ?j)
-    (modify-category-entry (decode-char 'ucs c) ?\|)
-    (setq c (1+ c))))
+(let ((range '(#x30a0 . #x30ff)))
+  ;; ?K is double width, ?k isn't specified
+  (modify-category-entry range ?K)
+  (modify-category-entry range ?\|))
 
 ;; Hiragana block
-(let ((c #x3040))
-  (while (<= c #x309f)
-    ;; ?H is actually defined to be double width
-    (modify-category-entry (decode-char 'ucs c) ?H)
-    ;;(modify-category-entry (decode-char 'ucs c) ?j)
-    (modify-category-entry (decode-char 'ucs c) ?\|)
-    (setq c (1+ c))))
+(let ((range '(#x3040 . #x309d)))
+  ;; ?H is actually defined to be double width
+  ;;(modify-category-entry range ?H)
+  (modify-category-entry range ?\|)
+  )
 
 ;; JISX0208
-;; (modify-syntax-entry (make-char 'japanese-jisx0208) "w")
-(modify-syntax-entry (make-char 'japanese-jisx0208 33) "_")
-(modify-syntax-entry (make-char 'japanese-jisx0208 34) "_")
-(modify-syntax-entry (make-char 'japanese-jisx0208 40) "_")
-(let ((chars '(?\e$B!<\e(B ?\e$B!+\e(B ?\e$B!,\e(B ?\e$B!3\e(B ?\e$B!4\e(B ?\e$B!5\e(B ?\e$B!6\e(B ?\e$B!7\e(B ?\e$B!8\e(B ?\e$B!9\e(B ?\e$B!:\e(B ?\e$B!;\e(B)))
-  (while chars
-    (modify-syntax-entry (car chars) "w")
-    (setq chars (cdr chars))))
-(let ((parens "\e$B!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![\e(B" )
-      open close)
-  (dotimes (i (/ (length parens) 2))
-    (setq open (aref parens (* i 2))
-         close (aref parens (1+ (* i 2))))
-    (modify-syntax-entry open (format "(%c" close))
-    (modify-syntax-entry close (format ")%c" open))))
-
-(modify-category-entry (make-char 'japanese-jisx0208 35) ?A)
-(modify-category-entry (make-char 'japanese-jisx0208 36) ?H)
-(modify-category-entry (make-char 'japanese-jisx0208 37) ?K)
-(modify-category-entry (make-char 'japanese-jisx0208 38) ?G)
-(modify-category-entry (make-char 'japanese-jisx0208 39) ?Y)
-(let ((row 48))
-  (while (< row 127)
-    (modify-category-entry (make-char 'japanese-jisx0208 row) ?C)
-    (setq row (1+ row))))
-(modify-category-entry ?\e$B!<\e(B ?K)
-(let ((chars '(?\e$B!+\e(B ?\e$B!,\e(B)))
+(map-charset-chars #'modify-syntax-entry 'japanese-jisx0208 "_" #x2121 #x227E)
+(map-charset-chars #'modify-syntax-entry 'japanese-jisx0208 "_" #x2821 #x287E)
+(let ((chars '(?ー ?ã‚› ?ã‚œ ?ヽ ?ヾ ?ã‚ ?ã‚ž ?〃 ?ä» ?々 ?〆 ?〇)))
+  (dolist (elt chars)
+    (modify-syntax-entry (car chars) "w")))
+
+(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?A #x2321 #x237E)
+(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?H #x2421 #x247E)
+(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?K #x2521 #x257E)
+(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?G #x2621 #x267E)
+(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?Y #x2721 #x277E)
+(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?C #x3021 #x7E7E)
+(modify-category-entry ?ー ?K)
+(let ((chars '(?ã‚› ?ã‚œ)))
   (while chars
     (modify-category-entry (car chars) ?K)
     (modify-category-entry (car chars) ?H)
     (setq chars (cdr chars))))
-(let ((chars '(?\e$B!3\e(B ?\e$B!4\e(B ?\e$B!5\e(B ?\e$B!6\e(B ?\e$B!7\e(B ?\e$B!8\e(B ?\e$B!9\e(B ?\e$B!:\e(B ?\e$B!;\e(B)))
+(let ((chars '(?ヽ ?ヾ ?ã‚ ?ã‚ž ?〃 ?ä» ?々 ?〆 ?〇)))
   (while chars
     (modify-category-entry (car chars) ?C)
     (setq chars (cdr chars))))
 
-(let ((tbl (standard-case-table)))
-  (dotimes (i 26)
-    (set-case-syntax-pair (make-char 'japanese-jisx0208 #x23 (+ #x41 i))
-                         (make-char 'japanese-jisx0208 #x23 (+ #x61 i)) tbl))
-  (dotimes (i 24)
-    (set-case-syntax-pair (make-char 'japanese-jisx0208 #x26 (+ #x21 i))
-                         (make-char 'japanese-jisx0208 #x26 (+ #x41 i)) tbl))
-  (dotimes (i 33)
-    (set-case-syntax-pair (make-char 'japanese-jisx0208 #x27 (+ #x21 i))
-                         (make-char 'japanese-jisx0208 #x27 (+ #x51 i)) tbl)))
-
 ;; JISX0212
-;; (modify-syntax-entry (make-char 'japanese-jisx0212) "w")
-(modify-syntax-entry (make-char 'japanese-jisx0212 33) "_")
-(modify-syntax-entry (make-char 'japanese-jisx0212 34) "_")
-(modify-syntax-entry (make-char 'japanese-jisx0212 35) "_")
 
-(modify-category-entry (make-char 'japanese-jisx0212 ) ?C)
+(map-charset-chars #'modify-syntax-entry 'japanese-jisx0212 "_" #x2121 #x237E)
 
 ;; JISX0201-Kana
-;; (modify-syntax-entry (make-char 'katakana-jisx0201) "w")
-(let ((chars '(?\e(I!\e(B ?\e(I$\e(B ?\e(I%\e(B
-              ;; Unicode:
-              ?\e$,3sa\e(B ?\e$,3sd\e(B ?\e$,3se\e(B)))
+
+(let ((chars '(?。 ?、 ?ï½¥)))
   (while chars
     (modify-syntax-entry (car chars) ".")
     (setq chars (cdr chars))))
 
-(modify-syntax-entry ?\\e(I"\e(B "(\e(I#\e(B")
-(modify-syntax-entry ?\\e(I#\e(B "(\e(I"\e(B")
+(modify-syntax-entry ?\ï½¢ "(ï½£")
+(modify-syntax-entry ?\ï½£ "(ï½¢")
 
 ;; Korean character set (KSC5601)
 
-;; (modify-syntax-entry (make-char 'korean-ksc5601) "w")
-(modify-syntax-entry (make-char 'korean-ksc5601 33) "_")
-(modify-syntax-entry (make-char 'korean-ksc5601 34) "_")
-(modify-syntax-entry (make-char 'korean-ksc5601 38) "_")
-(modify-syntax-entry (make-char 'korean-ksc5601 39) "_")
-(modify-syntax-entry (make-char 'korean-ksc5601 40) "_")
-(modify-syntax-entry (make-char 'korean-ksc5601 41) "_")
-
-(modify-category-entry (make-char 'korean-ksc5601) ?h)
-(modify-category-entry (make-char 'korean-ksc5601 35) ?A)
-(modify-category-entry (make-char 'korean-ksc5601 37) ?G)
-(modify-category-entry (make-char 'korean-ksc5601 42) ?H)
-(modify-category-entry (make-char 'korean-ksc5601 43) ?K)
-(modify-category-entry (make-char 'korean-ksc5601 44) ?Y)
-
-(let ((parens "\e$(C!2!3!4!5!6!7!8!9!:!;!<!=#(#)#[#]#{#}\e(B" )
+(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?h)
+
+(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2121 #x227E)
+(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2621 #x277E)
+(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2830 #x287E)
+(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2930 #x297E)
+(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?A #x2330 #x2339)
+(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?A #x2341 #x235A)
+(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?A #x2361 #x237A)
+(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?G #x2521 #x257E)
+(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?H #x2A21 #x2A7E)
+(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?K #x2B21 #x2B7E)
+(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?Y #x2C21 #x2C7E)
+
+;; These are in more than one charset.
+(let ((parens (concat "〈〉《》「ã€ã€Žã€ã€ã€‘〔〕〖〗〘〙〚〛"
+                     "︵︶︷︸︹︺︻︼︽︾︿﹀ï¹ï¹‚﹃﹄"
+                     "()[]{ï½"))
       open close)
   (dotimes (i (/ (length parens) 2))
     (setq open (aref parens (* i 2))
     (modify-syntax-entry open (format "(%c" close))
     (modify-syntax-entry close (format ")%c" open))))
 
-(let ((tbl (standard-case-table)))
-  (dotimes (i 26)
-    (set-case-syntax-pair (make-char 'korean-ksc5601 #x23 (+ #x41 i))
-                         (make-char 'korean-ksc5601 #x23 (+ #x61 i)) tbl))
-  (dotimes (i 10)
-    (set-case-syntax-pair (make-char 'korean-ksc5601 #x25 (+ #x21 i))
-                         (make-char 'korean-ksc5601 #x25 (+ #x30 i)) tbl))
-  (dotimes (i 24)
-    (set-case-syntax-pair (make-char 'korean-ksc5601 #x25 (+ #x41 i))
-                         (make-char 'korean-ksc5601 #x25 (+ #x61 i)) tbl))
-  (dotimes (i 33)
-    (set-case-syntax-pair (make-char 'korean-ksc5601 #x2C (+ #x21 i))
-                         (make-char 'korean-ksc5601 #x2C (+ #x51 i)) tbl)))
-
-;; Latin character set (latin-1,2,3,4,5,8,9)
-
-(modify-category-entry (make-char 'latin-iso8859-1) ?l)
-(modify-category-entry (make-char 'latin-iso8859-2) ?l)
-(modify-category-entry (make-char 'latin-iso8859-3) ?l)
-(modify-category-entry (make-char 'latin-iso8859-4) ?l)
-(modify-category-entry (make-char 'latin-iso8859-9) ?l)
-(modify-category-entry (make-char 'latin-iso8859-14) ?l)
-(modify-category-entry (make-char 'latin-iso8859-15) ?l)
-
-(modify-category-entry (make-char 'latin-iso8859-1 160) ?\ )
-(modify-category-entry (make-char 'latin-iso8859-2 160) ?\ )
-(modify-category-entry (make-char 'latin-iso8859-3 160) ?\ )
-(modify-category-entry (make-char 'latin-iso8859-4 160) ?\ )
-(modify-category-entry (make-char 'latin-iso8859-9 160) ?\ )
-(modify-category-entry (make-char 'latin-iso8859-14 160) ?\ )
-(modify-category-entry (make-char 'latin-iso8859-15 160) ?\ )
+;; Arabic character set
 
-;; Lao character set
+(let ((charsets '(arabic-iso8859-6
+                 arabic-digit
+                 arabic-1-column
+                 arabic-2-column)))
+  (while charsets
+    (map-charset-chars #'modify-category-entry (car charsets) ?b)
+    (setq charsets (cdr charsets))))
+(modify-category-entry '(#x600 . #x6ff) ?b)
+(modify-category-entry '(#xfb50 . #xfdff) ?b)
+(modify-category-entry '(#xfe70 . #xfefe) ?b)
+
+;; Cyrillic character set (ISO-8859-5)
 
-(modify-category-entry (make-char 'lao) ?o)
-(dotimes (i (1+ (- #xeff #xe80)))
-  (modify-category-entry (decode-char 'ucs (+ i #xe80)) ?o))
+(modify-syntax-entry ?â„– ".")
 
-(let ((deflist '(;; chars      syntax  category
-                 ("\e(1!\e(B-\e(1N\e(B"    "w"     ?0) ; consonant
-                 ("\e(1PRS]`\e(B-\e(1d\e(B"        "w"     ?1) ; vowel base
-                 ("\e(1QT\e(B-\e(1W[m\e(B" "w"     ?2) ; vowel upper
-                 ("\e(1XY\e(B"           "w"     ?3) ; vowel lower
-                 ("\e(1h\e(B-\e(1l\e(B"    "w"     ?4) ; tone mark
-                 ("\e(1\\e(B"            "w"     ?9) ; semivowel lower
-                 ("\e(1p\e(B-\e(1y\e(B"    "w"     ?6) ; digit
-                 ("\e(1Of\e(B"           "_"     ?5) ; symbol
-                 ;; Unicode equivalents
-                 ("\e$,1D!\e(B-\e$,1DN\e(B"        "w"     ?0) ; consonant
-                 ("\e$,1DPDRDSD]D`\e(B-\e$,1Dd\e(B"        "w"     ?1) ; vowel base
-                 ("\e$,1DQDT\e(B-\e$,1DWD[Dm\e(B"  "w"     ?2) ; vowel upper
-                 ("\e$,1DXDY\e(B"        "w"     ?3) ; vowel lower
-                 ("\e$,1Dh\e(B-\e$,1Dk\e(B"        "w"     ?4) ; tone mark
-                 ("\e$,1D\D]\e(B"        "w"     ?9) ; semivowel lower
-                 ("\e$,1Dp\e(B-\e$,1Dy\e(B"        "w"     ?6) ; digit
-                 ("\e$,1DODf\e(B"        "_"     ?5) ; symbol
+;; Ethiopic character set
+
+(modify-category-entry '(#x1200 . #x1399) ?e)
+(modify-category-entry '(#x2d80 . #x2dde) ?e)
+(let ((chars '(?á¡ ?ᢠ?ᣠ?ᤠ?ᥠ?ᦠ?᧠?ᨠ?ö ‡€ ?ö ‡‹ ?ö ‡Œ ?ö ‡ ?ö ‡Ž ?ö ‡)))
+  (while chars
+    (modify-syntax-entry (car chars) ".")
+    (setq chars (cdr chars))))
+(map-charset-chars #'modify-category-entry 'ethiopic ?e)
+
+;; Hebrew character set (ISO-8859-8)
+
+(modify-syntax-entry #x5be ".") ; MAQAF
+(modify-syntax-entry #x5c0 ".") ; PASEQ
+(modify-syntax-entry #x5c3 ".") ; SOF PASUQ
+(modify-syntax-entry #x5f3 ".") ; GERESH
+(modify-syntax-entry #x5f4 ".") ; GERSHAYIM
+
+;; Indian character set (IS 13194 and other Emacs original Indian charsets)
+
+(modify-category-entry '(#x901 . #x970) ?i)
+(map-charset-chars #'modify-category-entry 'indian-is13194 ?i)
+(map-charset-chars #'modify-category-entry 'indian-2-column ?i)
+
+;; Lao character set
+
+(modify-category-entry '(#xe80 . #xeff) ?o)
+(map-charset-chars #'modify-category-entry 'lao ?o)
+
+(let ((deflist '(("àº-ຮ"    "w"     ?0) ; consonant
+                 ("ະາຳຽເ-ໄ"        "w"     ?1) ; vowel base
+                 ("ັິ-ືົà»"   "w"     ?2) ; vowel upper
+                 ("ຸູ"     "w"     ?3) ; vowel lower
+                 ("່-໋"    "w"     ?4) ; tone mark
+                 ("ຼຽ"     "w"     ?9) ; semivowel lower
+                 ("à»-à»™"    "w"     ?6) ; digit
+                 ("ຯໆ"     "_"     ?5) ; symbol
                  ))
       elm chars len syntax category to ch i)
   (while deflist
 
 ;; Thai character set (TIS620)
 
-(modify-category-entry (make-char 'thai-tis620) ?t)
-(dotimes (i (1+ (- #xe7f #xe00)))
-  (modify-category-entry (decode-char 'ucs (+ i #xe00)) ?t))
+(modify-category-entry '(#xe00 . #xe7f) ?t)
+(map-charset-chars #'modify-category-entry 'thai-tis620 ?t)
 
 (let ((deflist '(;; chars      syntax  category
-                 ("\e,T!\e(B-\e,TCEG\e(B-\e,TN\e(B"  "w"     ?0) ; consonant
-                 ("\e,TDFPRS`\e(B-\e,Te\e(B"       "w"     ?1) ; vowel base
-                 ("\e,TQT\e(B-\e,TWgn\e(B" "w"     ?2) ; vowel upper
-                 ("\e,TX\e(B-\e,TZ\e(B"    "w"     ?3) ; vowel lower
-                 ("\e,Th\e(B-\e,Tm\e(B"    "w"     ?4) ; tone mark
-                 ("\e,Tp\e(B-\e,Ty\e(B"    "w"     ?6) ; digit
-                 ("\e,TOf_oz{\e(B"       "_"     ?5) ; symbol
-                 ;; Unicode equivalents
-                 ("\e$,1Ba\e(B-\e$,1C#C%C'\e(B-\e$,1C.\e(B"  "w"     ?0) ; consonant
-                 ("\e$,1C$C&C0C2C3C@\e(B-\e$,1CE\e(B"      "w"     ?1) ; vowel base
-                 ("\e$,1C1C4\e(B-\e$,1C7CGCN\e(B"  "w"     ?2) ; vowel upper
-                 ("\e$,1C8\e(B-\e$,1C:\e(B"        "w"     ?3) ; vowel lower
-                 ("\e$,1CH\e(B-\e$,1CM\e(B"        "w"     ?4) ; tone mark
-                 ("\e$,1CP\e(B-\e$,1CY\e(B"        "w"     ?6) ; digit
-                 ("\e$,1C/CFC?COCZC[\e(B"        "_"     ?5) ; symbol
+                 ("à¸-รลว-ฮ"  "w"     ?0) ; consonant
+                 ("ฤฦะาำเ-ๅ"     "w"     ?1) ; vowel base
+                 ("ัิ-ื็๎"   "w"     ?2) ; vowel upper
+                 ("ุ-ฺ"    "w"     ?3) ; vowel lower
+                 ("่-à¹"    "w"     ?4) ; tone mark
+                 ("à¹-๙"    "w"     ?6) ; digit
+                 ("ฯๆ฿à¹à¹šà¹›" "_"     ?5) ; symbol
                  ))
       elm chars len syntax category to ch i)
   (while deflist
 
 ;; Tibetan character set
 
-(modify-category-entry (make-char 'tibetan) ?q)
-(modify-category-entry (make-char 'tibetan-1-column) ?q)
-(dotimes (i (1+ (- #xfff #xf00)))
-  (modify-category-entry (decode-char 'ucs (+ i #xf00)) ?q))
+(modify-category-entry '(#xf00 . #xfff) ?q)
+(map-charset-chars #'modify-category-entry 'tibetan ?q)
+(map-charset-chars #'modify-category-entry 'tibetan-1-column ?q)
 
 (let ((deflist '(;; chars             syntax category
-                 ("\e4\e$(7"!\e0"!\e1\e(B-\e4\e$(7"J\e0"J\e1\e4"K\e0"K\e1\e(B"              "w"     ?0) ; consonant
-                 ("\e$(7#!\e(B-\e$(7#J#K#L#M!"!#\e(B"       "w"     ?0) ;
-                 ("\e$(7$!\e(B-\e$(7$e\e(B"              "w"     ?0) ;
-                 ("\e$(7%!\e(B-\e$(7%u\e(B"              "w"     ?0) ;
-                 ("\e$(7"S"["\"]"^"a\e(B"       "w"      ?2) ; upper vowel
-                 ("\e$(7"_"c"d"g"h"i"j"k"l\e(B" "w"      ?2) ; upper modifier
-                 ("\e$(7!I"Q"R"U"e!e!g\e(B"       "w"    ?3) ; lowel vowel/modifier
-                 ("\e$(7!P\e(B-\e$(7!Y!Z\e(B-\e$(7!c\e(B"            "w"     ?6) ; digit
-                 ("\e$(7!;!=\e(B-\e$(7!B!D"`\e(B"        "."     ?|) ; line-break char
-                 ("\e$(8!;!=!?!@!A!D"`\e(B"            "."     ?|) ;
-                 ("\e$(7!8!;!=\e(B-\e$(7!B!D"`!m!d\e(B"  "."     ?>) ; prohibition
-                 ("\e$(8!;!=!?!@!A!D"`\e(B"            "."     ?>) ;
-                 ("\e$(7!0\e(B-\e$(7!:!l#R#S"f\e(B"      "."     ?<) ; prohibition
-                 ("\e$(7!C!E\e(B-\e$(7!H!J\e(B-\e$(7!O!f!h\e(B-\e$(7!k!n!o#O#P\e(B-\e$(7#`\e(B" "." ?q) ; others
-
-                 ;; Unicode version (not complete)
-                 ("\e$,1F \e(B-\e$,1FIFJ\e(B"              "w"     ?0) ; consonant
-                 ("\e$,1Fp\e(B-\e$,1G9G:G;G<\e(B"       "w"     ?0) ;
-                 ("\e$,1FRFZF[F\F]F`\e(B"       "w"      ?2) ; upper vowel
-                 ("\e$,1F^FbFcFfFgFhFiFjFk\e(B" "w"      ?2) ; upper modifier
-                 ("\e$,1EYFPFQFTFdEuEw\e(B"       "w"    ?3) ; lowel vowel/modifier
-                 ("\e$,1E`\e(B-\e$,1EiEj\e(B-\e$,1Es\e(B"            "w"     ?6) ; digit
-                 ("\e$,1EKEM\e(B-\e$,1ERETF_\e(B"        "."     ?|) ; line-break char
-                 ("\e$,1EHEKEM\e(B-\e$,1ERETF_E}Et\e(B"  "."     ?>) ; prohibition
-                 ("\e$,1E@\e(B-\e$,1EJE|GAGBFe\e(B"      "."     ?<) ; prohibition
-                 ("\e$,1ESEU\e(B-\e$,1EXEZ\e(B-\e$,1E_EvEx\e(B-\e$,1E{E~E\7fG>G?\e(B-\e$,1GO\e(B" "." ?q) ; others
+                 ("ཀ-ཀྵཪ"         "w"     ?0) ; consonant
+                 ("à¾-ྐྵྺྻྼö€ö€‚"       "w"     ?0) ;
+                 ("ö„š-ö…ž"              "w"     ?0) ;
+                 ("ö…¸-ö‡Œ"              "w"     ?0) ;
+                 ("ིེཻོཽྀ"       "w"       ?2) ; upper vowel
+                 ("ཾྂྃ྆྇ྈྉྊྋ" "w"    ?2) ; upper modifier
+                 ("༙ö‚Žà½±à½´à¾„༵༷"       "w"   ?3) ; lowel vowel/modifier
+                 ("཰"                "w" ?3)             ; invisible vowel a
+                 ("༠-༩༪-༳"             "w"     ?6) ; digit
+                 ("་à¼-༒༔ཿ"        "."     ?|) ; line-break char
+                 ("་à¼à¼à¼à¼‘༔ཿ"            "."     ?|) ;
+                 ("༈་à¼-༒༔ཿ༽༴"  "."     ?>) ; prohibition
+                 ("་à¼à¼à¼à¼‘༔ཿ"            "."     ?>) ;
+                 ("ༀ-༊༼à¿à¿‚྅"      "."     ?<) ; prohibition
+                 ("༓༕-༘༚-༟༶༸-༻༾༿྾྿-à¿" "." ?q) ; others
                  ))
       elm chars len syntax category to ch i)
   (while deflist
 
 ;; Vietnamese character set
 
-(let ((lower (make-char 'vietnamese-viscii-lower))
-      (upper (make-char 'vietnamese-viscii-upper)))
-;;   (modify-syntax-entry lower "w")
-;;   (modify-syntax-entry upper "w")
-  (modify-category-entry lower ?v)
-  (modify-category-entry upper ?v)
-  (modify-category-entry lower ?l)     ; To make a word with
-  (modify-category-entry upper ?l)     ; latin characters.
-  )
+;; To make a word with Latin characters
+(map-charset-chars #'modify-category-entry 'vietnamese-viscii-lower ?l)
+(map-charset-chars #'modify-category-entry 'vietnamese-viscii-lower ?v)
+
+(map-charset-chars #'modify-category-entry 'vietnamese-viscii-upper ?l)
+(map-charset-chars #'modify-category-entry 'vietnamese-viscii-upper ?v)
 
 (let ((tbl (standard-case-table))
       (i 32))
   (while (< i 128)
-    (set-case-syntax-pair (make-char 'vietnamese-viscii-upper i)
-                         (make-char 'vietnamese-viscii-lower i)
-                         tbl)
+    (let* ((char (decode-char 'vietnamese-viscii-upper i))
+          (charl (decode-char 'vietnamese-viscii-lower i))
+          (uc (encode-char char 'ucs))
+          (lc (encode-char charl 'ucs)))
+      (set-case-syntax-pair char (decode-char 'vietnamese-viscii-lower i)
+                           tbl)        
+      (if uc (modify-category-entry uc ?v))
+      (if lc (modify-category-entry lc ?v)))
     (setq i (1+ i))))
 
-;; Unicode (mule-unicode-0100-24ff)
+;; Tai Viet
+(let ((deflist '(;; chars      syntax  category
+                ((?ꪀ.  ?ꪯ) "w"     ?0) ; cosonant
+                ("ꪱꪵꪶ"           "w"     ?1) ; vowel base
+                ((?ꪹ . ?ꪽ) "w"     ?1) ; vowel base
+                ("ꪰꪲꪳꪷꪸꪾ"  "w"     ?2) ; vowel upper
+                ("ꪴ"         "w"     ?3) ; vowel lower
+                ("ꫀꫂ"              "w"     ?1) ; non-combining tone-mark
+                ("꪿ê«"              "w"     ?4) ; combining tone-mark
+                ((?ê«› . ?ê«Ÿ) "_"     ?5) ; symbol
+                )))
+  (dolist (elm deflist)
+    (let ((chars (car elm))
+         (syntax (nth 1 elm))
+         (category (nth 2 elm)))
+      (if (consp chars)
+         (progn
+           (modify-syntax-entry chars syntax)
+           (modify-category-entry chars category))
+       (mapc #'(lambda (x)
+                 (modify-syntax-entry x syntax)
+                 (modify-category-entry x category))
+             chars)))))
+
+;; Latin
+
+(modify-category-entry '(#x80 . #x024F) ?l)
 
 (let ((tbl (standard-case-table)) c)
 
-  ;; Latin Extended-A, Latin Extended-B, IPA
+  ;; Latin-1
+
+  ;; Fixme: Some of the non-word syntaxes here perhaps should be
+  ;; reviewed.  (Note that the following all implicitly have word
+  ;; syntax: Â¢Â£Â¤Â¥Â¨ÂªÂ¯Â²Â³Â´Â¶Â¸Â¹Âº.)  There should be a well-defined way of
+  ;; relating Unicode categories to Emacs syntax codes.
+
+  ;; NBSP isn't semantically interchangeable with other whitespace chars,
+  ;; so it's more like punctation.
+  (set-case-syntax ?  "." tbl)
+  (set-case-syntax ?¡ "." tbl)
+  (set-case-syntax ?¦ "_" tbl)
+  (set-case-syntax ?§ "." tbl)
+  (set-case-syntax ?© "_" tbl)
+  (set-case-syntax-delims 171 187 tbl) ; Â« Â»
+  (set-case-syntax ?¬ "_" tbl)
+  (set-case-syntax ?­ "_" tbl)
+  (set-case-syntax ?® "_" tbl)
+  (set-case-syntax ?° "_" tbl)
+  (set-case-syntax ?± "_" tbl)
+  (set-case-syntax ?µ "_" tbl)
+  (set-case-syntax ?· "_" tbl)
+  (set-case-syntax ?¼ "_" tbl)
+  (set-case-syntax ?½ "_" tbl)
+  (set-case-syntax ?¾ "_" tbl)
+  (set-case-syntax ?¿ "." tbl)
+  (let ((c 192))
+    (while (<= c 222)
+      (set-case-syntax-pair c (+ c 32) tbl)
+      (setq c (1+ c))))
+  (set-case-syntax ?× "_" tbl)
+  (set-case-syntax ?ß "w" tbl)
+  (set-case-syntax ?÷ "_" tbl)
+  ;; See below for Ã¿.
+
+  ;; Latin Extended-A, Latin Extended-B
   (setq c #x0100)
-  (while (<= c #x02AF)
-    (modify-category-entry (decode-char 'ucs c) ?l)
-    (setq c (1+ c)))
-
-  (setq c #x0100)
-  (while (<= c #x0177)
-    (and (or (<= c #x012e)
-            (and (>= c #x014a) (<= c #x0177)))
-        (zerop (% c 2))
-        (set-case-syntax-pair
-         (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl))
-    (and (>= c #x013a)
-        (<= c #x0148)
-        (zerop (% c 2))
-        (set-case-syntax-pair
-         (decode-char 'ucs (1- c)) (decode-char 'ucs c) tbl))
+  (while (<= c #x02B8)
+    (modify-category-entry c ?l)
     (setq c (1+ c)))
 
+  (let ((pair-ranges '((#x0100 . #x012F)
+                      (#x0132 . #x0137)
+                      (#x0139 . #x0148)
+                      (#x014a . #x0177)
+                      (#x0179 . #x017E)
+                      (#x0182 . #x0185)
+                      (#x0187 . #x018C)
+                      (#x0191 . #x0192)
+                      (#x0198 . #x0199)
+                      (#x01A0 . #x01A5)
+                      (#x01A7 . #x01A8)
+                      (#x01AC . #x01AD)
+                      (#x01AF . #x01B0)
+                      (#x01B3 . #x01B6)
+                      (#x01BC . #x01BD)
+                      (#x01CD . #x01DC)
+                      (#x01DE . #x01EF)
+                      (#x01F4 . #x01F5)
+                      (#x01F8 . #x021F)
+                      (#x0222 . #x0233)
+                      (#x023B . #x023C)
+                      (#x0241 . #x0242)
+                      (#x0246 . #x024F))))
+    (dolist (elt pair-ranges)
+      (let ((from (car elt)) (to (cdr elt)))
+       (while (< from to)
+         (set-case-syntax-pair from (1+ from) tbl)
+         (setq from (+ from 2))))))
 
   ;; In some languages, such as Turkish, U+0049 LATIN CAPITAL LETTER I
   ;; and U+0131 LATIN SMALL LETTER DOTLESS I make a case pair, and so
   ;; but that makes searches slow.  So now we don't set up either half
   ;; of these correspondences by default.
 
-  ;;  (set-downcase-syntax  ?\e$,1 P\e(B ?i tbl)
-  ;;  (set-upcase-syntax    ?I ?\e$,1 Q\e(B tbl)
-
-  (set-case-syntax-pair ?\e$,1 R\e(B ?\e$,1 S\e(B tbl)
-  (set-case-syntax-pair ?\e$,1 T\e(B ?\e$,1 U\e(B tbl)
-  (set-case-syntax-pair ?\e$,1 V\e(B ?\e$,1 W\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!8\e(B ?\e,A\7f\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!9\e(B ?\e$,1!:\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!;\e(B ?\e$,1!<\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!=\e(B ?\e$,1!>\e(B tbl)
-
-  ;; Latin Extended-B
-  (set-case-syntax-pair ?\e$,1!A\e(B ?\e$,1#S\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!B\e(B ?\e$,1!C\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!D\e(B ?\e$,1!E\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!F\e(B ?\e$,1#T\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!G\e(B ?\e$,1!H\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!I\e(B ?\e$,1#V\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!J\e(B ?\e$,1#W\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!K\e(B ?\e$,1!L\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!N\e(B ?\e$,1"=\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!O\e(B ?\e$,1#Y\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!P\e(B ?\e$,1#[\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!Q\e(B ?\e$,1!R\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!S\e(B ?\e$,1#`\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!T\e(B ?\e$,1#c\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!V\e(B ?\e$,1#i\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!W\e(B ?\e$,1#h\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!X\e(B ?\e$,1!Y\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!\\e(B ?\e$,1#o\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!]\e(B ?\e$,1#r\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!_\e(B ?\e$,1#u\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!`\e(B ?\e$,1!a\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!b\e(B ?\e$,1!c\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!d\e(B ?\e$,1!e\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!f\e(B ?\e$,1$ \e(B tbl)
-  (set-case-syntax-pair ?\e$,1!g\e(B ?\e$,1!h\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!i\e(B ?\e$,1$#\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!l\e(B ?\e$,1!m\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!n\e(B ?\e$,1$(\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!o\e(B ?\e$,1!p\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!q\e(B ?\e$,1$*\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!r\e(B ?\e$,1$+\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!s\e(B ?\e$,1!t\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!u\e(B ?\e$,1!v\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!w\e(B ?\e$,1$2\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!x\e(B ?\e$,1!y\e(B tbl)
-  (set-case-syntax-pair ?\e$,1!|\e(B ?\e$,1!}\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"$\e(B ?\e$,1"&\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"%\e(B ?\e$,1"&\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"'\e(B ?\e$,1")\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"(\e(B ?\e$,1")\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"*\e(B ?\e$,1",\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"+\e(B ?\e$,1",\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"-\e(B ?\e$,1".\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"/\e(B ?\e$,1"0\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"1\e(B ?\e$,1"2\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"3\e(B ?\e$,1"4\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"5\e(B ?\e$,1"6\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"7\e(B ?\e$,1"8\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"9\e(B ?\e$,1":\e(B tbl)
-  (set-case-syntax-pair ?\e$,1";\e(B ?\e$,1"<\e(B tbl)
-  (set-case-syntax-pair ?\e$,1">\e(B ?\e$,1"?\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"@\e(B ?\e$,1"A\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"B\e(B ?\e$,1"C\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"D\e(B ?\e$,1"E\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"F\e(B ?\e$,1"G\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"H\e(B ?\e$,1"I\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"J\e(B ?\e$,1"K\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"L\e(B ?\e$,1"M\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"N\e(B ?\e$,1"O\e(B tbl)
+  ;; (set-downcase-syntax  ?Ä° ?i tbl)
+  ;; (set-upcase-syntax    ?I ?ı tbl)
+
+  (set-case-syntax-pair ?Ç„ ?dž tbl)
+  (set-case-syntax-pair ?Ç… ?dž tbl)
+  (set-case-syntax-pair ?LJ ?lj tbl)
+  (set-case-syntax-pair ?Lj ?lj tbl)
+  (set-case-syntax-pair ?ÇŠ ?ÇŒ tbl)
+  (set-case-syntax-pair ?Ç‹ ?ÇŒ tbl)
+
   ;; 01F0; F; 006A 030C; # LATIN SMALL LETTER J WITH CARON
-  (set-case-syntax-pair ?\e$,1"Q\e(B ?\e$,1"S\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"R\e(B ?\e$,1"S\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"T\e(B ?\e$,1"U\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"V\e(B ?\e$,1!U\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"W\e(B ?\e$,1!\7f\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"X\e(B ?\e$,1"Y\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"Z\e(B ?\e$,1"[\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"\\e(B ?\e$,1"]\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"^\e(B ?\e$,1"_\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"`\e(B ?\e$,1"a\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"b\e(B ?\e$,1"c\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"d\e(B ?\e$,1"e\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"f\e(B ?\e$,1"g\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"h\e(B ?\e$,1"i\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"j\e(B ?\e$,1"k\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"l\e(B ?\e$,1"m\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"n\e(B ?\e$,1"o\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"p\e(B ?\e$,1"q\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"r\e(B ?\e$,1"s\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"t\e(B ?\e$,1"u\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"v\e(B ?\e$,1"w\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"x\e(B ?\e$,1"y\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"z\e(B ?\e$,1"{\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"|\e(B ?\e$,1"}\e(B tbl)
-  (set-case-syntax-pair ?\e$,1"~\e(B ?\e$,1"\7f\e(B tbl)
-  (set-case-syntax-pair ?\e$,1#"\e(B ?\e$,1##\e(B tbl)
-  (set-case-syntax-pair ?\e$,1#$\e(B ?\e$,1#%\e(B tbl)
-  (set-case-syntax-pair ?\e$,1#&\e(B ?\e$,1#'\e(B tbl)
-  (set-case-syntax-pair ?\e$,1#(\e(B ?\e$,1#)\e(B tbl)
-  (set-case-syntax-pair ?\e$,1#*\e(B ?\e$,1#+\e(B tbl)
-  (set-case-syntax-pair ?\e$,1#,\e(B ?\e$,1#-\e(B tbl)
-  (set-case-syntax-pair ?\e$,1#.\e(B ?\e$,1#/\e(B tbl)
-  (set-case-syntax-pair ?\e$,1#0\e(B ?\e$,1#1\e(B tbl)
-  (set-case-syntax-pair ?\e$,1#2\e(B ?\e$,1#3\e(B tbl)
+  (set-case-syntax-pair ?DZ ?dz tbl)
+  (set-case-syntax-pair ?Dz ?dz tbl)
+  (set-case-syntax-pair ?Ƕ ?Æ• tbl)
+  (set-case-syntax-pair ?Ç· ?Æ¿ tbl)
 
   ;; Latin Extended Additional
+  (modify-category-entry '(#x1e00 . #x1ef9) ?l)
   (setq c #x1e00)
   (while (<= c #x1ef9)
-    (modify-category-entry (decode-char 'ucs c) ?l)
     (and (zerop (% c 2))
         (or (<= c #x1e94) (>= c #x1ea0))
-        (set-case-syntax-pair
-         (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl))
+        (set-case-syntax-pair c (1+ c) tbl))
     (setq c (1+ c)))
 
   ;; Greek
+  (modify-category-entry '(#x0370 . #x03ff) ?g)
   (setq c #x0370)
   (while (<= c #x03ff)
-    (modify-category-entry (decode-char 'ucs c) ?g)
     (if (or (and (>= c #x0391) (<= c #x03a1))
            (and (>= c #x03a3) (<= c #x03ab)))
-       (set-case-syntax-pair
-        (decode-char 'ucs c) (decode-char 'ucs (+ c 32)) tbl))
+       (set-case-syntax-pair c (+ c 32) tbl))
     (and (>= c #x03da)
         (<= c #x03ee)
         (zerop (% c 2))
-        (set-case-syntax-pair
-         (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl))
+        (set-case-syntax-pair c (1+ c) tbl))
     (setq c (1+ c)))
-  (set-case-syntax-pair ?\e$,1&f\e(B ?\e$,1',\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&h\e(B ?\e$,1'-\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&i\e(B ?\e$,1'.\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&j\e(B ?\e$,1'/\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&l\e(B ?\e$,1'L\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&n\e(B ?\e$,1'M\e(B tbl)
-  (set-case-syntax-pair ?\e$,1&o\e(B ?\e$,1'N\e(B tbl)
+  (set-case-syntax-pair ?Ά ?ά tbl)
+  (set-case-syntax-pair ?Έ ?έ tbl)
+  (set-case-syntax-pair ?Ή ?ή tbl)
+  (set-case-syntax-pair ?Ί ?ί tbl)
+  (set-case-syntax-pair ?ÎŒ ?ÏŒ tbl)
+  (set-case-syntax-pair ?ÎŽ ?Ï tbl)
+  (set-case-syntax-pair ?Π?ÏŽ tbl)
 
   ;; Armenian
   (setq c #x531)
   (while (<= c #x556)
-    (set-case-syntax-pair (decode-char 'ucs c)
-                         (decode-char 'ucs (+ c #x30)) tbl)
+    (set-case-syntax-pair c (+ c #x30) tbl)
     (setq c (1+ c)))
 
   ;; Greek Extended
+  (modify-category-entry '(#x1f00 . #x1fff) ?g)
   (setq c #x1f00)
   (while (<= c #x1fff)
-    (modify-category-entry (decode-char 'ucs c) ?g)
     (and (<= (logand c #x000f) 7)
         (<= c #x1fa7)
         (not (memq c '(#x1f50 #x1f52 #x1f54 #x1f56)))
         (/= (logand c #x00f0) 7)
-        (set-case-syntax-pair
-         (decode-char 'ucs (+ c 8)) (decode-char 'ucs c) tbl))
+        (set-case-syntax-pair (+ c 8) c tbl))
     (setq c (1+ c)))
-  (set-case-syntax-pair ?\e$,1qx\e(B ?\e$,1qp\e(B tbl)
-  (set-case-syntax-pair ?\e$,1qy\e(B ?\e$,1qq\e(B tbl)
-  (set-case-syntax-pair ?\e$,1qz\e(B ?\e$,1q0\e(B tbl)
-  (set-case-syntax-pair ?\e$,1q{\e(B ?\e$,1q1\e(B tbl)
-  (set-case-syntax-pair ?\e$,1q|\e(B ?\e$,1qs\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r(\e(B ?\e$,1q2\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r)\e(B ?\e$,1q3\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r*\e(B ?\e$,1q4\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r+\e(B ?\e$,1q5\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r,\e(B ?\e$,1r#\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r8\e(B ?\e$,1r0\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r9\e(B ?\e$,1r1\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r:\e(B ?\e$,1q6\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r;\e(B ?\e$,1q7\e(B tbl)
-  (set-case-syntax-pair ?\e$,1rH\e(B ?\e$,1r@\e(B tbl)
-  (set-case-syntax-pair ?\e$,1rI\e(B ?\e$,1rA\e(B tbl)
-  (set-case-syntax-pair ?\e$,1rJ\e(B ?\e$,1q:\e(B tbl)
-  (set-case-syntax-pair ?\e$,1rK\e(B ?\e$,1q;\e(B tbl)
-  (set-case-syntax-pair ?\e$,1rL\e(B ?\e$,1rE\e(B tbl)
-  (set-case-syntax-pair ?\e$,1rX\e(B ?\e$,1q8\e(B tbl)
-  (set-case-syntax-pair ?\e$,1rY\e(B ?\e$,1q9\e(B tbl)
-  (set-case-syntax-pair ?\e$,1rZ\e(B ?\e$,1q<\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r[\e(B ?\e$,1q=\e(B tbl)
-  (set-case-syntax-pair ?\e$,1r\\e(B ?\e$,1rS\e(B tbl)
+  (set-case-syntax-pair ?Ᾰ ?á¾° tbl)
+  (set-case-syntax-pair ?á¾¹ ?á¾± tbl)
+  (set-case-syntax-pair ?Ὰ ?á½° tbl)
+  (set-case-syntax-pair ?á¾» ?á½± tbl)
+  (set-case-syntax-pair ?á¾¼ ?á¾³ tbl)
+  (set-case-syntax-pair ?Ὲ ?á½² tbl)
+  (set-case-syntax-pair ?Έ ?á½³ tbl)
+  (set-case-syntax-pair ?á¿Š ?á½´ tbl)
+  (set-case-syntax-pair ?á¿‹ ?á½µ tbl)
+  (set-case-syntax-pair ?á¿Œ ?ῃ tbl)
+  (set-case-syntax-pair ?Ῐ ?á¿ tbl)
+  (set-case-syntax-pair ?á¿™ ?á¿‘ tbl)
+  (set-case-syntax-pair ?á¿š ?ὶ tbl)
+  (set-case-syntax-pair ?á¿› ?á½· tbl)
+  (set-case-syntax-pair ?Ῠ ?á¿  tbl)
+  (set-case-syntax-pair ?á¿© ?á¿¡ tbl)
+  (set-case-syntax-pair ?Ὺ ?ὺ tbl)
+  (set-case-syntax-pair ?á¿« ?á½» tbl)
+  (set-case-syntax-pair ?Ῥ ?á¿¥ tbl)
+  (set-case-syntax-pair ?Ὸ ?ὸ tbl)
+  (set-case-syntax-pair ?Ό ?á½¹ tbl)
+  (set-case-syntax-pair ?Ὼ ?á½¼ tbl)
+  (set-case-syntax-pair ?á¿» ?á½½ tbl)
+  (set-case-syntax-pair ?ῼ ?ῳ tbl)
 
   ;; cyrillic
+  (modify-category-entry '(#x0400 . #x04FF) ?y)
   (setq c #x0400)
   (while (<= c #x04ff)
-    (modify-category-entry (decode-char 'ucs c) ?y)
     (and (>= c #x0400)
         (<= c #x040f)
-        (set-case-syntax-pair
-         (decode-char 'ucs c) (decode-char 'ucs (+ c 80)) tbl))
+        (set-case-syntax-pair c (+ c 80) tbl))
     (and (>= c #x0410)
         (<= c #x042f)
-        (set-case-syntax-pair
-         (decode-char 'ucs c) (decode-char 'ucs (+ c 32)) tbl))
+        (set-case-syntax-pair c (+ c 32) tbl))
     (and (zerop (% c 2))
         (or (and (>= c #x0460) (<= c #x0480))
             (and (>= c #x048c) (<= c #x04be))
             (and (>= c #x04d0) (<= c #x04f4)))
-        (set-case-syntax-pair
-         (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl))
+        (set-case-syntax-pair c (1+ c) tbl))
     (setq c (1+ c)))
-  (set-case-syntax-pair ?\e$,1*!\e(B ?\e$,1*"\e(B tbl)
-  (set-case-syntax-pair ?\e$,1*#\e(B ?\e$,1*$\e(B tbl)
-  (set-case-syntax-pair ?\e$,1*'\e(B ?\e$,1*(\e(B tbl)
-  (set-case-syntax-pair ?\e$,1*+\e(B ?\e$,1*,\e(B tbl)
-  (set-case-syntax-pair ?\e$,1*X\e(B ?\e$,1*Y\e(B tbl)
+  (set-case-syntax-pair ?Ó ?Ó‚ tbl)
+  (set-case-syntax-pair ?Óƒ ?Ó„ tbl)
+  (set-case-syntax-pair ?Ó‡ ?Óˆ tbl)
+  (set-case-syntax-pair ?Ó‹ ?ÓŒ tbl)
+  (set-case-syntax-pair ?Ó¸ ?Ó¹ tbl)
 
   ;; general punctuation
   (setq c #x2000)
   (while (<= c #x200b)
-    (set-case-syntax (decode-char 'ucs c) " " tbl)
+    (set-case-syntax c " " tbl)
+    (setq c (1+ c)))
+  (while (<= c #x200F)
+    (set-case-syntax c "." tbl)
     (setq c (1+ c)))
+  ;; Fixme: These aren't all right:
   (setq c #x2010)
   (while (<= c #x2016)
-    (set-case-syntax (decode-char 'ucs c) "_" tbl)
+    (set-case-syntax c "_" tbl)
     (setq c (1+ c)))
   ;; Punctuation syntax for quotation marks (like `)
   (while (<= c #x201f)
-    (set-case-syntax (decode-char 'ucs c) "." tbl)
+    (set-case-syntax  c "." tbl)
     (setq c (1+ c)))
+  ;; Fixme: These aren't all right:
   (while (<= c #x2027)
-    (set-case-syntax (decode-char 'ucs c) "_" tbl)
+    (set-case-syntax c "_" tbl)
+    (setq c (1+ c)))
+  (while (<= c #x206F)
+    (set-case-syntax c "." tbl)
     (setq c (1+ c)))
 
   ;; Roman numerals
   (setq c #x2160)
   (while (<= c #x216f)
-    (set-case-syntax-pair (decode-char 'ucs c)
-                         (decode-char 'ucs (+ c #x10)) tbl)
+    (set-case-syntax-pair c (+ c #x10) tbl)
+    (setq c (1+ c)))
+
+  ;; Fixme: The following blocks might be better as symbol rather than
+  ;; punctuation.
+  ;; Arrows
+  (setq c #x2190)
+  (while (<= c #x21FF)
+    (set-case-syntax c "." tbl)
+    (setq c (1+ c)))
+  ;; Mathematical Operators
+  (while (<= c #x22FF)
+    (set-case-syntax c "." tbl)
+    (setq c (1+ c)))
+  ;; Miscellaneous Technical
+  (while (<= c #x23FF)
+    (set-case-syntax c "." tbl)
+    (setq c (1+ c)))
+  ;; Control Pictures
+  (while (<= c #x243F)
+    (set-case-syntax c "_" tbl)
     (setq c (1+ c)))
 
   ;; Circled Latin
   (setq c #x24b6)
   (while (<= c #x24cf)
-    (set-case-syntax-pair (decode-char 'ucs c)
-                         (decode-char 'ucs (+ c 26)) tbl)
-    (modify-category-entry (decode-char 'ucs c) ?l)
-    (modify-category-entry (decode-char 'ucs (+ c 26)) ?l)
+    (set-case-syntax-pair c (+ c 26) tbl)
+    (modify-category-entry c ?l)
+    (modify-category-entry (+ c 26) ?l)
     (setq c (1+ c)))
 
   ;; Fullwidth Latin
   (setq c #xff21)
   (while (<= c #xff3a)
-    (set-case-syntax-pair (decode-char 'ucs c)
-                         (decode-char 'ucs (+ c #x20)) tbl)
-    (modify-category-entry (decode-char 'ucs c) ?l)
-    (modify-category-entry (decode-char 'ucs (+ c #x20)) ?l)
+    (set-case-syntax-pair c (+ c #x20) tbl)
+    (modify-category-entry c ?l)
+    (modify-category-entry (+ c #x20) ?l)
     (setq c (1+ c)))
 
   ;; Combining diacritics
-  (setq c #x300)
-  (while (<= c #x362)
-    (modify-category-entry (decode-char 'ucs c) ?^)
-    (setq c (1+ c)))
-
+  (modify-category-entry '(#x300 . #x362) ?^)
   ;; Combining marks
-  (setq c #x20d0)
-  (while (<= c #x20e3)
-    (modify-category-entry (decode-char 'ucs c) ?^)
-    (setq c (1+ c)))
+  (modify-category-entry '(#x20d0 . #x20e3) ?^)
 
   ;; Fixme: syntax for symbols &c
   )
 
 (let ((pairs
-       '("\e$,1sEsF\e(B"                         ; U+2045 U+2046
-        "\e$,1s}s~\e(B"                          ; U+207D U+207E
-        "\e$,1t-t.\e(B"                          ; U+208D U+208E
-        "\e$,1{){*\e(B"                          ; U+2329 U+232A
-        "\e$,1|T|U\e(B"                          ; U+23B4 U+23B5
-        "\e$,2&H&I\e(B"                          ; U+2768 U+2769
-        "\e$,2&J&K\e(B"                          ; U+276A U+276B
-        "\e$,2&L&M\e(B"                          ; U+276C U+276D
-        "\e$,2&P&Q\e(B"                          ; U+2770 U+2771
-        "\e$,2&R&S\e(B"                          ; U+2772 U+2773
-        "\e$,2&T&U\e(B"                          ; U+2774 U+2775
-        "\e$,2'f'g\e(B"                          ; U+27E6 U+27E7
-        "\e$,2'h'i\e(B"                          ; U+27E8 U+27E9
-        "\e$,2'j'k\e(B"                          ; U+27EA U+27EB
-        "\e$,2,#,$\e(B"                          ; U+2983 U+2984
-        "\e$,2,%,&\e(B"                          ; U+2985 U+2986
-        "\e$,2,',(\e(B"                          ; U+2987 U+2988
-        "\e$,2,),*\e(B"                          ; U+2989 U+298A
-        "\e$,2,+,,\e(B"                          ; U+298B U+298C
-        "\e$,2,-,.\e(B"                          ; U+298D U+298E
-        "\e$,2,/,0\e(B"                          ; U+298F U+2990
-        "\e$,2,1,2\e(B"                          ; U+2991 U+2992
-        "\e$,2,3,4\e(B"                          ; U+2993 U+2994
-        "\e$,2,5,6\e(B"                          ; U+2995 U+2996
-        "\e$,2,7,8\e(B"                          ; U+2997 U+2998
-        "\e$,2-<-=\e(B"                          ; U+29FC U+29FD
-        "\e$,2=H=I\e(B"                          ; U+3008 U+3009
-        "\e$,2=J=K\e(B"                          ; U+300A U+300B
-        "\e$,2=L=M\e(B"                          ; U+300C U+300D
-        "\e$,2=N=O\e(B"                          ; U+300E U+300F
-        "\e$,2=P=Q\e(B"                          ; U+3010 U+3011
-        "\e$,2=T=U\e(B"                          ; U+3014 U+3015
-        "\e$,2=V=W\e(B"                          ; U+3016 U+3017
-        "\e$,2=X=Y\e(B"                          ; U+3018 U+3019
-        "\e$,2=Z=[\e(B"                          ; U+301A U+301B
-        "\e$,3m~m\7f\e(B"                          ; U+FD3E U+FD3F
-        "\e$,3pUpV\e(B"                          ; U+FE35 U+FE36
-        "\e$,3pWpX\e(B"                          ; U+FE37 U+FE38
-        "\e$,3pYpZ\e(B"                          ; U+FE39 U+FE3A
-        "\e$,3p[p\\e(B"                          ; U+FE3B U+FE3C
-        "\e$,3p]p^\e(B"                          ; U+FE3D U+FE3E
-        "\e$,3p_p`\e(B"                          ; U+FE3F U+FE40
-        "\e$,3papb\e(B"                          ; U+FE41 U+FE42
-        "\e$,3pcpd\e(B"                          ; U+FE43 U+FE44
-        "\e$,3pypz\e(B"                          ; U+FE59 U+FE5A
-        "\e$,3p{p|\e(B"                          ; U+FE5B U+FE5C
-        "\e$,3p}p~\e(B"                          ; U+FE5D U+FE5E
-        "\e$,3rhri\e(B"                          ; U+FF08 U+FF09
-        "\e$,3s;s=\e(B"                          ; U+FF3B U+FF3D
-        "\e$,3s[s]\e(B"                          ; U+FF5B U+FF5D
-        "\e$,3s_s`\e(B"                          ; U+FF5F U+FF60
-        "\e$,3sbsc\e(B"                          ; U+FF62 U+FF63
+       '("â…â†"                              ; U+2045 U+2046
+        "â½â¾"                               ; U+207D U+207E
+        "â‚â‚Ž"                               ; U+208D U+208E
+        "〈〉"                               ; U+2329 U+232A
+        "⎴⎵"                               ; U+23B4 U+23B5
+        "â¨â©"                               ; U+2768 U+2769
+        "âªâ«"                               ; U+276A U+276B
+        "â¬â­"                               ; U+276C U+276D
+        "â°â±"                               ; U+2770 U+2771
+        "â²â³"                               ; U+2772 U+2773
+        "â´âµ"                               ; U+2774 U+2775
+        "⟦⟧"                               ; U+27E6 U+27E7
+        "⟨⟩"                               ; U+27E8 U+27E9
+        "⟪⟫"                               ; U+27EA U+27EB
+        "⦃⦄"                               ; U+2983 U+2984
+        "⦅⦆"                               ; U+2985 U+2986
+        "⦇⦈"                               ; U+2987 U+2988
+        "⦉⦊"                               ; U+2989 U+298A
+        "⦋⦌"                               ; U+298B U+298C
+        "â¦â¦Ž"                               ; U+298D U+298E
+        "â¦â¦"                               ; U+298F U+2990
+        "⦑⦒"                               ; U+2991 U+2992
+        "⦓⦔"                               ; U+2993 U+2994
+        "⦕⦖"                               ; U+2995 U+2996
+        "⦗⦘"                               ; U+2997 U+2998
+        "⧼⧽"                               ; U+29FC U+29FD
+        "〈〉"                               ; U+3008 U+3009
+        "《》"                               ; U+300A U+300B
+        "「ã€"                               ; U+300C U+300D
+        "『ã€"                               ; U+300E U+300F
+        "ã€ã€‘"                               ; U+3010 U+3011
+        "〔〕"                               ; U+3014 U+3015
+        "〖〗"                               ; U+3016 U+3017
+        "〘〙"                               ; U+3018 U+3019
+        "〚〛"                               ; U+301A U+301B
+        "﴾﴿"                               ; U+FD3E U+FD3F
+        "︵︶"                               ; U+FE35 U+FE36
+        "︷︸"                               ; U+FE37 U+FE38
+        "︹︺"                               ; U+FE39 U+FE3A
+        "︻︼"                               ; U+FE3B U+FE3C
+        "︽︾"                               ; U+FE3D U+FE3E
+        "︿﹀"                               ; U+FE3F U+FE40
+        "ï¹ï¹‚"                               ; U+FE41 U+FE42
+        "﹃﹄"                               ; U+FE43 U+FE44
+        "﹙﹚"                               ; U+FE59 U+FE5A
+        "﹛﹜"                               ; U+FE5B U+FE5C
+        "ï¹ï¹ž"                               ; U+FE5D U+FE5E
+        "()"                               ; U+FF08 U+FF09
+        "[]"                               ; U+FF3B U+FF3D
+        "ï½›ï½"                               ; U+FF5B U+FF5D
+        "⦅⦆"                               ; U+FF5F U+FF60
+        "「」"                               ; U+FF62 U+FF63
         )))
   (dolist (elt pairs)
     (modify-syntax-entry (aref elt 0) (string ?\( (aref elt 1)))
     (modify-syntax-entry (aref elt 1) (string ?\) (aref elt 0)))))
 
-\f
-;;; Setting word boundary.
-
-(setq word-combining-categories
-      '((?l . ?l)
-       (?C . ?C)
-       (?C . ?H)
-       (?C . ?K)))
-
-(setq word-separating-categories       ;  (2-byte character sets)
-      '((?A . ?K)                      ; Alpha numeric - Katakana
-       (?A . ?C)                       ; Alpha numeric - Chinese
-       (?H . ?A)                       ; Hiragana - Alpha numeric
-       (?H . ?K)                       ; Hiragana - Katakana
-       (?H . ?C)                       ; Hiragana - Chinese
-       (?K . ?A)                       ; Katakana - Alpha numeric
-       (?K . ?C)                       ; Katakana - Chinese
-       (?C . ?A)                       ; Chinese - Alpha numeric
-       (?C . ?K)                       ; Chinese - Katakana
-       ))
-
 \f
 ;; For each character set, put the information of the most proper
 ;; coding system to encode it by `preferred-coding-system' property.
 
+;; Fixme: should this be junked?
 (let ((l '((latin-iso8859-1    . iso-latin-1)
           (latin-iso8859-2     . iso-latin-2)
           (latin-iso8859-3     . iso-latin-3)
           (cyrillic-iso8859-5  . cyrillic-iso-8bit)
           (latin-iso8859-9     . iso-latin-5)
           (japanese-jisx0208-1978 . iso-2022-jp)
-          (chinese-gb2312      . cn-gb-2312)
+          (chinese-gb2312      . chinese-iso-8bit)
+          (chinese-gbk         . chinese-gbk)
+          (gb18030-2-byte      . chinese-gb18030)
+          (gb18030-4-byte-bmp  . chinese-gb18030)
+          (gb18030-4-byte-smp  . chinese-gb18030)
+          (gb18030-4-byte-ext-1 . chinese-gb18030)
+          (gb18030-4-byte-ext-2 . chinese-gb18030)
           (japanese-jisx0208   . iso-2022-jp)
           (korean-ksc5601      . iso-2022-kr)
           (japanese-jisx0212   . iso-2022-jp)
-          (chinese-cns11643-1  . iso-2022-cn)
-          (chinese-cns11643-2  . iso-2022-cn)
           (chinese-big5-1      . chinese-big5)
           (chinese-big5-2      . chinese-big5)
           (chinese-sisheng     . iso-2022-7bit)
           (vietnamese-viscii-upper . vietnamese-viscii)
           (arabic-digit        . iso-2022-7bit)
           (arabic-1-column     . iso-2022-7bit)
-          (ascii-right-to-left . iso-2022-7bit)
           (lao                 . lao)
           (arabic-2-column     . iso-2022-7bit)
           (indian-is13194      . devanagari)
           (indian-glyph        . devanagari)
           (tibetan-1-column    . tibetan)
           (ethiopic            . iso-2022-7bit)
+          (chinese-cns11643-1  . iso-2022-cn)
+          (chinese-cns11643-2  . iso-2022-cn)
           (chinese-cns11643-3  . iso-2022-cn)
           (chinese-cns11643-4  . iso-2022-cn)
           (chinese-cns11643-5  . iso-2022-cn)
 
 \f
 ;; Setup auto-fill-chars for charsets that should invoke auto-filling.
-;; SPACE and NEWLINE are already set.  Also put `nospace-between-words'
-;; property on the charsets.
-(let ((l '(katakana-jisx0201
-          japanese-jisx0208 japanese-jisx0212
-          chinese-gb2312 chinese-big5-1 chinese-big5-2)))
-  (while l
-    (aset auto-fill-chars (make-char (car l)) t)
-    (put-charset-property (car l) 'nospace-between-words t)
-    (setq l (cdr l))))
+;; SPACE and NEWLINE are already set.
+
+(set-char-table-range auto-fill-chars '(#x3041 . #x30FF) t)
+(set-char-table-range auto-fill-chars '(#x3400 . #x4DB5) t)
+(set-char-table-range auto-fill-chars '(#x4e00 . #x9fbb) t)
+(set-char-table-range auto-fill-chars '(#xF900 . #xFAFF) t)
+(set-char-table-range auto-fill-chars '(#xFF00 . #xFF9F) t)
+(set-char-table-range auto-fill-chars '(#x20000 . #x2FFFF) t)
 
 \f
-(setq utf-translate-cjk-mode saved-utf-translate-cjk-mode)
-(makunbound 'saved-utf-translate-cjk-mode)
+;;; Setting char-width-table.  The default is 1.
+
+;; 0: non-spacing, enclosing combining, formatting, Hangul Jamo medial
+;;    and final characters.
+(let ((l '((#x00AD . #x00AD)
+          (#x0300 . #x036F)
+          (#x0483 . #x0489)
+          (#x0591 . #x05BD)
+          (#x05BF . #x05BF)
+          (#x05C1 . #x05C2)
+          (#x05C4 . #x05C5)
+          (#x05C7 . #x05C7)
+          (#x0600 . #x0603)
+          (#x0610 . #x0615)
+          (#x064B . #x065E)
+          (#x0670 . #x0670)
+          (#x06D6 . #x06E4)
+          (#x06E7 . #x06E8)
+          (#x06EA . #x06ED)
+          (#x070F . #x070F)
+          (#x0711 . #x0711)
+          (#x0730 . #x074A)
+          (#x07A6 . #x07B0)
+          (#x07EB . #x07F3)
+          (#x0901 . #x0902)
+          (#x093C . #x093C)
+          (#x0941 . #x0948)
+          (#x094D . #x094D)
+          (#x0951 . #x0954)
+          (#x0962 . #x0963)
+          (#x0981 . #x0981)
+          (#x09BC . #x09BC)
+          (#x09C1 . #x09C4)
+          (#x09CD . #x09CD)
+          (#x09E2 . #x09E3)
+          (#x0A01 . #x0A02)
+          (#x0A3C . #x0A3C)
+          (#x0A41 . #x0A4D)
+          (#x0A70 . #x0A71)
+          (#x0A81 . #x0A82)
+          (#x0ABC . #x0ABC)
+          (#x0AC1 . #x0AC8)
+          (#x0ACD . #x0ACD)
+          (#x0AE2 . #x0AE3)
+          (#x0B01 . #x0B01)
+          (#x0B3C . #x0B3C)
+          (#x0B3F . #x0B3F)
+          (#x0B41 . #x0B43)
+          (#x0B4D . #x0B56)
+          (#x0B82 . #x0B82)
+          (#x0BC0 . #x0BC0)
+          (#x0BCD . #x0BCD)
+          (#x0C3E . #x0C40)
+          (#x0C46 . #x0C56)
+          (#x0CBC . #x0CBC)
+          (#x0CBF . #x0CBF)
+          (#x0CC6 . #x0CC6)
+          (#x0CCC . #x0CCD)
+          (#x0CE2 . #x0CE3)
+          (#x0D41 . #x0D43)
+          (#x0D4D . #x0D4D)
+          (#x0DCA . #x0DCA)
+          (#x0DD2 . #x0DD6)
+          (#x0E31 . #x0E31)
+          (#x0E34 . #x0E3A)
+          (#x0E47 . #x0E4E)
+          (#x0EB1 . #x0EB1)
+          (#x0EB4 . #x0EBC)
+          (#x0EC8 . #x0ECD)
+          (#x0F18 . #x0F19)
+          (#x0F35 . #x0F35)
+          (#x0F37 . #x0F37)
+          (#x0F39 . #x0F39)
+          (#x0F71 . #x0F7E)
+          (#x0F80 . #x0F84)
+          (#x0F86 . #x0F87)
+          (#x0F90 . #x0FBC)
+          (#x0FC6 . #x0FC6)
+          (#x102D . #x1030)
+          (#x1032 . #x1037)
+          (#x1039 . #x1039)
+          (#x1058 . #x1059)
+          (#x1160 . #x11FF)
+          (#x135F . #x135F)
+          (#x1712 . #x1714)
+          (#x1732 . #x1734)
+          (#x1752 . #x1753)
+          (#x1772 . #x1773)
+          (#x17B4 . #x17B5)
+          (#x17B7 . #x17BD)
+          (#x17C6 . #x17C6)
+          (#x17C9 . #x17D3)
+          (#x17DD . #x17DD)
+          (#x180B . #x180D)
+          (#x18A9 . #x18A9)
+          (#x1920 . #x1922)
+          (#x1927 . #x1928)
+          (#x1932 . #x1932)
+          (#x1939 . #x193B)
+          (#x1A17 . #x1A18)
+          (#x1B00 . #x1B03)
+          (#x1B34 . #x1B34)
+          (#x1B36 . #x1B3A)
+          (#x1B3C . #x1B3C)
+          (#x1B42 . #x1B42)
+          (#x1B6B . #x1B73)
+          (#x1DC0 . #x1DFF)
+          (#x200B . #x200F)
+          (#x202A . #x202E)
+          (#x2060 . #x206F)
+          (#x20D0 . #x20EF)
+          (#x302A . #x302F)
+          (#x3099 . #x309A)
+          (#xA806 . #xA806)
+          (#xA80B . #xA80B)
+          (#xA825 . #xA826)
+          (#xFB1E . #xFB1E)
+          (#xFE00 . #xFE0F)
+          (#xFE20 . #xFE23)
+          (#xFEFF . #xFEFF)
+          (#xFFF9 . #xFFFB)
+          (#x10A01 . #x10A0F)
+          (#x10A38 . #x10A3F)
+          (#x1D167 . #x1D169)
+          (#x1D173 . #x1D182)
+          (#x1D185 . #x1D18B)
+          (#x1D1AA . #x1D1AD)
+          (#x1D242 . #x1D244)
+          (#xE0001 . #xE01EF))))
+  (dolist (elt l)
+    (set-char-table-range char-width-table elt 0)))
+
+;; 2: East Asian Wide and Full-width characters.
+(let ((l '((#x1100 . #x115F)
+          (#x2329 . #x232A)
+          (#x2E80 . #x303E)
+          (#x3040 . #xA4CF)
+          (#xAC00 . #xD7A3)
+          (#xF900 . #xFAFF)
+          (#xFE30 . #xFE6F)
+          (#xFF01 . #xFF60)
+          (#xFFE0 . #xFFE6)
+          (#x20000 . #x2FFFF)
+          (#x30000 . #x3FFFF))))
+  (dolist (elt l)
+    (set-char-table-range char-width-table elt 2)))
+
+;; Other double width
+;;(map-charset-chars
+;; (lambda (range ignore) (set-char-table-range char-width-table range 2))
+;; 'ethiopic)
+;; (map-charset-chars
+;;  (lambda (range ignore) (set-char-table-range char-width-table range 2))
+;; 'tibetan)
+(map-charset-chars
+ (lambda (range ignore) (set-char-table-range char-width-table range 2))
+ 'indian-2-column)
+(map-charset-chars
+ (lambda (range ignore) (set-char-table-range char-width-table range 2))
+ 'arabic-2-column)
+
+(optimize-char-table (standard-case-table))
+(optimize-char-table (standard-category-table))
+(optimize-char-table (standard-syntax-table))
+
+;; The Unicode blocks actually extend past some of these ranges with
+;; undefined codepoints.
+(let ((script-list nil))
+  (dolist
+      (elt
+       '((#x0000 #x007F latin)
+        (#x00A0 #x036F latin)
+        (#x0370 #x03E1 greek)
+        (#x03E2 #x03EF coptic)
+        (#x03F0 #x03F3 greek)
+        (#x0400 #x04FF cyrillic)
+        (#x0530 #x058F armenian)
+        (#x0590 #x05FF hebrew)
+        (#x0600 #x06FF arabic)
+        (#x0700 #x074F syriac)
+        (#x07C0 #x07FA nko)
+        (#x0780 #x07BF thaana)
+        (#x0900 #x097F devanagari)
+        (#x0980 #x09FF bengali)
+        (#x0A00 #x0A7F gurmukhi)
+        (#x0A80 #x0AFF gujarati)
+        (#x0B00 #x0B7F oriya)
+        (#x0B80 #x0BFF tamil)
+        (#x0C00 #x0C7F telugu)
+        (#x0C80 #x0CFF kannada)
+        (#x0D00 #x0D7F malayalam)
+        (#x0D80 #x0DFF sinhala)
+        (#x0E00 #x0E5F thai)
+        (#x0E80 #x0EDF lao)
+        (#x0F00 #x0FFF tibetan)
+        (#x1000 #x105F myanmar)
+        (#x10A0 #x10FF georgian)
+        (#x1100 #x11FF hangul)
+        (#x1200 #x139F ethiopic)
+        (#x13A0 #x13FF cherokee)
+        (#x1400 #x167F canadian-aboriginal)
+        (#x1680 #x169F ogham)
+        (#x16A0 #x16FF runic)
+        (#x1780 #x17FF khmer)
+        (#x1800 #x18AF mongolian)
+        (#x1E00 #x1EFF latin)
+        (#x1F00 #x1FFF greek)
+        (#x2000 #x27FF symbol)
+        (#x2800 #x28FF braille)
+        (#x2D80 #x2DDF ethiopic)
+        (#x2E80 #x2FDF han)
+        (#x2FF0 #x2FFF ideographic-description)
+        (#x3000 #x303F cjk-misc)
+        (#x3040 #x30FF kana)
+        (#x3100 #x312F bopomofo)
+        (#x3130 #x318F hangul)
+        (#x3190 #x319F kanbun)
+        (#x31A0 #x31BF bopomofo)
+        (#x3400 #x9FAF han)
+        (#xA000 #xA4CF yi)
+        (#xAA80 #xAADF tai-viet)
+        (#xAC00 #xD7AF hangul)
+        (#xF900 #xFAFF han)
+        (#xFB1D #xFB4F hebrew)
+        (#xFB50 #xFDFF arabic)
+        (#xFE70 #xFEFC arabic)
+        (#xFF00 #xFF5F cjk-misc)
+        (#xFF61 #xFF9F kana)
+        (#xFFE0 #xFFE6 cjk-misc)
+        (#x1D000 #x1D0FF byzantine-musical-symbol)
+        (#x1D100 #x1D1FF musical-symbol)
+        (#x1D400 #x1D7FF mathematical)
+        (#x20000 #x2AFFF han)
+        (#x2F800 #x2FFFF han)))
+    (set-char-table-range char-script-table
+                         (cons (car elt) (nth 1 elt)) (nth 2 elt))
+    (or (memq (nth 2 elt) script-list)
+       (setq script-list (cons (nth 2 elt) script-list))))
+  (set-char-table-extra-slot char-script-table 0 (nreverse script-list)))
+
+(map-charset-chars
+ #'(lambda (range ignore)
+     (set-char-table-range char-script-table range 'tibetan))
+ 'tibetan)
+
+\f
+;;; Setting word boundary.
+
+(defun next-word-boundary-han (pos limit)
+  (if (<= pos limit)
+      (save-excursion
+       (goto-char pos)
+       (looking-at "\\cC+")
+       (goto-char (match-end 0))
+       (if (looking-at "\\cH+")
+           (goto-char (match-end 0)))
+       (point))
+    (while (and (> pos limit)
+               (eq (aref char-script-table (char-after (1- pos))) 'han))
+      (setq pos (1- pos)))
+    pos))
+
+(defun next-word-boundary-kana (pos limit)
+  (if (<= pos limit)
+      (save-excursion
+       (goto-char pos)
+       (if (looking-at "\\cK+")
+           (goto-char (match-end 0)))
+       (if (looking-at "\\cH+")
+           (goto-char (match-end 0)))
+       (if (looking-at "\\ck+")
+           (goto-char (match-end 0)))
+       (point))
+    (let ((category-set (char-category-set (char-after pos)))
+         category)
+      (if (or (aref category-set ?K) (aref category-set ?k))
+         (while (and (> pos limit)
+                     (setq category-set 
+                           (char-category-set (char-after (1- pos))))
+                     (or (aref category-set ?K) (aref category-set ?k)))
+           (setq pos (1- pos)))
+       (while (and (> pos limit)
+                   (aref (setq category-set
+                               (char-category-set (char-after (1- pos)))) ?H))
+         (setq pos (1- pos)))
+       (setq category (cond ((aref category-set ?C) ?C)
+                            ((aref category-set ?K) ?K)
+                            ((aref category-set ?A) ?A)))
+       (when category
+         (setq pos (1- pos))
+         (while (and (> pos limit)
+                     (aref (char-category-set (char-after (1- pos)))
+                           category))
+           (setq pos (1- pos)))))
+      pos)))
+
+(map-char-table
+ #'(lambda (char script)
+     (cond ((eq script 'han)
+           (set-char-table-range find-word-boundary-function-table
+                                 char #'next-word-boundary-han))
+          ((eq script 'kana)
+           (set-char-table-range find-word-boundary-function-table
+                                 char #'next-word-boundary-kana))))
+ char-script-table)
+
+(setq word-combining-categories
+      '((?l . ?l)
+       (?C . ?C)
+       (?C . ?H)
+       (?C . ?K)))
+
+(setq word-separating-categories       ;  (2-byte character sets)
+      '((?A . ?K)                      ; Alpha numeric - Katakana
+       (?A . ?C)                       ; Alpha numeric - Chinese
+       (?H . ?A)                       ; Hiragana - Alpha numeric
+       (?H . ?K)                       ; Hiragana - Katakana
+       (?H . ?C)                       ; Hiragana - Chinese
+       (?K . ?A)                       ; Katakana - Alpha numeric
+       (?K . ?C)                       ; Katakana - Chinese
+       (?C . ?A)                       ; Chinese - Alpha numeric
+       (?C . ?K)                       ; Chinese - Katakana
+       ))
 
 ;; Local Variables:
-;; coding: iso-2022-7bit
+;; coding: utf-8
 ;; End:
 
 ;; arch-tag: 85889c35-9f4d-4912-9bf5-82de31b0d42d
diff --git a/lisp/international/charprop.el b/lisp/international/charprop.el
new file mode 100644 (file)
index 0000000..312fc99
--- /dev/null
@@ -0,0 +1,71 @@
+;; Automatically generated by unidata-gen.el.
+;; FILE: uni-name.el
+(define-char-code-property 'name "uni-name.el"
+  "Unicode character name.
+Property value is a string.")
+;; FILE: uni-category.el
+(define-char-code-property 'general-category "uni-category.el"
+  "Unicode general category.
+Property value is one of the following symbols:
+  Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po,
+  Sm, Sc, Sk, So, Zs, Zl, Zp, Cc, Cf, Cs, Co, Cn")
+;; FILE: uni-combining.el
+(define-char-code-property 'canonical-combining-class "uni-combining.el"
+  "Unicode canonical combining class.
+Property value is an integer.")
+;; FILE: uni-bidi.el
+(define-char-code-property 'bidi-class "uni-bidi.el"
+  "Unicode bidi class.
+Property value is one of the following symbols:
+  L, LRE, LRO, R, AL, RLE, RLO, PDF, EN, ES, ET,
+  AN, CS, NSM, BN, B, S, WS, ON")
+;; FILE: uni-decomposition.el
+(define-char-code-property 'decomposition "uni-decomposition.el"
+  "Unicode decomposition mapping.
+Property value is a list of characters.  The first element may be
+one of these symbols representing compatibility formatting tag:
+  <font>, <noBreak>, <initial>, <medial>, <final>, <isolated>, <circle>,
+  <super>, <sub>, <vertical>, <wide>, <narrow>, <small>, <square>, <fraction>,
+  <compat>")
+;; FILE: uni-decimal.el
+(define-char-code-property 'decimal-digit-value "uni-decimal.el"
+  "Unicode numeric value (decimal digit).
+Property value is an integer.")
+;; FILE: uni-digit.el
+(define-char-code-property 'digit-value "uni-digit.el"
+  "Unicode numeric value (digit).
+Property value is an integer.")
+;; FILE: uni-numeric.el
+(define-char-code-property 'numeric-value "uni-numeric.el"
+  "Unicode numeric value (numeric).
+Property value is an symbol.")
+;; FILE: uni-mirrored.el
+(define-char-code-property 'mirrored "uni-mirrored.el"
+  "Unicode bidi mirrored flag.
+Property value is a symbol `Y' or `N'.")
+;; FILE: uni-old-name.el
+(define-char-code-property 'old-name "uni-old-name.el"
+  "Unicode old names as published in Unicode 1.0.
+Property value is a string.")
+;; FILE: uni-comment.el
+(define-char-code-property 'iso-10646-comment "uni-comment.el"
+  "Unicode ISO 10646 comment.
+Property value is a string.")
+;; FILE: uni-uppercase.el
+(define-char-code-property 'uppercase "uni-uppercase.el"
+  "Unicode simple uppercase mapping.
+Property value is a character.")
+;; FILE: uni-lowercase.el
+(define-char-code-property 'lowercase "uni-lowercase.el"
+  "Unicode simple lowercase mapping.
+Property value is a character.")
+;; FILE: uni-titlecase.el
+(define-char-code-property 'titlecase "uni-titlecase.el"
+  "Unicode simple titlecase mapping.
+Property value is a character.")
+;; Local Variables:
+;; coding: utf-8
+;; no-byte-compile: t
+;; End:
+
+;; charprop.el ends here
diff --git a/lisp/international/code-pages.el b/lisp/international/code-pages.el
deleted file mode 100644 (file)
index d781072..0000000
+++ /dev/null
@@ -1,4713 +0,0 @@
-;;; code-pages.el --- coding systems for assorted codepages  -*-coding: utf-8;-*-
-
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
-;;   Free Software Foundation, Inc.
-;; Copyright (C) 2004, 2005, 2006, 2007
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H14PRO021
-
-;; Author: Dave Love <fx@gnu.org>
-;; Keywords: i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Definitions of miscellaneous 8-bit coding systems based on ASCII
-;; (we can't cope properly with EBCDIC, for instance), mainly for PC
-;; `code pages'.  They are decoded into Latin-1 and mule-unicode
-;; charsets rather than (lossily) into single iso8859 charsets Ã  la
-;; codepage.el.  The utility `cp-make-coding-system' derives them from
-;; simple tables.
-
-;; Those covered are: cp437, cp737, cp720, cp775, cp850, cp851, cp852,
-;; cp855, cp857, cp860, cp861, cp862, cp863, cp864, cp865, cp866,
-;; cp869, cp874, cp1125, windows-1250, windows-1253, windows-1254,
-;; windows-1255, windows-1256, windows-1257, windows-1258, next,
-;; iso-8859-6, iso-8859-10, iso-8859-11, iso-8859-16, koi8-t,
-;; georgian-ps.  This is meant to include all the single-byte ones
-;; relevant to GNU (used in glibc-defined locales); we don't yet get
-;; all the multibyte ones in base Emacs.
-
-;; Note that various of these can clash with definitions in
-;; codepage.el; we try to avoid damage from that.  A few CPs from
-;; codepage.el (770, 773, 774) aren't covered (in the absence of
-;; translation tables to Unicode).
-
-;; Compile this, to avoid loading `ccl' at runtime.
-
-;; Although the tables used here aren't very big, it might be worth
-;; splitting the file and autoloading the coding systems if/when my
-;; (or similar) autoloading code is installed.
-
-;;; Code:
-
-;; The defsubsts here are just so that language files can use
-;; `cp-make-coding-system' and not require functions from this file
-;; at runtime.
-
-(defsubst cp-make-translation-table (v)
-  "Return a translation table made from 128-long vector V.
-V comprises characters encodable by mule-utf-8."
-  (let ((encoding-vector (make-vector 256 0)))
-    (dotimes (i 128)
-      (aset encoding-vector i i))
-    (dotimes (i 128)
-      (aset encoding-vector (+ i 128) (aref v i)))
-    ;; Add equivalent characters to the encoder so that we can unify
-    ;; on encoding.
-    (let* ((tab (make-translation-table-from-vector encoding-vector))
-          ;; Translation table used for encoding:
-          (encode-table (char-table-extra-slot tab 0)))
-      (map-char-table (lambda (c v)
-                       (if v
-                           (let ((c1 (aref encode-table v)))
-                             (if c1    ; we encode that unicode
-                                 (aset encode-table c c1)))))
-                     ucs-mule-to-mule-unicode)
-      tab)))
-
-(defsubst cp-valid-codes (v)
-  "Derive a valid-codes list for translation vector V.
-See `make-coding-system'."
-  (let (pairs
-       (i 128)                         ; index into v
-       (start 0)                       ; start of a valid range
-       (end 127))                      ; end of a valid range
-    (while (< i 256)
-      (if (aref v (- i 128))           ; start or extend range
-         (progn
-           (setq end i)
-           (unless start (setq start i)))
-       (if start
-           (push (cons start end) pairs))
-       (setq start nil))
-      (setq i (1+ i)))
-    (if start (push (cons start end) pairs))
-    (nreverse pairs)))
-
-;; Fix things that have been, or might be, done by codepage.el.
-(eval-after-load "codepage"
-  '(progn
-
-;; Semi-dummy version for the stuff in codepage.el which we don't
-;; define here.  (Used by mule-diag.)
-(defun cp-supported-codepages ()
-  "Return an alist of supported codepages.
-
-Each association in the alist has the form (NNN . CHARSET), where NNN is the
-codepage number, and CHARSET is the MULE charset which is the closest match
-for the character set supported by that codepage.
-
-A codepage NNN is supported if a variable called `cpNNN-decode-table' exists,
-is a vector, and has a charset property."
-  '(("774" . latin-iso8859-4) ("770" . latin-iso8859-4)
-    ("773" . latin-iso8859-4)))
-
-;; A version which doesn't override the coding systems set up by this
-;; file.  It could still be used for the few missing ones from
-;; codepage.el.
-(defun codepage-setup (codepage)
-  "Create a coding system cpCODEPAGE to support the IBM codepage CODEPAGE.
-
-These coding systems are meant for encoding and decoding 8-bit non-ASCII
-characters used by the IBM codepages, typically in conjunction with files
-read/written by MS-DOS software, or for display on the MS-DOS terminal."
-  (interactive
-   (let ((completion-ignore-case t)
-        (candidates (cp-supported-codepages)))
-     (list (completing-read "Setup DOS Codepage (default 437): " candidates
-                           nil t nil nil "437"))))
-  (let ((cp (format "cp%s" codepage)))
-    (unless (coding-system-p (intern cp))
-      (cp-make-coding-systems-for-codepage
-       cp (cp-charset-for-codepage cp) (cp-offset-for-codepage cp))))))
-)                                      ; eval-after-load
-
-;; Macro to allow ccl compilation at byte-compile time, avoiding
-;; loading ccl.
-;;;###autoload
-(defmacro cp-make-coding-system (name v &optional doc-string mnemonic)
-  "Make coding system NAME for and 8-bit, extended-ASCII character set.
-V is a 128-long vector of characters to translate the upper half of
-the character set.  DOC-STRING and MNEMONIC are used as the
-corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
-?* is used.
-Return an updated `non-iso-charset-alist'."
-  (let* ((encoder (intern (format "encode-%s" name)))
-        (decoder (intern (format "decode-%s" name)))
-        (ccl-decoder
-         (ccl-compile
-          `(4
-            ((loop
-              (read r1)
-              (if (r1 < 128) ;; ASCII
-                  (r0 = ,(charset-id 'ascii))
-                (if (r1 < 160)
-                    (r0 = ,(charset-id 'eight-bit-control))
-                  (r0 = ,(charset-id 'eight-bit-graphic))))
-              (translate-character ,decoder r0 r1)
-              ;; Allow fragmentation on decoding -- relevant for
-              ;; Cyrillic, Greek and, possibly Arabic and Hebrew.
-              (translate-character utf-translation-table-for-decode r0 r1)
-              (write-multibyte-character r0 r1)
-              (repeat))))))
-        (ccl-encoder
-         (ccl-compile
-          `(1
-            ((loop
-              (read-multibyte-character r0 r1)
-              (translate-character ,encoder r0 r1)
-              (if (r0 != ,(charset-id 'ascii))
-                  (if (r0 != ,(charset-id 'eight-bit-graphic))
-                      (if (r0 != ,(charset-id 'eight-bit-control))
-                          (r1 = ??))))
-              (write-repeat r1)))))))
-    `(let ((translation-table (cp-make-translation-table ,v))
-          (codes (cp-valid-codes ,v)))
-       (define-translation-table ',decoder translation-table)
-       (define-translation-table ',encoder
-        (char-table-extra-slot translation-table 0))
-       (make-coding-system
-       ',name 4 ,(or mnemonic ?*)
-       (or ,doc-string (format "%s encoding" ',name))
-       (cons ,ccl-decoder ,ccl-encoder)
-       (list (cons 'safe-chars (get ',encoder 'translation-table))
-             (cons 'valid-codes codes)
-             (cons 'mime-charset ',name)
-             ;; For Quail translation.  Fixme: this should really be
-             ;; a separate table that only translates the coding
-             ;; system's safe-chars.
-             (cons 'translation-table-for-input 'ucs-mule-to-mule-unicode)))
-       (let ((slot (assq ',name non-iso-charset-alist))
-            (elt (list nil                     ; charset list
-                       ',decoder
-                       (let (l)                ; code range
-                         (dolist (elt (reverse codes))
-                           (push (cdr elt) l)
-                           (push (car elt) l))
-                         (list l)))))
-        (if (not slot)
-            (push (cons ',name elt) non-iso-charset-alist)
-          (setcdr slot elt)
-          non-iso-charset-alist)))))
-
-(eval-when-compile (defvar non-iso-charset-alist))
-
-;; These tables were mostly derived by running somthing like
-;; `recode -f cpxxx/..utf-8' on a binary file filled by
-;; `(dotimes (i 128) (insert ?? ?\\ (+ 128 i) ?\n))' and then
-;; exchanging the ?\� entries for nil.  iconv was used instead in some
-;; cases.
-
-;; Fixme: Do better for mode-line mnemonics?
-
-;;;###autoload(autoload-coding-system 'cp437 '(require 'code-pages))
-(cp-make-coding-system
- cp437
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\ä
-  ?\à
-  ?\Ã¥
-  ?\ç
-  ?\ê
-  ?\ë
-  ?\è
-  ?\ï
-  ?\î
-  ?\ì
-  ?\Ä
-  ?\Ã…
-  ?\É
-  ?\æ
-  ?\Æ
-  ?\ô
-  ?\ö
-  ?\ò
-  ?\û
-  ?\ù
-  ?\ÿ
-  ?\Ö
-  ?\Ãœ
-  ?\¢
-  ?\£
-  ?\Â¥
-  ?\₧
-  ?\Æ’
-  ?\á
-  ?\í
-  ?\ó
-  ?\ú
-  ?\ñ
-  ?\Ñ
-  ?\ª
-  ?\º
-  ?\¿
-  ?\âŒ
-  ?\¬
-  ?\½
-  ?\¼
-  ?\¡
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\α
-  ?\ß
-  ?\Γ
-  ?\Ï€
-  ?\Σ
-  ?\σ
-  ?\µ
-  ?\Ï„
-  ?\Φ
-  ?\Θ
-  ?\Ω
-  ?\δ
-  ?\∞
-  ?\φ
-  ?\ε
-  ?\∩
-  ?\≡
-  ?\±
-  ?\≥
-  ?\≤
-  ?\⌠
-  ?\⌡
-  ?\÷
-  ?\≈
-  ?\°
-  ?\·
-  ?\•
-  ?\√
-  ?\â¿
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp737 '(require 'code-pages))
-(cp-make-coding-system
- cp737
- [?\Α
-  ?\Î’
-  ?\Γ
-  ?\Δ
-  ?\Ε
-  ?\Ζ
-  ?\Η
-  ?\Θ
-  ?\Ι
-  ?\Κ
-  ?\Λ
-  ?\Îœ
-  ?\Î
-  ?\Ξ
-  ?\Ο
-  ?\Π
-  ?\Ρ
-  ?\Σ
-  ?\Τ
-  ?\Î¥
-  ?\Φ
-  ?\Χ
-  ?\Ψ
-  ?\Ω
-  ?\α
-  ?\β
-  ?\γ
-  ?\δ
-  ?\ε
-  ?\ζ
-  ?\η
-  ?\θ
-  ?\ι
-  ?\κ
-  ?\λ
-  ?\μ
-  ?\ν
-  ?\ξ
-  ?\ο
-  ?\Ï€
-  ?\Ï
-  ?\σ
-  ?\Ï‚
-  ?\Ï„
-  ?\Ï…
-  ?\φ
-  ?\χ
-  ?\ψ
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\ω
-  ?\ά
-  ?\έ
-  ?\ή
-  ?\ÏŠ
-  ?\ί
-  ?\ÏŒ
-  ?\Ï
-  ?\Ï‹
-  ?\ÏŽ
-  ?\Ά
-  ?\Έ
-  ?\Ή
-  ?\Ί
-  ?\ÎŒ
-  ?\ÎŽ
-  ?\Î
-  ?\±
-  ?\≥
-  ?\≤
-  ?\Ϊ
-  ?\Ϋ
-  ?\÷
-  ?\≈
-  ?\°
-  ?\∙
-  ?\·
-  ?\√
-  ?\â¿
-  ?\²
-  ?\â– 
-  ?\ ])
-(coding-system-put 'cp737 'mime-charset nil) ; not in IANA list
-
-;;;###autoload(autoload-coding-system 'cp775 '(require 'code-pages))
-(cp-make-coding-system
- cp775
- [?\Ć
-  ?\ü
-  ?\é
-  ?\Ä
-  ?\ä
-  ?\Ä£
-  ?\Ã¥
-  ?\ć
-  ?\Å‚
-  ?\Ä“
-  ?\Å–
-  ?\Å—
-  ?\Ä«
-  ?\Ź
-  ?\Ä
-  ?\Ã…
-  ?\É
-  ?\æ
-  ?\Æ
-  ?\Å
-  ?\ö
-  ?\Ä¢
-  ?\¢
-  ?\Åš
-  ?\Å›
-  ?\Ö
-  ?\Ãœ
-  ?\ø
-  ?\£
-  ?\Ø
-  ?\×
-  ?\¤
-  ?\Ä€
-  ?\Ī
-  ?\ó
-  ?\Å»
-  ?\ż
-  ?\ź
-  ?\â€
-  ?\¦
-  ?\©
-  ?\®
-  ?\¬
-  ?\½
-  ?\¼
-  ?\Å
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\Ä„
-  ?\ÄŒ
-  ?\Ę
-  ?\Ä–
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\Ä®
-  ?\Å 
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\Ų
-  ?\Ū
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\Ž
-  ?\Ä…
-  ?\Ä
-  ?\Ä™
-  ?\Ä—
-  ?\į
-  ?\Å¡
-  ?\ų
-  ?\Å«
-  ?\ž
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\Ó
-  ?\ß
-  ?\ÅŒ
-  ?\Ń
-  ?\õ
-  ?\Õ
-  ?\µ
-  ?\Å„
-  ?\Ķ
-  ?\Ä·
-  ?\Ä»
-  ?\ļ
-  ?\ņ
-  ?\Ä’
-  ?\Å…
-  ?\’
-  ?\­
-  ?\±
-  ?\“
-  ?\¾
-  ?\¶
-  ?\§
-  ?\÷
-  ?\„
-  ?\°
-  ?\∙
-  ?\·
-  ?\¹
-  ?\³
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp850 '(require 'code-pages))
-(cp-make-coding-system
- cp850
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\ä
-  ?\à
-  ?\Ã¥
-  ?\ç
-  ?\ê
-  ?\ë
-  ?\è
-  ?\ï
-  ?\î
-  ?\ì
-  ?\Ä
-  ?\Ã…
-  ?\É
-  ?\æ
-  ?\Æ
-  ?\ô
-  ?\ö
-  ?\ò
-  ?\û
-  ?\ù
-  ?\ÿ
-  ?\Ö
-  ?\Ãœ
-  ?\ø
-  ?\£
-  ?\Ø
-  ?\×
-  ?\Æ’
-  ?\á
-  ?\í
-  ?\ó
-  ?\ú
-  ?\ñ
-  ?\Ñ
-  ?\ª
-  ?\º
-  ?\¿
-  ?\®
-  ?\¬
-  ?\½
-  ?\¼
-  ?\¡
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\Ã
-  ?\Â
-  ?\À
-  ?\©
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\¢
-  ?\Â¥
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\ã
-  ?\Ã
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\¤
-  ?\ð
-  ?\Ã
-  ?\Ê
-  ?\Ë
-  ?\È
-  ?\ı
-  ?\Ã
-  ?\ÃŽ
-  ?\Ã
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\¦
-  ?\ÃŒ
-  ?\â–€
-  ?\Ó
-  ?\ß
-  ?\Ô
-  ?\Ã’
-  ?\õ
-  ?\Õ
-  ?\µ
-  ?\þ
-  ?\Þ
-  ?\Ú
-  ?\Û
-  ?\Ù
-  ?\ý
-  ?\Ã
-  ?\¯
-  ?\´
-  ?\­
-  ?\±
-  ?\‗
-  ?\¾
-  ?\¶
-  ?\§
-  ?\÷
-  ?\¸
-  ?\°
-  ?\¨
-  ?\·
-  ?\¹
-  ?\³
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp851 '(require 'code-pages))
-(cp-make-coding-system
- cp851
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\ä
-  ?\à
-  ?\Ά
-  ?\ç
-  ?\ê
-  ?\ë
-  ?\è
-  ?\ï
-  ?\î
-  ?\Έ
-  ?\Ä
-  ?\Ή
-  ?\Ί
-  nil
-  ?\ÎŒ
-  ?\ô
-  ?\ö
-  ?\ÎŽ
-  ?\û
-  ?\ù
-  ?\Î
-  ?\Ö
-  ?\Ãœ
-  ?\ά
-  ?\£
-  ?\έ
-  ?\ή
-  ?\ί
-  ?\ÏŠ
-  ?\Î
-  ?\ÏŒ
-  ?\Ï
-  ?\Α
-  ?\Î’
-  ?\Γ
-  ?\Δ
-  ?\Ε
-  ?\Ζ
-  ?\Η
-  ?\½
-  ?\Θ
-  ?\Ι
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\Κ
-  ?\Λ
-  ?\Î
-  ?\Îœ
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\Ξ
-  ?\Ο
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\Π
-  ?\Ρ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\Σ
-  ?\Τ
-  ?\Î¥
-  ?\Φ
-  ?\Χ
-  ?\Ψ
-  ?\Ω
-  ?\α
-  ?\β
-  ?\γ
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\δ
-  ?\ε
-  ?\â–€
-  ?\ζ
-  ?\η
-  ?\θ
-  ?\ι
-  ?\κ
-  ?\λ
-  ?\μ
-  ?\ν
-  ?\ξ
-  ?\ο
-  ?\Ï€
-  ?\Ï
-  ?\σ
-  ?\Ï‚
-  ?\Ï„
-  ?\´
-  ?\­
-  ?\±
-  ?\Ï…
-  ?\φ
-  ?\χ
-  ?\§
-  ?\ψ
-  ?\Ë›
-  ?\°
-  ?\¨
-  ?\ω
-  ?\Ï‹
-  ?\ΰ
-  ?\ÏŽ
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp852 '(require 'code-pages))
-(cp-make-coding-system
- cp852
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\ä
-  ?\ů
-  ?\ć
-  ?\ç
-  ?\Å‚
-  ?\ë
-  ?\Å
-  ?\Å‘
-  ?\î
-  ?\Ź
-  ?\Ä
-  ?\Ć
-  ?\É
-  ?\Ĺ
-  ?\ĺ
-  ?\ô
-  ?\ö
-  ?\Ľ
-  ?\ľ
-  ?\Åš
-  ?\Å›
-  ?\Ö
-  ?\Ãœ
-  ?\Ť
-  ?\Å¥
-  ?\Å
-  ?\×
-  ?\Ä
-  ?\á
-  ?\í
-  ?\ó
-  ?\ú
-  ?\Ä„
-  ?\Ä…
-  ?\Ž
-  ?\ž
-  ?\Ę
-  ?\Ä™
-  ?\¬
-  ?\ź
-  ?\ÄŒ
-  ?\ÅŸ
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\Ã
-  ?\Â
-  ?\Äš
-  ?\Åž
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\Å»
-  ?\ż
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\Ä‚
-  ?\ă
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\¤
-  ?\Ä‘
-  ?\Ä
-  ?\ÄŽ
-  ?\Ë
-  ?\Ä
-  ?\Ň
-  ?\Ã
-  ?\ÃŽ
-  ?\Ä›
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\Å¢
-  ?\Å®
-  ?\â–€
-  ?\Ó
-  ?\ß
-  ?\Ô
-  ?\Ń
-  ?\Å„
-  ?\ň
-  ?\Å 
-  ?\Å¡
-  ?\Å”
-  ?\Ú
-  ?\Å•
-  ?\Å°
-  ?\ý
-  ?\Ã
-  ?\Å£
-  ?\´
-  ?\­
-  ?\Ë
-  ?\Ë›
-  ?\ˇ
-  ?\˘
-  ?\§
-  ?\÷
-  ?\¸
-  ?\°
-  ?\¨
-  ?\Ë™
-  ?\ű
-  ?\Ř
-  ?\Å™
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp855 '(require 'code-pages))
-(cp-make-coding-system
- cp855
- [?\Ñ’
-  ?\Ђ
-  ?\Ñ“
-  ?\Ѓ
-  ?\Ñ‘
-  ?\Ð
-  ?\Ñ”
-  ?\Є
-  ?\Ñ•
-  ?\Ð…
-  ?\Ñ–
-  ?\І
-  ?\Ñ—
-  ?\Ї
-  ?\ј
-  ?\Ј
-  ?\Ñ™
-  ?\Љ
-  ?\Ñš
-  ?\Њ
-  ?\Ñ›
-  ?\Ћ
-  ?\Ñœ
-  ?\ÐŒ
-  ?\Ñž
-  ?\ÐŽ
-  ?\ÑŸ
-  ?\Ð
-  ?\ÑŽ
-  ?\Ю
-  ?\ÑŠ
-  ?\Ъ
-  ?\а
-  ?\Ð
-  ?\б
-  ?\Б
-  ?\ц
-  ?\Ц
-  ?\д
-  ?\Д
-  ?\е
-  ?\Е
-  ?\Ñ„
-  ?\Ф
-  ?\г
-  ?\Г
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\Ñ…
-  ?\Ð¥
-  ?\и
-  ?\И
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\й
-  ?\Й
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\к
-  ?\К
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\¤
-  ?\л
-  ?\Л
-  ?\м
-  ?\Ðœ
-  ?\н
-  ?\Ð
-  ?\о
-  ?\О
-  ?\п
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\П
-  ?\Ñ
-  ?\â–€
-  ?\Я
-  ?\Ñ€
-  ?\Р
-  ?\Ñ
-  ?\С
-  ?\Ñ‚
-  ?\Т
-  ?\у
-  ?\У
-  ?\ж
-  ?\Ж
-  ?\в
-  ?\Ð’
-  ?\ÑŒ
-  ?\Ь
-  ?\´
-  ?\­
-  ?\Ñ‹
-  ?\Ы
-  ?\з
-  ?\З
-  ?\ш
-  ?\Ш
-  ?\Ñ
-  ?\Э
-  ?\щ
-  ?\Щ
-  ?\ч
-  ?\Ч
-  nil
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp857 '(require 'code-pages))
-(cp-make-coding-system
- cp857
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\ä
-  ?\à
-  ?\Ã¥
-  ?\ç
-  ?\ê
-  ?\ë
-  ?\è
-  ?\ï
-  ?\î
-  ?\ı
-  ?\Ä
-  ?\Ã…
-  ?\É
-  ?\æ
-  ?\Æ
-  ?\ô
-  ?\ö
-  ?\ò
-  ?\û
-  ?\ù
-  ?\Ä°
-  ?\Ö
-  ?\Ãœ
-  ?\ø
-  ?\£
-  ?\Ø
-  ?\Åž
-  ?\ÅŸ
-  ?\á
-  ?\í
-  ?\ó
-  ?\ú
-  ?\ñ
-  ?\Ñ
-  ?\Äž
-  ?\ÄŸ
-  ?\¿
-  ?\®
-  ?\¬
-  ?\½
-  ?\¼
-  ?\¡
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\Ã
-  ?\Â
-  ?\À
-  ?\©
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\¢
-  ?\Â¥
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\ã
-  ?\Ã
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\¤
-  ?\º
-  ?\ª
-  ?\Ê
-  ?\Ë
-  ?\È
-  nil
-  ?\Ã
-  ?\ÃŽ
-  ?\Ã
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\¦
-  ?\ÃŒ
-  ?\â–€
-  ?\Ó
-  ?\ß
-  ?\Ô
-  ?\Ã’
-  ?\õ
-  ?\Õ
-  ?\µ
-  nil
-  ?\×
-  ?\Ú
-  ?\Û
-  ?\Ù
-  ?\ì
-  ?\ÿ
-  ?\—
-  ?\´
-  ?\­
-  ?\±
-  nil
-  ?\¾
-  ?\¶
-  ?\§
-  ?\÷
-  ?\Ë›
-  ?\°
-  ?\¨
-  ?\Ë™
-  ?\¹
-  ?\³
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp858 '(require 'code-pages))
-(cp-make-coding-system
- cp858
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\ä
-  ?\à
-  ?\Ã¥
-  ?\ç
-  ?\ê
-  ?\ë
-  ?\è
-  ?\ï
-  ?\î
-  ?\ì
-  ?\Ä
-  ?\Ã…
-  ?\É
-  ?\æ
-  ?\Æ
-  ?\ô
-  ?\ö
-  ?\ò
-  ?\û
-  ?\ù
-  ?\ÿ
-  ?\Ö
-  ?\Ãœ
-  ?\ø
-  ?\£
-  ?\Ø
-  ?\×
-  ?\Æ’
-  ?\á
-  ?\í
-  ?\ó
-  ?\ú
-  ?\ñ
-  ?\Ñ
-  ?\ª
-  ?\º
-  ?\¿
-  ?\®
-  ?\¬
-  ?\½
-  ?\¼
-  ?\¡
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\Ã
-  ?\Â
-  ?\À
-  ?\©
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\¢
-  ?\Â¥
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\ã
-  ?\Ã
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\¤
-  ?\ð
-  ?\Ã
-  ?\Ê
-  ?\Ë
-  ?\È
-  ?\€
-  ?\Ã
-  ?\ÃŽ
-  ?\Ã
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\¦
-  ?\ÃŒ
-  ?\â–€
-  ?\Ó
-  ?\ß
-  ?\Ô
-  ?\Ã’
-  ?\õ
-  ?\Õ
-  ?\µ
-  ?\þ
-  ?\Þ
-  ?\Ú
-  ?\Û
-  ?\Ù
-  ?\ý
-  ?\Ã
-  ?\¯
-  ?\´
-  ?\­
-  ?\±
-  ?\‗
-  ?\¾
-  ?\¶
-  ?\§
-  ?\÷
-  ?\¸
-  ?\°
-  ?\¨
-  ?\·
-  ?\¹
-  ?\³
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp860 '(require 'code-pages))
-(cp-make-coding-system
- cp860
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\ã
-  ?\à
-  ?\Ã
-  ?\ç
-  ?\ê
-  ?\Ê
-  ?\è
-  ?\ÃŽ
-  ?\Ô
-  ?\ì
-  ?\Ã
-  ?\Â
-  ?\É
-  ?\À
-  ?\È
-  ?\ô
-  ?\õ
-  ?\ò
-  ?\Ú
-  ?\ù
-  ?\ÃŒ
-  ?\Õ
-  ?\Ãœ
-  ?\¢
-  ?\£
-  ?\Ù
-  ?\₧
-  ?\Ã’
-  ?\á
-  ?\í
-  ?\ó
-  ?\ú
-  ?\ñ
-  ?\Ñ
-  ?\ª
-  ?\º
-  ?\¿
-  ?\Ó
-  ?\¬
-  ?\½
-  ?\¼
-  ?\¡
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\α
-  ?\ß
-  ?\Γ
-  ?\Ï€
-  ?\Σ
-  ?\σ
-  ?\µ
-  ?\Ï„
-  ?\Φ
-  ?\Θ
-  ?\Ω
-  ?\δ
-  ?\∞
-  ?\φ
-  ?\ε
-  ?\∩
-  ?\≡
-  ?\±
-  ?\≥
-  ?\≤
-  ?\⌠
-  ?\⌡
-  ?\÷
-  ?\≈
-  ?\°
-  ?\·
-  ?\•
-  ?\√
-  ?\â¿
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp861 '(require 'code-pages))
-(cp-make-coding-system
- cp861
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\ä
-  ?\à
-  ?\Ã¥
-  ?\ç
-  ?\ê
-  ?\ë
-  ?\è
-  ?\Ã
-  ?\ð
-  ?\Þ
-  ?\Ä
-  ?\Ã…
-  ?\É
-  ?\æ
-  ?\Æ
-  ?\ô
-  ?\ö
-  ?\þ
-  ?\û
-  ?\Ã
-  ?\ý
-  ?\Ö
-  ?\Ãœ
-  ?\ø
-  ?\£
-  ?\Ø
-  ?\₧
-  ?\Ã’
-  ?\á
-  ?\í
-  ?\ó
-  ?\ú
-  ?\Ã
-  ?\Ã
-  ?\Ó
-  ?\Ú
-  ?\¿
-  nil
-  ?\¬
-  ?\½
-  ?\¼
-  ?\¡
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\α
-  ?\ß
-  ?\Γ
-  ?\Ï€
-  ?\Σ
-  ?\σ
-  ?\µ
-  ?\Ï„
-  ?\Φ
-  ?\Θ
-  ?\Ω
-  ?\δ
-  ?\∞
-  ?\φ
-  ?\ε
-  ?\∩
-  ?\≡
-  ?\±
-  ?\≥
-  ?\≤
-  ?\⌠
-  ?\⌡
-  ?\÷
-  ?\≈
-  ?\°
-  ?\·
-  ?\•
-  ?\√
-  ?\â¿
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp862 '(require 'code-pages))
-(cp-make-coding-system
- cp862
- [?\×
-  ?\ב
-  ?\×’
-  ?\ד
-  ?\×”
-  ?\ו
-  ?\×–
-  ?\×—
-  ?\ט
-  ?\×™
-  ?\ך
-  ?\×›
-  ?\ל
-  ?\×
-  ?\מ
-  ?\ן
-  ?\× 
-  ?\ס
-  ?\×¢
-  ?\×£
-  ?\פ
-  ?\×¥
-  ?\צ
-  ?\ק
-  ?\ר
-  ?\ש
-  ?\ת
-  ?\¢
-  ?\£
-  ?\Ù
-  ?\₧
-  ?\Ã’
-  ?\á
-  ?\í
-  ?\ó
-  ?\ú
-  ?\ñ
-  ?\Ñ
-  ?\ª
-  ?\º
-  ?\¿
-  nil
-  ?\¬
-  ?\½
-  ?\¼
-  ?\¡
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\α
-  ?\ß
-  ?\Γ
-  ?\Ï€
-  ?\Σ
-  ?\σ
-  ?\µ
-  ?\Ï„
-  ?\Φ
-  ?\Θ
-  ?\Ω
-  ?\δ
-  ?\∞
-  ?\φ
-  ?\ε
-  ?\∩
-  ?\≡
-  ?\±
-  ?\≥
-  ?\≤
-  ?\⌠
-  ?\⌡
-  ?\÷
-  ?\≈
-  ?\°
-  ?\·
-  ?\•
-  ?\√
-  ?\â¿
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp863 '(require 'code-pages))
-(cp-make-coding-system
- cp863
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\Â
-  ?\à
-  ?\¶
-  ?\ç
-  ?\ê
-  ?\ë
-  ?\è
-  ?\ï
-  ?\î
-  ?\ì
-  ?\À
-  ?\§
-  ?\É
-  ?\È
-  ?\Ê
-  ?\ô
-  ?\Ë
-  ?\Ã
-  ?\û
-  ?\ù
-  ?\¤
-  ?\Ô
-  ?\Ãœ
-  ?\¢
-  ?\£
-  ?\Ù
-  ?\Û
-  ?\Æ’
-  ?\¦
-  ?\´
-  ?\ó
-  ?\ú
-  ?\¨
-  ?\¸
-  ?\³
-  ?\¯
-  ?\ÃŽ
-  ?\âŒ
-  ?\¬
-  ?\½
-  ?\¼
-  ?\¾
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\α
-  ?\ß
-  ?\Γ
-  ?\Ï€
-  ?\Σ
-  ?\σ
-  ?\µ
-  ?\Ï„
-  ?\Φ
-  ?\Θ
-  ?\Ω
-  ?\δ
-  ?\∞
-  ?\∅
-  ?\ε
-  ?\∩
-  ?\≡
-  ?\±
-  ?\≥
-  ?\≤
-  ?\⌠
-  ?\⌡
-  ?\÷
-  ?\≈
-  ?\∘
-  ?\·
-  ?\•
-  ?\√
-  ?\â¿
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp864 '(require 'code-pages))
-(cp-make-coding-system
- cp864
- [?\°
-  ?\·
-  ?\∘
-  ?\√
-  ?\â–’
-  ?\─
-  ?\│
-  ?\┼
-  ?\┤
-  ?\┬
-  ?\├
-  ?\â”´
-  ?\â”
-  ?\┌
-  ?\â””
-  ?\┘
-  ?\ß
-  ?\∞
-  ?\ø
-  ?\±
-  ?\½
-  ?\¼
-  ?\≈
-  ?\«
-  ?\»
-  ?\ï»·
-  ?\ﻸ
-  nil
-  nil
-  ?\ï»»
-  ?\ﻼ
-  ?\
-  nil
-  ?\­
-  ?\ﺂ
-  ?\£
-  ?\¤
-  ?\ﺄ
-  nil
-  nil
-  ?\ﺎ
-  ?\ب
-  ?\ت
-  ?\Ø«
-  ?\ØŒ
-  ?\ج
-  ?\Ø­
-  ?\Ø®
-  ?\Ù 
-  ?\Ù¡
-  ?\Ù¢
-  ?\Ù£
-  ?\Ù¤
-  ?\Ù¥
-  ?\Ù¦
-  ?\Ù§
-  ?\Ù¨
-  ?\Ù©
-  ?\Ú¤
-  ?\Ø›
-  ?\س
-  ?\Ø´
-  ?\ص
-  ?\ØŸ
-  ?\¢
-  ?\Ø¡
-  ?\Ø¢
-  ?\Ø£
-  ?\ؤ
-  ?\ﻊ
-  ?\ئ
-  ?\ا
-  ?\ﺑ
-  ?\Ø©
-  ?\ﺗ
-  ?\ﺛ
-  ?\ﺟ
-  ?\ﺣ
-  ?\ﺧ
-  ?\د
-  ?\Ø°
-  ?\ر
-  ?\ز
-  ?\ﺳ
-  ?\ﺷ
-  ?\ﺻ
-  ?\ﺿ
-  ?\Ø·
-  ?\ظ
-  ?\ﻋ
-  ?\ï»
-  ?\¦
-  ?\¬
-  ?\÷
-  ?\×
-  ?\ع
-  ?\Ù€
-  ?\ï»’
-  ?\ï»–
-  ?\ï»›
-  ?\ﻞ
-  ?\ﻣ
-  ?\ﻦ
-  ?\ﻫ
-  ?\Ùˆ
-  ?\Ù‰
-  ?\ﻳ
-  ?\ض
-  ?\ﻢ
-  ?\ﻎ
-  ?\غ
-  ?\Ù…
-  ?\ï¹½
-  ?\Ù‘
-  ?\Ù†
-  ?\Ù‡
-  ?\ﻬ
-  ?\ï»°
-  ?\ﻲ
-  ?\Ù
-  ?\Ù‚
-  ?\ﻵ
-  ?\ﻶ
-  ?\Ù„
-  ?\Ùƒ
-  ?\ÙŠ
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp865 '(require 'code-pages))
-(cp-make-coding-system
- cp865
- [?\Ç
-  ?\ü
-  ?\é
-  ?\â
-  ?\ä
-  ?\à
-  ?\Ã¥
-  ?\ç
-  ?\ê
-  ?\ë
-  ?\è
-  ?\ï
-  ?\î
-  ?\ì
-  ?\Ä
-  ?\Ã…
-  ?\É
-  ?\æ
-  ?\Æ
-  ?\ô
-  ?\ö
-  ?\ò
-  ?\û
-  ?\ù
-  ?\ÿ
-  ?\Ö
-  ?\Ãœ
-  ?\ø
-  ?\£
-  ?\Ø
-  ?\₧
-  ?\Æ’
-  ?\á
-  ?\í
-  ?\ó
-  ?\ú
-  ?\ñ
-  ?\Ñ
-  ?\ª
-  ?\º
-  ?\¿
-  ?\âŒ
-  ?\¬
-  ?\½
-  ?\¼
-  ?\¡
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\α
-  ?\ß
-  ?\Γ
-  ?\Ï€
-  ?\Σ
-  ?\σ
-  ?\µ
-  ?\Ï„
-  ?\Φ
-  ?\Θ
-  ?\Ω
-  ?\δ
-  ?\∞
-  ?\∅
-  ?\ε
-  ?\∩
-  ?\≡
-  ?\±
-  ?\≥
-  ?\≤
-  ?\⌠
-  ?\⌡
-  ?\÷
-  ?\≈
-  ?\∘
-  ?\·
-  ?\•
-  ?\√
-  ?\â¿
-  ?\²
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp866 '(require 'code-pages))
-(cp-make-coding-system
- cp866
- [?\Ð
-  ?\Б
-  ?\Ð’
-  ?\Г
-  ?\Д
-  ?\Е
-  ?\Ж
-  ?\З
-  ?\И
-  ?\Й
-  ?\К
-  ?\Л
-  ?\Ðœ
-  ?\Ð
-  ?\О
-  ?\П
-  ?\Р
-  ?\С
-  ?\Т
-  ?\У
-  ?\Ф
-  ?\Ð¥
-  ?\Ц
-  ?\Ч
-  ?\Ш
-  ?\Щ
-  ?\Ъ
-  ?\Ы
-  ?\Ь
-  ?\Э
-  ?\Ю
-  ?\Я
-  ?\а
-  ?\б
-  ?\в
-  ?\г
-  ?\д
-  ?\е
-  ?\ж
-  ?\з
-  ?\и
-  ?\й
-  ?\к
-  ?\л
-  ?\м
-  ?\н
-  ?\о
-  ?\п
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\Ñ€
-  ?\Ñ
-  ?\Ñ‚
-  ?\у
-  ?\Ñ„
-  ?\Ñ…
-  ?\ц
-  ?\ч
-  ?\ш
-  ?\щ
-  ?\ÑŠ
-  ?\Ñ‹
-  ?\ÑŒ
-  ?\Ñ
-  ?\ÑŽ
-  ?\Ñ
-  ?\Ð
-  ?\Ñ‘
-  ?\Є
-  ?\Ñ”
-  ?\Ї
-  ?\Ñ—
-  ?\ÐŽ
-  ?\Ñž
-  ?\°
-  ?\∙
-  ?\·
-  ?\√
-  ?\â„–
-  ?\¤
-  ?\â– 
-  ?\ ]
- "CP866 (Cyrillic)."
- ?A)
-
-;;;###autoload(autoload-coding-system 'cp869 '(require 'code-pages))
-(cp-make-coding-system
- cp869
- [nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?\Ά
-  nil
-  ?\·
-  ?\¬
-  ?\¦
-  ?\‛
-  ?\’
-  ?\Έ
-  ?\—
-  ?\Ή
-  ?\Ί
-  ?\Ϊ
-  ?\ÎŒ
-  nil
-  nil
-  ?\ÎŽ
-  ?\Ϋ
-  ?\©
-  ?\Î
-  ?\²
-  ?\³
-  ?\ά
-  ?\£
-  ?\έ
-  ?\ή
-  ?\ί
-  ?\ÏŠ
-  ?\Î
-  ?\ÏŒ
-  ?\Ï
-  ?\Α
-  ?\Î’
-  ?\Γ
-  ?\Δ
-  ?\Ε
-  ?\Ζ
-  ?\Η
-  ?\½
-  ?\Θ
-  ?\Ι
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\Κ
-  ?\Λ
-  ?\Îœ
-  ?\Î
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\Ξ
-  ?\Ο
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\Π
-  ?\Ρ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\Σ
-  ?\Τ
-  ?\Î¥
-  ?\Φ
-  ?\Χ
-  ?\Ψ
-  ?\Ω
-  ?\α
-  ?\β
-  ?\γ
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\δ
-  ?\ε
-  ?\â–€
-  ?\ζ
-  ?\η
-  ?\θ
-  ?\ι
-  ?\κ
-  ?\λ
-  ?\μ
-  ?\ν
-  ?\ξ
-  ?\ο
-  ?\Ï€
-  ?\Ï
-  ?\σ
-  ?\Ï‚
-  ?\Ï„
-  ?\´
-  ?\­
-  ?\±
-  ?\Ï…
-  ?\φ
-  ?\χ
-  ?\§
-  ?\ψ
-  ?\Î…
-  ?\°
-  ?\¨
-  ?\ω
-  ?\Ï‹
-  ?\ΰ
-  ?\ÏŽ
-  ?\â– 
-  ?\ ])
-
-;;;###autoload(autoload-coding-system 'cp874 '(require 'code-pages))
-(cp-make-coding-system
- cp874
- [?\€
-  nil
-  nil
-  nil
-  nil
-  ?\…
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?\ 
-  ?\à¸
-  ?\ข
-  ?\ฃ
-  ?\ค
-  ?\ฅ
-  ?\ฆ
-  ?\ง
-  ?\จ
-  ?\ฉ
-  ?\ช
-  ?\ซ
-  ?\ฌ
-  ?\à¸
-  ?\ฎ
-  ?\à¸
-  ?\à¸
-  ?\ฑ
-  ?\ฒ
-  ?\ณ
-  ?\ด
-  ?\ต
-  ?\ถ
-  ?\ท
-  ?\ธ
-  ?\น
-  ?\บ
-  ?\ป
-  ?\ผ
-  ?\à¸
-  ?\พ
-  ?\ฟ
-  ?\ภ
-  ?\ม
-  ?\ย
-  ?\ร
-  ?\ฤ
-  ?\ล
-  ?\ฦ
-  ?\ว
-  ?\ศ
-  ?\ษ
-  ?\ส
-  ?\ห
-  ?\ฬ
-  ?\อ
-  ?\ฮ
-  ?\ฯ
-  ?\ะ
-  ?\ั
-  ?\า
-  ?\ำ
-  ?\ิ
-  ?\ี
-  ?\ึ
-  ?\ื
-  ?\ุ
-  ?\ู
-  ?\ฺ
-  nil
-  nil
-  nil
-  nil
-  ?\฿
-  ?\เ
-  ?\à¹
-  ?\โ
-  ?\ใ
-  ?\ไ
-  ?\ๅ
-  ?\ๆ
-  ?\็
-  ?\่
-  ?\้
-  ?\๊
-  ?\๋
-  ?\์
-  ?\à¹
-  ?\๎
-  ?\à¹
-  ?\à¹
-  ?\๑
-  ?\๒
-  ?\๓
-  ?\๔
-  ?\๕
-  ?\๖
-  ?\๗
-  ?\๘
-  ?\๙
-  ?\๚
-  ?\๛
-  nil
-  nil
-  nil
-  nil])
-
-;;;###autoload(autoload-coding-system 'windows-1250 '(require 'code-pages))
-;;;###autoload(autoload-coding-system 'cp1250 '(require 'code-pages))
-(cp-make-coding-system
- windows-1250
- [?\€
-  nil
-  ?\‚
-  nil
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  nil
-  ?\‰
-  ?\Å 
-  ?\‹
-  ?\Åš
-  ?\Ť
-  ?\Ž
-  ?\Ź
-  nil
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  nil
-  ?\â„¢
-  ?\Å¡
-  ?\›
-  ?\Å›
-  ?\Å¥
-  ?\ž
-  ?\ź
-  ?\ 
-  ?\ˇ
-  ?\˘
-  ?\Å
-  ?\¤
-  ?\Ä„
-  ?\¦
-  ?\§
-  ?\¨
-  ?\©
-  ?\Åž
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\Å»
-  ?\°
-  ?\±
-  ?\Ë›
-  ?\Å‚
-  ?\´
-  ?\µ
-  ?\¶
-  ?\·
-  ?\¸
-  ?\Ä…
-  ?\ÅŸ
-  ?\»
-  ?\Ľ
-  ?\Ë
-  ?\ľ
-  ?\ż
-  ?\Å”
-  ?\Ã
-  ?\Â
-  ?\Ä‚
-  ?\Ä
-  ?\Ĺ
-  ?\Ć
-  ?\Ç
-  ?\ÄŒ
-  ?\É
-  ?\Ę
-  ?\Ë
-  ?\Äš
-  ?\Ã
-  ?\ÃŽ
-  ?\ÄŽ
-  ?\Ä
-  ?\Ń
-  ?\Ň
-  ?\Ó
-  ?\Ô
-  ?\Å
-  ?\Ö
-  ?\×
-  ?\Ř
-  ?\Å®
-  ?\Ú
-  ?\Å°
-  ?\Ãœ
-  ?\Ã
-  ?\Å¢
-  ?\ß
-  ?\Å•
-  ?\á
-  ?\â
-  ?\ă
-  ?\ä
-  ?\ĺ
-  ?\ć
-  ?\ç
-  ?\Ä
-  ?\é
-  ?\Ä™
-  ?\ë
-  ?\Ä›
-  ?\í
-  ?\î
-  ?\Ä
-  ?\Ä‘
-  ?\Å„
-  ?\ň
-  ?\ó
-  ?\ô
-  ?\Å‘
-  ?\ö
-  ?\÷
-  ?\Å™
-  ?\ů
-  ?\ú
-  ?\ű
-  ?\ü
-  ?\ý
-  ?\Å£
-  ?\Ë™])
-
-;;;###autoload(autoload-coding-system 'windows-1253 '(require 'code-pages))
-;;;###autoload(autoload-coding-system 'cp1253 '(require 'code-pages))
-(cp-make-coding-system
- windows-1253
- [?\€
-  nil
-  ?\‚
-  ?\Æ’
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  nil
-  ?\‰
-  nil
-  ?\‹
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  nil
-  ?\â„¢
-  nil
-  ?\›
-  nil
-  nil
-  nil
-  nil
-  ?\ 
-  ?\Î…
-  ?\Ά
-  ?\£
-  ?\¤
-  ?\Â¥
-  ?\¦
-  ?\§
-  ?\¨
-  ?\©
-  nil
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\―
-  ?\°
-  ?\±
-  ?\²
-  ?\³
-  ?\΄
-  ?\µ
-  ?\¶
-  ?\·
-  ?\Έ
-  ?\Ή
-  ?\Ί
-  ?\»
-  ?\ÎŒ
-  ?\½
-  ?\ÎŽ
-  ?\Î
-  ?\Î
-  ?\Α
-  ?\Î’
-  ?\Γ
-  ?\Δ
-  ?\Ε
-  ?\Ζ
-  ?\Η
-  ?\Θ
-  ?\Ι
-  ?\Κ
-  ?\Λ
-  ?\Îœ
-  ?\Î
-  ?\Ξ
-  ?\Ο
-  ?\Π
-  ?\Ρ
-  nil
-  ?\Σ
-  ?\Τ
-  ?\Î¥
-  ?\Φ
-  ?\Χ
-  ?\Ψ
-  ?\Ω
-  ?\Ϊ
-  ?\Ϋ
-  ?\ά
-  ?\έ
-  ?\ή
-  ?\ί
-  ?\ΰ
-  ?\α
-  ?\β
-  ?\γ
-  ?\δ
-  ?\ε
-  ?\ζ
-  ?\η
-  ?\θ
-  ?\ι
-  ?\κ
-  ?\λ
-  ?\μ
-  ?\ν
-  ?\ξ
-  ?\ο
-  ?\Ï€
-  ?\Ï
-  ?\Ï‚
-  ?\σ
-  ?\Ï„
-  ?\Ï…
-  ?\φ
-  ?\χ
-  ?\ψ
-  ?\ω
-  ?\ÏŠ
-  ?\Ï‹
-  ?\ÏŒ
-  ?\Ï
-  ?\ÏŽ
-  nil]
- nil ?g) ;; Greek
-
-;;;###autoload(autoload-coding-system 'windows-1254 '(require 'code-pages))
-;;;###autoload(autoload-coding-system 'cp1254 '(require 'code-pages))
-(cp-make-coding-system
- windows-1254
- [?\€
-  nil
-  ?\‚
-  ?\Æ’
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  ?\ˆ
-  ?\‰
-  ?\Å 
-  ?\‹
-  ?\Å’
-  nil
-  nil
-  nil
-  nil
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  ?\Ëœ
-  ?\â„¢
-  ?\Å¡
-  ?\›
-  ?\Å“
-  nil
-  nil
-  ?\Ÿ
-  ?\ 
-  ?\¡
-  ?\¢
-  ?\£
-  ?\¤
-  ?\Â¥
-  ?\¦
-  ?\§
-  ?\¨
-  ?\©
-  ?\ª
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\¯
-  ?\°
-  ?\±
-  ?\²
-  ?\³
-  ?\´
-  ?\µ
-  ?\¶
-  ?\·
-  ?\¸
-  ?\¹
-  ?\º
-  ?\»
-  ?\¼
-  ?\½
-  ?\¾
-  ?\¿
-  ?\À
-  ?\Ã
-  ?\Â
-  ?\Ã
-  ?\Ä
-  ?\Ã…
-  ?\Æ
-  ?\Ç
-  ?\È
-  ?\É
-  ?\Ê
-  ?\Ë
-  ?\ÃŒ
-  ?\Ã
-  ?\ÃŽ
-  ?\Ã
-  ?\Äž
-  ?\Ñ
-  ?\Ã’
-  ?\Ó
-  ?\Ô
-  ?\Õ
-  ?\Ö
-  ?\×
-  ?\Ø
-  ?\Ù
-  ?\Ú
-  ?\Û
-  ?\Ãœ
-  ?\Ä°
-  ?\Åž
-  ?\ß
-  ?\à
-  ?\á
-  ?\â
-  ?\ã
-  ?\ä
-  ?\Ã¥
-  ?\æ
-  ?\ç
-  ?\è
-  ?\é
-  ?\Ä™
-  ?\ë
-  ?\Ä—
-  ?\í
-  ?\î
-  ?\Ä«
-  ?\ÄŸ
-  ?\ñ
-  ?\ò
-  ?\ó
-  ?\ô
-  ?\õ
-  ?\ö
-  ?\÷
-  ?\ø
-  ?\ù
-  ?\ú
-  ?\û
-  ?\ü
-  ?\ı
-  ?\ÅŸ
-  ?\ÿ])
-
-;; yi_US
-;;;###autoload(autoload-coding-system 'windows-1255 '(require 'code-pages))
-;;;###autoload(autoload-coding-system 'cp1255 '(require 'code-pages))
-(cp-make-coding-system
- windows-1255
- [?\€
-  nil
-  ?\‚
-  ?\Æ’
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  ?\ˆ
-  ?\‰
-  nil
-  ?\‹
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  ?\Ëœ
-  ?\â„¢
-  nil
-  ?\›
-  nil
-  nil
-  nil
-  nil
-  ?\ 
-  ?\¡
-  ?\¢
-  ?\£
-  ?\₪
-  ?\Â¥
-  ?\¦
-  ?\§
-  ?\¨
-  ?\©
-  ?\×
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\¯
-  ?\°
-  ?\±
-  ?\²
-  ?\³
-  ?\´
-  ?\µ
-  ?\¶
-  ?\·
-  ?\¸
-  ?\¹
-  ?\÷
-  ?\»
-  ?\¼
-  ?\½
-  ?\¾
-  ?\¿
-  ?\Ö°
-  ?\Ö±
-  ?\Ö²
-  ?\Ö³
-  ?\Ö´
-  ?\Öµ
-  ?\Ö¶
-  ?\Ö·
-  ?\Ö¸
-  ?\Ö¹
-  nil
-  ?\Ö»
-  ?\Ö¼
-  ?\Ö½
-  ?\Ö¾
-  ?\Ö¿
-  ?\×€
-  ?\×
-  ?\ׂ
-  ?\׃
-  ?\×°
-  ?\×±
-  ?\ײ
-  ?\׳
-  ?\×´
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?\×
-  ?\ב
-  ?\×’
-  ?\ד
-  ?\×”
-  ?\ו
-  ?\×–
-  ?\×—
-  ?\ט
-  ?\×™
-  ?\ך
-  ?\×›
-  ?\ל
-  ?\×
-  ?\מ
-  ?\ן
-  ?\× 
-  ?\ס
-  ?\×¢
-  ?\×£
-  ?\פ
-  ?\×¥
-  ?\צ
-  ?\ק
-  ?\ר
-  ?\ש
-  ?\ת
-  nil
-  nil
-  ?\‎
-  ?\â€
-  nil]
- nil ?h) ;; Hebrew
-
-;;;###autoload(autoload-coding-system 'windows-1256 '(require 'code-pages))
-;;;###autoload(autoload-coding-system 'cp1256 '(require 'code-pages))
-(cp-make-coding-system
- windows-1256
- [?\€
-  ?\Ù¾
-  ?\‚
-  ?\Æ’
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  ?\ˆ
-  ?\‰
-  ?\Ù¹
-  ?\‹
-  ?\Å’
-  ?\Ú†
-  ?\Ú˜
-  ?\Úˆ
-  ?\Ú¯
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  ?\Ú©
-  ?\â„¢
-  ?\Ú‘
-  ?\›
-  ?\Å“
-  ?\‌
-  ?\â€
-  ?\Úº
-  ?\ 
-  ?\ØŒ
-  ?\¢
-  ?\£
-  ?\¤
-  ?\Â¥
-  ?\¦
-  ?\§
-  ?\¨
-  ?\©
-  ?\Ú¾
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\¯
-  ?\°
-  ?\±
-  ?\²
-  ?\³
-  ?\´
-  ?\µ
-  ?\¶
-  ?\·
-  ?\¸
-  ?\¹
-  ?\Ø›
-  ?\»
-  ?\¼
-  ?\½
-  ?\¾
-  ?\ØŸ
-  ?\Û
-  ?\Ø¡
-  ?\Ø¢
-  ?\Ø£
-  ?\ؤ
-  ?\Ø¥
-  ?\ئ
-  ?\ا
-  ?\ب
-  ?\Ø©
-  ?\ت
-  ?\Ø«
-  ?\ج
-  ?\Ø­
-  ?\Ø®
-  ?\د
-  ?\Ø°
-  ?\ر
-  ?\ز
-  ?\س
-  ?\Ø´
-  ?\ص
-  ?\ض
-  ?\×
-  ?\Ø·
-  ?\ظ
-  ?\ع
-  ?\غ
-  ?\Ù€
-  ?\Ù
-  ?\Ù‚
-  ?\Ùƒ
-  ?\à
-  ?\Ù„
-  ?\â
-  ?\Ù…
-  ?\Ù†
-  ?\Ù‡
-  ?\Ùˆ
-  ?\ç
-  ?\è
-  ?\é
-  ?\ê
-  ?\ë
-  ?\Ù‰
-  ?\ÙŠ
-  ?\î
-  ?\ï
-  ?\Ù‹
-  ?\ÙŒ
-  ?\Ù
-  ?\ÙŽ
-  ?\ô
-  ?\Ù
-  ?\Ù
-  ?\÷
-  ?\Ù‘
-  ?\ù
-  ?\Ù’
-  ?\û
-  ?\ü
-  ?\‎
-  ?\â€
-  ?\Û’]
- nil ?a) ;; Arabic
-
-;;;###autoload(autoload-coding-system 'windows-1257 '(require 'code-pages))
-;;;###autoload(autoload-coding-system 'cp1257 '(require 'code-pages))
-(cp-make-coding-system
- windows-1257
- [?\€
-  nil
-  ?\‚
-  nil
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  nil
-  ?\‰
-  nil
-  ?\‹
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  nil
-  ?\â„¢
-  nil
-  ?\›
-  nil
-  nil
-  nil
-  nil
-  ?\ 
-  nil
-  ?\¢
-  ?\£
-  ?\¤
-  nil
-  ?\¦
-  ?\§
-  ?\Ø
-  ?\©
-  ?\Å–
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\Æ
-  ?\°
-  ?\±
-  ?\²
-  ?\³
-  nil
-  ?\µ
-  ?\¶
-  ?\·
-  ?\ø
-  ?\¹
-  ?\Å—
-  ?\»
-  ?\¼
-  ?\½
-  ?\¾
-  ?\æ
-  ?\Ä„
-  ?\Ä®
-  ?\Ä€
-  ?\Ć
-  ?\Ä
-  ?\Ã…
-  ?\Ę
-  ?\Ä’
-  ?\ÄŒ
-  ?\É
-  ?\Ź
-  ?\Ä–
-  ?\Ä¢
-  ?\Ķ
-  ?\Ī
-  ?\Ä»
-  ?\Å 
-  ?\Ń
-  ?\Å…
-  ?\Ó
-  ?\ÅŒ
-  ?\Õ
-  ?\Ö
-  ?\×
-  ?\Ų
-  ?\Å
-  ?\Åš
-  ?\Ū
-  ?\Ãœ
-  ?\Å»
-  ?\Ž
-  ?\ß
-  ?\Ä…
-  ?\į
-  ?\Ä
-  ?\ć
-  ?\ä
-  ?\Ã¥
-  ?\Ä™
-  ?\Ä“
-  ?\Ä
-  ?\é
-  ?\ź
-  ?\Ä—
-  ?\Ä£
-  ?\Ä·
-  ?\Ä«
-  ?\ļ
-  ?\Å¡
-  ?\Å„
-  ?\ņ
-  ?\ó
-  ?\Å
-  ?\õ
-  ?\ö
-  ?\÷
-  ?\ų
-  ?\Å‚
-  ?\Å›
-  ?\Å«
-  ?\ü
-  ?\ż
-  ?\ž
-  nil])
-
-;;;###autoload(autoload-coding-system 'windows-1258 '(require 'code-pages))
-;;;###autoload(autoload-coding-system 'cp1258 '(require 'code-pages))
-(cp-make-coding-system
- windows-1258
- [?\€
-  nil
-  ?\‚
-  ?\Æ’
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  ?\ˆ
-  ?\‰
-  nil
-  ?\‹
-  ?\Å’
-  nil
-  nil
-  nil
-  nil
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  ?\Ëœ
-  ?\â„¢
-  nil
-  ?\›
-  ?\Å“
-  nil
-  nil
-  ?\Ÿ
-  ?\ 
-  ?\¡
-  ?\¢
-  ?\£
-  ?\¤
-  ?\Â¥
-  ?\¦
-  ?\§
-  ?\¨
-  ?\©
-  ?\ª
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\¯
-  ?\°
-  ?\±
-  ?\²
-  ?\³
-  ?\´
-  ?\µ
-  ?\¶
-  ?\·
-  ?\¸
-  ?\¹
-  ?\º
-  ?\»
-  ?\¼
-  ?\½
-  ?\¾
-  ?\¿
-  ?\À
-  ?\Ã
-  ?\Â
-  ?\Ä‚
-  ?\Ä
-  ?\Ã…
-  ?\Æ
-  ?\Ç
-  ?\È
-  ?\É
-  ?\Ê
-  ?\Ë
-  ?\Ì€
-  ?\Ã
-  ?\ÃŽ
-  ?\Ã
-  ?\Ä
-  ?\Ñ
-  ?\̉
-  ?\Ó
-  ?\Ô
-  ?\Æ 
-  ?\Ö
-  ?\×
-  ?\Ø
-  ?\Ù
-  ?\Ú
-  ?\Û
-  ?\Ãœ
-  ?\Ư
-  ?\̃
-  ?\ß
-  ?\à
-  ?\á
-  ?\â
-  ?\ă
-  ?\ä
-  ?\Ã¥
-  ?\æ
-  ?\ç
-  ?\è
-  ?\é
-  ?\ê
-  ?\ë
-  ?\Ì
-  ?\í
-  ?\î
-  ?\ï
-  ?\Ä‘
-  ?\ñ
-  ?\Ì£
-  ?\ó
-  ?\ô
-  ?\Æ¡
-  ?\ö
-  ?\÷
-  ?\ø
-  ?\ù
-  ?\ú
-  ?\û
-  ?\ü
-  ?\Æ°
-  ?\â‚«
-  ?\ÿ])
-
-;;;###autoload(autoload-coding-system 'next '(require 'code-pages))
-(cp-make-coding-system
- next
- [?\ 
-  ?\À
-  ?\Ã
-  ?\Â
-  ?\Ã
-  ?\Ä
-  ?\Ã…
-  ?\Ç
-  ?\È
-  ?\É
-  ?\Ê
-  ?\Ë
-  ?\ÃŒ
-  ?\Ã
-  ?\ÃŽ
-  ?\Ã
-  ?\Ã
-  ?\Ñ
-  ?\Ã’
-  ?\Ó
-  ?\Ô
-  ?\Õ
-  ?\Ö
-  ?\Ù
-  ?\Ú
-  ?\Û
-  ?\Ãœ
-  ?\Ã
-  ?\Þ
-  ?\µ
-  ?\×
-  ?\÷
-  ?\©
-  ?\¡
-  ?\¢
-  ?\£
-  ?\â„
-  ?\Â¥
-  ?\Æ’
-  ?\§
-  ?\¤
-  ?\’
-  ?\“
-  ?\«
-  ?\‹
-  ?\›
-  ?\ï¬
-  ?\fl
-  ?\®
-  ?\–
-  ?\†
-  ?\‡
-  ?\·
-  ?\¦
-  ?\¶
-  ?\•
-  ?\‚
-  ?\„
-  ?\â€
-  ?\»
-  ?\…
-  ?\‰
-  ?\¬
-  ?\¿
-  ?\¹
-  ?\Ë‹
-  ?\´
-  ?\ˆ
-  ?\Ëœ
-  ?\¯
-  ?\˘
-  ?\Ë™
-  ?\¨
-  ?\²
-  ?\Ëš
-  ?\¸
-  ?\³
-  ?\Ë
-  ?\Ë›
-  ?\ˇ
-  ?\—
-  ?\±
-  ?\¼
-  ?\½
-  ?\¾
-  ?\à
-  ?\á
-  ?\â
-  ?\ã
-  ?\ä
-  ?\Ã¥
-  ?\ç
-  ?\è
-  ?\é
-  ?\ê
-  ?\ë
-  ?\ì
-  ?\Æ
-  ?\í
-  ?\ª
-  ?\î
-  ?\ï
-  ?\ð
-  ?\ñ
-  ?\Å
-  ?\Ø
-  ?\Å’
-  ?\º
-  ?\ò
-  ?\ó
-  ?\ô
-  ?\õ
-  ?\ö
-  ?\æ
-  ?\ù
-  ?\ú
-  ?\û
-  ?\ı
-  ?\ü
-  ?\ý
-  ?\Å‚
-  ?\ø
-  ?\Å“
-  ?\ß
-  ?\þ
-  ?\ÿ
-  nil
-  nil]
- "NeXTstep encoding." ?N)
-
-;;;###autoload(autoload-coding-system 'koi8-t '(require 'code-pages))
-(cp-make-coding-system
- koi8-t                                        ; used by glibc for tg_TJ
- [?\Ò›
-  ?\Ò“
-  ?\‚
-  ?\Ò’
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  nil
-  ?\‰
-  ?\Ò³
-  ?\‹
-  ?\Ò²
-  ?\Ò·
-  ?\Ò¶
-  nil
-  ?\Òš
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  nil
-  ?\â„¢
-  nil
-  ?\›
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?\Ó¯
-  ?\Ó®
-  ?\Ñ‘
-  ?\¤
-  ?\Ó£
-  ?\¦
-  ?\§
-  nil
-  nil
-  nil
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  nil
-  ?\°
-  ?\±
-  ?\²
-  ?\Ð
-  nil
-  ?\Ó¢
-  ?\¶
-  ?\·
-  nil
-  ?\â„–
-  nil
-  ?\»
-  nil
-  nil
-  nil
-  ?\©
-  ?\ÑŽ
-  ?\а
-  ?\б
-  ?\ц
-  ?\д
-  ?\е
-  ?\Ñ„
-  ?\г
-  ?\Ñ…
-  ?\и
-  ?\й
-  ?\к
-  ?\л
-  ?\м
-  ?\н
-  ?\о
-  ?\п
-  ?\Ñ
-  ?\Ñ€
-  ?\Ñ
-  ?\Ñ‚
-  ?\у
-  ?\ж
-  ?\в
-  ?\ÑŒ
-  ?\Ñ‹
-  ?\з
-  ?\ш
-  ?\Ñ
-  ?\щ
-  ?\ч
-  ?\ÑŠ
-  ?\Ю
-  ?\Ð
-  ?\Б
-  ?\Ц
-  ?\Д
-  ?\Е
-  ?\Ф
-  ?\Г
-  ?\Ð¥
-  ?\И
-  ?\Й
-  ?\К
-  ?\Л
-  ?\Ðœ
-  ?\Ð
-  ?\О
-  ?\П
-  ?\Я
-  ?\Р
-  ?\С
-  ?\Т
-  ?\У
-  ?\Ж
-  ?\Ð’
-  ?\Ь
-  ?\Ы
-  ?\З
-  ?\Ш
-  ?\Э
-  ?\Щ
-  ?\Ч
-  ?\Ъ]
- "Unicode-based KOI8-T encoding for Cyrillic")
-(coding-system-put 'koi8-t 'mime-charset nil) ; not in the IANA list
-(define-coding-system-alias 'cyrillic-koi8-t 'koi8-t)
-
-;;   Online final ISO draft:
-
-;;     http://www.evertype.com/standards/iso8859/fdis8859-16-en.pdf
-
-;;   Equivalent National Standard:
-;;     Romanian Standard SR 14111:1998, Romanian Standards Institution
-;;     (ASRO).
-;; Intended usage:
-
-;;  "This set of coded graphic characters is intended for use in data and
-;;   text processing applications and also for information interchange. The
-;;   set contains graphic characters used for general purpose applications in
-;;   typical office environments in at least the following languages:
-;;   Albanian, Croatian, English, Finnish, French, German, Hungarian, Irish
-;;   Gaelic (new orthography), Italian, Latin, Polish, Romanian, and
-;;   Slovenian. This set of coded graphic characters may be regarded as a
-;;   version of an 8-bit code according to ISO/IEC 2022 or ISO/IEC 4873 at
-;;   level 1." [ISO 8859-16:2001(E), p. 1]
-  
-;;   This charset is suitable for use in MIME text body parts.
-  
-;;   ISO 8859-16 was primarily designed for single-byte encoding the Romanian
-;;   language. The UTF-8 charset is the preferred and in today's MIME software
-;;   more widely implemented encoding suitable for Romanian.
-;;;###autoload(autoload-coding-system 'iso-8859-16 '(require 'code-pages))
-(cp-make-coding-system
- iso-latin-10                          ; consistent with, e.g. Latin-1
- [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  ?\ 
-  ?\Ä„
-  ?\Ä…
-  ?\Å
-  ?\€
-  ?\„
-  ?\Å 
-  ?\§
-  ?\Å¡
-  ?\©
-  ?\Ș
-  ?\«
-  ?\Ź
-  ?\­
-  ?\ź
-  ?\Å»
-  ?\°
-  ?\±
-  ?\ÄŒ
-  ?\Å‚
-  ?\Ž
-  ?\â€
-  ?\¶
-  ?\·
-  ?\ž
-  ?\Ä
-  ?\È™
-  ?\»
-  ?\Å’
-  ?\Å“
-  ?\Ÿ
-  ?\ż
-  ?\À
-  ?\Ã
-  ?\Â
-  ?\Ä‚
-  ?\Ä
-  ?\Ć
-  ?\Æ
-  ?\Ç
-  ?\È
-  ?\É
-  ?\Ê
-  ?\Ë
-  ?\ÃŒ
-  ?\Ã
-  ?\ÃŽ
-  ?\Ã
-  ?\Ä
-  ?\Ń
-  ?\Ã’
-  ?\Ó
-  ?\Ô
-  ?\Å
-  ?\Ö
-  ?\Åš
-  ?\Å°
-  ?\Ù
-  ?\Ú
-  ?\Û
-  ?\Ãœ
-  ?\Ę
-  ?\Èš
-  ?\ß
-  ?\à
-  ?\á
-  ?\â
-  ?\ă
-  ?\ä
-  ?\ć
-  ?\æ
-  ?\ç
-  ?\è
-  ?\é
-  ?\ê
-  ?\ë
-  ?\ì
-  ?\í
-  ?\î
-  ?\ï
-  ?\Ä‘
-  ?\Å„
-  ?\ò
-  ?\ó
-  ?\ô
-  ?\Å‘
-  ?\ö
-  ?\Å›
-  ?\ű
-  ?\ù
-  ?\ú
-  ?\û
-  ?\ü
-  ?\Ä™
-  ?\È›
-  ?\ÿ]
- "Unicode-based encoding for Latin-10 (MIME: ISO-8859-16)"
- ?r) ;; Romanian
-(coding-system-put 'iso-latin-10 'mime-charset 'iso-8859-16)
-(define-coding-system-alias 'iso-8859-16 'iso-latin-10)
-(define-coding-system-alias 'latin-10 'iso-latin-10)
-
-;; Unicode-based alternative which has the possible advantage of
-;; having its relative sparseness specified.
-;;;###autoload(autoload-coding-system 'iso-8859-6 '(require 'code-pages))
-(cp-make-coding-system
- ;; The base system uses arabic-iso-8bit, but that's not a MIME charset.
- iso-8859-6
- [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  ?\ 
-  nil
-  nil
-  nil
-  ?¤
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?ØŒ
-  ?­
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?Ø›
-  nil
-  nil
-  nil
-  ?ØŸ
-  nil
-  ?Ø¡
-  ?Ø¢
-  ?Ø£
-  ?ؤ
-  ?Ø¥
-  ?ئ
-  ?ا
-  ?ب
-  ?Ø©
-  ?ت
-  ?Ø«
-  ?ج
-  ?Ø­
-  ?Ø®
-  ?د
-  ?Ø°
-  ?ر
-  ?ز
-  ?س
-  ?Ø´
-  ?ص
-  ?ض
-  ?Ø·
-  ?ظ
-  ?ع
-  ?غ
-  nil
-  nil
-  nil
-  nil
-  nil
-  ?Ù€
-  ?Ù
-  ?Ù‚
-  ?Ùƒ
-  ?Ù„
-  ?Ù…
-  ?Ù†
-  ?Ù‡
-  ?Ùˆ
-  ?Ù‰
-  ?ÙŠ
-  ?Ù‹
-  ?ÙŒ
-  ?Ù
-  ?ÙŽ
-  ?Ù
-  ?Ù
-  ?Ù‘
-  ?Ù’
-  nil nil nil nil nil nil nil nil nil nil nil nil nil]
- "Unicode-based Arabic ISO/IEC 8859-6 (MIME: ISO-8859-6)"
- ?6)
-(define-coding-system-alias 'arabic-iso-8bit 'iso-8859-6)
-
-;;;###autoload(autoload-coding-system 'iso-8859-10 '(require 'code-pages))
-(cp-make-coding-system
- iso-latin-6
- [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  ?\ 
-  ?\Ä„
-  ?\Ä’
-  ?\Ä¢
-  ?\Ī
-  ?\Ĩ
-  ?\Ķ
-  ?\§
-  ?\Ä»
-  ?\Ä
-  ?\Å 
-  ?\Ŧ
-  ?\Ž
-  ?\­
-  ?\Ū
-  ?\ÅŠ
-  ?\°
-  ?\Ä…
-  ?\Ä“
-  ?\Ä£
-  ?\Ä«
-  ?\Ä©
-  ?\Ä·
-  ?\·
-  ?\ļ
-  ?\Ä‘
-  ?\Å¡
-  ?\ŧ
-  ?\ž
-  ?\―
-  ?\Å«
-  ?\Å‹
-  ?\Ä€
-  ?\Ã
-  ?\Â
-  ?\Ã
-  ?\Ä
-  ?\Ã…
-  ?\Æ
-  ?\Ä®
-  ?\ÄŒ
-  ?\É
-  ?\Ę
-  ?\Ë
-  ?\Ä–
-  ?\Ã
-  ?\ÃŽ
-  ?\Ã
-  ?\Ã
-  ?\Å…
-  ?\ÅŒ
-  ?\Ó
-  ?\Ô
-  ?\Õ
-  ?\Ö
-  ?\Ũ
-  ?\Ø
-  ?\Ų
-  ?\Ú
-  ?\Û
-  ?\Ãœ
-  ?\Ã
-  ?\Þ
-  ?\ß
-  ?\Ä
-  ?\á
-  ?\â
-  ?\ã
-  ?\ä
-  ?\Ã¥
-  ?\æ
-  ?\į
-  ?\Ä
-  ?\é
-  ?\Ä™
-  ?\ë
-  ?\Ä—
-  ?\í
-  ?\î
-  ?\ï
-  ?\ð
-  ?\ņ
-  ?\Å
-  ?\ó
-  ?\ô
-  ?\õ
-  ?\ö
-  ?\Å©
-  ?\ø
-  ?\ų
-  ?\ú
-  ?\û
-  ?\ü
-  ?\ý
-  ?\þ
-  ?\ĸ]
- "Unicode-based encoding for Latin-6 (MIME: ISO-8859-10)")
-(coding-system-put 'iso-latin-6 'mime-charset 'iso-8859-10)
-(define-coding-system-alias 'iso-8859-10 'iso-latin-6)
-(define-coding-system-alias 'latin-6 'iso-latin-6)
-
-;; used by lt_LT, lv_LV, mi_NZ
-;;;###autoload(autoload-coding-system 'iso-8859-13 '(require 'code-pages))
-(cp-make-coding-system
- iso-latin-7
- [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  ?\ 
-  ?\â€
-  ?\¢
-  ?\£
-  ?\¤
-  ?\„
-  ?\¦
-  ?\§
-  ?\Ø
-  ?\©
-  ?\Å–
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\Æ
-  ?\°
-  ?\±
-  ?\²
-  ?\³
-  ?\“
-  ?\µ
-  ?\¶
-  ?\·
-  ?\ø
-  ?\¹
-  ?\Å—
-  ?\»
-  ?\¼
-  ?\½
-  ?\¾
-  ?\æ
-  ?\Ä„
-  ?\Ä®
-  ?\Ä€
-  ?\Ć
-  ?\Ä
-  ?\Ã…
-  ?\Ę
-  ?\Ä’
-  ?\ÄŒ
-  ?\É
-  ?\Ź
-  ?\Ä–
-  ?\Ä¢
-  ?\Ķ
-  ?\Ī
-  ?\Ä»
-  ?\Å 
-  ?\Ń
-  ?\Å…
-  ?\Ó
-  ?\ÅŒ
-  ?\Õ
-  ?\Ö
-  ?\×
-  ?\Ų
-  ?\Å
-  ?\Åš
-  ?\Ū
-  ?\Ãœ
-  ?\Å»
-  ?\Ž
-  ?\ß
-  ?\Ä…
-  ?\į
-  ?\Ä
-  ?\ć
-  ?\ä
-  ?\Ã¥
-  ?\Ä™
-  ?\Ä“
-  ?\Ä
-  ?\é
-  ?\ź
-  ?\Ä—
-  ?\Ä£
-  ?\Ä·
-  ?\Ä«
-  ?\ļ
-  ?\Å¡
-  ?\Å„
-  ?\ņ
-  ?\ó
-  ?\Å
-  ?\õ
-  ?\ö
-  ?\÷
-  ?\ų
-  ?\Å‚
-  ?\Å›
-  ?\Å«
-  ?\ü
-  ?\ż
-  ?\ž
-  ?\’
-  ]
- "Unicode-based encoding for Latin-7 (MIME: ISO-8859-13)"
- ?l) ;; Lithuanian/Latvian
-(coding-system-put 'iso-latin-7 'mime-charset 'iso-8859-13)
-(define-coding-system-alias 'iso-8859-13 'iso-latin-7)
-(define-coding-system-alias 'latin-7 'iso-latin-7)
-
-;; Fixme: check on the C1 characters which libiconv includes.  They
-;; are reproduced below, but are probably wrong.  I can't find an
-;; official definition of georgian-ps.
-;;;###autoload(autoload-coding-system 'georgian-ps '(require 'code-pages))
-(cp-make-coding-system
- georgian-ps                           ; used by glibc for ka_GE
- [?\\80
-  ?\\81
-  ?\‚
-  ?\Æ’
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  ?\ˆ
-  ?\‰
-  ?\Å 
-  ?\‹
-  ?\Å’
-  ?\\8d
-  ?\\8e
-  ?\\8f
-  ?\\90
-  ?\‘
-  ?\’
-  ?\“
-  ?\â€
-  ?\•
-  ?\–
-  ?\—
-  ?\Ëœ
-  ?\â„¢
-  ?\Å¡
-  ?\›
-  ?\Å“
-  ?\\9d
-  ?\\9e
-  ?\Ÿ
-  ?\ 
-  ?\¡
-  ?\¢
-  ?\£
-  ?\¤
-  ?\Â¥
-  ?\¦
-  ?\§
-  ?\¨
-  ?\©
-  ?\ª
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\¯
-  ?\°
-  ?\±
-  ?\²
-  ?\³
-  ?\´
-  ?\µ
-  ?\¶
-  ?\·
-  ?\¸
-  ?\¹
-  ?\º
-  ?\»
-  ?\¼
-  ?\½
-  ?\¾
-  ?\¿
-  ?\áƒ
-  ?\ბ
-  ?\გ
-  ?\დ
-  ?\ე
-  ?\ვ
-  ?\ზ
-  ?\ჱ
-  ?\თ
-  ?\ი
-  ?\კ
-  ?\ლ
-  ?\მ
-  ?\ნ
-  ?\ჲ
-  ?\áƒ
-  ?\პ
-  ?\ჟ
-  ?\რ
-  ?\ს
-  ?\ტ
-  ?\ჳ
-  ?\უ
-  ?\ფ
-  ?\ქ
-  ?\ღ
-  ?\ყ
-  ?\შ
-  ?\ჩ
-  ?\ც
-  ?\ძ
-  ?\წ
-  ?\ჭ
-  ?\ხ
-  ?\ჴ
-  ?\ჯ
-  ?\ჰ
-  ?\ჵ
-  ?\æ
-  ?\ç
-  ?\è
-  ?\é
-  ?\ê
-  ?\ë
-  ?\ì
-  ?\í
-  ?\î
-  ?\ï
-  ?\ð
-  ?\ñ
-  ?\ò
-  ?\ó
-  ?\ô
-  ?\õ
-  ?\ö
-  ?\÷
-  ?\ø
-  ?\ù
-  ?\ú
-  ?\û
-  ?\ü
-  ?\ý
-  ?\þ
-  ?\ÿ]
- nil ?G)
-(coding-system-put 'georgian-ps 'mime-charset nil) ; not in IANA list
-
-;;;###autoload(autoload-coding-system 'cp720 '(require 'code-pages))
-;; From http://www.microsoft.com/globaldev/reference/oem/720.htm
-(cp-make-coding-system
- cp720
- [nil
-  nil
-  ?\é
-  ?\â
-  nil
-  ?\à
-  nil
-  ?\ç
-  ?\ê
-  ?\ë
-  ?\è
-  ?\ï
-  ?\î
-  nil
-  nil
-  nil
-  nil
-  ?\Ù‘
-  ?\Ù’
-  ?\ô
-  ?\¤
-  ?\Ù€
-  ?\û
-  ?\ù
-  ?\Ø¡
-  ?\Ø¢
-  ?\Ø£
-  ?\ؤ
-  ?\£
-  ?\Ø¥
-  ?\ئ
-  ?\ا
-  ?\ب
-  ?\Ø©
-  ?\ت
-  ?\Ø«
-  ?\ج
-  ?\Ø­
-  ?\Ø®
-  ?\د
-  ?\Ø°
-  ?\ر
-  ?\ز
-  ?\س
-  ?\Ø´
-  ?\ص
-  ?\«
-  ?\»
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\ض
-  ?\Ø·
-  ?\ظ
-  ?\ع
-  ?\غ
-  ?\Ù
-  ?\µ
-  ?\Ù‚
-  ?\Ùƒ
-  ?\Ù„
-  ?\Ù…
-  ?\Ù†
-  ?\Ù‡
-  ?\Ùˆ
-  ?\Ù‰
-  ?\ÙŠ
-  ?\≡
-  ?\Ù‹
-  ?\ÙŒ
-  ?\Ù
-  ?\ÙŽ
-  ?\Ù
-  ?\Ù
-  ?\≈
-  ?\°
-  ?\∙
-  ?\·
-  ?\√
-  ?\â¿
-  ?\²
-  ?\â– 
-  ?\ ])
-(coding-system-put 'cp720 'mime-charset nil) ; not in IANA list
-
-;;;###autoload(autoload-coding-system 'cp1125 '(require 'code-pages))
-;; http://oss.software.ibm.com/cvs/icu/charset/data/ucm/ibm-1125_P100-2000.ucm
-(cp-make-coding-system
- cp1125
- [?\Ð
-  ?\Б
-  ?\Ð’
-  ?\Г
-  ?\Д
-  ?\Е
-  ?\Ж
-  ?\З
-  ?\И
-  ?\Й
-  ?\К
-  ?\Л
-  ?\Ðœ
-  ?\Ð
-  ?\О
-  ?\П
-  ?\Р
-  ?\С
-  ?\Т
-  ?\У
-  ?\Ф
-  ?\Ð¥
-  ?\Ц
-  ?\Ч
-  ?\Ш
-  ?\Щ
-  ?\Ъ
-  ?\Ы
-  ?\Ь
-  ?\Э
-  ?\Ю
-  ?\Я
-  ?\а
-  ?\б
-  ?\в
-  ?\г
-  ?\д
-  ?\е
-  ?\ж
-  ?\з
-  ?\и
-  ?\й
-  ?\к
-  ?\л
-  ?\м
-  ?\н
-  ?\о
-  ?\п
-  ?\â–‘
-  ?\â–’
-  ?\â–“
-  ?\│
-  ?\┤
-  ?\â•¡
-  ?\â•¢
-  ?\â•–
-  ?\â••
-  ?\â•£
-  ?\â•‘
-  ?\â•—
-  ?\â•
-  ?\â•œ
-  ?\â•›
-  ?\â”
-  ?\â””
-  ?\â”´
-  ?\┬
-  ?\├
-  ?\─
-  ?\┼
-  ?\â•ž
-  ?\â•Ÿ
-  ?\â•š
-  ?\â•”
-  ?\â•©
-  ?\╦
-  ?\â• 
-  ?\â•
-  ?\╬
-  ?\╧
-  ?\╨
-  ?\╤
-  ?\â•¥
-  ?\â•™
-  ?\╘
-  ?\â•’
-  ?\â•“
-  ?\â•«
-  ?\╪
-  ?\┘
-  ?\┌
-  ?\â–ˆ
-  ?\â–„
-  ?\â–Œ
-  ?\â–
-  ?\â–€
-  ?\Ñ€
-  ?\Ñ
-  ?\Ñ‚
-  ?\у
-  ?\Ñ„
-  ?\Ñ…
-  ?\ц
-  ?\ч
-  ?\ш
-  ?\щ
-  ?\ÑŠ
-  ?\Ñ‹
-  ?\ÑŒ
-  ?\Ñ
-  ?\ÑŽ
-  ?\Ñ
-  ?\Ð
-  ?\Ñ‘
-  ?\Ò
-  ?\Ò‘
-  ?\Є
-  ?\Ñ”
-  ?\І
-  ?\Ñ–
-  ?\Ї
-  ?\Ñ—
-  ?\·
-  ?\√
-  ?\â„–
-  ?\¤
-  ?\â– 
-  ?\ ])
-(define-coding-system-alias 'ruscii 'cp1125)
-;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua>
-(define-coding-system-alias 'cp866u 'cp1125)
-(coding-system-put 'cp1125 'mime-charset nil)
-
-;; Suggested by Anton Zinoviev <anton@lml.bas.bg>: Bulgarian DOS
-;; codepage.  Table at
-;; <http://en.wikipedia.org/wiki/MIK_Code_page>.
-;;;###autoload(autoload-coding-system 'mik '(require 'code-pages))
-(cp-make-coding-system
- mik
- [?Р?Б ?Ð’ ?Г ?Д ?Е ?Ж ?З ?И ?Й ?К ?Л ?Ðœ ?Р?О ?П ?Р ?С ?Т ?У ?Ф ?Ð¥ ?Ц
-  ?Ч ?Ш ?Щ ?Ъ ?Ы ?Ь ?Э ?Ю ?Я ?а ?б ?в ?г ?д ?е ?ж ?з ?и ?й ?к ?л ?м ?н
-  ?о ?п ?Ñ€ ?Ñ ?Ñ‚ ?у ?Ñ„ ?Ñ… ?ц ?ч ?ш ?щ ?ÑŠ ?Ñ‹ ?ÑŒ ?Ñ ?ÑŽ ?Ñ ?â”” ?â”´ ?┬ ?├ ?─
-  ?┼ ?â•£ ?â•‘ ?â•š ?â•” ?â•© ?╦ ?â•  ?â• ?╬ ?â” ?â–‘ ?â–’ ?â–“ ?│ ?┤ ?â„– ?§ ?â•— ?â• ?┘ ?┌ ?â–ˆ
-  ?â–„ ?â–Œ ?â– ?â–€ ?α ?ß ?Γ ?Ï€ ?Σ ?σ ?µ ?Ï„ ?Φ ?Θ ?Ω ?δ ?∞ ?φ ?ε ?∩ ?≡ ?± ?≥
-  ?≤ ?⌠ ?⌡ ?÷ ?≈ ?° ?∙ ?· ?√ ?â¿ ?² ?â–  ? ])
-(coding-system-put 'mik 'mime-charset nil)
-
-;; Suggested by Anton Zinoviev <anton@lml.bas.bg>: similar to CP1251
-;; and used for some non-Slavic Cyrillic languages.  Table found at
-;; <URL:ftp://ftp.logic.ru/pub/logic/linux/cyr-asian/PT154>.  See also
-;; <URL:http://lists.w3.org/Archives/Public/ietf-charsets/2002AprJun/0092.html,
-;; which suggests it's used in an Asian Cyrillic context.
-;;;###autoload(autoload-coding-system 'pt154 '(require 'code-pages))
-(cp-make-coding-system
- pt154
- [?Ò– ?Ò’ ?Ó® ?Ò“ ?„ ?… ?Ò¶ ?Ò® ?Ò² ?Ò¯ ?Ò  ?Ó¢ ?Ò¢ ?Òš ?Òº ?Ò¸ ?Ò— ?‘ ?’ ?“ ?†?• ?–
-  ?— ?Ò³ ?Ò· ?Ò¡ ?Ó£ ?Ò£ ?Ò› ?Ò» ?Ò¹ ?  ?ÐŽ ?Ñž ?Ј ?Ó¨ ?Ò˜ ?Ò° ?§ ?Р?© ?Ó˜ ?\« ?¬ ?Ó¯
-  ?® ?Òœ ?° ?Ò± ?І ?Ñ– ?Ò™ ?Ó© ?¶ ?· ?Ñ‘ ?â„– ?Ó™ ?\» ?ј ?Òª ?Ò« ?Ò ?Р?Б ?Ð’ ?Г ?Д
-  ?Е ?Ж ?З ?И ?Й ?К ?Л ?Ðœ ?Р?О ?П ?Р ?С ?Т ?У ?Ф ?Ð¥ ?Ц ?Ч ?Ш ?Щ ?Ъ ?Ы
-  ?Ь ?Э ?Ю ?Я ?а ?б ?в ?г ?д ?е ?ж ?з ?и ?й ?к ?л ?м ?н ?о ?п ?Ñ€ ?Ñ ?Ñ‚
-  ?у ?Ñ„ ?Ñ… ?ц ?ч ?ш ?щ ?ÑŠ ?Ñ‹ ?ÑŒ ?Ñ ?ÑŽ ?Ñ])
-  
-;;;###autoload(autoload-coding-system 'iso-8859-11 '(require 'code-pages))
-(cp-make-coding-system
- iso-8859-11
- [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  ?   ?ภ ?ข  ?ฃ  ?ค  ?ฅ  ?ฆ  ?ง  ?จ  ?ฉ  ?ช  ?ซ  ?ฌ  ?ภ ?ฎ  ?à¸
-  ?ภ ?ฑ  ?ฒ  ?ณ  ?ด  ?ต  ?ถ  ?ท  ?ธ  ?น  ?บ  ?ป  ?ผ  ?ภ ?พ  ?ฟ
-  ?ภ  ?ม  ?ย  ?ร  ?ฤ  ?ล  ?ฦ  ?ว  ?ศ  ?ษ  ?ส  ?ห  ?ฬ  ?อ  ?ฮ  ?ฯ
-  ?ะ  ?ั  ?า  ?ำ  ?ิ  ?ี  ?ึ  ?ื  ?ุ  ?ู  ?ฺ  nil nil nil nil ?฿
-  ?เ  ?๠ ?โ  ?ใ  ?ไ  ?ๅ  ?ๆ  ?็  ?่  ?้  ?๊  ?๋  ?์  ?๠ ?๎  ?à¹
-  ?๠ ?๑  ?๒  ?๓  ?๔  ?๕  ?๖  ?๗  ?๘  ?๙  ?๚  ?๛   nil nil nil nil]
- "ISO-8859-11.  This is `thai-tis620' with the addition of no-break-space.")
-
-(dotimes (i 9)
-  (let ((w (intern (format "windows-125%d" i)))
-       (c (intern (format "cp125%d" i))))
-    ;; Define cp125* as aliases for all windows-125*, so on Windows
-    ;; we can just concat "cp" to the ANSI codepage we get from the system
-    ;; and not have to worry about whether it should be "cp" or "windows-".
-    (when (coding-system-p w)
-      (define-coding-system-alias c w)
-      ;; Compatibility with codepage.el, though cp... are not the
-      ;; canonical names.
-      (if (not (assq c non-iso-charset-alist))
-         (let ((slot (assq w non-iso-charset-alist)))
-           (if slot
-               (push (cons c (cdr slot)) non-iso-charset-alist)))))))
-
-(provide 'code-pages)
-
-;;; arch-tag: 8b6e3c73-b271-4198-866d-ea6d0ceff1b2
-;;; code-pages.el ends here
index d9db78353912560416051de554c4de5c80d33603..bb67842840970566a4471b964be3c2589a7c95a8 100644 (file)
@@ -1,13 +1,13 @@
 ;;; codepage.el --- MS-DOS/MS-Windows specific coding systems
 
-;; Copyright (C) 1998, 1999, 2000, 2002  Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2005  Free Software Foundation, Inc.
 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 
 ;; Author: Eli Zaretskii
 ;; Maintainer: FSF
-;; Keywords: i18n ms-dos ms-windows codepage
+;; Keywords: i18n ms-dos ms-windows codepage obsolete
 
 ;; This file is part of GNU Emacs.
 
 ;;; Commentary:
 
 ;; Special coding systems for DOS/Windows codepage support.
-;;
-;; These coding systems perform conversion from the DOS/Windows
-;; codepage encoding to one of the ISO-8859 character sets.  Each
-;; codepage has its corresponding ISO-8859 charset, chosen so as to be
-;; able to convert all (or most) of the characters.  The idea is that
-;; Emacs internally works with the usual MULE charsets, and the
-;; conversion to and from the DOS codepage is performed on I/O only.
-;; See term/internal.el for the complementary setup of the DOS
-;; terminal display and input methods.
-;;
-;; Thanks to Ken'ichi Handa <handa@etl.go.jp> for writing the CCL
-;; encoders/decoders, and for help in debugging this code.
+;; Obsolete.
 
 ;;; Code:
 
 (defvar dos-unsupported-char-glyph)
 
-(defun cp-coding-system-for-codepage-1 (coding mnemonic iso-name
-                                              decoder encoder)
-  "Make coding system CODING for a DOS codepage using translation tables.
-MNEMONIC is a character to be displayed on mode line for the coding system.
-ISO-NAME is the name of the ISO-8859 charset which corresponds to this
-codepage.
-DECODER is a translation table for converting characters in the DOS codepage
-encoding to Emacs multibyte characters.
-ENCODER is a translation table for encoding Emacs multibyte characters into
-external DOS codepage codes."
-  (save-match-data
-    (let* ((coding-name (symbol-name coding))
-          (undef (if (eq system-type 'ms-dos)
-                     (if dos-unsupported-char-glyph
-                         (logand dos-unsupported-char-glyph 255)
-                       127)
-                   ??))
-          (safe-chars (make-char-table 'safe-chars))
-          (ccl-decoder
-           (ccl-compile
-            ;; The 4 here supplies the buf_magnification parameter
-            ;; for the CCL program.  A multibyte character may take
-            ;; at most 4-bytes.
-            `(4 (loop (read r1)
-                      (if (r1 >= 128)
-                          ((r0 = ,(charset-id 'ascii))
-                           (translate-character ,decoder r0 r1)
-                           (write-multibyte-character r0 r1))
-                        (write r1))
-                      (repeat)))))
-          (ccl-encoder
-           (ccl-compile
-            ;; The 2 here supplies the buf_magnification parameter for
-            ;; the CCL program.  Since the -dos coding system generates
-            ;; \r\n for each \n, a factor of 2 covers even the worst case
-            ;; of empty lines with a single \n.
-            `(2 (loop (read-multibyte-character r0 r1)
-                      (if (r0 != ,(charset-id 'ascii))
-                          ((translate-character ,encoder r0 r1)
-                           (if (r0 == ,(charset-id 'japanese-jisx0208))
-                               ((r1 = ,undef)
-                                (write r1)))))
-                      (write-repeat r1))))))
-
-      ;; Set elements of safe multibyte characters for this codepage
-      ;; to t in the char-table safe-chars.
-      (let ((tbl (get decoder 'translation-table))
-           (i 128)
-           ch)
-       (while (< i 256)
-         (setq ch (aref tbl i))
-         (if ch (aset safe-chars ch t))
-         (setq i (1+ i))))
-
-      ;; Make coding system CODING.
-      (make-coding-system
-       coding 4 mnemonic
-       (concat "8-bit encoding of " (symbol-name iso-name)
-              " characters using IBM codepage " coding-name)
-       (cons ccl-decoder ccl-encoder)
-       `((safe-charsets ascii eight-bit-control eight-bit-graphic ,iso-name)
-        (safe-chars . ,safe-chars)
-        (valid-codes (0 . 255)))))))
-
-(defun cp-decoding-vector-for-codepage (table charset offset)
-  "Create a vector for decoding IBM PC characters using conversion table
-TABLE into an ISO-8859 character set CHARSET whose first non-ASCII
-character is generated by (make-char CHARSET OFFSET)."
-  (let* ((len (length table))
-        (undefined-char
-         (if (eq system-type 'ms-dos)
-             (if dos-unsupported-char-glyph
-                 (logand dos-unsupported-char-glyph 255)
-               127)
-           32))
-        (vec1 (make-vector 256 undefined-char))
-        (i 0))
-    (while (< i 256)
-      (aset vec1 i i)
-      (setq i (1+ i)))
-    (setq i 0)
-    (while (< i len)
-      (if (aref table i)
-         (aset vec1 (aref table i) (make-char charset (+ i offset))))
-      (setq i (1+ i)))
-    vec1))
-
-;;; You don't think I created all these tables below by hand, do you?
-;;; The following Awk script will create the table for cp850-to-Latin-1
-;;; conversion from the RFC 1345 file (the other tables are left as an
-;;; excercise):
-;;; BEGIN { n_pages = 11;
-;;;         pn["IBM437"] = 0; pn["IBM850"] = 1; pn["IBM851"] = 2;
-;;;         pn["IBM852"] = 3; pn["IBM855"] = 4; pn["IBM860"] = 5;
-;;;         pn["IBM861"] = 6; pn["IBM862"] = 7; pn["IBM863"] = 8;
-;;;         pn["IBM864"] = 9; pn["IBM865"] = 10;
-;;;       }
-;;; $1 == "&charset" { charset = $2; }
-;;; $1 == "&code"    { code = $2; }
-;;; /^  [^&]/  {
-;;;   if ((charset ~ /^IBM(437|8(5[0125]|6[0-5]))$/) || (charset ~ /^ISO_8859-1/))
-;;;     {
-;;;       for (i = 1; i <= NF; i++)
-;;;         chars[charset,code++] = $i;
-;;;     }
-;;;   }
-;;;
-;;; END {
-;;;   for (i = 160; i < 256; i++)
-;;;     {
-;;;       c =  chars["ISO_8859-1:1987",i];
-;;;       if (c == "??")        # skip unused positions
-;;;         {
-;;;           printf " nil";
-;;;           if ((i - 159)%16 == 0)
-;;;             printf "\n";
-;;;           continue;
-;;;         }
-;;;       found = 0;
-;;;       for (j in pn)
-;;;         map[j] = "nil";
-;;;       for (combined in chars)
-;;;         {
-;;;           candidate = chars[combined];
-;;;           split (combined, separate, SUBSEP);
-;;;           if (separate[1] == "IBM850" && candidate == c)
-;;;             {
-;;;               found = 1;
-;;;               map[separate[1]] = separate[2];
-;;;             }
-;;;         }
-;;;       printf " %s", map["IBM850"];
-;;;       if ((i - 159)%16 == 0)
-;;;         printf "\n";
-;;;     }
-;;; }
-
-;;; WARNING WARNING WARNING!!!
-;;;
-;;; If you want to get fancy with these tables, remember that the inverse
-;;; tables, created by `cp-decoding-vector-for-codepage' above, are installed
-;;; on MS-DOS as nonascii-translation-table (see `dos-codepage-setup' on
-;;; internal.el).  Therefore, you should NOT put any codes below 128 in
-;;; these tables!  Otherwise, various Emacs commands and functions will
-;;; mysteriously fail!  For example, a typical screwup is to map the Latin-N
-;;; acute accent character to the apostrophe, and have all regexps which
-;;; end with "\\'" begin to fail (e.g., the automatic setting of the major
-;;; mode by file name extension will stop working).
-;;;
-;;; You HAVE BEEN warned!
-
-;; US/English/PC-8/IBM-2.  This doesn't support Latin-1 characters very
-;; well, but why not use what we can salvage?
-(defvar cp437-decode-table
-  ;; Nth element is the code of a cp437 glyph for the multibyte
-  ;; character created by (make-char 'latin-iso8859-1 (+ N 160)).
-  ;; The element nil means there's no corresponding cp437 glyph.
-  [
-   255 173 155 156 nil 157 179 nil nil nil 166 174 170 196 nil nil
-   248 241 253 nil nil nil nil 249 nil nil 167 175 172 171 nil 168
-   nil nil nil nil 142 143 146 128 nil 144 nil nil nil nil nil nil
-   nil 165 nil nil nil nil 153 nil nil nil nil nil 154 nil nil 225
-   133 160 131 nil 132 134 145 135 138 130 136 137 141 161 140 139
-   nil 164 149 162 147 nil 148 246 nil 151 163 150 129 nil nil 152]
-  "Table for converting ISO-8859-1 characters into codepage 437 glyphs.")
-(setplist 'cp437-decode-table
-         '(charset latin-iso8859-1 language "Latin-1" offset 160))
-
-;; Multilingual (Latin-1)
-(defvar cp850-decode-table
-  ;; Nth element is the code of a cp850 glyph for the multibyte
-  ;; character created by (make-char 'latin-iso8859-1 (+ N 160)).
-  ;; The element nil means there's no corresponding cp850 glyph.
-  [
-   255 173 189 156 207 190 221 245 249 184 166 174 170 240 169 238
-   248 241 253 252 239 230 244 250 247 251 167 175 172 171 243 168
-   183 181 182 199 142 143 146 128 212 144 210 211 222 214 215 216
-   209 165 227 224 226 229 153 158 157 235 233 234 154 237 232 225
-   133 160 131 198 132 134 145 135 138 130 136 137 141 161 140 139
-   208 164 149 162 147 228 148 246 155 151 163 150 129 236 231 152]
-  "Table for converting ISO-8859-1 characters into codepage 850 glyphs.")
-(setplist 'cp850-decode-table
-         '(charset latin-iso8859-1 language "Latin-1" offset 160))
-
-;; Multilingual (Latin-9)
-(defvar cp858-decode-table
-  ;; Nth element is the code of a cp858 glyph for the multibyte
-  ;; character created by (make-char 'latin-iso8859-15 (+ N 160)).
-  ;; The element nil means there's no corresponding cp858 glyph.
-  [
-   255 173 189 156 213 190 221 245 249 184 166 174 170 240 169 238
-   248 241 253 252 239 230 244 250 247 251 167 175 172 171 243 168
-   183 181 182 199 142 143 146 128 212 144 210 211 222 214 215 216
-   209 165 227 224 226 229 153 158 157 235 233 234 154 237 232 225
-   133 160 131 198 132 134 145 135 138 130 136 137 141 161 140 139
-   208 164 149 162 147 228 148 246 155 151 163 150 129 236 231 152]
-  "Table for converting ISO-8859-15 characters into codepage 858 glyphs.")
-(setplist 'cp858-decode-table
-         '(charset latin-iso8859-15 language "Latin-9" offset 160))
-
-;; Greek
-(defvar cp851-decode-table
-  [
-   255 nil nil 156 nil nil nil 245 249 nil nil 174 nil 240 nil nil
-   248 241 nil nil 239 nil 134 nil 141 143 144 175 146 171 149 152
-   161 164 165 166 167 168 169 170 172 173 181 182 184 183 189 190
-   198 199 nil 207 208 209 210 211 212 213 nil nil 155 157 158 159
-   252 214 215 216 221 222 224 225 226 227 228 229 230 231 232 233
-   234 235 237 236 238 242 243 244 246 250 160 251 162 163 253 nil]
-  "Table for converting ISO-8859-7 characters into codepage 851 glyphs.")
-(setplist 'cp851-decode-table
-         '(charset greek-iso8859-7 language "Greek" offset 160))
-
-;; Slavic/Eastern Europe (Latin-2)
-(defvar cp852-decode-table
-  [
-   255 164 244 157 207 149 151 245 249 230 184 155 141 240 166 189
-   248 165 247 136 239 150 152 243 242 231 173 156 171 241 167 190
-   232 181 182 198 142 145 143 128 172 144 168 211 183 214 215 210
-   209 227 213 224 226 138 153 158 252 222 233 235 154 237 221 225
-   234 160 131 199 132 146 134 135 159 130 169 137 216 161 140 212
-   208 228 229 162 147 139 148 246 253 133 163 251 129 236 238 250]
-  "Table for converting ISO-8859-2 characters into codepage 852 glyphs.")
-(setplist 'cp852-decode-table
-         '(charset latin-iso8859-2 language "Latin-2" offset 160))
-
-;; Russian
-(defvar cp855-decode-table
-  [
-   255 133 129 131 135 137 139 141 143 145 147 149 151 240 153 155
-   161 163 236 173 167 169 234 244 184 190 199 209 211 213 215 221
-   226 228 230 232 171 182 165 252 246 250 159 242 238 248 157 224
-   160 162 235 172 166 168 233 243 183 189 198 208 210 212 214 216
-   225 227 229 231 170 181 164 251 245 249 158 241 237 247 156 222
-   239 132 128 130 134 136 138 140 142 144 146 148 150 253 152 154]
-  "Table for converting ISO-8859-5 characters into codepage 855 glyphs.")
-(setplist 'cp855-decode-table
-         '(charset cyrillic-iso8859-5 language "Cyrillic-ISO" offset 160))
-
-;; Turkish
-(defvar cp857-decode-table
-  [
-   255 nil nil 156 207 nil 245 249 152 158 166 nil 240 nil
-   248 nil 253 252 239 nil nil nil nil 141 159 167 nil 171 nil
-   183 181 182 142 nil nil 128 212 144 210 211 222 214 215 216
-   165 227 224 226 nil 153 232 nil 235 233 234 154 nil nil 225
-   133 160 131 132 nil nil 135 138 130 136 137 236 161 140 139
-   164 149 162 147 nil 148 246 nil 151 163 150 129 nil nil 250]
-  "Table for converting ISO-8859-3 characters into codepage 857 glyphs.")
-(setplist 'cp857-decode-table
-         '(charset latin-iso8859-3 language "Latin-3" offset 160))
-
-;; Portuguese
-(defvar cp860-decode-table
-  [
-   255 173 155 156 nil nil 179 nil nil nil 166 174 170 nil nil nil
-   nil 241 253 nil nil nil nil 249 nil nil 167 175 172 171 nil 168
-   145 134 143 142 nil nil nil 128 146 144 137 nil 152 nil 139 nil
-   nil 165 159 169 140 153 nil nil nil 157 150 nil 154 nil nil nil
-   133 160 131 132 nil nil nil 135 138 130 136 nil 141 161 nil nil
-   nil 164 149 162 147 148 nil 246 nil 151 163 nil 129 nil nil nil]
-  "Table for converting ISO-8859-1 characters into codepage 860 glyphs.")
-(setplist 'cp860-decode-table
-         '(charset latin-iso8859-1 language "Latin-1" offset 160))
-
-;; Icelandic
-(defvar cp861-decode-table
-  [
-   255 173 nil 156 nil nil nil nil nil nil nil 174 170 nil nil nil
-   nil 241 253 nil nil nil nil 249 nil nil nil 175 172 171 nil 168
-   nil 164 nil nil 142 143 146 128 nil 144 nil nil nil 165 nil nil
-   139 nil 159 166 nil nil 153 nil 157 nil 167 nil 154 151 141 nil
-   133 160 131 nil 132 134 145 135 138 130 136 137 nil 161 nil nil
-   140 nil nil 162 147 nil 148 246 155 nil 163 150 129 152 149 nil]
-  "Table for converting ISO-8859-1 characters into codepage 861 glyphs.")
-(setplist 'cp861-decode-table
-         '(charset latin-iso8859-1 language "Latin-1" offset 160))
-
-;; Hebrew
-(defvar cp862-decode-table
-  ;; Nth element is the code of a cp862 glyph for the multibyte
-  ;; character created by (make-char 'hebrew-iso8859-8 (+ N 160)).
-  ;; The element nil means there's no corresponding cp862 glyph.
-  [
-   255 173 155 156 nil 157 179 nil nil nil nil 174 170 196 nil nil
-   248 241 253 nil nil 230 nil 249 nil nil 246 175 172 171 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-   nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 205
-   128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
-   144 145 146 147 148 149 150 151 152 153 154 nil nil nil nil nil]
-  "Table for converting ISO-8859-8 characters into codepage 862 glyphs.")
-(setplist 'cp862-decode-table
-         '(charset hebrew-iso8859-8 language "Hebrew" offset 160))
-
-;; French Canadian
-(defvar cp863-decode-table
-  [
-   255 nil 155 156 152 nil 160 143 164 nil nil 174 170 nil nil 167
-   nil 241 253 166 161 nil 134 249 165 nil nil 175 172 171 173 nil
-   142 nil 132 nil nil nil nil 128 145 144 146 148 nil nil 168 149
-   nil nil nil nil 153 nil nil nil nil 157 nil 158 154 nil nil nil
-   133 nil 131 nil nil nil nil 135 138 130 136 137 141 nil 140 139
-   nil nil nil 162 147 nil nil 246 nil 151 163 150 129 nil nil nil]
-  "Table for converting ISO-8859-1 characters into codepage 863 glyphs.")
-(setplist 'cp863-decode-table
-         '(charset latin-iso8859-1 language "Latin-1" offset 160))
-
-;; Arabic
-;; FIXME: Emacs doesn't seem to support the "Arabic" language
-;; environment yet.  So this is only partially usable, for now
-(defvar cp864-decode-table
-  [
-   255 nil nil nil 164 nil nil nil nil nil nil nil 172 161 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil 187 nil nil nil 191
-   nil 193 194 195 196 nil 198 199 169 201 170 171 173 174 175 207
-   208 209 210 188 189 190 235 215 216 223 238 nil nil nil nil nil
-   224 247 248 252 251 239 242 243 232 233 253 nil nil nil nil nil
-   nil 241 nil nil nil nil nil nil nil nil nil nil nil nil nil nil]
-  "Table for converting ISO-8859-6 characters into codepage 864 glyphs.")
-(setplist 'cp864-decode-table
-         '(charset arabic-iso8859-6 language nil offset 160))
-
-;; Arabic OEM codepage used by Windows
-;; FIXME: Emacs doesn't seem to support the "Arabic" language
-;; environment yet.  So this is only partially usable, for now
-(defvar cp720-decode-table
-  [
-   255 nil nil nil 148 nil nil nil nil nil nil nil nil 196 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-   nil 152 153 154 155 157 158 159 160 161 162 163 164 165 166 167
-   168 169 170 171 172 173 224 225 226 227 228 nil nil nil nil nil
-   149 229 231 232 233 234 235 236 237 238 239 241 242 243 244 245
-   246 145 146 nil nil nil nil nil nil nil nil nil nil nil nil nil]
-  "Table for converting ISO-8859-6 characters into codepage 720 glyphs.")
-(setplist 'cp720-decode-table
-         '(charset arabic-iso8859-6 language nil offset 160))
-
-
-;; Nordic (Norwegian/Danish)
-(defvar cp865-decode-table
-  [
-   255 173 nil 156 nil nil nil nil nil nil 166 174 170 nil nil nil
-   nil 241 253 nil nil nil nil 249 nil nil 167 175 172 171 nil 168
-   nil nil nil nil 142 143 146 128 nil 144 nil nil nil nil nil nil
-   nil 165 nil nil nil nil 153 nil 157 nil nil nil 154 nil nil nil
-   133 160 131 nil 132 134 145 135 138 130 136 137 141 161 140 139
-   nil 164 149 162 147 nil 148 246 155 151 163 150 129 nil nil 152]
-  "Table for converting ISO-8859-1 characters into codepage 865 glyphs.")
-(setplist 'cp865-decode-table
-         '(charset latin-iso8859-1 language "Latin-1" offset 160))
-
-;; Russian (Yes, another one!  This one's supposed to be used
-;; on Windows as the Russian OEM code page.)
-(defvar cp866-decode-table
-  [
-   255 240 nil nil 242 nil nil 244 nil nil nil nil nil nil 246 nil
-   128 129 130 131 132 133 134 135 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
-   224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
-   252 241 nil nil 243 nil nil 245 nil nil nil nil nil nil 247 nil]
-  "Table for converting ISO-8859-5 characters into codepage 866 glyphs.")
-(setplist 'cp866-decode-table
-         '(charset cyrillic-iso8859-5 language "Cyrillic-ISO" offset 160))
-
-;; Greek (yes, another one!)
-(defvar cp869-decode-table
-  [
-   255 139 140 156 nil nil 138 245 249 151 nil 174 137 240 nil 142
-   248 241 153 154 239 247 134 136 141 143 144 175 146 171 149 152
-   161 164 165 166 167 168 169 170 172 173 181 182 183 184 189 190
-   198 199 nil 207 208 209 210 211 212 213 145 150 155 157 158 159
-   252 214 215 216 221 222 224 225 226 227 228 229 230 231 232 233
-   234 235 237 236 238 242 243 244 246 250 160 251 162 163 253 nil]
-  "Table for converting ISO-8859-7 characters into codepage 869 glyphs.")
-(setplist 'cp869-decode-table
-         '(charset greek-iso8859-7 language "Greek" offset 160))
-
-;; Greek OEM codepage used by Windows
-(defvar cp737-decode-table
-  [
-   255 nil nil nil nil nil 179 nil nil nil nil nil nil 196 nil nil
-   248 241 253 nil nil nil 234 250 235 236 237 nil 238 nil 239 240
-   nil 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
-   143 144 nil 145 146 147 148 149 150 151 244 245 225 226 227 229
-   nil 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
-   167 168 170 169 171 172 173 174 175 224 228 232 230 231 233 nil]
-  "Table for converting ISO-8859-7 characters into codepage 737 glyphs.")
-(setplist 'cp737-decode-table
-         '(charset greek-iso8859-7 language "Greek" offset 160))
-
-;; Conversion from codepages 770-775 to Latin-4 for Baltic countries.
-;; FIXME: Once we support Latin-7, these should be remapped into it.
-(defvar cp770-decode-table
-  [
-   255 143 nil nil 155 nil 156 nil 157 159 137 168 nil 196 146 nil
-   248 133 nil nil nil nil 134 nil nil 158 136 152 nil nil 145 nil
-   160 nil nil nil 142 nil nil 173 128 nil 139 nil 144 nil nil 161
-   nil nil nil 163 nil 149 153 nil nil 167 nil nil 154 nil 166 225
-   131 nil nil nil 132 nil nil 141 135 nil 138 nil 130 nil nil 140
-   nil nil nil 162 nil 147 148 247 nil 151 nil nil 129 nil 150 nil]
-  "Table for converting ISO-8859-4 characters into codepage 770 glyphs.")
-(setplist 'cp770-decode-table
-         '(charset latin-iso8859-4 language "Latin-4" offset 160))
-
-(defvar cp773-decode-table
-  [
-   255 220 nil 138 150 nil 234 190 166 246 237 149 173 196 252 nil
-   208 nil nil 139 239 nil 235 nil nil 247 137 133 136 nil 253 nil
-   160 nil nil nil 142 143 146 244 222 144 240 nil 242 nil nil 161
-   nil 238 226 232 nil 229 153 158 157 248 nil nil 154 nil 250 225
-   131 nil nil nil 132 134 145 245 223 130 241 nil 243 nil nil 140
-   nil 236 147 233 nil 228 148 198 155 249 nil nil 129 nil 251 nil]
-  "Table for converting ISO-8859-4 characters into codepage 773 glyphs.")
-(setplist 'cp773-decode-table
-         '(charset latin-iso8859-4 language "Latin-4" offset 160))
-
-(defvar cp774-decode-table
-  [
-   255 181 nil nil 155 nil nil nil 245 190 nil nil nil 196 207 nil
-   248 208 nil nil nil nil nil nil nil 213 nil nil nil nil 216 nil
-   nil nil nil nil 142 143 146 189 182 144 183 nil 184 nil nil nil
-   nil nil nil nil nil nil 153 nil nil 198 nil nil 154 nil 199 225
-   nil 160 nil nil 132 134 145 212 209 130 210 137 211 161 140 nil
-   nil nil nil nil 147 nil 148 246 237 214 163 150 129 nil 215 248]
-  "Table for converting ISO-8859-4 characters into codepage 774 glyphs.")
-(setplist 'cp774-decode-table
-         '(charset latin-iso8859-4 language "Latin-4" offset 160))
-
-(defvar cp775-decode-table
-  [
-   255 181 nil 138 150 nil 234 245 166 190 237 149 173 240 207 nil
-   248 208 nil 139 239 nil 235 nil nil 213 137 133 136 nil 216 nil
-   160 nil nil nil 142 143 146 189 182 144 183 nil 184 nil nil 161
-   nil 238 226 232 nil 229 153 158 157 198 nil nil 154 nil 199 225
-   131 nil nil nil 132 134 145 212 209 130 210 nil 211 nil nil 140
-   nil 236 147 233 nil 228 148 247 155 214 nil nil 129 nil 215 nil]
-  "Table for converting ISO-8859-4 characters into codepage 775 glyphs.")
-(setplist 'cp775-decode-table
-         '(charset latin-iso8859-4 language "Latin-4" offset 160))
-
-;; Support for the Windows 12xx series of codepages that MS has
-;; butchered from the ISO-8859 specs. This does not add support for
-;; the extended characters that MS has added in the 128 - 159 coding
-;; range, only translates those characters that can be expressed in
-;; the corresponding iso-8859 charset.
-
-;; Codepage Mapping:
-;;
-;; Windows-1250: ISO-8859-2 (Central Europe) - differs in some positions
-;; Windows-1251: ISO-8859-5 (Cyrillic)       - differs wildly
-;; Windows-1252: ISO-8859-1 (West Europe)    - exact match
-;; Windows-1253: ISO-8859-7 (Greek)          - differs in some positions
-;; Windows-1254: ISO-8859-9 (Turkish)        - exact match
-;; Windows-1255: ISO-8859-8 (Hebrew)         - exact match
-;; Windows-1256: ISO-8859-6 (Arabic)         - half match
-;; Windows-1257: ISO-8859-4 (Baltic)         - differs, future Latin-7
-;; Windows-1258: VISCII (Vietnamese)         - Completely different
-
-(defvar cp1250-decode-table
-  [
-    160 165 162 163 164 188 140 167 168 138 170 141 143 173 142 175
-    176 185 178 179 180 190 156 161 184 154 186 157 159 189 158 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 ]
-  "ISO-8859-2 to Windows-1250 (Central Europe) codepage decoding table.")
-(setplist 'cp1250-decode-table
-          '(charset latin-iso8859-2 language "Latin-2" offset 160))
-
-(defvar cp1251-decode-table
-  [
-    160 168 128 129 170 189 178 175 163 138 140 142 141 173 161 143
-    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
-    185 184 144 131 186 190 179 191 188 154 156 158 157 167 162 159 ]
-  "ISO-8859-5 to Windows-1251 (Cyrillic) codepage decoding table.")
-(setplist 'cp1251-decode-table
-          '(charset cyrillic-iso8859-5 language "Cyrillic-ISO" offset 160))
-
-;; cp1253 is missing nbsp so we cannot quite translate perfectly. It
-;; also has two micro/mu characters which would require more complex
-;; processing to accomodate.
-(defvar cp1253-decode-table
-  [
-    nil 145 146 163 nil nil 166 167 168 169 nil 171 172 173 nil 151
-    176 177 178 179 180 161 162 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 nil 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 nil ]
-  "ISO-8859-7 to Windows-1253 (Greek) codepage decoding table.")
-(setplist 'cp1253-decode-table
-          '(charset greek-iso8859-7 language "Greek" offset 160))
-
-;; Since Latin-7 is not yet official, and Emacs does not support it,
-;; provide translation between Windows-1257 and Latin-4 the best we
-;; can.
-(defvar cp1257-decode-table
-  [
-    160 192 nil 170 164 nil 207 167 nil 208 199 204 nil 173 222 nil
-    176 224 nil 186 nil nil 239 nil nil 240 231 236 nil nil 254 nil
-    194 nil nil nil 196 197 175 193 200 201 198 nil 203 nil nil 206
-    nil 210 212 205 nil 213 214 215 168 216 nil nil 220 nil 219 223
-    226 nil nil nil 228 229 191 225 232 233 230 nil 235 nil nil 238
-    nil 242 244 237 nil 245 246 247 184 248 nil nil 252 nil 251 nil ]
-  "ISO-8859-4 to Windows-1257 (Baltic) codepage decoding table.")
-(setplist 'cp1257-decode-table
-          '(charset latin-iso8859-4 language "Latin-4" offset 160))
-
-;;;###autoload
-(defun cp-make-coding-systems-for-codepage (codepage iso-name offset)
-  "Create a coding system to convert IBM CODEPAGE into charset ISO-NAME
-whose first character is at offset OFFSET from the beginning of 8-bit
-ASCII table.
-
-The created coding system has the usual 3 subsidiary systems: for Unix-,
-DOS- and Mac-style EOL conversion.  However, unlike built-in coding
-systems, the Mac-style EOL conversion is currently not supported by the
-decoder and encoder created by this function."
-  (let* ((decode-table (intern (format "%s-decode-table" codepage)))
-        (nonascii-table
-         (intern (format "%s-nonascii-translation-table" codepage)))
-        (decode-translation
-         (intern (format "%s-decode-translation-table" codepage)))
-        (encode-translation
-         (intern (format "%s-encode-translation-table" codepage))))
-    (set nonascii-table
-        (make-translation-table-from-vector
-         (cp-decoding-vector-for-codepage
-          (symbol-value decode-table) iso-name offset)))
-    (define-translation-table encode-translation
-      (char-table-extra-slot (symbol-value nonascii-table) 0))
-    ;; For charsets other than ascii, eight-bit-* and ISO-NAME, set
-    ;; `?' for one-column charsets, and some Japanese character for
-    ;; wide-column charsets.  CCL encoder convert that Japanese
-    ;; character to either dos-unsupported-char-glyph or "??".
-    (let ((tbl (char-table-extra-slot (symbol-value nonascii-table) 0))
-         (undef (if (eq system-type 'ms-dos)
-                    (if dos-unsupported-char-glyph
-                        (logand dos-unsupported-char-glyph 255)
-                      127)
-                  ??))
-         (charsets (delq 'ascii
-                         (delq 'eight-bit-control
-                               (delq 'eight-bit-graphic
-                                     (delq iso-name
-                                           (copy-sequence charset-list))))))
-         (wide-column-char (make-char 'japanese-jisx0208 32 32)))
-      (while charsets
-       (aset tbl (make-char (car charsets))
-             (if (= (charset-width (car charsets)) 1) undef wide-column-char))
-       (setq charsets (cdr charsets))))
-    (define-translation-table decode-translation
-      (symbol-value nonascii-table))
-    (cp-coding-system-for-codepage-1
-     (intern codepage) ?D iso-name decode-translation encode-translation)
-    ))
-
-(defun cp-codepage-decoder (codepage)
-  "If CODEPAGE is the name of a supported codepage, return its decode table.
-Otherwise return nil."
-  (let ((cp (if (symbolp codepage) (symbol-name codepage) codepage)))
-    (cond
-     ((stringp cp)
-      (intern-soft (format "%s-decode-table" cp)))
-     (t nil))))
+;; I doubt we need compatibility versions of any of these autoloaded
+;; functions apart from codepage-setup, which users may call.
+
+;; ;;;###autoload
+;; (defun cp-make-coding-systems-for-codepage (codepage iso-name offset)
+;;   "Create a coding system to convert IBM CODEPAGE into charset ISO-NAME
+;; whose first character is at offset OFFSET from the beginning of 8-bit
+;; ASCII table.
+
+;; The created coding system has the usual 3 subsidiary systems: for Unix-,
+;; DOS- and Mac-style EOL conversion.  However, unlike built-in coding
+;; systems, the Mac-style EOL conversion is currently not supported by the
+;; decoder and encoder created by this function."
+;;   (let* ((decode-table (intern (format "%s-decode-table" codepage)))
+;;      (nonascii-table
+;;       (intern (format "%s-nonascii-translation-table" codepage)))
+;;      (decode-translation
+;;       (intern (format "%s-decode-translation-table" codepage)))
+;;      (encode-translation
+;;       (intern (format "%s-encode-translation-table" codepage))))
+;;     (set nonascii-table
+;;      (make-translation-table-from-vector
+;;       (cp-decoding-vector-for-codepage
+;;        (symbol-value decode-table) iso-name offset)))
+;;     (define-translation-table encode-translation
+;;       (char-table-extra-slot (symbol-value nonascii-table) 0))
+;;     ;; For charsets other than ascii, eight-bit-* and ISO-NAME, set
+;;     ;; `?' for one-column charsets, and some Japanese character for
+;;     ;; wide-column charsets.  CCL encoder convert that Japanese
+;;     ;; character to either dos-unsupported-char-glyph or "??".
+;;     (let ((tbl (char-table-extra-slot (symbol-value nonascii-table) 0))
+;;       (undef (if (eq system-type 'ms-dos)
+;;                  (if dos-unsupported-char-glyph
+;;                      (logand dos-unsupported-char-glyph 255)
+;;                    127)
+;;                ??))
+;;       (charsets (delq 'ascii
+;;                       (delq 'eight-bit-control
+;;                             (delq 'eight-bit-graphic
+;;                                   (delq iso-name
+;;                                         (copy-sequence charset-list))))))
+;;       (wide-column-char (make-char 'japanese-jisx0208 32 32)))
+;;       (while charsets
+;;     (aset tbl (make-char (car charsets))
+;;           (if (= (charset-width (car charsets)) 1) undef wide-column-char))
+;;     (setq charsets (cdr charsets))))
+;;     (define-translation-table decode-translation
+;;       (symbol-value nonascii-table))
+;;     (cp-coding-system-for-codepage-1
+;;      (intern codepage) ?D iso-name decode-translation encode-translation)
+;;     ))
+
+;; ;;;###autoload
+;; (defun cp-charset-for-codepage (codepage)
+;;   "Return the charset for which there is a translation table to DOS CODEPAGE.
+;; CODEPAGE must be the name of a DOS codepage, a string."
+;;   (let ((cp-decoder (cp-codepage-decoder codepage)))
+;;     (if (null cp-decoder)
+;;     (error "Unsupported codepage %s" codepage)
+;;       (get cp-decoder 'charset))))
+
+;; ;;;###autoload
+;; (defun cp-language-for-codepage (codepage)
+;;   "Return the name of the MULE language environment for CODEPAGE.
+;; CODEPAGE must be the name of a DOS codepage, a string."
+;;   (let ((cp-decoder (cp-codepage-decoder codepage)))
+;;     (if (null cp-decoder)
+;;     (error "Unsupported codepage %s" codepage)
+;;       (get cp-decoder 'language))))
+
+;; ;;;###autoload
+;; (defun cp-offset-for-codepage (codepage)
+;;   "Return the offset to be used in setting up coding systems for CODEPAGE.
+;; CODEPAGE must be the name of a DOS codepage, a string."
+;;   (let ((cp-decoder (cp-codepage-decoder codepage)))
+;;     (if (null cp-decoder)
+;;     (error "Unsupported codepage %s" codepage)
+;;       (get cp-decoder 'offset))))
+
+;; ;;;###autoload
+;; (defun cp-supported-codepages ()
+;;   "Return an alist of supported codepages.
+
+;; Each association in the alist has the form (NNN . CHARSET), where NNN is the
+;; codepage number, and CHARSET is the MULE charset which is the closest match
+;; for the character set supported by that codepage.
+
+;; A codepage NNN is supported if a variable called `cpNNN-decode-table' exists,
+;; is a vector, and has a charset property."
+;;   (save-match-data
+;;     (let (alist chset sname)
+;;       (mapatoms
+;;        (function
+;;     (lambda (sym)
+;;       (if (and (boundp sym)
+;;                (string-match "\\`cp\\([1-9][0-9][0-9][0-9]?\\)-decode-table\\'"
+;;                              (setq sname (symbol-name sym)))
+;;                (vectorp (symbol-value sym))
+;;                (setq chset (get sym 'charset)))
+;;           (setq alist
+;;                 (cons (cons (match-string 1 sname) chset) alist))))))
+;;       alist)))
 
 ;;;###autoload
-(defun cp-charset-for-codepage (codepage)
-  "Return the charset for which there is a translation table to DOS CODEPAGE.
-CODEPAGE must be the name of a DOS codepage, a string."
-  (let ((cp-decoder (cp-codepage-decoder codepage)))
-    (if (null cp-decoder)
-       (error "Unsupported codepage %s" codepage)
-      (get cp-decoder 'charset))))
-
-;;;###autoload
-(defun cp-language-for-codepage (codepage)
-  "Return the name of the MULE language environment for CODEPAGE.
-CODEPAGE must be the name of a DOS codepage, a string."
-  (let ((cp-decoder (cp-codepage-decoder codepage)))
-    (if (null cp-decoder)
-       (error "Unsupported codepage %s" codepage)
-      (get cp-decoder 'language))))
-
-;;;###autoload
-(defun cp-offset-for-codepage (codepage)
-  "Return the offset to be used in setting up coding systems for CODEPAGE.
-CODEPAGE must be the name of a DOS codepage, a string."
-  (let ((cp-decoder (cp-codepage-decoder codepage)))
-    (if (null cp-decoder)
-       (error "Unsupported codepage %s" codepage)
-      (get cp-decoder 'offset))))
-
-;;;###autoload
-(defun cp-supported-codepages ()
-  "Return an alist of supported codepages.
-
-Each association in the alist has the form (NNN . CHARSET), where NNN is the
-codepage number, and CHARSET is the MULE charset which is the closest match
-for the character set supported by that codepage.
-
-A codepage NNN is supported if a variable called `cpNNN-decode-table' exists,
-is a vector, and has a charset property."
-  (save-match-data
-    (let (alist chset sname)
-      (mapatoms
-       (function
-       (lambda (sym)
-         (if (and (boundp sym)
-                  (string-match "\\`cp\\([1-9][0-9][0-9][0-9]?\\)-decode-table\\'"
-                                (setq sname (symbol-name sym)))
-                  (vectorp (symbol-value sym))
-                  (setq chset (get sym 'charset)))
-             (setq alist
-                   (cons (cons (match-string 1 sname) chset) alist))))))
-      alist)))
-
-;;;###autoload
-(defun codepage-setup (codepage)
-  "Create a coding system cpCODEPAGE to support the IBM codepage CODEPAGE.
-
-These coding systems are meant for encoding and decoding 8-bit non-ASCII
-characters used by the IBM codepages, typically in conjunction with files
-read/written by MS-DOS software, or for display on the MS-DOS terminal."
-  (interactive
-   (let ((completion-ignore-case t)
-        (candidates (cp-supported-codepages)))
-     (list (completing-read "Setup DOS Codepage (default 437): " candidates
-                           nil t nil nil "437"))))
-  (let* ((cp (format "cp%s" codepage))
-        (cp-defined (intern-soft cp)))
-    (or (and cp-defined  ;; avoid defining if already defined
-            (coding-system-p cp-defined))
-       (cp-make-coding-systems-for-codepage
-        cp (cp-charset-for-codepage cp) (cp-offset-for-codepage cp)))))
-
-;; Add DOS codepages to `non-iso-charset-alist'.
-(eval-after-load "mule-diag"
-  '(let ((tail (cp-supported-codepages))
-        elt)
-     (while tail
-       (setq elt (car tail) tail (cdr tail))
-       ;; Now ELT is (CODEPAGE . CHARSET), where CODEPAGE is a string
-       ;; (e.g. "850"), CHARSET is a charset that characters in CODEPAGE
-       ;; are mapped to.
-       (unless (assq (intern (concat "cp" (car elt))) non-iso-charset-alist)
-        (setq non-iso-charset-alist
-              (cons (list (intern (concat "cp" (car elt)))
-                          (list 'ascii (cdr elt))
-                          `(lambda (code)
-                             (decode-codepage-char ,(string-to-int (car elt))
-                                                   code))
-                          (list (list 0 255)))
-                    non-iso-charset-alist))))))
+(defun codepage-setup (&optional codepage)
+  "Obsolete.  All coding systems are set up initially."
+  (interactive))
+(make-obsolete 'codepage-setup "no longer relevant" "23.1")
 
 (provide 'codepage)
 
diff --git a/lisp/international/cp51932.el b/lisp/international/cp51932.el
new file mode 100644 (file)
index 0000000..b8d01f2
--- /dev/null
@@ -0,0 +1,472 @@
+;;; cp51932.el -- translation table for CP51932. -*- no-byte-compile: t -*-
+;;; Automatically genrated from CP932-2BYTE.map
+(let ((map
+       '(;JISEXT<->UNICODE
+        (#x2D21 . #x2460)
+        (#x2D22 . #x2461)
+        (#x2D23 . #x2462)
+        (#x2D24 . #x2463)
+        (#x2D25 . #x2464)
+        (#x2D26 . #x2465)
+        (#x2D27 . #x2466)
+        (#x2D28 . #x2467)
+        (#x2D29 . #x2468)
+        (#x2D2A . #x2469)
+        (#x2D2B . #x246A)
+        (#x2D2C . #x246B)
+        (#x2D2D . #x246C)
+        (#x2D2E . #x246D)
+        (#x2D2F . #x246E)
+        (#x2D30 . #x246F)
+        (#x2D31 . #x2470)
+        (#x2D32 . #x2471)
+        (#x2D33 . #x2472)
+        (#x2D34 . #x2473)
+        (#x2D35 . #x2160)
+        (#x2D36 . #x2161)
+        (#x2D37 . #x2162)
+        (#x2D38 . #x2163)
+        (#x2D39 . #x2164)
+        (#x2D3A . #x2165)
+        (#x2D3B . #x2166)
+        (#x2D3C . #x2167)
+        (#x2D3D . #x2168)
+        (#x2D3E . #x2169)
+        (#x2D40 . #x3349)
+        (#x2D41 . #x3314)
+        (#x2D42 . #x3322)
+        (#x2D43 . #x334D)
+        (#x2D44 . #x3318)
+        (#x2D45 . #x3327)
+        (#x2D46 . #x3303)
+        (#x2D47 . #x3336)
+        (#x2D48 . #x3351)
+        (#x2D49 . #x3357)
+        (#x2D4A . #x330D)
+        (#x2D4B . #x3326)
+        (#x2D4C . #x3323)
+        (#x2D4D . #x332B)
+        (#x2D4E . #x334A)
+        (#x2D4F . #x333B)
+        (#x2D50 . #x339C)
+        (#x2D51 . #x339D)
+        (#x2D52 . #x339E)
+        (#x2D53 . #x338E)
+        (#x2D54 . #x338F)
+        (#x2D55 . #x33C4)
+        (#x2D56 . #x33A1)
+        (#x2D5F . #x337B)
+        (#x2D60 . #x301D)
+        (#x2D61 . #x301F)
+        (#x2D62 . #x2116)
+        (#x2D63 . #x33CD)
+        (#x2D64 . #x2121)
+        (#x2D65 . #x32A4)
+        (#x2D66 . #x32A5)
+        (#x2D67 . #x32A6)
+        (#x2D68 . #x32A7)
+        (#x2D69 . #x32A8)
+        (#x2D6A . #x3231)
+        (#x2D6B . #x3232)
+        (#x2D6C . #x3239)
+        (#x2D6D . #x337E)
+        (#x2D6E . #x337D)
+        (#x2D6F . #x337C)
+        (#x2D70 . #x2252)
+        (#x2D71 . #x2261)
+        (#x2D72 . #x222B)
+        (#x2D73 . #x222E)
+        (#x2D74 . #x2211)
+        (#x2D75 . #x221A)
+        (#x2D76 . #x22A5)
+        (#x2D77 . #x2220)
+        (#x2D78 . #x221F)
+        (#x2D79 . #x22BF)
+        (#x2D7A . #x2235)
+        (#x2D7B . #x2229)
+        (#x2D7C . #x222A)
+        (#x7921 . #x7E8A)
+        (#x7922 . #x891C)
+        (#x7923 . #x9348)
+        (#x7924 . #x9288)
+        (#x7925 . #x84DC)
+        (#x7926 . #x4FC9)
+        (#x7927 . #x70BB)
+        (#x7928 . #x6631)
+        (#x7929 . #x68C8)
+        (#x792A . #x92F9)
+        (#x792B . #x66FB)
+        (#x792C . #x5F45)
+        (#x792D . #x4E28)
+        (#x792E . #x4EE1)
+        (#x792F . #x4EFC)
+        (#x7930 . #x4F00)
+        (#x7931 . #x4F03)
+        (#x7932 . #x4F39)
+        (#x7933 . #x4F56)
+        (#x7934 . #x4F92)
+        (#x7935 . #x4F8A)
+        (#x7936 . #x4F9A)
+        (#x7937 . #x4F94)
+        (#x7938 . #x4FCD)
+        (#x7939 . #x5040)
+        (#x793A . #x5022)
+        (#x793B . #x4FFF)
+        (#x793C . #x501E)
+        (#x793D . #x5046)
+        (#x793E . #x5070)
+        (#x793F . #x5042)
+        (#x7940 . #x5094)
+        (#x7941 . #x50F4)
+        (#x7942 . #x50D8)
+        (#x7943 . #x514A)
+        (#x7944 . #x5164)
+        (#x7945 . #x519D)
+        (#x7946 . #x51BE)
+        (#x7947 . #x51EC)
+        (#x7948 . #x5215)
+        (#x7949 . #x529C)
+        (#x794A . #x52A6)
+        (#x794B . #x52C0)
+        (#x794C . #x52DB)
+        (#x794D . #x5300)
+        (#x794E . #x5307)
+        (#x794F . #x5324)
+        (#x7950 . #x5372)
+        (#x7951 . #x5393)
+        (#x7952 . #x53B2)
+        (#x7953 . #x53DD)
+        (#x7954 . #xFA0E)
+        (#x7955 . #x549C)
+        (#x7956 . #x548A)
+        (#x7957 . #x54A9)
+        (#x7958 . #x54FF)
+        (#x7959 . #x5586)
+        (#x795A . #x5759)
+        (#x795B . #x5765)
+        (#x795C . #x57AC)
+        (#x795D . #x57C8)
+        (#x795E . #x57C7)
+        (#x795F . #xFA0F)
+        (#x7960 . #xFA10)
+        (#x7961 . #x589E)
+        (#x7962 . #x58B2)
+        (#x7963 . #x590B)
+        (#x7964 . #x5953)
+        (#x7965 . #x595B)
+        (#x7966 . #x595D)
+        (#x7967 . #x5963)
+        (#x7968 . #x59A4)
+        (#x7969 . #x59BA)
+        (#x796A . #x5B56)
+        (#x796B . #x5BC0)
+        (#x796C . #x752F)
+        (#x796D . #x5BD8)
+        (#x796E . #x5BEC)
+        (#x796F . #x5C1E)
+        (#x7970 . #x5CA6)
+        (#x7971 . #x5CBA)
+        (#x7972 . #x5CF5)
+        (#x7973 . #x5D27)
+        (#x7974 . #x5D53)
+        (#x7975 . #xFA11)
+        (#x7976 . #x5D42)
+        (#x7977 . #x5D6D)
+        (#x7978 . #x5DB8)
+        (#x7979 . #x5DB9)
+        (#x797A . #x5DD0)
+        (#x797B . #x5F21)
+        (#x797C . #x5F34)
+        (#x797D . #x5F67)
+        (#x797E . #x5FB7)
+        (#x7A21 . #x5FDE)
+        (#x7A22 . #x605D)
+        (#x7A23 . #x6085)
+        (#x7A24 . #x608A)
+        (#x7A25 . #x60DE)
+        (#x7A26 . #x60D5)
+        (#x7A27 . #x6120)
+        (#x7A28 . #x60F2)
+        (#x7A29 . #x6111)
+        (#x7A2A . #x6137)
+        (#x7A2B . #x6130)
+        (#x7A2C . #x6198)
+        (#x7A2D . #x6213)
+        (#x7A2E . #x62A6)
+        (#x7A2F . #x63F5)
+        (#x7A30 . #x6460)
+        (#x7A31 . #x649D)
+        (#x7A32 . #x64CE)
+        (#x7A33 . #x654E)
+        (#x7A34 . #x6600)
+        (#x7A35 . #x6615)
+        (#x7A36 . #x663B)
+        (#x7A37 . #x6609)
+        (#x7A38 . #x662E)
+        (#x7A39 . #x661E)
+        (#x7A3A . #x6624)
+        (#x7A3B . #x6665)
+        (#x7A3C . #x6657)
+        (#x7A3D . #x6659)
+        (#x7A3E . #xFA12)
+        (#x7A3F . #x6673)
+        (#x7A40 . #x6699)
+        (#x7A41 . #x66A0)
+        (#x7A42 . #x66B2)
+        (#x7A43 . #x66BF)
+        (#x7A44 . #x66FA)
+        (#x7A45 . #x670E)
+        (#x7A46 . #xF929)
+        (#x7A47 . #x6766)
+        (#x7A48 . #x67BB)
+        (#x7A49 . #x6852)
+        (#x7A4A . #x67C0)
+        (#x7A4B . #x6801)
+        (#x7A4C . #x6844)
+        (#x7A4D . #x68CF)
+        (#x7A4E . #xFA13)
+        (#x7A4F . #x6968)
+        (#x7A50 . #xFA14)
+        (#x7A51 . #x6998)
+        (#x7A52 . #x69E2)
+        (#x7A53 . #x6A30)
+        (#x7A54 . #x6A6B)
+        (#x7A55 . #x6A46)
+        (#x7A56 . #x6A73)
+        (#x7A57 . #x6A7E)
+        (#x7A58 . #x6AE2)
+        (#x7A59 . #x6AE4)
+        (#x7A5A . #x6BD6)
+        (#x7A5B . #x6C3F)
+        (#x7A5C . #x6C5C)
+        (#x7A5D . #x6C86)
+        (#x7A5E . #x6C6F)
+        (#x7A5F . #x6CDA)
+        (#x7A60 . #x6D04)
+        (#x7A61 . #x6D87)
+        (#x7A62 . #x6D6F)
+        (#x7A63 . #x6D96)
+        (#x7A64 . #x6DAC)
+        (#x7A65 . #x6DCF)
+        (#x7A66 . #x6DF8)
+        (#x7A67 . #x6DF2)
+        (#x7A68 . #x6DFC)
+        (#x7A69 . #x6E39)
+        (#x7A6A . #x6E5C)
+        (#x7A6B . #x6E27)
+        (#x7A6C . #x6E3C)
+        (#x7A6D . #x6EBF)
+        (#x7A6E . #x6F88)
+        (#x7A6F . #x6FB5)
+        (#x7A70 . #x6FF5)
+        (#x7A71 . #x7005)
+        (#x7A72 . #x7007)
+        (#x7A73 . #x7028)
+        (#x7A74 . #x7085)
+        (#x7A75 . #x70AB)
+        (#x7A76 . #x710F)
+        (#x7A77 . #x7104)
+        (#x7A78 . #x715C)
+        (#x7A79 . #x7146)
+        (#x7A7A . #x7147)
+        (#x7A7B . #xFA15)
+        (#x7A7C . #x71C1)
+        (#x7A7D . #x71FE)
+        (#x7A7E . #x72B1)
+        (#x7B21 . #x72BE)
+        (#x7B22 . #x7324)
+        (#x7B23 . #xFA16)
+        (#x7B24 . #x7377)
+        (#x7B25 . #x73BD)
+        (#x7B26 . #x73C9)
+        (#x7B27 . #x73D6)
+        (#x7B28 . #x73E3)
+        (#x7B29 . #x73D2)
+        (#x7B2A . #x7407)
+        (#x7B2B . #x73F5)
+        (#x7B2C . #x7426)
+        (#x7B2D . #x742A)
+        (#x7B2E . #x7429)
+        (#x7B2F . #x742E)
+        (#x7B30 . #x7462)
+        (#x7B31 . #x7489)
+        (#x7B32 . #x749F)
+        (#x7B33 . #x7501)
+        (#x7B34 . #x756F)
+        (#x7B35 . #x7682)
+        (#x7B36 . #x769C)
+        (#x7B37 . #x769E)
+        (#x7B38 . #x769B)
+        (#x7B39 . #x76A6)
+        (#x7B3A . #xFA17)
+        (#x7B3B . #x7746)
+        (#x7B3C . #x52AF)
+        (#x7B3D . #x7821)
+        (#x7B3E . #x784E)
+        (#x7B3F . #x7864)
+        (#x7B40 . #x787A)
+        (#x7B41 . #x7930)
+        (#x7B42 . #xFA18)
+        (#x7B43 . #xFA19)
+        (#x7B44 . #xFA1A)
+        (#x7B45 . #x7994)
+        (#x7B46 . #xFA1B)
+        (#x7B47 . #x799B)
+        (#x7B48 . #x7AD1)
+        (#x7B49 . #x7AE7)
+        (#x7B4A . #xFA1C)
+        (#x7B4B . #x7AEB)
+        (#x7B4C . #x7B9E)
+        (#x7B4D . #xFA1D)
+        (#x7B4E . #x7D48)
+        (#x7B4F . #x7D5C)
+        (#x7B50 . #x7DB7)
+        (#x7B51 . #x7DA0)
+        (#x7B52 . #x7DD6)
+        (#x7B53 . #x7E52)
+        (#x7B54 . #x7F47)
+        (#x7B55 . #x7FA1)
+        (#x7B56 . #xFA1E)
+        (#x7B57 . #x8301)
+        (#x7B58 . #x8362)
+        (#x7B59 . #x837F)
+        (#x7B5A . #x83C7)
+        (#x7B5B . #x83F6)
+        (#x7B5C . #x8448)
+        (#x7B5D . #x84B4)
+        (#x7B5E . #x8553)
+        (#x7B5F . #x8559)
+        (#x7B60 . #x856B)
+        (#x7B61 . #xFA1F)
+        (#x7B62 . #x85B0)
+        (#x7B63 . #xFA20)
+        (#x7B64 . #xFA21)
+        (#x7B65 . #x8807)
+        (#x7B66 . #x88F5)
+        (#x7B67 . #x8A12)
+        (#x7B68 . #x8A37)
+        (#x7B69 . #x8A79)
+        (#x7B6A . #x8AA7)
+        (#x7B6B . #x8ABE)
+        (#x7B6C . #x8ADF)
+        (#x7B6D . #xFA22)
+        (#x7B6E . #x8AF6)
+        (#x7B6F . #x8B53)
+        (#x7B70 . #x8B7F)
+        (#x7B71 . #x8CF0)
+        (#x7B72 . #x8CF4)
+        (#x7B73 . #x8D12)
+        (#x7B74 . #x8D76)
+        (#x7B75 . #xFA23)
+        (#x7B76 . #x8ECF)
+        (#x7B77 . #xFA24)
+        (#x7B78 . #xFA25)
+        (#x7B79 . #x9067)
+        (#x7B7A . #x90DE)
+        (#x7B7B . #xFA26)
+        (#x7B7C . #x9115)
+        (#x7B7D . #x9127)
+        (#x7B7E . #x91DA)
+        (#x7C21 . #x91D7)
+        (#x7C22 . #x91DE)
+        (#x7C23 . #x91ED)
+        (#x7C24 . #x91EE)
+        (#x7C25 . #x91E4)
+        (#x7C26 . #x91E5)
+        (#x7C27 . #x9206)
+        (#x7C28 . #x9210)
+        (#x7C29 . #x920A)
+        (#x7C2A . #x923A)
+        (#x7C2B . #x9240)
+        (#x7C2C . #x923C)
+        (#x7C2D . #x924E)
+        (#x7C2E . #x9259)
+        (#x7C2F . #x9251)
+        (#x7C30 . #x9239)
+        (#x7C31 . #x9267)
+        (#x7C32 . #x92A7)
+        (#x7C33 . #x9277)
+        (#x7C34 . #x9278)
+        (#x7C35 . #x92E7)
+        (#x7C36 . #x92D7)
+        (#x7C37 . #x92D9)
+        (#x7C38 . #x92D0)
+        (#x7C39 . #xFA27)
+        (#x7C3A . #x92D5)
+        (#x7C3B . #x92E0)
+        (#x7C3C . #x92D3)
+        (#x7C3D . #x9325)
+        (#x7C3E . #x9321)
+        (#x7C3F . #x92FB)
+        (#x7C40 . #xFA28)
+        (#x7C41 . #x931E)
+        (#x7C42 . #x92FF)
+        (#x7C43 . #x931D)
+        (#x7C44 . #x9302)
+        (#x7C45 . #x9370)
+        (#x7C46 . #x9357)
+        (#x7C47 . #x93A4)
+        (#x7C48 . #x93C6)
+        (#x7C49 . #x93DE)
+        (#x7C4A . #x93F8)
+        (#x7C4B . #x9431)
+        (#x7C4C . #x9445)
+        (#x7C4D . #x9448)
+        (#x7C4E . #x9592)
+        (#x7C4F . #xF9DC)
+        (#x7C50 . #xFA29)
+        (#x7C51 . #x969D)
+        (#x7C52 . #x96AF)
+        (#x7C53 . #x9733)
+        (#x7C54 . #x973B)
+        (#x7C55 . #x9743)
+        (#x7C56 . #x974D)
+        (#x7C57 . #x974F)
+        (#x7C58 . #x9751)
+        (#x7C59 . #x9755)
+        (#x7C5A . #x9857)
+        (#x7C5B . #x9865)
+        (#x7C5C . #xFA2A)
+        (#x7C5D . #xFA2B)
+        (#x7C5E . #x9927)
+        (#x7C5F . #xFA2C)
+        (#x7C60 . #x999E)
+        (#x7C61 . #x9A4E)
+        (#x7C62 . #x9AD9)
+        (#x7C63 . #x9ADC)
+        (#x7C64 . #x9B75)
+        (#x7C65 . #x9B72)
+        (#x7C66 . #x9B8F)
+        (#x7C67 . #x9BB1)
+        (#x7C68 . #x9BBB)
+        (#x7C69 . #x9C00)
+        (#x7C6A . #x9D70)
+        (#x7C6B . #x9D6B)
+        (#x7C6C . #xFA2D)
+        (#x7C6D . #x9E19)
+        (#x7C6E . #x9ED1)
+        (#x7C71 . #x2170)
+        (#x7C72 . #x2171)
+        (#x7C73 . #x2172)
+        (#x7C74 . #x2173)
+        (#x7C75 . #x2174)
+        (#x7C76 . #x2175)
+        (#x7C77 . #x2176)
+        (#x7C78 . #x2177)
+        (#x7C79 . #x2178)
+        (#x7C7A . #x2179)
+        (#x7C7B . #xFFE2)
+        (#x7C7C . #xFFE4)
+        (#x7C7D . #xFF07)
+        (#x7C7E . #xFF02))))
+  (mapc #'(lambda (x)
+           (setcar x (decode-char 'japanese-jisx0208 (car x))))
+       map)
+  (define-translation-table 'cp51932-decode map)
+  (mapc #'(lambda (x)
+           (let ((tmp (car x)))
+             (setcar x (cdr x)) (setcdr x tmp)))
+       map)
+  (define-translation-table 'cp51932-encode map))
+
+;;; arch-tag: d21c06e5-a548-4dda-8802-c2922ff19da3
index 5e690048aeb6d4c522cf310b97cb157a6de91e2d..d482b46525082e1c8a96d07cd03c17b627b47b03 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; This file is part of GNU Emacs.
 
@@ -167,7 +170,7 @@ The following key sequence may cause multilingual text insertion."
 
 (defun encoded-kbd-self-insert-ccl (ignore)
   (let ((str (char-to-string (encoded-kbd-last-key)))
-       (ccl (car (aref (coding-system-spec (keyboard-coding-system)) 4)))
+       (ccl (coding-system-get (keyboard-coding-system) :ccl-decoder))
        (vec [nil nil nil nil nil nil nil nil nil])
        result)
     (while (= (length (setq result (ccl-execute-on-string ccl vec str t))) 0)
@@ -175,12 +178,70 @@ The following key sequence may cause multilingual text insertion."
       (setq str (format "%s%c" str (read-char-exclusive))))
     (vector (aref result 0))))
 
+
+;; Decode list of codes in CODE-LIST by CHARSET and return the decoded
+;; characters.  If CODE-LIST is too short for the dimension of
+;; CHARSET, read new codes and append them to the tail of CODE-LIST.
+;; Return nil if CODE-LIST can't be decoded.
+
+(defun encoded-kbd-decode-code-list (charset code-list)
+  (let ((dimension (charset-dimension charset))
+       code)
+    (while (> dimension (length code-list))
+      (nconc code-list (list (read-char-exclusive))))
+    (setq code (car code-list))
+    (if (= dimension 1)
+       (decode-char charset code)
+      (setq code-list (cdr code-list)
+           code (logior (lsh code 8) (car code-list)))
+      (if (= dimension 2)
+         (decode-char charset code)
+       (setq code-list (cdr code-list)
+             code (logior (lsh code 8) (car code-list)))
+       (if (= dimension 3)
+           (decode-char charset code)
+         ;; As Emacs can't handle full 32-bit integer, we must give a
+         ;; cons of higher and lower 16-bit codes to decode-char.
+         (setq code (cons (lsh code -8)
+                          (logior (lsh (car code-list) 8) (cadr code-list))))
+         (decode-char charset code))))))
+
+(defun encoded-kbd-self-insert-charset (ignore)
+  (let ((charset-list
+        (coding-system-get (keyboard-coding-system) :charset-list))
+       (code-list (list (encoded-kbd-last-key)))
+       tail char)
+    (while (and charset-list (not char))
+      (setq char (encoded-kbd-decode-code-list (car charset-list) code-list)
+           charset-list (cdr charset-list)))
+    (if char
+       (vector char)
+      (setq unread-command-events (cdr code-list))
+      (vector (car code-list)))))
+
+(defun encoded-kbd-self-insert-utf-8 (arg)
+  (interactive "p")
+  (let ((char (encoded-kbd-last-key))
+       len)
+    (cond ((< char #xE0)
+          (setq len 1 char (logand char #x1F)))
+         ((< char #xF0)
+          (setq len 2 char (logand char #x0F)))
+         ((< char #xF8)
+          (setq len 3 char (logand char #x07)))
+         (t
+          (setq len 4 char 0)))
+    (while (> len 0)
+      (setq char (logior (lsh char 6) (logand (read-char-exclusive) #x3F))
+           len (1- len)))
+    (vector char)))
+
 (defun encoded-kbd-setup-keymap (keymap coding)
   ;; At first, reset the keymap.
   (define-key encoded-kbd-mode-map "\e" nil)
   ;; Then setup the keymap according to the keyboard coding system.
   (cond
-   ((eq (coding-system-type coding) 1) ; SJIS
+   ((eq (coding-system-type coding) 'shift-jis)
     (let ((i 128))
       (while (< i 256)
        (define-key keymap
@@ -188,46 +249,53 @@ The following key sequence may cause multilingual text insertion."
        (setq i (1+ i))))
     8)
 
-   ((eq (coding-system-type coding) 3) ; Big5
-    (let ((i 161))
-      (while (< i 255)
-       (define-key keymap
-         (vector i) 'encoded-kbd-self-insert-big5)
-       (setq i (1+ i))))
+   ((eq (coding-system-type coding) 'charset)
+    (dolist (elt (mapcar
+                 #'(lambda (x) 
+                     (let ((dim (charset-dimension x))
+                           (code-space (get-charset-property x :code-space)))
+                       (cons (aref code-space (* (1- dim) 2))
+                             (aref code-space (1+ (* (1- dim) 2))))))
+                 (coding-system-get coding :charset-list)))
+      (let ((from (max (car elt) 128))
+           (to (cdr elt)))
+       (while (<= from to)
+         (define-key keymap
+           (vector from) 'encoded-kbd-self-insert-charset)
+         (setq from (1+ from)))))
     8)
 
-   ((eq (coding-system-type coding) 2) ; ISO-2022
-    (let ((flags (coding-system-flags coding))
-         use-designation)
-      (if (aref flags 8)
+   ((eq (coding-system-type coding) 'iso-2022)
+    (let ((flags (coding-system-get coding :flags))
+         (designation (coding-system-get coding :designation)))
+      (if (memq 'locking-shift flags)
          nil                           ; Don't support locking-shift.
        (setq encoded-kbd-iso2022-designations (make-vector 4 nil)
              encoded-kbd-iso2022-invocations (make-vector 3 nil))
        (dotimes (i 4)
-         (if (aref flags i)
-             (if (charsetp (aref flags i))
+         (if (aref designation i)
+             (if (charsetp (aref designation i))
                  (aset encoded-kbd-iso2022-designations
-                       i (aref flags i))
-               (setq use-designation t)
-               (if (charsetp (car-safe (aref flags i)))
+                       i (aref designation i))
+               (if (charsetp (car-safe (aref designation i)))
                    (aset encoded-kbd-iso2022-designations
-                         i (car (aref flags i)))))))
+                         i (car (aref designation i)))))))
        (aset encoded-kbd-iso2022-invocations 0 0)
        (if (aref encoded-kbd-iso2022-designations 1)
            (aset encoded-kbd-iso2022-invocations 1 1))
-       (when use-designation
+       (when (memq 'designation flags)
          (define-key encoded-kbd-mode-map "\e" 'encoded-kbd-iso2022-esc-prefix)
          (define-key keymap "\e" 'encoded-kbd-iso2022-esc-prefix))
-       (when (or (aref flags 2) (aref flags 3))
+       (when (or (aref designation 2) (aref designation 3))
          (define-key keymap
            [?\216] 'encoded-kbd-iso2022-single-shift)
          (define-key keymap
            [?\217] 'encoded-kbd-iso2022-single-shift))
-       (or (eq (aref flags 0) 'ascii)
+       (or (eq (aref designation 0) 'ascii)
            (dotimes (i 96)
              (define-key keymap
                (vector (+ 32 i)) 'encoded-kbd-self-insert-iso2022-7bit)))
-       (if (aref flags 7)
+       (if (memq '7-bit flags)
            t
          (dotimes (i 96)
            (define-key keymap
@@ -235,7 +303,7 @@ The following key sequence may cause multilingual text insertion."
          8))))
 
    ((eq (coding-system-type coding) 4) ; CCL-base
-    (let ((valid-codes (or (coding-system-get coding 'valid-codes)
+    (let ((valid-codes (or (coding-system-get coding :valid)
                           '((128 . 255))))
          elt from to valid)
       (while valid-codes
@@ -250,6 +318,14 @@ The following key sequence may cause multilingual text insertion."
          (setq from (1+ from))))
       8))
 
+   ((eq (coding-system-type coding) 'utf-8)
+    (let ((i #xC0))
+      (while (< i 256)
+       (define-key keymap
+         (vector i) 'encoded-kbd-self-insert-utf-8)
+       (setq i (1+ i))))
+    8)
+
    (t
     nil)))
 
diff --git a/lisp/international/eucjp-ms.el b/lisp/international/eucjp-ms.el
new file mode 100644 (file)
index 0000000..f8fee5b
--- /dev/null
@@ -0,0 +1,2087 @@
+;;; eucjp-ms.el -- translation table for eucJP-ms. -*- no-byte-compile: t -*-
+;;; Automatically genrated from eucJP-13th.txt, eucJP-udc.txt, eucJP-ibmext.txt
+(let ((map
+       '(;JISEXT<->UNICODE
+        (#x2d21 . #x2460)
+        (#x2d22 . #x2461)
+        (#x2d23 . #x2462)
+        (#x2d24 . #x2463)
+        (#x2d25 . #x2464)
+        (#x2d26 . #x2465)
+        (#x2d27 . #x2466)
+        (#x2d28 . #x2467)
+        (#x2d29 . #x2468)
+        (#x2d2a . #x2469)
+        (#x2d2b . #x246A)
+        (#x2d2c . #x246B)
+        (#x2d2d . #x246C)
+        (#x2d2e . #x246D)
+        (#x2d2f . #x246E)
+        (#x2d30 . #x246F)
+        (#x2d31 . #x2470)
+        (#x2d32 . #x2471)
+        (#x2d33 . #x2472)
+        (#x2d34 . #x2473)
+        (#x2d35 . #x2160)
+        (#x2d36 . #x2161)
+        (#x2d37 . #x2162)
+        (#x2d38 . #x2163)
+        (#x2d39 . #x2164)
+        (#x2d3a . #x2165)
+        (#x2d3b . #x2166)
+        (#x2d3c . #x2167)
+        (#x2d3d . #x2168)
+        (#x2d3e . #x2169)
+        (#x2d40 . #x3349)
+        (#x2d41 . #x3314)
+        (#x2d42 . #x3322)
+        (#x2d43 . #x334D)
+        (#x2d44 . #x3318)
+        (#x2d45 . #x3327)
+        (#x2d46 . #x3303)
+        (#x2d47 . #x3336)
+        (#x2d48 . #x3351)
+        (#x2d49 . #x3357)
+        (#x2d4a . #x330D)
+        (#x2d4b . #x3326)
+        (#x2d4c . #x3323)
+        (#x2d4d . #x332B)
+        (#x2d4e . #x334A)
+        (#x2d4f . #x333B)
+        (#x2d50 . #x339C)
+        (#x2d51 . #x339D)
+        (#x2d52 . #x339E)
+        (#x2d53 . #x338E)
+        (#x2d54 . #x338F)
+        (#x2d55 . #x33C4)
+        (#x2d56 . #x33A1)
+        (#x2d5f . #x337B)
+        (#x2d60 . #x301D)
+        (#x2d61 . #x301F)
+        (#x2d62 . #x2116)
+        (#x2d63 . #x33CD)
+        (#x2d64 . #x2121)
+        (#x2d65 . #x32A4)
+        (#x2d66 . #x32A5)
+        (#x2d67 . #x32A6)
+        (#x2d68 . #x32A7)
+        (#x2d69 . #x32A8)
+        (#x2d6a . #x3231)
+        (#x2d6b . #x3232)
+        (#x2d6c . #x3239)
+        (#x2d6d . #x337E)
+        (#x2d6e . #x337D)
+        (#x2d6f . #x337C)
+        (#x2d70 . #x2252)
+        (#x2d71 . #x2261)
+        (#x2d72 . #x222B)
+        (#x2d73 . #x222E)
+        (#x2d74 . #x2211)
+        (#x2d75 . #x221A)
+        (#x2d76 . #x22A5)
+        (#x2d77 . #x2220)
+        (#x2d78 . #x221F)
+        (#x2d79 . #x22BF)
+        (#x2d7a . #x2235)
+        (#x2d7b . #x2229)
+        (#x2d7c . #x222A)
+        (#x7521 . #xE000)
+        (#x7522 . #xE001)
+        (#x7523 . #xE002)
+        (#x7524 . #xE003)
+        (#x7525 . #xE004)
+        (#x7526 . #xE005)
+        (#x7527 . #xE006)
+        (#x7528 . #xE007)
+        (#x7529 . #xE008)
+        (#x752a . #xE009)
+        (#x752b . #xE00A)
+        (#x752c . #xE00B)
+        (#x752d . #xE00C)
+        (#x752e . #xE00D)
+        (#x752f . #xE00E)
+        (#x7530 . #xE00F)
+        (#x7531 . #xE010)
+        (#x7532 . #xE011)
+        (#x7533 . #xE012)
+        (#x7534 . #xE013)
+        (#x7535 . #xE014)
+        (#x7536 . #xE015)
+        (#x7537 . #xE016)
+        (#x7538 . #xE017)
+        (#x7539 . #xE018)
+        (#x753a . #xE019)
+        (#x753b . #xE01A)
+        (#x753c . #xE01B)
+        (#x753d . #xE01C)
+        (#x753e . #xE01D)
+        (#x753f . #xE01E)
+        (#x7540 . #xE01F)
+        (#x7541 . #xE020)
+        (#x7542 . #xE021)
+        (#x7543 . #xE022)
+        (#x7544 . #xE023)
+        (#x7545 . #xE024)
+        (#x7546 . #xE025)
+        (#x7547 . #xE026)
+        (#x7548 . #xE027)
+        (#x7549 . #xE028)
+        (#x754a . #xE029)
+        (#x754b . #xE02A)
+        (#x754c . #xE02B)
+        (#x754d . #xE02C)
+        (#x754e . #xE02D)
+        (#x754f . #xE02E)
+        (#x7550 . #xE02F)
+        (#x7551 . #xE030)
+        (#x7552 . #xE031)
+        (#x7553 . #xE032)
+        (#x7554 . #xE033)
+        (#x7555 . #xE034)
+        (#x7556 . #xE035)
+        (#x7557 . #xE036)
+        (#x7558 . #xE037)
+        (#x7559 . #xE038)
+        (#x755a . #xE039)
+        (#x755b . #xE03A)
+        (#x755c . #xE03B)
+        (#x755d . #xE03C)
+        (#x755e . #xE03D)
+        (#x755f . #xE03E)
+        (#x7560 . #xE03F)
+        (#x7561 . #xE040)
+        (#x7562 . #xE041)
+        (#x7563 . #xE042)
+        (#x7564 . #xE043)
+        (#x7565 . #xE044)
+        (#x7566 . #xE045)
+        (#x7567 . #xE046)
+        (#x7568 . #xE047)
+        (#x7569 . #xE048)
+        (#x756a . #xE049)
+        (#x756b . #xE04A)
+        (#x756c . #xE04B)
+        (#x756d . #xE04C)
+        (#x756e . #xE04D)
+        (#x756f . #xE04E)
+        (#x7570 . #xE04F)
+        (#x7571 . #xE050)
+        (#x7572 . #xE051)
+        (#x7573 . #xE052)
+        (#x7574 . #xE053)
+        (#x7575 . #xE054)
+        (#x7576 . #xE055)
+        (#x7577 . #xE056)
+        (#x7578 . #xE057)
+        (#x7579 . #xE058)
+        (#x757a . #xE059)
+        (#x757b . #xE05A)
+        (#x757c . #xE05B)
+        (#x757d . #xE05C)
+        (#x757e . #xE05D)
+        (#x7621 . #xE05E)
+        (#x7622 . #xE05F)
+        (#x7623 . #xE060)
+        (#x7624 . #xE061)
+        (#x7625 . #xE062)
+        (#x7626 . #xE063)
+        (#x7627 . #xE064)
+        (#x7628 . #xE065)
+        (#x7629 . #xE066)
+        (#x762a . #xE067)
+        (#x762b . #xE068)
+        (#x762c . #xE069)
+        (#x762d . #xE06A)
+        (#x762e . #xE06B)
+        (#x762f . #xE06C)
+        (#x7630 . #xE06D)
+        (#x7631 . #xE06E)
+        (#x7632 . #xE06F)
+        (#x7633 . #xE070)
+        (#x7634 . #xE071)
+        (#x7635 . #xE072)
+        (#x7636 . #xE073)
+        (#x7637 . #xE074)
+        (#x7638 . #xE075)
+        (#x7639 . #xE076)
+        (#x763a . #xE077)
+        (#x763b . #xE078)
+        (#x763c . #xE079)
+        (#x763d . #xE07A)
+        (#x763e . #xE07B)
+        (#x763f . #xE07C)
+        (#x7640 . #xE07D)
+        (#x7641 . #xE07E)
+        (#x7642 . #xE07F)
+        (#x7643 . #xE080)
+        (#x7644 . #xE081)
+        (#x7645 . #xE082)
+        (#x7646 . #xE083)
+        (#x7647 . #xE084)
+        (#x7648 . #xE085)
+        (#x7649 . #xE086)
+        (#x764a . #xE087)
+        (#x764b . #xE088)
+        (#x764c . #xE089)
+        (#x764d . #xE08A)
+        (#x764e . #xE08B)
+        (#x764f . #xE08C)
+        (#x7650 . #xE08D)
+        (#x7651 . #xE08E)
+        (#x7652 . #xE08F)
+        (#x7653 . #xE090)
+        (#x7654 . #xE091)
+        (#x7655 . #xE092)
+        (#x7656 . #xE093)
+        (#x7657 . #xE094)
+        (#x7658 . #xE095)
+        (#x7659 . #xE096)
+        (#x765a . #xE097)
+        (#x765b . #xE098)
+        (#x765c . #xE099)
+        (#x765d . #xE09A)
+        (#x765e . #xE09B)
+        (#x765f . #xE09C)
+        (#x7660 . #xE09D)
+        (#x7661 . #xE09E)
+        (#x7662 . #xE09F)
+        (#x7663 . #xE0A0)
+        (#x7664 . #xE0A1)
+        (#x7665 . #xE0A2)
+        (#x7666 . #xE0A3)
+        (#x7667 . #xE0A4)
+        (#x7668 . #xE0A5)
+        (#x7669 . #xE0A6)
+        (#x766a . #xE0A7)
+        (#x766b . #xE0A8)
+        (#x766c . #xE0A9)
+        (#x766d . #xE0AA)
+        (#x766e . #xE0AB)
+        (#x766f . #xE0AC)
+        (#x7670 . #xE0AD)
+        (#x7671 . #xE0AE)
+        (#x7672 . #xE0AF)
+        (#x7673 . #xE0B0)
+        (#x7674 . #xE0B1)
+        (#x7675 . #xE0B2)
+        (#x7676 . #xE0B3)
+        (#x7677 . #xE0B4)
+        (#x7678 . #xE0B5)
+        (#x7679 . #xE0B6)
+        (#x767a . #xE0B7)
+        (#x767b . #xE0B8)
+        (#x767c . #xE0B9)
+        (#x767d . #xE0BA)
+        (#x767e . #xE0BB)
+        (#x7721 . #xE0BC)
+        (#x7722 . #xE0BD)
+        (#x7723 . #xE0BE)
+        (#x7724 . #xE0BF)
+        (#x7725 . #xE0C0)
+        (#x7726 . #xE0C1)
+        (#x7727 . #xE0C2)
+        (#x7728 . #xE0C3)
+        (#x7729 . #xE0C4)
+        (#x772a . #xE0C5)
+        (#x772b . #xE0C6)
+        (#x772c . #xE0C7)
+        (#x772d . #xE0C8)
+        (#x772e . #xE0C9)
+        (#x772f . #xE0CA)
+        (#x7730 . #xE0CB)
+        (#x7731 . #xE0CC)
+        (#x7732 . #xE0CD)
+        (#x7733 . #xE0CE)
+        (#x7734 . #xE0CF)
+        (#x7735 . #xE0D0)
+        (#x7736 . #xE0D1)
+        (#x7737 . #xE0D2)
+        (#x7738 . #xE0D3)
+        (#x7739 . #xE0D4)
+        (#x773a . #xE0D5)
+        (#x773b . #xE0D6)
+        (#x773c . #xE0D7)
+        (#x773d . #xE0D8)
+        (#x773e . #xE0D9)
+        (#x773f . #xE0DA)
+        (#x7740 . #xE0DB)
+        (#x7741 . #xE0DC)
+        (#x7742 . #xE0DD)
+        (#x7743 . #xE0DE)
+        (#x7744 . #xE0DF)
+        (#x7745 . #xE0E0)
+        (#x7746 . #xE0E1)
+        (#x7747 . #xE0E2)
+        (#x7748 . #xE0E3)
+        (#x7749 . #xE0E4)
+        (#x774a . #xE0E5)
+        (#x774b . #xE0E6)
+        (#x774c . #xE0E7)
+        (#x774d . #xE0E8)
+        (#x774e . #xE0E9)
+        (#x774f . #xE0EA)
+        (#x7750 . #xE0EB)
+        (#x7751 . #xE0EC)
+        (#x7752 . #xE0ED)
+        (#x7753 . #xE0EE)
+        (#x7754 . #xE0EF)
+        (#x7755 . #xE0F0)
+        (#x7756 . #xE0F1)
+        (#x7757 . #xE0F2)
+        (#x7758 . #xE0F3)
+        (#x7759 . #xE0F4)
+        (#x775a . #xE0F5)
+        (#x775b . #xE0F6)
+        (#x775c . #xE0F7)
+        (#x775d . #xE0F8)
+        (#x775e . #xE0F9)
+        (#x775f . #xE0FA)
+        (#x7760 . #xE0FB)
+        (#x7761 . #xE0FC)
+        (#x7762 . #xE0FD)
+        (#x7763 . #xE0FE)
+        (#x7764 . #xE0FF)
+        (#x7765 . #xE100)
+        (#x7766 . #xE101)
+        (#x7767 . #xE102)
+        (#x7768 . #xE103)
+        (#x7769 . #xE104)
+        (#x776a . #xE105)
+        (#x776b . #xE106)
+        (#x776c . #xE107)
+        (#x776d . #xE108)
+        (#x776e . #xE109)
+        (#x776f . #xE10A)
+        (#x7770 . #xE10B)
+        (#x7771 . #xE10C)
+        (#x7772 . #xE10D)
+        (#x7773 . #xE10E)
+        (#x7774 . #xE10F)
+        (#x7775 . #xE110)
+        (#x7776 . #xE111)
+        (#x7777 . #xE112)
+        (#x7778 . #xE113)
+        (#x7779 . #xE114)
+        (#x777a . #xE115)
+        (#x777b . #xE116)
+        (#x777c . #xE117)
+        (#x777d . #xE118)
+        (#x777e . #xE119)
+        (#x7821 . #xE11A)
+        (#x7822 . #xE11B)
+        (#x7823 . #xE11C)
+        (#x7824 . #xE11D)
+        (#x7825 . #xE11E)
+        (#x7826 . #xE11F)
+        (#x7827 . #xE120)
+        (#x7828 . #xE121)
+        (#x7829 . #xE122)
+        (#x782a . #xE123)
+        (#x782b . #xE124)
+        (#x782c . #xE125)
+        (#x782d . #xE126)
+        (#x782e . #xE127)
+        (#x782f . #xE128)
+        (#x7830 . #xE129)
+        (#x7831 . #xE12A)
+        (#x7832 . #xE12B)
+        (#x7833 . #xE12C)
+        (#x7834 . #xE12D)
+        (#x7835 . #xE12E)
+        (#x7836 . #xE12F)
+        (#x7837 . #xE130)
+        (#x7838 . #xE131)
+        (#x7839 . #xE132)
+        (#x783a . #xE133)
+        (#x783b . #xE134)
+        (#x783c . #xE135)
+        (#x783d . #xE136)
+        (#x783e . #xE137)
+        (#x783f . #xE138)
+        (#x7840 . #xE139)
+        (#x7841 . #xE13A)
+        (#x7842 . #xE13B)
+        (#x7843 . #xE13C)
+        (#x7844 . #xE13D)
+        (#x7845 . #xE13E)
+        (#x7846 . #xE13F)
+        (#x7847 . #xE140)
+        (#x7848 . #xE141)
+        (#x7849 . #xE142)
+        (#x784a . #xE143)
+        (#x784b . #xE144)
+        (#x784c . #xE145)
+        (#x784d . #xE146)
+        (#x784e . #xE147)
+        (#x784f . #xE148)
+        (#x7850 . #xE149)
+        (#x7851 . #xE14A)
+        (#x7852 . #xE14B)
+        (#x7853 . #xE14C)
+        (#x7854 . #xE14D)
+        (#x7855 . #xE14E)
+        (#x7856 . #xE14F)
+        (#x7857 . #xE150)
+        (#x7858 . #xE151)
+        (#x7859 . #xE152)
+        (#x785a . #xE153)
+        (#x785b . #xE154)
+        (#x785c . #xE155)
+        (#x785d . #xE156)
+        (#x785e . #xE157)
+        (#x785f . #xE158)
+        (#x7860 . #xE159)
+        (#x7861 . #xE15A)
+        (#x7862 . #xE15B)
+        (#x7863 . #xE15C)
+        (#x7864 . #xE15D)
+        (#x7865 . #xE15E)
+        (#x7866 . #xE15F)
+        (#x7867 . #xE160)
+        (#x7868 . #xE161)
+        (#x7869 . #xE162)
+        (#x786a . #xE163)
+        (#x786b . #xE164)
+        (#x786c . #xE165)
+        (#x786d . #xE166)
+        (#x786e . #xE167)
+        (#x786f . #xE168)
+        (#x7870 . #xE169)
+        (#x7871 . #xE16A)
+        (#x7872 . #xE16B)
+        (#x7873 . #xE16C)
+        (#x7874 . #xE16D)
+        (#x7875 . #xE16E)
+        (#x7876 . #xE16F)
+        (#x7877 . #xE170)
+        (#x7878 . #xE171)
+        (#x7879 . #xE172)
+        (#x787a . #xE173)
+        (#x787b . #xE174)
+        (#x787c . #xE175)
+        (#x787d . #xE176)
+        (#x787e . #xE177)
+        (#x7921 . #xE178)
+        (#x7922 . #xE179)
+        (#x7923 . #xE17A)
+        (#x7924 . #xE17B)
+        (#x7925 . #xE17C)
+        (#x7926 . #xE17D)
+        (#x7927 . #xE17E)
+        (#x7928 . #xE17F)
+        (#x7929 . #xE180)
+        (#x792a . #xE181)
+        (#x792b . #xE182)
+        (#x792c . #xE183)
+        (#x792d . #xE184)
+        (#x792e . #xE185)
+        (#x792f . #xE186)
+        (#x7930 . #xE187)
+        (#x7931 . #xE188)
+        (#x7932 . #xE189)
+        (#x7933 . #xE18A)
+        (#x7934 . #xE18B)
+        (#x7935 . #xE18C)
+        (#x7936 . #xE18D)
+        (#x7937 . #xE18E)
+        (#x7938 . #xE18F)
+        (#x7939 . #xE190)
+        (#x793a . #xE191)
+        (#x793b . #xE192)
+        (#x793c . #xE193)
+        (#x793d . #xE194)
+        (#x793e . #xE195)
+        (#x793f . #xE196)
+        (#x7940 . #xE197)
+        (#x7941 . #xE198)
+        (#x7942 . #xE199)
+        (#x7943 . #xE19A)
+        (#x7944 . #xE19B)
+        (#x7945 . #xE19C)
+        (#x7946 . #xE19D)
+        (#x7947 . #xE19E)
+        (#x7948 . #xE19F)
+        (#x7949 . #xE1A0)
+        (#x794a . #xE1A1)
+        (#x794b . #xE1A2)
+        (#x794c . #xE1A3)
+        (#x794d . #xE1A4)
+        (#x794e . #xE1A5)
+        (#x794f . #xE1A6)
+        (#x7950 . #xE1A7)
+        (#x7951 . #xE1A8)
+        (#x7952 . #xE1A9)
+        (#x7953 . #xE1AA)
+        (#x7954 . #xE1AB)
+        (#x7955 . #xE1AC)
+        (#x7956 . #xE1AD)
+        (#x7957 . #xE1AE)
+        (#x7958 . #xE1AF)
+        (#x7959 . #xE1B0)
+        (#x795a . #xE1B1)
+        (#x795b . #xE1B2)
+        (#x795c . #xE1B3)
+        (#x795d . #xE1B4)
+        (#x795e . #xE1B5)
+        (#x795f . #xE1B6)
+        (#x7960 . #xE1B7)
+        (#x7961 . #xE1B8)
+        (#x7962 . #xE1B9)
+        (#x7963 . #xE1BA)
+        (#x7964 . #xE1BB)
+        (#x7965 . #xE1BC)
+        (#x7966 . #xE1BD)
+        (#x7967 . #xE1BE)
+        (#x7968 . #xE1BF)
+        (#x7969 . #xE1C0)
+        (#x796a . #xE1C1)
+        (#x796b . #xE1C2)
+        (#x796c . #xE1C3)
+        (#x796d . #xE1C4)
+        (#x796e . #xE1C5)
+        (#x796f . #xE1C6)
+        (#x7970 . #xE1C7)
+        (#x7971 . #xE1C8)
+        (#x7972 . #xE1C9)
+        (#x7973 . #xE1CA)
+        (#x7974 . #xE1CB)
+        (#x7975 . #xE1CC)
+        (#x7976 . #xE1CD)
+        (#x7977 . #xE1CE)
+        (#x7978 . #xE1CF)
+        (#x7979 . #xE1D0)
+        (#x797a . #xE1D1)
+        (#x797b . #xE1D2)
+        (#x797c . #xE1D3)
+        (#x797d . #xE1D4)
+        (#x797e . #xE1D5)
+        (#x7a21 . #xE1D6)
+        (#x7a22 . #xE1D7)
+        (#x7a23 . #xE1D8)
+        (#x7a24 . #xE1D9)
+        (#x7a25 . #xE1DA)
+        (#x7a26 . #xE1DB)
+        (#x7a27 . #xE1DC)
+        (#x7a28 . #xE1DD)
+        (#x7a29 . #xE1DE)
+        (#x7a2a . #xE1DF)
+        (#x7a2b . #xE1E0)
+        (#x7a2c . #xE1E1)
+        (#x7a2d . #xE1E2)
+        (#x7a2e . #xE1E3)
+        (#x7a2f . #xE1E4)
+        (#x7a30 . #xE1E5)
+        (#x7a31 . #xE1E6)
+        (#x7a32 . #xE1E7)
+        (#x7a33 . #xE1E8)
+        (#x7a34 . #xE1E9)
+        (#x7a35 . #xE1EA)
+        (#x7a36 . #xE1EB)
+        (#x7a37 . #xE1EC)
+        (#x7a38 . #xE1ED)
+        (#x7a39 . #xE1EE)
+        (#x7a3a . #xE1EF)
+        (#x7a3b . #xE1F0)
+        (#x7a3c . #xE1F1)
+        (#x7a3d . #xE1F2)
+        (#x7a3e . #xE1F3)
+        (#x7a3f . #xE1F4)
+        (#x7a40 . #xE1F5)
+        (#x7a41 . #xE1F6)
+        (#x7a42 . #xE1F7)
+        (#x7a43 . #xE1F8)
+        (#x7a44 . #xE1F9)
+        (#x7a45 . #xE1FA)
+        (#x7a46 . #xE1FB)
+        (#x7a47 . #xE1FC)
+        (#x7a48 . #xE1FD)
+        (#x7a49 . #xE1FE)
+        (#x7a4a . #xE1FF)
+        (#x7a4b . #xE200)
+        (#x7a4c . #xE201)
+        (#x7a4d . #xE202)
+        (#x7a4e . #xE203)
+        (#x7a4f . #xE204)
+        (#x7a50 . #xE205)
+        (#x7a51 . #xE206)
+        (#x7a52 . #xE207)
+        (#x7a53 . #xE208)
+        (#x7a54 . #xE209)
+        (#x7a55 . #xE20A)
+        (#x7a56 . #xE20B)
+        (#x7a57 . #xE20C)
+        (#x7a58 . #xE20D)
+        (#x7a59 . #xE20E)
+        (#x7a5a . #xE20F)
+        (#x7a5b . #xE210)
+        (#x7a5c . #xE211)
+        (#x7a5d . #xE212)
+        (#x7a5e . #xE213)
+        (#x7a5f . #xE214)
+        (#x7a60 . #xE215)
+        (#x7a61 . #xE216)
+        (#x7a62 . #xE217)
+        (#x7a63 . #xE218)
+        (#x7a64 . #xE219)
+        (#x7a65 . #xE21A)
+        (#x7a66 . #xE21B)
+        (#x7a67 . #xE21C)
+        (#x7a68 . #xE21D)
+        (#x7a69 . #xE21E)
+        (#x7a6a . #xE21F)
+        (#x7a6b . #xE220)
+        (#x7a6c . #xE221)
+        (#x7a6d . #xE222)
+        (#x7a6e . #xE223)
+        (#x7a6f . #xE224)
+        (#x7a70 . #xE225)
+        (#x7a71 . #xE226)
+        (#x7a72 . #xE227)
+        (#x7a73 . #xE228)
+        (#x7a74 . #xE229)
+        (#x7a75 . #xE22A)
+        (#x7a76 . #xE22B)
+        (#x7a77 . #xE22C)
+        (#x7a78 . #xE22D)
+        (#x7a79 . #xE22E)
+        (#x7a7a . #xE22F)
+        (#x7a7b . #xE230)
+        (#x7a7c . #xE231)
+        (#x7a7d . #xE232)
+        (#x7a7e . #xE233)
+        (#x7b21 . #xE234)
+        (#x7b22 . #xE235)
+        (#x7b23 . #xE236)
+        (#x7b24 . #xE237)
+        (#x7b25 . #xE238)
+        (#x7b26 . #xE239)
+        (#x7b27 . #xE23A)
+        (#x7b28 . #xE23B)
+        (#x7b29 . #xE23C)
+        (#x7b2a . #xE23D)
+        (#x7b2b . #xE23E)
+        (#x7b2c . #xE23F)
+        (#x7b2d . #xE240)
+        (#x7b2e . #xE241)
+        (#x7b2f . #xE242)
+        (#x7b30 . #xE243)
+        (#x7b31 . #xE244)
+        (#x7b32 . #xE245)
+        (#x7b33 . #xE246)
+        (#x7b34 . #xE247)
+        (#x7b35 . #xE248)
+        (#x7b36 . #xE249)
+        (#x7b37 . #xE24A)
+        (#x7b38 . #xE24B)
+        (#x7b39 . #xE24C)
+        (#x7b3a . #xE24D)
+        (#x7b3b . #xE24E)
+        (#x7b3c . #xE24F)
+        (#x7b3d . #xE250)
+        (#x7b3e . #xE251)
+        (#x7b3f . #xE252)
+        (#x7b40 . #xE253)
+        (#x7b41 . #xE254)
+        (#x7b42 . #xE255)
+        (#x7b43 . #xE256)
+        (#x7b44 . #xE257)
+        (#x7b45 . #xE258)
+        (#x7b46 . #xE259)
+        (#x7b47 . #xE25A)
+        (#x7b48 . #xE25B)
+        (#x7b49 . #xE25C)
+        (#x7b4a . #xE25D)
+        (#x7b4b . #xE25E)
+        (#x7b4c . #xE25F)
+        (#x7b4d . #xE260)
+        (#x7b4e . #xE261)
+        (#x7b4f . #xE262)
+        (#x7b50 . #xE263)
+        (#x7b51 . #xE264)
+        (#x7b52 . #xE265)
+        (#x7b53 . #xE266)
+        (#x7b54 . #xE267)
+        (#x7b55 . #xE268)
+        (#x7b56 . #xE269)
+        (#x7b57 . #xE26A)
+        (#x7b58 . #xE26B)
+        (#x7b59 . #xE26C)
+        (#x7b5a . #xE26D)
+        (#x7b5b . #xE26E)
+        (#x7b5c . #xE26F)
+        (#x7b5d . #xE270)
+        (#x7b5e . #xE271)
+        (#x7b5f . #xE272)
+        (#x7b60 . #xE273)
+        (#x7b61 . #xE274)
+        (#x7b62 . #xE275)
+        (#x7b63 . #xE276)
+        (#x7b64 . #xE277)
+        (#x7b65 . #xE278)
+        (#x7b66 . #xE279)
+        (#x7b67 . #xE27A)
+        (#x7b68 . #xE27B)
+        (#x7b69 . #xE27C)
+        (#x7b6a . #xE27D)
+        (#x7b6b . #xE27E)
+        (#x7b6c . #xE27F)
+        (#x7b6d . #xE280)
+        (#x7b6e . #xE281)
+        (#x7b6f . #xE282)
+        (#x7b70 . #xE283)
+        (#x7b71 . #xE284)
+        (#x7b72 . #xE285)
+        (#x7b73 . #xE286)
+        (#x7b74 . #xE287)
+        (#x7b75 . #xE288)
+        (#x7b76 . #xE289)
+        (#x7b77 . #xE28A)
+        (#x7b78 . #xE28B)
+        (#x7b79 . #xE28C)
+        (#x7b7a . #xE28D)
+        (#x7b7b . #xE28E)
+        (#x7b7c . #xE28F)
+        (#x7b7d . #xE290)
+        (#x7b7e . #xE291)
+        (#x7c21 . #xE292)
+        (#x7c22 . #xE293)
+        (#x7c23 . #xE294)
+        (#x7c24 . #xE295)
+        (#x7c25 . #xE296)
+        (#x7c26 . #xE297)
+        (#x7c27 . #xE298)
+        (#x7c28 . #xE299)
+        (#x7c29 . #xE29A)
+        (#x7c2a . #xE29B)
+        (#x7c2b . #xE29C)
+        (#x7c2c . #xE29D)
+        (#x7c2d . #xE29E)
+        (#x7c2e . #xE29F)
+        (#x7c2f . #xE2A0)
+        (#x7c30 . #xE2A1)
+        (#x7c31 . #xE2A2)
+        (#x7c32 . #xE2A3)
+        (#x7c33 . #xE2A4)
+        (#x7c34 . #xE2A5)
+        (#x7c35 . #xE2A6)
+        (#x7c36 . #xE2A7)
+        (#x7c37 . #xE2A8)
+        (#x7c38 . #xE2A9)
+        (#x7c39 . #xE2AA)
+        (#x7c3a . #xE2AB)
+        (#x7c3b . #xE2AC)
+        (#x7c3c . #xE2AD)
+        (#x7c3d . #xE2AE)
+        (#x7c3e . #xE2AF)
+        (#x7c3f . #xE2B0)
+        (#x7c40 . #xE2B1)
+        (#x7c41 . #xE2B2)
+        (#x7c42 . #xE2B3)
+        (#x7c43 . #xE2B4)
+        (#x7c44 . #xE2B5)
+        (#x7c45 . #xE2B6)
+        (#x7c46 . #xE2B7)
+        (#x7c47 . #xE2B8)
+        (#x7c48 . #xE2B9)
+        (#x7c49 . #xE2BA)
+        (#x7c4a . #xE2BB)
+        (#x7c4b . #xE2BC)
+        (#x7c4c . #xE2BD)
+        (#x7c4d . #xE2BE)
+        (#x7c4e . #xE2BF)
+        (#x7c4f . #xE2C0)
+        (#x7c50 . #xE2C1)
+        (#x7c51 . #xE2C2)
+        (#x7c52 . #xE2C3)
+        (#x7c53 . #xE2C4)
+        (#x7c54 . #xE2C5)
+        (#x7c55 . #xE2C6)
+        (#x7c56 . #xE2C7)
+        (#x7c57 . #xE2C8)
+        (#x7c58 . #xE2C9)
+        (#x7c59 . #xE2CA)
+        (#x7c5a . #xE2CB)
+        (#x7c5b . #xE2CC)
+        (#x7c5c . #xE2CD)
+        (#x7c5d . #xE2CE)
+        (#x7c5e . #xE2CF)
+        (#x7c5f . #xE2D0)
+        (#x7c60 . #xE2D1)
+        (#x7c61 . #xE2D2)
+        (#x7c62 . #xE2D3)
+        (#x7c63 . #xE2D4)
+        (#x7c64 . #xE2D5)
+        (#x7c65 . #xE2D6)
+        (#x7c66 . #xE2D7)
+        (#x7c67 . #xE2D8)
+        (#x7c68 . #xE2D9)
+        (#x7c69 . #xE2DA)
+        (#x7c6a . #xE2DB)
+        (#x7c6b . #xE2DC)
+        (#x7c6c . #xE2DD)
+        (#x7c6d . #xE2DE)
+        (#x7c6e . #xE2DF)
+        (#x7c6f . #xE2E0)
+        (#x7c70 . #xE2E1)
+        (#x7c71 . #xE2E2)
+        (#x7c72 . #xE2E3)
+        (#x7c73 . #xE2E4)
+        (#x7c74 . #xE2E5)
+        (#x7c75 . #xE2E6)
+        (#x7c76 . #xE2E7)
+        (#x7c77 . #xE2E8)
+        (#x7c78 . #xE2E9)
+        (#x7c79 . #xE2EA)
+        (#x7c7a . #xE2EB)
+        (#x7c7b . #xE2EC)
+        (#x7c7c . #xE2ED)
+        (#x7c7d . #xE2EE)
+        (#x7c7e . #xE2EF)
+        (#x7d21 . #xE2F0)
+        (#x7d22 . #xE2F1)
+        (#x7d23 . #xE2F2)
+        (#x7d24 . #xE2F3)
+        (#x7d25 . #xE2F4)
+        (#x7d26 . #xE2F5)
+        (#x7d27 . #xE2F6)
+        (#x7d28 . #xE2F7)
+        (#x7d29 . #xE2F8)
+        (#x7d2a . #xE2F9)
+        (#x7d2b . #xE2FA)
+        (#x7d2c . #xE2FB)
+        (#x7d2d . #xE2FC)
+        (#x7d2e . #xE2FD)
+        (#x7d2f . #xE2FE)
+        (#x7d30 . #xE2FF)
+        (#x7d31 . #xE300)
+        (#x7d32 . #xE301)
+        (#x7d33 . #xE302)
+        (#x7d34 . #xE303)
+        (#x7d35 . #xE304)
+        (#x7d36 . #xE305)
+        (#x7d37 . #xE306)
+        (#x7d38 . #xE307)
+        (#x7d39 . #xE308)
+        (#x7d3a . #xE309)
+        (#x7d3b . #xE30A)
+        (#x7d3c . #xE30B)
+        (#x7d3d . #xE30C)
+        (#x7d3e . #xE30D)
+        (#x7d3f . #xE30E)
+        (#x7d40 . #xE30F)
+        (#x7d41 . #xE310)
+        (#x7d42 . #xE311)
+        (#x7d43 . #xE312)
+        (#x7d44 . #xE313)
+        (#x7d45 . #xE314)
+        (#x7d46 . #xE315)
+        (#x7d47 . #xE316)
+        (#x7d48 . #xE317)
+        (#x7d49 . #xE318)
+        (#x7d4a . #xE319)
+        (#x7d4b . #xE31A)
+        (#x7d4c . #xE31B)
+        (#x7d4d . #xE31C)
+        (#x7d4e . #xE31D)
+        (#x7d4f . #xE31E)
+        (#x7d50 . #xE31F)
+        (#x7d51 . #xE320)
+        (#x7d52 . #xE321)
+        (#x7d53 . #xE322)
+        (#x7d54 . #xE323)
+        (#x7d55 . #xE324)
+        (#x7d56 . #xE325)
+        (#x7d57 . #xE326)
+        (#x7d58 . #xE327)
+        (#x7d59 . #xE328)
+        (#x7d5a . #xE329)
+        (#x7d5b . #xE32A)
+        (#x7d5c . #xE32B)
+        (#x7d5d . #xE32C)
+        (#x7d5e . #xE32D)
+        (#x7d5f . #xE32E)
+        (#x7d60 . #xE32F)
+        (#x7d61 . #xE330)
+        (#x7d62 . #xE331)
+        (#x7d63 . #xE332)
+        (#x7d64 . #xE333)
+        (#x7d65 . #xE334)
+        (#x7d66 . #xE335)
+        (#x7d67 . #xE336)
+        (#x7d68 . #xE337)
+        (#x7d69 . #xE338)
+        (#x7d6a . #xE339)
+        (#x7d6b . #xE33A)
+        (#x7d6c . #xE33B)
+        (#x7d6d . #xE33C)
+        (#x7d6e . #xE33D)
+        (#x7d6f . #xE33E)
+        (#x7d70 . #xE33F)
+        (#x7d71 . #xE340)
+        (#x7d72 . #xE341)
+        (#x7d73 . #xE342)
+        (#x7d74 . #xE343)
+        (#x7d75 . #xE344)
+        (#x7d76 . #xE345)
+        (#x7d77 . #xE346)
+        (#x7d78 . #xE347)
+        (#x7d79 . #xE348)
+        (#x7d7a . #xE349)
+        (#x7d7b . #xE34A)
+        (#x7d7c . #xE34B)
+        (#x7d7d . #xE34C)
+        (#x7d7e . #xE34D)
+        (#x7e21 . #xE34E)
+        (#x7e22 . #xE34F)
+        (#x7e23 . #xE350)
+        (#x7e24 . #xE351)
+        (#x7e25 . #xE352)
+        (#x7e26 . #xE353)
+        (#x7e27 . #xE354)
+        (#x7e28 . #xE355)
+        (#x7e29 . #xE356)
+        (#x7e2a . #xE357)
+        (#x7e2b . #xE358)
+        (#x7e2c . #xE359)
+        (#x7e2d . #xE35A)
+        (#x7e2e . #xE35B)
+        (#x7e2f . #xE35C)
+        (#x7e30 . #xE35D)
+        (#x7e31 . #xE35E)
+        (#x7e32 . #xE35F)
+        (#x7e33 . #xE360)
+        (#x7e34 . #xE361)
+        (#x7e35 . #xE362)
+        (#x7e36 . #xE363)
+        (#x7e37 . #xE364)
+        (#x7e38 . #xE365)
+        (#x7e39 . #xE366)
+        (#x7e3a . #xE367)
+        (#x7e3b . #xE368)
+        (#x7e3c . #xE369)
+        (#x7e3d . #xE36A)
+        (#x7e3e . #xE36B)
+        (#x7e3f . #xE36C)
+        (#x7e40 . #xE36D)
+        (#x7e41 . #xE36E)
+        (#x7e42 . #xE36F)
+        (#x7e43 . #xE370)
+        (#x7e44 . #xE371)
+        (#x7e45 . #xE372)
+        (#x7e46 . #xE373)
+        (#x7e47 . #xE374)
+        (#x7e48 . #xE375)
+        (#x7e49 . #xE376)
+        (#x7e4a . #xE377)
+        (#x7e4b . #xE378)
+        (#x7e4c . #xE379)
+        (#x7e4d . #xE37A)
+        (#x7e4e . #xE37B)
+        (#x7e4f . #xE37C)
+        (#x7e50 . #xE37D)
+        (#x7e51 . #xE37E)
+        (#x7e52 . #xE37F)
+        (#x7e53 . #xE380)
+        (#x7e54 . #xE381)
+        (#x7e55 . #xE382)
+        (#x7e56 . #xE383)
+        (#x7e57 . #xE384)
+        (#x7e58 . #xE385)
+        (#x7e59 . #xE386)
+        (#x7e5a . #xE387)
+        (#x7e5b . #xE388)
+        (#x7e5c . #xE389)
+        (#x7e5d . #xE38A)
+        (#x7e5e . #xE38B)
+        (#x7e5f . #xE38C)
+        (#x7e60 . #xE38D)
+        (#x7e61 . #xE38E)
+        (#x7e62 . #xE38F)
+        (#x7e63 . #xE390)
+        (#x7e64 . #xE391)
+        (#x7e65 . #xE392)
+        (#x7e66 . #xE393)
+        (#x7e67 . #xE394)
+        (#x7e68 . #xE395)
+        (#x7e69 . #xE396)
+        (#x7e6a . #xE397)
+        (#x7e6b . #xE398)
+        (#x7e6c . #xE399)
+        (#x7e6d . #xE39A)
+        (#x7e6e . #xE39B)
+        (#x7e6f . #xE39C)
+        (#x7e70 . #xE39D)
+        (#x7e71 . #xE39E)
+        (#x7e72 . #xE39F)
+        (#x7e73 . #xE3A0)
+        (#x7e74 . #xE3A1)
+        (#x7e75 . #xE3A2)
+        (#x7e76 . #xE3A3)
+        (#x7e77 . #xE3A4)
+        (#x7e78 . #xE3A5)
+        (#x7e79 . #xE3A6)
+        (#x7e7a . #xE3A7)
+        (#x7e7b . #xE3A8)
+        (#x7e7c . #xE3A9)
+        (#x7e7d . #xE3AA)
+        (#x7e7e . #xE3AB)
+        (#x7521 #xE3AC)
+        (#x7522 #xE3AD)
+        (#x7523 #xE3AE)
+        (#x7524 #xE3AF)
+        (#x7525 #xE3B0)
+        (#x7526 #xE3B1)
+        (#x7527 #xE3B2)
+        (#x7528 #xE3B3)
+        (#x7529 #xE3B4)
+        (#x752a #xE3B5)
+        (#x752b #xE3B6)
+        (#x752c #xE3B7)
+        (#x752d #xE3B8)
+        (#x752e #xE3B9)
+        (#x752f #xE3BA)
+        (#x7530 #xE3BB)
+        (#x7531 #xE3BC)
+        (#x7532 #xE3BD)
+        (#x7533 #xE3BE)
+        (#x7534 #xE3BF)
+        (#x7535 #xE3C0)
+        (#x7536 #xE3C1)
+        (#x7537 #xE3C2)
+        (#x7538 #xE3C3)
+        (#x7539 #xE3C4)
+        (#x753a #xE3C5)
+        (#x753b #xE3C6)
+        (#x753c #xE3C7)
+        (#x753d #xE3C8)
+        (#x753e #xE3C9)
+        (#x753f #xE3CA)
+        (#x7540 #xE3CB)
+        (#x7541 #xE3CC)
+        (#x7542 #xE3CD)
+        (#x7543 #xE3CE)
+        (#x7544 #xE3CF)
+        (#x7545 #xE3D0)
+        (#x7546 #xE3D1)
+        (#x7547 #xE3D2)
+        (#x7548 #xE3D3)
+        (#x7549 #xE3D4)
+        (#x754a #xE3D5)
+        (#x754b #xE3D6)
+        (#x754c #xE3D7)
+        (#x754d #xE3D8)
+        (#x754e #xE3D9)
+        (#x754f #xE3DA)
+        (#x7550 #xE3DB)
+        (#x7551 #xE3DC)
+        (#x7552 #xE3DD)
+        (#x7553 #xE3DE)
+        (#x7554 #xE3DF)
+        (#x7555 #xE3E0)
+        (#x7556 #xE3E1)
+        (#x7557 #xE3E2)
+        (#x7558 #xE3E3)
+        (#x7559 #xE3E4)
+        (#x755a #xE3E5)
+        (#x755b #xE3E6)
+        (#x755c #xE3E7)
+        (#x755d #xE3E8)
+        (#x755e #xE3E9)
+        (#x755f #xE3EA)
+        (#x7560 #xE3EB)
+        (#x7561 #xE3EC)
+        (#x7562 #xE3ED)
+        (#x7563 #xE3EE)
+        (#x7564 #xE3EF)
+        (#x7565 #xE3F0)
+        (#x7566 #xE3F1)
+        (#x7567 #xE3F2)
+        (#x7568 #xE3F3)
+        (#x7569 #xE3F4)
+        (#x756a #xE3F5)
+        (#x756b #xE3F6)
+        (#x756c #xE3F7)
+        (#x756d #xE3F8)
+        (#x756e #xE3F9)
+        (#x756f #xE3FA)
+        (#x7570 #xE3FB)
+        (#x7571 #xE3FC)
+        (#x7572 #xE3FD)
+        (#x7573 #xE3FE)
+        (#x7574 #xE3FF)
+        (#x7575 #xE400)
+        (#x7576 #xE401)
+        (#x7577 #xE402)
+        (#x7578 #xE403)
+        (#x7579 #xE404)
+        (#x757a #xE405)
+        (#x757b #xE406)
+        (#x757c #xE407)
+        (#x757d #xE408)
+        (#x757e #xE409)
+        (#x7621 #xE40A)
+        (#x7622 #xE40B)
+        (#x7623 #xE40C)
+        (#x7624 #xE40D)
+        (#x7625 #xE40E)
+        (#x7626 #xE40F)
+        (#x7627 #xE410)
+        (#x7628 #xE411)
+        (#x7629 #xE412)
+        (#x762a #xE413)
+        (#x762b #xE414)
+        (#x762c #xE415)
+        (#x762d #xE416)
+        (#x762e #xE417)
+        (#x762f #xE418)
+        (#x7630 #xE419)
+        (#x7631 #xE41A)
+        (#x7632 #xE41B)
+        (#x7633 #xE41C)
+        (#x7634 #xE41D)
+        (#x7635 #xE41E)
+        (#x7636 #xE41F)
+        (#x7637 #xE420)
+        (#x7638 #xE421)
+        (#x7639 #xE422)
+        (#x763a #xE423)
+        (#x763b #xE424)
+        (#x763c #xE425)
+        (#x763d #xE426)
+        (#x763e #xE427)
+        (#x763f #xE428)
+        (#x7640 #xE429)
+        (#x7641 #xE42A)
+        (#x7642 #xE42B)
+        (#x7643 #xE42C)
+        (#x7644 #xE42D)
+        (#x7645 #xE42E)
+        (#x7646 #xE42F)
+        (#x7647 #xE430)
+        (#x7648 #xE431)
+        (#x7649 #xE432)
+        (#x764a #xE433)
+        (#x764b #xE434)
+        (#x764c #xE435)
+        (#x764d #xE436)
+        (#x764e #xE437)
+        (#x764f #xE438)
+        (#x7650 #xE439)
+        (#x7651 #xE43A)
+        (#x7652 #xE43B)
+        (#x7653 #xE43C)
+        (#x7654 #xE43D)
+        (#x7655 #xE43E)
+        (#x7656 #xE43F)
+        (#x7657 #xE440)
+        (#x7658 #xE441)
+        (#x7659 #xE442)
+        (#x765a #xE443)
+        (#x765b #xE444)
+        (#x765c #xE445)
+        (#x765d #xE446)
+        (#x765e #xE447)
+        (#x765f #xE448)
+        (#x7660 #xE449)
+        (#x7661 #xE44A)
+        (#x7662 #xE44B)
+        (#x7663 #xE44C)
+        (#x7664 #xE44D)
+        (#x7665 #xE44E)
+        (#x7666 #xE44F)
+        (#x7667 #xE450)
+        (#x7668 #xE451)
+        (#x7669 #xE452)
+        (#x766a #xE453)
+        (#x766b #xE454)
+        (#x766c #xE455)
+        (#x766d #xE456)
+        (#x766e #xE457)
+        (#x766f #xE458)
+        (#x7670 #xE459)
+        (#x7671 #xE45A)
+        (#x7672 #xE45B)
+        (#x7673 #xE45C)
+        (#x7674 #xE45D)
+        (#x7675 #xE45E)
+        (#x7676 #xE45F)
+        (#x7677 #xE460)
+        (#x7678 #xE461)
+        (#x7679 #xE462)
+        (#x767a #xE463)
+        (#x767b #xE464)
+        (#x767c #xE465)
+        (#x767d #xE466)
+        (#x767e #xE467)
+        (#x7721 #xE468)
+        (#x7722 #xE469)
+        (#x7723 #xE46A)
+        (#x7724 #xE46B)
+        (#x7725 #xE46C)
+        (#x7726 #xE46D)
+        (#x7727 #xE46E)
+        (#x7728 #xE46F)
+        (#x7729 #xE470)
+        (#x772a #xE471)
+        (#x772b #xE472)
+        (#x772c #xE473)
+        (#x772d #xE474)
+        (#x772e #xE475)
+        (#x772f #xE476)
+        (#x7730 #xE477)
+        (#x7731 #xE478)
+        (#x7732 #xE479)
+        (#x7733 #xE47A)
+        (#x7734 #xE47B)
+        (#x7735 #xE47C)
+        (#x7736 #xE47D)
+        (#x7737 #xE47E)
+        (#x7738 #xE47F)
+        (#x7739 #xE480)
+        (#x773a #xE481)
+        (#x773b #xE482)
+        (#x773c #xE483)
+        (#x773d #xE484)
+        (#x773e #xE485)
+        (#x773f #xE486)
+        (#x7740 #xE487)
+        (#x7741 #xE488)
+        (#x7742 #xE489)
+        (#x7743 #xE48A)
+        (#x7744 #xE48B)
+        (#x7745 #xE48C)
+        (#x7746 #xE48D)
+        (#x7747 #xE48E)
+        (#x7748 #xE48F)
+        (#x7749 #xE490)
+        (#x774a #xE491)
+        (#x774b #xE492)
+        (#x774c #xE493)
+        (#x774d #xE494)
+        (#x774e #xE495)
+        (#x774f #xE496)
+        (#x7750 #xE497)
+        (#x7751 #xE498)
+        (#x7752 #xE499)
+        (#x7753 #xE49A)
+        (#x7754 #xE49B)
+        (#x7755 #xE49C)
+        (#x7756 #xE49D)
+        (#x7757 #xE49E)
+        (#x7758 #xE49F)
+        (#x7759 #xE4A0)
+        (#x775a #xE4A1)
+        (#x775b #xE4A2)
+        (#x775c #xE4A3)
+        (#x775d #xE4A4)
+        (#x775e #xE4A5)
+        (#x775f #xE4A6)
+        (#x7760 #xE4A7)
+        (#x7761 #xE4A8)
+        (#x7762 #xE4A9)
+        (#x7763 #xE4AA)
+        (#x7764 #xE4AB)
+        (#x7765 #xE4AC)
+        (#x7766 #xE4AD)
+        (#x7767 #xE4AE)
+        (#x7768 #xE4AF)
+        (#x7769 #xE4B0)
+        (#x776a #xE4B1)
+        (#x776b #xE4B2)
+        (#x776c #xE4B3)
+        (#x776d #xE4B4)
+        (#x776e #xE4B5)
+        (#x776f #xE4B6)
+        (#x7770 #xE4B7)
+        (#x7771 #xE4B8)
+        (#x7772 #xE4B9)
+        (#x7773 #xE4BA)
+        (#x7774 #xE4BB)
+        (#x7775 #xE4BC)
+        (#x7776 #xE4BD)
+        (#x7777 #xE4BE)
+        (#x7778 #xE4BF)
+        (#x7779 #xE4C0)
+        (#x777a #xE4C1)
+        (#x777b #xE4C2)
+        (#x777c #xE4C3)
+        (#x777d #xE4C4)
+        (#x777e #xE4C5)
+        (#x7821 #xE4C6)
+        (#x7822 #xE4C7)
+        (#x7823 #xE4C8)
+        (#x7824 #xE4C9)
+        (#x7825 #xE4CA)
+        (#x7826 #xE4CB)
+        (#x7827 #xE4CC)
+        (#x7828 #xE4CD)
+        (#x7829 #xE4CE)
+        (#x782a #xE4CF)
+        (#x782b #xE4D0)
+        (#x782c #xE4D1)
+        (#x782d #xE4D2)
+        (#x782e #xE4D3)
+        (#x782f #xE4D4)
+        (#x7830 #xE4D5)
+        (#x7831 #xE4D6)
+        (#x7832 #xE4D7)
+        (#x7833 #xE4D8)
+        (#x7834 #xE4D9)
+        (#x7835 #xE4DA)
+        (#x7836 #xE4DB)
+        (#x7837 #xE4DC)
+        (#x7838 #xE4DD)
+        (#x7839 #xE4DE)
+        (#x783a #xE4DF)
+        (#x783b #xE4E0)
+        (#x783c #xE4E1)
+        (#x783d #xE4E2)
+        (#x783e #xE4E3)
+        (#x783f #xE4E4)
+        (#x7840 #xE4E5)
+        (#x7841 #xE4E6)
+        (#x7842 #xE4E7)
+        (#x7843 #xE4E8)
+        (#x7844 #xE4E9)
+        (#x7845 #xE4EA)
+        (#x7846 #xE4EB)
+        (#x7847 #xE4EC)
+        (#x7848 #xE4ED)
+        (#x7849 #xE4EE)
+        (#x784a #xE4EF)
+        (#x784b #xE4F0)
+        (#x784c #xE4F1)
+        (#x784d #xE4F2)
+        (#x784e #xE4F3)
+        (#x784f #xE4F4)
+        (#x7850 #xE4F5)
+        (#x7851 #xE4F6)
+        (#x7852 #xE4F7)
+        (#x7853 #xE4F8)
+        (#x7854 #xE4F9)
+        (#x7855 #xE4FA)
+        (#x7856 #xE4FB)
+        (#x7857 #xE4FC)
+        (#x7858 #xE4FD)
+        (#x7859 #xE4FE)
+        (#x785a #xE4FF)
+        (#x785b #xE500)
+        (#x785c #xE501)
+        (#x785d #xE502)
+        (#x785e #xE503)
+        (#x785f #xE504)
+        (#x7860 #xE505)
+        (#x7861 #xE506)
+        (#x7862 #xE507)
+        (#x7863 #xE508)
+        (#x7864 #xE509)
+        (#x7865 #xE50A)
+        (#x7866 #xE50B)
+        (#x7867 #xE50C)
+        (#x7868 #xE50D)
+        (#x7869 #xE50E)
+        (#x786a #xE50F)
+        (#x786b #xE510)
+        (#x786c #xE511)
+        (#x786d #xE512)
+        (#x786e #xE513)
+        (#x786f #xE514)
+        (#x7870 #xE515)
+        (#x7871 #xE516)
+        (#x7872 #xE517)
+        (#x7873 #xE518)
+        (#x7874 #xE519)
+        (#x7875 #xE51A)
+        (#x7876 #xE51B)
+        (#x7877 #xE51C)
+        (#x7878 #xE51D)
+        (#x7879 #xE51E)
+        (#x787a #xE51F)
+        (#x787b #xE520)
+        (#x787c #xE521)
+        (#x787d #xE522)
+        (#x787e #xE523)
+        (#x7921 #xE524)
+        (#x7922 #xE525)
+        (#x7923 #xE526)
+        (#x7924 #xE527)
+        (#x7925 #xE528)
+        (#x7926 #xE529)
+        (#x7927 #xE52A)
+        (#x7928 #xE52B)
+        (#x7929 #xE52C)
+        (#x792a #xE52D)
+        (#x792b #xE52E)
+        (#x792c #xE52F)
+        (#x792d #xE530)
+        (#x792e #xE531)
+        (#x792f #xE532)
+        (#x7930 #xE533)
+        (#x7931 #xE534)
+        (#x7932 #xE535)
+        (#x7933 #xE536)
+        (#x7934 #xE537)
+        (#x7935 #xE538)
+        (#x7936 #xE539)
+        (#x7937 #xE53A)
+        (#x7938 #xE53B)
+        (#x7939 #xE53C)
+        (#x793a #xE53D)
+        (#x793b #xE53E)
+        (#x793c #xE53F)
+        (#x793d #xE540)
+        (#x793e #xE541)
+        (#x793f #xE542)
+        (#x7940 #xE543)
+        (#x7941 #xE544)
+        (#x7942 #xE545)
+        (#x7943 #xE546)
+        (#x7944 #xE547)
+        (#x7945 #xE548)
+        (#x7946 #xE549)
+        (#x7947 #xE54A)
+        (#x7948 #xE54B)
+        (#x7949 #xE54C)
+        (#x794a #xE54D)
+        (#x794b #xE54E)
+        (#x794c #xE54F)
+        (#x794d #xE550)
+        (#x794e #xE551)
+        (#x794f #xE552)
+        (#x7950 #xE553)
+        (#x7951 #xE554)
+        (#x7952 #xE555)
+        (#x7953 #xE556)
+        (#x7954 #xE557)
+        (#x7955 #xE558)
+        (#x7956 #xE559)
+        (#x7957 #xE55A)
+        (#x7958 #xE55B)
+        (#x7959 #xE55C)
+        (#x795a #xE55D)
+        (#x795b #xE55E)
+        (#x795c #xE55F)
+        (#x795d #xE560)
+        (#x795e #xE561)
+        (#x795f #xE562)
+        (#x7960 #xE563)
+        (#x7961 #xE564)
+        (#x7962 #xE565)
+        (#x7963 #xE566)
+        (#x7964 #xE567)
+        (#x7965 #xE568)
+        (#x7966 #xE569)
+        (#x7967 #xE56A)
+        (#x7968 #xE56B)
+        (#x7969 #xE56C)
+        (#x796a #xE56D)
+        (#x796b #xE56E)
+        (#x796c #xE56F)
+        (#x796d #xE570)
+        (#x796e #xE571)
+        (#x796f #xE572)
+        (#x7970 #xE573)
+        (#x7971 #xE574)
+        (#x7972 #xE575)
+        (#x7973 #xE576)
+        (#x7974 #xE577)
+        (#x7975 #xE578)
+        (#x7976 #xE579)
+        (#x7977 #xE57A)
+        (#x7978 #xE57B)
+        (#x7979 #xE57C)
+        (#x797a #xE57D)
+        (#x797b #xE57E)
+        (#x797c #xE57F)
+        (#x797d #xE580)
+        (#x797e #xE581)
+        (#x7a21 #xE582)
+        (#x7a22 #xE583)
+        (#x7a23 #xE584)
+        (#x7a24 #xE585)
+        (#x7a25 #xE586)
+        (#x7a26 #xE587)
+        (#x7a27 #xE588)
+        (#x7a28 #xE589)
+        (#x7a29 #xE58A)
+        (#x7a2a #xE58B)
+        (#x7a2b #xE58C)
+        (#x7a2c #xE58D)
+        (#x7a2d #xE58E)
+        (#x7a2e #xE58F)
+        (#x7a2f #xE590)
+        (#x7a30 #xE591)
+        (#x7a31 #xE592)
+        (#x7a32 #xE593)
+        (#x7a33 #xE594)
+        (#x7a34 #xE595)
+        (#x7a35 #xE596)
+        (#x7a36 #xE597)
+        (#x7a37 #xE598)
+        (#x7a38 #xE599)
+        (#x7a39 #xE59A)
+        (#x7a3a #xE59B)
+        (#x7a3b #xE59C)
+        (#x7a3c #xE59D)
+        (#x7a3d #xE59E)
+        (#x7a3e #xE59F)
+        (#x7a3f #xE5A0)
+        (#x7a40 #xE5A1)
+        (#x7a41 #xE5A2)
+        (#x7a42 #xE5A3)
+        (#x7a43 #xE5A4)
+        (#x7a44 #xE5A5)
+        (#x7a45 #xE5A6)
+        (#x7a46 #xE5A7)
+        (#x7a47 #xE5A8)
+        (#x7a48 #xE5A9)
+        (#x7a49 #xE5AA)
+        (#x7a4a #xE5AB)
+        (#x7a4b #xE5AC)
+        (#x7a4c #xE5AD)
+        (#x7a4d #xE5AE)
+        (#x7a4e #xE5AF)
+        (#x7a4f #xE5B0)
+        (#x7a50 #xE5B1)
+        (#x7a51 #xE5B2)
+        (#x7a52 #xE5B3)
+        (#x7a53 #xE5B4)
+        (#x7a54 #xE5B5)
+        (#x7a55 #xE5B6)
+        (#x7a56 #xE5B7)
+        (#x7a57 #xE5B8)
+        (#x7a58 #xE5B9)
+        (#x7a59 #xE5BA)
+        (#x7a5a #xE5BB)
+        (#x7a5b #xE5BC)
+        (#x7a5c #xE5BD)
+        (#x7a5d #xE5BE)
+        (#x7a5e #xE5BF)
+        (#x7a5f #xE5C0)
+        (#x7a60 #xE5C1)
+        (#x7a61 #xE5C2)
+        (#x7a62 #xE5C3)
+        (#x7a63 #xE5C4)
+        (#x7a64 #xE5C5)
+        (#x7a65 #xE5C6)
+        (#x7a66 #xE5C7)
+        (#x7a67 #xE5C8)
+        (#x7a68 #xE5C9)
+        (#x7a69 #xE5CA)
+        (#x7a6a #xE5CB)
+        (#x7a6b #xE5CC)
+        (#x7a6c #xE5CD)
+        (#x7a6d #xE5CE)
+        (#x7a6e #xE5CF)
+        (#x7a6f #xE5D0)
+        (#x7a70 #xE5D1)
+        (#x7a71 #xE5D2)
+        (#x7a72 #xE5D3)
+        (#x7a73 #xE5D4)
+        (#x7a74 #xE5D5)
+        (#x7a75 #xE5D6)
+        (#x7a76 #xE5D7)
+        (#x7a77 #xE5D8)
+        (#x7a78 #xE5D9)
+        (#x7a79 #xE5DA)
+        (#x7a7a #xE5DB)
+        (#x7a7b #xE5DC)
+        (#x7a7c #xE5DD)
+        (#x7a7d #xE5DE)
+        (#x7a7e #xE5DF)
+        (#x7b21 #xE5E0)
+        (#x7b22 #xE5E1)
+        (#x7b23 #xE5E2)
+        (#x7b24 #xE5E3)
+        (#x7b25 #xE5E4)
+        (#x7b26 #xE5E5)
+        (#x7b27 #xE5E6)
+        (#x7b28 #xE5E7)
+        (#x7b29 #xE5E8)
+        (#x7b2a #xE5E9)
+        (#x7b2b #xE5EA)
+        (#x7b2c #xE5EB)
+        (#x7b2d #xE5EC)
+        (#x7b2e #xE5ED)
+        (#x7b2f #xE5EE)
+        (#x7b30 #xE5EF)
+        (#x7b31 #xE5F0)
+        (#x7b32 #xE5F1)
+        (#x7b33 #xE5F2)
+        (#x7b34 #xE5F3)
+        (#x7b35 #xE5F4)
+        (#x7b36 #xE5F5)
+        (#x7b37 #xE5F6)
+        (#x7b38 #xE5F7)
+        (#x7b39 #xE5F8)
+        (#x7b3a #xE5F9)
+        (#x7b3b #xE5FA)
+        (#x7b3c #xE5FB)
+        (#x7b3d #xE5FC)
+        (#x7b3e #xE5FD)
+        (#x7b3f #xE5FE)
+        (#x7b40 #xE5FF)
+        (#x7b41 #xE600)
+        (#x7b42 #xE601)
+        (#x7b43 #xE602)
+        (#x7b44 #xE603)
+        (#x7b45 #xE604)
+        (#x7b46 #xE605)
+        (#x7b47 #xE606)
+        (#x7b48 #xE607)
+        (#x7b49 #xE608)
+        (#x7b4a #xE609)
+        (#x7b4b #xE60A)
+        (#x7b4c #xE60B)
+        (#x7b4d #xE60C)
+        (#x7b4e #xE60D)
+        (#x7b4f #xE60E)
+        (#x7b50 #xE60F)
+        (#x7b51 #xE610)
+        (#x7b52 #xE611)
+        (#x7b53 #xE612)
+        (#x7b54 #xE613)
+        (#x7b55 #xE614)
+        (#x7b56 #xE615)
+        (#x7b57 #xE616)
+        (#x7b58 #xE617)
+        (#x7b59 #xE618)
+        (#x7b5a #xE619)
+        (#x7b5b #xE61A)
+        (#x7b5c #xE61B)
+        (#x7b5d #xE61C)
+        (#x7b5e #xE61D)
+        (#x7b5f #xE61E)
+        (#x7b60 #xE61F)
+        (#x7b61 #xE620)
+        (#x7b62 #xE621)
+        (#x7b63 #xE622)
+        (#x7b64 #xE623)
+        (#x7b65 #xE624)
+        (#x7b66 #xE625)
+        (#x7b67 #xE626)
+        (#x7b68 #xE627)
+        (#x7b69 #xE628)
+        (#x7b6a #xE629)
+        (#x7b6b #xE62A)
+        (#x7b6c #xE62B)
+        (#x7b6d #xE62C)
+        (#x7b6e #xE62D)
+        (#x7b6f #xE62E)
+        (#x7b70 #xE62F)
+        (#x7b71 #xE630)
+        (#x7b72 #xE631)
+        (#x7b73 #xE632)
+        (#x7b74 #xE633)
+        (#x7b75 #xE634)
+        (#x7b76 #xE635)
+        (#x7b77 #xE636)
+        (#x7b78 #xE637)
+        (#x7b79 #xE638)
+        (#x7b7a #xE639)
+        (#x7b7b #xE63A)
+        (#x7b7c #xE63B)
+        (#x7b7d #xE63C)
+        (#x7b7e #xE63D)
+        (#x7c21 #xE63E)
+        (#x7c22 #xE63F)
+        (#x7c23 #xE640)
+        (#x7c24 #xE641)
+        (#x7c25 #xE642)
+        (#x7c26 #xE643)
+        (#x7c27 #xE644)
+        (#x7c28 #xE645)
+        (#x7c29 #xE646)
+        (#x7c2a #xE647)
+        (#x7c2b #xE648)
+        (#x7c2c #xE649)
+        (#x7c2d #xE64A)
+        (#x7c2e #xE64B)
+        (#x7c2f #xE64C)
+        (#x7c30 #xE64D)
+        (#x7c31 #xE64E)
+        (#x7c32 #xE64F)
+        (#x7c33 #xE650)
+        (#x7c34 #xE651)
+        (#x7c35 #xE652)
+        (#x7c36 #xE653)
+        (#x7c37 #xE654)
+        (#x7c38 #xE655)
+        (#x7c39 #xE656)
+        (#x7c3a #xE657)
+        (#x7c3b #xE658)
+        (#x7c3c #xE659)
+        (#x7c3d #xE65A)
+        (#x7c3e #xE65B)
+        (#x7c3f #xE65C)
+        (#x7c40 #xE65D)
+        (#x7c41 #xE65E)
+        (#x7c42 #xE65F)
+        (#x7c43 #xE660)
+        (#x7c44 #xE661)
+        (#x7c45 #xE662)
+        (#x7c46 #xE663)
+        (#x7c47 #xE664)
+        (#x7c48 #xE665)
+        (#x7c49 #xE666)
+        (#x7c4a #xE667)
+        (#x7c4b #xE668)
+        (#x7c4c #xE669)
+        (#x7c4d #xE66A)
+        (#x7c4e #xE66B)
+        (#x7c4f #xE66C)
+        (#x7c50 #xE66D)
+        (#x7c51 #xE66E)
+        (#x7c52 #xE66F)
+        (#x7c53 #xE670)
+        (#x7c54 #xE671)
+        (#x7c55 #xE672)
+        (#x7c56 #xE673)
+        (#x7c57 #xE674)
+        (#x7c58 #xE675)
+        (#x7c59 #xE676)
+        (#x7c5a #xE677)
+        (#x7c5b #xE678)
+        (#x7c5c #xE679)
+        (#x7c5d #xE67A)
+        (#x7c5e #xE67B)
+        (#x7c5f #xE67C)
+        (#x7c60 #xE67D)
+        (#x7c61 #xE67E)
+        (#x7c62 #xE67F)
+        (#x7c63 #xE680)
+        (#x7c64 #xE681)
+        (#x7c65 #xE682)
+        (#x7c66 #xE683)
+        (#x7c67 #xE684)
+        (#x7c68 #xE685)
+        (#x7c69 #xE686)
+        (#x7c6a #xE687)
+        (#x7c6b #xE688)
+        (#x7c6c #xE689)
+        (#x7c6d #xE68A)
+        (#x7c6e #xE68B)
+        (#x7c6f #xE68C)
+        (#x7c70 #xE68D)
+        (#x7c71 #xE68E)
+        (#x7c72 #xE68F)
+        (#x7c73 #xE690)
+        (#x7c74 #xE691)
+        (#x7c75 #xE692)
+        (#x7c76 #xE693)
+        (#x7c77 #xE694)
+        (#x7c78 #xE695)
+        (#x7c79 #xE696)
+        (#x7c7a #xE697)
+        (#x7c7b #xE698)
+        (#x7c7c #xE699)
+        (#x7c7d #xE69A)
+        (#x7c7e #xE69B)
+        (#x7d21 #xE69C)
+        (#x7d22 #xE69D)
+        (#x7d23 #xE69E)
+        (#x7d24 #xE69F)
+        (#x7d25 #xE6A0)
+        (#x7d26 #xE6A1)
+        (#x7d27 #xE6A2)
+        (#x7d28 #xE6A3)
+        (#x7d29 #xE6A4)
+        (#x7d2a #xE6A5)
+        (#x7d2b #xE6A6)
+        (#x7d2c #xE6A7)
+        (#x7d2d #xE6A8)
+        (#x7d2e #xE6A9)
+        (#x7d2f #xE6AA)
+        (#x7d30 #xE6AB)
+        (#x7d31 #xE6AC)
+        (#x7d32 #xE6AD)
+        (#x7d33 #xE6AE)
+        (#x7d34 #xE6AF)
+        (#x7d35 #xE6B0)
+        (#x7d36 #xE6B1)
+        (#x7d37 #xE6B2)
+        (#x7d38 #xE6B3)
+        (#x7d39 #xE6B4)
+        (#x7d3a #xE6B5)
+        (#x7d3b #xE6B6)
+        (#x7d3c #xE6B7)
+        (#x7d3d #xE6B8)
+        (#x7d3e #xE6B9)
+        (#x7d3f #xE6BA)
+        (#x7d40 #xE6BB)
+        (#x7d41 #xE6BC)
+        (#x7d42 #xE6BD)
+        (#x7d43 #xE6BE)
+        (#x7d44 #xE6BF)
+        (#x7d45 #xE6C0)
+        (#x7d46 #xE6C1)
+        (#x7d47 #xE6C2)
+        (#x7d48 #xE6C3)
+        (#x7d49 #xE6C4)
+        (#x7d4a #xE6C5)
+        (#x7d4b #xE6C6)
+        (#x7d4c #xE6C7)
+        (#x7d4d #xE6C8)
+        (#x7d4e #xE6C9)
+        (#x7d4f #xE6CA)
+        (#x7d50 #xE6CB)
+        (#x7d51 #xE6CC)
+        (#x7d52 #xE6CD)
+        (#x7d53 #xE6CE)
+        (#x7d54 #xE6CF)
+        (#x7d55 #xE6D0)
+        (#x7d56 #xE6D1)
+        (#x7d57 #xE6D2)
+        (#x7d58 #xE6D3)
+        (#x7d59 #xE6D4)
+        (#x7d5a #xE6D5)
+        (#x7d5b #xE6D6)
+        (#x7d5c #xE6D7)
+        (#x7d5d #xE6D8)
+        (#x7d5e #xE6D9)
+        (#x7d5f #xE6DA)
+        (#x7d60 #xE6DB)
+        (#x7d61 #xE6DC)
+        (#x7d62 #xE6DD)
+        (#x7d63 #xE6DE)
+        (#x7d64 #xE6DF)
+        (#x7d65 #xE6E0)
+        (#x7d66 #xE6E1)
+        (#x7d67 #xE6E2)
+        (#x7d68 #xE6E3)
+        (#x7d69 #xE6E4)
+        (#x7d6a #xE6E5)
+        (#x7d6b #xE6E6)
+        (#x7d6c #xE6E7)
+        (#x7d6d #xE6E8)
+        (#x7d6e #xE6E9)
+        (#x7d6f #xE6EA)
+        (#x7d70 #xE6EB)
+        (#x7d71 #xE6EC)
+        (#x7d72 #xE6ED)
+        (#x7d73 #xE6EE)
+        (#x7d74 #xE6EF)
+        (#x7d75 #xE6F0)
+        (#x7d76 #xE6F1)
+        (#x7d77 #xE6F2)
+        (#x7d78 #xE6F3)
+        (#x7d79 #xE6F4)
+        (#x7d7a #xE6F5)
+        (#x7d7b #xE6F6)
+        (#x7d7c #xE6F7)
+        (#x7d7d #xE6F8)
+        (#x7d7e #xE6F9)
+        (#x7e21 #xE6FA)
+        (#x7e22 #xE6FB)
+        (#x7e23 #xE6FC)
+        (#x7e24 #xE6FD)
+        (#x7e25 #xE6FE)
+        (#x7e26 #xE6FF)
+        (#x7e27 #xE700)
+        (#x7e28 #xE701)
+        (#x7e29 #xE702)
+        (#x7e2a #xE703)
+        (#x7e2b #xE704)
+        (#x7e2c #xE705)
+        (#x7e2d #xE706)
+        (#x7e2e #xE707)
+        (#x7e2f #xE708)
+        (#x7e30 #xE709)
+        (#x7e31 #xE70A)
+        (#x7e32 #xE70B)
+        (#x7e33 #xE70C)
+        (#x7e34 #xE70D)
+        (#x7e35 #xE70E)
+        (#x7e36 #xE70F)
+        (#x7e37 #xE710)
+        (#x7e38 #xE711)
+        (#x7e39 #xE712)
+        (#x7e3a #xE713)
+        (#x7e3b #xE714)
+        (#x7e3c #xE715)
+        (#x7e3d #xE716)
+        (#x7e3e #xE717)
+        (#x7e3f #xE718)
+        (#x7e40 #xE719)
+        (#x7e41 #xE71A)
+        (#x7e42 #xE71B)
+        (#x7e43 #xE71C)
+        (#x7e44 #xE71D)
+        (#x7e45 #xE71E)
+        (#x7e46 #xE71F)
+        (#x7e47 #xE720)
+        (#x7e48 #xE721)
+        (#x7e49 #xE722)
+        (#x7e4a #xE723)
+        (#x7e4b #xE724)
+        (#x7e4c #xE725)
+        (#x7e4d #xE726)
+        (#x7e4e #xE727)
+        (#x7e4f #xE728)
+        (#x7e50 #xE729)
+        (#x7e51 #xE72A)
+        (#x7e52 #xE72B)
+        (#x7e53 #xE72C)
+        (#x7e54 #xE72D)
+        (#x7e55 #xE72E)
+        (#x7e56 #xE72F)
+        (#x7e57 #xE730)
+        (#x7e58 #xE731)
+        (#x7e59 #xE732)
+        (#x7e5a #xE733)
+        (#x7e5b #xE734)
+        (#x7e5c #xE735)
+        (#x7e5d #xE736)
+        (#x7e5e #xE737)
+        (#x7e5f #xE738)
+        (#x7e60 #xE739)
+        (#x7e61 #xE73A)
+        (#x7e62 #xE73B)
+        (#x7e63 #xE73C)
+        (#x7e64 #xE73D)
+        (#x7e65 #xE73E)
+        (#x7e66 #xE73F)
+        (#x7e67 #xE740)
+        (#x7e68 #xE741)
+        (#x7e69 #xE742)
+        (#x7e6a #xE743)
+        (#x7e6b #xE744)
+        (#x7e6c #xE745)
+        (#x7e6d #xE746)
+        (#x7e6e #xE747)
+        (#x7e6f #xE748)
+        (#x7e70 #xE749)
+        (#x7e71 #xE74A)
+        (#x7e72 #xE74B)
+        (#x7e73 #xE74C)
+        (#x7e74 #xE74D)
+        (#x7e75 #xE74E)
+        (#x7e76 #xE74F)
+        (#x7e77 #xE750)
+        (#x7e78 #xE751)
+        (#x7e79 #xE752)
+        (#x7e7a #xE753)
+        (#x7e7b #xE754)
+        (#x7e7c #xE755)
+        (#x7e7d #xE756)
+        (#x7e7e #xE757)
+        (#x7373 #x2170)
+        (#x7374 #x2171)
+        (#x7375 #x2172)
+        (#x7376 #x2173)
+        (#x7377 #x2174)
+        (#x7378 #x2175)
+        (#x7379 #x2176)
+        (#x737a #x2177)
+        (#x737b #x2178)
+        (#x737c #x2179)
+        (#x737d #x2160)
+        (#x737e #x2161)
+        (#x7421 #x2162)
+        (#x7422 #x2163)
+        (#x7423 #x2164)
+        (#x7424 #x2165)
+        (#x7425 #x2166)
+        (#x7426 #x2167)
+        (#x7427 #x2168)
+        (#x7428 #x2169)
+        (#x7429 #xFF07)
+        (#x742a #xFF02)
+        (#x742b #x3231)
+        (#x742c #x2116)
+        (#x742d #x2121)
+        (#x742e #x70BB)
+        (#x742f #x4EFC)
+        (#x7430 #x50F4)
+        (#x7431 #x51EC)
+        (#x7432 #x5307)
+        (#x7433 #x5324)
+        (#x7434 #xFA0E)
+        (#x7435 #x548A)
+        (#x7436 #x5759)
+        (#x7437 #xFA0F)
+        (#x7438 #xFA10)
+        (#x7439 #x589E)
+        (#x743a #x5BEC)
+        (#x743b #x5CF5)
+        (#x743c #x5D53)
+        (#x743d #xFA11)
+        (#x743e #x5FB7)
+        (#x743f #x6085)
+        (#x7440 #x6120)
+        (#x7441 #x654E)
+        (#x7442 #x663B)
+        (#x7443 #x6665)
+        (#x7444 #xFA12)
+        (#x7445 #xF929)
+        (#x7446 #x6801)
+        (#x7447 #xFA13)
+        (#x7448 #xFA14)
+        (#x7449 #x6A6B)
+        (#x744a #x6AE2)
+        (#x744b #x6DF8)
+        (#x744c #x6DF2)
+        (#x744d #x7028)
+        (#x744e #xFA15)
+        (#x744f #xFA16)
+        (#x7450 #x7501)
+        (#x7451 #x7682)
+        (#x7452 #x769E)
+        (#x7453 #xFA17)
+        (#x7454 #x7930)
+        (#x7455 #xFA18)
+        (#x7456 #xFA19)
+        (#x7457 #xFA1A)
+        (#x7458 #xFA1B)
+        (#x7459 #x7AE7)
+        (#x745a #xFA1C)
+        (#x745b #xFA1D)
+        (#x745c #x7DA0)
+        (#x745d #x7DD6)
+        (#x745e #xFA1E)
+        (#x745f #x8362)
+        (#x7460 #xFA1F)
+        (#x7461 #x85B0)
+        (#x7462 #xFA20)
+        (#x7463 #xFA21)
+        (#x7464 #x8807)
+        (#x7465 #xFA22)
+        (#x7466 #x8B7F)
+        (#x7467 #x8CF4)
+        (#x7468 #x8D76)
+        (#x7469 #xFA23)
+        (#x746a #xFA24)
+        (#x746b #xFA25)
+        (#x746c #x90DE)
+        (#x746d #xFA26)
+        (#x746e #x9115)
+        (#x746f #xFA27)
+        (#x7470 #xFA28)
+        (#x7471 #x9592)
+        (#x7472 #xF9DC)
+        (#x7473 #xFA29)
+        (#x7474 #x973B)
+        (#x7475 #x974D)
+        (#x7476 #x9751)
+        (#x7477 #xFA2A)
+        (#x7478 #xFA2B)
+        (#x7479 #xFA2C)
+        (#x747a #x999E)
+        (#x747b #x9AD9)
+        (#x747c #x9B72)
+        (#x747d #xFA2D)
+        (#x747e #x9ED1))))
+  (mapc #'(lambda (x)
+           (if (integerp (cdr x))
+               (setcar x (decode-char 'japanese-jisx0208 (car x)))
+             (setcar x (decode-char 'japanese-jisx0212 (car x)))
+             (setcdr x (cadr x))))
+       map)
+  (define-translation-table 'eucjp-ms-decode map)
+  (mapc #'(lambda (x)
+           (let ((tmp (car x)))
+             (setcar x (cdr x)) (setcdr x tmp)))
+       map)
+  (define-translation-table 'eucjp-ms-encode map))
+
+;;; arch-tag: c4191096-288a-4f13-9b2a-ee7a1f11eb4a
index 6a8ab89bb6ebe687a9af03b64514f062434221b8..28937c65846b954bcb53c356a58dfaa51a14c408 100644 (file)
@@ -6,8 +6,11 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003, 2006
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
-;; Keywords: mule, multilingual, fontset
+;; Keywords: mule, i18n, fontset
 
 ;; This file is part of GNU Emacs.
 
 
 ;;; Code:
 
+;; Setup font-encoding-alist for all known encodings.
+
+(setq font-encoding-alist
+      '(("iso8859-1$" . iso-8859-1)
+       ("iso8859-2$" . iso-8859-2)
+       ("iso8859-3$" . iso-8859-3)
+       ("iso8859-4$" . iso-8859-4)
+       ("iso8859-5$" . iso-8859-5)
+       ("iso8859-6$" . iso-8859-6)
+       ("iso8859-7$" . iso-8859-7)
+       ("iso8859-8$" . iso-8859-8)
+       ("iso8859-9$" . iso-8859-9)
+       ("iso8859-10$" . iso-8859-10)
+       ("iso8859-11$" . iso-8859-11)
+       ("iso8859-13$" . iso-8859-13)
+       ("iso8859-14$" . iso-8859-14)
+       ("iso8859-15$" . iso-8859-15)
+       ("gb2312.1980" . chinese-gb2312)
+       ("gbk" . chinese-gbk)
+       ("gb18030" . gb18030)
+       ("jisx0208.1978" . japanese-jisx0208-1978)
+       ("jisx0208" . japanese-jisx0208)
+       ("jisx0201" . jisx0201)
+       ("jisx0212" . japanese-jisx0212)
+       ("ksc5601.1987" . korean-ksc5601)
+       ("cns11643.1992.*1" . chinese-cns11643-1)
+       ("cns11643.1992.*2" . chinese-cns11643-2)
+       ("cns11643.1992.*3" . chinese-cns11643-3)
+       ("cns11643.1992.*4" . chinese-cns11643-4)
+       ("cns11643.1992.*5" . chinese-cns11643-5)
+       ("cns11643.1992.*6" . chinese-cns11643-6)
+       ("cns11643.1992.*7" . chinese-cns11643-7)
+       ("cns11643.92p1-0" . chinese-cns11643-1)
+       ("cns11643.92p2-0" . chinese-cns11643-2)
+       ("cns11643.92p3-0" . chinese-cns11643-3)
+       ("cns11643.92p4-0" . chinese-cns11643-4)
+       ("cns11643.92p5-0" . chinese-cns11643-5)
+       ("cns11643.92p6-0" . chinese-cns11643-6)
+       ("cns11643.92p7-0" . chinese-cns11643-7)
+       ("big5" . big5)
+       ("viscii" . viscii)
+       ("tis620" . tis620-2533)
+       ("microsoft-cp1251" . windows-1251)
+       ("koi8-r" . koi8-r)
+       ("jisx0213.2000-1" . japanese-jisx0213-1)
+       ("jisx0213.2000-2" . japanese-jisx0213-2)
+       ("jisx0213.2004-1" . japanese-jisx0213.2004-1)
+       ("iso10646-1$" . (unicode-bmp . nil))
+       ("iso10646.indian-1" . (unicode-bmp . nil))
+       ("unicode-bmp" . (unicode-bmp . nil))
+       ("abobe-symbol" . symbol)
+       ("sisheng_cwnn" . chinese-sisheng)
+       ("mulearabic-0" . arabic-digit)
+       ("mulearabic-1" . arabic-1-column)
+       ("mulearabic-2" . arabic-2-column)
+       ("muleipa" . ipa)
+       ("ethiopic-unicode" . (unicode-bmp . ethiopic))
+       ("is13194-devanagari" . indian-is13194)
+       ("Devanagari-CDAC" . devanagari-cdac)
+       ("Sanskrit-CDAC" . sanskrit-cdac)
+       ("Bengali-CDAC" . bengali-cdac)
+       ("Assamese-CDAC" . assamese-cdac)
+       ("Punjabi-CDAC" . punjabi-cdac)
+       ("Gujarati-CDAC" . gujarati-cdac)
+       ("Oriya-CDAC" . oriya-cdac)
+       ("Tamil-CDAC" . tamil-cdac)
+       ("Telugu-CDAC" . telugu-cdac)
+       ("Kannada-CDAC" . kannada-cdac)
+       ("Malayalam-CDAC" . malayalam-cdac)
+       ("Devanagari-Akruti" . devanagari-akruti)
+       ("Bengali-Akruti" . bengali-akruti)
+       ("Punjabi-Akruti" . punjabi-akruti)
+       ("Gujarati-Akruti" . gujarati-akruti)
+       ("Oriya-Akruti" . oriya-akruti)
+       ("Tamil-Akruti" . tamil-akruti)
+       ("Telugu-Akruti" . telugu-akruti)
+       ("Kannada-Akruti" . kannada-akruti)
+       ("Malayalam-Akruti" . malayalam-akruti)
+       ("muleindian-2" . indian-2-column)
+       ("muleindian-1" . indian-1-column)
+       ("mulelao-1" . mule-lao)
+       ("muletibetan-2" . tibetan)
+       ("muletibetan-1" . tibetan-1-column)))
+
+(setq font-encoding-charset-alist
+      '((latin-iso8859-1 . iso-8859-1)
+       (latin-iso8859-2 . iso-8859-2)
+       (latin-iso8859-3 . iso-8859-3)
+       (latin-iso8859-4 . iso-8859-4)
+       (latin-iso8859-9 . iso-8859-9)
+       (latin-iso8859-10 . iso-8859-10)
+       (latin-iso8859-13 . iso-8859-13)
+       (latin-iso8859-14 . iso-8859-14)
+       (latin-iso8859-15 . iso-8859-15)
+       (latin-iso8859-16 . iso-8859-16)
+       (cyrillic-iso8859-5 . iso-8859-5)
+       (greek-iso8859-7 . iso-8859-7)
+       (arabic-iso8859-6 . iso-8859-6)
+       (thai-tis620 . tis620-2533)
+       (latin-jisx0201 . jisx0201)
+       (katakana-jisx0201 . jisx0201)
+       (chinese-big5-1 . big5)
+       (chinese-big5-2 . big5)
+       (vietnamese-viscii-lower . viscii)
+       (vietnamese-viscii-upper . viscii)
+       (tibetan . unicode-bmp)))
+
+(setq script-representative-chars
+      '((latin ?A ?Z ?a ?z)
+       (greek #x3A9)
+       (coptic #x3E2)
+       (cyrillic #x42F)
+       (armenian #x531)
+       (hebrew #x5D0)
+       (arabic #x628)
+       (syriac #x710)
+       (thaana #x78C)
+       (devanagari #x915)
+       (bengali #x995)
+       (gurmukhi #xA15)
+       (gujarati #xA95)
+       (oriya #xB15)
+       (tamil #xB95)
+       (telugu #xC15)
+       (kannada #xC95)
+       (malayalam #xD15)
+       (sinhala #xD95)
+       (thai #xE17)
+       (lao #xEA5)
+       (tibetan #xF40)
+       (myanmar #x1000)
+       (georgian #x10D3)
+       (ethiopic #x1208)
+       (cherokee #x13B6)
+       (canadian-aboriginal #x14C0)
+       (ogham #x168F)
+       (runic #x16A0)
+       (khmer #x1780)
+       (mongolian #x1826)
+       (braille #x2800)
+       (ideographic-description #x2FF0)
+       (cjk-misc #x300E)
+       (kana #x304B)
+       (bopomofo #x3105)
+       (kanbun #x319D)
+       (han #x5B57)
+       (yi #xA288)
+       (hangul #xAC00)))
+
+(setq otf-script-alist
+      '((arab . arabic)
+       (armn . armenian)
+       (bali . balinese)
+       (beng . bengali)
+       (bopo . bopomofo)
+       (brai . braille)
+       (bugi . buginese)
+       (buhd . buhid)
+       (byzm . byzantine-musical-symbol)
+       (cans . canadian-aboriginal)
+       (cher . cherokee)
+       (copt . coptic)
+       (xsux . cuneiform)
+       (cyrl . cyrillic)
+       (cprt . cypriot)
+       (dsrt . deseret)
+       (deva . devanagari)
+       (ethi . ethiopic)
+       (geor . georgian)
+       (glag . glagolitic)
+       (goth . gothic)
+       (grek . greek)
+       (gujr . gujarati)
+       (guru . gurmukhi)
+       (hani . han)
+       (hang . hangul)
+       (hano . hanunoo)
+       (hebr . hebrew)
+       (kana . kana)
+       (knda . kannada)
+       (khar . kharoshthi)
+       (khmr . khmer)
+       (lao\  . lao)
+       (latn . latin)
+       (limb . limbu)
+       (linb . linear_b)
+       (mlym . malayalam)
+       (math . mathematical)
+       (mong . mongolian)
+       (musc . musical-symbol)
+       (mymr . myanmar)
+       (nko\  . nko)
+       (ogam . ogham)
+       (ital . old_italic)
+       (xpeo . old_persian)
+       (orya . oriya)
+       (osma . osmanya)
+       (phag . phags-pa)
+       (phnx . phoenician)
+       (runr . runic)
+       (shaw . shavian)
+       (sinh . sinhala)
+       (sylo . syloti_nagri)
+       (syrc . syriac)
+       (tglg . tagalog)
+       (tagb . tagbanwa)
+       (taml . tamil)
+       (tale . tai_le)
+       (telu . telugu)
+       (thaa . thaana)
+       (thai . thai)
+       (tibt . tibetan)
+       (tfng . tifinagh)
+       (ugar . ugaritic)
+       (yi\ \   . yi)))
+
 ;; Set standard fontname specification of characters in the default
-;; fontset to find an appropriate font for each charset.  This is used
-;; to generate a font name for a fontset if the fontset doesn't
-;; specify a font name for a specific character.  The specification
-;; has the form (FAMILY . REGISTRY).  FAMILY may be nil, in which
-;; case, the family name of default face is used.  If REGISTRY
-;; contains a character `-', the string before that is embedded in
-;; `CHARSET_REGISTRY' field, and the string after that is embedded in
-;; `CHARSET_ENCODING' field.  If it does not contain `-', the whole
-;; string is embedded in `CHARSET_REGISTRY' field, and a wild card
-;; character `*' is embedded in `CHARSET_ENCODING' field.  The
-;; REGISTRY for ASCII characters are predefined as "ISO8859-1".
+;; fontset to find an appropriate font for each script/charset.  The
+;; specification has the form ((SCRIPT FONT-SPEC ...) ...), where
+;; FONT-SPEC is:
+;;     a cons (FAMILY . REGISTRY),
+;;     or a string FONT-NAME,
+;;     or an object created by `font-spec'.
+;;
+;; FAMILY may be nil, in which case, the the corresponding name of
+;; default face is used.  If REGISTRY contains a character `-', the
+;; string before that is embedded in `CHARSET_REGISTRY' field, and the
+;; string after that is embedded in `CHARSET_ENCODING' field.  If it
+;; does not contain `-', the whole string is embedded in
+;; `CHARSET_REGISTRY' field, and a wild card character `*' is embedded
+;; in `CHARSET_ENCODING' field.
+;;
+;; SCRIPT is a symbol that appears as an element of the char table
+;; `char-script-table'.  SCRIPT may be a charset specifying the range
+;; of characters.
 
 (defun setup-default-fontset ()
   "Setup the default fontset."
-  (dolist (elt
-          `((latin-iso8859-1 . (nil . "ISO8859-1"))
-            (latin-iso8859-2 . (nil . "ISO8859-2"))
-            (latin-iso8859-3 . (nil . "ISO8859-3"))
-            (latin-iso8859-4 . (nil . "ISO8859-4"))
-            ;; Setting "*" family is for a workaround of the problem
-            ;; that a font of wrong size is preferred if the font
-            ;; family matches with a requested one.
-            (thai-tis620 . ("*" . "TIS620"))
-            (greek-iso8859-7 . (nil . "ISO8859-7"))
-            (arabic-iso8859-6 . (nil . "ISO8859-6"))
-            (hebrew-iso8859-8 . (nil . "ISO8859-8"))
-            (katakana-jisx0201 . (nil . "JISX0201"))
-            (latin-jisx0201 . (nil . "JISX0201"))
-            (cyrillic-iso8859-5 . (nil . "ISO8859-5"))
-            (latin-iso8859-9 . (nil . "ISO8859-9"))
-            (japanese-jisx0208-1978 . (nil . "JISX0208.1978"))
-            (chinese-gb2312 . (nil . "GB2312.1980"))
-            (japanese-jisx0208 . (nil . "JISX0208.1990"))
-            (korean-ksc5601 . (nil . "KSC5601.1989"))
-            (japanese-jisx0212 . (nil . "JISX0212"))
-            (chinese-cns11643-1 . (nil . "CNS11643.1992-1"))
-            (chinese-cns11643-2 . (nil . "CNS11643.1992-2"))
-            (chinese-cns11643-3 . (nil . "CNS11643.1992-3"))
-            (chinese-cns11643-4 . (nil . "CNS11643.1992-4"))
-            (chinese-cns11643-5 . (nil . "CNS11643.1992-5"))
-            (chinese-cns11643-6 . (nil . "CNS11643.1992-6"))
-            (chinese-cns11643-7 . (nil . "CNS11643.1992-7"))
-            (chinese-big5-1 . (nil . "Big5"))
-            (chinese-big5-2 . (nil . "Big5"))
-            (chinese-sisheng . (nil . "sisheng_cwnn"))
-            (vietnamese-viscii-lower . (nil . "VISCII1.1"))
-            (vietnamese-viscii-upper . (nil . "VISCII1.1"))
-            (arabic-digit . (nil . "MuleArabic-0"))
-            (arabic-1-column . (nil . "MuleArabic-1"))
-            (arabic-2-column . (nil . "MuleArabic-2"))
-            (ipa . (nil . "MuleIPA"))
-            (ethiopic . (nil . "Ethiopic-Unicode"))
-            (ascii-right-to-left . (nil . "ISO8859-1"))
-            (indian-is13194 . (nil . "IS13194-Devanagari"))
-            (indian-2-column . (nil . "MuleIndian-2"))
-            (lao . (nil . "MuleLao-1"))
-            (tibetan . ("proportional" . "MuleTibetan-2"))
-            (tibetan-1-column . (nil . "MuleTibetan-1"))
-            (latin-iso8859-14 . (nil . "ISO8859-14"))
-            (latin-iso8859-15 . (nil . "ISO8859-15"))
-            (mule-unicode-0100-24ff . (nil . "ISO10646-1"))
-            (mule-unicode-2500-33ff . (nil . "ISO10646-1"))
-            (mule-unicode-e000-ffff . (nil . "ISO10646-1"))
-            (japanese-jisx0213-1 . (nil . "JISX0213.2000-1"))
-            (japanese-jisx0213-2 . (nil . "JISX0213.2000-2"))
-            ;; unicode
-            ((,(decode-char 'ucs #x0900) . ,(decode-char 'ucs #x097F))
-             . (nil . "ISO10646.indian-1"))
-            ;; Indian CDAC
-            (,(indian-font-char-range 'cdac:dv-ttsurekh)
-             . (nil . "Devanagari-CDAC"))
-            (,(indian-font-char-range 'cdac:sd-ttsurekh)
-             . (nil . "Sanskrit-CDAC"))
-            (,(indian-font-char-range 'cdac:bn-ttdurga)
-             . (nil . "Bengali-CDAC"))
-            (,(indian-font-char-range 'cdac:as-ttdurga)
-             . (nil . "Assamese-CDAC"))
-            (,(indian-font-char-range 'cdac:pn-ttamar)
-             . (nil . "Punjabi-CDAC"))
-            (,(indian-font-char-range 'cdac:gj-ttavantika)
-             . (nil . "Gujarati-CDAC"))
-            (,(indian-font-char-range 'cdac:or-ttsarala)
-             . (nil . "Oriya-CDAC"))
-            (,(indian-font-char-range 'cdac:tm-ttvalluvar)
-             . (nil . "Tamil-CDAC"))
-            (,(indian-font-char-range 'cdac:tl-tthemalatha)
-             . (nil . "Telugu-CDAC"))
-            (,(indian-font-char-range 'cdac:kn-ttuma)
-             . (nil . "Kannada-CDAC"))
-            (,(indian-font-char-range 'cdac:ml-ttkarthika)
-             . (nil . "Malayalam-CDAC"))
-            ;; Indian AKRUTI
-            (,(indian-font-char-range 'akruti:dev)
-             . (nil . "Devanagari-Akruti"))
-            (,(indian-font-char-range 'akruti:bng)
-             . (nil . "Bengali-Akruti"))
-            (,(indian-font-char-range 'akruti:pnj)
-             . (nil . "Punjabi-Akruti"))
-            (,(indian-font-char-range 'akruti:guj)
-             . (nil . "Gujarati-Akruti"))
-            (,(indian-font-char-range 'akruti:ori)
-             . (nil . "Oriya-Akruti"))
-            (,(indian-font-char-range 'akruti:tml)
-             . (nil . "Tamil-Akruti"))
-            (,(indian-font-char-range 'akruti:tlg)
-             . (nil . "Telugu-Akruti"))
-            (,(indian-font-char-range 'akruti:knd)
-             . (nil . "Kannada-Akruti"))
-            (,(indian-font-char-range 'akruti:mal)
-             . (nil . "Malayalam-Akruti"))
-            ))
-    (set-fontset-font "fontset-default" (car elt) (cdr elt))))
-
-;; Set arguments in `font-encoding-alist' (which see).
-(defun set-font-encoding (pattern charset encoding)
+  (new-fontset
+   "fontset-default"
+   `(;; for each script
+     (latin (nil . "ISO8859-1")
+           (nil . "ISO8859-2")
+           (nil . "ISO8859-3")
+           (nil . "ISO8859-4")
+           (nil . "ISO8859-9")
+           (nil . "ISO8859-10")
+           (nil . "ISO8859-13")
+           (nil . "ISO8859-14")
+           (nil . "ISO8859-15")
+           (nil . "VISCII1.1-1"))
+
+     (thai  ,(font-spec :registry "iso10646-1" :otf '(thai nil nil (mark)))
+           (nil . "TIS620*")
+           (nil . "ISO8859-11"))
+
+     (devanagari ,(font-spec :registry "iso10646-1" :otf '(deva nil (rphf)))
+                (nil . "iso10646.indian-1"))
+     (bengali ,(font-spec :registry "iso10646-1" :otf '(beng nil (rphf))))
+     (gurmukhi ,(font-spec :registry "iso10646-1" :otf '(guru nil (blwf))))
+     (gujarati ,(font-spec :registry "iso10646-1" :otf '(gujr nil (rphf))))
+     (oriya ,(font-spec :registry "iso10646-1" :otf '(orya nil (rphf))))
+     (tamil ,(font-spec :registry "iso10646-1" :otf '(taml nil (akhn))))
+     (telugu ,(font-spec :registry "iso10646-1" :otf '(telu nil (blwf))))
+     (kannada ,(font-spec :registry "iso10646-1" :otf '(knda nil (rphf))))
+     (sinhala ,(font-spec :registry "iso10646-1" :otf '(sinh nil (akhn))))
+     (malayalam ,(font-spec :registry "iso10646-1" :otf '(mlym nil (akhn))))
+
+     (lao ,(font-spec :registry "iso10646-1" :otf '(lao\  nil nil (mark)))
+         (nil . "MuleLao-1"))
+
+     (tai-viet ("TaiViet" . "iso10646-1"))
+
+     ;; both for script and charset.
+     (tibetan ,(font-spec :registry "iso10646-1"
+                         :otf '(tibt nil (ccmp blws abvs)))
+             ,(font-spec :family "mtib" :registry "iso10646-1")
+             (nil . "muletibetan-2"))
+
+     ;; both for script and charset.
+     (ethiopic ,(font-spec :registry "iso10646-1" :script 'ethiopic)
+              (nil . "ethiopic-unicode"))
+
+     (greek ,(font-spec :registry "iso10646-1" :script 'greek)
+           (nil . "ISO8859-7"))
+
+     (cyrillic ,(font-spec :registry "iso10646-1" :script 'cyrillic)
+              (nil . "ISO8859-5")
+              (nil . "microsoft-cp1251")
+              (nil . "koi8-r"))
+
+     (arabic ,(font-spec :registry "iso10646-1"
+                        :otf '(arab (init medi fini liga)))
+            (nil . "MuleArabic-0")
+            (nil . "MuleArabic-1")
+            (nil . "MuleArabic-2")
+            (nil . "ISO8859-6"))
+
+     (hebrew ,(font-spec :registry "iso10646-1" :script 'hebrew)
+            (nil . "ISO8859-8"))
+
+     (syriac ,(font-spec :registry "iso10646-1" :script 'syriac))
+
+     (thaana ,(font-spec :registry "iso10646-1" :otf '(thaa nil nil)))
+
+     (myanmar ,(font-spec :registry "iso10646-1" :script 'myanmar))
+
+     (georgian ,(font-spec :registry "iso10646-1" :script 'georgian))
+
+     (cherokee ,(font-spec :registry "iso10646-1" :script 'cherokee))
+
+     (canadian-aboriginal ,(font-spec :registry "iso10646-1"
+                                     :script 'canadian-aboriginal))
+
+     (ogham ,(font-spec :registry "iso10646-1" :script 'ogham))
+
+     (runic ,(font-spec :registry "iso10646-1" :script 'runic))
+
+     (khmer ,(font-spec :registry "iso10646-1" :otf '(khmr nil (pres))))
+
+     (yi ,(font-spec :registry "iso10646-1" :script 'yi))
+
+     (kana ,(font-spec :registry "iso10646-1" :script 'kana)
+          (nil . "JISX0208*")
+          (nil . "GB2312.1980-0")
+          (nil . "KSC5601.1987*")
+          (nil . "JISX0201*")
+          (nil . "JISX0213.2000-1")
+          (nil . "JISX0213.2004-1"))
+
+     (bopomofo (nil . "sisheng_cwnn-0"))
+
+     (han ,(font-spec :registry "iso10646-1" :language 'ja)
+         ,(font-spec :registry "iso10646-1" :language 'zh)
+         (nil . "GB2312.1980-0")
+         (nil . "JISX0208*")
+         (nil . "JISX0212*")
+         (nil . "big5*")
+         (nil . "KSC5601.1987*")
+         (nil . "CNS11643.1992-1")
+         (nil . "CNS11643.1992-2")
+         (nil . "CNS11643.1992-3")
+         (nil . "CNS11643.1992-4")
+         (nil . "CNS11643.1992-5")
+         (nil . "CNS11643.1992-6")
+         (nil . "CNS11643.1992-7")
+         (nil . "gbk-0")
+         (nil . "gb18030")
+         (nil . "JISX0213.2000-1")
+         (nil . "JISX0213.2000-2")
+         (nil . "JISX0213.2004-1"))
+
+     (cjk-misc (nil . "GB2312.1980-0")
+              (nil . "JISX0208*")
+              (nil . "JISX0212*")
+              (nil . "big5*")
+              (nil . "KSC5601.1987*")
+              (nil . "CNS11643.1992-1")
+              (nil . "CNS11643.1992-2")
+              (nil . "CNS11643.1992-3")
+              (nil . "CNS11643.1992-4")
+              (nil . "CNS11643.1992-5")
+              (nil . "CNS11643.1992-6")
+              (nil . "CNS11643.1992-7")
+              (nil . "gbk-0")
+              (nil . "gb18030")
+              (nil . "JISX0213.2000-1")
+              (nil . "JISX0213.2000-2"))
+
+     (hangul ,(font-spec :registry "iso10646-1" :language 'ko)
+            (nil . "KSC5601.1987-0"))
+
+     ;; for each charset
+     (ascii (nil . "ISO8859-1"))
+     (arabic-digit ("*" . "MuleArabic-0"))
+     (arabic-1-column ("*" . "MuleArabic-1"))
+     (arabic-2-column ("*" . "MuleArabic-2"))
+     (indian-is13194 (nil . "is13194-devanagari"))
+     (indian-1-column ("*" . "muleindian-2"))
+     ;; Indian CDAC
+     (devanagari-cdac (nil . "Devanagari-CDAC"))
+     (sanskrit-cdac (nil . "Sanskrit-CDAC"))
+     (bengali-cdac (nil . "Bengali-CDAC"))
+     (assamese-cdac (nil . "Assamese-CDAC"))
+     (punjabi-cdac (nil . "Punjabi-CDAC"))
+     (gujarati-cdac (nil . "Gujarati-CDAC"))
+     (oriya-cdac (nil . "Oriya-CDAC"))
+     (tamil-cdac (nil . "Tamil-CDAC"))
+     (telugu-cdac (nil . "Telugu-CDAC"))
+     (kannada-cdac (nil . "Kannada-CDAC"))
+     (malayalam-cdac (nil . "Malayalam-CDAC"))
+     ;; Indian AKRUTI
+     (devanagari-akruti (nil . "Devanagari-Akruti"))
+     (bengali-akruti (nil . "Bengali-Akruti"))
+     (punjabi-akruti (nil . "Punjabi-Akruti"))
+     (gujarati-akruti (nil . "Gujarati-Akruti"))
+     (oriya-akruti (nil . "Oriya-Akruti"))
+     (tamil-akruti (nil . "Tamil-Akruti"))
+     (telugu-akruti (nil . "Telugu-Akruti"))
+     (kannada-akruti (nil . "Kannada-Akruti"))
+     (malayalam-akruti (nil . "Malayalam-Akruti"))
+     ;;(devanagari-glyph ("altsys-dv_ttsurekh" . "devanagari-cdac"))
+     ;;(malayalam-glyph ("altsys-ml_ttkarthika" . "malayalam-cdac"))
+     (ipa (nil . "MuleIPA-1"))
+
+     ;; Fallback fonts
+     (nil (nil . "gb2312.1980")
+         (nil . "gbk-0")
+         (nil . "gb18030")
+         (nil . "jisx0208")
+         (nil . "ksc5601.1987")
+         (nil . "CNS11643.1992-1")
+         (nil . "CNS11643.1992-2")
+         (nil . "CNS11643.1992-3")
+         (nil . "CNS11643.1992-4")
+         (nil . "CNS11643.1992-5")
+         (nil . "CNS11643.1992-6")
+         (nil . "CNS11643.1992-7")
+         (nil . "big5")
+         (nil . "jisx0213.2000-1")
+         (nil . "jisx0213.2004-1")
+         (nil . "jisx0212"))
+     ))
+
+  ;; Append Unicode fonts.
+  ;; This may find fonts with more variants (bold, italic) but which
+  ;; don't cover many characters.
+  (set-fontset-font "fontset-default" nil
+                   '(nil . "iso10646-1") nil 'append)
+  ;; These may find fonts that cover many characters but with fewer
+  ;; variants.
+  (set-fontset-font "fontset-default" nil
+                   '("gnu-unifont" . "iso10646-1") nil 'append)
+  (set-fontset-font "fontset-default" nil
+                   '("mutt-clearlyu" . "iso10646-1") nil 'append))
+
+;; These are the registered registries/encodings from
+;; ftp://ftp.x.org/pub/DOCS/registry 2001/06/01
+
+;; Name                                            Reference
+;; ----                                            ---------
+;; "DEC"                                           [27]
+;;         registry prefix
+;; "DEC.CNS11643.1986-2"                           [53]
+;;         CNS11643 2-plane using the encoding
+;;         suggested in that standard
+;; "DEC.DTSCS.1990-2"                              [54]
+;;         DEC Taiwan Supplemental Character Set
+;; "fujitsu.u90x01.1991-0"                         [87]
+;; "fujitsu.u90x03.1991-0"                         [87]
+;; "GB2312.1980-0"                                 [39],[12]
+;;         China (PRC) Hanzi, GL encoding
+;; "GB2312.1980-1"                                 [39]
+;;         (deprecated)
+;;         China (PRC) Hanzi, GR encoding
+;; "HP-Arabic8"                                    [36]
+;;         HPARABIC8 8-bit character set
+;; "HP-East8"                                      [36]
+;;         HPEAST8 8-bit character set
+;; "HP-Greek8"                                     [36]
+;;         HPGREEK8 8-bit character set
+;; "HP-Hebrew8"                                    [36]
+;;         HPHEBREW8 8-bit character set
+;; "HP-Japanese15"                                 [36]
+;;         HPJAPAN15 15-bit characer set,
+;;         modified from industry defacto
+;;         standard Shift-JIS
+;; "HP-Kana8"                                      [36]
+;;         HPKANA8 8-bit character set
+;; "HP-Korean15"                                   [36]
+;;         HPKOREAN15 15-bit character set
+;; "HP-Roman8"                                     [36]
+;;         HPROMAN8 8-bit character set
+;; "HP-SChinese15"                                 [36]
+;;         HPSCHINA15 15-bit character set for
+;;         support of Simplified Chinese
+;; "HP-TChinese15"                                 [36]
+;;         HPTCHINA15 15-bit character set for
+;;         support of Traditional Chinese
+;; "HP-Turkish8"                                   [36]
+;;         HPTURKISH8 8-bit character set
+;; "IPSYS"                                         [59]
+;;         registry prefix
+;; "IPSYS.IE-1"                                    [59]
+;; "ISO2022"<REG>"-"<ENC>                          [44]
+;; "ISO646.1991-IRV"                               [107]
+;;         ISO 646 International Reference Version
+;; "ISO8859-1"                                     [15],[12]
+;;         ISO Latin alphabet No. 1
+;; "ISO8859-2"                                     [15],[12]
+;;         ISO Latin alphabet No. 2
+;; "ISO8859-3"                                     [15],[12]
+;;         ISO Latin alphabet No. 3
+;; "ISO8859-4"                                     [15],[12]
+;;         ISO Latin alphabet No. 4
+;; "ISO8859-5"                                     [15],[12]
+;;         ISO Latin/Cyrillic alphabet
+;; "ISO8859-6"                                     [15],[12]
+;;         ISO Latin/Arabic alphabet
+;; "ISO8859-7"                                     [15],[12]
+;;         ISO Latin/Greek alphabet
+;; "ISO8859-8"                                     [15],[12]
+;;         ISO Latin/Hebrew alphabet
+;; "ISO8859-9"                                     [15],[12]
+;;         ISO Latin alphabet No. 5
+;; "ISO8859-10"                                    [15],[12]
+;;         ISO Latin alphabet No. 6
+;; "ISO8859-13"                                    [15],[12]
+;;         ISO Latin alphabet No. 7
+;; "ISO8859-14"                                    [15],[12]
+;;         ISO Latin alphabet No. 8
+;; "ISO8859-15"                                    [15],[12]
+;;         ISO Latin alphabet No. 9
+;; "FCD8859-15"                                    [7]
+;;         (deprecated)
+;;         ISO Latin alphabet No. 9, Final Committee Draft
+;; "ISO10646-1"                                    [133]
+;;         Unicode Universal Multiple-Octet Coded Character Set
+;; "ISO10646-MES"                                  [133]
+;;         (deprecated)
+;;         Unicode Minimum European Subset
+;; "JISX0201.1976-0"                               [38],[12]
+;;         8-Bit Alphanumeric-Katakana Code
+;; "JISX0208.1983-0"                               [40],[12]
+;;         Japanese Graphic Character Set,
+;;         GL encoding
+;; "JISX0208.1990-0"                               [71]
+;;         Japanese Graphic Character Set,
+;;         GL encoding
+;; "JISX0208.1983-1"                               [40]
+;;         (deprecated)
+;;         Japanese Graphic Character Set,
+;;         GR encoding
+;; "JISX0212.1990-0"                               [72]
+;;         Supplementary Japanese Graphic Character Set,
+;;         GL encoding
+;; "KOI8-R"                                        [119]
+;;         Cyrillic alphabet
+;; "KSC5601.1987-0"                                [41],[12]
+;;         Korean Graphic Character Set,
+;;         GL encoding
+;; "KSC5601.1987-1"                                [41]
+;;         (deprecated)
+;;         Korean Graphic Character Set,
+;;         GR encoding
+;; "omron_CNS11643-0"                              [45]
+;; "omron_CNS11643-1"                              [45]
+;; "omron_BIG5-0"                                  [45]
+;; "omron_BIG5-1"                                  [45]
+;; "wn.tamil.1993"                                 [103]
+
+(defun set-font-encoding (pattern charset)
+  "Set arguments in `font-encoding-alist' (which see)."
   (let ((slot (assoc pattern font-encoding-alist)))
     (if slot
-       (let ((place (assq charset (cdr slot))))
-         (if place
-             (setcdr place encoding)
-           (setcdr slot (cons (cons charset encoding) (cdr slot)))))
+       (setcdr slot charset)
       (setq font-encoding-alist
-           (cons (list pattern (cons charset encoding)) font-encoding-alist)))
-    ))
-
-;; Allow display of arbitrary characters with an iso-10646-encoded
-;; (`Unicode') font.
-(define-translation-table 'ucs-mule-to-mule-unicode
-  ucs-mule-to-mule-unicode)
-(define-translation-hash-table 'ucs-mule-cjk-to-unicode
-  ucs-mule-cjk-to-unicode)
-
-(define-ccl-program ccl-encode-unicode-font
-  `(0
-    ;; r0: charset-id
-    ;; r1: 1st position code
-    ;; r2: 2nd position code (if r0 is 2D charset)
-    ((if (r0 == ,(charset-id 'ascii))
-        ((r2 = r1)
-         (r1 = 0))
-       ;; At first, try to get a Unicode code point directly.
-       ((if (r2 >= 0)
-           ;; This is a 2D charset.
-           (r1 = ((r1 << 7) | r2)))
-       (lookup-character utf-subst-table-for-encode r0 r1)
-       (if r7
-           ;; We got it!
-           ((r1 = (r0 >> 8))
-            (r2 = (r0 & #xFF)))
-         ;; Look for a translation for non-ASCII chars.
-         ((translate-character ucs-mule-to-mule-unicode r0 r1)
-          (if (r0 == ,(charset-id 'ascii))
-              ((r2 = r1)
-               (r1 = 0))
-            ((if (r0 == ,(charset-id 'latin-iso8859-1))
-                 ((r2 = (r1 + 128))
-                  (r1 = 0))
-               ((r2 = (r1 & #x7F))
-                (r1 >>= 7)
-                (if (r0 == ,(charset-id 'mule-unicode-0100-24ff))
-                    ((r1 *= 96)
-                     (r1 += r2)
-                     (r1 += ,(- #x100 (* 32 96) 32))
-                     (r1 >8= 0)
-                     (r2 = r7))
-                  (if (r0 == ,(charset-id 'mule-unicode-2500-33ff))
-                      ((r1 *= 96)
-                       (r1 += r2)
-                       (r1 += ,(- #x2500 (* 32 96) 32))
-                       (r1 >8= 0)
-                       (r2 = r7))
-                    (if (r0 == ,(charset-id 'mule-unicode-e000-ffff))
-                        ((r1 *= 96)
-                         (r1 += r2)
-                         (r1 += ,(- #xe000 (* 32 96) 32))
-                         (r1 >8= 0)
-                         (r2 = r7))
-                      ;; No way, use the glyph for U+FFFD.
-                      ((r1 = #xFF)
-                       (r2 = #xFD)))))))))))))))
-  "Encode characters for display with iso10646 font.
-Translate through the translation-hash-table named
-`ucs-mule-cjk-to-unicode' and the translation-table named
-`ucs-mule-to-mule-unicode' initially.")
-
-;; Use the above CCL encoder for Unicode fonts.  Please note that the
-;; regexp is not simply "ISO10646-1" because there exists, for
-;; instance, the following Devanagari Unicode fonts:
-;;     -misc-fixed-medium-r-normal--24-240-72-72-c-120-iso10646.indian-1
-;;     -sibal-devanagari-medium-r-normal--24-240-75-75-P--iso10646-dev
-(setq font-ccl-encoder-alist
-      (cons '("ISO10646.*-*" . ccl-encode-unicode-font)
-           font-ccl-encoder-alist))
+           (cons (cons pattern charset) font-encoding-alist)))))
 
 ;; Setting for suppressing XLoadQueryFont on big fonts.
 (setq x-pixel-size-width-font-regexp
-      "gb2312\\|jisx0208\\|ksc5601\\|cns11643\\|big5")
+      "gb2312\\|gbk\\|gb18030\\|jisx0208\\|ksc5601\\|cns11643\\|big5")
 
 ;; These fonts require vertical centering.
 (setq vertical-centering-font-regexp
-      "gb2312\\|jisx0208\\|jisx0212\\|ksc5601\\|cns11643\\|big5")
+      "gb2312\\|gbk\\|gb18030\\|jisx0208\\|jisx0212\\|ksc5601\\|cns11643\\|big5")
 
 ;; CDAC fonts are actually smaller than their design sizes.
 (setq face-font-rescale-alist
       '(("-cdac$" . 1.3)))
 
-(defvar x-font-name-charset-alist
-  '(("iso8859-1" ascii latin-iso8859-1)
-    ("iso8859-2" ascii latin-iso8859-2)
-    ("iso8859-3" ascii latin-iso8859-3)
-    ("iso8859-4" ascii latin-iso8859-4)
-    ("iso8859-5" ascii cyrillic-iso8859-5)
-    ("iso8859-6" ascii arabic-iso8859-6)
-    ("iso8859-7" ascii greek-iso8859-7)
-    ("iso8859-8" ascii hebrew-iso8859-8)
-    ("iso8859-14" ascii latin-iso8859-14)
-    ("iso8859-15" ascii latin-iso8859-15)
-    ("tis620" ascii thai-tis620)
-    ("koi8" ascii cyrillic-iso8859-5)
-    ("viscii" ascii vietnamese-viscii-upper vietnamese-viscii-lower)
-    ("vscii" ascii vietnamese-viscii-upper vietnamese-viscii-lower)
-    ("mulelao-1" ascii lao)
-    ("iso10646-1" ascii latin-iso8859-1 mule-unicode-0100-24ff
-     mule-unicode-2500-33ff mule-unicode-e000-ffff))
-  "Alist of font names vs list of charsets the font can display.
-
-When a font name which matches some element of this alist is given as
-`-fn' command line argument or is specified by X resource, a fontset
-which uses the specified font for the corresponding charsets are
-created and used for the initial frame.")
+(defvar x-font-name-charset-alist nil
+  "This variable has no meaning now.  Just kept for backward compatibility.")
 
 ;;; XLFD (X Logical Font Description) format handler.
 
 ;; Define XLFD's field index numbers.          ; field name
-(defconst xlfd-regexp-foundry-subnum 0)                ; FOUNDRY
-(defconst xlfd-regexp-family-subnum 1)         ; FAMILY_NAME
-(defconst xlfd-regexp-weight-subnum 2)         ; WEIGHT_NAME
-(defconst xlfd-regexp-slant-subnum 3)          ; SLANT
-(defconst xlfd-regexp-swidth-subnum 4)         ; SETWIDTH_NAME
-(defconst xlfd-regexp-adstyle-subnum 5)                ; ADD_STYLE_NAME
-(defconst xlfd-regexp-pixelsize-subnum 6)      ; PIXEL_SIZE
-(defconst xlfd-regexp-pointsize-subnum 7)      ; POINT_SIZE
-(defconst xlfd-regexp-resx-subnum 8)           ; RESOLUTION_X
-(defconst xlfd-regexp-resy-subnum 9)           ; RESOLUTION_Y
-(defconst xlfd-regexp-spacing-subnum 10)       ; SPACING
-(defconst xlfd-regexp-avgwidth-subnum 11)      ; AVERAGE_WIDTH
-(defconst xlfd-regexp-registry-subnum 12)      ; CHARSET_REGISTRY
-(defconst xlfd-regexp-encoding-subnum 13)      ; CHARSET_ENCODING
+(defconst xlfd-regexp-family-subnum 0)         ; FOUNDRY and FAMILY
+(defconst xlfd-regexp-weight-subnum 1)         ; WEIGHT_NAME
+(defconst xlfd-regexp-slant-subnum 2)          ; SLANT
+(defconst xlfd-regexp-swidth-subnum 3)         ; SETWIDTH_NAME
+(defconst xlfd-regexp-adstyle-subnum 4)                ; ADD_STYLE_NAME
+(defconst xlfd-regexp-pixelsize-subnum 5)      ; PIXEL_SIZE
+(defconst xlfd-regexp-pointsize-subnum 6)      ; POINT_SIZE
+(defconst xlfd-regexp-resx-subnum 7)           ; RESOLUTION_X
+(defconst xlfd-regexp-resy-subnum 8)           ; RESOLUTION_Y
+(defconst xlfd-regexp-spacing-subnum 8)                ; SPACING
+(defconst xlfd-regexp-avgwidth-subnum 10)      ; AVERAGE_WIDTH
+(defconst xlfd-regexp-registry-subnum 11)      ; REGISTRY and ENCODING
 
 ;; Regular expression matching against a fontname which conforms to
 ;; XLFD (X Logical Font Description).  All fields in XLFD should be
 ;; not be omitted (but can be a wild card) to be matched.
 (defconst xlfd-tight-regexp
   "^\
+-\\([^-]*-[^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)\
 -\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)\
--\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)\
--\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)$")
+-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*-[^-]*\\)$")
+
+;; Regular expression matching against a fontname which conforms to
+;; XLFD (X Logical Font Description).  All fields in XLFD from FOUNDRY
+;; to ADSTYLE, REGISTRY, and ENCODING should be not be omitted (but
+;; can be a wild card) to be matched.
+(defconst xlfd-style-regexp
+  "^\
+-\\([^-]*-[^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-.*\
+-\\([^-]*-[^-]*\\)$")
 
 ;; List of field numbers of XLFD whose values are numeric.
 (defconst xlfd-regexp-numeric-subnums
-  (list xlfd-regexp-pixelsize-subnum   ;6
-       xlfd-regexp-pointsize-subnum    ;7
-       xlfd-regexp-resx-subnum         ;8
-       xlfd-regexp-resy-subnum         ;9
-       xlfd-regexp-avgwidth-subnum     ;11
+  (list xlfd-regexp-pixelsize-subnum   ;5
+       xlfd-regexp-pointsize-subnum    ;6
+       xlfd-regexp-resx-subnum         ;7
+       xlfd-regexp-resy-subnum         ;8
+       xlfd-regexp-avgwidth-subnum     ;10
        ))
 
 (defun x-decompose-font-name (pattern)
-  "Decompose PATTERN into XLFD's fields and return vector of the fields.
-The length of the vector is 14.
-
-If PATTERN doesn't conform to XLFD, try to get a full XLFD name from
-X server and use the information of the full name to decompose
-PATTERN.  If no full XLFD name is gotten, return nil."
-  (let (xlfd-fields fontname)
-    (if (string-match xlfd-tight-regexp pattern)
-       (let ((i 0))
-         (setq xlfd-fields (make-vector 14 nil))
-         (while (< i 14)
-           (aset xlfd-fields i (match-string (1+ i) pattern))
-           (setq i (1+ i)))
-         xlfd-fields)
-      (setq fontname (condition-case nil
-                        (x-resolve-font-name pattern)
-                      (error)))
-      (if (and fontname
-              (string-match xlfd-tight-regexp fontname))
-         ;; We get a full XLFD name.
-         (let ((len (length pattern))
-               (i 0)
-               l)
-           ;; Setup xlfd-fields by the full XLFD name.  Each element
-           ;; should be a cons of matched index and matched string.
-           (setq xlfd-fields (make-vector 14 nil))
-           (while (< i 14)
-             (aset xlfd-fields i
-                   (cons (match-beginning (1+ i))
-                         (match-string (1+ i) fontname)))
-             (setq i (1+ i)))
-
-           ;; Replace wild cards in PATTERN by regexp codes.
-           (setq i 0)
-           (while (< i len)
-             (let ((ch (aref pattern i)))
-               (if (= ch ??)
-                   (setq pattern (concat (substring pattern 0 i)
-                                         "\\(.\\)"
-                                         (substring pattern (1+ i)))
-                         len (+ len 4)
-                         i (+ i 4))
-                 (if (= ch ?*)
-                     (setq pattern (concat (substring pattern 0 i)
-                                           "\\(.*\\)"
-                                           (substring pattern (1+ i)))
-                           len (+ len 5)
-                           i (+ i 5))
-                   (setq i (1+ i))))))
-
-           ;; Set each element of xlfd-fields to proper strings.
-           (if (string-match pattern fontname)
-               ;; The regular expression PATTERN matchs the full XLFD
-               ;; name.  Set elements that correspond to a wild card
-               ;; in PATTERN to "*", set the other elements to the
-               ;; exact strings in PATTERN.
-               (let ((l (cdr (cdr (match-data)))))
-                 (setq i 0)
-                 (while (< i 14)
-                   (if (or (null l) (< (car (aref xlfd-fields i)) (car l)))
-                       (progn
-                         (aset xlfd-fields i (cdr (aref xlfd-fields i)))
-                         (setq i (1+ i)))
-                     (if (< (car (aref xlfd-fields i)) (car (cdr l)))
-                         (progn
-                           (aset xlfd-fields i "*")
-                           (setq i (1+ i)))
-                       (setq l (cdr (cdr l)))))))
-             ;; Set each element of xlfd-fields to the exact string
-             ;; in the corresonding fields in full XLFD name.
-             (setq i 0)
-             (while (< i 14)
-               (aset xlfd-fields i (cdr (aref xlfd-fields i)))
-               (setq i (1+ i))))
-           xlfd-fields)))))
-
-;; Replace consecutive wild-cards (`*') in NAME to one.
-;; Ex. (x-reduce-font-name "-*-*-*-iso8859-1") => "-*-iso8859-1"
-(defsubst x-reduce-font-name (name)
-  (while (string-match "-\\*-\\(\\*-\\)+" name)
-    (setq name (replace-match "-*-" t t name)))
-  name)
+  "Decompose PATTERN into XLFD fields and return a vector of the fields.
+The length of the vector is 12.
+The FOUNDRY and FAMILY fields are concatinated and stored in the first
+element of the vector.
+The REGISTRY and ENCODING fields are concatinated and stored in the last
+element of the vector.
+
+Return nil if PATTERN doesn't conform to XLFD."
+  (if (string-match xlfd-tight-regexp pattern)
+      (let ((xlfd-fields (make-vector 12 nil)))
+       (dotimes (i 12)
+         (aset xlfd-fields i (match-string (1+ i) pattern)))
+       (dotimes (i 12)
+         (if (string-match "^[*-]+$" (aref xlfd-fields i))
+             (aset xlfd-fields i nil)))
+       xlfd-fields)))
 
 (defun x-compose-font-name (fields &optional reduce)
-  "Compose X's fontname from FIELDS.
-FIELDS is a vector of XLFD fields, of length 14.
+  "Compose X fontname from FIELDS.
+FIELDS is a vector of XLFD fields, of length 12.
 If a field is nil, wild-card letter `*' is embedded.
 Optional argument REDUCE exists just for backward compatibility,
 and is always ignored."
@@ -398,7 +684,7 @@ If no font matching XLFD-FIELDS is available, successively replace
 parts of the font name pattern with \"*\" until some font is found.
 Value is name of that font."
   (let ((ascii-font nil) (index 0))
-    (while (and (null ascii-font) (<= index xlfd-regexp-encoding-subnum))
+    (while (and (null ascii-font) (<= index xlfd-regexp-registry-subnum))
       (let ((pattern (x-compose-font-name xlfd-fields)))
        (condition-case nil
            (setq ascii-font (x-resolve-font-name pattern))
@@ -411,55 +697,21 @@ Value is name of that font."
     ascii-font))
 
 
-(defun x-complement-fontset-spec (xlfd-fields fontlist)
-  "Complement FONTLIST for charsets based on XLFD-FIELDS and return it.
-XLFD-FIELDS is a vector of XLFD (X Logical Font Description) fields.
-FONTLIST is an alist of charsets vs the corresponding font names.
-
-The fonts are complemented as below.
-
-If FONTLIST doesn't specify a font for ASCII charset, generate a font
-name for the charset from XLFD-FIELDS, and add that information to
-FONTLIST.
-
-If a font specifid for ASCII supports the other charsets (see the
-variable `x-font-name-charset-alist'), add that information to FONTLIST."
-  (let* ((slot (assq 'ascii fontlist))
-        (ascii-font (cdr slot))
-        ascii-font-spec)
-    (if ascii-font
-       (setcdr slot (setq ascii-font (x-resolve-font-name ascii-font)))
-      ;; If font for ASCII is not specified, add it.
-      (aset xlfd-fields xlfd-regexp-registry-subnum "iso8859")
-      (aset xlfd-fields xlfd-regexp-encoding-subnum "1")
-      (setq ascii-font (x-must-resolve-font-name xlfd-fields))
-      (setq fontlist (cons (cons 'ascii ascii-font) fontlist)))
-
-    ;; If the font for ASCII also supports the other charsets, and
-    ;; they are not specified in FONTLIST, add them.
-    (setq xlfd-fields (x-decompose-font-name ascii-font))
-    (if (not xlfd-fields)
-       (setq ascii-font-spec ascii-font)
-      (setq ascii-font-spec
-           (cons (format "%s-%s"
-                         (aref xlfd-fields xlfd-regexp-foundry-subnum)
-                         (aref xlfd-fields xlfd-regexp-family-subnum))
-                 (format "%s-%s"
-                         (aref xlfd-fields xlfd-regexp-registry-subnum)
-                         (aref xlfd-fields xlfd-regexp-encoding-subnum)))))
-    (let ((tail x-font-name-charset-alist)
-         elt)
-      (while tail
-       (setq elt (car tail) tail (cdr tail))
-       (if (string-match (car elt) ascii-font)
-           (let ((charsets (cdr elt))
-                 charset)
-             (while charsets
-               (setq charset (car charsets) charsets (cdr charsets))
-               (or (assq charset fontlist)
-                   (setq fontlist
-                         (cons (cons charset ascii-font-spec) fontlist))))))))
-
+(defun x-complement-fontset-spec (default-spec fontlist)
+  "Complement elements of FONTLIST based on DEFAULT-SPEC.
+DEFAULT-SPEC is a font-spec object providing default font properties.
+FONTLIST is an alist of script names vs the corresponding font names.
+
+The font names are parsed and unspecified font properties are
+given from DEFAULT-SPEC."
+  (let ((prop-list '(:foundry :family :weight :slant :width :adstyle :size)))
+    (dolist (elt fontlist)
+      (let ((spec (font-spec :name (cadr elt))))
+       (dolist (prop prop-list)
+         (let ((val (font-get spec prop)))
+           (or val
+               (font-put spec prop (font-get default-spec prop)))))
+       (setcar (cdr elt) spec)))
     fontlist))
 
 (defun fontset-name-p (fontset)
@@ -470,17 +722,15 @@ with \"fontset\" in `<CHARSET_REGISTRY>' field."
        (string= (match-string (1+ xlfd-regexp-registry-subnum) fontset)
                "fontset")))
 
-;; Return a list to be appended to `x-fixed-font-alist' when
-;; `mouse-set-font' is called.
 (defun generate-fontset-menu ()
-  (let ((fontsets (fontset-list))
-       fontset-name
-       l)
-    (while fontsets
-      (setq fontset-name (car fontsets) fontsets (cdr fontsets))
-      (setq l (cons (list (fontset-plain-name fontset-name) fontset-name) l)))
+  "Return list to be appended to `x-fixed-font-alist'.
+Done when `mouse-set-font' is called."
+  (let (l)
+    (dolist (fontset (fontset-list))
+      (or (string-match "fontset-default$" fontset)
+         (push (list (fontset-plain-name fontset) fontset) l)))
     (cons "Fontset"
-         (sort l (function (lambda (x y) (string< (car x) (car y))))))))
+         (sort l #'(lambda (x y) (string< (car x) (car y)))))))
 
 (defun fontset-plain-name (fontset)
   "Return a plain and descriptive name of FONTSET."
@@ -488,92 +738,140 @@ with \"fontset\" in `<CHARSET_REGISTRY>' field."
       (error "Invalid fontset: %s" fontset))
   (let ((xlfd-fields (x-decompose-font-name fontset)))
     (if xlfd-fields
-       (let ((weight (aref xlfd-fields xlfd-regexp-weight-subnum))
+       (let ((family (aref xlfd-fields xlfd-regexp-family-subnum))
+             (weight (aref xlfd-fields xlfd-regexp-weight-subnum))
              (slant  (aref xlfd-fields xlfd-regexp-slant-subnum))
              (swidth (aref xlfd-fields xlfd-regexp-swidth-subnum))
              (size   (aref xlfd-fields xlfd-regexp-pixelsize-subnum))
-             (charset (aref xlfd-fields xlfd-regexp-registry-subnum))
-             (nickname (aref xlfd-fields xlfd-regexp-encoding-subnum))
+             (nickname (aref xlfd-fields xlfd-regexp-registry-subnum))
              name)
-         (if (not (string= "fontset" charset))
-             fontset
-           (if (> (string-to-number size) 0)
-               (setq name (format "%s: %s-dot" nickname size))
-             (setq name nickname))
-           (cond ((string-match "^medium$" weight)
-                  (setq name (concat name " " "medium")))
-                 ((string-match "^bold$\\|^demibold$" weight)
-                  (setq name (concat name " " weight))))
-           (cond ((string-match "^i$" slant)
-                  (setq name (concat name " " "italic")))
-                 ((string-match "^o$" slant)
-                  (setq name (concat name " " "slant")))
-                 ((string-match "^ri$" slant)
-                  (setq name (concat name " " "reverse italic")))
-                 ((string-match "^ro$" slant)
-                  (setq name (concat name " " "reverse slant"))))
-           name))
+         (if (not (string-match "^fontset-\\(.*\\)$" nickname))
+             (setq nickname family)
+           (setq nickname (match-string 1 nickname)))
+         (if (and size (> (string-to-number size) 0))
+             (setq name (format "%s: %s-dot" nickname size))
+           (setq name nickname))
+         (and weight
+              (cond ((string-match "^medium$" weight)
+                     (setq name (concat name " " "medium")))
+                    ((string-match "^bold$\\|^demibold$" weight)
+                     (setq name (concat name " " weight)))))
+         (and slant
+              (cond ((string-match "^i$" slant)
+                     (setq name (concat name " " "italic")))
+                    ((string-match "^o$" slant)
+                     (setq name (concat name " " "slant")))
+                    ((string-match "^ri$" slant)
+                     (setq name (concat name " " "reverse italic")))
+                    ((string-match "^ro$" slant)
+                     (setq name (concat name " " "reverse slant")))))
+         name)
       fontset)))
 
+(defvar charset-script-alist
+  '((ascii . latin)
+    (latin-iso8859-1 . latin)
+    (latin-iso8859-2 . latin)
+    (latin-iso8859-3 . latin)
+    (latin-iso8859-4 . latin)
+    (latin-iso8859-9 . latin)
+    (latin-iso8859-10 . latin)
+    (latin-iso8859-13 . latin)
+    (latin-iso8859-14 . latin)
+    (latin-iso8859-15 . latin)
+    (latin-iso8859-16 . latin)
+    (latin-jisx0201 . latin)
+    (thai-tis620 . thai)
+    (cyrillic-iso8859-5 . cyrillic)
+    (arabic-iso8859-6 . arabic)
+    (greek-iso8859-7 . latin)
+    (hebrew-iso8859-8 . latin)
+    (katakana-jisx0201 . kana)
+    (chinese-gb2312 . han)
+    (chinese-gbk . han)
+    (gb18030-2-byte . han)
+    (gb18030-4-byte-bmp . han)
+    (gb18030-4-byte-ext-1 . han)
+    (gb18030-4-byte-ext-2 . han)
+    (gb18030-4-byte-smp . han)
+    (chinese-big5-1 . han)
+    (chinese-big5-2 . han)
+    (chinese-cns11643-1 . han)
+    (chinese-cns11643-2 . han)
+    (chinese-cns11643-3 . han)
+    (chinese-cns11643-4 . han)
+    (chinese-cns11643-5 . han)
+    (chinese-cns11643-6 . han)
+    (chinese-cns11643-7 . han)
+    (japanese-jisx0208 . han)
+    (japanese-jisx0208-1978 . han)
+    (japanese-jisx0212 . han)
+    (japanese-jisx0213-1 . han)
+    (japanese-jisx0213-2 . han)
+    (korean-ksc5601 . hangul)
+    (chinese-sisheng . bopomofo)
+    (vietnamese-viscii-lower . latin)
+    (vietnamese-viscii-upper . latin)
+    (arabic-digit . arabic)
+    (arabic-1-column . arabic)
+    (arabic-2-column . arabic)
+    (indian-is13194 . devanagari)
+    (indian-glyph . devanagari)
+    (indian-1-column . devanagari)
+    (indian-2-column . devanagari)
+    (tibetan-1-column . tibetan))
+  "Alist of charsets vs the corresponding most appropriate scripts.
+
+This alist is used by the function `create-fontset-from-fontset-spec'
+to map charsets to scripts.")
 
 (defun create-fontset-from-fontset-spec (fontset-spec
                                         &optional style-variant noerror)
   "Create a fontset from fontset specification string FONTSET-SPEC.
 FONTSET-SPEC is a string of the format:
-       FONTSET-NAME,CHARSET0:FONT0,CHARSET1:FONT1, ...
+       FONTSET-NAME,SCRIPT0:FONT0,SCRIPT1:FONT1, ...
 Any number of SPACE, TAB, and NEWLINE can be put before and after commas.
 
-Optional 2nd arg exists just for backward compatibility, and is ignored.
+When a frame uses the fontset as the `font' parameter, the frame's
+default font name is derived from FONTSET-NAME by substituting
+\"iso8859-1\" for the tail part \"fontset-XXX\".  But, if SCRIPT-NAMEn
+is \"ascii\", use the corresponding FONT-NAMEn as the default font
+name.
 
-If this function attempts to create already existing fontset, an error is
-signaled unless the optional 3rd argument NOERROR is non-nil.
+Optional 2nd and 3rd arguments exist just for backward compatibility,
+and are ignored.
 
-It returns a name of the created fontset."
-  (if (not (string-match "^[^,]+" fontset-spec))
+It returns a name of the created fontset.
+
+For backward compatibility, SCRIPT-NAME may be a charset name, in
+which case, the corresponding script is decided by the variable
+`charset-script-alist' (which see)."
+  (or (string-match "^[^,]+" fontset-spec)
       (error "Invalid fontset spec: %s" fontset-spec))
-  (setq fontset-spec (downcase fontset-spec))
   (let ((idx (match-end 0))
        (name (match-string 0 fontset-spec))
-       xlfd-fields charset fontlist ascii-font)
-    (if (query-fontset name)
-       (or noerror
-           (error "Fontset \"%s\" already exists" name))
-      (setq xlfd-fields (x-decompose-font-name name))
-      (or xlfd-fields
-         (error "Fontset \"%s\" not conforming to XLFD" name))
-
-      ;; At first, extract pairs of charset and fontname from FONTSET-SPEC.
-      (while (string-match "[, \t\n]*\\([^:]+\\):[ \t]*\\([^,]+\\)"
-                          fontset-spec idx)
-       (setq idx (match-end 0))
-       (setq charset (intern (match-string 1 fontset-spec)))
-       (if (charsetp charset)
-           (setq fontlist (cons (cons charset (match-string 2 fontset-spec))
-                                fontlist))))
-      (setq ascii-font (cdr (assq 'ascii fontlist)))
-
-      ;; Complement FONTLIST.
-      (setq fontlist (x-complement-fontset-spec xlfd-fields fontlist))
-
-      (new-fontset name fontlist)
-
-      ;; Define the short name alias.
-      (if (and (string-match "fontset-.*$" name)
-              (not (assoc name fontset-alias-alist)))
-         (let ((alias (match-string 0 name)))
-           (or (rassoc alias fontset-alias-alist)
-               (setq fontset-alias-alist
-                     (cons (cons name alias) fontset-alias-alist)))))
-
-      ;; Define the ASCII font name alias.
-      (or ascii-font
-         (setq ascii-font (cdr (assq 'ascii fontlist))))
-      (or (rassoc ascii-font fontset-alias-alist)
-         (setq fontset-alias-alist
-               (cons (cons name ascii-font)
-                     fontset-alias-alist))))
-
-    name))
+       default-spec target script fontlist)
+    (or (string-match xlfd-tight-regexp name)
+       (error "Fontset name \"%s\" not conforming to XLFD" name))
+    (setq default-spec (font-spec :name name))
+    ;; At first, extract pairs of charset and fontname from FONTSET-SPEC.
+    (while (string-match "[, \t\n]*\\([^:]+\\):[ \t]*\\([^,]+\\)" 
+                        fontset-spec idx)
+      (setq idx (match-end 0))
+      (setq target (intern (match-string 1 fontset-spec)))
+      (cond ((or (eq target 'ascii)
+                (memq target (char-table-extra-slot char-script-table 0)))
+            (push (list target (match-string 2 fontset-spec)) fontlist))
+           ((setq script (cdr (assq target charset-script-alist)))
+            (push (list script (match-string 2 fontset-spec)) fontlist))
+           ((charsetp target)
+            (push (list target (match-string 2 fontset-spec)) fontlist))))
+
+    ;; Complement FONTLIST.
+    (setq fontlist (x-complement-fontset-spec default-spec fontlist))
+
+    ;; Create a fontset.
+    (new-fontset name (nreverse fontlist))))
 
 (defun create-fontset-from-ascii-font (font &optional resolved-font
                                            fontset-name)
@@ -589,23 +887,19 @@ an appropriate name is generated automatically.
 
 It returns a name of the created fontset."
   (setq font (downcase font))
-  (if resolved-font
-      (setq resolved-font (downcase resolved-font))
-    (setq resolved-font (downcase (x-resolve-font-name font))))
-  (let ((xlfd (x-decompose-font-name font))
-       (resolved-xlfd (x-decompose-font-name resolved-font))
-       fontset fontset-spec)
-    (aset xlfd xlfd-regexp-foundry-subnum nil)
-    (aset xlfd xlfd-regexp-family-subnum nil)
-    (aset xlfd xlfd-regexp-registry-subnum "fontset")
+  (setq resolved-font
+       (downcase (or resolved-font (x-resolve-font-name font))))
+  (let ((xlfd (x-decompose-font-name resolved-font))
+       fontset)
     (if fontset-name
        (setq fontset-name (downcase fontset-name))
-      (setq fontset-name
-           (format "%s_%s_%s"
-                   (aref resolved-xlfd xlfd-regexp-registry-subnum)
-                   (aref resolved-xlfd xlfd-regexp-encoding-subnum)
-                   (aref resolved-xlfd xlfd-regexp-pixelsize-subnum))))
-    (aset xlfd xlfd-regexp-encoding-subnum fontset-name)
+      (if (query-fontset "fontset-startup")
+         (setq fontset-name
+               (subst-char-in-string
+                ?- ?_ (aref xlfd xlfd-regexp-registry-subnum) t))
+       (setq fontset-name "startup")))
+    (aset xlfd xlfd-regexp-registry-subnum
+         (format "fontset-%s" fontset-name))
     (setq fontset (x-compose-font-name xlfd))
     (or (query-fontset fontset)
        (create-fontset-from-fontset-spec (concat fontset ", ascii:" font)))))
@@ -616,21 +910,13 @@ It returns a name of the created fontset."
 ;; specified here because FAMILY of those fonts are not "fixed" in
 ;; many cases.
 (defvar standard-fontset-spec
-  (purecopy "-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard,
-       chinese-gb2312:-*-medium-r-normal-*-16-*-gb2312*-*,
-       korean-ksc5601:-*-medium-r-normal-*-16-*-ksc5601*-*,
-       chinese-cns11643-1:-*-medium-r-normal-*-16-*-cns11643*-1,
-       chinese-cns11643-2:-*-medium-r-normal-*-16-*-cns11643*-2,
-       chinese-cns11643-3:-*-medium-r-normal-*-16-*-cns11643*-3,
-       chinese-cns11643-4:-*-medium-r-normal-*-16-*-cns11643*-4,
-       chinese-cns11643-5:-*-medium-r-normal-*-16-*-cns11643*-5,
-       chinese-cns11643-6:-*-medium-r-normal-*-16-*-cns11643*-6,
-       chinese-cns11643-7:-*-medium-r-normal-*-16-*-cns11643*-7")
+  (purecopy "-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard")
   "String of fontset spec of the standard fontset.
 You have the biggest chance to display international characters
 with correct glyphs by using the standard fontset.
 See the documentation of `create-fontset-from-fontset-spec' for the format.")
 
+
 ;; Create fontsets from X resources of the name `fontset-N (class
 ;; Fontset-N)' where N is integer 0, 1, ...
 ;; The values of the resources the string of the same format as
index d7add6f31c1fdb8df52dbfd0a8df5765130285fb..4d15f05f936a6a4a6c74e7aaef6233a98511526c 100644 (file)
 (defvar ja-dic-filename "ja-dic.el")
 
 ;; To make a generated ja-dic.el smaller.
-(make-coding-system
- 'iso-2022-7bit-short
- 2 ?J
+(define-coding-system 'iso-2022-7bit-short
  "Like `iso-2022-7bit' but no ASCII designation before SPC."
- '(ascii nil nil nil t t nil t)
- '((safe-charsets . t)))
+  :coding-type 'iso-2022
+  :mnemonic ?J
+  :charset-list 'iso-2022
+  :designation [(ascii t) nil nil nil]
+  :flags '(short 7-bit designation))
 
 (defun skkdic-convert-okuri-ari (skkbuf buf)
   (message "Processing OKURI-ARI entries ...")
@@ -478,7 +479,7 @@ To get complete usage, invoke:
                (- ch)                  ;  represented by a negative code.
              (if (= ch ?\e$B!<\e(B)              ; `\e$B!<\e(B' is represented by 0.
                  0
-               (- (nth 2 (split-char ch)) 32))))
+               (- (logand (encode-char ch 'japanese-jisx0208) #xFF) 32))))
       (setq i (1+ i)))
     vec))
 
index ea3e4c31a3cea8306b2062396392ad24a1e38ea9..a1945c05854c9e87ac714fba57c692ddec569218 100644 (file)
@@ -90,7 +90,9 @@
       (setq heads (cdr heads)))
     l))
 
-(defconst skkdic-jisx0208-hiragana-block (nth 1 (split-char ?\e$B$"\e(B)))
+(defconst skkdic-jisx0208-hiragana-block
+  (cons (decode-char 'japanese-jisx0208 #x2421)
+       (decode-char 'japanese-jisx0208 #x247E)))
 
 (defun skkdic-lookup-key (seq len &optional postfix prefer-noun)
   "Return a list of conversion string for sequence SEQ of length LEN.
@@ -130,14 +132,17 @@ LEIM is available from the same ftp directory as Emacs."))
     ;;   else VEC[N] is 128.
     (while (< i len)
       (let ((ch (aref seq i))
-           elts)
-       (if (= ch ?\e$B!<\e(B)
-           (aset vec i 0)
-         (setq elts (split-char ch))
-         (if (and (eq (car elts) 'japanese-jisx0208)
-                  (= (nth 1 elts) skkdic-jisx0208-hiragana-block))
-             (aset vec i (- (nth 2 elts) 32))
-           (aset vec i 128))))
+           code)
+       (cond ((= ch ?\e$B!<\e(B)
+              (aset vec i 0))
+             ((and (>= ch (car skkdic-jisx0208-hiragana-block))
+                   (<= ch (cdr skkdic-jisx0208-hiragana-block)))
+              (setq code (encode-char ch 'japanese-jisx0208))
+              (if code
+                  (aset vec i (- (logand code #xFF) 32))
+                (aset vec i 128)))
+             (t
+              (aset vec i 128))))
       (setq i (1+ i)))
 
     ;; Search OKURI-NASI entries.
diff --git a/lisp/international/latin-1.el b/lisp/international/latin-1.el
deleted file mode 100644 (file)
index 33acf13..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-;;; latin-1.el --- set up case-conversion and syntax tables for ISO Latin-1
-
-;; Copyright (C) 1988, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
-;;   Free Software Foundation, Inc.
-
-;; Author: Howard Gayle
-;; Maintainer: FSF
-;; Keywords: i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Written by Howard Gayle.  See case-table.el for details.
-;; Updated by Erik Naggum.
-
-;; The current standard is ISO/IEC 8859-1:1998.  As of 1999-05, see
-;; <URL:http://czyborra.com/charsets/iso8859.html> and the `final text'
-;; <URL:http://anubis.dkuug.dk/jtc1/sc2/wg3/docs/n411.pdf>.
-;;; Code:
-
-(require 'case-table)
-
-(let ((tbl (standard-case-table))
-      (set-case-syntax-offset
-       (if set-case-syntax-set-multibyte
-          (- (make-char 'latin-iso8859-1) 128)
-        0)))
-  ;; NBSP isn't semantically interchangeable with other whitespace chars,
-  ;; so it's more like punctation.
-  (set-case-syntax 160 "." tbl)                ;no-break space
-  (set-case-syntax 161 "." tbl)                ;inverted exclamation mark
-  (set-case-syntax 162 "w" tbl)                ;cent sign
-  (set-case-syntax 163 "w" tbl)                ;pound sign
-  (set-case-syntax 164 "w" tbl)                ;currency sign
-  (set-case-syntax 165 "w" tbl)                ;yen sign
-  (set-case-syntax 166 "_" tbl)                ;broken bar
-  (set-case-syntax 167 "." tbl)                ;section sign
-  (set-case-syntax 168 "w" tbl)                ;diaeresis
-  (set-case-syntax 169 "_" tbl)                ;copyright sign
-  (set-case-syntax 170 "w" tbl)                ;feminine ordinal indicator
-  (set-case-syntax-delims 171 187 tbl) ;left-pointing double angle quotation mark
-  (set-case-syntax 172 "_" tbl)                ;not sign
-  (set-case-syntax 173 "_" tbl)                ;soft hyphen
-  (set-case-syntax 174 "_" tbl)                ;registered sign
-  (set-case-syntax 175 "w" tbl)                ;macron
-  (set-case-syntax 176 "_" tbl)                ;degree sign
-  (set-case-syntax 177 "_" tbl)                ;plus-minus sign
-  (set-case-syntax 178 "w" tbl)                ;superscript two
-  (set-case-syntax 179 "w" tbl)                ;superscript three
-  (set-case-syntax 180 "w" tbl)                ;acute accent
-  (set-case-syntax 181 "_" tbl)                ;micro sign
-  (set-case-syntax 182 "w" tbl)                ;pilcrow sign
-  (set-case-syntax 183 "_" tbl)                ;middle dot
-  (set-case-syntax 184 "w" tbl)                ;cedilla
-  (set-case-syntax 185 "w" tbl)                ;superscript one
-  (set-case-syntax 186 "w" tbl)                ;masculine ordinal indicator
-  (set-case-syntax 188 "_" tbl)                ;vulgar fraction one quarter
-  (set-case-syntax 189 "_" tbl)                ;vulgar fraction one half
-  (set-case-syntax 190 "_" tbl)                ;vulgar fraction three quarters
-  (set-case-syntax 191 "." tbl)                ;inverted question mark
-  (set-case-syntax-pair 192 224 tbl)   ;latin letter a with grave
-  (set-case-syntax-pair 193 225 tbl)   ;latin letter a with acute
-  (set-case-syntax-pair 194 226 tbl)   ;latin letter a with circumflex
-  (set-case-syntax-pair 195 227 tbl)   ;latin letter a with tilde
-  (set-case-syntax-pair 196 228 tbl)   ;latin letter a with diaeresis
-  (set-case-syntax-pair 197 229 tbl)   ;latin letter a with ring above
-  (set-case-syntax-pair 198 230 tbl)   ;latin letter ae
-  (set-case-syntax-pair 199 231 tbl)   ;latin letter c with cedilla
-  (set-case-syntax-pair 200 232 tbl)   ;latin letter e with grave
-  (set-case-syntax-pair 201 233 tbl)   ;latin letter e with acute
-  (set-case-syntax-pair 202 234 tbl)   ;latin letter e with circumflex
-  (set-case-syntax-pair 203 235 tbl)   ;latin letter e with diaeresis
-  (set-case-syntax-pair 204 236 tbl)   ;latin letter i with grave
-  (set-case-syntax-pair 205 237 tbl)   ;latin letter i with acute
-  (set-case-syntax-pair 206 238 tbl)   ;latin letter i with circumflex
-  (set-case-syntax-pair 207 239 tbl)   ;latin letter i with diaeresis
-  (set-case-syntax-pair 208 240 tbl)   ;latin letter eth (Icelandic)
-  (set-case-syntax-pair 209 241 tbl)   ;latin letter n with tilde
-  (set-case-syntax-pair 210 242 tbl)   ;latin letter o with grave
-  (set-case-syntax-pair 211 243 tbl)   ;latin letter o with acute
-  (set-case-syntax-pair 212 244 tbl)   ;latin letter o with circumflex
-  (set-case-syntax-pair 213 245 tbl)   ;latin letter o with tilde
-  (set-case-syntax-pair 214 246 tbl)   ;latin letter o with diaeresis
-  (set-case-syntax 215 "_" tbl)                ;multiplication sign
-  (set-case-syntax-pair 216 248 tbl)   ;latin letter o with stroke
-  (set-case-syntax-pair 217 249 tbl)   ;latin letter u with grave
-  (set-case-syntax-pair 218 250 tbl)   ;latin letter u with acute
-  (set-case-syntax-pair 219 251 tbl)   ;latin letter u with circumflex
-  (set-case-syntax-pair 220 252 tbl)   ;latin letter u with diaeresis
-  (set-case-syntax-pair 221 253 tbl)   ;latin letter y with acute
-  (set-case-syntax-pair 222 254 tbl)   ;latin letter thorn (Icelandic)
-  (set-case-syntax 223 "w" tbl)                ;latin small letter sharp s (German)
-  (set-case-syntax 247 "_" tbl)                ;division sign
-  ;; The following setting should be suppressed when we are loading
-  ;; this file for setting syntax of multibyte characters.
-  (or set-case-syntax-set-multibyte
-      (set-case-syntax 255 "w" tbl)))  ;latin small letter y with diaeresis
-
-;; When preloading this file, don't provide the feature.
-;; Explicit `require' is used to load this for 8-bit characters.
-(or set-case-syntax-set-multibyte
-    (provide 'latin-1))
-
-;; Don't compile this file: src/Makefile.in instructs make-docfile
-;; to look at the .el file!
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
-
-;; arch-tag: c2ee6895-edc3-40b2-9518-8c09f1d56c54
-;;; latin-1.el ends here
diff --git a/lisp/international/latin-2.el b/lisp/international/latin-2.el
deleted file mode 100644 (file)
index efb6320..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-;;; latin-2.el --- set up case-conversion and syntax tables for ISO Latin-2
-
-;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005,
-;;   2006, 2007  Free Software Foundation, Inc.
-
-;; Author: Michael Gschwind (mike@vlsivie.tuwien.ac.at)
-;; Maintainer: FSF
-;; Keywords: i18n
-;; Was formerly named iso02-syn.el.
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Written by Michael Gschwind.  See case-table.el for details.
-;; Updated by Erik Naggum.
-
-;;; Code:
-
-(require 'case-table)
-
-(let ((tbl (standard-case-table))
-      (set-case-syntax-offset
-       (if set-case-syntax-set-multibyte
-          (- (make-char 'latin-iso8859-2) 128)
-        0)))
-  ;; NBSP isn't semantically interchangeable with other whitespace chars,
-  ;; so it's more like punctation.
-  (set-case-syntax 160 "." tbl)                ;no-break space
-  (set-case-syntax-pair 161 177 tbl)   ;latin letter a with ogonek
-  (set-case-syntax 162 "w" tbl)                ;breve
-  (set-case-syntax-pair 163 179 tbl)   ;latin letter l with stroke
-  (set-case-syntax 164 "w" tbl)                ;currency sign
-  (set-case-syntax-pair 165 181 tbl)   ;latin letter l with caron
-  (set-case-syntax-pair 166 182 tbl)   ;latin letter s with acute
-  (set-case-syntax 167 "." tbl)                ;section sign
-  (set-case-syntax 168 "w" tbl)                ;diaeresis
-  (set-case-syntax-pair 169 185 tbl)   ;latin letter s with caron
-  (set-case-syntax-pair 170 186 tbl)   ;latin letter s with cedilla
-  (set-case-syntax-pair 171 187 tbl)   ;latin letter t with caron
-  (set-case-syntax-pair 172 188 tbl)   ;latin letter z with acute
-  (set-case-syntax 173 "w" tbl)                ;soft hyphen
-  (set-case-syntax-pair 174 190 tbl)   ;latin letter z with caron
-  (set-case-syntax-pair 175 191 tbl)   ;latin letter z with dot above
-  (set-case-syntax 176 "_" tbl)                ;degree sign
-  (set-case-syntax 178 "w" tbl)                ;ogonek
-  (set-case-syntax 180 "w" tbl)                ;acute accent
-  (set-case-syntax 183 "_" tbl)                ;caron
-  (set-case-syntax 184 "w" tbl)                ;cedilla
-  (set-case-syntax 189 "w" tbl)                ;double acute accent
-  (set-case-syntax-pair 192 224 tbl)   ;latin letter r with acute
-  (set-case-syntax-pair 193 225 tbl)   ;latin letter a with acute
-  (set-case-syntax-pair 194 226 tbl)   ;latin letter a with circumflex
-  (set-case-syntax-pair 195 227 tbl)   ;latin letter a with breve
-  (set-case-syntax-pair 196 228 tbl)   ;latin letter a with diaeresis
-  (set-case-syntax-pair 197 229 tbl)   ;latin letter l with acute
-  (set-case-syntax-pair 198 230 tbl)   ;latin letter c with acute
-  (set-case-syntax-pair 199 231 tbl)   ;latin letter c with cedilla
-  (set-case-syntax-pair 200 232 tbl)   ;latin letter c with caron
-  (set-case-syntax-pair 201 233 tbl)   ;latin letter e with acute
-  (set-case-syntax-pair 202 234 tbl)   ;latin letter e with ogonek
-  (set-case-syntax-pair 203 235 tbl)   ;latin letter e with diaeresis
-  (set-case-syntax-pair 204 236 tbl)   ;latin letter e with caron
-  (set-case-syntax-pair 205 237 tbl)   ;latin letter i with acute
-  (set-case-syntax-pair 206 238 tbl)   ;latin letter i with circumflex
-  (set-case-syntax-pair 207 239 tbl)   ;latin letter d with caron
-  (set-case-syntax-pair 208 240 tbl)   ;latin letter d with stroke
-  (set-case-syntax-pair 209 241 tbl)   ;latin letter n with acute
-  (set-case-syntax-pair 210 242 tbl)   ;latin letter n with caron
-  (set-case-syntax-pair 211 243 tbl)   ;latin letter o with acute
-  (set-case-syntax-pair 212 244 tbl)   ;latin letter o with circumflex
-  (set-case-syntax-pair 213 245 tbl)   ;latin letter o with double acute
-  (set-case-syntax-pair 214 246 tbl)   ;latin letter o with diaeresis
-  (set-case-syntax 215 "_" tbl)                ;multiplication sign
-  (set-case-syntax-pair 216 248 tbl)   ;latin letter r with caron
-  (set-case-syntax-pair 217 249 tbl)   ;latin letter u with ring above
-  (set-case-syntax-pair 218 250 tbl)   ;latin letter u with acute
-  (set-case-syntax-pair 219 251 tbl)   ;latin letter u with double acute
-  (set-case-syntax-pair 220 252 tbl)   ;latin letter u with diaeresis
-  (set-case-syntax-pair 221 253 tbl)   ;latin letter y with acute
-  (set-case-syntax-pair 222 254 tbl)   ;latin letter t with cedilla
-  (set-case-syntax 223 "w" tbl)                ;latin small letter sharp s
-  (set-case-syntax 247 "_" tbl)                ;division sign
-  (set-case-syntax 255 "w" tbl))       ;dot above
-
-;; When preloading this file, don't provide the feature.
-;; Explicit `require' is used to load this for 8-bit characters.
-(or set-case-syntax-set-multibyte
-    (provide 'latin-2))
-
-;; Don't compile this file: src/Makefile.in instructs make-docfile
-;; to look at the .el file!
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
-
-;; arch-tag: 2b9f9c30-1a63-4877-8a80-e95a5e4c57c9
-;;; latin-2.el ends here
diff --git a/lisp/international/latin-3.el b/lisp/international/latin-3.el
deleted file mode 100644 (file)
index 1539206..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-;;; latin-3.el --- set up case-conversion and syntax tables for ISO Latin-3
-
-;; Copyright (C) 1988, 1997, 2001, 2002, 2003, 2004, 2005,
-;;   2006, 2007  Free Software Foundation, Inc.
-
-;; Author: Marko Rahamaa
-;; Maintainer: FSF
-;; Keywords: i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Written by Marko Rauhamaa.  See case-table.el for details.
-;; Updated by Erik Naggum.
-
-;;; Code:
-
-(require 'case-table)
-
-(let ((tbl (standard-case-table))
-      (set-case-syntax-offset
-       (if set-case-syntax-set-multibyte
-          (- (make-char 'latin-iso8859-3) 128)
-        0)))
-  ;; NBSP isn't semantically interchangeable with other whitespace chars,
-  ;; so it's more like punctation.
-  (set-case-syntax 160 "." tbl)                ;no-break space
-  (set-case-syntax-pair 161 177 tbl)   ;latin letter h with stroke
-  (set-case-syntax 162 "w" tbl)                ;breve
-  (set-case-syntax 163 "w" tbl)                ;pound sign
-  (set-case-syntax 164 "w" tbl)                ;currency sign
-  (set-case-syntax-pair 166 182 tbl)   ;latin letter h with circumflex
-  (set-case-syntax 167 "." tbl)                ;section sign
-  (set-case-syntax 168 "w" tbl)                ;diaeresis
-  (set-case-syntax 169 "w" tbl)                ;latin capital letter i with dot above
-  (set-case-syntax-pair 170 186 tbl)   ;latin letter s with cedilla
-  (set-case-syntax-pair 171 187 tbl)   ;latin letter g with breve
-  (set-case-syntax-pair 172 188 tbl)   ;latin letter j with circumflex
-  (set-case-syntax 173 "_" tbl)                ;soft hyphen
-  (set-case-syntax-pair 175 191 tbl)   ;latin letter z with dot above
-  (set-case-syntax 176 "_" tbl)                ;degree sign
-  (set-case-syntax 178 "w" tbl)                ;superscript digit two
-  (set-case-syntax 179 "w" tbl)                ;superscript digit three
-  (set-case-syntax 180 "w" tbl)                ;acute accent
-  (set-case-syntax 181 "_" tbl)                ;micro sign
-  (set-case-syntax 183 "_" tbl)                ;middle dot
-  (set-case-syntax 184 "w" tbl)                ;cedilla
-  (set-case-syntax 185 "w" tbl)                ;latin small letter i dotless
-  (set-case-syntax 189 "_" tbl)                ;vulgar fraction one half
-  (set-case-syntax-pair 192 224 tbl)   ;latin letter a with grave
-  (set-case-syntax-pair 193 225 tbl)   ;latin letter a with acute
-  (set-case-syntax-pair 194 226 tbl)   ;latin letter a with circumflex
-  (set-case-syntax-pair 196 228 tbl)   ;latin letter a with diaeresis
-  (set-case-syntax-pair 197 229 tbl)   ;latin letter c with dot above
-  (set-case-syntax-pair 198 230 tbl)   ;latin letter c with circumflex
-  (set-case-syntax-pair 199 231 tbl)   ;latin letter c with cedilla
-  (set-case-syntax-pair 200 232 tbl)   ;latin letter e with grave
-  (set-case-syntax-pair 201 233 tbl)   ;latin letter e with acute
-  (set-case-syntax-pair 202 234 tbl)   ;latin letter e with circumflex
-  (set-case-syntax-pair 203 235 tbl)   ;latin letter e with diaeresis
-  (set-case-syntax-pair 204 236 tbl)   ;latin letter i with grave
-  (set-case-syntax-pair 205 237 tbl)   ;latin letter i with acute
-  (set-case-syntax-pair 206 238 tbl)   ;latin letter i with circumflex
-  (set-case-syntax-pair 207 239 tbl)   ;latin letter i with diaeresis
-  (set-case-syntax-pair 209 241 tbl)   ;latin letter n with tilde
-  (set-case-syntax-pair 210 242 tbl)   ;latin letter o with grave
-  (set-case-syntax-pair 211 243 tbl)   ;latin letter o with acute
-  (set-case-syntax-pair 212 244 tbl)   ;latin letter o with circumflex
-  (set-case-syntax-pair 213 245 tbl)   ;latin letter g with dot above
-  (set-case-syntax-pair 214 246 tbl)   ;latin letter o with diaeresis
-  (set-case-syntax 215 "_" tbl)                ;multiplication sign
-  (set-case-syntax-pair 216 248 tbl)   ;latin letter g with circumflex
-  (set-case-syntax-pair 217 249 tbl)   ;latin letter u with grave
-  (set-case-syntax-pair 218 250 tbl)   ;latin letter u with acute
-  (set-case-syntax-pair 219 251 tbl)   ;latin letter u with circumflex
-  (set-case-syntax-pair 220 252 tbl)   ;latin letter u with diaeresis
-  (set-case-syntax-pair 221 253 tbl)   ;latin letter u with breve
-  (set-case-syntax-pair 222 254 tbl)   ;latin letter s with circumflex
-  (set-case-syntax 223 "w" tbl)                ;latin small letter sharp s
-  (set-case-syntax 247 "_" tbl)                ;division sign
-  (set-case-syntax 255 "w" tbl))       ;dot above
-
-;; When preloading this file, don't provide the feature.
-;; Explicit `require' is used to load this for 8-bit characters.
-(or set-case-syntax-set-multibyte
-    (provide 'latin-3))
-
-;; Don't compile this file: src/Makefile.in instructs make-docfile
-;; to look at the .el file!
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
-
-;; arch-tag: 64d9d46d-fe0b-4a8e-9c28-ba7e20bbc552
-;;; latin-3.el ends here
diff --git a/lisp/international/latin-4.el b/lisp/international/latin-4.el
deleted file mode 100644 (file)
index e3b9b04..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-;;; latin-4.el --- set up case-conversion and syntax tables for ISO Latin-4
-
-;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005,
-;;   2006, 2007  Free Software Foundation, Inc.
-
-;; Author: Erik Naggum
-;; Maintainer: FSF
-;; Keywords: i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Written by Erik Naggum.  See case-table.el for details.
-
-;;; Code:
-
-(require 'case-table)
-
-(let ((tbl (standard-case-table))
-      (set-case-syntax-offset
-       (if set-case-syntax-set-multibyte
-          (- (make-char 'latin-iso8859-4) 128)
-        0)))
-  ;; NBSP isn't semantically interchangeable with other whitespace chars,
-  ;; so it's more like punctation.
-  (set-case-syntax 160 "." tbl)                ;no-break space
-  (set-case-syntax-pair 161 177 tbl)   ;latin letter a with ogonek
-  (set-case-syntax 162 "w" tbl)                ;latin letter kra
-  (set-case-syntax-pair 163 179 tbl)   ;latin letter r with cedilla
-  (set-case-syntax 164 "w" tbl)                ;currency sign
-  (set-case-syntax-pair 165 181 tbl)   ;latin letter i with tilde
-  (set-case-syntax-pair 166 182 tbl)   ;latin letter l with cedilla
-  (set-case-syntax 167 "." tbl)                ;section sign
-  (set-case-syntax 168 "w" tbl)                ;diaeresis
-  (set-case-syntax-pair 169 185 tbl)   ;latin letter s with caron
-  (set-case-syntax-pair 170 186 tbl)   ;latin letter e with macron
-  (set-case-syntax-pair 171 187 tbl)   ;latin letter g with cedilla
-  (set-case-syntax-pair 172 188 tbl)   ;latin letter t with stroke
-  (set-case-syntax 173 "_" tbl)                ;soft hyphen
-  (set-case-syntax-pair 174 190 tbl)   ;latin letter z with caron
-  (set-case-syntax 175 "_" tbl)                ;overline
-  (set-case-syntax 176 "_" tbl)                ;degree sign
-  (set-case-syntax 178 "w" tbl)                ;ogonek
-  (set-case-syntax 180 "w" tbl)                ;acute accent
-  (set-case-syntax 183 "w" tbl)                ;caron
-  (set-case-syntax 184 "w" tbl)                ;cedilla
-  (set-case-syntax-pair 189 191 tbl)   ;eng
-  (set-case-syntax-pair 192 224 tbl)   ;latin letter a with macron
-  (set-case-syntax-pair 193 225 tbl)   ;latin letter a with acute
-  (set-case-syntax-pair 194 226 tbl)   ;latin letter a with circumflex
-  (set-case-syntax-pair 195 227 tbl)   ;latin letter a with tilde
-  (set-case-syntax-pair 196 228 tbl)   ;latin letter a with diaeresis
-  (set-case-syntax-pair 197 229 tbl)   ;latin letter a with ring above
-  (set-case-syntax-pair 198 230 tbl)   ;latin letter ae
-  (set-case-syntax-pair 199 231 tbl)   ;latin letter i with ogonek
-  (set-case-syntax-pair 200 232 tbl)   ;latin letter c with caron
-  (set-case-syntax-pair 201 233 tbl)   ;latin letter e with acute
-  (set-case-syntax-pair 202 234 tbl)   ;latin letter e with ogonek
-  (set-case-syntax-pair 203 235 tbl)   ;latin letter e with diaeresis
-  (set-case-syntax-pair 204 236 tbl)   ;latin letter e with dot above
-  (set-case-syntax-pair 205 237 tbl)   ;latin letter i with acute
-  (set-case-syntax-pair 206 238 tbl)   ;latin letter i with circumflex
-  (set-case-syntax-pair 207 239 tbl)   ;latin letter i with macron
-  (set-case-syntax-pair 208 240 tbl)   ;latin letter d with stroke
-  (set-case-syntax-pair 209 241 tbl)   ;latin letter n with cedilla
-  (set-case-syntax-pair 210 242 tbl)   ;latin letter o with macron
-  (set-case-syntax-pair 211 243 tbl)   ;latin letter k with cedilla
-  (set-case-syntax-pair 212 244 tbl)   ;latin letter o with circumflex
-  (set-case-syntax-pair 213 245 tbl)   ;latin letter o with tilde
-  (set-case-syntax-pair 214 246 tbl)   ;latin letter o with diaeresis
-  (set-case-syntax 215 "_" tbl)                ;multiplication sign
-  (set-case-syntax-pair 216 248 tbl)   ;latin letter o with stroke
-  (set-case-syntax-pair 217 249 tbl)   ;latin letter u with ogonek
-  (set-case-syntax-pair 218 250 tbl)   ;latin letter u with acute
-  (set-case-syntax-pair 219 251 tbl)   ;latin letter u with circumflex
-  (set-case-syntax-pair 220 252 tbl)   ;latin letter u with diaeresis
-  (set-case-syntax-pair 221 253 tbl)   ;latin letter u with tilde
-  (set-case-syntax-pair 222 254 tbl)   ;latin letter u with macron
-  (set-case-syntax 223 "w" tbl)                ;latin letter sharp s
-  (set-case-syntax 247 "_" tbl)                ;division sign
-  (set-case-syntax 255 "w" tbl))       ;dot above
-
-;; When preloading this file, don't provide the feature.
-;; Explicit `require' is used to load this for 8-bit characters.
-(or set-case-syntax-set-multibyte
-    (provide 'latin-4))
-
-;; Don't compile this file: src/Makefile.in instructs make-docfile
-;; to look at the .el file!
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
-
-;; arch-tag: c6b2558b-1943-4626-beb5-139630c8e352
-;;; latin-4.el ends here
diff --git a/lisp/international/latin-5.el b/lisp/international/latin-5.el
deleted file mode 100644 (file)
index 97b3e00..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-;;; latin-5.el --- set up case-conversion and syntax tables for ISO latin-5
-
-;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005,
-;;   2006, 2007  Free Software Foundation, Inc.
-
-;; Author: Erik Naggum
-;; Maintainer: FSF
-;; Keywords: i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Written by Erik Naggum.  See case-table.el for details.
-
-;;; Code:
-
-(require 'case-table)
-
-(let ((tbl (standard-case-table))
-      (set-case-syntax-offset
-       (if set-case-syntax-set-multibyte
-          (- (make-char 'latin-iso8859-9) 128)
-        0)))
-  ;; NBSP isn't semantically interchangeable with other whitespace chars,
-  ;; so it's more like punctation.
-  (set-case-syntax 160 "." tbl)                ;no-break space
-  (set-case-syntax 161 "." tbl)                ;inverted exclamation mark
-  (set-case-syntax 162 "w" tbl)                ;cent sign
-  (set-case-syntax 163 "w" tbl)                ;pound sign
-  (set-case-syntax 164 "w" tbl)                ;currency sign
-  (set-case-syntax 165 "w" tbl)                ;yen sign
-  (set-case-syntax 166 "_" tbl)                ;broken bar
-  (set-case-syntax 167 "." tbl)                ;section sign
-  (set-case-syntax 168 "w" tbl)                ;diaeresis
-  (set-case-syntax 169 "_" tbl)                ;copyright sign
-  (set-case-syntax 170 "w" tbl)                ;feminine ordinal indicator
-  (set-case-syntax-delims 171 187 tbl) ;left-pointing double angle quotation mark
-  (set-case-syntax 172 "_" tbl)                ;not sign
-  (set-case-syntax 173 "_" tbl)                ;soft hyphen
-  (set-case-syntax 174 "_" tbl)                ;registered sign
-  (set-case-syntax 175 "w" tbl)                ;overline
-  (set-case-syntax 176 "_" tbl)                ;degree sign
-  (set-case-syntax 177 "_" tbl)                ;plus-minus sign
-  (set-case-syntax 178 "w" tbl)                ;superscript digit two
-  (set-case-syntax 179 "w" tbl)                ;superscript digit three
-  (set-case-syntax 180 "w" tbl)                ;acute accent
-  (set-case-syntax 181 "_" tbl)                ;micro sign
-  (set-case-syntax 182 "." tbl)                ;pilcrow sign
-  (set-case-syntax 183 "_" tbl)                ;middle dot
-  (set-case-syntax 184 "w" tbl)                ;cedilla
-  (set-case-syntax 185 "w" tbl)                ;superscript digit one
-  (set-case-syntax 186 "w" tbl)                ;masculine ordinal indicator
-  (set-case-syntax 188 "_" tbl)                ;vulgar fraction one quarter
-  (set-case-syntax 189 "_" tbl)                ;vulgar fraction one half
-  (set-case-syntax 190 "_" tbl)                ;vulgar fraction three quarters
-  (set-case-syntax 191 "." tbl)                ;inverted question mark
-  (set-case-syntax-pair 192 224 tbl)   ;latin letter a with grave
-  (set-case-syntax-pair 193 225 tbl)   ;latin letter a with acute
-  (set-case-syntax-pair 194 226 tbl)   ;latin letter a with circumflex
-  (set-case-syntax-pair 195 227 tbl)   ;latin letter a with tilde
-  (set-case-syntax-pair 196 228 tbl)   ;latin letter a with diaeresis
-  (set-case-syntax-pair 197 229 tbl)   ;latin letter a with ring above
-  (set-case-syntax-pair 198 230 tbl)   ;latin letter ae
-  (set-case-syntax-pair 199 231 tbl)   ;latin letter c with cedilla
-  (set-case-syntax-pair 200 232 tbl)   ;latin letter e with grave
-  (set-case-syntax-pair 201 233 tbl)   ;latin letter e with acute
-  (set-case-syntax 202 "w" tbl)                ;latin capital letter e with circumflex
-  (set-case-syntax-pair 203 235 tbl)   ;latin letter e with diaeresis
-  (set-case-syntax 204 "w" tbl)                ;latin capital letter i with grave
-  (set-case-syntax-pair 205 237 tbl)   ;latin letter i with acute
-  (set-case-syntax-pair 206 238 tbl)   ;latin letter i with circumflex
-  (set-case-syntax 207 "w" tbl)                ;latin capital letter i with diaeresis
-  (set-case-syntax-pair 208 240 tbl)   ;latin letter g with breve
-  (set-case-syntax-pair 209 241 tbl)   ;latin letter n with tilde
-  (set-case-syntax-pair 210 242 tbl)   ;latin letter o with grave
-  (set-case-syntax-pair 211 243 tbl)   ;latin letter o with acute
-  (set-case-syntax-pair 212 244 tbl)   ;latin letter o with circumflex
-  (set-case-syntax-pair 213 245 tbl)   ;latin letter o with tilde
-  (set-case-syntax-pair 214 246 tbl)   ;latin letter o with diaeresis
-  (set-case-syntax 215 "_" tbl)                ;multiplication sign
-  (set-case-syntax-pair 216 248 tbl)   ;latin letter o with stroke
-  (set-case-syntax-pair 217 249 tbl)   ;latin letter u with grave
-  (set-case-syntax-pair 218 250 tbl)   ;latin letter u with acute
-  (set-case-syntax-pair 219 251 tbl)   ;latin letter u with circumflex
-  (set-case-syntax-pair 220 252 tbl)   ;latin letter u with diaeresis
-  (set-case-syntax 221 "w" tbl)                ;latin capital letter i with dot above
-  (set-case-syntax-pair 222 254 tbl)   ;latin letter s with cedilla
-  (set-case-syntax 223 "w" tbl)                ;latin small letter sharp s
-  (set-case-syntax 234 "w" tbl)                ;latin small letter e with ogonek
-  (set-case-syntax 236 "w" tbl)                ;latin small letter e with dot above
-  (set-case-syntax 239 "w" tbl)                ;latin small letter i with macron
-  (set-case-syntax 247 "_" tbl)                ;division sign
-  (set-case-syntax 253 "w" tbl)                ;latin small letter i dotless
-  (set-case-syntax 255 "w" tbl))       ;latin small letter y with diaeresis
-
-;; When preloading this file, don't provide the feature.
-;; Explicit `require' is used to load this for 8-bit characters.
-(or set-case-syntax-set-multibyte
-    (provide 'latin-5))
-
-;; Don't compile this file: src/Makefile.in instructs make-docfile
-;; to look at the .el file!
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
-
-;; arch-tag: 7f91a36a-39fb-4b5d-806f-f171abee71ad
-;;; latin-5.el ends here
diff --git a/lisp/international/latin-8.el b/lisp/international/latin-8.el
deleted file mode 100644 (file)
index 0f41d70..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-;;; latin-8.el --- set up case-conversion and syntax tables for ISO Latin-8
-
-;; Copyright (C) 1988, 1997, 1999, 2001, 2002, 2003, 2004, 2005
-;;   2006, 2007  Free Software Foundation, Inc.
-
-;; Author: Dave Love
-;; Maintainer: FSF
-;; Keywords: i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Case-conversion and syntax tables for ISO-8859-14 (Latin-8),
-;; adapted from latin-1.el.
-
-;; <URL:http://czyborra.com/charsets/iso8859.html>:
-;; Latin8 adds the last Gaelic and Welsh (cy) letters to Latin1 to cover
-;; all Celtic languages.
-
-;; The differences from Latin-1 are starred in the comments below.
-
-;; This is now ISO/IEC 8859-8:1999.    As of 1999-05, there was a `final
-;; proof' at <URL:http://www.indigo.ie/egt/standards/iso8859/8859-14-en.pdf>.
-;; See also <URL:http://www.itscj.ipsj.or.jp/ISO-IR/199.pdf>.
-
-;;; Code:
-
-(require 'case-table)
-
-(let ((tbl (standard-case-table))
-      (set-case-syntax-offset
-       (if set-case-syntax-set-multibyte
-          (- (make-char 'latin-iso8859-14) 128)
-        0)))
-  ;; NBSP isn't semantically interchangeable with other whitespace chars,
-  ;; so it's more like punctation.
-  (set-case-syntax 160 "." tbl)         ;no-break space
-  (set-case-syntax-pair 161 162 tbl)   ;latin letter b with dot above *
-  (set-case-syntax 163 "w" tbl)                ;pound sign
-  (set-case-syntax-pair 164 165 tbl)   ;latin letter c with dot above *
-  (set-case-syntax-pair 166 171 tbl)   ;latin letter d with dot above *
-  (set-case-syntax 167 "." tbl)                ;section sign
-  (set-case-syntax-pair 168 184 tbl)   ;latin letter w with grave *
-  (set-case-syntax 169 "_" tbl)                ;copyright sign
-  (set-case-syntax-pair 170 186 tbl)   ;latin letter w with acute *
-  (set-case-syntax-pair 172 188 tbl)   ;latin letter y with grave *
-  (set-case-syntax 173 "_" tbl)                ;soft hyphen
-  (set-case-syntax 174 "_" tbl)                ;registered sign
-  (set-case-syntax-pair 175 255 tbl)   ;latin letter y with diaeresis *
-  (set-case-syntax-pair 176 177 tbl)   ;capital f with dot above *
-  (set-case-syntax-pair 178 179 tbl)   ;latin letter g with dot above *
-  (set-case-syntax-pair 180 181 tbl)   ;latin letter m with dot above *
-  (set-case-syntax 182 "w" tbl)                ;pilcrow sign
-  (set-case-syntax-pair 183 185 tbl)   ;latin letter p with dot above *
-  (set-case-syntax-pair 187 191 tbl)   ;latin letter s with dot above *
-  (set-case-syntax-pair 189 190 tbl)   ;latin letter w with diaeresis *
-  (set-case-syntax-pair 192 224 tbl)   ;latin letter a with grave
-  (set-case-syntax-pair 193 225 tbl)   ;latin letter a with acute
-  (set-case-syntax-pair 194 226 tbl)   ;latin letter a with circumflex
-  (set-case-syntax-pair 195 227 tbl)   ;latin letter a with tilde
-  (set-case-syntax-pair 196 228 tbl)   ;latin letter a with diaeresis
-  (set-case-syntax-pair 197 229 tbl)   ;latin letter a with ring above
-  (set-case-syntax-pair 198 230 tbl)   ;latin letter ae
-  (set-case-syntax-pair 199 231 tbl)   ;latin letter c with cedilla
-  (set-case-syntax-pair 200 232 tbl)   ;latin letter e with grave
-  (set-case-syntax-pair 201 233 tbl)   ;latin letter e with acute
-  (set-case-syntax-pair 202 234 tbl)   ;latin letter e with circumflex
-  (set-case-syntax-pair 203 235 tbl)   ;latin letter e with diaeresis
-  (set-case-syntax-pair 204 236 tbl)   ;latin letter i with grave
-  (set-case-syntax-pair 205 237 tbl)   ;latin letter i with acute
-  (set-case-syntax-pair 206 238 tbl)   ;latin letter i with circumflex
-  (set-case-syntax-pair 207 239 tbl)   ;latin letter i with diaeresis
-  (set-case-syntax-pair 208 240 tbl)   ;latin letter w with circumflex *
-  (set-case-syntax-pair 209 241 tbl)   ;latin letter n with tilde
-  (set-case-syntax-pair 210 242 tbl)   ;latin letter o with grave
-  (set-case-syntax-pair 211 243 tbl)   ;latin letter o with acute
-  (set-case-syntax-pair 212 244 tbl)   ;latin letter o with circumflex
-  (set-case-syntax-pair 213 245 tbl)   ;latin letter o with tilde
-  (set-case-syntax-pair 214 246 tbl)   ;latin letter o with diaeresis
-  (set-case-syntax-pair 215 247 tbl)   ;latin letter t with dot above *
-  (set-case-syntax-pair 216 248 tbl)   ;latin letter o with stroke
-  (set-case-syntax-pair 217 249 tbl)   ;latin letter u with grave
-  (set-case-syntax-pair 218 250 tbl)   ;latin letter u with acute
-  (set-case-syntax-pair 219 251 tbl)   ;latin letter u with circumflex
-  (set-case-syntax-pair 220 252 tbl)   ;latin letter u with diaeresis
-  (set-case-syntax-pair 221 253 tbl)   ;latin letter y with acute
-  (set-case-syntax-pair 222 254 tbl)   ;latin letter y with circumflex *
-  (set-case-syntax 223 "w" tbl))       ;latin small letter sharp s
-
-;; When preloading this file, don't provide the feature.
-;; Explicit `require' is used to load this for 8-bit characters.
-(or set-case-syntax-set-multibyte
-    (provide 'latin-8))
-
-;; Don't compile this file: src/Makefile.in instructs make-docfile
-;; to look at the .el file!
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
-
-;; arch-tag: a916b4b5-4204-485b-8b57-8ab3a43a2e29
-;;; latin-8.el ends here
diff --git a/lisp/international/latin-9.el b/lisp/international/latin-9.el
deleted file mode 100644 (file)
index cb94d75..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-;;; latin-9.el --- set up case-conversion and syntax tables for ISO Latin-9
-
-;; Copyright (C) 1988, 1997, 1999, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007  Free Software Foundation, Inc.
-
-;; Author: Dave Love
-;; Maintainer: FSF
-;; Keywords: i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Case-conversion and syntax tables for ISO-8859-15 (Latin-9),
-;; adapted from latin-1.el.
-
-;; <URL:http://czyborra.com/charsets/iso8859.html> (edited to remove
-;;   non-ASCII characters!):
-;; The new Latin9 nicknamed Latin0 aims to update Latin1 by
-;; replacing less needed symbols with forgotten French and
-;; Finnish letters and placing the U+20AC Euro sign in the cell =A4 of
-;; the former international currency sign.
-
-;; The differences from Latin-1 are starred on the comments below.
-
-;; This is now ISO/IEC 8859-15:1999.  As of 1999-05, there was a `final
-;; proof' at <URL:http://www.indigo.ie/egt/standards/iso8859/8859-15-en.pdf>.
-;; See also <URL:http://www.itscj.ipsj.or.jp/ISO-IR/203.pdf>.
-
-;;; Code:
-
-(require 'case-table)
-
-(let ((tbl (standard-case-table))
-      (set-case-syntax-offset
-       (if set-case-syntax-set-multibyte
-          (- (make-char 'latin-iso8859-15) 128)
-        0)))
-  ;; NBSP isn't semantically interchangeable with other whitespace chars,
-  ;; so it's more like punctation.
-  (set-case-syntax 160 "." tbl)                ;no-break space
-  (set-case-syntax 161 "." tbl)                ;inverted exclamation mark
-  (set-case-syntax 162 "w" tbl)                ;cent sign
-  (set-case-syntax 163 "w" tbl)                ;pound sign
-  (set-case-syntax 164 "w" tbl)                ;euro sign *
-  (set-case-syntax 165 "w" tbl)                ;yen sign
-  (set-case-syntax-pair 166 168 tbl)   ;latin letter s with caron *
-  (set-case-syntax 167 "." tbl)                ;section sign
-  (set-case-syntax 169 "_" tbl)                ;copyright sign
-  (set-case-syntax 170 "w" tbl)                ;feminine ordinal indicator
-  (set-case-syntax-delims 171 187 tbl) ;left-pointing double angle quotation mark
-  (set-case-syntax 172 "_" tbl)                ;not sign
-  (set-case-syntax 173 "_" tbl)                ;soft hyphen
-  (set-case-syntax 174 "_" tbl)                ;registered sign
-  (set-case-syntax 175 "w" tbl)                ;macron
-  (set-case-syntax 176 "_" tbl)                ;degree sign
-  (set-case-syntax 177 "_" tbl)                ;plus-minus sign
-  (set-case-syntax 178 "w" tbl)                ;superscript two
-  (set-case-syntax 179 "w" tbl)                ;superscript three
-  (set-case-syntax-pair 180 184 tbl)   ;latin letter z with caron *
-  (set-case-syntax 181 "_" tbl)                ;micro sign
-  (set-case-syntax 182 "." tbl)                ;pilcrow sign
-  (set-case-syntax 183 "_" tbl)                ;middle dot
-  (set-case-syntax 185 "w" tbl)                ;superscript one
-  (set-case-syntax 186 "w" tbl)                ;masculine ordinal indicator
-  (set-case-syntax-pair 188 189 tbl)   ;latin ligature oe *
-  (set-case-syntax-pair 190 255 tbl)   ;latin letter y with diaeresis *
-  (set-case-syntax 191 "." tbl)                ;inverted question mark
-  (set-case-syntax-pair 192 224 tbl)   ;latin letter a with grave
-  (set-case-syntax-pair 193 225 tbl)   ;latin letter a with acute
-  (set-case-syntax-pair 194 226 tbl)   ;latin letter a with circumflex
-  (set-case-syntax-pair 195 227 tbl)   ;latin letter a with tilde
-  (set-case-syntax-pair 196 228 tbl)   ;latin letter a with diaeresis
-  (set-case-syntax-pair 197 229 tbl)   ;latin letter a with ring above
-  (set-case-syntax-pair 198 230 tbl)   ;latin letter ae
-  (set-case-syntax-pair 199 231 tbl)   ;latin letter c with cedilla
-  (set-case-syntax-pair 200 232 tbl)   ;latin letter e with grave
-  (set-case-syntax-pair 201 233 tbl)   ;latin letter e with acute
-  (set-case-syntax-pair 202 234 tbl)   ;latin letter e with circumflex
-  (set-case-syntax-pair 203 235 tbl)   ;latin letter e with diaeresis
-  (set-case-syntax-pair 204 236 tbl)   ;latin letter i with grave
-  (set-case-syntax-pair 205 237 tbl)   ;latin letter i with acute
-  (set-case-syntax-pair 206 238 tbl)   ;latin letter i with circumflex
-  (set-case-syntax-pair 207 239 tbl)   ;latin letter i with diaeresis
-  (set-case-syntax-pair 208 240 tbl)   ;latin letter eth
-  (set-case-syntax-pair 209 241 tbl)   ;latin letter n with tilde
-  (set-case-syntax-pair 210 242 tbl)   ;latin letter o with grave
-  (set-case-syntax-pair 211 243 tbl)   ;latin letter o with acute
-  (set-case-syntax-pair 212 244 tbl)   ;latin letter o with circumflex
-  (set-case-syntax-pair 213 245 tbl)   ;latin letter o with tilde
-  (set-case-syntax-pair 214 246 tbl)   ;latin letter o with diaeresis
-  (set-case-syntax 215 "_" tbl)                ;multiplication sign
-  (set-case-syntax-pair 216 248 tbl)   ;latin letter o with stroke
-  (set-case-syntax-pair 217 249 tbl)   ;latin letter u with grave
-  (set-case-syntax-pair 218 250 tbl)   ;latin letter u with acute
-  (set-case-syntax-pair 219 251 tbl)   ;latin letter u with circumflex
-  (set-case-syntax-pair 220 252 tbl)   ;latin letter u with diaeresis
-  (set-case-syntax-pair 221 253 tbl)   ;latin letter y with acute
-  (set-case-syntax-pair 222 254 tbl)   ;latin letter thorn
-  (set-case-syntax 223 "w" tbl)                ;latin small letter sharp s
-  (set-case-syntax 247 "_" tbl))       ;division sign
-
-;; When preloading this file, don't provide the feature.
-;; Explicit `require' is used to load this for 8-bit characters.
-(or set-case-syntax-set-multibyte
-    (provide 'latin-9))
-
-;; Don't compile this file: src/Makefile.in instructs make-docfile
-;; to look at the .el file!
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
-
-;; arch-tag: 84d442ad-d595-4016-8b84-ea92704fd235
-;;; latin-9.el ends here
index ef3d7fbf13e362ef0e581c416295599606722b02..7372a5570b89a43835c8b125cab36970a8f7fc70 100644 (file)
@@ -6,8 +6,11 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
-;; Keywords: mule, multilingual
+;; Keywords: mule, i18n
 
 ;; This file is part of GNU Emacs.
 
@@ -276,7 +279,7 @@ wrong, use this command again to toggle back to the right mode."
   (interactive
    (let ((default (and buffer-file-coding-system
                       (not (eq (coding-system-type buffer-file-coding-system)
-                               t))
+                               'undecided))
                       buffer-file-coding-system)))
      (list (read-coding-system
            (if default
@@ -343,15 +346,13 @@ This also sets the following values:
       (setq default-file-name-coding-system 'utf-8)
     (if (and default-enable-multibyte-characters
             (or (not coding-system)
-                (not (coding-system-get coding-system 'ascii-incompatible))))
+                (coding-system-get coding-system 'ascii-compatible-p)))
        (setq default-file-name-coding-system coding-system)))
   ;; If coding-system is nil, honor that on MS-DOS as well, so
   ;; that they could reset the terminal coding system.
   (unless (and (eq window-system 'pc) coding-system)
     (setq default-terminal-coding-system coding-system))
-  (if (or (not coding-system)
-         (not (coding-system-get coding-system 'ascii-incompatible)))
-      (setq default-keyboard-coding-system coding-system))
+  (setq default-keyboard-coding-system coding-system)
   ;; Preserve eol-type from existing default-process-coding-systems.
   ;; On non-unix-like systems in particular, these may have been set
   ;; carefully by the user, or by the startup code, to deal with the
@@ -385,33 +386,24 @@ system, and Emacs automatically sets the default to that coding system at
 startup.
 
 A coding system that requires automatic detection of text
-encoding (e.g. undecided, unix) can't be preferred.
-
-See also `coding-category-list' and `coding-system-category'."
++encoding (e.g. undecided, unix) can't be preferred.."
   (interactive "zPrefer coding system: ")
   (if (not (and coding-system (coding-system-p coding-system)))
       (error "Invalid coding system `%s'" coding-system))
-  (let ((coding-category (coding-system-category coding-system))
-       (base (coding-system-base coding-system))
+  (if (memq (coding-system-type coding-system) '(raw-text undecided))
+      (error "Can't prefer the coding system `%s'" coding-system))
+  (let ((base (coding-system-base coding-system))
        (eol-type (coding-system-eol-type coding-system)))
-    (if (not coding-category)
-       ;; CODING-SYSTEM is no-conversion or undecided.
-       (error "Can't prefer the coding system `%s'" coding-system))
-    (set coding-category (or base coding-system))
-    ;; Changing the binding of a coding category requires this call.
-    (update-coding-systems-internal)
-    (or (eq coding-category (car coding-category-list))
-       ;; We must change the order.
-       (set-coding-priority (list coding-category)))
-    (if (and base (interactive-p))
-       (message "Highest priority is set to %s (base of %s)"
-                base coding-system))
+    (set-coding-system-priority base)
+    (and (interactive-p)
+        (or (eq base coding-system)
+            (message "Highest priority is set to %s (base of %s)"
+                     base coding-system)))
     ;; If they asked for specific EOL conversion, honor that.
     (if (memq eol-type '(0 1 2))
-       (setq coding-system
-             (coding-system-change-eol-conversion base eol-type))
-      (setq coding-system base))
-    (set-default-coding-systems coding-system)))
+       (setq base
+             (coding-system-change-eol-conversion base eol-type)))
+    (set-default-coding-systems base)))
 
 (defvar sort-coding-systems-predicate nil
   "If non-nil, a predicate function to sort coding systems.
@@ -435,9 +427,8 @@ If the variable `sort-coding-systems-predicate' (which see) is
 non-nil, it is used to sort CODINGS instead."
   (if sort-coding-systems-predicate
       (sort codings sort-coding-systems-predicate)
-    (let* ((from-categories (mapcar #'(lambda (x) (symbol-value x))
-                                   coding-category-list))
-          (most-preferred (car from-categories))
+    (let* ((from-priority (coding-system-priority-list))
+          (most-preferred (car from-priority))
           (lang-preferred (get-language-info current-language-environment
                                              'coding-system))
           (func (function
@@ -454,7 +445,7 @@ non-nil, it is used to sort CODINGS instead."
                      (logior
                       (lsh (if (eq base most-preferred) 1 0) 7)
                       (lsh
-                       (let ((mime (coding-system-get base 'mime-charset)))
+                       (let ((mime (coding-system-get base :mime-charset)))
                           ;; Prefer coding systems corresponding to a
                           ;; MIME charset.
                           (if mime
@@ -470,28 +461,32 @@ non-nil, it is used to sort CODINGS instead."
                             0))
                        5)
                       (lsh (if (memq base lang-preferred) 1 0) 4)
-                      (lsh (if (memq base from-categories) 1 0) 3)
+                      (lsh (if (memq base from-priority) 1 0) 3)
                       (lsh (if (string-match "-with-esc\\'"
                                              (symbol-name base))
                                0 1) 2)
-                      (if (eq (coding-system-type base) 2)
-                          ;; For ISO based coding systems, prefer
-                          ;; one that doesn't use escape sequences.
-                          (let ((flags (coding-system-flags base)))
-                            (if (or (consp (aref flags 0))
-                                    (consp (aref flags 1))
-                                    (consp (aref flags 2))
-                                    (consp (aref flags 3)))
-                                (if (or (aref flags 8) (aref flags 9))
-                                    0
-                                  1)
-                              2))
-                        1)))))))
+                      (if (eq (coding-system-type base) 'iso-2022)
+                          (let ((category (coding-system-category base)))
+                            ;; For ISO based coding systems, prefer
+                            ;; one that doesn't use designation nor
+                            ;; locking/single shifting.
+                              (cond
+                               ((or (eq category 'coding-category-iso-8-1)
+                                    (eq category 'coding-category-iso-8-2))
+                                2)
+                               ((or (eq category 'coding-category-iso-7-tight)
+                                    (eq category 'coding-category-iso-7))
+                                1)
+                               (t
+                                0)))
+                          1)
+                        ))))))
       (sort codings (function (lambda (x y)
                                (> (funcall func x) (funcall func y))))))))
 
 (defun find-coding-systems-region (from to)
   "Return a list of proper coding systems to encode a text between FROM and TO.
+
 If FROM is a string, find coding systems in that instead of the buffer.
 All coding systems in the list can safely encode any multibyte characters
 in the text.
@@ -518,43 +513,38 @@ element `undecided'."
 (defun find-coding-systems-for-charsets (charsets)
   "Return a list of proper coding systems to encode characters of CHARSETS.
 CHARSETS is a list of character sets.
-It actually checks at most the first 96 characters of each charset.
-So, if a charset of dimension two is included in CHARSETS, the value may
-contain a coding system that can't encode all characters of the charset."
+
+This only finds coding systems of type `charset', whose
+`:charset-list' property includes all of CHARSETS (plus `ascii' for
+ascii-compatible coding systems).  It was used in older versions of
+Emacs, but is unlikely to be what you really want now."
+  ;; Deal with aliases.
+  (setq charsets (mapcar (lambda (c)
+                          (get-charset-property c :name))
+                        charsets))
   (cond ((or (null charsets)
             (and (= (length charsets) 1)
                  (eq 'ascii (car charsets))))
         '(undecided))
        ((or (memq 'eight-bit-control charsets)
             (memq 'eight-bit-graphic charsets))
-        '(raw-text emacs-mule))
+        '(raw-text utf-8-emacs))
        (t
-        (let ((codings t)
-              charset l str)
-          (while (and codings charsets)
-            (setq charset (car charsets) charsets (cdr charsets))
-            (unless (eq charset 'ascii)
-              (setq str (make-string 96 32))
-              (if (= (charset-dimension charset) 1)
-                  (if (= (charset-chars charset) 96)
-                      (dotimes (i 96)
-                        (aset str i (make-char charset (+ i 32))))
-                    (dotimes (i 94)
-                      (aset str i (make-char charset (+ i 33)))))
-                (if (= (charset-chars charset) 96)
-                    (dotimes (i 96)
-                      (aset str i (make-char charset 32 (+ i 32))))
-                  (dotimes (i 94)
-                    (aset str i (make-char charset 33 (+ i 33))))))
-              (setq l (find-coding-systems-string str))
-              (if (eq codings t)
-                  (setq codings l)
-                (let ((ll nil))
-                  (dolist (elt codings)
-                    (if (memq elt l)
-                        (setq ll (cons elt ll))))
-                  (setq codings ll)))))
-          codings))))
+        (let (codings)
+          (dolist (cs (coding-system-list t))
+            (let ((cs-charsets (and (eq (coding-system-type cs) 'charset)
+                                    (coding-system-charset-list cs)))
+                  (charsets charsets))
+              (if (coding-system-get cs :ascii-compatible-p)
+                  (add-to-list 'cs-charsets 'ascii))
+              (if (catch 'ok
+                    (when cs-charsets
+                      (while charsets
+                        (unless (memq (pop charsets) cs-charsets)
+                          (throw 'ok nil)))
+                      t))
+                  (push cs codings))))
+          (nreverse codings)))))
 
 (defun find-multibyte-characters (from to &optional maxcount excludes)
   "Find multibyte characters in the region specified by FROM and TO.
@@ -566,50 +556,42 @@ where
   COUNT is a number of characters,
   CHARs are the characters found from the character set.
 Optional 3rd arg MAXCOUNT limits how many CHARs are put in the above list.
-Optional 4th arg EXCLUDES is a list of character sets to be ignored.
-
-For invalid characters, CHARs are actually strings."
+Optional 4th arg EXCLUDES is a list of character sets to be ignored."
   (let ((chars nil)
        charset char)
     (if (stringp from)
-       (let ((idx 0))
-         (while (setq idx (string-match "[^\000-\177]" from idx))
-           (setq char (aref from idx)
-                 charset (char-charset char))
-           (if (eq charset 'unknown)
-               (setq char (match-string 0)))
-           (if (or (memq charset '(unknown
-                                   eight-bit-control eight-bit-graphic))
-                   (not (or (eq excludes t) (memq charset excludes))))
+       (if (multibyte-string-p from)
+           (let ((idx 0))
+             (while (setq idx (string-match "[^\000-\177]" from idx))
+               (setq char (aref from idx)
+                     charset (char-charset char))
+               (unless (memq charset excludes)
+                 (let ((slot (assq charset chars)))
+                   (if slot
+                       (if (not (memq char (nthcdr 2 slot)))
+                           (let ((count (nth 1 slot)))
+                             (setcar (cdr slot) (1+ count))
+                             (if (or (not maxcount) (< count maxcount))
+                                 (nconc slot (list char)))))
+                     (setq chars (cons (list charset 1 char) chars)))))
+               (setq idx (1+ idx)))))
+      (if enable-multibyte-characters
+         (save-excursion
+           (goto-char from)
+           (while (re-search-forward "[^\000-\177]" to t)
+             (setq char (preceding-char)
+                   charset (char-charset char))
+             (unless (memq charset excludes)
                (let ((slot (assq charset chars)))
                  (if slot
-                     (if (not (memq char (nthcdr 2 slot)))
+                     (if (not (member char (nthcdr 2 slot)))
                          (let ((count (nth 1 slot)))
                            (setcar (cdr slot) (1+ count))
                            (if (or (not maxcount) (< count maxcount))
                                (nconc slot (list char)))))
-                   (setq chars (cons (list charset 1 char) chars)))))
-           (setq idx (1+ idx))))
-      (save-excursion
-       (goto-char from)
-       (while (re-search-forward "[^\000-\177]" to t)
-         (setq char (preceding-char)
-               charset (char-charset char))
-         (if (eq charset 'unknown)
-             (setq char (match-string 0)))
-         (if (or (memq charset '(unknown eight-bit-control eight-bit-graphic))
-                 (not (or (eq excludes t) (memq charset excludes))))
-             (let ((slot (assq charset chars)))
-               (if slot
-                   (if (not (member char (nthcdr 2 slot)))
-                       (let ((count (nth 1 slot)))
-                         (setcar (cdr slot) (1+ count))
-                         (if (or (not maxcount) (< count maxcount))
-                             (nconc slot (list char)))))
-                 (setq chars (cons (list charset 1 char) chars))))))))
+                   (setq chars (cons (list charset 1 char) chars)))))))))
     (nreverse chars)))
 
-
 (defun search-unencodable-char (coding-system)
   "Search forward from point for a character that is not encodable.
 It asks which coding system to check.
@@ -629,7 +611,6 @@ character found, or nil if all characters are encodable."
       (message "All following characters are encodable by %s" coding-system))
     pos))
 
-
 (defvar last-coding-system-specified nil
   "Most recent coding system explicitly specified by the user when asked.
 This variable is set whenever Emacs asks the user which coding system
@@ -680,8 +661,9 @@ DEFAULT is the coding system to use by default in the query."
   (let ((l codings)
        mime-charset)
     (while l
-      (setq mime-charset (coding-system-get (car l) 'mime-charset))
-      (if (and mime-charset (coding-system-p mime-charset))
+      (setq mime-charset (coding-system-get (car l) :mime-charset))
+      (if (and mime-charset (coding-system-p mime-charset)
+              (coding-system-equal (car l) mime-charset))
          (setcar l mime-charset))
       (setq l (cdr l))))
 
@@ -733,7 +715,7 @@ DEFAULT is the coding system to use by default in the query."
            (let ((pos (point))
                  (fill-prefix "  "))
              (dolist (x (append rejected unsafe))
-               (princ "  ") (princ (car x)))
+               (princ "  ") (princ x))
              (insert "\n")
              (fill-region-as-paragraph pos (point)))
            (when rejected
@@ -932,13 +914,11 @@ It is highly recommended to fix it before writing to a file."
 
       ;; If the most preferred coding system has the property mime-charset,
       ;; append it to the defaults.
-      (let ((tail coding-category-list)
-           preferred base)
-       (while (and tail (not (setq preferred (symbol-value (car tail)))))
-         (setq tail (cdr tail)))
+      (let ((preferred (coding-system-priority-list t))
+           base)
        (and (coding-system-p preferred)
             (setq base (coding-system-base preferred))
-            (coding-system-get preferred 'mime-charset)
+            (coding-system-get preferred :mime-charset)
             (not (rassq base default-coding-system))
             (setq default-coding-system
                   (append default-coding-system
@@ -977,7 +957,8 @@ It is highly recommended to fix it before writing to a file."
 
        ;; Classify the defaults into safe, rejected, and unsafe.
        (dolist (elt default-coding-system)
-         (if (memq (cdr elt) codings)
+         (if (or (eq (car codings) 'undecided)
+                 (memq (cdr elt) codings))
              (if (and (functionp accept-default-p)
                       (not (funcall accept-default-p (cdr elt))))
                  (push (car elt) rejected)
@@ -1057,19 +1038,10 @@ it asks the user to select a proper coding system."
        ;; We should never use no-conversion for outgoing mail.
        (setq coding nil))
     (if (fboundp select-safe-coding-system-function)
-       (setq coding
-             (funcall select-safe-coding-system-function
-                      (point-min) (point-max) coding
-                      (function (lambda (x)
-                                  (coding-system-get x 'mime-charset))))))
-    (if coding
-       ;; Be sure to use LF for end-of-line.
-       (setq coding (coding-system-change-eol-conversion coding 'unix))
-      ;; No coding system is decided.  Usually this is the case that
-      ;; the current buffer contains only ASCII.  So, we hope
-      ;; iso-8859-1 works.
-      (setq coding 'iso-8859-1-unix))
-    coding))
+       (funcall select-safe-coding-system-function
+                (point-min) (point-max) coding
+                (function (lambda (x) (coding-system-get x :mime-charset))))
+      coding)))
 \f
 ;;; Language support stuff.
 
@@ -1084,8 +1056,8 @@ Meaningful values for KEY include
 
   documentation      value is documentation of what this language environment
                        is meant for, and how to use it.
-  charset           value is a list of the character sets used by this
-                       language environment.
+  charset           value is a list of the character sets mainly used
+                       by this language environment.
   sample-text       value is an expression which is evalled to generate
                         a line of text written using characters appropriate
                         for this language environment.
@@ -1102,10 +1074,9 @@ Meaningful values for KEY include
                        This is used to set up the coding system priority
                        list when you switch to this language environment.
   nonascii-translation
-                    value is a translation table to be set in the
-                       variable `nonascii-translation-table' in this
-                       language environment, or a character set from
-                       which `nonascii-insert-offset' is calculated.
+                    value is a charset of dimension one to use for
+                       converting a unibyte character to multibyte
+                       and vice versa.
   input-method       value is a default input method for this language
                        environment.
   features           value is a list of features requested in this
@@ -1121,10 +1092,6 @@ The following keys take effect only when multibyte characters are
 globally disabled, i.e. the value of `default-enable-multibyte-characters'
 is nil.
 
-  unibyte-syntax     value is a library name to load to set
-                       unibyte 8-bit character syntaxes for this
-                       language environment.
-
   unibyte-display    value is a coding system to encode characters
                        for the terminal.  Characters in the range
                        of 160 to 255 display not as octal escapes,
@@ -1156,15 +1123,14 @@ see `language-info-alist'."
   (set-language-info-internal lang-env key info)
   (if (equal lang-env current-language-environment)
       (cond ((eq key 'coding-priority)
-            (set-language-environment-coding-systems lang-env))
+            (set-language-environment-coding-systems lang-env)
+            (set-language-environment-charset lang-env))
            ((eq key 'input-method)
             (set-language-environment-input-method lang-env))
            ((eq key 'nonascii-translation)
             (set-language-environment-nonascii-translation lang-env))
            ((eq key 'charset)
             (set-language-environment-charset lang-env))
-           ((eq key 'overriding-fontspec)
-            (set-language-environment-fontset lang-env))
            ((and (not default-enable-multibyte-characters)
                  (or (eq key 'unibyte-syntax) (eq key 'unibyte-display)))
             (set-language-environment-unibyte lang-env)))))
@@ -1324,7 +1290,7 @@ If nil, that means no input method is activated now.")
 (put 'current-input-method-title 'permanent-local t)
 
 (defcustom default-input-method nil
-  "*Default input method for multilingual text (a string).
+  "Default input method for multilingual text (a string).
 This is the input method activated automatically by the command
 `toggle-input-method' (\\[toggle-input-method])."
   :link  '(custom-manual "(emacs)Input Methods")
@@ -1467,12 +1433,13 @@ If INPUT-METHOD is nil, deactivate any current input method."
                      (delete current-input-method input-method-history))))
       (setq input-method-history (list current-input-method)))
     (unwind-protect
-       (funcall inactivate-current-input-method-function)
+       (progn
+         (setq input-method-function nil
+               current-input-method-title nil)
+         (funcall inactivate-current-input-method-function))
       (unwind-protect
          (run-hooks 'input-method-inactivate-hook)
-       (setq current-input-method nil
-             input-method-function nil
-             current-input-method-title nil)
+       (setq current-input-method nil)
        (force-mode-line-update)))))
 
 (defun set-input-method (input-method &optional interactive)
@@ -1542,6 +1509,8 @@ which marks the variable `default-input-method' as set for Custom buffers."
          (when interactive
            (customize-mark-as-set 'default-input-method)))))))
 
+(eval-when-compile (autoload 'help-buffer "help-mode"))
+
 (defun describe-input-method (input-method)
   "Describe input method INPUT-METHOD."
   (interactive
@@ -1610,7 +1579,7 @@ or a string."
 ;; should react to these variables.
 
 (defcustom input-method-verbose-flag 'default
-  "*A flag to control extra guidance given by input methods.
+  "A flag to control extra guidance given by input methods.
 The value should be nil, t, `complex-only', or `default'.
 
 The extra guidance is done by showing list of available keys in echo
@@ -1633,7 +1602,7 @@ See also the variable `input-method-highlight-flag'."
   :group 'mule)
 
 (defcustom input-method-highlight-flag t
-  "*If this flag is non-nil, input methods highlight partially-entered text.
+  "If this flag is non-nil, input methods highlight partially-entered text.
 For instance, while you are in the middle of a Quail input method sequence,
 the text inserted so far is temporarily underlined.
 The underlining goes away when you finish or abort the input method sequence.
@@ -1641,20 +1610,26 @@ See also the variable `input-method-verbose-flag'."
   :type 'boolean
   :group 'mule)
 
-(defvar input-method-activate-hook nil
+(defcustom input-method-activate-hook nil
   "Normal hook run just after an input method is activated.
 
 The variable `current-input-method' keeps the input method name
-just activated.")
+just activated."
+  :type 'hook
+  :group 'mule)
 
-(defvar input-method-inactivate-hook nil
+(defcustom input-method-inactivate-hook nil
   "Normal hook run just after an input method is inactivated.
 
 The variable `current-input-method' still keeps the input method name
-just inactivated.")
+just inactivated."
+  :type 'hook
+  :group 'mule)
 
-(defvar input-method-after-insert-chunk-hook nil
-  "Normal hook run just after an input method insert some chunk of text.")
+(defcustom input-method-after-insert-chunk-hook nil
+  "Normal hook run just after an input method insert some chunk of text."
+  :type 'hook
+  :group 'mule)
 
 (defvar input-method-exit-on-first-char nil
   "This flag controls when an input method returns.
@@ -1663,12 +1638,14 @@ that it may find a different translation if a user types another key.
 But, if this flag is non-nil, the input method returns as soon as
 the current key sequence gets long enough to have some valid translation.")
 
-(defvar input-method-use-echo-area nil
+(defcustom input-method-use-echo-area nil
   "This flag controls how an input method shows an intermediate key sequence.
 Usually, the input method inserts the intermediate key sequence,
 or candidate translations corresponding to the sequence,
 at point in the current buffer.
-But, if this flag is non-nil, it displays them in echo area instead.")
+But, if this flag is non-nil, it displays them in echo area instead."
+  :type 'hook
+  :group 'mule)
 
 (defvar input-method-exit-on-invalid-key nil
   "This flag controls the behavior of an input method on invalid key input.
@@ -1678,21 +1655,25 @@ input method temporarily.  After that key, the input method is re-enabled.
 But, if this flag is non-nil, the input method is never back on.")
 
 \f
-(defvar set-language-environment-hook nil
+(defcustom set-language-environment-hook nil
   "Normal hook run after some language environment is set.
 
 When you set some hook function here, that effect usually should not
 be inherited to another language environment.  So, you had better set
 another function in `exit-language-environment-hook' (which see) to
-cancel the effect.")
+cancel the effect."
+  :type 'hook
+  :group 'mule)
 
-(defvar exit-language-environment-hook nil
+(defcustom exit-language-environment-hook nil
   "Normal hook run after exiting from some language environment.
 When this hook is run, the variable `current-language-environment'
 is still bound to the language environment being exited.
 
 This hook is mainly used for canceling the effect of
-`set-language-environment-hook' (which see).")
+`set-language-environment-hook' (which see)."
+  :type 'hook
+  :group 'mule)
 
 (put 'setup-specified-language-environment 'apropos-inhibit t)
 
@@ -1742,64 +1723,26 @@ The default status is as follows:
   The default value for the command `set-terminal-coding-system' is nil.
   The default value for the command `set-keyboard-coding-system' is nil.
 
-  The order of priorities of coding categories and the coding system
-  bound to each category are as follows
-       coding category                 coding system
-       --------------------------------------------------
-       coding-category-iso-8-1         iso-latin-1
-       coding-category-iso-8-2         iso-latin-1
-       coding-category-utf-8           mule-utf-8
-       coding-category-utf-16-be       mule-utf-16be-with-signature
-       coding-category-utf-16-le       mule-utf-16le-with-signature
-       coding-category-iso-7-tight     iso-2022-jp
-       coding-category-iso-7           iso-2022-7bit
-       coding-category-iso-7-else      iso-2022-7bit-lock
-       coding-category-iso-8-else      iso-2022-8bit-ss2
-       coding-category-emacs-mule      emacs-mule
-       coding-category-raw-text        raw-text
-       coding-category-sjis            japanese-shift-jis
-       coding-category-big5            chinese-big5
-       coding-category-ccl             nil
-       coding-category-binary          no-conversion"
+  The order of priorities of coding systems are as follows:
+       utf-8
+       iso-2022-7bit
+       iso-latin-1
+       iso-2022-7bit-lock
+       iso-2022-8bit-ss2
+       emacs-mule
+       raw-text"
   (interactive)
   ;; This function formerly set default-enable-multibyte-characters to t,
   ;; but that is incorrect.  It should not alter the unibyte/multibyte choice.
 
-  (setq coding-category-iso-7-tight    'iso-2022-jp
-       coding-category-iso-7           'iso-2022-7bit
-       coding-category-iso-8-1         'iso-latin-1
-       coding-category-iso-8-2         'iso-latin-1
-       coding-category-iso-7-else      'iso-2022-7bit-lock
-       coding-category-iso-8-else      'iso-2022-8bit-ss2
-       coding-category-emacs-mule      'emacs-mule
-       coding-category-raw-text        'raw-text
-       coding-category-sjis            'japanese-shift-jis
-       coding-category-big5            'chinese-big5
-       coding-category-utf-16-be       'mule-utf-16be-with-signature
-       coding-category-utf-16-le       'mule-utf-16le-with-signature
-       coding-category-utf-8           'mule-utf-8
-       coding-category-ccl             nil
-       coding-category-binary          'no-conversion)
-
-  (set-coding-priority
-   '(coding-category-iso-8-1
-     coding-category-iso-8-2
-     coding-category-utf-8
-     coding-category-utf-16-be
-     coding-category-utf-16-le
-     coding-category-iso-7-tight
-     coding-category-iso-7
-     coding-category-iso-7-else
-     coding-category-iso-8-else
-     coding-category-emacs-mule
-     coding-category-raw-text
-     coding-category-sjis
-     coding-category-big5
-     coding-category-ccl
-     coding-category-binary))
-
-  ;; Changing the binding of a coding category requires this call.
-  (update-coding-systems-internal)
+  (set-coding-system-priority
+   'utf-8
+   'iso-2022-7bit
+   'iso-latin-1
+   'iso-2022-7bit-lock
+   'iso-2022-8bit-ss2
+   'emacs-mule
+   'raw-text)
 
   (set-default-coding-systems nil)
   (setq default-sendmail-coding-system 'iso-latin-1)
@@ -1832,13 +1775,7 @@ The default status is as follows:
   ;; (set-terminal-coding-system-internal nil)
   ;; (set-keyboard-coding-system-internal nil)
 
-  (setq nonascii-translation-table nil
-       nonascii-insert-offset 0)
-
-  ;; Don't invoke fontset-related functions if fontsets aren't
-  ;; supported in this build of Emacs.
-  (and (fboundp 'fontset-list)
-       (set-overriding-fontspec-internal nil)))
+  (set-unibyte-charset 'iso-8859-1))
 
 (reset-language-environment)
 
@@ -1896,7 +1833,6 @@ specifies the character set for the major languages of Western Europe."
   (set-language-environment-input-method language-name)
   (set-language-environment-nonascii-translation language-name)
   (set-language-environment-charset language-name)
-  (set-language-environment-fontset language-name)
   ;; Unibyte setups if necessary.
   (unless default-enable-multibyte-characters
     (set-language-environment-unibyte language-name))
@@ -1908,6 +1844,68 @@ specifies the character set for the major languages of Western Europe."
   (run-hooks 'set-language-environment-hook)
   (force-mode-line-update t))
 
+(define-widget 'charset 'symbol
+  "An Emacs charset."
+  :tag "Charset"
+  :complete-function (lambda ()
+                      (interactive)
+                      (lisp-complete-symbol 'charsetp))
+  :completion-ignore-case t
+  :value 'ascii
+  :validate (lambda (widget)
+             (unless (charsetp (widget-value widget))
+               (widget-put widget :error (format "Invalid charset: %S"
+                                                 (widget-value widget)))
+               widget))
+  :prompt-history 'charset-history)
+
+(defcustom language-info-custom-alist nil
+  "Customizations of language environment parameters.
+Value is an alist with elements like those of `language-info-alist'.
+These are used to set values in `language-info-alist' which replace
+the defaults.  A typical use is replacing the default input method for
+the environment.  Use \\[describe-language-environment] to find the environment's settings.
+
+This option is intended for use at startup.  Removing items doesn't
+remove them from the language info until you next restart Emacs.
+
+Setting this variable directly does not take effect.  See
+`set-language-info-alist' for use in programs."
+  :group 'mule
+  :version "23.1"
+  :set (lambda (s v)
+        (custom-set-default s v)
+        ;; Can't do this before language environments are set up.
+        (when v
+          ;; modify language-info-alist
+          (dolist (elt v)
+            (set-language-info-alist (car elt) (cdr elt)))
+          ;; re-set the environment in case its parameters changed
+          (set-language-environment current-language-environment)))
+  :type `(alist
+         :key-type (string :tag "Language environment"
+                           :completion-ignore-case t
+                           :complete-function widget-string-complete
+                           :completion-alist language-info-alist)
+         :value-type
+         (alist :key-type symbol
+                :options ((documentation string)
+                          (charset (repeat charset))
+                          (sample-text string)
+                          (setup-function function)
+                          (exit-function function)
+                          (coding-system (repeat coding-system))
+                          (coding-priority (repeat coding-system))
+                          (nonascii-translation charset)
+                          (input-method
+                           (string
+                            :completion-ignore-case t
+                            :complete-function widget-string-complete
+                            :completion-alist input-method-alist
+                            :prompt-history input-method-history))
+                          (features (repeat symbol))
+                          (unibyte-display coding-system)))))
+
 (defun standard-display-european-internal ()
   ;; Actually set up direct output of non-ASCII characters.
   (standard-display-8bit (if (eq window-system 'pc) 128 160) 255)
@@ -1938,19 +1936,13 @@ specifies the character set for the major languages of Western Europe."
   (let* ((priority (get-language-info language-name 'coding-priority))
         (default-coding (car priority))
         (eol-type (coding-system-eol-type default-buffer-file-coding-system)))
-    (if priority
-       (let ((categories (mapcar 'coding-system-category priority)))
-         (set-default-coding-systems
-          (if (memq eol-type '(0 1 2 unix dos mac))
-              (coding-system-change-eol-conversion default-coding eol-type)
-            default-coding))
-         (setq default-sendmail-coding-system default-coding)
-         (set-coding-priority categories)
-         (while priority
-           (set (car categories) (car priority))
-           (setq priority (cdr priority) categories (cdr categories)))
-         ;; Changing the binding of a coding category requires this call.
-         (update-coding-systems-internal)))))
+    (when priority
+      (set-default-coding-systems
+       (if (memq eol-type '(0 1 2 unix dos mac))
+          (coding-system-change-eol-conversion default-coding eol-type)
+        default-coding))
+      (setq default-sendmail-coding-system default-coding)
+      (apply 'set-coding-system-priority priority))))
 
 (defun set-language-environment-input-method (language-name)
   "Do various input method setups for language environment LANGUAGE-NAME."
@@ -1964,66 +1956,28 @@ specifies the character set for the major languages of Western Europe."
 
 (defun set-language-environment-nonascii-translation (language-name)
   "Do unibyte/multibyte translation setup for language environment LANGUAGE-NAME."
-  (let ((nonascii (get-language-info language-name 'nonascii-translation))
-       (dos-table
-        (if (eq window-system 'pc)
-            (intern
-             (format "cp%d-nonascii-translation-table" dos-codepage)))))
-    (cond
-     ((char-table-p nonascii)
-      (setq nonascii-translation-table nonascii))
-     ((and (eq window-system 'pc) (boundp dos-table))
-      ;; DOS terminals' default is to use a special non-ASCII translation
-      ;; table as appropriate for the installed codepage.
-      (setq nonascii-translation-table (symbol-value dos-table)))
-     ((charsetp nonascii)
-      (setq nonascii-insert-offset (- (make-char nonascii) 128))))))
+  ;; Note: For DOS, we assumed that the charset cpXXX is already
+  ;; defined.
+  (let ((nonascii (get-language-info language-name 'nonascii-translation)))
+    (if (eq window-system 'pc)
+       (setq nonascii (intern "cp%d" dos-codepage)))
+    (or (and (charsetp nonascii)
+            (get-charset-property nonascii :ascii-compatible-p))
+       (setq nonascii 'iso-8859-1))
+    (set-unibyte-charset nonascii)))
 
 (defun set-language-environment-charset (language-name)
   "Do various charset setups for language environment LANGUAGE-NAME."
-  (if (and utf-translate-cjk-mode
-          (not (eq utf-translate-cjk-lang-env language-name))
-          (catch 'tag
-            (dolist (charset (get-language-info language-name 'charset))
-              (if (memq charset utf-translate-cjk-charsets)
-                  (throw 'tag t)))
-            nil))
-      (utf-translate-cjk-load-tables)))
-
-(defun set-language-environment-fontset (language-name)
-  "Do various fontset setups for language environment LANGUAGE-NAME."
-  ;; Don't invoke fontset-related functions if fontsets aren't
-  ;; supported in this build of Emacs.
-  (if (fboundp 'fontset-list)
-      (set-overriding-fontspec-internal
-       (get-language-info language-name 'overriding-fontspec))))
+  ;; Put higher priorities to such charsets that are supported by the
+  ;; coding systems of higher priorities in this environment.
+  (let ((charsets (get-language-info language-name 'charset)))
+    (dolist (coding (get-language-info language-name 'coding-priority))
+      (setq charsets (append charsets (coding-system-charset-list coding))))
+    (if charsets
+       (apply 'set-charset-priority charsets))))
 
 (defun set-language-environment-unibyte (language-name)
   "Do various unibyte-mode setups for language environment LANGUAGE-NAME."
-  ;; Syntax and case table.
-  (let ((syntax (get-language-info language-name 'unibyte-syntax)))
-    (if syntax
-       (let ((set-case-syntax-set-multibyte nil))
-         (load syntax nil t))
-      ;; No information for syntax and case.  Reset to the defaults.
-      (let ((syntax-table (standard-syntax-table))
-           (standard-table (standard-case-table))
-           (case-table (make-char-table 'case-table))
-           (ch (if (eq window-system 'pc) 128 160)))
-       (while (< ch 256)
-         (modify-syntax-entry ch " " syntax-table)
-         (setq ch (1+ ch)))
-       (dotimes (i 128)
-         (aset case-table i (aref standard-table i)))
-       (set-char-table-extra-slot case-table 0 nil)
-       (set-char-table-extra-slot case-table 1 nil)
-       (set-char-table-extra-slot case-table 2 nil)
-       (set-standard-case-table case-table))
-      (let ((list (buffer-list)))
-       (while list
-         (with-current-buffer (car list)
-           (set-case-table (standard-case-table)))
-         (setq list (cdr list))))))
   (set-display-table-and-terminal-coding-system language-name))
 
 (defsubst princ-list (&rest args)
@@ -2079,26 +2033,29 @@ specifies the character set for the major languages of Western Europe."
                  (insert "Sample text:\n  " str "\n\n")))
          (error nil))
        (let ((input-method (get-language-info language-name 'input-method))
-             (l (copy-sequence input-method-alist)))
-         (insert "Input methods")
-         (when input-method
-           (insert " (default " input-method ")")
-           (setq input-method (assoc input-method input-method-alist))
-           (setq l (cons input-method (delete input-method l))))
-         (insert ":\n")
-         (while l
-           (when (string= language-name (nth 1 (car l)))
-             (insert "  " (car (car l)))
-             (search-backward (car (car l)))
-             (help-xref-button 0 'help-input-method (car (car l)))
+             (l (copy-sequence input-method-alist))
+             (first t))
+         (when (and input-method
+                    (setq input-method (assoc input-method l)))
+           (insert "Input methods (default " (car input-method) ")\n")
+           (setq l (cons input-method (delete input-method l))
+                 first nil))
+         (dolist (elt l)
+           (when (or (eq input-method elt)
+                     (eq t (compare-strings language-name nil nil
+                                            (nth 1 elt) nil nil t)))
+             (when first
+               (insert "Input methods:\n")
+               (setq first nil))
+             (insert "  " (car elt))
+             (search-backward (car elt))
+             (help-xref-button 0 'help-input-method (car elt))
              (goto-char (point-max))
              (insert " (\""
-                     (if (stringp (nth 3 (car l)))
-                         (nth 3 (car l))
-                       (car (nth 3 (car l))))
-                     "\" in mode line)\n"))
-           (setq l (cdr l)))
-         (insert "\n"))
+                     (if (stringp (nth 3 elt)) (nth 3 elt) (car (nth 3 elt)))
+                     "\" in mode line)\n")))
+         (or first
+             (insert "\n")))
        (insert "Character sets:\n")
        (let ((l (get-language-info language-name 'charset)))
          (if (null l)
@@ -2125,8 +2082,7 @@ specifies the character set for the major languages of Western Europe."
                      "' in mode line):\n\t"
                      (coding-system-doc-string (car l))
                      "\n")
-             (let ((aliases (coding-system-get (car l)
-                                               'alias-coding-systems)))
+             (let ((aliases (coding-system-aliases (car l))))
                (when aliases
                  (insert "\t(alias:")
                  (while aliases
@@ -2291,7 +2247,6 @@ specifies the character set for the major languages of Western Europe."
     ("so_ET" "UTF-8") ; Somali
     ("so" "Latin-1") ; Somali
     ("sq" . "Latin-1") ; Albanian
-    ("sr_YU@cyrillic" . "Cyrillic-ISO")        ; Serbian (Cyrillic alphabet)
     ("sr" . "Latin-2") ; Serbian (Latin alphabet)
     ; ss Siswati
     ("st" . "Latin-1") ;  Sesotho
@@ -2326,12 +2281,14 @@ specifies the character set for the major languages of Western Europe."
     ; yo Yoruba
     ; za Zhuang
     ("zh_HK" . "Chinese-Big5")
+    ; zh_HK/BIG5-HKSCS \
     ("zh_TW" . "Chinese-Big5")
+    ("zh_CN.GB2312" "Chinese-GB")
+    ("zh_CN.GBK" "Chinese-GBK")
+    ("zh_CN.GB18030" "Chinese-GB18030")
+    ("zh_CN.UTF-8" . "Chinese-GBK")
     ("zh_CN" . "Chinese-GB")
     ("zh" . "Chinese-GB")
-    ; zh_CN.GB18030/GB18030 \
-    ; zh_CN.GBK/GBK \
-    ; zh_HK/BIG5-HKSCS \
     ("zu" . "Latin-1") ; Zulu
 
     ;; ISO standard locales
@@ -2349,7 +2306,7 @@ specifies the character set for the major languages of Western Europe."
     ("sp" . "Cyrillic-ISO") ; Serbian (Cyrillic alphabet), e.g. X11R6.4
     ("su" . "Latin-1") ; Finnish, e.g. Solaris 2.6
     ("jp" . "Japanese") ; e.g. MS Windows
-    ("chs" . "Chinese-GB") ; MS Windows Chinese Simplified
+    ("chs" . "Chinese-GBK") ; MS Windows Chinese Simplified
     ("cht" . "Chinese-BIG5") ; MS Windows Chinese Traditional
     ("gbz" . "UTF-8") ; MS Windows Dari Persian
     ("div" . "UTF-8") ; MS Windows Divehi (Maldives)
@@ -2402,14 +2359,13 @@ This language name is used if the locale is not listed in
      ("koi8-?r" . koi8-r)
      ("koi8-?u" . koi8-u)
      ("tcvn" . tcvn)
+     ("big5[-_]?hkscs" . big5-hkscs)
      ("big5" . big5)
      ("euc-?tw" . euc-tw)
-     ;; We don't support GBK, but as it is upper compatible with
-     ;; GB-2312, we setup the default coding system to gb2312.
-     ("gbk" . gb2312)
-     ;; We don't support BIG5-HKSCS, but as it is upper compatible with
-     ;; BIG5, we setup the default coding system to big5.
-     ("big5hkscs" . big5)
+     ("euc-?cn" .euc-cn)
+     ("gb2312" . gb2312)
+     ("gbk" . gbk)
+     ("gb18030" . gb18030)
      ("ja.*[._]euc" . japanese-iso-8bit)
      ("ja.*[._]jis7" . iso-2022-jp)
      ("ja.*[._]pck" . japanese-shift-jis)
@@ -2540,6 +2496,7 @@ See also `locale-charset-language-names', `locale-language-names',
       ;; using the translation file that many systems have.
       (when locale-translation-file-name
        (with-temp-buffer
+         (set-buffer-multibyte nil)
          (insert-file-contents locale-translation-file-name)
          (when (re-search-forward
                 (concat "^" (regexp-quote locale) ":?[ \t]+") nil t)
@@ -2628,7 +2585,21 @@ See also `locale-charset-language-names', `locale-language-names',
          ;; Fixme: perhaps prefer-coding-system should set this too.
          ;; But it's not the time to do such a fundamental change.
          (setq default-sendmail-coding-system coding-system)
-         (setq locale-coding-system coding-system))))
+         (setq locale-coding-system coding-system))
+
+       (when (get-language-info current-language-environment 'coding-priority)
+         (let ((codeset (locale-info 'codeset))
+               (coding-system (car (coding-system-priority-list))))
+           (when codeset
+             (let ((cs (coding-system-aliases coding-system))
+                   result)
+               (while (and cs (not result))
+                 (setq result
+                       (locale-charset-match-p (symbol-name (pop cs))
+                                               (locale-info 'codeset))))
+               (unless result
+                 (message "Warning: Default coding system `%s' disagrees with
+system codeset `%s' for this locale." coding-system codeset))))))))
 
     ;; On Windows, override locale-coding-system,
     ;; default-file-name-coding-system, keyboard-coding-system,
@@ -2692,48 +2663,112 @@ See also `locale-charset-language-names', `locale-language-names',
                      'a4)))))))
   nil)
 \f
-;;; Charset property
-
-(defun get-charset-property (charset propname)
-  "Return the value of CHARSET's PROPNAME property.
-This is the last value stored with
- (put-charset-property CHARSET PROPNAME VALUE)."
-  (and (not (eq charset 'composition))
-       (plist-get (charset-plist charset) propname)))
-
-(defun put-charset-property (charset propname value)
-  "Store CHARSETS's PROPNAME property with value VALUE.
-It can be retrieved with `(get-charset-property CHARSET PROPNAME)'."
-  (or (eq charset 'composition)
-      (set-charset-plist charset
-                        (plist-put (charset-plist charset) propname value))))
+;;; Character property
+
+;; Each element has the form (PROP . TABLE).
+;; PROP is a symbol representing a character property.
+;; TABLE is a char-table containing the property value for each character.
+;; TABLE may be a name of file to load to build a char-table.
+;; Don't modify this variable directly but use `define-char-code-property'.
+
+(defvar char-code-property-alist nil
+  "Alist of character property name vs char-table containing property values.
+Internal use only.")
+
+(put 'char-code-property-table 'char-table-extra-slots 5)
+
+(defun define-char-code-property (name table &optional docstring)
+  "Define NAME as a character code property given by TABLE.
+TABLE is a char-table of purpose `char-code-property-table' with
+these extra slots:
+  1st: NAME.
+  2nd: Function to call to get a property value of a character.
+    It is called with three arguments CHAR, VAL, and TABLE, where
+    CHAR is a character, VAL is the value of (aref TABLE CHAR).
+  3rd: Function to call to put a property value of a character.
+    It is called with the same arguments as above.
+  4th: Function to call to get a description string of a property value.
+    It is called with one argument VALUE, a property value.
+  5th: Data used by the above functions.
+
+TABLE may be a name of file to load to build a char-table.  The
+file should contain a call of `define-char-code-property' with a
+char-table of the above format as the argument TABLE.
+
+TABLE may also be nil, in which case no property value is pre-assigned.
+
+Optional 3rd argment DOCSTRING is a documentation string of the property.
 
-;;; Character code property
-(put 'char-code-property-table 'char-table-extra-slots 0)
+See also the documentation of `get-char-code-property' and
+`put-char-code-property'."
+  (or (symbolp name)
+      (error "Not a symbol: %s" name))
+  (if (char-table-p table)
+      (or (and (eq (char-table-subtype table) 'char-code-property-table)
+              (eq (char-table-extra-slot table 0) name))
+         (error "Invalid char-table: %s" table))
+    (or (stringp table)
+       (error "Not a char-table nor a file name: %s" table)))
+  (let ((slot (assq name char-code-property-alist)))
+    (if slot
+       (setcdr slot table)
+      (setq char-code-property-alist
+           (cons (cons name table) char-code-property-alist))))
+  (put name 'char-code-property-documentation docstring))
 
 (defvar char-code-property-table
   (make-char-table 'char-code-property-table)
   "Char-table containing a property list of each character code.
-
+This table is used for properties not listed in `char-code-property-alist'.
 See also the documentation of `get-char-code-property' and
 `put-char-code-property'.")
 
 (defun get-char-code-property (char propname)
-  "Return the value of CHAR's PROPNAME property in `char-code-property-table'."
-  (let ((plist (aref char-code-property-table char)))
-    (if (listp plist)
-       (car (cdr (memq propname plist))))))
+  "Return the value of CHAR's PROPNAME property."
+  (let ((slot (assq propname char-code-property-alist)))
+    (if slot
+       (let (table value func)
+         (if (stringp (cdr slot))
+             (load (cdr slot)))
+         (setq table (cdr slot)
+               value (aref table char)
+               func (char-table-extra-slot table 1))
+         (if (functionp func)
+             (setq value (funcall func char value table)))
+         value)
+      (plist-get (aref char-code-property-table char) propname))))
 
 (defun put-char-code-property (char propname value)
-  "Store CHAR's PROPNAME property with VALUE in `char-code-property-table'.
+  "Store CHAR's PROPNAME property with VALUE.
 It can be retrieved with `(get-char-code-property CHAR PROPNAME)'."
-  (let ((plist (aref char-code-property-table char)))
-    (if plist
-       (let ((slot (memq propname plist)))
-         (if slot
-             (setcar (cdr slot) value)
-           (nconc plist (list propname value))))
-      (aset char-code-property-table char (list propname value)))))
+  (let ((slot (assq propname char-code-property-alist)))
+    (if slot
+       (let (table func)
+         (if (stringp (cdr slot))
+             (load (cdr slot)))
+         (setq table (cdr slot)
+               func (char-table-extra-slot table 2))
+         (if (functionp func)
+             (funcall func char value table)
+           (aset table char value)))
+      (let* ((plist (aref char-code-property-table char))
+            (x (plist-put plist propname value)))
+       (or (eq x plist)
+           (aset char-code-property-table char x))))
+    value))
+
+(defun char-code-property-description (prop value)
+  "Return a description string of character property PROP's value VALUE.
+If there's no description string for VALUE, return nil."
+  (let ((slot (assq prop char-code-property-alist)))
+    (if slot
+       (let (table func)
+         (if (stringp (cdr slot))
+             (load (cdr slot)))
+         (setq table (cdr slot)
+               func (char-table-extra-slot table 3))
+         (if (functionp func)
+             (funcall func value))))))
 
 \f
 ;; Pretty description of encoded string
@@ -2751,7 +2786,7 @@ It can be retrieved with `(get-char-code-property CHAR PROPNAME)'."
   "Return a pretty description of STR that is encoded by CODING-SYSTEM."
   (setq str (string-as-unibyte str))
   (mapconcat
-   (if (and coding-system (eq (coding-system-type coding-system) 2))
+   (if (and coding-system (eq (coding-system-type coding-system) 'iso-2022))
        ;; Try to get a pretty description for ISO 2022 escape sequences.
        (function (lambda (x) (or (cdr (assq x iso-2022-control-alist))
                                 (format "#x%02X" x))))
@@ -2761,15 +2796,11 @@ It can be retrieved with `(get-char-code-property CHAR PROPNAME)'."
 (defun encode-coding-char (char coding-system)
   "Encode CHAR by CODING-SYSTEM and return the resulting string.
 If CODING-SYSTEM can't safely encode CHAR, return nil."
-  (let ((str1 (string-as-multibyte (char-to-string char)))
-       (str2 (string-as-multibyte (make-string 2 char)))
-       (safe-chars (and coding-system
-                        (coding-system-get coding-system 'safe-chars)))
-       (charset (char-charset char))
+  (let ((str1 (string-as-multibyte (string char)))
+       (str2 (string-as-multibyte (string char char)))
        enc1 enc2 i1 i2)
-    (when (or (eq safe-chars t)
-             (eq charset 'ascii)
-             (and safe-chars (aref safe-chars char)))
+    (when (memq (coding-system-base coding-system)
+               (find-coding-systems-string str1))
       ;; We must find the encoded string of CHAR.  But, just encoding
       ;; CHAR will put extra control sequences (usually to designate
       ;; ASCII charset) at the tail if type of CODING is ISO 2022.
@@ -2789,6 +2820,30 @@ If CODING-SYSTEM can't safely encode CHAR, return nil."
       ;; exclude.
       (substring enc2 0 i2))))
 
+;; Backwards compatibility.  These might be better with :init-value t,
+;; but that breaks loadup.
+(define-minor-mode unify-8859-on-encoding-mode
+  "Obsolete."
+  :group 'mule
+  :global t)
+(define-minor-mode unify-8859-on-decoding-mode
+  "Obsolete."
+  :group 'mule
+  :global t)
+
+(defvar nonascii-insert-offset 0 "This variable is obsolete.")
+(defvar nonascii-translation-table nil "This variable is obsolete.")
+
+(defun ucs-insert (arg)
+  "Insert a character of the given Unicode code point.
+Interactively, prompts for a hex string giving the code."
+  (interactive "sUnicode (hex): ")
+  (or (integerp arg)
+      (setq arg (string-to-number arg 16)))
+  (if (or (< arg 0) (> arg #x10FFFF))
+      (error "Not a Unicode character code: 0x%X" arg))
+  (insert arg))
+
 
 ;; arch-tag: b382c432-4b36-460e-bf4c-05efd0bb18dc
 ;;; mule-cmds.el ends here
index 0af65a90fb3c43691358930a7ca55217edac8687..29b5496f1c990a9cc4fe1c86f13feb508905a14f 100644 (file)
@@ -1,12 +1,15 @@
-;;; mule-conf.el --- configure multilingual environment -*- no-byte-compile: t -*-
+;;; mule-conf.el --- configure multilingual environment
 
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003,
 ;;   2004, 2005, 2006, 2007  Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
-;; Keywords: mule, multilingual, character set, coding system
+;; Keywords: i18n, mule, multilingual, character set, coding system
 
 ;; This file is part of GNU Emacs.
 
 
 ;;; Commentary:
 
-;; Don't byte-compile this file.
+;; This file defines the Emacs charsets and some basic coding systems.
+;; Other coding systems are defined in the files in directory
+;; lisp/language.
 
 ;;; Code:
 
+;;; Remarks
+
+;; The ISO-IR registry is at http://www.itscj.ipsj.or.jp/ISO-IR/.
+;; Standards docs equivalent to iso-2022 and iso-8859 are at
+;; http://www.ecma.ch/.
+
+;; FWIW, http://www.microsoft.com/globaldev/ lists the following for
+;; MS Windows, which are presumably the only charsets we really need
+;; to worry about on such systems:
+;; `OEM codepages': 437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866
+;; `Windows codepages': 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257,
+;;                      1258, 874, 932, 936, 949, 950
+
 ;;; Definitions of character sets.
 
-;; Basic (official) character sets.  These character sets are treated
-;; efficiently with respect to buffer memory.
-
-;; Syntax:
-;; (define-charset CHARSET-ID CHARSET
-;;   [ DIMENSION CHARS WIDTH DIRECTION ISO-FINAL-CHAR ISO-GRAPHIC-PLANE
-;;     SHORT-NAME LONG-NAME DESCRIPTION ])
-;; ASCII charset is defined in src/charset.c as below.
-;; (define-charset 0 ascii
-;;    [1 94 1 0 ?B 0 "ASCII" "ASCII" "ASCII (ISO646 IRV)"])
-
-;; 1-byte charsets.  Valid range of CHARSET-ID is 128..143.
-
-;; CHARSET-ID 128 is not used.
-
-(define-charset 129 'latin-iso8859-1
-  [1 96 1 0 ?A 1 "RHP of Latin-1" "RHP of Latin-1 (ISO 8859-1): ISO-IR-100"
-     "Right-Hand Part of Latin Alphabet 1 (ISO/IEC 8859-1): ISO-IR-100."])
-(define-charset 130 'latin-iso8859-2
-  [1 96 1 0 ?B 1 "RHP of Latin-2" "RHP of Latin-2 (ISO 8859-2): ISO-IR-101"
-     "Right-Hand Part of Latin Alphabet 2 (ISO/IEC 8859-2): ISO-IR-101."])
-(define-charset 131 'latin-iso8859-3
-  [1 96 1 0 ?C 1 "RHP of Latin-3" "RHP of Latin-3 (ISO 8859-3): ISO-IR-109"
-     "Right-Hand Part of Latin Alphabet 3 (ISO/IEC 8859-3): ISO-IR-109."])
-(define-charset 132 'latin-iso8859-4
-  [1 96 1 0 ?D 1 "RHP of Latin-4" "RHP of Latin-4 (ISO 8859-4): ISO-IR-110"
-     "Right-Hand Part of Latin Alphabet 4 (ISO/IEC 8859-4): ISO-IR-110."])
-(define-charset 133 'thai-tis620
-  [1 96 1 0 ?T 1 "RHP of TIS620" "RHP of Thai (TIS620): ISO-IR-166"
-     "Right-Hand Part of TIS620.2533 (Thai): ISO-IR-166."])
-(define-charset 134 'greek-iso8859-7
-  [1 96 1 0 ?F 1 "RHP of ISO8859/7" "RHP of Greek (ISO 8859-7): ISO-IR-126"
-     "Right-Hand Part of Latin/Greek Alphabet (ISO/IEC 8859-7): ISO-IR-126."])
-(define-charset 135 'arabic-iso8859-6
-  [1 96 1 1 ?G 1 "RHP of ISO8859/6" "RHP of Arabic (ISO 8859-6): ISO-IR-127"
-     "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127."])
-(define-charset 136 'hebrew-iso8859-8
-  [1 96 1 1 ?H 1 "RHP of ISO8859/8" "RHP of Hebrew (ISO 8859-8): ISO-IR-138"
-     "Right-Hand Part of Latin/Hebrew Alphabet (ISO/IEC 8859-8): ISO-IR-138."])
-(define-charset 137 'katakana-jisx0201
-  [1 94 1 0 ?I 1 "JISX0201 Katakana" "Japanese Katakana (JISX0201.1976)"
-     "Katakana Part of JISX0201.1976."])
-(define-charset 138 'latin-jisx0201
-  [1 94 1 0 ?J 0 "JISX0201 Roman" "Japanese Roman (JISX0201.1976)"
-     "Roman Part of JISX0201.1976."])
-
-;; CHARSET-ID is not used 139.
-
-(define-charset 140 'cyrillic-iso8859-5
-  [1 96 1 0 ?L 1 "RHP of ISO8859/5" "RHP of Cyrillic (ISO 8859-5): ISO-IR-144"
-     "Right-Hand Part of Latin/Cyrillic Alphabet (ISO/IEC 8859-5): ISO-IR-144."])
-(define-charset 141 'latin-iso8859-9
-  [1 96 1 0 ?M 1 "RHP of Latin-5" "RHP of Latin-5 (ISO 8859-9): ISO-IR-148"
-     "Right-Hand Part of Latin Alphabet 5 (ISO/IEC 8859-9): ISO-IR-148."])
-(define-charset 142 'latin-iso8859-15
-  [1 96 1 0 ?b 1 "RHP of Latin-9" "RHP of Latin-9 (ISO 8859-15): ISO-IR-203"
-     "Right-Hand Part of Latin Alphabet 9 (ISO/IEC 8859-15): ISO-IR-203."])
-(define-charset 143 'latin-iso8859-14
-  [1 96 1 0 ?_ 1 "RHP of Latin-8" "RHP of Latin-8 (ISO 8859-14): ISO-IR-199"
-     "Right-Hand Part of Latin Alphabet 8 (ISO/IEC 8859-14): ISO-IR-199."])
-
-;; 2-byte charsets.  Valid range of CHARSET-ID is 144..153.
-
-(define-charset 144 'japanese-jisx0208-1978
-  [2 94 2 0 ?@ 0 "JISX0208.1978" "JISX0208.1978 (Japanese): ISO-IR-42"
-     "JISX0208.1978 Japanese Kanji (so called \"old JIS\"): ISO-IR-42."])
-(define-charset 145 'chinese-gb2312
-  [2 94 2 0 ?A 0 "GB2312" "GB2312: ISO-IR-58"
-     "GB2312 Chinese simplified: ISO-IR-58."])
-(define-charset 146 'japanese-jisx0208
-  [2 94 2 0 ?B 0 "JISX0208" "JISX0208.1983/1990 (Japanese): ISO-IR-87"
-     "JISX0208.1983/1990 Japanese Kanji: ISO-IR-87."])
-(define-charset 147 'korean-ksc5601
-  [2 94 2 0 ?C 0 "KSC5601" "KSC5601 (Korean): ISO-IR-149"
-     "KSC5601 Korean Hangul and Hanja: ISO-IR-149."])
-(define-charset 148 'japanese-jisx0212
-  [2 94 2 0 ?D 0 "JISX0212" "JISX0212 (Japanese): ISO-IR-159"
-     "JISX0212 Japanese supplement: ISO-IR-159."])
-(define-charset 149 'chinese-cns11643-1
-  [2 94 2 0 ?G 0 "CNS11643-1" "CNS11643-1 (Chinese traditional): ISO-IR-171"
-     "CNS11643 Plane 1 Chinese traditional: ISO-IR-171."])
-(define-charset 150 'chinese-cns11643-2
-  [2 94 2 0 ?H 0 "CNS11643-2" "CNS11643-2 (Chinese traditional): ISO-IR-172"
-     "CNS11643 Plane 2 Chinese traditional: ISO-IR-172."])
-(define-charset 151 'japanese-jisx0213-1
-  [2 94 2 0 ?O 0 "JISX0213-1" "JISX0213-1" "JISX0213 Plane 1 (Japanese)"])
-(define-charset 152 'chinese-big5-1
-  [2 94 2 0 ?0 0 "Big5 (Level-1)" "Big5 (Level-1) A141-C67F"
-     "Frequently used part (A141-C67F) of Big5 (Chinese traditional)."])
-(define-charset 153 'chinese-big5-2
-  [2 94 2 0 ?1 0 "Big5 (Level-2)" "Big5 (Level-2) C940-FEFE"
-     "Less frequently used part (C940-FEFE) of Big5 (Chinese traditional)."])
-
-;; Additional (private) character sets.  These character sets are
-;; treated less space-efficiently in the buffer.
-
-;; Syntax:
-;; (define-charset CHARSET-ID CHARSET
-;;   [ DIMENSION CHARS WIDTH DIRECTION ISO-FINAL-CHAR ISO-GRAPHIC-PLANE
-;;     SHORT-NAME LONG-NAME DESCRIPTION ])
-
-;; ISO-2022 allows a use of character sets not registered in ISO with
-;; final characters `0' (0x30) through `?' (0x3F).  Among them, Emacs
-;; reserves `0' through `9' to support several private character sets.
-;; The remaining final characters `:' through `?' are for users.
-
-;; 1-byte 1-column charsets.  Valid range of CHARSET-ID is 160..223.
-
-(define-charset 160 'chinese-sisheng
-  [1 94 1 0 ?0 0 "SiSheng" "SiSheng (PinYin/ZhuYin)"
-     "Sisheng characters (vowels with tone marks) for Pinyin/Zhuyin."])
-
-;; IPA characters for phonetic symbols.
-(define-charset 161 'ipa
-  [1 96 1 0 ?0 1 "IPA" "IPA"
-     "IPA (International Phonetic Association) characters."])
-
-;; Vietnamese VISCII.  VISCII is 1-byte character set which contains
-;; more than 96 characters.  Since Emacs can't handle it as one
-;; character set, it is divided into two: lower case letters and upper
-;; case letters.
-(define-charset 162 'vietnamese-viscii-lower
-  [1 96 1 0 ?1 1 "VISCII lower" "VISCII lower-case"
-     "Vietnamese VISCII1.1 lower-case characters."])
-(define-charset 163 'vietnamese-viscii-upper
-  [1 96 1 0 ?2 1 "VISCII upper" "VISCII upper-case"
-     "Vietnamese VISCII1.1 upper-case characters."])
+;; The charsets `ascii', `unicode' and `eight-bit' are already defined
+;; in charset.c as below:
+;;
+;; (define-charset 'ascii
+;;   ""
+;;   :dimension 1
+;;   :code-space [0 127]
+;;   :iso-final-char ?B
+;;   :ascii-compatible-p t
+;;   :emacs-mule-id 0
+;;   :code-offset 0)
+;;
+;; (define-charset 'unicode
+;;   ""
+;;   :dimension 3
+;;   :code-space [0 255 0 255 0 16]
+;;   :ascii-compatible-p t
+;;   :code-offset 0)
+;;
+;; (define-charset 'eight-bit
+;;   ""
+;;   :dimension 1
+;;   :code-space [128 255]
+;;   :code-offset #x3FFF80)
+;;
+;; We now set :docstring, :short-name, and :long-name properties.
+
+(put-charset-property
+ 'ascii :docstring "ASCII (ISO646 IRV)")
+(put-charset-property
+ 'ascii :short-name "ASCII")
+(put-charset-property
+ 'ascii :long-name "ASCII (ISO646 IRV)")
+(put-charset-property
+ 'iso-8859-1 :docstring "Latin-1 (ISO/IEC 8859-1)")
+(put-charset-property
+ 'iso-8859-1 :short-name "Latin-1")
+(put-charset-property
+ 'iso-8859-1 :long-name "Latin-1")
+(put-charset-property
+ 'unicode :docstring "Unicode (ISO10646)")
+(put-charset-property
+ 'unicode :short-name "Unicode")
+(put-charset-property
+ 'unicode :long-name "Unicode (ISO10646)")
+(put-charset-property 'eight-bit :docstring "Raw bytes 0-255")
+(put-charset-property 'eight-bit :short-name "Raw bytes")
+
+(define-charset-alias 'ucs 'unicode)
+
+(define-charset 'emacs
+  "Full Emacs characters"
+  :ascii-compatible-p t
+  :code-space [ 0 255 0 255 0 63 ]
+  :code-offset 0
+  :supplementary-p t)
+
+(define-charset 'latin-iso8859-1
+  "Right-Hand Part of ISO/IEC 8859/1 (Latin-1): ISO-IR-100"
+  :short-name "RHP of Latin-1"
+  :long-name "RHP of ISO/IEC 8859/1 (Latin-1): ISO-IR-100"
+  :iso-final-char ?A
+  :emacs-mule-id 129
+  :code-space [32 127]
+  :code-offset 160)
+
+;; Name perhaps not ideal, but is XEmacs-compatible.
+(define-charset 'control-1
+  "8-bit control code (0x80..0x9F)"
+  :short-name "8-bit control code"
+  :code-space [128 159]
+  :code-offset 128)
+
+(define-charset 'eight-bit-control
+  "Raw bytes in the range 0x80..0x9F (usually produced from invalid encodings)"
+  :short-name "Raw bytes 0x80..0x9F"
+  :supplementary-p t
+  :code-space [128 159]
+  :code-offset #x3FFF80)               ; see character.h
+
+(define-charset 'eight-bit-graphic
+  "Raw bytes in the range 0xA0..0xFF (usually produced from invalid encodings)"
+  :short-name "Raw bytes 0xA0..0xFF"
+  :supplementary-p t
+  :code-space [160 255]
+  :code-offset #x3FFFA0)               ; see character.h
+
+(defmacro define-iso-single-byte-charset (symbol iso-symbol name nickname
+                                                iso-ir iso-final
+                                                emacs-mule-id map)
+  `(progn
+     (define-charset ,symbol
+       ,name
+       :short-name ,nickname
+       :long-name ,name
+       :ascii-compatible-p t
+       :code-space [0 255]
+       :map ,map)
+     (if ,iso-symbol
+        (define-charset ,iso-symbol
+          (if ,iso-ir
+              (format "Right-Hand Part of %s (%s): ISO-IR-%d"
+                      ,name ,nickname ,iso-ir)
+            (format "Right-Hand Part of %s (%s)" ,name ,nickname))
+          :short-name (format "RHP of %s" ,name)
+          :long-name (format "RHP of %s (%s)" ,name ,nickname)
+          :iso-final-char ,iso-final
+          :emacs-mule-id ,emacs-mule-id
+          :supplementary-p t
+          :code-space [32 127]
+          :subset (list ,symbol 160 255 -128)))))
+
+(define-iso-single-byte-charset 'iso-8859-2 'latin-iso8859-2
+  "ISO/IEC 8859/2" "Latin-2" 101 ?B 130 "8859-2")
+
+(define-iso-single-byte-charset 'iso-8859-3 'latin-iso8859-3
+  "ISO/IEC 8859/3" "Latin-3" 109 ?C 131 "8859-3")
+
+(define-iso-single-byte-charset 'iso-8859-4 'latin-iso8859-4
+  "ISO/IEC 8859/4" "Latin-4" 110 ?D 132 "8859-4")
+
+(define-iso-single-byte-charset 'iso-8859-5 'cyrillic-iso8859-5
+  "ISO/IEC 8859/5" "Latin/Cyrillic" 144 ?L 140 "8859-5")
+
+(define-iso-single-byte-charset 'iso-8859-6 'arabic-iso8859-6
+  "ISO/IEC 8859/6" "Latin/Arabic" 127 ?G 135 "8859-6")
+
+(define-iso-single-byte-charset 'iso-8859-7 'greek-iso8859-7
+  "ISO/IEC 8859/7" "Latin/Greek" 126 ?F 134 "8859-7")
+
+(define-iso-single-byte-charset 'iso-8859-8 'hebrew-iso8859-8
+  "ISO/IEC 8859/8" "Latin/Hebrew" 138 ?H 136 "8859-8")
+
+(define-iso-single-byte-charset 'iso-8859-9 'latin-iso8859-9
+  "ISO/IEC 8859/9" "Latin-5" 148 ?M 141 "8859-9")
+
+(define-iso-single-byte-charset 'iso-8859-10 'latin-iso8859-10
+  "ISO/IEC 8859/10" "Latin-6" 157 ?V nil "8859-10")
+
+;; http://www.nectec.or.th/it-standards/iso8859-11/
+;; http://www.cwi.nl/~dik/english/codes/8859.html says this is tis-620
+;; plus nbsp
+(define-iso-single-byte-charset 'iso-8859-11 'thai-iso8859-11
+  "ISO/IEC 8859/11" "Latin/Thai" 166 ?T nil "8859-11")
+
+;; 8859-12 doesn't (yet?) exist.
+
+(define-iso-single-byte-charset 'iso-8859-13 'latin-iso8859-13
+  "ISO/IEC 8859/13" "Latin-7" 179 ?Y nil "8859-13")
+
+(define-iso-single-byte-charset 'iso-8859-14 'latin-iso8859-14
+  "ISO/IEC 8859/14" "Latin-8" 199 ?_ 143 "8859-14")
+
+(define-iso-single-byte-charset 'iso-8859-15 'latin-iso8859-15
+  "ISO/IEC 8859/15" "Latin-9" 203 ?b 142 "8859-15")
+
+(define-iso-single-byte-charset 'iso-8859-16 'latin-iso8859-16
+  "ISO/IEC 8859/16" "Latin-10" 226 ?f nil "8859-16")
+
+;; No point in keeping it around.
+(fmakunbound 'define-iso-single-byte-charset)
+
+;; Can this be shared with 8859-11?
+;; N.b. not all of these are defined unicodes.
+(define-charset 'thai-tis620
+  "TIS620.2533"
+  :short-name "TIS620.2533"
+  :iso-final-char ?T
+  :emacs-mule-id 133
+  :code-space [32 127]
+  :code-offset #x0E00)
+
+;; Fixme: doc for this, c.f. above
+(define-charset 'tis620-2533
+  "TIS620.2533"
+  :short-name "TIS620.2533"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :superset '(ascii eight-bit-control (thai-tis620 . 128)))
+
+(define-charset 'jisx0201
+  "JISX0201"
+  :short-name "JISX0201"
+  :code-space [0 #xDF]
+  :map "JISX0201")
+
+(define-charset 'latin-jisx0201
+  "Roman Part of JISX0201.1976"
+  :short-name "JISX0201 Roman"
+  :long-name "Japanese Roman (JISX0201.1976)"
+  :iso-final-char ?J
+  :emacs-mule-id  138
+  :supplementary-p t
+  :code-space [33 126]
+  :subset '(jisx0201 33 126 0))
+
+(define-charset 'katakana-jisx0201
+  "Katakana Part of JISX0201.1976"
+  :short-name "JISX0201 Katakana"
+  :long-name "Japanese Katakana (JISX0201.1976)"
+  :iso-final-char ?I
+  :emacs-mule-id  137
+  :supplementary-p t
+  :code-space [33 126]
+  :subset '(jisx0201 161 254 -128))
+
+(define-charset 'chinese-gb2312
+  "GB2312 Chinese simplified: ISO-IR-58"
+  :short-name "GB2312"
+  :long-name "GB2312: ISO-IR-58"
+  :iso-final-char ?A
+  :emacs-mule-id 145
+  :code-space [33 126 33 126]
+  :code-offset #x110000
+  :unify-map "GB2312")
+
+(define-charset 'chinese-gbk
+  "GBK Chinese simplified."
+  :short-name "GBK"
+  :code-space [#x40 #xFE #x81 #xFE]
+  :code-offset #x160000
+  :unify-map "GBK")
+(define-charset-alias 'cp936 'chinese-gbk)
+(define-charset-alias 'windows-936 'chinese-gbk)
+
+(define-charset 'chinese-cns11643-1
+  "CNS11643 Plane 1 Chinese traditional: ISO-IR-171"
+  :short-name "CNS11643-1"
+  :long-name "CNS11643-1 (Chinese traditional): ISO-IR-171"
+  :iso-final-char ?G
+  :emacs-mule-id  149
+  :code-space [33 126 33 126]
+  :code-offset #x114000
+  :unify-map "CNS-1")
+
+(define-charset 'chinese-cns11643-2
+  "CNS11643 Plane 2 Chinese traditional: ISO-IR-172"
+  :short-name "CNS11643-2"
+  :long-name "CNS11643-2 (Chinese traditional): ISO-IR-172"
+  :iso-final-char ?H
+  :emacs-mule-id  150
+  :code-space [33 126 33 126]
+  :code-offset #x118000
+  :unify-map "CNS-2")
+
+(define-charset 'chinese-cns11643-3
+  "CNS11643 Plane 3 Chinese Traditional: ISO-IR-183"
+  :short-name  "CNS11643-3"
+  :long-name "CNS11643-3 (Chinese traditional): ISO-IR-183"
+  :iso-final-char ?I
+  :code-space [33 126 33 126]
+  :emacs-mule-id  246
+  :code-offset #x11C000
+  :unify-map "CNS-3")
+
+(define-charset 'chinese-cns11643-4
+  "CNS11643 Plane 4 Chinese Traditional: ISO-IR-184"
+  :short-name  "CNS11643-4"
+  :long-name "CNS11643-4 (Chinese traditional): ISO-IR-184"
+  :iso-final-char ?J
+  :emacs-mule-id  247
+  :code-space [33 126 33 126]
+  :code-offset #x120000
+  :unify-map "CNS-4")
+
+(define-charset 'chinese-cns11643-5
+  "CNS11643 Plane 5 Chinese Traditional: ISO-IR-185"
+  :short-name  "CNS11643-5"
+  :long-name "CNS11643-5 (Chinese traditional): ISO-IR-185"
+  :iso-final-char ?K
+  :emacs-mule-id  248
+  :code-space [33 126 33 126]
+  :code-offset #x124000
+  :unify-map "CNS-5")
+
+(define-charset 'chinese-cns11643-6
+  "CNS11643 Plane 6 Chinese Traditional: ISO-IR-186"
+  :short-name  "CNS11643-6"
+  :long-name "CNS11643-6 (Chinese traditional): ISO-IR-186"
+  :iso-final-char ?L
+  :emacs-mule-id 249
+  :code-space [33 126 33 126]
+  :code-offset #x128000
+  :unify-map "CNS-6")
+
+(define-charset 'chinese-cns11643-7
+  "CNS11643 Plane 7 Chinese Traditional: ISO-IR-187"
+  :short-name  "CNS11643-7"
+  :long-name "CNS11643-7 (Chinese traditional): ISO-IR-187"
+  :iso-final-char ?M
+  :emacs-mule-id 250
+  :code-space [33 126 33 126]
+  :code-offset #x12C000
+  :unify-map "CNS-7")
+
+(define-charset 'big5
+  "Big5 (Chinese traditional)"
+  :short-name "Big5"
+  :code-space [#x40 #xFE #xA1 #xFE]
+  :code-offset #x130000
+  :unify-map "BIG5")
+;; Fixme: AKA cp950 according to
+;; <URL:http://www.microsoft.com/globaldev/reference/WinCP.asp>.  Is
+;; that correct?
+
+(define-charset 'chinese-big5-1
+  "Frequently used part (A141-C67E) of Big5 (Chinese traditional)"
+  :short-name "Big5 (Level-1)"
+  :long-name "Big5 (Level-1) A141-C67F"
+  :iso-final-char ?0
+  :emacs-mule-id 152
+  :supplementary-p t
+  :code-space [#x21 #x7E #x21 #x7E]
+  :code-offset #x135000
+  :unify-map "BIG5-1")
+
+(define-charset 'chinese-big5-2
+  "Less frequently used part (C940-FEFE) of Big5 (Chinese traditional)"
+  :short-name "Big5 (Level-2)"
+  :long-name "Big5 (Level-2) C940-FEFE"
+  :iso-final-char ?1
+  :emacs-mule-id  153
+  :supplementary-p t
+  :code-space [#x21 #x7E #x21 #x7E]
+  :code-offset #x137800
+  :unify-map "BIG5-2")
+
+(define-charset 'japanese-jisx0208
+  "JISX0208.1983/1990 Japanese Kanji: ISO-IR-87"
+  :short-name "JISX0208"
+  :long-name "JISX0208.1983/1990 (Japanese): ISO-IR-87"
+  :iso-final-char ?B
+  :emacs-mule-id 146
+  :code-space [33 126 33 126]
+  :code-offset #x140000
+  :unify-map "JISX0208")
+
+(define-charset 'japanese-jisx0208-1978
+  "JISX0208.1978 Japanese Kanji (so called \"old JIS\"): ISO-IR-42"
+  :short-name "JISX0208.1978"
+  :long-name  "JISX0208.1978 (JISC6226.1978): ISO-IR-42"
+  :iso-final-char ?@
+  :emacs-mule-id  144
+  :code-space [33 126 33 126]
+  :code-offset #x144000
+  :unify-map "JISC6226")
+
+(define-charset 'japanese-jisx0212
+  "JISX0212 Japanese supplement: ISO-IR-159"
+  :short-name "JISX0212"
+  :long-name "JISX0212 (Japanese): ISO-IR-159"
+  :iso-final-char ?D
+  :emacs-mule-id 148
+  :code-space [33 126 33 126]
+  :code-offset #x148000
+  :unify-map "JISX0212")
+
+;; Note that jisx0213 contains characters not in Unicode (3.2?).  It's
+;; arguable whether it should have a unify-map.
+(define-charset 'japanese-jisx0213-1
+  "JISX0213.2000 Plane 1 (Japanese)"
+  :short-name "JISX0213-1"
+  :iso-final-char ?O
+  :emacs-mule-id  151
+  :unify-map "JISX2131"
+  :code-space [33 126 33 126]
+  :code-offset #x14C000)
+
+(define-charset 'japanese-jisx0213-2
+  "JISX0213.2000 Plane 2 (Japanese)"
+  :short-name "JISX0213-2"
+  :iso-final-char ?P
+  :emacs-mule-id 254
+  :unify-map "JISX2132"
+  :code-space [33 126 33 126]
+  :code-offset #x150000)
+
+(define-charset 'japanese-jisx0213-a
+  "JISX0213.2004 adds these characters to JISX0213.2000."
+  :short-name "JISX0213A"
+  :dimension 2
+  :code-space [33 126 33 126]
+  :supplementary-p t
+  :map "JISX213A")
+
+(define-charset 'japanese-jisx0213.2004-1
+  "JISX0213.2004 Plane1 (Japanese)"
+  :short-name "JISX0213.2004-1"
+  :dimension 2
+  :code-space [33 126 33 126]
+  :iso-final-char ?Q
+  :superset '(japanese-jisx0213-a japanese-jisx0213-1))
+
+(define-charset 'katakana-sjis
+  "Katakana part of Shift-JIS"
+  :dimension 1
+  :code-space [#xA1 #xDF]
+  :subset '(jisx0201 #xA1 #xDF 0)
+  :supplementary-p t)
+
+(define-charset 'cp932-2-byte
+  "2-byte part of CP932"
+  :dimension 2
+  :map "CP932-2BYTE"
+  :code-space [#x40 #xFC #x81 #xFC]
+  :supplementary-p t)
+
+(define-charset 'cp932
+  "CP932 (Microsoft shift-jis)"
+  :code-space [#x00 #xFF #x00 #xFE]
+  :short-name "CP932"
+  :superset '(ascii katakana-sjis cp932-2-byte))
+
+(define-charset 'korean-ksc5601
+  "KSC5601 Korean Hangul and Hanja: ISO-IR-149"
+  :short-name "KSC5601"
+  :long-name "KSC5601 (Korean): ISO-IR-149"
+  :iso-final-char ?C
+  :emacs-mule-id 147
+  :code-space [33 126 33 126]
+  :code-offset #x279f94                        ; ... #x27c217
+  :unify-map "KSC5601")
+
+(define-charset 'big5-hkscs
+  "Big5-HKSCS (Chinese traditional, Hong Kong supplement)"
+  :short-name "Big5"
+  :code-space [#x40 #xFE #xA1 #xFE]
+  :code-offset #x27c218                        ; ... #x280839
+  :unify-map "BIG5-HKSCS")
+
+;; Fixme: Korean cp949/UHC
+
+(define-charset 'chinese-sisheng
+  "SiSheng characters for PinYin/ZhuYin"
+  :short-name "SiSheng"
+  :long-name "SiSheng (PinYin/ZhuYin)"
+  :iso-final-char ?0
+  :emacs-mule-id 160
+  :code-space [33 126]
+  :unify-map "MULE-sisheng"
+  :supplementary-p t
+  :code-offset #x200000)
+
+;; A subset of the 1989 version of IPA.  It consists of the consonant
+;; signs used in English, French, German and Italian, and all vowels
+;; signs in the table.  [says old MULE doc]
+(define-charset 'ipa
+  "IPA (International Phonetic Association)"
+  :short-name "IPA"
+  :iso-final-char ?0
+  :emacs-mule-id  161
+  :unify-map "MULE-ipa"
+  :code-space [32 127]
+  :supplementary-p t
+  :code-offset #x200080)
+
+(define-charset 'viscii
+  "VISCII1.1"
+  :short-name "VISCII"
+  :long-name "VISCII 1.1"
+  :code-space [0 255]
+  :map "VISCII")
+
+(define-charset 'vietnamese-viscii-lower
+  "VISCII1.1 lower-case"
+  :short-name "VISCII lower"
+  :long-name "VISCII lower-case"
+  :iso-final-char ?1
+  :emacs-mule-id  162
+  :code-space [32 127]
+  :code-offset #x200200
+  :supplementary-p t
+  :unify-map "MULE-lviscii")
+
+(define-charset 'vietnamese-viscii-upper
+  "VISCII1.1 upper-case"
+  :short-name "VISCII upper"
+  :long-name "VISCII upper-case"
+  :iso-final-char ?2
+  :emacs-mule-id  163
+  :code-space [32 127]
+  :code-offset #x200280
+  :supplementary-p t
+  :unify-map "MULE-uviscii")
+
+(define-charset 'vscii
+  "VSCII1.1 (TCVN-5712 VN1)"
+  :short-name "VSCII"
+  :code-space [0 255]
+  :map "VSCII")
+
+(define-charset-alias 'tcvn-5712 'vscii)
+
+;; Fixme: see note in tcvn.map about combining characters
+(define-charset 'vscii-2
+  "VSCII-2 (TCVN-5712 VN2)"
+  :code-space [0 255]
+  :map "VSCII-2")
+
+(define-charset 'koi8-r
+  "KOI8-R"
+  :short-name "KOI8-R"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "KOI8-R")
+
+(define-charset-alias 'koi8 'koi8-r)
+
+(define-charset 'alternativnyj
+  "ALTERNATIVNYJ"
+  :short-name "alternativnyj"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "ALTERNATIVNYJ")
+
+(define-charset 'cp866
+  "CP866"
+  :short-name "cp866"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "IBM866")
+(define-charset-alias 'ibm866 'cp866)
+
+(define-charset 'koi8-u
+  "KOI8-U"
+  :short-name "KOI8-U"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "KOI8-U")
+
+(define-charset 'koi8-t
+  "KOI8-T"
+  :short-name "KOI8-T"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "KOI8-T")
+
+(define-charset 'georgian-ps
+  "GEORGIAN-PS"
+  :short-name "GEORGIAN-PS"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "KA-PS")
+
+(define-charset 'georgian-academy
+  "GEORGIAN-ACADEMY"
+  :short-name "GEORGIAN-ACADEMY"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "KA-ACADEMY")
+
+(define-charset 'windows-1250
+  "WINDOWS-1250 (Central Europe)"
+  :short-name "WINDOWS-1250"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "CP1250")
+(define-charset-alias 'cp1250 'windows-1250)
+
+(define-charset 'windows-1251
+  "WINDOWS-1251 (Cyrillic)"
+  :short-name "WINDOWS-1251"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "CP1251")
+(define-charset-alias 'cp1251 'windows-1251)
+
+(define-charset 'windows-1252
+  "WINDOWS-1252 (Latin I)"
+  :short-name "WINDOWS-1252"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "CP1252")
+(define-charset-alias 'cp1252 'windows-1252)
+
+(define-charset 'windows-1253
+  "WINDOWS-1253 (Greek)"
+  :short-name "WINDOWS-1253"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "CP1253")
+(define-charset-alias 'cp1253 'windows-1253)
+
+(define-charset 'windows-1254
+  "WINDOWS-1254 (Turkish)"
+  :short-name "WINDOWS-1254"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "CP1254")
+(define-charset-alias 'cp1254 'windows-1254)
+
+(define-charset 'windows-1255
+  "WINDOWS-1255 (Hebrew)"
+  :short-name "WINDOWS-1255"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "CP1255")
+(define-charset-alias 'cp1255 'windows-1255)
+
+(define-charset 'windows-1256
+  "WINDOWS-1256 (Arabic)"
+  :short-name "WINDOWS-1256"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "CP1256")
+(define-charset-alias 'cp1256 'windows-1256)
+
+(define-charset 'windows-1257
+  "WINDOWS-1257 (Baltic)"
+  :short-name "WINDOWS-1257"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "CP1257")
+(define-charset-alias 'cp1257 'windows-1257)
+
+(define-charset 'windows-1258
+  "WINDOWS-1258 (Viet Nam)"
+  :short-name "WINDOWS-1258"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "CP1258")
+(define-charset-alias 'cp1258 'windows-1258)
+
+(define-charset 'next
+  "NEXT"
+  :short-name "NEXT"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "NEXTSTEP")
+
+(define-charset 'cp1125
+  "CP1125"
+  :short-name "CP1125"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "CP1125")
+(define-charset-alias 'ruscii 'cp1125)
+;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua>
+(define-charset-alias 'cp866u 'cp1125)
+
+;; Fixme: C.f. iconv, http://czyborra.com/charsets/codepages.html
+;; shows this as not ASCII comptaible, with various graphics in
+;; 0x01-0x1F.
+(define-charset 'cp437
+  "CP437 (MS-DOS United States, Australia, New Zealand, South Africa)"
+  :short-name "CP437"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM437")
+
+(define-charset 'cp720
+  "CP720 (Arabic)"
+  :short-name "CP720"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "CP720")
+
+(define-charset 'cp737
+  "CP737 (PC Greek)"
+  :short-name "CP737"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "CP737")
+
+(define-charset 'cp775
+  "CP775 (PC Baltic)"
+  :short-name "CP775"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "CP775")
+
+(define-charset 'cp851
+  "CP851 (Greek)"
+  :short-name "CP851"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM851")
+
+(define-charset 'cp852
+  "CP852 (MS-DOS Latin-2)"
+  :short-name "CP852"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM852")
+
+(define-charset 'cp855
+  "CP855 (IBM Cyrillic)"
+  :short-name "CP855"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM855")
+
+(define-charset 'cp857
+  "CP857 (IBM Turkish)"
+  :short-name "CP857"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM857")
+
+(define-charset 'cp858
+  "CP858 (Multilingual Latin I + Euro)"
+  :short-name "CP858"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "CP858")
+(define-charset-alias 'cp00858 'cp858) ; IANA has IBM00858/CP00858
+
+(define-charset 'cp860
+  "CP860 (MS-DOS Portuguese)"
+  :short-name "CP860"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM860")
+
+(define-charset 'cp861
+  "CP861 (MS-DOS Icelandic)"
+  :short-name "CP861"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM861")
+
+(define-charset 'cp862
+  "CP862 (PC Hebrew)"
+  :short-name "CP862"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM862")
+
+(define-charset 'cp863
+  "CP863 (MS-DOS Canadian French)"
+  :short-name "CP863"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM863")
+
+(define-charset 'cp864
+  "CP864 (PC Arabic)"
+  :short-name "CP864"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM864")
+
+(define-charset 'cp865
+  "CP865 (MS-DOS Nordic)"
+  :short-name "CP865"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM865")
+
+(define-charset 'cp869
+  "CP869 (IBM Modern Greek)"
+  :short-name "CP869"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM869")
+
+(define-charset 'cp874
+  "CP874 (IBM Thai)"
+  :short-name "CP874"
+  :code-space [0 255]
+  :ascii-compatible-p t
+  :map "IBM874")
 
 ;; For Arabic, we need three different types of character sets.
 ;; Digits are of direction left-to-right and of width 1-column.
 ;; Others are of direction right-to-left and of width 1-column or
 ;; 2-column.
-(define-charset 164 'arabic-digit
-  [1 94 1 0 ?2 0 "Arabic digit" "Arabic digit"
-     "Arabic digits."])
-(define-charset 165 'arabic-1-column
-  [1 94 1 1 ?3 0 "Arabic 1-col" "Arabic 1-column"
-     "Arabic 1-column width glyphs."])
-
-;; ASCII with right-to-left direction.
-(define-charset 166 'ascii-right-to-left
-  [1 94 1 1 ?B 0 "rev ASCII" "ASCII with right-to-left direction"
-     "ASCII (left half of ISO 8859-1) with right-to-left direction."])
+(define-charset 'arabic-digit
+  "Arabic digit"
+  :short-name "Arabic digit"
+  :iso-final-char ?2
+  :emacs-mule-id 164
+  :supplementary-p t
+  :code-space [34 42]
+  :code-offset #x0600)
+
+(define-charset 'arabic-1-column
+  "Arabic 1-column"
+  :short-name "Arabic 1-col"
+  :long-name "Arabic 1-column"
+  :iso-final-char ?3
+  :emacs-mule-id 165
+  :supplementary-p t
+  :code-space [33 126]
+  :code-offset #x200100)
+
+(define-charset 'arabic-2-column
+  "Arabic 2-column"
+  :short-name "Arabic 2-col"
+  :long-name "Arabic 2-column"
+  :iso-final-char ?4
+  :emacs-mule-id 224
+  :supplementary-p t
+  :code-space [33 126]
+  :code-offset #x200180)
 
 ;; Lao script.
-;; ISO10646's 0x0E80..0x0EDF are mapped to 0x20..0x7F.
-(define-charset 167 'lao
-  [1 94 1 0 ?1 0 "Lao" "Lao"
-     "Lao characters (U+0E80..U+0EDF)."])
-
-;; CHARSET-IDs 168..223 are not used.
-
-;; 1-byte 2-column charsets.  Valid range of CHARSET-ID is 224..239.
+;; Codes 0x21..0x7E are mapped to Unicode U+0E81..U+0EDF.
+;; Not all of them are defined unicodes.
+(define-charset 'lao
+  "Lao characters (ISO10646 0E81..0EDF)"
+  :short-name "Lao"
+  :iso-final-char ?1
+  :emacs-mule-id 167
+  :supplementary-p t
+  :code-space [33 126]
+  :code-offset #x0E81)
+
+(define-charset 'mule-lao
+  "Lao characters (ISO10646 0E81..0EDF)"
+  :short-name "Lao"
+  :code-space [0 255]
+  :supplementary-p t
+  :superset '(ascii eight-bit-control (lao . 128)))
 
-(define-charset 224 'arabic-2-column
-  [1 94 2 1 ?4 0 "Arabic 2-col" "Arabic 2-column"
-     "Arabic 2-column glyphs."])
 
 ;; Indian scripts.  Symbolic charset for data exchange.  Glyphs are
 ;; not assigned.  They are automatically converted to each Indian
 ;; script which IS-13194 supports.
 
-(define-charset 225 'indian-is13194
-  [1 94 2 0 ?5 1 "IS 13194" "Indian IS 13194"
-     "Generic Indian character set for data exchange with IS 13194."])
-
-;; CHARSET-IDs 226..239 are not used.
-
-(define-charset 240  'indian-glyph
-  [2 96 1 0 ?4 0 "Indian glyph" "Indian glyph"
-     "Glyphs for Indian characters."])
-;; 240 used to be [2 94 1 0 ?6 0 "Indian 1-col" "Indian 1 Column"]
-
-;; 2-byte 1-column charsets.  Valid range of CHARSET-ID is 240..244.
+(define-charset 'indian-is13194
+  "Generic Indian charset for data exchange with IS 13194"
+  :short-name "IS 13194"
+  :long-name "Indian IS 13194"
+  :iso-final-char ?5
+  :emacs-mule-id 225
+  :supplementary-p t
+  :code-space [33 126]
+  :code-offset #x180000)
+
+(let ((code-offset #x180100))
+  (dolist (script '(devanagari sanskrit bengali tamil telugu assamese
+                              oriya kannada malayalam gujarati punjabi))
+    (define-charset (intern (format "%s-cdac" script))
+      (format "Glyphs of %s script for CDAC font.  Subset of `indian-glyph'."
+             (capitalize (symbol-name script)))
+      :short-name (format "CDAC %s glyphs" (capitalize (symbol-name script)))
+      :supplementary-p t
+      :code-space [0 255]
+      :code-offset code-offset)
+    (setq code-offset (+ code-offset #x100)))
+
+  (dolist (script '(devanagari bengali punjabi gujarati
+                              oriya tamil telugu kannada malayalam))
+    (define-charset (intern (format "%s-akruti" script))
+      (format "Glyphs of %s script for AKRUTI font.  Subset of `indian-glyph'."
+             (capitalize (symbol-name script)))
+      :short-name (format "AKRUTI %s glyphs" (capitalize (symbol-name script)))
+      :supplementary-p t
+      :code-space [0 255]
+      :code-offset code-offset)
+    (setq code-offset (+ code-offset #x100))))
+
+(define-charset 'indian-glyph
+  "Glyphs for Indian characters."
+  :short-name "Indian glyph"
+  :iso-final-char ?4
+  :emacs-mule-id 240
+  :supplementary-p t
+  :code-space [32 127 32 127]
+  :code-offset #x180100)
 
 ;; Actual Glyph for 1-column width.
-(define-charset 241 'tibetan-1-column
-  [2 94 1 0 ?8 0 "Tibetan 1-col" "Tibetan 1 column"
-     "Tibetan 1-column glyphs."])
-
-;; Subsets of Unicode.
-
-(define-charset 242 'mule-unicode-2500-33ff
-  [2 96 1 0 ?2 0 "Unicode subset 2" "Unicode subset (U+2500..U+33FF)"
-     "Unicode characters of the range U+2500..U+33FF."])
-
-(define-charset 243 'mule-unicode-e000-ffff
-  [2 96 1 0 ?3 0 "Unicode subset 3" "Unicode subset (U+E000+FFFF)"
-     "Unicode characters of the range U+E000..U+FFFF."])
-
-(define-charset 244 'mule-unicode-0100-24ff
-  [2 96 1 0 ?1 0 "Unicode subset" "Unicode subset (U+0100..U+24FF)"
-     "Unicode characters of the range U+0100..U+24FF."])
-
-;; 2-byte 2-column charsets.  Valid range of CHARSET-ID is 245..254.
-
-;; Ethiopic characters (Amharic and Tigrigna).
-(define-charset 245 'ethiopic
-  [2 94 2 0 ?3 0 "Ethiopic" "Ethiopic characters"
-     "Ethiopic characters."])
-
-;; Chinese CNS11643 Plane3 thru Plane7.  Although these are official
-;; character sets, the use is rare and don't have to be treated
-;; space-efficiently in the buffer.
-(define-charset 246 'chinese-cns11643-3
-  [2 94 2 0 ?I 0 "CNS11643-3" "CNS11643-3 (Chinese traditional): ISO-IR-183"
-     "CNS11643 Plane 3 Chinese Traditional: ISO-IR-183."])
-(define-charset 247 'chinese-cns11643-4
-  [2 94 2 0 ?J 0 "CNS11643-4" "CNS11643-4 (Chinese traditional): ISO-IR-184"
-     "CNS11643 Plane 4 Chinese Traditional: ISO-IR-184."])
-(define-charset 248 'chinese-cns11643-5
-  [2 94 2 0 ?K 0 "CNS11643-5" "CNS11643-5 (Chinese traditional): ISO-IR-185"
-     "CNS11643 Plane 5 Chinese Traditional: ISO-IR-185."])
-(define-charset 249 'chinese-cns11643-6
-  [2 94 2 0 ?L 0 "CNS11643-6" "CNS11643-6 (Chinese traditional): ISO-IR-186"
-     "CNS11643 Plane 6 Chinese Traditional: ISO-IR-186."])
-(define-charset 250 'chinese-cns11643-7
-  [2 94 2 0 ?M 0 "CNS11643-7" "CNS11643-7 (Chinese traditional): ISO-IR-187"
-     "CNS11643 Plane 7 Chinese Traditional: ISO-IR-187."])
+(define-charset 'indian-1-column
+  "Indian charset for 1-column width glyphs."
+  :short-name "Indian 1-col"
+  :long-name "Indian 1 Column"
+  :iso-final-char ?6
+  :emacs-mule-id  251
+  :supplementary-p t
+  :code-space [33 126 33 126]
+  :code-offset #x184000)
 
 ;; Actual Glyph for 2-column width.
-(define-charset 251 'indian-2-column
-  [2 94 2 0 ?5 0 "Indian 2-col" "Indian 2 Column"
-     "Indian character set for 2-column width glyphs."])
-  ;; old indian-1-column characters will be translated to indian-2-column.
-(declare-equiv-charset 2 94 ?6 'indian-2-column)
+(define-charset 'indian-2-column
+  "Indian charset for 2-column width glyphs."
+  :short-name "Indian 2-col"
+  :long-name "Indian 2 Column"
+  :iso-final-char ?5
+  :emacs-mule-id  251
+  :supplementary-p t
+  :code-space [33 126 33 126]
+  :code-offset #x184000)
+
+(define-charset 'tibetan
+  "Tibetan characters"
+  :iso-final-char ?7
+  :short-name "Tibetan 2-col"
+  :long-name "Tibetan 2 column"
+  :iso-final-char ?7
+  :emacs-mule-id 252
+  :unify-map "MULE-tibetan"
+  :supplementary-p t
+  :code-space [33 126 33 37]
+  :code-offset #x190000)
+
+(define-charset 'tibetan-1-column
+  "Tibetan 1 column glyph"
+  :short-name "Tibetan 1-col"
+  :long-name "Tibetan 1 column"
+  :iso-final-char ?8
+  :emacs-mule-id 241
+  :supplementary-p t
+  :code-space [33 126 33 37]
+  :code-offset #x190000)
 
-;; Tibetan script.
-(define-charset 252 'tibetan
-  [2 94 2 0 ?7 0 "Tibetan 2-col" "Tibetan 2 column"
-     "Tibetan 2-column width glyphs."])
-
-;; CHARSET-ID 253 is not used.
-
-;; JISX0213 Plane 2
-(define-charset 254 'japanese-jisx0213-2
-  [2 94 2 0 ?P 0 "JISX0213-2" "JISX0213-2"
-     "JISX0213 Plane 2 (Japanese)."])
-
-;; Tell C code charset ID's of several charsets.
-(setup-special-charsets)
+;; Subsets of Unicode.
+(define-charset 'mule-unicode-2500-33ff
+  "Unicode characters of the range U+2500..U+33FF."
+  :short-name "Unicode subset 2"
+  :long-name "Unicode subset (U+2500..U+33FF)"
+  :iso-final-char ?2
+  :emacs-mule-id 242
+  :supplementary-p t
+  :code-space [#x20 #x7f #x20 #x47]
+  :code-offset #x2500)
+
+(define-charset 'mule-unicode-e000-ffff
+  "Unicode characters of the range U+E000..U+FFFF."
+  :short-name "Unicode subset 3"
+  :long-name "Unicode subset (U+E000+FFFF)"
+  :iso-final-char ?3
+  :emacs-mule-id 243
+  :supplementary-p t
+  :code-space [#x20 #x7F #x20 #x75]
+  :code-offset #xE000
+  :max-code 30015)                     ; U+FFFF
+
+(define-charset 'mule-unicode-0100-24ff
+  "Unicode characters of the range U+0100..U+24FF."
+  :short-name "Unicode subset"
+  :long-name "Unicode subset (U+0100..U+24FF)"
+  :iso-final-char ?1
+  :emacs-mule-id 244
+  :supplementary-p t
+  :code-space [#x20 #x7F #x20 #x7F]
+  :code-offset #x100)
+
+(define-charset 'unicode-bmp
+  "Unicode Basic Multilingual Plane (U+0000..U+FFFF)"
+  :short-name "Unicode BMP"
+  :code-space [0 255 0 255]
+  :code-offset 0)
+
+(define-charset 'unicode-smp
+  "Unicode Supplementary Multilingual Plane (U+10000..U+1FFFF)"
+  :short-name "Unicode SMP "
+  :code-space [0 255 0 255]
+  :code-offset #x10000)
+
+(define-charset 'unicode-sip
+  "Unicode Supplementary Ideographic Plane (U+20000..U+2FFFF)"
+  :short-name "Unicode SIP"
+  :code-space [0 255 0 255]
+  :code-offset #x20000)
+
+(define-charset 'unicode-ssp
+  "Unicode Supplementary Special-purpose Plane (U+E0000..U+EFFFF)"
+  :short-name "Unicode SSP"
+  :code-space [0 255 0 255]
+  :code-offset #xE0000)
+
+(define-charset 'ethiopic
+  "Ethiopic characters for Amharic and Tigrigna."
+  :short-name "Ethiopic"
+  :long-name "Ethiopic characters"
+  :iso-final-char ?3
+  :emacs-mule-id  245
+  :supplementary-p t
+  :unify-map "MULE-ethiopic"
+  :code-space [33 126 33 126]
+  :code-offset #x1A0000)
+
+(define-charset 'mac-roman
+  "Mac Roman charset"
+  :short-name "Mac Roman"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "MACINTOSH")
+
+;; Fixme: modern EBCDIC variants, e.g. IBM00924?
+(define-charset 'ebcdic-us
+  "US version of EBCDIC"
+  :short-name "EBCDIC-US"
+  :code-space [0 255]
+  :mime-charset 'ebcdic-us
+  :map "EBCDICUS")
+
+(define-charset 'ebcdic-uk
+  "UK version of EBCDIC"
+  :short-name "EBCDIC-UK"
+  :code-space [0 255]
+  :mime-charset 'ebcdic-uk
+  :map "EBCDICUK")
+
+(define-charset 'ibm1047
+  ;; Says groff:
+  "IBM1047, `EBCDIC Latin 1/Open Systems' used by OS/390 Unix."
+  :short-name "IBM1047"
+  :code-space [0 255]
+  :mime-charset 'ibm1047
+  :map "IBM1047")
+(define-charset-alias 'cp1047 'ibm1047)
+
+(define-charset 'hp-roman8
+  "Encoding used by Hewlet-Packard printer software"
+  :short-name "HP-ROMAN8"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "HP-ROMAN8")
+
+;; To make a coding system with this, a pre-write-conversion should
+;; account for the commented-out multi-valued code points in
+;; stdenc.map.
+(define-charset 'adobe-standard-encoding
+  "Adobe `standard encoding' used in PostScript"
+  :short-name "ADOBE-STANDARD-ENCODING"
+  :code-space [#x20 255]
+  :map "stdenc")
+
+(define-charset 'symbol
+  "Adobe symbol encoding used in PostScript"
+  :short-name "ADOBE-SYMBOL"
+  :code-space [#x20 255]
+  :map "symbol")
+
+(define-charset 'ibm850
+  "DOS codepage 850 (Latin-1)"
+  :short-name "IBM850"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "IBM850")
+(define-charset-alias 'cp850 'ibm850)
+
+(define-charset 'mik
+  "Bulgarian DOS codepage"
+  :short-name "MIK"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map "MIK")
+
+(define-charset 'ptcp154
+  "`Paratype' codepage (Asian Cyrillic)"
+  :short-name "PT154"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :mime-charset 'pt154
+  :map "PTCP154")
+(define-charset-alias 'pt154 'ptcp154)
+(define-charset-alias 'cp154 'ptcp154)
+
+(define-charset 'gb18030-2-byte
+  "GB18030 2-byte (0x814E..0xFEFE)"
+  :code-space [#x40 #xFE #x81 #xFE]
+  :supplementary-p t
+  :map "GB180302")
+
+(define-charset 'gb18030-4-byte-bmp
+  "GB18030 4-byte for BMP (0x81308130-0x8431A439)"
+  :code-space [#x30 #x39 #x81 #xFE #x30 #x39 #x81 #x84]
+  :supplementary-p t
+  :map "GB180304")
+
+(define-charset 'gb18030-4-byte-smp
+  "GB18030 4-byte for SMP (0x90308130-0xE3329A35)"
+  :code-space [#x30 #x39 #x81 #xFE #x30 #x39 #x90 #xE3]
+  :min-code '(#x9030 . #x8130)
+  :max-code '(#xE332 . #x9A35)
+  :supplementary-p t
+  :code-offset #x10000)
+
+(define-charset 'gb18030-4-byte-ext-1
+  "GB18030 4-byte (0x8431A530-0x8F39FE39)"
+  :code-space [#x30 #x39 #x81 #xFE #x30 #x39 #x84 #x8F]
+  :min-code '(#x8431 . #xA530)
+  :max-code '(#x8F39 . #xFE39)
+  :supplementary-p t
+  :code-offset #x200000                        ; ... #x22484B
+  )
+
+(define-charset 'gb18030-4-byte-ext-2
+  "GB18030 4-byte (0xE3329A36-0xFE39FE39)"
+  :code-space [#x30 #x39 #x81 #xFE #x30 #x39 #xE3 #xFE]
+  :min-code '(#xE332 . #x9A36)
+  :max-code '(#xFE39 . #xFE39)
+  :supplementary-p t
+  :code-offset #x22484C                        ; ... #x279f93
+  )
+
+(define-charset 'gb18030
+  "GB18030"
+  :code-space [#x00 #xFF #x00 #xFE #x00 #xFE #x00 #xFE]
+  :min-code 0
+  :max-code '(#xFE39 . #xFE39)
+  :superset '(ascii gb18030-2-byte
+                   gb18030-4-byte-bmp gb18030-4-byte-smp
+                   gb18030-4-byte-ext-1 gb18030-4-byte-ext-2))
+
+(define-charset 'chinese-cns11643-15
+  "CNS11643 Plane 15 Chinese Traditional"
+  :short-name  "CNS11643-15"
+  :long-name "CNS11643-15 (Chinese traditional)"
+  :code-space [33 126 33 126]
+  :code-offset #x27A000)
+
+(unify-charset 'chinese-gb2312)
+(unify-charset 'chinese-gbk)
+(unify-charset 'chinese-cns11643-1)
+(unify-charset 'chinese-cns11643-2)
+(unify-charset 'chinese-cns11643-3)
+(unify-charset 'chinese-cns11643-4)
+(unify-charset 'chinese-cns11643-5)
+(unify-charset 'chinese-cns11643-6)
+(unify-charset 'chinese-cns11643-7)
+(unify-charset 'big5)
+(unify-charset 'chinese-big5-1)
+(unify-charset 'chinese-big5-2)
+(unify-charset 'big5-hkscs)
+(unify-charset 'korean-ksc5601)
+(unify-charset 'vietnamese-viscii-lower)
+(unify-charset 'vietnamese-viscii-upper)
+(unify-charset 'chinese-sisheng)
+(unify-charset 'ipa)
+(unify-charset 'tibetan)
+(unify-charset 'ethiopic)
+(unify-charset 'japanese-jisx0208-1978)
+(unify-charset 'japanese-jisx0208)
+(unify-charset 'japanese-jisx0212)
+(unify-charset 'japanese-jisx0213-1)
+(unify-charset 'japanese-jisx0213-2)
 
 \f
 ;; These are tables for translating characters on decoding and
 ;; encoding.
-(define-translation-table
-  'oldjis-newjis-jisroman-ascii
-  (list (cons (make-char 'japanese-jisx0208-1978)
-             (make-char 'japanese-jisx0208))
-       (cons (make-char 'latin-jisx0201) (make-char 'ascii))))
-(aset (get 'oldjis-newjis-jisroman-ascii 'translation-table)
-      (make-char 'latin-jisx0201 92) (make-char 'latin-jisx0201 92))
-(aset (get 'oldjis-newjis-jisroman-ascii 'translation-table)
-      (make-char 'latin-jisx0201 126) (make-char 'latin-jisx0201 126))
-
-(setq standard-translation-table-for-decode
-      (get 'oldjis-newjis-jisroman-ascii 'translation-table))
+;; Fixme: these aren't used now -- should they be?
+(setq standard-translation-table-for-decode nil)
 
 (setq standard-translation-table-for-encode nil)
 \f
 ;;; Make fundamental coding systems.
 
-;; Miscellaneous coding systems which can't be made by
-;; `make-coding-system'.
-
-(put 'no-conversion 'coding-system
-     (vector nil ?= "Do no conversion.
-
-When you visit a file with this coding, the file is read into a
-unibyte buffer as is, thus each byte of a file is treated as a
-character."
-            (list 'coding-category 'coding-category-binary
-                  'alias-coding-systems '(no-conversion)
-                  'safe-charsets t 'safe-chars t)
-            nil))
-(put 'no-conversion 'eol-type 0)
-(put 'coding-category-binary 'coding-systems '(no-conversion))
-(setq coding-system-list '(no-conversion))
-(setq coding-system-alist '(("no-conversion")))
-(define-coding-system-internal 'no-conversion)
+;; The coding system `no-conversion' and `undecided' are already
+;; defined in coding.c as below:
+;;
+;; (define-coding-system 'no-conversion
+;;   "..."
+;;   :coding-type 'raw-text
+;;   ...)
+;; (define-coding-system 'undecided
+;;   "..."
+;;   :coding-type 'undecided
+;;   ...)
 
 (define-coding-system-alias 'binary 'no-conversion)
-
-(put 'undecided 'coding-system
-     (vector t ?- "No conversion on encoding, automatic conversion on decoding"
-            (list 'alias-coding-systems '(undecided)
-                  'safe-charsets '(ascii))
-            nil))
-(setq coding-system-list (cons 'undecided coding-system-list))
-(setq coding-system-alist (cons '("undecided") coding-system-alist))
-(put 'undecided 'eol-type
-     (make-subsidiary-coding-system 'undecided))
-
 (define-coding-system-alias 'unix 'undecided-unix)
 (define-coding-system-alias 'dos 'undecided-dos)
 (define-coding-system-alias 'mac 'undecided-mac)
 
-;; Coding systems not specific to each language environment.
-
-(make-coding-system
- 'emacs-mule 0 ?=
- "Emacs internal format used in buffer and string.
-
-Encoding text with this coding system produces the actual byte
-sequence of the text in buffers and strings.  An exception is made for
-eight-bit-control characters.  Each of them is encoded into a single
-byte."
- nil
- '((safe-charsets . t)
-   (composition . t)))
-
-(make-coding-system
- 'raw-text 5 ?t
- "Raw text, which means text contains random 8-bit codes.
+(define-coding-system 'raw-text
+  "Raw text, which means text contains random 8-bit codes.
 Encoding text with this coding system produces the actual byte
 sequence of the text in buffers and strings.  An exception is made for
 eight-bit-control characters.  Each of them is encoded into a single
@@ -355,72 +1219,173 @@ byte.
 When you visit a file with this coding, the file is read into a
 unibyte buffer as is (except for EOL format), thus each byte of a file
 is treated as a character."
- nil
- '((safe-charsets . t)))
-
-(make-coding-system
- 'iso-2022-7bit 2 ?J
- "ISO 2022 based 7-bit encoding using only G0"
- '((ascii t) nil nil nil
-   short ascii-eol ascii-cntl seven)
- '((safe-charsets . t)
-   (composition . t)))
-
-(make-coding-system
- 'iso-2022-7bit-ss2 2 ?$
- "ISO 2022 based 7-bit encoding using SS2 for 96-charset"
- '((ascii t) nil t nil
-   short ascii-eol ascii-cntl seven nil single-shift)
- '((safe-charsets . t)
-   (composition . t)))
-
-(make-coding-system
- 'iso-2022-7bit-lock 2 ?&
- "ISO-2022 coding system using Locking-Shift for 96-charset"
- '((ascii t) t nil nil
-   nil ascii-eol ascii-cntl seven locking-shift)
- '((safe-charsets . t)
-   (composition . t)))
+  :coding-type 'raw-text
+  :for-unibyte t
+  :mnemonic ?t)
+
+(define-coding-system 'no-conversion-multibyte
+  "Like `no-conversion' but don't read a file into a unibyte buffer."
+  :coding-type 'raw-text
+  :eol-type 'unix
+  :mnemonic ?=)
+  
+(define-coding-system 'iso-latin-1
+  "ISO 2022 based 8-bit encoding for Latin-1 (MIME:ISO-8859-1)."
+  :coding-type 'charset
+  :mnemonic ?1
+  :charset-list '(iso-8859-1)
+  :mime-charset 'iso-8859-1)
 
-(define-coding-system-alias 'iso-2022-int-1 'iso-2022-7bit-lock)
+(define-coding-system-alias 'iso-8859-1 'iso-latin-1)
+(define-coding-system-alias 'latin-1 'iso-latin-1)
 
-(make-coding-system
- 'iso-2022-7bit-lock-ss2 2 ?i
- "Mixture of ISO-2022-JP, ISO-2022-KR, and ISO-2022-CN"
- '((ascii t)
-   (nil korean-ksc5601 chinese-gb2312 chinese-cns11643-1 t)
-   (nil chinese-cns11643-2)
-   (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
-       chinese-cns11643-6 chinese-cns11643-7)
-   short ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil
-   init-bol)
- '((safe-charsets ascii japanese-jisx0208 japanese-jisx0208-1978 latin-jisx0201
-                 korean-ksc5601 chinese-gb2312 chinese-cns11643-1
-                 chinese-cns11643-2 chinese-cns11643-3 chinese-cns11643-4
-                 chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7)
-   (composition . t)))
+;; Coding systems not specific to each language environment.
 
-(define-coding-system-alias 'iso-2022-cjk 'iso-2022-7bit-lock-ss2)
+(define-coding-system 'emacs-mule
+ "Emacs 21 internal format used in buffer and string."
+ :coding-type 'emacs-mule
+ :charset-list 'emacs-mule
+ :mnemonic ?M)
+
+(define-coding-system 'utf-8
+  "UTF-8."
+  :coding-type 'utf-8
+  :mnemonic ?U
+  :charset-list '(unicode)
+  :mime-charset 'utf-8)
+
+(define-coding-system-alias 'mule-utf-8 'utf-8)
+
+(define-coding-system 'utf-8-emacs
+  "Support for all Emacs characters (including non-Unicode characters)."
+  :coding-type 'utf-8
+  :mnemonic ?U
+  :charset-list '(emacs))
+
+(define-coding-system 'utf-16le
+  "UTF-16LE (little endian, no signature (BOM))."
+  :coding-type 'utf-16
+  :mnemonic ?U
+  :charset-list '(unicode)
+  :endian 'little
+  :mime-text-unsuitable t
+  :mime-charset 'utf-16le)
+
+(define-coding-system 'utf-16be
+  "UTF-16BE (big endian, no signature (BOM))."
+  :coding-type 'utf-16
+  :mnemonic ?U
+  :charset-list '(unicode)
+  :endian 'big
+  :mime-text-unsuitable t
+  :mime-charset 'utf-16be)
+
+(define-coding-system 'utf-16le-with-signature
+  "UTF-16 (little endian, with signature (BOM))."
+  :coding-type 'utf-16
+  :mnemonic ?U
+  :charset-list '(unicode)
+  :bom t
+  :endian 'little
+  :mime-text-unsuitable t
+  :mime-charset 'utf-16)
+
+(define-coding-system 'utf-16be-with-signature
+  "UTF-16 (big endian, with signature)."
+  :coding-type 'utf-16
+  :mnemonic ?U
+  :charset-list '(unicode)
+  :bom t
+  :endian 'big
+  :mime-text-unsuitable t
+  :mime-charset 'utf-16)
+
+(define-coding-system 'utf-16
+  "UTF-16 (detect endian on decoding, use big endian on encoding with BOM)."
+  :coding-type 'utf-16
+  :mnemonic ?U
+  :charset-list '(unicode)
+  :bom '(utf-16le-with-signature . utf-16be-with-signature)
+  :endian 'big
+  :mime-text-unsuitable t
+  :mime-charset 'utf-16)
+
+;; Backwards compatibility (old names, also used by Mule-UCS).  We
+;; prefer the MIME names.
+(define-coding-system-alias 'utf-16-le 'utf-16le-with-signature)
+(define-coding-system-alias 'utf-16-be 'utf-16be-with-signature)
+
+
+(define-coding-system 'iso-2022-7bit
+  "ISO 2022 based 7-bit encoding using only G0."
+  :coding-type 'iso-2022
+  :mnemonic ?J
+  :charset-list 'iso-2022
+  :designation [(ascii t) nil nil nil]
+  :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation composition))
+
+(define-coding-system 'iso-2022-7bit-ss2
+  "ISO 2022 based 7-bit encoding using SS2 for 96-charset."
+  :coding-type 'iso-2022
+  :mnemonic ?$
+  :charset-list 'iso-2022
+  :designation [(ascii 94) nil (nil 96) nil]
+  :flags '(short ascii-at-eol ascii-at-cntl 7-bit
+                designation single-shift composition))
+
+(define-coding-system 'iso-2022-7bit-lock
+  "ISO-2022 coding system using Locking-Shift for 96-charset."
+  :coding-type 'iso-2022
+  :mnemonic ?&
+  :charset-list 'iso-2022
+  :designation [(ascii 94) (nil 96) nil nil]
+  :flags '(ascii-at-eol ascii-at-cntl 7-bit
+                       designation locking-shift composition))
+
+(define-coding-system-alias 'iso-2022-int-1 'iso-2022-7bit-lock)
 
-(make-coding-system
- 'iso-2022-8bit-ss2 2 ?@
- "ISO 2022 based 8-bit encoding using SS2 for 96-charset"
- '((ascii t) nil t nil
-   nil ascii-eol ascii-cntl nil nil single-shift)
- '((safe-charsets . t)
-   (composition . t)))
+(define-coding-system 'iso-2022-7bit-lock-ss2
+  "Mixture of ISO-2022-JP, ISO-2022-KR, and ISO-2022-CN."
+  :coding-type 'iso-2022
+  :mnemonic ?i
+  :charset-list '(ascii
+                 japanese-jisx0208 japanese-jisx0208-1978 latin-jisx0201
+                 korean-ksc5601
+                 chinese-gb2312
+                 chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3
+                 chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6
+                 chinese-cns11643-7)
+  :designation [(ascii 94)
+               (nil korean-ksc5601 chinese-gb2312 chinese-cns11643-1 96)
+               (nil chinese-cns11643-2)
+               (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
+                    chinese-cns11643-6 chinese-cns11643-7)]
+  :flags '(short ascii-at-eol ascii-at-cntl 7-bit locking-shift
+                single-shift init-bol))
 
-(make-coding-system
- 'compound-text 2 ?x
- "Compound text based generic encoding for decoding unknown messages.
+(define-coding-system-alias 'iso-2022-cjk 'iso-2022-7bit-lock-ss2)
 
-This coding system does not support extended segments."
- '((ascii t) (latin-iso8859-1 katakana-jisx0201 t) t t
-   nil ascii-eol ascii-cntl nil locking-shift single-shift nil nil nil
-   init-bol nil nil)
- '((safe-charsets . t)
-   (mime-charset . x-ctext)
-   (composition . t)))
+(define-coding-system 'iso-2022-8bit-ss2
+  "ISO 2022 based 8-bit encoding using SS2 for 96-charset."
+  :coding-type 'iso-2022
+  :mnemonic ?@
+  :charset-list 'iso-2022
+  :designation [(ascii 94) nil (nil 96) nil]
+  :flags '(ascii-at-eol ascii-at-cntl designation single-shift composition))
+
+(define-coding-system 'compound-text
+  "Compound text based generic encoding for decoding unknown messages.
+
+This coding system does not support extended segments of CTEXT."
+  :coding-type 'iso-2022
+  :mnemonic ?x
+  :charset-list 'iso-2022
+  :designation [(ascii 94) (latin-iso8859-1 katakana-jisx0201 96) nil nil]
+  :flags '(ascii-at-eol ascii-at-cntl long-form
+                       designation locking-shift single-shift composition)
+  ;; Fixme: this isn't a valid MIME charset and has to be
+  ;; special-cased elsewhere  -- fx
+  :mime-charset 'x-ctext)
 
 (define-coding-system-alias  'x-ctext 'compound-text)
 (define-coding-system-alias  'ctext 'compound-text)
@@ -430,62 +1395,72 @@ This coding system does not support extended segments."
 ;; compound-text-with-extensions, see mule.el.  Note that this should
 ;; not have a mime-charset property, to prevent it from showing up
 ;; close to the beginning of coding systems ordered by priority.
-(make-coding-system
- 'ctext-no-compositions 2 ?x
+(define-coding-system 'ctext-no-compositions
  "Compound text based generic encoding for decoding unknown messages.
 
 Like `compound-text', but does not produce escape sequences for compositions."
- '((ascii t) (latin-iso8859-1 katakana-jisx0201 t) t t
-   nil ascii-eol ascii-cntl nil locking-shift single-shift nil nil nil
-   init-bol nil nil)
- '((safe-charsets . t)))
+  :coding-type 'iso-2022
+  :mnemonic ?x
+  :charset-list 'iso-2022
+  :designation [(ascii 94) (latin-iso8859-1 katakana-jisx0201 96) nil nil]
+  :flags '(ascii-at-eol ascii-at-cntl
+                       designation locking-shift single-shift))
 
-(make-coding-system
- 'compound-text-with-extensions 2 ?x
- "Compound text encoding with extended segments.
+(define-coding-system 'compound-text-with-extensions
+ "Compound text encoding with ICCCM Extended Segment extensions.
 
 See the variable `ctext-non-standard-encodings-alist' for the
 detail about how extended segments are handled.
 
 This coding system should be used only for X selections.  It is inappropriate
 for decoding and encoding files, process I/O, etc."
- '((ascii t) (latin-iso8859-1 katakana-jisx0201 t) t t
-   nil ascii-eol ascii-cntl)
- '((post-read-conversion . ctext-post-read-conversion)
-   (pre-write-conversion . ctext-pre-write-conversion)))
+  :coding-type 'iso-2022
+  :mnemonic ?x
+  :charset-list 'iso-2022
+  :designation [(ascii 94) (latin-iso8859-1 katakana-jisx0201 96) nil nil]
+  :flags '(ascii-at-eol ascii-at-cntl long-form
+                       designation locking-shift single-shift)
+  :post-read-conversion 'ctext-post-read-conversion
+  :pre-write-conversion 'ctext-pre-write-conversion)
 
 (define-coding-system-alias
   'x-ctext-with-extensions 'compound-text-with-extensions)
 (define-coding-system-alias
   'ctext-with-extensions 'compound-text-with-extensions)
 
-(make-coding-system
- 'iso-safe 2 ?-
- "Encode ASCII asis and encode non-ASCII characters to `?'."
- '(ascii nil nil nil
-   nil ascii-eol ascii-cntl nil nil nil nil nil nil nil nil t)
- '((safe-charsets ascii)))
-
-(define-coding-system-alias
-  'us-ascii 'iso-safe)
-
-(make-coding-system
- 'iso-latin-1 2 ?1
- "ISO 2022 based 8-bit encoding for Latin-1 (MIME:ISO-8859-1)."
- '(ascii latin-iso8859-1 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t t)
- '((safe-charsets ascii latin-iso8859-1)
-   (mime-charset . iso-8859-1)))
-
-(define-coding-system-alias 'iso-8859-1 'iso-latin-1)
-(define-coding-system-alias 'latin-1 'iso-latin-1)
-
-;; Use iso-safe for terminal output if some other coding system is not
+(define-coding-system 'us-ascii
+  "Encode ASCII as-is and encode non-ASCII characters to `?'."
+  :coding-type 'charset
+  :mnemonic ?-
+  :charset-list '(ascii)
+  :default-char ??
+  :mime-charset 'us-ascii)
+
+(define-coding-system-alias 'iso-safe 'us-ascii)
+
+(define-coding-system 'utf-7
+  "UTF-7 encoding of Unicode (RFC 2152)."
+  :coding-type 'utf-8
+  :mnemonic ?U
+  :mime-charset 'utf-7
+  :charset-list '(unicode)
+  :pre-write-conversion 'utf-7-pre-write-conversion
+  :post-read-conversion 'utf-7-post-read-conversion)
+
+(define-coding-system 'utf-7-imap
+  "UTF-7 encoding of Unicode, IMAP version (RFC 2060)"
+  :coding-type 'utf-8
+  :mnemonic ?u
+  :charset-list '(unicode)
+  :pre-write-conversion 'utf-7-imap-pre-write-conversion
+  :post-read-conversion 'utf-7-imap-post-read-conversion)
+
+;; Use us-ascii for terminal output if some other coding system is not
 ;; specified explicitly.
-(set-safe-terminal-coding-system-internal 'iso-safe)
+(set-safe-terminal-coding-system-internal 'us-ascii)
 
 ;; The other coding-systems are defined in each language specific
-;; section of languages.el.
+;; files under lisp/language.
 
 ;; Normally, set coding system to `undecided' before reading a file.
 ;; Compiled Emacs Lisp files (*.elc) are not decoded at all,
@@ -493,8 +1468,13 @@ for decoding and encoding files, process I/O, etc."
 ;; Tar files are not decoded at all, but we treat them as raw bytes.
 
 (setq file-coding-system-alist
-      '(("\\.elc\\'" . (emacs-mule . emacs-mule))
+      '(("\\.elc\\'" . utf-8-emacs)
        ("\\.utf\\(-8\\)?\\'" . utf-8)
+       ;; This is the defined default for XML documents.  It may be
+       ;; overridden by a charset specification in the header.  That
+       ;; should be grokked by the auto-coding mechanism, but rms
+       ;; vetoed that.  -- fx
+       ("\\.xml\\'" . utf-8)
        ;; We use raw-text for reading loaddefs.el so that if it
        ;; happens to have DOS or Mac EOLs, they are converted to
        ;; newlines.  This is required to make the special treatment
@@ -514,42 +1494,20 @@ for decoding and encoding files, process I/O, etc."
 ;; values are set by the command `set-language-environment' for each
 ;; language environment.
 
-(setq coding-category-emacs-mule       'emacs-mule
-      coding-category-sjis             'japanese-shift-jis
-      coding-category-iso-7            'iso-2022-7bit
-      coding-category-iso-7-tight      'iso-2022-jp
-      coding-category-iso-8-1          'iso-latin-1
-      coding-category-iso-8-2          'iso-latin-1
-      coding-category-iso-7-else       'iso-2022-7bit-lock
-      coding-category-iso-8-else       'iso-2022-8bit-ss2
-      coding-category-ccl              nil
-      coding-category-utf-8            'mule-utf-8
-      coding-category-utf-16-be         'mule-utf-16be-with-signature
-      coding-category-utf-16-le         'mule-utf-16le-with-signature
-      coding-category-big5             'chinese-big5
-      coding-category-raw-text         'raw-text
-      coding-category-binary           'no-conversion)
-
-(set-coding-priority
- '(coding-category-iso-8-1
-   coding-category-iso-8-2
-   coding-category-utf-8
-   coding-category-utf-16-be
-   coding-category-utf-16-le
-   coding-category-iso-7-tight
-   coding-category-iso-7
-   coding-category-iso-7-else
-   coding-category-iso-8-else
-   coding-category-emacs-mule
-   coding-category-raw-text
-   coding-category-sjis
-   coding-category-big5
-   coding-category-ccl
-   coding-category-binary
-   ))
+(set-coding-system-priority
+ 'iso-latin-1
+ 'utf-8
+ 'iso-2022-7bit
+ )
 
 \f
 ;;; Miscellaneous settings.
+
+;; Make all multibyte characters self-insert.
+(set-char-table-range (nth 1 global-map)
+                     (cons 128 (max-char))
+                     'self-insert-command)
+
 (aset latin-extra-code-table ?\221 t)
 (aset latin-extra-code-table ?\222 t)
 (aset latin-extra-code-table ?\223 t)
@@ -557,7 +1515,19 @@ for decoding and encoding files, process I/O, etc."
 (aset latin-extra-code-table ?\225 t)
 (aset latin-extra-code-table ?\226 t)
 
-(update-coding-systems-internal)
+;; Move least specific charsets to end of priority list
+
+(apply #'set-charset-priority
+       (delq 'unicode (delq 'emacs (charset-priority-list))))
+
+;; The old code-pages library is obsoleted by coding systems based on
+;; the charsets defined in this file but might be required by user
+;; code.
+(provide 'code-pages)
+
+;; Local variables:
+;; no-byte-compile: t
+;; End:
 
 ;; arch-tag: 7d5fed55-b6df-42f6-8d3d-0011190551f5
 ;;; mule-conf.el ends here
index df01247cd013a8f97be38740512f12e888bb122e..f9bb043989736a68dd85b1696480c42566b55ba2 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: multilingual, charset, coding system, fontset, diagnosis, i18n
 
@@ -35,8 +38,8 @@
 
 ;;; General utility function
 
-;; Print all arguments with single space separator in one line.
 (defun print-list (&rest args)
+  "Print all arguments with single space separator in one line."
   (while (cdr args)
     (when (car args)
       (princ (car args))
   (princ (car args))
   (princ "\n"))
 
-;; Re-order the elements of charset-list.
-(defun sort-charset-list ()
-  (setq charset-list
-       (sort charset-list
-             (lambda (x y) (< (charset-id x) (charset-id y))))))
-
 ;;; CHARSET
 
 (define-button-type 'sort-listed-character-sets
   'help-function #'list-charset-chars
   'help-echo "mouse-2, RET: show table of characters for this character set")
 
-;;;###autoload
-(defvar non-iso-charset-alist
-  `((mac-roman
-     (ascii latin-iso8859-1 mule-unicode-2500-33ff
-           mule-unicode-0100-24ff mule-unicode-e000-ffff)
-     mac-roman-decoder
-     ((0 255)))
-    (viscii
-     (ascii vietnamese-viscii-lower vietnamese-viscii-upper)
-     viet-viscii-nonascii-translation-table
-     ((0 255)))
-    (vietnamese-tcvn
-     (ascii vietnamese-viscii-lower vietnamese-viscii-upper)
-     viet-tcvn-nonascii-translation-table
-     ((0 255)))
-    (koi8-r
-     (ascii cyrillic-iso8859-5)
-     cyrillic-koi8-r-nonascii-translation-table
-     ((32 255)))
-    (alternativnyj
-     (ascii cyrillic-iso8859-5)
-     cyrillic-alternativnyj-nonascii-translation-table
-     ((32 255)))
-    (koi8-u
-     (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff)
-     cyrillic-koi8-u-nonascii-translation-table
-     ((32 255)))
-    (big5
-     (ascii chinese-big5-1 chinese-big5-2)
-     decode-big5-char
-     ((32 127)
-      ((?\xA1 ?\xFE) . (?\x40 ?\x7E ?\xA1 ?\xFE))))
-    (sjis
-     (ascii katakana-jisx0201 japanese-jisx0208)
-     decode-sjis-char
-     ((32 127 ?\xA1 ?\xDF)
-      ((?\x81 ?\x9F ?\xE0 ?\xEF) . (?\x40 ?\x7E ?\x80 ?\xFC)))))
-  "Alist of charset names vs the corresponding information.
-This is mis-named for historical reasons.  The charsets are actually
-non-built-in ones.  They correspond to Emacs coding systems, not Emacs
-charsets, i.e. what Emacs can read (or write) by mapping to (or
-from) Emacs internal charsets that typically correspond to a limited
-set of ISO charsets.
-
-Each element has the following format:
-  (CHARSET CHARSET-LIST TRANSLATION-METHOD [ CODE-RANGE ])
-
-CHARSET is the name (symbol) of the charset.
-
-CHARSET-LIST is a list of Emacs charsets into which characters of
-CHARSET are mapped.
-
-TRANSLATION-METHOD is a translation table (symbol) to translate a
-character code of CHARSET to the corresponding Emacs character
-code.  It can also be a function to call with one argument, a
-character code in CHARSET.
-
-CODE-RANGE specifies the valid code ranges of CHARSET.
-It is a list of RANGEs, where each RANGE is of the form:
-  (FROM1 TO1 FROM2 TO2 ...)
-or
-  ((FROM1-1 TO1-1 FROM1-2 TO1-2 ...) . (FROM2-1 TO2-1 FROM2-2 TO2-2 ...))
-In the first form, valid codes are between FROM1 and TO1, or FROM2 and
-TO2, or...
-The second form is used for 2-byte codes.  The car part is the ranges
-of the first byte, and the cdr part is the ranges of the second byte.")
-
 ;;;###autoload
 (defun list-character-sets (arg)
   "Display a list of all character sets.
 
-The ID-NUM column contains a charset identification number for
-internal Emacs use.
-
-The MULTIBYTE-FORM column contains the format of the buffer and string
-multibyte sequence of characters in the charset using one to four
-hexadecimal digits.
-  `xx' stands for any byte in the range 0..127.
-  `XX' stands for any byte in the range 160..255.
-
 The D column contains the dimension of this character set.  The CH
 column contains the number of characters in a block of this character
 set.  The FINAL-CHAR column contains an ISO-2022 <final-char> to use
@@ -158,22 +79,20 @@ but still shows the full information."
       (if arg
          (list-character-sets-2)
        ;; Insert header.
-       (insert "Indirectly supported character sets are shown below.\n")
+       (insert "Supplementary character sets are shown below.\n")
        (insert
         (substitute-command-keys
          (concat "Use "
                  (if (display-mouse-p) "\\[help-follow-mouse] or ")
                  "\\[help-follow]:\n")))
        (insert "  on a column title to sort by that title,")
-       (indent-to 56)
+       (indent-to 48)
        (insert "+----DIMENSION\n")
        (insert "  on a charset name to list characters.")
-       (indent-to 56)
+       (indent-to 48)
        (insert "| +--CHARS\n")
-       (let ((columns '(("ID-NUM" . id) "\t"
-                        ("CHARSET-NAME" . name) "\t\t\t"
-                        ("MULTIBYTE-FORM" . id) "\t"
-                        ("D CH FINAL-CHAR" . iso-spec)))
+       (let ((columns '(("CHARSET-NAME" . name) "\t\t\t\t\t"
+                        ("D CH  FINAL-CHAR" . iso-spec)))
              pos)
          (while columns
            (if (stringp (car columns))
@@ -184,127 +103,73 @@ but still shows the full information."
              (goto-char (point-max)))
            (setq columns (cdr columns)))
          (insert "\n"))
-       (insert "------\t------------\t\t\t--------------\t- -- ----------\n")
+       (insert "------------\t\t\t\t\t- --- ----------\n")
 
        ;; Insert body sorted by charset IDs.
-       (list-character-sets-1 'id)
-
-       ;; Insert non-directly-supported charsets.
-       (insert-char ?- 72)
-       (insert "\n\nINDIRECTLY SUPPORTED CHARSETS SETS:\n\n"
-               (propertize "CHARSET NAME\tMAPPED TO" 'face 'bold)
-               "\n------------\t---------\n")
-       (dolist (elt non-iso-charset-alist)
-         (insert-text-button (symbol-name (car elt))
-                             :type 'list-charset-chars
-                             'help-args (list (car elt)))
-         (indent-to 16)
-         (dolist (e (nth 1 elt))
-           (when (>= (+ (current-column) 1 (string-width (symbol-name e)))
-                     ;; This is an approximate value.  We don't know
-                     ;; the correct window width of this buffer yet.
-                     78)
-             (insert "\n")
-             (indent-to 16))
-
-           (insert (format "%s " e)))
-         (insert "\n"))))))
+       (list-character-sets-1 'name)))))
 
 (defun sort-listed-character-sets (sort-key)
   (if sort-key
       (save-excursion
-       (help-setup-xref (list #'list-character-sets nil) t)
        (let ((buffer-read-only nil))
          (goto-char (point-min))
-         (re-search-forward "[0-9][0-9][0-9]")
-         (beginning-of-line)
-         (let ((pos (point)))
-           (search-forward "----------")
-           (beginning-of-line)
-           (save-restriction
-             (narrow-to-region pos (point))
-             (delete-region (point-min) (point-max))
-             (list-character-sets-1 sort-key)))))))
-
-(defun charset-multibyte-form-string (charset)
-  (let ((info (charset-info charset)))
-    (cond ((eq charset 'ascii)
-          "xx")
-         ((eq charset 'eight-bit-control)
-          (format "%2X Xx" (aref info 6)))
-         ((eq charset 'eight-bit-graphic)
-          "XX")
-         (t
-          (let ((str (format "%2X" (aref info 6))))
-            (if (> (aref info 7) 0)
-                (setq str (format "%s %2X"
-                                  str (aref info 7))))
-            (setq str (concat str " XX"))
-            (if (> (aref info 2) 1)
-                (setq str (concat str " XX")))
-            str)))))
-
-;; Insert a list of character sets sorted by SORT-KEY.  SORT-KEY
-;; should be one of `id', `name', and `iso-spec'.  If SORT-KEY is nil,
-;; it defaults to `id'.
+         (search-forward "\n-")
+         (forward-line 1)
+         (delete-region (point) (point-max))
+         (list-character-sets-1 sort-key)))))
 
 (defun list-character-sets-1 (sort-key)
+  "Insert a list of character sets sorted by SORT-KEY.
+SORT-KEY should be `name' or `iso-spec' (default `name')."
   (or sort-key
-      (setq sort-key 'id))
-  (let ((tail (charset-list))
-       charset-info-list elt charset info sort-func)
-    (while tail
-      (setq charset (car tail) tail (cdr tail)
-           info (charset-info charset))
-
+      (setq sort-key 'name))
+  (let ((tail charset-list)
+       charset-info-list supplementary-list charset sort-func)
+    (dolist (charset charset-list)
       ;; Generate a list that contains all information to display.
-      (setq charset-info-list
-           (cons (list (charset-id charset)    ; ID-NUM
-                       charset                 ; CHARSET-NAME
-                       (charset-multibyte-form-string charset); MULTIBYTE-FORM
-                       (aref info 2)           ; DIMENSION
-                       (aref info 3)           ; CHARS
-                       (aref info 8)           ; FINAL-CHAR
-                       )
-                 charset-info-list)))
+      (let ((elt (list charset
+                      (charset-dimension charset)
+                      (charset-chars charset)
+                      (charset-iso-final-char charset))))
+       (if (plist-get (charset-plist charset) :supplementary-p)
+           (push elt supplementary-list)
+         (push elt charset-info-list))))
 
     ;; Determine a predicate for `sort' by SORT-KEY.
     (setq sort-func
-         (cond ((eq sort-key 'id)
-                (lambda (x y) (< (car x) (car y))))
-
-               ((eq sort-key 'name)
-                (lambda (x y) (string< (nth 1 x) (nth 1 y))))
+         (cond ((eq sort-key 'name)
+                (lambda (x y) (string< (car x) (car y))))
 
                ((eq sort-key 'iso-spec)
                 ;; Sort by DIMENSION CHARS FINAL-CHAR
-                (lambda (x y)
-                  (or (< (nth 3 x) (nth 3 y))
-                      (and (= (nth 3 x) (nth 3 y))
-                           (or (< (nth 4 x) (nth 4 y))
-                               (and (= (nth 4 x) (nth 4 y))
-                                    (< (nth 5 x) (nth 5 y))))))))
+                (function
+                 (lambda (x y)
+                   (or (< (nth 1 x) (nth 1 y))
+                       (and (= (nth 1 x) (nth 1 y))
+                            (or (< (nth 2 x) (nth 2 y))
+                                (and (= (nth 2 x) (nth 2 y))
+                                     (< (nth 3 x) (nth 3 y)))))))))
                (t
                 (error "Invalid charset sort key: %s" sort-key))))
 
     (setq charset-info-list (sort charset-info-list sort-func))
+    (setq supplementary-list (sort supplementary-list sort-func))
 
     ;; Insert information of character sets.
-    (while charset-info-list
-      (setq elt (car charset-info-list)
-           charset-info-list (cdr charset-info-list))
-      (insert (format "%03d(%02X)" (car elt) (car elt))) ; ID-NUM
-      (indent-to 8)
-      (insert-text-button (symbol-name (nth 1 elt))
-                         :type 'list-charset-chars
-                         'help-args (list (nth 1 elt)))
-      (goto-char (point-max))
-      (insert "\t")
-      (indent-to 40)
-      (insert (nth 2 elt))             ; MULTIBYTE-FORM
-      (indent-to 56)
-      (insert (format "%d %2d " (nth 3 elt) (nth 4 elt)) ; DIMENSION and CHARS
-             (if (< (nth 5 elt) 0) "none" (nth 5 elt))) ; FINAL-CHAR
+    (dolist (elt (append charset-info-list (list t) supplementary-list))
+      (if (eq elt t)
+         (insert "-------------- Supplementary Character Sets --------------")
+       (insert-text-button (symbol-name (car elt)) ; NAME
+                           :type 'list-charset-chars
+                           'help-args (list (car elt)))
+       (goto-char (point-max))
+       (insert "\t")
+       (indent-to 48)
+       (insert (format "%d %3d "
+                       (nth 1 elt) (nth 2 elt)) ; DIMENSION and CHARS
+               (if (< (nth 3 elt) 0)
+                   "none"
+                 (nth 3 elt))))        ; FINAL-CHAR
       (insert "\n"))))
 
 
@@ -316,42 +181,37 @@ but still shows the full information."
 ## Each line corresponds to one charset.
 ## The following attributes are listed in this order
 ## separated by a colon `:' in one line.
-##     CHARSET-ID,
 ##     CHARSET-SYMBOL-NAME,
 ##     DIMENSION (1 or 2)
 ##     CHARS (94 or 96)
-##     BYTES (of multibyte form: 1, 2, 3, or 4),
-##     WIDTH (occupied column numbers: 1 or 2),
-##     DIRECTION (0:left-to-right, 1:right-to-left),
 ##     ISO-FINAL-CHAR (character code of ISO-2022's final character)
-##     ISO-GRAPHIC-PLANE (ISO-2022's graphic plane, 0:GL, 1:GR)
+##             -1 means that no final character is assigned.
 ##     DESCRIPTION (describing string of the charset)
 ")
   (let ((l charset-list)
        charset)
     (while l
       (setq charset (car l) l (cdr l))
-      (princ (format "%03d:%s:%d:%d:%d:%d:%d:%d:%d:%s\n"
-                    (charset-id charset)
+      (princ (format "%s:%d:%d:%d:%s\n"
                     charset
                     (charset-dimension charset)
                     (charset-chars charset)
-                    (charset-bytes charset)
-                    (charset-width charset)
-                    (charset-direction charset)
+;;;                 (char-width (make-char charset))
+;;;                 (charset-direction charset)
                     (charset-iso-final-char charset)
-                    (charset-iso-graphic-plane charset)
+;;;                 (charset-iso-graphic-plane charset)
                     (charset-description charset))))))
 
+(defvar non-iso-charset-alist nil
+  "Obsolete.")
+(make-obsolete-variable 'non-iso-charset-alist "no longer relevant" "23.1")
+
 (defun decode-codepage-char (codepage code)
   "Decode a character that has code CODE in CODEPAGE.
 Return a decoded character string.  Each CODEPAGE corresponds to a
-coding system cpCODEPAGE."
-  (let ((coding-system (intern (format "cp%d" codepage))))
-    (or (coding-system-p coding-system)
-       (codepage-setup codepage))
-    (string-to-char
-     (decode-coding-string (char-to-string code) coding-system))))
+coding system cpCODEPAGE.  This function is obsolete."
+  (decode-char (intern (format "cp%d" codepage)) code))
+(make-obsolete 'decode-codepage-char 'decode-char "23.1")
 
 ;; A variable to hold charset input history.
 (defvar charset-history nil)
@@ -360,210 +220,172 @@ coding system cpCODEPAGE."
 ;;;###autoload
 (defun read-charset (prompt &optional default-value initial-input)
   "Read a character set from the minibuffer, prompting with string PROMPT.
-It must be an Emacs character set listed in the variable `charset-list'
-or a non-ISO character set listed in the variable
-`non-iso-charset-alist'.
+It must be an Emacs character set listed in the variable `charset-list'.
 
 Optional arguments are DEFAULT-VALUE and INITIAL-INPUT.
 DEFAULT-VALUE, if non-nil, is the default value.
 INITIAL-INPUT, if non-nil, is a string inserted in the minibuffer initially.
 See the documentation of the function `completing-read' for the
 detailed meanings of these arguments."
-  (let* ((table (append (mapcar (lambda (x) (list (symbol-name x)))
-                               charset-list)
-                       (mapcar (lambda (x) (list (symbol-name (car x))))
-                               non-iso-charset-alist)))
+  (let* ((table (mapcar (lambda (x) (list (symbol-name x))) charset-list))
         (charset (completing-read prompt table
                                   nil t initial-input 'charset-history
                                   default-value)))
     (if (> (length charset) 0)
        (intern charset))))
 
-
 ;; List characters of the range MIN and MAX of CHARSET.  If dimension
 ;; of CHARSET is two (i.e. 2-byte charset), ROW is the first byte
 ;; (block index) of the characters, and MIN and MAX are the second
 ;; bytes of the characters.  If the dimension is one, ROW should be 0.
-;; For a non-ISO charset, CHARSET is a translation table (symbol) or a
-;; function to get Emacs' character codes that corresponds to the
-;; characters to list.
 
 (defun list-block-of-chars (charset row min max)
   (let (i ch)
-    (insert-char ?- (+ 4 (* 3 16)))
-    (insert "\n    ")
+    (insert-char ?- (+ 7 (* 4 16)))
+    (insert "\n     ")
     (setq i 0)
     (while (< i 16)
-      (insert (format "%3X" i))
+      (insert (format "%4X" i))
       (setq i (1+ i)))
     (setq i (* (/ min 16) 16))
     (while (<= i max)
       (if (= (% i 16) 0)
-         (insert (format "\n%3Xx" (/ (+ (* row 256) i) 16))))
-      (setq ch (cond ((< i min)
-                     32)
-                    ((charsetp charset)
-                     (if (= row 0)
-                         (make-char charset i)
-                       (make-char charset row i)))
-                    ((and (symbolp charset) (get charset 'translation-table))
-                     (aref (get charset 'translation-table) i))
-                    (t (funcall charset (+ (* row 256) i)))))
-      (if (and (char-table-p charset)
-              (or (< ch 32) (and (>= ch 127) (<= ch 255))))
-         ;; Don't insert a control code.
-         (setq ch 32))
-      (unless ch (setq ch 32))
-      (if (eq ch ?\t)
-         ;; Make it visible.
-         (setq ch (propertize "\t" 'display "^I")))
-      ;; This doesn't DTRT.  Maybe it's better to insert "^J" and not
-      ;; worry about the buffer contents not being correct.
-;;;       (if (eq ch ?\n)
-;;;    (setq ch (propertize "\n" 'display "^J")))
-      (indent-to (+ (* (% i 16) 3) 6))
-      (insert ch)
+         (insert (format "\n%6Xx" (/ (+ (* row 256) i) 16))))
+      (setq ch (if (< i min)
+                  32
+                (or (decode-char charset (+ (* row 256) i))
+                    32)))              ; gap in mapping
+      ;; Don't insert control codes, non-Unicode characters.
+      (if (or (< ch 32) (= ch 127))
+         (setq ch (single-key-description ch))
+       (if (and (>= ch 128) (< ch 160))
+           (setq ch (format "%02Xh" ch))
+         (if (> ch #x10FFFF)
+             (setq ch 32))))
+      (insert "\t" ch)
       (setq i (1+ i))))
   (insert "\n"))
 
-(defun list-iso-charset-chars (charset)
-  (let ((dim (charset-dimension charset))
-       (chars (charset-chars charset))
-       (plane (charset-iso-graphic-plane charset))
-       min max)
-    (insert (format "Characters in the coded character set %s.\n" charset))
-
-    (cond ((eq charset 'eight-bit-control)
-          (setq min 128 max 159))
-         ((eq charset 'eight-bit-graphic)
-          (setq min 160 max 255))
-         (t
-          (if (= chars 94)
-              (setq min 33 max 126)
-            (setq min 32 max 127))
-          (or (= plane 0)
-              (setq min (+ min 128) max (+ max 128)))))
-
-    (if (= dim 1)
-       (list-block-of-chars charset 0 min max)
-      (let ((i min))
-       (while (<= i max)
-         (list-block-of-chars charset i min max)
-         (setq i (1+ i)))))))
-
-(defun list-non-iso-charset-chars (charset)
-  "List all characters in non-built-in coded character set CHARSET."
-  (let* ((slot (assq charset non-iso-charset-alist))
-        (charsets (nth 1 slot))
-        (translate-method (nth 2 slot))
-        (ranges (nth 3 slot))
-        range)
-    (or slot
-       (error "Unknown character set: %s" charset))
-    (insert (format "Characters in the coded character set %s.\n" charset))
-    (if charsets
-       (insert "They are mapped to: "
-               (mapconcat #'symbol-name charsets ", ")
-               "\n"))
-    (while ranges
-      (setq range (pop ranges))
-      (if (integerp (car range))
-         ;; The form of RANGES is (FROM1 TO1 FROM2 TO2 ...).
-         (if (and (not (functionp translate-method))
-                  (< (car (last range)) 256))
-             ;; Do it all in one block to avoid the listing being
-             ;; broken up at gaps in the range.  Don't do that for
-             ;; function translate-method, since not all codes in
-             ;; that range may be valid.
-             (list-block-of-chars translate-method
-                                  0 (car range) (car (last range)))
-           (while range
-             (list-block-of-chars translate-method
-                                  0 (car range) (nth 1 range))
-             (setq range (nthcdr 2 range))))
-       ;; The form of RANGES is ((FROM1-1 TO1-1 ...) . (FROM2-1 TO2-1 ...)).
-       (let ((row-range (car range))
-             row row-max
-             col-range col col-max)
-         (while row-range
-           (setq row (car row-range) row-max (nth 1 row-range)
-                 row-range (nthcdr 2 row-range))
-           (while (<= row row-max)
-             (setq col-range (cdr range))
-             (while col-range
-               (setq col (car col-range) col-max (nth 1 col-range)
-                     col-range (nthcdr 2 col-range))
-               (list-block-of-chars translate-method row col col-max))
-             (setq row (1+ row)))))))))
-
-
 ;;;###autoload
 (defun list-charset-chars (charset)
-  "Display a list of characters in the specified character set.
-This can list both Emacs `official' (ISO standard) charsets and the
-characters encoded by various Emacs coding systems which correspond to
-PC `codepages' and other coded character sets.  See `non-iso-charset-alist'."
+  "Display a list of characters in character set CHARSET."
   (interactive (list (read-charset "Character set: ")))
+  (or (charsetp charset)
+      (error "Invalid character set: %s" charset))
   (with-output-to-temp-buffer "*Character List*"
     (with-current-buffer standard-output
+      (if (coding-system-p charset)
+         ;; Useful to be able to do C-u C-x = to find file code, for
+         ;; instance:
+         (set-buffer-file-coding-system charset))
       (setq mode-line-format (copy-sequence mode-line-format))
       (let ((slot (memq 'mode-line-buffer-identification mode-line-format)))
        (if slot
            (setcdr slot
                    (cons (format " (%s)" charset)
                          (cdr slot)))))
-      (setq indent-tabs-mode nil)
+      (setq tab-width 4)
       (set-buffer-multibyte t)
-      (cond ((charsetp charset)
-            (list-iso-charset-chars charset))
-           ((assq charset non-iso-charset-alist)
-            (list-non-iso-charset-chars charset))
-           (t
-            (error "Invalid character set %s" charset))))))
+      (let ((dim (charset-dimension charset))
+           (chars (charset-chars charset))
+           ;;  (plane (charset-iso-graphic-plane charset))
+           (plane 1)
+           (range (plist-get (charset-plist charset) :code-space))
+           min max min2 max2)
+       (if (> dim 2)
+           (error "Can only list 1- and 2-dimensional charsets"))
+       (insert (format "Characters in the coded character set %s.\n" charset))
+       (narrow-to-region (point) (point))
+       (setq min (aref range 0)
+             max (aref range 1))
+       (if (= dim 1)
+           (list-block-of-chars charset 0 min max)
+         (setq min2 (aref range 2)
+               max2 (aref range 3))
+         (let ((i min2))
+           (while (<= i max2)
+             (list-block-of-chars charset i min max)
+             (setq i (1+ i)))))
+       (put-text-property (point-min) (point-max) 'charset charset)
+       (widen)))))
 
 
 ;;;###autoload
 (defun describe-character-set (charset)
   "Display information about built-in character set CHARSET."
-  (interactive (list (let ((non-iso-charset-alist nil))
-                      (read-charset "Charset: "))))
+  (interactive (list (read-charset "Charset: ")))
   (or (charsetp charset)
       (error "Invalid charset: %S" charset))
-  (let ((info (charset-info charset)))
-    (help-setup-xref (list #'describe-character-set charset) (interactive-p))
-    (with-output-to-temp-buffer (help-buffer)
-      (with-current-buffer standard-output
-       (insert "Character set: " (symbol-name charset)
-               (format " (ID:%d)\n\n" (aref info 0)))
-       (insert (aref info 13) "\n\n")  ; description
-       (insert "Number of contained characters: "
-               (if (= (aref info 2) 1)
-                   (format "%d\n" (aref info 3))
-                 (format "%dx%d\n" (aref info 3) (aref info 3))))
-       (insert "Final char of ISO2022 designation sequence: ")
-       (if (>= (aref info 8) 0)
-           (insert (format "`%c'\n" (aref info 8)))
-         (insert "not assigned\n"))
-       (insert (format "Width (how many columns on screen): %d\n"
-                       (aref info 4)))
-       (insert (format "Internal multibyte sequence: %s\n"
-                       (charset-multibyte-form-string charset)))
-       (let ((coding (plist-get (aref info 14) 'preferred-coding-system)))
-         (when coding
-           (insert (format "Preferred coding system: %s\n" coding))
-           (search-backward (symbol-name coding))
-           (help-xref-button 0 'help-coding-system coding)))))))
+  (help-setup-xref (list #'describe-character-set charset) (interactive-p))
+  (with-output-to-temp-buffer (help-buffer)
+    (with-current-buffer standard-output
+      (insert "Character set: " (symbol-name charset))
+      (let ((name (get-charset-property charset :name)))
+       (if (not (eq name charset))
+           (insert " (alias of " (symbol-name name) ?\))))
+      (insert "\n\n" (charset-description charset) "\n\n")
+      (insert "Number of contained characters: ")
+      (dotimes (i (charset-dimension charset))
+       (unless (= i 0)
+         (insert ?x))
+       (insert (format "%d" (charset-chars charset (1+ i)))))
+      (insert ?\n)
+      (let ((char (charset-iso-final-char charset)))
+       (when (> char 0)
+         (insert "Final char of ISO2022 designation sequence: ")
+         (insert (format "`%c'\n" char))))
+      (insert (format "Width (how many columns on screen): %d\n"
+                     (aref char-width-table (make-char charset))))
+      (let (aliases)
+       (dolist (c charset-list)
+         (if (and (not (eq c charset))
+                  (eq charset (get-charset-property c :name)))
+             (push c aliases)))
+       (if aliases
+           (insert "Aliases: " (mapconcat #'symbol-name aliases ", ") ?\n)))
+      
+      (dolist (elt `((:ascii-compatible-p "ASCII compatible." nil)
+                    (:map "Map file: " identity)
+                    (:unify-map "Unification map file: " identity)
+                    (:invalid-code
+                     nil
+                     ,(lambda (c)
+                        (format "Invalid character: %c (code %d)" c c)))
+                    (:emacs-mule-id "Id in emacs-mule coding system: "
+                                    number-to-string)
+                    (:parents "Parents: "
+                              (lambda (parents)
+                                (mapconcat ,(lambda (elt)
+                                              (format "%s" elt))
+                                           parents
+                                           ", ")))
+                    (:code-space "Code space: " ,(lambda (c)
+                                                   (format "%s" c)))
+                    (:code-offset "Code offset: " number-to-string)
+                    (:iso-revision-number "ISO revision number: "
+                                          number-to-string)
+                    (:supplementary-p
+                     "Used only as a parent of some other charset." nil)))
+       (let ((val (get-charset-property charset (car elt))))
+         (when val
+           (if (cadr elt) (insert (cadr elt)))
+           (if (nth 2 elt)
+               (insert (funcall (nth 2 elt) val)))
+           (insert ?\n)))))))
 \f
 ;;; CODING-SYSTEM
 
-;; Print information of designation of each graphic register in FLAGS
-;; in human readable format.  See the documentation of
-;; `make-coding-system' for the meaning of FLAGS.
-(defun print-designation (flags)
-  (let ((graphic-register 0)
-       charset)
-    (while (< graphic-register 4)
-      (setq charset (aref flags graphic-register))
+(eval-when-compile                     ; dynamic bondage
+  (defvar graphic-register))
+
+;; Print information about designation of each graphic register in
+;; DESIGNATIONS in human readable format.  See the documentation of
+;; `define-coding-system' for the meaning of DESIGNATIONS
+;; (`:designation' property).
+(defun print-designation (designations)
+  (let (charset)
+    (dotimes (graphic-register 4)
+      (setq charset (aref designations graphic-register))
       (princ (format
              "  G%d -- %s\n"
              graphic-register
@@ -593,8 +415,7 @@ PC `codepages' and other coded character sets.  See `non-iso-charset-alist'."
                                (charset-description (car charset)))))
                (t
                 "invalid designation information"))
-         (setq charset (cdr charset))))
-      (setq graphic-register (1+ graphic-register)))))
+         (setq charset (cdr charset)))))))
 
 ;;;###autoload
 (defun describe-coding-system (coding-system)
@@ -606,73 +427,57 @@ PC `codepages' and other coded character sets.  See `non-iso-charset-alist'."
                     (interactive-p))
     (with-output-to-temp-buffer (help-buffer)
       (print-coding-system-briefly coding-system 'doc-string)
-      (princ "\n")
-      (let ((vars (coding-system-get coding-system 'dependency)))
-       (when vars
-         (princ "See also the documentation of these customizable variables
-which alter the behavior of this coding system.\n")
-         (dolist (v vars)
-           (princ "  `")
-           (princ v)
-           (princ "'\n"))
-         (princ "\n")))
-
-      (princ "Type: ")
       (let ((type (coding-system-type coding-system))
-           (flags (coding-system-flags coding-system)))
+           ;; Fixme: use this
+           (extra-spec (coding-system-plist coding-system)))
+       (princ "Type: ")
        (princ type)
-       (cond ((eq type nil)
-              (princ " (do no conversion)"))
-             ((eq type t)
+       (cond ((eq type 'undecided)
               (princ " (do automatic conversion)"))
-             ((eq type 0)
-              (princ " (Emacs internal multibyte form)"))
-             ((eq type 1)
+             ((eq type 'utf-8)
+              (princ " (UTF-8: Emacs internal multibyte form)"))
+             ((eq type 'utf-16)
+              ;; (princ " (UTF-16)")
+              )
+             ((eq type 'shift-jis)
               (princ " (Shift-JIS, MS-KANJI)"))
-             ((eq type 2)
+             ((eq type 'iso-2022)
               (princ " (variant of ISO-2022)\n")
               (princ "Initial designations:\n")
-              (print-designation flags)
-              (princ "Other Form: \n  ")
-              (princ (if (aref flags 4) "short-form" "long-form"))
-              (if (aref flags 5) (princ ", ASCII@EOL"))
-              (if (aref flags 6) (princ ", ASCII@CNTL"))
-              (princ (if (aref flags 7) ", 7-bit" ", 8-bit"))
-              (if (aref flags 8) (princ ", use-locking-shift"))
-              (if (aref flags 9) (princ ", use-single-shift"))
-              (if (aref flags 10) (princ ", use-roman"))
-              (if (aref flags 11) (princ ", use-old-jis"))
-              (if (aref flags 12) (princ ", no-ISO6429"))
-              (if (aref flags 13) (princ ", init-bol"))
-              (if (aref flags 14) (princ ", designation-bol"))
-              (if (aref flags 15) (princ ", convert-unsafe"))
-              (if (aref flags 16) (princ ", accept-latin-extra-code"))
-              (princ "."))
-             ((eq type 3)
-              (princ " (Big5)"))
-             ((eq type 4)
+              (print-designation (coding-system-get coding-system
+                                                    :designation))
+
+              (when (coding-system-get coding-system :flags)
+                (princ "Other specifications: \n  ")
+                (apply #'print-list
+                       (coding-system-get coding-system :flags))))
+             ((eq type 'charset)
+              (princ " (charset)"))
+             ((eq type 'ccl)
               (princ " (do conversion by CCL program)"))
-             ((eq type 5)
+             ((eq type 'raw-text)
               (princ " (text with random binary characters)"))
-             (t (princ ": invalid coding-system."))))
-      (princ "\nEOL type: ")
-      (let ((eol-type (coding-system-eol-type coding-system)))
-       (cond ((vectorp eol-type)
-              (princ "Automatic selection from:\n\t")
-              (princ eol-type)
-              (princ "\n"))
-             ((or (null eol-type) (eq eol-type 0)) (princ "LF\n"))
-             ((eq eol-type 1) (princ "CRLF\n"))
-             ((eq eol-type 2) (princ "CR\n"))
-             (t (princ "invalid\n"))))
-      (let ((postread (coding-system-get coding-system 'post-read-conversion)))
+             ((eq type 'emacs-mule)
+              (princ " (Emacs 21 internal encoding)"))
+             (t (princ ": invalid coding-system.")))
+       (princ "\nEOL type: ")
+       (let ((eol-type (coding-system-eol-type coding-system)))
+         (cond ((vectorp eol-type)
+                (princ "Automatic selection from:\n\t")
+                (princ eol-type)
+                (princ "\n"))
+               ((or (null eol-type) (eq eol-type 0)) (princ "LF\n"))
+               ((eq eol-type 1) (princ "CRLF\n"))
+               ((eq eol-type 2) (princ "CR\n"))
+               (t (princ "invalid\n")))))
+      (let ((postread (coding-system-get coding-system :post-read-conversion)))
        (when postread
          (princ "After decoding text normally,")
          (princ " perform post-conversion using the function: ")
          (princ "\n  ")
          (princ postread)
          (princ "\n")))
-      (let ((prewrite (coding-system-get coding-system 'pre-write-conversion)))
+      (let ((prewrite (coding-system-get coding-system :pre-write-conversion)))
        (when prewrite
          (princ "Before encoding text normally,")
          (princ " perform pre-conversion using the function: ")
@@ -680,21 +485,23 @@ which alter the behavior of this coding system.\n")
          (princ prewrite)
          (princ "\n")))
       (with-current-buffer standard-output
-       (let ((charsets (coding-system-get coding-system 'safe-charsets)))
-         (when (and (not (memq (coding-system-base coding-system)
-                               '(raw-text emacs-mule)))
+       (let ((charsets (coding-system-charset-list coding-system)))
+         (when (and (not (eq (coding-system-base coding-system) 'raw-text))
                     charsets)
-           (if (eq charsets t)
-               (insert "This coding system can encode all charsets except for
-eight-bit-control and eight-bit-graphic.\n")
+           (cond
+            ((eq charsets 'iso-2022)
+             (insert "This coding system can encode all ISO 2022 charsets."))
+            ((eq charsets 'emacs-mule)
+             (insert "This coding system can encode all emacs-mule charsets\
+."""))
+            (t
              (insert "This coding system encodes the following charsets:\n ")
              (while charsets
                (insert " " (symbol-name (car charsets)))
                (search-backward (symbol-name (car charsets)))
                (help-xref-button 0 'help-character-set (car charsets))
                (goto-char (point-max))
-               (setq charsets (cdr charsets))))))))))
-
+               (setq charsets (cdr charsets)))))))))))
 
 ;;;###autoload
 (defun describe-current-coding-system-briefly ()
@@ -742,18 +549,17 @@ in place of `..':
      (coding-system-eol-type-mnemonic (cdr default-process-coding-system))
      )))
 
-;; Print symbol name and mnemonic letter of CODING-SYSTEM with `princ'.
-;; If DOC-STRING is non-nil, print also the docstring of CODING-SYSTEM.
-;; If DOC-STRING is `tightly', don't print an empty line before the
-;; docstring, and print only the first line of the docstring.
-
 (defun print-coding-system-briefly (coding-system &optional doc-string)
+  "Print symbol name and mnemonic letter of CODING-SYSTEM with `princ'.
+If DOC-STRING is non-nil, print also the docstring of CODING-SYSTEM.
+If DOC-STRING is `tightly', don't print an empty line before the
+docstring, and print only the first line of the docstring."
   (if (not coding-system)
       (princ "nil\n")
     (princ (format "%c -- %s"
                   (coding-system-mnemonic coding-system)
                   coding-system))
-    (let ((aliases (coding-system-get coding-system 'alias-coding-systems)))
+    (let ((aliases (coding-system-aliases coding-system)))
       (cond ((eq coding-system (car aliases))
             (if (cdr aliases)
                 (princ (format " %S" (cons 'alias: (cdr aliases))))))
@@ -795,6 +601,8 @@ in place of `..':
       (print-coding-system-briefly (keyboard-coding-system))
       (princ "Coding system for terminal output:\n  ")
       (print-coding-system-briefly (terminal-coding-system))
+      (princ "Coding system for inter-client cut and paste:\n  ")
+      (print-coding-system-briefly selection-coding-system)
       (when (get-buffer-process (current-buffer))
        (princ "Coding systems for process I/O:\n")
        (princ "  encoding input to the process: ")
@@ -811,30 +619,23 @@ in place of `..':
 
       (princ "
 Priority order for recognizing coding systems when reading files:\n")
-      (let ((l coding-category-list)
-           (i 1)
-           (coding-list nil)
-           coding aliases)
-       (while l
-         (setq coding (symbol-value (car l)))
-         ;; Do not list up the same coding system twice.
-         (when (and coding (not (memq coding coding-list)))
-           (setq coding-list (cons coding coding-list))
-           (princ (format "  %d. %s " i coding))
-           (setq aliases (coding-system-get coding 'alias-coding-systems))
-           (if (eq coding (car aliases))
+      (let ((i 1))
+       (dolist (elt (coding-system-priority-list))
+         (princ (format "  %d. %s " i elt))
+         (let ((aliases (coding-system-aliases elt)))
+           (if (eq elt (car aliases))
                (if (cdr aliases)
                    (princ (cons 'alias: (cdr aliases))))
-             (if (memq coding aliases)
-                 (princ (list 'alias 'of (car aliases)))))
+             (princ (list 'alias 'of (car aliases))))
            (terpri)
-           (setq i (1+ i)))
-         (setq l (cdr l))))
+           (setq i (1+ i)))))
 
       (princ "\n  Other coding systems cannot be distinguished automatically
   from these, and therefore cannot be recognized automatically
   with the present coding system priorities.\n\n")
 
+      ;; Fixme: should this be replaced or junked?
+      (if nil
       (let ((categories '(coding-category-iso-7 coding-category-iso-7-else))
            coding-system codings)
        (while categories
@@ -842,9 +643,9 @@ Priority order for recognizing coding systems when reading files:\n")
          (mapc
           (lambda (x)
             (if (and (not (eq x coding-system))
-                     (coding-system-get x 'no-initial-designation)
-                     (let ((flags (coding-system-flags x)))
-                       (not (or (aref flags 10) (aref flags 11)))))
+                      (let ((flags (coding-system-get :flags)))
+                        (not (or (memq 'use-roman flags)
+                                 (memq 'use-oldjis flags)))))
                 (setq codings (cons x codings))))
           (get (car categories) 'coding-systems))
          (if codings
@@ -862,7 +663,7 @@ Priority order for recognizing coding systems when reading files:\n")
                    (goto-char (point-max)))
                  (setq codings (cdr codings)))
                (insert "\n\n")))
-         (setq categories (cdr categories))))
+         (setq categories (cdr categories)))))
 
       (princ "Particular coding systems specified for certain file names:\n")
       (terpri)
@@ -887,12 +688,12 @@ Priority order for recognizing coding systems when reading files:\n")
        (funcall func "Network I/O" network-coding-system-alist))
       (help-mode))))
 
-;; Print detailed information on CODING-SYSTEM.
 (defun print-coding-system (coding-system)
+  "Print detailed information on CODING-SYSTEM."
   (let ((type (coding-system-type coding-system))
        (eol-type (coding-system-eol-type coding-system))
-       (flags (coding-system-flags coding-system))
-       (aliases (coding-system-get coding-system 'alias-coding-systems)))
+       (flags (coding-system-get coding-system :flags))
+       (aliases (coding-system-aliases coding-system)))
     (if (not (eq (car aliases) coding-system))
        (princ (format "%s (alias of %s)\n" coding-system (car aliases)))
       (princ coding-system)
@@ -905,7 +706,7 @@ Priority order for recognizing coding systems when reading files:\n")
                     type
                     (coding-system-mnemonic coding-system)
                     (if (integerp eol-type) eol-type 3)))
-      (cond ((eq type 2)               ; ISO-2022
+      (cond ((eq type 'iso2022)
             (let ((idx 0)
                   charset)
               (while (< idx 4)
@@ -932,7 +733,7 @@ Priority order for recognizing coding systems when reading files:\n")
                 (princ ",")
                 (setq idx (1+ idx)))
               (princ (if (aref flags idx) 1 0))))
-           ((eq type 4)                ; CCL
+           ((eq type 'ccl)
             (let (i len)
               (if (symbolp (car flags))
                   (princ (format " %s" (car flags)))
@@ -999,19 +800,9 @@ but still contains full information about each coding system."
   (dolist (coding-system (sort-coding-systems (coding-system-list 'base-only)))
     (if (null arg)
        (print-coding-system-briefly coding-system 'tightly)
-      (print-coding-system coding-system)))
-  (let ((first t))
-    (dolist (elt coding-system-alist)
-      (unless (memq (intern (car elt)) coding-system-list)
-       (when first
-         (princ "\
-####################################################
-# The following coding systems are not yet loaded. #
-####################################################
-")
-         (setq first nil))
-       (princ-list (car elt))))))
+      (print-coding-system coding-system))))
 
+;; Fixme: delete?
 ;;;###autoload
 (defun list-coding-categories ()
   "Display a list of all coding categories."
@@ -1029,8 +820,8 @@ but still contains full information about each coding system."
 \f
 ;;; FONT
 
-;; Print information of a font in FONTINFO.
 (defun describe-font-internal (font-info &optional verbose)
+  "Print information about a font in FONT-INFO."
   (print-list "name (opened by):" (aref font-info 0))
   (print-list "       full name:" (aref font-info 1))
   (print-list "            size:" (format "%2d" (aref font-info 2)))
@@ -1065,76 +856,84 @@ The font must be already used by Emacs."
       (with-output-to-temp-buffer "*Help*"
        (describe-font-internal font-info 'verbose)))))
 
-(defun print-fontset (fontset &optional print-fonts)
+(defun print-fontset-element (val)
+  ;; VAL has this format:
+  ;;  ((REQUESTED-FONT-NAME OPENED-FONT-NAME ...) ...)
+  ;; CHAR RANGE is already inserted.  Get character codes from
+  ;; the current line.
+  (beginning-of-line)
+  (let ((from (following-char))
+       (to (if (looking-at "[^.]*[.]* ")
+               (char-after (match-end 0)))))
+    (if (re-search-forward "[ \t]*$" nil t)
+       (delete-region (match-beginning 0) (match-end 0)))
+
+    ;; For non-ASCII characters, insert also CODE RANGE.
+    (if (or (>= from 128) (and to (>= to 128)))
+       (if to
+           (insert (format " (#x%02X .. #x%02X)" from to))
+         (insert (format " (#x%02X)" from))))
+
+    ;; Insert a requested font name.
+    (dolist (elt val)
+      (let ((requested (car elt)))
+       (if (stringp requested)
+           (insert "\n    " requested)
+         (let (family registry weight slant width adstyle)
+           (if (and (fboundp 'fontp) (fontp requested))
+               (setq family (font-get requested :family)
+                     registry (font-get requested :registry)
+                     weight (font-get requested :weight)
+                     slant (font-get requested :slant)
+                     width (font-get requested :width)
+                     adstyle (font-get requested :adstyle))
+             (setq family (aref requested 0)
+                   registry (aref requested 5)
+                   weight (aref requested 1)
+                   slant (aref requested 2)
+                   width (aref requested 3)
+                   adstyle (aref requested 4)))
+           (if (not family)
+               (setq family "*-*")
+             (if (symbolp family)
+                 (setq family (symbol-name family)))
+             (or (string-match "-" family)
+                 (setq family (concat "*-" family))))
+           (if (not registry)
+               (setq registry "*-*")
+             (if (symbolp registry)
+                 (setq registry (symbol-name registry)))
+             (or (string-match "-" registry)
+                 (= (aref registry (1- (length registry))) ?*)
+                 (setq registry (concat registry "*"))))
+           (insert (format"\n    -%s-%s-%s-%s-%s-*-*-*-*-*-*-%s"
+                          family (or weight "*") (or slant "*") (or width "*")
+                          (or adstyle "*") registry)))))
+
+      ;; Insert opened font names (if any).
+      (if (and (boundp 'print-opened) (symbol-value 'print-opened))
+         (dolist (opened (cdr elt))
+           (insert "\n\t[" opened "]"))))))
+
+(defun print-fontset (fontset &optional print-opened)
   "Print information about FONTSET.
 If FONTSET is nil, print information about the default fontset.
-If optional arg PRINT-FONTS is non-nil, also print names of all opened
+If optional arg PRINT-OPENED is non-nil, also print names of all opened
 fonts for FONTSET.  This function actually inserts the information in
 the current buffer."
   (or fontset
       (setq fontset (query-fontset "fontset-default")))
-  (let ((tail (aref (fontset-info fontset) 2))
-       elt chars font-spec opened prev-charset charset from to)
-    (beginning-of-line)
-    (insert "Fontset: " fontset "\n")
-    (insert "CHARSET or CHAR RANGE")
-    (indent-to 24)
-    (insert "FONT NAME\n")
-    (insert "---------------------")
-    (indent-to 24)
-    (insert "---------")
-    (insert "\n")
-    (while tail
-      (setq elt (car tail) tail (cdr tail))
-      (setq chars (car elt) font-spec (car (cdr elt)) opened (cdr (cdr elt)))
-      (if (symbolp chars)
-         (setq charset chars from nil to nil)
-       (if (integerp chars)
-           (setq charset (char-charset chars) from chars to chars)
-         (setq charset (char-charset (car chars))
-               from (car chars) to (cdr chars))))
-      (unless (eq charset prev-charset)
-       (insert (symbol-name charset))
-       (if from
-           (insert "\n")))
-      (when from
-       (let ((split (split-char from)))
-         (if (and (= (charset-dimension charset) 2)
-                  (= (nth 2 split) 0))
-             (setq from
-                   (make-char charset (nth 1 split)
-                              (if (= (charset-chars charset) 94) 33 32))))
-         (insert "  " from))
-       (when (/= from to)
-         (insert "-")
-         (let ((split (split-char to)))
-           (if (and (= (charset-dimension charset) 2)
-                    (= (nth 2 split) 0))
-               (setq to
-                     (make-char charset (nth 1 split)
-                                (if (= (charset-chars charset) 94) 126 127))))
-           (insert to))))
-      (indent-to 24)
-      (if (stringp font-spec)
-         (insert font-spec)
-       (if (car font-spec)
-           (if (string-match "-" (car font-spec))
-               (insert "-" (car font-spec) "-*-")
-             (insert "-*-" (car font-spec) "-*-"))
-         (insert "-*-"))
-       (if (cdr font-spec)
-           (if (string-match "-" (cdr font-spec))
-               (insert (cdr font-spec))
-             (insert (cdr font-spec) "-*"))
-         (insert "*")))
-      (insert "\n")
-      (when print-fonts
-       (while opened
-         (indent-to 5)
-         (insert "[" (car opened) "]\n")
-         (setq opened (cdr opened))))
-      (setq prev-charset charset)
-      )))
+  (beginning-of-line)
+  (insert "Fontset: " fontset "\n")
+  (insert (propertize "CHAR RANGE" 'face 'underline)
+          " (" (propertize "CODE RANGE" 'face 'underline) ")\n")
+  (insert "    " (propertize "FONT NAME" 'face 'underline)
+         " (" (propertize "REQUESTED" 'face 'underline)
+         " and [" (propertize "OPENED" 'face 'underline) "])")
+  (let ((info (fontset-info fontset)))
+    (describe-vector info 'print-fontset-element)
+    (insert "\n  ---<fallback to the default fontset>---")
+    (describe-vector (char-table-extra-slot info 0) 'print-fontset-element)))
 
 ;;;###autoload
 (defun describe-fontset (fontset)
@@ -1291,16 +1090,6 @@ system which uses fontsets)."
 
       (insert-section 4 "Coding systems")
       (list-coding-systems-1 t)
-      (princ "\
-############################
-## LIST OF CODING CATEGORIES (ordered by priority)
-## CATEGORY:CODING-SYSTEM
-##
-")
-      (let ((l coding-category-list))
-       (while l
-         (princ (format "%s:%s\n" (car l) (symbol-value (car l))))
-         (setq l (cdr l))))
       (insert "\n")
 
       (insert-section 5 "Character sets")
@@ -1318,6 +1107,192 @@ system which uses fontsets)."
            (setq fontsets (cdr fontsets)))))
       (print-help-return-message))))
 
+;;;###autoload
+(defcustom unicodedata-file nil
+  "Location of UnicodeData file.
+This is the UnicodeData.txt file from the Unicode consortium, used for
+diagnostics.  If it is non-nil `describe-char-after' will print data
+looked up from it."
+  :group 'mule
+  :type '(choice (const :tag "None" nil)
+                file))
+
+;; We could convert the unidata file into a Lispy form once-for-all
+;; and distribute it for loading on demand.  It might be made more
+;; space-efficient by splitting strings word-wise and replacing them
+;; with lists of symbols interned in a private obarray, e.g.
+;; "LATIN SMALL LETTER A" => '(LATIN SMALL LETTER A).
+
+;;;###autoload
+(defun unicode-data (char)
+  "Return a list of Unicode data for unicode CHAR.
+Each element is a list of a property description and the property value.
+The list is null if CHAR isn't found in `unicodedata-file'."
+  (when unicodedata-file
+    (unless (file-exists-p unicodedata-file)
+      (error "`unicodedata-file' %s not found" unicodedata-file))
+    (save-excursion
+      (set-buffer (find-file-noselect unicodedata-file t t))
+      (goto-char (point-min))
+      (let ((hex (format "%04X" char))
+           found first last)
+       (if (re-search-forward (concat "^" hex) nil t)
+           (setq found t)
+         ;; It's not listed explicitly.  Look for ranges, e.g. CJK
+         ;; ideographs, and check whether it's in one of them.
+         (while (and (re-search-forward "^\\([^;]+\\);[^;]+First>;" nil t)
+                     (>= char (setq first
+                                    (string-to-number (match-string 1) 16)))
+                     (progn
+                       (forward-line 1)
+                       (looking-at "^\\([^;]+\\);[^;]+Last>;")
+                       (> char
+                          (setq last
+                                (string-to-number (match-string 1) 16))))))
+         (if (and (>= char first)
+                  (<= char last))
+             (setq found t)))
+       (if found
+           (let ((fields (mapcar (lambda (elt)
+                                   (if (> (length elt) 0)
+                                       elt))
+                                 (cdr (split-string
+                                       (buffer-substring
+                                        (line-beginning-position)
+                                        (line-end-position))
+                                       ";")))))
+             ;; The length depends on whether the last field was empty.
+             (unless (or (= 13 (length fields))
+                         (= 14 (length fields)))
+               (error "Invalid contents in %s" unicodedata-file))
+             ;; The field names and values lists are slightly
+             ;; modified from Mule-UCS unidata.el.
+             (list
+              (list "Name" (let ((name (nth 0 fields)))
+                             ;; Check for <..., First>, <..., Last>
+                             (if (string-match "\\`\\(<[^,]+\\)," name)
+                                 (concat (match-string 1 name) ">")
+                               name)))
+              (list "Category"
+                    (cdr (assoc
+                          (nth 1 fields)
+                          '(("Lu" . "uppercase letter")
+                            ("Ll" . "lowercase letter")
+                            ("Lt" . "titlecase letter")
+                            ("Mn" . "non-spacing mark")
+                            ("Mc" . "spacing-combining mark")
+                            ("Me" . "enclosing mark")
+                            ("Nd" . "decimal digit")
+                            ("Nl" . "letter number")
+                            ("No" . "other number")
+                            ("Zs" . "space separator")
+                            ("Zl" . "line separator")
+                            ("Zp" . "paragraph separator")
+                            ("Cc" . "other control")
+                            ("Cf" . "other format")
+                            ("Cs" . "surrogate")
+                            ("Co" . "private use")
+                            ("Cn" . "not assigned")
+                            ("Lm" . "modifier letter")
+                            ("Lo" . "other letter")
+                            ("Pc" . "connector punctuation")
+                            ("Pd" . "dash punctuation")
+                            ("Ps" . "open punctuation")
+                            ("Pe" . "close punctuation")
+                            ("Pi" . "initial-quotation punctuation")
+                            ("Pf" . "final-quotation punctuation")
+                            ("Po" . "other punctuation")
+                            ("Sm" . "math symbol")
+                            ("Sc" . "currency symbol")
+                            ("Sk" . "modifier symbol")
+                            ("So" . "other symbol")))))
+              (list "Combining class"
+                    (cdr (assoc
+                          (string-to-number (nth 2 fields))
+                          '((0 . "Spacing")
+                            (1 . "Overlays and interior")
+                            (7 . "Nuktas") 
+                            (8 . "Hiragana/Katakana voicing marks")
+                            (9 . "Viramas")
+                            (10 . "Start of fixed position classes")
+                            (199 . "End of fixed position classes")
+                            (200 . "Below left attached")
+                            (202 . "Below attached")
+                            (204 . "Below right attached")
+                            (208 . "Left attached (reordrant around \
+single base character)")
+                            (210 . "Right attached")
+                            (212 . "Above left attached")
+                            (214 . "Above attached")
+                            (216 . "Above right attached")
+                            (218 . "Below left")
+                            (220 . "Below")
+                            (222 . "Below right")
+                            (224 . "Left (reordrant around single base \
+character)")
+                            (226 . "Right")
+                            (228 . "Above left")
+                            (230 . "Above")
+                            (232 . "Above right")
+                            (233 . "Double below")
+                            (234 . "Double above")
+                            (240 . "Below (iota subscript)")))))
+              (list "Bidi category"
+                    (cdr (assoc
+                          (nth 3 fields)
+                          '(("L" . "Left-to-Right")
+                            ("LRE" . "Left-to-Right Embedding")
+                            ("LRO" . "Left-to-Right Override")
+                            ("R" . "Right-to-Left")
+                            ("AL" . "Right-to-Left Arabic")
+                            ("RLE" . "Right-to-Left Embedding")
+                            ("RLO" . "Right-to-Left Override")
+                            ("PDF" . "Pop Directional Format")
+                            ("EN" . "European Number")
+                            ("ES" . "European Number Separator")
+                            ("ET" . "European Number Terminator")
+                            ("AN" . "Arabic Number")
+                            ("CS" . "Common Number Separator")
+                            ("NSM" . "Non-Spacing Mark")
+                            ("BN" . "Boundary Neutral")
+                            ("B" . "Paragraph Separator")
+                            ("S" . "Segment Separator")
+                            ("WS" . "Whitespace")
+                            ("ON" . "Other Neutrals")))))
+              (list "Decomposition"
+                    (if (nth 4 fields)
+                        (let* ((parts (split-string (nth 4 fields)))
+                               (info (car parts)))
+                          (if (string-match "\\`<\\(.+\\)>\\'" info)
+                              (setq info (match-string 1 info))
+                            (setq info nil))
+                          (if info (setq parts (cdr parts)))
+                          (setq parts (mapconcat
+                                       (lambda (arg)
+                                         (string (string-to-number arg 16)))
+                                       parts " "))
+                          (concat info parts))))
+              (list "Decimal digit value"
+                    (nth 5 fields))
+              (list "Digit value"
+                    (nth 6 fields))
+              (list "Numeric value"
+                    (nth 7 fields))
+              (list "Mirrored"
+                    (if (equal "Y" (nth 8 fields))
+                        "yes"))
+              (list "Old name" (nth 9 fields))
+              (list "ISO 10646 comment" (nth 10 fields))
+              (list "Uppercase" (and (nth 11 fields)
+                                     (string (string-to-number
+                                              (nth 11 fields) 16))))
+              (list "Lowercase" (and (nth 12 fields)
+                                     (string (string-to-number
+                                              (nth 12 fields) 16))))
+              (list "Titlecase" (and (nth 13 fields)
+                                     (string (string-to-number
+                                              (nth 13 fields) 16)))))))))))
+
 (provide 'mule-diag)
 
 ;;; arch-tag: cd3b607c-2893-45a0-a4fa-a6535754dbee
index 4cb0ebe9de473dafc00475a55d8609d8b2334886..7e22eabb67df3685665cb23a0767000db730bfe1 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: mule, multilingual
 
@@ -185,18 +188,18 @@ defaults to \"...\"."
 ;;             (("foobarbaz" 6 nil nil "...") . "foo...")
 ;;             (("foobarbaz" 7 2 nil "...") . "ob...")
 ;;             (("foobarbaz" 9 3 nil "...") . "barbaz")
-;;             (("\e$B$3\e(Bh\e$B$s\e(Be\e$B$K\e(Bl\e$B$A\e(Bl\e$B$O\e(Bo" 15 1 ?  t) . " h\e$B$s\e(Be\e$B$K\e(Bl\e$B$A\e(Bl\e$B$O\e(Bo")
-;;             (("\e$B$3\e(Bh\e$B$s\e(Be\e$B$K\e(Bl\e$B$A\e(Bl\e$B$O\e(Bo" 14 1 ?  t) . " h\e$B$s\e(Be\e$B$K\e(Bl\e$B$A\e(B...")
-;;             (("x" 3 nil nil "\e$(0GnM$\e(B") . "x")
-;;             (("\e$AVP\e(B" 2 nil nil "\e$(0GnM$\e(B") . "\e$AVP\e(B")
-;;             (("\e$AVP\e(B" 1 nil ?x "\e$(0GnM$\e(B") . "x") ;; XEmacs error
-;;             (("\e$AVPND\e(B" 3 nil ?  "\e$(0GnM$\e(B") . "\e$AVP\e(B ") ;; XEmacs error
-;;             (("foobarbaz" 4 nil nil  "\e$(0GnM$\e(B") . "\e$(0GnM$\e(B")
-;;             (("foobarbaz" 5 nil nil  "\e$(0GnM$\e(B") . "f\e$(0GnM$\e(B")
-;;             (("foobarbaz" 6 nil nil  "\e$(0GnM$\e(B") . "fo\e$(0GnM$\e(B")
-;;             (("foobarbaz" 8 3 nil "\e$(0GnM$\e(B") . "b\e$(0GnM$\e(B")
-;;             (("\e$B$3\e(Bh\e$B$s\e(Be\e$B$K\e(Bl\e$B$A\e(Bl\e$B$O\e(Bo" 14 4 ?x "\e$BF|K\8l\e(B") . "xe\e$B$KF|K\8l\e(B")
-;;             (("\e$B$3\e(Bh\e$B$s\e(Be\e$B$K\e(Bl\e$B$A\e(Bl\e$B$O\e(Bo" 13 4 ?x "\e$BF|K\8l\e(B") . "xex\e$BF|K\8l\e(B")
+;;             (("\e$A$3\e(Bh\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo" 15 1 ?  t) . " h\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo")
+;;             (("\e$A$3\e(Bh\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo" 14 1 ?  t) . " h\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(B...")
+;;             (("x" 3 nil nil "\e$(Gemk#\e(B") . "x")
+;;             (("\e$AVP\e(B" 2 nil nil "\e$(Gemk#\e(B") . "\e$AVP\e(B")
+;;             (("\e$AVP\e(B" 1 nil ?x "\e$(Gemk#\e(B") . "x") ;; XEmacs error
+;;             (("\e$AVPND\e(B" 3 nil ?  "\e$(Gemk#\e(B") . "\e$AVP\e(B ") ;; XEmacs error
+;;             (("foobarbaz" 4 nil nil  "\e$(Gemk#\e(B") . "\e$(Gemk#\e(B")
+;;             (("foobarbaz" 5 nil nil  "\e$(Gemk#\e(B") . "f\e$(Gemk#\e(B")
+;;             (("foobarbaz" 6 nil nil  "\e$(Gemk#\e(B") . "fo\e$(Gemk#\e(B")
+;;             (("foobarbaz" 8 3 nil "\e$(Gemk#\e(B") . "b\e$(Gemk#\e(B")
+;;             (("\e$A$3\e(Bh\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo" 14 4 ?x "\e$AHU1>\e$(Gk#\e(B") . "xe\e$A$KHU1>\e$(Gk#\e(B")
+;;             (("\e$A$3\e(Bh\e$A$s\e(Be\e$A$K\e(Bl\e$A$A\e(Bl\e$A$O\e(Bo" 13 4 ?x "\e$AHU1>\e$(Gk#\e(B") . "xex\e$AHU1>\e$(Gk#\e(B")
 ;;             ))
 ;;   (let (ret)
 ;;     (condition-case e
@@ -294,56 +297,57 @@ Optional 3rd argument NIL-FOR-TOO-LONG non-nil means return nil
 ;;;###autoload
 (defun coding-system-post-read-conversion (coding-system)
   "Return the value of CODING-SYSTEM's `post-read-conversion' property."
-  (coding-system-get coding-system 'post-read-conversion))
+  (coding-system-get coding-system :post-read-conversion))
 
 ;;;###autoload
 (defun coding-system-pre-write-conversion (coding-system)
   "Return the value of CODING-SYSTEM's `pre-write-conversion' property."
-  (coding-system-get coding-system 'pre-write-conversion))
+  (coding-system-get coding-system :pre-write-conversion))
 
 ;;;###autoload
 (defun coding-system-translation-table-for-decode (coding-system)
-  "Return the value of CODING-SYSTEM's `translation-table-for-decode' property."
-  (coding-system-get coding-system 'translation-table-for-decode))
+  "Return the value of CODING-SYSTEM's `decode-translation-table' property."
+  (coding-system-get coding-system :decode-translation-table))
 
 ;;;###autoload
 (defun coding-system-translation-table-for-encode (coding-system)
-  "Return the value of CODING-SYSTEM's `translation-table-for-encode' property."
-  (coding-system-get coding-system 'translation-table-for-encode))
+  "Return the value of CODING-SYSTEM's `encode-translation-table' property."
+  (coding-system-get coding-system :encode-translation-table))
+
+;;;###autoload
+(defmacro with-coding-priority (coding-systems &rest body)
+  "Execute BODY like `progn' with CODING-SYSTEMS at the front of priority list.
+CODING-SYSTEMS is a list of coding systems.  See
+`set-coding-priority'.  This affects the implicit sorting of lists of
+coding sysems returned by operations such as `find-coding-systems-region'."
+  (let ((current (make-symbol "current")))
+  `(let ((,current (coding-system-priority-list)))
+     (apply #'set-coding-system-priority ,coding-systems)
+     (unwind-protect
+        (progn ,@body)
+       (apply #'set-coding-system-priority ,current)))))
+(put 'with-coding-priority 'lisp-indent-function 1)
+(put 'with-coding-priority 'edebug-form-spec t)
 
 ;;;###autoload
 (defmacro detect-coding-with-priority (from to priority-list)
   "Detect a coding system of the text between FROM and TO with PRIORITY-LIST.
 PRIORITY-LIST is an alist of coding categories vs the corresponding
 coding systems ordered by priority."
-  `(unwind-protect
-       (let* ((prio-list ,priority-list)
-             (coding-category-list coding-category-list)
-             ,@(mapcar (function (lambda (x) (list x x)))
-                       coding-category-list))
-        (mapc (function (lambda (x) (set (car x) (cdr x))))
-              prio-list)
-        (set-coding-priority (mapcar #'car prio-list))
-        ;; Changing the binding of a coding category requires this call.
-        (update-coding-systems-internal)
-        (detect-coding-region ,from ,to))
-     ;; We must restore the internal database.
-     (set-coding-priority coding-category-list)
-     (update-coding-systems-internal)))
+  `(with-coding-priority (mapcar #'cdr ,priority-list)
+     (detect-coding-region ,from ,to)))
+(make-obsolete 'detect-coding-with-priority
+              "Use with-coding-priority and detect-coding-region" "23.1")
 
 ;;;###autoload
 (defun detect-coding-with-language-environment (from to lang-env)
-  "Detect a coding system of the text between FROM and TO with LANG-ENV.
+  "Detect a coding system for the text between FROM and TO with LANG-ENV.
 The detection takes into account the coding system priorities for the
 language environment LANG-ENV."
   (let ((coding-priority (get-language-info lang-env 'coding-priority)))
     (if coding-priority
-       (detect-coding-with-priority
-        from to
-        (mapcar (function (lambda (x)
-                            (cons (coding-system-get x 'coding-category) x)))
-                coding-priority))
-      (detect-coding-region from to))))
+       (with-coding-priority coding-priority
+          (detect-coding-region from to)))))
 
 ;;;###autoload
 (defun char-displayable-p (char)
@@ -364,14 +368,35 @@ basis, this may not be accurate."
         ;; currently selected frame.
         (car (internal-char-font nil char)))
        (t
-        (let ((coding (terminal-coding-system)))
+        (let ((coding 'iso-2022-7bit))
           (if coding
-              (let ((safe-chars (coding-system-get coding 'safe-chars))
-                    (safe-charsets (coding-system-get coding 'safe-charsets)))
-                (or (and safe-chars
-                         (aref safe-chars char))
-                    (and safe-charsets
-                         (memq (char-charset char) safe-charsets)))))))))
+              (let ((cs-list (coding-system-get coding :charset-list)))
+                (cond
+                 ((listp cs-list)
+                  (catch 'tag
+                    (mapc #'(lambda (charset) 
+                              (if (encode-char char charset)
+                                  (throw 'tag charset)))
+                          cs-list)
+                    nil))
+                 ((eq cs-list 'iso-2022)
+                  (catch 'tag2
+                    (mapc #'(lambda (charset)
+                              (if (and (plist-get (charset-plist charset)
+                                                  :iso-final-char)
+                                       (encode-char char charset))
+                                  (throw 'tag2 charset)))
+                          charset-list)
+                    nil))
+                 ((eq cs-list 'emacs-mule)
+                  (catch 'tag3
+                    (mapc #'(lambda (charset)
+                              (if (and (plist-get (charset-plist charset) 
+                                                  :emacs-mule-id)
+                                       (encode-char char charset))
+                                  (throw 'tag3 charset)))
+                          charset-list)
+                    nil)))))))))
 \f
 (provide 'mule-util)
 
index b19797f267e770e335a73e980d96c008c2a42d8a..6b90aa8f84030b548fab136fb21d97f9410682bf 100644 (file)
@@ -1,4 +1,4 @@
-;;; mule.el --- basic commands for mulitilingual environment
+;;; mule.el --- basic commands for multilingual environment
 
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   Free Software Foundation, Inc.
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: mule, multilingual, character set, coding system
 
 
 ;;; Code:
 
-(defconst mule-version "5.0 (SAKAKI)" "\
+(defconst mule-version "6.0 (HANACHIRUSATO)" "\
 Version number and name of this version of MULE (multilingual environment).")
 
-(defconst mule-version-date "1999.12.7" "\
+(defconst mule-version-date "2003.9.1" "\
 Distribution date of this version of MULE (multilingual environment).")
 
+\f
+;;; CHARSET
+
+;; Backward compatibility code for handling emacs-mule charsets.
+(defvar private-char-area-1-min #xF0000)
+(defvar private-char-area-1-max #xFFFFE)
+(defvar private-char-area-2-min #x100000)
+(defvar private-char-area-2-max #x10FFFE)
+
+;; Table of emacs-mule charsets indexed by their emacs-mule ID.
+(defvar emacs-mule-charset-table (make-vector 256 nil))
+(aset emacs-mule-charset-table 0 'ascii)
+
+;; Convert the argument of old-style calll of define-charset to a
+;; property list used by the new-style.
+;; INFO-VECTOR is a vector of the format:
+;;   [DIMENSION CHARS WIDTH DIRECTION ISO-FINAL-CHAR ISO-GRAPHIC-PLANE
+;;    SHORT-NAME LONG-NAME DESCRIPTION]
+
+(defun convert-define-charset-argument (emacs-mule-id info-vector)
+  (let* ((dim (aref info-vector 0))
+        (chars (aref info-vector 1))
+        (total (if (= dim 1) chars (* chars chars)))
+        (code-space (if (= dim 1) (if (= chars 96) [32 127] [33 126])
+                      (if (= chars 96) [32 127 32 127] [33 126 33 126])))
+        code-offset)
+    (if (integerp emacs-mule-id)
+       (or (= emacs-mule-id 0)
+           (and (>= emacs-mule-id 129) (< emacs-mule-id 256))
+           (error "Invalid CHARSET-ID: %d" emacs-mule-id))
+      (let (from-id to-id)
+       (if (= dim 1) (setq from-id 160 to-id 224)
+         (setq from-id 224 to-id 255))
+       (while (and (< from-id to-id)
+                   (not (aref emacs-mule-charset-table from-id)))
+         (setq from-id (1+ from-id)))
+       (if (= from-id to-id)
+           (error "No more room for the new Emacs-mule charset"))
+       (setq emacs-mule-id from-id)))
+    (if (> (- private-char-area-1-max private-char-area-1-min) total)
+       (setq code-offset private-char-area-1-min
+             private-char-area-1-min (+ private-char-area-1-min total))
+      (if (> (- private-char-area-2-max private-char-area-2-min) total)
+         (setq code-offset private-char-area-2-min
+               private-char-area-2-min (+ private-char-area-2-min total))
+       (error "No more space for a new charset.")))
+    (list :dimension dim
+         :code-space code-space
+         :iso-final-char (aref info-vector 4)
+         :code-offset code-offset
+         :emacs-mule-id emacs-mule-id)))
+
+(defun define-charset (name docstring &rest props)
+  "Define NAME (symbol) as a charset with DOCSTRING.
+The remaining arguments must come in pairs ATTRIBUTE VALUE.  ATTRIBUTE
+may be any symbol.  The following have special meanings, and one of
+`:code-offset', `:map', `:subset', `:superset' must be specified.
+
+`:short-name'
+
+VALUE must be a short string to identify the charset.  If omitted,
+NAME is used.
+
+`:long-name'
+
+VALUE must be a string longer than `:short-name' to identify the
+charset.  If omitted, the value of the `:short-name' attribute is used.
+
+`:dimension'
+
+VALUE must be an integer 0, 1, 2, or 3, specifying the dimension of
+code-points of the charsets.  If omitted, it is calculated from the
+value of the `:code-space' attribute.
+
+`:code-space'
+
+VALUE must be a vector of length at most 8 specifying the byte code
+range of each dimension in this format:
+       [ MIN-1 MAX-1 MIN-2 MAX-2 ... ]
+where MIN-N is the minimum byte value of Nth dimension of code-point,
+MAX-N is the maximum byte value of that.
+
+`:min-code'
+
+VALUE must be an integer specifying the mininum code point of the
+charset.  If omitted, it is calculated from `:code-space'.  VALUE may
+be a cons (HIGH . LOW), where HIGH is the most significant 16 bits of
+the code point and LOW is the least significant 16 bits.
+
+`:max-code'
+
+VALUE must be an integer specifying the maxinum code point of the
+charset.  If omitted, it is calculated from `:code-space'.  VALUE may
+be a cons (HIGH . LOW), where HIGH is the most significant 16 bits of
+the code point and LOW is the least significant 16 bits.
+
+`:iso-final-char'
+
+VALUE must be a character in the range 32 to 127 (inclusive)
+specifying the final char of the charset for ISO-2022 encoding.  If
+omitted, the charset can't be encoded by ISO-2022 based
+coding-systems.
+
+`:iso-revision-number'
+
+VALUE must be an integer in the range 0..63, specifying the revision
+number of the charset for ISO-2022 encoding.
+
+`:emacs-mule-id'
+
+VALUE must be an integer of 0, 129..255.  If omitted, the charset
+can't be encoded by coding-systems of type `emacs-mule'.
+
+`:ascii-compatible-p'
+
+VALUE must be nil or t (default nil).  If VALUE is t, the charset is
+compatible with ASCII, i.e. the first 128 code points map to ASCII.
+
+`:supplementary-p'
+
+VALUE must be nil or t.  If the VALUE is t, the charset is
+supplementary, which means it is used only as a parent or a
+subset of some other charset, or it is provided just for backward
+compatibility.
+
+`:invalid-code'
+
+VALUE must be a nonnegative integer that can be used as an invalid
+code point of the charset.  If the minimum code is 0 and the maximum
+code is greater than Emacs' maximum integer value, `:invalid-code'
+should not be omitted.
+
+`:code-offset'
+
+VALUE must be an integer added to the index number of a character to
+get the corresponding character code.
+
+`:map'
+
+VALUE must be vector or string.
+
+If it is a vector, the format is [ CODE-1 CHAR-1 CODE-2 CHAR-2 ... ],
+where CODE-n is a code-point of the charset, and CHAR-n is the
+corresponding character code.
+
+If it is a string, it is a name of file that contains the above
+information.   Each line of the file must be this format:
+       0xXXX 0xYYY
+where XXX is a hexadecimal representation of CODE-n and YYY is a
+hexadecimal representation of CHAR-n.  A line starting with `#' is a
+comment line.
+
+`:subset'
+
+VALUE must be a list:
+       ( PARENT MIN-CODE MAX-CODE OFFSET )
+PARENT is a parent charset.  MIN-CODE and MAX-CODE specify the range
+of characters inherited from the parent.  OFFSET is an integer value
+to add to a code point of the parent charset to get the corresponding
+code point of this charset.
+
+`:superset'
+
+VALUE must be a list of parent charsets.  The charset inherits
+characters from them.  Each element of the list may be a cons (PARENT
+. OFFSET), where PARENT is a parent charset, and OFFSET is an offset
+value to add to a code point of PARENT to get the corresponding code
+point of this charset.
+
+`:unify-map'
+
+VALUE must be vector or string.
+
+If it is a vector, the format is [ CODE-1 CHAR-1 CODE-2 CHAR-2 ... ],
+where CODE-n is a code-point of the charset, and CHAR-n is the
+corresponding Unicode character code.
+
+If it is a string, it is a name of file that contains the above
+information.  The file format is the same as what described for `:map'
+attribute."
+  (when (vectorp (car props))
+    ;; Old style code:
+    ;;   (define-charset CHARSET-ID CHARSET-SYMBOL INFO-VECTOR)
+    ;; Convert the argument to make it fit with the current style.
+    (let ((vec (car props)))
+      (setq props (convert-define-charset-argument name vec)
+           name docstring
+           docstring (aref vec 8))))
+  (let ((attrs (mapcar 'list '(:dimension
+                              :code-space
+                              :min-code
+                              :max-code
+                              :iso-final-char
+                              :iso-revision-number
+                              :emacs-mule-id
+                              :ascii-compatible-p
+                              :supplementary-p
+                              :invalid-code
+                              :code-offset
+                              :map
+                              :subset
+                              :superset
+                              :unify-map
+                              :plist))))
+
+    ;; If :dimension is omitted, get the dimension from :code-space.
+    (let ((dimension (plist-get props :dimension)))
+      (or dimension
+         (let ((code-space (plist-get props :code-space)))
+           (setq dimension (if code-space (/ (length code-space) 2) 4))
+           (setq props (plist-put props :dimension dimension)))))
+
+    (let ((code-space (plist-get props :code-space)))
+      (or code-space
+         (let ((dimension (plist-get props :dimension)))
+           (setq code-space (make-vector 8 0))
+           (dotimes (i dimension)
+             (aset code-space (1+ (* i 2)) #xFF))
+           (setq props (plist-put props :code-space code-space)))))
+
+    ;; If :emacs-mule-id is specified, update emacs-mule-charset-table.
+    (let ((emacs-mule-id (plist-get props :emacs-mule-id)))
+      (if (integerp emacs-mule-id)
+         (aset emacs-mule-charset-table emacs-mule-id name)))
+
+    (dolist (slot attrs)
+      (setcdr slot (plist-get props (car slot))))
+
+    ;; Make sure that the value of :code-space is a vector of 8
+    ;; elements.
+    (let* ((slot (assq :code-space attrs))
+          (val (cdr slot))
+          (len (length val)))
+      (if (< len 8)
+         (setcdr slot
+                 (vconcat val (make-vector (- 8 len) 0)))))
+
+    ;; Add :name and :docstring properties to PROPS.
+    (setq props
+         (cons :name (cons name (cons :docstring (cons docstring props)))))
+    (or (plist-get props :short-name)
+       (plist-put props :short-name (symbol-name name)))
+    (or (plist-get props :long-name)
+       (plist-put props :long-name (plist-get props :short-name)))
+    ;; We can probably get a worthwhile amount in purespace.
+    (setq props
+         (mapcar (lambda (elt)
+                   (if (stringp elt)
+                       (purecopy elt)
+                     elt))
+                 props))
+    (setcdr (assq :plist attrs) props)
+
+    (apply 'define-charset-internal name (mapcar 'cdr attrs))))
+
+
 (defun load-with-code-conversion (fullname file &optional noerror nomessage)
   "Execute a file of Lisp code named FILE whose absolute name is FULLNAME.
 The file contents are decoded before evaluation if necessary.
@@ -81,8 +340,8 @@ Return t if file exists."
              ;; Otherwise, eval-buffer might try to interpret random
              ;; binary junk as multibyte characters.
              (if (and enable-multibyte-characters
-                      (or (eq (coding-system-type last-coding-system-used) 5)
-                          (eq last-coding-system-used 'no-conversion)))
+                      (or (eq (coding-system-type last-coding-system-used)
+                              'raw-text)))
                  (set-buffer-multibyte nil))
              ;; Make `kill-buffer' quiet.
              (set-buffer-modified-p nil))
@@ -107,290 +366,131 @@ Return t if file exists."
          (message "Loading %s...done" file)))
       t)))
 
-;; API (Application Program Interface) for charsets.
-
-(defsubst charset-quoted-standard-p (obj)
-  "Return t if OBJ is a quoted symbol, and is the name of a standard charset."
-  (and (listp obj) (eq (car obj) 'quote)
-       (symbolp (car-safe (cdr obj)))
-       (let ((vector (get (car-safe (cdr obj)) 'charset)))
-        (and (vectorp vector)
-             (< (aref vector 0) 160)))))
-
-(defsubst charsetp (object)
-  "Return t if OBJECT is a charset."
-  (and (symbolp object) (vectorp (get object 'charset))))
-
-(defsubst charset-info (charset)
+(defun charset-info (charset)
   "Return a vector of information of CHARSET.
+This function is provided for backward compatibility.
+
 The elements of the vector are:
        CHARSET-ID, BYTES, DIMENSION, CHARS, WIDTH, DIRECTION,
        LEADING-CODE-BASE, LEADING-CODE-EXT,
        ISO-FINAL-CHAR, ISO-GRAPHIC-PLANE,
        REVERSE-CHARSET, SHORT-NAME, LONG-NAME, DESCRIPTION,
-       PLIST,
+       PLIST.
 where
-CHARSET-ID (integer) is the identification number of the charset.
-BYTES (integer) is the length of multi-byte form of a character in
-  the charset: one of 1, 2, 3, and 4.
-DIMENSION (integer) is the number of bytes to represent a character of
-the charset: 1 or 2.
-CHARS (integer) is the number of characters in a dimension: 94 or 96.
-WIDTH (integer) is the number of columns a character in the charset
-  occupies on the screen: one of 0, 1, and 2.
-DIRECTION (integer) is the rendering direction of characters in the
-  charset when rendering.  If 0, render from left to right, else
-  render from right to left.
-LEADING-CODE-BASE (integer) is the base leading-code for the
-  charset.
-LEADING-CODE-EXT (integer) is the extended leading-code for the
-  charset.  All charsets of less than 0xA0 has the value 0.
+CHARSET-ID is always 0.
+BYTES is always 0.
+DIMENSION is the number of bytes of a code-point of the charset:
+  1, 2, 3, or 4.
+CHARS is the number of characters in a dimension:
+  94, 96, 128, or 256.
+WIDTH is always 0.
+DIRECTION is always 0.
+LEADING-CODE-BASE is always 0.
+LEADING-CODE-EXT is always 0.
 ISO-FINAL-CHAR (character) is the final character of the
   corresponding ISO 2022 charset.  If the charset is not assigned
   any final character, the value is -1.
-ISO-GRAPHIC-PLANE (integer) is the graphic plane to be invoked
-  while encoding to variants of ISO 2022 coding system, one of the
-  following: 0/graphic-plane-left(GL), 1/graphic-plane-right(GR).
-  If the charset is not assigned any final character, the value is -1.
-REVERSE-CHARSET (integer) is the charset which differs only in
-  LEFT-TO-RIGHT value from the charset.  If there's no such a
-  charset, the value is -1.
+ISO-GRAPHIC-PLANE is always 0.
+REVERSE-CHARSET is always -1.
 SHORT-NAME (string) is the short name to refer to the charset.
 LONG-NAME (string) is the long name to refer to the charset
 DESCRIPTION (string) is the description string of the charset.
 PLIST (property list) may contain any type of information a user
   want to put and get by functions `put-charset-property' and
   `get-charset-property' respectively."
-  (get charset 'charset))
+  (vector 0
+         0
+         (charset-dimension charset)
+         (charset-chars charset)
+         0
+         0
+         0
+         0
+         (charset-iso-final-char charset)
+         0
+         -1
+         (get-charset-property charset :short-name)
+         (get-charset-property charset :short-name)
+         (charset-description charset)
+         (charset-plist charset)))
 
 ;; It is better not to use backquote in this file,
 ;; because that makes a bootstrapping problem
 ;; if you need to recompile all the Lisp files using interpreted code.
 
-(defmacro charset-id (charset)
-  "Return charset identification number of CHARSET."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 0)
-    (list 'aref (list 'charset-info charset) 0)))
+(defun charset-id (charset)
+  "Always return 0.  This is provided for backward compatibility."
+  0)
 
 (defmacro charset-bytes (charset)
-  "Return bytes of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 1)
-    (list 'aref (list 'charset-info charset) 1)))
-
-(defmacro charset-dimension (charset)
-  "Return dimension of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 2)
-    (list 'aref (list 'charset-info charset) 2)))
-
-(defmacro charset-chars (charset)
-  "Return character numbers contained in a dimension of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 3)
-    (list 'aref (list 'charset-info charset) 3)))
-
-(defmacro charset-width (charset)
-  "Return width (how many column occupied on a screen) of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 4)
-    (list 'aref (list 'charset-info charset) 4)))
-
-(defmacro charset-direction (charset)
-  "Return direction of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 5)
-    (list 'aref (list 'charset-info charset) 5)))
-
-(defmacro charset-iso-final-char (charset)
-  "Return final char of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 8)
-    (list 'aref (list 'charset-info charset) 8)))
-
-(defmacro charset-iso-graphic-plane (charset)
-  "Return graphic plane of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 9)
-    (list 'aref (list 'charset-info charset) 9)))
-
-(defmacro charset-reverse-charset (charset)
-  "Return reverse charset of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 10)
-    (list 'aref (list 'charset-info charset) 10)))
+  "Always return 0.  This is provided for backward compatibility."
+  0)
+
+(defun get-charset-property (charset propname)
+  "Return the value of CHARSET's PROPNAME property.
+This is the last value stored with
+ (put-charset-property CHARSET PROPNAME VALUE)."
+  (plist-get (charset-plist charset) propname))
+
+(defun put-charset-property (charset propname value)
+  "Set CHARSETS's PROPNAME property to value VALUE.
+It can be retrieved with `(get-charset-property CHARSET PROPNAME)'."
+  (set-charset-plist charset
+                    (plist-put (charset-plist charset) propname value)))
+
+(defun charset-description (charset)
+  "Return description string of CHARSET."
+  (plist-get (charset-plist charset) :docstring))
+
+(defun charset-dimension (charset)
+  "Return dimension of CHARSET."
+  (plist-get (charset-plist charset) :dimension))
+
+(defun charset-chars (charset &optional dimension)
+  "Return number of characters contained in DIMENSION of CHARSET.
+DIMENSION defaults to the first dimension."
+  (unless dimension (setq dimension 1))
+  (let ((code-space (plist-get (charset-plist charset) :code-space)))
+    (1+ (- (aref code-space (1- (* 2 dimension)))
+          (aref code-space (- (* 2 dimension) 2))))))
+
+(defun charset-iso-final-char (charset)
+  "Return ISO-2022 final character of CHARSET.
+Return -1 if charset isn't an ISO 2022 one."
+  (or (plist-get (charset-plist charset) :iso-final-char)
+      -1))
 
 (defmacro charset-short-name (charset)
-  "Return short name of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 11)
-    (list 'aref (list 'charset-info charset) 11)))
+  "Return short name of CHARSET."
+  (plist-get (charset-plist charset) :short-name))
 
 (defmacro charset-long-name (charset)
-  "Return long name of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 12)
-    (list 'aref (list 'charset-info charset) 12)))
-
-(defmacro charset-description (charset)
-  "Return description of CHARSET.
-See the function `charset-info' for more detail."
-  (if (charset-quoted-standard-p charset)
-      (aref (charset-info (nth 1 charset)) 13)
-    (list 'aref (list 'charset-info charset) 13)))
-
-(defmacro charset-plist (charset)
-  "Return list charset property of CHARSET.
-See the function `charset-info' for more detail."
-  (list 'aref
-       (if (charset-quoted-standard-p charset)
-           (charset-info (nth 1 charset))
-         (list 'charset-info charset))
-       14))
-
-(defun set-charset-plist (charset plist)
-  "Set CHARSET's property list to PLIST, and return PLIST."
-  (aset (charset-info  charset) 14 plist))
-
-(defun make-char (charset &optional code1 code2)
-  "Return a character of CHARSET whose position codes are CODE1 and CODE2.
-CODE1 and CODE2 are optional, but if you don't supply
-sufficient position codes, return a generic character which stands for
-all characters or group of characters in the character set.
-A generic character can be used to index a char table (e.g. `syntax-table').
-
-Such character sets as ascii, eight-bit-control, and eight-bit-graphic
-don't have corresponding generic characters.  If CHARSET is one of
-them and you don't supply CODE1, return the character of the smallest
-code in CHARSET.
-
-If CODE1 or CODE2 are invalid (out of range), this function signals an
-error.  However, the eighth bit of both CODE1 and CODE2 is zeroed
-before they are used to index CHARSET.  Thus you may use, say, the
-actual ISO 8859 character code rather than subtracting 128, as you
-would need to index the corresponding Emacs charset."
-  (make-char-internal (charset-id charset) code1 code2))
-
-(put 'make-char 'byte-compile
-     (lambda (form)
-       (let ((charset (nth 1 form)))
-         (byte-compile-normal-call
-          (cons 'make-char-internal
-                (cons (if (charset-quoted-standard-p charset)
-                          (charset-id (nth 1 charset))
-                        (list 'charset-id charset))
-                      (nthcdr 2 form)))))))
+  "Return long name of CHARSET."
+  (plist-get (charset-plist charset) :long-name))
 
 (defun charset-list ()
-  "Return list of charsets ever defined.
+  "Return list of all charsets ever defined.
 
 This function is provided for backward compatibility.
 Now we have the variable `charset-list'."
   charset-list)
+(make-obsolete 'charset-list "Use variable `charset-list'" "23.1")
 
-(defsubst generic-char-p (char)
-  "Return t if and only if CHAR is a generic character.
-See also the documentation of `make-char'."
-  (and (>= char 0400)
-       (let ((l (split-char char)))
-        (and (or (= (nth 1 l) 0) (eq (nth 2 l) 0))
-             (not (eq (car l) 'composition))))))
-
-(defun decode-char (ccs code-point &optional restriction)
-  "Return character specified by coded character set CCS and CODE-POINT in it.
-Return nil if such a character is not supported.
-Currently the only supported coded character set is `ucs' (ISO/IEC
-10646: Universal Multi-Octet Coded Character Set), and the result is
-translated through the translation-table named
-`utf-translation-table-for-decode', or through the
-translation-hash-table named `utf-subst-table-for-decode'
-\(if `utf-translate-cjk-mode' is non-nil).
-
-Optional argument RESTRICTION specifies a way to map the pair of CCS
-and CODE-POINT to a character.  Currently not supported and just ignored."
-  (cond
-   ((eq ccs 'ucs)
-    (or (and utf-translate-cjk-mode
-            (utf-lookup-subst-table-for-decode code-point))
-       (let ((c (cond
-                 ((< code-point 160)
-                  code-point)
-                 ((< code-point 256)
-                  (make-char 'latin-iso8859-1 code-point))
-                 ((< code-point #x2500)
-                  (setq code-point (- code-point #x0100))
-                  (make-char 'mule-unicode-0100-24ff
-                             (+ (/ code-point 96) 32) (+ (% code-point 96) 32)))
-                 ((< code-point #x3400)
-                  (setq code-point (- code-point #x2500))
-                  (make-char 'mule-unicode-2500-33ff
-                             (+ (/ code-point 96) 32) (+ (% code-point 96) 32)))
-                 ((and (>= code-point #xe000) (< code-point #x10000))
-                  (setq code-point (- code-point #xe000))
-                  (make-char 'mule-unicode-e000-ffff
-                             (+ (/ code-point 96) 32)
-                             (+ (% code-point 96) 32))))))
-         (when c
-           (or (aref (get 'utf-translation-table-for-decode
-                          'translation-table) c)
-               c)))))))
-
-(defun encode-char (char ccs &optional restriction)
-  "Return code-point in coded character set CCS that corresponds to CHAR.
-Return nil if CHAR is not included in CCS.
-Currently the only supported coded character set is `ucs' (ISO/IEC
-10646: Universal Multi-Octet Coded Character Set), and CHAR is first
-translated through the translation-table named
-`utf-translation-table-for-encode', or through the
-translation-hash-table named `utf-subst-table-for-encode' \(if
-`utf-translate-cjk-mode' is non-nil).
-
-CHAR should be in one of these charsets:
-  ascii, latin-iso8859-1, mule-unicode-0100-24ff, mule-unicode-2500-33ff,
-  mule-unicode-e000-ffff, eight-bit-control
-Otherwise, return nil.
-
-Optional argument RESTRICTION specifies a way to map CHAR to a
-code-point in CCS.  Currently not supported and just ignored."
-  (let* ((split (split-char char))
-        (charset (car split))
-        trans)
-    (cond ((eq ccs 'ucs)
-          (or (and utf-translate-cjk-mode
-                   (utf-lookup-subst-table-for-encode char))
-              (let ((table (get 'utf-translation-table-for-encode
-                                'translation-table)))
-                (setq trans (aref table char))
-                (if trans
-                    (setq split (split-char trans)
-                          charset (car split)))
-                (cond ((eq charset 'ascii)
-                       (or trans char))
-                      ((eq charset 'latin-iso8859-1)
-                       (+ (nth 1 split) 128))
-                      ((eq charset 'mule-unicode-0100-24ff)
-                       (+ #x0100 (+ (* (- (nth 1 split) 32) 96)
-                                    (- (nth 2 split) 32))))
-                      ((eq charset 'mule-unicode-2500-33ff)
-                       (+ #x2500 (+ (* (- (nth 1 split) 32) 96)
-                                    (- (nth 2 split) 32))))
-                      ((eq charset 'mule-unicode-e000-ffff)
-                       (+ #xe000 (+ (* (- (nth 1 split) 32) 96)
-                                    (- (nth 2 split) 32))))
-                      ((eq charset 'eight-bit-control)
-                       char))))))))
+\f
+;;; CHARACTER
+(defalias 'char-valid-p 'characterp)
+(make-obsolete 'char-valid-p 'characterp "23.1")
+
+(defun generic-char-p (char)
+  "Always return nil.  This is provided for backward compatibility."
+  nil)
+(make-obsolete 'generic-char-p "Generic characters no longer exist" "23.1")
 
+(defun make-char-internal (charset-id &optional code1 code2)
+  (let ((charset (aref emacs-mule-charset-table charset-id)))
+    (or charset
+       (error "Invalid Emacs-mule charset ID: %d" charset-id))
+    (make-char charset code1 code2)))
 \f
 ;; Save the ASCII case table in case we need it later.  Some locales
 ;; (such as Turkish) modify the case behavior of ASCII characters,
@@ -408,127 +508,365 @@ code-point in CCS.  Currently not supported and just ignored."
 \f
 ;; Coding system stuff
 
-;; Coding system is a symbol that has the property `coding-system'.
-;;
-;; The value of the property `coding-system' is a vector of the
-;; following format:
-;;     [TYPE MNEMONIC DOC-STRING PLIST FLAGS]
-;; We call this vector as coding-spec.  See comments in src/coding.c
-;; for more detail.
-
-(defconst coding-spec-type-idx 0)
-(defconst coding-spec-mnemonic-idx 1)
-(defconst coding-spec-doc-string-idx 2)
-(defconst coding-spec-plist-idx 3)
-(defconst coding-spec-flags-idx 4)
-
-;; PLIST is a property list of a coding system.  To share PLIST among
-;; alias coding systems, a coding system has PLIST in coding-spec
-;; instead of having it in normal property list of Lisp symbol.
-;; Here's a list of coding system properties currently being used.
-;;
-;; o coding-category
-;;
-;; The value is a coding category the coding system belongs to.  The
-;; function `make-coding-system' sets this value automatically
-;; unless its argument PROPERTIES specifies this property.
-;;
-;; o alias-coding-systems
-;;
-;; The value is a list of coding systems of the same alias group.  The
-;; first element is the coding system made at first, which we call as
-;; `base coding system'.  The function `make-coding-system' sets this
-;; value automatically and `define-coding-system-alias' updates it.
-;;
-;; See the documentation of make-coding-system for the meanings of the
-;; following properties.
-;;
-;; o post-read-conversion
-;; o pre-write-conversion
-;; o translation-table-for-decode
-;; o translation-table-for-encode
-;; o safe-chars
-;; o safe-charsets
-;; o mime-charset
-;; o valid-codes (meaningful only for a coding system based on CCL)
-
-
-(defsubst coding-system-spec (coding-system)
-  "Return coding-spec of CODING-SYSTEM."
-  (get (check-coding-system coding-system) 'coding-system))
+;; Coding system is a symbol that has been defined by the function
+;; `define-coding-system'.
 
-(defun coding-system-type (coding-system)
-  "Return the coding type of CODING-SYSTEM.
-A coding type is an integer value indicating the encoding method
-of CODING-SYSTEM.  See the function `make-coding-system' for more detail."
-  (aref (coding-system-spec coding-system) coding-spec-type-idx))
+(defconst coding-system-iso-2022-flags
+  '(long-form
+    ascii-at-eol
+    ascii-at-cntl
+    7-bit
+    locking-shift
+    single-shift
+    designation
+    revision
+    direction
+    init-at-bol
+    designate-at-bol
+    safe
+    latin-extra
+    composition
+    euc-tw-shift
+    use-roman
+    use-oldjis)
+  "List of symbols that control ISO-2022 encoder/decoder.
 
-(defun coding-system-mnemonic (coding-system)
-  "Return the mnemonic character of CODING-SYSTEM.
-The mnemonic character of a coding system is used in mode line
-to indicate the coding system.  If the arg is nil, return ?-."
-  (let ((spec (coding-system-spec coding-system)))
-    (if spec (aref spec coding-spec-mnemonic-idx) ?-)))
+The value of the `:flags' attribute in the argument of the function
+`define-coding-system' must be one of them.
+
+If `long-form' is specified, use a long designation sequence on
+encoding for the charsets `japanese-jisx0208-1978', `chinese-gb2312',
+and `japanese-jisx0208'.  The long designation sequence doesn't
+conform to ISO 2022, but is used by such coding systems as
+`compound-text'.
+
+If `ascii-at-eol' is specified, designate ASCII to g0 at end of line
+on encoding.
+
+If `ascii-at-cntl' is specified, designate ASCII to g0 before control
+codes and SPC on encoding.
+
+If `7-bit' is specified, use 7-bit code only on encoding.
+
+If `locking-shift' is specified, decode locking-shift code correctly
+on decoding, and use locking-shift to invoke a graphic element on
+encoding.
+
+If `single-shift' is specified, decode single-shift code correctly on
+decoding, and use single-shift to invoke a graphic element on encoding.
+
+If `designation' is specified, decode designation code correctly on
+decoding, and use designation to designate a charset to a graphic
+element on encoding.
+
+If `revision' is specified, produce an escape sequence to specify
+revision number of a charset on encoding.  Such an escape sequence is
+always correctly decoded on decoding.
+
+If `direction' is specified, decode ISO6429's code for specifying
+direction correctly, and produce the code on encoding.
+
+If `init-at-bol' is specified, on encoding, it is assumed that
+invocation and designation statuses are reset at each beginning of
+line even if `ascii-at-eol' is not specified; thus no codes for
+resetting them are produced.
+
+If `safe' is specified, on encoding, characters not supported by a
+coding are replaced with `?'.
+
+If `latin-extra' is specified, the code-detection routine assumes that a
+code specified in `latin-extra-code-table' (which see) is valid.
+
+If `composition' is specified, an escape sequence to specify
+composition sequence is correctly decoded on decoding, and is produced
+on encoding.
+
+If `euc-tw-shift' is specified, the EUC-TW specific shifting code is
+correctly decoded on decoding, and is produced on encoding.
+
+If `use-roman' is specified, JIS0201-1976-Roman is designated instead
+of ASCII.
+
+If `use-oldjis' is specified, JIS0208-1976 is designated instead of
+JIS0208-1983.")
+
+(defun define-coding-system (name docstring &rest props)
+  "Define NAME (a symbol) as a coding system with DOCSTRING and attributes.
+The remaining arguments must come in pairs ATTRIBUTE VALUE.  ATTRIBUTE
+may be any symbol.
+
+The following attributes have special meanings.  Those labeled as
+\"(required)\", should not be omitted.
+
+`:mnemonic' (required)
+
+VALUE is a character to display on mode line for the coding system.
+
+`:coding-type' (required)
+
+VALUE must be one of `charset', `utf-8', `utf-16', `iso-2022',
+`emacs-mule', `shift-jis', `ccl', `raw-text', `undecided'.
+
+`:eol-type'
+
+VALUE is the EOL (end-of-line) format of the coding system.  It must be
+one of `unix', `dos', `mac'.  The symbol `unix' means Unix-like EOL
+\(i.e. single LF), `dos' means DOS-like EOL \(i.e. sequence of CR LF),
+and `mac' means MAC-like EOL \(i.e. single CR).  If omitted, on
+decoding by the coding system, Emacs automatically detects the EOL
+format of the source text.
+
+`:charset-list'
+
+VALUE must be a list of charsets supported by the coding system.  On
+encoding by the coding system, if a character belongs to multiple
+charsets in the list, a charset that comes earlier in the list is
+selected.  If `:coding-type' is `iso-2022', VALUE may be `iso-2022',
+which indicates that the coding system supports all ISO-2022 based
+charsets.  If `:coding-type' is `emacs-mule', VALUE may be
+`emacs-mule', which indicates that the coding system supports all
+charsets that have the `:emacs-mule-id' property.
+
+`:ascii-compatible-p'
+
+If VALUE is non-nil, the coding system decodes all 7-bit bytes into
+the corresponding ASCII characters, and encodes all ASCII characters
+back to the corresponding 7-bit bytes.  VALUE defaults to nil.
+
+`:decode-translation-table'
+
+VALUE must be a translation table to use on decoding.
+
+`:encode-translation-table'
+
+VALUE must be a translation table to use on encoding.
+
+`:post-read-conversion'
+
+VALUE must be a function to call after some text is inserted and
+decoded by the coding system itself and before any functions in
+`after-insert-functions' are called.  The arguments to this function
+are the same as those of a function in `after-insert-file-functions',
+i.e. LENGTH of the text to be decoded with point at the head of it,
+and the function should leave point unchanged.
+
+`:pre-write-conversion'
+
+VALUE must be a function to call after all functions in
+`write-region-annotate-functions' and `buffer-file-format' are called,
+and before the text is encoded by the coding system itself.  The
+arguments to this function are the same as those of a function in
+`write-region-annotate-functions'.
+
+`:default-char'
+
+VALUE must be a character.  On encoding, a character not supported by
+the coding system is replaced with VALUE.
+
+`:for-unibyte'
+
+VALUE non-nil means that visiting a file with the coding system
+results in a unibyte buffer.
+
+`:eol-type'
+
+VALUE must be `unix', `dos', `mac'.  The symbol `unix' means Unix-like
+EOL (LF), `dos' means DOS-like EOL (CRLF), and `mac' means MAC-like
+EOL (CR).  If omitted, on decoding, the coding system detects EOL
+format automatically, and on encoding, uses Unix-like EOL.
+
+`:mime-charset'
+
+VALUE must be a symbol whose name is that of a MIME charset converted
+to lower case.
+
+`:mime-text-unsuitable'
+
+VALUE non-nil means the `:mime-charset' property names a charset which
+is unsuitable for the top-level media type \"text\".
+
+`:flags'
+
+VALUE must be a list of symbols that control the ISO-2022 converter.
+Each must be a member of the list `coding-system-iso-2022-flags'
+\(which see).  This attribute has a meaning only when `:coding-type'
+is `iso-2022'.
+
+`:designation'
+
+VALUE must be a vector [G0-USAGE G1-USAGE G2-USAGE G3-USAGE].
+GN-USAGE specifies the usage of graphic register GN as follows.
+
+If it is nil, no charset can be designated to GN.
+
+If it is a charset, the charset is initially designated to GN, and
+never used by the other charsets.
+
+If it is a list, the elements must be charsets, nil, 94, or 96.  GN
+can be used by all the listed charsets.  If the list contains 94, any
+iso-2022 charset whose code-space ranges are 94 long can be designated
+to GN.  If the list contains 96, any charsets whose whose ranges are
+96 long can be designated to GN.  If the first element is a charset,
+that charset is initially designated to GN.
+
+This attribute has a meaning only when `:coding-type' is `iso-2022'.
+
+`:bom'
+
+This attributes specifies whether the coding system uses a `byte order
+mark'.  VALUE must nil, t, or cons of coding systems whose
+`:coding-type' is `utf-16'.
+
+If the value is nil, on decoding, don't treat the first two-byte as
+BOM, and on encoding, don't produce BOM bytes.
+
+If the value is t, on decoding, skip the first two-byte as BOM, and on
+encoding, produce BOM bytes accoding to the value of `:endian'.
+
+If the value is cons, on decoding, check the first two-byte.  If theyq
+are 0xFE 0xFF, use the car part coding system of the value.  If they
+are 0xFF 0xFE, use the car part coding system of the value.
+Otherwise, treat them as bytes for a normal character.  On encoding,
+produce BOM bytes accoding to the value of `:endian'.
+
+This attribute has a meaning only when `:coding-type' is `utf-16'.
+
+`:endian'
+
+VALUE must be `big' or `little' specifying big-endian and
+little-endian respectively.  The default value is `big'.
+
+This attribute has a meaning only when `:coding-type' is `utf-16'.
+
+`:ccl-decoder'
+
+VALUE is a symbol representing the registered CCL program used for
+decoding.  This attribute has a meaning only when `:coding-type' is
+`ccl'.
+
+`:ccl-encoder'
+
+VALUE is a symbol representing the registered CCL program used for
+encoding.  This attribute has a meaning only when `:coding-type' is
+`ccl'."
+  (let* ((common-attrs (mapcar 'list
+                              '(:mnemonic
+                                :coding-type
+                                :charset-list
+                                :ascii-compatible-p
+                                :decode-translation-table
+                                :encode-translation-table
+                                :post-read-conversion
+                                :pre-write-conversion
+                                :default-char
+                                :for-unibyte
+                                :plist
+                                :eol-type)))
+        (coding-type (plist-get props :coding-type))
+        (spec-attrs (mapcar 'list
+                            (cond ((eq coding-type 'iso-2022)
+                                   '(:initial
+                                     :reg-usage
+                                     :request
+                                     :flags))
+                                  ((eq coding-type 'utf-16)
+                                   '(:bom
+                                     :endian))
+                                  ((eq coding-type 'ccl)
+                                   '(:ccl-decoder
+                                     :ccl-encoder
+                                     :valids))))))
+
+    (dolist (slot common-attrs)
+      (setcdr slot (plist-get props (car slot))))
+
+    (dolist (slot spec-attrs)
+      (setcdr slot (plist-get props (car slot))))
+
+    (if (eq coding-type 'iso-2022)
+       (let ((designation (plist-get props :designation))
+             (flags (plist-get props :flags))
+             (initial (make-vector 4 nil))
+             (reg-usage (cons 4 4))
+             request elt)
+         (dotimes (i 4)
+           (setq elt (aref designation i))
+           (cond ((charsetp elt)
+                  (aset initial i elt)
+                  (setq request (cons (cons elt i) request)))
+                 ((consp elt)
+                  (aset initial i (car elt))
+                  (if (charsetp (car elt))
+                      (setq request (cons (cons (car elt) i) request)))
+                  (dolist (e (cdr elt))
+                    (cond ((charsetp e)
+                           (setq request (cons (cons e i) request)))
+                          ((eq e 94)
+                           (setcar reg-usage i))
+                          ((eq e 96)
+                           (setcdr reg-usage i))
+                          ((eq e t)
+                           (setcar reg-usage i)
+                           (setcdr reg-usage i)))))))
+         (setcdr (assq :initial spec-attrs) initial)
+         (setcdr (assq :reg-usage spec-attrs) reg-usage)
+         (setcdr (assq :request spec-attrs) request)
+
+         ;; Change :flags value from a list to a bit-mask.
+         (let ((bits 0)
+               (i 0))
+           (dolist (elt coding-system-iso-2022-flags)
+             (if (memq elt flags)
+                 (setq bits (logior bits (lsh 1 i))))
+             (setq i (1+ i)))
+           (setcdr (assq :flags spec-attrs) bits))))
+
+    ;; Add :name and :docstring properties to PROPS.
+    (setq props
+         (cons :name (cons name (cons :docstring (cons (purecopy docstring)
+                                                       props)))))
+    (setcdr (assq :plist common-attrs) props)
+    (apply 'define-coding-system-internal 
+          name (mapcar 'cdr (append common-attrs spec-attrs)))))
 
 (defun coding-system-doc-string (coding-system)
   "Return the documentation string for CODING-SYSTEM."
-  (aref (coding-system-spec coding-system) coding-spec-doc-string-idx))
-
-(defun coding-system-plist (coding-system)
-  "Return the property list of CODING-SYSTEM."
-  (aref (coding-system-spec coding-system) coding-spec-plist-idx))
+  (plist-get (coding-system-plist coding-system) :docstring))
 
-(defun coding-system-flags (coding-system)
-  "Return `flags' of CODING-SYSTEM.
-A `flags' of a coding system is a vector of length 32 indicating detailed
-information of a coding system.  See the function `make-coding-system'
-for more detail."
-  (aref (coding-system-spec coding-system) coding-spec-flags-idx))
+(defun coding-system-mnemonic (coding-system)
+  "Return the mnemonic character of CODING-SYSTEM.
+The mnemonic character of a coding system is used in mode line to
+indicate the coding system.  If CODING-SYSTEM. is nil, return ?=."
+  (plist-get (coding-system-plist coding-system) :mnemonic))
 
-(defun coding-system-get (coding-system prop)
-  "Extract a value from CODING-SYSTEM's property list for property PROP."
-  (plist-get (coding-system-plist coding-system) prop))
+(defun coding-system-type (coding-system)
+  "Return the coding type of CODING-SYSTEM.
+A coding type is a symbol indicating the encoding method of CODING-SYSTEM.
+See the function `define-coding-system' for more detail."
+  (plist-get (coding-system-plist coding-system) :coding-type))
 
-(defun coding-system-put (coding-system prop val)
-  "Change value in CODING-SYSTEM's property list PROP to VAL."
-  (let ((plist (coding-system-plist coding-system)))
-    (if plist
-       (plist-put plist prop val)
-      (aset (coding-system-spec coding-system) coding-spec-plist-idx
-           (list prop val)))))
+(defun coding-system-charset-list (coding-system)
+  "Return list of charsets supported by CODING-SYSTEM.
+If CODING-SYSTEM supports all ISO-2022 charsets, return `iso-2022'.
+If CODING-SYSTEM supports all emacs-mule charsets, return `emacs-mule'."
+  (plist-get (coding-system-plist coding-system) :charset-list))
 
 (defun coding-system-category (coding-system)
-  "Return the coding category of CODING-SYSTEM.
-See also `coding-category-list'."
-  (coding-system-get coding-system 'coding-category))
-
-(defun coding-system-base (coding-system)
-  "Return the base coding system of CODING-SYSTEM.
-A base coding system is what made by `make-coding-system'.
-Neither aliases nor subsidiary coding systems are base coding systems."
-  (car (coding-system-get coding-system 'alias-coding-systems)))
-
-;; Coding system also has a property `eol-type'.
-;;
-;; This property indicates how the coding system handles end-of-line
-;; format.  The value is integer 0, 1, 2, or a vector of three coding
-;; systems.  Each integer value 0, 1, and 2 indicates the format of
-;; end-of-line LF, CRLF, and CR respectively.  A vector value
-;; indicates that the format of end-of-line should be detected
-;; automatically.  Nth element of the vector is the subsidiary coding
-;; system whose `eol-type' property is N.
-
-(defun coding-system-eol-type (coding-system)
-  "Return eol-type of CODING-SYSTEM.
-An eol-type is integer 0, 1, 2, or a vector of coding systems.
-
-Integer values 0, 1, and 2 indicate a format of end-of-line; LF,
-CRLF, and CR respectively.
-
-A vector value indicates that a format of end-of-line should be
-detected automatically.  Nth element of the vector is the subsidiary
-coding system whose eol-type is N."
-  (get coding-system 'eol-type))
+  "Return a category symbol of CODING-SYSTEM."
+  (plist-get (coding-system-plist coding-system) :category))
+
+(defun coding-system-get (coding-system prop)
+  "Extract a value from CODING-SYSTEM's property list for property PROP.
+For compatibility with Emacs 20/21, this accepts old-style symbols
+like `mime-charset' as well as the current style like `:mime-charset'."
+  (or (plist-get (coding-system-plist coding-system) prop)
+      (if (not (keywordp prop))
+         ;; For backward compatiblity.
+         (if (eq prop 'ascii-incompatible)
+             (not (plist-get (coding-system-plist coding-system)
+                             :ascii-compatible-p))
+           (plist-get (coding-system-plist coding-system)
+                      (intern (concat ":" (symbol-name prop))))))))
 
 (defun coding-system-eol-type-mnemonic (coding-system)
   "Return the string indicating end-of-line format of CODING-SYSTEM."
@@ -559,8 +897,8 @@ coding system whose eol-type is N."
 Two coding systems are identical if two symbols are equal
 or one is an alias of the other."
   (or (eq coding-system-1 coding-system-2)
-      (and (equal (coding-system-spec coding-system-1)
-                 (coding-system-spec coding-system-2))
+      (and (equal (coding-system-plist coding-system-1)
+                 (coding-system-plist coding-system-2))
           (let ((eol-type-1 (coding-system-eol-type coding-system-1))
                 (eol-type-2 (coding-system-eol-type coding-system-2)))
             (or (eq eol-type-1 eol-type-2)
@@ -583,71 +921,23 @@ or one is an alias of the other."
 
 (defun coding-system-list (&optional base-only)
   "Return a list of all existing non-subsidiary coding systems.
-If optional arg BASE-ONLY is non-nil, only base coding systems are listed.
-The value doesn't include subsidiary coding systems which are what
+If optional arg BASE-ONLY is non-nil, only base coding systems are
+listed.  The value doesn't include subsidiary coding systems which are
 made from bases and aliases automatically for various end-of-line
 formats (e.g. iso-latin-1-unix, koi8-r-dos)."
-  (let* ((codings (copy-sequence coding-system-list))
-        (tail (cons nil codings)))
-    ;; Remove subsidiary coding systems (eol variants) and alias
-    ;; coding systems (if necessary).
-    (while (cdr tail)
-      (let* ((coding (car (cdr tail)))
-            (aliases (coding-system-get coding 'alias-coding-systems)))
-       (if (or
-            ;; CODING is an eol variant if not in ALIASES.
-            (not (memq coding aliases))
-            ;; CODING is an alias if it is not car of ALIASES.
-            (and base-only (not (eq coding (car aliases)))))
-           (setcdr tail (cdr (cdr tail)))
-         (setq tail (cdr tail)))))
+  (let ((codings nil))
+    (dolist (coding coding-system-list)
+      (if (eq (coding-system-base coding) coding)
+         (if base-only
+             (setq codings (cons coding codings))
+           (dolist (alias (coding-system-aliases coding))
+             (setq codings (cons alias codings))))))
     codings))
 
-(defun map-charset-chars (func charset)
-  "Use FUNC to map over all characters in CHARSET for side effects.
-FUNC is a function of two args, the start and end (inclusive) of a
-character code range.  Thus FUNC should iterate over [START, END]."
-  (let* ((dim (charset-dimension charset))
-        (chars (charset-chars charset))
-        (start (if (= chars 94)
-                   33
-                 32)))
-    (if (= dim 1)
-       (funcall func
-                (make-char charset start)
-                (make-char charset (+ start chars -1)))
-      (dotimes (i chars)
-       (funcall func
-                (make-char charset (+ i start) start)
-                (make-char charset (+ i start) (+ start chars -1)))))))
-
-(defalias 'register-char-codings 'ignore "")
-(make-obsolete 'register-char-codings
-               "it exists just for backward compatibility, and does nothing."
-              "21.3")
-
 (defconst char-coding-system-table nil
   "This is an obsolete variable.
 It exists just for backward compatibility, and the value is always nil.")
 
-(defun make-subsidiary-coding-system (coding-system)
-  "Make subsidiary coding systems (eol-type variants) of CODING-SYSTEM."
-  (let ((coding-spec (coding-system-spec coding-system))
-       (subsidiaries (vector (intern (format "%s-unix" coding-system))
-                             (intern (format "%s-dos" coding-system))
-                             (intern (format "%s-mac" coding-system))))
-       elt)
-    (dotimes (i 3)
-      (setq elt (aref subsidiaries i))
-      (put elt 'coding-system coding-spec)
-      (put elt 'eol-type i)
-      (put elt 'coding-system-define-form nil)
-      (add-to-coding-system-list elt)
-      (or (assoc (symbol-name elt) coding-system-alist)
-         (setq coding-system-alist
-               (cons (list (symbol-name elt)) coding-system-alist))))
-    subsidiaries))
-
 (defun transform-make-coding-system-args (name type &optional doc-string props)
   "For internal use only.
 Transform XEmacs style args for `make-coding-system' to Emacs style.
@@ -735,169 +1025,8 @@ Value is a list of transformed arguments."
                                         properties
                                         eol-type)
   "Define a new coding system CODING-SYSTEM (symbol).
-Remaining arguments are TYPE, MNEMONIC, DOC-STRING, FLAGS (optional),
-and PROPERTIES (optional) which construct a coding-spec of CODING-SYSTEM
-in the following format:
-       [TYPE MNEMONIC DOC-STRING PLIST FLAGS]
-
-TYPE is an integer value indicating the type of the coding system as follows:
-  0: Emacs internal format,
-  1: Shift-JIS (or MS-Kanji) used mainly on Japanese PCs,
-  2: ISO-2022 including many variants,
-  3: Big5 used mainly on Chinese PCs,
-  4: private, CCL programs provide encoding/decoding algorithm,
-  5: Raw-text, which means that text contains random 8-bit codes.
-
-MNEMONIC is a character to be displayed on mode line for the coding system.
-
-DOC-STRING is a documentation string for the coding system.
-
-FLAGS specifies more detailed information of the coding system as follows:
-
-  If TYPE is 2 (ISO-2022), FLAGS is a list of these elements:
-      CHARSET0, CHARSET1, CHARSET2, CHARSET3, SHORT-FORM,
-      ASCII-EOL, ASCII-CNTL, SEVEN, LOCKING-SHIFT, SINGLE-SHIFT,
-      USE-ROMAN, USE-OLDJIS, NO-ISO6429, INIT-BOL, DESIGNATION-BOL,
-      SAFE, ACCEPT-LATIN-EXTRA-CODE.
-    CHARSETn are character sets initially designated to Gn graphic registers.
-      If CHARSETn is nil, Gn is never used.
-      If CHARSETn is t, Gn can be used but nothing designated initially.
-      If CHARSETn is a list of character sets, those character sets are
-        designated to Gn on output, but nothing designated to Gn initially.
-        But, character set `ascii' can be designated only to G0.
-    SHORT-FORM non-nil means use short designation sequence on output.
-    ASCII-EOL non-nil means designate ASCII to g0 at end of line on output.
-    ASCII-CNTL non-nil means designate ASCII to g0 before control codes and
-      SPACE on output.
-    SEVEN non-nil means use 7-bit code only on output.
-    LOCKING-SHIFT non-nil means use locking-shift.
-    SINGLE-SHIFT non-nil means use single-shift.
-    USE-ROMAN non-nil means designate JIS0201-1976-Roman instead of ASCII.
-    USE-OLDJIS non-nil means designate JIS0208-1976 instead of JIS0208-1983.
-    NO-ISO6429 non-nil means not use ISO6429's direction specification.
-    INIT-BOL non-nil means any designation state is assumed to be reset
-      to initial at each beginning of line on output.
-    DESIGNATION-BOL non-nil means designation sequences should be placed
-      at beginning of line on output.
-    SAFE non-nil means convert unsafe characters to `?' on output.
-      Characters not specified in the property `safe-charsets' nor
-      `safe-chars' are unsafe.
-    ACCEPT-LATIN-EXTRA-CODE non-nil means code-detection routine accepts
-      a code specified in `latin-extra-code-table' (which see) as a valid
-      code of the coding system.
-
-  If TYPE is 4 (private), FLAGS should be a cons of CCL programs, for
-    decoding and encoding.  CCL programs should be specified by their
-    symbols.
-
-PROPERTIES is an alist of properties vs the corresponding values.  The
-following properties are recognized:
-
-  o post-read-conversion
-
-  The value is a function to call after some text is inserted and
-  decoded by the coding system itself and before any functions in
-  `after-insert-functions' are called.  The argument of this
-  function is the same as for a function in
-  `after-insert-file-functions', i.e. LENGTH of the text inserted,
-  with point at the head of the text to be decoded.
-
-  o pre-write-conversion
-
-  The value is a function to call after all functions in
-  `write-region-annotate-functions' and `buffer-file-format' are
-  called, and before the text is encoded by the coding system itself.
-  The arguments to this function are the same as those of a function
-  in `write-region-annotate-functions', i.e. FROM and TO, specifying
-  a region of text.
-
-  o translation-table-for-decode
-
-  The value is a translation table to be applied on decoding.  See
-  the function `make-translation-table' for the format of translation
-  table.  This is not applicable to type 4 (CCL-based) coding systems.
-
-  o translation-table-for-encode
-
-  The value is a translation table to be applied on encoding.  This is
-  not applicable to type 4 (CCL-based) coding systems.
-
-  o safe-chars
-
-  The value is a char table.  If a character has non-nil value in it,
-  the character is safely supported by the coding system.  This
-  overrides the specification of safe-charsets.
-
-  o safe-charsets
-
-  The value is a list of charsets safely supported by the coding
-  system.  The value t means that all charsets Emacs handles are
-  supported.  Even if some charset is not in this list, it doesn't
-  mean that the charset can't be encoded in the coding system;
-  it just means that some other receiver of text encoded
-  in the coding system won't be able to handle that charset.
-
-  o mime-charset
-
-  The value is a symbol whose name is the `MIME-charset' parameter of
-  the coding system.
-
-  o mime-text-unsuitable
-
-  A non-nil value means the `mime-charset' property names a charset
-  which is unsuitable for the top-level media type \"text\".
-
-  o valid-codes (meaningful only for a coding system based on CCL)
-
-  The value is a list to indicate valid byte ranges of the encoded
-  file.  Each element of the list is an integer or a cons of integer.
-  In the former case, the integer value is a valid byte code.  In the
-  latter case, the integers specify the range of valid byte codes.
-
-  o composition (meaningful only when TYPE is 0 or 2)
-
-  If the value is non-nil, the coding system preserves composition
-  information.
-
-  o ascii-incompatible
-
-  If the value is non-nil, the coding system is not compatible
-  with ASCII, which means it encodes or decodes ASCII character
-  string to the different byte sequence.
-
-These properties are set in PLIST, a property list.  This function
-also sets properties `coding-category' and `alias-coding-systems'
-automatically.
-
-EOL-TYPE specifies the EOL type of the coding-system in one of the
-following formats:
-
-  o symbol (unix, dos, or mac)
-
-       The symbol `unix' means Unix-like EOL (LF), `dos' means
-       DOS-like EOL (CRLF), and `mac' means MAC-like EOL (CR).
-
-  o number (0, 1, or 2)
-
-       The number 0, 1, and 2 mean UNIX, DOS, and MAC-like EOL
-       respectively.
-
-  o vector of coding-systems of length 3
-
-       The EOL type is detected automatically for the coding system.
-       And, according to the detected EOL type, one of the coding
-       systems in the vector is selected.  Elements of the vector
-       corresponds to Unix-like EOL, DOS-like EOL, and Mac-like EOL
-       in this order.
-
-Kludgy features for backward compatibility:
-
-1. If TYPE is 4 and car or cdr of FLAGS is a vector, the vector is
-treated as a compiled CCL code.
-
-2. If PROPERTIES is just a list of character sets, the list is set as
-a value of `safe-charsets' in PLIST."
-
+This function is provided for backward compatibility.
+Use `define-coding-system' instead."
   ;; For compatiblity with XEmacs, we check the type of TYPE.  If it
   ;; is a symbol, perhaps, this function is called with XEmacs-style
   ;; arguments.  Here, try to transform that kind of arguments to
@@ -913,233 +1042,82 @@ a value of `safe-charsets' in PLIST."
              properties (nth 5 args)
              eol-type (nth 6 args))))
 
-  ;; Set a value of `coding-system' property.
-  (let ((coding-spec (make-vector 5 nil))
-       (no-initial-designation t)
-       (no-alternative-designation t)
-       (accept-latin-extra-code nil)
-       coding-category)
-    (if (or (not (integerp type)) (< type 0) (> type 5))
-       (error "TYPE argument must be 0..5"))
-    (if (or (not (integerp mnemonic)) (<= mnemonic ? ) (> mnemonic 127))
-       (error "MNEMONIC argument must be an ASCII printable character"))
-    (aset coding-spec coding-spec-type-idx type)
-    (aset coding-spec coding-spec-mnemonic-idx mnemonic)
-    (aset coding-spec coding-spec-doc-string-idx
-         (purecopy (if (stringp doc-string) doc-string "")))
-    (cond ((= type 0)
-          (setq coding-category 'coding-category-emacs-mule))
-         ((= type 1)
-          (setq coding-category 'coding-category-sjis))
-         ((= type 2)                   ; ISO2022
-          (let ((i 0)
-                (vec (make-vector 32 nil))
-                (g1-designation nil)
-                (fl flags))
-            (while (< i 4)
-              (let ((charset (car fl)))
-                (if (and no-initial-designation
-                         (> i 0)
-                         (or (charsetp charset)
-                             (and (consp charset)
-                                  (charsetp (car charset)))))
-                    (setq no-initial-designation nil))
-                (if (charsetp charset)
-                    (if (= i 1) (setq g1-designation charset))
-                  (if (consp charset)
-                      (let ((tail charset)
-                            elt)
-                        (while tail
-                          (setq elt (car tail))
-                          (if (eq elt t)
-                              (setq no-alternative-designation nil)
-                            (if (and elt (not (charsetp elt)))
-                                (error "Invalid charset: %s" elt)))
-                          (setq tail (cdr tail)))
-                        (setq g1-designation (car charset)))
-                    (if charset
-                        (if (eq charset t)
-                            (setq no-alternative-designation nil)
-                          (error "Invalid charset: %s" charset)))))
-                (aset vec i charset))
-              (setq fl (cdr fl) i (1+ i)))
-            (while (and (< i 32) fl)
-              (aset vec i (car fl))
-              (if (and (= i 16)        ; ACCEPT-LATIN-EXTRA-CODE
-                       (car fl))
-                  (setq accept-latin-extra-code t))
-              (setq fl (cdr fl) i (1+ i)))
-            (aset coding-spec 4 vec)
-            (setq coding-category
-                  (if (aref vec 8)     ; Use locking-shift.
-                      (or (and (aref vec 7) 'coding-category-iso-7-else)
-                          'coding-category-iso-8-else)
-                    (if (aref vec 7)   ; 7-bit only.
-                        (if (aref vec 9) ; Use single-shift.
-                            'coding-category-iso-7-else
-                          (if no-alternative-designation
-                              'coding-category-iso-7-tight
-                            'coding-category-iso-7))
-                      (if (or no-initial-designation
-                              (not no-alternative-designation))
-                          'coding-category-iso-8-else
-                        (if (and (charsetp g1-designation)
-                                 (= (charset-dimension g1-designation) 2))
-                            'coding-category-iso-8-2
-                          'coding-category-iso-8-1)))))))
-         ((= type 3)
-          (setq coding-category 'coding-category-big5))
-         ((= type 4)                   ; private
-          (setq coding-category 'coding-category-ccl)
-          (if (not (consp flags))
-              (error "Invalid FLAGS argument for TYPE 4 (CCL)")
-            (let ((decoder (check-ccl-program
-                            (car flags)
-                            (intern (format "%s-decoder" coding-system))))
-                  (encoder (check-ccl-program
-                            (cdr flags)
-                            (intern (format "%s-encoder" coding-system)))))
-              (if (and decoder encoder)
-                  (aset coding-spec 4 (cons decoder encoder))
-                (error "Invalid FLAGS argument for TYPE 4 (CCL)")))))
-         (t                            ; i.e. (= type 5)
-          (setq coding-category 'coding-category-raw-text)))
-
-    (let ((plist (list 'coding-category coding-category
-                      'alias-coding-systems (list coding-system))))
-      (if no-initial-designation
-         (plist-put plist 'no-initial-designation t))
-      (if (and properties
-              (or (eq properties t)
-                  (not (consp (car properties)))))
-         ;; In the old version, the arg PROPERTIES is a list to be
-         ;; set in PLIST as a value of property `safe-charsets'.
-         (setq properties (list (cons 'safe-charsets properties))))
-      ;; In the current version PROPERTIES is a property list.
-      ;; Reflect it into PLIST one by one while handling safe-chars
-      ;; specially.
-      (let ((safe-charsets (cdr (assq 'safe-charsets properties)))
-           (safe-chars (cdr (assq 'safe-chars properties)))
-           (l properties)
-           prop val)
-       ;; If only safe-charsets is specified, make a char-table from
-       ;; it, and store that char-table as the value of `safe-chars'.
-       (if (and (not safe-chars) safe-charsets)
-           (let (charset)
-             (if (eq safe-charsets t)
-                 (setq safe-chars t)
-               (setq safe-chars (make-char-table 'safe-chars))
-               (while safe-charsets
-                 (setq charset (car safe-charsets)
-                       safe-charsets (cdr safe-charsets))
-                 (cond ((eq charset 'ascii)) ; just ignore
-                       ((eq charset 'eight-bit-control)
-                        (let ((i 128))
-                          (while (< i 160)
-                            (aset safe-chars i t)
-                            (setq i (1+ i)))))
-                       ((eq charset 'eight-bit-graphic)
-                        (let ((i 160))
-                          (while (< i 256)
-                            (aset safe-chars i t)
-                            (setq i (1+ i)))))
-                       (t
-                        (aset safe-chars (make-char charset) t))))
-               (if accept-latin-extra-code
-                   (let ((i 128))
-                     (while (< i 160)
-                       (if (aref latin-extra-code-table i)
-                           (aset safe-chars i t))
-                       (setq i (1+ i))))))
-             (setq l (cons (cons 'safe-chars safe-chars) l))))
-       (while l
-         (setq prop (car (car l)) val (cdr (car l)) l (cdr l))
-         (if (eq prop 'safe-chars)
-             (progn
-               (if (and (symbolp val)
-                        (get val 'translation-table))
-                   (setq safe-chars (get val 'translation-table)))
-               (setq val safe-chars)))
-         (plist-put plist prop val)))
-      ;; The property `coding-category' may have been set differently
-      ;; through PROPERTIES.
-      (setq coding-category (plist-get plist 'coding-category))
-      (aset coding-spec coding-spec-plist-idx plist))
-    (put coding-system 'coding-system coding-spec)
-    (put coding-system 'coding-system-define-form nil)
-    (put coding-category 'coding-systems
-        (cons coding-system (get coding-category 'coding-systems))))
-
-  ;; Next, set a value of `eol-type' property.
-  (if (not eol-type)
-      ;; If EOL-TYPE is nil, set a vector of subsidiary coding
-      ;; systems, each corresponds to a coding system for the detected
-      ;; EOL format.
-      (setq eol-type (make-subsidiary-coding-system coding-system)))
-  (setq eol-type
-       (cond ((or (eq eol-type 'unix) (null eol-type))
-              0)
-             ((eq eol-type 'dos)
-              1)
-             ((eq eol-type 'mac)
-              2)
-             ((or (and (vectorp eol-type)
-                       (= (length eol-type) 3))
-                  (and (numberp eol-type)
-                       (and (>= eol-type 0)
-                            (<= eol-type 2))))
-              eol-type)
+  (setq type
+       (cond ((eq type 0) 'emacs-mule)
+             ((eq type 1) 'shift-jis)
+             ((eq type 2) 'iso2022)
+             ((eq type 3) 'big5)
+             ((eq type 4) 'ccl)
+             ((eq type 5) 'raw-text)
              (t
-              (error "Invalid EOL-TYPE spec:%S" eol-type))))
-  (put coding-system 'eol-type eol-type)
-
-  (define-coding-system-internal coding-system)
-
-  ;; At last, register CODING-SYSTEM in `coding-system-list' and
-  ;; `coding-system-alist'.
-  (add-to-coding-system-list coding-system)
-  (or (assoc (symbol-name coding-system) coding-system-alist)
-      (setq coding-system-alist (cons (list (symbol-name coding-system))
-                                     coding-system-alist)))
-
-  ;; For a coding system of cateogory iso-8-1 and iso-8-2, create
-  ;; XXX-with-esc variants.
-  (let ((coding-category (coding-system-category coding-system)))
-    (if (or (eq coding-category 'coding-category-iso-8-1)
-           (eq coding-category 'coding-category-iso-8-2))
-       (let ((esc (intern (concat (symbol-name coding-system) "-with-esc")))
-             (doc (format "Same as %s but can handle any charsets by ISO's escape sequences." coding-system))
-             (safe-charsets (assq 'safe-charsets properties))
-             (mime-charset (assq 'mime-charset properties)))
-         (if safe-charsets
-             (setcdr safe-charsets t)
-           (setq properties (cons (cons 'safe-charsets t) properties)))
-         (if mime-charset
-             (setcdr mime-charset nil))
-         (make-coding-system esc type mnemonic doc
-                             (if (listp (car flags))
-                                 (cons (append (car flags) '(t)) (cdr flags))
-                               (cons (list (car flags) t) (cdr flags)))
-                             properties))))
-
-  coding-system)
-
-(put 'safe-chars 'char-table-extra-slots 0)
-
-(defun define-coding-system-alias (alias coding-system)
-  "Define ALIAS as an alias for coding system CODING-SYSTEM."
-  (put alias 'coding-system (coding-system-spec coding-system))
-  (put alias 'coding-system-define-form nil)
-  (add-to-coding-system-list alias)
-  (or (assoc (symbol-name alias) coding-system-alist)
-      (setq coding-system-alist (cons (list (symbol-name alias))
-                                     coding-system-alist)))
-  (let ((eol-type (coding-system-eol-type coding-system)))
-    (if (vectorp eol-type)
-       (progn
-         (nconc (coding-system-get alias 'alias-coding-systems) (list alias))
-         (put alias 'eol-type (make-subsidiary-coding-system alias)))
-      (put alias 'eol-type eol-type))))
+              (error "Invalid coding system type: %s" type))))
+
+  (setq properties
+       (let ((plist nil) key)
+         (dolist (elt properties)
+           (setq key (car elt))
+           (cond ((eq key 'post-read-conversion)
+                  (setq key :post-read-conversion))
+                 ((eq key 'pre-write-conversion)
+                  (setq key :pre-write-conversion))
+                 ((eq key 'translation-table-for-decode)
+                  (setq key :decode-translation-table))
+                 ((eq key 'translation-table-for-encode)
+                  (setq key :encode-translation-table))
+                 ((eq key 'safe-charsets)
+                  (setq key :charset-list))
+                 ((eq key 'mime-charset)
+                  (setq key :mime-charset))
+                 ((eq key 'valid-codes)
+                  (setq key :valids)))
+           (setq plist (plist-put plist key (cdr elt))))
+         plist))
+  (setq properties (plist-put properties :mnemonic mnemonic))
+  (plist-put properties :coding-type type)
+  (cond ((eq eol-type 0) (setq eol-type 'unix))
+       ((eq eol-type 1) (setq eol-type 'dos))
+       ((eq eol-type 2) (setq eol-type 'mac))
+       ((vectorp eol-type) (setq eol-type nil)))
+  (plist-put properties :eol-type eol-type)
+
+  (cond
+   ((eq type 'iso2022)
+    (plist-put properties :flags
+              (list (and (or (consp (nth 0 flags))
+                             (consp (nth 1 flags))
+                             (consp (nth 2 flags))
+                             (consp (nth 3 flags))) 'designation)
+                    (or (nth 4 flags) 'long-form)
+                    (and (nth 5 flags) 'ascii-at-eol)
+                    (and (nth 6 flags) 'ascii-at-cntl)
+                    (and (nth 7 flags) '7-bit)
+                    (and (nth 8 flags) 'locking-shift)
+                    (and (nth 9 flags) 'single-shift)
+                    (and (nth 10 flags) 'use-roman)
+                    (and (nth 11 flags) 'use-oldjis)
+                    (or (nth 12 flags) 'direction)
+                    (and (nth 13 flags) 'init-at-bol)
+                    (and (nth 14 flags) 'designate-at-bol)
+                    (and (nth 15 flags) 'safe)
+                    (and (nth 16 flags) 'latin-extra)))
+    (plist-put properties :designation
+              (let ((vec (make-vector 4 nil)))
+                (dotimes (i 4)
+                  (let ((spec (nth i flags)))
+                    (if (eq spec t)
+                        (aset vec i '(94 96))
+                    (if (consp spec)
+                        (progn
+                          (if (memq t spec)
+                              (setq spec (append (delq t spec) '(94 96))))
+                          (aset vec i spec))))))
+                vec)))
+
+   ((eq type 'ccl)
+    (plist-put properties :ccl-decoder (car flags))
+    (plist-put properties :ccl-encoder (cdr flags))))
+
+  (apply 'define-coding-system coding-system doc-string properties))
 
 (defun merge-coding-systems (first second)
   "Fill in any unspecified aspects of coding system FIRST from SECOND.
@@ -1224,8 +1202,9 @@ see) to CODING-SYSTEM."
   (interactive "zCoding system for file names (default nil): ")
   (check-coding-system coding-system)
   (if (and coding-system
-          (coding-system-get coding-system 'ascii-incompatible))
-      (error "%s is not ASCII-compatible" coding-system))
+          (not (coding-system-get coding-system :ascii-compatible-p))
+          (not (coding-system-get coding-system :suitable-for-file-name)))
+      (error "%s is not suitable for file names" coding-system))
   (setq file-name-coding-system coding-system))
 
 (defvar default-terminal-coding-system nil
@@ -1290,8 +1269,9 @@ The setting has no effect on graphical displays."
   (if coding-system
       (setq default-keyboard-coding-system coding-system))
   (if (and coding-system
-          (coding-system-get coding-system 'ascii-incompatible))
-      (error "%s is not ASCII-compatible" coding-system))
+          (not (coding-system-get coding-system :ascii-compatible-p))
+          (not (coding-system-get coding-system :suitable-for-keyboard)))
+      (error "%s is not suitable for keyboard" coding-system))
   (set-keyboard-coding-system-internal coding-system display)
   (setq keyboard-coding-system coding-system)
   (encoded-kbd-setup-display display))
@@ -1349,14 +1329,14 @@ the text is encoded or decoded by CODING-SYSTEM."
 (defvar last-next-selection-coding-system nil)
 
 (defun set-next-selection-coding-system (coding-system)
-  "Make CODING-SYSTEM used for the next communication with other X clients.
+  "Use CODING-SYSTEM for next communication with other window system clients.
 This setting is effective for the next communication only."
   (interactive
    (list (read-coding-system
          (if last-next-selection-coding-system
-             (format "Coding system for the next selection (default %S): "
+             (format "Coding system for the next selection (default %S): "
                      last-next-selection-coding-system)
-           "Coding system for the next selection: ")
+           "Coding system for the next selection: ")
          last-next-selection-coding-system)))
   (if coding-system
       (setq last-next-selection-coding-system coding-system)
@@ -1367,28 +1347,21 @@ This setting is effective for the next communication only."
 
 (defun set-coding-priority (arg)
   "Set priority of coding categories according to ARG.
-ARG is a list of coding categories ordered by priority."
-  (let ((l arg)
-       (current-list (copy-sequence coding-category-list)))
-    ;; Check the validity of ARG while deleting coding categories in
-    ;; ARG from CURRENT-LIST.  We assume that CODING-CATEGORY-LIST
-    ;; contains all coding categories.
-    (while l
-      (if (or (null (get (car l) 'coding-category-index))
-             (null (memq (car l) current-list)))
-         (error "Invalid or duplicated element in argument: %s" arg))
-      (setq current-list (delq (car l) current-list))
-      (setq l (cdr l)))
-    ;; Update `coding-category-list' and return it.
-    (setq coding-category-list (append arg current-list))
-    (set-coding-priority-internal)))
+ARG is a list of coding categories ordered by priority.
+
+This function is provided for backward compatibility.
+Now we have more convenient function `set-coding-system-priority'."
+  (apply 'set-coding-system-priority
+        (mapcar #'(lambda (x) (symbol-value x)) arg)))
+(make-obsolete 'set-coding-priority 'set-coding-system-priority "23.1")
 
 ;;; X selections
 
 (defvar ctext-non-standard-encodings-alist
-  '(("big5-0" big5 2 (chinese-big5-1 chinese-big5-2))
+  '(("big5-0" big5 2 big5)
     ("ISO8859-14" iso-8859-14 1 latin-iso8859-14)
-    ("ISO8859-15" iso-8859-15 1 latin-iso8859-15))
+    ("ISO8859-15" iso-8859-15 1 latin-iso8859-15)
+    ("gbk-0" gbk 2 chinese-gbk))
   "Alist of non-standard encoding names vs the corresponding usages in CTEXT.
 
 It controls how extended segments of a compound text are handled
@@ -1406,9 +1379,7 @@ in the segment.  It can be 0 (meaning the number of octets per
 character is variable), 1, 2, 3, or 4.
 
 CHARSET is a charater set containing characters that are encoded
-in the segment.  It can be a list of character sets.  It can also
-be a char-table, in which case characters that have non-nil value
-in the char-table are the target.
+in the segment.  It can be a list of character sets.
 
 On decoding CTEXT, all encoding names listed here are recognized.
 
@@ -1417,8 +1388,7 @@ On encoding CTEXT, encoding names in the variable
 listed for the current language environment under the key
 `ctext-non-standard-encodings' are used.")
 
-(defvar ctext-non-standard-encodings
-  '("big5-0")
+(defvar ctext-non-standard-encodings nil
   "List of non-standard encoding names used in extended segments of CTEXT.
 Each element must be one of the names listed in the variable
 `ctext-non-standard-encodings-alist' (which see).")
@@ -1439,23 +1409,24 @@ Each element must be one of the names listed in the variable
 
 (defun ctext-post-read-conversion (len)
   "Decode LEN characters encoded as Compound Text with Extended Segments."
+  ;; We don't need the following because it is expected that this
+  ;; function is mainly used for decoding X selection which is not
+  ;; that big data.
+  ;;(buffer-disable-undo) ; minimize consing due to insertions and deletions
   (save-match-data
     (save-restriction
+      (narrow-to-region (point) (+ (point) len))
       (let ((case-fold-search nil)
-           (in-workbuf (string= (buffer-name) " *code-converting-work*"))
            last-coding-system-used
            pos bytes)
-       (or in-workbuf
-           (narrow-to-region (point) (+ (point) len)))
-       (if in-workbuf
-           (set-buffer-multibyte t))
+       (decode-coding-region (point-min) (point-max) 'ctext)
        (while (re-search-forward ctext-non-standard-encodings-regexp
                                  nil 'move)
          (setq pos (match-beginning 0))
          (if (match-beginning 1)
              ;; ESC % / [0-4] M L --ENCODING-NAME-- \002 --BYTES--
-             (let* ((M (char-after (+ pos 4)))
-                    (L (char-after (+ pos 5)))
+             (let* ((M (multibyte-char-to-unibyte (char-after (+ pos 4))))
+                    (L (multibyte-char-to-unibyte (char-after (+ pos 5))))
                     (encoding (match-string 2))
                     (encoding-info (assoc-string
                                     encoding
@@ -1478,33 +1449,46 @@ Each element must be one of the names listed in the variable
       (goto-char (point-min))
       (- (point-max) (point)))))
 
-;; Return a char table of extended segment usage for each character.
-;; Each value of the char table is nil, one of the elements of
-;; `ctext-non-standard-encodings-alist', or the symbol `utf-8'.
+;; Return an alist of CHARSET vs CTEXT-USAGE-INFO generated from
+;; `ctext-non-standard-encodings' and a list specified by the key
+;; `ctext-non-standard-encodings' for the currrent language
+;; environment.  CTEXT-USAGE-INFO is one of the element of
+;; `ctext-non-standard-encodings-alist' or nil.  In the former case, a
+;; character in CHARSET is encoded using extended segment.  In the
+;; latter case, a character in CHARSET is encoded using normal ISO2022
+;; designation sequence.  If a character is not in any of CHARSETs, it
+;; is encoded using UTF-8 encoding extention.
 
 (defun ctext-non-standard-encodings-table ()
-  (let ((table (make-char-table 'translation-table)))
-    (aset table (make-char 'mule-unicode-0100-24ff) 'utf-8)
-    (aset table (make-char 'mule-unicode-2500-33ff) 'utf-8)
-    (aset table (make-char 'mule-unicode-e000-ffff) 'utf-8)
-    (dolist (encoding (reverse
-                      (append
+  (let (table)
+    ;; Setup charsets specified by the key
+    ;; `ctext-non-standard-encodings' for the current language
+    ;; environment and in `ctext-non-standard-encodings'.
+    (dolist (encoding (append
                        (get-language-info current-language-environment
                                           'ctext-non-standard-encodings)
-                       ctext-non-standard-encodings)))
+                       ctext-non-standard-encodings))
       (let* ((slot (assoc encoding ctext-non-standard-encodings-alist))
             (charset (nth 3 slot)))
-       (if charset
-           (cond ((charsetp charset)
-                  (aset table (make-char charset) slot))
-                 ((listp charset)
-                  (dolist (elt charset)
-                    (aset table (make-char elt) slot)))
-                 ((char-table-p charset)
-                  (map-char-table #'(lambda (k v)
-                                  (if (and v (> k 128)) (aset table k slot)))
-                                  charset))))))
-    table))
+       (if (charsetp charset)
+           (push (cons charset slot) table)
+         (dolist (cs charset)
+           (push (cons cs slot) table)))))
+
+    ;; Next prepend charsets for ISO2022 designation sequence.
+    (dolist (charset charset-list)
+      (let ((final (plist-get (charset-plist charset) :iso-final-char)))
+       (if (and (integerp final)
+                (>= final #x40) (<= final #x7e)
+                ;; Exclude ascii and chinese-cns11643-X.
+                (not (eq charset 'ascii))
+                (not (string-match "cns11643" (symbol-name charset))))
+           (push (cons charset nil) table))))
+
+    ;; Returned reversed list so that the charsets specified by the
+    ;; key `ctext-non-standard-encodings' for the current language
+    ;; have the highest priority.
+    (nreverse table)))
 
 (defun ctext-pre-write-conversion (from to)
   "Encode characters between FROM and TO as Compound Text w/Extended Segments.
@@ -1513,39 +1497,40 @@ If FROM is a string, or if the current buffer is not the one set up for us
 by encode-coding-string, generate a new temp buffer, insert the
 text, and convert it in the temporary buffer.  Otherwise, convert in-place."
   (save-match-data
-    (let ((workbuf (get-buffer-create " *code-conversion-work*")))
-      ;; Setup a working buffer if necessary.
-      (cond ((stringp from)
-            (set-buffer workbuf)
-            (erase-buffer)
-            (set-buffer-multibyte (multibyte-string-p from))
-            (insert from))
-           ((not (eq (current-buffer) workbuf))
-            (let ((buf (current-buffer))
-                  (multibyte enable-multibyte-characters))
-              (set-buffer workbuf)
-              (erase-buffer)
-              (set-buffer-multibyte multibyte)
-              (insert-buffer-substring buf from to)))))
+    ;; Setup a working buffer if necessary.
+    (when (stringp from)
+      (set-buffer (generate-new-buffer " *temp"))
+      (set-buffer-multibyte (multibyte-string-p from))
+      (insert from))
 
     ;; Now we can encode the whole buffer.
     (let ((encoding-table (ctext-non-standard-encodings-table))
          last-coding-system-used
          last-pos last-encoding-info
-         encoding-info end-pos)
+         encoding-info end-pos ch)
       (goto-char (setq last-pos (point-min)))
       (setq end-pos (point-marker))
       (while (re-search-forward "[^\000-\177]+" nil t)
        ;; Found a sequence of non-ASCII characters.
        (setq last-pos (match-beginning 0)
-             last-encoding-info (aref encoding-table (char-after last-pos)))
+             ch (char-after last-pos)
+             last-encoding-info (catch 'tag
+                                  (dolist (elt encoding-table)
+                                    (if (encode-char ch (car elt))
+                                        (throw 'tag (cdr elt))))
+                                  'utf-8))
        (set-marker end-pos (match-end 0))
        (goto-char (1+ last-pos))
        (catch 'tag
          (while t
            (setq encoding-info
                  (if (< (point) end-pos)
-                     (aref encoding-table (following-char))))
+                     (catch 'tag
+                       (setq ch (following-char))
+                       (dolist (elt encoding-table)
+                         (if (encode-char ch (car elt))
+                             (throw 'tag (cdr elt))))
+                       'utf-8)))
            (unless (eq last-encoding-info encoding-info)
              (cond ((consp last-encoding-info)
                     ;; Encode the previous range using an extended
@@ -1557,14 +1542,18 @@ text, and convert it in the temporary buffer.  Otherwise, convert in-place."
                       (encode-coding-region last-pos (point) coding-system)
                       (setq len (+ (length encoding-name) 1
                                    (- (point) last-pos)))
+                      ;; According to the spec of CTEXT, it is not
+                      ;; necessary to produce this extra designation
+                      ;; sequence, but some buggy application
+                      ;; (e.g. crxvt-gb) requires it.
+                      (insert "\e(B")
                       (save-excursion
                         (goto-char last-pos)
-                        (insert (string-to-multibyte
-                                 (format "\e%%/%d%c%c%s\ 2"
-                                         noctets
-                                         (+ (/ len 128) 128)
-                                         (+ (% len 128) 128)
-                                         encoding-name))))))
+                        (insert (format "\e%%/%d" noctets))
+                        (insert-byte (+ (/ len 128) 128) 1)
+                        (insert-byte (+ (% len 128) 128) 1)
+                        (insert encoding-name)
+                        (insert 2))))
                    ((eq last-encoding-info 'utf-8)
                     ;; Encode the previous range using UTF-8 encoding
                     ;; extention.
@@ -1612,7 +1601,8 @@ and the contents of `file-coding-system-alist'."
   '(("^BABYL OPTIONS:[ \t]*-\\*-[ \t]*rmail[ \t]*-\\*-" . no-conversion)
     ("\\`\xFE\xFF" . utf-16be-with-signature)
     ("\\`\xFF\xFE" . utf-16le-with-signature)
-    ("\\`\xEF\xBB\xBF" . utf-8))
+    ("\\`\xEF\xBB\xBF" . utf-8)
+    ("\\`;ELC\024\0\0\0" . emacs-mule))        ; Emacs 20-compiled
   "Alist of patterns vs corresponding coding systems.
 Each element looks like (REGEXP . CODING-SYSTEM).
 A file whose first bytes match REGEXP is decoded by CODING-SYSTEM on reading.
@@ -1868,35 +1858,13 @@ The optional second arg VISIT non-nil means that we are visiting a file."
       (setq buffer-file-coding-system-explicit coding-system-for-read))
   (if last-coding-system-used
       (let ((coding-system
-            (find-new-buffer-file-coding-system last-coding-system-used))
-           (modified-p (buffer-modified-p)))
+            (find-new-buffer-file-coding-system last-coding-system-used)))
        (when coding-system
          ;; Tell set-buffer-file-coding-system not to mark the file
          ;; as modified; we just read it, and it's supposed to be unmodified.
          ;; Marking it modified would try to lock it, which would
          ;; check the modtime, and we don't want to do that again now.
-         (set-buffer-file-coding-system coding-system t t)
-         (if (and enable-multibyte-characters
-                  (or (eq coding-system 'no-conversion)
-                      (eq (coding-system-type coding-system) 5))
-                  ;; If buffer was unmodified and the size is the
-                  ;; same as INSERTED, we must be visiting it.
-                  (not modified-p)
-                  (= (buffer-size) inserted))
-             ;; For coding systems no-conversion and raw-text...,
-             ;; edit the buffer as unibyte.
-             (let ((pos-marker (copy-marker (+ (point) inserted)))
-                   ;; Prevent locking.
-                   (buffer-file-name nil))
-               (if visit
-                   ;; If we're doing this for find-file,
-                   ;; don't record undo info; this counts as
-                   ;; part of producing the buffer's initial contents.
-                   (let ((buffer-undo-list t))
-                     (set-buffer-multibyte nil))
-                 (set-buffer-multibyte nil))
-               (setq inserted (- pos-marker (point)))))
-         (restore-buffer-modified-p modified-p))))
+         (set-buffer-file-coding-system coding-system t t))))
   inserted)
 
 ;; The coding-spec and eol-type of coding-system returned is decided
@@ -1923,8 +1891,8 @@ Return nil if there's no need to set `buffer-file-coding-system'."
          ;; But eol-type is not yet set.
          (setq local-eol nil))
       (if (and buffer-file-coding-system
-              (not (eq (coding-system-type buffer-file-coding-system) t)))
-         ;; This is not `undecided'.
+              (not (eq (coding-system-type buffer-file-coding-system)
+                       'undecided)))
          (setq local-coding (coding-system-base buffer-file-coding-system)))
 
       (if (and (local-variable-p 'buffer-file-coding-system)
@@ -1938,9 +1906,7 @@ Return nil if there's no need to set `buffer-file-coding-system'."
            ;; But eol-type is not found.
            ;; If EOL conversions are inhibited, force unix eol-type.
            (setq found-eol (if inhibit-eol-conversion 0)))
-       (if (eq (coding-system-type coding) t)
-           (setq found-coding 'undecided)
-         (setq found-coding (coding-system-base coding)))
+       (setq found-coding (coding-system-base coding))
 
        (if (and (not found-eol) (eq found-coding 'undecided))
            ;; No valid coding information found.
@@ -2091,62 +2057,38 @@ translation in CCL programs.
 Each argument is a list of elements of the form (FROM . TO), where FROM
 is a character to be translated to TO.
 
-FROM can be a generic character (see `make-char').  In this case, TO is
-a generic character containing the same number of characters, or an
-ordinary character.  If FROM and TO are both generic characters, all
-characters belonging to FROM are translated to characters belonging to TO
-without changing their position code(s).
-
 The arguments and forms in each argument are processed in the given
 order, and if a previous form already translates TO to some other
 character, say TO-ALT, FROM is also translated to TO-ALT."
   (let ((table (make-char-table 'translation-table))
        revlist)
-    (while args
-      (let ((elts (car args)))
-       (while elts
-         (let* ((from (car (car elts)))
-                (from-i 0)             ; degree of freedom of FROM
-                (from-rev (nreverse (split-char from)))
-                (to (cdr (car elts)))
-                (to-i 0)               ; degree of freedom of TO
-                (to-rev (nreverse (split-char to))))
-           ;; Check numbers of heading 0s in FROM-REV and TO-REV.
-           (while (eq (car from-rev) 0)
-             (setq from-i (1+ from-i) from-rev (cdr from-rev)))
-           (while (eq (car to-rev) 0)
-             (setq to-i (1+ to-i) to-rev (cdr to-rev)))
-           (if (and (/= from-i to-i) (/= to-i 0))
-               (error "Invalid character pair (%d . %d)" from to))
-           ;; If we have already translated TO to TO-ALT, FROM should
-           ;; also be translated to TO-ALT.  But, this is only if TO
-           ;; is a generic character or TO-ALT is not a generic
-           ;; character.
-           (let ((to-alt (aref table to)))
-             (if (and to-alt
-                      (or (> to-i 0) (not (generic-char-p to-alt))))
-                 (setq to to-alt)))
-           (if (> from-i 0)
-               (set-char-table-default table from to)
-             (aset table from to))
-           ;; If we have already translated some chars to FROM, they
-           ;; should also be translated to TO.
-           (let ((l (assq from revlist)))
-             (if l
-                 (let ((ch (car l)))
-                   (setcar l to)
-                   (setq l (cdr l))
-                   (while l
-                     (aset table ch to)
-                     (setq l (cdr l)) ))))
-           ;; Now update REVLIST.
-           (let ((l (assq to revlist)))
-             (if l
-                 (setcdr l (cons from (cdr l)))
-               (setq revlist (cons (list to from) revlist)))))
-         (setq elts (cdr elts))))
-      (setq args (cdr args)))
+    (dolist (elts args)
+      (dolist (elt elts)
+       (let ((from (car elt))
+             (to (cdr elt))
+             to-alt rev-from rev-to)
+         ;; If we have already translated TO to TO-ALT, FROM should
+         ;; also be translated to TO-ALT.
+         (if (setq to-alt (aref table to))
+             (setq to to-alt))
+         (aset table from to)
+         ;; If we have already translated some chars to FROM, they
+         ;; should also be translated to TO.
+         (when (setq rev-from (assq from revlist))
+           (dolist (elt (cdr rev-from))
+             (aset table elt to))
+           (setq revlist (delq rev-from revlist)
+                 rev-from (cdr rev-from)))
+         ;; Now update REVLIST.
+         (setq rev-to (assq to revlist))
+         (if rev-to
+             (setcdr rev-to (cons from (cdr rev-to)))
+           (setq rev-to (list to from)
+                 revlist (cons rev-to revlist)))
+         (if rev-from
+             (setcdr rev-to (append rev-from (cdr rev-to)))))))
     ;; Return TABLE just created.
+    (set-char-table-extra-slot table 1 1)
     table))
 
 (defun make-translation-table-from-vector (vec)
@@ -2164,8 +2106,47 @@ See also the variable `nonascii-translation-table'."
        (if (>= ch 256)
            (aset rev-table ch i))))
     (set-char-table-extra-slot table 0 rev-table)
+    (set-char-table-extra-slot table 1 1)
+    (set-char-table-extra-slot rev-table 1 1)
     table))
 
+(defun make-translation-table-from-alist (alist)
+  "Make translation table from N<->M mapping in ALIST.
+ALIST is an alist, each element has the form (FROM . TO).
+FROM and TO are a character or a vector of characters.
+If FROM is a character, that character is translated to TO.
+If FROM is a vector of characters, that sequence is translated to TO.
+The first extra-slot of the value is a translation table for reverse mapping."
+  (let ((tables (vector (make-char-table 'translation-table)
+                       (make-char-table 'translation-table)))
+       table max-lookup from to idx val)
+    (dotimes (i 2)
+      (setq table (aref tables i))
+      (setq max-lookup 1)
+      (dolist (elt alist)
+       (if (= i 0)
+           (setq from (car elt) to (cdr elt))
+         (setq from (cdr elt) to (car elt)))
+       (if (characterp from)
+           (setq idx from)
+         (setq idx (aref from 0)
+               max-lookup (max max-lookup (length from))))
+       (setq val (aref table idx))
+       (if val
+           (progn
+             (or (consp val)
+                 (setq val (list (cons (vector idx) val))))
+             (if (characterp from)
+                 (setq from (vector from)))
+             (setq val (nconc val (list (cons from to)))))
+         (if (characterp from)
+             (setq val to)
+           (setq val (list (cons from to)))))
+       (aset table idx val))
+      (set-char-table-extra-slot table 1 max-lookup))
+    (set-char-table-extra-slot (aref tables 0) 0 (aref tables 1))
+    (aref tables 0)))
+
 (defun define-translation-table (symbol &rest args)
   "Define SYMBOL as the name of translation table made by ARGS.
 This sets up information so that the table can be used for
@@ -2236,7 +2217,7 @@ It returns the number of characters changed."
 (put 'with-category-table 'lisp-indent-function 1)
 
 (defmacro with-category-table (table &rest body)
-  "Evaluate BODY with category table of current buffer set to TABLE.
+  "Execute BODY like `progn' with CATEGORY-TABLE the current category table.
 The category table of the current buffer is saved, BODY is evaluated,
 then the saved table is restored, even in case of an abnormal exit.
 Value is what BODY returns."
@@ -2286,6 +2267,8 @@ Analogous to `define-translation-table', but updates
 (setq ignore-relative-composition
       (make-char-table 'ignore-relative-composition))
 
+(make-obsolete 'set-char-table-default
+              "Generic characters no longer exist" "23.1")
 
 ;;; Built-in auto-coding-functions:
 
index cddcf9867c2c7a8c7833562c0d55f3ebfffe8833..1975397359a7130a04359c56c5caeab7bfdaac4e 100644 (file)
@@ -800,7 +800,9 @@ The format of KBD-LAYOUT is the same as `quail-keyboard-layout'."
        (if translation
            (progn
              (if (consp translation)
-                 (setq translation (aref (cdr translation) 0)))
+                 (if (> (length (cdr translation)) 0)
+                     (setq translation (aref (cdr translation) 0))
+                   (setq translation " ")))
              (setq done-list (cons translation done-list)))
          (setq translation ch))
        (aset layout i translation))
@@ -1276,28 +1278,16 @@ The returned value is a Quail map specific to KEY."
 
 (defun quail-input-string-to-events (str)
   "Convert input string STR to a list of events.
-Do so while interleaving with the following special events:
-\(compose-last-chars LEN COMPONENTS)
-\(quail-advice INPUT-STRING)"
-  (let* ((events (mapcar
-                 (lambda (c)
-                   ;; This gives us the chance to unify on input
-                   ;; (e.g. using ucs-tables.el).
-                   (or (and translation-table-for-input
-                            (aref translation-table-for-input c))
-                       c))
-                 str))
-        (len (length str))
-        (idx len)
-        composition from to)
-    (while (and (> idx 0)
-               (setq composition (find-composition idx 0 str t)))
-      (setq from (car composition) to (nth 1 composition))
-      (setcdr (nthcdr (1- to) events)
-             (cons (list 'compose-last-chars (- to from)
-                         (and (not (nth 3 composition)) (nth 2 composition)))
-                   (nthcdr to events)))
-      (setq idx (1- from)))
+If STR has `advice' text property, append the following special event:
+\(quail-advice STR)"
+  (let ((events (mapcar
+                (lambda (c)
+                  ;; This gives us the chance to unify on input
+                  ;; (e.g. using ucs-tables.el).
+                  (or (and translation-table-for-input
+                           (aref translation-table-for-input c))
+                      c))
+                str)))
     (if (or (get-text-property 0 'advice str)
            (next-single-property-change 0 'advice str))
        (setq events
@@ -1597,7 +1587,10 @@ with more keys."
   "Return string to be shown as current translation of key sequence.
 LEN is the length of the sequence.  DEF is a definition part of the
 Quail map for the sequence."
-  (or (and (consp def) (aref (cdr def) (car (car def))))
+  (or (and (consp def)
+          (if (> (length (cdr def)) (car (car def)))
+              (aref (cdr def) (car (car def)))
+            ""))
       def
       (and (> len 1)
           (let* ((str (quail-get-current-str
@@ -2076,6 +2069,8 @@ minibuffer and the selected frame has no other windows)."
 
 (defun quail-get-translations ()
   "Return a string containing the current possible translations."
+  (or (multibyte-string-p quail-current-key)
+      (setq quail-current-key (string-to-multibyte quail-current-key)))
   (let ((map (quail-lookup-key quail-current-key nil t))
        (str (copy-sequence quail-current-key)))
     (if quail-current-translations
@@ -2084,7 +2079,7 @@ minibuffer and the selected frame has no other windows)."
     ;; Show the current key.
     (let ((guidance (quail-guidance)))
       (if (listp guidance)
-         ;; We must replace thetyped key with the specified PROMPTKEY.
+         ;; We must replace the typed key with the specified PROMPT-KEY.
          (dotimes (i (length str))
            (let ((prompt-key (cdr (assoc (aref str i) guidance))))
              (if prompt-key
@@ -2531,7 +2526,7 @@ physical keyboard layout as specified with that variable.
          (when (> num 0)
            (insert "
 KEY SEQUENCE
------------
+------------
 ")
            (if (quail-show-layout)
                (insert "You can also input more characters")
@@ -3024,8 +3019,8 @@ of each directory."
 
     ;; At last, write out LEIM list file.
     (with-current-buffer list-buf
-      (setq buffer-file-coding-system 'iso-2022-7bit)
-      (save-buffer 0))
+      (let ((coding-system-for-write 'iso-2022-7bit))
+       (save-buffer 0)))
     (kill-buffer list-buf)
     (message "Updating %s ... done" leim-list)))
 \f
diff --git a/lisp/international/robin.el b/lisp/international/robin.el
new file mode 100644 (file)
index 0000000..109f967
--- /dev/null
@@ -0,0 +1,575 @@
+;;; robin.el --- yet another input method (smaller than quail)
+
+;; Copyright (C) 2003, 2004, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number: H15PRO110
+
+;; Author: TAKAHASHI Naoto <ntakahas@m17n.org>
+;; Keywords: mule, multilingual, input method
+
+;; 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 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
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program; see the file COPYING.  If not, write to
+;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Comentary:
+
+;; Functionalities
+;; ---------------
+
+;; Robin is a new input method for GNU Emacs.  It has three
+;; functionalities:
+
+;; 1. It serves as a simple input method.  When the user types an ASCII
+;;    key sequence, robin converts it into a string.  This functionality
+;;    is most likely used to input non-ASCII characters.
+
+;; 2. It converts existing buffer substring into another string.
+;;    This functionality is similar to the 1. above, but the input is
+;;    buffer substring rather than key strokes.
+
+;; 3. It offers reverse conversion.  Each character produced by a
+;;    robin rule can hold the original ASCII sequence as a
+;;    char-code-property.
+
+
+;; How to define conversion rules
+;; ------------------------------
+
+;; Each conversion rule belongs to a robin package.  A robin package is
+;; identified by a string called package name.  Use robin-define-package
+;; to define a robin package.
+
+;; (robin-define-package NAME DOCTSTRING
+;;   (INPUT1 OUPUT1)
+;;   (INPUT2 OUPUT2)
+;;   ...)
+
+;; NAME is a string identifying the robin package.  It often starts with a
+;; language name and followed by a method name.  For example,
+;; french-postfix, greek-prefix, etc.
+
+;; DOCSTRING is a documentation string for the robin method.
+
+;; Each INPUTn is a string.  It represents a transliteration of the
+;; corresponding OUTPUTn.
+
+;; Each OUTPUTn is a string or a character that is to be inserted as the
+;; result of conversion.
+
+;; Neither INPUT* nor OUTPUT* are evaluated.  Do not use a variable or a
+;; function in those parts.  Instead, use a string or character literal
+;; directly.
+
+;; If multiple rules have the same input pattern but different output
+;; patterns, only the latest definition is effective.
+
+
+;; Example
+;; -------
+
+;; (robin-define-package "german-example"
+;;  "An example for German
+
+;; AE -> Ã„   OE -> Ã–   UE -> Ãœ
+;; ae -> Ã¤   oe -> Ã¶   ue -> Ã¼   ss -> ÃŸ
+
+;; Repeat E or S to input itself.
+
+;; AEE -> AE   OEE -> OE   UEE -> UE
+;; aee -> ae   oee -> oe   uee -> ue   sss -> ss"
+
+;;  ("AE" ?Ä)
+;;  ("OE" ?Ö)
+;;  ("UE" ?Ãœ)
+;;  ("ae" ?ä)
+;;  ("oe" ?ö)
+;;  ("ue" ?ü)
+;;  ("ss" ?ß)
+
+;;  ("AEE" "AE")
+;;  ("OEE" "OE")
+;;  ("UEE" "UE")
+;;  ("aee" "ae")
+;;  ("oee" "oe")
+;;  ("uee" "ue")
+;;  ("sss" "ss")
+;; )
+
+
+;; Using robin as an input method
+;; ------------------------------
+
+;; To use a defined robin package as an input method, register it with
+;; the register-input-method function.  For example,
+
+;; (register-input-method
+;;  "german-example"
+;;  "german"
+;;  'robin-use-package
+;;  "de"
+;;  "An example for German")
+
+;; The first argument is the robin package name.
+
+;; The second argument is the language environment for which this robin
+;; package is used.
+
+;; Use the symbol `robin-use-package' as the third argument.
+
+;; The fourth argument is the prompt that appears in modeline when this
+;; input method is active.
+
+;; The fifth argument is a documentation string; it may or may not be
+;; identical to the one that you specified in robin-define-package.
+
+;; You can activate the robin input method by typing
+
+;;  C-u C-\ german-example RET
+
+;; Just like a quail package, only C-\ suffices for subsequent
+;; invocation.
+
+
+;; Using robin as a buffer translator
+;; ----------------------------------
+
+;; To transliterate buffer substring, use the following functions.
+
+;; (robin-convert-buffer &optional name)
+
+;; Convert the content of current buffer using a robin package.
+
+;; NAME, if given, is a string specifying a robin package.  If NAME is
+;; not given or nil, the value of `robin-current-package-name' is used.
+
+;; (robin-convert-region begin end &optional name)
+
+;; Convert the region using a robin package.
+
+;; NAME, if given, is a string specifying a robin package.  If NAME is
+;; not given or nil, the value of `robin-current-package-name' is used.
+
+
+;; Reverse conversion
+;; ------------------
+
+;; If the output pattern defined in a robin rule is a character, robin
+;; gives to the character a char-code-property whose key is the symbol
+;; representation of the robin package name and whose value is the input
+;; pattern of that character.  For example, with the "german-example"
+;; definition above,
+
+;; (get-char-code-property ?Ä 'german-example) => "AE"
+
+;; etc.
+
+;; If you do not want to assign a char-code-property to a character, use
+;; a string of length one as the output pattern, e.g.
+
+;; (robin-define-package "german-example2"
+;;  "Another example for German."
+
+;;  ("AE" "Ä")
+;;  ("OE" "Ö")
+;;  ...)
+
+;; Then
+
+;; (get-char-code-property ?Ä 'german-example2) => nil
+
+;; etc.
+
+;; If multiple input patterns in a robin package generate the same
+;; character, the lastly used input pattern is given as the value of the
+;; char-code-property.
+
+;; There are two functions for reverse conversion.
+
+;; (robin-invert-buffer &optional name)
+
+;; Apply reverse conversion to the content of current buffer.  NAME, if
+;; given, is a string specifying a robin package.  If NAME is not given
+;; or nil, the value of `robin-current-package-name' is used.
+
+;; (robin-invert-region begin end &optional name)
+
+;; Apply reverse conversion to the region.  NAME, if given, is a string
+;; specifying a robin package.  If NAME is not given or nil, the value of
+;; `robin-current-package-name' is used.
+
+
+;; Modifying an existing rule
+;; --------------------------
+
+;; Use the robin-modify-package function to modify a rule already defined
+;; in a Robin package.
+
+;; (robin-modify-package name input output)
+
+;; Change a rule in an already defined Robin package.
+;; NAME is the string specifying a robin package.
+;; INPUT is a string that specifies the input pattern.
+;; OUTPUT is either a character or a string to be generated.
+
+
+;; The name of the game
+;; --------------------
+
+;; As stated in Murphy's law, it took longer than expected to develop the
+;; very first version of Japanese input subsystem in NEmacs (Nihongo
+;; Emacs).  So the subsystem was named "TAMAGO", which is an acronym of
+;; "TAkusan Matasete GOmennasai" (Sorry to have kept you waiting so
+;; long).  "Tamago" as a Japanese word means "egg", so the word "egg" was
+;; also used for related filenames and function names.
+
+;; Since it was designed to input CJK characters, Egg was rather big as a
+;; subsystem.  So later in Mule (Multilingual Enhancement to GNU Emacs),
+;; we designed and implemented a smaller input subsystem.  We had to give
+;; it a name.  "So, what's smaller than an egg?"  "A quail egg, of
+;; course."  Therefore it was named "quail".
+
+;; As time went by, quail became more and more complicated.  That
+;; tendency was inevitable as long as we support CJK input.  However, if
+;; we can limit ourselves to non-CJK characters, a much simpler
+;; transliteration mechanism suffices.  So I wrote "robin", whose name
+;; was chosen because a robin is smaller than a quail.  I could name it
+;; "hummingbird" or "nightingale", but those spellings seemed too long.
+
+
+;;; Code:
+
+(defvar robin-package-alist nil
+  "List of robin packages.
+A robin pacakge is of the form (NAME DOCSTRING &rest RULES).
+NAME is a string specifying a particular robin package.
+DOCSTRING is a documentation string for the robin package.
+
+RULE is of the form (KEY OUTPUT &rest rules).
+KEY is a string.
+OUTPUT is a character or a string.
+For example, if you evaluate the following,
+
+(robin-define-package \"test\" \"Uppercase input characters\"
+  (\"a\" \"A\")
+  (\"ab\" \"AB\")
+  (\"ac\" \"AC\")
+  (\"acd\" \"ACD\")
+  (\"ace\" \"ACE\")
+  (\"b\" \"B\"))
+
+this robin package will be the following.
+
+  (\"test\" \"Uppercase input characters\"
+   (?a \"A\" 
+       (?b \"AB\")
+       (?c \"AC\"
+          (?d \"ACD\")
+          (?e \"ACE\")))
+   (?b \"B\"))
+")
+
+;;;###autoload
+(defmacro robin-define-package (name docstring &rest rules)
+  "Define a robin package.
+
+NAME is the string of this robin package.
+DOCSTRING is the documentation string of this robin package.
+Each RULE is of the form (INPUT OUTPUT) where INPUT is a string and
+OUTPUT is either a character or a string.  RULES are not evaluated.
+
+If there already exists a robin package whose name is NAME, the new
+one replaces the old one."
+
+  (let ((iname (intern name))
+       (new (list name ""))            ; "" as a fake output
+       input output pairs)
+    (dolist (r rules)
+      (setq input (car r)
+           output (cadr r))
+      (robin-add-rule name new input output)
+      (cond
+       ((not (stringp input))
+       (error "Bad input sequence %S" r))
+       ((characterp output)
+       (setq pairs
+             (cons (cons input output)
+                   pairs)))
+       ((not (stringp output))
+       (error "Bad output pattern %S" r))))
+    (setcar (cdr new) docstring)       ; replace "" above with real docstring
+    `(let ((slot (assoc ,name robin-package-alist))
+          (newdef ',new)
+          (prop ',iname)
+          (lst ',pairs))
+       (if slot
+          (setcdr slot (cdr newdef))
+        (setq robin-package-alist
+              (cons newdef robin-package-alist)))
+       (dolist (l lst)
+        (put-char-code-property (cdr l) prop (car l))))))
+
+;;;###autoload
+(defun robin-modify-package (name input output)
+  "Change a rule in an already defined robin package.
+
+NAME is the string specifying a robin package.
+INPUT is a string that specifies the input pattern.
+OUTPUT is either a character or a string to be generated."
+
+  (let ((tree (assoc name robin-package-alist))
+       docstring)
+    (if (not tree)
+       (error "No such robin package")
+      (setq docstring (cadr tree))
+      (setcar (cdr tree) "")
+      (robin-add-rule name tree input output)
+      (setcar (cdr tree) docstring)
+      (if (characterp output)
+         (put-char-code-property output (intern name) input))))
+  output)
+
+(defun robin-add-rule (name tree input output)
+  "Add translation rule (INPUT OUTPUT) to TREE whose name is NAME.
+Internal use only."
+
+  (let* ((head (aref input 0))
+        (branch (assoc head tree))
+        (sofar (cadr tree)))
+
+    (if (= (length input) 1)
+       (if branch
+
+           ;; A definition already exists for this input.
+           ;; We do not cancel old char-code-property of OUTPUT
+           ;; so that n-to-1 reverse conversion is possible.
+           (setcar (cdr branch) output)
+
+         ;; New definition for this input.
+         (setcdr (last tree) (list (list head output))))
+
+      (unless branch
+       (if (characterp sofar)
+           (setq sofar (char-to-string sofar)))
+       (setq branch
+             (list head
+                   (concat sofar
+                           (char-to-string head))))
+       (setcdr (last tree) (list branch)))
+
+      (robin-add-rule name branch (substring input 1) output))))
+
+;;; Interactive use
+
+(defvar robin-mode nil
+  "If non-nil, `robin-input-method' is active.")
+(make-variable-buffer-local 'robin-mode)
+
+(defvar robin-current-package-name nil
+  "String representing the name of the current robin package.
+Nil means no packages is selected.")
+(make-variable-buffer-local 'robin-current-package-name)
+
+;;;###autoload
+(defun robin-use-package (name)
+  "Start using robin package NAME, which is a string."
+
+  (let ((package (assoc name robin-package-alist)))
+    (unless package
+      (error "No such robin package"))
+    (setq robin-current-package-name name)
+    (robin-activate)))
+
+(defun robin-inactivate ()
+  "Inactivate robin input method."
+
+  (interactive)
+  (robin-activate -1))
+
+(defun robin-activate (&optional arg)
+  "Activate robin input method.
+
+With ARG, activate robin input method iff ARG is positive.
+
+While this input method is active, the variable
+`input-method-function' is bound to the function `robin-input-method'."
+  (if (and arg
+          (< (prefix-numeric-value arg) 0))
+
+      ;; inactivate robin input method.
+      (unwind-protect
+         (progn
+           (setq robin-mode nil)
+           (setq describe-current-input-method-function nil)
+           (run-hooks 'robin-inactivate-hook))
+       (kill-local-variable 'input-method-function))
+
+    ;; activate robin input method.
+    (setq robin-mode t
+         describe-current-input-method-function 'robin-help
+         inactivate-current-input-method-function 'robin-inactivate)
+    (if (eq (selected-window) (minibuffer-window))
+       (add-hook 'minibuffer-exit-hook 'robin-exit-from-minibuffer))
+    (run-hooks 'input-method-activate-hook
+              'robin-activate-hook)
+    (set (make-local-variable 'input-method-function)
+        'robin-input-method)))
+
+(defun robin-exit-from-minibuffer ()
+  (inactivate-input-method)
+  (if (<= (minibuffer-depth) 1)
+      (remove-hook 'minibuffer-exit-hook 'robin-exit-from-minibuffer)))
+
+(defun robin-input-method (key)
+  "Interpret typed key sequence and insert into buffer."
+
+  (if (or buffer-read-only
+         overriding-terminal-local-map
+         overriding-local-map)
+      (list key)
+
+    (let ((echo-keystrokes 0)
+         (input-method-function nil)
+         (start (point))
+         (tree (cddr (assoc robin-current-package-name robin-package-alist)))
+         branch
+         output)
+
+      (while (setq branch (assq key tree))
+       (delete-region start (point))
+       (insert (setq output (cadr branch)))
+       (setq tree (cddr branch))
+       (if tree
+           (setq key (read-event))
+         (setq key nil)))
+
+      (if (null output)
+         ;; body of the `while' above was not executed
+         (list key)
+       (delete-region start (point))
+       (if key
+           (setq unread-command-events (list key)))
+       (if (stringp output)
+           (string-to-list output)
+         (list output))))))
+
+(defun robin-help ()
+  "Display the docstring of the current robin package."
+
+  (interactive)
+  (let ((buf (get-buffer-create "*Robin Help*"))
+       (doc (cadr (assoc robin-current-package-name robin-package-alist))))
+    (set-buffer buf)
+    (erase-buffer)
+    (insert doc)
+    (goto-char (point-min))
+    (display-buffer buf)))
+
+;;; Batch mode
+
+(defun robin-convert-buffer (&optional name)
+  "Convert the content of current buffer using a robin package.
+NAME, if given, is a string specifying a robin package.  If NAME
+is not given or nil, the value of `robin-current-package-name' is
+used."
+
+  (interactive "*")
+  (robin-convert-region (point-min) (point-max) name))
+
+(defun robin-convert-region (begin end &optional name)
+  "Convert the region using a robin package.
+NAME, if given, is a string specifying a robin package.  If NAME
+is not given or nil, the value of `robin-current-package-name' is
+used."
+
+  (interactive "*r")
+  (or name
+      (setq name robin-current-package-name)
+      (error "No robin package specified"))
+
+  (let ((tree (assoc name robin-package-alist)))
+    (unless tree
+      (error "No such robin package"))
+
+    (save-excursion
+      (save-restriction
+       (narrow-to-region begin end)
+       (goto-char (point-min))
+       (while (not (eobp))
+         (robin-convert-region-internal tree))))))
+
+(defun robin-convert-region-internal (tree)
+  "Apply a robin rule defined in TREE to the current point.
+Use the longest match method to select a rule."
+
+  (let ((begin (point))
+       end branch)
+    (while (setq branch (assq (following-char) tree))
+      (setq tree branch)
+      (forward-char 1))
+
+    (setq end (point))
+    (if (= begin end)
+       ;; no matching rule found; leave it as it is
+       (forward-char 1)
+      ;; replace the string
+      (goto-char begin)
+      (insert (cadr tree))
+      (delete-char (- end begin)))))
+
+;; for backward compatibility
+
+(fset 'robin-transliterate-region 'robin-convert-region)
+(fset 'robin-transliterate-buffer 'robin-convert-buffer)
+
+;;; Reverse conversion
+
+(defun robin-invert-buffer (&optional name)
+  "Apply reverse conversion to the content of current buffer.
+NAME, if given, is a string specifying a robin package.  If NAME
+is not given or nil, the value of `robin-current-package-name' is
+used."
+
+  (interactive "*")
+  (robin-invert-region (point-min) (point-max) name))
+
+(defun robin-invert-region (begin end &optional name)
+  "Apply reverse conversion to the region.
+NAME, if given, is a string specifying a robin package.  If NAME
+is not given or nil, the value of `robin-current-package-name' is
+used."
+
+  (interactive "*r")
+  (or name
+      (setq name robin-current-package-name)
+      (error "No robin package specified"))
+
+  (setq name (intern name))
+  (let (str)
+    (save-restriction
+      (narrow-to-region begin end)
+      (goto-char (point-min))
+      (while (not (eobp))
+       (if (not (setq str (get-char-code-property (following-char) name)))
+           (forward-char 1)
+         (insert str)
+         (delete-char 1))))))
+
+(provide 'robin)
+
+;;; Local Variables:
+;;; coding: utf-8-emacs
+;;; End:
+
+;; arch-tag: ba995140-7436-4a57-b875-747fc340f605
+;;; robin.el ends here
diff --git a/lisp/international/subst-big5.el b/lisp/international/subst-big5.el
deleted file mode 100644 (file)
index e744305..0000000
+++ /dev/null
@@ -1,13942 +0,0 @@
-;;; subst-big5.el --- Unicode/GB2312 translation     -*-coding: big5;-*-
-
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-
-;; Author: Dave Love <fx@gnu.org>
-;; Keywords: i18n
-
-;; This file 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 file 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Provides translation tables between Unicode and chinese-big5 for
-;; use by the `utf-translate-cjk-mode' option.  See subst-jis.el for the
-;; method used.
-
-;;; Code:
-
-(mapc
- (lambda (pair)
-   (let ((unicode (car pair))
-        (char (cadr pair)))
-     ;; exclude non-supporting components from decode table
-     (if (utf-translate-cjk-substitutable-p unicode)
-        (puthash unicode char ucs-unicode-to-mule-cjk))
-     (puthash char unicode ucs-mule-cjk-to-unicode)))
- '((#xa7 ?¡±)
-   (#xaf ?¡Â)
-   (#xb0 ?¢X)
-   (#xb1 ?¡Ó)
-   (#xb7 ?¡P)
-   (#xd7 ?¡Ñ)
-   (#xf7 ?¡Ò)
-   (#x2c7 ?£¾)
-   (#x2c9 ?£¼)
-   (#x2ca ?£½)
-   (#x2cb ?£¿)
-   (#x2cd ?¡Å)
-   (#x2d9 ?£»)
-   (#x391 ?£D)
-   (#x392 ?£E)
-   (#x393 ?£F)
-   (#x394 ?£G)
-   (#x395 ?£H)
-   (#x396 ?£I)
-   (#x397 ?£J)
-   (#x398 ?£K)
-   (#x399 ?£L)
-   (#x39a ?£M)
-   (#x39b ?£N)
-   (#x39c ?£O)
-   (#x39d ?£P)
-   (#x39e ?£Q)
-   (#x39f ?£R)
-   (#x3a0 ?£S)
-   (#x3a1 ?£T)
-   (#x3a3 ?£U)
-   (#x3a4 ?£V)
-   (#x3a5 ?£W)
-   (#x3a6 ?£X)
-   (#x3a7 ?£Y)
-   (#x3a8 ?£Z)
-   (#x3a9 ?£[)
-   (#x3b1 ?£\)
-   (#x3b2 ?£])
-   (#x3b3 ?£^)
-   (#x3b4 ?£_)
-   (#x3b5 ?£`)
-   (#x3b6 ?£a)
-   (#x3b7 ?£b)
-   (#x3b8 ?£c)
-   (#x3b9 ?£d)
-   (#x3ba ?£e)
-   (#x3bb ?£f)
-   (#x3bc ?£g)
-   (#x3bd ?£h)
-   (#x3be ?£i)
-   (#x3bf ?£j)
-   (#x3c0 ?£k)
-   (#x3c1 ?£l)
-   (#x3c3 ?£m)
-   (#x3c4 ?£n)
-   (#x3c5 ?£o)
-   (#x3c6 ?£p)
-   (#x3c7 ?£q)
-   (#x3c8 ?£r)
-   (#x3c9 ?£s)
-   (#x2013 ?¡V)
-   (#x2014 ?¡X)
-   (#x2018 ?¡¥)
-   (#x2019 ?¡¦)
-   (#x201c ?¡§)
-   (#x201d ?¡¨)
-   (#x2025 ?¡L)
-   (#x2026 ?¡K)
-   (#x2027 ?¡E)
-   (#x2032 ?¡¬)
-   (#x2035 ?¡«)
-   (#x203b ?¡°)
-   (#x20ac ?£á)
-   (#x2103 ?¢J)
-   (#x2105 ?¡Ã)
-   (#x2109 ?¢K)
-   (#x2160 ?¢¹)
-   (#x2161 ?¢º)
-   (#x2162 ?¢»)
-   (#x2163 ?¢¼)
-   (#x2164 ?¢½)
-   (#x2165 ?¢¾)
-   (#x2166 ?¢¿)
-   (#x2167 ?¢À)
-   (#x2168 ?¢Ã)
-   (#x2169 ?¢Â)
-   (#x2190 ?¡ö)
-   (#x2191 ?¡ô)
-   (#x2192 ?¡÷)
-   (#x2193 ?¡õ)
-   (#x2196 ?¡ø)
-   (#x2197 ?¡ù)
-   (#x2198 ?¡û)
-   (#x2199 ?¡ú)
-   (#x2215 ?¢A)
-   (#x221a ?¡Ô)
-   (#x221e ?¡Û)
-   (#x221f ?¡è)
-   (#x2220 ?¡ç)
-   (#x2223 ?¡ý)
-   (#x2225 ?¡ü)
-   (#x2229 ?¡ä)
-   (#x222a ?¡å)
-   (#x222b ?¡ì)
-   (#x222e ?¡í)
-   (#x2234 ?¡ï)
-   (#x2235 ?¡î)
-   (#x2252 ?¡Ü)
-   (#x2260 ?¡Ú)
-   (#x2261 ?¡Ã)
-   (#x2266 ?¡Ø)
-   (#x2267 ?¡Ù)
-   (#x2295 ?¡ò)
-   (#x2299 ?¡ó)
-   (#x22a5 ?¡æ)
-   (#x22bf ?¡é)
-   (#x2500 ?¢w)
-   (#x2502 ?¢x)
-   (#x250c ?¢z)
-   (#x2510 ?¢{)
-   (#x2514 ?¢|)
-   (#x2518 ?¢})
-   (#x251c ?¢u)
-   (#x2524 ?¢t)
-   (#x252c ?¢s)
-   (#x2534 ?¢r)
-   (#x253c ?¢q)
-   (#x2550 ?¢¤)
-   (#x2551 ?ùø)
-   (#x2552 ?ùæ)
-   (#x2553 ?ùï)
-   (#x2554 ?ùÃ)
-   (#x2555 ?ùè)
-   (#x2556 ?ùñ)
-   (#x2557 ?ùß)
-   (#x2558 ?ùì)
-   (#x2559 ?ùõ)
-   (#x255a ?ùã)
-   (#x255b ?ùî)
-   (#x255c ?ù÷)
-   (#x255d ?ùå)
-   (#x255e ?¢¥)
-   (#x255f ?ùò)
-   (#x2560 ?ùà)
-   (#x2561 ?¢§)
-   (#x2562 ?ùô)
-   (#x2563 ?ùâ)
-   (#x2564 ?ùç)
-   (#x2565 ?ùð)
-   (#x2566 ?ùÞ)
-   (#x2567 ?ùí)
-   (#x2568 ?ùö)
-   (#x2569 ?ùä)
-   (#x256a ?¢¦)
-   (#x256b ?ùó)
-   (#x256c ?ùá)
-   (#x256d ?¢~)
-   (#x256e ?¢¡)
-   (#x256f ?¢£)
-   (#x2570 ?¢¢)
-   (#x2571 ?¢¬)
-   (#x2572 ?¢­)
-   (#x2573 ?¢®)
-   (#x2574 ?¡Z)
-   (#x2581 ?¢b)
-   (#x2582 ?¢c)
-   (#x2583 ?¢d)
-   (#x2584 ?¢e)
-   (#x2585 ?¢f)
-   (#x2586 ?¢g)
-   (#x2587 ?¢h)
-   (#x2588 ?¢i)
-   (#x2589 ?¢p)
-   (#x258a ?¢o)
-   (#x258b ?¢n)
-   (#x258c ?¢m)
-   (#x258d ?¢l)
-   (#x258e ?¢k)
-   (#x258f ?¢j)
-   (#x2593 ?ùþ)
-   (#x2594 ?¢v)
-   (#x2595 ?¢y)
-   (#x25a0 ?¡½)
-   (#x25a1 ?¡¼)
-   (#x25b2 ?¡¶)
-   (#x25b3 ?¡µ)
-   (#x25bc ?¡¿)
-   (#x25bd ?¡¾)
-   (#x25c6 ?¡»)
-   (#x25c7 ?¡º)
-   (#x25cb ?¡³)
-   (#x25ce ?¡·)
-   (#x25cf ?¡´)
-   (#x25e2 ?¢¨)
-   (#x25e3 ?¢©)
-   (#x25e4 ?¢«)
-   (#x25e5 ?¢ª)
-   (#x2605 ?¡¹)
-   (#x2606 ?¡¸)
-   (#x2640 ?¡ð)
-   (#x2642 ?¡ñ)
-   (#x3000 ?¡@)
-   (#x3001 ?¡B)
-   (#x3002 ?¡C)
-   (#x3003 ?¡²)
-   (#x3008 ?\¡q)
-   (#x3009 ?\¡r)
-   (#x300a ?\¡m)
-   (#x300b ?\¡n)
-   (#x300c ?\¡u)
-   (#x300d ?\¡v)
-   (#x300e ?\¡y)
-   (#x300f ?\¡z)
-   (#x3010 ?\¡i)
-   (#x3011 ?\¡j)
-   (#x3012 ?¢E)
-   (#x3014 ?\¡e)
-   (#x3015 ?\¡f)
-   (#x301d ?¡©)
-   (#x301e ?¡ª)
-   (#x3021 ?¢Ã)
-   (#x3022 ?¢Ä)
-   (#x3023 ?¢Å)
-   (#x3024 ?¢Æ)
-   (#x3025 ?¢Ç)
-   (#x3026 ?¢È)
-   (#x3027 ?¢É)
-   (#x3028 ?¢Ê)
-   (#x3029 ?¢Ë)
-   (#x3105 ?£t)
-   (#x3106 ?£u)
-   (#x3107 ?£v)
-   (#x3108 ?£w)
-   (#x3109 ?£x)
-   (#x310a ?£y)
-   (#x310b ?£z)
-   (#x310c ?£{)
-   (#x310d ?£|)
-   (#x310e ?£})
-   (#x310f ?£~)
-   (#x3110 ?£¡)
-   (#x3111 ?£¢)
-   (#x3112 ?££)
-   (#x3113 ?£¤)
-   (#x3114 ?£¥)
-   (#x3115 ?£¦)
-   (#x3116 ?£§)
-   (#x3117 ?£¨)
-   (#x3118 ?£©)
-   (#x3119 ?£ª)
-   (#x311a ?£«)
-   (#x311b ?£¬)
-   (#x311c ?£­)
-   (#x311d ?£®)
-   (#x311e ?£¯)
-   (#x311f ?£°)
-   (#x3120 ?£±)
-   (#x3121 ?£²)
-   (#x3122 ?£³)
-   (#x3123 ?£´)
-   (#x3124 ?£µ)
-   (#x3125 ?£¶)
-   (#x3126 ?£·)
-   (#x3127 ?£¸)
-   (#x3128 ?£¹)
-   (#x3129 ?£º)
-   (#x32a3 ?¡À)
-   (#x338e ?¢U)
-   (#x338f ?¢V)
-   (#x339c ?¢P)
-   (#x339d ?¢Q)
-   (#x339e ?¢R)
-   (#x33a1 ?¢T)
-   (#x33c4 ?¢W)
-   (#x33ce ?¢S)
-   (#x33d1 ?¡ë)
-   (#x33d2 ?¡ê)
-   (#x33d5 ?¢O)
-   (#x4e00 ?¤@)
-   (#x4e01 ?¤B)
-   (#x4e03 ?¤C)
-   (#x4e07 ?ÉE)
-   (#x4e08 ?¤V)
-   (#x4e09 ?¤T)
-   (#x4e0a ?¤W)
-   (#x4e0b ?¤U)
-   (#x4e0c ?ÉF)
-   (#x4e0d ?¤£)
-   (#x4e0e ?ÉO)
-   (#x4e0f ?ÉM)
-   (#x4e10 ?¤¢)
-   (#x4e11 ?¤¡)
-   (#x4e14 ?Â¥B)
-   (#x4e15 ?Â¥A)
-   (#x4e16 ?Â¥@)
-   (#x4e18 ?Â¥C)
-   (#x4e19 ?¤þ)
-   (#x4e1e ?¥à)
-   (#x4e1f ?¥á)
-   (#x4e26 ?¨Ã)
-   (#x4e2b ?¤X)
-   (#x4e2d ?¤¤)
-   (#x4e2e ?ÉP)
-   (#x4e30 ?¤¥)
-   (#x4e31 ?Éc)
-   (#x4e32 ?¦ê)
-   (#x4e33 ?˱)
-   (#x4e38 ?¤Y)
-   (#x4e39 ?¤¦)
-   (#x4e3b ?Â¥D)
-   (#x4e3c ?Éd)
-   (#x4e42 ?É@)
-   (#x4e43 ?¤D)
-   (#x4e45 ?¤[)
-   (#x4e47 ?ÉG)
-   (#x4e48 ?¤\)
-   (#x4e4b ?¤§)
-   (#x4e4d ?Â¥E)
-   (#x4e4e ?Â¥G)
-   (#x4e4f ?Â¥F)
-   (#x4e52 ?¥â)
-   (#x4e53 ?¥ã)
-   (#x4e56 ?¨Ä)
-   (#x4e58 ?­¼)
-   (#x4e59 ?¤A)
-   (#x4e5c ?ÉA)
-   (#x4e5d ?¤E)
-   (#x4e5e ?¤^)
-   (#x4e5f ?¤])
-   (#x4e69 ?¥ä)
-   (#x4e73 ?¨Å)
-   (#x4e7e ?°®)
-   (#x4e7f ?ÔK)
-   (#x4e82 ?¶Ã)
-   (#x4e83 ?ܱ)
-   (#x4e84 ?ܲ)
-   (#x4e86 ?¤F)
-   (#x4e88 ?¤©)
-   (#x4e8b ?¨Æ)
-   (#x4e8c ?¤G)
-   (#x4e8d ?ÉH)
-   (#x4e8e ?¤_)
-   (#x4e91 ?¤ª)
-   (#x4e92 ?¤¬)
-   (#x4e93 ?ÉQ)
-   (#x4e94 ?¤­)
-   (#x4e95 ?¤«)
-   (#x4e99 ?¥å)
-   (#x4e9b ?¨Ç)
-   (#x4e9e ?¨È)
-   (#x4e9f ?«E)
-   (#x4ea1 ?¤`)
-   (#x4ea2 ?¤®)
-   (#x4ea4 ?¥æ)
-   (#x4ea5 ?¥è)
-   (#x4ea6 ?¥ç)
-   (#x4ea8 ?¦ë)
-   (#x4eab ?¨É)
-   (#x4eac ?¨Ê)
-   (#x4ead ?«F)
-   (#x4eae ?«G)
-   (#x4eb3 ?­½)
-   (#x4eb6 ?ܳ)
-   (#x4eb9 ?öÖ)
-   (#x4eba ?¤H)
-   (#x4ec0 ?¤°)
-   (#x4ec1 ?¤¯)
-   (#x4ec2 ?ÉR)
-   (#x4ec3 ?¤±)
-   (#x4ec4 ?¤·)
-   (#x4ec6 ?¤²)
-   (#x4ec7 ?¤³)
-   (#x4ec8 ?ÉT)
-   (#x4ec9 ?ÉS)
-   (#x4eca ?¤µ)
-   (#x4ecb ?¤¶)
-   (#x4ecd ?¤´)
-   (#x4ed4 ?Â¥J)
-   (#x4ed5 ?Â¥K)
-   (#x4ed6 ?Â¥L)
-   (#x4ed7 ?Â¥M)
-   (#x4ed8 ?Â¥I)
-   (#x4ed9 ?Â¥P)
-   (#x4eda ?Éj)
-   (#x4edc ?Éf)
-   (#x4edd ?Éi)
-   (#x4ede ?Â¥Q)
-   (#x4edf ?Â¥a)
-   (#x4ee1 ?Éh)
-   (#x4ee3 ?Â¥N)
-   (#x4ee4 ?Â¥O)
-   (#x4ee5 ?Â¥H)
-   (#x4ee8 ?Ée)
-   (#x4ee9 ?Ég)
-   (#x4ef0 ?¥õ)
-   (#x4ef1 ?É°)
-   (#x4ef2 ?¥ò)
-   (#x4ef3 ?¥ö)
-   (#x4ef4 ?ɺ)
-   (#x4ef5 ?É®)
-   (#x4ef6 ?¥ó)
-   (#x4ef7 ?ɲ)
-   (#x4efb ?¥ô)
-   (#x4efd ?¥÷)
-   (#x4eff ?¥é)
-   (#x4f00 ?ɱ)
-   (#x4f01 ?¥ø)
-   (#x4f02 ?ɵ)
-   (#x4f04 ?ɹ)
-   (#x4f05 ?ɶ)
-   (#x4f08 ?ɳ)
-   (#x4f09 ?¥ê)
-   (#x4f0a ?¥ì)
-   (#x4f0b ?¥ù)
-   (#x4f0d ?¥î)
-   (#x4f0e ?É«)
-   (#x4f0f ?¥ñ)
-   (#x4f10 ?¥ï)
-   (#x4f11 ?¥ð)
-   (#x4f12 ?É»)
-   (#x4f13 ?ɸ)
-   (#x4f14 ?ɯ)
-   (#x4f15 ?¥í)
-   (#x4f18 ?ɬ)
-   (#x4f19 ?¥ë)
-   (#x4f1d ?É´)
-   (#x4f22 ?É·)
-   (#x4f2c ?É­)
-   (#x4f2d ?Êf)
-   (#x4f2f ?§B)
-   (#x4f30 ?¦ô)
-   (#x4f33 ?Êg)
-   (#x4f34 ?¦ñ)
-   (#x4f36 ?§D)
-   (#x4f38 ?¦ù)
-   (#x4f3a ?¦ø)
-   (#x4f3b ?Ê[)
-   (#x4f3c ?¦ü)
-   (#x4f3d ?¦÷)
-   (#x4f3e ?Ê`)
-   (#x4f3f ?Êh)
-   (#x4f41 ?Êd)
-   (#x4f43 ?¦ú)
-   (#x4f46 ?¦ý)
-   (#x4f47 ?¦î)
-   (#x4f48 ?§G)
-   (#x4f49 ?Ê])
-   (#x4f4c ?˽)
-   (#x4f4d ?¦ì)
-   (#x4f4e ?§C)
-   (#x4f4f ?¦í)
-   (#x4f50 ?¦õ)
-   (#x4f51 ?¦ö)
-   (#x4f52 ?Êb)
-   (#x4f53 ?Ê^)
-   (#x4f54 ?¦û)
-   (#x4f55 ?¦ó)
-   (#x4f56 ?ÊZ)
-   (#x4f57 ?¦ï)
-   (#x4f58 ?Êe)
-   (#x4f59 ?§E)
-   (#x4f5a ?§H)
-   (#x4f5b ?¦ò)
-   (#x4f5c ?§@)
-   (#x4f5d ?§F)
-   (#x4f5e ?¦ð)
-   (#x4f5f ?Êc)
-   (#x4f60 ?§A)
-   (#x4f61 ?Êi)
-   (#x4f62 ?Ê\)
-   (#x4f63 ?¦þ)
-   (#x4f64 ?Ê_)
-   (#x4f67 ?Êa)
-   (#x4f69 ?¨Ø)
-   (#x4f6a ?Ë¿)
-   (#x4f6b ?ËË)
-   (#x4f6c ?¨Ã)
-   (#x4f6e ?ËÌ)
-   (#x4f6f ?¨Ë)
-   (#x4f70 ?¨Õ)
-   (#x4f73 ?¨Î)
-   (#x4f74 ?˹)
-   (#x4f75 ?¨Ö)
-   (#x4f76 ?˸)
-   (#x4f77 ?˼)
-   (#x4f78 ?ËÃ)
-   (#x4f79 ?ËÃ)
-   (#x4f7a ?¨Þ)
-   (#x4f7b ?¨Ù)
-   (#x4f7c ?˳)
-   (#x4f7d ?˵)
-   (#x4f7e ?¨Û)
-   (#x4f7f ?¨Ã)
-   (#x4f80 ?˶)
-   (#x4f81 ?ËÂ)
-   (#x4f82 ?ËÉ)
-   (#x4f83 ?¨Ô)
-   (#x4f84 ?Ë»)
-   (#x4f85 ?Ë´)
-   (#x4f86 ?¨Ó)
-   (#x4f87 ?Ë·)
-   (#x4f88 ?¨×)
-   (#x4f89 ?˺)
-   (#x4f8b ?¨Ò)
-   (#x4f8d ?¨Ã)
-   (#x4f8f ?¨Ü)
-   (#x4f90 ?ËÄ)
-   (#x4f91 ?¨Ã)
-   (#x4f92 ?ËÈ)
-   (#x4f94 ?ËÆ)
-   (#x4f95 ?ËÊ)
-   (#x4f96 ?¨Ú)
-   (#x4f97 ?˾)
-   (#x4f98 ?˲)
-   (#x4f9a ?ËÀ)
-   (#x4f9b ?¨Ñ)
-   (#x4f9c ?ËÅ)
-   (#x4f9d ?¨Ì)
-   (#x4f9e ?ËÇ)
-   (#x4fae ?«V)
-   (#x4faf ?«J)
-   (#x4fb2 ?Ãà)
-   (#x4fb3 ?Ãè)
-   (#x4fb5 ?«I)
-   (#x4fb6 ?«Q)
-   (#x4fb7 ?«])
-   (#x4fb9 ?Ãî)
-   (#x4fba ?Ãì)
-   (#x4fbb ?Ãç)
-   (#x4fbf ?«K)
-   (#x4fc0 ?Ãí)
-   (#x4fc1 ?Ãã)
-   (#x4fc2 ?«Y)
-   (#x4fc3 ?«P)
-   (#x4fc4 ?«X)
-   (#x4fc5 ?ÃÞ)
-   (#x4fc7 ?Ãê)
-   (#x4fc9 ?Ãá)
-   (#x4fca ?«T)
-   (#x4fcb ?Ãâ)
-   (#x4fcd ?ÃÃ)
-   (#x4fce ?«[)
-   (#x4fcf ?«N)
-   (#x4fd0 ?«W)
-   (#x4fd1 ?«M)
-   (#x4fd3 ?Ãß)
-   (#x4fd4 ?Ãä)
-   (#x4fd6 ?Ãë)
-   (#x4fd7 ?«U)
-   (#x4fd8 ?«R)
-   (#x4fd9 ?Ãæ)
-   (#x4fda ?«Z)
-   (#x4fdb ?Ãé)
-   (#x4fdc ?ÃÃ¥)
-   (#x4fdd ?«O)
-   (#x4fde ?«\)
-   (#x4fdf ?«S)
-   (#x4fe0 ?«L)
-   (#x4fe1 ?«H)
-   (#x4fec ?Ãï)
-   (#x4fee ?­×)
-   (#x4fef ?­Ã)
-   (#x4ff1 ?­Ñ)
-   (#x4ff3 ?­Ö)
-   (#x4ff4 ?ÃÃ)
-   (#x4ff5 ?ÃÃ)
-   (#x4ff6 ?ÃÔ)
-   (#x4ff7 ?ÃÕ)
-   (#x4ff8 ?­Ä)
-   (#x4ffa ?­Ã)
-   (#x4ffe ?­Ú)
-   (#x5000 ?­Î)
-   (#x5005 ?ÃÉ)
-   (#x5006 ?­Ç)
-   (#x5007 ?ÃÊ)
-   (#x5009 ?­Ü)
-   (#x500b ?­Ó)
-   (#x500c ?­¾)
-   (#x500d ?­¿)
-   (#x500e ?ÃÃ)
-   (#x500f ?°¿)
-   (#x5011 ?­Ì)
-   (#x5012 ?­Ë)
-   (#x5013 ?ÃË)
-   (#x5014 ?­Ã)
-   (#x5015 ?Ô[)
-   (#x5016 ?­Æ)
-   (#x5017 ?ÃÖ)
-   (#x5018 ?­Õ)
-   (#x5019 ?­Ô)
-   (#x501a ?­Ê)
-   (#x501b ?ÃÃŽ)
-   (#x501c ?Ã×)
-   (#x501e ?ÃÈ)
-   (#x501f ?­É)
-   (#x5020 ?ÃØ)
-   (#x5021 ?­Ò)
-   (#x5022 ?ÃÃŒ)
-   (#x5023 ?­À)
-   (#x5025 ?­Ã)
-   (#x5026 ?­Â)
-   (#x5027 ?ÃÙ)
-   (#x5028 ?­Ã)
-   (#x5029 ?­Å)
-   (#x502a ?­Ù)
-   (#x502b ?­Û)
-   (#x502c ?ÃÓ)
-   (#x502d ?­Ø)
-   (#x502f ?ÃÛ)
-   (#x5030 ?ÃÃ)
-   (#x5031 ?ÃÃœ)
-   (#x5033 ?ÃÑ)
-   (#x5035 ?ÃÚ)
-   (#x5037 ?ÃÃ’)
-   (#x503c ?­È)
-   (#x5040 ?Ôc)
-   (#x5041 ?ÔW)
-   (#x5043 ?°³)
-   (#x5045 ?Ô\)
-   (#x5046 ?Ôb)
-   (#x5047 ?°²)
-   (#x5048 ?ÔU)
-   (#x5049 ?°¶)
-   (#x504a ?ÔY)
-   (#x504b ?ÔR)
-   (#x504c ?°´)
-   (#x504d ?ÔV)
-   (#x504e ?°¹)
-   (#x504f ?°¾)
-   (#x5051 ?Ôg)
-   (#x5053 ?ÔQ)
-   (#x5055 ?°º)
-   (#x5057 ?Ôf)
-   (#x505a ?°µ)
-   (#x505b ?ÔX)
-   (#x505c ?°±)
-   (#x505d ?ÔS)
-   (#x505e ?ÔO)
-   (#x505f ?Ô])
-   (#x5060 ?ÔP)
-   (#x5061 ?ÔN)
-   (#x5062 ?ÔZ)
-   (#x5063 ?Ô`)
-   (#x5064 ?Ôa)
-   (#x5065 ?°·)
-   (#x5068 ?Ø[)
-   (#x5069 ?Ô^)
-   (#x506a ?ÔM)
-   (#x506b ?Ô_)
-   (#x506d ?°Ã)
-   (#x506e ?Ôd)
-   (#x506f ?°À)
-   (#x5070 ?ÔL)
-   (#x5072 ?ÔT)
-   (#x5073 ?Ôe)
-   (#x5074 ?°¼)
-   (#x5075 ?°»)
-   (#x5076 ?°¸)
-   (#x5077 ?°½)
-   (#x507a ?°¯)
-   (#x507d ?°°)
-   (#x5080 ?³È)
-   (#x5082 ?Ø^)
-   (#x5083 ?ØW)
-   (#x5085 ?³Å)
-   (#x5087 ?Ø_)
-   (#x508b ?ØU)
-   (#x508c ?ØX)
-   (#x508d ?³Ä)
-   (#x508e ?ØY)
-   (#x5091 ?³Ç)
-   (#x5092 ?Ø])
-   (#x5094 ?ØS)
-   (#x5095 ?ØR)
-   (#x5096 ?³É)
-   (#x5098 ?³Ê)
-   (#x5099 ?³Æ)
-   (#x509a ?³Ë)
-   (#x509b ?ØQ)
-   (#x509c ?Ø\)
-   (#x509d ?ØZ)
-   (#x509e ?ØT)
-   (#x50a2 ?³Ã)
-   (#x50a3 ?ØV)
-   (#x50ac ?¶Ê)
-   (#x50ad ?¶Ä)
-   (#x50ae ?Ü·)
-   (#x50af ?¶Ã)
-   (#x50b0 ?ܽ)
-   (#x50b1 ?ÜÀ)
-   (#x50b2 ?¶Æ)
-   (#x50b3 ?¶Ç)
-   (#x50b4 ?ܺ)
-   (#x50b5 ?¶Å)
-   (#x50b6 ?ÜÃ)
-   (#x50b7 ?¶Ë)
-   (#x50b8 ?ÜÄ)
-   (#x50ba ?Ü¿)
-   (#x50bb ?¶Ì)
-   (#x50bd ?Ü´)
-   (#x50be ?¶É)
-   (#x50bf ?ܵ)
-   (#x50c1 ?ܾ)
-   (#x50c2 ?ܼ)
-   (#x50c4 ?ܸ)
-   (#x50c5 ?¶È)
-   (#x50c6 ?ܶ)
-   (#x50c7 ?¶Î)
-   (#x50c8 ?Ü»)
-   (#x50c9 ?ÜÂ)
-   (#x50ca ?ܹ)
-   (#x50cb ?ÃœÃ)
-   (#x50ce ?¹¶)
-   (#x50cf ?¹³)
-   (#x50d1 ?¹´)
-   (#x50d3 ?àù)
-   (#x50d4 ?àñ)
-   (#x50d5 ?¹²)
-   (#x50d6 ?¹¯)
-   (#x50d7 ?àò)
-   (#x50da ?¹±)
-   (#x50db ?àõ)
-   (#x50dd ?à÷)
-   (#x50e0 ?àþ)
-   (#x50e3 ?àý)
-   (#x50e4 ?àø)
-   (#x50e5 ?¹®)
-   (#x50e6 ?àð)
-   (#x50e7 ?¹¬)
-   (#x50e8 ?àó)
-   (#x50e9 ?¹·)
-   (#x50ea ?àö)
-   (#x50ec ?àú)
-   (#x50ed ?¹°)
-   (#x50ee ?¹­)
-   (#x50ef ?àü)
-   (#x50f0 ?àû)
-   (#x50f1 ?¹µ)
-   (#x50f3 ?àô)
-   (#x50f5 ?»ø)
-   (#x50f6 ?äì)
-   (#x50f8 ?äé)
-   (#x50f9 ?»ù)
-   (#x50fb ?»÷)
-   (#x50fd ?äð)
-   (#x50fe ?äí)
-   (#x50ff ?äæ)
-   (#x5100 ?»ö)
-   (#x5102 ?»ú)
-   (#x5103 ?äç)
-   (#x5104 ?»õ)
-   (#x5105 ?»ý)
-   (#x5106 ?äê)
-   (#x5107 ?äë)
-   (#x5108 ?»û)
-   (#x5109 ?ȟ)
-   (#x510a ?äñ)
-   (#x510b ?äî)
-   (#x510c ?äï)
-   (#x5110 ?¾ª)
-   (#x5111 ?èø)
-   (#x5112 ?¾§)
-   (#x5113 ?èõ)
-   (#x5114 ?¾©)
-   (#x5115 ?¾«)
-   (#x5117 ?èö)
-   (#x5118 ?¾¨)
-   (#x511a ?è÷)
-   (#x511c ?èô)
-   (#x511f ?Àv)
-   (#x5120 ?ì½)
-   (#x5121 ?Àw)
-   (#x5122 ?ì»)
-   (#x5124 ?ì¼)
-   (#x5125 ?ìº)
-   (#x5126 ?ì¹)
-   (#x5129 ?ì¾)
-   (#x512a ?Àu)
-   (#x512d ?ï¸)
-   (#x512e ?ï¹)
-   (#x5130 ?äè)
-   (#x5131 ?ï·)
-   (#x5132 ?Àx)
-   (#x5133 ?Ã_)
-   (#x5134 ?ñë)
-   (#x5135 ?ñì)
-   (#x5137 ?Ä×)
-   (#x5138 ?ÄØ)
-   (#x5139 ?õÃ)
-   (#x513a ?õÀ)
-   (#x513b ?Ã…l)
-   (#x513c ?Ã…k)
-   (#x513d ?÷Ã)
-   (#x513f ?¤I)
-   (#x5140 ?¤a)
-   (#x5141 ?¤¹)
-   (#x5143 ?¤¸)
-   (#x5144 ?Â¥S)
-   (#x5145 ?Â¥R)
-   (#x5146 ?¥ü)
-   (#x5147 ?¥û)
-   (#x5148 ?¥ý)
-   (#x5149 ?¥ú)
-   (#x514b ?§J)
-   (#x514c ?§I)
-   (#x514d ?§K)
-   (#x5152 ?¨à)
-   (#x5154 ?¨ß)
-   (#x5155 ?¨á)
-   (#x5157 ?«^)
-   (#x5159 ?¢Y)
-   (#x515a ?ÃÞ)
-   (#x515b ?¢Z)
-   (#x515c ?°Â)
-   (#x515d ?¢\)
-   (#x515e ?¢[)
-   (#x515f ?Ø`)
-   (#x5161 ?¢])
-   (#x5162 ?¹¸)
-   (#x5163 ?¢^)
-   (#x5165 ?¤J)
-   (#x5167 ?¤º)
-   (#x5168 ?¥þ)
-   (#x5169 ?¨â)
-   (#x516b ?¤K)
-   (#x516c ?¤½)
-   (#x516d ?¤»)
-   (#x516e ?¤¼)
-   (#x5171 ?¦@)
-   (#x5175 ?§L)
-   (#x5176 ?¨ä)
-   (#x5177 ?¨ã)
-   (#x5178 ?¨å)
-   (#x517c ?­Ã)
-   (#x5180 ?¾¬)
-   (#x5187 ?ÉN)
-   (#x5189 ?Â¥T)
-   (#x518a ?Â¥U)
-   (#x518d ?¦A)
-   (#x518f ?Êj)
-   (#x5191 ?«`)
-   (#x5192 ?«_)
-   (#x5193 ?Ãà)
-   (#x5194 ?Ãß)
-   (#x5195 ?°Ã)
-   (#x5197 ?¤¾)
-   (#x5198 ?ÉU)
-   (#x519e ?ËÃ)
-   (#x51a0 ?«a)
-   (#x51a2 ?­à)
-   (#x51a4 ?­Þ)
-   (#x51a5 ?­ß)
-   (#x51aa ?¾­)
-   (#x51ac ?Â¥V)
-   (#x51b0 ?¦B)
-   (#x51b1 ?ɼ)
-   (#x51b6 ?§M)
-   (#x51b7 ?§N)
-   (#x51b9 ?Êk)
-   (#x51bc ?ËÎ)
-   (#x51bd ?¨æ)
-   (#x51be ?ËÃ)
-   (#x51c4 ?Ãâ)
-   (#x51c5 ?Ãã)
-   (#x51c6 ?­ã)
-   (#x51c8 ?Ãä)
-   (#x51ca ?Ãá)
-   (#x51cb ?­ä)
-   (#x51cc ?­â)
-   (#x51cd ?­á)
-   (#x51ce ?ÃÃ¥)
-   (#x51d0 ?Ôh)
-   (#x51d4 ?Øa)
-   (#x51d7 ?ÜÅ)
-   (#x51d8 ?á@)
-   (#x51dc ?»þ)
-   (#x51dd ?¾®)
-   (#x51de ?èù)
-   (#x51e0 ?¤L)
-   (#x51e1 ?¤Z)
-   (#x51f0 ?°Ä)
-   (#x51f1 ?³Ã)
-   (#x51f3 ?¹¹)
-   (#x51f5 ?ÉB)
-   (#x51f6 ?¤¿)
-   (#x51f8 ?Â¥Y)
-   (#x51f9 ?Â¥W)
-   (#x51fa ?Â¥X)
-   (#x51fd ?¨ç)
-   (#x5200 ?¤M)
-   (#x5201 ?¤N)
-   (#x5203 ?¤b)
-   (#x5206 ?¤À)
-   (#x5207 ?¤Ã)
-   (#x5208 ?¤Â)
-   (#x5209 ?ɾ)
-   (#x520a ?Â¥Z)
-   (#x520c ?Ék)
-   (#x520e ?¦F)
-   (#x5210 ?É¿)
-   (#x5211 ?¦D)
-   (#x5212 ?¦E)
-   (#x5213 ?ɽ)
-   (#x5216 ?¦G)
-   (#x5217 ?¦C)
-   (#x521c ?Êl)
-   (#x521d ?ªì)
-   (#x521e ?Êm)
-   (#x5221 ?Ên)
-   (#x5224 ?§P)
-   (#x5225 ?§O)
-   (#x5228 ?§S)
-   (#x5229 ?§Q)
-   (#x522a ?§R)
-   (#x522e ?¨í)
-   (#x5230 ?¨ì)
-   (#x5231 ?ËÔ)
-   (#x5232 ?ËÑ)
-   (#x5233 ?ËÒ)
-   (#x5235 ?ËÃ)
-   (#x5236 ?¨î)
-   (#x5237 ?¨ê)
-   (#x5238 ?¨é)
-   (#x523a ?¨ë)
-   (#x523b ?¨è)
-   (#x5241 ?¨ï)
-   (#x5243 ?«c)
-   (#x5244 ?Ãð)
-   (#x5246 ?ËÓ)
-   (#x5247 ?«h)
-   (#x5249 ?Ãñ)
-   (#x524a ?«d)
-   (#x524b ?«g)
-   (#x524c ?«f)
-   (#x524d ?«e)
-   (#x524e ?«b)
-   (#x5252 ?Ãè)
-   (#x5254 ?­ç)
-   (#x5255 ?Ãë)
-   (#x5256 ?­å)
-   (#x525a ?Ãç)
-   (#x525b ?­è)
-   (#x525c ?­æ)
-   (#x525d ?­é)
-   (#x525e ?Ãé)
-   (#x525f ?Ãê)
-   (#x5261 ?Ãæ)
-   (#x5262 ?Ãì)
-   (#x5269 ?³Ñ)
-   (#x526a ?°Å)
-   (#x526b ?Ôi)
-   (#x526c ?Ôk)
-   (#x526d ?Ôj)
-   (#x526e ?Ôl)
-   (#x526f ?°Æ)
-   (#x5272 ?³Î)
-   (#x5274 ?³Ã)
-   (#x5275 ?³Ã)
-   (#x5277 ?¶Ã)
-   (#x5278 ?ÜÇ)
-   (#x527a ?ÜÆ)
-   (#x527b ?ÜÈ)
-   (#x527c ?ÜÉ)
-   (#x527d ?¶Ñ)
-   (#x527f ?¶Ã)
-   (#x5280 ?áA)
-   (#x5281 ?áB)
-   (#x5282 ?¹»)
-   (#x5283 ?¹º)
-   (#x5284 ?ãZ)
-   (#x5287 ?¼@)
-   (#x5288 ?¼A)
-   (#x5289 ?¼B)
-   (#x528a ?¼D)
-   (#x528b ?äò)
-   (#x528c ?äó)
-   (#x528d ?¼C)
-   (#x5291 ?¾¯)
-   (#x5293 ?¾°)
-   (#x5296 ?ñí)
-   (#x5297 ?õÃ)
-   (#x5298 ?õÂ)
-   (#x5299 ?ք)
-   (#x529b ?¤O)
-   (#x529f ?Â¥\)
-   (#x52a0 ?Â¥[)
-   (#x52a3 ?¦H)
-   (#x52a6 ?ÉÀ)
-   (#x52a9 ?§U)
-   (#x52aa ?§V)
-   (#x52ab ?§T)
-   (#x52ac ?§W)
-   (#x52ad ?Êo)
-   (#x52ae ?Êp)
-   (#x52bb ?¨ñ)
-   (#x52bc ?ËÕ)
-   (#x52be ?¨ð)
-   (#x52c0 ?Ãò)
-   (#x52c1 ?«l)
-   (#x52c2 ?Ãó)
-   (#x52c3 ?«k)
-   (#x52c7 ?«i)
-   (#x52c9 ?«j)
-   (#x52cd ?Ãí)
-   (#x52d2 ?°Ç)
-   (#x52d3 ?Ôn)
-   (#x52d5 ?°Ê)
-   (#x52d6 ?Ôm)
-   (#x52d7 ?±å)
-   (#x52d8 ?°É)
-   (#x52d9 ?°È)
-   (#x52db ?³Ô)
-   (#x52dd ?³Ó)
-   (#x52de ?³Ò)
-   (#x52df ?¶Ò)
-   (#x52e2 ?¶Õ)
-   (#x52e3 ?¶Ö)
-   (#x52e4 ?¶Ô)
-   (#x52e6 ?¶Ó)
-   (#x52e9 ?áC)
-   (#x52eb ?áD)
-   (#x52ef ?äõ)
-   (#x52f0 ?¼E)
-   (#x52f1 ?äô)
-   (#x52f3 ?¾±)
-   (#x52f4 ?ì¿)
-   (#x52f5 ?Ày)
-   (#x52f7 ?ñî)
-   (#x52f8 ?ÄU)
-   (#x52fa ?¤c)
-   (#x52fb ?¤Ã)
-   (#x52fc ?ÉV)
-   (#x52fe ?¤Ä)
-   (#x52ff ?¤Å)
-   (#x5305 ?Â¥])
-   (#x5306 ?Â¥^)
-   (#x5308 ?¦I)
-   (#x5309 ?Êq)
-   (#x530a ?ËÖ)
-   (#x530b ?Ë×)
-   (#x530d ?«m)
-   (#x530e ?Ãî)
-   (#x530f ?°Ì)
-   (#x5310 ?°Ë)
-   (#x5311 ?Øc)
-   (#x5312 ?Øb)
-   (#x5315 ?¤P)
-   (#x5316 ?¤Æ)
-   (#x5317 ?Â¥_)
-   (#x5319 ?°Ã)
-   (#x531a ?ÉC)
-   (#x531c ?Él)
-   (#x531d ?Â¥`)
-   (#x531f ?ÉÂ)
-   (#x5320 ?¦K)
-   (#x5321 ?¦J)
-   (#x5322 ?ÉÃ)
-   (#x5323 ?§X)
-   (#x532a ?­ê)
-   (#x532d ?Ôo)
-   (#x532f ?¶×)
-   (#x5330 ?áE)
-   (#x5331 ?¹¼)
-   (#x5334 ?èú)
-   (#x5337 ?óý)
-   (#x5339 ?¤Ç)
-   (#x533c ?ËØ)
-   (#x533d ?Ãô)
-   (#x533e ?°Ã)
-   (#x533f ?°Î)
-   (#x5340 ?°Ã)
-   (#x5341 ?¤Q)
-   (#x5343 ?¤d)
-   (#x5344 ?¢Ã)
-   (#x5345 ?¤Ê)
-   (#x5347 ?¤É)
-   (#x5348 ?¤È)
-   (#x5349 ?Â¥c)
-   (#x534a ?Â¥b)
-   (#x534c ?Ém)
-   (#x534d ?ÉÃ)
-   (#x5351 ?¨õ)
-   (#x5352 ?¨ò)
-   (#x5353 ?¨ô)
-   (#x5354 ?¨ó)
-   (#x5357 ?«n)
-   (#x535a ?³Õ)
-   (#x535c ?¤R)
-   (#x535e ?¤Ë)
-   (#x5360 ?Â¥e)
-   (#x5361 ?Â¥d)
-   (#x5363 ?Êr)
-   (#x5366 ?¨ö)
-   (#x536c ?ÉW)
-   (#x536e ?Â¥g)
-   (#x536f ?Â¥f)
-   (#x5370 ?¦L)
-   (#x5371 ?¦M)
-   (#x5372 ?Ês)
-   (#x5373 ?§Y)
-   (#x5375 ?§Z)
-   (#x5377 ?¨÷)
-   (#x5378 ?¨ø)
-   (#x5379 ?¨ù)
-   (#x537b ?«o)
-   (#x537c ?Ãõ)
-   (#x537f ?­ë)
-   (#x5382 ?ÉD)
-   (#x5384 ?¤Ì)
-   (#x538a ?ÉÄ)
-   (#x538e ?Êt)
-   (#x538f ?Êu)
-   (#x5392 ?ËÙ)
-   (#x5394 ?ËÚ)
-   (#x5396 ?Ã÷)
-   (#x5397 ?Ãö)
-   (#x5398 ?Ãù)
-   (#x5399 ?Ãø)
-   (#x539a ?«p)
-   (#x539c ?Ôp)
-   (#x539d ?­í)
-   (#x539e ?Ãï)
-   (#x539f ?­ì)
-   (#x53a4 ?Ød)
-   (#x53a5 ?³Ö)
-   (#x53a7 ?Øe)
-   (#x53ac ?áF)
-   (#x53ad ?¹½)
-   (#x53b2 ?¼F)
-   (#x53b4 ?ñï)
-   (#x53b9 ?ÉX)
-   (#x53bb ?Â¥h)
-   (#x53c3 ?°Ñ)
-   (#x53c8 ?¤S)
-   (#x53c9 ?¤e)
-   (#x53ca ?¤Î)
-   (#x53cb ?¤Ã)
-   (#x53cd ?¤Ã)
-   (#x53d4 ?¨û)
-   (#x53d6 ?¨ú)
-   (#x53d7 ?¨ü)
-   (#x53db ?«q)
-   (#x53df ?­î)
-   (#x53e1 ?èû)
-   (#x53e2 ?ÂO)
-   (#x53e3 ?¤f)
-   (#x53e4 ?Â¥j)
-   (#x53e5 ?Â¥y)
-   (#x53e6 ?Â¥t)
-   (#x53e8 ?Â¥o)
-   (#x53e9 ?Â¥n)
-   (#x53ea ?Â¥u)
-   (#x53eb ?Â¥s)
-   (#x53ec ?Â¥l)
-   (#x53ed ?Â¥z)
-   (#x53ee ?Â¥m)
-   (#x53ef ?Â¥i)
-   (#x53f0 ?Â¥x)
-   (#x53f1 ?Â¥w)
-   (#x53f2 ?Â¥v)
-   (#x53f3 ?Â¥k)
-   (#x53f5 ?Â¥r)
-   (#x53f8 ?Â¥q)
-   (#x53fb ?Â¥{)
-   (#x53fc ?Â¥p)
-   (#x5401 ?¦S)
-   (#x5403 ?¦Y)
-   (#x5404 ?¦U)
-   (#x5406 ?¦[)
-   (#x5407 ?ÉÅ)
-   (#x5408 ?¦X)
-   (#x5409 ?¦N)
-   (#x540a ?¦Q)
-   (#x540b ?¦T)
-   (#x540c ?¦P)
-   (#x540d ?¦W)
-   (#x540e ?¦Z)
-   (#x540f ?¦O)
-   (#x5410 ?¦R)
-   (#x5411 ?¦V)
-   (#x5412 ?¦\)
-   (#x5418 ?Ê~)
-   (#x5419 ?Ê{)
-   (#x541b ?§g)
-   (#x541c ?Ê|)
-   (#x541d ?§[)
-   (#x541e ?§])
-   (#x541f ?§u)
-   (#x5420 ?§p)
-   (#x5424 ?Ê¥)
-   (#x5425 ?Ê})
-   (#x5426 ?§_)
-   (#x5427 ?§a)
-   (#x5428 ?ʤ)
-   (#x5429 ?§h)
-   (#x542a ?Êx)
-   (#x542b ?§t)
-   (#x542c ?§v)
-   (#x542d ?§\)
-   (#x542e ?§m)
-   (#x5430 ?Êv)
-   (#x5431 ?§s)
-   (#x5433 ?§d)
-   (#x5435 ?§n)
-   (#x5436 ?§o)
-   (#x5437 ?Êw)
-   (#x5438 ?§l)
-   (#x5439 ?§j)
-   (#x543b ?§k)
-   (#x543c ?§q)
-   (#x543d ?Ê¡)
-   (#x543e ?§^)
-   (#x5440 ?§r)
-   (#x5441 ?Ê£)
-   (#x5442 ?§f)
-   (#x5443 ?§c)
-   (#x5445 ?Êz)
-   (#x5446 ?§b)
-   (#x5447 ?ʦ)
-   (#x5448 ?§e)
-   (#x544a ?§i)
-   (#x544e ?§`)
-   (#x544f ?Ê¢)
-   (#x5454 ?Êy)
-   (#x5460 ?Ëë)
-   (#x5461 ?Ëê)
-   (#x5462 ?©O)
-   (#x5463 ?Ëí)
-   (#x5464 ?Ëï)
-   (#x5465 ?Ëä)
-   (#x5466 ?Ëç)
-   (#x5467 ?Ëî)
-   (#x5468 ?©P)
-   (#x546b ?Ëá)
-   (#x546c ?Ëå)
-   (#x546f ?Ëé)
-   (#x5470 ?ÃŽI)
-   (#x5471 ?©K)
-   (#x5472 ?ÃŽM)
-   (#x5473 ?¨ý)
-   (#x5474 ?Ëæ)
-   (#x5475 ?¨þ)
-   (#x5476 ?©L)
-   (#x5477 ?©E)
-   (#x5478 ?©A)
-   (#x547a ?Ëâ)
-   (#x547b ?©D)
-   (#x547c ?©I)
-   (#x547d ?©R)
-   (#x547e ?Ëã)
-   (#x547f ?ËÜ)
-   (#x5480 ?©C)
-   (#x5481 ?ËÃ)
-   (#x5482 ?Ëß)
-   (#x5484 ?©F)
-   (#x5486 ?©H)
-   (#x5487 ?ËÛ)
-   (#x5488 ?Ëà)
-   (#x548b ?©Q)
-   (#x548c ?©M)
-   (#x548d ?Ëè)
-   (#x548e ?©S)
-   (#x5490 ?©J)
-   (#x5491 ?ËÞ)
-   (#x5492 ?©G)
-   (#x5495 ?©B)
-   (#x5496 ?©@)
-   (#x5498 ?Ëì)
-   (#x549a ?©N)
-   (#x54a0 ?ÃŽH)
-   (#x54a1 ?Ãû)
-   (#x54a2 ?ÃŽK)
-   (#x54a5 ?Ãý)
-   (#x54a6 ?«x)
-   (#x54a7 ?Ǭ)
-   (#x54a8 ?«t)
-   (#x54a9 ?Ǥ)
-   (#x54aa ?«})
-   (#x54ab ?«¤)
-   (#x54ac ?«r)
-   (#x54ad ?Ãü)
-   (#x54ae ?ÃŽC)
-   (#x54af ?«£)
-   (#x54b0 ?ÃŽO)
-   (#x54b1 ?«¥)
-   (#x54b3 ?«y)
-   (#x54b6 ?ÃŽE)
-   (#x54b7 ?ÃŽB)
-   (#x54b8 ?«w)
-   (#x54ba ?Ãú)
-   (#x54bb ?«¦)
-   (#x54bc ?ÃŽJ)
-   (#x54bd ?«|)
-   (#x54be ?ÃŽL)
-   (#x54bf ?«©)
-   (#x54c0 ?«s)
-   (#x54c1 ?«~)
-   (#x54c2 ?«{)
-   (#x54c3 ?ÃŽ@)
-   (#x54c4 ?«¡)
-   (#x54c5 ?ÃŽF)
-   (#x54c6 ?ÃŽG)
-   (#x54c7 ?«z)
-   (#x54c8 ?«¢)
-   (#x54c9 ?«v)
-   (#x54ce ?«u)
-   (#x54cf ?Ãþ)
-   (#x54d6 ?ÃŽD)
-   (#x54de ?ÃŽN)
-   (#x54e0 ?ÑD)
-   (#x54e1 ?­û)
-   (#x54e2 ?Ãñ)
-   (#x54e4 ?Ãö)
-   (#x54e5 ?­ô)
-   (#x54e6 ?®@)
-   (#x54e7 ?Ãô)
-   (#x54e8 ?­ï)
-   (#x54e9 ?­ù)
-   (#x54ea ?­þ)
-   (#x54eb ?Ãû)
-   (#x54ed ?­ú)
-   (#x54ee ?­ý)
-   (#x54f1 ?Ãþ)
-   (#x54f2 ?­õ)
-   (#x54f3 ?Ãõ)
-   (#x54f7 ?ÑB)
-   (#x54f8 ?ÑC)
-   (#x54fa ?­÷)
-   (#x54fb ?ÑA)
-   (#x54fc ?­ó)
-   (#x54fd ?®C)
-   (#x54ff ?Ãø)
-   (#x5501 ?­ñ)
-   (#x5503 ?ÑF)
-   (#x5504 ?Ãù)
-   (#x5505 ?Ãý)
-   (#x5506 ?­ö)
-   (#x5507 ?®B)
-   (#x5508 ?Ãú)
-   (#x5509 ?­ü)
-   (#x550a ?Ñ@)
-   (#x550b ?ÑG)
-   (#x550c ?Ô¡)
-   (#x550e ?ÑE)
-   (#x550f ?®D)
-   (#x5510 ?­ð)
-   (#x5511 ?Ãü)
-   (#x5512 ?Ãó)
-   (#x5514 ?­ø)
-   (#x5517 ?Ãò)
-   (#x551a ?Ã÷)
-   (#x5526 ?Ãð)
-   (#x5527 ?®A)
-   (#x552a ?Ôw)
-   (#x552c ?°ä)
-   (#x552d ?Ô§)
-   (#x552e ?°â)
-   (#x552f ?°ß)
-   (#x5530 ?Ô|)
-   (#x5531 ?°Û)
-   (#x5532 ?Ô¢)
-   (#x5533 ?°æ)
-   (#x5534 ?Ôv)
-   (#x5535 ?Ô{)
-   (#x5536 ?Ôz)
-   (#x5537 ?­ò)
-   (#x5538 ?°á)
-   (#x5539 ?Ô¥)
-   (#x553b ?Ô¨)
-   (#x553c ?Ôs)
-   (#x553e ?³è)
-   (#x5540 ?Ô©)
-   (#x5541 ?°ç)
-   (#x5543 ?°Ù)
-   (#x5544 ?°Ö)
-   (#x5545 ?Ô~)
-   (#x5546 ?°Ó)
-   (#x5548 ?Ô¦)
-   (#x554a ?°Ú)
-   (#x554b ?Ôª)
-   (#x554d ?Ôt)
-   (#x554e ?Ô¤)
-   (#x554f ?°Ã)
-   (#x5550 ?Ôu)
-   (#x5551 ?Ôx)
-   (#x5552 ?Ô})
-   (#x5555 ?°Þ)
-   (#x5556 ?°Ü)
-   (#x5557 ?°è)
-   (#x555c ?°ã)
-   (#x555e ?°×)
-   (#x555f ?±Ò)
-   (#x5561 ?°Ø)
-   (#x5562 ?Ôy)
-   (#x5563 ?°å)
-   (#x5564 ?°à)
-   (#x5565 ?Ô£)
-   (#x5566 ?°Õ)
-   (#x556a ?°Ô)
-   (#x5575 ?Ôq)
-   (#x5576 ?Ôr)
-   (#x5577 ?Øj)
-   (#x557b ?³×)
-   (#x557c ?³Ú)
-   (#x557d ?Øu)
-   (#x557e ?³î)
-   (#x557f ?Øx)
-   (#x5580 ?³Ø)
-   (#x5581 ?Øq)
-   (#x5582 ?³Þ)
-   (#x5583 ?³ä)
-   (#x5584 ?µ½)
-   (#x5587 ?³â)
-   (#x5588 ?Øn)
-   (#x5589 ?³ï)
-   (#x558a ?³Û)
-   (#x558b ?³ã)
-   (#x558c ?Øv)
-   (#x558d ?Ü×)
-   (#x558e ?Ø{)
-   (#x558f ?Øo)
-   (#x5591 ?Øf)
-   (#x5592 ?Øs)
-   (#x5593 ?Øm)
-   (#x5594 ?³á)
-   (#x5595 ?Øy)
-   (#x5598 ?³Ã)
-   (#x5599 ?³ñ)
-   (#x559a ?³ê)
-   (#x559c ?³ß)
-   (#x559d ?³Ü)
-   (#x559f ?³ç)
-   (#x55a1 ?Øz)
-   (#x55a2 ?Øl)
-   (#x55a3 ?Ør)
-   (#x55a4 ?Øt)
-   (#x55a5 ?Øh)
-   (#x55a6 ?Øw)
-   (#x55a7 ?³Ù)
-   (#x55a8 ?Øg)
-   (#x55aa ?³à)
-   (#x55ab ?³ð)
-   (#x55ac ?³ì)
-   (#x55ad ?Øi)
-   (#x55ae ?³æ)
-   (#x55b1 ?³í)
-   (#x55b2 ?³é)
-   (#x55b3 ?³å)
-   (#x55b5 ?Øp)
-   (#x55bb ?³ë)
-   (#x55bf ?ÜÕ)
-   (#x55c0 ?ÜÑ)
-   (#x55c2 ?Üà)
-   (#x55c3 ?ÜÊ)
-   (#x55c4 ?ÜÓ)
-   (#x55c5 ?¶å)
-   (#x55c6 ?¶æ)
-   (#x55c7 ?¶Þ)
-   (#x55c8 ?ÜÜ)
-   (#x55c9 ?¶è)
-   (#x55ca ?ÃœÃ)
-   (#x55cb ?ÜÎ)
-   (#x55cc ?ÜÌ)
-   (#x55cd ?ÜÞ)
-   (#x55ce ?¶Ü)
-   (#x55cf ?ÜØ)
-   (#x55d0 ?ÃœÃ)
-   (#x55d1 ?¶ß)
-   (#x55d2 ?ÜÖ)
-   (#x55d3 ?¶Ú)
-   (#x55d4 ?ÜÒ)
-   (#x55d5 ?ÜÙ)
-   (#x55d6 ?ÜÛ)
-   (#x55d9 ?Üß)
-   (#x55da ?¶ã)
-   (#x55db ?ÜË)
-   (#x55dc ?¶Ã)
-   (#x55dd ?ÃœÃ)
-   (#x55df ?¶Ø)
-   (#x55e1 ?¶ä)
-   (#x55e2 ?ÜÚ)
-   (#x55e3 ?¶à)
-   (#x55e4 ?¶á)
-   (#x55e5 ?¶ç)
-   (#x55e6 ?¶Û)
-   (#x55e7 ?¢_)
-   (#x55e8 ?¶Ù)
-   (#x55e9 ?ÜÔ)
-   (#x55ef ?¶â)
-   (#x55f2 ?ÃœÃ)
-   (#x55f6 ?¹Ã)
-   (#x55f7 ?¹È)
-   (#x55f9 ?áU)
-   (#x55fa ?áQ)
-   (#x55fc ?áK)
-   (#x55fd ?¹Â)
-   (#x55fe ?¹¾)
-   (#x55ff ?áT)
-   (#x5600 ?¹¿)
-   (#x5601 ?áN)
-   (#x5602 ?áP)
-   (#x5604 ?áS)
-   (#x5606 ?¹Ä)
-   (#x5608 ?¹Ë)
-   (#x5609 ?¹Å)
-   (#x560c ?áI)
-   (#x560d ?¹Æ)
-   (#x560e ?¹Ç)
-   (#x560f ?áL)
-   (#x5610 ?¹Ì)
-   (#x5612 ?áJ)
-   (#x5613 ?áO)
-   (#x5614 ?¹Ã)
-   (#x5615 ?áH)
-   (#x5616 ?¹É)
-   (#x5617 ?¹Ã)
-   (#x561b ?¹À)
-   (#x561c ?áM)
-   (#x561d ?áR)
-   (#x561f ?¹Ê)
-   (#x5627 ?áG)
-   (#x5629 ?¼M)
-   (#x562a ?Ã¥G)
-   (#x562c ?Ã¥D)
-   (#x562e ?¼G)
-   (#x562f ?¼S)
-   (#x5630 ?¼T)
-   (#x5632 ?¼J)
-   (#x5633 ?Ã¥B)
-   (#x5634 ?¼L)
-   (#x5635 ?äù)
-   (#x5636 ?¼R)
-   (#x5638 ?Ã¥F)
-   (#x5639 ?¼I)
-   (#x563a ?Ã¥H)
-   (#x563b ?¼H)
-   (#x563d ?Ã¥C)
-   (#x563e ?Ã¥E)
-   (#x563f ?¼K)
-   (#x5640 ?Ã¥A)
-   (#x5641 ?äú)
-   (#x5642 ?ä÷)
-   (#x5645 ?Øk)
-   (#x5646 ?äý)
-   (#x5648 ?äö)
-   (#x5649 ?äü)
-   (#x564a ?äû)
-   (#x564c ?äø)
-   (#x564e ?¼O)
-   (#x5653 ?¼N)
-   (#x5657 ?¼P)
-   (#x5658 ?äþ)
-   (#x5659 ?¾²)
-   (#x565a ?Ã¥@)
-   (#x565e ?éE)
-   (#x5660 ?èý)
-   (#x5662 ?¾¾)
-   (#x5663 ?éB)
-   (#x5664 ?¾¶)
-   (#x5665 ?¾º)
-   (#x5666 ?éA)
-   (#x5668 ?¾¹)
-   (#x5669 ?¾µ)
-   (#x566a ?¾¸)
-   (#x566b ?¾³)
-   (#x566c ?¾½)
-   (#x566d ?éC)
-   (#x566e ?èþ)
-   (#x566f ?¾¼)
-   (#x5670 ?èü)
-   (#x5671 ?¾»)
-   (#x5672 ?éD)
-   (#x5673 ?é@)
-   (#x5674 ?¼Q)
-   (#x5676 ?¾¿)
-   (#x5677 ?éF)
-   (#x5678 ?¾·)
-   (#x5679 ?¾´)
-   (#x567e ?ìÆ)
-   (#x567f ?ìÈ)
-   (#x5680 ?À{)
-   (#x5681 ?ìÉ)
-   (#x5682 ?ìÇ)
-   (#x5683 ?ìÅ)
-   (#x5684 ?ìÄ)
-   (#x5685 ?À})
-   (#x5686 ?ìÃ)
-   (#x5687 ?À~)
-   (#x568c ?ìÃ)
-   (#x568d ?ìÂ)
-   (#x568e ?Àz)
-   (#x568f ?À¡)
-   (#x5690 ?À|)
-   (#x5693 ?ìÀ)
-   (#x5695 ?ÂP)
-   (#x5697 ?ï¼)
-   (#x5698 ?ïº)
-   (#x5699 ?ï¿)
-   (#x569a ?ï½)
-   (#x569c ?ï»)
-   (#x569d ?ï¾)
-   (#x56a5 ?Ã`)
-   (#x56a6 ?ñò)
-   (#x56a7 ?ñó)
-   (#x56a8 ?ÄV)
-   (#x56aa ?ñô)
-   (#x56ab ?ñð)
-   (#x56ac ?ñõ)
-   (#x56ad ?ññ)
-   (#x56ae ?ÂQ)
-   (#x56b2 ?óþ)
-   (#x56b3 ?ôA)
-   (#x56b4 ?ÄY)
-   (#x56b5 ?ô@)
-   (#x56b6 ?ÄX)
-   (#x56b7 ?ÄW)
-   (#x56bc ?ÄZ)
-   (#x56bd ?õÅ)
-   (#x56be ?õÆ)
-   (#x56c0 ?ÄÚ)
-   (#x56c1 ?ÄÙ)
-   (#x56c2 ?ÄÛ)
-   (#x56c3 ?õÄ)
-   (#x56c5 ?öØ)
-   (#x56c6 ?ö×)
-   (#x56c8 ?Ã…m)
-   (#x56c9 ?Ã…o)
-   (#x56ca ?Ã…n)
-   (#x56cb ?öÙ)
-   (#x56cc ?ÅÈ)
-   (#x56cd ?ø¦)
-   (#x56d1 ?Åñ)
-   (#x56d3 ?ø¥)
-   (#x56d4 ?øî)
-   (#x56d7 ?ÉI)
-   (#x56da ?Â¥})
-   (#x56db ?Â¥|)
-   (#x56dd ?¦_)
-   (#x56de ?¦^)
-   (#x56df ?ÉÇ)
-   (#x56e0 ?¦])
-   (#x56e1 ?ÉÆ)
-   (#x56e4 ?§y)
-   (#x56e5 ?Ê©)
-   (#x56e7 ?ʨ)
-   (#x56ea ?§w)
-   (#x56eb ?§z)
-   (#x56ee ?ʧ)
-   (#x56f0 ?§x)
-   (#x56f7 ?Ëð)
-   (#x56f9 ?Ëñ)
-   (#x56fa ?©T)
-   (#x56ff ?ǻ)
-   (#x5701 ?ÑH)
-   (#x5702 ?ÑI)
-   (#x5703 ?®E)
-   (#x5704 ?®F)
-   (#x5707 ?Ô¬)
-   (#x5708 ?°é)
-   (#x5709 ?°ë)
-   (#x570a ?Ô«)
-   (#x570b ?°ê)
-   (#x570c ?Ø|)
-   (#x570d ?³ò)
-   (#x5712 ?¶é)
-   (#x5713 ?¶ê)
-   (#x5714 ?Üá)
-   (#x5716 ?¹Ã)
-   (#x5718 ?¹Î)
-   (#x571a ?Ã¥I)
-   (#x571b ?éH)
-   (#x571c ?éG)
-   (#x571e ?ùk)
-   (#x571f ?¤g)
-   (#x5720 ?ÉY)
-   (#x5722 ?Én)
-   (#x5723 ?Éo)
-   (#x5728 ?¦b)
-   (#x5729 ?¦f)
-   (#x572a ?ÉÉ)
-   (#x572c ?¦d)
-   (#x572d ?¦c)
-   (#x572e ?ÉÈ)
-   (#x572f ?¦e)
-   (#x5730 ?¦a)
-   (#x5733 ?¦`)
-   (#x5734 ?ÉÊ)
-   (#x573b ?§¦)
-   (#x573e ?§£)
-   (#x5740 ?§})
-   (#x5741 ?ʪ)
-   (#x5745 ?Ê«)
-   (#x5747 ?§¡)
-   (#x5749 ?Ê­)
-   (#x574a ?§{)
-   (#x574b ?Ê®)
-   (#x574c ?ʬ)
-   (#x574d ?§~)
-   (#x574e ?§¢)
-   (#x574f ?§¥)
-   (#x5750 ?§¤)
-   (#x5751 ?§|)
-   (#x5752 ?ʯ)
-   (#x5761 ?©Y)
-   (#x5762 ?Ëþ)
-   (#x5764 ?©[)
-   (#x5766 ?©Z)
-   (#x5768 ?ÃŒ@)
-   (#x5769 ?©X)
-   (#x576a ?©W)
-   (#x576b ?Ëõ)
-   (#x576d ?Ëô)
-   (#x576f ?Ëò)
-   (#x5770 ?Ë÷)
-   (#x5771 ?Ëö)
-   (#x5772 ?Ëó)
-   (#x5773 ?Ëü)
-   (#x5774 ?Ëý)
-   (#x5775 ?Ëú)
-   (#x5776 ?Ëø)
-   (#x5777 ?©V)
-   (#x577b ?Ëû)
-   (#x577c ?©\)
-   (#x577d ?ÃŒA)
-   (#x5780 ?Ëù)
-   (#x5782 ?««)
-   (#x5783 ?©U)
-   (#x578b ?«¬)
-   (#x578c ?ÃŽT)
-   (#x578f ?ÃŽZ)
-   (#x5793 ?«²)
-   (#x5794 ?ÃŽX)
-   (#x5795 ?ÃŽ^)
-   (#x5797 ?ÃŽU)
-   (#x5798 ?ÃŽY)
-   (#x5799 ?ÃŽ[)
-   (#x579a ?ÃŽ])
-   (#x579b ?ÃŽW)
-   (#x579d ?ÃŽV)
-   (#x579e ?ÃŽQ)
-   (#x579f ?ÃŽR)
-   (#x57a0 ?«­)
-   (#x57a2 ?«¯)
-   (#x57a3 ?«®)
-   (#x57a4 ?ÃŽS)
-   (#x57a5 ?ÃŽ\)
-   (#x57ae ?«±)
-   (#x57b5 ?ÃŽP)
-   (#x57b6 ?ÑS)
-   (#x57b8 ?ÑR)
-   (#x57b9 ?ÑW)
-   (#x57ba ?ÑN)
-   (#x57bc ?ÑQ)
-   (#x57bd ?ÑP)
-   (#x57bf ?ÑT)
-   (#x57c1 ?ÑX)
-   (#x57c2 ?®G)
-   (#x57c3 ?®J)
-   (#x57c6 ?ÑO)
-   (#x57c7 ?ÑU)
-   (#x57cb ?®I)
-   (#x57cc ?ÑJ)
-   (#x57ce ?«°)
-   (#x57cf ?Ôº)
-   (#x57d0 ?ÑV)
-   (#x57d2 ?ÑM)
-   (#x57d4 ?®H)
-   (#x57d5 ?ÑL)
-   (#x57dc ?Ô±)
-   (#x57df ?°ì)
-   (#x57e0 ?°ð)
-   (#x57e1 ?ÔÃ)
-   (#x57e2 ?Ô¯)
-   (#x57e3 ?Ô½)
-   (#x57e4 ?°ñ)
-   (#x57e5 ?Ô¿)
-   (#x57e7 ?ÔÅ)
-   (#x57e9 ?ÔÉ)
-   (#x57ec ?ÔÀ)
-   (#x57ed ?Ô´)
-   (#x57ee ?Ô¼)
-   (#x57f0 ?ÔÊ)
-   (#x57f1 ?ÔÈ)
-   (#x57f2 ?Ô¾)
-   (#x57f3 ?Ô¹)
-   (#x57f4 ?Ô²)
-   (#x57f5 ?ئ)
-   (#x57f6 ?Ô°)
-   (#x57f7 ?°õ)
-   (#x57f8 ?Ô·)
-   (#x57f9 ?°ö)
-   (#x57fa ?°ò)
-   (#x57fb ?Ô­)
-   (#x57fc ?ÔÃ)
-   (#x57fd ?Ôµ)
-   (#x5800 ?Ô³)
-   (#x5801 ?ÔÆ)
-   (#x5802 ?°ó)
-   (#x5804 ?ÔÌ)
-   (#x5805 ?°í)
-   (#x5806 ?°ï)
-   (#x5807 ?Ô»)
-   (#x5808 ?Ô¶)
-   (#x5809 ?®K)
-   (#x580a ?°î)
-   (#x580b ?Ô¸)
-   (#x580c ?ÔÇ)
-   (#x580d ?ÔË)
-   (#x580e ?ÔÂ)
-   (#x5810 ?ÔÄ)
-   (#x5814 ?Ô®)
-   (#x5819 ?Ø¡)
-   (#x581b ?ت)
-   (#x581c ?Ø©)
-   (#x581d ?³ú)
-   (#x581e ?Ø¢)
-   (#x5820 ?³û)
-   (#x5821 ?³ù)
-   (#x5823 ?ؤ)
-   (#x5824 ?³ö)
-   (#x5825 ?ب)
-   (#x5827 ?Ø£)
-   (#x5828 ?Ø¥)
-   (#x5829 ?Ø})
-   (#x582a ?³ô)
-   (#x582c ?ز)
-   (#x582d ?ر)
-   (#x582e ?Ø®)
-   (#x582f ?³ó)
-   (#x5830 ?³÷)
-   (#x5831 ?³ø)
-   (#x5832 ?ÑK)
-   (#x5833 ?Ø«)
-   (#x5834 ?³õ)
-   (#x5835 ?°ô)
-   (#x5836 ?Ø­)
-   (#x5837 ?Ø~)
-   (#x5838 ?Ø°)
-   (#x5839 ?د)
-   (#x583b ?س)
-   (#x583d ?Üï)
-   (#x583f ?ج)
-   (#x5848 ?ا)
-   (#x5849 ?Üç)
-   (#x584a ?¶ô)
-   (#x584b ?¶÷)
-   (#x584c ?¶ò)
-   (#x584d ?Üæ)
-   (#x584e ?Üê)
-   (#x584f ?Üå)
-   (#x5851 ?¶ì)
-   (#x5852 ?¶ö)
-   (#x5853 ?Üâ)
-   (#x5854 ?¶ð)
-   (#x5855 ?Üé)
-   (#x5857 ?¶î)
-   (#x5858 ?¶í)
-   (#x5859 ?Üì)
-   (#x585a ?¶ï)
-   (#x585b ?Üî)
-   (#x585d ?Üë)
-   (#x585e ?¶ë)
-   (#x5862 ?¶õ)
-   (#x5863 ?Üð)
-   (#x5864 ?Üä)
-   (#x5865 ?Üí)
-   (#x5868 ?Üã)
-   (#x586b ?¶ñ)
-   (#x586d ?¶ó)
-   (#x586f ?Üè)
-   (#x5871 ?Üñ)
-   (#x5874 ?á])
-   (#x5875 ?¹Ã)
-   (#x5876 ?ác)
-   (#x5879 ?¹Õ)
-   (#x587a ?á_)
-   (#x587b ?áf)
-   (#x587c ?áW)
-   (#x587d ?¹×)
-   (#x587e ?¹Ñ)
-   (#x587f ?á\)
-   (#x5880 ?¼U)
-   (#x5881 ?á[)
-   (#x5882 ?ád)
-   (#x5883 ?¹Ò)
-   (#x5885 ?¹Ö)
-   (#x5886 ?áZ)
-   (#x5887 ?á`)
-   (#x5888 ?áe)
-   (#x5889 ?áV)
-   (#x588a ?¹Ô)
-   (#x588b ?á^)
-   (#x588e ?áb)
-   (#x588f ?áh)
-   (#x5890 ?áX)
-   (#x5891 ?áa)
-   (#x5893 ?¹Ó)
-   (#x5894 ?ág)
-   (#x5898 ?áY)
-   (#x589c ?¼Y)
-   (#x589d ?Ã¥K)
-   (#x589e ?¼W)
-   (#x589f ?¼V)
-   (#x58a0 ?Ã¥M)
-   (#x58a1 ?Ã¥R)
-   (#x58a3 ?Ã¥N)
-   (#x58a5 ?Ã¥Q)
-   (#x58a6 ?¼\)
-   (#x58a8 ?¾¥)
-   (#x58a9 ?¼[)
-   (#x58ab ?Ã¥J)
-   (#x58ac ?Ã¥P)
-   (#x58ae ?¼Z)
-   (#x58af ?Ã¥O)
-   (#x58b1 ?Ã¥L)
-   (#x58b3 ?¼X)
-   (#x58ba ?éM)
-   (#x58bb ?ùÙ)
-   (#x58bc ?éO)
-   (#x58bd ?éJ)
-   (#x58be ?¾Ã)
-   (#x58bf ?éL)
-   (#x58c1 ?¾À)
-   (#x58c2 ?éN)
-   (#x58c5 ?¾Ã)
-   (#x58c6 ?éP)
-   (#x58c7 ?¾Â)
-   (#x58c8 ?éI)
-   (#x58c9 ?éK)
-   (#x58ce ?À¥)
-   (#x58cf ?ìÌ)
-   (#x58d1 ?À¤)
-   (#x58d2 ?ìÃ)
-   (#x58d3 ?À£)
-   (#x58d4 ?ìË)
-   (#x58d5 ?À¢)
-   (#x58d6 ?ìÊ)
-   (#x58d8 ?ÂS)
-   (#x58d9 ?ÂR)
-   (#x58da ?ñö)
-   (#x58db ?ñø)
-   (#x58dd ?ñ÷)
-   (#x58de ?Ãa)
-   (#x58df ?Ãb)
-   (#x58e2 ?Ãc)
-   (#x58e3 ?ôB)
-   (#x58e4 ?Ä[)
-   (#x58e7 ?÷Ó)
-   (#x58e8 ?÷Ò)
-   (#x58e9 ?Åò)
-   (#x58eb ?¤h)
-   (#x58ec ?¤Ã)
-   (#x58ef ?§§)
-   (#x58f4 ?ÃŽ_)
-   (#x58f9 ?³ü)
-   (#x58fa ?³ý)
-   (#x58fc ?Üò)
-   (#x58fd ?¹Ø)
-   (#x58fe ?ái)
-   (#x58ff ?Ã¥S)
-   (#x5903 ?ÉZ)
-   (#x5906 ?Ê°)
-   (#x590c ?ÃŒB)
-   (#x590d ?ÃŽ`)
-   (#x590e ?ÑY)
-   (#x590f ?®L)
-   (#x5912 ?ñù)
-   (#x5914 ?ÄÜ)
-   (#x5915 ?¤i)
-   (#x5916 ?Â¥~)
-   (#x5917 ?Ép)
-   (#x5919 ?¦g)
-   (#x591a ?¦h)
-   (#x591c ?©])
-   (#x5920 ?°÷)
-   (#x5922 ?¹Ú)
-   (#x5924 ?¹Û)
-   (#x5925 ?¹Ù)
-   (#x5927 ?¤j)
-   (#x5929 ?¤Ñ)
-   (#x592a ?¤Ó)
-   (#x592b ?¤Ò)
-   (#x592c ?É[)
-   (#x592d ?¤Ô)
-   (#x592e ?¥¡)
-   (#x592f ?Éq)
-   (#x5931 ?¥¢)
-   (#x5937 ?¦i)
-   (#x5938 ?¦j)
-   (#x593c ?ÉË)
-   (#x593e ?§¨)
-   (#x5940 ?ʱ)
-   (#x5944 ?©a)
-   (#x5945 ?ÃŒC)
-   (#x5947 ?©_)
-   (#x5948 ?©`)
-   (#x5949 ?©^)
-   (#x594a ?ÑZ)
-   (#x594e ?Ǧ)
-   (#x594f ?«µ)
-   (#x5950 ?«·)
-   (#x5951 ?«´)
-   (#x5953 ?ÃŽa)
-   (#x5954 ?©b)
-   (#x5955 ?«³)
-   (#x5957 ?®M)
-   (#x5958 ?®N)
-   (#x595a ?®O)
-   (#x595c ?ÔÃ)
-   (#x5960 ?³þ)
-   (#x5961 ?Ø´)
-   (#x5962 ?°ø)
-   (#x5967 ?¶ø)
-   (#x5969 ?¹Ã)
-   (#x596a ?¹Ü)
-   (#x596b ?áj)
-   (#x596d ?¼])
-   (#x596e ?¾Ä)
-   (#x5970 ?ïÀ)
-   (#x5971 ?öÚ)
-   (#x5972 ?÷Ô)
-   (#x5973 ?¤k)
-   (#x5974 ?¥£)
-   (#x5976 ?¥¤)
-   (#x5977 ?ÉÑ)
-   (#x5978 ?¦l)
-   (#x5979 ?¦o)
-   (#x597b ?ÉÃ)
-   (#x597c ?ÉÃ)
-   (#x597d ?¦n)
-   (#x597e ?ÉÃ)
-   (#x597f ?ÉÒ)
-   (#x5980 ?ÉÌ)
-   (#x5981 ?¦q)
-   (#x5982 ?¦p)
-   (#x5983 ?¦m)
-   (#x5984 ?¦k)
-   (#x5985 ?ÉÎ)
-   (#x598a ?§³)
-   (#x598d ?§°)
-   (#x598e ?ʶ)
-   (#x598f ?ʹ)
-   (#x5990 ?ʸ)
-   (#x5992 ?§ª)
-   (#x5993 ?§²)
-   (#x5996 ?§¯)
-   (#x5997 ?ʵ)
-   (#x5998 ?ʳ)
-   (#x5999 ?§®)
-   (#x599d ?§©)
-   (#x599e ?§¬)
-   (#x59a0 ?Ê´)
-   (#x59a1 ?Ê»)
-   (#x59a2 ?Ê·)
-   (#x59a3 ?§­)
-   (#x59a4 ?§±)
-   (#x59a5 ?§´)
-   (#x59a6 ?ʲ)
-   (#x59a7 ?ʺ)
-   (#x59a8 ?§«)
-   (#x59ae ?©g)
-   (#x59af ?©o)
-   (#x59b1 ?ÃŒO)
-   (#x59b2 ?ÃŒH)
-   (#x59b3 ?©p)
-   (#x59b4 ?ÃŒS)
-   (#x59b5 ?ÃŒD)
-   (#x59b6 ?ÃŒK)
-   (#x59b9 ?©f)
-   (#x59ba ?ÃŒE)
-   (#x59bb ?©d)
-   (#x59bc ?ÃŒL)
-   (#x59bd ?ÃŒP)
-   (#x59be ?©c)
-   (#x59c0 ?ÃŒQ)
-   (#x59c1 ?ÃŒJ)
-   (#x59c3 ?ÃŒM)
-   (#x59c5 ?©r)
-   (#x59c6 ?©i)
-   (#x59c7 ?ÃŒT)
-   (#x59c8 ?ÃŒR)
-   (#x59ca ?©n)
-   (#x59cb ?©l)
-   (#x59cc ?ÃŒI)
-   (#x59cd ?©k)
-   (#x59ce ?ÃŒG)
-   (#x59cf ?ÃŒF)
-   (#x59d0 ?©j)
-   (#x59d1 ?©h)
-   (#x59d2 ?©q)
-   (#x59d3 ?©m)
-   (#x59d4 ?©e)
-   (#x59d6 ?ÃŒN)
-   (#x59d8 ?«¹)
-   (#x59da ?«À)
-   (#x59db ?ÃŽo)
-   (#x59dc ?«¸)
-   (#x59dd ?ÃŽg)
-   (#x59de ?ÃŽc)
-   (#x59e0 ?ÃŽs)
-   (#x59e1 ?ÃŽb)
-   (#x59e3 ?«»)
-   (#x59e4 ?ÃŽl)
-   (#x59e5 ?«¾)
-   (#x59e6 ?«Ã)
-   (#x59e8 ?«¼)
-   (#x59e9 ?ÃŽp)
-   (#x59ea ?«¿)
-   (#x59ec ?®V)
-   (#x59ed ?ÃŽv)
-   (#x59ee ?ÃŽd)
-   (#x59f1 ?ÃŽf)
-   (#x59f2 ?ÃŽm)
-   (#x59f3 ?ÃŽq)
-   (#x59f4 ?ÃŽu)
-   (#x59f5 ?ÃŽr)
-   (#x59f6 ?ÃŽk)
-   (#x59f7 ?ÃŽn)
-   (#x59fa ?ÃŽh)
-   (#x59fb ?«Ã)
-   (#x59fc ?ÃŽj)
-   (#x59fd ?ÃŽi)
-   (#x59fe ?ÃŽt)
-   (#x59ff ?Ǽ)
-   (#x5a00 ?ÃŽe)
-   (#x5a01 ?«Â)
-   (#x5a03 ?«½)
-   (#x5a09 ?®\)
-   (#x5a0a ?Ñb)
-   (#x5a0c ?®[)
-   (#x5a0f ?Ñ`)
-   (#x5a11 ?®P)
-   (#x5a13 ?®U)
-   (#x5a15 ?Ñ_)
-   (#x5a16 ?Ñ\)
-   (#x5a17 ?Ña)
-   (#x5a18 ?®Q)
-   (#x5a19 ?Ñ[)
-   (#x5a1b ?®T)
-   (#x5a1c ?®R)
-   (#x5a1e ?Ñc)
-   (#x5a1f ?®S)
-   (#x5a20 ?®W)
-   (#x5a23 ?®X)
-   (#x5a25 ?®Z)
-   (#x5a29 ?®Y)
-   (#x5a2d ?Ñ])
-   (#x5a2e ?Ñ^)
-   (#x5a33 ?Ñd)
-   (#x5a35 ?ÔÔ)
-   (#x5a36 ?°ù)
-   (#x5a37 ?ØÂ)
-   (#x5a38 ?ÔÓ)
-   (#x5a39 ?Ôæ)
-   (#x5a3c ?±@)
-   (#x5a3e ?Ôä)
-   (#x5a40 ?°þ)
-   (#x5a41 ?°ú)
-   (#x5a42 ?Ôí)
-   (#x5a43 ?ÔÃ)
-   (#x5a44 ?Ôà)
-   (#x5a46 ?±C)
-   (#x5a47 ?Ôê)
-   (#x5a48 ?Ôâ)
-   (#x5a49 ?°û)
-   (#x5a4a ?±D)
-   (#x5a4c ?Ôç)
-   (#x5a4d ?Ôå)
-   (#x5a50 ?ÔÖ)
-   (#x5a51 ?Ôë)
-   (#x5a52 ?Ôß)
-   (#x5a53 ?ÔÚ)
-   (#x5a55 ?ÔÃ)
-   (#x5a56 ?Ôì)
-   (#x5a57 ?ÔÜ)
-   (#x5a58 ?ÔÃ)
-   (#x5a5a ?±B)
-   (#x5a5b ?Ôá)
-   (#x5a5c ?Ôî)
-   (#x5a5d ?ÔÞ)
-   (#x5a5e ?ÔÒ)
-   (#x5a5f ?Ô×)
-   (#x5a60 ?ÔÎ)
-   (#x5a62 ?±A)
-   (#x5a64 ?ÔÛ)
-   (#x5a65 ?ÔØ)
-   (#x5a66 ?°ü)
-   (#x5a67 ?ÔÑ)
-   (#x5a69 ?Ôé)
-   (#x5a6a ?°ý)
-   (#x5a6c ?ÔÙ)
-   (#x5a6d ?ÔÕ)
-   (#x5a70 ?Ôè)
-   (#x5a77 ?´@)
-   (#x5a78 ?Ø»)
-   (#x5a7a ?ظ)
-   (#x5a7b ?ØÉ)
-   (#x5a7c ?ؽ)
-   (#x5a7d ?ØÊ)
-   (#x5a7f ?´B)
-   (#x5a83 ?ØÆ)
-   (#x5a84 ?ØÃ)
-   (#x5a8a ?ØÄ)
-   (#x5a8b ?ØÇ)
-   (#x5a8c ?ØË)
-   (#x5a8e ?Ôã)
-   (#x5a8f ?ØÃ)
-   (#x5a90 ?ÃG)
-   (#x5a92 ?´C)
-   (#x5a93 ?ØÎ)
-   (#x5a94 ?ض)
-   (#x5a95 ?ØÀ)
-   (#x5a97 ?ØÅ)
-   (#x5a9a ?´A)
-   (#x5a9b ?´D)
-   (#x5a9c ?ØÌ)
-   (#x5a9d ?ØÃ)
-   (#x5a9e ?غ)
-   (#x5a9f ?Ø·)
-   (#x5aa2 ?ع)
-   (#x5aa5 ?ؾ)
-   (#x5aa6 ?ؼ)
-   (#x5aa7 ?´E)
-   (#x5aa9 ?ØÈ)
-   (#x5aac ?Ø¿)
-   (#x5aae ?ØÃ)
-   (#x5aaf ?ص)
-   (#x5ab0 ?Üú)
-   (#x5ab1 ?Üø)
-   (#x5ab2 ?·B)
-   (#x5ab3 ?·@)
-   (#x5ab4 ?ÃC)
-   (#x5ab5 ?Üù)
-   (#x5ab6 ?ÃD)
-   (#x5ab7 ?Ã@)
-   (#x5ab8 ?Ü÷)
-   (#x5ab9 ?ÃF)
-   (#x5aba ?Üö)
-   (#x5abb ?Üý)
-   (#x5abc ?¶þ)
-   (#x5abd ?¶ý)
-   (#x5abe ?¶ü)
-   (#x5abf ?Üû)
-   (#x5ac0 ?ÃA)
-   (#x5ac1 ?¶ù)
-   (#x5ac2 ?·A)
-   (#x5ac4 ?Üô)
-   (#x5ac6 ?Üþ)
-   (#x5ac7 ?Üó)
-   (#x5ac8 ?Üü)
-   (#x5ac9 ?¶ú)
-   (#x5aca ?ÃB)
-   (#x5acb ?Üõ)
-   (#x5acc ?¶û)
-   (#x5acd ?ÃE)
-   (#x5ad5 ?án)
-   (#x5ad6 ?¹â)
-   (#x5ad7 ?¹á)
-   (#x5ad8 ?¹ã)
-   (#x5ad9 ?áz)
-   (#x5ada ?áp)
-   (#x5adb ?áv)
-   (#x5adc ?ák)
-   (#x5add ?áy)
-   (#x5ade ?áx)
-   (#x5adf ?á|)
-   (#x5ae0 ?áu)
-   (#x5ae1 ?¹Þ)
-   (#x5ae2 ?át)
-   (#x5ae3 ?¹ä)
-   (#x5ae5 ?ám)
-   (#x5ae6 ?¹ß)
-   (#x5ae8 ?á{)
-   (#x5ae9 ?¹à)
-   (#x5aea ?áo)
-   (#x5aeb ?ár)
-   (#x5aec ?áw)
-   (#x5aed ?áq)
-   (#x5aee ?ál)
-   (#x5af3 ?ás)
-   (#x5af4 ?Ã¥U)
-   (#x5af5 ?¼a)
-   (#x5af6 ?Ã¥X)
-   (#x5af7 ?Ã¥W)
-   (#x5af8 ?Ã¥Z)
-   (#x5af9 ?Ã¥\)
-   (#x5afa ?ùÜ)
-   (#x5afb ?¼_)
-   (#x5afd ?Ã¥V)
-   (#x5aff ?Ã¥T)
-   (#x5b01 ?Ã¥])
-   (#x5b02 ?Ã¥[)
-   (#x5b03 ?Ã¥Y)
-   (#x5b05 ?Ã¥_)
-   (#x5b07 ?Ã¥^)
-   (#x5b08 ?¼c)
-   (#x5b09 ?¼^)
-   (#x5b0b ?¼`)
-   (#x5b0c ?¼b)
-   (#x5b0f ?Ã¥`)
-   (#x5b10 ?éW)
-   (#x5b13 ?éV)
-   (#x5b14 ?éU)
-   (#x5b16 ?éX)
-   (#x5b17 ?éQ)
-   (#x5b19 ?éR)
-   (#x5b1a ?éZ)
-   (#x5b1b ?éS)
-   (#x5b1d ?¾Å)
-   (#x5b1e ?é\)
-   (#x5b20 ?é[)
-   (#x5b21 ?éT)
-   (#x5b23 ?ìÑ)
-   (#x5b24 ?ˬ)
-   (#x5b25 ?ìÃ)
-   (#x5b26 ?ìÔ)
-   (#x5b27 ?ìÓ)
-   (#x5b28 ?éY)
-   (#x5b2a ?ˤ)
-   (#x5b2c ?ìÒ)
-   (#x5b2d ?ìÎ)
-   (#x5b2e ?ìÖ)
-   (#x5b2f ?ìÕ)
-   (#x5b30 ?À¦)
-   (#x5b32 ?ìÃ)
-   (#x5b34 ?¾Æ)
-   (#x5b38 ?ÂT)
-   (#x5b3c ?ïÃ)
-   (#x5b3d ?ñú)
-   (#x5b3e ?ñû)
-   (#x5b3f ?ñü)
-   (#x5b40 ?Ä\)
-   (#x5b43 ?Ä])
-   (#x5b45 ?ôC)
-   (#x5b47 ?õÈ)
-   (#x5b48 ?õÇ)
-   (#x5b4b ?öÛ)
-   (#x5b4c ?öÜ)
-   (#x5b4d ?÷Õ)
-   (#x5b4e ?ø§)
-   (#x5b50 ?¤l)
-   (#x5b51 ?¤m)
-   (#x5b53 ?¤n)
-   (#x5b54 ?¤Õ)
-   (#x5b55 ?¥¥)
-   (#x5b56 ?ÉÓ)
-   (#x5b57 ?¦r)
-   (#x5b58 ?¦s)
-   (#x5b5a ?§·)
-   (#x5b5b ?§¸)
-   (#x5b5c ?§¶)
-   (#x5b5d ?§µ)
-   (#x5b5f ?©s)
-   (#x5b62 ?ÃŒU)
-   (#x5b63 ?©u)
-   (#x5b64 ?©t)
-   (#x5b65 ?ÃŒV)
-   (#x5b69 ?«Ä)
-   (#x5b6b ?®])
-   (#x5b6c ?Ñe)
-   (#x5b6e ?Ôð)
-   (#x5b70 ?±E)
-   (#x5b71 ?´G)
-   (#x5b72 ?Ôï)
-   (#x5b73 ?´F)
-   (#x5b75 ?¹å)
-   (#x5b77 ?á})
-   (#x5b78 ?¾Ç)
-   (#x5b7a ?À©)
-   (#x5b7b ?ì×)
-   (#x5b7d ?Ä^)
-   (#x5b7f ?Ã…p)
-   (#x5b81 ?Ér)
-   (#x5b83 ?¥¦)
-   (#x5b84 ?És)
-   (#x5b85 ?¦v)
-   (#x5b87 ?¦t)
-   (#x5b88 ?¦u)
-   (#x5b89 ?¦w)
-   (#x5b8b ?§º)
-   (#x5b8c ?§¹)
-   (#x5b8e ?ʼ)
-   (#x5b8f ?§»)
-   (#x5b92 ?ʽ)
-   (#x5b93 ?ÃŒW)
-   (#x5b95 ?ÃŒX)
-   (#x5b97 ?©v)
-   (#x5b98 ?©x)
-   (#x5b99 ?©z)
-   (#x5b9a ?©w)
-   (#x5b9b ?©{)
-   (#x5b9c ?©y)
-   (#x5ba2 ?«È)
-   (#x5ba3 ?«Å)
-   (#x5ba4 ?«Ç)
-   (#x5ba5 ?«É)
-   (#x5ba6 ?«Æ)
-   (#x5ba7 ?Ñf)
-   (#x5ba8 ?ÃŽw)
-   (#x5bac ?Ñh)
-   (#x5bad ?Ñg)
-   (#x5bae ?®c)
-   (#x5bb0 ?®_)
-   (#x5bb3 ?®`)
-   (#x5bb4 ?®b)
-   (#x5bb5 ?®d)
-   (#x5bb6 ?®a)
-   (#x5bb8 ?®f)
-   (#x5bb9 ?®e)
-   (#x5bbf ?±J)
-   (#x5bc0 ?Ôò)
-   (#x5bc1 ?Ôñ)
-   (#x5bc2 ?±I)
-   (#x5bc4 ?±H)
-   (#x5bc5 ?±G)
-   (#x5bc6 ?±K)
-   (#x5bc7 ?±F)
-   (#x5bca ?ØÕ)
-   (#x5bcb ?ØÒ)
-   (#x5bcc ?´I)
-   (#x5bcd ?ØÑ)
-   (#x5bce ?ØÖ)
-   (#x5bd0 ?´K)
-   (#x5bd1 ?ØÔ)
-   (#x5bd2 ?´H)
-   (#x5bd3 ?´J)
-   (#x5bd4 ?ØÓ)
-   (#x5bd6 ?ÃH)
-   (#x5bd8 ?ÃI)
-   (#x5bd9 ?ÃJ)
-   (#x5bde ?¹æ)
-   (#x5bdf ?¹î)
-   (#x5be0 ?á~)
-   (#x5be1 ?¹è)
-   (#x5be2 ?¹ì)
-   (#x5be3 ?á¡)
-   (#x5be4 ?¹í)
-   (#x5be5 ?¹é)
-   (#x5be6 ?¹ê)
-   (#x5be7 ?¹ç)
-   (#x5be8 ?¹ë)
-   (#x5be9 ?¼f)
-   (#x5bea ?ØÃ)
-   (#x5beb ?¼g)
-   (#x5bec ?¼e)
-   (#x5bee ?¼d)
-   (#x5bef ?é])
-   (#x5bf0 ?¾È)
-   (#x5bf1 ?ìØ)
-   (#x5bf2 ?ìÙ)
-   (#x5bf5 ?Ãd)
-   (#x5bf6 ?Ä_)
-   (#x5bf8 ?¤o)
-   (#x5bfa ?¦x)
-   (#x5c01 ?«Ê)
-   (#x5c03 ?Ñi)
-   (#x5c04 ?®g)
-   (#x5c07 ?±N)
-   (#x5c08 ?±M)
-   (#x5c09 ?±L)
-   (#x5c0a ?´L)
-   (#x5c0b ?´M)
-   (#x5c0c ?Ø×)
-   (#x5c0d ?¹ï)
-   (#x5c0e ?¾É)
-   (#x5c0f ?¤p)
-   (#x5c10 ?É\)
-   (#x5c11 ?¤Ö)
-   (#x5c12 ?Ét)
-   (#x5c15 ?ÉÔ)
-   (#x5c16 ?¦y)
-   (#x5c1a ?©|)
-   (#x5c1f ?ÃK)
-   (#x5c22 ?¤q)
-   (#x5c24 ?¤×)
-   (#x5c25 ?ÉÕ)
-   (#x5c28 ?ʾ)
-   (#x5c2a ?Ê¿)
-   (#x5c2c ?§¼)
-   (#x5c30 ?ØØ)
-   (#x5c31 ?´N)
-   (#x5c33 ?ÃL)
-   (#x5c37 ?˻)
-   (#x5c38 ?¤r)
-   (#x5c39 ?¤¨)
-   (#x5c3a ?¤Ø)
-   (#x5c3b ?Éu)
-   (#x5c3c ?¥§)
-   (#x5c3e ?§À)
-   (#x5c3f ?§¿)
-   (#x5c40 ?§½)
-   (#x5c41 ?§¾)
-   (#x5c44 ?ÃŒY)
-   (#x5c45 ?©~)
-   (#x5c46 ?©¡)
-   (#x5c47 ?ÃŒZ)
-   (#x5c48 ?©})
-   (#x5c4b ?«Î)
-   (#x5c4c ?ÃŽx)
-   (#x5c4d ?«Ã)
-   (#x5c4e ?«Ë)
-   (#x5c4f ?«Ì)
-   (#x5c50 ?®j)
-   (#x5c51 ?®h)
-   (#x5c54 ?Ñk)
-   (#x5c55 ?®i)
-   (#x5c56 ?Ñj)
-   (#x5c58 ?®^)
-   (#x5c59 ?Ôó)
-   (#x5c5c ?±P)
-   (#x5c5d ?±Q)
-   (#x5c60 ?±O)
-   (#x5c62 ?¹ð)
-   (#x5c63 ?á¢)
-   (#x5c64 ?¼h)
-   (#x5c65 ?¼i)
-   (#x5c67 ?Ã¥a)
-   (#x5c68 ?À«)
-   (#x5c69 ?ïÂ)
-   (#x5c6a ?ïÃ)
-   (#x5c6c ?ÄÃ)
-   (#x5c6d ?ø¨)
-   (#x5c6e ?ÉK)
-   (#x5c6f ?¤Ù)
-   (#x5c71 ?¤s)
-   (#x5c73 ?Éw)
-   (#x5c74 ?Év)
-   (#x5c79 ?¦z)
-   (#x5c7a ?É×)
-   (#x5c7b ?ÉØ)
-   (#x5c7c ?ÉÖ)
-   (#x5c7e ?ÉÙ)
-   (#x5c86 ?ÊÇ)
-   (#x5c88 ?ÊÂ)
-   (#x5c89 ?ÊÄ)
-   (#x5c8a ?ÊÆ)
-   (#x5c8b ?ÊÃ)
-   (#x5c8c ?§Ä)
-   (#x5c8d ?ÊÀ)
-   (#x5c8f ?ÊÃ)
-   (#x5c90 ?§Ã)
-   (#x5c91 ?§Â)
-   (#x5c92 ?ÊÅ)
-   (#x5c93 ?ÊÈ)
-   (#x5c94 ?§Ã)
-   (#x5c95 ?ÊÉ)
-   (#x5c9d ?ÃŒh)
-   (#x5c9f ?ÃŒb)
-   (#x5ca0 ?ÃŒ])
-   (#x5ca1 ?©£)
-   (#x5ca2 ?ÃŒe)
-   (#x5ca3 ?ÃŒc)
-   (#x5ca4 ?ÃŒ\)
-   (#x5ca5 ?ÃŒi)
-   (#x5ca6 ?ÃŒl)
-   (#x5ca7 ?ÃŒg)
-   (#x5ca8 ?ÃŒ`)
-   (#x5ca9 ?©¥)
-   (#x5caa ?ÃŒf)
-   (#x5cab ?©¦)
-   (#x5cac ?ÃŒa)
-   (#x5cad ?ÃŒd)
-   (#x5cae ?ÃŒ[)
-   (#x5caf ?ÃŒ_)
-   (#x5cb0 ?ÃŒk)
-   (#x5cb1 ?©§)
-   (#x5cb3 ?©¨)
-   (#x5cb5 ?ÃŒ^)
-   (#x5cb6 ?ÃŒj)
-   (#x5cb7 ?©¢)
-   (#x5cb8 ?©¤)
-   (#x5cc6 ?Ϋ)
-   (#x5cc7 ?Τ)
-   (#x5cc8 ?Ϊ)
-   (#x5cc9 ?Σ)
-   (#x5cca ?Î¥)
-   (#x5ccb ?ÃŽ})
-   (#x5ccc ?ÃŽ{)
-   (#x5cce ?ά)
-   (#x5ccf ?Ω)
-   (#x5cd0 ?ÃŽy)
-   (#x5cd2 ?«Ã)
-   (#x5cd3 ?Χ)
-   (#x5cd4 ?Ψ)
-   (#x5cd6 ?Φ)
-   (#x5cd7 ?ÃŽ|)
-   (#x5cd8 ?ÃŽz)
-   (#x5cd9 ?«Ã)
-   (#x5cda ?΢)
-   (#x5cdb ?ÃŽ~)
-   (#x5cde ?Ρ)
-   (#x5cdf ?έ)
-   (#x5ce8 ?®o)
-   (#x5cea ?®n)
-   (#x5cec ?Ñl)
-   (#x5ced ?®k)
-   (#x5cee ?Ñn)
-   (#x5cf0 ?®p)
-   (#x5cf1 ?Ño)
-   (#x5cf4 ?®s)
-   (#x5cf6 ?®q)
-   (#x5cf7 ?Ñp)
-   (#x5cf8 ?ή)
-   (#x5cf9 ?Ñr)
-   (#x5cfb ?®m)
-   (#x5cfd ?®l)
-   (#x5cff ?Ñm)
-   (#x5d00 ?Ñq)
-   (#x5d01 ?®r)
-   (#x5d06 ?±S)
-   (#x5d07 ?±R)
-   (#x5d0b ?Ôõ)
-   (#x5d0c ?Ôù)
-   (#x5d0d ?Ôû)
-   (#x5d0e ?±T)
-   (#x5d0f ?Ôþ)
-   (#x5d11 ?±X)
-   (#x5d12 ?ÕA)
-   (#x5d14 ?±Z)
-   (#x5d16 ?±V)
-   (#x5d17 ?±^)
-   (#x5d19 ?±[)
-   (#x5d1a ?Ô÷)
-   (#x5d1b ?±U)
-   (#x5d1d ?Ôö)
-   (#x5d1e ?Ôô)
-   (#x5d1f ?ÕC)
-   (#x5d20 ?Ôø)
-   (#x5d22 ?±W)
-   (#x5d23 ?ÕB)
-   (#x5d24 ?±\)
-   (#x5d25 ?Ôý)
-   (#x5d26 ?Ôü)
-   (#x5d27 ?±])
-   (#x5d28 ?Ôú)
-   (#x5d29 ?±Y)
-   (#x5d2e ?ÕD)
-   (#x5d30 ?Õ@)
-   (#x5d31 ?Øç)
-   (#x5d32 ?Øî)
-   (#x5d33 ?Øã)
-   (#x5d34 ?´Q)
-   (#x5d35 ?Øß)
-   (#x5d36 ?Øï)
-   (#x5d37 ?ØÙ)
-   (#x5d38 ?Øì)
-   (#x5d39 ?Øê)
-   (#x5d3a ?Øä)
-   (#x5d3c ?Øí)
-   (#x5d3d ?Øæ)
-   (#x5d3f ?ØÞ)
-   (#x5d40 ?Øð)
-   (#x5d41 ?ØÜ)
-   (#x5d42 ?Øé)
-   (#x5d43 ?ØÚ)
-   (#x5d45 ?Øñ)
-   (#x5d47 ?´R)
-   (#x5d49 ?Øë)
-   (#x5d4a ?ÃO)
-   (#x5d4b ?ØÃ)
-   (#x5d4c ?´O)
-   (#x5d4e ?Øá)
-   (#x5d50 ?´P)
-   (#x5d51 ?Øà)
-   (#x5d52 ?Øå)
-   (#x5d55 ?Øâ)
-   (#x5d59 ?Øè)
-   (#x5d5e ?ÃS)
-   (#x5d62 ?ÃV)
-   (#x5d63 ?ÃN)
-   (#x5d65 ?ÃP)
-   (#x5d67 ?ÃU)
-   (#x5d68 ?ÃT)
-   (#x5d69 ?·C)
-   (#x5d6b ?ØÛ)
-   (#x5d6c ?ÃR)
-   (#x5d6f ?·D)
-   (#x5d71 ?ÃM)
-   (#x5d72 ?ÃQ)
-   (#x5d77 ?á©)
-   (#x5d79 ?á°)
-   (#x5d7a ?á§)
-   (#x5d7c ?á®)
-   (#x5d7d ?á¥)
-   (#x5d7e ?á­)
-   (#x5d7f ?á±)
-   (#x5d80 ?á¤)
-   (#x5d81 ?á¨)
-   (#x5d82 ?á£)
-   (#x5d84 ?¹ñ)
-   (#x5d86 ?á¦)
-   (#x5d87 ?¹ò)
-   (#x5d88 ?á¬)
-   (#x5d89 ?á«)
-   (#x5d8a ?áª)
-   (#x5d8d ?á¯)
-   (#x5d92 ?Ã¥e)
-   (#x5d93 ?Ã¥g)
-   (#x5d94 ?¼k)
-   (#x5d95 ?Ã¥h)
-   (#x5d97 ?Ã¥c)
-   (#x5d99 ?Ã¥b)
-   (#x5d9a ?Ã¥l)
-   (#x5d9c ?Ã¥j)
-   (#x5d9d ?¼j)
-   (#x5d9e ?Ã¥m)
-   (#x5d9f ?Ã¥d)
-   (#x5da0 ?Ã¥i)
-   (#x5da1 ?Ã¥k)
-   (#x5da2 ?Ã¥f)
-   (#x5da7 ?éa)
-   (#x5da8 ?éf)
-   (#x5da9 ?é`)
-   (#x5daa ?ée)
-   (#x5dac ?é^)
-   (#x5dad ?éh)
-   (#x5dae ?éd)
-   (#x5daf ?éi)
-   (#x5db0 ?éc)
-   (#x5db1 ?é_)
-   (#x5db2 ?ég)
-   (#x5db4 ?éj)
-   (#x5db5 ?éb)
-   (#x5db7 ?ìÚ)
-   (#x5db8 ?À¯)
-   (#x5dba ?À­)
-   (#x5dbc ?À¬)
-   (#x5dbd ?À®)
-   (#x5dc0 ?ïÄ)
-   (#x5dc2 ?ñr)
-   (#x5dc3 ?ñý)
-   (#x5dc6 ?ôD)
-   (#x5dc7 ?ôE)
-   (#x5dc9 ?Ä`)
-   (#x5dcb ?õÉ)
-   (#x5dcd ?ÄÞ)
-   (#x5dcf ?õÊ)
-   (#x5dd1 ?öÞ)
-   (#x5dd2 ?Ã…r)
-   (#x5dd4 ?Ã…q)
-   (#x5dd5 ?öÃ)
-   (#x5dd6 ?ÅÉ)
-   (#x5dd8 ?÷Ö)
-   (#x5ddd ?¤t)
-   (#x5dde ?¦{)
-   (#x5ddf ?ÉÚ)
-   (#x5de0 ?ÊÊ)
-   (#x5de1 ?¨µ)
-   (#x5de2 ?±_)
-   (#x5de5 ?¤u)
-   (#x5de6 ?¥ª)
-   (#x5de7 ?¥©)
-   (#x5de8 ?¥¨)
-   (#x5deb ?§Å)
-   (#x5dee ?®t)
-   (#x5df0 ?ÃW)
-   (#x5df1 ?¤v)
-   (#x5df2 ?¤w)
-   (#x5df3 ?¤x)
-   (#x5df4 ?¤Ú)
-   (#x5df7 ?«Ñ)
-   (#x5df9 ?ί)
-   (#x5dfd ?´S)
-   (#x5dfe ?¤y)
-   (#x5dff ?É])
-   (#x5e02 ?¥«)
-   (#x5e03 ?¥¬)
-   (#x5e04 ?Éx)
-   (#x5e06 ?¦|)
-   (#x5e0a ?ÊË)
-   (#x5e0c ?§Æ)
-   (#x5e0e ?ÊÌ)
-   (#x5e11 ?©®)
-   (#x5e14 ?ÃŒn)
-   (#x5e15 ?©¬)
-   (#x5e16 ?©«)
-   (#x5e17 ?ÃŒm)
-   (#x5e18 ?©©)
-   (#x5e19 ?ÃŒo)
-   (#x5e1a ?©ª)
-   (#x5e1b ?©­)
-   (#x5e1d ?«Ò)
-   (#x5e1f ?«Ô)
-   (#x5e20 ?γ)
-   (#x5e21 ?ΰ)
-   (#x5e22 ?α)
-   (#x5e23 ?β)
-   (#x5e24 ?δ)
-   (#x5e25 ?«Ó)
-   (#x5e28 ?Ñt)
-   (#x5e29 ?Ñs)
-   (#x5e2b ?®v)
-   (#x5e2d ?®u)
-   (#x5e33 ?±b)
-   (#x5e34 ?ÕF)
-   (#x5e36 ?±a)
-   (#x5e37 ?±c)
-   (#x5e38 ?±`)
-   (#x5e3d ?´U)
-   (#x5e3e ?ÕE)
-   (#x5e40 ?´V)
-   (#x5e41 ?Øó)
-   (#x5e43 ?´W)
-   (#x5e44 ?Øò)
-   (#x5e45 ?´T)
-   (#x5e4a ?ÃZ)
-   (#x5e4b ?Ã\)
-   (#x5e4c ?·E)
-   (#x5e4d ?Ã[)
-   (#x5e4e ?ÃY)
-   (#x5e4f ?ÃX)
-   (#x5e53 ?á´)
-   (#x5e54 ?¹÷)
-   (#x5e55 ?¹õ)
-   (#x5e57 ?¹ö)
-   (#x5e58 ?á²)
-   (#x5e59 ?á³)
-   (#x5e5b ?¹ó)
-   (#x5e5c ?Ã¥q)
-   (#x5e5d ?Ã¥o)
-   (#x5e5f ?¼m)
-   (#x5e60 ?Ã¥p)
-   (#x5e61 ?¼n)
-   (#x5e62 ?¼l)
-   (#x5e63 ?¹ô)
-   (#x5e66 ?ém)
-   (#x5e67 ?ék)
-   (#x5e68 ?él)
-   (#x5e69 ?Ã¥n)
-   (#x5e6a ?ìÜ)
-   (#x5e6b ?À°)
-   (#x5e6c ?ìÛ)
-   (#x5e6d ?ïÅ)
-   (#x5e6e ?ïÆ)
-   (#x5e6f ?én)
-   (#x5e70 ?ñþ)
-   (#x5e72 ?¤z)
-   (#x5e73 ?¥­)
-   (#x5e74 ?¦~)
-   (#x5e75 ?ÉÛ)
-   (#x5e76 ?¦})
-   (#x5e78 ?©¯)
-   (#x5e79 ?·F)
-   (#x5e7b ?¤Û)
-   (#x5e7c ?¥®)
-   (#x5e7d ?«Õ)
-   (#x5e7e ?´X)
-   (#x5e80 ?Éy)
-   (#x5e82 ?Éz)
-   (#x5e84 ?ÉÜ)
-   (#x5e87 ?§È)
-   (#x5e88 ?ÊÃ)
-   (#x5e89 ?ÊÎ)
-   (#x5e8a ?§É)
-   (#x5e8b ?ÊÃ)
-   (#x5e8c ?ÊÃ)
-   (#x5e8d ?ÊÑ)
-   (#x5e8f ?§Ç)
-   (#x5e95 ?©³)
-   (#x5e96 ?©´)
-   (#x5e97 ?©±)
-   (#x5e9a ?©°)
-   (#x5e9b ?θ)
-   (#x5e9c ?©²)
-   (#x5ea0 ?«Ö)
-   (#x5ea2 ?η)
-   (#x5ea3 ?ι)
-   (#x5ea4 ?ζ)
-   (#x5ea5 ?κ)
-   (#x5ea6 ?«×)
-   (#x5ea7 ?®y)
-   (#x5ea8 ?Ñu)
-   (#x5eaa ?Ñw)
-   (#x5eab ?®w)
-   (#x5eac ?Ñx)
-   (#x5ead ?®x)
-   (#x5eae ?Ñv)
-   (#x5eb0 ?ε)
-   (#x5eb1 ?ÕG)
-   (#x5eb2 ?ÕJ)
-   (#x5eb3 ?ÕK)
-   (#x5eb4 ?ÕH)
-   (#x5eb5 ?±g)
-   (#x5eb6 ?±f)
-   (#x5eb7 ?±d)
-   (#x5eb8 ?±e)
-   (#x5eb9 ?ÕI)
-   (#x5ebe ?±h)
-   (#x5ec1 ?´Z)
-   (#x5ec2 ?´[)
-   (#x5ec4 ?´\)
-   (#x5ec5 ?Ã])
-   (#x5ec6 ?Ã_)
-   (#x5ec7 ?Ãa)
-   (#x5ec8 ?·H)
-   (#x5ec9 ?·G)
-   (#x5eca ?´Y)
-   (#x5ecb ?Ã`)
-   (#x5ecc ?Ã^)
-   (#x5ece ?á¸)
-   (#x5ed1 ?á¶)
-   (#x5ed2 ?á¼)
-   (#x5ed3 ?¹ø)
-   (#x5ed4 ?á½)
-   (#x5ed5 ?áº)
-   (#x5ed6 ?¹ù)
-   (#x5ed7 ?á·)
-   (#x5ed8 ?áµ)
-   (#x5ed9 ?á»)
-   (#x5eda ?¼p)
-   (#x5edb ?Ã¥s)
-   (#x5edc ?á¹)
-   (#x5edd ?¼r)
-   (#x5ede ?Ã¥t)
-   (#x5edf ?¼q)
-   (#x5ee0 ?¼t)
-   (#x5ee1 ?Ã¥u)
-   (#x5ee2 ?¼o)
-   (#x5ee3 ?¼s)
-   (#x5ee5 ?és)
-   (#x5ee6 ?éq)
-   (#x5ee7 ?ép)
-   (#x5ee8 ?ér)
-   (#x5ee9 ?éo)
-   (#x5eec ?Ãf)
-   (#x5eee ?ôF)
-   (#x5eef ?ôG)
-   (#x5ef1 ?õË)
-   (#x5ef2 ?öß)
-   (#x5ef3 ?ÆU)
-   (#x5ef6 ?©µ)
-   (#x5ef7 ?§Ê)
-   (#x5efa ?«Ø)
-   (#x5efe ?¤{)
-   (#x5eff ?¤Ü)
-   (#x5f01 ?¥¯)
-   (#x5f02 ?ÉÃ)
-   (#x5f04 ?§Ë)
-   (#x5f05 ?ÊÒ)
-   (#x5f07 ?λ)
-   (#x5f08 ?«Ù)
-   (#x5f0a ?¹ú)
-   (#x5f0b ?¤|)
-   (#x5f0f ?¦¡)
-   (#x5f12 ?·I)
-   (#x5f13 ?¤})
-   (#x5f14 ?¤Ã)
-   (#x5f15 ?¤Þ)
-   (#x5f17 ?¥±)
-   (#x5f18 ?¥°)
-   (#x5f1a ?ÉÞ)
-   (#x5f1b ?¦¢)
-   (#x5f1d ?ÊÓ)
-   (#x5f1f ?§Ì)
-   (#x5f22 ?ÃŒq)
-   (#x5f23 ?ÃŒr)
-   (#x5f24 ?ÃŒs)
-   (#x5f26 ?©¶)
-   (#x5f27 ?©·)
-   (#x5f28 ?ÃŒp)
-   (#x5f29 ?©¸)
-   (#x5f2d ?«Ú)
-   (#x5f2e ?μ)
-   (#x5f30 ?Ñz)
-   (#x5f31 ?®z)
-   (#x5f33 ?Ñy)
-   (#x5f35 ?±i)
-   (#x5f36 ?ÕL)
-   (#x5f37 ?±j)
-   (#x5f38 ?ÕM)
-   (#x5f3c ?´])
-   (#x5f40 ?Ãb)
-   (#x5f43 ?á¿)
-   (#x5f44 ?á¾)
-   (#x5f46 ?¹û)
-   (#x5f48 ?¼u)
-   (#x5f49 ?Ã¥v)
-   (#x5f4a ?¾Ê)
-   (#x5f4b ?ét)
-   (#x5f4c ?˱)
-   (#x5f4e ?Ã…s)
-   (#x5f4f ?֯)
-   (#x5f54 ?ÃŒt)
-   (#x5f56 ?ν)
-   (#x5f57 ?±k)
-   (#x5f58 ?Øô)
-   (#x5f59 ?·J)
-   (#x5f5d ?ÂU)
-   (#x5f62 ?§Î)
-   (#x5f64 ?§Ã)
-   (#x5f65 ?«Û)
-   (#x5f67 ?Ñ{)
-   (#x5f69 ?±m)
-   (#x5f6a ?³C)
-   (#x5f6b ?±n)
-   (#x5f6c ?±l)
-   (#x5f6d ?´^)
-   (#x5f6f ?áÀ)
-   (#x5f70 ?¹ü)
-   (#x5f71 ?¼v)
-   (#x5f73 ?ÉL)
-   (#x5f74 ?Éß)
-   (#x5f76 ?ÊÕ)
-   (#x5f77 ?§Ã)
-   (#x5f78 ?ÊÔ)
-   (#x5f79 ?§Ã)
-   (#x5f7c ?©¼)
-   (#x5f7d ?ÃŒw)
-   (#x5f7e ?ÃŒv)
-   (#x5f7f ?©»)
-   (#x5f80 ?©¹)
-   (#x5f81 ?©º)
-   (#x5f82 ?ÃŒu)
-   (#x5f85 ?«Ã)
-   (#x5f86 ?ξ)
-   (#x5f87 ?«à)
-   (#x5f88 ?«Ü)
-   (#x5f89 ?«â)
-   (#x5f8a ?«Þ)
-   (#x5f8b ?«ß)
-   (#x5f8c ?«á)
-   (#x5f90 ?®})
-   (#x5f91 ?®|)
-   (#x5f92 ?®{)
-   (#x5f96 ?ÕO)
-   (#x5f97 ?±o)
-   (#x5f98 ?±r)
-   (#x5f99 ?±p)
-   (#x5f9b ?ÕN)
-   (#x5f9c ?±u)
-   (#x5f9e ?±q)
-   (#x5f9f ?ÕP)
-   (#x5fa0 ?±t)
-   (#x5fa1 ?±s)
-   (#x5fa5 ?Øö)
-   (#x5fa6 ?Øõ)
-   (#x5fa8 ?´a)
-   (#x5fa9 ?´_)
-   (#x5faa ?´`)
-   (#x5fab ?Ø÷)
-   (#x5fac ?·K)
-   (#x5fad ?Ãd)
-   (#x5fae ?·L)
-   (#x5faf ?Ãc)
-   (#x5fb2 ?Ã¥w)
-   (#x5fb5 ?¼x)
-   (#x5fb6 ?áÃ)
-   (#x5fb7 ?¼w)
-   (#x5fb9 ?¹ý)
-   (#x5fbb ?ìÞ)
-   (#x5fbc ?éu)
-   (#x5fbd ?À²)
-   (#x5fbe ?ìÃ)
-   (#x5fbf ?ò@)
-   (#x5fc0 ?ôH)
-   (#x5fc1 ?ôI)
-   (#x5fc3 ?¤ß)
-   (#x5fc5 ?¥²)
-   (#x5fc9 ?É{)
-   (#x5fcc ?§Ò)
-   (#x5fcd ?§Ô)
-   (#x5fcf ?Éâ)
-   (#x5fd0 ?ÊØ)
-   (#x5fd1 ?Ê×)
-   (#x5fd2 ?ÊÖ)
-   (#x5fd4 ?Éá)
-   (#x5fd5 ?Éà)
-   (#x5fd6 ?¦¤)
-   (#x5fd7 ?§Ó)
-   (#x5fd8 ?§Ñ)
-   (#x5fd9 ?¦£)
-   (#x5fdd ?©½)
-   (#x5fde ?ÃŒx)
-   (#x5fe0 ?©¾)
-   (#x5fe1 ?ÊÃ)
-   (#x5fe3 ?Êß)
-   (#x5fe4 ?ÊÞ)
-   (#x5fe5 ?ÃŒy)
-   (#x5fe8 ?ÊÚ)
-   (#x5fea ?§Ø)
-   (#x5feb ?§Ö)
-   (#x5fed ?ÊÙ)
-   (#x5fee ?ÊÛ)
-   (#x5fef ?Êá)
-   (#x5ff1 ?§Õ)
-   (#x5ff3 ?ÊÜ)
-   (#x5ff4 ?Êå)
-   (#x5ff5 ?©À)
-   (#x5ff7 ?Êâ)
-   (#x5ff8 ?§×)
-   (#x5ffa ?Êà)
-   (#x5ffb ?Êã)
-   (#x5ffd ?©¿)
-   (#x5fff ?©Ã)
-   (#x6000 ?Êä)
-   (#x6009 ?̯)
-   (#x600a ?Ì¢)
-   (#x600b ?ÃŒ~)
-   (#x600c ?Ì®)
-   (#x600d ?Ì©)
-   (#x600e ?«ç)
-   (#x600f ?©Â)
-   (#x6010 ?̪)
-   (#x6011 ?Ì­)
-   (#x6012 ?«ã)
-   (#x6013 ?̬)
-   (#x6014 ?©Ã)
-   (#x6015 ?©È)
-   (#x6016 ?©Æ)
-   (#x6017 ?Ì£)
-   (#x6019 ?ÃŒ|)
-   (#x601a ?Ì¥)
-   (#x601b ?©Ã)
-   (#x601c ?Ì°)
-   (#x601d ?«ä)
-   (#x601e ?̦)
-   (#x6020 ?«å)
-   (#x6021 ?©É)
-   (#x6022 ?̨)
-   (#x6024 ?ÃŽÃ)
-   (#x6025 ?«æ)
-   (#x6026 ?ÃŒ{)
-   (#x6027 ?©Ê)
-   (#x6028 ?«è)
-   (#x6029 ?©Ë)
-   (#x602a ?©Ç)
-   (#x602b ?©Ì)
-   (#x602c ?̧)
-   (#x602d ?ÃŒz)
-   (#x602e ?Ì«)
-   (#x602f ?©Ä)
-   (#x6032 ?ÃŒ})
-   (#x6033 ?̤)
-   (#x6034 ?Ì¡)
-   (#x6035 ?©Å)
-   (#x6037 ?ο)
-   (#x6039 ?ÎÀ)
-   (#x6040 ?ÎÊ)
-   (#x6041 ?Ñ¡)
-   (#x6042 ?ÎË)
-   (#x6043 ?«î)
-   (#x6044 ?ÃŽÃŽ)
-   (#x6045 ?ÎÄ)
-   (#x6046 ?«í)
-   (#x6047 ?ÎÆ)
-   (#x6049 ?ÎÇ)
-   (#x604c ?ÎÉ)
-   (#x604d ?«é)
-   (#x6050 ?®£)
-   (#x6052 ?ùÚ)
-   (#x6053 ?ÃŽÃ…)
-   (#x6054 ?ÃŽÃ)
-   (#x6055 ?®¤)
-   (#x6058 ?ÃŽÃ)
-   (#x6059 ?®~)
-   (#x605a ?Ñ})
-   (#x605b ?ÎÈ)
-   (#x605d ?Ñ|)
-   (#x605e ?ÎÃ)
-   (#x605f ?ÃŽÃŒ)
-   (#x6062 ?«ì)
-   (#x6063 ?®¡)
-   (#x6064 ?«ò)
-   (#x6065 ?®¢)
-   (#x6066 ?ÃŽÃ)
-   (#x6067 ?Ñ~)
-   (#x6068 ?«ë)
-   (#x6069 ?®¦)
-   (#x606a ?«ñ)
-   (#x606b ?«ð)
-   (#x606c ?«ï)
-   (#x606d ?®¥)
-   (#x606e ?ÎÑ)
-   (#x606f ?®§)
-   (#x6070 ?«ê)
-   (#x6072 ?ÎÂ)
-   (#x607f ?±v)
-   (#x6080 ?Ѥ)
-   (#x6081 ?Ѧ)
-   (#x6083 ?Ѩ)
-   (#x6084 ?®¨)
-   (#x6085 ?®®)
-   (#x6086 ?ÕS)
-   (#x6087 ?Ѭ)
-   (#x6088 ?Ñ£)
-   (#x6089 ?±x)
-   (#x608a ?ÕQ)
-   (#x608c ?®­)
-   (#x608d ?®«)
-   (#x608e ?Ñ®)
-   (#x6090 ?ÕR)
-   (#x6092 ?Ñ¥)
-   (#x6094 ?®¬)
-   (#x6095 ?Ñ©)
-   (#x6096 ?®¯)
-   (#x6097 ?Ñ«)
-   (#x609a ?®ª)
-   (#x609b ?Ѫ)
-   (#x609c ?Ñ­)
-   (#x609d ?ѧ)
-   (#x609f ?®©)
-   (#x60a0 ?±y)
-   (#x60a2 ?Ñ¢)
-   (#x60a3 ?±w)
-   (#x60a8 ?±z)
-   (#x60b0 ?ÕU)
-   (#x60b1 ?Õ^)
-   (#x60b2 ?´d)
-   (#x60b4 ?±|)
-   (#x60b5 ?±£)
-   (#x60b6 ?´e)
-   (#x60b7 ?Õ`)
-   (#x60b8 ?±ª)
-   (#x60b9 ?Øù)
-   (#x60ba ?ÕV)
-   (#x60bb ?±¢)
-   (#x60bc ?±¥)
-   (#x60bd ?±~)
-   (#x60be ?ÕT)
-   (#x60bf ?Õb)
-   (#x60c0 ?Õe)
-   (#x60c1 ?ÙI)
-   (#x60c3 ?Õc)
-   (#x60c4 ?Øý)
-   (#x60c5 ?±¡)
-   (#x60c6 ?±¨)
-   (#x60c7 ?±¬)
-   (#x60c8 ?Õ])
-   (#x60c9 ?Øø)
-   (#x60ca ?Õa)
-   (#x60cb ?±{)
-   (#x60cc ?Øú)
-   (#x60cd ?Õd)
-   (#x60ce ?Øü)
-   (#x60cf ?ÕY)
-   (#x60d1 ?´b)
-   (#x60d3 ?ÕW)
-   (#x60d4 ?ÕX)
-   (#x60d5 ?±§)
-   (#x60d8 ?±¦)
-   (#x60d9 ?Õ[)
-   (#x60da ?±«)
-   (#x60db ?Õ_)
-   (#x60dc ?±¤)
-   (#x60dd ?Õ\)
-   (#x60df ?±©)
-   (#x60e0 ?´f)
-   (#x60e1 ?´c)
-   (#x60e2 ?Øû)
-   (#x60e4 ?ÕZ)
-   (#x60e6 ?±})
-   (#x60f0 ?´k)
-   (#x60f1 ?´o)
-   (#x60f2 ?Ù@)
-   (#x60f3 ?·Q)
-   (#x60f4 ?´m)
-   (#x60f5 ?ÙD)
-   (#x60f6 ?´q)
-   (#x60f7 ?Ãe)
-   (#x60f8 ?ÙF)
-   (#x60f9 ?·S)
-   (#x60fa ?´i)
-   (#x60fb ?´l)
-   (#x60fc ?ÙG)
-   (#x60fe ?ÙH)
-   (#x60ff ?ÙN)
-   (#x6100 ?´s)
-   (#x6101 ?·T)
-   (#x6103 ?ÙJ)
-   (#x6104 ?ÙO)
-   (#x6105 ?ÙC)
-   (#x6106 ?·^)
-   (#x6108 ?·U)
-   (#x6109 ?´r)
-   (#x610a ?ÙA)
-   (#x610b ?ÙP)
-   (#x610d ?·])
-   (#x610e ?´p)
-   (#x610f ?·N)
-   (#x6110 ?ÙM)
-   (#x6112 ?´t)
-   (#x6113 ?ÙE)
-   (#x6114 ?Øþ)
-   (#x6115 ?´j)
-   (#x6116 ?ÙB)
-   (#x6118 ?ÙK)
-   (#x611a ?·M)
-   (#x611b ?·R)
-   (#x611c ?´g)
-   (#x611d ?ÙL)
-   (#x611f ?·P)
-   (#x6123 ?´h)
-   (#x6127 ?·\)
-   (#x6128 ?áÃ)
-   (#x6129 ?Ãp)
-   (#x612b ?Ãh)
-   (#x612c ?áÂ)
-   (#x612e ?Ãl)
-   (#x612f ?Ãn)
-   (#x6132 ?Ãk)
-   (#x6134 ?·[)
-   (#x6136 ?Ãj)
-   (#x6137 ?·_)
-   (#x613b ?áÒ)
-   (#x613e ?·Z)
-   (#x613f ?º@)
-   (#x6140 ?Ãq)
-   (#x6141 ?áÄ)
-   (#x6144 ?·X)
-   (#x6145 ?Ãi)
-   (#x6146 ?Ãm)
-   (#x6147 ?¹þ)
-   (#x6148 ?·O)
-   (#x6149 ?Ãf)
-   (#x614a ?Ãg)
-   (#x614b ?ºA)
-   (#x614c ?·W)
-   (#x614d ?·Y)
-   (#x614e ?·V)
-   (#x614f ?Ão)
-   (#x6152 ?áÈ)
-   (#x6153 ?áÉ)
-   (#x6154 ?áÎ)
-   (#x6155 ?¼})
-   (#x6156 ?áÕ)
-   (#x6158 ?ºG)
-   (#x615a ?ºF)
-   (#x615b ?áÃ)
-   (#x615d ?¼|)
-   (#x615e ?áÅ)
-   (#x615f ?ºE)
-   (#x6161 ?áÔ)
-   (#x6162 ?ºC)
-   (#x6163 ?ºD)
-   (#x6165 ?áÑ)
-   (#x6166 ?åª)
-   (#x6167 ?¼z)
-   (#x6168 ?´n)
-   (#x616a ?áÓ)
-   (#x616b ?¼£)
-   (#x616c ?áË)
-   (#x616e ?¼{)
-   (#x6170 ?¼¢)
-   (#x6171 ?áÆ)
-   (#x6172 ?áÊ)
-   (#x6173 ?áÇ)
-   (#x6174 ?áÃ)
-   (#x6175 ?ºH)
-   (#x6176 ?¼y)
-   (#x6177 ?ºB)
-   (#x6179 ?Ã¥z)
-   (#x617a ?áÃ)
-   (#x617c ?¼¡)
-   (#x617e ?¼¤)
-   (#x6180 ?áÌ)
-   (#x6182 ?¼~)
-   (#x6183 ?Ã¥y)
-   (#x6189 ?Ã¥~)
-   (#x618a ?¾Î)
-   (#x618b ?Ã¥x)
-   (#x618c ?é£)
-   (#x618d ?å©)
-   (#x618e ?¼¨)
-   (#x6190 ?¼¦)
-   (#x6191 ?¾Ì)
-   (#x6192 ?å¦)
-   (#x6193 ?å¢)
-   (#x6194 ?¼¬)
-   (#x6196 ?éx)
-   (#x619a ?¼ª)
-   (#x619b ?å¡)
-   (#x619d ?év)
-   (#x619f ?å¥)
-   (#x61a1 ?å¨)
-   (#x61a2 ?Ã¥})
-   (#x61a4 ?¼«)
-   (#x61a7 ?¼¥)
-   (#x61a8 ?éw)
-   (#x61a9 ?¾Ã)
-   (#x61aa ?å§)
-   (#x61ab ?¼§)
-   (#x61ac ?¼©)
-   (#x61ad ?å¤)
-   (#x61ae ?¼­)
-   (#x61af ?å£)
-   (#x61b0 ?Ã¥|)
-   (#x61b1 ?Ã¥{)
-   (#x61b2 ?¾Ë)
-   (#x61b3 ?å«)
-   (#x61b4 ?éz)
-   (#x61b5 ?ìà)
-   (#x61b6 ?¾Ã)
-   (#x61b8 ?é¢)
-   (#x61ba ?é~)
-   (#x61bc ?ìá)
-   (#x61be ?¾Ñ)
-   (#x61bf ?é¡)
-   (#x61c1 ?é|)
-   (#x61c2 ?À´)
-   (#x61c3 ?ìß)
-   (#x61c5 ?éy)
-   (#x61c6 ?é{)
-   (#x61c7 ?˵)
-   (#x61c8 ?¾Ó)
-   (#x61c9 ?À³)
-   (#x61ca ?¾Ò)
-   (#x61cb ?À·)
-   (#x61cc ?é})
-   (#x61cd ?¾Ã)
-   (#x61d6 ?ïÃ)
-   (#x61d8 ?ïÇ)
-   (#x61de ?ìç)
-   (#x61df ?ïÈ)
-   (#x61e0 ?ìã)
-   (#x61e3 ?ÂV)
-   (#x61e4 ?ìå)
-   (#x61e5 ?ìä)
-   (#x61e6 ?˦)
-   (#x61e7 ?ìâ)
-   (#x61e8 ?ìæ)
-   (#x61e9 ?ïÃ)
-   (#x61ea ?ïÌ)
-   (#x61eb ?ïÎ)
-   (#x61ed ?ïÉ)
-   (#x61ee ?ïÊ)
-   (#x61f0 ?ïÃ)
-   (#x61f1 ?ïË)
-   (#x61f2 ?Ãg)
-   (#x61f5 ?Ãj)
-   (#x61f6 ?Ãi)
-   (#x61f7 ?Ãh)
-   (#x61f8 ?Äa)
-   (#x61f9 ?ôJ)
-   (#x61fa ?Äb)
-   (#x61fb ?òA)
-   (#x61fc ?Äß)
-   (#x61fd ?õÌ)
-   (#x61fe ?Äà)
-   (#x61ff ?Ã…t)
-   (#x6200 ?ÅÊ)
-   (#x6201 ?÷Ù)
-   (#x6203 ?÷Ú)
-   (#x6204 ?÷Û)
-   (#x6207 ?ùº)
-   (#x6208 ?¤à)
-   (#x6209 ?É|)
-   (#x620a ?¥³)
-   (#x620c ?¦¦)
-   (#x620d ?¦§)
-   (#x620e ?¦¥)
-   (#x6210 ?¦¨)
-   (#x6211 ?§Ú)
-   (#x6212 ?§Ù)
-   (#x6214 ?̱)
-   (#x6215 ?©Ã)
-   (#x6216 ?©Î)
-   (#x6219 ?ѯ)
-   (#x621a ?±­)
-   (#x621b ?±®)
-   (#x621f ?´u)
-   (#x6220 ?Ãr)
-   (#x6221 ?·`)
-   (#x6222 ?·a)
-   (#x6223 ?Ãt)
-   (#x6224 ?Ãv)
-   (#x6225 ?Ãu)
-   (#x6227 ?á×)
-   (#x6229 ?áÖ)
-   (#x622a ?ºI)
-   (#x622b ?áØ)
-   (#x622d ?å¬)
-   (#x622e ?¼®)
-   (#x6230 ?¾Ô)
-   (#x6232 ?À¸)
-   (#x6233 ?ÂW)
-   (#x6234 ?À¹)
-   (#x6236 ?¤á)
-   (#x623a ?Êæ)
-   (#x623d ?̲)
-   (#x623e ?©Ñ)
-   (#x623f ?©Ã)
-   (#x6240 ?©Ò)
-   (#x6241 ?«ó)
-   (#x6242 ?ÃŽÃ’)
-   (#x6243 ?ÎÓ)
-   (#x6246 ?Ñ°)
-   (#x6247 ?®°)
-   (#x6248 ?±¯)
-   (#x6249 ?´v)
-   (#x624a ?ÙQ)
-   (#x624b ?¤â)
-   (#x624d ?¤~)
-   (#x624e ?¤ã)
-   (#x6250 ?É})
-   (#x6251 ?¥·)
-   (#x6252 ?¥¶)
-   (#x6253 ?¥´)
-   (#x6254 ?¥µ)
-   (#x6258 ?¦«)
-   (#x6259 ?Éé)
-   (#x625a ?Éë)
-   (#x625b ?¦ª)
-   (#x625c ?Éã)
-   (#x625e ?Éä)
-   (#x6260 ?Éê)
-   (#x6261 ?Éæ)
-   (#x6262 ?Éè)
-   (#x6263 ?¦©)
-   (#x6264 ?Éå)
-   (#x6265 ?Éì)
-   (#x6266 ?Éç)
-   (#x626d ?§á)
-   (#x626e ?§ê)
-   (#x626f ?§è)
-   (#x6270 ?Êð)
-   (#x6271 ?Êí)
-   (#x6272 ?Êõ)
-   (#x6273 ?§æ)
-   (#x6274 ?Êö)
-   (#x6276 ?§ß)
-   (#x6277 ?Êó)
-   (#x6279 ?§å)
-   (#x627a ?Êï)
-   (#x627b ?Êî)
-   (#x627c ?§ã)
-   (#x627d ?Êô)
-   (#x627e ?§ä)
-   (#x627f ?©Ó)
-   (#x6280 ?§Þ)
-   (#x6281 ?Êñ)
-   (#x6283 ?Êç)
-   (#x6284 ?§Û)
-   (#x6286 ?§î)
-   (#x6287 ?Êì)
-   (#x6288 ?Êò)
-   (#x6289 ?§à)
-   (#x628a ?§â)
-   (#x628c ?Êè)
-   (#x628e ?Êé)
-   (#x628f ?Êê)
-   (#x6291 ?§í)
-   (#x6292 ?§ç)
-   (#x6293 ?§ì)
-   (#x6294 ?Êë)
-   (#x6295 ?§ë)
-   (#x6296 ?§Ã)
-   (#x6297 ?§Ü)
-   (#x6298 ?§é)
-   (#x62a8 ?©á)
-   (#x62a9 ?̾)
-   (#x62aa ?Ì·)
-   (#x62ab ?©Ü)
-   (#x62ac ?©ï)
-   (#x62ad ?̳)
-   (#x62ae ?̺)
-   (#x62af ?̼)
-   (#x62b0 ?Ì¿)
-   (#x62b1 ?©ê)
-   (#x62b3 ?Ì»)
-   (#x62b4 ?Ì´)
-   (#x62b5 ?©è)
-   (#x62b6 ?̸)
-   (#x62b8 ?ÌÀ)
-   (#x62b9 ?©Ù)
-   (#x62bb ?̽)
-   (#x62bc ?©ã)
-   (#x62bd ?©â)
-   (#x62be ?̶)
-   (#x62bf ?©×)
-   (#x62c2 ?©Ø)
-   (#x62c4 ?©Ö)
-   (#x62c6 ?©î)
-   (#x62c7 ?©æ)
-   (#x62c8 ?©à)
-   (#x62c9 ?©Ô)
-   (#x62ca ?̹)
-   (#x62cb ?©ß)
-   (#x62cc ?©Õ)
-   (#x62cd ?©ç)
-   (#x62ce ?©ð)
-   (#x62cf ?ÎÔ)
-   (#x62d0 ?©ä)
-   (#x62d1 ?̵)
-   (#x62d2 ?©Ú)
-   (#x62d3 ?©Ã)
-   (#x62d4 ?©Þ)
-   (#x62d6 ?©ì)
-   (#x62d7 ?©í)
-   (#x62d8 ?©ë)
-   (#x62d9 ?©å)
-   (#x62da ?©é)
-   (#x62db ?©Û)
-   (#x62dc ?«ô)
-   (#x62eb ?ÎÚ)
-   (#x62ec ?¬A)
-   (#x62ed ?«ø)
-   (#x62ee ?«ú)
-   (#x62ef ?¬@)
-   (#x62f0 ?Îæ)
-   (#x62f1 ?«ý)
-   (#x62f2 ?ѱ)
-   (#x62f3 ?®±)
-   (#x62f4 ?¬C)
-   (#x62f5 ?Î×)
-   (#x62f6 ?Îß)
-   (#x62f7 ?«þ)
-   (#x62f8 ?ÎÞ)
-   (#x62f9 ?ÎÛ)
-   (#x62fa ?Îã)
-   (#x62fb ?ÃŽÃ¥)
-   (#x62fc ?«÷)
-   (#x62fd ?«û)
-   (#x62fe ?¬B)
-   (#x62ff ?®³)
-   (#x6300 ?Îà)
-   (#x6301 ?«ù)
-   (#x6302 ?¬E)
-   (#x6303 ?ÎÙ)
-   (#x6307 ?«ü)
-   (#x6308 ?®²)
-   (#x6309 ?«ö)
-   (#x630b ?ÎÖ)
-   (#x630c ?ÃŽÃ)
-   (#x630d ?ÎÕ)
-   (#x630e ?ÎØ)
-   (#x630f ?ÃŽÃœ)
-   (#x6310 ?Ѳ)
-   (#x6311 ?¬D)
-   (#x6313 ?Îá)
-   (#x6314 ?Îâ)
-   (#x6315 ?Îä)
-   (#x6316 ?«õ)
-   (#x6328 ?®Ã)
-   (#x6329 ?Ѿ)
-   (#x632a ?®¿)
-   (#x632b ?®À)
-   (#x632c ?Ñ´)
-   (#x632d ?ÑÄ)
-   (#x632f ?®¶)
-   (#x6332 ?Õf)
-   (#x6333 ?ÑÆ)
-   (#x6334 ?ÑÀ)
-   (#x6336 ?Ñ·)
-   (#x6338 ?ÑÉ)
-   (#x6339 ?Ѻ)
-   (#x633a ?®¼)
-   (#x633b ?Õ})
-   (#x633c ?ѽ)
-   (#x633d ?®¾)
-   (#x633e ?®µ)
-   (#x6340 ?ÑË)
-   (#x6341 ?Ñ¿)
-   (#x6342 ?®¸)
-   (#x6343 ?Ѹ)
-   (#x6344 ?ѵ)
-   (#x6345 ?Ѷ)
-   (#x6346 ?®¹)
-   (#x6347 ?ÑÅ)
-   (#x6348 ?ÑÌ)
-   (#x6349 ?®»)
-   (#x634a ?Ѽ)
-   (#x634b ?Ñ»)
-   (#x634c ?®Ã)
-   (#x634d ?®Â)
-   (#x634e ?®´)
-   (#x634f ?®º)
-   (#x6350 ?®½)
-   (#x6351 ?ÑÈ)
-   (#x6354 ?ÑÂ)
-   (#x6355 ?®·)
-   (#x6356 ?ѳ)
-   (#x6357 ?ÑÊ)
-   (#x6358 ?ÑÃ)
-   (#x6359 ?ÑÃ)
-   (#x635a ?ÑÇ)
-   (#x6365 ?Õg)
-   (#x6367 ?±·)
-   (#x6368 ?±Ë)
-   (#x6369 ?±Ê)
-   (#x636b ?±¿)
-   (#x636d ?Õy)
-   (#x636e ?Õu)
-   (#x636f ?Õr)
-   (#x6370 ?Õ¦)
-   (#x6371 ?±º)
-   (#x6372 ?±²)
-   (#x6375 ?Õw)
-   (#x6376 ?´¨)
-   (#x6377 ?±¶)
-   (#x6378 ?Õ¡)
-   (#x637a ?±Ì)
-   (#x637b ?±É)
-   (#x637c ?Õ{)
-   (#x637d ?Õj)
-   (#x6380 ?±È)
-   (#x6381 ?Õ£)
-   (#x6382 ?Õi)
-   (#x6383 ?±½)
-   (#x6384 ?±Ã)
-   (#x6385 ?Õ¢)
-   (#x6387 ?Õs)
-   (#x6388 ?±Â)
-   (#x6389 ?±¼)
-   (#x638a ?Õh)
-   (#x638c ?´x)
-   (#x638d ?Õ¥)
-   (#x638e ?Õq)
-   (#x638f ?±Ç)
-   (#x6390 ?Õt)
-   (#x6391 ?Õ¤)
-   (#x6392 ?±Æ)
-   (#x6394 ?ÙR)
-   (#x6396 ?±³)
-   (#x6397 ?Õo)
-   (#x6398 ?±¸)
-   (#x6399 ?±Ã)
-   (#x639b ?±¾)
-   (#x639c ?Õx)
-   (#x639d ?Õn)
-   (#x639e ?Õl)
-   (#x639f ?Õ~)
-   (#x63a0 ?±°)
-   (#x63a1 ?±Ä)
-   (#x63a2 ?±´)
-   (#x63a3 ?´w)
-   (#x63a4 ?Õ|)
-   (#x63a5 ?±µ)
-   (#x63a7 ?±±)
-   (#x63a8 ?±À)
-   (#x63a9 ?±»)
-   (#x63aa ?±¹)
-   (#x63ab ?Õp)
-   (#x63ac ?±Å)
-   (#x63ad ?Õm)
-   (#x63ae ?Õz)
-   (#x63af ?Õv)
-   (#x63b0 ?ÙT)
-   (#x63b1 ?ÙS)
-   (#x63bd ?Õk)
-   (#x63be ?Ùd)
-   (#x63c0 ?´z)
-   (#x63c2 ?Ùj)
-   (#x63c3 ?ÙY)
-   (#x63c4 ?Ùg)
-   (#x63c5 ?Ãw)
-   (#x63c6 ?´})
-   (#x63c7 ?Ùk)
-   (#x63c8 ?Ùn)
-   (#x63c9 ?´|)
-   (#x63ca ?Ù\)
-   (#x63cb ?Ùm)
-   (#x63cc ?Ùl)
-   (#x63cd ?´~)
-   (#x63ce ?ÙU)
-   (#x63cf ?´y)
-   (#x63d0 ?´£)
-   (#x63d2 ?´¡)
-   (#x63d3 ?Ùi)
-   (#x63d5 ?Ù_)
-   (#x63d6 ?´¥)
-   (#x63d7 ?Ùp)
-   (#x63d8 ?Ùh)
-   (#x63d9 ?Ùq)
-   (#x63da ?´­)
-   (#x63db ?´«)
-   (#x63dc ?Ùf)
-   (#x63dd ?Ùe)
-   (#x63df ?Ùc)
-   (#x63e0 ?Ù])
-   (#x63e1 ?´¤)
-   (#x63e3 ?´¢)
-   (#x63e4 ?ѹ)
-   (#x63e5 ?ÙV)
-   (#x63e7 ?Ý·)
-   (#x63e8 ?ÙW)
-   (#x63e9 ?´{)
-   (#x63ea ?´ª)
-   (#x63eb ?Ãy)
-   (#x63ed ?´¦)
-   (#x63ee ?´§)
-   (#x63ef ?ÙX)
-   (#x63f0 ?Ùo)
-   (#x63f1 ?Ãx)
-   (#x63f2 ?Ù`)
-   (#x63f3 ?Ù[)
-   (#x63f4 ?´©)
-   (#x63f5 ?Ùa)
-   (#x63f6 ?Ù^)
-   (#x63f9 ?´®)
-   (#x6406 ?·p)
-   (#x6409 ?Ã|)
-   (#x640a ?ݱ)
-   (#x640b ?ݶ)
-   (#x640c ?ݪ)
-   (#x640d ?·l)
-   (#x640e ?Ý»)
-   (#x640f ?·i)
-   (#x6410 ?Ãz)
-   (#x6412 ?Ã{)
-   (#x6413 ?·b)
-   (#x6414 ?·k)
-   (#x6415 ?ݤ)
-   (#x6416 ?·n)
-   (#x6417 ?·o)
-   (#x6418 ?Ý¥)
-   (#x641a ?ݲ)
-   (#x641b ?ݸ)
-   (#x641c ?·j)
-   (#x641e ?·d)
-   (#x641f ?Ý£)
-   (#x6420 ?Ã})
-   (#x6421 ?ݺ)
-   (#x6422 ?ݨ)
-   (#x6423 ?Ý©)
-   (#x6424 ?Ã~)
-   (#x6425 ?Ý´)
-   (#x6426 ?Ý«)
-   (#x6427 ?ݵ)
-   (#x6428 ?Ý­)
-   (#x642a ?·e)
-   (#x642b ?áÙ)
-   (#x642c ?·h)
-   (#x642d ?·f)
-   (#x642e ?ݹ)
-   (#x642f ?Ý°)
-   (#x6430 ?ݬ)
-   (#x6433 ?Ý¡)
-   (#x6434 ?ºS)
-   (#x6435 ?ݯ)
-   (#x6436 ?·m)
-   (#x6437 ?ݧ)
-   (#x6439 ?ݦ)
-   (#x643d ?·g)
-   (#x643e ?·c)
-   (#x643f ?áî)
-   (#x6440 ?ݳ)
-   (#x6441 ?Ý®)
-   (#x6443 ?Ý¢)
-   (#x644b ?áé)
-   (#x644d ?áÚ)
-   (#x644e ?áå)
-   (#x6450 ?áì)
-   (#x6451 ?ºQ)
-   (#x6452 ?´¬)
-   (#x6453 ?áê)
-   (#x6454 ?ºL)
-   (#x6458 ?ºK)
-   (#x6459 ?áñ)
-   (#x645b ?áÛ)
-   (#x645c ?áè)
-   (#x645d ?áÜ)
-   (#x645e ?áç)
-   (#x645f ?ºO)
-   (#x6460 ?áë)
-   (#x6461 ?Ùb)
-   (#x6465 ?áò)
-   (#x6466 ?áã)
-   (#x6467 ?ºR)
-   (#x6468 ?åº)
-   (#x6469 ?¼¯)
-   (#x646b ?áð)
-   (#x646c ?áï)
-   (#x646d ?ºT)
-   (#x646e ?å­)
-   (#x646f ?¼°)
-   (#x6470 ?å®)
-   (#x6472 ?áß)
-   (#x6473 ?áà)
-   (#x6474 ?áÃ)
-   (#x6475 ?áâ)
-   (#x6476 ?áÞ)
-   (#x6477 ?áó)
-   (#x6478 ?ºN)
-   (#x6479 ?¼±)
-   (#x647a ?ºP)
-   (#x647b ?ºU)
-   (#x647d ?áá)
-   (#x647f ?áí)
-   (#x6482 ?áæ)
-   (#x6485 ?å±)
-   (#x6487 ?ºJ)
-   (#x6488 ?¼´)
-   (#x6489 ?éª)
-   (#x648a ?å¶)
-   (#x648b ?åµ)
-   (#x648c ?å·)
-   (#x648f ?å´)
-   (#x6490 ?¼µ)
-   (#x6492 ?¼»)
-   (#x6493 ?¼¸)
-   (#x6495 ?¼¹)
-   (#x6496 ?å¯)
-   (#x6497 ?å²)
-   (#x6498 ?å¼)
-   (#x6499 ?¼Ã)
-   (#x649a ?¼¿)
-   (#x649c ?å³)
-   (#x649d ?ÙZ)
-   (#x649e ?¼²)
-   (#x649f ?å¹)
-   (#x64a0 ?å°)
-   (#x64a2 ?¼Â)
-   (#x64a3 ?å¸)
-   (#x64a4 ?ºM)
-   (#x64a5 ?¼·)
-   (#x64a6 ?áä)
-   (#x64a9 ?¼º)
-   (#x64ab ?¼¾)
-   (#x64ac ?¼À)
-   (#x64ad ?¼½)
-   (#x64ae ?¼¼)
-   (#x64b0 ?¼¶)
-   (#x64b1 ?å»)
-   (#x64b2 ?¼³)
-   (#x64b3 ?¼Ã)
-   (#x64bb ?¾Ø)
-   (#x64bc ?¾Ù)
-   (#x64bd ?é©)
-   (#x64be ?¾â)
-   (#x64bf ?¾ß)
-   (#x64c1 ?¾Ö)
-   (#x64c2 ?¾Ã)
-   (#x64c3 ?é«)
-   (#x64c4 ?¾Û)
-   (#x64c5 ?¾Õ)
-   (#x64c7 ?¾Ü)
-   (#x64c9 ?é¨)
-   (#x64ca ?À»)
-   (#x64cb ?¾×)
-   (#x64cd ?¾Þ)
-   (#x64ce ?˼)
-   (#x64cf ?é§)
-   (#x64d0 ?é¦)
-   (#x64d2 ?¾à)
-   (#x64d4 ?¾á)
-   (#x64d6 ?é¥)
-   (#x64d7 ?é¤)
-   (#x64d8 ?À¼)
-   (#x64d9 ?é®)
-   (#x64da ?¾Ú)
-   (#x64db ?é¬)
-   (#x64e0 ?À½)
-   (#x64e2 ?ÀÂ)
-   (#x64e3 ?ìê)
-   (#x64e4 ?ìì)
-   (#x64e6 ?À¿)
-   (#x64e8 ?ìí)
-   (#x64e9 ?ìé)
-   (#x64eb ?ìë)
-   (#x64ec ?ÀÀ)
-   (#x64ed ?ÀÃ)
-   (#x64ef ?ìè)
-   (#x64f0 ?À¾)
-   (#x64f1 ?ÀÃ)
-   (#x64f2 ?ÂY)
-   (#x64f3 ?é­)
-   (#x64f4 ?ÂX)
-   (#x64f7 ?Â^)
-   (#x64f8 ?ïÔ)
-   (#x64fa ?Â\)
-   (#x64fb ?Â])
-   (#x64fc ?ï×)
-   (#x64fd ?ïÓ)
-   (#x64fe ?ÂZ)
-   (#x64ff ?ïÑ)
-   (#x6500 ?Ãk)
-   (#x6501 ?ïÕ)
-   (#x6503 ?ïÖ)
-   (#x6504 ?ïÒ)
-   (#x6506 ?Â[)
-   (#x6507 ?òB)
-   (#x6509 ?òE)
-   (#x650c ?òF)
-   (#x650d ?òD)
-   (#x650e ?òG)
-   (#x650f ?Ãl)
-   (#x6510 ?òC)
-   (#x6513 ?ôN)
-   (#x6514 ?Äd)
-   (#x6515 ?ôM)
-   (#x6516 ?ôL)
-   (#x6517 ?ôK)
-   (#x6518 ?Äc)
-   (#x6519 ?Äe)
-   (#x651b ?õÃ)
-   (#x651c ?Äâ)
-   (#x651d ?Äá)
-   (#x6520 ?öá)
-   (#x6521 ?öà)
-   (#x6522 ?öã)
-   (#x6523 ?ÅË)
-   (#x6524 ?Ã…u)
-   (#x6525 ?÷Ã)
-   (#x6526 ?öâ)
-   (#x6529 ?ֆ)
-   (#x652a ?Ã…Ã)
-   (#x652b ?Ã…ÃŒ)
-   (#x652c ?Åó)
-   (#x652d ?ø©)
-   (#x652e ?øï)
-   (#x652f ?¤ä)
-   (#x6532 ?Ùr)
-   (#x6533 ?é¯)
-   (#x6536 ?¦¬)
-   (#x6537 ?Ê÷)
-   (#x6538 ?§ñ)
-   (#x6539 ?§ï)
-   (#x653b ?§ð)
-   (#x653d ?ÃŒÃ)
-   (#x653e ?©ñ)
-   (#x653f ?¬F)
-   (#x6541 ?Îç)
-   (#x6543 ?Îè)
-   (#x6545 ?¬G)
-   (#x6546 ?ÑÎ)
-   (#x6548 ?®Ä)
-   (#x6549 ?®Å)
-   (#x654a ?ÑÃ)
-   (#x654f ?±Ó)
-   (#x6551 ?±Ã)
-   (#x6553 ?Õ§)
-   (#x6554 ?±Ö)
-   (#x6555 ?±Õ)
-   (#x6556 ?±Î)
-   (#x6557 ?±Ñ)
-   (#x6558 ?±Ô)
-   (#x6559 ?±Ã)
-   (#x655c ?Ùv)
-   (#x655d ?±Ã)
-   (#x655e ?´¯)
-   (#x6562 ?´±)
-   (#x6563 ?´²)
-   (#x6564 ?Ùu)
-   (#x6565 ?Ùx)
-   (#x6566 ?´°)
-   (#x6567 ?Ùs)
-   (#x6568 ?Ùw)
-   (#x656a ?Ùt)
-   (#x656c ?·q)
-   (#x656f ?ݼ)
-   (#x6572 ?ºV)
-   (#x6573 ?áô)
-   (#x6574 ?¾ã)
-   (#x6575 ?¼Ä)
-   (#x6576 ?å½)
-   (#x6577 ?¼Å)
-   (#x6578 ?¼Æ)
-   (#x6579 ?å¿)
-   (#x657a ?å¾)
-   (#x657b ?åÀ)
-   (#x657c ?é±)
-   (#x657f ?é°)
-   (#x6580 ?ìï)
-   (#x6581 ?ìî)
-   (#x6582 ?ÀÄ)
-   (#x6583 ?ÀÅ)
-   (#x6584 ?òH)
-   (#x6587 ?¤å)
-   (#x658c ?Ùy)
-   (#x6590 ?´´)
-   (#x6591 ?´³)
-   (#x6592 ?ݽ)
-   (#x6594 ?ïØ)
-   (#x6595 ?Äã)
-   (#x6596 ?÷Þ)
-   (#x6597 ?¤æ)
-   (#x6599 ?®Æ)
-   (#x659b ?±Ø)
-   (#x659c ?±×)
-   (#x659d ?Ùz)
-   (#x659e ?Ù{)
-   (#x659f ?·r)
-   (#x65a0 ?áõ)
-   (#x65a1 ?ºW)
-   (#x65a2 ?é²)
-   (#x65a4 ?¤ç)
-   (#x65a5 ?¥¸)
-   (#x65a7 ?©ò)
-   (#x65a8 ?ÌÂ)
-   (#x65aa ?Îé)
-   (#x65ab ?¬H)
-   (#x65ac ?±Ù)
-   (#x65ae ?Ù|)
-   (#x65af ?´µ)
-   (#x65b0 ?·s)
-   (#x65b2 ?Ã¥Ã)
-   (#x65b3 ?åÂ)
-   (#x65b6 ?ìð)
-   (#x65b7 ?Â_)
-   (#x65b8 ?øð)
-   (#x65b9 ?¤è)
-   (#x65bb ?ÌÃ)
-   (#x65bc ?©ó)
-   (#x65bd ?¬I)
-   (#x65bf ?Îê)
-   (#x65c1 ?®Ç)
-   (#x65c2 ?ÑÒ)
-   (#x65c3 ?ÑÃ)
-   (#x65c4 ?ÑÑ)
-   (#x65c5 ?®È)
-   (#x65c6 ?ÑÃ)
-   (#x65cb ?±Û)
-   (#x65cc ?±Ü)
-   (#x65cd ?Õ¨)
-   (#x65ce ?±Ã)
-   (#x65cf ?±Ú)
-   (#x65d0 ?Ù})
-   (#x65d2 ?Ù~)
-   (#x65d3 ?ݾ)
-   (#x65d6 ?ºY)
-   (#x65d7 ?ºX)
-   (#x65da ?ìñ)
-   (#x65db ?ïÙ)
-   (#x65dd ?òJ)
-   (#x65de ?òI)
-   (#x65df ?ôO)
-   (#x65e1 ?É^)
-   (#x65e2 ?¬J)
-   (#x65e5 ?¤é)
-   (#x65e6 ?¥¹)
-   (#x65e8 ?¦®)
-   (#x65e9 ?¦­)
-   (#x65ec ?¦¯)
-   (#x65ed ?¦°)
-   (#x65ee ?Éî)
-   (#x65ef ?Éí)
-   (#x65f0 ?Êø)
-   (#x65f1 ?§ò)
-   (#x65f2 ?Êû)
-   (#x65f3 ?Êú)
-   (#x65f4 ?Êù)
-   (#x65f5 ?Êü)
-   (#x65fa ?©ô)
-   (#x65fb ?ÌÉ)
-   (#x65fc ?ÌÅ)
-   (#x65fd ?ÌÎ)
-   (#x6600 ?©û)
-   (#x6602 ?©ù)
-   (#x6603 ?ÌÊ)
-   (#x6604 ?ÌÆ)
-   (#x6605 ?ÃŒÃ)
-   (#x6606 ?©ø)
-   (#x6607 ?ª@)
-   (#x6608 ?ÌÈ)
-   (#x6609 ?ÌÄ)
-   (#x660a ?©þ)
-   (#x660b ?ÌË)
-   (#x660c ?©÷)
-   (#x660d ?ÌÌ)
-   (#x660e ?©ú)
-   (#x660f ?©ü)
-   (#x6610 ?ÃŒÃ)
-   (#x6611 ?ÃŒÃ)
-   (#x6612 ?ÌÇ)
-   (#x6613 ?©ö)
-   (#x6614 ?©õ)
-   (#x6615 ?©ý)
-   (#x661c ?Îï)
-   (#x661d ?Îõ)
-   (#x661f ?¬P)
-   (#x6620 ?¬M)
-   (#x6621 ?Îì)
-   (#x6622 ?Îñ)
-   (#x6624 ?¬S)
-   (#x6625 ?¬K)
-   (#x6626 ?Îð)
-   (#x6627 ?¬N)
-   (#x6628 ?¬Q)
-   (#x662b ?Îó)
-   (#x662d ?¬L)
-   (#x662e ?Îø)
-   (#x662f ?¬O)
-   (#x6631 ?¬R)
-   (#x6632 ?Îí)
-   (#x6633 ?Îò)
-   (#x6634 ?Îö)
-   (#x6635 ?Îî)
-   (#x6636 ?Îë)
-   (#x6639 ?Î÷)
-   (#x663a ?Îô)
-   (#x6641 ?®Ã)
-   (#x6642 ?®É)
-   (#x6643 ?®Ì)
-   (#x6645 ?®Ã)
-   (#x6647 ?ÑÕ)
-   (#x6649 ?®Ê)
-   (#x664a ?ÑÓ)
-   (#x664c ?®Î)
-   (#x664f ?®Ë)
-   (#x6651 ?ÑÖ)
-   (#x6652 ?®Ã)
-   (#x6659 ?Õ¬)
-   (#x665a ?±ß)
-   (#x665b ?Õ«)
-   (#x665c ?Õ­)
-   (#x665d ?±Þ)
-   (#x665e ?±ã)
-   (#x665f ?ÑÔ)
-   (#x6661 ?Õª)
-   (#x6662 ?Õ®)
-   (#x6664 ?±à)
-   (#x6665 ?Õ©)
-   (#x6666 ?±â)
-   (#x6668 ?±á)
-   (#x666a ?Ù§)
-   (#x666c ?Ù¢)
-   (#x666e ?´¶)
-   (#x666f ?´º)
-   (#x6670 ?´·)
-   (#x6671 ?Ù¥)
-   (#x6672 ?Ù¨)
-   (#x6674 ?´¸)
-   (#x6676 ?´¹)
-   (#x6677 ?´¾)
-   (#x6678 ?ÃÇ)
-   (#x6679 ?Ù¦)
-   (#x667a ?´¼)
-   (#x667b ?Ù£)
-   (#x667c ?Ù¡)
-   (#x667e ?´½)
-   (#x6680 ?Ù¤)
-   (#x6684 ?·y)
-   (#x6686 ?Ý¿)
-   (#x6687 ?·v)
-   (#x6688 ?·w)
-   (#x6689 ?·u)
-   (#x668a ?ÃÄ)
-   (#x668b ?ÃÃ)
-   (#x668c ?ÃÀ)
-   (#x668d ?·{)
-   (#x6690 ?ÃÂ)
-   (#x6691 ?´»)
-   (#x6694 ?ÃÆ)
-   (#x6695 ?ÃÃ)
-   (#x6696 ?·x)
-   (#x6697 ?·t)
-   (#x6698 ?·z)
-   (#x6699 ?ÃÃ…)
-   (#x669d ?º\)
-   (#x669f ?áø)
-   (#x66a0 ?á÷)
-   (#x66a1 ?áö)
-   (#x66a2 ?ºZ)
-   (#x66a8 ?º[)
-   (#x66a9 ?åÅ)
-   (#x66aa ?åÈ)
-   (#x66ab ?¼È)
-   (#x66ae ?¼Ç)
-   (#x66af ?åÉ)
-   (#x66b0 ?åÄ)
-   (#x66b1 ?¼Ê)
-   (#x66b2 ?åÆ)
-   (#x66b4 ?¼É)
-   (#x66b5 ?åÃ)
-   (#x66b7 ?åÇ)
-   (#x66b8 ?¾é)
-   (#x66b9 ?¾æ)
-   (#x66ba ?é»)
-   (#x66bb ?éº)
-   (#x66bd ?é¹)
-   (#x66be ?é´)
-   (#x66c0 ?éµ)
-   (#x66c4 ?¾ç)
-   (#x66c6 ?¾ä)
-   (#x66c7 ?¾è)
-   (#x66c8 ?é³)
-   (#x66c9 ?¾å)
-   (#x66ca ?é¶)
-   (#x66cb ?é·)
-   (#x66cc ?é¼)
-   (#x66cf ?é¸)
-   (#x66d2 ?ìò)
-   (#x66d6 ?ÀÇ)
-   (#x66d8 ?ïÜ)
-   (#x66d9 ?ÀÆ)
-   (#x66da ?ïÚ)
-   (#x66db ?ïÛ)
-   (#x66dc ?Â`)
-   (#x66dd ?Ãn)
-   (#x66de ?òK)
-   (#x66e0 ?Ãm)
-   (#x66e3 ?ôQ)
-   (#x66e4 ?ôR)
-   (#x66e6 ?Äf)
-   (#x66e8 ?ôP)
-   (#x66e9 ?Ää)
-   (#x66eb ?֧)
-   (#x66ec ?Ã…ÃŽ)
-   (#x66ed ?øª)
-   (#x66ee ?ø«)
-   (#x66f0 ?¤ê)
-   (#x66f2 ?¦±)
-   (#x66f3 ?¦²)
-   (#x66f4 ?§ó)
-   (#x66f6 ?ÌÑ)
-   (#x66f7 ?¬T)
-   (#x66f8 ?®Ñ)
-   (#x66f9 ?±ä)
-   (#x66fc ?°Ò)
-   (#x66fe ?´¿)
-   (#x66ff ?´À)
-   (#x6700 ?³Ì)
-   (#x6701 ?Ù©)
-   (#x6703 ?·|)
-   (#x6704 ?áú)
-   (#x6705 ?áù)
-   (#x6708 ?¤ë)
-   (#x6709 ?¦³)
-   (#x670a ?ÌÒ)
-   (#x670b ?ªB)
-   (#x670d ?ªA)
-   (#x670f ?Îù)
-   (#x6710 ?Îú)
-   (#x6712 ?Ñ×)
-   (#x6713 ?ÑØ)
-   (#x6714 ?®Ò)
-   (#x6715 ?®Ó)
-   (#x6717 ?®Ô)
-   (#x6718 ?Õ¯)
-   (#x671b ?±æ)
-   (#x671d ?´Â)
-   (#x671f ?´Ã)
-   (#x6720 ?ÃÈ)
-   (#x6721 ?ßz)
-   (#x6722 ?áû)
-   (#x6723 ?é½)
-   (#x6726 ?Âa)
-   (#x6727 ?Äg)
-   (#x6728 ?¤ì)
-   (#x672a ?¥¼)
-   (#x672b ?¥½)
-   (#x672c ?¥»)
-   (#x672d ?¥¾)
-   (#x672e ?¥º)
-   (#x6731 ?¦¶)
-   (#x6733 ?Éö)
-   (#x6734 ?¦µ)
-   (#x6735 ?¦·)
-   (#x6738 ?Éñ)
-   (#x6739 ?Éð)
-   (#x673a ?Éó)
-   (#x673b ?Éò)
-   (#x673c ?Éõ)
-   (#x673d ?¦´)
-   (#x673e ?Éï)
-   (#x673f ?Éô)
-   (#x6745 ?Êý)
-   (#x6746 ?§ý)
-   (#x6747 ?Êþ)
-   (#x6748 ?ËC)
-   (#x6749 ?§ü)
-   (#x674b ?ËG)
-   (#x674c ?ËB)
-   (#x674d ?ËE)
-   (#x674e ?§õ)
-   (#x674f ?§ö)
-   (#x6750 ?§÷)
-   (#x6751 ?§ø)
-   (#x6753 ?¨@)
-   (#x6755 ?ËA)
-   (#x6756 ?§ú)
-   (#x6757 ?¨A)
-   (#x6759 ?Ë@)
-   (#x675a ?ËF)
-   (#x675c ?§ù)
-   (#x675d ?ËD)
-   (#x675e ?§û)
-   (#x675f ?§ô)
-   (#x6760 ?§þ)
-   (#x676a ?ªW)
-   (#x676c ?ÌÔ)
-   (#x676d ?ªC)
-   (#x676f ?ªM)
-   (#x6770 ?ªN)
-   (#x6771 ?ªF)
-   (#x6772 ?ªX)
-   (#x6773 ?ªH)
-   (#x6774 ?ÌÜ)
-   (#x6775 ?ªS)
-   (#x6776 ?Ì×)
-   (#x6777 ?ªI)
-   (#x6778 ?Ìæ)
-   (#x6779 ?Ìç)
-   (#x677a ?Ìß)
-   (#x677b ?ÌØ)
-   (#x677c ?ªV)
-   (#x677d ?Ìä)
-   (#x677e ?ªQ)
-   (#x677f ?ªO)
-   (#x6781 ?Ìå)
-   (#x6783 ?Ìã)
-   (#x6784 ?ÌÛ)
-   (#x6785 ?ÌÓ)
-   (#x6786 ?ÌÚ)
-   (#x6787 ?ªJ)
-   (#x6789 ?ªP)
-   (#x678b ?ªD)
-   (#x678c ?ÌÞ)
-   (#x678d ?ÃŒÃ)
-   (#x678e ?ÌÕ)
-   (#x6790 ?ªR)
-   (#x6791 ?Ìá)
-   (#x6792 ?ÌÖ)
-   (#x6793 ?ªU)
-   (#x6794 ?Ìè)
-   (#x6795 ?ªE)
-   (#x6797 ?ªL)
-   (#x6798 ?ÌÙ)
-   (#x6799 ?Ìâ)
-   (#x679a ?ªT)
-   (#x679c ?ªG)
-   (#x679d ?ªK)
-   (#x679f ?Ìà)
-   (#x67ae ?Ã[)
-   (#x67af ?¬\)
-   (#x67b0 ?¬i)
-   (#x67b2 ?ÃV)
-   (#x67b3 ?ÃL)
-   (#x67b4 ?¬b)
-   (#x67b5 ?ÃJ)
-   (#x67b6 ?¬[)
-   (#x67b7 ?ÃE)
-   (#x67b8 ?¬e)
-   (#x67b9 ?ÃR)
-   (#x67ba ?Îþ)
-   (#x67bb ?ÃA)
-   (#x67c0 ?ÃD)
-   (#x67c1 ?Îû)
-   (#x67c2 ?ÃQ)
-   (#x67c3 ?Ãa)
-   (#x67c4 ?¬`)
-   (#x67c5 ?ÃF)
-   (#x67c6 ?ÃX)
-   (#x67c8 ?Îý)
-   (#x67c9 ?Ã_)
-   (#x67ca ?Ã`)
-   (#x67cb ?Ãc)
-   (#x67cc ?ÃZ)
-   (#x67cd ?ÃK)
-   (#x67ce ?ÃS)
-   (#x67cf ?¬f)
-   (#x67d0 ?¬Y)
-   (#x67d1 ?¬a)
-   (#x67d2 ?¬m)
-   (#x67d3 ?¬V)
-   (#x67d4 ?¬X)
-   (#x67d8 ?ÃC)
-   (#x67d9 ?¬j)
-   (#x67da ?¬c)
-   (#x67db ?Ã])
-   (#x67dc ?Ã@)
-   (#x67dd ?¬l)
-   (#x67de ?¬g)
-   (#x67df ?ÃI)
-   (#x67e2 ?¬k)
-   (#x67e3 ?ÃP)
-   (#x67e4 ?ÃH)
-   (#x67e5 ?¬d)
-   (#x67e6 ?Ã\)
-   (#x67e7 ?ÃT)
-   (#x67e9 ?¬^)
-   (#x67ea ?Ãb)
-   (#x67eb ?ÃG)
-   (#x67ec ?¬Z)
-   (#x67ed ?ÃY)
-   (#x67ee ?ÃO)
-   (#x67ef ?¬_)
-   (#x67f0 ?ÃU)
-   (#x67f1 ?¬W)
-   (#x67f2 ?Îü)
-   (#x67f3 ?¬h)
-   (#x67f4 ?®ã)
-   (#x67f5 ?¬])
-   (#x67f6 ?ÃN)
-   (#x67f7 ?ÃM)
-   (#x67f8 ?ÃB)
-   (#x67fa ?Ã^)
-   (#x67fc ?ÃW)
-   (#x67ff ?¬U)
-   (#x6812 ?Ñì)
-   (#x6813 ?®ê)
-   (#x6814 ?Ñí)
-   (#x6816 ?Ñá)
-   (#x6817 ?®ß)
-   (#x6818 ?®ë)
-   (#x681a ?ÑÚ)
-   (#x681c ?Ñã)
-   (#x681d ?Ñë)
-   (#x681f ?ÑÙ)
-   (#x6820 ?Ñô)
-   (#x6821 ?®Õ)
-   (#x6825 ?Ñó)
-   (#x6826 ?Ñî)
-   (#x6828 ?Ñï)
-   (#x6829 ?®Ã)
-   (#x682a ?®è)
-   (#x682b ?Ñå)
-   (#x682d ?Ñæ)
-   (#x682e ?Ñð)
-   (#x682f ?Ñç)
-   (#x6831 ?Ñâ)
-   (#x6832 ?ÑÜ)
-   (#x6833 ?ÑÃ)
-   (#x6834 ?Ñê)
-   (#x6835 ?Ñä)
-   (#x6838 ?®Ö)
-   (#x6839 ?®Ú)
-   (#x683a ?Ñò)
-   (#x683b ?ÑÞ)
-   (#x683c ?®æ)
-   (#x683d ?®â)
-   (#x6840 ?®å)
-   (#x6841 ?®ì)
-   (#x6842 ?®Û)
-   (#x6843 ?®ç)
-   (#x6844 ?Ñé)
-   (#x6845 ?®é)
-   (#x6846 ?®Ø)
-   (#x6848 ?®×)
-   (#x6849 ?ÑÛ)
-   (#x684b ?Ñß)
-   (#x684c ?®à)
-   (#x684d ?Ññ)
-   (#x684e ?Ñè)
-   (#x684f ?Ñà)
-   (#x6850 ?®ä)
-   (#x6851 ?®á)
-   (#x6853 ?®Ù)
-   (#x6854 ?®Ü)
-   (#x686b ?ÕÄ)
-   (#x686d ?Õ´)
-   (#x686e ?Õµ)
-   (#x686f ?Õ¹)
-   (#x6871 ?ÕÈ)
-   (#x6872 ?ÕÅ)
-   (#x6874 ?Õ¾)
-   (#x6875 ?Õ½)
-   (#x6876 ?±í)
-   (#x6877 ?ÕÃ)
-   (#x6878 ?ÕÃ)
-   (#x6879 ?Õ°)
-   (#x687b ?ÕÑ)
-   (#x687c ?ÕÃ)
-   (#x687d ?ÕÕ)
-   (#x687e ?ÕÉ)
-   (#x687f ?±ì)
-   (#x6880 ?ÕÇ)
-   (#x6881 ?±ç)
-   (#x6882 ?±ü)
-   (#x6883 ?±ò)
-   (#x6885 ?±ö)
-   (#x6886 ?±õ)
-   (#x6887 ?Õ±)
-   (#x6889 ?ÕÎ)
-   (#x688a ?ÕÔ)
-   (#x688b ?ÕÌ)
-   (#x688c ?ÕÓ)
-   (#x688f ?ÕÀ)
-   (#x6890 ?Õ²)
-   (#x6891 ?ÕÒ)
-   (#x6892 ?ÕÂ)
-   (#x6893 ?±ê)
-   (#x6894 ?±÷)
-   (#x6896 ?ÕË)
-   (#x6897 ?±ð)
-   (#x689b ?ÕÊ)
-   (#x689c ?Õ³)
-   (#x689d ?±ø)
-   (#x689f ?±ú)
-   (#x68a0 ?ÕÃ)
-   (#x68a1 ?±û)
-   (#x68a2 ?±é)
-   (#x68a3 ?Õº)
-   (#x68a4 ?ÕÃ)
-   (#x68a7 ?±ï)
-   (#x68a8 ?±ù)
-   (#x68a9 ?Õ¼)
-   (#x68aa ?ÕÆ)
-   (#x68ab ?Õ·)
-   (#x68ac ?Õ»)
-   (#x68ad ?±ô)
-   (#x68ae ?Õ¶)
-   (#x68af ?±è)
-   (#x68b0 ?±ñ)
-   (#x68b1 ?±î)
-   (#x68b2 ?Õ¿)
-   (#x68b3 ?®Þ)
-   (#x68b4 ?ÙÀ)
-   (#x68b5 ?±ë)
-   (#x68c4 ?±ó)
-   (#x68c6 ?ÙÃ)
-   (#x68c7 ?ÙÙ)
-   (#x68c8 ?ÙÎ)
-   (#x68c9 ?´Ö)
-   (#x68cb ?´Ñ)
-   (#x68cc ?Ù½)
-   (#x68cd ?´Ò)
-   (#x68ce ?ÙÃ)
-   (#x68d0 ?ÙÆ)
-   (#x68d1 ?ÙÓ)
-   (#x68d2 ?´Î)
-   (#x68d3 ?Ù«)
-   (#x68d4 ?ÙÕ)
-   (#x68d5 ?´Ä)
-   (#x68d6 ?Ù³)
-   (#x68d7 ?´Ç)
-   (#x68d8 ?´Æ)
-   (#x68da ?´×)
-   (#x68dc ?Ù­)
-   (#x68dd ?ÙÃ)
-   (#x68de ?ÙÃ)
-   (#x68df ?´É)
-   (#x68e0 ?´Å)
-   (#x68e1 ?Ù»)
-   (#x68e3 ?´Ã)
-   (#x68e4 ?Ù¶)
-   (#x68e6 ?ÙÑ)
-   (#x68e7 ?´Ì)
-   (#x68e8 ?ÙÉ)
-   (#x68e9 ?ÙÖ)
-   (#x68ea ?Ù°)
-   (#x68eb ?Ùµ)
-   (#x68ec ?Ù¯)
-   (#x68ee ?´Ë)
-   (#x68ef ?ÙÂ)
-   (#x68f0 ?ÃÞ)
-   (#x68f1 ?Ù±)
-   (#x68f2 ?´Ã)
-   (#x68f3 ?Ùº)
-   (#x68f4 ?ÙÒ)
-   (#x68f5 ?´Ê)
-   (#x68f6 ?Ù·)
-   (#x68f7 ?Ù´)
-   (#x68f8 ?ÙÅ)
-   (#x68f9 ?´Ã)
-   (#x68fa ?´Ã)
-   (#x68fb ?´Ù)
-   (#x68fc ?ÙÈ)
-   (#x68fd ?ÙÇ)
-   (#x6904 ?Ù¬)
-   (#x6905 ?´È)
-   (#x6906 ?ÙÔ)
-   (#x6907 ?Ù¼)
-   (#x6908 ?Ù¾)
-   (#x690a ?ÙË)
-   (#x690b ?ÙÊ)
-   (#x690c ?Ùª)
-   (#x690d ?´Ó)
-   (#x690e ?´Õ)
-   (#x690f ?Ù²)
-   (#x6910 ?Ù¹)
-   (#x6911 ?ÙÃ)
-   (#x6912 ?´Ô)
-   (#x6913 ?Ù¸)
-   (#x6914 ?ÙÄ)
-   (#x6915 ?Ù×)
-   (#x6917 ?ÙÌ)
-   (#x6925 ?ÙØ)
-   (#x692a ?Ù®)
-   (#x692f ?Ãò)
-   (#x6930 ?·¦)
-   (#x6932 ?Ãð)
-   (#x6933 ?ÃÛ)
-   (#x6934 ?Ãà)
-   (#x6935 ?ÃÙ)
-   (#x6937 ?Ãì)
-   (#x6938 ?ÃË)
-   (#x6939 ?ÃÃ’)
-   (#x693b ?Ãê)
-   (#x693c ?Ãô)
-   (#x693d ?ÃÃœ)
-   (#x693f ?ÃÃ)
-   (#x6940 ?Ãâ)
-   (#x6941 ?Ãç)
-   (#x6942 ?ÃÓ)
-   (#x6944 ?Ãä)
-   (#x6945 ?ÃÃ)
-   (#x6948 ?Ã×)
-   (#x6949 ?ÃØ)
-   (#x694a ?·¨)
-   (#x694b ?Ãë)
-   (#x694c ?Ãé)
-   (#x694e ?ÃÃŒ)
-   (#x694f ?Ãî)
-   (#x6951 ?Ãï)
-   (#x6952 ?Ãñ)
-   (#x6953 ?·¬)
-   (#x6954 ?·¤)
-   (#x6956 ?Õ¸)
-   (#x6957 ?ÃÔ)
-   (#x6958 ?Ãæ)
-   (#x6959 ?ÃÕ)
-   (#x695a ?·¡)
-   (#x695b ?·±)
-   (#x695c ?Ãí)
-   (#x695d ?·¯)
-   (#x695e ?·«)
-   (#x695f ?ÃÊ)
-   (#x6960 ?·£)
-   (#x6962 ?ÃÃ)
-   (#x6963 ?·°)
-   (#x6965 ?ÃÃ)
-   (#x6966 ?ÃÉ)
-   (#x6968 ?·©)
-   (#x6969 ?Ãá)
-   (#x696a ?ÃÑ)
-   (#x696b ?·ª)
-   (#x696c ?ÃÚ)
-   (#x696d ?·~)
-   (#x696e ?´Ø)
-   (#x696f ?Ãã)
-   (#x6970 ?Ù¿)
-   (#x6971 ?ÃÃŽ)
-   (#x6974 ?Ãè)
-   (#x6975 ?·¥)
-   (#x6976 ?ÃÃ¥)
-   (#x6977 ?·¢)
-   (#x6978 ?Ãß)
-   (#x6979 ?·­)
-   (#x697a ?ÃÖ)
-   (#x697b ?Ãó)
-   (#x6982 ?·§)
-   (#x6983 ?ÞÆ)
-   (#x6986 ?·®)
-   (#x698d ?âJ)
-   (#x698e ?âH)
-   (#x6990 ?â^)
-   (#x6991 ?âF)
-   (#x6993 ?âX)
-   (#x6994 ?·})
-   (#x6995 ?º_)
-   (#x6996 ?âB)
-   (#x6997 ?â])
-   (#x6999 ?âG)
-   (#x699a ?âU)
-   (#x699b ?ºd)
-   (#x699c ?º])
-   (#x699e ?â[)
-   (#x69a0 ?â@)
-   (#x69a1 ?âZ)
-   (#x69a3 ?ºo)
-   (#x69a4 ?âQ)
-   (#x69a5 ?âa)
-   (#x69a6 ?ºm)
-   (#x69a7 ?âI)
-   (#x69a8 ?º^)
-   (#x69a9 ?âK)
-   (#x69aa ?âY)
-   (#x69ab ?ºg)
-   (#x69ac ?âD)
-   (#x69ad ?ºk)
-   (#x69ae ?ºa)
-   (#x69af ?âM)
-   (#x69b0 ?âC)
-   (#x69b1 ?áü)
-   (#x69b3 ?âW)
-   (#x69b4 ?ºh)
-   (#x69b5 ?â`)
-   (#x69b6 ?áý)
-   (#x69b7 ?ºe)
-   (#x69b9 ?âS)
-   (#x69bb ?ºf)
-   (#x69bc ?âE)
-   (#x69bd ?âP)
-   (#x69be ?âL)
-   (#x69bf ?âN)
-   (#x69c1 ?º`)
-   (#x69c2 ?â_)
-   (#x69c3 ?ºn)
-   (#x69c4 ?âO)
-   (#x69c6 ?âb)
-   (#x69c9 ?áþ)
-   (#x69ca ?âT)
-   (#x69cb ?ºc)
-   (#x69cc ?ºl)
-   (#x69cd ?ºj)
-   (#x69ce ?âA)
-   (#x69cf ?âV)
-   (#x69d0 ?ºi)
-   (#x69d3 ?ºb)
-   (#x69d4 ?âR)
-   (#x69d9 ?â\)
-   (#x69e2 ?åÕ)
-   (#x69e4 ?åÑ)
-   (#x69e5 ?Ã¥Ã)
-   (#x69e6 ?åá)
-   (#x69e7 ?åÞ)
-   (#x69e8 ?¼Ã)
-   (#x69eb ?åå)
-   (#x69ec ?åÔ)
-   (#x69ed ?¼Ø)
-   (#x69ee ?åÛ)
-   (#x69f1 ?Ã¥Ã)
-   (#x69f2 ?åÚ)
-   (#x69f3 ?¼Õ)
-   (#x69f4 ?åî)
-   (#x69f6 ?åë)
-   (#x69f7 ?Ã¥Ã)
-   (#x69f8 ?åÎ)
-   (#x69fb ?åâ)
-   (#x69fc ?åä)
-   (#x69fd ?¼Ñ)
-   (#x69fe ?åØ)
-   (#x69ff ?åÓ)
-   (#x6a00 ?åÊ)
-   (#x6a01 ?¼Î)
-   (#x6a02 ?¼Ö)
-   (#x6a04 ?åç)
-   (#x6a05 ?¼×)
-   (#x6a06 ?åË)
-   (#x6a07 ?åí)
-   (#x6a08 ?åà)
-   (#x6a09 ?åæ)
-   (#x6a0a ?¼Ô)
-   (#x6a0d ?åã)
-   (#x6a0f ?åê)
-   (#x6a11 ?¼Ù)
-   (#x6a13 ?¼Ó)
-   (#x6a14 ?åÜ)
-   (#x6a15 ?Ã¥Ã)
-   (#x6a16 ?åï)
-   (#x6a17 ?åÌ)
-   (#x6a18 ?åè)
-   (#x6a19 ?¼Ã)
-   (#x6a1b ?åÖ)
-   (#x6a1d ?å×)
-   (#x6a1e ?¼Ã)
-   (#x6a1f ?¼Ì)
-   (#x6a20 ?åÒ)
-   (#x6a21 ?¼Ò)
-   (#x6a23 ?¼Ë)
-   (#x6a25 ?åé)
-   (#x6a26 ?åì)
-   (#x6a27 ?åÙ)
-   (#x6a28 ?éÊ)
-   (#x6a32 ?éÂ)
-   (#x6a34 ?é¾)
-   (#x6a35 ?¾ö)
-   (#x6a38 ?¾ë)
-   (#x6a39 ?¾ð)
-   (#x6a3a ?¾ì)
-   (#x6a3b ?éÌ)
-   (#x6a3c ?é×)
-   (#x6a3d ?¾ê)
-   (#x6a3e ?éÄ)
-   (#x6a3f ?éÃ)
-   (#x6a40 ?åß)
-   (#x6a41 ?éÎ)
-   (#x6a44 ?¾ñ)
-   (#x6a46 ?éÃ)
-   (#x6a47 ?¾õ)
-   (#x6a48 ?¾ø)
-   (#x6a49 ?éÀ)
-   (#x6a4b ?¾ô)
-   (#x6a4d ?éÛ)
-   (#x6a4e ?éÜ)
-   (#x6a4f ?éÒ)
-   (#x6a50 ?éÑ)
-   (#x6a51 ?éÉ)
-   (#x6a54 ?éÓ)
-   (#x6a55 ?éÚ)
-   (#x6a56 ?éÙ)
-   (#x6a58 ?¾ï)
-   (#x6a59 ?¾í)
-   (#x6a5a ?éË)
-   (#x6a5b ?éÈ)
-   (#x6a5d ?éÅ)
-   (#x6a5e ?éØ)
-   (#x6a5f ?¾÷)
-   (#x6a60 ?éÖ)
-   (#x6a61 ?¾ó)
-   (#x6a62 ?¾ò)
-   (#x6a64 ?éÃ)
-   (#x6a66 ?é¿)
-   (#x6a67 ?éÃ)
-   (#x6a68 ?éÃ)
-   (#x6a69 ?éÕ)
-   (#x6a6a ?éÃ)
-   (#x6a6b ?¾î)
-   (#x6a6d ?éÆ)
-   (#x6a6f ?éÔ)
-   (#x6a76 ?éÇ)
-   (#x6a7e ?ÀÃ)
-   (#x6a7f ?íE)
-   (#x6a80 ?ÀÈ)
-   (#x6a81 ?ìõ)
-   (#x6a83 ?íA)
-   (#x6a84 ?ÀÊ)
-   (#x6a85 ?íH)
-   (#x6a87 ?ìü)
-   (#x6a89 ?ì÷)
-   (#x6a8c ?íI)
-   (#x6a8d ?ìó)
-   (#x6a8e ?ìþ)
-   (#x6a90 ?ÀÑ)
-   (#x6a91 ?íD)
-   (#x6a92 ?íJ)
-   (#x6a93 ?ìý)
-   (#x6a94 ?ÀÉ)
-   (#x6a95 ?í@)
-   (#x6a96 ?ìô)
-   (#x6a97 ?ÀÃ)
-   (#x6a9a ?íG)
-   (#x6a9b ?ìù)
-   (#x6a9c ?ÀÌ)
-   (#x6a9e ?ìû)
-   (#x6a9f ?ìø)
-   (#x6aa0 ?ÀÒ)
-   (#x6aa1 ?ìú)
-   (#x6aa2 ?ÀË)
-   (#x6aa3 ?ÀÎ)
-   (#x6aa4 ?íC)
-   (#x6aa5 ?ìö)
-   (#x6aa6 ?íF)
-   (#x6aa8 ?íB)
-   (#x6aac ?Âc)
-   (#x6aad ?ïç)
-   (#x6aae ?Âh)
-   (#x6aaf ?Âi)
-   (#x6ab3 ?Âb)
-   (#x6ab4 ?ïæ)
-   (#x6ab6 ?ïã)
-   (#x6ab7 ?ïä)
-   (#x6ab8 ?Âf)
-   (#x6ab9 ?ïÞ)
-   (#x6aba ?ïâ)
-   (#x6abb ?Âe)
-   (#x6abd ?ïß)
-   (#x6ac2 ?Âg)
-   (#x6ac3 ?Âd)
-   (#x6ac5 ?ïÃ)
-   (#x6ac6 ?ïá)
-   (#x6ac7 ?ïå)
-   (#x6acb ?òQ)
-   (#x6acc ?òN)
-   (#x6acd ?òW)
-   (#x6acf ?òV)
-   (#x6ad0 ?òT)
-   (#x6ad1 ?òO)
-   (#x6ad3 ?Ãr)
-   (#x6ad9 ?òP)
-   (#x6ada ?Ãq)
-   (#x6adb ?ÀÃ)
-   (#x6adc ?òS)
-   (#x6add ?Ãp)
-   (#x6ade ?òX)
-   (#x6adf ?òR)
-   (#x6ae0 ?òM)
-   (#x6ae1 ?ïà)
-   (#x6ae5 ?Ão)
-   (#x6ae7 ?òL)
-   (#x6ae8 ?ôV)
-   (#x6aea ?ôU)
-   (#x6aeb ?òU)
-   (#x6aec ?Äh)
-   (#x6aee ?ôY)
-   (#x6aef ?ôZ)
-   (#x6af0 ?ôT)
-   (#x6af1 ?ôX)
-   (#x6af3 ?ôS)
-   (#x6af8 ?õÑ)
-   (#x6af9 ?ôW)
-   (#x6afa ?Äç)
-   (#x6afb ?Äå)
-   (#x6afc ?õÃ)
-   (#x6b00 ?õÒ)
-   (#x6b02 ?õÎ)
-   (#x6b03 ?õÃ)
-   (#x6b04 ?Äæ)
-   (#x6b08 ?öå)
-   (#x6b09 ?öæ)
-   (#x6b0a ?Ã…v)
-   (#x6b0b ?öä)
-   (#x6b0f ?։)
-   (#x6b10 ?Ã…Ã)
-   (#x6b11 ?ֈ)
-   (#x6b12 ?և)
-   (#x6b13 ?ø¬)
-   (#x6b16 ?ÆV)
-   (#x6b17 ?øó)
-   (#x6b18 ?øñ)
-   (#x6b19 ?øò)
-   (#x6b1a ?øô)
-   (#x6b1e ?ù»)
-   (#x6b20 ?¤í)
-   (#x6b21 ?¦¸)
-   (#x6b23 ?ªY)
-   (#x6b25 ?Ìé)
-   (#x6b28 ?Ãd)
-   (#x6b2c ?Ñõ)
-   (#x6b2d ?Ñ÷)
-   (#x6b2f ?Ñö)
-   (#x6b31 ?Ñø)
-   (#x6b32 ?±ý)
-   (#x6b33 ?Õ×)
-   (#x6b34 ?Ñù)
-   (#x6b36 ?ÕÖ)
-   (#x6b37 ?ÕØ)
-   (#x6b38 ?ÕÙ)
-   (#x6b39 ?ÙÚ)
-   (#x6b3a ?´Û)
-   (#x6b3b ?ÙÛ)
-   (#x6b3c ?ÙÃ)
-   (#x6b3d ?´Ü)
-   (#x6b3e ?´Ú)
-   (#x6b3f ?ÙÜ)
-   (#x6b41 ?Ãú)
-   (#x6b42 ?Ãø)
-   (#x6b43 ?Ã÷)
-   (#x6b45 ?Ãö)
-   (#x6b46 ?Ãõ)
-   (#x6b47 ?·²)
-   (#x6b48 ?Ãù)
-   (#x6b49 ?ºp)
-   (#x6b4a ?âc)
-   (#x6b4b ?âe)
-   (#x6b4c ?ºq)
-   (#x6b4d ?âd)
-   (#x6b4e ?¼Û)
-   (#x6b50 ?¼Ú)
-   (#x6b51 ?åð)
-   (#x6b54 ?éß)
-   (#x6b55 ?éÞ)
-   (#x6b56 ?éà)
-   (#x6b59 ?¾ù)
-   (#x6b5b ?íK)
-   (#x6b5c ?ÀÓ)
-   (#x6b5e ?ïè)
-   (#x6b5f ?Âj)
-   (#x6b60 ?òY)
-   (#x6b61 ?Ã…w)
-   (#x6b62 ?¤î)
-   (#x6b63 ?¥¿)
-   (#x6b64 ?¦¹)
-   (#x6b65 ?¨B)
-   (#x6b66 ?ªZ)
-   (#x6b67 ?ª[)
-   (#x6b6a ?¬n)
-   (#x6b6d ?Ñú)
-   (#x6b72 ?·³)
-   (#x6b76 ?æÑ)
-   (#x6b77 ?¾ú)
-   (#x6b78 ?Âk)
-   (#x6b79 ?¤ï)
-   (#x6b7b ?¦º)
-   (#x6b7e ?Ìë)
-   (#x6b7f ?ª\)
-   (#x6b80 ?Ìê)
-   (#x6b82 ?Ãe)
-   (#x6b83 ?¬o)
-   (#x6b84 ?Ãf)
-   (#x6b86 ?¬p)
-   (#x6b88 ?Ñü)
-   (#x6b89 ?®î)
-   (#x6b8a ?®í)
-   (#x6b8c ?ÕÞ)
-   (#x6b8d ?ÕÜ)
-   (#x6b8e ?ÕÃ)
-   (#x6b8f ?ÕÛ)
-   (#x6b91 ?ÕÚ)
-   (#x6b94 ?ÙÞ)
-   (#x6b95 ?Ùá)
-   (#x6b96 ?´Þ)
-   (#x6b97 ?Ùß)
-   (#x6b98 ?´Ã)
-   (#x6b99 ?Ùà)
-   (#x6b9b ?Ãû)
-   (#x6b9e ?âf)
-   (#x6b9f ?âg)
-   (#x6ba0 ?âh)
-   (#x6ba2 ?åó)
-   (#x6ba3 ?åò)
-   (#x6ba4 ?¼Ü)
-   (#x6ba5 ?åñ)
-   (#x6ba6 ?åô)
-   (#x6ba7 ?éá)
-   (#x6baa ?éâ)
-   (#x6bab ?éã)
-   (#x6bad ?íL)
-   (#x6bae ?ÀÔ)
-   (#x6baf ?Âl)
-   (#x6bb0 ?òZ)
-   (#x6bb2 ?Äè)
-   (#x6bb3 ?É_)
-   (#x6bb5 ?¬q)
-   (#x6bb6 ?Ãg)
-   (#x6bb7 ?®ï)
-   (#x6bba ?±þ)
-   (#x6bbc ?´ß)
-   (#x6bbd ?Ùâ)
-   (#x6bbf ?·µ)
-   (#x6bc0 ?·´)
-   (#x6bc3 ?âi)
-   (#x6bc4 ?âj)
-   (#x6bc5 ?¼Ã)
-   (#x6bc6 ?¼Þ)
-   (#x6bc7 ?éå)
-   (#x6bc8 ?éä)
-   (#x6bc9 ?ïé)
-   (#x6bca ?֋)
-   (#x6bcb ?¤ð)
-   (#x6bcc ?É`)
-   (#x6bcd ?¥À)
-   (#x6bcf ?¨C)
-   (#x6bd0 ?ËH)
-   (#x6bd2 ?¬r)
-   (#x6bd3 ?·¶)
-   (#x6bd4 ?¤ñ)
-   (#x6bd6 ?Ãh)
-   (#x6bd7 ?¬s)
-   (#x6bd8 ?Ãi)
-   (#x6bda ?ÀÕ)
-   (#x6bdb ?¤ò)
-   (#x6bde ?Ìì)
-   (#x6be0 ?Ãj)
-   (#x6be2 ?Ã’B)
-   (#x6be3 ?Ã’A)
-   (#x6be4 ?Ñþ)
-   (#x6be6 ?Ñý)
-   (#x6be7 ?Ã’C)
-   (#x6be8 ?Ã’@)
-   (#x6beb ?²@)
-   (#x6bec ?²A)
-   (#x6bef ?´à)
-   (#x6bf0 ?Ùã)
-   (#x6bf2 ?Ùä)
-   (#x6bf3 ?Ùå)
-   (#x6bf7 ?ÞA)
-   (#x6bf8 ?ÞB)
-   (#x6bf9 ?Þ@)
-   (#x6bfb ?Ãý)
-   (#x6bfc ?Ãþ)
-   (#x6bfd ?··)
-   (#x6bfe ?âk)
-   (#x6bff ?å÷)
-   (#x6c00 ?åö)
-   (#x6c01 ?åõ)
-   (#x6c02 ?åø)
-   (#x6c03 ?éç)
-   (#x6c04 ?éæ)
-   (#x6c05 ?¾û)
-   (#x6c06 ?éè)
-   (#x6c08 ?ÀÖ)
-   (#x6c09 ?íM)
-   (#x6c0b ?ïê)
-   (#x6c0c ?ò[)
-   (#x6c0d ?öç)
-   (#x6c0f ?¤ó)
-   (#x6c10 ?¥Â)
-   (#x6c11 ?Â¥Ã)
-   (#x6c13 ?ª])
-   (#x6c14 ?Éa)
-   (#x6c15 ?É~)
-   (#x6c16 ?¦»)
-   (#x6c18 ?É÷)
-   (#x6c19 ?ËI)
-   (#x6c1a ?ËJ)
-   (#x6c1b ?ª^)
-   (#x6c1d ?Ìí)
-   (#x6c1f ?¬t)
-   (#x6c20 ?Ãk)
-   (#x6c21 ?Ãl)
-   (#x6c23 ?®ð)
-   (#x6c24 ?®ô)
-   (#x6c25 ?Ã’D)
-   (#x6c26 ?®ó)
-   (#x6c27 ?®ñ)
-   (#x6c28 ?®ò)
-   (#x6c2a ?Õß)
-   (#x6c2b ?²B)
-   (#x6c2c ?´ã)
-   (#x6c2e ?´á)
-   (#x6c2f ?´â)
-   (#x6c30 ?Ùæ)
-   (#x6c33 ?ºr)
-   (#x6c34 ?¤ô)
-   (#x6c36 ?É¡)
-   (#x6c38 ?¥Ã)
-   (#x6c3b ?ɤ)
-   (#x6c3e ?¥Æ)
-   (#x6c3f ?É£)
-   (#x6c40 ?¥Å)
-   (#x6c41 ?¥Ä)
-   (#x6c42 ?¨D)
-   (#x6c43 ?É¢)
-   (#x6c46 ?Éø)
-   (#x6c4a ?Éü)
-   (#x6c4b ?Éþ)
-   (#x6c4c ?Ê@)
-   (#x6c4d ?¦Å)
-   (#x6c4e ?¦Æ)
-   (#x6c4f ?Éû)
-   (#x6c50 ?¦Ã)
-   (#x6c52 ?Éù)
-   (#x6c54 ?Éý)
-   (#x6c55 ?¦Â)
-   (#x6c57 ?¦½)
-   (#x6c59 ?¦¾)
-   (#x6c5b ?¦Ä)
-   (#x6c5c ?Éú)
-   (#x6c5d ?¦¼)
-   (#x6c5e ?¨E)
-   (#x6c5f ?¦¿)
-   (#x6c60 ?¦À)
-   (#x6c61 ?¦Ã)
-   (#x6c65 ?Ë[)
-   (#x6c66 ?ËY)
-   (#x6c67 ?ËL)
-   (#x6c68 ?¨Q)
-   (#x6c69 ?ËS)
-   (#x6c6a ?¨L)
-   (#x6c6b ?ËM)
-   (#x6c6d ?ËU)
-   (#x6c6f ?ËR)
-   (#x6c70 ?¨O)
-   (#x6c71 ?ËQ)
-   (#x6c72 ?¨V)
-   (#x6c73 ?ËZ)
-   (#x6c74 ?¨X)
-   (#x6c76 ?¨Z)
-   (#x6c78 ?ËK)
-   (#x6c7a ?¨M)
-   (#x6c7b ?Ë\)
-   (#x6c7d ?¨T)
-   (#x6c7e ?¨W)
-   (#x6c80 ?ÃE)
-   (#x6c81 ?¨G)
-   (#x6c82 ?¨^)
-   (#x6c83 ?¨U)
-   (#x6c84 ?ËN)
-   (#x6c85 ?¨J)
-   (#x6c86 ?¨Y)
-   (#x6c87 ?ËV)
-   (#x6c88 ?¨H)
-   (#x6c89 ?¨I)
-   (#x6c8a ?ÃC)
-   (#x6c8b ?ËO)
-   (#x6c8c ?¨P)
-   (#x6c8d ?¨[)
-   (#x6c8e ?Ë])
-   (#x6c8f ?ËP)
-   (#x6c90 ?¨N)
-   (#x6c92 ?¨S)
-   (#x6c93 ?Ìî)
-   (#x6c94 ?¨\)
-   (#x6c95 ?ËW)
-   (#x6c96 ?¨R)
-   (#x6c98 ?¨])
-   (#x6c99 ?¨F)
-   (#x6c9a ?ËT)
-   (#x6c9b ?¨K)
-   (#x6c9c ?ËX)
-   (#x6c9d ?ÃD)
-   (#x6cab ?ªj)
-   (#x6cac ?ªz)
-   (#x6cad ?Ìõ)
-   (#x6cae ?ªq)
-   (#x6cb0 ?ÃK)
-   (#x6cb1 ?ªb)
-   (#x6cb3 ?ªe)
-   (#x6cb4 ?ÃB)
-   (#x6cb6 ?Ìó)
-   (#x6cb7 ?Ì÷)
-   (#x6cb8 ?ªm)
-   (#x6cb9 ?ªo)
-   (#x6cba ?Ìú)
-   (#x6cbb ?ªv)
-   (#x6cbc ?ªh)
-   (#x6cbd ?ªf)
-   (#x6cbe ?ªg)
-   (#x6cbf ?ªu)
-   (#x6cc0 ?ÃG)
-   (#x6cc1 ?ªp)
-   (#x6cc2 ?Ìù)
-   (#x6cc3 ?Ìû)
-   (#x6cc4 ?ªn)
-   (#x6cc5 ?ªs)
-   (#x6cc6 ?Ìü)
-   (#x6cc7 ?ÃJ)
-   (#x6cc9 ?¬u)
-   (#x6cca ?ªy)
-   (#x6ccc ?ªc)
-   (#x6ccd ?ÃI)
-   (#x6ccf ?ÃM)
-   (#x6cd0 ?Ìø)
-   (#x6cd1 ?ÃO)
-   (#x6cd2 ?Ã@)
-   (#x6cd3 ?ªl)
-   (#x6cd4 ?Ìô)
-   (#x6cd5 ?ªk)
-   (#x6cd6 ?ª})
-   (#x6cd7 ?ªr)
-   (#x6cd9 ?Ìò)
-   (#x6cda ?Ãu)
-   (#x6cdb ?ªx)
-   (#x6cdc ?ª|)
-   (#x6cdd ?ÃA)
-   (#x6cde ?ÃF)
-   (#x6ce0 ?ª~)
-   (#x6ce1 ?ªw)
-   (#x6ce2 ?ªi)
-   (#x6ce3 ?ª_)
-   (#x6ce5 ?ªd)
-   (#x6ce7 ?Ìö)
-   (#x6ce8 ?ª`)
-   (#x6ce9 ?ÃN)
-   (#x6ceb ?Ìð)
-   (#x6cec ?Ìï)
-   (#x6ced ?Ìý)
-   (#x6cee ?Ìñ)
-   (#x6cef ?ª{)
-   (#x6cf0 ?®õ)
-   (#x6cf1 ?ªt)
-   (#x6cf2 ?Ìþ)
-   (#x6cf3 ?ªa)
-   (#x6cf5 ?¬¦)
-   (#x6cf9 ?ÃL)
-   (#x6d00 ?Ã|)
-   (#x6d01 ?Ï¡)
-   (#x6d03 ?Ϥ)
-   (#x6d04 ?Ãw)
-   (#x6d07 ?ϧ)
-   (#x6d08 ?Ϫ)
-   (#x6d09 ?Ϭ)
-   (#x6d0a ?Ãt)
-   (#x6d0b ?¬v)
-   (#x6d0c ?¬{)
-   (#x6d0d ?Ã’I)
-   (#x6d0e ?¬­)
-   (#x6d0f ?Ï¥)
-   (#x6d10 ?Ï­)
-   (#x6d11 ?Ã{)
-   (#x6d12 ?Ãs)
-   (#x6d16 ?Ã’d)
-   (#x6d17 ?¬~)
-   (#x6d18 ?Ï¢)
-   (#x6d19 ?Ãx)
-   (#x6d1a ?Ãz)
-   (#x6d1b ?´)
-   (#x6d1d ?Ã})
-   (#x6d1e ?¬})
-   (#x6d1f ?Ãp)
-   (#x6d20 ?Ϩ)
-   (#x6d22 ?Ï«)
-   (#x6d25 ?¬z)
-   (#x6d27 ?¬)
-   (#x6d28 ?Ãm)
-   (#x6d29 ?»)
-   (#x6d2a ?¬x)
-   (#x6d2b ?¨)
-   (#x6d2c ?Ï©)
-   (#x6d2d ?Ão)
-   (#x6d2e ?¬«)
-   (#x6d2f ?Ã’^)
-   (#x6d30 ?ÃH)
-   (#x6d31 ?¬|)
-   (#x6d32 ?¬w)
-   (#x6d33 ?Ãv)
-   (#x6d34 ?Ãn)
-   (#x6d35 ?¬¬)
-   (#x6d36 ?¬¤)
-   (#x6d37 ?Ï£)
-   (#x6d38 ?©)
-   (#x6d39 ?¤)
-   (#x6d3a ?Ãy)
-   (#x6d3b ?¬¡)
-   (#x6d3c ?Ãq)
-   (#x6d3d ?¢)
-   (#x6d3e ?£)
-   (#x6d3f ?Ãr)
-   (#x6d40 ?Ϧ)
-   (#x6d41 ?¬y)
-   (#x6d42 ?Ã~)
-   (#x6d58 ?Ã’L)
-   (#x6d59 ?®ý)
-   (#x6d5a ?¯C)
-   (#x6d5e ?Ã’U)
-   (#x6d5f ?Ã’[)
-   (#x6d60 ?Ã’W)
-   (#x6d61 ?Ã’J)
-   (#x6d62 ?Ã’M)
-   (#x6d63 ?Ã’F)
-   (#x6d64 ?Ã’G)
-   (#x6d65 ?¯J)
-   (#x6d66 ?®ú)
-   (#x6d67 ?Ã’V)
-   (#x6d68 ?Ã’_)
-   (#x6d69 ?¯E)
-   (#x6d6a ?®ö)
-   (#x6d6c ?¯@)
-   (#x6d6d ?Ã’N)
-   (#x6d6e ?¯B)
-   (#x6d6f ?Ã’O)
-   (#x6d70 ?Ã’Y)
-   (#x6d74 ?¯D)
-   (#x6d75 ?Ã’h)
-   (#x6d76 ?Ã’H)
-   (#x6d77 ?®ü)
-   (#x6d78 ?®û)
-   (#x6d79 ?¯H)
-   (#x6d7a ?Ã’E)
-   (#x6d7b ?Ã’f)
-   (#x6d7c ?Ã’Z)
-   (#x6d7d ?Ã’g)
-   (#x6d7e ?Ã’a)
-   (#x6d7f ?Ã’S)
-   (#x6d80 ?Ã’b)
-   (#x6d82 ?Ã’\)
-   (#x6d83 ?Ã’e)
-   (#x6d84 ?Ã’c)
-   (#x6d85 ?¯I)
-   (#x6d86 ?Ã’T)
-   (#x6d87 ?®ù)
-   (#x6d88 ?®ø)
-   (#x6d89 ?¯A)
-   (#x6d8a ?¯G)
-   (#x6d8b ?Ã’`)
-   (#x6d8c ?¯F)
-   (#x6d8d ?Ã’Q)
-   (#x6d8e ?²C)
-   (#x6d90 ?Ã’i)
-   (#x6d91 ?Ã’P)
-   (#x6d92 ?Ã’K)
-   (#x6d93 ?®þ)
-   (#x6d94 ?¯K)
-   (#x6d95 ?®÷)
-   (#x6d97 ?Ã’X)
-   (#x6d98 ?Ã’])
-   (#x6daa ?²e)
-   (#x6dab ?Õá)
-   (#x6dac ?Õå)
-   (#x6dae ?²R)
-   (#x6daf ?²P)
-   (#x6db2 ?²G)
-   (#x6db3 ?Õã)
-   (#x6db4 ?Õâ)
-   (#x6db5 ?²[)
-   (#x6db7 ?Õè)
-   (#x6db8 ?²U)
-   (#x6dba ?Õú)
-   (#x6dbb ?ÖG)
-   (#x6dbc ?²D)
-   (#x6dbd ?Õ÷)
-   (#x6dbe ?Õð)
-   (#x6dbf ?²g)
-   (#x6dc0 ?Õà)
-   (#x6dc2 ?Õü)
-   (#x6dc4 ?²d)
-   (#x6dc5 ?²X)
-   (#x6dc6 ?²c)
-   (#x6dc7 ?²N)
-   (#x6dc8 ?Õì)
-   (#x6dc9 ?Õþ)
-   (#x6dca ?Õö)
-   (#x6dcb ?²O)
-   (#x6dcc ?²I)
-   (#x6dcd ?ÖE)
-   (#x6dcf ?Õý)
-   (#x6dd0 ?Ö@)
-   (#x6dd1 ?²Q)
-   (#x6dd2 ?²Y)
-   (#x6dd3 ?ÖB)
-   (#x6dd4 ?Õê)
-   (#x6dd5 ?Õû)
-   (#x6dd6 ?Õï)
-   (#x6dd7 ?ÖD)
-   (#x6dd8 ?²^)
-   (#x6dd9 ?²F)
-   (#x6dda ?²\)
-   (#x6ddb ?Õô)
-   (#x6ddc ?Õò)
-   (#x6ddd ?Õó)
-   (#x6dde ?²S)
-   (#x6ddf ?Õî)
-   (#x6de0 ?Õí)
-   (#x6de1 ?²H)
-   (#x6de2 ?Õç)
-   (#x6de3 ?ÖF)
-   (#x6de4 ?²J)
-   (#x6de5 ?Õñ)
-   (#x6de6 ?²h)
-   (#x6de8 ?²b)
-   (#x6de9 ?Õæ)
-   (#x6dea ?²_)
-   (#x6deb ?²])
-   (#x6dec ?²f)
-   (#x6ded ?Õø)
-   (#x6dee ?²a)
-   (#x6def ?Ã’R)
-   (#x6df0 ?Õù)
-   (#x6df1 ?²`)
-   (#x6df2 ?ÖA)
-   (#x6df3 ?²E)
-   (#x6df4 ?Õõ)
-   (#x6df5 ?²W)
-   (#x6df6 ?Õé)
-   (#x6df7 ?²V)
-   (#x6df9 ?²T)
-   (#x6dfa ?²L)
-   (#x6dfb ?²K)
-   (#x6dfc ?Ùç)
-   (#x6dfd ?ÖC)
-   (#x6e00 ?Õë)
-   (#x6e03 ?Ùü)
-   (#x6e05 ?²M)
-   (#x6e19 ?µA)
-   (#x6e1a ?²Z)
-   (#x6e1b ?´î)
-   (#x6e1c ?Ùö)
-   (#x6e1d ?´ü)
-   (#x6e1f ?Ùê)
-   (#x6e20 ?´ë)
-   (#x6e21 ?´ç)
-   (#x6e22 ?ÚI)
-   (#x6e23 ?´í)
-   (#x6e24 ?´ñ)
-   (#x6e25 ?´ì)
-   (#x6e26 ?´õ)
-   (#x6e27 ?ÚM)
-   (#x6e28 ?ÚD)
-   (#x6e2b ?Ùñ)
-   (#x6e2c ?´ú)
-   (#x6e2d ?´ô)
-   (#x6e2e ?Ùý)
-   (#x6e2f ?´ä)
-   (#x6e30 ?ÚJ)
-   (#x6e31 ?ÚC)
-   (#x6e32 ?´è)
-   (#x6e33 ?Ù÷)
-   (#x6e34 ?´÷)
-   (#x6e35 ?ÚU)
-   (#x6e36 ?ÚV)
-   (#x6e38 ?´å)
-   (#x6e39 ?ÚH)
-   (#x6e3a ?´ù)
-   (#x6e3b ?Ùû)
-   (#x6e3c ?Ùí)
-   (#x6e3d ?Ùî)
-   (#x6e3e ?´ý)
-   (#x6e3f ?Ùò)
-   (#x6e40 ?Ùù)
-   (#x6e41 ?Ùó)
-   (#x6e43 ?´û)
-   (#x6e44 ?µD)
-   (#x6e45 ?Ùï)
-   (#x6e46 ?Ùè)
-   (#x6e47 ?Ùé)
-   (#x6e49 ?Ùë)
-   (#x6e4a ?´ê)
-   (#x6e4b ?Ùø)
-   (#x6e4d ?´ø)
-   (#x6e4e ?µB)
-   (#x6e51 ?Ùú)
-   (#x6e52 ?ÚS)
-   (#x6e53 ?ÚK)
-   (#x6e54 ?´æ)
-   (#x6e55 ?ÚQ)
-   (#x6e56 ?´ò)
-   (#x6e58 ?´ð)
-   (#x6e5a ?ÚW)
-   (#x6e5b ?´ï)
-   (#x6e5c ?ÚA)
-   (#x6e5d ?Ùô)
-   (#x6e5e ?Ùþ)
-   (#x6e5f ?µG)
-   (#x6e60 ?ÚE)
-   (#x6e61 ?ÚB)
-   (#x6e62 ?Ùð)
-   (#x6e63 ?µC)
-   (#x6e64 ?ÚO)
-   (#x6e65 ?ÚL)
-   (#x6e66 ?ÚT)
-   (#x6e67 ?´é)
-   (#x6e68 ?Ú@)
-   (#x6e69 ?µF)
-   (#x6e6b ?ÚG)
-   (#x6e6e ?´ó)
-   (#x6e6f ?´ö)
-   (#x6e71 ?ÚF)
-   (#x6e72 ?µE)
-   (#x6e73 ?Ùõ)
-   (#x6e74 ?Õä)
-   (#x6e77 ?ÚP)
-   (#x6e78 ?ÚN)
-   (#x6e79 ?ÚR)
-   (#x6e88 ?Ùì)
-   (#x6e89 ?µ@)
-   (#x6e8d ?Þa)
-   (#x6e8e ?Þ`)
-   (#x6e8f ?ÞF)
-   (#x6e90 ?·½)
-   (#x6e92 ?Þ_)
-   (#x6e93 ?ÞI)
-   (#x6e94 ?ÞJ)
-   (#x6e96 ?·Ç)
-   (#x6e97 ?Þh)
-   (#x6e98 ?·Â)
-   (#x6e99 ?Þ^)
-   (#x6e9b ?ÞC)
-   (#x6e9c ?·È)
-   (#x6e9d ?·¾)
-   (#x6e9e ?ÞR)
-   (#x6e9f ?ÞH)
-   (#x6ea0 ?ÞK)
-   (#x6ea1 ?Þc)
-   (#x6ea2 ?·¸)
-   (#x6ea3 ?Þj)
-   (#x6ea4 ?Þb)
-   (#x6ea5 ?·Ã)
-   (#x6ea6 ?ÞW)
-   (#x6ea7 ?·Ì)
-   (#x6eaa ?·Ë)
-   (#x6eab ?·Å)
-   (#x6eae ?Þi)
-   (#x6eaf ?·¹)
-   (#x6eb0 ?ÞU)
-   (#x6eb1 ?ÞL)
-   (#x6eb2 ?ÞY)
-   (#x6eb3 ?Þe)
-   (#x6eb4 ?·Ã)
-   (#x6eb6 ?·»)
-   (#x6eb7 ?ÞT)
-   (#x6eb9 ?ÞM)
-   (#x6eba ?·Ä)
-   (#x6ebc ?·Ã)
-   (#x6ebd ?ÞP)
-   (#x6ebe ?ÞZ)
-   (#x6ebf ?Þd)
-   (#x6ec0 ?ÞG)
-   (#x6ec1 ?ÞQ)
-   (#x6ec2 ?·¼)
-   (#x6ec3 ?Þ[)
-   (#x6ec4 ?·É)
-   (#x6ec5 ?·À)
-   (#x6ec6 ?ÞN)
-   (#x6ec7 ?·¿)
-   (#x6ec8 ?ÞE)
-   (#x6ec9 ?ÞS)
-   (#x6eca ?Þg)
-   (#x6ecb ?´þ)
-   (#x6ecc ?º°)
-   (#x6ecd ?ÞV)
-   (#x6ece ?âl)
-   (#x6ecf ?ÞX)
-   (#x6ed0 ?Þf)
-   (#x6ed1 ?·Æ)
-   (#x6ed2 ?ÞO)
-   (#x6ed3 ?·º)
-   (#x6ed4 ?·Ê)
-   (#x6ed5 ?¼ð)
-   (#x6ed6 ?ÞD)
-   (#x6ed8 ?Þ])
-   (#x6edc ?Þ\)
-   (#x6eeb ?âª)
-   (#x6eec ?º­)
-   (#x6eed ?â})
-   (#x6eee ?â¤)
-   (#x6eef ?º¢)
-   (#x6ef1 ?ân)
-   (#x6ef2 ?º¯)
-   (#x6ef4 ?ºw)
-   (#x6ef5 ?âm)
-   (#x6ef6 ?â°)
-   (#x6ef7 ?º±)
-   (#x6ef8 ?âq)
-   (#x6ef9 ?â£)
-   (#x6efb ?âs)
-   (#x6efc ?â³)
-   (#x6efd ?â¯)
-   (#x6efe ?ºu)
-   (#x6eff ?º¡)
-   (#x6f00 ?æS)
-   (#x6f01 ?º®)
-   (#x6f02 ?º})
-   (#x6f03 ?âo)
-   (#x6f05 ?â®)
-   (#x6f06 ?º£)
-   (#x6f07 ?â«)
-   (#x6f08 ?â¸)
-   (#x6f09 ?âu)
-   (#x6f0a ?â~)
-   (#x6f0d ?â¶)
-   (#x6f0e ?â¬)
-   (#x6f0f ?º|)
-   (#x6f12 ?â|)
-   (#x6f13 ?ºv)
-   (#x6f14 ?ºt)
-   (#x6f15 ?º¨)
-   (#x6f18 ?âz)
-   (#x6f19 ?âw)
-   (#x6f1a ?âx)
-   (#x6f1c ?â²)
-   (#x6f1e ?â·)
-   (#x6f1f ?âµ)
-   (#x6f20 ?ºz)
-   (#x6f21 ?â¹)
-   (#x6f22 ?º~)
-   (#x6f23 ?º§)
-   (#x6f25 ?âp)
-   (#x6f26 ?åú)
-   (#x6f27 ?ây)
-   (#x6f29 ?ºx)
-   (#x6f2a ?º¬)
-   (#x6f2b ?º©)
-   (#x6f2c ?º{)
-   (#x6f2d ?â¥)
-   (#x6f2e ?ât)
-   (#x6f2f ?ºª)
-   (#x6f30 ?â§)
-   (#x6f31 ?º¤)
-   (#x6f32 ?º¦)
-   (#x6f33 ?ºs)
-   (#x6f35 ?â©)
-   (#x6f36 ?â¡)
-   (#x6f37 ?âr)
-   (#x6f38 ?º¥)
-   (#x6f39 ?â±)
-   (#x6f3a ?â´)
-   (#x6f3b ?â{)
-   (#x6f3c ?â¨)
-   (#x6f3e ?ºy)
-   (#x6f3f ?¼ß)
-   (#x6f40 ?â¦)
-   (#x6f41 ?åù)
-   (#x6f43 ?â­)
-   (#x6f4e ?âv)
-   (#x6f4f ?æD)
-   (#x6f50 ?æN)
-   (#x6f51 ?¼â)
-   (#x6f52 ?æM)
-   (#x6f53 ?æY)
-   (#x6f54 ?¼ä)
-   (#x6f55 ?æK)
-   (#x6f57 ?æO)
-   (#x6f58 ?¼ï)
-   (#x6f5a ?æF)
-   (#x6f5b ?¼ç)
-   (#x6f5d ?æR)
-   (#x6f5e ?éð)
-   (#x6f5f ?¼ó)
-   (#x6f60 ?¼ò)
-   (#x6f61 ?æT)
-   (#x6f62 ?æC)
-   (#x6f63 ?æ^)
-   (#x6f64 ?¼í)
-   (#x6f66 ?¼ã)
-   (#x6f67 ?æW)
-   (#x6f69 ?æ[)
-   (#x6f6a ?æ`)
-   (#x6f6b ?æU)
-   (#x6f6c ?æI)
-   (#x6f6d ?¼æ)
-   (#x6f6e ?¼é)
-   (#x6f6f ?¼ñ)
-   (#x6f70 ?¼ì)
-   (#x6f72 ?æL)
-   (#x6f73 ?â¢)
-   (#x6f76 ?æH)
-   (#x6f77 ?æ_)
-   (#x6f78 ?¼è)
-   (#x6f7a ?¼ë)
-   (#x6f7b ?æa)
-   (#x6f7c ?¼à)
-   (#x6f7d ?æV)
-   (#x6f7e ?åû)
-   (#x6f7f ?æ\)
-   (#x6f80 ?Àß)
-   (#x6f82 ?æJ)
-   (#x6f84 ?¼á)
-   (#x6f85 ?æE)
-   (#x6f86 ?¼å)
-   (#x6f87 ?åü)
-   (#x6f88 ?º«)
-   (#x6f89 ?æA)
-   (#x6f8b ?æZ)
-   (#x6f8c ?æB)
-   (#x6f8d ?æ@)
-   (#x6f8e ?¼ê)
-   (#x6f90 ?æX)
-   (#x6f92 ?åþ)
-   (#x6f93 ?æQ)
-   (#x6f94 ?æP)
-   (#x6f95 ?æ])
-   (#x6f96 ?æG)
-   (#x6f97 ?¼î)
-   (#x6f9e ?éó)
-   (#x6fa0 ?¿I)
-   (#x6fa1 ?¾þ)
-   (#x6fa2 ?ê@)
-   (#x6fa3 ?éë)
-   (#x6fa4 ?¿A)
-   (#x6fa5 ?é÷)
-   (#x6fa6 ?¿H)
-   (#x6fa7 ?¿C)
-   (#x6fa8 ?éõ)
-   (#x6fa9 ?íO)
-   (#x6faa ?éû)
-   (#x6fab ?êB)
-   (#x6fac ?éú)
-   (#x6fad ?éé)
-   (#x6fae ?éø)
-   (#x6faf ?êD)
-   (#x6fb0 ?êF)
-   (#x6fb1 ?¾ý)
-   (#x6fb2 ?êE)
-   (#x6fb3 ?¿D)
-   (#x6fb4 ?¿J)
-   (#x6fb6 ?¿G)
-   (#x6fb8 ?éþ)
-   (#x6fb9 ?¿F)
-   (#x6fba ?éù)
-   (#x6fbc ?éí)
-   (#x6fbd ?éò)
-   (#x6fbf ?éý)
-   (#x6fc0 ?¿E)
-   (#x6fc1 ?¿B)
-   (#x6fc2 ?¾ü)
-   (#x6fc3 ?¿@)
-   (#x6fc4 ?éñ)
-   (#x6fc6 ?åý)
-   (#x6fc7 ?éì)
-   (#x6fc8 ?éï)
-   (#x6fc9 ?êA)
-   (#x6fca ?éô)
-   (#x6fcb ?éê)
-   (#x6fcc ?íN)
-   (#x6fcd ?êC)
-   (#x6fce ?éî)
-   (#x6fcf ?éü)
-   (#x6fd4 ?íQ)
-   (#x6fd5 ?Àã)
-   (#x6fd8 ?À×)
-   (#x6fdb ?ÀÛ)
-   (#x6fdc ?íS)
-   (#x6fdd ?íY)
-   (#x6fde ?íW)
-   (#x6fdf ?ÀÙ)
-   (#x6fe0 ?ÀÚ)
-   (#x6fe1 ?Àá)
-   (#x6fe2 ?íZ)
-   (#x6fe3 ?íR)
-   (#x6fe4 ?ÀÜ)
-   (#x6fe6 ?íV)
-   (#x6fe7 ?íU)
-   (#x6fe8 ?í[)
-   (#x6fe9 ?Àâ)
-   (#x6feb ?ÀÃ)
-   (#x6fec ?Àà)
-   (#x6fed ?íT)
-   (#x6fee ?Àä)
-   (#x6fef ?ÀÞ)
-   (#x6ff0 ?Àå)
-   (#x6ff1 ?ÀØ)
-   (#x6ff2 ?íX)
-   (#x6ff4 ?íP)
-   (#x6ff7 ?ï÷)
-   (#x6ffa ?Âq)
-   (#x6ffb ?ïô)
-   (#x6ffc ?ïö)
-   (#x6ffe ?Âo)
-   (#x6fff ?ïò)
-   (#x7000 ?ïó)
-   (#x7001 ?ïî)
-   (#x7004 ?éö)
-   (#x7005 ?ïï)
-   (#x7006 ?Âp)
-   (#x7007 ?ïë)
-   (#x7009 ?Âm)
-   (#x700a ?ïø)
-   (#x700b ?Ân)
-   (#x700c ?ïì)
-   (#x700d ?ïí)
-   (#x700e ?ïñ)
-   (#x700f ?Âs)
-   (#x7011 ?Âr)
-   (#x7014 ?ïð)
-   (#x7015 ?Ãx)
-   (#x7016 ?ò_)
-   (#x7017 ?òe)
-   (#x7018 ?Ãy)
-   (#x7019 ?ò\)
-   (#x701a ?Ãv)
-   (#x701b ?Ãs)
-   (#x701c ?òg)
-   (#x701d ?Ãw)
-   (#x701f ?Ãt)
-   (#x7020 ?ò^)
-   (#x7021 ?òa)
-   (#x7022 ?òb)
-   (#x7023 ?òc)
-   (#x7024 ?òf)
-   (#x7026 ?ïõ)
-   (#x7027 ?ò])
-   (#x7028 ?Ãu)
-   (#x7029 ?òd)
-   (#x702a ?òh)
-   (#x702b ?ò`)
-   (#x702f ?ô])
-   (#x7030 ?Äj)
-   (#x7031 ?ô`)
-   (#x7032 ?Äk)
-   (#x7033 ?ôh)
-   (#x7034 ?ô_)
-   (#x7035 ?ô\)
-   (#x7037 ?ô^)
-   (#x7038 ?ôb)
-   (#x7039 ?ôe)
-   (#x703a ?ôd)
-   (#x703b ?ôg)
-   (#x703c ?ô[)
-   (#x703e ?Äi)
-   (#x703f ?ôc)
-   (#x7040 ?ôf)
-   (#x7041 ?ôi)
-   (#x7042 ?ôa)
-   (#x7043 ?õÓ)
-   (#x7044 ?õÔ)
-   (#x7045 ?õØ)
-   (#x7046 ?õÙ)
-   (#x7048 ?õÖ)
-   (#x7049 ?õ×)
-   (#x704a ?õÕ)
-   (#x704c ?Äé)
-   (#x7051 ?Ã…x)
-   (#x7052 ?öë)
-   (#x7055 ?öè)
-   (#x7056 ?öé)
-   (#x7057 ?öê)
-   (#x7058 ?Ã…y)
-   (#x705a ?֌)
-   (#x705b ?֊)
-   (#x705d ?ø¯)
-   (#x705e ?Åô)
-   (#x705f ?ø­)
-   (#x7060 ?ø°)
-   (#x7061 ?ø®)
-   (#x7062 ?øõ)
-   (#x7063 ?ÆW)
-   (#x7064 ?Æe)
-   (#x7065 ?ù£)
-   (#x7066 ?ùl)
-   (#x7068 ?ù¢)
-   (#x7069 ?ùÃ)
-   (#x706a ?ùÑ)
-   (#x706b ?¤õ)
-   (#x7070 ?¦Ç)
-   (#x7071 ?ÊA)
-   (#x7074 ?Ë^)
-   (#x7076 ?¨_)
-   (#x7078 ?¨b)
-   (#x707a ?Ë_)
-   (#x707c ?¨`)
-   (#x707d ?¨a)
-   (#x7082 ?ÃX)
-   (#x7083 ?ÃZ)
-   (#x7084 ?ÃU)
-   (#x7085 ?ÃR)
-   (#x7086 ?ÃT)
-   (#x708a ?ª¤)
-   (#x708e ?ª¢)
-   (#x7091 ?ÃV)
-   (#x7092 ?ª£)
-   (#x7093 ?ÃS)
-   (#x7094 ?ÃP)
-   (#x7095 ?ª¡)
-   (#x7096 ?ÃW)
-   (#x7098 ?ÃQ)
-   (#x7099 ?ª¥)
-   (#x709a ?ÃY)
-   (#x709f ?ϯ)
-   (#x70a1 ?ϳ)
-   (#x70a4 ?¬·)
-   (#x70a9 ?϶)
-   (#x70ab ?¬¯)
-   (#x70ac ?¬²)
-   (#x70ad ?¬´)
-   (#x70ae ?¦)
-   (#x70af ?¬³)
-   (#x70b0 ?ϲ)
-   (#x70b1 ?ϱ)
-   (#x70b3 ?±)
-   (#x70b4 ?Ï´)
-   (#x70b5 ?ϵ)
-   (#x70b7 ?Ï®)
-   (#x70b8 ?µ)
-   (#x70ba ?¬°)
-   (#x70be ?Ï°)
-   (#x70c5 ?Ã’w)
-   (#x70c6 ?Ã’x)
-   (#x70c7 ?Ã’y)
-   (#x70c8 ?¯P)
-   (#x70ca ?¯L)
-   (#x70cb ?Ã’n)
-   (#x70cd ?Ã’v)
-   (#x70ce ?Ã’{)
-   (#x70cf ?¯Q)
-   (#x70d1 ?Ã’l)
-   (#x70d2 ?Ã’r)
-   (#x70d3 ?Ã’k)
-   (#x70d4 ?Ã’u)
-   (#x70d7 ?Ã’q)
-   (#x70d8 ?¯M)
-   (#x70d9 ?¯O)
-   (#x70da ?Ã’z)
-   (#x70dc ?Ã’j)
-   (#x70dd ?Ã’m)
-   (#x70de ?Ã’s)
-   (#x70e0 ?Ã’t)
-   (#x70e1 ?Ã’|)
-   (#x70e2 ?Ã’p)
-   (#x70e4 ?¯N)
-   (#x70ef ?²m)
-   (#x70f0 ?ÖN)
-   (#x70f3 ?ÖP)
-   (#x70f4 ?ÖL)
-   (#x70f6 ?ÖX)
-   (#x70f7 ?ÖJ)
-   (#x70f8 ?ÖW)
-   (#x70f9 ?²i)
-   (#x70fa ?ÖH)
-   (#x70fb ?Ú[)
-   (#x70fc ?ÖR)
-   (#x70fd ?²l)
-   (#x70ff ?ÖS)
-   (#x7100 ?ÖV)
-   (#x7102 ?ÖZ)
-   (#x7104 ?ÖO)
-   (#x7106 ?ÖT)
-   (#x7109 ?²j)
-   (#x710a ?²k)
-   (#x710b ?ÖY)
-   (#x710c ?ÖM)
-   (#x710d ?ÖI)
-   (#x710e ?Ö[)
-   (#x7110 ?ÖQ)
-   (#x7113 ?ÖU)
-   (#x7117 ?ÖK)
-   (#x7119 ?µH)
-   (#x711a ?µI)
-   (#x711b ?Úe)
-   (#x711c ?µO)
-   (#x711e ?ÚY)
-   (#x711f ?Úb)
-   (#x7120 ?ÚX)
-   (#x7121 ?µL)
-   (#x7122 ?Ú`)
-   (#x7123 ?Ú^)
-   (#x7125 ?Ú_)
-   (#x7126 ?µJ)
-   (#x7128 ?Úc)
-   (#x712e ?Ú\)
-   (#x712f ?ÚZ)
-   (#x7130 ?µK)
-   (#x7131 ?Ú])
-   (#x7132 ?Úa)
-   (#x7136 ?µM)
-   (#x713a ?Úd)
-   (#x7141 ?Þp)
-   (#x7142 ?Þw)
-   (#x7143 ?Þy)
-   (#x7144 ?Þ¡)
-   (#x7146 ?·Ú)
-   (#x7147 ?Þk)
-   (#x7149 ?·Ò)
-   (#x714b ?Þz)
-   (#x714c ?·×)
-   (#x714d ?Þ¢)
-   (#x714e ?·Î)
-   (#x7150 ?Þ})
-   (#x7152 ?Þm)
-   (#x7153 ?Þ~)
-   (#x7154 ?Þl)
-   (#x7156 ?·Ü)
-   (#x7158 ?Þx)
-   (#x7159 ?·Ã)
-   (#x715a ?Þ£)
-   (#x715c ?·Ô)
-   (#x715d ?Þq)
-   (#x715e ?·Ù)
-   (#x715f ?Þ|)
-   (#x7160 ?Þo)
-   (#x7161 ?Þv)
-   (#x7162 ?Þr)
-   (#x7163 ?Þn)
-   (#x7164 ?·Ñ)
-   (#x7165 ?·Ø)
-   (#x7166 ?·Ö)
-   (#x7167 ?·Ó)
-   (#x7168 ?·Û)
-   (#x7169 ?·Ã)
-   (#x716a ?Þu)
-   (#x716c ?·Õ)
-   (#x716e ?µN)
-   (#x7170 ?Þ{)
-   (#x7172 ?Þs)
-   (#x7178 ?Þt)
-   (#x717b ?âÃ)
-   (#x717d ?º´)
-   (#x7180 ?â½)
-   (#x7181 ?âÃ)
-   (#x7182 ?â¿)
-   (#x7184 ?º¶)
-   (#x7185 ?â¾)
-   (#x7186 ?âÂ)
-   (#x7187 ?âº)
-   (#x7189 ?â¼)
-   (#x718a ?ºµ)
-   (#x718f ?âÀ)
-   (#x7190 ?â»)
-   (#x7192 ?º·)
-   (#x7194 ?º²)
-   (#x7197 ?âÄ)
-   (#x7199 ?º³)
-   (#x719a ?æg)
-   (#x719b ?æd)
-   (#x719c ?æp)
-   (#x719d ?æj)
-   (#x719e ?æl)
-   (#x719f ?¼ô)
-   (#x71a0 ?æf)
-   (#x71a1 ?æn)
-   (#x71a4 ?æm)
-   (#x71a5 ?æk)
-   (#x71a7 ?æq)
-   (#x71a8 ?¼÷)
-   (#x71a9 ?æh)
-   (#x71aa ?æo)
-   (#x71ac ?¼õ)
-   (#x71af ?æc)
-   (#x71b0 ?æe)
-   (#x71b1 ?¼ö)
-   (#x71b2 ?æb)
-   (#x71b3 ?ær)
-   (#x71b5 ?æi)
-   (#x71b8 ?êJ)
-   (#x71b9 ?¿Q)
-   (#x71bc ?êU)
-   (#x71bd ?êS)
-   (#x71be ?¿K)
-   (#x71bf ?êI)
-   (#x71c0 ?êL)
-   (#x71c1 ?êM)
-   (#x71c2 ?êH)
-   (#x71c3 ?¿U)
-   (#x71c4 ?¿V)
-   (#x71c5 ?êG)
-   (#x71c6 ?êV)
-   (#x71c7 ?êQ)
-   (#x71c8 ?¿O)
-   (#x71c9 ?¿L)
-   (#x71ca ?êP)
-   (#x71cb ?êN)
-   (#x71ce ?¿R)
-   (#x71cf ?êR)
-   (#x71d0 ?¿M)
-   (#x71d2 ?¿N)
-   (#x71d4 ?êO)
-   (#x71d5 ?¿P)
-   (#x71d6 ?êK)
-   (#x71d8 ?êT)
-   (#x71d9 ?¿S)
-   (#x71da ?êW)
-   (#x71db ?êX)
-   (#x71dc ?¿T)
-   (#x71df ?Àç)
-   (#x71e0 ?Àî)
-   (#x71e1 ?í\)
-   (#x71e2 ?íb)
-   (#x71e4 ?í`)
-   (#x71e5 ?Àê)
-   (#x71e6 ?Àé)
-   (#x71e7 ?Àæ)
-   (#x71e8 ?í^)
-   (#x71ec ?Àì)
-   (#x71ed ?Àë)
-   (#x71ee ?Àè)
-   (#x71f0 ?ía)
-   (#x71f1 ?í])
-   (#x71f2 ?í_)
-   (#x71f4 ?Àí)
-   (#x71f8 ?Âw)
-   (#x71f9 ?ïû)
-   (#x71fb ?Ât)
-   (#x71fc ?Âu)
-   (#x71fd ?ïý)
-   (#x71fe ?Âv)
-   (#x71ff ?ïú)
-   (#x7201 ?ïù)
-   (#x7202 ?òl)
-   (#x7203 ?ïü)
-   (#x7205 ?òm)
-   (#x7206 ?Ãz)
-   (#x7207 ?òk)
-   (#x720a ?òj)
-   (#x720c ?òi)
-   (#x720d ?Ã{)
-   (#x7210 ?Äl)
-   (#x7213 ?ôj)
-   (#x7214 ?ôk)
-   (#x7219 ?õÜ)
-   (#x721a ?õÛ)
-   (#x721b ?Äê)
-   (#x721d ?õÚ)
-   (#x721e ?öì)
-   (#x721f ?öí)
-   (#x7222 ?־)
-   (#x7223 ?ø±)
-   (#x7226 ?øö)
-   (#x7227 ?ù¼)
-   (#x7228 ?Æy)
-   (#x7229 ?ùÆ)
-   (#x722a ?¤ö)
-   (#x722c ?ª¦)
-   (#x722d ?ª§)
-   (#x7230 ?¬¸)
-   (#x7235 ?Àï)
-   (#x7236 ?¤÷)
-   (#x7238 ?ª¨)
-   (#x7239 ?¯R)
-   (#x723a ?·Ã)
-   (#x723b ?¤ø)
-   (#x723d ?²n)
-   (#x723e ?º¸)
-   (#x723f ?Éb)
-   (#x7241 ?Ï·)
-   (#x7242 ?Ã’})
-   (#x7244 ?âÅ)
-   (#x7246 ?Àð)
-   (#x7247 ?¤ù)
-   (#x7248 ?ª©)
-   (#x7249 ?ϸ)
-   (#x724a ?Ϲ)
-   (#x724b ?Úf)
-   (#x724c ?µP)
-   (#x724f ?Þ¤)
-   (#x7252 ?·Þ)
-   (#x7253 ?âÆ)
-   (#x7256 ?¼ø)
-   (#x7258 ?Ã|)
-   (#x7259 ?¤ú)
-   (#x725a ?Úg)
-   (#x725b ?¤û)
-   (#x725d ?¦É)
-   (#x725e ?ÊB)
-   (#x725f ?¦È)
-   (#x7260 ?¨e)
-   (#x7261 ?¨d)
-   (#x7262 ?¨c)
-   (#x7263 ?Ë`)
-   (#x7267 ?ªª)
-   (#x7269 ?ª«)
-   (#x726a ?Ã[)
-   (#x726c ?Ϻ)
-   (#x726e ?Ͻ)
-   (#x726f ?¼)
-   (#x7270 ?Ï»)
-   (#x7272 ?¬¹)
-   (#x7273 ?ϼ)
-   (#x7274 ?¬»)
-   (#x7276 ?Ò¢)
-   (#x7277 ?Ò¡)
-   (#x7278 ?Ã’~)
-   (#x7279 ?¯S)
-   (#x727b ?Ö])
-   (#x727c ?Ö^)
-   (#x727d ?²o)
-   (#x727e ?Ö\)
-   (#x727f ?Ö_)
-   (#x7280 ?µR)
-   (#x7281 ?²p)
-   (#x7284 ?µQ)
-   (#x7285 ?Úk)
-   (#x7286 ?Új)
-   (#x7288 ?Úh)
-   (#x7289 ?Úi)
-   (#x728b ?Úl)
-   (#x728c ?Þ¦)
-   (#x728d ?Þ¥)
-   (#x728e ?Þ©)
-   (#x7290 ?Þ¨)
-   (#x7291 ?Þ§)
-   (#x7292 ?º¹)
-   (#x7293 ?âÉ)
-   (#x7295 ?âÈ)
-   (#x7296 ?ºº)
-   (#x7297 ?âÇ)
-   (#x7298 ?æs)
-   (#x729a ?æt)
-   (#x729b ?¼ù)
-   (#x729d ?êY)
-   (#x729e ?êZ)
-   (#x72a1 ?òr)
-   (#x72a2 ?Ã})
-   (#x72a3 ?òq)
-   (#x72a4 ?òp)
-   (#x72a5 ?òn)
-   (#x72a6 ?òo)
-   (#x72a7 ?Äë)
-   (#x72a8 ?ôl)
-   (#x72a9 ?öî)
-   (#x72aa ?ø÷)
-   (#x72ac ?¤ü)
-   (#x72ae ?É¥)
-   (#x72af ?¥Ç)
-   (#x72b0 ?ɦ)
-   (#x72b4 ?ÊC)
-   (#x72b5 ?ÊD)
-   (#x72ba ?Ëf)
-   (#x72bd ?Ëb)
-   (#x72bf ?Ëa)
-   (#x72c0 ?ª¬)
-   (#x72c1 ?Ëe)
-   (#x72c2 ?¨g)
-   (#x72c3 ?Ëc)
-   (#x72c4 ?¨f)
-   (#x72c5 ?Ëg)
-   (#x72c6 ?Ëd)
-   (#x72c9 ?Ã_)
-   (#x72ca ?Ͼ)
-   (#x72cb ?Ã])
-   (#x72cc ?Ãd)
-   (#x72ce ?ª­)
-   (#x72d0 ?ª°)
-   (#x72d1 ?Ãe)
-   (#x72d2 ?Ãa)
-   (#x72d4 ?Ãb)
-   (#x72d6 ?Ã\)
-   (#x72d7 ?ª¯)
-   (#x72d8 ?Ã^)
-   (#x72d9 ?ª®)
-   (#x72da ?Ãc)
-   (#x72dc ?Ã`)
-   (#x72df ?ÃÂ)
-   (#x72e0 ?¬½)
-   (#x72e1 ?¬¾)
-   (#x72e3 ?ÃÃ…)
-   (#x72e4 ?Ï¿)
-   (#x72e6 ?ÃÄ)
-   (#x72e8 ?ÃÀ)
-   (#x72e9 ?¬¼)
-   (#x72ea ?ÃÃ)
-   (#x72eb ?ÃÃ)
-   (#x72f3 ?Ò¨)
-   (#x72f4 ?Ò¥)
-   (#x72f6 ?Ò§)
-   (#x72f7 ?¯X)
-   (#x72f8 ?¯W)
-   (#x72f9 ?¯U)
-   (#x72fa ?Ò¤)
-   (#x72fb ?Ò©)
-   (#x72fc ?¯T)
-   (#x72fd ?¯V)
-   (#x72fe ?Ò¦)
-   (#x72ff ?Ög)
-   (#x7300 ?Ò£)
-   (#x7301 ?Òª)
-   (#x7307 ?Öb)
-   (#x7308 ?Öf)
-   (#x730a ?Öe)
-   (#x730b ?Ún)
-   (#x730c ?Úy)
-   (#x730f ?Öh)
-   (#x7311 ?Öc)
-   (#x7312 ?Úm)
-   (#x7313 ?²t)
-   (#x7316 ?²s)
-   (#x7317 ?Öa)
-   (#x7318 ?Öd)
-   (#x7319 ?²u)
-   (#x731b ?²r)
-   (#x731c ?²q)
-   (#x731d ?Ö`)
-   (#x731e ?Öi)
-   (#x7322 ?Úp)
-   (#x7323 ?Úw)
-   (#x7325 ?µT)
-   (#x7326 ?Úv)
-   (#x7327 ?Ús)
-   (#x7329 ?µV)
-   (#x732d ?Úu)
-   (#x7330 ?Úo)
-   (#x7331 ?Úq)
-   (#x7332 ?Út)
-   (#x7333 ?Úr)
-   (#x7334 ?µU)
-   (#x7335 ?Úx)
-   (#x7336 ?µS)
-   (#x7337 ?·ß)
-   (#x733a ?Þ­)
-   (#x733b ?Þ¬)
-   (#x733c ?Þª)
-   (#x733e ?·â)
-   (#x733f ?·á)
-   (#x7340 ?Þ®)
-   (#x7342 ?Þ«)
-   (#x7343 ?âÊ)
-   (#x7344 ?º»)
-   (#x7345 ?·à)
-   (#x7349 ?Þ°)
-   (#x734a ?Þ¯)
-   (#x734c ?âÃ)
-   (#x734d ?âË)
-   (#x734e ?¼ú)
-   (#x7350 ?º¼)
-   (#x7351 ?âÌ)
-   (#x7352 ?æv)
-   (#x7357 ?¼û)
-   (#x7358 ?æu)
-   (#x7359 ?æ~)
-   (#x735a ?æ})
-   (#x735b ?æ{)
-   (#x735d ?æz)
-   (#x735e ?æw)
-   (#x735f ?æx)
-   (#x7360 ?æy)
-   (#x7361 ?æ|)
-   (#x7362 ?æ¡)
-   (#x7365 ?ê_)
-   (#x7366 ?ê\)
-   (#x7367 ?ê])
-   (#x7368 ?¿W)
-   (#x7369 ?ê[)
-   (#x736a ?êa)
-   (#x736b ?ê`)
-   (#x736c ?ê^)
-   (#x736e ?íd)
-   (#x736f ?íe)
-   (#x7370 ?Àñ)
-   (#x7372 ?Àò)
-   (#x7373 ?íc)
-   (#x7375 ?Ây)
-   (#x7376 ?ïþ)
-   (#x7377 ?Âx)
-   (#x7378 ?Ã~)
-   (#x737a ?á)
-   (#x737b ?Äm)
-   (#x737c ?ôn)
-   (#x737d ?ôm)
-   (#x737e ?õÃ)
-   (#x737f ?öï)
-   (#x7380 ?Ã…z)
-   (#x7381 ?֏)
-   (#x7382 ?֍)
-   (#x7383 ?֎)
-   (#x7384 ?¥È)
-   (#x7385 ?ÃÆ)
-   (#x7386 ?¯Y)
-   (#x7387 ?²v)
-   (#x7388 ?Öj)
-   (#x7389 ?¥É)
-   (#x738a ?ɧ)
-   (#x738b ?¤ý)
-   (#x738e ?ÊE)
-   (#x7392 ?Ël)
-   (#x7393 ?Ëj)
-   (#x7394 ?Ëk)
-   (#x7395 ?Ëh)
-   (#x7396 ?¨h)
-   (#x7397 ?Ëi)
-   (#x739d ?Ãm)
-   (#x739f ?ª³)
-   (#x73a0 ?Ãk)
-   (#x73a1 ?Ãg)
-   (#x73a2 ?Ãj)
-   (#x73a4 ?Ãf)
-   (#x73a5 ?ªµ)
-   (#x73a6 ?Ãi)
-   (#x73a8 ?ª²)
-   (#x73a9 ?ª±)
-   (#x73ab ?ª´)
-   (#x73ac ?Ãl)
-   (#x73ad ?Ãh)
-   (#x73b2 ?¬Â)
-   (#x73b3 ?)
-   (#x73b4 ?ÃÃŽ)
-   (#x73b5 ?ÃÃ)
-   (#x73b6 ?ÃÃŒ)
-   (#x73b7 ?¬¿)
-   (#x73b8 ?ÃÕ)
-   (#x73b9 ?ÃË)
-   (#x73bb ?¬Ã)
-   (#x73bc ?Ò¯)
-   (#x73be ?ÃÃ’)
-   (#x73bf ?ÃÃ)
-   (#x73c0 ?€)
-   (#x73c2 ?ÃÈ)
-   (#x73c3 ?ÃÓ)
-   (#x73c5 ?ÃÊ)
-   (#x73c6 ?ÃÔ)
-   (#x73c7 ?ÃÑ)
-   (#x73c8 ?ÃÉ)
-   (#x73ca ?¬À)
-   (#x73cb ?ÃÖ)
-   (#x73cc ?ÃÇ)
-   (#x73cd ?¬Ã)
-   (#x73d2 ?Ò´)
-   (#x73d3 ?Ò«)
-   (#x73d4 ?Ò¶)
-   (#x73d6 ?Ò®)
-   (#x73d7 ?Ò¹)
-   (#x73d8 ?Òº)
-   (#x73d9 ?Ò¬)
-   (#x73da ?Ò¸)
-   (#x73db ?Òµ)
-   (#x73dc ?Ò³)
-   (#x73dd ?Ò·)
-   (#x73de ?¯_)
-   (#x73e0 ?¯])
-   (#x73e3 ?Ò±)
-   (#x73e5 ?Ò­)
-   (#x73e7 ?Ò°)
-   (#x73e8 ?Ò»)
-   (#x73e9 ?Ò²)
-   (#x73ea ?¯^)
-   (#x73eb ?ÃÃ)
-   (#x73ed ?¯Z)
-   (#x73ee ?¯\)
-   (#x73f4 ?Öx)
-   (#x73f5 ?Öm)
-   (#x73f6 ?Ök)
-   (#x73f8 ?Öl)
-   (#x73fa ?Ös)
-   (#x73fc ?Öt)
-   (#x73fd ?Öp)
-   (#x73fe ?²{)
-   (#x73ff ?Öu)
-   (#x7400 ?Ör)
-   (#x7401 ?Öo)
-   (#x7403 ?²y)
-   (#x7404 ?Ön)
-   (#x7405 ?²w)
-   (#x7406 ?²z)
-   (#x7407 ?Öq)
-   (#x7408 ?Öy)
-   (#x7409 ?¯[)
-   (#x740a ?²x)
-   (#x740b ?Öw)
-   (#x740c ?Öv)
-   (#x740d ?²|)
-   (#x7416 ?Ú~)
-   (#x741a ?Ú¡)
-   (#x741b ?µ`)
-   (#x741d ?Ú§)
-   (#x7420 ?Ú©)
-   (#x7421 ?Ú¢)
-   (#x7422 ?µZ)
-   (#x7423 ?Ú¦)
-   (#x7424 ?Ú¥)
-   (#x7425 ?µ[)
-   (#x7426 ?µa)
-   (#x7428 ?µb)
-   (#x7429 ?Ú¨)
-   (#x742a ?µX)
-   (#x742b ?Ú})
-   (#x742c ?Ú{)
-   (#x742d ?Ú£)
-   (#x742e ?Úz)
-   (#x742f ?µ_)
-   (#x7430 ?Ú|)
-   (#x7431 ?Ú¤)
-   (#x7432 ?Úª)
-   (#x7433 ?µY)
-   (#x7434 ?µ^)
-   (#x7435 ?µ\)
-   (#x7436 ?µ])
-   (#x743a ?µW)
-   (#x743f ?·é)
-   (#x7440 ?Þ·)
-   (#x7441 ?·è)
-   (#x7442 ?Þ»)
-   (#x7444 ?Þ±)
-   (#x7446 ?Þ¼)
-   (#x744a ?Þ²)
-   (#x744b ?Þ³)
-   (#x744d ?Þ½)
-   (#x744e ?Þº)
-   (#x744f ?Þ¸)
-   (#x7450 ?Þ¹)
-   (#x7451 ?Þµ)
-   (#x7452 ?Þ´)
-   (#x7454 ?Þ¾)
-   (#x7455 ?·å)
-   (#x7457 ?Þ¶)
-   (#x7459 ?·ê)
-   (#x745a ?·ä)
-   (#x745b ?·ë)
-   (#x745c ?·ì)
-   (#x745e ?·ç)
-   (#x745f ?·æ)
-   (#x7462 ?âÎ)
-   (#x7463 ?º¾)
-   (#x7464 ?º½)
-   (#x7467 ?âÓ)
-   (#x7469 ?¼ü)
-   (#x746a ?º¿)
-   (#x746d ?ºÃ)
-   (#x746e ?âÔ)
-   (#x746f ?·ã)
-   (#x7470 ?ºÀ)
-   (#x7471 ?âÃ)
-   (#x7472 ?âÒ)
-   (#x7473 ?âÃ)
-   (#x7475 ?âÑ)
-   (#x7479 ?æ«)
-   (#x747c ?æª)
-   (#x747d ?æ§)
-   (#x747e ?½@)
-   (#x747f ?êb)
-   (#x7480 ?½A)
-   (#x7481 ?æ¦)
-   (#x7483 ?¼þ)
-   (#x7485 ?æ¨)
-   (#x7486 ?æ¥)
-   (#x7487 ?æ¢)
-   (#x7488 ?æ©)
-   (#x7489 ?æ£)
-   (#x748a ?æ¤)
-   (#x748b ?¼ý)
-   (#x7490 ?íi)
-   (#x7492 ?êf)
-   (#x7494 ?êe)
-   (#x7495 ?êg)
-   (#x7497 ?íf)
-   (#x7498 ?¿Z)
-   (#x749a ?êc)
-   (#x749c ?¿X)
-   (#x749e ?¿\)
-   (#x749f ?¿[)
-   (#x74a0 ?êd)
-   (#x74a1 ?êh)
-   (#x74a3 ?¿Y)
-   (#x74a5 ?ím)
-   (#x74a6 ?Àõ)
-   (#x74a7 ?Âz)
-   (#x74a8 ?Àö)
-   (#x74a9 ?Àó)
-   (#x74aa ?íj)
-   (#x74ab ?íh)
-   (#x74ad ?ík)
-   (#x74af ?ín)
-   (#x74b0 ?Àô)
-   (#x74b1 ?íl)
-   (#x74b2 ?íg)
-   (#x74b5 ?ðB)
-   (#x74b6 ?ðE)
-   (#x74b7 ?òu)
-   (#x74b8 ?ð@)
-   (#x74ba ?ôo)
-   (#x74bb ?ðF)
-   (#x74bd ?â)
-   (#x74be ?ðD)
-   (#x74bf ?Â{)
-   (#x74c0 ?ðA)
-   (#x74c1 ?ðC)
-   (#x74c2 ?ðG)
-   (#x74c3 ?òv)
-   (#x74c5 ?òt)
-   (#x74ca ?ã)
-   (#x74cb ?òs)
-   (#x74cf ?Än)
-   (#x74d4 ?Äí)
-   (#x74d5 ?öñ)
-   (#x74d6 ?Äì)
-   (#x74d7 ?öó)
-   (#x74d8 ?öð)
-   (#x74d9 ?öò)
-   (#x74da ?Ã…Ã)
-   (#x74db ?ø²)
-   (#x74dc ?¥Ê)
-   (#x74dd ?Ãn)
-   (#x74de ?Ò¼)
-   (#x74df ?Ò½)
-   (#x74e0 ?²})
-   (#x74e1 ?Þ¿)
-   (#x74e2 ?¿])
-   (#x74e3 ?ä)
-   (#x74e4 ?Ã…{)
-   (#x74e5 ?ø³)
-   (#x74e6 ?¥Ë)
-   (#x74e8 ?Ão)
-   (#x74e9 ?¢`)
-   (#x74ec ?Ã×)
-   (#x74ee ?ÃØ)
-   (#x74f4 ?Ò¾)
-   (#x74f5 ?Ò¿)
-   (#x74f6 ?²~)
-   (#x74f7 ?²¡)
-   (#x74fb ?Ú«)
-   (#x74fd ?ÞÂ)
-   (#x74fe ?ÞÃ)
-   (#x74ff ?ÞÀ)
-   (#x7500 ?âÕ)
-   (#x7502 ?âÖ)
-   (#x7503 ?â×)
-   (#x7504 ?ºÂ)
-   (#x7507 ?æ­)
-   (#x7508 ?æ¬)
-   (#x750b ?êi)
-   (#x750c ?¿^)
-   (#x750d ?¿_)
-   (#x750f ?ír)
-   (#x7510 ?ío)
-   (#x7511 ?íp)
-   (#x7512 ?íq)
-   (#x7513 ?ðI)
-   (#x7514 ?ðH)
-   (#x7515 ?Â|)
-   (#x7516 ?òw)
-   (#x7517 ?õÞ)
-   (#x7518 ?¥Ì)
-   (#x751a ?®)
-   (#x751c ?²¢)
-   (#x751d ?ÞÃ)
-   (#x751f ?Â¥Ã)
-   (#x7521 ?ÒÀ)
-   (#x7522 ?²£)
-   (#x7525 ?µc)
-   (#x7526 ?µd)
-   (#x7528 ?¥Î)
-   (#x7529 ?Â¥Ã)
-   (#x752a ?ÊF)
-   (#x752b ?¨j)
-   (#x752c ?¨i)
-   (#x752d ?‚)
-   (#x752e ?ÃÙ)
-   (#x752f ?Ú¬)
-   (#x7530 ?Â¥Ã)
-   (#x7531 ?¥Ñ)
-   (#x7532 ?¥Ò)
-   (#x7533 ?¥Ó)
-   (#x7537 ?¨k)
-   (#x7538 ?¨l)
-   (#x7539 ?Ën)
-   (#x753a ?Ëm)
-   (#x753d ?ª¶)
-   (#x753e ?Ãr)
-   (#x753f ?Ãp)
-   (#x7540 ?Ãq)
-   (#x7547 ?ÃÚ)
-   (#x7548 ?ÃÛ)
-   (#x754b ?¬Ë)
-   (#x754c ?ƒ)
-   (#x754e ?¬Ê)
-   (#x754f ?¬È)
-   (#x7554 ?¯`)
-   (#x7559 ?¯d)
-   (#x755a ?¯c)
-   (#x755b ?Ã’Ã)
-   (#x755c ?¯b)
-   (#x755d ?¯a)
-   (#x755f ?ÒÂ)
-   (#x7562 ?²¦)
-   (#x7563 ?Ö{)
-   (#x7564 ?Öz)
-   (#x7565 ?²¤)
-   (#x7566 ?²¥)
-   (#x756a ?µf)
-   (#x756b ?µe)
-   (#x756c ?Ú®)
-   (#x756f ?Ú­)
-   (#x7570 ?²§)
-   (#x7576 ?·í)
-   (#x7577 ?ÞÅ)
-   (#x7578 ?·î)
-   (#x7579 ?ÞÄ)
-   (#x757d ?âØ)
-   (#x757e ?æ®)
-   (#x757f ?½B)
-   (#x7580 ?êj)
-   (#x7584 ?ís)
-   (#x7586 ?æ)
-   (#x7587 ?Ã¥)
-   (#x758a ?Ã…|)
-   (#x758b ?¥Ô)
-   (#x758c ?Ãs)
-   (#x758f ?²¨)
-   (#x7590 ?âÙ)
-   (#x7591 ?ºÃ)
-   (#x7594 ?Ëo)
-   (#x7595 ?Ëp)
-   (#x7598 ?Ãt)
-   (#x7599 ?ª¸)
-   (#x759a ?ª¹)
-   (#x759d ?ª·)
-   (#x75a2 ?¬Ã)
-   (#x75a3 ?¬Ã)
-   (#x75a4 ?¬Ã)
-   (#x75a5 ?¬Î)
-   (#x75a7 ?ÃÃœ)
-   (#x75aa ?ÃÃ)
-   (#x75ab ?¬Ì)
-   (#x75b0 ?ÒÃ)
-   (#x75b2 ?¯h)
-   (#x75b3 ?¯i)
-   (#x75b5 ?²«)
-   (#x75b6 ?ÒÉ)
-   (#x75b8 ?¯n)
-   (#x75b9 ?¯l)
-   (#x75ba ?ÒÊ)
-   (#x75bb ?Ã’Ã…)
-   (#x75bc ?¯k)
-   (#x75bd ?¯j)
-   (#x75be ?¯e)
-   (#x75bf ?ÒÈ)
-   (#x75c0 ?ÒÇ)
-   (#x75c1 ?ÒÄ)
-   (#x75c2 ?¯m)
-   (#x75c4 ?ÒÆ)
-   (#x75c5 ?¯f)
-   (#x75c7 ?¯g)
-   (#x75ca ?²¬)
-   (#x75cb ?Ö¡)
-   (#x75cc ?Ö¢)
-   (#x75cd ?²­)
-   (#x75ce ?Ö|)
-   (#x75cf ?Ö~)
-   (#x75d0 ?Ö¤)
-   (#x75d1 ?Ö£)
-   (#x75d2 ?Ö})
-   (#x75d4 ?²©)
-   (#x75d5 ?²ª)
-   (#x75d7 ?Ú¶)
-   (#x75d8 ?µk)
-   (#x75d9 ?µj)
-   (#x75da ?Ú°)
-   (#x75db ?µh)
-   (#x75dd ?Ú³)
-   (#x75de ?µl)
-   (#x75df ?Ú´)
-   (#x75e0 ?µm)
-   (#x75e1 ?Ú±)
-   (#x75e2 ?µg)
-   (#x75e3 ?µi)
-   (#x75e4 ?Úµ)
-   (#x75e6 ?Ú²)
-   (#x75e7 ?Ú¯)
-   (#x75ed ?ÞÒ)
-   (#x75ef ?ÞÇ)
-   (#x75f0 ?·ð)
-   (#x75f1 ?·ó)
-   (#x75f2 ?·ò)
-   (#x75f3 ?·÷)
-   (#x75f4 ?·ö)
-   (#x75f5 ?ÞÓ)
-   (#x75f6 ?ÞÑ)
-   (#x75f7 ?ÞÊ)
-   (#x75f8 ?ÞÎ)
-   (#x75f9 ?ÞÃ)
-   (#x75fa ?·ô)
-   (#x75fb ?ÞÃ)
-   (#x75fc ?ÞÌ)
-   (#x75fd ?ÞÔ)
-   (#x75fe ?ÞË)
-   (#x75ff ?·õ)
-   (#x7600 ?·ï)
-   (#x7601 ?·ñ)
-   (#x7603 ?ÞÉ)
-   (#x7608 ?âÛ)
-   (#x7609 ?ºÇ)
-   (#x760a ?âß)
-   (#x760b ?ºÆ)
-   (#x760c ?âÜ)
-   (#x760d ?ºÅ)
-   (#x760f ?ÞÈ)
-   (#x7610 ?ÞÃ)
-   (#x7611 ?âÞ)
-   (#x7613 ?ºÈ)
-   (#x7614 ?âà)
-   (#x7615 ?âÃ)
-   (#x7616 ?âÚ)
-   (#x7619 ?æ±)
-   (#x761a ?æµ)
-   (#x761b ?æ·)
-   (#x761c ?æ³)
-   (#x761d ?æ²)
-   (#x761e ?æ°)
-   (#x761f ?½E)
-   (#x7620 ?½C)
-   (#x7621 ?½H)
-   (#x7622 ?½I)
-   (#x7623 ?æ´)
-   (#x7624 ?½F)
-   (#x7625 ?æ¯)
-   (#x7626 ?½G)
-   (#x7627 ?ºÄ)
-   (#x7628 ?æ¶)
-   (#x7629 ?½D)
-   (#x762d ?êl)
-   (#x762f ?êk)
-   (#x7630 ?ês)
-   (#x7631 ?êm)
-   (#x7632 ?êr)
-   (#x7633 ?êo)
-   (#x7634 ?¿`)
-   (#x7635 ?êq)
-   (#x7638 ?¿a)
-   (#x763a ?¿b)
-   (#x763c ?êp)
-   (#x763d ?ên)
-   (#x7642 ?Àø)
-   (#x7643 ?ít)
-   (#x7646 ?À÷)
-   (#x7647 ?íw)
-   (#x7648 ?íu)
-   (#x7649 ?ív)
-   (#x764c ?Àù)
-   (#x7650 ?ðM)
-   (#x7652 ?¡)
-   (#x7653 ?ðN)
-   (#x7656 ?Â})
-   (#x7657 ?ðO)
-   (#x7658 ?Â~)
-   (#x7659 ?ðL)
-   (#x765a ?ðP)
-   (#x765c ?ðJ)
-   (#x765f ?ç)
-   (#x7660 ?òx)
-   (#x7661 ?è)
-   (#x7662 ?Äo)
-   (#x7664 ?ðK)
-   (#x7665 ?Äp)
-   (#x7669 ?Äî)
-   (#x766a ?õß)
-   (#x766c ?Ã…~)
-   (#x766d ?öô)
-   (#x766e ?Ã…})
-   (#x7670 ?֐)
-   (#x7671 ?Åõ)
-   (#x7672 ?Åö)
-   (#x7675 ?ùÌ)
-   (#x7678 ?„)
-   (#x7679 ?ÃÞ)
-   (#x767b ?µn)
-   (#x767c ?µo)
-   (#x767d ?¥Õ)
-   (#x767e ?¦Ê)
-   (#x767f ?ÊG)
-   (#x7681 ?Ëq)
-   (#x7682 ?¨m)
-   (#x7684 ?ªº)
-   (#x7686 ?¬Ò)
-   (#x7687 ?¬Ó)
-   (#x7688 ?¬Ô)
-   (#x7689 ?Ö¦)
-   (#x768a ?ÒË)
-   (#x768b ?¯o)
-   (#x768e ?²®)
-   (#x768f ?Ö¥)
-   (#x7692 ?Ú¸)
-   (#x7693 ?µq)
-   (#x7695 ?Ú·)
-   (#x7696 ?µp)
-   (#x7699 ?ÞÕ)
-   (#x769a ?½J)
-   (#x769b ?æ»)
-   (#x769c ?æ¸)
-   (#x769d ?æ¹)
-   (#x769e ?æº)
-   (#x76a4 ?íx)
-   (#x76a6 ?ðQ)
-   (#x76aa ?ôq)
-   (#x76ab ?ôp)
-   (#x76ad ?öõ)
-   (#x76ae ?¥Ö)
-   (#x76af ?Ãu)
-   (#x76b0 ?¯p)
-   (#x76b4 ?µr)
-   (#x76b5 ?ÞÖ)
-   (#x76b8 ?âá)
-   (#x76ba ?½K)
-   (#x76bb ?êt)
-   (#x76bd ?ðR)
-   (#x76be ?ôr)
-   (#x76bf ?¥×)
-   (#x76c2 ?ª»)
-   (#x76c3 ?¬×)
-   (#x76c4 ?Ãß)
-   (#x76c5 ?¯)
-   (#x76c6 ?¬Ö)
-   (#x76c8 ?¬Õ)
-   (#x76c9 ?Ã’ÃŒ)
-   (#x76ca ?¯q)
-   (#x76cd ?¯r)
-   (#x76ce ?¯s)
-   (#x76d2 ?²°)
-   (#x76d3 ?Ö§)
-   (#x76d4 ?²¯)
-   (#x76da ?Ú¹)
-   (#x76db ?²±)
-   (#x76dc ?µs)
-   (#x76dd ?Þ×)
-   (#x76de ?·ø)
-   (#x76df ?·ù)
-   (#x76e1 ?ºÉ)
-   (#x76e3 ?ºÊ)
-   (#x76e4 ?½L)
-   (#x76e5 ?¿d)
-   (#x76e6 ?êu)
-   (#x76e7 ?¿c)
-   (#x76e9 ?íy)
-   (#x76ea ?Àú)
-   (#x76ec ?ðS)
-   (#x76ed ?ôs)
-   (#x76ee ?¥Ø)
-   (#x76ef ?¨n)
-   (#x76f0 ?Ãx)
-   (#x76f1 ?Ãw)
-   (#x76f2 ?ª¼)
-   (#x76f3 ?Ãv)
-   (#x76f4 ?ª½)
-   (#x76f5 ?Ãy)
-   (#x76f7 ?ÃÃ¥)
-   (#x76f8 ?¬Û)
-   (#x76f9 ?¬Ú)
-   (#x76fa ?Ãç)
-   (#x76fb ?Ãæ)
-   (#x76fc ?§)
-   (#x76fe ?¬Þ)
-   (#x7701 ?¬Ù)
-   (#x7703 ?Ãá)
-   (#x7704 ?Ãâ)
-   (#x7705 ?Ãã)
-   (#x7707 ?ˆ)
-   (#x7708 ?Ãà)
-   (#x7709 ?†)
-   (#x770a ?Ãä)
-   (#x770b ?¬Ã)
-   (#x7710 ?Ã’Ã)
-   (#x7711 ?ÒÓ)
-   (#x7712 ?ÒÑ)
-   (#x7713 ?Ã’Ã)
-   (#x7715 ?ÒÔ)
-   (#x7719 ?ÒÕ)
-   (#x771a ?ÒÖ)
-   (#x771b ?Ã’ÃŽ)
-   (#x771d ?Ã’Ã)
-   (#x771f ?¯u)
-   (#x7720 ?¯v)
-   (#x7722 ?Ò×)
-   (#x7723 ?Ã’Ã’)
-   (#x7725 ?Ö°)
-   (#x7727 ?ÒØ)
-   (#x7728 ?¯w)
-   (#x7729 ?¯t)
-   (#x772d ?Öª)
-   (#x772f ?Ö©)
-   (#x7731 ?Ö«)
-   (#x7732 ?Ö¬)
-   (#x7733 ?Ö®)
-   (#x7734 ?Ö­)
-   (#x7735 ?Ö²)
-   (#x7736 ?²µ)
-   (#x7737 ?²²)
-   (#x7738 ?²¶)
-   (#x7739 ?Ö¨)
-   (#x773a ?²·)
-   (#x773b ?Ö±)
-   (#x773c ?²´)
-   (#x773d ?Ö¯)
-   (#x773e ?²³)
-   (#x7744 ?Ú¼)
-   (#x7745 ?Ú¾)
-   (#x7746 ?Úº)
-   (#x7747 ?Ú»)
-   (#x774a ?Ú¿)
-   (#x774b ?ÚÃ)
-   (#x774c ?ÚÂ)
-   (#x774d ?Ú½)
-   (#x774e ?ÚÀ)
-   (#x774f ?µt)
-   (#x7752 ?ÞÛ)
-   (#x7754 ?Þà)
-   (#x7755 ?ÞØ)
-   (#x7756 ?ÞÜ)
-   (#x7759 ?Þá)
-   (#x775a ?ÞÃ)
-   (#x775b ?·ú)
-   (#x775c ?¸C)
-   (#x775e ?·ý)
-   (#x775f ?ÞÙ)
-   (#x7760 ?ÞÚ)
-   (#x7761 ?ºÎ)
-   (#x7762 ?¸F)
-   (#x7763 ?·þ)
-   (#x7765 ?¸D)
-   (#x7766 ?·ü)
-   (#x7767 ?Þß)
-   (#x7768 ?¸E)
-   (#x7769 ?ÞÞ)
-   (#x776a ?¸A)
-   (#x776b ?·û)
-   (#x776c ?¸B)
-   (#x776d ?Þâ)
-   (#x776e ?âæ)
-   (#x776f ?âè)
-   (#x7779 ?¸@)
-   (#x777c ?âã)
-   (#x777d ?ºÌ)
-   (#x777e ?âé)
-   (#x777f ?ºÃ)
-   (#x7780 ?âç)
-   (#x7781 ?ââ)
-   (#x7782 ?âå)
-   (#x7783 ?âê)
-   (#x7784 ?ºË)
-   (#x7785 ?âä)
-   (#x7787 ?½N)
-   (#x7788 ?æ¿)
-   (#x7789 ?æ¾)
-   (#x778b ?½Q)
-   (#x778c ?½O)
-   (#x778d ?æ¼)
-   (#x778e ?½M)
-   (#x778f ?æ½)
-   (#x7791 ?½P)
-   (#x7795 ?ê})
-   (#x7797 ?ê¡)
-   (#x7799 ?ê~)
-   (#x779a ?êv)
-   (#x779b ?êz)
-   (#x779c ?êy)
-   (#x779d ?êw)
-   (#x779e ?¿f)
-   (#x779f ?¿g)
-   (#x77a0 ?¿e)
-   (#x77a1 ?êx)
-   (#x77a2 ?ê{)
-   (#x77a3 ?ê|)
-   (#x77a5 ?¿h)
-   (#x77a7 ?Ã@)
-   (#x77a8 ?í£)
-   (#x77aa ?Àü)
-   (#x77ab ?í{)
-   (#x77ac ?Àþ)
-   (#x77ad ?ÃA)
-   (#x77b0 ?Àý)
-   (#x77b1 ?í¢)
-   (#x77b2 ?í|)
-   (#x77b3 ?Àû)
-   (#x77b4 ?í¡)
-   (#x77b5 ?íz)
-   (#x77b6 ?í~)
-   (#x77b7 ?í})
-   (#x77ba ?ðU)
-   (#x77bb ?¤)
-   (#x77bc ?Â¥)
-   (#x77bd ?¢)
-   (#x77bf ?£)
-   (#x77c2 ?ðT)
-   (#x77c4 ?ò{)
-   (#x77c7 ?é)
-   (#x77c9 ?òy)
-   (#x77ca ?òz)
-   (#x77cc ?ôt)
-   (#x77cd ?ôw)
-   (#x77ce ?ôu)
-   (#x77cf ?ôv)
-   (#x77d0 ?õà)
-   (#x77d3 ?Äï)
-   (#x77d4 ?֑)
-   (#x77d5 ?ø´)
-   (#x77d7 ?Å÷)
-   (#x77d8 ?øø)
-   (#x77d9 ?øù)
-   (#x77da ?Æf)
-   (#x77db ?¥Ù)
-   (#x77dc ?‡)
-   (#x77de ?ÚÃ)
-   (#x77e0 ?Þã)
-   (#x77e2 ?¥Ú)
-   (#x77e3 ?¨o)
-   (#x77e5 ?ª¾)
-   (#x77e7 ?Ãè)
-   (#x77e8 ?Ãé)
-   (#x77e9 ?¯x)
-   (#x77ec ?ÚÄ)
-   (#x77ed ?µu)
-   (#x77ee ?¸G)
-   (#x77ef ?ÃB)
-   (#x77f0 ?í¤)
-   (#x77f1 ?ò|)
-   (#x77f2 ?ôx)
-   (#x77f3 ?¥Û)
-   (#x77f7 ?Í¡)
-   (#x77f8 ?Ãz)
-   (#x77f9 ?Ã|)
-   (#x77fa ?Ã~)
-   (#x77fb ?Ã})
-   (#x77fc ?Ã{)
-   (#x77fd ?ª¿)
-   (#x7802 ?‰)
-   (#x7803 ?Ãò)
-   (#x7805 ?Ãí)
-   (#x7806 ?Ãê)
-   (#x7809 ?Ãñ)
-   (#x780c ?Š)
-   (#x780d ?Œ)
-   (#x780e ?Ãð)
-   (#x780f ?Ãï)
-   (#x7810 ?Ãî)
-   (#x7811 ?Ãë)
-   (#x7812 ?Ãì)
-   (#x7813 ?Ãó)
-   (#x7814 ?‹)
-   (#x781d ?¯|)
-   (#x781f ?¯¤)
-   (#x7820 ?¯£)
-   (#x7821 ?Òá)
-   (#x7822 ?ÒÛ)
-   (#x7823 ?ÒÙ)
-   (#x7825 ?¯¡)
-   (#x7826 ?Ö¹)
-   (#x7827 ?¯z)
-   (#x7828 ?ÒÞ)
-   (#x7829 ?Òâ)
-   (#x782a ?Òä)
-   (#x782b ?Òà)
-   (#x782c ?ÒÚ)
-   (#x782d ?¯¢)
-   (#x782e ?Òß)
-   (#x782f ?Ã’Ã)
-   (#x7830 ?¯y)
-   (#x7831 ?Ã’Ã¥)
-   (#x7832 ?¯¥)
-   (#x7833 ?Òã)
-   (#x7834 ?¯})
-   (#x7835 ?Ã’Ãœ)
-   (#x7837 ?¯~)
-   (#x7838 ?¯{)
-   (#x7843 ?²¹)
-   (#x7845 ?Öº)
-   (#x7848 ?Ö³)
-   (#x7849 ?Öµ)
-   (#x784a ?Ö·)
-   (#x784c ?Ö¸)
-   (#x784d ?Ö¶)
-   (#x784e ?²º)
-   (#x7850 ?Ö»)
-   (#x7852 ?Ö´)
-   (#x785c ?ÚÈ)
-   (#x785d ?µv)
-   (#x785e ?ÚÃ)
-   (#x7860 ?ÚÅ)
-   (#x7862 ?ÚÑ)
-   (#x7864 ?ÚÆ)
-   (#x7865 ?ÚÇ)
-   (#x7868 ?ÚÃ)
-   (#x7869 ?ÚÎ)
-   (#x786a ?ÚË)
-   (#x786b ?²¸)
-   (#x786c ?µw)
-   (#x786d ?ÚÉ)
-   (#x786e ?ÚÌ)
-   (#x786f ?µx)
-   (#x7870 ?ÚÃ)
-   (#x7871 ?ÚÊ)
-   (#x7879 ?Þî)
-   (#x787b ?Þò)
-   (#x787c ?¸N)
-   (#x787e ?âð)
-   (#x787f ?¸Q)
-   (#x7880 ?Þð)
-   (#x7881 ?ùÖ)
-   (#x7883 ?Þí)
-   (#x7884 ?Þè)
-   (#x7885 ?Þê)
-   (#x7886 ?Þë)
-   (#x7887 ?Þä)
-   (#x7889 ?¸M)
-   (#x788c ?¸L)
-   (#x788e ?¸H)
-   (#x788f ?Þç)
-   (#x7891 ?¸O)
-   (#x7893 ?¸P)
-   (#x7894 ?Þæ)
-   (#x7895 ?Þé)
-   (#x7896 ?Þñ)
-   (#x7897 ?¸J)
-   (#x7898 ?¸K)
-   (#x7899 ?Þï)
-   (#x789a ?Þå)
-   (#x789e ?âò)
-   (#x789f ?ºÃ)
-   (#x78a0 ?âô)
-   (#x78a1 ?Þì)
-   (#x78a2 ?âö)
-   (#x78a3 ?ºÔ)
-   (#x78a4 ?â÷)
-   (#x78a5 ?âó)
-   (#x78a7 ?ºÑ)
-   (#x78a8 ?âï)
-   (#x78a9 ?ºÓ)
-   (#x78aa ?âì)
-   (#x78ab ?âñ)
-   (#x78ac ?âõ)
-   (#x78ad ?âî)
-   (#x78b0 ?¸I)
-   (#x78b2 ?âë)
-   (#x78b3 ?ºÒ)
-   (#x78b4 ?âí)
-   (#x78ba ?½T)
-   (#x78bb ?æÃ)
-   (#x78bc ?½X)
-   (#x78be ?½V)
-   (#x78c1 ?ºÃ)
-   (#x78c3 ?æÈ)
-   (#x78c4 ?æÉ)
-   (#x78c5 ?½S)
-   (#x78c8 ?æÇ)
-   (#x78c9 ?æÊ)
-   (#x78ca ?½U)
-   (#x78cb ?½R)
-   (#x78cc ?æÃ)
-   (#x78cd ?æÀ)
-   (#x78ce ?æÅ)
-   (#x78cf ?æÂ)
-   (#x78d0 ?½Y)
-   (#x78d1 ?æÄ)
-   (#x78d4 ?æÆ)
-   (#x78d5 ?½W)
-   (#x78da ?¿j)
-   (#x78db ?ê¨)
-   (#x78dd ?ê¢)
-   (#x78de ?ê¦)
-   (#x78df ?ê¬)
-   (#x78e0 ?ê­)
-   (#x78e1 ?ê©)
-   (#x78e2 ?êª)
-   (#x78e3 ?ê§)
-   (#x78e5 ?ê¤)
-   (#x78e7 ?¿l)
-   (#x78e8 ?¿i)
-   (#x78e9 ?ê£)
-   (#x78ea ?ê¥)
-   (#x78ec ?¿k)
-   (#x78ed ?ê«)
-   (#x78ef ?ÃF)
-   (#x78f2 ?íª)
-   (#x78f3 ?í¥)
-   (#x78f4 ?ÃE)
-   (#x78f7 ?ÃC)
-   (#x78f9 ?í¬)
-   (#x78fa ?ÃD)
-   (#x78fb ?í¨)
-   (#x78fc ?í©)
-   (#x78fd ?í¦)
-   (#x78fe ?í­)
-   (#x78ff ?ðV)
-   (#x7901 ?ÃG)
-   (#x7902 ?í§)
-   (#x7904 ?í®)
-   (#x7905 ?í«)
-   (#x7909 ?ðZ)
-   (#x790c ?ðW)
-   (#x790e ?¦)
-   (#x7910 ?ð[)
-   (#x7911 ?ð])
-   (#x7912 ?ð\)
-   (#x7913 ?ðX)
-   (#x7914 ?ðY)
-   (#x7917 ?ò£)
-   (#x7919 ?ê)
-   (#x791b ?ò~)
-   (#x791c ?ò¢)
-   (#x791d ?ò})
-   (#x791e ?ò¤)
-   (#x7921 ?ò¡)
-   (#x7923 ?ôz)
-   (#x7924 ?ô})
-   (#x7925 ?ôy)
-   (#x7926 ?Äq)
-   (#x7927 ?ô{)
-   (#x7928 ?ô|)
-   (#x7929 ?ô~)
-   (#x792a ?Är)
-   (#x792b ?Ät)
-   (#x792c ?Äs)
-   (#x792d ?õá)
-   (#x792f ?õã)
-   (#x7931 ?õâ)
-   (#x7935 ?öö)
-   (#x7938 ?øµ)
-   (#x7939 ?øú)
-   (#x793a ?¥Ü)
-   (#x793d ?Ër)
-   (#x793e ?ªÀ)
-   (#x793f ?Í£)
-   (#x7940 ?ªÃ)
-   (#x7941 ?ªÂ)
-   (#x7942 ?Í¢)
-   (#x7944 ?Ãø)
-   (#x7945 ?Ã÷)
-   (#x7946 ?¾)
-   (#x7947 ?Ž)
-   (#x7948 ?)
-   (#x7949 ?)
-   (#x794a ?Ãô)
-   (#x794b ?Ãö)
-   (#x794c ?Ãõ)
-   (#x794f ?Òè)
-   (#x7950 ?¯§)
-   (#x7951 ?Òì)
-   (#x7952 ?Òë)
-   (#x7953 ?Òê)
-   (#x7954 ?Òæ)
-   (#x7955 ?¯¦)
-   (#x7956 ?¯ª)
-   (#x7957 ?¯­)
-   (#x795a ?¯®)
-   (#x795b ?Òç)
-   (#x795c ?Òé)
-   (#x795d ?¯¬)
-   (#x795e ?¯«)
-   (#x795f ?¯©)
-   (#x7960 ?¯¨)
-   (#x7961 ?ÖÂ)
-   (#x7963 ?ÖÀ)
-   (#x7964 ?Ö¼)
-   (#x7965 ?²»)
-   (#x7967 ?Ö½)
-   (#x7968 ?²¼)
-   (#x7969 ?Ö¾)
-   (#x796a ?Ö¿)
-   (#x796b ?ÖÃ)
-   (#x796d ?²½)
-   (#x7970 ?ÚÕ)
-   (#x7972 ?ÚÔ)
-   (#x7973 ?ÚÓ)
-   (#x7974 ?ÚÒ)
-   (#x7979 ?Þö)
-   (#x797a ?¸R)
-   (#x797c ?Þó)
-   (#x797d ?Þõ)
-   (#x797f ?¸S)
-   (#x7981 ?¸T)
-   (#x7982 ?Þô)
-   (#x7988 ?ãA)
-   (#x798a ?âù)
-   (#x798b ?âú)
-   (#x798d ?º×)
-   (#x798e ?ºÕ)
-   (#x798f ?ºÖ)
-   (#x7990 ?ãC)
-   (#x7992 ?ãB)
-   (#x7993 ?âþ)
-   (#x7994 ?âý)
-   (#x7995 ?âü)
-   (#x7996 ?âû)
-   (#x7997 ?ã@)
-   (#x7998 ?âø)
-   (#x799a ?æË)
-   (#x799b ?æÃ)
-   (#x799c ?æÎ)
-   (#x79a0 ?æÃ)
-   (#x79a1 ?æÌ)
-   (#x79a2 ?æÃ)
-   (#x79a4 ?ê®)
-   (#x79a6 ?¿m)
-   (#x79a7 ?ÃH)
-   (#x79a8 ?í°)
-   (#x79aa ?ÃI)
-   (#x79ab ?í¯)
-   (#x79ac ?ð_)
-   (#x79ad ?ð^)
-   (#x79ae ?§)
-   (#x79b0 ?ò¥)
-   (#x79b1 ?ë)
-   (#x79b2 ?ô¡)
-   (#x79b3 ?Å¡)
-   (#x79b4 ?ö÷)
-   (#x79b6 ?ø·)
-   (#x79b7 ?ø¶)
-   (#x79b8 ?ɨ)
-   (#x79b9 ?)
-   (#x79ba ?‘)
-   (#x79bb ?ÖÃ)
-   (#x79bd ?¸V)
-   (#x79be ?Â¥Ã)
-   (#x79bf ?¨r)
-   (#x79c0 ?¨q)
-   (#x79c1 ?¨p)
-   (#x79c5 ?ͤ)
-   (#x79c8 ?ªÄ)
-   (#x79c9 ?ªÃ)
-   (#x79cb ?”)
-   (#x79cd ?Ãú)
-   (#x79ce ?Ãý)
-   (#x79cf ?Ãû)
-   (#x79d1 ?“)
-   (#x79d2 ?’)
-   (#x79d5 ?Ãù)
-   (#x79d6 ?Ãü)
-   (#x79d8 ?¯µ)
-   (#x79dc ?Òó)
-   (#x79dd ?Òõ)
-   (#x79de ?Òô)
-   (#x79df ?¯²)
-   (#x79e0 ?Òï)
-   (#x79e3 ?¯°)
-   (#x79e4 ?¯¯)
-   (#x79e6 ?¯³)
-   (#x79e7 ?¯±)
-   (#x79e9 ?¯´)
-   (#x79ea ?Òò)
-   (#x79eb ?Òí)
-   (#x79ec ?Òî)
-   (#x79ed ?Òñ)
-   (#x79ee ?Òð)
-   (#x79f6 ?ÖÆ)
-   (#x79f7 ?ÖÇ)
-   (#x79f8 ?ÖÅ)
-   (#x79fa ?ÖÄ)
-   (#x79fb ?²¾)
-   (#x7a00 ?µ})
-   (#x7a02 ?ÚÖ)
-   (#x7a03 ?ÚØ)
-   (#x7a04 ?ÚÚ)
-   (#x7a05 ?µ|)
-   (#x7a08 ?µz)
-   (#x7a0a ?Ú×)
-   (#x7a0b ?µ{)
-   (#x7a0c ?ÚÙ)
-   (#x7a0d ?µy)
-   (#x7a10 ?ßA)
-   (#x7a11 ?Þ÷)
-   (#x7a12 ?Þú)
-   (#x7a13 ?Þþ)
-   (#x7a14 ?¸Z)
-   (#x7a15 ?Þü)
-   (#x7a17 ?Þû)
-   (#x7a18 ?Þø)
-   (#x7a19 ?Þù)
-   (#x7a1a ?¸X)
-   (#x7a1b ?ß@)
-   (#x7a1c ?¸W)
-   (#x7a1e ?¸\)
-   (#x7a1f ?¸[)
-   (#x7a20 ?¸Y)
-   (#x7a22 ?Þý)
-   (#x7a26 ?ãI)
-   (#x7a28 ?ãH)
-   (#x7a2b ?ãD)
-   (#x7a2e ?ºØ)
-   (#x7a2f ?ãG)
-   (#x7a30 ?ãF)
-   (#x7a31 ?ºÙ)
-   (#x7a37 ?½^)
-   (#x7a39 ?æÒ)
-   (#x7a3b ?½_)
-   (#x7a3c ?½[)
-   (#x7a3d ?½])
-   (#x7a3f ?½Z)
-   (#x7a40 ?½\)
-   (#x7a44 ?ê¯)
-   (#x7a46 ?¿p)
-   (#x7a47 ?ê±)
-   (#x7a48 ?ê°)
-   (#x7a4a ?ãE)
-   (#x7a4b ?¿r)
-   (#x7a4c ?¿q)
-   (#x7a4d ?¿n)
-   (#x7a4e ?¿o)
-   (#x7a54 ?íµ)
-   (#x7a56 ?í³)
-   (#x7a57 ?ÃJ)
-   (#x7a58 ?í´)
-   (#x7a5a ?í¶)
-   (#x7a5b ?í²)
-   (#x7a5c ?í±)
-   (#x7a5f ?ð`)
-   (#x7a60 ?ª)
-   (#x7a61 ?¨)
-   (#x7a62 ?©)
-   (#x7a67 ?ò¦)
-   (#x7a68 ?ò§)
-   (#x7a69 ?í)
-   (#x7a6b ?ì)
-   (#x7a6c ?ô£)
-   (#x7a6d ?ô¤)
-   (#x7a6e ?ô¢)
-   (#x7a70 ?öø)
-   (#x7a71 ?öù)
-   (#x7a74 ?¥Þ)
-   (#x7a75 ?ÊH)
-   (#x7a76 ?¨s)
-   (#x7a78 ?Í¥)
-   (#x7a79 ?ªÆ)
-   (#x7a7a ?ªÅ)
-   (#x7a7b ?ͦ)
-   (#x7a7e ?Ã@)
-   (#x7a7f ?•)
-   (#x7a80 ?Ãþ)
-   (#x7a81 ?¬ð)
-   (#x7a84 ?¯¶)
-   (#x7a85 ?Òø)
-   (#x7a86 ?Òö)
-   (#x7a87 ?Òü)
-   (#x7a88 ?¯·)
-   (#x7a89 ?Ò÷)
-   (#x7a8a ?Òû)
-   (#x7a8b ?Òù)
-   (#x7a8c ?Òú)
-   (#x7a8f ?ÖÈ)
-   (#x7a90 ?ÖÊ)
-   (#x7a92 ?²¿)
-   (#x7a94 ?ÖÉ)
-   (#x7a95 ?²À)
-   (#x7a96 ?µ¢)
-   (#x7a97 ?µ¡)
-   (#x7a98 ?µ~)
-   (#x7a99 ?ÚÛ)
-   (#x7a9e ?ßD)
-   (#x7a9f ?¸])
-   (#x7aa0 ?¸^)
-   (#x7aa2 ?ßC)
-   (#x7aa3 ?ßB)
-   (#x7aa8 ?ãJ)
-   (#x7aa9 ?ºÛ)
-   (#x7aaa ?ºÚ)
-   (#x7aab ?ãK)
-   (#x7aac ?ãL)
-   (#x7aae ?½a)
-   (#x7aaf ?½`)
-   (#x7ab1 ?êµ)
-   (#x7ab2 ?æÓ)
-   (#x7ab3 ?æÕ)
-   (#x7ab4 ?æÔ)
-   (#x7ab5 ?ê´)
-   (#x7ab6 ?ê²)
-   (#x7ab7 ?ê¶)
-   (#x7ab8 ?ê³)
-   (#x7aba ?¿s)
-   (#x7abe ?í·)
-   (#x7abf ?ÃK)
-   (#x7ac0 ?í¸)
-   (#x7ac1 ?í¹)
-   (#x7ac4 ?«)
-   (#x7ac5 ?¬)
-   (#x7ac7 ?Äu)
-   (#x7aca ?ÅÑ)
-   (#x7acb ?¥ß)
-   (#x7ad1 ?ÃA)
-   (#x7ad8 ?Òý)
-   (#x7ad9 ?¯¸)
-   (#x7adf ?³º)
-   (#x7ae0 ?³¹)
-   (#x7ae3 ?µ¤)
-   (#x7ae4 ?ÚÃ)
-   (#x7ae5 ?µ£)
-   (#x7ae6 ?ÚÜ)
-   (#x7aeb ?ßE)
-   (#x7aed ?ºÜ)
-   (#x7aee ?ãM)
-   (#x7aef ?ºÃ)
-   (#x7af6 ?Äv)
-   (#x7af7 ?ô¥)
-   (#x7af9 ?¦Ë)
-   (#x7afa ?ªÇ)
-   (#x7afb ?ͧ)
-   (#x7afd ?¬ò)
-   (#x7aff ?–)
-   (#x7b00 ?ÃB)
-   (#x7b01 ?ÃC)
-   (#x7b04 ?Ó@)
-   (#x7b05 ?ÓB)
-   (#x7b06 ?¯¹)
-   (#x7b08 ?ÓD)
-   (#x7b09 ?ÓG)
-   (#x7b0a ?ÓE)
-   (#x7b0e ?ÓF)
-   (#x7b0f ?ÓC)
-   (#x7b10 ?Òþ)
-   (#x7b11 ?¯º)
-   (#x7b12 ?ÓH)
-   (#x7b13 ?ÓA)
-   (#x7b18 ?ÖÓ)
-   (#x7b19 ?²Æ)
-   (#x7b1a ?ÖÜ)
-   (#x7b1b ?²Ã)
-   (#x7b1d ?ÖÕ)
-   (#x7b1e ?²Ç)
-   (#x7b20 ?²Ã)
-   (#x7b22 ?ÖÃ)
-   (#x7b23 ?ÖÃ)
-   (#x7b24 ?ÖÑ)
-   (#x7b25 ?ÖÎ)
-   (#x7b26 ?²Å)
-   (#x7b28 ?²Â)
-   (#x7b2a ?ÖÔ)
-   (#x7b2b ?Ö×)
-   (#x7b2c ?²Ä)
-   (#x7b2d ?ÖØ)
-   (#x7b2e ?²È)
-   (#x7b2f ?ÖÙ)
-   (#x7b30 ?ÖÃ)
-   (#x7b31 ?ÖÖ)
-   (#x7b32 ?ÖÚ)
-   (#x7b33 ?ÖÒ)
-   (#x7b34 ?ÖÃ)
-   (#x7b35 ?ÖË)
-   (#x7b38 ?ÖÛ)
-   (#x7b3b ?Úß)
-   (#x7b40 ?Úä)
-   (#x7b44 ?Úà)
-   (#x7b45 ?Úæ)
-   (#x7b46 ?µ§)
-   (#x7b47 ?ÖÌ)
-   (#x7b48 ?Úá)
-   (#x7b49 ?µ¥)
-   (#x7b4a ?ÚÞ)
-   (#x7b4b ?µ¬)
-   (#x7b4c ?Úâ)
-   (#x7b4d ?µ«)
-   (#x7b4e ?Úã)
-   (#x7b4f ?µ­)
-   (#x7b50 ?µ¨)
-   (#x7b51 ?µ®)
-   (#x7b52 ?µ©)
-   (#x7b54 ?µª)
-   (#x7b56 ?µ¦)
-   (#x7b58 ?Úå)
-   (#x7b60 ?¸a)
-   (#x7b61 ?ßP)
-   (#x7b63 ?ßS)
-   (#x7b64 ?ßG)
-   (#x7b65 ?ßL)
-   (#x7b66 ?ßF)
-   (#x7b67 ?¸c)
-   (#x7b69 ?ßJ)
-   (#x7b6d ?ßH)
-   (#x7b6e ?¸b)
-   (#x7b70 ?ßO)
-   (#x7b71 ?ßN)
-   (#x7b72 ?ßK)
-   (#x7b73 ?ßM)
-   (#x7b74 ?ßI)
-   (#x7b75 ?ºá)
-   (#x7b76 ?ßR)
-   (#x7b77 ?¸_)
-   (#x7b78 ?ßQ)
-   (#x7b82 ?ã])
-   (#x7b84 ?ºè)
-   (#x7b85 ?ãX)
-   (#x7b87 ?ºç)
-   (#x7b88 ?ãN)
-   (#x7b8a ?ãP)
-   (#x7b8b ?ºà)
-   (#x7b8c ?ãU)
-   (#x7b8d ?ãT)
-   (#x7b8e ?ãW)
-   (#x7b8f ?ºå)
-   (#x7b90 ?ãR)
-   (#x7b91 ?ãQ)
-   (#x7b94 ?ºä)
-   (#x7b95 ?ºß)
-   (#x7b96 ?ãS)
-   (#x7b97 ?ºâ)
-   (#x7b98 ?ãY)
-   (#x7b99 ?ã[)
-   (#x7b9b ?ãV)
-   (#x7b9c ?ãO)
-   (#x7b9d ?ºã)
-   (#x7ba0 ?½i)
-   (#x7ba1 ?ºÞ)
-   (#x7ba4 ?ã\)
-   (#x7bac ?æÙ)
-   (#x7bad ?½b)
-   (#x7baf ?æÛ)
-   (#x7bb1 ?½c)
-   (#x7bb4 ?½e)
-   (#x7bb5 ?æÞ)
-   (#x7bb7 ?æÖ)
-   (#x7bb8 ?ºæ)
-   (#x7bb9 ?æÜ)
-   (#x7bbe ?æØ)
-   (#x7bc0 ?¸`)
-   (#x7bc1 ?½h)
-   (#x7bc4 ?½d)
-   (#x7bc6 ?½f)
-   (#x7bc7 ?½g)
-   (#x7bc9 ?¿v)
-   (#x7bca ?æÃ)
-   (#x7bcb ?æ×)
-   (#x7bcc ?½j)
-   (#x7bce ?æÚ)
-   (#x7bd4 ?êÀ)
-   (#x7bd5 ?ê»)
-   (#x7bd8 ?êÅ)
-   (#x7bd9 ?¿t)
-   (#x7bda ?ê½)
-   (#x7bdb ?¿x)
-   (#x7bdc ?êÃ)
-   (#x7bdd ?êº)
-   (#x7bde ?ê·)
-   (#x7bdf ?êÆ)
-   (#x7be0 ?ÃQ)
-   (#x7be1 ?¿y)
-   (#x7be2 ?êÂ)
-   (#x7be3 ?ê¸)
-   (#x7be4 ?¿w)
-   (#x7be5 ?ê¼)
-   (#x7be6 ?¿{)
-   (#x7be7 ?ê¹)
-   (#x7be8 ?ê¾)
-   (#x7be9 ?¿z)
-   (#x7bea ?êÃ)
-   (#x7beb ?êÄ)
-   (#x7bf0 ?íË)
-   (#x7bf1 ?íÌ)
-   (#x7bf2 ?í¼)
-   (#x7bf3 ?íÃ)
-   (#x7bf4 ?íÃ)
-   (#x7bf7 ?ÃO)
-   (#x7bf8 ?íÈ)
-   (#x7bf9 ?ê¿)
-   (#x7bfb ?í¿)
-   (#x7bfd ?íÉ)
-   (#x7bfe ?ÃN)
-   (#x7bff ?í¾)
-   (#x7c00 ?í½)
-   (#x7c01 ?íÇ)
-   (#x7c02 ?íÄ)
-   (#x7c03 ?íÆ)
-   (#x7c05 ?íº)
-   (#x7c06 ?íÊ)
-   (#x7c07 ?ÃL)
-   (#x7c09 ?íÅ)
-   (#x7c0a ?íÎ)
-   (#x7c0b ?íÂ)
-   (#x7c0c ?ÃP)
-   (#x7c0d ?ÃM)
-   (#x7c0e ?íÀ)
-   (#x7c0f ?í»)
-   (#x7c10 ?íÃ)
-   (#x7c11 ?¿u)
-   (#x7c19 ?ðc)
-   (#x7c1c ?ða)
-   (#x7c1d ?ðg)
-   (#x7c1e ?°)
-   (#x7c1f ?ðe)
-   (#x7c20 ?ðd)
-   (#x7c21 ?²)
-   (#x7c22 ?ðj)
-   (#x7c23 ?±)
-   (#x7c25 ?ðk)
-   (#x7c26 ?ðh)
-   (#x7c27 ?®)
-   (#x7c28 ?ði)
-   (#x7c29 ?ðb)
-   (#x7c2a ?¯)
-   (#x7c2b ?­)
-   (#x7c2c ?ò«)
-   (#x7c2d ?ðf)
-   (#x7c30 ?ðl)
-   (#x7c33 ?ò¨)
-   (#x7c37 ?ò)
-   (#x7c38 ?ð)
-   (#x7c39 ?òª)
-   (#x7c3b ?ò¬)
-   (#x7c3c ?ò©)
-   (#x7c3d ?ñ)
-   (#x7c3e ?î)
-   (#x7c3f ?ï)
-   (#x7c40 ?ó)
-   (#x7c43 ?Äx)
-   (#x7c45 ?ôª)
-   (#x7c47 ?ô©)
-   (#x7c48 ?ô§)
-   (#x7c49 ?ô¦)
-   (#x7c4a ?ô¨)
-   (#x7c4c ?Äw)
-   (#x7c4d ?Äy)
-   (#x7c50 ?Äð)
-   (#x7c53 ?õå)
-   (#x7c54 ?õä)
-   (#x7c57 ?öú)
-   (#x7c59 ?öü)
-   (#x7c5a ?öþ)
-   (#x7c5b ?öý)
-   (#x7c5c ?öû)
-   (#x7c5f ?Å£)
-   (#x7c60 ?Å¢)
-   (#x7c63 ?ÅÓ)
-   (#x7c64 ?Ã…Ã’)
-   (#x7c65 ?ÅÔ)
-   (#x7c66 ?֒)
-   (#x7c67 ?֓)
-   (#x7c69 ?øû)
-   (#x7c6a ?ø¸)
-   (#x7c6b ?øü)
-   (#x7c6c ?ÆX)
-   (#x7c6e ?ÆY)
-   (#x7c6f ?ùm)
-   (#x7c72 ?Æ~)
-   (#x7c73 ?¦Ì)
-   (#x7c75 ?ͨ)
-   (#x7c78 ?ÃE)
-   (#x7c79 ?ÃF)
-   (#x7c7a ?ÃD)
-   (#x7c7d ?¬ó)
-   (#x7c7f ?ÃG)
-   (#x7c80 ?ÃH)
-   (#x7c81 ?ÃI)
-   (#x7c84 ?ÓI)
-   (#x7c85 ?ÓO)
-   (#x7c88 ?ÓM)
-   (#x7c89 ?¯»)
-   (#x7c8a ?ÓK)
-   (#x7c8c ?ÓL)
-   (#x7c8d ?ÓN)
-   (#x7c91 ?ÓJ)
-   (#x7c92 ?²É)
-   (#x7c94 ?ÖÞ)
-   (#x7c95 ?²Ë)
-   (#x7c96 ?Öà)
-   (#x7c97 ?²Ê)
-   (#x7c98 ?Öß)
-   (#x7c9e ?Úè)
-   (#x7c9f ?µ¯)
-   (#x7ca1 ?Úê)
-   (#x7ca2 ?Úç)
-   (#x7ca3 ?Öá)
-   (#x7ca5 ?µ°)
-   (#x7ca7 ?ùÛ)
-   (#x7ca8 ?Úé)
-   (#x7caf ?ßV)
-   (#x7cb1 ?¸d)
-   (#x7cb2 ?ßT)
-   (#x7cb3 ?¸e)
-   (#x7cb4 ?ßU)
-   (#x7cb5 ?¸f)
-   (#x7cb9 ?ºé)
-   (#x7cba ?ãa)
-   (#x7cbb ?ã^)
-   (#x7cbc ?ã`)
-   (#x7cbd ?ºê)
-   (#x7cbe ?ºë)
-   (#x7cbf ?ã_)
-   (#x7cc5 ?æß)
-   (#x7cc8 ?æà)
-   (#x7cca ?½k)
-   (#x7ccb ?æâ)
-   (#x7ccc ?æá)
-   (#x7cce ?¢a)
-   (#x7cd0 ?êÊ)
-   (#x7cd1 ?êË)
-   (#x7cd2 ?êÇ)
-   (#x7cd4 ?êÈ)
-   (#x7cd5 ?¿|)
-   (#x7cd6 ?¿})
-   (#x7cd7 ?êÉ)
-   (#x7cd9 ?ÃW)
-   (#x7cdc ?ÃS)
-   (#x7cdd ?ÃX)
-   (#x7cde ?ÃT)
-   (#x7cdf ?ÃV)
-   (#x7ce0 ?ÃR)
-   (#x7ce2 ?ÃU)
-   (#x7ce7 ?³)
-   (#x7ce8 ?íÃ)
-   (#x7cea ?ò®)
-   (#x7cec ?ò­)
-   (#x7cee ?ô«)
-   (#x7cef ?Äz)
-   (#x7cf0 ?Ä{)
-   (#x7cf1 ?÷A)
-   (#x7cf2 ?õæ)
-   (#x7cf4 ?÷@)
-   (#x7cf6 ?øý)
-   (#x7cf7 ?ù¤)
-   (#x7cf8 ?¦Ã)
-   (#x7cfb ?¨t)
-   (#x7cfd ?Í©)
-   (#x7cfe ?ªÈ)
-   (#x7d00 ?¬ö)
-   (#x7d01 ?ÃL)
-   (#x7d02 ?¬ô)
-   (#x7d03 ?ÃJ)
-   (#x7d04 ?¬ù)
-   (#x7d05 ?¬õ)
-   (#x7d06 ?¬ú)
-   (#x7d07 ?¬ø)
-   (#x7d08 ?ÃK)
-   (#x7d09 ?¬÷)
-   (#x7d0a ?¯¿)
-   (#x7d0b ?¯¾)
-   (#x7d0c ?ÓZ)
-   (#x7d0d ?¯Ç)
-   (#x7d0e ?ÓS)
-   (#x7d0f ?ÓY)
-   (#x7d10 ?¯Ã)
-   (#x7d11 ?ÓR)
-   (#x7d12 ?ÓX)
-   (#x7d13 ?ÓV)
-   (#x7d14 ?¯Â)
-   (#x7d15 ?¯Ä)
-   (#x7d16 ?ÓU)
-   (#x7d17 ?¯½)
-   (#x7d18 ?ÓT)
-   (#x7d19 ?¯È)
-   (#x7d1a ?¯Å)
-   (#x7d1b ?¯É)
-   (#x7d1c ?¯Æ)
-   (#x7d1d ?ÓQ)
-   (#x7d1e ?ÓP)
-   (#x7d1f ?ÓW)
-   (#x7d20 ?¯À)
-   (#x7d21 ?¯¼)
-   (#x7d22 ?¯Ã)
-   (#x7d28 ?Öð)
-   (#x7d29 ?Öé)
-   (#x7d2b ?µµ)
-   (#x7d2c ?Öè)
-   (#x7d2e ?²Ã)
-   (#x7d2f ?²Ö)
-   (#x7d30 ?²Ó)
-   (#x7d31 ?²Ù)
-   (#x7d32 ?²Ø)
-   (#x7d33 ?²Ô)
-   (#x7d35 ?Öâ)
-   (#x7d36 ?Öå)
-   (#x7d38 ?Öä)
-   (#x7d39 ?²Ã)
-   (#x7d3a ?Öæ)
-   (#x7d3b ?Öï)
-   (#x7d3c ?²Ñ)
-   (#x7d3d ?Öã)
-   (#x7d3e ?Öì)
-   (#x7d3f ?Öí)
-   (#x7d40 ?²Ò)
-   (#x7d41 ?Öê)
-   (#x7d42 ?²×)
-   (#x7d43 ?²Ã)
-   (#x7d44 ?²Õ)
-   (#x7d45 ?Öç)
-   (#x7d46 ?²Ì)
-   (#x7d47 ?Öë)
-   (#x7d4a ?Öî)
-   (#x7d4e ?Úû)
-   (#x7d4f ?Úò)
-   (#x7d50 ?µ²)
-   (#x7d51 ?Úù)
-   (#x7d52 ?Úö)
-   (#x7d53 ?Úî)
-   (#x7d54 ?Ú÷)
-   (#x7d55 ?µ´)
-   (#x7d56 ?Úï)
-   (#x7d58 ?Úë)
-   (#x7d5b ?¸l)
-   (#x7d5c ?Úô)
-   (#x7d5e ?µ±)
-   (#x7d5f ?Úú)
-   (#x7d61 ?µ¸)
-   (#x7d62 ?µº)
-   (#x7d63 ?Úí)
-   (#x7d66 ?µ¹)
-   (#x7d67 ?Úð)
-   (#x7d68 ?µ³)
-   (#x7d69 ?Úø)
-   (#x7d6a ?Úñ)
-   (#x7d6b ?Úõ)
-   (#x7d6d ?Úó)
-   (#x7d6e ?µ¶)
-   (#x7d6f ?Úì)
-   (#x7d70 ?µ»)
-   (#x7d71 ?²Î)
-   (#x7d72 ?µ·)
-   (#x7d73 ?µ¼)
-   (#x7d79 ?¸h)
-   (#x7d7a ?ß])
-   (#x7d7b ?ß_)
-   (#x7d7c ?ßa)
-   (#x7d7d ?ße)
-   (#x7d7f ?ß[)
-   (#x7d80 ?ßY)
-   (#x7d81 ?¸j)
-   (#x7d83 ?ß`)
-   (#x7d84 ?ßd)
-   (#x7d85 ?ß\)
-   (#x7d86 ?ßX)
-   (#x7d88 ?ßW)
-   (#x7d8c ?ßb)
-   (#x7d8d ?ßZ)
-   (#x7d8e ?ß^)
-   (#x7d8f ?¸k)
-   (#x7d91 ?¸i)
-   (#x7d92 ?ßf)
-   (#x7d93 ?¸g)
-   (#x7d94 ?ßc)
-   (#x7d96 ?ãr)
-   (#x7d9c ?ºî)
-   (#x7d9d ?ãj)
-   (#x7d9e ?½x)
-   (#x7d9f ?ãt)
-   (#x7da0 ?ºñ)
-   (#x7da1 ?ãx)
-   (#x7da2 ?º÷)
-   (#x7da3 ?ãe)
-   (#x7da6 ?ãu)
-   (#x7da7 ?ãb)
-   (#x7da9 ?ãw)
-   (#x7daa ?ãf)
-   (#x7dac ?ºþ)
-   (#x7dad ?ºû)
-   (#x7dae ?ãv)
-   (#x7daf ?ãp)
-   (#x7db0 ?ºí)
-   (#x7db1 ?ºõ)
-   (#x7db2 ?ºô)
-   (#x7db4 ?ºó)
-   (#x7db5 ?ºù)
-   (#x7db7 ?ãc)
-   (#x7db8 ?ºú)
-   (#x7db9 ?ãq)
-   (#x7dba ?ºö)
-   (#x7dbb ?ºì)
-   (#x7dbc ?ãs)
-   (#x7dbd ?ºï)
-   (#x7dbe ?ºð)
-   (#x7dbf ?ºø)
-   (#x7dc0 ?ãh)
-   (#x7dc1 ?ãg)
-   (#x7dc2 ?ãd)
-   (#x7dc4 ?ãl)
-   (#x7dc5 ?ãi)
-   (#x7dc6 ?ãm)
-   (#x7dc7 ?ºý)
-   (#x7dc9 ?ãy)
-   (#x7dca ?ºò)
-   (#x7dcb ?ãn)
-   (#x7dcc ?ão)
-   (#x7dce ?ãk)
-   (#x7dd2 ?ºü)
-   (#x7dd7 ?æç)
-   (#x7dd8 ?½p)
-   (#x7dd9 ?½y)
-   (#x7dda ?½u)
-   (#x7ddb ?æä)
-   (#x7ddd ?½r)
-   (#x7dde ?½v)
-   (#x7ddf ?æð)
-   (#x7de0 ?½l)
-   (#x7de1 ?æè)
-   (#x7de3 ?½t)
-   (#x7de6 ?æë)
-   (#x7de7 ?ææ)
-   (#x7de8 ?½s)
-   (#x7de9 ?½w)
-   (#x7dea ?æå)
-   (#x7dec ?½q)
-   (#x7dee ?æï)
-   (#x7def ?½n)
-   (#x7df0 ?æî)
-   (#x7df1 ?æí)
-   (#x7df2 ?½z)
-   (#x7df3 ?Ã¥r)
-   (#x7df4 ?½m)
-   (#x7df6 ?æì)
-   (#x7df7 ?æã)
-   (#x7df9 ?½{)
-   (#x7dfa ?æê)
-   (#x7dfb ?½o)
-   (#x7e03 ?æé)
-   (#x7e08 ?¿¢)
-   (#x7e09 ?¿§)
-   (#x7e0a ?¿~)
-   (#x7e0b ?êØ)
-   (#x7e0c ?êÃ)
-   (#x7e0d ?êÛ)
-   (#x7e0e ?êÓ)
-   (#x7e0f ?êÙ)
-   (#x7e10 ?¿¨)
-   (#x7e11 ?¿¡)
-   (#x7e12 ?êÌ)
-   (#x7e13 ?êÒ)
-   (#x7e14 ?êÜ)
-   (#x7e15 ?êÕ)
-   (#x7e16 ?êÚ)
-   (#x7e17 ?êÎ)
-   (#x7e1a ?êÖ)
-   (#x7e1b ?¿£)
-   (#x7e1c ?êÔ)
-   (#x7e1d ?¿¦)
-   (#x7e1e ?¿¥)
-   (#x7e1f ?êÃ)
-   (#x7e20 ?êÑ)
-   (#x7e21 ?êÃ)
-   (#x7e22 ?ê×)
-   (#x7e23 ?¿¤)
-   (#x7e24 ?êÞ)
-   (#x7e25 ?êÃ)
-   (#x7e29 ?íÚ)
-   (#x7e2a ?íÖ)
-   (#x7e2b ?Ã_)
-   (#x7e2d ?íÃ)
-   (#x7e2e ?ÃY)
-   (#x7e2f ?Ãi)
-   (#x7e30 ?íÜ)
-   (#x7e31 ?Ãa)
-   (#x7e32 ?Ã])
-   (#x7e33 ?íÓ)
-   (#x7e34 ?Ãd)
-   (#x7e35 ?Ãg)
-   (#x7e36 ?íÞ)
-   (#x7e37 ?Ã\)
-   (#x7e38 ?íÕ)
-   (#x7e39 ?Ãe)
-   (#x7e3a ?íà)
-   (#x7e3b ?íÃ)
-   (#x7e3c ?íÑ)
-   (#x7e3d ?Ã`)
-   (#x7e3e ?ÃZ)
-   (#x7e3f ?Ãh)
-   (#x7e40 ?íØ)
-   (#x7e41 ?Ãc)
-   (#x7e42 ?íÒ)
-   (#x7e43 ?Ã^)
-   (#x7e44 ?íß)
-   (#x7e45 ?Ãb)
-   (#x7e46 ?Ã[)
-   (#x7e47 ?íÙ)
-   (#x7e48 ?Ãf)
-   (#x7e49 ?í×)
-   (#x7e4c ?íÛ)
-   (#x7e50 ?ðn)
-   (#x7e51 ?ðt)
-   (#x7e52 ?¹)
-   (#x7e53 ?ðw)
-   (#x7e54 ?´)
-   (#x7e55 ?µ)
-   (#x7e56 ?ðo)
-   (#x7e57 ?ðv)
-   (#x7e58 ?ðq)
-   (#x7e59 ?º)
-   (#x7e5a ?·)
-   (#x7e5c ?ðm)
-   (#x7e5e ?¶)
-   (#x7e5f ?ðs)
-   (#x7e60 ?ðu)
-   (#x7e61 ?¸)
-   (#x7e62 ?ðr)
-   (#x7e63 ?ðp)
-   (#x7e68 ?ò¸)
-   (#x7e69 ?÷)
-   (#x7e6a ?ø)
-   (#x7e6b ?ô)
-   (#x7e6d ?õ)
-   (#x7e6f ?ò´)
-   (#x7e70 ?ò²)
-   (#x7e72 ?ò¶)
-   (#x7e73 ?ú)
-   (#x7e74 ?ò·)
-   (#x7e75 ?ò°)
-   (#x7e76 ?ò¯)
-   (#x7e77 ?ò³)
-   (#x7e78 ?ò±)
-   (#x7e79 ?ö)
-   (#x7e7a ?òµ)
-   (#x7e7b ?ô¬)
-   (#x7e7c ?Ä~)
-   (#x7e7d ?Ä})
-   (#x7e7e ?ô­)
-   (#x7e80 ?ô¯)
-   (#x7e81 ?ô®)
-   (#x7e82 ?Ä¡)
-   (#x7e86 ?õë)
-   (#x7e87 ?õè)
-   (#x7e88 ?õé)
-   (#x7e8a ?õç)
-   (#x7e8b ?õê)
-   (#x7e8c ?Äò)
-   (#x7e8d ?õì)
-   (#x7e8f ?Äñ)
-   (#x7e91 ?÷B)
-   (#x7e93 ?ÅÕ)
-   (#x7e94 ?Å×)
-   (#x7e95 ?֔)
-   (#x7e96 ?ÅÖ)
-   (#x7e97 ?ø¹)
-   (#x7e98 ?ù@)
-   (#x7e99 ?ùB)
-   (#x7e9a ?øþ)
-   (#x7e9b ?ùA)
-   (#x7e9c ?Æl)
-   (#x7f36 ?¦Î)
-   (#x7f38 ?¬û)
-   (#x7f39 ?Ã’o)
-   (#x7f3a ?¯Ê)
-   (#x7f3d ?²Ú)
-   (#x7f3e ?Úü)
-   (#x7f3f ?Úý)
-   (#x7f43 ?êß)
-   (#x7f44 ?Ãj)
-   (#x7f45 ?íá)
-   (#x7f48 ?»)
-   (#x7f4a ?òº)
-   (#x7f4b ?ò¹)
-   (#x7f4c ?Ä¢)
-   (#x7f4d ?õí)
-   (#x7f4f ?÷C)
-   (#x7f50 ?Åø)
-   (#x7f51 ?ÊI)
-   (#x7f54 ?ªÉ)
-   (#x7f55 ?¨u)
-   (#x7f58 ?ÃM)
-   (#x7f5b ?Ó`)
-   (#x7f5c ?Ó[)
-   (#x7f5d ?Ó_)
-   (#x7f5e ?Ó])
-   (#x7f5f ?¯Ë)
-   (#x7f60 ?Ó^)
-   (#x7f61 ?Ó\)
-   (#x7f63 ?Öñ)
-   (#x7f65 ?Úþ)
-   (#x7f66 ?Û@)
-   (#x7f67 ?ßi)
-   (#x7f68 ?ßj)
-   (#x7f69 ?¸n)
-   (#x7f6a ?¸o)
-   (#x7f6b ?ßh)
-   (#x7f6c ?ßk)
-   (#x7f6d ?ßg)
-   (#x7f6e ?¸m)
-   (#x7f70 ?»@)
-   (#x7f72 ?¸p)
-   (#x7f73 ?ãz)
-   (#x7f75 ?½|)
-   (#x7f76 ?æñ)
-   (#x7f77 ?½})
-   (#x7f79 ?¿©)
-   (#x7f7a ?êâ)
-   (#x7f7b ?êà)
-   (#x7f7c ?êá)
-   (#x7f7d ?íä)
-   (#x7f7e ?íã)
-   (#x7f7f ?íâ)
-   (#x7f83 ?ò»)
-   (#x7f85 ?ù)
-   (#x7f86 ?ò¼)
-   (#x7f87 ?÷D)
-   (#x7f88 ?Åù)
-   (#x7f89 ?øº)
-   (#x7f8a ?¦Ã)
-   (#x7f8b ?ªË)
-   (#x7f8c ?ªÊ)
-   (#x7f8d ?ÃO)
-   (#x7f8e ?Ÿ)
-   (#x7f91 ?ÃN)
-   (#x7f92 ?Ób)
-   (#x7f94 ?¯Ì)
-   (#x7f95 ?Öò)
-   (#x7f96 ?Óa)
-   (#x7f9a ?²Ü)
-   (#x7f9b ?Öõ)
-   (#x7f9c ?Öó)
-   (#x7f9d ?Öô)
-   (#x7f9e ?²Û)
-   (#x7fa0 ?ÛB)
-   (#x7fa1 ?ÛC)
-   (#x7fa2 ?ÛA)
-   (#x7fa4 ?¸s)
-   (#x7fa5 ?ßm)
-   (#x7fa6 ?ßl)
-   (#x7fa7 ?ßn)
-   (#x7fa8 ?¸r)
-   (#x7fa9 ?¸q)
-   (#x7fac ?æò)
-   (#x7fad ?æô)
-   (#x7faf ?½~)
-   (#x7fb0 ?æó)
-   (#x7fb1 ?êã)
-   (#x7fb2 ?¿ª)
-   (#x7fb3 ?ðy)
-   (#x7fb5 ?ðx)
-   (#x7fb6 ?û)
-   (#x7fb7 ?ò½)
-   (#x7fb8 ?ý)
-   (#x7fb9 ?ü)
-   (#x7fba ?ô°)
-   (#x7fbb ?õî)
-   (#x7fbc ?Äó)
-   (#x7fbd ?¦Ã)
-   (#x7fbe ?ÃP)
-   (#x7fbf ?¬ý)
-   (#x7fc0 ?Óe)
-   (#x7fc1 ?¯Î)
-   (#x7fc2 ?Ód)
-   (#x7fc3 ?Óc)
-   (#x7fc5 ?¯Ã)
-   (#x7fc7 ?Öû)
-   (#x7fc9 ?Öý)
-   (#x7fca ?Öö)
-   (#x7fcb ?Ö÷)
-   (#x7fcc ?²Ã)
-   (#x7fcd ?Öø)
-   (#x7fce ?²Þ)
-   (#x7fcf ?Öü)
-   (#x7fd0 ?Öù)
-   (#x7fd1 ?Öú)
-   (#x7fd2 ?²ß)
-   (#x7fd4 ?µ¾)
-   (#x7fd5 ?µ¿)
-   (#x7fd7 ?ÛD)
-   (#x7fdb ?ßo)
-   (#x7fdc ?ßp)
-   (#x7fde ?ã~)
-   (#x7fdf ?»C)
-   (#x7fe0 ?»A)
-   (#x7fe1 ?»B)
-   (#x7fe2 ?ã{)
-   (#x7fe3 ?ã|)
-   (#x7fe5 ?ã})
-   (#x7fe6 ?æù)
-   (#x7fe8 ?æú)
-   (#x7fe9 ?½¡)
-   (#x7fea ?æ÷)
-   (#x7feb ?æö)
-   (#x7fec ?æø)
-   (#x7fed ?æõ)
-   (#x7fee ?¿­)
-   (#x7fef ?êä)
-   (#x7ff0 ?¿«)
-   (#x7ff1 ?¿¬)
-   (#x7ff2 ?íæ)
-   (#x7ff3 ?Ãk)
-   (#x7ff4 ?íå)
-   (#x7ff5 ?ï¨)
-   (#x7ff7 ?ðz)
-   (#x7ff8 ?ð{)
-   (#x7ff9 ?¼)
-   (#x7ffb ?½)
-   (#x7ffc ?Ãl)
-   (#x7ffd ?ò¾)
-   (#x7ffe ?ò¿)
-   (#x7fff ?ô±)
-   (#x8000 ?Ä£)
-   (#x8001 ?¦Ñ)
-   (#x8003 ?¦Ò)
-   (#x8004 ?¬þ)
-   (#x8005 ?ªÌ)
-   (#x8006 ?¯Ã)
-   (#x8007 ?ÃQ)
-   (#x800b ?µÀ)
-   (#x800c ?¦Ó)
-   (#x800d ?­A)
-   (#x800e ?ÃR)
-   (#x800f ?ÃS)
-   (#x8010 ?­@)
-   (#x8011 ?­B)
-   (#x8012 ?¦Ô)
-   (#x8014 ?ÃT)
-   (#x8015 ?¯Ñ)
-   (#x8016 ?Óf)
-   (#x8017 ?¯Ó)
-   (#x8018 ?¯Ã)
-   (#x8019 ?¯Ò)
-   (#x801b ?×A)
-   (#x801c ?²à)
-   (#x801e ?×@)
-   (#x801f ?Öþ)
-   (#x8021 ?ßq)
-   (#x8024 ?ã¡)
-   (#x8026 ?½¢)
-   (#x8028 ?¿®)
-   (#x8029 ?êæ)
-   (#x802a ?êå)
-   (#x802c ?íç)
-   (#x8030 ?õï)
-   (#x8033 ?¦Õ)
-   (#x8034 ?Ës)
-   (#x8035 ?ͪ)
-   (#x8036 ?­C)
-   (#x8037 ?ÃU)
-   (#x8039 ?Óh)
-   (#x803d ?¯Ô)
-   (#x803e ?Óg)
-   (#x803f ?¯Õ)
-   (#x8043 ?×C)
-   (#x8046 ?²â)
-   (#x8047 ?×B)
-   (#x8048 ?×D)
-   (#x804a ?²á)
-   (#x804f ?ÛF)
-   (#x8050 ?ÛG)
-   (#x8051 ?ÛE)
-   (#x8052 ?µÃ)
-   (#x8056 ?¸t)
-   (#x8058 ?¸u)
-   (#x805a ?»E)
-   (#x805c ?ã£)
-   (#x805d ?ã¢)
-   (#x805e ?»D)
-   (#x8064 ?æû)
-   (#x8067 ?æü)
-   (#x806c ?êç)
-   (#x806f ?Ãp)
-   (#x8070 ?Ão)
-   (#x8071 ?Ãm)
-   (#x8072 ?Ãn)
-   (#x8073 ?Ãq)
-   (#x8075 ?ð|)
-   (#x8076 ?¿)
-   (#x8077 ?¾)
-   (#x8078 ?òÀ)
-   (#x8079 ?ô²)
-   (#x807d ?Å¥)
-   (#x807e ?Ť)
-   (#x807f ?¦Ö)
-   (#x8082 ?Ñû)
-   (#x8084 ?¸w)
-   (#x8085 ?µÂ)
-   (#x8086 ?¸v)
-   (#x8087 ?»F)
-   (#x8089 ?¦×)
-   (#x808a ?É©)
-   (#x808b ?¦Ø)
-   (#x808c ?¦Ù)
-   (#x808f ?Í«)
-   (#x8090 ?Ëv)
-   (#x8092 ?Ëw)
-   (#x8093 ?¨w)
-   (#x8095 ?Ët)
-   (#x8096 ?¨v)
-   (#x8098 ?¨y)
-   (#x8099 ?Ëu)
-   (#x809a ?¨{)
-   (#x809b ?¨z)
-   (#x809c ?Ëx)
-   (#x809d ?¨x)
-   (#x80a1 ?ªÑ)
-   (#x80a2 ?ªÃ)
-   (#x80a3 ?Í­)
-   (#x80a5 ?ªÎ)
-   (#x80a9 ?ªÓ)
-   (#x80aa ?ªÕ)
-   (#x80ab ?ªÒ)
-   (#x80ad ?Í°)
-   (#x80ae ?ͬ)
-   (#x80af ?ªÖ)
-   (#x80b1 ?ªÃ)
-   (#x80b2 ?¨|)
-   (#x80b4 ?ªÔ)
-   (#x80b5 ?ͯ)
-   (#x80b8 ?Í®)
-   (#x80ba ?ªÃ)
-   (#x80c2 ?Ã[)
-   (#x80c3 ?­G)
-   (#x80c4 ?­H)
-   (#x80c5 ?Ã])
-   (#x80c7 ?ÃW)
-   (#x80c8 ?ÃZ)
-   (#x80c9 ?Ãc)
-   (#x80ca ?Ãa)
-   (#x80cc ?­I)
-   (#x80cd ?Ãg)
-   (#x80ce ?­L)
-   (#x80cf ?Ãd)
-   (#x80d0 ?Ã\)
-   (#x80d1 ?ÃY)
-   (#x80d4 ?ÛI)
-   (#x80d5 ?Ãb)
-   (#x80d6 ?­D)
-   (#x80d7 ?Ãe)
-   (#x80d8 ?ÃV)
-   (#x80d9 ?Ã_)
-   (#x80da ?­F)
-   (#x80db ?­K)
-   (#x80dc ?Ã`)
-   (#x80dd ?­O)
-   (#x80de ?­M)
-   (#x80e0 ?ÃX)
-   (#x80e1 ?­J)
-   (#x80e3 ?Ã^)
-   (#x80e4 ?­N)
-   (#x80e5 ?­E)
-   (#x80e6 ?Ãf)
-   (#x80ed ?¯Ú)
-   (#x80ef ?¯ã)
-   (#x80f0 ?¯Ø)
-   (#x80f1 ?¯Ö)
-   (#x80f2 ?Ój)
-   (#x80f3 ?¯Þ)
-   (#x80f4 ?¯Û)
-   (#x80f5 ?Ól)
-   (#x80f8 ?¯Ã)
-   (#x80f9 ?Ók)
-   (#x80fa ?Ói)
-   (#x80fb ?Ón)
-   (#x80fc ?¯â)
-   (#x80fd ?¯à)
-   (#x80fe ?ÛH)
-   (#x8100 ?Óo)
-   (#x8101 ?Óm)
-   (#x8102 ?¯×)
-   (#x8105 ?¯Ù)
-   (#x8106 ?¯Ü)
-   (#x8108 ?¯ß)
-   (#x810a ?¯á)
-   (#x8115 ?×N)
-   (#x8116 ?²ä)
-   (#x8118 ?×E)
-   (#x8119 ?×G)
-   (#x811b ?×H)
-   (#x811d ?×P)
-   (#x811e ?×L)
-   (#x811f ?×J)
-   (#x8121 ?×M)
-   (#x8122 ?×Q)
-   (#x8123 ?²å)
-   (#x8124 ?²é)
-   (#x8125 ?×F)
-   (#x8127 ?×O)
-   (#x8129 ?²ç)
-   (#x812b ?²æ)
-   (#x812c ?×K)
-   (#x812d ?×I)
-   (#x812f ?²ã)
-   (#x8130 ?²è)
-   (#x8139 ?µÈ)
-   (#x813a ?ÛQ)
-   (#x813d ?ÛO)
-   (#x813e ?µÊ)
-   (#x8143 ?ÛJ)
-   (#x8144 ?ß¡)
-   (#x8146 ?µÉ)
-   (#x8147 ?ÛN)
-   (#x814a ?ÛK)
-   (#x814b ?µÅ)
-   (#x814c ?µË)
-   (#x814d ?ÛP)
-   (#x814e ?µÇ)
-   (#x814f ?ÛM)
-   (#x8150 ?»G)
-   (#x8151 ?µÆ)
-   (#x8152 ?ÛL)
-   (#x8153 ?µÌ)
-   (#x8154 ?µÄ)
-   (#x8155 ?µÃ)
-   (#x815b ?ßw)
-   (#x815c ?ßu)
-   (#x815e ?ß{)
-   (#x8160 ?ßs)
-   (#x8161 ?ߢ)
-   (#x8162 ?ßx)
-   (#x8164 ?ßr)
-   (#x8165 ?¸{)
-   (#x8166 ?¸£)
-   (#x8167 ?ß})
-   (#x8169 ?ßv)
-   (#x816b ?¸~)
-   (#x816e ?¸|)
-   (#x816f ?ß~)
-   (#x8170 ?¸y)
-   (#x8171 ?¸x)
-   (#x8172 ?ßy)
-   (#x8173 ?¸})
-   (#x8174 ?µÃ)
-   (#x8176 ?ß|)
-   (#x8177 ?ßt)
-   (#x8178 ?¸z)
-   (#x8179 ?¸¡)
-   (#x817a ?¸¢)
-   (#x817f ?»L)
-   (#x8180 ?»H)
-   (#x8182 ?»M)
-   (#x8183 ?ã¦)
-   (#x8186 ?ã¥)
-   (#x8187 ?ã§)
-   (#x8188 ?»J)
-   (#x8189 ?ã¤)
-   (#x818a ?»K)
-   (#x818b ?ãª)
-   (#x818c ?ã©)
-   (#x818d ?ã¨)
-   (#x818f ?»I)
-   (#x8195 ?çA)
-   (#x8197 ?çD)
-   (#x8198 ?½¨)
-   (#x8199 ?çC)
-   (#x819a ?½§)
-   (#x819b ?½£)
-   (#x819c ?½¤)
-   (#x819d ?½¥)
-   (#x819e ?ç@)
-   (#x819f ?æþ)
-   (#x81a0 ?½¦)
-   (#x81a2 ?çB)
-   (#x81a3 ?æý)
-   (#x81a6 ?êé)
-   (#x81a7 ?êó)
-   (#x81a8 ?¿±)
-   (#x81a9 ?¿°)
-   (#x81ab ?êí)
-   (#x81ac ?êï)
-   (#x81ae ?êê)
-   (#x81b0 ?êî)
-   (#x81b1 ?êè)
-   (#x81b2 ?êñ)
-   (#x81b3 ?¿¯)
-   (#x81b4 ?êð)
-   (#x81b5 ?êì)
-   (#x81b7 ?êò)
-   (#x81b9 ?êë)
-   (#x81ba ?Ãt)
-   (#x81bb ?íè)
-   (#x81bc ?íî)
-   (#x81bd ?Ãx)
-   (#x81be ?Ãz)
-   (#x81bf ?Ãw)
-   (#x81c0 ?Ãv)
-   (#x81c2 ?Ãu)
-   (#x81c3 ?Ãs)
-   (#x81c4 ?íé)
-   (#x81c5 ?íì)
-   (#x81c6 ?Ãr)
-   (#x81c7 ?íí)
-   (#x81c9 ?Ãy)
-   (#x81ca ?íë)
-   (#x81cc ?íê)
-   (#x81cd ?ÂÀ)
-   (#x81cf ?ÂÃ)
-   (#x81d0 ?ð¡)
-   (#x81d1 ?ð})
-   (#x81d2 ?ð~)
-   (#x81d5 ?òÂ)
-   (#x81d7 ?òÃ)
-   (#x81d8 ?þ)
-   (#x81d9 ?ô´)
-   (#x81da ?Ĥ)
-   (#x81db ?ô³)
-   (#x81dd ?õð)
-   (#x81de ?÷E)
-   (#x81df ?Ŧ)
-   (#x81e0 ?ùC)
-   (#x81e1 ?ùD)
-   (#x81e2 ?ÅØ)
-   (#x81e3 ?¦Ú)
-   (#x81e5 ?ª×)
-   (#x81e6 ?ÛR)
-   (#x81e7 ?»N)
-   (#x81e8 ?Ã{)
-   (#x81e9 ?íï)
-   (#x81ea ?¦Û)
-   (#x81ec ?¯å)
-   (#x81ed ?¯ä)
-   (#x81ee ?ÛS)
-   (#x81f2 ?êô)
-   (#x81f3 ?¦Ü)
-   (#x81f4 ?­P)
-   (#x81f7 ?ÛT)
-   (#x81f8 ?ÛU)
-   (#x81f9 ?ÛV)
-   (#x81fa ?»O)
-   (#x81fb ?¿²)
-   (#x81fc ?¦Ã)
-   (#x81fe ?ªØ)
-   (#x81ff ?Ãh)
-   (#x8200 ?¯æ)
-   (#x8201 ?Óp)
-   (#x8202 ?²ê)
-   (#x8204 ?ÛW)
-   (#x8205 ?¸¤)
-   (#x8207 ?»P)
-   (#x8208 ?¿³)
-   (#x8209 ?Ã|)
-   (#x820a ?ÂÂ)
-   (#x820b ?ôµ)
-   (#x820c ?¦Þ)
-   (#x820d ?ªÙ)
-   (#x8210 ?¯ç)
-   (#x8211 ?×R)
-   (#x8212 ?µÎ)
-   (#x8214 ?»Q)
-   (#x8215 ?ã«)
-   (#x8216 ?çE)
-   (#x821b ?¦ß)
-   (#x821c ?µÃ)
-   (#x821d ?ߣ)
-   (#x821e ?»R)
-   (#x821f ?¦à)
-   (#x8220 ?ͱ)
-   (#x8221 ?Ãi)
-   (#x8222 ?­Q)
-   (#x8225 ?Ór)
-   (#x8228 ?¯ê)
-   (#x822a ?¯è)
-   (#x822b ?¯é)
-   (#x822c ?¯ë)
-   (#x822f ?Óq)
-   (#x8232 ?×W)
-   (#x8233 ?×T)
-   (#x8234 ?×V)
-   (#x8235 ?²ë)
-   (#x8236 ?²í)
-   (#x8237 ?²ì)
-   (#x8238 ?×S)
-   (#x8239 ?²î)
-   (#x823a ?×U)
-   (#x823c ?ÛX)
-   (#x823d ?ÛY)
-   (#x823f ?ÛZ)
-   (#x8240 ?ߦ)
-   (#x8242 ?ߧ)
-   (#x8244 ?ߥ)
-   (#x8245 ?ߨ)
-   (#x8247 ?¸¥)
-   (#x8249 ?ߤ)
-   (#x824b ?»S)
-   (#x824e ?çJ)
-   (#x824f ?çF)
-   (#x8250 ?çI)
-   (#x8251 ?çK)
-   (#x8252 ?çH)
-   (#x8253 ?çG)
-   (#x8255 ?êõ)
-   (#x8256 ?êö)
-   (#x8257 ?ê÷)
-   (#x8258 ?¿´)
-   (#x8259 ?¿µ)
-   (#x825a ?íñ)
-   (#x825b ?íð)
-   (#x825c ?íò)
-   (#x825e ?ð£)
-   (#x825f ?ð¢)
-   (#x8261 ?òÄ)
-   (#x8263 ?òÅ)
-   (#x8264 ?òÃ)
-   (#x8266 ?Ä¥)
-   (#x8268 ?ô¶)
-   (#x8269 ?ô·)
-   (#x826b ?÷F)
-   (#x826c ?֕)
-   (#x826d ?ø»)
-   (#x826e ?¦á)
-   (#x826f ?¨})
-   (#x8271 ?Ã})
-   (#x8272 ?¦â)
-   (#x8274 ?×X)
-   (#x8275 ?Û[)
-   (#x8277 ?ÆA)
-   (#x8278 ?ÊJ)
-   (#x827c ?ÊK)
-   (#x827d ?ÊM)
-   (#x827e ?¦ã)
-   (#x827f ?ÊN)
-   (#x8280 ?ÊL)
-   (#x8283 ?Ë¢)
-   (#x8284 ?Ë£)
-   (#x8285 ?Ë{)
-   (#x828a ?Ë¡)
-   (#x828b ?¨¡)
-   (#x828d ?¨¢)
-   (#x828e ?Ë|)
-   (#x828f ?Ëz)
-   (#x8290 ?Ëy)
-   (#x8291 ?Ë})
-   (#x8292 ?¨~)
-   (#x8293 ?Ë~)
-   (#x8294 ?Ãj)
-   (#x8298 ?Ͷ)
-   (#x8299 ?ªÜ)
-   (#x829a ?͵)
-   (#x829b ?Í·)
-   (#x829d ?ªÛ)
-   (#x829e ?ͼ)
-   (#x829f ?ªß)
-   (#x82a0 ?Ͳ)
-   (#x82a1 ?ÃÀ)
-   (#x82a2 ?ÃÆ)
-   (#x82a3 ?ªæ)
-   (#x82a4 ?ÃÃ)
-   (#x82a5 ?ªã)
-   (#x82a7 ?͹)
-   (#x82a8 ?Í¿)
-   (#x82a9 ?ÃÃ)
-   (#x82ab ?Í´)
-   (#x82ac ?ªâ)
-   (#x82ad ?ªÃ)
-   (#x82ae ?ͺ)
-   (#x82af ?ªä)
-   (#x82b0 ?ªç)
-   (#x82b1 ?ªá)
-   (#x82b3 ?ªÚ)
-   (#x82b4 ?;)
-   (#x82b5 ?͸)
-   (#x82b6 ?ÃÃ…)
-   (#x82b7 ?ªé)
-   (#x82b8 ?ªå)
-   (#x82b9 ?ªà)
-   (#x82ba ?ͽ)
-   (#x82bb ?¯ì)
-   (#x82bc ?Í»)
-   (#x82bd ?ªÞ)
-   (#x82be ?ªè)
-   (#x82c0 ?ͳ)
-   (#x82c2 ?ÃÂ)
-   (#x82c3 ?ÃÄ)
-   (#x82d1 ?­b)
-   (#x82d2 ?­\)
-   (#x82d3 ?­d)
-   (#x82d4 ?­a)
-   (#x82d5 ?Ãq)
-   (#x82d6 ?Ãt)
-   (#x82d7 ?­])
-   (#x82d9 ?Ãk)
-   (#x82db ?­V)
-   (#x82dc ?­`)
-   (#x82de ?­c)
-   (#x82df ?­e)
-   (#x82e0 ?Т)
-   (#x82e1 ?Ãw)
-   (#x82e3 ?­U)
-   (#x82e4 ?С)
-   (#x82e5 ?­Y)
-   (#x82e6 ?­W)
-   (#x82e7 ?­R)
-   (#x82e8 ?Ão)
-   (#x82ea ?Ã~)
-   (#x82eb ?Ãs)
-   (#x82ec ?Ãv)
-   (#x82ed ?Ð¥)
-   (#x82ef ?­f)
-   (#x82f0 ?Ã})
-   (#x82f1 ?­^)
-   (#x82f2 ?Ãx)
-   (#x82f3 ?Ф)
-   (#x82f4 ?Ãu)
-   (#x82f5 ?Ãy)
-   (#x82f6 ?Ã|)
-   (#x82f9 ?Ãm)
-   (#x82fa ?У)
-   (#x82fb ?Ã{)
-   (#x82fe ?Ãl)
-   (#x8300 ?Ãp)
-   (#x8301 ?­_)
-   (#x8302 ?­Z)
-   (#x8303 ?­S)
-   (#x8304 ?­X)
-   (#x8305 ?­T)
-   (#x8306 ?­g)
-   (#x8307 ?Ãn)
-   (#x8308 ?Ó¥)
-   (#x8309 ?­[)
-   (#x830c ?Ãz)
-   (#x830d ?ÃŽA)
-   (#x8316 ?Ó¨)
-   (#x8317 ?¯ú)
-   (#x8319 ?Óv)
-   (#x831b ?Ó£)
-   (#x831c ?Ó})
-   (#x831e ?Ó²)
-   (#x8320 ?Óª)
-   (#x8322 ?Ó~)
-   (#x8324 ?Ó©)
-   (#x8325 ?Óx)
-   (#x8326 ?Ó|)
-   (#x8327 ?Óµ)
-   (#x8328 ?¯ý)
-   (#x8329 ?Ó­)
-   (#x832a ?Ó¤)
-   (#x832b ?¯í)
-   (#x832c ?Ó³)
-   (#x832d ?Ót)
-   (#x832f ?Ó¬)
-   (#x8331 ?¯ü)
-   (#x8332 ?¯÷)
-   (#x8333 ?Ós)
-   (#x8334 ?¯õ)
-   (#x8335 ?¯ô)
-   (#x8336 ?¯ù)
-   (#x8337 ?Ó«)
-   (#x8338 ?¯ñ)
-   (#x8339 ?¯ø)
-   (#x833a ?Ãr)
-   (#x833b ?Û\)
-   (#x833c ?Ó¦)
-   (#x833f ?Óz)
-   (#x8340 ?¯û)
-   (#x8341 ?Ó{)
-   (#x8342 ?Ó¡)
-   (#x8343 ?¯þ)
-   (#x8344 ?Óu)
-   (#x8345 ?Ó¯)
-   (#x8347 ?Ó®)
-   (#x8348 ?Ó¶)
-   (#x8349 ?¯ó)
-   (#x834a ?¯ð)
-   (#x834b ?Ó´)
-   (#x834c ?Ó°)
-   (#x834d ?Ó§)
-   (#x834e ?Ó¢)
-   (#x834f ?¯ö)
-   (#x8350 ?¯ò)
-   (#x8351 ?Ów)
-   (#x8352 ?¯î)
-   (#x8353 ?Ó±)
-   (#x8354 ?¯ï)
-   (#x8356 ?Óy)
-   (#x8373 ?×^)
-   (#x8374 ?×`)
-   (#x8375 ?×e)
-   (#x8376 ?×y)
-   (#x8377 ?²ü)
-   (#x8378 ?²ò)
-   (#x837a ?×])
-   (#x837b ?²ý)
-   (#x837c ?²þ)
-   (#x837d ?×h)
-   (#x837e ?×o)
-   (#x837f ?×u)
-   (#x8381 ?×b)
-   (#x8383 ?×i)
-   (#x8386 ?³@)
-   (#x8387 ?×w)
-   (#x8388 ?×r)
-   (#x8389 ?²ú)
-   (#x838a ?²ø)
-   (#x838b ?×n)
-   (#x838c ?×j)
-   (#x838d ?×\)
-   (#x838e ?²ï)
-   (#x838f ?×a)
-   (#x8390 ?×Y)
-   (#x8392 ?²÷)
-   (#x8393 ?²ù)
-   (#x8394 ?×f)
-   (#x8395 ?×c)
-   (#x8396 ?²ô)
-   (#x8397 ?×s)
-   (#x8398 ?²ñ)
-   (#x8399 ?×d)
-   (#x839a ?×z)
-   (#x839b ?×l)
-   (#x839d ?×k)
-   (#x839e ?²ð)
-   (#x83a0 ?²û)
-   (#x83a2 ?²ó)
-   (#x83a3 ?×Z)
-   (#x83a4 ?×_)
-   (#x83a5 ?×p)
-   (#x83a6 ?×v)
-   (#x83a7 ?³A)
-   (#x83a8 ?×[)
-   (#x83a9 ?×g)
-   (#x83aa ?×m)
-   (#x83ab ?²ö)
-   (#x83ae ?×x)
-   (#x83af ?×q)
-   (#x83b0 ?×t)
-   (#x83bd ?²õ)
-   (#x83bf ?Ûl)
-   (#x83c0 ?Û`)
-   (#x83c1 ?µ×)
-   (#x83c2 ?Û})
-   (#x83c3 ?Û§)
-   (#x83c4 ?Ûª)
-   (#x83c5 ?µÕ)
-   (#x83c6 ?Ûh)
-   (#x83c7 ?Û£)
-   (#x83c8 ?Ûi)
-   (#x83c9 ?Ûw)
-   (#x83ca ?µâ)
-   (#x83cb ?Ûs)
-   (#x83cc ?µß)
-   (#x83ce ?Ût)
-   (#x83cf ?Û])
-   (#x83d1 ?Û¤)
-   (#x83d4 ?µè)
-   (#x83d5 ?Û¡)
-   (#x83d6 ?Ûu)
-   (#x83d7 ?Û¬)
-   (#x83d8 ?Ûp)
-   (#x83d9 ?ßÈ)
-   (#x83db ?Û¯)
-   (#x83dc ?µæ)
-   (#x83dd ?Ûn)
-   (#x83de ?Ûz)
-   (#x83df ?µé)
-   (#x83e0 ?µÔ)
-   (#x83e1 ?Ûr)
-   (#x83e2 ?Û­)
-   (#x83e3 ?Ûk)
-   (#x83e4 ?Ûd)
-   (#x83e5 ?Ûo)
-   (#x83e7 ?Ûc)
-   (#x83e8 ?Ûa)
-   (#x83e9 ?µÃ)
-   (#x83ea ?Û¥)
-   (#x83eb ?Ûj)
-   (#x83ec ?Û¨)
-   (#x83ee ?Û©)
-   (#x83ef ?µØ)
-   (#x83f0 ?µÃ)
-   (#x83f1 ?µÙ)
-   (#x83f2 ?µá)
-   (#x83f3 ?Û~)
-   (#x83f4 ?µÚ)
-   (#x83f5 ?Ûv)
-   (#x83f6 ?Ûf)
-   (#x83f8 ?µÒ)
-   (#x83f9 ?Û^)
-   (#x83fa ?Û¢)
-   (#x83fb ?Û«)
-   (#x83fc ?Ûe)
-   (#x83fd ?µà)
-   (#x83fe ?Û°)
-   (#x83ff ?Ûq)
-   (#x8401 ?Ûm)
-   (#x8403 ?µÑ)
-   (#x8404 ?µå)
-   (#x8406 ?Û|)
-   (#x8407 ?µç)
-   (#x8409 ?Ûx)
-   (#x840a ?µÜ)
-   (#x840b ?µÖ)
-   (#x840c ?µÞ)
-   (#x840d ?µÓ)
-   (#x840e ?µä)
-   (#x840f ?Ûy)
-   (#x8410 ?Ûg)
-   (#x8411 ?Û{)
-   (#x8412 ?Ûb)
-   (#x8413 ?Û¦)
-   (#x841b ?Û®)
-   (#x8423 ?Û_)
-   (#x8429 ?ßÇ)
-   (#x842b ?ßÃ)
-   (#x842c ?¸U)
-   (#x842d ?ßÌ)
-   (#x842f ?ßÊ)
-   (#x8430 ?ßµ)
-   (#x8431 ?¸©)
-   (#x8432 ?ßÅ)
-   (#x8433 ?ßÙ)
-   (#x8434 ?ßÃ)
-   (#x8435 ?¸±)
-   (#x8436 ?ßØ)
-   (#x8437 ?ß¿)
-   (#x8438 ?µã)
-   (#x8439 ?ßÃ)
-   (#x843a ?ßÀ)
-   (#x843b ?ßÖ)
-   (#x843c ?¸°)
-   (#x843d ?¸¨)
-   (#x843f ?ߪ)
-   (#x8440 ?ß²)
-   (#x8442 ?ßË)
-   (#x8443 ?ßÃ)
-   (#x8444 ?ßÜ)
-   (#x8445 ?ßÆ)
-   (#x8446 ?¸¶)
-   (#x8447 ?ß×)
-   (#x8449 ?¸­)
-   (#x844b ?ßÉ)
-   (#x844c ?ßÑ)
-   (#x844d ?߶)
-   (#x844e ?ßÃ)
-   (#x8450 ?ßá)
-   (#x8451 ?ß±)
-   (#x8452 ?ßÒ)
-   (#x8454 ?ßß)
-   (#x8456 ?ß«)
-   (#x8457 ?µÛ)
-   (#x8459 ?ß¹)
-   (#x845a ?߸)
-   (#x845b ?¸¯)
-   (#x845d ?ß¼)
-   (#x845e ?ß¾)
-   (#x845f ?ßÃ)
-   (#x8460 ?ßÞ)
-   (#x8461 ?¸²)
-   (#x8463 ?¸³)
-   (#x8465 ?ß°)
-   (#x8466 ?¸«)
-   (#x8467 ?ß´)
-   (#x8468 ?ßÚ)
-   (#x8469 ?¸´)
-   (#x846b ?¸¬)
-   (#x846c ?¸®)
-   (#x846d ?¸µ)
-   (#x846e ?ßà)
-   (#x846f ?ßÓ)
-   (#x8470 ?ßÎ)
-   (#x8473 ?ß»)
-   (#x8474 ?ߺ)
-   (#x8475 ?¸ª)
-   (#x8476 ?߬)
-   (#x8477 ?¸§)
-   (#x8478 ?ßÄ)
-   (#x8479 ?ß­)
-   (#x847a ?ßÂ)
-   (#x847d ?ß·)
-   (#x847e ?ßÛ)
-   (#x8482 ?¸¦)
-   (#x8486 ?ß³)
-   (#x848d ?߯)
-   (#x848e ?ßÕ)
-   (#x848f ?ß®)
-   (#x8490 ?»`)
-   (#x8491 ?ãÓ)
-   (#x8494 ?ãÂ)
-   (#x8497 ?ã¬)
-   (#x8498 ?ãÊ)
-   (#x8499 ?»X)
-   (#x849a ?ã»)
-   (#x849b ?ãÅ)
-   (#x849c ?»[)
-   (#x849d ?ã¾)
-   (#x849e ?»Y)
-   (#x849f ?ã¯)
-   (#x84a0 ?ãÃ)
-   (#x84a1 ?ã®)
-   (#x84a2 ?ãÃ)
-   (#x84a4 ?ã­)
-   (#x84a7 ?ã¿)
-   (#x84a8 ?ãÈ)
-   (#x84a9 ?ãÆ)
-   (#x84aa ?ãº)
-   (#x84ab ?ãµ)
-   (#x84ac ?ã³)
-   (#x84ae ?ã´)
-   (#x84af ?ãÇ)
-   (#x84b0 ?ãÒ)
-   (#x84b1 ?ã¼)
-   (#x84b2 ?»Z)
-   (#x84b4 ?ã·)
-   (#x84b6 ?ãË)
-   (#x84b8 ?»])
-   (#x84b9 ?ã¶)
-   (#x84ba ?ã°)
-   (#x84bb ?ãÀ)
-   (#x84bc ?»a)
-   (#x84bf ?»U)
-   (#x84c0 ?»^)
-   (#x84c1 ?ã¸)
-   (#x84c2 ?ã²)
-   (#x84c4 ?»W)
-   (#x84c5 ?ßÔ)
-   (#x84c6 ?»V)
-   (#x84c7 ?ãÃ)
-   (#x84c9 ?»T)
-   (#x84ca ?»c)
-   (#x84cb ?»\)
-   (#x84cc ?ãÄ)
-   (#x84cd ?ã¹)
-   (#x84ce ?ã±)
-   (#x84cf ?ãÌ)
-   (#x84d0 ?ã½)
-   (#x84d1 ?»b)
-   (#x84d2 ?ãÃ)
-   (#x84d3 ?»_)
-   (#x84d4 ?ãÃ)
-   (#x84d6 ?ãÉ)
-   (#x84d7 ?ãÎ)
-   (#x84db ?ãÑ)
-   (#x84e7 ?çs)
-   (#x84e8 ?çt)
-   (#x84e9 ?çg)
-   (#x84ea ?çf)
-   (#x84eb ?çb)
-   (#x84ec ?½´)
-   (#x84ee ?½¬)
-   (#x84ef ?çv)
-   (#x84f0 ?çu)
-   (#x84f1 ?ß©)
-   (#x84f2 ?ç_)
-   (#x84f3 ?çc)
-   (#x84f4 ?ç])
-   (#x84f6 ?çp)
-   (#x84f7 ?ça)
-   (#x84f9 ?çw)
-   (#x84fa ?çZ)
-   (#x84fb ?çX)
-   (#x84fc ?çd)
-   (#x84fd ?çn)
-   (#x84fe ?çi)
-   (#x84ff ?½¶)
-   (#x8500 ?çO)
-   (#x8502 ?çm)
-   (#x8506 ?½·)
-   (#x8507 ?ß½)
-   (#x8508 ?ç[)
-   (#x8509 ?çR)
-   (#x850a ?çU)
-   (#x850b ?ç{)
-   (#x850c ?ç\)
-   (#x850d ?çS)
-   (#x850e ?çQ)
-   (#x850f ?çN)
-   (#x8511 ?½°)
-   (#x8512 ?çe)
-   (#x8513 ?½¯)
-   (#x8514 ?½³)
-   (#x8515 ?ç`)
-   (#x8516 ?çh)
-   (#x8517 ?½©)
-   (#x8518 ?çx)
-   (#x8519 ?ç|)
-   (#x851a ?½«)
-   (#x851c ?çW)
-   (#x851d ?çk)
-   (#x851e ?ço)
-   (#x851f ?çT)
-   (#x8520 ?çy)
-   (#x8521 ?½²)
-   (#x8523 ?½±)
-   (#x8524 ?çL)
-   (#x8525 ?½µ)
-   (#x8526 ?çr)
-   (#x8527 ?çV)
-   (#x8528 ?çj)
-   (#x8529 ?çP)
-   (#x852a ?ç^)
-   (#x852b ?çY)
-   (#x852c ?½­)
-   (#x852d ?½®)
-   (#x852e ?çl)
-   (#x852f ?ç})
-   (#x8530 ?çz)
-   (#x8531 ?çq)
-   (#x853b ?çM)
-   (#x853d ?½ª)
-   (#x853e ?ëI)
-   (#x8540 ?ë@)
-   (#x8541 ?ëC)
-   (#x8543 ?¿»)
-   (#x8544 ?ëE)
-   (#x8545 ?êù)
-   (#x8546 ?ëA)
-   (#x8547 ?ëG)
-   (#x8548 ?¿¸)
-   (#x8549 ?¿¼)
-   (#x854a ?¿¶)
-   (#x854d ?êû)
-   (#x854e ?ëL)
-   (#x8551 ?ëF)
-   (#x8553 ?êü)
-   (#x8554 ?ëU)
-   (#x8555 ?ëO)
-   (#x8556 ?êø)
-   (#x8557 ?îF)
-   (#x8558 ?êþ)
-   (#x8559 ?¿·)
-   (#x855b ?ëJ)
-   (#x855d ?ëT)
-   (#x855e ?¿¿)
-   (#x8560 ?ëQ)
-   (#x8561 ?êý)
-   (#x8562 ?ëD)
-   (#x8563 ?ëH)
-   (#x8564 ?ëB)
-   (#x8565 ?ëV)
-   (#x8566 ?ëS)
-   (#x8567 ?ëP)
-   (#x8568 ?¿¹)
-   (#x8569 ?¿º)
-   (#x856a ?¿¾)
-   (#x856b ?êú)
-   (#x856c ?ëW)
-   (#x856d ?¿½)
-   (#x856e ?ëM)
-   (#x8571 ?ëK)
-   (#x8575 ?ëN)
-   (#x8576 ?îS)
-   (#x8577 ?î@)
-   (#x8578 ?îE)
-   (#x8579 ?îR)
-   (#x857a ?îD)
-   (#x857b ?íû)
-   (#x857c ?îA)
-   (#x857e ?â)
-   (#x8580 ?íô)
-   (#x8581 ?îM)
-   (#x8582 ?îO)
-   (#x8583 ?íó)
-   (#x8584 ?á)
-   (#x8585 ?îQ)
-   (#x8586 ?îI)
-   (#x8587 ?è)
-   (#x8588 ?îP)
-   (#x8589 ?îB)
-   (#x858a ?ê)
-   (#x858b ?íù)
-   (#x858c ?ëR)
-   (#x858d ?îJ)
-   (#x858e ?îG)
-   (#x858f ?íõ)
-   (#x8590 ?îU)
-   (#x8591 ?ä)
-   (#x8594 ?ÃÂ¥)
-   (#x8595 ?í÷)
-   (#x8596 ?îH)
-   (#x8598 ?îT)
-   (#x8599 ?îK)
-   (#x859a ?íý)
-   (#x859b ?ç)
-   (#x859c ?ã)
-   (#x859d ?îL)
-   (#x859e ?íþ)
-   (#x859f ?îV)
-   (#x85a0 ?íø)
-   (#x85a1 ?îC)
-   (#x85a2 ?îN)
-   (#x85a3 ?íú)
-   (#x85a4 ?íü)
-   (#x85a6 ?ÂË)
-   (#x85a7 ?íö)
-   (#x85a8 ?é)
-   (#x85a9 ?ÂÄ)
-   (#x85aa ?Ã~)
-   (#x85af ?æ)
-   (#x85b0 ?ÂÈ)
-   (#x85b1 ?ð³)
-   (#x85b3 ?ð©)
-   (#x85b4 ?ð¤)
-   (#x85b5 ?ðª)
-   (#x85b6 ?ð´)
-   (#x85b7 ?ð¸)
-   (#x85b8 ?ð·)
-   (#x85b9 ?ÂÊ)
-   (#x85ba ?ÂÉ)
-   (#x85bd ?ð«)
-   (#x85be ?ð¹)
-   (#x85bf ?ð®)
-   (#x85c0 ?ð¦)
-   (#x85c2 ?ð¨)
-   (#x85c3 ?ð§)
-   (#x85c4 ?ð­)
-   (#x85c5 ?ð²)
-   (#x85c6 ?ð¥)
-   (#x85c7 ?ð¬)
-   (#x85c8 ?ð±)
-   (#x85c9 ?ÂÇ)
-   (#x85cb ?ð¯)
-   (#x85cd ?ÂÅ)
-   (#x85ce ?ð°)
-   (#x85cf ?ÂÃ)
-   (#x85d0 ?ÂÆ)
-   (#x85d1 ?òÕ)
-   (#x85d2 ?ðµ)
-   (#x85d5 ?ÃÂ)
-   (#x85d7 ?òÃ)
-   (#x85d8 ?òÑ)
-   (#x85d9 ?òÉ)
-   (#x85da ?òÌ)
-   (#x85dc ?òÔ)
-   (#x85dd ?ÃÀ)
-   (#x85de ?òÙ)
-   (#x85df ?òÒ)
-   (#x85e1 ?òÊ)
-   (#x85e2 ?òÚ)
-   (#x85e3 ?òÓ)
-   (#x85e4 ?ÃÃ)
-   (#x85e5 ?ÃÄ)
-   (#x85e6 ?ò×)
-   (#x85e8 ?òË)
-   (#x85e9 ?ÿ)
-   (#x85ea ?ÃÃ)
-   (#x85eb ?òÆ)
-   (#x85ec ?òÎ)
-   (#x85ed ?òÈ)
-   (#x85ef ?òØ)
-   (#x85f0 ?òÖ)
-   (#x85f1 ?òÇ)
-   (#x85f2 ?òÃ)
-   (#x85f6 ?ô¾)
-   (#x85f7 ?ÃÅ)
-   (#x85f8 ?òÃ)
-   (#x85f9 ?ħ)
-   (#x85fa ?Ä©)
-   (#x85fb ?Ħ)
-   (#x85fd ?ôÃ)
-   (#x85fe ?ô»)
-   (#x85ff ?ô¹)
-   (#x8600 ?ô½)
-   (#x8601 ?ôº)
-   (#x8604 ?ô¿)
-   (#x8605 ?ôÃ)
-   (#x8606 ?Ī)
-   (#x8607 ?Ĭ)
-   (#x8609 ?ôÀ)
-   (#x860a ?Ä­)
-   (#x860b ?Ä«)
-   (#x860c ?ôÂ)
-   (#x8611 ?Ĩ)
-   (#x8617 ?Äô)
-   (#x8618 ?õñ)
-   (#x8619 ?õ÷)
-   (#x861a ?Äö)
-   (#x861b ?ô¼)
-   (#x861c ?õö)
-   (#x861e ?õý)
-   (#x861f ?õô)
-   (#x8620 ?õû)
-   (#x8621 ?õú)
-   (#x8622 ?ô¸)
-   (#x8623 ?õõ)
-   (#x8624 ?ð¶)
-   (#x8625 ?õþ)
-   (#x8626 ?õó)
-   (#x8627 ?õø)
-   (#x8629 ?õü)
-   (#x862a ?õò)
-   (#x862c ?÷J)
-   (#x862d ?Äõ)
-   (#x862e ?õù)
-   (#x8631 ?÷ô)
-   (#x8632 ?÷K)
-   (#x8633 ?÷I)
-   (#x8634 ?÷G)
-   (#x8635 ?÷H)
-   (#x8636 ?÷L)
-   (#x8638 ?ÅÙ)
-   (#x8639 ?÷ò)
-   (#x863a ?÷ð)
-   (#x863b ?÷õ)
-   (#x863c ?÷ó)
-   (#x863e ?÷ö)
-   (#x863f ?ÅÚ)
-   (#x8640 ?֖)
-   (#x8643 ?ø¼)
-   (#x8646 ?ùE)
-   (#x8647 ?ùF)
-   (#x8648 ?ùG)
-   (#x864b ?ùÇ)
-   (#x864c ?ù½)
-   (#x864d ?ÊO)
-   (#x864e ?ªê)
-   (#x8650 ?­h)
-   (#x8652 ?Ó¸)
-   (#x8653 ?Ó·)
-   (#x8654 ?°@)
-   (#x8655 ?³B)
-   (#x8656 ?×|)
-   (#x8659 ?×{)
-   (#x865b ?µê)
-   (#x865c ?¸¸)
-   (#x865e ?¸·)
-   (#x865f ?¸¹)
-   (#x8661 ?ãÔ)
-   (#x8662 ?ç~)
-   (#x8663 ?ëX)
-   (#x8664 ?ëZ)
-   (#x8665 ?ëY)
-   (#x8667 ?ë)
-   (#x8668 ?îW)
-   (#x8669 ?ðº)
-   (#x866a ?ù¥)
-   (#x866b ?¦ä)
-   (#x866d ?ÃÉ)
-   (#x866e ?ÃÊ)
-   (#x866f ?ÃÈ)
-   (#x8670 ?ÃÇ)
-   (#x8671 ?ªë)
-   (#x8673 ?Щ)
-   (#x8674 ?Ч)
-   (#x8677 ?Ц)
-   (#x8679 ?­i)
-   (#x867a ?­k)
-   (#x867b ?­j)
-   (#x867c ?Ш)
-   (#x8685 ?ÓÄ)
-   (#x8686 ?ÓÃ)
-   (#x8687 ?Ó¿)
-   (#x868a ?°A)
-   (#x868b ?ÓÂ)
-   (#x868c ?°F)
-   (#x868d ?Ó¼)
-   (#x868e ?ÓË)
-   (#x8690 ?ÓÃ)
-   (#x8691 ?Ó½)
-   (#x8693 ?°C)
-   (#x8694 ?ÓÎ)
-   (#x8695 ?ÓÉ)
-   (#x8696 ?Ó»)
-   (#x8697 ?ÓÀ)
-   (#x8698 ?ÓÊ)
-   (#x8699 ?ÓÆ)
-   (#x869a ?ÓÃ)
-   (#x869c ?°H)
-   (#x869d ?ÓÌ)
-   (#x869e ?Ó¾)
-   (#x86a1 ?ÓÇ)
-   (#x86a2 ?Ó¹)
-   (#x86a3 ?°G)
-   (#x86a4 ?°D)
-   (#x86a5 ?ÓÅ)
-   (#x86a7 ?ÓÈ)
-   (#x86a8 ?Óº)
-   (#x86a9 ?°E)
-   (#x86aa ?°B)
-   (#x86af ?³L)
-   (#x86b0 ?×¥)
-   (#x86b1 ?³K)
-   (#x86b3 ?ר)
-   (#x86b4 ?׫)
-   (#x86b5 ?³H)
-   (#x86b6 ?³F)
-   (#x86b7 ?×~)
-   (#x86b8 ?ש)
-   (#x86b9 ?ק)
-   (#x86ba ?פ)
-   (#x86bb ?׬)
-   (#x86bc ?×­)
-   (#x86bd ?ׯ)
-   (#x86be ?×°)
-   (#x86bf ?×})
-   (#x86c0 ?³E)
-   (#x86c1 ?×¢)
-   (#x86c2 ?ס)
-   (#x86c3 ?×®)
-   (#x86c4 ?³G)
-   (#x86c5 ?×£)
-   (#x86c6 ?³I)
-   (#x86c7 ?³D)
-   (#x86c8 ?צ)
-   (#x86c9 ?³M)
-   (#x86cb ?³J)
-   (#x86cc ?ת)
-   (#x86d0 ?µñ)
-   (#x86d1 ?Û¿)
-   (#x86d3 ?Û´)
-   (#x86d4 ?µî)
-   (#x86d6 ?ßç)
-   (#x86d7 ?Û½)
-   (#x86d8 ?Û±)
-   (#x86d9 ?µì)
-   (#x86da ?Û¶)
-   (#x86db ?µï)
-   (#x86dc ?Ûº)
-   (#x86dd ?Û¸)
-   (#x86de ?µò)
-   (#x86df ?µë)
-   (#x86e2 ?Û²)
-   (#x86e3 ?Ûµ)
-   (#x86e4 ?µð)
-   (#x86e6 ?Û³)
-   (#x86e8 ?Û¾)
-   (#x86e9 ?Û¼)
-   (#x86ea ?Û·)
-   (#x86eb ?Û¹)
-   (#x86ec ?Û»)
-   (#x86ed ?µí)
-   (#x86f5 ?ßè)
-   (#x86f6 ?ßî)
-   (#x86f7 ?ßä)
-   (#x86f8 ?ßê)
-   (#x86f9 ?¸º)
-   (#x86fa ?ßæ)
-   (#x86fb ?¸À)
-   (#x86fe ?¸¿)
-   (#x8700 ?¸¾)
-   (#x8701 ?ßí)
-   (#x8702 ?¸Ã)
-   (#x8703 ?¸Â)
-   (#x8704 ?ßã)
-   (#x8705 ?ßð)
-   (#x8706 ?¸Ã)
-   (#x8707 ?¸½)
-   (#x8708 ?¸¼)
-   (#x8709 ?ßì)
-   (#x870a ?¸Ä)
-   (#x870b ?ßâ)
-   (#x870c ?ßå)
-   (#x870d ?ßï)
-   (#x870e ?ßë)
-   (#x8711 ?ãô)
-   (#x8712 ?ãé)
-   (#x8713 ?¸»)
-   (#x8718 ?»j)
-   (#x8719 ?ãÃ)
-   (#x871a ?ãò)
-   (#x871b ?ãÞ)
-   (#x871c ?»e)
-   (#x871e ?ãÛ)
-   (#x8720 ?ãä)
-   (#x8721 ?ãÜ)
-   (#x8722 ?»g)
-   (#x8723 ?ãÖ)
-   (#x8724 ?ãñ)
-   (#x8725 ?»h)
-   (#x8726 ?ãî)
-   (#x8727 ?ãï)
-   (#x8728 ?ã×)
-   (#x8729 ?»m)
-   (#x872a ?ãæ)
-   (#x872c ?ãà)
-   (#x872d ?ãç)
-   (#x872e ?ãÚ)
-   (#x8730 ?ãó)
-   (#x8731 ?ãë)
-   (#x8732 ?ãå)
-   (#x8733 ?ãÕ)
-   (#x8734 ?»i)
-   (#x8735 ?ãì)
-   (#x8737 ?»l)
-   (#x8738 ?ãð)
-   (#x873a ?ãê)
-   (#x873b ?»f)
-   (#x873c ?ãè)
-   (#x873e ?ãâ)
-   (#x873f ?»d)
-   (#x8740 ?ãÙ)
-   (#x8741 ?ãá)
-   (#x8742 ?ãí)
-   (#x8743 ?ãß)
-   (#x8746 ?ãã)
-   (#x874c ?½Ã)
-   (#x874d ?ßé)
-   (#x874e ?ç²)
-   (#x874f ?ç»)
-   (#x8750 ?ç±)
-   (#x8751 ?ç­)
-   (#x8752 ?çª)
-   (#x8753 ?½Â)
-   (#x8754 ?ç¨)
-   (#x8755 ?»k)
-   (#x8756 ?ç¡)
-   (#x8757 ?½À)
-   (#x8758 ?ç§)
-   (#x8759 ?½¿)
-   (#x875a ?ç¬)
-   (#x875b ?ç©)
-   (#x875c ?ç¹)
-   (#x875d ?ç´)
-   (#x875e ?ç®)
-   (#x875f ?ç³)
-   (#x8760 ?½»)
-   (#x8761 ?ç«)
-   (#x8762 ?ç¾)
-   (#x8763 ?ç¢)
-   (#x8764 ?ç£)
-   (#x8765 ?çº)
-   (#x8766 ?½¼)
-   (#x8767 ?ç¿)
-   (#x8768 ?½¾)
-   (#x8769 ?çÀ)
-   (#x876a ?ç°)
-   (#x876b ?ãØ)
-   (#x876c ?ç¶)
-   (#x876d ?ç¯)
-   (#x876e ?ç¸)
-   (#x876f ?çµ)
-   (#x8773 ?ç¦)
-   (#x8774 ?½¹)
-   (#x8775 ?ç½)
-   (#x8776 ?½º)
-   (#x8777 ?ç¤)
-   (#x8778 ?½½)
-   (#x8779 ?ëd)
-   (#x877a ?ç·)
-   (#x877b ?ç¼)
-   (#x8781 ?ëa)
-   (#x8782 ?½¸)
-   (#x8783 ?¿À)
-   (#x8784 ?ëk)
-   (#x8785 ?ëg)
-   (#x8787 ?ëe)
-   (#x8788 ?ë`)
-   (#x8789 ?ëo)
-   (#x878d ?¿Ä)
-   (#x878f ?ë\)
-   (#x8790 ?ëh)
-   (#x8791 ?ëi)
-   (#x8792 ?ë_)
-   (#x8793 ?ë^)
-   (#x8794 ?ël)
-   (#x8796 ?ëb)
-   (#x8797 ?ë])
-   (#x8798 ?ëc)
-   (#x879a ?ën)
-   (#x879b ?ë[)
-   (#x879c ?ëm)
-   (#x879d ?ëj)
-   (#x879e ?¿Â)
-   (#x879f ?¿Ã)
-   (#x87a2 ?¿Ã)
-   (#x87a3 ?ëf)
-   (#x87a4 ?ðË)
-   (#x87aa ?îY)
-   (#x87ab ?ñ)
-   (#x87ac ?î])
-   (#x87ad ?îZ)
-   (#x87ae ?îa)
-   (#x87af ?îg)
-   (#x87b0 ?î\)
-   (#x87b2 ?îp)
-   (#x87b3 ?î)
-   (#x87b4 ?îj)
-   (#x87b5 ?î_)
-   (#x87b6 ?îk)
-   (#x87b7 ?îf)
-   (#x87b8 ?îm)
-   (#x87b9 ?î^)
-   (#x87ba ?ó)
-   (#x87bb ?ò)
-   (#x87bc ?î`)
-   (#x87bd ?în)
-   (#x87be ?îX)
-   (#x87bf ?îl)
-   (#x87c0 ?ì)
-   (#x87c2 ?îd)
-   (#x87c3 ?îc)
-   (#x87c4 ?îh)
-   (#x87c5 ?î[)
-   (#x87c6 ?ð)
-   (#x87c8 ?ô)
-   (#x87c9 ?îb)
-   (#x87ca ?îi)
-   (#x87cb ?õ)
-   (#x87cc ?îe)
-   (#x87d1 ?í)
-   (#x87d2 ?ï)
-   (#x87d3 ?ðÇ)
-   (#x87d4 ?ðÅ)
-   (#x87d7 ?ðÌ)
-   (#x87d8 ?ðÉ)
-   (#x87d9 ?ðÃ)
-   (#x87db ?ð¾)
-   (#x87dc ?ðÆ)
-   (#x87dd ?ðÑ)
-   (#x87de ?îo)
-   (#x87df ?ðÂ)
-   (#x87e0 ?ÂÃ)
-   (#x87e1 ?ç¥)
-   (#x87e2 ?ð½)
-   (#x87e3 ?ðÊ)
-   (#x87e4 ?ðÄ)
-   (#x87e5 ?ðÃ)
-   (#x87e6 ?ð¼)
-   (#x87e7 ?ð»)
-   (#x87e8 ?ðÃ)
-   (#x87ea ?ðÀ)
-   (#x87eb ?ð¿)
-   (#x87ec ?ÂÃ)
-   (#x87ed ?ðÈ)
-   (#x87ef ?ÂÌ)
-   (#x87f2 ?ÂÎ)
-   (#x87f3 ?ðÃ)
-   (#x87f4 ?ðÃ)
-   (#x87f6 ?òÞ)
-   (#x87f7 ?òß)
-   (#x87f9 ?ÃÉ)
-   (#x87fa ?òÜ)
-   (#x87fb ?ÃÆ)
-   (#x87fc ?òä)
-   (#x87fe ?ÃÊ)
-   (#x87ff ?òæ)
-   (#x8800 ?òÛ)
-   (#x8801 ?ðÎ)
-   (#x8802 ?òè)
-   (#x8803 ?òÃ)
-   (#x8805 ?ÃÇ)
-   (#x8806 ?òã)
-   (#x8808 ?òå)
-   (#x8809 ?òà)
-   (#x880a ?òç)
-   (#x880b ?òâ)
-   (#x880c ?òá)
-   (#x880d ?ÃÈ)
-   (#x8810 ?ôÅ)
-   (#x8811 ?ôÆ)
-   (#x8813 ?ôÈ)
-   (#x8814 ?Ä®)
-   (#x8815 ?į)
-   (#x8816 ?ôÉ)
-   (#x8817 ?ôÇ)
-   (#x8819 ?ôÄ)
-   (#x881b ?öB)
-   (#x881c ?öE)
-   (#x881d ?öA)
-   (#x881f ?Äú)
-   (#x8820 ?öC)
-   (#x8821 ?Äù)
-   (#x8822 ?Äø)
-   (#x8823 ?Ä÷)
-   (#x8824 ?öD)
-   (#x8825 ?÷Q)
-   (#x8826 ?÷O)
-   (#x8828 ?÷N)
-   (#x8829 ?ö@)
-   (#x882a ?÷P)
-   (#x882b ?öF)
-   (#x882c ?÷M)
-   (#x882e ?÷ù)
-   (#x882f ?÷×)
-   (#x8830 ?÷÷)
-   (#x8831 ?ÅÛ)
-   (#x8832 ?÷ø)
-   (#x8833 ?÷ú)
-   (#x8835 ?ø¿)
-   (#x8836 ?Åú)
-   (#x8837 ?ø¾)
-   (#x8838 ?ø½)
-   (#x8839 ?Åû)
-   (#x883b ?ÆZ)
-   (#x883c ?ùn)
-   (#x883d ?ù§)
-   (#x883e ?ù¦)
-   (#x883f ?ù¨)
-   (#x8840 ?¦å)
-   (#x8841 ?Ъ)
-   (#x8843 ?ÓÃ)
-   (#x8844 ?ÓÃ)
-   (#x8848 ?ÛÀ)
-   (#x884a ?öG)
-   (#x884b ?øÀ)
-   (#x884c ?¦æ)
-   (#x884d ?­l)
-   (#x884e ?Ы)
-   (#x8852 ?×±)
-   (#x8853 ?³N)
-   (#x8855 ?ÛÂ)
-   (#x8856 ?ÛÃ)
-   (#x8857 ?µó)
-   (#x8859 ?¸Å)
-   (#x885a ?çÃ)
-   (#x885b ?½Ã)
-   (#x885d ?½Ä)
-   (#x8861 ?¿Å)
-   (#x8862 ?Åü)
-   (#x8863 ?¦ç)
-   (#x8867 ?Ь)
-   (#x8868 ?ªí)
-   (#x8869 ?Ю)
-   (#x886a ?Э)
-   (#x886b ?­m)
-   (#x886d ?ÓÑ)
-   (#x886f ?ÓØ)
-   (#x8870 ?°I)
-   (#x8871 ?ÓÖ)
-   (#x8872 ?ÓÔ)
-   (#x8874 ?ÓÛ)
-   (#x8875 ?ÓÒ)
-   (#x8876 ?ÓÓ)
-   (#x8877 ?°J)
-   (#x8879 ?°N)
-   (#x887c ?ÓÜ)
-   (#x887d ?°M)
-   (#x887e ?ÓÚ)
-   (#x887f ?Ó×)
-   (#x8880 ?ÓÕ)
-   (#x8881 ?°K)
-   (#x8882 ?°L)
-   (#x8883 ?ÓÙ)
-   (#x8888 ?³P)
-   (#x8889 ?ײ)
-   (#x888b ?³U)
-   (#x888c ?×Â)
-   (#x888d ?³T)
-   (#x888e ?×Ä)
-   (#x8891 ?׸)
-   (#x8892 ?³R)
-   (#x8893 ?×Ã)
-   (#x8895 ?׳)
-   (#x8896 ?³S)
-   (#x8897 ?׿)
-   (#x8898 ?×»)
-   (#x8899 ?×½)
-   (#x889a ?×·)
-   (#x889b ?×¾)
-   (#x889e ?³O)
-   (#x889f ?׺)
-   (#x88a1 ?×¹)
-   (#x88a2 ?×µ)
-   (#x88a4 ?×À)
-   (#x88a7 ?×¼)
-   (#x88a8 ?×´)
-   (#x88aa ?׶)
-   (#x88ab ?³Q)
-   (#x88ac ?×Ã)
-   (#x88b1 ?µö)
-   (#x88b2 ?ÛÃ)
-   (#x88b6 ?ÛÉ)
-   (#x88b7 ?ÛË)
-   (#x88b8 ?ÛÆ)
-   (#x88b9 ?ÛÅ)
-   (#x88ba ?ÛÃ)
-   (#x88bc ?ÛÊ)
-   (#x88bd ?ÛÌ)
-   (#x88be ?ÛÈ)
-   (#x88c0 ?ÛÇ)
-   (#x88c1 ?µô)
-   (#x88c2 ?µõ)
-   (#x88c9 ?ÛÃ)
-   (#x88ca ?¸Ã)
-   (#x88cb ?ßò)
-   (#x88cc ?ßø)
-   (#x88cd ?ßó)
-   (#x88ce ?ßô)
-   (#x88cf ?ùØ)
-   (#x88d0 ?ßù)
-   (#x88d2 ?¸Ã)
-   (#x88d4 ?¸Ç)
-   (#x88d5 ?¸Î)
-   (#x88d6 ?ßñ)
-   (#x88d7 ?ÛÄ)
-   (#x88d8 ?¸Ê)
-   (#x88d9 ?¸È)
-   (#x88da ?ß÷)
-   (#x88db ?ßö)
-   (#x88dc ?¸É)
-   (#x88dd ?¸Ë)
-   (#x88de ?ßõ)
-   (#x88df ?¸Æ)
-   (#x88e1 ?¸Ì)
-   (#x88e7 ?ãö)
-   (#x88e8 ?»t)
-   (#x88eb ?äB)
-   (#x88ec ?äA)
-   (#x88ee ?ãû)
-   (#x88ef ?»v)
-   (#x88f0 ?ä@)
-   (#x88f1 ?ã÷)
-   (#x88f2 ?ãø)
-   (#x88f3 ?»n)
-   (#x88f4 ?»p)
-   (#x88f6 ?ãý)
-   (#x88f7 ?ãõ)
-   (#x88f8 ?»r)
-   (#x88f9 ?»q)
-   (#x88fa ?ãù)
-   (#x88fb ?ãþ)
-   (#x88fc ?ãü)
-   (#x88fd ?»s)
-   (#x88fe ?ãú)
-   (#x8901 ?ÛÎ)
-   (#x8902 ?»o)
-   (#x8905 ?çÂ)
-   (#x8906 ?çÉ)
-   (#x8907 ?½Æ)
-   (#x8909 ?çÃ)
-   (#x890a ?½Ê)
-   (#x890b ?çÅ)
-   (#x890c ?çÃ)
-   (#x890e ?çÌ)
-   (#x8910 ?½Å)
-   (#x8911 ?çË)
-   (#x8912 ?½Ç)
-   (#x8913 ?½È)
-   (#x8914 ?çÄ)
-   (#x8915 ?½É)
-   (#x8916 ?çÊ)
-   (#x8917 ?çÆ)
-   (#x8918 ?çÇ)
-   (#x8919 ?çÈ)
-   (#x891a ?»u)
-   (#x891e ?ëp)
-   (#x891f ?ë|)
-   (#x8921 ?¿Ê)
-   (#x8922 ?ëw)
-   (#x8923 ?ëy)
-   (#x8925 ?¿È)
-   (#x8926 ?ëq)
-   (#x8927 ?ëu)
-   (#x8929 ?ëx)
-   (#x892a ?¿Æ)
-   (#x892b ?¿É)
-   (#x892c ?ë{)
-   (#x892d ?ës)
-   (#x892e ?ët)
-   (#x892f ?ëz)
-   (#x8930 ?ër)
-   (#x8931 ?ëv)
-   (#x8932 ?¿Ç)
-   (#x8933 ?îr)
-   (#x8935 ?îq)
-   (#x8936 ?÷)
-   (#x8937 ?îw)
-   (#x8938 ?ù)
-   (#x893b ?ö)
-   (#x893c ?îs)
-   (#x893d ?ú)
-   (#x893e ?ît)
-   (#x8941 ?îu)
-   (#x8942 ?îx)
-   (#x8944 ?ø)
-   (#x8946 ?ðÖ)
-   (#x8949 ?ðÙ)
-   (#x894b ?ðÓ)
-   (#x894c ?ðÕ)
-   (#x894f ?ðÔ)
-   (#x8950 ?ð×)
-   (#x8951 ?ðØ)
-   (#x8952 ?îv)
-   (#x8953 ?ðÒ)
-   (#x8956 ?ÃÃ)
-   (#x8957 ?òì)
-   (#x8958 ?òï)
-   (#x8959 ?òñ)
-   (#x895a ?òê)
-   (#x895b ?òë)
-   (#x895c ?òî)
-   (#x895d ?òð)
-   (#x895e ?ÃÎ)
-   (#x895f ?ÃÌ)
-   (#x8960 ?ÃË)
-   (#x8961 ?òí)
-   (#x8962 ?òé)
-   (#x8963 ?ôÊ)
-   (#x8964 ?Ä°)
-   (#x8966 ?ôË)
-   (#x8969 ?öI)
-   (#x896a ?Äû)
-   (#x896b ?öK)
-   (#x896c ?Äü)
-   (#x896d ?öH)
-   (#x896e ?öJ)
-   (#x896f ?Ũ)
-   (#x8971 ?÷R)
-   (#x8972 ?ŧ)
-   (#x8973 ?÷ý)
-   (#x8974 ?֟)
-   (#x8976 ?÷û)
-   (#x8979 ?ùH)
-   (#x897a ?ùI)
-   (#x897b ?ùK)
-   (#x897c ?ùJ)
-   (#x897e ?ÊP)
-   (#x897f ?¦è)
-   (#x8981 ?­n)
-   (#x8982 ?×Å)
-   (#x8983 ?µ÷)
-   (#x8985 ?ßú)
-   (#x8986 ?ÂÃ)
-   (#x8988 ?òò)
-   (#x898b ?¨£)
-   (#x898f ?³W)
-   (#x8993 ?³V)
-   (#x8995 ?ÛÃ)
-   (#x8996 ?µø)
-   (#x8997 ?ÛÒ)
-   (#x8998 ?ÛÑ)
-   (#x899b ?ßû)
-   (#x899c ?¸Ã)
-   (#x899d ?äC)
-   (#x899e ?äF)
-   (#x899f ?äE)
-   (#x89a1 ?äD)
-   (#x89a2 ?çÎ)
-   (#x89a3 ?çÃ)
-   (#x89a4 ?çÃ)
-   (#x89a6 ?¿Ì)
-   (#x89aa ?¿Ë)
-   (#x89ac ?û)
-   (#x89ad ?îy)
-   (#x89ae ?î{)
-   (#x89af ?îz)
-   (#x89b2 ?ÂÑ)
-   (#x89b6 ?òô)
-   (#x89b7 ?òó)
-   (#x89b9 ?ôÌ)
-   (#x89ba ?ı)
-   (#x89bd ?Äý)
-   (#x89be ?÷T)
-   (#x89bf ?÷S)
-   (#x89c0 ?Æ[)
-   (#x89d2 ?¨¤)
-   (#x89d3 ?Я)
-   (#x89d4 ?­o)
-   (#x89d5 ?×È)
-   (#x89d6 ?×Æ)
-   (#x89d9 ?×Ç)
-   (#x89da ?ÛÔ)
-   (#x89db ?ÛÕ)
-   (#x89dc ?àC)
-   (#x89dd ?ÛÓ)
-   (#x89df ?ßü)
-   (#x89e0 ?àA)
-   (#x89e1 ?à@)
-   (#x89e2 ?àB)
-   (#x89e3 ?¸Ñ)
-   (#x89e4 ?ßþ)
-   (#x89e5 ?ßý)
-   (#x89e6 ?àD)
-   (#x89e8 ?äI)
-   (#x89e9 ?äG)
-   (#x89eb ?äH)
-   (#x89ec ?çÓ)
-   (#x89ed ?çÑ)
-   (#x89f0 ?çÒ)
-   (#x89f1 ?ë})
-   (#x89f2 ?î|)
-   (#x89f3 ?î})
-   (#x89f4 ?ÂÒ)
-   (#x89f6 ?òõ)
-   (#x89f7 ?ôÃ)
-   (#x89f8 ?IJ)
-   (#x89fa ?öL)
-   (#x89fb ?÷U)
-   (#x89fc ?Å©)
-   (#x89fe ?÷þ)
-   (#x89ff ?ùL)
-   (#x8a00 ?¨¥)
-   (#x8a02 ?­q)
-   (#x8a03 ?­r)
-   (#x8a04 ?а)
-   (#x8a07 ?б)
-   (#x8a08 ?­p)
-   (#x8a0a ?°T)
-   (#x8a0c ?°R)
-   (#x8a0e ?°Q)
-   (#x8a0f ?°X)
-   (#x8a10 ?°P)
-   (#x8a11 ?°Y)
-   (#x8a12 ?ÓÃ)
-   (#x8a13 ?°V)
-   (#x8a15 ?°S)
-   (#x8a16 ?°W)
-   (#x8a17 ?°U)
-   (#x8a18 ?°O)
-   (#x8a1b ?³_)
-   (#x8a1d ?³Y)
-   (#x8a1e ?×Ì)
-   (#x8a1f ?³^)
-   (#x8a22 ?³`)
-   (#x8a23 ?³Z)
-   (#x8a25 ?³[)
-   (#x8a27 ?×Ê)
-   (#x8a2a ?³X)
-   (#x8a2c ?×Ë)
-   (#x8a2d ?³])
-   (#x8a30 ?×É)
-   (#x8a31 ?³\)
-   (#x8a34 ?¶D)
-   (#x8a36 ?¶F)
-   (#x8a39 ?ÛØ)
-   (#x8a3a ?¶E)
-   (#x8a3b ?µù)
-   (#x8a3c ?µý)
-   (#x8a3e ?¸ä)
-   (#x8a3f ?àI)
-   (#x8a40 ?ÛÚ)
-   (#x8a41 ?µþ)
-   (#x8a44 ?ÛÃ)
-   (#x8a45 ?ÛÞ)
-   (#x8a46 ?¶C)
-   (#x8a48 ?Ûà)
-   (#x8a4a ?Ûâ)
-   (#x8a4c ?Ûã)
-   (#x8a4d ?Û×)
-   (#x8a4e ?ÛÖ)
-   (#x8a4f ?Ûä)
-   (#x8a50 ?¶B)
-   (#x8a51 ?Ûá)
-   (#x8a52 ?Ûß)
-   (#x8a54 ?¶@)
-   (#x8a55 ?µû)
-   (#x8a56 ?¶G)
-   (#x8a57 ?ÛÛ)
-   (#x8a58 ?ÛÜ)
-   (#x8a59 ?ÛÙ)
-   (#x8a5b ?¶A)
-   (#x8a5e ?µü)
-   (#x8a60 ?µú)
-   (#x8a61 ?àH)
-   (#x8a62 ?¸ß)
-   (#x8a63 ?¸Ú)
-   (#x8a66 ?¸Õ)
-   (#x8a68 ?¸å)
-   (#x8a69 ?¸Ö)
-   (#x8a6b ?¸Ò)
-   (#x8a6c ?¸á)
-   (#x8a6d ?¸Þ)
-   (#x8a6e ?¸à)
-   (#x8a70 ?¸×)
-   (#x8a71 ?¸Ü)
-   (#x8a72 ?¸Ó)
-   (#x8a73 ?¸Ô)
-   (#x8a74 ?àP)
-   (#x8a75 ?àM)
-   (#x8a76 ?àE)
-   (#x8a77 ?àJ)
-   (#x8a79 ?¸â)
-   (#x8a7a ?àQ)
-   (#x8a7b ?¸ã)
-   (#x8a7c ?¸Ù)
-   (#x8a7f ?àG)
-   (#x8a81 ?àO)
-   (#x8a82 ?àK)
-   (#x8a83 ?àN)
-   (#x8a84 ?àL)
-   (#x8a85 ?¸Ã)
-   (#x8a86 ?àF)
-   (#x8a87 ?¸Ø)
-   (#x8a8b ?äL)
-   (#x8a8c ?»x)
-   (#x8a8d ?»{)
-   (#x8a8f ?äN)
-   (#x8a91 ?ȴ)
-   (#x8a92 ?äM)
-   (#x8a93 ?»})
-   (#x8a95 ?½Ã)
-   (#x8a96 ?äO)
-   (#x8a98 ?»¤)
-   (#x8a99 ?äK)
-   (#x8a9a ?»¦)
-   (#x8a9e ?»y)
-   (#x8aa0 ?¸Û)
-   (#x8aa1 ?»|)
-   (#x8aa3 ?»z)
-   (#x8aa4 ?»~)
-   (#x8aa5 ?Ȣ)
-   (#x8aa6 ?»w)
-   (#x8aa7 ?Ȥ)
-   (#x8aa8 ?ȣ)
-   (#x8aaa ?»¡)
-   (#x8aab ?äJ)
-   (#x8ab0 ?½Ö)
-   (#x8ab2 ?½Ò)
-   (#x8ab6 ?½Ù)
-   (#x8ab8 ?çÖ)
-   (#x8ab9 ?½Ú)
-   (#x8aba ?çâ)
-   (#x8abb ?çÛ)
-   (#x8abc ?½Ë)
-   (#x8abd ?çã)
-   (#x8abe ?çÃ)
-   (#x8abf ?½Õ)
-   (#x8ac0 ?çÞ)
-   (#x8ac2 ?½Ô)
-   (#x8ac3 ?çá)
-   (#x8ac4 ?½Î)
-   (#x8ac5 ?çß)
-   (#x8ac6 ?çÕ)
-   (#x8ac7 ?½Ã)
-   (#x8ac8 ?ëª)
-   (#x8ac9 ?½Ó)
-   (#x8acb ?½Ã)
-   (#x8acd ?½Ø)
-   (#x8acf ?çÔ)
-   (#x8ad1 ?çØ)
-   (#x8ad2 ?½Ì)
-   (#x8ad3 ?ç×)
-   (#x8ad4 ?çÙ)
-   (#x8ad5 ?çÚ)
-   (#x8ad6 ?½×)
-   (#x8ad7 ?çÜ)
-   (#x8ad8 ?çà)
-   (#x8ad9 ?çä)
-   (#x8adb ?½Û)
-   (#x8adc ?¿Ò)
-   (#x8add ?ë¥)
-   (#x8ade ?ë«)
-   (#x8adf ?ë¨)
-   (#x8ae0 ?ë~)
-   (#x8ae1 ?ë¬)
-   (#x8ae2 ?ë¡)
-   (#x8ae4 ?ë§)
-   (#x8ae6 ?¿Ã)
-   (#x8ae7 ?¿Ó)
-   (#x8ae8 ?ë­)
-   (#x8aeb ?¿Ã)
-   (#x8aed ?¿Ù)
-   (#x8aee ?¿Ô)
-   (#x8aef ?ë¯)
-   (#x8af0 ?ë©)
-   (#x8af1 ?¿Ã)
-   (#x8af2 ?ë¢)
-   (#x8af3 ?¿Ú)
-   (#x8af4 ?ë£)
-   (#x8af5 ?ë¤)
-   (#x8af6 ?¿Û)
-   (#x8af7 ?¿Ø)
-   (#x8af8 ?½Ñ)
-   (#x8afa ?¿Î)
-   (#x8afb ?ë°)
-   (#x8afc ?¿Ü)
-   (#x8afe ?¿Õ)
-   (#x8aff ?ë®)
-   (#x8b00 ?¿Ñ)
-   (#x8b01 ?¿Ö)
-   (#x8b02 ?¿×)
-   (#x8b04 ?ÃÃ)
-   (#x8b05 ?î¤)
-   (#x8b06 ?î­)
-   (#x8b07 ?îª)
-   (#x8b08 ?î¬)
-   (#x8b0a ?ÃÀ)
-   (#x8b0b ?î¥)
-   (#x8b0d ?î«)
-   (#x8b0e ?ü)
-   (#x8b0f ?î§)
-   (#x8b10 ?ÃÄ)
-   (#x8b11 ?î£)
-   (#x8b12 ?î¨)
-   (#x8b13 ?î¯)
-   (#x8b14 ?ë¦)
-   (#x8b15 ?î©)
-   (#x8b16 ?î¢)
-   (#x8b17 ?ý)
-   (#x8b18 ?î¡)
-   (#x8b19 ?þ)
-   (#x8b1a ?î°)
-   (#x8b1b ?ÿ)
-   (#x8b1c ?î®)
-   (#x8b1d ?ÃÂ)
-   (#x8b1e ?î~)
-   (#x8b20 ?ÃÃ)
-   (#x8b22 ?î¦)
-   (#x8b23 ?ðÜ)
-   (#x8b24 ?ðê)
-   (#x8b25 ?ðå)
-   (#x8b26 ?ðç)
-   (#x8b27 ?ðÛ)
-   (#x8b28 ?ÂÓ)
-   (#x8b2a ?ðÚ)
-   (#x8b2b ?ÂÖ)
-   (#x8b2c ?ÂÕ)
-   (#x8b2e ?ðé)
-   (#x8b2f ?ðá)
-   (#x8b30 ?ðÞ)
-   (#x8b31 ?ðä)
-   (#x8b33 ?ðÃ)
-   (#x8b35 ?ðß)
-   (#x8b36 ?ðè)
-   (#x8b37 ?ðæ)
-   (#x8b39 ?ÂÔ)
-   (#x8b3a ?ðí)
-   (#x8b3b ?ðë)
-   (#x8b3c ?ðâ)
-   (#x8b3d ?ðì)
-   (#x8b3e ?ðã)
-   (#x8b40 ?òù)
-   (#x8b41 ?ÃÃ)
-   (#x8b42 ?óA)
-   (#x8b45 ?öO)
-   (#x8b46 ?ÃÖ)
-   (#x8b47 ?ðà)
-   (#x8b48 ?ò÷)
-   (#x8b49 ?ÃÒ)
-   (#x8b4a ?òø)
-   (#x8b4b ?òý)
-   (#x8b4e ?ÃÔ)
-   (#x8b4f ?ÃÕ)
-   (#x8b50 ?òö)
-   (#x8b51 ?ó@)
-   (#x8b52 ?óB)
-   (#x8b53 ?òú)
-   (#x8b54 ?òü)
-   (#x8b55 ?òþ)
-   (#x8b56 ?òû)
-   (#x8b57 ?óC)
-   (#x8b58 ?ÃÑ)
-   (#x8b59 ?Ã×)
-   (#x8b5a ?ÃÓ)
-   (#x8b5c ?ÃÃ)
-   (#x8b5d ?ôÃ)
-   (#x8b5f ?Ä·)
-   (#x8b60 ?ôÎ)
-   (#x8b63 ?ôÒ)
-   (#x8b65 ?ôÓ)
-   (#x8b66 ?ĵ)
-   (#x8b67 ?ôÔ)
-   (#x8b68 ?ôÑ)
-   (#x8b6a ?ôÃ)
-   (#x8b6b ?ĸ)
-   (#x8b6c ?Ä´)
-   (#x8b6d ?ôÕ)
-   (#x8b6f ?Ķ)
-   (#x8b70 ?ij)
-   (#x8b74 ?Äþ)
-   (#x8b77 ?Ã…@)
-   (#x8b78 ?öN)
-   (#x8b79 ?öM)
-   (#x8b7a ?öP)
-   (#x8b7b ?öQ)
-   (#x8b7d ?Ã…A)
-   (#x8b7e ?÷V)
-   (#x8b7f ?÷[)
-   (#x8b80 ?Ū)
-   (#x8b82 ?÷X)
-   (#x8b84 ?÷W)
-   (#x8b85 ?÷Z)
-   (#x8b86 ?÷Y)
-   (#x8b88 ?øC)
-   (#x8b8a ?Ã…Ãœ)
-   (#x8b8b ?øB)
-   (#x8b8c ?ø@)
-   (#x8b8e ?øA)
-   (#x8b92 ?Åþ)
-   (#x8b93 ?Åý)
-   (#x8b94 ?øÃ)
-   (#x8b95 ?øÂ)
-   (#x8b96 ?Æ@)
-   (#x8b98 ?ùM)
-   (#x8b99 ?ùN)
-   (#x8b9a ?Æg)
-   (#x8b9c ?Æm)
-   (#x8b9e ?ù©)
-   (#x8b9f ?ùÈ)
-   (#x8c37 ?¨¦)
-   (#x8c39 ?×Ã)
-   (#x8c3b ?×Î)
-   (#x8c3c ?àR)
-   (#x8c3d ?äP)
-   (#x8c3e ?çå)
-   (#x8c3f ?ÃÆ)
-   (#x8c41 ?ÃÃ…)
-   (#x8c42 ?ðî)
-   (#x8c43 ?óD)
-   (#x8c45 ?øD)
-   (#x8c46 ?¨§)
-   (#x8c47 ?ÓÞ)
-   (#x8c48 ?°Z)
-   (#x8c49 ?³a)
-   (#x8c4a ?àT)
-   (#x8c4b ?àS)
-   (#x8c4c ?½Ü)
-   (#x8c4d ?çæ)
-   (#x8c4e ?½Ã)
-   (#x8c4f ?î±)
-   (#x8c50 ?Â×)
-   (#x8c54 ?Æv)
-   (#x8c55 ?¨¨)
-   (#x8c56 ?ÃË)
-   (#x8c57 ?Óß)
-   (#x8c5a ?³b)
-   (#x8c5c ?×Ã)
-   (#x8c5d ?×Ã)
-   (#x8c5f ?Ûå)
-   (#x8c61 ?¶H)
-   (#x8c62 ?¸æ)
-   (#x8c64 ?àV)
-   (#x8c65 ?àU)
-   (#x8c66 ?àW)
-   (#x8c68 ?äQ)
-   (#x8c69 ?äR)
-   (#x8c6a ?Ȭ)
-   (#x8c6b ?¿Ã)
-   (#x8c6c ?½Þ)
-   (#x8c6d ?¿Þ)
-   (#x8c6f ?îµ)
-   (#x8c70 ?î²)
-   (#x8c71 ?î´)
-   (#x8c72 ?î³)
-   (#x8c73 ?ÃÇ)
-   (#x8c75 ?ðï)
-   (#x8c76 ?óF)
-   (#x8c77 ?óE)
-   (#x8c78 ?ˤ)
-   (#x8c79 ?°\)
-   (#x8c7a ?°[)
-   (#x8c7b ?Óà)
-   (#x8c7d ?×Ñ)
-   (#x8c80 ?Ûç)
-   (#x8c81 ?Ûæ)
-   (#x8c82 ?¶I)
-   (#x8c84 ?àY)
-   (#x8c85 ?àZ)
-   (#x8c86 ?àX)
-   (#x8c89 ?¸è)
-   (#x8c8a ?¸ç)
-   (#x8c8c ?Ȼ)
-   (#x8c8d ?»©)
-   (#x8c8f ?çç)
-   (#x8c90 ?ë³)
-   (#x8c91 ?ë±)
-   (#x8c92 ?ë²)
-   (#x8c93 ?¿ß)
-   (#x8c94 ?î·)
-   (#x8c95 ?î¶)
-   (#x8c97 ?ðò)
-   (#x8c98 ?ðñ)
-   (#x8c99 ?ðð)
-   (#x8c9a ?óG)
-   (#x8c9c ?ùª)
-   (#x8c9d ?¨©)
-   (#x8c9e ?­s)
-   (#x8ca0 ?­t)
-   (#x8ca1 ?°])
-   (#x8ca2 ?°^)
-   (#x8ca3 ?Óâ)
-   (#x8ca4 ?Óá)
-   (#x8ca5 ?×Ò)
-   (#x8ca7 ?³h)
-   (#x8ca8 ?³f)
-   (#x8ca9 ?³c)
-   (#x8caa ?³g)
-   (#x8cab ?³e)
-   (#x8cac ?³d)
-   (#x8caf ?¶J)
-   (#x8cb0 ?Ûê)
-   (#x8cb2 ?¸í)
-   (#x8cb3 ?¶L)
-   (#x8cb4 ?¶Q)
-   (#x8cb5 ?Ûì)
-   (#x8cb6 ?¶S)
-   (#x8cb7 ?¶R)
-   (#x8cb8 ?¶U)
-   (#x8cb9 ?Ûë)
-   (#x8cba ?Ûè)
-   (#x8cbb ?¶O)
-   (#x8cbc ?¶K)
-   (#x8cbd ?¶M)
-   (#x8cbe ?Ûé)
-   (#x8cbf ?¶T)
-   (#x8cc0 ?¶P)
-   (#x8cc1 ?¶N)
-   (#x8cc2 ?¸ï)
-   (#x8cc3 ?¸î)
-   (#x8cc4 ?¸ì)
-   (#x8cc5 ?¸ð)
-   (#x8cc7 ?¸ê)
-   (#x8cc8 ?¸ë)
-   (#x8cca ?¸é)
-   (#x8ccc ?à[)
-   (#x8ccf ?äT)
-   (#x8cd1 ?»¬)
-   (#x8cd2 ?»­)
-   (#x8cd3 ?»«)
-   (#x8cd5 ?äS)
-   (#x8cd7 ?äU)
-   (#x8cd9 ?çê)
-   (#x8cda ?çì)
-   (#x8cdc ?½ç)
-   (#x8cdd ?çí)
-   (#x8cde ?½à)
-   (#x8cdf ?çé)
-   (#x8ce0 ?½ß)
-   (#x8ce1 ?½é)
-   (#x8ce2 ?½å)
-   (#x8ce3 ?½æ)
-   (#x8ce4 ?½â)
-   (#x8ce5 ?çè)
-   (#x8ce6 ?½á)
-   (#x8ce7 ?çî)
-   (#x8ce8 ?çë)
-   (#x8cea ?½è)
-   (#x8cec ?½ã)
-   (#x8ced ?½ä)
-   (#x8cee ?ëµ)
-   (#x8cf0 ?ë·)
-   (#x8cf1 ?ë¶)
-   (#x8cf3 ?ë¸)
-   (#x8cf4 ?¿à)
-   (#x8cf5 ?ë´)
-   (#x8cf8 ?ÃË)
-   (#x8cf9 ?î¸)
-   (#x8cfa ?ÃÈ)
-   (#x8cfb ?ÃÃŒ)
-   (#x8cfc ?ÃÊ)
-   (#x8cfd ?ÃÉ)
-   (#x8cfe ?ðó)
-   (#x8d00 ?ðö)
-   (#x8d02 ?ðõ)
-   (#x8d04 ?ðô)
-   (#x8d05 ?ÂØ)
-   (#x8d06 ?óH)
-   (#x8d07 ?óI)
-   (#x8d08 ?ÃØ)
-   (#x8d09 ?óJ)
-   (#x8d0a ?ÃÙ)
-   (#x8d0d ?ĺ)
-   (#x8d0f ?Ĺ)
-   (#x8d10 ?öR)
-   (#x8d13 ?Ã…B)
-   (#x8d14 ?öS)
-   (#x8d15 ?÷\)
-   (#x8d16 ?Å«)
-   (#x8d17 ?Ŭ)
-   (#x8d19 ?øE)
-   (#x8d1b ?ÆB)
-   (#x8d64 ?¨ª)
-   (#x8d66 ?³j)
-   (#x8d67 ?³i)
-   (#x8d68 ?à\)
-   (#x8d69 ?à])
-   (#x8d6b ?»®)
-   (#x8d6c ?ë¹)
-   (#x8d6d ?½ê)
-   (#x8d6e ?ëº)
-   (#x8d6f ?î¹)
-   (#x8d70 ?¨«)
-   (#x8d72 ?в)
-   (#x8d73 ?­v)
-   (#x8d74 ?­u)
-   (#x8d76 ?Óã)
-   (#x8d77 ?°_)
-   (#x8d78 ?Óä)
-   (#x8d79 ?×Õ)
-   (#x8d7b ?×Ô)
-   (#x8d7d ?×Ó)
-   (#x8d80 ?Ûî)
-   (#x8d81 ?¶X)
-   (#x8d84 ?Ûí)
-   (#x8d85 ?¶W)
-   (#x8d89 ?Ûï)
-   (#x8d8a ?¶V)
-   (#x8d8c ?à_)
-   (#x8d8d ?àb)
-   (#x8d8e ?à`)
-   (#x8d8f ?àa)
-   (#x8d90 ?àe)
-   (#x8d91 ?à^)
-   (#x8d92 ?àf)
-   (#x8d93 ?àc)
-   (#x8d94 ?àd)
-   (#x8d95 ?»°)
-   (#x8d96 ?äV)
-   (#x8d99 ?»¯)
-   (#x8d9b ?çò)
-   (#x8d9c ?çð)
-   (#x8d9f ?½ë)
-   (#x8da0 ?çï)
-   (#x8da1 ?çñ)
-   (#x8da3 ?½ì)
-   (#x8da5 ?ë»)
-   (#x8da7 ?ë¼)
-   (#x8da8 ?ÃÃ)
-   (#x8daa ?óL)
-   (#x8dab ?óN)
-   (#x8dac ?óK)
-   (#x8dad ?óM)
-   (#x8dae ?ôÖ)
-   (#x8daf ?öT)
-   (#x8db2 ?ùo)
-   (#x8db3 ?¨¬)
-   (#x8db4 ?­w)
-   (#x8db5 ?Óå)
-   (#x8db6 ?Óç)
-   (#x8db7 ?Óæ)
-   (#x8db9 ?×Ø)
-   (#x8dba ?³l)
-   (#x8dbc ?×Ö)
-   (#x8dbe ?³k)
-   (#x8dbf ?×Ù)
-   (#x8dc1 ?×Ú)
-   (#x8dc2 ?××)
-   (#x8dc5 ?Ûû)
-   (#x8dc6 ?¶`)
-   (#x8dc7 ?Ûó)
-   (#x8dc8 ?Ûù)
-   (#x8dcb ?¶[)
-   (#x8dcc ?¶^)
-   (#x8dcd ?Ûò)
-   (#x8dce ?¶Y)
-   (#x8dcf ?Ûö)
-   (#x8dd0 ?àl)
-   (#x8dd1 ?¶])
-   (#x8dd3 ?Ûñ)
-   (#x8dd5 ?Û÷)
-   (#x8dd6 ?Ûô)
-   (#x8dd7 ?Ûú)
-   (#x8dd8 ?Ûð)
-   (#x8dd9 ?Ûø)
-   (#x8dda ?¶\)
-   (#x8ddb ?¶_)
-   (#x8ddc ?Ûõ)
-   (#x8ddd ?¶Z)
-   (#x8ddf ?¸ò)
-   (#x8de0 ?àh)
-   (#x8de1 ?¸ñ)
-   (#x8de2 ?ào)
-   (#x8de3 ?àn)
-   (#x8de4 ?¸ø)
-   (#x8de6 ?¸ù)
-   (#x8de7 ?àp)
-   (#x8de8 ?¸ó)
-   (#x8de9 ?àm)
-   (#x8dea ?¸÷)
-   (#x8deb ?àr)
-   (#x8dec ?ài)
-   (#x8dee ?àk)
-   (#x8def ?¸ô)
-   (#x8df0 ?àg)
-   (#x8df1 ?àj)
-   (#x8df2 ?àq)
-   (#x8df3 ?¸õ)
-   (#x8df4 ?às)
-   (#x8dfa ?¸ö)
-   (#x8dfc ?»±)
-   (#x8dfd ?ä[)
-   (#x8dfe ?äa)
-   (#x8dff ?äY)
-   (#x8e00 ?äb)
-   (#x8e02 ?äX)
-   (#x8e03 ?ä])
-   (#x8e04 ?äc)
-   (#x8e05 ?ä`)
-   (#x8e06 ?ä_)
-   (#x8e07 ?ä^)
-   (#x8e09 ?äW)
-   (#x8e0a ?ä\)
-   (#x8e0d ?äZ)
-   (#x8e0f ?½ñ)
-   (#x8e10 ?½î)
-   (#x8e11 ?çû)
-   (#x8e12 ?èA)
-   (#x8e13 ?èC)
-   (#x8e14 ?è@)
-   (#x8e15 ?çø)
-   (#x8e16 ?çú)
-   (#x8e17 ?èE)
-   (#x8e18 ?èB)
-   (#x8e19 ?çü)
-   (#x8e1a ?èF)
-   (#x8e1b ?çù)
-   (#x8e1c ?èD)
-   (#x8e1d ?½ï)
-   (#x8e1e ?½õ)
-   (#x8e1f ?½ó)
-   (#x8e20 ?çó)
-   (#x8e21 ?½ô)
-   (#x8e22 ?½ð)
-   (#x8e23 ?çô)
-   (#x8e24 ?çö)
-   (#x8e25 ?çõ)
-   (#x8e26 ?çý)
-   (#x8e27 ?çþ)
-   (#x8e29 ?½ò)
-   (#x8e2b ?½í)
-   (#x8e2e ?ç÷)
-   (#x8e30 ?ëÆ)
-   (#x8e31 ?¿â)
-   (#x8e33 ?ë½)
-   (#x8e34 ?¿ã)
-   (#x8e35 ?¿æ)
-   (#x8e36 ?ëÂ)
-   (#x8e38 ?ë¿)
-   (#x8e39 ?¿å)
-   (#x8e3c ?ëÃ)
-   (#x8e3d ?ëÄ)
-   (#x8e3e ?ë¾)
-   (#x8e3f ?ëÇ)
-   (#x8e40 ?ëÀ)
-   (#x8e41 ?ëÅ)
-   (#x8e42 ?¿ä)
-   (#x8e44 ?¿á)
-   (#x8e45 ?ëÃ)
-   (#x8e47 ?î¿)
-   (#x8e48 ?ÃÃ)
-   (#x8e49 ?ÃÃŽ)
-   (#x8e4a ?ÃÑ)
-   (#x8e4b ?ÃÃ)
-   (#x8e4c ?î¾)
-   (#x8e4d ?î»)
-   (#x8e4e ?îº)
-   (#x8e50 ?î½)
-   (#x8e53 ?î¼)
-   (#x8e54 ?ñE)
-   (#x8e55 ?ÂÞ)
-   (#x8e56 ?ðû)
-   (#x8e57 ?ðú)
-   (#x8e59 ?ÂÙ)
-   (#x8e5a ?ñA)
-   (#x8e5b ?ñ@)
-   (#x8e5c ?ð÷)
-   (#x8e5d ?ñC)
-   (#x8e5e ?ðü)
-   (#x8e5f ?ÂÃ)
-   (#x8e60 ?ðù)
-   (#x8e61 ?ñB)
-   (#x8e62 ?ðø)
-   (#x8e63 ?ÂÚ)
-   (#x8e64 ?ÂÜ)
-   (#x8e65 ?ðý)
-   (#x8e66 ?ÂÛ)
-   (#x8e67 ?ðþ)
-   (#x8e69 ?ñD)
-   (#x8e6a ?óR)
-   (#x8e6c ?ÃÞ)
-   (#x8e6d ?óO)
-   (#x8e6f ?óS)
-   (#x8e72 ?ÃÛ)
-   (#x8e73 ?óQ)
-   (#x8e74 ?Ãà)
-   (#x8e76 ?ÃÃ)
-   (#x8e78 ?óP)
-   (#x8e7a ?Ãß)
-   (#x8e7b ?óT)
-   (#x8e7c ?ÃÚ)
-   (#x8e81 ?ļ)
-   (#x8e82 ?ľ)
-   (#x8e84 ?ôÙ)
-   (#x8e85 ?Ľ)
-   (#x8e86 ?ô×)
-   (#x8e87 ?ÃÜ)
-   (#x8e88 ?ôØ)
-   (#x8e89 ?Ä»)
-   (#x8e8a ?Ã…C)
-   (#x8e8b ?Ã…E)
-   (#x8e8c ?öV)
-   (#x8e8d ?Ã…D)
-   (#x8e8e ?öU)
-   (#x8e90 ?÷a)
-   (#x8e91 ?Å­)
-   (#x8e92 ?÷`)
-   (#x8e93 ?Å®)
-   (#x8e94 ?÷^)
-   (#x8e95 ?÷])
-   (#x8e96 ?÷b)
-   (#x8e97 ?÷c)
-   (#x8e98 ?øF)
-   (#x8e9a ?÷_)
-   (#x8e9d ?øÆ)
-   (#x8e9e ?øÃ)
-   (#x8e9f ?øÄ)
-   (#x8ea0 ?øÅ)
-   (#x8ea1 ?Æ\)
-   (#x8ea3 ?ùQ)
-   (#x8ea4 ?ùP)
-   (#x8ea5 ?ùO)
-   (#x8ea6 ?ùp)
-   (#x8ea8 ?ù¾)
-   (#x8ea9 ?ù«)
-   (#x8eaa ?Æn)
-   (#x8eab ?¨­)
-   (#x8eac ?°`)
-   (#x8eb2 ?¸ú)
-   (#x8eba ?½ö)
-   (#x8ebd ?ëÈ)
-   (#x8ec0 ?Âß)
-   (#x8ec2 ?óU)
-   (#x8ec9 ?ù¬)
-   (#x8eca ?¨®)
-   (#x8ecb ?ªî)
-   (#x8ecc ?­y)
-   (#x8ecd ?­x)
-   (#x8ecf ?°c)
-   (#x8ed1 ?Óè)
-   (#x8ed2 ?°a)
-   (#x8ed3 ?Óé)
-   (#x8ed4 ?°b)
-   (#x8ed7 ?×ß)
-   (#x8ed8 ?×Û)
-   (#x8edb ?³m)
-   (#x8edc ?×Þ)
-   (#x8edd ?×Ã)
-   (#x8ede ?×Ü)
-   (#x8edf ?³n)
-   (#x8ee0 ?×à)
-   (#x8ee1 ?×á)
-   (#x8ee5 ?ÃœC)
-   (#x8ee6 ?ÃœA)
-   (#x8ee7 ?ÃœE)
-   (#x8ee8 ?ÃœF)
-   (#x8ee9 ?ÃœL)
-   (#x8eeb ?ÃœH)
-   (#x8eec ?ÃœJ)
-   (#x8eee ?ÃœB)
-   (#x8eef ?Ûü)
-   (#x8ef1 ?ÃœI)
-   (#x8ef4 ?ÃœK)
-   (#x8ef5 ?ÃœD)
-   (#x8ef6 ?ÃœG)
-   (#x8ef7 ?Ûý)
-   (#x8ef8 ?¶b)
-   (#x8ef9 ?Ãœ@)
-   (#x8efa ?Ûþ)
-   (#x8efb ?¶a)
-   (#x8efc ?¶c)
-   (#x8efe ?¸ý)
-   (#x8eff ?àu)
-   (#x8f00 ?àw)
-   (#x8f01 ?àv)
-   (#x8f02 ?à{)
-   (#x8f03 ?¸û)
-   (#x8f05 ?àx)
-   (#x8f06 ?àt)
-   (#x8f07 ?ày)
-   (#x8f08 ?àz)
-   (#x8f09 ?¸ü)
-   (#x8f0a ?¸þ)
-   (#x8f0b ?à|)
-   (#x8f0d ?äg)
-   (#x8f0e ?äf)
-   (#x8f10 ?äd)
-   (#x8f11 ?äe)
-   (#x8f12 ?»³)
-   (#x8f13 ?»µ)
-   (#x8f14 ?»²)
-   (#x8f15 ?»´)
-   (#x8f16 ?èM)
-   (#x8f17 ?èN)
-   (#x8f18 ?èI)
-   (#x8f1a ?èJ)
-   (#x8f1b ?½ø)
-   (#x8f1c ?½ý)
-   (#x8f1d ?½÷)
-   (#x8f1e ?½þ)
-   (#x8f1f ?½ù)
-   (#x8f20 ?èK)
-   (#x8f23 ?èL)
-   (#x8f24 ?èH)
-   (#x8f25 ?¾@)
-   (#x8f26 ?½û)
-   (#x8f29 ?½ú)
-   (#x8f2a ?½ü)
-   (#x8f2c ?èG)
-   (#x8f2e ?ëÊ)
-   (#x8f2f ?¿è)
-   (#x8f32 ?ëÌ)
-   (#x8f33 ?¿ê)
-   (#x8f34 ?ëÃ)
-   (#x8f35 ?ëË)
-   (#x8f36 ?ëÉ)
-   (#x8f37 ?ëÎ)
-   (#x8f38 ?¿é)
-   (#x8f39 ?ëÃ)
-   (#x8f3b ?¿ç)
-   (#x8f3e ?ÃÓ)
-   (#x8f3f ?ÃÖ)
-   (#x8f40 ?îÃ)
-   (#x8f42 ?ÃÔ)
-   (#x8f43 ?îÀ)
-   (#x8f44 ?ÃÃ’)
-   (#x8f45 ?ÃÕ)
-   (#x8f46 ?ñF)
-   (#x8f47 ?ñG)
-   (#x8f48 ?ñH)
-   (#x8f49 ?Âà)
-   (#x8f4b ?ñI)
-   (#x8f4d ?Âá)
-   (#x8f4e ?Ãâ)
-   (#x8f4f ?óX)
-   (#x8f50 ?óY)
-   (#x8f51 ?óW)
-   (#x8f52 ?óV)
-   (#x8f53 ?óZ)
-   (#x8f54 ?Ãá)
-   (#x8f55 ?ôÃ)
-   (#x8f56 ?ôÛ)
-   (#x8f57 ?ôÜ)
-   (#x8f58 ?ôÞ)
-   (#x8f59 ?ôÚ)
-   (#x8f5a ?ôß)
-   (#x8f5b ?öX)
-   (#x8f5d ?öY)
-   (#x8f5e ?öW)
-   (#x8f5f ?Ã…F)
-   (#x8f60 ?÷d)
-   (#x8f61 ?ů)
-   (#x8f62 ?÷e)
-   (#x8f63 ?øH)
-   (#x8f64 ?øG)
-   (#x8f9b ?¨¯)
-   (#x8f9c ?¶d)
-   (#x8f9f ?¹@)
-   (#x8fa3 ?Ȧ)
-   (#x8fa6 ?¿ì)
-   (#x8fa8 ?¿ë)
-   (#x8fad ?Ãã)
-   (#x8fae ?Ä|)
-   (#x8faf ?Ã…G)
-   (#x8fb0 ?¨°)
-   (#x8fb1 ?°d)
-   (#x8fb2 ?¹A)
-   (#x8fb4 ?ó[)
-   (#x8fbf ?˦)
-   (#x8fc2 ?¨±)
-   (#x8fc4 ?¨´)
-   (#x8fc5 ?¨³)
-   (#x8fc6 ?¨²)
-   (#x8fc9 ?Ë¥)
-   (#x8fcb ?ÃÃ)
-   (#x8fcd ?ÃÃ)
-   (#x8fce ?ªï)
-   (#x8fd1 ?ªñ)
-   (#x8fd2 ?ÃÃŒ)
-   (#x8fd3 ?ÃÃŽ)
-   (#x8fd4 ?ªð)
-   (#x8fd5 ?ÃÑ)
-   (#x8fd6 ?ÃÃ)
-   (#x8fd7 ?ÃÃ’)
-   (#x8fe0 ?ж)
-   (#x8fe1 ?д)
-   (#x8fe2 ?­|)
-   (#x8fe3 ?г)
-   (#x8fe4 ?­£)
-   (#x8fe5 ?­~)
-   (#x8fe6 ?­{)
-   (#x8fe8 ?­¤)
-   (#x8fea ?­})
-   (#x8feb ?­¢)
-   (#x8fed ?­¡)
-   (#x8fee ?е)
-   (#x8ff0 ?­z)
-   (#x8ff4 ?°j)
-   (#x8ff5 ?Óë)
-   (#x8ff6 ?Óñ)
-   (#x8ff7 ?°g)
-   (#x8ff8 ?°n)
-   (#x8ffa ?°i)
-   (#x8ffb ?Óî)
-   (#x8ffc ?Óð)
-   (#x8ffd ?°l)
-   (#x8ffe ?Óê)
-   (#x8fff ?Óí)
-   (#x9000 ?°h)
-   (#x9001 ?°e)
-   (#x9002 ?Óì)
-   (#x9003 ?°k)
-   (#x9004 ?Óï)
-   (#x9005 ?°m)
-   (#x9006 ?°f)
-   (#x900b ?×ã)
-   (#x900c ?×æ)
-   (#x900d ?³p)
-   (#x900f ?³z)
-   (#x9010 ?³v)
-   (#x9011 ?×ä)
-   (#x9014 ?³~)
-   (#x9015 ?³w)
-   (#x9016 ?³|)
-   (#x9017 ?³r)
-   (#x9019 ?³o)
-   (#x901a ?³q)
-   (#x901b ?³})
-   (#x901c ?×å)
-   (#x901d ?³u)
-   (#x901e ?³x)
-   (#x901f ?³t)
-   (#x9020 ?³y)
-   (#x9021 ?×ç)
-   (#x9022 ?³{)
-   (#x9023 ?³s)
-   (#x9024 ?×â)
-   (#x902d ?ÃœM)
-   (#x902e ?¶e)
-   (#x902f ?ÃœO)
-   (#x9031 ?¶g)
-   (#x9032 ?¶i)
-   (#x9034 ?ÃœN)
-   (#x9035 ?¶f)
-   (#x9036 ?¶j)
-   (#x9038 ?¶h)
-   (#x903c ?¹G)
-   (#x903d ?à£)
-   (#x903e ?¹O)
-   (#x903f ?à~)
-   (#x9041 ?¹P)
-   (#x9042 ?¹E)
-   (#x9044 ?à¡)
-   (#x9047 ?¹J)
-   (#x9049 ?à¢)
-   (#x904a ?¹C)
-   (#x904b ?¹B)
-   (#x904d ?¹M)
-   (#x904e ?¹L)
-   (#x904f ?¹K)
-   (#x9050 ?¹I)
-   (#x9051 ?¹N)
-   (#x9052 ?à})
-   (#x9053 ?¹D)
-   (#x9054 ?¹F)
-   (#x9055 ?¹H)
-   (#x9058 ?»¸)
-   (#x9059 ?»»)
-   (#x905b ?»¿)
-   (#x905c ?»¹)
-   (#x905d ?»¾)
-   (#x905e ?»¼)
-   (#x9060 ?»·)
-   (#x9062 ?»½)
-   (#x9063 ?ȼ)
-   (#x9067 ?èR)
-   (#x9068 ?¾C)
-   (#x9069 ?¾A)
-   (#x906b ?èS)
-   (#x906d ?¾D)
-   (#x906e ?¾B)
-   (#x906f ?èQ)
-   (#x9070 ?èP)
-   (#x9072 ?¿ð)
-   (#x9073 ?èO)
-   (#x9074 ?¿î)
-   (#x9075 ?¿í)
-   (#x9076 ?ëÃ)
-   (#x9077 ?¾E)
-   (#x9078 ?¿ï)
-   (#x9079 ?ëÑ)
-   (#x907a ?¿ò)
-   (#x907b ?ëÒ)
-   (#x907c ?¿ñ)
-   (#x907d ?ÃØ)
-   (#x907e ?îÃ)
-   (#x907f ?Ã×)
-   (#x9080 ?ÃÃœ)
-   (#x9081 ?ÃÚ)
-   (#x9082 ?ÃÛ)
-   (#x9083 ?Âã)
-   (#x9084 ?ÃÙ)
-   (#x9085 ?îÂ)
-   (#x9086 ?ëÓ)
-   (#x9087 ?Ââ)
-   (#x9088 ?Âä)
-   (#x908a ?Ãä)
-   (#x908b ?Ãå)
-   (#x908d ?ôà)
-   (#x908f ?ÅÞ)
-   (#x9090 ?Ã…Ã)
-   (#x9091 ?¨¶)
-   (#x9094 ?ÊU)
-   (#x9095 ?°o)
-   (#x9097 ?ÊR)
-   (#x9098 ?ÊS)
-   (#x9099 ?ÊQ)
-   (#x909b ?ÊT)
-   (#x909e ?˪)
-   (#x909f ?˧)
-   (#x90a0 ?ˬ)
-   (#x90a1 ?˨)
-   (#x90a2 ?¨·)
-   (#x90a3 ?¨º)
-   (#x90a5 ?Ë©)
-   (#x90a6 ?¨¹)
-   (#x90a7 ?Ë«)
-   (#x90aa ?¨¸)
-   (#x90af ?ÃÕ)
-   (#x90b0 ?Ã×)
-   (#x90b1 ?ªô)
-   (#x90b2 ?ÃÓ)
-   (#x90b3 ?ÃÖ)
-   (#x90b4 ?ÃÔ)
-   (#x90b5 ?ªò)
-   (#x90b6 ?ªõ)
-   (#x90b8 ?ªó)
-   (#x90bd ?и)
-   (#x90be ?м)
-   (#x90bf ?й)
-   (#x90c1 ?­§)
-   (#x90c3 ?­¨)
-   (#x90c5 ?л)
-   (#x90c7 ?н)
-   (#x90c8 ?п)
-   (#x90ca ?­¥)
-   (#x90cb ?о)
-   (#x90ce ?­¦)
-   (#x90d4 ?×î)
-   (#x90d5 ?к)
-   (#x90d6 ?Óò)
-   (#x90d7 ?Óû)
-   (#x90d8 ?Óù)
-   (#x90d9 ?Óô)
-   (#x90da ?Óõ)
-   (#x90db ?Óú)
-   (#x90dc ?Óü)
-   (#x90dd ?°q)
-   (#x90df ?Ó÷)
-   (#x90e0 ?Óó)
-   (#x90e1 ?°p)
-   (#x90e2 ?°r)
-   (#x90e3 ?Óö)
-   (#x90e4 ?Óý)
-   (#x90e5 ?Óø)
-   (#x90e8 ?³¡)
-   (#x90e9 ?×ñ)
-   (#x90ea ?×é)
-   (#x90eb ?×ï)
-   (#x90ec ?×ð)
-   (#x90ed ?³¢)
-   (#x90ef ?×è)
-   (#x90f0 ?×ê)
-   (#x90f1 ?з)
-   (#x90f2 ?×ì)
-   (#x90f3 ?×í)
-   (#x90f4 ?×ë)
-   (#x90f5 ?¶l)
-   (#x90f9 ?ÃœV)
-   (#x90fa ?ëÔ)
-   (#x90fb ?ÃœW)
-   (#x90fc ?ÃœT)
-   (#x90fd ?³£)
-   (#x90fe ?¶n)
-   (#x90ff ?ÃœS)
-   (#x9100 ?ÃœY)
-   (#x9101 ?ÃœX)
-   (#x9102 ?¶k)
-   (#x9103 ?Ãœ\)
-   (#x9104 ?ÃœR)
-   (#x9105 ?Ãœ[)
-   (#x9106 ?ÃœP)
-   (#x9107 ?ÃœZ)
-   (#x9108 ?ÃœU)
-   (#x9109 ?¶m)
-   (#x910b ?àª)
-   (#x910d ?à¥)
-   (#x910e ?à«)
-   (#x910f ?à¦)
-   (#x9110 ?à¤)
-   (#x9111 ?à§)
-   (#x9112 ?¹Q)
-   (#x9114 ?à©)
-   (#x9116 ?à¨)
-   (#x9117 ?¹R)
-   (#x9118 ?»Ã)
-   (#x9119 ?»À)
-   (#x911a ?än)
-   (#x911b ?äq)
-   (#x911c ?äi)
-   (#x911d ?äm)
-   (#x911e ?»Â)
-   (#x911f ?äl)
-   (#x9120 ?äj)
-   (#x9121 ?äp)
-   (#x9122 ?äk)
-   (#x9123 ?äh)
-   (#x9124 ?äo)
-   (#x9126 ?èY)
-   (#x9127 ?¾H)
-   (#x9128 ?ñJ)
-   (#x9129 ?èV)
-   (#x912a ?èW)
-   (#x912b ?èU)
-   (#x912c ?ÃœQ)
-   (#x912d ?¾G)
-   (#x912e ?èZ)
-   (#x912f ?èT)
-   (#x9130 ?¾F)
-   (#x9131 ?¾I)
-   (#x9132 ?èX)
-   (#x9133 ?ëÕ)
-   (#x9134 ?¿ó)
-   (#x9135 ?ëÖ)
-   (#x9136 ?ë×)
-   (#x9138 ?îÄ)
-   (#x9139 ?ÃÃ)
-   (#x913a ?ñK)
-   (#x913b ?ñL)
-   (#x913e ?ñM)
-   (#x913f ?ó])
-   (#x9140 ?ó\)
-   (#x9141 ?ôâ)
-   (#x9143 ?ôá)
-   (#x9144 ?ö[)
-   (#x9145 ?ö\)
-   (#x9146 ?öZ)
-   (#x9147 ?÷f)
-   (#x9148 ?Å°)
-   (#x9149 ?¨»)
-   (#x914a ?­ª)
-   (#x914b ?­©)
-   (#x914c ?°u)
-   (#x914d ?°t)
-   (#x914e ?Ô@)
-   (#x914f ?ÔA)
-   (#x9150 ?Óþ)
-   (#x9152 ?°s)
-   (#x9153 ?×õ)
-   (#x9155 ?×ö)
-   (#x9156 ?×ò)
-   (#x9157 ?³¤)
-   (#x9158 ?×ó)
-   (#x915a ?×ô)
-   (#x915f ?Ãœ_)
-   (#x9160 ?Ãœa)
-   (#x9161 ?Ãœ])
-   (#x9162 ?Ãœ`)
-   (#x9163 ?¶o)
-   (#x9164 ?Ãœ^)
-   (#x9165 ?¶p)
-   (#x9168 ?Ãs)
-   (#x9169 ?¹U)
-   (#x916a ?¹T)
-   (#x916c ?¹S)
-   (#x916e ?à¬)
-   (#x916f ?à­)
-   (#x9172 ?äs)
-   (#x9173 ?äu)
-   (#x9174 ?Ȯ)
-   (#x9175 ?»Ã)
-   (#x9177 ?ȁ)
-   (#x9178 ?Ȁ)
-   (#x9179 ?ät)
-   (#x917a ?är)
-   (#x9180 ?èa)
-   (#x9181 ?è^)
-   (#x9182 ?è_)
-   (#x9183 ?¾M)
-   (#x9184 ?è`)
-   (#x9185 ?è[)
-   (#x9186 ?è\)
-   (#x9187 ?¾J)
-   (#x9189 ?¾K)
-   (#x918a ?è])
-   (#x918b ?¾L)
-   (#x918d ?ëÛ)
-   (#x918f ?ëÜ)
-   (#x9190 ?ëÙ)
-   (#x9191 ?ëÚ)
-   (#x9192 ?¿ô)
-   (#x9193 ?ëØ)
-   (#x9199 ?îÈ)
-   (#x919a ?îÅ)
-   (#x919b ?îÇ)
-   (#x919c ?Ãà)
-   (#x919d ?îË)
-   (#x919e ?Ãß)
-   (#x919f ?îÉ)
-   (#x91a0 ?îÌ)
-   (#x91a1 ?îÊ)
-   (#x91a2 ?îÆ)
-   (#x91a3 ?ÃÞ)
-   (#x91a5 ?ñO)
-   (#x91a7 ?ñP)
-   (#x91a8 ?ñN)
-   (#x91aa ?ñR)
-   (#x91ab ?Âå)
-   (#x91ac ?Âæ)
-   (#x91ad ?ó_)
-   (#x91ae ?Ãç)
-   (#x91af ?ñQ)
-   (#x91b0 ?ó^)
-   (#x91b1 ?Ãæ)
-   (#x91b2 ?ôå)
-   (#x91b3 ?ôæ)
-   (#x91b4 ?Ä¿)
-   (#x91b5 ?ôä)
-   (#x91b7 ?ôã)
-   (#x91b9 ?ö])
-   (#x91ba ?Ã…H)
-   (#x91bc ?øI)
-   (#x91bd ?øÈ)
-   (#x91be ?øÇ)
-   (#x91c0 ?ÆC)
-   (#x91c1 ?Æ])
-   (#x91c2 ?øÉ)
-   (#x91c3 ?ùq)
-   (#x91c5 ?Æo)
-   (#x91c6 ?¨¼)
-   (#x91c7 ?ªö)
-   (#x91c9 ?¹V)
-   (#x91cb ?ÄÀ)
-   (#x91cc ?¨½)
-   (#x91cd ?­«)
-   (#x91ce ?³¥)
-   (#x91cf ?¶q)
-   (#x91d0 ?Âç)
-   (#x91d1 ?ª÷)
-   (#x91d3 ?ÃÃ)
-   (#x91d4 ?ÃÀ)
-   (#x91d5 ?ÔB)
-   (#x91d7 ?°x)
-   (#x91d8 ?°v)
-   (#x91d9 ?°z)
-   (#x91da ?ÔD)
-   (#x91dc ?°y)
-   (#x91dd ?°w)
-   (#x91e2 ?ÔC)
-   (#x91e3 ?³¨)
-   (#x91e4 ?×ü)
-   (#x91e6 ?³§)
-   (#x91e7 ?³©)
-   (#x91e8 ?ØB)
-   (#x91e9 ?³«)
-   (#x91ea ?×þ)
-   (#x91eb ?Ø@)
-   (#x91ec ?×÷)
-   (#x91ed ?³ª)
-   (#x91ee ?ØC)
-   (#x91f1 ?×ù)
-   (#x91f3 ?×ú)
-   (#x91f4 ?×ø)
-   (#x91f5 ?³¦)
-   (#x91f7 ?ØA)
-   (#x91f8 ?×û)
-   (#x91f9 ?×ý)
-   (#x91fd ?Ãœm)
-   (#x91ff ?Ãœl)
-   (#x9200 ?Ãœj)
-   (#x9201 ?Ãœb)
-   (#x9202 ?Ãœq)
-   (#x9203 ?Ãœe)
-   (#x9204 ?Ãœo)
-   (#x9205 ?Ãœv)
-   (#x9206 ?Ãœn)
-   (#x9207 ?¶y)
-   (#x9209 ?¶u)
-   (#x920a ?Ãœc)
-   (#x920c ?Ãœi)
-   (#x920d ?¶w)
-   (#x920f ?Ãœh)
-   (#x9210 ?¶x)
-   (#x9211 ?¶z)
-   (#x9212 ?Ãœk)
-   (#x9214 ?¶r)
-   (#x9215 ?¶s)
-   (#x9216 ?Ãœw)
-   (#x9217 ?Ãœu)
-   (#x9219 ?Ãœt)
-   (#x921a ?Ãœf)
-   (#x921c ?Ãœr)
-   (#x921e ?¶v)
-   (#x9223 ?¶t)
-   (#x9224 ?Ãœs)
-   (#x9225 ?Ãœd)
-   (#x9226 ?Ãœg)
-   (#x9227 ?Ãœp)
-   (#x922d ?äº)
-   (#x922e ?à·)
-   (#x9230 ?à°)
-   (#x9231 ?àÃ)
-   (#x9232 ?àÌ)
-   (#x9233 ?à³)
-   (#x9234 ?¹a)
-   (#x9236 ?àÀ)
-   (#x9237 ?¹W)
-   (#x9238 ?¹Y)
-   (#x9239 ?¹e)
-   (#x923a ?à±)
-   (#x923d ?¹Z)
-   (#x923e ?¹\)
-   (#x923f ?¹f)
-   (#x9240 ?¹[)
-   (#x9245 ?¹d)
-   (#x9246 ?à¹)
-   (#x9248 ?à®)
-   (#x9249 ?¹b)
-   (#x924a ?à¸)
-   (#x924b ?¹^)
-   (#x924c ?àÊ)
-   (#x924d ?¹c)
-   (#x924e ?àÈ)
-   (#x924f ?à¼)
-   (#x9250 ?àÆ)
-   (#x9251 ?¹`)
-   (#x9252 ?à¯)
-   (#x9253 ?àÉ)
-   (#x9254 ?àÄ)
-   (#x9256 ?àË)
-   (#x9257 ?¹X)
-   (#x925a ?¹g)
-   (#x925b ?¹])
-   (#x925e ?àµ)
-   (#x9260 ?à½)
-   (#x9261 ?àÃ)
-   (#x9263 ?àÅ)
-   (#x9264 ?¹_)
-   (#x9265 ?à´)
-   (#x9266 ?à²)
-   (#x9267 ?à¾)
-   (#x926c ?à»)
-   (#x926d ?àº)
-   (#x926f ?à¿)
-   (#x9270 ?àÂ)
-   (#x9272 ?àÇ)
-   (#x9276 ?äx)
-   (#x9278 ?Ȃ)
-   (#x9279 ?ä¤)
-   (#x927a ?äz)
-   (#x927b ?»Ì)
-   (#x927c ?»Ã)
-   (#x927d ?ä­)
-   (#x927e ?äµ)
-   (#x927f ?ä¦)
-   (#x9280 ?»È)
-   (#x9282 ?äª)
-   (#x9283 ?à¶)
-   (#x9285 ?ȃ)
-   (#x9286 ?ä±)
-   (#x9287 ?ä¶)
-   (#x9288 ?ä®)
-   (#x928a ?ä°)
-   (#x928b ?ä¹)
-   (#x928c ?ä²)
-   (#x928d ?ä~)
-   (#x928e ?ä©)
-   (#x9291 ?Ȅ)
-   (#x9293 ?»Ã)
-   (#x9294 ?ä|)
-   (#x9295 ?ä«)
-   (#x9296 ?»Ë)
-   (#x9297 ?ä¥)
-   (#x9298 ?»Ê)
-   (#x9299 ?ä³)
-   (#x929a ?ä¢)
-   (#x929b ?äy)
-   (#x929c ?»Î)
-   (#x929d ?ä¸)
-   (#x92a0 ?ä{)
-   (#x92a1 ?ä¯)
-   (#x92a2 ?ä¬)
-   (#x92a3 ?ä§)
-   (#x92a4 ?äw)
-   (#x92a5 ?äv)
-   (#x92a6 ?ä¡)
-   (#x92a7 ?ä´)
-   (#x92a8 ?»Ã)
-   (#x92a9 ?ä·)
-   (#x92aa ?ä})
-   (#x92ab ?ä£)
-   (#x92ac ?¾R)
-   (#x92b2 ?¾Z)
-   (#x92b3 ?¾U)
-   (#x92b4 ?è¤)
-   (#x92b5 ?è¡)
-   (#x92b6 ?èg)
-   (#x92b7 ?¾P)
-   (#x92b9 ?ù×)
-   (#x92bb ?¾O)
-   (#x92bc ?¾V)
-   (#x92c0 ?èe)
-   (#x92c1 ?¾T)
-   (#x92c2 ?èq)
-   (#x92c3 ?èc)
-   (#x92c4 ?èd)
-   (#x92c5 ?¾N)
-   (#x92c6 ?è£)
-   (#x92c7 ?¾X)
-   (#x92c8 ?èt)
-   (#x92c9 ?èy)
-   (#x92ca ?ès)
-   (#x92cb ?ëî)
-   (#x92cc ?èo)
-   (#x92cd ?èw)
-   (#x92ce ?èu)
-   (#x92cf ?èh)
-   (#x92d0 ?èb)
-   (#x92d1 ?è})
-   (#x92d2 ?¾W)
-   (#x92d3 ?è~)
-   (#x92d5 ?èx)
-   (#x92d7 ?èm)
-   (#x92d8 ?èk)
-   (#x92d9 ?èf)
-   (#x92dd ?èn)
-   (#x92de ?è{)
-   (#x92df ?èj)
-   (#x92e0 ?èz)
-   (#x92e1 ?è¢)
-   (#x92e4 ?¾S)
-   (#x92e6 ?èv)
-   (#x92e7 ?è|)
-   (#x92e8 ?èr)
-   (#x92e9 ?èl)
-   (#x92ea ?¾Q)
-   (#x92ee ?ä¨)
-   (#x92ef ?èp)
-   (#x92f0 ?¾Y)
-   (#x92f1 ?èi)
-   (#x92f7 ?ëô)
-   (#x92f8 ?¿÷)
-   (#x92f9 ?ëó)
-   (#x92fa ?ëð)
-   (#x92fb ?ìD)
-   (#x92fc ?¿û)
-   (#x92fe ?ìA)
-   (#x92ff ?ëø)
-   (#x9300 ?ìC)
-   (#x9301 ?ëé)
-   (#x9302 ?ëö)
-   (#x9304 ?¿ý)
-   (#x9306 ?ëá)
-   (#x9308 ?ëß)
-   (#x9309 ?ìB)
-   (#x930b ?ì@)
-   (#x930c ?ëþ)
-   (#x930d ?ëí)
-   (#x930e ?ëì)
-   (#x930f ?ëâ)
-   (#x9310 ?À@)
-   (#x9312 ?ëè)
-   (#x9313 ?ëò)
-   (#x9314 ?ëý)
-   (#x9315 ?ÀC)
-   (#x9316 ?ìE)
-   (#x9318 ?Ãè)
-   (#x9319 ?ÀE)
-   (#x931a ?¿þ)
-   (#x931b ?ëæ)
-   (#x931d ?ëï)
-   (#x931e ?ëÞ)
-   (#x931f ?ëà)
-   (#x9320 ?¿õ)
-   (#x9321 ?ÀB)
-   (#x9322 ?¿ú)
-   (#x9323 ?ëç)
-   (#x9324 ?ë÷)
-   (#x9325 ?ëñ)
-   (#x9326 ?ÀA)
-   (#x9327 ?ëÃ)
-   (#x9328 ?Ãã)
-   (#x9329 ?ëù)
-   (#x932a ?ëü)
-   (#x932b ?¿ü)
-   (#x932d ?ëë)
-   (#x932e ?ÀD)
-   (#x932f ?¿ù)
-   (#x9333 ?¿ø)
-   (#x9334 ?ëõ)
-   (#x9335 ?ëû)
-   (#x9336 ?¿ö)
-   (#x9338 ?ëä)
-   (#x9339 ?ëú)
-   (#x933c ?ëå)
-   (#x9346 ?ëê)
-   (#x9347 ?îÒ)
-   (#x9349 ?î×)
-   (#x934a ?ÃÃ¥)
-   (#x934b ?Ãç)
-   (#x934c ?îÃ)
-   (#x934d ?Ãá)
-   (#x934e ?îì)
-   (#x934f ?îã)
-   (#x9350 ?îØ)
-   (#x9351 ?îÙ)
-   (#x9352 ?îâ)
-   (#x9354 ?Ãî)
-   (#x9355 ?îá)
-   (#x9356 ?îÑ)
-   (#x9357 ?îà)
-   (#x9358 ?îÔ)
-   (#x9359 ?îí)
-   (#x935a ?Ãí)
-   (#x935b ?Ãë)
-   (#x935c ?îÕ)
-   (#x935e ?îè)
-   (#x9360 ?îÚ)
-   (#x9361 ?îç)
-   (#x9363 ?îé)
-   (#x9364 ?îÃ)
-   (#x9365 ?Ãæ)
-   (#x9367 ?îê)
-   (#x936a ?îÞ)
-   (#x936c ?Ãê)
-   (#x936d ?îÛ)
-   (#x9370 ?Ãì)
-   (#x9371 ?îä)
-   (#x9375 ?Ãä)
-   (#x9376 ?îÖ)
-   (#x9377 ?îå)
-   (#x9379 ?îß)
-   (#x937a ?ëã)
-   (#x937b ?îæ)
-   (#x937c ?îÓ)
-   (#x937e ?Ãé)
-   (#x9380 ?îë)
-   (#x9382 ?Ãâ)
-   (#x9383 ?îÎ)
-   (#x9388 ?ñ`)
-   (#x9389 ?ñY)
-   (#x938a ?Âé)
-   (#x938c ?ñT)
-   (#x938d ?ñc)
-   (#x938e ?ñ[)
-   (#x938f ?îÜ)
-   (#x9391 ?ñe)
-   (#x9392 ?ñU)
-   (#x9394 ?Âè)
-   (#x9395 ?ñ_)
-   (#x9396 ?Âê)
-   (#x9397 ?Âò)
-   (#x9398 ?Âð)
-   (#x9399 ?ña)
-   (#x939a ?Âñ)
-   (#x939b ?ñW)
-   (#x939d ?ñX)
-   (#x939e ?ñ])
-   (#x939f ?ñb)
-   (#x93a1 ?îÃ)
-   (#x93a2 ?Âë)
-   (#x93a3 ?ñj)
-   (#x93a4 ?ñg)
-   (#x93a5 ?ñk)
-   (#x93a6 ?ñ^)
-   (#x93a7 ?ñZ)
-   (#x93a8 ?ñh)
-   (#x93a9 ?ój)
-   (#x93aa ?ñ\)
-   (#x93ac ?Âî)
-   (#x93ae ?Âí)
-   (#x93af ?îÃ)
-   (#x93b0 ?Âï)
-   (#x93b1 ?ñd)
-   (#x93b2 ?ñf)
-   (#x93b3 ?Âì)
-   (#x93b4 ?ñi)
-   (#x93b5 ?ñS)
-   (#x93b7 ?ñV)
-   (#x93c0 ?ós)
-   (#x93c2 ?óc)
-   (#x93c3 ?Ãë)
-   (#x93c4 ?óq)
-   (#x93c7 ?óa)
-   (#x93c8 ?Ãì)
-   (#x93ca ?ól)
-   (#x93cc ?óh)
-   (#x93cd ?Ãñ)
-   (#x93ce ?ór)
-   (#x93cf ?ób)
-   (#x93d0 ?óe)
-   (#x93d1 ?Ãé)
-   (#x93d2 ?ót)
-   (#x93d4 ?óm)
-   (#x93d5 ?óp)
-   (#x93d6 ?Ãï)
-   (#x93d7 ?Ãô)
-   (#x93d8 ?Ãò)
-   (#x93d9 ?ói)
-   (#x93da ?ód)
-   (#x93dc ?Ãí)
-   (#x93dd ?Ãî)
-   (#x93de ?ó`)
-   (#x93df ?Ãê)
-   (#x93e1 ?Ãè)
-   (#x93e2 ?Ãð)
-   (#x93e3 ?óo)
-   (#x93e4 ?Ãó)
-   (#x93e6 ?ók)
-   (#x93e7 ?óu)
-   (#x93e8 ?Ãõ)
-   (#x93ec ?óg)
-   (#x93ee ?ón)
-   (#x93f5 ?ôó)
-   (#x93f6 ?õB)
-   (#x93f7 ?ôõ)
-   (#x93f8 ?ôü)
-   (#x93f9 ?óf)
-   (#x93fa ?ôú)
-   (#x93fb ?ôé)
-   (#x93fc ?õ@)
-   (#x93fd ?ÄÃ)
-   (#x93fe ?ôí)
-   (#x93ff ?ôþ)
-   (#x9400 ?ôô)
-   (#x9403 ?ÄÂ)
-   (#x9406 ?õD)
-   (#x9407 ?ôö)
-   (#x9409 ?ôû)
-   (#x940a ?ôý)
-   (#x940b ?ôç)
-   (#x940c ?õA)
-   (#x940d ?ôò)
-   (#x940e ?ô÷)
-   (#x940f ?ôë)
-   (#x9410 ?ôï)
-   (#x9411 ?õC)
-   (#x9412 ?ôù)
-   (#x9413 ?ôè)
-   (#x9414 ?ôì)
-   (#x9415 ?ôî)
-   (#x9416 ?ôø)
-   (#x9418 ?ÄÃ)
-   (#x9419 ?ôñ)
-   (#x9420 ?ôê)
-   (#x9428 ?ôð)
-   (#x9429 ?öa)
-   (#x942a ?öf)
-   (#x942b ?Ã…O)
-   (#x942c ?öh)
-   (#x942e ?Ã…I)
-   (#x9430 ?öd)
-   (#x9431 ?öj)
-   (#x9432 ?Ã…N)
-   (#x9433 ?Ã…J)
-   (#x9435 ?Ã…K)
-   (#x9436 ?ö`)
-   (#x9437 ?ög)
-   (#x9438 ?Ã…M)
-   (#x9439 ?öe)
-   (#x943a ?Ã…L)
-   (#x943b ?ö_)
-   (#x943c ?öc)
-   (#x943d ?öb)
-   (#x943f ?ö^)
-   (#x9440 ?öi)
-   (#x9444 ?ű)
-   (#x9445 ?÷m)
-   (#x9446 ?÷p)
-   (#x9447 ?÷l)
-   (#x9448 ?÷n)
-   (#x9449 ?÷o)
-   (#x944a ?÷i)
-   (#x944b ?÷j)
-   (#x944c ?÷g)
-   (#x944f ?÷k)
-   (#x9450 ?÷h)
-   (#x9451 ?Ų)
-   (#x9452 ?ų)
-   (#x9455 ?øK)
-   (#x9457 ?øM)
-   (#x945d ?øL)
-   (#x945e ?øN)
-   (#x9460 ?Åà)
-   (#x9462 ?øJ)
-   (#x9463 ?Åß)
-   (#x9464 ?Åá)
-   (#x9468 ?øË)
-   (#x9469 ?øÌ)
-   (#x946a ?ÆD)
-   (#x946b ?øÊ)
-   (#x946d ?ùS)
-   (#x946e ?ùR)
-   (#x946f ?ùT)
-   (#x9470 ?Æ_)
-   (#x9471 ?ùU)
-   (#x9472 ?Æ^)
-   (#x9473 ?ùV)
-   (#x9474 ?ùr)
-   (#x9475 ?ùu)
-   (#x9476 ?ùt)
-   (#x9477 ?Æh)
-   (#x9478 ?ùs)
-   (#x947c ?Ær)
-   (#x947d ?Æp)
-   (#x947e ?Æq)
-   (#x947f ?Æw)
-   (#x9480 ?ùÀ)
-   (#x9481 ?ùÃ)
-   (#x9482 ?ù¿)
-   (#x9483 ?ùÉ)
-   (#x9577 ?ªø)
-   (#x957a ?ØD)
-   (#x957b ?Ãœx)
-   (#x957c ?è¥)
-   (#x957d ?óv)
-   (#x9580 ?ªù)
-   (#x9582 ?­¬)
-   (#x9583 ?°{)
-   (#x9586 ?ØE)
-   (#x9588 ?ØF)
-   (#x9589 ?³¬)
-   (#x958b ?¶})
-   (#x958c ?Ãœz)
-   (#x958d ?Ãœy)
-   (#x958e ?¶£)
-   (#x958f ?¶|)
-   (#x9590 ?Ãœ{)
-   (#x9591 ?¶~)
-   (#x9592 ?¶¢)
-   (#x9593 ?¶¡)
-   (#x9594 ?¶{)
-   (#x9598 ?¹h)
-   (#x959b ?àÃ)
-   (#x959c ?àÎ)
-   (#x959e ?àÃ)
-   (#x959f ?àÃ)
-   (#x95a1 ?»Ò)
-   (#x95a3 ?»Õ)
-   (#x95a4 ?»×)
-   (#x95a5 ?»Ö)
-   (#x95a8 ?»Ó)
-   (#x95a9 ?»Ô)
-   (#x95ab ?è§)
-   (#x95ac ?è¦)
-   (#x95ad ?¾[)
-   (#x95ae ?è¨)
-   (#x95b0 ?è©)
-   (#x95b1 ?¾\)
-   (#x95b5 ?ìM)
-   (#x95b6 ?ìK)
-   (#x95b7 ?îó)
-   (#x95b9 ?ìI)
-   (#x95ba ?ìJ)
-   (#x95bb ?ÀF)
-   (#x95bc ?ìF)
-   (#x95bd ?ìN)
-   (#x95be ?ìH)
-   (#x95bf ?ìL)
-   (#x95c0 ?îï)
-   (#x95c3 ?îñ)
-   (#x95c5 ?îò)
-   (#x95c6 ?Ãó)
-   (#x95c7 ?îî)
-   (#x95c8 ?Ãò)
-   (#x95c9 ?îð)
-   (#x95ca ?Ãï)
-   (#x95cb ?Ãð)
-   (#x95cc ?Ãñ)
-   (#x95cd ?ìG)
-   (#x95d0 ?Âõ)
-   (#x95d1 ?ñn)
-   (#x95d2 ?ñl)
-   (#x95d3 ?ñm)
-   (#x95d4 ?Âó)
-   (#x95d5 ?Âö)
-   (#x95d6 ?Âô)
-   (#x95da ?ów)
-   (#x95db ?óx)
-   (#x95dc ?Ãö)
-   (#x95de ?õE)
-   (#x95df ?õG)
-   (#x95e0 ?õF)
-   (#x95e1 ?ÄÄ)
-   (#x95e2 ?Ã…P)
-   (#x95e3 ?öm)
-   (#x95e4 ?öl)
-   (#x95e5 ?ök)
-   (#x961c ?ªú)
-   (#x961e ?ɪ)
-   (#x9620 ?ÊX)
-   (#x9621 ?¦é)
-   (#x9622 ?ÊV)
-   (#x9623 ?ÊY)
-   (#x9624 ?ÊW)
-   (#x9628 ?Ë®)
-   (#x962a ?¨Ã)
-   (#x962c ?¨Â)
-   (#x962d ?Ë°)
-   (#x962e ?¨¿)
-   (#x962f ?˯)
-   (#x9630 ?Ë­)
-   (#x9631 ?¨À)
-   (#x9632 ?¨¾)
-   (#x9639 ?ÃØ)
-   (#x963a ?ÃÛ)
-   (#x963b ?ªý)
-   (#x963c ?ÃÚ)
-   (#x963d ?ÃÙ)
-   (#x963f ?ªü)
-   (#x9640 ?ªû)
-   (#x9642 ?«@)
-   (#x9643 ?ÃÃœ)
-   (#x9644 ?ªþ)
-   (#x964a ?ÃÆ)
-   (#x964b ?­®)
-   (#x964c ?­¯)
-   (#x964d ?­°)
-   (#x964e ?ÃÇ)
-   (#x964f ?ÃÃ)
-   (#x9650 ?­­)
-   (#x9651 ?ÃÄ)
-   (#x9653 ?ÃÃ…)
-   (#x9654 ?ÃÂ)
-   (#x9658 ?°¤)
-   (#x965b ?°¡)
-   (#x965c ?ÔE)
-   (#x965d ?°¢)
-   (#x965e ?°¥)
-   (#x965f ?ÔF)
-   (#x9661 ?°~)
-   (#x9662 ?°|)
-   (#x9663 ?°})
-   (#x9664 ?°£)
-   (#x966a ?³­)
-   (#x966b ?ØI)
-   (#x966c ?³µ)
-   (#x966d ?ØH)
-   (#x966f ?ØK)
-   (#x9670 ?³±)
-   (#x9671 ?ØJ)
-   (#x9672 ?¶«)
-   (#x9673 ?³¯)
-   (#x9674 ?³²)
-   (#x9675 ?³®)
-   (#x9676 ?³³)
-   (#x9677 ?³´)
-   (#x9678 ?³°)
-   (#x967c ?ØG)
-   (#x967d ?¶§)
-   (#x967e ?Ãœ})
-   (#x9680 ?Ü£)
-   (#x9683 ?Ü¢)
-   (#x9684 ?¶¬)
-   (#x9685 ?¶¨)
-   (#x9686 ?¶©)
-   (#x9687 ?Ãœ|)
-   (#x9688 ?Ãœ~)
-   (#x9689 ?Ü¡)
-   (#x968a ?¶¤)
-   (#x968b ?¶¦)
-   (#x968d ?¶ª)
-   (#x968e ?¶¥)
-   (#x9691 ?àÓ)
-   (#x9692 ?àÑ)
-   (#x9693 ?àÒ)
-   (#x9694 ?¹j)
-   (#x9695 ?¹k)
-   (#x9697 ?àÔ)
-   (#x9698 ?¹i)
-   (#x9699 ?ȯ)
-   (#x969b ?»Ú)
-   (#x969c ?»Ù)
-   (#x969e ?ä»)
-   (#x96a1 ?ä¼)
-   (#x96a2 ?è«)
-   (#x96a4 ?èª)
-   (#x96a7 ?ÀG)
-   (#x96a8 ?ÀH)
-   (#x96a9 ?ìO)
-   (#x96aa ?ÀI)
-   (#x96ac ?îö)
-   (#x96ae ?îô)
-   (#x96b0 ?îõ)
-   (#x96b1 ?Ãô)
-   (#x96b3 ?ño)
-   (#x96b4 ?Ã÷)
-   (#x96b8 ?Ãõ)
-   (#x96b9 ?«A)
-   (#x96bb ?°¦)
-   (#x96bc ?ÔG)
-   (#x96bf ?ØL)
-   (#x96c0 ?³¶)
-   (#x96c1 ?¶­)
-   (#x96c2 ?ܤ)
-   (#x96c3 ?ܦ)
-   (#x96c4 ?¶¯)
-   (#x96c5 ?¶®)
-   (#x96c6 ?¶°)
-   (#x96c7 ?¶±)
-   (#x96c8 ?Ü¥)
-   (#x96c9 ?¹n)
-   (#x96ca ?¹o)
-   (#x96cb ?¹m)
-   (#x96cc ?»Û)
-   (#x96cd ?¹l)
-   (#x96ce ?àÕ)
-   (#x96d2 ?Ȇ)
-   (#x96d3 ?è¬)
-   (#x96d4 ?ìP)
-   (#x96d5 ?ÀJ)
-   (#x96d6 ?Ãö)
-   (#x96d7 ?ñp)
-   (#x96d8 ?ñt)
-   (#x96d9 ?Âù)
-   (#x96da ?ñq)
-   (#x96db ?Âú)
-   (#x96dc ?Âø)
-   (#x96dd ?ñu)
-   (#x96de ?Âû)
-   (#x96df ?ñs)
-   (#x96e1 ?óy)
-   (#x96e2 ?Â÷)
-   (#x96e3 ?Ãø)
-   (#x96e5 ?øÃ)
-   (#x96e8 ?«B)
-   (#x96e9 ?³¸)
-   (#x96ea ?³·)
-   (#x96ef ?¶²)
-   (#x96f0 ?ܨ)
-   (#x96f1 ?ܧ)
-   (#x96f2 ?¶³)
-   (#x96f5 ?àÙ)
-   (#x96f6 ?¹s)
-   (#x96f7 ?¹p)
-   (#x96f8 ?àØ)
-   (#x96f9 ?¹r)
-   (#x96fa ?àÖ)
-   (#x96fb ?¹q)
-   (#x96fd ?à×)
-   (#x96ff ?ä½)
-   (#x9700 ?»Ã)
-   (#x9702 ?è¯)
-   (#x9704 ?¾])
-   (#x9705 ?è­)
-   (#x9706 ?¾^)
-   (#x9707 ?¾_)
-   (#x9708 ?è®)
-   (#x9709 ?¾`)
-   (#x970b ?ìQ)
-   (#x970d ?ÀN)
-   (#x970e ?ÀK)
-   (#x970f ?ÀP)
-   (#x9710 ?ìS)
-   (#x9711 ?ÀL)
-   (#x9712 ?ìR)
-   (#x9713 ?ÀO)
-   (#x9716 ?ÀM)
-   (#x9718 ?îù)
-   (#x9719 ?îû)
-   (#x971c ?Ã÷)
-   (#x971d ?îú)
-   (#x971e ?Ãø)
-   (#x971f ?îø)
-   (#x9720 ?î÷)
-   (#x9722 ?ñw)
-   (#x9723 ?ñv)
-   (#x9724 ?Âü)
-   (#x9725 ?ñx)
-   (#x9726 ?ó~)
-   (#x9727 ?Ãú)
-   (#x9728 ?ó})
-   (#x9729 ?óz)
-   (#x972a ?Ãù)
-   (#x972b ?ó{)
-   (#x972c ?ó|)
-   (#x972e ?õH)
-   (#x972f ?õI)
-   (#x9730 ?ÄÅ)
-   (#x9732 ?Ã…S)
-   (#x9735 ?ön)
-   (#x9738 ?Ã…Q)
-   (#x9739 ?Ã…R)
-   (#x973a ?öo)
-   (#x973d ?Å´)
-   (#x973e ?ŵ)
-   (#x973f ?÷q)
-   (#x9742 ?ÆE)
-   (#x9743 ?øÃ)
-   (#x9744 ?ÆG)
-   (#x9746 ?øÎ)
-   (#x9747 ?øÃ)
-   (#x9748 ?ÆF)
-   (#x9749 ?ùW)
-   (#x974b ?ù­)
-   (#x9752 ?«C)
-   (#x9756 ?¹t)
-   (#x9758 ?ä¾)
-   (#x975a ?è°)
-   (#x975b ?ÀQ)
-   (#x975c ?ÀR)
-   (#x975e ?«D)
-   (#x9760 ?¾a)
-   (#x9761 ?Ãû)
-   (#x9762 ?­±)
-   (#x9766 ?ÀS)
-   (#x9768 ?Åâ)
-   (#x9769 ?­²)
-   (#x976a ?ØM)
-   (#x976c ?Ü©)
-   (#x976e ?Ü«)
-   (#x9770 ?ܪ)
-   (#x9772 ?àÃ)
-   (#x9773 ?àÚ)
-   (#x9774 ?¹u)
-   (#x9776 ?¹v)
-   (#x9777 ?àÛ)
-   (#x9778 ?àÜ)
-   (#x977a ?äÀ)
-   (#x977b ?äÅ)
-   (#x977c ?»Þ)
-   (#x977d ?ä¿)
-   (#x977e ?äÃ)
-   (#x977f ?äÈ)
-   (#x9780 ?äÃ)
-   (#x9781 ?äÇ)
-   (#x9782 ?äÄ)
-   (#x9783 ?äÂ)
-   (#x9784 ?äÆ)
-   (#x9785 ?ȧ)
-   (#x9788 ?è³)
-   (#x978a ?è±)
-   (#x978b ?¾c)
-   (#x978d ?¾b)
-   (#x978e ?è²)
-   (#x978f ?¾d)
-   (#x9794 ?ìV)
-   (#x9797 ?ìU)
-   (#x9798 ?ÀT)
-   (#x9799 ?ìT)
-   (#x979a ?îü)
-   (#x979c ?îþ)
-   (#x979d ?ïA)
-   (#x979e ?ï@)
-   (#x97a0 ?Ãù)
-   (#x97a1 ?îý)
-   (#x97a2 ?ñ¡)
-   (#x97a3 ?Âý)
-   (#x97a4 ?ñ})
-   (#x97a5 ?ñ¢)
-   (#x97a6 ?Âþ)
-   (#x97a8 ?ñ{)
-   (#x97aa ?ñ~)
-   (#x97ab ?ñ|)
-   (#x97ac ?ñy)
-   (#x97ad ?Ã@)
-   (#x97ae ?ñz)
-   (#x97b3 ?ó¡)
-   (#x97b6 ?ó£)
-   (#x97b7 ?ó¢)
-   (#x97b9 ?õJ)
-   (#x97bb ?õK)
-   (#x97bf ?öp)
-   (#x97c1 ?Å·)
-   (#x97c3 ?Ŷ)
-   (#x97c4 ?øO)
-   (#x97c5 ?øP)
-   (#x97c6 ?ÆH)
-   (#x97c7 ?øÑ)
-   (#x97c9 ?Æi)
-   (#x97cb ?­³)
-   (#x97cc ?¶´)
-   (#x97cd ?äÊ)
-   (#x97ce ?äÉ)
-   (#x97cf ?èµ)
-   (#x97d0 ?è´)
-   (#x97d3 ?Ãú)
-   (#x97d4 ?ïC)
-   (#x97d5 ?ïB)
-   (#x97d6 ?ñ¥)
-   (#x97d7 ?ñ£)
-   (#x97d8 ?ñ¦)
-   (#x97d9 ?ñ¤)
-   (#x97dc ?Ãü)
-   (#x97dd ?ó¤)
-   (#x97de ?ó¥)
-   (#x97df ?ó¦)
-   (#x97e1 ?öq)
-   (#x97e3 ?÷r)
-   (#x97e5 ?øÒ)
-   (#x97ed ?­´)
-   (#x97f0 ?ìW)
-   (#x97f1 ?ïD)
-   (#x97f3 ?­µ)
-   (#x97f6 ?Ȉ)
-   (#x97f8 ?ìX)
-   (#x97f9 ?ÃA)
-   (#x97fa ?ñ§)
-   (#x97fb ?Ãý)
-   (#x97fd ?õL)
-   (#x97fe ?õM)
-   (#x97ff ?Ã…T)
-   (#x9800 ?øQ)
-   (#x9801 ?­¶)
-   (#x9802 ?³»)
-   (#x9803 ?³¼)
-   (#x9804 ?ØN)
-   (#x9805 ?¶µ)
-   (#x9806 ?¶¶)
-   (#x9807 ?ܬ)
-   (#x9808 ?¶·)
-   (#x980a ?¹z)
-   (#x980c ?¹|)
-   (#x980d ?àß)
-   (#x980e ?àà)
-   (#x980f ?àÞ)
-   (#x9810 ?¹w)
-   (#x9811 ?¹x)
-   (#x9812 ?¹{)
-   (#x9813 ?¹y)
-   (#x9816 ?äË)
-   (#x9817 ?ȇ)
-   (#x9818 ?ȉ)
-   (#x981b ?è¼)
-   (#x981c ?¾g)
-   (#x981d ?è·)
-   (#x981e ?è¶)
-   (#x9820 ?è»)
-   (#x9821 ?¾e)
-   (#x9824 ?À[)
-   (#x9826 ?è¸)
-   (#x9827 ?è½)
-   (#x9828 ?èº)
-   (#x9829 ?è¹)
-   (#x982b ?¾f)
-   (#x982d ?ÀY)
-   (#x982f ?ìZ)
-   (#x9830 ?ÀU)
-   (#x9832 ?ì[)
-   (#x9835 ?ìY)
-   (#x9837 ?ÀX)
-   (#x9838 ?ÀV)
-   (#x9839 ?ÀZ)
-   (#x983b ?ÀW)
-   (#x9841 ?ïE)
-   (#x9843 ?ïJ)
-   (#x9844 ?ïF)
-   (#x9845 ?ïI)
-   (#x9846 ?Ãû)
-   (#x9848 ?íÔ)
-   (#x9849 ?ïH)
-   (#x984a ?ïG)
-   (#x984c ?ÃD)
-   (#x984d ?ÃB)
-   (#x984e ?ÃE)
-   (#x984f ?ÃC)
-   (#x9850 ?ñ¨)
-   (#x9851 ?ñ©)
-   (#x9852 ?ñª)
-   (#x9853 ?ÃF)
-   (#x9857 ?óª)
-   (#x9858 ?Ä@)
-   (#x9859 ?ó¨)
-   (#x985b ?ÄA)
-   (#x985c ?ó§)
-   (#x985d ?ó©)
-   (#x985e ?Ãþ)
-   (#x985f ?õQ)
-   (#x9860 ?õN)
-   (#x9862 ?õO)
-   (#x9863 ?õP)
-   (#x9864 ?ör)
-   (#x9865 ?Ã…V)
-   (#x9867 ?Ã…U)
-   (#x9869 ?÷t)
-   (#x986a ?÷s)
-   (#x986b ?Ÿ)
-   (#x986f ?Åã)
-   (#x9870 ?ÆI)
-   (#x9871 ?Æ`)
-   (#x9872 ?ùX)
-   (#x9873 ?ù®)
-   (#x9874 ?ù¯)
-   (#x98a8 ?­·)
-   (#x98a9 ?Ü­)
-   (#x98ac ?àá)
-   (#x98ad ?äÌ)
-   (#x98ae ?äÃ)
-   (#x98af ?ȋ)
-   (#x98b1 ?Ȋ)
-   (#x98b2 ?è¾)
-   (#x98b3 ?¾h)
-   (#x98b6 ?Ãü)
-   (#x98b8 ?ñ«)
-   (#x98ba ?ÃG)
-   (#x98bb ?ó­)
-   (#x98bc ?ÄB)
-   (#x98bd ?ó¬)
-   (#x98be ?ó®)
-   (#x98bf ?ó«)
-   (#x98c0 ?öu)
-   (#x98c1 ?õR)
-   (#x98c2 ?õS)
-   (#x98c4 ?ÄÆ)
-   (#x98c6 ?öt)
-   (#x98c9 ?ös)
-   (#x98cb ?÷u)
-   (#x98cc ?ù°)
-   (#x98db ?­¸)
-   (#x98df ?­¹)
-   (#x98e2 ?°§)
-   (#x98e3 ?ÔH)
-   (#x98e5 ?ØO)
-   (#x98e7 ?¶¸)
-   (#x98e9 ?¶»)
-   (#x98ea ?¶¹)
-   (#x98eb ?Ü®)
-   (#x98ed ?¶½)
-   (#x98ef ?¶º)
-   (#x98f2 ?¶¼)
-   (#x98f4 ?¹~)
-   (#x98f6 ?àâ)
-   (#x98f9 ?àã)
-   (#x98fa ?èÀ)
-   (#x98fc ?¹})
-   (#x98fd ?¹¡)
-   (#x98fe ?¹¢)
-   (#x9900 ?äÃ)
-   (#x9902 ?äÎ)
-   (#x9903 ?Ȍ)
-   (#x9905 ?Ⱦ)
-   (#x9907 ?äÃ)
-   (#x9908 ?è¿)
-   (#x9909 ?ȏ)
-   (#x990a ?¾i)
-   (#x990c ?ȍ)
-   (#x9910 ?À\)
-   (#x9911 ?èÃ)
-   (#x9912 ?¾k)
-   (#x9913 ?¾j)
-   (#x9914 ?èÂ)
-   (#x9915 ?èÅ)
-   (#x9916 ?èÃ)
-   (#x9917 ?èÄ)
-   (#x9918 ?¾l)
-   (#x991a ?Àa)
-   (#x991b ?À_)
-   (#x991e ?À^)
-   (#x991f ?ì])
-   (#x9921 ?À`)
-   (#x9924 ?ì\)
-   (#x9925 ?ïK)
-   (#x9927 ?ì^)
-   (#x9928 ?À])
-   (#x9929 ?ì_)
-   (#x992a ?ïN)
-   (#x992b ?ïL)
-   (#x992c ?ïM)
-   (#x992d ?ïR)
-   (#x992e ?ÃK)
-   (#x992f ?ïQ)
-   (#x9930 ?ïT)
-   (#x9931 ?ïS)
-   (#x9932 ?ïP)
-   (#x9933 ?ïO)
-   (#x9935 ?Ãý)
-   (#x993a ?ñ®)
-   (#x993c ?ñ­)
-   (#x993d ?ÃJ)
-   (#x993e ?ÃH)
-   (#x993f ?ÃI)
-   (#x9941 ?ñ¬)
-   (#x9943 ?ó±)
-   (#x9945 ?ÄC)
-   (#x9947 ?ó°)
-   (#x9948 ?ó¯)
-   (#x9949 ?ÄD)
-   (#x994b ?õX)
-   (#x994c ?õW)
-   (#x994e ?õU)
-   (#x9950 ?õT)
-   (#x9951 ?ÄÈ)
-   (#x9952 ?ÄÇ)
-   (#x9953 ?õY)
-   (#x9954 ?÷v)
-   (#x9955 ?Ź)
-   (#x9956 ?öw)
-   (#x9957 ?Ã…W)
-   (#x9958 ?öv)
-   (#x9959 ?õV)
-   (#x995b ?÷w)
-   (#x995c ?Åä)
-   (#x995e ?Æa)
-   (#x995f ?ùY)
-   (#x9961 ?ù±)
-   (#x9996 ?­º)
-   (#x9997 ?ØP)
-   (#x9998 ?ïU)
-   (#x9999 ?­»)
-   (#x999c ?äÒ)
-   (#x999d ?äÑ)
-   (#x999e ?ì`)
-   (#x99a1 ?ïW)
-   (#x99a3 ?ïV)
-   (#x99a5 ?ÃL)
-   (#x99a6 ?ó²)
-   (#x99a7 ?ó³)
-   (#x99a8 ?ÄÉ)
-   (#x99ab ?ù²)
-   (#x99ac ?°¨)
-   (#x99ad ?¶¿)
-   (#x99ae ?¶¾)
-   (#x99af ?àä)
-   (#x99b0 ?àæ)
-   (#x99b1 ?¹¤)
-   (#x99b2 ?àå)
-   (#x99b3 ?¹£)
-   (#x99b4 ?¹¥)
-   (#x99b5 ?àç)
-   (#x99b9 ?äÔ)
-   (#x99ba ?äÖ)
-   (#x99bb ?äÕ)
-   (#x99bd ?äØ)
-   (#x99c1 ?Ȏ)
-   (#x99c2 ?ä×)
-   (#x99c3 ?äÓ)
-   (#x99c7 ?äÙ)
-   (#x99c9 ?èÌ)
-   (#x99cb ?èÃ)
-   (#x99cc ?èÑ)
-   (#x99cd ?èÇ)
-   (#x99ce ?èË)
-   (#x99cf ?èÈ)
-   (#x99d0 ?¾n)
-   (#x99d1 ?¾q)
-   (#x99d2 ?¾s)
-   (#x99d3 ?èÉ)
-   (#x99d4 ?èÊ)
-   (#x99d5 ?¾r)
-   (#x99d6 ?èÃ)
-   (#x99d7 ?èÃ)
-   (#x99d8 ?èÎ)
-   (#x99d9 ?¾t)
-   (#x99db ?¾p)
-   (#x99dc ?èÆ)
-   (#x99dd ?¾m)
-   (#x99df ?¾o)
-   (#x99e2 ?Àc)
-   (#x99e3 ?ìf)
-   (#x99e4 ?ìd)
-   (#x99e5 ?ìc)
-   (#x99e7 ?ìi)
-   (#x99e9 ?ìh)
-   (#x99ea ?ìg)
-   (#x99ec ?ìb)
-   (#x99ed ?Àb)
-   (#x99ee ?ìa)
-   (#x99f0 ?ìe)
-   (#x99f1 ?Àd)
-   (#x99f4 ?ïZ)
-   (#x99f6 ?ï^)
-   (#x99f7 ?ï[)
-   (#x99f8 ?ï])
-   (#x99f9 ?ï\)
-   (#x99fa ?ïY)
-   (#x99fb ?ï_)
-   (#x99fc ?ïb)
-   (#x99fd ?ï`)
-   (#x99fe ?ïa)
-   (#x99ff ?Â@)
-   (#x9a01 ?Ãþ)
-   (#x9a02 ?ïX)
-   (#x9a03 ?ïc)
-   (#x9a04 ?ñ³)
-   (#x9a05 ?ñ¶)
-   (#x9a06 ?ñ¸)
-   (#x9a07 ?ñ·)
-   (#x9a09 ?ñ±)
-   (#x9a0a ?ñµ)
-   (#x9a0b ?ñ°)
-   (#x9a0d ?ñ²)
-   (#x9a0e ?ÃM)
-   (#x9a0f ?ñ¯)
-   (#x9a11 ?ñ´)
-   (#x9a14 ?óÀ)
-   (#x9a15 ?óµ)
-   (#x9a16 ?ÄE)
-   (#x9a19 ?ÄF)
-   (#x9a1a ?ó´)
-   (#x9a1b ?ó¹)
-   (#x9a1c ?ó¿)
-   (#x9a1d ?ó·)
-   (#x9a1e ?ó¾)
-   (#x9a20 ?ó»)
-   (#x9a22 ?óº)
-   (#x9a23 ?ó½)
-   (#x9a24 ?ó¸)
-   (#x9a25 ?ó¶)
-   (#x9a27 ?ó¼)
-   (#x9a29 ?õ`)
-   (#x9a2a ?õ^)
-   (#x9a2b ?ÄÊ)
-   (#x9a2c ?õ])
-   (#x9a2d ?õc)
-   (#x9a2e ?õa)
-   (#x9a30 ?ÄË)
-   (#x9a31 ?õ\)
-   (#x9a32 ?õZ)
-   (#x9a34 ?õ[)
-   (#x9a35 ?ÄÃ)
-   (#x9a36 ?õ_)
-   (#x9a37 ?ÄÌ)
-   (#x9a38 ?õb)
-   (#x9a39 ?öx)
-   (#x9a3a ?ö~)
-   (#x9a3d ?öy)
-   (#x9a3e ?Ã…[)
-   (#x9a3f ?ö¡)
-   (#x9a40 ?Ã…Z)
-   (#x9a41 ?ö})
-   (#x9a42 ?ö|)
-   (#x9a43 ?Ã…Y)
-   (#x9a44 ?ö{)
-   (#x9a45 ?Ã…X)
-   (#x9a46 ?öz)
-   (#x9a48 ?÷})
-   (#x9a49 ?÷¡)
-   (#x9a4a ?÷~)
-   (#x9a4c ?÷{)
-   (#x9a4d ?Å»)
-   (#x9a4e ?÷x)
-   (#x9a4f ?÷|)
-   (#x9a50 ?÷£)
-   (#x9a52 ?÷¢)
-   (#x9a53 ?÷y)
-   (#x9a54 ?÷z)
-   (#x9a55 ?ź)
-   (#x9a56 ?øR)
-   (#x9a57 ?Åç)
-   (#x9a59 ?øS)
-   (#x9a5a ?Ã…Ã¥)
-   (#x9a5b ?Åæ)
-   (#x9a5e ?øÓ)
-   (#x9a5f ?ÆJ)
-   (#x9a60 ?ùv)
-   (#x9a62 ?Æj)
-   (#x9a64 ?ù³)
-   (#x9a65 ?Æk)
-   (#x9a66 ?ù´)
-   (#x9a67 ?ùµ)
-   (#x9a68 ?ùÃ)
-   (#x9a69 ?ùÂ)
-   (#x9a6a ?Æz)
-   (#x9a6b ?ùÃ)
-   (#x9aa8 ?°©)
-   (#x9aab ?àé)
-   (#x9aad ?àè)
-   (#x9aaf ?Ȑ)
-   (#x9ab0 ?ȑ)
-   (#x9ab1 ?äÚ)
-   (#x9ab3 ?èÒ)
-   (#x9ab4 ?ìl)
-   (#x9ab7 ?¾u)
-   (#x9ab8 ?Àe)
-   (#x9ab9 ?ìj)
-   (#x9abb ?ìm)
-   (#x9abc ?Àf)
-   (#x9abe ?ïd)
-   (#x9abf ?ìk)
-   (#x9ac0 ?ñ¹)
-   (#x9ac1 ?ÃN)
-   (#x9ac2 ?óÃ)
-   (#x9ac6 ?õf)
-   (#x9ac7 ?õd)
-   (#x9aca ?õe)
-   (#x9acd ?ö¢)
-   (#x9acf ?Ã…\)
-   (#x9ad0 ?÷¤)
-   (#x9ad1 ?Åê)
-   (#x9ad2 ?ż)
-   (#x9ad3 ?Åè)
-   (#x9ad4 ?Åé)
-   (#x9ad5 ?øÔ)
-   (#x9ad6 ?Æb)
-   (#x9ad8 ?°ª)
-   (#x9adc ?ñº)
-   (#x9adf ?ÔI)
-   (#x9ae1 ?¹¦)
-   (#x9ae3 ?äÛ)
-   (#x9ae6 ?ȓ)
-   (#x9ae7 ?äÜ)
-   (#x9aeb ?èÔ)
-   (#x9aec ?èÓ)
-   (#x9aed ?Àh)
-   (#x9aee ?¾v)
-   (#x9aef ?¾w)
-   (#x9af1 ?è×)
-   (#x9af2 ?èÖ)
-   (#x9af3 ?èÕ)
-   (#x9af6 ?ìn)
-   (#x9af7 ?ìq)
-   (#x9af9 ?ìp)
-   (#x9afa ?ìo)
-   (#x9afb ?Àg)
-   (#x9afc ?ïh)
-   (#x9afd ?ïf)
-   (#x9afe ?ïe)
-   (#x9b01 ?ïg)
-   (#x9b03 ?ÃO)
-   (#x9b04 ?ñ¼)
-   (#x9b05 ?ñ½)
-   (#x9b06 ?ÃP)
-   (#x9b08 ?ñ»)
-   (#x9b0a ?óÃ)
-   (#x9b0b ?óÂ)
-   (#x9b0c ?óÅ)
-   (#x9b0d ?ÄG)
-   (#x9b0e ?óÄ)
-   (#x9b10 ?õg)
-   (#x9b11 ?õi)
-   (#x9b12 ?õh)
-   (#x9b15 ?ö£)
-   (#x9b16 ?ö¦)
-   (#x9b17 ?ö¤)
-   (#x9b18 ?ö¥)
-   (#x9b19 ?÷¥)
-   (#x9b1a ?Ž)
-   (#x9b1e ?øT)
-   (#x9b1f ?øU)
-   (#x9b20 ?øV)
-   (#x9b22 ?ÆK)
-   (#x9b23 ?Æc)
-   (#x9b24 ?ù¶)
-   (#x9b25 ?°«)
-   (#x9b27 ?¾x)
-   (#x9b28 ?Ài)
-   (#x9b29 ?ñ¾)
-   (#x9b2b ?÷¦)
-   (#x9b2e ?ùÄ)
-   (#x9b2f ?ÔJ)
-   (#x9b31 ?Æ{)
-   (#x9b32 ?°¬)
-   (#x9b33 ?ìr)
-   (#x9b35 ?ñ¿)
-   (#x9b37 ?óÆ)
-   (#x9b3a ?ö§)
-   (#x9b3b ?֤)
-   (#x9b3c ?°­)
-   (#x9b3e ?äÃ)
-   (#x9b3f ?äÞ)
-   (#x9b41 ?Ȓ)
-   (#x9b42 ?Ȕ)
-   (#x9b43 ?èÙ)
-   (#x9b44 ?¾z)
-   (#x9b45 ?¾y)
-   (#x9b46 ?èØ)
-   (#x9b48 ?ïi)
-   (#x9b4a ?ñÀ)
-   (#x9b4b ?ñÂ)
-   (#x9b4c ?ñÃ)
-   (#x9b4d ?ÃS)
-   (#x9b4e ?ÃR)
-   (#x9b4f ?ÃQ)
-   (#x9b51 ?Ã…^)
-   (#x9b52 ?ö¨)
-   (#x9b54 ?Ã…])
-   (#x9b55 ?֩)
-   (#x9b56 ?֬)
-   (#x9b58 ?ÆL)
-   (#x9b59 ?øÕ)
-   (#x9b5a ?³½)
-   (#x9b5b ?àê)
-   (#x9b5f ?äá)
-   (#x9b60 ?äß)
-   (#x9b61 ?äà)
-   (#x9b64 ?èâ)
-   (#x9b66 ?èÃ)
-   (#x9b67 ?èÚ)
-   (#x9b68 ?èá)
-   (#x9b6c ?èã)
-   (#x9b6f ?¾|)
-   (#x9b70 ?èà)
-   (#x9b71 ?èÜ)
-   (#x9b74 ?èÛ)
-   (#x9b75 ?èß)
-   (#x9b76 ?èÞ)
-   (#x9b77 ?¾{)
-   (#x9b7a ?ì})
-   (#x9b7b ?ìx)
-   (#x9b7c ?ìv)
-   (#x9b7d ?ì¡)
-   (#x9b7e ?ìw)
-   (#x9b80 ?ìs)
-   (#x9b82 ?ìy)
-   (#x9b85 ?ìt)
-   (#x9b86 ?ïr)
-   (#x9b87 ?ìu)
-   (#x9b88 ?ì¢)
-   (#x9b90 ?ì|)
-   (#x9b91 ?Àj)
-   (#x9b92 ?ì{)
-   (#x9b93 ?ìz)
-   (#x9b95 ?ì~)
-   (#x9b9a ?ïj)
-   (#x9b9b ?ïm)
-   (#x9b9e ?ïl)
-   (#x9ba0 ?ït)
-   (#x9ba1 ?ïo)
-   (#x9ba2 ?ïs)
-   (#x9ba4 ?ïq)
-   (#x9ba5 ?ïp)
-   (#x9ba6 ?ïn)
-   (#x9ba8 ?ïk)
-   (#x9baa ?ÂC)
-   (#x9bab ?ÂB)
-   (#x9bad ?ÂD)
-   (#x9bae ?ÂA)
-   (#x9baf ?ïu)
-   (#x9bb5 ?ñÈ)
-   (#x9bb6 ?ñË)
-   (#x9bb8 ?ñÉ)
-   (#x9bb9 ?ñÃ)
-   (#x9bbd ?ñÎ)
-   (#x9bbf ?ñÆ)
-   (#x9bc0 ?ÃX)
-   (#x9bc1 ?ñÇ)
-   (#x9bc3 ?ñÅ)
-   (#x9bc4 ?ñÌ)
-   (#x9bc6 ?ñÄ)
-   (#x9bc7 ?ñÃ)
-   (#x9bc8 ?ÃW)
-   (#x9bc9 ?ÃU)
-   (#x9bca ?ÃT)
-   (#x9bd3 ?ñÊ)
-   (#x9bd4 ?óÃ)
-   (#x9bd5 ?óÕ)
-   (#x9bd6 ?ÄJ)
-   (#x9bd7 ?óÃ)
-   (#x9bd9 ?óÓ)
-   (#x9bda ?ó×)
-   (#x9bdb ?ÄK)
-   (#x9bdc ?óÒ)
-   (#x9bde ?óÊ)
-   (#x9be0 ?óÉ)
-   (#x9be1 ?óÖ)
-   (#x9be2 ?óÃ)
-   (#x9be4 ?óË)
-   (#x9be5 ?óÔ)
-   (#x9be6 ?óÌ)
-   (#x9be7 ?ÄI)
-   (#x9be8 ?ÄH)
-   (#x9bea ?óÇ)
-   (#x9beb ?óÈ)
-   (#x9bec ?óÑ)
-   (#x9bf0 ?óÎ)
-   (#x9bf7 ?õl)
-   (#x9bf8 ?õo)
-   (#x9bfd ?ÃV)
-   (#x9c05 ?õm)
-   (#x9c06 ?õs)
-   (#x9c07 ?õq)
-   (#x9c08 ?õk)
-   (#x9c09 ?õv)
-   (#x9c0b ?õj)
-   (#x9c0d ?ÄÃ)
-   (#x9c0e ?õr)
-   (#x9c12 ?õn)
-   (#x9c13 ?ÄÎ)
-   (#x9c14 ?õu)
-   (#x9c17 ?õt)
-   (#x9c1c ?ö«)
-   (#x9c1d ?öª)
-   (#x9c21 ?ö±)
-   (#x9c23 ?ö­)
-   (#x9c24 ?ö°)
-   (#x9c25 ?Ã…`)
-   (#x9c28 ?ö®)
-   (#x9c29 ?ö¯)
-   (#x9c2b ?ö©)
-   (#x9c2c ?ö¬)
-   (#x9c2d ?Ã…_)
-   (#x9c31 ?Å¿)
-   (#x9c32 ?÷´)
-   (#x9c33 ?÷¯)
-   (#x9c34 ?÷³)
-   (#x9c36 ?֦)
-   (#x9c37 ?÷²)
-   (#x9c39 ?÷®)
-   (#x9c3b ?Ã…Ã)
-   (#x9c3c ?÷±)
-   (#x9c3d ?÷µ)
-   (#x9c3e ?ÅÀ)
-   (#x9c3f ?÷¬)
-   (#x9c40 ?õp)
-   (#x9c41 ?÷°)
-   (#x9c44 ?÷­)
-   (#x9c46 ?ֻ)
-   (#x9c48 ?÷«)
-   (#x9c49 ?ž)
-   (#x9c4a ?øZ)
-   (#x9c4b ?ø\)
-   (#x9c4c ?ø_)
-   (#x9c4d ?ø[)
-   (#x9c4e ?ø`)
-   (#x9c50 ?øY)
-   (#x9c52 ?øW)
-   (#x9c54 ?Åë)
-   (#x9c55 ?ø])
-   (#x9c56 ?Åí)
-   (#x9c57 ?Åì)
-   (#x9c58 ?øX)
-   (#x9c59 ?ø^)
-   (#x9c5e ?øÚ)
-   (#x9c5f ?ÆM)
-   (#x9c60 ?øÛ)
-   (#x9c62 ?øÙ)
-   (#x9c63 ?øÖ)
-   (#x9c66 ?øØ)
-   (#x9c67 ?ø×)
-   (#x9c68 ?ùZ)
-   (#x9c6d ?ù\)
-   (#x9c6e ?ù[)
-   (#x9c71 ?ùy)
-   (#x9c73 ?ùx)
-   (#x9c74 ?ùw)
-   (#x9c75 ?ùz)
-   (#x9c77 ?Æs)
-   (#x9c78 ?Æt)
-   (#x9c79 ?ùÊ)
-   (#x9c7a ?ùÎ)
-   (#x9ce5 ?³¾)
-   (#x9ce6 ?ܯ)
-   (#x9ce7 ?àí)
-   (#x9ce9 ?¹§)
-   (#x9cea ?àë)
-   (#x9ced ?àì)
-   (#x9cf1 ?äâ)
-   (#x9cf2 ?äã)
-   (#x9cf3 ?Ȗ)
-   (#x9cf4 ?ȕ)
-   (#x9cf5 ?ää)
-   (#x9cf6 ?»ð)
-   (#x9cf7 ?èè)
-   (#x9cf9 ?èë)
-   (#x9cfa ?èå)
-   (#x9cfb ?èì)
-   (#x9cfc ?èä)
-   (#x9cfd ?èæ)
-   (#x9cff ?èç)
-   (#x9d00 ?èê)
-   (#x9d03 ?¾¡)
-   (#x9d04 ?èï)
-   (#x9d05 ?èî)
-   (#x9d06 ?¾})
-   (#x9d07 ?èé)
-   (#x9d08 ?èí)
-   (#x9d09 ?¾~)
-   (#x9d10 ?ì¬)
-   (#x9d12 ?Ào)
-   (#x9d14 ?ì§)
-   (#x9d15 ?Àk)
-   (#x9d17 ?ì¤)
-   (#x9d18 ?ìª)
-   (#x9d19 ?ì­)
-   (#x9d1b ?Àp)
-   (#x9d1d ?ì©)
-   (#x9d1e ?ì¦)
-   (#x9d1f ?ì®)
-   (#x9d20 ?ì¥)
-   (#x9d22 ?ì«)
-   (#x9d23 ?Àl)
-   (#x9d25 ?ì£)
-   (#x9d26 ?Àm)
-   (#x9d28 ?Àn)
-   (#x9d29 ?ì¨)
-   (#x9d2d ?ï©)
-   (#x9d2e ?ïz)
-   (#x9d2f ?ï{)
-   (#x9d30 ?ï~)
-   (#x9d31 ?ï|)
-   (#x9d33 ?ïv)
-   (#x9d36 ?ïy)
-   (#x9d37 ?ï¥)
-   (#x9d38 ?ï})
-   (#x9d3b ?ÂE)
-   (#x9d3d ?ï§)
-   (#x9d3e ?ï¤)
-   (#x9d3f ?ÂF)
-   (#x9d40 ?ï¦)
-   (#x9d41 ?ïw)
-   (#x9d42 ?ï¢)
-   (#x9d43 ?ï£)
-   (#x9d45 ?ï¡)
-   (#x9d4a ?ñÒ)
-   (#x9d4b ?ñÔ)
-   (#x9d4c ?ñ×)
-   (#x9d4f ?ñÑ)
-   (#x9d51 ?ÃY)
-   (#x9d52 ?ñÙ)
-   (#x9d53 ?ñÃ)
-   (#x9d54 ?ñÚ)
-   (#x9d56 ?ñÖ)
-   (#x9d57 ?ñØ)
-   (#x9d58 ?ñÜ)
-   (#x9d59 ?ñÕ)
-   (#x9d5a ?ñÃ)
-   (#x9d5b ?ñÓ)
-   (#x9d5c ?ñÃ)
-   (#x9d5d ?ÃZ)
-   (#x9d5f ?ñÛ)
-   (#x9d60 ?Ã[)
-   (#x9d61 ?ÄM)
-   (#x9d67 ?ïx)
-   (#x9d68 ?óñ)
-   (#x9d69 ?óè)
-   (#x9d6a ?ÄO)
-   (#x9d6b ?óä)
-   (#x9d6c ?ÄP)
-   (#x9d6f ?óí)
-   (#x9d70 ?óç)
-   (#x9d71 ?óÃ)
-   (#x9d72 ?ÄN)
-   (#x9d73 ?óê)
-   (#x9d74 ?óå)
-   (#x9d75 ?óæ)
-   (#x9d77 ?óØ)
-   (#x9d78 ?óß)
-   (#x9d79 ?óî)
-   (#x9d7b ?óë)
-   (#x9d7d ?óã)
-   (#x9d7f ?óï)
-   (#x9d80 ?óÞ)
-   (#x9d81 ?óÙ)
-   (#x9d82 ?óì)
-   (#x9d84 ?óÛ)
-   (#x9d85 ?óé)
-   (#x9d86 ?óà)
-   (#x9d87 ?óð)
-   (#x9d88 ?óÜ)
-   (#x9d89 ?ÄL)
-   (#x9d8a ?óÚ)
-   (#x9d8b ?óá)
-   (#x9d8c ?óâ)
-   (#x9d90 ?õ})
-   (#x9d92 ?õ{)
-   (#x9d94 ?õ¢)
-   (#x9d96 ?õ®)
-   (#x9d97 ?õ¥)
-   (#x9d98 ?õ|)
-   (#x9d99 ?õx)
-   (#x9d9a ?õ§)
-   (#x9d9b ?õ~)
-   (#x9d9c ?õ£)
-   (#x9d9d ?õz)
-   (#x9d9e ?õª)
-   (#x9d9f ?õw)
-   (#x9da0 ?õ¡)
-   (#x9da1 ?õ¦)
-   (#x9da2 ?õ¨)
-   (#x9da3 ?õ«)
-   (#x9da4 ?õy)
-   (#x9da6 ?õ¯)
-   (#x9da7 ?õ°)
-   (#x9da8 ?õ©)
-   (#x9da9 ?õ­)
-   (#x9daa ?õ¤)
-   (#x9dac ?öÃ)
-   (#x9dad ?öÄ)
-   (#x9daf ?Ã…a)
-   (#x9db1 ?öÃ)
-   (#x9db2 ?öÈ)
-   (#x9db3 ?öÆ)
-   (#x9db4 ?Ã…b)
-   (#x9db5 ?ö½)
-   (#x9db6 ?ö³)
-   (#x9db7 ?ö²)
-   (#x9db8 ?Ã…d)
-   (#x9db9 ?ö¿)
-   (#x9dba ?öÀ)
-   (#x9dbb ?ö¼)
-   (#x9dbc ?ö´)
-   (#x9dbe ?ö¹)
-   (#x9dbf ?õ¬)
-   (#x9dc1 ?öµ)
-   (#x9dc2 ?Ã…c)
-   (#x9dc3 ?ö»)
-   (#x9dc5 ?öº)
-   (#x9dc7 ?ö¶)
-   (#x9dc8 ?öÂ)
-   (#x9dca ?ö·)
-   (#x9dcb ?÷»)
-   (#x9dcc ?öÅ)
-   (#x9dcd ?öÇ)
-   (#x9dce ?ö¾)
-   (#x9dcf ?ö¸)
-   (#x9dd0 ?÷¼)
-   (#x9dd1 ?÷¾)
-   (#x9dd2 ?÷¸)
-   (#x9dd3 ?ÅÂ)
-   (#x9dd5 ?ց)
-   (#x9dd6 ?÷Ã)
-   (#x9dd7 ?ÅÃ)
-   (#x9dd8 ?÷Â)
-   (#x9dd9 ?÷Ã)
-   (#x9dda ?ּ)
-   (#x9ddb ?÷·)
-   (#x9ddc ?÷½)
-   (#x9ddd ?֮)
-   (#x9dde ?÷¹)
-   (#x9ddf ?÷¿)
-   (#x9de1 ?øi)
-   (#x9de2 ?øn)
-   (#x9de3 ?ød)
-   (#x9de4 ?øg)
-   (#x9de5 ?Åî)
-   (#x9de6 ?øk)
-   (#x9de8 ?ør)
-   (#x9de9 ?÷À)
-   (#x9deb ?øe)
-   (#x9dec ?øo)
-   (#x9ded ?øs)
-   (#x9dee ?øj)
-   (#x9def ?øc)
-   (#x9df0 ?øm)
-   (#x9df2 ?øl)
-   (#x9df3 ?øq)
-   (#x9df4 ?øp)
-   (#x9df5 ?ր)
-   (#x9df6 ?øh)
-   (#x9df7 ?øb)
-   (#x9df8 ?øf)
-   (#x9df9 ?ÆN)
-   (#x9dfa ?ÆO)
-   (#x9dfb ?øa)
-   (#x9dfd ?øæ)
-   (#x9dfe ?øÃ)
-   (#x9dff ?øå)
-   (#x9e00 ?øâ)
-   (#x9e01 ?øã)
-   (#x9e02 ?øÜ)
-   (#x9e03 ?øß)
-   (#x9e04 ?øç)
-   (#x9e05 ?øá)
-   (#x9e06 ?øà)
-   (#x9e07 ?øÞ)
-   (#x9e09 ?øä)
-   (#x9e0b ?ù])
-   (#x9e0d ?ù^)
-   (#x9e0f ?ù`)
-   (#x9e10 ?ù_)
-   (#x9e11 ?ùb)
-   (#x9e12 ?ùa)
-   (#x9e13 ?ù|)
-   (#x9e14 ?ù{)
-   (#x9e15 ?ù·)
-   (#x9e17 ?ù¸)
-   (#x9e19 ?ùÅ)
-   (#x9e1a ?Æx)
-   (#x9e1b ?Æ|)
-   (#x9e1d ?ùÃ)
-   (#x9e1e ?Æ})
-   (#x9e75 ?³¿)
-   (#x9e79 ?ÄÃ)
-   (#x9e7a ?öÉ)
-   (#x9e7c ?ÆP)
-   (#x9e7d ?ÆQ)
-   (#x9e7f ?³À)
-   (#x9e80 ?àî)
-   (#x9e82 ?¹¨)
-   (#x9e83 ?èð)
-   (#x9e86 ?ì°)
-   (#x9e87 ?ì±)
-   (#x9e88 ?ì¯)
-   (#x9e89 ?ï«)
-   (#x9e8a ?ïª)
-   (#x9e8b ?ÂG)
-   (#x9e8c ?ñß)
-   (#x9e8d ?ï¬)
-   (#x9e8e ?ñÞ)
-   (#x9e91 ?óó)
-   (#x9e92 ?ÄQ)
-   (#x9e93 ?ÄS)
-   (#x9e94 ?óò)
-   (#x9e97 ?ÄR)
-   (#x9e99 ?õ±)
-   (#x9e9a ?õ³)
-   (#x9e9b ?õ²)
-   (#x9e9c ?öÊ)
-   (#x9e9d ?Ã…e)
-   (#x9e9f ?Åï)
-   (#x9ea0 ?øè)
-   (#x9ea1 ?ùc)
-   (#x9ea4 ?ùÒ)
-   (#x9ea5 ?³Ã)
-   (#x9ea7 ?äå)
-   (#x9ea9 ?¾¢)
-   (#x9ead ?ì³)
-   (#x9eae ?ì²)
-   (#x9eb0 ?ï­)
-   (#x9eb4 ?ÄT)
-   (#x9eb5 ?ÄÑ)
-   (#x9eb6 ?ւ)
-   (#x9eb7 ?ùË)
-   (#x9ebb ?³Â)
-   (#x9ebc ?»ò)
-   (#x9ebe ?¾£)
-   (#x9ec0 ?óô)
-   (#x9ec2 ?øt)
-   (#x9ec3 ?¶À)
-   (#x9ec8 ?ï®)
-   (#x9ecc ?Æd)
-   (#x9ecd ?¶Ã)
-   (#x9ece ?¾¤)
-   (#x9ecf ?ÂH)
-   (#x9ed0 ?øu)
-   (#x9ed1 ?¶Â)
-   (#x9ed3 ?èñ)
-   (#x9ed4 ?Àr)
-   (#x9ed5 ?ì´)
-   (#x9ed6 ?ìµ)
-   (#x9ed8 ?Àq)
-   (#x9eda ?ï¯)
-   (#x9edb ?ÂL)
-   (#x9edc ?ÂJ)
-   (#x9edd ?ÂK)
-   (#x9ede ?ÂI)
-   (#x9edf ?ñà)
-   (#x9ee0 ?Ã\)
-   (#x9ee4 ?õµ)
-   (#x9ee5 ?õ´)
-   (#x9ee6 ?õ·)
-   (#x9ee7 ?õ¶)
-   (#x9ee8 ?ÄÒ)
-   (#x9eeb ?öË)
-   (#x9eed ?öÃ)
-   (#x9eee ?öÌ)
-   (#x9eef ?Ã…f)
-   (#x9ef0 ?÷È)
-   (#x9ef2 ?øv)
-   (#x9ef3 ?øw)
-   (#x9ef4 ?Åð)
-   (#x9ef5 ?ùd)
-   (#x9ef6 ?ù})
-   (#x9ef7 ?Æu)
-   (#x9ef9 ?Ü°)
-   (#x9efa ?ì¶)
-   (#x9efb ?ï°)
-   (#x9efc ?óõ)
-   (#x9efd ?àï)
-   (#x9eff ?ï±)
-   (#x9f00 ?ñâ)
-   (#x9f01 ?ñá)
-   (#x9f06 ?øx)
-   (#x9f07 ?ÆR)
-   (#x9f09 ?ùe)
-   (#x9f0a ?ù~)
-   (#x9f0e ?¹©)
-   (#x9f0f ?èò)
-   (#x9f10 ?èó)
-   (#x9f12 ?ì·)
-   (#x9f13 ?¹ª)
-   (#x9f15 ?Ã])
-   (#x9f16 ?ñã)
-   (#x9f18 ?öÃ)
-   (#x9f19 ?Ã…g)
-   (#x9f1a ?öÃ)
-   (#x9f1b ?öÎ)
-   (#x9f1c ?øy)
-   (#x9f1e ?øé)
-   (#x9f20 ?¹«)
-   (#x9f22 ?ï´)
-   (#x9f23 ?ï³)
-   (#x9f24 ?ï²)
-   (#x9f25 ?ñä)
-   (#x9f28 ?ñè)
-   (#x9f29 ?ñç)
-   (#x9f2a ?ñæ)
-   (#x9f2b ?ñå)
-   (#x9f2c ?Ã^)
-   (#x9f2d ?óö)
-   (#x9f2e ?õ¹)
-   (#x9f2f ?ÄÓ)
-   (#x9f30 ?õ¸)
-   (#x9f31 ?öÑ)
-   (#x9f32 ?÷Ë)
-   (#x9f33 ?÷Ê)
-   (#x9f34 ?ÅÄ)
-   (#x9f35 ?փ)
-   (#x9f36 ?ø|)
-   (#x9f37 ?ø{)
-   (#x9f38 ?øz)
-   (#x9f3b ?»ó)
-   (#x9f3d ?ì¸)
-   (#x9f3e ?ÂM)
-   (#x9f40 ?ó÷)
-   (#x9f41 ?óø)
-   (#x9f42 ?÷Ì)
-   (#x9f43 ?ø})
-   (#x9f46 ?øê)
-   (#x9f47 ?ùf)
-   (#x9f48 ?ù¹)
-   (#x9f49 ?ùÔ)
-   (#x9f4a ?»ô)
-   (#x9f4b ?ÂN)
-   (#x9f4c ?ñé)
-   (#x9f4d ?óù)
-   (#x9f4e ?öÒ)
-   (#x9f4f ?ø~)
-   (#x9f52 ?¾¦)
-   (#x9f54 ?ïµ)
-   (#x9f55 ?ñê)
-   (#x9f56 ?óú)
-   (#x9f57 ?óû)
-   (#x9f58 ?óü)
-   (#x9f59 ?õ¾)
-   (#x9f5b ?õº)
-   (#x9f5c ?Ã…h)
-   (#x9f5d ?õ½)
-   (#x9f5e ?õ¼)
-   (#x9f5f ?ÄÔ)
-   (#x9f60 ?õ»)
-   (#x9f61 ?ÄÖ)
-   (#x9f63 ?ÄÕ)
-   (#x9f64 ?öÔ)
-   (#x9f65 ?öÓ)
-   (#x9f66 ?Ã…i)
-   (#x9f67 ?Ã…j)
-   (#x9f6a ?ÅÆ)
-   (#x9f6b ?÷Ã)
-   (#x9f6c ?Ã…Ã…)
-   (#x9f6e ?ø£)
-   (#x9f6f ?ø¤)
-   (#x9f70 ?ø¢)
-   (#x9f71 ?ø¡)
-   (#x9f72 ?ÆT)
-   (#x9f74 ?øë)
-   (#x9f75 ?øì)
-   (#x9f76 ?øí)
-   (#x9f77 ?ÆS)
-   (#x9f78 ?ùg)
-   (#x9f79 ?ùj)
-   (#x9f7a ?ùi)
-   (#x9f7b ?ùh)
-   (#x9f7e ?ùÓ)
-   (#x9f8d ?Às)
-   (#x9f90 ?Ãe)
-   (#x9f91 ?õ¿)
-   (#x9f92 ?öÕ)
-   (#x9f94 ?ÅÇ)
-   (#x9f95 ?÷Î)
-   (#x9f98 ?ùÕ)
-   (#x9f9c ?Àt)
-   (#x9fa0 ?ï¶)
-   (#x9fa2 ?÷Ã)
-   (#x9fa4 ?ù¡)
-   (#xf6b1 ?Æ¡)
-   (#xf6b2 ?Æ¢)
-   (#xf6b3 ?Æ£)
-   (#xf6b4 ?Ƥ)
-   (#xf6b5 ?Æ¥)
-   (#xf6b6 ?Ʀ)
-   (#xf6b7 ?Ƨ)
-   (#xf6b8 ?ƨ)
-   (#xf6b9 ?Æ©)
-   (#xf6ba ?ƪ)
-   (#xf6bb ?Æ«)
-   (#xf6bc ?Ƭ)
-   (#xf6bd ?Æ­)
-   (#xf6be ?Æ®)
-   (#xf6bf ?Ư)
-   (#xf6c0 ?Æ°)
-   (#xf6c1 ?Ʊ)
-   (#xf6c2 ?Ʋ)
-   (#xf6c3 ?Ƴ)
-   (#xf6c4 ?Æ´)
-   (#xf6c5 ?Ƶ)
-   (#xf6c6 ?ƶ)
-   (#xf6c7 ?Æ·)
-   (#xf6c8 ?Ƹ)
-   (#xf6c9 ?ƹ)
-   (#xf6ca ?ƺ)
-   (#xf6cb ?Æ»)
-   (#xf6cc ?Ƽ)
-   (#xf6cd ?ƽ)
-   (#xf6ce ?ƾ)
-   (#xf6cf ?Æ¿)
-   (#xf6d0 ?ÆÀ)
-   (#xf6d1 ?ÆÃ)
-   (#xf6d2 ?ÆÂ)
-   (#xf6d3 ?ÆÃ)
-   (#xf6d4 ?ÆÄ)
-   (#xf6d5 ?ÆÅ)
-   (#xf6d6 ?ÆÆ)
-   (#xf6d7 ?ÆÇ)
-   (#xf6d8 ?ÆÈ)
-   (#xf6d9 ?ÆÉ)
-   (#xf6da ?ÆÊ)
-   (#xf6db ?ÆË)
-   (#xf6dc ?ÆÌ)
-   (#xf6dd ?ÆÃ)
-   (#xf6de ?ÆÎ)
-   (#xf6df ?ÆÃ)
-   (#xf6e0 ?ÆÃ)
-   (#xf6e1 ?ÆÑ)
-   (#xf6e2 ?ÆÒ)
-   (#xf6e3 ?ÆÓ)
-   (#xf6e4 ?ÆÔ)
-   (#xf6e5 ?ÆÕ)
-   (#xf6e6 ?ÆÖ)
-   (#xf6e7 ?Æ×)
-   (#xf6e8 ?ÆØ)
-   (#xf6e9 ?ÆÙ)
-   (#xf6ea ?ÆÚ)
-   (#xf6eb ?ÆÛ)
-   (#xf6ec ?ÆÜ)
-   (#xf6ed ?ÆÃ)
-   (#xf6ee ?ÆÞ)
-   (#xf6ef ?Æß)
-   (#xf6f0 ?Æà)
-   (#xf6f1 ?Æá)
-   (#xf6f2 ?Æâ)
-   (#xf6f3 ?Æã)
-   (#xf6f4 ?Æä)
-   (#xf6f5 ?Æå)
-   (#xf6f6 ?Ææ)
-   (#xf6f7 ?Æç)
-   (#xf6f8 ?Æè)
-   (#xf6f9 ?Æé)
-   (#xf6fa ?Æê)
-   (#xf6fb ?Æë)
-   (#xf6fc ?Æì)
-   (#xf6fd ?Æí)
-   (#xf6fe ?Æî)
-   (#xf6ff ?Æï)
-   (#xf700 ?Æð)
-   (#xf701 ?Æñ)
-   (#xf702 ?Æò)
-   (#xf703 ?Æó)
-   (#xf704 ?Æô)
-   (#xf705 ?Æõ)
-   (#xf706 ?Æö)
-   (#xf707 ?Æ÷)
-   (#xf708 ?Æø)
-   (#xf709 ?Æù)
-   (#xf70a ?Æú)
-   (#xf70b ?Æû)
-   (#xf70c ?Æü)
-   (#xf70d ?Æý)
-   (#xf70e ?Æþ)
-   (#xf70f ?Ç@)
-   (#xf710 ?ÇA)
-   (#xf711 ?ÇB)
-   (#xf712 ?ÇC)
-   (#xf713 ?ÇD)
-   (#xf714 ?ÇE)
-   (#xf715 ?ÇF)
-   (#xf716 ?ÇG)
-   (#xf717 ?ÇH)
-   (#xf718 ?ÇI)
-   (#xf719 ?ÇJ)
-   (#xf71a ?ÇK)
-   (#xf71b ?ÇL)
-   (#xf71c ?ÇM)
-   (#xf71d ?ÇN)
-   (#xf71e ?ÇO)
-   (#xf71f ?ÇP)
-   (#xf720 ?ÇQ)
-   (#xf721 ?ÇR)
-   (#xf722 ?ÇS)
-   (#xf723 ?ÇT)
-   (#xf724 ?ÇU)
-   (#xf725 ?ÇV)
-   (#xf726 ?ÇW)
-   (#xf727 ?ÇX)
-   (#xf728 ?ÇY)
-   (#xf729 ?ÇZ)
-   (#xf72a ?Ç[)
-   (#xf72b ?Ç\)
-   (#xf72c ?Ç])
-   (#xf72d ?Ç^)
-   (#xf72e ?Ç_)
-   (#xf72f ?Ç`)
-   (#xf730 ?Ça)
-   (#xf731 ?Çb)
-   (#xf732 ?Çc)
-   (#xf733 ?Çd)
-   (#xf734 ?Çe)
-   (#xf735 ?Çf)
-   (#xf736 ?Çg)
-   (#xf737 ?Çh)
-   (#xf738 ?Çi)
-   (#xf739 ?Çj)
-   (#xf73a ?Çk)
-   (#xf73b ?Çl)
-   (#xf73c ?Çm)
-   (#xf73d ?Çn)
-   (#xf73e ?Ço)
-   (#xf73f ?Çp)
-   (#xf740 ?Çq)
-   (#xf741 ?Çr)
-   (#xf742 ?Çs)
-   (#xf743 ?Çt)
-   (#xf744 ?Çu)
-   (#xf745 ?Çv)
-   (#xf746 ?Çw)
-   (#xf747 ?Çx)
-   (#xf748 ?Çy)
-   (#xf749 ?Çz)
-   (#xf74a ?Ç{)
-   (#xf74b ?Ç|)
-   (#xf74c ?Ç})
-   (#xf74d ?Ç~)
-   (#xf74e ?Ç¡)
-   (#xf74f ?Ç¢)
-   (#xf750 ?Ç£)
-   (#xf751 ?Ǥ)
-   (#xf752 ?Ç¥)
-   (#xf753 ?Ǧ)
-   (#xf754 ?ǧ)
-   (#xf755 ?Ǩ)
-   (#xf756 ?Ç©)
-   (#xf757 ?Ǫ)
-   (#xf758 ?Ç«)
-   (#xf759 ?Ǭ)
-   (#xf75a ?Ç­)
-   (#xf75b ?Ç®)
-   (#xf75c ?ǯ)
-   (#xf75d ?Ç°)
-   (#xf75e ?DZ)
-   (#xf75f ?Dz)
-   (#xf760 ?dz)
-   (#xf761 ?Ç´)
-   (#xf762 ?ǵ)
-   (#xf763 ?Ƕ)
-   (#xf764 ?Ç·)
-   (#xf765 ?Ǹ)
-   (#xf766 ?ǹ)
-   (#xf767 ?Ǻ)
-   (#xf768 ?Ç»)
-   (#xf769 ?Ǽ)
-   (#xf76a ?ǽ)
-   (#xf76b ?Ǿ)
-   (#xf76c ?Ç¿)
-   (#xf76d ?ÇÀ)
-   (#xf76e ?ÇÃ)
-   (#xf76f ?ÇÂ)
-   (#xf770 ?ÇÃ)
-   (#xf771 ?ÇÄ)
-   (#xf772 ?ÇÅ)
-   (#xf773 ?ÇÆ)
-   (#xf774 ?ÇÇ)
-   (#xf775 ?ÇÈ)
-   (#xf776 ?ÇÉ)
-   (#xf777 ?ÇÊ)
-   (#xf778 ?ÇË)
-   (#xf779 ?ÇÌ)
-   (#xf77a ?ÇÃ)
-   (#xf77b ?ÇÎ)
-   (#xf77c ?ÇÃ)
-   (#xf77d ?ÇÃ)
-   (#xf77e ?ÇÑ)
-   (#xf77f ?ÇÒ)
-   (#xf780 ?ÇÓ)
-   (#xf781 ?ÇÔ)
-   (#xf782 ?ÇÕ)
-   (#xf783 ?ÇÖ)
-   (#xf784 ?Ç×)
-   (#xf785 ?ÇØ)
-   (#xf786 ?ÇÙ)
-   (#xf787 ?ÇÚ)
-   (#xf788 ?ÇÛ)
-   (#xf789 ?ÇÜ)
-   (#xf78a ?ÇÃ)
-   (#xf78b ?ÇÞ)
-   (#xf78c ?Çß)
-   (#xf78d ?Çà)
-   (#xf78e ?Çá)
-   (#xf78f ?Çâ)
-   (#xf790 ?Çã)
-   (#xf791 ?Çä)
-   (#xf792 ?Çå)
-   (#xf793 ?Çæ)
-   (#xf794 ?Çç)
-   (#xf795 ?Çè)
-   (#xf796 ?Çé)
-   (#xf797 ?Çê)
-   (#xf798 ?Çë)
-   (#xf799 ?Çì)
-   (#xf79a ?Çí)
-   (#xf79b ?Çî)
-   (#xf79c ?Çï)
-   (#xf79d ?Çð)
-   (#xf79e ?Çñ)
-   (#xf79f ?Çò)
-   (#xf7a0 ?Çó)
-   (#xf7a1 ?Çô)
-   (#xf7a2 ?Çõ)
-   (#xf7a3 ?Çö)
-   (#xf7a4 ?Ç÷)
-   (#xf7a5 ?Çø)
-   (#xf7a6 ?Çù)
-   (#xf7a7 ?Çú)
-   (#xf7a8 ?Çû)
-   (#xf7a9 ?Çü)
-   (#xf7aa ?Çý)
-   (#xf7ab ?Çþ)
-   (#xf7ac ?È@)
-   (#xf7ad ?ÈA)
-   (#xf7ae ?ÈB)
-   (#xf7af ?ÈC)
-   (#xf7b0 ?ÈD)
-   (#xf7b1 ?ÈE)
-   (#xf7b2 ?ÈF)
-   (#xf7b3 ?ÈG)
-   (#xf7b4 ?ÈH)
-   (#xf7b5 ?ÈI)
-   (#xf7b6 ?ÈJ)
-   (#xf7b7 ?ÈK)
-   (#xf7b8 ?ÈL)
-   (#xf7b9 ?ÈM)
-   (#xf7ba ?ÈN)
-   (#xf7bb ?ÈO)
-   (#xf7bc ?ÈP)
-   (#xf7bd ?ÈQ)
-   (#xf7be ?ÈR)
-   (#xf7bf ?ÈS)
-   (#xf7c0 ?ÈT)
-   (#xf7c1 ?ÈU)
-   (#xf7c2 ?ÈV)
-   (#xf7c3 ?ÈW)
-   (#xf7c4 ?ÈX)
-   (#xf7c5 ?ÈY)
-   (#xf7c6 ?ÈZ)
-   (#xf7c7 ?È[)
-   (#xf7c8 ?È\)
-   (#xf7c9 ?È])
-   (#xf7ca ?È^)
-   (#xf7cb ?È_)
-   (#xf7cc ?È`)
-   (#xf7cd ?Èa)
-   (#xf7ce ?Èb)
-   (#xf7cf ?Èc)
-   (#xf7d0 ?Èd)
-   (#xf7d1 ?Èe)
-   (#xf7d2 ?Èf)
-   (#xf7d3 ?Èg)
-   (#xf7d4 ?Èh)
-   (#xf7d5 ?Èi)
-   (#xf7d6 ?Èj)
-   (#xf7d7 ?Èk)
-   (#xf7d8 ?Èl)
-   (#xf7d9 ?Èm)
-   (#xf7da ?Èn)
-   (#xf7db ?Èo)
-   (#xf7dc ?Èp)
-   (#xf7dd ?Èq)
-   (#xf7de ?Èr)
-   (#xf7df ?Ès)
-   (#xf7e0 ?Èt)
-   (#xf7e1 ?Èu)
-   (#xf7e2 ?Èv)
-   (#xf7e3 ?Èw)
-   (#xf7e4 ?Èx)
-   (#xf7e5 ?Èy)
-   (#xf7e6 ?Èz)
-   (#xf7e7 ?È{)
-   (#xf7e8 ?È|)
-   (#xf7e9 ?È})
-   (#xf7ea ?È~)
-   (#xf7eb ?È¡)
-   (#xf7ec ?È¢)
-   (#xf7ed ?È£)
-   (#xf7ee ?Ȥ)
-   (#xf7ef ?È¥)
-   (#xf7f0 ?Ȧ)
-   (#xf7f1 ?ȧ)
-   (#xf7f2 ?Ȩ)
-   (#xf7f3 ?È©)
-   (#xf7f4 ?Ȫ)
-   (#xf7f5 ?È«)
-   (#xf7f6 ?Ȭ)
-   (#xf7f7 ?È­)
-   (#xf7f8 ?È®)
-   (#xf7f9 ?ȯ)
-   (#xf7fa ?È°)
-   (#xf7fb ?ȱ)
-   (#xf7fc ?Ȳ)
-   (#xf7fd ?ȳ)
-   (#xf7fe ?È´)
-   (#xf7ff ?ȵ)
-   (#xf800 ?ȶ)
-   (#xf801 ?È·)
-   (#xf802 ?ȸ)
-   (#xf803 ?ȹ)
-   (#xf804 ?Ⱥ)
-   (#xf805 ?È»)
-   (#xf806 ?ȼ)
-   (#xf807 ?Ƚ)
-   (#xf808 ?Ⱦ)
-   (#xf809 ?È¿)
-   (#xf80a ?ÈÀ)
-   (#xf80b ?ÈÃ)
-   (#xf80c ?ÈÂ)
-   (#xf80d ?ÈÃ)
-   (#xf80e ?ÈÄ)
-   (#xf80f ?ÈÅ)
-   (#xf810 ?ÈÆ)
-   (#xf811 ?ÈÇ)
-   (#xf812 ?ÈÈ)
-   (#xf813 ?ÈÉ)
-   (#xf814 ?ÈÊ)
-   (#xf815 ?ÈË)
-   (#xf816 ?ÈÌ)
-   (#xf817 ?ÈÃ)
-   (#xf818 ?ÈÎ)
-   (#xf819 ?ÈÃ)
-   (#xf81a ?ÈÃ)
-   (#xf81b ?ÈÑ)
-   (#xf81c ?ÈÒ)
-   (#xf81d ?ÈÓ)
-   (#xf81e ?ÈÔ)
-   (#xf81f ?ÈÕ)
-   (#xf820 ?ÈÖ)
-   (#xf821 ?È×)
-   (#xf822 ?ÈØ)
-   (#xf823 ?ÈÙ)
-   (#xf824 ?ÈÚ)
-   (#xf825 ?ÈÛ)
-   (#xf826 ?ÈÜ)
-   (#xf827 ?ÈÃ)
-   (#xf828 ?ÈÞ)
-   (#xf829 ?Èß)
-   (#xf82a ?Èà)
-   (#xf82b ?Èá)
-   (#xf82c ?Èâ)
-   (#xf82d ?Èã)
-   (#xf82e ?Èä)
-   (#xf82f ?Èå)
-   (#xf830 ?Èæ)
-   (#xf831 ?Èç)
-   (#xf832 ?Èè)
-   (#xf833 ?Èé)
-   (#xf834 ?Èê)
-   (#xf835 ?Èë)
-   (#xf836 ?Èì)
-   (#xf837 ?Èí)
-   (#xf838 ?Èî)
-   (#xf839 ?Èï)
-   (#xf83a ?Èð)
-   (#xf83b ?Èñ)
-   (#xf83c ?Èò)
-   (#xf83d ?Èó)
-   (#xf83e ?Èô)
-   (#xf83f ?Èõ)
-   (#xf840 ?Èö)
-   (#xf841 ?È÷)
-   (#xf842 ?Èø)
-   (#xf843 ?Èù)
-   (#xf844 ?Èú)
-   (#xf845 ?Èû)
-   (#xf846 ?Èü)
-   (#xf847 ?Èý)
-   (#xf848 ?Èþ)
-   (#xfa0c ?ÉJ)
-   (#xfa0d ?Ãü)
-   (#xfe30 ?¡J)
-   (#xfe31 ?¡W)
-   (#xfe33 ?¡Y)
-   (#xfe34 ?¡[)
-   (#xfe35 ?¡_)
-   (#xfe36 ?¡`)
-   (#xfe37 ?¡c)
-   (#xfe38 ?¡d)
-   (#xfe39 ?¡g)
-   (#xfe3a ?¡h)
-   (#xfe3b ?¡k)
-   (#xfe3c ?¡l)
-   (#xfe3d ?¡o)
-   (#xfe3e ?¡p)
-   (#xfe3f ?¡s)
-   (#xfe40 ?¡t)
-   (#xfe41 ?¡w)
-   (#xfe42 ?¡x)
-   (#xfe43 ?¡{)
-   (#xfe44 ?¡|)
-   (#xfe49 ?¡Æ)
-   (#xfe4a ?¡Ç)
-   (#xfe4b ?¡Ê)
-   (#xfe4c ?¡Ë)
-   (#xfe4d ?¡È)
-   (#xfe4e ?¡É)
-   (#xfe4f ?¡\)
-   (#xfe50 ?¡M)
-   (#xfe51 ?¡N)
-   (#xfe52 ?¡O)
-   (#xfe54 ?¡Q)
-   (#xfe55 ?¡R)
-   (#xfe56 ?¡S)
-   (#xfe57 ?¡T)
-   (#xfe59 ?¡})
-   (#xfe5a ?¡~)
-   (#xfe5b ?¡¡)
-   (#xfe5c ?¡¢)
-   (#xfe5d ?¡£)
-   (#xfe5e ?¡¤)
-   (#xfe5f ?¡Ì)
-   (#xfe60 ?¡Ã)
-   (#xfe61 ?¡Î)
-   (#xfe62 ?¡Þ)
-   (#xfe63 ?¡ß)
-   (#xfe64 ?¡à)
-   (#xfe65 ?¡á)
-   (#xfe66 ?¡â)
-   (#xfe68 ?¢B)
-   (#xfe69 ?¢L)
-   (#xfe6a ?¢M)
-   (#xfe6b ?¢N)
-   (#xff01 ?¡I)
-   (#xff03 ?¡­)
-   (#xff04 ?¢C)
-   (#xff05 ?¢H)
-   (#xff06 ?¡®)
-   (#xff08 ?\¡])
-   (#xff09 ?\¡^)
-   (#xff0a ?¡¯)
-   (#xff0b ?¡Ã)
-   (#xff0c ?¡A)
-   (#xff0d ?¡Ã)
-   (#xff0e ?¡D)
-   (#xff0f ?¡þ)
-   (#xff10 ?¢¯)
-   (#xff11 ?¢°)
-   (#xff12 ?¢±)
-   (#xff13 ?¢²)
-   (#xff14 ?¢³)
-   (#xff15 ?¢´)
-   (#xff16 ?¢µ)
-   (#xff17 ?¢¶)
-   (#xff18 ?¢·)
-   (#xff19 ?¢¸)
-   (#xff1a ?¡G)
-   (#xff1b ?¡F)
-   (#xff1c ?¡Õ)
-   (#xff1d ?¡×)
-   (#xff1e ?¡Ö)
-   (#xff1f ?¡H)
-   (#xff20 ?¢I)
-   (#xff21 ?¢Ã)
-   (#xff22 ?¢Ã)
-   (#xff23 ?¢Ñ)
-   (#xff24 ?¢Ò)
-   (#xff25 ?¢Ó)
-   (#xff26 ?¢Ô)
-   (#xff27 ?¢Õ)
-   (#xff28 ?¢Ö)
-   (#xff29 ?¢×)
-   (#xff2a ?¢Ø)
-   (#xff2b ?¢Ù)
-   (#xff2c ?¢Ú)
-   (#xff2d ?¢Û)
-   (#xff2e ?¢Ü)
-   (#xff2f ?¢Ã)
-   (#xff30 ?¢Þ)
-   (#xff31 ?¢ß)
-   (#xff32 ?¢à)
-   (#xff33 ?¢á)
-   (#xff34 ?¢â)
-   (#xff35 ?¢ã)
-   (#xff36 ?¢ä)
-   (#xff37 ?¢å)
-   (#xff38 ?¢æ)
-   (#xff39 ?¢ç)
-   (#xff3a ?¢è)
-   (#xff3c ?¢@)
-   (#xff3f ?¡Ä)
-   (#xff41 ?¢é)
-   (#xff42 ?¢ê)
-   (#xff43 ?¢ë)
-   (#xff44 ?¢ì)
-   (#xff45 ?¢í)
-   (#xff46 ?¢î)
-   (#xff47 ?¢ï)
-   (#xff48 ?¢ð)
-   (#xff49 ?¢ñ)
-   (#xff4a ?¢ò)
-   (#xff4b ?¢ó)
-   (#xff4c ?¢ô)
-   (#xff4d ?¢õ)
-   (#xff4e ?¢ö)
-   (#xff4f ?¢÷)
-   (#xff50 ?¢ø)
-   (#xff51 ?¢ù)
-   (#xff52 ?¢ú)
-   (#xff53 ?¢û)
-   (#xff54 ?¢ü)
-   (#xff55 ?¢ý)
-   (#xff56 ?¢þ)
-   (#xff57 ?£@)
-   (#xff58 ?£A)
-   (#xff59 ?£B)
-   (#xff5a ?£C)
-   (#xff5b ?\¡a)
-   (#xff5c ?¡U)
-   (#xff5d ?\¡b)
-   (#xff5e ?¡ã)
-   (#xffe0 ?¢F)
-   (#xffe1 ?¢G)
-   (#xffe3 ?¡Ã)
-   (#xffe5 ?¢D)))
-
-;;; arch-tag: 4fbf5312-bb44-4f23-8ae2-7ab2ee1c540f
-;;; subst-big5.el ends here
diff --git a/lisp/international/subst-gb2312.el b/lisp/international/subst-gb2312.el
deleted file mode 100644 (file)
index 3c604b6..0000000
+++ /dev/null
@@ -1,7486 +0,0 @@
-;;; subst-gb2312.el --- Unicode/GB2312 translation     -*-coding: euc-china;-*-
-
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-
-;; Author: Dave Love <fx@gnu.org>
-;; Keywords: i18n
-
-;; This file 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 file 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Provides translation tables between Unicode and chinese-gb2312 for
-;; use by the `utf-translate-cjk-mode' option.  See subst-jis.el for the
-;; method used.
-
-;;; Code:
-
-(mapc
- (lambda (pair)
-   (let ((unicode (car pair))
-        (char (cadr pair)))
-     ;; exclude non-supporting components from decode table
-     (if (utf-translate-cjk-substitutable-p unicode)
-        (puthash unicode char ucs-unicode-to-mule-cjk))
-     (puthash char unicode ucs-mule-cjk-to-unicode)))
- '((#xa4 ?¡è)
-   (#xa7 ?¡ì)
-   (#xa8 ?¡§)
-   (#xb0 ?¡ã)
-   (#xb1 ?¡À)
-   (#xd7 ?¡Ã)
-   (#xe0 ?¨¤)
-   (#xe1 ?¨¢)
-   (#xe8 ?¨¨)
-   (#xe9 ?¨¦)
-   (#xea ?¨º)
-   (#xec ?¨¬)
-   (#xed ?¨ª)
-   (#xf2 ?¨°)
-   (#xf3 ?¨®)
-   (#xf7 ?¡Â)
-   (#xf9 ?¨´)
-   (#xfa ?¨²)
-   (#xfc ?¨¹)
-   (#x101 ?¨¡)
-   (#x113 ?¨¥)
-   (#x11b ?¨§)
-   (#x12b ?¨©)
-   (#x14d ?¨­)
-   (#x16b ?¨±)
-   (#x1ce ?¨£)
-   (#x1d0 ?¨«)
-   (#x1d2 ?¨¯)
-   (#x1d4 ?¨³)
-   (#x1d6 ?¨µ)
-   (#x1d8 ?¨¶)
-   (#x1da ?¨·)
-   (#x1dc ?¨¸)
-   (#x2c7 ?¡¦)
-   (#x2c9 ?¡¥)
-   (#x391 ?¦¡)
-   (#x392 ?¦¢)
-   (#x393 ?¦£)
-   (#x394 ?¦¤)
-   (#x395 ?¦¥)
-   (#x396 ?¦¦)
-   (#x397 ?¦§)
-   (#x398 ?¦¨)
-   (#x399 ?¦©)
-   (#x39a ?¦ª)
-   (#x39b ?¦«)
-   (#x39c ?¦¬)
-   (#x39d ?¦­)
-   (#x39e ?¦®)
-   (#x39f ?¦¯)
-   (#x3a0 ?¦°)
-   (#x3a1 ?¦±)
-   (#x3a3 ?¦²)
-   (#x3a4 ?¦³)
-   (#x3a5 ?¦´)
-   (#x3a6 ?¦µ)
-   (#x3a7 ?¦¶)
-   (#x3a8 ?¦·)
-   (#x3a9 ?¦¸)
-   (#x3b1 ?¦Ã)
-   (#x3b2 ?¦Â)
-   (#x3b3 ?¦Ã)
-   (#x3b4 ?¦Ä)
-   (#x3b5 ?¦Å)
-   (#x3b6 ?¦Æ)
-   (#x3b7 ?¦Ç)
-   (#x3b8 ?¦È)
-   (#x3b9 ?¦É)
-   (#x3ba ?¦Ê)
-   (#x3bb ?¦Ë)
-   (#x3bc ?¦Ì)
-   (#x3bd ?¦Ã)
-   (#x3be ?¦Î)
-   (#x3bf ?¦Ã)
-   (#x3c0 ?¦Ã)
-   (#x3c1 ?¦Ñ)
-   (#x3c3 ?¦Ò)
-   (#x3c4 ?¦Ó)
-   (#x3c5 ?¦Ô)
-   (#x3c6 ?¦Õ)
-   (#x3c7 ?¦Ö)
-   (#x3c8 ?¦×)
-   (#x3c9 ?¦Ø)
-   (#x401 ?§§)
-   (#x410 ?§¡)
-   (#x411 ?§¢)
-   (#x412 ?§£)
-   (#x413 ?§¤)
-   (#x414 ?§¥)
-   (#x415 ?§¦)
-   (#x416 ?§¨)
-   (#x417 ?§©)
-   (#x418 ?§ª)
-   (#x419 ?§«)
-   (#x41a ?§¬)
-   (#x41b ?§­)
-   (#x41c ?§®)
-   (#x41d ?§¯)
-   (#x41e ?§°)
-   (#x41f ?§±)
-   (#x420 ?§²)
-   (#x421 ?§³)
-   (#x422 ?§´)
-   (#x423 ?§µ)
-   (#x424 ?§¶)
-   (#x425 ?§·)
-   (#x426 ?§¸)
-   (#x427 ?§¹)
-   (#x428 ?§º)
-   (#x429 ?§»)
-   (#x42a ?§¼)
-   (#x42b ?§½)
-   (#x42c ?§¾)
-   (#x42d ?§¿)
-   (#x42e ?§À)
-   (#x42f ?§Ã)
-   (#x430 ?§Ñ)
-   (#x431 ?§Ò)
-   (#x432 ?§Ó)
-   (#x433 ?§Ô)
-   (#x434 ?§Õ)
-   (#x435 ?§Ö)
-   (#x436 ?§Ø)
-   (#x437 ?§Ù)
-   (#x438 ?§Ú)
-   (#x439 ?§Û)
-   (#x43a ?§Ü)
-   (#x43b ?§Ã)
-   (#x43c ?§Þ)
-   (#x43d ?§ß)
-   (#x43e ?§à)
-   (#x43f ?§á)
-   (#x440 ?§â)
-   (#x441 ?§ã)
-   (#x442 ?§ä)
-   (#x443 ?§å)
-   (#x444 ?§æ)
-   (#x445 ?§ç)
-   (#x446 ?§è)
-   (#x447 ?§é)
-   (#x448 ?§ê)
-   (#x449 ?§ë)
-   (#x44a ?§ì)
-   (#x44b ?§í)
-   (#x44c ?§î)
-   (#x44d ?§ï)
-   (#x44e ?§ð)
-   (#x44f ?§ñ)
-   (#x451 ?§×)
-   (#x2015 ?¡ª)
-   (#x2016 ?¡¬)
-   (#x2018 ?¡®)
-   (#x2019 ?¡¯)
-   (#x201c ?¡°)
-   (#x201d ?¡±)
-   (#x2026 ?¡­)
-   (#x2030 ?¡ë)
-   (#x2032 ?¡ä)
-   (#x2033 ?¡å)
-   (#x203b ?¡ù)
-   (#x2103 ?¡æ)
-   (#x2116 ?¡í)
-   (#x2160 ?¢ñ)
-   (#x2161 ?¢ò)
-   (#x2162 ?¢ó)
-   (#x2163 ?¢ô)
-   (#x2164 ?¢õ)
-   (#x2165 ?¢ö)
-   (#x2166 ?¢÷)
-   (#x2167 ?¢ø)
-   (#x2168 ?¢ù)
-   (#x2169 ?¢ú)
-   (#x216a ?¢û)
-   (#x216b ?¢ü)
-   (#x2190 ?¡û)
-   (#x2191 ?¡ü)
-   (#x2192 ?¡ú)
-   (#x2193 ?¡ý)
-   (#x2208 ?¡Ê)
-   (#x220f ?¡Ç)
-   (#x2211 ?¡Æ)
-   (#x221a ?¡Ì)
-   (#x221d ?¡Ø)
-   (#x221e ?¡Þ)
-   (#x2220 ?¡Ã)
-   (#x2225 ?¡Î)
-   (#x2227 ?¡Ä)
-   (#x2228 ?¡Å)
-   (#x2229 ?¡É)
-   (#x222a ?¡È)
-   (#x222b ?¡Ò)
-   (#x222e ?¡Ó)
-   (#x2234 ?¡à)
-   (#x2235 ?¡ß)
-   (#x2236 ?¡Ã)
-   (#x2237 ?¡Ë)
-   (#x223d ?¡×)
-   (#x2248 ?¡Ö)
-   (#x224c ?¡Õ)
-   (#x2260 ?¡Ù)
-   (#x2261 ?¡Ô)
-   (#x2264 ?¡Ü)
-   (#x2265 ?¡Ã)
-   (#x226e ?¡Ú)
-   (#x226f ?¡Û)
-   (#x2299 ?¡Ñ)
-   (#x22a5 ?¡Ã)
-   (#x2312 ?¡Ã)
-   (#x2460 ?¢Ù)
-   (#x2461 ?¢Ú)
-   (#x2462 ?¢Û)
-   (#x2463 ?¢Ü)
-   (#x2464 ?¢Ã)
-   (#x2465 ?¢Þ)
-   (#x2466 ?¢ß)
-   (#x2467 ?¢à)
-   (#x2468 ?¢á)
-   (#x2469 ?¢â)
-   (#x2474 ?¢Å)
-   (#x2475 ?¢Æ)
-   (#x2476 ?¢Ç)
-   (#x2477 ?¢È)
-   (#x2478 ?¢É)
-   (#x2479 ?¢Ê)
-   (#x247a ?¢Ë)
-   (#x247b ?¢Ì)
-   (#x247c ?¢Ã)
-   (#x247d ?¢Î)
-   (#x247e ?¢Ã)
-   (#x247f ?¢Ã)
-   (#x2480 ?¢Ñ)
-   (#x2481 ?¢Ò)
-   (#x2482 ?¢Ó)
-   (#x2483 ?¢Ô)
-   (#x2484 ?¢Õ)
-   (#x2485 ?¢Ö)
-   (#x2486 ?¢×)
-   (#x2487 ?¢Ø)
-   (#x2488 ?¢±)
-   (#x2489 ?¢²)
-   (#x248a ?¢³)
-   (#x248b ?¢´)
-   (#x248c ?¢µ)
-   (#x248d ?¢¶)
-   (#x248e ?¢·)
-   (#x248f ?¢¸)
-   (#x2490 ?¢¹)
-   (#x2491 ?¢º)
-   (#x2492 ?¢»)
-   (#x2493 ?¢¼)
-   (#x2494 ?¢½)
-   (#x2495 ?¢¾)
-   (#x2496 ?¢¿)
-   (#x2497 ?¢À)
-   (#x2498 ?¢Ã)
-   (#x2499 ?¢Â)
-   (#x249a ?¢Ã)
-   (#x249b ?¢Ä)
-   (#x2500 ?©¤)
-   (#x2501 ?©¥)
-   (#x2502 ?©¦)
-   (#x2503 ?©§)
-   (#x2504 ?©¨)
-   (#x2505 ?©©)
-   (#x2506 ?©ª)
-   (#x2507 ?©«)
-   (#x2508 ?©¬)
-   (#x2509 ?©­)
-   (#x250a ?©®)
-   (#x250b ?©¯)
-   (#x250c ?©°)
-   (#x250d ?©±)
-   (#x250e ?©²)
-   (#x250f ?©³)
-   (#x2510 ?©´)
-   (#x2511 ?©µ)
-   (#x2512 ?©¶)
-   (#x2513 ?©·)
-   (#x2514 ?©¸)
-   (#x2515 ?©¹)
-   (#x2516 ?©º)
-   (#x2517 ?©»)
-   (#x2518 ?©¼)
-   (#x2519 ?©½)
-   (#x251a ?©¾)
-   (#x251b ?©¿)
-   (#x251c ?©À)
-   (#x251d ?©Ã)
-   (#x251e ?©Â)
-   (#x251f ?©Ã)
-   (#x2520 ?©Ä)
-   (#x2521 ?©Å)
-   (#x2522 ?©Æ)
-   (#x2523 ?©Ç)
-   (#x2524 ?©È)
-   (#x2525 ?©É)
-   (#x2526 ?©Ê)
-   (#x2527 ?©Ë)
-   (#x2528 ?©Ì)
-   (#x2529 ?©Ã)
-   (#x252a ?©Î)
-   (#x252b ?©Ã)
-   (#x252c ?©Ã)
-   (#x252d ?©Ñ)
-   (#x252e ?©Ò)
-   (#x252f ?©Ó)
-   (#x2530 ?©Ô)
-   (#x2531 ?©Õ)
-   (#x2532 ?©Ö)
-   (#x2533 ?©×)
-   (#x2534 ?©Ø)
-   (#x2535 ?©Ù)
-   (#x2536 ?©Ú)
-   (#x2537 ?©Û)
-   (#x2538 ?©Ü)
-   (#x2539 ?©Ã)
-   (#x253a ?©Þ)
-   (#x253b ?©ß)
-   (#x253c ?©à)
-   (#x253d ?©á)
-   (#x253e ?©â)
-   (#x253f ?©ã)
-   (#x2540 ?©ä)
-   (#x2541 ?©å)
-   (#x2542 ?©æ)
-   (#x2543 ?©ç)
-   (#x2544 ?©è)
-   (#x2545 ?©é)
-   (#x2546 ?©ê)
-   (#x2547 ?©ë)
-   (#x2548 ?©ì)
-   (#x2549 ?©í)
-   (#x254a ?©î)
-   (#x254b ?©ï)
-   (#x25a0 ?¡ö)
-   (#x25a1 ?¡õ)
-   (#x25b2 ?¡ø)
-   (#x25b3 ?¡÷)
-   (#x25c6 ?¡ô)
-   (#x25c7 ?¡ó)
-   (#x25cb ?¡ð)
-   (#x25ce ?¡ò)
-   (#x25cf ?¡ñ)
-   (#x2605 ?¡ï)
-   (#x2606 ?¡î)
-   (#x2640 ?¡â)
-   (#x2642 ?¡á)
-   (#x3000 ?¡¡)
-   (#x3001 ?¡¢)
-   (#x3002 ?¡£)
-   (#x3003 ?¡¨)
-   (#x3005 ?¡©)
-   (#x3008 ?\¡´)
-   (#x3009 ?\¡µ)
-   (#x300a ?\¡¶)
-   (#x300b ?\¡·)
-   (#x300c ?\¡¸)
-   (#x300d ?\¡¹)
-   (#x300e ?\¡º)
-   (#x300f ?\¡»)
-   (#x3010 ?\¡¾)
-   (#x3011 ?\¡¿)
-   (#x3013 ?¡þ)
-   (#x3014 ?\¡²)
-   (#x3015 ?\¡³)
-   (#x3016 ?\¡¼)
-   (#x3017 ?\¡½)
-   (#x3041 ?¤¡)
-   (#x3042 ?¤¢)
-   (#x3043 ?¤£)
-   (#x3044 ?¤¤)
-   (#x3045 ?¤¥)
-   (#x3046 ?¤¦)
-   (#x3047 ?¤§)
-   (#x3048 ?¤¨)
-   (#x3049 ?¤©)
-   (#x304a ?¤ª)
-   (#x304b ?¤«)
-   (#x304c ?¤¬)
-   (#x304d ?¤­)
-   (#x304e ?¤®)
-   (#x304f ?¤¯)
-   (#x3050 ?¤°)
-   (#x3051 ?¤±)
-   (#x3052 ?¤²)
-   (#x3053 ?¤³)
-   (#x3054 ?¤´)
-   (#x3055 ?¤µ)
-   (#x3056 ?¤¶)
-   (#x3057 ?¤·)
-   (#x3058 ?¤¸)
-   (#x3059 ?¤¹)
-   (#x305a ?¤º)
-   (#x305b ?¤»)
-   (#x305c ?¤¼)
-   (#x305d ?¤½)
-   (#x305e ?¤¾)
-   (#x305f ?¤¿)
-   (#x3060 ?¤À)
-   (#x3061 ?¤Ã)
-   (#x3062 ?¤Â)
-   (#x3063 ?¤Ã)
-   (#x3064 ?¤Ä)
-   (#x3065 ?¤Å)
-   (#x3066 ?¤Æ)
-   (#x3067 ?¤Ç)
-   (#x3068 ?¤È)
-   (#x3069 ?¤É)
-   (#x306a ?¤Ê)
-   (#x306b ?¤Ë)
-   (#x306c ?¤Ì)
-   (#x306d ?¤Ã)
-   (#x306e ?¤Î)
-   (#x306f ?¤Ã)
-   (#x3070 ?¤Ã)
-   (#x3071 ?¤Ñ)
-   (#x3072 ?¤Ò)
-   (#x3073 ?¤Ó)
-   (#x3074 ?¤Ô)
-   (#x3075 ?¤Õ)
-   (#x3076 ?¤Ö)
-   (#x3077 ?¤×)
-   (#x3078 ?¤Ø)
-   (#x3079 ?¤Ù)
-   (#x307a ?¤Ú)
-   (#x307b ?¤Û)
-   (#x307c ?¤Ü)
-   (#x307d ?¤Ã)
-   (#x307e ?¤Þ)
-   (#x307f ?¤ß)
-   (#x3080 ?¤à)
-   (#x3081 ?¤á)
-   (#x3082 ?¤â)
-   (#x3083 ?¤ã)
-   (#x3084 ?¤ä)
-   (#x3085 ?¤å)
-   (#x3086 ?¤æ)
-   (#x3087 ?¤ç)
-   (#x3088 ?¤è)
-   (#x3089 ?¤é)
-   (#x308a ?¤ê)
-   (#x308b ?¤ë)
-   (#x308c ?¤ì)
-   (#x308d ?¤í)
-   (#x308e ?¤î)
-   (#x308f ?¤ï)
-   (#x3090 ?¤ð)
-   (#x3091 ?¤ñ)
-   (#x3092 ?¤ò)
-   (#x3093 ?¤ó)
-   (#x30a1 ?¥¡)
-   (#x30a2 ?¥¢)
-   (#x30a3 ?¥£)
-   (#x30a4 ?¥¤)
-   (#x30a5 ?¥¥)
-   (#x30a6 ?¥¦)
-   (#x30a7 ?¥§)
-   (#x30a8 ?¥¨)
-   (#x30a9 ?¥©)
-   (#x30aa ?¥ª)
-   (#x30ab ?¥«)
-   (#x30ac ?¥¬)
-   (#x30ad ?¥­)
-   (#x30ae ?¥®)
-   (#x30af ?¥¯)
-   (#x30b0 ?¥°)
-   (#x30b1 ?¥±)
-   (#x30b2 ?¥²)
-   (#x30b3 ?¥³)
-   (#x30b4 ?¥´)
-   (#x30b5 ?¥µ)
-   (#x30b6 ?¥¶)
-   (#x30b7 ?¥·)
-   (#x30b8 ?¥¸)
-   (#x30b9 ?¥¹)
-   (#x30ba ?¥º)
-   (#x30bb ?¥»)
-   (#x30bc ?¥¼)
-   (#x30bd ?¥½)
-   (#x30be ?¥¾)
-   (#x30bf ?¥¿)
-   (#x30c0 ?¥À)
-   (#x30c1 ?Â¥Ã)
-   (#x30c2 ?¥Â)
-   (#x30c3 ?¥Ã)
-   (#x30c4 ?¥Ä)
-   (#x30c5 ?¥Å)
-   (#x30c6 ?¥Æ)
-   (#x30c7 ?¥Ç)
-   (#x30c8 ?¥È)
-   (#x30c9 ?¥É)
-   (#x30ca ?¥Ê)
-   (#x30cb ?¥Ë)
-   (#x30cc ?¥Ì)
-   (#x30cd ?Â¥Ã)
-   (#x30ce ?¥Î)
-   (#x30cf ?Â¥Ã)
-   (#x30d0 ?Â¥Ã)
-   (#x30d1 ?¥Ñ)
-   (#x30d2 ?¥Ò)
-   (#x30d3 ?¥Ó)
-   (#x30d4 ?¥Ô)
-   (#x30d5 ?¥Õ)
-   (#x30d6 ?¥Ö)
-   (#x30d7 ?¥×)
-   (#x30d8 ?¥Ø)
-   (#x30d9 ?¥Ù)
-   (#x30da ?¥Ú)
-   (#x30db ?¥Û)
-   (#x30dc ?¥Ü)
-   (#x30dd ?Â¥Ã)
-   (#x30de ?¥Þ)
-   (#x30df ?¥ß)
-   (#x30e0 ?¥à)
-   (#x30e1 ?¥á)
-   (#x30e2 ?¥â)
-   (#x30e3 ?¥ã)
-   (#x30e4 ?¥ä)
-   (#x30e5 ?¥å)
-   (#x30e6 ?¥æ)
-   (#x30e7 ?¥ç)
-   (#x30e8 ?¥è)
-   (#x30e9 ?¥é)
-   (#x30ea ?¥ê)
-   (#x30eb ?¥ë)
-   (#x30ec ?¥ì)
-   (#x30ed ?¥í)
-   (#x30ee ?¥î)
-   (#x30ef ?¥ï)
-   (#x30f0 ?¥ð)
-   (#x30f1 ?¥ñ)
-   (#x30f2 ?¥ò)
-   (#x30f3 ?¥ó)
-   (#x30f4 ?¥ô)
-   (#x30f5 ?¥õ)
-   (#x30f6 ?¥ö)
-   (#x30fb ?¡¤)
-   (#x3105 ?¨Å)
-   (#x3106 ?¨Æ)
-   (#x3107 ?¨Ç)
-   (#x3108 ?¨È)
-   (#x3109 ?¨É)
-   (#x310a ?¨Ê)
-   (#x310b ?¨Ë)
-   (#x310c ?¨Ì)
-   (#x310d ?¨Ã)
-   (#x310e ?¨Î)
-   (#x310f ?¨Ã)
-   (#x3110 ?¨Ã)
-   (#x3111 ?¨Ñ)
-   (#x3112 ?¨Ò)
-   (#x3113 ?¨Ó)
-   (#x3114 ?¨Ô)
-   (#x3115 ?¨Õ)
-   (#x3116 ?¨Ö)
-   (#x3117 ?¨×)
-   (#x3118 ?¨Ø)
-   (#x3119 ?¨Ù)
-   (#x311a ?¨Ú)
-   (#x311b ?¨Û)
-   (#x311c ?¨Ü)
-   (#x311d ?¨Ã)
-   (#x311e ?¨Þ)
-   (#x311f ?¨ß)
-   (#x3120 ?¨à)
-   (#x3121 ?¨á)
-   (#x3122 ?¨â)
-   (#x3123 ?¨ã)
-   (#x3124 ?¨ä)
-   (#x3125 ?¨å)
-   (#x3126 ?¨æ)
-   (#x3127 ?¨ç)
-   (#x3128 ?¨è)
-   (#x3129 ?¨é)
-   (#x3220 ?¢å)
-   (#x3221 ?¢æ)
-   (#x3222 ?¢ç)
-   (#x3223 ?¢è)
-   (#x3224 ?¢é)
-   (#x3225 ?¢ê)
-   (#x3226 ?¢ë)
-   (#x3227 ?¢ì)
-   (#x3228 ?¢í)
-   (#x3229 ?¢î)
-   (#x4e00 ?Ò»)
-   (#x4e01 ?¶¡)
-   (#x4e03 ?Æß)
-   (#x4e07 ?Ãò)
-   (#x4e08 ?ÕÉ)
-   (#x4e09 ?Èý)
-   (#x4e0a ?ÉÃ)
-   (#x4e0b ?ÃÂ)
-   (#x4e0c ?Ø¢)
-   (#x4e0d ?²»)
-   (#x4e0e ?Óë)
-   (#x4e10 ?ؤ)
-   (#x4e11 ?³ó)
-   (#x4e13 ?ר)
-   (#x4e14 ?ÇÒ)
-   (#x4e15 ?ا)
-   (#x4e16 ?ÊÀ)
-   (#x4e18 ?Çð)
-   (#x4e19 ?±û)
-   (#x4e1a ?Òµ)
-   (#x4e1b ?´Ô)
-   (#x4e1c ?¶«)
-   (#x4e1d ?Ë¿)
-   (#x4e1e ?Ø©)
-   (#x4e22 ?¶ª)
-   (#x4e24 ?ý)
-   (#x4e25 ?ÑÃ)
-   (#x4e27 ?É¥)
-   (#x4e28 ?Ø­)
-   (#x4e2a ?¸ö)
-   (#x4e2b ?Ѿ)
-   (#x4e2c ?ãÜ)
-   (#x4e2d ?ÖÃ)
-   (#x4e30 ?·á)
-   (#x4e32 ?´®)
-   (#x4e34 ?ÃÙ)
-   (#x4e36 ?ؼ)
-   (#x4e38 ?Ãè)
-   (#x4e39 ?µ¤)
-   (#x4e3a ?Ϊ)
-   (#x4e3b ?Ö÷)
-   (#x4e3d ?Àö)
-   (#x4e3e ?¾Ù)
-   (#x4e3f ?د)
-   (#x4e43 ?ÄË)
-   (#x4e45 ?¾Ã)
-   (#x4e47 ?ر)
-   (#x4e48 ?ô)
-   (#x4e49 ?Ã’Ã¥)
-   (#x4e4b ?Ö®)
-   (#x4e4c ?ÎÚ)
-   (#x4e4d ?Õ§)
-   (#x4e4e ?ºõ)
-   (#x4e4f ?·¦)
-   (#x4e50 ?ÀÖ)
-   (#x4e52 ?ƹ)
-   (#x4e53 ?Ã…Ã’)
-   (#x4e54 ?ÇÇ)
-   (#x4e56 ?¹Ô)
-   (#x4e58 ?³Ë)
-   (#x4e59 ?Ã’Ã’)
-   (#x4e5c ?Ø¿)
-   (#x4e5d ?¾Å)
-   (#x4e5e ?Æò)
-   (#x4e5f ?Ò²)
-   (#x4e60 ?Ï°)
-   (#x4e61 ?Ãç)
-   (#x4e66 ?Êé)
-   (#x4e69 ?ØÀ)
-   (#x4e70 ?Âò)
-   (#x4e71 ?ÂÒ)
-   (#x4e73 ?Èé)
-   (#x4e7e ?Ǭ)
-   (#x4e86 ?ÃË)
-   (#x4e88 ?Óè)
-   (#x4e89 ?Õù)
-   (#x4e8b ?ÊÂ)
-   (#x4e8c ?¶þ)
-   (#x4e8d ?Ø¡)
-   (#x4e8e ?ÓÚ)
-   (#x4e8f ?¿÷)
-   (#x4e91 ?ÔÆ)
-   (#x4e92 ?ȴ)
-   (#x4e93 ?ØÃ)
-   (#x4e94 ?ÃŽÃ¥)
-   (#x4e95 ?¾®)
-   (#x4e98 ?ب)
-   (#x4e9a ?ÑÇ)
-   (#x4e9b ?Щ)
-   (#x4e9f ?ؽ)
-   (#x4ea0 ?Ùï)
-   (#x4ea1 ?Ãö)
-   (#x4ea2 ?¿º)
-   (#x4ea4 ?½»)
-   (#x4ea5 ?º¥)
-   (#x4ea6 ?Òà)
-   (#x4ea7 ?²ú)
-   (#x4ea8 ?ºà)
-   (#x4ea9 ?Ķ)
-   (#x4eab ?Ãí)
-   (#x4eac ?¾©)
-   (#x4ead ?ͤ)
-   (#x4eae ?ÃÃ)
-   (#x4eb2 ?Ç×)
-   (#x4eb3 ?Ùñ)
-   (#x4eb5 ?Ùô)
-   (#x4eba ?ÈË)
-   (#x4ebb ?Øé)
-   (#x4ebf ?ÒÚ)
-   (#x4ec0 ?ʲ)
-   (#x4ec1 ?ÈÊ)
-   (#x4ec2 ?Øì)
-   (#x4ec3 ?Øê)
-   (#x4ec4 ?ØÆ)
-   (#x4ec5 ?½ö)
-   (#x4ec6 ?ÆÃ)
-   (#x4ec7 ?³ð)
-   (#x4ec9 ?Øë)
-   (#x4eca ?½ñ)
-   (#x4ecb ?½é)
-   (#x4ecd ?ÈÔ)
-   (#x4ece ?´Ó)
-   (#x4ed1 ?ÂØ)
-   (#x4ed3 ?²Ö)
-   (#x4ed4 ?×Ã)
-   (#x4ed5 ?ÊË)
-   (#x4ed6 ?Ëû)
-   (#x4ed7 ?ÕÌ)
-   (#x4ed8 ?¸¶)
-   (#x4ed9 ?ÃÉ)
-   (#x4edd ?ÙÚ)
-   (#x4ede ?Øð)
-   (#x4edf ?Ǫ)
-   (#x4ee1 ?Øî)
-   (#x4ee3 ?´ú)
-   (#x4ee4 ?Ãî)
-   (#x4ee5 ?ÒÔ)
-   (#x4ee8 ?Øí)
-   (#x4eea ?ÒÇ)
-   (#x4eeb ?Øï)
-   (#x4eec ?ÃÇ)
-   (#x4ef0 ?Ñö)
-   (#x4ef2 ?ÖÙ)
-   (#x4ef3 ?Øò)
-   (#x4ef5 ?Øõ)
-   (#x4ef6 ?¼þ)
-   (#x4ef7 ?¼Û)
-   (#x4efb ?ÈÎ)
-   (#x4efd ?·Ã)
-   (#x4eff ?·Â)
-   (#x4f01 ?Æó)
-   (#x4f09 ?Øø)
-   (#x4f0a ?Ã’Ã)
-   (#x4f0d ?Îé)
-   (#x4f0e ?¼¿)
-   (#x4f0f ?·ü)
-   (#x4f10 ?·¥)
-   (#x4f11 ?ÃÃ)
-   (#x4f17 ?ÖÚ)
-   (#x4f18 ?ÓÅ)
-   (#x4f19 ?ȕ)
-   (#x4f1a ?ȇ)
-   (#x4f1b ?Øñ)
-   (#x4f1e ?É¡)
-   (#x4f1f ?ΰ)
-   (#x4f20 ?´«)
-   (#x4f22 ?Øó)
-   (#x4f24 ?ÉË)
-   (#x4f25 ?Øö)
-   (#x4f26 ?Â×)
-   (#x4f27 ?Ø÷)
-   (#x4f2a ?α)
-   (#x4f2b ?Øù)
-   (#x4f2f ?²®)
-   (#x4f30 ?¹À)
-   (#x4f32 ?Ù£)
-   (#x4f34 ?°é)
-   (#x4f36 ?Ãæ)
-   (#x4f38 ?Éì)
-   (#x4f3a ?ËÅ)
-   (#x4f3c ?ËÆ)
-   (#x4f3d ?Ù¤)
-   (#x4f43 ?µè)
-   (#x4f46 ?µ«)
-   (#x4f4d ?λ)
-   (#x4f4e ?µÃ)
-   (#x4f4f ?ס)
-   (#x4f50 ?×ô)
-   (#x4f51 ?ÓÓ)
-   (#x4f53 ?Ìå)
-   (#x4f55 ?ºÎ)
-   (#x4f57 ?Ù¢)
-   (#x4f58 ?ÙÜ)
-   (#x4f59 ?Óà)
-   (#x4f5a ?Øý)
-   (#x4f5b ?·ð)
-   (#x4f5c ?×÷)
-   (#x4f5d ?Øþ)
-   (#x4f5e ?Øú)
-   (#x4f5f ?Ù¡)
-   (#x4f60 ?Äã)
-   (#x4f63 ?Ó¶)
-   (#x4f64 ?Øô)
-   (#x4f65 ?ÙÃ)
-   (#x4f67 ?Øû)
-   (#x4f69 ?Ã…Ã¥)
-   (#x4f6c ?ÀÃ)
-   (#x4f6f ?Ñð)
-   (#x4f70 ?°Û)
-   (#x4f73 ?¼Ñ)
-   (#x4f74 ?Ù¦)
-   (#x4f76 ?Ù¥)
-   (#x4f7b ?Ù¬)
-   (#x4f7c ?Ù®)
-   (#x4f7e ?Ù«)
-   (#x4f7f ?ʹ)
-   (#x4f83 ?Ù©)
-   (#x4f84 ?Ö¶)
-   (#x4f88 ?³Þ)
-   (#x4f89 ?Ù¨)
-   (#x4f8b ?Àý)
-   (#x4f8d ?ÊÌ)
-   (#x4f8f ?Ùª)
-   (#x4f91 ?Ù§)
-   (#x4f94 ?Ù°)
-   (#x4f97 ?¶±)
-   (#x4f9b ?¹©)
-   (#x4f9d ?ÒÀ)
-   (#x4fa0 ?ÃÀ)
-   (#x4fa3 ?ÂÂ)
-   (#x4fa5 ?½Ä)
-   (#x4fa6 ?Õì)
-   (#x4fa7 ?²à)
-   (#x4fa8 ?ÇÈ)
-   (#x4fa9 ?¿ë)
-   (#x4faa ?Ù­)
-   (#x4fac ?Ù¯)
-   (#x4fae ?Îê)
-   (#x4faf ?ºî)
-   (#x4fb5 ?ÇÖ)
-   (#x4fbf ?±ã)
-   (#x4fc3 ?´Ù)
-   (#x4fc4 ?¶í)
-   (#x4fc5 ?Ù´)
-   (#x4fca ?¿¡)
-   (#x4fce ?ÙÞ)
-   (#x4fcf ?ÇÎ)
-   (#x4fd0 ?Àþ)
-   (#x4fd1 ?Ù¸)
-   (#x4fd7 ?Ë×)
-   (#x4fd8 ?·ý)
-   (#x4fda ?Ùµ)
-   (#x4fdc ?Ù·)
-   (#x4fdd ?±£)
-   (#x4fde ?Óá)
-   (#x4fdf ?Ù¹)
-   (#x4fe1 ?ÃÃ…)
-   (#x4fe3 ?Ù¶)
-   (#x4fe6 ?Ù±)
-   (#x4fe8 ?Ù²)
-   (#x4fe9 ?é)
-   (#x4fea ?Ù³)
-   (#x4fed ?¼ó)
-   (#x4fee ?ÃÞ)
-   (#x4fef ?¸©)
-   (#x4ff1 ?¾ã)
-   (#x4ff3 ?Ù½)
-   (#x4ff8 ?Ùº)
-   (#x4ffa ?°³)
-   (#x4ffe ?ÙÂ)
-   (#x500c ?ÙÄ)
-   (#x500d ?±¶)
-   (#x500f ?Ù¿)
-   (#x5012 ?µ¹)
-   (#x5014 ?¾ó)
-   (#x5018 ?ÌÈ)
-   (#x5019 ?ºò)
-   (#x501a ?Ã’Ã)
-   (#x501c ?ÙÃ)
-   (#x501f ?½è)
-   (#x5021 ?³«)
-   (#x5025 ?ÙÅ)
-   (#x5026 ?¾ë)
-   (#x5028 ?ÙÆ)
-   (#x5029 ?Ù»)
-   (#x502a ?Äß)
-   (#x502c ?Ù¾)
-   (#x502d ?ÙÃ)
-   (#x502e ?ÙÀ)
-   (#x503a ?Õ®)
-   (#x503c ?Öµ)
-   (#x503e ?Çã)
-   (#x5043 ?ÙÈ)
-   (#x5047 ?¼Ù)
-   (#x5048 ?ÙÊ)
-   (#x504c ?Ù¼)
-   (#x504e ?ÙË)
-   (#x504f ?Æ«)
-   (#x5055 ?ÙÉ)
-   (#x505a ?×ö)
-   (#x505c ?Í£)
-   (#x5065 ?½¡)
-   (#x506c ?ÙÌ)
-   (#x5076 ?ż)
-   (#x5077 ?͵)
-   (#x507b ?ÙÃ)
-   (#x507e ?ÙÇ)
-   (#x507f ?³¥)
-   (#x5080 ?¿þ)
-   (#x5085 ?¸µ)
-   (#x5088 ?Àü)
-   (#x508d ?°ø)
-   (#x50a3 ?´ö)
-   (#x50a5 ?ÙÎ)
-   (#x50a7 ?ÙÃ)
-   (#x50a8 ?´¢)
-   (#x50a9 ?ÙÃ)
-   (#x50ac ?´ß)
-   (#x50b2 ?°Ã)
-   (#x50ba ?ÙÑ)
-   (#x50bb ?ɵ)
-   (#x50cf ?Ãñ)
-   (#x50d6 ?ÙÒ)
-   (#x50da ?ÃÃ…)
-   (#x50e6 ?ÙÖ)
-   (#x50e7 ?É®)
-   (#x50ec ?ÙÕ)
-   (#x50ed ?ÙÔ)
-   (#x50ee ?Ù×)
-   (#x50f3 ?ËÛ)
-   (#x50f5 ?½©)
-   (#x50fb ?Ƨ)
-   (#x5106 ?ÙÓ)
-   (#x5107 ?ÙØ)
-   (#x510b ?ÙÙ)
-   (#x5112 ?Èå)
-   (#x5121 ?ÀÜ)
-   (#x513f ?¶ù)
-   (#x5140 ?Ø£)
-   (#x5141 ?ÔÊ)
-   (#x5143 ?Ôª)
-   (#x5144 ?ÃÖ)
-   (#x5145 ?³ä)
-   (#x5146 ?Õ×)
-   (#x5148 ?ÃÈ)
-   (#x5149 ?¹â)
-   (#x514b ?¿Ë)
-   (#x514d ?Ãâ)
-   (#x5151 ?¶Ò)
-   (#x5154 ?ÃÃ)
-   (#x5155 ?Ùî)
-   (#x5156 ?Ùð)
-   (#x515a ?µ³)
-   (#x515c ?¶µ)
-   (#x5162 ?¾¤)
-   (#x5165 ?Èë)
-   (#x5168 ?È«)
-   (#x516b ?°Ë)
-   (#x516c ?¹«)
-   (#x516d ?Ãù)
-   (#x516e ?Ùâ)
-   (#x5170 ?À¼)
-   (#x5171 ?¹²)
-   (#x5173 ?¹Ø)
-   (#x5174 ?ÃË)
-   (#x5175 ?±ø)
-   (#x5176 ?Æä)
-   (#x5177 ?¾ß)
-   (#x5178 ?µä)
-   (#x5179 ?×È)
-   (#x517b ?Ñø)
-   (#x517c ?¼æ)
-   (#x517d ?ÊÞ)
-   (#x5180 ?¼½)
-   (#x5181 ?Ùæ)
-   (#x5182 ?Øç)
-   (#x5185 ?ÄÚ)
-   (#x5188 ?¸Ô)
-   (#x5189 ?Ƚ)
-   (#x518c ?²á)
-   (#x518d ?ÔÙ)
-   (#x5192 ?ð)
-   (#x5195 ?Ãá)
-   (#x5196 ?Ú¢)
-   (#x5197 ?Èß)
-   (#x5199 ?д)
-   (#x519b ?¾ü)
-   (#x519c ?Å©)
-   (#x51a0 ?¹Ú)
-   (#x51a2 ?Ú£)
-   (#x51a4 ?Ô©)
-   (#x51a5 ?Ú¤)
-   (#x51ab ?Ùû)
-   (#x51ac ?¶¬)
-   (#x51af ?·ë)
-   (#x51b0 ?±ù)
-   (#x51b1 ?Ùü)
-   (#x51b2 ?³å)
-   (#x51b3 ?¾ö)
-   (#x51b5 ?¿ö)
-   (#x51b6 ?Ò±)
-   (#x51b7 ?Àä)
-   (#x51bb ?¶³)
-   (#x51bc ?Ùþ)
-   (#x51bd ?Ùý)
-   (#x51c0 ?¾»)
-   (#x51c4 ?Æà)
-   (#x51c6 ?×¼)
-   (#x51c7 ?Ú¡)
-   (#x51c9 ?ù)
-   (#x51cb ?µò)
-   (#x51cc ?Ãè)
-   (#x51cf ?¼õ)
-   (#x51d1 ?´Õ)
-   (#x51db ?ÃÃ)
-   (#x51dd ?Äý)
-   (#x51e0 ?¼¸)
-   (#x51e1 ?·²)
-   (#x51e4 ?·ï)
-   (#x51eb ?Ùì)
-   (#x51ed ?ƾ)
-   (#x51ef ?¿­)
-   (#x51f0 ?»Ë)
-   (#x51f3 ?µÊ)
-   (#x51f5 ?ÛÉ)
-   (#x51f6 ?Ã×)
-   (#x51f8 ?͹)
-   (#x51f9 ?°¼)
-   (#x51fa ?³ö)
-   (#x51fb ?»÷)
-   (#x51fc ?ÛÊ)
-   (#x51fd ?º¯)
-   (#x51ff ?Ôä)
-   (#x5200 ?µ¶)
-   (#x5201 ?µó)
-   (#x5202 ?ØÖ)
-   (#x5203 ?ÈÃ)
-   (#x5206 ?·Ö)
-   (#x5207 ?ÇÃ)
-   (#x5208 ?Ø×)
-   (#x520a ?¿¯)
-   (#x520d ?Û»)
-   (#x520e ?ØØ)
-   (#x5211 ?ÃÃŒ)
-   (#x5212 ?»®)
-   (#x5216 ?ë¾)
-   (#x5217 ?ÃÃ)
-   (#x5218 ?Ãõ)
-   (#x5219 ?Ôò)
-   (#x521a ?¸Õ)
-   (#x521b ?´´)
-   (#x521d ?³õ)
-   (#x5220 ?ɾ)
-   (#x5224 ?Ã…Ã)
-   (#x5228 ?ÅÙ)
-   (#x5229 ?Àû)
-   (#x522b ?±ð)
-   (#x522d ?ØÙ)
-   (#x522e ?¹Î)
-   (#x5230 ?µ½)
-   (#x5233 ?ØÚ)
-   (#x5236 ?ÖÆ)
-   (#x5237 ?Ë¢)
-   (#x5238 ?ȯ)
-   (#x5239 ?ɲ)
-   (#x523a ?´Ì)
-   (#x523b ?¿Ì)
-   (#x523d ?¹ô)
-   (#x523f ?ØÛ)
-   (#x5240 ?ØÜ)
-   (#x5241 ?¶ç)
-   (#x5242 ?¼Ã)
-   (#x5243 ?Ìê)
-   (#x524a ?Ã÷)
-   (#x524c ?ØÃ)
-   (#x524d ?Ç°)
-   (#x5250 ?¹Ã)
-   (#x5251 ?½£)
-   (#x5254 ?ÌÞ)
-   (#x5256 ?ÆÊ)
-   (#x525c ?Øà)
-   (#x525e ?ØÞ)
-   (#x5261 ?Øß)
-   (#x5265 ?°þ)
-   (#x5267 ?¾ç)
-   (#x5269 ?Ê£)
-   (#x526a ?¼ô)
-   (#x526f ?¸±)
-   (#x5272 ?¸î)
-   (#x527d ?Øâ)
-   (#x527f ?½Ë)
-   (#x5281 ?Øä)
-   (#x5282 ?Øã)
-   (#x5288 ?Åü)
-   (#x5290 ?Øå)
-   (#x5293 ?Øæ)
-   (#x529b ?æ)
-   (#x529d ?È°)
-   (#x529e ?°ì)
-   (#x529f ?¹¦)
-   (#x52a0 ?¼Ó)
-   (#x52a1 ?Îñ)
-   (#x52a2 ?Û½)
-   (#x52a3 ?ÃÓ)
-   (#x52a8 ?¶¯)
-   (#x52a9 ?Öú)
-   (#x52aa ?Ŭ)
-   (#x52ab ?½Ù)
-   (#x52ac ?Û¾)
-   (#x52ad ?Û¿)
-   (#x52b1 ?Àø)
-   (#x52b2 ?¾¢)
-   (#x52b3 ?ÀÃ)
-   (#x52be ?ÛÀ)
-   (#x52bf ?ÊÆ)
-   (#x52c3 ?²ª)
-   (#x52c7 ?ÓÂ)
-   (#x52c9 ?Ãã)
-   (#x52cb ?Ñ«)
-   (#x52d0 ?ÛÂ)
-   (#x52d2 ?ÀÕ)
-   (#x52d6 ?ÛÃ)
-   (#x52d8 ?¿±)
-   (#x52df ?ļ)
-   (#x52e4 ?ÇÚ)
-   (#x52f0 ?ÛÄ)
-   (#x52f9 ?Ùè)
-   (#x52fa ?É×)
-   (#x52fe ?¹´)
-   (#x52ff ?Îð)
-   (#x5300 ?ÔÈ)
-   (#x5305 ?°ü)
-   (#x5306 ?´Ò)
-   (#x5308 ?ÃÙ)
-   (#x530d ?Ùé)
-   (#x530f ?ÞË)
-   (#x5310 ?Ùë)
-   (#x5315 ?Ø°)
-   (#x5316 ?»¯)
-   (#x5317 ?±±)
-   (#x5319 ?³×)
-   (#x531a ?ØÎ)
-   (#x531d ?ÔÑ)
-   (#x5320 ?½³)
-   (#x5321 ?¿ï)
-   (#x5323 ?Ï»)
-   (#x5326 ?ØÃ)
-   (#x532a ?·Ë)
-   (#x532e ?ØÑ)
-   (#x5339 ?Æ¥)
-   (#x533a ?Çø)
-   (#x533b ?Ò½)
-   (#x533e ?ØÒ)
-   (#x533f ?Ää)
-   (#x5341 ?Ê®)
-   (#x5343 ?ǧ)
-   (#x5345 ?ئ)
-   (#x5347 ?Éý)
-   (#x5348 ?Îç)
-   (#x5349 ?Ȇ)
-   (#x534a ?°ë)
-   (#x534e ?Ȼ)
-   (#x534f ?Э)
-   (#x5351 ?±°)
-   (#x5352 ?×ä)
-   (#x5353 ?׿)
-   (#x5355 ?µ¥)
-   (#x5356 ?Âô)
-   (#x5357 ?ÄÃ)
-   (#x535a ?²©)
-   (#x535c ?²·)
-   (#x535e ?±å)
-   (#x535f ?ß²)
-   (#x5360 ?Õ¼)
-   (#x5361 ?¿¨)
-   (#x5362 ?¬)
-   (#x5363 ?ØÕ)
-   (#x5364 ?±)
-   (#x5366 ?ØÔ)
-   (#x5367 ?ÎÔ)
-   (#x5369 ?Úà)
-   (#x536b ?ÎÀ)
-   (#x536e ?Ø´)
-   (#x536f ?î)
-   (#x5370 ?Ó¡)
-   (#x5371 ?Σ)
-   (#x5373 ?¼´)
-   (#x5374 ?È´)
-   (#x5375 ?ÂÑ)
-   (#x5377 ?¾í)
-   (#x5378 ?ж)
-   (#x537a ?Úá)
-   (#x537f ?Çä)
-   (#x5382 ?³§)
-   (#x5384 ?¶ò)
-   (#x5385 ?Ìü)
-   (#x5386 ?Àú)
-   (#x5389 ?À÷)
-   (#x538b ?ѹ)
-   (#x538c ?Ñá)
-   (#x538d ?ØÇ)
-   (#x5395 ?²Þ)
-   (#x5398 ?Àå)
-   (#x539a ?ºñ)
-   (#x539d ?ØÈ)
-   (#x539f ?Ô­)
-   (#x53a2 ?Ãá)
-   (#x53a3 ?ØÉ)
-   (#x53a5 ?ØÊ)
-   (#x53a6 ?ÃÃ)
-   (#x53a8 ?³ø)
-   (#x53a9 ?¾Ç)
-   (#x53ae ?ØË)
-   (#x53b6 ?ÛÌ)
-   (#x53bb ?È¥)
-   (#x53bf ?ÃØ)
-   (#x53c1 ?Èþ)
-   (#x53c2 ?²Î)
-   (#x53c8 ?ÓÖ)
-   (#x53c9 ?²æ)
-   (#x53ca ?¼°)
-   (#x53cb ?ÓÑ)
-   (#x53cc ?Ë«)
-   (#x53cd ?·´)
-   (#x53d1 ?·¢)
-   (#x53d4 ?Êå)
-   (#x53d6 ?È¡)
-   (#x53d7 ?ÊÜ)
-   (#x53d8 ?±ä)
-   (#x53d9 ?Ãð)
-   (#x53db ?ÅÑ)
-   (#x53df ?ÛÅ)
-   (#x53e0 ?µþ)
-   (#x53e3 ?¿Ú)
-   (#x53e4 ?¹Å)
-   (#x53e5 ?¾ä)
-   (#x53e6 ?Ãí)
-   (#x53e8 ?߶)
-   (#x53e9 ?ßµ)
-   (#x53ea ?Ö»)
-   (#x53eb ?½Ã)
-   (#x53ec ?ÕÙ)
-   (#x53ed ?°È)
-   (#x53ee ?¶£)
-   (#x53ef ?¿É)
-   (#x53f0 ?̨)
-   (#x53f1 ?ß³)
-   (#x53f2 ?Ê·)
-   (#x53f3 ?ÓÒ)
-   (#x53f5 ?ØÃ)
-   (#x53f6 ?Ò¶)
-   (#x53f7 ?ºÅ)
-   (#x53f8 ?˾)
-   (#x53f9 ?̾)
-   (#x53fb ?ß·)
-   (#x53fc ?µð)
-   (#x53fd ?ß´)
-   (#x5401 ?Óõ)
-   (#x5403 ?³Ô)
-   (#x5404 ?¸÷)
-   (#x5406 ?ߺ)
-   (#x5408 ?ºÃ)
-   (#x5409 ?¼ª)
-   (#x540a ?µõ)
-   (#x540c ?ͬ)
-   (#x540d ?Ãû)
-   (#x540e ?ºó)
-   (#x540f ?Àô)
-   (#x5410 ?ÃÂ)
-   (#x5411 ?Ãò)
-   (#x5412 ?߸)
-   (#x5413 ?ÃÃ…)
-   (#x5415 ?ÂÀ)
-   (#x5416 ?ß¹)
-   (#x5417 ?Âð)
-   (#x541b ?¾ý)
-   (#x541d ?Ãß)
-   (#x541e ?ÃÃŒ)
-   (#x541f ?Ò÷)
-   (#x5420 ?·Ã)
-   (#x5421 ?ßÃ)
-   (#x5423 ?ßÄ)
-   (#x5426 ?·ñ)
-   (#x5427 ?°É)
-   (#x5428 ?¶Ö)
-   (#x5429 ?·Ô)
-   (#x542b ?º¬)
-   (#x542c ?Ìý)
-   (#x542d ?¿Ô)
-   (#x542e ?˱)
-   (#x542f ?Æô)
-   (#x5431 ?Ö¨)
-   (#x5432 ?ßÅ)
-   (#x5434 ?Îâ)
-   (#x5435 ?³³)
-   (#x5438 ?Îü)
-   (#x5439 ?´µ)
-   (#x543b ?ÎÇ)
-   (#x543c ?ºð)
-   (#x543e ?Îá)
-   (#x5440 ?ѽ)
-   (#x5443 ?ßÀ)
-   (#x5446 ?´ô)
-   (#x5448 ?³Ê)
-   (#x544a ?¸æ)
-   (#x544b ?ß»)
-   (#x5450 ?ÄÅ)
-   (#x5452 ?ß¼)
-   (#x5453 ?ß½)
-   (#x5454 ?ß¾)
-   (#x5455 ?Å»)
-   (#x5456 ?ß¿)
-   (#x5457 ?ßÂ)
-   (#x5458 ?Ô±)
-   (#x5459 ?ßÃ)
-   (#x545b ?Ǻ)
-   (#x545c ?ÎØ)
-   (#x5462 ?ÄØ)
-   (#x5464 ?ßÊ)
-   (#x5466 ?ßÃ)
-   (#x5468 ?ÖÜ)
-   (#x5471 ?ßÉ)
-   (#x5472 ?ßÚ)
-   (#x5473 ?ζ)
-   (#x5475 ?ºÇ)
-   (#x5476 ?ßÎ)
-   (#x5477 ?ßÈ)
-   (#x5478 ?ÅÞ)
-   (#x547b ?Éë)
-   (#x547c ?ºô)
-   (#x547d ?Ãü)
-   (#x5480 ?¾×)
-   (#x5482 ?ßÆ)
-   (#x5484 ?ßÃ)
-   (#x5486 ?ÅØ)
-   (#x548b ?Õ¦)
-   (#x548c ?ºÃ)
-   (#x548e ?¾Ì)
-   (#x548f ?Ó½)
-   (#x5490 ?¸À)
-   (#x5492 ?Öä)
-   (#x5494 ?ßÇ)
-   (#x5495 ?¹¾)
-   (#x5496 ?¿§)
-   (#x5499 ?Ãü)
-   (#x549a ?ßË)
-   (#x549b ?ßÌ)
-   (#x549d ?ßÃ)
-   (#x54a3 ?ßÛ)
-   (#x54a4 ?ßå)
-   (#x54a6 ?ß×)
-   (#x54a7 ?ßÖ)
-   (#x54a8 ?×É)
-   (#x54a9 ?ßã)
-   (#x54aa ?ßä)
-   (#x54ab ?åë)
-   (#x54ac ?Ò§)
-   (#x54ad ?ßÒ)
-   (#x54af ?¿©)
-   (#x54b1 ?ÔÛ)
-   (#x54b3 ?¿È)
-   (#x54b4 ?ßÔ)
-   (#x54b8 ?ÃÃŒ)
-   (#x54bb ?ßÃ)
-   (#x54bd ?ÑÊ)
-   (#x54bf ?ßÞ)
-   (#x54c0 ?°§)
-   (#x54c1 ?Æ·)
-   (#x54c2 ?ßÓ)
-   (#x54c4 ?ºå)
-   (#x54c6 ?¶ß)
-   (#x54c7 ?ÃÛ)
-   (#x54c8 ?¹þ)
-   (#x54c9 ?ÔÕ)
-   (#x54cc ?ßß)
-   (#x54cd ?Ãì)
-   (#x54ce ?°¥)
-   (#x54cf ?ßç)
-   (#x54d0 ?ßÑ)
-   (#x54d1 ?ÑÆ)
-   (#x54d2 ?ßÕ)
-   (#x54d3 ?ßØ)
-   (#x54d4 ?ßÙ)
-   (#x54d5 ?ßÜ)
-   (#x54d7 ?»©)
-   (#x54d9 ?ßà)
-   (#x54da ?ßá)
-   (#x54dc ?ßâ)
-   (#x54dd ?ßæ)
-   (#x54de ?ßè)
-   (#x54df ?Ó´)
-   (#x54e5 ?¸ç)
-   (#x54e6 ?Ŷ)
-   (#x54e7 ?ßê)
-   (#x54e8 ?ÉÚ)
-   (#x54e9 ?è)
-   (#x54ea ?ÄÄ)
-   (#x54ed ?¿Þ)
-   (#x54ee ?Ãø)
-   (#x54f2 ?ÕÜ)
-   (#x54f3 ?ßî)
-   (#x54fa ?²¸)
-   (#x54fc ?ºß)
-   (#x54fd ?ßì)
-   (#x54ff ?ÛÃ)
-   (#x5501 ?Ñä)
-   (#x5506 ?Ëô)
-   (#x5507 ?´½)
-   (#x5509 ?°¦)
-   (#x550f ?ßñ)
-   (#x5510 ?ÌÆ)
-   (#x5511 ?ßò)
-   (#x5514 ?ßí)
-   (#x551b ?ßé)
-   (#x5520 ?ßë)
-   (#x5522 ?ßï)
-   (#x5523 ?ßð)
-   (#x5524 ?»½)
-   (#x5527 ?ßó)
-   (#x552a ?ßô)
-   (#x552c ?ȣ)
-   (#x552e ?ÊÛ)
-   (#x552f ?Ψ)
-   (#x5530 ?à§)
-   (#x5531 ?³ª)
-   (#x5533 ?à¦)
-   (#x5537 ?à¡)
-   (#x553c ?ßþ)
-   (#x553e ?ÃÙ)
-   (#x553f ?ßü)
-   (#x5541 ?ßú)
-   (#x5543 ?¿Ã)
-   (#x5544 ?×Ä)
-   (#x5546 ?ÉÌ)
-   (#x5549 ?ßø)
-   (#x554a ?°¡)
-   (#x5550 ?ßý)
-   (#x5555 ?ßû)
-   (#x5556 ?à¢)
-   (#x555c ?à¨)
-   (#x5561 ?·È)
-   (#x5564 ?Æ¡)
-   (#x5565 ?ɶ)
-   (#x5566 ?À²)
-   (#x5567 ?ßõ)
-   (#x556a ?ž)
-   (#x556c ?ØÄ)
-   (#x556d ?ßù)
-   (#x556e ?Äö)
-   (#x5575 ?à£)
-   (#x5576 ?à¤)
-   (#x5577 ?à¥)
-   (#x5578 ?Ð¥)
-   (#x557b ?à´)
-   (#x557c ?Ìä)
-   (#x557e ?à±)
-   (#x5580 ?¿¦)
-   (#x5581 ?à¯)
-   (#x5582 ?ι)
-   (#x5583 ?à«)
-   (#x5584 ?ÉÆ)
-   (#x5587 ?À®)
-   (#x5588 ?à®)
-   (#x5589 ?ºí)
-   (#x558a ?º°)
-   (#x558b ?à©)
-   (#x558f ?ßö)
-   (#x5591 ?à³)
-   (#x5594 ?à¸)
-   (#x5598 ?´­)
-   (#x5599 ?à¹)
-   (#x559c ?ϲ)
-   (#x559d ?ºÈ)
-   (#x559f ?à°)
-   (#x55a7 ?Ãú)
-   (#x55b1 ?à¬)
-   (#x55b3 ?Ôû)
-   (#x55b5 ?ß÷)
-   (#x55b7 ?Åç)
-   (#x55b9 ?à­)
-   (#x55bb ?Ó÷)
-   (#x55bd ?à¶)
-   (#x55be ?à·)
-   (#x55c4 ?àÄ)
-   (#x55c5 ?Ãá)
-   (#x55c9 ?à¼)
-   (#x55cc ?àÉ)
-   (#x55cd ?àÊ)
-   (#x55d1 ?à¾)
-   (#x55d2 ?àª)
-   (#x55d3 ?ɤ)
-   (#x55d4 ?àÃ)
-   (#x55d6 ?à²)
-   (#x55dc ?ÊÈ)
-   (#x55dd ?àÃ)
-   (#x55df ?àµ)
-   (#x55e1 ?ÎË)
-   (#x55e3 ?ËÃ)
-   (#x55e4 ?àÃ)
-   (#x55e5 ?àÆ)
-   (#x55e6 ?àÂ)
-   (#x55e8 ?àË)
-   (#x55ea ?àº)
-   (#x55eb ?à¿)
-   (#x55ec ?àÀ)
-   (#x55ef ?àÅ)
-   (#x55f2 ?àÇ)
-   (#x55f3 ?àÈ)
-   (#x55f5 ?àÌ)
-   (#x55f7 ?à»)
-   (#x55fd ?ËÔ)
-   (#x55fe ?àÕ)
-   (#x5600 ?àÖ)
-   (#x5601 ?àÒ)
-   (#x5608 ?àÃ)
-   (#x5609 ?¼Î)
-   (#x560c ?àÑ)
-   (#x560e ?¸Â)
-   (#x560f ?ØÅ)
-   (#x5618 ?Ãê)
-   (#x561b ?Âï)
-   (#x561e ?àÃ)
-   (#x561f ?à½)
-   (#x5623 ?àÔ)
-   (#x5624 ?àÓ)
-   (#x5627 ?à×)
-   (#x562c ?àÜ)
-   (#x562d ?àØ)
-   (#x5631 ?Öö)
-   (#x5632 ?³°)
-   (#x5634 ?×ì)
-   (#x5636 ?Ë»)
-   (#x5639 ?àÚ)
-   (#x563b ?Îû)
-   (#x563f ?ºÙ)
-   (#x564c ?àá)
-   (#x564d ?àÃ)
-   (#x564e ?Ò­)
-   (#x5654 ?àâ)
-   (#x5657 ?àÛ)
-   (#x5658 ?àÙ)
-   (#x5659 ?àß)
-   (#x565c ?àà)
-   (#x5662 ?àÞ)
-   (#x5664 ?àä)
-   (#x5668 ?Æ÷)
-   (#x5669 ?ج)
-   (#x566a ?Ôë)
-   (#x566b ?àæ)
-   (#x566c ?ÊÉ)
-   (#x5671 ?àå)
-   (#x5676 ?¸Ã)
-   (#x567b ?àç)
-   (#x567c ?àè)
-   (#x5685 ?àé)
-   (#x5686 ?àã)
-   (#x568e ?º¿)
-   (#x568f ?Ìç)
-   (#x5693 ?àê)
-   (#x56a3 ?Ãù)
-   (#x56af ?àë)
-   (#x56b7 ?ÈÂ)
-   (#x56bc ?½À)
-   (#x56ca ?ÄÒ)
-   (#x56d4 ?àì)
-   (#x56d7 ?àí)
-   (#x56da ?Çô)
-   (#x56db ?ËÄ)
-   (#x56dd ?àî)
-   (#x56de ?ȯ)
-   (#x56df ?ض)
-   (#x56e0 ?Òò)
-   (#x56e1 ?àï)
-   (#x56e2 ?ÃÃ…)
-   (#x56e4 ?¶Ú)
-   (#x56eb ?àñ)
-   (#x56ed ?Ô°)
-   (#x56f0 ?ˤ)
-   (#x56f1 ?´Ñ)
-   (#x56f4 ?Χ)
-   (#x56f5 ?àð)
-   (#x56f9 ?àò)
-   (#x56fa ?¹Ì)
-   (#x56fd ?¹ú)
-   (#x56fe ?ͼ)
-   (#x56ff ?àó)
-   (#x5703 ?ÆÔ)
-   (#x5704 ?àô)
-   (#x5706 ?Ô²)
-   (#x5708 ?Ȧ)
-   (#x5709 ?àö)
-   (#x570a ?àõ)
-   (#x571c ?à÷)
-   (#x571f ?ÃÃ)
-   (#x5723 ?Ê¥)
-   (#x5728 ?ÔÚ)
-   (#x5729 ?Û×)
-   (#x572a ?ÛÙ)
-   (#x572c ?ÛØ)
-   (#x572d ?¹ç)
-   (#x572e ?ÛÜ)
-   (#x572f ?ÛÃ)
-   (#x5730 ?µØ)
-   (#x5733 ?ÛÚ)
-   (#x5739 ?ÛÛ)
-   (#x573a ?³¡)
-   (#x573b ?Ûß)
-   (#x573e ?»ø)
-   (#x5740 ?Ö·)
-   (#x5742 ?Ûà)
-   (#x5747 ?¾ù)
-   (#x574a ?·»)
-   (#x574c ?ÛÃ)
-   (#x574d ?Ì®)
-   (#x574e ?¿²)
-   (#x574f ?»µ)
-   (#x5750 ?×ø)
-   (#x5751 ?¿Ó)
-   (#x5757 ?¿é)
-   (#x575a ?¼á)
-   (#x575b ?̳)
-   (#x575c ?ÛÞ)
-   (#x575d ?°Ó)
-   (#x575e ?Îë)
-   (#x575f ?·Ø)
-   (#x5760 ?×¹)
-   (#x5761 ?ÆÂ)
-   (#x5764 ?À¤)
-   (#x5766 ?̹)
-   (#x5768 ?Ûç)
-   (#x5769 ?Ûá)
-   (#x576a ?ƺ)
-   (#x576b ?Ûã)
-   (#x576d ?Ûè)
-   (#x576f ?Å÷)
-   (#x5773 ?Ûê)
-   (#x5776 ?Ûé)
-   (#x5777 ?¿À)
-   (#x577b ?Ûæ)
-   (#x577c ?Ûå)
-   (#x5782 ?´¹)
-   (#x5783 ?À¬)
-   (#x5784 ?¢)
-   (#x5785 ?Ûâ)
-   (#x5786 ?Ûä)
-   (#x578b ?ÃÃ)
-   (#x578c ?Ûí)
-   (#x5792 ?ÀÃ)
-   (#x5793 ?Ûò)
-   (#x579b ?¶â)
-   (#x57a0 ?Ûó)
-   (#x57a1 ?ÛÒ)
-   (#x57a2 ?¹¸)
-   (#x57a3 ?Ô«)
-   (#x57a4 ?Ûì)
-   (#x57a6 ?¿Ñ)
-   (#x57a7 ?Ûð)
-   (#x57a9 ?ÛÑ)
-   (#x57ab ?µæ)
-   (#x57ad ?Ûë)
-   (#x57ae ?¿å)
-   (#x57b2 ?Ûî)
-   (#x57b4 ?Ûñ)
-   (#x57b8 ?Ûù)
-   (#x57c2 ?¹¡)
-   (#x57c3 ?°£)
-   (#x57cb ?Âñ)
-   (#x57ce ?³Ç)
-   (#x57cf ?Ûï)
-   (#x57d2 ?Ûø)
-   (#x57d4 ?ÆÒ)
-   (#x57d5 ?Ûô)
-   (#x57d8 ?Ûõ)
-   (#x57d9 ?Û÷)
-   (#x57da ?Ûö)
-   (#x57dd ?Ûþ)
-   (#x57df ?Óò)
-   (#x57e0 ?²º)
-   (#x57e4 ?Ûý)
-   (#x57ed ?ܤ)
-   (#x57ef ?Ûû)
-   (#x57f4 ?Ûú)
-   (#x57f8 ?Ûü)
-   (#x57f9 ?Åà)
-   (#x57fa ?»ù)
-   (#x57fd ?Ü£)
-   (#x5800 ?Ü¥)
-   (#x5802 ?ÌÃ)
-   (#x5806 ?¶Ñ)
-   (#x5807 ?ÃÀ)
-   (#x580b ?Ü¡)
-   (#x580d ?Ü¢)
-   (#x5811 ?ǵ)
-   (#x5815 ?¶é)
-   (#x5819 ?ܧ)
-   (#x581e ?ܦ)
-   (#x5820 ?Ü©)
-   (#x5821 ?±¤)
-   (#x5824 ?µÌ)
-   (#x582a ?¿°)
-   (#x5830 ?Ñß)
-   (#x5835 ?¶Â)
-   (#x5844 ?ܨ)
-   (#x584c ?Ëú)
-   (#x584d ?ëó)
-   (#x5851 ?ËÜ)
-   (#x5854 ?Ëþ)
-   (#x5858 ?ÃŒÃ)
-   (#x585e ?Èû)
-   (#x5865 ?ܪ)
-   (#x586b ?Ìî)
-   (#x586c ?Ü«)
-   (#x587e ?ÛÓ)
-   (#x5880 ?ܯ)
-   (#x5881 ?ܬ)
-   (#x5883 ?¾³)
-   (#x5885 ?Êû)
-   (#x5889 ?Ü­)
-   (#x5892 ?ÉÊ)
-   (#x5893 ?Ĺ)
-   (#x5899 ?ǽ)
-   (#x589a ?Ü®)
-   (#x589e ?Ôö)
-   (#x589f ?Ãæ)
-   (#x58a8 ?Ä«)
-   (#x58a9 ?¶Õ)
-   (#x58bc ?ÛÔ)
-   (#x58c1 ?±Ú)
-   (#x58c5 ?ÛÕ)
-   (#x58d1 ?ÛÖ)
-   (#x58d5 ?º¾)
-   (#x58e4 ?ÈÀ)
-   (#x58eb ?Ê¿)
-   (#x58ec ?ÈÉ)
-   (#x58ee ?׳)
-   (#x58f0 ?Éù)
-   (#x58f3 ?¿Ç)
-   (#x58f6 ?ºø)
-   (#x58f9 ?Ò¼)
-   (#x5902 ?âº)
-   (#x5904 ?´¦)
-   (#x5907 ?±¸)
-   (#x590d ?¸´)
-   (#x590f ?ÃÄ)
-   (#x5914 ?Ùç)
-   (#x5915 ?Ϧ)
-   (#x5916 ?Ãâ)
-   (#x5919 ?Ùí)
-   (#x591a ?¶à)
-   (#x591c ?Ò¹)
-   (#x591f ?¹»)
-   (#x5924 ?â¹)
-   (#x5925 ?â·)
-   (#x5927 ?´ó)
-   (#x5929 ?Ìì)
-   (#x592a ?Ì«)
-   (#x592b ?·ò)
-   (#x592d ?ز)
-   (#x592e ?Ñë)
-   (#x592f ?º»)
-   (#x5931 ?ʧ)
-   (#x5934 ?Í·)
-   (#x5937 ?ÒÄ)
-   (#x5938 ?¿ä)
-   (#x5939 ?¼Ã)
-   (#x593a ?¶á)
-   (#x593c ?ÞÅ)
-   (#x5941 ?ÞÆ)
-   (#x5942 ?Û¼)
-   (#x5944 ?ÑÙ)
-   (#x5947 ?Ææ)
-   (#x5948 ?ÄÎ)
-   (#x5949 ?·î)
-   (#x594b ?·Ü)
-   (#x594e ?¿ü)
-   (#x594f ?×à)
-   (#x5951 ?Æõ)
-   (#x5954 ?±¼)
-   (#x5955 ?ÞÈ)
-   (#x5956 ?½±)
-   (#x5957 ?Ì×)
-   (#x5958 ?ÞÊ)
-   (#x595a ?ÞÉ)
-   (#x5960 ?µì)
-   (#x5962 ?ÉÃ)
-   (#x5965 ?°Â)
-   (#x5973 ?Å®)
-   (#x5974 ?Å«)
-   (#x5976 ?ÄÌ)
-   (#x5978 ?¼é)
-   (#x5979 ?Ëý)
-   (#x597d ?ºÃ)
-   (#x5981 ?åù)
-   (#x5982 ?Èç)
-   (#x5983 ?åú)
-   (#x5984 ?Ãý)
-   (#x5986 ?×±)
-   (#x5987 ?¸¾)
-   (#x5988 ?Âè)
-   (#x598a ?ÈÑ)
-   (#x598d ?åû)
-   (#x5992 ?¶Ê)
-   (#x5993 ?¼Ë)
-   (#x5996 ?Ñý)
-   (#x5997 ?æ¡)
-   (#x5999 ?Ãî)
-   (#x599e ?æ¤)
-   (#x59a3 ?åþ)
-   (#x59a4 ?æ¥)
-   (#x59a5 ?Ã×)
-   (#x59a8 ?·Ã)
-   (#x59a9 ?åü)
-   (#x59aa ?åý)
-   (#x59ab ?æ£)
-   (#x59ae ?ÄÃ)
-   (#x59af ?æ¨)
-   (#x59b2 ?æ§)
-   (#x59b9 ?ÃÃ)
-   (#x59bb ?ÆÞ)
-   (#x59be ?æª)
-   (#x59c6 ?Ä·)
-   (#x59ca ?æ¢)
-   (#x59cb ?ʼ)
-   (#x59d0 ?½ã)
-   (#x59d1 ?¹Ã)
-   (#x59d2 ?æ¦)
-   (#x59d3 ?ÃÕ)
-   (#x59d4 ?ί)
-   (#x59d7 ?æ©)
-   (#x59d8 ?æ°)
-   (#x59da ?Ò¦)
-   (#x59dc ?½ª)
-   (#x59dd ?æ­)
-   (#x59e3 ?æ¯)
-   (#x59e5 ?ÀÑ)
-   (#x59e8 ?Ã’ÃŒ)
-   (#x59ec ?¼§)
-   (#x59f9 ?æ±)
-   (#x59fb ?Òö)
-   (#x59ff ?×Ë)
-   (#x5a01 ?Ãþ)
-   (#x5a03 ?ÃÞ)
-   (#x5a04 ?¦)
-   (#x5a05 ?æ«)
-   (#x5a06 ?æ¬)
-   (#x5a07 ?½¿)
-   (#x5a08 ?æ®)
-   (#x5a09 ?æ³)
-   (#x5a0c ?æ²)
-   (#x5a11 ?æ¶)
-   (#x5a13 ?æ¸)
-   (#x5a18 ?Äï)
-   (#x5a1c ?ÄÈ)
-   (#x5a1f ?¾ê)
-   (#x5a20 ?Éï)
-   (#x5a23 ?æ·)
-   (#x5a25 ?¶ð)
-   (#x5a29 ?Ãä)
-   (#x5a31 ?Óé)
-   (#x5a32 ?æ´)
-   (#x5a34 ?æµ)
-   (#x5a36 ?È¢)
-   (#x5a3c ?æ½)
-   (#x5a40 ?æ¹)
-   (#x5a46 ?ÆÅ)
-   (#x5a49 ?Ãñ)
-   (#x5a4a ?æ»)
-   (#x5a55 ?æ¼)
-   (#x5a5a ?Ȏ)
-   (#x5a62 ?æ¾)
-   (#x5a67 ?æº)
-   (#x5a6a ?À·)
-   (#x5a74 ?Ó¤)
-   (#x5a75 ?æ¿)
-   (#x5a76 ?Éô)
-   (#x5a77 ?æÃ)
-   (#x5a7a ?æÄ)
-   (#x5a7f ?Ãö)
-   (#x5a92 ?ý)
-   (#x5a9a ?ÃÄ)
-   (#x5a9b ?æÂ)
-   (#x5aaa ?æÃ)
-   (#x5ab2 ?æÇ)
-   (#x5ab3 ?ϱ)
-   (#x5ab5 ?ëô)
-   (#x5ab8 ?æÊ)
-   (#x5abe ?æÅ)
-   (#x5ac1 ?¼Þ)
-   (#x5ac2 ?É©)
-   (#x5ac9 ?¼µ)
-   (#x5acc ?ÃÓ)
-   (#x5ad2 ?æÈ)
-   (#x5ad4 ?æÉ)
-   (#x5ad6 ?æÎ)
-   (#x5ad8 ?æÃ)
-   (#x5adc ?æÑ)
-   (#x5ae0 ?æË)
-   (#x5ae1 ?µÕ)
-   (#x5ae3 ?æÌ)
-   (#x5ae6 ?æÃ)
-   (#x5ae9 ?ÄÛ)
-   (#x5aeb ?æÆ)
-   (#x5af1 ?æÃ)
-   (#x5b09 ?æÒ)
-   (#x5b16 ?æÔ)
-   (#x5b17 ?æÓ)
-   (#x5b32 ?æÕ)
-   (#x5b34 ?Ùø)
-   (#x5b37 ?æÖ)
-   (#x5b40 ?æ×)
-   (#x5b50 ?×Ó)
-   (#x5b51 ?æÃ)
-   (#x5b53 ?æÞ)
-   (#x5b54 ?¿×)
-   (#x5b55 ?ÔÃ)
-   (#x5b57 ?×Ö)
-   (#x5b58 ?´æ)
-   (#x5b59 ?Ëï)
-   (#x5b5a ?æÚ)
-   (#x5b5b ?ØÃ)
-   (#x5b5c ?×Î)
-   (#x5b5d ?Т)
-   (#x5b5f ?ÃÃ)
-   (#x5b62 ?æß)
-   (#x5b63 ?¼¾)
-   (#x5b64 ?¹Â)
-   (#x5b65 ?æÛ)
-   (#x5b66 ?ѧ)
-   (#x5b69 ?º¢)
-   (#x5b6a ?ÂÃ)
-   (#x5b6c ?Ø«)
-   (#x5b70 ?Êë)
-   (#x5b71 ?åî)
-   (#x5b73 ?æÜ)
-   (#x5b75 ?·õ)
-   (#x5b7a ?Èæ)
-   (#x5b7d ?Äõ)
-   (#x5b80 ?å²)
-   (#x5b81 ?Äþ)
-   (#x5b83 ?Ëü)
-   (#x5b84 ?å³)
-   (#x5b85 ?Õ¬)
-   (#x5b87 ?Óî)
-   (#x5b88 ?ÊØ)
-   (#x5b89 ?°²)
-   (#x5b8b ?ËÎ)
-   (#x5b8c ?Ãê)
-   (#x5b8f ?ºê)
-   (#x5b93 ?åµ)
-   (#x5b95 ?å´)
-   (#x5b97 ?×Ú)
-   (#x5b98 ?¹Ù)
-   (#x5b99 ?Öæ)
-   (#x5b9a ?¶¨)
-   (#x5b9b ?Ãð)
-   (#x5b9c ?ÒË)
-   (#x5b9d ?±¦)
-   (#x5b9e ?ʵ)
-   (#x5ba0 ?³è)
-   (#x5ba1 ?Éó)
-   (#x5ba2 ?¿Ã)
-   (#x5ba3 ?Ãû)
-   (#x5ba4 ?ÊÒ)
-   (#x5ba5 ?å¶)
-   (#x5ba6 ?»Â)
-   (#x5baa ?ÃÃœ)
-   (#x5bab ?¹¬)
-   (#x5bb0 ?Ô×)
-   (#x5bb3 ?º¦)
-   (#x5bb4 ?Ñç)
-   (#x5bb5 ?Ãü)
-   (#x5bb6 ?¼Ò)
-   (#x5bb8 ?å·)
-   (#x5bb9 ?ÈÃ)
-   (#x5bbd ?¿í)
-   (#x5bbe ?±ö)
-   (#x5bbf ?ËÞ)
-   (#x5bc2 ?¼Å)
-   (#x5bc4 ?¼Ä)
-   (#x5bc5 ?Òú)
-   (#x5bc6 ?ÃÜ)
-   (#x5bc7 ?¿Ü)
-   (#x5bcc ?¸»)
-   (#x5bd0 ?ÃÂ)
-   (#x5bd2 ?º®)
-   (#x5bd3 ?Ô¢)
-   (#x5bdd ?ÇÞ)
-   (#x5bde ?į)
-   (#x5bdf ?²ì)
-   (#x5be1 ?¹Ñ)
-   (#x5be4 ?å»)
-   (#x5be5 ?ÃÈ)
-   (#x5be8 ?Õ¯)
-   (#x5bee ?å¼)
-   (#x5bf0 ?å¾)
-   (#x5bf8 ?´ç)
-   (#x5bf9 ?¶Ô)
-   (#x5bfa ?ËÂ)
-   (#x5bfb ?Ñ°)
-   (#x5bfc ?µ¼)
-   (#x5bff ?ÊÙ)
-   (#x5c01 ?·â)
-   (#x5c04 ?Éä)
-   (#x5c06 ?½«)
-   (#x5c09 ?ξ)
-   (#x5c0a ?×ð)
-   (#x5c0f ?С)
-   (#x5c11 ?ÉÙ)
-   (#x5c14 ?¶û)
-   (#x5c15 ?æØ)
-   (#x5c16 ?¼â)
-   (#x5c18 ?³¾)
-   (#x5c1a ?ÉÃ)
-   (#x5c1c ?æÙ)
-   (#x5c1d ?³¢)
-   (#x5c22 ?ÞÌ)
-   (#x5c24 ?ÓÈ)
-   (#x5c25 ?ÞÃ)
-   (#x5c27 ?Ò¢)
-   (#x5c2c ?ÞÎ)
-   (#x5c31 ?¾Ã)
-   (#x5c34 ?ÞÃ)
-   (#x5c38 ?ʬ)
-   (#x5c39 ?Òü)
-   (#x5c3a ?³ß)
-   (#x5c3b ?åê)
-   (#x5c3c ?Äá)
-   (#x5c3d ?¾¡)
-   (#x5c3e ?β)
-   (#x5c3f ?Äò)
-   (#x5c40 ?¾Ö)
-   (#x5c41 ?ƨ)
-   (#x5c42 ?²ã)
-   (#x5c45 ?¾Ó)
-   (#x5c48 ?Çü)
-   (#x5c49 ?Ìë)
-   (#x5c4a ?½ì)
-   (#x5c4b ?ÃŽÃ)
-   (#x5c4e ?ʺ)
-   (#x5c4f ?ÆÃ)
-   (#x5c50 ?åì)
-   (#x5c51 ?м)
-   (#x5c55 ?Õ¹)
-   (#x5c59 ?åí)
-   (#x5c5e ?Êô)
-   (#x5c60 ?ÃÀ)
-   (#x5c61 ?ÂÅ)
-   (#x5c63 ?åï)
-   (#x5c65 ?ÂÄ)
-   (#x5c66 ?åð)
-   (#x5c6e ?åø)
-   (#x5c6f ?ÃÃ)
-   (#x5c71 ?ɽ)
-   (#x5c79 ?ÒÙ)
-   (#x5c7a ?á¨)
-   (#x5c7f ?Óì)
-   (#x5c81 ?Ëê)
-   (#x5c82 ?Æñ)
-   (#x5c88 ?á¬)
-   (#x5c8c ?á§)
-   (#x5c8d ?á©)
-   (#x5c90 ?áª)
-   (#x5c91 ?á¯)
-   (#x5c94 ?²í)
-   (#x5c96 ?á«)
-   (#x5c97 ?¸Ú)
-   (#x5c98 ?á­)
-   (#x5c99 ?á®)
-   (#x5c9a ?á°)
-   (#x5c9b ?µº)
-   (#x5c9c ?á±)
-   (#x5ca2 ?á³)
-   (#x5ca3 ?á¸)
-   (#x5ca9 ?ÑÒ)
-   (#x5cab ?á¶)
-   (#x5cac ?áµ)
-   (#x5cad ?Ãë)
-   (#x5cb1 ?á·)
-   (#x5cb3 ?ÔÀ)
-   (#x5cb5 ?á²)
-   (#x5cb7 ?áº)
-   (#x5cb8 ?°¶)
-   (#x5cbd ?á´)
-   (#x5cbf ?¿ù)
-   (#x5cc1 ?á¹)
-   (#x5cc4 ?á»)
-   (#x5ccb ?á¾)
-   (#x5cd2 ?á¼)
-   (#x5cd9 ?ÖÅ)
-   (#x5ce1 ?Ï¿)
-   (#x5ce4 ?á½)
-   (#x5ce5 ?á¿)
-   (#x5ce6 ?ÂÃ)
-   (#x5ce8 ?¶ë)
-   (#x5cea ?Óø)
-   (#x5ced ?ÇÃ)
-   (#x5cf0 ?·å)
-   (#x5cfb ?¾þ)
-   (#x5d02 ?áÀ)
-   (#x5d03 ?áÃ)
-   (#x5d06 ?áÇ)
-   (#x5d07 ?³ç)
-   (#x5d0e ?Æé)
-   (#x5d14 ?´Þ)
-   (#x5d16 ?ÑÂ)
-   (#x5d1b ?áÈ)
-   (#x5d1e ?áÆ)
-   (#x5d24 ?áÅ)
-   (#x5d26 ?áÃ)
-   (#x5d27 ?áÂ)
-   (#x5d29 ?±À)
-   (#x5d2d ?Õ¸)
-   (#x5d2e ?áÄ)
-   (#x5d34 ?áË)
-   (#x5d3d ?áÌ)
-   (#x5d3e ?áÊ)
-   (#x5d47 ?ïú)
-   (#x5d4a ?áÓ)
-   (#x5d4b ?áÒ)
-   (#x5d4c ?Ƕ)
-   (#x5d58 ?áÉ)
-   (#x5d5b ?áÎ)
-   (#x5d5d ?áÃ)
-   (#x5d69 ?áÔ)
-   (#x5d6b ?áÑ)
-   (#x5d6c ?áÃ)
-   (#x5d6f ?áÃ)
-   (#x5d74 ?áÕ)
-   (#x5d82 ?áÖ)
-   (#x5d99 ?á×)
-   (#x5d9d ?áØ)
-   (#x5db7 ?áÚ)
-   (#x5dc5 ?áÛ)
-   (#x5dcd ?Ρ)
-   (#x5ddb ?çÃ)
-   (#x5ddd ?´¨)
-   (#x5dde ?ÖÃ)
-   (#x5de1 ?Ѳ)
-   (#x5de2 ?³²)
-   (#x5de5 ?¹¤)
-   (#x5de6 ?×ó)
-   (#x5de7 ?ÇÉ)
-   (#x5de8 ?¾Þ)
-   (#x5de9 ?¹®)
-   (#x5deb ?Î×)
-   (#x5dee ?²î)
-   (#x5def ?ÛÃ)
-   (#x5df1 ?¼º)
-   (#x5df2 ?ÒÑ)
-   (#x5df3 ?ËÈ)
-   (#x5df4 ?°Ã)
-   (#x5df7 ?Ãï)
-   (#x5dfd ?Ùã)
-   (#x5dfe ?½í)
-   (#x5e01 ?±Ò)
-   (#x5e02 ?ÊÃ)
-   (#x5e03 ?²¼)
-   (#x5e05 ?˧)
-   (#x5e06 ?·«)
-   (#x5e08 ?ʦ)
-   (#x5e0c ?Ï£)
-   (#x5e0f ?àø)
-   (#x5e10 ?ÕÊ)
-   (#x5e11 ?àû)
-   (#x5e14 ?àú)
-   (#x5e15 ?Ã…Ã)
-   (#x5e16 ?Ìû)
-   (#x5e18 ?ñ)
-   (#x5e19 ?àù)
-   (#x5e1a ?Öã)
-   (#x5e1b ?²¯)
-   (#x5e1c ?ÖÄ)
-   (#x5e1d ?µÛ)
-   (#x5e26 ?´ø)
-   (#x5e27 ?Ö¡)
-   (#x5e2d ?ϯ)
-   (#x5e2e ?°ï)
-   (#x5e31 ?àü)
-   (#x5e37 ?á¡)
-   (#x5e38 ?³£)
-   (#x5e3b ?àý)
-   (#x5e3c ?àþ)
-   (#x5e3d ?ñ)
-   (#x5e42 ?ÃÃ)
-   (#x5e44 ?á¢)
-   (#x5e45 ?·ù)
-   (#x5e4c ?»Ã)
-   (#x5e54 ?á£)
-   (#x5e55 ?Ä»)
-   (#x5e5b ?á¤)
-   (#x5e5e ?á¥)
-   (#x5e61 ?á¦)
-   (#x5e62 ?´±)
-   (#x5e72 ?¸É)
-   (#x5e73 ?ƽ)
-   (#x5e74 ?Äê)
-   (#x5e76 ?²¢)
-   (#x5e78 ?ÃÃ’)
-   (#x5e7a ?çÛ)
-   (#x5e7b ?»Ã)
-   (#x5e7c ?Ó×)
-   (#x5e7d ?ÓÄ)
-   (#x5e7f ?¹ã)
-   (#x5e80 ?âÃ)
-   (#x5e84 ?ׯ)
-   (#x5e86 ?Çì)
-   (#x5e87 ?±Ó)
-   (#x5e8a ?´²)
-   (#x5e8b ?âÑ)
-   (#x5e8f ?Ãò)
-   (#x5e90 ?®)
-   (#x5e91 ?âÃ)
-   (#x5e93 ?¿â)
-   (#x5e94 ?Ó¦)
-   (#x5e95 ?µ×)
-   (#x5e96 ?âÒ)
-   (#x5e97 ?µê)
-   (#x5e99 ?Ãí)
-   (#x5e9a ?¸ý)
-   (#x5e9c ?¸®)
-   (#x5e9e ?ÅÓ)
-   (#x5e9f ?·Ã)
-   (#x5ea0 ?âÔ)
-   (#x5ea5 ?âÓ)
-   (#x5ea6 ?¶È)
-   (#x5ea7 ?×ù)
-   (#x5ead ?Í¥)
-   (#x5eb3 ?âØ)
-   (#x5eb5 ?âÖ)
-   (#x5eb6 ?Êü)
-   (#x5eb7 ?¿µ)
-   (#x5eb8 ?Ó¹)
-   (#x5eb9 ?âÕ)
-   (#x5ebe ?â×)
-   (#x5ec9 ?î)
-   (#x5eca ?ÀÈ)
-   (#x5ed1 ?âÛ)
-   (#x5ed2 ?âÚ)
-   (#x5ed3 ?˻)
-   (#x5ed6 ?ÃÃŽ)
-   (#x5edb ?âÜ)
-   (#x5ee8 ?âÃ)
-   (#x5eea ?âÞ)
-   (#x5ef4 ?ÛÈ)
-   (#x5ef6 ?ÑÓ)
-   (#x5ef7 ?Í¢)
-   (#x5efa ?½¨)
-   (#x5efe ?ÞÃ)
-   (#x5eff ?Ø¥)
-   (#x5f00 ?¿ª)
-   (#x5f01 ?ÛÃ)
-   (#x5f02 ?Òì)
-   (#x5f03 ?Æú)
-   (#x5f04 ?Ū)
-   (#x5f08 ?ÞÄ)
-   (#x5f0a ?±×)
-   (#x5f0b ?ß®)
-   (#x5f0f ?ʽ)
-   (#x5f11 ?ß±)
-   (#x5f13 ?¹­)
-   (#x5f15 ?Òý)
-   (#x5f17 ?¸¥)
-   (#x5f18 ?ºë)
-   (#x5f1b ?³Ú)
-   (#x5f1f ?µÜ)
-   (#x5f20 ?ÕÅ)
-   (#x5f25 ?ÃÖ)
-   (#x5f26 ?ÃÃ’)
-   (#x5f27 ?»¡)
-   (#x5f29 ?åó)
-   (#x5f2a ?åò)
-   (#x5f2d ?åô)
-   (#x5f2f ?Ãä)
-   (#x5f31 ?Èõ)
-   (#x5f39 ?µ¯)
-   (#x5f3a ?Ç¿)
-   (#x5f3c ?åö)
-   (#x5f40 ?ì°)
-   (#x5f50 ?åæ)
-   (#x5f52 ?¹é)
-   (#x5f53 ?µ±)
-   (#x5f55 ?¼)
-   (#x5f56 ?åè)
-   (#x5f57 ?åç)
-   (#x5f58 ?åé)
-   (#x5f5d ?Ã’Ã)
-   (#x5f61 ?áê)
-   (#x5f62 ?ÃÃŽ)
-   (#x5f64 ?Í®)
-   (#x5f66 ?Ñå)
-   (#x5f69 ?²Ê)
-   (#x5f6a ?±ë)
-   (#x5f6c ?±ò)
-   (#x5f6d ?Åí)
-   (#x5f70 ?ÕÃ)
-   (#x5f71 ?Ó°)
-   (#x5f73 ?áÜ)
-   (#x5f77 ?áÃ)
-   (#x5f79 ?ÒÛ)
-   (#x5f7b ?³¹)
-   (#x5f7c ?±Ë)
-   (#x5f80 ?Ãù)
-   (#x5f81 ?Õ÷)
-   (#x5f82 ?áÞ)
-   (#x5f84 ?¾¶)
-   (#x5f85 ?´ý)
-   (#x5f87 ?áß)
-   (#x5f88 ?ºÜ)
-   (#x5f89 ?áà)
-   (#x5f8a ?»²)
-   (#x5f8b ?ÂÉ)
-   (#x5f8c ?áá)
-   (#x5f90 ?Ãì)
-   (#x5f92 ?ͽ)
-   (#x5f95 ?áâ)
-   (#x5f97 ?µÃ)
-   (#x5f98 ?ÅÇ)
-   (#x5f99 ?áã)
-   (#x5f9c ?áä)
-   (#x5fa1 ?Óù)
-   (#x5fa8 ?áå)
-   (#x5faa ?Ñ­)
-   (#x5fad ?áæ)
-   (#x5fae ?΢)
-   (#x5fb5 ?áç)
-   (#x5fb7 ?µÂ)
-   (#x5fbc ?áè)
-   (#x5fbd ?»Õ)
-   (#x5fc3 ?ÃÄ)
-   (#x5fc4 ?âà)
-   (#x5fc5 ?±Ø)
-   (#x5fc6 ?Òä)
-   (#x5fc9 ?âá)
-   (#x5fcc ?¼É)
-   (#x5fcd ?ÈÌ)
-   (#x5fcf ?âã)
-   (#x5fd0 ?ìþ)
-   (#x5fd1 ?ìý)
-   (#x5fd2 ?߯)
-   (#x5fd6 ?ââ)
-   (#x5fd7 ?Ö¾)
-   (#x5fd8 ?Ãü)
-   (#x5fd9 ?æ)
-   (#x5fdd ?ãÃ)
-   (#x5fe0 ?ÖÒ)
-   (#x5fe1 ?âç)
-   (#x5fe4 ?âè)
-   (#x5fe7 ?ÓÇ)
-   (#x5fea ?âì)
-   (#x5feb ?¿ì)
-   (#x5fed ?âí)
-   (#x5fee ?âå)
-   (#x5ff1 ?³À)
-   (#x5ff5 ?Äî)
-   (#x5ff8 ?âî)
-   (#x5ffb ?ÃÃ)
-   (#x5ffd ?ºö)
-   (#x5ffe ?âé)
-   (#x5fff ?·Þ)
-   (#x6000 ?»³)
-   (#x6001 ?̬)
-   (#x6002 ?ËË)
-   (#x6003 ?âä)
-   (#x6004 ?âæ)
-   (#x6005 ?âê)
-   (#x6006 ?âë)
-   (#x600a ?â÷)
-   (#x600d ?âô)
-   (#x600e ?Ôõ)
-   (#x600f ?âó)
-   (#x6012 ?Å­)
-   (#x6014 ?Õú)
-   (#x6015 ?ÅÂ)
-   (#x6016 ?²À)
-   (#x6019 ?âï)
-   (#x601b ?âò)
-   (#x601c ?ï)
-   (#x601d ?˼)
-   (#x6020 ?µ¡)
-   (#x6021 ?âù)
-   (#x6025 ?¼±)
-   (#x6026 ?âñ)
-   (#x6027 ?ÃÔ)
-   (#x6028 ?Ô¹)
-   (#x6029 ?âõ)
-   (#x602a ?¹Ö)
-   (#x602b ?âö)
-   (#x602f ?ÇÓ)
-   (#x6035 ?âð)
-   (#x603b ?×Ü)
-   (#x603c ?í¡)
-   (#x603f ?âø)
-   (#x6041 ?í¥)
-   (#x6042 ?âþ)
-   (#x6043 ?ÊÑ)
-   (#x604b ?õ)
-   (#x604d ?»Ã)
-   (#x6050 ?¿Ö)
-   (#x6052 ?ºã)
-   (#x6055 ?Ë¡)
-   (#x6059 ?í¦)
-   (#x605a ?í£)
-   (#x605d ?í¢)
-   (#x6062 ?»Ö)
-   (#x6063 ?í§)
-   (#x6064 ?Ãô)
-   (#x6067 ?í¤)
-   (#x6068 ?ºÞ)
-   (#x6069 ?¶÷)
-   (#x606a ?ã¡)
-   (#x606b ?¶²)
-   (#x606c ?Ìñ)
-   (#x606d ?¹§)
-   (#x606f ?Ï¢)
-   (#x6070 ?Ç¡)
-   (#x6073 ?¿Ò)
-   (#x6076 ?¶ñ)
-   (#x6078 ?âú)
-   (#x6079 ?âû)
-   (#x607a ?âý)
-   (#x607b ?âü)
-   (#x607c ?ÄÕ)
-   (#x607d ?ã¢)
-   (#x607f ?ÓÃ)
-   (#x6083 ?ã§)
-   (#x6084 ?ÇÄ)
-   (#x6089 ?Ϥ)
-   (#x608c ?ã©)
-   (#x608d ?º·)
-   (#x6092 ?ã¨)
-   (#x6094 ?»Ú)
-   (#x6096 ?ã£)
-   (#x609a ?ã¤)
-   (#x609b ?ãª)
-   (#x609d ?ã¦)
-   (#x609f ?Îò)
-   (#x60a0 ?ÓÆ)
-   (#x60a3 ?»¼)
-   (#x60a6 ?ÔÃ)
-   (#x60a8 ?Äú)
-   (#x60ab ?í¨)
-   (#x60ac ?Ãü)
-   (#x60ad ?ã¥)
-   (#x60af ?Ãõ)
-   (#x60b1 ?ã­)
-   (#x60b2 ?±¯)
-   (#x60b4 ?ã²)
-   (#x60b8 ?¼Â)
-   (#x60bb ?ã¬)
-   (#x60bc ?µ¿)
-   (#x60c5 ?Çé)
-   (#x60c6 ?ã°)
-   (#x60ca ?¾ª)
-   (#x60cb ?Ãï)
-   (#x60d1 ?»ó)
-   (#x60d5 ?Ìè)
-   (#x60d8 ?ã¯)
-   (#x60da ?ã±)
-   (#x60dc ?ϧ)
-   (#x60dd ?ã®)
-   (#x60df ?Ω)
-   (#x60e0 ?»Ã)
-   (#x60e6 ?µë)
-   (#x60e7 ?¾å)
-   (#x60e8 ?²Ò)
-   (#x60e9 ?³Ã)
-   (#x60eb ?±¹)
-   (#x60ec ?ã«)
-   (#x60ed ?²Ñ)
-   (#x60ee ?µ¬)
-   (#x60ef ?¹ß)
-   (#x60f0 ?¶è)
-   (#x60f3 ?Ãë)
-   (#x60f4 ?ã·)
-   (#x60f6 ?»Ì)
-   (#x60f9 ?ÈÇ)
-   (#x60fa ?ÃÊ)
-   (#x6100 ?ã¸)
-   (#x6101 ?³î)
-   (#x6106 ?í©)
-   (#x6108 ?Óú)
-   (#x6109 ?Óä)
-   (#x610d ?íª)
-   (#x610e ?ã¹)
-   (#x610f ?Òâ)
-   (#x6115 ?ãµ)
-   (#x611a ?ÓÞ)
-   (#x611f ?¸Ã)
-   (#x6120 ?ã³)
-   (#x6123 ?ã¶)
-   (#x6124 ?·ß)
-   (#x6126 ?ã´)
-   (#x6127 ?À¢)
-   (#x612b ?ãº)
-   (#x613f ?Ô¸)
-   (#x6148 ?´È)
-   (#x614a ?ã»)
-   (#x614c ?ȁ)
-   (#x614e ?É÷)
-   (#x6151 ?Éå)
-   (#x6155 ?Ľ)
-   (#x615d ?í«)
-   (#x6162 ?Âý)
-   (#x6167 ?»Û)
-   (#x6168 ?¿®)
-   (#x6170 ?ο)
-   (#x6175 ?ã¼)
-   (#x6177 ?¿¶)
-   (#x618b ?±ï)
-   (#x618e ?Ô÷)
-   (#x6194 ?ã¾)
-   (#x619d ?í­)
-   (#x61a7 ?ã¿)
-   (#x61a8 ?º©)
-   (#x61a9 ?í¬)
-   (#x61ac ?ã½)
-   (#x61b7 ?ãÀ)
-   (#x61be ?º¶)
-   (#x61c2 ?¶®)
-   (#x61c8 ?и)
-   (#x61ca ?°Ã)
-   (#x61cb ?í®)
-   (#x61d1 ?í¯)
-   (#x61d2 ?ÀÃ)
-   (#x61d4 ?ãÃ)
-   (#x61e6 ?ų)
-   (#x61f5 ?ãÂ)
-   (#x61ff ?ܲ)
-   (#x6206 ?í°)
-   (#x6208 ?¸ê)
-   (#x620a ?Îì)
-   (#x620b ?ê§)
-   (#x620c ?Ãç)
-   (#x620d ?Êù)
-   (#x620e ?ÈÖ)
-   (#x620f ?Ï·)
-   (#x6210 ?³É)
-   (#x6211 ?ÃŽÃ’)
-   (#x6212 ?½ä)
-   (#x6215 ?ãÞ)
-   (#x6216 ?»ò)
-   (#x6217 ?ê¨)
-   (#x6218 ?Õ½)
-   (#x621a ?ÆÃ)
-   (#x621b ?ê©)
-   (#x621f ?êª)
-   (#x6221 ?ê¬)
-   (#x6222 ?ê«)
-   (#x6224 ?ê®)
-   (#x6225 ?ê­)
-   (#x622a ?½Ø)
-   (#x622c ?ê¯)
-   (#x622e ?¾)
-   (#x6233 ?´Ã)
-   (#x6234 ?´÷)
-   (#x6237 ?Ȥ)
-   (#x623d ?ìæ)
-   (#x623e ?ìå)
-   (#x623f ?·¿)
-   (#x6240 ?Ëù)
-   (#x6241 ?±â)
-   (#x6243 ?ìç)
-   (#x6247 ?ÉÈ)
-   (#x6248 ?ìè)
-   (#x6249 ?ìé)
-   (#x624b ?ÊÖ)
-   (#x624c ?ÞÃ)
-   (#x624d ?²Å)
-   (#x624e ?Ôú)
-   (#x6251 ?ÆË)
-   (#x6252 ?°Ç)
-   (#x6253 ?´ò)
-   (#x6254 ?ÈÓ)
-   (#x6258 ?ÃÃ)
-   (#x625b ?¿¸)
-   (#x6263 ?¿Û)
-   (#x6266 ?Ǥ)
-   (#x6267 ?Ö´)
-   (#x6269 ?À©)
-   (#x626a ?ÞÑ)
-   (#x626b ?ɨ)
-   (#x626c ?Ñï)
-   (#x626d ?Ť)
-   (#x626e ?°ç)
-   (#x626f ?³¶)
-   (#x6270 ?ÈÅ)
-   (#x6273 ?°â)
-   (#x6276 ?·ö)
-   (#x6279 ?Åú)
-   (#x627c ?¶ó)
-   (#x627e ?ÕÒ)
-   (#x627f ?³Ã)
-   (#x6280 ?¼¼)
-   (#x6284 ?³­)
-   (#x6289 ?¾ñ)
-   (#x628a ?°Ñ)
-   (#x6291 ?ÒÖ)
-   (#x6292 ?Êã)
-   (#x6293 ?×¥)
-   (#x6295 ?Ͷ)
-   (#x6296 ?¶¶)
-   (#x6297 ?¿¹)
-   (#x6298 ?ÕÛ)
-   (#x629a ?¸§)
-   (#x629b ?Å×)
-   (#x629f ?ÞÒ)
-   (#x62a0 ?¿Ù)
-   (#x62a1 ?ÂÕ)
-   (#x62a2 ?ÇÀ)
-   (#x62a4 ?»¤)
-   (#x62a5 ?±¨)
-   (#x62a8 ?Åê)
-   (#x62ab ?Åû)
-   (#x62ac ?̧)
-   (#x62b1 ?±§)
-   (#x62b5 ?µÖ)
-   (#x62b9 ?Ĩ)
-   (#x62bb ?ÞÓ)
-   (#x62bc ?Ѻ)
-   (#x62bd ?³é)
-   (#x62bf ?Ãò)
-   (#x62c2 ?·÷)
-   (#x62c4 ?Öô)
-   (#x62c5 ?µ£)
-   (#x62c6 ?²ð)
-   (#x62c7 ?Ä´)
-   (#x62c8 ?Äé)
-   (#x62c9 ?À­)
-   (#x62ca ?ÞÔ)
-   (#x62cc ?°è)
-   (#x62cd ?ÅÄ)
-   (#x62ce ?Ãà)
-   (#x62d0 ?¹Õ)
-   (#x62d2 ?¾Ü)
-   (#x62d3 ?ÃØ)
-   (#x62d4 ?°Î)
-   (#x62d6 ?ÃÃ)
-   (#x62d7 ?ÞÖ)
-   (#x62d8 ?¾Ã)
-   (#x62d9 ?×¾)
-   (#x62da ?ÞÕ)
-   (#x62db ?ÕÃ)
-   (#x62dc ?°Ã)
-   (#x62df ?Äâ)
-   (#x62e2 ?£)
-   (#x62e3 ?¼ð)
-   (#x62e5 ?Óµ)
-   (#x62e6 ?À¹)
-   (#x62e7 ?Å¡)
-   (#x62e8 ?²¦)
-   (#x62e9 ?Ôñ)
-   (#x62ec ?ˬ)
-   (#x62ed ?ÊÃ)
-   (#x62ee ?Þ×)
-   (#x62ef ?Õü)
-   (#x62f1 ?¹°)
-   (#x62f3 ?È­)
-   (#x62f4 ?Ë©)
-   (#x62f6 ?ÞÙ)
-   (#x62f7 ?¿½)
-   (#x62fc ?Æ´)
-   (#x62fd ?ק)
-   (#x62fe ?Ê°)
-   (#x62ff ?ÄÃ)
-   (#x6301 ?³Ö)
-   (#x6302 ?¹Ò)
-   (#x6307 ?Ö¸)
-   (#x6308 ?êü)
-   (#x6309 ?°´)
-   (#x630e ?¿æ)
-   (#x6311 ?Ìô)
-   (#x6316 ?ÃÚ)
-   (#x631a ?Ö¿)
-   (#x631b ?ÂÎ)
-   (#x631d ?ÃŽÃŽ)
-   (#x631e ?Ì¢)
-   (#x631f ?Ю)
-   (#x6320 ?ÄÓ)
-   (#x6321 ?µ²)
-   (#x6322 ?ÞØ)
-   (#x6323 ?Õõ)
-   (#x6324 ?¼·)
-   (#x6325 ?»Ó)
-   (#x6328 ?°¤)
-   (#x632a ?Ų)
-   (#x632b ?´ì)
-   (#x632f ?Õñ)
-   (#x6332 ?êý)
-   (#x6339 ?ÞÚ)
-   (#x633a ?ͦ)
-   (#x633d ?Ãì)
-   (#x6342 ?Îæ)
-   (#x6343 ?ÞÜ)
-   (#x6345 ?ͱ)
-   (#x6346 ?À¦)
-   (#x6349 ?×½)
-   (#x634b ?ÞÛ)
-   (#x634c ?°Æ)
-   (#x634d ?º´)
-   (#x634e ?ÉÓ)
-   (#x634f ?Äó)
-   (#x6350 ?¾è)
-   (#x6355 ?²¶)
-   (#x635e ?ÀÌ)
-   (#x635f ?Ëð)
-   (#x6361 ?¼ñ)
-   (#x6362 ?»»)
-   (#x6363 ?µ·)
-   (#x6367 ?Åõ)
-   (#x6369 ?Þæ)
-   (#x636d ?Þã)
-   (#x636e ?¾Ã)
-   (#x6371 ?Þß)
-   (#x6376 ?´·)
-   (#x6377 ?½Ã)
-   (#x637a ?Þà)
-   (#x637b ?Äí)
-   (#x6380 ?ÃÆ)
-   (#x6382 ?µà)
-   (#x6387 ?¶Þ)
-   (#x6388 ?ÊÚ)
-   (#x6389 ?µô)
-   (#x638a ?Þå)
-   (#x638c ?ÕÆ)
-   (#x638e ?Þá)
-   (#x638f ?ÃŒÃ)
-   (#x6390 ?Æþ)
-   (#x6392 ?Ã…Ã…)
-   (#x6396 ?Ò´)
-   (#x6398 ?¾ò)
-   (#x63a0 ?ÂÓ)
-   (#x63a2 ?̽)
-   (#x63a3 ?³¸)
-   (#x63a5 ?½Ó)
-   (#x63a7 ?¿Ø)
-   (#x63a8 ?ÃÆ)
-   (#x63a9 ?ÑÚ)
-   (#x63aa ?´ë)
-   (#x63ac ?Þä)
-   (#x63ad ?ÞÃ)
-   (#x63ae ?Þç)
-   (#x63b0 ?êþ)
-   (#x63b3 ?°)
-   (#x63b4 ?Þâ)
-   (#x63b7 ?ÖÀ)
-   (#x63b8 ?µ§)
-   (#x63ba ?²ô)
-   (#x63bc ?Þè)
-   (#x63be ?Þò)
-   (#x63c4 ?Þí)
-   (#x63c6 ?Þñ)
-   (#x63c9 ?Èà)
-   (#x63cd ?×á)
-   (#x63ce ?Þï)
-   (#x63cf ?Ãè)
-   (#x63d0 ?Ìá)
-   (#x63d2 ?²å)
-   (#x63d6 ?Ò¾)
-   (#x63de ?Þî)
-   (#x63e0 ?Þë)
-   (#x63e1 ?ÎÕ)
-   (#x63e3 ?´§)
-   (#x63e9 ?¿«)
-   (#x63ea ?¾¾)
-   (#x63ed ?½Ò)
-   (#x63f2 ?Þé)
-   (#x63f4 ?Ô®)
-   (#x63f6 ?ÞÞ)
-   (#x63f8 ?Þê)
-   (#x63fd ?À¿)
-   (#x63ff ?Þì)
-   (#x6400 ?²ó)
-   (#x6401 ?¸é)
-   (#x6402 ?§)
-   (#x6405 ?½Ã)
-   (#x640b ?Þõ)
-   (#x640c ?Þø)
-   (#x640f ?²«)
-   (#x6410 ?´¤)
-   (#x6413 ?´ê)
-   (#x6414 ?ɦ)
-   (#x641b ?Þö)
-   (#x641c ?ËÑ)
-   (#x641e ?¸ã)
-   (#x6420 ?Þ÷)
-   (#x6421 ?Þú)
-   (#x6426 ?Þù)
-   (#x642a ?ÌÂ)
-   (#x642c ?°á)
-   (#x642d ?´î)
-   (#x6434 ?åº)
-   (#x643a ?Я)
-   (#x643d ?²ë)
-   (#x643f ?ë¡)
-   (#x6441 ?Þô)
-   (#x6444 ?Éã)
-   (#x6445 ?Þó)
-   (#x6446 ?°Ú)
-   (#x6447 ?Ò¡)
-   (#x6448 ?±÷)
-   (#x644a ?̯)
-   (#x6452 ?Þð)
-   (#x6454 ?ˤ)
-   (#x6458 ?Õª)
-   (#x645e ?Þû)
-   (#x6467 ?´Ã)
-   (#x6469 ?Ħ)
-   (#x646d ?Þý)
-   (#x6478 ?Ãþ)
-   (#x6479 ?Ä¡)
-   (#x647a ?ß¡)
-   (#x6482 ?ÃÃŒ)
-   (#x6484 ?Þü)
-   (#x6485 ?¾ï)
-   (#x6487 ?Ʋ)
-   (#x6491 ?³Å)
-   (#x6492 ?Èö)
-   (#x6495 ?˺)
-   (#x6496 ?Þþ)
-   (#x6499 ?ߤ)
-   (#x649e ?ײ)
-   (#x64a4 ?³·)
-   (#x64a9 ?ÃÃ)
-   (#x64ac ?ÇË)
-   (#x64ad ?²¥)
-   (#x64ae ?´é)
-   (#x64b0 ?׫)
-   (#x64b5 ?Äì)
-   (#x64b7 ?ߢ)
-   (#x64b8 ?ߣ)
-   (#x64ba ?ߥ)
-   (#x64bc ?º³)
-   (#x64c0 ?ߦ)
-   (#x64c2 ?ÀÞ)
-   (#x64c5 ?ÉÃ)
-   (#x64cd ?²Ù)
-   (#x64ce ?Çæ)
-   (#x64d0 ?ߧ)
-   (#x64d2 ?ÇÜ)
-   (#x64d7 ?ߨ)
-   (#x64d8 ?ë¢)
-   (#x64de ?ËÓ)
-   (#x64e2 ?ߪ)
-   (#x64e4 ?ß©)
-   (#x64e6 ?²Ã)
-   (#x6500 ?ÅÊ)
-   (#x6509 ?ß«)
-   (#x6512 ?ÔÜ)
-   (#x6518 ?ÈÃ)
-   (#x6525 ?߬)
-   (#x652b ?¾ð)
-   (#x652e ?ß­)
-   (#x652f ?Ö§)
-   (#x6534 ?ê·)
-   (#x6535 ?ë¶)
-   (#x6536 ?ÊÕ)
-   (#x6538 ?Øü)
-   (#x6539 ?¸Ä)
-   (#x653b ?¹¥)
-   (#x653e ?·Å)
-   (#x653f ?Õþ)
-   (#x6545 ?¹Ê)
-   (#x6548 ?Ч)
-   (#x6549 ?ôÃ)
-   (#x654c ?µÃ)
-   (#x654f ?Ãô)
-   (#x6551 ?¾È)
-   (#x6555 ?ë·)
-   (#x6556 ?°½)
-   (#x6559 ?½Ì)
-   (#x655b ?ò)
-   (#x655d ?±Ö)
-   (#x655e ?³¨)
-   (#x6562 ?¸Ò)
-   (#x6563 ?É¢)
-   (#x6566 ?¶Ø)
-   (#x656b ?ë¸)
-   (#x656c ?¾´)
-   (#x6570 ?Êý)
-   (#x6572 ?ÇÃ)
-   (#x6574 ?Õû)
-   (#x6577 ?·ó)
-   (#x6587 ?ÎÄ)
-   (#x658b ?Õ«)
-   (#x658c ?±ó)
-   (#x6590 ?ì³)
-   (#x6591 ?°ß)
-   (#x6593 ?ìµ)
-   (#x6597 ?¶·)
-   (#x6599 ?ÃÃ)
-   (#x659b ?õú)
-   (#x659c ?б)
-   (#x659f ?Õå)
-   (#x65a1 ?ÎÓ)
-   (#x65a4 ?½ï)
-   (#x65a5 ?³â)
-   (#x65a7 ?¸«)
-   (#x65a9 ?Õ¶)
-   (#x65ab ?í½)
-   (#x65ad ?¶Ã)
-   (#x65af ?˹)
-   (#x65b0 ?ÃÂ)
-   (#x65b9 ?·½)
-   (#x65bc ?ì¶)
-   (#x65bd ?Ê©)
-   (#x65c1 ?ÅÔ)
-   (#x65c3 ?ì¹)
-   (#x65c4 ?ì¸)
-   (#x65c5 ?ÂÃ)
-   (#x65c6 ?ì·)
-   (#x65cb ?Ãý)
-   (#x65cc ?ìº)
-   (#x65ce ?ì»)
-   (#x65cf ?×å)
-   (#x65d2 ?ì¼)
-   (#x65d6 ?ì½)
-   (#x65d7 ?Æì)
-   (#x65e0 ?ÎÞ)
-   (#x65e2 ?¼È)
-   (#x65e5 ?ÈÕ)
-   (#x65e6 ?µ©)
-   (#x65e7 ?¾É)
-   (#x65e8 ?Ö¼)
-   (#x65e9 ?Ôç)
-   (#x65ec ?Ñ®)
-   (#x65ed ?Ãñ)
-   (#x65ee ?ê¸)
-   (#x65ef ?ê¹)
-   (#x65f0 ?êº)
-   (#x65f1 ?ºµ)
-   (#x65f6 ?ʱ)
-   (#x65f7 ?¿õ)
-   (#x65fa ?Ãú)
-   (#x6600 ?êÀ)
-   (#x6602 ?°º)
-   (#x6603 ?ê¾)
-   (#x6606 ?À¥)
-   (#x660a ?ê»)
-   (#x660c ?²ý)
-   (#x660e ?Ã÷)
-   (#x660f ?ȏ)
-   (#x6613 ?Ò×)
-   (#x6614 ?Îô)
-   (#x6615 ?ê¿)
-   (#x6619 ?ê¼)
-   (#x661d ?êÃ)
-   (#x661f ?ÃÇ)
-   (#x6620 ?Ó³)
-   (#x6625 ?´º)
-   (#x6627 ?ÃÃ)
-   (#x6628 ?×ò)
-   (#x662d ?ÕÑ)
-   (#x662f ?ÊÇ)
-   (#x6631 ?êÅ)
-   (#x6634 ?êÄ)
-   (#x6635 ?êÇ)
-   (#x6636 ?êÆ)
-   (#x663c ?Öç)
-   (#x663e ?ÃÔ)
-   (#x6641 ?êË)
-   (#x6643 ?»Î)
-   (#x664b ?½ú)
-   (#x664c ?ÉÎ)
-   (#x664f ?êÌ)
-   (#x6652 ?ɹ)
-   (#x6653 ?Ãþ)
-   (#x6654 ?êÊ)
-   (#x6655 ?ÔÎ)
-   (#x6656 ?êÃ)
-   (#x6657 ?êÃ)
-   (#x665a ?Ãí)
-   (#x665f ?êÉ)
-   (#x6661 ?êÎ)
-   (#x6664 ?Îî)
-   (#x6666 ?»Þ)
-   (#x6668 ?³¿)
-   (#x666e ?ÆÕ)
-   (#x666f ?¾°)
-   (#x6670 ?Îú)
-   (#x6674 ?Çç)
-   (#x6676 ?¾§)
-   (#x6677 ?êÃ)
-   (#x667a ?ÖÇ)
-   (#x667e ?ÃÀ)
-   (#x6682 ?ÔÃ)
-   (#x6684 ?êÑ)
-   (#x6687 ?Ͼ)
-   (#x668c ?êÒ)
-   (#x6691 ?Êî)
-   (#x6696 ?ů)
-   (#x6697 ?°µ)
-   (#x669d ?êÔ)
-   (#x66a7 ?êÓ)
-   (#x66a8 ?ôß)
-   (#x66ae ?ĺ)
-   (#x66b4 ?±©)
-   (#x66b9 ?åß)
-   (#x66be ?êÕ)
-   (#x66d9 ?Êï)
-   (#x66db ?êÖ)
-   (#x66dc ?ê×)
-   (#x66dd ?ÆØ)
-   (#x66e6 ?êØ)
-   (#x66e9 ?êÙ)
-   (#x66f0 ?Ô»)
-   (#x66f2 ?Çú)
-   (#x66f3 ?Ò·)
-   (#x66f4 ?¸ü)
-   (#x66f7 ?êÂ)
-   (#x66f9 ?²Ü)
-   (#x66fc ?Âü)
-   (#x66fe ?Ôø)
-   (#x66ff ?Ìæ)
-   (#x6700 ?×î)
-   (#x6708 ?ÔÂ)
-   (#x6709 ?ÓÃ)
-   (#x670a ?ëÃ)
-   (#x670b ?Åó)
-   (#x670d ?·þ)
-   (#x6710 ?ëÔ)
-   (#x6714 ?Ë·)
-   (#x6715 ?ëÞ)
-   (#x6717 ?ÀÊ)
-   (#x671b ?Ãû)
-   (#x671d ?³¯)
-   (#x671f ?ÆÚ)
-   (#x6726 ?ëü)
-   (#x6728 ?ľ)
-   (#x672a ?δ)
-   (#x672b ?Ä©)
-   (#x672c ?±¾)
-   (#x672d ?Ôý)
-   (#x672f ?Êõ)
-   (#x6731 ?Öì)
-   (#x6734 ?ÆÓ)
-   (#x6735 ?¶ä)
-   (#x673a ?»ú)
-   (#x673d ?Ãà)
-   (#x6740 ?ɱ)
-   (#x6742 ?ÔÓ)
-   (#x6743 ?Ȩ)
-   (#x6746 ?¸Ë)
-   (#x6748 ?è¾)
-   (#x6749 ?ɼ)
-   (#x674c ?è»)
-   (#x674e ?Àî)
-   (#x674f ?ÃÓ)
-   (#x6750 ?²Ä)
-   (#x6751 ?´å)
-   (#x6753 ?è¼)
-   (#x6756 ?ÕÈ)
-   (#x675c ?¶Å)
-   (#x675e ?è½)
-   (#x675f ?Êø)
-   (#x6760 ?¸Ü)
-   (#x6761 ?Ìõ)
-   (#x6765 ?À´)
-   (#x6768 ?Ñî)
-   (#x6769 ?è¿)
-   (#x676a ?èÂ)
-   (#x676d ?º¼)
-   (#x676f ?±­)
-   (#x6770 ?½Ü)
-   (#x6772 ?ê½)
-   (#x6773 ?èÃ)
-   (#x6775 ?èÆ)
-   (#x6777 ?èË)
-   (#x677c ?èÌ)
-   (#x677e ?ËÉ)
-   (#x677f ?°å)
-   (#x6781 ?¼«)
-   (#x6784 ?¹¹)
-   (#x6787 ?èÃ)
-   (#x6789 ?Ã÷)
-   (#x678b ?èÊ)
-   (#x6790 ?Îö)
-   (#x6795 ?Õí)
-   (#x6797 ?ÃÖ)
-   (#x6798 ?èÄ)
-   (#x679a ?ö)
-   (#x679c ?¹û)
-   (#x679d ?Ö¦)
-   (#x679e ?èÈ)
-   (#x67a2 ?Êà)
-   (#x67a3 ?Ôæ)
-   (#x67a5 ?èÀ)
-   (#x67a7 ?èÅ)
-   (#x67a8 ?èÇ)
-   (#x67aa ?ǹ)
-   (#x67ab ?·ã)
-   (#x67ad ?èÉ)
-   (#x67af ?¿Ã)
-   (#x67b0 ?èÒ)
-   (#x67b3 ?è×)
-   (#x67b5 ?èÕ)
-   (#x67b6 ?¼Ü)
-   (#x67b7 ?¼Ã)
-   (#x67b8 ?èÛ)
-   (#x67c1 ?èÞ)
-   (#x67c3 ?èÚ)
-   (#x67c4 ?±ú)
-   (#x67cf ?°Ø)
-   (#x67d0 ?ij)
-   (#x67d1 ?¸Ì)
-   (#x67d2 ?Æâ)
-   (#x67d3 ?Ⱦ)
-   (#x67d4 ?Èá)
-   (#x67d8 ?èÃ)
-   (#x67d9 ?èÔ)
-   (#x67da ?èÖ)
-   (#x67dc ?¹ñ)
-   (#x67dd ?èØ)
-   (#x67de ?×õ)
-   (#x67e0 ?Äû)
-   (#x67e2 ?èÜ)
-   (#x67e5 ?²é)
-   (#x67e9 ?èÑ)
-   (#x67ec ?¼í)
-   (#x67ef ?¿Â)
-   (#x67f0 ?èÃ)
-   (#x67f1 ?Öù)
-   (#x67f3 ?Ãø)
-   (#x67f4 ?²ñ)
-   (#x67fd ?èß)
-   (#x67ff ?ÊÃ)
-   (#x6800 ?èÙ)
-   (#x6805 ?Õ¤)
-   (#x6807 ?±ê)
-   (#x6808 ?Õ»)
-   (#x6809 ?èÎ)
-   (#x680a ?èÃ)
-   (#x680b ?¶°)
-   (#x680c ?èÓ)
-   (#x680e ?èÃ)
-   (#x680f ?À¸)
-   (#x6811 ?Ê÷)
-   (#x6813 ?˨)
-   (#x6816 ?ÆÜ)
-   (#x6817 ?Àõ)
-   (#x681d ?èé)
-   (#x6821 ?У)
-   (#x6829 ?èò)
-   (#x682a ?Öê)
-   (#x6832 ?èà)
-   (#x6833 ?èá)
-   (#x6837 ?Ñù)
-   (#x6838 ?ºË)
-   (#x6839 ?¸ù)
-   (#x683c ?¸ñ)
-   (#x683d ?ÔÔ)
-   (#x683e ?èï)
-   (#x6840 ?èî)
-   (#x6841 ?èì)
-   (#x6842 ?¹ð)
-   (#x6843 ?ÌÒ)
-   (#x6844 ?èæ)
-   (#x6845 ?Φ)
-   (#x6846 ?¿ò)
-   (#x6848 ?°¸)
-   (#x6849 ?èñ)
-   (#x684a ?èð)
-   (#x684c ?×À)
-   (#x684e ?èä)
-   (#x6850 ?Í©)
-   (#x6851 ?É£)
-   (#x6853 ?»¸)
-   (#x6854 ?½Û)
-   (#x6855 ?èê)
-   (#x6860 ?èâ)
-   (#x6861 ?èã)
-   (#x6862 ?èå)
-   (#x6863 ?µµ)
-   (#x6864 ?èç)
-   (#x6865 ?ÇÅ)
-   (#x6866 ?èë)
-   (#x6867 ?èí)
-   (#x6868 ?½°)
-   (#x6869 ?×®)
-   (#x686b ?èø)
-   (#x6874 ?èõ)
-   (#x6876 ?Í°)
-   (#x6877 ?èö)
-   (#x6881 ?ú)
-   (#x6883 ?èè)
-   (#x6885 ?÷)
-   (#x6886 ?°ð)
-   (#x688f ?èô)
-   (#x6893 ?è÷)
-   (#x6897 ?¹£)
-   (#x68a2 ?ÉÒ)
-   (#x68a6 ?ÃÎ)
-   (#x68a7 ?Îà)
-   (#x68a8 ?Àæ)
-   (#x68ad ?Ëó)
-   (#x68af ?ÃŒÃ)
-   (#x68b0 ?е)
-   (#x68b3 ?Êá)
-   (#x68b5 ?èó)
-   (#x68c0 ?¼ì)
-   (#x68c2 ?èù)
-   (#x68c9 ?ÃÞ)
-   (#x68cb ?Æå)
-   (#x68cd ?¹÷)
-   (#x68d2 ?°ô)
-   (#x68d5 ?×Ø)
-   (#x68d8 ?¼¬)
-   (#x68da ?Åï)
-   (#x68e0 ?ÌÄ)
-   (#x68e3 ?é¦)
-   (#x68ee ?É­)
-   (#x68f0 ?é¢)
-   (#x68f1 ?Àâ)
-   (#x68f5 ?¿Ã)
-   (#x68f9 ?èþ)
-   (#x68fa ?¹×)
-   (#x68fc ?èû)
-   (#x6901 ?é¤)
-   (#x6905 ?Ã’ÃŽ)
-   (#x690b ?é£)
-   (#x690d ?Ö²)
-   (#x690e ?×µ)
-   (#x6910 ?é§)
-   (#x6912 ?½·)
-   (#x691f ?èü)
-   (#x6920 ?èý)
-   (#x6924 ?é¡)
-   (#x692d ?ÃÖ)
-   (#x6930 ?Ò¬)
-   (#x6934 ?é²)
-   (#x6939 ?é©)
-   (#x693d ?´ª)
-   (#x693f ?´»)
-   (#x6942 ?é«)
-   (#x6954 ?Ш)
-   (#x6957 ?é¥)
-   (#x695a ?³þ)
-   (#x695d ?é¬)
-   (#x695e ?Àã)
-   (#x6960 ?éª)
-   (#x6963 ?é¹)
-   (#x6966 ?é¸)
-   (#x696b ?é®)
-   (#x696e ?èú)
-   (#x6971 ?é¨)
-   (#x6977 ?¿¬)
-   (#x6978 ?é±)
-   (#x6979 ?éº)
-   (#x697c ?Â¥)
-   (#x6980 ?é¯)
-   (#x6982 ?¸Å)
-   (#x6984 ?é­)
-   (#x6986 ?ÓÜ)
-   (#x6987 ?é´)
-   (#x6988 ?éµ)
-   (#x6989 ?é·)
-   (#x698d ?éÇ)
-   (#x6994 ?ÀÆ)
-   (#x6995 ?éÅ)
-   (#x6998 ?é°)
-   (#x699b ?é»)
-   (#x699c ?°ñ)
-   (#x69a7 ?é¼)
-   (#x69a8 ?Õ¥)
-   (#x69ab ?é¾)
-   (#x69ad ?é¿)
-   (#x69b1 ?éÃ)
-   (#x69b4 ?Ãñ)
-   (#x69b7 ?ȶ)
-   (#x69bb ?é½)
-   (#x69c1 ?éÂ)
-   (#x69ca ?éÃ)
-   (#x69cc ?é³)
-   (#x69ce ?é¶)
-   (#x69d0 ?»±)
-   (#x69d4 ?éÀ)
-   (#x69db ?¼÷)
-   (#x69df ?éÄ)
-   (#x69e0 ?éÆ)
-   (#x69ed ?éÊ)
-   (#x69f2 ?éÎ)
-   (#x69fd ?²Û)
-   (#x69ff ?éÈ)
-   (#x6a0a ?·®)
-   (#x6a17 ?éË)
-   (#x6a18 ?éÌ)
-   (#x6a1f ?ÕÃ)
-   (#x6a21 ?Ä£)
-   (#x6a28 ?éØ)
-   (#x6a2a ?ºá)
-   (#x6a2f ?éÉ)
-   (#x6a31 ?Ó£)
-   (#x6a35 ?éÔ)
-   (#x6a3d ?é×)
-   (#x6a3e ?éÃ)
-   (#x6a44 ?éÃ)
-   (#x6a47 ?ÇÃ)
-   (#x6a50 ?éÒ)
-   (#x6a58 ?éÙ)
-   (#x6a59 ?³È)
-   (#x6a5b ?éÓ)
-   (#x6a61 ?Ãð)
-   (#x6a65 ?éÃ)
-   (#x6a71 ?³÷)
-   (#x6a79 ?éÖ)
-   (#x6a7c ?éÚ)
-   (#x6a80 ?Ì´)
-   (#x6a84 ?Ï­)
-   (#x6a8e ?éÕ)
-   (#x6a90 ?éÜ)
-   (#x6a91 ?éÛ)
-   (#x6a97 ?éÞ)
-   (#x6aa0 ?éÑ)
-   (#x6aa9 ?éÃ)
-   (#x6aab ?éß)
-   (#x6aac ?ÃÊ)
-   (#x6b20 ?Ç·)
-   (#x6b21 ?´Î)
-   (#x6b22 ?Ȧ)
-   (#x6b23 ?ÃÀ)
-   (#x6b24 ?ì£)
-   (#x6b27 ?Å·)
-   (#x6b32 ?Óû)
-   (#x6b37 ?ì¤)
-   (#x6b39 ?ì¥)
-   (#x6b3a ?ÆÛ)
-   (#x6b3e ?¿î)
-   (#x6b43 ?ì¦)
-   (#x6b46 ?ì§)
-   (#x6b47 ?Ъ)
-   (#x6b49 ?Ǹ)
-   (#x6b4c ?¸è)
-   (#x6b59 ?ì¨)
-   (#x6b62 ?Ö¹)
-   (#x6b63 ?Õý)
-   (#x6b64 ?´Ë)
-   (#x6b65 ?²½)
-   (#x6b66 ?Îä)
-   (#x6b67 ?Æç)
-   (#x6b6a ?Ãá)
-   (#x6b79 ?´õ)
-   (#x6b7b ?ËÀ)
-   (#x6b7c ?¼ß)
-   (#x6b81 ?éâ)
-   (#x6b82 ?éã)
-   (#x6b83 ?Ñê)
-   (#x6b84 ?éå)
-   (#x6b86 ?´ù)
-   (#x6b87 ?éä)
-   (#x6b89 ?ѳ)
-   (#x6b8a ?Êâ)
-   (#x6b8b ?²Ã)
-   (#x6b8d ?éè)
-   (#x6b92 ?éæ)
-   (#x6b93 ?éç)
-   (#x6b96 ?Ö³)
-   (#x6b9a ?éé)
-   (#x6b9b ?éê)
-   (#x6ba1 ?éë)
-   (#x6baa ?éì)
-   (#x6bb3 ?ì¯)
-   (#x6bb4 ?Ź)
-   (#x6bb5 ?¶Î)
-   (#x6bb7 ?Òó)
-   (#x6bbf ?µî)
-   (#x6bc1 ?»Ù)
-   (#x6bc2 ?ì±)
-   (#x6bc5 ?Òã)
-   (#x6bcb ?Îã)
-   (#x6bcd ?ĸ)
-   (#x6bcf ?ÿ)
-   (#x6bd2 ?¶¾)
-   (#x6bd3 ?ع)
-   (#x6bd4 ?±È)
-   (#x6bd5 ?±Ã)
-   (#x6bd6 ?±Ñ)
-   (#x6bd7 ?Åþ)
-   (#x6bd9 ?±Ã)
-   (#x6bdb ?ë)
-   (#x6be1 ?Õ±)
-   (#x6bea ?ë¤)
-   (#x6beb ?ºÃ)
-   (#x6bef ?̺)
-   (#x6bf3 ?ë¥)
-   (#x6bf5 ?ë§)
-   (#x6bf9 ?ë¨)
-   (#x6bfd ?ë¦)
-   (#x6c05 ?ë©)
-   (#x6c06 ?ë«)
-   (#x6c07 ?ëª)
-   (#x6c0d ?ë¬)
-   (#x6c0f ?ÊÃ)
-   (#x6c10 ?ص)
-   (#x6c11 ?Ãñ)
-   (#x6c13 ?Ã¥)
-   (#x6c14 ?Æø)
-   (#x6c15 ?ë­)
-   (#x6c16 ?ÄÊ)
-   (#x6c18 ?ë®)
-   (#x6c19 ?ë¯)
-   (#x6c1a ?ë°)
-   (#x6c1b ?·Õ)
-   (#x6c1f ?·ú)
-   (#x6c21 ?ë±)
-   (#x6c22 ?Çâ)
-   (#x6c24 ?ë³)
-   (#x6c26 ?º¤)
-   (#x6c27 ?Ñõ)
-   (#x6c28 ?°±)
-   (#x6c29 ?ë²)
-   (#x6c2a ?ë´)
-   (#x6c2e ?µª)
-   (#x6c2f ?ÂÈ)
-   (#x6c30 ?Çè)
-   (#x6c32 ?ëµ)
-   (#x6c34 ?Ë®)
-   (#x6c35 ?ãß)
-   (#x6c38 ?ÓÀ)
-   (#x6c3d ?ÙÛ)
-   (#x6c40 ?Í¡)
-   (#x6c41 ?Ö­)
-   (#x6c42 ?Çó)
-   (#x6c46 ?Ùà)
-   (#x6c47 ?ȋ)
-   (#x6c49 ?ºº)
-   (#x6c4a ?ãâ)
-   (#x6c50 ?Ï«)
-   (#x6c54 ?ãà)
-   (#x6c55 ?ÉÇ)
-   (#x6c57 ?º¹)
-   (#x6c5b ?Ñ´)
-   (#x6c5c ?ãá)
-   (#x6c5d ?Èê)
-   (#x6c5e ?¹¯)
-   (#x6c5f ?½­)
-   (#x6c60 ?³Ø)
-   (#x6c61 ?ÎÛ)
-   (#x6c64 ?ÌÀ)
-   (#x6c68 ?ãè)
-   (#x6c69 ?ãé)
-   (#x6c6a ?Ãô)
-   (#x6c70 ?Ì­)
-   (#x6c72 ?¼³)
-   (#x6c74 ?ãê)
-   (#x6c76 ?ãë)
-   (#x6c79 ?ÃÚ)
-   (#x6c7d ?Æû)
-   (#x6c7e ?·Ú)
-   (#x6c81 ?Çß)
-   (#x6c82 ?ÒÊ)
-   (#x6c83 ?ÎÖ)
-   (#x6c85 ?ãä)
-   (#x6c86 ?ãì)
-   (#x6c88 ?Éò)
-   (#x6c89 ?³Ã)
-   (#x6c8c ?ãç)
-   (#x6c8f ?Æã)
-   (#x6c90 ?ãå)
-   (#x6c93 ?í³)
-   (#x6c94 ?ãæ)
-   (#x6c99 ?ɳ)
-   (#x6c9b ?Åæ)
-   (#x6c9f ?¹µ)
-   (#x6ca1 ?û)
-   (#x6ca3 ?ãã)
-   (#x6ca4 ?Ž)
-   (#x6ca5 ?ä)
-   (#x6ca6 ?ÂÙ)
-   (#x6ca7 ?²×)
-   (#x6ca9 ?ãí)
-   (#x6caa ?»¦)
-   (#x6cab ?Ä­)
-   (#x6cad ?ãð)
-   (#x6cae ?¾Ú)
-   (#x6cb1 ?ãû)
-   (#x6cb2 ?ãõ)
-   (#x6cb3 ?ºÓ)
-   (#x6cb8 ?·Ã)
-   (#x6cb9 ?ÓÃ)
-   (#x6cbb ?ÖÎ)
-   (#x6cbc ?ÕÓ)
-   (#x6cbd ?¹Ã)
-   (#x6cbe ?Õ´)
-   (#x6cbf ?ÑØ)
-   (#x6cc4 ?й)
-   (#x6cc5 ?Çö)
-   (#x6cc9 ?Ȫ)
-   (#x6cca ?²´)
-   (#x6ccc ?ÃÚ)
-   (#x6cd0 ?ãî)
-   (#x6cd3 ?ãü)
-   (#x6cd4 ?ãï)
-   (#x6cd5 ?·¨)
-   (#x6cd6 ?ã÷)
-   (#x6cd7 ?ãô)
-   (#x6cdb ?·º)
-   (#x6cde ?Å¢)
-   (#x6ce0 ?ãö)
-   (#x6ce1 ?Ã…Ã)
-   (#x6ce2 ?²¨)
-   (#x6ce3 ?Æü)
-   (#x6ce5 ?Äà)
-   (#x6ce8 ?×¢)
-   (#x6cea ?Àá)
-   (#x6ceb ?ãù)
-   (#x6cee ?ãú)
-   (#x6cef ?ãý)
-   (#x6cf0 ?Ì©)
-   (#x6cf1 ?ãó)
-   (#x6cf3 ?Ó¾)
-   (#x6cf5 ?±Ã)
-   (#x6cf6 ?í´)
-   (#x6cf7 ?ãñ)
-   (#x6cf8 ?ãò)
-   (#x6cfa ?ãø)
-   (#x6cfb ?к)
-   (#x6cfc ?ÆÃ)
-   (#x6cfd ?Ôó)
-   (#x6cfe ?ãþ)
-   (#x6d01 ?½à)
-   (#x6d04 ?ä§)
-   (#x6d07 ?ä¦)
-   (#x6d0b ?Ñó)
-   (#x6d0c ?ä£)
-   (#x6d0e ?ä©)
-   (#x6d12 ?È÷)
-   (#x6d17 ?Ï´)
-   (#x6d19 ?ä¨)
-   (#x6d1a ?ä®)
-   (#x6d1b ?Âå)
-   (#x6d1e ?¶´)
-   (#x6d25 ?½ò)
-   (#x6d27 ?ä¢)
-   (#x6d2a ?ºé)
-   (#x6d2b ?äª)
-   (#x6d2e ?ä¬)
-   (#x6d31 ?¶ý)
-   (#x6d32 ?ÖÞ)
-   (#x6d33 ?ä²)
-   (#x6d35 ?ä­)
-   (#x6d39 ?ä¡)
-   (#x6d3b ?Ȕ)
-   (#x6d3c ?ÃÃ)
-   (#x6d3d ?Ç¢)
-   (#x6d3e ?ÅÉ)
-   (#x6d41 ?Ã÷)
-   (#x6d43 ?ä¤)
-   (#x6d45 ?dz)
-   (#x6d46 ?½¬)
-   (#x6d47 ?½½)
-   (#x6d48 ?ä¥)
-   (#x6d4a ?×Ç)
-   (#x6d4b ?²â)
-   (#x6d4d ?ä«)
-   (#x6d4e ?¼Ã)
-   (#x6d4f ?ä¯)
-   (#x6d51 ?ȑ)
-   (#x6d52 ?ä°)
-   (#x6d53 ?Ũ)
-   (#x6d54 ?ä±)
-   (#x6d59 ?Õã)
-   (#x6d5a ?¿£)
-   (#x6d5c ?äº)
-   (#x6d5e ?ä·)
-   (#x6d60 ?ä»)
-   (#x6d63 ?ä½)
-   (#x6d66 ?ÆÖ)
-   (#x6d69 ?ºÆ)
-   (#x6d6a ?ÀË)
-   (#x6d6e ?¸¡)
-   (#x6d6f ?ä´)
-   (#x6d74 ?Ô¡)
-   (#x6d77 ?º£)
-   (#x6d78 ?½þ)
-   (#x6d7c ?ä¼)
-   (#x6d82 ?Í¿)
-   (#x6d85 ?Äù)
-   (#x6d88 ?Ãû)
-   (#x6d89 ?Éæ)
-   (#x6d8c ?Ó¿)
-   (#x6d8e ?ÃÑ)
-   (#x6d91 ?ä³)
-   (#x6d93 ?ä¸)
-   (#x6d94 ?ä¹)
-   (#x6d95 ?Ìé)
-   (#x6d9b ?ÌÎ)
-   (#x6d9d ?ÀÔ)
-   (#x6d9e ?äµ)
-   (#x6d9f ?ð)
-   (#x6da0 ?ä¶)
-   (#x6da1 ?ÃŽÃ)
-   (#x6da3 ?»Ã)
-   (#x6da4 ?µÓ)
-   (#x6da6 ?Èó)
-   (#x6da7 ?½§)
-   (#x6da8 ?ÕÇ)
-   (#x6da9 ?ɬ)
-   (#x6daa ?¸¢)
-   (#x6dab ?äÊ)
-   (#x6dae ?äÌ)
-   (#x6daf ?ÑÄ)
-   (#x6db2 ?Òº)
-   (#x6db5 ?º­)
-   (#x6db8 ?ºÔ)
-   (#x6dbf ?äÃ)
-   (#x6dc0 ?µí)
-   (#x6dc4 ?×Ã)
-   (#x6dc5 ?äÀ)
-   (#x6dc6 ?Ãý)
-   (#x6dc7 ?ä¿)
-   (#x6dcb ?ÃÃœ)
-   (#x6dcc ?ÌÊ)
-   (#x6dd1 ?Êç)
-   (#x6dd6 ?Ä×)
-   (#x6dd8 ?ÌÔ)
-   (#x6dd9 ?äÈ)
-   (#x6ddd ?äÇ)
-   (#x6dde ?äÃ)
-   (#x6de0 ?äÄ)
-   (#x6de1 ?µ­)
-   (#x6de4 ?ÓÙ)
-   (#x6de6 ?äÆ)
-   (#x6deb ?Òù)
-   (#x6dec ?´ã)
-   (#x6dee ?»´)
-   (#x6df1 ?Éî)
-   (#x6df3 ?´¾)
-   (#x6df7 ?ȓ)
-   (#x6df9 ?ÑÃ)
-   (#x6dfb ?Ìí)
-   (#x6dfc ?íµ)
-   (#x6e05 ?Çå)
-   (#x6e0a ?Ô¨)
-   (#x6e0c ?äË)
-   (#x6e0d ?×Õ)
-   (#x6e0e ?äÂ)
-   (#x6e10 ?½¥)
-   (#x6e11 ?äÅ)
-   (#x6e14 ?Óæ)
-   (#x6e16 ?äÉ)
-   (#x6e17 ?Éø)
-   (#x6e1a ?ä¾)
-   (#x6e1d ?Óå)
-   (#x6e20 ?Çþ)
-   (#x6e21 ?¶É)
-   (#x6e23 ?Ôü)
-   (#x6e24 ?²³)
-   (#x6e25 ?ä×)
-   (#x6e29 ?ÎÂ)
-   (#x6e2b ?äÃ)
-   (#x6e2d ?μ)
-   (#x6e2f ?¸Û)
-   (#x6e32 ?äÖ)
-   (#x6e34 ?¿Ê)
-   (#x6e38 ?ÓÎ)
-   (#x6e3a ?Ãì)
-   (#x6e43 ?ÅÈ)
-   (#x6e44 ?äØ)
-   (#x6e4d ?ÃÄ)
-   (#x6e4e ?äÃ)
-   (#x6e53 ?äÔ)
-   (#x6e54 ?äÕ)
-   (#x6e56 ?ºþ)
-   (#x6e58 ?Ãæ)
-   (#x6e5b ?Õ¿)
-   (#x6e5f ?äÒ)
-   (#x6e6b ?äÃ)
-   (#x6e6e ?äÎ)
-   (#x6e7e ?ÃÃ¥)
-   (#x6e7f ?ʪ)
-   (#x6e83 ?À£)
-   (#x6e85 ?½¦)
-   (#x6e86 ?äÓ)
-   (#x6e89 ?¸È)
-   (#x6e8f ?äç)
-   (#x6e90 ?Ô´)
-   (#x6e98 ?äÛ)
-   (#x6e9c ?Ãï)
-   (#x6e9f ?äé)
-   (#x6ea2 ?Òç)
-   (#x6ea5 ?äß)
-   (#x6ea7 ?äà)
-   (#x6eaa ?Ϫ)
-   (#x6eaf ?ËÃ)
-   (#x6eb1 ?äÚ)
-   (#x6eb2 ?äÑ)
-   (#x6eb4 ?äå)
-   (#x6eb6 ?ÈÜ)
-   (#x6eb7 ?äã)
-   (#x6eba ?Äç)
-   (#x6ebb ?äâ)
-   (#x6ebd ?äá)
-   (#x6ec1 ?³ü)
-   (#x6ec2 ?äè)
-   (#x6ec7 ?µá)
-   (#x6ecb ?×Ì)
-   (#x6ecf ?äæ)
-   (#x6ed1 ?»¬)
-   (#x6ed3 ?×Ò)
-   (#x6ed4 ?ÃŒÃ)
-   (#x6ed5 ?ëø)
-   (#x6ed7 ?ää)
-   (#x6eda ?¹ö)
-   (#x6ede ?ÖÃ)
-   (#x6edf ?äÙ)
-   (#x6ee0 ?äÜ)
-   (#x6ee1 ?Âú)
-   (#x6ee2 ?äÞ)
-   (#x6ee4 ?ÂË)
-   (#x6ee5 ?ÀÄ)
-   (#x6ee6 ?ÂÃ)
-   (#x6ee8 ?±õ)
-   (#x6ee9 ?̲)
-   (#x6ef4 ?µÎ)
-   (#x6ef9 ?äï)
-   (#x6f02 ?Ư)
-   (#x6f06 ?Æá)
-   (#x6f09 ?äõ)
-   (#x6f0f ?©)
-   (#x6f13 ?Àì)
-   (#x6f14 ?ÑÃ)
-   (#x6f15 ?äî)
-   (#x6f20 ?Ä®)
-   (#x6f24 ?äí)
-   (#x6f29 ?äö)
-   (#x6f2a ?äô)
-   (#x6f2b ?Âþ)
-   (#x6f2d ?äÃ)
-   (#x6f2f ?äð)
-   (#x6f31 ?Êþ)
-   (#x6f33 ?ÕÄ)
-   (#x6f36 ?äñ)
-   (#x6f3e ?Ñú)
-   (#x6f46 ?äë)
-   (#x6f47 ?äì)
-   (#x6f4b ?äò)
-   (#x6f4d ?Ϋ)
-   (#x6f58 ?ÅË)
-   (#x6f5c ?DZ)
-   (#x6f5e ?º)
-   (#x6f62 ?äê)
-   (#x6f66 ?ÃÊ)
-   (#x6f6d ?̶)
-   (#x6f6e ?³±)
-   (#x6f72 ?äû)
-   (#x6f74 ?äó)
-   (#x6f78 ?äú)
-   (#x6f7a ?äý)
-   (#x6f7c ?äü)
-   (#x6f84 ?³Î)
-   (#x6f88 ?³º)
-   (#x6f89 ?ä÷)
-   (#x6f8c ?äù)
-   (#x6f8d ?äø)
-   (#x6f8e ?Åì)
-   (#x6f9c ?À½)
-   (#x6fa1 ?Ôè)
-   (#x6fa7 ?å¢)
-   (#x6fb3 ?°Ä)
-   (#x6fb6 ?å¤)
-   (#x6fb9 ?å£)
-   (#x6fc0 ?¼¤)
-   (#x6fc2 ?å¥)
-   (#x6fc9 ?å¡)
-   (#x6fd1 ?äþ)
-   (#x6fd2 ?±ô)
-   (#x6fde ?å¨)
-   (#x6fe0 ?å©)
-   (#x6fe1 ?å¦)
-   (#x6fee ?å§)
-   (#x6fef ?åª)
-   (#x7011 ?ÆÙ)
-   (#x701a ?å«)
-   (#x701b ?å­)
-   (#x7023 ?å¬)
-   (#x7035 ?å¯)
-   (#x7039 ?å®)
-   (#x704c ?¹à)
-   (#x704f ?å°)
-   (#x705e ?å±)
-   (#x706b ?»ð)
-   (#x706c ?ìá)
-   (#x706d ?Ãð)
-   (#x706f ?µÆ)
-   (#x7070 ?»Ò)
-   (#x7075 ?Ãé)
-   (#x7076 ?Ôî)
-   (#x7078 ?¾Ä)
-   (#x707c ?×Æ)
-   (#x707e ?ÔÖ)
-   (#x707f ?²Ó)
-   (#x7080 ?ì¾)
-   (#x7085 ?êÃ)
-   (#x7089 ?¯)
-   (#x708a ?´¶)
-   (#x708e ?Ñ×)
-   (#x7092 ?³´)
-   (#x7094 ?Ȳ)
-   (#x7095 ?¿»)
-   (#x7096 ?ìÀ)
-   (#x7099 ?ÖË)
-   (#x709c ?ì¿)
-   (#x709d ?ìÃ)
-   (#x70ab ?ìÅ)
-   (#x70ac ?¾æ)
-   (#x70ad ?Ì¿)
-   (#x70ae ?ÅÚ)
-   (#x70af ?¾¼)
-   (#x70b1 ?ìÆ)
-   (#x70b3 ?±þ)
-   (#x70b7 ?ìÄ)
-   (#x70b8 ?Õ¨)
-   (#x70b9 ?µã)
-   (#x70bb ?ìÂ)
-   (#x70bc ?ö)
-   (#x70bd ?³ã)
-   (#x70c0 ?ìÃ)
-   (#x70c1 ?˸)
-   (#x70c2 ?ÀÃ)
-   (#x70c3 ?Ìþ)
-   (#x70c8 ?ÃÃ’)
-   (#x70ca ?ìÈ)
-   (#x70d8 ?ºæ)
-   (#x70d9 ?ÀÓ)
-   (#x70db ?Öò)
-   (#x70df ?ÑÌ)
-   (#x70e4 ?¿¾)
-   (#x70e6 ?·³)
-   (#x70e7 ?ÉÕ)
-   (#x70e8 ?ìÇ)
-   (#x70e9 ?ȉ)
-   (#x70eb ?ÌÌ)
-   (#x70ec ?½ý)
-   (#x70ed ?ÈÈ)
-   (#x70ef ?Ï©)
-   (#x70f7 ?Ãé)
-   (#x70f9 ?Åë)
-   (#x70fd ?·é)
-   (#x7109 ?ÑÉ)
-   (#x710a ?º¸)
-   (#x7110 ?ìÉ)
-   (#x7113 ?ìÊ)
-   (#x7115 ?»À)
-   (#x7116 ?ìË)
-   (#x7118 ?ìâ)
-   (#x7119 ?±º)
-   (#x711a ?·Ù)
-   (#x7126 ?½¹)
-   (#x712f ?ìÌ)
-   (#x7130 ?Ñæ)
-   (#x7131 ?ìÃ)
-   (#x7136 ?È»)
-   (#x7145 ?ìÑ)
-   (#x714a ?ìÓ)
-   (#x714c ?»Ã)
-   (#x714e ?¼å)
-   (#x715c ?ìÃ)
-   (#x715e ?É·)
-   (#x7164 ?ú)
-   (#x7166 ?ìã)
-   (#x7167 ?ÕÕ)
-   (#x7168 ?ìÃ)
-   (#x716e ?Öó)
-   (#x7172 ?ìÒ)
-   (#x7173 ?ìÎ)
-   (#x7178 ?ìÔ)
-   (#x717a ?ìÕ)
-   (#x717d ?É¿)
-   (#x7184 ?Ϩ)
-   (#x718a ?ÃÃœ)
-   (#x718f ?Ѭ)
-   (#x7194 ?ÈÛ)
-   (#x7198 ?ìÖ)
-   (#x7199 ?Îõ)
-   (#x719f ?Êì)
-   (#x71a0 ?ìÚ)
-   (#x71a8 ?ìÙ)
-   (#x71ac ?°¾)
-   (#x71b3 ?ì×)
-   (#x71b5 ?ìØ)
-   (#x71b9 ?ìä)
-   (#x71c3 ?ȼ)
-   (#x71ce ?ÃÇ)
-   (#x71d4 ?ìÜ)
-   (#x71d5 ?Ñà)
-   (#x71e0 ?ìÛ)
-   (#x71e5 ?Ôï)
-   (#x71e7 ?ìÃ)
-   (#x71ee ?ÛÆ)
-   (#x71f9 ?ìÞ)
-   (#x7206 ?±¬)
-   (#x721d ?ìß)
-   (#x7228 ?ìà)
-   (#x722a ?צ)
-   (#x722c ?ÅÀ)
-   (#x7230 ?ë¼)
-   (#x7231 ?°®)
-   (#x7235 ?¾ô)
-   (#x7236 ?¸¸)
-   (#x7237 ?Ò¯)
-   (#x7238 ?°Ö)
-   (#x7239 ?µù)
-   (#x723b ?س)
-   (#x723d ?ˬ)
-   (#x723f ?ãÃ)
-   (#x7247 ?Ƭ)
-   (#x7248 ?°æ)
-   (#x724c ?ÅÆ)
-   (#x724d ?ë¹)
-   (#x7252 ?ëº)
-   (#x7256 ?ë»)
-   (#x7259 ?ÑÀ)
-   (#x725b ?Å£)
-   (#x725d ?êò)
-   (#x725f ?IJ)
-   (#x7261 ?ĵ)
-   (#x7262 ?ÀÎ)
-   (#x7266 ?êó)
-   (#x7267 ?ÄÃ)
-   (#x7269 ?Îï)
-   (#x726e ?êð)
-   (#x726f ?êô)
-   (#x7272 ?Éü)
-   (#x7275 ?Ç£)
-   (#x7279 ?ÌØ)
-   (#x727a ?Îþ)
-   (#x727e ?êõ)
-   (#x727f ?êö)
-   (#x7280 ?Ϭ)
-   (#x7281 ?Àç)
-   (#x7284 ?ê÷)
-   (#x728a ?¶¿)
-   (#x728b ?êø)
-   (#x728d ?êù)
-   (#x728f ?êú)
-   (#x7292 ?êû)
-   (#x729f ?êñ)
-   (#x72ac ?È®)
-   (#x72ad ?áë)
-   (#x72af ?·¸)
-   (#x72b0 ?áì)
-   (#x72b4 ?áí)
-   (#x72b6 ?×´)
-   (#x72b7 ?áî)
-   (#x72b8 ?áï)
-   (#x72b9 ?ÓÌ)
-   (#x72c1 ?áñ)
-   (#x72c2 ?¿ñ)
-   (#x72c3 ?áð)
-   (#x72c4 ?µÒ)
-   (#x72c8 ?±·)
-   (#x72cd ?áó)
-   (#x72ce ?áò)
-   (#x72d0 ?ºü)
-   (#x72d2 ?áô)
-   (#x72d7 ?¹·)
-   (#x72d9 ?¾Ñ)
-   (#x72de ?Äü)
-   (#x72e0 ?ºÃ)
-   (#x72e1 ?½Æ)
-   (#x72e8 ?áõ)
-   (#x72e9 ?á÷)
-   (#x72ec ?¶À)
-   (#x72ed ?ÃÃ)
-   (#x72ee ?ʨ)
-   (#x72ef ?áö)
-   (#x72f0 ?Õø)
-   (#x72f1 ?Óü)
-   (#x72f2 ?áø)
-   (#x72f3 ?áü)
-   (#x72f4 ?áù)
-   (#x72f7 ?áú)
-   (#x72f8 ?Àê)
-   (#x72fa ?áþ)
-   (#x72fb ?â¡)
-   (#x72fc ?ÀÇ)
-   (#x7301 ?áû)
-   (#x7303 ?áý)
-   (#x730a ?â¥)
-   (#x730e ?ÃÔ)
-   (#x7313 ?â£)
-   (#x7315 ?â¨)
-   (#x7316 ?²þ)
-   (#x7317 ?â¢)
-   (#x731b ?ÃÃ)
-   (#x731c ?²Â)
-   (#x731d ?â§)
-   (#x731e ?â¦)
-   (#x7321 ?â¤)
-   (#x7322 ?â©)
-   (#x7325 ?â«)
-   (#x7329 ?ÃÉ)
-   (#x732a ?Öí)
-   (#x732b ?è)
-   (#x732c ?â¬)
-   (#x732e ?Ã×)
-   (#x7331 ?â®)
-   (#x7334 ?ºï)
-   (#x7337 ?éà)
-   (#x7338 ?â­)
-   (#x7339 ?âª)
-   (#x733e ?»«)
-   (#x733f ?Ô³)
-   (#x734d ?â°)
-   (#x7350 ?â¯)
-   (#x7352 ?éá)
-   (#x7357 ?â±)
-   (#x7360 ?â²)
-   (#x736c ?â³)
-   (#x736d ?Ì¡)
-   (#x736f ?â´)
-   (#x737e ?âµ)
-   (#x7384 ?Ãþ)
-   (#x7387 ?ÂÊ)
-   (#x7389 ?Óñ)
-   (#x738b ?Ãõ)
-   (#x738e ?çà)
-   (#x7391 ?çá)
-   (#x7396 ?¾Ã)
-   (#x739b ?Âê)
-   (#x739f ?çä)
-   (#x73a2 ?çã)
-   (#x73a9 ?Ãæ)
-   (#x73ab ?õ)
-   (#x73ae ?çâ)
-   (#x73af ?»·)
-   (#x73b0 ?ÃÖ)
-   (#x73b2 ?Ãá)
-   (#x73b3 ?çé)
-   (#x73b7 ?çè)
-   (#x73ba ?çô)
-   (#x73bb ?²£)
-   (#x73c0 ?çê)
-   (#x73c2 ?çæ)
-   (#x73c8 ?çì)
-   (#x73c9 ?çë)
-   (#x73ca ?ɺ)
-   (#x73cd ?Õä)
-   (#x73cf ?çå)
-   (#x73d0 ?·©)
-   (#x73d1 ?çç)
-   (#x73d9 ?çî)
-   (#x73de ?çó)
-   (#x73e0 ?Öé)
-   (#x73e5 ?çí)
-   (#x73e7 ?çò)
-   (#x73e9 ?çñ)
-   (#x73ed ?°à)
-   (#x73f2 ?çõ)
-   (#x7403 ?Çò)
-   (#x7405 ?ÀÅ)
-   (#x7406 ?Àí)
-   (#x7409 ?Ãð)
-   (#x740a ?çð)
-   (#x740f ?çö)
-   (#x7410 ?Ëö)
-   (#x741a ?è¢)
-   (#x741b ?è¡)
-   (#x7422 ?×Ã)
-   (#x7425 ?çú)
-   (#x7426 ?çù)
-   (#x7428 ?çû)
-   (#x742a ?ç÷)
-   (#x742c ?çþ)
-   (#x742e ?çý)
-   (#x7430 ?çü)
-   (#x7433 ?ÃÕ)
-   (#x7434 ?ÇÙ)
-   (#x7435 ?Åý)
-   (#x7436 ?ÅÃ)
-   (#x743c ?Çí)
-   (#x7441 ?è£)
-   (#x7455 ?è¦)
-   (#x7457 ?è¥)
-   (#x7459 ?è§)
-   (#x745a ?º÷)
-   (#x745b ?çø)
-   (#x745c ?è¤)
-   (#x745e ?Èð)
-   (#x745f ?ɪ)
-   (#x746d ?è©)
-   (#x7470 ?¹å)
-   (#x7476 ?Ñþ)
-   (#x7477 ?è¨)
-   (#x747e ?èª)
-   (#x7480 ?è­)
-   (#x7481 ?è®)
-   (#x7483 ?ç)
-   (#x7487 ?è¯)
-   (#x748b ?è°)
-   (#x748e ?è¬)
-   (#x7490 ?è´)
-   (#x749c ?è«)
-   (#x749e ?è±)
-   (#x74a7 ?èµ)
-   (#x74a8 ?è²)
-   (#x74a9 ?è³)
-   (#x74ba ?è·)
-   (#x74d2 ?è¶)
-   (#x74dc ?¹Ã)
-   (#x74de ?ð¬)
-   (#x74e0 ?ð­)
-   (#x74e2 ?Æ°)
-   (#x74e3 ?°ê)
-   (#x74e4 ?È¿)
-   (#x74e6 ?Ãß)
-   (#x74ee ?ÃŽÃ)
-   (#x74ef ?ê±)
-   (#x74f4 ?ê²)
-   (#x74f6 ?Æ¿)
-   (#x74f7 ?´É)
-   (#x74ff ?ê³)
-   (#x7504 ?Õç)
-   (#x750d ?Ãù)
-   (#x750f ?ê´)
-   (#x7511 ?êµ)
-   (#x7513 ?ê¶)
-   (#x7518 ?¸Ê)
-   (#x7519 ?ß°)
-   (#x751a ?Éõ)
-   (#x751c ?Ìð)
-   (#x751f ?Éú)
-   (#x7525 ?Éû)
-   (#x7528 ?ÓÃ)
-   (#x7529 ?˦)
-   (#x752b ?¸¦)
-   (#x752c ?ð®)
-   (#x752d ?±Â)
-   (#x752f ?å¸)
-   (#x7530 ?Ìï)
-   (#x7531 ?ÓÉ)
-   (#x7532 ?¼×)
-   (#x7533 ?Éê)
-   (#x7535 ?µç)
-   (#x7537 ?ÄÃ)
-   (#x7538 ?µé)
-   (#x753a ?î®)
-   (#x753b ?»­)
-   (#x753e ?çÞ)
-   (#x7540 ?î¯)
-   (#x7545 ?³©)
-   (#x7548 ?î²)
-   (#x754b ?î±)
-   (#x754c ?½ç)
-   (#x754e ?î°)
-   (#x754f ?η)
-   (#x7554 ?Ã…Ã)
-   (#x7559 ?Ãô)
-   (#x755a ?ÛÎ)
-   (#x755b ?î³)
-   (#x755c ?Ãó)
-   (#x7565 ?ÂÔ)
-   (#x7566 ?Æè)
-   (#x756a ?·¬)
-   (#x7572 ?î´)
-   (#x7574 ?³ë)
-   (#x7578 ?»û)
-   (#x7579 ?îµ)
-   (#x757f ?çÜ)
-   (#x7583 ?î¶)
-   (#x7586 ?½®)
-   (#x758b ?ñâ)
-   (#x758f ?Êè)
-   (#x7591 ?ÒÉ)
-   (#x7592 ?ðÚ)
-   (#x7594 ?ðÛ)
-   (#x7596 ?ðÜ)
-   (#x7597 ?ÃÆ)
-   (#x7599 ?¸í)
-   (#x759a ?¾Î)
-   (#x759d ?ðÞ)
-   (#x759f ?ű)
-   (#x75a0 ?ðÃ)
-   (#x75a1 ?Ññ)
-   (#x75a3 ?ðà)
-   (#x75a4 ?°Ì)
-   (#x75a5 ?½ê)
-   (#x75ab ?Òß)
-   (#x75ac ?ðß)
-   (#x75ae ?´¯)
-   (#x75af ?·è)
-   (#x75b0 ?ðæ)
-   (#x75b1 ?ðå)
-   (#x75b2 ?Æ£)
-   (#x75b3 ?ðá)
-   (#x75b4 ?ðâ)
-   (#x75b5 ?´Ã)
-   (#x75b8 ?ðã)
-   (#x75b9 ?Õî)
-   (#x75bc ?ÌÛ)
-   (#x75bd ?¾Ò)
-   (#x75be ?¼²)
-   (#x75c2 ?ðè)
-   (#x75c3 ?ðç)
-   (#x75c4 ?ðä)
-   (#x75c5 ?²¡)
-   (#x75c7 ?Ö¢)
-   (#x75c8 ?Ó¸)
-   (#x75c9 ?¾·)
-   (#x75ca ?Ȭ)
-   (#x75cd ?ðê)
-   (#x75d2 ?Ñ÷)
-   (#x75d4 ?ÖÌ)
-   (#x75d5 ?ºÛ)
-   (#x75d6 ?ðé)
-   (#x75d8 ?¶»)
-   (#x75db ?Í´)
-   (#x75de ?Ʀ)
-   (#x75e2 ?á)
-   (#x75e3 ?ðë)
-   (#x75e4 ?ðî)
-   (#x75e6 ?ðí)
-   (#x75e7 ?ðð)
-   (#x75e8 ?ðì)
-   (#x75ea ?»¾)
-   (#x75eb ?ðï)
-   (#x75f0 ?̵)
-   (#x75f1 ?ðò)
-   (#x75f4 ?³Õ)
-   (#x75f9 ?±Ô)
-   (#x75fc ?ðó)
-   (#x75ff ?ðô)
-   (#x7600 ?ðö)
-   (#x7601 ?´á)
-   (#x7603 ?ðñ)
-   (#x7605 ?ð÷)
-   (#x760a ?ðú)
-   (#x760c ?ðø)
-   (#x7610 ?ðõ)
-   (#x7615 ?ðý)
-   (#x7617 ?ðù)
-   (#x7618 ?ðü)
-   (#x7619 ?ðþ)
-   (#x761b ?ñ¡)
-   (#x761f ?ÃŽÃ)
-   (#x7620 ?ñ¤)
-   (#x7622 ?ñ£)
-   (#x7624 ?Ãö)
-   (#x7625 ?ðû)
-   (#x7626 ?ÊÃ)
-   (#x7629 ?´ñ)
-   (#x762a ?±ñ)
-   (#x762b ?̱)
-   (#x762d ?ñ¦)
-   (#x7630 ?ñ§)
-   (#x7633 ?ñ¬)
-   (#x7634 ?ÕÎ)
-   (#x7635 ?ñ©)
-   (#x7638 ?ȳ)
-   (#x763c ?ñ¢)
-   (#x763e ?ñ«)
-   (#x763f ?ñ¨)
-   (#x7640 ?ñ¥)
-   (#x7643 ?ñª)
-   (#x764c ?°©)
-   (#x764d ?ñ­)
-   (#x7654 ?ñ¯)
-   (#x7656 ?ñ±)
-   (#x765c ?ñ°)
-   (#x765e ?ñ®)
-   (#x7663 ?Ñ¢)
-   (#x766b ?ñ²)
-   (#x766f ?ñ³)
-   (#x7678 ?¹ï)
-   (#x767b ?µÇ)
-   (#x767d ?°×)
-   (#x767e ?°Ù)
-   (#x7682 ?Ôí)
-   (#x7684 ?µÄ)
-   (#x7686 ?½Ô)
-   (#x7687 ?»Ê)
-   (#x7688 ?ð§)
-   (#x768b ?¸Þ)
-   (#x768e ?ð¨)
-   (#x7691 ?°¨)
-   (#x7693 ?ð©)
-   (#x7696 ?Ãî)
-   (#x7699 ?ðª)
-   (#x76a4 ?ð«)
-   (#x76ae ?Ƥ)
-   (#x76b1 ?Öå)
-   (#x76b2 ?ñä)
-   (#x76b4 ?ñå)
-   (#x76bf ?Ãó)
-   (#x76c2 ?ÓÛ)
-   (#x76c5 ?ÖÑ)
-   (#x76c6 ?Åè)
-   (#x76c8 ?Ó¯)
-   (#x76ca ?Òæ)
-   (#x76cd ?îÃ)
-   (#x76ce ?°»)
-   (#x76cf ?Õµ)
-   (#x76d0 ?ÑÎ)
-   (#x76d1 ?¼à)
-   (#x76d2 ?ºÃ)
-   (#x76d4 ?¿ø)
-   (#x76d6 ?¸Ç)
-   (#x76d7 ?µÃ)
-   (#x76d8 ?Ã…ÃŒ)
-   (#x76db ?Ê¢)
-   (#x76df ?ÃË)
-   (#x76e5 ?îÂ)
-   (#x76ee ?Ä¿)
-   (#x76ef ?¶¢)
-   (#x76f1 ?íì)
-   (#x76f2 ?ä)
-   (#x76f4 ?Ö±)
-   (#x76f8 ?Ãà)
-   (#x76f9 ?íï)
-   (#x76fc ?Ã…ÃŽ)
-   (#x76fe ?¶Ü)
-   (#x7701 ?Ê¡)
-   (#x7704 ?íí)
-   (#x7707 ?íð)
-   (#x7708 ?íñ)
-   (#x7709 ?ü)
-   (#x770b ?¿´)
-   (#x770d ?íî)
-   (#x7719 ?íô)
-   (#x771a ?íò)
-   (#x771f ?Õæ)
-   (#x7720 ?Ãß)
-   (#x7722 ?íó)
-   (#x7726 ?íö)
-   (#x7728 ?Õ£)
-   (#x7729 ?Ñ£)
-   (#x772d ?íõ)
-   (#x772f ?ÃÃ)
-   (#x7735 ?í÷)
-   (#x7736 ?¿ô)
-   (#x7737 ?¾ì)
-   (#x7738 ?íø)
-   (#x773a ?Ì÷)
-   (#x773c ?ÑÛ)
-   (#x7740 ?×Å)
-   (#x7741 ?Õö)
-   (#x7743 ?íü)
-   (#x7747 ?íû)
-   (#x7750 ?íù)
-   (#x7751 ?íú)
-   (#x775a ?íý)
-   (#x775b ?¾¦)
-   (#x7761 ?˯)
-   (#x7762 ?î¡)
-   (#x7763 ?¶½)
-   (#x7765 ?î¢)
-   (#x7766 ?ÄÀ)
-   (#x7768 ?íþ)
-   (#x776b ?½Þ)
-   (#x776c ?²Ç)
-   (#x7779 ?¶Ã)
-   (#x777d ?î¥)
-   (#x777e ?غ)
-   (#x777f ?î£)
-   (#x7780 ?î¦)
-   (#x7784 ?Ãé)
-   (#x7785 ?³ò)
-   (#x778c ?î§)
-   (#x778d ?î¤)
-   (#x778e ?Ϲ)
-   (#x7791 ?î¨)
-   (#x7792 ?Â÷)
-   (#x779f ?î©)
-   (#x77a0 ?îª)
-   (#x77a2 ?Þ«)
-   (#x77a5 ?Ƴ)
-   (#x77a7 ?ÇÆ)
-   (#x77a9 ?Öõ)
-   (#x77aa ?µÉ)
-   (#x77ac ?˲)
-   (#x77b0 ?î«)
-   (#x77b3 ?Í«)
-   (#x77b5 ?î¬)
-   (#x77bb ?Õ°)
-   (#x77bd ?î­)
-   (#x77bf ?öÄ)
-   (#x77cd ?ÛÇ)
-   (#x77d7 ?´£)
-   (#x77db ?ì)
-   (#x77dc ?ñæ)
-   (#x77e2 ?ʸ)
-   (#x77e3 ?ÒÓ)
-   (#x77e5 ?Öª)
-   (#x77e7 ?ïò)
-   (#x77e9 ?¾Ø)
-   (#x77eb ?½Ã)
-   (#x77ec ?ïó)
-   (#x77ed ?¶Ì)
-   (#x77ee ?°«)
-   (#x77f3 ?ʯ)
-   (#x77f6 ?í¶)
-   (#x77f8 ?í·)
-   (#x77fd ?Îù)
-   (#x77fe ?·¯)
-   (#x77ff ?¿ó)
-   (#x7800 ?í¸)
-   (#x7801 ?Âë)
-   (#x7802 ?É°)
-   (#x7809 ?í¹)
-   (#x780c ?Æö)
-   (#x780d ?¿³)
-   (#x7811 ?í¼)
-   (#x7812 ?Åø)
-   (#x7814 ?ÑÃ)
-   (#x7816 ?ש)
-   (#x7817 ?íº)
-   (#x7818 ?í»)
-   (#x781a ?Ñâ)
-   (#x781c ?í¿)
-   (#x781d ?íÀ)
-   (#x781f ?íÄ)
-   (#x7823 ?íÈ)
-   (#x7825 ?íÆ)
-   (#x7826 ?íÎ)
-   (#x7827 ?Õè)
-   (#x7829 ?íÉ)
-   (#x782c ?íÇ)
-   (#x782d ?í¾)
-   (#x7830 ?Åé)
-   (#x7834 ?ÆÆ)
-   (#x7837 ?Éé)
-   (#x7838 ?ÔÒ)
-   (#x7839 ?íÃ)
-   (#x783a ?íÂ)
-   (#x783b ?íÃ)
-   (#x783c ?íÅ)
-   (#x783e ?Àù)
-   (#x7840 ?´¡)
-   (#x7845 ?¹è)
-   (#x7847 ?íÃ)
-   (#x784c ?íÑ)
-   (#x784e ?íÊ)
-   (#x7850 ?íÃ)
-   (#x7852 ?Îø)
-   (#x7855 ?˶)
-   (#x7856 ?íÌ)
-   (#x7857 ?íÃ)
-   (#x785d ?Ãõ)
-   (#x786a ?íÒ)
-   (#x786b ?Ãò)
-   (#x786c ?Ó²)
-   (#x786d ?íË)
-   (#x786e ?È·)
-   (#x7877 ?¼ï)
-   (#x787c ?Åð)
-   (#x7887 ?íÖ)
-   (#x7889 ?µï)
-   (#x788c ?µ)
-   (#x788d ?°­)
-   (#x788e ?Ëé)
-   (#x7891 ?±®)
-   (#x7893 ?íÔ)
-   (#x7897 ?Ãë)
-   (#x7898 ?µâ)
-   (#x789a ?íÕ)
-   (#x789b ?íÓ)
-   (#x789c ?í×)
-   (#x789f ?µú)
-   (#x78a1 ?íØ)
-   (#x78a3 ?íÙ)
-   (#x78a5 ?íÜ)
-   (#x78a7 ?±Ì)
-   (#x78b0 ?Åö)
-   (#x78b1 ?¼î)
-   (#x78b2 ?íÚ)
-   (#x78b3 ?̼)
-   (#x78b4 ?²ê)
-   (#x78b9 ?íÛ)
-   (#x78be ?Äë)
-   (#x78c1 ?´Å)
-   (#x78c5 ?°õ)
-   (#x78c9 ?íß)
-   (#x78ca ?ÀÚ)
-   (#x78cb ?´è)
-   (#x78d0 ?Ã…Ã)
-   (#x78d4 ?íÃ)
-   (#x78d5 ?¿Ä)
-   (#x78d9 ?íÞ)
-   (#x78e8 ?Ä¥)
-   (#x78ec ?íà)
-   (#x78f2 ?íá)
-   (#x78f4 ?íã)
-   (#x78f7 ?Ã×)
-   (#x78fa ?Ȃ)
-   (#x7901 ?½¸)
-   (#x7905 ?íâ)
-   (#x7913 ?íä)
-   (#x791e ?íæ)
-   (#x7924 ?íå)
-   (#x7934 ?íç)
-   (#x793a ?ʾ)
-   (#x793b ?ìê)
-   (#x793c ?Àñ)
-   (#x793e ?Éç)
-   (#x7940 ?ìë)
-   (#x7941 ?Æî)
-   (#x7946 ?ìì)
-   (#x7948 ?Æí)
-   (#x7949 ?ìí)
-   (#x7953 ?ìð)
-   (#x7956 ?×æ)
-   (#x7957 ?ìó)
-   (#x795a ?ìñ)
-   (#x795b ?ìî)
-   (#x795c ?ìï)
-   (#x795d ?×£)
-   (#x795e ?Éñ)
-   (#x795f ?Ëî)
-   (#x7960 ?ìô)
-   (#x7962 ?ìò)
-   (#x7965 ?Ãé)
-   (#x7967 ?ìö)
-   (#x7968 ?Ʊ)
-   (#x796d ?¼À)
-   (#x796f ?ìõ)
-   (#x7977 ?µ»)
-   (#x7978 ?»ö)
-   (#x797a ?ì÷)
-   (#x7980 ?Ù÷)
-   (#x7981 ?½û)
-   (#x7984 ?»)
-   (#x7985 ?ìø)
-   (#x798a ?ìù)
-   (#x798f ?¸£)
-   (#x799a ?ìú)
-   (#x79a7 ?ìû)
-   (#x79b3 ?ìü)
-   (#x79b9 ?Óí)
-   (#x79ba ?Ø®)
-   (#x79bb ?Àë)
-   (#x79bd ?ÇÃ)
-   (#x79be ?ºÌ)
-   (#x79c0 ?Ãã)
-   (#x79c1 ?˽)
-   (#x79c3 ?ͺ)
-   (#x79c6 ?¸Ñ)
-   (#x79c9 ?±ü)
-   (#x79cb ?Çï)
-   (#x79cd ?ÖÖ)
-   (#x79d1 ?¿Æ)
-   (#x79d2 ?Ãë)
-   (#x79d5 ?ïõ)
-   (#x79d8 ?ÃØ)
-   (#x79df ?×â)
-   (#x79e3 ?ï÷)
-   (#x79e4 ?³Ó)
-   (#x79e6 ?ÇØ)
-   (#x79e7 ?Ñí)
-   (#x79e9 ?ÖÈ)
-   (#x79eb ?ïø)
-   (#x79ed ?ïö)
-   (#x79ef ?»ý)
-   (#x79f0 ?³Æ)
-   (#x79f8 ?½Õ)
-   (#x79fb ?ÒÆ)
-   (#x79fd ?Ȉ)
-   (#x7a00 ?Ï¡)
-   (#x7a02 ?ïü)
-   (#x7a03 ?ïû)
-   (#x7a06 ?ïù)
-   (#x7a0b ?³Ì)
-   (#x7a0d ?ÉÔ)
-   (#x7a0e ?Ë°)
-   (#x7a14 ?ïþ)
-   (#x7a17 ?°Þ)
-   (#x7a1a ?ÖÉ)
-   (#x7a1e ?ïý)
-   (#x7a20 ?³í)
-   (#x7a23 ?öÕ)
-   (#x7a33 ?ÎÈ)
-   (#x7a37 ?ð¢)
-   (#x7a39 ?ð¡)
-   (#x7a3b ?µ¾)
-   (#x7a3c ?¼Ú)
-   (#x7a3d ?ȟ)
-   (#x7a3f ?¸å)
-   (#x7a46 ?ÄÂ)
-   (#x7a51 ?ð£)
-   (#x7a57 ?Ëë)
-   (#x7a70 ?ð¦)
-   (#x7a74 ?Ѩ)
-   (#x7a76 ?¾¿)
-   (#x7a77 ?Çî)
-   (#x7a78 ?ñ¶)
-   (#x7a79 ?ñ·)
-   (#x7a7a ?¿Õ)
-   (#x7a7f ?´©)
-   (#x7a80 ?ñ¸)
-   (#x7a81 ?Í»)
-   (#x7a83 ?ÇÔ)
-   (#x7a84 ?Õ­)
-   (#x7a86 ?ñ¹)
-   (#x7a88 ?ñº)
-   (#x7a8d ?ÇÃ)
-   (#x7a91 ?Ò¤)
-   (#x7a92 ?ÖÃ)
-   (#x7a95 ?ñ»)
-   (#x7a96 ?½Ñ)
-   (#x7a97 ?´°)
-   (#x7a98 ?¾½)
-   (#x7a9c ?´Ü)
-   (#x7a9d ?ÎÑ)
-   (#x7a9f ?¿ß)
-   (#x7aa0 ?ñ½)
-   (#x7aa5 ?¿ú)
-   (#x7aa6 ?ñ¼)
-   (#x7aa8 ?ñ¿)
-   (#x7aac ?ñ¾)
-   (#x7aad ?ñÀ)
-   (#x7ab3 ?ñÃ)
-   (#x7abf ?Ãþ)
-   (#x7acb ?â)
-   (#x7ad6 ?Êú)
-   (#x7ad9 ?Õ¾)
-   (#x7ade ?¾º)
-   (#x7adf ?¾¹)
-   (#x7ae0 ?ÕÂ)
-   (#x7ae3 ?¿¢)
-   (#x7ae5 ?ͯ)
-   (#x7ae6 ?ñµ)
-   (#x7aed ?½ß)
-   (#x7aef ?¶Ë)
-   (#x7af9 ?Öñ)
-   (#x7afa ?óÃ)
-   (#x7afd ?óÄ)
-   (#x7aff ?¸Ã)
-   (#x7b03 ?óÆ)
-   (#x7b04 ?óÇ)
-   (#x7b06 ?°Ê)
-   (#x7b08 ?óÅ)
-   (#x7b0a ?óÉ)
-   (#x7b0b ?Ëñ)
-   (#x7b0f ?óË)
-   (#x7b11 ?Ц)
-   (#x7b14 ?±Ê)
-   (#x7b15 ?óÈ)
-   (#x7b19 ?óÃ)
-   (#x7b1b ?µÑ)
-   (#x7b1e ?ó×)
-   (#x7b20 ?óÒ)
-   (#x7b24 ?óÔ)
-   (#x7b25 ?óÓ)
-   (#x7b26 ?·û)
-   (#x7b28 ?±¿)
-   (#x7b2a ?óÎ)
-   (#x7b2b ?óÊ)
-   (#x7b2c ?µÚ)
-   (#x7b2e ?óÃ)
-   (#x7b31 ?óÑ)
-   (#x7b33 ?óÕ)
-   (#x7b38 ?óÃ)
-   (#x7b3a ?¼ã)
-   (#x7b3c ?Ãý)
-   (#x7b3e ?óÖ)
-   (#x7b45 ?óÚ)
-   (#x7b47 ?óÌ)
-   (#x7b49 ?µÈ)
-   (#x7b4b ?½î)
-   (#x7b4c ?óÜ)
-   (#x7b4f ?·¤)
-   (#x7b50 ?¿ð)
-   (#x7b51 ?Öþ)
-   (#x7b52 ?Ͳ)
-   (#x7b54 ?´ð)
-   (#x7b56 ?²ß)
-   (#x7b58 ?óØ)
-   (#x7b5a ?óÙ)
-   (#x7b5b ?ɸ)
-   (#x7b5d ?óÃ)
-   (#x7b60 ?óÞ)
-   (#x7b62 ?óá)
-   (#x7b6e ?óß)
-   (#x7b71 ?óã)
-   (#x7b72 ?óâ)
-   (#x7b75 ?óÛ)
-   (#x7b77 ?¿ê)
-   (#x7b79 ?³ï)
-   (#x7b7b ?óà)
-   (#x7b7e ?Ç©)
-   (#x7b80 ?¼ò)
-   (#x7b85 ?óë)
-   (#x7b8d ?¹¿)
-   (#x7b90 ?óä)
-   (#x7b94 ?²­)
-   (#x7b95 ?»þ)
-   (#x7b97 ?Ëã)
-   (#x7b9c ?óí)
-   (#x7b9d ?óé)
-   (#x7ba1 ?¹Ü)
-   (#x7ba2 ?óî)
-   (#x7ba6 ?óå)
-   (#x7ba7 ?óæ)
-   (#x7ba8 ?óê)
-   (#x7ba9 ?Âá)
-   (#x7baa ?óì)
-   (#x7bab ?óï)
-   (#x7bac ?óè)
-   (#x7bad ?¼ý)
-   (#x7bb1 ?Ãä)
-   (#x7bb4 ?óð)
-   (#x7bb8 ?óç)
-   (#x7bc1 ?óò)
-   (#x7bc6 ?×­)
-   (#x7bc7 ?ƪ)
-   (#x7bcc ?óó)
-   (#x7bd1 ?óñ)
-   (#x7bd3 ?¨)
-   (#x7bd9 ?¸Ã)
-   (#x7bda ?óõ)
-   (#x7bdd ?óô)
-   (#x7be1 ?´Û)
-   (#x7be5 ?óö)
-   (#x7be6 ?ó÷)
-   (#x7bea ?óø)
-   (#x7bee ?˼)
-   (#x7bf1 ?Àé)
-   (#x7bf7 ?Åñ)
-   (#x7bfc ?óû)
-   (#x7bfe ?óú)
-   (#x7c07 ?´Ø)
-   (#x7c0b ?óþ)
-   (#x7c0c ?óù)
-   (#x7c0f ?óü)
-   (#x7c16 ?óý)
-   (#x7c1f ?ô¡)
-   (#x7c26 ?ô£)
-   (#x7c27 ?ȃ)
-   (#x7c2a ?ô¢)
-   (#x7c38 ?ô¤)
-   (#x7c3f ?²¾)
-   (#x7c40 ?ô¦)
-   (#x7c41 ?ô¥)
-   (#x7c4d ?¼®)
-   (#x7c73 ?Ã×)
-   (#x7c74 ?Ùá)
-   (#x7c7b ?Àà)
-   (#x7c7c ?ôÌ)
-   (#x7c7d ?×Ñ)
-   (#x7c89 ?·Û)
-   (#x7c91 ?ôÎ)
-   (#x7c92 ?ã)
-   (#x7c95 ?ÆÉ)
-   (#x7c97 ?´Ö)
-   (#x7c98 ?Õ³)
-   (#x7c9c ?ôÃ)
-   (#x7c9d ?ôÃ)
-   (#x7c9e ?ôÑ)
-   (#x7c9f ?ËÚ)
-   (#x7ca2 ?ôÒ)
-   (#x7ca4 ?ÔÃ)
-   (#x7ca5 ?Öà)
-   (#x7caa ?·à)
-   (#x7cae ?ø)
-   (#x7cb1 ?û)
-   (#x7cb2 ?ôÓ)
-   (#x7cb3 ?¾¬)
-   (#x7cb9 ?´â)
-   (#x7cbc ?ôÔ)
-   (#x7cbd ?ôÕ)
-   (#x7cbe ?¾«)
-   (#x7cc1 ?ôÖ)
-   (#x7cc5 ?ôÛ)
-   (#x7cc7 ?ô×)
-   (#x7cc8 ?ôÚ)
-   (#x7cca ?ºý)
-   (#x7ccc ?ôØ)
-   (#x7ccd ?ôÙ)
-   (#x7cd5 ?¸â)
-   (#x7cd6 ?ÌÇ)
-   (#x7cd7 ?ôÜ)
-   (#x7cd9 ?²Ú)
-   (#x7cdc ?ÃÓ)
-   (#x7cdf ?Ôã)
-   (#x7ce0 ?¿·)
-   (#x7ce8 ?ôÃ)
-   (#x7cef ?Å´)
-   (#x7cf8 ?ôé)
-   (#x7cfb ?ϵ)
-   (#x7d0a ?ÎÉ)
-   (#x7d20 ?ËØ)
-   (#x7d22 ?Ë÷)
-   (#x7d27 ?½ô)
-   (#x7d2b ?×Ã)
-   (#x7d2f ?ÀÛ)
-   (#x7d6e ?Ãõ)
-   (#x7d77 ?ôê)
-   (#x7da6 ?ôë)
-   (#x7dae ?ôì)
-   (#x7e3b ?֋)
-   (#x7e41 ?·±)
-   (#x7e47 ?ôí)
-   (#x7e82 ?×ë)
-   (#x7e9b ?ôî)
-   (#x7e9f ?æù)
-   (#x7ea0 ?¾À)
-   (#x7ea1 ?æú)
-   (#x7ea2 ?ºì)
-   (#x7ea3 ?æû)
-   (#x7ea4 ?ÃË)
-   (#x7ea5 ?æü)
-   (#x7ea6 ?Ô¼)
-   (#x7ea7 ?¼¶)
-   (#x7ea8 ?æý)
-   (#x7ea9 ?æþ)
-   (#x7eaa ?¼Ã)
-   (#x7eab ?ÈÒ)
-   (#x7eac ?γ)
-   (#x7ead ?ç¡)
-   (#x7eaf ?´¿)
-   (#x7eb0 ?ç¢)
-   (#x7eb1 ?É´)
-   (#x7eb2 ?¸Ù)
-   (#x7eb3 ?ÄÉ)
-   (#x7eb5 ?×Ã)
-   (#x7eb6 ?ÂÚ)
-   (#x7eb7 ?·×)
-   (#x7eb8 ?Ö½)
-   (#x7eb9 ?ÎÆ)
-   (#x7eba ?·Ä)
-   (#x7ebd ?Ŧ)
-   (#x7ebe ?ç£)
-   (#x7ebf ?Ãß)
-   (#x7ec0 ?ç¤)
-   (#x7ec1 ?ç¥)
-   (#x7ec2 ?ç¦)
-   (#x7ec3 ?÷)
-   (#x7ec4 ?×é)
-   (#x7ec5 ?Éð)
-   (#x7ec6 ?ϸ)
-   (#x7ec7 ?Ö¯)
-   (#x7ec8 ?ÖÕ)
-   (#x7ec9 ?ç§)
-   (#x7eca ?°í)
-   (#x7ecb ?ç¨)
-   (#x7ecc ?ç©)
-   (#x7ecd ?ÉÜ)
-   (#x7ece ?Òï)
-   (#x7ecf ?¾­)
-   (#x7ed0 ?çª)
-   (#x7ed1 ?°ó)
-   (#x7ed2 ?ÈÞ)
-   (#x7ed3 ?½á)
-   (#x7ed4 ?ç«)
-   (#x7ed5 ?ÈÆ)
-   (#x7ed7 ?ç¬)
-   (#x7ed8 ?Ⱦ)
-   (#x7ed9 ?¸ø)
-   (#x7eda ?Ѥ)
-   (#x7edb ?ç­)
-   (#x7edc ?Âç)
-   (#x7edd ?¾ø)
-   (#x7ede ?½Ê)
-   (#x7edf ?ͳ)
-   (#x7ee0 ?ç®)
-   (#x7ee1 ?ç¯)
-   (#x7ee2 ?¾î)
-   (#x7ee3 ?ÃÃ¥)
-   (#x7ee5 ?Ëç)
-   (#x7ee6 ?ÃŒÃ)
-   (#x7ee7 ?¼Ì)
-   (#x7ee8 ?ç°)
-   (#x7ee9 ?¼¨)
-   (#x7eea ?Ã÷)
-   (#x7eeb ?ç±)
-   (#x7eed ?Ãø)
-   (#x7eee ?ç²)
-   (#x7eef ?ç³)
-   (#x7ef0 ?´Â)
-   (#x7ef1 ?ç´)
-   (#x7ef2 ?çµ)
-   (#x7ef3 ?Éþ)
-   (#x7ef4 ?ά)
-   (#x7ef5 ?Ãà)
-   (#x7ef6 ?ç·)
-   (#x7ef7 ?±Ã)
-   (#x7ef8 ?³ñ)
-   (#x7efa ?ç¸)
-   (#x7efb ?ç¹)
-   (#x7efc ?×Û)
-   (#x7efd ?ÕÀ)
-   (#x7efe ?çº)
-   (#x7eff ?ÂÌ)
-   (#x7f00 ?׺)
-   (#x7f01 ?ç»)
-   (#x7f02 ?ç¼)
-   (#x7f03 ?ç½)
-   (#x7f04 ?¼ê)
-   (#x7f05 ?Ãå)
-   (#x7f06 ?ÀÂ)
-   (#x7f07 ?ç¾)
-   (#x7f08 ?ç¿)
-   (#x7f09 ?¼©)
-   (#x7f0b ?çÀ)
-   (#x7f0c ?çÃ)
-   (#x7f0d ?ç¶)
-   (#x7f0e ?¶Ã)
-   (#x7f0f ?çÂ)
-   (#x7f11 ?çÃ)
-   (#x7f12 ?çÄ)
-   (#x7f13 ?ȼ)
-   (#x7f14 ?µÞ)
-   (#x7f15 ?ÂÆ)
-   (#x7f16 ?±à)
-   (#x7f17 ?çÅ)
-   (#x7f18 ?Ôµ)
-   (#x7f19 ?çÆ)
-   (#x7f1a ?¸¿)
-   (#x7f1b ?çÈ)
-   (#x7f1c ?çÇ)
-   (#x7f1d ?·ì)
-   (#x7f1f ?çÉ)
-   (#x7f20 ?²ø)
-   (#x7f21 ?çÊ)
-   (#x7f22 ?çË)
-   (#x7f23 ?çÌ)
-   (#x7f24 ?çÃ)
-   (#x7f25 ?çÎ)
-   (#x7f26 ?çÃ)
-   (#x7f27 ?çÃ)
-   (#x7f28 ?Ó§)
-   (#x7f29 ?Ëõ)
-   (#x7f2a ?çÑ)
-   (#x7f2b ?çÒ)
-   (#x7f2c ?çÓ)
-   (#x7f2d ?çÔ)
-   (#x7f2e ?ÉÉ)
-   (#x7f2f ?çÕ)
-   (#x7f30 ?çÖ)
-   (#x7f31 ?ç×)
-   (#x7f32 ?çØ)
-   (#x7f33 ?çÙ)
-   (#x7f34 ?½É)
-   (#x7f35 ?çÚ)
-   (#x7f36 ?ó¾)
-   (#x7f38 ?¸×)
-   (#x7f3a ?ȱ)
-   (#x7f42 ?ó¿)
-   (#x7f44 ?óÀ)
-   (#x7f45 ?óÃ)
-   (#x7f50 ?¹Þ)
-   (#x7f51 ?Ãø)
-   (#x7f54 ?Øè)
-   (#x7f55 ?º±)
-   (#x7f57 ?ÂÞ)
-   (#x7f58 ?î·)
-   (#x7f5a ?·£)
-   (#x7f5f ?î¹)
-   (#x7f61 ?î¸)
-   (#x7f62 ?°Õ)
-   (#x7f68 ?î»)
-   (#x7f69 ?ÕÖ)
-   (#x7f6a ?×ï)
-   (#x7f6e ?ÖÃ)
-   (#x7f71 ?î½)
-   (#x7f72 ?Êð)
-   (#x7f74 ?î¼)
-   (#x7f79 ?î¾)
-   (#x7f7e ?îÀ)
-   (#x7f81 ?î¿)
-   (#x7f8a ?Ñò)
-   (#x7f8c ?Ǽ)
-   (#x7f8e ?ÃÀ)
-   (#x7f94 ?¸á)
-   (#x7f9a ?Ãç)
-   (#x7f9d ?ôÆ)
-   (#x7f9e ?Ãß)
-   (#x7f9f ?ôÇ)
-   (#x7fa1 ?ÃÛ)
-   (#x7fa4 ?Ⱥ)
-   (#x7fa7 ?ôÈ)
-   (#x7faf ?ôÉ)
-   (#x7fb0 ?ôÊ)
-   (#x7fb2 ?ôË)
-   (#x7fb8 ?Ùú)
-   (#x7fb9 ?¸þ)
-   (#x7fbc ?åñ)
-   (#x7fbd ?Óð)
-   (#x7fbf ?ôà)
-   (#x7fc1 ?ÃŽÃŒ)
-   (#x7fc5 ?³á)
-   (#x7fca ?ñ´)
-   (#x7fcc ?Òî)
-   (#x7fce ?ôá)
-   (#x7fd4 ?Ãè)
-   (#x7fd5 ?ôâ)
-   (#x7fd8 ?ÇÌ)
-   (#x7fdf ?µÔ)
-   (#x7fe0 ?´ä)
-   (#x7fe1 ?ôä)
-   (#x7fe5 ?ôã)
-   (#x7fe6 ?ôå)
-   (#x7fe9 ?ôæ)
-   (#x7fee ?ôç)
-   (#x7ff0 ?º²)
-   (#x7ff1 ?°¿)
-   (#x7ff3 ?ôè)
-   (#x7ffb ?·­)
-   (#x7ffc ?Òí)
-   (#x8000 ?Ò«)
-   (#x8001 ?ÀÃ)
-   (#x8003 ?¿¼)
-   (#x8004 ?ë£)
-   (#x8005 ?Õß)
-   (#x8006 ?êÈ)
-   (#x800b ?ñó)
-   (#x800c ?¶ø)
-   (#x800d ?Ë£)
-   (#x8010 ?ÄÃ)
-   (#x8012 ?ñç)
-   (#x8014 ?ñè)
-   (#x8015 ?¸û)
-   (#x8016 ?ñé)
-   (#x8017 ?ºÄ)
-   (#x8018 ?ÔÅ)
-   (#x8019 ?°Ò)
-   (#x801c ?ñê)
-   (#x8020 ?ñë)
-   (#x8022 ?ñì)
-   (#x8025 ?ñí)
-   (#x8026 ?ñî)
-   (#x8027 ?ñï)
-   (#x8028 ?ññ)
-   (#x8029 ?ñð)
-   (#x802a ?ÅÕ)
-   (#x8031 ?ñò)
-   (#x8033 ?¶ú)
-   (#x8035 ?ñô)
-   (#x8036 ?Ò®)
-   (#x8037 ?ÞÇ)
-   (#x8038 ?ËÊ)
-   (#x803b ?³Ü)
-   (#x803d ?µ¢)
-   (#x803f ?¹¢)
-   (#x8042 ?Äô)
-   (#x8043 ?ñõ)
-   (#x8046 ?ñö)
-   (#x804a ?ÃÄ)
-   (#x804b ?Ãû)
-   (#x804c ?Ö°)
-   (#x804d ?ñ÷)
-   (#x8052 ?ñø)
-   (#x8054 ?ê)
-   (#x8058 ?Ƹ)
-   (#x805a ?¾Û)
-   (#x8069 ?ñù)
-   (#x806a ?´Ã)
-   (#x8071 ?ñú)
-   (#x807f ?í²)
-   (#x8080 ?í±)
-   (#x8083 ?Ëà)
-   (#x8084 ?ÒÞ)
-   (#x8086 ?ËÃ)
-   (#x8087 ?ÕØ)
-   (#x8089 ?Èâ)
-   (#x808b ?Àß)
-   (#x808c ?¼¡)
-   (#x8093 ?ëÃ)
-   (#x8096 ?Ф)
-   (#x8098 ?Öâ)
-   (#x809a ?¶Ç)
-   (#x809b ?¸Ø)
-   (#x809c ?ëÀ)
-   (#x809d ?¸Î)
-   (#x809f ?ë¿)
-   (#x80a0 ?³¦)
-   (#x80a1 ?¹É)
-   (#x80a2 ?Ö«)
-   (#x80a4 ?·ô)
-   (#x80a5 ?·Ê)
-   (#x80a9 ?¼ç)
-   (#x80aa ?·¾)
-   (#x80ab ?ëÆ)
-   (#x80ad ?ëÇ)
-   (#x80ae ?°¹)
-   (#x80af ?¿Ã)
-   (#x80b1 ?ëÅ)
-   (#x80b2 ?Óý)
-   (#x80b4 ?ëÈ)
-   (#x80b7 ?ëÉ)
-   (#x80ba ?·Î)
-   (#x80bc ?ëÂ)
-   (#x80bd ?ëÄ)
-   (#x80be ?Éö)
-   (#x80bf ?Ö×)
-   (#x80c0 ?ÕÃ)
-   (#x80c1 ?в)
-   (#x80c2 ?ëÃ)
-   (#x80c3 ?θ)
-   (#x80c4 ?ëÃ)
-   (#x80c6 ?µ¨)
-   (#x80cc ?±³)
-   (#x80cd ?ëÒ)
-   (#x80ce ?Ì¥)
-   (#x80d6 ?ÅÖ)
-   (#x80d7 ?ëÓ)
-   (#x80d9 ?ëÑ)
-   (#x80da ?Åß)
-   (#x80db ?ëÎ)
-   (#x80dc ?ʤ)
-   (#x80dd ?ëÕ)
-   (#x80de ?°û)
-   (#x80e1 ?ºú)
-   (#x80e4 ?Ø·)
-   (#x80e5 ?ñã)
-   (#x80e7 ?ëÊ)
-   (#x80e8 ?ëË)
-   (#x80e9 ?ëÌ)
-   (#x80ea ?ëÃ)
-   (#x80eb ?ëÖ)
-   (#x80ec ?æÀ)
-   (#x80ed ?ëÙ)
-   (#x80ef ?¿è)
-   (#x80f0 ?ÒÈ)
-   (#x80f1 ?ë×)
-   (#x80f2 ?ëÜ)
-   (#x80f3 ?¸ì)
-   (#x80f4 ?ëØ)
-   (#x80f6 ?½º)
-   (#x80f8 ?ÃØ)
-   (#x80fa ?°·)
-   (#x80fc ?ëÃ)
-   (#x80fd ?ÄÜ)
-   (#x8102 ?Ö¬)
-   (#x8106 ?´à)
-   (#x8109 ?Âö)
-   (#x810a ?¼¹)
-   (#x810d ?ëÚ)
-   (#x810e ?ëÛ)
-   (#x810f ?Ôà)
-   (#x8110 ?Æê)
-   (#x8111 ?ÄÔ)
-   (#x8112 ?ëß)
-   (#x8113 ?ŧ)
-   (#x8114 ?Ùõ)
-   (#x8116 ?²±)
-   (#x8118 ?ëä)
-   (#x811a ?½Å)
-   (#x811e ?ëâ)
-   (#x812c ?ëã)
-   (#x812f ?¸¬)
-   (#x8131 ?ÃÑ)
-   (#x8132 ?ëå)
-   (#x8136 ?ëá)
-   (#x8138 ?ó)
-   (#x813e ?Æ¢)
-   (#x8146 ?Ìó)
-   (#x8148 ?ëæ)
-   (#x814a ?À°)
-   (#x814b ?Ò¸)
-   (#x814c ?ëç)
-   (#x8150 ?¸¯)
-   (#x8151 ?¸­)
-   (#x8153 ?ëè)
-   (#x8154 ?Ç»)
-   (#x8155 ?Ãó)
-   (#x8159 ?ëê)
-   (#x815a ?ëë)
-   (#x8160 ?ëí)
-   (#x8165 ?ÃÈ)
-   (#x8167 ?ëò)
-   (#x8169 ?ëî)
-   (#x816d ?ëñ)
-   (#x816e ?Èù)
-   (#x8170 ?Ñü)
-   (#x8171 ?ëì)
-   (#x8174 ?ëé)
-   (#x8179 ?¸¹)
-   (#x817a ?ÃÙ)
-   (#x817b ?Äå)
-   (#x817c ?ëï)
-   (#x817d ?ëð)
-   (#x817e ?ÌÚ)
-   (#x817f ?ÃÈ)
-   (#x8180 ?°ò)
-   (#x8182 ?ëö)
-   (#x8188 ?ëõ)
-   (#x818a ?²²)
-   (#x818f ?¸à)
-   (#x8191 ?ë÷)
-   (#x8198 ?±ì)
-   (#x819b ?ÌÅ)
-   (#x819c ?Ĥ)
-   (#x819d ?Ï¥)
-   (#x81a3 ?ëù)
-   (#x81a6 ?ì¢)
-   (#x81a8 ?Åò)
-   (#x81aa ?ëú)
-   (#x81b3 ?ÉÅ)
-   (#x81ba ?âß)
-   (#x81bb ?ëþ)
-   (#x81c0 ?ÃÃŽ)
-   (#x81c1 ?ì¡)
-   (#x81c2 ?±Û)
-   (#x81c3 ?Ó·)
-   (#x81c6 ?Ã’Ãœ)
-   (#x81ca ?ëý)
-   (#x81cc ?ëû)
-   (#x81e3 ?³¼)
-   (#x81e7 ?ê°)
-   (#x81ea ?×Ô)
-   (#x81ec ?ô«)
-   (#x81ed ?³ô)
-   (#x81f3 ?ÖÃ)
-   (#x81f4 ?ÖÂ)
-   (#x81fb ?Õé)
-   (#x81fc ?¾Ê)
-   (#x81fe ?ô§)
-   (#x8200 ?Ò¨)
-   (#x8201 ?ô¨)
-   (#x8202 ?ô©)
-   (#x8204 ?ôª)
-   (#x8205 ?¾Ë)
-   (#x8206 ?Óß)
-   (#x820c ?Éà)
-   (#x820d ?Éá)
-   (#x8210 ?óÂ)
-   (#x8212 ?Êæ)
-   (#x8214 ?Ìò)
-   (#x821b ?â¶)
-   (#x821c ?Ë´)
-   (#x821e ?Îè)
-   (#x821f ?ÖÛ)
-   (#x8221 ?ô­)
-   (#x8222 ?ô®)
-   (#x8223 ?ô¯)
-   (#x8228 ?ô²)
-   (#x822a ?º½)
-   (#x822b ?ô³)
-   (#x822c ?°ã)
-   (#x822d ?ô°)
-   (#x822f ?ô±)
-   (#x8230 ?½¢)
-   (#x8231 ?²Õ)
-   (#x8233 ?ô¶)
-   (#x8234 ?ô·)
-   (#x8235 ?¶æ)
-   (#x8236 ?²°)
-   (#x8237 ?ÃÃ)
-   (#x8238 ?ô´)
-   (#x8239 ?´¬)
-   (#x823b ?ôµ)
-   (#x823e ?ô¸)
-   (#x8244 ?ô¹)
-   (#x8247 ?ͧ)
-   (#x8249 ?ôº)
-   (#x824b ?ô»)
-   (#x824f ?ô¼)
-   (#x8258 ?ËÒ)
-   (#x825a ?ô½)
-   (#x825f ?ô¾)
-   (#x8268 ?ô¿)
-   (#x826e ?ôÞ)
-   (#x826f ?ü)
-   (#x8270 ?¼è)
-   (#x8272 ?É«)
-   (#x8273 ?ÑÞ)
-   (#x8274 ?åõ)
-   (#x8279 ?ܳ)
-   (#x827a ?ÒÕ)
-   (#x827d ?Ü´)
-   (#x827e ?°¬)
-   (#x827f ?ܵ)
-   (#x8282 ?½Ú)
-   (#x8284 ?ܹ)
-   (#x8288 ?ØÂ)
-   (#x828a ?Ü·)
-   (#x828b ?Óó)
-   (#x828d ?ÉÖ)
-   (#x828e ?ܺ)
-   (#x828f ?ܶ)
-   (#x8291 ?Ü»)
-   (#x8292 ?â)
-   (#x8297 ?ܼ)
-   (#x8298 ?ÜÅ)
-   (#x8299 ?ܽ)
-   (#x829c ?Îß)
-   (#x829d ?Ö¥)
-   (#x829f ?ÃœÃ)
-   (#x82a1 ?ÃœÃ)
-   (#x82a4 ?ÜÒ)
-   (#x82a5 ?½æ)
-   (#x82a6 ?«)
-   (#x82a8 ?ܸ)
-   (#x82a9 ?ÜË)
-   (#x82aa ?ÜÎ)
-   (#x82ab ?ܾ)
-   (#x82ac ?·Ò)
-   (#x82ad ?°Å)
-   (#x82ae ?ÜÇ)
-   (#x82af ?о)
-   (#x82b0 ?ÃœÃ)
-   (#x82b1 ?Ȭ)
-   (#x82b3 ?·¼)
-   (#x82b4 ?ÜÌ)
-   (#x82b7 ?ÜÆ)
-   (#x82b8 ?Ü¿)
-   (#x82b9 ?ÇÛ)
-   (#x82bd ?Ñ¿)
-   (#x82be ?ÜÀ)
-   (#x82c1 ?ÜÊ)
-   (#x82c4 ?ÃœÃ)
-   (#x82c7 ?έ)
-   (#x82c8 ?ÜÂ)
-   (#x82ca ?ÜÃ)
-   (#x82cb ?ÜÈ)
-   (#x82cc ?ÜÉ)
-   (#x82cd ?²Ô)
-   (#x82ce ?ÜÑ)
-   (#x82cf ?ËÕ)
-   (#x82d1 ?Ô·)
-   (#x82d2 ?ÜÛ)
-   (#x82d3 ?Üß)
-   (#x82d4 ?̦)
-   (#x82d5 ?Üæ)
-   (#x82d7 ?Ãç)
-   (#x82d8 ?ÜÜ)
-   (#x82db ?¿Ã)
-   (#x82dc ?ÜÙ)
-   (#x82de ?°ú)
-   (#x82df ?¹¶)
-   (#x82e0 ?Üå)
-   (#x82e1 ?ÜÓ)
-   (#x82e3 ?ÜÄ)
-   (#x82e4 ?ÜÖ)
-   (#x82e5 ?Èô)
-   (#x82e6 ?¿à)
-   (#x82eb ?É»)
-   (#x82ef ?±½)
-   (#x82f1 ?Ó¢)
-   (#x82f4 ?ÜÚ)
-   (#x82f7 ?ÜÕ)
-   (#x82f9 ?Æ»)
-   (#x82fb ?ÜÞ)
-   (#x8301 ?×Â)
-   (#x8302 ?ï)
-   (#x8303 ?·¶)
-   (#x8304 ?ÇÑ)
-   (#x8305 ?é)
-   (#x8306 ?Üâ)
-   (#x8307 ?ÜØ)
-   (#x8308 ?Üë)
-   (#x8309 ?ÜÔ)
-   (#x830c ?ÃœÃ)
-   (#x830e ?¾¥)
-   (#x830f ?Ü×)
-   (#x8311 ?Üà)
-   (#x8314 ?Üã)
-   (#x8315 ?Üä)
-   (#x8317 ?Üø)
-   (#x831a ?Üá)
-   (#x831b ?Ý¢)
-   (#x831c ?Üç)
-   (#x8327 ?¼ë)
-   (#x8328 ?´Ä)
-   (#x832b ?ã)
-   (#x832c ?²ç)
-   (#x832d ?Üú)
-   (#x832f ?Üò)
-   (#x8331 ?Üï)
-   (#x8333 ?Üü)
-   (#x8334 ?Üî)
-   (#x8335 ?Òð)
-   (#x8336 ?²è)
-   (#x8338 ?È×)
-   (#x8339 ?Èã)
-   (#x833a ?Üû)
-   (#x833c ?Üí)
-   (#x8340 ?Ü÷)
-   (#x8343 ?Üõ)
-   (#x8346 ?¾£)
-   (#x8347 ?Üô)
-   (#x8349 ?²Ã)
-   (#x834f ?Üó)
-   (#x8350 ?¼ö)
-   (#x8351 ?Üè)
-   (#x8352 ?Ȁ)
-   (#x8354 ?Àó)
-   (#x835a ?¼Ô)
-   (#x835b ?Üé)
-   (#x835c ?Üê)
-   (#x835e ?Üñ)
-   (#x835f ?Üö)
-   (#x8360 ?Üù)
-   (#x8361 ?µ´)
-   (#x8363 ?ÈÙ)
-   (#x8364 ?ȍ)
-   (#x8365 ?Üþ)
-   (#x8366 ?Üý)
-   (#x8367 ?Ó«)
-   (#x8368 ?Ý¡)
-   (#x8369 ?Ý£)
-   (#x836a ?Ý¥)
-   (#x836b ?Òñ)
-   (#x836c ?ݤ)
-   (#x836d ?ݦ)
-   (#x836e ?ݧ)
-   (#x836f ?Ò©)
-   (#x8377 ?ºÉ)
-   (#x8378 ?Ý©)
-   (#x837b ?ݶ)
-   (#x837c ?ݱ)
-   (#x837d ?Ý´)
-   (#x8385 ?Ý°)
-   (#x8386 ?ÆÎ)
-   (#x8389 ?Àò)
-   (#x838e ?ɯ)
-   (#x8392 ?Üì)
-   (#x8393 ?Ý®)
-   (#x8398 ?Ý·)
-   (#x839b ?Üð)
-   (#x839c ?ݯ)
-   (#x839e ?ݸ)
-   (#x83a0 ?ݬ)
-   (#x83a8 ?ݹ)
-   (#x83a9 ?ݳ)
-   (#x83aa ?Ý­)
-   (#x83ab ?Ī)
-   (#x83b0 ?ݨ)
-   (#x83b1 ?À³)
-   (#x83b2 ?ë)
-   (#x83b3 ?ݪ)
-   (#x83b4 ?Ý«)
-   (#x83b6 ?ݲ)
-   (#x83b7 ?Ȗ)
-   (#x83b8 ?ݵ)
-   (#x83b9 ?Ó¨)
-   (#x83ba ?ݺ)
-   (#x83bc ?Ý»)
-   (#x83bd ?ç)
-   (#x83c0 ?ÃÃ’)
-   (#x83c1 ?ݼ)
-   (#x83c5 ?ÃÑ)
-   (#x83c7 ?¹½)
-   (#x83ca ?¾Õ)
-   (#x83cc ?¾ú)
-   (#x83cf ?ºÊ)
-   (#x83d4 ?ÃÊ)
-   (#x83d6 ?ÃÃ…)
-   (#x83d8 ?Ý¿)
-   (#x83dc ?²Ë)
-   (#x83dd ?ÃÃ)
-   (#x83df ?ÃË)
-   (#x83e0 ?²¤)
-   (#x83e1 ?ÃÕ)
-   (#x83e5 ?ݾ)
-   (#x83e9 ?ÆÃ)
-   (#x83ea ?ÃÃ)
-   (#x83f0 ?ÃÔ)
-   (#x83f1 ?Ãâ)
-   (#x83f2 ?·Æ)
-   (#x83f8 ?ÃÃŽ)
-   (#x83f9 ?ÃÃ)
-   (#x83fd ?ÃÄ)
-   (#x8401 ?ݽ)
-   (#x8403 ?ÃÃ)
-   (#x8404 ?ÌÑ)
-   (#x8406 ?ÃÉ)
-   (#x840b ?ÃÂ)
-   (#x840c ?ÃÈ)
-   (#x840d ?Ƽ)
-   (#x840e ?ή)
-   (#x840f ?ÃÃŒ)
-   (#x8411 ?ÃÈ)
-   (#x8418 ?ÃÃ)
-   (#x841c ?ÃÆ)
-   (#x841d ?ÂÜ)
-   (#x8424 ?Ó©)
-   (#x8425 ?Óª)
-   (#x8426 ?ÃÓ)
-   (#x8427 ?Ãô)
-   (#x8428 ?Èø)
-   (#x8431 ?Ãæ)
-   (#x8438 ?ÃÇ)
-   (#x843c ?Ãà)
-   (#x843d ?Âä)
-   (#x8446 ?Ãá)
-   (#x8451 ?Ã×)
-   (#x8457 ?Öø)
-   (#x8459 ?ÃÙ)
-   (#x845a ?ÃØ)
-   (#x845b ?¸ð)
-   (#x845c ?ÃÖ)
-   (#x8461 ?ÆÃ)
-   (#x8463 ?¶­)
-   (#x8469 ?Ãâ)
-   (#x846b ?ºù)
-   (#x846c ?Ôá)
-   (#x846d ?Ãç)
-   (#x8471 ?´Ã)
-   (#x8473 ?ÃÚ)
-   (#x8475 ?¿û)
-   (#x8476 ?Ãã)
-   (#x8478 ?Ãß)
-   (#x847a ?ÃÃ)
-   (#x8482 ?µÙ)
-   (#x8487 ?ÃÛ)
-   (#x8488 ?ÃÃœ)
-   (#x8489 ?ÃÞ)
-   (#x848b ?½¯)
-   (#x848c ?Ãä)
-   (#x848e ?ÃÃ¥)
-   (#x8497 ?Ãõ)
-   (#x8499 ?ÃÉ)
-   (#x849c ?Ëâ)
-   (#x84a1 ?Ãò)
-   (#x84af ?Øá)
-   (#x84b2 ?ÆÑ)
-   (#x84b4 ?Ãô)
-   (#x84b8 ?Õô)
-   (#x84b9 ?Ãó)
-   (#x84ba ?Ãð)
-   (#x84bd ?Ãì)
-   (#x84bf ?Ãï)
-   (#x84c1 ?Ãè)
-   (#x84c4 ?Ãî)
-   (#x84c9 ?ÈØ)
-   (#x84ca ?Ãî)
-   (#x84cd ?Ãé)
-   (#x84d0 ?Ãê)
-   (#x84d1 ?Ëò)
-   (#x84d3 ?Ãí)
-   (#x84d6 ?±Ã)
-   (#x84dd ?˦)
-   (#x84df ?¼»)
-   (#x84e0 ?Ãñ)
-   (#x84e3 ?Ã÷)
-   (#x84e5 ?Ãö)
-   (#x84e6 ?Ãë)
-   (#x84ec ?Åî)
-   (#x84f0 ?Ãû)
-   (#x84fc ?Þ¤)
-   (#x84ff ?Þ£)
-   (#x850c ?Ãø)
-   (#x8511 ?Ãï)
-   (#x8513 ?Âû)
-   (#x8517 ?Õá)
-   (#x851a ?ε)
-   (#x851f ?Ãý)
-   (#x8521 ?²Ì)
-   (#x852b ?Äè)
-   (#x852c ?Êß)
-   (#x8537 ?Ǿ)
-   (#x8538 ?Ãú)
-   (#x8539 ?Ãü)
-   (#x853a ?Ãþ)
-   (#x853b ?Þ¢)
-   (#x853c ?°ª)
-   (#x853d ?±Î)
-   (#x8543 ?Þ¬)
-   (#x8548 ?Þ¦)
-   (#x8549 ?½¶)
-   (#x854a ?Èï)
-   (#x8556 ?Þ¡)
-   (#x8559 ?Þ¥)
-   (#x855e ?Þ©)
-   (#x8564 ?Þ¨)
-   (#x8568 ?Þ§)
-   (#x8572 ?Þ­)
-   (#x8574 ?ÔÌ)
-   (#x8579 ?Þ³)
-   (#x857a ?Þª)
-   (#x857b ?Þ®)
-   (#x857e ?ÀÙ)
-   (#x8584 ?±¡)
-   (#x8585 ?Þ¶)
-   (#x8587 ?Þ±)
-   (#x858f ?Þ²)
-   (#x859b ?Ѧ)
-   (#x859c ?Þµ)
-   (#x85a4 ?Þ¯)
-   (#x85a8 ?Þ°)
-   (#x85aa ?н)
-   (#x85ae ?Þ´)
-   (#x85af ?Êí)
-   (#x85b0 ?Þ¹)
-   (#x85b7 ?Þ¸)
-   (#x85b9 ?Þ·)
-   (#x85c1 ?Þ»)
-   (#x85c9 ?½å)
-   (#x85cf ?²Ø)
-   (#x85d0 ?Ãê)
-   (#x85d3 ?Þº)
-   (#x85d5 ?ź)
-   (#x85dc ?Þ¼)
-   (#x85e4 ?ÌÙ)
-   (#x85e9 ?·ª)
-   (#x85fb ?Ôå)
-   (#x85ff ?Þ½)
-   (#x8605 ?Þ¿)
-   (#x8611 ?Ä¢)
-   (#x8616 ?ÞÃ)
-   (#x8627 ?Þ¾)
-   (#x8629 ?ÞÀ)
-   (#x8638 ?Õº)
-   (#x863c ?ÞÂ)
-   (#x864d ?ò®)
-   (#x864e ?Ȣ)
-   (#x864f ?²)
-   (#x8650 ?Å°)
-   (#x8651 ?ÂÇ)
-   (#x8654 ?ò¯)
-   (#x865a ?Ãé)
-   (#x865e ?ÓÃ)
-   (#x8662 ?ë½)
-   (#x866b ?³æ)
-   (#x866c ?ò°)
-   (#x866e ?ò±)
-   (#x8671 ?Ê­)
-   (#x8679 ?ºç)
-   (#x867a ?ò³)
-   (#x867b ?òµ)
-   (#x867c ?ò´)
-   (#x867d ?Ëä)
-   (#x867e ?Ϻ)
-   (#x867f ?ò²)
-   (#x8680 ?Ê´)
-   (#x8681 ?Ã’Ã)
-   (#x8682 ?Âì)
-   (#x868a ?ÎÃ)
-   (#x868b ?ò¸)
-   (#x868c ?°ö)
-   (#x868d ?ò·)
-   (#x8693 ?ò¾)
-   (#x8695 ?²Ã)
-   (#x869c ?ÑÃ)
-   (#x869d ?òº)
-   (#x86a3 ?ò¼)
-   (#x86a4 ?Ôé)
-   (#x86a7 ?ò»)
-   (#x86a8 ?ò¶)
-   (#x86a9 ?ò¿)
-   (#x86aa ?ò½)
-   (#x86ac ?ò¹)
-   (#x86af ?òÇ)
-   (#x86b0 ?òÄ)
-   (#x86b1 ?òÆ)
-   (#x86b4 ?òÊ)
-   (#x86b5 ?òÂ)
-   (#x86b6 ?òÀ)
-   (#x86ba ?òÅ)
-   (#x86c0 ?Öû)
-   (#x86c4 ?òÃ)
-   (#x86c6 ?Çù)
-   (#x86c7 ?Éß)
-   (#x86c9 ?òÈ)
-   (#x86ca ?¹Æ)
-   (#x86cb ?µ°)
-   (#x86ce ?òÃ)
-   (#x86cf ?òÉ)
-   (#x86d0 ?òÃ)
-   (#x86d1 ?òÖ)
-   (#x86d4 ?»×)
-   (#x86d8 ?òÕ)
-   (#x86d9 ?ÃÃœ)
-   (#x86db ?Öë)
-   (#x86de ?òÒ)
-   (#x86df ?òÔ)
-   (#x86e4 ?¸ò)
-   (#x86e9 ?òË)
-   (#x86ed ?òÎ)
-   (#x86ee ?Âù)
-   (#x86f0 ?ÕÃ)
-   (#x86f1 ?òÌ)
-   (#x86f2 ?òÃ)
-   (#x86f3 ?òÃ)
-   (#x86f4 ?òÓ)
-   (#x86f8 ?òÙ)
-   (#x86f9 ?Ó¼)
-   (#x86fe ?¶ê)
-   (#x8700 ?Êñ)
-   (#x8702 ?·ä)
-   (#x8703 ?ò×)
-   (#x8707 ?òØ)
-   (#x8708 ?òÚ)
-   (#x8709 ?òÃ)
-   (#x870a ?òÛ)
-   (#x870d ?òÜ)
-   (#x8712 ?ÑÑ)
-   (#x8713 ?òÑ)
-   (#x8715 ?ÃÉ)
-   (#x8717 ?ÃŽÃ)
-   (#x8718 ?Ö©)
-   (#x871a ?òã)
-   (#x871c ?ÃÛ)
-   (#x871e ?òà)
-   (#x8721 ?À¯)
-   (#x8722 ?òì)
-   (#x8723 ?òÞ)
-   (#x8725 ?òá)
-   (#x8729 ?òè)
-   (#x872e ?òâ)
-   (#x8731 ?òç)
-   (#x8734 ?òæ)
-   (#x8737 ?òé)
-   (#x873b ?òß)
-   (#x873e ?òä)
-   (#x873f ?òê)
-   (#x8747 ?Ó¬)
-   (#x8748 ?òå)
-   (#x8749 ?²õ)
-   (#x874c ?òò)
-   (#x874e ?Ы)
-   (#x8753 ?òõ)
-   (#x8757 ?»È)
-   (#x8759 ?òù)
-   (#x8760 ?òð)
-   (#x8763 ?òö)
-   (#x8764 ?òø)
-   (#x8765 ?òú)
-   (#x876e ?òó)
-   (#x8770 ?òñ)
-   (#x8774 ?ºû)
-   (#x8776 ?µû)
-   (#x877b ?òï)
-   (#x877c ?ò÷)
-   (#x877d ?òí)
-   (#x877e ?òî)
-   (#x8782 ?òë)
-   (#x8783 ?ó¦)
-   (#x8785 ?ó£)
-   (#x8788 ?ó¢)
-   (#x878b ?òô)
-   (#x878d ?ÈÚ)
-   (#x8793 ?òû)
-   (#x8797 ?ó¥)
-   (#x879f ?Ãø)
-   (#x87a8 ?òý)
-   (#x87ab ?ó§)
-   (#x87ac ?ó©)
-   (#x87ad ?ó¤)
-   (#x87af ?òü)
-   (#x87b3 ?ó«)
-   (#x87b5 ?óª)
-   (#x87ba ?ÂÃ)
-   (#x87bd ?ó®)
-   (#x87c0 ?ó°)
-   (#x87c6 ?ó¡)
-   (#x87ca ?ó±)
-   (#x87cb ?ó¬)
-   (#x87d1 ?ó¯)
-   (#x87d2 ?òþ)
-   (#x87d3 ?ó­)
-   (#x87db ?ó²)
-   (#x87e0 ?ó´)
-   (#x87e5 ?ó¨)
-   (#x87ea ?ó³)
-   (#x87ee ?óµ)
-   (#x87f9 ?з)
-   (#x87fe ?ó¸)
-   (#x8803 ?Ùù)
-   (#x880a ?ó¹)
-   (#x8813 ?ó·)
-   (#x8815 ?Èä)
-   (#x8816 ?ó¶)
-   (#x881b ?óº)
-   (#x8821 ?ó»)
-   (#x8822 ?´À)
-   (#x8832 ?îÃ)
-   (#x8839 ?ó¼)
-   (#x883c ?ó½)
-   (#x8840 ?Ѫ)
-   (#x8844 ?ô¬)
-   (#x8845 ?ÃÆ)
-   (#x884c ?ÃÃ)
-   (#x884d ?ÑÜ)
-   (#x8854 ?ÃÃŽ)
-   (#x8857 ?½Ö)
-   (#x8859 ?ÑÃ)
-   (#x8861 ?ºâ)
-   (#x8862 ?áé)
-   (#x8863 ?ÒÂ)
-   (#x8864 ?ñÂ)
-   (#x8865 ?²¹)
-   (#x8868 ?±í)
-   (#x8869 ?ñÃ)
-   (#x886b ?ÉÀ)
-   (#x886c ?³Ä)
-   (#x886e ?Ùò)
-   (#x8870 ?Ë¥)
-   (#x8872 ?ñÄ)
-   (#x8877 ?ÖÔ)
-   (#x887d ?ñÅ)
-   (#x887e ?ôÀ)
-   (#x887f ?ñÆ)
-   (#x8881 ?Ô¬)
-   (#x8882 ?ñÇ)
-   (#x8884 ?°À)
-   (#x8885 ?ôÃ)
-   (#x8888 ?ôÂ)
-   (#x888b ?´ü)
-   (#x888d ?ÅÛ)
-   (#x8892 ?Ì»)
-   (#x8896 ?Ãä)
-   (#x889c ?Ãà)
-   (#x88a2 ?ñÈ)
-   (#x88a4 ?Ùó)
-   (#x88ab ?±»)
-   (#x88ad ?Ï®)
-   (#x88b1 ?¸¤)
-   (#x88b7 ?ñÊ)
-   (#x88bc ?ñË)
-   (#x88c1 ?²Ã)
-   (#x88c2 ?ÃÑ)
-   (#x88c5 ?×°)
-   (#x88c6 ?ñÉ)
-   (#x88c9 ?ñÌ)
-   (#x88ce ?ñÎ)
-   (#x88d2 ?Ùö)
-   (#x88d4 ?Òá)
-   (#x88d5 ?Ô£)
-   (#x88d8 ?ôÃ)
-   (#x88d9 ?ȹ)
-   (#x88df ?ôÄ)
-   (#x88e2 ?ñÃ)
-   (#x88e3 ?ñÃ)
-   (#x88e4 ?¿ã)
-   (#x88e5 ?ñÃ)
-   (#x88e8 ?ñÔ)
-   (#x88f0 ?ñÖ)
-   (#x88f1 ?ñÑ)
-   (#x88f3 ?ÉÑ)
-   (#x88f4 ?Åá)
-   (#x88f8 ?Âã)
-   (#x88f9 ?¹ü)
-   (#x88fc ?ñÓ)
-   (#x88fe ?ñÕ)
-   (#x8902 ?¹Ó)
-   (#x890a ?ñÛ)
-   (#x8910 ?ºÖ)
-   (#x8912 ?°ý)
-   (#x8913 ?ñÙ)
-   (#x8919 ?ñØ)
-   (#x891a ?ñÒ)
-   (#x891b ?ñÚ)
-   (#x8921 ?ñ×)
-   (#x8925 ?Èì)
-   (#x892a ?ÃÊ)
-   (#x892b ?ñÃ)
-   (#x8930 ?å½)
-   (#x8934 ?ñÜ)
-   (#x8936 ?ñÞ)
-   (#x8941 ?ñß)
-   (#x8944 ?ÃÃ¥)
-   (#x895e ?ôÅ)
-   (#x895f ?½ó)
-   (#x8966 ?ñà)
-   (#x897b ?ñá)
-   (#x897f ?Î÷)
-   (#x8981 ?Òª)
-   (#x8983 ?ñû)
-   (#x8986 ?¸²)
-   (#x89c1 ?¼û)
-   (#x89c2 ?¹Û)
-   (#x89c4 ?¹æ)
-   (#x89c5 ?ÃÙ)
-   (#x89c6 ?ÊÓ)
-   (#x89c7 ?êè)
-   (#x89c8 ?ÀÀ)
-   (#x89c9 ?¾õ)
-   (#x89ca ?êé)
-   (#x89cb ?êê)
-   (#x89cc ?êë)
-   (#x89ce ?êì)
-   (#x89cf ?êí)
-   (#x89d0 ?êî)
-   (#x89d1 ?êï)
-   (#x89d2 ?½Ç)
-   (#x89d6 ?õû)
-   (#x89da ?õý)
-   (#x89dc ?õþ)
-   (#x89de ?õü)
-   (#x89e3 ?½â)
-   (#x89e5 ?ö¡)
-   (#x89e6 ?´¥)
-   (#x89eb ?ö¢)
-   (#x89ef ?ö£)
-   (#x89f3 ?ì²)
-   (#x8a00 ?ÑÔ)
-   (#x8a07 ?Ùê)
-   (#x8a3e ?ö¤)
-   (#x8a48 ?îº)
-   (#x8a79 ?Õ²)
-   (#x8a89 ?Óþ)
-   (#x8a8a ?ÌÜ)
-   (#x8a93 ?ÊÄ)
-   (#x8b07 ?åÀ)
-   (#x8b26 ?ö¥)
-   (#x8b66 ?¾¯)
-   (#x8b6c ?Æ©)
-   (#x8ba0 ?Ú¥)
-   (#x8ba1 ?¼Æ)
-   (#x8ba2 ?¶©)
-   (#x8ba3 ?¸¼)
-   (#x8ba4 ?ÈÃ)
-   (#x8ba5 ?¼¥)
-   (#x8ba6 ?Ú¦)
-   (#x8ba7 ?Ú§)
-   (#x8ba8 ?ÌÖ)
-   (#x8ba9 ?ÈÃ)
-   (#x8baa ?Ú¨)
-   (#x8bab ?Æý)
-   (#x8bad ?ѵ)
-   (#x8bae ?Òé)
-   (#x8baf ?Ѷ)
-   (#x8bb0 ?¼Ç)
-   (#x8bb2 ?½²)
-   (#x8bb3 ?Ȋ)
-   (#x8bb4 ?Ú©)
-   (#x8bb5 ?Úª)
-   (#x8bb6 ?ÑÈ)
-   (#x8bb7 ?Ú«)
-   (#x8bb8 ?Ãí)
-   (#x8bb9 ?¶ï)
-   (#x8bba ?ÂÛ)
-   (#x8bbc ?ËÃ)
-   (#x8bbd ?·í)
-   (#x8bbe ?Éè)
-   (#x8bbf ?·Ã)
-   (#x8bc0 ?¾÷)
-   (#x8bc1 ?Ö¤)
-   (#x8bc2 ?Ú¬)
-   (#x8bc3 ?Ú­)
-   (#x8bc4 ?ÆÀ)
-   (#x8bc5 ?×ç)
-   (#x8bc6 ?ʶ)
-   (#x8bc8 ?Õ©)
-   (#x8bc9 ?Ëß)
-   (#x8bca ?Õï)
-   (#x8bcb ?Ú®)
-   (#x8bcc ?Öß)
-   (#x8bcd ?´Ê)
-   (#x8bce ?Ú°)
-   (#x8bcf ?Ú¯)
-   (#x8bd1 ?Òë)
-   (#x8bd2 ?Ú±)
-   (#x8bd3 ?Ú²)
-   (#x8bd4 ?Ú³)
-   (#x8bd5 ?ÊÔ)
-   (#x8bd6 ?Ú´)
-   (#x8bd7 ?Ê«)
-   (#x8bd8 ?Úµ)
-   (#x8bd9 ?Ú¶)
-   (#x8bda ?³Ã)
-   (#x8bdb ?Öï)
-   (#x8bdc ?Ú·)
-   (#x8bdd ?»°)
-   (#x8bde ?µ®)
-   (#x8bdf ?Ú¸)
-   (#x8be0 ?Ú¹)
-   (#x8be1 ?¹î)
-   (#x8be2 ?ѯ)
-   (#x8be3 ?Òè)
-   (#x8be4 ?Úº)
-   (#x8be5 ?¸Ã)
-   (#x8be6 ?Ãê)
-   (#x8be7 ?²ï)
-   (#x8be8 ?Ú»)
-   (#x8be9 ?Ú¼)
-   (#x8beb ?½ë)
-   (#x8bec ?ÃŽÃœ)
-   (#x8bed ?Óï)
-   (#x8bee ?Ú½)
-   (#x8bef ?Îó)
-   (#x8bf0 ?Ú¾)
-   (#x8bf1 ?ÓÕ)
-   (#x8bf2 ?Ȍ)
-   (#x8bf3 ?Ú¿)
-   (#x8bf4 ?˵)
-   (#x8bf5 ?ËÃ)
-   (#x8bf6 ?ÚÀ)
-   (#x8bf7 ?Çë)
-   (#x8bf8 ?Öî)
-   (#x8bf9 ?ÚÃ)
-   (#x8bfa ?ŵ)
-   (#x8bfb ?¶Ã)
-   (#x8bfc ?ÚÂ)
-   (#x8bfd ?·Ì)
-   (#x8bfe ?¿Î)
-   (#x8bff ?ÚÃ)
-   (#x8c00 ?ÚÄ)
-   (#x8c01 ?Ë­)
-   (#x8c02 ?ÚÅ)
-   (#x8c03 ?µ÷)
-   (#x8c04 ?ÚÆ)
-   (#x8c05 ?ÃÂ)
-   (#x8c06 ?×»)
-   (#x8c07 ?ÚÇ)
-   (#x8c08 ?̸)
-   (#x8c0a ?Òê)
-   (#x8c0b ?ı)
-   (#x8c0c ?ÚÈ)
-   (#x8c0d ?µý)
-   (#x8c0e ?Ȅ)
-   (#x8c0f ?ÚÉ)
-   (#x8c10 ?г)
-   (#x8c11 ?ÚÊ)
-   (#x8c12 ?ÚË)
-   (#x8c13 ?ν)
-   (#x8c14 ?ÚÌ)
-   (#x8c15 ?ÚÃ)
-   (#x8c16 ?ÚÎ)
-   (#x8c17 ?²÷)
-   (#x8c18 ?ÚÑ)
-   (#x8c19 ?ÚÃ)
-   (#x8c1a ?Ñè)
-   (#x8c1b ?ÚÃ)
-   (#x8c1c ?ÃÕ)
-   (#x8c1d ?ÚÒ)
-   (#x8c1f ?ÚÓ)
-   (#x8c20 ?ÚÔ)
-   (#x8c21 ?ÚÕ)
-   (#x8c22 ?л)
-   (#x8c23 ?Ò¥)
-   (#x8c24 ?°ù)
-   (#x8c25 ?ÚÖ)
-   (#x8c26 ?Ç«)
-   (#x8c27 ?Ú×)
-   (#x8c28 ?½÷)
-   (#x8c29 ?á)
-   (#x8c2a ?ÚØ)
-   (#x8c2b ?ÚÙ)
-   (#x8c2c ?Ãý)
-   (#x8c2d ?Ì·)
-   (#x8c2e ?ÚÚ)
-   (#x8c2f ?ÚÛ)
-   (#x8c30 ?À¾)
-   (#x8c31 ?Æ×)
-   (#x8c32 ?ÚÜ)
-   (#x8c33 ?ÚÃ)
-   (#x8c34 ?Ç´)
-   (#x8c35 ?ÚÞ)
-   (#x8c36 ?Úß)
-   (#x8c37 ?¹È)
-   (#x8c41 ?Ȓ)
-   (#x8c46 ?¶¹)
-   (#x8c47 ?ôø)
-   (#x8c49 ?ôù)
-   (#x8c4c ?Ãã)
-   (#x8c55 ?õ¹)
-   (#x8c5a ?ëà)
-   (#x8c61 ?Ãó)
-   (#x8c62 ?»¿)
-   (#x8c6a ?ºÀ)
-   (#x8c6b ?Ô¥)
-   (#x8c73 ?áÙ)
-   (#x8c78 ?õô)
-   (#x8c79 ?±ª)
-   (#x8c7a ?²ò)
-   (#x8c82 ?õõ)
-   (#x8c85 ?õ÷)
-   (#x8c89 ?ºÑ)
-   (#x8c8a ?õö)
-   (#x8c8c ?ò)
-   (#x8c94 ?õù)
-   (#x8c98 ?õø)
-   (#x8d1d ?±´)
-   (#x8d1e ?Õê)
-   (#x8d1f ?¸º)
-   (#x8d21 ?¹±)
-   (#x8d22 ?²Æ)
-   (#x8d23 ?Ôð)
-   (#x8d24 ?ÃÃ)
-   (#x8d25 ?°Ü)
-   (#x8d26 ?ÕË)
-   (#x8d27 ?»õ)
-   (#x8d28 ?ÖÊ)
-   (#x8d29 ?··)
-   (#x8d2a ?Ì°)
-   (#x8d2b ?ƶ)
-   (#x8d2c ?±á)
-   (#x8d2d ?¹º)
-   (#x8d2e ?Öü)
-   (#x8d2f ?¹á)
-   (#x8d30 ?·¡)
-   (#x8d31 ?¼ú)
-   (#x8d32 ?êÚ)
-   (#x8d33 ?êÛ)
-   (#x8d34 ?Ìù)
-   (#x8d35 ?¹ó)
-   (#x8d36 ?êÜ)
-   (#x8d37 ?´û)
-   (#x8d38 ?ó)
-   (#x8d39 ?·Ñ)
-   (#x8d3a ?ºØ)
-   (#x8d3b ?êÃ)
-   (#x8d3c ?Ôô)
-   (#x8d3d ?êÞ)
-   (#x8d3e ?¼Ö)
-   (#x8d3f ?ȧ)
-   (#x8d40 ?êß)
-   (#x8d41 ?ÃÞ)
-   (#x8d42 ?¸)
-   (#x8d43 ?Ôß)
-   (#x8d44 ?×Ê)
-   (#x8d45 ?êà)
-   (#x8d46 ?êá)
-   (#x8d47 ?êä)
-   (#x8d48 ?êâ)
-   (#x8d49 ?êã)
-   (#x8d4a ?ÉÞ)
-   (#x8d4b ?¸³)
-   (#x8d4c ?¶Ä)
-   (#x8d4d ?êå)
-   (#x8d4e ?Êê)
-   (#x8d4f ?ÉÃ)
-   (#x8d50 ?´Ã)
-   (#x8d53 ?âÙ)
-   (#x8d54 ?Åâ)
-   (#x8d55 ?êæ)
-   (#x8d56 ?˵)
-   (#x8d58 ?׸)
-   (#x8d59 ?êç)
-   (#x8d5a ?׬)
-   (#x8d5b ?Èü)
-   (#x8d5c ?ØÓ)
-   (#x8d5d ?ØÃ)
-   (#x8d5e ?ÔÞ)
-   (#x8d60 ?Ôù)
-   (#x8d61 ?ÉÄ)
-   (#x8d62 ?Ó®)
-   (#x8d63 ?¸Ó)
-   (#x8d64 ?³à)
-   (#x8d66 ?Éâ)
-   (#x8d67 ?ôö)
-   (#x8d6b ?ºÕ)
-   (#x8d6d ?ô÷)
-   (#x8d70 ?×ß)
-   (#x8d73 ?ôñ)
-   (#x8d74 ?¸°)
-   (#x8d75 ?ÕÔ)
-   (#x8d76 ?¸Ã)
-   (#x8d77 ?Æð)
-   (#x8d81 ?³Ã)
-   (#x8d84 ?ôò)
-   (#x8d85 ?³¬)
-   (#x8d8a ?Ô½)
-   (#x8d8b ?Ç÷)
-   (#x8d91 ?ôô)
-   (#x8d94 ?ôó)
-   (#x8d9f ?ÌË)
-   (#x8da3 ?Ȥ)
-   (#x8db1 ?ôõ)
-   (#x8db3 ?×ã)
-   (#x8db4 ?Å¿)
-   (#x8db5 ?õÀ)
-   (#x8db8 ?õ»)
-   (#x8dba ?õÃ)
-   (#x8dbc ?õÂ)
-   (#x8dbe ?Öº)
-   (#x8dbf ?õÃ)
-   (#x8dc3 ?Ô¾)
-   (#x8dc4 ?õÄ)
-   (#x8dc6 ?õÌ)
-   (#x8dcb ?°Ã)
-   (#x8dcc ?µø)
-   (#x8dce ?õÉ)
-   (#x8dcf ?õÊ)
-   (#x8dd1 ?Ã…Ãœ)
-   (#x8dd6 ?õÅ)
-   (#x8dd7 ?õÆ)
-   (#x8dda ?õÇ)
-   (#x8ddb ?õË)
-   (#x8ddd ?¾à)
-   (#x8dde ?õÈ)
-   (#x8ddf ?¸ú)
-   (#x8de3 ?õÃ)
-   (#x8de4 ?õÓ)
-   (#x8de8 ?¿ç)
-   (#x8dea ?¹ò)
-   (#x8deb ?õ¼)
-   (#x8dec ?õÃ)
-   (#x8def ?·)
-   (#x8df3 ?Ìø)
-   (#x8df5 ?¼ù)
-   (#x8df7 ?õÎ)
-   (#x8df8 ?õÃ)
-   (#x8df9 ?õÑ)
-   (#x8dfa ?¶å)
-   (#x8dfb ?õÒ)
-   (#x8dfd ?õÕ)
-   (#x8e05 ?õ½)
-   (#x8e09 ?õÔ)
-   (#x8e0a ?Ó»)
-   (#x8e0c ?³ì)
-   (#x8e0f ?̤)
-   (#x8e14 ?õÖ)
-   (#x8e1d ?õ×)
-   (#x8e1e ?¾á)
-   (#x8e1f ?õØ)
-   (#x8e22 ?Ìß)
-   (#x8e23 ?õÛ)
-   (#x8e29 ?²È)
-   (#x8e2a ?×Ù)
-   (#x8e2c ?õÙ)
-   (#x8e2e ?õÚ)
-   (#x8e2f ?õÜ)
-   (#x8e31 ?õâ)
-   (#x8e35 ?õà)
-   (#x8e39 ?õß)
-   (#x8e3a ?õÃ)
-   (#x8e3d ?õá)
-   (#x8e40 ?õÞ)
-   (#x8e41 ?õä)
-   (#x8e42 ?õå)
-   (#x8e44 ?Ìã)
-   (#x8e47 ?å¿)
-   (#x8e48 ?µ¸)
-   (#x8e49 ?õã)
-   (#x8e4a ?õè)
-   (#x8e4b ?Ì£)
-   (#x8e51 ?õæ)
-   (#x8e52 ?õç)
-   (#x8e59 ?õ¾)
-   (#x8e66 ?±Ä)
-   (#x8e69 ?õ¿)
-   (#x8e6c ?µÅ)
-   (#x8e6d ?²ä)
-   (#x8e6f ?õì)
-   (#x8e70 ?õé)
-   (#x8e72 ?¶×)
-   (#x8e74 ?õí)
-   (#x8e76 ?õê)
-   (#x8e7c ?õë)
-   (#x8e7f ?´Ú)
-   (#x8e81 ?Ôê)
-   (#x8e85 ?õî)
-   (#x8e87 ?³ù)
-   (#x8e8f ?õï)
-   (#x8e90 ?õñ)
-   (#x8e94 ?õð)
-   (#x8e9c ?õò)
-   (#x8e9e ?õó)
-   (#x8eab ?Éí)
-   (#x8eac ?¹ª)
-   (#x8eaf ?Çû)
-   (#x8eb2 ?¶ã)
-   (#x8eba ?ÌÉ)
-   (#x8ece ?ê¦)
-   (#x8f66 ?³µ)
-   (#x8f67 ?Ôþ)
-   (#x8f68 ?¹ì)
-   (#x8f69 ?Ãù)
-   (#x8f6b ?éí)
-   (#x8f6c ?ת)
-   (#x8f6d ?éî)
-   (#x8f6e ?ÂÖ)
-   (#x8f6f ?Èí)
-   (#x8f70 ?ºä)
-   (#x8f71 ?éï)
-   (#x8f72 ?éð)
-   (#x8f73 ?éñ)
-   (#x8f74 ?Öá)
-   (#x8f75 ?éò)
-   (#x8f76 ?éó)
-   (#x8f77 ?éõ)
-   (#x8f78 ?éô)
-   (#x8f79 ?éö)
-   (#x8f7a ?é÷)
-   (#x8f7b ?Çá)
-   (#x8f7c ?éø)
-   (#x8f7d ?ÔØ)
-   (#x8f7e ?éù)
-   (#x8f7f ?½Î)
-   (#x8f81 ?éú)
-   (#x8f82 ?éû)
-   (#x8f83 ?½Ã)
-   (#x8f84 ?éü)
-   (#x8f85 ?¸¨)
-   (#x8f86 ?þ)
-   (#x8f87 ?éý)
-   (#x8f88 ?±²)
-   (#x8f89 ?»Ô)
-   (#x8f8a ?¹õ)
-   (#x8f8b ?éþ)
-   (#x8f8d ?ê¡)
-   (#x8f8e ?ê¢)
-   (#x8f8f ?ê£)
-   (#x8f90 ?·ø)
-   (#x8f91 ?¼­)
-   (#x8f93 ?Êä)
-   (#x8f94 ?àÎ)
-   (#x8f95 ?Ô¯)
-   (#x8f96 ?Ͻ)
-   (#x8f97 ?Õ·)
-   (#x8f98 ?ê¤)
-   (#x8f99 ?ÕÞ)
-   (#x8f9a ?ê¥)
-   (#x8f9b ?ÃÃ)
-   (#x8f9c ?¹¼)
-   (#x8f9e ?´Ç)
-   (#x8f9f ?±Ù)
-   (#x8fa3 ?˱)
-   (#x8fa8 ?±æ)
-   (#x8fa9 ?±ç)
-   (#x8fab ?±è)
-   (#x8fb0 ?³½)
-   (#x8fb1 ?Èè)
-   (#x8fb6 ?Ã¥Ã)
-   (#x8fb9 ?±ß)
-   (#x8fbd ?ÃÉ)
-   (#x8fbe ?´ï)
-   (#x8fc1 ?Ǩ)
-   (#x8fc2 ?ÓØ)
-   (#x8fc4 ?Æù)
-   (#x8fc5 ?Ѹ)
-   (#x8fc7 ?¹ý)
-   (#x8fc8 ?Âõ)
-   (#x8fce ?Ó­)
-   (#x8fd0 ?ÔË)
-   (#x8fd1 ?½ü)
-   (#x8fd3 ?åÂ)
-   (#x8fd4 ?·µ)
-   (#x8fd5 ?åÃ)
-   (#x8fd8 ?»¹)
-   (#x8fd9 ?Õâ)
-   (#x8fdb ?½ø)
-   (#x8fdc ?Ô¶)
-   (#x8fdd ?Î¥)
-   (#x8fde ?ì)
-   (#x8fdf ?³Ù)
-   (#x8fe2 ?Ìö)
-   (#x8fe4 ?åÆ)
-   (#x8fe5 ?åÄ)
-   (#x8fe6 ?åÈ)
-   (#x8fe8 ?åÊ)
-   (#x8fe9 ?åÇ)
-   (#x8fea ?µÃ)
-   (#x8feb ?ÆÈ)
-   (#x8fed ?µü)
-   (#x8fee ?åÅ)
-   (#x8ff0 ?Êö)
-   (#x8ff3 ?åÉ)
-   (#x8ff7 ?ÃÔ)
-   (#x8ff8 ?±Å)
-   (#x8ff9 ?¼£)
-   (#x8ffd ?×·)
-   (#x9000 ?ÃË)
-   (#x9001 ?ËÃ)
-   (#x9002 ?ÊÊ)
-   (#x9003 ?ÌÓ)
-   (#x9004 ?åÌ)
-   (#x9005 ?åË)
-   (#x9006 ?Äæ)
-   (#x9009 ?Ñ¡)
-   (#x900a ?Ñ·)
-   (#x900b ?Ã¥Ã)
-   (#x900d ?Ã¥Ã)
-   (#x900f ?͸)
-   (#x9010 ?Öð)
-   (#x9011 ?Ã¥Ã)
-   (#x9012 ?µÃ)
-   (#x9014 ?;)
-   (#x9016 ?åÑ)
-   (#x9017 ?¶º)
-   (#x901a ?ͨ)
-   (#x901b ?¹ä)
-   (#x901d ?ÊÅ)
-   (#x901e ?³Ñ)
-   (#x901f ?ËÙ)
-   (#x9020 ?Ôì)
-   (#x9021 ?åÒ)
-   (#x9022 ?·ê)
-   (#x9026 ?åÎ)
-   (#x902d ?åÕ)
-   (#x902e ?´þ)
-   (#x902f ?åÖ)
-   (#x9035 ?åÓ)
-   (#x9036 ?åÔ)
-   (#x9038 ?Ã’Ã)
-   (#x903b ?Âß)
-   (#x903c ?±Æ)
-   (#x903e ?Óâ)
-   (#x9041 ?¶Ã)
-   (#x9042 ?Ëì)
-   (#x9044 ?å×)
-   (#x9047 ?Óö)
-   (#x904d ?±é)
-   (#x904f ?¶ô)
-   (#x9050 ?åÚ)
-   (#x9051 ?åØ)
-   (#x9052 ?åÙ)
-   (#x9053 ?µÀ)
-   (#x9057 ?Ã’Ã…)
-   (#x9058 ?åÜ)
-   (#x905b ?åÞ)
-   (#x9062 ?Ã¥Ã)
-   (#x9063 ?Dz)
-   (#x9065 ?Ò£)
-   (#x9068 ?åÛ)
-   (#x906d ?Ôâ)
-   (#x906e ?ÕÚ)
-   (#x9074 ?åà)
-   (#x9075 ?×ñ)
-   (#x907d ?åá)
-   (#x907f ?±Ü)
-   (#x9080 ?Ñû)
-   (#x9082 ?åâ)
-   (#x9083 ?åä)
-   (#x9088 ?åã)
-   (#x908b ?åå)
-   (#x9091 ?ÒØ)
-   (#x9093 ?µË)
-   (#x9095 ?çß)
-   (#x9097 ?Úõ)
-   (#x9099 ?Úø)
-   (#x909b ?Úö)
-   (#x909d ?Ú÷)
-   (#x90a1 ?Úú)
-   (#x90a2 ?ÃÃ)
-   (#x90a3 ?ÄÇ)
-   (#x90a6 ?°î)
-   (#x90aa ?а)
-   (#x90ac ?Úù)
-   (#x90ae ?ÓÊ)
-   (#x90af ?ºª)
-   (#x90b0 ?Û¢)
-   (#x90b1 ?Çñ)
-   (#x90b3 ?Úü)
-   (#x90b4 ?Úû)
-   (#x90b5 ?ÉÛ)
-   (#x90b6 ?Úý)
-   (#x90b8 ?Û¡)
-   (#x90b9 ?×Þ)
-   (#x90ba ?Úþ)
-   (#x90bb ?ÃÚ)
-   (#x90be ?Û¥)
-   (#x90c1 ?Óô)
-   (#x90c4 ?Û§)
-   (#x90c5 ?Û¤)
-   (#x90c7 ?Û¨)
-   (#x90ca ?½¼)
-   (#x90ce ?ÀÉ)
-   (#x90cf ?Û£)
-   (#x90d0 ?Û¦)
-   (#x90d1 ?Ö£)
-   (#x90d3 ?Û©)
-   (#x90d7 ?Û­)
-   (#x90db ?Û®)
-   (#x90dc ?Û¬)
-   (#x90dd ?ºÂ)
-   (#x90e1 ?¿¤)
-   (#x90e2 ?Û«)
-   (#x90e6 ?Ûª)
-   (#x90e7 ?ÔÇ)
-   (#x90e8 ?²¿)
-   (#x90eb ?Û¯)
-   (#x90ed ?¹ù)
-   (#x90ef ?Û°)
-   (#x90f4 ?³»)
-   (#x90f8 ?µ¦)
-   (#x90fd ?¶¼)
-   (#x90fe ?Û±)
-   (#x9102 ?¶õ)
-   (#x9104 ?Û²)
-   (#x9119 ?±É)
-   (#x911e ?Û´)
-   (#x9122 ?Û³)
-   (#x9123 ?Ûµ)
-   (#x912f ?Û·)
-   (#x9131 ?Û¶)
-   (#x9139 ?Û¸)
-   (#x9143 ?Û¹)
-   (#x9146 ?Ûº)
-   (#x9149 ?ÓÃ)
-   (#x914a ?ôú)
-   (#x914b ?Çõ)
-   (#x914c ?×Ã)
-   (#x914d ?Åä)
-   (#x914e ?ôü)
-   (#x914f ?ôý)
-   (#x9150 ?ôû)
-   (#x9152 ?¾Æ)
-   (#x9157 ?Ãï)
-   (#x915a ?·Ó)
-   (#x915d ?ÔÃ)
-   (#x915e ?̪)
-   (#x9161 ?õ¢)
-   (#x9162 ?õ¡)
-   (#x9163 ?º¨)
-   (#x9164 ?ôþ)
-   (#x9165 ?ËÖ)
-   (#x9169 ?õ¤)
-   (#x916a ?ÀÒ)
-   (#x916c ?³ê)
-   (#x916e ?ͪ)
-   (#x916f ?õ¥)
-   (#x9170 ?õ£)
-   (#x9171 ?½´)
-   (#x9172 ?õ¨)
-   (#x9174 ?õ©)
-   (#x9175 ?½Ã)
-   (#x9176 ?ø)
-   (#x9177 ?¿á)
-   (#x9178 ?Ëá)
-   (#x9179 ?õª)
-   (#x917d ?õ¦)
-   (#x917e ?õ§)
-   (#x917f ?Äð)
-   (#x9185 ?õ¬)
-   (#x9187 ?´¼)
-   (#x9189 ?×í)
-   (#x918b ?´×)
-   (#x918c ?õ«)
-   (#x918d ?õ®)
-   (#x9190 ?õ­)
-   (#x9191 ?õ¯)
-   (#x9192 ?ÃÑ)
-   (#x919a ?ÃÑ)
-   (#x919b ?È©)
-   (#x91a2 ?õ°)
-   (#x91a3 ?õ±)
-   (#x91aa ?õ²)
-   (#x91ad ?õ³)
-   (#x91ae ?õ´)
-   (#x91af ?õµ)
-   (#x91b4 ?õ·)
-   (#x91b5 ?õ¶)
-   (#x91ba ?õ¸)
-   (#x91c7 ?²É)
-   (#x91c9 ?ÓÔ)
-   (#x91ca ?ÊÃ)
-   (#x91cc ?Àï)
-   (#x91cd ?ÖØ)
-   (#x91ce ?Ò°)
-   (#x91cf ?ÿ)
-   (#x91d1 ?½ð)
-   (#x91dc ?¸ª)
-   (#x9274 ?¼ø)
-   (#x928e ?öÆ)
-   (#x92ae ?öÇ)
-   (#x92c8 ?öÈ)
-   (#x933e ?öÉ)
-   (#x936a ?öÊ)
-   (#x938f ?öÌ)
-   (#x93ca ?öË)
-   (#x93d6 ?֎)
-   (#x943e ?öÃ)
-   (#x946b ?öÎ)
-   (#x9485 ?îÄ)
-   (#x9486 ?îÅ)
-   (#x9487 ?îÆ)
-   (#x9488 ?Õë)
-   (#x9489 ?¶¤)
-   (#x948a ?îÈ)
-   (#x948b ?îÇ)
-   (#x948c ?îÉ)
-   (#x948d ?îÊ)
-   (#x948e ?Ç¥)
-   (#x948f ?îË)
-   (#x9490 ?îÌ)
-   (#x9492 ?·°)
-   (#x9493 ?µö)
-   (#x9494 ?îÃ)
-   (#x9495 ?îÃ)
-   (#x9497 ?îÎ)
-   (#x9499 ?¸Æ)
-   (#x949a ?îÃ)
-   (#x949b ?îÑ)
-   (#x949c ?îÒ)
-   (#x949d ?¶Û)
-   (#x949e ?³®)
-   (#x949f ?ÖÓ)
-   (#x94a0 ?ÄÆ)
-   (#x94a1 ?±µ)
-   (#x94a2 ?¸Ö)
-   (#x94a3 ?îÓ)
-   (#x94a4 ?îÔ)
-   (#x94a5 ?Ô¿)
-   (#x94a6 ?ÇÕ)
-   (#x94a7 ?¾û)
-   (#x94a8 ?ÎÙ)
-   (#x94a9 ?¹³)
-   (#x94aa ?îÖ)
-   (#x94ab ?îÕ)
-   (#x94ac ?îØ)
-   (#x94ad ?î×)
-   (#x94ae ?Å¥)
-   (#x94af ?îÙ)
-   (#x94b0 ?îÚ)
-   (#x94b1 ?Ç®)
-   (#x94b2 ?îÛ)
-   (#x94b3 ?ǯ)
-   (#x94b4 ?îÜ)
-   (#x94b5 ?²§)
-   (#x94b6 ?îÃ)
-   (#x94b7 ?îÞ)
-   (#x94b8 ?îß)
-   (#x94b9 ?îà)
-   (#x94ba ?îá)
-   (#x94bb ?×ê)
-   (#x94bc ?îâ)
-   (#x94bd ?îã)
-   (#x94be ?¼Ø)
-   (#x94bf ?îä)
-   (#x94c0 ?ÓË)
-   (#x94c1 ?Ìú)
-   (#x94c2 ?²¬)
-   (#x94c3 ?ÃÃ¥)
-   (#x94c4 ?îå)
-   (#x94c5 ?Ǧ)
-   (#x94c6 ?í)
-   (#x94c8 ?îæ)
-   (#x94c9 ?îç)
-   (#x94ca ?îè)
-   (#x94cb ?îé)
-   (#x94cc ?îê)
-   (#x94cd ?îë)
-   (#x94ce ?îì)
-   (#x94d0 ?îí)
-   (#x94d1 ?îî)
-   (#x94d2 ?îï)
-   (#x94d5 ?îð)
-   (#x94d6 ?îñ)
-   (#x94d7 ?îò)
-   (#x94d8 ?îô)
-   (#x94d9 ?îó)
-   (#x94db ?îõ)
-   (#x94dc ?Í­)
-   (#x94dd ?ÂÃ)
-   (#x94de ?îö)
-   (#x94df ?î÷)
-   (#x94e0 ?îø)
-   (#x94e1 ?Õ¡)
-   (#x94e2 ?îù)
-   (#x94e3 ?ϳ)
-   (#x94e4 ?îú)
-   (#x94e5 ?îû)
-   (#x94e7 ?îü)
-   (#x94e8 ?îý)
-   (#x94e9 ?ï¡)
-   (#x94ea ?îþ)
-   (#x94eb ?ï¢)
-   (#x94ec ?¸õ)
-   (#x94ed ?Ãú)
-   (#x94ee ?ï£)
-   (#x94ef ?ï¤)
-   (#x94f0 ?½Â)
-   (#x94f1 ?Ò¿)
-   (#x94f2 ?²ù)
-   (#x94f3 ?ï¥)
-   (#x94f4 ?ï¦)
-   (#x94f5 ?ï§)
-   (#x94f6 ?Òø)
-   (#x94f7 ?ï¨)
-   (#x94f8 ?Öý)
-   (#x94f9 ?ï©)
-   (#x94fa ?ÆÌ)
-   (#x94fc ?ïª)
-   (#x94fd ?ï«)
-   (#x94fe ?ô)
-   (#x94ff ?ï¬)
-   (#x9500 ?Ãú)
-   (#x9501 ?Ëø)
-   (#x9502 ?ï®)
-   (#x9503 ?ï­)
-   (#x9504 ?³ú)
-   (#x9505 ?¹ø)
-   (#x9506 ?ï¯)
-   (#x9507 ?ï°)
-   (#x9508 ?Ãâ)
-   (#x9509 ?ï±)
-   (#x950a ?ï²)
-   (#x950b ?·æ)
-   (#x950c ?п)
-   (#x950d ?ï³)
-   (#x950e ?ï´)
-   (#x950f ?ïµ)
-   (#x9510 ?Èñ)
-   (#x9511 ?Ìà)
-   (#x9512 ?ï¶)
-   (#x9513 ?ï·)
-   (#x9514 ?ï¸)
-   (#x9515 ?ï¹)
-   (#x9516 ?ïº)
-   (#x9517 ?Õà)
-   (#x9518 ?ï»)
-   (#x9519 ?´í)
-   (#x951a ?ê)
-   (#x951b ?ï¼)
-   (#x951d ?ï½)
-   (#x951e ?ï¾)
-   (#x951f ?ï¿)
-   (#x9521 ?Îý)
-   (#x9522 ?ïÀ)
-   (#x9523 ?Âà)
-   (#x9524 ?´¸)
-   (#x9525 ?׶)
-   (#x9526 ?½õ)
-   (#x9528 ?ÃÇ)
-   (#x9529 ?ïÃ)
-   (#x952a ?ïÃ)
-   (#x952b ?ïÂ)
-   (#x952c ?ïÄ)
-   (#x952d ?¶§)
-   (#x952e ?¼ü)
-   (#x952f ?¾â)
-   (#x9530 ?ÃÌ)
-   (#x9531 ?ïÅ)
-   (#x9532 ?ïÆ)
-   (#x9534 ?ïÇ)
-   (#x9535 ?ïÃ)
-   (#x9536 ?ïÈ)
-   (#x9537 ?ïÉ)
-   (#x9538 ?ïÊ)
-   (#x9539 ?ÇÂ)
-   (#x953a ?ïñ)
-   (#x953b ?¶Ã)
-   (#x953c ?ïË)
-   (#x953e ?ïÌ)
-   (#x953f ?ïÃ)
-   (#x9540 ?¶Æ)
-   (#x9541 ?þ)
-   (#x9542 ?ïÎ)
-   (#x9544 ?ïÃ)
-   (#x9545 ?ïÑ)
-   (#x9546 ?ïÒ)
-   (#x9547 ?Õò)
-   (#x9549 ?ïÓ)
-   (#x954a ?Ä÷)
-   (#x954c ?ïÔ)
-   (#x954d ?Äø)
-   (#x954e ?ïÕ)
-   (#x954f ?ïÖ)
-   (#x9550 ?¸ä)
-   (#x9551 ?°÷)
-   (#x9552 ?ï×)
-   (#x9553 ?ïØ)
-   (#x9554 ?ïÙ)
-   (#x9556 ?ïÚ)
-   (#x9557 ?ïÛ)
-   (#x9558 ?ïÜ)
-   (#x9559 ?ïÃ)
-   (#x955b ?ïÞ)
-   (#x955c ?¾µ)
-   (#x955d ?ïá)
-   (#x955e ?ïß)
-   (#x955f ?ïà)
-   (#x9561 ?ïâ)
-   (#x9562 ?ïã)
-   (#x9563 ?ÃÃ)
-   (#x9564 ?ïä)
-   (#x9565 ?ïå)
-   (#x9566 ?ïæ)
-   (#x9567 ?ïç)
-   (#x9568 ?ïè)
-   (#x9569 ?ïé)
-   (#x956a ?ïê)
-   (#x956b ?ïë)
-   (#x956c ?ïì)
-   (#x956d ?ÀØ)
-   (#x956f ?ïí)
-   (#x9570 ?í)
-   (#x9571 ?ïî)
-   (#x9572 ?ïï)
-   (#x9573 ?ïð)
-   (#x9576 ?Ãâ)
-   (#x957f ?³¤)
-   (#x95e8 ?ÃÅ)
-   (#x95e9 ?ãÅ)
-   (#x95ea ?ÉÃ)
-   (#x95eb ?ãÆ)
-   (#x95ed ?±Õ)
-   (#x95ee ?ÎÊ)
-   (#x95ef ?´³)
-   (#x95f0 ?Èò)
-   (#x95f1 ?ãÇ)
-   (#x95f2 ?ÃÃ)
-   (#x95f3 ?ãÈ)
-   (#x95f4 ?¼ä)
-   (#x95f5 ?ãÉ)
-   (#x95f6 ?ãÊ)
-   (#x95f7 ?ÃÆ)
-   (#x95f8 ?Õ¢)
-   (#x95f9 ?ÄÖ)
-   (#x95fa ?¹ë)
-   (#x95fb ?ÃŽÃ…)
-   (#x95fc ?ãË)
-   (#x95fd ?Ãö)
-   (#x95fe ?ãÌ)
-   (#x9600 ?·§)
-   (#x9601 ?¸ó)
-   (#x9602 ?ºÒ)
-   (#x9603 ?ãÃ)
-   (#x9604 ?ãÎ)
-   (#x9605 ?ÔÄ)
-   (#x9606 ?ãÃ)
-   (#x9608 ?ãÃ)
-   (#x9609 ?ÑË)
-   (#x960a ?ãÑ)
-   (#x960b ?ãÒ)
-   (#x960c ?ãÓ)
-   (#x960d ?ãÔ)
-   (#x960e ?ÑÖ)
-   (#x960f ?ãÕ)
-   (#x9610 ?²û)
-   (#x9611 ?À»)
-   (#x9612 ?ãÖ)
-   (#x9614 ?À«)
-   (#x9615 ?ã×)
-   (#x9616 ?ãØ)
-   (#x9617 ?ãÙ)
-   (#x9619 ?ãÚ)
-   (#x961a ?ãÛ)
-   (#x961c ?¸·)
-   (#x961d ?Úâ)
-   (#x961f ?¶Ó)
-   (#x9621 ?Úä)
-   (#x9622 ?Úã)
-   (#x962a ?Úæ)
-   (#x962e ?Èî)
-   (#x9631 ?Úå)
-   (#x9632 ?·À)
-   (#x9633 ?Ñô)
-   (#x9634 ?Òõ)
-   (#x9635 ?Õó)
-   (#x9636 ?½×)
-   (#x963b ?×è)
-   (#x963c ?Úè)
-   (#x963d ?Úç)
-   (#x963f ?°¢)
-   (#x9640 ?ÃÓ)
-   (#x9642 ?Úé)
-   (#x9644 ?¸½)
-   (#x9645 ?¼Ê)
-   (#x9646 ?½)
-   (#x9647 ?¤)
-   (#x9648 ?³Â)
-   (#x9649 ?Úê)
-   (#x964b ?ª)
-   (#x964c ?Ä°)
-   (#x964d ?½µ)
-   (#x9650 ?ÃÞ)
-   (#x9654 ?Úë)
-   (#x9655 ?ÉÂ)
-   (#x965b ?±Ã)
-   (#x965f ?Úì)
-   (#x9661 ?¶¸)
-   (#x9662 ?Ôº)
-   (#x9664 ?³ý)
-   (#x9667 ?Úí)
-   (#x9668 ?ÔÉ)
-   (#x9669 ?ÃÕ)
-   (#x966a ?Åã)
-   (#x966c ?Úî)
-   (#x9672 ?Úï)
-   (#x9674 ?Úð)
-   (#x9675 ?Ãê)
-   (#x9676 ?ÌÕ)
-   (#x9677 ?ÃÃ)
-   (#x9685 ?Óç)
-   (#x9686 ?¡)
-   (#x9688 ?Úñ)
-   (#x968b ?Ëå)
-   (#x968d ?Úò)
-   (#x968f ?Ëæ)
-   (#x9690 ?Òþ)
-   (#x9694 ?¸ô)
-   (#x9697 ?Úó)
-   (#x9698 ?°¯)
-   (#x9699 ?϶)
-   (#x969c ?ÕÃ)
-   (#x96a7 ?Ëí)
-   (#x96b0 ?Úô)
-   (#x96b3 ?ãÄ)
-   (#x96b6 ?ÃÂ¥)
-   (#x96b9 ?ö¿)
-   (#x96bc ?öÀ)
-   (#x96bd ?öÃ)
-   (#x96be ?ÄÑ)
-   (#x96c0 ?ȸ)
-   (#x96c1 ?Ñã)
-   (#x96c4 ?ÃÛ)
-   (#x96c5 ?ÑÅ)
-   (#x96c6 ?¼¯)
-   (#x96c7 ?¹Ã)
-   (#x96c9 ?ïô)
-   (#x96cc ?´Æ)
-   (#x96cd ?Óº)
-   (#x96ce ?öÂ)
-   (#x96cf ?³û)
-   (#x96d2 ?öÃ)
-   (#x96d5 ?µñ)
-   (#x96e0 ?öÅ)
-   (#x96e8 ?Óê)
-   (#x96e9 ?ö§)
-   (#x96ea ?Ñ©)
-   (#x96ef ?ö©)
-   (#x96f3 ?ö¨)
-   (#x96f6 ?Ãã)
-   (#x96f7 ?À×)
-   (#x96f9 ?±¢)
-   (#x96fe ?Îí)
-   (#x9700 ?Ãè)
-   (#x9701 ?ö«)
-   (#x9704 ?Ãö)
-   (#x9706 ?öª)
-   (#x9707 ?Õð)
-   (#x9708 ?ö¬)
-   (#x9709 ?ù)
-   (#x970d ?»ô)
-   (#x970e ?ö®)
-   (#x970f ?ö­)
-   (#x9713 ?ÄÞ)
-   (#x9716 ?ÃØ)
-   (#x971c ?˪)
-   (#x971e ?ϼ)
-   (#x972a ?ö¯)
-   (#x972d ?ö°)
-   (#x9730 ?ö±)
-   (#x9732 ?¶)
-   (#x9738 ?°Ô)
-   (#x9739 ?Åù)
-   (#x973e ?ö²)
-   (#x9752 ?Çà)
-   (#x9753 ?ö¦)
-   (#x9756 ?¾¸)
-   (#x9759 ?¾²)
-   (#x975b ?µå)
-   (#x975e ?·Ç)
-   (#x9760 ?¿¿)
-   (#x9761 ?ÃÒ)
-   (#x9762 ?Ãæ)
-   (#x9765 ?ØÌ)
-   (#x9769 ?¸ï)
-   (#x9773 ?½ù)
-   (#x9774 ?Ñ¥)
-   (#x9776 ?°Ã)
-   (#x977c ?÷°)
-   (#x9785 ?÷±)
-   (#x978b ?Ь)
-   (#x978d ?°°)
-   (#x9791 ?÷²)
-   (#x9792 ?÷³)
-   (#x9794 ?÷´)
-   (#x9798 ?ÇÊ)
-   (#x97a0 ?¾Ã)
-   (#x97a3 ?÷·)
-   (#x97ab ?֦)
-   (#x97ad ?±Þ)
-   (#x97af ?÷µ)
-   (#x97b2 ?÷¸)
-   (#x97b4 ?÷¹)
-   (#x97e6 ?Τ)
-   (#x97e7 ?ÈÃ)
-   (#x97e9 ?º«)
-   (#x97ea ?è¸)
-   (#x97eb ?è¹)
-   (#x97ec ?èº)
-   (#x97ed ?¾Â)
-   (#x97f3 ?Òô)
-   (#x97f5 ?ÔÃ)
-   (#x97f6 ?ÉØ)
-   (#x9875 ?Ò³)
-   (#x9876 ?¶¥)
-   (#x9877 ?Çê)
-   (#x9878 ?ñü)
-   (#x9879 ?Ãî)
-   (#x987a ?˳)
-   (#x987b ?Ãë)
-   (#x987c ?çï)
-   (#x987d ?Ãç)
-   (#x987e ?¹Ë)
-   (#x987f ?¶Ù)
-   (#x9880 ?ñý)
-   (#x9881 ?°ä)
-   (#x9882 ?ËÌ)
-   (#x9883 ?ñþ)
-   (#x9884 ?Ô¤)
-   (#x9885 ?­)
-   (#x9886 ?Ãì)
-   (#x9887 ?ÆÄ)
-   (#x9888 ?¾±)
-   (#x9889 ?ò¡)
-   (#x988a ?¼Õ)
-   (#x988c ?ò¢)
-   (#x988d ?ò£)
-   (#x988f ?ò¤)
-   (#x9890 ?ÒÃ)
-   (#x9891 ?Ƶ)
-   (#x9893 ?ÃÇ)
-   (#x9894 ?ò¥)
-   (#x9896 ?Ó±)
-   (#x9897 ?¿Å)
-   (#x9898 ?Ìâ)
-   (#x989a ?ò¦)
-   (#x989b ?ò§)
-   (#x989c ?ÑÕ)
-   (#x989d ?¶î)
-   (#x989e ?ò¨)
-   (#x989f ?ò©)
-   (#x98a0 ?µß)
-   (#x98a1 ?òª)
-   (#x98a2 ?ò«)
-   (#x98a4 ?²ü)
-   (#x98a5 ?ò¬)
-   (#x98a6 ?ò­)
-   (#x98a7 ?ȧ)
-   (#x98ce ?·ç)
-   (#x98d1 ?ì©)
-   (#x98d2 ?ìª)
-   (#x98d3 ?ì«)
-   (#x98d5 ?ì¬)
-   (#x98d8 ?Æ®)
-   (#x98d9 ?ì­)
-   (#x98da ?ì®)
-   (#x98de ?·É)
-   (#x98df ?ʳ)
-   (#x98e7 ?â¸)
-   (#x98e8 ?÷Ã)
-   (#x990d ?÷Ã)
-   (#x9910 ?²Ã)
-   (#x992e ?ք)
-   (#x9954 ?÷Ó)
-   (#x9955 ?÷Ò)
-   (#x9963 ?â»)
-   (#x9965 ?¼¢)
-   (#x9967 ?â¼)
-   (#x9968 ?â½)
-   (#x9969 ?â¾)
-   (#x996a ?â¿)
-   (#x996b ?âÀ)
-   (#x996c ?âÃ)
-   (#x996d ?·¹)
-   (#x996e ?Òû)
-   (#x996f ?½¤)
-   (#x9970 ?ÊÎ)
-   (#x9971 ?±¥)
-   (#x9972 ?ËÇ)
-   (#x9974 ?âÂ)
-   (#x9975 ?¶ü)
-   (#x9976 ?ÈÄ)
-   (#x9977 ?âÃ)
-   (#x997a ?½È)
-   (#x997c ?±ý)
-   (#x997d ?âÄ)
-   (#x997f ?¶ö)
-   (#x9980 ?âÅ)
-   (#x9981 ?ÄÙ)
-   (#x9984 ?âÆ)
-   (#x9985 ?ÃÚ)
-   (#x9986 ?¹Ã)
-   (#x9987 ?âÇ)
-   (#x9988 ?À¡)
-   (#x998a ?âÈ)
-   (#x998b ?²ö)
-   (#x998d ?âÉ)
-   (#x998f ?Ãó)
-   (#x9990 ?âÊ)
-   (#x9991 ?âË)
-   (#x9992 ?Âø)
-   (#x9993 ?âÌ)
-   (#x9994 ?âÃ)
-   (#x9995 ?âÎ)
-   (#x9996 ?Ê×)
-   (#x9997 ?ظ)
-   (#x9998 ?Ùå)
-   (#x9999 ?Ãã)
-   (#x99a5 ?ð¥)
-   (#x99a8 ?Ü°)
-   (#x9a6c ?Âí)
-   (#x9a6d ?Ô¦)
-   (#x9a6e ?ÃÔ)
-   (#x9a6f ?ѱ)
-   (#x9a70 ?³Û)
-   (#x9a71 ?Çý)
-   (#x9a73 ?²µ)
-   (#x9a74 ?¿)
-   (#x9a75 ?æà)
-   (#x9a76 ?Ê»)
-   (#x9a77 ?æá)
-   (#x9a78 ?æâ)
-   (#x9a79 ?¾Ô)
-   (#x9a7a ?æã)
-   (#x9a7b ?פ)
-   (#x9a7c ?ÃÕ)
-   (#x9a7d ?æå)
-   (#x9a7e ?¼Ã)
-   (#x9a7f ?æä)
-   (#x9a80 ?ææ)
-   (#x9a81 ?æç)
-   (#x9a82 ?Âî)
-   (#x9a84 ?½¾)
-   (#x9a85 ?æè)
-   (#x9a86 ?Âæ)
-   (#x9a87 ?º§)
-   (#x9a88 ?æé)
-   (#x9a8a ?æê)
-   (#x9a8b ?³Ò)
-   (#x9a8c ?Ñé)
-   (#x9a8f ?¿¥)
-   (#x9a90 ?æë)
-   (#x9a91 ?Æï)
-   (#x9a92 ?æì)
-   (#x9a93 ?æí)
-   (#x9a96 ?æî)
-   (#x9a97 ?Æ­)
-   (#x9a98 ?æï)
-   (#x9a9a ?ɧ)
-   (#x9a9b ?æð)
-   (#x9a9c ?æñ)
-   (#x9a9d ?æò)
-   (#x9a9e ?å¹)
-   (#x9a9f ?æó)
-   (#x9aa0 ?æô)
-   (#x9aa1 ?Ââ)
-   (#x9aa2 ?æõ)
-   (#x9aa3 ?æö)
-   (#x9aa4 ?Öè)
-   (#x9aa5 ?æ÷)
-   (#x9aa7 ?æø)
-   (#x9aa8 ?¹Ç)
-   (#x9ab0 ?÷»)
-   (#x9ab1 ?ּ)
-   (#x9ab6 ?÷¾)
-   (#x9ab7 ?÷¼)
-   (#x9ab8 ?º¡)
-   (#x9aba ?÷¿)
-   (#x9abc ?÷À)
-   (#x9ac0 ?÷Â)
-   (#x9ac1 ?÷Ã)
-   (#x9ac2 ?ր)
-   (#x9ac5 ?÷Ã)
-   (#x9acb ?ց)
-   (#x9acc ?֮)
-   (#x9ad1 ?ւ)
-   (#x9ad3 ?Ëè)
-   (#x9ad8 ?¸ß)
-   (#x9adf ?÷Ô)
-   (#x9ae1 ?÷Õ)
-   (#x9ae6 ?÷Ö)
-   (#x9aeb ?֯)
-   (#x9aed ?÷Ú)
-   (#x9aef ?÷×)
-   (#x9af9 ?÷Û)
-   (#x9afb ?÷Ù)
-   (#x9b03 ?××)
-   (#x9b08 ?ֆ)
-   (#x9b0f ?÷Ã)
-   (#x9b13 ?÷Þ)
-   (#x9b1f ?֧)
-   (#x9b23 ?ֈ)
-   (#x9b2f ?ÛË)
-   (#x9b32 ?ت)
-   (#x9b3b ?å÷)
-   (#x9b3c ?¹í)
-   (#x9b41 ?¿ý)
-   (#x9b42 ?Ȑ)
-   (#x9b43 ?փ)
-   (#x9b44 ?ÆÇ)
-   (#x9b45 ?÷È)
-   (#x9b47 ?÷Ê)
-   (#x9b48 ?÷Ì)
-   (#x9b49 ?÷Ë)
-   (#x9b4d ?÷Ã)
-   (#x9b4f ?κ)
-   (#x9b51 ?÷Î)
-   (#x9b54 ?ħ)
-   (#x9c7c ?Óã)
-   (#x9c7f ?öÃ)
-   (#x9c81 ?³)
-   (#x9c82 ?öÃ)
-   (#x9c85 ?öÑ)
-   (#x9c86 ?öÒ)
-   (#x9c87 ?öÓ)
-   (#x9c88 ?öÔ)
-   (#x9c8b ?öÖ)
-   (#x9c8d ?±«)
-   (#x9c8e ?ö×)
-   (#x9c90 ?öØ)
-   (#x9c91 ?öÙ)
-   (#x9c92 ?öÚ)
-   (#x9c94 ?öÛ)
-   (#x9c95 ?öÜ)
-   (#x9c9a ?öÃ)
-   (#x9c9b ?öÞ)
-   (#x9c9c ?ÃÊ)
-   (#x9c9e ?öß)
-   (#x9c9f ?öà)
-   (#x9ca0 ?öá)
-   (#x9ca1 ?öâ)
-   (#x9ca2 ?öã)
-   (#x9ca3 ?öä)
-   (#x9ca4 ?Àð)
-   (#x9ca5 ?öå)
-   (#x9ca6 ?öæ)
-   (#x9ca7 ?öç)
-   (#x9ca8 ?öè)
-   (#x9ca9 ?öé)
-   (#x9cab ?öê)
-   (#x9cad ?öë)
-   (#x9cae ?öì)
-   (#x9cb0 ?öí)
-   (#x9cb1 ?öî)
-   (#x9cb2 ?öï)
-   (#x9cb3 ?öð)
-   (#x9cb4 ?öñ)
-   (#x9cb5 ?öò)
-   (#x9cb6 ?öó)
-   (#x9cb7 ?öô)
-   (#x9cb8 ?¾¨)
-   (#x9cba ?öõ)
-   (#x9cbb ?öö)
-   (#x9cbc ?ö÷)
-   (#x9cbd ?öø)
-   (#x9cc3 ?Èú)
-   (#x9cc4 ?öù)
-   (#x9cc5 ?öú)
-   (#x9cc6 ?öû)
-   (#x9cc7 ?öü)
-   (#x9cca ?öý)
-   (#x9ccb ?öþ)
-   (#x9ccc ?÷¡)
-   (#x9ccd ?÷¢)
-   (#x9cce ?÷£)
-   (#x9ccf ?÷¤)
-   (#x9cd0 ?÷¥)
-   (#x9cd3 ?÷¦)
-   (#x9cd4 ?֤)
-   (#x9cd5 ?֬)
-   (#x9cd6 ?±î)
-   (#x9cd7 ?֩)
-   (#x9cd8 ?ֻ)
-   (#x9cd9 ?÷«)
-   (#x9cdc ?÷¬)
-   (#x9cdd ?÷­)
-   (#x9cde ?ÃÛ)
-   (#x9cdf ?÷®)
-   (#x9ce2 ?÷¯)
-   (#x9e1f ?Äñ)
-   (#x9e20 ?ð¯)
-   (#x9e21 ?¼¦)
-   (#x9e22 ?ð°)
-   (#x9e23 ?Ãù)
-   (#x9e25 ?Ÿ)
-   (#x9e26 ?Ñ»)
-   (#x9e28 ?ð±)
-   (#x9e29 ?ð²)
-   (#x9e2a ?ð³)
-   (#x9e2b ?ð´)
-   (#x9e2c ?ðµ)
-   (#x9e2d ?Ѽ)
-   (#x9e2f ?Ñì)
-   (#x9e31 ?ð·)
-   (#x9e32 ?ð¶)
-   (#x9e33 ?Ô§)
-   (#x9e35 ?ÃÃ’)
-   (#x9e36 ?ð¸)
-   (#x9e37 ?ðº)
-   (#x9e38 ?ð¹)
-   (#x9e39 ?ð»)
-   (#x9e3a ?ð¼)
-   (#x9e3d ?¸ë)
-   (#x9e3e ?ð½)
-   (#x9e3f ?ºè)
-   (#x9e41 ?ð¾)
-   (#x9e42 ?ð¿)
-   (#x9e43 ?¾é)
-   (#x9e44 ?ðÀ)
-   (#x9e45 ?¶ì)
-   (#x9e46 ?ðÃ)
-   (#x9e47 ?ðÂ)
-   (#x9e48 ?ðÃ)
-   (#x9e49 ?ðÄ)
-   (#x9e4a ?ȵ)
-   (#x9e4b ?ðÅ)
-   (#x9e4c ?ðÆ)
-   (#x9e4e ?ðÇ)
-   (#x9e4f ?Åô)
-   (#x9e51 ?ðÈ)
-   (#x9e55 ?ðÉ)
-   (#x9e57 ?ðÊ)
-   (#x9e58 ?÷½)
-   (#x9e5a ?ðË)
-   (#x9e5b ?ðÌ)
-   (#x9e5c ?ðÃ)
-   (#x9e5e ?ðÎ)
-   (#x9e63 ?ðÃ)
-   (#x9e64 ?º×)
-   (#x9e66 ?ðÃ)
-   (#x9e67 ?ðÑ)
-   (#x9e68 ?ðÒ)
-   (#x9e69 ?ðÓ)
-   (#x9e6a ?ðÔ)
-   (#x9e6b ?ðÕ)
-   (#x9e6c ?ðÖ)
-   (#x9e6d ?ðØ)
-   (#x9e70 ?Ó¥)
-   (#x9e71 ?ð×)
-   (#x9e73 ?ðÙ)
-   (#x9e7e ?õº)
-   (#x9e7f ?¹)
-   (#x9e82 ?֊)
-   (#x9e87 ?֌)
-   (#x9e88 ?־)
-   (#x9e8b ?֍)
-   (#x9e92 ?֏)
-   (#x9e93 ?´)
-   (#x9e9d ?֐)
-   (#x9e9f ?֑)
-   (#x9ea6 ?Âó)
-   (#x9eb4 ?ôð)
-   (#x9eb8 ?ôï)
-   (#x9ebb ?Âé)
-   (#x9ebd ?և)
-   (#x9ebe ?։)
-   (#x9ec4 ?Ȯ)
-   (#x9ec9 ?Ùä)
-   (#x9ecd ?Êò)
-   (#x9ece ?Àè)
-   (#x9ecf ?ð¤)
-   (#x9ed1 ?ºÚ)
-   (#x9ed4 ?Ç­)
-   (#x9ed8 ?Ĭ)
-   (#x9edb ?֓)
-   (#x9edc ?֒)
-   (#x9edd ?֔)
-   (#x9edf ?÷ð)
-   (#x9ee0 ?֕)
-   (#x9ee2 ?֖)
-   (#x9ee5 ?÷ô)
-   (#x9ee7 ?÷ó)
-   (#x9ee9 ?÷ò)
-   (#x9eea ?÷õ)
-   (#x9eef ?÷ö)
-   (#x9ef9 ?íé)
-   (#x9efb ?íê)
-   (#x9efc ?íë)
-   (#x9efe ?ö¼)
-   (#x9f0b ?ö½)
-   (#x9f0d ?ö¾)
-   (#x9f0e ?¶¦)
-   (#x9f10 ?ؾ)
-   (#x9f13 ?¹Ä)
-   (#x9f17 ?Ø»)
-   (#x9f19 ?ܱ)
-   (#x9f20 ?Êó)
-   (#x9f22 ?÷÷)
-   (#x9f2c ?÷ø)
-   (#x9f2f ?÷ù)
-   (#x9f37 ?÷û)
-   (#x9f39 ?÷ú)
-   (#x9f3b ?±Ç)
-   (#x9f3d ?֟)
-   (#x9f3e ?÷ý)
-   (#x9f44 ?÷þ)
-   (#x9f50 ?Æë)
-   (#x9f51 ?ì´)
-   (#x9f7f ?³Ã)
-   (#x9f80 ?ö³)
-   (#x9f83 ?ö´)
-   (#x9f84 ?Ãä)
-   (#x9f85 ?öµ)
-   (#x9f86 ?ö¶)
-   (#x9f87 ?ö·)
-   (#x9f88 ?ö¸)
-   (#x9f89 ?ö¹)
-   (#x9f8a ?öº)
-   (#x9f8b ?È£)
-   (#x9f8c ?ö»)
-   (#x9f99 ?Ãú)
-   (#x9f9a ?¹¨)
-   (#x9f9b ?íè)
-   (#x9f9f ?¹ê)
-   (#x9fa0 ?Ùß)
-   (#xff01 ?£¡)
-   (#xff02 ?£¢)
-   (#xff03 ?££)
-   (#xff04 ?¡ç)
-   (#xff05 ?£¥)
-   (#xff06 ?£¦)
-   (#xff07 ?£§)
-   (#xff08 ?\£¨)
-   (#xff09 ?\£©)
-   (#xff0a ?£ª)
-   (#xff0b ?£«)
-   (#xff0c ?£¬)
-   (#xff0d ?£­)
-   (#xff0e ?£®)
-   (#xff0f ?£¯)
-   (#xff10 ?£°)
-   (#xff11 ?£±)
-   (#xff12 ?£²)
-   (#xff13 ?£³)
-   (#xff14 ?£´)
-   (#xff15 ?£µ)
-   (#xff16 ?£¶)
-   (#xff17 ?£·)
-   (#xff18 ?£¸)
-   (#xff19 ?£¹)
-   (#xff1a ?£º)
-   (#xff1b ?£»)
-   (#xff1c ?£¼)
-   (#xff1d ?£½)
-   (#xff1e ?£¾)
-   (#xff1f ?£¿)
-   (#xff20 ?£À)
-   (#xff21 ?£Ã)
-   (#xff22 ?£Â)
-   (#xff23 ?£Ã)
-   (#xff24 ?£Ä)
-   (#xff25 ?£Å)
-   (#xff26 ?£Æ)
-   (#xff27 ?£Ç)
-   (#xff28 ?£È)
-   (#xff29 ?£É)
-   (#xff2a ?£Ê)
-   (#xff2b ?£Ë)
-   (#xff2c ?£Ì)
-   (#xff2d ?£Ã)
-   (#xff2e ?£Î)
-   (#xff2f ?£Ã)
-   (#xff30 ?£Ã)
-   (#xff31 ?£Ñ)
-   (#xff32 ?£Ò)
-   (#xff33 ?£Ó)
-   (#xff34 ?£Ô)
-   (#xff35 ?£Õ)
-   (#xff36 ?£Ö)
-   (#xff37 ?£×)
-   (#xff38 ?£Ø)
-   (#xff39 ?£Ù)
-   (#xff3a ?£Ú)
-   (#xff3b ?\£Û)
-   (#xff3c ?£Ü)
-   (#xff3d ?\£Ã)
-   (#xff3e ?£Þ)
-   (#xff3f ?£ß)
-   (#xff40 ?£à)
-   (#xff41 ?£á)
-   (#xff42 ?£â)
-   (#xff43 ?£ã)
-   (#xff44 ?£ä)
-   (#xff45 ?£å)
-   (#xff46 ?£æ)
-   (#xff47 ?£ç)
-   (#xff48 ?£è)
-   (#xff49 ?£é)
-   (#xff4a ?£ê)
-   (#xff4b ?£ë)
-   (#xff4c ?£ì)
-   (#xff4d ?£í)
-   (#xff4e ?£î)
-   (#xff4f ?£ï)
-   (#xff50 ?£ð)
-   (#xff51 ?£ñ)
-   (#xff52 ?£ò)
-   (#xff53 ?£ó)
-   (#xff54 ?£ô)
-   (#xff55 ?£õ)
-   (#xff56 ?£ö)
-   (#xff57 ?£÷)
-   (#xff58 ?£ø)
-   (#xff59 ?£ù)
-   (#xff5a ?£ú)
-   (#xff5b ?\£û)
-   (#xff5c ?£ü)
-   (#xff5d ?\£ý)
-   (#xff5e ?¡«)
-   (#xffe0 ?¡é)
-   (#xffe1 ?¡ê)
-   (#xffe3 ?£þ)
-   (#xffe5 ?£¤)))
-
-;;; arch-tag: 369bc330-663d-4cc0-8ca9-45567586fb04
-;;; subst-gb2312.el ends here
diff --git a/lisp/international/subst-jis.el b/lisp/international/subst-jis.el
deleted file mode 100644 (file)
index af13a95..0000000
+++ /dev/null
@@ -1,13077 +0,0 @@
-;;; subst-jis.el --- Unicode/JISX translation    -*-coding: euc-jp;-*-
-
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-;; Copyright (C) 2004, 2005, 2006, 2007
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H14PRO021
-
-;; Author: Dave Love <fx@gnu.org>
-;; Keywords: i18n
-
-;; This file 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 file 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Provides translation tables between Unicode and
-;; japanese-jisx0208/japanese-jisx0212 charsets for use by the
-;; `utf-translate-cjk-mode' option.
-
-;;; Code:
-
-;; Derived in Emacs 22 using
-;; (map-charset-chars
-;;  (lambda (range arg)
-;;    (let ((i (car range))
-;;      c)
-;;      (while (<= i (cdr range))
-;;        (setq c (encode-char i 'ucs))
-;;        (if c
-;;        (if (or (memq (char-syntax c) '(?\( ?\" ?\) ?\;))
-;;                (insert "(" (format "#x%x ?\\%c" c c) ")\n")
-;;                (insert "(" (format "#x%x ?%c" c c) ")\n")))
-;;      (setq i (1+ i))))))
-;;  'japanese-jisx0208)
-;; and similarly.
-
-(mapc
- (lambda (pair)
-   (let ((unicode (car pair))
-        (char (cadr pair))
-        (tail utf-translate-cjk-unicode-range))
-     ;; exclude non-supporting components from decode table
-     (if (utf-translate-cjk-substitutable-p unicode)
-        (puthash unicode char ucs-unicode-to-mule-cjk))
-     (puthash char unicode ucs-mule-cjk-to-unicode)))
- '(
-   ;; jisx0208
-   (#xa2 ?¡ñ)
-   (#xa3 ?¡ò)
-   (#xa7 ?¡ø)
-   (#xa8 ?¡¯)
-   (#xac ?¢Ì)
-   (#xb0 ?¡ë)
-   (#xb1 ?¡Þ)
-   (#xb4 ?¡­)
-   (#xb6 ?¢ù)
-   (#xd7 ?¡ß)
-   (#xf7 ?¡à)
-   (#x391 ?¦¡)
-   (#x392 ?¦¢)
-   (#x393 ?¦£)
-   (#x394 ?¦¤)
-   (#x395 ?¦¥)
-   (#x396 ?¦¦)
-   (#x397 ?¦§)
-   (#x398 ?¦¨)
-   (#x399 ?¦©)
-   (#x39a ?¦ª)
-   (#x39b ?¦«)
-   (#x39c ?¦¬)
-   (#x39d ?¦­)
-   (#x39e ?¦®)
-   (#x39f ?¦¯)
-   (#x3a0 ?¦°)
-   (#x3a1 ?¦±)
-   (#x3a3 ?¦²)
-   (#x3a4 ?¦³)
-   (#x3a5 ?¦´)
-   (#x3a6 ?¦µ)
-   (#x3a7 ?¦¶)
-   (#x3a8 ?¦·)
-   (#x3a9 ?¦¸)
-   (#x3b1 ?¦Ã)
-   (#x3b2 ?¦Â)
-   (#x3b3 ?¦Ã)
-   (#x3b4 ?¦Ä)
-   (#x3b5 ?¦Å)
-   (#x3b6 ?¦Æ)
-   (#x3b7 ?¦Ç)
-   (#x3b8 ?¦È)
-   (#x3b9 ?¦É)
-   (#x3ba ?¦Ê)
-   (#x3bb ?¦Ë)
-   (#x3bc ?¦Ì)
-   (#x3bd ?¦Ã)
-   (#x3be ?¦Î)
-   (#x3bf ?¦Ã)
-   (#x3c0 ?¦Ã)
-   (#x3c1 ?¦Ñ)
-   (#x3c3 ?¦Ò)
-   (#x3c4 ?¦Ó)
-   (#x3c5 ?¦Ô)
-   (#x3c6 ?¦Õ)
-   (#x3c7 ?¦Ö)
-   (#x3c8 ?¦×)
-   (#x3c9 ?¦Ø)
-   (#x401 ?§§)
-   (#x410 ?§¡)
-   (#x411 ?§¢)
-   (#x412 ?§£)
-   (#x413 ?§¤)
-   (#x414 ?§¥)
-   (#x415 ?§¦)
-   (#x416 ?§¨)
-   (#x417 ?§©)
-   (#x418 ?§ª)
-   (#x419 ?§«)
-   (#x41a ?§¬)
-   (#x41b ?§­)
-   (#x41c ?§®)
-   (#x41d ?§¯)
-   (#x41e ?§°)
-   (#x41f ?§±)
-   (#x420 ?§²)
-   (#x421 ?§³)
-   (#x422 ?§´)
-   (#x423 ?§µ)
-   (#x424 ?§¶)
-   (#x425 ?§·)
-   (#x426 ?§¸)
-   (#x427 ?§¹)
-   (#x428 ?§º)
-   (#x429 ?§»)
-   (#x42a ?§¼)
-   (#x42b ?§½)
-   (#x42c ?§¾)
-   (#x42d ?§¿)
-   (#x42e ?§À)
-   (#x42f ?§Ã)
-   (#x430 ?§Ñ)
-   (#x431 ?§Ò)
-   (#x432 ?§Ó)
-   (#x433 ?§Ô)
-   (#x434 ?§Õ)
-   (#x435 ?§Ö)
-   (#x436 ?§Ø)
-   (#x437 ?§Ù)
-   (#x438 ?§Ú)
-   (#x439 ?§Û)
-   (#x43a ?§Ü)
-   (#x43b ?§Ã)
-   (#x43c ?§Þ)
-   (#x43d ?§ß)
-   (#x43e ?§à)
-   (#x43f ?§á)
-   (#x440 ?§â)
-   (#x441 ?§ã)
-   (#x442 ?§ä)
-   (#x443 ?§å)
-   (#x444 ?§æ)
-   (#x445 ?§ç)
-   (#x446 ?§è)
-   (#x447 ?§é)
-   (#x448 ?§ê)
-   (#x449 ?§ë)
-   (#x44a ?§ì)
-   (#x44b ?§í)
-   (#x44c ?§î)
-   (#x44d ?§ï)
-   (#x44e ?§ð)
-   (#x44f ?§ñ)
-   (#x451 ?§×)
-   (#x2010 ?¡¾)
-   (#x2015 ?¡½)
-   (#x2016 ?¡Â)
-   (#x2018 ?¡Æ)
-   (#x2019 ?¡Ç)
-   (#x201c ?¡È)
-   (#x201d ?¡É)
-   (#x2020 ?¢÷)
-   (#x2021 ?¢ø)
-   (#x2025 ?¡Å)
-   (#x2026 ?¡Ä)
-   (#x2030 ?¢ó)
-   (#x2032 ?¡ì)
-   (#x2033 ?¡í)
-   (#x203b ?¢¨)
-   (#x2103 ?¡î)
-   (#x212b ?¢ò)
-   (#x2190 ?¢«)
-   (#x2191 ?¢¬)
-   (#x2192 ?¢ª)
-   (#x2193 ?¢­)
-   (#x21d2 ?¢Ã)
-   (#x21d4 ?¢Î)
-   (#x2200 ?¢Ã)
-   (#x2202 ?¢ß)
-   (#x2203 ?¢Ã)
-   (#x2207 ?¢à)
-   (#x2208 ?¢º)
-   (#x220b ?¢»)
-   (#x2212 ?¡Ã)
-   (#x221a ?¢å)
-   (#x221d ?¢ç)
-   (#x221e ?¡ç)
-   (#x2220 ?¢Ü)
-   (#x2227 ?¢Ê)
-   (#x2228 ?¢Ë)
-   (#x2229 ?¢Ã)
-   (#x222a ?¢À)
-   (#x222b ?¢é)
-   (#x222c ?¢ê)
-   (#x2234 ?¡è)
-   (#x2235 ?¢è)
-   (#x223d ?¢æ)
-   (#x2252 ?¢â)
-   (#x2260 ?¡â)
-   (#x2261 ?¢á)
-   (#x2266 ?¡å)
-   (#x2267 ?¡æ)
-   (#x226a ?¢ã)
-   (#x226b ?¢ä)
-   (#x2282 ?¢¾)
-   (#x2283 ?¢¿)
-   (#x2286 ?¢¼)
-   (#x2287 ?¢½)
-   (#x22a5 ?¢Ã)
-   (#x2312 ?¢Þ)
-   (#x2500 ?¨¡)
-   (#x2501 ?¨¬)
-   (#x2502 ?¨¢)
-   (#x2503 ?¨­)
-   (#x250c ?¨£)
-   (#x250f ?¨®)
-   (#x2510 ?¨¤)
-   (#x2513 ?¨¯)
-   (#x2514 ?¨¦)
-   (#x2517 ?¨±)
-   (#x2518 ?¨¥)
-   (#x251b ?¨°)
-   (#x251c ?¨§)
-   (#x251d ?¨¼)
-   (#x2520 ?¨·)
-   (#x2523 ?¨²)
-   (#x2524 ?¨©)
-   (#x2525 ?¨¾)
-   (#x2528 ?¨¹)
-   (#x252b ?¨´)
-   (#x252c ?¨¨)
-   (#x252f ?¨¸)
-   (#x2530 ?¨½)
-   (#x2533 ?¨³)
-   (#x2534 ?¨ª)
-   (#x2537 ?¨º)
-   (#x2538 ?¨¿)
-   (#x253b ?¨µ)
-   (#x253c ?¨«)
-   (#x253f ?¨»)
-   (#x2542 ?¨À)
-   (#x254b ?¨¶)
-   (#x25a0 ?¢£)
-   (#x25a1 ?¢¢)
-   (#x25b2 ?¢¥)
-   (#x25b3 ?¢¤)
-   (#x25bc ?¢§)
-   (#x25bd ?¢¦)
-   (#x25c6 ?¢¡)
-   (#x25c7 ?¡þ)
-   (#x25cb ?¡û)
-   (#x25ce ?¡ý)
-   (#x25cf ?¡ü)
-   (#x25ef ?¢þ)
-   (#x2605 ?¡ú)
-   (#x2606 ?¡ù)
-   (#x2640 ?¡ê)
-   (#x2642 ?¡é)
-   (#x266a ?¢ö)
-   (#x266d ?¢õ)
-   (#x266f ?¢ô)
-   (#x3000 ?¡¡)
-   (#x3001 ?¡¢)
-   (#x3002 ?¡£)
-   (#x3003 ?¡·)
-   (#x3005 ?¡¹)
-   (#x3006 ?¡º)
-   (#x3007 ?¡»)
-   (#x3008 ?\¡Ò)
-   (#x3009 ?\¡Ó)
-   (#x300a ?\¡Ô)
-   (#x300b ?\¡Õ)
-   (#x300c ?\¡Ö)
-   (#x300d ?\¡×)
-   (#x300e ?\¡Ø)
-   (#x300f ?\¡Ù)
-   (#x3010 ?\¡Ú)
-   (#x3011 ?\¡Û)
-   (#x3012 ?¢©)
-   (#x3013 ?¢®)
-   (#x3014 ?\¡Ì)
-   (#x3015 ?\¡Ã)
-   (#x301c ?¡Ã)
-   (#x3041 ?¤¡)
-   (#x3042 ?¤¢)
-   (#x3043 ?¤£)
-   (#x3044 ?¤¤)
-   (#x3045 ?¤¥)
-   (#x3046 ?¤¦)
-   (#x3047 ?¤§)
-   (#x3048 ?¤¨)
-   (#x3049 ?¤©)
-   (#x304a ?¤ª)
-   (#x304b ?¤«)
-   (#x304c ?¤¬)
-   (#x304d ?¤­)
-   (#x304e ?¤®)
-   (#x304f ?¤¯)
-   (#x3050 ?¤°)
-   (#x3051 ?¤±)
-   (#x3052 ?¤²)
-   (#x3053 ?¤³)
-   (#x3054 ?¤´)
-   (#x3055 ?¤µ)
-   (#x3056 ?¤¶)
-   (#x3057 ?¤·)
-   (#x3058 ?¤¸)
-   (#x3059 ?¤¹)
-   (#x305a ?¤º)
-   (#x305b ?¤»)
-   (#x305c ?¤¼)
-   (#x305d ?¤½)
-   (#x305e ?¤¾)
-   (#x305f ?¤¿)
-   (#x3060 ?¤À)
-   (#x3061 ?¤Ã)
-   (#x3062 ?¤Â)
-   (#x3063 ?¤Ã)
-   (#x3064 ?¤Ä)
-   (#x3065 ?¤Å)
-   (#x3066 ?¤Æ)
-   (#x3067 ?¤Ç)
-   (#x3068 ?¤È)
-   (#x3069 ?¤É)
-   (#x306a ?¤Ê)
-   (#x306b ?¤Ë)
-   (#x306c ?¤Ì)
-   (#x306d ?¤Ã)
-   (#x306e ?¤Î)
-   (#x306f ?¤Ã)
-   (#x3070 ?¤Ã)
-   (#x3071 ?¤Ñ)
-   (#x3072 ?¤Ò)
-   (#x3073 ?¤Ó)
-   (#x3074 ?¤Ô)
-   (#x3075 ?¤Õ)
-   (#x3076 ?¤Ö)
-   (#x3077 ?¤×)
-   (#x3078 ?¤Ø)
-   (#x3079 ?¤Ù)
-   (#x307a ?¤Ú)
-   (#x307b ?¤Û)
-   (#x307c ?¤Ü)
-   (#x307d ?¤Ã)
-   (#x307e ?¤Þ)
-   (#x307f ?¤ß)
-   (#x3080 ?¤à)
-   (#x3081 ?¤á)
-   (#x3082 ?¤â)
-   (#x3083 ?¤ã)
-   (#x3084 ?¤ä)
-   (#x3085 ?¤å)
-   (#x3086 ?¤æ)
-   (#x3087 ?¤ç)
-   (#x3088 ?¤è)
-   (#x3089 ?¤é)
-   (#x308a ?¤ê)
-   (#x308b ?¤ë)
-   (#x308c ?¤ì)
-   (#x308d ?¤í)
-   (#x308e ?¤î)
-   (#x308f ?¤ï)
-   (#x3090 ?¤ð)
-   (#x3091 ?¤ñ)
-   (#x3092 ?¤ò)
-   (#x3093 ?¤ó)
-   (#x309b ?¡«)
-   (#x309c ?¡¬)
-   (#x309d ?¡µ)
-   (#x309e ?¡¶)
-   (#x30a1 ?¥¡)
-   (#x30a2 ?¥¢)
-   (#x30a3 ?¥£)
-   (#x30a4 ?¥¤)
-   (#x30a5 ?¥¥)
-   (#x30a6 ?¥¦)
-   (#x30a7 ?¥§)
-   (#x30a8 ?¥¨)
-   (#x30a9 ?¥©)
-   (#x30aa ?¥ª)
-   (#x30ab ?¥«)
-   (#x30ac ?¥¬)
-   (#x30ad ?¥­)
-   (#x30ae ?¥®)
-   (#x30af ?¥¯)
-   (#x30b0 ?¥°)
-   (#x30b1 ?¥±)
-   (#x30b2 ?¥²)
-   (#x30b3 ?¥³)
-   (#x30b4 ?¥´)
-   (#x30b5 ?¥µ)
-   (#x30b6 ?¥¶)
-   (#x30b7 ?¥·)
-   (#x30b8 ?¥¸)
-   (#x30b9 ?¥¹)
-   (#x30ba ?¥º)
-   (#x30bb ?¥»)
-   (#x30bc ?¥¼)
-   (#x30bd ?¥½)
-   (#x30be ?¥¾)
-   (#x30bf ?¥¿)
-   (#x30c0 ?¥À)
-   (#x30c1 ?Â¥Ã)
-   (#x30c2 ?¥Â)
-   (#x30c3 ?¥Ã)
-   (#x30c4 ?¥Ä)
-   (#x30c5 ?¥Å)
-   (#x30c6 ?¥Æ)
-   (#x30c7 ?¥Ç)
-   (#x30c8 ?¥È)
-   (#x30c9 ?¥É)
-   (#x30ca ?¥Ê)
-   (#x30cb ?¥Ë)
-   (#x30cc ?¥Ì)
-   (#x30cd ?Â¥Ã)
-   (#x30ce ?¥Î)
-   (#x30cf ?Â¥Ã)
-   (#x30d0 ?Â¥Ã)
-   (#x30d1 ?¥Ñ)
-   (#x30d2 ?¥Ò)
-   (#x30d3 ?¥Ó)
-   (#x30d4 ?¥Ô)
-   (#x30d5 ?¥Õ)
-   (#x30d6 ?¥Ö)
-   (#x30d7 ?¥×)
-   (#x30d8 ?¥Ø)
-   (#x30d9 ?¥Ù)
-   (#x30da ?¥Ú)
-   (#x30db ?¥Û)
-   (#x30dc ?¥Ü)
-   (#x30dd ?Â¥Ã)
-   (#x30de ?¥Þ)
-   (#x30df ?¥ß)
-   (#x30e0 ?¥à)
-   (#x30e1 ?¥á)
-   (#x30e2 ?¥â)
-   (#x30e3 ?¥ã)
-   (#x30e4 ?¥ä)
-   (#x30e5 ?¥å)
-   (#x30e6 ?¥æ)
-   (#x30e7 ?¥ç)
-   (#x30e8 ?¥è)
-   (#x30e9 ?¥é)
-   (#x30ea ?¥ê)
-   (#x30eb ?¥ë)
-   (#x30ec ?¥ì)
-   (#x30ed ?¥í)
-   (#x30ee ?¥î)
-   (#x30ef ?¥ï)
-   (#x30f0 ?¥ð)
-   (#x30f1 ?¥ñ)
-   (#x30f2 ?¥ò)
-   (#x30f3 ?¥ó)
-   (#x30f4 ?¥ô)
-   (#x30f5 ?¥õ)
-   (#x30f6 ?¥ö)
-   (#x30fb ?¡¦)
-   (#x30fc ?¡¼)
-   (#x30fd ?¡³)
-   (#x30fe ?¡´)
-   (#x4e00 ?°ì)
-   (#x4e01 ?Ãú)
-   (#x4e03 ?¼·)
-   (#x4e07 ?Ëü)
-   (#x4e08 ?¾æ)
-   (#x4e09 ?»°)
-   (#x4e0a ?¾å)
-   (#x4e0b ?²¼)
-   (#x4e0d ?ÉÔ)
-   (#x4e0e ?Í¿)
-   (#x4e10 ?Т)
-   (#x4e11 ?±¯)
-   (#x4e14 ?³î)
-   (#x4e15 ?У)
-   (#x4e16 ?À¤)
-   (#x4e17 ?ÒÂ)
-   (#x4e18 ?µÖ)
-   (#x4e19 ?ʺ)
-   (#x4e1e ?¾ç)
-   (#x4e21 ?ξ)
-   (#x4e26 ?ÊÂ)
-   (#x4e2a ?Ф)
-   (#x4e2d ?Ãæ)
-   (#x4e31 ?Ð¥)
-   (#x4e32 ?¶ú)
-   (#x4e36 ?Ц)
-   (#x4e38 ?´Ã)
-   (#x4e39 ?ð)
-   (#x4e3b ?¼ç)
-   (#x4e3c ?Ч)
-   (#x4e3f ?Ш)
-   (#x4e42 ?Щ)
-   (#x4e43 ?ǵ)
-   (#x4e45 ?µ×)
-   (#x4e4b ?Ç·)
-   (#x4e4d ?Æã)
-   (#x4e4e ?¸Ã)
-   (#x4e4f ?˳)
-   (#x4e55 ?éÉ)
-   (#x4e56 ?Ъ)
-   (#x4e57 ?¾è)
-   (#x4e58 ?Ы)
-   (#x4e59 ?²µ)
-   (#x4e5d ?¶å)
-   (#x4e5e ?¸ð)
-   (#x4e5f ?Ìé)
-   (#x4e62 ?Ö¦)
-   (#x4e71 ?Ãð)
-   (#x4e73 ?Æý)
-   (#x4e7e ?´¥)
-   (#x4e80 ?µµ)
-   (#x4e82 ?Ь)
-   (#x4e85 ?Э)
-   (#x4e86 ?λ)
-   (#x4e88 ?ͽ)
-   (#x4e89 ?Ãè)
-   (#x4e8a ?Я)
-   (#x4e8b ?»ö)
-   (#x4e8c ?Æó)
-   (#x4e8e ?в)
-   (#x4e91 ?±¾)
-   (#x4e92 ?¸ß)
-   (#x4e94 ?¸Þ)
-   (#x4e95 ?°æ)
-   (#x4e98 ?ÃË)
-   (#x4e99 ?ÃÊ)
-   (#x4e9b ?º³)
-   (#x4e9c ?°¡)
-   (#x4e9e ?г)
-   (#x4e9f ?д)
-   (#x4ea0 ?е)
-   (#x4ea1 ?Ë´)
-   (#x4ea2 ?ж)
-   (#x4ea4 ?¸ò)
-   (#x4ea5 ?°ç)
-   (#x4ea6 ?Ëò)
-   (#x4ea8 ?µü)
-   (#x4eab ?µý)
-   (#x4eac ?µþ)
-   (#x4ead ?Äâ)
-   (#x4eae ?μ)
-   (#x4eb0 ?з)
-   (#x4eb3 ?и)
-   (#x4eb6 ?й)
-   (#x4eba ?¿Ã)
-   (#x4ec0 ?½º)
-   (#x4ec1 ?¿Î)
-   (#x4ec2 ?о)
-   (#x4ec4 ?м)
-   (#x4ec6 ?н)
-   (#x4ec7 ?µØ)
-   (#x4eca ?º£)
-   (#x4ecb ?²ð)
-   (#x4ecd ?л)
-   (#x4ece ?к)
-   (#x4ecf ?Ê©)
-   (#x4ed4 ?Ȯ)
-   (#x4ed5 ?ȁ)
-   (#x4ed6 ?¾)
-   (#x4ed7 ?п)
-   (#x4ed8 ?ÉÕ)
-   (#x4ed9 ?Àç)
-   (#x4edd ?¡¸)
-   (#x4ede ?ÃÀ)
-   (#x4edf ?ÃÂ)
-   (#x4ee3 ?Âå)
-   (#x4ee4 ?Îá)
-   (#x4ee5 ?°Ê)
-   (#x4eed ?ÃÃ)
-   (#x4eee ?²¾)
-   (#x4ef0 ?¶Ä)
-   (#x4ef2 ?Ãç)
-   (#x4ef6 ?·ï)
-   (#x4ef7 ?ÃÃ)
-   (#x4efb ?Ǥ)
-   (#x4f01 ?´ë)
-   (#x4f09 ?ÃÄ)
-   (#x4f0a ?°Ë)
-   (#x4f0d ?¸à)
-   (#x4f0e ?´ì)
-   (#x4f0f ?Éú)
-   (#x4f10 ?Ȳ)
-   (#x4f11 ?µÙ)
-   (#x4f1a ?²ñ)
-   (#x4f1c ?Ãç)
-   (#x4f1d ?Ã…Ã)
-   (#x4f2f ?Çì)
-   (#x4f30 ?ÃÆ)
-   (#x4f34 ?ȼ)
-   (#x4f36 ?Îâ)
-   (#x4f38 ?¿­)
-   (#x4f3a ?Ȃ)
-   (#x4f3c ?»÷)
-   (#x4f3d ?²À)
-   (#x4f43 ?ÄÑ)
-   (#x4f46 ?â)
-   (#x4f47 ?ÃÊ)
-   (#x4f4d ?°Ì)
-   (#x4f4e ?Äã)
-   (#x4f4f ?½»)
-   (#x4f50 ?º´)
-   (#x4f51 ?ͤ)
-   (#x4f53 ?ÂÎ)
-   (#x4f55 ?²¿)
-   (#x4f57 ?ÃÉ)
-   (#x4f59 ?;)
-   (#x4f5a ?ÃÃ…)
-   (#x4f5b ?ÃÇ)
-   (#x4f5c ?ºî)
-   (#x4f5d ?ÃÈ)
-   (#x4f5e ?Õ¤)
-   (#x4f69 ?ÃÃ)
-   (#x4f6f ?ÃÓ)
-   (#x4f70 ?ÃÑ)
-   (#x4f73 ?²Â)
-   (#x4f75 ?Ê»)
-   (#x4f76 ?ÃË)
-   (#x4f7b ?ÃÃ)
-   (#x4f7c ?¸ó)
-   (#x4f7f ?»È)
-   (#x4f83 ?´¦)
-   (#x4f86 ?ÃÔ)
-   (#x4f88 ?ÃÃŒ)
-   (#x4f8b ?Îã)
-   (#x4f8d ?»ø)
-   (#x4f8f ?ÃÃ)
-   (#x4f91 ?ÃÃ’)
-   (#x4f96 ?ÃÕ)
-   (#x4f98 ?ÃÃŽ)
-   (#x4f9b ?¶¡)
-   (#x4f9d ?°Ã)
-   (#x4fa0 ?¶¢)
-   (#x4fa1 ?²Ã)
-   (#x4fab ?Õ¥)
-   (#x4fad ?Ëù)
-   (#x4fae ?Éî)
-   (#x4faf ?¸ô)
-   (#x4fb5 ?¿¯)
-   (#x4fb6 ?η)
-   (#x4fbf ?ÊØ)
-   (#x4fc2 ?·¸)
-   (#x4fc3 ?Â¥)
-   (#x4fc4 ?²ä)
-   (#x4fca ?½Ó)
-   (#x4fce ?ÃÙ)
-   (#x4fd0 ?ÃÞ)
-   (#x4fd1 ?ÃÃœ)
-   (#x4fd4 ?Ã×)
-   (#x4fd7 ?¯)
-   (#x4fd8 ?ÃÚ)
-   (#x4fda ?ÃÃ)
-   (#x4fdb ?ÃÛ)
-   (#x4fdd ?ÊÃ)
-   (#x4fdf ?ÃØ)
-   (#x4fe1 ?¿®)
-   (#x4fe3 ?Ëó)
-   (#x4fe4 ?Ãß)
-   (#x4fe5 ?Ãà)
-   (#x4fee ?½¤)
-   (#x4fef ?Ãí)
-   (#x4ff3 ?ÇÃ)
-   (#x4ff5 ?ɶ)
-   (#x4ff6 ?Ãè)
-   (#x4ff8 ?Êð)
-   (#x4ffa ?²¶)
-   (#x4ffe ?Ãì)
-   (#x5005 ?Ãæ)
-   (#x5006 ?Ãï)
-   (#x5009 ?ÃÃ’)
-   (#x500b ?¸Ä)
-   (#x500d ?ÇÜ)
-   (#x500f ?àÇ)
-   (#x5011 ?Ãî)
-   (#x5012 ?Ã…Ã)
-   (#x5014 ?Ãã)
-   (#x5016 ?¸ö)
-   (#x5019 ?¸õ)
-   (#x501a ?Ãá)
-   (#x501f ?¼Ú)
-   (#x5021 ?Ãé)
-   (#x5023 ?Êï)
-   (#x5024 ?ÃÃ)
-   (#x5025 ?ÃÃ¥)
-   (#x5026 ?·ñ)
-   (#x5028 ?Ãâ)
-   (#x5029 ?Ãê)
-   (#x502a ?Ãä)
-   (#x502b ?ÎÑ)
-   (#x502c ?Ãë)
-   (#x502d ?ÃÃ)
-   (#x5036 ?¶æ)
-   (#x5039 ?·ð)
-   (#x5043 ?Ãð)
-   (#x5047 ?Ãñ)
-   (#x5048 ?Ãõ)
-   (#x5049 ?°Î)
-   (#x504f ?ÊÃ)
-   (#x5050 ?Ãô)
-   (#x5055 ?Ãó)
-   (#x5056 ?Ã÷)
-   (#x505a ?Ãö)
-   (#x505c ?Ää)
-   (#x5065 ?·ò)
-   (#x506c ?Ãø)
-   (#x5072 ?¼Å)
-   (#x5074 ?¦)
-   (#x5075 ?Äå)
-   (#x5076 ?¶ö)
-   (#x5078 ?Ãù)
-   (#x507d ?µ¶)
-   (#x5080 ?Ãú)
-   (#x5085 ?Ãü)
-   (#x508d ?˵)
-   (#x5091 ?·æ)
-   (#x5098 ?»±)
-   (#x5099 ?È÷)
-   (#x509a ?Ãû)
-   (#x50ac ?ºÅ)
-   (#x50ad ?ÃÃ)
-   (#x50b2 ?Ãþ)
-   (#x50b3 ?Ñ£)
-   (#x50b4 ?Ãý)
-   (#x50b5 ?ºÄ)
-   (#x50b7 ?½ý)
-   (#x50be ?·¹)
-   (#x50c2 ?Ѥ)
-   (#x50c5 ?¶Ã)
-   (#x50c9 ?Ñ¡)
-   (#x50ca ?Ñ¢)
-   (#x50cd ?Ư)
-   (#x50cf ?Ãü)
-   (#x50d1 ?¶£)
-   (#x50d5 ?ËÃ)
-   (#x50d6 ?Ñ¥)
-   (#x50da ?ν)
-   (#x50de ?Ѧ)
-   (#x50e3 ?Ñ©)
-   (#x50e5 ?ѧ)
-   (#x50e7 ?ÃÃŽ)
-   (#x50ed ?Ѩ)
-   (#x50ee ?Ѫ)
-   (#x50f5 ?Ѭ)
-   (#x50f9 ?Ñ«)
-   (#x50fb ?ÊÈ)
-   (#x5100 ?µ·)
-   (#x5101 ?Ñ®)
-   (#x5102 ?ѯ)
-   (#x5104 ?²¯)
-   (#x5109 ?Ñ­)
-   (#x5112 ?¼ô)
-   (#x5114 ?Ѳ)
-   (#x5115 ?ѱ)
-   (#x5116 ?Ñ°)
-   (#x5118 ?ÃÖ)
-   (#x511a ?ѳ)
-   (#x511f ?½þ)
-   (#x5121 ?Ñ´)
-   (#x512a ?Í¥)
-   (#x5132 ?ÌÙ)
-   (#x5137 ?Ѷ)
-   (#x513a ?ѵ)
-   (#x513b ?Ѹ)
-   (#x513c ?Ñ·)
-   (#x513f ?ѹ)
-   (#x5140 ?Ѻ)
-   (#x5141 ?°ô)
-   (#x5143 ?¸µ)
-   (#x5144 ?·»)
-   (#x5145 ?½¼)
-   (#x5146 ?Ãû)
-   (#x5147 ?¶¤)
-   (#x5148 ?Àè)
-   (#x5149 ?¸÷)
-   (#x514b ?¹î)
-   (#x514c ?Ѽ)
-   (#x514d ?ÌÈ)
-   (#x514e ?ÅÆ)
-   (#x5150 ?»ù)
-   (#x5152 ?Ñ»)
-   (#x5154 ?ѽ)
-   (#x515a ?ÅÞ)
-   (#x515c ?³õ)
-   (#x5162 ?Ѿ)
-   (#x5165 ?Æþ)
-   (#x5168 ?ô)
-   (#x5169 ?ÑÀ)
-   (#x516a ?ÑÃ)
-   (#x516b ?Ȭ)
-   (#x516c ?¸ø)
-   (#x516d ?Ï»)
-   (#x516e ?ÑÂ)
-   (#x5171 ?¶¦)
-   (#x5175 ?ʼ)
-   (#x5176 ?¶)
-   (#x5177 ?¶ñ)
-   (#x5178 ?ŵ)
-   (#x517c ?·ó)
-   (#x5180 ?ÑÃ)
-   (#x5182 ?ÑÄ)
-   (#x5185 ?Æâ)
-   (#x5186 ?±ß)
-   (#x5189 ?ÑÇ)
-   (#x518a ?ºý)
-   (#x518c ?ÑÆ)
-   (#x518d ?ºÆ)
-   (#x518f ?ÑÈ)
-   (#x5190 ?æî)
-   (#x5191 ?ÑÉ)
-   (#x5192 ?ËÃ)
-   (#x5193 ?ÑÊ)
-   (#x5195 ?ÑË)
-   (#x5196 ?ÑÌ)
-   (#x5197 ?¾é)
-   (#x5199 ?¼Ì)
-   (#x51a0 ?´§)
-   (#x51a2 ?ÑÃ)
-   (#x51a4 ?ÑÃ)
-   (#x51a5 ?̽)
-   (#x51a6 ?ÑÎ)
-   (#x51a8 ?ÉÚ)
-   (#x51a9 ?ÑÃ)
-   (#x51aa ?ÑÑ)
-   (#x51ab ?ÑÒ)
-   (#x51ac ?Åß)
-   (#x51b0 ?ÑÖ)
-   (#x51b1 ?ÑÔ)
-   (#x51b2 ?ÑÕ)
-   (#x51b3 ?ÑÓ)
-   (#x51b4 ?ºã)
-   (#x51b5 ?Ñ×)
-   (#x51b6 ?Ìê)
-   (#x51b7 ?Îä)
-   (#x51bd ?ÑØ)
-   (#x51c4 ?ˬ)
-   (#x51c5 ?ÑÙ)
-   (#x51c6 ?½Ú)
-   (#x51c9 ?ÑÚ)
-   (#x51cb ?Ãü)
-   (#x51cc ?ο)
-   (#x51cd ?Åà)
-   (#x51d6 ?Ã’Ã…)
-   (#x51db ?ÑÛ)
-   (#x51dc ?ô¥)
-   (#x51dd ?¶Å)
-   (#x51e0 ?ÑÜ)
-   (#x51e1 ?ËÞ)
-   (#x51e6 ?½è)
-   (#x51e7 ?Âü)
-   (#x51e9 ?ÑÞ)
-   (#x51ea ?Æä)
-   (#x51ed ?Ñß)
-   (#x51f0 ?Ñà)
-   (#x51f1 ?³®)
-   (#x51f5 ?Ñá)
-   (#x51f6 ?¶§)
-   (#x51f8 ?ÆÌ)
-   (#x51f9 ?±ú)
-   (#x51fa ?½Ã)
-   (#x51fd ?È¡)
-   (#x51fe ?Ñâ)
-   (#x5200 ?Åá)
-   (#x5203 ?¿Ã)
-   (#x5204 ?Ñã)
-   (#x5206 ?ʬ)
-   (#x5207 ?ÀÚ)
-   (#x5208 ?´¢)
-   (#x520a ?´©)
-   (#x520b ?Ñä)
-   (#x520e ?Ñæ)
-   (#x5211 ?·º)
-   (#x5214 ?Ñå)
-   (#x5217 ?Îó)
-   (#x521d ?½é)
-   (#x5224 ?Ƚ)
-   (#x5225 ?ÊÌ)
-   (#x5227 ?Ñç)
-   (#x5229 ?Ãø)
-   (#x522a ?Ñè)
-   (#x522e ?Ñé)
-   (#x5230 ?Åþ)
-   (#x5233 ?Ñê)
-   (#x5236 ?À©)
-   (#x5237 ?ºþ)
-   (#x5238 ?·ô)
-   (#x5239 ?Ñë)
-   (#x523a ?ȃ)
-   (#x523b ?¹ï)
-   (#x5243 ?Äæ)
-   (#x5244 ?Ñí)
-   (#x5247 ?§)
-   (#x524a ?ºï)
-   (#x524b ?Ñî)
-   (#x524c ?Ñï)
-   (#x524d ?ð)
-   (#x524f ?Ñì)
-   (#x5254 ?Ññ)
-   (#x5256 ?˶)
-   (#x525b ?¹ä)
-   (#x525e ?Ñð)
-   (#x5263 ?·õ)
-   (#x5264 ?ºÞ)
-   (#x5265 ?Çí)
-   (#x5269 ?Ñô)
-   (#x526a ?Ñò)
-   (#x526f ?Éû)
-   (#x5270 ?¾ê)
-   (#x5271 ?Ñû)
-   (#x5272 ?³ä)
-   (#x5273 ?Ñõ)
-   (#x5274 ?Ñó)
-   (#x5275 ?ÃÃ)
-   (#x527d ?Ñ÷)
-   (#x527f ?Ñö)
-   (#x5283 ?³Ä)
-   (#x5287 ?·à)
-   (#x5288 ?Ñü)
-   (#x5289 ?έ)
-   (#x528d ?Ñø)
-   (#x5291 ?Ñý)
-   (#x5292 ?Ñú)
-   (#x5294 ?Ñù)
-   (#x529b ?ÃŽÃ)
-   (#x529f ?¸ù)
-   (#x52a0 ?²Ã)
-   (#x52a3 ?Îô)
-   (#x52a9 ?½õ)
-   (#x52aa ?ÅØ)
-   (#x52ab ?¹å)
-   (#x52ac ?Ò¢)
-   (#x52ad ?Ò£)
-   (#x52b1 ?ÃŽÃ¥)
-   (#x52b4 ?Ï«)
-   (#x52b5 ?Ò¥)
-   (#x52b9 ?¸ú)
-   (#x52bc ?Ò¤)
-   (#x52be ?³¯)
-   (#x52c1 ?Ò¦)
-   (#x52c3 ?ËÖ)
-   (#x52c5 ?ļ)
-   (#x52c7 ?ͦ)
-   (#x52c9 ?ÊÙ)
-   (#x52cd ?Ò§)
-   (#x52d2 ?ðÕ)
-   (#x52d5 ?Æ°)
-   (#x52d7 ?Ò¨)
-   (#x52d8 ?´ª)
-   (#x52d9 ?̳)
-   (#x52dd ?¾¡)
-   (#x52de ?Ò©)
-   (#x52df ?Êç)
-   (#x52e0 ?Ò­)
-   (#x52e2 ?˻)
-   (#x52e3 ?Òª)
-   (#x52e4 ?¶Ã)
-   (#x52e6 ?Ò«)
-   (#x52e7 ?´«)
-   (#x52f2 ?·®)
-   (#x52f3 ?Ò®)
-   (#x52f5 ?Ò¯)
-   (#x52f8 ?Ò°)
-   (#x52f9 ?Ò±)
-   (#x52fa ?¼Û)
-   (#x52fe ?¸û)
-   (#x52ff ?ÌÞ)
-   (#x5301 ?Ìè)
-   (#x5302 ?Æ÷)
-   (#x5305 ?Êñ)
-   (#x5306 ?Ò²)
-   (#x5308 ?Ò³)
-   (#x530d ?Òµ)
-   (#x530f ?Ò·)
-   (#x5310 ?Ò¶)
-   (#x5315 ?Ò¸)
-   (#x5316 ?²½)
-   (#x5317 ?ËÌ)
-   (#x5319 ?ºü)
-   (#x531a ?Ò¹)
-   (#x531d ?ÃÙ)
-   (#x5320 ?¾¢)
-   (#x5321 ?¶©)
-   (#x5323 ?Òº)
-   (#x532a ?ÈÛ)
-   (#x532f ?Ò»)
-   (#x5331 ?Ò¼)
-   (#x5333 ?Ò½)
-   (#x5338 ?Ò¾)
-   (#x5339 ?ɤ)
-   (#x533a ?¶è)
-   (#x533b ?°å)
-   (#x533f ?Æ¿)
-   (#x5340 ?Ò¿)
-   (#x5341 ?½½)
-   (#x5343 ?Àé)
-   (#x5345 ?Ã’Ã)
-   (#x5346 ?ÒÀ)
-   (#x5347 ?¾£)
-   (#x5348 ?¸á)
-   (#x5349 ?ÒÃ)
-   (#x534a ?Ⱦ)
-   (#x534d ?ÒÄ)
-   (#x5351 ?ÈÜ)
-   (#x5352 ?´)
-   (#x5353 ?Âî)
-   (#x5354 ?¶¨)
-   (#x5357 ?Æî)
-   (#x5358 ?ñ)
-   (#x535a ?Çî)
-   (#x535c ?ËÎ)
-   (#x535e ?ÒÆ)
-   (#x5360 ?Àê)
-   (#x5366 ?·µ)
-   (#x5369 ?ÒÇ)
-   (#x536e ?ÒÈ)
-   (#x536f ?±¬)
-   (#x5370 ?°õ)
-   (#x5371 ?´í)
-   (#x5373 ?¨)
-   (#x5374 ?µÑ)
-   (#x5375 ?Ãñ)
-   (#x5377 ?ÒË)
-   (#x5378 ?²·)
-   (#x537b ?ÒÊ)
-   (#x537f ?¶ª)
-   (#x5382 ?Ã’ÃŒ)
-   (#x5384 ?Ìñ)
-   (#x5396 ?Ã’Ã)
-   (#x5398 ?ÃŽÃ’)
-   (#x539a ?¸ü)
-   (#x539f ?¸¶)
-   (#x53a0 ?Ã’ÃŽ)
-   (#x53a5 ?Ã’Ã)
-   (#x53a6 ?Ã’Ã)
-   (#x53a8 ?¿ß)
-   (#x53a9 ?±¹)
-   (#x53ad ?±Þ)
-   (#x53ae ?ÒÑ)
-   (#x53b0 ?Ã’Ã’)
-   (#x53b3 ?¸·)
-   (#x53b6 ?ÒÓ)
-   (#x53bb ?µî)
-   (#x53c2 ?»²)
-   (#x53c3 ?ÒÔ)
-   (#x53c8 ?Ëô)
-   (#x53c9 ?ºµ)
-   (#x53ca ?µÚ)
-   (#x53cb ?ͧ)
-   (#x53cc ?ÃÃ)
-   (#x53cd ?È¿)
-   (#x53ce ?¼ý)
-   (#x53d4 ?½Ç)
-   (#x53d6 ?¼è)
-   (#x53d7 ?¼õ)
-   (#x53d9 ?½ö)
-   (#x53db ?ÈÀ)
-   (#x53df ?Ò×)
-   (#x53e1 ?±Ã)
-   (#x53e2 ?ÃÑ)
-   (#x53e3 ?¸ý)
-   (#x53e4 ?¸Å)
-   (#x53e5 ?¶ç)
-   (#x53e8 ?ÒÛ)
-   (#x53e9 ?á)
-   (#x53ea ?Âþ)
-   (#x53eb ?¶«)
-   (#x53ec ?¾¤)
-   (#x53ed ?Ã’Ãœ)
-   (#x53ee ?ÒÚ)
-   (#x53ef ?²Ä)
-   (#x53f0 ?Âæ)
-   (#x53f1 ?¼¸)
-   (#x53f2 ?»Ë)
-   (#x53f3 ?±¦)
-   (#x53f6 ?³ð)
-   (#x53f7 ?¹æ)
-   (#x53f8 ?»Ê)
-   (#x53fa ?Ã’Ã)
-   (#x5401 ?ÒÞ)
-   (#x5403 ?µÉ)
-   (#x5404 ?³Æ)
-   (#x5408 ?¹ç)
-   (#x5409 ?µÈ)
-   (#x540a ?Äß)
-   (#x540b ?±¥)
-   (#x540c ?Ʊ)
-   (#x540d ?̾)
-   (#x540e ?¹¡)
-   (#x540f ?Ãù)
-   (#x5410 ?ÅÇ)
-   (#x5411 ?¸þ)
-   (#x541b ?·¯)
-   (#x541d ?Òç)
-   (#x541f ?¶ã)
-   (#x5420 ?ËÊ)
-   (#x5426 ?ÈÃ)
-   (#x5429 ?Òæ)
-   (#x542b ?´Þ)
-   (#x542c ?Òá)
-   (#x542d ?Òâ)
-   (#x542e ?Òä)
-   (#x5436 ?Ã’Ã¥)
-   (#x5438 ?µÛ)
-   (#x5439 ?¿á)
-   (#x543b ?Ê­)
-   (#x543c ?Òã)
-   (#x543d ?Òß)
-   (#x543e ?¸ã)
-   (#x5440 ?Òà)
-   (#x5442 ?Ϥ)
-   (#x5446 ?Êò)
-   (#x5448 ?Äè)
-   (#x5449 ?¸â)
-   (#x544a ?¹ð)
-   (#x544e ?Òè)
-   (#x5451 ?ÆÃ)
-   (#x545f ?Òì)
-   (#x5468 ?¼þ)
-   (#x546a ?¼ö)
-   (#x5470 ?Òï)
-   (#x5471 ?Òí)
-   (#x5473 ?Ì£)
-   (#x5475 ?Òê)
-   (#x5476 ?Òó)
-   (#x5477 ?Òî)
-   (#x547b ?Òñ)
-   (#x547c ?¸Æ)
-   (#x547d ?Ì¿)
-   (#x5480 ?Òò)
-   (#x5484 ?Òô)
-   (#x5486 ?Òö)
-   (#x548b ?ºð)
-   (#x548c ?ÃÂ)
-   (#x548e ?Òë)
-   (#x548f ?Òé)
-   (#x5490 ?Òõ)
-   (#x5492 ?Òð)
-   (#x54a2 ?Òø)
-   (#x54a4 ?Ó£)
-   (#x54a5 ?Òú)
-   (#x54a8 ?Òþ)
-   (#x54ab ?Ó¡)
-   (#x54ac ?Òû)
-   (#x54af ?Ó¾)
-   (#x54b2 ?ºé)
-   (#x54b3 ?³±)
-   (#x54b8 ?Òù)
-   (#x54bc ?Ó¥)
-   (#x54bd ?°ö)
-   (#x54be ?Ó¤)
-   (#x54c0 ?°¥)
-   (#x54c1 ?ÉÊ)
-   (#x54c2 ?Ó¢)
-   (#x54c4 ?Òü)
-   (#x54c7 ?Ò÷)
-   (#x54c8 ?Òý)
-   (#x54c9 ?ºÈ)
-   (#x54d8 ?Ó¦)
-   (#x54e1 ?°÷)
-   (#x54e2 ?Ó¯)
-   (#x54e5 ?Ó§)
-   (#x54e6 ?Ó¨)
-   (#x54e8 ?¾¥)
-   (#x54e9 ?Ëé)
-   (#x54ed ?Ó­)
-   (#x54ee ?Ó¬)
-   (#x54f2 ?ů)
-   (#x54fa ?Ó®)
-   (#x54fd ?Ó«)
-   (#x5504 ?±´)
-   (#x5506 ?º¶)
-   (#x5507 ?¿°)
-   (#x550f ?Ó©)
-   (#x5510 ?Åâ)
-   (#x5514 ?Óª)
-   (#x5516 ?°¢)
-   (#x552e ?Ó´)
-   (#x552f ?Í£)
-   (#x5531 ?¾§)
-   (#x5533 ?Óº)
-   (#x5538 ?Ó¹)
-   (#x5539 ?Ó°)
-   (#x553e ?ÂÃ)
-   (#x5540 ?Ó±)
-   (#x5544 ?Âï)
-   (#x5545 ?Ó¶)
-   (#x5546 ?¾¦)
-   (#x554c ?Ó³)
-   (#x554f ?Ìä)
-   (#x5553 ?·¼)
-   (#x5556 ?Ó·)
-   (#x5557 ?Ó¸)
-   (#x555c ?Óµ)
-   (#x555d ?Ó»)
-   (#x5563 ?Ó²)
-   (#x557b ?ÓÃ)
-   (#x557c ?ÓÆ)
-   (#x557e ?ÓÂ)
-   (#x5580 ?Ó½)
-   (#x5583 ?ÓÇ)
-   (#x5584 ?ñ)
-   (#x5587 ?ÓÉ)
-   (#x5589 ?¹¢)
-   (#x558a ?Ó¿)
-   (#x558b ?Ãý)
-   (#x5598 ?ÓÃ)
-   (#x5599 ?Ó¼)
-   (#x559a ?´­)
-   (#x559c ?´î)
-   (#x559d ?³å)
-   (#x559e ?ÓÄ)
-   (#x559f ?ÓÀ)
-   (#x55a7 ?·ö)
-   (#x55a8 ?ÓÊ)
-   (#x55a9 ?ÓÈ)
-   (#x55aa ?ÃÓ)
-   (#x55ab ?µÊ)
-   (#x55ac ?¶¬)
-   (#x55ae ?ÓÅ)
-   (#x55b0 ?¶ô)
-   (#x55b6 ?±Ä)
-   (#x55c4 ?ÓÎ)
-   (#x55c5 ?ÓÌ)
-   (#x55c7 ?Ô§)
-   (#x55d4 ?ÓÑ)
-   (#x55da ?ÓË)
-   (#x55dc ?ÓÃ)
-   (#x55df ?ÓÃ)
-   (#x55e3 ?»Ì)
-   (#x55e4 ?ÓÃ)
-   (#x55f7 ?ÓÓ)
-   (#x55f9 ?ÓØ)
-   (#x55fd ?ÓÖ)
-   (#x55fe ?ÓÕ)
-   (#x5606 ?ò)
-   (#x5609 ?²Å)
-   (#x5614 ?ÓÒ)
-   (#x5616 ?ÓÔ)
-   (#x5617 ?¾¨)
-   (#x5618 ?±³)
-   (#x561b ?Ó×)
-   (#x5629 ?²Þ)
-   (#x562f ?Óâ)
-   (#x5631 ?¾ü)
-   (#x5632 ?ÓÞ)
-   (#x5634 ?ÓÜ)
-   (#x5636 ?ÓÃ)
-   (#x5638 ?Óß)
-   (#x5642 ?±½)
-   (#x564c ?ù)
-   (#x564e ?ÓÙ)
-   (#x5650 ?ÓÚ)
-   (#x565b ?³ú)
-   (#x5664 ?Óá)
-   (#x5668 ?´ï)
-   (#x566a ?Óä)
-   (#x566b ?Óà)
-   (#x566c ?Óã)
-   (#x5674 ?Ê®)
-   (#x5678 ?ÆÕ)
-   (#x567a ?ȸ)
-   (#x5680 ?Óæ)
-   (#x5686 ?Óå)
-   (#x5687 ?³Å)
-   (#x568a ?Óç)
-   (#x568f ?Óê)
-   (#x5694 ?Óé)
-   (#x56a0 ?Óè)
-   (#x56a2 ?ǹ)
-   (#x56a5 ?Óë)
-   (#x56ae ?Óì)
-   (#x56b4 ?Óî)
-   (#x56b6 ?Óí)
-   (#x56bc ?Óð)
-   (#x56c0 ?Óó)
-   (#x56c1 ?Óñ)
-   (#x56c2 ?Óï)
-   (#x56c3 ?Óò)
-   (#x56c8 ?Óô)
-   (#x56ce ?Óõ)
-   (#x56d1 ?Óö)
-   (#x56d3 ?Ó÷)
-   (#x56d7 ?Óø)
-   (#x56d8 ?ÑÅ)
-   (#x56da ?¼ü)
-   (#x56db ?»Ã)
-   (#x56de ?²ó)
-   (#x56e0 ?°ø)
-   (#x56e3 ?ÃÄ)
-   (#x56ee ?Óù)
-   (#x56f0 ?º¤)
-   (#x56f2 ?°Ã)
-   (#x56f3 ?¿Þ)
-   (#x56f9 ?Óú)
-   (#x56fa ?¸Ç)
-   (#x56fd ?¹ñ)
-   (#x56ff ?Óü)
-   (#x5700 ?Óû)
-   (#x5703 ?Êà)
-   (#x5704 ?Óý)
-   (#x5708 ?Ô¡)
-   (#x5709 ?Óþ)
-   (#x570b ?Ô¢)
-   (#x570d ?Ô£)
-   (#x570f ?·÷)
-   (#x5712 ?±à)
-   (#x5713 ?Ô¤)
-   (#x5716 ?Ô¦)
-   (#x5718 ?Ô¥)
-   (#x571c ?Ô¨)
-   (#x571f ?ÅÚ)
-   (#x5726 ?Ô©)
-   (#x5727 ?°µ)
-   (#x5728 ?ºß)
-   (#x572d ?·½)
-   (#x5730 ?ÃÃ)
-   (#x5737 ?Ôª)
-   (#x5738 ?Ô«)
-   (#x573b ?Ô­)
-   (#x5740 ?Ô®)
-   (#x5742 ?ºä)
-   (#x5747 ?¶Ñ)
-   (#x574a ?Ë·)
-   (#x574e ?Ô¬)
-   (#x574f ?Ô¯)
-   (#x5750 ?ºÃ)
-   (#x5751 ?¹£)
-   (#x5761 ?Ô³)
-   (#x5764 ?º¥)
-   (#x5766 ?ó)
-   (#x5769 ?Ô°)
-   (#x576a ?ÄÚ)
-   (#x577f ?Ô´)
-   (#x5782 ?¿â)
-   (#x5788 ?Ô²)
-   (#x5789 ?Ôµ)
-   (#x578b ?·¿)
-   (#x5793 ?Ô¶)
-   (#x57a0 ?Ô·)
-   (#x57a2 ?¹¤)
-   (#x57a3 ?³À)
-   (#x57a4 ?Ô¹)
-   (#x57aa ?Ôº)
-   (#x57b0 ?Ô»)
-   (#x57b3 ?Ô¸)
-   (#x57c0 ?Ô±)
-   (#x57c3 ?Ô¼)
-   (#x57c6 ?Ô½)
-   (#x57cb ?Ëä)
-   (#x57ce ?¾ë)
-   (#x57d2 ?Ô¿)
-   (#x57d3 ?ÔÀ)
-   (#x57d4 ?Ô¾)
-   (#x57d6 ?ÔÂ)
-   (#x57dc ?Ǹ)
-   (#x57df ?°è)
-   (#x57e0 ?ÉÖ)
-   (#x57e3 ?ÔÃ)
-   (#x57f4 ?¾ý)
-   (#x57f7 ?¼¹)
-   (#x57f9 ?ÇÃ)
-   (#x57fa ?´ð)
-   (#x57fc ?ºë)
-   (#x5800 ?ËÙ)
-   (#x5802 ?Ʋ)
-   (#x5805 ?·ø)
-   (#x5806 ?ÂÃ)
-   (#x580a ?ÔÃ)
-   (#x580b ?ÔÄ)
-   (#x5815 ?ÂÄ)
-   (#x5819 ?ÔÅ)
-   (#x581d ?ÔÆ)
-   (#x5821 ?ÔÈ)
-   (#x5824 ?Äé)
-   (#x582a ?´®)
-   (#x582f ?ô¡)
-   (#x5830 ?±á)
-   (#x5831 ?Êó)
-   (#x5834 ?¾ì)
-   (#x5835 ?ÅÈ)
-   (#x583a ?ºæ)
-   (#x583d ?ÔÎ)
-   (#x5840 ?ʽ)
-   (#x5841 ?ÃŽÃ)
-   (#x584a ?²ô)
-   (#x584b ?ÔÊ)
-   (#x5851 ?ú)
-   (#x5852 ?ÔÃ)
-   (#x5854 ?Åã)
-   (#x5857 ?ÅÉ)
-   (#x5858 ?Åä)
-   (#x5859 ?ȹ)
-   (#x585a ?ÄÃ)
-   (#x585e ?ºÉ)
-   (#x5862 ?ÔÉ)
-   (#x5869 ?±ö)
-   (#x586b ?Ŷ)
-   (#x5870 ?ÔË)
-   (#x5872 ?ÔÇ)
-   (#x5875 ?¿Ã)
-   (#x5879 ?ÔÃ)
-   (#x587e ?½Î)
-   (#x5883 ?¶­)
-   (#x5885 ?ÔÃ)
-   (#x5893 ?Êè)
-   (#x5897 ?Ãý)
-   (#x589c ?ÄÆ)
-   (#x589f ?ÔÒ)
-   (#x58a8 ?ËÃ)
-   (#x58ab ?ÔÓ)
-   (#x58ae ?ÔØ)
-   (#x58b3 ?ʯ)
-   (#x58b8 ?Ô×)
-   (#x58b9 ?ÔÑ)
-   (#x58ba ?ÔÔ)
-   (#x58bb ?ÔÖ)
-   (#x58be ?º¦)
-   (#x58c1 ?ÊÉ)
-   (#x58c5 ?ÔÙ)
-   (#x58c7 ?ÃÅ)
-   (#x58ca ?²õ)
-   (#x58cc ?¾í)
-   (#x58d1 ?ÔÛ)
-   (#x58d3 ?ÔÚ)
-   (#x58d5 ?¹è)
-   (#x58d7 ?ÔÜ)
-   (#x58d8 ?ÔÞ)
-   (#x58d9 ?ÔÃ)
-   (#x58dc ?Ôà)
-   (#x58de ?ÔÕ)
-   (#x58df ?Ôâ)
-   (#x58e4 ?Ôá)
-   (#x58e5 ?Ôß)
-   (#x58eb ?»Î)
-   (#x58ec ?¿Ñ)
-   (#x58ee ?ÃÔ)
-   (#x58ef ?Ôã)
-   (#x58f0 ?À¼)
-   (#x58f1 ?°í)
-   (#x58f2 ?Çä)
-   (#x58f7 ?ÄÛ)
-   (#x58f9 ?Ôå)
-   (#x58fa ?Ôä)
-   (#x58fb ?Ôæ)
-   (#x58fc ?Ôç)
-   (#x58fd ?Ôè)
-   (#x5902 ?Ôé)
-   (#x5909 ?ÊÑ)
-   (#x590a ?Ôê)
-   (#x590f ?²Æ)
-   (#x5910 ?Ôë)
-   (#x5915 ?ͼ)
-   (#x5916 ?³°)
-   (#x5918 ?ÒÉ)
-   (#x5919 ?½È)
-   (#x591a ?¿)
-   (#x591b ?Ôì)
-   (#x591c ?Ìë)
-   (#x5922 ?Ì´)
-   (#x5925 ?Ôî)
-   (#x5927 ?Âç)
-   (#x5929 ?Å·)
-   (#x592a ?ÂÀ)
-   (#x592b ?É×)
-   (#x592c ?Ôï)
-   (#x592d ?Ôð)
-   (#x592e ?±û)
-   (#x5931 ?¼º)
-   (#x5932 ?Ôñ)
-   (#x5937 ?°Ã)
-   (#x5938 ?Ôò)
-   (#x593e ?Ôó)
-   (#x5944 ?±â)
-   (#x5947 ?´ñ)
-   (#x5948 ?Æà)
-   (#x5949 ?Êô)
-   (#x594e ?Ô÷)
-   (#x594f ?ÃÕ)
-   (#x5950 ?Ôö)
-   (#x5951 ?·À)
-   (#x5954 ?ËÛ)
-   (#x5955 ?Ôõ)
-   (#x5957 ?Ã…Ã¥)
-   (#x5958 ?Ôù)
-   (#x595a ?Ôø)
-   (#x5960 ?Ôû)
-   (#x5962 ?Ôú)
-   (#x5965 ?±ü)
-   (#x5967 ?Ôü)
-   (#x5968 ?¾©)
-   (#x5969 ?Ôþ)
-   (#x596a ?Ã¥)
-   (#x596c ?Ôý)
-   (#x596e ?ʳ)
-   (#x5973 ?½÷)
-   (#x5974 ?ÅÛ)
-   (#x5978 ?Õ¡)
-   (#x597d ?¹¥)
-   (#x5981 ?Õ¢)
-   (#x5982 ?Ç¡)
-   (#x5983 ?ÈÞ)
-   (#x5984 ?ÌÑ)
-   (#x598a ?Ç¥)
-   (#x598d ?Õ«)
-   (#x5993 ?µ¸)
-   (#x5996 ?ÃÃ…)
-   (#x5999 ?̯)
-   (#x599b ?Ö¬)
-   (#x599d ?Õ£)
-   (#x59a3 ?Õ¦)
-   (#x59a5 ?ÂÅ)
-   (#x59a8 ?˸)
-   (#x59ac ?ÅÊ)
-   (#x59b2 ?Õ§)
-   (#x59b9 ?Ëå)
-   (#x59bb ?ºÊ)
-   (#x59be ?¾ª)
-   (#x59c6 ?Õ¨)
-   (#x59c9 ?»Ã)
-   (#x59cb ?»Ã)
-   (#x59d0 ?°¹)
-   (#x59d1 ?¸È)
-   (#x59d3 ?À«)
-   (#x59d4 ?°Ñ)
-   (#x59d9 ?Õ¬)
-   (#x59da ?Õ­)
-   (#x59dc ?Õª)
-   (#x59e5 ?±¸)
-   (#x59e6 ?´¯)
-   (#x59e8 ?Õ©)
-   (#x59ea ?ÌÅ)
-   (#x59eb ?ɱ)
-   (#x59f6 ?°¨)
-   (#x59fb ?°ù)
-   (#x59ff ?Ȅ)
-   (#x5a01 ?°Ò)
-   (#x5a03 ?°£)
-   (#x5a09 ?Õ²)
-   (#x5a11 ?Õ°)
-   (#x5a18 ?̼)
-   (#x5a1a ?Õ³)
-   (#x5a1c ?Õ±)
-   (#x5a1f ?Õ¯)
-   (#x5a20 ?¿±)
-   (#x5a25 ?Õ®)
-   (#x5a29 ?ÊÚ)
-   (#x5a2f ?¸ä)
-   (#x5a35 ?Õ·)
-   (#x5a36 ?Õ¸)
-   (#x5a3c ?¾«)
-   (#x5a40 ?Õ´)
-   (#x5a41 ?Ϭ)
-   (#x5a46 ?ÇÌ)
-   (#x5a49 ?Õ¶)
-   (#x5a5a ?º§)
-   (#x5a62 ?Õ¹)
-   (#x5a66 ?ÉØ)
-   (#x5a6a ?Õº)
-   (#x5a6c ?Õµ)
-   (#x5a7f ?Ì»)
-   (#x5a92 ?ÇÞ)
-   (#x5a9a ?Õ»)
-   (#x5a9b ?ɲ)
-   (#x5abc ?Õ¼)
-   (#x5abd ?ÕÀ)
-   (#x5abe ?Õ½)
-   (#x5ac1 ?²Ç)
-   (#x5ac2 ?Õ¿)
-   (#x5ac9 ?¼»)
-   (#x5acb ?Õ¾)
-   (#x5acc ?·ù)
-   (#x5ad0 ?ÕÌ)
-   (#x5ad6 ?ÕÅ)
-   (#x5ad7 ?ÕÂ)
-   (#x5ae1 ?Ãä)
-   (#x5ae3 ?ÕÃ)
-   (#x5ae6 ?ÕÃ)
-   (#x5ae9 ?ÕÄ)
-   (#x5afa ?ÕÆ)
-   (#x5afb ?ÕÇ)
-   (#x5b09 ?´ò)
-   (#x5b0b ?ÕÉ)
-   (#x5b0c ?ÕÈ)
-   (#x5b16 ?ÕÊ)
-   (#x5b22 ?¾î)
-   (#x5b2a ?ÕÃ)
-   (#x5b2c ?ÄÜ)
-   (#x5b30 ?±Å)
-   (#x5b32 ?ÕË)
-   (#x5b36 ?ÕÎ)
-   (#x5b3e ?ÕÃ)
-   (#x5b40 ?ÕÒ)
-   (#x5b43 ?ÕÃ)
-   (#x5b45 ?ÕÑ)
-   (#x5b50 ?»Ò)
-   (#x5b51 ?ÕÓ)
-   (#x5b54 ?¹¦)
-   (#x5b55 ?ÕÔ)
-   (#x5b57 ?»ú)
-   (#x5b58 ?¸)
-   (#x5b5a ?ÕÕ)
-   (#x5b5b ?ÕÖ)
-   (#x5b5c ?»Ú)
-   (#x5b5d ?¹§)
-   (#x5b5f ?ÌÒ)
-   (#x5b63 ?µ¨)
-   (#x5b64 ?¸É)
-   (#x5b65 ?Õ×)
-   (#x5b66 ?³Ø)
-   (#x5b69 ?ÕØ)
-   (#x5b6b ?¹)
-   (#x5b70 ?ÕÙ)
-   (#x5b71 ?Ö£)
-   (#x5b73 ?ÕÚ)
-   (#x5b75 ?ÕÛ)
-   (#x5b78 ?ÕÜ)
-   (#x5b7a ?ÕÞ)
-   (#x5b80 ?Õß)
-   (#x5b83 ?Õà)
-   (#x5b85 ?Âð)
-   (#x5b87 ?±§)
-   (#x5b88 ?¼é)
-   (#x5b89 ?°Â)
-   (#x5b8b ?Ã×)
-   (#x5b8c ?´°)
-   (#x5b8d ?¼µ)
-   (#x5b8f ?¹¨)
-   (#x5b95 ?Åæ)
-   (#x5b97 ?½¡)
-   (#x5b98 ?´±)
-   (#x5b99 ?Ãè)
-   (#x5b9a ?Äê)
-   (#x5b9b ?°¸)
-   (#x5b9c ?µ¹)
-   (#x5b9d ?Êõ)
-   (#x5b9f ?¼Â)
-   (#x5ba2 ?µÒ)
-   (#x5ba3 ?Àë)
-   (#x5ba4 ?¼¼)
-   (#x5ba5 ?ͨ)
-   (#x5ba6 ?Õá)
-   (#x5bae ?µÜ)
-   (#x5bb0 ?ºË)
-   (#x5bb3 ?³²)
-   (#x5bb4 ?±ã)
-   (#x5bb5 ?¾¬)
-   (#x5bb6 ?²È)
-   (#x5bb8 ?Õâ)
-   (#x5bb9 ?ÃÆ)
-   (#x5bbf ?½É)
-   (#x5bc2 ?¼ä)
-   (#x5bc3 ?Õã)
-   (#x5bc4 ?´ó)
-   (#x5bc5 ?ÆÒ)
-   (#x5bc6 ?Ì©)
-   (#x5bc7 ?Õä)
-   (#x5bc9 ?Õå)
-   (#x5bcc ?ÉÙ)
-   (#x5bd0 ?Õç)
-   (#x5bd2 ?´¨)
-   (#x5bd3 ?¶÷)
-   (#x5bd4 ?Õæ)
-   (#x5bdb ?´²)
-   (#x5bdd ?¿²)
-   (#x5bde ?Õë)
-   (#x5bdf ?»¡)
-   (#x5be1 ?²É)
-   (#x5be2 ?Õê)
-   (#x5be4 ?Õè)
-   (#x5be5 ?Õì)
-   (#x5be6 ?Õé)
-   (#x5be7 ?Ç«)
-   (#x5be8 ?ÃœÃ)
-   (#x5be9 ?¿³)
-   (#x5beb ?Õí)
-   (#x5bee ?ÎÀ)
-   (#x5bf0 ?Õî)
-   (#x5bf3 ?Õð)
-   (#x5bf5 ?Ãþ)
-   (#x5bf6 ?Õï)
-   (#x5bf8 ?À£)
-   (#x5bfa ?»û)
-   (#x5bfe ?ÂÃ)
-   (#x5bff ?¼÷)
-   (#x5c01 ?Éõ)
-   (#x5c02 ?Àì)
-   (#x5c04 ?¼Ã)
-   (#x5c05 ?Õñ)
-   (#x5c06 ?¾­)
-   (#x5c07 ?Õò)
-   (#x5c08 ?Õó)
-   (#x5c09 ?°Ó)
-   (#x5c0a ?º)
-   (#x5c0b ?¿Ò)
-   (#x5c0d ?Õô)
-   (#x5c0e ?Ƴ)
-   (#x5c0f ?¾®)
-   (#x5c11 ?¾¯)
-   (#x5c13 ?Õõ)
-   (#x5c16 ?Àí)
-   (#x5c1a ?¾°)
-   (#x5c20 ?Õö)
-   (#x5c22 ?Õ÷)
-   (#x5c24 ?Ìà)
-   (#x5c28 ?Õø)
-   (#x5c2d ?¶Æ)
-   (#x5c31 ?½¢)
-   (#x5c38 ?Õù)
-   (#x5c39 ?Õú)
-   (#x5c3a ?¼Ü)
-   (#x5c3b ?¿¬)
-   (#x5c3c ?Æô)
-   (#x5c3d ?¿Ô)
-   (#x5c3e ?Èø)
-   (#x5c3f ?Ç¢)
-   (#x5c40 ?¶É)
-   (#x5c41 ?Õû)
-   (#x5c45 ?µï)
-   (#x5c46 ?Õü)
-   (#x5c48 ?¶þ)
-   (#x5c4a ?ÆÃ)
-   (#x5c4b ?²°)
-   (#x5c4d ?»Ó)
-   (#x5c4e ?Õý)
-   (#x5c4f ?Ö¢)
-   (#x5c50 ?Ö¡)
-   (#x5c51 ?¶ý)
-   (#x5c53 ?Õþ)
-   (#x5c55 ?Ÿ)
-   (#x5c5e ?°)
-   (#x5c60 ?ÅË)
-   (#x5c61 ?¼È)
-   (#x5c64 ?ÃØ)
-   (#x5c65 ?Ãú)
-   (#x5c6c ?Ö¤)
-   (#x5c6e ?Ö¥)
-   (#x5c6f ?ÆÖ)
-   (#x5c71 ?»³)
-   (#x5c76 ?Ö§)
-   (#x5c79 ?Ö¨)
-   (#x5c8c ?Ö©)
-   (#x5c90 ?´ô)
-   (#x5c91 ?Öª)
-   (#x5c94 ?Ö«)
-   (#x5ca1 ?²¬)
-   (#x5ca8 ?û)
-   (#x5ca9 ?´ä)
-   (#x5cab ?Ö­)
-   (#x5cac ?̨)
-   (#x5cb1 ?ÂÒ)
-   (#x5cb3 ?³Ù)
-   (#x5cb6 ?Ö¯)
-   (#x5cb7 ?Ö±)
-   (#x5cb8 ?´ß)
-   (#x5cbb ?Ö®)
-   (#x5cbc ?Ö°)
-   (#x5cbe ?Ö³)
-   (#x5cc5 ?Ö²)
-   (#x5cc7 ?Ö´)
-   (#x5cd9 ?Öµ)
-   (#x5ce0 ?ƽ)
-   (#x5ce1 ?¶®)
-   (#x5ce8 ?²å)
-   (#x5ce9 ?Ö¶)
-   (#x5cea ?Ö»)
-   (#x5ced ?Ö¹)
-   (#x5cef ?Ê÷)
-   (#x5cf0 ?Êö)
-   (#x5cf6 ?Åç)
-   (#x5cfa ?Ö¸)
-   (#x5cfb ?½Ô)
-   (#x5cfd ?Ö·)
-   (#x5d07 ?¿ò)
-   (#x5d0b ?Ö¼)
-   (#x5d0e ?ºê)
-   (#x5d11 ?ÖÂ)
-   (#x5d14 ?ÖÃ)
-   (#x5d15 ?Ö½)
-   (#x5d16 ?³³)
-   (#x5d17 ?Ö¾)
-   (#x5d18 ?ÖÇ)
-   (#x5d19 ?ÖÆ)
-   (#x5d1a ?ÖÅ)
-   (#x5d1b ?ÖÃ)
-   (#x5d1f ?ÖÀ)
-   (#x5d22 ?ÖÄ)
-   (#x5d29 ?Êø)
-   (#x5d4b ?ÖË)
-   (#x5d4c ?ÖÈ)
-   (#x5d4e ?ÖÊ)
-   (#x5d50 ?Ãò)
-   (#x5d52 ?ÖÉ)
-   (#x5d5c ?Ö¿)
-   (#x5d69 ?¿ó)
-   (#x5d6c ?ÖÌ)
-   (#x5d6f ?º·)
-   (#x5d73 ?ÖÃ)
-   (#x5d76 ?ÖÎ)
-   (#x5d82 ?ÖÑ)
-   (#x5d84 ?ÖÃ)
-   (#x5d87 ?ÖÃ)
-   (#x5d8b ?Åè)
-   (#x5d8c ?Öº)
-   (#x5d90 ?Ö×)
-   (#x5d9d ?ÖÓ)
-   (#x5da2 ?ÖÒ)
-   (#x5dac ?ÖÔ)
-   (#x5dae ?ÖÕ)
-   (#x5db7 ?ÖØ)
-   (#x5dba ?Îæ)
-   (#x5dbc ?ÖÙ)
-   (#x5dbd ?ÖÖ)
-   (#x5dc9 ?ÖÚ)
-   (#x5dcc ?´à)
-   (#x5dcd ?ÖÛ)
-   (#x5dd2 ?ÖÃ)
-   (#x5dd3 ?ÖÜ)
-   (#x5dd6 ?ÖÞ)
-   (#x5ddb ?Öß)
-   (#x5ddd ?Àî)
-   (#x5dde ?½£)
-   (#x5de1 ?½ä)
-   (#x5de3 ?Ãã)
-   (#x5de5 ?¹©)
-   (#x5de6 ?º¸)
-   (#x5de7 ?¹ª)
-   (#x5de8 ?µð)
-   (#x5deb ?Öà)
-   (#x5dee ?º¹)
-   (#x5df1 ?¸Ê)
-   (#x5df2 ?Öá)
-   (#x5df3 ?̦)
-   (#x5df4 ?ÇÃ)
-   (#x5df5 ?Öâ)
-   (#x5df7 ?¹«)
-   (#x5dfb ?´¬)
-   (#x5dfd ?ç)
-   (#x5dfe ?¶Ò)
-   (#x5e02 ?»Ô)
-   (#x5e03 ?ÉÛ)
-   (#x5e06 ?ÈÃ)
-   (#x5e0b ?Öã)
-   (#x5e0c ?´õ)
-   (#x5e11 ?Öæ)
-   (#x5e16 ?Ä¡)
-   (#x5e19 ?Öå)
-   (#x5e1a ?Öä)
-   (#x5e1b ?Öç)
-   (#x5e1d ?Äë)
-   (#x5e25 ?¿ã)
-   (#x5e2b ?»Õ)
-   (#x5e2d ?ÀÊ)
-   (#x5e2f ?ÂÓ)
-   (#x5e30 ?µ¢)
-   (#x5e33 ?Ä¢)
-   (#x5e36 ?Öè)
-   (#x5e37 ?Öé)
-   (#x5e38 ?¾ï)
-   (#x5e3d ?˹)
-   (#x5e40 ?Öì)
-   (#x5e43 ?Öë)
-   (#x5e44 ?Öê)
-   (#x5e45 ?Éý)
-   (#x5e47 ?Öó)
-   (#x5e4c ?ËÚ)
-   (#x5e4e ?Öí)
-   (#x5e54 ?Öï)
-   (#x5e55 ?Ëë)
-   (#x5e57 ?Öî)
-   (#x5e5f ?Öð)
-   (#x5e61 ?Ȩ)
-   (#x5e62 ?Öñ)
-   (#x5e63 ?ʾ)
-   (#x5e64 ?Öò)
-   (#x5e72 ?´³)
-   (#x5e73 ?Ê¿)
-   (#x5e74 ?ǯ)
-   (#x5e75 ?Öô)
-   (#x5e76 ?Öõ)
-   (#x5e78 ?¹¬)
-   (#x5e79 ?´´)
-   (#x5e7a ?Öö)
-   (#x5e7b ?¸¸)
-   (#x5e7c ?ÃÄ)
-   (#x5e7d ?Í©)
-   (#x5e7e ?´ö)
-   (#x5e7f ?Öø)
-   (#x5e81 ?Ä£)
-   (#x5e83 ?¹­)
-   (#x5e84 ?¾±)
-   (#x5e87 ?Èß)
-   (#x5e8a ?¾²)
-   (#x5e8f ?½ø)
-   (#x5e95 ?Äì)
-   (#x5e96 ?Êù)
-   (#x5e97 ?Ź)
-   (#x5e9a ?¹®)
-   (#x5e9c ?ÉÜ)
-   (#x5ea0 ?Öù)
-   (#x5ea6 ?ÅÙ)
-   (#x5ea7 ?ºÂ)
-   (#x5eab ?¸Ë)
-   (#x5ead ?Äí)
-   (#x5eb5 ?°Ã)
-   (#x5eb6 ?½î)
-   (#x5eb7 ?¹¯)
-   (#x5eb8 ?ÃÇ)
-   (#x5ec1 ?Öú)
-   (#x5ec2 ?Öû)
-   (#x5ec3 ?ÇÑ)
-   (#x5ec8 ?Öü)
-   (#x5ec9 ?Î÷)
-   (#x5eca ?Ï­)
-   (#x5ecf ?Öþ)
-   (#x5ed0 ?Öý)
-   (#x5ed3 ?³Ç)
-   (#x5ed6 ?ס)
-   (#x5eda ?פ)
-   (#x5edb ?×¥)
-   (#x5edd ?×£)
-   (#x5edf ?ÉÀ)
-   (#x5ee0 ?¾³)
-   (#x5ee1 ?ק)
-   (#x5ee2 ?צ)
-   (#x5ee3 ?×¢)
-   (#x5ee8 ?ר)
-   (#x5ee9 ?ש)
-   (#x5eec ?ת)
-   (#x5ef0 ?×­)
-   (#x5ef1 ?׫)
-   (#x5ef3 ?׬)
-   (#x5ef4 ?×®)
-   (#x5ef6 ?±ä)
-   (#x5ef7 ?Äî)
-   (#x5ef8 ?ׯ)
-   (#x5efa ?·ú)
-   (#x5efb ?²ö)
-   (#x5efc ?Ƕ)
-   (#x5efe ?×°)
-   (#x5eff ?Æû)
-   (#x5f01 ?ÊÛ)
-   (#x5f03 ?×±)
-   (#x5f04 ?Ï®)
-   (#x5f09 ?ײ)
-   (#x5f0a ?ÊÀ)
-   (#x5f0b ?×µ)
-   (#x5f0c ?С)
-   (#x5f0d ?б)
-   (#x5f0f ?¼°)
-   (#x5f10 ?Æõ)
-   (#x5f11 ?׶)
-   (#x5f13 ?µÃ)
-   (#x5f14 ?Ĥ)
-   (#x5f15 ?°ú)
-   (#x5f16 ?×·)
-   (#x5f17 ?ʦ)
-   (#x5f18 ?¹°)
-   (#x5f1b ?ÃÃ)
-   (#x5f1f ?Äï)
-   (#x5f25 ?Ìï)
-   (#x5f26 ?¸¹)
-   (#x5f27 ?¸Ì)
-   (#x5f29 ?׸)
-   (#x5f2d ?×¹)
-   (#x5f2f ?׿)
-   (#x5f31 ?¼å)
-   (#x5f35 ?Ä¥)
-   (#x5f37 ?¶¯)
-   (#x5f38 ?׺)
-   (#x5f3c ?É«)
-   (#x5f3e ?ÃÆ)
-   (#x5f41 ?×»)
-   (#x5f48 ?×¼)
-   (#x5f4a ?¶°)
-   (#x5f4c ?×½)
-   (#x5f4e ?×¾)
-   (#x5f51 ?×À)
-   (#x5f53 ?Åö)
-   (#x5f56 ?×Ã)
-   (#x5f57 ?×Â)
-   (#x5f59 ?×Ã)
-   (#x5f5c ?×´)
-   (#x5f5d ?׳)
-   (#x5f61 ?×Ä)
-   (#x5f62 ?·Ã)
-   (#x5f66 ?ɧ)
-   (#x5f69 ?ºÌ)
-   (#x5f6a ?É·)
-   (#x5f6b ?Ħ)
-   (#x5f6c ?ÉË)
-   (#x5f6d ?×Å)
-   (#x5f70 ?¾´)
-   (#x5f71 ?±Æ)
-   (#x5f73 ?×Æ)
-   (#x5f77 ?×Ç)
-   (#x5f79 ?Ìò)
-   (#x5f7c ?Èà)
-   (#x5f7f ?×Ê)
-   (#x5f80 ?±ý)
-   (#x5f81 ?À¬)
-   (#x5f82 ?×É)
-   (#x5f83 ?×È)
-   (#x5f84 ?·Â)
-   (#x5f85 ?ÂÔ)
-   (#x5f87 ?×Î)
-   (#x5f88 ?×Ì)
-   (#x5f8a ?×Ë)
-   (#x5f8b ?Χ)
-   (#x5f8c ?¸å)
-   (#x5f90 ?½ù)
-   (#x5f91 ?×Ã)
-   (#x5f92 ?Ã…ÃŒ)
-   (#x5f93 ?½¾)
-   (#x5f97 ?ÆÀ)
-   (#x5f98 ?×Ñ)
-   (#x5f99 ?×Ã)
-   (#x5f9e ?×Ã)
-   (#x5fa0 ?×Ò)
-   (#x5fa1 ?¸æ)
-   (#x5fa8 ?×Ó)
-   (#x5fa9 ?Éü)
-   (#x5faa ?½Û)
-   (#x5fad ?×Ô)
-   (#x5fae ?Èù)
-   (#x5fb3 ?ÆÃ)
-   (#x5fb4 ?ħ)
-   (#x5fb9 ?Å°)
-   (#x5fbc ?×Õ)
-   (#x5fbd ?µ«)
-   (#x5fc3 ?¿´)
-   (#x5fc5 ?ɬ)
-   (#x5fcc ?´÷)
-   (#x5fcd ?Ǧ)
-   (#x5fd6 ?×Ö)
-   (#x5fd7 ?»Ö)
-   (#x5fd8 ?˺)
-   (#x5fd9 ?Ë»)
-   (#x5fdc ?±þ)
-   (#x5fdd ?×Û)
-   (#x5fe0 ?Ãé)
-   (#x5fe4 ?×Ø)
-   (#x5feb ?²÷)
-   (#x5ff0 ?Ø­)
-   (#x5ff1 ?×Ú)
-   (#x5ff5 ?Ç°)
-   (#x5ff8 ?×Ù)
-   (#x5ffb ?××)
-   (#x5ffd ?¹ú)
-   (#x5fff ?×Ã)
-   (#x600e ?×ã)
-   (#x600f ?×é)
-   (#x6010 ?×á)
-   (#x6012 ?Ã…Ãœ)
-   (#x6015 ?×æ)
-   (#x6016 ?ÉÃ)
-   (#x6019 ?×à)
-   (#x601b ?×å)
-   (#x601c ?Îç)
-   (#x601d ?»×)
-   (#x6020 ?ÂÕ)
-   (#x6021 ?×Þ)
-   (#x6025 ?µÞ)
-   (#x6026 ?×è)
-   (#x6027 ?À­)
-   (#x6028 ?±å)
-   (#x6029 ?×â)
-   (#x602a ?²ø)
-   (#x602b ?×ç)
-   (#x602f ?¶±)
-   (#x6031 ?×ä)
-   (#x603a ?×ê)
-   (#x6041 ?×ì)
-   (#x6042 ?×ö)
-   (#x6043 ?×ô)
-   (#x6046 ?×ñ)
-   (#x604a ?×ð)
-   (#x604b ?Îø)
-   (#x604d ?×ò)
-   (#x6050 ?¶²)
-   (#x6052 ?¹±)
-   (#x6055 ?½ú)
-   (#x6059 ?×ù)
-   (#x605a ?×ë)
-   (#x605f ?×ï)
-   (#x6060 ?×ß)
-   (#x6062 ?²ú)
-   (#x6063 ?×ó)
-   (#x6064 ?×õ)
-   (#x6065 ?ÃÑ)
-   (#x6068 ?º¨)
-   (#x6069 ?²¸)
-   (#x606a ?×í)
-   (#x606b ?×ø)
-   (#x606c ?×÷)
-   (#x606d ?¶³)
-   (#x606f ?©)
-   (#x6070 ?³æ)
-   (#x6075 ?·Ã)
-   (#x6077 ?×î)
-   (#x6081 ?×ú)
-   (#x6083 ?×ý)
-   (#x6084 ?Ø¡)
-   (#x6089 ?¼½)
-   (#x608b ?ا)
-   (#x608c ?Äð)
-   (#x608d ?×û)
-   (#x6092 ?Ø¥)
-   (#x6094 ?²ù)
-   (#x6096 ?Ø£)
-   (#x6097 ?ؤ)
-   (#x609a ?×þ)
-   (#x609b ?Ø¢)
-   (#x609f ?¸ç)
-   (#x60a0 ?ͪ)
-   (#x60a3 ?´µ)
-   (#x60a6 ?±Ù)
-   (#x60a7 ?ئ)
-   (#x60a9 ?Ǻ)
-   (#x60aa ?°­)
-   (#x60b2 ?Èá)
-   (#x60b3 ?×Ü)
-   (#x60b4 ?ج)
-   (#x60b5 ?Ø°)
-   (#x60b6 ?Ìå)
-   (#x60b8 ?Ø©)
-   (#x60bc ?Åé)
-   (#x60bd ?Ø®)
-   (#x60c5 ?¾ð)
-   (#x60c6 ?د)
-   (#x60c7 ?Æ×)
-   (#x60d1 ?ÃÇ)
-   (#x60d3 ?Ø«)
-   (#x60d8 ?ر)
-   (#x60da ?¹û)
-   (#x60dc ?ÀË)
-   (#x60df ?°Ô)
-   (#x60e0 ?ت)
-   (#x60e1 ?ب)
-   (#x60e3 ?ÃÚ)
-   (#x60e7 ?×ü)
-   (#x60e8 ?»´)
-   (#x60f0 ?ÂÆ)
-   (#x60f1 ?ؽ)
-   (#x60f3 ?ÃÛ)
-   (#x60f4 ?ظ)
-   (#x60f6 ?ص)
-   (#x60f7 ?ض)
-   (#x60f9 ?¼æ)
-   (#x60fa ?ع)
-   (#x60fb ?ؼ)
-   (#x6100 ?Ø·)
-   (#x6101 ?½¥)
-   (#x6103 ?غ)
-   (#x6106 ?Ø´)
-   (#x6108 ?Ìü)
-   (#x6109 ?Ìû)
-   (#x610d ?ؾ)
-   (#x610e ?Ø¿)
-   (#x610f ?°Õ)
-   (#x6115 ?س)
-   (#x611a ?¶ò)
-   (#x611b ?°¦)
-   (#x611f ?´¶)
-   (#x6121 ?Ø»)
-   (#x6127 ?ØÃ)
-   (#x6128 ?ØÂ)
-   (#x612c ?ØÇ)
-   (#x6134 ?ØÈ)
-   (#x613c ?ØÆ)
-   (#x613d ?ØÉ)
-   (#x613e ?ØÃ)
-   (#x613f ?ØÅ)
-   (#x6142 ?ØÊ)
-   (#x6144 ?ØË)
-   (#x6147 ?ØÀ)
-   (#x6148 ?ȟ)
-   (#x614a ?ØÄ)
-   (#x614b ?ÂÖ)
-   (#x614c ?¹²)
-   (#x614d ?ز)
-   (#x614e ?¿µ)
-   (#x6153 ?ØØ)
-   (#x6155 ?Êé)
-   (#x6158 ?ØÎ)
-   (#x6159 ?ØÃ)
-   (#x615a ?ØÃ)
-   (#x615d ?Ø×)
-   (#x615f ?ØÖ)
-   (#x6162 ?Ëý)
-   (#x6163 ?´·)
-   (#x6165 ?ØÔ)
-   (#x6167 ?·Å)
-   (#x6168 ?³´)
-   (#x616b ?ØÑ)
-   (#x616e ?θ)
-   (#x616f ?ØÓ)
-   (#x6170 ?°Ö)
-   (#x6171 ?ØÕ)
-   (#x6173 ?ØÌ)
-   (#x6174 ?ØÒ)
-   (#x6175 ?ØÙ)
-   (#x6176 ?·Ä)
-   (#x6177 ?ØÃ)
-   (#x617e ?ÃÃ)
-   (#x6182 ?Í«)
-   (#x6187 ?ØÜ)
-   (#x618a ?Øà)
-   (#x618e ?Ãþ)
-   (#x6190 ?Îù)
-   (#x6191 ?Øá)
-   (#x6194 ?ØÞ)
-   (#x6196 ?ØÛ)
-   (#x6199 ?ØÚ)
-   (#x619a ?Øß)
-   (#x61a4 ?Ê°)
-   (#x61a7 ?Æ´)
-   (#x61a9 ?·Æ)
-   (#x61ab ?Øâ)
-   (#x61ac ?ØÃ)
-   (#x61ae ?Øã)
-   (#x61b2 ?·û)
-   (#x61b6 ?²±)
-   (#x61ba ?Øë)
-   (#x61be ?´¸)
-   (#x61c3 ?Øé)
-   (#x61c6 ?Øê)
-   (#x61c7 ?º©)
-   (#x61c8 ?Øè)
-   (#x61c9 ?Øæ)
-   (#x61ca ?Øå)
-   (#x61cb ?Øì)
-   (#x61cc ?Øä)
-   (#x61cd ?Øî)
-   (#x61d0 ?²û)
-   (#x61e3 ?Øð)
-   (#x61e6 ?Øï)
-   (#x61f2 ?Ĩ)
-   (#x61f4 ?Øó)
-   (#x61f6 ?Øñ)
-   (#x61f7 ?Øç)
-   (#x61f8 ?·ü)
-   (#x61fa ?Øò)
-   (#x61fc ?Øö)
-   (#x61fd ?Øõ)
-   (#x61fe ?Ø÷)
-   (#x61ff ?Øô)
-   (#x6200 ?Øø)
-   (#x6208 ?Øù)
-   (#x6209 ?Øú)
-   (#x620a ?Êê)
-   (#x620c ?Øü)
-   (#x620d ?Øû)
-   (#x620e ?½¿)
-   (#x6210 ?À®)
-   (#x6211 ?²æ)
-   (#x6212 ?²ü)
-   (#x6214 ?Øý)
-   (#x6216 ?°¿)
-   (#x621a ?ÀÌ)
-   (#x621b ?Øþ)
-   (#x621d ?ìÃ)
-   (#x621e ?Ù¡)
-   (#x621f ?·á)
-   (#x6221 ?Ù¢)
-   (#x6226 ?Àï)
-   (#x622a ?Ù£)
-   (#x622e ?Ù¤)
-   (#x622f ?µº)
-   (#x6230 ?Ù¥)
-   (#x6232 ?Ù¦)
-   (#x6233 ?Ù§)
-   (#x6234 ?Â×)
-   (#x6238 ?¸Ã)
-   (#x623b ?Ìá)
-   (#x623f ?˼)
-   (#x6240 ?½ê)
-   (#x6241 ?Ù¨)
-   (#x6247 ?Àð)
-   (#x6248 ?î½)
-   (#x6249 ?Èâ)
-   (#x624b ?¼ê)
-   (#x624d ?ºÃ)
-   (#x624e ?Ù©)
-   (#x6253 ?ÂÇ)
-   (#x6255 ?ʧ)
-   (#x6258 ?Âñ)
-   (#x625b ?Ù¬)
-   (#x625e ?Ùª)
-   (#x6260 ?Ù­)
-   (#x6263 ?Ù«)
-   (#x6268 ?Ù®)
-   (#x626e ?ʱ)
-   (#x6271 ?°·)
-   (#x6276 ?ÉÞ)
-   (#x6279 ?Èã)
-   (#x627c ?Ù¯)
-   (#x627e ?Ù²)
-   (#x627f ?¾µ)
-   (#x6280 ?µ»)
-   (#x6282 ?Ù°)
-   (#x6283 ?Ù·)
-   (#x6284 ?¾¶)
-   (#x6289 ?Ù±)
-   (#x628a ?ÇÄ)
-   (#x6291 ?ÃÞ)
-   (#x6292 ?Ù³)
-   (#x6293 ?Ù´)
-   (#x6294 ?Ù¸)
-   (#x6295 ?Åê)
-   (#x6296 ?Ùµ)
-   (#x6297 ?¹³)
-   (#x6298 ?ÀÞ)
-   (#x629b ?ÙÆ)
-   (#x629c ?È´)
-   (#x629e ?Âò)
-   (#x62ab ?Èä)
-   (#x62ac ?Ú­)
-   (#x62b1 ?Êú)
-   (#x62b5 ?Äñ)
-   (#x62b9 ?Ëõ)
-   (#x62bb ?Ù»)
-   (#x62bc ?²¡)
-   (#x62bd ?Ãê)
-   (#x62c2 ?ÙÄ)
-   (#x62c5 ?ô)
-   (#x62c6 ?Ù¾)
-   (#x62c7 ?ÙÅ)
-   (#x62c8 ?ÙÀ)
-   (#x62c9 ?ÙÇ)
-   (#x62ca ?ÙÃ)
-   (#x62cc ?ÙÂ)
-   (#x62cd ?Çï)
-   (#x62cf ?Ù¼)
-   (#x62d0 ?²ý)
-   (#x62d1 ?Ùº)
-   (#x62d2 ?µñ)
-   (#x62d3 ?Âó)
-   (#x62d4 ?Ù¶)
-   (#x62d7 ?Ù¹)
-   (#x62d8 ?¹´)
-   (#x62d9 ?ÀÛ)
-   (#x62db ?¾·)
-   (#x62dc ?ÙÃ)
-   (#x62dd ?ÇÒ)
-   (#x62e0 ?µò)
-   (#x62e1 ?³È)
-   (#x62ec ?³ç)
-   (#x62ed ?¿¡)
-   (#x62ee ?ÙÉ)
-   (#x62ef ?ÙÎ)
-   (#x62f1 ?ÙÊ)
-   (#x62f3 ?·ý)
-   (#x62f5 ?ÙÃ)
-   (#x62f6 ?Ȣ)
-   (#x62f7 ?¹é)
-   (#x62fe ?½¦)
-   (#x62ff ?Ù½)
-   (#x6301 ?»ý)
-   (#x6302 ?ÙÌ)
-   (#x6307 ?ȯ)
-   (#x6308 ?ÙÃ)
-   (#x6309 ?°Ä)
-   (#x630c ?ÙÈ)
-   (#x6311 ?Ä©)
-   (#x6319 ?µó)
-   (#x631f ?¶´)
-   (#x6327 ?ÙË)
-   (#x6328 ?°§)
-   (#x632b ?ºÃ)
-   (#x632f ?¿¶)
-   (#x633a ?Äò)
-   (#x633d ?ÈÔ)
-   (#x633e ?ÙÑ)
-   (#x633f ?ÃÞ)
-   (#x6349 ?ª)
-   (#x634c ?»«)
-   (#x634d ?ÙÒ)
-   (#x634f ?ÙÔ)
-   (#x6350 ?ÙÃ)
-   (#x6355 ?Êá)
-   (#x6357 ?Ľ)
-   (#x635c ?ÃÃœ)
-   (#x6367 ?Êû)
-   (#x6368 ?¼Î)
-   (#x6369 ?Ùà)
-   (#x636b ?Ùß)
-   (#x636e ?¿ø)
-   (#x6372 ?·þ)
-   (#x6376 ?ÙÙ)
-   (#x6377 ?¾¹)
-   (#x637a ?Æè)
-   (#x637b ?DZ)
-   (#x6380 ?Ù×)
-   (#x6383 ?ÃÃ)
-   (#x6388 ?¼ø)
-   (#x6389 ?ÙÜ)
-   (#x638c ?¾¸)
-   (#x638e ?ÙÖ)
-   (#x638f ?ÙÛ)
-   (#x6392 ?ÇÓ)
-   (#x6396 ?ÙÕ)
-   (#x6398 ?·¡)
-   (#x639b ?³Ã)
-   (#x639f ?ÙÃ)
-   (#x63a0 ?Ϋ)
-   (#x63a1 ?ºÎ)
-   (#x63a2 ?õ)
-   (#x63a3 ?ÙÚ)
-   (#x63a5 ?ÀÜ)
-   (#x63a7 ?¹µ)
-   (#x63a8 ?¿ä)
-   (#x63a9 ?±æ)
-   (#x63aa ?ü)
-   (#x63ab ?ÙØ)
-   (#x63ac ?µÅ)
-   (#x63b2 ?·Ç)
-   (#x63b4 ?ÄÃ)
-   (#x63b5 ?ÙÞ)
-   (#x63bb ?Ãß)
-   (#x63be ?Ùá)
-   (#x63c0 ?Ùã)
-   (#x63c3 ?·)
-   (#x63c4 ?Ùé)
-   (#x63c6 ?Ùä)
-   (#x63c9 ?Ùæ)
-   (#x63cf ?ÉÃ)
-   (#x63d0 ?Äó)
-   (#x63d2 ?Ùç)
-   (#x63d6 ?ͬ)
-   (#x63da ?ÃÈ)
-   (#x63db ?´¹)
-   (#x63e1 ?°®)
-   (#x63e3 ?Ùå)
-   (#x63e9 ?Ùâ)
-   (#x63ee ?´ø)
-   (#x63f4 ?±ç)
-   (#x63f6 ?Ùè)
-   (#x63fa ?ÃÉ)
-   (#x6406 ?Ùì)
-   (#x640d ?»)
-   (#x640f ?Ùó)
-   (#x6413 ?Ùí)
-   (#x6416 ?Ùê)
-   (#x6417 ?Ùñ)
-   (#x641c ?ÙÓ)
-   (#x6426 ?Ùî)
-   (#x6428 ?Ùò)
-   (#x642c ?ÈÂ)
-   (#x642d ?Åë)
-   (#x6434 ?Ùë)
-   (#x6436 ?Ùï)
-   (#x643a ?·È)
-   (#x643e ?ºñ)
-   (#x6442 ?ÀÃ)
-   (#x644e ?Ù÷)
-   (#x6458 ?Ŧ)
-   (#x6467 ?Ùô)
-   (#x6469 ?Ëà)
-   (#x646f ?Ùõ)
-   (#x6476 ?Ùö)
-   (#x6478 ?ÌÎ)
-   (#x647a ?À¢)
-   (#x6483 ?·â)
-   (#x6488 ?Ùý)
-   (#x6492 ?»µ)
-   (#x6493 ?Ùú)
-   (#x6495 ?Ùù)
-   (#x649a ?Dz)
-   (#x649e ?Ƶ)
-   (#x64a4 ?ű)
-   (#x64a5 ?Ùû)
-   (#x64a9 ?Ùü)
-   (#x64ab ?Éï)
-   (#x64ad ?ÇÅ)
-   (#x64ae ?ȣ)
-   (#x64b0 ?Àñ)
-   (#x64b2 ?ËÃ)
-   (#x64b9 ?³É)
-   (#x64bb ?Ú¥)
-   (#x64bc ?Ùþ)
-   (#x64c1 ?ÃÊ)
-   (#x64c2 ?Ú§)
-   (#x64c5 ?Ú£)
-   (#x64c7 ?Ú¤)
-   (#x64cd ?Ãà)
-   (#x64d2 ?Ú¢)
-   (#x64d4 ?Ù¿)
-   (#x64d8 ?Ú¦)
-   (#x64da ?Ú¡)
-   (#x64e0 ?Ú«)
-   (#x64e1 ?Ú¬)
-   (#x64e2 ?ŧ)
-   (#x64e3 ?Ú®)
-   (#x64e6 ?»¤)
-   (#x64e7 ?Ú©)
-   (#x64ec ?µ¼)
-   (#x64ef ?Ú¯)
-   (#x64f1 ?Ú¨)
-   (#x64f2 ?Ú³)
-   (#x64f4 ?Ú²)
-   (#x64f6 ?Ú±)
-   (#x64fa ?Ú´)
-   (#x64fd ?Ú¶)
-   (#x64fe ?¾ñ)
-   (#x6500 ?Úµ)
-   (#x6505 ?Ú¹)
-   (#x6518 ?Ú·)
-   (#x651c ?Ú¸)
-   (#x651d ?Ùð)
-   (#x6523 ?Ú»)
-   (#x6524 ?Úº)
-   (#x652a ?Ùø)
-   (#x652b ?Ú¼)
-   (#x652c ?Ú°)
-   (#x652f ?»Ù)
-   (#x6534 ?Ú½)
-   (#x6535 ?Ú¾)
-   (#x6536 ?ÚÀ)
-   (#x6537 ?Ú¿)
-   (#x6538 ?ÚÃ)
-   (#x6539 ?²þ)
-   (#x653b ?¹¶)
-   (#x653e ?Êü)
-   (#x653f ?À¯)
-   (#x6545 ?¸Î)
-   (#x6548 ?ÚÃ)
-   (#x654d ?ÚÆ)
-   (#x654f ?ÉÒ)
-   (#x6551 ?µß)
-   (#x6555 ?ÚÅ)
-   (#x6556 ?ÚÄ)
-   (#x6557 ?ÇÔ)
-   (#x6558 ?ÚÇ)
-   (#x6559 ?¶µ)
-   (#x655d ?ÚÉ)
-   (#x655e ?ÚÈ)
-   (#x6562 ?´º)
-   (#x6563 ?Ȧ)
-   (#x6566 ?ÆØ)
-   (#x656c ?·É)
-   (#x6570 ?¿ô)
-   (#x6572 ?ÚÊ)
-   (#x6574 ?À°)
-   (#x6575 ?Ũ)
-   (#x6577 ?Éß)
-   (#x6578 ?ÚË)
-   (#x6582 ?ÚÌ)
-   (#x6583 ?ÚÃ)
-   (#x6587 ?ʸ)
-   (#x6588 ?ÕÃ)
-   (#x6589 ?ÀÆ)
-   (#x658c ?ÉÌ)
-   (#x658e ?ºØ)
-   (#x6590 ?Èå)
-   (#x6591 ?ÈÃ)
-   (#x6597 ?Ã…Ã)
-   (#x6599 ?ÃŽÃ)
-   (#x659b ?ÚÃ)
-   (#x659c ?¼Ã)
-   (#x659f ?ÚÃ)
-   (#x65a1 ?°¶)
-   (#x65a4 ?¶Ô)
-   (#x65a5 ?ÀÃ)
-   (#x65a7 ?Éà)
-   (#x65ab ?ÚÑ)
-   (#x65ac ?»Â)
-   (#x65ad ?ÃÇ)
-   (#x65af ?»Û)
-   (#x65b0 ?¿·)
-   (#x65b7 ?ÚÒ)
-   (#x65b9 ?Êý)
-   (#x65bc ?±÷)
-   (#x65bd ?Ȇ)
-   (#x65c1 ?ÚÕ)
-   (#x65c3 ?ÚÓ)
-   (#x65c4 ?ÚÖ)
-   (#x65c5 ?ι)
-   (#x65c6 ?ÚÔ)
-   (#x65cb ?Àû)
-   (#x65cc ?Ú×)
-   (#x65cf ?²)
-   (#x65d2 ?ÚØ)
-   (#x65d7 ?´ú)
-   (#x65d9 ?ÚÚ)
-   (#x65db ?ÚÙ)
-   (#x65e0 ?ÚÛ)
-   (#x65e1 ?ÚÜ)
-   (#x65e2 ?´û)
-   (#x65e5 ?Æü)
-   (#x65e6 ?ö)
-   (#x65e7 ?µì)
-   (#x65e8 ?»Ã)
-   (#x65e9 ?Ãá)
-   (#x65ec ?½Ü)
-   (#x65ed ?°°)
-   (#x65f1 ?ÚÃ)
-   (#x65fa ?²¢)
-   (#x65fb ?Úá)
-   (#x6602 ?¹·)
-   (#x6603 ?Úà)
-   (#x6606 ?º«)
-   (#x6607 ?¾º)
-   (#x660a ?Úß)
-   (#x660c ?¾»)
-   (#x660e ?ÌÀ)
-   (#x660f ?ºª)
-   (#x6613 ?°×)
-   (#x6614 ?ÀÎ)
-   (#x661c ?Úæ)
-   (#x661f ?˱)
-   (#x6620 ?±Ç)
-   (#x6625 ?½Õ)
-   (#x6627 ?Ëæ)
-   (#x6628 ?ºò)
-   (#x662d ?¾¼)
-   (#x662f ?ˤ)
-   (#x6634 ?Úå)
-   (#x6635 ?Úã)
-   (#x6636 ?Úä)
-   (#x663c ?Ãë)
-   (#x663f ?Û¦)
-   (#x6641 ?Úê)
-   (#x6642 ?»þ)
-   (#x6643 ?¹¸)
-   (#x6644 ?Úè)
-   (#x6649 ?Úé)
-   (#x664b ?¿¸)
-   (#x664f ?Úç)
-   (#x6652 ?»¯)
-   (#x665d ?Úì)
-   (#x665e ?Úë)
-   (#x665f ?Úð)
-   (#x6662 ?Úñ)
-   (#x6664 ?Úí)
-   (#x6666 ?³¢)
-   (#x6667 ?Úî)
-   (#x6668 ?Úï)
-   (#x6669 ?ÈÕ)
-   (#x666e ?Éá)
-   (#x666f ?·Ê)
-   (#x6670 ?Úò)
-   (#x6674 ?À²)
-   (#x6676 ?¾½)
-   (#x667a ?ÃÒ)
-   (#x6681 ?¶Ç)
-   (#x6683 ?Úó)
-   (#x6684 ?Ú÷)
-   (#x6687 ?²Ë)
-   (#x6688 ?Úô)
-   (#x6689 ?Úö)
-   (#x668e ?Úõ)
-   (#x6691 ?½ë)
-   (#x6696 ?ÃÈ)
-   (#x6697 ?°Å)
-   (#x6698 ?Úø)
-   (#x669d ?Úù)
-   (#x66a2 ?Ī)
-   (#x66a6 ?Îñ)
-   (#x66ab ?»Ã)
-   (#x66ae ?Êë)
-   (#x66b4 ?˽)
-   (#x66b8 ?Û¢)
-   (#x66b9 ?Úû)
-   (#x66bc ?Úþ)
-   (#x66be ?Úý)
-   (#x66c1 ?Úú)
-   (#x66c4 ?Û¡)
-   (#x66c7 ?ÆÞ)
-   (#x66c9 ?Úü)
-   (#x66d6 ?Û£)
-   (#x66d9 ?½ì)
-   (#x66da ?Û¤)
-   (#x66dc ?ÃË)
-   (#x66dd ?Çø)
-   (#x66e0 ?Û¥)
-   (#x66e6 ?Û§)
-   (#x66e9 ?Û¨)
-   (#x66f0 ?Û©)
-   (#x66f2 ?¶Ê)
-   (#x66f3 ?±È)
-   (#x66f4 ?¹¹)
-   (#x66f5 ?Ûª)
-   (#x66f7 ?Û«)
-   (#x66f8 ?½ñ)
-   (#x66f9 ?Ãâ)
-   (#x66fc ?ÒØ)
-   (#x66fd ?þ)
-   (#x66fe ?ý)
-   (#x66ff ?ÂØ)
-   (#x6700 ?ºÇ)
-   (#x6703 ?Ãò)
-   (#x6708 ?·î)
-   (#x6709 ?Í­)
-   (#x670b ?Êþ)
-   (#x670d ?Éþ)
-   (#x670f ?Û¬)
-   (#x6714 ?ºó)
-   (#x6715 ?Ä¿)
-   (#x6716 ?Û­)
-   (#x6717 ?ϯ)
-   (#x671b ?˾)
-   (#x671d ?Ä«)
-   (#x671e ?Û®)
-   (#x671f ?´ü)
-   (#x6726 ?Û¯)
-   (#x6727 ?Û°)
-   (#x6728 ?ÌÚ)
-   (#x672a ?̤)
-   (#x672b ?Ëö)
-   (#x672c ?ËÜ)
-   (#x672d ?ȴ)
-   (#x672e ?Û²)
-   (#x6731 ?¼ë)
-   (#x6734 ?ËÑ)
-   (#x6736 ?Û´)
-   (#x6737 ?Û·)
-   (#x6738 ?Û¶)
-   (#x673a ?´ù)
-   (#x673d ?µà)
-   (#x673f ?Û³)
-   (#x6741 ?Ûµ)
-   (#x6746 ?Û¸)
-   (#x6749 ?¿ù)
-   (#x674e ?Ãû)
-   (#x674f ?°É)
-   (#x6750 ?ºà)
-   (#x6751 ?¼)
-   (#x6753 ?¼Ã)
-   (#x6756 ?¾ó)
-   (#x6759 ?Û»)
-   (#x675c ?Ã…ÃŽ)
-   (#x675e ?Û¹)
-   (#x675f ?«)
-   (#x6760 ?Ûº)
-   (#x6761 ?¾ò)
-   (#x6762 ?ÃŒÃ)
-   (#x6763 ?Û¼)
-   (#x6764 ?Û½)
-   (#x6765 ?Ãè)
-   (#x676a ?ÛÂ)
-   (#x676d ?¹º)
-   (#x676f ?ÇÕ)
-   (#x6770 ?Û¿)
-   (#x6771 ?Åì)
-   (#x6772 ?ÚÞ)
-   (#x6773 ?Úâ)
-   (#x6775 ?µÃ)
-   (#x6777 ?ÇÇ)
-   (#x677c ?ÛÃ)
-   (#x677e ?¾¾)
-   (#x677f ?ÈÄ)
-   (#x6785 ?ÛÇ)
-   (#x6787 ?Èú)
-   (#x6789 ?Û¾)
-   (#x678b ?ÛÄ)
-   (#x678c ?ÛÃ)
-   (#x6790 ?ÀÃ)
-   (#x6795 ?Ëí)
-   (#x6797 ?ÎÓ)
-   (#x679a ?Ëç)
-   (#x679c ?²Ì)
-   (#x679d ?»Þ)
-   (#x67a0 ?ÃÈ)
-   (#x67a1 ?ÛÆ)
-   (#x67a2 ?¿õ)
-   (#x67a6 ?ÛÅ)
-   (#x67a9 ?ÛÀ)
-   (#x67af ?¸Ã)
-   (#x67b3 ?ÛÌ)
-   (#x67b4 ?ÛÊ)
-   (#x67b6 ?²Ã)
-   (#x67b7 ?ÛÈ)
-   (#x67b8 ?ÛÎ)
-   (#x67b9 ?ÛÔ)
-   (#x67c1 ?ÂÈ)
-   (#x67c4 ?ÊÃ)
-   (#x67c6 ?ÛÖ)
-   (#x67ca ?É¢)
-   (#x67ce ?ÛÕ)
-   (#x67cf ?Çð)
-   (#x67d0 ?Ë¿)
-   (#x67d1 ?´»)
-   (#x67d3 ?À÷)
-   (#x67d4 ?½À)
-   (#x67d8 ?ÄÓ)
-   (#x67da ?Í®)
-   (#x67dd ?ÛÑ)
-   (#x67de ?ÛÃ)
-   (#x67e2 ?ÛÒ)
-   (#x67e4 ?ÛÃ)
-   (#x67e7 ?Û×)
-   (#x67e9 ?ÛÃ)
-   (#x67ec ?ÛË)
-   (#x67ee ?ÛÓ)
-   (#x67ef ?ÛÉ)
-   (#x67f1 ?Ãì)
-   (#x67f3 ?Ìø)
-   (#x67f4 ?¼Æ)
-   (#x67f5 ?ºô)
-   (#x67fb ?ºº)
-   (#x67fe ?Ëï)
-   (#x67ff ?³Ã)
-   (#x6802 ?ÄÎ)
-   (#x6803 ?ÆÊ)
-   (#x6804 ?±É)
-   (#x6813 ?Àò)
-   (#x6816 ?À´)
-   (#x6817 ?·ª)
-   (#x681e ?ÛÙ)
-   (#x6821 ?¹»)
-   (#x6822 ?³ü)
-   (#x6829 ?ÛÛ)
-   (#x682a ?³ô)
-   (#x682b ?Ûá)
-   (#x6832 ?ÛÞ)
-   (#x6834 ?Àó)
-   (#x6838 ?³Ë)
-   (#x6839 ?º¬)
-   (#x683c ?³Ê)
-   (#x683d ?ºÃ)
-   (#x6840 ?ÛÜ)
-   (#x6841 ?·å)
-   (#x6842 ?·Ë)
-   (#x6843 ?Åí)
-   (#x6846 ?ÛÚ)
-   (#x6848 ?°Æ)
-   (#x684d ?ÛÃ)
-   (#x684e ?Ûß)
-   (#x6850 ?¶Ã)
-   (#x6851 ?·¬)
-   (#x6853 ?´¼)
-   (#x6854 ?µË)
-   (#x6859 ?Ûâ)
-   (#x685c ?ºù)
-   (#x685d ?Ëñ)
-   (#x685f ?»·)
-   (#x6863 ?Ûã)
-   (#x6867 ?É°)
-   (#x6874 ?Ûï)
-   (#x6876 ?²³)
-   (#x6877 ?Ûä)
-   (#x687e ?Ûõ)
-   (#x687f ?Ûå)
-   (#x6881 ?ÎÂ)
-   (#x6883 ?Ûì)
-   (#x6885 ?Çß)
-   (#x688d ?Ûô)
-   (#x688f ?Ûç)
-   (#x6893 ?°´)
-   (#x6894 ?Ûé)
-   (#x6897 ?¹¼)
-   (#x689b ?Ûë)
-   (#x689d ?Ûê)
-   (#x689f ?Ûæ)
-   (#x68a0 ?Ûñ)
-   (#x68a2 ?¾¿)
-   (#x68a6 ?Ôí)
-   (#x68a7 ?¸è)
-   (#x68a8 ?Ãü)
-   (#x68ad ?Ûè)
-   (#x68af ?Äô)
-   (#x68b0 ?³£)
-   (#x68b1 ?º­)
-   (#x68b3 ?Ûà)
-   (#x68b5 ?Ûð)
-   (#x68b6 ?³á)
-   (#x68b9 ?Ûî)
-   (#x68ba ?Ûò)
-   (#x68bc ?Åî)
-   (#x68c4 ?´þ)
-   (#x68c6 ?ܲ)
-   (#x68c9 ?ÌÉ)
-   (#x68ca ?Û÷)
-   (#x68cb ?´ý)
-   (#x68cd ?Ûþ)
-   (#x68d2 ?ËÀ)
-   (#x68d4 ?Ü¡)
-   (#x68d5 ?Ü£)
-   (#x68d7 ?ܧ)
-   (#x68d8 ?Ûù)
-   (#x68da ?ê)
-   (#x68df ?Åï)
-   (#x68e0 ?Ü«)
-   (#x68e1 ?Ûü)
-   (#x68e3 ?ܨ)
-   (#x68e7 ?Ü¢)
-   (#x68ee ?¿¹)
-   (#x68ef ?ܬ)
-   (#x68f2 ?À³)
-   (#x68f9 ?ܪ)
-   (#x68fa ?´½)
-   (#x6900 ?ÃÃ)
-   (#x6901 ?Ûö)
-   (#x6904 ?ܦ)
-   (#x6905 ?°Ø)
-   (#x6908 ?Ûø)
-   (#x690b ?̺)
-   (#x690c ?Ûý)
-   (#x690d ?¿¢)
-   (#x690e ?ÄÇ)
-   (#x690f ?Ûó)
-   (#x6912 ?Ü¥)
-   (#x6919 ?¿ú)
-   (#x691a ?ܯ)
-   (#x691b ?³ñ)
-   (#x691c ?¸¡)
-   (#x6921 ?ܱ)
-   (#x6922 ?Ûú)
-   (#x6923 ?Ü°)
-   (#x6925 ?Ü©)
-   (#x6926 ?Ûû)
-   (#x6928 ?Ü­)
-   (#x692a ?Ü®)
-   (#x6930 ?Ü¿)
-   (#x6934 ?ÆÎ)
-   (#x6936 ?ܤ)
-   (#x6939 ?Ü»)
-   (#x693d ?ܽ)
-   (#x693f ?ÄØ)
-   (#x694a ?ÃÃŒ)
-   (#x6953 ?Éö)
-   (#x6954 ?ܸ)
-   (#x6955 ?ÂÊ)
-   (#x6959 ?ܾ)
-   (#x695a ?ÿ)
-   (#x695c ?ܵ)
-   (#x695d ?ÜÂ)
-   (#x695e ?ÃœÃ)
-   (#x6960 ?Æï)
-   (#x6961 ?ÜÀ)
-   (#x6962 ?Æê)
-   (#x696a ?ÜÄ)
-   (#x696b ?Ü·)
-   (#x696d ?¶È)
-   (#x696e ?ܺ)
-   (#x696f ?½Ã)
-   (#x6973 ?Çà)
-   (#x6974 ?ܼ)
-   (#x6975 ?¶Ë)
-   (#x6977 ?Ü´)
-   (#x6978 ?ܶ)
-   (#x6979 ?ܳ)
-   (#x697c ?Ï°)
-   (#x697d ?³Ú)
-   (#x697e ?ܹ)
-   (#x6981 ?ÜÃ)
-   (#x6982 ?³µ)
-   (#x698a ?ºç)
-   (#x698e ?±Ã)
-   (#x6991 ?ÜÔ)
-   (#x6994 ?ϱ)
-   (#x6995 ?Ü×)
-   (#x699b ?¿º)
-   (#x699c ?ÜÖ)
-   (#x69a0 ?ÜÕ)
-   (#x69a7 ?ÜÒ)
-   (#x69ae ?ÜÆ)
-   (#x69b1 ?Üã)
-   (#x69b2 ?ÜÅ)
-   (#x69b4 ?ÜØ)
-   (#x69bb ?ÃœÃ)
-   (#x69be ?ÜË)
-   (#x69bf ?ÜÈ)
-   (#x69c1 ?ÜÉ)
-   (#x69c3 ?ÜÑ)
-   (#x69c7 ?ô¢)
-   (#x69ca ?ÜÎ)
-   (#x69cb ?¹½)
-   (#x69cc ?ÄÈ)
-   (#x69cd ?Ãä)
-   (#x69ce ?ÜÌ)
-   (#x69d0 ?ÜÇ)
-   (#x69d3 ?ÜÊ)
-   (#x69d8 ?ÃÃ)
-   (#x69d9 ?Ëê)
-   (#x69dd ?ÃœÃ)
-   (#x69de ?ÜÙ)
-   (#x69e7 ?Üá)
-   (#x69e8 ?ÜÚ)
-   (#x69eb ?Üç)
-   (#x69ed ?Üå)
-   (#x69f2 ?Üà)
-   (#x69f9 ?Üß)
-   (#x69fb ?ÄÃ)
-   (#x69fd ?ÃÃ¥)
-   (#x69ff ?ÃœÃ)
-   (#x6a02 ?ÜÛ)
-   (#x6a05 ?Üâ)
-   (#x6a0a ?Üè)
-   (#x6a0b ?Èõ)
-   (#x6a0c ?Üî)
-   (#x6a12 ?Üé)
-   (#x6a13 ?Üì)
-   (#x6a14 ?Üæ)
-   (#x6a17 ?Ãô)
-   (#x6a19 ?ɸ)
-   (#x6a1b ?ÜÜ)
-   (#x6a1e ?Üä)
-   (#x6a1f ?¾À)
-   (#x6a21 ?ÃŒÃ)
-   (#x6a22 ?Üø)
-   (#x6a23 ?Üë)
-   (#x6a29 ?¸¢)
-   (#x6a2a ?²£)
-   (#x6a2b ?³ß)
-   (#x6a2e ?ÜÓ)
-   (#x6a35 ?¾Ã)
-   (#x6a36 ?Üð)
-   (#x6a38 ?Ü÷)
-   (#x6a39 ?¼ù)
-   (#x6a3a ?³ò)
-   (#x6a3d ?î)
-   (#x6a44 ?Üí)
-   (#x6a47 ?Üò)
-   (#x6a48 ?Üö)
-   (#x6a4b ?¶¶)
-   (#x6a58 ?µÌ)
-   (#x6a59 ?Üô)
-   (#x6a5f ?µ¡)
-   (#x6a61 ?ÆË)
-   (#x6a62 ?Üó)
-   (#x6a66 ?Üõ)
-   (#x6a72 ?Üï)
-   (#x6a78 ?Üñ)
-   (#x6a7f ?³à)
-   (#x6a80 ?ÃÉ)
-   (#x6a84 ?Üü)
-   (#x6a8d ?Üú)
-   (#x6a8e ?¸é)
-   (#x6a90 ?Üù)
-   (#x6a97 ?Ý¡)
-   (#x6a9c ?ÛØ)
-   (#x6aa0 ?Üû)
-   (#x6aa2 ?Üý)
-   (#x6aa3 ?Üþ)
-   (#x6aaa ?ݬ)
-   (#x6aac ?ݨ)
-   (#x6aae ?Ûí)
-   (#x6ab3 ?ݧ)
-   (#x6ab8 ?ݦ)
-   (#x6abb ?Ý£)
-   (#x6ac1 ?Üê)
-   (#x6ac2 ?Ý¥)
-   (#x6ac3 ?ݤ)
-   (#x6ad1 ?ݪ)
-   (#x6ad3 ?Ϧ)
-   (#x6ada ?Ý­)
-   (#x6adb ?¶û)
-   (#x6ade ?Ý©)
-   (#x6adf ?Ý«)
-   (#x6ae8 ?ȧ)
-   (#x6aea ?Ý®)
-   (#x6afa ?ݲ)
-   (#x6afb ?ݯ)
-   (#x6b04 ?Ãó)
-   (#x6b05 ?Ý°)
-   (#x6b0a ?ÜÞ)
-   (#x6b12 ?ݳ)
-   (#x6b16 ?Ý´)
-   (#x6b1d ?±µ)
-   (#x6b1f ?ݶ)
-   (#x6b20 ?·ç)
-   (#x6b21 ?¼¡)
-   (#x6b23 ?¶Õ)
-   (#x6b27 ?²¤)
-   (#x6b32 ?Ãß)
-   (#x6b37 ?ݸ)
-   (#x6b38 ?Ý·)
-   (#x6b39 ?ݺ)
-   (#x6b3a ?µ½)
-   (#x6b3d ?¶Ö)
-   (#x6b3e ?´¾)
-   (#x6b43 ?ݽ)
-   (#x6b47 ?ݼ)
-   (#x6b49 ?ݾ)
-   (#x6b4c ?²Î)
-   (#x6b4e ?÷)
-   (#x6b50 ?Ý¿)
-   (#x6b53 ?´¿)
-   (#x6b54 ?ÃÃ)
-   (#x6b59 ?ÃÀ)
-   (#x6b5b ?ÃÂ)
-   (#x6b5f ?ÃÃ)
-   (#x6b61 ?ÃÄ)
-   (#x6b62 ?ȧ)
-   (#x6b63 ?˵)
-   (#x6b64 ?º¡)
-   (#x6b66 ?Éð)
-   (#x6b69 ?Êâ)
-   (#x6b6a ?ÃÄ)
-   (#x6b6f ?»õ)
-   (#x6b73 ?ºÃ)
-   (#x6b74 ?Îò)
-   (#x6b78 ?ÃÃ…)
-   (#x6b79 ?ÃÆ)
-   (#x6b7b ?Ȉ)
-   (#x6b7f ?ÃÇ)
-   (#x6b80 ?ÃÈ)
-   (#x6b83 ?ÃÊ)
-   (#x6b84 ?ÃÉ)
-   (#x6b86 ?ËØ)
-   (#x6b89 ?½Þ)
-   (#x6b8a ?¼ì)
-   (#x6b8b ?Ȁ)
-   (#x6b8d ?ÃË)
-   (#x6b95 ?ÃÃ)
-   (#x6b96 ?¿£)
-   (#x6b98 ?ÃÃŒ)
-   (#x6b9e ?ÃÃŽ)
-   (#x6ba4 ?ÃÃ)
-   (#x6baa ?ÃÃ)
-   (#x6bab ?ÃÑ)
-   (#x6baf ?ÃÃ’)
-   (#x6bb1 ?ÃÔ)
-   (#x6bb2 ?ÃÓ)
-   (#x6bb3 ?ÃÕ)
-   (#x6bb4 ?²¥)
-   (#x6bb5 ?ÃÊ)
-   (#x6bb7 ?ÃÖ)
-   (#x6bba ?»¦)
-   (#x6bbb ?³Ì)
-   (#x6bbc ?Ã×)
-   (#x6bbf ?ÅÂ)
-   (#x6bc0 ?ÔÌ)
-   (#x6bc5 ?µ£)
-   (#x6bc6 ?ÃØ)
-   (#x6bcb ?ÃÙ)
-   (#x6bcd ?Êì)
-   (#x6bce ?Ëè)
-   (#x6bd2 ?ÆÇ)
-   (#x6bd3 ?ÃÚ)
-   (#x6bd4 ?Èæ)
-   (#x6bd8 ?Èû)
-   (#x6bdb ?ÌÓ)
-   (#x6bdf ?ÃÛ)
-   (#x6beb ?ÃÃ)
-   (#x6bec ?ÃÃœ)
-   (#x6bef ?Ãß)
-   (#x6bf3 ?ÃÞ)
-   (#x6c08 ?Ãá)
-   (#x6c0f ?ȇ)
-   (#x6c11 ?̱)
-   (#x6c13 ?Ãâ)
-   (#x6c14 ?Ãã)
-   (#x6c17 ?µ¤)
-   (#x6c1b ?Ãä)
-   (#x6c23 ?Ãæ)
-   (#x6c24 ?ÃÃ¥)
-   (#x6c34 ?¿å)
-   (#x6c37 ?ɹ)
-   (#x6c38 ?±Ê)
-   (#x6c3e ?ÈÅ)
-   (#x6c40 ?Äõ)
-   (#x6c41 ?½Ã)
-   (#x6c42 ?µá)
-   (#x6c4e ?ÈÆ)
-   (#x6c50 ?¼®)
-   (#x6c55 ?Ãè)
-   (#x6c57 ?´À)
-   (#x6c5a ?±ø)
-   (#x6c5d ?Æò)
-   (#x6c5e ?Ãç)
-   (#x6c5f ?¹¾)
-   (#x6c60 ?ÃÓ)
-   (#x6c62 ?Ãé)
-   (#x6c68 ?Ãñ)
-   (#x6c6a ?Ãê)
-   (#x6c70 ?ÂÃ)
-   (#x6c72 ?µâ)
-   (#x6c73 ?Ãò)
-   (#x6c7a ?·è)
-   (#x6c7d ?µ¥)
-   (#x6c7e ?Ãð)
-   (#x6c81 ?Ãî)
-   (#x6c82 ?Ãë)
-   (#x6c83 ?Ãà)
-   (#x6c88 ?ÄÀ)
-   (#x6c8c ?ÆÙ)
-   (#x6c8d ?Ãì)
-   (#x6c90 ?Ãô)
-   (#x6c92 ?Ãó)
-   (#x6c93 ?·£)
-   (#x6c96 ?²­)
-   (#x6c99 ?º»)
-   (#x6c9a ?Ãí)
-   (#x6c9b ?Ãï)
-   (#x6ca1 ?Ë×)
-   (#x6ca2 ?Âô)
-   (#x6cab ?Ë÷)
-   (#x6cae ?Ãü)
-   (#x6cb1 ?Ãý)
-   (#x6cb3 ?²Ã)
-   (#x6cb8 ?ʨ)
-   (#x6cb9 ?Ìý)
-   (#x6cba ?Þ¡)
-   (#x6cbb ?¼£)
-   (#x6cbc ?¾Â)
-   (#x6cbd ?Ãø)
-   (#x6cbe ?Ãþ)
-   (#x6cbf ?±è)
-   (#x6cc1 ?¶·)
-   (#x6cc4 ?Ãõ)
-   (#x6cc5 ?Ãú)
-   (#x6cc9 ?Àô)
-   (#x6cca ?Çñ)
-   (#x6ccc ?Èç)
-   (#x6cd3 ?Ã÷)
-   (#x6cd5 ?Ë¡)
-   (#x6cd7 ?Ãù)
-   (#x6cd9 ?Þ¤)
-   (#x6cdb ?Þ¢)
-   (#x6cdd ?Ãû)
-   (#x6ce1 ?Ë¢)
-   (#x6ce2 ?ÇÈ)
-   (#x6ce3 ?µã)
-   (#x6ce5 ?Å¥)
-   (#x6ce8 ?Ãí)
-   (#x6cea ?Þ¥)
-   (#x6cef ?Þ£)
-   (#x6cf0 ?ÂÙ)
-   (#x6cf1 ?Ãö)
-   (#x6cf3 ?±Ë)
-   (#x6d0b ?ÃÃŽ)
-   (#x6d0c ?Þ°)
-   (#x6d12 ?Þ¯)
-   (#x6d17 ?Àö)
-   (#x6d19 ?Þ¬)
-   (#x6d1b ?Ãì)
-   (#x6d1e ?ƶ)
-   (#x6d1f ?Þ¦)
-   (#x6d25 ?ÄÅ)
-   (#x6d29 ?±Ì)
-   (#x6d2a ?¹¿)
-   (#x6d2b ?Þ©)
-   (#x6d32 ?½§)
-   (#x6d33 ?Þ®)
-   (#x6d35 ?Þ­)
-   (#x6d36 ?Þ¨)
-   (#x6d38 ?Þ«)
-   (#x6d3b ?³è)
-   (#x6d3d ?Þª)
-   (#x6d3e ?ÇÉ)
-   (#x6d41 ?ή)
-   (#x6d44 ?¾ô)
-   (#x6d45 ?Àõ)
-   (#x6d59 ?Þ¶)
-   (#x6d5a ?Þ´)
-   (#x6d5c ?ÉÃ)
-   (#x6d63 ?Þ±)
-   (#x6d64 ?Þ³)
-   (#x6d66 ?±º)
-   (#x6d69 ?¹À)
-   (#x6d6a ?ϲ)
-   (#x6d6c ?³½)
-   (#x6d6e ?Éâ)
-   (#x6d74 ?Ãá)
-   (#x6d77 ?³¤)
-   (#x6d78 ?¿»)
-   (#x6d79 ?Þµ)
-   (#x6d85 ?Þº)
-   (#x6d88 ?¾Ã)
-   (#x6d8c ?Í°)
-   (#x6d8e ?Þ·)
-   (#x6d93 ?Þ²)
-   (#x6d95 ?Þ¸)
-   (#x6d99 ?ÎÞ)
-   (#x6d9b ?Åó)
-   (#x6d9c ?ÆÂ)
-   (#x6daf ?³¶)
-   (#x6db2 ?±Õ)
-   (#x6db5 ?Þ¾)
-   (#x6db8 ?ÞÃ)
-   (#x6dbc ?ÎÃ)
-   (#x6dc0 ?Ãä)
-   (#x6dc5 ?ÞÈ)
-   (#x6dc6 ?ÞÂ)
-   (#x6dc7 ?Þ¿)
-   (#x6dcb ?ÎÔ)
-   (#x6dcc ?ÞÅ)
-   (#x6dd1 ?½Ê)
-   (#x6dd2 ?ÞÇ)
-   (#x6dd5 ?ÞÌ)
-   (#x6dd8 ?Åñ)
-   (#x6dd9 ?ÞÊ)
-   (#x6dde ?ÞÄ)
-   (#x6de1 ?ø)
-   (#x6de4 ?ÞË)
-   (#x6de6 ?ÞÀ)
-   (#x6de8 ?ÞÆ)
-   (#x6dea ?ÞÃ)
-   (#x6deb ?°ü)
-   (#x6dec ?ÞÃ)
-   (#x6dee ?ÞÎ)
-   (#x6df1 ?¿¼)
-   (#x6df3 ?½ß)
-   (#x6df5 ?Ê¥)
-   (#x6df7 ?º®)
-   (#x6df9 ?Þ»)
-   (#x6dfa ?ÞÉ)
-   (#x6dfb ?ź)
-   (#x6e05 ?˦)
-   (#x6e07 ?³é)
-   (#x6e08 ?ºÑ)
-   (#x6e09 ?¾Ä)
-   (#x6e0a ?Þ½)
-   (#x6e0b ?½Â)
-   (#x6e13 ?·Ì)
-   (#x6e15 ?Þ¼)
-   (#x6e19 ?ÞÒ)
-   (#x6e1a ?½í)
-   (#x6e1b ?¸º)
-   (#x6e1d ?Þá)
-   (#x6e1f ?ÞÛ)
-   (#x6e20 ?µô)
-   (#x6e21 ?Ã…Ã)
-   (#x6e23 ?ÞÖ)
-   (#x6e24 ?Þß)
-   (#x6e25 ?°¯)
-   (#x6e26 ?±²)
-   (#x6e29 ?²¹)
-   (#x6e2b ?ÞØ)
-   (#x6e2c ?¬)
-   (#x6e2d ?ÞÃ)
-   (#x6e2e ?ÞÑ)
-   (#x6e2f ?¹Ã)
-   (#x6e38 ?Þâ)
-   (#x6e3a ?ÞÃ)
-   (#x6e3e ?ÞÕ)
-   (#x6e43 ?ÞÜ)
-   (#x6e4a ?Ì«)
-   (#x6e4d ?ÞÚ)
-   (#x6e4e ?ÞÞ)
-   (#x6e56 ?¸Ã)
-   (#x6e58 ?¾Å)
-   (#x6e5b ?ù)
-   (#x6e5f ?ÞÔ)
-   (#x6e67 ?ͯ)
-   (#x6e6b ?Þ×)
-   (#x6e6e ?ÞÃ)
-   (#x6e6f ?Åò)
-   (#x6e72 ?ÞÓ)
-   (#x6e76 ?ÞÙ)
-   (#x6e7e ?ÃÑ)
-   (#x6e7f ?¼¾)
-   (#x6e80 ?Ëþ)
-   (#x6e82 ?Þã)
-   (#x6e8c ?È®)
-   (#x6e8f ?Þï)
-   (#x6e90 ?¸»)
-   (#x6e96 ?½à)
-   (#x6e98 ?Þå)
-   (#x6e9c ?ί)
-   (#x6e9d ?¹Â)
-   (#x6e9f ?Þò)
-   (#x6ea2 ?°î)
-   (#x6ea5 ?Þð)
-   (#x6eaa ?Þä)
-   (#x6eaf ?Þê)
-   (#x6eb2 ?Þì)
-   (#x6eb6 ?ÃÃ)
-   (#x6eb7 ?Þç)
-   (#x6eba ?Å®)
-   (#x6ebd ?Þé)
-   (#x6ec2 ?Þñ)
-   (#x6ec4 ?Þë)
-   (#x6ec5 ?ÌÇ)
-   (#x6ec9 ?Þæ)
-   (#x6ecb ?¼¢)
-   (#x6ecc ?Þþ)
-   (#x6ed1 ?³ê)
-   (#x6ed3 ?Þè)
-   (#x6ed4 ?Þí)
-   (#x6ed5 ?Þî)
-   (#x6edd ?Âì)
-   (#x6ede ?ÂÚ)
-   (#x6eec ?Þö)
-   (#x6eef ?Þü)
-   (#x6ef2 ?Þú)
-   (#x6ef4 ?Å©)
-   (#x6ef7 ?ߣ)
-   (#x6ef8 ?Þ÷)
-   (#x6efe ?Þø)
-   (#x6eff ?Þà)
-   (#x6f01 ?µù)
-   (#x6f02 ?ɺ)
-   (#x6f06 ?¼¿)
-   (#x6f09 ?¹÷)
-   (#x6f0f ?ϳ)
-   (#x6f11 ?Þô)
-   (#x6f13 ?ߢ)
-   (#x6f14 ?±é)
-   (#x6f15 ?Ãæ)
-   (#x6f20 ?Çù)
-   (#x6f22 ?´Ã)
-   (#x6f23 ?Îú)
-   (#x6f2b ?Ì¡)
-   (#x6f2c ?ÄÒ)
-   (#x6f31 ?Þû)
-   (#x6f32 ?Þý)
-   (#x6f38 ?ò)
-   (#x6f3e ?ß¡)
-   (#x6f3f ?Þù)
-   (#x6f41 ?Þó)
-   (#x6f45 ?´Ã)
-   (#x6f54 ?·é)
-   (#x6f58 ?߯)
-   (#x6f5b ?ߪ)
-   (#x6f5c ?Àø)
-   (#x6f5f ?³ã)
-   (#x6f64 ?½á)
-   (#x6f66 ?ß³)
-   (#x6f6d ?߬)
-   (#x6f6e ?Ĭ)
-   (#x6f6f ?ß©)
-   (#x6f70 ?ÄÙ)
-   (#x6f74 ?ßÌ)
-   (#x6f78 ?ߦ)
-   (#x6f7a ?ߥ)
-   (#x6f7c ?ß®)
-   (#x6f80 ?ߨ)
-   (#x6f81 ?ߧ)
-   (#x6f82 ?ß­)
-   (#x6f84 ?À¡)
-   (#x6f86 ?ߤ)
-   (#x6f8e ?ß°)
-   (#x6f91 ?ß±)
-   (#x6f97 ?´Â)
-   (#x6fa1 ?߶)
-   (#x6fa3 ?ßµ)
-   (#x6fa4 ?ß·)
-   (#x6faa ?ߺ)
-   (#x6fb1 ?ÅÃ)
-   (#x6fb3 ?ß´)
-   (#x6fb9 ?߸)
-   (#x6fc0 ?·ã)
-   (#x6fc1 ?Âù)
-   (#x6fc2 ?ß²)
-   (#x6fc3 ?Ç»)
-   (#x6fc6 ?ß¹)
-   (#x6fd4 ?ß¾)
-   (#x6fd5 ?ß¼)
-   (#x6fd8 ?ß¿)
-   (#x6fdb ?ßÂ)
-   (#x6fdf ?ß»)
-   (#x6fe0 ?¹ê)
-   (#x6fe1 ?Ǩ)
-   (#x6fe4 ?Þ¹)
-   (#x6feb ?Ãô)
-   (#x6fec ?ß½)
-   (#x6fee ?ßÃ)
-   (#x6fef ?Âõ)
-   (#x6ff1 ?ßÀ)
-   (#x6ff3 ?ß«)
-   (#x6ff6 ?ïé)
-   (#x6ffa ?ßÅ)
-   (#x6ffe ?ßÉ)
-   (#x7001 ?ßÇ)
-   (#x7009 ?ßÃ)
-   (#x700b ?ßÄ)
-   (#x700f ?ßÈ)
-   (#x7011 ?ßÆ)
-   (#x7015 ?ÉÎ)
-   (#x7018 ?ßÎ)
-   (#x701a ?ßË)
-   (#x701b ?ßÊ)
-   (#x701d ?ßÃ)
-   (#x701e ?ÆÔ)
-   (#x701f ?ßÃ)
-   (#x7026 ?Ãõ)
-   (#x7027 ?Âí)
-   (#x702c ?À¥)
-   (#x7030 ?ßÃ)
-   (#x7032 ?ßÒ)
-   (#x703e ?ßÑ)
-   (#x704c ?Þõ)
-   (#x7051 ?ßÓ)
-   (#x7058 ?Æç)
-   (#x7063 ?ßÔ)
-   (#x706b ?²Ã)
-   (#x706f ?Åô)
-   (#x7070 ?³¥)
-   (#x7078 ?µä)
-   (#x707c ?¼Þ)
-   (#x707d ?ºÒ)
-   (#x7089 ?ϧ)
-   (#x708a ?¿æ)
-   (#x708e ?±ê)
-   (#x7092 ?ßÖ)
-   (#x7099 ?ßÕ)
-   (#x70ac ?ßÙ)
-   (#x70ad ?ú)
-   (#x70ae ?ßÜ)
-   (#x70af ?ß×)
-   (#x70b3 ?ßÛ)
-   (#x70b8 ?ßÚ)
-   (#x70b9 ?ÅÀ)
-   (#x70ba ?°Ù)
-   (#x70c8 ?Îõ)
-   (#x70cb ?ßÞ)
-   (#x70cf ?±¨)
-   (#x70d9 ?ßà)
-   (#x70dd ?ßß)
-   (#x70df ?ßÃ)
-   (#x70f1 ?ßØ)
-   (#x70f9 ?Ë£)
-   (#x70fd ?ßâ)
-   (#x7109 ?ßá)
-   (#x7114 ?±ë)
-   (#x7119 ?ßä)
-   (#x711a ?ʲ)
-   (#x711c ?ßã)
-   (#x7121 ?̵)
-   (#x7126 ?¾Ç)
-   (#x7136 ?ó)
-   (#x713c ?¾Æ)
-   (#x7149 ?Îû)
-   (#x714c ?ßê)
-   (#x714e ?Àù)
-   (#x7155 ?ßæ)
-   (#x7156 ?ßë)
-   (#x7159 ?±ì)
-   (#x7162 ?ßé)
-   (#x7164 ?Çá)
-   (#x7165 ?ßå)
-   (#x7166 ?ßè)
-   (#x7167 ?¾È)
-   (#x7169 ?ÈÑ)
-   (#x716c ?ßì)
-   (#x716e ?¼Ñ)
-   (#x717d ?Àú)
-   (#x7184 ?ßï)
-   (#x7188 ?ßç)
-   (#x718a ?·§)
-   (#x718f ?ßí)
-   (#x7194 ?ÃÃ)
-   (#x7195 ?ßð)
-   (#x7199 ?ô¦)
-   (#x719f ?½Ã)
-   (#x71a8 ?ßñ)
-   (#x71ac ?ßò)
-   (#x71b1 ?Ç®)
-   (#x71b9 ?ßô)
-   (#x71be ?ßõ)
-   (#x71c3 ?dz)
-   (#x71c8 ?Åõ)
-   (#x71c9 ?ß÷)
-   (#x71ce ?ßù)
-   (#x71d0 ?ÎÕ)
-   (#x71d2 ?ßö)
-   (#x71d4 ?ßø)
-   (#x71d5 ?±í)
-   (#x71d7 ?ßó)
-   (#x71df ?ÓÛ)
-   (#x71e0 ?ßú)
-   (#x71e5 ?Ãç)
-   (#x71e6 ?»¸)
-   (#x71e7 ?ßü)
-   (#x71ec ?ßû)
-   (#x71ed ?¿¤)
-   (#x71ee ?ÒÙ)
-   (#x71f5 ?ßý)
-   (#x71f9 ?à¡)
-   (#x71fb ?ßî)
-   (#x71fc ?ßþ)
-   (#x71ff ?à¢)
-   (#x7206 ?Çú)
-   (#x720d ?à£)
-   (#x7210 ?à¤)
-   (#x721b ?à¥)
-   (#x7228 ?à¦)
-   (#x722a ?ÄÞ)
-   (#x722c ?à¨)
-   (#x722d ?à§)
-   (#x7230 ?à©)
-   (#x7232 ?àª)
-   (#x7235 ?¼ß)
-   (#x7236 ?Éã)
-   (#x723a ?Ìì)
-   (#x723b ?à«)
-   (#x723c ?à¬)
-   (#x723d ?ÃÖ)
-   (#x723e ?¼¤)
-   (#x723f ?à­)
-   (#x7240 ?à®)
-   (#x7246 ?à¯)
-   (#x7247 ?ÊÒ)
-   (#x7248 ?ÈÇ)
-   (#x724b ?à°)
-   (#x724c ?Ç×)
-   (#x7252 ?Ä­)
-   (#x7258 ?à±)
-   (#x7259 ?²ç)
-   (#x725b ?µí)
-   (#x725d ?ÌÆ)
-   (#x725f ?̶)
-   (#x7261 ?²´)
-   (#x7262 ?Ï´)
-   (#x7267 ?ËÒ)
-   (#x7269 ?ʪ)
-   (#x7272 ?À·)
-   (#x7274 ?à²)
-   (#x7279 ?ÆÃ)
-   (#x727d ?¸£)
-   (#x727e ?à³)
-   (#x7280 ?ºÔ)
-   (#x7281 ?àµ)
-   (#x7282 ?à´)
-   (#x7287 ?à¶)
-   (#x7292 ?à·)
-   (#x7296 ?à¸)
-   (#x72a0 ?µ¾)
-   (#x72a2 ?à¹)
-   (#x72a7 ?àº)
-   (#x72ac ?¸¤)
-   (#x72af ?ÈÈ)
-   (#x72b2 ?à¼)
-   (#x72b6 ?¾õ)
-   (#x72b9 ?à»)
-   (#x72c2 ?¶¸)
-   (#x72c3 ?à½)
-   (#x72c4 ?à¿)
-   (#x72c6 ?à¾)
-   (#x72ce ?àÀ)
-   (#x72d0 ?¸Ñ)
-   (#x72d2 ?àÃ)
-   (#x72d7 ?¶é)
-   (#x72d9 ?ÃÀ)
-   (#x72db ?¹ý)
-   (#x72e0 ?àÃ)
-   (#x72e1 ?àÄ)
-   (#x72e2 ?àÂ)
-   (#x72e9 ?¼í)
-   (#x72ec ?ÆÈ)
-   (#x72ed ?¶¹)
-   (#x72f7 ?àÆ)
-   (#x72f8 ?ì)
-   (#x72f9 ?àÅ)
-   (#x72fc ?ϵ)
-   (#x72fd ?Çâ)
-   (#x730a ?àÉ)
-   (#x7316 ?àË)
-   (#x7317 ?àÈ)
-   (#x731b ?ÌÔ)
-   (#x731c ?àÊ)
-   (#x731d ?àÌ)
-   (#x731f ?ÎÄ)
-   (#x7325 ?àÃ)
-   (#x7329 ?àÃ)
-   (#x732a ?Ãö)
-   (#x732b ?Ç­)
-   (#x732e ?¸¥)
-   (#x732f ?àÎ)
-   (#x7334 ?àÃ)
-   (#x7336 ?ͱ)
-   (#x7337 ?Ͳ)
-   (#x733e ?àÑ)
-   (#x733f ?±î)
-   (#x7344 ?¹ö)
-   (#x7345 ?ȉ)
-   (#x734e ?àÒ)
-   (#x734f ?àÓ)
-   (#x7357 ?àÕ)
-   (#x7363 ?½Ã)
-   (#x7368 ?à×)
-   (#x736a ?àÖ)
-   (#x7370 ?àØ)
-   (#x7372 ?³Ã)
-   (#x7375 ?àÚ)
-   (#x7378 ?àÙ)
-   (#x737a ?àÜ)
-   (#x737b ?àÛ)
-   (#x7384 ?¸¼)
-   (#x7387 ?Ψ)
-   (#x7389 ?¶Ì)
-   (#x738b ?²¦)
-   (#x7396 ?¶ê)
-   (#x73a9 ?´á)
-   (#x73b2 ?Îè)
-   (#x73b3 ?àÞ)
-   (#x73bb ?àà)
-   (#x73c0 ?àá)
-   (#x73c2 ?²Ñ)
-   (#x73c8 ?àÃ)
-   (#x73ca ?»¹)
-   (#x73cd ?ÄÃ)
-   (#x73ce ?àß)
-   (#x73de ?àä)
-   (#x73e0 ?¼î)
-   (#x73e5 ?àâ)
-   (#x73ea ?·¾)
-   (#x73ed ?ÈÉ)
-   (#x73ee ?àã)
-   (#x73f1 ?àþ)
-   (#x73f8 ?àé)
-   (#x73fe ?¸½)
-   (#x7403 ?µå)
-   (#x7405 ?àæ)
-   (#x7406 ?Ãý)
-   (#x7409 ?ΰ)
-   (#x7422 ?Âö)
-   (#x7425 ?àè)
-   (#x7432 ?àê)
-   (#x7433 ?ÎÖ)
-   (#x7434 ?¶×)
-   (#x7435 ?Èü)
-   (#x7436 ?ÇÊ)
-   (#x743a ?àë)
-   (#x743f ?àí)
-   (#x7441 ?àð)
-   (#x7455 ?àì)
-   (#x7459 ?àï)
-   (#x745a ?¸ê)
-   (#x745b ?±Ã)
-   (#x745c ?àñ)
-   (#x745e ?¿ð)
-   (#x745f ?àî)
-   (#x7460 ?ÃŽÃœ)
-   (#x7463 ?àô)
-   (#x7464 ?ô¤)
-   (#x7469 ?àò)
-   (#x746a ?àõ)
-   (#x746f ?àç)
-   (#x7470 ?àó)
-   (#x7473 ?º¼)
-   (#x7476 ?àö)
-   (#x747e ?à÷)
-   (#x7483 ?Ãþ)
-   (#x748b ?àø)
-   (#x749e ?àù)
-   (#x74a2 ?àå)
-   (#x74a7 ?àú)
-   (#x74b0 ?´Ä)
-   (#x74bd ?¼¥)
-   (#x74ca ?àû)
-   (#x74cf ?àü)
-   (#x74d4 ?àý)
-   (#x74dc ?±»)
-   (#x74e0 ?á¡)
-   (#x74e2 ?É»)
-   (#x74e3 ?á¢)
-   (#x74e6 ?´¤)
-   (#x74e7 ?á£)
-   (#x74e9 ?á¤)
-   (#x74ee ?á¥)
-   (#x74f0 ?á§)
-   (#x74f1 ?á¨)
-   (#x74f2 ?á¦)
-   (#x74f6 ?ÉÓ)
-   (#x74f7 ?áª)
-   (#x74f8 ?á©)
-   (#x7503 ?á¬)
-   (#x7504 ?á«)
-   (#x7505 ?á­)
-   (#x750c ?á®)
-   (#x750d ?á°)
-   (#x750e ?á¯)
-   (#x7511 ?¹ù)
-   (#x7513 ?á²)
-   (#x7515 ?á±)
-   (#x7518 ?´Å)
-   (#x751a ?¿Ó)
-   (#x751c ?ż)
-   (#x751e ?á³)
-   (#x751f ?À¸)
-   (#x7523 ?ȼ)
-   (#x7525 ?±ù)
-   (#x7526 ?á´)
-   (#x7528 ?ÃÑ)
-   (#x752b ?Êã)
-   (#x752c ?áµ)
-   (#x7530 ?ÅÄ)
-   (#x7531 ?ͳ)
-   (#x7532 ?¹Ã)
-   (#x7533 ?¿½)
-   (#x7537 ?ÃË)
-   (#x7538 ?Ò´)
-   (#x753a ?Ä®)
-   (#x753b ?²è)
-   (#x753c ?á¶)
-   (#x7544 ?á·)
-   (#x7546 ?á¼)
-   (#x7549 ?áº)
-   (#x754a ?á¹)
-   (#x754b ?ÚÂ)
-   (#x754c ?³¦)
-   (#x754d ?á¸)
-   (#x754f ?°Ú)
-   (#x7551 ?Ȫ)
-   (#x7554 ?ÈÊ)
-   (#x7559 ?α)
-   (#x755a ?á½)
-   (#x755b ?á»)
-   (#x755c ?ÃÜ)
-   (#x755d ?À¦)
-   (#x7560 ?È«)
-   (#x7562 ?É­)
-   (#x7564 ?á¿)
-   (#x7565 ?ά)
-   (#x7566 ?·Ã)
-   (#x7567 ?áÀ)
-   (#x7569 ?á¾)
-   (#x756a ?ÈÖ)
-   (#x756b ?áÃ)
-   (#x756d ?áÂ)
-   (#x7570 ?°Û)
-   (#x7573 ?¾ö)
-   (#x7574 ?áÇ)
-   (#x7576 ?áÄ)
-   (#x7577 ?Æí)
-   (#x7578 ?áÃ)
-   (#x757f ?µ¦)
-   (#x7582 ?áÊ)
-   (#x7586 ?áÅ)
-   (#x7587 ?áÆ)
-   (#x7589 ?áÉ)
-   (#x758a ?áÈ)
-   (#x758b ?É¥)
-   (#x758e ?ÃÂ)
-   (#x758f ?ÃÃ)
-   (#x7591 ?µ¿)
-   (#x7594 ?áË)
-   (#x759a ?áÌ)
-   (#x759d ?áÃ)
-   (#x75a3 ?áÃ)
-   (#x75a5 ?áÎ)
-   (#x75ab ?±Ö)
-   (#x75b1 ?á×)
-   (#x75b2 ?Èè)
-   (#x75b3 ?áÑ)
-   (#x75b5 ?áÓ)
-   (#x75b8 ?áÕ)
-   (#x75b9 ?¿¾)
-   (#x75bc ?áÖ)
-   (#x75bd ?áÔ)
-   (#x75be ?¼À)
-   (#x75c2 ?áÃ)
-   (#x75c3 ?áÒ)
-   (#x75c5 ?ÉÂ)
-   (#x75c7 ?¾É)
-   (#x75ca ?áÙ)
-   (#x75cd ?áØ)
-   (#x75d2 ?áÚ)
-   (#x75d4 ?¼¦)
-   (#x75d5 ?º¯)
-   (#x75d8 ?Å÷)
-   (#x75d9 ?áÛ)
-   (#x75db ?ÄË)
-   (#x75de ?áÃ)
-   (#x75e2 ?Ρ)
-   (#x75e3 ?áÜ)
-   (#x75e9 ?Ãé)
-   (#x75f0 ?áâ)
-   (#x75f2 ?áä)
-   (#x75f3 ?áå)
-   (#x75f4 ?ÃÔ)
-   (#x75fa ?áã)
-   (#x75fc ?áà)
-   (#x75fe ?áÞ)
-   (#x75ff ?áß)
-   (#x7601 ?áá)
-   (#x7609 ?áè)
-   (#x760b ?áæ)
-   (#x760d ?áç)
-   (#x761f ?áé)
-   (#x7620 ?áë)
-   (#x7621 ?áì)
-   (#x7622 ?áí)
-   (#x7624 ?áî)
-   (#x7627 ?áê)
-   (#x7630 ?áð)
-   (#x7634 ?áï)
-   (#x763b ?áñ)
-   (#x7642 ?ÃŽÃ…)
-   (#x7646 ?áô)
-   (#x7647 ?áò)
-   (#x7648 ?áó)
-   (#x764c ?´â)
-   (#x7652 ?Ìþ)
-   (#x7656 ?ÊÊ)
-   (#x7658 ?áö)
-   (#x765c ?áõ)
-   (#x7661 ?á÷)
-   (#x7662 ?áø)
-   (#x7667 ?áü)
-   (#x7668 ?áù)
-   (#x7669 ?áú)
-   (#x766a ?áû)
-   (#x766c ?áý)
-   (#x7670 ?áþ)
-   (#x7672 ?â¡)
-   (#x7676 ?â¢)
-   (#x7678 ?â£)
-   (#x767a ?ȯ)
-   (#x767b ?Ã…Ã)
-   (#x767c ?â¤)
-   (#x767d ?Çò)
-   (#x767e ?É´)
-   (#x7680 ?â¥)
-   (#x7683 ?â¦)
-   (#x7684 ?Ū)
-   (#x7686 ?³§)
-   (#x7687 ?¹Ä)
-   (#x7688 ?â§)
-   (#x768b ?â¨)
-   (#x768e ?â©)
-   (#x7690 ?»©)
-   (#x7693 ?â«)
-   (#x7696 ?âª)
-   (#x7699 ?â¬)
-   (#x769a ?â­)
-   (#x76ae ?Èé)
-   (#x76b0 ?â®)
-   (#x76b4 ?â¯)
-   (#x76b7 ?óé)
-   (#x76b8 ?â°)
-   (#x76b9 ?â±)
-   (#x76ba ?â²)
-   (#x76bf ?»®)
-   (#x76c2 ?â³)
-   (#x76c3 ?ÇÖ)
-   (#x76c6 ?Ëß)
-   (#x76c8 ?±Î)
-   (#x76ca ?±×)
-   (#x76cd ?â´)
-   (#x76d2 ?â¶)
-   (#x76d6 ?âµ)
-   (#x76d7 ?Åð)
-   (#x76db ?À¹)
-   (#x76dc ?ݹ)
-   (#x76de ?â·)
-   (#x76df ?ÃŒÃ)
-   (#x76e1 ?â¸)
-   (#x76e3 ?´Æ)
-   (#x76e4 ?È×)
-   (#x76e5 ?â¹)
-   (#x76e7 ?âº)
-   (#x76ea ?â»)
-   (#x76ee ?ÌÜ)
-   (#x76f2 ?ÌÕ)
-   (#x76f4 ?ľ)
-   (#x76f8 ?Ãê)
-   (#x76fb ?â½)
-   (#x76fe ?½â)
-   (#x7701 ?¾Ê)
-   (#x7704 ?âÀ)
-   (#x7707 ?â¿)
-   (#x7708 ?â¾)
-   (#x7709 ?Èý)
-   (#x770b ?´Ç)
-   (#x770c ?¸©)
-   (#x771b ?âÆ)
-   (#x771e ?âÃ)
-   (#x771f ?¿¿)
-   (#x7720 ?̲)
-   (#x7724 ?âÂ)
-   (#x7725 ?âÄ)
-   (#x7726 ?âÅ)
-   (#x7729 ?âÃ)
-   (#x7737 ?âÇ)
-   (#x7738 ?âÈ)
-   (#x773a ?į)
-   (#x773c ?´ã)
-   (#x7740 ?Ãå)
-   (#x7747 ?âÉ)
-   (#x775a ?âÊ)
-   (#x775b ?âÃ)
-   (#x7761 ?¿ç)
-   (#x7763 ?ÆÄ)
-   (#x7765 ?âÎ)
-   (#x7766 ?ËÓ)
-   (#x7768 ?âË)
-   (#x776b ?âÌ)
-   (#x7779 ?âÑ)
-   (#x777e ?âÃ)
-   (#x777f ?âÃ)
-   (#x778b ?âÓ)
-   (#x778e ?âÒ)
-   (#x7791 ?âÔ)
-   (#x779e ?âÖ)
-   (#x77a0 ?âÕ)
-   (#x77a5 ?ÊÃ)
-   (#x77ac ?½Ö)
-   (#x77ad ?ÎÆ)
-   (#x77b0 ?â×)
-   (#x77b3 ?Æ·)
-   (#x77b6 ?âØ)
-   (#x77b9 ?âÙ)
-   (#x77bb ?âÃ)
-   (#x77bc ?âÛ)
-   (#x77bd ?âÜ)
-   (#x77bf ?âÚ)
-   (#x77c7 ?âÞ)
-   (#x77cd ?âß)
-   (#x77d7 ?âà)
-   (#x77da ?âá)
-   (#x77db ?Ì·)
-   (#x77dc ?ââ)
-   (#x77e2 ?Ìð)
-   (#x77e3 ?âã)
-   (#x77e5 ?ÃÎ)
-   (#x77e7 ?Çê)
-   (#x77e9 ?¶ë)
-   (#x77ed ?û)
-   (#x77ee ?âä)
-   (#x77ef ?¶º)
-   (#x77f3 ?ÀÃ)
-   (#x77fc ?âå)
-   (#x7802 ?º½)
-   (#x780c ?âæ)
-   (#x7812 ?âç)
-   (#x7814 ?¸¦)
-   (#x7815 ?ºÕ)
-   (#x7820 ?âé)
-   (#x7825 ?ÅÖ)
-   (#x7826 ?ºÖ)
-   (#x7827 ?µÎ)
-   (#x7832 ?ˤ)
-   (#x7834 ?ÇË)
-   (#x783a ?Å×)
-   (#x783f ?¹Ü)
-   (#x7845 ?âë)
-   (#x785d ?¾Ë)
-   (#x786b ?β)
-   (#x786c ?¹Å)
-   (#x786f ?¸§)
-   (#x7872 ?È£)
-   (#x7874 ?âí)
-   (#x787c ?âï)
-   (#x7881 ?¸ë)
-   (#x7886 ?âî)
-   (#x7887 ?Äö)
-   (#x788c ?âñ)
-   (#x788d ?³·)
-   (#x788e ?âì)
-   (#x7891 ?Èê)
-   (#x7893 ?±°)
-   (#x7895 ?ºì)
-   (#x7897 ?ÃÃ’)
-   (#x789a ?âð)
-   (#x78a3 ?âò)
-   (#x78a7 ?ÊË)
-   (#x78a9 ?ÀÙ)
-   (#x78aa ?âô)
-   (#x78af ?âõ)
-   (#x78b5 ?âó)
-   (#x78ba ?³Î)
-   (#x78bc ?âû)
-   (#x78be ?âú)
-   (#x78c1 ?¼§)
-   (#x78c5 ?âü)
-   (#x78c6 ?â÷)
-   (#x78ca ?âý)
-   (#x78cb ?âø)
-   (#x78d0 ?ÈØ)
-   (#x78d1 ?âö)
-   (#x78d4 ?âù)
-   (#x78da ?ã¢)
-   (#x78e7 ?ã¡)
-   (#x78e8 ?Ëá)
-   (#x78ec ?âþ)
-   (#x78ef ?°ë)
-   (#x78f4 ?ã¤)
-   (#x78fd ?ã£)
-   (#x7901 ?¾Ì)
-   (#x7907 ?ã¥)
-   (#x790e ?ÃÃ)
-   (#x7911 ?ã§)
-   (#x7912 ?ã¦)
-   (#x7919 ?ã¨)
-   (#x7926 ?âè)
-   (#x792a ?âê)
-   (#x792b ?ãª)
-   (#x792c ?ã©)
-   (#x793a ?¼¨)
-   (#x793c ?Îé)
-   (#x793e ?¼Ò)
-   (#x7940 ?ã«)
-   (#x7941 ?··)
-   (#x7947 ?µÀ)
-   (#x7948 ?µ§)
-   (#x7949 ?ȋ)
-   (#x7950 ?Í´)
-   (#x7953 ?ã±)
-   (#x7955 ?ã°)
-   (#x7956 ?ÃÄ)
-   (#x7957 ?ã­)
-   (#x795a ?ã¯)
-   (#x795d ?½Ë)
-   (#x795e ?¿À)
-   (#x795f ?ã®)
-   (#x7960 ?ã¬)
-   (#x7962 ?Ǫ)
-   (#x7965 ?¾Ã)
-   (#x7968 ?ɼ)
-   (#x796d ?º×)
-   (#x7977 ?Åø)
-   (#x797a ?ã²)
-   (#x797f ?ã³)
-   (#x7980 ?ãÉ)
-   (#x7981 ?¶Ø)
-   (#x7984 ?Ͻ)
-   (#x7985 ?õ)
-   (#x798a ?ã´)
-   (#x798d ?²Ò)
-   (#x798e ?Ä÷)
-   (#x798f ?Ê¡)
-   (#x799d ?ãµ)
-   (#x79a6 ?µú)
-   (#x79a7 ?ã¶)
-   (#x79aa ?ã¸)
-   (#x79ae ?ã¹)
-   (#x79b0 ?Ç©)
-   (#x79b3 ?ãº)
-   (#x79b9 ?ã»)
-   (#x79ba ?ã¼)
-   (#x79bd ?¶Ù)
-   (#x79be ?²Ó)
-   (#x79bf ?ÆÅ)
-   (#x79c0 ?½¨)
-   (#x79c1 ?Ȋ)
-   (#x79c9 ?ã½)
-   (#x79cb ?½©)
-   (#x79d1 ?²Ê)
-   (#x79d2 ?ÉÃ)
-   (#x79d5 ?ã¾)
-   (#x79d8 ?Èë)
-   (#x79df ?ÃÃ…)
-   (#x79e1 ?ãÃ)
-   (#x79e3 ?ãÂ)
-   (#x79e4 ?Çé)
-   (#x79e6 ?¿Ã)
-   (#x79e7 ?ã¿)
-   (#x79e9 ?Ãá)
-   (#x79ec ?ãÀ)
-   (#x79f0 ?¾Î)
-   (#x79fb ?°Ü)
-   (#x7a00 ?µ©)
-   (#x7a08 ?ãÃ)
-   (#x7a0b ?Äø)
-   (#x7a0d ?ãÄ)
-   (#x7a0e ?ÀÇ)
-   (#x7a14 ?Ì­)
-   (#x7a17 ?É£)
-   (#x7a18 ?ãÅ)
-   (#x7a19 ?ãÆ)
-   (#x7a1a ?ÃÕ)
-   (#x7a1c ?ÎÇ)
-   (#x7a1f ?ãÈ)
-   (#x7a20 ?ãÇ)
-   (#x7a2e ?¼ï)
-   (#x7a31 ?ãÊ)
-   (#x7a32 ?°ð)
-   (#x7a37 ?ãÃ)
-   (#x7a3b ?ãË)
-   (#x7a3c ?²Ô)
-   (#x7a3d ?·Î)
-   (#x7a3e ?ãÌ)
-   (#x7a3f ?¹Æ)
-   (#x7a40 ?¹ò)
-   (#x7a42 ?Êæ)
-   (#x7a43 ?ãÎ)
-   (#x7a46 ?ËÔ)
-   (#x7a49 ?ãÃ)
-   (#x7a4d ?ÀÑ)
-   (#x7a4e ?±Ã)
-   (#x7a4f ?²º)
-   (#x7a50 ?°¬)
-   (#x7a57 ?ãÃ)
-   (#x7a61 ?ãÑ)
-   (#x7a62 ?ãÒ)
-   (#x7a63 ?¾÷)
-   (#x7a69 ?ãÓ)
-   (#x7a6b ?³Ã)
-   (#x7a70 ?ãÕ)
-   (#x7a74 ?·ê)
-   (#x7a76 ?µæ)
-   (#x7a79 ?ãÖ)
-   (#x7a7a ?¶õ)
-   (#x7a7d ?ã×)
-   (#x7a7f ?Àü)
-   (#x7a81 ?ÆÃ)
-   (#x7a83 ?Àà)
-   (#x7a84 ?ºõ)
-   (#x7a88 ?ãØ)
-   (#x7a92 ?Ãâ)
-   (#x7a93 ?Ãë)
-   (#x7a95 ?ãÚ)
-   (#x7a96 ?ãÜ)
-   (#x7a97 ?ãÙ)
-   (#x7a98 ?ãÛ)
-   (#x7a9f ?·¢)
-   (#x7aa9 ?ãÃ)
-   (#x7aaa ?·¦)
-   (#x7aae ?µç)
-   (#x7aaf ?ÃÃ’)
-   (#x7ab0 ?ãß)
-   (#x7ab6 ?ãà)
-   (#x7aba ?±®)
-   (#x7abf ?ãã)
-   (#x7ac3 ?³ö)
-   (#x7ac4 ?ãâ)
-   (#x7ac5 ?ãá)
-   (#x7ac7 ?ãå)
-   (#x7ac8 ?ãÞ)
-   (#x7aca ?ãæ)
-   (#x7acb ?Ω)
-   (#x7acd ?ãç)
-   (#x7acf ?ãè)
-   (#x7ad2 ?Ôô)
-   (#x7ad3 ?ãê)
-   (#x7ad5 ?ãé)
-   (#x7ad9 ?ãë)
-   (#x7ada ?ãì)
-   (#x7adc ?ε)
-   (#x7add ?ãí)
-   (#x7adf ?ðï)
-   (#x7ae0 ?¾Ã)
-   (#x7ae1 ?ãî)
-   (#x7ae2 ?ãï)
-   (#x7ae3 ?½×)
-   (#x7ae5 ?Ƹ)
-   (#x7ae6 ?ãð)
-   (#x7aea ?è)
-   (#x7aed ?ãñ)
-   (#x7aef ?ü)
-   (#x7af0 ?ãò)
-   (#x7af6 ?¶¥)
-   (#x7af8 ?Ñ¿)
-   (#x7af9 ?ÃÃ)
-   (#x7afa ?¼³)
-   (#x7aff ?´È)
-   (#x7b02 ?ãó)
-   (#x7b04 ?ä¢)
-   (#x7b06 ?ãö)
-   (#x7b08 ?µè)
-   (#x7b0a ?ãõ)
-   (#x7b0b ?ä¤)
-   (#x7b0f ?ãô)
-   (#x7b11 ?¾Ã)
-   (#x7b18 ?ãø)
-   (#x7b19 ?ãù)
-   (#x7b1b ?Å«)
-   (#x7b1e ?ãú)
-   (#x7b20 ?³Þ)
-   (#x7b25 ?¿Ú)
-   (#x7b26 ?Éä)
-   (#x7b28 ?ãü)
-   (#x7b2c ?Âè)
-   (#x7b33 ?ã÷)
-   (#x7b35 ?ãû)
-   (#x7b36 ?ãý)
-   (#x7b39 ?ºû)
-   (#x7b45 ?ä¦)
-   (#x7b46 ?É®)
-   (#x7b48 ?Ȧ)
-   (#x7b49 ?Åù)
-   (#x7b4b ?¶Ú)
-   (#x7b4c ?ä¥)
-   (#x7b4d ?ä£)
-   (#x7b4f ?ȵ)
-   (#x7b50 ?ãþ)
-   (#x7b51 ?ÃÞ)
-   (#x7b52 ?Åû)
-   (#x7b54 ?Åú)
-   (#x7b56 ?ºö)
-   (#x7b5d ?ä¸)
-   (#x7b65 ?ä¨)
-   (#x7b67 ?äª)
-   (#x7b6c ?ä­)
-   (#x7b6e ?ä®)
-   (#x7b70 ?ä«)
-   (#x7b71 ?ä¬)
-   (#x7b74 ?ä©)
-   (#x7b75 ?ä§)
-   (#x7b7a ?ä¡)
-   (#x7b86 ?ÊÃ)
-   (#x7b87 ?²Õ)
-   (#x7b8b ?äµ)
-   (#x7b8d ?ä²)
-   (#x7b8f ?ä·)
-   (#x7b92 ?ä¶)
-   (#x7b94 ?Çó)
-   (#x7b95 ?̧)
-   (#x7b97 ?»»)
-   (#x7b98 ?ä°)
-   (#x7b99 ?ä¹)
-   (#x7b9a ?ä´)
-   (#x7b9c ?ä³)
-   (#x7b9d ?ä¯)
-   (#x7b9f ?ä±)
-   (#x7ba1 ?´É)
-   (#x7baa ?ý)
-   (#x7bad ?Àý)
-   (#x7bb1 ?È¢)
-   (#x7bb4 ?ä¾)
-   (#x7bb8 ?Ȥ)
-   (#x7bc0 ?Àá)
-   (#x7bc1 ?ä»)
-   (#x7bc4 ?ÈÃ)
-   (#x7bc6 ?ä¿)
-   (#x7bc7 ?ÊÓ)
-   (#x7bc9 ?ÃÛ)
-   (#x7bcb ?äº)
-   (#x7bcc ?ä¼)
-   (#x7bcf ?ä½)
-   (#x7bdd ?äÀ)
-   (#x7be0 ?¼Ä)
-   (#x7be4 ?ÆÆ)
-   (#x7be5 ?äÅ)
-   (#x7be6 ?äÄ)
-   (#x7be9 ?äÃ)
-   (#x7bed ?϶)
-   (#x7bf3 ?äÊ)
-   (#x7bf6 ?äÎ)
-   (#x7bf7 ?äË)
-   (#x7c00 ?äÇ)
-   (#x7c07 ?äÈ)
-   (#x7c0d ?äÃ)
-   (#x7c11 ?äÂ)
-   (#x7c12 ?ÒÕ)
-   (#x7c13 ?äÉ)
-   (#x7c14 ?äÃ)
-   (#x7c17 ?äÌ)
-   (#x7c1f ?äÒ)
-   (#x7c21 ?´Ê)
-   (#x7c23 ?äÃ)
-   (#x7c27 ?äÃ)
-   (#x7c2a ?äÑ)
-   (#x7c2b ?äÔ)
-   (#x7c37 ?äÓ)
-   (#x7c38 ?Èö)
-   (#x7c3d ?äÕ)
-   (#x7c3e ?Îü)
-   (#x7c3f ?Êí)
-   (#x7c40 ?äÚ)
-   (#x7c43 ?ä×)
-   (#x7c4c ?äÖ)
-   (#x7c4d ?ÀÒ)
-   (#x7c4f ?äÙ)
-   (#x7c50 ?äÛ)
-   (#x7c54 ?äØ)
-   (#x7c56 ?äß)
-   (#x7c58 ?äÜ)
-   (#x7c5f ?äÃ)
-   (#x7c60 ?äÆ)
-   (#x7c64 ?äÞ)
-   (#x7c65 ?äà)
-   (#x7c6c ?äá)
-   (#x7c73 ?ÊÆ)
-   (#x7c75 ?äâ)
-   (#x7c7e ?Ìâ)
-   (#x7c81 ?¶Î)
-   (#x7c82 ?·©)
-   (#x7c83 ?äã)
-   (#x7c89 ?Ê´)
-   (#x7c8b ?¿è)
-   (#x7c8d ?Ì°)
-   (#x7c90 ?ää)
-   (#x7c92 ?γ)
-   (#x7c95 ?Çô)
-   (#x7c97 ?ÃÆ)
-   (#x7c98 ?Ç´)
-   (#x7c9b ?½Ã)
-   (#x7c9f ?°À)
-   (#x7ca1 ?äé)
-   (#x7ca2 ?äç)
-   (#x7ca4 ?äå)
-   (#x7ca5 ?´¡)
-   (#x7ca7 ?¾Ñ)
-   (#x7ca8 ?äê)
-   (#x7cab ?äè)
-   (#x7cad ?äæ)
-   (#x7cae ?äî)
-   (#x7cb1 ?äí)
-   (#x7cb2 ?äì)
-   (#x7cb3 ?äë)
-   (#x7cb9 ?äï)
-   (#x7cbd ?äð)
-   (#x7cbe ?˼)
-   (#x7cc0 ?äñ)
-   (#x7cc2 ?äó)
-   (#x7cc5 ?äò)
-   (#x7cca ?¸Ò)
-   (#x7cce ?ø)
-   (#x7cd2 ?äõ)
-   (#x7cd6 ?Åü)
-   (#x7cd8 ?äô)
-   (#x7cdc ?äö)
-   (#x7cde ?ʵ)
-   (#x7cdf ?Ãì)
-   (#x7ce0 ?¹Ç)
-   (#x7ce2 ?ä÷)
-   (#x7ce7 ?ÎÈ)
-   (#x7cef ?äù)
-   (#x7cf2 ?äú)
-   (#x7cf4 ?äû)
-   (#x7cf6 ?äü)
-   (#x7cf8 ?Ȍ)
-   (#x7cfa ?äý)
-   (#x7cfb ?·Ã)
-   (#x7cfe ?µê)
-   (#x7d00 ?µª)
-   (#x7d02 ?å¡)
-   (#x7d04 ?Ìó)
-   (#x7d05 ?¹È)
-   (#x7d06 ?äþ)
-   (#x7d0a ?å¤)
-   (#x7d0b ?Ìæ)
-   (#x7d0d ?Ǽ)
-   (#x7d10 ?ɳ)
-   (#x7d14 ?½ã)
-   (#x7d15 ?å£)
-   (#x7d17 ?¼Ó)
-   (#x7d18 ?¹É)
-   (#x7d19 ?Ⱦ)
-   (#x7d1a ?µé)
-   (#x7d1b ?ʶ)
-   (#x7d1c ?å¢)
-   (#x7d20 ?ÃÇ)
-   (#x7d21 ?ËÂ)
-   (#x7d22 ?º÷)
-   (#x7d2b ?ȍ)
-   (#x7d2c ?ÄÃ)
-   (#x7d2e ?å§)
-   (#x7d2f ?Îß)
-   (#x7d30 ?ºÙ)
-   (#x7d32 ?å¨)
-   (#x7d33 ?¿Â)
-   (#x7d35 ?åª)
-   (#x7d39 ?¾Ò)
-   (#x7d3a ?º°)
-   (#x7d3f ?å©)
-   (#x7d42 ?½ª)
-   (#x7d43 ?¸¾)
-   (#x7d44 ?ÃÈ)
-   (#x7d45 ?å¥)
-   (#x7d46 ?å«)
-   (#x7d4b ?å¦)
-   (#x7d4c ?·Ã)
-   (#x7d4e ?å®)
-   (#x7d4f ?å²)
-   (#x7d50 ?·ë)
-   (#x7d56 ?å­)
-   (#x7d5b ?å¶)
-   (#x7d5e ?¹Ê)
-   (#x7d61 ?Ãí)
-   (#x7d62 ?°¼)
-   (#x7d63 ?å³)
-   (#x7d66 ?µë)
-   (#x7d68 ?å°)
-   (#x7d6e ?å±)
-   (#x7d71 ?Åý)
-   (#x7d72 ?å¯)
-   (#x7d73 ?å¬)
-   (#x7d75 ?³¨)
-   (#x7d76 ?Àä)
-   (#x7d79 ?¸¨)
-   (#x7d7d ?å¸)
-   (#x7d89 ?åµ)
-   (#x7d8f ?å·)
-   (#x7d93 ?å´)
-   (#x7d99 ?·Ñ)
-   (#x7d9a ?³)
-   (#x7d9b ?å¹)
-   (#x7d9c ?Ãî)
-   (#x7d9f ?åÆ)
-   (#x7da2 ?åÂ)
-   (#x7da3 ?å¼)
-   (#x7dab ?åÀ)
-   (#x7dac ?¼ú)
-   (#x7dad ?°Ã)
-   (#x7dae ?å»)
-   (#x7daf ?åÃ)
-   (#x7db0 ?åÇ)
-   (#x7db1 ?¹Ë)
-   (#x7db2 ?ÌÖ)
-   (#x7db4 ?ÄÖ)
-   (#x7db5 ?å½)
-   (#x7db8 ?åÅ)
-   (#x7dba ?åº)
-   (#x7dbb ?þ)
-   (#x7dbd ?å¿)
-   (#x7dbe ?°½)
-   (#x7dbf ?ÌÊ)
-   (#x7dc7 ?å¾)
-   (#x7dca ?¶Û)
-   (#x7dcb ?Èì)
-   (#x7dcf ?Ãí)
-   (#x7dd1 ?ÃŽÃ)
-   (#x7dd2 ?½ï)
-   (#x7dd5 ?åî)
-   (#x7dd8 ?åÈ)
-   (#x7dda ?Àþ)
-   (#x7ddc ?åÄ)
-   (#x7ddd ?åÉ)
-   (#x7dde ?åË)
-   (#x7de0 ?Äù)
-   (#x7de1 ?åÎ)
-   (#x7de4 ?åÊ)
-   (#x7de8 ?ÊÔ)
-   (#x7de9 ?´Ë)
-   (#x7dec ?ÌË)
-   (#x7def ?°Þ)
-   (#x7df2 ?Ã¥Ã)
-   (#x7df4 ?Îý)
-   (#x7dfb ?åÌ)
-   (#x7e01 ?±ï)
-   (#x7e04 ?Æì)
-   (#x7e05 ?Ã¥Ã)
-   (#x7e09 ?åÖ)
-   (#x7e0a ?Ã¥Ã)
-   (#x7e0b ?å×)
-   (#x7e12 ?åÓ)
-   (#x7e1b ?Çû)
-   (#x7e1e ?¼Ê)
-   (#x7e1f ?åÕ)
-   (#x7e21 ?åÒ)
-   (#x7e22 ?åØ)
-   (#x7e23 ?åÑ)
-   (#x7e26 ?½Ä)
-   (#x7e2b ?Ë¥)
-   (#x7e2e ?½Ì)
-   (#x7e31 ?åÔ)
-   (#x7e32 ?åà)
-   (#x7e35 ?åÜ)
-   (#x7e37 ?åß)
-   (#x7e39 ?Ã¥Ã)
-   (#x7e3a ?åá)
-   (#x7e3b ?åÛ)
-   (#x7e3d ?Ã¥Ã)
-   (#x7e3e ?ÀÓ)
-   (#x7e41 ?ÈË)
-   (#x7e43 ?åÞ)
-   (#x7e46 ?åÙ)
-   (#x7e4a ?á)
-   (#x7e4b ?·Ò)
-   (#x7e4d ?½«)
-   (#x7e54 ?¿¥)
-   (#x7e55 ?ö)
-   (#x7e56 ?åä)
-   (#x7e59 ?åæ)
-   (#x7e5a ?åç)
-   (#x7e5d ?åã)
-   (#x7e5e ?åå)
-   (#x7e66 ?åÚ)
-   (#x7e67 ?åâ)
-   (#x7e69 ?åê)
-   (#x7e6a ?åé)
-   (#x7e6d ?Ëú)
-   (#x7e70 ?·«)
-   (#x7e79 ?åè)
-   (#x7e7b ?åì)
-   (#x7e7c ?åë)
-   (#x7e7d ?åï)
-   (#x7e7f ?åñ)
-   (#x7e82 ?»¼)
-   (#x7e83 ?åí)
-   (#x7e88 ?åò)
-   (#x7e89 ?åó)
-   (#x7e8c ?åô)
-   (#x7e8e ?åú)
-   (#x7e8f ?Å»)
-   (#x7e90 ?åö)
-   (#x7e92 ?åõ)
-   (#x7e93 ?å÷)
-   (#x7e94 ?åø)
-   (#x7e96 ?åù)
-   (#x7e9b ?åû)
-   (#x7e9c ?åü)
-   (#x7f36 ?´Ì)
-   (#x7f38 ?åý)
-   (#x7f3a ?åþ)
-   (#x7f45 ?æ¡)
-   (#x7f4c ?æ¢)
-   (#x7f4d ?æ£)
-   (#x7f4e ?æ¤)
-   (#x7f50 ?æ¥)
-   (#x7f51 ?æ¦)
-   (#x7f54 ?æ¨)
-   (#x7f55 ?æ§)
-   (#x7f58 ?æ©)
-   (#x7f5f ?æª)
-   (#x7f60 ?æ«)
-   (#x7f67 ?æ®)
-   (#x7f68 ?æ¬)
-   (#x7f69 ?æ­)
-   (#x7f6a ?ºá)
-   (#x7f6b ?·Ó)
-   (#x7f6e ?ÃÖ)
-   (#x7f70 ?ȳ)
-   (#x7f72 ?½ð)
-   (#x7f75 ?ÇÃ)
-   (#x7f77 ?Èí)
-   (#x7f78 ?æ¯)
-   (#x7f79 ?Øí)
-   (#x7f82 ?æ°)
-   (#x7f83 ?æ²)
-   (#x7f85 ?ÃÃ¥)
-   (#x7f86 ?æ±)
-   (#x7f87 ?æ´)
-   (#x7f88 ?æ³)
-   (#x7f8a ?ÃÓ)
-   (#x7f8c ?æµ)
-   (#x7f8e ?Èþ)
-   (#x7f94 ?æ¶)
-   (#x7f9a ?æ¹)
-   (#x7f9d ?æ¸)
-   (#x7f9e ?æ·)
-   (#x7fa3 ?æº)
-   (#x7fa4 ?·²)
-   (#x7fa8 ?â)
-   (#x7fa9 ?µÃ)
-   (#x7fae ?æ¾)
-   (#x7faf ?æ»)
-   (#x7fb2 ?æ¼)
-   (#x7fb6 ?æ¿)
-   (#x7fb8 ?æÀ)
-   (#x7fb9 ?æ½)
-   (#x7fbd ?±©)
-   (#x7fc1 ?²§)
-   (#x7fc5 ?æÂ)
-   (#x7fc6 ?æÃ)
-   (#x7fca ?æÄ)
-   (#x7fcc ?Ãâ)
-   (#x7fd2 ?½¬)
-   (#x7fd4 ?æÆ)
-   (#x7fd5 ?æÅ)
-   (#x7fe0 ?¿é)
-   (#x7fe1 ?æÇ)
-   (#x7fe6 ?æÈ)
-   (#x7fe9 ?æÉ)
-   (#x7feb ?´å)
-   (#x7ff0 ?´Ã)
-   (#x7ff3 ?æÊ)
-   (#x7ff9 ?æË)
-   (#x7ffb ?ËÃ)
-   (#x7ffc ?Ãã)
-   (#x8000 ?ÃÔ)
-   (#x8001 ?Ï·)
-   (#x8003 ?¹Ã)
-   (#x8004 ?æÎ)
-   (#x8005 ?¼Ô)
-   (#x8006 ?æÃ)
-   (#x800b ?æÃ)
-   (#x800c ?¼©)
-   (#x8010 ?ÂÑ)
-   (#x8012 ?æÃ)
-   (#x8015 ?¹Ì)
-   (#x8017 ?Ì×)
-   (#x8018 ?æÑ)
-   (#x8019 ?æÒ)
-   (#x801c ?æÓ)
-   (#x8021 ?æÔ)
-   (#x8028 ?æÕ)
-   (#x8033 ?¼ª)
-   (#x8036 ?Ìí)
-   (#x803b ?æ×)
-   (#x803d ?ÿ)
-   (#x803f ?æÖ)
-   (#x8046 ?æÙ)
-   (#x804a ?æØ)
-   (#x8052 ?æÚ)
-   (#x8056 ?À»)
-   (#x8058 ?æÛ)
-   (#x805a ?æÜ)
-   (#x805e ?ʹ)
-   (#x805f ?æÃ)
-   (#x8061 ?Ãï)
-   (#x8062 ?æÞ)
-   (#x8068 ?æß)
-   (#x806f ?Îþ)
-   (#x8070 ?æâ)
-   (#x8072 ?æá)
-   (#x8073 ?æà)
-   (#x8074 ?Ä°)
-   (#x8076 ?æã)
-   (#x8077 ?¿¦)
-   (#x8079 ?æä)
-   (#x807d ?æå)
-   (#x807e ?ϸ)
-   (#x807f ?ææ)
-   (#x8084 ?æç)
-   (#x8085 ?æé)
-   (#x8086 ?æè)
-   (#x8087 ?È¥)
-   (#x8089 ?Æù)
-   (#x808b ?Ͼ)
-   (#x808c ?È©)
-   (#x8093 ?æë)
-   (#x8096 ?¾Ó)
-   (#x8098 ?ɪ)
-   (#x809a ?æì)
-   (#x809b ?æê)
-   (#x809d ?´Î)
-   (#x80a1 ?¸Ô)
-   (#x80a2 ?ȏ)
-   (#x80a5 ?Èî)
-   (#x80a9 ?¸ª)
-   (#x80aa ?ËÃ)
-   (#x80ac ?æï)
-   (#x80ad ?æí)
-   (#x80af ?¹Î)
-   (#x80b1 ?¹Ã)
-   (#x80b2 ?°é)
-   (#x80b4 ?ºè)
-   (#x80ba ?ÇÙ)
-   (#x80c3 ?°ß)
-   (#x80c4 ?æô)
-   (#x80c6 ?ÃÀ)
-   (#x80cc ?ÇØ)
-   (#x80ce ?ÂÛ)
-   (#x80d6 ?æö)
-   (#x80d9 ?æò)
-   (#x80da ?æõ)
-   (#x80db ?æð)
-   (#x80dd ?æó)
-   (#x80de ?˦)
-   (#x80e1 ?¸Õ)
-   (#x80e4 ?°ý)
-   (#x80e5 ?æñ)
-   (#x80ef ?æø)
-   (#x80f1 ?æù)
-   (#x80f4 ?ƹ)
-   (#x80f8 ?¶»)
-   (#x80fc ?ç¦)
-   (#x80fd ?ǽ)
-   (#x8102 ?Ȏ)
-   (#x8105 ?¶¼)
-   (#x8106 ?ÀÈ)
-   (#x8107 ?ÃÆ)
-   (#x8108 ?Ì®)
-   (#x8109 ?æ÷)
-   (#x810a ?ÀÔ)
-   (#x811a ?µÓ)
-   (#x811b ?æú)
-   (#x8123 ?æü)
-   (#x8129 ?æû)
-   (#x812f ?æý)
-   (#x8131 ?æ)
-   (#x8133 ?Ǿ)
-   (#x8139 ?ı)
-   (#x813e ?ç£)
-   (#x8146 ?ç¢)
-   (#x814b ?æþ)
-   (#x814e ?¿Õ)
-   (#x8150 ?Éå)
-   (#x8151 ?ç¥)
-   (#x8153 ?ç¤)
-   (#x8154 ?¹Ã)
-   (#x8155 ?ÃÓ)
-   (#x815f ?çµ)
-   (#x8165 ?ç©)
-   (#x8166 ?çª)
-   (#x816b ?¼ð)
-   (#x816e ?ç¨)
-   (#x8170 ?¹ø)
-   (#x8171 ?ç§)
-   (#x8174 ?ç«)
-   (#x8178 ?IJ)
-   (#x8179 ?Ê¢)
-   (#x817a ?ã)
-   (#x817f ?ÂÜ)
-   (#x8180 ?ç¯)
-   (#x8182 ?ç°)
-   (#x8183 ?ç¬)
-   (#x8188 ?ç­)
-   (#x818a ?ç®)
-   (#x818f ?¹Ñ)
-   (#x8193 ?ç¶)
-   (#x8195 ?ç²)
-   (#x819a ?Éæ)
-   (#x819c ?Ëì)
-   (#x819d ?ɨ)
-   (#x81a0 ?ç±)
-   (#x81a3 ?ç´)
-   (#x81a4 ?ç³)
-   (#x81a8 ?ËÄ)
-   (#x81a9 ?ç·)
-   (#x81b0 ?ç¸)
-   (#x81b3 ?÷)
-   (#x81b5 ?ç¹)
-   (#x81b8 ?ç»)
-   (#x81ba ?ç¿)
-   (#x81bd ?ç¼)
-   (#x81be ?çº)
-   (#x81bf ?Ç¿)
-   (#x81c0 ?ç½)
-   (#x81c2 ?ç¾)
-   (#x81c6 ?²²)
-   (#x81c8 ?çÅ)
-   (#x81c9 ?çÀ)
-   (#x81cd ?çÃ)
-   (#x81d1 ?çÂ)
-   (#x81d3 ?¡)
-   (#x81d8 ?çÄ)
-   (#x81d9 ?çÃ)
-   (#x81da ?çÆ)
-   (#x81df ?çÇ)
-   (#x81e0 ?çÈ)
-   (#x81e3 ?¿Ã)
-   (#x81e5 ?²é)
-   (#x81e7 ?çÉ)
-   (#x81e8 ?Î×)
-   (#x81ea ?¼«)
-   (#x81ed ?½­)
-   (#x81f3 ?Ȑ)
-   (#x81f4 ?Ã×)
-   (#x81fa ?çÊ)
-   (#x81fb ?çË)
-   (#x81fc ?±±)
-   (#x81fe ?çÌ)
-   (#x8201 ?çÃ)
-   (#x8202 ?çÎ)
-   (#x8205 ?çÃ)
-   (#x8207 ?çÃ)
-   (#x8208 ?¶½)
-   (#x8209 ?Úª)
-   (#x820a ?çÑ)
-   (#x820c ?Àå)
-   (#x820d ?çÒ)
-   (#x820e ?¼Ë)
-   (#x8210 ?çÓ)
-   (#x8212 ?а)
-   (#x8216 ?çÔ)
-   (#x8217 ?ÊÞ)
-   (#x8218 ?´Ü)
-   (#x821b ?ä)
-   (#x821c ?½Ø)
-   (#x821e ?Éñ)
-   (#x821f ?½®)
-   (#x8229 ?çÕ)
-   (#x822a ?¹Ò)
-   (#x822b ?çÖ)
-   (#x822c ?ÈÌ)
-   (#x822e ?çä)
-   (#x8233 ?çØ)
-   (#x8235 ?ÂÉ)
-   (#x8236 ?Çõ)
-   (#x8237 ?¸¿)
-   (#x8238 ?ç×)
-   (#x8239 ?ÃÂ¥)
-   (#x8240 ?çÙ)
-   (#x8247 ?Äú)
-   (#x8258 ?çÛ)
-   (#x8259 ?çÚ)
-   (#x825a ?çÃ)
-   (#x825d ?çÜ)
-   (#x825f ?çÞ)
-   (#x8262 ?çà)
-   (#x8264 ?çß)
-   (#x8266 ?´Ã)
-   (#x8268 ?çá)
-   (#x826a ?çâ)
-   (#x826b ?çã)
-   (#x826e ?º±)
-   (#x826f ?ÎÉ)
-   (#x8271 ?çå)
-   (#x8272 ?¿§)
-   (#x8276 ?±ð)
-   (#x8277 ?çæ)
-   (#x8278 ?çç)
-   (#x827e ?çè)
-   (#x828b ?°ò)
-   (#x828d ?çé)
-   (#x8292 ?çê)
-   (#x8299 ?Éç)
-   (#x829d ?¼Ç)
-   (#x829f ?çì)
-   (#x82a5 ?³©)
-   (#x82a6 ?°²)
-   (#x82ab ?çë)
-   (#x82ac ?çî)
-   (#x82ad ?ÇÎ)
-   (#x82af ?¿Ä)
-   (#x82b1 ?²Ö)
-   (#x82b3 ?˧)
-   (#x82b8 ?·Ã)
-   (#x82b9 ?¶Ü)
-   (#x82bb ?çí)
-   (#x82bd ?²ê)
-   (#x82c5 ?´£)
-   (#x82d1 ?±ñ)
-   (#x82d2 ?çò)
-   (#x82d3 ?Îê)
-   (#x82d4 ?ÂÃ)
-   (#x82d7 ?ÉÄ)
-   (#x82d9 ?çþ)
-   (#x82db ?²×)
-   (#x82dc ?çü)
-   (#x82de ?çú)
-   (#x82df ?çñ)
-   (#x82e1 ?çï)
-   (#x82e3 ?çð)
-   (#x82e5 ?¼ã)
-   (#x82e6 ?¶ì)
-   (#x82e7 ?Ã÷)
-   (#x82eb ?ÆÑ)
-   (#x82f1 ?±Ñ)
-   (#x82f3 ?çô)
-   (#x82f4 ?çó)
-   (#x82f9 ?çù)
-   (#x82fa ?çõ)
-   (#x82fb ?çø)
-   (#x8302 ?ÃŒÃ)
-   (#x8303 ?ç÷)
-   (#x8304 ?²Ø)
-   (#x8305 ?³ý)
-   (#x8306 ?çû)
-   (#x8309 ?çý)
-   (#x830e ?·Ô)
-   (#x8316 ?è£)
-   (#x8317 ?è¬)
-   (#x8318 ?è­)
-   (#x831c ?°«)
-   (#x8323 ?è´)
-   (#x8328 ?°ñ)
-   (#x832b ?è«)
-   (#x832f ?èª)
-   (#x8331 ?è¥)
-   (#x8332 ?è¤)
-   (#x8334 ?è¢)
-   (#x8335 ?è¡)
-   (#x8336 ?Ãã)
-   (#x8338 ?Âû)
-   (#x8339 ?è§)
-   (#x8340 ?è¦)
-   (#x8345 ?è©)
-   (#x8349 ?Ãð)
-   (#x834a ?·Õ)
-   (#x834f ?±Ã)
-   (#x8350 ?è¨)
-   (#x8352 ?¹Ó)
-   (#x8358 ?Ãñ)
-   (#x8373 ?èº)
-   (#x8375 ?è»)
-   (#x8377 ?²Ù)
-   (#x837b ?²®)
-   (#x837c ?è¸)
-   (#x8385 ?è®)
-   (#x8387 ?è¶)
-   (#x8389 ?è½)
-   (#x838a ?è·)
-   (#x838e ?èµ)
-   (#x8393 ?çö)
-   (#x8396 ?è³)
-   (#x839a ?è¯)
-   (#x839e ?´Ã)
-   (#x839f ?è±)
-   (#x83a0 ?è¼)
-   (#x83a2 ?è²)
-   (#x83a8 ?è¾)
-   (#x83aa ?è°)
-   (#x83ab ?Çü)
-   (#x83b1 ?Ãé)
-   (#x83b5 ?è¹)
-   (#x83bd ?èÃ)
-   (#x83c1 ?èÇ)
-   (#x83c5 ?¿û)
-   (#x83ca ?µÆ)
-   (#x83cc ?¶Ã)
-   (#x83ce ?èÂ)
-   (#x83d3 ?²Û)
-   (#x83d6 ?¾Ô)
-   (#x83d8 ?èÅ)
-   (#x83dc ?ºÚ)
-   (#x83df ?ÅÑ)
-   (#x83e0 ?èÊ)
-   (#x83e9 ?Êî)
-   (#x83eb ?èÃ)
-   (#x83ef ?²Ú)
-   (#x83f0 ?¸Ö)
-   (#x83f1 ?É©)
-   (#x83f2 ?èË)
-   (#x83f4 ?è¿)
-   (#x83f7 ?èÈ)
-   (#x83fb ?èÒ)
-   (#x83fd ?èÃ)
-   (#x8403 ?èÄ)
-   (#x8404 ?ƺ)
-   (#x8407 ?èÉ)
-   (#x840b ?èÆ)
-   (#x840c ?˨)
-   (#x840d ?èÌ)
-   (#x840e ?°à)
-   (#x8413 ?èÀ)
-   (#x8420 ?èÎ)
-   (#x8422 ?èÃ)
-   (#x8429 ?Çë)
-   (#x842a ?èÔ)
-   (#x842c ?èß)
-   (#x8431 ?³þ)
-   (#x8435 ?èâ)
-   (#x8438 ?èÃ)
-   (#x843c ?èÕ)
-   (#x843d ?Ãî)
-   (#x8446 ?èÞ)
-   (#x8449 ?ÃÕ)
-   (#x844e ?Ϊ)
-   (#x8457 ?Ãø)
-   (#x845b ?³ë)
-   (#x8461 ?Éò)
-   (#x8462 ?èä)
-   (#x8463 ?Æ¡)
-   (#x8466 ?°±)
-   (#x8469 ?èÃ)
-   (#x846b ?èÙ)
-   (#x846c ?Ãò)
-   (#x846d ?èÓ)
-   (#x846e ?èÛ)
-   (#x846f ?èà)
-   (#x8471 ?Ǭ)
-   (#x8475 ?°ª)
-   (#x8477 ?èØ)
-   (#x8479 ?èá)
-   (#x847a ?Éø)
-   (#x8482 ?èÜ)
-   (#x8484 ?è×)
-   (#x848b ?¾Õ)
-   (#x8490 ?½¯)
-   (#x8494 ?¼¬)
-   (#x8499 ?ÌØ)
-   (#x849c ?ÉÇ)
-   (#x849f ?èç)
-   (#x84a1 ?èð)
-   (#x84ad ?èÚ)
-   (#x84b2 ?³÷)
-   (#x84b8 ?¾ø)
-   (#x84b9 ?èå)
-   (#x84bb ?èê)
-   (#x84bc ?Ãó)
-   (#x84bf ?èæ)
-   (#x84c1 ?èí)
-   (#x84c4 ?Ãß)
-   (#x84c6 ?èî)
-   (#x84c9 ?ÃÖ)
-   (#x84ca ?èã)
-   (#x84cb ?³¸)
-   (#x84cd ?èé)
-   (#x84d0 ?èì)
-   (#x84d1 ?̬)
-   (#x84d6 ?èï)
-   (#x84d9 ?èè)
-   (#x84da ?èë)
-   (#x84ec ?Ë©)
-   (#x84ee ?Ï¡)
-   (#x84f4 ?èó)
-   (#x84fc ?èú)
-   (#x84ff ?èò)
-   (#x8500 ?¼Ã)
-   (#x8506 ?èÑ)
-   (#x8511 ?ÊÎ)
-   (#x8513 ?Ì¢)
-   (#x8514 ?èù)
-   (#x8515 ?èø)
-   (#x8517 ?èô)
-   (#x8518 ?èõ)
-   (#x851a ?±¶)
-   (#x851f ?è÷)
-   (#x8521 ?èñ)
-   (#x8526 ?ÄÕ)
-   (#x852c ?èö)
-   (#x852d ?°þ)
-   (#x8535 ?¢)
-   (#x853d ?ÊÃ)
-   (#x8540 ?èû)
-   (#x8541 ?é¡)
-   (#x8543 ?ÈÙ)
-   (#x8548 ?èþ)
-   (#x8549 ?¾Ö)
-   (#x854a ?¼É)
-   (#x854b ?é£)
-   (#x854e ?¶¾)
-   (#x8555 ?é¤)
-   (#x8557 ?Éù)
-   (#x8558 ?èý)
-   (#x855a ?èÖ)
-   (#x8563 ?èü)
-   (#x8568 ?ÃÃ)
-   (#x8569 ?Æ¢)
-   (#x856a ?Éó)
-   (#x856d ?é«)
-   (#x8577 ?é±)
-   (#x857e ?é²)
-   (#x8580 ?é¥)
-   (#x8584 ?Çö)
-   (#x8587 ?é¯)
-   (#x8588 ?é§)
-   (#x858a ?é©)
-   (#x8590 ?é³)
-   (#x8591 ?é¨)
-   (#x8594 ?é¬)
-   (#x8597 ?±ò)
-   (#x8599 ?Æå)
-   (#x859b ?é­)
-   (#x859c ?é°)
-   (#x85a4 ?é¦)
-   (#x85a6 ?æ)
-   (#x85a8 ?éª)
-   (#x85a9 ?Ȥ)
-   (#x85aa ?¿Å)
-   (#x85ab ?·°)
-   (#x85ac ?Ìô)
-   (#x85ae ?Ìù)
-   (#x85af ?½ò)
-   (#x85b9 ?é·)
-   (#x85ba ?éµ)
-   (#x85c1 ?ÃÃŽ)
-   (#x85c9 ?é´)
-   (#x85cd ?Ãõ)
-   (#x85cf ?é¶)
-   (#x85d0 ?é¸)
-   (#x85d5 ?é¹)
-   (#x85dc ?é¼)
-   (#x85dd ?éº)
-   (#x85e4 ?Æ£)
-   (#x85e5 ?é»)
-   (#x85e9 ?ÈÃ)
-   (#x85ea ?é®)
-   (#x85f7 ?½ó)
-   (#x85f9 ?é½)
-   (#x85fa ?éÂ)
-   (#x85fb ?Ãô)
-   (#x85fe ?éÃ)
-   (#x8602 ?é¢)
-   (#x8606 ?éÃ)
-   (#x8607 ?ÃÉ)
-   (#x860a ?é¾)
-   (#x860b ?éÀ)
-   (#x8613 ?é¿)
-   (#x8616 ?ݱ)
-   (#x8617 ?Ý¢)
-   (#x861a ?éÅ)
-   (#x8622 ?éÄ)
-   (#x862d ?Ãö)
-   (#x862f ?â¼)
-   (#x8630 ?éÆ)
-   (#x863f ?éÇ)
-   (#x864d ?éÈ)
-   (#x864e ?¸×)
-   (#x8650 ?µÔ)
-   (#x8654 ?éÊ)
-   (#x8655 ?ÑÃ)
-   (#x865a ?µõ)
-   (#x865c ?κ)
-   (#x865e ?¶ó)
-   (#x865f ?éË)
-   (#x8667 ?éÌ)
-   (#x866b ?Ãî)
-   (#x8671 ?éÃ)
-   (#x8679 ?Æú)
-   (#x867b ?°º)
-   (#x868a ?²ã)
-   (#x868b ?éÒ)
-   (#x868c ?éÓ)
-   (#x8693 ?éÎ)
-   (#x8695 ?»½)
-   (#x86a3 ?éÃ)
-   (#x86a4 ?ÇÂ)
-   (#x86a9 ?éÃ)
-   (#x86aa ?éÑ)
-   (#x86ab ?éÛ)
-   (#x86af ?éÕ)
-   (#x86b0 ?éØ)
-   (#x86b6 ?éÔ)
-   (#x86c4 ?éÖ)
-   (#x86c6 ?é×)
-   (#x86c7 ?¼Ø)
-   (#x86c9 ?éÙ)
-   (#x86cb ?ÃÃ)
-   (#x86cd ?·Ö)
-   (#x86ce ?³Â)
-   (#x86d4 ?éÜ)
-   (#x86d9 ?³¿)
-   (#x86db ?éá)
-   (#x86de ?éÃ)
-   (#x86df ?éà)
-   (#x86e4 ?Ⱥ)
-   (#x86e9 ?éÞ)
-   (#x86ec ?éß)
-   (#x86ed ?ÉÈ)
-   (#x86ee ?ÈÚ)
-   (#x86ef ?éâ)
-   (#x86f8 ?Âý)
-   (#x86f9 ?éì)
-   (#x86fb ?éè)
-   (#x86fe ?²ë)
-   (#x8700 ?éæ)
-   (#x8702 ?˪)
-   (#x8703 ?éç)
-   (#x8706 ?éä)
-   (#x8708 ?éå)
-   (#x8709 ?éê)
-   (#x870a ?éí)
-   (#x870d ?éë)
-   (#x8711 ?éé)
-   (#x8712 ?éã)
-   (#x8718 ?ÃØ)
-   (#x871a ?éô)
-   (#x871c ?̪)
-   (#x8725 ?éò)
-   (#x8729 ?éó)
-   (#x8734 ?éî)
-   (#x8737 ?éð)
-   (#x873b ?éñ)
-   (#x873f ?éï)
-   (#x8749 ?Àæ)
-   (#x874b ?Ϲ)
-   (#x874c ?éø)
-   (#x874e ?éù)
-   (#x8753 ?ê¡)
-   (#x8755 ?¿ª)
-   (#x8757 ?éû)
-   (#x8759 ?éþ)
-   (#x875f ?éö)
-   (#x8760 ?éõ)
-   (#x8763 ?ê¢)
-   (#x8766 ?²Ü)
-   (#x8768 ?éü)
-   (#x876a ?ê£)
-   (#x876e ?éý)
-   (#x8774 ?éú)
-   (#x8776 ?ij)
-   (#x8778 ?é÷)
-   (#x877f ?Çè)
-   (#x8782 ?ê§)
-   (#x878d ?Í»)
-   (#x879f ?ê¦)
-   (#x87a2 ?ê¥)
-   (#x87ab ?ê®)
-   (#x87af ?ê¨)
-   (#x87b3 ?ê°)
-   (#x87ba ?Ãæ)
-   (#x87bb ?ê³)
-   (#x87bd ?êª)
-   (#x87c0 ?ê«)
-   (#x87c4 ?ê¯)
-   (#x87c6 ?ê²)
-   (#x87c7 ?ê±)
-   (#x87cb ?ê©)
-   (#x87d0 ?ê¬)
-   (#x87d2 ?ê½)
-   (#x87e0 ?ê¶)
-   (#x87ef ?ê´)
-   (#x87f2 ?êµ)
-   (#x87f6 ?êº)
-   (#x87f7 ?ê»)
-   (#x87f9 ?³ª)
-   (#x87fb ?µÂ)
-   (#x87fe ?ê¹)
-   (#x8805 ?ê¤)
-   (#x880d ?ê¸)
-   (#x880e ?ê¼)
-   (#x880f ?ê·)
-   (#x8811 ?ê¾)
-   (#x8815 ?êÀ)
-   (#x8816 ?ê¿)
-   (#x8821 ?êÂ)
-   (#x8822 ?êÃ)
-   (#x8823 ?éÚ)
-   (#x8827 ?êÆ)
-   (#x8831 ?êÃ)
-   (#x8836 ?êÄ)
-   (#x8839 ?êÅ)
-   (#x883b ?êÇ)
-   (#x8840 ?·ì)
-   (#x8842 ?êÉ)
-   (#x8844 ?êÈ)
-   (#x8846 ?½°)
-   (#x884c ?¹Ô)
-   (#x884d ?Þ§)
-   (#x8852 ?êÊ)
-   (#x8853 ?½Ñ)
-   (#x8857 ?³¹)
-   (#x8859 ?êË)
-   (#x885b ?±Ò)
-   (#x885d ?¾×)
-   (#x885e ?êÌ)
-   (#x8861 ?¹Õ)
-   (#x8862 ?êÃ)
-   (#x8863 ?°á)
-   (#x8868 ?ɽ)
-   (#x886b ?êÎ)
-   (#x8870 ?¿ê)
-   (#x8872 ?êÕ)
-   (#x8875 ?êÒ)
-   (#x8877 ?Ãï)
-   (#x887d ?êÓ)
-   (#x887e ?êÃ)
-   (#x887f ?¶Þ)
-   (#x8881 ?êÃ)
-   (#x8882 ?êÖ)
-   (#x8888 ?·¶)
-   (#x888b ?ÂÞ)
-   (#x888d ?êÜ)
-   (#x8892 ?êØ)
-   (#x8896 ?µ)
-   (#x8897 ?ê×)
-   (#x8899 ?êÚ)
-   (#x889e ?êÑ)
-   (#x88a2 ?êÛ)
-   (#x88a4 ?êÃ)
-   (#x88ab ?Èï)
-   (#x88ae ?êÙ)
-   (#x88b0 ?êÞ)
-   (#x88b1 ?êà)
-   (#x88b4 ?¸Ó)
-   (#x88b5 ?êÔ)
-   (#x88b7 ?°Ã)
-   (#x88bf ?êß)
-   (#x88c1 ?ºÛ)
-   (#x88c2 ?Îö)
-   (#x88c3 ?êá)
-   (#x88c4 ?êâ)
-   (#x88c5 ?Ãõ)
-   (#x88cf ?΢)
-   (#x88d4 ?êã)
-   (#x88d5 ?͵)
-   (#x88d8 ?êä)
-   (#x88d9 ?êå)
-   (#x88dc ?Êä)
-   (#x88dd ?êæ)
-   (#x88df ?ºÀ)
-   (#x88e1 ?Σ)
-   (#x88e8 ?êë)
-   (#x88f2 ?êì)
-   (#x88f3 ?¾Ø)
-   (#x88f4 ?êê)
-   (#x88f8 ?Ãç)
-   (#x88f9 ?êç)
-   (#x88fc ?êé)
-   (#x88fd ?À½)
-   (#x88fe ?¿þ)
-   (#x8902 ?êè)
-   (#x8904 ?êí)
-   (#x8907 ?Ê£)
-   (#x890a ?êï)
-   (#x890c ?êî)
-   (#x8910 ?³ì)
-   (#x8912 ?Ë«)
-   (#x8913 ?êð)
-   (#x891d ?êü)
-   (#x891e ?êò)
-   (#x8925 ?êó)
-   (#x892a ?êô)
-   (#x892b ?êõ)
-   (#x8936 ?êù)
-   (#x8938 ?êú)
-   (#x893b ?êø)
-   (#x8941 ?êö)
-   (#x8943 ?êñ)
-   (#x8944 ?ê÷)
-   (#x894c ?êû)
-   (#x894d ?ð·)
-   (#x8956 ?²¨)
-   (#x895e ?êþ)
-   (#x895f ?¶ß)
-   (#x8960 ?êý)
-   (#x8964 ?ë¢)
-   (#x8966 ?ë¡)
-   (#x896a ?ë¤)
-   (#x896d ?ë£)
-   (#x896f ?ë¥)
-   (#x8972 ?½±)
-   (#x8974 ?ë¦)
-   (#x8977 ?ë§)
-   (#x897e ?ë¨)
-   (#x897f ?À¾)
-   (#x8981 ?Ã×)
-   (#x8983 ?ë©)
-   (#x8986 ?ʤ)
-   (#x8987 ?ÇÆ)
-   (#x8988 ?ëª)
-   (#x898a ?ë«)
-   (#x898b ?¸«)
-   (#x898f ?µ¬)
-   (#x8993 ?ë¬)
-   (#x8996 ?ȑ)
-   (#x8997 ?ÇÃ)
-   (#x8998 ?ë­)
-   (#x899a ?³Ã)
-   (#x89a1 ?ë®)
-   (#x89a6 ?ë°)
-   (#x89a7 ?Ã÷)
-   (#x89a9 ?ë¯)
-   (#x89aa ?¿Æ)
-   (#x89ac ?ë±)
-   (#x89af ?ë²)
-   (#x89b2 ?ë³)
-   (#x89b3 ?´Ñ)
-   (#x89ba ?ë´)
-   (#x89bd ?ëµ)
-   (#x89bf ?ë¶)
-   (#x89c0 ?ë·)
-   (#x89d2 ?³Ñ)
-   (#x89da ?ë¸)
-   (#x89dc ?ë¹)
-   (#x89dd ?ëº)
-   (#x89e3 ?²ò)
-   (#x89e6 ?¿¨)
-   (#x89e7 ?ë»)
-   (#x89f4 ?ë¼)
-   (#x89f8 ?ë½)
-   (#x8a00 ?¸À)
-   (#x8a02 ?Äû)
-   (#x8a03 ?ë¾)
-   (#x8a08 ?·×)
-   (#x8a0a ?¿Ö)
-   (#x8a0c ?ëÃ)
-   (#x8a0e ?Ƥ)
-   (#x8a10 ?ëÀ)
-   (#x8a13 ?·±)
-   (#x8a16 ?ë¿)
-   (#x8a17 ?Â÷)
-   (#x8a18 ?µ­)
-   (#x8a1b ?ëÂ)
-   (#x8a1d ?ëÃ)
-   (#x8a1f ?¾Ù)
-   (#x8a23 ?·í)
-   (#x8a25 ?ëÄ)
-   (#x8a2a ?ˬ)
-   (#x8a2d ?Àß)
-   (#x8a31 ?µö)
-   (#x8a33 ?Ìõ)
-   (#x8a34 ?ÃÊ)
-   (#x8a36 ?ëÅ)
-   (#x8a3a ?¿Ç)
-   (#x8a3b ?Ãð)
-   (#x8a3c ?¾Ú)
-   (#x8a41 ?ëÆ)
-   (#x8a46 ?ëÉ)
-   (#x8a48 ?ëÊ)
-   (#x8a50 ?º¾)
-   (#x8a51 ?ÂÂ)
-   (#x8a52 ?ëÈ)
-   (#x8a54 ?¾Û)
-   (#x8a55 ?ɾ)
-   (#x8a5b ?ëÇ)
-   (#x8a5e ?ȓ)
-   (#x8a60 ?±Ó)
-   (#x8a62 ?ëÎ)
-   (#x8a63 ?·Ø)
-   (#x8a66 ?Ȕ)
-   (#x8a69 ?Ȓ)
-   (#x8a6b ?ÃÃ)
-   (#x8a6c ?ëÃ)
-   (#x8a6d ?ëÌ)
-   (#x8a6e ?ç)
-   (#x8a70 ?µÃ)
-   (#x8a71 ?ÃÃ)
-   (#x8a72 ?³º)
-   (#x8a73 ?¾Ü)
-   (#x8a7c ?ëË)
-   (#x8a82 ?ëÃ)
-   (#x8a84 ?ëÑ)
-   (#x8a85 ?ëÃ)
-   (#x8a87 ?¸Ø)
-   (#x8a89 ?ÃÀ)
-   (#x8a8c ?ȕ)
-   (#x8a8d ?ǧ)
-   (#x8a91 ?ëÔ)
-   (#x8a93 ?ÀÀ)
-   (#x8a95 ?ÃÂ)
-   (#x8a98 ?Ͷ)
-   (#x8a9a ?ë×)
-   (#x8a9e ?¸ì)
-   (#x8aa0 ?À¿)
-   (#x8aa1 ?ëÓ)
-   (#x8aa3 ?ëØ)
-   (#x8aa4 ?¸í)
-   (#x8aa5 ?ëÕ)
-   (#x8aa6 ?ëÖ)
-   (#x8aa8 ?ëÒ)
-   (#x8aac ?Àâ)
-   (#x8aad ?ÆÉ)
-   (#x8ab0 ?ï)
-   (#x8ab2 ?²Ã)
-   (#x8ab9 ?Èð)
-   (#x8abc ?µÃ)
-   (#x8abf ?Ä´)
-   (#x8ac2 ?ëÛ)
-   (#x8ac4 ?ëÙ)
-   (#x8ac7 ?ÃÌ)
-   (#x8acb ?ÀÃ)
-   (#x8acc ?´Ò)
-   (#x8acd ?ëÚ)
-   (#x8acf ?¿Û)
-   (#x8ad2 ?ÎÊ)
-   (#x8ad6 ?ÃÀ)
-   (#x8ada ?ëÜ)
-   (#x8adb ?ëç)
-   (#x8adc ?ĵ)
-   (#x8ade ?ëæ)
-   (#x8ae0 ?ëã)
-   (#x8ae1 ?ëë)
-   (#x8ae2 ?ëä)
-   (#x8ae4 ?ëà)
-   (#x8ae6 ?Äü)
-   (#x8ae7 ?ëß)
-   (#x8aeb ?ëÃ)
-   (#x8aed ?Í¡)
-   (#x8aee ?»ð)
-   (#x8af1 ?ëá)
-   (#x8af3 ?ëÞ)
-   (#x8af7 ?ëå)
-   (#x8af8 ?½ô)
-   (#x8afa ?¸Ã)
-   (#x8afe ?Âú)
-   (#x8b00 ?ËÅ)
-   (#x8b01 ?±Ú)
-   (#x8b02 ?°â)
-   (#x8b04 ?Æ¥)
-   (#x8b07 ?ëé)
-   (#x8b0c ?ëè)
-   (#x8b0e ?Ææ)
-   (#x8b10 ?ëí)
-   (#x8b14 ?ëâ)
-   (#x8b16 ?ëì)
-   (#x8b17 ?ëî)
-   (#x8b19 ?¸¬)
-   (#x8b1a ?ëê)
-   (#x8b1b ?¹Ö)
-   (#x8b1d ?¼Õ)
-   (#x8b20 ?ëï)
-   (#x8b21 ?ÃØ)
-   (#x8b26 ?ëò)
-   (#x8b28 ?ëõ)
-   (#x8b2b ?ëó)
-   (#x8b2c ?ɵ)
-   (#x8b33 ?ëð)
-   (#x8b39 ?¶à)
-   (#x8b3e ?ëô)
-   (#x8b41 ?ëö)
-   (#x8b49 ?ëú)
-   (#x8b4c ?ë÷)
-   (#x8b4e ?ëù)
-   (#x8b4f ?ëø)
-   (#x8b56 ?ëû)
-   (#x8b58 ?¼±)
-   (#x8b5a ?ëý)
-   (#x8b5b ?ëü)
-   (#x8b5c ?Éè)
-   (#x8b5f ?ì¡)
-   (#x8b66 ?·Ù)
-   (#x8b6b ?ëþ)
-   (#x8b6c ?ì¢)
-   (#x8b6f ?ì£)
-   (#x8b70 ?µÄ)
-   (#x8b71 ?æÃ)
-   (#x8b72 ?¾ù)
-   (#x8b74 ?ì¤)
-   (#x8b77 ?¸î)
-   (#x8b7d ?ì¥)
-   (#x8b80 ?ì¦)
-   (#x8b83 ?»¾)
-   (#x8b8a ?ÚÎ)
-   (#x8b8c ?ì§)
-   (#x8b8e ?ì¨)
-   (#x8b90 ?½²)
-   (#x8b92 ?ì©)
-   (#x8b93 ?ìª)
-   (#x8b96 ?ì«)
-   (#x8b99 ?ì¬)
-   (#x8b9a ?ì­)
-   (#x8c37 ?ë)
-   (#x8c3a ?ì®)
-   (#x8c3f ?ì°)
-   (#x8c41 ?ì¯)
-   (#x8c46 ?Ʀ)
-   (#x8c48 ?ì±)
-   (#x8c4a ?Ë­)
-   (#x8c4c ?ì²)
-   (#x8c4e ?ì³)
-   (#x8c50 ?ì´)
-   (#x8c55 ?ìµ)
-   (#x8c5a ?ÆÚ)
-   (#x8c61 ?¾Ã)
-   (#x8c62 ?ì¶)
-   (#x8c6a ?¹ë)
-   (#x8c6b ?Ю)
-   (#x8c6c ?ì·)
-   (#x8c78 ?ì¸)
-   (#x8c79 ?É¿)
-   (#x8c7a ?ì¹)
-   (#x8c7c ?ìÃ)
-   (#x8c82 ?ìº)
-   (#x8c85 ?ì¼)
-   (#x8c89 ?ì»)
-   (#x8c8a ?ì½)
-   (#x8c8c ?ËÆ)
-   (#x8c8d ?ì¾)
-   (#x8c8e ?ì¿)
-   (#x8c94 ?ìÀ)
-   (#x8c98 ?ìÂ)
-   (#x8c9d ?³­)
-   (#x8c9e ?Äç)
-   (#x8ca0 ?Éé)
-   (#x8ca1 ?ºâ)
-   (#x8ca2 ?¹×)
-   (#x8ca7 ?ÉÃ)
-   (#x8ca8 ?²ß)
-   (#x8ca9 ?ÈÎ)
-   (#x8caa ?ìÅ)
-   (#x8cab ?´Ó)
-   (#x8cac ?ÀÕ)
-   (#x8cad ?ìÄ)
-   (#x8cae ?ìÉ)
-   (#x8caf ?Ãù)
-   (#x8cb0 ?Ìã)
-   (#x8cb2 ?ìÇ)
-   (#x8cb3 ?ìÈ)
-   (#x8cb4 ?µ®)
-   (#x8cb6 ?ìÊ)
-   (#x8cb7 ?Çã)
-   (#x8cb8 ?Âß)
-   (#x8cbb ?Èñ)
-   (#x8cbc ?Ž)
-   (#x8cbd ?ìÆ)
-   (#x8cbf ?ËÇ)
-   (#x8cc0 ?²ì)
-   (#x8cc1 ?ìÌ)
-   (#x8cc2 ?Ϩ)
-   (#x8cc3 ?ÄÂ)
-   (#x8cc4 ?ÃÃ…)
-   (#x8cc7 ?Ȗ)
-   (#x8cc8 ?ìË)
-   (#x8cca ?±)
-   (#x8ccd ?ìÜ)
-   (#x8cce ?è)
-   (#x8cd1 ?Æø)
-   (#x8cd3 ?ÉÃ)
-   (#x8cda ?ìÃ)
-   (#x8cdb ?»¿)
-   (#x8cdc ?»ò)
-   (#x8cde ?¾Þ)
-   (#x8ce0 ?Çå)
-   (#x8ce2 ?¸­)
-   (#x8ce3 ?ìÎ)
-   (#x8ce4 ?ìÃ)
-   (#x8ce6 ?Éê)
-   (#x8cea ?¼Ã)
-   (#x8ced ?Ã…Ã’)
-   (#x8cfa ?ìÑ)
-   (#x8cfb ?ìÒ)
-   (#x8cfc ?¹Ø)
-   (#x8cfd ?ìÃ)
-   (#x8d04 ?ìÓ)
-   (#x8d05 ?ìÔ)
-   (#x8d07 ?ìÖ)
-   (#x8d08 ?£)
-   (#x8d0a ?ìÕ)
-   (#x8d0b ?´æ)
-   (#x8d0d ?ìØ)
-   (#x8d0f ?ì×)
-   (#x8d10 ?ìÙ)
-   (#x8d13 ?ìÛ)
-   (#x8d14 ?ìÃ)
-   (#x8d16 ?ìÞ)
-   (#x8d64 ?ÀÖ)
-   (#x8d66 ?¼Ã)
-   (#x8d67 ?ìß)
-   (#x8d6b ?³Ò)
-   (#x8d6d ?ìà)
-   (#x8d70 ?Ãö)
-   (#x8d71 ?ìá)
-   (#x8d73 ?ìâ)
-   (#x8d74 ?Éë)
-   (#x8d77 ?µ¯)
-   (#x8d81 ?ìã)
-   (#x8d85 ?Ķ)
-   (#x8d8a ?±Û)
-   (#x8d99 ?ìä)
-   (#x8da3 ?¼ñ)
-   (#x8da8 ?¿ö)
-   (#x8db3 ?­)
-   (#x8dba ?ìç)
-   (#x8dbe ?ìæ)
-   (#x8dc2 ?ìå)
-   (#x8dcb ?ìí)
-   (#x8dcc ?ìë)
-   (#x8dcf ?ìè)
-   (#x8dd6 ?ìê)
-   (#x8dda ?ìé)
-   (#x8ddb ?ìì)
-   (#x8ddd ?µ÷)
-   (#x8ddf ?ìð)
-   (#x8de1 ?À×)
-   (#x8de3 ?ìñ)
-   (#x8de8 ?¸Ù)
-   (#x8dea ?ìî)
-   (#x8deb ?ìï)
-   (#x8def ?Ï©)
-   (#x8df3 ?Ä·)
-   (#x8df5 ?é)
-   (#x8dfc ?ìò)
-   (#x8dff ?ìõ)
-   (#x8e08 ?ìó)
-   (#x8e09 ?ìô)
-   (#x8e0a ?ÃÙ)
-   (#x8e0f ?Ƨ)
-   (#x8e10 ?ìø)
-   (#x8e1d ?ìö)
-   (#x8e1e ?ì÷)
-   (#x8e1f ?ìù)
-   (#x8e2a ?í©)
-   (#x8e30 ?ìü)
-   (#x8e34 ?ìý)
-   (#x8e35 ?ìû)
-   (#x8e42 ?ìú)
-   (#x8e44 ?Äý)
-   (#x8e47 ?í¡)
-   (#x8e48 ?í¥)
-   (#x8e49 ?í¢)
-   (#x8e4a ?ìþ)
-   (#x8e4c ?í£)
-   (#x8e50 ?í¤)
-   (#x8e55 ?í«)
-   (#x8e59 ?í¦)
-   (#x8e5f ?ÀØ)
-   (#x8e60 ?í¨)
-   (#x8e63 ?íª)
-   (#x8e64 ?í§)
-   (#x8e72 ?í­)
-   (#x8e74 ?½³)
-   (#x8e76 ?í¬)
-   (#x8e7c ?í®)
-   (#x8e81 ?í¯)
-   (#x8e84 ?í²)
-   (#x8e85 ?í±)
-   (#x8e87 ?í°)
-   (#x8e8a ?í´)
-   (#x8e8b ?í³)
-   (#x8e8d ?Ìö)
-   (#x8e91 ?í¶)
-   (#x8e93 ?íµ)
-   (#x8e94 ?í·)
-   (#x8e99 ?í¸)
-   (#x8ea1 ?íº)
-   (#x8eaa ?í¹)
-   (#x8eab ?¿È)
-   (#x8eac ?í»)
-   (#x8eaf ?¶í)
-   (#x8eb0 ?í¼)
-   (#x8eb1 ?í¾)
-   (#x8ebe ?í¿)
-   (#x8ec5 ?íÀ)
-   (#x8ec6 ?í½)
-   (#x8ec8 ?íÃ)
-   (#x8eca ?¼Ö)
-   (#x8ecb ?íÂ)
-   (#x8ecc ?µ°)
-   (#x8ecd ?·³)
-   (#x8ed2 ?¸®)
-   (#x8edb ?íÃ)
-   (#x8edf ?Æð)
-   (#x8ee2 ?ž)
-   (#x8ee3 ?íÄ)
-   (#x8eeb ?íÇ)
-   (#x8ef8 ?¼´)
-   (#x8efb ?íÆ)
-   (#x8efc ?íÅ)
-   (#x8efd ?·Ú)
-   (#x8efe ?íÈ)
-   (#x8f03 ?³Ó)
-   (#x8f05 ?íÊ)
-   (#x8f09 ?ºÜ)
-   (#x8f0a ?íÉ)
-   (#x8f0c ?íÒ)
-   (#x8f12 ?íÌ)
-   (#x8f13 ?íÎ)
-   (#x8f14 ?Êå)
-   (#x8f15 ?íË)
-   (#x8f19 ?íÃ)
-   (#x8f1b ?íÑ)
-   (#x8f1c ?íÃ)
-   (#x8f1d ?µ±)
-   (#x8f1f ?íÃ)
-   (#x8f26 ?íÓ)
-   (#x8f29 ?ÇÚ)
-   (#x8f2a ?ÎØ)
-   (#x8f2f ?½´)
-   (#x8f33 ?íÔ)
-   (#x8f38 ?Í¢)
-   (#x8f39 ?íÖ)
-   (#x8f3b ?íÕ)
-   (#x8f3e ?íÙ)
-   (#x8f3f ?ÃÃ)
-   (#x8f42 ?íØ)
-   (#x8f44 ?³í)
-   (#x8f45 ?í×)
-   (#x8f46 ?íÜ)
-   (#x8f49 ?íÛ)
-   (#x8f4c ?íÚ)
-   (#x8f4d ?Ų)
-   (#x8f4e ?íÃ)
-   (#x8f57 ?íÞ)
-   (#x8f5c ?íß)
-   (#x8f5f ?¹ì)
-   (#x8f61 ?·¥)
-   (#x8f62 ?íà)
-   (#x8f63 ?íá)
-   (#x8f64 ?íâ)
-   (#x8f9b ?¿É)
-   (#x8f9c ?íã)
-   (#x8f9e ?¼­)
-   (#x8f9f ?íä)
-   (#x8fa3 ?íå)
-   (#x8fa7 ?Ò¡)
-   (#x8fa8 ?Ñþ)
-   (#x8fad ?íæ)
-   (#x8fae ?åð)
-   (#x8faf ?íç)
-   (#x8fb0 ?ä)
-   (#x8fb1 ?¿«)
-   (#x8fb2 ?ÇÀ)
-   (#x8fb7 ?íè)
-   (#x8fba ?ÊÕ)
-   (#x8fbb ?ÄÔ)
-   (#x8fbc ?¹þ)
-   (#x8fbf ?é)
-   (#x8fc2 ?±ª)
-   (#x8fc4 ?Ëø)
-   (#x8fc5 ?¿×)
-   (#x8fce ?·Þ)
-   (#x8fd1 ?¶á)
-   (#x8fd4 ?ÊÖ)
-   (#x8fda ?íé)
-   (#x8fe2 ?íë)
-   (#x8fe5 ?íê)
-   (#x8fe6 ?²à)
-   (#x8fe9 ?Æö)
-   (#x8fea ?íì)
-   (#x8feb ?Ç÷)
-   (#x8fed ?ų)
-   (#x8fef ?íí)
-   (#x8ff0 ?½Ò)
-   (#x8ff4 ?íï)
-   (#x8ff7 ?ÌÂ)
-   (#x8ff8 ?íþ)
-   (#x8ff9 ?íñ)
-   (#x8ffa ?íò)
-   (#x8ffd ?ÄÉ)
-   (#x9000 ?Âà)
-   (#x9001 ?Ã÷)
-   (#x9003 ?ƨ)
-   (#x9005 ?íð)
-   (#x9006 ?µÕ)
-   (#x900b ?íù)
-   (#x900d ?íö)
-   (#x900e ?î¥)
-   (#x900f ?Æ©)
-   (#x9010 ?Ãà)
-   (#x9011 ?íó)
-   (#x9013 ?Äþ)
-   (#x9014 ?ÅÓ)
-   (#x9015 ?íô)
-   (#x9016 ?íø)
-   (#x9017 ?¿à)
-   (#x9019 ?Çç)
-   (#x901a ?ÄÌ)
-   (#x901d ?ÀÂ)
-   (#x901e ?í÷)
-   (#x901f ?®)
-   (#x9020 ?¤)
-   (#x9021 ?íõ)
-   (#x9022 ?°©)
-   (#x9023 ?Ï¢)
-   (#x9027 ?íú)
-   (#x902e ?Âá)
-   (#x9031 ?½µ)
-   (#x9032 ?¿Ê)
-   (#x9035 ?íü)
-   (#x9036 ?íû)
-   (#x9038 ?°ï)
-   (#x9039 ?íý)
-   (#x903c ?ɯ)
-   (#x903e ?î§)
-   (#x9041 ?ÆÛ)
-   (#x9042 ?¿ë)
-   (#x9045 ?ÃÙ)
-   (#x9047 ?¶ø)
-   (#x9049 ?î¦)
-   (#x904a ?Í·)
-   (#x904b ?±¿)
-   (#x904d ?Ê×)
-   (#x904e ?²á)
-   (#x904f ?î¡)
-   (#x9050 ?î¢)
-   (#x9051 ?î£)
-   (#x9052 ?î¤)
-   (#x9053 ?Æ»)
-   (#x9054 ?ã)
-   (#x9055 ?°ã)
-   (#x9056 ?î¨)
-   (#x9058 ?î©)
-   (#x9059 ?ô£)
-   (#x905c ?½)
-   (#x905e ?îª)
-   (#x9060 ?±ó)
-   (#x9061 ?ÃÃŒ)
-   (#x9063 ?¸¯)
-   (#x9065 ?ÃÚ)
-   (#x9068 ?î«)
-   (#x9069 ?Ŭ)
-   (#x906d ?Ãø)
-   (#x906e ?¼×)
-   (#x906f ?î¬)
-   (#x9072 ?î¯)
-   (#x9075 ?½å)
-   (#x9076 ?î­)
-   (#x9077 ?ë)
-   (#x9078 ?ê)
-   (#x907a ?°ä)
-   (#x907c ?ÎË)
-   (#x907d ?î±)
-   (#x907f ?Èò)
-   (#x9080 ?î³)
-   (#x9081 ?î²)
-   (#x9082 ?î°)
-   (#x9083 ?ãä)
-   (#x9084 ?´Ô)
-   (#x9087 ?íî)
-   (#x9089 ?îµ)
-   (#x908a ?î´)
-   (#x908f ?î¶)
-   (#x9091 ?͸)
-   (#x90a3 ?Æá)
-   (#x90a6 ?Ë®)
-   (#x90a8 ?î·)
-   (#x90aa ?¼Ù)
-   (#x90af ?î¸)
-   (#x90b1 ?î¹)
-   (#x90b5 ?îº)
-   (#x90b8 ?Å¡)
-   (#x90c1 ?°ê)
-   (#x90ca ?¹Ù)
-   (#x90ce ?Ϻ)
-   (#x90db ?î¾)
-   (#x90e1 ?·´)
-   (#x90e2 ?î»)
-   (#x90e4 ?î¼)
-   (#x90e8 ?Éô)
-   (#x90ed ?³Ô)
-   (#x90f5 ?͹)
-   (#x90f7 ?¶¿)
-   (#x90fd ?ÅÔ)
-   (#x9102 ?î¿)
-   (#x9112 ?îÀ)
-   (#x9119 ?îÃ)
-   (#x912d ?Å¢)
-   (#x9130 ?îÃ)
-   (#x9132 ?îÂ)
-   (#x9149 ?ÆÓ)
-   (#x914a ?îÄ)
-   (#x914b ?½¶)
-   (#x914c ?¼à)
-   (#x914d ?ÇÛ)
-   (#x914e ?Ãñ)
-   (#x9152 ?¼ò)
-   (#x9154 ?¿ì)
-   (#x9156 ?îÅ)
-   (#x9158 ?îÆ)
-   (#x9162 ?¿Ã)
-   (#x9163 ?îÇ)
-   (#x9165 ?îÈ)
-   (#x9169 ?îÉ)
-   (#x916a ?Ãï)
-   (#x916c ?½·)
-   (#x9172 ?îË)
-   (#x9173 ?îÊ)
-   (#x9175 ?¹Ú)
-   (#x9177 ?¹ó)
-   (#x9178 ?»À)
-   (#x9182 ?îÎ)
-   (#x9187 ?½æ)
-   (#x9189 ?îÃ)
-   (#x918b ?îÌ)
-   (#x918d ?Âé)
-   (#x9190 ?¸ï)
-   (#x9192 ?ÀÃ)
-   (#x9197 ?È°)
-   (#x919c ?½¹)
-   (#x91a2 ?îÃ)
-   (#x91a4 ?¾ß)
-   (#x91aa ?îÒ)
-   (#x91ab ?îÃ)
-   (#x91af ?îÑ)
-   (#x91b4 ?îÔ)
-   (#x91b5 ?îÓ)
-   (#x91b8 ?¾ú)
-   (#x91ba ?îÕ)
-   (#x91c0 ?îÖ)
-   (#x91c1 ?î×)
-   (#x91c6 ?ÈÃ)
-   (#x91c7 ?ºÓ)
-   (#x91c8 ?¼á)
-   (#x91c9 ?îØ)
-   (#x91cb ?îÙ)
-   (#x91cc ?Τ)
-   (#x91cd ?½Å)
-   (#x91ce ?Ìî)
-   (#x91cf ?ÃŽÃŒ)
-   (#x91d0 ?îÚ)
-   (#x91d1 ?¶â)
-   (#x91d6 ?îÛ)
-   (#x91d8 ?Å£)
-   (#x91db ?îÞ)
-   (#x91dc ?³ø)
-   (#x91dd ?¿Ë)
-   (#x91df ?îÜ)
-   (#x91e1 ?îÃ)
-   (#x91e3 ?Äà)
-   (#x91e6 ?ËÕ)
-   (#x91e7 ?¶ü)
-   (#x91f5 ?îà)
-   (#x91f6 ?îá)
-   (#x91fc ?îß)
-   (#x91ff ?îã)
-   (#x920d ?Æß)
-   (#x920e ?³Ã)
-   (#x9211 ?îç)
-   (#x9214 ?îä)
-   (#x9215 ?îæ)
-   (#x921e ?îâ)
-   (#x9229 ?ïÃ)
-   (#x922c ?îå)
-   (#x9234 ?Îë)
-   (#x9237 ?¸Ú)
-   (#x923f ?îï)
-   (#x9244 ?Å´)
-   (#x9245 ?îê)
-   (#x9248 ?îí)
-   (#x9249 ?îë)
-   (#x924b ?îð)
-   (#x9250 ?îñ)
-   (#x9257 ?îé)
-   (#x925a ?îö)
-   (#x925b ?±ô)
-   (#x925e ?îè)
-   (#x9262 ?È­)
-   (#x9264 ?îì)
-   (#x9266 ?¾à)
-   (#x9271 ?¹Û)
-   (#x927e ?ËÈ)
-   (#x9280 ?¶ä)
-   (#x9283 ?½Æ)
-   (#x9285 ?Ƽ)
-   (#x9291 ?í)
-   (#x9293 ?îô)
-   (#x9295 ?îî)
-   (#x9296 ?îó)
-   (#x9298 ?ÌÃ)
-   (#x929a ?ĸ)
-   (#x929b ?îõ)
-   (#x929c ?îò)
-   (#x92ad ?ì)
-   (#x92b7 ?îù)
-   (#x92b9 ?îø)
-   (#x92cf ?î÷)
-   (#x92d2 ?˯)
-   (#x92e4 ?½û)
-   (#x92e9 ?îú)
-   (#x92ea ?Êß)
-   (#x92ed ?±Ô)
-   (#x92f2 ?ÉÆ)
-   (#x92f3 ?Ãò)
-   (#x92f8 ?µø)
-   (#x92fa ?îü)
-   (#x92fc ?¹Ã)
-   (#x9306 ?»¬)
-   (#x930f ?îû)
-   (#x9310 ?¿í)
-   (#x9318 ?¿î)
-   (#x9319 ?ï¡)
-   (#x931a ?ï£)
-   (#x9320 ?¾û)
-   (#x9322 ?ï¢)
-   (#x9323 ?ï¤)
-   (#x9326 ?¶Ó)
-   (#x9328 ?ÉÅ)
-   (#x932b ?¼â)
-   (#x932c ?Ï£)
-   (#x932e ?îþ)
-   (#x932f ?ºø)
-   (#x9332 ?Ï¿)
-   (#x9335 ?ï¦)
-   (#x933a ?ï¥)
-   (#x933b ?ï§)
-   (#x9344 ?îý)
-   (#x934b ?Æé)
-   (#x934d ?ÅÕ)
-   (#x9354 ?Ä×)
-   (#x9356 ?ï¬)
-   (#x935b ?ÃÃ)
-   (#x935c ?ï¨)
-   (#x9360 ?ï©)
-   (#x936c ?·­)
-   (#x936e ?ï«)
-   (#x9375 ?¸°)
-   (#x937c ?ïª)
-   (#x937e ?¾á)
-   (#x938c ?³ù)
-   (#x9394 ?ï°)
-   (#x9396 ?º¿)
-   (#x9397 ?Ãù)
-   (#x939a ?ÄÊ)
-   (#x93a7 ?³»)
-   (#x93ac ?ï®)
-   (#x93ad ?ï¯)
-   (#x93ae ?ÄÃ)
-   (#x93b0 ?ï­)
-   (#x93b9 ?ï±)
-   (#x93c3 ?ï·)
-   (#x93c8 ?ïº)
-   (#x93d0 ?ï¹)
-   (#x93d1 ?Å­)
-   (#x93d6 ?ï²)
-   (#x93d7 ?ï³)
-   (#x93d8 ?ï¶)
-   (#x93dd ?ï¸)
-   (#x93e1 ?¶À)
-   (#x93e4 ?ï»)
-   (#x93e5 ?ïµ)
-   (#x93e8 ?ï´)
-   (#x9403 ?ï¿)
-   (#x9407 ?ïÀ)
-   (#x9410 ?ïÃ)
-   (#x9413 ?ï¾)
-   (#x9414 ?ï½)
-   (#x9418 ?¾â)
-   (#x9419 ?ƪ)
-   (#x941a ?ï¼)
-   (#x9421 ?ïÅ)
-   (#x942b ?ïÃ)
-   (#x9435 ?ïÄ)
-   (#x9436 ?ïÂ)
-   (#x9438 ?Âø)
-   (#x943a ?ïÆ)
-   (#x9441 ?ïÇ)
-   (#x9444 ?ïÉ)
-   (#x9451 ?´Õ)
-   (#x9452 ?ïÈ)
-   (#x9453 ?Ìú)
-   (#x945a ?ïÔ)
-   (#x945b ?ïÊ)
-   (#x945e ?ïÃ)
-   (#x9460 ?ïË)
-   (#x9462 ?ïÌ)
-   (#x946a ?ïÎ)
-   (#x9470 ?ïÃ)
-   (#x9475 ?ïÑ)
-   (#x9477 ?ïÒ)
-   (#x947c ?ïÕ)
-   (#x947d ?ïÓ)
-   (#x947e ?ïÖ)
-   (#x947f ?ïØ)
-   (#x9481 ?ï×)
-   (#x9577 ?Ĺ)
-   (#x9580 ?Ìç)
-   (#x9582 ?ïÙ)
-   (#x9583 ?î)
-   (#x9587 ?ïÚ)
-   (#x9589 ?ÊÄ)
-   (#x958a ?ïÛ)
-   (#x958b ?³«)
-   (#x958f ?±¼)
-   (#x9591 ?´×)
-   (#x9593 ?´Ö)
-   (#x9594 ?ïÜ)
-   (#x9596 ?ïÃ)
-   (#x9598 ?ïÞ)
-   (#x9599 ?ïß)
-   (#x95a0 ?ïà)
-   (#x95a2 ?´Ø)
-   (#x95a3 ?³Õ)
-   (#x95a4 ?¹Þ)
-   (#x95a5 ?ȶ)
-   (#x95a7 ?ïâ)
-   (#x95a8 ?ïá)
-   (#x95ad ?ïã)
-   (#x95b2 ?±Ü)
-   (#x95b9 ?ïæ)
-   (#x95bb ?ïå)
-   (#x95bc ?ïä)
-   (#x95be ?ïç)
-   (#x95c3 ?ïê)
-   (#x95c7 ?°Ç)
-   (#x95ca ?ïè)
-   (#x95cc ?ïì)
-   (#x95cd ?ïë)
-   (#x95d4 ?ïî)
-   (#x95d5 ?ïí)
-   (#x95d6 ?ïï)
-   (#x95d8 ?Æ®)
-   (#x95dc ?ïð)
-   (#x95e1 ?ïñ)
-   (#x95e2 ?ïó)
-   (#x95e5 ?ïò)
-   (#x961c ?Éì)
-   (#x9621 ?ïô)
-   (#x9628 ?ïõ)
-   (#x962a ?ºå)
-   (#x962e ?ïö)
-   (#x962f ?ï÷)
-   (#x9632 ?ËÉ)
-   (#x963b ?ÃË)
-   (#x963f ?°¤)
-   (#x9640 ?ÂË)
-   (#x9642 ?ïø)
-   (#x9644 ?Éí)
-   (#x964b ?ïû)
-   (#x964c ?ïù)
-   (#x964d ?¹ß)
-   (#x964f ?ïú)
-   (#x9650 ?¸Â)
-   (#x965b ?ÊÅ)
-   (#x965c ?ïý)
-   (#x965d ?ð¡)
-   (#x965e ?ïþ)
-   (#x965f ?ð¢)
-   (#x9662 ?±¡)
-   (#x9663 ?¿Ø)
-   (#x9664 ?½ü)
-   (#x9665 ?´Ù)
-   (#x9666 ?ð£)
-   (#x966a ?Çæ)
-   (#x966c ?ð¥)
-   (#x9670 ?±¢)
-   (#x9672 ?ð¤)
-   (#x9673 ?ÄÄ)
-   (#x9675 ?ÃŽÃ)
-   (#x9676 ?Æ«)
-   (#x9677 ?ïü)
-   (#x9678 ?Φ)
-   (#x967a ?¸±)
-   (#x967d ?ÃÛ)
-   (#x9685 ?¶ù)
-   (#x9686 ?δ)
-   (#x9688 ?·¨)
-   (#x968a ?Ââ)
-   (#x968b ?ç¡)
-   (#x968d ?ð¦)
-   (#x968e ?³¬)
-   (#x968f ?¿ï)
-   (#x9694 ?³Ö)
-   (#x9695 ?ð¨)
-   (#x9697 ?ð©)
-   (#x9698 ?ð§)
-   (#x9699 ?·ä)
-   (#x969b ?ºÃ)
-   (#x969c ?¾ã)
-   (#x96a0 ?±£)
-   (#x96a3 ?ÎÙ)
-   (#x96a7 ?ð«)
-   (#x96a8 ?î®)
-   (#x96aa ?ðª)
-   (#x96b0 ?ð®)
-   (#x96b1 ?ð¬)
-   (#x96b2 ?ð­)
-   (#x96b4 ?ð¯)
-   (#x96b6 ?ð°)
-   (#x96b7 ?Îì)
-   (#x96b8 ?ð±)
-   (#x96b9 ?ð²)
-   (#x96bb ?ÀÉ)
-   (#x96bc ?È»)
-   (#x96c0 ?¿ý)
-   (#x96c1 ?´ç)
-   (#x96c4 ?ͺ)
-   (#x96c5 ?²í)
-   (#x96c6 ?½¸)
-   (#x96c7 ?¸Û)
-   (#x96c9 ?ðµ)
-   (#x96cb ?ð´)
-   (#x96cc ?»ó)
-   (#x96cd ?ð¶)
-   (#x96ce ?ð³)
-   (#x96d1 ?Ȭ)
-   (#x96d5 ?ðº)
-   (#x96d6 ?ê­)
-   (#x96d9 ?ÒÖ)
-   (#x96db ?¿÷)
-   (#x96dc ?ð¸)
-   (#x96e2 ?Î¥)
-   (#x96e3 ?Æñ)
-   (#x96e8 ?±«)
-   (#x96ea ?Àã)
-   (#x96eb ?¼¶)
-   (#x96f0 ?Ê·)
-   (#x96f2 ?±À)
-   (#x96f6 ?Îí)
-   (#x96f7 ?Ãë)
-   (#x96f9 ?ð»)
-   (#x96fb ?Ã…Ã…)
-   (#x9700 ?¼û)
-   (#x9704 ?ð¼)
-   (#x9706 ?ð½)
-   (#x9707 ?¿Ì)
-   (#x9708 ?ð¾)
-   (#x970a ?Îî)
-   (#x970d ?ð¹)
-   (#x970e ?ðÀ)
-   (#x970f ?ðÂ)
-   (#x9711 ?ðÃ)
-   (#x9713 ?ð¿)
-   (#x9716 ?ðÃ)
-   (#x9719 ?ðÄ)
-   (#x971c ?Ãú)
-   (#x971e ?²â)
-   (#x9724 ?ðÅ)
-   (#x9727 ?̸)
-   (#x972a ?ðÆ)
-   (#x9730 ?ðÇ)
-   (#x9732 ?Ϫ)
-   (#x9738 ?Û±)
-   (#x9739 ?ðÈ)
-   (#x973d ?ðÉ)
-   (#x973e ?ðÊ)
-   (#x9742 ?ðÎ)
-   (#x9744 ?ðË)
-   (#x9746 ?ðÌ)
-   (#x9748 ?ðÃ)
-   (#x9749 ?ðÃ)
-   (#x9752 ?ÀÄ)
-   (#x9756 ?Ì÷)
-   (#x9759 ?ÀÅ)
-   (#x975c ?ðÃ)
-   (#x975e ?Èó)
-   (#x9760 ?ðÑ)
-   (#x9761 ?óÓ)
-   (#x9762 ?ÌÌ)
-   (#x9764 ?ðÒ)
-   (#x9766 ?ðÓ)
-   (#x9768 ?ðÔ)
-   (#x9769 ?³×)
-   (#x976b ?ðÖ)
-   (#x976d ?¿Ù)
-   (#x9771 ?ð×)
-   (#x9774 ?·¤)
-   (#x9779 ?ðØ)
-   (#x977a ?ðÜ)
-   (#x977c ?ðÚ)
-   (#x9781 ?ðÛ)
-   (#x9784 ?³ó)
-   (#x9785 ?ðÙ)
-   (#x9786 ?ðÃ)
-   (#x978b ?ðÞ)
-   (#x978d ?°È)
-   (#x978f ?ðß)
-   (#x9790 ?ðà)
-   (#x9798 ?¾ä)
-   (#x979c ?ðá)
-   (#x97a0 ?µÇ)
-   (#x97a3 ?ðä)
-   (#x97a6 ?ðã)
-   (#x97a8 ?ðâ)
-   (#x97ab ?ëñ)
-   (#x97ad ?ÊÜ)
-   (#x97b3 ?ðå)
-   (#x97b4 ?ðæ)
-   (#x97c3 ?ðç)
-   (#x97c6 ?ðè)
-   (#x97c8 ?ðé)
-   (#x97cb ?ðê)
-   (#x97d3 ?´Ú)
-   (#x97dc ?ðë)
-   (#x97ed ?ðì)
-   (#x97ee ?Ç£)
-   (#x97f2 ?ðî)
-   (#x97f3 ?²»)
-   (#x97f5 ?ðñ)
-   (#x97f6 ?ðð)
-   (#x97fb ?±¤)
-   (#x97ff ?¶Ã)
-   (#x9801 ?ÊÇ)
-   (#x9802 ?ĺ)
-   (#x9803 ?º¢)
-   (#x9805 ?¹à)
-   (#x9806 ?½ç)
-   (#x9808 ?¿Ü)
-   (#x980c ?ðó)
-   (#x980f ?ðò)
-   (#x9810 ?ÃÂ)
-   (#x9811 ?´è)
-   (#x9812 ?ÈÒ)
-   (#x9813 ?ÆÜ)
-   (#x9817 ?¿ü)
-   (#x9818 ?ÃŽÃŽ)
-   (#x981a ?·Û)
-   (#x9821 ?ðö)
-   (#x9824 ?ðõ)
-   (#x982c ?ËË)
-   (#x982d ?Ƭ)
-   (#x9834 ?±Ã)
-   (#x9837 ?ð÷)
-   (#x9838 ?ðô)
-   (#x983b ?ÉÑ)
-   (#x983c ?Ãê)
-   (#x983d ?ðø)
-   (#x9846 ?ðù)
-   (#x984b ?ðû)
-   (#x984c ?Âê)
-   (#x984d ?³Û)
-   (#x984e ?³Ü)
-   (#x984f ?ðú)
-   (#x9854 ?´é)
-   (#x9855 ?¸²)
-   (#x9858 ?´ê)
-   (#x985b ?Å¿)
-   (#x985e ?Îà)
-   (#x9867 ?¸Ü)
-   (#x986b ?ðü)
-   (#x986f ?ðý)
-   (#x9870 ?ðþ)
-   (#x9871 ?ñ¡)
-   (#x9873 ?ñ£)
-   (#x9874 ?ñ¢)
-   (#x98a8 ?É÷)
-   (#x98aa ?ñ¤)
-   (#x98af ?ñ¥)
-   (#x98b1 ?ñ¦)
-   (#x98b6 ?ñ§)
-   (#x98c3 ?ñ©)
-   (#x98c4 ?ñ¨)
-   (#x98c6 ?ñª)
-   (#x98db ?Èô)
-   (#x98dc ?æÌ)
-   (#x98df ?¿©)
-   (#x98e2 ?µ²)
-   (#x98e9 ?ñ«)
-   (#x98eb ?ñ¬)
-   (#x98ed ?Ò¬)
-   (#x98ee ?Ý»)
-   (#x98ef ?ÈÓ)
-   (#x98f2 ?°û)
-   (#x98f4 ?°»)
-   (#x98fc ?»ô)
-   (#x98fd ?Ë°)
-   (#x98fe ?¾þ)
-   (#x9903 ?ñ­)
-   (#x9905 ?Ìß)
-   (#x9909 ?ñ®)
-   (#x990a ?ÃÃœ)
-   (#x990c ?±Â)
-   (#x9910 ?»Ã)
-   (#x9912 ?ñ¯)
-   (#x9913 ?²î)
-   (#x9914 ?ñ°)
-   (#x9918 ?ñ±)
-   (#x991d ?ñ³)
-   (#x991e ?ñ´)
-   (#x9920 ?ñ¶)
-   (#x9921 ?ñ²)
-   (#x9924 ?ñµ)
-   (#x9928 ?´Û)
-   (#x992c ?ñ·)
-   (#x992e ?ñ¸)
-   (#x993d ?ñ¹)
-   (#x993e ?ñº)
-   (#x9942 ?ñ»)
-   (#x9945 ?ñ½)
-   (#x9949 ?ñ¼)
-   (#x994b ?ñ¿)
-   (#x994c ?ñÂ)
-   (#x9950 ?ñ¾)
-   (#x9951 ?ñÀ)
-   (#x9952 ?ñÃ)
-   (#x9955 ?ñÃ)
-   (#x9957 ?¶Â)
-   (#x9996 ?¼ó)
-   (#x9997 ?ñÄ)
-   (#x9998 ?ñÅ)
-   (#x9999 ?¹á)
-   (#x99a5 ?ñÆ)
-   (#x99a8 ?³¾)
-   (#x99ac ?ÇÃ)
-   (#x99ad ?ñÇ)
-   (#x99ae ?ñÈ)
-   (#x99b3 ?ÃÚ)
-   (#x99b4 ?Æë)
-   (#x99bc ?ñÉ)
-   (#x99c1 ?Çý)
-   (#x99c4 ?ÂÌ)
-   (#x99c5 ?±Ø)
-   (#x99c6 ?¶î)
-   (#x99c8 ?¶ï)
-   (#x99d0 ?Ãó)
-   (#x99d1 ?ñÎ)
-   (#x99d2 ?¶ð)
-   (#x99d5 ?²ï)
-   (#x99d8 ?ñÃ)
-   (#x99db ?ñË)
-   (#x99dd ?ñÌ)
-   (#x99df ?ñÊ)
-   (#x99e2 ?ñØ)
-   (#x99ed ?ñÃ)
-   (#x99ee ?ñÃ)
-   (#x99f1 ?ñÑ)
-   (#x99f2 ?ñÒ)
-   (#x99f8 ?ñÔ)
-   (#x99fb ?ñÓ)
-   (#x99ff ?½Ù)
-   (#x9a01 ?ñÕ)
-   (#x9a05 ?ñ×)
-   (#x9a0e ?µ³)
-   (#x9a0f ?ñÖ)
-   (#x9a12 ?Ãû)
-   (#x9a13 ?¸³)
-   (#x9a19 ?ñÙ)
-   (#x9a28 ?ÂÃ)
-   (#x9a2b ?ñÚ)
-   (#x9a30 ?Æ­)
-   (#x9a37 ?ñÛ)
-   (#x9a3e ?ñà)
-   (#x9a40 ?ñÞ)
-   (#x9a42 ?ñÃ)
-   (#x9a43 ?ñß)
-   (#x9a45 ?ñÜ)
-   (#x9a4d ?ñâ)
-   (#x9a55 ?ñá)
-   (#x9a57 ?ñä)
-   (#x9a5a ?¶Ã)
-   (#x9a5b ?ñã)
-   (#x9a5f ?ñå)
-   (#x9a62 ?ñæ)
-   (#x9a64 ?ñè)
-   (#x9a65 ?ñç)
-   (#x9a69 ?ñé)
-   (#x9a6a ?ñë)
-   (#x9a6b ?ñê)
-   (#x9aa8 ?¹ü)
-   (#x9aad ?ñì)
-   (#x9ab0 ?ñí)
-   (#x9ab8 ?³¼)
-   (#x9abc ?ñî)
-   (#x9ac0 ?ñï)
-   (#x9ac4 ?¿ñ)
-   (#x9acf ?ñð)
-   (#x9ad1 ?ññ)
-   (#x9ad3 ?ñò)
-   (#x9ad4 ?ñó)
-   (#x9ad8 ?¹â)
-   (#x9ade ?ñô)
-   (#x9adf ?ñõ)
-   (#x9ae2 ?ñö)
-   (#x9ae3 ?ñ÷)
-   (#x9ae6 ?ñø)
-   (#x9aea ?ȱ)
-   (#x9aeb ?ñú)
-   (#x9aed ?ɦ)
-   (#x9aee ?ñû)
-   (#x9aef ?ñù)
-   (#x9af1 ?ñý)
-   (#x9af4 ?ñü)
-   (#x9af7 ?ñþ)
-   (#x9afb ?ò¡)
-   (#x9b06 ?ò¢)
-   (#x9b18 ?ò£)
-   (#x9b1a ?ò¤)
-   (#x9b1f ?ò¥)
-   (#x9b22 ?ò¦)
-   (#x9b23 ?ò§)
-   (#x9b25 ?ò¨)
-   (#x9b27 ?ò©)
-   (#x9b28 ?òª)
-   (#x9b29 ?ò«)
-   (#x9b2a ?ò¬)
-   (#x9b2e ?ò­)
-   (#x9b2f ?ò®)
-   (#x9b31 ?ݵ)
-   (#x9b32 ?ò¯)
-   (#x9b3b ?äø)
-   (#x9b3c ?µ´)
-   (#x9b41 ?³¡)
-   (#x9b42 ?º²)
-   (#x9b43 ?ò±)
-   (#x9b44 ?ò°)
-   (#x9b45 ?Ì¥)
-   (#x9b4d ?ò³)
-   (#x9b4e ?ò´)
-   (#x9b4f ?ò²)
-   (#x9b51 ?òµ)
-   (#x9b54 ?Ëâ)
-   (#x9b58 ?ò¶)
-   (#x9b5a ?µû)
-   (#x9b6f ?Ï¥)
-   (#x9b74 ?ò·)
-   (#x9b83 ?ò¹)
-   (#x9b8e ?°¾)
-   (#x9b91 ?òº)
-   (#x9b92 ?Ê«)
-   (#x9b93 ?ò¸)
-   (#x9b96 ?ò»)
-   (#x9b97 ?ò¼)
-   (#x9b9f ?ò½)
-   (#x9ba0 ?ò¾)
-   (#x9ba8 ?ò¿)
-   (#x9baa ?Ëî)
-   (#x9bab ?»­)
-   (#x9bad ?ºú)
-   (#x9bae ?ï)
-   (#x9bb4 ?òÀ)
-   (#x9bb9 ?òÃ)
-   (#x9bc0 ?òÃ)
-   (#x9bc6 ?òÄ)
-   (#x9bc9 ?¸ñ)
-   (#x9bca ?òÂ)
-   (#x9bcf ?òÅ)
-   (#x9bd1 ?òÆ)
-   (#x9bd2 ?òÇ)
-   (#x9bd4 ?òË)
-   (#x9bd6 ?Ȼ)
-   (#x9bdb ?Âä)
-   (#x9be1 ?òÌ)
-   (#x9be2 ?òÉ)
-   (#x9be3 ?òÈ)
-   (#x9be4 ?òÊ)
-   (#x9be8 ?·ß)
-   (#x9bf0 ?òÃ)
-   (#x9bf1 ?òÃ)
-   (#x9bf2 ?òÎ)
-   (#x9bf5 ?°³)
-   (#x9c04 ?òÚ)
-   (#x9c06 ?òÖ)
-   (#x9c08 ?ò×)
-   (#x9c09 ?òÓ)
-   (#x9c0a ?òÙ)
-   (#x9c0c ?òÕ)
-   (#x9c0d ?³â)
-   (#x9c10 ?ÃÃŒ)
-   (#x9c12 ?òØ)
-   (#x9c13 ?òÔ)
-   (#x9c14 ?òÒ)
-   (#x9c15 ?òÑ)
-   (#x9c1b ?òÜ)
-   (#x9c21 ?òß)
-   (#x9c24 ?òÞ)
-   (#x9c25 ?òÃ)
-   (#x9c2d ?ÉÉ)
-   (#x9c2e ?òÛ)
-   (#x9c2f ?°ó)
-   (#x9c30 ?òà)
-   (#x9c32 ?òâ)
-   (#x9c39 ?³ï)
-   (#x9c3a ?òÃ)
-   (#x9c3b ?±·)
-   (#x9c3e ?òä)
-   (#x9c46 ?òã)
-   (#x9c47 ?òá)
-   (#x9c48 ?í)
-   (#x9c52 ?Ëð)
-   (#x9c57 ?ÎÚ)
-   (#x9c5a ?òå)
-   (#x9c60 ?òæ)
-   (#x9c67 ?òç)
-   (#x9c76 ?òè)
-   (#x9c78 ?òé)
-   (#x9ce5 ?Ä»)
-   (#x9ce7 ?òê)
-   (#x9ce9 ?È·)
-   (#x9ceb ?òï)
-   (#x9cec ?òë)
-   (#x9cf0 ?òì)
-   (#x9cf3 ?˱)
-   (#x9cf4 ?ÌÄ)
-   (#x9cf6 ?ÆÃ)
-   (#x9d03 ?òð)
-   (#x9d06 ?òñ)
-   (#x9d07 ?ƾ)
-   (#x9d08 ?òî)
-   (#x9d09 ?òí)
-   (#x9d0e ?²ª)
-   (#x9d12 ?òù)
-   (#x9d15 ?òø)
-   (#x9d1b ?±õ)
-   (#x9d1f ?òö)
-   (#x9d23 ?òõ)
-   (#x9d26 ?òó)
-   (#x9d28 ?³û)
-   (#x9d2a ?òò)
-   (#x9d2b ?¼²)
-   (#x9d2c ?²©)
-   (#x9d3b ?¹ã)
-   (#x9d3e ?òü)
-   (#x9d3f ?òû)
-   (#x9d41 ?òú)
-   (#x9d44 ?ò÷)
-   (#x9d46 ?òý)
-   (#x9d48 ?òþ)
-   (#x9d50 ?ó¥)
-   (#x9d51 ?ó¤)
-   (#x9d59 ?ó¦)
-   (#x9d5c ?±­)
-   (#x9d5d ?ó¡)
-   (#x9d5e ?ó¢)
-   (#x9d60 ?¹ô)
-   (#x9d61 ?̹)
-   (#x9d64 ?ó£)
-   (#x9d6c ?˲)
-   (#x9d6f ?ó«)
-   (#x9d72 ?ó§)
-   (#x9d7a ?ó¬)
-   (#x9d87 ?ó©)
-   (#x9d89 ?ó¨)
-   (#x9d8f ?·Ü)
-   (#x9d9a ?ó­)
-   (#x9da4 ?ó®)
-   (#x9da9 ?ó¯)
-   (#x9dab ?óª)
-   (#x9daf ?òô)
-   (#x9db2 ?ó°)
-   (#x9db4 ?Äá)
-   (#x9db8 ?ó´)
-   (#x9dba ?óµ)
-   (#x9dbb ?ó³)
-   (#x9dc1 ?ó²)
-   (#x9dc2 ?ó¸)
-   (#x9dc4 ?ó±)
-   (#x9dc6 ?ó¶)
-   (#x9dcf ?ó·)
-   (#x9dd3 ?óº)
-   (#x9dd9 ?ó¹)
-   (#x9de6 ?ó¼)
-   (#x9ded ?ó½)
-   (#x9def ?ó¾)
-   (#x9df2 ?ÃÉ)
-   (#x9df8 ?ó»)
-   (#x9df9 ?Âë)
-   (#x9dfa ?ºí)
-   (#x9dfd ?ó¿)
-   (#x9e1a ?óÀ)
-   (#x9e1b ?óÃ)
-   (#x9e1e ?óÂ)
-   (#x9e75 ?óÃ)
-   (#x9e78 ?¸´)
-   (#x9e79 ?óÄ)
-   (#x9e7d ?óÅ)
-   (#x9e7f ?¼¯)
-   (#x9e81 ?óÆ)
-   (#x9e88 ?óÇ)
-   (#x9e8b ?óÈ)
-   (#x9e8c ?óÉ)
-   (#x9e91 ?óÌ)
-   (#x9e92 ?óÊ)
-   (#x9e93 ?ϼ)
-   (#x9e95 ?óË)
-   (#x9e97 ?Îï)
-   (#x9e9d ?óÃ)
-   (#x9e9f ?ÎÛ)
-   (#x9ea5 ?óÎ)
-   (#x9ea6 ?Çþ)
-   (#x9ea9 ?óÃ)
-   (#x9eaa ?óÑ)
-   (#x9ead ?óÒ)
-   (#x9eb8 ?óÃ)
-   (#x9eb9 ?¹í)
-   (#x9eba ?ÃŒÃ)
-   (#x9ebb ?Ëã)
-   (#x9ebc ?Ö÷)
-   (#x9ebe ?Ãà)
-   (#x9ebf ?Ëû)
-   (#x9ec4 ?²«)
-   (#x9ecc ?óÔ)
-   (#x9ecd ?µÃ)
-   (#x9ece ?óÕ)
-   (#x9ecf ?óÖ)
-   (#x9ed0 ?ó×)
-   (#x9ed2 ?¹õ)
-   (#x9ed4 ?óØ)
-   (#x9ed8 ?àÔ)
-   (#x9ed9 ?ÌÛ)
-   (#x9edb ?Âã)
-   (#x9edc ?óÙ)
-   (#x9edd ?óÛ)
-   (#x9ede ?óÚ)
-   (#x9ee0 ?óÜ)
-   (#x9ee5 ?óÃ)
-   (#x9ee8 ?óÞ)
-   (#x9eef ?óß)
-   (#x9ef4 ?óà)
-   (#x9ef6 ?óá)
-   (#x9ef7 ?óâ)
-   (#x9ef9 ?óã)
-   (#x9efb ?óä)
-   (#x9efc ?óå)
-   (#x9efd ?óæ)
-   (#x9f07 ?óç)
-   (#x9f08 ?óè)
-   (#x9f0e ?Ť)
-   (#x9f13 ?¸Ã)
-   (#x9f15 ?óê)
-   (#x9f20 ?ÃÃ)
-   (#x9f21 ?óë)
-   (#x9f2c ?óì)
-   (#x9f3b ?É¡)
-   (#x9f3e ?óí)
-   (#x9f4a ?óî)
-   (#x9f4b ?ã·)
-   (#x9f4e ?ìÚ)
-   (#x9f4f ?ðí)
-   (#x9f52 ?óï)
-   (#x9f54 ?óð)
-   (#x9f5f ?óò)
-   (#x9f60 ?óó)
-   (#x9f61 ?óô)
-   (#x9f62 ?Îð)
-   (#x9f63 ?óñ)
-   (#x9f66 ?óõ)
-   (#x9f67 ?óö)
-   (#x9f6a ?óø)
-   (#x9f6c ?ó÷)
-   (#x9f72 ?óú)
-   (#x9f76 ?óû)
-   (#x9f77 ?óù)
-   (#x9f8d ?ζ)
-   (#x9f95 ?óü)
-   (#x9f9c ?óý)
-   (#x9f9d ?ãÔ)
-   (#x9fa0 ?óþ)
-   (#xff01 ?¡ª)
-   (#xff03 ?¡ô)
-   (#xff04 ?¡ð)
-   (#xff05 ?¡ó)
-   (#xff06 ?¡õ)
-   (#xff08 ?\¡Ê)
-   (#xff09 ?\¡Ë)
-   (#xff0a ?¡ö)
-   (#xff0b ?¡Ü)
-   (#xff0c ?¡¤)
-   (#xff0e ?¡¥)
-   (#xff0f ?¡¿)
-   (#xff10 ?£°)
-   (#xff11 ?£±)
-   (#xff12 ?£²)
-   (#xff13 ?£³)
-   (#xff14 ?£´)
-   (#xff15 ?£µ)
-   (#xff16 ?£¶)
-   (#xff17 ?£·)
-   (#xff18 ?£¸)
-   (#xff19 ?£¹)
-   (#xff1a ?¡§)
-   (#xff1b ?¡¨)
-   (#xff1c ?¡ã)
-   (#xff1d ?¡á)
-   (#xff1e ?¡ä)
-   (#xff1f ?¡©)
-   (#xff20 ?¡÷)
-   (#xff21 ?£Ã)
-   (#xff22 ?£Â)
-   (#xff23 ?£Ã)
-   (#xff24 ?£Ä)
-   (#xff25 ?£Å)
-   (#xff26 ?£Æ)
-   (#xff27 ?£Ç)
-   (#xff28 ?£È)
-   (#xff29 ?£É)
-   (#xff2a ?£Ê)
-   (#xff2b ?£Ë)
-   (#xff2c ?£Ì)
-   (#xff2d ?£Ã)
-   (#xff2e ?£Î)
-   (#xff2f ?£Ã)
-   (#xff30 ?£Ã)
-   (#xff31 ?£Ñ)
-   (#xff32 ?£Ò)
-   (#xff33 ?£Ó)
-   (#xff34 ?£Ô)
-   (#xff35 ?£Õ)
-   (#xff36 ?£Ö)
-   (#xff37 ?£×)
-   (#xff38 ?£Ø)
-   (#xff39 ?£Ù)
-   (#xff3a ?£Ú)
-   (#xff3b ?\¡Î)
-   (#xff3c ?¡À)
-   (#xff3d ?\¡Ã)
-   (#xff3e ?¡°)
-   (#xff3f ?¡²)
-   (#xff40 ?¡®)
-   (#xff41 ?£á)
-   (#xff42 ?£â)
-   (#xff43 ?£ã)
-   (#xff44 ?£ä)
-   (#xff45 ?£å)
-   (#xff46 ?£æ)
-   (#xff47 ?£ç)
-   (#xff48 ?£è)
-   (#xff49 ?£é)
-   (#xff4a ?£ê)
-   (#xff4b ?£ë)
-   (#xff4c ?£ì)
-   (#xff4d ?£í)
-   (#xff4e ?£î)
-   (#xff4f ?£ï)
-   (#xff50 ?£ð)
-   (#xff51 ?£ñ)
-   (#xff52 ?£ò)
-   (#xff53 ?£ó)
-   (#xff54 ?£ô)
-   (#xff55 ?£õ)
-   (#xff56 ?£ö)
-   (#xff57 ?£÷)
-   (#xff58 ?£ø)
-   (#xff59 ?£ù)
-   (#xff5a ?£ú)
-   (#xff5b ?\¡Ã)
-   (#xff5c ?¡Ã)
-   (#xff5d ?\¡Ñ)
-   (#xffe3 ?¡±)
-   (#xffe5 ?¡ï)
-
-   ;; jisx0212
-
-   (#xa1 ?\8f¢Â)
-   (#xa4 ?\8f¢ð)
-   (#xa6 ?\8f¢Ã)
-   (#xa9 ?\8f¢í)
-   (#xaa ?\8f¢ì)
-   (#xae ?\8f¢î)
-   (#xaf ?\8f¢´)
-   (#xb8 ?\8f¢±)
-   (#xba ?\8f¢ë)
-   (#xbf ?\8f¢Ä)
-   (#xc0 ?\8fª¢)
-   (#xc1 ?\8fª¡)
-   (#xc2 ?\8fª¤)
-   (#xc3 ?\8fªª)
-   (#xc4 ?\8fª£)
-   (#xc5 ?\8fª©)
-   (#xc6 ?\8f©¡)
-   (#xc7 ?\8fª®)
-   (#xc8 ?\8fª²)
-   (#xc9 ?\8fª±)
-   (#xca ?\8fª´)
-   (#xcb ?\8fª³)
-   (#xcc ?\8fªÀ)
-   (#xcd ?\8fª¿)
-   (#xce ?\8fªÂ)
-   (#xcf ?\8fªÃ)
-   (#xd1 ?\8fªÃ)
-   (#xd2 ?\8fªÒ)
-   (#xd3 ?\8fªÑ)
-   (#xd4 ?\8fªÔ)
-   (#xd5 ?\8fªØ)
-   (#xd6 ?\8fªÓ)
-   (#xd8 ?\8f©¬)
-   (#xd9 ?\8fªã)
-   (#xda ?\8fªâ)
-   (#xdb ?\8fªå)
-   (#xdc ?\8fªä)
-   (#xdd ?\8fªò)
-   (#xde ?\8f©°)
-   (#xdf ?\8f©Î)
-   (#xe0 ?\8f«¢)
-   (#xe1 ?\8f«¡)
-   (#xe2 ?\8f«¤)
-   (#xe3 ?\8fǻ)
-   (#xe4 ?\8f«£)
-   (#xe5 ?\8f«©)
-   (#xe6 ?\8f©Ã)
-   (#xe7 ?\8f«®)
-   (#xe8 ?\8f«²)
-   (#xe9 ?\8f«±)
-   (#xea ?\8f«´)
-   (#xeb ?\8f«³)
-   (#xec ?\8f«À)
-   (#xed ?\8f«¿)
-   (#xee ?\8f«Â)
-   (#xef ?\8f«Ã)
-   (#xf0 ?\8f©Ã)
-   (#xf1 ?\8f«Ã)
-   (#xf2 ?\8f«Ò)
-   (#xf3 ?\8f«Ñ)
-   (#xf4 ?\8f«Ô)
-   (#xf5 ?\8f«Ø)
-   (#xf6 ?\8f«Ó)
-   (#xf8 ?\8f©Ì)
-   (#xf9 ?\8f«ã)
-   (#xfa ?\8f«â)
-   (#xfb ?\8f«å)
-   (#xfc ?\8f«ä)
-   (#xfd ?\8f«ò)
-   (#xfe ?\8f©Ã)
-   (#xff ?\8f«ó)
-   (#x100 ?\8fª§)
-   (#x101 ?\8fǤ)
-   (#x102 ?\8fª¥)
-   (#x103 ?\8f«¥)
-   (#x104 ?\8fª¨)
-   (#x105 ?\8fǬ)
-   (#x106 ?\8fª«)
-   (#x107 ?\8f««)
-   (#x108 ?\8fª¬)
-   (#x109 ?\8f«¬)
-   (#x10a ?\8fª¯)
-   (#x10b ?\8f«¯)
-   (#x10c ?\8fª­)
-   (#x10d ?\8f«­)
-   (#x10e ?\8fª°)
-   (#x10f ?\8f«°)
-   (#x110 ?\8f©¢)
-   (#x111 ?\8f©Â)
-   (#x112 ?\8fª·)
-   (#x113 ?\8f«·)
-   (#x116 ?\8fª¶)
-   (#x117 ?\8fǦ)
-   (#x118 ?\8fª¸)
-   (#x119 ?\8f«¸)
-   (#x11a ?\8fªµ)
-   (#x11b ?\8f«µ)
-   (#x11c ?\8fªº)
-   (#x11d ?\8fǼ)
-   (#x11e ?\8fª»)
-   (#x11f ?\8f«»)
-   (#x120 ?\8fª½)
-   (#x121 ?\8f«½)
-   (#x122 ?\8fª¼)
-   (#x124 ?\8fª¾)
-   (#x125 ?\8f«¾)
-   (#x126 ?\8f©¤)
-   (#x127 ?\8f©Ä)
-   (#x128 ?\8fªÇ)
-   (#x129 ?\8f«Ç)
-   (#x12a ?\8fªÅ)
-   (#x12b ?\8f«Å)
-   (#x12e ?\8fªÆ)
-   (#x12f ?\8f«Æ)
-   (#x130 ?\8fªÄ)
-   (#x131 ?\8f©Å)
-   (#x132 ?\8f©¦)
-   (#x133 ?\8f©Æ)
-   (#x134 ?\8fªÈ)
-   (#x135 ?\8f«È)
-   (#x136 ?\8fªÉ)
-   (#x137 ?\8f«É)
-   (#x138 ?\8f©Ç)
-   (#x139 ?\8fªÊ)
-   (#x13a ?\8f«Ê)
-   (#x13b ?\8fªÌ)
-   (#x13c ?\8f«Ì)
-   (#x13d ?\8fªË)
-   (#x13e ?\8f«Ë)
-   (#x13f ?\8f©©)
-   (#x140 ?\8f©É)
-   (#x141 ?\8f©¨)
-   (#x142 ?\8f©È)
-   (#x143 ?\8fªÃ)
-   (#x144 ?\8f«Ã)
-   (#x145 ?\8fªÃ)
-   (#x146 ?\8f«Ã)
-   (#x147 ?\8fªÎ)
-   (#x148 ?\8f«Î)
-   (#x149 ?\8f©Ê)
-   (#x14a ?\8f©«)
-   (#x14b ?\8f©Ë)
-   (#x14c ?\8fª×)
-   (#x14d ?\8f«×)
-   (#x150 ?\8fªÖ)
-   (#x151 ?\8f«Ö)
-   (#x152 ?\8f©­)
-   (#x153 ?\8f©Ã)
-   (#x154 ?\8fªÙ)
-   (#x155 ?\8f«Ù)
-   (#x156 ?\8fªÛ)
-   (#x157 ?\8f«Û)
-   (#x158 ?\8fªÚ)
-   (#x159 ?\8f«Ú)
-   (#x15a ?\8fªÜ)
-   (#x15b ?\8f«Ü)
-   (#x15c ?\8fªÃ)
-   (#x15d ?\8f«Ã)
-   (#x15e ?\8fªß)
-   (#x15f ?\8f«ß)
-   (#x160 ?\8fªÞ)
-   (#x161 ?\8f«Þ)
-   (#x162 ?\8fªá)
-   (#x163 ?\8f«á)
-   (#x164 ?\8fªà)
-   (#x165 ?\8f«à)
-   (#x166 ?\8f©¯)
-   (#x167 ?\8f©Ã)
-   (#x168 ?\8fªì)
-   (#x169 ?\8f«ì)
-   (#x16a ?\8fªé)
-   (#x16b ?\8f«é)
-   (#x16c ?\8fªæ)
-   (#x16d ?\8f«æ)
-   (#x16e ?\8fªë)
-   (#x16f ?\8f«ë)
-   (#x170 ?\8fªè)
-   (#x171 ?\8f«è)
-   (#x172 ?\8fªê)
-   (#x173 ?\8f«ê)
-   (#x174 ?\8fªñ)
-   (#x175 ?\8f«ñ)
-   (#x176 ?\8fªô)
-   (#x177 ?\8f«ô)
-   (#x178 ?\8fªó)
-   (#x179 ?\8fªõ)
-   (#x17a ?\8f«õ)
-   (#x17b ?\8fª÷)
-   (#x17c ?\8f«÷)
-   (#x17d ?\8fªö)
-   (#x17e ?\8f«ö)
-   (#x1cd ?\8fª¦)
-   (#x1ce ?\8f«¦)
-   (#x1cf ?\8fªÃ)
-   (#x1d0 ?\8f«Ã)
-   (#x1d1 ?\8fªÕ)
-   (#x1d2 ?\8f«Õ)
-   (#x1d3 ?\8fªç)
-   (#x1d4 ?\8f«ç)
-   (#x1d5 ?\8fªð)
-   (#x1d6 ?\8f«ð)
-   (#x1d7 ?\8fªí)
-   (#x1d8 ?\8f«í)
-   (#x1d9 ?\8fªï)
-   (#x1da ?\8f«ï)
-   (#x1db ?\8fªî)
-   (#x1dc ?\8f«î)
-   (#x1f5 ?\8f«¹)
-   (#x2c7 ?\8f¢°)
-   (#x2d8 ?\8f¢¯)
-   (#x2d9 ?\8f¢²)
-   (#x2da ?\8f¢¶)
-   (#x2db ?\8f¢µ)
-   (#x2dd ?\8f¢³)
-   (#x384 ?\8f¢¸)
-   (#x385 ?\8f¢¹)
-   (#x386 ?\8f¦á)
-   (#x388 ?\8f¦â)
-   (#x389 ?\8f¦ã)
-   (#x38a ?\8f¦ä)
-   (#x38c ?\8f¦ç)
-   (#x38e ?\8f¦é)
-   (#x38f ?\8f¦ì)
-   (#x390 ?\8f¦ö)
-   (#x3aa ?\8f¦å)
-   (#x3ab ?\8f¦ê)
-   (#x3ac ?\8f¦ñ)
-   (#x3ad ?\8f¦ò)
-   (#x3ae ?\8f¦ó)
-   (#x3af ?\8f¦ô)
-   (#x3b0 ?\8f¦û)
-   (#x3c2 ?\8f¦ø)
-   (#x3ca ?\8f¦õ)
-   (#x3cb ?\8f¦ú)
-   (#x3cc ?\8f¦÷)
-   (#x3cd ?\8f¦ù)
-   (#x3ce ?\8f¦ü)
-   (#x402 ?\8f§Â)
-   (#x403 ?\8f§Ã)
-   (#x404 ?\8f§Ä)
-   (#x405 ?\8f§Å)
-   (#x406 ?\8f§Æ)
-   (#x407 ?\8f§Ç)
-   (#x408 ?\8f§È)
-   (#x409 ?\8f§É)
-   (#x40a ?\8f§Ê)
-   (#x40b ?\8f§Ë)
-   (#x40c ?\8f§Ì)
-   (#x40e ?\8f§Ã)
-   (#x40f ?\8f§Î)
-   (#x452 ?\8f§ò)
-   (#x453 ?\8f§ó)
-   (#x454 ?\8f§ô)
-   (#x455 ?\8f§õ)
-   (#x456 ?\8f§ö)
-   (#x457 ?\8f§÷)
-   (#x458 ?\8f§ø)
-   (#x459 ?\8f§ù)
-   (#x45a ?\8f§ú)
-   (#x45b ?\8f§û)
-   (#x45c ?\8f§ü)
-   (#x45e ?\8f§ý)
-   (#x45f ?\8f§þ)
-   (#x2116 ?\8f¢ñ)
-   (#x2122 ?\8f¢ï)
-   (#x4e02 ?\8f°¡)
-   (#x4e04 ?\8f°¢)
-   (#x4e05 ?\8f°£)
-   (#x4e0c ?\8f°¤)
-   (#x4e12 ?\8f°¥)
-   (#x4e1f ?\8f°¦)
-   (#x4e23 ?\8f°§)
-   (#x4e24 ?\8f°¨)
-   (#x4e28 ?\8f°©)
-   (#x4e2b ?\8f°ª)
-   (#x4e2e ?\8f°«)
-   (#x4e2f ?\8f°¬)
-   (#x4e30 ?\8f°­)
-   (#x4e35 ?\8f°®)
-   (#x4e40 ?\8f°¯)
-   (#x4e41 ?\8f°°)
-   (#x4e44 ?\8f°±)
-   (#x4e47 ?\8f°²)
-   (#x4e51 ?\8f°³)
-   (#x4e5a ?\8f°´)
-   (#x4e5c ?\8f°µ)
-   (#x4e63 ?\8f°¶)
-   (#x4e68 ?\8f°·)
-   (#x4e69 ?\8f°¸)
-   (#x4e74 ?\8f°¹)
-   (#x4e75 ?\8f°º)
-   (#x4e79 ?\8f°»)
-   (#x4e7f ?\8f°¼)
-   (#x4e8d ?\8f°½)
-   (#x4e96 ?\8f°¾)
-   (#x4e97 ?\8f°¿)
-   (#x4e9d ?\8f°À)
-   (#x4eaf ?\8f°Ã)
-   (#x4eb9 ?\8f°Â)
-   (#x4ec3 ?\8f°Ã)
-   (#x4ed0 ?\8f°Ä)
-   (#x4eda ?\8f°Å)
-   (#x4edb ?\8f°Æ)
-   (#x4ee0 ?\8f°Ç)
-   (#x4ee1 ?\8f°È)
-   (#x4ee2 ?\8f°É)
-   (#x4ee8 ?\8f°Ê)
-   (#x4eef ?\8f°Ë)
-   (#x4ef1 ?\8f°Ì)
-   (#x4ef3 ?\8f°Ã)
-   (#x4ef5 ?\8f°Î)
-   (#x4efd ?\8f°Ã)
-   (#x4efe ?\8f°Ã)
-   (#x4eff ?\8f°Ñ)
-   (#x4f00 ?\8f°Ò)
-   (#x4f02 ?\8f°Ó)
-   (#x4f03 ?\8f°Ô)
-   (#x4f08 ?\8f°Õ)
-   (#x4f0b ?\8f°Ö)
-   (#x4f0c ?\8f°×)
-   (#x4f12 ?\8f°Ø)
-   (#x4f15 ?\8f°Ù)
-   (#x4f16 ?\8f°Ú)
-   (#x4f17 ?\8f°Û)
-   (#x4f19 ?\8f°Ü)
-   (#x4f2e ?\8f°Ã)
-   (#x4f31 ?\8f°Þ)
-   (#x4f33 ?\8f°à)
-   (#x4f35 ?\8f°á)
-   (#x4f37 ?\8f°â)
-   (#x4f39 ?\8f°ã)
-   (#x4f3b ?\8f°ä)
-   (#x4f3e ?\8f°å)
-   (#x4f40 ?\8f°æ)
-   (#x4f42 ?\8f°ç)
-   (#x4f48 ?\8f°è)
-   (#x4f49 ?\8f°é)
-   (#x4f4b ?\8f°ê)
-   (#x4f4c ?\8f°ë)
-   (#x4f52 ?\8f°ì)
-   (#x4f54 ?\8f°í)
-   (#x4f56 ?\8f°î)
-   (#x4f58 ?\8f°ï)
-   (#x4f5f ?\8f°ð)
-   (#x4f60 ?\8f°ß)
-   (#x4f63 ?\8f°ñ)
-   (#x4f6a ?\8f°ò)
-   (#x4f6c ?\8f°ó)
-   (#x4f6e ?\8f°ô)
-   (#x4f71 ?\8f°õ)
-   (#x4f77 ?\8f°ö)
-   (#x4f78 ?\8f°÷)
-   (#x4f79 ?\8f°ø)
-   (#x4f7a ?\8f°ù)
-   (#x4f7d ?\8f°ú)
-   (#x4f7e ?\8f°û)
-   (#x4f81 ?\8f°ü)
-   (#x4f82 ?\8f°ý)
-   (#x4f84 ?\8f°þ)
-   (#x4f85 ?\8f±¡)
-   (#x4f89 ?\8f±¢)
-   (#x4f8a ?\8f±£)
-   (#x4f8c ?\8f±¤)
-   (#x4f8e ?\8f±¥)
-   (#x4f90 ?\8f±¦)
-   (#x4f92 ?\8f±§)
-   (#x4f93 ?\8f±¨)
-   (#x4f94 ?\8f±©)
-   (#x4f97 ?\8f±ª)
-   (#x4f99 ?\8f±«)
-   (#x4f9a ?\8f±¬)
-   (#x4f9e ?\8f±­)
-   (#x4f9f ?\8f±®)
-   (#x4fb2 ?\8f±¯)
-   (#x4fb7 ?\8f±°)
-   (#x4fb9 ?\8f±±)
-   (#x4fbb ?\8f±²)
-   (#x4fbc ?\8f±³)
-   (#x4fbd ?\8f±´)
-   (#x4fbe ?\8f±µ)
-   (#x4fc0 ?\8f±¶)
-   (#x4fc1 ?\8f±·)
-   (#x4fc5 ?\8f±¸)
-   (#x4fc6 ?\8f±¹)
-   (#x4fc8 ?\8f±º)
-   (#x4fc9 ?\8f±»)
-   (#x4fcb ?\8f±¼)
-   (#x4fcc ?\8f±½)
-   (#x4fcd ?\8f±¾)
-   (#x4fcf ?\8f±¿)
-   (#x4fd2 ?\8f±À)
-   (#x4fdc ?\8f±Ã)
-   (#x4fe0 ?\8f±Â)
-   (#x4fe2 ?\8f±Ã)
-   (#x4ff0 ?\8f±Ä)
-   (#x4ff2 ?\8f±Å)
-   (#x4ffc ?\8f±Æ)
-   (#x4ffd ?\8f±Ç)
-   (#x4fff ?\8f±È)
-   (#x5000 ?\8f±É)
-   (#x5001 ?\8f±Ê)
-   (#x5004 ?\8f±Ë)
-   (#x5007 ?\8f±Ì)
-   (#x500a ?\8f±Ã)
-   (#x500c ?\8f±Î)
-   (#x500e ?\8f±Ã)
-   (#x5010 ?\8f±Ã)
-   (#x5013 ?\8f±Ñ)
-   (#x5017 ?\8f±Ò)
-   (#x5018 ?\8f±Ó)
-   (#x501b ?\8f±Ô)
-   (#x501c ?\8f±Õ)
-   (#x501d ?\8f±Ö)
-   (#x501e ?\8f±×)
-   (#x5022 ?\8f±Ø)
-   (#x5027 ?\8f±Ù)
-   (#x502e ?\8f±Ú)
-   (#x5030 ?\8f±Û)
-   (#x5032 ?\8f±Ü)
-   (#x5033 ?\8f±Ã)
-   (#x5035 ?\8f±Þ)
-   (#x503b ?\8f±ö)
-   (#x5040 ?\8f±ß)
-   (#x5041 ?\8f±à)
-   (#x5042 ?\8f±á)
-   (#x5045 ?\8f±â)
-   (#x5046 ?\8f±ã)
-   (#x504a ?\8f±ä)
-   (#x504c ?\8f±å)
-   (#x504e ?\8f±æ)
-   (#x5051 ?\8f±ç)
-   (#x5052 ?\8f±è)
-   (#x5053 ?\8f±é)
-   (#x5057 ?\8f±ê)
-   (#x5059 ?\8f±ë)
-   (#x505f ?\8f±ì)
-   (#x5060 ?\8f±í)
-   (#x5062 ?\8f±î)
-   (#x5063 ?\8f±ï)
-   (#x5066 ?\8f±ð)
-   (#x5067 ?\8f±ñ)
-   (#x506a ?\8f±ò)
-   (#x506d ?\8f±ó)
-   (#x5070 ?\8f±ô)
-   (#x5071 ?\8f±õ)
-   (#x5081 ?\8f±÷)
-   (#x5083 ?\8f±ø)
-   (#x5084 ?\8f±ù)
-   (#x5086 ?\8f±ú)
-   (#x508a ?\8f±û)
-   (#x508e ?\8f±ü)
-   (#x508f ?\8f±ý)
-   (#x5090 ?\8f±þ)
-   (#x5092 ?\8f²¡)
-   (#x5093 ?\8f²¢)
-   (#x5094 ?\8f²£)
-   (#x5096 ?\8f²¤)
-   (#x509b ?\8f²¥)
-   (#x509c ?\8f²¦)
-   (#x509e ?\8f²§)
-   (#x509f ?\8f²¨)
-   (#x50a0 ?\8f²©)
-   (#x50a1 ?\8f²ª)
-   (#x50a2 ?\8f²«)
-   (#x50aa ?\8f²¬)
-   (#x50af ?\8f²­)
-   (#x50b0 ?\8f²®)
-   (#x50b9 ?\8f²¯)
-   (#x50ba ?\8f²°)
-   (#x50bd ?\8f²±)
-   (#x50c0 ?\8f²²)
-   (#x50c3 ?\8f²³)
-   (#x50c4 ?\8f²´)
-   (#x50c7 ?\8f²µ)
-   (#x50cc ?\8f²¶)
-   (#x50ce ?\8f²·)
-   (#x50d0 ?\8f²¸)
-   (#x50d3 ?\8f²¹)
-   (#x50d4 ?\8f²º)
-   (#x50d8 ?\8f²»)
-   (#x50dc ?\8f²¼)
-   (#x50dd ?\8f²½)
-   (#x50df ?\8f²¾)
-   (#x50e2 ?\8f²¿)
-   (#x50e4 ?\8f²À)
-   (#x50e6 ?\8f²Ã)
-   (#x50e8 ?\8f²Â)
-   (#x50e9 ?\8f²Ã)
-   (#x50ef ?\8f²Ä)
-   (#x50f1 ?\8f²Å)
-   (#x50f2 ?\8f²Ñ)
-   (#x50f6 ?\8f²Æ)
-   (#x50fa ?\8f²Ç)
-   (#x50fe ?\8f²È)
-   (#x5103 ?\8f²É)
-   (#x5106 ?\8f²Ê)
-   (#x5107 ?\8f²Ë)
-   (#x5108 ?\8f²Ì)
-   (#x510b ?\8f²Ã)
-   (#x510c ?\8f²Î)
-   (#x510d ?\8f²Ã)
-   (#x510e ?\8f²Ã)
-   (#x5110 ?\8f²Ò)
-   (#x5117 ?\8f²Ó)
-   (#x5119 ?\8f²Ô)
-   (#x511b ?\8f²Õ)
-   (#x511c ?\8f²Ö)
-   (#x511d ?\8f²×)
-   (#x511e ?\8f²Ø)
-   (#x5123 ?\8f²Ù)
-   (#x5127 ?\8f²Ú)
-   (#x5128 ?\8f²Û)
-   (#x512c ?\8f²Ü)
-   (#x512d ?\8f²Ã)
-   (#x512f ?\8f²Þ)
-   (#x5131 ?\8f²ß)
-   (#x5133 ?\8f²à)
-   (#x5134 ?\8f²á)
-   (#x5135 ?\8f²â)
-   (#x5138 ?\8f²ã)
-   (#x5139 ?\8f²ä)
-   (#x5142 ?\8f²å)
-   (#x514a ?\8f²æ)
-   (#x514f ?\8f²ç)
-   (#x5153 ?\8f²è)
-   (#x5155 ?\8f²é)
-   (#x5157 ?\8f²ê)
-   (#x5158 ?\8f²ë)
-   (#x515f ?\8f²ì)
-   (#x5164 ?\8f²í)
-   (#x5166 ?\8f²î)
-   (#x517e ?\8f²ï)
-   (#x5183 ?\8f²ð)
-   (#x5184 ?\8f²ñ)
-   (#x518b ?\8f²ò)
-   (#x518e ?\8f²ó)
-   (#x5198 ?\8f²ô)
-   (#x519d ?\8f²õ)
-   (#x51a1 ?\8f²ö)
-   (#x51a3 ?\8f²÷)
-   (#x51ad ?\8f²ø)
-   (#x51b8 ?\8f²ù)
-   (#x51ba ?\8f²ú)
-   (#x51bc ?\8f²û)
-   (#x51be ?\8f²ü)
-   (#x51bf ?\8f²ý)
-   (#x51c2 ?\8f²þ)
-   (#x51c8 ?\8f³¡)
-   (#x51cf ?\8f³¢)
-   (#x51d1 ?\8f³£)
-   (#x51d2 ?\8f³¤)
-   (#x51d3 ?\8f³¥)
-   (#x51d5 ?\8f³¦)
-   (#x51d8 ?\8f³§)
-   (#x51de ?\8f³¨)
-   (#x51e2 ?\8f³©)
-   (#x51e5 ?\8f³ª)
-   (#x51ee ?\8f³«)
-   (#x51f2 ?\8f³¬)
-   (#x51f3 ?\8f³­)
-   (#x51f4 ?\8f³®)
-   (#x51f7 ?\8f³¯)
-   (#x5201 ?\8f³°)
-   (#x5202 ?\8f³±)
-   (#x5205 ?\8f³²)
-   (#x5212 ?\8f³³)
-   (#x5213 ?\8f³´)
-   (#x5215 ?\8f³µ)
-   (#x5216 ?\8f³¶)
-   (#x5218 ?\8f³·)
-   (#x5222 ?\8f³¸)
-   (#x5228 ?\8f³¹)
-   (#x5231 ?\8f³º)
-   (#x5232 ?\8f³»)
-   (#x5235 ?\8f³¼)
-   (#x523c ?\8f³½)
-   (#x5245 ?\8f³¾)
-   (#x5249 ?\8f³¿)
-   (#x5255 ?\8f³À)
-   (#x5257 ?\8f³Ã)
-   (#x5258 ?\8f³Â)
-   (#x525a ?\8f³Ã)
-   (#x525c ?\8f³Ä)
-   (#x525f ?\8f³Å)
-   (#x5260 ?\8f³Æ)
-   (#x5261 ?\8f³Ç)
-   (#x5266 ?\8f³È)
-   (#x526e ?\8f³É)
-   (#x5277 ?\8f³Ê)
-   (#x5278 ?\8f³Ë)
-   (#x5279 ?\8f³Ì)
-   (#x5280 ?\8f³Ã)
-   (#x5282 ?\8f³Î)
-   (#x5285 ?\8f³Ã)
-   (#x528a ?\8f³Ã)
-   (#x528c ?\8f³Ñ)
-   (#x5293 ?\8f³Ò)
-   (#x5295 ?\8f³Ó)
-   (#x5296 ?\8f³Ô)
-   (#x5297 ?\8f³Õ)
-   (#x5298 ?\8f³Ö)
-   (#x529a ?\8f³×)
-   (#x529c ?\8f³Ø)
-   (#x52a4 ?\8f³Ù)
-   (#x52a5 ?\8f³Ú)
-   (#x52a6 ?\8f³Û)
-   (#x52a7 ?\8f³Ü)
-   (#x52af ?\8f³Ã)
-   (#x52b0 ?\8f³Þ)
-   (#x52b6 ?\8f³ß)
-   (#x52b7 ?\8f³à)
-   (#x52b8 ?\8f³á)
-   (#x52ba ?\8f³â)
-   (#x52bb ?\8f³ã)
-   (#x52bd ?\8f³ä)
-   (#x52c0 ?\8f³å)
-   (#x52c4 ?\8f³æ)
-   (#x52c6 ?\8f³ç)
-   (#x52c8 ?\8f³è)
-   (#x52cc ?\8f³é)
-   (#x52cf ?\8f³ê)
-   (#x52d1 ?\8f³ë)
-   (#x52d4 ?\8f³ì)
-   (#x52d6 ?\8f³í)
-   (#x52db ?\8f³î)
-   (#x52dc ?\8f³ï)
-   (#x52e1 ?\8f³ð)
-   (#x52e5 ?\8f³ñ)
-   (#x52e8 ?\8f³ò)
-   (#x52e9 ?\8f³ó)
-   (#x52ea ?\8f³ô)
-   (#x52ec ?\8f³õ)
-   (#x52f0 ?\8f³ö)
-   (#x52f1 ?\8f³÷)
-   (#x52f4 ?\8f³ø)
-   (#x52f6 ?\8f³ù)
-   (#x52f7 ?\8f³ú)
-   (#x5300 ?\8f³û)
-   (#x5303 ?\8f³ü)
-   (#x530a ?\8f³ý)
-   (#x530b ?\8f³þ)
-   (#x530c ?\8f´¡)
-   (#x5311 ?\8f´¢)
-   (#x5313 ?\8f´£)
-   (#x5318 ?\8f´¤)
-   (#x531b ?\8f´¥)
-   (#x531c ?\8f´¦)
-   (#x531e ?\8f´§)
-   (#x531f ?\8f´¨)
-   (#x5325 ?\8f´©)
-   (#x5327 ?\8f´ª)
-   (#x5328 ?\8f´«)
-   (#x5329 ?\8f´¬)
-   (#x532b ?\8f´­)
-   (#x532c ?\8f´®)
-   (#x532d ?\8f´¯)
-   (#x5330 ?\8f´°)
-   (#x5332 ?\8f´±)
-   (#x5335 ?\8f´²)
-   (#x533c ?\8f´³)
-   (#x533d ?\8f´´)
-   (#x533e ?\8f´µ)
-   (#x5342 ?\8f´¶)
-   (#x534b ?\8f´¸)
-   (#x534c ?\8f´·)
-   (#x5359 ?\8f´¹)
-   (#x535b ?\8f´º)
-   (#x5361 ?\8f´»)
-   (#x5363 ?\8f´¼)
-   (#x5365 ?\8f´½)
-   (#x536c ?\8f´¾)
-   (#x536d ?\8f´¿)
-   (#x5372 ?\8f´À)
-   (#x5379 ?\8f´Ã)
-   (#x537e ?\8f´Â)
-   (#x5383 ?\8f´Ã)
-   (#x5387 ?\8f´Ä)
-   (#x5388 ?\8f´Å)
-   (#x538e ?\8f´Æ)
-   (#x5393 ?\8f´Ç)
-   (#x5394 ?\8f´È)
-   (#x5399 ?\8f´É)
-   (#x539d ?\8f´Ê)
-   (#x53a1 ?\8f´Ë)
-   (#x53a4 ?\8f´Ì)
-   (#x53aa ?\8f´Ã)
-   (#x53ab ?\8f´Î)
-   (#x53af ?\8f´Ã)
-   (#x53b2 ?\8f´Ã)
-   (#x53b4 ?\8f´Ñ)
-   (#x53b5 ?\8f´Ò)
-   (#x53b7 ?\8f´Ó)
-   (#x53b8 ?\8f´Ô)
-   (#x53ba ?\8f´Õ)
-   (#x53bd ?\8f´Ö)
-   (#x53c0 ?\8f´×)
-   (#x53c5 ?\8f´Ø)
-   (#x53cf ?\8f´Ù)
-   (#x53d2 ?\8f´Ú)
-   (#x53d3 ?\8f´Û)
-   (#x53d5 ?\8f´Ü)
-   (#x53da ?\8f´Ã)
-   (#x53dd ?\8f´Þ)
-   (#x53de ?\8f´ß)
-   (#x53e0 ?\8f´à)
-   (#x53e6 ?\8f´á)
-   (#x53e7 ?\8f´â)
-   (#x53f5 ?\8f´ã)
-   (#x5402 ?\8f´ä)
-   (#x5413 ?\8f´å)
-   (#x541a ?\8f´æ)
-   (#x5421 ?\8f´ç)
-   (#x5427 ?\8f´è)
-   (#x5428 ?\8f´é)
-   (#x542a ?\8f´ê)
-   (#x542f ?\8f´ë)
-   (#x5431 ?\8f´ì)
-   (#x5434 ?\8f´í)
-   (#x5435 ?\8f´î)
-   (#x5443 ?\8f´ï)
-   (#x5444 ?\8f´ð)
-   (#x5447 ?\8f´ñ)
-   (#x544d ?\8f´ò)
-   (#x544f ?\8f´ó)
-   (#x545e ?\8f´ô)
-   (#x5462 ?\8f´õ)
-   (#x5464 ?\8f´ö)
-   (#x5466 ?\8f´÷)
-   (#x5467 ?\8f´ø)
-   (#x5469 ?\8f´ù)
-   (#x546b ?\8f´ú)
-   (#x546d ?\8f´û)
-   (#x546e ?\8f´ü)
-   (#x5474 ?\8f´ý)
-   (#x547f ?\8f´þ)
-   (#x5481 ?\8fµ¡)
-   (#x5483 ?\8fµ¢)
-   (#x5485 ?\8fµ£)
-   (#x5488 ?\8fµ¤)
-   (#x5489 ?\8fµ¥)
-   (#x548d ?\8fµ¦)
-   (#x5491 ?\8fµ§)
-   (#x5495 ?\8fµ¨)
-   (#x5496 ?\8fµ©)
-   (#x549c ?\8fµª)
-   (#x549f ?\8fµ«)
-   (#x54a1 ?\8fµ¬)
-   (#x54a6 ?\8fµ­)
-   (#x54a7 ?\8fµ®)
-   (#x54a9 ?\8fµ¯)
-   (#x54aa ?\8fµ°)
-   (#x54ad ?\8fµ±)
-   (#x54ae ?\8fµ²)
-   (#x54b1 ?\8fµ³)
-   (#x54b7 ?\8fµ´)
-   (#x54b9 ?\8fµµ)
-   (#x54ba ?\8fµ¶)
-   (#x54bb ?\8fµ·)
-   (#x54bf ?\8fµ¸)
-   (#x54c6 ?\8fµ¹)
-   (#x54ca ?\8fµº)
-   (#x54cd ?\8fµ»)
-   (#x54ce ?\8fµ¼)
-   (#x54e0 ?\8fµ½)
-   (#x54ea ?\8fµ¾)
-   (#x54ec ?\8fµ¿)
-   (#x54ef ?\8fµÀ)
-   (#x54f6 ?\8fµÃ)
-   (#x54fc ?\8fµÂ)
-   (#x54fe ?\8fµÃ)
-   (#x54ff ?\8fµÄ)
-   (#x5500 ?\8fµÅ)
-   (#x5501 ?\8fµÆ)
-   (#x5505 ?\8fµÇ)
-   (#x5508 ?\8fµÈ)
-   (#x5509 ?\8fµÉ)
-   (#x550c ?\8fµÊ)
-   (#x550d ?\8fµË)
-   (#x550e ?\8fµÌ)
-   (#x5515 ?\8fµÃ)
-   (#x552a ?\8fµÎ)
-   (#x552b ?\8fµÃ)
-   (#x5532 ?\8fµÃ)
-   (#x5535 ?\8fµÑ)
-   (#x5536 ?\8fµÒ)
-   (#x553b ?\8fµÓ)
-   (#x553c ?\8fµÔ)
-   (#x553d ?\8fµÕ)
-   (#x5541 ?\8fµÖ)
-   (#x5547 ?\8fµ×)
-   (#x5549 ?\8fµØ)
-   (#x554a ?\8fµÙ)
-   (#x554d ?\8fµÚ)
-   (#x5550 ?\8fµÛ)
-   (#x5551 ?\8fµÜ)
-   (#x5558 ?\8fµÃ)
-   (#x555a ?\8fµÞ)
-   (#x555b ?\8fµß)
-   (#x555e ?\8fµà)
-   (#x5560 ?\8fµá)
-   (#x5561 ?\8fµâ)
-   (#x5564 ?\8fµã)
-   (#x5566 ?\8fµä)
-   (#x557f ?\8fµå)
-   (#x5581 ?\8fµæ)
-   (#x5582 ?\8fµç)
-   (#x5586 ?\8fµè)
-   (#x5588 ?\8fµé)
-   (#x558e ?\8fµê)
-   (#x558f ?\8fµë)
-   (#x5591 ?\8fµì)
-   (#x5592 ?\8fµí)
-   (#x5593 ?\8fµî)
-   (#x5594 ?\8fµï)
-   (#x5597 ?\8fµð)
-   (#x55a3 ?\8fµñ)
-   (#x55a4 ?\8fµò)
-   (#x55ad ?\8fµó)
-   (#x55b2 ?\8fµô)
-   (#x55bf ?\8fµõ)
-   (#x55c1 ?\8fµö)
-   (#x55c3 ?\8fµ÷)
-   (#x55c6 ?\8fµø)
-   (#x55c9 ?\8fµù)
-   (#x55cb ?\8fµú)
-   (#x55cc ?\8fµû)
-   (#x55ce ?\8fµü)
-   (#x55d1 ?\8fµý)
-   (#x55d2 ?\8fµþ)
-   (#x55d3 ?\8f¶¡)
-   (#x55d7 ?\8f¶¢)
-   (#x55d8 ?\8f¶£)
-   (#x55db ?\8f¶¤)
-   (#x55de ?\8f¶¥)
-   (#x55e2 ?\8f¶¦)
-   (#x55e9 ?\8f¶§)
-   (#x55f6 ?\8f¶¨)
-   (#x55ff ?\8f¶©)
-   (#x5605 ?\8f¶ª)
-   (#x5608 ?\8f¶«)
-   (#x560a ?\8f¶¬)
-   (#x560d ?\8f¶­)
-   (#x560e ?\8f¶®)
-   (#x560f ?\8f¶¯)
-   (#x5610 ?\8f¶°)
-   (#x5611 ?\8f¶±)
-   (#x5612 ?\8f¶²)
-   (#x5619 ?\8f¶³)
-   (#x562c ?\8f¶´)
-   (#x5630 ?\8f¶µ)
-   (#x5633 ?\8f¶¶)
-   (#x5635 ?\8f¶·)
-   (#x5637 ?\8f¶¸)
-   (#x5639 ?\8f¶¹)
-   (#x563b ?\8f¶º)
-   (#x563c ?\8f¶»)
-   (#x563d ?\8f¶¼)
-   (#x563f ?\8f¶½)
-   (#x5640 ?\8f¶¾)
-   (#x5641 ?\8f¶¿)
-   (#x5643 ?\8f¶À)
-   (#x5644 ?\8f¶Ã)
-   (#x5646 ?\8f¶Â)
-   (#x5649 ?\8f¶Ã)
-   (#x564b ?\8f¶Ä)
-   (#x564d ?\8f¶Å)
-   (#x564f ?\8f¶Æ)
-   (#x5654 ?\8f¶Ç)
-   (#x565e ?\8f¶È)
-   (#x5660 ?\8f¶É)
-   (#x5661 ?\8f¶Ê)
-   (#x5662 ?\8f¶Ë)
-   (#x5663 ?\8f¶Ì)
-   (#x5666 ?\8f¶Ã)
-   (#x5669 ?\8f¶Î)
-   (#x566d ?\8f¶Ã)
-   (#x566f ?\8f¶Ã)
-   (#x5671 ?\8f¶Ñ)
-   (#x5672 ?\8f¶Ò)
-   (#x5675 ?\8f¶Ó)
-   (#x5684 ?\8f¶Ô)
-   (#x5685 ?\8f¶Õ)
-   (#x5688 ?\8f¶Ö)
-   (#x568b ?\8f¶×)
-   (#x568c ?\8f¶Ø)
-   (#x5695 ?\8f¶Ù)
-   (#x5699 ?\8f¶Ú)
-   (#x569a ?\8f¶Û)
-   (#x569d ?\8f¶Ü)
-   (#x569e ?\8f¶Ã)
-   (#x569f ?\8f¶Þ)
-   (#x56a6 ?\8f¶ß)
-   (#x56a7 ?\8f¶à)
-   (#x56a8 ?\8f¶á)
-   (#x56a9 ?\8f¶â)
-   (#x56ab ?\8f¶ã)
-   (#x56ac ?\8f¶ä)
-   (#x56ad ?\8f¶å)
-   (#x56b1 ?\8f¶æ)
-   (#x56b3 ?\8f¶ç)
-   (#x56b7 ?\8f¶è)
-   (#x56be ?\8f¶é)
-   (#x56c5 ?\8f¶ê)
-   (#x56c9 ?\8f¶ë)
-   (#x56ca ?\8f¶ì)
-   (#x56cb ?\8f¶í)
-   (#x56cc ?\8f¶ð)
-   (#x56cd ?\8f¶ñ)
-   (#x56cf ?\8f¶î)
-   (#x56d0 ?\8f¶ï)
-   (#x56d9 ?\8f¶ò)
-   (#x56dc ?\8f¶ó)
-   (#x56dd ?\8f¶ô)
-   (#x56df ?\8f¶õ)
-   (#x56e1 ?\8f¶ö)
-   (#x56e4 ?\8f¶÷)
-   (#x56e5 ?\8f¶ø)
-   (#x56e6 ?\8f¶ù)
-   (#x56e7 ?\8f¶ú)
-   (#x56e8 ?\8f¶û)
-   (#x56eb ?\8f¶ý)
-   (#x56ed ?\8f¶þ)
-   (#x56f1 ?\8f¶ü)
-   (#x56f6 ?\8f·¡)
-   (#x56f7 ?\8f·¢)
-   (#x5701 ?\8f·£)
-   (#x5702 ?\8f·¤)
-   (#x5707 ?\8f·¥)
-   (#x570a ?\8f·¦)
-   (#x570c ?\8f·§)
-   (#x5711 ?\8f·¨)
-   (#x5715 ?\8f·©)
-   (#x571a ?\8f·ª)
-   (#x571b ?\8f·«)
-   (#x571d ?\8f·¬)
-   (#x5720 ?\8f·­)
-   (#x5722 ?\8f·®)
-   (#x5723 ?\8f·¯)
-   (#x5724 ?\8f·°)
-   (#x5725 ?\8f·±)
-   (#x5729 ?\8f·²)
-   (#x572a ?\8f·³)
-   (#x572c ?\8f·´)
-   (#x572e ?\8f·µ)
-   (#x572f ?\8f·¶)
-   (#x5733 ?\8f··)
-   (#x5734 ?\8f·¸)
-   (#x573d ?\8f·¹)
-   (#x573e ?\8f·º)
-   (#x573f ?\8f·»)
-   (#x5745 ?\8f·¼)
-   (#x5746 ?\8f·½)
-   (#x574c ?\8f·¾)
-   (#x574d ?\8f·¿)
-   (#x5752 ?\8f·À)
-   (#x5762 ?\8f·Ã)
-   (#x5765 ?\8f·Â)
-   (#x5767 ?\8f·Ã)
-   (#x5768 ?\8f·Ä)
-   (#x576b ?\8f·Å)
-   (#x576d ?\8f·Æ)
-   (#x576e ?\8f·Ç)
-   (#x576f ?\8f·È)
-   (#x5770 ?\8f·É)
-   (#x5771 ?\8f·Ê)
-   (#x5773 ?\8f·Ë)
-   (#x5774 ?\8f·Ì)
-   (#x5775 ?\8f·Ã)
-   (#x5777 ?\8f·Î)
-   (#x5779 ?\8f·Ã)
-   (#x577a ?\8f·Ã)
-   (#x577b ?\8f·Ñ)
-   (#x577c ?\8f·Ò)
-   (#x577e ?\8f·Ó)
-   (#x5781 ?\8f·Ô)
-   (#x5783 ?\8f·Õ)
-   (#x578c ?\8f·Ö)
-   (#x5794 ?\8f·×)
-   (#x5795 ?\8f·à)
-   (#x5797 ?\8f·Ø)
-   (#x5799 ?\8f·Ù)
-   (#x579a ?\8f·Ú)
-   (#x579c ?\8f·Û)
-   (#x579d ?\8f·Ü)
-   (#x579e ?\8f·Ã)
-   (#x579f ?\8f·Þ)
-   (#x57a1 ?\8f·ß)
-   (#x57a7 ?\8f·á)
-   (#x57a8 ?\8f·â)
-   (#x57a9 ?\8f·ã)
-   (#x57ac ?\8f·ä)
-   (#x57b8 ?\8f·å)
-   (#x57bd ?\8f·æ)
-   (#x57c7 ?\8f·ç)
-   (#x57c8 ?\8f·è)
-   (#x57cc ?\8f·é)
-   (#x57cf ?\8f·ê)
-   (#x57d5 ?\8f·ë)
-   (#x57dd ?\8f·ì)
-   (#x57de ?\8f·í)
-   (#x57e1 ?\8f·þ)
-   (#x57e4 ?\8f·î)
-   (#x57e6 ?\8f·ï)
-   (#x57e7 ?\8f·ð)
-   (#x57e9 ?\8f·ñ)
-   (#x57ed ?\8f·ò)
-   (#x57f0 ?\8f·ó)
-   (#x57f5 ?\8f·ô)
-   (#x57f6 ?\8f·õ)
-   (#x57f8 ?\8f·ö)
-   (#x57fd ?\8f·÷)
-   (#x57fe ?\8f·ø)
-   (#x57ff ?\8f·ù)
-   (#x5803 ?\8f·ú)
-   (#x5804 ?\8f·û)
-   (#x5808 ?\8f·ü)
-   (#x5809 ?\8f·ý)
-   (#x580c ?\8f¸¡)
-   (#x580d ?\8f¸¢)
-   (#x581b ?\8f¸£)
-   (#x581e ?\8f¸¤)
-   (#x581f ?\8f¸¥)
-   (#x5820 ?\8f¸¦)
-   (#x5826 ?\8f¸§)
-   (#x5827 ?\8f¸¨)
-   (#x582d ?\8f¸©)
-   (#x5832 ?\8f¸ª)
-   (#x5839 ?\8f¸«)
-   (#x583f ?\8f¸¬)
-   (#x5849 ?\8f¸­)
-   (#x584c ?\8f¸®)
-   (#x584d ?\8f¸¯)
-   (#x584f ?\8f¸°)
-   (#x5850 ?\8f¸±)
-   (#x5855 ?\8f¸²)
-   (#x585f ?\8f¸³)
-   (#x5861 ?\8f¸´)
-   (#x5864 ?\8f¸µ)
-   (#x5867 ?\8f¸¶)
-   (#x5868 ?\8f¸·)
-   (#x5878 ?\8f¸¸)
-   (#x587c ?\8f¸¹)
-   (#x587f ?\8f¸º)
-   (#x5880 ?\8f¸»)
-   (#x5881 ?\8f¸¼)
-   (#x5887 ?\8f¸½)
-   (#x5888 ?\8f¸¾)
-   (#x5889 ?\8f¸¿)
-   (#x588a ?\8f¸À)
-   (#x588c ?\8f¸Ã)
-   (#x588d ?\8f¸Â)
-   (#x588f ?\8f¸Ã)
-   (#x5890 ?\8f¸Ä)
-   (#x5894 ?\8f¸Å)
-   (#x5896 ?\8f¸Æ)
-   (#x589d ?\8f¸Ç)
-   (#x58a0 ?\8f¸È)
-   (#x58a1 ?\8f¸É)
-   (#x58a2 ?\8f¸Ê)
-   (#x58a6 ?\8f¸Ë)
-   (#x58a9 ?\8f¸Ì)
-   (#x58b1 ?\8f¸Ã)
-   (#x58b2 ?\8f¸Î)
-   (#x58bc ?\8f¸Ã)
-   (#x58c2 ?\8f¸Ñ)
-   (#x58c4 ?\8f¸Ã)
-   (#x58c8 ?\8f¸Ò)
-   (#x58cd ?\8f¸Ó)
-   (#x58ce ?\8f¸Ô)
-   (#x58d0 ?\8f¸Õ)
-   (#x58d2 ?\8f¸Ö)
-   (#x58d4 ?\8f¸×)
-   (#x58d6 ?\8f¸Ø)
-   (#x58da ?\8f¸Ù)
-   (#x58dd ?\8f¸Ú)
-   (#x58e1 ?\8f¸Û)
-   (#x58e2 ?\8f¸Ü)
-   (#x58e9 ?\8f¸Ã)
-   (#x58f3 ?\8f¸Þ)
-   (#x5905 ?\8f¸ß)
-   (#x5906 ?\8f¸à)
-   (#x590b ?\8f¸á)
-   (#x590c ?\8f¸â)
-   (#x5912 ?\8f¸ã)
-   (#x5913 ?\8f¸ä)
-   (#x5914 ?\8f¸å)
-   (#x591d ?\8f¸ç)
-   (#x5921 ?\8f¸è)
-   (#x5923 ?\8f¸é)
-   (#x5924 ?\8f¸ê)
-   (#x5928 ?\8f¸ë)
-   (#x592f ?\8f¸ì)
-   (#x5930 ?\8f¸í)
-   (#x5933 ?\8f¸î)
-   (#x5935 ?\8f¸ï)
-   (#x5936 ?\8f¸ð)
-   (#x593f ?\8f¸ñ)
-   (#x5943 ?\8f¸ò)
-   (#x5946 ?\8f¸ó)
-   (#x5952 ?\8f¸ô)
-   (#x5953 ?\8f¸õ)
-   (#x5959 ?\8f¸ö)
-   (#x595b ?\8f¸÷)
-   (#x595d ?\8f¸ø)
-   (#x595e ?\8f¸ù)
-   (#x595f ?\8f¸ú)
-   (#x5961 ?\8f¸û)
-   (#x5963 ?\8f¸ü)
-   (#x596b ?\8f¸ý)
-   (#x596d ?\8f¸þ)
-   (#x596f ?\8f¹¡)
-   (#x5972 ?\8f¹¢)
-   (#x5975 ?\8f¹£)
-   (#x5976 ?\8f¹¤)
-   (#x5979 ?\8f¹¥)
-   (#x597b ?\8f¹¦)
-   (#x597c ?\8f¹§)
-   (#x598b ?\8f¹¨)
-   (#x598c ?\8f¹©)
-   (#x598e ?\8f¹ª)
-   (#x5992 ?\8f¹«)
-   (#x5995 ?\8f¹¬)
-   (#x5997 ?\8f¹­)
-   (#x599f ?\8f¹®)
-   (#x59a4 ?\8f¹¯)
-   (#x59a7 ?\8f¹°)
-   (#x59ad ?\8f¹±)
-   (#x59ae ?\8f¹²)
-   (#x59af ?\8f¹³)
-   (#x59b0 ?\8f¹´)
-   (#x59b3 ?\8f¹µ)
-   (#x59b7 ?\8f¹¶)
-   (#x59ba ?\8f¹·)
-   (#x59bc ?\8f¹¸)
-   (#x59c1 ?\8f¹¹)
-   (#x59c3 ?\8f¹º)
-   (#x59c4 ?\8f¹»)
-   (#x59c8 ?\8f¹¼)
-   (#x59ca ?\8f¹½)
-   (#x59cd ?\8f¹¾)
-   (#x59d2 ?\8f¹¿)
-   (#x59dd ?\8f¹À)
-   (#x59de ?\8f¹Ã)
-   (#x59df ?\8f¹Â)
-   (#x59e3 ?\8f¹Ã)
-   (#x59e4 ?\8f¹Ä)
-   (#x59e7 ?\8f¹Å)
-   (#x59ee ?\8f¹Æ)
-   (#x59ef ?\8f¹Ç)
-   (#x59f1 ?\8f¹È)
-   (#x59f2 ?\8f¹É)
-   (#x59f4 ?\8f¹Ê)
-   (#x59f7 ?\8f¹Ë)
-   (#x5a00 ?\8f¹Ì)
-   (#x5a04 ?\8f¹Ã)
-   (#x5a0c ?\8f¹Î)
-   (#x5a0d ?\8f¹Ã)
-   (#x5a0e ?\8f¹Ã)
-   (#x5a12 ?\8f¹Ñ)
-   (#x5a13 ?\8f¹Ò)
-   (#x5a1e ?\8f¹Ó)
-   (#x5a23 ?\8f¹Ô)
-   (#x5a24 ?\8f¹Õ)
-   (#x5a27 ?\8f¹Ö)
-   (#x5a28 ?\8f¹×)
-   (#x5a2a ?\8f¹Ø)
-   (#x5a2d ?\8f¹Ù)
-   (#x5a30 ?\8f¹Ú)
-   (#x5a44 ?\8f¹Û)
-   (#x5a45 ?\8f¹Ü)
-   (#x5a47 ?\8f¹Ã)
-   (#x5a48 ?\8f¹Þ)
-   (#x5a4c ?\8f¹ß)
-   (#x5a50 ?\8f¹à)
-   (#x5a55 ?\8f¹á)
-   (#x5a5e ?\8f¹â)
-   (#x5a63 ?\8f¹ã)
-   (#x5a65 ?\8f¹ä)
-   (#x5a67 ?\8f¹å)
-   (#x5a6d ?\8f¹æ)
-   (#x5a77 ?\8f¹ç)
-   (#x5a7a ?\8f¹è)
-   (#x5a7b ?\8f¹é)
-   (#x5a7e ?\8f¹ê)
-   (#x5a8b ?\8f¹ë)
-   (#x5a90 ?\8f¹ì)
-   (#x5a93 ?\8f¹í)
-   (#x5a96 ?\8f¹î)
-   (#x5a99 ?\8f¹ï)
-   (#x5a9c ?\8f¹ð)
-   (#x5a9e ?\8f¹ñ)
-   (#x5a9f ?\8f¹ò)
-   (#x5aa0 ?\8f¹ó)
-   (#x5aa2 ?\8f¹ô)
-   (#x5aa7 ?\8f¹õ)
-   (#x5aac ?\8f¹ö)
-   (#x5ab1 ?\8f¹÷)
-   (#x5ab2 ?\8f¹ø)
-   (#x5ab3 ?\8f¹ù)
-   (#x5ab5 ?\8f¹ú)
-   (#x5ab8 ?\8f¹û)
-   (#x5aba ?\8f¹ü)
-   (#x5abb ?\8f¹ý)
-   (#x5abf ?\8f¹þ)
-   (#x5ac4 ?\8fº¡)
-   (#x5ac6 ?\8fº¢)
-   (#x5ac8 ?\8fº£)
-   (#x5acf ?\8fº¤)
-   (#x5ada ?\8fº¥)
-   (#x5adc ?\8fº¦)
-   (#x5ae0 ?\8fº§)
-   (#x5ae5 ?\8fº¨)
-   (#x5aea ?\8fº©)
-   (#x5aee ?\8fºª)
-   (#x5af5 ?\8fº«)
-   (#x5af6 ?\8fº¬)
-   (#x5afd ?\8fº­)
-   (#x5b00 ?\8fº®)
-   (#x5b01 ?\8fº¯)
-   (#x5b08 ?\8fº°)
-   (#x5b17 ?\8fº±)
-   (#x5b19 ?\8fº³)
-   (#x5b1b ?\8fº´)
-   (#x5b1d ?\8fºµ)
-   (#x5b21 ?\8fº¶)
-   (#x5b25 ?\8fº·)
-   (#x5b2d ?\8fº¸)
-   (#x5b34 ?\8fº²)
-   (#x5b38 ?\8fº¹)
-   (#x5b41 ?\8fºº)
-   (#x5b4b ?\8fº»)
-   (#x5b4c ?\8fº¼)
-   (#x5b52 ?\8fº½)
-   (#x5b56 ?\8fº¾)
-   (#x5b5e ?\8fº¿)
-   (#x5b68 ?\8fºÀ)
-   (#x5b6e ?\8fºÃ)
-   (#x5b6f ?\8fºÂ)
-   (#x5b7c ?\8fºÃ)
-   (#x5b7d ?\8fºÄ)
-   (#x5b7e ?\8fºÅ)
-   (#x5b7f ?\8fºÆ)
-   (#x5b81 ?\8fºÇ)
-   (#x5b84 ?\8fºÈ)
-   (#x5b86 ?\8fºÉ)
-   (#x5b8a ?\8fºÊ)
-   (#x5b8e ?\8fºË)
-   (#x5b90 ?\8fºÌ)
-   (#x5b91 ?\8fºÃ)
-   (#x5b93 ?\8fºÎ)
-   (#x5b94 ?\8fºÃ)
-   (#x5b96 ?\8fºÃ)
-   (#x5ba8 ?\8fºÑ)
-   (#x5ba9 ?\8fºÒ)
-   (#x5bac ?\8fºÓ)
-   (#x5bad ?\8fºÔ)
-   (#x5baf ?\8fºÕ)
-   (#x5bb1 ?\8fºÖ)
-   (#x5bb2 ?\8fº×)
-   (#x5bb7 ?\8fºØ)
-   (#x5bba ?\8fºÙ)
-   (#x5bbc ?\8fºÚ)
-   (#x5bc0 ?\8fºÛ)
-   (#x5bc1 ?\8fºÜ)
-   (#x5bcd ?\8fºÃ)
-   (#x5bcf ?\8fºÞ)
-   (#x5bd6 ?\8fºß)
-   (#x5bd7 ?\8fºà)
-   (#x5bd8 ?\8fºá)
-   (#x5bd9 ?\8fºâ)
-   (#x5bda ?\8fºã)
-   (#x5be0 ?\8fºä)
-   (#x5bef ?\8fºå)
-   (#x5bf1 ?\8fºæ)
-   (#x5bf4 ?\8fºç)
-   (#x5bfd ?\8fºè)
-   (#x5c0c ?\8fºé)
-   (#x5c17 ?\8fºê)
-   (#x5c1e ?\8fºë)
-   (#x5c1f ?\8fºì)
-   (#x5c23 ?\8fºí)
-   (#x5c26 ?\8fºî)
-   (#x5c29 ?\8fºï)
-   (#x5c2b ?\8fºð)
-   (#x5c2c ?\8fºñ)
-   (#x5c2e ?\8fºò)
-   (#x5c30 ?\8fºó)
-   (#x5c32 ?\8fºô)
-   (#x5c35 ?\8fºõ)
-   (#x5c36 ?\8fºö)
-   (#x5c59 ?\8fº÷)
-   (#x5c5a ?\8fºø)
-   (#x5c5c ?\8fºù)
-   (#x5c62 ?\8fºú)
-   (#x5c63 ?\8fºû)
-   (#x5c67 ?\8fºü)
-   (#x5c68 ?\8fºý)
-   (#x5c69 ?\8fºþ)
-   (#x5c6d ?\8f»¡)
-   (#x5c70 ?\8fȢ)
-   (#x5c74 ?\8fȣ)
-   (#x5c75 ?\8f»¤)
-   (#x5c7a ?\8fȴ)
-   (#x5c7b ?\8f»¦)
-   (#x5c7c ?\8fȤ)
-   (#x5c7d ?\8fȬ)
-   (#x5c87 ?\8f»©)
-   (#x5c88 ?\8fȻ)
-   (#x5c8a ?\8f»«)
-   (#x5c8f ?\8f»¬)
-   (#x5c92 ?\8f»­)
-   (#x5c9d ?\8f»®)
-   (#x5c9f ?\8f»¯)
-   (#x5ca0 ?\8f»°)
-   (#x5ca2 ?\8f»±)
-   (#x5ca3 ?\8f»²)
-   (#x5ca6 ?\8f»³)
-   (#x5caa ?\8f»´)
-   (#x5cb2 ?\8f»µ)
-   (#x5cb4 ?\8fȦ)
-   (#x5cb5 ?\8f»·)
-   (#x5cba ?\8f»¸)
-   (#x5cc9 ?\8f»¹)
-   (#x5ccb ?\8fȼ)
-   (#x5cd2 ?\8f»»)
-   (#x5cd7 ?\8f»½)
-   (#x5cdd ?\8f»¼)
-   (#x5cee ?\8f»¾)
-   (#x5cf1 ?\8f»¿)
-   (#x5cf2 ?\8f»À)
-   (#x5cf4 ?\8f»Ã)
-   (#x5d01 ?\8f»Â)
-   (#x5d06 ?\8f»Ã)
-   (#x5d0d ?\8fȀ)
-   (#x5d12 ?\8fȁ)
-   (#x5d23 ?\8fȂ)
-   (#x5d24 ?\8f»È)
-   (#x5d26 ?\8fȃ)
-   (#x5d27 ?\8f»Ê)
-   (#x5d2b ?\8fȮ)
-   (#x5d31 ?\8f»Ë)
-   (#x5d34 ?\8f»Ì)
-   (#x5d39 ?\8f»Ã)
-   (#x5d3d ?\8f»Î)
-   (#x5d3f ?\8f»Ã)
-   (#x5d42 ?\8f»Ã)
-   (#x5d43 ?\8fȄ)
-   (#x5d46 ?\8f»Ò)
-   (#x5d48 ?\8f»Ó)
-   (#x5d4a ?\8f»×)
-   (#x5d51 ?\8f»Õ)
-   (#x5d55 ?\8f»Ô)
-   (#x5d59 ?\8f»Ö)
-   (#x5d5f ?\8fȯ)
-   (#x5d60 ?\8f»Ù)
-   (#x5d61 ?\8f»Ú)
-   (#x5d62 ?\8f»Û)
-   (#x5d64 ?\8fȆ)
-   (#x5d6a ?\8f»Ã)
-   (#x5d6d ?\8f»Þ)
-   (#x5d70 ?\8fȧ)
-   (#x5d79 ?\8fȈ)
-   (#x5d7a ?\8fȇ)
-   (#x5d7e ?\8fȉ)
-   (#x5d7f ?\8fȋ)
-   (#x5d81 ?\8fȊ)
-   (#x5d83 ?\8fȌ)
-   (#x5d88 ?\8fȾ)
-   (#x5d8a ?\8fȍ)
-   (#x5d92 ?\8fȏ)
-   (#x5d93 ?\8fȎ)
-   (#x5d94 ?\8fȐ)
-   (#x5d95 ?\8fȑ)
-   (#x5d99 ?\8fȓ)
-   (#x5d9b ?\8fȒ)
-   (#x5d9f ?\8fȔ)
-   (#x5da0 ?\8fȕ)
-   (#x5da7 ?\8f»ð)
-   (#x5dab ?\8fȖ)
-   (#x5db0 ?\8f»ò)
-   (#x5db2 ?\8fæô)
-   (#x5db4 ?\8f»ó)
-   (#x5db8 ?\8f»ô)
-   (#x5db9 ?\8f»õ)
-   (#x5dc3 ?\8f»ö)
-   (#x5dc7 ?\8f»÷)
-   (#x5dcb ?\8f»ø)
-   (#x5dce ?\8f»ú)
-   (#x5dd0 ?\8f»ù)
-   (#x5dd8 ?\8f»û)
-   (#x5dd9 ?\8fȟ)
-   (#x5de0 ?\8f»ý)
-   (#x5de4 ?\8f»þ)
-   (#x5de9 ?\8f¼¡)
-   (#x5df8 ?\8f¼¢)
-   (#x5df9 ?\8f¼£)
-   (#x5e00 ?\8f¼¤)
-   (#x5e07 ?\8f¼¥)
-   (#x5e0d ?\8f¼¦)
-   (#x5e12 ?\8f¼§)
-   (#x5e14 ?\8f¼¨)
-   (#x5e15 ?\8f¼©)
-   (#x5e18 ?\8f¼ª)
-   (#x5e1f ?\8f¼«)
-   (#x5e20 ?\8f¼¬)
-   (#x5e28 ?\8f¼®)
-   (#x5e2e ?\8f¼­)
-   (#x5e32 ?\8f¼¯)
-   (#x5e35 ?\8f¼°)
-   (#x5e3e ?\8f¼±)
-   (#x5e49 ?\8f¼´)
-   (#x5e4b ?\8f¼²)
-   (#x5e50 ?\8f¼³)
-   (#x5e51 ?\8f¼µ)
-   (#x5e56 ?\8f¼¶)
-   (#x5e58 ?\8f¼·)
-   (#x5e5b ?\8f¼¸)
-   (#x5e5c ?\8f¼¹)
-   (#x5e5e ?\8f¼º)
-   (#x5e68 ?\8f¼»)
-   (#x5e6a ?\8f¼¼)
-   (#x5e6b ?\8f¼½)
-   (#x5e6c ?\8f¼¾)
-   (#x5e6d ?\8f¼¿)
-   (#x5e6e ?\8f¼À)
-   (#x5e70 ?\8f¼Ã)
-   (#x5e80 ?\8f¼Â)
-   (#x5e8b ?\8f¼Ã)
-   (#x5e8e ?\8f¼Ä)
-   (#x5ea2 ?\8f¼Å)
-   (#x5ea4 ?\8f¼Æ)
-   (#x5ea5 ?\8f¼Ç)
-   (#x5ea8 ?\8f¼È)
-   (#x5eaa ?\8f¼É)
-   (#x5eac ?\8f¼Ê)
-   (#x5eb1 ?\8f¼Ë)
-   (#x5eb3 ?\8f¼Ì)
-   (#x5ebd ?\8f¼Ã)
-   (#x5ebe ?\8f¼Î)
-   (#x5ebf ?\8f¼Ã)
-   (#x5ec6 ?\8f¼Ã)
-   (#x5ecb ?\8f¼Ò)
-   (#x5ecc ?\8f¼Ñ)
-   (#x5ece ?\8f¼Ó)
-   (#x5ed1 ?\8f¼Ô)
-   (#x5ed2 ?\8f¼Õ)
-   (#x5ed4 ?\8f¼Ö)
-   (#x5ed5 ?\8f¼×)
-   (#x5edc ?\8f¼Ø)
-   (#x5ede ?\8f¼Ù)
-   (#x5ee5 ?\8f¼Ú)
-   (#x5eeb ?\8f¼Û)
-   (#x5f02 ?\8f¼Ü)
-   (#x5f06 ?\8f¼Ã)
-   (#x5f07 ?\8f¼Þ)
-   (#x5f08 ?\8f¼ß)
-   (#x5f0e ?\8f¼à)
-   (#x5f19 ?\8f¼á)
-   (#x5f1c ?\8f¼â)
-   (#x5f1d ?\8f¼ã)
-   (#x5f21 ?\8f¼ä)
-   (#x5f22 ?\8f¼å)
-   (#x5f23 ?\8f¼æ)
-   (#x5f24 ?\8f¼ç)
-   (#x5f28 ?\8f¼è)
-   (#x5f2b ?\8f¼é)
-   (#x5f2c ?\8f¼ê)
-   (#x5f2e ?\8f¼ë)
-   (#x5f30 ?\8f¼ì)
-   (#x5f34 ?\8f¼í)
-   (#x5f36 ?\8f¼î)
-   (#x5f3b ?\8f¼ï)
-   (#x5f3d ?\8f¼ð)
-   (#x5f3f ?\8f¼ñ)
-   (#x5f40 ?\8f¼ò)
-   (#x5f44 ?\8f¼ó)
-   (#x5f45 ?\8f¼ô)
-   (#x5f47 ?\8f¼õ)
-   (#x5f4d ?\8f¼ö)
-   (#x5f50 ?\8f¼÷)
-   (#x5f54 ?\8f¼ø)
-   (#x5f58 ?\8f¼ù)
-   (#x5f5b ?\8f¼ú)
-   (#x5f60 ?\8f¼û)
-   (#x5f63 ?\8f¼ü)
-   (#x5f64 ?\8f¼ý)
-   (#x5f67 ?\8f¼þ)
-   (#x5f6f ?\8f½¡)
-   (#x5f72 ?\8f½¢)
-   (#x5f74 ?\8f½£)
-   (#x5f75 ?\8f½¤)
-   (#x5f78 ?\8f½¥)
-   (#x5f7a ?\8f½¦)
-   (#x5f7d ?\8f½§)
-   (#x5f7e ?\8f½¨)
-   (#x5f89 ?\8f½©)
-   (#x5f8d ?\8f½ª)
-   (#x5f8f ?\8f½«)
-   (#x5f96 ?\8f½¬)
-   (#x5f9c ?\8f½­)
-   (#x5f9d ?\8f½®)
-   (#x5fa2 ?\8f½¯)
-   (#x5fa4 ?\8f½²)
-   (#x5fa7 ?\8f½°)
-   (#x5fab ?\8f½±)
-   (#x5fac ?\8f½³)
-   (#x5faf ?\8f½´)
-   (#x5fb0 ?\8f½µ)
-   (#x5fb1 ?\8f½¶)
-   (#x5fb8 ?\8f½·)
-   (#x5fc4 ?\8f½¸)
-   (#x5fc7 ?\8f½¹)
-   (#x5fc8 ?\8f½º)
-   (#x5fc9 ?\8f½»)
-   (#x5fcb ?\8f½¼)
-   (#x5fd0 ?\8f½½)
-   (#x5fd1 ?\8f½¾)
-   (#x5fd2 ?\8f½¿)
-   (#x5fd3 ?\8f½À)
-   (#x5fd4 ?\8f½Ã)
-   (#x5fde ?\8f½Â)
-   (#x5fe1 ?\8f½Ã)
-   (#x5fe2 ?\8f½Ä)
-   (#x5fe8 ?\8f½Å)
-   (#x5fe9 ?\8f½Æ)
-   (#x5fea ?\8f½Ç)
-   (#x5fec ?\8f½È)
-   (#x5fed ?\8f½É)
-   (#x5fee ?\8f½Ê)
-   (#x5fef ?\8f½Ë)
-   (#x5ff2 ?\8f½Ì)
-   (#x5ff3 ?\8f½Ã)
-   (#x5ff6 ?\8f½Î)
-   (#x5ffa ?\8f½Ã)
-   (#x5ffc ?\8f½Ã)
-   (#x6007 ?\8f½Ñ)
-   (#x600a ?\8f½Ò)
-   (#x600d ?\8f½Ó)
-   (#x6013 ?\8f½Ô)
-   (#x6014 ?\8f½Õ)
-   (#x6017 ?\8f½Ö)
-   (#x6018 ?\8f½×)
-   (#x601a ?\8f½Ø)
-   (#x601f ?\8f½Ù)
-   (#x6024 ?\8f½Ú)
-   (#x602d ?\8f½Û)
-   (#x6033 ?\8f½Ü)
-   (#x6035 ?\8f½Ã)
-   (#x6040 ?\8f½Þ)
-   (#x6047 ?\8f½ß)
-   (#x6048 ?\8f½à)
-   (#x6049 ?\8f½á)
-   (#x604c ?\8f½â)
-   (#x6051 ?\8f½ã)
-   (#x6054 ?\8f½ä)
-   (#x6056 ?\8f½å)
-   (#x6057 ?\8f½æ)
-   (#x605d ?\8f½ç)
-   (#x6061 ?\8f½è)
-   (#x6067 ?\8f½é)
-   (#x6071 ?\8f½ê)
-   (#x607e ?\8f½ë)
-   (#x607f ?\8f½ì)
-   (#x6082 ?\8f½í)
-   (#x6086 ?\8f½î)
-   (#x6088 ?\8f½ï)
-   (#x608a ?\8f½ð)
-   (#x608e ?\8f½ñ)
-   (#x6091 ?\8f½ò)
-   (#x6093 ?\8f½ó)
-   (#x6095 ?\8f½ô)
-   (#x6098 ?\8f½õ)
-   (#x609d ?\8f½ö)
-   (#x609e ?\8f½÷)
-   (#x60a2 ?\8f½ø)
-   (#x60a4 ?\8f½ù)
-   (#x60a5 ?\8f½ú)
-   (#x60a8 ?\8f½û)
-   (#x60b0 ?\8f½ü)
-   (#x60b1 ?\8f½ý)
-   (#x60b7 ?\8f½þ)
-   (#x60bb ?\8f¾¡)
-   (#x60be ?\8f¾¢)
-   (#x60c2 ?\8f¾£)
-   (#x60c4 ?\8f¾¤)
-   (#x60c8 ?\8f¾¥)
-   (#x60c9 ?\8f¾¦)
-   (#x60ca ?\8f¾§)
-   (#x60cb ?\8f¾¨)
-   (#x60ce ?\8f¾©)
-   (#x60cf ?\8f¾ª)
-   (#x60d4 ?\8f¾«)
-   (#x60d5 ?\8f¾¬)
-   (#x60d9 ?\8f¾­)
-   (#x60db ?\8f¾®)
-   (#x60dd ?\8f¾¯)
-   (#x60de ?\8f¾°)
-   (#x60e2 ?\8f¾±)
-   (#x60e5 ?\8f¾²)
-   (#x60f2 ?\8f¾³)
-   (#x60f5 ?\8f¾´)
-   (#x60f8 ?\8f¾µ)
-   (#x60fc ?\8f¾¶)
-   (#x60fd ?\8f¾·)
-   (#x6102 ?\8f¾¸)
-   (#x6107 ?\8f¾¹)
-   (#x610a ?\8f¾º)
-   (#x610c ?\8f¾»)
-   (#x6110 ?\8f¾¼)
-   (#x6111 ?\8f¾½)
-   (#x6112 ?\8f¾¾)
-   (#x6113 ?\8f¾¿)
-   (#x6114 ?\8f¾À)
-   (#x6116 ?\8f¾Ã)
-   (#x6117 ?\8f¾Â)
-   (#x6119 ?\8f¾Ã)
-   (#x611c ?\8f¾Ä)
-   (#x611e ?\8f¾Å)
-   (#x6122 ?\8f¾Æ)
-   (#x612a ?\8f¾Ç)
-   (#x612b ?\8f¾È)
-   (#x6130 ?\8f¾É)
-   (#x6131 ?\8f¾Ê)
-   (#x6135 ?\8f¾Ë)
-   (#x6136 ?\8f¾Ì)
-   (#x6137 ?\8f¾Ã)
-   (#x6139 ?\8f¾Î)
-   (#x6141 ?\8f¾Ã)
-   (#x6145 ?\8f¾Ã)
-   (#x6146 ?\8f¾Ñ)
-   (#x6149 ?\8f¾Ò)
-   (#x615e ?\8f¾Ó)
-   (#x6160 ?\8f¾Ô)
-   (#x616c ?\8f¾Õ)
-   (#x6172 ?\8f¾Ö)
-   (#x6178 ?\8f¾×)
-   (#x617b ?\8f¾Ø)
-   (#x617c ?\8f¾Ù)
-   (#x617f ?\8f¾Ú)
-   (#x6180 ?\8f¾Û)
-   (#x6181 ?\8f¾Ü)
-   (#x6183 ?\8f¾Ã)
-   (#x6184 ?\8f¾Þ)
-   (#x618b ?\8f¾ß)
-   (#x618d ?\8f¾à)
-   (#x6192 ?\8f¾á)
-   (#x6193 ?\8f¾â)
-   (#x6197 ?\8f¾ã)
-   (#x6198 ?\8f¾ä)
-   (#x619c ?\8f¾å)
-   (#x619d ?\8f¾æ)
-   (#x619f ?\8f¾ç)
-   (#x61a0 ?\8f¾è)
-   (#x61a5 ?\8f¾é)
-   (#x61a8 ?\8f¾ê)
-   (#x61aa ?\8f¾ë)
-   (#x61ad ?\8f¾ì)
-   (#x61b8 ?\8f¾í)
-   (#x61b9 ?\8f¾î)
-   (#x61bc ?\8f¾ï)
-   (#x61c0 ?\8f¾ð)
-   (#x61c1 ?\8f¾ñ)
-   (#x61c2 ?\8f¾ò)
-   (#x61ce ?\8f¾ó)
-   (#x61cf ?\8f¾ô)
-   (#x61d5 ?\8f¾õ)
-   (#x61dc ?\8f¾ö)
-   (#x61dd ?\8f¾÷)
-   (#x61de ?\8f¾ø)
-   (#x61df ?\8f¾ù)
-   (#x61e1 ?\8f¾ú)
-   (#x61e2 ?\8f¾û)
-   (#x61e5 ?\8f¾þ)
-   (#x61e7 ?\8f¾ü)
-   (#x61e9 ?\8f¾ý)
-   (#x61ec ?\8f¿¡)
-   (#x61ed ?\8f¿¢)
-   (#x61ef ?\8f¿£)
-   (#x6201 ?\8f¿¤)
-   (#x6203 ?\8f¿¥)
-   (#x6204 ?\8f¿¦)
-   (#x6207 ?\8f¿§)
-   (#x6213 ?\8f¿¨)
-   (#x6215 ?\8f¿©)
-   (#x621c ?\8f¿ª)
-   (#x6220 ?\8f¿«)
-   (#x6222 ?\8f¿¬)
-   (#x6223 ?\8f¿­)
-   (#x6227 ?\8f¿®)
-   (#x6229 ?\8f¿¯)
-   (#x622b ?\8f¿°)
-   (#x6239 ?\8f¿±)
-   (#x623d ?\8f¿²)
-   (#x6242 ?\8f¿³)
-   (#x6243 ?\8f¿´)
-   (#x6244 ?\8f¿µ)
-   (#x6246 ?\8f¿¶)
-   (#x624c ?\8f¿·)
-   (#x6250 ?\8f¿¸)
-   (#x6251 ?\8f¿¹)
-   (#x6252 ?\8f¿º)
-   (#x6254 ?\8f¿»)
-   (#x6256 ?\8f¿¼)
-   (#x625a ?\8f¿½)
-   (#x625c ?\8f¿¾)
-   (#x6264 ?\8f¿¿)
-   (#x626d ?\8f¿À)
-   (#x626f ?\8f¿Ã)
-   (#x6273 ?\8f¿Â)
-   (#x627a ?\8f¿Ã)
-   (#x627d ?\8f¿Ä)
-   (#x628d ?\8f¿Å)
-   (#x628e ?\8f¿Æ)
-   (#x628f ?\8f¿Ç)
-   (#x6290 ?\8f¿È)
-   (#x62a6 ?\8f¿É)
-   (#x62a8 ?\8f¿Ê)
-   (#x62b3 ?\8f¿Ë)
-   (#x62b6 ?\8f¿Ì)
-   (#x62b7 ?\8f¿Ã)
-   (#x62ba ?\8f¿Î)
-   (#x62be ?\8f¿Ã)
-   (#x62bf ?\8f¿Ã)
-   (#x62c4 ?\8f¿Ñ)
-   (#x62ce ?\8f¿Ò)
-   (#x62d5 ?\8f¿Ó)
-   (#x62d6 ?\8f¿Ô)
-   (#x62da ?\8f¿Õ)
-   (#x62ea ?\8f¿Ö)
-   (#x62f2 ?\8f¿×)
-   (#x62f4 ?\8f¿Ø)
-   (#x62fc ?\8f¿Ù)
-   (#x62fd ?\8f¿Ú)
-   (#x6303 ?\8f¿Û)
-   (#x6304 ?\8f¿Ü)
-   (#x630a ?\8f¿Ã)
-   (#x630b ?\8f¿Þ)
-   (#x630d ?\8f¿ß)
-   (#x6310 ?\8f¿à)
-   (#x6313 ?\8f¿á)
-   (#x6316 ?\8f¿â)
-   (#x6318 ?\8f¿ã)
-   (#x6329 ?\8f¿ä)
-   (#x632a ?\8f¿å)
-   (#x632d ?\8f¿æ)
-   (#x6335 ?\8f¿ç)
-   (#x6336 ?\8f¿è)
-   (#x6339 ?\8f¿é)
-   (#x633c ?\8f¿ê)
-   (#x6341 ?\8f¿ë)
-   (#x6342 ?\8f¿ì)
-   (#x6343 ?\8f¿í)
-   (#x6344 ?\8f¿î)
-   (#x6346 ?\8f¿ï)
-   (#x634a ?\8f¿ð)
-   (#x634b ?\8f¿ñ)
-   (#x634e ?\8f¿ò)
-   (#x6352 ?\8f¿ó)
-   (#x6353 ?\8f¿ô)
-   (#x6354 ?\8f¿õ)
-   (#x6358 ?\8f¿ö)
-   (#x635b ?\8f¿÷)
-   (#x6365 ?\8f¿ø)
-   (#x6366 ?\8f¿ù)
-   (#x636c ?\8f¿ú)
-   (#x636d ?\8f¿û)
-   (#x6371 ?\8f¿ü)
-   (#x6374 ?\8f¿ý)
-   (#x6375 ?\8f¿þ)
-   (#x6378 ?\8fÀ¡)
-   (#x637c ?\8fÀ¢)
-   (#x637d ?\8fÀ£)
-   (#x637f ?\8fÀ¤)
-   (#x6382 ?\8fÀ¥)
-   (#x6384 ?\8fÀ¦)
-   (#x6387 ?\8fˤ)
-   (#x638a ?\8fˬ)
-   (#x6390 ?\8fÀ©)
-   (#x6394 ?\8f˻)
-   (#x6395 ?\8fÀ«)
-   (#x6399 ?\8fÀ¬)
-   (#x639a ?\8fÀ­)
-   (#x639e ?\8fÀ®)
-   (#x63a4 ?\8fÀ¯)
-   (#x63a6 ?\8fÀ°)
-   (#x63ad ?\8f˱)
-   (#x63ae ?\8fÀ²)
-   (#x63af ?\8fÀ³)
-   (#x63bd ?\8fÀ´)
-   (#x63c1 ?\8f˵)
-   (#x63c5 ?\8f˦)
-   (#x63c8 ?\8fÀ·)
-   (#x63ce ?\8fÀ¸)
-   (#x63d1 ?\8fÀ¹)
-   (#x63d3 ?\8f˼)
-   (#x63d4 ?\8fÀ»)
-   (#x63d5 ?\8fÀ¼)
-   (#x63dc ?\8fÀ½)
-   (#x63e0 ?\8fÀ¾)
-   (#x63e5 ?\8fÀ¿)
-   (#x63ea ?\8fÀÀ)
-   (#x63ec ?\8fÀÃ)
-   (#x63f2 ?\8fÀÂ)
-   (#x63f3 ?\8fÀÃ)
-   (#x63f5 ?\8fÀÄ)
-   (#x63f8 ?\8fÀÅ)
-   (#x63f9 ?\8fÀÆ)
-   (#x6409 ?\8fÀÇ)
-   (#x640a ?\8fÀÈ)
-   (#x6410 ?\8fÀÉ)
-   (#x6412 ?\8fÀÊ)
-   (#x6414 ?\8fÀË)
-   (#x6418 ?\8fÀÌ)
-   (#x641e ?\8fÀÃ)
-   (#x6420 ?\8fÀÎ)
-   (#x6422 ?\8fÀÃ)
-   (#x6424 ?\8fÀÃ)
-   (#x6425 ?\8fÀÑ)
-   (#x6429 ?\8fÀÒ)
-   (#x642a ?\8fÀÓ)
-   (#x642f ?\8fÀÔ)
-   (#x6430 ?\8fÀÕ)
-   (#x6435 ?\8fÀÖ)
-   (#x643d ?\8fÀ×)
-   (#x643f ?\8fÀØ)
-   (#x644b ?\8fÀÙ)
-   (#x644f ?\8fÀÚ)
-   (#x6451 ?\8fÀÛ)
-   (#x6452 ?\8fÀÜ)
-   (#x6453 ?\8fÀÃ)
-   (#x6454 ?\8fÀÞ)
-   (#x645a ?\8fÀß)
-   (#x645b ?\8fÀà)
-   (#x645c ?\8fÀá)
-   (#x645d ?\8fÀâ)
-   (#x645f ?\8fÀã)
-   (#x6460 ?\8fÀä)
-   (#x6461 ?\8fÀå)
-   (#x6463 ?\8fÀæ)
-   (#x646d ?\8fÀç)
-   (#x6473 ?\8fÀè)
-   (#x6474 ?\8fÀé)
-   (#x647b ?\8fÀê)
-   (#x647d ?\8fÀë)
-   (#x6485 ?\8fÀì)
-   (#x6487 ?\8fÀí)
-   (#x648f ?\8fÀî)
-   (#x6490 ?\8fÀï)
-   (#x6491 ?\8fÀð)
-   (#x6498 ?\8fÀñ)
-   (#x6499 ?\8fÀò)
-   (#x649b ?\8fÀó)
-   (#x649d ?\8fÀô)
-   (#x649f ?\8fÀõ)
-   (#x64a1 ?\8fÀö)
-   (#x64a3 ?\8fÀ÷)
-   (#x64a6 ?\8fÀø)
-   (#x64a8 ?\8fÀù)
-   (#x64ac ?\8fÀú)
-   (#x64b3 ?\8fÀû)
-   (#x64bd ?\8fÀü)
-   (#x64be ?\8fÀý)
-   (#x64bf ?\8fÀþ)
-   (#x64c4 ?\8fá)
-   (#x64c9 ?\8fâ)
-   (#x64ca ?\8fã)
-   (#x64cb ?\8fä)
-   (#x64cc ?\8fÃÂ¥)
-   (#x64ce ?\8fæ)
-   (#x64d0 ?\8fç)
-   (#x64d1 ?\8fè)
-   (#x64d5 ?\8fé)
-   (#x64d7 ?\8fê)
-   (#x64e4 ?\8fë)
-   (#x64e5 ?\8fì)
-   (#x64e9 ?\8fí)
-   (#x64ea ?\8fî)
-   (#x64ed ?\8fï)
-   (#x64f0 ?\8fð)
-   (#x64f5 ?\8fñ)
-   (#x64f7 ?\8fò)
-   (#x64fb ?\8fó)
-   (#x64ff ?\8fô)
-   (#x6501 ?\8fõ)
-   (#x6504 ?\8fö)
-   (#x6508 ?\8f÷)
-   (#x6509 ?\8fø)
-   (#x650a ?\8fù)
-   (#x650f ?\8fú)
-   (#x6513 ?\8fû)
-   (#x6514 ?\8fü)
-   (#x6516 ?\8fý)
-   (#x6519 ?\8fþ)
-   (#x651b ?\8fÿ)
-   (#x651e ?\8fÃÀ)
-   (#x651f ?\8fÃÃ)
-   (#x6522 ?\8fÃÂ)
-   (#x6526 ?\8fÃÃ)
-   (#x6529 ?\8fÃÄ)
-   (#x652e ?\8fÃÃ…)
-   (#x6531 ?\8fÃÆ)
-   (#x653a ?\8fÃÇ)
-   (#x653c ?\8fÃÈ)
-   (#x653d ?\8fÃÉ)
-   (#x6543 ?\8fÃÊ)
-   (#x6547 ?\8fÃË)
-   (#x6549 ?\8fÃÃŒ)
-   (#x6550 ?\8fÃÃ)
-   (#x6552 ?\8fÃÃŽ)
-   (#x6554 ?\8fÃÃ)
-   (#x655f ?\8fÃÃ)
-   (#x6560 ?\8fÃÑ)
-   (#x6567 ?\8fÃÃ’)
-   (#x656b ?\8fÃÓ)
-   (#x657a ?\8fÃÔ)
-   (#x657d ?\8fÃÕ)
-   (#x6581 ?\8fÃÖ)
-   (#x6585 ?\8fÃ×)
-   (#x658a ?\8fÃØ)
-   (#x6592 ?\8fÃÙ)
-   (#x6595 ?\8fÃÚ)
-   (#x6598 ?\8fÃÛ)
-   (#x659d ?\8fÃÃœ)
-   (#x65a0 ?\8fÃÃ)
-   (#x65a3 ?\8fÃÞ)
-   (#x65a6 ?\8fÃß)
-   (#x65ae ?\8fÃà)
-   (#x65b2 ?\8fÃá)
-   (#x65b3 ?\8fÃâ)
-   (#x65b4 ?\8fÃã)
-   (#x65bf ?\8fÃä)
-   (#x65c2 ?\8fÃÃ¥)
-   (#x65c8 ?\8fÃæ)
-   (#x65c9 ?\8fÃç)
-   (#x65ce ?\8fÃè)
-   (#x65d0 ?\8fÃé)
-   (#x65d4 ?\8fÃê)
-   (#x65d6 ?\8fÃë)
-   (#x65d8 ?\8fÃì)
-   (#x65df ?\8fÃí)
-   (#x65f0 ?\8fÃî)
-   (#x65f2 ?\8fÃï)
-   (#x65f4 ?\8fÃð)
-   (#x65f5 ?\8fÃñ)
-   (#x65f9 ?\8fÃò)
-   (#x65fe ?\8fÃó)
-   (#x65ff ?\8fÃô)
-   (#x6600 ?\8fÃõ)
-   (#x6604 ?\8fÃö)
-   (#x6608 ?\8fÃ÷)
-   (#x6609 ?\8fÃø)
-   (#x660d ?\8fÃù)
-   (#x6611 ?\8fÃú)
-   (#x6612 ?\8fÃû)
-   (#x6615 ?\8fÃü)
-   (#x6616 ?\8fÃý)
-   (#x661d ?\8fÃþ)
-   (#x661e ?\8f¡)
-   (#x6621 ?\8f¢)
-   (#x6622 ?\8f£)
-   (#x6623 ?\8f¤)
-   (#x6624 ?\8fÂ¥)
-   (#x6626 ?\8f¦)
-   (#x6629 ?\8f§)
-   (#x662a ?\8f¨)
-   (#x662b ?\8f©)
-   (#x662c ?\8fª)
-   (#x662e ?\8f«)
-   (#x6630 ?\8f¬)
-   (#x6631 ?\8f­)
-   (#x6633 ?\8f®)
-   (#x6637 ?\8f°)
-   (#x6639 ?\8f¯)
-   (#x6640 ?\8f±)
-   (#x6645 ?\8f²)
-   (#x6646 ?\8f³)
-   (#x664a ?\8f´)
-   (#x664c ?\8fµ)
-   (#x664e ?\8f·)
-   (#x6651 ?\8f¶)
-   (#x6657 ?\8f¸)
-   (#x6658 ?\8f¹)
-   (#x6659 ?\8fº)
-   (#x665b ?\8f»)
-   (#x665c ?\8f¼)
-   (#x6660 ?\8f½)
-   (#x6661 ?\8f¾)
-   (#x666a ?\8fÂÀ)
-   (#x666b ?\8fÂÃ)
-   (#x666c ?\8fÂÂ)
-   (#x6673 ?\8fÂÄ)
-   (#x6675 ?\8fÂÅ)
-   (#x6677 ?\8fÂÇ)
-   (#x6678 ?\8fÂÈ)
-   (#x6679 ?\8fÂÉ)
-   (#x667b ?\8fÂÊ)
-   (#x667c ?\8fÂÌ)
-   (#x667e ?\8fÂÃ)
-   (#x667f ?\8fÂÆ)
-   (#x6680 ?\8fÂË)
-   (#x668b ?\8fÂÃ)
-   (#x668c ?\8fÂÎ)
-   (#x668d ?\8fÂÃ)
-   (#x6690 ?\8fÂÃ)
-   (#x6692 ?\8fÂÑ)
-   (#x6699 ?\8fÂÒ)
-   (#x669a ?\8fÂÓ)
-   (#x669b ?\8fÂÔ)
-   (#x669c ?\8fÂÕ)
-   (#x669f ?\8fÂÖ)
-   (#x66a0 ?\8fÂ×)
-   (#x66a4 ?\8fÂØ)
-   (#x66ad ?\8fÂÙ)
-   (#x66b1 ?\8fÂÚ)
-   (#x66b2 ?\8fÂÛ)
-   (#x66b5 ?\8fÂÜ)
-   (#x66bb ?\8fÂÃ)
-   (#x66bf ?\8fÂÞ)
-   (#x66c0 ?\8fÂß)
-   (#x66c2 ?\8fÂà)
-   (#x66c3 ?\8fÂá)
-   (#x66c8 ?\8fÂâ)
-   (#x66cc ?\8fÂã)
-   (#x66ce ?\8fÂä)
-   (#x66cf ?\8fÂå)
-   (#x66d4 ?\8fÂæ)
-   (#x66db ?\8fÂç)
-   (#x66df ?\8fÂè)
-   (#x66e8 ?\8fÂé)
-   (#x66eb ?\8fÂê)
-   (#x66ec ?\8fÂë)
-   (#x66ee ?\8fÂì)
-   (#x66fa ?\8fÂí)
-   (#x66fb ?\8f¿)
-   (#x6705 ?\8fÂî)
-   (#x6707 ?\8fÂï)
-   (#x670e ?\8fÂð)
-   (#x6713 ?\8fÂñ)
-   (#x6719 ?\8fÂò)
-   (#x671c ?\8fÂó)
-   (#x6720 ?\8fÂô)
-   (#x6722 ?\8fÂõ)
-   (#x6733 ?\8fÂö)
-   (#x673e ?\8fÂ÷)
-   (#x6745 ?\8fÂø)
-   (#x6747 ?\8fÂù)
-   (#x6748 ?\8fÂú)
-   (#x674c ?\8fÂû)
-   (#x6754 ?\8fÂü)
-   (#x6755 ?\8fÂý)
-   (#x675d ?\8fÂþ)
-   (#x6766 ?\8fá)
-   (#x676c ?\8fâ)
-   (#x676e ?\8fã)
-   (#x6774 ?\8fä)
-   (#x6776 ?\8fÃ¥)
-   (#x677b ?\8fæ)
-   (#x6781 ?\8fç)
-   (#x6784 ?\8fè)
-   (#x678e ?\8fé)
-   (#x678f ?\8fê)
-   (#x6791 ?\8fë)
-   (#x6793 ?\8fì)
-   (#x6796 ?\8fí)
-   (#x6798 ?\8fî)
-   (#x6799 ?\8fï)
-   (#x679b ?\8fð)
-   (#x67b0 ?\8fñ)
-   (#x67b1 ?\8fò)
-   (#x67b2 ?\8fó)
-   (#x67b5 ?\8fô)
-   (#x67bb ?\8fõ)
-   (#x67bc ?\8fö)
-   (#x67bd ?\8f÷)
-   (#x67c0 ?\8fù)
-   (#x67c2 ?\8fú)
-   (#x67c3 ?\8fû)
-   (#x67c5 ?\8fü)
-   (#x67c8 ?\8fý)
-   (#x67c9 ?\8fþ)
-   (#x67d2 ?\8fÿ)
-   (#x67d7 ?\8fÃÀ)
-   (#x67d9 ?\8fÃÃ)
-   (#x67dc ?\8fÃÂ)
-   (#x67e1 ?\8fÃÃ)
-   (#x67e6 ?\8fÃÄ)
-   (#x67f0 ?\8fÃÅ)
-   (#x67f2 ?\8fÃÆ)
-   (#x67f6 ?\8fÃÇ)
-   (#x67f7 ?\8fÃÈ)
-   (#x67f9 ?\8fø)
-   (#x6814 ?\8fÃÊ)
-   (#x6819 ?\8fÃË)
-   (#x681d ?\8fÃÌ)
-   (#x681f ?\8fÃÃ)
-   (#x6827 ?\8fÃÃ)
-   (#x6828 ?\8fÃÎ)
-   (#x682c ?\8fÃÃ)
-   (#x682d ?\8fÃÑ)
-   (#x682f ?\8fÃÒ)
-   (#x6830 ?\8fÃÓ)
-   (#x6831 ?\8fÃÔ)
-   (#x6833 ?\8fÃÕ)
-   (#x683b ?\8fÃÖ)
-   (#x683f ?\8fÃ×)
-   (#x6844 ?\8fÃØ)
-   (#x6845 ?\8fÃÙ)
-   (#x684a ?\8fÃÚ)
-   (#x684c ?\8fÃÛ)
-   (#x6852 ?\8fÃÉ)
-   (#x6855 ?\8fÃÜ)
-   (#x6857 ?\8fÃÃ)
-   (#x6858 ?\8fÃÞ)
-   (#x685b ?\8fÃß)
-   (#x686b ?\8fÃà)
-   (#x686e ?\8fÃá)
-   (#x686f ?\8fÃâ)
-   (#x6870 ?\8fÃã)
-   (#x6871 ?\8fÃä)
-   (#x6872 ?\8fÃå)
-   (#x6875 ?\8fÃæ)
-   (#x6879 ?\8fÃç)
-   (#x687a ?\8fÃè)
-   (#x687b ?\8fÃé)
-   (#x687c ?\8fÃê)
-   (#x6882 ?\8fÃë)
-   (#x6884 ?\8fÃì)
-   (#x6886 ?\8fÃí)
-   (#x6888 ?\8fÃî)
-   (#x6896 ?\8fÃï)
-   (#x6898 ?\8fÃð)
-   (#x689a ?\8fÃñ)
-   (#x689c ?\8fÃò)
-   (#x68a1 ?\8fÃó)
-   (#x68a3 ?\8fÃô)
-   (#x68a5 ?\8fÃõ)
-   (#x68a9 ?\8fÃö)
-   (#x68aa ?\8fÃ÷)
-   (#x68ae ?\8fÃø)
-   (#x68b2 ?\8fÃù)
-   (#x68bb ?\8fÃú)
-   (#x68c5 ?\8fÃû)
-   (#x68c8 ?\8fÃü)
-   (#x68cc ?\8fÃý)
-   (#x68cf ?\8fÃþ)
-   (#x68d0 ?\8fÄ¡)
-   (#x68d1 ?\8fÄ¢)
-   (#x68d3 ?\8fÄ£)
-   (#x68d6 ?\8fĤ)
-   (#x68d9 ?\8fÄ¥)
-   (#x68dc ?\8fĦ)
-   (#x68dd ?\8fħ)
-   (#x68e5 ?\8fĨ)
-   (#x68e8 ?\8fÄ©)
-   (#x68ea ?\8fĪ)
-   (#x68eb ?\8fÄ«)
-   (#x68ec ?\8fĬ)
-   (#x68ed ?\8fÄ­)
-   (#x68f0 ?\8fÄ®)
-   (#x68f1 ?\8fį)
-   (#x68f5 ?\8fÄ°)
-   (#x68f6 ?\8fı)
-   (#x68fb ?\8fIJ)
-   (#x68fc ?\8fij)
-   (#x68fd ?\8fÄ´)
-   (#x6906 ?\8fĵ)
-   (#x6909 ?\8fĶ)
-   (#x690a ?\8fÄ·)
-   (#x6910 ?\8fĸ)
-   (#x6911 ?\8fĹ)
-   (#x6913 ?\8fĺ)
-   (#x6916 ?\8fÄ»)
-   (#x6917 ?\8fļ)
-   (#x6931 ?\8fĽ)
-   (#x6933 ?\8fľ)
-   (#x6935 ?\8fÄ¿)
-   (#x6938 ?\8fÄÀ)
-   (#x693b ?\8fÄÃ)
-   (#x6942 ?\8fÄÂ)
-   (#x6945 ?\8fÄÃ)
-   (#x6949 ?\8fÄÄ)
-   (#x694e ?\8fÄÅ)
-   (#x6957 ?\8fÄÆ)
-   (#x695b ?\8fÄÇ)
-   (#x6963 ?\8fÄÈ)
-   (#x6964 ?\8fÄÉ)
-   (#x6965 ?\8fÄÊ)
-   (#x6966 ?\8fÄË)
-   (#x6968 ?\8fÄÌ)
-   (#x6969 ?\8fÄÃ)
-   (#x696c ?\8fÄÎ)
-   (#x6970 ?\8fÄÃ)
-   (#x6971 ?\8fÄÃ)
-   (#x6972 ?\8fÄÑ)
-   (#x697a ?\8fÄÒ)
-   (#x697b ?\8fÄÓ)
-   (#x697f ?\8fÄÔ)
-   (#x6980 ?\8fÄÕ)
-   (#x698d ?\8fÄÖ)
-   (#x6992 ?\8fÄ×)
-   (#x6996 ?\8fÄØ)
-   (#x6998 ?\8fÄÙ)
-   (#x69a1 ?\8fÄÚ)
-   (#x69a5 ?\8fÄÛ)
-   (#x69a6 ?\8fÄÜ)
-   (#x69a8 ?\8fÄÃ)
-   (#x69ab ?\8fÄÞ)
-   (#x69ad ?\8fÄß)
-   (#x69af ?\8fÄà)
-   (#x69b7 ?\8fÄá)
-   (#x69b8 ?\8fÄâ)
-   (#x69ba ?\8fÄã)
-   (#x69bc ?\8fÄä)
-   (#x69c5 ?\8fÄå)
-   (#x69c8 ?\8fÄæ)
-   (#x69d1 ?\8fÄç)
-   (#x69d6 ?\8fÄè)
-   (#x69d7 ?\8fÄé)
-   (#x69e2 ?\8fÄê)
-   (#x69e5 ?\8fÄë)
-   (#x69ee ?\8fÄì)
-   (#x69ef ?\8fÄí)
-   (#x69f1 ?\8fÄî)
-   (#x69f3 ?\8fÄï)
-   (#x69f5 ?\8fÄð)
-   (#x69fe ?\8fÄñ)
-   (#x6a00 ?\8fÄò)
-   (#x6a01 ?\8fÄó)
-   (#x6a03 ?\8fÄô)
-   (#x6a0f ?\8fÄõ)
-   (#x6a11 ?\8fÄö)
-   (#x6a15 ?\8fÄ÷)
-   (#x6a1a ?\8fÄø)
-   (#x6a1d ?\8fÄù)
-   (#x6a20 ?\8fÄú)
-   (#x6a24 ?\8fÄû)
-   (#x6a28 ?\8fÄü)
-   (#x6a30 ?\8fÄý)
-   (#x6a32 ?\8fÄþ)
-   (#x6a34 ?\8fÅ¡)
-   (#x6a37 ?\8fÅ¢)
-   (#x6a3b ?\8fÅ£)
-   (#x6a3e ?\8fŤ)
-   (#x6a3f ?\8fÃ…Â¥)
-   (#x6a45 ?\8fŦ)
-   (#x6a46 ?\8fŧ)
-   (#x6a49 ?\8fŨ)
-   (#x6a4a ?\8fÅ©)
-   (#x6a4e ?\8fŪ)
-   (#x6a50 ?\8fÅ«)
-   (#x6a51 ?\8fŬ)
-   (#x6a52 ?\8fÅ­)
-   (#x6a55 ?\8fÅ®)
-   (#x6a56 ?\8fů)
-   (#x6a5b ?\8fÅ°)
-   (#x6a64 ?\8fű)
-   (#x6a67 ?\8fŲ)
-   (#x6a6a ?\8fų)
-   (#x6a71 ?\8fÅ´)
-   (#x6a73 ?\8fŵ)
-   (#x6a7e ?\8fŶ)
-   (#x6a81 ?\8fÅ·)
-   (#x6a83 ?\8fŸ)
-   (#x6a86 ?\8fŹ)
-   (#x6a87 ?\8fź)
-   (#x6a89 ?\8fÅ»)
-   (#x6a8b ?\8fż)
-   (#x6a91 ?\8fŽ)
-   (#x6a9b ?\8fž)
-   (#x6a9d ?\8fÅ¿)
-   (#x6a9e ?\8fÅÀ)
-   (#x6a9f ?\8fÃ…Ã)
-   (#x6aa5 ?\8fÅÂ)
-   (#x6aab ?\8fÅÃ)
-   (#x6aaf ?\8fÅÄ)
-   (#x6ab0 ?\8fÃ…Ã…)
-   (#x6ab1 ?\8fÅÆ)
-   (#x6ab4 ?\8fÅÇ)
-   (#x6abd ?\8fÅÈ)
-   (#x6abe ?\8fÅÉ)
-   (#x6abf ?\8fÅÊ)
-   (#x6ac6 ?\8fÅË)
-   (#x6ac8 ?\8fÃ…Ã)
-   (#x6ac9 ?\8fÃ…ÃŒ)
-   (#x6acc ?\8fÃ…ÃŽ)
-   (#x6ad0 ?\8fÃ…Ã)
-   (#x6ad4 ?\8fÃ…Ã)
-   (#x6ad5 ?\8fÅÑ)
-   (#x6ad6 ?\8fÃ…Ã’)
-   (#x6adc ?\8fÅÓ)
-   (#x6add ?\8fÅÔ)
-   (#x6ae4 ?\8fÅÕ)
-   (#x6ae7 ?\8fÅÖ)
-   (#x6aec ?\8fÅ×)
-   (#x6af0 ?\8fÅØ)
-   (#x6af1 ?\8fÅÙ)
-   (#x6af2 ?\8fÅÚ)
-   (#x6afc ?\8fÅÛ)
-   (#x6afd ?\8fÃ…Ãœ)
-   (#x6b02 ?\8fÃ…Ã)
-   (#x6b03 ?\8fÅÞ)
-   (#x6b06 ?\8fÅß)
-   (#x6b07 ?\8fÅà)
-   (#x6b09 ?\8fÅá)
-   (#x6b0f ?\8fÅâ)
-   (#x6b10 ?\8fÅã)
-   (#x6b11 ?\8fÅä)
-   (#x6b17 ?\8fÃ…Ã¥)
-   (#x6b1b ?\8fÅæ)
-   (#x6b1e ?\8fÅç)
-   (#x6b24 ?\8fÅè)
-   (#x6b28 ?\8fÅé)
-   (#x6b2b ?\8fÅê)
-   (#x6b2c ?\8fÅë)
-   (#x6b2f ?\8fÅì)
-   (#x6b35 ?\8fÅí)
-   (#x6b36 ?\8fÅî)
-   (#x6b3b ?\8fÅï)
-   (#x6b3f ?\8fÅð)
-   (#x6b46 ?\8fÅñ)
-   (#x6b4a ?\8fÅò)
-   (#x6b4d ?\8fÅó)
-   (#x6b52 ?\8fÅô)
-   (#x6b56 ?\8fÅõ)
-   (#x6b58 ?\8fÅö)
-   (#x6b5d ?\8fÅ÷)
-   (#x6b60 ?\8fÅø)
-   (#x6b67 ?\8fÅù)
-   (#x6b6b ?\8fÅú)
-   (#x6b6e ?\8fÅû)
-   (#x6b70 ?\8fÅü)
-   (#x6b75 ?\8fÅý)
-   (#x6b7d ?\8fÅþ)
-   (#x6b7e ?\8fÆ¡)
-   (#x6b82 ?\8fÆ¢)
-   (#x6b85 ?\8fÆ£)
-   (#x6b97 ?\8fƤ)
-   (#x6b9b ?\8fÆ¥)
-   (#x6b9f ?\8fƦ)
-   (#x6ba0 ?\8fƧ)
-   (#x6ba2 ?\8fƨ)
-   (#x6ba3 ?\8fÆ©)
-   (#x6ba8 ?\8fƪ)
-   (#x6ba9 ?\8fÆ«)
-   (#x6bac ?\8fƬ)
-   (#x6bad ?\8fÆ­)
-   (#x6bae ?\8fÆ®)
-   (#x6bb0 ?\8fƯ)
-   (#x6bb8 ?\8fÆ°)
-   (#x6bb9 ?\8fƱ)
-   (#x6bbd ?\8fƲ)
-   (#x6bbe ?\8fƳ)
-   (#x6bc3 ?\8fÆ´)
-   (#x6bc4 ?\8fƵ)
-   (#x6bc9 ?\8fƶ)
-   (#x6bcc ?\8fÆ·)
-   (#x6bd6 ?\8fƸ)
-   (#x6bda ?\8fƹ)
-   (#x6be1 ?\8fƺ)
-   (#x6be3 ?\8fÆ»)
-   (#x6be6 ?\8fƼ)
-   (#x6be7 ?\8fƽ)
-   (#x6bee ?\8fƾ)
-   (#x6bf1 ?\8fÆ¿)
-   (#x6bf7 ?\8fÆÀ)
-   (#x6bf9 ?\8fÆÃ)
-   (#x6bff ?\8fÆÂ)
-   (#x6c02 ?\8fÆÃ)
-   (#x6c04 ?\8fÆÄ)
-   (#x6c05 ?\8fÆÅ)
-   (#x6c09 ?\8fÆÆ)
-   (#x6c0d ?\8fÆÇ)
-   (#x6c0e ?\8fÆÈ)
-   (#x6c10 ?\8fÆÉ)
-   (#x6c12 ?\8fÆÊ)
-   (#x6c19 ?\8fÆË)
-   (#x6c1f ?\8fÆÌ)
-   (#x6c26 ?\8fÆÃ)
-   (#x6c27 ?\8fÆÎ)
-   (#x6c28 ?\8fÆÃ)
-   (#x6c2c ?\8fÆÃ)
-   (#x6c2e ?\8fÆÑ)
-   (#x6c33 ?\8fÆÒ)
-   (#x6c35 ?\8fÆÓ)
-   (#x6c36 ?\8fÆÔ)
-   (#x6c3a ?\8fÆÕ)
-   (#x6c3b ?\8fÆÖ)
-   (#x6c3f ?\8fÆ×)
-   (#x6c4a ?\8fÆØ)
-   (#x6c4b ?\8fÆÙ)
-   (#x6c4d ?\8fÆÚ)
-   (#x6c4f ?\8fÆÛ)
-   (#x6c52 ?\8fÆÜ)
-   (#x6c54 ?\8fÆÃ)
-   (#x6c59 ?\8fÆÞ)
-   (#x6c5b ?\8fÆß)
-   (#x6c5c ?\8fÆà)
-   (#x6c67 ?\8fǶ)
-   (#x6c6b ?\8fÆá)
-   (#x6c6d ?\8fÆâ)
-   (#x6c6f ?\8fÆã)
-   (#x6c74 ?\8fÆä)
-   (#x6c76 ?\8fÆå)
-   (#x6c78 ?\8fÆæ)
-   (#x6c79 ?\8fÆç)
-   (#x6c7b ?\8fÆè)
-   (#x6c85 ?\8fÆé)
-   (#x6c86 ?\8fÆê)
-   (#x6c87 ?\8fÆë)
-   (#x6c89 ?\8fÆì)
-   (#x6c94 ?\8fÆí)
-   (#x6c95 ?\8fÆî)
-   (#x6c97 ?\8fÆï)
-   (#x6c98 ?\8fÆð)
-   (#x6c9c ?\8fÆñ)
-   (#x6c9f ?\8fÆò)
-   (#x6cb0 ?\8fÆó)
-   (#x6cb2 ?\8fÆô)
-   (#x6cb4 ?\8fÆõ)
-   (#x6cc2 ?\8fÆö)
-   (#x6cc6 ?\8fÆ÷)
-   (#x6ccd ?\8fÆø)
-   (#x6ccf ?\8fÆù)
-   (#x6cd0 ?\8fÆú)
-   (#x6cd1 ?\8fÆû)
-   (#x6cd2 ?\8fÆü)
-   (#x6cd4 ?\8fÆý)
-   (#x6cd6 ?\8fÆþ)
-   (#x6cda ?\8fÇ¡)
-   (#x6cdc ?\8fÇ¢)
-   (#x6ce0 ?\8fÇ£)
-   (#x6ce7 ?\8fǤ)
-   (#x6ce9 ?\8fÇ¥)
-   (#x6ceb ?\8fǦ)
-   (#x6cec ?\8fǧ)
-   (#x6cee ?\8fǨ)
-   (#x6cf2 ?\8fÇ©)
-   (#x6cf4 ?\8fǪ)
-   (#x6d04 ?\8fÇ«)
-   (#x6d07 ?\8fǬ)
-   (#x6d0a ?\8fÇ­)
-   (#x6d0e ?\8fÇ®)
-   (#x6d0f ?\8fǯ)
-   (#x6d11 ?\8fÇ°)
-   (#x6d13 ?\8fDZ)
-   (#x6d1a ?\8fDz)
-   (#x6d26 ?\8fdz)
-   (#x6d27 ?\8fÇ´)
-   (#x6d28 ?\8fǵ)
-   (#x6d2e ?\8fÇ·)
-   (#x6d2f ?\8fǸ)
-   (#x6d31 ?\8fǹ)
-   (#x6d39 ?\8fǺ)
-   (#x6d3c ?\8fÇ»)
-   (#x6d3f ?\8fǼ)
-   (#x6d57 ?\8fǽ)
-   (#x6d5e ?\8fǾ)
-   (#x6d5f ?\8fÇ¿)
-   (#x6d61 ?\8fÇÀ)
-   (#x6d65 ?\8fÇÃ)
-   (#x6d67 ?\8fÇÂ)
-   (#x6d6f ?\8fÇÃ)
-   (#x6d70 ?\8fÇÄ)
-   (#x6d7c ?\8fÇÅ)
-   (#x6d82 ?\8fÇÆ)
-   (#x6d87 ?\8fÇÇ)
-   (#x6d91 ?\8fÇÈ)
-   (#x6d92 ?\8fÇÉ)
-   (#x6d94 ?\8fÇÊ)
-   (#x6d96 ?\8fÇË)
-   (#x6d97 ?\8fÇÌ)
-   (#x6d98 ?\8fÇÃ)
-   (#x6daa ?\8fÇÎ)
-   (#x6dac ?\8fÇÃ)
-   (#x6db4 ?\8fÇÃ)
-   (#x6db7 ?\8fÇÑ)
-   (#x6db9 ?\8fÇÒ)
-   (#x6dbd ?\8fÇÓ)
-   (#x6dbf ?\8fÇÔ)
-   (#x6dc4 ?\8fÇÕ)
-   (#x6dc8 ?\8fÇÖ)
-   (#x6dca ?\8fÇ×)
-   (#x6dce ?\8fÇØ)
-   (#x6dcf ?\8fÇÙ)
-   (#x6dd6 ?\8fÇÚ)
-   (#x6ddb ?\8fÇÛ)
-   (#x6ddd ?\8fÇÜ)
-   (#x6ddf ?\8fÇÃ)
-   (#x6de0 ?\8fÇÞ)
-   (#x6de2 ?\8fÇß)
-   (#x6de5 ?\8fÇà)
-   (#x6de9 ?\8fÇá)
-   (#x6def ?\8fÇâ)
-   (#x6df0 ?\8fÇã)
-   (#x6df4 ?\8fÇä)
-   (#x6df6 ?\8fÇå)
-   (#x6dfc ?\8fÇæ)
-   (#x6e00 ?\8fÇç)
-   (#x6e04 ?\8fÇè)
-   (#x6e1e ?\8fÇé)
-   (#x6e22 ?\8fÇê)
-   (#x6e27 ?\8fÇë)
-   (#x6e32 ?\8fÇì)
-   (#x6e36 ?\8fÇí)
-   (#x6e39 ?\8fÇî)
-   (#x6e3b ?\8fÇï)
-   (#x6e3c ?\8fÇð)
-   (#x6e44 ?\8fÇñ)
-   (#x6e45 ?\8fÇò)
-   (#x6e48 ?\8fÇó)
-   (#x6e49 ?\8fÇô)
-   (#x6e4b ?\8fÇõ)
-   (#x6e4f ?\8fÇö)
-   (#x6e51 ?\8fÇ÷)
-   (#x6e52 ?\8fÇø)
-   (#x6e53 ?\8fÇù)
-   (#x6e54 ?\8fÇú)
-   (#x6e57 ?\8fÇû)
-   (#x6e5c ?\8fÇü)
-   (#x6e5d ?\8fÇý)
-   (#x6e5e ?\8fÇþ)
-   (#x6e62 ?\8fÈ¡)
-   (#x6e63 ?\8fÈ¢)
-   (#x6e68 ?\8fÈ£)
-   (#x6e73 ?\8fȤ)
-   (#x6e7b ?\8fÈ¥)
-   (#x6e7d ?\8fȦ)
-   (#x6e8d ?\8fȧ)
-   (#x6e93 ?\8fȨ)
-   (#x6e99 ?\8fÈ©)
-   (#x6ea0 ?\8fȪ)
-   (#x6ea7 ?\8fÈ«)
-   (#x6ead ?\8fȬ)
-   (#x6eae ?\8fÈ­)
-   (#x6eb1 ?\8fÈ®)
-   (#x6eb3 ?\8fȯ)
-   (#x6ebb ?\8fÈ°)
-   (#x6ebf ?\8fȱ)
-   (#x6ec0 ?\8fȲ)
-   (#x6ec1 ?\8fȳ)
-   (#x6ec3 ?\8fÈ´)
-   (#x6ec7 ?\8fȵ)
-   (#x6ec8 ?\8fȶ)
-   (#x6eca ?\8fÈ·)
-   (#x6ecd ?\8fȸ)
-   (#x6ece ?\8fȹ)
-   (#x6ecf ?\8fȺ)
-   (#x6eeb ?\8fÈ»)
-   (#x6eed ?\8fȼ)
-   (#x6eee ?\8fȽ)
-   (#x6ef9 ?\8fȾ)
-   (#x6efb ?\8fÈ¿)
-   (#x6efd ?\8fÈÀ)
-   (#x6f04 ?\8fÈÃ)
-   (#x6f08 ?\8fÈÂ)
-   (#x6f0a ?\8fÈÃ)
-   (#x6f0c ?\8fÈÄ)
-   (#x6f0d ?\8fÈÅ)
-   (#x6f16 ?\8fÈÆ)
-   (#x6f18 ?\8fÈÇ)
-   (#x6f1a ?\8fÈÈ)
-   (#x6f1b ?\8fÈÉ)
-   (#x6f26 ?\8fÈÊ)
-   (#x6f29 ?\8fÈË)
-   (#x6f2a ?\8fÈÌ)
-   (#x6f2d ?\8fÈÓ)
-   (#x6f2f ?\8fÈÃ)
-   (#x6f30 ?\8fÈÎ)
-   (#x6f33 ?\8fÈÃ)
-   (#x6f36 ?\8fÈÃ)
-   (#x6f3b ?\8fÈÑ)
-   (#x6f3c ?\8fÈÒ)
-   (#x6f4f ?\8fÈÔ)
-   (#x6f51 ?\8fÈÕ)
-   (#x6f52 ?\8fÈÖ)
-   (#x6f53 ?\8fÈ×)
-   (#x6f57 ?\8fÈØ)
-   (#x6f59 ?\8fÈÙ)
-   (#x6f5a ?\8fÈÚ)
-   (#x6f5d ?\8fÈÛ)
-   (#x6f5e ?\8fÈÜ)
-   (#x6f61 ?\8fÈÃ)
-   (#x6f62 ?\8fÈÞ)
-   (#x6f68 ?\8fÈß)
-   (#x6f6c ?\8fÈà)
-   (#x6f7d ?\8fÈá)
-   (#x6f7e ?\8fÈâ)
-   (#x6f83 ?\8fÈã)
-   (#x6f87 ?\8fÈä)
-   (#x6f88 ?\8fÈå)
-   (#x6f8b ?\8fÈæ)
-   (#x6f8c ?\8fÈç)
-   (#x6f8d ?\8fÈè)
-   (#x6f90 ?\8fÈé)
-   (#x6f92 ?\8fÈê)
-   (#x6f93 ?\8fÈë)
-   (#x6f94 ?\8fÈì)
-   (#x6f96 ?\8fÈí)
-   (#x6f9a ?\8fÈî)
-   (#x6f9f ?\8fÈï)
-   (#x6fa0 ?\8fÈð)
-   (#x6fa5 ?\8fÈñ)
-   (#x6fa6 ?\8fÈò)
-   (#x6fa7 ?\8fÈó)
-   (#x6fa8 ?\8fÈô)
-   (#x6fae ?\8fÈõ)
-   (#x6faf ?\8fÈö)
-   (#x6fb0 ?\8fÈ÷)
-   (#x6fb5 ?\8fÈø)
-   (#x6fb6 ?\8fÈù)
-   (#x6fbc ?\8fÈú)
-   (#x6fc5 ?\8fÈû)
-   (#x6fc7 ?\8fÈü)
-   (#x6fc8 ?\8fÈý)
-   (#x6fca ?\8fÈþ)
-   (#x6fda ?\8fÉ¡)
-   (#x6fde ?\8fÉ¢)
-   (#x6fe8 ?\8fÉ£)
-   (#x6fe9 ?\8fɤ)
-   (#x6ff0 ?\8fÉ¥)
-   (#x6ff5 ?\8fɦ)
-   (#x6ff9 ?\8fɧ)
-   (#x6ffc ?\8fɨ)
-   (#x6ffd ?\8fÉ©)
-   (#x7000 ?\8fɪ)
-   (#x7005 ?\8fÉ«)
-   (#x7006 ?\8fɬ)
-   (#x7007 ?\8fÉ­)
-   (#x700d ?\8fÉ®)
-   (#x7017 ?\8fɯ)
-   (#x7020 ?\8fÉ°)
-   (#x7023 ?\8fɱ)
-   (#x702f ?\8fɲ)
-   (#x7034 ?\8fɳ)
-   (#x7037 ?\8fÉ´)
-   (#x7039 ?\8fɵ)
-   (#x703c ?\8fɶ)
-   (#x7043 ?\8fÉ·)
-   (#x7044 ?\8fɸ)
-   (#x7048 ?\8fɹ)
-   (#x7049 ?\8fɺ)
-   (#x704a ?\8fÉ»)
-   (#x704b ?\8fɼ)
-   (#x704e ?\8fÉÃ)
-   (#x7054 ?\8fɽ)
-   (#x7055 ?\8fɾ)
-   (#x705d ?\8fÉ¿)
-   (#x705e ?\8fÉÀ)
-   (#x7064 ?\8fÉÂ)
-   (#x7065 ?\8fÉÃ)
-   (#x706c ?\8fÉÄ)
-   (#x706e ?\8fÉÅ)
-   (#x7075 ?\8fÉÆ)
-   (#x7076 ?\8fÉÇ)
-   (#x707e ?\8fÉÈ)
-   (#x7081 ?\8fÉÉ)
-   (#x7085 ?\8fÉÊ)
-   (#x7086 ?\8fÉË)
-   (#x7094 ?\8fÉÌ)
-   (#x7095 ?\8fÉÃ)
-   (#x7096 ?\8fÉÎ)
-   (#x7097 ?\8fÉÃ)
-   (#x7098 ?\8fÉÃ)
-   (#x709b ?\8fÉÑ)
-   (#x70a4 ?\8fÉÒ)
-   (#x70ab ?\8fÉÓ)
-   (#x70b0 ?\8fÉÔ)
-   (#x70b1 ?\8fÉÕ)
-   (#x70b4 ?\8fÉÖ)
-   (#x70b7 ?\8fÉ×)
-   (#x70ca ?\8fÉØ)
-   (#x70d1 ?\8fÉÙ)
-   (#x70d3 ?\8fÉÚ)
-   (#x70d4 ?\8fÉÛ)
-   (#x70d5 ?\8fÉÜ)
-   (#x70d6 ?\8fÉÃ)
-   (#x70d8 ?\8fÉÞ)
-   (#x70dc ?\8fÉß)
-   (#x70e4 ?\8fÉà)
-   (#x70fa ?\8fÉá)
-   (#x7103 ?\8fÉâ)
-   (#x7104 ?\8fÉã)
-   (#x7105 ?\8fÉä)
-   (#x7106 ?\8fÉå)
-   (#x7107 ?\8fÉæ)
-   (#x710b ?\8fÉç)
-   (#x710c ?\8fÉè)
-   (#x710f ?\8fÉé)
-   (#x711e ?\8fÉê)
-   (#x7120 ?\8fÉë)
-   (#x712b ?\8fÉì)
-   (#x712d ?\8fÉí)
-   (#x712f ?\8fÉî)
-   (#x7130 ?\8fÉï)
-   (#x7131 ?\8fÉð)
-   (#x7138 ?\8fÉñ)
-   (#x7141 ?\8fÉò)
-   (#x7145 ?\8fÉó)
-   (#x7146 ?\8fÉô)
-   (#x7147 ?\8fÉõ)
-   (#x714a ?\8fÉö)
-   (#x714b ?\8fÉ÷)
-   (#x7150 ?\8fÉø)
-   (#x7152 ?\8fÉù)
-   (#x7157 ?\8fÉú)
-   (#x715a ?\8fÉû)
-   (#x715c ?\8fÉü)
-   (#x715e ?\8fÉý)
-   (#x7160 ?\8fÉþ)
-   (#x7168 ?\8fÊ¡)
-   (#x7179 ?\8fÊ¢)
-   (#x7180 ?\8fÊ£)
-   (#x7185 ?\8fʤ)
-   (#x7187 ?\8fÊ¥)
-   (#x718c ?\8fʦ)
-   (#x7192 ?\8fʧ)
-   (#x719a ?\8fʨ)
-   (#x719b ?\8fÊ©)
-   (#x71a0 ?\8fʪ)
-   (#x71a2 ?\8fÊ«)
-   (#x71af ?\8fʬ)
-   (#x71b0 ?\8fÊ­)
-   (#x71b2 ?\8fÊ®)
-   (#x71b3 ?\8fʯ)
-   (#x71ba ?\8fÊ°)
-   (#x71bf ?\8fʱ)
-   (#x71c0 ?\8fʲ)
-   (#x71c1 ?\8fʳ)
-   (#x71c4 ?\8fÊ´)
-   (#x71cb ?\8fʵ)
-   (#x71cc ?\8fʶ)
-   (#x71d3 ?\8fÊ·)
-   (#x71d6 ?\8fʸ)
-   (#x71d9 ?\8fʹ)
-   (#x71da ?\8fʺ)
-   (#x71dc ?\8fÊ»)
-   (#x71f8 ?\8fʼ)
-   (#x71fe ?\8fʽ)
-   (#x7200 ?\8fʾ)
-   (#x7207 ?\8fÊ¿)
-   (#x7208 ?\8fÊÀ)
-   (#x7209 ?\8fÊÃ)
-   (#x7213 ?\8fÊÂ)
-   (#x7217 ?\8fÊÃ)
-   (#x721a ?\8fÊÄ)
-   (#x721d ?\8fÊÅ)
-   (#x721f ?\8fÊÆ)
-   (#x7224 ?\8fÊÇ)
-   (#x722b ?\8fÊÈ)
-   (#x722f ?\8fÊÉ)
-   (#x7234 ?\8fÊÊ)
-   (#x7238 ?\8fÊË)
-   (#x7239 ?\8fÊÌ)
-   (#x7241 ?\8fÊÃ)
-   (#x7242 ?\8fÊÎ)
-   (#x7243 ?\8fÊÃ)
-   (#x7245 ?\8fÊÃ)
-   (#x724e ?\8fÊÑ)
-   (#x724f ?\8fÊÒ)
-   (#x7250 ?\8fÊÓ)
-   (#x7253 ?\8fÊÔ)
-   (#x7255 ?\8fÊÕ)
-   (#x7256 ?\8fÊÖ)
-   (#x725a ?\8fÊ×)
-   (#x725c ?\8fÊØ)
-   (#x725e ?\8fÊÙ)
-   (#x7260 ?\8fÊÚ)
-   (#x7263 ?\8fÊÛ)
-   (#x7268 ?\8fÊÜ)
-   (#x726b ?\8fÊÃ)
-   (#x726e ?\8fÊÞ)
-   (#x726f ?\8fÊß)
-   (#x7271 ?\8fÊà)
-   (#x7277 ?\8fÊá)
-   (#x7278 ?\8fÊâ)
-   (#x727b ?\8fÊã)
-   (#x727c ?\8fÊä)
-   (#x727f ?\8fÊå)
-   (#x7284 ?\8fÊæ)
-   (#x7289 ?\8fÊç)
-   (#x728d ?\8fÊè)
-   (#x728e ?\8fÊé)
-   (#x7293 ?\8fÊê)
-   (#x729b ?\8fÊë)
-   (#x72a8 ?\8fÊì)
-   (#x72ad ?\8fÊí)
-   (#x72ae ?\8fÊî)
-   (#x72b1 ?\8fÊï)
-   (#x72b4 ?\8fÊð)
-   (#x72be ?\8fÊñ)
-   (#x72c1 ?\8fÊò)
-   (#x72c7 ?\8fÊó)
-   (#x72c9 ?\8fÊô)
-   (#x72cc ?\8fÊõ)
-   (#x72d5 ?\8fÊö)
-   (#x72d6 ?\8fÊ÷)
-   (#x72d8 ?\8fÊø)
-   (#x72df ?\8fÊù)
-   (#x72e5 ?\8fÊú)
-   (#x72f3 ?\8fÊû)
-   (#x72f4 ?\8fÊü)
-   (#x72fa ?\8fÊý)
-   (#x72fb ?\8fÊþ)
-   (#x72fe ?\8fË¡)
-   (#x7302 ?\8fË¢)
-   (#x7304 ?\8fË£)
-   (#x7305 ?\8fˤ)
-   (#x7307 ?\8fË¥)
-   (#x730b ?\8f˦)
-   (#x730d ?\8f˧)
-   (#x7312 ?\8f˨)
-   (#x7313 ?\8fË©)
-   (#x7318 ?\8f˪)
-   (#x7319 ?\8fË«)
-   (#x731e ?\8fˬ)
-   (#x7322 ?\8fË­)
-   (#x7324 ?\8fË®)
-   (#x7327 ?\8f˯)
-   (#x7328 ?\8fË°)
-   (#x732c ?\8f˱)
-   (#x7331 ?\8f˲)
-   (#x7332 ?\8f˳)
-   (#x7335 ?\8fË´)
-   (#x733a ?\8f˵)
-   (#x733b ?\8f˶)
-   (#x733d ?\8fË·)
-   (#x7343 ?\8f˸)
-   (#x734d ?\8f˹)
-   (#x7350 ?\8f˺)
-   (#x7352 ?\8fË»)
-   (#x7356 ?\8f˼)
-   (#x7358 ?\8f˽)
-   (#x735d ?\8f˾)
-   (#x735e ?\8fË¿)
-   (#x735f ?\8fËÀ)
-   (#x7360 ?\8fËÃ)
-   (#x7366 ?\8fËÂ)
-   (#x7367 ?\8fËÃ)
-   (#x7369 ?\8fËÄ)
-   (#x736b ?\8fËÅ)
-   (#x736c ?\8fËÆ)
-   (#x736e ?\8fËÇ)
-   (#x736f ?\8fËÈ)
-   (#x7371 ?\8fËÉ)
-   (#x7377 ?\8fËÊ)
-   (#x7379 ?\8fËË)
-   (#x737c ?\8fËÌ)
-   (#x7380 ?\8fËÃ)
-   (#x7381 ?\8fËÎ)
-   (#x7383 ?\8fËÃ)
-   (#x7385 ?\8fËÃ)
-   (#x7386 ?\8fËÑ)
-   (#x738e ?\8fËÒ)
-   (#x7390 ?\8fËÓ)
-   (#x7393 ?\8fËÔ)
-   (#x7395 ?\8fËÕ)
-   (#x7397 ?\8fËÖ)
-   (#x7398 ?\8fË×)
-   (#x739c ?\8fËØ)
-   (#x739e ?\8fËÙ)
-   (#x739f ?\8fËÚ)
-   (#x73a0 ?\8fËÛ)
-   (#x73a2 ?\8fËÜ)
-   (#x73a5 ?\8fËÃ)
-   (#x73a6 ?\8fËÞ)
-   (#x73aa ?\8fËß)
-   (#x73ab ?\8fËà)
-   (#x73ad ?\8fËá)
-   (#x73b5 ?\8fËâ)
-   (#x73b7 ?\8fËã)
-   (#x73b9 ?\8fËä)
-   (#x73bc ?\8fËå)
-   (#x73bd ?\8fËæ)
-   (#x73bf ?\8fËç)
-   (#x73c5 ?\8fËè)
-   (#x73c6 ?\8fËé)
-   (#x73c9 ?\8fËê)
-   (#x73cb ?\8fËë)
-   (#x73cc ?\8fËì)
-   (#x73cf ?\8fËí)
-   (#x73d2 ?\8fËî)
-   (#x73d3 ?\8fËï)
-   (#x73d6 ?\8fËð)
-   (#x73d9 ?\8fËñ)
-   (#x73dd ?\8fËò)
-   (#x73e1 ?\8fËó)
-   (#x73e3 ?\8fËô)
-   (#x73e6 ?\8fËõ)
-   (#x73e7 ?\8fËö)
-   (#x73e9 ?\8fË÷)
-   (#x73f4 ?\8fËø)
-   (#x73f5 ?\8fËù)
-   (#x73f7 ?\8fËú)
-   (#x73f9 ?\8fËû)
-   (#x73fa ?\8fËü)
-   (#x73fb ?\8fËý)
-   (#x73fd ?\8fËþ)
-   (#x73ff ?\8fÌ¡)
-   (#x7400 ?\8fÌ¢)
-   (#x7401 ?\8fÌ£)
-   (#x7404 ?\8f̤)
-   (#x7407 ?\8fÌ¥)
-   (#x740a ?\8f̦)
-   (#x7411 ?\8f̧)
-   (#x741a ?\8f̨)
-   (#x741b ?\8fÌ©)
-   (#x7424 ?\8f̪)
-   (#x7426 ?\8fÌ«)
-   (#x7428 ?\8f̬)
-   (#x7429 ?\8fÌ­)
-   (#x742a ?\8fÌ®)
-   (#x742b ?\8f̯)
-   (#x742c ?\8fÌ°)
-   (#x742d ?\8f̱)
-   (#x742e ?\8f̲)
-   (#x742f ?\8f̳)
-   (#x7430 ?\8fÌ´)
-   (#x7431 ?\8f̵)
-   (#x7439 ?\8f̶)
-   (#x7440 ?\8fÌ·)
-   (#x7443 ?\8f̸)
-   (#x7444 ?\8f̹)
-   (#x7446 ?\8f̺)
-   (#x7447 ?\8fÌ»)
-   (#x744b ?\8f̼)
-   (#x744d ?\8f̽)
-   (#x7451 ?\8f̾)
-   (#x7452 ?\8fÌ¿)
-   (#x7457 ?\8fÌÀ)
-   (#x745d ?\8fÃŒÃ)
-   (#x7462 ?\8fÌÂ)
-   (#x7466 ?\8fÌÃ)
-   (#x7467 ?\8fÌÄ)
-   (#x7468 ?\8fÌÅ)
-   (#x746b ?\8fÌÆ)
-   (#x746d ?\8fÌÇ)
-   (#x746e ?\8fÌÈ)
-   (#x7471 ?\8fÌÉ)
-   (#x7472 ?\8fÌÊ)
-   (#x7480 ?\8fÌË)
-   (#x7481 ?\8fÌÌ)
-   (#x7485 ?\8fÃŒÃ)
-   (#x7486 ?\8fÌÎ)
-   (#x7487 ?\8fÃŒÃ)
-   (#x7489 ?\8fÃŒÃ)
-   (#x748f ?\8fÌÑ)
-   (#x7490 ?\8fÌÒ)
-   (#x7491 ?\8fÌÓ)
-   (#x7492 ?\8fÌÔ)
-   (#x7498 ?\8fÌÕ)
-   (#x7499 ?\8fÌÖ)
-   (#x749a ?\8fÌ×)
-   (#x749c ?\8fÌØ)
-   (#x749f ?\8fÌÙ)
-   (#x74a0 ?\8fÌÚ)
-   (#x74a1 ?\8fÌÛ)
-   (#x74a3 ?\8fÌÜ)
-   (#x74a6 ?\8fÃŒÃ)
-   (#x74a8 ?\8fÌÞ)
-   (#x74a9 ?\8fÌß)
-   (#x74aa ?\8fÌà)
-   (#x74ab ?\8fÌá)
-   (#x74ae ?\8fÌâ)
-   (#x74af ?\8fÌã)
-   (#x74b1 ?\8fÌä)
-   (#x74b2 ?\8fÌå)
-   (#x74b5 ?\8fÌæ)
-   (#x74b9 ?\8fÌç)
-   (#x74bb ?\8fÌè)
-   (#x74bf ?\8fÌé)
-   (#x74c8 ?\8fÌê)
-   (#x74c9 ?\8fÌë)
-   (#x74cc ?\8fÌì)
-   (#x74d0 ?\8fÌí)
-   (#x74d3 ?\8fÌî)
-   (#x74d8 ?\8fÌï)
-   (#x74da ?\8fÌð)
-   (#x74db ?\8fÌñ)
-   (#x74de ?\8fÌò)
-   (#x74df ?\8fÌó)
-   (#x74e4 ?\8fÌô)
-   (#x74e8 ?\8fÌõ)
-   (#x74ea ?\8fÌö)
-   (#x74eb ?\8fÌ÷)
-   (#x74ef ?\8fÌø)
-   (#x74f4 ?\8fÌù)
-   (#x74fa ?\8fÌú)
-   (#x74fb ?\8fÌû)
-   (#x74fc ?\8fÌü)
-   (#x74ff ?\8fÌý)
-   (#x7506 ?\8fÌþ)
-   (#x7512 ?\8fá)
-   (#x7516 ?\8fâ)
-   (#x7517 ?\8fã)
-   (#x7520 ?\8fä)
-   (#x7521 ?\8fÃÂ¥)
-   (#x7524 ?\8fæ)
-   (#x7527 ?\8fç)
-   (#x7529 ?\8fè)
-   (#x752a ?\8fé)
-   (#x752f ?\8fê)
-   (#x7536 ?\8fë)
-   (#x7539 ?\8fì)
-   (#x753d ?\8fí)
-   (#x753e ?\8fî)
-   (#x753f ?\8fï)
-   (#x7540 ?\8fð)
-   (#x7543 ?\8fñ)
-   (#x7547 ?\8fò)
-   (#x7548 ?\8fó)
-   (#x754e ?\8fô)
-   (#x7550 ?\8fõ)
-   (#x7552 ?\8fö)
-   (#x7557 ?\8f÷)
-   (#x755e ?\8fø)
-   (#x755f ?\8fù)
-   (#x7561 ?\8fú)
-   (#x756f ?\8fû)
-   (#x7571 ?\8fü)
-   (#x7579 ?\8fý)
-   (#x757a ?\8fþ)
-   (#x757b ?\8fÿ)
-   (#x757c ?\8fÃÀ)
-   (#x757d ?\8fÃÃ)
-   (#x757e ?\8fÃÂ)
-   (#x7581 ?\8fÃÃ)
-   (#x7585 ?\8fÃÄ)
-   (#x7590 ?\8fÃÃ…)
-   (#x7592 ?\8fÃÆ)
-   (#x7593 ?\8fÃÇ)
-   (#x7595 ?\8fÃÈ)
-   (#x7599 ?\8fÃÉ)
-   (#x759c ?\8fÃÊ)
-   (#x75a2 ?\8fÃË)
-   (#x75a4 ?\8fÃÃŒ)
-   (#x75b4 ?\8fÃÃ)
-   (#x75ba ?\8fÃÃŽ)
-   (#x75bf ?\8fÃÃ)
-   (#x75c0 ?\8fÃÃ)
-   (#x75c1 ?\8fÃÑ)
-   (#x75c4 ?\8fÃÃ’)
-   (#x75c6 ?\8fÃÓ)
-   (#x75cc ?\8fÃÔ)
-   (#x75ce ?\8fÃÕ)
-   (#x75cf ?\8fÃÖ)
-   (#x75d7 ?\8fÃ×)
-   (#x75dc ?\8fÃØ)
-   (#x75df ?\8fÃÙ)
-   (#x75e0 ?\8fÃÚ)
-   (#x75e1 ?\8fÃÛ)
-   (#x75e4 ?\8fÃÃœ)
-   (#x75e7 ?\8fÃÃ)
-   (#x75ec ?\8fÃÞ)
-   (#x75ee ?\8fÃß)
-   (#x75ef ?\8fÃà)
-   (#x75f1 ?\8fÃá)
-   (#x75f9 ?\8fÃâ)
-   (#x7600 ?\8fÃã)
-   (#x7602 ?\8fÃä)
-   (#x7603 ?\8fÃÃ¥)
-   (#x7604 ?\8fÃæ)
-   (#x7607 ?\8fÃç)
-   (#x7608 ?\8fÃè)
-   (#x760a ?\8fÃé)
-   (#x760c ?\8fÃê)
-   (#x760f ?\8fÃë)
-   (#x7612 ?\8fÃì)
-   (#x7613 ?\8fÃí)
-   (#x7615 ?\8fÃî)
-   (#x7616 ?\8fÃï)
-   (#x7619 ?\8fÃð)
-   (#x761b ?\8fÃñ)
-   (#x761c ?\8fÃò)
-   (#x761d ?\8fÃó)
-   (#x761e ?\8fÃô)
-   (#x7623 ?\8fÃõ)
-   (#x7625 ?\8fÃö)
-   (#x7626 ?\8fÃ÷)
-   (#x7629 ?\8fÃø)
-   (#x762d ?\8fÃù)
-   (#x7632 ?\8fÃú)
-   (#x7633 ?\8fÃû)
-   (#x7635 ?\8fÃü)
-   (#x7638 ?\8fÃý)
-   (#x7639 ?\8fÃþ)
-   (#x763a ?\8fΡ)
-   (#x763c ?\8f΢)
-   (#x7640 ?\8fΤ)
-   (#x7641 ?\8fÃŽÂ¥)
-   (#x7643 ?\8fΦ)
-   (#x7644 ?\8fΧ)
-   (#x7645 ?\8fΨ)
-   (#x7649 ?\8fΩ)
-   (#x764a ?\8fΣ)
-   (#x764b ?\8fΪ)
-   (#x7655 ?\8fΫ)
-   (#x7659 ?\8fά)
-   (#x765f ?\8fέ)
-   (#x7664 ?\8fή)
-   (#x7665 ?\8fί)
-   (#x766d ?\8fΰ)
-   (#x766e ?\8fα)
-   (#x766f ?\8fβ)
-   (#x7671 ?\8fγ)
-   (#x7674 ?\8fδ)
-   (#x7681 ?\8fε)
-   (#x7685 ?\8fζ)
-   (#x768c ?\8fη)
-   (#x768d ?\8fθ)
-   (#x7695 ?\8fι)
-   (#x769b ?\8fκ)
-   (#x769c ?\8fλ)
-   (#x769d ?\8fμ)
-   (#x769f ?\8fν)
-   (#x76a0 ?\8fξ)
-   (#x76a2 ?\8fο)
-   (#x76a3 ?\8fÎÀ)
-   (#x76a4 ?\8fÃŽÃ)
-   (#x76a5 ?\8fÎÂ)
-   (#x76a6 ?\8fÎÃ)
-   (#x76a7 ?\8fÎÄ)
-   (#x76a8 ?\8fÃŽÃ…)
-   (#x76aa ?\8fÎÆ)
-   (#x76ad ?\8fÎÇ)
-   (#x76bd ?\8fÎÈ)
-   (#x76c1 ?\8fÎÉ)
-   (#x76c5 ?\8fÎÊ)
-   (#x76c9 ?\8fÎË)
-   (#x76cb ?\8fÃŽÃŒ)
-   (#x76cc ?\8fÃŽÃ)
-   (#x76ce ?\8fÃŽÃŽ)
-   (#x76d4 ?\8fÃŽÃ)
-   (#x76d9 ?\8fÃŽÃ)
-   (#x76e0 ?\8fÎÑ)
-   (#x76e6 ?\8fÃŽÃ’)
-   (#x76e8 ?\8fÎÓ)
-   (#x76ec ?\8fÎÔ)
-   (#x76f0 ?\8fÎÕ)
-   (#x76f1 ?\8fÎÖ)
-   (#x76f6 ?\8fÎ×)
-   (#x76f9 ?\8fÎØ)
-   (#x76fc ?\8fÎÙ)
-   (#x7700 ?\8fÎÚ)
-   (#x7706 ?\8fÎÛ)
-   (#x770a ?\8fÃŽÃœ)
-   (#x770e ?\8fÃŽÃ)
-   (#x7712 ?\8fÎÞ)
-   (#x7714 ?\8fÎß)
-   (#x7715 ?\8fÎà)
-   (#x7717 ?\8fÎá)
-   (#x7719 ?\8fÎâ)
-   (#x771a ?\8fÎã)
-   (#x771c ?\8fÎä)
-   (#x7722 ?\8fÃŽÃ¥)
-   (#x7728 ?\8fÎæ)
-   (#x772d ?\8fÎç)
-   (#x772e ?\8fÎè)
-   (#x772f ?\8fÎé)
-   (#x7734 ?\8fÎê)
-   (#x7735 ?\8fÎë)
-   (#x7736 ?\8fÎì)
-   (#x7739 ?\8fÎí)
-   (#x773d ?\8fÎî)
-   (#x773e ?\8fÎï)
-   (#x7742 ?\8fÎð)
-   (#x7745 ?\8fÎñ)
-   (#x7746 ?\8fÎò)
-   (#x774a ?\8fÎó)
-   (#x774d ?\8fÎô)
-   (#x774e ?\8fÎõ)
-   (#x774f ?\8fÎö)
-   (#x7752 ?\8fÎ÷)
-   (#x7756 ?\8fÎø)
-   (#x7757 ?\8fÎù)
-   (#x775c ?\8fÎú)
-   (#x775e ?\8fÎû)
-   (#x775f ?\8fÎü)
-   (#x7760 ?\8fÎý)
-   (#x7762 ?\8fÎþ)
-   (#x7764 ?\8fá)
-   (#x7767 ?\8fâ)
-   (#x776a ?\8fã)
-   (#x776c ?\8fä)
-   (#x7770 ?\8fÃÂ¥)
-   (#x7772 ?\8fæ)
-   (#x7773 ?\8fç)
-   (#x7774 ?\8fè)
-   (#x777a ?\8fé)
-   (#x777d ?\8fê)
-   (#x7780 ?\8fë)
-   (#x7784 ?\8fì)
-   (#x778c ?\8fí)
-   (#x778d ?\8fî)
-   (#x7794 ?\8fï)
-   (#x7795 ?\8fð)
-   (#x7796 ?\8fñ)
-   (#x779a ?\8fò)
-   (#x779f ?\8fó)
-   (#x77a2 ?\8fô)
-   (#x77a7 ?\8fõ)
-   (#x77aa ?\8fö)
-   (#x77ae ?\8f÷)
-   (#x77af ?\8fø)
-   (#x77b1 ?\8fù)
-   (#x77b5 ?\8fú)
-   (#x77be ?\8fû)
-   (#x77c3 ?\8fü)
-   (#x77c9 ?\8fý)
-   (#x77d1 ?\8fþ)
-   (#x77d2 ?\8fÿ)
-   (#x77d5 ?\8fÃÀ)
-   (#x77d9 ?\8fÃÃ)
-   (#x77de ?\8fÃÂ)
-   (#x77df ?\8fÃÃ)
-   (#x77e0 ?\8fÃÄ)
-   (#x77e4 ?\8fÃÃ…)
-   (#x77e6 ?\8fÃÆ)
-   (#x77ea ?\8fÃÇ)
-   (#x77ec ?\8fÃÈ)
-   (#x77f0 ?\8fÃÉ)
-   (#x77f1 ?\8fÃÊ)
-   (#x77f4 ?\8fÃË)
-   (#x77f8 ?\8fÃÃŒ)
-   (#x77fb ?\8fÃÃ)
-   (#x7805 ?\8fÃÃŽ)
-   (#x7806 ?\8fÃÃ)
-   (#x7809 ?\8fÃÃ)
-   (#x780d ?\8fÃÑ)
-   (#x780e ?\8fÃÃ’)
-   (#x7811 ?\8fÃÓ)
-   (#x781d ?\8fÃÔ)
-   (#x7821 ?\8fÃÕ)
-   (#x7822 ?\8fÃÖ)
-   (#x7823 ?\8fÃ×)
-   (#x782d ?\8fÃØ)
-   (#x782e ?\8fÃÙ)
-   (#x7830 ?\8fÃÚ)
-   (#x7835 ?\8fÃÛ)
-   (#x7837 ?\8fÃÃœ)
-   (#x7843 ?\8fÃÃ)
-   (#x7844 ?\8fÃÞ)
-   (#x7847 ?\8fÃß)
-   (#x7848 ?\8fÃà)
-   (#x784c ?\8fÃá)
-   (#x784e ?\8fÃâ)
-   (#x7852 ?\8fÃã)
-   (#x785c ?\8fÃä)
-   (#x785e ?\8fÃÃ¥)
-   (#x7860 ?\8fÃæ)
-   (#x7861 ?\8fÃç)
-   (#x7863 ?\8fÃè)
-   (#x7864 ?\8fÃé)
-   (#x7868 ?\8fÃê)
-   (#x786a ?\8fÃë)
-   (#x786e ?\8fÃì)
-   (#x787a ?\8fÃí)
-   (#x787e ?\8fÃî)
-   (#x788a ?\8fÃï)
-   (#x788f ?\8fÃð)
-   (#x7894 ?\8fÃñ)
-   (#x7898 ?\8fÃò)
-   (#x789d ?\8fÃô)
-   (#x789e ?\8fÃõ)
-   (#x789f ?\8fÃö)
-   (#x78a1 ?\8fÃó)
-   (#x78a4 ?\8fÃ÷)
-   (#x78a8 ?\8fÃø)
-   (#x78ac ?\8fÃù)
-   (#x78ad ?\8fÃú)
-   (#x78b0 ?\8fÃû)
-   (#x78b1 ?\8fÃü)
-   (#x78b2 ?\8fÃý)
-   (#x78b3 ?\8fÃþ)
-   (#x78bb ?\8fá)
-   (#x78bd ?\8fâ)
-   (#x78bf ?\8fã)
-   (#x78c7 ?\8fä)
-   (#x78c8 ?\8fÃÂ¥)
-   (#x78c9 ?\8fæ)
-   (#x78cc ?\8fç)
-   (#x78ce ?\8fè)
-   (#x78d2 ?\8fé)
-   (#x78d3 ?\8fê)
-   (#x78d5 ?\8fë)
-   (#x78d6 ?\8fì)
-   (#x78db ?\8fî)
-   (#x78df ?\8fï)
-   (#x78e0 ?\8fð)
-   (#x78e1 ?\8fñ)
-   (#x78e4 ?\8fí)
-   (#x78e6 ?\8fò)
-   (#x78ea ?\8fó)
-   (#x78f2 ?\8fô)
-   (#x78f3 ?\8fõ)
-   (#x78f6 ?\8f÷)
-   (#x78f7 ?\8fø)
-   (#x78fa ?\8fù)
-   (#x78fb ?\8fú)
-   (#x78ff ?\8fû)
-   (#x7900 ?\8fö)
-   (#x7906 ?\8fü)
-   (#x790c ?\8fý)
-   (#x7910 ?\8fþ)
-   (#x791a ?\8fÿ)
-   (#x791c ?\8fÃÀ)
-   (#x791e ?\8fÃÃ)
-   (#x791f ?\8fÃÂ)
-   (#x7920 ?\8fÃÃ)
-   (#x7925 ?\8fÃÄ)
-   (#x7927 ?\8fÃÃ…)
-   (#x7929 ?\8fÃÆ)
-   (#x792d ?\8fÃÇ)
-   (#x7931 ?\8fÃÈ)
-   (#x7934 ?\8fÃÉ)
-   (#x7935 ?\8fÃÊ)
-   (#x793b ?\8fÃË)
-   (#x793d ?\8fÃÃŒ)
-   (#x793f ?\8fÃÃ)
-   (#x7944 ?\8fÃÃŽ)
-   (#x7945 ?\8fÃÃ)
-   (#x7946 ?\8fÃÃ)
-   (#x794a ?\8fÃÑ)
-   (#x794b ?\8fÃÃ’)
-   (#x794f ?\8fÃÓ)
-   (#x7951 ?\8fÃÔ)
-   (#x7954 ?\8fÃÕ)
-   (#x7958 ?\8fÃÖ)
-   (#x795b ?\8fÃ×)
-   (#x795c ?\8fÃØ)
-   (#x7967 ?\8fÃÙ)
-   (#x7969 ?\8fÃÚ)
-   (#x796b ?\8fÃÛ)
-   (#x7972 ?\8fÃÃœ)
-   (#x7979 ?\8fÃÃ)
-   (#x797b ?\8fÃÞ)
-   (#x797c ?\8fÃß)
-   (#x797e ?\8fÃà)
-   (#x798b ?\8fÃá)
-   (#x798c ?\8fÃâ)
-   (#x7991 ?\8fÃã)
-   (#x7993 ?\8fÃä)
-   (#x7994 ?\8fÃÃ¥)
-   (#x7995 ?\8fÃæ)
-   (#x7996 ?\8fÃç)
-   (#x7998 ?\8fÃè)
-   (#x799b ?\8fÃé)
-   (#x799c ?\8fÃê)
-   (#x79a1 ?\8fÃë)
-   (#x79a8 ?\8fÃì)
-   (#x79a9 ?\8fÃí)
-   (#x79ab ?\8fÃî)
-   (#x79af ?\8fÃï)
-   (#x79b1 ?\8fÃð)
-   (#x79b4 ?\8fÃñ)
-   (#x79b8 ?\8fÃò)
-   (#x79bb ?\8fÃó)
-   (#x79c2 ?\8fÃô)
-   (#x79c4 ?\8fÃõ)
-   (#x79c7 ?\8fÃö)
-   (#x79c8 ?\8fÃ÷)
-   (#x79ca ?\8fÃø)
-   (#x79cf ?\8fÃù)
-   (#x79d4 ?\8fÃú)
-   (#x79d6 ?\8fÃû)
-   (#x79da ?\8fÃü)
-   (#x79dd ?\8fÃý)
-   (#x79de ?\8fÃþ)
-   (#x79e0 ?\8fÑ¡)
-   (#x79e2 ?\8fÑ¢)
-   (#x79e5 ?\8fÑ£)
-   (#x79ea ?\8fѤ)
-   (#x79eb ?\8fÑ¥)
-   (#x79ed ?\8fѦ)
-   (#x79f1 ?\8fѧ)
-   (#x79f8 ?\8fѨ)
-   (#x79fc ?\8fÑ©)
-   (#x7a02 ?\8fѪ)
-   (#x7a03 ?\8fÑ«)
-   (#x7a07 ?\8fѬ)
-   (#x7a09 ?\8fÑ­)
-   (#x7a0a ?\8fÑ®)
-   (#x7a0c ?\8fѯ)
-   (#x7a11 ?\8fÑ°)
-   (#x7a15 ?\8fѱ)
-   (#x7a1b ?\8fѲ)
-   (#x7a1e ?\8fѳ)
-   (#x7a21 ?\8fÑ´)
-   (#x7a27 ?\8fѵ)
-   (#x7a2b ?\8fѶ)
-   (#x7a2d ?\8fÑ·)
-   (#x7a2f ?\8fѸ)
-   (#x7a30 ?\8fѹ)
-   (#x7a34 ?\8fѺ)
-   (#x7a35 ?\8fÑ»)
-   (#x7a38 ?\8fѼ)
-   (#x7a39 ?\8fѽ)
-   (#x7a3a ?\8fѾ)
-   (#x7a44 ?\8fÑ¿)
-   (#x7a45 ?\8fÑÀ)
-   (#x7a47 ?\8fÑÃ)
-   (#x7a48 ?\8fÑÂ)
-   (#x7a4c ?\8fÑÃ)
-   (#x7a55 ?\8fÑÄ)
-   (#x7a56 ?\8fÑÅ)
-   (#x7a59 ?\8fÑÆ)
-   (#x7a5c ?\8fÑÇ)
-   (#x7a5d ?\8fÑÈ)
-   (#x7a5f ?\8fÑÉ)
-   (#x7a60 ?\8fÑÊ)
-   (#x7a65 ?\8fÑË)
-   (#x7a67 ?\8fÑÌ)
-   (#x7a6a ?\8fÑÃ)
-   (#x7a6d ?\8fÑÎ)
-   (#x7a75 ?\8fÑÃ)
-   (#x7a78 ?\8fÑÃ)
-   (#x7a7e ?\8fÑÑ)
-   (#x7a80 ?\8fÑÒ)
-   (#x7a82 ?\8fÑÓ)
-   (#x7a85 ?\8fÑÔ)
-   (#x7a86 ?\8fÑÕ)
-   (#x7a8a ?\8fÑÖ)
-   (#x7a8b ?\8fÑ×)
-   (#x7a90 ?\8fÑØ)
-   (#x7a91 ?\8fÑÙ)
-   (#x7a94 ?\8fÑÚ)
-   (#x7a9e ?\8fÑÛ)
-   (#x7aa0 ?\8fÑÜ)
-   (#x7aa3 ?\8fÑÃ)
-   (#x7aac ?\8fÑÞ)
-   (#x7ab3 ?\8fÑß)
-   (#x7ab5 ?\8fÑà)
-   (#x7ab9 ?\8fÑá)
-   (#x7abb ?\8fÑâ)
-   (#x7abc ?\8fÑã)
-   (#x7ac6 ?\8fÑä)
-   (#x7ac9 ?\8fÑå)
-   (#x7acc ?\8fÑæ)
-   (#x7ace ?\8fÑç)
-   (#x7ad1 ?\8fÑè)
-   (#x7adb ?\8fÑé)
-   (#x7ae8 ?\8fÑê)
-   (#x7ae9 ?\8fÑë)
-   (#x7aeb ?\8fÑì)
-   (#x7aec ?\8fÑí)
-   (#x7af1 ?\8fÑî)
-   (#x7af4 ?\8fÑï)
-   (#x7afb ?\8fÑð)
-   (#x7afd ?\8fÑñ)
-   (#x7afe ?\8fÑò)
-   (#x7b07 ?\8fÑó)
-   (#x7b14 ?\8fÑô)
-   (#x7b1f ?\8fÑõ)
-   (#x7b23 ?\8fÑö)
-   (#x7b27 ?\8fÑ÷)
-   (#x7b29 ?\8fÑø)
-   (#x7b2a ?\8fÑù)
-   (#x7b2b ?\8fÑú)
-   (#x7b2d ?\8fÑû)
-   (#x7b2e ?\8fÑü)
-   (#x7b2f ?\8fÑý)
-   (#x7b30 ?\8fÑþ)
-   (#x7b31 ?\8fÒ¡)
-   (#x7b34 ?\8fÒ¢)
-   (#x7b3d ?\8fÒ£)
-   (#x7b3f ?\8fÒ¤)
-   (#x7b40 ?\8fÃ’Â¥)
-   (#x7b41 ?\8fÒ¦)
-   (#x7b47 ?\8fÒ§)
-   (#x7b4e ?\8fÒ¨)
-   (#x7b55 ?\8fÒ©)
-   (#x7b60 ?\8fÒª)
-   (#x7b64 ?\8fÒ«)
-   (#x7b66 ?\8fÒ¬)
-   (#x7b69 ?\8fÒ­)
-   (#x7b6a ?\8fÒ®)
-   (#x7b6d ?\8fÒ¯)
-   (#x7b6f ?\8fÒ°)
-   (#x7b72 ?\8fÒ±)
-   (#x7b73 ?\8fÒ²)
-   (#x7b77 ?\8fÒ³)
-   (#x7b84 ?\8fÒ´)
-   (#x7b89 ?\8fÒµ)
-   (#x7b8e ?\8fÒ¶)
-   (#x7b90 ?\8fÒ·)
-   (#x7b91 ?\8fÒ¸)
-   (#x7b96 ?\8fÒ¹)
-   (#x7b9b ?\8fÒº)
-   (#x7b9e ?\8fÒ»)
-   (#x7ba0 ?\8fÒ¼)
-   (#x7ba5 ?\8fÒ½)
-   (#x7bac ?\8fÒ¾)
-   (#x7baf ?\8fÒ¿)
-   (#x7bb0 ?\8fÒÀ)
-   (#x7bb2 ?\8fÃ’Ã)
-   (#x7bb5 ?\8fÒÂ)
-   (#x7bb6 ?\8fÒÃ)
-   (#x7bba ?\8fÒÄ)
-   (#x7bbb ?\8fÃ’Ã…)
-   (#x7bbc ?\8fÒÆ)
-   (#x7bbd ?\8fÒÇ)
-   (#x7bc2 ?\8fÒÈ)
-   (#x7bc5 ?\8fÒÉ)
-   (#x7bc8 ?\8fÒÊ)
-   (#x7bca ?\8fÒË)
-   (#x7bd4 ?\8fÃ’ÃŒ)
-   (#x7bd6 ?\8fÃ’Ã)
-   (#x7bd7 ?\8fÃ’ÃŽ)
-   (#x7bd9 ?\8fÃ’Ã)
-   (#x7bda ?\8fÃ’Ã)
-   (#x7bdb ?\8fÒÑ)
-   (#x7be8 ?\8fÃ’Ã’)
-   (#x7bea ?\8fÒÓ)
-   (#x7bf2 ?\8fÒÔ)
-   (#x7bf4 ?\8fÒÕ)
-   (#x7bf5 ?\8fÒÖ)
-   (#x7bf8 ?\8fÒ×)
-   (#x7bf9 ?\8fÒØ)
-   (#x7bfa ?\8fÒÙ)
-   (#x7bfc ?\8fÒÚ)
-   (#x7bfe ?\8fÒÛ)
-   (#x7c01 ?\8fÃ’Ãœ)
-   (#x7c02 ?\8fÃ’Ã)
-   (#x7c03 ?\8fÒÞ)
-   (#x7c04 ?\8fÒß)
-   (#x7c06 ?\8fÒà)
-   (#x7c09 ?\8fÒá)
-   (#x7c0b ?\8fÒâ)
-   (#x7c0c ?\8fÒã)
-   (#x7c0e ?\8fÒä)
-   (#x7c0f ?\8fÃ’Ã¥)
-   (#x7c19 ?\8fÒæ)
-   (#x7c1b ?\8fÒç)
-   (#x7c20 ?\8fÒè)
-   (#x7c25 ?\8fÒé)
-   (#x7c26 ?\8fÒê)
-   (#x7c28 ?\8fÒë)
-   (#x7c2c ?\8fÒì)
-   (#x7c31 ?\8fÒí)
-   (#x7c33 ?\8fÒî)
-   (#x7c34 ?\8fÒï)
-   (#x7c36 ?\8fÒð)
-   (#x7c39 ?\8fÒñ)
-   (#x7c3a ?\8fÒò)
-   (#x7c46 ?\8fÒó)
-   (#x7c4a ?\8fÒô)
-   (#x7c51 ?\8fÒö)
-   (#x7c52 ?\8fÒ÷)
-   (#x7c53 ?\8fÒø)
-   (#x7c55 ?\8fÒõ)
-   (#x7c59 ?\8fÒù)
-   (#x7c5a ?\8fÒú)
-   (#x7c5b ?\8fÒû)
-   (#x7c5c ?\8fÒü)
-   (#x7c5d ?\8fÒý)
-   (#x7c5e ?\8fÒþ)
-   (#x7c61 ?\8fÓ¡)
-   (#x7c63 ?\8fÓ¢)
-   (#x7c67 ?\8fÓ£)
-   (#x7c69 ?\8fÓ¤)
-   (#x7c6d ?\8fÓ¥)
-   (#x7c6e ?\8fÓ¦)
-   (#x7c70 ?\8fÓ§)
-   (#x7c72 ?\8fÓ¨)
-   (#x7c79 ?\8fÓ©)
-   (#x7c7c ?\8fÓª)
-   (#x7c7d ?\8fÓ«)
-   (#x7c86 ?\8fÓ¬)
-   (#x7c87 ?\8fÓ­)
-   (#x7c8f ?\8fÓ®)
-   (#x7c94 ?\8fÓ¯)
-   (#x7c9e ?\8fÓ°)
-   (#x7ca0 ?\8fÓ±)
-   (#x7ca6 ?\8fÓ²)
-   (#x7cb0 ?\8fÓ³)
-   (#x7cb6 ?\8fÓ´)
-   (#x7cb7 ?\8fÓµ)
-   (#x7cba ?\8fÓ¶)
-   (#x7cbb ?\8fÓ·)
-   (#x7cbc ?\8fÓ¸)
-   (#x7cbf ?\8fÓ¹)
-   (#x7cc4 ?\8fÓº)
-   (#x7cc7 ?\8fÓ»)
-   (#x7cc8 ?\8fÓ¼)
-   (#x7cc9 ?\8fÓ½)
-   (#x7ccd ?\8fÓ¾)
-   (#x7ccf ?\8fÓ¿)
-   (#x7cd3 ?\8fÓÀ)
-   (#x7cd4 ?\8fÓÃ)
-   (#x7cd5 ?\8fÓÂ)
-   (#x7cd7 ?\8fÓÃ)
-   (#x7cd9 ?\8fÓÄ)
-   (#x7cda ?\8fÓÅ)
-   (#x7cdd ?\8fÓÆ)
-   (#x7ce6 ?\8fÓÇ)
-   (#x7ce9 ?\8fÓÈ)
-   (#x7ceb ?\8fÓÉ)
-   (#x7cf5 ?\8fÓÊ)
-   (#x7d03 ?\8fÓË)
-   (#x7d07 ?\8fÓÌ)
-   (#x7d08 ?\8fÓÃ)
-   (#x7d09 ?\8fÓÎ)
-   (#x7d0f ?\8fÓÃ)
-   (#x7d11 ?\8fÓÃ)
-   (#x7d12 ?\8fÓÑ)
-   (#x7d13 ?\8fÓÒ)
-   (#x7d16 ?\8fÓÓ)
-   (#x7d1d ?\8fÓÔ)
-   (#x7d1e ?\8fÓÕ)
-   (#x7d23 ?\8fÓÖ)
-   (#x7d26 ?\8fÓ×)
-   (#x7d2a ?\8fÓØ)
-   (#x7d2d ?\8fÓÙ)
-   (#x7d31 ?\8fÓÚ)
-   (#x7d3c ?\8fÓÛ)
-   (#x7d3d ?\8fÓÜ)
-   (#x7d3e ?\8fÓÃ)
-   (#x7d40 ?\8fÓÞ)
-   (#x7d41 ?\8fÓß)
-   (#x7d47 ?\8fÓà)
-   (#x7d48 ?\8fÓá)
-   (#x7d4d ?\8fÓâ)
-   (#x7d51 ?\8fÓã)
-   (#x7d53 ?\8fÓä)
-   (#x7d57 ?\8fÓå)
-   (#x7d59 ?\8fÓæ)
-   (#x7d5a ?\8fÓç)
-   (#x7d5c ?\8fÓè)
-   (#x7d5d ?\8fÓé)
-   (#x7d65 ?\8fÓê)
-   (#x7d67 ?\8fÓë)
-   (#x7d6a ?\8fÓì)
-   (#x7d70 ?\8fÓí)
-   (#x7d78 ?\8fÓî)
-   (#x7d7a ?\8fÓï)
-   (#x7d7b ?\8fÓð)
-   (#x7d7f ?\8fÓñ)
-   (#x7d81 ?\8fÓò)
-   (#x7d82 ?\8fÓó)
-   (#x7d83 ?\8fÓô)
-   (#x7d85 ?\8fÓõ)
-   (#x7d86 ?\8fÓö)
-   (#x7d88 ?\8fÓ÷)
-   (#x7d8b ?\8fÓø)
-   (#x7d8c ?\8fÓù)
-   (#x7d8d ?\8fÓú)
-   (#x7d91 ?\8fÓû)
-   (#x7d96 ?\8fÓü)
-   (#x7d97 ?\8fÓý)
-   (#x7d9d ?\8fÓþ)
-   (#x7d9e ?\8fÔ¡)
-   (#x7da6 ?\8fÔ¢)
-   (#x7da7 ?\8fÔ£)
-   (#x7daa ?\8fÔ¤)
-   (#x7db3 ?\8fÔ¥)
-   (#x7db6 ?\8fÔ¦)
-   (#x7db7 ?\8fÔ§)
-   (#x7db9 ?\8fÔ¨)
-   (#x7dc2 ?\8fÔ©)
-   (#x7dc3 ?\8fÔª)
-   (#x7dc4 ?\8fÔ«)
-   (#x7dc5 ?\8fÔ¬)
-   (#x7dc6 ?\8fÔ­)
-   (#x7dcc ?\8fÔ®)
-   (#x7dcd ?\8fÔ¯)
-   (#x7dce ?\8fÔ°)
-   (#x7dd7 ?\8fÔ±)
-   (#x7dd9 ?\8fÔ²)
-   (#x7de2 ?\8fÔ´)
-   (#x7de5 ?\8fÔµ)
-   (#x7de6 ?\8fÔ¶)
-   (#x7dea ?\8fÔ·)
-   (#x7deb ?\8fÔ¸)
-   (#x7ded ?\8fÔ¹)
-   (#x7df1 ?\8fÔº)
-   (#x7df5 ?\8fÔ»)
-   (#x7df6 ?\8fÔ¼)
-   (#x7df9 ?\8fÔ½)
-   (#x7dfa ?\8fÔ¾)
-   (#x7e00 ?\8fÔ³)
-   (#x7e08 ?\8fÔ¿)
-   (#x7e10 ?\8fÔÀ)
-   (#x7e11 ?\8fÔÃ)
-   (#x7e15 ?\8fÔÂ)
-   (#x7e17 ?\8fÔÃ)
-   (#x7e1c ?\8fÔÄ)
-   (#x7e1d ?\8fÔÅ)
-   (#x7e20 ?\8fÔÆ)
-   (#x7e27 ?\8fÔÇ)
-   (#x7e28 ?\8fÔÈ)
-   (#x7e2c ?\8fÔÉ)
-   (#x7e2d ?\8fÔÊ)
-   (#x7e2f ?\8fÔË)
-   (#x7e33 ?\8fÔÌ)
-   (#x7e36 ?\8fÔÃ)
-   (#x7e3f ?\8fÔÎ)
-   (#x7e44 ?\8fÔÃ)
-   (#x7e45 ?\8fÔÃ)
-   (#x7e47 ?\8fÔÑ)
-   (#x7e4e ?\8fÔÒ)
-   (#x7e50 ?\8fÔÓ)
-   (#x7e52 ?\8fÔÔ)
-   (#x7e58 ?\8fÔÕ)
-   (#x7e5f ?\8fÔÖ)
-   (#x7e61 ?\8fÔ×)
-   (#x7e62 ?\8fÔØ)
-   (#x7e65 ?\8fÔÙ)
-   (#x7e6b ?\8fÔÚ)
-   (#x7e6e ?\8fÔÛ)
-   (#x7e6f ?\8fÔÜ)
-   (#x7e73 ?\8fÔÃ)
-   (#x7e78 ?\8fÔÞ)
-   (#x7e7e ?\8fÔß)
-   (#x7e81 ?\8fÔà)
-   (#x7e86 ?\8fÔá)
-   (#x7e87 ?\8fÔâ)
-   (#x7e8a ?\8fÔã)
-   (#x7e8d ?\8fÔä)
-   (#x7e91 ?\8fÔå)
-   (#x7e95 ?\8fÔæ)
-   (#x7e98 ?\8fÔç)
-   (#x7e9a ?\8fÔè)
-   (#x7e9d ?\8fÔé)
-   (#x7e9e ?\8fÔê)
-   (#x7f3b ?\8fÔì)
-   (#x7f3c ?\8fÔë)
-   (#x7f3d ?\8fÔí)
-   (#x7f3e ?\8fÔî)
-   (#x7f3f ?\8fÔï)
-   (#x7f43 ?\8fÔð)
-   (#x7f44 ?\8fÔñ)
-   (#x7f47 ?\8fÔò)
-   (#x7f4f ?\8fÔó)
-   (#x7f52 ?\8fÔô)
-   (#x7f53 ?\8fÔõ)
-   (#x7f5b ?\8fÔö)
-   (#x7f5c ?\8fÔ÷)
-   (#x7f5d ?\8fÔø)
-   (#x7f61 ?\8fÔù)
-   (#x7f63 ?\8fÔú)
-   (#x7f64 ?\8fÔû)
-   (#x7f65 ?\8fÔü)
-   (#x7f66 ?\8fÔý)
-   (#x7f6d ?\8fÔþ)
-   (#x7f71 ?\8fÕ¡)
-   (#x7f7d ?\8fÕ¢)
-   (#x7f7e ?\8fÕ£)
-   (#x7f7f ?\8fÕ¤)
-   (#x7f80 ?\8fÕ¥)
-   (#x7f8b ?\8fÕ¦)
-   (#x7f8d ?\8fÕ§)
-   (#x7f8f ?\8fÕ¨)
-   (#x7f90 ?\8fÕ©)
-   (#x7f91 ?\8fÕª)
-   (#x7f96 ?\8fÕ«)
-   (#x7f97 ?\8fÕ¬)
-   (#x7f9c ?\8fÕ­)
-   (#x7fa1 ?\8fÕ®)
-   (#x7fa2 ?\8fÕ¯)
-   (#x7fa6 ?\8fÕ°)
-   (#x7faa ?\8fÕ±)
-   (#x7fad ?\8fÕ²)
-   (#x7fb4 ?\8fÕ³)
-   (#x7fbc ?\8fÕ´)
-   (#x7fbf ?\8fÕµ)
-   (#x7fc0 ?\8fÕ¶)
-   (#x7fc3 ?\8fÕ·)
-   (#x7fc8 ?\8fÕ¸)
-   (#x7fce ?\8fÕ¹)
-   (#x7fcf ?\8fÕº)
-   (#x7fdb ?\8fÕ»)
-   (#x7fdf ?\8fÕ¼)
-   (#x7fe3 ?\8fÕ½)
-   (#x7fe5 ?\8fÕ¾)
-   (#x7fe8 ?\8fÕ¿)
-   (#x7fec ?\8fÕÀ)
-   (#x7fee ?\8fÕÃ)
-   (#x7fef ?\8fÕÂ)
-   (#x7ff2 ?\8fÕÃ)
-   (#x7ffa ?\8fÕÄ)
-   (#x7ffd ?\8fÕÅ)
-   (#x7ffe ?\8fÕÆ)
-   (#x7fff ?\8fÕÇ)
-   (#x8007 ?\8fÕÈ)
-   (#x8008 ?\8fÕÉ)
-   (#x800a ?\8fÕÊ)
-   (#x800d ?\8fÕË)
-   (#x800e ?\8fÕÌ)
-   (#x800f ?\8fÕÃ)
-   (#x8011 ?\8fÕÎ)
-   (#x8013 ?\8fÕÃ)
-   (#x8014 ?\8fÕÃ)
-   (#x8016 ?\8fÕÑ)
-   (#x801d ?\8fÕÒ)
-   (#x801e ?\8fÕÓ)
-   (#x801f ?\8fÕÔ)
-   (#x8020 ?\8fÕÕ)
-   (#x8024 ?\8fÕÖ)
-   (#x8026 ?\8fÕ×)
-   (#x802c ?\8fÕØ)
-   (#x802e ?\8fÕÙ)
-   (#x8030 ?\8fÕÚ)
-   (#x8034 ?\8fÕÛ)
-   (#x8035 ?\8fÕÜ)
-   (#x8037 ?\8fÕÃ)
-   (#x8039 ?\8fÕÞ)
-   (#x803a ?\8fÕß)
-   (#x803c ?\8fÕà)
-   (#x803e ?\8fÕá)
-   (#x8040 ?\8fÕâ)
-   (#x8044 ?\8fÕã)
-   (#x8060 ?\8fÕä)
-   (#x8064 ?\8fÕå)
-   (#x8066 ?\8fÕæ)
-   (#x806d ?\8fÕç)
-   (#x8071 ?\8fÕè)
-   (#x8075 ?\8fÕé)
-   (#x8081 ?\8fÕê)
-   (#x8088 ?\8fÕë)
-   (#x808e ?\8fÕì)
-   (#x809c ?\8fÕí)
-   (#x809e ?\8fÕî)
-   (#x80a6 ?\8fÕï)
-   (#x80a7 ?\8fÕð)
-   (#x80ab ?\8fÕñ)
-   (#x80b8 ?\8fÕò)
-   (#x80b9 ?\8fÕó)
-   (#x80c8 ?\8fÕô)
-   (#x80cd ?\8fÕõ)
-   (#x80cf ?\8fÕö)
-   (#x80d2 ?\8fÕ÷)
-   (#x80d4 ?\8fÕø)
-   (#x80d5 ?\8fÕù)
-   (#x80d7 ?\8fÕú)
-   (#x80d8 ?\8fÕû)
-   (#x80e0 ?\8fÕü)
-   (#x80ed ?\8fÕý)
-   (#x80ee ?\8fÕþ)
-   (#x80f0 ?\8fÖ¡)
-   (#x80f2 ?\8fÖ¢)
-   (#x80f3 ?\8fÖ£)
-   (#x80f6 ?\8fÖ¤)
-   (#x80f9 ?\8fÖ¥)
-   (#x80fa ?\8fÖ¦)
-   (#x80fe ?\8fÖ§)
-   (#x8103 ?\8fÖ¨)
-   (#x810b ?\8fÖ©)
-   (#x8116 ?\8fÖª)
-   (#x8117 ?\8fÖ«)
-   (#x8118 ?\8fÖ¬)
-   (#x811c ?\8fÖ­)
-   (#x811e ?\8fÖ®)
-   (#x8120 ?\8fÖ¯)
-   (#x8124 ?\8fÖ°)
-   (#x8127 ?\8fÖ±)
-   (#x812c ?\8fÖ²)
-   (#x8130 ?\8fÖ³)
-   (#x8135 ?\8fÖ´)
-   (#x813a ?\8fÖµ)
-   (#x813c ?\8fÖ¶)
-   (#x8145 ?\8fÖ·)
-   (#x8147 ?\8fÖ¸)
-   (#x814a ?\8fÖ¹)
-   (#x814c ?\8fÖº)
-   (#x8152 ?\8fÖ»)
-   (#x8157 ?\8fÖ¼)
-   (#x8160 ?\8fÖ½)
-   (#x8161 ?\8fÖ¾)
-   (#x8167 ?\8fÖ¿)
-   (#x8168 ?\8fÖÀ)
-   (#x8169 ?\8fÖÃ)
-   (#x816d ?\8fÖÂ)
-   (#x816f ?\8fÖÃ)
-   (#x8177 ?\8fÖÄ)
-   (#x8181 ?\8fÖÅ)
-   (#x8184 ?\8fÖÇ)
-   (#x8185 ?\8fÖÈ)
-   (#x8186 ?\8fÖÉ)
-   (#x818b ?\8fÖÊ)
-   (#x818e ?\8fÖË)
-   (#x8190 ?\8fÖÆ)
-   (#x8196 ?\8fÖÌ)
-   (#x8198 ?\8fÖÃ)
-   (#x819b ?\8fÖÎ)
-   (#x819e ?\8fÖÃ)
-   (#x81a2 ?\8fÖÃ)
-   (#x81ae ?\8fÖÑ)
-   (#x81b2 ?\8fÖÒ)
-   (#x81b4 ?\8fÖÓ)
-   (#x81bb ?\8fÖÔ)
-   (#x81c3 ?\8fÖÖ)
-   (#x81c5 ?\8fÖ×)
-   (#x81ca ?\8fÖØ)
-   (#x81cb ?\8fÖÕ)
-   (#x81ce ?\8fÖÙ)
-   (#x81cf ?\8fÖÚ)
-   (#x81d5 ?\8fÖÛ)
-   (#x81d7 ?\8fÖÜ)
-   (#x81db ?\8fÖÃ)
-   (#x81dd ?\8fÖÞ)
-   (#x81de ?\8fÖß)
-   (#x81e1 ?\8fÖà)
-   (#x81e4 ?\8fÖá)
-   (#x81eb ?\8fÖâ)
-   (#x81ec ?\8fÖã)
-   (#x81f0 ?\8fÖä)
-   (#x81f1 ?\8fÖå)
-   (#x81f2 ?\8fÖæ)
-   (#x81f5 ?\8fÖç)
-   (#x81f6 ?\8fÖè)
-   (#x81f8 ?\8fÖé)
-   (#x81f9 ?\8fÖê)
-   (#x81fd ?\8fÖë)
-   (#x81ff ?\8fÖì)
-   (#x8200 ?\8fÖí)
-   (#x8203 ?\8fÖî)
-   (#x820f ?\8fÖï)
-   (#x8213 ?\8fÖð)
-   (#x8214 ?\8fÖñ)
-   (#x8219 ?\8fÖò)
-   (#x821a ?\8fÖó)
-   (#x821d ?\8fÖô)
-   (#x8221 ?\8fÖõ)
-   (#x8222 ?\8fÖö)
-   (#x8228 ?\8fÖ÷)
-   (#x8232 ?\8fÖø)
-   (#x8234 ?\8fÖù)
-   (#x823a ?\8fÖú)
-   (#x8243 ?\8fÖû)
-   (#x8244 ?\8fÖü)
-   (#x8245 ?\8fÖý)
-   (#x8246 ?\8fÖþ)
-   (#x824b ?\8fס)
-   (#x824e ?\8f×¢)
-   (#x824f ?\8f×£)
-   (#x8251 ?\8fפ)
-   (#x8256 ?\8f×¥)
-   (#x825c ?\8fצ)
-   (#x8260 ?\8fק)
-   (#x8263 ?\8fר)
-   (#x8267 ?\8fש)
-   (#x826d ?\8fת)
-   (#x8274 ?\8f׫)
-   (#x827b ?\8f׬)
-   (#x827d ?\8f×­)
-   (#x827f ?\8f×®)
-   (#x8280 ?\8fׯ)
-   (#x8281 ?\8f×°)
-   (#x8283 ?\8f×±)
-   (#x8284 ?\8fײ)
-   (#x8287 ?\8f׳)
-   (#x8289 ?\8f×´)
-   (#x828a ?\8f×µ)
-   (#x828e ?\8f׶)
-   (#x8291 ?\8f×·)
-   (#x8294 ?\8f׸)
-   (#x8296 ?\8f×¹)
-   (#x8298 ?\8f׺)
-   (#x829a ?\8f×»)
-   (#x829b ?\8f×¼)
-   (#x82a0 ?\8f×½)
-   (#x82a1 ?\8f×¾)
-   (#x82a3 ?\8f׿)
-   (#x82a4 ?\8f×À)
-   (#x82a7 ?\8f×Ã)
-   (#x82a8 ?\8f×Â)
-   (#x82a9 ?\8f×Ã)
-   (#x82aa ?\8f×Ä)
-   (#x82ae ?\8f×Å)
-   (#x82b0 ?\8f×Æ)
-   (#x82b2 ?\8f×Ç)
-   (#x82b4 ?\8f×È)
-   (#x82b7 ?\8f×É)
-   (#x82ba ?\8f×Ê)
-   (#x82bc ?\8f×Ë)
-   (#x82be ?\8f×Ì)
-   (#x82bf ?\8f×Ã)
-   (#x82c6 ?\8f×Î)
-   (#x82d0 ?\8f×Ã)
-   (#x82d5 ?\8f×Ã)
-   (#x82da ?\8f×Ñ)
-   (#x82e0 ?\8f×Ò)
-   (#x82e2 ?\8f×Ó)
-   (#x82e4 ?\8f×Ô)
-   (#x82e8 ?\8f×Õ)
-   (#x82ea ?\8f×Ö)
-   (#x82ed ?\8f××)
-   (#x82ef ?\8f×Ø)
-   (#x82f6 ?\8f×Ù)
-   (#x82f7 ?\8f×Ú)
-   (#x82fd ?\8f×Û)
-   (#x82fe ?\8f×Ü)
-   (#x8300 ?\8f×Ã)
-   (#x8301 ?\8f×Þ)
-   (#x8307 ?\8f×ß)
-   (#x8308 ?\8f×à)
-   (#x830a ?\8f×á)
-   (#x830b ?\8f×â)
-   (#x831b ?\8f×ä)
-   (#x831d ?\8f×å)
-   (#x831e ?\8f×æ)
-   (#x831f ?\8f×ç)
-   (#x8321 ?\8f×è)
-   (#x8322 ?\8f×é)
-   (#x832c ?\8f×ê)
-   (#x832d ?\8f×ë)
-   (#x832e ?\8f×ì)
-   (#x8330 ?\8f×í)
-   (#x8333 ?\8f×î)
-   (#x8337 ?\8f×ï)
-   (#x833a ?\8f×ð)
-   (#x833c ?\8f×ñ)
-   (#x833d ?\8f×ò)
-   (#x8342 ?\8f×ó)
-   (#x8343 ?\8f×ô)
-   (#x8344 ?\8f×õ)
-   (#x8347 ?\8f×ö)
-   (#x834d ?\8f×÷)
-   (#x834e ?\8f×ø)
-   (#x8351 ?\8f×ù)
-   (#x8353 ?\8fؾ)
-   (#x8354 ?\8f×ã)
-   (#x8355 ?\8f×ú)
-   (#x8356 ?\8f×û)
-   (#x8357 ?\8f×ü)
-   (#x8370 ?\8f×ý)
-   (#x8378 ?\8f×þ)
-   (#x837d ?\8fØ¡)
-   (#x837f ?\8fØ¢)
-   (#x8380 ?\8fØ£)
-   (#x8382 ?\8fؤ)
-   (#x8384 ?\8fØ¥)
-   (#x8386 ?\8fئ)
-   (#x838d ?\8fا)
-   (#x8392 ?\8fب)
-   (#x8394 ?\8fØ©)
-   (#x8395 ?\8fت)
-   (#x8398 ?\8fØ«)
-   (#x8399 ?\8fج)
-   (#x839b ?\8fØ­)
-   (#x839c ?\8fØ®)
-   (#x839d ?\8fد)
-   (#x83a6 ?\8fØ°)
-   (#x83a7 ?\8fر)
-   (#x83a9 ?\8fز)
-   (#x83ac ?\8fس)
-   (#x83ad ?\8fØÌ)
-   (#x83be ?\8fØ´)
-   (#x83bf ?\8fص)
-   (#x83c0 ?\8fض)
-   (#x83c7 ?\8fØ·)
-   (#x83c9 ?\8fظ)
-   (#x83cf ?\8fع)
-   (#x83d0 ?\8fغ)
-   (#x83d1 ?\8fØ»)
-   (#x83d4 ?\8fؼ)
-   (#x83dd ?\8fؽ)
-   (#x83e8 ?\8fØ¿)
-   (#x83ea ?\8fØÀ)
-   (#x83f6 ?\8fØÃ)
-   (#x83f8 ?\8fØÂ)
-   (#x83f9 ?\8fØÃ)
-   (#x83fc ?\8fØÄ)
-   (#x8401 ?\8fØÅ)
-   (#x8406 ?\8fØÆ)
-   (#x840a ?\8fØÇ)
-   (#x840f ?\8fØÈ)
-   (#x8411 ?\8fØÉ)
-   (#x8415 ?\8fØÊ)
-   (#x8419 ?\8fØË)
-   (#x842f ?\8fØÃ)
-   (#x8439 ?\8fØÎ)
-   (#x8445 ?\8fØÃ)
-   (#x8447 ?\8fØÃ)
-   (#x8448 ?\8fØÑ)
-   (#x844a ?\8fØÒ)
-   (#x844d ?\8fØÓ)
-   (#x844f ?\8fØÔ)
-   (#x8451 ?\8fØÕ)
-   (#x8452 ?\8fØÖ)
-   (#x8456 ?\8fØ×)
-   (#x8458 ?\8fØØ)
-   (#x8459 ?\8fØÙ)
-   (#x845a ?\8fØÚ)
-   (#x845c ?\8fØÛ)
-   (#x8460 ?\8fØÜ)
-   (#x8464 ?\8fØÃ)
-   (#x8465 ?\8fØÞ)
-   (#x8467 ?\8fØß)
-   (#x846a ?\8fØà)
-   (#x8470 ?\8fØá)
-   (#x8473 ?\8fØâ)
-   (#x8474 ?\8fØã)
-   (#x8476 ?\8fØä)
-   (#x8478 ?\8fØå)
-   (#x847c ?\8fØæ)
-   (#x847d ?\8fØç)
-   (#x8481 ?\8fØè)
-   (#x8485 ?\8fØé)
-   (#x8492 ?\8fØê)
-   (#x8493 ?\8fØë)
-   (#x8495 ?\8fØì)
-   (#x849e ?\8fØí)
-   (#x84a6 ?\8fØî)
-   (#x84a8 ?\8fØï)
-   (#x84a9 ?\8fØð)
-   (#x84aa ?\8fØñ)
-   (#x84af ?\8fØò)
-   (#x84b1 ?\8fØó)
-   (#x84b4 ?\8fØô)
-   (#x84ba ?\8fØõ)
-   (#x84bd ?\8fØö)
-   (#x84be ?\8fØ÷)
-   (#x84c0 ?\8fØø)
-   (#x84c2 ?\8fØù)
-   (#x84c7 ?\8fØú)
-   (#x84c8 ?\8fØû)
-   (#x84cc ?\8fØü)
-   (#x84cf ?\8fØý)
-   (#x84d3 ?\8fØþ)
-   (#x84dc ?\8fÙ¡)
-   (#x84e7 ?\8fÙ¢)
-   (#x84ea ?\8fÙ£)
-   (#x84ef ?\8fÙ¤)
-   (#x84f0 ?\8fÙ¥)
-   (#x84f1 ?\8fÙ¦)
-   (#x84f2 ?\8fÙ§)
-   (#x84f7 ?\8fÙ¨)
-   (#x84fa ?\8fÙª)
-   (#x84fb ?\8fÙ«)
-   (#x84fd ?\8fÙ¬)
-   (#x8502 ?\8fÙ­)
-   (#x8503 ?\8fÙ®)
-   (#x8507 ?\8fÙ¯)
-   (#x850c ?\8fÙ°)
-   (#x850e ?\8fÙ±)
-   (#x8510 ?\8fÙ²)
-   (#x851c ?\8fÙ³)
-   (#x851e ?\8fÙ´)
-   (#x8522 ?\8fÙµ)
-   (#x8523 ?\8fÙ¶)
-   (#x8524 ?\8fÙ·)
-   (#x8525 ?\8fÙ¸)
-   (#x8527 ?\8fÙ¹)
-   (#x852a ?\8fÙº)
-   (#x852b ?\8fÙ»)
-   (#x852f ?\8fÙ¼)
-   (#x8532 ?\8fÙ©)
-   (#x8533 ?\8fÙ½)
-   (#x8534 ?\8fÙ¾)
-   (#x8536 ?\8fÙ¿)
-   (#x853f ?\8fÙÀ)
-   (#x8546 ?\8fÙÃ)
-   (#x854f ?\8fÙÂ)
-   (#x8550 ?\8fÙÃ)
-   (#x8551 ?\8fÙÄ)
-   (#x8552 ?\8fÙÅ)
-   (#x8553 ?\8fÙÆ)
-   (#x8556 ?\8fÙÇ)
-   (#x8559 ?\8fÙÈ)
-   (#x855c ?\8fÙÉ)
-   (#x855d ?\8fÙÊ)
-   (#x855e ?\8fÙË)
-   (#x855f ?\8fÙÌ)
-   (#x8560 ?\8fÙÃ)
-   (#x8561 ?\8fÙÎ)
-   (#x8562 ?\8fÙÃ)
-   (#x8564 ?\8fÙÃ)
-   (#x856b ?\8fÙÑ)
-   (#x856f ?\8fÙÒ)
-   (#x8579 ?\8fÙÓ)
-   (#x857a ?\8fÙÔ)
-   (#x857b ?\8fÙÕ)
-   (#x857d ?\8fÙÖ)
-   (#x857f ?\8fÙ×)
-   (#x8581 ?\8fÙØ)
-   (#x8585 ?\8fÙÙ)
-   (#x8586 ?\8fÙÚ)
-   (#x8589 ?\8fÙÛ)
-   (#x858b ?\8fÙÜ)
-   (#x858c ?\8fÙÃ)
-   (#x858f ?\8fÙÞ)
-   (#x8593 ?\8fÙß)
-   (#x8598 ?\8fÙà)
-   (#x859d ?\8fÙá)
-   (#x859f ?\8fÙâ)
-   (#x85a0 ?\8fÙã)
-   (#x85a2 ?\8fÙä)
-   (#x85a5 ?\8fÙå)
-   (#x85a7 ?\8fÙæ)
-   (#x85ad ?\8fÙô)
-   (#x85b4 ?\8fÙç)
-   (#x85b6 ?\8fÙè)
-   (#x85b7 ?\8fÙé)
-   (#x85b8 ?\8fÙê)
-   (#x85bc ?\8fÙë)
-   (#x85bd ?\8fÙì)
-   (#x85be ?\8fÙí)
-   (#x85bf ?\8fÙî)
-   (#x85c2 ?\8fÙï)
-   (#x85c7 ?\8fÙð)
-   (#x85ca ?\8fÙñ)
-   (#x85cb ?\8fÙò)
-   (#x85ce ?\8fÙó)
-   (#x85d8 ?\8fÙõ)
-   (#x85da ?\8fÙö)
-   (#x85df ?\8fÙ÷)
-   (#x85e0 ?\8fÙø)
-   (#x85e6 ?\8fÙù)
-   (#x85e8 ?\8fÙú)
-   (#x85ed ?\8fÙû)
-   (#x85f3 ?\8fÙü)
-   (#x85f6 ?\8fÙý)
-   (#x85fc ?\8fÙþ)
-   (#x85ff ?\8fÚ¡)
-   (#x8600 ?\8fÚ¢)
-   (#x8604 ?\8fÚ£)
-   (#x8605 ?\8fÚ¤)
-   (#x860d ?\8fÚ¥)
-   (#x860e ?\8fÚ¦)
-   (#x8610 ?\8fÚ§)
-   (#x8611 ?\8fÚ¨)
-   (#x8612 ?\8fÚ©)
-   (#x8618 ?\8fÚª)
-   (#x8619 ?\8fÚ«)
-   (#x861b ?\8fÚ¬)
-   (#x861e ?\8fÚ­)
-   (#x8621 ?\8fÚ®)
-   (#x8627 ?\8fÚ¯)
-   (#x8629 ?\8fÚ°)
-   (#x8636 ?\8fÚ±)
-   (#x8638 ?\8fÚ²)
-   (#x863a ?\8fÚ³)
-   (#x863c ?\8fÚ´)
-   (#x863d ?\8fÚµ)
-   (#x8640 ?\8fÚ¶)
-   (#x8641 ?\8f¸æ)
-   (#x8642 ?\8fÚ·)
-   (#x8646 ?\8fÚ¸)
-   (#x8652 ?\8fÚ¹)
-   (#x8653 ?\8fÚº)
-   (#x8656 ?\8fÚ»)
-   (#x8657 ?\8fÚ¼)
-   (#x8658 ?\8fÚ½)
-   (#x8659 ?\8fÚ¾)
-   (#x865d ?\8fÚ¿)
-   (#x8660 ?\8fÚÀ)
-   (#x8661 ?\8fÚÃ)
-   (#x8662 ?\8fÚÂ)
-   (#x8663 ?\8fÚÃ)
-   (#x8664 ?\8fÚÄ)
-   (#x8669 ?\8fÚÅ)
-   (#x866c ?\8fÚÆ)
-   (#x866f ?\8fÚÇ)
-   (#x8675 ?\8fÚÈ)
-   (#x8676 ?\8fÚÉ)
-   (#x8677 ?\8fÚÊ)
-   (#x867a ?\8fÚË)
-   (#x8688 ?\8fÚí)
-   (#x868d ?\8fÚÌ)
-   (#x8691 ?\8fÚÃ)
-   (#x8696 ?\8fÚÎ)
-   (#x8698 ?\8fÚÃ)
-   (#x869a ?\8fÚÃ)
-   (#x869c ?\8fÚÑ)
-   (#x86a1 ?\8fÚÒ)
-   (#x86a6 ?\8fÚÓ)
-   (#x86a7 ?\8fÚÔ)
-   (#x86a8 ?\8fÚÕ)
-   (#x86ad ?\8fÚÖ)
-   (#x86b1 ?\8fÚ×)
-   (#x86b3 ?\8fÚØ)
-   (#x86b4 ?\8fÚÙ)
-   (#x86b5 ?\8fÚÚ)
-   (#x86b7 ?\8fÚÛ)
-   (#x86b8 ?\8fÚÜ)
-   (#x86b9 ?\8fÚÃ)
-   (#x86bf ?\8fÚÞ)
-   (#x86c0 ?\8fÚß)
-   (#x86c1 ?\8fÚà)
-   (#x86c3 ?\8fÚá)
-   (#x86c5 ?\8fÚâ)
-   (#x86d1 ?\8fÚã)
-   (#x86d2 ?\8fÚä)
-   (#x86d5 ?\8fÚå)
-   (#x86d7 ?\8fÚæ)
-   (#x86da ?\8fÚç)
-   (#x86dc ?\8fÚè)
-   (#x86e0 ?\8fÚé)
-   (#x86e3 ?\8fÚê)
-   (#x86e5 ?\8fÚë)
-   (#x86e7 ?\8fÚì)
-   (#x86fa ?\8fÚî)
-   (#x86fc ?\8fÚï)
-   (#x86fd ?\8fÚð)
-   (#x8704 ?\8fÚñ)
-   (#x8705 ?\8fÚò)
-   (#x8707 ?\8fÚó)
-   (#x870b ?\8fÚô)
-   (#x870e ?\8fÚõ)
-   (#x870f ?\8fÚö)
-   (#x8710 ?\8fÚ÷)
-   (#x8713 ?\8fÚø)
-   (#x8714 ?\8fÚù)
-   (#x8719 ?\8fÚú)
-   (#x871e ?\8fÚû)
-   (#x871f ?\8fÚü)
-   (#x8721 ?\8fÚý)
-   (#x8723 ?\8fÚþ)
-   (#x8728 ?\8fÛ¡)
-   (#x872e ?\8fÛ¢)
-   (#x872f ?\8fÛ£)
-   (#x8731 ?\8fÛ¤)
-   (#x8732 ?\8fÛ¥)
-   (#x8739 ?\8fÛ¦)
-   (#x873a ?\8fÛ§)
-   (#x873c ?\8fÛ¨)
-   (#x873d ?\8fÛ©)
-   (#x873e ?\8fÛª)
-   (#x8740 ?\8fÛ«)
-   (#x8743 ?\8fÛ¬)
-   (#x8745 ?\8fÛ­)
-   (#x874d ?\8fÛ®)
-   (#x8758 ?\8fÛ¯)
-   (#x875d ?\8fÛ°)
-   (#x8761 ?\8fÛ±)
-   (#x8764 ?\8fÛ²)
-   (#x8765 ?\8fÛ³)
-   (#x876f ?\8fÛ´)
-   (#x8771 ?\8fÛµ)
-   (#x8772 ?\8fÛ¶)
-   (#x877b ?\8fÛ·)
-   (#x8783 ?\8fÛ¸)
-   (#x8784 ?\8fÛ¹)
-   (#x8785 ?\8fÛº)
-   (#x8786 ?\8fÛ»)
-   (#x8787 ?\8fÛ¼)
-   (#x8788 ?\8fÛ½)
-   (#x8789 ?\8fÛ¾)
-   (#x878b ?\8fÛ¿)
-   (#x878c ?\8fÛÀ)
-   (#x8790 ?\8fÛÃ)
-   (#x8793 ?\8fÛÂ)
-   (#x8795 ?\8fÛÃ)
-   (#x8797 ?\8fÛÄ)
-   (#x8798 ?\8fÛÅ)
-   (#x8799 ?\8fÛÆ)
-   (#x879e ?\8fÛÇ)
-   (#x87a0 ?\8fÛÈ)
-   (#x87a3 ?\8fÛÉ)
-   (#x87a7 ?\8fÛÊ)
-   (#x87ac ?\8fÛË)
-   (#x87ad ?\8fÛÌ)
-   (#x87ae ?\8fÛÃ)
-   (#x87b1 ?\8fÛÎ)
-   (#x87b5 ?\8fÛÃ)
-   (#x87be ?\8fÛÃ)
-   (#x87bf ?\8fÛÑ)
-   (#x87c1 ?\8fÛÒ)
-   (#x87c8 ?\8fÛÓ)
-   (#x87c9 ?\8fÛÔ)
-   (#x87ca ?\8fÛÕ)
-   (#x87ce ?\8fÛÖ)
-   (#x87d5 ?\8fÛ×)
-   (#x87d6 ?\8fÛØ)
-   (#x87d9 ?\8fÛÙ)
-   (#x87da ?\8fÛÚ)
-   (#x87dc ?\8fÛÛ)
-   (#x87df ?\8fÛÜ)
-   (#x87e2 ?\8fÛÃ)
-   (#x87e3 ?\8fÛÞ)
-   (#x87e4 ?\8fÛß)
-   (#x87ea ?\8fÛà)
-   (#x87eb ?\8fÛá)
-   (#x87ed ?\8fÛâ)
-   (#x87f1 ?\8fÛã)
-   (#x87f3 ?\8fÛä)
-   (#x87f8 ?\8fÛå)
-   (#x87fa ?\8fÛæ)
-   (#x87ff ?\8fÛç)
-   (#x8801 ?\8fÛè)
-   (#x8803 ?\8fÛé)
-   (#x8806 ?\8fÛê)
-   (#x8809 ?\8fÛë)
-   (#x880a ?\8fÛì)
-   (#x880b ?\8fÛí)
-   (#x8810 ?\8fÛî)
-   (#x8812 ?\8fÛð)
-   (#x8813 ?\8fÛñ)
-   (#x8814 ?\8fÛò)
-   (#x8818 ?\8fÛó)
-   (#x8819 ?\8fÛï)
-   (#x881a ?\8fÛô)
-   (#x881b ?\8fÛõ)
-   (#x881c ?\8fÛö)
-   (#x881e ?\8fÛ÷)
-   (#x881f ?\8fÛø)
-   (#x8828 ?\8fÛù)
-   (#x882d ?\8fÛú)
-   (#x882e ?\8fÛû)
-   (#x8830 ?\8fÛü)
-   (#x8832 ?\8fÛý)
-   (#x8835 ?\8fÛþ)
-   (#x883a ?\8fÜ¡)
-   (#x883c ?\8fÜ¢)
-   (#x8841 ?\8fÜ£)
-   (#x8843 ?\8fܤ)
-   (#x8845 ?\8fÜ¥)
-   (#x8848 ?\8fܦ)
-   (#x8849 ?\8fܧ)
-   (#x884a ?\8fܨ)
-   (#x884b ?\8fÜ©)
-   (#x884e ?\8fܪ)
-   (#x8851 ?\8fÜ«)
-   (#x8855 ?\8fܬ)
-   (#x8856 ?\8fÜ­)
-   (#x8858 ?\8fÜ®)
-   (#x885a ?\8fܯ)
-   (#x885c ?\8fÜ°)
-   (#x885f ?\8fܱ)
-   (#x8860 ?\8fܲ)
-   (#x8864 ?\8fܳ)
-   (#x8869 ?\8fÜ´)
-   (#x8871 ?\8fܵ)
-   (#x8879 ?\8fܶ)
-   (#x887b ?\8fÜ·)
-   (#x8880 ?\8fܸ)
-   (#x8898 ?\8fܹ)
-   (#x889a ?\8fܺ)
-   (#x889b ?\8fÜ»)
-   (#x889c ?\8fܼ)
-   (#x889f ?\8fܽ)
-   (#x88a0 ?\8fܾ)
-   (#x88a8 ?\8fÜ¿)
-   (#x88aa ?\8fÜÀ)
-   (#x88ba ?\8fÃœÃ)
-   (#x88bd ?\8fÜÂ)
-   (#x88be ?\8fÜÃ)
-   (#x88c0 ?\8fÜÄ)
-   (#x88ca ?\8fÜÅ)
-   (#x88cb ?\8fÜÆ)
-   (#x88cc ?\8fÜÇ)
-   (#x88cd ?\8fÜÈ)
-   (#x88ce ?\8fÜÉ)
-   (#x88d1 ?\8fÜÊ)
-   (#x88d2 ?\8fÜË)
-   (#x88d3 ?\8fÜÌ)
-   (#x88db ?\8fÃœÃ)
-   (#x88de ?\8fÜÎ)
-   (#x88e7 ?\8fÃœÃ)
-   (#x88ef ?\8fÃœÃ)
-   (#x88f0 ?\8fÜÑ)
-   (#x88f1 ?\8fÜÒ)
-   (#x88f5 ?\8fÜÓ)
-   (#x88f7 ?\8fÜÔ)
-   (#x8901 ?\8fÜÕ)
-   (#x8906 ?\8fÜÖ)
-   (#x890d ?\8fÜ×)
-   (#x890e ?\8fÜØ)
-   (#x890f ?\8fÜÙ)
-   (#x8915 ?\8fÜÚ)
-   (#x8916 ?\8fÜÛ)
-   (#x8918 ?\8fÜÜ)
-   (#x8919 ?\8fÃœÃ)
-   (#x891a ?\8fÜÞ)
-   (#x891c ?\8fÜß)
-   (#x8920 ?\8fÜà)
-   (#x8926 ?\8fÜá)
-   (#x8927 ?\8fÜâ)
-   (#x8928 ?\8fÜã)
-   (#x8930 ?\8fÜä)
-   (#x8931 ?\8fÜå)
-   (#x8932 ?\8fÜæ)
-   (#x8935 ?\8fÜç)
-   (#x8939 ?\8fÜè)
-   (#x893a ?\8fÜé)
-   (#x893e ?\8fÜê)
-   (#x8940 ?\8fÜë)
-   (#x8942 ?\8fÜì)
-   (#x8945 ?\8fÜí)
-   (#x8946 ?\8fÜî)
-   (#x8949 ?\8fÜï)
-   (#x894f ?\8fÜð)
-   (#x8952 ?\8fÜñ)
-   (#x8957 ?\8fÜò)
-   (#x895a ?\8fÜó)
-   (#x895b ?\8fÜô)
-   (#x895c ?\8fÜõ)
-   (#x8961 ?\8fÜö)
-   (#x8962 ?\8fÜ÷)
-   (#x8963 ?\8fÜø)
-   (#x896b ?\8fÜù)
-   (#x896e ?\8fÜú)
-   (#x8970 ?\8fÜû)
-   (#x8973 ?\8fÜü)
-   (#x8975 ?\8fÜý)
-   (#x897a ?\8fÜþ)
-   (#x897b ?\8fá)
-   (#x897c ?\8fâ)
-   (#x897d ?\8fã)
-   (#x8989 ?\8fä)
-   (#x898d ?\8fÃÂ¥)
-   (#x8990 ?\8fæ)
-   (#x8994 ?\8fç)
-   (#x8995 ?\8fè)
-   (#x899b ?\8fé)
-   (#x899c ?\8fê)
-   (#x899f ?\8fë)
-   (#x89a0 ?\8fì)
-   (#x89a5 ?\8fí)
-   (#x89b0 ?\8fî)
-   (#x89b4 ?\8fï)
-   (#x89b5 ?\8fð)
-   (#x89b6 ?\8fñ)
-   (#x89b7 ?\8fò)
-   (#x89bc ?\8fó)
-   (#x89d4 ?\8fô)
-   (#x89d5 ?\8fõ)
-   (#x89d6 ?\8fö)
-   (#x89d7 ?\8f÷)
-   (#x89d8 ?\8fø)
-   (#x89e5 ?\8fù)
-   (#x89e9 ?\8fú)
-   (#x89eb ?\8fû)
-   (#x89ed ?\8fü)
-   (#x89f1 ?\8fý)
-   (#x89f3 ?\8fþ)
-   (#x89f6 ?\8fÿ)
-   (#x89f9 ?\8fÃÀ)
-   (#x89fd ?\8fÃÃ)
-   (#x89ff ?\8fÃÂ)
-   (#x8a04 ?\8fÃÃ)
-   (#x8a05 ?\8fÃÄ)
-   (#x8a07 ?\8fÃÃ…)
-   (#x8a0f ?\8fÃÆ)
-   (#x8a11 ?\8fÃÇ)
-   (#x8a12 ?\8fÃÈ)
-   (#x8a14 ?\8fÃÉ)
-   (#x8a15 ?\8fÃÊ)
-   (#x8a1e ?\8fÃË)
-   (#x8a20 ?\8fÃÃŒ)
-   (#x8a22 ?\8fÃÃ)
-   (#x8a24 ?\8fÃÃŽ)
-   (#x8a26 ?\8fÃÃ)
-   (#x8a2b ?\8fÃÃ)
-   (#x8a2c ?\8fÃÑ)
-   (#x8a2f ?\8fÃÃ’)
-   (#x8a35 ?\8fÃÓ)
-   (#x8a37 ?\8fÃÔ)
-   (#x8a3d ?\8fÃÕ)
-   (#x8a3e ?\8fÃÖ)
-   (#x8a40 ?\8fÃ×)
-   (#x8a43 ?\8fÃØ)
-   (#x8a45 ?\8fÃÙ)
-   (#x8a47 ?\8fÃÚ)
-   (#x8a49 ?\8fÃÛ)
-   (#x8a4d ?\8fÃÃœ)
-   (#x8a4e ?\8fÃÃ)
-   (#x8a53 ?\8fÃÞ)
-   (#x8a56 ?\8fÃß)
-   (#x8a57 ?\8fÃà)
-   (#x8a58 ?\8fÃá)
-   (#x8a5c ?\8fÃâ)
-   (#x8a5d ?\8fÃã)
-   (#x8a61 ?\8fÃä)
-   (#x8a65 ?\8fÃÃ¥)
-   (#x8a67 ?\8fÃæ)
-   (#x8a75 ?\8fÃç)
-   (#x8a76 ?\8fÃè)
-   (#x8a77 ?\8fÃé)
-   (#x8a79 ?\8fÃê)
-   (#x8a7a ?\8fÃë)
-   (#x8a7b ?\8fÃì)
-   (#x8a7e ?\8fÃí)
-   (#x8a7f ?\8fÃî)
-   (#x8a80 ?\8fÃï)
-   (#x8a83 ?\8fÃð)
-   (#x8a86 ?\8fÃñ)
-   (#x8a8b ?\8fÃò)
-   (#x8a8f ?\8fÃó)
-   (#x8a90 ?\8fÃô)
-   (#x8a92 ?\8fÃõ)
-   (#x8a96 ?\8fÃö)
-   (#x8a97 ?\8fÃ÷)
-   (#x8a99 ?\8fÃø)
-   (#x8a9f ?\8fÃù)
-   (#x8aa7 ?\8fÃú)
-   (#x8aa9 ?\8fÃû)
-   (#x8aae ?\8fÃü)
-   (#x8aaf ?\8fÃý)
-   (#x8ab3 ?\8fÃþ)
-   (#x8ab6 ?\8fÞ¡)
-   (#x8ab7 ?\8fÞ¢)
-   (#x8abb ?\8fÞ£)
-   (#x8abe ?\8fÞ¤)
-   (#x8ac3 ?\8fÞ¥)
-   (#x8ac6 ?\8fÞ¦)
-   (#x8ac8 ?\8fÞ§)
-   (#x8ac9 ?\8fÞ¨)
-   (#x8aca ?\8fÞ©)
-   (#x8ad1 ?\8fÞª)
-   (#x8ad3 ?\8fÞ«)
-   (#x8ad4 ?\8fÞ¬)
-   (#x8ad5 ?\8fÞ­)
-   (#x8ad7 ?\8fÞ®)
-   (#x8add ?\8fÞ¯)
-   (#x8adf ?\8fÞ°)
-   (#x8aec ?\8fÞ±)
-   (#x8af0 ?\8fÞ²)
-   (#x8af4 ?\8fÞ³)
-   (#x8af5 ?\8fÞ´)
-   (#x8af6 ?\8fÞµ)
-   (#x8afc ?\8fÞ¶)
-   (#x8aff ?\8fÞ·)
-   (#x8b05 ?\8fÞ¸)
-   (#x8b06 ?\8fÞ¹)
-   (#x8b0a ?\8fÞ¿)
-   (#x8b0b ?\8fÞº)
-   (#x8b11 ?\8fÞ»)
-   (#x8b1c ?\8fÞ¼)
-   (#x8b1e ?\8fÞ½)
-   (#x8b1f ?\8fÞ¾)
-   (#x8b2d ?\8fÞÀ)
-   (#x8b30 ?\8fÞÃ)
-   (#x8b37 ?\8fÞÂ)
-   (#x8b3c ?\8fÞÃ)
-   (#x8b42 ?\8fÞÄ)
-   (#x8b43 ?\8fÞÅ)
-   (#x8b44 ?\8fÞÆ)
-   (#x8b45 ?\8fÞÇ)
-   (#x8b46 ?\8fÞÈ)
-   (#x8b48 ?\8fÞÉ)
-   (#x8b4d ?\8fÞÎ)
-   (#x8b52 ?\8fÞÊ)
-   (#x8b53 ?\8fÞË)
-   (#x8b54 ?\8fÞÌ)
-   (#x8b59 ?\8fÞÃ)
-   (#x8b5e ?\8fÞÃ)
-   (#x8b63 ?\8fÞÃ)
-   (#x8b6d ?\8fÞÑ)
-   (#x8b76 ?\8fÞÒ)
-   (#x8b78 ?\8fÞÓ)
-   (#x8b79 ?\8fÞÔ)
-   (#x8b7c ?\8fÞÕ)
-   (#x8b7e ?\8fÞÖ)
-   (#x8b81 ?\8fÞ×)
-   (#x8b84 ?\8fÞØ)
-   (#x8b85 ?\8fÞÙ)
-   (#x8b8b ?\8fÞÚ)
-   (#x8b8d ?\8fÞÛ)
-   (#x8b8f ?\8fÞÜ)
-   (#x8b94 ?\8fÞÃ)
-   (#x8b95 ?\8fÞÞ)
-   (#x8b9c ?\8fÞß)
-   (#x8b9e ?\8fÞà)
-   (#x8b9f ?\8fÞá)
-   (#x8c38 ?\8fÞâ)
-   (#x8c39 ?\8fÞã)
-   (#x8c3d ?\8fÞä)
-   (#x8c3e ?\8fÞå)
-   (#x8c45 ?\8fÞæ)
-   (#x8c47 ?\8fÞç)
-   (#x8c49 ?\8fÞè)
-   (#x8c4b ?\8fÞé)
-   (#x8c4f ?\8fÞê)
-   (#x8c51 ?\8fÞë)
-   (#x8c53 ?\8fÞì)
-   (#x8c54 ?\8fÞí)
-   (#x8c57 ?\8fÞî)
-   (#x8c58 ?\8fÞï)
-   (#x8c59 ?\8fÞò)
-   (#x8c5b ?\8fÞð)
-   (#x8c5d ?\8fÞñ)
-   (#x8c63 ?\8fÞó)
-   (#x8c64 ?\8fÞô)
-   (#x8c66 ?\8fÞõ)
-   (#x8c68 ?\8fÞö)
-   (#x8c69 ?\8fÞ÷)
-   (#x8c6d ?\8fÞø)
-   (#x8c73 ?\8fÞù)
-   (#x8c75 ?\8fÞú)
-   (#x8c76 ?\8fÞû)
-   (#x8c7b ?\8fÞü)
-   (#x8c7e ?\8fÞý)
-   (#x8c86 ?\8fÞþ)
-   (#x8c87 ?\8fß¡)
-   (#x8c8b ?\8fߢ)
-   (#x8c90 ?\8fߣ)
-   (#x8c92 ?\8fߤ)
-   (#x8c93 ?\8fߥ)
-   (#x8c99 ?\8fߦ)
-   (#x8c9b ?\8fߧ)
-   (#x8c9c ?\8fߨ)
-   (#x8ca4 ?\8fß©)
-   (#x8cb9 ?\8fߪ)
-   (#x8cba ?\8fß«)
-   (#x8cc5 ?\8f߬)
-   (#x8cc6 ?\8fß­)
-   (#x8cc9 ?\8fß®)
-   (#x8ccb ?\8f߯)
-   (#x8ccf ?\8fß°)
-   (#x8cd5 ?\8fß²)
-   (#x8cd6 ?\8fß±)
-   (#x8cd9 ?\8fß³)
-   (#x8cdd ?\8fß´)
-   (#x8ce1 ?\8fßµ)
-   (#x8ce8 ?\8f߶)
-   (#x8cec ?\8fß·)
-   (#x8cef ?\8f߸)
-   (#x8cf0 ?\8fß¹)
-   (#x8cf2 ?\8fߺ)
-   (#x8cf5 ?\8fß»)
-   (#x8cf7 ?\8fß¼)
-   (#x8cf8 ?\8fß½)
-   (#x8cfe ?\8fß¾)
-   (#x8cff ?\8fß¿)
-   (#x8d01 ?\8fßÀ)
-   (#x8d03 ?\8fßÃ)
-   (#x8d09 ?\8fßÂ)
-   (#x8d12 ?\8fßÃ)
-   (#x8d17 ?\8fßÄ)
-   (#x8d1b ?\8fßÅ)
-   (#x8d65 ?\8fßÆ)
-   (#x8d69 ?\8fßÇ)
-   (#x8d6c ?\8fßÈ)
-   (#x8d6e ?\8fßÉ)
-   (#x8d7f ?\8fßÊ)
-   (#x8d82 ?\8fßË)
-   (#x8d84 ?\8fßÌ)
-   (#x8d88 ?\8fßÃ)
-   (#x8d8d ?\8fßÎ)
-   (#x8d90 ?\8fßÃ)
-   (#x8d91 ?\8fßÃ)
-   (#x8d95 ?\8fßÑ)
-   (#x8d9e ?\8fßÒ)
-   (#x8d9f ?\8fßÓ)
-   (#x8da0 ?\8fßÔ)
-   (#x8da6 ?\8fßÕ)
-   (#x8dab ?\8fßÖ)
-   (#x8dac ?\8fß×)
-   (#x8daf ?\8fßØ)
-   (#x8db2 ?\8fßÙ)
-   (#x8db5 ?\8fßÚ)
-   (#x8db7 ?\8fßÛ)
-   (#x8db9 ?\8fßÜ)
-   (#x8dbb ?\8fßÃ)
-   (#x8dbc ?\8fßï)
-   (#x8dc0 ?\8fßÞ)
-   (#x8dc5 ?\8fßß)
-   (#x8dc6 ?\8fßà)
-   (#x8dc7 ?\8fßá)
-   (#x8dc8 ?\8fßâ)
-   (#x8dca ?\8fßã)
-   (#x8dce ?\8fßä)
-   (#x8dd1 ?\8fßå)
-   (#x8dd4 ?\8fßæ)
-   (#x8dd5 ?\8fßç)
-   (#x8dd7 ?\8fßè)
-   (#x8dd9 ?\8fßé)
-   (#x8de4 ?\8fßê)
-   (#x8de5 ?\8fßë)
-   (#x8de7 ?\8fßì)
-   (#x8dec ?\8fßí)
-   (#x8df0 ?\8fßî)
-   (#x8df1 ?\8fßð)
-   (#x8df2 ?\8fßñ)
-   (#x8df4 ?\8fßò)
-   (#x8dfd ?\8fßó)
-   (#x8e01 ?\8fßô)
-   (#x8e04 ?\8fßõ)
-   (#x8e05 ?\8fßö)
-   (#x8e06 ?\8fß÷)
-   (#x8e0b ?\8fßø)
-   (#x8e11 ?\8fßù)
-   (#x8e14 ?\8fßú)
-   (#x8e16 ?\8fßû)
-   (#x8e20 ?\8fßü)
-   (#x8e21 ?\8fßý)
-   (#x8e22 ?\8fßþ)
-   (#x8e23 ?\8fà¡)
-   (#x8e26 ?\8fà¢)
-   (#x8e27 ?\8fà£)
-   (#x8e31 ?\8fà¤)
-   (#x8e33 ?\8fà¥)
-   (#x8e36 ?\8fà¦)
-   (#x8e37 ?\8fà§)
-   (#x8e38 ?\8fà¨)
-   (#x8e39 ?\8fà©)
-   (#x8e3d ?\8fàª)
-   (#x8e40 ?\8fà«)
-   (#x8e41 ?\8fà¬)
-   (#x8e4b ?\8fà­)
-   (#x8e4d ?\8fà®)
-   (#x8e4e ?\8fà¯)
-   (#x8e4f ?\8fà°)
-   (#x8e54 ?\8fà±)
-   (#x8e5b ?\8fà²)
-   (#x8e5c ?\8fà³)
-   (#x8e5d ?\8fà´)
-   (#x8e5e ?\8fàµ)
-   (#x8e61 ?\8fà¶)
-   (#x8e62 ?\8fà·)
-   (#x8e69 ?\8fà¸)
-   (#x8e6c ?\8fà¹)
-   (#x8e6d ?\8fàº)
-   (#x8e6f ?\8fà»)
-   (#x8e70 ?\8fà¼)
-   (#x8e71 ?\8fà½)
-   (#x8e79 ?\8fà¾)
-   (#x8e7a ?\8fà¿)
-   (#x8e7b ?\8fàÀ)
-   (#x8e82 ?\8fàÃ)
-   (#x8e83 ?\8fàÂ)
-   (#x8e89 ?\8fàÃ)
-   (#x8e90 ?\8fàÄ)
-   (#x8e92 ?\8fàÅ)
-   (#x8e95 ?\8fàÆ)
-   (#x8e9a ?\8fàÇ)
-   (#x8e9b ?\8fàÈ)
-   (#x8e9d ?\8fàÉ)
-   (#x8e9e ?\8fàÊ)
-   (#x8ea2 ?\8fàË)
-   (#x8ea7 ?\8fàÌ)
-   (#x8ea9 ?\8fàÃ)
-   (#x8ead ?\8fàÎ)
-   (#x8eae ?\8fàÃ)
-   (#x8eb3 ?\8fàÃ)
-   (#x8eb5 ?\8fàÑ)
-   (#x8eba ?\8fàÒ)
-   (#x8ebb ?\8fàÓ)
-   (#x8ec0 ?\8fàÔ)
-   (#x8ec1 ?\8fàÕ)
-   (#x8ec3 ?\8fàÖ)
-   (#x8ec4 ?\8fà×)
-   (#x8ec7 ?\8fàØ)
-   (#x8ecf ?\8fàÙ)
-   (#x8ed1 ?\8fàÚ)
-   (#x8ed4 ?\8fàÛ)
-   (#x8edc ?\8fàÜ)
-   (#x8ee8 ?\8fàÃ)
-   (#x8eed ?\8fàä)
-   (#x8eee ?\8fàÞ)
-   (#x8ef0 ?\8fàß)
-   (#x8ef1 ?\8fàà)
-   (#x8ef7 ?\8fàá)
-   (#x8ef9 ?\8fàâ)
-   (#x8efa ?\8fàã)
-   (#x8f00 ?\8fàå)
-   (#x8f02 ?\8fàæ)
-   (#x8f07 ?\8fàç)
-   (#x8f08 ?\8fàè)
-   (#x8f0f ?\8fàé)
-   (#x8f10 ?\8fàê)
-   (#x8f16 ?\8fàë)
-   (#x8f17 ?\8fàì)
-   (#x8f18 ?\8fàí)
-   (#x8f1e ?\8fàî)
-   (#x8f20 ?\8fàï)
-   (#x8f21 ?\8fàð)
-   (#x8f23 ?\8fàñ)
-   (#x8f25 ?\8fàò)
-   (#x8f27 ?\8fàó)
-   (#x8f28 ?\8fàô)
-   (#x8f2c ?\8fàõ)
-   (#x8f2d ?\8fàö)
-   (#x8f2e ?\8fà÷)
-   (#x8f34 ?\8fàø)
-   (#x8f35 ?\8fàù)
-   (#x8f36 ?\8fàú)
-   (#x8f37 ?\8fàû)
-   (#x8f3a ?\8fàü)
-   (#x8f40 ?\8fàý)
-   (#x8f41 ?\8fàþ)
-   (#x8f43 ?\8fá¡)
-   (#x8f47 ?\8fá¢)
-   (#x8f4f ?\8fá£)
-   (#x8f51 ?\8fá¤)
-   (#x8f52 ?\8fá¥)
-   (#x8f53 ?\8fá¦)
-   (#x8f54 ?\8fá§)
-   (#x8f55 ?\8fá¨)
-   (#x8f58 ?\8fá©)
-   (#x8f5d ?\8fáª)
-   (#x8f5e ?\8fá«)
-   (#x8f65 ?\8fá¬)
-   (#x8f9d ?\8fá­)
-   (#x8fa0 ?\8fá®)
-   (#x8fa1 ?\8fá¯)
-   (#x8fa4 ?\8fá°)
-   (#x8fa5 ?\8fá±)
-   (#x8fa6 ?\8fá²)
-   (#x8fb5 ?\8fá³)
-   (#x8fb6 ?\8fá´)
-   (#x8fb8 ?\8fáµ)
-   (#x8fbe ?\8fá¶)
-   (#x8fc0 ?\8fá·)
-   (#x8fc1 ?\8fá¸)
-   (#x8fc6 ?\8fá¹)
-   (#x8fca ?\8fáº)
-   (#x8fcb ?\8fá»)
-   (#x8fcd ?\8fá¼)
-   (#x8fd0 ?\8fá½)
-   (#x8fd2 ?\8fá¾)
-   (#x8fd3 ?\8fá¿)
-   (#x8fd5 ?\8fáÀ)
-   (#x8fe0 ?\8fáÃ)
-   (#x8fe3 ?\8fáÂ)
-   (#x8fe4 ?\8fáÃ)
-   (#x8fe8 ?\8fáÄ)
-   (#x8fee ?\8fáÅ)
-   (#x8ff1 ?\8fáÆ)
-   (#x8ff5 ?\8fáÇ)
-   (#x8ff6 ?\8fáÈ)
-   (#x8ffb ?\8fáÉ)
-   (#x8ffe ?\8fáÊ)
-   (#x9002 ?\8fáË)
-   (#x9004 ?\8fáÌ)
-   (#x9008 ?\8fáÃ)
-   (#x900c ?\8fáÎ)
-   (#x9018 ?\8fáÃ)
-   (#x901b ?\8fáÃ)
-   (#x9028 ?\8fáÑ)
-   (#x9029 ?\8fáÒ)
-   (#x902a ?\8fáÔ)
-   (#x902c ?\8fáÕ)
-   (#x902d ?\8fáÖ)
-   (#x902f ?\8fáÓ)
-   (#x9033 ?\8fá×)
-   (#x9034 ?\8fáØ)
-   (#x9037 ?\8fáÙ)
-   (#x903f ?\8fáÚ)
-   (#x9043 ?\8fáÛ)
-   (#x9044 ?\8fáÜ)
-   (#x904c ?\8fáÃ)
-   (#x905b ?\8fáÞ)
-   (#x905d ?\8fáß)
-   (#x9062 ?\8fáà)
-   (#x9066 ?\8fáá)
-   (#x9067 ?\8fáâ)
-   (#x906c ?\8fáã)
-   (#x9070 ?\8fáä)
-   (#x9074 ?\8fáå)
-   (#x9079 ?\8fáæ)
-   (#x9085 ?\8fáç)
-   (#x9088 ?\8fáè)
-   (#x908b ?\8fáé)
-   (#x908c ?\8fáê)
-   (#x908e ?\8fáë)
-   (#x9090 ?\8fáì)
-   (#x9095 ?\8fáí)
-   (#x9097 ?\8fáî)
-   (#x9098 ?\8fáï)
-   (#x9099 ?\8fáð)
-   (#x909b ?\8fáñ)
-   (#x90a0 ?\8fáò)
-   (#x90a1 ?\8fáó)
-   (#x90a2 ?\8fáô)
-   (#x90a5 ?\8fáõ)
-   (#x90b0 ?\8fáö)
-   (#x90b2 ?\8fá÷)
-   (#x90b3 ?\8fáø)
-   (#x90b4 ?\8fáù)
-   (#x90b6 ?\8fáú)
-   (#x90bd ?\8fáû)
-   (#x90be ?\8fáý)
-   (#x90c3 ?\8fáþ)
-   (#x90c4 ?\8fâ¡)
-   (#x90c5 ?\8fâ¢)
-   (#x90c7 ?\8fâ£)
-   (#x90c8 ?\8fâ¤)
-   (#x90cc ?\8fáü)
-   (#x90d2 ?\8fâ­)
-   (#x90d5 ?\8fâ¥)
-   (#x90d7 ?\8fâ¦)
-   (#x90d8 ?\8fâ§)
-   (#x90d9 ?\8fâ¨)
-   (#x90dc ?\8fâ©)
-   (#x90dd ?\8fâª)
-   (#x90df ?\8fâ«)
-   (#x90e5 ?\8fâ¬)
-   (#x90eb ?\8fâ¯)
-   (#x90ef ?\8fâ°)
-   (#x90f0 ?\8fâ±)
-   (#x90f4 ?\8fâ²)
-   (#x90f6 ?\8fâ®)
-   (#x90fe ?\8fâ³)
-   (#x90ff ?\8fâ´)
-   (#x9100 ?\8fâµ)
-   (#x9104 ?\8fâ¶)
-   (#x9105 ?\8fâ·)
-   (#x9106 ?\8fâ¸)
-   (#x9108 ?\8fâ¹)
-   (#x910d ?\8fâº)
-   (#x9110 ?\8fâ»)
-   (#x9114 ?\8fâ¼)
-   (#x9116 ?\8fâ½)
-   (#x9117 ?\8fâ¾)
-   (#x9118 ?\8fâ¿)
-   (#x911a ?\8fâÀ)
-   (#x911c ?\8fâÃ)
-   (#x911e ?\8fâÂ)
-   (#x9120 ?\8fâÃ)
-   (#x9122 ?\8fâÅ)
-   (#x9123 ?\8fâÆ)
-   (#x9125 ?\8fâÄ)
-   (#x9127 ?\8fâÇ)
-   (#x9129 ?\8fâÈ)
-   (#x912e ?\8fâÉ)
-   (#x912f ?\8fâÊ)
-   (#x9131 ?\8fâË)
-   (#x9134 ?\8fâÌ)
-   (#x9136 ?\8fâÃ)
-   (#x9137 ?\8fâÎ)
-   (#x9139 ?\8fâÃ)
-   (#x913a ?\8fâÃ)
-   (#x913c ?\8fâÑ)
-   (#x913d ?\8fâÒ)
-   (#x9143 ?\8fâÓ)
-   (#x9147 ?\8fâÔ)
-   (#x9148 ?\8fâÕ)
-   (#x914f ?\8fâÖ)
-   (#x9153 ?\8fâ×)
-   (#x9157 ?\8fâØ)
-   (#x9159 ?\8fâÙ)
-   (#x915a ?\8fâÚ)
-   (#x915b ?\8fâÛ)
-   (#x9161 ?\8fâÜ)
-   (#x9164 ?\8fâÃ)
-   (#x9167 ?\8fâÞ)
-   (#x916d ?\8fâß)
-   (#x9174 ?\8fâà)
-   (#x9179 ?\8fâá)
-   (#x917a ?\8fââ)
-   (#x917b ?\8fâã)
-   (#x9181 ?\8fâä)
-   (#x9183 ?\8fâå)
-   (#x9185 ?\8fâæ)
-   (#x9186 ?\8fâç)
-   (#x918a ?\8fâè)
-   (#x918e ?\8fâé)
-   (#x9191 ?\8fâê)
-   (#x9193 ?\8fâë)
-   (#x9194 ?\8fâì)
-   (#x9195 ?\8fâí)
-   (#x9198 ?\8fâî)
-   (#x919e ?\8fâï)
-   (#x91a1 ?\8fâð)
-   (#x91a6 ?\8fâñ)
-   (#x91a8 ?\8fâò)
-   (#x91ac ?\8fâó)
-   (#x91ad ?\8fâô)
-   (#x91ae ?\8fâõ)
-   (#x91b0 ?\8fâö)
-   (#x91b1 ?\8fâ÷)
-   (#x91b2 ?\8fâø)
-   (#x91b3 ?\8fâù)
-   (#x91b6 ?\8fâú)
-   (#x91bb ?\8fâû)
-   (#x91bc ?\8fâü)
-   (#x91bd ?\8fâý)
-   (#x91bf ?\8fâþ)
-   (#x91c2 ?\8fã¡)
-   (#x91c3 ?\8fã¢)
-   (#x91c5 ?\8fã£)
-   (#x91d3 ?\8fã¤)
-   (#x91d4 ?\8fã¥)
-   (#x91d7 ?\8fã¦)
-   (#x91d9 ?\8fã§)
-   (#x91da ?\8fã¨)
-   (#x91de ?\8fã©)
-   (#x91e4 ?\8fãª)
-   (#x91e5 ?\8fã«)
-   (#x91e9 ?\8fã¬)
-   (#x91ea ?\8fã­)
-   (#x91ec ?\8fã®)
-   (#x91ed ?\8fã¯)
-   (#x91ee ?\8fã°)
-   (#x91ef ?\8fã±)
-   (#x91f0 ?\8fã²)
-   (#x91f1 ?\8fã³)
-   (#x91f7 ?\8fã´)
-   (#x91f9 ?\8fãµ)
-   (#x91fb ?\8fã¶)
-   (#x91fd ?\8fã·)
-   (#x9200 ?\8fã¸)
-   (#x9201 ?\8fã¹)
-   (#x9204 ?\8fãº)
-   (#x9205 ?\8fã»)
-   (#x9206 ?\8fã¼)
-   (#x9207 ?\8fã½)
-   (#x9209 ?\8fã¾)
-   (#x920a ?\8fã¿)
-   (#x920c ?\8fãÀ)
-   (#x9210 ?\8fãÃ)
-   (#x9212 ?\8fãÂ)
-   (#x9213 ?\8fãÃ)
-   (#x9216 ?\8fãÄ)
-   (#x9218 ?\8fãÅ)
-   (#x921c ?\8fãÆ)
-   (#x921d ?\8fãÇ)
-   (#x9223 ?\8fãÈ)
-   (#x9224 ?\8fãÉ)
-   (#x9225 ?\8fãÊ)
-   (#x9226 ?\8fãË)
-   (#x9228 ?\8fãÌ)
-   (#x922e ?\8fãÃ)
-   (#x922f ?\8fãÎ)
-   (#x9230 ?\8fãÃ)
-   (#x9233 ?\8fãÃ)
-   (#x9235 ?\8fãÑ)
-   (#x9236 ?\8fãÒ)
-   (#x9238 ?\8fãÓ)
-   (#x9239 ?\8fãÔ)
-   (#x923a ?\8fãÕ)
-   (#x923c ?\8fãÖ)
-   (#x923e ?\8fã×)
-   (#x9240 ?\8fãØ)
-   (#x9242 ?\8fãÙ)
-   (#x9243 ?\8fãÚ)
-   (#x9246 ?\8fãÛ)
-   (#x9247 ?\8fãÜ)
-   (#x924a ?\8fãÃ)
-   (#x924d ?\8fãÞ)
-   (#x924e ?\8fãß)
-   (#x924f ?\8fãà)
-   (#x9251 ?\8fãá)
-   (#x9258 ?\8fãâ)
-   (#x9259 ?\8fãã)
-   (#x925c ?\8fãä)
-   (#x925d ?\8fãå)
-   (#x9260 ?\8fãæ)
-   (#x9261 ?\8fãç)
-   (#x9265 ?\8fãè)
-   (#x9267 ?\8fãé)
-   (#x9268 ?\8fãê)
-   (#x9269 ?\8fãë)
-   (#x926e ?\8fãì)
-   (#x926f ?\8fãí)
-   (#x9270 ?\8fãî)
-   (#x9275 ?\8fãï)
-   (#x9276 ?\8fãð)
-   (#x9277 ?\8fãñ)
-   (#x9278 ?\8fãò)
-   (#x9279 ?\8fãó)
-   (#x927b ?\8fãô)
-   (#x927c ?\8fãõ)
-   (#x927d ?\8fãö)
-   (#x927f ?\8fã÷)
-   (#x9288 ?\8fãø)
-   (#x9289 ?\8fãù)
-   (#x928a ?\8fãú)
-   (#x928d ?\8fãû)
-   (#x928e ?\8fãü)
-   (#x9292 ?\8fãý)
-   (#x9297 ?\8fãþ)
-   (#x9299 ?\8fä¡)
-   (#x929f ?\8fä¢)
-   (#x92a0 ?\8fä£)
-   (#x92a4 ?\8fä¤)
-   (#x92a5 ?\8fä¥)
-   (#x92a7 ?\8fä¦)
-   (#x92a8 ?\8fä§)
-   (#x92ab ?\8fä¨)
-   (#x92af ?\8fä©)
-   (#x92b2 ?\8fäª)
-   (#x92b6 ?\8fä«)
-   (#x92b8 ?\8fä¬)
-   (#x92ba ?\8fä­)
-   (#x92bb ?\8fä®)
-   (#x92bc ?\8fä¯)
-   (#x92bd ?\8fä°)
-   (#x92bf ?\8fä±)
-   (#x92c0 ?\8fä²)
-   (#x92c1 ?\8fä³)
-   (#x92c2 ?\8fä´)
-   (#x92c3 ?\8fäµ)
-   (#x92c5 ?\8fä¶)
-   (#x92c6 ?\8fä·)
-   (#x92c7 ?\8fä¸)
-   (#x92c8 ?\8fä¹)
-   (#x92cb ?\8fäº)
-   (#x92cc ?\8fä»)
-   (#x92cd ?\8fä¼)
-   (#x92ce ?\8fä½)
-   (#x92d0 ?\8fä¾)
-   (#x92d3 ?\8fä¿)
-   (#x92d5 ?\8fäÀ)
-   (#x92d7 ?\8fäÃ)
-   (#x92d8 ?\8fäÂ)
-   (#x92d9 ?\8fäÃ)
-   (#x92dc ?\8fäÄ)
-   (#x92dd ?\8fäÅ)
-   (#x92df ?\8fäÆ)
-   (#x92e0 ?\8fäÇ)
-   (#x92e1 ?\8fäÈ)
-   (#x92e3 ?\8fäÉ)
-   (#x92e5 ?\8fäÊ)
-   (#x92e7 ?\8fäË)
-   (#x92e8 ?\8fäÌ)
-   (#x92ec ?\8fäÃ)
-   (#x92ee ?\8fäÎ)
-   (#x92f0 ?\8fäÃ)
-   (#x92f9 ?\8fäÃ)
-   (#x92fb ?\8fäÑ)
-   (#x92ff ?\8fäÒ)
-   (#x9300 ?\8fäÓ)
-   (#x9302 ?\8fäÔ)
-   (#x9308 ?\8fäÕ)
-   (#x930d ?\8fäÖ)
-   (#x9311 ?\8fä×)
-   (#x9314 ?\8fäØ)
-   (#x9315 ?\8fäÙ)
-   (#x931c ?\8fäÚ)
-   (#x931d ?\8fäÛ)
-   (#x931e ?\8fäÜ)
-   (#x931f ?\8fäÃ)
-   (#x9321 ?\8fäÞ)
-   (#x9324 ?\8fäß)
-   (#x9325 ?\8fäà)
-   (#x9327 ?\8fäá)
-   (#x9329 ?\8fäâ)
-   (#x932a ?\8fäã)
-   (#x9333 ?\8fää)
-   (#x9334 ?\8fäå)
-   (#x9336 ?\8fäæ)
-   (#x9337 ?\8fäç)
-   (#x9347 ?\8fäè)
-   (#x9348 ?\8fäé)
-   (#x9349 ?\8fäê)
-   (#x9350 ?\8fäë)
-   (#x9351 ?\8fäì)
-   (#x9352 ?\8fäí)
-   (#x9355 ?\8fäî)
-   (#x9357 ?\8fäï)
-   (#x9358 ?\8fäð)
-   (#x935a ?\8fäñ)
-   (#x935e ?\8fäò)
-   (#x9364 ?\8fäó)
-   (#x9365 ?\8fäô)
-   (#x9367 ?\8fäõ)
-   (#x9369 ?\8fäö)
-   (#x936a ?\8fä÷)
-   (#x936d ?\8fäø)
-   (#x936f ?\8fäù)
-   (#x9370 ?\8fäú)
-   (#x9371 ?\8fäû)
-   (#x9373 ?\8fäü)
-   (#x9374 ?\8fäý)
-   (#x9376 ?\8fäþ)
-   (#x937a ?\8få¡)
-   (#x937d ?\8få¢)
-   (#x937f ?\8få£)
-   (#x9380 ?\8få¤)
-   (#x9381 ?\8få¥)
-   (#x9382 ?\8få¦)
-   (#x9388 ?\8få§)
-   (#x938a ?\8få¨)
-   (#x938b ?\8få©)
-   (#x938d ?\8fåª)
-   (#x938f ?\8få«)
-   (#x9392 ?\8få¬)
-   (#x9395 ?\8få­)
-   (#x9398 ?\8få®)
-   (#x939b ?\8få¯)
-   (#x939e ?\8få°)
-   (#x93a1 ?\8få±)
-   (#x93a3 ?\8få²)
-   (#x93a4 ?\8få³)
-   (#x93a6 ?\8få´)
-   (#x93a8 ?\8fåµ)
-   (#x93a9 ?\8få»)
-   (#x93ab ?\8få¶)
-   (#x93b4 ?\8få·)
-   (#x93b5 ?\8få¸)
-   (#x93b6 ?\8få¹)
-   (#x93ba ?\8fåº)
-   (#x93c1 ?\8få¼)
-   (#x93c4 ?\8få½)
-   (#x93c5 ?\8få¾)
-   (#x93c6 ?\8få¿)
-   (#x93c7 ?\8fåÀ)
-   (#x93c9 ?\8fÃ¥Ã)
-   (#x93ca ?\8fåÂ)
-   (#x93cb ?\8fåÃ)
-   (#x93cc ?\8fåÄ)
-   (#x93cd ?\8fåÅ)
-   (#x93d3 ?\8fåÆ)
-   (#x93d9 ?\8fåÇ)
-   (#x93dc ?\8fåÈ)
-   (#x93de ?\8fåÉ)
-   (#x93df ?\8fåÊ)
-   (#x93e2 ?\8fåË)
-   (#x93e6 ?\8fåÌ)
-   (#x93e7 ?\8fÃ¥Ã)
-   (#x93f7 ?\8fÃ¥Ã)
-   (#x93f8 ?\8fÃ¥Ã)
-   (#x93f9 ?\8fåÎ)
-   (#x93fa ?\8fåÑ)
-   (#x93fb ?\8fåÒ)
-   (#x93fd ?\8fåÓ)
-   (#x9401 ?\8fåÔ)
-   (#x9402 ?\8fåÕ)
-   (#x9404 ?\8fåÖ)
-   (#x9408 ?\8få×)
-   (#x9409 ?\8fåØ)
-   (#x940d ?\8fåÙ)
-   (#x940e ?\8fåÚ)
-   (#x940f ?\8fåÛ)
-   (#x9415 ?\8fåÜ)
-   (#x9416 ?\8fÃ¥Ã)
-   (#x9417 ?\8fåÞ)
-   (#x941f ?\8fåß)
-   (#x942e ?\8fåà)
-   (#x942f ?\8fåá)
-   (#x9431 ?\8fåâ)
-   (#x9432 ?\8fåã)
-   (#x9433 ?\8fåä)
-   (#x9434 ?\8fåå)
-   (#x943b ?\8fåæ)
-   (#x943d ?\8fåè)
-   (#x943f ?\8fåç)
-   (#x9443 ?\8fåé)
-   (#x9445 ?\8fåê)
-   (#x9448 ?\8fåë)
-   (#x944a ?\8fåì)
-   (#x944c ?\8fåí)
-   (#x9455 ?\8fåî)
-   (#x9459 ?\8fåï)
-   (#x945c ?\8fåð)
-   (#x945f ?\8fåñ)
-   (#x9461 ?\8fåò)
-   (#x9463 ?\8fåó)
-   (#x9468 ?\8fåô)
-   (#x946b ?\8fåõ)
-   (#x946d ?\8fåö)
-   (#x946e ?\8få÷)
-   (#x946f ?\8fåø)
-   (#x9471 ?\8fåù)
-   (#x9472 ?\8fåú)
-   (#x9483 ?\8fåü)
-   (#x9484 ?\8fåû)
-   (#x9578 ?\8fåý)
-   (#x9579 ?\8fåþ)
-   (#x957e ?\8fæ¡)
-   (#x9584 ?\8fæ¢)
-   (#x9588 ?\8fæ£)
-   (#x958c ?\8fæ¤)
-   (#x958d ?\8fæ¥)
-   (#x958e ?\8fæ¦)
-   (#x959d ?\8fæ§)
-   (#x959e ?\8fæ¨)
-   (#x959f ?\8fæ©)
-   (#x95a1 ?\8fæª)
-   (#x95a6 ?\8fæ«)
-   (#x95a9 ?\8fæ¬)
-   (#x95ab ?\8fæ­)
-   (#x95ac ?\8fæ®)
-   (#x95b4 ?\8fæ¯)
-   (#x95b6 ?\8fæ°)
-   (#x95ba ?\8fæ±)
-   (#x95bd ?\8fæ²)
-   (#x95bf ?\8fæ³)
-   (#x95c6 ?\8fæ´)
-   (#x95c8 ?\8fæµ)
-   (#x95c9 ?\8fæ¶)
-   (#x95cb ?\8fæ·)
-   (#x95d0 ?\8fæ¸)
-   (#x95d1 ?\8fæ¹)
-   (#x95d2 ?\8fæº)
-   (#x95d3 ?\8fæ»)
-   (#x95d9 ?\8fæ¼)
-   (#x95da ?\8fæ½)
-   (#x95dd ?\8fæ¾)
-   (#x95de ?\8fæ¿)
-   (#x95df ?\8fæÀ)
-   (#x95e0 ?\8fæÃ)
-   (#x95e4 ?\8fæÂ)
-   (#x95e6 ?\8fæÃ)
-   (#x961d ?\8fæÄ)
-   (#x961e ?\8fæÅ)
-   (#x9622 ?\8fæÆ)
-   (#x9624 ?\8fæÇ)
-   (#x9625 ?\8fæÈ)
-   (#x9626 ?\8fæÉ)
-   (#x962c ?\8fæÊ)
-   (#x9631 ?\8fæË)
-   (#x9633 ?\8fæÌ)
-   (#x9637 ?\8fæÃ)
-   (#x9638 ?\8fæÎ)
-   (#x9639 ?\8fæÃ)
-   (#x963a ?\8fæÃ)
-   (#x963c ?\8fæÑ)
-   (#x963d ?\8fæÒ)
-   (#x9641 ?\8fæÓ)
-   (#x9652 ?\8fæÔ)
-   (#x9654 ?\8fæÕ)
-   (#x9656 ?\8fæÖ)
-   (#x9657 ?\8fæ×)
-   (#x9658 ?\8fæØ)
-   (#x9661 ?\8fæÙ)
-   (#x966e ?\8fæÚ)
-   (#x9674 ?\8fæÛ)
-   (#x967b ?\8fæÜ)
-   (#x967c ?\8fæÃ)
-   (#x967e ?\8fæÞ)
-   (#x967f ?\8fæß)
-   (#x9681 ?\8fæà)
-   (#x9682 ?\8fæá)
-   (#x9683 ?\8fæâ)
-   (#x9684 ?\8fæã)
-   (#x9689 ?\8fæä)
-   (#x9691 ?\8fæå)
-   (#x9696 ?\8fææ)
-   (#x969a ?\8fæç)
-   (#x969d ?\8fæè)
-   (#x969f ?\8fæé)
-   (#x96a4 ?\8fæê)
-   (#x96a5 ?\8fæë)
-   (#x96a6 ?\8fæì)
-   (#x96a9 ?\8fæí)
-   (#x96ae ?\8fæî)
-   (#x96af ?\8fæï)
-   (#x96b3 ?\8fæð)
-   (#x96ba ?\8fæñ)
-   (#x96ca ?\8fæò)
-   (#x96d2 ?\8fæó)
-   (#x96d8 ?\8fæõ)
-   (#x96da ?\8fæö)
-   (#x96dd ?\8fæ÷)
-   (#x96de ?\8fæø)
-   (#x96df ?\8fæù)
-   (#x96e9 ?\8fæú)
-   (#x96ef ?\8fæû)
-   (#x96f1 ?\8fæü)
-   (#x96fa ?\8fæý)
-   (#x9702 ?\8fæþ)
-   (#x9703 ?\8fç¡)
-   (#x9705 ?\8fç¢)
-   (#x9709 ?\8fç£)
-   (#x971a ?\8fç¤)
-   (#x971b ?\8fç¥)
-   (#x971d ?\8fç¦)
-   (#x9721 ?\8fç§)
-   (#x9722 ?\8fç¨)
-   (#x9723 ?\8fç©)
-   (#x9728 ?\8fçª)
-   (#x9731 ?\8fç«)
-   (#x9733 ?\8fç¬)
-   (#x9741 ?\8fç­)
-   (#x9743 ?\8fç®)
-   (#x974a ?\8fç¯)
-   (#x974e ?\8fç°)
-   (#x974f ?\8fç±)
-   (#x9755 ?\8fç²)
-   (#x9757 ?\8fç³)
-   (#x9758 ?\8fç´)
-   (#x975a ?\8fçµ)
-   (#x975b ?\8fç¶)
-   (#x9763 ?\8fç·)
-   (#x9767 ?\8fç¸)
-   (#x976a ?\8fç¹)
-   (#x976e ?\8fçº)
-   (#x9773 ?\8fç»)
-   (#x9776 ?\8fç¼)
-   (#x9777 ?\8fç½)
-   (#x9778 ?\8fç¾)
-   (#x977b ?\8fç¿)
-   (#x977d ?\8fçÀ)
-   (#x977f ?\8fçÃ)
-   (#x9780 ?\8fçÂ)
-   (#x9789 ?\8fçÃ)
-   (#x9795 ?\8fçÄ)
-   (#x9796 ?\8fçÅ)
-   (#x9797 ?\8fçÆ)
-   (#x9799 ?\8fçÇ)
-   (#x979a ?\8fçÈ)
-   (#x979e ?\8fçÉ)
-   (#x979f ?\8fçÊ)
-   (#x97a2 ?\8fçË)
-   (#x97ac ?\8fçÌ)
-   (#x97ae ?\8fçÃ)
-   (#x97b1 ?\8fçÎ)
-   (#x97b2 ?\8fçÃ)
-   (#x97b5 ?\8fçÃ)
-   (#x97b6 ?\8fçÑ)
-   (#x97b8 ?\8fçÒ)
-   (#x97b9 ?\8fçÓ)
-   (#x97ba ?\8fçÔ)
-   (#x97bc ?\8fçÕ)
-   (#x97be ?\8fçÖ)
-   (#x97bf ?\8fç×)
-   (#x97c1 ?\8fçØ)
-   (#x97c4 ?\8fçÙ)
-   (#x97c5 ?\8fçÚ)
-   (#x97c7 ?\8fçÛ)
-   (#x97c9 ?\8fçÜ)
-   (#x97ca ?\8fçÃ)
-   (#x97cc ?\8fçÞ)
-   (#x97cd ?\8fçß)
-   (#x97ce ?\8fçà)
-   (#x97d0 ?\8fçá)
-   (#x97d1 ?\8fçâ)
-   (#x97d4 ?\8fçã)
-   (#x97d7 ?\8fçä)
-   (#x97d8 ?\8fçå)
-   (#x97d9 ?\8fçæ)
-   (#x97db ?\8fçê)
-   (#x97dd ?\8fçç)
-   (#x97de ?\8fçè)
-   (#x97e0 ?\8fçé)
-   (#x97e1 ?\8fçë)
-   (#x97e4 ?\8fçì)
-   (#x97ef ?\8fçí)
-   (#x97f1 ?\8fçî)
-   (#x97f4 ?\8fçï)
-   (#x97f7 ?\8fçð)
-   (#x97f8 ?\8fçñ)
-   (#x97fa ?\8fçò)
-   (#x9807 ?\8fçó)
-   (#x980a ?\8fçô)
-   (#x980d ?\8fçö)
-   (#x980e ?\8fç÷)
-   (#x9814 ?\8fçø)
-   (#x9816 ?\8fçù)
-   (#x9819 ?\8fçõ)
-   (#x981c ?\8fçú)
-   (#x981e ?\8fçû)
-   (#x9820 ?\8fçü)
-   (#x9823 ?\8fçý)
-   (#x9825 ?\8fè¨)
-   (#x9826 ?\8fçþ)
-   (#x982b ?\8fè¡)
-   (#x982e ?\8fè¢)
-   (#x982f ?\8fè£)
-   (#x9830 ?\8fè¤)
-   (#x9832 ?\8fè¥)
-   (#x9833 ?\8fè¦)
-   (#x9835 ?\8fè§)
-   (#x983e ?\8fè©)
-   (#x9844 ?\8fèª)
-   (#x9847 ?\8fè«)
-   (#x984a ?\8fè¬)
-   (#x9851 ?\8fè­)
-   (#x9852 ?\8fè®)
-   (#x9853 ?\8fè¯)
-   (#x9856 ?\8fè°)
-   (#x9857 ?\8fè±)
-   (#x9859 ?\8fè²)
-   (#x985a ?\8fè³)
-   (#x9862 ?\8fè´)
-   (#x9863 ?\8fèµ)
-   (#x9865 ?\8fè¶)
-   (#x9866 ?\8fè·)
-   (#x986a ?\8fè¸)
-   (#x986c ?\8fè¹)
-   (#x98ab ?\8fèº)
-   (#x98ad ?\8fè»)
-   (#x98ae ?\8fè¼)
-   (#x98b0 ?\8fè½)
-   (#x98b4 ?\8fè¾)
-   (#x98b7 ?\8fè¿)
-   (#x98b8 ?\8fèÀ)
-   (#x98ba ?\8fèÃ)
-   (#x98bb ?\8fèÂ)
-   (#x98bf ?\8fèÃ)
-   (#x98c2 ?\8fèÄ)
-   (#x98c5 ?\8fèÅ)
-   (#x98c8 ?\8fèÆ)
-   (#x98cc ?\8fèÇ)
-   (#x98e1 ?\8fèÈ)
-   (#x98e3 ?\8fèÉ)
-   (#x98e5 ?\8fèÊ)
-   (#x98e6 ?\8fèË)
-   (#x98e7 ?\8fèÌ)
-   (#x98ea ?\8fèÃ)
-   (#x98f3 ?\8fèÎ)
-   (#x98f6 ?\8fèÃ)
-   (#x9902 ?\8fèÃ)
-   (#x9907 ?\8fèÑ)
-   (#x9908 ?\8fèÒ)
-   (#x9911 ?\8fèÓ)
-   (#x9915 ?\8fèÔ)
-   (#x9916 ?\8fèÕ)
-   (#x9917 ?\8fèÖ)
-   (#x991a ?\8fè×)
-   (#x991b ?\8fèØ)
-   (#x991c ?\8fèÙ)
-   (#x991f ?\8fèÚ)
-   (#x9922 ?\8fèÛ)
-   (#x9926 ?\8fèÜ)
-   (#x9927 ?\8fèÃ)
-   (#x992b ?\8fèÞ)
-   (#x9931 ?\8fèß)
-   (#x9932 ?\8fèà)
-   (#x9933 ?\8fèá)
-   (#x9934 ?\8fèâ)
-   (#x9935 ?\8fèã)
-   (#x9939 ?\8fèä)
-   (#x993a ?\8fèå)
-   (#x993b ?\8fèæ)
-   (#x993c ?\8fèç)
-   (#x9940 ?\8fèè)
-   (#x9941 ?\8fèé)
-   (#x9946 ?\8fèê)
-   (#x9947 ?\8fèë)
-   (#x9948 ?\8fèì)
-   (#x994d ?\8fèí)
-   (#x994e ?\8fèî)
-   (#x9954 ?\8fèï)
-   (#x9958 ?\8fèð)
-   (#x9959 ?\8fèñ)
-   (#x995b ?\8fèò)
-   (#x995c ?\8fèó)
-   (#x995e ?\8fèô)
-   (#x995f ?\8fèõ)
-   (#x9960 ?\8fèö)
-   (#x999b ?\8fè÷)
-   (#x999d ?\8fèø)
-   (#x999f ?\8fèù)
-   (#x99a6 ?\8fèú)
-   (#x99b0 ?\8fèû)
-   (#x99b1 ?\8fèü)
-   (#x99b2 ?\8fèý)
-   (#x99b5 ?\8fèþ)
-   (#x99b9 ?\8fé¡)
-   (#x99ba ?\8fé¢)
-   (#x99bd ?\8fé£)
-   (#x99bf ?\8fé¤)
-   (#x99c3 ?\8fé¥)
-   (#x99c9 ?\8fé¦)
-   (#x99d3 ?\8fé§)
-   (#x99d4 ?\8fé¨)
-   (#x99d9 ?\8fé©)
-   (#x99da ?\8féª)
-   (#x99dc ?\8fé«)
-   (#x99de ?\8fé¬)
-   (#x99e7 ?\8fé­)
-   (#x99ea ?\8fé®)
-   (#x99eb ?\8fé¯)
-   (#x99ec ?\8fé°)
-   (#x99f0 ?\8fé±)
-   (#x99f4 ?\8fé²)
-   (#x99f5 ?\8fé³)
-   (#x99f9 ?\8fé´)
-   (#x99fd ?\8féµ)
-   (#x99fe ?\8fé¶)
-   (#x9a02 ?\8fé·)
-   (#x9a03 ?\8fé¸)
-   (#x9a04 ?\8fé¹)
-   (#x9a0b ?\8féº)
-   (#x9a0c ?\8fé»)
-   (#x9a10 ?\8fé¼)
-   (#x9a11 ?\8fé½)
-   (#x9a16 ?\8fé¾)
-   (#x9a1e ?\8fé¿)
-   (#x9a20 ?\8féÀ)
-   (#x9a22 ?\8féÃ)
-   (#x9a23 ?\8féÂ)
-   (#x9a24 ?\8féÃ)
-   (#x9a27 ?\8féÄ)
-   (#x9a2d ?\8féÅ)
-   (#x9a2e ?\8féÆ)
-   (#x9a33 ?\8féÇ)
-   (#x9a35 ?\8féÈ)
-   (#x9a36 ?\8féÉ)
-   (#x9a38 ?\8féÊ)
-   (#x9a41 ?\8féÌ)
-   (#x9a44 ?\8féÃ)
-   (#x9a47 ?\8féË)
-   (#x9a4a ?\8féÎ)
-   (#x9a4b ?\8féÃ)
-   (#x9a4c ?\8féÃ)
-   (#x9a4e ?\8féÑ)
-   (#x9a51 ?\8féÒ)
-   (#x9a54 ?\8féÓ)
-   (#x9a56 ?\8féÔ)
-   (#x9a5d ?\8féÕ)
-   (#x9aaa ?\8féÖ)
-   (#x9aac ?\8fé×)
-   (#x9aae ?\8féØ)
-   (#x9aaf ?\8féÙ)
-   (#x9ab2 ?\8féÚ)
-   (#x9ab4 ?\8féÛ)
-   (#x9ab5 ?\8féÜ)
-   (#x9ab6 ?\8féÃ)
-   (#x9ab9 ?\8féÞ)
-   (#x9abb ?\8féß)
-   (#x9abe ?\8féà)
-   (#x9abf ?\8féá)
-   (#x9ac1 ?\8féâ)
-   (#x9ac3 ?\8féã)
-   (#x9ac6 ?\8féä)
-   (#x9ac8 ?\8féå)
-   (#x9ace ?\8féæ)
-   (#x9ad0 ?\8féç)
-   (#x9ad2 ?\8féè)
-   (#x9ad5 ?\8féé)
-   (#x9ad6 ?\8féê)
-   (#x9ad7 ?\8féë)
-   (#x9adb ?\8féì)
-   (#x9adc ?\8féí)
-   (#x9ae0 ?\8féî)
-   (#x9ae4 ?\8féï)
-   (#x9ae5 ?\8féð)
-   (#x9ae7 ?\8féñ)
-   (#x9ae9 ?\8féò)
-   (#x9aec ?\8féó)
-   (#x9af2 ?\8féô)
-   (#x9af3 ?\8féõ)
-   (#x9af5 ?\8féö)
-   (#x9af9 ?\8fé÷)
-   (#x9afa ?\8féø)
-   (#x9afd ?\8féù)
-   (#x9aff ?\8féú)
-   (#x9b00 ?\8féû)
-   (#x9b01 ?\8féü)
-   (#x9b02 ?\8féý)
-   (#x9b03 ?\8féþ)
-   (#x9b04 ?\8fê¡)
-   (#x9b05 ?\8fê¢)
-   (#x9b08 ?\8fê£)
-   (#x9b09 ?\8fê¤)
-   (#x9b0b ?\8fê¥)
-   (#x9b0c ?\8fê¦)
-   (#x9b0d ?\8fê§)
-   (#x9b0e ?\8fê¨)
-   (#x9b10 ?\8fê©)
-   (#x9b12 ?\8fêª)
-   (#x9b16 ?\8fê«)
-   (#x9b19 ?\8fê¬)
-   (#x9b1b ?\8fê­)
-   (#x9b1c ?\8fê®)
-   (#x9b20 ?\8fê¯)
-   (#x9b26 ?\8fê°)
-   (#x9b2b ?\8fê±)
-   (#x9b2d ?\8fê²)
-   (#x9b33 ?\8fê³)
-   (#x9b34 ?\8fê´)
-   (#x9b35 ?\8fêµ)
-   (#x9b37 ?\8fê¶)
-   (#x9b39 ?\8fê·)
-   (#x9b3a ?\8fê¸)
-   (#x9b3d ?\8fê¹)
-   (#x9b48 ?\8fêº)
-   (#x9b4b ?\8fê»)
-   (#x9b4c ?\8fê¼)
-   (#x9b55 ?\8fê½)
-   (#x9b56 ?\8fê¾)
-   (#x9b57 ?\8fê¿)
-   (#x9b5b ?\8fêÀ)
-   (#x9b5e ?\8fêÃ)
-   (#x9b61 ?\8fêÂ)
-   (#x9b63 ?\8fêÃ)
-   (#x9b65 ?\8fêÄ)
-   (#x9b66 ?\8fêÅ)
-   (#x9b68 ?\8fêÆ)
-   (#x9b6a ?\8fêÇ)
-   (#x9b6b ?\8fêÈ)
-   (#x9b6c ?\8fêÉ)
-   (#x9b6d ?\8fêÊ)
-   (#x9b6e ?\8fêË)
-   (#x9b73 ?\8fêÌ)
-   (#x9b75 ?\8fêÃ)
-   (#x9b77 ?\8fêÎ)
-   (#x9b78 ?\8fêÃ)
-   (#x9b79 ?\8fêÃ)
-   (#x9b7f ?\8fêÑ)
-   (#x9b80 ?\8fêÒ)
-   (#x9b84 ?\8fêÓ)
-   (#x9b85 ?\8fêÔ)
-   (#x9b86 ?\8fêÕ)
-   (#x9b87 ?\8fêÖ)
-   (#x9b89 ?\8fê×)
-   (#x9b8a ?\8fêØ)
-   (#x9b8b ?\8fêÙ)
-   (#x9b8d ?\8fêÚ)
-   (#x9b8f ?\8fêÛ)
-   (#x9b90 ?\8fêÜ)
-   (#x9b94 ?\8fêÃ)
-   (#x9b9a ?\8fêÞ)
-   (#x9b9d ?\8fêß)
-   (#x9b9e ?\8fêà)
-   (#x9ba6 ?\8fêá)
-   (#x9ba7 ?\8fêâ)
-   (#x9ba9 ?\8fêã)
-   (#x9bac ?\8fêä)
-   (#x9bb0 ?\8fêå)
-   (#x9bb1 ?\8fêæ)
-   (#x9bb2 ?\8fêç)
-   (#x9bb7 ?\8fêè)
-   (#x9bb8 ?\8fêé)
-   (#x9bbb ?\8fêê)
-   (#x9bbc ?\8fêë)
-   (#x9bbe ?\8fêì)
-   (#x9bbf ?\8fêí)
-   (#x9bc1 ?\8fêî)
-   (#x9bc7 ?\8fêï)
-   (#x9bc8 ?\8fêð)
-   (#x9bce ?\8fêñ)
-   (#x9bd0 ?\8fêò)
-   (#x9bd7 ?\8fêó)
-   (#x9bd8 ?\8fêô)
-   (#x9bdd ?\8fêõ)
-   (#x9bdf ?\8fêö)
-   (#x9be5 ?\8fê÷)
-   (#x9be7 ?\8fêø)
-   (#x9bea ?\8fêù)
-   (#x9beb ?\8fêú)
-   (#x9bef ?\8fêû)
-   (#x9bf3 ?\8fêü)
-   (#x9bf7 ?\8fêý)
-   (#x9bf8 ?\8fêþ)
-   (#x9bf9 ?\8fë¡)
-   (#x9bfa ?\8fë¢)
-   (#x9bfd ?\8fë£)
-   (#x9bff ?\8fë¤)
-   (#x9c00 ?\8fë¥)
-   (#x9c02 ?\8fë¦)
-   (#x9c0b ?\8fë§)
-   (#x9c0f ?\8fë¨)
-   (#x9c11 ?\8fë©)
-   (#x9c16 ?\8fëª)
-   (#x9c18 ?\8fë«)
-   (#x9c19 ?\8fë¬)
-   (#x9c1a ?\8fë­)
-   (#x9c1c ?\8fë®)
-   (#x9c1e ?\8fë¯)
-   (#x9c22 ?\8fë°)
-   (#x9c23 ?\8fë±)
-   (#x9c26 ?\8fë²)
-   (#x9c27 ?\8fë³)
-   (#x9c28 ?\8fë´)
-   (#x9c29 ?\8fëµ)
-   (#x9c2a ?\8fë¶)
-   (#x9c31 ?\8fë·)
-   (#x9c35 ?\8fë¸)
-   (#x9c36 ?\8fë¹)
-   (#x9c37 ?\8fëº)
-   (#x9c3d ?\8fë»)
-   (#x9c41 ?\8fë¼)
-   (#x9c43 ?\8fë½)
-   (#x9c44 ?\8fë¾)
-   (#x9c45 ?\8fë¿)
-   (#x9c49 ?\8fëÀ)
-   (#x9c4a ?\8fëÃ)
-   (#x9c4e ?\8fëÂ)
-   (#x9c4f ?\8fëÃ)
-   (#x9c50 ?\8fëÄ)
-   (#x9c53 ?\8fëÅ)
-   (#x9c54 ?\8fëÆ)
-   (#x9c56 ?\8fëÇ)
-   (#x9c58 ?\8fëÈ)
-   (#x9c5b ?\8fëÉ)
-   (#x9c5c ?\8fëÃ)
-   (#x9c5d ?\8fëÊ)
-   (#x9c5e ?\8fëË)
-   (#x9c5f ?\8fëÌ)
-   (#x9c63 ?\8fëÃ)
-   (#x9c68 ?\8fëÒ)
-   (#x9c69 ?\8fëÎ)
-   (#x9c6a ?\8fëÃ)
-   (#x9c6b ?\8fëÑ)
-   (#x9c6e ?\8fëÓ)
-   (#x9c70 ?\8fëÔ)
-   (#x9c72 ?\8fëÕ)
-   (#x9c75 ?\8fëÖ)
-   (#x9c77 ?\8fë×)
-   (#x9c7b ?\8fëØ)
-   (#x9ce6 ?\8fëÙ)
-   (#x9cf2 ?\8fëÚ)
-   (#x9cf7 ?\8fëÛ)
-   (#x9cf9 ?\8fëÜ)
-   (#x9d02 ?\8fëÞ)
-   (#x9d0b ?\8fëÃ)
-   (#x9d11 ?\8fëß)
-   (#x9d17 ?\8fëà)
-   (#x9d18 ?\8fëá)
-   (#x9d1c ?\8fëâ)
-   (#x9d1d ?\8fëã)
-   (#x9d1e ?\8fëä)
-   (#x9d2f ?\8fëå)
-   (#x9d30 ?\8fëæ)
-   (#x9d32 ?\8fëç)
-   (#x9d33 ?\8fëè)
-   (#x9d34 ?\8fëé)
-   (#x9d3a ?\8fëê)
-   (#x9d3c ?\8fëë)
-   (#x9d3d ?\8fëí)
-   (#x9d42 ?\8fëî)
-   (#x9d43 ?\8fëï)
-   (#x9d45 ?\8fëì)
-   (#x9d47 ?\8fëð)
-   (#x9d4a ?\8fëñ)
-   (#x9d53 ?\8fëò)
-   (#x9d54 ?\8fëó)
-   (#x9d5f ?\8fëô)
-   (#x9d62 ?\8fëö)
-   (#x9d63 ?\8fëõ)
-   (#x9d65 ?\8fë÷)
-   (#x9d69 ?\8fëø)
-   (#x9d6a ?\8fëù)
-   (#x9d6b ?\8fëú)
-   (#x9d70 ?\8fëû)
-   (#x9d76 ?\8fëü)
-   (#x9d77 ?\8fëý)
-   (#x9d7b ?\8fëþ)
-   (#x9d7c ?\8fì¡)
-   (#x9d7e ?\8fì¢)
-   (#x9d83 ?\8fì£)
-   (#x9d84 ?\8fì¤)
-   (#x9d86 ?\8fì¥)
-   (#x9d8a ?\8fì¦)
-   (#x9d8d ?\8fì§)
-   (#x9d8e ?\8fì¨)
-   (#x9d92 ?\8fì©)
-   (#x9d93 ?\8fìª)
-   (#x9d95 ?\8fì«)
-   (#x9d96 ?\8fì¬)
-   (#x9d97 ?\8fì­)
-   (#x9d98 ?\8fì®)
-   (#x9da1 ?\8fì¯)
-   (#x9daa ?\8fì°)
-   (#x9dac ?\8fì±)
-   (#x9dae ?\8fì²)
-   (#x9db1 ?\8fì³)
-   (#x9db5 ?\8fì´)
-   (#x9db9 ?\8fìµ)
-   (#x9dbc ?\8fì¶)
-   (#x9dbf ?\8fì·)
-   (#x9dc3 ?\8fì¸)
-   (#x9dc7 ?\8fì¹)
-   (#x9dc9 ?\8fìº)
-   (#x9dca ?\8fì»)
-   (#x9dd4 ?\8fì¼)
-   (#x9dd5 ?\8fì½)
-   (#x9dd6 ?\8fì¾)
-   (#x9dd7 ?\8fì¿)
-   (#x9dda ?\8fìÀ)
-   (#x9dde ?\8fìÃ)
-   (#x9ddf ?\8fìÂ)
-   (#x9de0 ?\8fìÃ)
-   (#x9de5 ?\8fìÄ)
-   (#x9de7 ?\8fìÅ)
-   (#x9de9 ?\8fìÆ)
-   (#x9deb ?\8fìÇ)
-   (#x9dee ?\8fìÈ)
-   (#x9df0 ?\8fìÉ)
-   (#x9df3 ?\8fìÊ)
-   (#x9df4 ?\8fìË)
-   (#x9dfe ?\8fìÌ)
-   (#x9e02 ?\8fìÎ)
-   (#x9e07 ?\8fìÃ)
-   (#x9e0a ?\8fìÃ)
-   (#x9e0e ?\8fìÃ)
-   (#x9e10 ?\8fìÑ)
-   (#x9e11 ?\8fìÒ)
-   (#x9e12 ?\8fìÓ)
-   (#x9e15 ?\8fìÔ)
-   (#x9e16 ?\8fìÕ)
-   (#x9e19 ?\8fìÖ)
-   (#x9e1c ?\8fì×)
-   (#x9e1d ?\8fìØ)
-   (#x9e7a ?\8fìÙ)
-   (#x9e7b ?\8fìÚ)
-   (#x9e7c ?\8fìÛ)
-   (#x9e80 ?\8fìÜ)
-   (#x9e82 ?\8fìÃ)
-   (#x9e83 ?\8fìÞ)
-   (#x9e84 ?\8fìß)
-   (#x9e85 ?\8fìà)
-   (#x9e87 ?\8fìá)
-   (#x9e8e ?\8fìâ)
-   (#x9e8f ?\8fìã)
-   (#x9e96 ?\8fìä)
-   (#x9e98 ?\8fìå)
-   (#x9e9b ?\8fìæ)
-   (#x9e9e ?\8fìç)
-   (#x9ea4 ?\8fìè)
-   (#x9ea8 ?\8fìé)
-   (#x9eac ?\8fìê)
-   (#x9eae ?\8fìë)
-   (#x9eaf ?\8fìì)
-   (#x9eb0 ?\8fìí)
-   (#x9eb3 ?\8fìî)
-   (#x9eb4 ?\8fìï)
-   (#x9eb5 ?\8fìð)
-   (#x9ec6 ?\8fìñ)
-   (#x9ec8 ?\8fìò)
-   (#x9ecb ?\8fìó)
-   (#x9ed5 ?\8fìô)
-   (#x9edf ?\8fìõ)
-   (#x9ee4 ?\8fìö)
-   (#x9ee7 ?\8fì÷)
-   (#x9eec ?\8fìø)
-   (#x9eed ?\8fìù)
-   (#x9eee ?\8fìú)
-   (#x9ef0 ?\8fìû)
-   (#x9ef1 ?\8fìü)
-   (#x9ef2 ?\8fìý)
-   (#x9ef5 ?\8fìþ)
-   (#x9ef8 ?\8fí¡)
-   (#x9eff ?\8fí¢)
-   (#x9f02 ?\8fí£)
-   (#x9f03 ?\8fí¤)
-   (#x9f09 ?\8fí¥)
-   (#x9f0f ?\8fí¦)
-   (#x9f10 ?\8fí§)
-   (#x9f11 ?\8fí¨)
-   (#x9f12 ?\8fí©)
-   (#x9f14 ?\8fíª)
-   (#x9f16 ?\8fí«)
-   (#x9f17 ?\8fí¬)
-   (#x9f19 ?\8fí­)
-   (#x9f1a ?\8fí®)
-   (#x9f1b ?\8fí¯)
-   (#x9f1f ?\8fí°)
-   (#x9f22 ?\8fí±)
-   (#x9f26 ?\8fí²)
-   (#x9f2a ?\8fí³)
-   (#x9f2b ?\8fí´)
-   (#x9f2f ?\8fíµ)
-   (#x9f31 ?\8fí¶)
-   (#x9f32 ?\8fí·)
-   (#x9f34 ?\8fí¸)
-   (#x9f37 ?\8fí¹)
-   (#x9f39 ?\8fíº)
-   (#x9f3a ?\8fí»)
-   (#x9f3c ?\8fí¼)
-   (#x9f3d ?\8fí½)
-   (#x9f3f ?\8fí¾)
-   (#x9f41 ?\8fí¿)
-   (#x9f43 ?\8fíÀ)
-   (#x9f44 ?\8fíÃ)
-   (#x9f45 ?\8fíÂ)
-   (#x9f46 ?\8fíÃ)
-   (#x9f47 ?\8fíÄ)
-   (#x9f53 ?\8fíÅ)
-   (#x9f55 ?\8fíÆ)
-   (#x9f56 ?\8fíÇ)
-   (#x9f57 ?\8fíÈ)
-   (#x9f58 ?\8fíÉ)
-   (#x9f5a ?\8fíÊ)
-   (#x9f5d ?\8fíË)
-   (#x9f5e ?\8fíÌ)
-   (#x9f68 ?\8fíÃ)
-   (#x9f69 ?\8fíÎ)
-   (#x9f6d ?\8fíÃ)
-   (#x9f6e ?\8fíÃ)
-   (#x9f6f ?\8fíÑ)
-   (#x9f70 ?\8fíÒ)
-   (#x9f71 ?\8fíÓ)
-   (#x9f73 ?\8fíÔ)
-   (#x9f75 ?\8fíÕ)
-   (#x9f7a ?\8fíÖ)
-   (#x9f7d ?\8fí×)
-   (#x9f8f ?\8fíØ)
-   (#x9f90 ?\8fíÙ)
-   (#x9f91 ?\8fíÚ)
-   (#x9f92 ?\8fíÛ)
-   (#x9f94 ?\8fíÜ)
-   (#x9f96 ?\8fíÃ)
-   (#x9f97 ?\8fíÞ)
-   (#x9f9e ?\8fíß)
-   (#x9fa1 ?\8fíà)
-   (#x9fa2 ?\8fíá)
-   (#x9fa3 ?\8fíâ)
-   (#x9fa5 ?\8fíã)
-   (#xff5e ?\8f¢·)
-
-   ;; jisx0201
-   (#xFF61 ?\8e¡)
-   (#xFF62 ?\\8e¢)
-   (#xFF63 ?\\8e£)
-   (#xFF64 ?\8e¤)
-   (#xFF65 ?\8eÂ¥)
-   (#xFF66 ?\8e¦)
-   (#xFF67 ?\8e§)
-   (#xFF68 ?\8e¨)
-   (#xFF69 ?\8e©)
-   (#xFF6A ?\8eª)
-   (#xFF6B ?\8e«)
-   (#xFF6C ?\8e¬)
-   (#xFF6D ?\8e­)
-   (#xFF6E ?\8e®)
-   (#xFF6F ?\8e¯)
-   (#xFF70 ?\8e°)
-   (#xFF71 ?\8e±)
-   (#xFF72 ?\8e²)
-   (#xFF73 ?\8e³)
-   (#xFF74 ?\8e´)
-   (#xFF75 ?\8eµ)
-   (#xFF76 ?\8e¶)
-   (#xFF77 ?\8e·)
-   (#xFF78 ?\8e¸)
-   (#xFF79 ?\8e¹)
-   (#xFF7A ?\8eº)
-   (#xFF7B ?\8e»)
-   (#xFF7C ?\8e¼)
-   (#xFF7D ?\8e½)
-   (#xFF7E ?\8e¾)
-   (#xFF7F ?\8e¿)
-   (#xFF80 ?\8eÀ)
-   (#xFF81 ?\8eÃ)
-   (#xFF82 ?\8eÂ)
-   (#xFF83 ?\8eÃ)
-   (#xFF84 ?\8eÄ)
-   (#xFF85 ?\8eÃ…)
-   (#xFF86 ?\8eÆ)
-   (#xFF87 ?\8eÇ)
-   (#xFF88 ?\8eÈ)
-   (#xFF89 ?\8eÉ)
-   (#xFF8A ?\8eÊ)
-   (#xFF8B ?\8eË)
-   (#xFF8C ?\8eÃŒ)
-   (#xFF8D ?\8eÃ)
-   (#xFF8E ?\8eÃŽ)
-   (#xFF8F ?\8eÃ)
-   (#xFF90 ?\8eÃ)
-   (#xFF91 ?\8eÑ)
-   (#xFF92 ?\8eÃ’)
-   (#xFF93 ?\8eÓ)
-   (#xFF94 ?\8eÔ)
-   (#xFF95 ?\8eÕ)
-   (#xFF96 ?\8eÖ)
-   (#xFF97 ?\8e×)
-   (#xFF98 ?\8eØ)
-   (#xFF99 ?\8eÙ)
-   (#xFF9A ?\8eÚ)
-   (#xFF9B ?\8eÛ)
-   (#xFF9C ?\8eÃœ)
-   (#xFF9D ?\8eÃ)
-   (#xFF9E ?\8eÞ)
-   (#xFF9F ?\8eß)
-   ))
-
-;;; arch-tag: 7f320453-b293-4159-af5e-6f0bab03048c
-;;; subst-jis.el ends here
diff --git a/lisp/international/subst-ksc.el b/lisp/international/subst-ksc.el
deleted file mode 100644 (file)
index 69f5296..0000000
+++ /dev/null
@@ -1,8267 +0,0 @@
-;;; subst-ksc.el --- Unicode/KSC-5601 translation    -*-coding: euc-kr;-*-
-
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-
-;; Author: Dave Love <fx@gnu.org>
-;; Keywords: i18n
-
-;; This file 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 file 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Provides translation tables between Unicode and korean-ksc5601 for
-;; use by the `utf-translate-cjk-mode' option.  See subst-jis.el for the
-;; method used.
-
-;;; Code:
-
-(mapc
- (lambda (pair)
-   (let ((unicode (car pair))
-        (char (cadr pair)))
-     ;; exclude non-supporting components from decode table
-     (if (utf-translate-cjk-substitutable-p unicode)
-        (puthash unicode char ucs-unicode-to-mule-cjk))
-     (puthash char unicode ucs-mule-cjk-to-unicode)))
- '((#xa1 ?¢®)
-   (#xa4 ?¢´)
-   (#xa7 ?¡×)
-   (#xa8 ?¡§)
-   (#xaa ?¨£)
-   (#xad ?¡©)
-   (#xae ?¢ç)
-   (#xb0 ?¡Æ)
-   (#xb1 ?¡¾)
-   (#xb2 ?©÷)
-   (#xb3 ?©ø)
-   (#xb4 ?¢¥)
-   (#xb6 ?¢Ò)
-   (#xb7 ?¡¤)
-   (#xb8 ?¢¬)
-   (#xb9 ?©ö)
-   (#xba ?¨¬)
-   (#xbc ?¨ù)
-   (#xbd ?¨ö)
-   (#xbe ?¨ú)
-   (#xbf ?¢¯)
-   (#xc6 ?¨¡)
-   (#xd0 ?¨¢)
-   (#xd7 ?¡¿)
-   (#xd8 ?¨ª)
-   (#xde ?¨­)
-   (#xdf ?©¬)
-   (#xe6 ?©¡)
-   (#xf0 ?©£)
-   (#xf7 ?¡À)
-   (#xf8 ?©ª)
-   (#xfe ?©­)
-   (#x111 ?©¢)
-   (#x126 ?¨¤)
-   (#x127 ?©¤)
-   (#x131 ?©¥)
-   (#x132 ?¨¦)
-   (#x133 ?©¦)
-   (#x138 ?©§)
-   (#x13f ?¨¨)
-   (#x140 ?©¨)
-   (#x141 ?¨©)
-   (#x142 ?©©)
-   (#x149 ?©°)
-   (#x14a ?¨¯)
-   (#x14b ?©¯)
-   (#x152 ?¨«)
-   (#x153 ?©«)
-   (#x166 ?¨®)
-   (#x167 ?©®)
-   (#x2c7 ?¢§)
-   (#x2d0 ?¢°)
-   (#x2d8 ?¢¨)
-   (#x2d9 ?¢«)
-   (#x2da ?¢ª)
-   (#x2db ?¢­)
-   (#x2dd ?¢©)
-   (#x391 ?Â¥Ã)
-   (#x392 ?¥Â)
-   (#x393 ?¥Ã)
-   (#x394 ?¥Ä)
-   (#x395 ?¥Å)
-   (#x396 ?¥Æ)
-   (#x397 ?¥Ç)
-   (#x398 ?¥È)
-   (#x399 ?¥É)
-   (#x39a ?¥Ê)
-   (#x39b ?¥Ë)
-   (#x39c ?¥Ì)
-   (#x39d ?Â¥Ã)
-   (#x39e ?¥Î)
-   (#x39f ?Â¥Ã)
-   (#x3a0 ?Â¥Ã)
-   (#x3a1 ?¥Ñ)
-   (#x3a3 ?¥Ò)
-   (#x3a4 ?¥Ó)
-   (#x3a5 ?¥Ô)
-   (#x3a6 ?¥Õ)
-   (#x3a7 ?¥Ö)
-   (#x3a8 ?¥×)
-   (#x3a9 ?¥Ø)
-   (#x3b1 ?¥á)
-   (#x3b2 ?¥â)
-   (#x3b3 ?¥ã)
-   (#x3b4 ?¥ä)
-   (#x3b5 ?¥å)
-   (#x3b6 ?¥æ)
-   (#x3b7 ?¥ç)
-   (#x3b8 ?¥è)
-   (#x3b9 ?¥é)
-   (#x3ba ?¥ê)
-   (#x3bb ?¥ë)
-   (#x3bc ?¥ì)
-   (#x3bd ?¥í)
-   (#x3be ?¥î)
-   (#x3bf ?¥ï)
-   (#x3c0 ?¥ð)
-   (#x3c1 ?¥ñ)
-   (#x3c3 ?¥ò)
-   (#x3c4 ?¥ó)
-   (#x3c5 ?¥ô)
-   (#x3c6 ?¥õ)
-   (#x3c7 ?¥ö)
-   (#x3c8 ?¥÷)
-   (#x3c9 ?¥ø)
-   (#x401 ?¤)
-   (#x410 ?¬¡)
-   (#x411 ?¢)
-   (#x412 ?£)
-   (#x413 ?¬¤)
-   (#x414 ?´)
-   (#x415 ?¬¦)
-   (#x416 ?¬)
-   (#x417 ?©)
-   (#x418 ?»)
-   (#x419 ?¬«)
-   (#x41a ?¬¬)
-   (#x41b ?¬­)
-   (#x41c ?¨)
-   (#x41d ?¬¯)
-   (#x41e ?¬°)
-   (#x41f ?±)
-   (#x420 ?¬²)
-   (#x421 ?¬³)
-   (#x422 ?¬´)
-   (#x423 ?µ)
-   (#x424 ?¦)
-   (#x425 ?¬·)
-   (#x426 ?¬¸)
-   (#x427 ?¬¹)
-   (#x428 ?¼)
-   (#x429 ?¬»)
-   (#x42a ?¬¼)
-   (#x42b ?¬½)
-   (#x42c ?¬¾)
-   (#x42d ?¬¿)
-   (#x42e ?¬À)
-   (#x42f ?¬Ã)
-   (#x430 ?„)
-   (#x431 ?¬Ò)
-   (#x432 ?¬Ó)
-   (#x433 ?¬Ô)
-   (#x434 ?¬Õ)
-   (#x435 ?¬Ö)
-   (#x436 ?¯)
-   (#x437 ?¬Ù)
-   (#x438 ?¬Ú)
-   (#x439 ?¬Û)
-   (#x43a ?†)
-   (#x43b ?¬Ã)
-   (#x43c ?¬Þ)
-   (#x43d ?§)
-   (#x43e ?ˆ)
-   (#x43f ?‡)
-   (#x440 ?‰)
-   (#x441 ?‹)
-   (#x442 ?Š)
-   (#x443 ?Œ)
-   (#x444 ?¾)
-   (#x445 ?)
-   (#x446 ?)
-   (#x447 ?Ž)
-   (#x448 ?)
-   (#x449 ?‘)
-   (#x44a ?“)
-   (#x44b ?’)
-   (#x44c ?”)
-   (#x44d ?•)
-   (#x44e ?¬ð)
-   (#x44f ?–)
-   (#x451 ?¬×)
-   (#x2015 ?¡ª)
-   (#x2018 ?¡®)
-   (#x2019 ?¡¯)
-   (#x201c ?¡°)
-   (#x201d ?¡±)
-   (#x2020 ?¢Ó)
-   (#x2021 ?¢Ô)
-   (#x2025 ?¡¥)
-   (#x2026 ?¡¦)
-   (#x2030 ?¢¶)
-   (#x2032 ?¡Ç)
-   (#x2033 ?¡È)
-   (#x203b ?¡Ø)
-   (#x2074 ?©ù)
-   (#x207f ?©ú)
-   (#x2081 ?©û)
-   (#x2082 ?©ü)
-   (#x2083 ?©ý)
-   (#x2084 ?©þ)
-   (#x20ac ?¢æ)
-   (#x2103 ?¡É)
-   (#x2109 ?¢µ)
-   (#x2113 ?§¤)
-   (#x2116 ?¢à)
-   (#x2121 ?¢å)
-   (#x2122 ?¢â)
-   (#x2126 ?§Ù)
-   (#x212b ?¡Ê)
-   (#x2153 ?¨÷)
-   (#x2154 ?¨ø)
-   (#x215b ?¨û)
-   (#x215c ?¨ü)
-   (#x215d ?¨ý)
-   (#x215e ?¨þ)
-   (#x2160 ?¥°)
-   (#x2161 ?¥±)
-   (#x2162 ?¥²)
-   (#x2163 ?¥³)
-   (#x2164 ?¥´)
-   (#x2165 ?¥µ)
-   (#x2166 ?¥¶)
-   (#x2167 ?¥·)
-   (#x2168 ?¥¸)
-   (#x2169 ?¥¹)
-   (#x2170 ?¥¡)
-   (#x2171 ?¥¢)
-   (#x2172 ?¥£)
-   (#x2173 ?¥¤)
-   (#x2174 ?¥¥)
-   (#x2175 ?¥¦)
-   (#x2176 ?¥§)
-   (#x2177 ?¥¨)
-   (#x2178 ?¥©)
-   (#x2179 ?¥ª)
-   (#x2190 ?¡ç)
-   (#x2191 ?¡è)
-   (#x2192 ?¡æ)
-   (#x2193 ?¡é)
-   (#x2194 ?¡ê)
-   (#x2195 ?¢Õ)
-   (#x2196 ?¢Ø)
-   (#x2197 ?¢Ö)
-   (#x2198 ?¢Ù)
-   (#x2199 ?¢×)
-   (#x21d2 ?¢¡)
-   (#x21d4 ?¢¢)
-   (#x2200 ?¢£)
-   (#x2202 ?¡Ó)
-   (#x2203 ?¢¤)
-   (#x2207 ?¡Ô)
-   (#x2208 ?¡ô)
-   (#x220b ?¡õ)
-   (#x220f ?¢³)
-   (#x2211 ?¢²)
-   (#x221a ?¡î)
-   (#x221d ?¡ð)
-   (#x221e ?¡Ä)
-   (#x2220 ?¡Ã)
-   (#x2225 ?¡«)
-   (#x2227 ?¡ü)
-   (#x2228 ?¡ý)
-   (#x2229 ?¡û)
-   (#x222a ?¡ú)
-   (#x222b ?¡ò)
-   (#x222c ?¡ó)
-   (#x222e ?¢±)
-   (#x2234 ?¡Å)
-   (#x2235 ?¡ñ)
-   (#x223c ?¡­)
-   (#x223d ?¡ï)
-   (#x2252 ?¡Ö)
-   (#x2260 ?¡Ã)
-   (#x2261 ?¡Õ)
-   (#x2264 ?¡Â)
-   (#x2265 ?¡Ã)
-   (#x226a ?¡ì)
-   (#x226b ?¡í)
-   (#x2282 ?¡ø)
-   (#x2283 ?¡ù)
-   (#x2286 ?¡ö)
-   (#x2287 ?¡÷)
-   (#x2299 ?¢Ã)
-   (#x22a5 ?¡Ñ)
-   (#x2312 ?¡Ò)
-   (#x2460 ?¨ç)
-   (#x2461 ?¨è)
-   (#x2462 ?¨é)
-   (#x2463 ?¨ê)
-   (#x2464 ?¨ë)
-   (#x2465 ?¨ì)
-   (#x2466 ?¨í)
-   (#x2467 ?¨î)
-   (#x2468 ?¨ï)
-   (#x2469 ?¨ð)
-   (#x246a ?¨ñ)
-   (#x246b ?¨ò)
-   (#x246c ?¨ó)
-   (#x246d ?¨ô)
-   (#x246e ?¨õ)
-   (#x2474 ?©ç)
-   (#x2475 ?©è)
-   (#x2476 ?©é)
-   (#x2477 ?©ê)
-   (#x2478 ?©ë)
-   (#x2479 ?©ì)
-   (#x247a ?©í)
-   (#x247b ?©î)
-   (#x247c ?©ï)
-   (#x247d ?©ð)
-   (#x247e ?©ñ)
-   (#x247f ?©ò)
-   (#x2480 ?©ó)
-   (#x2481 ?©ô)
-   (#x2482 ?©õ)
-   (#x249c ?©Ã)
-   (#x249d ?©Î)
-   (#x249e ?©Ã)
-   (#x249f ?©Ã)
-   (#x24a0 ?©Ñ)
-   (#x24a1 ?©Ò)
-   (#x24a2 ?©Ó)
-   (#x24a3 ?©Ô)
-   (#x24a4 ?©Õ)
-   (#x24a5 ?©Ö)
-   (#x24a6 ?©×)
-   (#x24a7 ?©Ø)
-   (#x24a8 ?©Ù)
-   (#x24a9 ?©Ú)
-   (#x24aa ?©Û)
-   (#x24ab ?©Ü)
-   (#x24ac ?©Ã)
-   (#x24ad ?©Þ)
-   (#x24ae ?©ß)
-   (#x24af ?©à)
-   (#x24b0 ?©á)
-   (#x24b1 ?©â)
-   (#x24b2 ?©ã)
-   (#x24b3 ?©ä)
-   (#x24b4 ?©å)
-   (#x24b5 ?©æ)
-   (#x24d0 ?¨Ã)
-   (#x24d1 ?¨Î)
-   (#x24d2 ?¨Ã)
-   (#x24d3 ?¨Ã)
-   (#x24d4 ?¨Ñ)
-   (#x24d5 ?¨Ò)
-   (#x24d6 ?¨Ó)
-   (#x24d7 ?¨Ô)
-   (#x24d8 ?¨Õ)
-   (#x24d9 ?¨Ö)
-   (#x24da ?¨×)
-   (#x24db ?¨Ø)
-   (#x24dc ?¨Ù)
-   (#x24dd ?¨Ú)
-   (#x24de ?¨Û)
-   (#x24df ?¨Ü)
-   (#x24e0 ?¨Ã)
-   (#x24e1 ?¨Þ)
-   (#x24e2 ?¨ß)
-   (#x24e3 ?¨à)
-   (#x24e4 ?¨á)
-   (#x24e5 ?¨â)
-   (#x24e6 ?¨ã)
-   (#x24e7 ?¨ä)
-   (#x24e8 ?¨å)
-   (#x24e9 ?¨æ)
-   (#x2500 ?¦¡)
-   (#x2501 ?¦¬)
-   (#x2502 ?¦¢)
-   (#x2503 ?¦­)
-   (#x250c ?¦£)
-   (#x250d ?¦È)
-   (#x250e ?¦Ç)
-   (#x250f ?¦®)
-   (#x2510 ?¦¤)
-   (#x2511 ?¦Â)
-   (#x2512 ?¦Ã)
-   (#x2513 ?¦¯)
-   (#x2514 ?¦¦)
-   (#x2515 ?¦Æ)
-   (#x2516 ?¦Å)
-   (#x2517 ?¦±)
-   (#x2518 ?¦¥)
-   (#x2519 ?¦Ä)
-   (#x251a ?¦Ã)
-   (#x251b ?¦°)
-   (#x251c ?¦§)
-   (#x251d ?¦¼)
-   (#x251e ?¦É)
-   (#x251f ?¦Ê)
-   (#x2520 ?¦·)
-   (#x2521 ?¦Ë)
-   (#x2522 ?¦Ì)
-   (#x2523 ?¦²)
-   (#x2524 ?¦©)
-   (#x2525 ?¦¾)
-   (#x2526 ?¦Ã)
-   (#x2527 ?¦Î)
-   (#x2528 ?¦¹)
-   (#x2529 ?¦Ã)
-   (#x252a ?¦Ã)
-   (#x252b ?¦´)
-   (#x252c ?¦¨)
-   (#x252d ?¦Ñ)
-   (#x252e ?¦Ò)
-   (#x252f ?¦¸)
-   (#x2530 ?¦½)
-   (#x2531 ?¦Ó)
-   (#x2532 ?¦Ô)
-   (#x2533 ?¦³)
-   (#x2534 ?¦ª)
-   (#x2535 ?¦Õ)
-   (#x2536 ?¦Ö)
-   (#x2537 ?¦º)
-   (#x2538 ?¦¿)
-   (#x2539 ?¦×)
-   (#x253a ?¦Ø)
-   (#x253b ?¦µ)
-   (#x253c ?¦«)
-   (#x253d ?¦Ù)
-   (#x253e ?¦Ú)
-   (#x253f ?¦»)
-   (#x2540 ?¦Û)
-   (#x2541 ?¦Ü)
-   (#x2542 ?¦À)
-   (#x2543 ?¦Ã)
-   (#x2544 ?¦Þ)
-   (#x2545 ?¦ß)
-   (#x2546 ?¦à)
-   (#x2547 ?¦á)
-   (#x2548 ?¦â)
-   (#x2549 ?¦ã)
-   (#x254a ?¦ä)
-   (#x254b ?¦¶)
-   (#x2592 ?¢Æ)
-   (#x25a0 ?¡á)
-   (#x25a1 ?¡à)
-   (#x25a3 ?¢Ã)
-   (#x25a4 ?¢Ç)
-   (#x25a5 ?¢È)
-   (#x25a6 ?¢Ë)
-   (#x25a7 ?¢Ê)
-   (#x25a8 ?¢É)
-   (#x25a9 ?¢Ì)
-   (#x25b2 ?¡ã)
-   (#x25b3 ?¡â)
-   (#x25b6 ?¢º)
-   (#x25b7 ?¢¹)
-   (#x25bc ?¡å)
-   (#x25bd ?¡ä)
-   (#x25c0 ?¢¸)
-   (#x25c1 ?¢·)
-   (#x25c6 ?¡ß)
-   (#x25c7 ?¡Þ)
-   (#x25c8 ?¢Â)
-   (#x25cb ?¡Û)
-   (#x25ce ?¡Ã)
-   (#x25cf ?¡Ü)
-   (#x25d0 ?¢Ä)
-   (#x25d1 ?¢Å)
-   (#x2605 ?¡Ú)
-   (#x2606 ?¡Ù)
-   (#x260e ?¢Ã)
-   (#x260f ?¢Î)
-   (#x261c ?¢Ã)
-   (#x261e ?¢Ñ)
-   (#x2640 ?¡Ã)
-   (#x2642 ?¡Î)
-   (#x2660 ?¢¼)
-   (#x2661 ?¢½)
-   (#x2663 ?¢À)
-   (#x2664 ?¢»)
-   (#x2665 ?¢¾)
-   (#x2667 ?¢¿)
-   (#x2668 ?¢Ã)
-   (#x2669 ?¢Û)
-   (#x266a ?¢Ü)
-   (#x266c ?¢Ã)
-   (#x266d ?¢Ú)
-   (#x3000 ?¡¡)
-   (#x3001 ?¡¢)
-   (#x3002 ?¡£)
-   (#x3003 ?¡¨)
-   (#x3008 ?\¡´)
-   (#x3009 ?\¡µ)
-   (#x300a ?\¡¶)
-   (#x300b ?\¡·)
-   (#x300c ?\¡¸)
-   (#x300d ?\¡¹)
-   (#x300e ?\¡º)
-   (#x300f ?\¡»)
-   (#x3010 ?\¡¼)
-   (#x3011 ?\¡½)
-   (#x3013 ?¡ë)
-   (#x3014 ?\¡²)
-   (#x3015 ?\¡³)
-   (#x3041 ?ª¡)
-   (#x3042 ?ª¢)
-   (#x3043 ?ª£)
-   (#x3044 ?ª¤)
-   (#x3045 ?ª¥)
-   (#x3046 ?ª¦)
-   (#x3047 ?ª§)
-   (#x3048 ?ª¨)
-   (#x3049 ?ª©)
-   (#x304a ?ªª)
-   (#x304b ?ª«)
-   (#x304c ?ª¬)
-   (#x304d ?ª­)
-   (#x304e ?ª®)
-   (#x304f ?ª¯)
-   (#x3050 ?ª°)
-   (#x3051 ?ª±)
-   (#x3052 ?ª²)
-   (#x3053 ?ª³)
-   (#x3054 ?ª´)
-   (#x3055 ?ªµ)
-   (#x3056 ?ª¶)
-   (#x3057 ?ª·)
-   (#x3058 ?ª¸)
-   (#x3059 ?ª¹)
-   (#x305a ?ªº)
-   (#x305b ?ª»)
-   (#x305c ?ª¼)
-   (#x305d ?ª½)
-   (#x305e ?ª¾)
-   (#x305f ?ª¿)
-   (#x3060 ?ªÀ)
-   (#x3061 ?ªÃ)
-   (#x3062 ?ªÂ)
-   (#x3063 ?ªÃ)
-   (#x3064 ?ªÄ)
-   (#x3065 ?ªÅ)
-   (#x3066 ?ªÆ)
-   (#x3067 ?ªÇ)
-   (#x3068 ?ªÈ)
-   (#x3069 ?ªÉ)
-   (#x306a ?ªÊ)
-   (#x306b ?ªË)
-   (#x306c ?ªÌ)
-   (#x306d ?ªÃ)
-   (#x306e ?ªÎ)
-   (#x306f ?ªÃ)
-   (#x3070 ?ªÃ)
-   (#x3071 ?ªÑ)
-   (#x3072 ?ªÒ)
-   (#x3073 ?ªÓ)
-   (#x3074 ?ªÔ)
-   (#x3075 ?ªÕ)
-   (#x3076 ?ªÖ)
-   (#x3077 ?ª×)
-   (#x3078 ?ªØ)
-   (#x3079 ?ªÙ)
-   (#x307a ?ªÚ)
-   (#x307b ?ªÛ)
-   (#x307c ?ªÜ)
-   (#x307d ?ªÃ)
-   (#x307e ?ªÞ)
-   (#x307f ?ªß)
-   (#x3080 ?ªà)
-   (#x3081 ?ªá)
-   (#x3082 ?ªâ)
-   (#x3083 ?ªã)
-   (#x3084 ?ªä)
-   (#x3085 ?ªå)
-   (#x3086 ?ªæ)
-   (#x3087 ?ªç)
-   (#x3088 ?ªè)
-   (#x3089 ?ªé)
-   (#x308a ?ªê)
-   (#x308b ?ªë)
-   (#x308c ?ªì)
-   (#x308d ?ªí)
-   (#x308e ?ªî)
-   (#x308f ?ªï)
-   (#x3090 ?ªð)
-   (#x3091 ?ªñ)
-   (#x3092 ?ªò)
-   (#x3093 ?ªó)
-   (#x30a1 ?«¡)
-   (#x30a2 ?«¢)
-   (#x30a3 ?«£)
-   (#x30a4 ?«¤)
-   (#x30a5 ?«¥)
-   (#x30a6 ?«¦)
-   (#x30a7 ?Ǥ)
-   (#x30a8 ?Ǭ)
-   (#x30a9 ?«©)
-   (#x30aa ?ǻ)
-   (#x30ab ?««)
-   (#x30ac ?«¬)
-   (#x30ad ?«­)
-   (#x30ae ?«®)
-   (#x30af ?«¯)
-   (#x30b0 ?«°)
-   (#x30b1 ?«±)
-   (#x30b2 ?«²)
-   (#x30b3 ?«³)
-   (#x30b4 ?«´)
-   (#x30b5 ?«µ)
-   (#x30b6 ?Ǧ)
-   (#x30b7 ?«·)
-   (#x30b8 ?«¸)
-   (#x30b9 ?«¹)
-   (#x30ba ?Ǽ)
-   (#x30bb ?«»)
-   (#x30bc ?«¼)
-   (#x30bd ?«½)
-   (#x30be ?«¾)
-   (#x30bf ?«¿)
-   (#x30c0 ?«À)
-   (#x30c1 ?«Ã)
-   (#x30c2 ?«Â)
-   (#x30c3 ?«Ã)
-   (#x30c4 ?«Ä)
-   (#x30c5 ?«Å)
-   (#x30c6 ?«Æ)
-   (#x30c7 ?«Ç)
-   (#x30c8 ?«È)
-   (#x30c9 ?«É)
-   (#x30ca ?«Ê)
-   (#x30cb ?«Ë)
-   (#x30cc ?«Ì)
-   (#x30cd ?«Ã)
-   (#x30ce ?«Î)
-   (#x30cf ?«Ã)
-   (#x30d0 ?«Ã)
-   (#x30d1 ?«Ñ)
-   (#x30d2 ?«Ò)
-   (#x30d3 ?«Ó)
-   (#x30d4 ?«Ô)
-   (#x30d5 ?«Õ)
-   (#x30d6 ?«Ö)
-   (#x30d7 ?«×)
-   (#x30d8 ?«Ø)
-   (#x30d9 ?«Ù)
-   (#x30da ?«Ú)
-   (#x30db ?«Û)
-   (#x30dc ?«Ü)
-   (#x30dd ?«Ã)
-   (#x30de ?«Þ)
-   (#x30df ?«ß)
-   (#x30e0 ?«à)
-   (#x30e1 ?«á)
-   (#x30e2 ?«â)
-   (#x30e3 ?«ã)
-   (#x30e4 ?«ä)
-   (#x30e5 ?«å)
-   (#x30e6 ?«æ)
-   (#x30e7 ?«ç)
-   (#x30e8 ?«è)
-   (#x30e9 ?«é)
-   (#x30ea ?«ê)
-   (#x30eb ?«ë)
-   (#x30ec ?«ì)
-   (#x30ed ?«í)
-   (#x30ee ?«î)
-   (#x30ef ?«ï)
-   (#x30f0 ?«ð)
-   (#x30f1 ?«ñ)
-   (#x30f2 ?«ò)
-   (#x30f3 ?«ó)
-   (#x30f4 ?«ô)
-   (#x30f5 ?«õ)
-   (#x30f6 ?«ö)
-   (#x3131 ?¤¡)
-   (#x3132 ?¤¢)
-   (#x3133 ?¤£)
-   (#x3134 ?¤¤)
-   (#x3135 ?¤¥)
-   (#x3136 ?¤¦)
-   (#x3137 ?¤§)
-   (#x3138 ?¤¨)
-   (#x3139 ?¤©)
-   (#x313a ?¤ª)
-   (#x313b ?¤«)
-   (#x313c ?¤¬)
-   (#x313d ?¤­)
-   (#x313e ?¤®)
-   (#x313f ?¤¯)
-   (#x3140 ?¤°)
-   (#x3141 ?¤±)
-   (#x3142 ?¤²)
-   (#x3143 ?¤³)
-   (#x3144 ?¤´)
-   (#x3145 ?¤µ)
-   (#x3146 ?¤¶)
-   (#x3147 ?¤·)
-   (#x3148 ?¤¸)
-   (#x3149 ?¤¹)
-   (#x314a ?¤º)
-   (#x314b ?¤»)
-   (#x314c ?¤¼)
-   (#x314d ?¤½)
-   (#x314e ?¤¾)
-   (#x314f ?¤¿)
-   (#x3150 ?¤À)
-   (#x3151 ?¤Ã)
-   (#x3152 ?¤Â)
-   (#x3153 ?¤Ã)
-   (#x3154 ?¤Ä)
-   (#x3155 ?¤Å)
-   (#x3156 ?¤Æ)
-   (#x3157 ?¤Ç)
-   (#x3158 ?¤È)
-   (#x3159 ?¤É)
-   (#x315a ?¤Ê)
-   (#x315b ?¤Ë)
-   (#x315c ?¤Ì)
-   (#x315d ?¤Ã)
-   (#x315e ?¤Î)
-   (#x315f ?¤Ã)
-   (#x3160 ?¤Ã)
-   (#x3161 ?¤Ñ)
-   (#x3162 ?¤Ò)
-   (#x3163 ?¤Ó)
-   (#x3164 ?¤Ô)
-   (#x3165 ?¤Õ)
-   (#x3166 ?¤Ö)
-   (#x3167 ?¤×)
-   (#x3168 ?¤Ø)
-   (#x3169 ?¤Ù)
-   (#x316a ?¤Ú)
-   (#x316b ?¤Û)
-   (#x316c ?¤Ü)
-   (#x316d ?¤Ã)
-   (#x316e ?¤Þ)
-   (#x316f ?¤ß)
-   (#x3170 ?¤à)
-   (#x3171 ?¤á)
-   (#x3172 ?¤â)
-   (#x3173 ?¤ã)
-   (#x3174 ?¤ä)
-   (#x3175 ?¤å)
-   (#x3176 ?¤æ)
-   (#x3177 ?¤ç)
-   (#x3178 ?¤è)
-   (#x3179 ?¤é)
-   (#x317a ?¤ê)
-   (#x317b ?¤ë)
-   (#x317c ?¤ì)
-   (#x317d ?¤í)
-   (#x317e ?¤î)
-   (#x317f ?¤ï)
-   (#x3180 ?¤ð)
-   (#x3181 ?¤ñ)
-   (#x3182 ?¤ò)
-   (#x3183 ?¤ó)
-   (#x3184 ?¤ô)
-   (#x3185 ?¤õ)
-   (#x3186 ?¤ö)
-   (#x3187 ?¤÷)
-   (#x3188 ?¤ø)
-   (#x3189 ?¤ù)
-   (#x318a ?¤ú)
-   (#x318b ?¤û)
-   (#x318c ?¤ü)
-   (#x318d ?¤ý)
-   (#x318e ?¤þ)
-   (#x3200 ?©±)
-   (#x3201 ?©²)
-   (#x3202 ?©³)
-   (#x3203 ?©´)
-   (#x3204 ?©µ)
-   (#x3205 ?©¶)
-   (#x3206 ?©·)
-   (#x3207 ?©¸)
-   (#x3208 ?©¹)
-   (#x3209 ?©º)
-   (#x320a ?©»)
-   (#x320b ?©¼)
-   (#x320c ?©½)
-   (#x320d ?©¾)
-   (#x320e ?©¿)
-   (#x320f ?©À)
-   (#x3210 ?©Ã)
-   (#x3211 ?©Â)
-   (#x3212 ?©Ã)
-   (#x3213 ?©Ä)
-   (#x3214 ?©Å)
-   (#x3215 ?©Æ)
-   (#x3216 ?©Ç)
-   (#x3217 ?©È)
-   (#x3218 ?©É)
-   (#x3219 ?©Ê)
-   (#x321a ?©Ë)
-   (#x321b ?©Ì)
-   (#x321c ?¢ß)
-   (#x3260 ?¨±)
-   (#x3261 ?¨²)
-   (#x3262 ?¨³)
-   (#x3263 ?¨´)
-   (#x3264 ?¨µ)
-   (#x3265 ?¨¶)
-   (#x3266 ?¨·)
-   (#x3267 ?¨¸)
-   (#x3268 ?¨¹)
-   (#x3269 ?¨º)
-   (#x326a ?¨»)
-   (#x326b ?¨¼)
-   (#x326c ?¨½)
-   (#x326d ?¨¾)
-   (#x326e ?¨¿)
-   (#x326f ?¨À)
-   (#x3270 ?¨Ã)
-   (#x3271 ?¨Â)
-   (#x3272 ?¨Ã)
-   (#x3273 ?¨Ä)
-   (#x3274 ?¨Å)
-   (#x3275 ?¨Æ)
-   (#x3276 ?¨Ç)
-   (#x3277 ?¨È)
-   (#x3278 ?¨É)
-   (#x3279 ?¨Ê)
-   (#x327a ?¨Ë)
-   (#x327b ?¨Ì)
-   (#x327f ?¢Þ)
-   (#x3380 ?§É)
-   (#x3381 ?§Ê)
-   (#x3382 ?§Ë)
-   (#x3383 ?§Ì)
-   (#x3384 ?§Ã)
-   (#x3388 ?§º)
-   (#x3389 ?§»)
-   (#x338a ?§Ü)
-   (#x338b ?§Ã)
-   (#x338c ?§Þ)
-   (#x338d ?§¶)
-   (#x338e ?§·)
-   (#x338f ?§¸)
-   (#x3390 ?§Ô)
-   (#x3391 ?§Õ)
-   (#x3392 ?§Ö)
-   (#x3393 ?§×)
-   (#x3394 ?§Ø)
-   (#x3395 ?§¡)
-   (#x3396 ?§¢)
-   (#x3397 ?§£)
-   (#x3398 ?§¥)
-   (#x3399 ?§«)
-   (#x339a ?§¬)
-   (#x339b ?§­)
-   (#x339c ?§®)
-   (#x339d ?§¯)
-   (#x339e ?§°)
-   (#x339f ?§±)
-   (#x33a0 ?§²)
-   (#x33a1 ?§³)
-   (#x33a2 ?§´)
-   (#x33a3 ?§§)
-   (#x33a4 ?§¨)
-   (#x33a5 ?§©)
-   (#x33a6 ?§ª)
-   (#x33a7 ?§½)
-   (#x33a8 ?§¾)
-   (#x33a9 ?§å)
-   (#x33aa ?§æ)
-   (#x33ab ?§ç)
-   (#x33ac ?§è)
-   (#x33ad ?§á)
-   (#x33ae ?§â)
-   (#x33af ?§ã)
-   (#x33b0 ?§¿)
-   (#x33b1 ?§À)
-   (#x33b2 ?§Ã)
-   (#x33b3 ?§Â)
-   (#x33b4 ?§Ã)
-   (#x33b5 ?§Ä)
-   (#x33b6 ?§Å)
-   (#x33b7 ?§Æ)
-   (#x33b8 ?§Ç)
-   (#x33b9 ?§È)
-   (#x33ba ?§Î)
-   (#x33bb ?§Ã)
-   (#x33bc ?§Ã)
-   (#x33bd ?§Ñ)
-   (#x33be ?§Ò)
-   (#x33bf ?§Ó)
-   (#x33c0 ?§Ú)
-   (#x33c1 ?§Û)
-   (#x33c2 ?¢ã)
-   (#x33c3 ?§ì)
-   (#x33c4 ?§¦)
-   (#x33c5 ?§à)
-   (#x33c6 ?§ï)
-   (#x33c7 ?¢á)
-   (#x33c8 ?§¼)
-   (#x33c9 ?§í)
-   (#x33ca ?§µ)
-   (#x33cf ?§¹)
-   (#x33d0 ?§ê)
-   (#x33d3 ?§ë)
-   (#x33d6 ?§ß)
-   (#x33d8 ?¢ä)
-   (#x33db ?§ä)
-   (#x33dc ?§î)
-   (#x33dd ?§é)
-   (#x4e00 ?ìé)
-   (#x4e01 ?ïË)
-   (#x4e03 ?öÒ)
-   (#x4e07 ?ز)
-   (#x4e08 ?íÛ)
-   (#x4e09 ?ß²)
-   (#x4e0a ?ß¾)
-   (#x4e0b ?ù»)
-   (#x4e0d ?Üô)
-   (#x4e11 ?õä)
-   (#x4e14 ?ó¦)
-   (#x4e15 ?Ãà)
-   (#x4e16 ?á¦)
-   (#x4e18 ?Îø)
-   (#x4e19 ?Ü°)
-   (#x4e1e ?ãª)
-   (#x4e2d ?ñé)
-   (#x4e32 ?Ãú)
-   (#x4e38 ?ü¯)
-   (#x4e39 ?Ó¡)
-   (#x4e3b ?ñ«)
-   (#x4e42 ?çÑ)
-   (#x4e43 ?Ò¬)
-   (#x4e45 ?Îù)
-   (#x4e4b ?ñý)
-   (#x4e4d ?Þ¿)
-   (#x4e4e ?ûº)
-   (#x4e4f ?ù¹)
-   (#x4e56 ?ÃŽÃ’)
-   (#x4e58 ?ã«)
-   (#x4e59 ?ëà)
-   (#x4e5d ?Îú)
-   (#x4e5e ?Ë÷)
-   (#x4e5f ?å¥)
-   (#x4e6b ?Êá)
-   (#x4e6d ?ÔÌ)
-   (#x4e73 ?êá)
-   (#x4e76 ?Üã)
-   (#x4e77 ?ß­)
-   (#x4e7e ?Ëë)
-   (#x4e82 ?Õ¯)
-   (#x4e86 ?Öõ)
-   (#x4e88 ?åø)
-   (#x4e8b ?ÞÀ)
-   (#x4e8c ?ì£)
-   (#x4e8e ?éÃ)
-   (#x4e90 ?ê§)
-   (#x4e91 ?éö)
-   (#x4e92 ?û»)
-   (#x4e94 ?çé)
-   (#x4e95 ?ïÌ)
-   (#x4e98 ?Ãæ)
-   (#x4e9b ?ÞÃ)
-   (#x4e9e ?ä¬)
-   (#x4ea1 ?ØÌ)
-   (#x4ea2 ?ùñ)
-   (#x4ea4 ?Îß)
-   (#x4ea5 ?ú¤)
-   (#x4ea6 ?æ²)
-   (#x4ea8 ?úû)
-   (#x4eab ?ú½)
-   (#x4eac ?ÌÈ)
-   (#x4ead ?ïÃ)
-   (#x4eae ?ÕÕ)
-   (#x4eb6 ?Ó¢)
-   (#x4eba ?ìÑ)
-   (#x4ec0 ?ä§)
-   (#x4ec1 ?ìÒ)
-   (#x4ec4 ?ö±)
-   (#x4ec7 ?Îû)
-   (#x4eca ?ÃÑ)
-   (#x4ecb ?Ë¿)
-   (#x4ecd ?í¤)
-   (#x4ed4 ?í¨)
-   (#x4ed5 ?ÞÂ)
-   (#x4ed6 ?öâ)
-   (#x4ed7 ?íÜ)
-   (#x4ed8 ?Üõ)
-   (#x4ed9 ?à¹)
-   (#x4edd ?ÔÎ)
-   (#x4edf ?ôµ)
-   (#x4ee3 ?ÓÛ)
-   (#x4ee4 ?Öµ)
-   (#x4ee5 ?ì¤)
-   (#x4ef0 ?äæ)
-   (#x4ef2 ?ñê)
-   (#x4ef6 ?Ëì)
-   (#x4ef7 ?ËÀ)
-   (#x4efb ?ìò)
-   (#x4f01 ?Ãê)
-   (#x4f09 ?ùò)
-   (#x4f0a ?ì¥)
-   (#x4f0b ?Ãß)
-   (#x4f0d ?çê)
-   (#x4f0e ?Ãë)
-   (#x4f0f ?ÜÑ)
-   (#x4f10 ?Ûé)
-   (#x4f11 ?ýÌ)
-   (#x4f2f ?Û×)
-   (#x4f34 ?Úá)
-   (#x4f36 ?Ö¶)
-   (#x4f38 ?ãß)
-   (#x4f3a ?ÞÃ)
-   (#x4f3c ?ÞÄ)
-   (#x4f3d ?Ê¡)
-   (#x4f43 ?îì)
-   (#x4f46 ?Ó£)
-   (#x4f47 ?î·)
-   (#x4f48 ?øÃ)
-   (#x4f4d ?êÈ)
-   (#x4f4e ?î¸)
-   (#x4f4f ?ñ¬)
-   (#x4f50 ?ñ¥)
-   (#x4f51 ?éÎ)
-   (#x4f55 ?ù¼)
-   (#x4f59 ?åù)
-   (#x4f5a ?ìê)
-   (#x4f5b ?ÃÖ)
-   (#x4f5c ?íÂ)
-   (#x4f69 ?ø¥)
-   (#x4f6f ?åº)
-   (#x4f70 ?ÛØ)
-   (#x4f73 ?Ê¢)
-   (#x4f76 ?ÑÃ)
-   (#x4f7a ?îí)
-   (#x4f7e ?ìë)
-   (#x4f7f ?ÞÅ)
-   (#x4f81 ?ãà)
-   (#x4f83 ?ÊÉ)
-   (#x4f84 ?òé)
-   (#x4f86 ?ÕÎ)
-   (#x4f88 ?ö¶)
-   (#x4f8a ?ÎÂ)
-   (#x4f8b ?ÖÇ)
-   (#x4f8d ?ã´)
-   (#x4f8f ?ñ­)
-   (#x4f91 ?êâ)
-   (#x4f96 ?×Â)
-   (#x4f98 ?ó§)
-   (#x4f9b ?Ãê)
-   (#x4f9d ?ëî)
-   (#x4fae ?Ù²)
-   (#x4faf ?ý¥)
-   (#x4fb5 ?öÕ)
-   (#x4fb6 ?Õâ)
-   (#x4fbf ?øµ)
-   (#x4fc2 ?Ìõ)
-   (#x4fc3 ?õµ)
-   (#x4fc4 ?ä­)
-   (#x4fc9 ?çë)
-   (#x4fca ?ñÕ)
-   (#x4fce ?ð»)
-   (#x4fd1 ?éµ)
-   (#x4fd3 ?ÌÉ)
-   (#x4fd4 ?úÕ)
-   (#x4fd7 ?áÔ)
-   (#x4fda ?×Ö)
-   (#x4fdd ?ÃœÃ)
-   (#x4fdf ?ÞÆ)
-   (#x4fe0 ?úï)
-   (#x4fe1 ?ãá)
-   (#x4fee ?áó)
-   (#x4fef ?Üö)
-   (#x4ff1 ?Îü)
-   (#x4ff3 ?ÛÄ)
-   (#x4ff5 ?øñ)
-   (#x4ff8 ?Üä)
-   (#x4ffa ?åï)
-   (#x5002 ?ܱ)
-   (#x5006 ?ÕÖ)
-   (#x5009 ?óÚ)
-   (#x500b ?ËÃ)
-   (#x500d ?ÛÃ)
-   (#x5011 ?Ùú)
-   (#x5012 ?Óî)
-   (#x5016 ?ú¸)
-   (#x5019 ?ý¦)
-   (#x501a ?ëï)
-   (#x501c ?ô¦)
-   (#x501e ?ÌÊ)
-   (#x501f ?ó¨)
-   (#x5021 ?óÛ)
-   (#x5023 ?Û§)
-   (#x5024 ?ö·)
-   (#x5026 ?Ãæ)
-   (#x5027 ?ðò)
-   (#x5028 ?ËÚ)
-   (#x502a ?çÒ)
-   (#x502b ?×Ã)
-   (#x502c ?öð)
-   (#x502d ?èÞ)
-   (#x503b ?å¦)
-   (#x5043 ?åç)
-   (#x5047 ?Ê£)
-   (#x5048 ?̧)
-   (#x5049 ?êÉ)
-   (#x504f ?ø¶)
-   (#x5055 ?ú¥)
-   (#x505a ?ñ®)
-   (#x505c ?ïÎ)
-   (#x5065 ?Ëí)
-   (#x5074 ?ö°)
-   (#x5075 ?ïÃ)
-   (#x5076 ?éÃ)
-   (#x5078 ?÷Þ)
-   (#x5080 ?ÎÓ)
-   (#x5085 ?Ü÷)
-   (#x508d ?Û¨)
-   (#x5091 ?Ëø)
-   (#x5098 ?ß¡)
-   (#x5099 ?Ãá)
-   (#x50ac ?õÊ)
-   (#x50ad ?é¶)
-   (#x50b2 ?çì)
-   (#x50b3 ?îî)
-   (#x50b5 ?óð)
-   (#x50b7 ?ß¿)
-   (#x50be ?ÌË)
-   (#x50c5 ?ÃÃ)
-   (#x50c9 ?ôÒ)
-   (#x50ca ?àº)
-   (#x50cf ?ßÀ)
-   (#x50d1 ?Îà)
-   (#x50d5 ?ÜÒ)
-   (#x50d6 ?ýê)
-   (#x50da ?Öö)
-   (#x50de ?êÊ)
-   (#x50e5 ?èé)
-   (#x50e7 ?ã¬)
-   (#x50ed ?óÃ)
-   (#x50f9 ?ʤ)
-   (#x50fb ?Ûø)
-   (#x50ff ?ÞÇ)
-   (#x5100 ?ëð)
-   (#x5101 ?ñÖ)
-   (#x5104 ?åâ)
-   (#x5106 ?ÌÌ)
-   (#x5109 ?Ëû)
-   (#x5112 ?êã)
-   (#x511f ?ßÃ)
-   (#x5121 ?Öí)
-   (#x512a ?éÃ)
-   (#x5132 ?î¹)
-   (#x5137 ?Õã)
-   (#x513a ?ÑÓ)
-   (#x513c ?åð)
-   (#x5140 ?è´)
-   (#x5141 ?ëÃ)
-   (#x5143 ?êª)
-   (#x5144 ?úü)
-   (#x5145 ?õö)
-   (#x5146 ?ð¼)
-   (#x5147 ?ýÔ)
-   (#x5148 ?à»)
-   (#x5149 ?ÎÃ)
-   (#x514b ?к)
-   (#x514c ?ּ)
-   (#x514d ?Øó)
-   (#x514e ?÷Ã)
-   (#x5152 ?ä®)
-   (#x515c ?Ôß)
-   (#x5162 ?Ãç)
-   (#x5165 ?ìý)
-   (#x5167 ?Ò®)
-   (#x5168 ?îï)
-   (#x5169 ?Õ×)
-   (#x516a ?êä)
-   (#x516b ?ø¢)
-   (#x516c ?Ãë)
-   (#x516d ?׿)
-   (#x516e ?û±)
-   (#x5171 ?Ãì)
-   (#x5175 ?ܲ)
-   (#x5176 ?Ãì)
-   (#x5177 ?Îý)
-   (#x5178 ?îð)
-   (#x517c ?ÌÂ)
-   (#x5180 ?Ãí)
-   (#x5186 ?å÷)
-   (#x518a ?óü)
-   (#x518d ?î¢)
-   (#x5192 ?Ù³)
-   (#x5195 ?Øô)
-   (#x5197 ?é·)
-   (#x51a0 ?ή)
-   (#x51a5 ?Ù¢)
-   (#x51aa ?Øñ)
-   (#x51ac ?ÔÃ)
-   (#x51b6 ?å§)
-   (#x51b7 ?ÕÒ)
-   (#x51bd ?Ö©)
-   (#x51c4 ?ô¢)
-   (#x51c6 ?ñ×)
-   (#x51c9 ?ÕØ)
-   (#x51cb ?ð½)
-   (#x51cc ?×Ã)
-   (#x51cd ?ÔÃ)
-   (#x51dc ?×Ã)
-   (#x51dd ?ëê)
-   (#x51de ?ýë)
-   (#x51e1 ?Ûí)
-   (#x51f0 ?üÅ)
-   (#x51f1 ?ËÂ)
-   (#x51f6 ?ýÕ)
-   (#x51f8 ?ôÈ)
-   (#x51f9 ?èê)
-   (#x51fa ?õó)
-   (#x51fd ?ùÞ)
-   (#x5200 ?Óï)
-   (#x5203 ?ìÓ)
-   (#x5206 ?ÃÂ)
-   (#x5207 ?ï·)
-   (#x5208 ?çÔ)
-   (#x520a ?ÊÊ)
-   (#x520e ?Ùû)
-   (#x5211 ?úý)
-   (#x5217 ?Öª)
-   (#x521d ?ôø)
-   (#x5224 ?÷÷)
-   (#x5225 ?ܬ)
-   (#x5229 ?××)
-   (#x522a ?ߢ)
-   (#x522e ?ξ)
-   (#x5230 ?Óð)
-   (#x5236 ?ð¤)
-   (#x5237 ?áì)
-   (#x5238 ?Ãç)
-   (#x5239 ?óË)
-   (#x523a ?í©)
-   (#x523b ?ʾ)
-   (#x5243 ?ôï)
-   (#x5247 ?öÎ)
-   (#x524a ?Þû)
-   (#x524b ?л)
-   (#x524c ?Õ·)
-   (#x524d ?îñ)
-   (#x5254 ?ô¨)
-   (#x5256 ?Üø)
-   (#x525b ?˧)
-   (#x525d ?ÚÎ)
-   (#x5261 ?àæ)
-   (#x5269 ?í¥)
-   (#x526a ?îò)
-   (#x526f ?Üù)
-   (#x5272 ?ùÜ)
-   (#x5275 ?óÜ)
-   (#x527d ?øò)
-   (#x527f ?ôù)
-   (#x5283 ?üñ)
-   (#x5287 ?м)
-   (#x5288 ?Ûù)
-   (#x5289 ?×±)
-   (#x528d ?Ëü)
-   (#x5291 ?ð¥)
-   (#x5292 ?Ëý)
-   (#x529b ?Õô)
-   (#x529f ?Ãí)
-   (#x52a0 ?Ê¥)
-   (#x52a3 ?Ö«)
-   (#x52a4 ?ÃÂ)
-   (#x52a9 ?ð¾)
-   (#x52aa ?Ò½)
-   (#x52ab ?̤)
-   (#x52be ?ú¶)
-   (#x52c1 ?ÃŒÃ)
-   (#x52c3 ?Úú)
-   (#x52c5 ?öÃ)
-   (#x52c7 ?é¸)
-   (#x52c9 ?Øõ)
-   (#x52cd ?ÌÎ)
-   (#x52d2 ?×Ã)
-   (#x52d5 ?ÔÑ)
-   (#x52d6 ?éí)
-   (#x52d8 ?Êë)
-   (#x52d9 ?Ùâ)
-   (#x52db ?ý²)
-   (#x52dd ?ã­)
-   (#x52de ?ÖÌ)
-   (#x52df ?Ù´)
-   (#x52e2 ?á§)
-   (#x52e3 ?îÓ)
-   (#x52e4 ?ÃÃ)
-   (#x52f3 ?ý³)
-   (#x52f5 ?Õä)
-   (#x52f8 ?Ãè)
-   (#x52fa ?íÃ)
-   (#x52fb ?в)
-   (#x52fe ?Îþ)
-   (#x52ff ?Ú¨)
-   (#x5305 ?øÃ)
-   (#x5308 ?ýÖ)
-   (#x530d ?øÑ)
-   (#x530f ?øÒ)
-   (#x5310 ?ÜÓ)
-   (#x5315 ?Ãâ)
-   (#x5316 ?ûù)
-   (#x5317 ?ÃÃ)
-   (#x5319 ?ãµ)
-   (#x5320 ?íÃ)
-   (#x5321 ?ÎÄ)
-   (#x5323 ?Ë¡)
-   (#x532a ?Ãã)
-   (#x532f ?üÃ)
-   (#x5339 ?ù¯)
-   (#x533f ?Òû)
-   (#x5340 ?Ï¡)
-   (#x5341 ?ä¨)
-   (#x5343 ?ô¶)
-   (#x5344 ?ìþ)
-   (#x5347 ?ã®)
-   (#x5348 ?çí)
-   (#x5349 ?ýÃ)
-   (#x534a ?Úâ)
-   (#x534d ?س)
-   (#x5351 ?Ãä)
-   (#x5352 ?ðï)
-   (#x5353 ?öñ)
-   (#x5354 ?úð)
-   (#x5357 ?Ñõ)
-   (#x535a ?ÚÃ)
-   (#x535c ?ÜÔ)
-   (#x535e ?ܦ)
-   (#x5360 ?ï¿)
-   (#x5366 ?ÃŽÃ)
-   (#x5368 ?àÙ)
-   (#x536f ?ÙÖ)
-   (#x5370 ?ìÔ)
-   (#x5371 ?êË)
-   (#x5374 ?Ê¿)
-   (#x5375 ?Õ°)
-   (#x5377 ?Ãé)
-   (#x537d ?ñí)
-   (#x537f ?ÃŒÃ)
-   (#x5384 ?äø)
-   (#x5393 ?äí)
-   (#x5398 ?×Ø)
-   (#x539a ?ý§)
-   (#x539f ?ê«)
-   (#x53a0 ?ö²)
-   (#x53a5 ?Ãð)
-   (#x53a6 ?ù½)
-   (#x53ad ?æô)
-   (#x53bb ?ËÛ)
-   (#x53c3 ?óÑ)
-   (#x53c8 ?éÑ)
-   (#x53c9 ?ó©)
-   (#x53ca ?Ãà)
-   (#x53cb ?éÒ)
-   (#x53cd ?Úã)
-   (#x53d4 ?âÒ)
-   (#x53d6 ?ö¢)
-   (#x53d7 ?áô)
-   (#x53db ?Úä)
-   (#x53e1 ?çÕ)
-   (#x53e2 ?õ¿)
-   (#x53e3 ?Ï¢)
-   (#x53e4 ?ͯ)
-   (#x53e5 ?Ï£)
-   (#x53e9 ?Í°)
-   (#x53ea ?ñþ)
-   (#x53eb ?У)
-   (#x53ec ?á¯)
-   (#x53ed ?ø£)
-   (#x53ef ?ʦ)
-   (#x53f0 ?÷»)
-   (#x53f1 ?òê)
-   (#x53f2 ?ÞÈ)
-   (#x53f3 ?éÓ)
-   (#x53f8 ?ÞÉ)
-   (#x5403 ?ýÞ)
-   (#x5404 ?ÊÀ)
-   (#x5408 ?ùê)
-   (#x5409 ?ÑÎ)
-   (#x540a ?îÔ)
-   (#x540c ?ÔÒ)
-   (#x540d ?Ù£)
-   (#x540e ?ý¨)
-   (#x540f ?×Ù)
-   (#x5410 ?÷Î)
-   (#x5411 ?ú¾)
-   (#x541b ?ÃÖ)
-   (#x541d ?×ð)
-   (#x541f ?ëá)
-   (#x5420 ?øÅ)
-   (#x5426 ?Üú)
-   (#x5429 ?ÃÃ)
-   (#x542b ?ùß)
-   (#x5433 ?çï)
-   (#x5438 ?ýå)
-   (#x5439 ?ö£)
-   (#x543b ?Ùü)
-   (#x543c ?ý©)
-   (#x543e ?çî)
-   (#x5442 ?Õå)
-   (#x5448 ?ïÃ)
-   (#x544a ?ͱ)
-   (#x5451 ?÷¢)
-   (#x5468 ?ñ²)
-   (#x546a ?ñ±)
-   (#x5471 ?Ͳ)
-   (#x5473 ?Ú«)
-   (#x5475 ?ʧ)
-   (#x547b ?ãâ)
-   (#x547c ?û¼)
-   (#x547d ?Ù¤)
-   (#x5480 ?îº)
-   (#x5486 ?øÓ)
-   (#x548c ?ûú)
-   (#x548e ?Ϥ)
-   (#x5490 ?Üû)
-   (#x54a4 ?öã)
-   (#x54a8 ?íª)
-   (#x54ab ?ò¡)
-   (#x54ac ?Îá)
-   (#x54b3 ?ú¦)
-   (#x54b8 ?ùà)
-   (#x54bd ?ìÖ)
-   (#x54c0 ?äî)
-   (#x54c1 ?ù¡)
-   (#x54c4 ?ûï)
-   (#x54c8 ?ùë)
-   (#x54c9 ?î£)
-   (#x54e1 ?ê¬)
-   (#x54e5 ?ʨ)
-   (#x54e8 ?ôú)
-   (#x54ed ?ÃÖ)
-   (#x54ee ?üö)
-   (#x54f2 ?ôÉ)
-   (#x54fa ?øÔ)
-   (#x5504 ?ø¦)
-   (#x5506 ?ÞÊ)
-   (#x5507 ?òÆ)
-   (#x550e ?×Ú)
-   (#x5510 ?ÓÃ)
-   (#x551c ?ØÅ)
-   (#x552f ?êæ)
-   (#x5531 ?óÃ)
-   (#x5535 ?äÚ)
-   (#x553e ?öä)
-   (#x5544 ?öò)
-   (#x5546 ?ßÂ)
-   (#x554f ?Ùý)
-   (#x5553 ?Ìö)
-   (#x5556 ?Óº)
-   (#x555e ?ä¯)
-   (#x5563 ?ùá)
-   (#x557c ?ð¦)
-   (#x5580 ?ËÓ)
-   (#x5584 ?à¼)
-   (#x5586 ?ôÊ)
-   (#x5587 ?Ôú)
-   (#x5589 ?ýª)
-   (#x558a ?ùâ)
-   (#x5598 ?ô·)
-   (#x5599 ?ýÂ)
-   (#x559a ?ü°)
-   (#x559c ?ýì)
-   (#x559d ?Êâ)
-   (#x55a7 ?ý½)
-   (#x55a9 ?êç)
-   (#x55aa ?ßÃ)
-   (#x55ab ?ÑÒ)
-   (#x55ac ?Îâ)
-   (#x55ae ?Ó¤)
-   (#x55c5 ?ý«)
-   (#x55c7 ?ßà)
-   (#x55d4 ?òÇ)
-   (#x55da ?çð)
-   (#x55dc ?Ãî)
-   (#x55df ?óª)
-   (#x55e3 ?ÞË)
-   (#x55e4 ?ö¸)
-   (#x55fd ?áõ)
-   (#x55fe ?ñ³)
-   (#x5606 ?÷£)
-   (#x5609 ?Ê©)
-   (#x5614 ?Ï¥)
-   (#x5617 ?ßÄ)
-   (#x562f ?á°)
-   (#x5632 ?ð¿)
-   (#x5634 ?ö¤)
-   (#x5636 ?ã¶)
-   (#x5653 ?úÆ)
-   (#x5668 ?Ãï)
-   (#x566b ?ýí)
-   (#x5674 ?ÃÄ)
-   (#x5686 ?ü÷)
-   (#x56a5 ?æ¿)
-   (#x56ac ?Þ­)
-   (#x56ae ?ú¿)
-   (#x56b4 ?åñ)
-   (#x56bc ?íÄ)
-   (#x56ca ?Ò¥)
-   (#x56cd ?ýî)
-   (#x56d1 ?õ¶)
-   (#x56da ?áö)
-   (#x56db ?ÞÌ)
-   (#x56de ?üÞ)
-   (#x56e0 ?ì×)
-   (#x56f0 ?ÃÃ)
-   (#x56f9 ?Ö·)
-   (#x56fa ?ͳ)
-   (#x5703 ?øÕ)
-   (#x5704 ?åØ)
-   (#x5708 ?Ãê)
-   (#x570b ?ÃÃ)
-   (#x570d ?êÌ)
-   (#x5712 ?ê®)
-   (#x5713 ?ê­)
-   (#x5716 ?Óñ)
-   (#x5718 ?Ó¥)
-   (#x571f ?÷Ã)
-   (#x5728 ?î¤)
-   (#x572d ?Ф)
-   (#x5730 ?ò¢)
-   (#x573b ?Ãð)
-   (#x5740 ?ò£)
-   (#x5742 ?÷ø)
-   (#x5747 ?г)
-   (#x574a ?Û©)
-   (#x574d ?Ó»)
-   (#x574e ?Êì)
-   (#x5750 ?ñ¦)
-   (#x5751 ?ËÕ)
-   (#x5761 ?֍)
-   (#x5764 ?ÃÞ)
-   (#x5766 ?÷¤)
-   (#x576a ?øÀ)
-   (#x576e ?ÓÃ)
-   (#x5770 ?ÃŒÃ)
-   (#x5775 ?Ϧ)
-   (#x577c ?öó)
-   (#x5782 ?á÷)
-   (#x5788 ?ÓÜ)
-   (#x578b ?úþ)
-   (#x5793 ?ú§)
-   (#x57a0 ?ëÙ)
-   (#x57a2 ?ϧ)
-   (#x57a3 ?ê¯)
-   (#x57c3 ?äï)
-   (#x57c7 ?é¹)
-   (#x57c8 ?ñØ)
-   (#x57cb ?ØØ)
-   (#x57ce ?àò)
-   (#x57df ?æ´)
-   (#x57e0 ?Üü)
-   (#x57f0 ?óñ)
-   (#x57f4 ?ãÃ)
-   (#x57f7 ?òû)
-   (#x57f9 ?ÛÆ)
-   (#x57fa ?Ãñ)
-   (#x57fc ?Ãò)
-   (#x5800 ?ÃÃœ)
-   (#x5802 ?ÓÑ)
-   (#x5805 ?̱)
-   (#x5806 ?֯)
-   (#x5808 ?˨)
-   (#x5809 ?ë¼)
-   (#x580a ?ä¾)
-   (#x581e ?ôÜ)
-   (#x5821 ?ÜÂ)
-   (#x5824 ?ð§)
-   (#x5827 ?æÀ)
-   (#x582a ?Êí)
-   (#x582f ?èë)
-   (#x5830 ?åè)
-   (#x5831 ?ÜÃ)
-   (#x5834 ?íÞ)
-   (#x5835 ?Óò)
-   (#x583a ?Ì÷)
-   (#x584a ?ÎÔ)
-   (#x584b ?ç«)
-   (#x584f ?ËÃ)
-   (#x5851 ?á±)
-   (#x5854 ?÷²)
-   (#x5857 ?Óó)
-   (#x5858 ?ÓÒ)
-   (#x585a ?õÀ)
-   (#x585e ?ßÃ)
-   (#x5861 ?îó)
-   (#x5862 ?çñ)
-   (#x5864 ?ý´)
-   (#x5875 ?òÈ)
-   (#x5879 ?óÒ)
-   (#x587c ?îô)
-   (#x587e ?âÓ)
-   (#x5883 ?ÌÑ)
-   (#x5885 ?ßê)
-   (#x5889 ?éº)
-   (#x5893 ?Ù×)
-   (#x589c ?õÃ)
-   (#x589e ?ñò)
-   (#x589f ?úÇ)
-   (#x58a8 ?Ùø)
-   (#x58a9 ?ÔÂ)
-   (#x58ae ?öå)
-   (#x58b3 ?ÃÃ…)
-   (#x58ba ?çò)
-   (#x58bb ?íß)
-   (#x58be ?ÊË)
-   (#x58c1 ?Ûú)
-   (#x58c5 ?èµ)
-   (#x58c7 ?Ó¦)
-   (#x58ce ?ýµ)
-   (#x58d1 ?ùÉ)
-   (#x58d3 ?äâ)
-   (#x58d5 ?û½)
-   (#x58d8 ?פ)
-   (#x58d9 ?ÃŽÃ…)
-   (#x58de ?ÎÕ)
-   (#x58df ?Öæ)
-   (#x58e4 ?å½)
-   (#x58eb ?ÞÃ)
-   (#x58ec ?ìó)
-   (#x58ef ?íà)
-   (#x58f9 ?ìì)
-   (#x58fa ?û¾)
-   (#x58fb ?ßë)
-   (#x58fd ?áø)
-   (#x590f ?ù¾)
-   (#x5914 ?Ãó)
-   (#x5915 ?àª)
-   (#x5916 ?èâ)
-   (#x5919 ?âÔ)
-   (#x591a ?Òý)
-   (#x591c ?å¨)
-   (#x5922 ?ÙÓ)
-   (#x5927 ?ÓÞ)
-   (#x5929 ?ô¸)
-   (#x592a ?÷¼)
-   (#x592b ?Üý)
-   (#x592d ?èì)
-   (#x592e ?äç)
-   (#x5931 ?ã÷)
-   (#x5937 ?ì¨)
-   (#x593e ?úñ)
-   (#x5944 ?åò)
-   (#x5947 ?Ãô)
-   (#x5948 ?Ò¯)
-   (#x5949 ?Üå)
-   (#x594e ?Ð¥)
-   (#x594f ?ñ´)
-   (#x5950 ?ü±)
-   (#x5951 ?Ìø)
-   (#x5954 ?ÃÆ)
-   (#x5955 ?úÑ)
-   (#x5957 ?֧)
-   (#x595a ?ú¨)
-   (#x5960 ?îõ)
-   (#x5962 ?ÞÎ)
-   (#x5967 ?çó)
-   (#x596a ?÷¬)
-   (#x596b ?ëÄ)
-   (#x596c ?íá)
-   (#x596d ?à«)
-   (#x596e ?ÃÇ)
-   (#x5973 ?Ò³)
-   (#x5974 ?Ò¿)
-   (#x5978 ?ÊÌ)
-   (#x597d ?û¿)
-   (#x5982 ?åý)
-   (#x5983 ?ÃÃ¥)
-   (#x5984 ?ØÃ)
-   (#x598a ?ìô)
-   (#x5993 ?Ãõ)
-   (#x5996 ?èí)
-   (#x5997 ?ÃÃ’)
-   (#x5999 ?ÙØ)
-   (#x59a5 ?öæ)
-   (#x59a8 ?Ûª)
-   (#x59ac ?ֈ)
-   (#x59b9 ?ØÙ)
-   (#x59bb ?ô£)
-   (#x59be ?ôÃ)
-   (#x59c3 ?ïÑ)
-   (#x59c6 ?Ùµ)
-   (#x59c9 ?í«)
-   (#x59cb ?ã·)
-   (#x59d0 ?î»)
-   (#x59d1 ?Í´)
-   (#x59d3 ?àó)
-   (#x59d4 ?êÃ)
-   (#x59d9 ?ìõ)
-   (#x59da ?èî)
-   (#x59dc ?Ë©)
-   (#x59dd ?ñ¯)
-   (#x59e6 ?ÊÃ)
-   (#x59e8 ?ì©)
-   (#x59ea ?òë)
-   (#x59ec ?ýï)
-   (#x59ee ?ùó)
-   (#x59f8 ?æÃ)
-   (#x59fb ?ìØ)
-   (#x59ff ?í¬)
-   (#x5a01 ?êÎ)
-   (#x5a03 ?èß)
-   (#x5a11 ?ÞÃ)
-   (#x5a18 ?Ò¦)
-   (#x5a1b ?çô)
-   (#x5a1c ?ÑÖ)
-   (#x5a1f ?æÂ)
-   (#x5a20 ?ãã)
-   (#x5a25 ?ä°)
-   (#x5a29 ?Ø´)
-   (#x5a36 ?ö¥)
-   (#x5a3c ?óÞ)
-   (#x5a41 ?×¥)
-   (#x5a46 ?֏)
-   (#x5a49 ?èÆ)
-   (#x5a5a ?ûæ)
-   (#x5a62 ?Ãæ)
-   (#x5a66 ?Üþ)
-   (#x5a92 ?ØÚ)
-   (#x5a9a ?Ú¬)
-   (#x5a9b ?ê°)
-   (#x5aa4 ?ã¸)
-   (#x5ac1 ?ʪ)
-   (#x5ac2 ?áù)
-   (#x5ac4 ?ê±)
-   (#x5ac9 ?òì)
-   (#x5acc ?úî)
-   (#x5ae1 ?îÕ)
-   (#x5ae6 ?ùô)
-   (#x5ae9 ?Òì)
-   (#x5b05 ?ûû)
-   (#x5b09 ?ýð)
-   (#x5b0b ?à½)
-   (#x5b0c ?Îã)
-   (#x5b16 ?øÆ)
-   (#x5b2a ?Þ®)
-   (#x5b40 ?ßÅ)
-   (#x5b43 ?å¾)
-   (#x5b50 ?í­)
-   (#x5b51 ?úê)
-   (#x5b54 ?Ãî)
-   (#x5b55 ?í¦)
-   (#x5b57 ?í®)
-   (#x5b58 ?ðí)
-   (#x5b5a ?Ý¡)
-   (#x5b5c ?í¯)
-   (#x5b5d ?üø)
-   (#x5b5f ?Øë)
-   (#x5b63 ?Ìù)
-   (#x5b64 ?͵)
-   (#x5b69 ?ú©)
-   (#x5b6b ?áÃ)
-   (#x5b70 ?âÕ)
-   (#x5b71 ?íÃ)
-   (#x5b75 ?Ý¢)
-   (#x5b78 ?ùÊ)
-   (#x5b7a ?êè)
-   (#x5b7c ?åí)
-   (#x5b85 ?Óë)
-   (#x5b87 ?éÔ)
-   (#x5b88 ?áú)
-   (#x5b89 ?äÌ)
-   (#x5b8b ?áä)
-   (#x5b8c ?èÇ)
-   (#x5b8f ?ÎÛ)
-   (#x5b93 ?ÜÕ)
-   (#x5b95 ?÷µ)
-   (#x5b96 ?üó)
-   (#x5b97 ?ðó)
-   (#x5b98 ?ί)
-   (#x5b99 ?ñµ)
-   (#x5b9a ?ïÒ)
-   (#x5b9b ?èÈ)
-   (#x5b9c ?ëñ)
-   (#x5ba2 ?ËÔ)
-   (#x5ba3 ?à¾)
-   (#x5ba4 ?ãø)
-   (#x5ba5 ?êé)
-   (#x5ba6 ?ü²)
-   (#x5bac ?àô)
-   (#x5bae ?Ãà)
-   (#x5bb0 ?î¥)
-   (#x5bb3 ?úª)
-   (#x5bb4 ?æÃ)
-   (#x5bb5 ?á²)
-   (#x5bb6 ?Ê«)
-   (#x5bb8 ?ãä)
-   (#x5bb9 ?é»)
-   (#x5bbf ?âÖ)
-   (#x5bc0 ?óò)
-   (#x5bc2 ?îÖ)
-   (#x5bc3 ?ê²)
-   (#x5bc4 ?Ãö)
-   (#x5bc5 ?ìÙ)
-   (#x5bc6 ?ÚË)
-   (#x5bc7 ?Ϩ)
-   (#x5bcc ?Ý£)
-   (#x5bd0 ?ØÛ)
-   (#x5bd2 ?ùÎ)
-   (#x5bd3 ?éÕ)
-   (#x5bd4 ?ãÑ)
-   (#x5bd7 ?Ò¼)
-   (#x5bde ?ج)
-   (#x5bdf ?óÌ)
-   (#x5be1 ?Ãû)
-   (#x5be2 ?öÖ)
-   (#x5be4 ?çõ)
-   (#x5be5 ?èï)
-   (#x5be6 ?ãù)
-   (#x5be7 ?Ò»)
-   (#x5be8 ?óó)
-   (#x5be9 ?ãû)
-   (#x5beb ?ÞÃ)
-   (#x5bec ?ΰ)
-   (#x5bee ?Ö÷)
-   (#x5bef ?ñÙ)
-   (#x5bf5 ?õÃ)
-   (#x5bf6 ?ÜÄ)
-   (#x5bf8 ?õ»)
-   (#x5bfa ?ÞÑ)
-   (#x5c01 ?Üæ)
-   (#x5c04 ?ÞÒ)
-   (#x5c07 ?íâ)
-   (#x5c08 ?îö)
-   (#x5c09 ?êÃ)
-   (#x5c0a ?ðî)
-   (#x5c0b ?ãü)
-   (#x5c0d ?Óß)
-   (#x5c0e ?Óô)
-   (#x5c0f ?á³)
-   (#x5c11 ?á´)
-   (#x5c16 ?ôÓ)
-   (#x5c19 ?ßÆ)
-   (#x5c24 ?éÖ)
-   (#x5c28 ?Û«)
-   (#x5c31 ?ö¦)
-   (#x5c38 ?ã¹)
-   (#x5c39 ?ëÅ)
-   (#x5c3a ?ô©)
-   (#x5c3b ?Ͷ)
-   (#x5c3c ?Òù)
-   (#x5c3e ?Ú­)
-   (#x5c3f ?Òã)
-   (#x5c40 ?ÃÑ)
-   (#x5c45 ?ËÜ)
-   (#x5c46 ?Ìú)
-   (#x5c48 ?ÃÃ)
-   (#x5c4b ?è©)
-   (#x5c4d ?ã»)
-   (#x5c4e ?ãº)
-   (#x5c51 ?àÚ)
-   (#x5c55 ?î÷)
-   (#x5c5b ?ܳ)
-   (#x5c60 ?Óõ)
-   (#x5c62 ?צ)
-   (#x5c64 ?öµ)
-   (#x5c65 ?×Û)
-   (#x5c6c ?áÕ)
-   (#x5c6f ?Ôê)
-   (#x5c71 ?ߣ)
-   (#x5c79 ?ýß)
-   (#x5c90 ?Ã÷)
-   (#x5c91 ?íÔ)
-   (#x5ca1 ?˪)
-   (#x5ca9 ?äÛ)
-   (#x5cab ?áû)
-   (#x5cac ?Ë¢)
-   (#x5cb1 ?Óà)
-   (#x5cb3 ?ä¿)
-   (#x5cb5 ?ûÀ)
-   (#x5cb7 ?Ú¾)
-   (#x5cb8 ?äÃ)
-   (#x5cba ?Ö¹)
-   (#x5cbe ?ïÀ)
-   (#x5cc0 ?áü)
-   (#x5cd9 ?ö¹)
-   (#x5ce0 ?ßÇ)
-   (#x5ce8 ?ä±)
-   (#x5cef ?Üç)
-   (#x5cf0 ?Üè)
-   (#x5cf4 ?úÖ)
-   (#x5cf6 ?Óö)
-   (#x5cfb ?ñÚ)
-   (#x5cfd ?úò)
-   (#x5d07 ?âý)
-   (#x5d0d ?ÕÃ)
-   (#x5d0e ?Ãø)
-   (#x5d11 ?Ãß)
-   (#x5d14 ?õË)
-   (#x5d16 ?äð)
-   (#x5d17 ?Ë«)
-   (#x5d19 ?×Ä)
-   (#x5d27 ?âþ)
-   (#x5d29 ?ÃÚ)
-   (#x5d4b ?Ú®)
-   (#x5d4c ?Êî)
-   (#x5d50 ?Õ¹)
-   (#x5d69 ?ã¡)
-   (#x5d6c ?èã)
-   (#x5d6f ?ó«)
-   (#x5d87 ?Ï©)
-   (#x5d8b ?Ó÷)
-   (#x5d9d ?Ôñ)
-   (#x5da0 ?Îä)
-   (#x5da2 ?èò)
-   (#x5daa ?åõ)
-   (#x5db8 ?ç®)
-   (#x5dba ?Öº)
-   (#x5dbc ?ßì)
-   (#x5dbd ?äÀ)
-   (#x5dcd ?èä)
-   (#x5dd2 ?ص)
-   (#x5dd6 ?äÜ)
-   (#x5ddd ?ô¹)
-   (#x5dde ?ñ¶)
-   (#x5de1 ?âÞ)
-   (#x5de2 ?áµ)
-   (#x5de5 ?Ãï)
-   (#x5de6 ?ñ§)
-   (#x5de7 ?ÃŽÃ¥)
-   (#x5de8 ?ËÃ)
-   (#x5deb ?Ùã)
-   (#x5dee ?ó¬)
-   (#x5df1 ?Ãù)
-   (#x5df2 ?ì«)
-   (#x5df3 ?ÞÓ)
-   (#x5df4 ?֎)
-   (#x5df7 ?ùõ)
-   (#x5dfd ?áÞ)
-   (#x5dfe ?Ëî)
-   (#x5e02 ?ã¼)
-   (#x5e03 ?øÖ)
-   (#x5e06 ?Ûî)
-   (#x5e0c ?ýñ)
-   (#x5e11 ?֦)
-   (#x5e16 ?ôÞ)
-   (#x5e19 ?òí)
-   (#x5e1b ?ÛÙ)
-   (#x5e1d ?ð¨)
-   (#x5e25 ?áý)
-   (#x5e2b ?ÞÔ)
-   (#x5e2d ?à¬)
-   (#x5e33 ?íã)
-   (#x5e36 ?Óá)
-   (#x5e38 ?ßÈ)
-   (#x5e3d ?Ù¶)
-   (#x5e3f ?ý¬)
-   (#x5e40 ?ïÓ)
-   (#x5e44 ?äÃ)
-   (#x5e45 ?øë)
-   (#x5e47 ?Û¬)
-   (#x5e4c ?üÆ)
-   (#x5e55 ?Ø­)
-   (#x5e5f ?öº)
-   (#x5e61 ?Ûß)
-   (#x5e62 ?ÓÓ)
-   (#x5e63 ?øÇ)
-   (#x5e72 ?ÊÎ)
-   (#x5e73 ?øÃ)
-   (#x5e74 ?Ò´)
-   (#x5e77 ?Ü´)
-   (#x5e78 ?ú¹)
-   (#x5e79 ?ÊÃ)
-   (#x5e7b ?ü³)
-   (#x5e7c ?êê)
-   (#x5e7d ?êë)
-   (#x5e7e ?Ãú)
-   (#x5e84 ?íä)
-   (#x5e87 ?Ãç)
-   (#x5e8a ?ßÉ)
-   (#x5e8f ?ßí)
-   (#x5e95 ?î¼)
-   (#x5e97 ?ïÃ)
-   (#x5e9a ?ÌÒ)
-   (#x5e9c ?ݤ)
-   (#x5ea0 ?ßÊ)
-   (#x5ea6 ?Óø)
-   (#x5ea7 ?ñ¨)
-   (#x5eab ?Í·)
-   (#x5ead ?ïÔ)
-   (#x5eb5 ?äÃ)
-   (#x5eb6 ?ßî)
-   (#x5eb7 ?ˬ)
-   (#x5eb8 ?é¼)
-   (#x5ebe ?êì)
-   (#x5ec2 ?ßË)
-   (#x5ec8 ?ù¿)
-   (#x5ec9 ?Ö¯)
-   (#x5eca ?ÕÆ)
-   (#x5ed0 ?Ϫ)
-   (#x5ed3 ?Ω)
-   (#x5ed6 ?Öø)
-   (#x5eda ?ñ·)
-   (#x5edb ?îø)
-   (#x5edf ?ÙÙ)
-   (#x5ee0 ?óß)
-   (#x5ee2 ?øÈ)
-   (#x5ee3 ?ÎÆ)
-   (#x5eec ?Õæ)
-   (#x5ef3 ?ôæ)
-   (#x5ef6 ?æÅ)
-   (#x5ef7 ?ïÕ)
-   (#x5efa ?Ëï)
-   (#x5efb ?üß)
-   (#x5f01 ?ܧ)
-   (#x5f04 ?Öç)
-   (#x5f0a ?øÉ)
-   (#x5f0f ?ãÒ)
-   (#x5f11 ?ã½)
-   (#x5f13 ?Ãá)
-   (#x5f14 ?ðÀ)
-   (#x5f15 ?ìÚ)
-   (#x5f17 ?Ã×)
-   (#x5f18 ?ûð)
-   (#x5f1b ?ì¬)
-   (#x5f1f ?ð©)
-   (#x5f26 ?ú×)
-   (#x5f27 ?ûÃ)
-   (#x5f29 ?ÒÀ)
-   (#x5f31 ?å°)
-   (#x5f35 ?íå)
-   (#x5f3a ?Ë­)
-   (#x5f3c ?ù°)
-   (#x5f48 ?÷¥)
-   (#x5f4a ?Ë®)
-   (#x5f4c ?Ú¯)
-   (#x5f4e ?ض)
-   (#x5f56 ?Ó§)
-   (#x5f57 ?û²)
-   (#x5f59 ?ýÄ)
-   (#x5f5b ?ì­)
-   (#x5f62 ?û¡)
-   (#x5f66 ?åé)
-   (#x5f67 ?éî)
-   (#x5f69 ?óô)
-   (#x5f6a ?øó)
-   (#x5f6b ?ðÃ)
-   (#x5f6c ?Þ¯)
-   (#x5f6d ?ø°)
-   (#x5f70 ?óà)
-   (#x5f71 ?ç¯)
-   (#x5f77 ?Û­)
-   (#x5f79 ?æµ)
-   (#x5f7c ?ù¨)
-   (#x5f7f ?ÃØ)
-   (#x5f80 ?èÙ)
-   (#x5f81 ?ïÖ)
-   (#x5f85 ?Óâ)
-   (#x5f87 ?âß)
-   (#x5f8a ?üà)
-   (#x5f8b ?×È)
-   (#x5f8c ?ý­)
-   (#x5f90 ?ßï)
-   (#x5f91 ?ÌÓ)
-   (#x5f92 ?Óù)
-   (#x5f97 ?Ôð)
-   (#x5f98 ?ÛÇ)
-   (#x5f99 ?ÞÕ)
-   (#x5f9e ?ðô)
-   (#x5fa0 ?ÕÃ)
-   (#x5fa1 ?åÙ)
-   (#x5fa8 ?üÇ)
-   (#x5fa9 ?ÜÖ)
-   (#x5faa ?âà)
-   (#x5fae ?Ú°)
-   (#x5fb5 ?ó£)
-   (#x5fb7 ?Óì)
-   (#x5fb9 ?ôË)
-   (#x5fbd ?ýÅ)
-   (#x5fc3 ?ãý)
-   (#x5fc5 ?ù±)
-   (#x5fcc ?Ãû)
-   (#x5fcd ?ìÛ)
-   (#x5fd6 ?õ¼)
-   (#x5fd7 ?ò¤)
-   (#x5fd8 ?ØÎ)
-   (#x5fd9 ?ØÃ)
-   (#x5fe0 ?õ÷)
-   (#x5feb ?öá)
-   (#x5ff5 ?Ò·)
-   (#x5ffd ?ûì)
-   (#x5fff ?ÃÈ)
-   (#x600f ?äè)
-   (#x6012 ?Ã’Ã)
-   (#x6016 ?ø×)
-   (#x601c ?Ö»)
-   (#x601d ?ÞÖ)
-   (#x6020 ?÷½)
-   (#x6021 ?ì®)
-   (#x6025 ?Ãá)
-   (#x6027 ?àõ)
-   (#x6028 ?ê³)
-   (#x602a ?ÎÖ)
-   (#x602f ?Ì¥)
-   (#x6041 ?ìö)
-   (#x6042 ?âá)
-   (#x6043 ?ã¾)
-   (#x604d ?üÈ)
-   (#x6050 ?Ãð)
-   (#x6052 ?ùö)
-   (#x6055 ?ßð)
-   (#x6059 ?å¿)
-   (#x605d ?ο)
-   (#x6062 ?üá)
-   (#x6063 ?í°)
-   (#x6064 ?ýÑ)
-   (#x6065 ?ö»)
-   (#x6068 ?ùÃ)
-   (#x6069 ?ëÚ)
-   (#x606a ?ÊÃ)
-   (#x606c ?Ò¸)
-   (#x606d ?Ãñ)
-   (#x606f ?ãÓ)
-   (#x6070 ?ýæ)
-   (#x6085 ?æí)
-   (#x6089 ?ãú)
-   (#x608c ?ðª)
-   (#x608d ?ùÃ)
-   (#x6094 ?üâ)
-   (#x6096 ?ø§)
-   (#x609a ?áå)
-   (#x609b ?îù)
-   (#x609f ?çö)
-   (#x60a0 ?êí)
-   (#x60a3 ?ü´)
-   (#x60a4 ?õÂ)
-   (#x60a7 ?×Ü)
-   (#x60b0 ?ðõ)
-   (#x60b2 ?Ãè)
-   (#x60b3 ?Óí)
-   (#x60b4 ?õü)
-   (#x60b6 ?Ú¿)
-   (#x60b8 ?Ìû)
-   (#x60bc ?Óú)
-   (#x60bd ?ô¤)
-   (#x60c5 ?ï×)
-   (#x60c7 ?ÔÃ)
-   (#x60d1 ?ûã)
-   (#x60da ?ûí)
-   (#x60dc ?à­)
-   (#x60df ?êî)
-   (#x60e0 ?û³)
-   (#x60e1 ?äÂ)
-   (#x60f0 ?öç)
-   (#x60f1 ?Ã’Ã)
-   (#x60f3 ?ßÌ)
-   (#x60f6 ?üÉ)
-   (#x60f9 ?å©)
-   (#x60fa ?àö)
-   (#x60fb ?ö³)
-   (#x6101 ?áþ)
-   (#x6106 ?Ëð)
-   (#x6108 ?êï)
-   (#x6109 ?êð)
-   (#x610d ?ÚÀ)
-   (#x610e ?ø´)
-   (#x610f ?ëò)
-   (#x6115 ?äÃ)
-   (#x611a ?é×)
-   (#x611b ?äñ)
-   (#x611f ?Êï)
-   (#x6127 ?Î×)
-   (#x6130 ?üÊ)
-   (#x6134 ?óá)
-   (#x6137 ?ËÄ)
-   (#x613c ?ãå)
-   (#x613e ?ËÅ)
-   (#x613f ?ê´)
-   (#x6142 ?é½)
-   (#x6144 ?×É)
-   (#x6147 ?ëÛ)
-   (#x6148 ?í±)
-   (#x614a ?ÌÃ)
-   (#x614b ?÷¾)
-   (#x614c ?üË)
-   (#x6153 ?øô)
-   (#x6155 ?Ù·)
-   (#x6158 ?óÓ)
-   (#x6159 ?óÔ)
-   (#x615d ?֊)
-   (#x615f ?ք)
-   (#x6162 ?Ø·)
-   (#x6163 ?α)
-   (#x6164 ?ÊÂ)
-   (#x6167 ?û´)
-   (#x6168 ?ËÆ)
-   (#x616b ?ðö)
-   (#x616e ?Õç)
-   (#x6170 ?êÃ)
-   (#x6176 ?ÌÔ)
-   (#x6177 ?˯)
-   (#x617d ?ôª)
-   (#x617e ?é¯)
-   (#x6181 ?õÃ)
-   (#x6182 ?éØ)
-   (#x618a ?Ãé)
-   (#x618e ?ñó)
-   (#x6190 ?Õû)
-   (#x6191 ?Þ»)
-   (#x6194 ?ôû)
-   (#x6198 ?ýó)
-   (#x6199 ?ýò)
-   (#x619a ?÷¦)
-   (#x61a4 ?ÃÉ)
-   (#x61a7 ?ÔÓ)
-   (#x61a9 ?̨)
-   (#x61ab ?ÚÃ)
-   (#x61ac ?ÌÕ)
-   (#x61ae ?Ùä)
-   (#x61b2 ?úÊ)
-   (#x61b6 ?åã)
-   (#x61ba ?Ó¼)
-   (#x61be ?Êð)
-   (#x61c3 ?ÃÄ)
-   (#x61c7 ?ÊÃ)
-   (#x61c8 ?ú«)
-   (#x61c9 ?ëë)
-   (#x61ca ?çø)
-   (#x61cb ?Ùå)
-   (#x61e6 ?Ñ×)
-   (#x61f2 ?ó¤)
-   (#x61f6 ?Ôû)
-   (#x61f7 ?üã)
-   (#x61f8 ?úØ)
-   (#x61fa ?óÕ)
-   (#x61fc ?Ï«)
-   (#x61ff ?ëó)
-   (#x6200 ?Õü)
-   (#x6207 ?ÓÔ)
-   (#x6208 ?Ãü)
-   (#x620a ?Ùæ)
-   (#x620c ?âù)
-   (#x620d ?â¡)
-   (#x620e ?ëÔ)
-   (#x6210 ?à÷)
-   (#x6211 ?ä²)
-   (#x6212 ?Ìü)
-   (#x6216 ?ûä)
-   (#x621a ?ô«)
-   (#x621f ?н)
-   (#x6221 ?Êñ)
-   (#x622a ?ï¸)
-   (#x622e ?×À)
-   (#x6230 ?îú)
-   (#x6231 ?ýô)
-   (#x6234 ?Óã)
-   (#x6236 ?ûÂ)
-   (#x623e ?Õè)
-   (#x623f ?Û®)
-   (#x6240 ?á¶)
-   (#x6241 ?ø·)
-   (#x6247 ?à¿)
-   (#x6248 ?ûÃ)
-   (#x6249 ?Ãê)
-   (#x624b ?â¢)
-   (#x624d ?î¦)
-   (#x6253 ?öè)
-   (#x6258 ?öõ)
-   (#x626e ?ÃÊ)
-   (#x6271 ?Ãâ)
-   (#x6276 ?ݦ)
-   (#x6279 ?Ãë)
-   (#x627c ?äù)
-   (#x627f ?ã¯)
-   (#x6280 ?Ãü)
-   (#x6284 ?ôü)
-   (#x6289 ?̼)
-   (#x628a ?֐)
-   (#x6291 ?åä)
-   (#x6292 ?ßñ)
-   (#x6295 ?և)
-   (#x6297 ?ù÷)
-   (#x6298 ?ï¹)
-   (#x629b ?øØ)
-   (#x62ab ?ù©)
-   (#x62b1 ?øÙ)
-   (#x62b5 ?î½)
-   (#x62b9 ?ØÆ)
-   (#x62bc ?äã)
-   (#x62bd ?õÎ)
-   (#x62c2 ?ÃÙ)
-   (#x62c7 ?Ùç)
-   (#x62c8 ?Ò¹)
-   (#x62c9 ?ÕÃ)
-   (#x62cc ?Úå)
-   (#x62cd ?ÚÃ)
-   (#x62cf ?ÑÙ)
-   (#x62d0 ?ÎØ)
-   (#x62d2 ?ËÞ)
-   (#x62d3 ?ô¬)
-   (#x62d4 ?Úû)
-   (#x62d6 ?öé)
-   (#x62d7 ?èó)
-   (#x62d8 ?Ϭ)
-   (#x62d9 ?ðð)
-   (#x62db ?ôý)
-   (#x62dc ?ÛÈ)
-   (#x62ec ?ÎÀ)
-   (#x62ed ?ãÔ)
-   (#x62ee ?ÑÃ)
-   (#x62ef ?ñõ)
-   (#x62f1 ?Ãò)
-   (#x62f3 ?Ãë)
-   (#x62f7 ?͸)
-   (#x62fe ?ã¦)
-   (#x62ff ?ÑÚ)
-   (#x6301 ?ò¥)
-   (#x6307 ?ò¦)
-   (#x6309 ?äÎ)
-   (#x6311 ?Óû)
-   (#x632b ?ñ©)
-   (#x632f ?òÉ)
-   (#x633a ?ïØ)
-   (#x633b ?æÉ)
-   (#x633d ?ظ)
-   (#x633e ?úó)
-   (#x6349 ?óµ)
-   (#x634c ?ø¤)
-   (#x634f ?Ñó)
-   (#x6350 ?æÈ)
-   (#x6355 ?øÚ)
-   (#x6367 ?Üé)
-   (#x6368 ?Þ×)
-   (#x636e ?Ëß)
-   (#x6372 ?Ãì)
-   (#x6377 ?ôß)
-   (#x637a ?Ñô)
-   (#x637b ?Òº)
-   (#x637f ?ßò)
-   (#x6383 ?á·)
-   (#x6388 ?â£)
-   (#x6389 ?Óü)
-   (#x638c ?íæ)
-   (#x6392 ?ÛÉ)
-   (#x6396 ?äú)
-   (#x6398 ?ÃÞ)
-   (#x639b ?ÃŽÃ)
-   (#x63a0 ?ÕÓ)
-   (#x63a1 ?óõ)
-   (#x63a2 ?÷®)
-   (#x63a5 ?ïÈ)
-   (#x63a7 ?Ãó)
-   (#x63a8 ?õÃ)
-   (#x63a9 ?åó)
-   (#x63aa ?ðÂ)
-   (#x63c0 ?ÊÑ)
-   (#x63c4 ?êñ)
-   (#x63c6 ?Ц)
-   (#x63cf ?ÙÚ)
-   (#x63d0 ?ð«)
-   (#x63d6 ?ëç)
-   (#x63da ?åÀ)
-   (#x63db ?üµ)
-   (#x63e1 ?äÄ)
-   (#x63ed ?Ì©)
-   (#x63ee ?ýÆ)
-   (#x63f4 ?êµ)
-   (#x63f6 ?åª)
-   (#x63f7 ?ߺ)
-   (#x640d ?áß)
-   (#x640f ?ÚÑ)
-   (#x6414 ?á¸)
-   (#x6416 ?èô)
-   (#x6417 ?Óý)
-   (#x641c ?â¤)
-   (#x6422 ?òÊ)
-   (#x642c ?Úæ)
-   (#x642d ?÷³)
-   (#x643a ?ýÃ)
-   (#x643e ?ó¶)
-   (#x6458 ?î×)
-   (#x6460 ?õÄ)
-   (#x6469 ?ؤ)
-   (#x646f ?ò§)
-   (#x6478 ?Ù¸)
-   (#x6479 ?Ù¹)
-   (#x647a ?ïÉ)
-   (#x6488 ?ÖÎ)
-   (#x6491 ?÷Ë)
-   (#x6492 ?ß®)
-   (#x6493 ?èõ)
-   (#x649a ?Òµ)
-   (#x649e ?ÓÕ)
-   (#x64a4 ?ôÌ)
-   (#x64a5 ?Úü)
-   (#x64ab ?Ùè)
-   (#x64ad ?֑)
-   (#x64ae ?õÉ)
-   (#x64b0 ?ó¼)
-   (#x64b2 ?ÚÒ)
-   (#x64bb ?Óµ)
-   (#x64c1 ?è¶)
-   (#x64c4 ?ÖÃ)
-   (#x64c5 ?ôº)
-   (#x64c7 ?փ)
-   (#x64ca ?̪)
-   (#x64cd ?ðÃ)
-   (#x64ce ?ÌÖ)
-   (#x64d2 ?ÃÓ)
-   (#x64d4 ?Ó½)
-   (#x64d8 ?Ûû)
-   (#x64da ?Ëà)
-   (#x64e1 ?Óä)
-   (#x64e2 ?ö÷)
-   (#x64e5 ?Õº)
-   (#x64e6 ?óÃ)
-   (#x64e7 ?Ëá)
-   (#x64ec ?ëô)
-   (#x64f2 ?ô­)
-   (#x64f4 ?üª)
-   (#x64fa ?֓)
-   (#x64fe ?èö)
-   (#x6500 ?Úç)
-   (#x6504 ?÷Ì)
-   (#x6518 ?Ã¥Ã)
-   (#x651d ?àî)
-   (#x6523 ?Õý)
-   (#x652a ?Îæ)
-   (#x652b ?ü«)
-   (#x652c ?Õ»)
-   (#x652f ?ò¨)
-   (#x6536 ?â¥)
-   (#x6537 ?͹)
-   (#x6538 ?êò)
-   (#x6539 ?ËÇ)
-   (#x653b ?Ãô)
-   (#x653e ?Û¯)
-   (#x653f ?ïÙ)
-   (#x6545 ?ͺ)
-   (#x6548 ?üù)
-   (#x654d ?ßó)
-   (#x654e ?Îç)
-   (#x654f ?ÚÂ)
-   (#x6551 ?Ï­)
-   (#x6556 ?çù)
-   (#x6557 ?ø¨)
-   (#x655e ?óâ)
-   (#x6562 ?Êò)
-   (#x6563 ?ߤ)
-   (#x6566 ?ÔÄ)
-   (#x656c ?Ì×)
-   (#x656d ?åÂ)
-   (#x6572 ?Í»)
-   (#x6574 ?ïÚ)
-   (#x6575 ?îØ)
-   (#x6577 ?ݧ)
-   (#x6578 ?â¦)
-   (#x657e ?àÀ)
-   (#x6582 ?Ö°)
-   (#x6583 ?øÊ)
-   (#x6585 ?üú)
-   (#x6587 ?Ùþ)
-   (#x658c ?Þ°)
-   (#x6590 ?Ãì)
-   (#x6591 ?Úè)
-   (#x6597 ?Ôà)
-   (#x6599 ?Öù)
-   (#x659b ?Ã×)
-   (#x659c ?ÞØ)
-   (#x659f ?òø)
-   (#x65a1 ?äÖ)
-   (#x65a4 ?ÃÃ…)
-   (#x65a5 ?ô®)
-   (#x65a7 ?ݨ)
-   (#x65ab ?íÅ)
-   (#x65ac ?óÖ)
-   (#x65af ?ÞÙ)
-   (#x65b0 ?ãæ)
-   (#x65b7 ?Ó¨)
-   (#x65b9 ?Û°)
-   (#x65bc ?åÚ)
-   (#x65bd ?ã¿)
-   (#x65c1 ?Û±)
-   (#x65c5 ?Õé)
-   (#x65cb ?àÃ)
-   (#x65cc ?ïÛ)
-   (#x65cf ?ðé)
-   (#x65d2 ?ײ)
-   (#x65d7 ?Ãý)
-   (#x65e0 ?Ùé)
-   (#x65e3 ?Ãþ)
-   (#x65e5 ?ìí)
-   (#x65e6 ?Ó©)
-   (#x65e8 ?ò©)
-   (#x65e9 ?ðÄ)
-   (#x65ec ?ââ)
-   (#x65ed ?éï)
-   (#x65f1 ?ùÑ)
-   (#x65f4 ?éÙ)
-   (#x65fa ?èÚ)
-   (#x65fb ?ÚÃ)
-   (#x65fc ?ÚÄ)
-   (#x65fd ?ÔÅ)
-   (#x65ff ?çú)
-   (#x6606 ?Ãà)
-   (#x6607 ?ã°)
-   (#x6609 ?Û²)
-   (#x660a ?ûÄ)
-   (#x660c ?óã)
-   (#x660e ?Ù¥)
-   (#x660f ?ûç)
-   (#x6610 ?ÃË)
-   (#x6611 ?ÃÔ)
-   (#x6613 ?æ¶)
-   (#x6614 ?à®)
-   (#x6615 ?ýÚ)
-   (#x661e ?ܵ)
-   (#x661f ?àø)
-   (#x6620 ?ç±)
-   (#x6625 ?õð)
-   (#x6627 ?ØÜ)
-   (#x6628 ?íÆ)
-   (#x662d ?á¹)
-   (#x662f ?ãÀ)
-   (#x6630 ?ùÀ)
-   (#x6631 ?éð)
-   (#x6634 ?ÙÛ)
-   (#x6636 ?óä)
-   (#x663a ?ܶ)
-   (#x663b ?äé)
-   (#x6641 ?ðÅ)
-   (#x6642 ?ãÃ)
-   (#x6643 ?üÌ)
-   (#x6644 ?üÃ)
-   (#x6649 ?òË)
-   (#x664b ?òÌ)
-   (#x664f ?äÃ)
-   (#x6659 ?ñÛ)
-   (#x665b ?úÙ)
-   (#x665d ?ñ¸)
-   (#x665e ?ýõ)
-   (#x665f ?àù)
-   (#x6664 ?çû)
-   (#x6665 ?ü·)
-   (#x6666 ?üä)
-   (#x6667 ?ûÅ)
-   (#x6668 ?ãç)
-   (#x6669 ?ع)
-   (#x666b ?öø)
-   (#x666e ?ÜÅ)
-   (#x666f ?ÌØ)
-   (#x6673 ?à¯)
-   (#x6674 ?ôç)
-   (#x6676 ?ïÜ)
-   (#x6677 ?Ãü)
-   (#x6678 ?ïÃ)
-   (#x667a ?òª)
-   (#x6684 ?ý¾)
-   (#x6687 ?ʬ)
-   (#x6688 ?ý»)
-   (#x6689 ?ýÇ)
-   (#x668e ?ç²)
-   (#x6690 ?êÑ)
-   (#x6691 ?ßô)
-   (#x6696 ?Ñì)
-   (#x6697 ?äÞ)
-   (#x6698 ?åÃ)
-   (#x669d ?Ù¦)
-   (#x66a0 ?ͼ)
-   (#x66a2 ?óå)
-   (#x66ab ?íÕ)
-   (#x66ae ?Ùº)
-   (#x66b2 ?íç)
-   (#x66b3 ?ûµ)
-   (#x66b4 ?øì)
-   (#x66b9 ?àç)
-   (#x66bb ?ÌÙ)
-   (#x66be ?ÔÆ)
-   (#x66c4 ?ç¥)
-   (#x66c6 ?Õõ)
-   (#x66c7 ?Ó¾)
-   (#x66c9 ?üû)
-   (#x66d6 ?äò)
-   (#x66d9 ?ßõ)
-   (#x66dc ?èø)
-   (#x66dd ?øí)
-   (#x66e0 ?ÎÇ)
-   (#x66e6 ?ýö)
-   (#x66f0 ?èØ)
-   (#x66f2 ?ÃØ)
-   (#x66f3 ?çÖ)
-   (#x66f4 ?ÌÚ)
-   (#x66f7 ?Êã)
-   (#x66f8 ?ßö)
-   (#x66f9 ?ðÇ)
-   (#x66fa ?ðÆ)
-   (#x66fc ?غ)
-   (#x66fe ?ñô)
-   (#x66ff ?ôð)
-   (#x6700 ?õÌ)
-   (#x6703 ?üå)
-   (#x6708 ?êÅ)
-   (#x6709 ?êó)
-   (#x670b ?ÃÛ)
-   (#x670d ?Ü×)
-   (#x6714 ?Þý)
-   (#x6715 ?òù)
-   (#x6717 ?ÕÇ)
-   (#x671b ?ØÃ)
-   (#x671d ?ðÈ)
-   (#x671e ?Ñ¡)
-   (#x671f ?Ñ¢)
-   (#x6726 ?ÙÔ)
-   (#x6727 ?Öè)
-   (#x6728 ?ÙÊ)
-   (#x672a ?Ú±)
-   (#x672b ?ØÇ)
-   (#x672c ?Üâ)
-   (#x672d ?óÎ)
-   (#x672e ?õô)
-   (#x6731 ?ñ¹)
-   (#x6734 ?ÚÓ)
-   (#x6736 ?öê)
-   (#x673a ?Ãõ)
-   (#x673d ?ý®)
-   (#x6746 ?ÊÒ)
-   (#x6749 ?ß´)
-   (#x674e ?×Ã)
-   (#x674f ?úº)
-   (#x6750 ?î§)
-   (#x6751 ?õ½)
-   (#x6753 ?øõ)
-   (#x6756 ?íè)
-   (#x675c ?Ôá)
-   (#x675e ?Ñ£)
-   (#x675f ?áÖ)
-   (#x676d ?ùø)
-   (#x676f ?ÛÊ)
-   (#x6770 ?Ëù)
-   (#x6771 ?ÔÔ)
-   (#x6773 ?ÙÜ)
-   (#x6775 ?î¾)
-   (#x6777 ?֒)
-   (#x677b ?Òî)
-   (#x677e ?áæ)
-   (#x677f ?÷ù)
-   (#x6787 ?Ãí)
-   (#x6789 ?èÛ)
-   (#x678b ?Û³)
-   (#x678f ?Ñ÷)
-   (#x6790 ?à°)
-   (#x6793 ?Ôâ)
-   (#x6795 ?ö×)
-   (#x6797 ?×ù)
-   (#x679a ?ØÃ)
-   (#x679c ?Ãý)
-   (#x679d ?ò«)
-   (#x67af ?ͽ)
-   (#x67b0 ?øÂ)
-   (#x67b3 ?ò¬)
-   (#x67b6 ?Ê­)
-   (#x67b7 ?Ê®)
-   (#x67b8 ?Ï®)
-   (#x67be ?ãÂ)
-   (#x67c4 ?Ü·)
-   (#x67cf ?ÛÚ)
-   (#x67d0 ?Ù»)
-   (#x67d1 ?Êó)
-   (#x67d2 ?öÓ)
-   (#x67d3 ?æø)
-   (#x67d4 ?êõ)
-   (#x67da ?êö)
-   (#x67dd ?öù)
-   (#x67e9 ?ϯ)
-   (#x67ec ?ÊÓ)
-   (#x67ef ?ʯ)
-   (#x67f0 ?Ò°)
-   (#x67f1 ?ñº)
-   (#x67f3 ?׳)
-   (#x67f4 ?ãÃ)
-   (#x67f5 ?óý)
-   (#x67f6 ?ÞÚ)
-   (#x67fb ?ÞÛ)
-   (#x67fe ?ïÞ)
-   (#x6812 ?âã)
-   (#x6813 ?îû)
-   (#x6816 ?ß÷)
-   (#x6817 ?×Ê)
-   (#x6821 ?Îè)
-   (#x6822 ?ÛÛ)
-   (#x682a ?ñ»)
-   (#x682f ?éñ)
-   (#x6838 ?ú·)
-   (#x6839 ?ÃÆ)
-   (#x683c ?Ì«)
-   (#x683d ?î¨)
-   (#x6840 ?Ëú)
-   (#x6841 ?ùù)
-   (#x6842 ?Ìý)
-   (#x6843 ?Óþ)
-   (#x6848 ?äÃ)
-   (#x684e ?òî)
-   (#x6850 ?ÔÕ)
-   (#x6851 ?ßÃ)
-   (#x6853 ?ü¸)
-   (#x6854 ?ÑÃ)
-   (#x686d ?òÃ)
-   (#x6876 ?÷Ò)
-   (#x687f ?ÊÔ)
-   (#x6881 ?ÕÙ)
-   (#x6885 ?ØÞ)
-   (#x688f ?ÃÙ)
-   (#x6893 ?î©)
-   (#x6894 ?ö¼)
-   (#x6897 ?ÌÛ)
-   (#x689d ?ðÉ)
-   (#x689f ?üü)
-   (#x68a1 ?èÉ)
-   (#x68a2 ?ôþ)
-   (#x68a7 ?çü)
-   (#x68a8 ?×Þ)
-   (#x68ad ?ÞÜ)
-   (#x68af ?ð¬)
-   (#x68b0 ?Ìþ)
-   (#x68b1 ?Ãá)
-   (#x68b3 ?áº)
-   (#x68b5 ?Ûï)
-   (#x68b6 ?Ú²)
-   (#x68c4 ?Ñ¥)
-   (#x68c5 ?ܸ)
-   (#x68c9 ?Øö)
-   (#x68cb ?Ѥ)
-   (#x68cd ?Ãâ)
-   (#x68d2 ?Üê)
-   (#x68d5 ?ð÷)
-   (#x68d7 ?ðÊ)
-   (#x68d8 ?о)
-   (#x68da ?ÃÃœ)
-   (#x68df ?ÔÖ)
-   (#x68e0 ?ÓÖ)
-   (#x68e7 ?íÃ)
-   (#x68e8 ?Í¡)
-   (#x68ee ?ßµ)
-   (#x68f2 ?ßø)
-   (#x68f9 ?Ô¡)
-   (#x68fa ?β)
-   (#x6900 ?èÊ)
-   (#x6905 ?ëõ)
-   (#x690d ?ãÕ)
-   (#x690e ?õÃ)
-   (#x6912 ?õ¡)
-   (#x6927 ?Ù§)
-   (#x6930 ?å«)
-   (#x693d ?æË)
-   (#x693f ?õñ)
-   (#x694a ?åÅ)
-   (#x6953 ?ù£)
-   (#x6954 ?àÛ)
-   (#x6955 ?öë)
-   (#x6957 ?Ëñ)
-   (#x6959 ?Ùê)
-   (#x695a ?õ¢)
-   (#x695e ?×Ñ)
-   (#x6960 ?Ñø)
-   (#x6961 ?êø)
-   (#x6962 ?êù)
-   (#x6963 ?Ú³)
-   (#x6968 ?ïß)
-   (#x696b ?ñï)
-   (#x696d ?åö)
-   (#x696e ?î¿)
-   (#x696f ?âä)
-   (#x6975 ?п)
-   (#x6977 ?ú¬)
-   (#x6978 ?õÑ)
-   (#x6979 ?ç³)
-   (#x6995 ?é¾)
-   (#x699b ?òÎ)
-   (#x699c ?Û´)
-   (#x69a5 ?üÎ)
-   (#x69a7 ?Ãî)
-   (#x69ae ?ç´)
-   (#x69b4 ?×´)
-   (#x69bb ?÷´)
-   (#x69c1 ?;)
-   (#x69c3 ?Úé)
-   (#x69cb ?Ï°)
-   (#x69cc ?÷Ù)
-   (#x69cd ?óæ)
-   (#x69d0 ?ÎÙ)
-   (#x69e8 ?Ϊ)
-   (#x69ea ?ËÈ)
-   (#x69fb ?Ч)
-   (#x69fd ?ðË)
-   (#x69ff ?ÃÇ)
-   (#x6a02 ?äÅ)
-   (#x6a0a ?Ûà)
-   (#x6a11 ?ÕÚ)
-   (#x6a13 ?ק)
-   (#x6a17 ?îÀ)
-   (#x6a19 ?øö)
-   (#x6a1e ?õÒ)
-   (#x6a1f ?íé)
-   (#x6a21 ?Ù¼)
-   (#x6a23 ?åÆ)
-   (#x6a35 ?õ£)
-   (#x6a38 ?ÚÔ)
-   (#x6a39 ?â§)
-   (#x6a3a ?ûü)
-   (#x6a3d ?ñÜ)
-   (#x6a44 ?Êô)
-   (#x6a48 ?èú)
-   (#x6a4b ?Îé)
-   (#x6a52 ?éø)
-   (#x6a53 ?âå)
-   (#x6a58 ?й)
-   (#x6a59 ?Ôò)
-   (#x6a5f ?Ѧ)
-   (#x6a61 ?ßÎ)
-   (#x6a6b ?üô)
-   (#x6a80 ?Óª)
-   (#x6a84 ?̬)
-   (#x6a89 ?ïà)
-   (#x6a8d ?åå)
-   (#x6a8e ?ÃÕ)
-   (#x6a97 ?Ûü)
-   (#x6a9c ?üæ)
-   (#x6aa2 ?Ëþ)
-   (#x6aa3 ?íê)
-   (#x6ab3 ?Þ±)
-   (#x6abb ?ùã)
-   (#x6ac2 ?Ô¢)
-   (#x6ac3 ?Ãö)
-   (#x6ad3 ?ÖÃ)
-   (#x6ada ?Õê)
-   (#x6adb ?ñî)
-   (#x6af6 ?úË)
-   (#x6afb ?å¡)
-   (#x6b04 ?Õ±)
-   (#x6b0a ?Ãí)
-   (#x6b0c ?íë)
-   (#x6b12 ?Õ²)
-   (#x6b16 ?Õ¼)
-   (#x6b20 ?ýâ)
-   (#x6b21 ?ó­)
-   (#x6b23 ?ýÛ)
-   (#x6b32 ?é°)
-   (#x6b3a ?ѧ)
-   (#x6b3d ?ýã)
-   (#x6b3e ?γ)
-   (#x6b46 ?ýä)
-   (#x6b47 ?úÎ)
-   (#x6b4c ?Ê°)
-   (#x6b4e ?֤)
-   (#x6b50 ?ϱ)
-   (#x6b5f ?æ¢)
-   (#x6b61 ?ü¶)
-   (#x6b62 ?ò­)
-   (#x6b63 ?ïá)
-   (#x6b64 ?ó®)
-   (#x6b65 ?ÜÆ)
-   (#x6b66 ?Ùë)
-   (#x6b6a ?èà)
-   (#x6b72 ?á¨)
-   (#x6b77 ?Õö)
-   (#x6b78 ?Ãý)
-   (#x6b7b ?ÞÃ)
-   (#x6b7f ?ÙÑ)
-   (#x6b83 ?äê)
-   (#x6b84 ?òÃ)
-   (#x6b86 ?÷¿)
-   (#x6b89 ?âæ)
-   (#x6b8a ?â¨)
-   (#x6b96 ?ãÖ)
-   (#x6b98 ?íÑ)
-   (#x6b9e ?éù)
-   (#x6bae ?Ö±)
-   (#x6baf ?Þ²)
-   (#x6bb2 ?àè)
-   (#x6bb5 ?Ó«)
-   (#x6bb7 ?ëÜ)
-   (#x6bba ?߯)
-   (#x6bbc ?ÊÃ)
-   (#x6bbf ?îü)
-   (#x6bc1 ?ýÃ)
-   (#x6bc5 ?ëö)
-   (#x6bc6 ?ϲ)
-   (#x6bcb ?Ùì)
-   (#x6bcd ?Ù½)
-   (#x6bcf ?Øß)
-   (#x6bd2 ?Ô¸)
-   (#x6bd3 ?ë¾)
-   (#x6bd4 ?Ãï)
-   (#x6bd6 ?Ãð)
-   (#x6bd7 ?Ãñ)
-   (#x6bd8 ?Ãò)
-   (#x6bdb ?Ù¾)
-   (#x6beb ?ûÆ)
-   (#x6bec ?ϳ)
-   (#x6c08 ?îý)
-   (#x6c0f ?ä«)
-   (#x6c11 ?ÚÅ)
-   (#x6c13 ?Øì)
-   (#x6c23 ?Ѩ)
-   (#x6c34 ?â©)
-   (#x6c37 ?Þ¼)
-   (#x6c38 ?çµ)
-   (#x6c3e ?Ûð)
-   (#x6c40 ?ïâ)
-   (#x6c41 ?ñð)
-   (#x6c42 ?Ï´)
-   (#x6c4e ?Ûñ)
-   (#x6c50 ?à±)
-   (#x6c55 ?ߥ)
-   (#x6c57 ?ùÒ)
-   (#x6c5a ?çý)
-   (#x6c5d ?æ£)
-   (#x6c5e ?ûñ)
-   (#x6c5f ?Ë°)
-   (#x6c60 ?ò®)
-   (#x6c68 ?Ãç)
-   (#x6c6a ?èÜ)
-   (#x6c6d ?ç×)
-   (#x6c70 ?÷À)
-   (#x6c72 ?Ãã)
-   (#x6c76 ?Ú¡)
-   (#x6c7a ?̽)
-   (#x6c7d ?Ñ©)
-   (#x6c7e ?ÃÃŒ)
-   (#x6c81 ?ãþ)
-   (#x6c82 ?Ѫ)
-   (#x6c83 ?èª)
-   (#x6c85 ?ê¶)
-   (#x6c86 ?ùú)
-   (#x6c87 ?æÌ)
-   (#x6c88 ?öØ)
-   (#x6c8c ?ÔÇ)
-   (#x6c90 ?ÙË)
-   (#x6c92 ?ÙÒ)
-   (#x6c93 ?ÓË)
-   (#x6c94 ?Ø÷)
-   (#x6c95 ?Ú©)
-   (#x6c96 ?õø)
-   (#x6c99 ?ÞÞ)
-   (#x6c9a ?ò¯)
-   (#x6c9b ?ø©)
-   (#x6cab ?ØÈ)
-   (#x6cae ?îÃ)
-   (#x6cb3 ?ùÃ)
-   (#x6cb8 ?Ãó)
-   (#x6cb9 ?êú)
-   (#x6cbb ?ö½)
-   (#x6cbc ?á»)
-   (#x6cbd ?Í¿)
-   (#x6cbe ?ôÔ)
-   (#x6cbf ?æÃ)
-   (#x6cc1 ?üÃ)
-   (#x6cc2 ?û¢)
-   (#x6cc4 ?àÜ)
-   (#x6cc9 ?ô»)
-   (#x6cca ?ÚÕ)
-   (#x6ccc ?ù²)
-   (#x6cd3 ?ûò)
-   (#x6cd5 ?Ûö)
-   (#x6cd7 ?Þß)
-   (#x6cdb ?Ûò)
-   (#x6ce1 ?øÜ)
-   (#x6ce2 ?֔)
-   (#x6ce3 ?ëè)
-   (#x6ce5 ?Òú)
-   (#x6ce8 ?ñ¼)
-   (#x6ceb ?úÚ)
-   (#x6cee ?Úê)
-   (#x6cef ?ÚÆ)
-   (#x6cf0 ?÷Ã)
-   (#x6cf3 ?ç¶)
-   (#x6d0b ?åÇ)
-   (#x6d0c ?Ö¬)
-   (#x6d11 ?ÜÇ)
-   (#x6d17 ?á©)
-   (#x6d19 ?âª)
-   (#x6d1b ?Õ¦)
-   (#x6d1e ?Ô×)
-   (#x6d25 ?òÃ)
-   (#x6d27 ?êû)
-   (#x6d29 ?àÃ)
-   (#x6d2a ?ûó)
-   (#x6d32 ?ñ½)
-   (#x6d35 ?âç)
-   (#x6d36 ?ý×)
-   (#x6d38 ?ÎÈ)
-   (#x6d39 ?ê·)
-   (#x6d3b ?üÀ)
-   (#x6d3d ?ýç)
-   (#x6d3e ?֕)
-   (#x6d41 ?×µ)
-   (#x6d59 ?ïº)
-   (#x6d5a ?ñÃ)
-   (#x6d5c ?Þ³)
-   (#x6d63 ?èË)
-   (#x6d66 ?øÃ)
-   (#x6d69 ?ûÇ)
-   (#x6d6a ?ÕÈ)
-   (#x6d6c ?×ß)
-   (#x6d6e ?Ý©)
-   (#x6d74 ?é±)
-   (#x6d77 ?ú­)
-   (#x6d78 ?öÙ)
-   (#x6d79 ?úô)
-   (#x6d7f ?øª)
-   (#x6d85 ?æî)
-   (#x6d87 ?ÌÜ)
-   (#x6d88 ?á¼)
-   (#x6d89 ?àï)
-   (#x6d8c ?é¿)
-   (#x6d8d ?üý)
-   (#x6d8e ?æÎ)
-   (#x6d91 ?á×)
-   (#x6d93 ?æÃ)
-   (#x6d95 ?ôñ)
-   (#x6daf ?äó)
-   (#x6db2 ?äû)
-   (#x6db5 ?ùä)
-   (#x6dc0 ?ïã)
-   (#x6dc3 ?Ãî)
-   (#x6dc4 ?ö¾)
-   (#x6dc5 ?à²)
-   (#x6dc6 ?üþ)
-   (#x6dc7 ?Ñ«)
-   (#x6dcb ?×ú)
-   (#x6dcf ?ûÈ)
-   (#x6dd1 ?â×)
-   (#x6dd8 ?Ô£)
-   (#x6dd9 ?ðø)
-   (#x6dda ?ר)
-   (#x6dde ?áç)
-   (#x6de1 ?Ó¿)
-   (#x6de8 ?ïä)
-   (#x6dea ?×Å)
-   (#x6deb ?ëâ)
-   (#x6dee ?üç)
-   (#x6df1 ?ä¢)
-   (#x6df3 ?âè)
-   (#x6df5 ?æÃ)
-   (#x6df7 ?ûè)
-   (#x6df8 ?ôè)
-   (#x6df9 ?åô)
-   (#x6dfa ?ô¼)
-   (#x6dfb ?ôÕ)
-   (#x6e17 ?߶)
-   (#x6e19 ?ü¹)
-   (#x6e1a ?îÂ)
-   (#x6e1b ?Êõ)
-   (#x6e1f ?ïå)
-   (#x6e20 ?Ëâ)
-   (#x6e21 ?Ô¤)
-   (#x6e23 ?Þà)
-   (#x6e24 ?Úý)
-   (#x6e25 ?äÆ)
-   (#x6e26 ?è¾)
-   (#x6e2b ?àÞ)
-   (#x6e2c ?ö´)
-   (#x6e2d ?êÒ)
-   (#x6e2f ?ùû)
-   (#x6e32 ?àÂ)
-   (#x6e34 ?Êä)
-   (#x6e36 ?ç·)
-   (#x6e38 ?êý)
-   (#x6e3a ?ÙÃ)
-   (#x6e3c ?Ú´)
-   (#x6e3d ?îª)
-   (#x6e3e ?ûé)
-   (#x6e43 ?ÛË)
-   (#x6e44 ?Úµ)
-   (#x6e4a ?ñ¾)
-   (#x6e4d ?Ó¬)
-   (#x6e56 ?ûÉ)
-   (#x6e58 ?ßÃ)
-   (#x6e5b ?ÓÀ)
-   (#x6e5c ?ã×)
-   (#x6e5e ?ïæ)
-   (#x6e5f ?üÃ)
-   (#x6e67 ?éÀ)
-   (#x6e6b ?õÓ)
-   (#x6e6e ?ìÜ)
-   (#x6e6f ?÷·)
-   (#x6e72 ?ê¸)
-   (#x6e73 ?Ñù)
-   (#x6e7a ?ÜÈ)
-   (#x6e90 ?ê¹)
-   (#x6e96 ?ñÞ)
-   (#x6e9c ?׶)
-   (#x6e9d ?ϵ)
-   (#x6e9f ?Ù¨)
-   (#x6ea2 ?ìî)
-   (#x6ea5 ?ݪ)
-   (#x6eaa ?Í¢)
-   (#x6eab ?è®)
-   (#x6eaf ?á½)
-   (#x6eb1 ?òÑ)
-   (#x6eb6 ?éÃ)
-   (#x6eba ?Òü)
-   (#x6ec2 ?Ûµ)
-   (#x6ec4 ?óç)
-   (#x6ec5 ?Øþ)
-   (#x6ec9 ?üÑ)
-   (#x6ecb ?í²)
-   (#x6ecc ?ô¯)
-   (#x6ece ?û£)
-   (#x6ed1 ?üÃ)
-   (#x6ed3 ?î«)
-   (#x6ed4 ?Ô¥)
-   (#x6eef ?ôò)
-   (#x6ef4 ?îÙ)
-   (#x6ef8 ?ûÊ)
-   (#x6efe ?Ãã)
-   (#x6eff ?Ø»)
-   (#x6f01 ?åÛ)
-   (#x6f02 ?ø÷)
-   (#x6f06 ?öÔ)
-   (#x6f0f ?ש)
-   (#x6f11 ?ËÉ)
-   (#x6f14 ?æÑ)
-   (#x6f15 ?ðÌ)
-   (#x6f20 ?Ø®)
-   (#x6f22 ?ùÓ)
-   (#x6f23 ?Õþ)
-   (#x6f2b ?ؼ)
-   (#x6f2c ?ò°)
-   (#x6f31 ?â«)
-   (#x6f32 ?óè)
-   (#x6f38 ?ïÂ)
-   (#x6f3f ?íì)
-   (#x6f41 ?ç¸)
-   (#x6f51 ?Úþ)
-   (#x6f54 ?̾)
-   (#x6f57 ?òü)
-   (#x6f58 ?Úë)
-   (#x6f5a ?âØ)
-   (#x6f5b ?íÖ)
-   (#x6f5e ?ÖÑ)
-   (#x6f5f ?à³)
-   (#x6f62 ?üÒ)
-   (#x6f64 ?ëÈ)
-   (#x6f6d ?ÓÃ)
-   (#x6f6e ?ðÃ)
-   (#x6f70 ?Ã÷)
-   (#x6f7a ?íÒ)
-   (#x6f7c ?ÔØ)
-   (#x6f7d ?ÜÉ)
-   (#x6f7e ?×ñ)
-   (#x6f81 ?ß»)
-   (#x6f84 ?ó¥)
-   (#x6f88 ?ôÃ)
-   (#x6f8d ?ñ¿)
-   (#x6f8e ?ø±)
-   (#x6f90 ?éú)
-   (#x6f94 ?ûË)
-   (#x6f97 ?ÊÕ)
-   (#x6fa3 ?ùÔ)
-   (#x6fa4 ?÷Ê)
-   (#x6fa7 ?ÖÈ)
-   (#x6fae ?üè)
-   (#x6faf ?ó½)
-   (#x6fb1 ?îþ)
-   (#x6fb3 ?çþ)
-   (#x6fb9 ?ÓÂ)
-   (#x6fbe ?Ó¶)
-   (#x6fc0 ?Ì­)
-   (#x6fc1 ?öú)
-   (#x6fc2 ?Ö²)
-   (#x6fc3 ?ÒØ)
-   (#x6fca ?çØ)
-   (#x6fd5 ?ã¥)
-   (#x6fda ?ç¹)
-   (#x6fdf ?ð­)
-   (#x6fe0 ?ûÌ)
-   (#x6fe1 ?ë¡)
-   (#x6fe4 ?Ô¦)
-   (#x6fe9 ?ûÃ)
-   (#x6feb ?Õ½)
-   (#x6fec ?ñß)
-   (#x6fef ?öû)
-   (#x6ff1 ?Þ´)
-   (#x6ffe ?Õë)
-   (#x7001 ?åÈ)
-   (#x7005 ?û¤)
-   (#x7006 ?Ô¹)
-   (#x7009 ?Þá)
-   (#x700b ?ä£)
-   (#x700f ?×·)
-   (#x7011 ?øî)
-   (#x7015 ?Þµ)
-   (#x7018 ?ÖÒ)
-   (#x701a ?ùÕ)
-   (#x701b ?çº)
-   (#x701c ?ëÕ)
-   (#x701d ?Õ÷)
-   (#x701e ?ïç)
-   (#x701f ?á¾)
-   (#x7023 ?ú®)
-   (#x7027 ?Öé)
-   (#x7028 ?Öî)
-   (#x702f ?ç»)
-   (#x7037 ?ìË)
-   (#x703e ?Õ³)
-   (#x704c ?δ)
-   (#x7050 ?û¥)
-   (#x7051 ?áî)
-   (#x7058 ?֬)
-   (#x705d ?ûÎ)
-   (#x7063 ?ؽ)
-   (#x706b ?ûý)
-   (#x7070 ?üé)
-   (#x7078 ?϶)
-   (#x707c ?íÇ)
-   (#x707d ?î¬)
-   (#x7085 ?ÃŒÃ)
-   (#x708a ?ö§)
-   (#x708e ?æú)
-   (#x7092 ?õ¤)
-   (#x7098 ?ýÜ)
-   (#x7099 ?í³)
-   (#x709a ?ÎÉ)
-   (#x70a1 ?ïè)
-   (#x70a4 ?á¿)
-   (#x70ab ?úÛ)
-   (#x70ac ?Ëã)
-   (#x70ad ?֩)
-   (#x70af ?û¦)
-   (#x70b3 ?ܹ)
-   (#x70b7 ?ñÀ)
-   (#x70b8 ?íÈ)
-   (#x70b9 ?ïÃ)
-   (#x70c8 ?Ö­)
-   (#x70cb ?ýÎ)
-   (#x70cf ?è¡)
-   (#x70d8 ?ûô)
-   (#x70d9 ?Õ§)
-   (#x70dd ?ñö)
-   (#x70df ?æÓ)
-   (#x70f1 ?ÌÞ)
-   (#x70f9 ?ø²)
-   (#x70fd ?Üë)
-   (#x7104 ?ý¶)
-   (#x7109 ?åê)
-   (#x710c ?ñà)
-   (#x7119 ?ÛÌ)
-   (#x711a ?ÃÃ)
-   (#x711e ?ÔÈ)
-   (#x7121 ?Ùí)
-   (#x7126 ?õ¥)
-   (#x7130 ?æû)
-   (#x7136 ?æÔ)
-   (#x7147 ?ýÈ)
-   (#x7149 ?Ö¡)
-   (#x714a ?ý¿)
-   (#x714c ?üÓ)
-   (#x714e ?ï¡)
-   (#x7150 ?ç¼)
-   (#x7156 ?Ñî)
-   (#x7159 ?æÕ)
-   (#x715c ?éò)
-   (#x715e ?ß°)
-   (#x7164 ?Øà)
-   (#x7165 ?üº)
-   (#x7166 ?ý¯)
-   (#x7167 ?ðÎ)
-   (#x7169 ?Ûá)
-   (#x716c ?åÉ)
-   (#x716e ?í´)
-   (#x717d ?àÃ)
-   (#x7184 ?ãØ)
-   (#x7189 ?éû)
-   (#x718a ?ê¨)
-   (#x718f ?ý·)
-   (#x7192 ?û§)
-   (#x7194 ?éÂ)
-   (#x7199 ?ý÷)
-   (#x719f ?âÙ)
-   (#x71a2 ?Üì)
-   (#x71ac ?è¢)
-   (#x71b1 ?æð)
-   (#x71b9 ?ýø)
-   (#x71ba ?ýù)
-   (#x71be ?ö¿)
-   (#x71c1 ?ç§)
-   (#x71c3 ?æ×)
-   (#x71c8 ?Ôó)
-   (#x71c9 ?ÔÉ)
-   (#x71ce ?Öú)
-   (#x71d0 ?×ò)
-   (#x71d2 ?áÀ)
-   (#x71d4 ?Ûâ)
-   (#x71d5 ?æØ)
-   (#x71df ?ç½)
-   (#x71e5 ?ðÃ)
-   (#x71e6 ?ó¾)
-   (#x71e7 ?â¬)
-   (#x71ed ?õ·)
-   (#x71ee ?àð)
-   (#x71fb ?ý¸)
-   (#x71fc ?ãè)
-   (#x71fe ?Ô§)
-   (#x71ff ?èü)
-   (#x7200 ?úÒ)
-   (#x7206 ?øï)
-   (#x7210 ?ÖÓ)
-   (#x721b ?Õ´)
-   (#x722a ?ðÃ)
-   (#x722c ?÷ð)
-   (#x722d ?î³)
-   (#x7230 ?êº)
-   (#x7232 ?êÓ)
-   (#x7235 ?íÉ)
-   (#x7236 ?Ý«)
-   (#x723a ?å¬)
-   (#x723b ?ý¡)
-   (#x723d ?ßÃ)
-   (#x723e ?ì³)
-   (#x7240 ?ßÑ)
-   (#x7246 ?íí)
-   (#x7247 ?ø¸)
-   (#x7248 ?÷ú)
-   (#x724c ?ø«)
-   (#x7252 ?ôà)
-   (#x7258 ?Ôº)
-   (#x7259 ?ä³)
-   (#x725b ?éÚ)
-   (#x725d ?Þ¶)
-   (#x725f ?Ù¿)
-   (#x7261 ?ÙÀ)
-   (#x7262 ?Öï)
-   (#x7267 ?ÙÌ)
-   (#x7269 ?Úª)
-   (#x7272 ?ßå)
-   (#x7279 ?֌)
-   (#x727d ?̲)
-   (#x7280 ?ßù)
-   (#x7281 ?×à)
-   (#x72a2 ?Ô»)
-   (#x72a7 ?ýú)
-   (#x72ac ?̳)
-   (#x72af ?Ûó)
-   (#x72c0 ?ßÒ)
-   (#x72c2 ?ÎÊ)
-   (#x72c4 ?îÚ)
-   (#x72ce ?ää)
-   (#x72d0 ?ûÃ)
-   (#x72d7 ?Ï·)
-   (#x72d9 ?îÃ)
-   (#x72e1 ?Îê)
-   (#x72e9 ?â­)
-   (#x72f8 ?×á)
-   (#x72f9 ?úõ)
-   (#x72fc ?ÕÉ)
-   (#x72fd ?ø¬)
-   (#x730a ?çÙ)
-   (#x7316 ?óé)
-   (#x731b ?Øí)
-   (#x731c ?ãÄ)
-   (#x731d ?ðñ)
-   (#x7325 ?èå)
-   (#x7329 ?àú)
-   (#x732a ?îÄ)
-   (#x732b ?ÙÞ)
-   (#x7336 ?ë¢)
-   (#x7337 ?ë£)
-   (#x733e ?üÂ)
-   (#x733f ?ê»)
-   (#x7344 ?è«)
-   (#x7345 ?Þâ)
-   (#x7350 ?íï)
-   (#x7352 ?è£)
-   (#x7357 ?Ãñ)
-   (#x7368 ?Ô¼)
-   (#x736a ?üê)
-   (#x7370 ?ç¾)
-   (#x7372 ?üò)
-   (#x7375 ?Ö´)
-   (#x7378 ?â®)
-   (#x737a ?Ó·)
-   (#x737b ?úÌ)
-   (#x7384 ?úÜ)
-   (#x7386 ?íµ)
-   (#x7387 ?áã)
-   (#x7389 ?è¬)
-   (#x738b ?èÃ)
-   (#x738e ?ïé)
-   (#x7394 ?ô½)
-   (#x7396 ?ϸ)
-   (#x7397 ?éÛ)
-   (#x7398 ?Ѭ)
-   (#x739f ?ÚÇ)
-   (#x73a7 ?ëÉ)
-   (#x73a9 ?èÌ)
-   (#x73ad ?Þ·)
-   (#x73b2 ?Ö¼)
-   (#x73b3 ?Óå)
-   (#x73b9 ?úÃ)
-   (#x73c0 ?ÚÖ)
-   (#x73c2 ?ʱ)
-   (#x73c9 ?ÚÈ)
-   (#x73ca ?ߦ)
-   (#x73cc ?ù³)
-   (#x73cd ?òÒ)
-   (#x73cf ?ÊÄ)
-   (#x73d6 ?ÎË)
-   (#x73d9 ?Ãõ)
-   (#x73dd ?ý°)
-   (#x73de ?Õ¨)
-   (#x73e0 ?ñÃ)
-   (#x73e3 ?âé)
-   (#x73e4 ?ÜÊ)
-   (#x73e5 ?ì´)
-   (#x73e6 ?úÀ)
-   (#x73e9 ?û¨)
-   (#x73ea ?Ш)
-   (#x73ed ?Úì)
-   (#x73f7 ?Ùî)
-   (#x73f9 ?àû)
-   (#x73fd ?ïê)
-   (#x73fe ?úÞ)
-   (#x7401 ?àÄ)
-   (#x7403 ?Ϲ)
-   (#x7405 ?ÕÊ)
-   (#x7406 ?×â)
-   (#x7407 ?â¯)
-   (#x7409 ?׸)
-   (#x7413 ?èÃ)
-   (#x741b ?öÚ)
-   (#x7420 ?ï¢)
-   (#x7421 ?âÚ)
-   (#x7422 ?öü)
-   (#x7425 ?ûÃ)
-   (#x7426 ?Ñ­)
-   (#x7428 ?Ãä)
-   (#x742a ?Ñ®)
-   (#x742b ?Üí)
-   (#x742c ?èÎ)
-   (#x742e ?ðù)
-   (#x742f ?ε)
-   (#x7430 ?æü)
-   (#x7433 ?×û)
-   (#x7434 ?ÃÖ)
-   (#x7435 ?Ãõ)
-   (#x7436 ?֖)
-   (#x7438 ?öý)
-   (#x743a ?Û÷)
-   (#x743f ?ûê)
-   (#x7440 ?éÜ)
-   (#x7441 ?ÙÃ)
-   (#x7443 ?õò)
-   (#x7444 ?àÅ)
-   (#x744b ?êÔ)
-   (#x7455 ?ùÂ)
-   (#x7457 ?ê¼)
-   (#x7459 ?Ã’Ã…)
-   (#x745a ?ûÑ)
-   (#x745b ?çÀ)
-   (#x745c ?ë¥)
-   (#x745e ?ßú)
-   (#x745f ?ã¢)
-   (#x7460 ?×¹)
-   (#x7462 ?éÃ)
-   (#x7464 ?èý)
-   (#x7465 ?è¯)
-   (#x7468 ?òÓ)
-   (#x7469 ?û©)
-   (#x746a ?Ø¥)
-   (#x746f ?ÕË)
-   (#x747e ?ÃÈ)
-   (#x7482 ?ѯ)
-   (#x7483 ?×ã)
-   (#x7487 ?àÆ)
-   (#x7489 ?Ö¢)
-   (#x748b ?íð)
-   (#x7498 ?×ó)
-   (#x749c ?üÔ)
-   (#x749e ?Ú×)
-   (#x749f ?Ìß)
-   (#x74a1 ?òÔ)
-   (#x74a3 ?Ñ°)
-   (#x74a5 ?Ìà)
-   (#x74a7 ?Ûý)
-   (#x74a8 ?ó¿)
-   (#x74aa ?ðÑ)
-   (#x74b0 ?ü»)
-   (#x74b2 ?â°)
-   (#x74b5 ?æ¥)
-   (#x74b9 ?âÛ)
-   (#x74bd ?ßÞ)
-   (#x74bf ?àÇ)
-   (#x74c6 ?òï)
-   (#x74ca ?Ìá)
-   (#x74cf ?Öê)
-   (#x74d4 ?çÂ)
-   (#x74d8 ?ζ)
-   (#x74da ?óÀ)
-   (#x74dc ?Ãþ)
-   (#x74e0 ?ûÒ)
-   (#x74e2 ?øø)
-   (#x74e3 ?÷û)
-   (#x74e6 ?è¿)
-   (#x74ee ?è·)
-   (#x74f7 ?í¶)
-   (#x7501 ?ܺ)
-   (#x7504 ?Ì´)
-   (#x7511 ?ñ÷)
-   (#x7515 ?è¸)
-   (#x7518 ?Êö)
-   (#x751a ?ä¤)
-   (#x751b ?ôÖ)
-   (#x751f ?ßæ)
-   (#x7523 ?ߧ)
-   (#x7525 ?ßç)
-   (#x7526 ?áÃ)
-   (#x7528 ?éÄ)
-   (#x752b ?ÜË)
-   (#x752c ?éÅ)
-   (#x7530 ?ï£)
-   (#x7531 ?ë¦)
-   (#x7532 ?Ë£)
-   (#x7533 ?ãé)
-   (#x7537 ?Ñû)
-   (#x7538 ?ï¤)
-   (#x753a ?ïë)
-   (#x7547 ?д)
-   (#x754c ?Í£)
-   (#x754f ?èæ)
-   (#x7551 ?ï¥)
-   (#x7553 ?ÓÌ)
-   (#x7554 ?Úí)
-   (#x7559 ?׺)
-   (#x755b ?òÕ)
-   (#x755c ?õå)
-   (#x755d ?Ùï)
-   (#x7562 ?ù´)
-   (#x7565 ?ÕÔ)
-   (#x7566 ?ýÃ)
-   (#x756a ?Ûã)
-   (#x756f ?ñá)
-   (#x7570 ?ì¶)
-   (#x7575 ?ûþ)
-   (#x7576 ?Ó×)
-   (#x7578 ?ѱ)
-   (#x757a ?˱)
-   (#x757f ?Ѳ)
-   (#x7586 ?˲)
-   (#x7587 ?ñÂ)
-   (#x758a ?ôá)
-   (#x758b ?ùµ)
-   (#x758e ?áÃ)
-   (#x758f ?áÂ)
-   (#x7591 ?ë÷)
-   (#x759d ?ߨ)
-   (#x75a5 ?ËÊ)
-   (#x75ab ?æ¹)
-   (#x75b1 ?øÞ)
-   (#x75b2 ?ùª)
-   (#x75b3 ?Ê÷)
-   (#x75b5 ?í·)
-   (#x75b8 ?Ó¸)
-   (#x75b9 ?òÖ)
-   (#x75bc ?ÔÙ)
-   (#x75bd ?îÅ)
-   (#x75be ?òð)
-   (#x75c2 ?ʲ)
-   (#x75c5 ?Ü»)
-   (#x75c7 ?ñø)
-   (#x75cd ?ì·)
-   (#x75d2 ?åÊ)
-   (#x75d4 ?öÀ)
-   (#x75d5 ?ýÃ)
-   (#x75d8 ?Ôã)
-   (#x75d9 ?Ìâ)
-   (#x75db ?÷Ô)
-   (#x75e2 ?×å)
-   (#x75f0 ?ÓÃ)
-   (#x75f2 ?ئ)
-   (#x75f4 ?öÃ)
-   (#x75fa ?Ãö)
-   (#x75fc ?ÃÀ)
-   (#x7600 ?åÜ)
-   (#x760d ?åË)
-   (#x7619 ?áÄ)
-   (#x761f ?è°)
-   (#x7620 ?ô°)
-   (#x7621 ?óê)
-   (#x7622 ?Úî)
-   (#x7624 ?×»)
-   (#x7626 ?â±)
-   (#x763b ?ת)
-   (#x7642 ?Öû)
-   (#x764c ?äß)
-   (#x764e ?ÊÖ)
-   (#x7652 ?ë¨)
-   (#x7656 ?Ûþ)
-   (#x7661 ?öÂ)
-   (#x7664 ?ï»)
-   (#x7669 ?Ôý)
-   (#x766c ?àÈ)
-   (#x7670 ?è¹)
-   (#x7672 ?ï¦)
-   (#x7678 ?ͤ)
-   (#x767b ?Ôô)
-   (#x767c ?Û¡)
-   (#x767d ?ÛÜ)
-   (#x767e ?ÛÃ)
-   (#x7684 ?îÜ)
-   (#x7686 ?ËË)
-   (#x7687 ?üÕ)
-   (#x768e ?Îë)
-   (#x7690 ?ÃÃ)
-   (#x7693 ?ûÓ)
-   (#x76ae ?ù«)
-   (#x76ba ?õÔ)
-   (#x76bf ?Ù©)
-   (#x76c2 ?éÃ)
-   (#x76c3 ?ÛÃ)
-   (#x76c6 ?ÃÃŽ)
-   (#x76c8 ?çÃ)
-   (#x76ca ?ìÌ)
-   (#x76d2 ?ùì)
-   (#x76d6 ?ËÌ)
-   (#x76db ?àü)
-   (#x76dc ?Ô¨)
-   (#x76de ?íÓ)
-   (#x76df ?Øï)
-   (#x76e1 ?ò×)
-   (#x76e3 ?Êø)
-   (#x76e4 ?Úï)
-   (#x76e7 ?ÖÔ)
-   (#x76ee ?ÙÃ)
-   (#x76f2 ?Øî)
-   (#x76f4 ?òÃ)
-   (#x76f8 ?ßÓ)
-   (#x76fc ?Úð)
-   (#x76fe ?âê)
-   (#x7701 ?àý)
-   (#x7704 ?Øø)
-   (#x7708 ?÷¯)
-   (#x7709 ?Ú¶)
-   (#x770b ?Ê×)
-   (#x771e ?òØ)
-   (#x7720 ?Øù)
-   (#x7729 ?úß)
-   (#x7737 ?Ãï)
-   (#x7738 ?ÙÂ)
-   (#x773a ?ðÒ)
-   (#x773c ?äÑ)
-   (#x7740 ?ó·)
-   (#x774d ?úà)
-   (#x775b ?ïì)
-   (#x7761 ?â²)
-   (#x7763 ?Ô½)
-   (#x7766 ?ÙÎ)
-   (#x776b ?ôâ)
-   (#x7779 ?Ô©)
-   (#x777e ?ÃÂ)
-   (#x777f ?çÚ)
-   (#x778b ?òÙ)
-   (#x7791 ?Ùª)
-   (#x779e ?ؾ)
-   (#x77a5 ?Ü­)
-   (#x77ac ?âë)
-   (#x77ad ?Öü)
-   (#x77b0 ?Êù)
-   (#x77b3 ?ÔÚ)
-   (#x77bb ?ô×)
-   (#x77bc ?Ì¡)
-   (#x77bf ?Ϻ)
-   (#x77d7 ?õ¸)
-   (#x77db ?ÙÃ)
-   (#x77dc ?Ãè)
-   (#x77e2 ?ãÅ)
-   (#x77e3 ?ëø)
-   (#x77e5 ?ò±)
-   (#x77e9 ?Ï»)
-   (#x77ed ?Ó­)
-   (#x77ee ?èá)
-   (#x77ef ?Îì)
-   (#x77f3 ?à´)
-   (#x7802 ?Þã)
-   (#x7812 ?Ã÷)
-   (#x7825 ?ò²)
-   (#x7826 ?óö)
-   (#x7827 ?öÛ)
-   (#x782c ?×þ)
-   (#x7832 ?øß)
-   (#x7834 ?÷ò)
-   (#x7845 ?Щ)
-   (#x784f ?æÚ)
-   (#x785d ?õ¦)
-   (#x786b ?×¼)
-   (#x786c ?Ìã)
-   (#x786f ?æÛ)
-   (#x787c ?ÃÃ)
-   (#x7881 ?ѳ)
-   (#x7887 ?ïí)
-   (#x788c ?ÖÞ)
-   (#x788d ?äô)
-   (#x788e ?áï)
-   (#x7891 ?Ãø)
-   (#x7897 ?èÃ)
-   (#x78a3 ?Êå)
-   (#x78a7 ?Ü¡)
-   (#x78a9 ?àµ)
-   (#x78ba ?ü¬)
-   (#x78bb ?ü­)
-   (#x78bc ?ا)
-   (#x78c1 ?í¸)
-   (#x78c5 ?Û¶)
-   (#x78ca ?Öð)
-   (#x78cb ?ó¯)
-   (#x78ce ?Í¥)
-   (#x78d0 ?Úñ)
-   (#x78e8 ?ب)
-   (#x78ec ?Ìä)
-   (#x78ef ?Ñ´)
-   (#x78f5 ?ÊØ)
-   (#x78fb ?Úò)
-   (#x7901 ?õ§)
-   (#x790e ?õ¨)
-   (#x7916 ?æ¦)
-   (#x792a ?Õì)
-   (#x792b ?Õø)
-   (#x792c ?Úó)
-   (#x793a ?ãÆ)
-   (#x793e ?Þä)
-   (#x7940 ?Þå)
-   (#x7941 ?ѵ)
-   (#x7947 ?Ѷ)
-   (#x7948 ?Ñ·)
-   (#x7949 ?ò³)
-   (#x7950 ?éÞ)
-   (#x7956 ?ðÓ)
-   (#x7957 ?ò´)
-   (#x795a ?ðÔ)
-   (#x795b ?Ëä)
-   (#x795c ?ûÔ)
-   (#x795d ?õæ)
-   (#x795e ?ãê)
-   (#x7960 ?Þæ)
-   (#x7965 ?ßÔ)
-   (#x7968 ?øù)
-   (#x796d ?ð®)
-   (#x797a ?Ѹ)
-   (#x797f ?Öß)
-   (#x7981 ?Ã×)
-   (#x798d ?ü¡)
-   (#x798e ?ïî)
-   (#x798f ?ÜØ)
-   (#x7991 ?éß)
-   (#x79a6 ?Ã¥Ã)
-   (#x79a7 ?ýû)
-   (#x79aa ?àÉ)
-   (#x79ae ?ÖÉ)
-   (#x79b1 ?Ôª)
-   (#x79b3 ?åÌ)
-   (#x79b9 ?éà)
-   (#x79bd ?ÃØ)
-   (#x79be ?ü¢)
-   (#x79bf ?Ô¾)
-   (#x79c0 ?â³)
-   (#x79c1 ?Þç)
-   (#x79c9 ?ܼ)
-   (#x79ca ?Ò¶)
-   (#x79cb ?õÕ)
-   (#x79d1 ?Ρ)
-   (#x79d2 ?õ©)
-   (#x79d5 ?Ãù)
-   (#x79d8 ?Ãú)
-   (#x79df ?ðÕ)
-   (#x79e4 ?öß)
-   (#x79e6 ?òÚ)
-   (#x79e7 ?äë)
-   (#x79e9 ?òñ)
-   (#x79fb ?ì¹)
-   (#x7a00 ?ýü)
-   (#x7a05 ?áª)
-   (#x7a08 ?ÊÙ)
-   (#x7a0b ?ïï)
-   (#x7a0d ?õª)
-   (#x7a14 ?ìù)
-   (#x7a17 ?ø­)
-   (#x7a19 ?òÂ)
-   (#x7a1a ?öÃ)
-   (#x7a1c ?×Ò)
-   (#x7a1f ?ù¢)
-   (#x7a20 ?ðÖ)
-   (#x7a2e ?ðú)
-   (#x7a31 ?öà)
-   (#x7a36 ?éó)
-   (#x7a37 ?òÃ)
-   (#x7a3b ?Ô«)
-   (#x7a3c ?ʳ)
-   (#x7a3d ?ͦ)
-   (#x7a3f ?ÃÃ)
-   (#x7a40 ?ÃÚ)
-   (#x7a46 ?ÙÃ)
-   (#x7a49 ?öÄ)
-   (#x7a4d ?îÃ)
-   (#x7a4e ?çÄ)
-   (#x7a57 ?â´)
-   (#x7a61 ?ßâ)
-   (#x7a62 ?çÛ)
-   (#x7a69 ?è±)
-   (#x7a6b ?ü®)
-   (#x7a70 ?Ã¥Ã)
-   (#x7a74 ?úë)
-   (#x7a76 ?ϼ)
-   (#x7a79 ?Ãâ)
-   (#x7a7a ?Ãö)
-   (#x7a7d ?ïð)
-   (#x7a7f ?ô¾)
-   (#x7a81 ?ÔÃ)
-   (#x7a84 ?ó¸)
-   (#x7a88 ?é¡)
-   (#x7a92 ?òò)
-   (#x7a93 ?óë)
-   (#x7a95 ?ð×)
-   (#x7a98 ?Ã×)
-   (#x7a9f ?Ãß)
-   (#x7aa9 ?èÀ)
-   (#x7aaa ?èÃ)
-   (#x7aae ?Ãã)
-   (#x7aaf ?é¢)
-   (#x7aba ?Ъ)
-   (#x7ac4 ?óÃ)
-   (#x7ac5 ?Ы)
-   (#x7ac7 ?Ôä)
-   (#x7aca ?ï¼)
-   (#x7acb ?Ø¡)
-   (#x7ad7 ?Ùß)
-   (#x7ad9 ?ó×)
-   (#x7add ?ܽ)
-   (#x7adf ?Ìå)
-   (#x7ae0 ?íñ)
-   (#x7ae3 ?ñâ)
-   (#x7ae5 ?ÔÛ)
-   (#x7aea ?âµ)
-   (#x7aed ?Êæ)
-   (#x7aef ?Ó®)
-   (#x7af6 ?Ìæ)
-   (#x7af9 ?ñÓ)
-   (#x7afa ?õç)
-   (#x7aff ?ÊÚ)
-   (#x7b0f ?ûî)
-   (#x7b11 ?áÅ)
-   (#x7b19 ?ßé)
-   (#x7b1b ?îÞ)
-   (#x7b1e ?÷Â)
-   (#x7b20 ?Ø¢)
-   (#x7b26 ?ݬ)
-   (#x7b2c ?ð¯)
-   (#x7b2d ?Ö½)
-   (#x7b39 ?á«)
-   (#x7b46 ?ù¶)
-   (#x7b49 ?Ôõ)
-   (#x7b4b ?ÃÉ)
-   (#x7b4c ?ï§)
-   (#x7b4d ?âì)
-   (#x7b4f ?Ûê)
-   (#x7b50 ?ÃŽÃŒ)
-   (#x7b51 ?õè)
-   (#x7b52 ?÷Õ)
-   (#x7b54 ?ÓÃ)
-   (#x7b56 ?óþ)
-   (#x7b60 ?е)
-   (#x7b6c ?àþ)
-   (#x7b6e ?ßû)
-   (#x7b75 ?æÃ)
-   (#x7b7d ?è¤)
-   (#x7b87 ?ËÃ)
-   (#x7b8b ?ï¨)
-   (#x7b8f ?î´)
-   (#x7b94 ?ÚØ)
-   (#x7b95 ?ѹ)
-   (#x7b97 ?ß©)
-   (#x7b9a ?ó°)
-   (#x7b9d ?ÌÄ)
-   (#x7ba1 ?η)
-   (#x7bad ?ï©)
-   (#x7bb1 ?ßÕ)
-   (#x7bb4 ?í×)
-   (#x7bb8 ?îÆ)
-   (#x7bc0 ?ï½)
-   (#x7bc1 ?üÖ)
-   (#x7bc4 ?Ûô)
-   (#x7bc6 ?ïª)
-   (#x7bc7 ?ø¹)
-   (#x7bc9 ?õé)
-   (#x7bd2 ?ãÙ)
-   (#x7be0 ?áÆ)
-   (#x7be4 ?Ô¿)
-   (#x7be9 ?Þè)
-   (#x7c07 ?ðê)
-   (#x7c12 ?óÂ)
-   (#x7c1e ?Ó¯)
-   (#x7c21 ?ÊÛ)
-   (#x7c27 ?ü×)
-   (#x7c2a ?íØ)
-   (#x7c2b ?áÇ)
-   (#x7c3d ?ôØ)
-   (#x7c3e ?Ö³)
-   (#x7c3f ?Ý­)
-   (#x7c43 ?Õ¾)
-   (#x7c4c ?ñÃ)
-   (#x7c4d ?îß)
-   (#x7c60 ?Öë)
-   (#x7c64 ?ôÙ)
-   (#x7c6c ?×æ)
-   (#x7c73 ?Ú·)
-   (#x7c83 ?Ãû)
-   (#x7c89 ?ÃÃ)
-   (#x7c92 ?Ø£)
-   (#x7c95 ?ÚÙ)
-   (#x7c97 ?ðØ)
-   (#x7c98 ?ïÄ)
-   (#x7c9f ?áØ)
-   (#x7ca5 ?ñÔ)
-   (#x7ca7 ?íò)
-   (#x7cae ?ÕÛ)
-   (#x7cb1 ?ÕÜ)
-   (#x7cb2 ?óÄ)
-   (#x7cb3 ?Ë×)
-   (#x7cb9 ?â¶)
-   (#x7cbe ?ïñ)
-   (#x7cca ?ûÕ)
-   (#x7cd6 ?ÓØ)
-   (#x7cde ?ÃÃ)
-   (#x7cdf ?ðÙ)
-   (#x7ce0 ?˳)
-   (#x7ce7 ?ÕÃ)
-   (#x7cfb ?ͧ)
-   (#x7cfe ?Ь)
-   (#x7d00 ?Ѻ)
-   (#x7d02 ?ñÄ)
-   (#x7d04 ?å³)
-   (#x7d05 ?ûõ)
-   (#x7d06 ?éá)
-   (#x7d07 ?ýà)
-   (#x7d08 ?ü¼)
-   (#x7d0a ?Ú¢)
-   (#x7d0b ?Ú£)
-   (#x7d0d ?Ò¡)
-   (#x7d10 ?Òï)
-   (#x7d14 ?âí)
-   (#x7d17 ?Þé)
-   (#x7d18 ?ÃŽÃœ)
-   (#x7d19 ?òµ)
-   (#x7d1a ?Ãä)
-   (#x7d1b ?ÃÑ)
-   (#x7d20 ?áÈ)
-   (#x7d21 ?Û·)
-   (#x7d22 ?ßã)
-   (#x7d2b ?í¹)
-   (#x7d2c ?ñÅ)
-   (#x7d2e ?óÃ)
-   (#x7d2f ?׫)
-   (#x7d30 ?á¬)
-   (#x7d33 ?ãë)
-   (#x7d35 ?îÇ)
-   (#x7d39 ?áÉ)
-   (#x7d3a ?Êú)
-   (#x7d42 ?ðû)
-   (#x7d43 ?úá)
-   (#x7d44 ?ðÚ)
-   (#x7d45 ?Ìç)
-   (#x7d46 ?Úô)
-   (#x7d50 ?Ì¿)
-   (#x7d5e ?Îí)
-   (#x7d61 ?Õ©)
-   (#x7d62 ?úâ)
-   (#x7d66 ?ÃÃ¥)
-   (#x7d68 ?ëÖ)
-   (#x7d6a ?ìß)
-   (#x7d6e ?ßü)
-   (#x7d71 ?÷Ö)
-   (#x7d72 ?Þê)
-   (#x7d73 ?Ë´)
-   (#x7d76 ?ï¾)
-   (#x7d79 ?̵)
-   (#x7d7f ?Ͻ)
-   (#x7d8e ?ïò)
-   (#x7d8f ?â·)
-   (#x7d93 ?Ìè)
-   (#x7d9c ?ðü)
-   (#x7da0 ?Öà)
-   (#x7da2 ?ñÆ)
-   (#x7dac ?â¸)
-   (#x7dad ?ë«)
-   (#x7db1 ?˵)
-   (#x7db2 ?ØÑ)
-   (#x7db4 ?ôÎ)
-   (#x7db5 ?ó÷)
-   (#x7db8 ?×Æ)
-   (#x7dba ?Ñ»)
-   (#x7dbb ?ֻ)
-   (#x7dbd ?íÊ)
-   (#x7dbe ?×Ó)
-   (#x7dbf ?Øú)
-   (#x7dc7 ?öÅ)
-   (#x7dca ?ÑÌ)
-   (#x7dcb ?Ãü)
-   (#x7dd6 ?ßý)
-   (#x7dd8 ?ùå)
-   (#x7dda ?àÊ)
-   (#x7ddd ?òý)
-   (#x7dde ?Ó°)
-   (#x7de0 ?ôó)
-   (#x7de1 ?ÚÉ)
-   (#x7de3 ?æÞ)
-   (#x7de8 ?øº)
-   (#x7de9 ?èÃ)
-   (#x7dec ?Øû)
-   (#x7def ?êÕ)
-   (#x7df4 ?Ö£)
-   (#x7dfb ?öÆ)
-   (#x7e09 ?òÛ)
-   (#x7e0a ?äü)
-   (#x7e15 ?è²)
-   (#x7e1b ?ÚÚ)
-   (#x7e1d ?òÜ)
-   (#x7e1e ?ûÖ)
-   (#x7e1f ?é²)
-   (#x7e21 ?î­)
-   (#x7e23 ?úã)
-   (#x7e2b ?Üî)
-   (#x7e2e ?õê)
-   (#x7e2f ?æà)
-   (#x7e31 ?ðý)
-   (#x7e37 ?׬)
-   (#x7e3d ?õÅ)
-   (#x7e3e ?îà)
-   (#x7e41 ?Ûå)
-   (#x7e43 ?ÃÞ)
-   (#x7e46 ?Ùð)
-   (#x7e47 ?é£)
-   (#x7e52 ?ñù)
-   (#x7e54 ?òÄ)
-   (#x7e55 ?àË)
-   (#x7e5e ?é¤)
-   (#x7e61 ?â¹)
-   (#x7e69 ?ã±)
-   (#x7e6a ?üë)
-   (#x7e6b ?ͨ)
-   (#x7e6d ?̶)
-   (#x7e70 ?ðÛ)
-   (#x7e79 ?æº)
-   (#x7e7c ?Í©)
-   (#x7e82 ?óÃ)
-   (#x7e8c ?áÙ)
-   (#x7e8f ?ï«)
-   (#x7e93 ?çÅ)
-   (#x7e96 ?àé)
-   (#x7e98 ?óÅ)
-   (#x7e9b ?ÔÀ)
-   (#x7e9c ?Õ¿)
-   (#x7f36 ?Ý®)
-   (#x7f38 ?ùü)
-   (#x7f3a ?ÌÀ)
-   (#x7f4c ?å¢)
-   (#x7f50 ?θ)
-   (#x7f54 ?ØÒ)
-   (#x7f55 ?ùÖ)
-   (#x7f6a ?ñª)
-   (#x7f6b ?ÎÑ)
-   (#x7f6e ?öÇ)
-   (#x7f70 ?Ûë)
-   (#x7f72 ?ßþ)
-   (#x7f75 ?Øá)
-   (#x7f77 ?÷ó)
-   (#x7f79 ?×ç)
-   (#x7f85 ?Ôþ)
-   (#x7f88 ?Ѽ)
-   (#x7f8a ?Ã¥Ã)
-   (#x7f8c ?˶)
-   (#x7f8e ?Ú¸)
-   (#x7f94 ?ÃÄ)
-   (#x7f9a ?Ö¾)
-   (#x7f9e ?âº)
-   (#x7fa4 ?ÃØ)
-   (#x7fa8 ?àÌ)
-   (#x7fa9 ?ëù)
-   (#x7fb2 ?ýý)
-   (#x7fb8 ?×è)
-   (#x7fb9 ?ËØ)
-   (#x7fbd ?éâ)
-   (#x7fc1 ?èº)
-   (#x7fc5 ?ãÇ)
-   (#x7fca ?ìÃ)
-   (#x7fcc ?ìÎ)
-   (#x7fce ?Ö¿)
-   (#x7fd2 ?ã§)
-   (#x7fd4 ?ßÖ)
-   (#x7fd5 ?ýè)
-   (#x7fdf ?îá)
-   (#x7fe0 ?ö¨)
-   (#x7fe1 ?Ãý)
-   (#x7fe9 ?ø»)
-   (#x7feb ?èÑ)
-   (#x7ff0 ?ù×)
-   (#x7ff9 ?Îî)
-   (#x7ffc ?ìÃ)
-   (#x8000 ?é¥)
-   (#x8001 ?ÖÕ)
-   (#x8003 ?ÃÃ…)
-   (#x8005 ?íº)
-   (#x8006 ?ѽ)
-   (#x8009 ?Ͼ)
-   (#x800c ?ì»)
-   (#x8010 ?Ò±)
-   (#x8015 ?Ìé)
-   (#x8017 ?ÙÄ)
-   (#x8018 ?éü)
-   (#x802d ?Ѿ)
-   (#x8033 ?ì¼)
-   (#x8036 ?å­)
-   (#x803d ?÷°)
-   (#x803f ?Ìê)
-   (#x8043 ?ÓÄ)
-   (#x8046 ?ÖÀ)
-   (#x804a ?Öý)
-   (#x8056 ?á¡)
-   (#x8058 ?Þ½)
-   (#x805a ?ö©)
-   (#x805e ?Ú¤)
-   (#x806f ?Ö¤)
-   (#x8070 ?õÆ)
-   (#x8072 ?á¢)
-   (#x8073 ?éÆ)
-   (#x8077 ?òÅ)
-   (#x807d ?ôé)
-   (#x807e ?Öì)
-   (#x807f ?ëÓ)
-   (#x8084 ?ì½)
-   (#x8085 ?âÜ)
-   (#x8086 ?Þë)
-   (#x8087 ?ðÜ)
-   (#x8089 ?ë¿)
-   (#x808b ?×Î)
-   (#x808c ?Ñ¿)
-   (#x8096 ?õ«)
-   (#x809b ?ùý)
-   (#x809d ?ÊÜ)
-   (#x80a1 ?ÃÆ)
-   (#x80a2 ?ò¶)
-   (#x80a5 ?Ãþ)
-   (#x80a9 ?Ì·)
-   (#x80aa ?Û¸)
-   (#x80af ?Ãé)
-   (#x80b1 ?ÃŽÃ)
-   (#x80b2 ?ëÀ)
-   (#x80b4 ?ý¢)
-   (#x80ba ?øË)
-   (#x80c3 ?êÖ)
-   (#x80c4 ?ñ°)
-   (#x80cc ?ÛÎ)
-   (#x80ce ?÷Ã)
-   (#x80da ?ÛÃ)
-   (#x80db ?ˤ)
-   (#x80de ?øà)
-   (#x80e1 ?û×)
-   (#x80e4 ?ëÊ)
-   (#x80e5 ?à¡)
-   (#x80f1 ?ÃŽÃ)
-   (#x80f4 ?ÔÜ)
-   (#x80f8 ?ýØ)
-   (#x80fd ?Òö)
-   (#x8102 ?ò·)
-   (#x8105 ?úö)
-   (#x8106 ?öª)
-   (#x8107 ?ú÷)
-   (#x8108 ?Øæ)
-   (#x810a ?ô±)
-   (#x8118 ?èÒ)
-   (#x811a ?ÊÅ)
-   (#x811b ?Ìë)
-   (#x8123 ?âî)
-   (#x8129 ?â»)
-   (#x812b ?÷­)
-   (#x812f ?øá)
-   (#x8139 ?óì)
-   (#x813e ?Þ¡)
-   (#x814b ?äý)
-   (#x814e ?ãì)
-   (#x8150 ?ݯ)
-   (#x8151 ?Ý°)
-   (#x8154 ?Ë·)
-   (#x8155 ?èÓ)
-   (#x8165 ?á£)
-   (#x8166 ?Òà)
-   (#x816b ?ðþ)
-   (#x8170 ?é¦)
-   (#x8171 ?Ëò)
-   (#x8178 ?íó)
-   (#x8179 ?ÜÙ)
-   (#x817a ?àÃ)
-   (#x817f ?÷Ú)
-   (#x8180 ?Û¹)
-   (#x8188 ?Ì®)
-   (#x818a ?ÚÛ)
-   (#x818f ?ÃÇ)
-   (#x819a ?ݱ)
-   (#x819c ?د)
-   (#x819d ?ã£)
-   (#x81a0 ?Îï)
-   (#x81a3 ?òó)
-   (#x81a8 ?ø³)
-   (#x81b3 ?àÎ)
-   (#x81b5 ?õý)
-   (#x81ba ?ëì)
-   (#x81bd ?ÓÅ)
-   (#x81be ?üì)
-   (#x81bf ?ÒÛ)
-   (#x81c0 ?Ôë)
-   (#x81c2 ?Þ¢)
-   (#x81c6 ?åæ)
-   (#x81cd ?ð°)
-   (#x81d8 ?ÕÄ)
-   (#x81df ?íô)
-   (#x81e3 ?ãí)
-   (#x81e5 ?èÂ)
-   (#x81e7 ?íõ)
-   (#x81e8 ?×ü)
-   (#x81ea ?í»)
-   (#x81ed ?ö«)
-   (#x81f3 ?ò¸)
-   (#x81f4 ?öÈ)
-   (#x81fa ?Óæ)
-   (#x81fb ?òÃ)
-   (#x81fc ?Ï¿)
-   (#x81fe ?ë¬)
-   (#x8205 ?ÃÀ)
-   (#x8207 ?æ¨)
-   (#x8208 ?ýé)
-   (#x820a ?ÃÃ)
-   (#x820c ?àß)
-   (#x820d ?Þì)
-   (#x8212 ?à¢)
-   (#x821b ?ô¿)
-   (#x821c ?âï)
-   (#x821e ?Ùñ)
-   (#x821f ?ñÇ)
-   (#x8221 ?˸)
-   (#x822a ?ùþ)
-   (#x822b ?Ûº)
-   (#x822c ?Úõ)
-   (#x8235 ?öì)
-   (#x8236 ?ÚÜ)
-   (#x8237 ?úä)
-   (#x8239 ?àÃ)
-   (#x8240 ?ݲ)
-   (#x8245 ?æ©)
-   (#x8247 ?ïó)
-   (#x8259 ?óí)
-   (#x8264 ?ëú)
-   (#x8266 ?ùæ)
-   (#x826e ?ÊÃ)
-   (#x826f ?ÕÞ)
-   (#x8271 ?ÊÞ)
-   (#x8272 ?ßä)
-   (#x8276 ?æý)
-   (#x8278 ?õ¬)
-   (#x827e ?äõ)
-   (#x828b ?éã)
-   (#x828d ?íË)
-   (#x828e ?Ãä)
-   (#x8292 ?ØÓ)
-   (#x8299 ?ݳ)
-   (#x829a ?Ôì)
-   (#x829d ?ò¹)
-   (#x829f ?ß·)
-   (#x82a5 ?ËÎ)
-   (#x82a6 ?ûØ)
-   (#x82a9 ?ÃÙ)
-   (#x82ac ?ÃÃ’)
-   (#x82ad ?÷ô)
-   (#x82ae ?çÜ)
-   (#x82af ?ä¥)
-   (#x82b1 ?ü£)
-   (#x82b3 ?Û»)
-   (#x82b7 ?òº)
-   (#x82b8 ?éý)
-   (#x82b9 ?ÃÊ)
-   (#x82bb ?õÖ)
-   (#x82bc ?ÙÅ)
-   (#x82bd ?ä´)
-   (#x82bf ?í§)
-   (#x82d1 ?ê½)
-   (#x82d2 ?æþ)
-   (#x82d4 ?ր)
-   (#x82d5 ?õ­)
-   (#x82d7 ?Ùà)
-   (#x82db ?Ê´)
-   (#x82de ?øâ)
-   (#x82df ?ÃÂ)
-   (#x82e1 ?ì¾)
-   (#x82e5 ?å´)
-   (#x82e6 ?ÃÈ)
-   (#x82e7 ?îÈ)
-   (#x82f1 ?çÈ)
-   (#x82fd ?ÃÉ)
-   (#x82fe ?ù·)
-   (#x8301 ?ñè)
-   (#x8302 ?Ùò)
-   (#x8303 ?Ûõ)
-   (#x8304 ?ʵ)
-   (#x8305 ?ÙÆ)
-   (#x8309 ?ØÉ)
-   (#x8317 ?Ù«)
-   (#x8328 ?í¼)
-   (#x832b ?ØÔ)
-   (#x832f ?ÜÚ)
-   (#x8331 ?â¼)
-   (#x8334 ?üí)
-   (#x8335 ?ìà)
-   (#x8336 ?Òþ)
-   (#x8338 ?éÇ)
-   (#x8339 ?æª)
-   (#x8340 ?âð)
-   (#x8347 ?ú»)
-   (#x8349 ?õ®)
-   (#x834a ?ûª)
-   (#x834f ?ìû)
-   (#x8351 ?ì¿)
-   (#x8352 ?üØ)
-   (#x8373 ?Ôå)
-   (#x8377 ?ùÃ)
-   (#x837b ?îâ)
-   (#x8389 ?×é)
-   (#x838a ?íö)
-   (#x838e ?Þí)
-   (#x8396 ?Ìì)
-   (#x8398 ?ãî)
-   (#x839e ?èÔ)
-   (#x83a2 ?úø)
-   (#x83a9 ?Ý´)
-   (#x83aa ?äµ)
-   (#x83ab ?Ø°)
-   (#x83bd ?ØÕ)
-   (#x83c1 ?ôê)
-   (#x83c5 ?ι)
-   (#x83c9 ?Öá)
-   (#x83ca ?ÃÃ’)
-   (#x83cc ?ж)
-   (#x83d3 ?΢)
-   (#x83d6 ?óî)
-   (#x83dc ?óø)
-   (#x83e9 ?ÜÌ)
-   (#x83eb ?ÃË)
-   (#x83ef ?ü¤)
-   (#x83f0 ?ÃÊ)
-   (#x83f1 ?×Ô)
-   (#x83f2 ?Þ£)
-   (#x83f4 ?äà)
-   (#x83f9 ?îÉ)
-   (#x83fd ?âÃ)
-   (#x8403 ?õþ)
-   (#x8404 ?Ô¬)
-   (#x840a ?ÕÑ)
-   (#x840c ?Øð)
-   (#x840d ?øÃ)
-   (#x840e ?ê×)
-   (#x8429 ?õ×)
-   (#x842c ?Ø¿)
-   (#x8431 ?ýÀ)
-   (#x8438 ?ë­)
-   (#x843d ?Õª)
-   (#x8449 ?ç¨)
-   (#x8457 ?îÊ)
-   (#x845b ?Êç)
-   (#x8461 ?øã)
-   (#x8463 ?ÔÃ)
-   (#x8466 ?êØ)
-   (#x846b ?ûÙ)
-   (#x846c ?í÷)
-   (#x846f ?åµ)
-   (#x8475 ?Э)
-   (#x847a ?ññ)
-   (#x8490 ?â½)
-   (#x8494 ?ãÈ)
-   (#x8499 ?ÙÕ)
-   (#x849c ?ߪ)
-   (#x84a1 ?Û¼)
-   (#x84b2 ?øä)
-   (#x84b8 ?ñú)
-   (#x84bb ?å¶)
-   (#x84bc ?óï)
-   (#x84bf ?ûÚ)
-   (#x84c0 ?áà)
-   (#x84c2 ?Ù¬)
-   (#x84c4 ?õë)
-   (#x84c6 ?à¶)
-   (#x84c9 ?éÈ)
-   (#x84cb ?ËÃ)
-   (#x84cd ?ãÉ)
-   (#x84d1 ?Þî)
-   (#x84da ?â¾)
-   (#x84ec ?Üï)
-   (#x84ee ?Ö¥)
-   (#x84f4 ?âñ)
-   (#x84fc ?Öþ)
-   (#x8511 ?Ù¡)
-   (#x8513 ?ØÀ)
-   (#x8514 ?ÜÛ)
-   (#x8517 ?í½)
-   (#x8518 ?߸)
-   (#x851a ?ê¥)
-   (#x851e ?×­)
-   (#x8521 ?óù)
-   (#x8523 ?íø)
-   (#x8525 ?õÇ)
-   (#x852c ?áÊ)
-   (#x852d ?ëã)
-   (#x852f ?òÞ)
-   (#x853d ?øÌ)
-   (#x853f ?êÙ)
-   (#x8541 ?ÓÆ)
-   (#x8543 ?Ûæ)
-   (#x8549 ?õ¯)
-   (#x854e ?Îð)
-   (#x8553 ?éþ)
-   (#x8559 ?û¶)
-   (#x8563 ?âò)
-   (#x8568 ?Ãò)
-   (#x8569 ?÷¹)
-   (#x856a ?Ùó)
-   (#x856d ?áË)
-   (#x8584 ?ÚÃ)
-   (#x8587 ?Ú¹)
-   (#x858f ?ëû)
-   (#x8591 ?˹)
-   (#x8594 ?íù)
-   (#x859b ?àà)
-   (#x85a6 ?ôÀ)
-   (#x85a8 ?ý¼)
-   (#x85a9 ?ß±)
-   (#x85aa ?ãï)
-   (#x85af ?à£)
-   (#x85b0 ?ý¹)
-   (#x85ba ?ð±)
-   (#x85c1 ?ÃË)
-   (#x85c9 ?í¾)
-   (#x85cd ?ÕÀ)
-   (#x85ce ?ãð)
-   (#x85cf ?íú)
-   (#x85d5 ?éä)
-   (#x85dc ?Õí)
-   (#x85dd ?çÃ)
-   (#x85e4 ?Ôö)
-   (#x85e5 ?å·)
-   (#x85e9 ?Ûç)
-   (#x85ea ?â¿)
-   (#x85f7 ?îË)
-   (#x85fa ?×ô)
-   (#x85fb ?ðÃ)
-   (#x85ff ?Ϋ)
-   (#x8602 ?çÞ)
-   (#x8606 ?ÖÖ)
-   (#x8607 ?áÌ)
-   (#x860a ?è³)
-   (#x8616 ?åî)
-   (#x8617 ?Ü¢)
-   (#x861a ?àÃ)
-   (#x862d ?Õµ)
-   (#x863f ?Õ¡)
-   (#x864e ?ûÛ)
-   (#x8650 ?ùË)
-   (#x8654 ?Ëó)
-   (#x8655 ?ô¥)
-   (#x865b ?úÈ)
-   (#x865c ?Ö×)
-   (#x865e ?éå)
-   (#x865f ?ûÜ)
-   (#x8667 ?ýÃ)
-   (#x8679 ?ûö)
-   (#x868a ?Ú¥)
-   (#x868c ?Û½)
-   (#x8693 ?ìâ)
-   (#x86a3 ?Ã÷)
-   (#x86a4 ?ðÞ)
-   (#x86a9 ?öÉ)
-   (#x86c7 ?Þï)
-   (#x86cb ?Ó±)
-   (#x86d4 ?üî)
-   (#x86d9 ?èÃ)
-   (#x86db ?ñÈ)
-   (#x86df ?Îñ)
-   (#x86e4 ?ùí)
-   (#x86ed ?òô)
-   (#x86fe ?ä¶)
-   (#x8700 ?õ¹)
-   (#x8702 ?Üð)
-   (#x8703 ?ãñ)
-   (#x8708 ?è¥)
-   (#x8718 ?ò»)
-   (#x871a ?Þ¤)
-   (#x871c ?ÚÌ)
-   (#x874e ?Êé)
-   (#x8755 ?ãÚ)
-   (#x8757 ?üÙ)
-   (#x875f ?êÚ)
-   (#x8766 ?ùÄ)
-   (#x8768 ?ã¤)
-   (#x8774 ?ûÃ)
-   (#x8776 ?ïÊ)
-   (#x8778 ?èÄ)
-   (#x8782 ?ÕÌ)
-   (#x878d ?ë×)
-   (#x879f ?Ù­)
-   (#x87a2 ?û«)
-   (#x87b3 ?ÓÙ)
-   (#x87ba ?Õ¢)
-   (#x87c4 ?öÞ)
-   (#x87e0 ?Úö)
-   (#x87ec ?àÑ)
-   (#x87ef ?é¨)
-   (#x87f2 ?õù)
-   (#x87f9 ?ú¯)
-   (#x87fb ?ëü)
-   (#x87fe ?àê)
-   (#x8805 ?ã²)
-   (#x881f ?ÕÅ)
-   (#x8822 ?ñã)
-   (#x8823 ?Õî)
-   (#x8831 ?ÃÃŒ)
-   (#x8836 ?íÙ)
-   (#x883b ?ØÃ)
-   (#x8840 ?úì)
-   (#x8846 ?ñë)
-   (#x884c ?ú¼)
-   (#x884d ?æâ)
-   (#x8852 ?úå)
-   (#x8853 ?âú)
-   (#x8857 ?ʶ)
-   (#x8859 ?ä·)
-   (#x885b ?êÛ)
-   (#x885d ?õú)
-   (#x8861 ?û¬)
-   (#x8862 ?ÃÃ)
-   (#x8863 ?ëý)
-   (#x8868 ?øú)
-   (#x886b ?ß¹)
-   (#x8870 ?áñ)
-   (#x8872 ?Ò¤)
-   (#x8877 ?õû)
-   (#x887e ?ÃÚ)
-   (#x887f ?ÃÛ)
-   (#x8881 ?ê¾)
-   (#x8882 ?Ù±)
-   (#x8888 ?Ê·)
-   (#x888b ?Óç)
-   (#x888d ?øå)
-   (#x8892 ?Ó²)
-   (#x8896 ?âÀ)
-   (#x8897 ?òß)
-   (#x889e ?ÃÃ¥)
-   (#x88ab ?ù¬)
-   (#x88b4 ?ÃÃ)
-   (#x88c1 ?î®)
-   (#x88c2 ?Ö®)
-   (#x88cf ?×ê)
-   (#x88d4 ?çà)
-   (#x88d5 ?ë®)
-   (#x88d9 ?ÃÙ)
-   (#x88dc ?ÃœÃ)
-   (#x88dd ?íû)
-   (#x88df ?Þð)
-   (#x88e1 ?×ë)
-   (#x88e8 ?Þ¥)
-   (#x88f3 ?ß×)
-   (#x88f4 ?ÛÃ)
-   (#x88f5 ?ÛÑ)
-   (#x88f8 ?Õ£)
-   (#x88fd ?ð²)
-   (#x8907 ?ÜÜ)
-   (#x8910 ?Êè)
-   (#x8912 ?øæ)
-   (#x8913 ?ÜÎ)
-   (#x8918 ?êÜ)
-   (#x8919 ?ÛÒ)
-   (#x8925 ?é³)
-   (#x892a ?÷Û)
-   (#x8936 ?ã¨)
-   (#x8938 ?×®)
-   (#x893b ?àá)
-   (#x8941 ?˺)
-   (#x8944 ?åÑ)
-   (#x895f ?ÃÃœ)
-   (#x8964 ?ÕÃ)
-   (#x896a ?ØÊ)
-   (#x8972 ?ã©)
-   (#x897f ?à¤)
-   (#x8981 ?é©)
-   (#x8983 ?ÓÇ)
-   (#x8986 ?ÃœÃ)
-   (#x8987 ?ø®)
-   (#x898b ?̸)
-   (#x898f ?Ю)
-   (#x8993 ?Øò)
-   (#x8996 ?ãÊ)
-   (#x89a1 ?̯)
-   (#x89a9 ?Ô­)
-   (#x89aa ?öÑ)
-   (#x89b2 ?ÃÃŒ)
-   (#x89ba ?ÊÆ)
-   (#x89bd ?ÕÂ)
-   (#x89c0 ?κ)
-   (#x89d2 ?ÊÇ)
-   (#x89e3 ?ú°)
-   (#x89f4 ?ßØ)
-   (#x89f8 ?õº)
-   (#x8a00 ?åë)
-   (#x8a02 ?ïô)
-   (#x8a03 ?ݵ)
-   (#x8a08 ?ͪ)
-   (#x8a0a ?ãò)
-   (#x8a0c ?û÷)
-   (#x8a0e ?÷Ã)
-   (#x8a13 ?ýº)
-   (#x8a16 ?ýá)
-   (#x8a17 ?öþ)
-   (#x8a18 ?ÑÀ)
-   (#x8a1b ?èÅ)
-   (#x8a1d ?ä¸)
-   (#x8a1f ?áè)
-   (#x8a23 ?ÃŒÃ)
-   (#x8a25 ?Òí)
-   (#x8a2a ?Û¾)
-   (#x8a2d ?àâ)
-   (#x8a31 ?úÉ)
-   (#x8a34 ?áÃ)
-   (#x8a36 ?ʸ)
-   (#x8a3a ?òà)
-   (#x8a3b ?ñÉ)
-   (#x8a50 ?Þñ)
-   (#x8a54 ?ðß)
-   (#x8a55 ?øÄ)
-   (#x8a5b ?îÌ)
-   (#x8a5e ?Þò)
-   (#x8a60 ?çÉ)
-   (#x8a62 ?âó)
-   (#x8a63 ?çá)
-   (#x8a66 ?ãË)
-   (#x8a69 ?ãÌ)
-   (#x8a6d ?Ãø)
-   (#x8a6e ?ï¬)
-   (#x8a70 ?ýþ)
-   (#x8a71 ?ü¥)
-   (#x8a72 ?ú±)
-   (#x8a73 ?ßÙ)
-   (#x8a75 ?àÒ)
-   (#x8a79 ?ôÚ)
-   (#x8a85 ?ñÊ)
-   (#x8a87 ?Σ)
-   (#x8a8c ?ò¼)
-   (#x8a8d ?ìã)
-   (#x8a93 ?à¥)
-   (#x8a95 ?÷«)
-   (#x8a98 ?ë¯)
-   (#x8a9e ?åÞ)
-   (#x8aa0 ?á¤)
-   (#x8aa1 ?Í«)
-   (#x8aa3 ?Ùô)
-   (#x8aa4 ?è¦)
-   (#x8aa5 ?ÃÃŽ)
-   (#x8aa6 ?áé)
-   (#x8aa8 ?üï)
-   (#x8aaa ?àã)
-   (#x8ab0 ?âÃ)
-   (#x8ab2 ?Τ)
-   (#x8ab9 ?Þ¦)
-   (#x8abc ?ëþ)
-   (#x8abe ?ëÃ)
-   (#x8abf ?ðà)
-   (#x8ac2 ?ôÛ)
-   (#x8ac4 ?âô)
-   (#x8ac7 ?ÓÈ)
-   (#x8acb ?ôë)
-   (#x8acd ?îµ)
-   (#x8acf ?õØ)
-   (#x8ad2 ?Õß)
-   (#x8ad6 ?Öå)
-   (#x8adb ?ë°)
-   (#x8adc ?ôã)
-   (#x8ae1 ?ãÃ)
-   (#x8ae6 ?ôô)
-   (#x8ae7 ?ú²)
-   (#x8aea ?ïõ)
-   (#x8aeb ?Êß)
-   (#x8aed ?ë±)
-   (#x8aee ?í¿)
-   (#x8af1 ?ýÉ)
-   (#x8af6 ?ä¦)
-   (#x8af7 ?ù¤)
-   (#x8af8 ?ð³)
-   (#x8afa ?åì)
-   (#x8afe ?Ñç)
-   (#x8b00 ?ÙÇ)
-   (#x8b01 ?ä×)
-   (#x8b02 ?êÃ)
-   (#x8b04 ?Ô÷)
-   (#x8b0e ?Úº)
-   (#x8b10 ?ÚÃ)
-   (#x8b14 ?ùÌ)
-   (#x8b16 ?áÚ)
-   (#x8b17 ?Û¿)
-   (#x8b19 ?ÌÅ)
-   (#x8b1a ?ìÃ)
-   (#x8b1b ?Ë»)
-   (#x8b1d ?Þó)
-   (#x8b20 ?éª)
-   (#x8b28 ?ÙÈ)
-   (#x8b2b ?îã)
-   (#x8b2c ?×½)
-   (#x8b33 ?ÃÄ)
-   (#x8b39 ?ÃÃ)
-   (#x8b41 ?ü¦)
-   (#x8b49 ?ñû)
-   (#x8b4e ?ýÒ)
-   (#x8b4f ?ÑÃ)
-   (#x8b58 ?ãÛ)
-   (#x8b5a ?ÓÉ)
-   (#x8b5c ?ÃœÃ)
-   (#x8b66 ?Ìí)
-   (#x8b6c ?Þ§)
-   (#x8b6f ?æ»)
-   (#x8b70 ?ì¡)
-   (#x8b74 ?̹)
-   (#x8b77 ?ûÞ)
-   (#x8b7d ?çâ)
-   (#x8b80 ?ÔÃ)
-   (#x8b8a ?ܨ)
-   (#x8b90 ?âÂ)
-   (#x8b92 ?óØ)
-   (#x8b93 ?åÓ)
-   (#x8b96 ?óÙ)
-   (#x8b9a ?óÆ)
-   (#x8c37 ?ÃÛ)
-   (#x8c3f ?ͬ)
-   (#x8c41 ?üÃ)
-   (#x8c46 ?Ôç)
-   (#x8c48 ?ÑÂ)
-   (#x8c4a ?ù¥)
-   (#x8c4c ?èÕ)
-   (#x8c55 ?ãÎ)
-   (#x8c5a ?ÔÊ)
-   (#x8c61 ?ßÚ)
-   (#x8c6a ?ûß)
-   (#x8c6b ?çã)
-   (#x8c79 ?øû)
-   (#x8c7a ?ãÃ)
-   (#x8c82 ?õ°)
-   (#x8c8a ?Øç)
-   (#x8c8c ?ÙÉ)
-   (#x8c9d ?ø¯)
-   (#x8c9e ?ïö)
-   (#x8ca0 ?ݶ)
-   (#x8ca1 ?î¯)
-   (#x8ca2 ?Ãø)
-   (#x8ca7 ?Þ¸)
-   (#x8ca8 ?ü§)
-   (#x8ca9 ?֟)
-   (#x8caa ?÷±)
-   (#x8cab ?λ)
-   (#x8cac ?ô¡)
-   (#x8caf ?îÃ)
-   (#x8cb0 ?á®)
-   (#x8cb3 ?ìÃ)
-   (#x8cb4 ?Ãþ)
-   (#x8cb6 ?ø¿)
-   (#x8cb7 ?Øâ)
-   (#x8cb8 ?Óè)
-   (#x8cbb ?Þ¨)
-   (#x8cbc ?ôä)
-   (#x8cbd ?ìÂ)
-   (#x8cbf ?Ùõ)
-   (#x8cc0 ?ùÅ)
-   (#x8cc1 ?ÃÓ)
-   (#x8cc2 ?Öñ)
-   (#x8cc3 ?ìü)
-   (#x8cc4 ?üð)
-   (#x8cc7 ?íÀ)
-   (#x8cc8 ?ʹ)
-   (#x8cca ?îä)
-   (#x8cd1 ?òá)
-   (#x8cd3 ?Þ¹)
-   (#x8cda ?Öò)
-   (#x8cdc ?Þô)
-   (#x8cde ?ßÛ)
-   (#x8ce0 ?ÛÓ)
-   (#x8ce2 ?úç)
-   (#x8ce3 ?Øã)
-   (#x8ce4 ?ôÃ)
-   (#x8ce6 ?Ý·)
-   (#x8cea ?òõ)
-   (#x8ced ?Ô®)
-   (#x8cf4 ?Öó)
-   (#x8cfb ?ݸ)
-   (#x8cfc ?ÃÃ…)
-   (#x8cfd ?ßß)
-   (#x8d04 ?ò¾)
-   (#x8d05 ?ö¡)
-   (#x8d07 ?ëË)
-   (#x8d08 ?ñü)
-   (#x8d0a ?óÇ)
-   (#x8d0d ?àë)
-   (#x8d13 ?íü)
-   (#x8d16 ?áÛ)
-   (#x8d64 ?îå)
-   (#x8d66 ?Þõ)
-   (#x8d6b ?úÓ)
-   (#x8d70 ?ñË)
-   (#x8d73 ?Я)
-   (#x8d74 ?ݹ)
-   (#x8d77 ?ÑÃ)
-   (#x8d85 ?õ±)
-   (#x8d8a ?êÆ)
-   (#x8d99 ?ðá)
-   (#x8da3 ?ö¬)
-   (#x8da8 ?õÙ)
-   (#x8db3 ?ðë)
-   (#x8dba ?ݺ)
-   (#x8dbe ?ò¿)
-   (#x8dc6 ?ց)
-   (#x8dcb ?Û¢)
-   (#x8dcc ?òö)
-   (#x8dcf ?ʺ)
-   (#x8ddb ?÷õ)
-   (#x8ddd ?Ëå)
-   (#x8de1 ?îæ)
-   (#x8de3 ?àÓ)
-   (#x8de8 ?Î¥)
-   (#x8def ?ÖØ)
-   (#x8df3 ?Ô¯)
-   (#x8e0a ?éÉ)
-   (#x8e0f ?ÓÎ)
-   (#x8e10 ?ôÂ)
-   (#x8e1e ?Ëæ)
-   (#x8e2a ?ñ¡)
-   (#x8e30 ?ë²)
-   (#x8e35 ?ñ¢)
-   (#x8e42 ?ë³)
-   (#x8e44 ?ð´)
-   (#x8e47 ?Ëô)
-   (#x8e48 ?Ô°)
-   (#x8e49 ?ó²)
-   (#x8e4a ?û·)
-   (#x8e59 ?õì)
-   (#x8e5f ?îç)
-   (#x8e60 ?ô²)
-   (#x8e74 ?õí)
-   (#x8e76 ?Ãó)
-   (#x8e81 ?ðâ)
-   (#x8e87 ?îÎ)
-   (#x8e8a ?ñÌ)
-   (#x8e8d ?å¸)
-   (#x8eaa ?×õ)
-   (#x8eab ?ãó)
-   (#x8eac ?ÃÃ¥)
-   (#x8ec0 ?ÃÆ)
-   (#x8eca ?ó³)
-   (#x8ecb ?äØ)
-   (#x8ecc ?Ãù)
-   (#x8ecd ?ÃÚ)
-   (#x8ed2 ?úÃ)
-   (#x8edf ?æã)
-   (#x8eeb ?òâ)
-   (#x8ef8 ?õî)
-   (#x8efb ?Ê»)
-   (#x8efe ?ãÜ)
-   (#x8f03 ?Îò)
-   (#x8f05 ?ÖÙ)
-   (#x8f09 ?î°)
-   (#x8f12 ?ôå)
-   (#x8f13 ?ØÂ)
-   (#x8f14 ?ÃœÃ)
-   (#x8f15 ?Ìî)
-   (#x8f1b ?Õà)
-   (#x8f1c ?öÊ)
-   (#x8f1d ?ýÊ)
-   (#x8f1e ?ØÖ)
-   (#x8f1f ?ôÃ)
-   (#x8f26 ?Ö¦)
-   (#x8f27 ?ܾ)
-   (#x8f29 ?ÛÔ)
-   (#x8f2a ?×Ç)
-   (#x8f2f ?òþ)
-   (#x8f33 ?ñÃ)
-   (#x8f38 ?âÃ)
-   (#x8f39 ?ÜÞ)
-   (#x8f3b ?Üß)
-   (#x8f3e ?ï­)
-   (#x8f3f ?æ«)
-   (#x8f44 ?ùÃ)
-   (#x8f45 ?ê¿)
-   (#x8f49 ?ï®)
-   (#x8f4d ?ôÃ)
-   (#x8f4e ?Îó)
-   (#x8f5d ?æ¬)
-   (#x8f5f ?ÎÞ)
-   (#x8f62 ?Õù)
-   (#x8f9b ?ãô)
-   (#x8f9c ?ÃÃ)
-   (#x8fa3 ?Õ¸)
-   (#x8fa6 ?÷ý)
-   (#x8fa8 ?Ü©)
-   (#x8fad ?Þö)
-   (#x8faf ?ܪ)
-   (#x8fb0 ?òã)
-   (#x8fb1 ?é´)
-   (#x8fb2 ?Ã’Ãœ)
-   (#x8fc2 ?éæ)
-   (#x8fc5 ?ãö)
-   (#x8fce ?çÊ)
-   (#x8fd1 ?ÃÃŽ)
-   (#x8fd4 ?Ú÷)
-   (#x8fe6 ?ʼ)
-   (#x8fea ?îè)
-   (#x8feb ?ÚÞ)
-   (#x8fed ?ò÷)
-   (#x8ff0 ?âû)
-   (#x8ff2 ?̦)
-   (#x8ff7 ?Ú»)
-   (#x8ff9 ?îé)
-   (#x8ffd ?õÚ)
-   (#x9000 ?ֆ)
-   (#x9001 ?áê)
-   (#x9002 ?ÃŽÃ)
-   (#x9003 ?Ô±)
-   (#x9005 ?ý±)
-   (#x9006 ?æ½)
-   (#x9008 ?û­)
-   (#x900b ?øç)
-   (#x900d ?áÎ)
-   (#x900f ?։)
-   (#x9010 ?õï)
-   (#x9011 ?ÃÇ)
-   (#x9014 ?Ô²)
-   (#x9015 ?Ìï)
-   (#x9017 ?Ôè)
-   (#x9019 ?îÃ)
-   (#x901a ?÷×)
-   (#x901d ?à¦)
-   (#x901e ?ÖÃ)
-   (#x901f ?áÜ)
-   (#x9020 ?ðã)
-   (#x9021 ?ñä)
-   (#x9022 ?Üñ)
-   (#x9023 ?Ö§)
-   (#x902e ?ôõ)
-   (#x9031 ?ñÎ)
-   (#x9032 ?òä)
-   (#x9035 ?а)
-   (#x9038 ?ìï)
-   (#x903c ?ùº)
-   (#x903e ?ëµ)
-   (#x9041 ?Ôí)
-   (#x9042 ?âÄ)
-   (#x9047 ?éç)
-   (#x904a ?ë´)
-   (#x904b ?ê¡)
-   (#x904d ?ø¼)
-   (#x904e ?Φ)
-   (#x9050 ?ùÆ)
-   (#x9051 ?üÚ)
-   (#x9053 ?Ô³)
-   (#x9054 ?Ó¹)
-   (#x9055 ?êÞ)
-   (#x9059 ?é«)
-   (#x905c ?áá)
-   (#x905d ?ÓÃ)
-   (#x905e ?ôö)
-   (#x9060 ?êÀ)
-   (#x9061 ?áÃ)
-   (#x9063 ?̺)
-   (#x9069 ?îê)
-   (#x906d ?ðä)
-   (#x906e ?ó´)
-   (#x906f ?Ôî)
-   (#x9072 ?òÀ)
-   (#x9075 ?ñå)
-   (#x9077 ?ôÃ)
-   (#x9078 ?àÔ)
-   (#x907a ?ë¶)
-   (#x907c ?ס)
-   (#x907d ?Ëè)
-   (#x907f ?ù­)
-   (#x9080 ?é­)
-   (#x9081 ?Øä)
-   (#x9082 ?ú³)
-   (#x9083 ?âÅ)
-   (#x9084 ?ü½)
-   (#x9087 ?ìÄ)
-   (#x9088 ?ر)
-   (#x908a ?Ü«)
-   (#x908f ?Õ¤)
-   (#x9091 ?ëé)
-   (#x9095 ?è»)
-   (#x9099 ?Ø×)
-   (#x90a2 ?û®)
-   (#x90a3 ?Ñá)
-   (#x90a6 ?ÛÀ)
-   (#x90a8 ?õ¾)
-   (#x90aa ?Þ÷)
-   (#x90af ?Êû)
-   (#x90b0 ?֮)
-   (#x90b1 ?ÃÈ)
-   (#x90b5 ?áÃ)
-   (#x90b8 ?îÃ)
-   (#x90c1 ?éô)
-   (#x90ca ?Îô)
-   (#x90de ?ÕÃ)
-   (#x90e1 ?ÃÛ)
-   (#x90e8 ?Ý»)
-   (#x90ed ?ά)
-   (#x90f5 ?éè)
-   (#x90fd ?Ô´)
-   (#x9102 ?äÇ)
-   (#x9112 ?õÛ)
-   (#x9115 ?úÃ)
-   (#x9119 ?Þ©)
-   (#x9127 ?Ôø)
-   (#x912d ?ï÷)
-   (#x9132 ?Ó³)
-   (#x9149 ?ë·)
-   (#x914a ?ïø)
-   (#x914b ?õÜ)
-   (#x914c ?íÌ)
-   (#x914d ?ÛÕ)
-   (#x914e ?ñÃ)
-   (#x9152 ?ñÃ)
-   (#x9162 ?õ²)
-   (#x9169 ?Ù®)
-   (#x916a ?Õ¬)
-   (#x916c ?âÆ)
-   (#x9175 ?ý£)
-   (#x9177 ?ûå)
-   (#x9178 ?ß«)
-   (#x9187 ?âõ)
-   (#x9189 ?ö­)
-   (#x918b ?õ³)
-   (#x918d ?ðµ)
-   (#x9192 ?á¥)
-   (#x919c ?õÃ)
-   (#x91ab ?ì¢)
-   (#x91ac ?íý)
-   (#x91ae ?õ´)
-   (#x91af ?û¸)
-   (#x91b1 ?Û£)
-   (#x91b4 ?ÖÊ)
-   (#x91b5 ?ËÙ)
-   (#x91c0 ?åÔ)
-   (#x91c7 ?óú)
-   (#x91c9 ?ë¸)
-   (#x91cb ?à·)
-   (#x91cc ?×ì)
-   (#x91cd ?ñì)
-   (#x91ce ?å¯)
-   (#x91cf ?Õá)
-   (#x91d0 ?×í)
-   (#x91d1 ?ÑÑ)
-   (#x91d7 ?áò)
-   (#x91d8 ?ïù)
-   (#x91dc ?ݼ)
-   (#x91dd ?öÜ)
-   (#x91e3 ?ðå)
-   (#x91e7 ?ôÄ)
-   (#x91ea ?éé)
-   (#x91f5 ?óû)
-   (#x920d ?Ôï)
-   (#x9210 ?Ì¢)
-   (#x9211 ?÷þ)
-   (#x9212 ?ß¼)
-   (#x9217 ?ëÃ)
-   (#x921e ?з)
-   (#x9234 ?ÖÂ)
-   (#x923a ?è­)
-   (#x923f ?ï¯)
-   (#x9240 ?Ë¥)
-   (#x9245 ?Ëé)
-   (#x9249 ?úè)
-   (#x9257 ?ÌÆ)
-   (#x925b ?æç)
-   (#x925e ?êÇ)
-   (#x9262 ?Û¤)
-   (#x9264 ?ÃÉ)
-   (#x9265 ?âü)
-   (#x9266 ?ïú)
-   (#x9280 ?ëÞ)
-   (#x9283 ?õÈ)
-   (#x9285 ?ÔÞ)
-   (#x9291 ?àÕ)
-   (#x9293 ?ï°)
-   (#x9296 ?âÇ)
-   (#x9298 ?Ù¯)
-   (#x929c ?ùç)
-   (#x92b3 ?çå)
-   (#x92b6 ?ÃÊ)
-   (#x92b7 ?áÑ)
-   (#x92b9 ?âÈ)
-   (#x92cc ?ïû)
-   (#x92cf ?úù)
-   (#x92d2 ?Üò)
-   (#x92e4 ?à§)
-   (#x92ea ?øè)
-   (#x92f8 ?Ëê)
-   (#x92fc ?˼)
-   (#x9304 ?Öâ)
-   (#x9310 ?õÞ)
-   (#x9318 ?õß)
-   (#x931a ?î¶)
-   (#x931e ?âö)
-   (#x931f ?ÓÊ)
-   (#x9320 ?ïü)
-   (#x9321 ?ÑÄ)
-   (#x9322 ?ï±)
-   (#x9324 ?ÑÅ)
-   (#x9326 ?ÃÞ)
-   (#x9328 ?Ùá)
-   (#x932b ?à¸)
-   (#x932e ?ÃÑ)
-   (#x932f ?ó¹)
-   (#x9348 ?çÌ)
-   (#x934a ?Ö¨)
-   (#x934b ?Χ)
-   (#x934d ?Ôµ)
-   (#x9354 ?äÈ)
-   (#x935b ?Ó´)
-   (#x936e ?ë¹)
-   (#x9375 ?Ëõ)
-   (#x937c ?öÃ)
-   (#x937e ?ñ£)
-   (#x938c ?ÌÇ)
-   (#x9394 ?éÊ)
-   (#x9396 ?áð)
-   (#x939a ?õà)
-   (#x93a3 ?û¯)
-   (#x93a7 ?ËÑ)
-   (#x93ac ?ûà)
-   (#x93ad ?òå)
-   (#x93b0 ?ìð)
-   (#x93c3 ?ðì)
-   (#x93d1 ?îë)
-   (#x93de ?éË)
-   (#x93e1 ?Ìð)
-   (#x93e4 ?ׯ)
-   (#x93f6 ?ó¡)
-   (#x9404 ?üõ)
-   (#x9418 ?ñ¤)
-   (#x9425 ?àÖ)
-   (#x942b ?ï²)
-   (#x9435 ?ôÑ)
-   (#x9438 ?÷¡)
-   (#x9444 ?ñÑ)
-   (#x9451 ?Êü)
-   (#x9452 ?Êý)
-   (#x945b ?ÃŽÃŽ)
-   (#x947d ?óÈ)
-   (#x947f ?óº)
-   (#x9577 ?íþ)
-   (#x9580 ?Ú¦)
-   (#x9583 ?àì)
-   (#x9589 ?øÃ)
-   (#x958b ?ËÒ)
-   (#x958f ?ëÎ)
-   (#x9591 ?ùØ)
-   (#x9592 ?ùÙ)
-   (#x9593 ?Êà)
-   (#x9594 ?ÚÊ)
-   (#x9598 ?˦)
-   (#x95a3 ?ÊÈ)
-   (#x95a4 ?ùî)
-   (#x95a5 ?Ûì)
-   (#x95a8 ?б)
-   (#x95ad ?Õï)
-   (#x95b1 ?æó)
-   (#x95bb ?ç¢)
-   (#x95bc ?äÙ)
-   (#x95c7 ?äá)
-   (#x95ca ?üÄ)
-   (#x95d4 ?ùï)
-   (#x95d5 ?Ãô)
-   (#x95d6 ?־)
-   (#x95dc ?μ)
-   (#x95e1 ?ôÅ)
-   (#x95e2 ?Ü£)
-   (#x961c ?ݽ)
-   (#x9621 ?ôÆ)
-   (#x962a ?ø¡)
-   (#x962e ?èÖ)
-   (#x9632 ?ÛÃ)
-   (#x963b ?ðæ)
-   (#x963f ?ä¹)
-   (#x9640 ?öí)
-   (#x9642 ?ù®)
-   (#x9644 ?ݾ)
-   (#x964b ?×°)
-   (#x964c ?Øè)
-   (#x964d ?˽)
-   (#x9650 ?ùÚ)
-   (#x965b ?øÎ)
-   (#x965c ?ùð)
-   (#x965d ?àí)
-   (#x965e ?ã³)
-   (#x965f ?ô³)
-   (#x9662 ?êÂ)
-   (#x9663 ?òæ)
-   (#x9664 ?ð¶)
-   (#x966a ?ÛÖ)
-   (#x9670 ?ëä)
-   (#x9673 ?òç)
-   (#x9675 ?×Õ)
-   (#x9676 ?Ô¶)
-   (#x9677 ?ùè)
-   (#x9678 ?×Ã)
-   (#x967d ?åÕ)
-   (#x9685 ?éê)
-   (#x9686 ?×Ì)
-   (#x968a ?Óé)
-   (#x968b ?âÉ)
-   (#x968d ?üÛ)
-   (#x968e ?Í­)
-   (#x9694 ?Ì°)
-   (#x9695 ?ê¢)
-   (#x9698 ?äö)
-   (#x9699 ?ÃÀ)
-   (#x969b ?ð·)
-   (#x969c ?î¡)
-   (#x96a3 ?×ö)
-   (#x96a7 ?âÊ)
-   (#x96a8 ?âË)
-   (#x96aa ?úÃ)
-   (#x96b1 ?ëß)
-   (#x96b7 ?ÖË)
-   (#x96bb ?ô´)
-   (#x96c0 ?íÃ)
-   (#x96c1 ?äÒ)
-   (#x96c4 ?ê©)
-   (#x96c5 ?äº)
-   (#x96c6 ?ó¢)
-   (#x96c7 ?ÃÃ’)
-   (#x96c9 ?öË)
-   (#x96cb ?ñæ)
-   (#x96cc ?íÃ)
-   (#x96cd ?è¼)
-   (#x96ce ?îÑ)
-   (#x96d5 ?ðç)
-   (#x96d6 ?âÌ)
-   (#x96d9 ?äª)
-   (#x96db ?õá)
-   (#x96dc ?íÚ)
-   (#x96e2 ?×î)
-   (#x96e3 ?Ññ)
-   (#x96e8 ?éë)
-   (#x96e9 ?éì)
-   (#x96ea ?àä)
-   (#x96ef ?Ú§)
-   (#x96f0 ?ÃÔ)
-   (#x96f2 ?ê£)
-   (#x96f6 ?ÖÃ)
-   (#x96f7 ?Öô)
-   (#x96f9 ?Úß)
-   (#x96fb ?ï³)
-   (#x9700 ?âÃ)
-   (#x9706 ?ïý)
-   (#x9707 ?òè)
-   (#x9711 ?ïÅ)
-   (#x9713 ?çç)
-   (#x9716 ?×ý)
-   (#x9719 ?çÎ)
-   (#x971c ?ßÜ)
-   (#x971e ?ùÇ)
-   (#x9727 ?Ùö)
-   (#x9730 ?߬)
-   (#x9732 ?ÖÚ)
-   (#x9739 ?ܤ)
-   (#x973d ?ð¸)
-   (#x9742 ?Õú)
-   (#x9744 ?ä÷)
-   (#x9748 ?ÖÄ)
-   (#x9751 ?ôì)
-   (#x9756 ?ïþ)
-   (#x975c ?ð¡)
-   (#x975e ?Þª)
-   (#x9761 ?Ú¼)
-   (#x9762 ?Øü)
-   (#x9769 ?úÔ)
-   (#x976d ?ìå)
-   (#x9774 ?ü¨)
-   (#x9777 ?ìæ)
-   (#x977a ?ØË)
-   (#x978b ?û¹)
-   (#x978d ?äÓ)
-   (#x978f ?Ãù)
-   (#x97a0 ?ÃÓ)
-   (#x97a8 ?Êê)
-   (#x97ab ?ÃÔ)
-   (#x97ad ?ø½)
-   (#x97c6 ?ôÇ)
-   (#x97cb ?êß)
-   (#x97d3 ?ùÛ)
-   (#x97dc ?Ô·)
-   (#x97f3 ?ëå)
-   (#x97f6 ?áÒ)
-   (#x97fb ?ê¤)
-   (#x97ff ?úÂ)
-   (#x9800 ?ûá)
-   (#x9801 ?úí)
-   (#x9802 ?ð¢)
-   (#x9803 ?Ìñ)
-   (#x9805 ?ú£)
-   (#x9806 ?â÷)
-   (#x9808 ?âÎ)
-   (#x980a ?éõ)
-   (#x980c ?áë)
-   (#x9810 ?çè)
-   (#x9811 ?è×)
-   (#x9812 ?Úø)
-   (#x9813 ?ÔË)
-   (#x9817 ?÷ö)
-   (#x9818 ?ÖÅ)
-   (#x982d ?Ôé)
-   (#x9830 ?úú)
-   (#x9838 ?Ìò)
-   (#x9839 ?÷Ã)
-   (#x983b ?Þº)
-   (#x9846 ?Ψ)
-   (#x984c ?ð¹)
-   (#x984d ?äþ)
-   (#x984e ?äÉ)
-   (#x9854 ?äÔ)
-   (#x9858 ?êÃ)
-   (#x985a ?ï´)
-   (#x985e ?×¾)
-   (#x9865 ?ûâ)
-   (#x9867 ?ÃÓ)
-   (#x986b ?ïµ)
-   (#x986f ?úé)
-   (#x98a8 ?ù¦)
-   (#x98af ?ß½)
-   (#x98b1 ?ւ)
-   (#x98c4 ?øý)
-   (#x98c7 ?øü)
-   (#x98db ?Þ«)
-   (#x98dc ?Ûè)
-   (#x98df ?ãÃ)
-   (#x98e1 ?áâ)
-   (#x98e2 ?ÑÆ)
-   (#x98ed ?öÃ)
-   (#x98ee ?ëæ)
-   (#x98ef ?Úù)
-   (#x98f4 ?ìÇ)
-   (#x98fc ?Þø)
-   (#x98fd ?øé)
-   (#x98fe ?ãÞ)
-   (#x9903 ?Îõ)
-   (#x9909 ?úÃ)
-   (#x990a ?å×)
-   (#x990c ?ìÈ)
-   (#x9910 ?óÉ)
-   (#x9913 ?ä»)
-   (#x9918 ?æ®)
-   (#x991e ?ï¶)
-   (#x9920 ?Ü¿)
-   (#x9928 ?ν)
-   (#x9945 ?ØÃ)
-   (#x9949 ?ÃÃ)
-   (#x994b ?Ãú)
-   (#x994c ?óÊ)
-   (#x994d ?à×)
-   (#x9951 ?ÑÇ)
-   (#x9952 ?é®)
-   (#x9954 ?è½)
-   (#x9957 ?úÄ)
-   (#x9996 ?âÃ)
-   (#x9999 ?úÅ)
-   (#x999d ?ù¸)
-   (#x99a5 ?Üà)
-   (#x99a8 ?û°)
-   (#x99ac ?Ø©)
-   (#x99ad ?åß)
-   (#x99ae ?ù§)
-   (#x99b1 ?öî)
-   (#x99b3 ?öÌ)
-   (#x99b4 ?âø)
-   (#x99b9 ?ìñ)
-   (#x99c1 ?Úà)
-   (#x99d0 ?ñÒ)
-   (#x99d1 ?Ã’ÃŒ)
-   (#x99d2 ?ÃË)
-   (#x99d5 ?ʽ)
-   (#x99d9 ?Ý¿)
-   (#x99dd ?öï)
-   (#x99df ?Þù)
-   (#x99ed ?ú´)
-   (#x99f1 ?Õ­)
-   (#x99ff ?ñç)
-   (#x9a01 ?Þ¾)
-   (#x9a08 ?ÜÀ)
-   (#x9a0e ?ÑÈ)
-   (#x9a0f ?ÑÉ)
-   (#x9a19 ?ø¾)
-   (#x9a2b ?Ëö)
-   (#x9a30 ?Ôù)
-   (#x9a36 ?õâ)
-   (#x9a37 ?áÓ)
-   (#x9a40 ?Øé)
-   (#x9a43 ?øþ)
-   (#x9a45 ?ÃÃŒ)
-   (#x9a4d ?ý¤)
-   (#x9a55 ?Îö)
-   (#x9a57 ?úÃ)
-   (#x9a5a ?Ìó)
-   (#x9a5b ?æ¾)
-   (#x9a5f ?ö®)
-   (#x9a62 ?Õð)
-   (#x9a65 ?ÑÊ)
-   (#x9a69 ?ü¾)
-   (#x9a6a ?Õñ)
-   (#x9aa8 ?Ãé)
-   (#x9ab8 ?úµ)
-   (#x9ad3 ?âÃ)
-   (#x9ad4 ?ô÷)
-   (#x9ad8 ?ÃÔ)
-   (#x9ae5 ?ç£)
-   (#x9aee ?Û¥)
-   (#x9b1a ?âÑ)
-   (#x9b27 ?×¢)
-   (#x9b2a ?֋)
-   (#x9b31 ?ê¦)
-   (#x9b3c ?С)
-   (#x9b41 ?ÎÚ)
-   (#x9b42 ?ûë)
-   (#x9b43 ?Û¦)
-   (#x9b44 ?ÛÞ)
-   (#x9b45 ?Øå)
-   (#x9b4f ?êà)
-   (#x9b54 ?ت)
-   (#x9b5a ?åà)
-   (#x9b6f ?ÖÛ)
-   (#x9b8e ?ïÆ)
-   (#x9b91 ?øê)
-   (#x9b9f ?äÕ)
-   (#x9bab ?Î÷)
-   (#x9bae ?àØ)
-   (#x9bc9 ?×ï)
-   (#x9bd6 ?ôí)
-   (#x9be4 ?Ãæ)
-   (#x9be8 ?Ìô)
-   (#x9c0d ?õã)
-   (#x9c10 ?äÊ)
-   (#x9c12 ?Üá)
-   (#x9c15 ?ùÈ)
-   (#x9c25 ?ü¿)
-   (#x9c32 ?è§)
-   (#x9c3b ?ØÄ)
-   (#x9c47 ?˾)
-   (#x9c49 ?Ü®)
-   (#x9c57 ?×÷)
-   (#x9ce5 ?ðè)
-   (#x9ce7 ?ÃÀ)
-   (#x9ce9 ?ÃÃ)
-   (#x9cf3 ?Üó)
-   (#x9cf4 ?Ù°)
-   (#x9cf6 ?æé)
-   (#x9d09 ?ä¼)
-   (#x9d1b ?êÄ)
-   (#x9d26 ?äì)
-   (#x9d28 ?äå)
-   (#x9d3b ?ûø)
-   (#x9d51 ?Ì»)
-   (#x9d5d ?ä½)
-   (#x9d60 ?ÃÃœ)
-   (#x9d61 ?Ù÷)
-   (#x9d6c ?Ãß)
-   (#x9d72 ?íÎ)
-   (#x9da9 ?ÙÃ)
-   (#x9daf ?å£)
-   (#x9db4 ?ùÃ)
-   (#x9dc4 ?Í®)
-   (#x9dd7 ?ÃÃŽ)
-   (#x9df2 ?ö¯)
-   (#x9df8 ?ýÓ)
-   (#x9df9 ?ëí)
-   (#x9dfa ?ÖÜ)
-   (#x9e1a ?å¤)
-   (#x9e1e ?Õ¶)
-   (#x9e75 ?ÖÃ)
-   (#x9e79 ?ùé)
-   (#x9e7d ?ç¤)
-   (#x9e7f ?Öã)
-   (#x9e92 ?ÑË)
-   (#x9e93 ?Öä)
-   (#x9e97 ?Õò)
-   (#x9e9d ?Þú)
-   (#x9e9f ?×ø)
-   (#x9ea5 ?Øê)
-   (#x9eb4 ?ÃÕ)
-   (#x9eb5 ?Øý)
-   (#x9ebb ?Ø«)
-   (#x9ebe ?ýË)
-   (#x9ec3 ?üÜ)
-   (#x9ecd ?à¨)
-   (#x9ece ?Õó)
-   (#x9ed1 ?ýÙ)
-   (#x9ed4 ?Ì£)
-   (#x9ed8 ?Ùù)
-   (#x9edb ?Óê)
-   (#x9edc ?õõ)
-   (#x9ede ?ïÇ)
-   (#x9ee8 ?ÓÚ)
-   (#x9ef4 ?Ú½)
-   (#x9f07 ?è¨)
-   (#x9f08 ?ܯ)
-   (#x9f0e ?ð£)
-   (#x9f13 ?ÃÕ)
-   (#x9f20 ?à©)
-   (#x9f3b ?Þ¬)
-   (#x9f4a ?ðº)
-   (#x9f4b ?î±)
-   (#x9f4e ?î²)
-   (#x9f52 ?öÃ)
-   (#x9f5f ?îÒ)
-   (#x9f61 ?ÖÆ)
-   (#x9f67 ?àå)
-   (#x9f6a ?ó»)
-   (#x9f6c ?åá)
-   (#x9f77 ?äË)
-   (#x9f8d ?×£)
-   (#x9f90 ?ÛÂ)
-   (#x9f95 ?Êþ)
-   (#x9f9c ?ÃÃ)
-   (#xac00 ?°¡)
-   (#xac01 ?°¢)
-   (#xac04 ?°£)
-   (#xac07 ?°¤)
-   (#xac08 ?°¥)
-   (#xac09 ?°¦)
-   (#xac0a ?°§)
-   (#xac10 ?°¨)
-   (#xac11 ?°©)
-   (#xac12 ?°ª)
-   (#xac13 ?°«)
-   (#xac14 ?°¬)
-   (#xac15 ?°­)
-   (#xac16 ?°®)
-   (#xac17 ?°¯)
-   (#xac19 ?°°)
-   (#xac1a ?°±)
-   (#xac1b ?°²)
-   (#xac1c ?°³)
-   (#xac1d ?°´)
-   (#xac20 ?°µ)
-   (#xac24 ?°¶)
-   (#xac2c ?°·)
-   (#xac2d ?°¸)
-   (#xac2f ?°¹)
-   (#xac30 ?°º)
-   (#xac31 ?°»)
-   (#xac38 ?°¼)
-   (#xac39 ?°½)
-   (#xac3c ?°¾)
-   (#xac40 ?°¿)
-   (#xac4b ?°À)
-   (#xac4d ?°Ã)
-   (#xac54 ?°Â)
-   (#xac58 ?°Ã)
-   (#xac5c ?°Ä)
-   (#xac70 ?°Å)
-   (#xac71 ?°Æ)
-   (#xac74 ?°Ç)
-   (#xac77 ?°È)
-   (#xac78 ?°É)
-   (#xac7a ?°Ê)
-   (#xac80 ?°Ë)
-   (#xac81 ?°Ì)
-   (#xac83 ?°Ã)
-   (#xac84 ?°Î)
-   (#xac85 ?°Ã)
-   (#xac86 ?°Ã)
-   (#xac89 ?°Ñ)
-   (#xac8a ?°Ò)
-   (#xac8b ?°Ó)
-   (#xac8c ?°Ô)
-   (#xac90 ?°Õ)
-   (#xac94 ?°Ö)
-   (#xac9c ?°×)
-   (#xac9d ?°Ø)
-   (#xac9f ?°Ù)
-   (#xaca0 ?°Ú)
-   (#xaca1 ?°Û)
-   (#xaca8 ?°Ü)
-   (#xaca9 ?°Ã)
-   (#xacaa ?°Þ)
-   (#xacac ?°ß)
-   (#xacaf ?°à)
-   (#xacb0 ?°á)
-   (#xacb8 ?°â)
-   (#xacb9 ?°ã)
-   (#xacbb ?°ä)
-   (#xacbc ?°å)
-   (#xacbd ?°æ)
-   (#xacc1 ?°ç)
-   (#xacc4 ?°è)
-   (#xacc8 ?°é)
-   (#xaccc ?°ê)
-   (#xacd5 ?°ë)
-   (#xacd7 ?°ì)
-   (#xace0 ?°í)
-   (#xace1 ?°î)
-   (#xace4 ?°ï)
-   (#xace7 ?°ð)
-   (#xace8 ?°ñ)
-   (#xacea ?°ò)
-   (#xacec ?°ó)
-   (#xacef ?°ô)
-   (#xacf0 ?°õ)
-   (#xacf1 ?°ö)
-   (#xacf3 ?°÷)
-   (#xacf5 ?°ø)
-   (#xacf6 ?°ù)
-   (#xacfc ?°ú)
-   (#xacfd ?°û)
-   (#xad00 ?°ü)
-   (#xad04 ?°ý)
-   (#xad06 ?°þ)
-   (#xad0c ?±¡)
-   (#xad0d ?±¢)
-   (#xad0f ?±£)
-   (#xad11 ?±¤)
-   (#xad18 ?±¥)
-   (#xad1c ?±¦)
-   (#xad20 ?±§)
-   (#xad29 ?±¨)
-   (#xad2c ?±©)
-   (#xad2d ?±ª)
-   (#xad34 ?±«)
-   (#xad35 ?±¬)
-   (#xad38 ?±­)
-   (#xad3c ?±®)
-   (#xad44 ?±¯)
-   (#xad45 ?±°)
-   (#xad47 ?±±)
-   (#xad49 ?±²)
-   (#xad50 ?±³)
-   (#xad54 ?±´)
-   (#xad58 ?±µ)
-   (#xad61 ?±¶)
-   (#xad63 ?±·)
-   (#xad6c ?±¸)
-   (#xad6d ?±¹)
-   (#xad70 ?±º)
-   (#xad73 ?±»)
-   (#xad74 ?±¼)
-   (#xad75 ?±½)
-   (#xad76 ?±¾)
-   (#xad7b ?±¿)
-   (#xad7c ?±À)
-   (#xad7d ?±Ã)
-   (#xad7f ?±Â)
-   (#xad81 ?±Ã)
-   (#xad82 ?±Ä)
-   (#xad88 ?±Å)
-   (#xad89 ?±Æ)
-   (#xad8c ?±Ç)
-   (#xad90 ?±È)
-   (#xad9c ?±É)
-   (#xad9d ?±Ê)
-   (#xada4 ?±Ë)
-   (#xadb7 ?±Ì)
-   (#xadc0 ?±Ã)
-   (#xadc1 ?±Î)
-   (#xadc4 ?±Ã)
-   (#xadc8 ?±Ã)
-   (#xadd0 ?±Ñ)
-   (#xadd1 ?±Ò)
-   (#xadd3 ?±Ó)
-   (#xaddc ?±Ô)
-   (#xade0 ?±Õ)
-   (#xade4 ?±Ö)
-   (#xadf8 ?±×)
-   (#xadf9 ?±Ø)
-   (#xadfc ?±Ù)
-   (#xadff ?±Ú)
-   (#xae00 ?±Û)
-   (#xae01 ?±Ü)
-   (#xae08 ?±Ã)
-   (#xae09 ?±Þ)
-   (#xae0b ?±ß)
-   (#xae0d ?±à)
-   (#xae14 ?±á)
-   (#xae30 ?±â)
-   (#xae31 ?±ã)
-   (#xae34 ?±ä)
-   (#xae37 ?±å)
-   (#xae38 ?±æ)
-   (#xae3a ?±ç)
-   (#xae40 ?±è)
-   (#xae41 ?±é)
-   (#xae43 ?±ê)
-   (#xae45 ?±ë)
-   (#xae46 ?±ì)
-   (#xae4a ?±í)
-   (#xae4c ?±î)
-   (#xae4d ?±ï)
-   (#xae4e ?±ð)
-   (#xae50 ?±ñ)
-   (#xae54 ?±ò)
-   (#xae56 ?±ó)
-   (#xae5c ?±ô)
-   (#xae5d ?±õ)
-   (#xae5f ?±ö)
-   (#xae60 ?±÷)
-   (#xae61 ?±ø)
-   (#xae65 ?±ù)
-   (#xae68 ?±ú)
-   (#xae69 ?±û)
-   (#xae6c ?±ü)
-   (#xae70 ?±ý)
-   (#xae78 ?±þ)
-   (#xae79 ?²¡)
-   (#xae7b ?²¢)
-   (#xae7c ?²£)
-   (#xae7d ?²¤)
-   (#xae84 ?²¥)
-   (#xae85 ?²¦)
-   (#xae8c ?²§)
-   (#xaebc ?²¨)
-   (#xaebd ?²©)
-   (#xaebe ?²ª)
-   (#xaec0 ?²«)
-   (#xaec4 ?²¬)
-   (#xaecc ?²­)
-   (#xaecd ?²®)
-   (#xaecf ?²¯)
-   (#xaed0 ?²°)
-   (#xaed1 ?²±)
-   (#xaed8 ?²²)
-   (#xaed9 ?²³)
-   (#xaedc ?²´)
-   (#xaee8 ?²µ)
-   (#xaeeb ?²¶)
-   (#xaeed ?²·)
-   (#xaef4 ?²¸)
-   (#xaef8 ?²¹)
-   (#xaefc ?²º)
-   (#xaf07 ?²»)
-   (#xaf08 ?²¼)
-   (#xaf0d ?²½)
-   (#xaf10 ?²¾)
-   (#xaf2c ?²¿)
-   (#xaf2d ?²À)
-   (#xaf30 ?²Ã)
-   (#xaf32 ?²Â)
-   (#xaf34 ?²Ã)
-   (#xaf3c ?²Ä)
-   (#xaf3d ?²Å)
-   (#xaf3f ?²Æ)
-   (#xaf41 ?²Ç)
-   (#xaf42 ?²È)
-   (#xaf43 ?²É)
-   (#xaf48 ?²Ê)
-   (#xaf49 ?²Ë)
-   (#xaf50 ?²Ì)
-   (#xaf5c ?²Ã)
-   (#xaf5d ?²Î)
-   (#xaf64 ?²Ã)
-   (#xaf65 ?²Ã)
-   (#xaf79 ?²Ñ)
-   (#xaf80 ?²Ò)
-   (#xaf84 ?²Ó)
-   (#xaf88 ?²Ô)
-   (#xaf90 ?²Õ)
-   (#xaf91 ?²Ö)
-   (#xaf95 ?²×)
-   (#xaf9c ?²Ø)
-   (#xafb8 ?²Ù)
-   (#xafb9 ?²Ú)
-   (#xafbc ?²Û)
-   (#xafc0 ?²Ü)
-   (#xafc7 ?²Ã)
-   (#xafc8 ?²Þ)
-   (#xafc9 ?²ß)
-   (#xafcb ?²à)
-   (#xafcd ?²á)
-   (#xafce ?²â)
-   (#xafd4 ?²ã)
-   (#xafdc ?²ä)
-   (#xafe8 ?²å)
-   (#xafe9 ?²æ)
-   (#xaff0 ?²ç)
-   (#xaff1 ?²è)
-   (#xaff4 ?²é)
-   (#xaff8 ?²ê)
-   (#xb000 ?²ë)
-   (#xb001 ?²ì)
-   (#xb004 ?²í)
-   (#xb00c ?²î)
-   (#xb010 ?²ï)
-   (#xb014 ?²ð)
-   (#xb01c ?²ñ)
-   (#xb01d ?²ò)
-   (#xb028 ?²ó)
-   (#xb044 ?²ô)
-   (#xb045 ?²õ)
-   (#xb048 ?²ö)
-   (#xb04a ?²÷)
-   (#xb04c ?²ø)
-   (#xb04e ?²ù)
-   (#xb053 ?²ú)
-   (#xb054 ?²û)
-   (#xb055 ?²ü)
-   (#xb057 ?²ý)
-   (#xb059 ?²þ)
-   (#xb05d ?³¡)
-   (#xb07c ?³¢)
-   (#xb07d ?³£)
-   (#xb080 ?³¤)
-   (#xb084 ?³¥)
-   (#xb08c ?³¦)
-   (#xb08d ?³§)
-   (#xb08f ?³¨)
-   (#xb091 ?³©)
-   (#xb098 ?³ª)
-   (#xb099 ?³«)
-   (#xb09a ?³¬)
-   (#xb09c ?³­)
-   (#xb09f ?³®)
-   (#xb0a0 ?³¯)
-   (#xb0a1 ?³°)
-   (#xb0a2 ?³±)
-   (#xb0a8 ?³²)
-   (#xb0a9 ?³³)
-   (#xb0ab ?³´)
-   (#xb0ac ?³µ)
-   (#xb0ad ?³¶)
-   (#xb0ae ?³·)
-   (#xb0af ?³¸)
-   (#xb0b1 ?³¹)
-   (#xb0b3 ?³º)
-   (#xb0b4 ?³»)
-   (#xb0b5 ?³¼)
-   (#xb0b8 ?³½)
-   (#xb0bc ?³¾)
-   (#xb0c4 ?³¿)
-   (#xb0c5 ?³À)
-   (#xb0c7 ?³Ã)
-   (#xb0c8 ?³Â)
-   (#xb0c9 ?³Ã)
-   (#xb0d0 ?³Ä)
-   (#xb0d1 ?³Å)
-   (#xb0d4 ?³Æ)
-   (#xb0d8 ?³Ç)
-   (#xb0e0 ?³È)
-   (#xb0e5 ?³É)
-   (#xb108 ?³Ê)
-   (#xb109 ?³Ë)
-   (#xb10b ?³Ì)
-   (#xb10c ?³Ã)
-   (#xb110 ?³Î)
-   (#xb112 ?³Ã)
-   (#xb113 ?³Ã)
-   (#xb118 ?³Ñ)
-   (#xb119 ?³Ò)
-   (#xb11b ?³Ó)
-   (#xb11c ?³Ô)
-   (#xb11d ?³Õ)
-   (#xb123 ?³Ö)
-   (#xb124 ?³×)
-   (#xb125 ?³Ø)
-   (#xb128 ?³Ù)
-   (#xb12c ?³Ú)
-   (#xb134 ?³Û)
-   (#xb135 ?³Ü)
-   (#xb137 ?³Ã)
-   (#xb138 ?³Þ)
-   (#xb139 ?³ß)
-   (#xb140 ?³à)
-   (#xb141 ?³á)
-   (#xb144 ?³â)
-   (#xb148 ?³ã)
-   (#xb150 ?³ä)
-   (#xb151 ?³å)
-   (#xb154 ?³æ)
-   (#xb155 ?³ç)
-   (#xb158 ?³è)
-   (#xb15c ?³é)
-   (#xb160 ?³ê)
-   (#xb178 ?³ë)
-   (#xb179 ?³ì)
-   (#xb17c ?³í)
-   (#xb180 ?³î)
-   (#xb182 ?³ï)
-   (#xb188 ?³ð)
-   (#xb189 ?³ñ)
-   (#xb18b ?³ò)
-   (#xb18d ?³ó)
-   (#xb192 ?³ô)
-   (#xb193 ?³õ)
-   (#xb194 ?³ö)
-   (#xb198 ?³÷)
-   (#xb19c ?³ø)
-   (#xb1a8 ?³ù)
-   (#xb1cc ?³ú)
-   (#xb1d0 ?³û)
-   (#xb1d4 ?³ü)
-   (#xb1dc ?³ý)
-   (#xb1dd ?³þ)
-   (#xb1df ?´¡)
-   (#xb1e8 ?´¢)
-   (#xb1e9 ?´£)
-   (#xb1ec ?´¤)
-   (#xb1f0 ?´¥)
-   (#xb1f9 ?´¦)
-   (#xb1fb ?´§)
-   (#xb1fd ?´¨)
-   (#xb204 ?´©)
-   (#xb205 ?´ª)
-   (#xb208 ?´«)
-   (#xb20b ?´¬)
-   (#xb20c ?´­)
-   (#xb214 ?´®)
-   (#xb215 ?´¯)
-   (#xb217 ?´°)
-   (#xb219 ?´±)
-   (#xb220 ?´²)
-   (#xb234 ?´³)
-   (#xb23c ?´´)
-   (#xb258 ?´µ)
-   (#xb25c ?´¶)
-   (#xb260 ?´·)
-   (#xb268 ?´¸)
-   (#xb269 ?´¹)
-   (#xb274 ?´º)
-   (#xb275 ?´»)
-   (#xb27c ?´¼)
-   (#xb284 ?´½)
-   (#xb285 ?´¾)
-   (#xb289 ?´¿)
-   (#xb290 ?´À)
-   (#xb291 ?´Ã)
-   (#xb294 ?´Â)
-   (#xb298 ?´Ã)
-   (#xb299 ?´Ä)
-   (#xb29a ?´Å)
-   (#xb2a0 ?´Æ)
-   (#xb2a1 ?´Ç)
-   (#xb2a3 ?´È)
-   (#xb2a5 ?´É)
-   (#xb2a6 ?´Ê)
-   (#xb2aa ?´Ë)
-   (#xb2ac ?´Ì)
-   (#xb2b0 ?´Ã)
-   (#xb2b4 ?´Î)
-   (#xb2c8 ?´Ã)
-   (#xb2c9 ?´Ã)
-   (#xb2cc ?´Ñ)
-   (#xb2d0 ?´Ò)
-   (#xb2d2 ?´Ó)
-   (#xb2d8 ?´Ô)
-   (#xb2d9 ?´Õ)
-   (#xb2db ?´Ö)
-   (#xb2dd ?´×)
-   (#xb2e2 ?´Ø)
-   (#xb2e4 ?´Ù)
-   (#xb2e5 ?´Ú)
-   (#xb2e6 ?´Û)
-   (#xb2e8 ?´Ü)
-   (#xb2eb ?´Ã)
-   (#xb2ec ?´Þ)
-   (#xb2ed ?´ß)
-   (#xb2ee ?´à)
-   (#xb2ef ?´á)
-   (#xb2f3 ?´â)
-   (#xb2f4 ?´ã)
-   (#xb2f5 ?´ä)
-   (#xb2f7 ?´å)
-   (#xb2f8 ?´æ)
-   (#xb2f9 ?´ç)
-   (#xb2fa ?´è)
-   (#xb2fb ?´é)
-   (#xb2ff ?´ê)
-   (#xb300 ?´ë)
-   (#xb301 ?´ì)
-   (#xb304 ?´í)
-   (#xb308 ?´î)
-   (#xb310 ?´ï)
-   (#xb311 ?´ð)
-   (#xb313 ?´ñ)
-   (#xb314 ?´ò)
-   (#xb315 ?´ó)
-   (#xb31c ?´ô)
-   (#xb354 ?´õ)
-   (#xb355 ?´ö)
-   (#xb356 ?´÷)
-   (#xb358 ?´ø)
-   (#xb35b ?´ù)
-   (#xb35c ?´ú)
-   (#xb35e ?´û)
-   (#xb35f ?´ü)
-   (#xb364 ?´ý)
-   (#xb365 ?´þ)
-   (#xb367 ?µ¡)
-   (#xb369 ?µ¢)
-   (#xb36b ?µ£)
-   (#xb36e ?µ¤)
-   (#xb370 ?µ¥)
-   (#xb371 ?µ¦)
-   (#xb374 ?µ§)
-   (#xb378 ?µ¨)
-   (#xb380 ?µ©)
-   (#xb381 ?µª)
-   (#xb383 ?µ«)
-   (#xb384 ?µ¬)
-   (#xb385 ?µ­)
-   (#xb38c ?µ®)
-   (#xb390 ?µ¯)
-   (#xb394 ?µ°)
-   (#xb3a0 ?µ±)
-   (#xb3a1 ?µ²)
-   (#xb3a8 ?µ³)
-   (#xb3ac ?µ´)
-   (#xb3c4 ?µµ)
-   (#xb3c5 ?µ¶)
-   (#xb3c8 ?µ·)
-   (#xb3cb ?µ¸)
-   (#xb3cc ?µ¹)
-   (#xb3ce ?µº)
-   (#xb3d0 ?µ»)
-   (#xb3d4 ?µ¼)
-   (#xb3d5 ?µ½)
-   (#xb3d7 ?µ¾)
-   (#xb3d9 ?µ¿)
-   (#xb3db ?µÀ)
-   (#xb3dd ?µÃ)
-   (#xb3e0 ?µÂ)
-   (#xb3e4 ?µÃ)
-   (#xb3e8 ?µÄ)
-   (#xb3fc ?µÅ)
-   (#xb410 ?µÆ)
-   (#xb418 ?µÇ)
-   (#xb41c ?µÈ)
-   (#xb420 ?µÉ)
-   (#xb428 ?µÊ)
-   (#xb429 ?µË)
-   (#xb42b ?µÌ)
-   (#xb434 ?µÃ)
-   (#xb450 ?µÎ)
-   (#xb451 ?µÃ)
-   (#xb454 ?µÃ)
-   (#xb458 ?µÑ)
-   (#xb460 ?µÒ)
-   (#xb461 ?µÓ)
-   (#xb463 ?µÔ)
-   (#xb465 ?µÕ)
-   (#xb46c ?µÖ)
-   (#xb480 ?µ×)
-   (#xb488 ?µØ)
-   (#xb49d ?µÙ)
-   (#xb4a4 ?µÚ)
-   (#xb4a8 ?µÛ)
-   (#xb4ac ?µÜ)
-   (#xb4b5 ?µÃ)
-   (#xb4b7 ?µÞ)
-   (#xb4b9 ?µß)
-   (#xb4c0 ?µà)
-   (#xb4c4 ?µá)
-   (#xb4c8 ?µâ)
-   (#xb4d0 ?µã)
-   (#xb4d5 ?µä)
-   (#xb4dc ?µå)
-   (#xb4dd ?µæ)
-   (#xb4e0 ?µç)
-   (#xb4e3 ?µè)
-   (#xb4e4 ?µé)
-   (#xb4e6 ?µê)
-   (#xb4ec ?µë)
-   (#xb4ed ?µì)
-   (#xb4ef ?µí)
-   (#xb4f1 ?µî)
-   (#xb4f8 ?µï)
-   (#xb514 ?µð)
-   (#xb515 ?µñ)
-   (#xb518 ?µò)
-   (#xb51b ?µó)
-   (#xb51c ?µô)
-   (#xb524 ?µõ)
-   (#xb525 ?µö)
-   (#xb527 ?µ÷)
-   (#xb528 ?µø)
-   (#xb529 ?µù)
-   (#xb52a ?µú)
-   (#xb530 ?µû)
-   (#xb531 ?µü)
-   (#xb534 ?µý)
-   (#xb538 ?µþ)
-   (#xb540 ?¶¡)
-   (#xb541 ?¶¢)
-   (#xb543 ?¶£)
-   (#xb544 ?¶¤)
-   (#xb545 ?¶¥)
-   (#xb54b ?¶¦)
-   (#xb54c ?¶§)
-   (#xb54d ?¶¨)
-   (#xb550 ?¶©)
-   (#xb554 ?¶ª)
-   (#xb55c ?¶«)
-   (#xb55d ?¶¬)
-   (#xb55f ?¶­)
-   (#xb560 ?¶®)
-   (#xb561 ?¶¯)
-   (#xb5a0 ?¶°)
-   (#xb5a1 ?¶±)
-   (#xb5a4 ?¶²)
-   (#xb5a8 ?¶³)
-   (#xb5aa ?¶´)
-   (#xb5ab ?¶µ)
-   (#xb5b0 ?¶¶)
-   (#xb5b1 ?¶·)
-   (#xb5b3 ?¶¸)
-   (#xb5b4 ?¶¹)
-   (#xb5b5 ?¶º)
-   (#xb5bb ?¶»)
-   (#xb5bc ?¶¼)
-   (#xb5bd ?¶½)
-   (#xb5c0 ?¶¾)
-   (#xb5c4 ?¶¿)
-   (#xb5cc ?¶À)
-   (#xb5cd ?¶Ã)
-   (#xb5cf ?¶Â)
-   (#xb5d0 ?¶Ã)
-   (#xb5d1 ?¶Ä)
-   (#xb5d8 ?¶Å)
-   (#xb5ec ?¶Æ)
-   (#xb610 ?¶Ç)
-   (#xb611 ?¶È)
-   (#xb614 ?¶É)
-   (#xb618 ?¶Ê)
-   (#xb625 ?¶Ë)
-   (#xb62c ?¶Ì)
-   (#xb634 ?¶Ã)
-   (#xb648 ?¶Î)
-   (#xb664 ?¶Ã)
-   (#xb668 ?¶Ã)
-   (#xb69c ?¶Ñ)
-   (#xb69d ?¶Ò)
-   (#xb6a0 ?¶Ó)
-   (#xb6a4 ?¶Ô)
-   (#xb6ab ?¶Õ)
-   (#xb6ac ?¶Ö)
-   (#xb6b1 ?¶×)
-   (#xb6d4 ?¶Ø)
-   (#xb6f0 ?¶Ù)
-   (#xb6f4 ?¶Ú)
-   (#xb6f8 ?¶Û)
-   (#xb700 ?¶Ü)
-   (#xb701 ?¶Ã)
-   (#xb705 ?¶Þ)
-   (#xb728 ?¶ß)
-   (#xb729 ?¶à)
-   (#xb72c ?¶á)
-   (#xb72f ?¶â)
-   (#xb730 ?¶ã)
-   (#xb738 ?¶ä)
-   (#xb739 ?¶å)
-   (#xb73b ?¶æ)
-   (#xb744 ?¶ç)
-   (#xb748 ?¶è)
-   (#xb74c ?¶é)
-   (#xb754 ?¶ê)
-   (#xb755 ?¶ë)
-   (#xb760 ?¶ì)
-   (#xb764 ?¶í)
-   (#xb768 ?¶î)
-   (#xb770 ?¶ï)
-   (#xb771 ?¶ð)
-   (#xb773 ?¶ñ)
-   (#xb775 ?¶ò)
-   (#xb77c ?¶ó)
-   (#xb77d ?¶ô)
-   (#xb780 ?¶õ)
-   (#xb784 ?¶ö)
-   (#xb78c ?¶÷)
-   (#xb78d ?¶ø)
-   (#xb78f ?¶ù)
-   (#xb790 ?¶ú)
-   (#xb791 ?¶û)
-   (#xb792 ?¶ü)
-   (#xb796 ?¶ý)
-   (#xb797 ?¶þ)
-   (#xb798 ?·¡)
-   (#xb799 ?·¢)
-   (#xb79c ?·£)
-   (#xb7a0 ?·¤)
-   (#xb7a8 ?·¥)
-   (#xb7a9 ?·¦)
-   (#xb7ab ?·§)
-   (#xb7ac ?·¨)
-   (#xb7ad ?·©)
-   (#xb7b4 ?·ª)
-   (#xb7b5 ?·«)
-   (#xb7b8 ?·¬)
-   (#xb7c7 ?·­)
-   (#xb7c9 ?·®)
-   (#xb7ec ?·¯)
-   (#xb7ed ?·°)
-   (#xb7f0 ?·±)
-   (#xb7f4 ?·²)
-   (#xb7fc ?·³)
-   (#xb7fd ?·´)
-   (#xb7ff ?·µ)
-   (#xb800 ?·¶)
-   (#xb801 ?··)
-   (#xb807 ?·¸)
-   (#xb808 ?·¹)
-   (#xb809 ?·º)
-   (#xb80c ?·»)
-   (#xb810 ?·¼)
-   (#xb818 ?·½)
-   (#xb819 ?·¾)
-   (#xb81b ?·¿)
-   (#xb81d ?·À)
-   (#xb824 ?·Ã)
-   (#xb825 ?·Â)
-   (#xb828 ?·Ã)
-   (#xb82c ?·Ä)
-   (#xb834 ?·Å)
-   (#xb835 ?·Æ)
-   (#xb837 ?·Ç)
-   (#xb838 ?·È)
-   (#xb839 ?·É)
-   (#xb840 ?·Ê)
-   (#xb844 ?·Ë)
-   (#xb851 ?·Ì)
-   (#xb853 ?·Ã)
-   (#xb85c ?·Î)
-   (#xb85d ?·Ã)
-   (#xb860 ?·Ã)
-   (#xb864 ?·Ñ)
-   (#xb86c ?·Ò)
-   (#xb86d ?·Ó)
-   (#xb86f ?·Ô)
-   (#xb871 ?·Õ)
-   (#xb878 ?·Ö)
-   (#xb87c ?·×)
-   (#xb88d ?·Ø)
-   (#xb8a8 ?·Ù)
-   (#xb8b0 ?·Ú)
-   (#xb8b4 ?·Û)
-   (#xb8b8 ?·Ü)
-   (#xb8c0 ?·Ã)
-   (#xb8c1 ?·Þ)
-   (#xb8c3 ?·ß)
-   (#xb8c5 ?·à)
-   (#xb8cc ?·á)
-   (#xb8d0 ?·â)
-   (#xb8d4 ?·ã)
-   (#xb8dd ?·ä)
-   (#xb8df ?·å)
-   (#xb8e1 ?·æ)
-   (#xb8e8 ?·ç)
-   (#xb8e9 ?·è)
-   (#xb8ec ?·é)
-   (#xb8f0 ?·ê)
-   (#xb8f8 ?·ë)
-   (#xb8f9 ?·ì)
-   (#xb8fb ?·í)
-   (#xb8fd ?·î)
-   (#xb904 ?·ï)
-   (#xb918 ?·ð)
-   (#xb920 ?·ñ)
-   (#xb93c ?·ò)
-   (#xb93d ?·ó)
-   (#xb940 ?·ô)
-   (#xb944 ?·õ)
-   (#xb94c ?·ö)
-   (#xb94f ?·÷)
-   (#xb951 ?·ø)
-   (#xb958 ?·ù)
-   (#xb959 ?·ú)
-   (#xb95c ?·û)
-   (#xb960 ?·ü)
-   (#xb968 ?·ý)
-   (#xb969 ?·þ)
-   (#xb96b ?¸¡)
-   (#xb96d ?¸¢)
-   (#xb974 ?¸£)
-   (#xb975 ?¸¤)
-   (#xb978 ?¸¥)
-   (#xb97c ?¸¦)
-   (#xb984 ?¸§)
-   (#xb985 ?¸¨)
-   (#xb987 ?¸©)
-   (#xb989 ?¸ª)
-   (#xb98a ?¸«)
-   (#xb98d ?¸¬)
-   (#xb98e ?¸­)
-   (#xb9ac ?¸®)
-   (#xb9ad ?¸¯)
-   (#xb9b0 ?¸°)
-   (#xb9b4 ?¸±)
-   (#xb9bc ?¸²)
-   (#xb9bd ?¸³)
-   (#xb9bf ?¸´)
-   (#xb9c1 ?¸µ)
-   (#xb9c8 ?¸¶)
-   (#xb9c9 ?¸·)
-   (#xb9cc ?¸¸)
-   (#xb9ce ?¸¹)
-   (#xb9cf ?¸º)
-   (#xb9d0 ?¸»)
-   (#xb9d1 ?¸¼)
-   (#xb9d2 ?¸½)
-   (#xb9d8 ?¸¾)
-   (#xb9d9 ?¸¿)
-   (#xb9db ?¸À)
-   (#xb9dd ?¸Ã)
-   (#xb9de ?¸Â)
-   (#xb9e1 ?¸Ã)
-   (#xb9e3 ?¸Ä)
-   (#xb9e4 ?¸Å)
-   (#xb9e5 ?¸Æ)
-   (#xb9e8 ?¸Ç)
-   (#xb9ec ?¸È)
-   (#xb9f4 ?¸É)
-   (#xb9f5 ?¸Ê)
-   (#xb9f7 ?¸Ë)
-   (#xb9f8 ?¸Ì)
-   (#xb9f9 ?¸Ã)
-   (#xb9fa ?¸Î)
-   (#xba00 ?¸Ã)
-   (#xba01 ?¸Ã)
-   (#xba08 ?¸Ñ)
-   (#xba15 ?¸Ò)
-   (#xba38 ?¸Ó)
-   (#xba39 ?¸Ô)
-   (#xba3c ?¸Õ)
-   (#xba40 ?¸Ö)
-   (#xba42 ?¸×)
-   (#xba48 ?¸Ø)
-   (#xba49 ?¸Ù)
-   (#xba4b ?¸Ú)
-   (#xba4d ?¸Û)
-   (#xba4e ?¸Ü)
-   (#xba53 ?¸Ã)
-   (#xba54 ?¸Þ)
-   (#xba55 ?¸ß)
-   (#xba58 ?¸à)
-   (#xba5c ?¸á)
-   (#xba64 ?¸â)
-   (#xba65 ?¸ã)
-   (#xba67 ?¸ä)
-   (#xba68 ?¸å)
-   (#xba69 ?¸æ)
-   (#xba70 ?¸ç)
-   (#xba71 ?¸è)
-   (#xba74 ?¸é)
-   (#xba78 ?¸ê)
-   (#xba83 ?¸ë)
-   (#xba84 ?¸ì)
-   (#xba85 ?¸í)
-   (#xba87 ?¸î)
-   (#xba8c ?¸ï)
-   (#xbaa8 ?¸ð)
-   (#xbaa9 ?¸ñ)
-   (#xbaab ?¸ò)
-   (#xbaac ?¸ó)
-   (#xbab0 ?¸ô)
-   (#xbab2 ?¸õ)
-   (#xbab8 ?¸ö)
-   (#xbab9 ?¸÷)
-   (#xbabb ?¸ø)
-   (#xbabd ?¸ù)
-   (#xbac4 ?¸ú)
-   (#xbac8 ?¸û)
-   (#xbad8 ?¸ü)
-   (#xbad9 ?¸ý)
-   (#xbafc ?¸þ)
-   (#xbb00 ?¹¡)
-   (#xbb04 ?¹¢)
-   (#xbb0d ?¹£)
-   (#xbb0f ?¹¤)
-   (#xbb11 ?¹¥)
-   (#xbb18 ?¹¦)
-   (#xbb1c ?¹§)
-   (#xbb20 ?¹¨)
-   (#xbb29 ?¹©)
-   (#xbb2b ?¹ª)
-   (#xbb34 ?¹«)
-   (#xbb35 ?¹¬)
-   (#xbb36 ?¹­)
-   (#xbb38 ?¹®)
-   (#xbb3b ?¹¯)
-   (#xbb3c ?¹°)
-   (#xbb3d ?¹±)
-   (#xbb3e ?¹²)
-   (#xbb44 ?¹³)
-   (#xbb45 ?¹´)
-   (#xbb47 ?¹µ)
-   (#xbb49 ?¹¶)
-   (#xbb4d ?¹·)
-   (#xbb4f ?¹¸)
-   (#xbb50 ?¹¹)
-   (#xbb54 ?¹º)
-   (#xbb58 ?¹»)
-   (#xbb61 ?¹¼)
-   (#xbb63 ?¹½)
-   (#xbb6c ?¹¾)
-   (#xbb88 ?¹¿)
-   (#xbb8c ?¹À)
-   (#xbb90 ?¹Ã)
-   (#xbba4 ?¹Â)
-   (#xbba8 ?¹Ã)
-   (#xbbac ?¹Ä)
-   (#xbbb4 ?¹Å)
-   (#xbbb7 ?¹Æ)
-   (#xbbc0 ?¹Ç)
-   (#xbbc4 ?¹È)
-   (#xbbc8 ?¹É)
-   (#xbbd0 ?¹Ê)
-   (#xbbd3 ?¹Ë)
-   (#xbbf8 ?¹Ì)
-   (#xbbf9 ?¹Ã)
-   (#xbbfc ?¹Î)
-   (#xbbff ?¹Ã)
-   (#xbc00 ?¹Ã)
-   (#xbc02 ?¹Ñ)
-   (#xbc08 ?¹Ò)
-   (#xbc09 ?¹Ó)
-   (#xbc0b ?¹Ô)
-   (#xbc0c ?¹Õ)
-   (#xbc0d ?¹Ö)
-   (#xbc0f ?¹×)
-   (#xbc11 ?¹Ø)
-   (#xbc14 ?¹Ù)
-   (#xbc15 ?¹Ú)
-   (#xbc16 ?¹Û)
-   (#xbc17 ?¹Ü)
-   (#xbc18 ?¹Ã)
-   (#xbc1b ?¹Þ)
-   (#xbc1c ?¹ß)
-   (#xbc1d ?¹à)
-   (#xbc1e ?¹á)
-   (#xbc1f ?¹â)
-   (#xbc24 ?¹ã)
-   (#xbc25 ?¹ä)
-   (#xbc27 ?¹å)
-   (#xbc29 ?¹æ)
-   (#xbc2d ?¹ç)
-   (#xbc30 ?¹è)
-   (#xbc31 ?¹é)
-   (#xbc34 ?¹ê)
-   (#xbc38 ?¹ë)
-   (#xbc40 ?¹ì)
-   (#xbc41 ?¹í)
-   (#xbc43 ?¹î)
-   (#xbc44 ?¹ï)
-   (#xbc45 ?¹ð)
-   (#xbc49 ?¹ñ)
-   (#xbc4c ?¹ò)
-   (#xbc4d ?¹ó)
-   (#xbc50 ?¹ô)
-   (#xbc5d ?¹õ)
-   (#xbc84 ?¹ö)
-   (#xbc85 ?¹÷)
-   (#xbc88 ?¹ø)
-   (#xbc8b ?¹ù)
-   (#xbc8c ?¹ú)
-   (#xbc8e ?¹û)
-   (#xbc94 ?¹ü)
-   (#xbc95 ?¹ý)
-   (#xbc97 ?¹þ)
-   (#xbc99 ?º¡)
-   (#xbc9a ?º¢)
-   (#xbca0 ?º£)
-   (#xbca1 ?º¤)
-   (#xbca4 ?º¥)
-   (#xbca7 ?º¦)
-   (#xbca8 ?º§)
-   (#xbcb0 ?º¨)
-   (#xbcb1 ?º©)
-   (#xbcb3 ?ºª)
-   (#xbcb4 ?º«)
-   (#xbcb5 ?º¬)
-   (#xbcbc ?º­)
-   (#xbcbd ?º®)
-   (#xbcc0 ?º¯)
-   (#xbcc4 ?º°)
-   (#xbccd ?º±)
-   (#xbccf ?º²)
-   (#xbcd0 ?º³)
-   (#xbcd1 ?º´)
-   (#xbcd5 ?ºµ)
-   (#xbcd8 ?º¶)
-   (#xbcdc ?º·)
-   (#xbcf4 ?º¸)
-   (#xbcf5 ?º¹)
-   (#xbcf6 ?ºº)
-   (#xbcf8 ?º»)
-   (#xbcfc ?º¼)
-   (#xbd04 ?º½)
-   (#xbd05 ?º¾)
-   (#xbd07 ?º¿)
-   (#xbd09 ?ºÀ)
-   (#xbd10 ?ºÃ)
-   (#xbd14 ?ºÂ)
-   (#xbd24 ?ºÃ)
-   (#xbd2c ?ºÄ)
-   (#xbd40 ?ºÅ)
-   (#xbd48 ?ºÆ)
-   (#xbd49 ?ºÇ)
-   (#xbd4c ?ºÈ)
-   (#xbd50 ?ºÉ)
-   (#xbd58 ?ºÊ)
-   (#xbd59 ?ºË)
-   (#xbd64 ?ºÌ)
-   (#xbd68 ?ºÃ)
-   (#xbd80 ?ºÎ)
-   (#xbd81 ?ºÃ)
-   (#xbd84 ?ºÃ)
-   (#xbd87 ?ºÑ)
-   (#xbd88 ?ºÒ)
-   (#xbd89 ?ºÓ)
-   (#xbd8a ?ºÔ)
-   (#xbd90 ?ºÕ)
-   (#xbd91 ?ºÖ)
-   (#xbd93 ?º×)
-   (#xbd95 ?ºØ)
-   (#xbd99 ?ºÙ)
-   (#xbd9a ?ºÚ)
-   (#xbd9c ?ºÛ)
-   (#xbda4 ?ºÜ)
-   (#xbdb0 ?ºÃ)
-   (#xbdb8 ?ºÞ)
-   (#xbdd4 ?ºß)
-   (#xbdd5 ?ºà)
-   (#xbdd8 ?ºá)
-   (#xbddc ?ºâ)
-   (#xbde9 ?ºã)
-   (#xbdf0 ?ºä)
-   (#xbdf4 ?ºå)
-   (#xbdf8 ?ºæ)
-   (#xbe00 ?ºç)
-   (#xbe03 ?ºè)
-   (#xbe05 ?ºé)
-   (#xbe0c ?ºê)
-   (#xbe0d ?ºë)
-   (#xbe10 ?ºì)
-   (#xbe14 ?ºí)
-   (#xbe1c ?ºî)
-   (#xbe1d ?ºï)
-   (#xbe1f ?ºð)
-   (#xbe44 ?ºñ)
-   (#xbe45 ?ºò)
-   (#xbe48 ?ºó)
-   (#xbe4c ?ºô)
-   (#xbe4e ?ºõ)
-   (#xbe54 ?ºö)
-   (#xbe55 ?º÷)
-   (#xbe57 ?ºø)
-   (#xbe59 ?ºù)
-   (#xbe5a ?ºú)
-   (#xbe5b ?ºû)
-   (#xbe60 ?ºü)
-   (#xbe61 ?ºý)
-   (#xbe64 ?ºþ)
-   (#xbe68 ?»¡)
-   (#xbe6a ?Ȣ)
-   (#xbe70 ?ȣ)
-   (#xbe71 ?»¤)
-   (#xbe73 ?ȴ)
-   (#xbe74 ?»¦)
-   (#xbe75 ?Ȥ)
-   (#xbe7b ?Ȭ)
-   (#xbe7c ?»©)
-   (#xbe7d ?Ȼ)
-   (#xbe80 ?»«)
-   (#xbe84 ?»¬)
-   (#xbe8c ?»­)
-   (#xbe8d ?»®)
-   (#xbe8f ?»¯)
-   (#xbe90 ?»°)
-   (#xbe91 ?»±)
-   (#xbe98 ?»²)
-   (#xbe99 ?»³)
-   (#xbea8 ?»´)
-   (#xbed0 ?»µ)
-   (#xbed1 ?Ȧ)
-   (#xbed4 ?»·)
-   (#xbed7 ?»¸)
-   (#xbed8 ?»¹)
-   (#xbee0 ?ȼ)
-   (#xbee3 ?»»)
-   (#xbee4 ?»¼)
-   (#xbee5 ?»½)
-   (#xbeec ?»¾)
-   (#xbf01 ?»¿)
-   (#xbf08 ?»À)
-   (#xbf09 ?»Ã)
-   (#xbf18 ?»Â)
-   (#xbf19 ?»Ã)
-   (#xbf1b ?Ȁ)
-   (#xbf1c ?ȁ)
-   (#xbf1d ?Ȯ)
-   (#xbf40 ?Ȃ)
-   (#xbf41 ?»È)
-   (#xbf44 ?ȃ)
-   (#xbf48 ?»Ê)
-   (#xbf50 ?»Ë)
-   (#xbf51 ?»Ì)
-   (#xbf55 ?»Ã)
-   (#xbf94 ?»Î)
-   (#xbfb0 ?»Ã)
-   (#xbfc5 ?»Ã)
-   (#xbfcc ?Ȅ)
-   (#xbfcd ?»Ò)
-   (#xbfd0 ?»Ó)
-   (#xbfd4 ?»Ô)
-   (#xbfdc ?»Õ)
-   (#xbfdf ?»Ö)
-   (#xbfe1 ?»×)
-   (#xc03c ?ȯ)
-   (#xc051 ?»Ù)
-   (#xc058 ?»Ú)
-   (#xc05c ?»Û)
-   (#xc060 ?Ȇ)
-   (#xc068 ?»Ã)
-   (#xc069 ?»Þ)
-   (#xc090 ?ȧ)
-   (#xc091 ?Ȉ)
-   (#xc094 ?ȇ)
-   (#xc098 ?ȉ)
-   (#xc0a0 ?ȋ)
-   (#xc0a1 ?Ȋ)
-   (#xc0a3 ?Ȍ)
-   (#xc0a5 ?Ⱦ)
-   (#xc0ac ?ȍ)
-   (#xc0ad ?ȏ)
-   (#xc0af ?Ȏ)
-   (#xc0b0 ?Ȑ)
-   (#xc0b3 ?ȑ)
-   (#xc0b4 ?ȓ)
-   (#xc0b5 ?Ȓ)
-   (#xc0b6 ?Ȕ)
-   (#xc0bc ?ȕ)
-   (#xc0bd ?»ð)
-   (#xc0bf ?Ȗ)
-   (#xc0c0 ?»ò)
-   (#xc0c1 ?»ó)
-   (#xc0c5 ?»ô)
-   (#xc0c8 ?»õ)
-   (#xc0c9 ?»ö)
-   (#xc0cc ?»÷)
-   (#xc0d0 ?»ø)
-   (#xc0d8 ?»ù)
-   (#xc0d9 ?»ú)
-   (#xc0db ?»û)
-   (#xc0dc ?ȟ)
-   (#xc0dd ?»ý)
-   (#xc0e4 ?»þ)
-   (#xc0e5 ?¼¡)
-   (#xc0e8 ?¼¢)
-   (#xc0ec ?¼£)
-   (#xc0f4 ?¼¤)
-   (#xc0f5 ?¼¥)
-   (#xc0f7 ?¼¦)
-   (#xc0f9 ?¼§)
-   (#xc100 ?¼¨)
-   (#xc104 ?¼©)
-   (#xc108 ?¼ª)
-   (#xc110 ?¼«)
-   (#xc115 ?¼¬)
-   (#xc11c ?¼­)
-   (#xc11d ?¼®)
-   (#xc11e ?¼¯)
-   (#xc11f ?¼°)
-   (#xc120 ?¼±)
-   (#xc123 ?¼²)
-   (#xc124 ?¼³)
-   (#xc126 ?¼´)
-   (#xc127 ?¼µ)
-   (#xc12c ?¼¶)
-   (#xc12d ?¼·)
-   (#xc12f ?¼¸)
-   (#xc130 ?¼¹)
-   (#xc131 ?¼º)
-   (#xc136 ?¼»)
-   (#xc138 ?¼¼)
-   (#xc139 ?¼½)
-   (#xc13c ?¼¾)
-   (#xc140 ?¼¿)
-   (#xc148 ?¼À)
-   (#xc149 ?¼Ã)
-   (#xc14b ?¼Â)
-   (#xc14c ?¼Ã)
-   (#xc14d ?¼Ä)
-   (#xc154 ?¼Å)
-   (#xc155 ?¼Æ)
-   (#xc158 ?¼Ç)
-   (#xc15c ?¼È)
-   (#xc164 ?¼É)
-   (#xc165 ?¼Ê)
-   (#xc167 ?¼Ë)
-   (#xc168 ?¼Ì)
-   (#xc169 ?¼Ã)
-   (#xc170 ?¼Î)
-   (#xc174 ?¼Ã)
-   (#xc178 ?¼Ã)
-   (#xc185 ?¼Ñ)
-   (#xc18c ?¼Ò)
-   (#xc18d ?¼Ó)
-   (#xc18e ?¼Ô)
-   (#xc190 ?¼Õ)
-   (#xc194 ?¼Ö)
-   (#xc196 ?¼×)
-   (#xc19c ?¼Ø)
-   (#xc19d ?¼Ù)
-   (#xc19f ?¼Ú)
-   (#xc1a1 ?¼Û)
-   (#xc1a5 ?¼Ü)
-   (#xc1a8 ?¼Ã)
-   (#xc1a9 ?¼Þ)
-   (#xc1ac ?¼ß)
-   (#xc1b0 ?¼à)
-   (#xc1bd ?¼á)
-   (#xc1c4 ?¼â)
-   (#xc1c8 ?¼ã)
-   (#xc1cc ?¼ä)
-   (#xc1d4 ?¼å)
-   (#xc1d7 ?¼æ)
-   (#xc1d8 ?¼ç)
-   (#xc1e0 ?¼è)
-   (#xc1e4 ?¼é)
-   (#xc1e8 ?¼ê)
-   (#xc1f0 ?¼ë)
-   (#xc1f1 ?¼ì)
-   (#xc1f3 ?¼í)
-   (#xc1fc ?¼î)
-   (#xc1fd ?¼ï)
-   (#xc200 ?¼ð)
-   (#xc204 ?¼ñ)
-   (#xc20c ?¼ò)
-   (#xc20d ?¼ó)
-   (#xc20f ?¼ô)
-   (#xc211 ?¼õ)
-   (#xc218 ?¼ö)
-   (#xc219 ?¼÷)
-   (#xc21c ?¼ø)
-   (#xc21f ?¼ù)
-   (#xc220 ?¼ú)
-   (#xc228 ?¼û)
-   (#xc229 ?¼ü)
-   (#xc22b ?¼ý)
-   (#xc22d ?¼þ)
-   (#xc22f ?½¡)
-   (#xc231 ?½¢)
-   (#xc232 ?½£)
-   (#xc234 ?½¤)
-   (#xc248 ?½¥)
-   (#xc250 ?½¦)
-   (#xc251 ?½§)
-   (#xc254 ?½¨)
-   (#xc258 ?½©)
-   (#xc260 ?½ª)
-   (#xc265 ?½«)
-   (#xc26c ?½¬)
-   (#xc26d ?½­)
-   (#xc270 ?½®)
-   (#xc274 ?½¯)
-   (#xc27c ?½°)
-   (#xc27d ?½±)
-   (#xc27f ?½²)
-   (#xc281 ?½³)
-   (#xc288 ?½´)
-   (#xc289 ?½µ)
-   (#xc290 ?½¶)
-   (#xc298 ?½·)
-   (#xc29b ?½¸)
-   (#xc29d ?½¹)
-   (#xc2a4 ?½º)
-   (#xc2a5 ?½»)
-   (#xc2a8 ?½¼)
-   (#xc2ac ?½½)
-   (#xc2ad ?½¾)
-   (#xc2b4 ?½¿)
-   (#xc2b5 ?½À)
-   (#xc2b7 ?½Ã)
-   (#xc2b9 ?½Â)
-   (#xc2dc ?½Ã)
-   (#xc2dd ?½Ä)
-   (#xc2e0 ?½Å)
-   (#xc2e3 ?½Æ)
-   (#xc2e4 ?½Ç)
-   (#xc2eb ?½È)
-   (#xc2ec ?½É)
-   (#xc2ed ?½Ê)
-   (#xc2ef ?½Ë)
-   (#xc2f1 ?½Ì)
-   (#xc2f6 ?½Ã)
-   (#xc2f8 ?½Î)
-   (#xc2f9 ?½Ã)
-   (#xc2fb ?½Ã)
-   (#xc2fc ?½Ñ)
-   (#xc300 ?½Ò)
-   (#xc308 ?½Ó)
-   (#xc309 ?½Ô)
-   (#xc30c ?½Õ)
-   (#xc30d ?½Ö)
-   (#xc313 ?½×)
-   (#xc314 ?½Ø)
-   (#xc315 ?½Ù)
-   (#xc318 ?½Ú)
-   (#xc31c ?½Û)
-   (#xc324 ?½Ü)
-   (#xc325 ?½Ã)
-   (#xc328 ?½Þ)
-   (#xc329 ?½ß)
-   (#xc345 ?½à)
-   (#xc368 ?½á)
-   (#xc369 ?½â)
-   (#xc36c ?½ã)
-   (#xc370 ?½ä)
-   (#xc372 ?½å)
-   (#xc378 ?½æ)
-   (#xc379 ?½ç)
-   (#xc37c ?½è)
-   (#xc37d ?½é)
-   (#xc384 ?½ê)
-   (#xc388 ?½ë)
-   (#xc38c ?½ì)
-   (#xc3c0 ?½í)
-   (#xc3d8 ?½î)
-   (#xc3d9 ?½ï)
-   (#xc3dc ?½ð)
-   (#xc3df ?½ñ)
-   (#xc3e0 ?½ò)
-   (#xc3e2 ?½ó)
-   (#xc3e8 ?½ô)
-   (#xc3e9 ?½õ)
-   (#xc3ed ?½ö)
-   (#xc3f4 ?½÷)
-   (#xc3f5 ?½ø)
-   (#xc3f8 ?½ù)
-   (#xc408 ?½ú)
-   (#xc410 ?½û)
-   (#xc424 ?½ü)
-   (#xc42c ?½ý)
-   (#xc430 ?½þ)
-   (#xc434 ?¾¡)
-   (#xc43c ?¾¢)
-   (#xc43d ?¾£)
-   (#xc448 ?¾¤)
-   (#xc464 ?¾¥)
-   (#xc465 ?¾¦)
-   (#xc468 ?¾§)
-   (#xc46c ?¾¨)
-   (#xc474 ?¾©)
-   (#xc475 ?¾ª)
-   (#xc479 ?¾«)
-   (#xc480 ?¾¬)
-   (#xc494 ?¾­)
-   (#xc49c ?¾®)
-   (#xc4b8 ?¾¯)
-   (#xc4bc ?¾°)
-   (#xc4e9 ?¾±)
-   (#xc4f0 ?¾²)
-   (#xc4f1 ?¾³)
-   (#xc4f4 ?¾´)
-   (#xc4f8 ?¾µ)
-   (#xc4fa ?¾¶)
-   (#xc4ff ?¾·)
-   (#xc500 ?¾¸)
-   (#xc501 ?¾¹)
-   (#xc50c ?¾º)
-   (#xc510 ?¾»)
-   (#xc514 ?¾¼)
-   (#xc51c ?¾½)
-   (#xc528 ?¾¾)
-   (#xc529 ?¾¿)
-   (#xc52c ?¾À)
-   (#xc530 ?¾Ã)
-   (#xc538 ?¾Â)
-   (#xc539 ?¾Ã)
-   (#xc53b ?¾Ä)
-   (#xc53d ?¾Å)
-   (#xc544 ?¾Æ)
-   (#xc545 ?¾Ç)
-   (#xc548 ?¾È)
-   (#xc549 ?¾É)
-   (#xc54a ?¾Ê)
-   (#xc54c ?¾Ë)
-   (#xc54d ?¾Ì)
-   (#xc54e ?¾Ã)
-   (#xc553 ?¾Î)
-   (#xc554 ?¾Ã)
-   (#xc555 ?¾Ã)
-   (#xc557 ?¾Ñ)
-   (#xc558 ?¾Ò)
-   (#xc559 ?¾Ó)
-   (#xc55d ?¾Ô)
-   (#xc55e ?¾Õ)
-   (#xc560 ?¾Ö)
-   (#xc561 ?¾×)
-   (#xc564 ?¾Ø)
-   (#xc568 ?¾Ù)
-   (#xc570 ?¾Ú)
-   (#xc571 ?¾Û)
-   (#xc573 ?¾Ü)
-   (#xc574 ?¾Ã)
-   (#xc575 ?¾Þ)
-   (#xc57c ?¾ß)
-   (#xc57d ?¾à)
-   (#xc580 ?¾á)
-   (#xc584 ?¾â)
-   (#xc587 ?¾ã)
-   (#xc58c ?¾ä)
-   (#xc58d ?¾å)
-   (#xc58f ?¾æ)
-   (#xc591 ?¾ç)
-   (#xc595 ?¾è)
-   (#xc597 ?¾é)
-   (#xc598 ?¾ê)
-   (#xc59c ?¾ë)
-   (#xc5a0 ?¾ì)
-   (#xc5a9 ?¾í)
-   (#xc5b4 ?¾î)
-   (#xc5b5 ?¾ï)
-   (#xc5b8 ?¾ð)
-   (#xc5b9 ?¾ñ)
-   (#xc5bb ?¾ò)
-   (#xc5bc ?¾ó)
-   (#xc5bd ?¾ô)
-   (#xc5be ?¾õ)
-   (#xc5c4 ?¾ö)
-   (#xc5c5 ?¾÷)
-   (#xc5c6 ?¾ø)
-   (#xc5c7 ?¾ù)
-   (#xc5c8 ?¾ú)
-   (#xc5c9 ?¾û)
-   (#xc5ca ?¾ü)
-   (#xc5cc ?¾ý)
-   (#xc5ce ?¾þ)
-   (#xc5d0 ?¿¡)
-   (#xc5d1 ?¿¢)
-   (#xc5d4 ?¿£)
-   (#xc5d8 ?¿¤)
-   (#xc5e0 ?¿¥)
-   (#xc5e1 ?¿¦)
-   (#xc5e3 ?¿§)
-   (#xc5e5 ?¿¨)
-   (#xc5ec ?¿©)
-   (#xc5ed ?¿ª)
-   (#xc5ee ?¿«)
-   (#xc5f0 ?¿¬)
-   (#xc5f4 ?¿­)
-   (#xc5f6 ?¿®)
-   (#xc5f7 ?¿¯)
-   (#xc5fc ?¿°)
-   (#xc5fd ?¿±)
-   (#xc5fe ?¿²)
-   (#xc5ff ?¿³)
-   (#xc600 ?¿´)
-   (#xc601 ?¿µ)
-   (#xc605 ?¿¶)
-   (#xc606 ?¿·)
-   (#xc607 ?¿¸)
-   (#xc608 ?¿¹)
-   (#xc60c ?¿º)
-   (#xc610 ?¿»)
-   (#xc618 ?¿¼)
-   (#xc619 ?¿½)
-   (#xc61b ?¿¾)
-   (#xc61c ?¿¿)
-   (#xc624 ?¿À)
-   (#xc625 ?¿Ã)
-   (#xc628 ?¿Â)
-   (#xc62c ?¿Ã)
-   (#xc62d ?¿Ä)
-   (#xc62e ?¿Å)
-   (#xc630 ?¿Æ)
-   (#xc633 ?¿Ç)
-   (#xc634 ?¿È)
-   (#xc635 ?¿É)
-   (#xc637 ?¿Ê)
-   (#xc639 ?¿Ë)
-   (#xc63b ?¿Ì)
-   (#xc640 ?¿Ã)
-   (#xc641 ?¿Î)
-   (#xc644 ?¿Ã)
-   (#xc648 ?¿Ã)
-   (#xc650 ?¿Ñ)
-   (#xc651 ?¿Ò)
-   (#xc653 ?¿Ó)
-   (#xc654 ?¿Ô)
-   (#xc655 ?¿Õ)
-   (#xc65c ?¿Ö)
-   (#xc65d ?¿×)
-   (#xc660 ?¿Ø)
-   (#xc66c ?¿Ù)
-   (#xc66f ?¿Ú)
-   (#xc671 ?¿Û)
-   (#xc678 ?¿Ü)
-   (#xc679 ?¿Ã)
-   (#xc67c ?¿Þ)
-   (#xc680 ?¿ß)
-   (#xc688 ?¿à)
-   (#xc689 ?¿á)
-   (#xc68b ?¿â)
-   (#xc68d ?¿ã)
-   (#xc694 ?¿ä)
-   (#xc695 ?¿å)
-   (#xc698 ?¿æ)
-   (#xc69c ?¿ç)
-   (#xc6a4 ?¿è)
-   (#xc6a5 ?¿é)
-   (#xc6a7 ?¿ê)
-   (#xc6a9 ?¿ë)
-   (#xc6b0 ?¿ì)
-   (#xc6b1 ?¿í)
-   (#xc6b4 ?¿î)
-   (#xc6b8 ?¿ï)
-   (#xc6b9 ?¿ð)
-   (#xc6ba ?¿ñ)
-   (#xc6c0 ?¿ò)
-   (#xc6c1 ?¿ó)
-   (#xc6c3 ?¿ô)
-   (#xc6c5 ?¿õ)
-   (#xc6cc ?¿ö)
-   (#xc6cd ?¿÷)
-   (#xc6d0 ?¿ø)
-   (#xc6d4 ?¿ù)
-   (#xc6dc ?¿ú)
-   (#xc6dd ?¿û)
-   (#xc6e0 ?¿ü)
-   (#xc6e1 ?¿ý)
-   (#xc6e8 ?¿þ)
-   (#xc6e9 ?À¡)
-   (#xc6ec ?À¢)
-   (#xc6f0 ?À£)
-   (#xc6f8 ?À¤)
-   (#xc6f9 ?À¥)
-   (#xc6fd ?À¦)
-   (#xc704 ?ˤ)
-   (#xc705 ?ˬ)
-   (#xc708 ?À©)
-   (#xc70c ?˻)
-   (#xc714 ?À«)
-   (#xc715 ?À¬)
-   (#xc717 ?À­)
-   (#xc719 ?À®)
-   (#xc720 ?À¯)
-   (#xc721 ?À°)
-   (#xc724 ?˱)
-   (#xc728 ?À²)
-   (#xc730 ?À³)
-   (#xc731 ?À´)
-   (#xc733 ?˵)
-   (#xc735 ?˦)
-   (#xc737 ?À·)
-   (#xc73c ?À¸)
-   (#xc73d ?À¹)
-   (#xc740 ?˼)
-   (#xc744 ?À»)
-   (#xc74a ?À¼)
-   (#xc74c ?À½)
-   (#xc74d ?À¾)
-   (#xc74f ?À¿)
-   (#xc751 ?ÀÀ)
-   (#xc752 ?ÀÃ)
-   (#xc753 ?ÀÂ)
-   (#xc754 ?ÀÃ)
-   (#xc755 ?ÀÄ)
-   (#xc756 ?ÀÅ)
-   (#xc757 ?ÀÆ)
-   (#xc758 ?ÀÇ)
-   (#xc75c ?ÀÈ)
-   (#xc760 ?ÀÉ)
-   (#xc768 ?ÀÊ)
-   (#xc76b ?ÀË)
-   (#xc774 ?ÀÌ)
-   (#xc775 ?ÀÃ)
-   (#xc778 ?ÀÎ)
-   (#xc77c ?ÀÃ)
-   (#xc77d ?ÀÃ)
-   (#xc77e ?ÀÑ)
-   (#xc783 ?ÀÒ)
-   (#xc784 ?ÀÓ)
-   (#xc785 ?ÀÔ)
-   (#xc787 ?ÀÕ)
-   (#xc788 ?ÀÖ)
-   (#xc789 ?À×)
-   (#xc78a ?ÀØ)
-   (#xc78e ?ÀÙ)
-   (#xc790 ?ÀÚ)
-   (#xc791 ?ÀÛ)
-   (#xc794 ?ÀÜ)
-   (#xc796 ?ÀÃ)
-   (#xc797 ?ÀÞ)
-   (#xc798 ?Àß)
-   (#xc79a ?Àà)
-   (#xc7a0 ?Àá)
-   (#xc7a1 ?Àâ)
-   (#xc7a3 ?Àã)
-   (#xc7a4 ?Àä)
-   (#xc7a5 ?Àå)
-   (#xc7a6 ?Àæ)
-   (#xc7ac ?Àç)
-   (#xc7ad ?Àè)
-   (#xc7b0 ?Àé)
-   (#xc7b4 ?Àê)
-   (#xc7bc ?Àë)
-   (#xc7bd ?Àì)
-   (#xc7bf ?Àí)
-   (#xc7c0 ?Àî)
-   (#xc7c1 ?Àï)
-   (#xc7c8 ?Àð)
-   (#xc7c9 ?Àñ)
-   (#xc7cc ?Àò)
-   (#xc7ce ?Àó)
-   (#xc7d0 ?Àô)
-   (#xc7d8 ?Àõ)
-   (#xc7dd ?Àö)
-   (#xc7e4 ?À÷)
-   (#xc7e8 ?Àø)
-   (#xc7ec ?Àù)
-   (#xc800 ?Àú)
-   (#xc801 ?Àû)
-   (#xc804 ?Àü)
-   (#xc808 ?Àý)
-   (#xc80a ?Àþ)
-   (#xc810 ?á)
-   (#xc811 ?â)
-   (#xc813 ?ã)
-   (#xc815 ?ä)
-   (#xc816 ?ÃÂ¥)
-   (#xc81c ?æ)
-   (#xc81d ?ç)
-   (#xc820 ?è)
-   (#xc824 ?é)
-   (#xc82c ?ê)
-   (#xc82d ?ë)
-   (#xc82f ?ì)
-   (#xc831 ?í)
-   (#xc838 ?î)
-   (#xc83c ?ï)
-   (#xc840 ?ð)
-   (#xc848 ?ñ)
-   (#xc849 ?ò)
-   (#xc84c ?ó)
-   (#xc84d ?ô)
-   (#xc854 ?õ)
-   (#xc870 ?ö)
-   (#xc871 ?÷)
-   (#xc874 ?ø)
-   (#xc878 ?ù)
-   (#xc87a ?ú)
-   (#xc880 ?û)
-   (#xc881 ?ü)
-   (#xc883 ?ý)
-   (#xc885 ?þ)
-   (#xc886 ?ÿ)
-   (#xc887 ?ÃÀ)
-   (#xc88b ?ÃÃ)
-   (#xc88c ?ÃÂ)
-   (#xc88d ?ÃÃ)
-   (#xc894 ?ÃÄ)
-   (#xc89d ?ÃÃ…)
-   (#xc89f ?ÃÆ)
-   (#xc8a1 ?ÃÇ)
-   (#xc8a8 ?ÃÈ)
-   (#xc8bc ?ÃÉ)
-   (#xc8bd ?ÃÊ)
-   (#xc8c4 ?ÃË)
-   (#xc8c8 ?ÃÃŒ)
-   (#xc8cc ?ÃÃ)
-   (#xc8d4 ?ÃÃŽ)
-   (#xc8d5 ?ÃÃ)
-   (#xc8d7 ?ÃÃ)
-   (#xc8d9 ?ÃÑ)
-   (#xc8e0 ?ÃÃ’)
-   (#xc8e1 ?ÃÓ)
-   (#xc8e4 ?ÃÔ)
-   (#xc8f5 ?ÃÕ)
-   (#xc8fc ?ÃÖ)
-   (#xc8fd ?Ã×)
-   (#xc900 ?ÃØ)
-   (#xc904 ?ÃÙ)
-   (#xc905 ?ÃÚ)
-   (#xc906 ?ÃÛ)
-   (#xc90c ?ÃÃœ)
-   (#xc90d ?ÃÃ)
-   (#xc90f ?ÃÞ)
-   (#xc911 ?Ãß)
-   (#xc918 ?Ãà)
-   (#xc92c ?Ãá)
-   (#xc934 ?Ãâ)
-   (#xc950 ?Ãã)
-   (#xc951 ?Ãä)
-   (#xc954 ?ÃÃ¥)
-   (#xc958 ?Ãæ)
-   (#xc960 ?Ãç)
-   (#xc961 ?Ãè)
-   (#xc963 ?Ãé)
-   (#xc96c ?Ãê)
-   (#xc970 ?Ãë)
-   (#xc974 ?Ãì)
-   (#xc97c ?Ãí)
-   (#xc988 ?Ãî)
-   (#xc989 ?Ãï)
-   (#xc98c ?Ãð)
-   (#xc990 ?Ãñ)
-   (#xc998 ?Ãò)
-   (#xc999 ?Ãó)
-   (#xc99b ?Ãô)
-   (#xc99d ?Ãõ)
-   (#xc9c0 ?Ãö)
-   (#xc9c1 ?Ã÷)
-   (#xc9c4 ?Ãø)
-   (#xc9c7 ?Ãù)
-   (#xc9c8 ?Ãú)
-   (#xc9ca ?Ãû)
-   (#xc9d0 ?Ãü)
-   (#xc9d1 ?Ãý)
-   (#xc9d3 ?Ãþ)
-   (#xc9d5 ?¡)
-   (#xc9d6 ?¢)
-   (#xc9d9 ?£)
-   (#xc9da ?¤)
-   (#xc9dc ?Â¥)
-   (#xc9dd ?¦)
-   (#xc9e0 ?§)
-   (#xc9e2 ?¨)
-   (#xc9e4 ?©)
-   (#xc9e7 ?ª)
-   (#xc9ec ?«)
-   (#xc9ed ?¬)
-   (#xc9ef ?­)
-   (#xc9f0 ?®)
-   (#xc9f1 ?¯)
-   (#xc9f8 ?°)
-   (#xc9f9 ?±)
-   (#xc9fc ?²)
-   (#xca00 ?³)
-   (#xca08 ?´)
-   (#xca09 ?µ)
-   (#xca0b ?¶)
-   (#xca0c ?·)
-   (#xca0d ?¸)
-   (#xca14 ?¹)
-   (#xca18 ?º)
-   (#xca29 ?»)
-   (#xca4c ?¼)
-   (#xca4d ?½)
-   (#xca50 ?¾)
-   (#xca54 ?¿)
-   (#xca5c ?ÂÀ)
-   (#xca5d ?ÂÃ)
-   (#xca5f ?ÂÂ)
-   (#xca60 ?ÂÃ)
-   (#xca61 ?ÂÄ)
-   (#xca68 ?ÂÅ)
-   (#xca7d ?ÂÆ)
-   (#xca84 ?ÂÇ)
-   (#xca98 ?ÂÈ)
-   (#xcabc ?ÂÉ)
-   (#xcabd ?ÂÊ)
-   (#xcac0 ?ÂË)
-   (#xcac4 ?ÂÌ)
-   (#xcacc ?ÂÃ)
-   (#xcacd ?ÂÎ)
-   (#xcacf ?ÂÃ)
-   (#xcad1 ?ÂÃ)
-   (#xcad3 ?ÂÑ)
-   (#xcad8 ?ÂÒ)
-   (#xcad9 ?ÂÓ)
-   (#xcae0 ?ÂÔ)
-   (#xcaec ?ÂÕ)
-   (#xcaf4 ?ÂÖ)
-   (#xcb08 ?Â×)
-   (#xcb10 ?ÂØ)
-   (#xcb14 ?ÂÙ)
-   (#xcb18 ?ÂÚ)
-   (#xcb20 ?ÂÛ)
-   (#xcb21 ?ÂÜ)
-   (#xcb41 ?ÂÃ)
-   (#xcb48 ?ÂÞ)
-   (#xcb49 ?Âß)
-   (#xcb4c ?Âà)
-   (#xcb50 ?Âá)
-   (#xcb58 ?Ââ)
-   (#xcb59 ?Âã)
-   (#xcb5d ?Âä)
-   (#xcb64 ?Âå)
-   (#xcb78 ?Âæ)
-   (#xcb79 ?Âç)
-   (#xcb9c ?Âè)
-   (#xcbb8 ?Âé)
-   (#xcbd4 ?Âê)
-   (#xcbe4 ?Âë)
-   (#xcbe7 ?Âì)
-   (#xcbe9 ?Âí)
-   (#xcc0c ?Âî)
-   (#xcc0d ?Âï)
-   (#xcc10 ?Âð)
-   (#xcc14 ?Âñ)
-   (#xcc1c ?Âò)
-   (#xcc1d ?Âó)
-   (#xcc21 ?Âô)
-   (#xcc22 ?Âõ)
-   (#xcc27 ?Âö)
-   (#xcc28 ?Â÷)
-   (#xcc29 ?Âø)
-   (#xcc2c ?Âù)
-   (#xcc2e ?Âú)
-   (#xcc30 ?Âû)
-   (#xcc38 ?Âü)
-   (#xcc39 ?Âý)
-   (#xcc3b ?Âþ)
-   (#xcc3c ?á)
-   (#xcc3d ?â)
-   (#xcc3e ?ã)
-   (#xcc44 ?ä)
-   (#xcc45 ?Ã¥)
-   (#xcc48 ?æ)
-   (#xcc4c ?ç)
-   (#xcc54 ?è)
-   (#xcc55 ?é)
-   (#xcc57 ?ê)
-   (#xcc58 ?ë)
-   (#xcc59 ?ì)
-   (#xcc60 ?í)
-   (#xcc64 ?î)
-   (#xcc66 ?ï)
-   (#xcc68 ?ð)
-   (#xcc70 ?ñ)
-   (#xcc75 ?ò)
-   (#xcc98 ?ó)
-   (#xcc99 ?ô)
-   (#xcc9c ?õ)
-   (#xcca0 ?ö)
-   (#xcca8 ?÷)
-   (#xcca9 ?ø)
-   (#xccab ?ù)
-   (#xccac ?ú)
-   (#xccad ?û)
-   (#xccb4 ?ü)
-   (#xccb5 ?ý)
-   (#xccb8 ?þ)
-   (#xccbc ?ÿ)
-   (#xccc4 ?ÃÀ)
-   (#xccc5 ?ÃÃ)
-   (#xccc7 ?ÃÂ)
-   (#xccc9 ?ÃÃ)
-   (#xccd0 ?ÃÄ)
-   (#xccd4 ?ÃÅ)
-   (#xcce4 ?ÃÆ)
-   (#xccec ?ÃÇ)
-   (#xccf0 ?ÃÈ)
-   (#xcd01 ?ÃÉ)
-   (#xcd08 ?ÃÊ)
-   (#xcd09 ?ÃË)
-   (#xcd0c ?ÃÌ)
-   (#xcd10 ?ÃÃ)
-   (#xcd18 ?ÃÎ)
-   (#xcd19 ?ÃÃ)
-   (#xcd1b ?ÃÃ)
-   (#xcd1d ?ÃÑ)
-   (#xcd24 ?ÃÒ)
-   (#xcd28 ?ÃÓ)
-   (#xcd2c ?ÃÔ)
-   (#xcd39 ?ÃÕ)
-   (#xcd5c ?ÃÖ)
-   (#xcd60 ?Ã×)
-   (#xcd64 ?ÃØ)
-   (#xcd6c ?ÃÙ)
-   (#xcd6d ?ÃÚ)
-   (#xcd6f ?ÃÛ)
-   (#xcd71 ?ÃÜ)
-   (#xcd78 ?ÃÃ)
-   (#xcd88 ?ÃÞ)
-   (#xcd94 ?Ãß)
-   (#xcd95 ?Ãà)
-   (#xcd98 ?Ãá)
-   (#xcd9c ?Ãâ)
-   (#xcda4 ?Ãã)
-   (#xcda5 ?Ãä)
-   (#xcda7 ?Ãå)
-   (#xcda9 ?Ãæ)
-   (#xcdb0 ?Ãç)
-   (#xcdc4 ?Ãè)
-   (#xcdcc ?Ãé)
-   (#xcdd0 ?Ãê)
-   (#xcde8 ?Ãë)
-   (#xcdec ?Ãì)
-   (#xcdf0 ?Ãí)
-   (#xcdf8 ?Ãî)
-   (#xcdf9 ?Ãï)
-   (#xcdfb ?Ãð)
-   (#xcdfd ?Ãñ)
-   (#xce04 ?Ãò)
-   (#xce08 ?Ãó)
-   (#xce0c ?Ãô)
-   (#xce14 ?Ãõ)
-   (#xce19 ?Ãö)
-   (#xce20 ?Ã÷)
-   (#xce21 ?Ãø)
-   (#xce24 ?Ãù)
-   (#xce28 ?Ãú)
-   (#xce30 ?Ãû)
-   (#xce31 ?Ãü)
-   (#xce33 ?Ãý)
-   (#xce35 ?Ãþ)
-   (#xce58 ?Ä¡)
-   (#xce59 ?Ä¢)
-   (#xce5c ?Ä£)
-   (#xce5f ?Ĥ)
-   (#xce60 ?Ä¥)
-   (#xce61 ?Ħ)
-   (#xce68 ?ħ)
-   (#xce69 ?Ĩ)
-   (#xce6b ?Ä©)
-   (#xce6d ?Ī)
-   (#xce74 ?Ä«)
-   (#xce75 ?Ĭ)
-   (#xce78 ?Ä­)
-   (#xce7c ?Ä®)
-   (#xce84 ?į)
-   (#xce85 ?Ä°)
-   (#xce87 ?ı)
-   (#xce89 ?IJ)
-   (#xce90 ?ij)
-   (#xce91 ?Ä´)
-   (#xce94 ?ĵ)
-   (#xce98 ?Ķ)
-   (#xcea0 ?Ä·)
-   (#xcea1 ?ĸ)
-   (#xcea3 ?Ĺ)
-   (#xcea4 ?ĺ)
-   (#xcea5 ?Ä»)
-   (#xceac ?ļ)
-   (#xcead ?Ľ)
-   (#xcec1 ?ľ)
-   (#xcee4 ?Ä¿)
-   (#xcee5 ?ÄÀ)
-   (#xcee8 ?ÄÃ)
-   (#xceeb ?ÄÂ)
-   (#xceec ?ÄÃ)
-   (#xcef4 ?ÄÄ)
-   (#xcef5 ?ÄÅ)
-   (#xcef7 ?ÄÆ)
-   (#xcef8 ?ÄÇ)
-   (#xcef9 ?ÄÈ)
-   (#xcf00 ?ÄÉ)
-   (#xcf01 ?ÄÊ)
-   (#xcf04 ?ÄË)
-   (#xcf08 ?ÄÌ)
-   (#xcf10 ?ÄÃ)
-   (#xcf11 ?ÄÎ)
-   (#xcf13 ?ÄÃ)
-   (#xcf15 ?ÄÃ)
-   (#xcf1c ?ÄÑ)
-   (#xcf20 ?ÄÒ)
-   (#xcf24 ?ÄÓ)
-   (#xcf2c ?ÄÔ)
-   (#xcf2d ?ÄÕ)
-   (#xcf2f ?ÄÖ)
-   (#xcf30 ?Ä×)
-   (#xcf31 ?ÄØ)
-   (#xcf38 ?ÄÙ)
-   (#xcf54 ?ÄÚ)
-   (#xcf55 ?ÄÛ)
-   (#xcf58 ?ÄÜ)
-   (#xcf5c ?ÄÃ)
-   (#xcf64 ?ÄÞ)
-   (#xcf65 ?Äß)
-   (#xcf67 ?Äà)
-   (#xcf69 ?Äá)
-   (#xcf70 ?Äâ)
-   (#xcf71 ?Äã)
-   (#xcf74 ?Ää)
-   (#xcf78 ?Äå)
-   (#xcf80 ?Äæ)
-   (#xcf85 ?Äç)
-   (#xcf8c ?Äè)
-   (#xcfa1 ?Äé)
-   (#xcfa8 ?Äê)
-   (#xcfb0 ?Äë)
-   (#xcfc4 ?Äì)
-   (#xcfe0 ?Äí)
-   (#xcfe1 ?Äî)
-   (#xcfe4 ?Äï)
-   (#xcfe8 ?Äð)
-   (#xcff0 ?Äñ)
-   (#xcff1 ?Äò)
-   (#xcff3 ?Äó)
-   (#xcff5 ?Äô)
-   (#xcffc ?Äõ)
-   (#xd000 ?Äö)
-   (#xd004 ?Ä÷)
-   (#xd011 ?Äø)
-   (#xd018 ?Äù)
-   (#xd02d ?Äú)
-   (#xd034 ?Äû)
-   (#xd035 ?Äü)
-   (#xd038 ?Äý)
-   (#xd03c ?Äþ)
-   (#xd044 ?Å¡)
-   (#xd045 ?Å¢)
-   (#xd047 ?Å£)
-   (#xd049 ?Ť)
-   (#xd050 ?Å¥)
-   (#xd054 ?Ŧ)
-   (#xd058 ?ŧ)
-   (#xd060 ?Ũ)
-   (#xd06c ?Å©)
-   (#xd06d ?Ū)
-   (#xd070 ?Å«)
-   (#xd074 ?Ŭ)
-   (#xd07c ?Å­)
-   (#xd07d ?Å®)
-   (#xd081 ?ů)
-   (#xd0a4 ?Å°)
-   (#xd0a5 ?ű)
-   (#xd0a8 ?Ų)
-   (#xd0ac ?ų)
-   (#xd0b4 ?Å´)
-   (#xd0b5 ?ŵ)
-   (#xd0b7 ?Ŷ)
-   (#xd0b9 ?Å·)
-   (#xd0c0 ?Ÿ)
-   (#xd0c1 ?Ź)
-   (#xd0c4 ?ź)
-   (#xd0c8 ?Å»)
-   (#xd0c9 ?ż)
-   (#xd0d0 ?Ž)
-   (#xd0d1 ?ž)
-   (#xd0d3 ?Å¿)
-   (#xd0d4 ?ÅÀ)
-   (#xd0d5 ?Ã…Ã)
-   (#xd0dc ?ÅÂ)
-   (#xd0dd ?ÅÃ)
-   (#xd0e0 ?ÅÄ)
-   (#xd0e4 ?Ã…Ã…)
-   (#xd0ec ?ÅÆ)
-   (#xd0ed ?ÅÇ)
-   (#xd0ef ?ÅÈ)
-   (#xd0f0 ?ÅÉ)
-   (#xd0f1 ?ÅÊ)
-   (#xd0f8 ?ÅË)
-   (#xd10d ?Ã…ÃŒ)
-   (#xd130 ?Ã…Ã)
-   (#xd131 ?Ã…ÃŽ)
-   (#xd134 ?Ã…Ã)
-   (#xd138 ?Ã…Ã)
-   (#xd13a ?ÅÑ)
-   (#xd140 ?Ã…Ã’)
-   (#xd141 ?ÅÓ)
-   (#xd143 ?ÅÔ)
-   (#xd144 ?ÅÕ)
-   (#xd145 ?ÅÖ)
-   (#xd14c ?Å×)
-   (#xd14d ?ÅØ)
-   (#xd150 ?ÅÙ)
-   (#xd154 ?ÅÚ)
-   (#xd15c ?ÅÛ)
-   (#xd15d ?Ã…Ãœ)
-   (#xd15f ?Ã…Ã)
-   (#xd161 ?ÅÞ)
-   (#xd168 ?Åß)
-   (#xd16c ?Åà)
-   (#xd17c ?Åá)
-   (#xd184 ?Åâ)
-   (#xd188 ?Åã)
-   (#xd1a0 ?Åä)
-   (#xd1a1 ?Ã…Ã¥)
-   (#xd1a4 ?Åæ)
-   (#xd1a8 ?Åç)
-   (#xd1b0 ?Åè)
-   (#xd1b1 ?Åé)
-   (#xd1b3 ?Åê)
-   (#xd1b5 ?Åë)
-   (#xd1ba ?Åì)
-   (#xd1bc ?Åí)
-   (#xd1c0 ?Åî)
-   (#xd1d8 ?Åï)
-   (#xd1f4 ?Åð)
-   (#xd1f8 ?Åñ)
-   (#xd207 ?Åò)
-   (#xd209 ?Åó)
-   (#xd210 ?Åô)
-   (#xd22c ?Åõ)
-   (#xd22d ?Åö)
-   (#xd230 ?Å÷)
-   (#xd234 ?Åø)
-   (#xd23c ?Åù)
-   (#xd23d ?Åú)
-   (#xd23f ?Åû)
-   (#xd241 ?Åü)
-   (#xd248 ?Åý)
-   (#xd25c ?Åþ)
-   (#xd264 ?Æ¡)
-   (#xd280 ?Æ¢)
-   (#xd281 ?Æ£)
-   (#xd284 ?Ƥ)
-   (#xd288 ?Æ¥)
-   (#xd290 ?Ʀ)
-   (#xd291 ?Ƨ)
-   (#xd295 ?ƨ)
-   (#xd29c ?Æ©)
-   (#xd2a0 ?ƪ)
-   (#xd2a4 ?Æ«)
-   (#xd2ac ?Ƭ)
-   (#xd2b1 ?Æ­)
-   (#xd2b8 ?Æ®)
-   (#xd2b9 ?Ư)
-   (#xd2bc ?Æ°)
-   (#xd2bf ?Ʊ)
-   (#xd2c0 ?Ʋ)
-   (#xd2c2 ?Ƴ)
-   (#xd2c8 ?Æ´)
-   (#xd2c9 ?Ƶ)
-   (#xd2cb ?ƶ)
-   (#xd2d4 ?Æ·)
-   (#xd2d8 ?Ƹ)
-   (#xd2dc ?ƹ)
-   (#xd2e4 ?ƺ)
-   (#xd2e5 ?Æ»)
-   (#xd2f0 ?Ƽ)
-   (#xd2f1 ?ƽ)
-   (#xd2f4 ?ƾ)
-   (#xd2f8 ?Æ¿)
-   (#xd300 ?ÆÀ)
-   (#xd301 ?ÆÃ)
-   (#xd303 ?ÆÂ)
-   (#xd305 ?ÆÃ)
-   (#xd30c ?ÆÄ)
-   (#xd30d ?ÆÅ)
-   (#xd30e ?ÆÆ)
-   (#xd310 ?ÆÇ)
-   (#xd314 ?ÆÈ)
-   (#xd316 ?ÆÉ)
-   (#xd31c ?ÆÊ)
-   (#xd31d ?ÆË)
-   (#xd31f ?ÆÌ)
-   (#xd320 ?ÆÃ)
-   (#xd321 ?ÆÎ)
-   (#xd325 ?ÆÃ)
-   (#xd328 ?ÆÃ)
-   (#xd329 ?ÆÑ)
-   (#xd32c ?ÆÒ)
-   (#xd330 ?ÆÓ)
-   (#xd338 ?ÆÔ)
-   (#xd339 ?ÆÕ)
-   (#xd33b ?ÆÖ)
-   (#xd33c ?Æ×)
-   (#xd33d ?ÆØ)
-   (#xd344 ?ÆÙ)
-   (#xd345 ?ÆÚ)
-   (#xd37c ?ÆÛ)
-   (#xd37d ?ÆÜ)
-   (#xd380 ?ÆÃ)
-   (#xd384 ?ÆÞ)
-   (#xd38c ?Æß)
-   (#xd38d ?Æà)
-   (#xd38f ?Æá)
-   (#xd390 ?Æâ)
-   (#xd391 ?Æã)
-   (#xd398 ?Æä)
-   (#xd399 ?Æå)
-   (#xd39c ?Ææ)
-   (#xd3a0 ?Æç)
-   (#xd3a8 ?Æè)
-   (#xd3a9 ?Æé)
-   (#xd3ab ?Æê)
-   (#xd3ad ?Æë)
-   (#xd3b4 ?Æì)
-   (#xd3b8 ?Æí)
-   (#xd3bc ?Æî)
-   (#xd3c4 ?Æï)
-   (#xd3c5 ?Æð)
-   (#xd3c8 ?Æñ)
-   (#xd3c9 ?Æò)
-   (#xd3d0 ?Æó)
-   (#xd3d8 ?Æô)
-   (#xd3e1 ?Æõ)
-   (#xd3e3 ?Æö)
-   (#xd3ec ?Æ÷)
-   (#xd3ed ?Æø)
-   (#xd3f0 ?Æù)
-   (#xd3f4 ?Æú)
-   (#xd3fc ?Æû)
-   (#xd3fd ?Æü)
-   (#xd3ff ?Æý)
-   (#xd401 ?Æþ)
-   (#xd408 ?Ç¡)
-   (#xd41d ?Ç¢)
-   (#xd440 ?Ç£)
-   (#xd444 ?Ǥ)
-   (#xd45c ?Ç¥)
-   (#xd460 ?Ǧ)
-   (#xd464 ?ǧ)
-   (#xd46d ?Ǩ)
-   (#xd46f ?Ç©)
-   (#xd478 ?Ǫ)
-   (#xd479 ?Ç«)
-   (#xd47c ?Ǭ)
-   (#xd47f ?Ç­)
-   (#xd480 ?Ç®)
-   (#xd482 ?ǯ)
-   (#xd488 ?Ç°)
-   (#xd489 ?DZ)
-   (#xd48b ?Dz)
-   (#xd48d ?dz)
-   (#xd494 ?Ç´)
-   (#xd4a9 ?ǵ)
-   (#xd4cc ?Ƕ)
-   (#xd4d0 ?Ç·)
-   (#xd4d4 ?Ǹ)
-   (#xd4dc ?ǹ)
-   (#xd4df ?Ǻ)
-   (#xd4e8 ?Ç»)
-   (#xd4ec ?Ǽ)
-   (#xd4f0 ?ǽ)
-   (#xd4f8 ?Ǿ)
-   (#xd4fb ?Ç¿)
-   (#xd4fd ?ÇÀ)
-   (#xd504 ?ÇÃ)
-   (#xd508 ?ÇÂ)
-   (#xd50c ?ÇÃ)
-   (#xd514 ?ÇÄ)
-   (#xd515 ?ÇÅ)
-   (#xd517 ?ÇÆ)
-   (#xd53c ?ÇÇ)
-   (#xd53d ?ÇÈ)
-   (#xd540 ?ÇÉ)
-   (#xd544 ?ÇÊ)
-   (#xd54c ?ÇË)
-   (#xd54d ?ÇÌ)
-   (#xd54f ?ÇÃ)
-   (#xd551 ?ÇÎ)
-   (#xd558 ?ÇÃ)
-   (#xd559 ?ÇÃ)
-   (#xd55c ?ÇÑ)
-   (#xd560 ?ÇÒ)
-   (#xd565 ?ÇÓ)
-   (#xd568 ?ÇÔ)
-   (#xd569 ?ÇÕ)
-   (#xd56b ?ÇÖ)
-   (#xd56d ?Ç×)
-   (#xd574 ?ÇØ)
-   (#xd575 ?ÇÙ)
-   (#xd578 ?ÇÚ)
-   (#xd57c ?ÇÛ)
-   (#xd584 ?ÇÜ)
-   (#xd585 ?ÇÃ)
-   (#xd587 ?ÇÞ)
-   (#xd588 ?Çß)
-   (#xd589 ?Çà)
-   (#xd590 ?Çá)
-   (#xd5a5 ?Çâ)
-   (#xd5c8 ?Çã)
-   (#xd5c9 ?Çä)
-   (#xd5cc ?Çå)
-   (#xd5d0 ?Çæ)
-   (#xd5d2 ?Çç)
-   (#xd5d8 ?Çè)
-   (#xd5d9 ?Çé)
-   (#xd5db ?Çê)
-   (#xd5dd ?Çë)
-   (#xd5e4 ?Çì)
-   (#xd5e5 ?Çí)
-   (#xd5e8 ?Çî)
-   (#xd5ec ?Çï)
-   (#xd5f4 ?Çð)
-   (#xd5f5 ?Çñ)
-   (#xd5f7 ?Çò)
-   (#xd5f9 ?Çó)
-   (#xd600 ?Çô)
-   (#xd601 ?Çõ)
-   (#xd604 ?Çö)
-   (#xd608 ?Ç÷)
-   (#xd610 ?Çø)
-   (#xd611 ?Çù)
-   (#xd613 ?Çú)
-   (#xd614 ?Çû)
-   (#xd615 ?Çü)
-   (#xd61c ?Çý)
-   (#xd620 ?Çþ)
-   (#xd624 ?È¡)
-   (#xd62d ?È¢)
-   (#xd638 ?È£)
-   (#xd639 ?Ȥ)
-   (#xd63c ?È¥)
-   (#xd640 ?Ȧ)
-   (#xd645 ?ȧ)
-   (#xd648 ?Ȩ)
-   (#xd649 ?È©)
-   (#xd64b ?Ȫ)
-   (#xd64d ?È«)
-   (#xd651 ?Ȭ)
-   (#xd654 ?È­)
-   (#xd655 ?È®)
-   (#xd658 ?ȯ)
-   (#xd65c ?È°)
-   (#xd667 ?ȱ)
-   (#xd669 ?Ȳ)
-   (#xd670 ?ȳ)
-   (#xd671 ?È´)
-   (#xd674 ?ȵ)
-   (#xd683 ?ȶ)
-   (#xd685 ?È·)
-   (#xd68c ?ȸ)
-   (#xd68d ?ȹ)
-   (#xd690 ?Ⱥ)
-   (#xd694 ?È»)
-   (#xd69d ?ȼ)
-   (#xd69f ?Ƚ)
-   (#xd6a1 ?Ⱦ)
-   (#xd6a8 ?È¿)
-   (#xd6ac ?ÈÀ)
-   (#xd6b0 ?ÈÃ)
-   (#xd6b9 ?ÈÂ)
-   (#xd6bb ?ÈÃ)
-   (#xd6c4 ?ÈÄ)
-   (#xd6c5 ?ÈÅ)
-   (#xd6c8 ?ÈÆ)
-   (#xd6cc ?ÈÇ)
-   (#xd6d1 ?ÈÈ)
-   (#xd6d4 ?ÈÉ)
-   (#xd6d7 ?ÈÊ)
-   (#xd6d9 ?ÈË)
-   (#xd6e0 ?ÈÌ)
-   (#xd6e4 ?ÈÃ)
-   (#xd6e8 ?ÈÎ)
-   (#xd6f0 ?ÈÃ)
-   (#xd6f5 ?ÈÃ)
-   (#xd6fc ?ÈÑ)
-   (#xd6fd ?ÈÒ)
-   (#xd700 ?ÈÓ)
-   (#xd704 ?ÈÔ)
-   (#xd711 ?ÈÕ)
-   (#xd718 ?ÈÖ)
-   (#xd719 ?È×)
-   (#xd71c ?ÈØ)
-   (#xd720 ?ÈÙ)
-   (#xd728 ?ÈÚ)
-   (#xd729 ?ÈÛ)
-   (#xd72b ?ÈÜ)
-   (#xd72d ?ÈÃ)
-   (#xd734 ?ÈÞ)
-   (#xd735 ?Èß)
-   (#xd738 ?Èà)
-   (#xd73c ?Èá)
-   (#xd744 ?Èâ)
-   (#xd747 ?Èã)
-   (#xd749 ?Èä)
-   (#xd750 ?Èå)
-   (#xd751 ?Èæ)
-   (#xd754 ?Èç)
-   (#xd756 ?Èè)
-   (#xd757 ?Èé)
-   (#xd758 ?Èê)
-   (#xd759 ?Èë)
-   (#xd760 ?Èì)
-   (#xd761 ?Èí)
-   (#xd763 ?Èî)
-   (#xd765 ?Èï)
-   (#xd769 ?Èð)
-   (#xd76c ?Èñ)
-   (#xd770 ?Èò)
-   (#xd774 ?Èó)
-   (#xd77c ?Èô)
-   (#xd77d ?Èõ)
-   (#xd781 ?Èö)
-   (#xd788 ?È÷)
-   (#xd789 ?Èø)
-   (#xd78c ?Èù)
-   (#xd790 ?Èú)
-   (#xd798 ?Èû)
-   (#xd799 ?Èü)
-   (#xd79b ?Èý)
-   (#xd79d ?Èþ)
-   (#xf900 ?ËÃ)
-   (#xf901 ?ËÖ)
-   (#xf902 ?Ëç)
-   (#xf903 ?ÃÃ)
-   (#xf904 ?Ãè)
-   (#xf905 ?έ)
-   (#xf906 ?Ãû)
-   (#xf907 ?Т)
-   (#xf908 ?и)
-   (#xf909 ?ÃÃ)
-   (#xf90a ?ÃÃ)
-   (#xf90b ?ÑÔ)
-   (#xf90c ?ÑÕ)
-   (#xf90d ?ÑØ)
-   (#xf90e ?ÑÛ)
-   (#xf90f ?ÑÜ)
-   (#xf910 ?ÑÃ)
-   (#xf911 ?ÑÞ)
-   (#xf912 ?Ñß)
-   (#xf913 ?Ñà)
-   (#xf914 ?Ñâ)
-   (#xf915 ?Ñã)
-   (#xf916 ?Ñä)
-   (#xf917 ?Ñå)
-   (#xf918 ?Ñæ)
-   (#xf919 ?Ñè)
-   (#xf91a ?Ñé)
-   (#xf91b ?Ñê)
-   (#xf91c ?Ñë)
-   (#xf91d ?Ñí)
-   (#xf91e ?Ñï)
-   (#xf91f ?Ñð)
-   (#xf920 ?Ñò)
-   (#xf921 ?Ñö)
-   (#xf922 ?Ñú)
-   (#xf923 ?Ñü)
-   (#xf924 ?Ñý)
-   (#xf925 ?Ñþ)
-   (#xf926 ?Ò¢)
-   (#xf927 ?Ò£)
-   (#xf928 ?Ò§)
-   (#xf929 ?Ò¨)
-   (#xf92a ?Ò©)
-   (#xf92b ?Òª)
-   (#xf92c ?Ò«)
-   (#xf92d ?Ò­)
-   (#xf92e ?Ò²)
-   (#xf92f ?Ò¾)
-   (#xf930 ?ÒÂ)
-   (#xf931 ?ÒÃ)
-   (#xf932 ?ÒÄ)
-   (#xf933 ?ÒÆ)
-   (#xf934 ?ÒÇ)
-   (#xf935 ?ÒÈ)
-   (#xf936 ?ÒÉ)
-   (#xf937 ?ÒÊ)
-   (#xf938 ?ÒË)
-   (#xf939 ?Ã’Ã)
-   (#xf93a ?Ã’ÃŽ)
-   (#xf93b ?Ã’Ã)
-   (#xf93c ?Ã’Ã)
-   (#xf93d ?ÒÑ)
-   (#xf93e ?Ã’Ã’)
-   (#xf93f ?ÒÓ)
-   (#xf940 ?ÒÔ)
-   (#xf941 ?ÒÕ)
-   (#xf942 ?ÒÖ)
-   (#xf943 ?Ò×)
-   (#xf944 ?ÒÙ)
-   (#xf945 ?ÒÚ)
-   (#xf946 ?ÒÞ)
-   (#xf947 ?Òß)
-   (#xf948 ?Òá)
-   (#xf949 ?Òâ)
-   (#xf94a ?Òä)
-   (#xf94b ?Ã’Ã¥)
-   (#xf94c ?Òæ)
-   (#xf94d ?Òç)
-   (#xf94e ?Òè)
-   (#xf94f ?Òé)
-   (#xf950 ?Òê)
-   (#xf951 ?Òë)
-   (#xf952 ?Òð)
-   (#xf953 ?Òñ)
-   (#xf954 ?Òò)
-   (#xf955 ?Òó)
-   (#xf956 ?Òô)
-   (#xf957 ?Òõ)
-   (#xf958 ?Ò÷)
-   (#xf959 ?Òø)
-   (#xf95a ?Ôæ)
-   (#xf95b ?Ôü)
-   (#xf95c ?Õ¥)
-   (#xf95d ?Õ«)
-   (#xf95e ?Õ®)
-   (#xf95f ?Ö¸)
-   (#xf960 ?ÖÃ)
-   (#xf961 ?×Ë)
-   (#xf962 ?×ä)
-   (#xf963 ?ÛÅ)
-   (#xf964 ?Ûä)
-   (#xf965 ?Ü¥)
-   (#xf966 ?Ý¥)
-   (#xf967 ?ÃÕ)
-   (#xf968 ?Ãô)
-   (#xf969 ?Þü)
-   (#xf96a ?Þþ)
-   (#xf96b ?ß³)
-   (#xf96c ?ßá)
-   (#xf96d ?ßè)
-   (#xf96e ?àñ)
-   (#xf96f ?á­)
-   (#xf970 ?áí)
-   (#xf971 ?ãõ)
-   (#xf972 ?ä¡)
-   (#xf973 ?ä©)
-   (#xf974 ?å®)
-   (#xf975 ?å±)
-   (#xf976 ?å²)
-   (#xf977 ?å¹)
-   (#xf978 ?å»)
-   (#xf979 ?å¼)
-   (#xf97a ?åÄ)
-   (#xf97b ?åÎ)
-   (#xf97c ?Ã¥Ã)
-   (#xf97d ?åÒ)
-   (#xf97e ?åÖ)
-   (#xf97f ?åú)
-   (#xf980 ?åû)
-   (#xf981 ?åü)
-   (#xf982 ?åþ)
-   (#xf983 ?æ¡)
-   (#xf984 ?æ¤)
-   (#xf985 ?æ§)
-   (#xf986 ?æ­)
-   (#xf987 ?æ¯)
-   (#xf988 ?æ°)
-   (#xf989 ?æ±)
-   (#xf98a ?æ³)
-   (#xf98b ?æ·)
-   (#xf98c ?æ¸)
-   (#xf98d ?æ¼)
-   (#xf98e ?æÄ)
-   (#xf98f ?æÆ)
-   (#xf990 ?æÇ)
-   (#xf991 ?æÊ)
-   (#xf992 ?æÒ)
-   (#xf993 ?æÖ)
-   (#xf994 ?æÙ)
-   (#xf995 ?æÜ)
-   (#xf996 ?æß)
-   (#xf997 ?æá)
-   (#xf998 ?æä)
-   (#xf999 ?æå)
-   (#xf99a ?ææ)
-   (#xf99b ?æè)
-   (#xf99c ?æê)
-   (#xf99d ?æë)
-   (#xf99e ?æì)
-   (#xf99f ?æï)
-   (#xf9a0 ?æñ)
-   (#xf9a1 ?æò)
-   (#xf9a2 ?æõ)
-   (#xf9a3 ?æö)
-   (#xf9a4 ?æ÷)
-   (#xf9a5 ?æù)
-   (#xf9a6 ?ç¡)
-   (#xf9a7 ?ç¦)
-   (#xf9a8 ?ç©)
-   (#xf9a9 ?çª)
-   (#xf9aa ?ç¬)
-   (#xf9ab ?ç­)
-   (#xf9ac ?ç°)
-   (#xf9ad ?ç¿)
-   (#xf9ae ?çÃ)
-   (#xf9af ?çÆ)
-   (#xf9b0 ?çÇ)
-   (#xf9b1 ?çË)
-   (#xf9b2 ?çÃ)
-   (#xf9b3 ?çÃ)
-   (#xf9b4 ?çÃ)
-   (#xf9b5 ?çÓ)
-   (#xf9b6 ?çß)
-   (#xf9b7 ?çä)
-   (#xf9b8 ?çæ)
-   (#xf9b9 ?ç÷)
-   (#xf9ba ?èç)
-   (#xf9bb ?èè)
-   (#xf9bc ?èð)
-   (#xf9bd ?èñ)
-   (#xf9be ?è÷)
-   (#xf9bf ?èù)
-   (#xf9c0 ?èû)
-   (#xf9c1 ?èþ)
-   (#xf9c2 ?é§)
-   (#xf9c3 ?é¬)
-   (#xf9c4 ?éÌ)
-   (#xf9c5 ?é÷)
-   (#xf9c6 ?êÃ)
-   (#xf9c7 ?êå)
-   (#xf9c8 ?êô)
-   (#xf9c9 ?ê÷)
-   (#xf9ca ?êü)
-   (#xf9cb ?êþ)
-   (#xf9cc ?ë¤)
-   (#xf9cd ?ë§)
-   (#xf9ce ?ë©)
-   (#xf9cf ?ëª)
-   (#xf9d0 ?ëº)
-   (#xf9d1 ?ë»)
-   (#xf9d2 ?ë½)
-   (#xf9d3 ?ëÃ)
-   (#xf9d4 ?ëÂ)
-   (#xf9d5 ?ëÆ)
-   (#xf9d6 ?ëÇ)
-   (#xf9d7 ?ëÌ)
-   (#xf9d8 ?ëÃ)
-   (#xf9d9 ?ëÃ)
-   (#xf9da ?ëÑ)
-   (#xf9db ?ëÒ)
-   (#xf9dc ?ëØ)
-   (#xf9dd ?ì¦)
-   (#xf9de ?ì§)
-   (#xf9df ?ìª)
-   (#xf9e0 ?ì¯)
-   (#xf9e1 ?ì°)
-   (#xf9e2 ?ì±)
-   (#xf9e3 ?ì²)
-   (#xf9e4 ?ìµ)
-   (#xf9e5 ?ì¸)
-   (#xf9e6 ?ìº)
-   (#xf9e7 ?ìÀ)
-   (#xf9e8 ?ìÃ)
-   (#xf9e9 ?ìÅ)
-   (#xf9ea ?ìÆ)
-   (#xf9eb ?ìÉ)
-   (#xf9ec ?ìÊ)
-   (#xf9ed ?ìÕ)
-   (#xf9ee ?ìÃ)
-   (#xf9ef ?ìÞ)
-   (#xf9f0 ?ìá)
-   (#xf9f1 ?ìä)
-   (#xf9f2 ?ìç)
-   (#xf9f3 ?ìè)
-   (#xf9f4 ?ì÷)
-   (#xf9f5 ?ìø)
-   (#xf9f6 ?ìú)
-   (#xf9f7 ?í¡)
-   (#xf9f8 ?í¢)
-   (#xf9f9 ?í£)
-   (#xf9fa ?íî)
-   (#xf9fb ?îÛ)
-   (#xf9fc ?ò½)
-   (#xf9fd ?òú)
-   (#xf9fe ?ó±)
-   (#xf9ff ?ô§)
-   (#xfa00 ?ôî)
-   (#xfa01 ?öô)
-   (#xfa02 ?öö)
-   (#xfa03 ?÷¸)
-   (#xfa04 ?÷È)
-   (#xfa05 ?÷Ó)
-   (#xfa06 ?øÛ)
-   (#xfa07 ?øð)
-   (#xfa08 ?ú¡)
-   (#xfa09 ?ú¢)
-   (#xfa0a ?úæ)
-   (#xfa0b ?ü©)
-   (#xff01 ?£¡)
-   (#xff02 ?£¢)
-   (#xff03 ?££)
-   (#xff04 ?£¤)
-   (#xff05 ?£¥)
-   (#xff06 ?£¦)
-   (#xff07 ?£§)
-   (#xff08 ?\£¨)
-   (#xff09 ?\£©)
-   (#xff0a ?£ª)
-   (#xff0b ?£«)
-   (#xff0c ?£¬)
-   (#xff0d ?£­)
-   (#xff0e ?£®)
-   (#xff0f ?£¯)
-   (#xff10 ?£°)
-   (#xff11 ?£±)
-   (#xff12 ?£²)
-   (#xff13 ?£³)
-   (#xff14 ?£´)
-   (#xff15 ?£µ)
-   (#xff16 ?£¶)
-   (#xff17 ?£·)
-   (#xff18 ?£¸)
-   (#xff19 ?£¹)
-   (#xff1a ?£º)
-   (#xff1b ?£»)
-   (#xff1c ?£¼)
-   (#xff1d ?£½)
-   (#xff1e ?£¾)
-   (#xff1f ?£¿)
-   (#xff20 ?£À)
-   (#xff21 ?£Ã)
-   (#xff22 ?£Â)
-   (#xff23 ?£Ã)
-   (#xff24 ?£Ä)
-   (#xff25 ?£Å)
-   (#xff26 ?£Æ)
-   (#xff27 ?£Ç)
-   (#xff28 ?£È)
-   (#xff29 ?£É)
-   (#xff2a ?£Ê)
-   (#xff2b ?£Ë)
-   (#xff2c ?£Ì)
-   (#xff2d ?£Ã)
-   (#xff2e ?£Î)
-   (#xff2f ?£Ã)
-   (#xff30 ?£Ã)
-   (#xff31 ?£Ñ)
-   (#xff32 ?£Ò)
-   (#xff33 ?£Ó)
-   (#xff34 ?£Ô)
-   (#xff35 ?£Õ)
-   (#xff36 ?£Ö)
-   (#xff37 ?£×)
-   (#xff38 ?£Ø)
-   (#xff39 ?£Ù)
-   (#xff3a ?£Ú)
-   (#xff3b ?\£Û)
-   (#xff3c ?¡¬)
-   (#xff3d ?\£Ã)
-   (#xff3e ?£Þ)
-   (#xff3f ?£ß)
-   (#xff40 ?£à)
-   (#xff41 ?£á)
-   (#xff42 ?£â)
-   (#xff43 ?£ã)
-   (#xff44 ?£ä)
-   (#xff45 ?£å)
-   (#xff46 ?£æ)
-   (#xff47 ?£ç)
-   (#xff48 ?£è)
-   (#xff49 ?£é)
-   (#xff4a ?£ê)
-   (#xff4b ?£ë)
-   (#xff4c ?£ì)
-   (#xff4d ?£í)
-   (#xff4e ?£î)
-   (#xff4f ?£ï)
-   (#xff50 ?£ð)
-   (#xff51 ?£ñ)
-   (#xff52 ?£ò)
-   (#xff53 ?£ó)
-   (#xff54 ?£ô)
-   (#xff55 ?£õ)
-   (#xff56 ?£ö)
-   (#xff57 ?£÷)
-   (#xff58 ?£ø)
-   (#xff59 ?£ù)
-   (#xff5a ?£ú)
-   (#xff5b ?\£û)
-   (#xff5c ?£ü)
-   (#xff5d ?\£ý)
-   (#xff5e ?¢¦)
-   (#xffe0 ?¡Ë)
-   (#xffe1 ?¡Ì)
-   (#xffe2 ?¡þ)
-   (#xffe3 ?£þ)
-   (#xffe5 ?¡Ã)
-   (#xffe6 ?£Ü)))
-
-;;; arch-tag: b978fd7b-d182-4f63-af47-a028e074c57f
-;;; subst-ksc.el ends here
index ff909f6bba7fbf480a6e2a98eaf46426c54a051c..9ed565eada73c22e6cc0c662b0cca41062f6aae0 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: Quail, TIT, cxterm
 
@@ -272,7 +275,7 @@ SPC, 6, 3, 4, or 7 specifing a tone (SPC:\e$(0?v(N\e(B, 6:\e$(0Dm(N\e(B, 3:\e$(0&9Vy\e
 
     (princ ";; Quail package `")
     (princ package)
-    (princ "' -*- coding:iso-2022-7bit; ")
+    (princ (format "' -*- coding:%s; " coding-system-for-write))
     (princ "byte-compile-disable-print-circle:t; -*-\n")
     (princ ";;   Generated by the command `titdic-convert'\n;;\tDate: ")
     (princ (current-time-string))
@@ -471,10 +474,8 @@ SPC, 6, 3, 4, or 7 specifing a tone (SPC:\e$(0?v(N\e(B, 6:\e$(0Dm(N\e(B, 3:\e$(0&9Vy\e
 Optional argument DIRNAME if specified is the directory name under which
 the generated Quail package is saved."
   (interactive "FTIT dictionary file: ")
-  (let ((coding-system-for-write 'iso-2022-7bit-unix))
+  (let ((coding-system-for-write nil))
     (with-temp-file  (tit-make-quail-package-file-name filename dirname)
-      ;; Explicitly speficy eol format to `unix'.
-      (set-buffer-file-coding-system 'iso-2022-7bit-unix)
       (let ((standard-output (current-buffer)))
        (with-temp-buffer
          (set-buffer-multibyte nil)
@@ -501,26 +502,25 @@ the generated Quail package is saved."
            (setq coding-system (nth 1 slot))
            (message "Decoding with coding system %s..." coding-system)
            (goto-char (point-min))
-           (decode-coding-region (point-min) (point-max) coding-system))
+           (decode-coding-region (point-min) (point-max) coding-system)
+           ;; Explicitly set eol format to `unix'.
+           (setq coding-system-for-write
+                 (coding-system-change-eol-conversion coding-system 'unix))
+           (remove-text-properties (point-min) (point-max) '(charset nil)))
 
+         (set-buffer-multibyte t)
          ;; Set point the starting position of the body part.
          (goto-char (point-min))
          (if (not (search-forward "\nBEGIN" nil t))
              (error "TIT dictionary can't be decoded correctly"))
 
-         ;; Process the header part in multibyte mode.
-         (with-current-buffer standard-output
-           (set-buffer-multibyte t))
-         (set-buffer-multibyte t)
+         ;; Process the header part.
          (forward-line 1)
          (narrow-to-region (point-min) (point))
          (tit-process-header filename)
          (widen)
 
-         ;; Process the body part.  For speed, we turn off multibyte facility.
-         (with-current-buffer standard-output
-           (set-buffer-multibyte nil))
-         (set-buffer-multibyte nil)
+         ;; Process the body part
          (tit-process-body))))))
 
 ;;;###autoload
@@ -1122,7 +1122,7 @@ the generated Quail package is saved."
   (or (file-readable-p filename)
       (error "%s does not exist" filename))
   (let ((tail quail-misc-package-ext-info)
-       (default-buffer-file-coding-system 'iso-2022-7bit)
+       coding-system-for-write
        slot
        name title dicfile coding quailfile converter copyright
        dicbuf)
@@ -1149,11 +1149,12 @@ the generated Quail package is saved."
              converter (nth 5 slot)
              copyright (nth 6 slot))
        (message "Converting %s to %s..." dicfile quailfile)
+       ;; Explicitly set eol format to `unix'.
+       (setq coding-system-for-write
+             (coding-system-change-eol-conversion coding 'unix))
        (with-temp-file (expand-file-name quailfile dirname)
-         ;; Explicitly speficy eol format to `unix'.
-         (set-buffer-file-coding-system 'iso-2022-7bit-unix)
-         (insert ";; Quail package `" name "' -*- coding:iso-2022-7bit; ")
-         (insert "byte-compile-disable-print-circle:t; -*-\n");
+         (insert (format ";; Quail package `%s' -*- coding:%s; " name coding))
+         (insert "byte-compile-disable-print-circle:t; -*-\n")
          (insert ";;   Generated by the command `miscdic-convert'\n")
          (insert ";;   Date: " (current-time-string) "\n")
          (insert ";;   Source dictionary file: " dicfile "\n")
@@ -1165,7 +1166,9 @@ the generated Quail package is saved."
          (insert ";;; Code:\n\n")
          (insert "(require 'quail)\n")
          (insert "(quail-define-package \"" name "\" \""
-                 (if (eq coding 'big5) "Chinese-BIG5" "Chinese-CNS")
+                 (if (eq coding 'big5) "Chinese-BIG5"
+                   (if (eq coding 'iso-2022-cn-ext) "Chinese-CNS"
+                     "Chinese-GB"))
                  "\" \"" title "\" t\n")
          (let* ((coding-system-for-read coding)
                 (dicbuf (find-file-noselect filename)))
@@ -1195,7 +1198,8 @@ to store generated Quail packages."
            command-line-args-left (cdr command-line-args-left))
       (if (file-directory-p filename)
          (dolist (file (directory-files filename t nil t))
-           (miscdic-convert file dir))
+           (or (file-directory-p file)
+               (miscdic-convert file dir)))
        (miscdic-convert filename dir))))
   (kill-emacs 0))
 
diff --git a/lisp/international/ucs-tables.el b/lisp/international/ucs-tables.el
deleted file mode 100644 (file)
index 772a0f0..0000000
+++ /dev/null
@@ -1,2549 +0,0 @@
-;;; ucs-tables.el --- translation to, from and via Unicode  -*- coding: iso-2022-7bit -*-
-
-;; Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007  Free Software Foundation, Inc.
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H14PRO021
-
-;; Author: Dave Love <fx@gnu.org>
-;; Keywords: i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; This file provides tables mapping between Unicode numbers and
-;; emacs-mule characters from the iso-8859 charsets (and others).  It
-;; also provides some auxiliary functions.
-
-;; These tables are used to construct other mappings between the Mule
-;; iso8859 charsets and the emacs-unicode charsets and a table that
-;; unifies iso-8859 characters using a single charset as far as
-;; possible.  These tables are used by latin1-disp.el to display some
-;; Unicode characters without a Unicode font and by utf-8.el to unify
-;; Latin-N as far as possible on encoding.
-
-;; More drastically, they can be used to unify 8859 into Latin-1 plus
-;; mule-unicode-0100-24ff on decoding, with the corresponding
-;; adjustments on encoding; see `ucs-unify-8859'.  Be wary of using
-;; unification when, for instance, editing Lisp files such as this one
-;; which are supposed to contain distinct 8859 charsets.  Also, it can
-;; make reading and writing of emacs-mule and iso-2022-based encodings
-;; not idempotent.
-
-;; Global minor modes are provided to unify on encoding and decoding.
-;; These could be extended to non-iso-8859 charsets.  However 8859 is
-;; all that users normally care about unifying although, for instance,
-;; Greek occurs in as many as nine Emacs charsets.
-
-;; The translation-table `utf-translation-table-for-encode' is
-;; populated, which could be used for more general unification on
-;; decoding.  This is used by the `mule-utf-8' coding system to encode
-;; extra characters, and also by the coding systems set up by
-;; code-pages.el.  The decoding tables here take account of
-;; `utf-fragment-on-decoding' which may specify decoding Greek and
-;; Cyrillic into 8859 charsets.
-
-;; Unification also arranges for `translation-table-for-input' to be
-;; set either globally or locally.  This is used to translate input
-;; characters appropriately for the buffer's coding system (if
-;; possible).  Unification on decoding sets it globally to translate
-;; to Unicode.  Unification on encoding uses hooks to set it up
-;; locally to buffers.  Thus in the latter case, typing `"a' into a
-;; Latin-1 buffer using the `latin-2-prefix' method translates the
-;; generated latin-iso8859-2 `\e,Bd\e(B' into latin-iso8859-1 `\e,Ad\e(B'.
-
-;; NB, this code depends on the default value of
-;; `enable-character-translation'.  (Making it nil would anyway lead
-;; to inconsistent behaviour between CCL-based coding systems which
-;; use explicit translation tables and the rest.)
-
-;; Command `ucs-insert' is convenient for inserting a given unicode.
-;; (See also the `ucs' input method.)
-
-;;; Code:
-
-;;; Define tables, to be populated later.
-
-(defvar ucs-mule-8859-to-ucs-table (make-translation-table)
-  "Char table from Emacs ISO-8859 characters to Unicode.
-This maps Emacs characters from the non-Latin-1
-...-iso8859-... charsets to their Unicode code points.  This is a
-many-to-one mapping.")
-
-(defvar ucs-mule-8859-to-mule-unicode (make-translation-table)
-  "Char table from Emacs ISO-8859 characters to Mule Unicode.
-This maps Emacs characters from the non-Latin-1
-...-iso8859-... charsets to characters from the
-mule-unicode-... charsets.  This is a many-to-one mapping.  The
-characters translated to are suitable for encoding using the
-`mule-utf-8' coding system.")
-
-;; (defvar ucs-ucs-to-mule-8859-table (make-translation-table)
-;;   "Translation table from Unicode to Emacs ISO-8859 characters.
-;; This maps Unicode code points to corresponding Emacs characters from
-;; the ...-iso8859-... charsets.  This is made a one-to-one mapping where
-;; the same character occurs in more than one set by preferring the Emacs
-;; iso-8859-N character with lowest N.")
-
-;; (defvar ucs-mule-unicode-to-mule-8859 (make-translation-table)
-;;   "Translation table from Mule Unicode to Emacs ISO-8859 characters.
-;; This maps non-Latin-1 Emacs characters from the
-;; mule-unicode-... charsets used by the `mule-utf-8' coding system to
-;; characters from the ...-iso8859-... charsets.  This is made a
-;; one-to-one mapping where the same character occurs in more than one
-;; set by preferring the Emacs iso-8859-N character with lowest N.")
-
-(defvar ucs-8859-1-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-2.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(defvar ucs-8859-2-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-2.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(defvar ucs-8859-3-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-3.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(defvar ucs-8859-4-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-4.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(defvar ucs-8859-5-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-5.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(defvar ucs-8859-7-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-7.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(defvar ucs-8859-8-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-8.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(defvar ucs-8859-9-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-9.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(defvar ucs-8859-14-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-14.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(defvar ucs-8859-15-encode-table nil
-  "Used as `translation-table-for-encode' for iso-8859-15.
-Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
-
-(setq translation-table-for-input (make-translation-table))
-;; It will normally be set locally, before the major mode is invoked.
-(put 'translation-table-for-input 'permanent-local t)
-
-(define-translation-table 'ucs-translation-table-for-decode)
-
-;;; Set up the tables.
-
-;; Most of these tables were derived from ones in Mule-UCS.
-
-;; There doesn't seem to be a need to make these let bindings into
-;; defvars, so we'll let the data get GC'ed.
-(let ((ucs-8859-2-alist
-       '((?\\e,B \e(B . ?\x00A0) ;; NO-BREAK SPACE
-        (?\\e,B!\e(B . ?\x0104) ;; LATIN CAPITAL LETTER A WITH OGONEK
-        (?\\e,B"\e(B . ?\x02D8) ;; BREVE
-        (?\\e,B#\e(B . ?\x0141) ;; LATIN CAPITAL LETTER L WITH STROKE
-        (?\\e,B$\e(B . ?\x00A4) ;; CURRENCY SIGN
-        (?\\e,B%\e(B . ?\x013D) ;; LATIN CAPITAL LETTER L WITH CARON
-        (?\\e,B&\e(B . ?\x015A) ;; LATIN CAPITAL LETTER S WITH ACUTE
-        (?\\e,B'\e(B . ?\x00A7) ;; SECTION SIGN
-        (?\\e,B(\e(B . ?\x00A8) ;; DIAERESIS
-        (?\\e,B)\e(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON
-        (?\\e,B*\e(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA
-        (?\\e,B+\e(B . ?\x0164) ;; LATIN CAPITAL LETTER T WITH CARON
-        (?\\e,B,\e(B . ?\x0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE
-        (?\\e,B-\e(B . ?\x00AD) ;; SOFT HYPHEN
-        (?\\e,B.\e(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON
-        (?\\e,B/\e(B . ?\x017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE
-        (?\\e,B0\e(B . ?\x00B0) ;; DEGREE SIGN
-        (?\\e,B1\e(B . ?\x0105) ;; LATIN SMALL LETTER A WITH OGONEK
-        (?\\e,B2\e(B . ?\x02DB) ;; OGONEK
-        (?\\e,B3\e(B . ?\x0142) ;; LATIN SMALL LETTER L WITH STROKE
-        (?\\e,B4\e(B . ?\x00B4) ;; ACUTE ACCENT
-        (?\\e,B5\e(B . ?\x013E) ;; LATIN SMALL LETTER L WITH CARON
-        (?\\e,B6\e(B . ?\x015B) ;; LATIN SMALL LETTER S WITH ACUTE
-        (?\\e,B7\e(B . ?\x02C7) ;; CARON
-        (?\\e,B8\e(B . ?\x00B8) ;; CEDILLA
-        (?\\e,B9\e(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON
-        (?\\e,B:\e(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA
-        (?\\e,B;\e(B . ?\x0165) ;; LATIN SMALL LETTER T WITH CARON
-        (?\\e,B<\e(B . ?\x017A) ;; LATIN SMALL LETTER Z WITH ACUTE
-        (?\\e,B=\e(B . ?\x02DD) ;; DOUBLE ACUTE ACCENT
-        (?\\e,B>\e(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON
-        (?\\e,B?\e(B . ?\x017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE
-        (?\\e,B@\e(B . ?\x0154) ;; LATIN CAPITAL LETTER R WITH ACUTE
-        (?\\e,BA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
-        (?\\e,BB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-        (?\\e,BC\e(B . ?\x0102) ;; LATIN CAPITAL LETTER A WITH BREVE
-        (?\\e,BD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
-        (?\\e,BE\e(B . ?\x0139) ;; LATIN CAPITAL LETTER L WITH ACUTE
-        (?\\e,BF\e(B . ?\x0106) ;; LATIN CAPITAL LETTER C WITH ACUTE
-        (?\\e,BG\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
-        (?\\e,BH\e(B . ?\x010C) ;; LATIN CAPITAL LETTER C WITH CARON
-        (?\\e,BI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
-        (?\\e,BJ\e(B . ?\x0118) ;; LATIN CAPITAL LETTER E WITH OGONEK
-        (?\\e,BK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
-        (?\\e,BL\e(B . ?\x011A) ;; LATIN CAPITAL LETTER E WITH CARON
-        (?\\e,BM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
-        (?\\e,BN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-        (?\\e,BO\e(B . ?\x010E) ;; LATIN CAPITAL LETTER D WITH CARON
-        (?\\e,BP\e(B . ?\x0110) ;; LATIN CAPITAL LETTER D WITH STROKE
-        (?\\e,BQ\e(B . ?\x0143) ;; LATIN CAPITAL LETTER N WITH ACUTE
-        (?\\e,BR\e(B . ?\x0147) ;; LATIN CAPITAL LETTER N WITH CARON
-        (?\\e,BS\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
-        (?\\e,BT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-        (?\\e,BU\e(B . ?\x0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-        (?\\e,BV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
-        (?\\e,BW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
-        (?\\e,BX\e(B . ?\x0158) ;; LATIN CAPITAL LETTER R WITH CARON
-        (?\\e,BY\e(B . ?\x016E) ;; LATIN CAPITAL LETTER U WITH RING ABOVE
-        (?\\e,BZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
-        (?\\e,B[\e(B . ?\x0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-        (?\\e,B\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
-        (?\\e,B]\e(B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE
-        (?\\e,B^\e(B . ?\x0162) ;; LATIN CAPITAL LETTER T WITH CEDILLA
-        (?\\e,B_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
-        (?\\e,B`\e(B . ?\x0155) ;; LATIN SMALL LETTER R WITH ACUTE
-        (?\\e,Ba\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
-        (?\\e,Bb\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
-        (?\\e,Bc\e(B . ?\x0103) ;; LATIN SMALL LETTER A WITH BREVE
-        (?\\e,Bd\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
-        (?\\e,Be\e(B . ?\x013A) ;; LATIN SMALL LETTER L WITH ACUTE
-        (?\\e,Bf\e(B . ?\x0107) ;; LATIN SMALL LETTER C WITH ACUTE
-        (?\\e,Bg\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
-        (?\\e,Bh\e(B . ?\x010D) ;; LATIN SMALL LETTER C WITH CARON
-        (?\\e,Bi\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
-        (?\\e,Bj\e(B . ?\x0119) ;; LATIN SMALL LETTER E WITH OGONEK
-        (?\\e,Bk\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
-        (?\\e,Bl\e(B . ?\x011B) ;; LATIN SMALL LETTER E WITH CARON
-        (?\\e,Bm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
-        (?\\e,Bn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
-        (?\\e,Bo\e(B . ?\x010F) ;; LATIN SMALL LETTER D WITH CARON
-        (?\\e,Bp\e(B . ?\x0111) ;; LATIN SMALL LETTER D WITH STROKE
-        (?\\e,Bq\e(B . ?\x0144) ;; LATIN SMALL LETTER N WITH ACUTE
-        (?\\e,Br\e(B . ?\x0148) ;; LATIN SMALL LETTER N WITH CARON
-        (?\\e,Bs\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
-        (?\\e,Bt\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
-        (?\\e,Bu\e(B . ?\x0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE
-        (?\\e,Bv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
-        (?\\e,Bw\e(B . ?\x00F7) ;; DIVISION SIGN
-        (?\\e,Bx\e(B . ?\x0159) ;; LATIN SMALL LETTER R WITH CARON
-        (?\\e,By\e(B . ?\x016F) ;; LATIN SMALL LETTER U WITH RING ABOVE
-        (?\\e,Bz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
-        (?\\e,B{\e(B . ?\x0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE
-        (?\\e,B|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
-        (?\\e,B}\e(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE
-        (?\\e,B~\e(B . ?\x0163) ;; LATIN SMALL LETTER T WITH CEDILLA
-        (?\\e,B\7f\e(B . ?\x02D9) ;; DOT ABOVE
-        ))
-
-      (ucs-8859-3-alist
-       '((?\\e,C \e(B . ?\x00A0) ;; NO-BREAK SPACE
-        (?\\e,C!\e(B . ?\x0126) ;; LATIN CAPITAL LETTER H WITH STROKE
-        (?\\e,C"\e(B . ?\x02D8) ;; BREVE
-        (?\\e,C#\e(B . ?\x00A3) ;; POUND SIGN
-        (?\\e,C$\e(B . ?\x00A4) ;; CURRENCY SIGN
-        (?\\e,C&\e(B . ?\x0124) ;; LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-        (?\\e,C'\e(B . ?\x00A7) ;; SECTION SIGN
-        (?\\e,C(\e(B . ?\x00A8) ;; DIAERESIS
-        (?\\e,C)\e(B . ?\x0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE
-        (?\\e,C*\e(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA
-        (?\\e,C+\e(B . ?\x011E) ;; LATIN CAPITAL LETTER G WITH BREVE
-        (?\\e,C,\e(B . ?\x0134) ;; LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-        (?\\e,C-\e(B . ?\x00AD) ;; SOFT HYPHEN
-        (?\\e,C/\e(B . ?\x017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE
-        (?\\e,C0\e(B . ?\x00B0) ;; DEGREE SIGN
-        (?\\e,C1\e(B . ?\x0127) ;; LATIN SMALL LETTER H WITH STROKE
-        (?\\e,C2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
-        (?\\e,C3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
-        (?\\e,C4\e(B . ?\x00B4) ;; ACUTE ACCENT
-        (?\\e,C5\e(B . ?\x00B5) ;; MICRO SIGN
-        (?\\e,C6\e(B . ?\x0125) ;; LATIN SMALL LETTER H WITH CIRCUMFLEX
-        (?\\e,C7\e(B . ?\x00B7) ;; MIDDLE DOT
-        (?\\e,C8\e(B . ?\x00B8) ;; CEDILLA
-        (?\\e,C9\e(B . ?\x0131) ;; LATIN SMALL LETTER DOTLESS I
-        (?\\e,C:\e(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA
-        (?\\e,C;\e(B . ?\x011F) ;; LATIN SMALL LETTER G WITH BREVE
-        (?\\e,C<\e(B . ?\x0135) ;; LATIN SMALL LETTER J WITH CIRCUMFLEX
-        (?\\e,C=\e(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF
-        (?\\e,C?\e(B . ?\x017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE
-        (?\\e,C@\e(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE
-        (?\\e,CA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
-        (?\\e,CB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-        (?\\e,CD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
-        (?\\e,CE\e(B . ?\x010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE
-        (?\\e,CF\e(B . ?\x0108) ;; LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-        (?\\e,CG\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
-        (?\\e,CH\e(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE
-        (?\\e,CI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
-        (?\\e,CJ\e(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-        (?\\e,CK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
-        (?\\e,CL\e(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE
-        (?\\e,CM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
-        (?\\e,CN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-        (?\\e,CO\e(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
-        (?\\e,CQ\e(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE
-        (?\\e,CR\e(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE
-        (?\\e,CS\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
-        (?\\e,CT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-        (?\\e,CU\e(B . ?\x0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE
-        (?\\e,CV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
-        (?\\e,CW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
-        (?\\e,CX\e(B . ?\x011C) ;; LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-        (?\\e,CY\e(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE
-        (?\\e,CZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
-        (?\\e,C[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-        (?\\e,C\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
-        (?\\e,C]\e(B . ?\x016C) ;; LATIN CAPITAL LETTER U WITH BREVE
-        (?\\e,C^\e(B . ?\x015C) ;; LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-        (?\\e,C_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
-        (?\\e,C`\e(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE
-        (?\\e,Ca\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
-        (?\\e,Cb\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
-        (?\\e,Cd\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
-        (?\\e,Ce\e(B . ?\x010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE
-        (?\\e,Cf\e(B . ?\x0109) ;; LATIN SMALL LETTER C WITH CIRCUMFLEX
-        (?\\e,Cg\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
-        (?\\e,Ch\e(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE
-        (?\\e,Ci\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
-        (?\\e,Cj\e(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
-        (?\\e,Ck\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
-        (?\\e,Cl\e(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE
-        (?\\e,Cm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
-        (?\\e,Cn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
-        (?\\e,Co\e(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
-        (?\\e,Cq\e(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE
-        (?\\e,Cr\e(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE
-        (?\\e,Cs\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
-        (?\\e,Ct\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
-        (?\\e,Cu\e(B . ?\x0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE
-        (?\\e,Cv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
-        (?\\e,Cw\e(B . ?\x00F7) ;; DIVISION SIGN
-        (?\\e,Cx\e(B . ?\x011D) ;; LATIN SMALL LETTER G WITH CIRCUMFLEX
-        (?\\e,Cy\e(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE
-        (?\\e,Cz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
-        (?\\e,C{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
-        (?\\e,C|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
-        (?\\e,C}\e(B . ?\x016D) ;; LATIN SMALL LETTER U WITH BREVE
-        (?\\e,C~\e(B . ?\x015D) ;; LATIN SMALL LETTER S WITH CIRCUMFLEX
-        (?\\e,C\7f\e(B . ?\x02D9) ;; DOT ABOVE
-        ))
-
-      (ucs-8859-4-alist
-       '((?\\e,D \e(B . ?\x00A0) ;; NO-BREAK SPACE
-        (?\\e,D!\e(B . ?\x0104) ;; LATIN CAPITAL LETTER A WITH OGONEK
-        (?\\e,D"\e(B . ?\x0138) ;; LATIN SMALL LETTER KRA
-        (?\\e,D#\e(B . ?\x0156) ;; LATIN CAPITAL LETTER R WITH CEDILLA
-        (?\\e,D$\e(B . ?\x00A4) ;; CURRENCY SIGN
-        (?\\e,D%\e(B . ?\x0128) ;; LATIN CAPITAL LETTER I WITH TILDE
-        (?\\e,D&\e(B . ?\x013B) ;; LATIN CAPITAL LETTER L WITH CEDILLA
-        (?\\e,D'\e(B . ?\x00A7) ;; SECTION SIGN
-        (?\\e,D(\e(B . ?\x00A8) ;; DIAERESIS
-        (?\\e,D)\e(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON
-        (?\\e,D*\e(B . ?\x0112) ;; LATIN CAPITAL LETTER E WITH MACRON
-        (?\\e,D+\e(B . ?\x0122) ;; LATIN CAPITAL LETTER G WITH CEDILLA
-        (?\\e,D,\e(B . ?\x0166) ;; LATIN CAPITAL LETTER T WITH STROKE
-        (?\\e,D-\e(B . ?\x00AD) ;; SOFT HYPHEN
-        (?\\e,D.\e(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON
-        (?\\e,D/\e(B . ?\x00AF) ;; MACRON
-        (?\\e,D0\e(B . ?\x00B0) ;; DEGREE SIGN
-        (?\\e,D1\e(B . ?\x0105) ;; LATIN SMALL LETTER A WITH OGONEK
-        (?\\e,D2\e(B . ?\x02DB) ;; OGONEK
-        (?\\e,D3\e(B . ?\x0157) ;; LATIN SMALL LETTER R WITH CEDILLA
-        (?\\e,D4\e(B . ?\x00B4) ;; ACUTE ACCENT
-        (?\\e,D5\e(B . ?\x0129) ;; LATIN SMALL LETTER I WITH TILDE
-        (?\\e,D6\e(B . ?\x013C) ;; LATIN SMALL LETTER L WITH CEDILLA
-        (?\\e,D7\e(B . ?\x02C7) ;; CARON
-        (?\\e,D8\e(B . ?\x00B8) ;; CEDILLA
-        (?\\e,D9\e(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON
-        (?\\e,D:\e(B . ?\x0113) ;; LATIN SMALL LETTER E WITH MACRON
-        (?\\e,D;\e(B . ?\x0123) ;; LATIN SMALL LETTER G WITH CEDILLA
-        (?\\e,D<\e(B . ?\x0167) ;; LATIN SMALL LETTER T WITH STROKE
-        (?\\e,D=\e(B . ?\x014A) ;; LATIN CAPITAL LETTER ENG
-        (?\\e,D>\e(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON
-        (?\\e,D?\e(B . ?\x014B) ;; LATIN SMALL LETTER ENG
-        (?\\e,D@\e(B . ?\x0100) ;; LATIN CAPITAL LETTER A WITH MACRON
-        (?\\e,DA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
-        (?\\e,DB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-        (?\\e,DC\e(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE
-        (?\\e,DD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
-        (?\\e,DE\e(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE
-        (?\\e,DF\e(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE
-        (?\\e,DG\e(B . ?\x012E) ;; LATIN CAPITAL LETTER I WITH OGONEK
-        (?\\e,DH\e(B . ?\x010C) ;; LATIN CAPITAL LETTER C WITH CARON
-        (?\\e,DI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
-        (?\\e,DJ\e(B . ?\x0118) ;; LATIN CAPITAL LETTER E WITH OGONEK
-        (?\\e,DK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
-        (?\\e,DL\e(B . ?\x0116) ;; LATIN CAPITAL LETTER E WITH DOT ABOVE
-        (?\\e,DM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
-        (?\\e,DN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-        (?\\e,DO\e(B . ?\x012A) ;; LATIN CAPITAL LETTER I WITH MACRON
-        (?\\e,DP\e(B . ?\x0110) ;; LATIN CAPITAL LETTER D WITH STROKE
-        (?\\e,DQ\e(B . ?\x0145) ;; LATIN CAPITAL LETTER N WITH CEDILLA
-        (?\\e,DR\e(B . ?\x014C) ;; LATIN CAPITAL LETTER O WITH MACRON
-        (?\\e,DS\e(B . ?\x0136) ;; LATIN CAPITAL LETTER K WITH CEDILLA
-        (?\\e,DT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-        (?\\e,DU\e(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE
-        (?\\e,DV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
-        (?\\e,DW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
-        (?\\e,DX\e(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE
-        (?\\e,DY\e(B . ?\x0172) ;; LATIN CAPITAL LETTER U WITH OGONEK
-        (?\\e,DZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
-        (?\\e,D[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-        (?\\e,D\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
-        (?\\e,D]\e(B . ?\x0168) ;; LATIN CAPITAL LETTER U WITH TILDE
-        (?\\e,D^\e(B . ?\x016A) ;; LATIN CAPITAL LETTER U WITH MACRON
-        (?\\e,D_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
-        (?\\e,D`\e(B . ?\x0101) ;; LATIN SMALL LETTER A WITH MACRON
-        (?\\e,Da\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
-        (?\\e,Db\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
-        (?\\e,Dc\e(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE
-        (?\\e,Dd\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
-        (?\\e,De\e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE
-        (?\\e,Df\e(B . ?\x00E6) ;; LATIN SMALL LETTER AE
-        (?\\e,Dg\e(B . ?\x012F) ;; LATIN SMALL LETTER I WITH OGONEK
-        (?\\e,Dh\e(B . ?\x010D) ;; LATIN SMALL LETTER C WITH CARON
-        (?\\e,Di\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
-        (?\\e,Dj\e(B . ?\x0119) ;; LATIN SMALL LETTER E WITH OGONEK
-        (?\\e,Dk\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
-        (?\\e,Dl\e(B . ?\x0117) ;; LATIN SMALL LETTER E WITH DOT ABOVE
-        (?\\e,Dm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
-        (?\\e,Dn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
-        (?\\e,Do\e(B . ?\x012B) ;; LATIN SMALL LETTER I WITH MACRON
-        (?\\e,Dp\e(B . ?\x0111) ;; LATIN SMALL LETTER D WITH STROKE
-        (?\\e,Dq\e(B . ?\x0146) ;; LATIN SMALL LETTER N WITH CEDILLA
-        (?\\e,Dr\e(B . ?\x014D) ;; LATIN SMALL LETTER O WITH MACRON
-        (?\\e,Ds\e(B . ?\x0137) ;; LATIN SMALL LETTER K WITH CEDILLA
-        (?\\e,Dt\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
-        (?\\e,Du\e(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE
-        (?\\e,Dv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
-        (?\\e,Dw\e(B . ?\x00F7) ;; DIVISION SIGN
-        (?\\e,Dx\e(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE
-        (?\\e,Dy\e(B . ?\x0173) ;; LATIN SMALL LETTER U WITH OGONEK
-        (?\\e,Dz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
-        (?\\e,D{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
-        (?\\e,D|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
-        (?\\e,D}\e(B . ?\x0169) ;; LATIN SMALL LETTER U WITH TILDE
-        (?\\e,D~\e(B . ?\x016B) ;; LATIN SMALL LETTER U WITH MACRON
-        (?\\e,D\7f\e(B . ?\x02D9) ;; DOT ABOVE
-        ))
-
-      (ucs-8859-5-alist
-       '((?\\e,L \e(B . ?\x00A0) ;; NO-BREAK SPACE
-        (?\\e,L!\e(B . ?\x0401) ;; CYRILLIC CAPITAL LETTER IO
-        (?\\e,L"\e(B . ?\x0402) ;; CYRILLIC CAPITAL LETTER DJE
-        (?\\e,L#\e(B . ?\x0403) ;; CYRILLIC CAPITAL LETTER GJE
-        (?\\e,L$\e(B . ?\x0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE
-        (?\\e,L%\e(B . ?\x0405) ;; CYRILLIC CAPITAL LETTER DZE
-        (?\\e,L&\e(B . ?\x0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-        (?\\e,L'\e(B . ?\x0407) ;; CYRILLIC CAPITAL LETTER YI
-        (?\\e,L(\e(B . ?\x0408) ;; CYRILLIC CAPITAL LETTER JE
-        (?\\e,L)\e(B . ?\x0409) ;; CYRILLIC CAPITAL LETTER LJE
-        (?\\e,L*\e(B . ?\x040A) ;; CYRILLIC CAPITAL LETTER NJE
-        (?\\e,L+\e(B . ?\x040B) ;; CYRILLIC CAPITAL LETTER TSHE
-        (?\\e,L,\e(B . ?\x040C) ;; CYRILLIC CAPITAL LETTER KJE
-        (?\\e,L-\e(B . ?\x00AD) ;; SOFT HYPHEN
-        (?\\e,L.\e(B . ?\x040E) ;; CYRILLIC CAPITAL LETTER SHORT U
-        (?\\e,L/\e(B . ?\x040F) ;; CYRILLIC CAPITAL LETTER DZHE
-        (?\\e,L0\e(B . ?\x0410) ;; CYRILLIC CAPITAL LETTER A
-        (?\\e,L1\e(B . ?\x0411) ;; CYRILLIC CAPITAL LETTER BE
-        (?\\e,L2\e(B . ?\x0412) ;; CYRILLIC CAPITAL LETTER VE
-        (?\\e,L3\e(B . ?\x0413) ;; CYRILLIC CAPITAL LETTER GHE
-        (?\\e,L4\e(B . ?\x0414) ;; CYRILLIC CAPITAL LETTER DE
-        (?\\e,L5\e(B . ?\x0415) ;; CYRILLIC CAPITAL LETTER IE
-        (?\\e,L6\e(B . ?\x0416) ;; CYRILLIC CAPITAL LETTER ZHE
-        (?\\e,L7\e(B . ?\x0417) ;; CYRILLIC CAPITAL LETTER ZE
-        (?\\e,L8\e(B . ?\x0418) ;; CYRILLIC CAPITAL LETTER I
-        (?\\e,L9\e(B . ?\x0419) ;; CYRILLIC CAPITAL LETTER SHORT I
-        (?\\e,L:\e(B . ?\x041A) ;; CYRILLIC CAPITAL LETTER KA
-        (?\\e,L;\e(B . ?\x041B) ;; CYRILLIC CAPITAL LETTER EL
-        (?\\e,L<\e(B . ?\x041C) ;; CYRILLIC CAPITAL LETTER EM
-        (?\\e,L=\e(B . ?\x041D) ;; CYRILLIC CAPITAL LETTER EN
-        (?\\e,L>\e(B . ?\x041E) ;; CYRILLIC CAPITAL LETTER O
-        (?\\e,L?\e(B . ?\x041F) ;; CYRILLIC CAPITAL LETTER PE
-        (?\\e,L@\e(B . ?\x0420) ;; CYRILLIC CAPITAL LETTER ER
-        (?\\e,LA\e(B . ?\x0421) ;; CYRILLIC CAPITAL LETTER ES
-        (?\\e,LB\e(B . ?\x0422) ;; CYRILLIC CAPITAL LETTER TE
-        (?\\e,LC\e(B . ?\x0423) ;; CYRILLIC CAPITAL LETTER U
-        (?\\e,LD\e(B . ?\x0424) ;; CYRILLIC CAPITAL LETTER EF
-        (?\\e,LE\e(B . ?\x0425) ;; CYRILLIC CAPITAL LETTER HA
-        (?\\e,LF\e(B . ?\x0426) ;; CYRILLIC CAPITAL LETTER TSE
-        (?\\e,LG\e(B . ?\x0427) ;; CYRILLIC CAPITAL LETTER CHE
-        (?\\e,LH\e(B . ?\x0428) ;; CYRILLIC CAPITAL LETTER SHA
-        (?\\e,LI\e(B . ?\x0429) ;; CYRILLIC CAPITAL LETTER SHCHA
-        (?\\e,LJ\e(B . ?\x042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN
-        (?\\e,LK\e(B . ?\x042B) ;; CYRILLIC CAPITAL LETTER YERU
-        (?\\e,LL\e(B . ?\x042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN
-        (?\\e,LM\e(B . ?\x042D) ;; CYRILLIC CAPITAL LETTER E
-        (?\\e,LN\e(B . ?\x042E) ;; CYRILLIC CAPITAL LETTER YU
-        (?\\e,LO\e(B . ?\x042F) ;; CYRILLIC CAPITAL LETTER YA
-        (?\\e,LP\e(B . ?\x0430) ;; CYRILLIC SMALL LETTER A
-        (?\\e,LQ\e(B . ?\x0431) ;; CYRILLIC SMALL LETTER BE
-        (?\\e,LR\e(B . ?\x0432) ;; CYRILLIC SMALL LETTER VE
-        (?\\e,LS\e(B . ?\x0433) ;; CYRILLIC SMALL LETTER GHE
-        (?\\e,LT\e(B . ?\x0434) ;; CYRILLIC SMALL LETTER DE
-        (?\\e,LU\e(B . ?\x0435) ;; CYRILLIC SMALL LETTER IE
-        (?\\e,LV\e(B . ?\x0436) ;; CYRILLIC SMALL LETTER ZHE
-        (?\\e,LW\e(B . ?\x0437) ;; CYRILLIC SMALL LETTER ZE
-        (?\\e,LX\e(B . ?\x0438) ;; CYRILLIC SMALL LETTER I
-        (?\\e,LY\e(B . ?\x0439) ;; CYRILLIC SMALL LETTER SHORT I
-        (?\\e,LZ\e(B . ?\x043A) ;; CYRILLIC SMALL LETTER KA
-        (?\\e,L[\e(B . ?\x043B) ;; CYRILLIC SMALL LETTER EL
-        (?\\e,L\\e(B . ?\x043C) ;; CYRILLIC SMALL LETTER EM
-        (?\\e,L]\e(B . ?\x043D) ;; CYRILLIC SMALL LETTER EN
-        (?\\e,L^\e(B . ?\x043E) ;; CYRILLIC SMALL LETTER O
-        (?\\e,L_\e(B . ?\x043F) ;; CYRILLIC SMALL LETTER PE
-        (?\\e,L`\e(B . ?\x0440) ;; CYRILLIC SMALL LETTER ER
-        (?\\e,La\e(B . ?\x0441) ;; CYRILLIC SMALL LETTER ES
-        (?\\e,Lb\e(B . ?\x0442) ;; CYRILLIC SMALL LETTER TE
-        (?\\e,Lc\e(B . ?\x0443) ;; CYRILLIC SMALL LETTER U
-        (?\\e,Ld\e(B . ?\x0444) ;; CYRILLIC SMALL LETTER EF
-        (?\\e,Le\e(B . ?\x0445) ;; CYRILLIC SMALL LETTER HA
-        (?\\e,Lf\e(B . ?\x0446) ;; CYRILLIC SMALL LETTER TSE
-        (?\\e,Lg\e(B . ?\x0447) ;; CYRILLIC SMALL LETTER CHE
-        (?\\e,Lh\e(B . ?\x0448) ;; CYRILLIC SMALL LETTER SHA
-        (?\\e,Li\e(B . ?\x0449) ;; CYRILLIC SMALL LETTER SHCHA
-        (?\\e,Lj\e(B . ?\x044A) ;; CYRILLIC SMALL LETTER HARD SIGN
-        (?\\e,Lk\e(B . ?\x044B) ;; CYRILLIC SMALL LETTER YERU
-        (?\\e,Ll\e(B . ?\x044C) ;; CYRILLIC SMALL LETTER SOFT SIGN
-        (?\\e,Lm\e(B . ?\x044D) ;; CYRILLIC SMALL LETTER E
-        (?\\e,Ln\e(B . ?\x044E) ;; CYRILLIC SMALL LETTER YU
-        (?\\e,Lo\e(B . ?\x044F) ;; CYRILLIC SMALL LETTER YA
-        (?\\e,Lp\e(B . ?\x2116) ;; NUMERO SIGN
-        (?\\e,Lq\e(B . ?\x0451) ;; CYRILLIC SMALL LETTER IO
-        (?\\e,Lr\e(B . ?\x0452) ;; CYRILLIC SMALL LETTER DJE
-        (?\\e,Ls\e(B . ?\x0453) ;; CYRILLIC SMALL LETTER GJE
-        (?\\e,Lt\e(B . ?\x0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE
-        (?\\e,Lu\e(B . ?\x0455) ;; CYRILLIC SMALL LETTER DZE
-        (?\\e,Lv\e(B . ?\x0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-        (?\\e,Lw\e(B . ?\x0457) ;; CYRILLIC SMALL LETTER YI
-        (?\\e,Lx\e(B . ?\x0458) ;; CYRILLIC SMALL LETTER JE
-        (?\\e,Ly\e(B . ?\x0459) ;; CYRILLIC SMALL LETTER LJE
-        (?\\e,Lz\e(B . ?\x045A) ;; CYRILLIC SMALL LETTER NJE
-        (?\\e,L{\e(B . ?\x045B) ;; CYRILLIC SMALL LETTER TSHE
-        (?\\e,L|\e(B . ?\x045C) ;; CYRILLIC SMALL LETTER KJE
-        (?\\e,L}\e(B . ?\x00A7) ;; SECTION SIGN
-        (?\\e,L~\e(B . ?\x045E) ;; CYRILLIC SMALL LETTER SHORT U
-        (?\\e,L\7f\e(B . ?\x045F) ;; CYRILLIC SMALL LETTER DZHE
-        ))
-
-      ;; Arabic probably isn't so useful in the absence of Arabic
-      ;; language support.
-      (ucs-8859-6-alist
-       '((?\e,G \e(B . ?\x00A0)  ;; NO-BREAK SPACE
-        (?\e,G$\e(B . ?\x00A4)   ;; CURRENCY SIGN
-        (?\e,G,\e(B . ?\x060C)   ;; ARABIC COMMA
-        (?\e,G-\e(B . ?\x00AD)   ;; SOFT HYPHEN
-        (?\e,G;\e(B . ?\x061B)   ;; ARABIC SEMICOLON
-        (?\e,G?\e(B . ?\x061F)   ;; ARABIC QUESTION MARK
-        (?\e,GA\e(B . ?\x0621)   ;; ARABIC LETTER HAMZA
-        (?\e,GB\e(B . ?\x0622)   ;; ARABIC LETTER ALEF WITH MADDA ABOVE
-        (?\e,GC\e(B . ?\x0623)   ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
-        (?\e,GD\e(B . ?\x0624)   ;; ARABIC LETTER WAW WITH HAMZA ABOVE
-        (?\e,GE\e(B . ?\x0625)   ;; ARABIC LETTER ALEF WITH HAMZA BELOW
-        (?\e,GF\e(B . ?\x0626)   ;; ARABIC LETTER YEH WITH HAMZA ABOVE
-        (?\e,GG\e(B . ?\x0627)   ;; ARABIC LETTER ALEF
-        (?\e,GH\e(B . ?\x0628)   ;; ARABIC LETTER BEH
-        (?\e,GI\e(B . ?\x0629)   ;; ARABIC LETTER TEH MARBUTA
-        (?\e,GJ\e(B . ?\x062A)   ;; ARABIC LETTER TEH
-        (?\e,GK\e(B . ?\x062B)   ;; ARABIC LETTER THEH
-        (?\e,GL\e(B . ?\x062C)   ;; ARABIC LETTER JEEM
-        (?\e,GM\e(B . ?\x062D)   ;; ARABIC LETTER HAH
-        (?\e,GN\e(B . ?\x062E)   ;; ARABIC LETTER KHAH
-        (?\e,GO\e(B . ?\x062F)   ;; ARABIC LETTER DAL
-        (?\e,GP\e(B . ?\x0630)   ;; ARABIC LETTER THAL
-        (?\e,GQ\e(B . ?\x0631)   ;; ARABIC LETTER REH
-        (?\e,GR\e(B . ?\x0632)   ;; ARABIC LETTER ZAIN
-        (?\e,GS\e(B . ?\x0633)   ;; ARABIC LETTER SEEN
-        (?\e,GT\e(B . ?\x0634)   ;; ARABIC LETTER SHEEN
-        (?\e,GU\e(B . ?\x0635)   ;; ARABIC LETTER SAD
-        (?\e,GV\e(B . ?\x0636)   ;; ARABIC LETTER DAD
-        (?\e,GW\e(B . ?\x0637)   ;; ARABIC LETTER TAH
-        (?\e,GX\e(B . ?\x0638)   ;; ARABIC LETTER ZAH
-        (?\e,GY\e(B . ?\x0639)   ;; ARABIC LETTER AIN
-        (?\e,GZ\e(B . ?\x063A)   ;; ARABIC LETTER GHAIN
-        (?\e,G`\e(B . ?\x0640)   ;; ARABIC TATWEEL
-        (?\e,Ga\e(B . ?\x0641)   ;; ARABIC LETTER FEH
-        (?\e,Gb\e(B . ?\x0642)   ;; ARABIC LETTER QAF
-        (?\e,Gc\e(B . ?\x0643)   ;; ARABIC LETTER KAF
-        (?\e,Gd\e(B . ?\x0644)   ;; ARABIC LETTER LAM
-        (?\e,Ge\e(B . ?\x0645)   ;; ARABIC LETTER MEEM
-        (?\e,Gf\e(B . ?\x0646)   ;; ARABIC LETTER NOON
-        (?\e,Gg\e(B . ?\x0647)   ;; ARABIC LETTER HEH
-        (?\e,Gh\e(B . ?\x0648)   ;; ARABIC LETTER WAW
-        (?\e,Gi\e(B . ?\x0649)   ;; ARABIC LETTER ALEF MAKSURA
-        (?\e,Gj\e(B . ?\x064A)   ;; ARABIC LETTER YEH
-        (?\e,Gk\e(B . ?\x064B)   ;; ARABIC FATHATAN
-        (?\e,Gl\e(B . ?\x064C)   ;; ARABIC DAMMATAN
-        (?\e,Gm\e(B . ?\x064D)   ;; ARABIC KASRATAN
-        (?\e,Gn\e(B . ?\x064E)   ;; ARABIC FATHA
-        (?\e,Go\e(B . ?\x064F)   ;; ARABIC DAMMA
-        (?\e,Gp\e(B . ?\x0650)   ;; ARABIC KASRA
-        (?\e,Gq\e(B . ?\x0651)   ;; ARABIC SHADDA
-        (?\e,Gr\e(B . ?\x0652)   ;; ARABIC SUKUN
-        ))
-
-      (ucs-8859-7-alist
-       '((?\\e,F \e(B . ?\x00A0) ;; NO-BREAK SPACE
-        (?\\e,F!\e(B . ?\x2018) ;; LEFT SINGLE QUOTATION MARK
-        (?\\e,F"\e(B . ?\x2019) ;; RIGHT SINGLE QUOTATION MARK
-        (?\\e,F#\e(B . ?\x00A3) ;; POUND SIGN
-        (?\\e,F$\e(B . ?\x20AC) ;; EURO SIGN
-        (?\\e,F%\e(B . ?\x20AF) ;; DRACHMA SIGN
-        (?\\e,F&\e(B . ?\x00A6) ;; BROKEN BAR
-        (?\\e,F'\e(B . ?\x00A7) ;; SECTION SIGN
-        (?\\e,F(\e(B . ?\x00A8) ;; DIAERESIS
-        (?\\e,F)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
-        (?\\e,F*\e(B . ?\x037A) ;; GREEK YPOGEGRAMMENI
-        (?\\e,F+\e(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-        (?\\e,F,\e(B . ?\x00AC) ;; NOT SIGN
-        (?\\e,F-\e(B . ?\x00AD) ;; SOFT HYPHEN
-        (?\\e,F/\e(B . ?\x2015) ;; HORIZONTAL BAR
-        (?\\e,F0\e(B . ?\x00B0) ;; DEGREE SIGN
-        (?\\e,F1\e(B . ?\x00B1) ;; PLUS-MINUS SIGN
-        (?\\e,F2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
-        (?\\e,F3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
-        (?\\e,F4\e(B . ?\x0384) ;; GREEK TONOS
-        (?\\e,F5\e(B . ?\x0385) ;; GREEK DIALYTIKA TONOS
-        (?\\e,F6\e(B . ?\x0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS
-        (?\\e,F7\e(B . ?\x00B7) ;; MIDDLE DOT
-        (?\\e,F8\e(B . ?\x0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS
-        (?\\e,F9\e(B . ?\x0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS
-        (?\\e,F:\e(B . ?\x038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS
-        (?\\e,F;\e(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-        (?\\e,F<\e(B . ?\x038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS
-        (?\\e,F=\e(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF
-        (?\\e,F>\e(B . ?\x038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS
-        (?\\e,F?\e(B . ?\x038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS
-        (?\\e,F@\e(B . ?\x0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-        (?\\e,FA\e(B . ?\x0391) ;; GREEK CAPITAL LETTER ALPHA
-        (?\\e,FB\e(B . ?\x0392) ;; GREEK CAPITAL LETTER BETA
-        (?\\e,FC\e(B . ?\x0393) ;; GREEK CAPITAL LETTER GAMMA
-        (?\\e,FD\e(B . ?\x0394) ;; GREEK CAPITAL LETTER DELTA
-        (?\\e,FE\e(B . ?\x0395) ;; GREEK CAPITAL LETTER EPSILON
-        (?\\e,FF\e(B . ?\x0396) ;; GREEK CAPITAL LETTER ZETA
-        (?\\e,FG\e(B . ?\x0397) ;; GREEK CAPITAL LETTER ETA
-        (?\\e,FH\e(B . ?\x0398) ;; GREEK CAPITAL LETTER THETA
-        (?\\e,FI\e(B . ?\x0399) ;; GREEK CAPITAL LETTER IOTA
-        (?\\e,FJ\e(B . ?\x039A) ;; GREEK CAPITAL LETTER KAPPA
-        (?\\e,FK\e(B . ?\x039B) ;; GREEK CAPITAL LETTER LAMDA
-        (?\\e,FL\e(B . ?\x039C) ;; GREEK CAPITAL LETTER MU
-        (?\\e,FM\e(B . ?\x039D) ;; GREEK CAPITAL LETTER NU
-        (?\\e,FN\e(B . ?\x039E) ;; GREEK CAPITAL LETTER XI
-        (?\\e,FO\e(B . ?\x039F) ;; GREEK CAPITAL LETTER OMICRON
-        (?\\e,FP\e(B . ?\x03A0) ;; GREEK CAPITAL LETTER PI
-        (?\\e,FQ\e(B . ?\x03A1) ;; GREEK CAPITAL LETTER RHO
-        (?\\e,FS\e(B . ?\x03A3) ;; GREEK CAPITAL LETTER SIGMA
-        (?\\e,FT\e(B . ?\x03A4) ;; GREEK CAPITAL LETTER TAU
-        (?\\e,FU\e(B . ?\x03A5) ;; GREEK CAPITAL LETTER UPSILON
-        (?\\e,FV\e(B . ?\x03A6) ;; GREEK CAPITAL LETTER PHI
-        (?\\e,FW\e(B . ?\x03A7) ;; GREEK CAPITAL LETTER CHI
-        (?\\e,FX\e(B . ?\x03A8) ;; GREEK CAPITAL LETTER PSI
-        (?\\e,FY\e(B . ?\x03A9) ;; GREEK CAPITAL LETTER OMEGA
-        (?\\e,FZ\e(B . ?\x03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-        (?\\e,F[\e(B . ?\x03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-        (?\\e,F\\e(B . ?\x03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS
-        (?\\e,F]\e(B . ?\x03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS
-        (?\\e,F^\e(B . ?\x03AE) ;; GREEK SMALL LETTER ETA WITH TONOS
-        (?\\e,F_\e(B . ?\x03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS
-        (?\\e,F`\e(B . ?\x03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-        (?\\e,Fa\e(B . ?\x03B1) ;; GREEK SMALL LETTER ALPHA
-        (?\\e,Fb\e(B . ?\x03B2) ;; GREEK SMALL LETTER BETA
-        (?\\e,Fc\e(B . ?\x03B3) ;; GREEK SMALL LETTER GAMMA
-        (?\\e,Fd\e(B . ?\x03B4) ;; GREEK SMALL LETTER DELTA
-        (?\\e,Fe\e(B . ?\x03B5) ;; GREEK SMALL LETTER EPSILON
-        (?\\e,Ff\e(B . ?\x03B6) ;; GREEK SMALL LETTER ZETA
-        (?\\e,Fg\e(B . ?\x03B7) ;; GREEK SMALL LETTER ETA
-        (?\\e,Fh\e(B . ?\x03B8) ;; GREEK SMALL LETTER THETA
-        (?\\e,Fi\e(B . ?\x03B9) ;; GREEK SMALL LETTER IOTA
-        (?\\e,Fj\e(B . ?\x03BA) ;; GREEK SMALL LETTER KAPPA
-        (?\\e,Fk\e(B . ?\x03BB) ;; GREEK SMALL LETTER LAMDA
-        (?\\e,Fl\e(B . ?\x03BC) ;; GREEK SMALL LETTER MU
-        (?\\e,Fm\e(B . ?\x03BD) ;; GREEK SMALL LETTER NU
-        (?\\e,Fn\e(B . ?\x03BE) ;; GREEK SMALL LETTER XI
-        (?\\e,Fo\e(B . ?\x03BF) ;; GREEK SMALL LETTER OMICRON
-        (?\\e,Fp\e(B . ?\x03C0) ;; GREEK SMALL LETTER PI
-        (?\\e,Fq\e(B . ?\x03C1) ;; GREEK SMALL LETTER RHO
-        (?\\e,Fr\e(B . ?\x03C2) ;; GREEK SMALL LETTER FINAL SIGMA
-        (?\\e,Fs\e(B . ?\x03C3) ;; GREEK SMALL LETTER SIGMA
-        (?\\e,Ft\e(B . ?\x03C4) ;; GREEK SMALL LETTER TAU
-        (?\\e,Fu\e(B . ?\x03C5) ;; GREEK SMALL LETTER UPSILON
-        (?\\e,Fv\e(B . ?\x03C6) ;; GREEK SMALL LETTER PHI
-        (?\\e,Fw\e(B . ?\x03C7) ;; GREEK SMALL LETTER CHI
-        (?\\e,Fx\e(B . ?\x03C8) ;; GREEK SMALL LETTER PSI
-        (?\\e,Fy\e(B . ?\x03C9) ;; GREEK SMALL LETTER OMEGA
-        (?\\e,Fz\e(B . ?\x03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA
-        (?\\e,F{\e(B . ?\x03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-        (?\\e,F|\e(B . ?\x03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS
-        (?\\e,F}\e(B . ?\x03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS
-        (?\\e,F~\e(B . ?\x03CE) ;; GREEK SMALL LETTER OMEGA WITH TONOS
-        ))
-
-      (ucs-8859-8-alist
-       '((?\\e,H \e(B . ?\x00A0) ;; NO-BREAK SPACE
-        (?\\e,H"\e(B . ?\x00A2) ;; CENT SIGN
-        (?\\e,H#\e(B . ?\x00A3) ;; POUND SIGN
-        (?\\e,H$\e(B . ?\x00A4) ;; CURRENCY SIGN
-        (?\\e,H%\e(B . ?\x00A5) ;; YEN SIGN
-        (?\\e,H&\e(B . ?\x00A6) ;; BROKEN BAR
-        (?\\e,H'\e(B . ?\x00A7) ;; SECTION SIGN
-        (?\\e,H(\e(B . ?\x00A8) ;; DIAERESIS
-        (?\\e,H)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
-        (?\\e,H*\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
-        (?\\e,H+\e(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-        (?\\e,H,\e(B . ?\x00AC) ;; NOT SIGN
-        (?\\e,H-\e(B . ?\x00AD) ;; SOFT HYPHEN
-        (?\\e,H.\e(B . ?\x00AE) ;; REGISTERED SIGN
-        (?\\e,H/\e(B . ?\x00AF) ;; MACRON
-        (?\\e,H0\e(B . ?\x00B0) ;; DEGREE SIGN
-        (?\\e,H1\e(B . ?\x00B1) ;; PLUS-MINUS SIGN
-        (?\\e,H2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
-        (?\\e,H3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
-        (?\\e,H4\e(B . ?\x00B4) ;; ACUTE ACCENT
-        (?\\e,H5\e(B . ?\x00B5) ;; MICRO SIGN
-        (?\\e,H6\e(B . ?\x00B6) ;; PILCROW SIGN
-        (?\\e,H7\e(B . ?\x00B7) ;; MIDDLE DOT
-        (?\\e,H8\e(B . ?\x00B8) ;; CEDILLA
-        (?\\e,H9\e(B . ?\x00B9) ;; SUPERSCRIPT ONE
-        (?\\e,H:\e(B . ?\x00F7) ;; DIVISION SIGN
-        (?\\e,H;\e(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-        (?\\e,H<\e(B . ?\x00BC) ;; VULGAR FRACTION ONE QUARTER
-        (?\\e,H=\e(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF
-        (?\\e,H>\e(B . ?\x00BE) ;; VULGAR FRACTION THREE QUARTERS
-        ;; These are commented out since the current 8859-8 standard
-        ;; does not yet define these codepoints, although there are
-        ;; drafts which do).
-;       (?\\e,H@\e(B . ?\x05B0) ;; HEBREW POINT SHEVA
-;       (?\\e,HA\e(B . ?\x05B1) ;; HEBREW POINT HATAF SEGOL
-;       (?\\e,HB\e(B . ?\x05B2) ;; HEBREW POINT HATAF PATAH
-;       (?\\e,HC\e(B . ?\x05B3) ;; HEBREW POINT HATAF QAMATS
-;       (?\\e,HD\e(B . ?\x05B4) ;; HEBREW POINT HIRIQ
-;       (?\\e,HE\e(B . ?\x05B5) ;; HEBREW POINT TSERE
-;       (?\\e,HF\e(B . ?\x05B6) ;; HEBREW POINT SEGOL
-;       (?\\e,HG\e(B . ?\x05B7) ;; HEBREW POINT PATAH
-;       (?\\e,HH\e(B . ?\x05B8) ;; HEBREW POINT QAMATS
-;       (?\\e,HI\e(B . ?\x05B9) ;; HEBREW POINT HOLAM
-;       (?\\e,HK\e(B . ?\x05BB) ;; HEBREW POINT QUBUTS
-;       (?\\e,HL\e(B . ?\x05BC) ;; HEBREW POINT DAGESH
-;       (?\\e,HM\e(B . ?\x05BD) ;; HEBREW POINT METEG
-;       (?\\e,HN\e(B . ?\x05BE) ;; HEBREW POINT MAQAF
-;       (?\\e,HO\e(B . ?\x05BF) ;; HEBREW POINT RAFE
-;       (?\\e,HP\e(B . ?\x05C0) ;; HEBREW PUNCTUATION PASEQ
-;       (?\\e,HQ\e(B . ?\x05C1) ;; HEBREW POINT SHIN DOT
-;       (?\\e,HR\e(B . ?\x05C2) ;; HEBREW POINT SIN DOT
-;       (?\\e,HS\e(B . ?\x05C3) ;; HEBREW PUNCTUATION SOF PASUQ
-        (?\\e,H[\e(B . ?\x202D) ;; LEFT-TO-RIGHT OVERRIDE
-        (?\\e,H\\e(B . ?\x202E) ;; RIGHT-TO-LEFT OVERRIDE
-        (?\\e,H]\e(B . ?\x202C) ;; POP DIRECTIONAL FORMATTING
-        (?\\e,H_\e(B . ?\x2017) ;; DOUBLE LOW LINE
-        (?\\e,H`\e(B . ?\x05D0) ;; HEBREW LETTER ALEF
-        (?\\e,Ha\e(B . ?\x05D1) ;; HEBREW LETTER BET
-        (?\\e,Hb\e(B . ?\x05D2) ;; HEBREW LETTER GIMEL
-        (?\\e,Hc\e(B . ?\x05D3) ;; HEBREW LETTER DALET
-        (?\\e,Hd\e(B . ?\x05D4) ;; HEBREW LETTER HE
-        (?\\e,He\e(B . ?\x05D5) ;; HEBREW LETTER VAV
-        (?\\e,Hf\e(B . ?\x05D6) ;; HEBREW LETTER ZAYIN
-        (?\\e,Hg\e(B . ?\x05D7) ;; HEBREW LETTER HET
-        (?\\e,Hh\e(B . ?\x05D8) ;; HEBREW LETTER TET
-        (?\\e,Hi\e(B . ?\x05D9) ;; HEBREW LETTER YOD
-        (?\\e,Hj\e(B . ?\x05DA) ;; HEBREW LETTER FINAL KAF
-        (?\\e,Hk\e(B . ?\x05DB) ;; HEBREW LETTER KAF
-        (?\\e,Hl\e(B . ?\x05DC) ;; HEBREW LETTER LAMED
-        (?\\e,Hm\e(B . ?\x05DD) ;; HEBREW LETTER FINAL MEM
-        (?\\e,Hn\e(B . ?\x05DE) ;; HEBREW LETTER MEM
-        (?\\e,Ho\e(B . ?\x05DF) ;; HEBREW LETTER FINAL NUN
-        (?\\e,Hp\e(B . ?\x05E0) ;; HEBREW LETTER NUN
-        (?\\e,Hq\e(B . ?\x05E1) ;; HEBREW LETTER SAMEKH
-        (?\\e,Hr\e(B . ?\x05E2) ;; HEBREW LETTER AYIN
-        (?\\e,Hs\e(B . ?\x05E3) ;; HEBREW LETTER FINAL PE
-        (?\\e,Ht\e(B . ?\x05E4) ;; HEBREW LETTER PE
-        (?\\e,Hu\e(B . ?\x05E5) ;; HEBREW LETTER FINAL TSADI
-        (?\\e,Hv\e(B . ?\x05E6) ;; HEBREW LETTER TSADI
-        (?\\e,Hw\e(B . ?\x05E7) ;; HEBREW LETTER QOF
-        (?\\e,Hx\e(B . ?\x05E8) ;; HEBREW LETTER RESH
-        (?\\e,Hy\e(B . ?\x05E9) ;; HEBREW LETTER SHIN
-        (?\\e,Hz\e(B . ?\x05EA) ;; HEBREW LETTER TAV
-        (?\\e,H{\e(B . ?\x202A) ;; LEFT-TO-RIGHT EMBEDDING
-        (?\\e,H|\e(B . ?\x202B) ;; RIGHT-TO-LEFT EMBEDDING
-        (?\\e,H}\e(B . ?\x200E) ;; LEFT-TO-RIGHT MARK
-        (?\\e,H~\e(B . ?\x200F) ;; RIGHT-TO-LEFT MARK
-        ))
-
-      (ucs-8859-9-alist
-       '((?\\e,M \e(B . ?\x00A0) ;; NO-BREAK SPACE
-        (?\\e,M!\e(B . ?\x00A1) ;; INVERTED EXCLAMATION MARK
-        (?\\e,M"\e(B . ?\x00A2) ;; CENT SIGN
-        (?\\e,M#\e(B . ?\x00A3) ;; POUND SIGN
-        (?\\e,M$\e(B . ?\x00A4) ;; CURRENCY SIGN
-        (?\\e,M%\e(B . ?\x00A5) ;; YEN SIGN
-        (?\\e,M&\e(B . ?\x00A6) ;; BROKEN BAR
-        (?\\e,M'\e(B . ?\x00A7) ;; SECTION SIGN
-        (?\\e,M(\e(B . ?\x00A8) ;; DIAERESIS
-        (?\\e,M)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
-        (?\\e,M*\e(B . ?\x00AA) ;; FEMININE ORDINAL INDICATOR
-        (?\\e,M+\e(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-        (?\\e,M,\e(B . ?\x00AC) ;; NOT SIGN
-        (?\\e,M-\e(B . ?\x00AD) ;; SOFT HYPHEN
-        (?\\e,M.\e(B . ?\x00AE) ;; REGISTERED SIGN
-        (?\\e,M/\e(B . ?\x00AF) ;; MACRON
-        (?\\e,M0\e(B . ?\x00B0) ;; DEGREE SIGN
-        (?\\e,M1\e(B . ?\x00B1) ;; PLUS-MINUS SIGN
-        (?\\e,M2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
-        (?\\e,M3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
-        (?\\e,M4\e(B . ?\x00B4) ;; ACUTE ACCENT
-        (?\\e,M5\e(B . ?\x00B5) ;; MICRO SIGN
-        (?\\e,M6\e(B . ?\x00B6) ;; PILCROW SIGN
-        (?\\e,M7\e(B . ?\x00B7) ;; MIDDLE DOT
-        (?\\e,M8\e(B . ?\x00B8) ;; CEDILLA
-        (?\\e,M9\e(B . ?\x00B9) ;; SUPERSCRIPT ONE
-        (?\\e,M:\e(B . ?\x00BA) ;; MASCULINE ORDINAL INDICATOR
-        (?\\e,M;\e(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-        (?\\e,M<\e(B . ?\x00BC) ;; VULGAR FRACTION ONE QUARTER
-        (?\\e,M=\e(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF
-        (?\\e,M>\e(B . ?\x00BE) ;; VULGAR FRACTION THREE QUARTERS
-        (?\\e,M?\e(B . ?\x00BF) ;; INVERTED QUESTION MARK
-        (?\\e,M@\e(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE
-        (?\\e,MA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
-        (?\\e,MB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-        (?\\e,MC\e(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE
-        (?\\e,MD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
-        (?\\e,ME\e(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE
-        (?\\e,MF\e(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE
-        (?\\e,MG\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
-        (?\\e,MH\e(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE
-        (?\\e,MI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
-        (?\\e,MJ\e(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-        (?\\e,MK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
-        (?\\e,ML\e(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE
-        (?\\e,MM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
-        (?\\e,MN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-        (?\\e,MO\e(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
-        (?\\e,MP\e(B . ?\x011E) ;; LATIN CAPITAL LETTER G WITH BREVE
-        (?\\e,MQ\e(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE
-        (?\\e,MR\e(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE
-        (?\\e,MS\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
-        (?\\e,MT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-        (?\\e,MU\e(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE
-        (?\\e,MV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
-        (?\\e,MW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
-        (?\\e,MX\e(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE
-        (?\\e,MY\e(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE
-        (?\\e,MZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
-        (?\\e,M[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-        (?\\e,M\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
-        (?\\e,M]\e(B . ?\x0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE
-        (?\\e,M^\e(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA
-        (?\\e,M_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
-        (?\\e,M`\e(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE
-        (?\\e,Ma\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
-        (?\\e,Mb\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
-        (?\\e,Mc\e(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE
-        (?\\e,Md\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
-        (?\\e,Me\e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE
-        (?\\e,Mf\e(B . ?\x00E6) ;; LATIN SMALL LETTER AE
-        (?\\e,Mg\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
-        (?\\e,Mh\e(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE
-        (?\\e,Mi\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
-        (?\\e,Mj\e(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
-        (?\\e,Mk\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
-        (?\\e,Ml\e(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE
-        (?\\e,Mm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
-        (?\\e,Mn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
-        (?\\e,Mo\e(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
-        (?\\e,Mp\e(B . ?\x011F) ;; LATIN SMALL LETTER G WITH BREVE
-        (?\\e,Mq\e(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE
-        (?\\e,Mr\e(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE
-        (?\\e,Ms\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
-        (?\\e,Mt\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
-        (?\\e,Mu\e(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE
-        (?\\e,Mv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
-        (?\\e,Mw\e(B . ?\x00F7) ;; DIVISION SIGN
-        (?\\e,Mx\e(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE
-        (?\\e,My\e(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE
-        (?\\e,Mz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
-        (?\\e,M{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
-        (?\\e,M|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
-        (?\\e,M}\e(B . ?\x0131) ;; LATIN SMALL LETTER DOTLESS I
-        (?\\e,M~\e(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA
-        (?\\e,M\7f\e(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS
-        ))
-
-      (ucs-8859-14-alist
-       '((?\\e,_ \e(B . ?\x00A0) ;; NO-BREAK SPACE
-        (?\\e,_!\e(B . ?\x1E02) ;; LATIN CAPITAL LETTER B WITH DOT ABOVE
-        (?\\e,_"\e(B . ?\x1E03) ;; LATIN SMALL LETTER B WITH DOT ABOVE
-        (?\\e,_#\e(B . ?\x00A3) ;; POUND SIGN
-        (?\\e,_$\e(B . ?\x010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE
-        (?\\e,_%\e(B . ?\x010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE
-        (?\\e,_&\e(B . ?\x1E0A) ;; LATIN CAPITAL LETTER D WITH DOT ABOVE
-        (?\\e,_'\e(B . ?\x00A7) ;; SECTION SIGN
-        (?\\e,_(\e(B . ?\x1E80) ;; LATIN CAPITAL LETTER W WITH GRAVE
-        (?\\e,_)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
-        (?\\e,_*\e(B . ?\x1E82) ;; LATIN CAPITAL LETTER W WITH ACUTE
-        (?\\e,_+\e(B . ?\x1E0B) ;; LATIN SMALL LETTER D WITH DOT ABOVE
-        (?\\e,_,\e(B . ?\x1EF2) ;; LATIN CAPITAL LETTER Y WITH GRAVE
-        (?\\e,_-\e(B . ?\x00AD) ;; SOFT HYPHEN
-        (?\\e,_.\e(B . ?\x00AE) ;; REGISTERED SIGN
-        (?\\e,_/\e(B . ?\x0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS
-        (?\\e,_0\e(B . ?\x1E1E) ;; LATIN CAPITAL LETTER F WITH DOT ABOVE
-        (?\\e,_1\e(B . ?\x1E1F) ;; LATIN SMALL LETTER F WITH DOT ABOVE
-        (?\\e,_2\e(B . ?\x0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE
-        (?\\e,_3\e(B . ?\x0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE
-        (?\\e,_4\e(B . ?\x1E40) ;; LATIN CAPITAL LETTER M WITH DOT ABOVE
-        (?\\e,_5\e(B . ?\x1E41) ;; LATIN SMALL LETTER M WITH DOT ABOVE
-        (?\\e,_6\e(B . ?\x00B6) ;; PILCROW SIGN
-        (?\\e,_7\e(B . ?\x1E56) ;; LATIN CAPITAL LETTER P WITH DOT ABOVE
-        (?\\e,_8\e(B . ?\x1E81) ;; LATIN SMALL LETTER W WITH GRAVE
-        (?\\e,_9\e(B . ?\x1E57) ;; LATIN SMALL LETTER P WITH DOT ABOVE
-        (?\\e,_:\e(B . ?\x1E83) ;; LATIN SMALL LETTER W WITH ACUTE
-        (?\\e,_;\e(B . ?\x1E60) ;; LATIN CAPITAL LETTER S WITH DOT ABOVE
-        (?\\e,_<\e(B . ?\x1EF3) ;; LATIN SMALL LETTER Y WITH GRAVE
-        (?\\e,_=\e(B . ?\x1E84) ;; LATIN CAPITAL LETTER W WITH DIAERESIS
-        (?\\e,_>\e(B . ?\x1E85) ;; LATIN SMALL LETTER W WITH DIAERESIS
-        (?\\e,_?\e(B . ?\x1E61) ;; LATIN SMALL LETTER S WITH DOT ABOVE
-        (?\\e,_@\e(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE
-        (?\\e,_A\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
-        (?\\e,_B\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-        (?\\e,_C\e(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE
-        (?\\e,_D\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
-        (?\\e,_E\e(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE
-        (?\\e,_F\e(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE
-        (?\\e,_G\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
-        (?\\e,_H\e(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE
-        (?\\e,_I\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
-        (?\\e,_J\e(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-        (?\\e,_K\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
-        (?\\e,_L\e(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE
-        (?\\e,_M\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
-        (?\\e,_N\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-        (?\\e,_O\e(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
-        (?\\e,_P\e(B . ?\x0174) ;; LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-        (?\\e,_Q\e(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE
-        (?\\e,_R\e(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE
-        (?\\e,_S\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
-        (?\\e,_T\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-        (?\\e,_U\e(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE
-        (?\\e,_V\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
-        (?\\e,_W\e(B . ?\x1E6A) ;; LATIN CAPITAL LETTER T WITH DOT ABOVE
-        (?\\e,_X\e(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE
-        (?\\e,_Y\e(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE
-        (?\\e,_Z\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
-        (?\\e,_[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-        (?\\e,_\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
-        (?\\e,_]\e(B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE
-        (?\\e,_^\e(B . ?\x0176) ;; LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-        (?\\e,__\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
-        (?\\e,_`\e(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE
-        (?\\e,_a\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
-        (?\\e,_b\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
-        (?\\e,_c\e(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE
-        (?\\e,_d\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
-        (?\\e,_e\e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE
-        (?\\e,_f\e(B . ?\x00E6) ;; LATIN SMALL LETTER AE
-        (?\\e,_g\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
-        (?\\e,_h\e(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE
-        (?\\e,_i\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
-        (?\\e,_j\e(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
-        (?\\e,_k\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
-        (?\\e,_l\e(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE
-        (?\\e,_m\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
-        (?\\e,_n\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
-        (?\\e,_o\e(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
-        (?\\e,_p\e(B . ?\x0175) ;; LATIN SMALL LETTER W WITH CIRCUMFLEX
-        (?\\e,_q\e(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE
-        (?\\e,_r\e(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE
-        (?\\e,_s\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
-        (?\\e,_t\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
-        (?\\e,_u\e(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE
-        (?\\e,_v\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
-        (?\\e,_w\e(B . ?\x1E6B) ;; LATIN SMALL LETTER T WITH DOT ABOVE
-        (?\\e,_x\e(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE
-        (?\\e,_y\e(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE
-        (?\\e,_z\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
-        (?\\e,_{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
-        (?\\e,_|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
-        (?\\e,_}\e(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE
-        (?\\e,_~\e(B . ?\x0177) ;; LATIN SMALL LETTER Y WITH CIRCUMFLEX
-        (?\\e,_\7f\e(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS
-        ))
-
-      (ucs-8859-15-alist
-       '((?\\e,b \e(B . ?\x00A0) ;; NO-BREAK SPACE
-        (?\\e,b!\e(B . ?\x00A1) ;; INVERTED EXCLAMATION MARK
-        (?\\e,b"\e(B . ?\x00A2) ;; CENT SIGN
-        (?\\e,b#\e(B . ?\x00A3) ;; POUND SIGN
-        (?\\e,b$\e(B . ?\x20AC) ;; EURO SIGN
-        (?\\e,b%\e(B . ?\x00A5) ;; YEN SIGN
-        (?\\e,b&\e(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON
-        (?\\e,b'\e(B . ?\x00A7) ;; SECTION SIGN
-        (?\\e,b(\e(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON
-        (?\\e,b)\e(B . ?\x00A9) ;; COPYRIGHT SIGN
-        (?\\e,b*\e(B . ?\x00AA) ;; FEMININE ORDINAL INDICATOR
-        (?\\e,b+\e(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-        (?\\e,b,\e(B . ?\x00AC) ;; NOT SIGN
-        (?\\e,b-\e(B . ?\x00AD) ;; SOFT HYPHEN
-        (?\\e,b.\e(B . ?\x00AE) ;; REGISTERED SIGN
-        (?\\e,b/\e(B . ?\x00AF) ;; MACRON
-        (?\\e,b0\e(B . ?\x00B0) ;; DEGREE SIGN
-        (?\\e,b1\e(B . ?\x00B1) ;; PLUS-MINUS SIGN
-        (?\\e,b2\e(B . ?\x00B2) ;; SUPERSCRIPT TWO
-        (?\\e,b3\e(B . ?\x00B3) ;; SUPERSCRIPT THREE
-        (?\\e,b4\e(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON
-        (?\\e,b5\e(B . ?\x00B5) ;; MICRO SIGN
-        (?\\e,b6\e(B . ?\x00B6) ;; PILCROW SIGN
-        (?\\e,b7\e(B . ?\x00B7) ;; MIDDLE DOT
-        (?\\e,b8\e(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON
-        (?\\e,b9\e(B . ?\x00B9) ;; SUPERSCRIPT ONE
-        (?\\e,b:\e(B . ?\x00BA) ;; MASCULINE ORDINAL INDICATOR
-        (?\\e,b;\e(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-        (?\\e,b<\e(B . ?\x0152) ;; LATIN CAPITAL LIGATURE OE
-        (?\\e,b=\e(B . ?\x0153) ;; LATIN SMALL LIGATURE OE
-        (?\\e,b>\e(B . ?\x0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS
-        (?\\e,b?\e(B . ?\x00BF) ;; INVERTED QUESTION MARK
-        (?\\e,b@\e(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE
-        (?\\e,bA\e(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE
-        (?\\e,bB\e(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-        (?\\e,bC\e(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE
-        (?\\e,bD\e(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS
-        (?\\e,bE\e(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE
-        (?\\e,bF\e(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE
-        (?\\e,bG\e(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA
-        (?\\e,bH\e(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE
-        (?\\e,bI\e(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE
-        (?\\e,bJ\e(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-        (?\\e,bK\e(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS
-        (?\\e,bL\e(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE
-        (?\\e,bM\e(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE
-        (?\\e,bN\e(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-        (?\\e,bO\e(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS
-        (?\\e,bP\e(B . ?\x00D0) ;; LATIN CAPITAL LETTER ETH
-        (?\\e,bQ\e(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE
-        (?\\e,bR\e(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE
-        (?\\e,bS\e(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE
-        (?\\e,bT\e(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-        (?\\e,bU\e(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE
-        (?\\e,bV\e(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS
-        (?\\e,bW\e(B . ?\x00D7) ;; MULTIPLICATION SIGN
-        (?\\e,bX\e(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE
-        (?\\e,bY\e(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE
-        (?\\e,bZ\e(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE
-        (?\\e,b[\e(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-        (?\\e,b\\e(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS
-        (?\\e,b]\e(B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE
-        (?\\e,b^\e(B . ?\x00DE) ;; LATIN CAPITAL LETTER THORN
-        (?\\e,b_\e(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S
-        (?\\e,b`\e(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE
-        (?\\e,ba\e(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE
-        (?\\e,bb\e(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
-        (?\\e,bc\e(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE
-        (?\\e,bd\e(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS
-        (?\\e,be\e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE
-        (?\\e,bf\e(B . ?\x00E6) ;; LATIN SMALL LETTER AE
-        (?\\e,bg\e(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
-        (?\\e,bh\e(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE
-        (?\\e,bi\e(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE
-        (?\\e,bj\e(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
-        (?\\e,bk\e(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
-        (?\\e,bl\e(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE
-        (?\\e,bm\e(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE
-        (?\\e,bn\e(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
-        (?\\e,bo\e(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
-        (?\\e,bp\e(B . ?\x00F0) ;; LATIN SMALL LETTER ETH
-        (?\\e,bq\e(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE
-        (?\\e,br\e(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE
-        (?\\e,bs\e(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE
-        (?\\e,bt\e(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
-        (?\\e,bu\e(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE
-        (?\\e,bv\e(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS
-        (?\\e,bw\e(B . ?\x00F7) ;; DIVISION SIGN
-        (?\\e,bx\e(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE
-        (?\\e,by\e(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE
-        (?\\e,bz\e(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE
-        (?\\e,b{\e(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
-        (?\\e,b|\e(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
-        (?\\e,b}\e(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE
-        (?\\e,b~\e(B . ?\x00FE) ;; LATIN SMALL LETTER THORN
-        (?\\e,b\7f\e(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS
-        ))
-
-      (ucs-8859-1-alist
-       (let ((i 160)
-            l)
-        (while (< i 256)
-          (push (cons (make-char 'latin-iso8859-1 (- i 128)) i)
-                l)
-          (setq i (1+ i)))
-        (nreverse l))))
-
-  ;; Note: Here, using decode-char is safe because
-  ;; utf-fragment-on-decoding is by default nil, thus the translation
-  ;; table `utf-translation-table-for-decode' does nothing.
-
-  ;; Convert the lists to the basic char tables.
-  (dolist (n (list 15 14 9 8 7 6 5 4 3 2 1))
-    (let ((alist (symbol-value (intern (format "ucs-8859-%d-alist" n)))))
-      (dolist (pair alist)
-       (let ((mule (car pair))
-             (uc (cdr pair))
-             (mu (decode-char 'ucs (cdr pair))))
-         (aset ucs-mule-8859-to-ucs-table mule uc)
-         ;;      (aset ucs-ucs-to-mule-8859-table uc mule)
-         ;;      (aset ucs-mule-unicode-to-mule-8859 mu mule)
-         (aset ucs-mule-8859-to-mule-unicode mule mu)
-         (aset ucs-mule-to-mule-unicode mule mu)))))
-
-  ;; Derive tables that can be used as per-coding-system
-  ;; `translation-table-for-encode's.
-  ;; N.B., there's no 8859-6 coding system.
-  (dolist (n (list 15 14 9 8 7 5 4 3 2 1))
-    (let* ((alist (symbol-value (intern (format "ucs-8859-%d-alist" n))))
-          (encode-translator (set (intern (format "ucs-8859-%d-encode-table"
-                                                  n))
-                                  (make-translation-table)))
-          (coding-system
-           (coding-system-base (intern (format "iso-8859-%d" n))))
-          (dependency (coding-system-get coding-system 'dependency))
-          elt)
-      ;; Start with the mule-unicode component (except for latin-iso8859-1).
-      (if (/= n 1)
-         (dolist (pair alist)
-           (let ((mule (car pair))
-                 (mu (decode-char 'ucs (cdr pair))))
-             (aset encode-translator mu mule))))
-      ;; Find characters from other 8859 sets which map to the same
-      ;; unicode as some character in this set.
-      (map-char-table (lambda (k v)
-                       (if (and (setq elt (rassq v alist))
-                                (not (assq k alist)))
-                           (aset encode-translator k (car elt))))
-                     ucs-mule-8859-to-ucs-table)
-      (optimize-char-table encode-translator)
-
-      (or (memq 'unify-8859-on-encoding-mode dependency)
-         (setq dependency (cons 'unify-8859-on-encoding-mode dependency)))
-      (or (memq 'unify-8859-on-decoding-mode dependency)
-         (setq dependency (cons 'unify-8859-on-decoding-mode dependency)))
-      (coding-system-put coding-system 'dependency dependency))))
-
-(defun ucs-unify-8859 (for-encode for-decode)
-  "Set up translation-tables for unifying characters from ISO 8859.
-
-On decoding, non-ASCII characters are mapped into the `iso-latin-1'
-and `mule-unicode-0100-24ff' charsets.  On encoding, these are mapped
-back appropriate for the coding system.
-
-With prefix arg, do unification on encoding only, i.e. don't unify
-everything on input operations."
-  (when for-decode
-    ;; Unify 8859 on decoding.  (Non-CCL coding systems only.)
-    (if utf-fragment-on-decoding
-       (progn (map-char-table
-               (lambda (k v)
-                 (if v (aset ucs-mule-8859-to-mule-unicode v nil)))
-               utf-fragmentation-table)
-              (optimize-char-table ucs-mule-8859-to-mule-unicode))
-      ;; Reset in case it was changed.
-      (map-char-table
-       (lambda (k v)
-        (if v (aset ucs-mule-8859-to-mule-unicode v k)))
-       utf-fragmentation-table))
-
-    ;; For non-CCL coding systems (e.g. iso-latin-2).
-    (set-char-table-parent standard-translation-table-for-decode
-                          ucs-mule-8859-to-mule-unicode)
-    ;; For CCL coding systems other than mule-utf-*
-    (define-translation-table 'ucs-translation-table-for-decode
-      ucs-mule-8859-to-mule-unicode)
-
-    ;; Translate Quail input globally.
-    (setq-default translation-table-for-input ucs-mule-to-mule-unicode)
-    ;; In case this is set up, but we should use the global
-    ;; translation-table.
-    (remove-hook 'minibuffer-setup-hook 'ucs-minibuffer-setup))
-
-  (when for-encode
-    ;; Make mule-utf-* encode all characters in ucs-mule-to-mule-unicode.
-    (let ((coding-list '(mule-utf-8 mule-utf-16be mule-utf-16le
-                                   mule-utf-16be-with-signature
-                                   mule-utf-16le-with-signature)))
-      (define-translation-table 'utf-translation-table-for-encode
-       ucs-mule-to-mule-unicode)
-      (dolist (coding coding-list)
-       (set-char-table-parent (coding-system-get coding 'safe-chars)
-                              ucs-mule-to-mule-unicode)))
-
-    ;; Adjust the 8859 coding systems to fragment the unified characters
-    ;; on encoding.
-    (dolist (n '(1 2 3 4 5 7 8 9 14 15))
-      (let* ((coding-system
-             (coding-system-base (intern (format "iso-8859-%d" n))))
-            (table (symbol-value
-                    (intern (format "ucs-8859-%d-encode-table" n))))
-            (safe (coding-system-get coding-system 'safe-chars)))
-       ;; Actually, the coding system's safe-chars are not normally
-       ;; used after they've been registered, but we might as well
-       ;; record them.  Setting the parent here is a convenience.
-       (set-char-table-parent safe table)
-       (coding-system-put coding-system 'translation-table-for-encode table)))
-    (add-hook 'minibuffer-setup-hook 'ucs-minibuffer-setup)))
-
-(defun ucs-fragment-8859 (for-encode for-decode)
-  "Undo the unification done by `ucs-unify-8859'.
-With prefix arg, undo unification on encoding only, i.e. don't undo
-unification on input operations."
-  (when for-decode
-    ;; Don't Unify 8859 on decoding.
-    ;; For non-CCL coding systems (e.g. iso-latin-2).
-    (set-char-table-parent standard-translation-table-for-decode nil)
-    ;; For CCL coding systems other than mule-utf-* (e.g. cyrillic-koi8).
-    (define-translation-table 'ucs-translation-table-for-decode)
-    (setq-default translation-table-for-input nil))
-
-  (when for-encode
-    ;; Disable mule-utf-* encoding for all characters in
-    ;; ucs-mule-to-mule-unicode except what was originally supported
-    ;; and what is translated by utf-translation-table-for-decode when
-    ;; `utf-fragment-on-decoding' is non-nil.
-    (let ((coding-list '(mule-utf-8 mule-utf-16be mule-utf-16le
-                                   mule-utf-16be-with-signature
-                                   mule-utf-16le-with-signature))
-         (safe (coding-system-get 'mule-utf-8 'safe-chars)))
-      (dolist (coding coding-list)
-       (set-char-table-parent (coding-system-get coding 'safe-chars) nil))
-      (if (not utf-fragment-on-decoding)
-         (define-translation-table 'utf-translation-table-for-encode)
-       (define-translation-table 'utf-translation-table-for-encode
-         utf-defragmentation-table)))
-
-    ;; For each charset, remove the parent of `safe-chars' property of
-    ;; the corresponding coding system.
-    (dolist (n '(1 2 3 4 5 7 8 9 14 15))
-      (let* ((coding-system
-             (coding-system-base (intern (format "iso-8859-%d" n))))
-            (safe (coding-system-get coding-system 'safe-chars)))
-       (if (char-table-parent safe)
-           (set-char-table-parent safe nil))
-       (coding-system-put coding-system 'translation-table-for-encode nil)))
-    (remove-hook 'minibuffer-setup-hook 'ucs-minibuffer-setup)))
-
-(defun ucs-insert (arg)
-  "Insert the Emacs character representation of the given Unicode.
-Interactively, prompts for a hex string giving the code."
-  (interactive "sUnicode (hex): ")
-  (or (integerp arg)
-      (setq arg (string-to-number arg 16)))
-  (let ((c (decode-char 'ucs arg)))
-    (if c
-       (insert c)
-      (if (or (< arg 0) (> arg #x10FFFF))
-         (error "Not a Unicode character code: 0x%X" arg)
-       (error "Character U+%04X is not yet supported" arg)))))
-
-;;; Dealing with non-8859 character sets.
-
-;; We only set up translation on encoding to utf-8.  Also translation
-;; tables ucs-CS-encode-table are constructed for some coding systems
-;; CS which could be used as `translation-table-for-encode', currently
-;; for indian-is13194, lao, thai, tibetan-iso-8bit and
-;; vietnamese-viscii.
-
-;; The alists here cover both coding systems (external charsets), like
-;; VISCII, and individual Emacs charsets, like `ipa'.
-(let ((vietnamese-viscii
-       '((?\e,1!\e(B . ?\e$,1o/\e(B)
-        (?\e,1"\e(B . ?\e$,1o1\e(B)
-        (?\e,1#\e(B . ?\e$,1o7\e(B)
-        (?\e,1$\e(B . ?\e$,1o%\e(B)
-        (?\e,1%\e(B . ?\e$,1o'\e(B)
-        (?\e,1&\e(B . ?\e$,1o)\e(B)
-        (?\e,1'\e(B . ?\e$,1o-\e(B)
-        (?\e,1(\e(B . ?\e$,1o=\e(B)
-        (?\e,1)\e(B . ?\e$,1o9\e(B)
-        (?\e,1*\e(B . ?\e$,1o?\e(B)
-        (?\e,1+\e(B . ?\e$,1oA\e(B)
-        (?\e,1,\e(B . ?\e$,1oC\e(B)
-        (?\e,1-\e(B . ?\e$,1oE\e(B)
-        (?\e,1.\e(B . ?\e$,1oG\e(B)
-        (?\e,1/\e(B . ?\e$,1oQ\e(B)
-        (?\e,10\e(B . ?\e$,1oS\e(B)
-        (?\e,11\e(B . ?\e$,1oU\e(B)
-        (?\e,12\e(B . ?\e$,1oW\e(B)
-        (?\e,15\e(B . ?\e$,1oY\e(B)
-        (?\e,16\e(B . ?\e$,1o]\e(B)
-        (?\e,17\e(B . ?\e$,1o_\e(B)
-        (?\e,18\e(B . ?\e$,1oK\e(B)
-        (?\e,1=\e(B . ?\e$,1!a\e(B)
-        (?\e,1>\e(B . ?\e$,1o[\e(B)
-        (?\e,1F\e(B . ?\e$,1o3\e(B)
-        (?\e,1G\e(B . ?\e$,1o5\e(B)
-        (?\e,1O\e(B . ?\e$,1os\e(B)
-        (?\e,1Q\e(B . ?\e$,1oi\e(B)
-        (?\e,1U\e(B . ?\e$,1o!\e(B)
-        (?\e,1V\e(B . ?\e$,1ow\e(B)
-        (?\e,1W\e(B . ?\e$,1ok\e(B)
-        (?\e,1X\e(B . ?\e$,1om\e(B)
-        (?\e,1[\e(B . ?\e$,1oy\e(B)
-        (?\e,1\\e(B . ?\e$,1ou\e(B)
-        (?\e,1^\e(B . ?\e$,1oa\e(B)
-        (?\e,1_\e(B . ?\e$,1!p\e(B)
-        (?\e,1`\e(B . ?\e,A`\e(B)
-        (?\e,1a\e(B . ?\e,Aa\e(B)
-        (?\e,1b\e(B . ?\e,Ab\e(B)
-        (?\e,1c\e(B . ?\e,Ac\e(B)
-        (?\e,1d\e(B . ?\e$,1o#\e(B)
-        (?\e,1e\e(B . ?\e$,1 #\e(B)
-        (?\e,1f\e(B . ?\e$,1oo\e(B)
-        (?\e,1g\e(B . ?\e$,1o+\e(B)
-        (?\e,1h\e(B . ?\e,Ah\e(B)
-        (?\e,1i\e(B . ?\e,Ai\e(B)
-        (?\e,1j\e(B . ?\e,Aj\e(B)
-        (?\e,1k\e(B . ?\e$,1o;\e(B)
-        (?\e,1l\e(B . ?\e,Al\e(B)
-        (?\e,1m\e(B . ?\e,Am\e(B)
-        (?\e,1n\e(B . ?\e$,1 I\e(B)
-        (?\e,1o\e(B . ?\e$,1oI\e(B)
-        (?\e,1p\e(B . ?\e$,1 1\e(B)
-        (?\e,1q\e(B . ?\e$,1oq\e(B)
-        (?\e,1r\e(B . ?\e,Ar\e(B)
-        (?\e,1s\e(B . ?\e,As\e(B)
-        (?\e,1t\e(B . ?\e,At\e(B)
-        (?\e,1u\e(B . ?\e,Au\e(B)
-        (?\e,1v\e(B . ?\e$,1oO\e(B)
-        (?\e,1w\e(B . ?\e$,1oM\e(B)
-        (?\e,1x\e(B . ?\e$,1oe\e(B)
-        (?\e,1y\e(B . ?\e,Ay\e(B)
-        (?\e,1z\e(B . ?\e,Az\e(B)
-        (?\e,1{\e(B . ?\e$,1!)\e(B)
-        (?\e,1|\e(B . ?\e$,1og\e(B)
-        (?\e,1}\e(B . ?\e,A}\e(B)
-        (?\e,1~\e(B . ?\e$,1oc\e(B)
-
-        (?\e,2!\e(B . ?\e$,1o.\e(B)
-        (?\e,2"\e(B . ?\e$,1o0\e(B)
-        (?\e,2#\e(B . ?\e$,1o6\e(B)
-        (?\e,2$\e(B . ?\e$,1o$\e(B)
-        (?\e,2%\e(B . ?\e$,1o&\e(B)
-        (?\e,2&\e(B . ?\e$,1o(\e(B)
-        (?\e,2'\e(B . ?\e$,1o,\e(B)
-        (?\e,2(\e(B . ?\e$,1o<\e(B)
-        (?\e,2)\e(B . ?\e$,1o8\e(B)
-        (?\e,2*\e(B . ?\e$,1o>\e(B)
-        (?\e,2+\e(B . ?\e$,1o@\e(B)
-        (?\e,2,\e(B . ?\e$,1oB\e(B)
-        (?\e,2-\e(B . ?\e$,1oD\e(B)
-        (?\e,2.\e(B . ?\e$,1oF\e(B)
-        (?\e,2/\e(B . ?\e$,1oP\e(B)
-        (?\e,20\e(B . ?\e$,1oR\e(B)
-        (?\e,21\e(B . ?\e$,1oT\e(B)
-        (?\e,22\e(B . ?\e$,1oV\e(B)
-        (?\e,25\e(B . ?\e$,1oX\e(B)
-        (?\e,26\e(B . ?\e$,1o\\e(B)
-        (?\e,27\e(B . ?\e$,1o^\e(B)
-        (?\e,28\e(B . ?\e$,1oJ\e(B)
-        (?\e,2=\e(B . ?\e$,1!`\e(B)
-        (?\e,2>\e(B . ?\e$,1oZ\e(B)
-        (?\e,2F\e(B . ?\e$,1o2\e(B)
-        (?\e,2G\e(B . ?\e$,1o4\e(B)
-        (?\e,2O\e(B . ?\e$,1or\e(B)
-        (?\e,2Q\e(B . ?\e$,1oh\e(B)
-        (?\e,2U\e(B . ?\e$,1o \e(B)
-        (?\e,2V\e(B . ?\e$,1ov\e(B)
-        (?\e,2W\e(B . ?\e$,1oj\e(B)
-        (?\e,2X\e(B . ?\e$,1ol\e(B)
-        (?\e,2[\e(B . ?\e$,1ox\e(B)
-        (?\e,2\\e(B . ?\e$,1ot\e(B)
-        (?\e,2^\e(B . ?\e$,1o`\e(B)
-        (?\e,2_\e(B . ?\e$,1!o\e(B)
-        (?\e,2`\e(B . ?\e,A@\e(B)
-        (?\e,2a\e(B . ?\e,AA\e(B)
-        (?\e,2b\e(B . ?\e,AB\e(B)
-        (?\e,2c\e(B . ?\e,AC\e(B)
-        (?\e,2d\e(B . ?\e$,1o"\e(B)
-        (?\e,2e\e(B . ?\e$,1 "\e(B)
-        (?\e,2f\e(B . ?\e$,1on\e(B)
-        (?\e,2g\e(B . ?\e$,1o*\e(B)
-        (?\e,2h\e(B . ?\e,AH\e(B)
-        (?\e,2i\e(B . ?\e,AI\e(B)
-        (?\e,2j\e(B . ?\e,AJ\e(B)
-        (?\e,2k\e(B . ?\e$,1o:\e(B)
-        (?\e,2l\e(B . ?\e,AL\e(B)
-        (?\e,2m\e(B . ?\e,AM\e(B)
-        (?\e,2n\e(B . ?\e$,1 H\e(B)
-        (?\e,2o\e(B . ?\e$,1oH\e(B)
-        (?\e,2p\e(B . ?\e$,1 0\e(B)
-        (?\e,2q\e(B . ?\e$,1op\e(B)
-        (?\e,2r\e(B . ?\e,AR\e(B)
-        (?\e,2s\e(B . ?\e,AS\e(B)
-        (?\e,2t\e(B . ?\e,AT\e(B)
-        (?\e,2u\e(B . ?\e,AU\e(B)
-        (?\e,2v\e(B . ?\e$,1oN\e(B)
-        (?\e,2w\e(B . ?\e$,1oL\e(B)
-        (?\e,2x\e(B . ?\e$,1od\e(B)
-        (?\e,2y\e(B . ?\e,AY\e(B)
-        (?\e,2z\e(B . ?\e,AZ\e(B)
-        (?\e,2{\e(B . ?\e$,1!(\e(B)
-        (?\e,2|\e(B . ?\e$,1of\e(B)
-        (?\e,2}\e(B . ?\e,A]\e(B)
-        (?\e,2~\e(B . ?\e$,1ob\e(B)))
-
-      (thai-tis620
-       '((?\e,T!\e(B . ?\e$,1Ba\e(B)
-        (?\e,T"\e(B . ?\e$,1Bb\e(B)
-        (?\e,T#\e(B . ?\e$,1Bc\e(B)
-        (?\e,T$\e(B . ?\e$,1Bd\e(B)
-        (?\e,T%\e(B . ?\e$,1Be\e(B)
-        (?\e,T&\e(B . ?\e$,1Bf\e(B)
-        (?\e,T'\e(B . ?\e$,1Bg\e(B)
-        (?\e,T(\e(B . ?\e$,1Bh\e(B)
-        (?\e,T)\e(B . ?\e$,1Bi\e(B)
-        (?\e,T*\e(B . ?\e$,1Bj\e(B)
-        (?\e,T+\e(B . ?\e$,1Bk\e(B)
-        (?\e,T,\e(B . ?\e$,1Bl\e(B)
-        (?\e,T-\e(B . ?\e$,1Bm\e(B)
-        (?\e,T.\e(B . ?\e$,1Bn\e(B)
-        (?\e,T/\e(B . ?\e$,1Bo\e(B)
-        (?\e,T0\e(B . ?\e$,1Bp\e(B)
-        (?\e,T1\e(B . ?\e$,1Bq\e(B)
-        (?\e,T2\e(B . ?\e$,1Br\e(B)
-        (?\e,T3\e(B . ?\e$,1Bs\e(B)
-        (?\e,T4\e(B . ?\e$,1Bt\e(B)
-        (?\e,T5\e(B . ?\e$,1Bu\e(B)
-        (?\e,T6\e(B . ?\e$,1Bv\e(B)
-        (?\e,T7\e(B . ?\e$,1Bw\e(B)
-        (?\e,T8\e(B . ?\e$,1Bx\e(B)
-        (?\e,T9\e(B . ?\e$,1By\e(B)
-        (?\e,T:\e(B . ?\e$,1Bz\e(B)
-        (?\e,T;\e(B . ?\e$,1B{\e(B)
-        (?\e,T<\e(B . ?\e$,1B|\e(B)
-        (?\e,T=\e(B . ?\e$,1B}\e(B)
-        (?\e,T>\e(B . ?\e$,1B~\e(B)
-        (?\e,T?\e(B . ?\e$,1B\7f\e(B)
-        (?\e,T@\e(B . ?\e$,1C \e(B)
-        (?\e,TA\e(B . ?\e$,1C!\e(B)
-        (?\e,TB\e(B . ?\e$,1C"\e(B)
-        (?\e,TC\e(B . ?\e$,1C#\e(B)
-        (?\e,TD\e(B . ?\e$,1C$\e(B)
-        (?\e,TE\e(B . ?\e$,1C%\e(B)
-        (?\e,TF\e(B . ?\e$,1C&\e(B)
-        (?\e,TG\e(B . ?\e$,1C'\e(B)
-        (?\e,TH\e(B . ?\e$,1C(\e(B)
-        (?\e,TI\e(B . ?\e$,1C)\e(B)
-        (?\e,TJ\e(B . ?\e$,1C*\e(B)
-        (?\e,TK\e(B . ?\e$,1C+\e(B)
-        (?\e,TL\e(B . ?\e$,1C,\e(B)
-        (?\e,TM\e(B . ?\e$,1C-\e(B)
-        (?\e,TN\e(B . ?\e$,1C.\e(B)
-        (?\e,TO\e(B . ?\e$,1C/\e(B)
-        (?\e,TP\e(B . ?\e$,1C0\e(B)
-        (?\e,TQ\e(B . ?\e$,1C1\e(B)
-        (?\e,TR\e(B . ?\e$,1C2\e(B)
-        (?\e,TS\e(B . ?\e$,1C3\e(B)
-        (?\e,TT\e(B . ?\e$,1C4\e(B)
-        (?\e,TU\e(B . ?\e$,1C5\e(B)
-        (?\e,TV\e(B . ?\e$,1C6\e(B)
-        (?\e,TW\e(B . ?\e$,1C7\e(B)
-        (?\e,TX\e(B . ?\e$,1C8\e(B)
-        (?\e,TY\e(B . ?\e$,1C9\e(B)
-        (?\e,TZ\e(B . ?\e$,1C:\e(B)
-        (?\e,T_\e(B . ?\e$,1C?\e(B)
-        (?\e,T`\e(B . ?\e$,1C@\e(B)
-        (?\e,Ta\e(B . ?\e$,1CA\e(B)
-        (?\e,Tb\e(B . ?\e$,1CB\e(B)
-        (?\e,Tc\e(B . ?\e$,1CC\e(B)
-        (?\e,Td\e(B . ?\e$,1CD\e(B)
-        (?\e,Te\e(B . ?\e$,1CE\e(B)
-        (?\e,Tf\e(B . ?\e$,1CF\e(B)
-        (?\e,Tg\e(B . ?\e$,1CG\e(B)
-        (?\e,Th\e(B . ?\e$,1CH\e(B)
-        (?\e,Ti\e(B . ?\e$,1CI\e(B)
-        (?\e,Tj\e(B . ?\e$,1CJ\e(B)
-        (?\e,Tk\e(B . ?\e$,1CK\e(B)
-        (?\e,Tl\e(B . ?\e$,1CL\e(B)
-        (?\e,Tm\e(B . ?\e$,1CM\e(B)
-        (?\e,Tn\e(B . ?\e$,1CN\e(B)
-        (?\e,To\e(B . ?\e$,1CO\e(B)
-        (?\e,Tp\e(B . ?\e$,1CP\e(B)
-        (?\e,Tq\e(B . ?\e$,1CQ\e(B)
-        (?\e,Tr\e(B . ?\e$,1CR\e(B)
-        (?\e,Ts\e(B . ?\e$,1CS\e(B)
-        (?\e,Tt\e(B . ?\e$,1CT\e(B)
-        (?\e,Tu\e(B . ?\e$,1CU\e(B)
-        (?\e,Tv\e(B . ?\e$,1CV\e(B)
-        (?\e,Tw\e(B . ?\e$,1CW\e(B)
-        (?\e,Tx\e(B . ?\e$,1CX\e(B)
-        (?\e,Ty\e(B . ?\e$,1CY\e(B)
-        (?\e,Tz\e(B . ?\e$,1CZ\e(B)
-        (?\e,T{\e(B . ?\e$,1C[\e(B)))
-
-      (tibetan-iso-8bit
-       '((?\e$(7!0\e(B . ?\e$,1E@\e(B)
-        (?\e$(7!1\e(B . ?\e$,1EA\e(B)
-        (?\e$(7!2\e(B . ?\e$,1EB\e(B)
-        (?\e$(7!3\e(B . ?\e$,1EC\e(B)
-        (?\e$(7!4\e(B . ?\e$,1ED\e(B)
-        (?\e$(7!5\e(B . ?\e$,1EE\e(B)
-        (?\e$(7!6\e(B . ?\e$,1EF\e(B)
-        (?\e$(7!7\e(B . ?\e$,1EG\e(B)
-        (?\e$(7!8\e(B . ?\e$,1EH\e(B)
-        (?\e$(7!9\e(B . ?\e$,1EI\e(B)
-        (?\e$(7!:\e(B . ?\e$,1EJ\e(B)
-        (?\e$(7!;\e(B . ?\e$,1EK\e(B)
-        (?\e$(7!<\e(B . ?\e$,1EL\e(B)
-        (?\e$(7!=\e(B . ?\e$,1EM\e(B)
-        (?\e$(7!>\e(B . ?\e$,1EN\e(B)
-        (?\e$(7!?\e(B . ?\e$,1EO\e(B)
-        (?\e$(7!@\e(B . ?\e$,1EP\e(B)
-        (?\e$(7!A\e(B . ?\e$,1EQ\e(B)
-        (?\e$(7!B\e(B . ?\e$,1ER\e(B)
-        (?\e$(7!C\e(B . ?\e$,1ES\e(B)
-        (?\e$(7!D\e(B . ?\e$,1ET\e(B)
-        (?\e$(7!E\e(B . ?\e$,1EU\e(B)
-        (?\e$(7!F\e(B . ?\e$,1EV\e(B)
-        (?\e$(7!G\e(B . ?\e$,1EW\e(B)
-        (?\e$(7!H\e(B . ?\e$,1EX\e(B)
-        (?\e$(7!I\e(B . ?\e$,1EY\e(B)
-        (?\e$(7!J\e(B . ?\e$,1EZ\e(B)
-        (?\e$(7!K\e(B . ?\e$,1E[\e(B)
-        (?\e$(7!L\e(B . ?\e$,1E\\e(B)
-        (?\e$(7!M\e(B . ?\e$,1E]\e(B)
-        (?\e$(7!N\e(B . ?\e$,1E^\e(B)
-        (?\e$(7!O\e(B . ?\e$,1E_\e(B)
-        (?\e$(7!P\e(B . ?\e$,1E`\e(B)
-        (?\e$(7!Q\e(B . ?\e$,1Ea\e(B)
-        (?\e$(7!R\e(B . ?\e$,1Eb\e(B)
-        (?\e$(7!S\e(B . ?\e$,1Ec\e(B)
-        (?\e$(7!T\e(B . ?\e$,1Ed\e(B)
-        (?\e$(7!U\e(B . ?\e$,1Ee\e(B)
-        (?\e$(7!V\e(B . ?\e$,1Ef\e(B)
-        (?\e$(7!W\e(B . ?\e$,1Eg\e(B)
-        (?\e$(7!X\e(B . ?\e$,1Eh\e(B)
-        (?\e$(7!Y\e(B . ?\e$,1Ei\e(B)
-        (?\e$(7!Z\e(B . ?\e$,1Ej\e(B)
-        (?\e$(7![\e(B . ?\e$,1Ek\e(B)
-        (?\e$(7!\\e(B . ?\e$,1El\e(B)
-        (?\e$(7!]\e(B . ?\e$,1Em\e(B)
-        (?\e$(7!^\e(B . ?\e$,1En\e(B)
-        (?\e$(7!_\e(B . ?\e$,1Eo\e(B)
-        (?\e$(7!`\e(B . ?\e$,1Ep\e(B)
-        (?\e$(7!a\e(B . ?\e$,1Eq\e(B)
-        (?\e$(7!b\e(B . ?\e$,1Er\e(B)
-        (?\e$(7!c\e(B . ?\e$,1Es\e(B)
-        (?\e$(7!d\e(B . ?\e$,1Et\e(B)
-        (?\e$(7!e\e(B . ?\e$,1Eu\e(B)
-        (?\e$(7!f\e(B . ?\e$,1Ev\e(B)
-        (?\e$(7!g\e(B . ?\e$,1Ew\e(B)
-        (?\e$(7!h\e(B . ?\e$,1Ex\e(B)
-        (?\e$(7!i\e(B . ?\e$,1Ey\e(B)
-        (?\e$(7!j\e(B . ?\e$,1Ez\e(B)
-        (?\e$(7!k\e(B . ?\e$,1E{\e(B)
-        (?\e$(7!l\e(B . ?\e$,1E|\e(B)
-        (?\e$(7!m\e(B . ?\e$,1E}\e(B)
-        (?\e$(7!n\e(B . ?\e$,1E~\e(B)
-        (?\e$(7!o\e(B . ?\e$,1E\7f\e(B)
-        (?\e$(7"!\e(B . ?\e$,1F \e(B)
-        (?\e$(7""\e(B . ?\e$,1F!\e(B)
-        (?\e$(7"#\e(B . ?\e$,1F"\e(B)
-        (?\e$(7"$\e(B . ?\e$,1F#\e(B)
-        (?\e$(7"%\e(B . ?\e$,1F$\e(B)
-        (?\e$(7"&\e(B . ?\e$,1F%\e(B)
-        (?\e$(7"'\e(B . ?\e$,1F&\e(B)
-        (?\e$(7"(\e(B . ?\e$,1F'\e(B)
-        (?\e$(7"*\e(B . ?\e$,1F)\e(B)
-        (?\e$(7"+\e(B . ?\e$,1F*\e(B)
-        (?\e$(7",\e(B . ?\e$,1F+\e(B)
-        (?\e$(7"-\e(B . ?\e$,1F,\e(B)
-        (?\e$(7".\e(B . ?\e$,1F-\e(B)
-        (?\e$(7"/\e(B . ?\e$,1F.\e(B)
-        (?\e$(7"0\e(B . ?\e$,1F/\e(B)
-        (?\e$(7"1\e(B . ?\e$,1F0\e(B)
-        (?\e$(7"2\e(B . ?\e$,1F1\e(B)
-        (?\e$(7"3\e(B . ?\e$,1F2\e(B)
-        (?\e$(7"4\e(B . ?\e$,1F3\e(B)
-        (?\e$(7"5\e(B . ?\e$,1F4\e(B)
-        (?\e$(7"6\e(B . ?\e$,1F5\e(B)
-        (?\e$(7"7\e(B . ?\e$,1F6\e(B)
-        (?\e$(7"8\e(B . ?\e$,1F7\e(B)
-        (?\e$(7"9\e(B . ?\e$,1F8\e(B)
-        (?\e$(7":\e(B . ?\e$,1F9\e(B)
-        (?\e$(7";\e(B . ?\e$,1F:\e(B)
-        (?\e$(7"<\e(B . ?\e$,1F;\e(B)
-        (?\e$(7"=\e(B . ?\e$,1F<\e(B)
-        (?\e$(7">\e(B . ?\e$,1F=\e(B)
-        (?\e$(7"?\e(B . ?\e$,1F>\e(B)
-        (?\e$(7"@\e(B . ?\e$,1F?\e(B)
-        (?\e$(7"A\e(B . ?\e$,1F@\e(B)
-        (?\e$(7"B\e(B . ?\e$,1FA\e(B)
-        (?\e$(7"C\e(B . ?\e$,1FB\e(B)
-        (?\e$(7"D\e(B . ?\e$,1FC\e(B)
-        (?\e$(7"E\e(B . ?\e$,1FD\e(B)
-        (?\e$(7"F\e(B . ?\e$,1FE\e(B)
-        (?\e$(7"G\e(B . ?\e$,1FF\e(B)
-        (?\e$(7"H\e(B . ?\e$,1FG\e(B)
-        (?\e$(7"I\e(B . ?\e$,1FH\e(B)
-        (?\e$(7"J\e(B . ?\e$,1FI\e(B)
-        (?\e$(7"K\e(B . ?\e$,1FJ\e(B)
-        (?\e$(7"R\e(B . ?\e$,1FQ\e(B)
-        (?\e$(7"S\e(B . ?\e$,1FR\e(B)
-        (?\e$(7"T\e(B . ?\e$,1FS\e(B)
-        (?\e$(7"U\e(B . ?\e$,1FT\e(B)
-        (?\e$(7"V\e(B . ?\e$,1FU\e(B)
-        (?\e$(7"W\e(B . ?\e$,1FV\e(B)
-        (?\e$(7"X\e(B . ?\e$,1FW\e(B)
-        (?\e$(7"Y\e(B . ?\e$,1FX\e(B)
-        (?\e$(7"Z\e(B . ?\e$,1FY\e(B)
-        (?\e$(7"[\e(B . ?\e$,1FZ\e(B)
-        (?\e$(7"\\e(B . ?\e$,1F[\e(B)
-        (?\e$(7"]\e(B . ?\e$,1F\\e(B)
-        (?\e$(7"^\e(B . ?\e$,1F]\e(B)
-        (?\e$(7"_\e(B . ?\e$,1F^\e(B)
-        (?\e$(7"`\e(B . ?\e$,1F_\e(B)
-        (?\e$(7"a\e(B . ?\e$,1F`\e(B)
-        (?\e$(7"b\e(B . ?\e$,1Fa\e(B)
-        (?\e$(7"c\e(B . ?\e$,1Fb\e(B)
-        (?\e$(7"d\e(B . ?\e$,1Fc\e(B)
-        (?\e$(7"e\e(B . ?\e$,1Fd\e(B)
-        (?\e$(7"f\e(B . ?\e$,1Fe\e(B)
-        (?\e$(7"g\e(B . ?\e$,1Ff\e(B)
-        (?\e$(7"h\e(B . ?\e$,1Fg\e(B)
-        (?\e$(7"i\e(B . ?\e$,1Fh\e(B)
-        (?\e$(7"j\e(B . ?\e$,1Fi\e(B)
-        (?\e$(7"k\e(B . ?\e$,1Fj\e(B)
-        (?\e$(7"l\e(B . ?\e$,1Fk\e(B)
-        (?\e$(7#!\e(B . ?\e$,1Fp\e(B)
-        (?\e$(7#"\e(B . ?\e$,1Fq\e(B)
-        (?\e$(7##\e(B . ?\e$,1Fr\e(B)
-        (?\e$(7#$\e(B . ?\e$,1Fs\e(B)
-        (?\e$(7#%\e(B . ?\e$,1Ft\e(B)
-        (?\e$(7#&\e(B . ?\e$,1Fu\e(B)
-        (?\e$(7#'\e(B . ?\e$,1Fv\e(B)
-        (?\e$(7#(\e(B . ?\e$,1Fw\e(B)
-        (?\e$(7#*\e(B . ?\e$,1Fy\e(B)
-        (?\e$(7#+\e(B . ?\e$,1Fz\e(B)
-        (?\e$(7#,\e(B . ?\e$,1F{\e(B)
-        (?\e$(7#-\e(B . ?\e$,1F|\e(B)
-        (?\e$(7#.\e(B . ?\e$,1F}\e(B)
-        (?\e$(7#/\e(B . ?\e$,1F~\e(B)
-        (?\e$(7#0\e(B . ?\e$,1F\7f\e(B)
-        (?\e$(7#1\e(B . ?\e$,1G \e(B)
-        (?\e$(7#2\e(B . ?\e$,1G!\e(B)
-        (?\e$(7#3\e(B . ?\e$,1G"\e(B)
-        (?\e$(7#4\e(B . ?\e$,1G#\e(B)
-        (?\e$(7#5\e(B . ?\e$,1G$\e(B)
-        (?\e$(7#6\e(B . ?\e$,1G%\e(B)
-        (?\e$(7#7\e(B . ?\e$,1G&\e(B)
-        (?\e$(7#8\e(B . ?\e$,1G'\e(B)
-        (?\e$(7#9\e(B . ?\e$,1G(\e(B)
-        (?\e$(7#:\e(B . ?\e$,1G)\e(B)
-        (?\e$(7#;\e(B . ?\e$,1G*\e(B)
-        (?\e$(7#<\e(B . ?\e$,1G+\e(B)
-        (?\e$(7#=\e(B . ?\e$,1G,\e(B)
-        (?\e$(7#>\e(B . ?\e$,1G-\e(B)
-        (?\e$(7#?\e(B . ?\e$,1G.\e(B)
-        (?\e$(7#@\e(B . ?\e$,1G/\e(B)
-        (?\e$(7#A\e(B . ?\e$,1G0\e(B)
-        (?\e$(7#B\e(B . ?\e$,1G1\e(B)
-        (?\e$(7#C\e(B . ?\e$,1G2\e(B)
-        (?\e$(7#D\e(B . ?\e$,1G3\e(B)
-        (?\e$(7#E\e(B . ?\e$,1G4\e(B)
-        (?\e$(7#F\e(B . ?\e$,1G5\e(B)
-        (?\e$(7#G\e(B . ?\e$,1G6\e(B)
-        (?\e$(7#H\e(B . ?\e$,1G7\e(B)
-        (?\e$(7#I\e(B . ?\e$,1G8\e(B)
-        (?\e$(7#J\e(B . ?\e$,1G9\e(B)
-        (?\e$(7#K\e(B . ?\e$,1G:\e(B)
-        (?\e$(7#L\e(B . ?\e$,1G;\e(B)
-        (?\e$(7#M\e(B . ?\e$,1G<\e(B)
-        (?\e$(7#O\e(B . ?\e$,1G>\e(B)
-        (?\e$(7#P\e(B . ?\e$,1G?\e(B)
-        (?\e$(7#Q\e(B . ?\e$,1G@\e(B)
-        (?\e$(7#R\e(B . ?\e$,1GA\e(B)
-        (?\e$(7#S\e(B . ?\e$,1GB\e(B)
-        (?\e$(7#T\e(B . ?\e$,1GC\e(B)
-        (?\e$(7#U\e(B . ?\e$,1GD\e(B)
-        (?\e$(7#V\e(B . ?\e$,1GE\e(B)
-        (?\e$(7#W\e(B . ?\e$,1GF\e(B)
-        (?\e$(7#X\e(B . ?\e$,1GG\e(B)
-        (?\e$(7#Y\e(B . ?\e$,1GH\e(B)
-        (?\e$(7#Z\e(B . ?\e$,1GI\e(B)
-        (?\e$(7#[\e(B . ?\e$,1GJ\e(B)
-        (?\e$(7#\\e(B . ?\e$,1GK\e(B)
-        (?\e$(7#]\e(B . ?\e$,1GL\e(B)
-        (?\e$(7#`\e(B . ?\e$,1GO\e(B)))
-
-      (ipa
-       '((?\e,0 \e(B . ?i)
-        (?\e,0!\e(B . ?\e$,1#j\e(B)
-        (?\e,0"\e(B . ?e)
-        (?\e,0#\e(B . ?\e$,1#[\e(B)
-        (?\e,0$\e(B . ?\e,Af\e(B)
-        (?\e,0%\e(B . ?a)
-        (?\e,0&\e(B . ?\e$,1#h\e(B)
-        (?\e,0'\e(B . ?\e$,1#Y\e(B)
-        (?\e,0(\e(B . ?\e$,1#P\e(B)
-        (?\e,0)\e(B . ?\e$,1#o\e(B)
-        (?\e,0*\e(B . ?\e$,1#d\e(B)
-        (?\e,0+\e(B . ?\e$,1$,\e(B)
-        (?\e,0,\e(B . ?\e$,1#Q\e(B)
-        (?\e,0-\e(B . ?y)
-        (?\e,0.\e(B . ?\e$,1$/\e(B)
-        (?\e,0/\e(B . ?\e,Ax\e(B)
-        (?\e,00\e(B . ?\e$,1 s\e(B)
-        (?\e,01\e(B . ?\e$,1#v\e(B)
-        (?\e,02\e(B . ?\e$,1$)\e(B)
-        (?\e,03\e(B . ?\e$,1#u\e(B)
-        (?\e,04\e(B . ?u)
-        (?\e,05\e(B . ?\e$,1$*\e(B)
-        (?\e,06\e(B . ?o)
-        (?\e,07\e(B . ?\e$,1#T\e(B)
-        (?\e,08\e(B . ?\e$,1#R\e(B)
-        (?\e,0:\e(B . ?\e$,1#Z\e(B)
-        (?\e,0@\e(B . ?p)
-        (?\e,0A\e(B . ?b)
-        (?\e,0B\e(B . ?t)
-        (?\e,0C\e(B . ?d)
-        (?\e,0D\e(B . ?k)
-        (?\e,0E\e(B . ?g)
-        (?\e,0F\e(B . ?f)
-        (?\e,0G\e(B . ?v)
-        (?\e,0H\e(B . ?\e$,1'8\e(B)
-        (?\e,0I\e(B . ?\e,Ap\e(B)
-        (?\e,0J\e(B . ?s)
-        (?\e,0K\e(B . ?z)
-        (?\e,0L\e(B . ?\e$,1$#\e(B)
-        (?\e,0M\e(B . ?\e$,1$2\e(B)
-        (?\e,0N\e(B . ?\e,Ag\e(B)
-        (?\e,0O\e(B . ?x)
-        (?\e,0P\e(B . ?\e$,1$!\e(B)
-        (?\e,0Q\e(B . ?h)
-        (?\e,0R\e(B . ?m)
-        (?\e,0S\e(B . ?n)
-        (?\e,0T\e(B . ?\e$,1#r\e(B)
-        (?\e,0U\e(B . ?\e$,1 k\e(B)
-        (?\e,0V\e(B . ?r)
-        (?\e,0W\e(B . ?\e$,1$ \e(B)
-        (?\e,0X\e(B . ?\e$,1#y\e(B)
-        (?\e,0Y\e(B . ?j)
-        (?\e,0Z\e(B . ?l)
-        (?\e,0[\e(B . ?\e$,1$.\e(B)
-        (?\e,0\\e(B . ?\e$,1$?\e(B)
-        (?\e,0]\e(B . ?\e$,1#e\e(B)
-        (?\e,0^\e(B . ?w)
-        (?\e,0_\e(B . ?\e$,1$-\e(B)
-        (?\e,0p\e(B . ?\e$,1$h\e(B)
-        (?\e,0q\e(B . ?\e$,1$l\e(B)
-        (?\e,0r\e(B . ?\e$,1$p\e(B)))
-
-      (ethiopic
-       '((?\e$(3!!\e(B . ?\e$,1M@\e(B)
-        (?\e$(3!"\e(B . ?\e$,1MA\e(B)
-        (?\e$(3!#\e(B . ?\e$,1MB\e(B)
-        (?\e$(3!$\e(B . ?\e$,1MC\e(B)
-        (?\e$(3!%\e(B . ?\e$,1MD\e(B)
-        (?\e$(3!&\e(B . ?\e$,1ME\e(B)
-        (?\e$(3!'\e(B . ?\e$,1MF\e(B)
-        (?\e$(3!)\e(B . ?\e$,1MH\e(B)
-        (?\e$(3!*\e(B . ?\e$,1MI\e(B)
-        (?\e$(3!+\e(B . ?\e$,1MJ\e(B)
-        (?\e$(3!,\e(B . ?\e$,1MK\e(B)
-        (?\e$(3!-\e(B . ?\e$,1ML\e(B)
-        (?\e$(3!.\e(B . ?\e$,1MM\e(B)
-        (?\e$(3!/\e(B . ?\e$,1MN\e(B)
-        (?\e$(3!0\e(B . ?\e$,1MO\e(B)
-        (?\e$(3!1\e(B . ?\e$,1MP\e(B)
-        (?\e$(3!2\e(B . ?\e$,1MQ\e(B)
-        (?\e$(3!3\e(B . ?\e$,1MR\e(B)
-        (?\e$(3!4\e(B . ?\e$,1MS\e(B)
-        (?\e$(3!5\e(B . ?\e$,1MT\e(B)
-        (?\e$(3!6\e(B . ?\e$,1MU\e(B)
-        (?\e$(3!7\e(B . ?\e$,1MV\e(B)
-        (?\e$(3!8\e(B . ?\e$,1MW\e(B)
-        (?\e$(3!9\e(B . ?\e$,1MX\e(B)
-        (?\e$(3!:\e(B . ?\e$,1MY\e(B)
-        (?\e$(3!;\e(B . ?\e$,1MZ\e(B)
-        (?\e$(3!<\e(B . ?\e$,1M[\e(B)
-        (?\e$(3!=\e(B . ?\e$,1M\\e(B)
-        (?\e$(3!>\e(B . ?\e$,1M]\e(B)
-        (?\e$(3!?\e(B . ?\e$,1M^\e(B)
-        (?\e$(3!@\e(B . ?\e$,1M_\e(B)
-        (?\e$(3!A\e(B . ?\e$,1M`\e(B)
-        (?\e$(3!B\e(B . ?\e$,1Ma\e(B)
-        (?\e$(3!C\e(B . ?\e$,1Mb\e(B)
-        (?\e$(3!D\e(B . ?\e$,1Mc\e(B)
-        (?\e$(3!E\e(B . ?\e$,1Md\e(B)
-        (?\e$(3!F\e(B . ?\e$,1Me\e(B)
-        (?\e$(3!G\e(B . ?\e$,1Mf\e(B)
-        (?\e$(3!H\e(B . ?\e$,1Mg\e(B)
-        (?\e$(3!I\e(B . ?\e$,1Mh\e(B)
-        (?\e$(3!J\e(B . ?\e$,1Mi\e(B)
-        (?\e$(3!K\e(B . ?\e$,1Mj\e(B)
-        (?\e$(3!L\e(B . ?\e$,1Mk\e(B)
-        (?\e$(3!M\e(B . ?\e$,1Ml\e(B)
-        (?\e$(3!N\e(B . ?\e$,1Mm\e(B)
-        (?\e$(3!O\e(B . ?\e$,1Mn\e(B)
-        (?\e$(3!P\e(B . ?\e$,1Mo\e(B)
-        (?\e$(3!Q\e(B . ?\e$,1Mp\e(B)
-        (?\e$(3!R\e(B . ?\e$,1Mq\e(B)
-        (?\e$(3!S\e(B . ?\e$,1Mr\e(B)
-        (?\e$(3!T\e(B . ?\e$,1Ms\e(B)
-        (?\e$(3!U\e(B . ?\e$,1Mt\e(B)
-        (?\e$(3!V\e(B . ?\e$,1Mu\e(B)
-        (?\e$(3!W\e(B . ?\e$,1Mv\e(B)
-        (?\e$(3!X\e(B . ?\e$,1Mw\e(B)
-        (?\e$(3!Y\e(B . ?\e$,1Mx\e(B)
-        (?\e$(3!Z\e(B . ?\e$,1My\e(B)
-        (?\e$(3![\e(B . ?\e$,1Mz\e(B)
-        (?\e$(3!\\e(B . ?\e$,1M{\e(B)
-        (?\e$(3!]\e(B . ?\e$,1M|\e(B)
-        (?\e$(3!^\e(B . ?\e$,1M}\e(B)
-        (?\e$(3!_\e(B . ?\e$,1M~\e(B)
-        (?\e$(3!`\e(B . ?\e$,1M\7f\e(B)
-        (?\e$(3!a\e(B . ?\e$,1N \e(B)
-        (?\e$(3!b\e(B . ?\e$,1N!\e(B)
-        (?\e$(3!c\e(B . ?\e$,1N"\e(B)
-        (?\e$(3!d\e(B . ?\e$,1N#\e(B)
-        (?\e$(3!e\e(B . ?\e$,1N$\e(B)
-        (?\e$(3!f\e(B . ?\e$,1N%\e(B)
-        (?\e$(3!g\e(B . ?\e$,1N&\e(B)
-        (?\e$(3!i\e(B . ?\e$,1N(\e(B)
-        (?\e$(3!k\e(B . ?\e$,1N*\e(B)
-        (?\e$(3!l\e(B . ?\e$,1N+\e(B)
-        (?\e$(3!m\e(B . ?\e$,1N,\e(B)
-        (?\e$(3!n\e(B . ?\e$,1N-\e(B)
-        (?\e$(3!q\e(B . ?\e$,1N0\e(B)
-        (?\e$(3!r\e(B . ?\e$,1N1\e(B)
-        (?\e$(3!s\e(B . ?\e$,1N2\e(B)
-        (?\e$(3!t\e(B . ?\e$,1N3\e(B)
-        (?\e$(3!u\e(B . ?\e$,1N4\e(B)
-        (?\e$(3!v\e(B . ?\e$,1N5\e(B)
-        (?\e$(3!w\e(B . ?\e$,1N6\e(B)
-        (?\e$(3!y\e(B . ?\e$,1N8\e(B)
-        (?\e$(3!{\e(B . ?\e$,1N:\e(B)
-        (?\e$(3!|\e(B . ?\e$,1N;\e(B)
-        (?\e$(3!}\e(B . ?\e$,1N<\e(B)
-        (?\e$(3!~\e(B . ?\e$,1N=\e(B)
-        (?\e$(3"#\e(B . ?\e$,1N@\e(B)
-        (?\e$(3"$\e(B . ?\e$,1NA\e(B)
-        (?\e$(3"%\e(B . ?\e$,1NB\e(B)
-        (?\e$(3"&\e(B . ?\e$,1NC\e(B)
-        (?\e$(3"'\e(B . ?\e$,1ND\e(B)
-        (?\e$(3"(\e(B . ?\e$,1NE\e(B)
-        (?\e$(3")\e(B . ?\e$,1NF\e(B)
-        (?\e$(3"*\e(B . ?\e$,1NG\e(B)
-        (?\e$(3"+\e(B . ?\e$,1NH\e(B)
-        (?\e$(3",\e(B . ?\e$,1NI\e(B)
-        (?\e$(3"-\e(B . ?\e$,1NJ\e(B)
-        (?\e$(3".\e(B . ?\e$,1NK\e(B)
-        (?\e$(3"/\e(B . ?\e$,1NL\e(B)
-        (?\e$(3"0\e(B . ?\e$,1NM\e(B)
-        (?\e$(3"1\e(B . ?\e$,1NN\e(B)
-        (?\e$(3"2\e(B . ?\e$,1NO\e(B)
-        (?\e$(3"3\e(B . ?\e$,1NP\e(B)
-        (?\e$(3"4\e(B . ?\e$,1NQ\e(B)
-        (?\e$(3"5\e(B . ?\e$,1NR\e(B)
-        (?\e$(3"6\e(B . ?\e$,1NS\e(B)
-        (?\e$(3"7\e(B . ?\e$,1NT\e(B)
-        (?\e$(3"8\e(B . ?\e$,1NU\e(B)
-        (?\e$(3"9\e(B . ?\e$,1NV\e(B)
-        (?\e$(3":\e(B . ?\e$,1NW\e(B)
-        (?\e$(3";\e(B . ?\e$,1NX\e(B)
-        (?\e$(3"<\e(B . ?\e$,1NY\e(B)
-        (?\e$(3"=\e(B . ?\e$,1NZ\e(B)
-        (?\e$(3">\e(B . ?\e$,1N[\e(B)
-        (?\e$(3"?\e(B . ?\e$,1N\\e(B)
-        (?\e$(3"@\e(B . ?\e$,1N]\e(B)
-        (?\e$(3"A\e(B . ?\e$,1N^\e(B)
-        (?\e$(3"B\e(B . ?\e$,1N_\e(B)
-        (?\e$(3"C\e(B . ?\e$,1N`\e(B)
-        (?\e$(3"D\e(B . ?\e$,1Na\e(B)
-        (?\e$(3"E\e(B . ?\e$,1Nb\e(B)
-        (?\e$(3"F\e(B . ?\e$,1Nc\e(B)
-        (?\e$(3"G\e(B . ?\e$,1Nd\e(B)
-        (?\e$(3"H\e(B . ?\e$,1Ne\e(B)
-        (?\e$(3"I\e(B . ?\e$,1Nf\e(B)
-        (?\e$(3"K\e(B . ?\e$,1Nh\e(B)
-        (?\e$(3"M\e(B . ?\e$,1Nj\e(B)
-        (?\e$(3"N\e(B . ?\e$,1Nk\e(B)
-        (?\e$(3"O\e(B . ?\e$,1Nl\e(B)
-        (?\e$(3"P\e(B . ?\e$,1Nm\e(B)
-        (?\e$(3"S\e(B . ?\e$,1Np\e(B)
-        (?\e$(3"T\e(B . ?\e$,1Nq\e(B)
-        (?\e$(3"U\e(B . ?\e$,1Nr\e(B)
-        (?\e$(3"V\e(B . ?\e$,1Ns\e(B)
-        (?\e$(3"W\e(B . ?\e$,1Nt\e(B)
-        (?\e$(3"X\e(B . ?\e$,1Nu\e(B)
-        (?\e$(3"Y\e(B . ?\e$,1Nv\e(B)
-        (?\e$(3"Z\e(B . ?\e$,1Nw\e(B)
-        (?\e$(3"[\e(B . ?\e$,1Nx\e(B)
-        (?\e$(3"\\e(B . ?\e$,1Ny\e(B)
-        (?\e$(3"]\e(B . ?\e$,1Nz\e(B)
-        (?\e$(3"^\e(B . ?\e$,1N{\e(B)
-        (?\e$(3"_\e(B . ?\e$,1N|\e(B)
-        (?\e$(3"`\e(B . ?\e$,1N}\e(B)
-        (?\e$(3"a\e(B . ?\e$,1N~\e(B)
-        (?\e$(3"b\e(B . ?\e$,1N\7f\e(B)
-        (?\e$(3"c\e(B . ?\e$,1O \e(B)
-        (?\e$(3"d\e(B . ?\e$,1O!\e(B)
-        (?\e$(3"e\e(B . ?\e$,1O"\e(B)
-        (?\e$(3"f\e(B . ?\e$,1O#\e(B)
-        (?\e$(3"g\e(B . ?\e$,1O$\e(B)
-        (?\e$(3"h\e(B . ?\e$,1O%\e(B)
-        (?\e$(3"i\e(B . ?\e$,1O&\e(B)
-        (?\e$(3"j\e(B . ?\e$,1O'\e(B)
-        (?\e$(3"k\e(B . ?\e$,1O(\e(B)
-        (?\e$(3"l\e(B . ?\e$,1O)\e(B)
-        (?\e$(3"m\e(B . ?\e$,1O*\e(B)
-        (?\e$(3"n\e(B . ?\e$,1O+\e(B)
-        (?\e$(3"o\e(B . ?\e$,1O,\e(B)
-        (?\e$(3"p\e(B . ?\e$,1O-\e(B)
-        (?\e$(3"q\e(B . ?\e$,1O.\e(B)
-        (?\e$(3"s\e(B . ?\e$,1O0\e(B)
-        (?\e$(3"u\e(B . ?\e$,1O2\e(B)
-        (?\e$(3"v\e(B . ?\e$,1O3\e(B)
-        (?\e$(3"w\e(B . ?\e$,1O4\e(B)
-        (?\e$(3"x\e(B . ?\e$,1O5\e(B)
-        (?\e$(3"{\e(B . ?\e$,1O8\e(B)
-        (?\e$(3"|\e(B . ?\e$,1O9\e(B)
-        (?\e$(3"}\e(B . ?\e$,1O:\e(B)
-        (?\e$(3"~\e(B . ?\e$,1O;\e(B)
-        (?\e$(3#!\e(B . ?\e$,1O<\e(B)
-        (?\e$(3#"\e(B . ?\e$,1O=\e(B)
-        (?\e$(3##\e(B . ?\e$,1O>\e(B)
-        (?\e$(3#%\e(B . ?\e$,1O@\e(B)
-        (?\e$(3#'\e(B . ?\e$,1OB\e(B)
-        (?\e$(3#(\e(B . ?\e$,1OC\e(B)
-        (?\e$(3#)\e(B . ?\e$,1OD\e(B)
-        (?\e$(3#*\e(B . ?\e$,1OE\e(B)
-        (?\e$(3#-\e(B . ?\e$,1OH\e(B)
-        (?\e$(3#.\e(B . ?\e$,1OI\e(B)
-        (?\e$(3#/\e(B . ?\e$,1OJ\e(B)
-        (?\e$(3#0\e(B . ?\e$,1OK\e(B)
-        (?\e$(3#1\e(B . ?\e$,1OL\e(B)
-        (?\e$(3#2\e(B . ?\e$,1OM\e(B)
-        (?\e$(3#3\e(B . ?\e$,1ON\e(B)
-        (?\e$(3#5\e(B . ?\e$,1OP\e(B)
-        (?\e$(3#6\e(B . ?\e$,1OQ\e(B)
-        (?\e$(3#7\e(B . ?\e$,1OR\e(B)
-        (?\e$(3#8\e(B . ?\e$,1OS\e(B)
-        (?\e$(3#9\e(B . ?\e$,1OT\e(B)
-        (?\e$(3#:\e(B . ?\e$,1OU\e(B)
-        (?\e$(3#;\e(B . ?\e$,1OV\e(B)
-        (?\e$(3#=\e(B . ?\e$,1OX\e(B)
-        (?\e$(3#>\e(B . ?\e$,1OY\e(B)
-        (?\e$(3#?\e(B . ?\e$,1OZ\e(B)
-        (?\e$(3#@\e(B . ?\e$,1O[\e(B)
-        (?\e$(3#A\e(B . ?\e$,1O\\e(B)
-        (?\e$(3#B\e(B . ?\e$,1O]\e(B)
-        (?\e$(3#C\e(B . ?\e$,1O^\e(B)
-        (?\e$(3#D\e(B . ?\e$,1O_\e(B)
-        (?\e$(3#E\e(B . ?\e$,1O`\e(B)
-        (?\e$(3#F\e(B . ?\e$,1Oa\e(B)
-        (?\e$(3#G\e(B . ?\e$,1Ob\e(B)
-        (?\e$(3#H\e(B . ?\e$,1Oc\e(B)
-        (?\e$(3#I\e(B . ?\e$,1Od\e(B)
-        (?\e$(3#J\e(B . ?\e$,1Oe\e(B)
-        (?\e$(3#K\e(B . ?\e$,1Of\e(B)
-        (?\e$(3#L\e(B . ?\e$,1Og\e(B)
-        (?\e$(3#M\e(B . ?\e$,1Oh\e(B)
-        (?\e$(3#N\e(B . ?\e$,1Oi\e(B)
-        (?\e$(3#O\e(B . ?\e$,1Oj\e(B)
-        (?\e$(3#P\e(B . ?\e$,1Ok\e(B)
-        (?\e$(3#Q\e(B . ?\e$,1Ol\e(B)
-        (?\e$(3#R\e(B . ?\e$,1Om\e(B)
-        (?\e$(3#S\e(B . ?\e$,1On\e(B)
-        (?\e$(3#U\e(B . ?\e$,1Op\e(B)
-        (?\e$(3#V\e(B . ?\e$,1Oq\e(B)
-        (?\e$(3#W\e(B . ?\e$,1Or\e(B)
-        (?\e$(3#X\e(B . ?\e$,1Os\e(B)
-        (?\e$(3#Y\e(B . ?\e$,1Ot\e(B)
-        (?\e$(3#Z\e(B . ?\e$,1Ou\e(B)
-        (?\e$(3#[\e(B . ?\e$,1Ov\e(B)
-        (?\e$(3#\\e(B . ?\e$,1Ow\e(B)
-        (?\e$(3#]\e(B . ?\e$,1Ox\e(B)
-        (?\e$(3#^\e(B . ?\e$,1Oy\e(B)
-        (?\e$(3#_\e(B . ?\e$,1Oz\e(B)
-        (?\e$(3#`\e(B . ?\e$,1O{\e(B)
-        (?\e$(3#a\e(B . ?\e$,1O|\e(B)
-        (?\e$(3#b\e(B . ?\e$,1O}\e(B)
-        (?\e$(3#c\e(B . ?\e$,1O~\e(B)
-        (?\e$(3#d\e(B . ?\e$,1O\7f\e(B)
-        (?\e$(3#e\e(B . ?\e$,1P \e(B)
-        (?\e$(3#f\e(B . ?\e$,1P!\e(B)
-        (?\e$(3#g\e(B . ?\e$,1P"\e(B)
-        (?\e$(3#h\e(B . ?\e$,1P#\e(B)
-        (?\e$(3#i\e(B . ?\e$,1P$\e(B)
-        (?\e$(3#j\e(B . ?\e$,1P%\e(B)
-        (?\e$(3#k\e(B . ?\e$,1P&\e(B)
-        (?\e$(3#l\e(B . ?\e$,1P'\e(B)
-        (?\e$(3#m\e(B . ?\e$,1P(\e(B)
-        (?\e$(3#n\e(B . ?\e$,1P)\e(B)
-        (?\e$(3#o\e(B . ?\e$,1P*\e(B)
-        (?\e$(3#p\e(B . ?\e$,1P+\e(B)
-        (?\e$(3#q\e(B . ?\e$,1P,\e(B)
-        (?\e$(3#r\e(B . ?\e$,1P-\e(B)
-        (?\e$(3#s\e(B . ?\e$,1P.\e(B)
-        (?\e$(3#u\e(B . ?\e$,1P0\e(B)
-        (?\e$(3#w\e(B . ?\e$,1P2\e(B)
-        (?\e$(3#x\e(B . ?\e$,1P3\e(B)
-        (?\e$(3#y\e(B . ?\e$,1P4\e(B)
-        (?\e$(3#z\e(B . ?\e$,1P5\e(B)
-        (?\e$(3#}\e(B . ?\e$,1P8\e(B)
-        (?\e$(3#~\e(B . ?\e$,1P9\e(B)
-        (?\e$(3$!\e(B . ?\e$,1P:\e(B)
-        (?\e$(3$"\e(B . ?\e$,1P;\e(B)
-        (?\e$(3$#\e(B . ?\e$,1P<\e(B)
-        (?\e$(3$$\e(B . ?\e$,1P=\e(B)
-        (?\e$(3$%\e(B . ?\e$,1P>\e(B)
-        (?\e$(3$'\e(B . ?\e$,1P@\e(B)
-        (?\e$(3$(\e(B . ?\e$,1PA\e(B)
-        (?\e$(3$)\e(B . ?\e$,1PB\e(B)
-        (?\e$(3$*\e(B . ?\e$,1PC\e(B)
-        (?\e$(3$+\e(B . ?\e$,1PD\e(B)
-        (?\e$(3$,\e(B . ?\e$,1PE\e(B)
-        (?\e$(3$-\e(B . ?\e$,1PF\e(B)
-        (?\e$(3$.\e(B . ?\e$,1PG\e(B)
-        (?\e$(3$/\e(B . ?\e$,1PH\e(B)
-        (?\e$(3$0\e(B . ?\e$,1PI\e(B)
-        (?\e$(3$1\e(B . ?\e$,1PJ\e(B)
-        (?\e$(3$2\e(B . ?\e$,1PK\e(B)
-        (?\e$(3$3\e(B . ?\e$,1PL\e(B)
-        (?\e$(3$4\e(B . ?\e$,1PM\e(B)
-        (?\e$(3$5\e(B . ?\e$,1PN\e(B)
-        (?\e$(3$6\e(B . ?\e$,1PO\e(B)
-        (?\e$(3$7\e(B . ?\e$,1PP\e(B)
-        (?\e$(3$8\e(B . ?\e$,1PQ\e(B)
-        (?\e$(3$9\e(B . ?\e$,1PR\e(B)
-        (?\e$(3$:\e(B . ?\e$,1PS\e(B)
-        (?\e$(3$;\e(B . ?\e$,1PT\e(B)
-        (?\e$(3$<\e(B . ?\e$,1PU\e(B)
-        (?\e$(3$=\e(B . ?\e$,1PV\e(B)
-        (?\e$(3$>\e(B . ?\e$,1PW\e(B)
-        (?\e$(3$?\e(B . ?\e$,1PX\e(B)
-        (?\e$(3$@\e(B . ?\e$,1PY\e(B)
-        (?\e$(3$A\e(B . ?\e$,1PZ\e(B)
-        (?\e$(3$B\e(B . ?\e$,1P[\e(B)
-        (?\e$(3$C\e(B . ?\e$,1P\\e(B)
-        (?\e$(3$D\e(B . ?\e$,1P]\e(B)
-        (?\e$(3$E\e(B . ?\e$,1P^\e(B)
-        (?\e$(3$F\e(B . ?\e$,1P_\e(B)
-        (?\e$(3$G\e(B . ?\e$,1P`\e(B)
-        (?\e$(3$H\e(B . ?\e$,1Pa\e(B)
-        (?\e$(3$I\e(B . ?\e$,1Pb\e(B)
-        (?\e$(3$J\e(B . ?\e$,1Pc\e(B)
-        (?\e$(3$K\e(B . ?\e$,1Pd\e(B)
-        (?\e$(3$L\e(B . ?\e$,1Pe\e(B)
-        (?\e$(3$M\e(B . ?\e$,1Pf\e(B)
-        (?\e$(3$O\e(B . ?\e$,1Ph\e(B)
-        (?\e$(3$P\e(B . ?\e$,1Pi\e(B)
-        (?\e$(3$Q\e(B . ?\e$,1Pj\e(B)
-        (?\e$(3$R\e(B . ?\e$,1Pk\e(B)
-        (?\e$(3$S\e(B . ?\e$,1Pl\e(B)
-        (?\e$(3$T\e(B . ?\e$,1Pm\e(B)
-        (?\e$(3$U\e(B . ?\e$,1Pn\e(B)
-        (?\e$(3$V\e(B . ?\e$,1Po\e(B)
-        (?\e$(3$W\e(B . ?\e$,1Pp\e(B)
-        (?\e$(3$X\e(B . ?\e$,1Pq\e(B)
-        (?\e$(3$Y\e(B . ?\e$,1Pr\e(B)
-        (?\e$(3$Z\e(B . ?\e$,1Ps\e(B)
-        (?\e$(3$[\e(B . ?\e$,1Pt\e(B)
-        (?\e$(3$\\e(B . ?\e$,1Pu\e(B)
-        (?\e$(3$]\e(B . ?\e$,1Pv\e(B)
-        (?\e$(3$^\e(B . ?\e$,1Pw\e(B)
-        (?\e$(3$_\e(B . ?\e$,1Px\e(B)
-        (?\e$(3$`\e(B . ?\e$,1Py\e(B)
-        (?\e$(3$a\e(B . ?\e$,1Pz\e(B)
-        (?\e$(3$h\e(B . ?\e$,1Q!\e(B)
-        (?\e$(3$i\e(B . ?\e$,1Q"\e(B)
-        (?\e$(3$j\e(B . ?\e$,1Q#\e(B)
-        (?\e$(3$k\e(B . ?\e$,1Q$\e(B)
-        (?\e$(3$l\e(B . ?\e$,1Q%\e(B)
-        (?\e$(3$m\e(B . ?\e$,1Q&\e(B)
-        (?\e$(3$n\e(B . ?\e$,1Q'\e(B)
-        (?\e$(3$o\e(B . ?\e$,1Q(\e(B)
-        (?\e$(3$p\e(B . ?\e$,1Q)\e(B)
-        (?\e$(3$q\e(B . ?\e$,1Q*\e(B)
-        (?\e$(3$r\e(B . ?\e$,1Q+\e(B)
-        (?\e$(3$s\e(B . ?\e$,1Q,\e(B)
-        (?\e$(3$t\e(B . ?\e$,1Q-\e(B)
-        (?\e$(3$u\e(B . ?\e$,1Q.\e(B)
-        (?\e$(3$v\e(B . ?\e$,1Q/\e(B)
-        (?\e$(3$w\e(B . ?\e$,1Q0\e(B)
-        (?\e$(3$x\e(B . ?\e$,1Q1\e(B)
-        (?\e$(3$y\e(B . ?\e$,1Q2\e(B)
-        (?\e$(3$z\e(B . ?\e$,1Q3\e(B)
-        (?\e$(3${\e(B . ?\e$,1Q4\e(B)
-        (?\e$(3$|\e(B . ?\e$,1Q5\e(B)
-        (?\e$(3$}\e(B . ?\e$,1Q6\e(B)
-        (?\e$(3$~\e(B . ?\e$,1Q7\e(B)
-        (?\e$(3%!\e(B . ?\e$,1Q8\e(B)
-        (?\e$(3%"\e(B . ?\e$,1Q9\e(B)
-        (?\e$(3%#\e(B . ?\e$,1Q:\e(B)
-        (?\e$(3%$\e(B . ?\e$,1Q;\e(B)
-        (?\e$(3%%\e(B . ?\e$,1Q<\e(B)))
-
-      (indian-is13194
-       '((?\e(5!\e(B . ?\e$,15A\e(B)
-        (?\e(5"\e(B . ?\e$,15B\e(B)
-        (?\e(5#\e(B . ?\e$,15C\e(B)
-        (?\e(5$\e(B . ?\e$,15E\e(B)
-        (?\e(5%\e(B . ?\e$,15F\e(B)
-        (?\e(5&\e(B . ?\e$,15G\e(B)
-        (?\e(5'\e(B . ?\e$,15H\e(B)
-        (?\e(5(\e(B . ?\e$,15I\e(B)
-        (?\e(5)\e(B . ?\e$,15J\e(B)
-        (?\e(5*\e(B . ?\e$,15K\e(B)
-        (?\e(5+\e(B . ?\e$,15N\e(B)
-        (?\e(5,\e(B . ?\e$,15O\e(B)
-        (?\e(5-\e(B . ?\e$,15P\e(B)
-        (?\e(5.\e(B . ?\e$,15M\e(B)
-        (?\e(5/\e(B . ?\e$,15R\e(B)
-        (?\e(50\e(B . ?\e$,15S\e(B)
-        (?\e(51\e(B . ?\e$,15T\e(B)
-        (?\e(52\e(B . ?\e$,15M\e(B)
-        (?\e(53\e(B . ?\e$,15U\e(B)
-        (?\e(54\e(B . ?\e$,15V\e(B)
-        (?\e(55\e(B . ?\e$,15W\e(B)
-        (?\e(56\e(B . ?\e$,15X\e(B)
-        (?\e(57\e(B . ?\e$,15Y\e(B)
-        (?\e(58\e(B . ?\e$,15Z\e(B)
-        (?\e(59\e(B . ?\e$,15[\e(B)
-        (?\e(5:\e(B . ?\e$,15\\e(B)
-        (?\e(5;\e(B . ?\e$,15]\e(B)
-        (?\e(5<\e(B . ?\e$,15^\e(B)
-        (?\e(5=\e(B . ?\e$,15_\e(B)
-        (?\e(5>\e(B . ?\e$,15`\e(B)
-        (?\e(5?\e(B . ?\e$,15a\e(B)
-        (?\e(5@\e(B . ?\e$,15b\e(B)
-        (?\e(5A\e(B . ?\e$,15c\e(B)
-        (?\e(5B\e(B . ?\e$,15d\e(B)
-        (?\e(5C\e(B . ?\e$,15e\e(B)
-        (?\e(5D\e(B . ?\e$,15f\e(B)
-        (?\e(5E\e(B . ?\e$,15g\e(B)
-        (?\e(5F\e(B . ?\e$,15h\e(B)
-        (?\e(5G\e(B . ?\e$,15i\e(B)
-        (?\e(5H\e(B . ?\e$,15j\e(B)
-        (?\e(5I\e(B . ?\e$,15k\e(B)
-        (?\e(5J\e(B . ?\e$,15l\e(B)
-        (?\e(5K\e(B . ?\e$,15m\e(B)
-        (?\e(5L\e(B . ?\e$,15n\e(B)
-        (?\e(5M\e(B . ?\e$,15o\e(B)
-        (?\e(5N\e(B . ?\e$,16?\e(B)
-        (?\e(5O\e(B . ?\e$,15p\e(B)
-        (?\e(5P\e(B . ?\e$,15q\e(B)
-        (?\e(5Q\e(B . ?\e$,15r\e(B)
-        (?\e(5R\e(B . ?\e$,15s\e(B)
-        (?\e(5S\e(B . ?\e$,15t\e(B)
-        (?\e(5T\e(B . ?\e$,15u\e(B)
-        (?\e(5U\e(B . ?\e$,15v\e(B)
-        (?\e(5V\e(B . ?\e$,15w\e(B)
-        (?\e(5W\e(B . ?\e$,15x\e(B)
-        (?\e(5X\e(B . ?\e$,15y\e(B)
-        (?\e(5Z\e(B . ?\e$,15~\e(B)
-        (?\e(5[\e(B . ?\e$,15\7f\e(B)
-        (?\e(5\\e(B . ?\e$,16 \e(B)
-        (?\e(5]\e(B . ?\e$,16!\e(B)
-        (?\e(5^\e(B . ?\e$,16"\e(B)
-        (?\e(5_\e(B . ?\e$,16#\e(B)
-        (?\e(5`\e(B . ?\e$,16&\e(B)
-        (?\e(5a\e(B . ?\e$,16'\e(B)
-        (?\e(5b\e(B . ?\e$,16(\e(B)
-        (?\e(5c\e(B . ?\e$,16%\e(B)
-        (?\e(5d\e(B . ?\e$,16*\e(B)
-        (?\e(5e\e(B . ?\e$,16+\e(B)
-        (?\e(5f\e(B . ?\e$,16,\e(B)
-        (?\e(5g\e(B . ?\e$,16)\e(B)
-        (?\e(5h\e(B . ?\e$,16-\e(B)
-        (?\e(5i\e(B . ?\e$,15|\e(B)
-        (?\e(5j\e(B . ?\e$,16D\e(B)
-        (?\e(5q\e(B . ?\e$,16F\e(B)
-        (?\e(5r\e(B . ?\e$,16G\e(B)
-        (?\e(5s\e(B . ?\e$,16H\e(B)
-        (?\e(5t\e(B . ?\e$,16I\e(B)
-        (?\e(5u\e(B . ?\e$,16J\e(B)
-        (?\e(5v\e(B . ?\e$,16K\e(B)
-        (?\e(5w\e(B . ?\e$,16L\e(B)
-        (?\e(5x\e(B . ?\e$,16M\e(B)
-        (?\e(5y\e(B . ?\e$,16N\e(B)
-        (?\e(5z\e(B . ?\e$,16O\e(B)))
-
-      (katakana-jisx0201
-       '((?\e(I!\e(B . ?\e$,3sa\e(B)
-        (?\\e(I"\e(B . ?\\e$,3sb\e(B)
-        (?\\e(I#\e(B . ?\\e$,3sc\e(B)
-        (?\e(I$\e(B . ?\e$,3sd\e(B)
-        (?\e(I%\e(B . ?\e$,3se\e(B)
-        (?\e(I&\e(B . ?\e$,3sf\e(B)
-        (?\e(I'\e(B . ?\e$,3sg\e(B)
-        (?\e(I(\e(B . ?\e$,3sh\e(B)
-        (?\e(I)\e(B . ?\e$,3si\e(B)
-        (?\e(I*\e(B . ?\e$,3sj\e(B)
-        (?\e(I+\e(B . ?\e$,3sk\e(B)
-        (?\e(I,\e(B . ?\e$,3sl\e(B)
-        (?\e(I-\e(B . ?\e$,3sm\e(B)
-        (?\e(I.\e(B . ?\e$,3sn\e(B)
-        (?\e(I/\e(B . ?\e$,3so\e(B)
-        (?\e(I0\e(B . ?\e$,3sp\e(B)
-        (?\e(I1\e(B . ?\e$,3sq\e(B)
-        (?\e(I2\e(B . ?\e$,3sr\e(B)
-        (?\e(I3\e(B . ?\e$,3ss\e(B)
-        (?\e(I4\e(B . ?\e$,3st\e(B)
-        (?\e(I5\e(B . ?\e$,3su\e(B)
-        (?\e(I6\e(B . ?\e$,3sv\e(B)
-        (?\e(I7\e(B . ?\e$,3sw\e(B)
-        (?\e(I8\e(B . ?\e$,3sx\e(B)
-        (?\e(I9\e(B . ?\e$,3sy\e(B)
-        (?\e(I:\e(B . ?\e$,3sz\e(B)
-        (?\e(I;\e(B . ?\e$,3s{\e(B)
-        (?\e(I<\e(B . ?\e$,3s|\e(B)
-        (?\e(I=\e(B . ?\e$,3s}\e(B)
-        (?\e(I>\e(B . ?\e$,3s~\e(B)
-        (?\e(I?\e(B . ?\e$,3s\7f\e(B)
-        (?\e(I@\e(B . ?\e$,3t \e(B)
-        (?\e(IA\e(B . ?\e$,3t!\e(B)
-        (?\e(IB\e(B . ?\e$,3t"\e(B)
-        (?\e(IC\e(B . ?\e$,3t#\e(B)
-        (?\e(ID\e(B . ?\e$,3t$\e(B)
-        (?\e(IE\e(B . ?\e$,3t%\e(B)
-        (?\e(IF\e(B . ?\e$,3t&\e(B)
-        (?\e(IG\e(B . ?\e$,3t'\e(B)
-        (?\e(IH\e(B . ?\e$,3t(\e(B)
-        (?\e(II\e(B . ?\e$,3t)\e(B)
-        (?\e(IJ\e(B . ?\e$,3t*\e(B)
-        (?\e(IK\e(B . ?\e$,3t+\e(B)
-        (?\e(IL\e(B . ?\e$,3t,\e(B)
-        (?\e(IM\e(B . ?\e$,3t-\e(B)
-        (?\e(IN\e(B . ?\e$,3t.\e(B)
-        (?\e(IO\e(B . ?\e$,3t/\e(B)
-        (?\e(IP\e(B . ?\e$,3t0\e(B)
-        (?\e(IQ\e(B . ?\e$,3t1\e(B)
-        (?\e(IR\e(B . ?\e$,3t2\e(B)
-        (?\e(IS\e(B . ?\e$,3t3\e(B)
-        (?\e(IT\e(B . ?\e$,3t4\e(B)
-        (?\e(IU\e(B . ?\e$,3t5\e(B)
-        (?\e(IV\e(B . ?\e$,3t6\e(B)
-        (?\e(IW\e(B . ?\e$,3t7\e(B)
-        (?\e(IX\e(B . ?\e$,3t8\e(B)
-        (?\e(IY\e(B . ?\e$,3t9\e(B)
-        (?\e(IZ\e(B . ?\e$,3t:\e(B)
-        (?\e(I[\e(B . ?\e$,3t;\e(B)
-        (?\e(I\\e(B . ?\e$,3t<\e(B)
-        (?\e(I]\e(B . ?\e$,3t=\e(B)
-        (?\e(I^\e(B . ?\e$,3t>\e(B)
-        (?\e(I_\e(B . ?\e$,3t?\e(B)))
-
-      (chinese-sisheng
-       '((?\e(0!\e(B . ?\e$,1 !\e(B)
-        (?\e(0"\e(B . ?\e,Aa\e(B)
-        (?\e(0#\e(B . ?\e$,1".\e(B)
-        (?\e(0$\e(B . ?\e,A`\e(B)
-        (?\e(0%\e(B . ?\e$,1 3\e(B)
-        (?\e(0&\e(B . ?\e,Ai\e(B)
-        (?\e(0'\e(B . ?\e$,1 ;\e(B)
-        (?\e(0(\e(B . ?\e,Ah\e(B)
-        (?\e(0)\e(B . ?\e$,1 K\e(B)
-        (?\e(0*\e(B . ?\e,Am\e(B)
-        (?\e(0+\e(B . ?\e$,1"0\e(B)
-        (?\e(0,\e(B . ?\e,Al\e(B)
-        (?\e(0-\e(B . ?\e$,1 m\e(B)
-        (?\e(0.\e(B . ?\e,As\e(B)
-        (?\e(0/\e(B . ?\e$,1"2\e(B)
-        (?\e(00\e(B . ?\e,Ar\e(B)
-        (?\e(01\e(B . ?\e$,1!+\e(B)
-        (?\e(02\e(B . ?\e,Az\e(B)
-        (?\e(03\e(B . ?\e$,1"4\e(B)
-        (?\e(04\e(B . ?\e,Ay\e(B)
-        (?\e(05\e(B . ?\e$,1"6\e(B)
-        (?\e(06\e(B . ?\e$,1"8\e(B)
-        (?\e(07\e(B . ?\e$,1":\e(B)
-        (?\e(08\e(B . ?\e$,1"<\e(B)
-        (?\e(09\e(B . ?\e,A|\e(B)
-        (?\e(0:\e(B . ?\e,Aj\e(B)
-        (?\e(0<\e(B . ?\e$,1m\7f\e(B)
-        (?\e(0=\e(B . ?\e$,1 d\e(B)
-        (?\e(0>\e(B . ?\e$,1 h\e(B)
-        (?\e(0?\e(B . ?\e$,1"Y\e(B)
-        (?\e(0A\e(B . ?\e$,1$i\e(B)
-        (?\e(0B\e(B . ?\e$,1$j\e(B)
-        (?\e(0C\e(B . ?\e$,1$g\e(B)
-        (?\e(0D\e(B . ?\e$,1$k\e(B)
-        (?\e(0E\e(B . ?\e$,2@%\e(B)
-        (?\e(0F\e(B . ?\e$,2@&\e(B)
-        (?\e(0G\e(B . ?\e$,2@'\e(B)
-        (?\e(0H\e(B . ?\e$,2@(\e(B)
-        (?\e(0I\e(B . ?\e$,2@)\e(B)
-        (?\e(0J\e(B . ?\e$,2@*\e(B)
-        (?\e(0K\e(B . ?\e$,2@+\e(B)
-        (?\e(0L\e(B . ?\e$,2@,\e(B)
-        (?\e(0M\e(B . ?\e$,2@-\e(B)
-        (?\e(0N\e(B . ?\e$,2@.\e(B)
-        (?\e(0O\e(B . ?\e$,2@/\e(B)
-        (?\e(0P\e(B . ?\e$,2@0\e(B)
-        (?\e(0Q\e(B . ?\e$,2@1\e(B)
-        (?\e(0R\e(B . ?\e$,2@2\e(B)
-        (?\e(0S\e(B . ?\e$,2@3\e(B)
-        (?\e(0T\e(B . ?\e$,2@4\e(B)
-        (?\e(0U\e(B . ?\e$,2@5\e(B)
-        (?\e(0V\e(B . ?\e$,2@6\e(B)
-        (?\e(0W\e(B . ?\e$,2@7\e(B)
-        (?\e(0X\e(B . ?\e$,2@8\e(B)
-        (?\e(0Y\e(B . ?\e$,2@9\e(B)
-        (?\e(0Z\e(B . ?\e$,2@:\e(B)
-        (?\e(0[\e(B . ?\e$,2@;\e(B)
-        (?\e(0\\e(B . ?\e$,2@<\e(B)
-        (?\e(0]\e(B . ?\e$,2@=\e(B)
-        (?\e(0^\e(B . ?\e$,2@>\e(B)
-        (?\e(0_\e(B . ?\e$,2@?\e(B)
-        (?\e(0`\e(B . ?\e$,2@@\e(B)
-        (?\e(0a\e(B . ?\e$,2@A\e(B)
-        (?\e(0b\e(B . ?\e$,2@B\e(B)
-        (?\e(0c\e(B . ?\e$,2@C\e(B)
-        (?\e(0d\e(B . ?\e$,2@D\e(B)
-        (?\e(0e\e(B . ?\e$,2@E\e(B)
-        (?\e(0f\e(B . ?\e$,2@F\e(B)
-        (?\e(0g\e(B . ?\e$,2@G\e(B)
-        (?\e(0h\e(B . ?\e$,2@H\e(B)
-        (?\e(0i\e(B . ?\e$,2@I\e(B)))
-
-      (lao
-       '((?\e(1!\e(B . ?\e$,1D!\e(B)
-        (?\e(1"\e(B . ?\e$,1D"\e(B)
-        (?\e(1$\e(B . ?\e$,1D$\e(B)
-        (?\e(1'\e(B . ?\e$,1D'\e(B)
-        (?\e(1(\e(B . ?\e$,1D(\e(B)
-        (?\e(1*\e(B . ?\e$,1D*\e(B)
-        (?\e(1-\e(B . ?\e$,1D-\e(B)
-        (?\e(14\e(B . ?\e$,1D4\e(B)
-        (?\e(15\e(B . ?\e$,1D5\e(B)
-        (?\e(16\e(B . ?\e$,1D6\e(B)
-        (?\e(17\e(B . ?\e$,1D7\e(B)
-        (?\e(19\e(B . ?\e$,1D9\e(B)
-        (?\e(1:\e(B . ?\e$,1D:\e(B)
-        (?\e(1;\e(B . ?\e$,1D;\e(B)
-        (?\e(1<\e(B . ?\e$,1D<\e(B)
-        (?\e(1=\e(B . ?\e$,1D=\e(B)
-        (?\e(1>\e(B . ?\e$,1D>\e(B)
-        (?\e(1?\e(B . ?\e$,1D?\e(B)
-        (?\e(1A\e(B . ?\e$,1DA\e(B)
-        (?\e(1B\e(B . ?\e$,1DB\e(B)
-        (?\e(1C\e(B . ?\e$,1DC\e(B)
-        (?\e(1E\e(B . ?\e$,1DE\e(B)
-        (?\e(1G\e(B . ?\e$,1DG\e(B)
-        (?\e(1J\e(B . ?\e$,1DJ\e(B)
-        (?\e(1K\e(B . ?\e$,1DK\e(B)
-        (?\e(1M\e(B . ?\e$,1DM\e(B)
-        (?\e(1N\e(B . ?\e$,1DN\e(B)
-        (?\e(1O\e(B . ?\e$,1DO\e(B)
-        (?\e(1P\e(B . ?\e$,1DP\e(B)
-        (?\e(1Q\e(B . ?\e$,1DQ\e(B)
-        (?\e(1R\e(B . ?\e$,1DR\e(B)
-        (?\e(1S\e(B . ?\e$,1DS\e(B)
-        (?\e(1T\e(B . ?\e$,1DT\e(B)
-        (?\e(1U\e(B . ?\e$,1DU\e(B)
-        (?\e(1V\e(B . ?\e$,1DV\e(B)
-        (?\e(1W\e(B . ?\e$,1DW\e(B)
-        (?\e(1X\e(B . ?\e$,1DX\e(B)
-        (?\e(1Y\e(B . ?\e$,1DY\e(B)
-        (?\e(1[\e(B . ?\e$,1D[\e(B)
-        (?\e(1\\e(B . ?\e$,1D\\e(B)
-        (?\e(1]\e(B . ?\e$,1D]\e(B)
-        (?\e(1`\e(B . ?\e$,1D`\e(B)
-        (?\e(1a\e(B . ?\e$,1Da\e(B)
-        (?\e(1b\e(B . ?\e$,1Db\e(B)
-        (?\e(1c\e(B . ?\e$,1Dc\e(B)
-        (?\e(1d\e(B . ?\e$,1Dd\e(B)
-        (?\e(1f\e(B . ?\e$,1Df\e(B)
-        (?\e(1h\e(B . ?\e$,1Dh\e(B)
-        (?\e(1i\e(B . ?\e$,1Di\e(B)
-        (?\e(1j\e(B . ?\e$,1Dj\e(B)
-        (?\e(1k\e(B . ?\e$,1Dk\e(B)
-        (?\e(1l\e(B . ?\e$,1Dl\e(B)
-        (?\e(1m\e(B . ?\e$,1Dm\e(B)
-        (?\e(1p\e(B . ?\e$,1Dp\e(B)
-        (?\e(1q\e(B . ?\e$,1Dq\e(B)
-        (?\e(1r\e(B . ?\e$,1Dr\e(B)
-        (?\e(1s\e(B . ?\e$,1Ds\e(B)
-        (?\e(1t\e(B . ?\e$,1Dt\e(B)
-        (?\e(1u\e(B . ?\e$,1Du\e(B)
-        (?\e(1v\e(B . ?\e$,1Dv\e(B)
-        (?\e(1w\e(B . ?\e$,1Dw\e(B)
-        (?\e(1x\e(B . ?\e$,1Dx\e(B)
-        (?\e(1y\e(B . ?\e$,1Dy\e(B)
-        (?\e(1|\e(B . ?\e$,1D|\e(B)
-        (?\e(1}\e(B . ?\e$,1D}\e(B)))
-
-      (other
-       '(
-        ;; latin-jisx0201 is mostly decoded to ascii, with these
-        ;; exceptions, so we don't bother with tables for the whole
-        ;; thing.
-        (?\e(J\\e(B . ?\e,A%\e(B)
-        (?\e(J~\e(B . ?\e$,1s>\e(B))))
-  (let ((table (make-char-table 'safe-chars))
-       safe-charsets)
-    (dolist (cs '(vietnamese-viscii lao chinese-sisheng ipa
-                 katakana-jisx0201 thai-tis620 tibetan-iso-8bit
-                 indian-is13194 ethiopic other))
-      ;; These tables could be used as translation-table-for-encode by
-      ;; the relevant coding systems.
-      (let ((encode-translator
-            (if (coding-system-p cs)
-                (set (intern (format "ucs-%s-encode-table" cs))
-                     (make-translation-table)))))
-       (dolist (pair (symbol-value cs))
-         (aset ucs-mule-to-mule-unicode (car pair) (cdr pair))
-         (if encode-translator
-             (aset encode-translator (cdr pair) (car pair))))
-       (if encode-translator
-           (optimize-char-table encode-translator))
-       (if (charsetp cs)
-           (push cs safe-charsets)
-         (if (coding-system-p cs)
-             (setq safe-charsets
-                   (append (delq 'ascii (coding-system-get cs 'safe-charsets))
-                           safe-charsets))))
-       (cond ((eq cs 'vietnamese-viscii)
-              (coding-system-put 'vietnamese-viscii
-                                 'translation-table-for-input
-                                 encode-translator)
-              (coding-system-put 'vietnamese-viqr
-                                 'translation-table-for-input
-                                 encode-translator))
-             ((memq cs '(lao thai-tis620 tibetan-iso-8bit))
-              (coding-system-put cs 'translation-table-for-input
-                                 encode-translator)))))
-    (dolist (c safe-charsets)
-      (aset table (make-char c) t))))
-
-(define-minor-mode unify-8859-on-encoding-mode
-  "Set up translation-tables for unifying ISO 8859 characters on encoding.
-
-The ISO 8859 characters sets overlap, e.g. 8859-1 (Latin-1) and
-8859-15 (Latin-9) differ only in a few characters.  Emacs normally
-distinguishes equivalent characters from those ISO-8859 character sets
-which are built in to Emacs.  This behavior is essentially inherited
-from the European-originated international standards.  Treating them
-equivalently, by translating to and from a single representation is
-called `unification'.  (The `utf-8' coding system treats the
-characters of European scripts in a unified manner.)
-
-In this mode, on encoding -- i.e. output operations -- non-ASCII
-characters from the built-in ISO 8859 and `mule-unicode-0100-24ff'
-charsets are handled automatically by the coding system used if it can
-represent them.  Thus, say, an e-acute from the Latin-1 charset (the
-unified representation) in a buffer saved as Latin-9 will be encoded
-directly to a byte value 233.  By default, in contrast, you would be
-prompted for a general coding system to use for saving the file, which
-can cope with separate Latin-1 and Latin-9 representations of e-acute.
-
-Also sets hooks that arrange `translation-table-for-input' to be set
-up locally.  This will often allow input generated by Quail input
-methods to conform with what the buffer's file coding system can
-encode.  Thus you could use a Latin-2 input method to search for
-e-acute in a Latin-1 buffer.
-
-See also command `unify-8859-on-decoding-mode'."
-  :group 'mule
-  :global t
-  :init-value t
-  (if unify-8859-on-encoding-mode
-      (ucs-unify-8859 t nil)
-    (ucs-fragment-8859 t nil)))
-
-(custom-add-version 'unify-8859-on-encoding-mode "21.3")
-
-(define-minor-mode unify-8859-on-decoding-mode
-  "Set up translation-tables for unifying ISO 8859 characters on decoding.
-On decoding, i.e. input operations, non-ASCII characters from the
-built-in ISO 8859 charsets are unified by mapping them into the
-`iso-latin-1' and `mule-unicode-0100-24ff' charsets.
-
-Also sets `translation-table-for-input' globally, so that keyboard input
-produces unified characters.
-
-See also command `unify-8859-on-encoding-mode' and the user option
-`utf-fragment-on-decoding'."
-  :group 'mule
-  :global t
-  :init-value nil
-  (if unify-8859-on-decoding-mode
-      (ucs-unify-8859 nil t)
-    (ucs-fragment-8859 nil t)))
-
-(custom-add-version 'unify-8859-on-decoding-mode "21.3")
-
-;; Synchronize the status with the initial value of
-;; unify-8859-on-encoding-mode and unify-8859-on-decoding-mode.
-(ucs-unify-8859 t nil)
-
-;; Arrange to set up the translation-table for keyboard input.  This
-;; is called from get-buffer-create, set-buffer-file-coding-system,
-;; normal-mode and minibuffer-setup-hook.
-(defun ucs-set-table-for-input (&optional buffer)
-  "Set up an appropriate `translation-table-for-input' for BUFFER.
-BUFFER defaults to the current buffer.  This function is
-automatically called directly at the end of `get-buffer-create'."
-  (when (and unify-8859-on-encoding-mode
-             (not unify-8859-on-decoding-mode)
-            (char-table-p translation-table-for-input))
-    (let ((cs (and buffer-file-coding-system
-                  (coding-system-base buffer-file-coding-system)))
-         table)
-      (if (or (null cs)
-             (eq cs 'undecided))
-         (setq cs
-               (and default-buffer-file-coding-system
-                    (coding-system-base default-buffer-file-coding-system))))
-      (when cs
-       (setq table (coding-system-get cs 'translation-table-for-encode))
-       (if (and table (symbolp table))
-           (setq table (get table 'translation-table)))
-       (unless (char-table-p table)
-         (setq table (coding-system-get cs 'translation-table-for-input))
-         (if (and table (symbolp table))
-             (setq table (get table 'translation-table))))
-       (when (char-table-p table)
-         (if buffer
-             (with-current-buffer buffer
-               (set (make-local-variable 'translation-table-for-input)
-                    table))
-           (set (make-local-variable 'translation-table-for-input)
-                table)))))))
-
-;; The minibuffer needs to acquire a `buffer-file-coding-system' for
-;; the above to work in it.
-(defun ucs-minibuffer-setup ()
-  "Set up an appropriate `buffer-file-coding-system' for current buffer.
-Intended to be added to `minibuffer-setup-hook'."
-  (set (make-local-variable 'buffer-file-coding-system)
-       (with-current-buffer (let ((win (minibuffer-selected-window)))
-                             (if (window-live-p win) (window-buffer win)
-                               (cadr (buffer-list))))
-        buffer-file-coding-system))
-  (ucs-set-table-for-input))
-
-(provide 'ucs-tables)
-
-;; arch-tag: b497e22b-7fe1-486a-9352-e2d7f7d76a76
-;;; ucs-tables.el ends here
diff --git a/lisp/international/uni-bidi.el b/lisp/international/uni-bidi.el
new file mode 100644 (file)
index 0000000..9debda8
Binary files /dev/null and b/lisp/international/uni-bidi.el differ
diff --git a/lisp/international/uni-category.el b/lisp/international/uni-category.el
new file mode 100644 (file)
index 0000000..d3755f6
Binary files /dev/null and b/lisp/international/uni-category.el differ
diff --git a/lisp/international/uni-combining.el b/lisp/international/uni-combining.el
new file mode 100644 (file)
index 0000000..fb27ed3
Binary files /dev/null and b/lisp/international/uni-combining.el differ
diff --git a/lisp/international/uni-comment.el b/lisp/international/uni-comment.el
new file mode 100644 (file)
index 0000000..13da17f
Binary files /dev/null and b/lisp/international/uni-comment.el differ
diff --git a/lisp/international/uni-decimal.el b/lisp/international/uni-decimal.el
new file mode 100644 (file)
index 0000000..60b7c71
Binary files /dev/null and b/lisp/international/uni-decimal.el differ
diff --git a/lisp/international/uni-decomposition.el b/lisp/international/uni-decomposition.el
new file mode 100644 (file)
index 0000000..124c3f7
Binary files /dev/null and b/lisp/international/uni-decomposition.el differ
diff --git a/lisp/international/uni-digit.el b/lisp/international/uni-digit.el
new file mode 100644 (file)
index 0000000..9968f3a
Binary files /dev/null and b/lisp/international/uni-digit.el differ
diff --git a/lisp/international/uni-lowercase.el b/lisp/international/uni-lowercase.el
new file mode 100644 (file)
index 0000000..c0faeb7
Binary files /dev/null and b/lisp/international/uni-lowercase.el differ
diff --git a/lisp/international/uni-mirrored.el b/lisp/international/uni-mirrored.el
new file mode 100644 (file)
index 0000000..db7cd4f
Binary files /dev/null and b/lisp/international/uni-mirrored.el differ
diff --git a/lisp/international/uni-name.el b/lisp/international/uni-name.el
new file mode 100644 (file)
index 0000000..eafb759
Binary files /dev/null and b/lisp/international/uni-name.el differ
diff --git a/lisp/international/uni-numeric.el b/lisp/international/uni-numeric.el
new file mode 100644 (file)
index 0000000..18ec00f
Binary files /dev/null and b/lisp/international/uni-numeric.el differ
diff --git a/lisp/international/uni-old-name.el b/lisp/international/uni-old-name.el
new file mode 100644 (file)
index 0000000..4a7887a
Binary files /dev/null and b/lisp/international/uni-old-name.el differ
diff --git a/lisp/international/uni-titlecase.el b/lisp/international/uni-titlecase.el
new file mode 100644 (file)
index 0000000..e698c22
Binary files /dev/null and b/lisp/international/uni-titlecase.el differ
diff --git a/lisp/international/uni-uppercase.el b/lisp/international/uni-uppercase.el
new file mode 100644 (file)
index 0000000..32ee484
Binary files /dev/null and b/lisp/international/uni-uppercase.el differ
diff --git a/lisp/international/utf-16.el b/lisp/international/utf-16.el
deleted file mode 100644 (file)
index 0bc8d7a..0000000
+++ /dev/null
@@ -1,580 +0,0 @@
-;;; utf-16.el --- UTF-16 encoding/decoding
-
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
-;;   Free Software Foundation, Inc.
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H14PRO021
-
-;; Author: Dave Love <fx@gnu.org>
-;; Keywords: Unicode, UTF-16, i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Support for UTF-16, which is a two-byte encoding (modulo
-;; surrogates) of Unicode, defined in RFC 2781.  It is written either
-;; in little or big endian order and either with or without the
-;; leading BOM (a two-byte signature which identifies their byte sex).
-;;
-;; We provide these base coding systems.
-;;     name                                    endian  BOM
-;;     ----                                    ------  ---
-;;     mule-utf-16le                           little  no
-;;     mule-utf-16be                           big     no
-;;     mule-utf-16le-with-signature            little  yes
-;;     mule-utf-16be-with-signature            big     yes
-;;     mule-utf-16                             both    yes
-;;
-;; Note that un-decodable sequences aren't (yet?) preserved as raw
-;; bytes, as they are with utf-8, so reading and writing as utf-16 can
-;; corrupt data.
-
-;;; Code:
-
-;; We end up with trivially different -le and -be versions of most
-;; things below, sometimes with commonality abstracted into a let
-;; binding for maintenance convenience.
-
-;; Needed in macro expansion, so can't be let-bound.  Zapped after use.
-(eval-and-compile
-(defconst utf-16-decode-ucs
-  ;; If r5 is negative, r1 is a Unicode chacter code.  Otherise, r5 is
-  ;; the first of a surrogate pair and r1 is the second of the pair.
-  ;; Output is charset ID in r0, code point in r1.  R0 may be set to
-  ;; -1 in which case a caller should not write out r1.
-  `((if (r5 >= 0)
-       ((r0 = (r1 < #xDC00))
-        (if ((r1 >= #xE000) | r0)
-            ;; Invalid second code of surrogate pair.
-            ((r0 = r5)
-             (call ccl-mule-utf-untrans))
-          ((r1 -= #xDC00)
-           (r1 += (((r5 - #xD800) << 10) + #x10000))))
-        (r5 = -1)))
-    (if (r1 < 128)
-       (r0 = ,(charset-id 'ascii))
-      ((lookup-integer utf-subst-table-for-decode r1 r3)
-       (if r7                          ; got a translation
-          ((r0 = r1) (r1 = r3))
-        (if (r1 < 160)
-            (r0 = ,(charset-id 'eight-bit-control))
-          (if (r1 < 256)
-              ((r0 = ,(charset-id 'latin-iso8859-1))
-               (r1 -= 128))
-            (if (r1 < #x2500)
-                ((r0 = ,(charset-id 'mule-unicode-0100-24ff))
-                 (r1 -= #x100)
-                 (r2 = (((r1 / 96) + 32) << 7))
-                 (r1 %= 96)
-                 (r1 += (r2 + 32)))
-              (if (r1 < #x3400)
-                  ((r0 = ,(charset-id 'mule-unicode-2500-33ff))
-                   (r1 -= #x2500)
-                   (r2 = (((r1 / 96) + 32) << 7))
-                   (r1 %= 96)
-                   (r1 += (r2 + 32)))
-                (if (r1 < #xD800)
-                    ;; We can't have this character.
-                    ((r0 = r1)
-                     (call ccl-mule-utf-untrans)
-                     (r5 = -1)
-                     (r0 = -1))
-                  (if (r1 < #xDC00)
-                      ;; The first code of a surrogate pair.
-                      ((r5 = r1)
-                       (r0 = -1))
-                    (if (r1 < #xE000)
-                        ;; The second code of a surrogate pair, invalid.
-                        ((r0 = r1)
-                         (call ccl-mule-utf-untrans)
-                         (r5 = -1)
-                         (r0 = -1))
-                      (if (r1 < #x10000)
-                          ((r0 = ,(charset-id 'mule-unicode-e000-ffff))
-                           (r1 -= #xE000)
-                           (r2 = (((r1 / 96) + 32) << 7))
-                           (r1 %= 96)
-                           (r1 += (r2 + 32)))
-                        ;; We can't have this character.
-                        ((r0 = r1)
-                         (call ccl-mule-utf-untrans)
-                         (r5 = -1)
-                         (r0 = -1)))))))))))))))
-
-(defconst utf-16le-decode-loop
-  `((r5 = -1)
-    (loop
-     (r3 = -1)
-     (read r3 r4)
-     (r1 = (r4 <8 r3))
-     ,@utf-16-decode-ucs
-     (if (r0 >= 0)
-        ((translate-character utf-translation-table-for-decode r0 r1)
-         (write-multibyte-character r0 r1)))
-     (repeat))))
-
-(defconst utf-16be-decode-loop
-  `((r5 = -1)
-    (loop
-     (r3 = -1)
-     (read r3 r4)
-     (r1 = (r3 <8 r4))
-     ,@utf-16-decode-ucs
-     (if (r0 >= 0)
-        ((translate-character utf-translation-table-for-decode r0 r1)
-         (write-multibyte-character r0 r1)))
-     (repeat))))
-
-)
-
-(define-ccl-program ccl-decode-mule-utf-16le
-  `(2                                  ; 2 bytes -> 1 to 4 bytes
-    ,utf-16le-decode-loop
-    ((if (r5 >= 0)
-        ((r0 = r5)
-         (call ccl-mule-utf-untrans)))
-     (if (r3 < 0)
-        nil
-       ((if (r3 < #xA0)
-           (r0 = ,(charset-id 'eight-bit-control))
-         (r0 = ,(charset-id 'eight-bit-graphic)))
-       (write-multibyte-character r0 r3)))))
-  "Decode UTF-16LE (little endian without signature bytes).
-Basic decoding is done into the charsets ascii, latin-iso8859-1 and
-mule-unicode-*.  Un-representable Unicode characters are decoded as
-U+fffd.  The result is run through the translation-table named
-`utf-translation-table-for-decode'.")
-
-(define-ccl-program ccl-decode-mule-utf-16be
-  `(2                                  ; 2 bytes -> 1 to 4 bytes
-    ,utf-16be-decode-loop
-    ((if (r5 >= 0)
-        ((r0 = r5)
-         (call ccl-mule-utf-untrans)))
-     (if (r3 >= 0)
-        ((r0 = r3)
-         (call ccl-mule-utf-untrans)))))
-  "Decode UTF-16BE (big endian without signature bytes).
-Basic decoding is done into the charsets ascii, latin-iso8859-1 and
-mule-unicode-*.  Un-representable Unicode characters are
-decoded as U+fffd.  The result is run through the translation-table of
-name `utf-translation-table-for-decode'.")
-
-(define-ccl-program ccl-decode-mule-utf-16le-with-signature
-  `(2
-    ((r3 = -1)
-     (read r3 r4)
-     ,@utf-16le-decode-loop)
-    (if (r3 >= 0)
-       ((r0 = r3)
-        (call ccl-mule-utf-untrans))))
-  "Like ccl-decode-utf-16le but skip the first 2-byte BOM.")
-
-(define-ccl-program ccl-decode-mule-utf-16be-with-signature
-  `(2
-    ((r3 = -1)
-     (read r3 r4)
-     ,@utf-16be-decode-loop)
-    (if (r3 >= 0)
-       ((r0 = r3)
-        (call ccl-mule-utf-untrans))))
-  "Like ccl-decode-utf-16be but skip the first 2-byte BOM.")
-
-(define-ccl-program ccl-decode-mule-utf-16
-  `(2
-    ((r3 = -1)
-     (read r3 r4)
-     (r1 = (r3 <8 r4))
-     (r5 = -1)
-     (if (r1 == #xFFFE)
-        ;; R1 is a BOM for little endian.  We keep this character as
-        ;; is temporarily.  It is removed by post-read-conversion
-        ;; function.
-        (,@utf-16-decode-ucs
-         (write-multibyte-character r0 r1)
-         ,@utf-16le-decode-loop)
-       ((if (r1 == #xFEFF)
-           ;; R1 is a BOM for big endian, but we can't keep that
-           ;; character in the output because it can't be
-           ;; distinguished with the normal U+FEFF.  So, we keep
-           ;; #xFFFF instead.
-           ((r1 = #xFFFF)
-            ,@utf-16-decode-ucs
-            (write-multibyte-character r0 r1))
-         ;; R1 is a normal Unicode character.
-         (,@utf-16-decode-ucs
-          (if (r0 >= 0)
-              ((translate-character utf-translation-table-for-decode r0 r1)
-               (write-multibyte-character r0 r1)))))
-       ,@utf-16be-decode-loop)))
-    (if (r3 >= 0)
-       ((r0 = r3)
-        (call ccl-mule-utf-untrans))))
-  "Like ccl-decode-utf-16be/le but check the first BOM.")
-
-(makunbound 'utf-16-decode-ucs)                ; done with it
-(makunbound 'utf-16le-decode-loop)
-(makunbound 'utf-16be-decode-loop)
-
-;; UTF-16 decoder generates an UTF-8 sequence represented by a
-;; sequence eight-bit-control/graphic chars for an invalid byte (the
-;; last byte of an odd length source) and an untranslatable character
-;; (including an invalid surrogate-pair code-point).
-;;
-;; This CCL parses that sequence (the first byte is already in r1),
-;; and if the sequence represents an untranslatable character, it sets
-;; r1 to the original invalid code or untranslated Unicode character
-;; code, sets r2 to -1 (to prevent r2 and r3 are written), set2 r5 to
-;; -1 (to tell the caller that there's no pre-read character).
-;;
-;; If the sequence represents an invalid byte, it sets r1 to -1, r2 to
-;; the byte, sets r3 and r5 to -1.
-;;
-;; Otherwise, don't change r1, set r2 and r3 to already read
-;; eight-bit-control/graphic characters (if any), set r5 and r6 to the
-;; last character that invalidates the UTF-8 form.
-;;
-;; Note: For UTF-8 validation, we only check if a character is
-;; eight-bit-control/graphic or not.  It may result in incorrect
-;; handling of random binary data, but such a data can't be encoded by
-;; UTF-16 anyway.  At least, UTF-16 decoder doesn't generate such a
-;; sequence even if a source contains invalid byte-sequence.
-
-(define-ccl-program ccl-mule-utf-16-encode-untrans
-  `(0
-    ((r2 = -1)
-     ;; Read the 2nd byte.
-     (read-multibyte-character r5 r6)
-     (r0 = (r5 != ,(charset-id 'eight-bit-control)))
-     (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0)
-        ((r2 = r1)
-         (r3 = -1)
-         (r1 = -1)
-         (end)))                       ; invalid UTF-8
-
-     (r3 = -1)
-     (r2 = r6)
-     (if (r1 <= #xE0)
-        ;; 2-byte UTF-8, i.e. originally an invalid byte.
-        ((r2 &= #x3F)
-         (r2 |= ((r1 & #x1F) << 6))
-         (r1 = -1)
-         (r5 = -1)
-         (end)))
-        
-     ;; Read the 3rd byte.
-     (read-multibyte-character r5 r6)
-     (r0 = (r5 != ,(charset-id 'eight-bit-control)))          
-     (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0)
-        ((end)))                       ; invalid UTF-8
-
-     (if (r1 < #xF0)           ; valid 3-byte UTF-8
-        ((r1 = ((r1 & #x0F) << 12))
-         (r1 |= ((r2 & #x3F) << 6))
-         (r1 |= (r6 & #x3F))
-         (r2 = -1)
-         (r5 = -1)
-         (end)))
-
-     (r3 = r6)
-     ;; Read the 4th byte.
-     (read-multibyte-character r5 r6)
-     (r0 = (r5 != ,(charset-id 'eight-bit-control)))          
-     (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0)
-        (end))                     ; livalid UTF-8
-
-     ;; valid 4-byte UTF-8
-     (r1 = ((r1 & #x07) << 18))
-     (r1 |= ((r2 & #x3F) << 12))
-     (r1 |= ((r3 & #x3F) << 6))
-     (r1 |= (r6 & #x3F))
-     (r2 = -1)
-     (r5 = -1)
-     (end))
-
-    (if (r1 >= 0)
-       ((write r1)
-        (if (r2 >= 0)
-            ((write r2)
-             (if (r3 >= 0)
-                 (write r3))))))))
-
-(eval-and-compile
-(defconst utf-16-decode-to-ucs
-  ;; Read a character and set r1 to the corresponding Unicode code.
-  ;; If r5 is not negative, it means that we have already read a
-  ;; character into r5 and r6.
-  ;; If an invalid eight-bit-control/graphic sequence is found, r2 and
-  ;; r3 may contain a byte to written out, r5 and r6 may contain a
-  ;; pre-read character.  Usually they are set to -1.
-  `((if (r5 < 0)
-       (read-multibyte-character r0 r1)
-      ((r0 = r5)
-       (r1 = r6)
-       (r5 = -1)))
-    (lookup-character utf-subst-table-for-encode r0 r1)
-    (r2 = -1)
-    (if (r7 > 0)
-       (r1 = r0)
-      ((translate-character utf-translation-table-for-encode r0 r1)
-       (if (r0 == ,(charset-id 'ascii))
-          nil
-        (if (r0 == ,(charset-id 'latin-iso8859-1))
-            (r1 += 128)
-          (if (r0 == ,(charset-id 'eight-bit-control))
-              nil
-            (if (r0 == ,(charset-id 'eight-bit-graphic))
-                (call ccl-mule-utf-16-encode-untrans)
-              ((r2 = ((r1 & #x7f) - 32))
-               (r3 = ((((r1 >> 7) - 32) * 96) + r2))
-               (r2 = -1)
-               (r5 = -1)
-               (if (r0 == ,(charset-id 'mule-unicode-0100-24ff))
-                   (r1 = (r3 + #x100))
-                 (if (r0 == ,(charset-id 'mule-unicode-2500-33ff))
-                     (r1 = (r3 + #x2500))
-                   (if (r0 == ,(charset-id 'mule-unicode-e000-ffff))
-                       (r1 = (r3 + #xe000))
-                     (r1 = #xfffd)))))))))))))
-
-(defconst utf-16le-encode-loop
-  `((r5 = -1)
-    (loop
-     ,@utf-16-decode-to-ucs
-     (if (r1 >= #x10000)
-        ((r1 -= #x10000)
-         (r0 = ((r1 >> 10) + #xD800))
-         (write (r0 & 255))
-         (write (r0 >> 8))
-         (r1 = ((r1 & #x3FF) + #xDC00))))
-     (if (r1 >= 0)
-        ((write (r1 & 255))
-         (write (r1 >> 8))))
-     (if (r2 >= 0)
-        ((write r2)
-         (if (r3 >= 0)
-             (write r3))))
-     (repeat))))
-
-(defconst utf-16be-encode-loop
-  `((r5 = -1)
-    (loop
-     ,@utf-16-decode-to-ucs
-     (if (r1 >= #x10000)
-        ((r1 -= #x10000)
-         (r0 = ((r1 >> 10) + #xD800))
-         (write (r0 >> 8))
-         (write (r0 & 255))
-         (r1 = ((r1 & #x3FF) + #xDC00))))
-     (if (r1 >= 0)
-        ((write (r1 >> 8))
-         (write (r1 & 255))))
-     (if (r2 >= 0)
-        ((write r2)
-         (if (r3 >= 0)
-             (write r3))))
-     (repeat))))
-)
-
-
-(define-ccl-program ccl-encode-mule-utf-16le
-  `(2
-    ,utf-16le-encode-loop)
-  "Encode to UTF-16LE (little endian without signature).
-Characters from the charsets ascii, eight-bit-control,
-eight-bit-graphic, latin-iso8859-1 and mule-unicode-* are encoded
-after translation through the translation-table of name
-`utf-translation-table-for-encode'.
-Others are encoded as U+FFFD.")
-
-(define-ccl-program ccl-encode-mule-utf-16be
-  `(2
-    ,utf-16be-encode-loop)
-  "Encode to UTF-16BE (big endian without signature).
-Characters from the charsets ascii, eight-bit-control,
-eight-bit-graphic, latin-iso8859-1 and mule-unicode-* are encoded
-after translation through the translation-table named
-`utf-translation-table-for-encode'.
-Others are encoded as U+FFFD.")
-
-(define-ccl-program ccl-encode-mule-utf-16le-with-signature
-  `(2
-    ((write #xFF)
-     (write #xFE)
-     ,@utf-16le-encode-loop))
-  "Encode to UTF-16 (little endian with signature).
-Characters from the charsets ascii, eight-bit-control,
-eight-bit-graphic, latin-iso8859-1 and mule-unicode-* are encoded
-after translation through the translation-table of name
-`utf-translation-table-for-encode'.
-Others are encoded as U+FFFD.")
-
-(define-ccl-program ccl-encode-mule-utf-16be-with-signature
-  `(2
-    ((write #xFE)
-     (write #xFF)
-     ,@utf-16be-encode-loop))
-  "Encode to UTF-16 (big endian with signature).
-Characters from the charsets ascii, eight-bit-control,
-eight-bit-graphic, latin-iso8859-1 and mule-unicode-* are encoded
-after translation through the translation-table named
-`utf-translation-table-for-encode'.
-Others are encoded as U+FFFD.")
-
-(makunbound 'utf-16-decode-to-ucs)
-(makunbound 'utf-16le-encode-loop)
-(makunbound 'utf-16be-encode-loop)
-
-(defun mule-utf-16-post-read-conversion (length)
-  (when (> length 0)
-    (setq length (utf-8-post-read-conversion length))
-    (let ((char (following-char)))
-      (cond ((= char (decode-char 'ucs #xFFFE))
-            (delete-char 1)
-            (setq last-coding-system-used
-                  (coding-system-change-text-conversion
-                   last-coding-system-used
-                   'mule-utf-16le-with-signature))
-            (setq length (1- length)))
-           ((= char (decode-char 'ucs #xFFFF))
-            (delete-char 1)
-            (setq last-coding-system-used
-                  (coding-system-change-text-conversion
-                   last-coding-system-used
-                   'mule-utf-16be-with-signature))
-            (setq length (1- length)))
-           (t
-            (setq last-coding-system-used 'mule-utf-16be)))))
-  length)
-
-(let ((doc "
-
-It supports Unicode characters of these ranges:
-    U+0000..U+33FF, U+E000..U+FFFF.
-They correspond to these Emacs character sets:
-    ascii, latin-iso8859-1, mule-unicode-0100-24ff,
-    mule-unicode-2500-33ff, mule-unicode-e000-ffff
-
-On decoding (e.g. reading a file), Unicode characters not in the above
-ranges are decoded as U+FFFD, effectively corrupting the data
-if they are re-encoded.
-
-On encoding (e.g. writing a file), Emacs characters not belonging to
-any of the character sets listed above are encoded into the byte
-sequence representing U+FFFD (REPLACEMENT CHARACTER).")
-      (props `((safe-charsets
-               ascii
-               eight-bit-control
-               eight-bit-graphic
-               latin-iso8859-1
-               mule-unicode-0100-24ff
-               mule-unicode-2500-33ff
-               mule-unicode-e000-ffff
-               ,@(if utf-translate-cjk-mode
-                     utf-translate-cjk-charsets))
-              (valid-codes (0 . 255))
-              (mime-text-unsuitable . t)
-              (pre-write-conversion . utf-8-pre-write-conversion)
-              (dependency unify-8859-on-encoding-mode
-                          unify-8859-on-decoding-mode
-                          utf-fragment-on-decoding
-                          utf-translate-cjk-mode))))
-  (make-coding-system
-   'mule-utf-16le 4
-   ?u        ; Mule-UCS uses ?U, but code-pages uses that for koi8-u.
-   (concat
-    "UTF-16LE encoding for Emacs-supported Unicode characters."
-    doc)
-   '(ccl-decode-mule-utf-16le . ccl-encode-mule-utf-16le)
-   `(,@props
-     (post-read-conversion . utf-8-post-read-conversion)
-     (ascii-incompatible . t)
-     (mime-charset . utf-16le)))
-
-  (make-coding-system
-   'mule-utf-16be 4 ?u
-   (concat
-    "UTF-16BE encoding for Emacs-supported Unicode characters."
-    doc)
-
-   '(ccl-decode-mule-utf-16be . ccl-encode-mule-utf-16be)
-   `(,@props
-     (post-read-conversion . utf-8-post-read-conversion)
-     (ascii-incompatible . t)
-     (mime-charset . utf-16be)))
-
-  (make-coding-system
-   'mule-utf-16le-with-signature 4 ?u
-   (concat
-    "Little endian UTF-16 (with BOM) for Emacs-supported Unicode characters."
-    doc)
-
-   '(ccl-decode-mule-utf-16le-with-signature
-     . ccl-encode-mule-utf-16le-with-signature)
-   `(,@props
-     (post-read-conversion . utf-8-post-read-conversion)
-     (coding-category . coding-category-utf-16-le)
-     (ascii-incompatible . t)
-     (mime-charset . utf-16)))
-
-  (make-coding-system
-   'mule-utf-16be-with-signature 4 ?u
-   (concat
-    "Big endian UTF-16 (with BOM) for Emacs-supported Unicode characters."
-    doc)
-
-   '(ccl-decode-mule-utf-16be-with-signature
-     . ccl-encode-mule-utf-16be-with-signature)
-   `(,@props
-     (post-read-conversion . utf-8-post-read-conversion)
-     (coding-category . coding-category-utf-16-be)
-     (ascii-incompatible . t)
-     (mime-charset . utf-16)))
-
-  (make-coding-system
-   'mule-utf-16 4 ?u
-   (concat
-    "UTF-16 (with or without BOM) for Emacs-supported Unicode characters."
-    doc)
-
-   '(ccl-decode-mule-utf-16 . ccl-encode-mule-utf-16be-with-signature)
-   `(,@props
-     (post-read-conversion . mule-utf-16-post-read-conversion)
-     (coding-category . coding-category-utf-16-be)
-     (ascii-incompatible . t)
-     (mime-charset . utf-16)))
-)
-
-(define-coding-system-alias 'utf-16le 'mule-utf-16le)
-(define-coding-system-alias 'utf-16be 'mule-utf-16be)
-(define-coding-system-alias 'utf-16le-with-signature
-  'mule-utf-16le-with-signature)
-(define-coding-system-alias 'utf-16be-with-signature
-  'mule-utf-16be-with-signature)
-(define-coding-system-alias 'utf-16 'mule-utf-16)
-
-;; For backward compatibility.
-(define-coding-system-alias 'mule-utf-16-le 'mule-utf-16le-with-signature)
-(define-coding-system-alias 'utf-16-le 'mule-utf-16le-with-signature)
-(define-coding-system-alias 'mule-utf-16-be 'mule-utf-16be-with-signature)
-(define-coding-system-alias 'utf-16-be 'mule-utf-16be-with-signature)
-
-;;; arch-tag: 85455d46-d9c9-466d-a6f3-c3582a7367c4
-;;; utf-16.el ends here
index 09db420b565e96087eba74169816dc2a0b32b7c1..251c4b01c304d1d064ec4bff85cd777a1d161de4 100644 (file)
 
 ;;; Code:
 
-;;;###autoload(autoload-coding-system 'utf-7 '(require 'utf-7))
-(make-coding-system
- 'utf-7 0 ?U
- "UTF-7 encoding of Unicode (RFC 2152)"
- nil
- `((safe-chars . ,(coding-system-get 'utf-16be 'safe-chars))
-   (mime-charset . utf-7)
-   (pre-write-conversion . utf-7-pre-write-conversion)
-   (post-read-conversion . utf-7-post-read-conversion)))
-
-;;;###autoload(autoload-coding-system 'utf-7-imap '(require 'utf-7))
-(make-coding-system
- 'utf-7-imap 0 ?u
- "UTF-7 encoding of Unicode, IMAP version (RFC 2060)"
- nil
- `((safe-chars . ,(coding-system-get 'utf-16be 'safe-chars))
-   (pre-write-conversion . utf-7-imap-pre-write-conversion)
-   (post-read-conversion . utf-7-imap-post-read-conversion)))
-
 (defun utf-7-decode (len imap)
   "Decode LEN bytes of UTF-7 at point.
 IMAP non-nil means use the IMAP version."
@@ -83,9 +64,11 @@ IMAP non-nil means use the IMAP version."
                  (delete-backward-char 1)))))))
       (- (point-max) (point-min)))))
 
+;;;###autoload
 (defun utf-7-post-read-conversion (len)
   (utf-7-decode len nil))
 
+;;;###autoload
 (defun utf-7-imap-post-read-conversion (len)
   (utf-7-decode len t))
 
@@ -131,9 +114,11 @@ ESC and SKIP-CHARS are adjusted for the normal and IMAP versions."
            (insert ?-)))))
     nil))
 
+;;;###autoload
 (defun utf-7-pre-write-conversion (from to)
   (utf-7-encode from to nil))
 
+;;;###autoload
 (defun utf-7-imap-pre-write-conversion (from to)
   (utf-7-encode from to t))
 
diff --git a/lisp/international/utf-8.el b/lisp/international/utf-8.el
deleted file mode 100644 (file)
index 39dd323..0000000
+++ /dev/null
@@ -1,1088 +0,0 @@
-;;; utf-8.el --- UTF-8 decoding/encoding support -*- coding: iso-2022-7bit -*-
-
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
-;;   Free Software Foundation, Inc.
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
-;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H14PRO021
-
-;; Author: TAKAHASHI Naoto  <ntakahas@m17n.org>
-;; Maintainer: FSF
-;; Keywords: multilingual, Unicode, UTF-8, i18n
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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.
-
-;; GNU Emacs 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 General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; The coding-system `mule-utf-8' basically supports encoding/decoding
-;; of the following character sets to and from UTF-8:
-;;
-;;   ascii
-;;   eight-bit-control
-;;   latin-iso8859-1
-;;   mule-unicode-0100-24ff
-;;   mule-unicode-2500-33ff
-;;   mule-unicode-e000-ffff
-;;
-;; On decoding, Unicode characters that do not fit into the above
-;; character sets are handled as `eight-bit-control' or
-;; `eight-bit-graphic' characters to retain the information about the
-;; original byte sequence and text properties record the corresponding
-;; unicode.
-;;
-;; Fixme: note that reading and writing invalid utf-8 may not be
-;; idempotent -- to represent the bytes to fix that needs a new charset.
-;;
-;; Characters from other character sets can be encoded with mule-utf-8
-;; by populating the translation table
-;; `utf-translation-table-for-encode'.  Hash tables
-;; `utf-subst-table-for-decode' and `utf-subst-table-for-encode' are
-;; used to support encoding and decoding of about a quarter of the CJK
-;; space between U+3400 and U+DFFF.
-
-;; UTF-8 is defined in RFC 3629.  A sketch of the encoding is:
-
-;;        scalar       |               utf-8
-;;        value        | 1st byte  | 2nd byte  | 3rd byte
-;; --------------------+-----------+-----------+----------
-;; 0000 0000 0xxx xxxx | 0xxx xxxx |           |
-;; 0000 0yyy yyxx xxxx | 110y yyyy | 10xx xxxx |
-;; zzzz yyyy yyxx xxxx | 1110 zzzz | 10yy yyyy | 10xx xxxx
-
-;;; Code:
-
-(defvar ucs-mule-to-mule-unicode (make-char-table 'translation-table nil)
-  "Char table mapping characters to latin-iso8859-1 or mule-unicode-*.
-
-If `unify-8859-on-encoding-mode' is non-nil, this table populates the
-translation-table named `utf-translation-table-for-encode'.")
-
-(define-translation-table 'utf-translation-table-for-encode)
-
-
-;; Map Cyrillic and Greek to iso-8859 charsets, which take half the
-;; space of mule-unicode.  For Latin scripts this isn't very
-;; important.  Hebrew and Arabic might go here too when there's proper
-;; support for them.
-
-(defvar utf-fragmentation-table (make-char-table 'translation-table nil)
-  "Char-table normally mapping non-Latin mule-unicode-* chars to iso-8859-*.
-
-If `utf-fragment-on-decoding' is non-nil, this table populates the
-translation-table named `utf-translation-table-for-decode'")
-
-(defvar utf-defragmentation-table (make-char-table 'translation-table nil)
-  "Char-table for reverse mapping of `utf-fragmentation-table'.
-
-If `utf-fragment-on-decoding' is non-nil and
-`unify-8859-on-encoding-mode' is nil, this table populates the
-translation-table named `utf-translation-table-for-encode'")
-
-(define-translation-table 'utf-translation-table-for-decode)
-
-
-(defvar ucs-mule-cjk-to-unicode (make-hash-table :test 'eq)
-  "Hash table mapping Emacs CJK character sets to Unicode code points.
-
-If `utf-translate-cjk-mode' is non-nil, this table populates the
-translation-hash-table named `utf-subst-table-for-encode'.")
-
-(define-translation-hash-table 'utf-subst-table-for-encode
-  ucs-mule-cjk-to-unicode)
-
-(defvar ucs-unicode-to-mule-cjk (make-hash-table :test 'eq)
-  "Hash table mapping Unicode code points to Emacs CJK character sets.
-
-If `utf-translate-cjk-mode' is non-nil, this table populates the
-translation-hash-table named `utf-subst-table-for-decode'.")
-
-(define-translation-hash-table 'utf-subst-table-for-decode
-  ucs-unicode-to-mule-cjk)
-
-(mapc
- (lambda (pair)
-   (aset utf-fragmentation-table (car pair) (cdr pair))
-   (aset utf-defragmentation-table (cdr pair) (car pair)))
- '((?\e$,1&d\e(B . ?\e,F4\e(B) (?\e$,1&e\e(B . ?\e,F5\e(B) (?\e$,1&f\e(B . ?\e,F6\e(B) (?\e$,1&h\e(B . ?\e,F8\e(B) (?\e$,1&i\e(B . ?\e,F9\e(B)
-   (?\e$,1&j\e(B . ?\e,F:\e(B) (?\e$,1&l\e(B . ?\e,F<\e(B) (?\e$,1&n\e(B . ?\e,F>\e(B) (?\e$,1&o\e(B . ?\e,F?\e(B) (?\e$,1&p\e(B . ?\e,F@\e(B)
-   (?\e$,1&q\e(B . ?\e,FA\e(B) (?\e$,1&r\e(B . ?\e,FB\e(B) (?\e$,1&s\e(B . ?\e,FC\e(B) (?\e$,1&t\e(B . ?\e,FD\e(B) (?\e$,1&u\e(B . ?\e,FE\e(B)
-   (?\e$,1&v\e(B . ?\e,FF\e(B) (?\e$,1&w\e(B . ?\e,FG\e(B) (?\e$,1&x\e(B . ?\e,FH\e(B) (?\e$,1&y\e(B . ?\e,FI\e(B) (?\e$,1&z\e(B . ?\e,FJ\e(B)
-   (?\e$,1&{\e(B . ?\e,FK\e(B) (?\e$,1&|\e(B . ?\e,FL\e(B) (?\e$,1&}\e(B . ?\e,FM\e(B) (?\e$,1&~\e(B . ?\e,FN\e(B) (?\e$,1&\7f\e(B . ?\e,FO\e(B)
-   (?\e$,1' \e(B . ?\e,FP\e(B) (?\e$,1'!\e(B . ?\e,FQ\e(B) (?\e$,1'#\e(B . ?\e,FS\e(B) (?\e$,1'$\e(B . ?\e,FT\e(B) (?\e$,1'%\e(B . ?\e,FU\e(B)
-   (?\e$,1'&\e(B . ?\e,FV\e(B) (?\e$,1''\e(B . ?\e,FW\e(B) (?\e$,1'(\e(B . ?\e,FX\e(B) (?\e$,1')\e(B . ?\e,FY\e(B) (?\e$,1'*\e(B . ?\e,FZ\e(B)
-   (?\e$,1'+\e(B . ?\e,F[\e(B) (?\e$,1',\e(B . ?\e,F\\e(B) (?\e$,1'-\e(B . ?\e,F]\e(B) (?\e$,1'.\e(B . ?\e,F^\e(B) (?\e$,1'/\e(B . ?\e,F_\e(B)
-   (?\e$,1'0\e(B . ?\e,F`\e(B) (?\e$,1'1\e(B . ?\e,Fa\e(B) (?\e$,1'2\e(B . ?\e,Fb\e(B) (?\e$,1'3\e(B . ?\e,Fc\e(B) (?\e$,1'4\e(B . ?\e,Fd\e(B)
-   (?\e$,1'5\e(B . ?\e,Fe\e(B) (?\e$,1'6\e(B . ?\e,Ff\e(B) (?\e$,1'7\e(B . ?\e,Fg\e(B) (?\e$,1'8\e(B . ?\e,Fh\e(B) (?\e$,1'9\e(B . ?\e,Fi\e(B)
-   (?\e$,1':\e(B . ?\e,Fj\e(B) (?\e$,1';\e(B . ?\e,Fk\e(B) (?\e$,1'<\e(B . ?\e,Fl\e(B) (?\e$,1'=\e(B . ?\e,Fm\e(B) (?\e$,1'>\e(B . ?\e,Fn\e(B)
-   (?\e$,1'?\e(B . ?\e,Fo\e(B) (?\e$,1'@\e(B . ?\e,Fp\e(B) (?\e$,1'A\e(B . ?\e,Fq\e(B) (?\e$,1'B\e(B . ?\e,Fr\e(B) (?\e$,1'C\e(B . ?\e,Fs\e(B)
-   (?\e$,1'D\e(B . ?\e,Ft\e(B) (?\e$,1'E\e(B . ?\e,Fu\e(B) (?\e$,1'F\e(B . ?\e,Fv\e(B) (?\e$,1'G\e(B . ?\e,Fw\e(B) (?\e$,1'H\e(B . ?\e,Fx\e(B)
-   (?\e$,1'I\e(B . ?\e,Fy\e(B) (?\e$,1'J\e(B . ?\e,Fz\e(B) (?\e$,1'K\e(B . ?\e,F{\e(B) (?\e$,1'L\e(B . ?\e,F|\e(B) (?\e$,1'M\e(B . ?\e,F}\e(B)
-   (?\e$,1'N\e(B . ?\e,F~\e(B)
-
-   (?\e$,1(!\e(B . ?\e,L!\e(B) (?\e$,1("\e(B . ?\e,L"\e(B) (?\e$,1(#\e(B . ?\e,L#\e(B) (?\e$,1($\e(B . ?\e,L$\e(B)
-   (?\e$,1(%\e(B . ?\e,L%\e(B) (?\e$,1(&\e(B . ?\e,L&\e(B) (?\e$,1('\e(B . ?\e,L'\e(B) (?\e$,1((\e(B . ?\e,L(\e(B) (?\e$,1()\e(B . ?\e,L)\e(B)
-   (?\e$,1(*\e(B . ?\e,L*\e(B) (?\e$,1(+\e(B . ?\e,L+\e(B) (?\e$,1(,\e(B . ?\e,L,\e(B) (?\e$,1(.\e(B . ?\e,L.\e(B) (?\e$,1(/\e(B . ?\e,L/\e(B)
-   (?\e$,1(0\e(B . ?\e,L0\e(B) (?\e$,1(1\e(B . ?\e,L1\e(B) (?\e$,1(2\e(B . ?\e,L2\e(B) (?\e$,1(3\e(B . ?\e,L3\e(B) (?\e$,1(4\e(B . ?\e,L4\e(B)
-   (?\e$,1(5\e(B . ?\e,L5\e(B) (?\e$,1(6\e(B . ?\e,L6\e(B) (?\e$,1(7\e(B . ?\e,L7\e(B) (?\e$,1(8\e(B . ?\e,L8\e(B) (?\e$,1(9\e(B . ?\e,L9\e(B)
-   (?\e$,1(:\e(B . ?\e,L:\e(B) (?\e$,1(;\e(B . ?\e,L;\e(B) (?\e$,1(<\e(B . ?\e,L<\e(B) (?\e$,1(=\e(B . ?\e,L=\e(B) (?\e$,1(>\e(B . ?\e,L>\e(B)
-   (?\e$,1(?\e(B . ?\e,L?\e(B) (?\e$,1(@\e(B . ?\e,L@\e(B) (?\e$,1(A\e(B . ?\e,LA\e(B) (?\e$,1(B\e(B . ?\e,LB\e(B) (?\e$,1(C\e(B . ?\e,LC\e(B)
-   (?\e$,1(D\e(B . ?\e,LD\e(B) (?\e$,1(E\e(B . ?\e,LE\e(B) (?\e$,1(F\e(B . ?\e,LF\e(B) (?\e$,1(G\e(B . ?\e,LG\e(B) (?\e$,1(H\e(B . ?\e,LH\e(B)
-   (?\e$,1(I\e(B . ?\e,LI\e(B) (?\e$,1(J\e(B . ?\e,LJ\e(B) (?\e$,1(K\e(B . ?\e,LK\e(B) (?\e$,1(L\e(B . ?\e,LL\e(B) (?\e$,1(M\e(B . ?\e,LM\e(B)
-   (?\e$,1(N\e(B . ?\e,LN\e(B) (?\e$,1(O\e(B . ?\e,LO\e(B) (?\e$,1(P\e(B . ?\e,LP\e(B) (?\e$,1(Q\e(B . ?\e,LQ\e(B) (?\e$,1(R\e(B . ?\e,LR\e(B)
-   (?\e$,1(S\e(B . ?\e,LS\e(B) (?\e$,1(T\e(B . ?\e,LT\e(B) (?\e$,1(U\e(B . ?\e,LU\e(B) (?\e$,1(V\e(B . ?\e,LV\e(B) (?\e$,1(W\e(B . ?\e,LW\e(B)
-   (?\e$,1(X\e(B . ?\e,LX\e(B) (?\e$,1(Y\e(B . ?\e,LY\e(B) (?\e$,1(Z\e(B . ?\e,LZ\e(B) (?\e$,1([\e(B . ?\e,L[\e(B) (?\e$,1(\\e(B . ?\e,L\\e(B)
-   (?\e$,1(]\e(B . ?\e,L]\e(B) (?\e$,1(^\e(B . ?\e,L^\e(B) (?\e$,1(_\e(B . ?\e,L_\e(B) (?\e$,1(`\e(B . ?\e,L`\e(B) (?\e$,1(a\e(B . ?\e,La\e(B)
-   (?\e$,1(b\e(B . ?\e,Lb\e(B) (?\e$,1(c\e(B . ?\e,Lc\e(B) (?\e$,1(d\e(B . ?\e,Ld\e(B) (?\e$,1(e\e(B . ?\e,Le\e(B) (?\e$,1(f\e(B . ?\e,Lf\e(B)
-   (?\e$,1(g\e(B . ?\e,Lg\e(B) (?\e$,1(h\e(B . ?\e,Lh\e(B) (?\e$,1(i\e(B . ?\e,Li\e(B) (?\e$,1(j\e(B . ?\e,Lj\e(B) (?\e$,1(k\e(B . ?\e,Lk\e(B)
-   (?\e$,1(l\e(B . ?\e,Ll\e(B) (?\e$,1(m\e(B . ?\e,Lm\e(B) (?\e$,1(n\e(B . ?\e,Ln\e(B) (?\e$,1(o\e(B . ?\e,Lo\e(B) (?\e$,1(q\e(B . ?\e,Lq\e(B)
-   (?\e$,1(r\e(B . ?\e,Lr\e(B) (?\e$,1(s\e(B . ?\e,Ls\e(B) (?\e$,1(t\e(B . ?\e,Lt\e(B) (?\e$,1(u\e(B . ?\e,Lu\e(B) (?\e$,1(v\e(B . ?\e,Lv\e(B)
-   (?\e$,1(w\e(B . ?\e,Lw\e(B) (?\e$,1(x\e(B . ?\e,Lx\e(B) (?\e$,1(y\e(B . ?\e,Ly\e(B) (?\e$,1(z\e(B . ?\e,Lz\e(B) (?\e$,1({\e(B . ?\e,L{\e(B)
-   (?\e$,1(|\e(B . ?\e,L|\e(B) (?\e$,1(~\e(B . ?\e,L~\e(B) (?\e$,1(\7f\e(B . ?\e,L\7f\e(B)))
-
-
-(defcustom utf-fragment-on-decoding nil
-  "Whether or not to decode some chars in UTF-8/16 text into iso8859 charsets.
-Setting this means that the relevant Cyrillic and Greek characters are
-decoded into the iso8859 charsets rather than into
-mule-unicode-0100-24ff.  The iso8859 charsets take half as much space
-in the buffer, but using them may affect how the buffer can be re-encoded
-and may require a different input method to search for them, for instance.
-See `unify-8859-on-decoding-mode' and `unify-8859-on-encoding-mode'
-for mechanisms to make this largely transparent.
-
-Setting this variable outside customize has no effect."
-  :set (lambda (s v)
-        (if v
-            (progn
-              (define-translation-table 'utf-translation-table-for-decode
-                utf-fragmentation-table)
-              ;; Even if unify-8859-on-encoding-mode is off, make
-              ;; mule-utf-* encode characters in
-              ;; utf-fragmentation-table.
-              (unless (eq (get 'utf-translation-table-for-encode
-                               'translation-table)
-                          ucs-mule-to-mule-unicode)
-                (define-translation-table 'utf-translation-table-for-encode
-                  utf-defragmentation-table)))
-          (define-translation-table 'utf-translation-table-for-decode)
-          ;; When unify-8859-on-encoding-mode is off, be sure to make
-          ;; mule-utf-* disabled for characters in
-          ;; utf-fragmentation-table.
-          (unless (eq (get 'utf-translation-table-for-encode
-                           'translation-table)
-                      ucs-mule-to-mule-unicode)
-            (define-translation-table 'utf-translation-table-for-encode)))
-        (set-default s v))
-  :version "22.1"
-  :type 'boolean
-  :group 'mule)
-
-
-(defconst utf-translate-cjk-charsets '(chinese-gb2312
-                                      chinese-big5-1 chinese-big5-2
-                                      japanese-jisx0208 japanese-jisx0212
-                                      katakana-jisx0201
-                                      korean-ksc5601)
-  "List of charsets supported by `utf-translate-cjk-mode'.")
-
-(defvar utf-translate-cjk-lang-env nil
-  "Language environment in which tables for `utf-translate-cjk-mode' is loaded.
-The value nil means that the tables are not yet loaded.")
-
-(defvar utf-translate-cjk-unicode-range)
-
-;; String generated from utf-translate-cjk-unicode-range.  It is
-;; suitable for an argument to skip-chars-forward.
-(defvar utf-translate-cjk-unicode-range-string nil)
-
-(defun utf-translate-cjk-set-unicode-range (range)
-  (setq utf-translate-cjk-unicode-range range)
-  (setq utf-translate-cjk-unicode-range-string
-       (let ((decode-char-no-trans
-              #'(lambda (x)
-                  (cond ((< x #x100) (make-char 'latin-iso8859-1 x))
-                        ((< x #x2500)
-                         (setq x (- x #x100))
-                         (make-char 'mule-unicode-0100-24ff
-                                    (+ (/ x 96) 32) (+ (% x 96) 32)))
-                        ((< x #x3400)
-                         (setq x (- x #x2500))
-                         (make-char 'mule-unicode-2500-33ff
-                                    (+ (/ x 96) 32) (+ (% x 96) 32)))
-                        (t
-                         (setq x (- x #xe000))
-                         (make-char 'mule-unicode-e000-ffff
-                                    (+ (/ x 96) 32) (+ (% x 96) 32))))))
-             ranges from to)
-         (dolist (elt range)
-           (setq from (max #xA0 (car elt)) to (min #xffff (cdr elt)))
-           (if (and (>= to #x3400) (< to #xE000))
-               (setq to #x33FF))
-           (cond ((< from #x100)
-                  (if (>= to #xE000)
-                      (setq ranges (cons (cons #xE000 to) ranges)
-                            to #x33FF))
-                  (if (>= to #x2500)
-                      (setq ranges (cons (cons #x2500 to) ranges)
-                            to #x24FF))
-                  (if (>= to #x100)
-                      (setq ranges (cons (cons #x100 to) ranges)
-                            to #xFF)))
-                 ((< from #x2500)
-                  (if (>= to #xE000)
-                      (setq ranges (cons (cons #xE000 to) ranges)
-                            to #x33FF))
-                  (if (>= to #x2500)
-                      (setq ranges (cons (cons #x2500 to) ranges)
-                            to #x24FF)))
-                 ((< from #x3400)
-                  (if (>= to #xE000)
-                      (setq ranges (cons (cons #xE000 to) ranges)
-                            to #x33FF))))
-           (if (<= from to)
-               (setq ranges (cons (cons from to) ranges))))
-         (mapconcat #'(lambda (x)
-                        (format "%c-%c"
-                                (funcall decode-char-no-trans (car x))
-                                (funcall decode-char-no-trans (cdr x))))
-                    ranges "")))
-  ;; These forces loading and settting tables for
-  ;; utf-translate-cjk-mode.
-  (setq utf-translate-cjk-lang-env nil
-       ucs-mule-cjk-to-unicode (make-hash-table :test 'eq)
-       ucs-unicode-to-mule-cjk (make-hash-table :test 'eq)))
-
-(defcustom utf-translate-cjk-unicode-range '((#x2e80 . #xd7a3)
-                                            (#xff00 . #xffef))
-  "List of Unicode code ranges supported by `utf-translate-cjk-mode'.
-Setting this variable directly does not take effect;
-use either \\[customize] or the function
-`utf-translate-cjk-set-unicode-range'."
-  :version "22.1"
-  :type '(repeat (cons integer integer))
-  :set (lambda (symbol value)
-        (utf-translate-cjk-set-unicode-range value))
-  :group 'mule)
-
-;; Return non-nil if CODE-POINT is in `utf-translate-cjk-unicode-range'.
-(defsubst utf-translate-cjk-substitutable-p (code-point)
-  (let ((tail utf-translate-cjk-unicode-range)
-       elt)
-    (while tail
-      (setq elt (car tail) tail (cdr tail))
-      (if (and (>= code-point (car elt)) (<= code-point (cdr elt)))
-         (setq tail nil)
-       (setq elt nil)))
-    elt))
-
-(defun utf-translate-cjk-load-tables ()
-  "Load tables for `utf-translate-cjk-mode'."
-  ;; Fixme: Allow the use of the CJK charsets to be
-  ;; customized by reordering and possible omission.
-  (let ((redefined (< (hash-table-size ucs-mule-cjk-to-unicode) 43000)))
-    (if redefined
-       ;; Redefine them with realistic initial sizes and a
-       ;; smallish rehash size to avoid wasting significant
-       ;; space after they're built.
-       (setq ucs-mule-cjk-to-unicode
-             (make-hash-table :test 'eq :size 43000 :rehash-size 1000)
-             ucs-unicode-to-mule-cjk
-             (make-hash-table :test 'eq :size 21500 :rehash-size 1000)))
-
-    ;; Load the files explicitly, to avoid having to keep
-    ;; around the large tables they contain (as well as the
-    ;; ones which get built).
-    ;; Here we bind coding-system-for-read to nil so that coding tags
-    ;; in the files are respected even if the files are not yet
-    ;; byte-compiled
-    (let ((coding-system-for-read nil)
-         ;; We must avoid clobbering this variable, in case the load
-         ;; files below use different coding systems.
-         (last-coding-system-used last-coding-system-used))
-      (cond ((string= "Korean" current-language-environment)
-            (load "subst-jis")
-            (load "subst-big5")
-            (load "subst-gb2312")
-            (load "subst-ksc"))
-           ((string= "Chinese-BIG5" current-language-environment)
-            (load "subst-jis")
-            (load "subst-ksc")
-            (load "subst-gb2312")
-            (load "subst-big5"))
-           ((string= "Chinese-GB" current-language-environment)
-            (load "subst-jis")
-            (load "subst-ksc")
-            (load "subst-big5")
-            (load "subst-gb2312"))
-           (t
-            (load "subst-ksc")
-            (load "subst-gb2312")
-            (load "subst-big5")
-            (load "subst-jis")))) ; jis covers as much as big5, gb2312
-
-    (when redefined
-      (define-translation-hash-table 'utf-subst-table-for-decode
-       ucs-unicode-to-mule-cjk)
-      (define-translation-hash-table 'utf-subst-table-for-encode
-       ucs-mule-cjk-to-unicode)
-      (set-char-table-extra-slot (get 'utf-translation-table-for-encode
-                                     'translation-table)
-                                1 ucs-mule-cjk-to-unicode))
-
-    (setq utf-translate-cjk-lang-env current-language-environment)))
-
-(defun utf-lookup-subst-table-for-decode (code-point)
-  (if (and utf-translate-cjk-mode
-          (not utf-translate-cjk-lang-env)
-          (utf-translate-cjk-substitutable-p code-point))
-      (utf-translate-cjk-load-tables))
-  (gethash code-point
-          (get 'utf-subst-table-for-decode 'translation-hash-table)))
-
-
-(defun utf-lookup-subst-table-for-encode (char)
-  (if (and utf-translate-cjk-mode
-          (not utf-translate-cjk-lang-env)
-          (memq (char-charset char) utf-translate-cjk-charsets))
-      (utf-translate-cjk-load-tables))
-  (gethash char
-          (get 'utf-subst-table-for-encode 'translation-hash-table)))
-
-(define-minor-mode utf-translate-cjk-mode
-  "Toggle whether UTF based coding systems de/encode CJK characters.
-If ARG is an integer, enable if ARG is positive and disable if
-zero or negative.  This is a minor mode.
-Enabling this allows the coding systems mule-utf-8,
-mule-utf-16le and mule-utf-16be to encode characters in the charsets
-`korean-ksc5601', `chinese-gb2312', `chinese-big5-1',
-`chinese-big5-2', `japanese-jisx0208' and `japanese-jisx0212', and to
-decode the corresponding unicodes into such characters.
-
-Where the charsets overlap, the one preferred for decoding is chosen
-according to the language environment in effect when this option is
-turned on: ksc5601 for Korean, gb2312 for Chinese-GB, big5 for
-Chinese-Big5 and jisx for other environments.
-
-This mode is on by default.  If you are not interested in CJK
-characters and want to avoid some overhead on encoding/decoding
-by the above coding systems, you can customize the user option
-`utf-translate-cjk-mode' to nil."
-  :init-value t
-  :version "22.1"
-  :type 'boolean
-  :group 'mule
-  :global t
-  (if utf-translate-cjk-mode
-      (progn
-       (define-translation-hash-table 'utf-subst-table-for-decode
-         ucs-unicode-to-mule-cjk)
-       (define-translation-hash-table 'utf-subst-table-for-encode
-         ucs-mule-cjk-to-unicode)
-       (set-char-table-extra-slot (get 'utf-translation-table-for-encode
-                                       'translation-table)
-                                  1 ucs-mule-cjk-to-unicode))
-    (define-translation-hash-table 'utf-subst-table-for-decode
-      (make-hash-table :test 'eq))
-    (define-translation-hash-table 'utf-subst-table-for-encode
-      (make-hash-table :test 'eq))
-    (set-char-table-extra-slot (get 'utf-translation-table-for-encode
-                                   'translation-table)
-                              1 nil))
-
-  ;; Update safe-chars of mule-utf-* coding systems.
-  (dolist (elt (coding-system-list t))
-    (if (string-match "^mule-utf" (symbol-name elt))
-       (let ((safe-charsets (coding-system-get elt 'safe-charsets))
-             (safe-chars (coding-system-get elt 'safe-chars))
-             (need-update nil))
-         (dolist (charset utf-translate-cjk-charsets)
-           (unless (eq utf-translate-cjk-mode (memq charset safe-charsets))
-             (setq safe-charsets
-                   (if utf-translate-cjk-mode
-                       (cons charset safe-charsets)
-                     (delq charset safe-charsets))
-                   need-update t)
-             (aset safe-chars (make-char charset) utf-translate-cjk-mode)))
-         (when need-update
-           (coding-system-put elt 'safe-charsets safe-charsets)
-           (define-coding-system-internal elt))))))
-
-(define-ccl-program ccl-mule-utf-untrans
-  ;; R0 is an untranslatable Unicode code-point (U+3500..U+DFFF or
-  ;; U+10000..U+10FFFF) or an invaid byte (#x00..#xFF).  Write
-  ;; eight-bit-control/graphic sequence (2 to 4 chars) representing
-  ;; UTF-8 sequence of r0.  Registers r4, r5, r6 are modified.
-  ;;
-  ;; This is a subrountine because we assume that this is called very
-  ;; rarely (so we don't have to worry about the overhead of the
-  ;; call).
-  `(0
-    ((r5 = ,(charset-id 'eight-bit-control))
-     (r6 = ,(charset-id 'eight-bit-graphic))
-     (if (r0 < #x100)
-        ((r4 = ((r0 >> 6) | #xC0))
-         (write-multibyte-character r6 r4))
-       ((if (r0 < #x10000)
-           ((r4 = ((r0 >> 12) | #xE0))
-            (write-multibyte-character r6 r4))
-         ((r4 = ((r0 >> 18) | #xF0))
-          (write-multibyte-character r6 r4)
-          (r4 = (((r0 >> 12) & #x3F) | #x80))
-          (if (r4 < #xA0)
-              (write-multibyte-character r5 r4)
-            (write-multibyte-character r6 r4))))
-       (r4 = (((r0 >> 6) & #x3F) | #x80))
-       (if (r4 < #xA0)
-           (write-multibyte-character r5 r4)
-         (write-multibyte-character r6 r4))))
-     (r4 = ((r0 & #x3F) | #x80))
-     (if (r4 < #xA0)
-        (write-multibyte-character r5 r4)
-       (write-multibyte-character r6 r4)))))
-
-(define-ccl-program ccl-decode-mule-utf-8
-  ;;
-  ;;        charset         | bytes in utf-8 | bytes in emacs
-  ;; -----------------------+----------------+---------------
-  ;;         ascii          |       1        |       1
-  ;; -----------------------+----------------+---------------
-  ;;    eight-bit-control   |       2        |       2
-  ;;    eight-bit-graphic   |       2        |       1
-  ;;     latin-iso8859-1    |       2        |       2
-  ;; -----------------------+----------------+---------------
-  ;; mule-unicode-0100-24ff |       2        |       4
-  ;;        (< 0800)        |                |
-  ;; -----------------------+----------------+---------------
-  ;; mule-unicode-0100-24ff |       3        |       4
-  ;;        (>= 8000)       |                |
-  ;; mule-unicode-2500-33ff |       3        |       4
-  ;; mule-unicode-e000-ffff |       3        |       4
-  ;; -----------------------+----------------+---------------
-  ;;      invalid byte      |       1        |       2
-  ;;
-  ;; Thus magnification factor is two.
-  ;;
-  `(2
-    ((r6 = ,(charset-id 'latin-iso8859-1))
-     (read r0)
-     (loop
-      (if (r0 < #x80)
-         ;; 1-byte encoding, i.e., ascii
-         (write-read-repeat r0))
-      (if (r0 < #xc2)
-         ;; continuation byte (invalid here) or 1st byte of overlong
-         ;; 2-byte sequence.
-         ((call ccl-mule-utf-untrans)
-          (r6 = ,(charset-id 'latin-iso8859-1))
-          (read r0)
-          (repeat)))
-
-      ;; Read the 2nd byte.
-      (read r1)
-      (if ((r1 & #b11000000) != #b10000000) ; Invalid 2nd byte
-         ((call ccl-mule-utf-untrans)
-          (r6 = ,(charset-id 'latin-iso8859-1))
-          ;; Handle it in the next loop.
-          (r0 = r1)
-          (repeat)))
-
-      (if (r0 < #xe0)
-         ;; 2-byte encoding 00000yyyyyxxxxxx = 110yyyyy 10xxxxxx
-         ((r1 &= #x3F)
-          (r1 |= ((r0 & #x1F) << 6))
-          ;; Now r1 holds scalar value.  We don't have to check
-          ;; `overlong sequence' because r0 >= 0xC2.
-
-          (if (r1 >= 256)
-              ;; mule-unicode-0100-24ff (< 0800)
-              ((r0 = r1)
-               (lookup-integer utf-subst-table-for-decode r0 r1)
-               (if (r7 == 0)
-                   ((r0 = ,(charset-id 'mule-unicode-0100-24ff))
-                    (r1 -= #x0100)
-                    (r2 = (((r1 / 96) + 32) << 7))
-                    (r1 %= 96)
-                    (r1 += (r2 + 32))
-                    (translate-character
-                     utf-translation-table-for-decode r0 r1)))
-               (write-multibyte-character r0 r1)
-               (read r0)
-               (repeat))
-            (if (r1 >= 160)
-                ;; latin-iso8859-1
-                ((r0 = r1)
-                 (lookup-integer utf-subst-table-for-decode r0 r1)
-                 (if (r7 == 0)
-                     ((r1 -= 128)
-                      (write-multibyte-character r6 r1))
-                   ((write-multibyte-character r0 r1)))
-                 (read r0)
-                 (repeat))
-              ;; eight-bit-control
-              ((r0 = ,(charset-id 'eight-bit-control))
-               (write-multibyte-character r0 r1)
-               (read r0)
-               (repeat))))))
-
-      ;; Read the 3rd bytes.
-      (read r2)
-      (if ((r2 & #b11000000) != #b10000000) ; Invalid 3rd byte
-         ((call ccl-mule-utf-untrans)
-          (r0 = r1)
-          (call ccl-mule-utf-untrans)
-          (r6 = ,(charset-id 'latin-iso8859-1))
-          ;; Handle it in the next loop.
-          (r0 = r2)
-          (repeat)))
-
-      (if (r0 < #xF0)
-         ;; 3byte encoding
-         ;; zzzzyyyyyyxxxxxx = 1110zzzz 10yyyyyy 10xxxxxx
-         ((r3 = ((r0 & #xF) << 12))
-          (r3 |= ((r1 & #x3F) << 6))
-          (r3 |= (r2 & #x3F))
-
-          (if (r3 < #x800)             ; `overlong sequence'
-              ((call ccl-mule-utf-untrans)
-               (r0 = r1)
-               (call ccl-mule-utf-untrans)
-               (r0 = r2)
-               (call ccl-mule-utf-untrans)
-               (r6 = ,(charset-id 'latin-iso8859-1))
-               (read r0)
-               (repeat)))
-
-          (if (r3 < #x2500)
-              ;; mule-unicode-0100-24ff (>= 0800)
-              ((r0 = r3)
-               (lookup-integer utf-subst-table-for-decode r0 r1)
-               (if (r7 == 0)
-                   ((r0 = ,(charset-id 'mule-unicode-0100-24ff))
-                    (r3 -= #x0100)
-                    (r3 //= 96)
-                    (r1 = (r7 + 32))
-                    (r1 += ((r3 + 32) << 7))
-                    (translate-character
-                     utf-translation-table-for-decode r0 r1)))
-               (write-multibyte-character r0 r1)
-               (read r0)
-               (repeat)))
-
-          (if (r3 < #x3400)
-              ;; mule-unicode-2500-33ff
-              ((r0 = r3)               ; don't zap r3
-               (lookup-integer utf-subst-table-for-decode r0 r1)
-               (if (r7 == 0)
-                   ((r0 = ,(charset-id 'mule-unicode-2500-33ff))
-                    (r3 -= #x2500)
-                    (r3 //= 96)
-                    (r1 = (r7 + 32))
-                    (r1 += ((r3 + 32) << 7))))
-               (write-multibyte-character r0 r1)
-               (read r0)
-               (repeat)))
-
-          (if (r3 < #xE000)
-              ;; Try to convert to CJK chars, else
-              ;; keep them as eight-bit-{control|graphic}.
-              ((r0 = r3)
-               (lookup-integer utf-subst-table-for-decode r3 r1)
-               (if r7
-                   ;; got a translation
-                   ((write-multibyte-character r3 r1)
-                    (read r0)
-                    (repeat))
-                 ((call ccl-mule-utf-untrans)
-                  (r6 = ,(charset-id 'latin-iso8859-1))
-                  (read r0)
-                  (repeat)))))
-
-          ;; mule-unicode-e000-ffff
-          ;; Fixme: fffe and ffff are invalid.
-          (r0 = r3)            ; don't zap r3
-          (lookup-integer utf-subst-table-for-decode r0 r1)
-          (if (r7 == 0)
-              ((r0 = ,(charset-id 'mule-unicode-e000-ffff))
-               (r3 -= #xe000)
-               (r3 //= 96)
-               (r1 = (r7 + 32))
-               (r1 += ((r3 + 32) << 7))))
-          (write-multibyte-character r0 r1)
-          (read r0)
-          (repeat)))
-
-      ;; Read the 4th bytes.
-      (read r3)
-      (if ((r3 & #b11000000) != #b10000000) ; Invalid 4th byte
-         ((call ccl-mule-utf-untrans)
-          (r0 = r1)
-          (call ccl-mule-utf-untrans)
-          (r0 = r2)
-          (call ccl-mule-utf-untrans)
-          (r6 = ,(charset-id 'latin-iso8859-1))
-          ;; Handle it in the next loop.
-          (r0 = r3)
-          (repeat)))
-
-      (if (r0 < #xF8)
-         ;; 4-byte encoding:
-         ;; wwwzzzzzzyyyyyyxxxxxx = 11110www 10zzzzzz 10yyyyyy 10xxxxxx
-         ;; keep those bytes as eight-bit-{control|graphic}
-         ;; Fixme: allow lookup in utf-subst-table-for-decode.
-         ((r4 = ((r0 & #x7) << 18))
-          (r4 |= ((r1 & #x3F) << 12))
-          (r4 |= ((r2 & #x3F) << 6))
-          (r4 |= (r3 & #x3F))
-
-          (if (r4 < #x10000)           ; `overlong sequence'
-              ((call ccl-mule-utf-untrans)
-               (r0 = r1)
-               (call ccl-mule-utf-untrans)
-               (r0 = r2)
-               (call ccl-mule-utf-untrans)
-               (r0 = r3)
-               (call ccl-mule-utf-untrans))
-            ((r0 = r4)
-             (call ccl-mule-utf-untrans))))
-
-       ;; Unsupported sequence.
-       ((call ccl-mule-utf-untrans)
-        (r0 = r1)
-        (call ccl-mule-utf-untrans)
-        (r0 = r2)
-        (call ccl-mule-utf-untrans)
-        (r0 = r3)
-        (call ccl-mule-utf-untrans)))
-      (r6 = ,(charset-id 'latin-iso8859-1))
-      (read r0)
-      (repeat)))
-
-
-    ;; At EOF...
-    (if (r0 >= 0)
-       ;; r0 >= #x80
-       ((call ccl-mule-utf-untrans)
-        (if (r1 >= 0)
-            ((r0 = r1)
-             (call ccl-mule-utf-untrans)
-             (if (r2 >= 0)
-                 ((r0 = r2)
-                  (call ccl-mule-utf-untrans)
-                  (if (r3 >= 0)
-                      ((r0 = r3)
-                       (call ccl-mule-utf-untrans))))))))))
-
-  "CCL program to decode UTF-8.
-Basic decoding is done into the charsets ascii, latin-iso8859-1 and
-mule-unicode-*, but see also `utf-fragmentation-table' and
-`ucs-mule-cjk-to-unicode'.
-Encodings of un-representable Unicode characters are decoded asis into
-eight-bit-control and eight-bit-graphic characters.")
-
-(define-ccl-program ccl-mule-utf-8-encode-untrans
-  ;; UTF-8 decoder generates an UTF-8 sequence represented by a
-  ;; sequence eight-bit-control/graphic chars for an untranslatable
-  ;; character and an invalid byte.
-  ;;
-  ;; This CCL parses that sequence (the first byte is already in r1),
-  ;; writes out the original bytes of that sequence, and sets r5 to
-  ;; -1.
-  ;;
-  ;; If the eight-bit-control/graphic sequence is shorter than what r1
-  ;; suggests, it sets r5 and r6 to the last character read that
-  ;; should be handled by the next loop of a caller.
-  ;;
-  ;; Note: For UTF-8 validation, we only check if a character is
-  ;; eight-bit-control/graphic or not.  It may result in incorrect
-  ;; handling of random binary data, but such a data can't be encoded
-  ;; by UTF-8 anyway.  At least, UTF-8 decoders doesn't generate such
-  ;; a sequence even if a source contains invalid byte-sequence.
-  `(0
-    (;; Read the 2nd byte.
-     (read-multibyte-character r5 r6)
-     (r0 = (r5 != ,(charset-id 'eight-bit-control)))
-     (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0)
-        ((write r1)                    ; invalid UTF-8
-         (r1 = -1)
-         (end)))
-
-     (if (r1 <= #xC3)
-        ;; 2-byte sequence for an originally invalid byte.
-        ((r6 &= #x3F)
-         (r6 |= ((r1 & #x1F) << 6))
-         (write r6)
-         (r5 = -1)
-         (end)))
-
-     (write r1 r6)
-     (r2 = r1)
-     (r1 = -1)
-     ;; Read the 3rd byte.
-     (read-multibyte-character r5 r6)
-     (r0 = (r5 != ,(charset-id 'eight-bit-control)))
-     (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0)
-        (end))                         ; invalid UTF-8
-     (write r6)
-     (if (r2 < #xF0)
-        ;; 3-byte sequence for an untranslated character.
-        ((r5 = -1)
-         (end)))
-     ;; Read the 4th byte.
-     (read-multibyte-character r5 r6)
-     (r0 = (r5 != ,(charset-id 'eight-bit-control)))
-     (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0)
-        (end))                 ; invalid UTF-8
-     ;; 4-byte sequence for an untranslated character.
-     (write r6)
-     (r5 = -1)
-     (end))
-
-    ;; At EOF...
-    ((r5 = -1)
-     (if (r1 >= 0)
-        (write r1)))))
-
-(define-ccl-program ccl-encode-mule-utf-8
-  `(1
-    ((r5 = -1)
-     (loop
-      (if (r5 < 0)
-         (read-multibyte-character r0 r1)
-       ;; Pre-read character is in r5 (charset-ID) and r6 (code-point).
-       ((r0 = r5)
-        (r1 = r6)
-        (r5 = -1)))
-      (translate-character utf-translation-table-for-encode r0 r1)
-
-      (if (r0 == ,(charset-id 'ascii))
-         (write-repeat r1))
-
-      (if (r0 == ,(charset-id 'latin-iso8859-1))
-         ;; r1          scalar                  utf-8
-         ;;       0000 0yyy yyxx xxxx    110y yyyy 10xx xxxx
-         ;; 20    0000 0000 1010 0000    1100 0010 1010 0000
-         ;; 7f    0000 0000 1111 1111    1100 0011 1011 1111
-         ((write ((r1 >> 6) | #xc2))
-          (r1 &= #x3f)
-          (r1 |= #x80)
-          (write-repeat r1)))
-
-      (if (r0 == ,(charset-id 'mule-unicode-0100-24ff))
-         ((r0 = ((((r1 & #x3f80) >> 7) - 32) * 96))
-          ;; #x3f80 == (0011 1111 1000 0000)b
-          (r1 &= #x7f)
-          (r1 += (r0 + 224))           ; 240 == -32 + #x0100
-          ;; now r1 holds scalar value
-          (if (r1 < #x0800)
-              ;; 2byte encoding
-              ((write ((r1 >> 6) | #xC0))
-               (r1 &= #x3F)
-               (r1 |= #x80)
-               (write-repeat r1))
-            ;; 3byte encoding
-            ((write ((r1 >> 12) | #xE0))
-             (write  (((r1 & #x0FC0) >> 6) | #x80))
-             (r1 &= #x3F)
-             (r1 |= #x80)
-             (write-repeat r1)))))
-
-      (if (r0 == ,(charset-id 'mule-unicode-2500-33ff))
-         ((r0 = ((((r1 & #x3f80) >> 7) - 32) * 96))
-          (r1 &= #x7f)
-          (r1 += (r0 + 9440))          ; 9440 == -32 + #x2500
-          ;; now r1 holds scalar value
-          (write ((r1 >> 12) | #xE0))
-          (write  (((r1 & #x0FC0) >> 6) | #x80))
-          (r1 &= #x3F)
-          (r1 |= #x80)
-          (write-repeat r1)))
-
-      (if (r0 == ,(charset-id 'mule-unicode-e000-ffff))
-         ((r0 = ((((r1 & #x3f80) >> 7) - 32) * 96))
-          (r1 &= #x7f)
-          (r1 += (r0 + 57312))         ; 57312 == -32 + #xe000
-          ;; now r1 holds scalar value
-          (write ((r1 >> 12) | #xE0))
-          (write  (((r1 & #x0FC0) >> 6) | #x80))
-          (r1 &= #x3F)
-          (r1 |= #x80)
-          (write-repeat r1)))
-
-      (if (r0 == ,(charset-id 'eight-bit-control))
-         ;; r1          scalar                  utf-8
-         ;;       0000 0yyy yyxx xxxx    110y yyyy 10xx xxxx
-         ;; 80    0000 0000 1000 0000    1100 0010 1000 0000
-         ;; 9f    0000 0000 1001 1111    1100 0010 1001 1111
-         ((write #xC2)
-          (write-repeat r1)))
-
-      (if (r0 == ,(charset-id 'eight-bit-graphic))
-         ;; r1          scalar                  utf-8
-         ;;       0000 0yyy yyxx xxxx    110y yyyy 10xx xxxx
-         ;; a0    0000 0000 1010 0000    1100 0010 1010 0000
-         ;; ff    0000 0000 1111 1111    1101 1111 1011 1111
-         ((r0 = (r1 >= #xC0))
-          (r0 &= (r1 <= #xC3))
-          (r4 = (r1 >= #xE1))
-          (r4 &= (r1 <= #xF7))
-          (r0 |= r4)
-          (if r0
-              ((call ccl-mule-utf-8-encode-untrans)
-               (repeat))
-            (write-repeat r1))))
-
-      (lookup-character utf-subst-table-for-encode r0 r1)
-      (if r7           ; lookup succeeded
-         (if (r0 < #x800)
-             ;; 2byte encoding
-             ((write ((r0 >> 6) | #xC0))
-              (r0 = ((r0 & #x3F) | #x80))
-              (write-repeat r0))
-           ;; 3byte encoding
-           ((write ((r0 >> 12) | #xE0))
-            (write  (((r0 & #x0FC0) >> 6) | #x80))
-            (r0 = ((r0 & #x3F) | #x80))
-            (write-repeat r0))))
-
-      ;; Unsupported character.
-      ;; Output U+FFFD, which is `ef bf bd' in UTF-8.
-      (write #xef)
-      (write #xbf)
-      (write-repeat #xbd))))
-  "CCL program to encode into UTF-8.")
-
-
-(define-ccl-program ccl-untranslated-to-ucs
-  `(0
-    (if (r1 == 0)
-       nil
-      (if (r0 <= #xC3)                 ; 2-byte encoding
-         ((r0 = ((r0 & #x3) << 6))
-          (r0 |= (r1 & #x3F))
-          (r1 = 2))
-       (if (r2 == 0)
-           (r1 = 0)
-         (if (r0 < #xF0)               ; 3-byte encoding, as above
-             ((r0 = ((r0 & #xF) << 12))
-              (r0 |= ((r1 & #x3F) << 6))
-              (r0 |= (r2 & #x3F))
-              (r1 = 3))
-           (if (r3 == 0)
-               (r1 = 0)
-             ((r0 = ((r0 & #x7) << 18))
-              (r0 |= ((r1 & #x3F) << 12))
-              (r0 |= ((r2 & #x3F) << 6))
-              (r0 |= (r3 & #x3F))
-              (r1 = 4))))))))
-  "Decode 2-, 3-, or 4-byte sequences in r0, r1, r2 [,r3] to unicodes in r0.
-Set r1 to the byte length.  r0 == 0 for invalid sequence.")
-
-(defvar utf-8-ccl-regs (make-vector 8 0))
-
-(defsubst utf-8-untranslated-to-ucs ()
-  "Return the UCS code for an untranslated sequence of raw bytes t point.
-Only for 3- or 4-byte sequences."
-  (aset utf-8-ccl-regs 0 (or (char-after) 0))
-  (aset utf-8-ccl-regs 1 (or (char-after (1+ (point))) 0))
-  (aset utf-8-ccl-regs 2 (or (char-after (+ 2 (point))) 0))
-  (aset utf-8-ccl-regs 3 (or (char-after (+ 3 (point))) 0))
-  (ccl-execute 'ccl-untranslated-to-ucs utf-8-ccl-regs))
-
-(defun utf-8-help-echo (window object position)
-  (format "Untranslated Unicode U+%04X"
-         (get-char-property position 'untranslated-utf-8 object)))
-
-;; We compose the untranslatable sequences into a single character,
-;; and move point to the next character.
-;; This is infelicitous for editing, because there's currently no
-;; mechanism for treating compositions as atomic, but is OK for
-;; display.  They are composed to U+FFFD with help-echo which
-;; indicates the unicodes they represent.  This function GCs too much.
-
-;; If utf-translate-cjk-mode is non-nil, this function is called with
-;; HASH-TABLE which translates CJK characters into some of CJK
-;; charsets.
-
-(defsubst utf-8-compose (hash-table)
-  "Put a suitable composition on an untranslatable sequence at point.
-If HASH-TABLE is non-nil, try to translate CJK characters by it at first.
-Move point to the end of the sequence."
-  (utf-8-untranslated-to-ucs)
-  (let ((l (aref utf-8-ccl-regs 1))
-       ch)
-    (if (> l 0)
-       (if (and hash-table
-                (setq ch (gethash (aref utf-8-ccl-regs 0)  hash-table)))
-           (progn
-             (insert ch)
-             (delete-region (point) (min (point-max) (+ l (point)))))
-         (setq ch (aref utf-8-ccl-regs 0))
-         (put-text-property (point) (min (point-max) (+ l (point)))
-                            'untranslated-utf-8 ch)
-         (put-text-property (point) (min (point-max) (+ l (point)))
-                            'help-echo 'utf-8-help-echo)
-         (if (= l 2)
-             (put-text-property (point) (min (point-max) (+ l (point)))
-                                'display (propertize (format "\\%03o" ch)
-                                                     'face 'escape-glyph))
-           (compose-region (point) (+ l (point)) ?\e$,3u=\e(B))
-         (forward-char l))
-      (forward-char 1))))
-
-(defcustom utf-8-compose-scripts nil
-  "*Non-nil means compose various scripts on decoding utf-8 text."
-  :group 'mule
-  :version "22.1"
-  :type 'boolean)
-
-(defun utf-8-post-read-conversion (length)
-  "Compose untranslated utf-8 sequences into single characters.
-If `utf-translate-cjk-mode' is non-nil, tries to translate CJK characters.
-Also compose particular scripts if `utf-8-compose-scripts' is non-nil."
-  (save-excursion
-    (save-restriction
-      (narrow-to-region (point) (+ (point) length))
-      ;; Can't do eval-when-compile to insert a multibyte constant
-      ;; version of the string in the loop, since it's always loaded as
-      ;; unibyte from a byte-compiled file.
-      (let ((range (string-as-multibyte "^\xc0-\xc3\xe1-\xf7"))
-           (buffer-multibyte enable-multibyte-characters)
-           hash-table ch)
-       (set-buffer-multibyte t)
-       (when utf-translate-cjk-mode
-         (unless utf-translate-cjk-lang-env
-           ;; Check these characters in utf-translate-cjk-range.
-           ;; We may have to translate them to CJK charsets.
-           (skip-chars-forward
-            (concat range utf-translate-cjk-unicode-range-string))
-           (unless (eobp)
-             (utf-translate-cjk-load-tables)
-             (setq range
-                   (concat range utf-translate-cjk-unicode-range-string)))
-           (setq hash-table (get 'utf-subst-table-for-decode
-                                 'translation-hash-table))))
-       (while (and (skip-chars-forward range)
-                   (not (eobp)))
-         (setq ch (following-char))
-         (if (< ch 256)
-             (utf-8-compose hash-table)
-           (if (and hash-table
-                    (setq ch (gethash (encode-char ch 'ucs) hash-table)))
-               (progn
-                 (insert ch)
-                 (delete-char 1))
-             (forward-char 1))))
-       (or buffer-multibyte
-           (set-buffer-multibyte nil)))
-
-      (when (and utf-8-compose-scripts (> length 1))
-       ;; This let-binding avoids recursive auto-loading.  And, we
-       ;; anyway don't have to run the following code while
-       ;; auto-loading.
-       (let ((utf-8-compose-scripts nil))
-         ;; These currently have definitions which cover the relevant
-         ;; unicodes.  We could avoid loading thai-util &c by checking
-         ;; whether the region contains any characters with the appropriate
-         ;; categories.  There aren't yet Unicode-based rules for Tibetan.
-         (diacritic-compose-region (point-max) (point-min))
-         (thai-compose-region (point-max) (point-min))
-         (lao-compose-region (point-max) (point-min))
-         (devanagari-compose-region (point-max) (point-min))
-         (malayalam-compose-region (point-max) (point-min))
-         (tamil-compose-region (point-max) (point-min))))
-      (- (point-max) (point-min)))))
-
-(defun utf-8-pre-write-conversion (beg end)
-  "Prepare for `utf-translate-cjk-mode' to encode text between BEG and END.
-This is used as a post-read-conversion of utf-8 coding system."
-  (if (and utf-translate-cjk-mode
-          (not utf-translate-cjk-lang-env)
-          (if (stringp beg)
-              (string-match "\\cc\\|\\cj\\|\\ch" beg)
-            (save-excursion
-              (goto-char beg)
-              (re-search-forward "\\cc\\|\\cj\\|\\ch" end t))))
-      (utf-translate-cjk-load-tables))
-  nil)
-
-(make-coding-system
- 'mule-utf-8 4 ?u
- "UTF-8 encoding for Emacs-supported Unicode characters.
-It supports Unicode characters of these ranges:
-    U+0000..U+33FF, U+E000..U+FFFF.
-They correspond to these Emacs character sets:
-    ascii, latin-iso8859-1, mule-unicode-0100-24ff,
-    mule-unicode-2500-33ff, mule-unicode-e000-ffff
-
-On decoding (e.g. reading a file), Unicode characters not in the above
-ranges are decoded into sequences of eight-bit-control and
-eight-bit-graphic characters to preserve their byte sequences.  The
-byte sequence is preserved on i/o for valid utf-8, but not necessarily
-for invalid utf-8.
-
-On encoding (e.g. writing a file), Emacs characters not belonging to
-any of the character sets listed above are encoded into the UTF-8 byte
-sequence representing U+FFFD (REPLACEMENT CHARACTER)."
-
- '(ccl-decode-mule-utf-8 . ccl-encode-mule-utf-8)
- `((safe-charsets
-    ascii
-    eight-bit-control
-    eight-bit-graphic
-    latin-iso8859-1
-    mule-unicode-0100-24ff
-    mule-unicode-2500-33ff
-    mule-unicode-e000-ffff
-    ,@(if utf-translate-cjk-mode
-         utf-translate-cjk-charsets))
-   (mime-charset . utf-8)
-   (coding-category . coding-category-utf-8)
-   (valid-codes (0 . 255))
-   (pre-write-conversion . utf-8-pre-write-conversion)
-   (post-read-conversion . utf-8-post-read-conversion)
-   (translation-table-for-encode . utf-translation-table-for-encode)
-   (dependency unify-8859-on-encoding-mode
-              unify-8859-on-decoding-mode
-              utf-fragment-on-decoding
-              utf-translate-cjk-mode)))
-
-(define-coding-system-alias 'utf-8 'mule-utf-8)
-
-;; I think this needs special private charsets defined for the
-;; untranslated sequences, if it's going to work well.
-
-;;; (defun utf-8-compose-function (pos to pattern &optional string)
-;;;   (let* ((prop (get-char-property pos 'composition string))
-;;;     (l (and prop (- (cadr prop) (car prop)))))
-;;;     (cond ((and l (> l (- to pos)))
-;;;       (delete-region pos to))
-;;;      ((and (> (char-after pos) 224)
-;;;            (< (char-after pos) 256)
-;;;            (save-restriction
-;;;              (narrow-to-region pos to)
-;;;              (utf-8-compose)))
-;;;       t))))
-
-;;; (dotimes (i 96)
-;;;   (aset composition-function-table
-;;;    (+ 128 i)
-;;;    `((,(string-as-multibyte "[\200-\237\240-\377]")
-;;;       . utf-8-compose-function))))
-
-;;; arch-tag: b08735b7-753b-4ae6-b754-0f3efe4515c5
-;;; utf-8.el ends here
index 2c88fea452620bf4976ffd5709194f69134d39c0..6920345576cd02346724362e1f32013f8b421402 100644 (file)
@@ -311,15 +311,11 @@ A value of nil means highlight all matches."
 (defvar isearch-mode-map
   (let* ((i 0)
         (map (make-keymap)))
-    (or (vectorp (nth 1 map))
-       (char-table-p (nth 1 map))
+    (or (char-table-p (nth 1 map))
        (error "The initialization of isearch-mode-map must be updated"))
     ;; Make all multibyte characters search for themselves.
-    (let ((l (generic-character-list))
-         (table (nth 1 map)))
-      (while l
-       (set-char-table-default table (car l) 'isearch-printing-char)
-       (setq l (cdr l))))
+    (set-char-table-range (nth 1 map) (cons #x100 (max-char))
+                         'isearch-printing-char)
     ;; Make function keys, etc, which aren't bound to a scrolling-function
     ;; exit the search.
     (define-key map [t] 'isearch-other-control-char)
index d31331d1f2a3a08cb435b24c1b4dad1ee60e33ad..4b4a20b20b4ee9f2285e524168744f3308cd7ccf 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: mule, multilingual, Chinese
 
@@ -74,7 +77,7 @@
        (push i chars)
        (setq i (1+ i)))
       (while (< i 127)
-       (push (+ i 128) chars)
+       (push (decode-char 'eight-bit (+ i 128)) chars)
        (setq i (1+ i)))
       (apply 'string (nreverse chars)))))
 
@@ -168,255 +171,25 @@ Return the length of resulting text."
   (interactive)
   (encode-hz-region (point-min) (point-max)))
 
-;; The following sets up a translation table (big5-to-cns) from Big 5
-;; to CNS encoding, using some auxiliary functions to make the code
-;; more readable.
-
-;; Many kudos to Himi!  The used code has been adapted from his
-;; mule-ucs package.
-
-(eval-when-compile
-(defun big5-to-flat-code (num)
-  "Convert NUM in Big 5 encoding to a `flat code'.
-0xA140 will be mapped to position 0, 0xA141 to position 1, etc.
-There are no gaps in the flat code."
-
-  (let ((hi (/ num 256))
-        (lo (% num 256)))
-    (+ (* 157 (- hi #xa1))
-       (- lo (if (>= lo #xa1) 98 64)))))
-
-(defun flat-code-to-big5 (num)
-  "Convert NUM from a `flat code' to Big 5 encoding.
-This is the inverse function of `big5-to-flat-code'."
-
-  (let ((hi (/ num 157))
-        (lo (% num 157)))
-    (+ (* 256 (+ hi #xa1))
-       (+ lo (if (< lo 63) 64 98)))))
-
-(defun euc-to-flat-code (num)
-  "Convert NUM in EUC encoding (in GL representation) to a `flat code'.
-0x2121 will be mapped to position 0, 0x2122 to position 1, etc.
-There are no gaps in the flat code."
-
-  (let ((hi (/ num 256))
-        (lo (% num 256)))
-    (+ (* 94 (- hi #x21))
-       (- lo #x21))))
-
-(defun flat-code-to-euc (num)
-  "Convert NUM from a `flat code' to EUC encoding (in GL representation).
-The inverse function of `euc-to-flat-code'.  The high and low bytes are
-returned in a list."
-
-  (let ((hi (/ num 94))
-        (lo (% num 94)))
-    (list (+ hi #x21) (+ lo #x21))))
-
-(defun expand-euc-big5-alist (alist)
-  "Create a translation table and fills it with data given in ALIST.
-Elements of ALIST can be either given as
-
-  ((euc-charset . startchar) . (big5-range-begin . big5-range-end))
-
-or as
-
-  (euc-character . big5-charcode)
-
-The former maps a range of glyphs in an EUC charset (where STARTCHAR
-is in GL representation) to a certain range of Big 5 encoded
-characters, the latter maps a single glyph.  Glyphs which can't be
-mapped will be represented with the byte 0xFF.
-
-The return value is the filled translation table."
-
-  (let ((chartable (make-char-table 'translation-table #xFF))
-        char
-        big5
-        i
-        end
-        codepoint
-        charset)
-    (dolist (elem alist)
-      (setq char (car elem)
-            big5 (cdr elem))
-      (cond ((and (consp char)
-                  (consp big5))
-            (setq i (big5-to-flat-code (car big5))
-                  end (big5-to-flat-code (cdr big5))
-                  codepoint (euc-to-flat-code (cdr char))
-                  charset (car char))
-            (while (>= end i)
-              (aset chartable
-                    (decode-big5-char (flat-code-to-big5 i))
-                    (apply (function make-char)
-                           charset
-                           (flat-code-to-euc codepoint)))
-              (setq i (1+ i)
-                    codepoint (1+ codepoint))))
-            ((and (char-valid-p char)
-                  (numberp big5))
-            (setq i (decode-big5-char big5))
-            (aset chartable i char))
-            (t
-             (error "Unknown slot type: %S" elem))))
-    ;; the return value
-    chartable)))
-
-;; All non-CNS encodings are commented out.
-
-(define-translation-table 'big5-to-cns
-  (eval-when-compile
-  (expand-euc-big5-alist
-   '(
-     ;; Symbols
-     ((chinese-cns11643-1 . #x2121) . (#xA140 . #xA1F5))
-     (?\e$(G"X\e(B . #xA1F6)
-     (?\e$(G"W\e(B . #xA1F7)
-     ((chinese-cns11643-1 . #x2259) . (#xA1F8 . #xA2AE))
-     ((chinese-cns11643-1 . #x2421) . (#xA2AF . #xA3BF))
-     ;; Control codes (vendor dependent)
-     ((chinese-cns11643-1 . #x4221) . (#xA3C0 . #xA3E0))
-     ;; Level 1 Ideographs
-     ((chinese-cns11643-1 . #x4421) . (#xA440 . #xACFD))
-     (?\e$(GWS\e(B . #xACFE)
-     ((chinese-cns11643-1 . #x5323) . (#xAD40 . #xAFCF))
-     ((chinese-cns11643-1 . #x5754) . (#xAFD0 . #xBBC7))
-     ((chinese-cns11643-1 . #x6B51) . (#xBBC8 . #xBE51))
-     (?\e$(GkP\e(B . #xBE52)
-     ((chinese-cns11643-1 . #x6F5C) . (#xBE53 . #xC1AA))
-     ((chinese-cns11643-1 . #x7536) . (#xC1AB . #xC2CA))
-     (?\e$(Gu5\e(B . #xC2CB)
-     ((chinese-cns11643-1 . #x7737) . (#xC2CC . #xC360))
-     ((chinese-cns11643-1 . #x782E) . (#xC361 . #xC3B8))
-     (?\e$(Gxe\e(B . #xC3B9)
-     (?\e$(Gxd\e(B . #xC3BA)
-     ((chinese-cns11643-1 . #x7866) . (#xC3BB . #xC455))
-     (?\e$(Gx-\e(B . #xC456)
-     ((chinese-cns11643-1 . #x7962) . (#xC457 . #xC67E))
-     ;; Symbols
-     ((chinese-cns11643-1 . #x2621) . (#xC6A1 . #xC6BE))
-     ;; Radicals
-     (?\e$(G'#\e(B . #xC6BF)
-     (?\e$(G'$\e(B . #xC6C0)
-     (?\e$(G'&\e(B . #xC6C1)
-     (?\e$(G'(\e(B . #xC6C2)
-     (?\e$(G'-\e(B . #xC6C3)
-     (?\e$(G'.\e(B . #xC6C4)
-     (?\e$(G'/\e(B . #xC6C5)
-     (?\e$(G'4\e(B . #xC6C6)
-     (?\e$(G'7\e(B . #xC6C7)
-     (?\e$(G':\e(B . #xC6C8)
-     (?\e$(G'<\e(B . #xC6C9)
-     (?\e$(G'B\e(B . #xC6CA)
-     (?\e$(G'G\e(B . #xC6CB)
-     (?\e$(G'N\e(B . #xC6CC)
-     (?\e$(G'S\e(B . #xC6CD)
-     (?\e$(G'T\e(B . #xC6CE)
-     (?\e$(G'U\e(B . #xC6CF)
-     (?\e$(G'Y\e(B . #xC6D0)
-     (?\e$(G'Z\e(B . #xC6D1)
-     (?\e$(G'a\e(B . #xC6D2)
-     (?\e$(G'f\e(B . #xC6D3)
-     (?\e$(G()\e(B . #xC6D4)
-     (?\e$(G(*\e(B . #xC6D5)
-     (?\e$(G(c\e(B . #xC6D6)
-     (?\e$(G(l\e(B . #xC6D7)
-     ;; Diacritical Marks
-     ; ((japanese-jisx0208 . #x212F) . (#xC6D8 . #xC6D9))
-     ;; Japanese Kana Supplement
-     ; ((japanese-jisx0208 . #x2133) . (#xC6DA . #xC6E3))
-     ;; Japanese Hiragana
-     ; ((japanese-jisx0208 . #x2421) . (#xC6E7 . #xC77A))
-     ;; Japanese Katakana
-     ; ((japanese-jisx0208 . #x2521) . (#xC77B . #xC7F2))
-     ;; Cyrillic Characters
-     ; ((japanese-jisx0208 . #x2721) . (#xC7F3 . #xC854))
-     ; ((japanese-jisx0208 . #x2751) . (#xC855 . #xC875))
-     ;; Special Chinese Characters
-     (?\e$(J!#\e(B . #xC879)
-     (?\e$(J!$\e(B . #xC87B)
-     (?\e$(J!*\e(B . #xC87D)
-     (?\e$(J!R\e(B . #xC8A2)
-
-     ;; JIS X 0208 NOT SIGN (cf. U+00AC)
-     ; (?\e$B"L\e(B . #xC8CD)
-     ;; JIS X 0212 BROKEN BAR (cf. U+00A6)
-     ; (?\e$(D"C\e(B . #xC8CE)
-
-     ;; GB 2312 characters
-     ; (?\e$A!d\e(B . #xC8CF)
-     ; (?\e$A!e\e(B . #xC8D0)
-        ;;;;; C8D1 - Japanese `(\e$B3t\e(B)'
-     ; (?\e$A!m\e(B . #xC8D2)
-        ;;;;; C8D2 - Tel.
-
-     ;; Level 2 Ideographs
-     ((chinese-cns11643-2 . #x2121) . (#xC940 . #xC949))
-     (?\e$(GDB\e(B . #xC94A);; a duplicate of #xA461
-     ((chinese-cns11643-2 . #x212B) . (#xC94B . #xC96B))
-     ((chinese-cns11643-2 . #x214D) . (#xC96C . #xC9BD))
-     (?\e$(H!L\e(B . #xC9BE)
-     ((chinese-cns11643-2 . #x217D) . (#xC9BF . #xC9EC))
-     ((chinese-cns11643-2 . #x224E) . (#xC9ED . #xCAF6))
-     (?\e$(H"M\e(B . #xCAF7)
-     ((chinese-cns11643-2 . #x2439) . (#xCAF8 . #xD6CB))
-     (?\e$(H>c\e(B . #xD6CC)
-     ((chinese-cns11643-2 . #x3770) . (#xD6CD . #xD779))
-     (?\e$(H?j\e(B . #xD77A)
-     ((chinese-cns11643-2 . #x387E) . (#xD77B . #xDADE))
-     (?\e$(H7o\e(B . #xDADF)
-     ((chinese-cns11643-2 . #x3E64) . (#xDAE0 . #xDBA6))
-     ((chinese-cns11643-2 . #x3F6B) . (#xDBA7 . #xDDFB))
-     (?\e$(HAv\e(B . #xDDFC);; a duplicate of #xDCD1
-     ((chinese-cns11643-2 . #x4424) . (#xDDFD . #xE8A2))
-     ((chinese-cns11643-2 . #x554C) . (#xE8A3 . #xE975))
-     ((chinese-cns11643-2 . #x5723) . (#xE976 . #xEB5A))
-     ((chinese-cns11643-2 . #x5A29) . (#xEB5B . #xEBF0))
-     (?\e$(HUK\e(B . #xEBF1)
-     ((chinese-cns11643-2 . #x5B3F) . (#xEBF2 . #xECDD))
-     (?\e$(HW"\e(B . #xECDE)
-     ((chinese-cns11643-2 . #x5C6A) . (#xECDF . #xEDA9))
-     ((chinese-cns11643-2 . #x5D75) . (#xEDAA . #xEEEA))
-     (?\e$(Hd/\e(B . #xEEEB)
-     ((chinese-cns11643-2 . #x6039) . (#xEEEC . #xF055))
-     (?\e$(H]t\e(B . #xF056)
-     ((chinese-cns11643-2 . #x6243) . (#xF057 . #xF0CA))
-     (?\e$(HZ(\e(B . #xF0CB)
-     ((chinese-cns11643-2 . #x6337) . (#xF0CC . #xF162))
-     ((chinese-cns11643-2 . #x6430) . (#xF163 . #xF16A))
-     (?\e$(Hga\e(B . #xF16B)
-     ((chinese-cns11643-2 . #x6438) . (#xF16C . #xF267))
-     (?\e$(Hi4\e(B . #xF268)
-     ((chinese-cns11643-2 . #x6573) . (#xF269 . #xF2C2))
-     ((chinese-cns11643-2 . #x664E) . (#xF2C3 . #xF374))
-     ((chinese-cns11643-2 . #x6762) . (#xF375 . #xF465))
-     ((chinese-cns11643-2 . #x6935) . (#xF466 . #xF4B4))
-     (?\e$(HfM\e(B . #xF4B5)
-     ((chinese-cns11643-2 . #x6962) . (#xF4B6 . #xF4FC))
-     ((chinese-cns11643-2 . #x6A4C) . (#xF4FD . #xF662))
-     (?\e$(HjK\e(B . #xF663)
-     ((chinese-cns11643-2 . #x6C52) . (#xF664 . #xF976))
-     ((chinese-cns11643-2 . #x7167) . (#xF977 . #xF9C3))
-     (?\e$(Hqf\e(B . #xF9C4)
-     (?\e$(Hr4\e(B . #xF9C5)
-     (?\e$(Hr@\e(B . #xF9C6)
-     ((chinese-cns11643-2 . #x7235) . (#xF9C7 . #xF9D1))
-     ((chinese-cns11643-2 . #x7241) . (#xF9D2 . #xF9D5))
-
-     ;; Additional Ideographs
-     (?\e$(IC7\e(B . #xF9D6)
-     (?\e$(IOP\e(B . #xF9D7)
-     (?\e$(IDN\e(B . #xF9D8)
-     (?\e$(IPJ\e(B . #xF9D9)
-     (?\e$(I,]\e(B . #xF9DA)
-     (?\e$(I=~\e(B . #xF9DB)
-     (?\e$(IK\\e(B . #xF9DC)
-    )
-  ))
-)
+;;;###autoload
+(defun post-read-decode-hz (len)
+  (let ((pos (point))
+       (buffer-modified-p (buffer-modified-p))
+       last-coding-system-used)
+    (prog1
+       (decode-hz-region pos (+ pos len))
+      (set-buffer-modified-p buffer-modified-p))))
 
+;;;###autoload
+(defun pre-write-encode-hz (from to)
+  (let ((buf (current-buffer)))
+    (set-buffer (generate-new-buffer " *temp*"))
+    (if (stringp from)
+       (insert from)
+      (insert-buffer-substring buf from to))
+    (let (last-coding-system-used)
+      (encode-hz-region 1 (point-max)))
+    nil))
 ;;
 (provide 'china-util)
 
index c57d0e3d931b81a0e4e2a4693b1a884551ea4164..d4010dbff97102f3468e0b261055a03d5f54fb9b 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: multilingual, Chinese
 
 ;;; Chinese (general)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(make-coding-system
- 'iso-2022-cn 2 ?C
- "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN)."
- '(ascii
-   (nil chinese-gb2312 chinese-cns11643-1)
-   (nil chinese-cns11643-2)
-   nil
-   nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil
-   init-bol)
- '((safe-charsets ascii chinese-gb2312 chinese-cns11643-1 chinese-cns11643-2)
-   (mime-charset . iso-2022-cn)))
+
+(define-coding-system 'iso-2022-cn
+  "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN)."
+  :coding-type 'iso-2022
+  :mnemonic ?C
+  :charset-list '(ascii chinese-gb2312 chinese-cns11643-1 chinese-cns11643-2)
+  :designation [ascii
+               (nil chinese-gb2312 chinese-cns11643-1)
+               (nil chinese-cns11643-2)
+               nil]
+  :flags '(ascii-at-eol ascii-at-cntl 7-bit
+                       designation locking-shift single-shift init-at-bol)
+  :mime-charset 'iso-2022-cn
+  :suitable-for-keyboard t)
 
 (define-coding-system-alias 'chinese-iso-7bit 'iso-2022-cn)
 
-(make-coding-system
- 'iso-2022-cn-ext 2 ?C
- "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN-EXT)."
- '(ascii
-   (nil chinese-gb2312 chinese-cns11643-1)
-   (nil chinese-cns11643-2)
-   (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
-       chinese-cns11643-6 chinese-cns11643-7)
-   nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil
-   init-bol)
- '((safe-charsets ascii chinese-gb2312 chinese-cns11643-1 chinese-cns11643-2
-                 chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
-                 chinese-cns11643-6 chinese-cns11643-7)
-   (mime-charset . iso-2022-cn-ext)))
+(define-coding-system 'iso-2022-cn-ext
+  "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN-EXT)."
+  :coding-type 'iso-2022
+  :mnemonic ?C
+  :charset-list '(ascii
+                 chinese-gb2312 chinese-cns11643-1
+                 chinese-cns11643-2 chinese-cns11643-3 chinese-cns11643-4
+                 chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7)
+  :designation '[ascii
+                (nil chinese-gb2312 chinese-cns11643-1)
+                (nil chinese-cns11643-2)
+                (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
+                     chinese-cns11643-6 chinese-cns11643-7)]
+  :flags '(ascii-at-eol ascii-at-cntl 7-bit
+                       designation locking-shift single-shift init-at-bol)
+  :mime-charset 'iso-2022-cn-ext
+  :suitable-for-keyboard t)
 
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Chinese GB2312 (simplified)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(make-coding-system
- 'chinese-iso-8bit 2 ?c
- "ISO 2022 based EUC encoding for Chinese GB2312 (MIME:GB2312)."
- '(ascii chinese-gb2312 nil nil
-   nil ascii-eol ascii-cntl nil nil nil nil)
- '((safe-charsets ascii chinese-gb2312)
-   (mime-charset . gb2312)))
+(define-coding-system 'chinese-iso-8bit
+  "ISO 2022 based EUC encoding for Chinese GB2312 (MIME:GB2312)."
+  :coding-type 'iso-2022
+  :mnemonic ?c
+  :charset-list '(ascii chinese-gb2312)
+  :designation [ascii chinese-gb2312 nil nil]
+  :mime-charset 'gb2312)
 
 (define-coding-system-alias 'cn-gb-2312 'chinese-iso-8bit)
 (define-coding-system-alias 'euc-china 'chinese-iso-8bit)
 (define-coding-system-alias 'euc-cn 'chinese-iso-8bit)
 (define-coding-system-alias 'cn-gb 'chinese-iso-8bit)
 (define-coding-system-alias 'gb2312 'chinese-iso-8bit)
-(define-coding-system-alias 'cp936 'chinese-iso-8bit)
 
-(make-coding-system
- 'chinese-hz 0 ?z
- "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)."
- nil
'((safe-charsets ascii chinese-gb2312)
-   (mime-charset . hz-gb-2312)
-   (post-read-conversion . post-read-decode-hz)
-   (pre-write-conversion . pre-write-encode-hz)))
+(define-coding-system 'chinese-hz
+  "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)."
+  :coding-type 'utf-8
+  :mnemonic ?z
 :charset-list '(ascii chinese-gb2312)
+  :mime-charset 'hz-gb-2312
+  :post-read-conversion 'post-read-decode-hz
+  :pre-write-conversion 'pre-write-encode-hz)
 
 (define-coding-system-alias 'hz-gb-2312 'chinese-hz)
 (define-coding-system-alias 'hz 'chinese-hz)
 
-(defun post-read-decode-hz (len)
-  (let ((pos (point))
-       (buffer-modified-p (buffer-modified-p))
-       last-coding-system-used)
-    (prog1
-       (decode-hz-region pos (+ pos len))
-      (set-buffer-modified-p buffer-modified-p))))
-
-(defun pre-write-encode-hz (from to)
-  (let ((buf (current-buffer)))
-    (set-buffer (generate-new-buffer " *temp*"))
-    (if (stringp from)
-       (insert from)
-      (insert-buffer-substring buf from to))
-    (let (last-coding-system-used)
-      (encode-hz-region 1 (point-max)))
-    nil))
-
 (set-language-info-alist
  "Chinese-GB" '((charset chinese-gb2312 chinese-sisheng)
                (coding-system chinese-iso-8bit iso-2022-cn chinese-hz)
 ;; Chinese BIG5 (traditional)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(make-coding-system
- 'chinese-big5 3 ?B
- "BIG5 8-bit encoding for Chinese (MIME:Big5)."
- nil
- '((safe-charsets ascii chinese-big5-1 chinese-big5-2)
-   (mime-charset . big5)
-   (charset-origin-alist (chinese-big5-1  "BIG5" encode-big5-char)
-                        (chinese-big5-2  "BIG5" encode-big5-char))))
+(define-coding-system 'chinese-big5
+  "BIG5 8-bit encoding for Chinese (MIME:Big5)"
+  :coding-type 'charset
+  :mnemonic ?B 
+  :charset-list '(ascii big5)
+  :mime-charset 'big5)
 
 (define-coding-system-alias 'big5 'chinese-big5)
 (define-coding-system-alias 'cn-big5 'chinese-big5)
 (define-coding-system-alias 'cp950 'chinese-big5)
 
-;; Big5 font requires special encoding.
-(define-ccl-program ccl-encode-big5-font
-  `(0
-    ;; In:  R0:chinese-big5-1 or chinese-big5-2
-    ;;      R1:position code 1
-    ;;      R2:position code 2
-    ;; Out: R1:font code point 1
-    ;;      R2:font code point 2
-    ((r2 = ((((r1 - ?\x21) * 94) + r2) - ?\x21))
-     (if (r0 == ,(charset-id 'chinese-big5-2)) (r2 += 6280))
-     (r1 = ((r2 / 157) + ?\xA1))
-     (r2 %= 157)
-     (if (r2 < ?\x3F) (r2 += ?\x40) (r2 += ?\x62))))
-  "CCL program to encode a Big5 code to code point of Big5 font.")
-
-(setq font-ccl-encoder-alist
-      (cons (cons "big5" ccl-encode-big5-font) font-ccl-encoder-alist))
-
 (set-language-info-alist
  "Chinese-BIG5" '((charset chinese-big5-1 chinese-big5-2)
                  (coding-system chinese-big5 chinese-iso-7bit)
                  (coding-priority chinese-big5 iso-2022-cn chinese-iso-8bit)
                  (input-method . "chinese-py-punct-b5")
+                 (ctext-non-standard-encodings "big5-0")
                  (features china-util)
-                 (sample-text . "Cantonese (\e$(0GnM$\e(B,\e$(0N]0*Hd\e(B) \e$(0*/=(\e(B, \e$(0+$)p\e(B")
+                 (sample-text . "Cantonese (\e$(Gemk#\e(B,\e$(Gl]N)fc\e(B) \e$ATg3?\e(B, \e$ADc:C\e(B")
                  (documentation . "Support for Chinese Big5 character set.")
                  (tutorial . "TUTORIAL.zh"))
  '("Chinese"))
 
+(define-coding-system 'chinese-big5-hkscs
+  "BIG5-HKSCS 8-bit encoding for Chinese, Hong Kong supplement (MIME:Big5-HKSCS)"
+  :coding-type 'charset
+  :mnemonic ?B 
+  :charset-list '(ascii big5-hkscs)
+  :mime-charset 'big5-hkscs)
+(define-coding-system-alias 'big5-hkscs 'chinese-big5-hkscs)
+(define-coding-system-alias 'cn-big5-hkscs 'chinese-big5-hkscs)
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Chinese CNS11643 (traditional)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(defvar big5-to-cns (make-translation-table)
-  "Translation table for encoding to `euc-tw'.")
-;; Could have been done by china-util loaded before.
-(unless (get 'big5-to-cns 'translation-table)
-  (define-translation-table 'big5-to-cns big5-to-cns))
-
-(define-ccl-program ccl-decode-euc-tw
-  ;; CNS plane 1 needs either two or four bytes in EUC-TW encoding;
-  ;; CNS planes 2 to 7 always need four bytes.  In internal encoding of
-  ;; Emacs, CNS planes 1 and 2 need three bytes, and planes 3 to 7 need
-  ;; four bytes.  Thus a buffer magnification value of 2 (for both
-  ;; encoding and decoding) is sufficient.
-  `(2
-    ;; we don't have enough registers to hold all charset-ids
-    ((r4 = ,(charset-id 'chinese-cns11643-1))
-     (r5 = ,(charset-id 'chinese-cns11643-2))
-     (r6 = ,(charset-id 'chinese-cns11643-3))
-     (loop
-      (read-if (r0 < #x80)
-         ;; ASCII
-         (write-repeat r0)
-       ;; not ASCII
-       (if (r0 == #x8E)
-           ;; single shift
-           (read-if (r1 < #xA1)
-               ;; invalid byte
-               ((write r0)
-                (write-repeat r1))
-             (if (r1 > #xA7)
-                 ;; invalid plane
-                 ((write r0)
-                  (write-repeat r1))
-               ;; OK, we have a plane
-               (read-if (r2 < #xA1)
-                   ;; invalid first byte
-                   ((write r0 r1)
-                    (write-repeat r2))
-                 (read-if (r3 < #xA1)
-                     ;; invalid second byte
-                     ((write r0 r1 r2)
-                      (write-repeat r3))
-                   ;; CNS 1-7, finally
-                   ((branch (r1 - #xA1)
-                     (r1 = r4)
-                     (r1 = r5)
-                     (r1 = r6)
-                     (r1 = ,(charset-id 'chinese-cns11643-4))
-                     (r1 = ,(charset-id 'chinese-cns11643-5))
-                     (r1 = ,(charset-id 'chinese-cns11643-6))
-                     (r1 = ,(charset-id 'chinese-cns11643-7)))
-                    (r2 = ((((r2 - #x80) << 7) + r3) - #x80))
-                    (write-multibyte-character r1 r2)
-                    (repeat))))))
-         ;; standard EUC
-         (if (r0 < #xA1)
-             ;; invalid first byte
-             (write-repeat r0)
-           (read-if (r1 < #xA1)
-               ;; invalid second byte
-               ((write r0)
-                (write-repeat r1))
-             ;; CNS 1, finally
-             ((r1 = ((((r0 - #x80) << 7) + r1) - #x80))
-              (write-multibyte-character r4 r1)
-              (repeat)))))))))
-  "CCL program to decode EUC-TW encoding."
-)
-
-(define-ccl-program ccl-encode-euc-tw
-  `(2
-    ;; we don't have enough registers to hold all charset-ids
-    ((r2 = ,(charset-id 'ascii))
-     (r3 = ,(charset-id 'chinese-big5-1))
-     (r4 = ,(charset-id 'chinese-big5-2))
-     (r5 = ,(charset-id 'chinese-cns11643-1))
-     (r6 = ,(charset-id 'chinese-cns11643-2))
-     (loop
-      (read-multibyte-character r0 r1)
-      (if (r0 == r2)
-         (write-repeat r1)
-       (;; Big 5 encoded characters are first translated to CNS
-        (if (r0 == r3)
-            (translate-character big5-to-cns r0 r1)
-          (if (r0 == r4)
-              (translate-character big5-to-cns r0 r1)))
-        (if (r0 == r5)
-            (r0 = #xA1)
-          (if (r0 == r6)
-              (r0 = #xA2)
-            (if (r0 == ,(charset-id 'chinese-cns11643-3))
-                (r0 = #xA3)
-              (if (r0 == ,(charset-id 'chinese-cns11643-4))
-                  (r0 = #xA4)
-                (if (r0 == ,(charset-id 'chinese-cns11643-5))
-                    (r0 = #xA5)
-                  (if (r0 == ,(charset-id 'chinese-cns11643-6))
-                      (r0 = #xA6)
-                    (if (r0 == ,(charset-id 'chinese-cns11643-7))
-                        (r0 = #xA7)
-                      ;; not CNS.  We use a dummy character which
-                      ;; can't occur in EUC-TW encoding to indicate
-                      ;; this.
-                      (write-repeat #xFF))))))))))
-      (if (r0 != #xA1)
-         ;; single shift and CNS plane
-         ((write #x8E)
-          (write r0)))
-      (write ((r1 >> 7) + #x80))
-      (write ((r1 % #x80) + #x80))
-      (repeat))))
-  "CCL program to encode EUC-TW encoding."
-)
-
-(defun euc-tw-pre-write-conversion (beg end)
-  "Semi-dummy pre-write function effectively to autoload china-util."
-  ;; Ensure translation table is loaded.
-  (require 'china-util)
-  ;; Don't do this again.
-  (coding-system-put 'euc-tw 'pre-write-conversion nil)
-  nil)
-
-(make-coding-system
-  'euc-tw 4 ?Z
-  "ISO 2022 based EUC encoding for Chinese CNS11643.
-Big5 encoding is accepted for input also (which is then converted to CNS)."
-  '(ccl-decode-euc-tw . ccl-encode-euc-tw)
-  '((safe-charsets ascii
-                  chinese-big5-1
-                  chinese-big5-2
-                  chinese-cns11643-1
-                  chinese-cns11643-2
-                  chinese-cns11643-3
-                  chinese-cns11643-4
-                  chinese-cns11643-5
-                  chinese-cns11643-6
-                  chinese-cns11643-7)
-    (valid-codes (0 . 255))
-    (pre-write-conversion . euc-tw-pre-write-conversion)))
+(define-coding-system 'euc-tw
+  "ISO 2022 based EUC encoding for Chinese CNS11643."
+  :coding-type 'iso-2022
+  :mnemonic ?Z
+  :charset-list '(ascii
+                 chinese-cns11643-1
+                 chinese-cns11643-2
+                 chinese-cns11643-3
+                 chinese-cns11643-4
+                 chinese-cns11643-5
+                 chinese-cns11643-6
+                 chinese-cns11643-7)
+  :designation [ascii chinese-cns11643-1 (chinese-cns11643-1
+                                         chinese-cns11643-2
+                                         chinese-cns11643-3
+                                         chinese-cns11643-4
+                                         chinese-cns11643-5
+                                         chinese-cns11643-6
+                                         chinese-cns11643-7) nil]
+  :mime-charset 'euc-tw)
 
 (define-coding-system-alias 'euc-taiwan 'euc-tw)
 
@@ -328,6 +190,7 @@ Big5 encoding is accepted for input also (which is then converted to CNS)."
                                  chinese-iso-8bit)
                 (features china-util)
                 (input-method . "chinese-cns-quick")
+                ;; Fixme: presumably it won't accept big5 now.
                 (documentation . "\
 Support for Chinese CNS character sets.  Note that the EUC-TW coding system
 accepts Big5 for input also (which is then converted to CNS)."))
@@ -349,6 +212,60 @@ the EUC-TW coding system accepts Big5 for input also (which is then
 converted to CNS)."))
  '("Chinese"))
 
+
+;;; Chinese GBK
+
+(define-coding-system 'chinese-gbk
+  "GBK encoding for Chinese (MIME:GBK)."
+  :coding-type 'charset
+  :mnemonic ?c
+  :charset-list '(ascii chinese-gbk)
+  :mime-charset 'gbk)
+(define-coding-system-alias 'gbk 'chinese-gbk)
+(define-coding-system-alias 'cp936 'chinese-gbk)
+(define-coding-system-alias 'windows-936 'chinese-gbk)
+
+(set-language-info-alist
+ "Chinese-GBK" '((charset chinese-gbk)
+                (coding-system chinese-gbk)
+                (coding-priority gbk iso-2022-cn chinese-big5
+                                 chinese-iso-8bit) ; fixme?
+                (ctext-non-standard-encodings "gbk-0")          
+                (input-method . "chinese-py-punct") ; fixme?
+                (sample-text . "Chinese (\e$BCfJ8\e(B,\e$BIaDL\e$A;0\e(B,\e$A::So\e(B) \e$(D95\e$B9%\e(B")
+                (features china-util)
+                (documentation . "Support for Chinese GBK character set.")
+                (tutorial . "TUTORIAL.cn"))
+ '("Chinese"))
+
+;;; Chinese GB18030
+
+(define-coding-system 'chinese-gb18030
+  "GB18030 encoding for Chinese (MIME:GB18030)."
+  :coding-type 'charset
+  :mnemonic ?c
+  :charset-list '(ascii gb18030-2-byte
+                       gb18030-4-byte-bmp gb18030-4-byte-smp
+                       gb18030-4-byte-ext-1 gb18030-4-byte-ext-2)
+  :mime-charset 'gb18030)
+
+(define-coding-system-alias 'gb18030 'chinese-gb18030)
+
+(set-language-info-alist
+ "Chinese-GB18030" '((charset gb18030)
+                    (coding-system chinese-gb18030)
+                    (coding-priority gb18030 gbk iso-2022-cn chinese-big5
+                                     chinese-iso-8bit) ; fixme?
+                    (input-method . "chinese-py-punct") ; fixme?
+                    (sample-text . "Chinese (\e$BCfJ8\e(B,\e$BIaDL\e$A;0\e(B,\e$A::So\e(B) \e$(D0_\e$B9%\e(B")
+                    (features china-util)
+                    (documentation
+                     . "Support for Chinese GB18030 character set.")
+                    (tutorial . "TUTORIAL.cn"))
+ '("Chinese"))
+
+;; Fixme: add HKSCS
+
 (provide 'chinese)
 
 ;;; arch-tag: b82fcf7a-84f6-4e0b-b38c-1742dac0e09f
index aa22584d6cee0fb9b820016a2ae63811fd245dd4..71d7a6f905b1331441c95967d41388def3bda3cd 100644 (file)
 ;;;###autoload
 (defun cyrillic-encode-koi8-r-char (char)
   "Return KOI8-R external character code of CHAR if appropriate."
-  (aref (char-table-extra-slot
-        (get 'cyrillic-koi8-r-nonascii-translation-table 'translation-table)
-        0)
-       char))
+  (encode-char char 'koi8-r))
 
 ;;;###autoload
 (defun cyrillic-encode-alternativnyj-char (char)
   "Return ALTERNATIVNYJ external character code of CHAR if appropriate."
-  (aref (char-table-extra-slot
-        (get 'cyrillic-alternativnyj-nonascii-translation-table
-             'translation-table)
-        0)
-       char))
+  (encode-char char 'alternativnyj))
 
 \f
 ;; Display
@@ -177,117 +170,13 @@ If the argument is nil, we return the display table to its standard state."
     (aset standard-display-table ?\e,L*\e(B  [?N ?j])
     (aset standard-display-table ?\e,L/\e(B  [?D ?j])
 
-    ;; Unicode version:
-    (aset standard-display-table ?\e$,1(P\e(B  [?a])
-    (aset standard-display-table ?\e$,1(Q\e(B  [?b])
-    (aset standard-display-table ?\e$,1(R\e(B  [?v])
-    (aset standard-display-table ?\e$,1(S\e(B  [?g])
-    (aset standard-display-table ?\e$,1(T\e(B  [?d])
-    (aset standard-display-table ?\e$,1(U\e(B  [?e])
-    (aset standard-display-table ?\e$,1(q\e(B  [?y ?o])
-    (aset standard-display-table ?\e$,1(V\e(B  [?z ?h])
-    (aset standard-display-table ?\e$,1(W\e(B  [?z])
-    (aset standard-display-table ?\e$,1(X\e(B  [?i])
-    (aset standard-display-table ?\e$,1(Y\e(B  [?j])
-    (aset standard-display-table ?\e$,1(Z\e(B  [?k])
-    (aset standard-display-table ?\e$,1([\e(B  [?l])
-    (aset standard-display-table ?\e$,1(\\e(B  [?m])
-    (aset standard-display-table ?\e$,1(]\e(B  [?n])
-    (aset standard-display-table ?\e$,1(^\e(B  [?o])
-    (aset standard-display-table ?\e$,1(_\e(B  [?p])
-    (aset standard-display-table ?\e$,1(`\e(B  [?r])
-    (aset standard-display-table ?\e$,1(a\e(B  [?s])
-    (aset standard-display-table ?\e$,1(b\e(B  [?t])
-    (aset standard-display-table ?\e$,1(c\e(B  [?u])
-    (aset standard-display-table ?\e$,1(d\e(B  [?f])
-    (aset standard-display-table ?\e$,1(e\e(B  [?k ?h])
-    (aset standard-display-table ?\e$,1(f\e(B  [?t ?s])
-    (aset standard-display-table ?\e$,1(g\e(B  [?c ?h])
-    (aset standard-display-table ?\e$,1(h\e(B  [?s ?h])
-    (aset standard-display-table ?\e$,1(i\e(B  [?s ?c ?h])
-    (aset standard-display-table ?\e$,1(j\e(B  [?~])
-    (aset standard-display-table ?\e$,1(k\e(B  [?y])
-    (aset standard-display-table ?\e$,1(l\e(B  [?'])
-    (aset standard-display-table ?\e$,1(m\e(B  [?e ?'])
-    (aset standard-display-table ?\e$,1(n\e(B  [?y ?u])
-    (aset standard-display-table ?\e$,1(o\e(B  [?y ?a])
-
-    (aset standard-display-table ?\e$,1(0\e(B  [?A])
-    (aset standard-display-table ?\e$,1(1\e(B  [?B])
-    (aset standard-display-table ?\e$,1(2\e(B  [?V])
-    (aset standard-display-table ?\e$,1(3\e(B  [?G])
-    (aset standard-display-table ?\e$,1(4\e(B  [?D])
-    (aset standard-display-table ?\e$,1(5\e(B  [?E])
-    (aset standard-display-table ?\e$,1(!\e(B  [?Y ?o])
-    (aset standard-display-table ?\e$,1(6\e(B  [?Z ?h])
-    (aset standard-display-table ?\e$,1(7\e(B  [?Z])
-    (aset standard-display-table ?\e$,1(8\e(B  [?I])
-    (aset standard-display-table ?\e$,1(9\e(B  [?J])
-    (aset standard-display-table ?\e$,1(:\e(B  [?K])
-    (aset standard-display-table ?\e$,1(;\e(B  [?L])
-    (aset standard-display-table ?\e$,1(<\e(B  [?M])
-    (aset standard-display-table ?\e$,1(=\e(B  [?N])
-    (aset standard-display-table ?\e$,1(>\e(B  [?O])
-    (aset standard-display-table ?\e$,1(?\e(B  [?P])
-    (aset standard-display-table ?\e$,1(@\e(B  [?R])
-    (aset standard-display-table ?\e$,1(A\e(B  [?S])
-    (aset standard-display-table ?\e$,1(B\e(B  [?T])
-    (aset standard-display-table ?\e$,1(C\e(B  [?U])
-    (aset standard-display-table ?\e$,1(D\e(B  [?F])
-    (aset standard-display-table ?\e$,1(E\e(B  [?K ?h])
-    (aset standard-display-table ?\e$,1(F\e(B  [?T ?s])
-    (aset standard-display-table ?\e$,1(G\e(B  [?C ?h])
-    (aset standard-display-table ?\e$,1(H\e(B  [?S ?h])
-    (aset standard-display-table ?\e$,1(I\e(B  [?S ?c ?h])
-    (aset standard-display-table ?\e$,1(J\e(B  [?~])
-    (aset standard-display-table ?\e$,1(K\e(B  [?Y])
-    (aset standard-display-table ?\e$,1(L\e(B  [?'])
-    (aset standard-display-table ?\e$,1(M\e(B  [?E ?'])
-    (aset standard-display-table ?\e$,1(N\e(B  [?Y ?u])
-    (aset standard-display-table ?\e$,1(O\e(B  [?Y ?a])
-
-    (aset standard-display-table ?\e$,1(t\e(B  [?i ?e])
-    (aset standard-display-table ?\e$,1(w\e(B  [?i])
-    (aset standard-display-table ?\e$,1(~\e(B  [?u])
-    (aset standard-display-table ?\e$,1(r\e(B  [?d ?j])
-    (aset standard-display-table ?\e$,1({\e(B  [?c ?h ?j])
-    (aset standard-display-table ?\e$,1(s\e(B  [?g ?j])
-    (aset standard-display-table ?\e$,1(u\e(B  [?s])
-    (aset standard-display-table ?\e$,1(|\e(B  [?k])
-    (aset standard-display-table ?\e$,1(v\e(B  [?i])
-    (aset standard-display-table ?\e$,1(x\e(B  [?j])
-    (aset standard-display-table ?\e$,1(y\e(B  [?l ?j])
-    (aset standard-display-table ?\e$,1(z\e(B  [?n ?j])
-    (aset standard-display-table ?\e$,1(\7f\e(B  [?d ?z])
-
-    (aset standard-display-table ?\e$,1($\e(B  [?Y ?e])
-    (aset standard-display-table ?\e$,1('\e(B  [?Y ?i])
-    (aset standard-display-table ?\e$,1(.\e(B  [?U])
-    (aset standard-display-table ?\e$,1("\e(B  [?D ?j])
-    (aset standard-display-table ?\e$,1(+\e(B  [?C ?h ?j])
-    (aset standard-display-table ?\e$,1(#\e(B  [?G ?j])
-    (aset standard-display-table ?\e$,1(%\e(B  [?S])
-    (aset standard-display-table ?\e$,1(,\e(B  [?K])
-    (aset standard-display-table ?\e$,1(&\e(B  [?I])
-    (aset standard-display-table ?\e$,1((\e(B  [?J])
-    (aset standard-display-table ?\e$,1()\e(B  [?L ?j])
-    (aset standard-display-table ?\e$,1(*\e(B  [?N ?j])
-    (aset standard-display-table ?\e$,1(/\e(B  [?D ?j])
-
     (when (equal cyrillic-language "Bulgarian")
       (aset standard-display-table ?\e,Li\e(B [?s ?h ?t])
       (aset standard-display-table ?\e,LI\e(B [?S ?h ?t])
       (aset standard-display-table ?\e,Ln\e(B [?i ?u])
       (aset standard-display-table ?\e,LN\e(B [?I ?u])
       (aset standard-display-table ?\e,Lo\e(B [?i ?a])
-      (aset standard-display-table ?\e,LO\e(B [?I ?a])
-      ;; Unicode version:
-      (aset standard-display-table ?\e$,1(i\e(B [?s ?h ?t])
-      (aset standard-display-table ?\e$,1(I\e(B [?S ?h ?t])
-      (aset standard-display-table ?\e$,1(n\e(B [?i ?u])
-      (aset standard-display-table ?\e$,1(N\e(B [?I ?u])
-      (aset standard-display-table ?\e$,1(o\e(B [?i ?a])
-      (aset standard-display-table ?\e$,1(O\e(B [?I ?a]))
+      (aset standard-display-table ?\e,LO\e(B [?I ?a]))
 
     (when (equal cyrillic-language "Ukrainian")        ; based on the official
                                        ; transliteration table
@@ -296,14 +185,7 @@ If the argument is nil, we return the display table to its standard state."
       (aset standard-display-table ?\e,LY\e(B [?i])
       (aset standard-display-table ?\e,L9\e(B [?Y])
       (aset standard-display-table ?\e,Ln\e(B [?i ?u])
-      (aset standard-display-table ?\e,Lo\e(B [?i ?a])
-      ;; Unicode version:
-      (aset standard-display-table ?\e$,1(X\e(B [?y])
-      (aset standard-display-table ?\e$,1(8\e(B [?Y])
-      (aset standard-display-table ?\e$,1(Y\e(B [?i])
-      (aset standard-display-table ?\e$,1(9\e(B [?Y])
-      (aset standard-display-table ?\e$,1(n\e(B [?i ?u])
-      (aset standard-display-table ?\e$,1(o\e(B [?i ?a]))))
+      (aset standard-display-table ?\e,Lo\e(B [?i ?a]))))
 
 ;;
 (provide 'cyril-util)
index 3af35f602a5a08925f55b1e5ec915fe5ccf38571..d7e533c48b060dc23a4191f5768830893e9c4252 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Author: Kenichi Handa <handa@etl.go.jp>
 ;; Keywords: multilingual, Cyrillic, i18n
 
 ;; ISO-8859-5 stuff
 
-(make-coding-system
- 'cyrillic-iso-8bit 2 ?5
- "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)."
- '(ascii cyrillic-iso8859-5  nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t)
- '((safe-charsets ascii cyrillic-iso8859-5)
-   (mime-charset . iso-8859-5)))
+(define-coding-system 'cyrillic-iso-8bit
+  "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)."
+  :coding-type 'charset
+  :mnemonic ?5
+  :charset-list '(iso-8859-5)
+  :mime-charset 'iso-8859-5)
 
 (define-coding-system-alias 'iso-8859-5 'cyrillic-iso-8bit)
 
 (set-language-info-alist
- "Cyrillic-ISO" '((charset cyrillic-iso8859-5)
+ "Cyrillic-ISO" '((charset iso-8859-5)
                  (coding-system cyrillic-iso-8bit)
                  (coding-priority cyrillic-iso-8bit)
                  (input-method . "cyrillic-yawerty") ; fixme
-                 (nonascii-translation . cyrillic-iso8859-5)
+                 (nonascii-translation . iso-8859-5)
                  (unibyte-display . cyrillic-iso-8bit)
                  (features cyril-util)
                  (sample-text . "Russian (\e,L@caaZXY\e(B)       \e,L7T`PRabRcYbU\e(B!")
 
 ;; KOI-8R stuff
 
-;; The mule-unicode portion of this is from
-;; http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT,
-;; which references RFC 1489.
-(defvar cyrillic-koi8-r-decode-table
-  [
-   0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-   16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
-   32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
-   48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
-   64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
-   80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
-   96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
-   112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
-   ;; 8859-5 plus Unicode
-   ?\e$,2  \e(B ?\e$,2 "\e(B ?\e$,2 ,\e(B ?\e$,2 0\e(B ?\e$,2 4\e(B ?\e$,2 8\e(B ?\e$,2 <\e(B ?\e$,2 D\e(B ?\e$,2 L\e(B ?\e$,2 T\e(B ?\e$,2 \\e(B ?\e$,2!@\e(B ?\e$,2!D\e(B ?\e$,2!H\e(B ?\e$,2!L\e(B ?\e$,2!P\e(B
-   ?\e$,2!Q\e(B ?\e$,2!R\e(B ?\e$,2!S\e(B ?\e$,1{ \e(B ?\e$,2!`\e(B ?\e$,1s"\e(B ?\e$,1x:\e(B ?\e$,1xh\e(B ?\e$,1y$\e(B ?\e$,1y%\e(B ?\e,L \e(B ?\e$,1{!\e(B ?\e,A0\e(B ?\e,A2\e(B ?\e,A7\e(B ?\e,Aw\e(B
-   ?\e$,2 p\e(B ?\e$,2 q\e(B ?\e$,2 r\e(B ?\e,Lq\e(B ?\e$,2 s\e(B ?\e$,2 t\e(B ?\e$,2 u\e(B ?\e$,2 v\e(B ?\e$,2 w\e(B ?\e$,2 x\e(B ?\e$,2 y\e(B ?\e$,2 z\e(B ?\e$,2 {\e(B ?\e$,2 |\e(B ?\e$,2 }\e(B ?\e$,2 ~\e(B
-   ?\e$,2 \7f\e(B ?\e$,2! \e(B ?\e$,2!!\e(B ?\e,L!\e(B ?\e$,2!"\e(B ?\e$,2!#\e(B ?\e$,2!$\e(B ?\e$,2!%\e(B ?\e$,2!&\e(B ?\e$,2!'\e(B ?\e$,2!(\e(B ?\e$,2!)\e(B ?\e$,2!*\e(B ?\e$,2!+\e(B ?\e$,2!,\e(B ?\e,A)\e(B
-   ?\e,Ln\e(B  ?\e,LP\e(B  ?\e,LQ\e(B  ?\e,Lf\e(B  ?\e,LT\e(B  ?\e,LU\e(B  ?\e,Ld\e(B  ?\e,LS\e(B  ?\e,Le\e(B  ?\e,LX\e(B  ?\e,LY\e(B  ?\e,LZ\e(B  ?\e,L[\e(B  ?\e,L\\e(B  ?\e,L]\e(B  ?\e,L^\e(B
-   ?\e,L_\e(B  ?\e,Lo\e(B  ?\e,L`\e(B  ?\e,La\e(B  ?\e,Lb\e(B  ?\e,Lc\e(B  ?\e,LV\e(B  ?\e,LR\e(B  ?\e,Ll\e(B  ?\e,Lk\e(B  ?\e,LW\e(B  ?\e,Lh\e(B  ?\e,Lm\e(B  ?\e,Li\e(B  ?\e,Lg\e(B  ?\e,Lj\e(B
-   ?\e,LN\e(B  ?\e,L0\e(B  ?\e,L1\e(B  ?\e,LF\e(B  ?\e,L4\e(B  ?\e,L5\e(B  ?\e,LD\e(B  ?\e,L3\e(B  ?\e,LE\e(B  ?\e,L8\e(B  ?\e,L9\e(B  ?\e,L:\e(B  ?\e,L;\e(B  ?\e,L<\e(B  ?\e,L=\e(B  ?\e,L>\e(B
-   ?\e,L?\e(B  ?\e,LO\e(B  ?\e,L@\e(B  ?\e,LA\e(B  ?\e,LB\e(B  ?\e,LC\e(B  ?\e,L6\e(B  ?\e,L2\e(B  ?\e,LL\e(B  ?\e,LK\e(B  ?\e,L7\e(B  ?\e,LH\e(B  ?\e,LM\e(B  ?\e,LI\e(B  ?\e,LG\e(B  ?\e,LJ\e(B
-   ;; All Unicode:
-;;    ?\e$,2  \e(B ?\e$,2 "\e(B ?\e$,2 ,\e(B ?\e$,2 0\e(B ?\e$,2 4\e(B ?\e$,2 8\e(B ?\e$,2 <\e(B ?\e$,2 D\e(B ?\e$,2 L\e(B ?\e$,2 T\e(B ?\e$,2 \\e(B ?\e$,2!@\e(B ?\e$,2!D\e(B ?\e$,2!H\e(B ?\e$,2!L\e(B ?\e$,2!P\e(B
-;;    ?\e$,2!Q\e(B ?\e$,2!R\e(B ?\e$,2!S\e(B ?\e$,1{ \e(B ?\e$,2!`\e(B ?\e$,1s"\e(B ?\e$,1x:\e(B ?\e$,1xh\e(B ?\e$,1y$\e(B ?\e$,1y%\e(B ?\e,A \e(B ?\e$,1{!\e(B ?\e,A0\e(B ?\e,A2\e(B ?\e,A7\e(B ?\e,Aw\e(B
-;;    ?\e$,2 p\e(B ?\e$,2 q\e(B ?\e$,2 r\e(B ?\e$,1(q\e(B ?\e$,2 s\e(B ?\e$,2 t\e(B ?\e$,2 u\e(B ?\e$,2 v\e(B ?\e$,2 w\e(B ?\e$,2 x\e(B ?\e$,2 y\e(B ?\e$,2 z\e(B ?\e$,2 {\e(B ?\e$,2 |\e(B ?\e$,2 }\e(B ?\e$,2 ~\e(B
-;;    ?\e$,2 \7f\e(B ?\e$,2! \e(B ?\e$,2!!\e(B ?\e$,1(!\e(B ?\e$,2!"\e(B ?\e$,2!#\e(B ?\e$,2!$\e(B ?\e$,2!%\e(B ?\e$,2!&\e(B ?\e$,2!'\e(B ?\e$,2!(\e(B ?\e$,2!)\e(B ?\e$,2!*\e(B ?\e$,2!+\e(B ?\e$,2!,\e(B ?\e,A)\e(B
-;;    ?\e$,1(n\e(B ?\e$,1(P\e(B ?\e$,1(Q\e(B ?\e$,1(f\e(B ?\e$,1(T\e(B ?\e$,1(U\e(B ?\e$,1(d\e(B ?\e$,1(S\e(B ?\e$,1(e\e(B ?\e$,1(X\e(B ?\e$,1(Y\e(B ?\e$,1(Z\e(B ?\e$,1([\e(B ?\e$,1(\\e(B ?\e$,1(]\e(B ?\e$,1(^\e(B
-;;    ?\e$,1(_\e(B ?\e$,1(o\e(B ?\e$,1(`\e(B ?\e$,1(a\e(B ?\e$,1(b\e(B ?\e$,1(c\e(B ?\e$,1(V\e(B ?\e$,1(R\e(B ?\e$,1(l\e(B ?\e$,1(k\e(B ?\e$,1(W\e(B ?\e$,1(h\e(B ?\e$,1(m\e(B ?\e$,1(i\e(B ?\e$,1(g\e(B ?\e$,1(j\e(B
-;;    ?\e$,1(N\e(B ?\e$,1(0\e(B ?\e$,1(1\e(B ?\e$,1(F\e(B ?\e$,1(4\e(B ?\e$,1(5\e(B ?\e$,1(D\e(B ?\e$,1(3\e(B ?\e$,1(E\e(B ?\e$,1(8\e(B ?\e$,1(9\e(B ?\e$,1(:\e(B ?\e$,1(;\e(B ?\e$,1(<\e(B ?\e$,1(=\e(B ?\e$,1(>\e(B
-;;    ?\e$,1(?\e(B ?\e$,1(O\e(B ?\e$,1(@\e(B ?\e$,1(A\e(B ?\e$,1(B\e(B ?\e$,1(C\e(B ?\e$,1(6\e(B ?\e$,1(2\e(B ?\e$,1(L\e(B ?\e$,1(K\e(B ?\e$,1(7\e(B ?\e$,1(H\e(B ?\e$,1(M\e(B ?\e$,1(I\e(B ?\e$,1(G\e(B ?\e$,1(J\e(B
-   ]
-  "Cyrillic KOI8-R decoding table.")
-
-(let ((table (make-translation-table-from-vector
-             cyrillic-koi8-r-decode-table)))
-  (define-translation-table 'cyrillic-koi8-r-nonascii-translation-table table)
-  (define-translation-table 'cyrillic-koi8-r-encode-table
-    (char-table-extra-slot table 0)))
-
-;; No point in keeping it around.  (It can't be let-bound, since it's
-;; needed for macro expansion.)
-(makunbound 'cyrillic-koi8-r-decode-table)
-
-(define-ccl-program ccl-decode-koi8
-  `(4
-    ((loop
-      (r0 = 0)
-      (read r1)
-      (if (r1 < 128)
-         (write-repeat r1)
-       ((translate-character cyrillic-koi8-r-nonascii-translation-table r0 r1)
-        (translate-character ucs-translation-table-for-decode r0 r1)
-        (write-multibyte-character r0 r1)
-        (repeat))))))
-  "CCL program to decode KOI8-R.")
-
-(define-ccl-program ccl-encode-koi8
-  `(1
-    ((loop
-      (read-multibyte-character r0 r1)
-      (translate-character cyrillic-koi8-r-encode-table r0 r1)
-      (if (r0 != ,(charset-id 'ascii))
-         (if (r0 != ,(charset-id 'eight-bit-graphic))
-             (if (r0 != ,(charset-id 'eight-bit-control))
-                 (r1 = ??))))
-      (write-repeat r1))))
-  "CCL program to encode KOI8-R.")
-
-(defun cyrillic-unify-encoding (table)
-  "Set up equivalent characters in the encoding TABLE.
-This works whether or not the table is Unicode-based or
-8859-5-based.  (Only appropriate for Cyrillic.)"
-  (let ((table (get table 'translation-table)))
-    (dotimes (i 96)
-      (let* ((c (make-char 'cyrillic-iso8859-5 (+ i 32)))
-            (u                         ; equivalent Unicode char
-             (cond ((eq c ?\e,L \e(B) ?\e,A \e(B)
-                   ((eq c ?\e,L-\e(B) ?\e,A-\e(B)
-                   ((eq c ?\e,L}\e(B) ?\e,A'\e(B)
-                   (t (decode-char 'ucs (+ #x400 i)))))
-            (ec (aref table c))        ; encoding of 8859-5
-            (uc (aref table u)))       ; encoding of Unicode
-       (unless (memq c '(?\e,L \e(B ?\e,L-\e(B ?\e,L}\e(B))  ; 8859-5 exceptions
-         (unless uc
-           (aset table u ec))
-         (unless ec
-           (aset table c uc)))))))
-
-(cyrillic-unify-encoding 'cyrillic-koi8-r-encode-table)
-
-(make-coding-system
- 'cyrillic-koi8 4
- ;; We used to use ?K.  It is true that ?K is more strictly correct,
- ;; but it is also used for Korean.
- ;; So people who use koi8 for languages other than Russian
- ;; will have to forgive us.
- ?R "KOI8-R 8-bit encoding for Cyrillic (MIME: KOI8-R)."
- '(ccl-decode-koi8 . ccl-encode-koi8)
- `((safe-chars . cyrillic-koi8-r-encode-table)
-   (mime-charset . koi8-r)
-   (valid-codes (0 . 255))
-   (dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode)))
+(define-coding-system 'cyrillic-koi8
+  "KOI8 8-bit encoding for Cyrillic (MIME: KOI8-R)."
+  :coding-type 'charset
+  ;; We used to use ?K.  It is true that ?K is more strictly correct,
+  ;; but it is also used for Korean.  So people who use koi8 for
+  ;; languages other than Russian will have to forgive us.
+  :mnemonic ?R
+  :charset-list '(koi8)
+  :mime-charset 'koi8-r)
 
 (define-coding-system-alias 'koi8-r 'cyrillic-koi8)
 (define-coding-system-alias 'koi8 'cyrillic-koi8)
 (define-coding-system-alias 'cp878 'cyrillic-koi8)
 
-(let ((elt `("koi8-r" koi8-r 1
-            ,(get 'cyrillic-koi8-r-encode-table 'translation-table)))
-      (slot (assoc "koi8-r" ctext-non-standard-encodings-alist)))
-  (if slot
-      (setcdr slot (cdr elt))
-    (push elt ctext-non-standard-encodings-alist)))
-
-;; Allow displaying some of KOI & al with an 8859-5-encoded font.  We
-;; won't bother about the exceptions when encoding the font, since
-;; NBSP will fall through below and work anyhow, and we'll have
-;; avoided setting the fontset for the other two to 8859-5 -- they're
-;; not in KOI and Alternativnyj anyhow.
-(define-ccl-program ccl-encode-8859-5-font
-  `(0
-    ((if (r0 == ,(charset-id 'cyrillic-iso8859-5))
-        (r1 += 128)
-       (if (r0 == ,(charset-id 'mule-unicode-0100-24ff))
-          (r1 = (r2 + 128))))))
-  "Encode ISO 8859-5 and Cyrillic Unicode chars to 8859-5 font.")
-
-(add-to-list 'font-ccl-encoder-alist '("iso8859-5" . ccl-encode-8859-5-font))
-
-;; The table is set up later to encode both Unicode and 8859-5.
-(define-ccl-program ccl-encode-koi8-font
-  `(0
-    (if (r2 >= 0)
-       ((r1 <<= 7)
-        (r1 += r2)))
-    (translate-character cyrillic-koi8-r-encode-table r0 r1))
-  "CCL program to encode Cyrillic chars to KOI font.")
-
-(add-to-list 'font-ccl-encoder-alist '("koi8" . ccl-encode-koi8-font))
-
 (set-language-info-alist
- "Cyrillic-KOI8" `((charset cyrillic-iso8859-5)
-                  (nonascii-translation
-                   . ,(get 'cyrillic-koi8-r-nonascii-translation-table
-                           'translation-table))
+ "Cyrillic-KOI8" `((charset koi8)
                   (coding-system cyrillic-koi8)
                   (coding-priority cyrillic-koi8 cyrillic-iso-8bit)
                   (ctext-non-standard-encodings "koi8-r")
+                  (nonascii-translation . koi8)
                   (input-method . "russian-typewriter")
                   (features cyril-util)
                   (unibyte-display . cyrillic-koi8)
@@ -253,95 +126,18 @@ Support for Russian using koi8-r and the russian-computer input method.")
             (tutorial . "TUTORIAL.ru"))
  '("Cyrillic"))
 
-
-(defvar cyrillic-koi8-u-decode-table
-  [
-   0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-   16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
-   32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
-   48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
-   64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
-   80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
-   96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
-   112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
-   ;; All Unicode:
-;;    ?\e$,2  \e(B ?\e$,2 "\e(B ?\e$,2 ,\e(B ?\e$,2 0\e(B ?\e$,2 4\e(B ?\e$,2 8\e(B ?\e$,2 <\e(B ?\e$,2 D\e(B ?\e$,2 L\e(B ?\e$,2 T\e(B ?\e$,2 \\e(B ?\e$,2!@\e(B ?\e$,2!D\e(B ?\e$,2!H\e(B ?\e$,2!L\e(B ?\e$,2!P\e(B
-;;    ?\e$,2!Q\e(B ?\e$,2!R\e(B ?\e$,2!S\e(B ?\e$,1{ \e(B ?\e$,2!`\e(B ?\e$,1x9\e(B ?\e$,1x:\e(B ?\e$,1xh\e(B ?\e$,1y$\e(B ?\e$,1y%\e(B ?\e,L \e(B ?\e$,1{!\e(B ?\e,A0\e(B ?\e,A2\e(B ?\e,A7\e(B ?\e,Aw\e(B
-;;    ?\e$,2 p\e(B ?\e$,2 q\e(B ?\e$,2 r\e(B ?\e$,1(q\e(B ?\e$,1(t\e(B ?\e$,2 t\e(B ?\e$,1(v\e(B ?\e$,1(w\e(B ?\e$,2 w\e(B ?\e$,2 x\e(B ?\e$,2 y\e(B ?\e$,2 z\e(B ?\e$,2 {\e(B ?\e$,1)Q\e(B ?\e$,2 }\e(B ?\e$,2 ~\e(B
-;;    ?\e$,2 \7f\e(B ?\e$,2! \e(B ?\e$,2!!\e(B ?\e$,1(!\e(B ?\e$,1($\e(B ?\e$,2!#\e(B ?\e$,1(&\e(B ?\e$,1('\e(B ?\e$,2!&\e(B ?\e$,2!'\e(B ?\e$,2!(\e(B ?\e$,2!)\e(B ?\e$,2!*\e(B ?\e$,1)P\e(B ?\e$,2!,\e(B ?\e,A)\e(B
-;;    ?\e$,1(n\e(B ?\e$,1(P\e(B ?\e$,1(Q\e(B ?\e$,1(f\e(B ?\e$,1(T\e(B ?\e$,1(U\e(B ?\e$,1(d\e(B ?\e$,1(S\e(B ?\e$,1(e\e(B ?\e$,1(X\e(B ?\e$,1(Y\e(B ?\e$,1(Z\e(B ?\e$,1([\e(B ?\e$,1(\\e(B ?\e$,1(]\e(B ?\e$,1(^\e(B
-;;    ?\e$,1(_\e(B ?\e$,1(o\e(B ?\e$,1(`\e(B ?\e$,1(a\e(B ?\e$,1(b\e(B ?\e$,1(c\e(B ?\e$,1(V\e(B ?\e$,1(R\e(B ?\e$,1(l\e(B ?\e$,1(k\e(B ?\e$,1(W\e(B ?\e$,1(h\e(B ?\e$,1(m\e(B ?\e$,1(i\e(B ?\e$,1(g\e(B ?\e$,1(j\e(B
-;;    ?\e$,1(N\e(B ?\e$,1(0\e(B ?\e$,1(1\e(B ?\e$,1(F\e(B ?\e$,1(4\e(B ?\e$,1(5\e(B ?\e$,1(D\e(B ?\e$,1(3\e(B ?\e$,1(E\e(B ?\e$,1(8\e(B ?\e$,1(9\e(B ?\e$,1(:\e(B ?\e$,1(;\e(B ?\e$,1(<\e(B ?\e$,1(=\e(B ?\e$,1(>\e(B
-;;    ?\e$,1(?\e(B ?\e$,1(O\e(B ?\e$,1(@\e(B ?\e$,1(A\e(B ?\e$,1(B\e(B ?\e$,1(C\e(B ?\e$,1(6\e(B ?\e$,1(2\e(B ?\e$,1(L\e(B ?\e$,1(K\e(B ?\e$,1(7\e(B ?\e$,1(H\e(B ?\e$,1(M\e(B ?\e$,1(I\e(B ?\e$,1(G\e(B ?\e$,1(J\e(B
-;; 8859-5 plus Unicode:
-   ?\e$,2  \e(B ?\e$,2 "\e(B ?\e$,2 ,\e(B ?\e$,2 0\e(B ?\e$,2 4\e(B ?\e$,2 8\e(B ?\e$,2 <\e(B ?\e$,2 D\e(B ?\e$,2 L\e(B ?\e$,2 T\e(B ?\e$,2 \\e(B ?\e$,2!@\e(B ?\e$,2!D\e(B ?\e$,2!H\e(B ?\e$,2!L\e(B ?\e$,2!P\e(B
-   ?\e$,2!Q\e(B ?\e$,2!R\e(B ?\e$,2!S\e(B ?\e$,1{ \e(B ?\e$,2!`\e(B ?\e$,1x9\e(B ?\e$,1x:\e(B ?\e$,1xh\e(B ?\e$,1y$\e(B ?\e$,1y%\e(B ?\e,L \e(B ?\e$,1{!\e(B ?\e,A0\e(B ?\e,A2\e(B ?\e,A7\e(B ?\e,Aw\e(B
-   ?\e$,2 p\e(B ?\e$,2 q\e(B ?\e$,2 r\e(B ?\e,Lq\e(B ?\e,Lt\e(B ?\e$,2 t\e(B ?\e,Lv\e(B ?\e,Lw\e(B ?\e$,2 w\e(B ?\e$,2 x\e(B ?\e$,2 y\e(B ?\e$,2 z\e(B ?\e$,2 {\e(B ?\e$,1)Q\e(B ?\e$,2 }\e(B ?\e$,2 ~\e(B
-   ?\e$,2 \7f\e(B ?\e$,2! \e(B ?\e$,2!!\e(B ?\e,L!\e(B ?\e,L$\e(B ?\e$,2!#\e(B ?\e,L&\e(B ?\e,L'\e(B ?\e$,2!&\e(B ?\e$,2!'\e(B ?\e$,2!(\e(B ?\e$,2!)\e(B ?\e$,2!*\e(B ?\e$,1)P\e(B ?\e$,2!,\e(B ?\e,A)\e(B
-   ?\e,Ln\e(B ?\e,LP\e(B ?\e,LQ\e(B ?\e,Lf\e(B ?\e,LT\e(B ?\e,LU\e(B ?\e,Ld\e(B ?\e,LS\e(B ?\e,Le\e(B ?\e,LX\e(B ?\e,LY\e(B ?\e,LZ\e(B ?\e,L[\e(B ?\e,L\\e(B ?\e,L]\e(B ?\e,L^\e(B
-   ?\e,L_\e(B ?\e,Lo\e(B ?\e,L`\e(B ?\e,La\e(B ?\e,Lb\e(B ?\e,Lc\e(B ?\e,LV\e(B ?\e,LR\e(B ?\e,Ll\e(B ?\e,Lk\e(B ?\e,LW\e(B ?\e,Lh\e(B ?\e,Lm\e(B ?\e,Li\e(B ?\e,Lg\e(B ?\e,Lj\e(B
-   ?\e,LN\e(B ?\e,L0\e(B ?\e,L1\e(B ?\e,LF\e(B ?\e,L4\e(B ?\e,L5\e(B ?\e,LD\e(B ?\e,L3\e(B ?\e,LE\e(B ?\e,L8\e(B ?\e,L9\e(B ?\e,L:\e(B ?\e,L;\e(B ?\e,L<\e(B ?\e,L=\e(B ?\e,L>\e(B
-   ?\e,L?\e(B ?\e,LO\e(B ?\e,L@\e(B ?\e,LA\e(B ?\e,LB\e(B ?\e,LC\e(B ?\e,L6\e(B ?\e,L2\e(B ?\e,LL\e(B ?\e,LK\e(B ?\e,L7\e(B ?\e,LH\e(B ?\e,LM\e(B ?\e,LI\e(B ?\e,LG\e(B ?\e,LJ\e(B
-   ]
-  "Cyrillic KOI8-U decoding table.")
-
-(let ((table (make-translation-table-from-vector
-             cyrillic-koi8-u-decode-table)))
-  (define-translation-table 'cyrillic-koi8-u-nonascii-translation-table table)
-  (define-translation-table 'cyrillic-koi8-u-encode-table
-    (char-table-extra-slot table 0)))
-
-(makunbound 'cyrillic-koi8-u-decode-table)
-
-(define-ccl-program ccl-decode-koi8-u
-  `(4
-    ((loop
-      (r0 = 0)
-      (read r1)
-      (if (r1 < 128)
-         (write-repeat r1)
-       ((translate-character cyrillic-koi8-u-nonascii-translation-table r0 r1)
-        (translate-character ucs-translation-table-for-decode r0 r1)
-        (write-multibyte-character r0 r1)
-        (repeat))))))
-  "CCL program to decode KOI8-U.")
-
-(define-ccl-program ccl-encode-koi8-u
-  `(1
-    ((loop
-      (read-multibyte-character r0 r1)
-      (translate-character cyrillic-koi8-u-encode-table r0 r1)
-      (if (r0 != ,(charset-id 'ascii))
-         (if (r0 != ,(charset-id 'eight-bit-graphic))
-             (if (r0 != ,(charset-id 'eight-bit-control))
-                 (r1 = ??))))
-      (write-repeat r1))))
-  "CCL program to encode KOI8-U.")
-
-(cyrillic-unify-encoding 'cyrillic-koi8-u-encode-table)
-
-(make-coding-system
- 'koi8-u 4
- ?U "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)"
- '(ccl-decode-koi8-u . ccl-encode-koi8-u)
- `((safe-chars . cyrillic-koi8-u-encode-table)
-   (mime-charset . koi8-u)
-   (valid-codes (0 . 255))
-   (dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode)))
-
-(define-ccl-program ccl-encode-koi8-u-font
-  `(0
-    (translate-character cyrillic-koi8-u-encode-table r0 r1))
-  "CCL program to encode Cyrillic chars to KOI-U font.")
-
-(add-to-list 'font-ccl-encoder-alist '("koi8-u" . ccl-encode-koi8-u-font))
+(define-coding-system 'koi8-u
+  "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)"
+  :coding-type 'charset
+  :mnemonic ?U 
+  :charset-list '(koi8-u)
+  :mime-charset 'koi8-u)
 
 (set-language-info-alist
- "Ukrainian" `((coding-system koi8-u)
+ "Ukrainian" `((charset koi8-u)
+              (coding-system koi8-u)
               (coding-priority koi8-u)
-              (nonascii-translation
-               . ,(get 'cyrillic-koi8-u-nonascii-translation-table
-                       'translation-table))
+              (nonascii-translation . koi8-u)
               (input-method . "ukrainian-computer")
               (documentation
                . "Support for Ukrainian with KOI8-U character set."))
@@ -349,103 +145,19 @@ Support for Russian using koi8-r and the russian-computer input method.")
 
 ;;; ALTERNATIVNYJ stuff
 
-;; Fixme: It's unclear what's the correct table.  I've found
-;; statements both that it's the same as cp866 and somewhat different,
-;; but nothing that looks really definitive.
-(defvar cyrillic-alternativnyj-decode-table
-  [
-   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
-   16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31
-   32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47
-   48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63
-   64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79
-   80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95
-   96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111
-   112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
-;;    ?\e$,1(0\e(B  ?\e$,1(1\e(B  ?\e$,1(2\e(B  ?\e$,1(3\e(B  ?\e$,1(4\e(B  ?\e$,1(5\e(B  ?\e$,1(6\e(B  ?\e$,1(7\e(B  ?\e$,1(8\e(B  ?\e$,1(9\e(B  ?\e$,1(:\e(B  ?\e$,1(;\e(B  ?\e$,1(<\e(B  ?\e$,1(=\e(B  ?\e$,1(>\e(B  ?\e$,1(?\e(B
-;;    ?\e$,1(@\e(B  ?\e$,1(A\e(B  ?\e$,1(B\e(B  ?\e$,1(C\e(B  ?\e$,1(D\e(B  ?\e$,1(E\e(B  ?\e$,1(F\e(B  ?\e$,1(G\e(B  ?\e$,1(H\e(B  ?\e$,1(I\e(B  ?\e$,1(J\e(B  ?\e$,1(K\e(B  ?\e$,1(L\e(B  ?\e$,1(M\e(B  ?\e$,1(N\e(B  ?\e$,1(O\e(B
-;;    ?\e$,1(P\e(B  ?\e$,1(Q\e(B  ?\e$,1(R\e(B  ?\e$,1(S\e(B  ?\e$,1(T\e(B  ?\e$,1(U\e(B  ?\e$,1(V\e(B  ?\e$,1(W\e(B  ?\e$,1(X\e(B  ?\e$,1(Y\e(B  ?\e$,1(Z\e(B  ?\e$,1([\e(B  ?\e$,1(\\e(B  ?\e$,1(]\e(B  ?\e$,1(^\e(B  ?\e$,1(_\e(B
-;;    ?\e$,2!Q\e(B  ?\e$,2!R\e(B  ?\e$,2!S\e(B  ?\e$,2 "\e(B  ?\e$,2 D\e(B  ?\e$,2!!\e(B  ?\e$,2!"\e(B  ?\e$,2 v\e(B  ?\e$,2 u\e(B  ?\e$,2!#\e(B  ?\e$,2 q\e(B  ?\e$,2 w\e(B  ?\e$,2 }\e(B  ?\e$,2 |\e(B  ?\e$,2 {\e(B  ?\e$,2 0\e(B
-;;    ?\e$,2 4\e(B  ?\e$,2 T\e(B  ?\e$,2 L\e(B  ?\e$,2 <\e(B  ?\e$,2  \e(B  ?\e$,2 \\e(B  ?\e$,2 ~\e(B  ?\e$,2 \7f\e(B  ?\e$,2 z\e(B  ?\e$,2 t\e(B  ?\e$,2!)\e(B  ?\e$,2!&\e(B  ?\e$,2! \e(B  ?\e$,2 p\e(B  ?\e$,2!,\e(B  ?\e$,2!'\e(B
-;;    ?\e$,2!(\e(B  ?\e$,2!$\e(B  ?\e$,2!%\e(B  ?\e$,2 y\e(B  ?\e$,2 x\e(B  ?\e$,2 r\e(B  ?\e$,2 s\e(B  ?\e$,2!+\e(B  ?\e$,2!*\e(B  ?\e$,2 8\e(B  ?\e$,2 ,\e(B  ?\e$,2!H\e(B  ?\e$,2!D\e(B  ?\e$,2!L\e(B  ?\e$,2!P\e(B  ?\e$,2!@\e(B
-;;    ?\e$,1(`\e(B  ?\e$,1(a\e(B  ?\e$,1(b\e(B  ?\e$,1(c\e(B  ?\e$,1(d\e(B  ?\e$,1(e\e(B  ?\e$,1(f\e(B  ?\e$,1(g\e(B  ?\e$,1(h\e(B  ?\e$,1(i\e(B  ?\e$,1(j\e(B  ?\e$,1(k\e(B  ?\e$,1(l\e(B  ?\e$,1(m\e(B  ?\e$,1(n\e(B  ?\e$,1(o\e(B
-;;    ?\e$,1(!\e(B  ?\e$,1(q\e(B  ?\e$,1ry\e(B  ?\e$,1rx\e(B  ?\e$,1%A\e(B  ?\e$,1%@\e(B  ?\e$,1s:\e(B  ?\e$,1s9\e(B  ?\e$,1vq\e(B  ?\e$,1vs\e(B  ?\e,A1\e(B  ?\e,Aw\e(B  ?\e$,1uV\e(B  ?\e,A$\e(B  ?\e$,2!`\e(B  ?\e,A \e(B ;
-;; 8859+Unicode
-   ?\e,L0\e(B  ?\e,L1\e(B  ?\e,L2\e(B  ?\e,L3\e(B  ?\e,L4\e(B  ?\e,L5\e(B  ?\e,L6\e(B  ?\e,L7\e(B  ?\e,L8\e(B  ?\e,L9\e(B  ?\e,L:\e(B  ?\e,L;\e(B  ?\e,L<\e(B  ?\e,L=\e(B  ?\e,L>\e(B  ?\e,L?\e(B
-   ?\e,L@\e(B  ?\e,LA\e(B  ?\e,LB\e(B  ?\e,LC\e(B  ?\e,LD\e(B  ?\e,LE\e(B  ?\e,LF\e(B  ?\e,LG\e(B  ?\e,LH\e(B  ?\e,LI\e(B  ?\e,LJ\e(B  ?\e,LK\e(B  ?\e,LL\e(B  ?\e,LM\e(B  ?\e,LN\e(B  ?\e,LO\e(B
-   ?\e,LP\e(B  ?\e,LQ\e(B  ?\e,LR\e(B  ?\e,LS\e(B  ?\e,LT\e(B  ?\e,LU\e(B  ?\e,LV\e(B  ?\e,LW\e(B  ?\e,LX\e(B  ?\e,LY\e(B  ?\e,LZ\e(B  ?\e,L[\e(B  ?\e,L\\e(B  ?\e,L]\e(B  ?\e,L^\e(B  ?\e,L_\e(B
-   ?\e$,2!Q\e(B  ?\e$,2!R\e(B  ?\e$,2!S\e(B  ?\e$,2 "\e(B  ?\e$,2 D\e(B  ?\e$,2!!\e(B  ?\e$,2!"\e(B  ?\e$,2 v\e(B  ?\e$,2 u\e(B  ?\e$,2!#\e(B  ?\e$,2 q\e(B  ?\e$,2 w\e(B  ?\e$,2 }\e(B  ?\e$,2 |\e(B  ?\e$,2 {\e(B  ?\e$,2 0\e(B
-   ?\e$,2 4\e(B  ?\e$,2 T\e(B  ?\e$,2 L\e(B  ?\e$,2 <\e(B  ?\e$,2  \e(B  ?\e$,2 \\e(B  ?\e$,2 ~\e(B  ?\e$,2 \7f\e(B  ?\e$,2 z\e(B  ?\e$,2 t\e(B  ?\e$,2!)\e(B  ?\e$,2!&\e(B  ?\e$,2! \e(B  ?\e$,2 p\e(B  ?\e$,2!,\e(B  ?\e$,2!'\e(B
-   ?\e$,2!(\e(B  ?\e$,2!$\e(B  ?\e$,2!%\e(B  ?\e$,2 y\e(B  ?\e$,2 x\e(B  ?\e$,2 r\e(B  ?\e$,2 s\e(B  ?\e$,2!+\e(B  ?\e$,2!*\e(B  ?\e$,2 8\e(B  ?\e$,2 ,\e(B  ?\e$,2!H\e(B  ?\e$,2!D\e(B  ?\e$,2!L\e(B  ?\e$,2!P\e(B  ?\e$,2!@\e(B
-   ?\e,L`\e(B  ?\e,La\e(B  ?\e,Lb\e(B  ?\e,Lc\e(B  ?\e,Ld\e(B  ?\e,Le\e(B  ?\e,Lf\e(B  ?\e,Lg\e(B  ?\e,Lh\e(B  ?\e,Li\e(B  ?\e,Lj\e(B  ?\e,Lk\e(B  ?\e,Ll\e(B  ?\e,Lm\e(B  ?\e,Ln\e(B  ?\e,Lo\e(B
-   ;; Taken from http://www.cyrillic.com/ref/cyrillic/koi-8alt.html
-   ;; with guesses for the Unicodes of the glyphs in the absence of a
-   ;; table.
-   ?\e,L!\e(B  ?\e,Lq\e(B  ?\e$,1ry\e(B  ?\e$,1rx\e(B  ?\e$,1%A\e(B  ?\e$,1%@\e(B  ?\e$,1s:\e(B  ?\e$,1s9\e(B  ?\e$,1vq\e(B  ?\e$,1vs\e(B  ?\e,A1\e(B  ?\e,Aw\e(B  ?\e,Lp\e(B  ?\e,A$\e(B  ?\e$,2!`\e(B  ?\e,L \e(B]
-  "Cyrillic ALTERNATIVNYJ decoding table.")
-
-(let ((table (make-translation-table-from-vector
-             cyrillic-alternativnyj-decode-table)))
-  (define-translation-table 'cyrillic-alternativnyj-nonascii-translation-table
-    table)
-  (define-translation-table 'cyrillic-alternativnyj-encode-table
-    (char-table-extra-slot table 0)))
-
-(makunbound 'cyrillic-alternativnyj-decode-table)
-
-(define-ccl-program ccl-decode-alternativnyj
-  `(4
-    ((loop
-      (r0 = 0)
-      (read r1)
-      (if (r1 < 128)
-         (write-repeat r1)
-       ((translate-character cyrillic-alternativnyj-nonascii-translation-table
-                             r0 r1)
-        (translate-character ucs-translation-table-for-decode r0 r1)
-        (write-multibyte-character r0 r1)
-        (repeat))))))
-  "CCL program to decode Alternativnyj.")
-
-(define-ccl-program ccl-encode-alternativnyj
-  `(1
-    ((loop
-      (read-multibyte-character r0 r1)
-      (translate-character cyrillic-alternativnyj-encode-table r0 r1)
-      (if (r0 != ,(charset-id 'ascii))
-         (if (r0 != ,(charset-id 'eight-bit-graphic))
-             (if (r0 != ,(charset-id 'eight-bit-control))
-                 (r1 = ??))))
-      (write-repeat r1))))
-  "CCL program to encode Alternativnyj.")
-
-(cyrillic-unify-encoding 'cyrillic-alternativnyj-encode-table)
-
-(make-coding-system
- 'cyrillic-alternativnyj 4 ?A
- "ALTERNATIVNYJ 8-bit encoding for Cyrillic."
- '(ccl-decode-alternativnyj . ccl-encode-alternativnyj)
- `((safe-chars . cyrillic-alternativnyj-encode-table)
-   (valid-codes (0 . 255))
-   (dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode)))
+(define-coding-system 'cyrillic-alternativnyj
+  "ALTERNATIVNYJ 8-bit encoding for Cyrillic."
+  :coding-type 'charset
+  :mnemonic ?A
+  :charset-list '(alternativnyj))
 
 (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj)
 
-(define-ccl-program ccl-encode-alternativnyj-font
-  `(0
-    (translate-character cyrillic-alternativnyj-encode-table r0 r1))
-  "CCL program to encode Cyrillic chars to Alternativnyj font.")
-
-(add-to-list 'font-ccl-encoder-alist
-            '("alternativnyj" . ccl-encode-alternativnyj-font))
-
 (set-language-info-alist
- "Cyrillic-ALT" `((charset cyrillic-iso8859-5)
-                 (nonascii-translation
-                  . ,(get 'cyrillic-alternativnyj-nonascii-translation-table
-                          'translation-table))
+ "Cyrillic-ALT" `((charset alternativnyj)
                  (coding-system cyrillic-alternativnyj)
                  (coding-priority cyrillic-alternativnyj)
+                 (nonascii-translation . alternativnyj)
                  (input-method . "russian-typewriter")
                  (features cyril-util)
                  (unibyte-display . cyrillic-alternativnyj)
@@ -453,49 +165,82 @@ Support for Russian using koi8-r and the russian-computer input method.")
                  (documentation . "Support for Cyrillic ALTERNATIVNYJ."))
  '("Cyrillic"))
 
+(define-coding-system 'cp866
+  "CP866 encoding for Cyrillic."
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(ibm866)
+  :mime-charset 'cp866)
+
+(define-coding-system 'koi8-u
+  "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)"
+  :coding-type 'charset
+  :mnemonic ?U
+  :charset-list '(koi8-u)
+  :mime-charset 'koi8-u)
+
+(define-coding-system 'koi8-t
+  "KOI8-T 8-bit encoding for Cyrillic"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(koi8-t)
+  :mime-charset 'koi8-t)
+
+(define-coding-system 'windows-1251
+  "windows-1251 8-bit encoding for Cyrillic (MIME: WINDOWS-1251)"
+  :coding-type 'charset
+  :mnemonic ?b
+  :charset-list '(windows-1251)
+  :mime-charset 'windows-1251)
+(define-coding-system-alias 'cp1251 'windows-1251)
+
+(define-coding-system 'cp1125
+  "cp1125 8-bit encoding for Cyrillic"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(cp1125))
+(define-coding-system-alias 'ruscii 'cp1125)
+;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua>
+(define-coding-system-alias 'cp866u 'cp1125)
+
+(define-coding-system 'cp855
+  "DOS codepage 855 (Russian)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp855)
+  :mime-charset 'cp855)
+(define-coding-system-alias 'ibm855 'cp855)
+
+(define-coding-system 'mik
+  "Bulgarian DOS codepage"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(mik))
+
+(define-coding-system 'pt154
+  "Parattype Asian Cyrillic codepage"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(pt154))
+
+;; (set-language-info-alist
+;;  "Windows-1251" `((coding-system windows-1251)
+;;               (coding-priority windows-1251)
+;;               (input-method . "russian-typewriter") ; fixme?
+;;               (features code-pages)
+;;               (documentation . "Support for windows-1251 character set."))
+;;  '("Cyrillic"))
+
 (set-language-info-alist
- "Tajik" `((coding-system cyrillic-koi8-t)
-          (coding-priority cyrillic-koi8-t)
-          (nonascii-translation
-           . ,(get 'decode-koi8-t 'translation-table))
+ "Tajik" `((coding-system koi8-t)
+          (coding-priority koi8-t)
+          (nonascii-translation . cyrillic-koi8-t)
+          (charset koi8-t)
           (input-method . "russian-typewriter") ; fixme?
           (features code-pages)
           (documentation . "Support for Tajik using KOI8-T."))
  '("Cyrillic"))
 
-(eval-and-compile
-  (setq
-   non-iso-charset-alist
-   (cp-make-coding-system
-    windows-1251
-    [?\\e$,1("\e(B ?\\e$,1(#\e(B ?\\e$,1rz\e(B ?\\e$,1(s\e(B ?\\e$,1r~\e(B ?\\e$,1s&\e(B ?\\e$,1s \e(B ?\\e$,1s!\e(B ?\\e$,1tL\e(B ?\\e$,1s0\e(B ?\\e$,1()\e(B ?\\e$,1s9\e(B ?\\e$,1(*\e(B ?\\e$,1(,\e(B ?\\e$,1(+\e(B ?\\e$,1(/\e(B ?\\e$,1(r\e(B
-        ?\\e$,1rx\e(B ?\\e$,1ry\e(B ?\\e$,1r|\e(B ?\\e$,1r}\e(B ?\\e$,1s"\e(B ?\\e$,1rs\e(B ?\\e$,1rt\e(B nil ?\\e$,1ub\e(B ?\\e$,1(y\e(B ?\\e$,1s:\e(B ?\\e$,1(z\e(B ?\\e$,1(|\e(B ?\\e$,1({\e(B ?\\e$,1(\7f\e(B ?\\e,A \e(B ?\\e$,1(.\e(B
-        ?\\e$,1(~\e(B ?\\e$,1((\e(B ?\\e,A$\e(B ?\\e$,1)P\e(B ?\\e,A&\e(B ?\\e,A'\e(B ?\\e$,1(!\e(B ?\\e,A)\e(B ?\\e$,1($\e(B ?\\e,A+\e(B ?\\e,A,\e(B ?\\e,A-\e(B ?\\e,A.\e(B ?\\e$,1('\e(B ?\\e,A0\e(B ?\\e,A1\e(B ?\\e$,1(&\e(B
-        ?\\e$,1(v\e(B ?\\e$,1)Q\e(B ?\\e,A5\e(B ?\\e,A6\e(B ?\\e,A7\e(B ?\\e$,1(q\e(B ?\\e$,1uV\e(B ?\\e$,1(t\e(B ?\\e,A;\e(B ?\\e$,1(x\e(B ?\\e$,1(%\e(B ?\\e$,1(u\e(B ?\\e$,1(w\e(B ?\\e$,1(0\e(B ?\\e$,1(1\e(B ?\\e$,1(2\e(B ?\\e$,1(3\e(B
-        ?\\e$,1(4\e(B ?\\e$,1(5\e(B ?\\e$,1(6\e(B ?\\e$,1(7\e(B ?\\e$,1(8\e(B ?\\e$,1(9\e(B ?\\e$,1(:\e(B ?\\e$,1(;\e(B ?\\e$,1(<\e(B ?\\e$,1(=\e(B ?\\e$,1(>\e(B ?\\e$,1(?\e(B ?\\e$,1(@\e(B ?\\e$,1(A\e(B ?\\e$,1(B\e(B ?\\e$,1(C\e(B ?\\e$,1(D\e(B
-        ?\\e$,1(E\e(B ?\\e$,1(F\e(B ?\\e$,1(G\e(B ?\\e$,1(H\e(B ?\\e$,1(I\e(B ?\\e$,1(J\e(B ?\\e$,1(K\e(B ?\\e$,1(L\e(B ?\\e$,1(M\e(B ?\\e$,1(N\e(B ?\\e$,1(O\e(B ?\\e$,1(P\e(B ?\\e$,1(Q\e(B ?\\e$,1(R\e(B ?\\e$,1(S\e(B ?\\e$,1(T\e(B ?\\e$,1(U\e(B
-        ?\\e$,1(V\e(B ?\\e$,1(W\e(B ?\\e$,1(X\e(B ?\\e$,1(Y\e(B ?\\e$,1(Z\e(B ?\\e$,1([\e(B ?\\e$,1(\\e(B ?\\e$,1(]\e(B ?\\e$,1(^\e(B ?\\e$,1(_\e(B ?\\e$,1(`\e(B ?\\e$,1(a\e(B ?\\e$,1(b\e(B ?\\e$,1(c\e(B ?\\e$,1(d\e(B ?\\e$,1(e\e(B ?\\e$,1(f\e(B
-        ?\\e$,1(g\e(B ?\\e$,1(h\e(B ?\\e$,1(i\e(B ?\\e$,1(j\e(B ?\\e$,1(k\e(B ?\\e$,1(l\e(B ?\\e$,1(m\e(B ?\\e$,1(n\e(B ?\\e$,1(o\e(B] nil ?b)))
-
-;; Register cyrillic-iso8859-5 characters in the encode table of
-;; windows-1251.
-(let ((table (get 'encode-windows-1251 'translation-table))
-      ;; Nth element is a cyrillic-iso8859-5 character encoded to a
-      ;; code (128 + N), or nil.
-      (vec [?\\e,L"\e(B ?\\e,L#\e(B nil ?\\e,Ls\e(B nil nil nil nil nil nil ?\\e,L)\e(B nil ?\\e,L*\e(B ?\\e,L,\e(B ?\\e,L+\e(B ?\\e,L/\e(B
-           ?\\e,Lr\e(B nil nil nil nil nil nil nil nil nil ?\\e,Ly\e(B nil ?\\e,Lz\e(B ?\\e,L|\e(B ?\\e,L{\e(B ?\\e,L\7f\e(B
-           nil ?\\e,L.\e(B ?\\e,L~\e(B ?\\e,L(\e(B nil nil nil nil ?\\e,L!\e(B nil ?\\e,L$\e(B nil nil nil nil ?\\e,L'\e(B
-           nil nil ?\\e,L&\e(B ?\\e,Lv\e(B nil nil nil nil ?\\e,Lq\e(B ?\\e,Lp\e(B ?\\e,Lt\e(B nil ?\\e,Lx\e(B ?\\e,L%\e(B ?\\e,Lu\e(B ?\\e,Lw\e(B
-           ?\\e,L0\e(B ?\\e,L1\e(B ?\\e,L2\e(B ?\\e,L3\e(B ?\\e,L4\e(B ?\\e,L5\e(B ?\\e,L6\e(B ?\\e,L7\e(B ?\\e,L8\e(B ?\\e,L9\e(B ?\\e,L:\e(B ?\\e,L;\e(B ?\\e,L<\e(B ?\\e,L=\e(B ?\\e,L>\e(B ?\\e,L?\e(B
-           ?\\e,L@\e(B ?\\e,LA\e(B ?\\e,LB\e(B ?\\e,LC\e(B ?\\e,LD\e(B ?\\e,LE\e(B ?\\e,LF\e(B ?\\e,LG\e(B ?\\e,LH\e(B ?\\e,LI\e(B ?\\e,LJ\e(B ?\\e,LK\e(B ?\\e,LL\e(B ?\\e,LM\e(B ?\\e,LN\e(B ?\\e,LO\e(B
-           ?\\e,LP\e(B ?\\e,LQ\e(B ?\\e,LR\e(B ?\\e,LS\e(B ?\\e,LT\e(B ?\\e,LU\e(B ?\\e,LV\e(B ?\\e,LW\e(B ?\\e,LX\e(B ?\\e,LY\e(B ?\\e,LZ\e(B ?\\e,L[\e(B ?\\e,L\\e(B ?\\e,L]\e(B ?\\e,L^\e(B ?\\e,L_\e(B
-           ?\\e,L`\e(B ?\\e,La\e(B ?\\e,Lb\e(B ?\\e,Lc\e(B ?\\e,Ld\e(B ?\\e,Le\e(B ?\\e,Lf\e(B ?\\e,Lg\e(B ?\\e,Lh\e(B ?\\e,Li\e(B ?\\e,Lj\e(B ?\\e,Lk\e(B ?\\e,Ll\e(B ?\\e,Lm\e(B ?\\e,Ln\e(B ?\\e,Lo\e(B]))
-  (dotimes (i (length vec))
-    (if (aref vec i)
-       (aset table (aref vec i) (+ 128 i)))))
-
-(define-coding-system-alias 'cp1251 'windows-1251)
-
 (let ((elt `("microsoft-cp1251" windows-1251 1
             ,(get 'encode-windows-1251 'translation-table)))
       (slot (assoc "microsoft-cp1251" ctext-non-standard-encodings-alist)))
@@ -503,50 +248,37 @@ Support for Russian using koi8-r and the russian-computer input method.")
       (setcdr slot (cdr elt))
     (push elt ctext-non-standard-encodings-alist)))
 
-(define-ccl-program ccl-encode-windows-1251-font
-  `(0
-    ((if (r0 == ,(charset-id 'mule-unicode-0100-24ff))
-        ((r1 <<= 7)
-         (r1 += r2)))
-     (translate-character encode-windows-1251 r0 r1))))
-
-(add-to-list 'font-ccl-encoder-alist
-            '("microsoft-cp1251" . ccl-encode-windows-1251-font))
-
 (set-language-info-alist
  "Bulgarian" `((coding-system windows-1251)
               (coding-priority windows-1251)
+              (nonascii-translation . windows-1251)
+              (charset windows-1251)
               (ctext-non-standard-encodings "microsoft-cp1251")
-              (overriding-fontspec
-               (,(get 'encode-windows-1251 'translation-table)
-                . (nil . "microsoft-cp1251"))
-               (,(get 'cyrillic-koi8-r-encode-table 'translation-table)
-                . (nil . "koi8-r")))
-              (nonascii-translation
-               . ,(get 'decode-windows-1251 'translation-table))
               (input-method . "bulgarian-bds")
               (documentation
-               . "Support for Bulgarian with windows-1251 character set.")
-              (tutorial . "TUTORIAL.bg"))
+               . "Support for Bulgrian with windows-1251 character set."))
  '("Cyrillic"))
 
 (set-language-info-alist
  "Belarusian" `((coding-system windows-1251)
                (coding-priority windows-1251)
+               (nonascii-translation . windows-1251)
+               (charset windows-1251)
                (ctext-non-standard-encodings "microsoft-cp1251")
-               (overriding-fontspec
-                (,(get 'encode-windows-1251 'translation-table)
-                 . (nil . "microsoft-cp1251"))
-                (,(get 'cyrillic-koi8-r-encode-table 'translation-table)
-                 . (nil . "koi8-r")))
-               (nonascii-translation
-                . ,(get 'decode-windows-1251 'translation-table))
                (input-method . "belarusian")
                (documentation
                 . "Support for Belarusian with windows-1251 character set.
 \(The name Belarusian replaced Byelorussian in the early 1990s.)"))
  '("Cyrillic"))
 
+(set-language-info-alist
+ "Ukrainian" `((coding-system koi8-u)
+              (coding-priority koi8-u)
+              (input-method . "ukrainian-computer")
+              (documentation
+               . "Support for Ukrainian with koi8-u character set."))
+ '("Cyrillic"))
+
 (provide 'cyrillic)
 
 ;;; arch-tag: bda71ae0-ba41-4cb6-a6e0-1dff542313d3
index 982fa96458399f96e7bb52621c1f31406e61bf18..54314a7d0915ec5113489149c5e13f43e15b718b 100644 (file)
@@ -35,8 +35,7 @@
           (coding-system . (iso-8859-2))
           (coding-priority . (iso-8859-2))
           (input-method . "czech")
-          (nonascii-translation . latin-iso8859-2)
-          (unibyte-syntax . "latin-2")
+          (nonascii-translation . iso-8859-2)
           (unibyte-display . iso-8859-2)
           (tutorial . "TUTORIAL.cs")
           (sample-text . "P\e,Bx\e(Bejeme v\e,Ba\e(Bm hezk\e,B}\e(B den!")
index 021ffce354a4da773b3fccdd3cc92fb3714c78a1..3d2efce922488beb2a9ddf0200eaef427602e65c 100644 (file)
@@ -1,4 +1,4 @@
-;;; devan-util.el --- Support for composing Devanagari characters
+;;; devan-util.el --- Support for composing Devanagari characters -*-coding: iso-2022-7bit;-*-
 
 ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   Free Software Foundation, Inc.
@@ -35,8 +35,6 @@
 
 ;;; Code:
 
-;;;###autoload
-
 ;; Devanagari Composable Pattern
 ;;    C .. Consonants
 ;;    V .. Vowel
 (defconst devanagari-consonant
   "[\e$,15U\e(B-\e$,15y68\e(B-\e$,16?\e(B]")
 
+    ;;("\e$,16B\e(B" . nil)
+    ;;("\e$,16A\e(B" . nil)
+    ;;("\e$,16C\e(B" . nil)
+
+
 (defconst devanagari-composable-pattern
   (concat
    "\\([\e$,15E\e(B-\e$,15T6@6A\e(B][\e$,15A5B\e(B]?\\)\\|[\e$,15C6D\e(B]"
    "\\)")
   "Regexp matching a composable sequence of Devanagari characters.")
 
+(dolist (range '((#x0903 . #x0903)
+                (#x0905 . #x0939)
+                (#x0958 . #x0961)))
+  (set-char-table-range indian-composable-pattern range
+                       devanagari-composable-pattern))
+
 ;;;###autoload
 (defun devanagari-compose-region (from to)
   (interactive "r")
@@ -72,8 +81,8 @@
       (narrow-to-region from to)
       (goto-char (point-min))
       (while (re-search-forward devanagari-composable-pattern nil t)
-        (devanagari-compose-syllable-region (match-beginning 0)
-                                            (match-end 0))))))
+       (devanagari-compose-syllable-region (match-beginning 0)
+                                           (match-end 0))))))
 (defun devanagari-compose-string (string)
   (with-temp-buffer
     (insert (decompose-string string))
        (set-buffer-modified-p buffer-modified-p)
        (- (point-max) (point-min))))))
 
-(defun devanagari-range (from to)
-  "Make the list of the integers of range FROM to TO."
-  (let (result)
-    (while (<= from to) (setq result (cons to result) to (1- to))) result))
-
 (defun devanagari-regexp-of-hashtbl-keys (hashtbl)
   "Return a regular expression that matches all keys in hashtable HASHTBL."
   (let ((max-specpdl-size 1000))
        dummy)
       (function (lambda (x y) (> (length x) (length y))))))))
 
-(defun devanagari-composition-function (from to pattern &optional string)
-  "Compose Devanagari characters in REGION, or STRING if specified.
-Assume that the REGION or STRING must fully match the composable
-PATTERN regexp."
-  (if string (devanagari-compose-syllable-string string)
-    (devanagari-compose-syllable-region from to))
-  (- to from))
-
-;; Register a function to compose Devanagari characters.
-(mapc
- (function (lambda (ucs)
-   (aset composition-function-table (decode-char 'ucs ucs)
-        (list (cons devanagari-composable-pattern
-                     'devanagari-composition-function)))))
- (nconc '(#x0903) (devanagari-range #x0905 #x0939) (devanagari-range #x0958 #x0961)))
+;;;###autoload
+(defun devanagari-composition-function (pos &optional string)
+  "Compose Devanagari characters after the position POS.
+If STRING is not nil, it is a string, and POS is an index to the string.
+In this case, compose characters after POS of the string."
+  (if string
+      (if auto-compose-current-font
+         (if (eq (string-match "[\e$,15@\e(B-\e$,16_\e(B]+" pos) pos)
+             (or (font-shape-text 0 (match-end 0) auto-compose-current-font
+                                  string)
+                 pos)))
+    (goto-char pos)
+    (if auto-compose-current-font
+       (if (looking-at "[\e$,15@\e(B-\e$,16_\e(B]+")
+           (or (font-shape-text pos (match-end 0) auto-compose-current-font)
+               pos)
+         (if (looking-at devanagari-composable-pattern)
+             (prog1 (match-end 0)
+               (devanagari-compose-syllable-region pos (match-end 0))))))))
 
 ;; Notes on conversion steps.
 
@@ -496,11 +504,10 @@ preferred rule from the sanskrit fonts."  )
 (defvar dev-glyph-glyph-2-regexp
   (devanagari-regexp-of-hashtbl-keys dev-glyph-glyph-2-hash))
 
-
 (defun dev-charseq (from &optional to)
   (if (null to) (setq to from))
-  (mapcar (function (lambda (x) (indian-glyph-char x 'devanagari)))
-          (devanagari-range from to)))
+  (number-sequence (decode-char 'devanagari-cdac from)
+                  (decode-char 'devanagari-cdac to)))
 
 (defvar dev-glyph-cvn
   (append
index c348a936f50258bd479f05df8b917e6293c231ee..f825cab69913e5b58e125ed27b4de391fb941bfc 100644 (file)
@@ -34,8 +34,8 @@
  "Devanagari" '((charset indian-is13194 mule-unicode-0100-24ff
                          indian-2-column indian-glyph ;; comment out later
                          )
-               (coding-system in-is13194)
-               (coding-priority in-is13194)
+               (coding-system in-is13194-devanagari)
+               (coding-priority in-is13194-devanagari)
                (input-method . "dev-aiba")
                (features devan-util)
                (documentation . "\
@@ -43,6 +43,13 @@ Such languages using Devanagari script as Hindi and Marathi
 are supported in this language environment."))
  '("Indian"))
 
+;; For automatic composition.
+(dolist (range '((#x0903 . #x0903)
+                (#x0905 . #x0939)
+                (#x0958 . #x0961)))
+  (set-char-table-range composition-function-table range
+                       '(("[\x0900-\x097F]+" . font-shape-text))))
+
 (provide 'devanagari)
 
 ;;; arch-tag: fd13667d-868b-41e8-81ef-79dd28bbfed2
index d89d7c7d36fef2f25559e29c12097d7479b26b7d..a77bdee436911f026e25229d26f9c726d4dee6ba 100644 (file)
@@ -5,6 +5,9 @@
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: multibyte character, character set, syntax, category
 
 Nothing special is needed to handle English.")
             ))
 
+;; Mostly because we can now...
+(define-coding-system 'ebcdic-us
+  "US version of EBCDIC"
+  :coding-type 'charset
+  :charset-list '(ebcdic-us)
+  :mnemonic ?*)
+
+(define-coding-system 'ebcdic-uk
+  "UK version of EBCDIC"
+  :coding-type 'charset
+  :charset-list '(ebcdic-uk)
+  :mnemonic ?*)
+
+(define-coding-system 'ibm1047
+  "A version of EBCDIC used in OS/390 Unix"  ; says Groff
+  :coding-type 'charset
+  :charset-list '(ibm1047)
+  :mnemonic ?*)
+(define-coding-system-alias 'cp1047 'ibm1047)
+
 ;; Make "ASCII" an alias of "English" language environment.
 (set-language-info-alist
  "ASCII" (cdr (assoc "English" language-info-alist)))
index 195a18a10fd66b08931ee02f36a1b5a4e21dfec1..a8b99884546aaf5a3458d4ae961ba5942b3f429d 100644 (file)
@@ -1,10 +1,13 @@
-;;; ethio-util.el --- utilities for Ethiopic -*- coding: iso-2022-7bit; -*-
+;;; ethio-util.el --- utilities for Ethiopic   -*- coding: utf-8; -*-
 
 ;; Copyright (C) 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2005, 2006
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number: H15PRO110
 
 ;; Keywords: mule, multilingual, Ethiopic
 
@@ -31,6 +34,8 @@
 
 ;;; Code:
 
+(require 'robin)
+
 (defvar rmail-current-message)
 (defvar rmail-message-vector)
 
 (defun setup-ethiopic-environment-internal ()
   (let ((key-bindings '((" " . ethio-insert-space)
                        ([?\S- ] . ethio-insert-ethio-space)
-                       ([?\C-'] . ethio-gemination)
-
-                       ;; these old bindings conflict
-                       ;; with Emacs' binding policy
-
-                       ;; ([f2] . ethio-toggle-space)
-                       ;; ([S-f2] . ethio-replace-space) ; as requested
-                       ;; ([f3] . ethio-toggle-punctuation)
-                       ;; ([f4] . ethio-sera-to-fidel-buffer)
-                       ;; ([S-f4] . ethio-sera-to-fidel-region)
-                       ;; ([C-f4] . ethio-sera-to-fidel-mail-or-marker)
-                       ;; ([f5] . ethio-fidel-to-sera-buffer)
-                       ;; ([S-f5] . ethio-fidel-to-sera-region)
-                       ;; ([C-f5] . ethio-fidel-to-sera-mail-or-marker)
-                       ;; ([f6] . ethio-modify-vowel)
-                       ;; ([f7] . ethio-replace-space)
-                       ;; ([f8] . ethio-input-special-character)
-
-                       ;; this is the rewritten bindings
-
+                       ;; ([?\C-'] . ethio-gemination)
                        ([f3] . ethio-fidel-to-sera-buffer)
                        ([S-f3] . ethio-fidel-to-sera-region)
-                       ([C-f3] . ethio-fidel-to-sera-mail-or-marker)
+                       ([C-f3] . ethio-fidel-to-sera-marker)
                        ([f4] . ethio-sera-to-fidel-buffer)
                        ([S-f4] . ethio-sera-to-fidel-region)
-                       ([C-f4] . ethio-sera-to-fidel-mail-or-marker)
+                       ([C-f4] . ethio-sera-to-fidel-marker)
                        ([S-f5] . ethio-toggle-punctuation)
                        ([S-f6] . ethio-modify-vowel)
                        ([S-f7] . ethio-replace-space)
-                       ([S-f8] . ethio-input-special-character)
+                       ;; ([S-f8] . ethio-input-special-character) ; deprecated
                        ([C-f9] . ethio-toggle-space)
                        ([S-f9] . ethio-replace-space) ; as requested
                        ))
@@ -83,7 +69,6 @@
       (global-set-key kb (cdr (car key-bindings)))
       (setq key-bindings (cdr key-bindings))))
 
-  (add-hook 'quail-activate-hook 'ethio-select-a-translation)
   (add-hook 'find-file-hook 'ethio-find-file)
   (add-hook 'write-file-functions 'ethio-write-file)
   (add-hook 'after-save-hook 'ethio-find-file))
@@ -96,7 +81,6 @@
     (setq exit-ethiopic-environment-data
          (cdr exit-ethiopic-environment-data)))
 
-  (remove-hook 'quail-activate-hook 'ethio-select-a-translation)
   (remove-hook 'find-file-hook 'ethio-find-file)
   (remove-hook 'write-file-functions 'ethio-write-file)
   (remove-hook 'after-save-hook 'ethio-find-file))
 ;;
 ;; If the filename ends in ".tex", editing is done in fidel
 ;; but file I/O is done in EthioTeX format.
-;;
-;; To automatically convert Ethiopic text to SERA format when sending mail,
-;;   (add-hook 'mail-send-hook 'ethio-fidel-to-sera-mail)
-;;
-;; To automatically convert SERA format to Ethiopic when receiving mail,
-;;   (add-hook 'rmail-show-message-hook 'ethio-sera-to-fidel-mail)
-;;
-;; To automatically convert Ethiopic text to SERA format when posting news,
-;;   (add-hook 'news-inews-hook 'ethio-fidel-to-sera-mail)
 
 ;;
 ;; users' preference
@@ -149,7 +124,7 @@ mark.  All SERA <--> FIDEL converters refer this variable.")
 
 (defvar ethio-quote-vowel-always nil
   "*Non-nil means always put an apostrophe before an isolated vowel (except at word initial) in FIDEL --> SERA conversion.
-If nil, put an apostrophe only between a sixth-form consonant and an
+If nil, put an apostrophe only between a 6th-form consonant and an
 isolated vowel.")
 
 (defvar ethio-W-sixth-always nil
@@ -163,313 +138,98 @@ For example, ({10}{9}{100}{80}{7}) is converted into:
     `109100807     if `ethio-numeric-reduction' is 1,
     `10900807      if `ethio-numeric-reduction' is 2.")
 
-(defvar ethio-implicit-period-conversion t
-  "*Non-nil means replacing the Ethiopic dot at the end of an Ethiopic sentence
-with an Ethiopic full stop.")
-
 (defvar ethio-java-save-lowercase nil
   "*Non-nil means save Ethiopic characters in lowercase hex numbers to Java files.
 If nil, use uppercases.")
 
+(defun ethio-prefer-amharic-p ()
+  (or (eq ethio-primary-language 'amharic)
+      (and (not (eq ethio-primary-language 'tigrigna))
+          (eq ethio-secondary-language 'amharic))))
+
+(defun ethio-prefer-amharic (arg)
+  (if arg
+      (progn
+       (robin-modify-package "ethiopic-sera" "'a" ?አ)
+       (robin-modify-package "ethiopic-sera" "a" "አ")
+       (robin-modify-package "ethiopic-sera" "'A" ?ኣ)
+       (robin-modify-package "ethiopic-sera" "A" "ኣ"))
+    (robin-modify-package "ethiopic-sera" "'A" ?አ)
+    (robin-modify-package "ethiopic-sera" "A" "አ")
+    (robin-modify-package "ethiopic-sera" "'a" ?ኣ)
+    (robin-modify-package "ethiopic-sera" "a" "ኣ")))
+
+(defun ethio-use-colon-for-colon (arg)
+  (if arg
+      (progn
+       (robin-modify-package "ethiopic-sera" ":" ?á¥)
+       (robin-modify-package "ethiopic-sera" "`:" ?á¡))
+    (robin-modify-package "ethiopic-sera" " : " ?á¡)
+    (robin-modify-package "ethiopic-sera" ":" "á¡")
+    (robin-modify-package "ethiopic-sera" "-:" ?á¥)))
+
+(defun ethio-use-three-dot-question (arg)
+  (if arg
+      (progn
+       (robin-modify-package "ethiopic-sera" "?" ?á§)
+       (robin-modify-package "ethiopic-sera" "`?" ??))
+    (robin-modify-package "ethiopic-sera" "?" ??)
+    (robin-modify-package "ethiopic-sera" "`?" ?á§)))
+
+(defun ethio-adjust-robin ()
+  (ethio-prefer-amharic (ethio-prefer-amharic-p))
+  (ethio-use-colon-for-colon ethio-use-colon-for-colon)
+  (ethio-use-three-dot-question ethio-use-three-dot-question))
+
+(add-hook 'robin-activate-hook 'ethio-adjust-robin)
+
 ;;
 ;; SERA to FIDEL
 ;;
 
-(defconst ethio-sera-to-fidel-table
-  [
-   nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-   nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-;;; SP
-   (" "
-    (?: (if ethio-use-colon-for-colon " \e$(3$l\e(B" "\e$(3$h\e(B")
-       (32 (if ethio-use-colon-for-colon " \e$(3$l\e(B " "\e$(3$h\e(B"))
-       (?- " \e$(3$m\e(B")
-       (?: " \e$(3$i\e(B")
-       (?| (if ethio-use-colon-for-colon " \e$(3$l\e(B|" " \e$(3$h\e(B|")
-           (?: " \e$(3$o\e(B"))))
-
-;;; !   "   #   $   %   &    '
-   nil nil nil nil nil nil ("" (?' "\e$(3%s\e(B"))
-;;; (   )   *   +    ,      -               .
-   nil nil nil nil ("\e$(3$j\e(B") ("-" (?: "\e$(3$l\e(B")) ("\e$(3%u\e(B")
-;;;  /   0   1   2   3   4   5   6   7   8   9
-    nil nil nil nil nil nil nil nil nil nil nil
-;;; :
-   ((if ethio-use-colon-for-colon "\e$(3$l\e(B" "\e$(3$h\e(B")
-    (32 (if ethio-use-colon-for-colon "\e$(3$l\e(B " "\e$(3$h\e(B"))
-    (?- "\e$(3$m\e(B")
-    (?: "\e$(3$i\e(B")
-    (?| (if ethio-use-colon-for-colon "\e$(3$l\e(B|" "\e$(3$h\e(B|")
-       (?: "\e$(3$o\e(B")))
-;;;  ;      <              =    >
-   ("\e$(3$k\e(B") ("<" (?< "\e$(3%v\e(B")) nil (">" (?> "\e$(3%w\e(B"))
-;;; ?
-   ((if ethio-use-three-dot-question "\e$(3$n\e(B" "\e$(3%x\e(B"))
-;;; @
-    nil
-;;; A
-   ("\e$(3"f\e(B" (?2 "\e$(3#8\e(B"))
-;;; B
-   ("\e$(3"(\e(B" (?e "\e$(3"#\e(B") (?u "\e$(3"$\e(B") (?i "\e$(3"%\e(B") (?a "\e$(3"&\e(B") (?E "\e$(3"'\e(B") (?o "\e$(3")\e(B")
-         (?W "\e$(3%b\e(B" (?e "\e$(3%2\e(B") (?u "\e$(3%b\e(B") (?i "\e$(3%B\e(B") (?a "\e$(3"*\e(B") (?E "\e$(3%R\e(B")))
-;;; C
-   ("\e$(3$4\e(B" (?e "\e$(3$/\e(B") (?u "\e$(3$0\e(B") (?i "\e$(3$1\e(B") (?a "\e$(3$2\e(B") (?E "\e$(3$3\e(B") (?o "\e$(3$5\e(B")
-         (?W "\e$(3$6\e(B" (?a "\e$(3$6\e(B")
-                  (?e "\e$(3$4%n\e(B") (?u "\e$(3$4%r\e(B") (?i "\e$(3$4%o\e(B") (?E "\e$(3$4%q\e(B")))
-;;; D
-   ("\e$(3#b\e(B" (?e "\e$(3#]\e(B") (?u "\e$(3#^\e(B") (?i "\e$(3#_\e(B") (?a "\e$(3#`\e(B") (?E "\e$(3#a\e(B") (?o "\e$(3#c\e(B")
-         (?W "\e$(3#d\e(B" (?a "\e$(3#d\e(B")
-                  (?e "\e$(3#b%n\e(B") (?u "\e$(3#b%r\e(B") (?i "\e$(3#b%o\e(B") (?E "\e$(3#b%q\e(B")))
-;;; E
-   ("\e$(3"g\e(B" (?2 "\e$(3#9\e(B"))
-;;; F
-   ("\e$(3$T\e(B" (?e "\e$(3$O\e(B") (?u "\e$(3$P\e(B") (?i "\e$(3$Q\e(B") (?a "\e$(3$R\e(B") (?E "\e$(3$S\e(B") (?o "\e$(3$U\e(B")
-         (?W "\e$(3%d\e(B" (?e "\e$(3%4\e(B") (?u "\e$(3%d\e(B") (?i "\e$(3%D\e(B") (?a "\e$(3$V\e(B") (?E "\e$(3%T\e(B"))
-        (?Y "\e$(3$a\e(B" (?a "\e$(3$a\e(B")))
-;;; G
-   ("\e$(3$$\e(B" (?e "\e$(3#}\e(B") (?u "\e$(3#~\e(B") (?i "\e$(3$!\e(B") (?a "\e$(3$"\e(B") (?E "\e$(3$#\e(B") (?o "\e$(3$%\e(B")
-         (?W "\e$(3%c\e(B" (?e "\e$(3%3\e(B") (?u "\e$(3%c\e(B") (?i "\e$(3%C\e(B") (?a "\e$(3$&\e(B") (?E "\e$(3%S\e(B")))
-;;; H
-   ("\e$(3!6\e(B" (?e "\e$(3!1\e(B") (?u "\e$(3!2\e(B") (?i "\e$(3!3\e(B") (?a "\e$(3!4\e(B") (?E "\e$(3!5\e(B") (?o "\e$(3!7\e(B")
-         (?W "\e$(3!8\e(B" (?a "\e$(3!8\e(B")
-                  (?e "\e$(3!6%n\e(B") (?u "\e$(3!6%r\e(B") (?i "\e$(3!6%o\e(B") (?E "\e$(3!6%q\e(B")))
-;;; I
-   ("\e$(3"h\e(B" (?2 "\e$(3#:\e(B"))
-;;; J
-   ("\e$(3#j\e(B" (?e "\e$(3#e\e(B") (?u "\e$(3#f\e(B") (?i "\e$(3#g\e(B") (?a "\e$(3#h\e(B") (?E "\e$(3#i\e(B") (?o "\e$(3#k\e(B")
-         (?W "\e$(3#l\e(B" (?a "\e$(3#l\e(B")
-                 (?e "\e$(3#j%n\e(B") (?u "\e$(3#j%r\e(B") (?i "\e$(3#j%o\e(B") (?E "\e$(3#j%q\e(B")))
-;;; K
-   ("\e$(3#"\e(B" (?e "\e$(3"{\e(B") (?u "\e$(3"|\e(B") (?i "\e$(3"}\e(B") (?a "\e$(3"~\e(B") (?E "\e$(3#!\e(B") (?o "\e$(3##\e(B")
-         (?W "\e$(3#*\e(B" (?e "\e$(3#%\e(B") (?u "\e$(3#*\e(B") (?i "\e$(3#'\e(B") (?a "\e$(3#(\e(B") (?E "\e$(3#)\e(B")))
-;;; L
-   ("\e$(3!.\e(B" (?e "\e$(3!)\e(B") (?u "\e$(3!*\e(B") (?i "\e$(3!+\e(B") (?a "\e$(3!,\e(B") (?E "\e$(3!-\e(B") (?o "\e$(3!/\e(B")
-         (?W "\e$(3!0\e(B" (?a "\e$(3!0\e(B")
-                  (?e "\e$(3!.%n\e(B") (?u "\e$(3!.%r\e(B") (?i "\e$(3!.%o\e(B") (?E "\e$(3!.%q\e(B")))
-;;; M
-   ("\e$(3!>\e(B" (?e "\e$(3!9\e(B") (?u "\e$(3!:\e(B") (?i "\e$(3!;\e(B") (?a "\e$(3!<\e(B") (?E "\e$(3!=\e(B") (?o "\e$(3!?\e(B")
-         (?W "\e$(3%a\e(B" (?e "\e$(3%1\e(B") (?u "\e$(3%a\e(B") (?i "\e$(3%A\e(B") (?a "\e$(3!@\e(B") (?E "\e$(3%Q\e(B"))
-        (?Y "\e$(3$_\e(B" (?a "\e$(3$_\e(B")))
-;;; N
-   ("\e$(3"`\e(B" (?e "\e$(3"[\e(B") (?u "\e$(3"\\e(B") (?i "\e$(3"]\e(B") (?a "\e$(3"^\e(B") (?E "\e$(3"_\e(B") (?o "\e$(3"a\e(B")
-         (?W "\e$(3"b\e(B" (?a "\e$(3"b\e(B")
-                  (?e "\e$(3"`%n\e(B") (?u "\e$(3"`%r\e(B") (?i "\e$(3"`%o\e(B") (?E "\e$(3"`%q\e(B")))
-;;; O
-   ("\e$(3"i\e(B" (?2 "\e$(3#;\e(B"))
-;;; P
-   ("\e$(3$<\e(B" (?e "\e$(3$7\e(B") (?u "\e$(3$8\e(B") (?i "\e$(3$9\e(B") (?a "\e$(3$:\e(B") (?E "\e$(3$;\e(B") (?o "\e$(3$=\e(B")
-         (?W "\e$(3$>\e(B" (?a "\e$(3$>\e(B")
-                  (?e "\e$(3$<%n\e(B") (?u "\e$(3$<%r\e(B") (?i "\e$(3$<%o\e(B") (?E "\e$(3$<%q\e(B")))
-;;; Q
-   ("\e$(3!v\e(B" (?e "\e$(3!q\e(B") (?u "\e$(3!r\e(B") (?i "\e$(3!s\e(B") (?a "\e$(3!t\e(B") (?E "\e$(3!u\e(B") (?o "\e$(3!w\e(B")
-         (?W "\e$(3!~\e(B" (?e "\e$(3!y\e(B") (?u "\e$(3!~\e(B") (?i "\e$(3!{\e(B") (?a "\e$(3!|\e(B") (?E "\e$(3!}\e(B")))
-;;; R
-   ("\e$(3!N\e(B" (?e "\e$(3!I\e(B") (?u "\e$(3!J\e(B") (?i "\e$(3!K\e(B") (?a "\e$(3!L\e(B") (?E "\e$(3!M\e(B") (?o "\e$(3!O\e(B")
-         (?W "\e$(3!P\e(B" (?a "\e$(3!P\e(B")
-                 (?e "\e$(3!N%n\e(B") (?u "\e$(3!N%r\e(B") (?i "\e$(3!N%o\e(B") (?E "\e$(3!N%q\e(B"))
-         (?Y "\e$(3$`\e(B" (?a "\e$(3$`\e(B")))
-;;; S
-   ("\e$(3$D\e(B" (?e "\e$(3$?\e(B") (?u "\e$(3$@\e(B") (?i "\e$(3$A\e(B") (?a "\e$(3$B\e(B") (?E "\e$(3$C\e(B") (?o "\e$(3$E\e(B")
-         (?W "\e$(3$F\e(B" (?a "\e$(3$F\e(B")
-                  (?e "\e$(3$D%n\e(B") (?u "\e$(3$D%r\e(B") (?i "\e$(3$D%o\e(B") (?E "\e$(3$D%q\e(B"))
-        (?2 "\e$(3$L\e(B"
-            (?e "\e$(3$G\e(B") (?u "\e$(3$H\e(B") (?i "\e$(3$I\e(B") (?a "\e$(3$J\e(B") (?E "\e$(3$K\e(B") (?o "\e$(3$M\e(B")
-            (?W "\e$(3$F\e(B" (?a "\e$(3$F\e(B")
-                (?e "\e$(3$L%n\e(B") (?u "\e$(3$L%r\e(B") (?i "\e$(3$L%o\e(B") (?E "\e$(3$L%q\e(B"))))
-;;; T
-   ("\e$(3$,\e(B" (?e "\e$(3$'\e(B") (?u "\e$(3$(\e(B") (?i "\e$(3$)\e(B") (?a "\e$(3$*\e(B") (?E "\e$(3$+\e(B") (?o "\e$(3$-\e(B")
-         (?W "\e$(3$.\e(B" (?a "\e$(3$.\e(B")
-                 (?e "\e$(3$,%n\e(B") (?u "\e$(3$,%r\e(B") (?i "\e$(3$,%o\e(B") (?E "\e$(3$,%q\e(B")))
-;;; U
-   ("\e$(3"d\e(B" (?2 "\e$(3#6\e(B"))
-;;; V
-   ("\e$(3"0\e(B" (?e "\e$(3"+\e(B") (?u "\e$(3",\e(B") (?i "\e$(3"-\e(B") (?a "\e$(3".\e(B") (?E "\e$(3"/\e(B") (?o "\e$(3"1\e(B")
-         (?W "\e$(3"2\e(B" (?a "\e$(3"2\e(B")
-                 (?e "\e$(3"0%n\e(B") (?u "\e$(3"0%r\e(B") (?i "\e$(3"0%o\e(B") (?E "\e$(3"0%q\e(B")))
-;;; W
-   ("\e$(3%r\e(B" (?e "\e$(3%n\e(B") (?u "\e$(3%r\e(B") (?i "\e$(3%o\e(B") (?a "\e$(3%p\e(B") (?E "\e$(3%q\e(B"))
-;;; X
-   ("\e$(3%N\e(B" (?e "\e$(3%I\e(B") (?u "\e$(3%J\e(B") (?i "\e$(3%K\e(B") (?a "\e$(3%L\e(B") (?E "\e$(3%M\e(B") (?o "\e$(3%O\e(B"))
-;;; Y
-   ("\e$(3#R\e(B" (?e "\e$(3#M\e(B") (?u "\e$(3#N\e(B") (?i "\e$(3#O\e(B") (?a "\e$(3#P\e(B") (?E "\e$(3#Q\e(B") (?o "\e$(3#S\e(B")
-         (?W "\e$(3#T\e(B" (?a "\e$(3#T\e(B")
-                 (?e "\e$(3#R%n\e(B") (?u "\e$(3#R%r\e(B") (?i "\e$(3#R%o\e(B") (?E "\e$(3#R%q\e(B")))
-;;; Z
-   ("\e$(3#J\e(B" (?e "\e$(3#E\e(B") (?u "\e$(3#F\e(B") (?i "\e$(3#G\e(B") (?a "\e$(3#H\e(B") (?E "\e$(3#I\e(B") (?o "\e$(3#K\e(B")
-         (?W "\e$(3#L\e(B" (?a "\e$(3#L\e(B")
-                 (?e "\e$(3#J%n\e(B") (?u "\e$(3#J%r\e(B") (?i "\e$(3#J%o\e(B") (?E "\e$(3#J%q\e(B")))
-;;; [   \   ]   ^   _
-   nil nil nil nil nil
-;;; `
-   (""
-    (?: "\e$(3$h\e(B")
-    (?? (if ethio-use-three-dot-question "\e$(3%x\e(B" "\e$(3$n\e(B"))
-    (?! "\e$(3%t\e(B")
-    (?e "\e$(3#5\e(B") (?u "\e$(3#6\e(B") (?U "\e$(3#6\e(B") (?i "\e$(3#7\e(B") (?a "\e$(3#8\e(B") (?A "\e$(3#8\e(B")
-        (?E "\e$(3#9\e(B") (?I "\e$(3#:\e(B") (?o "\e$(3#;\e(B") (?O "\e$(3#;\e(B")
-    (?g "\e$(3%^\e(B"
-        (?e "\e$(3%Y\e(B") (?u "\e$(3%Z\e(B") (?i "\e$(3%[\e(B") (?a "\e$(3%\\e(B") (?E "\e$(3%]\e(B") (?o "\e$(3%_\e(B"))
-    (?h "\e$(3"H\e(B"
-        (?e "\e$(3"C\e(B") (?u "\e$(3"D\e(B") (?i "\e$(3"E\e(B") (?a "\e$(3"F\e(B") (?E "\e$(3"G\e(B") (?o "\e$(3"I\e(B")
-                 (?W "\e$(3"P\e(B" (?e "\e$(3"K\e(B") (?u "\e$(3"P\e(B") (?i "\e$(3"M\e(B") (?a "\e$(3"N\e(B") (?E "\e$(3"O\e(B")))
-    (?k "\e$(3%>\e(B"
-        (?e "\e$(3%9\e(B") (?u "\e$(3%:\e(B") (?i "\e$(3%;\e(B") (?a "\e$(3%<\e(B") (?E "\e$(3%=\e(B") (?o "\e$(3%?\e(B"))
-    (?s "\e$(3!F\e(B"
-        (?e "\e$(3!A\e(B") (?u "\e$(3!B\e(B") (?i "\e$(3!C\e(B") (?a "\e$(3!D\e(B") (?E "\e$(3!E\e(B") (?o "\e$(3!G\e(B")
-       (?W "\e$(3!H\e(B" (?a "\e$(3!H\e(B")
-                  (?e "\e$(3!F%n\e(B") (?u "\e$(3!F%r\e(B") (?i "\e$(3!F%o\e(B") (?E "\e$(3!F%q\e(B")))
-    (?S "\e$(3$L\e(B"
-       (?e "\e$(3$G\e(B") (?u "\e$(3$H\e(B") (?i "\e$(3$I\e(B") (?a "\e$(3$J\e(B") (?E "\e$(3$K\e(B") (?o "\e$(3$M\e(B")
-       (?W "\e$(3$F\e(B" (?a "\e$(3$F\e(B")
-                (?e "\e$(3$L%n\e(B") (?u "\e$(3$L%r\e(B") (?i "\e$(3$L%o\e(B") (?E "\e$(3$L%q\e(B")))
-    (?q "\e$(3%.\e(B" (?e "\e$(3%)\e(B") (?u "\e$(3%*\e(B") (?i "\e$(3%+\e(B") (?a "\e$(3%,\e(B") (?E "\e$(3%-\e(B") (?o "\e$(3%/\e(B")))
-;;; a
-   ("\e$(3"f\e(B" (?2 "\e$(3#8\e(B"))
-;;; b
-   ("\e$(3"(\e(B" (?e "\e$(3"#\e(B") (?u "\e$(3"$\e(B") (?i "\e$(3"%\e(B") (?a "\e$(3"&\e(B") (?E "\e$(3"'\e(B") (?o "\e$(3")\e(B")
-         (?W "\e$(3%b\e(B" (?e "\e$(3%2\e(B") (?u "\e$(3%b\e(B") (?i "\e$(3%B\e(B") (?a "\e$(3"*\e(B") (?E "\e$(3%R\e(B")))
-;;; c
-   ("\e$(3"@\e(B" (?e "\e$(3";\e(B") (?u "\e$(3"<\e(B") (?i "\e$(3"=\e(B") (?a "\e$(3">\e(B") (?E "\e$(3"?\e(B") (?o "\e$(3"A\e(B")
-         (?W "\e$(3"B\e(B" (?a "\e$(3"B\e(B")
-                 (?e "\e$(3"@%n\e(B") (?u "\e$(3"@%r\e(B") (?i "\e$(3"@%o\e(B") (?E "\e$(3"@%q\e(B")))
-;;; d
-   ("\e$(3#Z\e(B" (?e "\e$(3#U\e(B") (?u "\e$(3#V\e(B") (?i "\e$(3#W\e(B") (?a "\e$(3#X\e(B") (?E "\e$(3#Y\e(B") (?o "\e$(3#[\e(B")
-         (?W "\e$(3#\\e(B" (?a "\e$(3#\\e(B")
-                 (?e "\e$(3#Z%o\e(B") (?u "\e$(3#Z%r\e(B") (?i "\e$(3#Z%p\e(B") (?E "\e$(3#Z%q\e(B")))
-;;; e
-   ("\e$(3"c\e(B" (?2 "\e$(3#5\e(B") (?a "\e$(3"j\e(B"))
-;;; f
-   ("\e$(3$T\e(B" (?e "\e$(3$O\e(B") (?u "\e$(3$P\e(B") (?i "\e$(3$Q\e(B") (?a "\e$(3$R\e(B") (?E "\e$(3$S\e(B") (?o "\e$(3$U\e(B")
-         (?W "\e$(3%d\e(B" (?e "\e$(3%4\e(B") (?u "\e$(3%d\e(B") (?i "\e$(3%D\e(B") (?a "\e$(3$V\e(B") (?E "\e$(3%T\e(B"))
-        (?Y "\e$(3$a\e(B" (?a "\e$(3$a\e(B")))
-;;; g
-   ("\e$(3#r\e(B" (?e "\e$(3#m\e(B") (?u "\e$(3#n\e(B") (?i "\e$(3#o\e(B") (?a "\e$(3#p\e(B") (?E "\e$(3#q\e(B") (?o "\e$(3#s\e(B")
-         (?W "\e$(3#z\e(B" (?e "\e$(3#u\e(B") (?u "\e$(3#z\e(B") (?i "\e$(3#w\e(B") (?a "\e$(3#x\e(B") (?E "\e$(3#y\e(B"))
-         (?2 "\e$(3%^\e(B" (?e "\e$(3%Y\e(B") (?u "\e$(3%Z\e(B") (?i "\e$(3%[\e(B") (?a "\e$(3%\\e(B") (?E "\e$(3%]\e(B") (?o "\e$(3%_\e(B")))
-;;; h
-   ("\e$(3!&\e(B" (?e "\e$(3!!\e(B") (?u "\e$(3!"\e(B") (?i "\e$(3!#\e(B") (?a "\e$(3!$\e(B") (?E "\e$(3!%\e(B") (?o "\e$(3!'\e(B")
-         (?W "\e$(3"P\e(B" (?e "\e$(3"K\e(B") (?u "\e$(3"P\e(B") (?i "\e$(3"M\e(B") (?a "\e$(3"N\e(B") (?E "\e$(3"O\e(B"))
-        (?2 "\e$(3"H\e(B" (?e "\e$(3"C\e(B") (?u "\e$(3"D\e(B") (?i "\e$(3"E\e(B") (?a "\e$(3"F\e(B") (?E "\e$(3"G\e(B") (?o "\e$(3"I\e(B")
-                 (?W "\e$(3"P\e(B" (?e "\e$(3"K\e(B") (?u "\e$(3"P\e(B") (?i "\e$(3"M\e(B") (?a "\e$(3"N\e(B") (?E "\e$(3"O\e(B"))))
-;;; i
-   ("\e$(3"e\e(B" (?2 "\e$(3#7\e(B"))
-;;; j
-   ("\e$(3#j\e(B" (?e "\e$(3#e\e(B") (?u "\e$(3#f\e(B") (?i "\e$(3#g\e(B") (?a "\e$(3#h\e(B") (?E "\e$(3#i\e(B") (?o "\e$(3#k\e(B")
-         (?W "\e$(3#l\e(B" (?a "\e$(3#l\e(B")
-                 (?e "\e$(3#j%n\e(B") (?u "\e$(3#j%r\e(B") (?i "\e$(3#j%o\e(B") (?E "\e$(3#j%q\e(B")))
-;;; k
-   ("\e$(3"p\e(B" (?e "\e$(3"k\e(B") (?u "\e$(3"l\e(B") (?i "\e$(3"m\e(B") (?a "\e$(3"n\e(B") (?E "\e$(3"o\e(B") (?o "\e$(3"q\e(B")
-         (?W "\e$(3"x\e(B" (?e "\e$(3"s\e(B") (?u "\e$(3"x\e(B") (?i "\e$(3"u\e(B") (?a "\e$(3"v\e(B") (?E "\e$(3"w\e(B"))
-        (?2 "\e$(3%>\e(B" (?e "\e$(3%9\e(B") (?u "\e$(3%:\e(B") (?i "\e$(3%;\e(B") (?a "\e$(3%<\e(B") (?E "\e$(3%=\e(B") (?o "\e$(3%?\e(B")))
-;;; l
-   ("\e$(3!.\e(B" (?e "\e$(3!)\e(B") (?u "\e$(3!*\e(B") (?i "\e$(3!+\e(B") (?a "\e$(3!,\e(B") (?E "\e$(3!-\e(B") (?o "\e$(3!/\e(B")
-         (?W "\e$(3!0\e(B" (?a "\e$(3!0\e(B")
-                  (?e "\e$(3!.%n\e(B") (?u "\e$(3!.%r\e(B") (?i "\e$(3!.%o\e(B") (?E "\e$(3!.%q\e(B")))
-;;; m
-   ("\e$(3!>\e(B" (?e "\e$(3!9\e(B") (?u "\e$(3!:\e(B") (?i "\e$(3!;\e(B") (?a "\e$(3!<\e(B") (?E "\e$(3!=\e(B") (?o "\e$(3!?\e(B")
-         (?W "\e$(3%a\e(B" (?e "\e$(3%1\e(B") (?u "\e$(3%a\e(B") (?i "\e$(3%A\e(B") (?a "\e$(3!@\e(B") (?E "\e$(3%Q\e(B"))
-        (?Y "\e$(3$_\e(B" (?a "\e$(3$_\e(B")))
-;;; n
-   ("\e$(3"X\e(B" (?e "\e$(3"S\e(B") (?u "\e$(3"T\e(B") (?i "\e$(3"U\e(B") (?a "\e$(3"V\e(B") (?E "\e$(3"W\e(B") (?o "\e$(3"Y\e(B")
-         (?W "\e$(3"Z\e(B" (?a "\e$(3"Z\e(B")
-                 (?e "\e$(3"X%n\e(B") (?u "\e$(3"X%r\e(B") (?i "\e$(3"X%o\e(B") (?E "\e$(3"X%q\e(B")))
-;;; o
-   ("\e$(3"i\e(B" (?2 "\e$(3#;\e(B"))
-;;; p
-   ("\e$(3$\\e(B" (?e "\e$(3$W\e(B") (?u "\e$(3$X\e(B") (?i "\e$(3$Y\e(B") (?a "\e$(3$Z\e(B") (?E "\e$(3$[\e(B") (?o "\e$(3$]\e(B")
-         (?W "\e$(3%e\e(B" (?e "\e$(3%5\e(B") (?u "\e$(3%e\e(B") (?i "\e$(3%E\e(B") (?a "\e$(3$^\e(B") (?E "\e$(3%U\e(B")))
-;;; q
-   ("\e$(3!f\e(B" (?e "\e$(3!a\e(B") (?u "\e$(3!b\e(B") (?i "\e$(3!c\e(B") (?a "\e$(3!d\e(B") (?E "\e$(3!e\e(B") (?o "\e$(3!g\e(B")
-         (?W "\e$(3!n\e(B" (?e "\e$(3!i\e(B") (?u "\e$(3!n\e(B") (?i "\e$(3!k\e(B") (?a "\e$(3!l\e(B") (?E "\e$(3!m\e(B"))
-         (?2 "\e$(3%.\e(B" (?e "\e$(3%)\e(B") (?u "\e$(3%*\e(B") (?i "\e$(3%+\e(B") (?a "\e$(3%,\e(B") (?E "\e$(3%-\e(B") (?o "\e$(3%/\e(B")))
-;;; r
-   ("\e$(3!N\e(B" (?e "\e$(3!I\e(B") (?u "\e$(3!J\e(B") (?i "\e$(3!K\e(B") (?a "\e$(3!L\e(B") (?E "\e$(3!M\e(B") (?o "\e$(3!O\e(B")
-         (?W "\e$(3!P\e(B" (?a "\e$(3!P\e(B")
-                 (?e "\e$(3!N%n\e(B") (?u "\e$(3!N%r\e(B") (?i "\e$(3!N%o\e(B") (?E "\e$(3!N%q\e(B"))
-         (?Y "\e$(3$`\e(B" (?a "\e$(3$`\e(B")))
-;;; s
-   ("\e$(3!V\e(B" (?e "\e$(3!Q\e(B") (?u "\e$(3!R\e(B") (?i "\e$(3!S\e(B") (?a "\e$(3!T\e(B") (?E "\e$(3!U\e(B") (?o "\e$(3!W\e(B")
-         (?W "\e$(3!X\e(B" (?a "\e$(3!X\e(B")
-                 (?e "\e$(3!V%n\e(B") (?u "\e$(3!V%r\e(B") (?i "\e$(3!V%o\e(B") (?E "\e$(3!V%q\e(B"))
-        (?2 "\e$(3!F\e(B" (?e "\e$(3!A\e(B") (?u "\e$(3!B\e(B") (?i "\e$(3!C\e(B") (?a "\e$(3!D\e(B") (?E "\e$(3!E\e(B") (?o "\e$(3!G\e(B")
-                 (?W "\e$(3!H\e(B" (?a "\e$(3!H\e(B")
-                          (?e "\e$(3!F%n\e(B") (?u "\e$(3!F%r\e(B") (?i "\e$(3!F%o\e(B") (?E "\e$(3!F%q\e(B"))))
-;;; t
-   ("\e$(3"8\e(B" (?e "\e$(3"3\e(B") (?u "\e$(3"4\e(B") (?i "\e$(3"5\e(B") (?a "\e$(3"6\e(B") (?E "\e$(3"7\e(B") (?o "\e$(3"9\e(B")
-         (?W "\e$(3":\e(B" (?a "\e$(3":\e(B")
-                 (?e "\e$(3"8%n\e(B") (?u "\e$(3"8%r\e(B") (?i "\e$(3"8%o\e(B") (?E "\e$(3"8%q\e(B")))
-;;; u
-   ("\e$(3"d\e(B" (?2 "\e$(3#6\e(B"))
-;;; v
-   ("\e$(3"0\e(B" (?e "\e$(3"+\e(B") (?u "\e$(3",\e(B") (?i "\e$(3"-\e(B") (?a "\e$(3".\e(B") (?E "\e$(3"/\e(B") (?o "\e$(3"1\e(B")
-         (?W "\e$(3"2\e(B" (?a "\e$(3"2\e(B")
-                 (?e "\e$(3"0%n\e(B") (?u "\e$(3"0%r\e(B") (?i "\e$(3"0%o\e(B") (?E "\e$(3"0%q\e(B")))
-;;; w
-   ("\e$(3#2\e(B" (?e "\e$(3#-\e(B") (?u "\e$(3#.\e(B") (?i "\e$(3#/\e(B") (?a "\e$(3#0\e(B") (?E "\e$(3#1\e(B") (?o "\e$(3#3\e(B")
-         (?W "\e$(3%p\e(B" (?e "\e$(3%n\e(B") (?u "\e$(3%r\e(B") (?i "\e$(3%o\e(B") (?a "\e$(3%p\e(B") (?E "\e$(3%q\e(B")))
-;;; x
-   ("\e$(3!^\e(B" (?e "\e$(3!Y\e(B") (?u "\e$(3!Z\e(B") (?i "\e$(3![\e(B") (?a "\e$(3!\\e(B") (?E "\e$(3!]\e(B") (?o "\e$(3!_\e(B")
-         (?W "\e$(3!`\e(B" (?a "\e$(3!`\e(B")
-                 (?e "\e$(3!^%n\e(B") (?u "\e$(3!^%r\e(B") (?i "\e$(3!^%o\e(B") (?E "\e$(3!^%q\e(B")))
-;;; y
-   ("\e$(3#R\e(B" (?e "\e$(3#M\e(B") (?u "\e$(3#N\e(B") (?i "\e$(3#O\e(B") (?a "\e$(3#P\e(B") (?E "\e$(3#Q\e(B") (?o "\e$(3#S\e(B")
-         (?W "\e$(3#T\e(B" (?a "\e$(3#T\e(B")
-                 (?e "\e$(3#R%n\e(B") (?u "\e$(3#R%r\e(B") (?i "\e$(3#R%o\e(B") (?E "\e$(3#R%q\e(B")))
-;;; z
-   ("\e$(3#B\e(B" (?e "\e$(3#=\e(B") (?u "\e$(3#>\e(B") (?i "\e$(3#?\e(B") (?a "\e$(3#@\e(B") (?E "\e$(3#A\e(B") (?o "\e$(3#C\e(B")
-         (?W "\e$(3#D\e(B" (?a "\e$(3#D\e(B")
-                 (?e "\e$(3#B%n\e(B") (?u "\e$(3#B%r\e(B") (?i "\e$(3#B%o\e(B") (?E "\e$(3#B%q\e(B")))
-;;; {   |   }   ~  DEL
-   nil nil nil nil nil
-   ])
-
-;; To avoid byte-compiler warnings.  It should never be set globally.
-(defvar ethio-sera-being-called-by-w3)
-;; This variable will be bound by some third-party package.
-(defvar sera-being-called-by-w3)
-
 ;;;###autoload
-(defun ethio-sera-to-fidel-region (beg end &optional secondary force)
-  "Convert the characters in region from SERA to FIDEL.
-The variable `ethio-primary-language' specifies the primary language
-and `ethio-secondary-language' specifies the secondary.
+(defun ethio-sera-to-fidel-buffer (&optional secondary force)
+  "Convert the current buffer from SERA to FIDEL.
+
+The variable `ethio-primary-language' specifies the primary
+language and `ethio-secondary-language' specifies the secondary.
 
-If the 3rd parameter SECONDARY is given and non-nil, assume the region
-begins with the secondary language; otherwise with the primary
-language.
+If the 1st optional argument SECONDARY is non-nil, assume the
+buffer begins with the secondary language; otherwise with the
+primary language.
 
-If the 4th parameter FORCE is given and non-nil, perform conversion
+If the 2nd optional argument FORCE is non-nil, perform conversion
 even if the buffer is read-only.
 
 See also the descriptions of the variables
-`ethio-use-colon-for-colon' and
-`ethio-use-three-dot-question'."
+`ethio-use-colon-for-colon' and `ethio-use-three-dot-question'."
 
-  (interactive "r\nP")
-  (save-restriction
-    (narrow-to-region beg end)
-    (ethio-sera-to-fidel-buffer secondary force)))
+  (interactive "P")
+  (ethio-sera-to-fidel-region (point-min) (point-max) secondary force))
+
+;; To avoid byte-compiler warnings.  It should never be set globally.
+(defvar ethio-sera-being-called-by-w3)
+;; This variable will be bound by some third-party package.
+(defvar sera-being-called-by-w3)
 
 ;;;###autoload
-(defun ethio-sera-to-fidel-buffer (&optional secondary force)
-  "Convert the current buffer from SERA to FIDEL.
+(defun ethio-sera-to-fidel-region (begin end &optional secondary force)
+  "Convert the characters in region from SERA to FIDEL.
 
 The variable `ethio-primary-language' specifies the primary
 language and `ethio-secondary-language' specifies the secondary.
 
-If the 1st optional parameter SECONDARY is non-nil, assume the buffer
-begins with the secondary language; otherwise with the primary
-language.
+If the 3rd argument SECONDARY is given and non-nil, assume the
+region begins with the secondary language; otherwise with the
+primary language.
 
-If the 2nd optional parametr FORCE is non-nil, perform conversion even if the
-buffer is read-only.
+If the 4th argument FORCE is given and non-nil, perform
+conversion even if the buffer is read-only.
 
 See also the descriptions of the variables
-`ethio-use-colon-for-colon' and
-`ethio-use-three-dot-question'."
-
-  (interactive "P")
+`ethio-use-colon-for-colon' and `ethio-use-three-dot-question'."
 
+  (interactive "r\nP")
   (if (and buffer-read-only
           (not force)
           (not (y-or-n-p "Buffer is read-only.  Force to convert? ")))
@@ -477,219 +237,165 @@ See also the descriptions of the variables
 
   (let ((ethio-primary-language ethio-primary-language)
        (ethio-secondary-language ethio-secondary-language)
-       (ethio-use-colon-for-colon ethio-use-colon-for-colon)
-       (ethio-use-three-dot-question ethio-use-three-dot-question)
-       ;; The above four variables may be changed temporary
-       ;; by tilde escapes during conversion.  So we bind them to other
-       ;; variables but of the same names.
+       ;; The above two variables may be changed temporarily by tilde
+       ;; escapes during conversion.  We bind them to the variables
+       ;; of the same names so that the original values are restored
+       ;; when this function exits.
        (buffer-read-only nil)
-       (case-fold-search nil)
-       current-language
-       next-language)
+       (lang (if secondary ethio-secondary-language ethio-primary-language))
+       ret)
 
-    (setq current-language
-         (if secondary
-             ethio-secondary-language
-           ethio-primary-language))
+    (ethio-use-colon-for-colon ethio-use-colon-for-colon)
+    (ethio-use-three-dot-question ethio-use-three-dot-question)
 
-    (goto-char (point-min))
-
-    (while (not (eobp))
-      (setq next-language
-           (cond
-            ((eq current-language 'english)
-             (ethio-sera-to-fidel-english))
-            ((eq current-language 'amharic)
-             (ethio-sera-to-fidel-ethio 'amharic))
-            ((eq current-language 'tigrigna)
-             (ethio-sera-to-fidel-ethio 'tigrigna))
-            (t                         ; we don't know what to do
-             (ethio-sera-to-fidel-english))))
-
-      (setq current-language
-           (cond
-
-            ;; when language tag is explicitly specified
-            ((not (eq next-language 'toggle))
-             next-language)
-
-            ;; found a toggle in a primary language section
-            ((eq current-language ethio-primary-language)
-             ethio-secondary-language)
-
-            ;; found a toggle in a secondary, third, fourth, ...
-            ;; language section
-            (t
-             ethio-primary-language))))
-
-    ;; If ethio-implicit-period-conversion is non-nil, the
-    ;; Ethiopic dot "\e$(3%u\e(B" at the end of an Ethiopic sentence is
-    ;; replaced with the Ethiopic full stop "\e$(3$i\e(B".
-    (if ethio-implicit-period-conversion
-       (progn
-         (goto-char (point-min))
-         (while (re-search-forward "\\([\e$(3!!\e(B-\e$(3$a%)\e(B-\e$(3%e%n\e(B-\e$(3%r%s\e(B]\\)\e$(3%u\e(B\\([ \t]\\)"
-                                   nil t)
-           (replace-match "\\1\e$(3$i\e(B\\2"))
-         (goto-char (point-min))
-         (while (re-search-forward "\\([\e$(3!!\e(B-\e$(3$a%)\e(B-\e$(3%e%n\e(B-\e$(3%r%s\e(B]\\)\e$(3%u\e(B$" nil t)
-           (replace-match "\\1\e$(3$i\e(B"))))
-
-    ;; gemination
-    (goto-char (point-min))
-    (while (re-search-forward "\\ce\e$(3%s\e(B" nil 0)
-      (compose-region
-       (save-excursion (backward-char 2) (point))
-       (point)))
-    ))
-
-(defun ethio-sera-to-fidel-english nil
-  "Handle English section in SERA to FIDEL conversion.
-Conversion stops when a language switch is found.  Then delete that
-switch and return the name of the new language as a symbol."
-  (let ((new-language nil))
-
-    (while (and (not (eobp)) (null new-language))
-      (cond
-
-       ;; if no more "\", nothing to do.
-       ((not (search-forward "\\" nil 0)))
-
-       ;; hereafter point is put after a "\".
-       ;; first delete that "\", then check the following chars
-
-       ;; "\\" :  leave the second "\"
-       ((progn
-         (delete-backward-char 1)
-         (= (following-char) ?\\ ))
-       (forward-char 1))
-
-       ;; "\ " :  delete the following " "
-       ((= (following-char) 32)
-       (delete-char 1)
-       (setq new-language 'toggle))
-
-       ;; a language flag
-       ((setq new-language (ethio-process-language-flag)))
-
-       ;; just a "\" :  not special sequence.
-       (t
-       (setq new-language 'toggle))))
+    (save-restriction
+      (narrow-to-region begin end)
+      (goto-char (point-min))
+      (while (not (eobp))
+       (setq ret
+             (cond
+              ((eq lang 'amharic)
+               (ethio-prefer-amharic t)
+               (ethio-sera-to-fidel-region-ethio 'amharic))
+              ((eq lang 'tigrigna)
+               (ethio-prefer-amharic nil)
+               (ethio-sera-to-fidel-region-ethio 'tigrigna))
+              (t
+               (ethio-sera-to-fidel-region-noethio))))
+       (setq lang
+             (if (eq ret 'toggle)
+                 (if (eq lang ethio-primary-language)
+                     ethio-secondary-language
+                   ethio-primary-language)
+               ret)))))
+
+  ;; Restore user's preference.
+  (ethio-adjust-robin))
+
+(defun ethio-sera-to-fidel-region-noethio ()
+  "Return next language as symbol: amharic, tigrigna, toggle or nil."
+  (let (lflag)
+    (cond
 
-    new-language))
+     ;; No more "\", i.e. nothing to do.
+     ((not (search-forward "\\" nil 0))
+      nil)
 
-(defun ethio-sera-to-fidel-ethio (lang)
-  "Handle Ethiopic section in SERA to FIDEL conversion.
-Conversion stops when a language switch is found.  Then delete that
-switch and return the name of the new language as a symbol.
+     ;; Hereafter point is put after a "\".
+     ;; First delete that "\", then check the following chars.
 
-The parameter LANG (symbol, either `amharic' or `tigrigna') affects
-the conversion of \"a\"."
+     ;; A language flag.
+     ((progn (delete-char -1) (setq lflag (ethio-process-language-flag)))
+      lflag)
 
-  (let ((new-language nil)
-       (verbatim nil)
-       start table table2 ch)
+     ;; "\\" : leave the second "\" and continue in the same language.
+     ((= (following-char) ?\\)
+      (forward-char 1)
+      nil)
 
-    (setcar (aref ethio-sera-to-fidel-table ?a)
-           (if (eq lang 'tigrigna) "\e$(3"f\e(B" "\e$(3"c\e(B"))
+     ;; "\ " : delete the following " " and toggle the language.
+     ((= (following-char) 32)
+      (delete-char 1)
+      'toggle)
 
-    (while (and (not (eobp)) (null new-language))
-      (setq ch (following-char))
-      (cond
+     ;; A  "\" but not a special sequence: simply toggle the language.
+     (t
+      'toggle))))
 
-       ;; skip from "<" to ">" (or from "&" to ";") if in w3-mode
-       ((and (or (= ch ?<) (= ch ?&))
-            (or (and (boundp 'ethio-sera-being-called-by-w3)
-                     ethio-sera-being-called-by-w3)
-                (and (boundp 'sera-being-called-by-w3)
-                     sera-being-called-by-w3)))
-       (search-forward (if (= ch ?<) ">" ";")
-                       nil 0))
-
-       ;; leave non-ASCII characters as they are
-       ((>= ch 128)
+(defun ethio-sera-to-fidel-region-ethio (lang)
+  "Return next language as symbol: amharic, tigrigna, toggle or nil."
+  (save-restriction
+    (narrow-to-region
+     (point)
+     (if (re-search-forward "\\(`[1-9][0-9]*\\)\\|[\\<&]" nil t)
+        (match-beginning 0)
+       (point-max)))
+    (robin-convert-region (point-min) (point-max) "ethiopic-sera")
+    (goto-char (point-max)))
+
+  (let (lflag)
+    (cond
+     ((= (following-char) ?`)
+      (delete-char 1)
+      (ethio-process-digits)
+      lang)
+
+     ((looking-at "[<&]")
+      (if (or (and (boundp 'ethio-sera-being-called-by-w3)
+                  ethio-sera-being-called-by-w3)
+             (and (boundp 'sera-being-called-by-w3)
+                  sera-being-called-by-w3))
+         (search-forward (if (= (following-char) ?<) ">" ";") nil 0)
        (forward-char 1))
+      lang)
 
-       ;; ethiopic digits
-       ((looking-at "`[1-9][0-9]*")
-       (delete-char 1)
-       (ethio-convert-digit))
+     ((eobp)
+      nil)
 
-       ;; if not seeing a "\", do sera to fidel conversion
-       ((/= ch ?\\ )
-       (setq start (point))
-       (forward-char 1)
-       (setq table (aref ethio-sera-to-fidel-table ch))
-       (while (setq table2 (cdr (assoc (following-char) table)))
-         (setq table table2)
-         (forward-char 1))
-       (if (setq ch (car table))
-           (progn
-             (delete-region start (point))
-             (if (stringp ch)
-                 (insert ch)
-               (insert (eval ch))))))
+     ;; Now we must be looking at a "\".
+     ;; First delete that "\", then check the following chars.
 
-       ;; if control reaches here, we must be looking at a "\"
+     ((progn (delete-char 1) (= (following-char) 32))
+      (delete-char 1)
+      'toggle)
 
-       ;; verbatim mode
-       (verbatim
-       (if (looking-at "\\\\~! ?")
+     ((looking-at "[,.;:'`?\\]+")
+      (goto-char (match-end 0))
+      lang)
 
-           ;; "\~!" or "\~! ".  switch to non-verbatim mode
-           (progn
-             (replace-match "")
-             (setq verbatim nil))
+     ((/= (following-char) ?~)
+      'toggle)
 
-         ;; "\" but not "\~!" nor "\~! ".  skip the current "\".
-         (forward-char 1)))
+     ;; Now we must be looking at a "~".
 
-       ;; hereafter, non-verbatim mode and looking at a "\"
-       ;; first delete that "\", then check the following chars.
+     ((setq lflag (ethio-process-language-flag))
+      lflag)
 
-       ;; "\ " : delete the following " "
-       ((progn
-         (delete-char 1)
-         (setq ch (following-char))
-         (= ch 32))
-       (delete-char 1)
-       (setq new-language 'toggle))
+     ;; Delete the following "~" and check the following chars.
 
-       ;; "\~!" or "\~! " : switch to verbatim mode
-       ((looking-at "~! ?")
-       (replace-match "")
-       (setq verbatim t))
+     ((progn (delete-char 1) (looking-at "! ?"))
+      (replace-match "")
+      (if (re-search-forward "\\\\~! ?" nil 0)
+         (replace-match ""))
+      lang)
 
-       ;; a language flag
-       ((setq new-language (ethio-process-language-flag)))
+     ((looking-at "-: ?")
+      (replace-match "")
+      (ethio-use-colon-for-colon t)
+      lang)
 
-       ;; "\~" but not "\~!" nor a language flag
-       ((= ch ?~)
-       (delete-char 1)
-       (ethio-tilde-escape))
+     ((looking-at "`: ?")
+      (replace-match "")
+      (ethio-use-colon-for-colon nil)
+      lang)
 
-       ;; ASCII punctuation escape.  skip
-       ((looking-at "\\(,\\|\\.\\|;\\|:\\|'\\|`\\|\?\\|\\\\\\)+")
-       (goto-char (match-end 0)))
+     ((looking-at "`| ?")
+      (replace-match "")
+      (ethio-use-three-dot-question t)
+      lang)
 
-       ;; "\", but not special sequence
-       (t
-       (setq new-language 'toggle))))
+     ((looking-at "\\? ?")
+      (replace-match "")
+      (ethio-use-three-dot-question nil)
+      lang)
 
-    new-language))
+     ;; Unknown tilde escape.  Recover the deleted chars.
+     (t
+      (insert "\\~")
+      lang))))
 
 (defun ethio-process-language-flag nil
   "Process a language flag of the form \"~lang\" or \"~lang1~lang2\".
 
 If looking at \"~lang1~lang2\", set `ethio-primary-language' and
-`ethio-une-secondary-language' based on \"lang1\" and \"lang2\".
+`ethio-secondary-language' based on \"lang1\" and \"lang2\".
 Then delete the language flag \"~lang1~lang2\" from the buffer.
 Return value is the new primary language.
 
-If looking at \"~lang\", delete that language flag \"~lang\" from the
-buffer and return that language.  In this case
-`ethio-primary-language' and `ethio-uni-secondary-language'
-are left unchanged.
+If looking at \"~lang\", delete that language flag \"~lang\" from
+the buffer and return that language.  In this case
+`ethio-primary-language' and `ethio-secondary-language' are left
+unchanged.
 
 If an unsupported language flag is found, just return nil without
 changing anything."
@@ -700,12 +406,8 @@ changing anything."
      ;; ~lang1~lang2
      ((and (looking-at
            "~\\([a-z][a-z][a-z]?\\)~\\([a-z][a-z][a-z]?\\)[ \t\n\\]")
-          (setq lang1
-                (ethio-flag-to-language
-                 (buffer-substring (match-beginning 1) (match-end 1))))
-          (setq lang2
-                (ethio-flag-to-language
-                 (buffer-substring (match-beginning 2) (match-end 2)))))
+          (setq lang1 (ethio-flag-to-language (match-string 1)))
+          (setq lang2 (ethio-flag-to-language (match-string 2))))
       (setq ethio-primary-language lang1
            ethio-secondary-language lang2)
       (delete-region (point) (match-end 2))
@@ -715,9 +417,7 @@ changing anything."
 
      ;; ~lang
      ((and (looking-at "~\\([a-z][a-z][a-z]?\\)[ \t\n\\]")
-          (setq lang1
-                (ethio-flag-to-language
-                 (buffer-substring (match-beginning 1) (match-end 1)))))
+          (setq lang1 (ethio-flag-to-language (match-string 1))))
       (delete-region (point) (match-end 1))
       (if (= (following-char) 32)
          (delete-char 1))
@@ -727,59 +427,6 @@ changing anything."
      (t
       nil))))
 
-(defun ethio-tilde-escape nil
-  "Handle a SERA tilde escape in Ethiopic section and delete it.
-Delete the escape even it is not recognized."
-
-  (let ((p (point)) command)
-    (skip-chars-forward "^ \t\n\\\\")
-    (setq command (buffer-substring p (point)))
-    (delete-region p (point))
-    (if (= (following-char) 32)
-       (delete-char 1))
-
-    (cond
-
-     ;; \~-:
-     ((string= command "-:")
-      (setq ethio-use-colon-for-colon t))
-
-     ;; \~`:
-     ((string= command "`:")
-      (setq ethio-use-colon-for-colon nil))
-
-     ;; \~?
-     ((string= command "?")
-      (setq ethio-use-three-dot-question nil))
-
-     ;; \~`|
-     ((string= command "`|")
-      (setq ethio-use-three-dot-question t))
-
-     ;; \~e
-     ((string= command "e")
-      (insert "\e$(3%j\e(B"))
-
-     ;; \~E
-     ((string= command "E")
-      (insert "\e$(3%k\e(B"))
-
-     ;; \~a
-     ((string= command "a")
-      (insert "\e$(3%l\e(B"))
-
-     ;; \~A
-     ((string= command "A")
-      (insert "\e$(3%m\e(B"))
-
-     ;; \~X
-     ((string= command "X")
-      (insert "\e$(3%i\e(B"))
-
-     ;; unsupported tilde escape
-     (t
-      nil))))
-
 (defun ethio-flag-to-language (flag)
   (cond
    ((or (string= flag "en") (string= flag "eng")) 'english)
@@ -787,7 +434,7 @@ Delete the escape even it is not recognized."
    ((or (string= flag "am") (string= flag "amh")) 'amharic)
    (t nil)))
 
-(defun ethio-convert-digit nil
+(defun ethio-process-digits nil
   "Convert Arabic digits to Ethiopic digits."
   (let (ch z)
     (while (and (>= (setq ch (following-char)) ?1)
@@ -804,97 +451,23 @@ Delete the escape even it is not recognized."
 
        ;; first digit is 10, 20, ..., or 90
        ((= (mod z 2) 1)
-       (insert (aref [?\e$(3$y\e(B ?\e$(3$z\e(B ?\e$(3${\e(B ?\e$(3$|\e(B ?\e$(3$}\e(B ?\e$(3$~\e(B ?\e$(3%!\e(B ?\e$(3%"\e(B ?\e$(3%#\e(B] (- ch ?1)))
+       (insert (aref [?á² ?á³ ?á´ ?áµ ?ᶠ?á· ?Ḡ?á¹ ?áº] (- ch ?1)))
        (setq z (1- z)))
 
        ;; first digit is 2, 3, ..., or 9
        ((/= ch ?1)
-       (insert (aref [?\e$(3$q\e(B ?\e$(3$r\e(B ?\e$(3$s\e(B ?\e$(3$t\e(B ?\e$(3$u\e(B ?\e$(3$v\e(B ?\e$(3$w\e(B ?\e$(3$x\e(B] (- ch ?2))))
+       (insert (aref [?᪠?á« ?ᬠ?á­ ?á® ?ᯠ?á° ?á±] (- ch ?2))))
 
        ;; single 1
        ((= z 0)
-       (insert "\e$(3$p\e(B")))
+       (insert "á©")))
 
       ;; 100
       (if (= (mod z 4) 2)
-         (insert "\e$(3%$\e(B"))
+         (insert "á»"))
 
       ;; 10000
-      (insert-char ?\e$(3%%\e(B (/ z 4)))))
-
-;;;###autoload
-(defun ethio-sera-to-fidel-mail-or-marker (&optional arg)
-  "Execute `ethio-sera-to-fidel-mail' or `ethio-sera-to-fidel-marker' depending on the current major mode.
-If in rmail-mode or in mail-mode, execute the former; otherwise latter."
-
-  (interactive "P")
-  (if (or (eq major-mode 'rmail-mode)
-         (eq major-mode 'mail-mode))
-      (ethio-sera-to-fidel-mail (prefix-numeric-value arg))
-    (ethio-sera-to-fidel-marker arg)))
-
-;;;###autoload
-(defun ethio-sera-to-fidel-mail (&optional arg)
-  "Convert SERA to FIDEL to read/write mail and news.
-
-If the buffer contains the markers \"<sera>\" and \"</sera>\",
-convert the segments between them into FIDEL.
-
-If invoked interactively and there is no marker, convert the subject field
-and the body into FIDEL using `ethio-sera-to-fidel-region'."
-
-  (interactive "p")
-  (let ((buffer-read-only nil)
-       border)
-    (save-excursion
-
-      ;; follow RFC822 rules instead of looking for a fixed separator
-      (rfc822-goto-eoh)
-      (forward-line 1)
-      (setq border (point))
-
-      ;; note that the point is placed at the border
-      (if (or (re-search-forward "^<sera>$" nil t)
-             (progn
-               (goto-char (point-min))
-               (re-search-forward "^Subject: <sera>" border t)))
-
-         ;; there are markers
-         (progn
-           ;; we start with the body so that the border will not change
-           ;; use "^<sera>\n" instead of "^<sera>$" not to leave a blank line
-           (goto-char border)
-           (while (re-search-forward "^<sera>\n" nil t)
-             (replace-match "")
-             (ethio-sera-to-fidel-region
-              (point)
-              (progn
-                (if (re-search-forward "^</sera>\n" nil 0)
-                    (replace-match ""))
-                (point))))
-           ;; now process the subject
-           (goto-char (point-min))
-           (if (re-search-forward "^Subject: <sera>" border t)
-               (ethio-sera-to-fidel-region
-                (progn (delete-backward-char 6) (point))
-                (progn
-                  (if (re-search-forward "</sera>$" (line-end-position) 0)
-                      (replace-match ""))
-                  (point)))))
-
-       ;; in case there are no marks but invoked interactively
-       (if arg
-           (progn
-             (ethio-sera-to-fidel-region border (point-max))
-             (goto-char (point-min))
-             (if (re-search-forward "^Subject: " border t)
-                 (ethio-sera-to-fidel-region (point) (line-end-position))))))
-
-      ;; adjust the rmail marker
-      (if (eq major-mode 'rmail-mode)
-         (set-marker
-          (aref rmail-message-vector (1+ rmail-current-message))
-          (point-max))))))
+      (insert-char ?á¼ (/ z 4)))))
 
 ;;;###autoload
 (defun ethio-sera-to-fidel-marker (&optional force)
@@ -908,10 +481,10 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted."
       (error ""))
   (save-excursion
     (goto-char (point-min))
-    (while (re-search-forward "<sera>" nil t)
+    (while (search-forward "<sera>" nil t)
       (ethio-sera-to-fidel-region
        (point)
-       (if (re-search-forward "</sera>" nil t)
+       (if (search-forward "</sera>" nil t)
           (match-beginning 0)
         (point-max))
        nil
@@ -921,71 +494,6 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted."
 ;; FIDEL to SERA
 ;;
 
-(defconst ethio-fidel-to-sera-map
- [ "he"  "hu"  "hi"  "ha"  "hE"  "h"  "ho"    ""       ;;   0 - 7
-   "le"  "lu"  "li"  "la"  "lE"  "l"  "lo"  "lWa"      ;;   8
-   "He"  "Hu"  "Hi"  "Ha"  "HE"  "H"  "Ho"  "HWa"      ;;  16
-   "me"  "mu"  "mi"  "ma"  "mE"  "m"  "mo"  "mWa"      ;;  24
-  "`se" "`su" "`si" "`sa" "`sE" "`s" "`so" "`sWa"      ;;  32
-   "re"  "ru"  "ri"  "ra"  "rE"  "r"  "ro"  "rWa"      ;;  40
-   "se"  "su"  "si"  "sa"  "sE"  "s"  "so"  "sWa"      ;;  48
-   "xe"  "xu"  "xi"  "xa"  "xE"  "x"  "xo"  "xWa"      ;;  56
-   "qe"  "qu"  "qi"  "qa"  "qE"  "q"  "qo"    ""       ;;  64
-  "qWe"   ""  "qWi" "qWa" "qWE"  "qW'" ""     ""       ;;  72
-   "Qe"  "Qu"  "Qi"  "Qa"  "QE"  "Q"  "Qo"    ""       ;;  80
-  "QWe"   ""  "QWi" "QWa" "QWE"  "QW'" ""     ""       ;;  88
-   "be"  "bu"  "bi"  "ba"  "bE"  "b"  "bo"  "bWa"      ;;  96
-   "ve"  "vu"  "vi"  "va"  "vE"  "v"  "vo"  "vWa"      ;; 104
-   "te"  "tu"  "ti"  "ta"  "tE"  "t"  "to"  "tWa"      ;; 112
-   "ce"  "cu"  "ci"  "ca"  "cE"  "c"  "co"  "cWa"      ;; 120
-  "`he" "`hu" "`hi" "`ha" "`hE" "`h" "`ho"    ""       ;; 128
-  "hWe"   ""  "hWi" "hWa"  "hWE" "hW'" ""     ""       ;; 136
-   "ne"  "nu"  "ni"  "na"  "nE"  "n"  "no"  "nWa"      ;; 144
-   "Ne"  "Nu"  "Ni"  "Na"  "NE"  "N"  "No"  "NWa"      ;; 152
-    "e"   "u"   "i"   "A"   "E"  "I"   "o"   "ea"      ;; 160
-   "ke"  "ku"  "ki"  "ka"  "kE"  "k"  "ko"    ""       ;; 168
-  "kWe"   ""  "kWi" "kWa" "kWE"  "kW'" ""     ""       ;; 176
-   "Ke"  "Ku"  "Ki"  "Ka"  "KE"  "K"  "Ko"    ""       ;; 184
-  "KWe"   ""  "KWi" "KWa" "KWE"  "KW'" ""     ""       ;; 192
-   "we"  "wu"  "wi"  "wa"  "wE"  "w"  "wo"    ""       ;; 200
-   "`e"  "`u"  "`i"  "`a"  "`E" "`I"  "`o"    ""       ;; 208
-   "ze"  "zu"  "zi"  "za"  "zE"  "z"  "zo"  "zWa"      ;; 216
-   "Ze"  "Zu"  "Zi"  "Za"  "ZE"  "Z"  "Zo"  "ZWa"      ;; 224
-   "ye"  "yu"  "yi"  "ya"  "yE"  "y"  "yo"  "yWa"      ;; 232
-   "de"  "du"  "di"  "da"  "dE"  "d"  "do"  "dWa"      ;; 240
-   "De"  "Du"  "Di"  "Da"  "DE"  "D"  "Do"  "DWa"      ;; 248
-   "je"  "ju"  "ji"  "ja"  "jE"  "j"  "jo"  "jWa"      ;; 256
-   "ge"  "gu"  "gi"  "ga"  "gE"  "g"  "go"    ""       ;; 264
-  "gWe"   ""  "gWi" "gWa" "gWE" "gW'"  ""     ""       ;; 272
-   "Ge"  "Gu"  "Gi"  "Ga"  "GE"  "G"  "Go"  "GWa"      ;; 280
-   "Te"  "Tu"  "Ti"  "Ta"  "TE"  "T"  "To"  "TWa"      ;; 288
-   "Ce"  "Cu"  "Ci"  "Ca"  "CE"  "C"  "Co"  "CWa"      ;; 296
-   "Pe"  "Pu"  "Pi"  "Pa"  "PE"  "P"  "Po"  "PWa"      ;; 304
-   "Se"  "Su"  "Si"  "Sa"  "SE"  "S"  "So"  "SWa"      ;; 312
-  "`Se" "`Su" "`Si" "`Sa" "`SE" "`S" "`So"    ""       ;; 320
-   "fe"  "fu"  "fi"  "fa"  "fE"  "f"  "fo"  "fWa"      ;; 328
-   "pe"  "pu"  "pi"  "pa"  "pE"  "p"  "po"  "pWa"      ;; 336
-  "mYa" "rYa" "fYa"   ""    ""   ""    ""     ""       ;; 344
-   " "  " : "  "::"  ","   ";"  "-:"  ":-"   "`?"      ;; 352
-  ":|:"  "1"   "2"   "3"   "4"   "5"   "6"   "7"       ;; 360
-   "8"   "9"   "10"  "20"  "30"  "40" "50"   "60"      ;; 368
-   "70"  "80"  "90" "100" "10000" ""   ""     ""       ;; 376
-  "`qe" "`qu" "`qi" "`qa" "`qE" "`q" "`qo"    ""       ;; 384
-  "mWe" "bWe" "GWe" "fWe" "pWe"  ""    ""     ""       ;; 392
-  "`ke" "`ku" "`ki" "`ka" "`kE" "`k" "`ko"    ""       ;; 400
-  "mWi" "bWi" "GWi" "fWi" "pWi"  ""    ""     ""       ;; 408
-   "Xe"  "Xu"  "Xi"  "Xa"  "XE"  "X"  "Xo"    ""       ;; 416
-  "mWE" "bWE" "GWE" "fWE" "pWE"  ""    ""     ""       ;; 424
-  "`ge" "`gu" "`gi" "`ga" "`gE" "`g" "`go"    ""       ;; 432
-  "mW'" "bW'" "GW'" "fW'" "pW'"  ""    ""     ""       ;; 440
-  "\\~X " "\\~e " "\\~E " "\\~a " "\\~A " "wWe" "wWi" "wWa" ;; 448
-  "wWE" "wW'"  "''"  "`!"  "."  "<<"  ">>"   "?" ])    ;; 456
-
-(defun ethio-prefer-amharic-p nil
-  (or (eq ethio-primary-language 'amharic)
-      (and (not (eq ethio-primary-language 'tigrigna))
-          (eq ethio-secondary-language 'amharic))))
-
 (defun ethio-language-to-flag (lang)
   (cond
    ((eq lang 'english) "eng")
@@ -994,284 +502,142 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted."
    (t "")))
 
 ;;;###autoload
-(defun ethio-fidel-to-sera-region (begin end &optional secondary force)
-  "Replace all the FIDEL characters in the region to the SERA format.
+(defun ethio-fidel-to-sera-buffer (&optional secondary force)
+  "Replace all the FIDEL characters in the current buffer to the SERA format.
 The variable `ethio-primary-language' specifies the primary
 language and `ethio-secondary-language' specifies the secondary.
 
-If the 3dr parameter SECONDARY is given and non-nil, try to convert
-the region so that it begins in the secondary language; otherwise with
-the primary language.
+If the 1st optional argument SECONDARY is non-nil, try to convert the
+region so that it begins with the secondary language; otherwise with the
+primary language.
 
-If the 4th parameter FORCE is given and non-nil, convert even if the
+If the 2nd optional argument FORCE is non-nil, convert even if the
 buffer is read-only.
 
 See also the descriptions of the variables
 `ethio-use-colon-for-colon', `ethio-use-three-dot-question',
 `ethio-quote-vowel-always' and `ethio-numeric-reduction'."
 
-  (interactive "r\nP")
-  (save-restriction
-    (narrow-to-region begin end)
-    (ethio-fidel-to-sera-buffer secondary force)))
+  (interactive "P")
+  (ethio-fidel-to-sera-region (point-min) (point-max) secondary force))
 
 ;;;###autoload
-(defun ethio-fidel-to-sera-buffer (&optional secondary force)
-  "Replace all the FIDEL characters in the current buffer to the SERA format.
+(defun ethio-fidel-to-sera-region (begin end &optional secondary force)
+  "Replace all the FIDEL characters in the region to the SERA format.
+
 The variable `ethio-primary-language' specifies the primary
 language and `ethio-secondary-language' specifies the secondary.
 
-If the 1st optional parameter SECONDARY is non-nil, try to convert the
-region so that it begins in the secondary language; otherwise with the
-primary language.
+If the 3rd argument SECONDARY is given and non-nil, convert
+the region so that it begins with the secondary language; otherwise with
+the primary language.
 
-If the 2nd optional parameter FORCE is non-nil, convert even if the
+If the 4th argument FORCE is given and non-nil, convert even if the
 buffer is read-only.
 
 See also the descriptions of the variables
 `ethio-use-colon-for-colon', `ethio-use-three-dot-question',
 `ethio-quote-vowel-always' and `ethio-numeric-reduction'."
 
-  (interactive "P")
+  (interactive "r\nP")
   (if (and buffer-read-only
           (not force)
           (not (y-or-n-p "Buffer is read-only.  Force to convert? ")))
       (error ""))
 
-  (let ((buffer-read-only nil)
-       (case-fold-search nil)
-       (lonec nil) ;; t means previous char was a lone consonant
-       (fidel nil) ;; t means previous char was a FIDEL
-       (digit nil) ;; t means previous char was an Ethiopic digit
-       (flag (if (ethio-prefer-amharic-p) "\\~amh " "\\~tir "))
-       mode ch)
-
-    ;; user's preference in transcription
-    (if ethio-use-colon-for-colon
-       (progn
-         (aset ethio-fidel-to-sera-map 353 "`:")
-         (aset ethio-fidel-to-sera-map 357 ":"))
-      (aset ethio-fidel-to-sera-map 353 " : ")
-      (aset ethio-fidel-to-sera-map 357 "-:"))
-
-    (if ethio-use-three-dot-question
-       (progn
-         (aset ethio-fidel-to-sera-map 359 "?")
-         (aset ethio-fidel-to-sera-map 463 "`?"))
-      (aset ethio-fidel-to-sera-map 359 "`?")
-      (aset ethio-fidel-to-sera-map 463 "?"))
-
-    (mapc
-     '(lambda (x)
-       (aset (aref ethio-fidel-to-sera-map x)
-             2
-             (if ethio-W-sixth-always ?' ?u)))
-     '(77 93 141 181 197 277 440 441 442 443 444 457))
-
-    (if (ethio-prefer-amharic-p)
-       (aset ethio-fidel-to-sera-map 160 "a")
-      (aset ethio-fidel-to-sera-map 160 "e"))
-    ;; end of user's preference
-
-    ;; first, decompose geminated characters
-    (decompose-region (point-min) (point-max))
-
-    ;; main conversion routine
-    (goto-char (point-min))
-    (while (not (eobp))
-      (setq ch (following-char))
-
-      (cond                            ; ethiopic, english, neutral
-
-       ;; ethiopic character.  must go to ethiopic mode, if not in it.
-       ((eq (char-charset ch) 'ethiopic)
-       (setq ch (ethio-char-to-ethiocode ch))
-       (delete-char 1)
-       (if (not (eq mode 'ethiopic))
-           (progn
-             (insert flag)
-             (setq mode 'ethiopic)))
-
-       (cond                           ; fidel, punc, digit
-
-        ;; fidels
-        ((or (<= ch 346)               ;  he - fYa
-             (and (>= ch 384) (<= ch 444)) ; `qe - pw
-             (and (>= ch 453) (<= ch 457))) ; wWe - wW
-         (if (and (memq ch '(160 161 162 163 164 166 167)) ; (e - ea)
-                  (or lonec
-                      (and ethio-quote-vowel-always
-                           fidel)))
-             (insert "'"))
-         (insert (aref ethio-fidel-to-sera-map ch))
-         (setq lonec (ethio-lone-consonant-p ch)
-               fidel t
-               digit nil))
-
-        ;; punctuations or icons
-        ((or (and (>= ch 353) (<= ch 360)) ;  : - :|:
-             (>= ch 458)               ;  '' -  ?
-             (and (>= ch 448) (<= ch 452))) ;  \~X \~e \~E \~a \~A
-         (insert (aref ethio-fidel-to-sera-map ch))
-         (setq lonec nil
-               fidel nil
-               digit nil))
-
-        ;; now CH must be an ethiopic digit
-
-        ;; reduction = 0 or not preceded by Ethiopic number(s)
-        ((or (= ethio-numeric-reduction 0)
-             (not digit))
-         (insert "`" (aref ethio-fidel-to-sera-map ch))
-         (setq lonec nil
-               fidel nil
-               digit t))
-
-        ;; reduction = 2 and following 10s, 100s, 10000s
-        ((and (= ethio-numeric-reduction 2)
-              (memq ch '(370 379 380)))
-         (insert (substring (aref ethio-fidel-to-sera-map ch) 1))
-         (setq lonec nil
-               fidel nil
-               digit t))
-
-        ;; ordinary following digits
-        (t
-         (insert (aref ethio-fidel-to-sera-map ch))
-         (setq lonec nil
-               fidel nil
-               digit t))))
-
-       ;; english character.  must go to english mode, if not in it.
-       ((or (and (>= ch ?a) (<= ch ?z))
-           (and (>= ch ?A) (<= ch ?Z)))
-       (if (not (eq mode 'english))
-           (insert "\\~eng "))
-       (forward-char 1)
-       (setq mode 'english
-             lonec nil
-             fidel nil
-             digit nil))
+  (save-restriction
+    (narrow-to-region begin end)
 
-       ;; ch can appear both in ethiopic section and in english section.
-       (t
+    (let ((buffer-read-only nil)
+         (mode (if secondary
+                   ethio-secondary-language
+                 ethio-primary-language))
+         (flag (if (ethio-prefer-amharic-p) "\\~amh " "\\~tir "))
+         p ch)
 
-       ;; we must decide the mode, if not decided yet
-       (if (null mode)
+      (goto-char (point-min))
+      (ethio-adjust-robin)
+      (unless (eq mode 'english)
+       (setq mode 'ethiopic))
+      (if (and (eq mode 'english) (looking-at "\\ce"))
+         (setq mode 'ethiopic))
+      (if (and (eq mode 'ethiopic) (looking-at "\\Ce"))
+         (setq mode 'english))
+      (insert (if (eq mode 'english) "\\~eng " flag))
+
+      (while (not (eobp))
+
+       (if (eq mode 'english)
            (progn
-             (setq mode
-                   (if secondary
-                       ethio-secondary-language
-                     ethio-primary-language))
-             (if (eq mode 'english)
-                 (insert "\\~eng ")
+             (if (re-search-forward "\\(\\ce\\|\\\\\\)" nil 0)
+                 (forward-char -1))
+             (cond
+              ((eq (following-char) ?\\)
+               (insert "\\")
+               (forward-char 1))
+              ((looking-at "\\ce")
                (insert flag)
-               (setq mode 'ethiopic)))) ; tigrigna & amharic --> ethiopic
-
-       (cond                           ; \ , eng-mode , punc , w3 , other
+               (setq mode 'ethiopic))))
 
-        ;; backslash is always quoted
-        ((= ch ?\\ )
-         (insert "\\")
-         (forward-char 1))
+         ;; If we reach here, mode is ethiopic.
+         (setq p (point))
+         (if (re-search-forward "[a-z,.;:'`?\\<&]" nil 0)
+             (forward-char -1))
+         (save-restriction
+           (narrow-to-region p (point))
+           (robin-invert-region (point-min) (point-max) "ethiopic-sera")
 
-        ;; nothing to do if in english mode
-        ((eq mode 'english)
-         (forward-char 1))
-
-        ;; now we must be in ethiopic mode and seeing a non-"\"
-
-        ;; ascii punctuations in ethiopic mode
-        ((looking-at "[,.;:'`?]+")
-         (insert "\\")
-         (goto-char (1+ (match-end 0)))) ; because we inserted one byte (\)
-
-        ;; skip from "<" to ">" (or from "&" to ";") if called from w3
-        ((and (or (= ch ?<) (= ch ?&))
-              (or (and (boundp 'ethio-sera-being-called-by-w3)
-                       ethio-sera-being-called-by-w3)
-                  (and (boundp 'sera-being-called-by-w3)
-                       sera-being-called-by-w3)))
-         (search-forward (if (= ch ?<) ">" ";")
-                         nil 0))
-
-        ;; neutral character.  no need to quote.  just skip it.
-        (t
-         (forward-char 1)))
-
-       (setq lonec nil
-             fidel nil
-             digit nil)))
-    ;; end of main conversion routine
-    )))
-
-(defun ethio-lone-consonant-p (ethiocode)
-  "If ETHIOCODE is an Ethiopic lone consonant, return t."
-  (or (and (< ethiocode 344) (= (% ethiocode 8) 5))
-
-      ;;                     `q  `k   X  `g  mW  bW  GW  fW  pW  wW
-      (memq ethiocode '(389 405 421 437 440 441 442 443 444 457))))
-
-;;;###autoload
-(defun ethio-fidel-to-sera-mail-or-marker (&optional arg)
-  "Execute `ethio-fidel-to-sera-mail' or `ethio-fidel-to-sera-marker' depending on the current major mode.
-If in rmail-mode or in mail-mode, execute the former; otherwise latter."
-
-  (interactive "P")
-  (if (or (eq major-mode 'rmail-mode)
-         (eq major-mode 'mail-mode))
-      (ethio-fidel-to-sera-mail)
-    (ethio-fidel-to-sera-marker arg)))
-
-;;;###autoload
-(defun ethio-fidel-to-sera-mail nil
-  "Convert FIDEL to SERA to read/write mail and news.
-
-If the body contains at least one Ethiopic character,
- 1) insert the string \"<sera>\" at the beginning of the body,
- 2) insert \"</sera>\" at the end of the body, and
- 3) convert the body into SERA.
-
-The very same procedure applies to the subject field, too."
-
-  (interactive)
-  (let ((buffer-read-only nil)
-       border)
-    (save-excursion
-
-      ;; follow RFC822 rules instead of looking for a fixed separator
-      (rfc822-goto-eoh)
-      (forward-line 1)
-      (setq border (point))
-
-      ;; process body first not to change the border
-      ;; note that the point is already at the border
-      (if (re-search-forward "\\ce" nil t)
-         (progn
-           (ethio-fidel-to-sera-region border (point-max))
-           (goto-char border)
-           (insert "<sera>")
-           (goto-char (point-max))
-           (insert "</sera>")))
+           ;; ethio-quote-vowel-alwyas
+           (goto-char (point-min))
+           (while (re-search-forward "'[eauio]" nil t)
+             (save-excursion
+               (forward-char -2)
+               (setq ch (preceding-char))
+               (if (or (and (>= ch ?a) (<= ch ?z))
+                       (and (>= ch ?A) (<= ch ?Z)))
+                   (if (and (not ethio-quote-vowel-always)
+                            (memq ch '(?e ?a ?u ?i ?o ?E ?A ?I)))
+                       (delete-char 1))
+                 (delete-char 1))))
+
+           ;; ethio-W-sixth-always
+           (unless ethio-W-sixth-always
+             (goto-char (point-min))
+             (while (search-forward "W'" nil t)
+               (delete-char -1)
+               (insert "u")))
 
-      ;; process subject
-      (goto-char (point-min))
-      (if (re-search-forward "^Subject: " border t)
-         (let ((beg (point))
-               (end (line-end-position)))
-           (if (re-search-forward "\\ce" end t)
-               (progn
-                 (ethio-fidel-to-sera-region beg end)
-                 (goto-char beg)
-                 (insert "<sera>")
-                 (end-of-line)
-                 (insert "</sera>")))))
-
-      ;; adjust the rmail marker
-      (if (eq major-mode 'rmail-mode)
-         (set-marker
-          (aref rmail-message-vector (1+ rmail-current-message))
-          (point-max))))))
+           ;; ethio-numeric-reduction
+           (when (> ethio-numeric-reduction 0)
+             (goto-char (point-min))
+             (while (re-search-forward "\\([0-9]\\)`\\([0-9]\\)" nil t)
+               (replace-match "\\1\\2")
+               (forward-char -1)))
+           (when (= ethio-numeric-reduction 2)
+             (goto-char (point-min))
+             (while (re-search-forward "\\([0-9]\\)1\\(0+\\)" nil t)
+               (replace-match "\\1\\2")))
+
+           (goto-char (point-max)))
+
+         (cond
+          ((looking-at "[a-z]")
+           (insert"\\~eng ")
+           (setq mode 'english))
+          ((looking-at "[,.;:'`\\]+")
+           (insert "\\")
+           (goto-char (1+ (match-end 0))))
+          ((= (following-char) ??)
+           (if ethio-use-three-dot-question
+               (insert "\\"))
+           (forward-char 1))
+          ((looking-at "[<&]")
+           (if (or (and (boundp 'ethio-sera-being-called-by-w3)
+                        ethio-sera-being-called-by-w3)
+                   (and (boundp 'sera-being-called-by-w3)
+                        sera-being-called-by-w3))
+               (search-forward (if (= (following-char) ?<) ">" "&") nil 0)
+             (forward-char 1)))))))))
 
 ;;;###autoload
 (defun ethio-fidel-to-sera-marker (&optional force)
@@ -1285,10 +651,10 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted."
       (error ""))
   (save-excursion
     (goto-char (point-min))
-    (while (re-search-forward "<sera>" nil t)
+    (while (search-forward "<sera>" nil t)
       (ethio-fidel-to-sera-region
        (point)
-       (if (re-search-forward "</sera>" nil t)
+       (if (search-forward "</sera>" nil t)
           (match-beginning 0)
         (point-max))
        nil
@@ -1302,225 +668,31 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted."
 (defun ethio-modify-vowel nil
   "Modify the vowel of the FIDEL that is under the cursor."
   (interactive)
-  (let ((ch (following-char))
-       (composite nil)                 ; geminated or not
-       newch base vowel modulo)
-
-    (cond
-     ;; in case of gemination
-     ((eq (char-charset ch) 'composition)
-      (setq ch (string-to-char (char-to-string ch))
-           composite t))
-     ;; neither gemination nor fidel
-     ((not (eq (char-charset ch) 'ethiopic))
-      (error "Not a valid character")))
-
-    ;; set frequently referred character features
-    (setq ch     (ethio-char-to-ethiocode ch)
-         base   (* (/ ch 8) 8)
-         modulo (% ch 8))
-
-    (if (or (and (>= ch 344) (<= ch 380)) ;; mYa - `10000
-           (and (>= ch 448) (<= ch 452)) ;; \~X - \~A
-           (>= ch 458))                  ;; private punctuations
-       (error "Not a valid character"))
-
-    (setq
-     newch
-     (cond
-
-      ;; first standalone vowels
-      ((= base 160)
-       (if (ethio-prefer-amharic-p)
-          (message "Modify vowel to: [auiAEIoW\"] ")
-        (message "Modify vowel to: [euiAEIoW\"] "))
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) 160)
-       ((= vowel ?u) 161)
-       ((= vowel ?i) 162)
-       ((= vowel ?A) 163)
-       ((= vowel ?E) 164)
-       ((= vowel ?I) 165)
-       ((= vowel ?o) 166)
-       ((= vowel ?W) 167)
-       ((= vowel ?a) (if (ethio-prefer-amharic-p) 160 163))
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-
-      ;; second standalone vowels
-      ((= base 208)
-       (message "Modify vowel to: [euiaEIo\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) 208)
-       ((= vowel ?u) 209)
-       ((= vowel ?i) 210)
-       ((= vowel ?a) 211)
-       ((= vowel ?E) 212)
-       ((= vowel ?I) 213)
-       ((= vowel ?o) 214)
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-
-      ;; 12-form consonants, *W* form
-      ((memq base '(72 88 136 176 192 272)) ; qW QW hW kW KW gW
-       (message "Modify vowel to: [euiaE'\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) base)
-       ((= vowel ?u) (+ base 5))
-       ((= vowel ?i) (+ base 2))
-       ((= vowel ?a) (+ base 3))
-       ((= vowel ?E) (+ base 4))
-       ((= vowel ?') (+ base 5))
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-
-      ;; extended 12-form consonants, mWa bWa GWa fWa pWa
-      ((= ch 31)                       ; mWa
-       (message "Modify vowel to: [euiaE'\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) 392)
-       ((= vowel ?u) 440)
-       ((= vowel ?i) 408)
-       ((= vowel ?a) ch)
-       ((= vowel ?E) 424)
-       ((= vowel ?') 440)
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-      ((= ch 103)                      ; bWa
-       (message "Modify vowel to: [euiaE'\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) 393)
-       ((= vowel ?u) 441)
-       ((= vowel ?i) 409)
-       ((= vowel ?a) ch)
-       ((= vowel ?E) 425)
-       ((= vowel ?') 441)
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-      ((= ch 287)                      ; GWa
-       (message "Modify vowel to: [euiaE'\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) 394)
-       ((= vowel ?u) 442)
-       ((= vowel ?i) 410)
-       ((= vowel ?a) ch)
-       ((= vowel ?E) 426)
-       ((= vowel ?') 442)
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-      ((= ch 335)                      ; fWa
-       (message "Modify vowel to: [euiaE'\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) 395)
-       ((= vowel ?u) 443)
-       ((= vowel ?i) 411)
-       ((= vowel ?a) ch)
-       ((= vowel ?E) 427)
-       ((= vowel ?') 443)
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-      ((= ch 343)                      ; pWa
-       (message "Modify vowel to: [euiaE'\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) 396)
-       ((= vowel ?u) 444)
-       ((= vowel ?i) 412)
-       ((= vowel ?a) ch)
-       ((= vowel ?E) 428)
-       ((= vowel ?') 444)
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-
-      ;; extended 12-form consonatns, mW* bW* GW* fW* pW*
-      ((memq base '(392 408 424 440))  ; *We *Wi *WE *W
-       (message "Modify vowel to: [eiEau'\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) (+ 392 modulo))
-       ((= vowel ?i) (+ 408 modulo))
-       ((= vowel ?E) (+ 424 modulo))
-       ((= vowel ?a) (cond
-                      ((= modulo 0)  31) ; mWa
-                      ((= modulo 1) 103) ; bWa
-                      ((= modulo 2) 287) ; GWa
-                      ((= modulo 3) 335) ; fWa
-                      ((= modulo 4) 343) ; pWa
-                      (t nil)))        ; never reach here
-       ((= vowel ?') (+ 440 modulo))
-       ((= vowel ?u) (+ 440 modulo))
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-
-      ((and (>= ch 453) (<= ch 457))   ; wWe wWi wWa wWE wW
-       (message "Modify vowel to: [eiaE'u\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) 453)
-       ((= vowel ?i) 454)
-       ((= vowel ?a) 455)
-       ((= vowel ?E) 456)
-       ((= vowel ?') 457)
-       ((= vowel ?u) 457)
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-
-      ;; 7-form consonants, or
-      ;; first 7 of 8-form consonants
-      ((<= modulo 6)
-       (message "Modify vowel to: [euiaE'o\"] ")
-       (setq vowel (read-char))
-       (cond
-       ((= vowel ?e) base)
-       ((= vowel ?u) (+ base 1))
-       ((= vowel ?i) (+ base 2))
-       ((= vowel ?a) (+ base 3))
-       ((= vowel ?E) (+ base 4))
-       ((= vowel ?') (+ base 5))
-       ((= vowel ?o) (+ base 6))
-       ((= vowel ?\") (setq composite t) ch)
-       (t nil)))
-
-      ;; otherwise
-      (t
-       nil)))
-
-    (cond
-
-     ;; could not get new character
-     ((null newch)
-      (error "Invalid vowel"))
-
-     ;; vowel changed on a composite Fidel
-     (composite
+  (ethio-adjust-robin)
+  (let ((consonant (ethio-get-consonant (following-char)))
+       vowel)
+    (if (null consonant)
+       (error "")                      ; not an Ethiopic char
+      (setq vowel (read-char "Modify vowel to: "))
       (delete-char 1)
-      (insert
-       (compose-string
-       (concat (char-to-string (ethio-ethiocode-to-char newch))        "\e$(3%s\e(B"))))
-
-     ;; simple vowel modification
-     (t
-      (delete-char 1)
-      (insert (ethio-ethiocode-to-char newch))))))
-
-(defun ethio-ethiocode-to-char (ethiocode)
-  (make-char
-   'ethiopic
-   (+ (/ ethiocode 94) 33)
-   (+ (mod ethiocode 94) 33)))
-
-(defun ethio-char-to-ethiocode (ch)
-  (and (eq (char-charset ch) 'ethiopic)
-       (let ((char-components (split-char ch)))
-        (+ (* (- (nth 1 char-components) 33) 94)
-           (- (nth 2 char-components) 33)))))
+      (if (and (string= consonant "'") (= vowel ?W))
+         (insert ?ኧ)
+       (save-restriction
+         (narrow-to-region (point) (point))
+         (insert consonant vowel)
+         (robin-convert-region (point-min) (point-max) "ethiopic-sera"))))))
+
+(defun ethio-get-consonant (ch)
+  "Return the consonant part of CH's SERA spelling in ethiopic-sera."
+  (let ((sera (get-char-code-property ch 'ethiopic-sera)))
+    (cond
+     ((null sera) nil)
+     ((= ch ?ኧ) "'")                 ; Only this has two vowel letters.
+     (t (with-temp-buffer
+         (insert sera)
+         (if (memq (preceding-char) '(?e ?u ?i ?a ?o ?E ?I ?A ?'))
+             (delete-char -1))
+         (buffer-substring (point-min) (point-max)))))))
 
 ;;
 ;; space replacement
@@ -1531,14 +703,14 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted."
   "Replace ASCII spaces with Ethiopic word separators in the region.
 
 In the specified region, replace word separators surrounded by two
-Ethiopic characters, depending on the first parameter CH, which should
+Ethiopic characters, depending on the first argument CH, which should
 be 1, 2, or 3.
 
 If CH = 1, word separator will be replaced with an ASCII space.
 If CH = 2, with two ASCII spaces.
 If CH = 3, with the Ethiopic colon-like word separator.
 
-The second and third parameters BEGIN and END specify the region."
+The 2nd and 3rd arguments BEGIN and END specify the region."
 
   (interactive "*cReplace spaces to: 1 (sg col), 2 (dbl col), 3 (Ethiopic)\nr")
   (if (not (memq ch '(?1 ?2 ?3)))
@@ -1551,61 +723,62 @@ The second and third parameters BEGIN and END specify the region."
        ((= ch ?1)
        ;; an Ethiopic word separator --> an ASCII space
        (goto-char (point-min))
-       (while (search-forward "\e$(3$h\e(B" nil t)
-         (replace-match " " nil t))
+       (while (search-forward "á¡" nil t)
+         (replace-match " "))
 
        ;; two ASCII spaces between Ethiopic characters --> an ASCII space
        (goto-char (point-min))
        (while (re-search-forward "\\(\\ce\\)  \\(\\ce\\)" nil t)
          (replace-match "\\1 \\2")
-         (goto-char (match-beginning 2))))
+         (forward-char -1)))
 
        ((= ch ?2)
        ;; An Ethiopic word separator --> two ASCII spaces
        (goto-char (point-min))
-       (while (search-forward "\e$(3$h\e(B" nil t)
+       (while (search-forward "á¡" nil t)
          (replace-match "  "))
 
        ;; An ASCII space between Ethiopic characters --> two ASCII spaces
        (goto-char (point-min))
        (while (re-search-forward "\\(\\ce\\) \\(\\ce\\)" nil t)
          (replace-match "\\1  \\2")
-         (goto-char (match-beginning 2))))
+         (forward-char -1)))
 
        (t
        ;; One or two ASCII spaces between Ethiopic characters
        ;;   --> An Ethiopic word separator
        (goto-char (point-min))
        (while (re-search-forward "\\(\\ce\\)  ?\\(\\ce\\)" nil t)
-         (replace-match "\\1\e$(3$h\e(B\\2")
-         (goto-char (match-beginning 2)))
+         (replace-match "\\1á¡\\2")
+         (forward-char -1))
 
        ;; Three or more ASCII spaces between Ethiopic characters
        ;;   --> An Ethiopic word separator + (N - 2) ASCII spaces
        (goto-char (point-min))
-       (while (re-search-forward "\\(\\ce\\)  \\( *\\ce\\)" nil t)
-         (replace-match "\\1\e$(3$h\e(B\\2")
-         (goto-char (match-beginning 2))))))))
+       (while (re-search-forward "\\(\\ce\\)  \\( +\\ce\\)" nil t)
+         (replace-match "\\1á¡\\2")
+         (forward-char -1)))))))
 
 ;;
 ;; special icons
 ;;
 
+;; This function is deprecated.
 ;;;###autoload
 (defun ethio-input-special-character (arg)
-  "Allow the user to input special characters."
-  (interactive "*cInput number: 1.\e$(3%j\e(B  2.\e$(3%k\e(B  3.\e$(3%l\e(B  4.\e$(3%m\e(B  5.\e$(3%i\e(B")
+  "This function is deprecated."
+  (interactive "*cInput number: 1.ö ‡  2.ö ‡‚  3.ö ‡ƒ  4.ö ‡„  5.ö ‡€")
   (cond
    ((= arg ?1)
-    (insert "\e$(3%j\e(B"))
+    (insert "ö ‡"))
    ((= arg ?2)
-    (insert "\e$(3%k\e(B"))
+    (insert "ö ‡‚"))
    ((= arg ?3)
-    (insert "\e$(3%l\e(B"))
+    (insert "ö ‡ƒ"))
    ((= arg ?4)
-    (insert "\e$(3%m\e(B"))
+    (insert "ö ‡„"))
    ((= arg ?5)
-    (insert "\e$(3%i\e(B"))
+    (insert "ö ‡€"))
    (t
     (error ""))))
 
@@ -1613,120 +786,49 @@ The second and third parameters BEGIN and END specify the region."
 ;; TeX support
 ;;
 
-(defconst ethio-fidel-to-tex-map
- [ "heG"  "huG"  "hiG"  "haG"  "hEG"   "hG"  "hoG"      ""     ;;   0 - 7
-   "leG"  "luG"  "liG"  "laG"  "lEG"   "lG"  "loG"  "lWaG"     ;;   8
-   "HeG"  "HuG"  "HiG"  "HaG"  "HEG"   "HG"  "HoG"  "HWaG"     ;;  16
-   "meG"  "muG"  "miG"  "maG"  "mEG"   "mG"  "moG"  "mWaG"     ;;  24
-  "sseG" "ssuG" "ssiG" "ssaG" "ssEG"  "ssG" "ssoG" "ssWaG"     ;;  32
-   "reG"  "ruG"  "riG"  "raG"  "rEG"   "rG"  "roG"  "rWaG"     ;;  40
-   "seG"  "suG"  "siG"  "saG"  "sEG"   "sG"  "soG"  "sWaG"     ;;  48
-   "xeG"  "xuG"  "xiG"  "xaG"  "xEG"   "xG"  "xoG"  "xWaG"     ;;  56
-   "qeG"  "quG"  "qiG"  "qaG"  "qEG"   "qG"  "qoG"      ""     ;;  64
-  "qWeG"     "" "qWiG" "qWaG" "qWEG"  "qWG"     ""      ""     ;;  72
-   "QeG"  "QuG"  "QiG"  "QaG"  "QEG"   "QG"  "QoG"      ""     ;;  80
-  "QWeG"     "" "QWiG" "QWaG" "QWEG"  "QWG"     ""      ""     ;;  88
-   "beG"  "buG"  "biG"  "baG"  "bEG"   "bG"  "boG"  "bWaG"     ;;  96
-   "veG"  "vuG"  "viG"  "vaG"  "vEG"   "vG"  "voG"  "vWaG"     ;; 104
-   "teG"  "tuG"  "tiG"  "taG"  "tEG"   "tG"  "toG"  "tWaG"     ;; 112
-   "ceG"  "cuG"  "ciG"  "caG"  "cEG"   "cG"  "coG"  "cWaG"     ;; 120
-  "hheG" "hhuG" "hhiG" "hhaG" "hhEG"  "hhG" "hhoG"      ""     ;; 128
-  "hWeG"     "" "hWiG" "hWaG" "hWEG"  "hWG"     ""      ""     ;; 136
-   "neG"  "nuG"  "niG"  "naG"  "nEG"   "nG"  "noG"  "nWaG"     ;; 144
-   "NeG"  "NuG"  "NiG"  "NaG"  "NEG"   "NG"  "NoG"  "NWaG"     ;; 152
-    "eG"   "uG"   "iG"   "AG"   "EG"   "IG"   "oG"   "eaG"     ;; 160
-   "keG"  "kuG"  "kiG"  "kaG"  "kEG"   "kG"  "koG"      ""     ;; 168
-  "kWeG"     "" "kWiG" "kWaG" "kWEG"  "kWG"     ""      ""     ;; 176
-   "KeG"  "KuG"  "KiG"  "KaG"  "KEG"   "KG"  "KoG"      ""     ;; 184
-  "KWeG"     "" "KWiG" "KWaG" "KWEG"  "KWG"     ""      ""     ;; 192
-   "weG"  "wuG"  "wiG"  "waG"  "wEG"   "wG"  "woG"      ""     ;; 200
-   "eeG"  "uuG"  "iiG"  "aaG"  "EEG"  "IIG"  "ooG"      ""     ;; 208
-   "zeG"  "zuG"  "ziG"  "zaG"  "zEG"   "zG"  "zoG"  "zWaG"     ;; 216
-   "ZeG"  "ZuG"  "ZiG"  "ZaG"  "ZEG"   "ZG"  "ZoG"  "ZWaG"     ;; 224
-   "yeG"  "yuG"  "yiG"  "yaG"  "yEG"   "yG"  "yoG"  "yWaG"     ;; 232
-   "deG"  "duG"  "diG"  "daG"  "dEG"   "dG" "doG"   "dWaG"     ;; 240
-   "DeG"  "DuG"  "DiG"  "DaG"  "DEG"   "DG"  "DoG"  "DWaG"     ;; 248
-   "jeG"  "juG"  "jiG"  "jaG"  "jEG"   "jG"  "joG"  "jWaG"     ;; 256
-   "geG"  "guG"  "giG"  "gaG"  "gEG"   "gG"  "goG"     ""      ;; 264
-  "gWeG"     "" "gWiG" "gWaG" "gWEG"  "gWG"     ""     ""      ;; 272
-   "GeG"  "GuG"  "GiG"  "GaG"  "GEG"   "GG"  "GoG"  "GWaG"     ;; 280
-   "TeG"  "TuG"  "TiG"  "TaG"  "TEG"   "TG"  "ToG"  "TWaG"     ;; 288
-   "CeG"  "CuG"  "CiG"  "CaG"  "CEG"   "CG"  "CoG"  "CWaG"     ;; 296
-   "PeG"  "PuG"  "PiG"  "PaG"  "PEG"   "PG"  "PoG"  "PWaG"     ;; 304
-   "SeG"  "SuG"  "SiG"  "SaG"  "SEG"   "SG"  "SoG"  "SWaG"     ;; 312
-  "SSeG" "SSuG" "SSiG" "SSaG" "SSEG"  "SSG" "SSoG"      ""     ;; 320
-   "feG"  "fuG"  "fiG"  "faG"  "fEG"   "fG"  "foG"  "fWaG"     ;; 328
-   "peG"  "puG"  "piG"  "paG"  "pEG"   "pG"  "poG"  "pWaG"     ;; 336
-  "mYaG" "rYaG" "fYaG"     ""     ""     ""     ""      ""     ;; 344
-      "" "spaceG" "periodG" "commaG"                           ;; 352
-  "semicolonG" "colonG" "precolonG" "oldqmarkG"                ;; 356
-  "pbreakG" "andG" "huletG" "sostG" "aratG" "amstG" "sadstG" "sabatG"  ;; 360
-  "smntG" "zeteNG" "asrG" "heyaG" "selasaG" "arbaG" "hemsaG" "slsaG"   ;; 368
-  "sebaG" "semanyaG" "zeTanaG" "metoG" "asrxiG" "" "" ""               ;; 376
-  "qqeG" "qquG" "qqiG" "qqaG" "qqEG" "qqG" "qqoG"    ""      ;; 384
-  "mWeG" "bWeG" "GWeG" "fWeG" "pWeG"    ""     ""    ""      ;; 392
-  "kkeG" "kkuG" "kkiG" "kkaG" "kkEG" "kkG" "kkoG"    ""      ;; 400
-  "mWiG" "bWiG" "GWiG" "fWiG" "pWiG"    ""     ""    ""      ;; 408
-   "XeG"  "XuG" "GXiG"  "XaG"  "XEG"  "XG"  "XoG"    ""      ;; 416
-  "mWEG" "bWEG" "GWEG" "fWEG" "pWEG"    ""     ""    ""      ;; 424
-  "ggeG" "gguG" "ggiG" "ggaG" "ggEG" "ggG" "ggoG"    ""      ;; 432
-   "mWG" "bWG"   "GWG"  "fWG"  "pWG"    ""     ""    ""      ;; 440
-  "ornamentG" "flandG" "iflandG" "africaG"                      ;; 448
-  "iafricaG" "wWeG" "wWiG" "wWaG"                            ;; 452
-  "wWEG"  "wWG" "" "slaqG" "dotG" "lquoteG" "rquoteG" "qmarkG" ])  ;; 456
-
-;;
-;; To make tex-to-fidel mapping.
-;; The following code makes
-;;     (get 'ethio-tex-command-he 'ethio-fidel-char)  ==>  ?\e$(3!!\e(B
-;; etc.
-;;
-
-(let ((i 0) str)
-  (while (< i (length ethio-fidel-to-tex-map))
-    (setq str (aref ethio-fidel-to-tex-map i))
-    (if (not (string= str ""))
-       (put
-        (intern (concat "ethio-tex-command-" (aref ethio-fidel-to-tex-map i)))
-        'ethio-fidel-char
-        (ethio-ethiocode-to-char i)))
-    (setq i (1+ i))))
-
 ;;;###autoload
 (defun ethio-fidel-to-tex-buffer nil
-  "Convert each fidel characters in the current buffer into a fidel-tex command.
-Each command is always surrounded by braces."
+  "Convert each fidel characters in the current buffer into a fidel-tex command."
   (interactive)
-  (let ((buffer-read-only nil))
+  (let ((buffer-read-only nil)
+       comp ch)
 
-    ;; Isolated gemination marks need special treatement
+    ;; Special treatment for geminated characters.
+    ;; Geminated characters la", etc. change into \geminateG{\laG}, etc.
     (goto-char (point-min))
-    (while (search-forward "\e$(3%s\e(B" nil t)
-      (replace-match "\\geminateG{}" t t))
-
-    ;; First, decompose geminations
-    ;; Here we assume that each composed character consists of
-    ;; one Ethiopic character and the Ethiopic gemination mark.
-    (decompose-region (point-min) (point-max))
+    (while (re-search-forward "áŸ\\|ö ‡Š" nil t)
+      (setq comp (find-composition (match-beginning 0)))
+      (if (null comp)
+         (replace-match "\\\\geminateG{}" t)
+       (decompose-region (car comp) (cadr comp))
+       (delete-char -1)
+       (forward-char -1)
+       (insert "\\geminateG{")
+       (forward-char 1)
+       (insert "}")))
 
-    ;; Special treatment for geminated characters
-    ;; The geminated character (la'') will be "\geminateG{\la}".
+    ;; Special Ethiopic punctuations.
     (goto-char (point-min))
-    (while (search-forward "\e$(3%s\e(B" nil t)
-      (delete-backward-char 1)
-      (backward-char 1)
-      (insert "\\geminateG")
-      (forward-char 1))
+    (while (re-search-forward "\\ce[»\\.\\?]\\|«\\ce" nil t)
+      (cond
+       ((= (setq ch (preceding-char)) ?\»)
+       (delete-char -1)
+       (insert "\\rquoteG"))
+       ((= ch ?.)
+       (delete-char -1)
+       (insert "\\dotG"))
+       ((= ch ??)
+       (delete-char -1)
+       (insert "\\qmarkG"))
+       (t
+       (forward-char -1)
+       (delete-char -1)
+       (insert "\\lquoteG")
+       (forward-char 1))))
 
     ;; Ethiopic characters to TeX macros
-    (goto-char (point-min))
-    (while (re-search-forward "\\ce" nil t)
-      (insert
-       "{\\"
-       (aref ethio-fidel-to-tex-map
-            (prog1 (ethio-char-to-ethiocode (preceding-char))
-              (backward-delete-char 1)))
-       "}"))
+    (robin-invert-region (point-min) (point-max) "ethiopic-tex")
+
     (goto-char (point-min))
     (set-buffer-modified-p nil)))
 
@@ -1737,43 +839,18 @@ Each command is always surrounded by braces."
   (let ((buffer-read-only nil)
        (p) (ch))
 
-    ;; Special treatment for gemination
-    ;; "\geminateG{\la}" or "\geminateG{{\la}}" will be "\la\e$(3%s\e(B"
-    ;; "\geminateG{}" remains unchanged.
-    (goto-char (point-min))
-    (while (re-search-forward "\\\\geminateG{\\(\\\\[a-zA-Z]+\\)}" nil t)
-      (replace-match "\\1\e$(3%s\e(B"))
-
     ;; TeX macros to Ethiopic characters
-    (goto-char (point-min))
-    (while (search-forward "\\" nil t)
-      (setq p (point))
-      (skip-chars-forward "a-zA-Z")
-      (setq ch
-           (get (intern (concat "ethio-tex-command-"
-                                (buffer-substring p (point))))
-                'ethio-fidel-char))
-      (if ch
-         (progn
-           (delete-region (1- p) (point)) ; don't forget the preceding "\"
-           (if (and (= (preceding-char) ?{)
-                    (= (following-char) ?}))
-               (progn
-                 (backward-delete-char 1)
-                 (delete-char 1)))
-           (insert ch))))
+    (robin-convert-region (point-min) (point-max) "ethiopic-tex")
 
     ;; compose geminated characters
     (goto-char (point-min))
-    (while (re-search-forward "\\ce\e$(3%s\e(B" nil 0)
-      (compose-region
-       (save-excursion (backward-char 2) (point))
-       (point)))
+    (while (re-search-forward "\\\\geminateG{\\(\\ce?\\)}" nil t)
+      (replace-match "\\1áŸ"))
 
-    ;; Now it's time to convert isolated gemination marks.
+    ;; remove redundant braces, if any
     (goto-char (point-min))
-    (while (search-forward "\\geminateG{}" nil t)
-      (replace-match "\e$(3%s\e(B"))
+    (while (re-search-forward "{\\(\\ce\\)}" nil t)
+      (replace-match "\\1"))
 
     (goto-char (point-min))
     (set-buffer-modified-p nil)))
@@ -1793,47 +870,24 @@ If `ethio-java-save-lowercase' is non-nil, use [0-9a-f].
 Otherwise, [0-9A-F]."
   (let ((ucode))
 
-    ;; first, decompose geminations
-    (decompose-region (point-min) (point-max))
-
     (goto-char (point-min))
-    (while (re-search-forward "\\ce" nil t)
-      (setq ucode (+ ?\x1200 (ethio-char-to-ethiocode (preceding-char))))
-      (if (> ucode ?\x13bc)
-         (setq ucode (+ ucode 59952)))
+    (while (re-search-forward "[ሀ-á¼]" nil t)
+      (setq ucode (preceding-char))
       (delete-backward-char 1)
-      (if ethio-java-save-lowercase
-         (insert (format "\\u%4x" ucode))
-       (insert (upcase (format "\\u%4x" ucode)))))))
+      (insert
+       (format (if ethio-java-save-lowercase "\\u%4x" "\\u%4X")
+              ucode)))))
 
 ;;;###autoload
 (defun ethio-java-to-fidel-buffer nil
   "Convert the Java escape sequences into corresponding Ethiopic characters."
-  (let ((ucode))
-    (goto-char (point-min))
-    (while (re-search-forward "\\\\u\\([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]\\)" nil t)
-      (setq ucode
-           (read
-            (concat
-             "?\\x"
-             (buffer-substring (match-beginning 1) (match-end 1)))))
-      (cond
-       ((and (>= ucode ?\x1200) (<= ucode ?\x13bc))
-       (replace-match "")
-       (insert (ethio-ethiocode-to-char (- ucode ?\x1200))))
-       ((and (>= ucode ?\xfdf1) (<= ucode ?\xfdff))
-       (replace-match "")
-       (insert (ethio-ethiocode-to-char (- ucode 64560))))
-       (t
-       nil)))
-
-    ;; gemination
+  (let ((case-fold-search t)
+       (ucode))
     (goto-char (point-min))
-    (while (re-search-forward "\\ce\e$(3%s\e(B" nil 0)
-      (compose-region
-       (save-excursion (backward-char 2) (point))
-       (point)))
-    ))
+    (while (re-search-forward "\\\\u\\([0-9a-f][0-9a-f][0-9a-f][0-9a-f]\\)" nil t)
+      (setq ucode (read (concat "#x" (match-string 1))))
+      (when (and (>= ucode #x1200) (<= ucode #x137f))
+       (replace-match (char-to-string ucode))))))
 
 ;;
 ;; file I/O hooks
@@ -1841,7 +895,7 @@ Otherwise, [0-9A-F]."
 
 ;;;###autoload
 (defun ethio-find-file nil
-  "Transcribe file content into Ethiopic depending on filename suffix."
+  "Transliterate file content into Ethiopic dependig on filename suffix."
   (cond
 
    ((string-match "\\.sera$" (buffer-file-name))
@@ -1854,10 +908,10 @@ Otherwise, [0-9A-F]."
       (save-excursion
        (ethio-sera-to-fidel-marker 'force)
        (goto-char (point-min))
-       (while (re-search-forward "&[lr]aquote;" nil t)
+       (while (re-search-forward "&[lr]aquo;" nil t)
          (if (= (char-after (1+ (match-beginning 0))) ?l)
-             (replace-match "\e$(3%v\e(B")
-           (replace-match "\e$(3%w\e(B")))
+             (replace-match "«")
+           (replace-match "»")))
        (set-buffer-modified-p nil))))
 
    ((string-match "\\.tex$" (buffer-file-name))
@@ -1875,7 +929,7 @@ Otherwise, [0-9A-F]."
 
 ;;;###autoload
 (defun ethio-write-file nil
-  "Transcribe Ethiopic characters in ASCII depending on the file extension."
+  "Transliterate Ethiopic characters in ASCII depending on the file extension."
   (cond
 
    ((string-match "\\.sera$" (buffer-file-name))
@@ -1887,17 +941,14 @@ Otherwise, [0-9A-F]."
 
    ((string-match "\\.html$" (buffer-file-name))
     (save-excursion
-      (let ((ethio-sera-being-called-by-w3 t)
-           (lq (aref ethio-fidel-to-sera-map 461))
-           (rq (aref ethio-fidel-to-sera-map 462)))
-       (aset ethio-fidel-to-sera-map 461 "&laquote;")
-       (aset ethio-fidel-to-sera-map 462 "&raquote;")
+      (let ((ethio-sera-being-called-by-w3 t))
        (ethio-fidel-to-sera-marker 'force)
        (goto-char (point-min))
+       (while (re-search-forward "[«»]" nil t)
+         (replace-match (if (= (preceding-char) ?«) "&laquo;" "&raquo;")))
+       (goto-char (point-min))
        (if (search-forward "<sera>" nil t)
            (ethio-record-user-preference))
-       (aset ethio-fidel-to-sera-map 461 lq)
-       (aset ethio-fidel-to-sera-map 462 rq)
        (set-buffer-modified-p nil))))
 
    ((string-match "\\.tex$" (buffer-file-name))
@@ -1914,11 +965,8 @@ Otherwise, [0-9A-F]."
     nil)))
 
 (defun ethio-record-user-preference nil
-  (if (looking-at "\\\\~\\(tir?\\|amh?\\) ")
-      (goto-char (match-end 0))
-    (insert (if (ethio-prefer-amharic-p) "\\~amh " "\\~tir ")))
   (insert (if ethio-use-colon-for-colon "\\~-: " "\\~`: ")
-         (if ethio-use-three-dot-question "\\~`| " "\\~`? ")))
+         (if ethio-use-three-dot-question "\\~`| " "\\~? ")))
 
 ;;
 ;; Ethiopic word separator vs. ASCII space
@@ -1931,10 +979,7 @@ Otherwise, [0-9A-F]."
   "Toggle ASCII space and Ethiopic separator for keyboard input."
   (interactive)
   (setq ethio-prefer-ascii-space
-       (not ethio-prefer-ascii-space))
-  (if (equal current-input-method "ethiopic")
-      (setq current-input-method-title (quail-title)))
-  (force-mode-line-update))
+       (not ethio-prefer-ascii-space)))
 
 (defun ethio-insert-space (arg)
   "Insert ASCII spaces or Ethiopic word separators depending on context.
@@ -1957,68 +1002,1080 @@ many Ethiopic word separators."
    ((save-excursion
       (skip-chars-backward " ")
       (memq (preceding-char)
-           '(?\e$(3$h\e(B ?\e$(3$i\e(B ?\e$(3$j\e(B ?\e$(3$k\e(B ?\e$(3$l\e(B ?\e$(3$m\e(B ?\e$(3$n\e(B ?\e$(3$o\e(B ?\e$(3%t\e(B ?\e$(3%u\e(B ?\e$(3%v\e(B ?\e$(3%w\e(B ?\e$(3%x\e(B)))
+           '(?á¡ ?ᢠ?ᣠ?ᤠ?ᥠ?ᦠ?᧠?ᨠ?ö ‡‹ ?ö ‡Œ ?ö ‡ ?ö ‡Ž ?ö ‡)))
     (insert-char 32 arg))
    (t
-    (insert-char ?\e$(3$h\e(B arg))))
+    (insert-char ?á¡ arg))))
 
+;;;###autoload
 (defun ethio-insert-ethio-space (arg)
   "Insert the Ethiopic word delimiter (the colon-like character).
 With ARG, insert that many delimiters."
   (interactive "*p")
-  (insert-char ?\e$(3$h\e(B arg))
-
-;;
-;; Ethiopic punctuation vs. ASCII punctuation
-;;
-
-(defvar ethio-prefer-ascii-punctuation nil)
-(make-variable-buffer-local 'ethio-prefer-ascii-punctuation)
-
-(defun ethio-toggle-punctuation nil
-  "Toggle Ethiopic punctuations and ASCII punctuations for keyboard input."
-  (interactive)
-  (setq ethio-prefer-ascii-punctuation
-       (not ethio-prefer-ascii-punctuation))
-  (let* ((keys '("." ".." "..." "," ",," ";" ";;" ":" "::" ":::" "*" "**"))
-        (puncs
-         (if ethio-prefer-ascii-punctuation
-             '(?. [".."] ["..."] ?, [",,"] ?\; [";;"] ?: ["::"] [":::"] ?* ["**"])
-           '(?\e$(3$i\e(B ?\e$(3%u\e(B ?. ?\e$(3$j\e(B ?, ?\e$(3$k\e(B ?\; ?\e$(3$h\e(B ?\e$(3$i\e(B ?: ?* ?\e$(3$o\e(B))))
-    (while keys
-      (quail-defrule (car keys) (car puncs) "ethiopic")
-      (setq keys (cdr keys)
-           puncs (cdr puncs)))
-    (if (equal current-input-method "ethiopic")
-       (setq current-input-method-title (quail-title)))
-    (force-mode-line-update)))
+  (insert-char ?á¡ arg))
 
 ;;
 ;; Gemination
 ;;
 
+;;;###autoload
+(defun ethio-composition-function (pos to font-object string)
+  (setq pos (1- pos))
+  (let ((pattern "\\ce\\(áŸ\\|ö ‡Š\\)"))
+    (if string
+       (if (and (>= pos 0)
+                (eq (string-match pattern string pos) pos))
+           (prog1 (match-end 0)
+             (compose-string string pos (match-end 0))))
+      (if (>= pos (point-min))
+         (progn
+           (goto-char pos)
+           (if (looking-at pattern)
+               (prog1 (match-end 0)
+                 (compose-region pos (match-end 0)))))))))
+
+;; This function is not used any more.
 (defun ethio-gemination nil
   "Compose the character before the point with the Ethiopic gemination mark.
 If the character is already composed, decompose it and remove the gemination
 mark."
   (interactive "*")
-  (cond
-   ((eq (char-charset (preceding-char)) 'ethiopic)
-    (insert "\e$(3%s\e(B")
-    (compose-region
-     (save-excursion (backward-char 2) (point))
-     (point))
-    (forward-char 1))
-   ((eq (char-charset (preceding-char)) 'leading-code-composition)
-    (decompose-region
-     (save-excursion (backward-char 1) (point))
-     (point))
-    (delete-backward-char 1))
-   (t
-    (error ""))))
+  (let ((ch (preceding-char)))
+    (cond
+     ((and (= ch ?ö ‡Š) (find-composition (1- (point))))
+      (decompose-region (- (point) 2) (point)))
+     ((and (>= ch #x1200) (<= ch #x137f))
+      (insert "ö ‡Š")
+      (compose-region (- (point) 2) (point)))
+     (t
+      (error "")))))
+
+;;;
+;;; Robin packages
+;;;
+
+(robin-define-package "ethiopic-sera"
+ "SERA transliteration system for Ethiopic."
+
+ ("he" ?ሀ)
+ ("hu" ?áˆ)
+ ("hi" ?ሂ)
+ ("ha" ?ሃ)
+ ("hE" ?ሄ) ("hee" "ሄ")
+ ("h" ?ህ)
+ ("ho" ?ሆ)
+
+ ("le" ?ለ) ("Le" "ለ")
+ ("lu" ?ሉ) ("Lu" "ሉ")
+ ("li" ?ሊ) ("Li" "ሊ")
+ ("la" ?ላ) ("La" "ላ")
+ ("lE" ?ሌ) ("LE" "ሌ") ("lee" "ሌ") ("Lee" "ሌ")
+ ("l" ?áˆ) ("L" "áˆ")
+ ("lo" ?ሎ) ("Lo" "ሎ")
+ ("lWa" ?áˆ) ("LWa" "áˆ") ("lW" "áˆ") ("LW" "áˆ")
+
+ ("He" ?áˆ)
+ ("Hu" ?ሑ)
+ ("Hi" ?ሒ)
+ ("Ha" ?ሓ)
+ ("HE" ?ሔ) ("Hee" "ሔ")
+ ("H" ?ሕ)
+ ("Ho" ?ሖ)
+ ("HWa" ?ሗ) ("HW" "ሗ")
+
+ ("me" ?መ) ("Me" "መ")
+ ("mu" ?ሙ) ("Mu" "ሙ")
+ ("mi" ?ሚ) ("Mi" "ሚ")
+ ("ma" ?ማ) ("Ma" "ማ")
+ ("mE" ?ሜ) ("ME" "ሜ") ("mee" "ሜ") ("Mee" "ሜ")
+ ("m" ?áˆ) ("M" "áˆ")
+ ("mo" ?ሞ) ("Mo" "ሞ")
+ ("mWa" ?ሟ) ("MWa" "ሟ") ("mW" "ሟ") ("MW" "ሟ")
+
+ ("`se" ?ሠ) ("sse" "ሠ") ("s2e" "ሠ")
+ ("`su" ?ሡ) ("ssu" "ሡ") ("s2u" "ሡ")
+ ("`si" ?ሢ) ("ssi" "ሢ") ("s2i" "ሢ")
+ ("`sa" ?ሣ) ("ssa" "ሣ") ("s2a" "ሣ")
+ ("`sE" ?ሤ) ("ssE" "ሤ") ("s2E" "ሤ")
+   ("`see" "ሤ") ("ssee" "ሤ") ("s2ee" "ሤ")
+ ("`s" ?ሥ) ("ss" "ሥ") ("s2" "ሥ")
+ ("`so" ?ሦ) ("sso" "ሦ") ("s2o" "ሦ")
+ ("`sWa" ?ሧ) ("ssWa" "ሧ") ("s2Wa" "ሧ")
+   ("`sW" "ሧ") ("ssW" "ሧ") ("s2W" "ሧ")
+
+ ("re" ?ረ) ("Re" "ረ")
+ ("ru" ?ሩ) ("Ru" "ሩ")
+ ("ri" ?ሪ) ("Ri" "ሪ")
+ ("ra" ?ራ) ("Ra" "ራ")
+ ("rE" ?ሬ) ("RE" "ሬ") ("ree" "ሬ") ("Ree" "ሬ")
+ ("r" ?ር) ("R" "ር")
+ ("ro" ?ሮ) ("Ro" "ሮ")
+ ("rWa" ?ሯ) ("RWa" "ሯ") ("rW" "ሯ") ("RW" "ሯ")
+
+ ("se" ?ሰ)
+ ("su" ?ሱ)
+ ("si" ?ሲ)
+ ("sa" ?ሳ)
+ ("sE" ?ሴ) ("see" "ሴ")
+ ("s" ?ስ)
+ ("so" ?ሶ)
+ ("sWa" ?ሷ) ("sW" "ሷ")
+
+ ("xe" ?ሸ)
+ ("xu" ?ሹ)
+ ("xi" ?ሺ)
+ ("xa" ?ሻ)
+ ("xE" ?ሼ) ("xee" "ሼ")
+ ("x" ?ሽ)
+ ("xo" ?ሾ)
+ ("xWa" ?ሿ) ("xW" "ሿ")
+
+ ("qe" ?ቀ)
+ ("qu" ?á‰)
+ ("qi" ?ቂ)
+ ("qa" ?ቃ)
+ ("qE" ?ቄ) ("qee" "ቄ")
+ ("q" ?ቅ)
+ ("qo" ?ቆ)
+ ("qWe" ?ቈ)
+ ("qWi" ?ቊ)
+ ("qWa" ?ቋ) ("qW" "ቋ")
+ ("qWE" ?ቌ) ("qWee" "ቌ")
+ ("qW'" ?á‰) ("qWu" "á‰")
+
+ ("Qe" ?á‰)
+ ("Qu" ?ቑ)
+ ("Qi" ?ቒ)
+ ("Qa" ?ቓ)
+ ("QE" ?ቔ) ("Qee" "ቔ")
+ ("Q" ?ቕ)
+ ("Qo" ?ቖ)
+ ("QWe" ?ቘ)
+ ("QWi" ?ቚ)
+ ("QWa" ?ቛ) ("QW" "ቛ")
+ ("QWE" ?ቜ) ("QWee" "ቜ")
+ ("QW'" ?á‰) ("QWu" "á‰")
+
+ ("be" ?በ) ("Be" "በ")
+ ("bu" ?ቡ) ("Bu" "ቡ")
+ ("bi" ?ቢ) ("Bi" "ቢ")
+ ("ba" ?ባ) ("Ba" "ባ")
+ ("bE" ?ቤ) ("BE" "ቤ") ("bee" "ቤ") ("Bee" "ቤ")
+ ("b" ?ብ) ("B" "ብ")
+ ("bo" ?ቦ) ("Bo" "ቦ")
+ ("bWa" ?ቧ) ("BWa" "ቧ") ("bW" "ቧ") ("BW" "ቧ")
+
+ ("ve" ?ቨ) ("Ve" "ቨ")
+ ("vu" ?ቩ) ("Vu" "ቩ")
+ ("vi" ?ቪ) ("Vi" "ቪ")
+ ("va" ?ቫ) ("Va" "ቫ")
+ ("vE" ?ቬ) ("VE" "ቬ") ("vee" "ቬ") ("Vee" "ቬ")
+ ("v" ?ቭ) ("V" "ቭ")
+ ("vo" ?ቮ) ("Vo" "ቮ")
+ ("vWa" ?ቯ) ("VWa" "ቯ") ("vW" "ቯ") ("VW" "ቯ")
+
+ ("te" ?ተ)
+ ("tu" ?ቱ)
+ ("ti" ?ቲ)
+ ("ta" ?ታ)
+ ("tE" ?ቴ) ("tee" "ቴ")
+ ("t" ?ት)
+ ("to" ?ቶ)
+ ("tWa" ?ቷ) ("tW" "ቷ")
+
+ ("ce" ?ቸ)
+ ("cu" ?ቹ)
+ ("ci" ?ቺ)
+ ("ca" ?ቻ)
+ ("cE" ?ቼ) ("cee" "ቼ")
+ ("c" ?ች)
+ ("co" ?ቾ)
+ ("cWa" ?ቿ) ("cW" "ቿ")
+
+ ("`he" ?ኀ) ("hhe" "ኀ") ("h2e" "ኀ")
+ ("`hu" ?áŠ) ("hhu" "áŠ") ("h2u" "áŠ")
+ ("`hi" ?ኂ) ("hhi" "ኂ") ("h2i" "ኂ")
+ ("`ha" ?ኃ) ("hha" "ኃ") ("h2a" "ኃ")
+ ("`hE" ?ኄ) ("hhE" "ኄ") ("h2E" "ኄ")
+   ("`hee" "ኄ") ("hhee" "ኄ") ("h2ee" "ኄ")
+ ("`h" ?ኅ) ("hh" "ኅ") ("h2" "ኅ")
+ ("`ho" ?ኆ) ("hho" "ኆ") ("h2o" "ኆ")
+ ("`hWe" ?ኈ) ("hhWe" "ኈ") ("h2We" "ኈ") ("hWe" "ኈ")
+ ("`hWi" ?ኊ) ("hhWi" "ኊ") ("h2Wi" "ኊ") ("hWi" "ኊ")
+ ("`hWa" ?ኋ) ("hhWa" "ኋ") ("h2Wa" "ኋ") ("hWa" "ኋ")
+   ("`hW" "ኋ") ("hhW" "ኋ") ("h2W" "ኋ")
+ ("`hWE" ?ኌ) ("hhWE" "ኌ") ("h2WE" "ኌ") ("hWE" "ኌ")
+   ("`hWee" "ኌ") ("hhWee" "ኌ") ("h2Wee" "ኌ") ("hWee" "ኌ")
+ ("`hW'" ?áŠ) ("hhW'" "áŠ") ("h2W'" "áŠ") ("hW'" "áŠ")
+   ("`hWu" "áŠ") ("hhWu" "áŠ") ("h2Wu" "áŠ") ("hWu" "áŠ")
+
+ ("ne" ?áŠ)
+ ("nu" ?ኑ)
+ ("ni" ?ኒ)
+ ("na" ?ና)
+ ("nE" ?ኔ) ("nee" "ኔ")
+ ("n" ?ን)
+ ("no" ?ኖ)
+ ("nWa" ?ኗ) ("nW" "ኗ")
+
+ ("Ne" ?ኘ)
+ ("Nu" ?ኙ)
+ ("Ni" ?ኚ)
+ ("Na" ?ኛ)
+ ("NE" ?ኜ) ("Nee" "ኜ")
+ ("N" ?áŠ)
+ ("No" ?ኞ)
+ ("NWa" ?ኟ) ("NW" "ኟ")
+
+ ("'A" ?አ) ("A" "አ")
+ ("'u" ?ኡ) ("u" "ኡ") ("'U" "ኡ") ("U" "ኡ")
+ ("'i" ?ኢ) ("i" "ኢ")
+ ("'a" ?ኣ) ("a" "ኣ")
+ ("'E" ?ኤ) ("E" "ኤ")
+ ("'I" ?እ) ("I" "እ") ("'e" "እ") ("e" "እ")
+ ("'o" ?ኦ) ("o" "ኦ") ("'O" "ኦ") ("O" "ኦ")
+ ("'ea" ?ኧ) ("ea" "ኧ")
+
+ ("ke" ?ከ)
+ ("ku" ?ኩ)
+ ("ki" ?ኪ)
+ ("ka" ?ካ)
+ ("kE" ?ኬ) ("kee" "ኬ")
+ ("k" ?ክ)
+ ("ko" ?ኮ)
+ ("kWe" ?ኰ)
+ ("kWi" ?ኲ)
+ ("kWa" ?ኳ) ("kW" "ኳ")
+ ("kWE" ?ኴ) ("kWee" "ኴ")
+ ("kW'" ?ኵ) ("kWu" "ኵ")
+
+ ("Ke" ?ኸ)
+ ("Ku" ?ኹ)
+ ("Ki" ?ኺ)
+ ("Ka" ?ኻ)
+ ("KE" ?ኼ) ("Kee" "ኼ")
+ ("K" ?ኽ)
+ ("Ko" ?ኾ)
+ ("KWe" ?á‹€)
+ ("KWi" ?á‹‚)
+ ("KWa" ?ዃ) ("KW" "ዃ")
+ ("KWE" ?á‹„) ("KWee" "á‹„")
+ ("KW'" ?á‹…) ("KWu" "á‹…")
+
+ ("we" ?ወ)
+ ("wu" ?ዉ)
+ ("wi" ?á‹Š)
+ ("wa" ?á‹‹)
+ ("wE" ?á‹Œ) ("wee" "á‹Œ")
+ ("w" ?á‹)
+ ("wo" ?á‹Ž)
+
+ ("`e" ?á‹) ("ae" "á‹") ("aaa" "á‹") ("e2" "á‹")
+ ("`u" ?á‹‘) ("uu" "á‹‘") ("u2" "á‹‘") ("`U" "á‹‘") ("UU" "á‹‘") ("U2" "á‹‘")
+ ("`i" ?á‹’) ("ii" "á‹’") ("i2" "á‹’")
+ ("`a" ?á‹“) ("aa" "á‹“") ("a2" "á‹“") ("`A" "á‹“") ("AA" "á‹“") ("A2" "á‹“")
+ ("`E" ?á‹”) ("EE" "á‹”") ("E2" "á‹”")
+ ("`I" ?á‹•) ("II" "á‹•") ("I2" "á‹•") ("ee" "á‹•")
+ ("`o" ?á‹–) ("oo" "á‹–") ("o2" "á‹–") ("`O" "á‹–") ("OO" "á‹–") ("O2" "á‹–")
+
+ ("ze" ?ዘ)
+ ("zu" ?á‹™)
+ ("zi" ?á‹š)
+ ("za" ?á‹›)
+ ("zE" ?á‹œ) ("zee" "á‹œ")
+ ("z" ?á‹)
+ ("zo" ?á‹ž)
+ ("zWa" ?á‹Ÿ) ("zW" "á‹Ÿ")
+
+ ("Ze" ?á‹ )
+ ("Zu" ?á‹¡)
+ ("Zi" ?á‹¢)
+ ("Za" ?á‹£)
+ ("ZE" ?ዤ) ("Zee" "ዤ")
+ ("Z" ?á‹¥)
+ ("Zo" ?ዦ)
+ ("ZWa" ?ዧ) ("ZW" "ዧ")
+
+ ("ye" ?የ) ("Ye" "የ")
+ ("yu" ?á‹©) ("Yu" "á‹©")
+ ("yi" ?ዪ) ("Yi" "ዪ")
+ ("ya" ?á‹«) ("Ya" "á‹«")
+ ("yE" ?ዬ) ("YE" "ዬ") ("yee" "ዬ") ("Yee" "ዬ")
+ ("y" ?á‹­) ("Y" "á‹­")
+ ("yo" ?á‹®) ("Yo" "á‹®")
+
+ ("de" ?á‹°)
+ ("du" ?ዱ)
+ ("di" ?ዲ)
+ ("da" ?ዳ)
+ ("dE" ?á‹´) ("dee" "á‹´")
+ ("d" ?ድ)
+ ("do" ?ዶ)
+ ("dWa" ?á‹·) ("dW" "á‹·")
+
+ ("De" ?ዸ)
+ ("Du" ?ዹ)
+ ("Di" ?ዺ)
+ ("Da" ?á‹»)
+ ("DE" ?ዼ) ("Dee" "ዼ")
+ ("D" ?ዽ)
+ ("Do" ?ዾ)
+ ("DWa" ?á‹¿) ("DW" "á‹¿")
+
+ ("je" ?ጀ) ("Je" "ጀ")
+ ("ju" ?áŒ) ("Ju" "áŒ")
+ ("ji" ?ጂ) ("Ji" "ጂ")
+ ("ja" ?ጃ) ("Ja" "ጃ")
+ ("jE" ?ጄ) ("JE" "ጄ") ("jee" "ጄ") ("Jee" "ጄ")
+ ("j" ?ጅ) ("J" "ጅ")
+ ("jo" ?ጆ) ("Jo" "ጆ")
+ ("jWa" ?ጇ) ("jW" "ጇ") ("JWa" "ጇ") ("JW" "ጇ")
+
+ ("ge" ?ገ)
+ ("gu" ?ጉ)
+ ("gi" ?ጊ)
+ ("ga" ?ጋ)
+ ("gE" ?ጌ) ("gee" "ጌ")
+ ("g" ?áŒ)
+ ("go" ?ጎ)
+ ("gWe" ?áŒ)
+ ("gWi" ?ጒ)
+ ("gWa" ?ጓ) ("gW" "ጓ")
+ ("gWE" ?ጔ) ("gWee" "ጔ")
+ ("gW'" ?ጕ) ("gWu" "ጕ")
+
+ ("Ge" ?ጘ)
+ ("Gu" ?ጙ)
+ ("Gi" ?ጚ)
+ ("Ga" ?ጛ)
+ ("GE" ?ጜ) ("Gee" "ጜ")
+ ("G" ?áŒ)
+ ("Go" ?ጞ)
+
+ ("Te" ?ጠ)
+ ("Tu" ?ጡ)
+ ("Ti" ?ጢ)
+ ("Ta" ?ጣ)
+ ("TE" ?ጤ) ("Tee" "ጤ")
+ ("T" ?ጥ)
+ ("To" ?ጦ)
+ ("TWa" ?ጧ) ("TW" "ጧ")
+
+ ("Ce" ?ጨ)
+ ("Cu" ?ጩ)
+ ("Ci" ?ጪ)
+ ("Ca" ?ጫ)
+ ("CE" ?ጬ) ("Cee" "ጬ")
+ ("C" ?ጭ)
+ ("Co" ?ጮ)
+ ("CWa" ?ጯ) ("CW" "ጯ")
+
+ ("Pe" ?ጰ)
+ ("Pu" ?ጱ)
+ ("Pi" ?ጲ)
+ ("Pa" ?ጳ)
+ ("PE" ?ጴ) ("Pee" "ጴ")
+ ("P" ?ጵ)
+ ("Po" ?ጶ)
+ ("PWa" ?ጷ) ("PW" "ጷ")
+
+ ("Se" ?ጸ)
+ ("Su" ?ጹ)
+ ("Si" ?ጺ)
+ ("Sa" ?ጻ)
+ ("SE" ?ጼ) ("See" "ጼ")
+ ("S" ?ጽ)
+ ("So" ?ጾ)
+ ("SWa" ?ጿ) ("`SWa" "ጿ") ("SSWa" "ጿ") ("S2Wa" "ጿ")
+   ("SW" "ጿ") ("`SW" "ጿ") ("SSW" "ጿ") ("S2W" "ጿ")
+
+ ("`Se" ?á€) ("SSe" "á€") ("S2e" "á€")
+ ("`Su" ?á) ("SSu" "á") ("S2u" "á")
+ ("`Si" ?á‚) ("SSi" "á‚") ("S2i" "á‚")
+ ("`Sa" ?áƒ) ("SSa" "áƒ") ("S2a" "áƒ")
+ ("`SE" ?á„) ("SSE" "á„") ("S2E" "á„")
+   ("`See" "á„") ("SSee" "á„") ("S2ee" "á„")
+ ("`S" ?á…) ("SS" "á…") ("S2" "á…")
+ ("`So" ?á†) ("SSo" "á†") ("S2o" "á†")
+
+ ("fe" ?áˆ) ("Fe" "áˆ")
+ ("fu" ?á‰) ("Fu" "á‰")
+ ("fi" ?áŠ) ("Fi" "áŠ")
+ ("fa" ?á‹) ("Fa" "á‹")
+ ("fE" ?áŒ) ("FE" "áŒ") ("fee" "áŒ") ("Fee" "áŒ")
+ ("f" ?á) ("F" "á")
+ ("fo" ?áŽ) ("Fo" "áŽ")
+ ("fWa" ?á) ("FWa" "á") ("fW" "á") ("FW" "á")
+
+ ("pe" ?á)
+ ("pu" ?á‘)
+ ("pi" ?á’)
+ ("pa" ?á“)
+ ("pE" ?á”) ("pee" "á”")
+ ("p" ?á•)
+ ("po" ?á–)
+ ("pWa" ?á—) ("pW" "á—")
+
+ ("rYa" ?á˜) ("RYa" "á˜") ("rY" "á˜") ("RY" "á˜")
+ ("mYa" ?á™) ("MYa" "á™") ("mY" "á™") ("MY" "á™")
+ ("fYa" ?áš) ("FYa" "áš") ("fY" "áš") ("FY" "áš")
+
+ (" : " ?á¡) (":" "á¡") ("`:" "á¡")
+ ("::" ?á¢) ("." "á¢")
+ ("," ?á£)
+ (";" ?á¤)
+ ("-:" ?á¥)
+ (":-" ?á¦)
+ ("`?" ?á§) ("??" "á§")
+ (":|:" ?á¨) ("**" "á¨")
+
+ ;; Explicit syllable delimiter
+ ("'" "")
+
+ ;; Quick ASCII input
+ ("''" "'")
+ (":::" ":")
+ (".." ".")
+ (",," ",")
+ (";;" ";")
+
+ ("`1" ?á©)
+ ("`2" ?áª)
+ ("`3" ?á«)
+ ("`4" ?á¬)
+ ("`5" ?á­)
+ ("`6" ?á®)
+ ("`7" ?á¯)
+ ("`8" ?á°)
+ ("`9" ?á±)
+ ("`10" ?á²)
+ ("`20" ?á³)
+ ("`30" ?á´)
+ ("`40" ?áµ)
+ ("`50" ?á¶)
+ ("`60" ?á·)
+ ("`70" ?á¸)
+ ("`80" ?á¹)
+ ("`90" ?áº)
+ ("`100" ?á»)
+ ("`10000" ?á¼)
+
+ ("`200" "áªá»")
+ ("`300" "á«á»")
+ ("`400" "á¬á»")
+ ("`500" "á­á»")
+ ("`600" "á®á»")
+ ("`700" "á¯á»")
+ ("`800" "á°á»")
+ ("`900" "á±á»")
+ ("`1000" "á²á»")
+ ("`2000" "á³á»")
+ ("`3000" "á´á»")
+ ("`4000" "áµá»")
+ ("`5000" "á¶á»")
+ ("`6000" "á·á»")
+ ("`7000" "á¸á»")
+ ("`8000" "á¹á»")
+ ("`9000" "áºá»")
+ ("`20000" "áªá¼")
+ ("`30000" "á«á¼")
+ ("`40000" "á¬á¼")
+ ("`50000" "á­á¼")
+ ("`60000" "á®á¼")
+ ("`70000" "á¯á¼")
+ ("`80000" "á°á¼")
+ ("`90000" "á±á¼")
+ ("`100000" "á²á¼")
+ ("`200000" "á³á¼")
+ ("`300000" "á´á¼")
+ ("`400000" "áµá¼")
+ ("`500000" "á¶á¼")
+ ("`600000" "á·á¼")
+ ("`700000" "á¸á¼")
+ ("`800000" "á¹á¼")
+ ("`900000" "áºá¼")
+ ("`1000000" "á»á¼")
+ )
+
+(register-input-method
+ "ethiopic-sera" "Ethiopic"
+ 'robin-use-package "et" "An input method for Ethiopic.")
+
+(robin-define-package "ethiopic-tex"
+ "TeX transliteration system for Ethiopic."
+
+ ("\\heG" ?ሀ)                                ; U+1200 ..
+ ("\\huG" ?áˆ)
+ ("\\hiG" ?ሂ)
+ ("\\haG" ?ሃ)
+ ("\\hEG" ?ሄ)
+ ("\\hG" ?ህ)
+ ("\\hoG" ?ሆ)
+ ;; reserved
+ ("\\leG" ?ለ)
+ ("\\luG" ?ሉ)
+ ("\\liG" ?ሊ)
+ ("\\laG" ?ላ)
+ ("\\lEG" ?ሌ)
+ ("\\lG" ?áˆ)
+ ("\\loG" ?ሎ)
+ ("\\lWaG" ?áˆ)
+
+ ("\\HeG" ?áˆ)                                ; U+1210 ..
+ ("\\HuG" ?ሑ)
+ ("\\HiG" ?ሒ)
+ ("\\HaG" ?ሓ)
+ ("\\HEG" ?ሔ)
+ ("\\HG" ?ሕ)
+ ("\\HoG" ?ሖ)
+ ("\\HWaG" ?ሗ)
+ ("\\meG" ?መ)
+ ("\\muG" ?ሙ)
+ ("\\miG" ?ሚ)
+ ("\\maG" ?ማ)
+ ("\\mEG" ?ሜ)
+ ("\\mG" ?áˆ)
+ ("\\moG" ?ሞ)
+ ("\\mWaG" ?ሟ)
+
+ ("\\sseG" ?ሠ)                               ; U+1220 ..
+ ("\\ssuG" ?ሡ)
+ ("\\ssiG" ?ሢ)
+ ("\\ssaG" ?ሣ)
+ ("\\ssEG" ?ሤ)
+ ("\\ssG" ?ሥ)
+ ("\\ssoG" ?ሦ)
+ ("\\ssWaG" ?ሧ)
+ ("\\reG" ?ረ)
+ ("\\ruG" ?ሩ)
+ ("\\riG" ?ሪ)
+ ("\\raG" ?ራ)
+ ("\\rEG" ?ሬ)
+ ("\\rG" ?ር)
+ ("\\roG" ?ሮ)
+ ("\\rWaG" ?ሯ)
+
+ ("\\seG" ?ሰ)                                ; U+1230 ..
+ ("\\suG" ?ሱ)
+ ("\\siG" ?ሲ)
+ ("\\saG" ?ሳ)
+ ("\\sEG" ?ሴ)
+ ("\\sG" ?ስ)
+ ("\\soG" ?ሶ)
+ ("\\sWaG" ?ሷ)
+ ("\\xeG" ?ሸ)
+ ("\\xuG" ?ሹ)
+ ("\\xiG" ?ሺ)
+ ("\\xaG" ?ሻ)
+ ("\\xEG" ?ሼ)
+ ("\\xG" ?ሽ)
+ ("\\xoG" ?ሾ)
+ ("\\xWaG" ?ሿ)
+
+ ("\\qeG" ?ቀ)                                ; U+1240 ..
+ ("\\quG" ?á‰)
+ ("\\qiG" ?ቂ)
+ ("\\qaG" ?ቃ)
+ ("\\qEG" ?ቄ)
+ ("\\qG" ?ቅ)
+ ("\\qoG" ?ቆ)
+ ;; reserved
+ ("\\qWeG" ?ቈ)
+ ;; reserved
+ ("\\qWiG" ?ቊ)
+ ("\\qWaG" ?ቋ)
+ ("\\qWEG" ?ቌ)
+ ("\\qWG" ?á‰)
+ ;; reserved
+ ;; reserved
+
+ ("\\QeG" ?á‰)                                ; U+1250 ..
+ ("\\QuG" ?ቑ)
+ ("\\QiG" ?ቒ)
+ ("\\QaG" ?ቓ)
+ ("\\QEG" ?ቔ)
+ ("\\QG" ?ቕ)
+ ("\\QoG" ?ቖ)
+ ;; reserved
+ ("\\QWeG" ?ቘ)
+ ;; reserved
+ ("\\QWiG" ?ቚ)
+ ("\\QWaG" ?ቛ)
+ ("\\QWEG" ?ቜ)
+ ("\\QWG" ?á‰)
+ ;; reserved
+ ;; reserved
+
+ ("\\beG" ?በ)                                ; U+1260 ..
+ ("\\buG" ?ቡ)
+ ("\\biG" ?ቢ)
+ ("\\baG" ?ባ)
+ ("\\bEG" ?ቤ)
+ ("\\bG" ?ብ)
+ ("\\boG" ?ቦ)
+ ("\\bWaG" ?ቧ)
+ ("\\veG" ?ቨ)
+ ("\\vuG" ?ቩ)
+ ("\\viG" ?ቪ)
+ ("\\vaG" ?ቫ)
+ ("\\vEG" ?ቬ)
+ ("\\vG" ?ቭ)
+ ("\\voG" ?ቮ)
+ ("\\vWaG" ?ቯ)
+
+ ("\\teG" ?ተ)                                ; U+1270 ..
+ ("\\tuG" ?ቱ)
+ ("\\tiG" ?ቲ)
+ ("\\taG" ?ታ)
+ ("\\tEG" ?ቴ)
+ ("\\tG" ?ት)
+ ("\\toG" ?ቶ)
+ ("\\tWaG" ?ቷ)
+ ("\\ceG" ?ቸ)
+ ("\\cuG" ?ቹ)
+ ("\\ciG" ?ቺ)
+ ("\\caG" ?ቻ)
+ ("\\cEG" ?ቼ)
+ ("\\cG" ?ች)
+ ("\\coG" ?ቾ)
+ ("\\cWaG" ?ቿ)
+
+ ("\\hheG" ?ኀ)                               ; U+1280 ..
+ ("\\hhuG" ?áŠ)
+ ("\\hhiG" ?ኂ)
+ ("\\hhaG" ?ኃ)
+ ("\\hhEG" ?ኄ)
+ ("\\hhG" ?ኅ)
+ ("\\hhoG" ?ኆ)
+ ;; reserved
+ ("\\hWeG" ?ኈ)
+ ;; reserved
+ ("\\hWiG" ?ኊ)
+ ("\\hWaG" ?ኋ)
+ ("\\hWEG" ?ኌ)
+ ("\\hWG" ?áŠ)
+ ;; reserved
+ ;; reserved
+
+ ("\\neG" ?áŠ)                                ; U+1290 ..
+ ("\\nuG" ?ኑ)
+ ("\\niG" ?ኒ)
+ ("\\naG" ?ና)
+ ("\\nEG" ?ኔ)
+ ("\\nG" ?ን)
+ ("\\noG" ?ኖ)
+ ("\\nWaG" ?ኗ)
+ ("\\NeG" ?ኘ)
+ ("\\NuG" ?ኙ)
+ ("\\NiG" ?ኚ)
+ ("\\NaG" ?ኛ)
+ ("\\NEG" ?ኜ)
+ ("\\NG" ?áŠ)
+ ("\\NoG" ?ኞ)
+ ("\\NWaG" ?ኟ)
+
+ ("\\eG" ?አ)                         ; U+12A0 ..
+ ("\\uG" ?ኡ)
+ ("\\iG" ?ኢ)
+ ("\\AG" ?ኣ)
+ ("\\EG" ?ኤ)
+ ("\\IG" ?እ)
+ ("\\oG" ?ኦ)
+ ("\\eaG" ?ኧ)
+ ("\\keG" ?ከ)
+ ("\\kuG" ?ኩ)
+ ("\\kiG" ?ኪ)
+ ("\\kaG" ?ካ)
+ ("\\kEG" ?ኬ)
+ ("\\kG" ?ክ)
+ ("\\koG" ?ኮ)
+ ;; reserved
+
+ ("\\kWeG" ?ኰ)                               ; U+12B0 ..
+ ;; reserved
+ ("\\kWiG" ?ኲ)
+ ("\\kWaG" ?ኳ)
+ ("\\kWEG" ?ኴ)
+ ("\\kWG" ?ኵ)
+ ;; reserved
+ ;; reserved
+ ("\\KeG" ?ኸ)
+ ("\\KuG" ?ኹ)
+ ("\\KiG" ?ኺ)
+ ("\\KaG" ?ኻ)
+ ("\\KEG" ?ኼ)
+ ("\\KG" ?ኽ)
+ ("\\KoG" ?ኾ)
+ ;; reserved
+
+ ("\\KWeG" ?á‹€)                               ; U+12C0 ..
+ ;; reserved
+ ("\\KWiG" ?á‹‚)
+ ("\\KWaG" ?ዃ)
+ ("\\KWEG" ?á‹„)
+ ("\\KWG" ?á‹…)
+ ;; reserved
+ ;; reserved
+ ("\\weG" ?ወ)
+ ("\\wuG" ?ዉ)
+ ("\\wiG" ?á‹Š)
+ ("\\waG" ?á‹‹)
+ ("\\wEG" ?á‹Œ)
+ ("\\wG" ?á‹)
+ ("\\woG" ?á‹Ž)
+ ;; reserved
+
+ ("\\eeG" ?á‹)                                ; U+12D0 ..
+ ("\\uuG" ?á‹‘)
+ ("\\iiG" ?á‹’)
+ ("\\aaG" ?á‹“)
+ ("\\EEG" ?á‹”)
+ ("\\IIG" ?á‹•)
+ ("\\ooG" ?á‹–)
+ ;; reserved
+ ("\\zeG" ?ዘ)
+ ("\\zuG" ?á‹™)
+ ("\\ziG" ?á‹š)
+ ("\\zaG" ?á‹›)
+ ("\\zEG" ?á‹œ)
+ ("\\zG" ?á‹)
+ ("\\zoG" ?á‹ž)
+ ("\\zWaG" ?á‹Ÿ)
+
+ ("\\ZeG" ?á‹ )                                ; U+12E0 ..
+ ("\\ZuG" ?á‹¡)
+ ("\\ZiG" ?á‹¢)
+ ("\\ZaG" ?á‹£)
+ ("\\ZEG" ?ዤ)
+ ("\\ZG" ?á‹¥)
+ ("\\ZoG" ?ዦ)
+ ("\\ZWaG" ?ዧ)
+ ("\\yeG" ?የ)
+ ("\\yuG" ?á‹©)
+ ("\\yiG" ?ዪ)
+ ("\\yaG" ?á‹«)
+ ("\\yEG" ?ዬ)
+ ("\\yG" ?á‹­)
+ ("\\yoG" ?á‹®)
+ ;; reserved
+
+ ("\\deG" ?á‹°)                                ; U+12F0 ..
+ ("\\duG" ?ዱ)
+ ("\\diG" ?ዲ)
+ ("\\daG" ?ዳ)
+ ("\\dEG" ?á‹´)
+ ("\\dG" ?ድ)
+ ("\\doG" ?ዶ)
+ ("\\dWaG" ?á‹·)
+ ("\\DeG" ?ዸ)
+ ("\\DuG" ?ዹ)
+ ("\\DiG" ?ዺ)
+ ("\\DaG" ?á‹»)
+ ("\\DEG" ?ዼ)
+ ("\\DG" ?ዽ)
+ ("\\DoG" ?ዾ)
+ ("\\DWaG" ?á‹¿)
+
+ ("\\jeG" ?ጀ)                                ; U+1300 ..
+ ("\\juG" ?áŒ)
+ ("\\jiG" ?ጂ)
+ ("\\jaG" ?ጃ)
+ ("\\jEG" ?ጄ)
+ ("\\jG" ?ጅ)
+ ("\\joG" ?ጆ)
+ ("\\jWaG" ?ጇ)
+ ("\\geG" ?ገ)
+ ("\\guG" ?ጉ)
+ ("\\giG" ?ጊ)
+ ("\\gaG" ?ጋ)
+ ("\\gEG" ?ጌ)
+ ("\\gG" ?áŒ)
+ ("\\goG" ?ጎ)
+ ;; reserved
+
+ ("\\gWeG" ?áŒ)                               ; U+1310 ..
+ ;; reserved
+ ("\\gWiG" ?ጒ)
+ ("\\gWaG" ?ጓ)
+ ("\\gWEG" ?ጔ)
+ ("\\gWG" ?ጕ)
+ ;; reserved
+ ;; reserved
+ ("\\GeG" ?ጘ)
+ ("\\GuG" ?ጙ)
+ ("\\GiG" ?ጚ)
+ ("\\GaG" ?ጛ)
+ ("\\GEG" ?ጜ)
+ ("\\GG" ?áŒ)
+ ("\\GoG" ?ጞ)
+ ;; reserved
+
+ ("\\TeG" ?ጠ)                                ; U+1320 ..
+ ("\\TuG" ?ጡ)
+ ("\\TiG" ?ጢ)
+ ("\\TaG" ?ጣ)
+ ("\\TEG" ?ጤ)
+ ("\\TG" ?ጥ)
+ ("\\ToG" ?ጦ)
+ ("\\TWaG" ?ጧ)
+ ("\\CeG" ?ጨ)
+ ("\\CuG" ?ጩ)
+ ("\\CiG" ?ጪ)
+ ("\\CaG" ?ጫ)
+ ("\\CEG" ?ጬ)
+ ("\\CG" ?ጭ)
+ ("\\CoG" ?ጮ)
+ ("\\CWaG" ?ጯ)
+
+ ("\\PeG" ?ጰ)                                ; U+1330 ..
+ ("\\PuG" ?ጱ)
+ ("\\PiG" ?ጲ)
+ ("\\PaG" ?ጳ)
+ ("\\PEG" ?ጴ)
+ ("\\PG" ?ጵ)
+ ("\\PoG" ?ጶ)
+ ("\\PWaG" ?ጷ)
+ ("\\SeG" ?ጸ)
+ ("\\SuG" ?ጹ)
+ ("\\SiG" ?ጺ)
+ ("\\SaG" ?ጻ)
+ ("\\SEG" ?ጼ)
+ ("\\SG" ?ጽ)
+ ("\\SoG" ?ጾ)
+ ("\\SWaG" ?ጿ)
+
+ ("\\SSeG" ?á€)                               ; U+1340 ..
+ ("\\SSuG" ?á)
+ ("\\SSiG" ?á‚)
+ ("\\SSaG" ?áƒ)
+ ("\\SSEG" ?á„)
+ ("\\SSG" ?á…)
+ ("\\SSoG" ?á†)
+ ;; reserved
+ ("\\feG" ?áˆ)
+ ("\\fuG" ?á‰)
+ ("\\fiG" ?áŠ)
+ ("\\faG" ?á‹)
+ ("\\fEG" ?áŒ)
+ ("\\fG" ?á)
+ ("\\foG" ?áŽ)
+ ("\\fWaG" ?á)
+
+ ("\\peG" ?á)                                ; U+1350 ..
+ ("\\puG" ?á‘)
+ ("\\piG" ?á’)
+ ("\\paG" ?á“)
+ ("\\pEG" ?á”)
+ ("\\pG" ?á•)
+ ("\\poG" ?á–)
+ ("\\pWaG" ?á—)
+ ("\\mYaG" ?á˜)
+ ("\\rYaG" ?á™)
+ ("\\fYaG" ?áš)
+ ;; reserved
+ ;; reserved
+ ;; reserved
+ ;; reserved
+ ;; reserved
+
+ ;; reserved                           ; U+1360 ..
+ ("\\spaceG" ?á¡)
+ ("\\periodG" ?á¢)
+ ("\\commaG" ?á£)
+ ("\\semicolonG" ?á¤)
+ ("\\colonG" ?á¥)
+ ("\\precolonG" ?á¦)
+ ("\\oldqmarkG" ?á§)
+ ("\\pbreakG" ?á¨)
+ ("\\andG" ?á©)
+ ("\\huletG" ?áª)
+ ("\\sostG" ?á«)
+ ("\\aratG" ?á¬)
+ ("\\amstG" ?á­)
+ ("\\sadstG" ?á®)
+ ("\\sabatG" ?á¯)
+
+ ("\\smntG" ?á°)                      ; U+1370 ..
+ ("\\zeteNG" ?á±)
+ ("\\asrG" ?á²)
+ ("\\heyaG" ?á³)
+ ("\\selasaG" ?á´)
+ ("\\arbaG" ?áµ)
+ ("\\hemsaG" ?á¶)
+ ("\\slsaG" ?á·)
+ ("\\sebaG" ?á¸)
+ ("\\semanyaG" ?á¹)
+ ("\\zeTanaG" ?áº)
+ ("\\metoG" ?á»)
+ ("\\asrxiG" ?á¼)
+ ;; reserved
+ ;; reserved
+ ;; reserved
+
+ ;;
+ ;; private extension
+ ;;
+
+ ("\\yWaG" ?ö ƒ¯)                              ; U+1A00EF (was U+12EF)
+
+ ("\\GWaG" ?ö „Ÿ)                              ; U+1A011F (was U+131F)
+
+ ("\\qqeG" ?ö †€)                              ; U+1A0180 .. (was U+1380 ..)
+ ("\\qquG" ?ö †)
+ ("\\qqiG" ?ö †‚)
+ ("\\qqaG" ?ö †ƒ)
+ ("\\qqEG" ?ö †„)
+ ("\\qqG" ?ö †…)
+ ("\\qqoG" ?ö ††)
+ ;; unused
+ ("\\MWeG" ?ö †ˆ)
+ ("\\bWeG" ?ö †‰)
+ ("\\GWeG" ?ö †Š)
+ ("\\fWeG" ?ö †‹)
+ ("\\pWeG" ?ö †Œ)
+ ;; unused
+ ;; unused
+ ;; unused
+
+ ("\\kkeG" ?ö †)                              ; U+1A0190 .. (was U+1390 ..)
+ ("\\kkuG" ?ö †‘)
+ ("\\kkiG" ?ö †’)
+ ("\\kkaG" ?ö †“)
+ ("\\kkEG" ?ö †”)
+ ("\\kkG" ?ö †•)
+ ("\\kkoG" ?ö †–)
+ ;; unused
+ ("\\mWiG" ?ö †˜)
+ ("\\bWiG" ?ö †™)
+ ("\\GWiG" ?ö †š)
+ ("\\fWiG" ?ö †›)
+ ("\\pWiG" ?ö †œ)
+ ;; unused
+ ;; unused
+ ;; unused
+
+ ("\\XeG" ?ö † )                               ; U+1A01A0 .. (was U+13A0 ..)
+ ("\\XuG" ?ö †¡)
+ ("\\XiG" ?ö †¢)
+ ("\\XaG" ?ö †£)
+ ("\\XEG" ?ö †¤)
+ ("\\XG" ?ö †¥)
+ ("\\XoG" ?ö †¦)
+ ;; unused
+ ("\\mWEG" ?ö †¨)
+ ("\\bWEG" ?ö †©)
+ ("\\GWEG" ?ö †ª)
+ ("\\fWEG" ?ö †«)
+ ("\\pWEG" ?ö †¬)
+ ;; unused
+ ;; unused
+ ;; unused
+
+ ("\\ggeG" ?ö †°)                              ; U+1A01B0 .. (was U+13B0 ..)
+ ("\\gguG" ?ö †±)
+ ("\\ggiG" ?ö †²)
+ ("\\ggaG" ?ö †³)
+ ("\\ggEG" ?ö †´)
+ ("\\ggG" ?ö †µ)
+ ("\\ggoG" ?ö †¶)
+ ;; unused
+ ("\\mWG" ?ö †¸)
+ ("\\bWG" ?ö †¹)
+ ("\\GWG" ?ö †º)
+ ("\\fWG" ?ö †»)
+ ("\\pWG" ?ö †¼)
+ ;; unused
+ ;; unused
+ ;; unused
+
+ ("\\ornamentG" ?ö ‡€)                 ; U+1A01C0 .. (was U+FDF0 ..)
+ ("\\flandG" ?ö ‡)
+ ("\\iflandG" ?ö ‡‚)
+ ("\\africaG" ?ö ‡ƒ)
+ ("\\iafricaG" ?ö ‡„)
+ ("\\wWeG" ?ö ‡…)
+ ("\\wWiG" ?ö ‡†)
+ ("\\wWaG" ?ö ‡‡)
+ ("\\wWEG" ?ö ‡ˆ)
+ ("\\wWG" ?ö ‡‰)
+ ;; Gemination (ö ‡Š) is handled in a special way.
+ ("\\slaqG" ?ö ‡‹)
+
+ ;; Assign reverse conversion to Fidel chars.
+ ;; Then override forward conversion with ASCII chars.
+ ;; ASCII chars should not have reverse conversions.
+ ("\\dotG" ?ö ‡Œ) ("\\dotG" ".")
+ ("\\lquoteG" ?ö ‡) ("\\lquoteG" "«")
+ ("\\rquoteG" ?ö ‡Ž) ("\\rquoteG" "»")
+ ("\\qmarkG" ?ö ‡) ("\\qmarkG" "?")
+
+ ;;
+ ;; New characters in Unicode 4.1.
+ ;;
+ ;; In forward conversion, these characters override the old private
+ ;; extensions above.  The old private extensions still keep their
+ ;; reverse conversion.
+ ;;
+
+ ("\\ornamentG" ?á )
+ ("\\yWaG" ?ዯ)
+ ("\\GWaG" ?ጟ)
+ ("\\MWeG" ?ᎀ)
+ ("\\mWiG" ?áŽ)
+ ("\\mWEG" ?ᎂ)
+ ("\\mWG" ?ᎃ)
+ ("\\bWeG" ?ᎄ)
+ ("\\bWiG" ?ᎅ)
+ ("\\bWEG" ?ᎆ)
+ ("\\bWG" ?ᎇ)
+ ("\\fWeG" ?ᎈ)
+ ("\\fWiG" ?ᎉ)
+ ("\\fWEG" ?ᎊ)
+ ("\\fWG" ?ᎋ)
+ ("\\pWeG" ?ᎌ)
+ ("\\pWiG" ?áŽ)
+ ("\\pWEG" ?ᎎ)
+ ("\\pWG" ?áŽ)
+ ("\\GWeG" ?ⶓ)
+ ("\\GWiG" ?ⶔ)
+ ("\\GWEG" ?ⶕ)
+ ("\\GWG" ?ⶖ)
+ ("\\qqeG" ?â·€)
+ ("\\qquG" ?â·)
+ ("\\qqiG" ?â·‚)
+ ("\\qqaG" ?â·ƒ)
+ ("\\qqEG" ?â·„)
+ ("\\qqG" ?â·…)
+ ("\\qqoG" ?â·†)
+ ("\\kkeG" ?â·ˆ)
+ ("\\kkuG" ?â·‰)
+ ("\\kkiG" ?â·Š)
+ ("\\kkaG" ?â·‹)
+ ("\\kkEG" ?â·Œ)
+ ("\\kkG" ?â·)
+ ("\\kkoG" ?â·Ž)
+ ("\\XeG" ?â·)
+ ("\\XuG" ?â·‘)
+ ("\\XiG" ?â·’)
+ ("\\XaG" ?â·“)
+ ("\\XEG" ?â·”)
+ ("\\XG" ?â·•)
+ ("\\XoG" ?â·–)
+ ("\\ggeG" ?â·˜)
+ ("\\gguG" ?â·™)
+ ("\\ggiG" ?â·š)
+ ("\\ggaG" ?â·›)
+ ("\\ggEG" ?â·œ)
+ ("\\ggG" ?â·)
+ ("\\ggoG" ?â·ž)
+ )
+
+;; The ethiopic-tex package is not used for keyboard input, therefore
+;; not registered with the register-input-method function.
 
-;;
 (provide 'ethio-util)
 
+;;; ethio-util.el ends here
+
 ;;; arch-tag: c8feb3d6-39bf-4b0a-b6ef-26f03fbc8140
 ;;; ethio-util.el ends here
index 3fb42d33bca1b76c19bda9769edff847f6aba0cd..0634169b6efaddee32bea00191e5c44379f037bc 100644 (file)
@@ -1,4 +1,4 @@
-;;; ethiopic.el --- support for Ethiopic -*- coding: iso-2022-7bit; -*-
+;;; ethiopic.el --- support for Ethiopic       -*- coding: utf-8-emacs; -*-
 
 ;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   Free Software Foundation, Inc.
      (r1 *= 94)
      (r2 += r1)
      (if (r2 < 256)
-        (r1 = ?\x12)
+        (r1 = #x12)
        (if (r2 < 448)
-          ((r1 = ?\x13) (r2 -= 256))
-        ((r1 = ?\xfd) (r2 -= 208))
+          ((r1 = #x13) (r2 -= 256))
+        ((r1 = #xfd) (r2 -= 208))
         ))))
   "CCL program to encode an Ethiopic code to code point of Ethiopic font.")
 
  "Ethiopic" '((setup-function . setup-ethiopic-environment-internal)
              (exit-function . exit-ethiopic-environment)
              (charset ethiopic)
-             (coding-system iso-2022-7bit)
-             (coding-priority iso-2022-7bit)
+             (coding-system utf-8-emacs)
+             (coding-priority utf-8-emacs)
              (input-method . "ethiopic")
              (features ethio-util)
-             (sample-text . "\e$(3$Q#U!.\e(B")
+             (sample-text . "áŠá‹°áˆ")
              (documentation .
-"This language envrironment provides these function key bindings
-    \(old bindings are shown in parentheses):
-    [f3]   ethio-fidel-to-sera-buffer         (f5)
-    [S-f3] ethio-fidel-to-sera-region         (f5)
-    [C-f3] ethio-fidel-to-sera-mail-or-marker (f5)
-
-    [f4]   ethio-sera-to-fidel-buffer         (unchanged)
-    [S-f4] ethio-sera-to-fidel-region         (unchanged)
-    [C-f4] ethio-sera-to-fidel-mail-or-marker (unchanged)
-
-    [S-f5] ethio-toggle-punctuation           (f3)
-    [S-f6] ethio-modify-vowel                 (f6)
-    [S-f7] ethio-replace-space                (f7)
-    [S-f8] ethio-input-special-character      (f8)
-    [S-f9] ethio-replace-space                (unchanged)
-    [C-f9] ethio-toggle-space                 (f2)"
+"This language envrironment provides these function key bindings:
+    [f3]   ethio-fidel-to-sera-buffer
+    [S-f3] ethio-fidel-to-sera-region
+    [C-f3] ethio-fidel-to-sera-marker
+
+    [f4]   ethio-sera-to-fidel-buffer
+    [S-f4] ethio-sera-to-fidel-region
+    [C-f4] ethio-sera-to-fidel-marker
+
+    [S-f5] ethio-toggle-punctuation
+    [S-f6] ethio-modify-vowel
+    [S-f7] ethio-replace-space
+
+    [S-f9] ethio-replace-space
+    [C-f9] ethio-toggle-space"
 )))
 
+;; For automatic composition
+(aset composition-function-table ?ö ‡Š 'ethio-composition-function)
+(aset composition-function-table ?០'ethio-composition-function)
+
 (provide 'ethiopic)
 
 ;;; arch-tag: e81329d9-1286-43ba-92fd-54ce5c7b213c
index 8d0a5c6997decb3d76ff64a1365afabf235c017b..287231db9335108d4a7eb71de4c3d1c54f2ea4fe 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: multilingual, European
 
 ;; Latin-1 (ISO-8859-1)
 
 (set-language-info-alist
- "Latin-1" '((charset ascii latin-iso8859-1)
-            (coding-system iso-latin-1)
-            (coding-priority iso-latin-1 windows-1252)
-            (nonascii-translation . latin-iso8859-1)
-            (unibyte-syntax . "latin-1")
+ "Latin-1" '((charset iso-8859-1)
+            (coding-system iso-latin-1 iso-latin-9 windows-1252)
+            (coding-priority iso-latin-1)
+            (nonascii-translation . iso-8859-1)
             (unibyte-display . iso-latin-1)
             (input-method . "latin-1-prefix")
             (sample-text
-             . "Hello, Hej, Tere, Hei, Bonjour, Gr\e,A|_\e(B Gott, Ciao, \e,A!\e(BHola!")
+             . "Hello, Hej, Tere, Hei, Bonjour, Gr\e$(D+d)N\e(B Gott, Ciao, \e$(D"B\e(BHola!")
             (documentation . "\
 This language environment is a generic one for the Latin-1 (ISO-8859-1)
 character set which supports the following European languages:
@@ -65,42 +67,24 @@ Latin-1 also covers several written languages outside Europe, including
 Indonesian/Malay, Tagalog (Philippines), Swahili and Afrikaans."))
  '("European"))
 
-(eval-and-compile
-  (setq
-   non-iso-charset-alist
-   (cp-make-coding-system
-    windows-1252
-    [?\\e$,1tL\e(B nil ?\\e$,1rz\e(B ?\\e$,1!R\e(B ?\\e$,1r~\e(B ?\\e$,1s&\e(B ?\\e$,1s \e(B ?\\e$,1s!\e(B ?\\e$,1$f\e(B ?\\e$,1s0\e(B ?\\e$,1! \e(B ?\\e$,1s9\e(B ?\\e$,1 r\e(B nil ?\\e$,1!=\e(B nil nil
-        ?\\e$,1rx\e(B ?\\e$,1ry\e(B ?\\e$,1r|\e(B ?\\e$,1r}\e(B ?\\e$,1s"\e(B ?\\e$,1rs\e(B ?\\e$,1rt\e(B ?\\e$,1$|\e(B ?\\e$,1ub\e(B ?\\e$,1!!\e(B ?\\e$,1s:\e(B ?\\e$,1 s\e(B nil ?\\e$,1!>\e(B ?\\e$,1!8\e(B ?\\e,A \e(B ?\\e,A!\e(B
-        ?\\e,A"\e(B ?\\e,A#\e(B ?\\e,A$\e(B ?\\e,A%\e(B ?\\e,A&\e(B ?\\e,A'\e(B ?\\e,A(\e(B ?\\e,A)\e(B ?\\e,A*\e(B ?\\e,A+\e(B ?\\e,A,\e(B ?\\e,A-\e(B ?\\e,A.\e(B ?\\e,A/\e(B ?\\e,A0\e(B ?\\e,A1\e(B ?\\e,A2\e(B
-        ?\\e,A3\e(B ?\\e,A4\e(B ?\\e,A5\e(B ?\\e,A6\e(B ?\\e,A7\e(B ?\\e,A8\e(B ?\\e,A9\e(B ?\\e,A:\e(B ?\\e,A;\e(B ?\\e,A<\e(B ?\\e,A=\e(B ?\\e,A>\e(B ?\\e,A?\e(B ?\\e,A@\e(B ?\\e,AA\e(B ?\\e,AB\e(B ?\\e,AC\e(B
-        ?\\e,AD\e(B ?\\e,AE\e(B ?\\e,AF\e(B ?\\e,AG\e(B ?\\e,AH\e(B ?\\e,AI\e(B ?\\e,AJ\e(B ?\\e,AK\e(B ?\\e,AL\e(B ?\\e,AM\e(B ?\\e,AN\e(B ?\\e,AO\e(B ?\\e,AP\e(B ?\\e,AQ\e(B ?\\e,AR\e(B ?\\e,AS\e(B ?\\e,AT\e(B
-        ?\\e,AU\e(B ?\\e,AV\e(B ?\\e,AW\e(B ?\\e,AX\e(B ?\\e,AY\e(B ?\\e,AZ\e(B ?\\e,A[\e(B ?\\e,A\\e(B ?\\e,A]\e(B ?\\e,A^\e(B ?\\e,A_\e(B ?\\e,A`\e(B ?\\e,Aa\e(B ?\\e,Ab\e(B ?\\e,Ac\e(B ?\\e,Ad\e(B ?\\e,Ae\e(B
-        ?\\e,Af\e(B ?\\e,Ag\e(B ?\\e,Ah\e(B ?\\e,Ai\e(B ?\\e,Aj\e(B ?\\e,Ak\e(B ?\\e,Al\e(B ?\\e,Am\e(B ?\\e,An\e(B ?\\e,Ao\e(B ?\\e,Ap\e(B ?\\e,Aq\e(B ?\\e,Ar\e(B ?\\e,As\e(B ?\\e,At\e(B ?\\e,Au\e(B ?\\e,Av\e(B
-        ?\\e,Aw\e(B ?\\e,Ax\e(B ?\\e,Ay\e(B ?\\e,Az\e(B ?\\e,A{\e(B ?\\e,A|\e(B ?\\e,A}\e(B ?\\e,A~\e(B ?\\e,A\7f\e(B])))
-
-(define-coding-system-alias 'cp1252 'windows-1252)
-
 \f
 ;; Latin-2 (ISO-8859-2)
 
-(make-coding-system
- 'iso-latin-2 2 ?2
- "ISO 2022 based 8-bit encoding for Latin-2 (MIME:ISO-8859-2)."
- '(ascii latin-iso8859-2 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t)
- '((safe-charsets ascii latin-iso8859-2)
-   (mime-charset . iso-8859-2)))
+(define-coding-system 'iso-latin-2
+   "ISO 2022 based 8-bit encoding for Latin-2 (MIME:ISO-8859-2)."
+  :coding-type 'charset
+  :mnemonic ?2
+  :charset-list '(iso-8859-2)
+  :mime-charset 'iso-8859-2)
 
 (define-coding-system-alias 'iso-8859-2 'iso-latin-2)
 (define-coding-system-alias 'latin-2 'iso-latin-2)
 
 (set-language-info-alist
- "Latin-2" '((charset ascii latin-iso8859-2)
-            (coding-system iso-latin-2)
+ "Latin-2" '((charset iso-8859-2)
+            (coding-system iso-latin-2 windows-1250)
             (coding-priority iso-latin-2)
-            (nonascii-translation . latin-iso8859-2)
-            (unibyte-syntax . "latin-2")
+            (nonascii-translation . iso-8859-2)
             (unibyte-display . iso-latin-2)
             (input-method . "latin-2-prefix")
             (documentation . "\
@@ -112,6 +96,7 @@ character set which supports the following languages:
 We also have specific language environments for the following languages:
   For Czech, \"Czech\".
   For Croatian, \"Croatian\".
+  For Polish, \"Polish\".
   For Romanian, \"Romanian\".
   For Slovak, \"Slovak\"."))
  '("European"))
@@ -119,23 +104,21 @@ We also have specific language environments for the following languages:
 \f
 ;; Latin-3 (ISO-8859-3)
 
-(make-coding-system
- 'iso-latin-3 2 ?3
- "ISO 2022 based 8-bit encoding for Latin-3 (MIME:ISO-8859-3)."
- '(ascii latin-iso8859-3 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t)
- '((safe-charsets ascii latin-iso8859-3)
-   (mime-charset . iso-8859-3)))
+(define-coding-system 'iso-latin-3
+  "ISO 2022 based 8-bit encoding for Latin-3 (MIME:ISO-8859-3)."
+  :coding-type 'charset
+  :mnemonic ?3
+  :charset-list '(iso-8859-3)
+  :mime-charset 'iso-8859-3)
 
 (define-coding-system-alias 'iso-8859-3 'iso-latin-3)
 (define-coding-system-alias 'latin-3 'iso-latin-3)
 
 (set-language-info-alist
- "Latin-3" '((charset ascii latin-iso8859-3)
+ "Latin-3" '((charset iso-8859-3)
             (coding-system iso-latin-3)
             (coding-priority iso-latin-3)
-            (nonascii-translation . latin-iso8859-3)
-            (unibyte-syntax . "latin-3")
+            (nonascii-translation . iso-8859-3)
             (unibyte-display . iso-latin-3)
             (input-method . "latin-3-prefix")
             (documentation . "\
@@ -147,23 +130,21 @@ These languages are supported with the Latin-3 (ISO-8859-3) character set:
 \f
 ;; Latin-4 (ISO-8859-4)
 
-(make-coding-system
- 'iso-latin-4 2 ?4
- "ISO 2022 based 8-bit encoding for Latin-4 (MIME:ISO-8859-4)."
- '(ascii latin-iso8859-4 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t)
- '((safe-charsets ascii latin-iso8859-4)
-   (mime-charset . iso-8859-4)))
+(define-coding-system 'iso-latin-4
+  "ISO 2022 based 8-bit encoding for Latin-4 (MIME:ISO-8859-4)."
+  :coding-type 'charset
+  :mnemonic ?4
+  :charset-list '(iso-8859-4)
+  :mime-charset 'iso-8859-4)
 
 (define-coding-system-alias 'iso-8859-4 'iso-latin-4)
 (define-coding-system-alias 'latin-4 'iso-latin-4)
 
 (set-language-info-alist
- "Latin-4" '((charset ascii latin-iso8859-4)
+ "Latin-4" '((charset iso-8859-4)
             (coding-system iso-8859-4)
             (coding-priority iso-8859-4)
-            (nonascii-translation . latin-iso8859-4)
-            (unibyte-syntax . "latin-4")
+            (nonascii-translation . iso-8859-4)
             (unibyte-display . iso-8859-4)
             (input-method . "latin-4-postfix")
             (documentation . "\
@@ -175,53 +156,95 @@ These languages are supported with the Latin-4 (ISO-8859-4) character set:
 \f
 ;; Latin-5 (ISO-8859-9)
 
-(make-coding-system
- 'iso-latin-5 2 ?9
- "ISO 2022 based 8-bit encoding for Latin-5 (MIME:ISO-8859-9)."
- '(ascii latin-iso8859-9 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t)
- '((safe-charsets ascii latin-iso8859-9)
-   (mime-charset . iso-8859-9)))
+(define-coding-system 'iso-latin-5
+  "ISO 2022 based 8-bit encoding for Latin-5 (MIME:ISO-8859-9)."
+  :coding-type 'charset
+  :mnemonic ?9
+  :charset-list '(iso-8859-9)
+  :mime-charset 'iso-8859-9)
 
 (define-coding-system-alias 'iso-8859-9 'iso-latin-5)
 (define-coding-system-alias 'latin-5 'iso-latin-5)
 
 (set-language-info-alist
- "Latin-5" '((charset ascii latin-iso8859-9)
+ "Latin-5" '((charset iso-8859-9)
             (coding-system iso-latin-5)
             (coding-priority iso-latin-5)
-            (nonascii-translation . latin-iso8859-9)
-            (unibyte-syntax . "latin-5")
+            (nonascii-translation . iso-8859-9)
             (unibyte-display . iso-latin-5)
             (input-method . "latin-5-postfix")
-            (documentation . "Support for Turkish language."))
+            (documentation . "Support for Latin-5.\
+See also the Turkish environment."))
  '("European"))
 
 \f
+;; Latin-6 (ISO-8859-10)
+
+(define-coding-system 'iso-latin-6
+  "ISO 2022 based 8-bit encoding for Latin-6 (MIME:ISO-8859-10)."
+  :coding-type 'charset
+  :mnemonic ?9
+  :charset-list '(iso-8859-10)
+  :mime-charset 'iso-8859-10)
+
+(define-coding-system-alias 'iso-8859-10 'iso-latin-6)
+(define-coding-system-alias 'latin-6 'iso-latin-6)
+
+(set-language-info-alist
+ "Latin-6" '((charset iso-8859-10)
+            (coding-system iso-latin-6)
+            (coding-priority iso-latin-6)
+            (nonascii-translation . iso-8859-10)
+            (unibyte-display . iso-latin-6)
+            ;; Fixme: input method.
+            (documentation . "Support for generic Latin-6 (Northern European)."))
+ '("European"))
+
+\f
+;; Latin-7 (ISO-8859-13)
+
+(define-coding-system 'iso-latin-7
+  "ISO 2022 based 8-bit encoding for Latin-7 (MIME:ISO-8859-13)."
+  :coding-type 'charset
+  :mnemonic ?9
+  :charset-list '(iso-8859-13)
+  :mime-charset 'iso-8859-13)
+
+(define-coding-system-alias 'iso-8859-13 'iso-latin-7)
+(define-coding-system-alias 'latin-7 'iso-latin-7)
+
+(set-language-info-alist
+ "Latin-7" '((charset iso-8859-13)
+            (coding-system iso-latin-7)
+            (coding-priority iso-latin-7)
+            (nonascii-translation . iso-8859-13)
+            (unibyte-display . iso-latin-7)
+            ;; Fixme: input method.
+            (documentation . "Support for generic Latin-7 (Baltic Rim)."))
+ '("European"))
+\f
 ;; Latin-8 (ISO-8859-14)
 
-(make-coding-system
- 'iso-latin-8 2 ?W                     ; `W' for `Welsh', since `C'
-                                       ; for `Celtic' is taken.
- "ISO 2022 based 8-bit encoding for Latin-8 (MIME:ISO-8859-14)."
- '(ascii latin-iso8859-14 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t t)
- '((safe-charsets ascii latin-iso8859-14)
-   (mime-charset . iso-8859-14)))
+(define-coding-system 'iso-latin-8
+  "ISO 2022 based 8-bit encoding for Latin-8 (MIME:ISO-8859-14)."
+  :coding-type 'charset
+  ;; `W' for `Welsh', since `C' for `Celtic' is taken.
+  :mnemonic ?W                         
+  :charset-list '(iso-8859-14)
+  :mime-charset 'iso-8859-14)
 
 (define-coding-system-alias 'iso-8859-14 'iso-latin-8)
 (define-coding-system-alias 'latin-8 'iso-latin-8)
 
 (set-language-info-alist
- "Latin-8" '((charset ascii latin-iso8859-14)
+ "Latin-8" '((charset iso-8859-14)
             (coding-system iso-latin-8)
             (coding-priority iso-latin-8)
-            (nonascii-translation . latin-iso8859-14)
-            (unibyte-syntax . "latin-8")
+            (nonascii-translation . iso-8859-14)
             (unibyte-display . iso-latin-8)
             (input-method . "latin-8-prefix")
             ;; Fixme: Welsh/Ga{e}lic greetings
-            (sample-text . "\e,_"\e(B \e,_p\e(B \e,_^\e(B")
+            (sample-text . "\e,_"\e(B \e$(D+q\e(B \e$(D*t\e(B")
             (documentation . "\
 This language environment is a generic one for the Latin-8 (ISO-8859-14)
 character set which supports the Celtic languages, including those not
@@ -231,42 +254,156 @@ covered by other ISO-8859 character sets:
 \f
 ;; Latin-9 (ISO-8859-15)
 
-(make-coding-system
- 'iso-latin-9 2 ?0                     ; `0' for `Latin-0'
- "ISO 2022 based 8-bit encoding for Latin-9 (MIME:ISO-8859-15)."
- '(ascii latin-iso8859-15 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t t)
'((safe-charsets ascii latin-iso8859-15)
-   (mime-charset . iso-8859-15)))
+(define-coding-system 'iso-latin-9
+  "ISO 2022 based 8-bit encoding for Latin-9 (MIME:ISO-8859-15)."
+  :coding-type 'charset
+  ;; `0' for `Latin-0'
+  :mnemonic ?0
 :charset-list '(iso-8859-15)
+  :mime-charset 'iso-8859-15)
 
 (define-coding-system-alias 'iso-8859-15 'iso-latin-9)
 (define-coding-system-alias 'latin-9 'iso-latin-9)
 (define-coding-system-alias 'latin-0 'iso-latin-9)
 
 (set-language-info-alist
- "Latin-9" '((charset ascii latin-iso8859-15)
+ "Latin-9" '((charset iso-8859-15)
             (coding-system iso-latin-9)
             (coding-priority iso-latin-9)
-            (nonascii-translation . latin-iso8859-15)
-            (unibyte-syntax . "latin-9")
+            (nonascii-translation . iso-8859-15)
             (unibyte-display . iso-latin-9)
             (input-method . "latin-9-prefix")
             (sample-text
-             . "AVE. \e,b&(48<=>\e(B \e,b$\e(B")
+             . "AVE. \e$(D*^+^*v+v)-)M*s\e(B \e$(Q)!\e(B")
             (documentation . "\
 This language environment is a generic one for the Latin-9 (ISO-8859-15)
 character set which supports the same languages as Latin-1 with the
 addition of the Euro sign and some additional French and Finnish letters.
 Latin-9 is sometimes nicknamed `Latin-0'."))
  '("European"))
+
+(set-language-info-alist
+ "Esperanto" '((tutorial . "TUTORIAL.eo")
+              (charset ascii latin-iso8859-3)
+              (coding-system iso-latin-3)
+              (coding-priority iso-latin-3)
+              (nonascii-translation . latin-iso8859-3)
+              (unibyte-syntax . "latin-3")
+              (unibyte-display . iso-latin-3)
+              (input-method . "latin-3-prefix")
+              (documentation . "Support for Esperanto with ISO-8859-3 character set."))
+ '("European"))
+
+\f
+(define-coding-system 'windows-1250
+  "windows-1250 (Central European) encoding (MIME: WINDOWS-1250)"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(windows-1250)
+  :mime-charset 'windows-1250)
+(define-coding-system-alias 'cp1250 'windows-1250)
+
+(define-coding-system 'windows-1252
+  "windows-1252 (Western European) encoding (MIME: WINDOWS-1252)"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(windows-1252)
+  :mime-charset 'windows-1252)
+(define-coding-system-alias 'cp1252 'windows-1252)
+
+(define-coding-system 'windows-1254
+  "windows-1254 (Turkish) encoding (MIME: WINDOWS-1254)"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(windows-1254)
+  :mime-charset 'windows-1254)
+(define-coding-system-alias 'cp1254 'windows-1254)
+
+(define-coding-system 'windows-1257
+  "windows-1257 (Baltic) encoding (MIME: WINDOWS-1257)"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(windows-1257)
+  :mime-charset 'windows-1257)
+(define-coding-system-alias 'cp1257 'windows-1257)
+
+(define-coding-system 'cp850
+  "DOS codepage 850 (Western European)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp850)
+  :mime-charset 'cp850)
+(define-coding-system-alias 'ibm850 'cp850)
+
+(define-coding-system 'cp852
+  "DOS codepage 852 (Slavic)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp852)
+  :mime-charset 'cp852)
+(define-coding-system-alias 'ibm852 'cp852)
+
+(define-coding-system 'cp857
+  "DOS codepage 857 (Turkish)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp857)
+  :mime-charset 'cp857)
+(define-coding-system-alias 'ibm857 'cp857)
+
+(define-coding-system 'cp858
+  "Codepage 858 (Multilingual Latin I + Euro)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp858)
+  :mime-charset 'cp858)
+
+(define-coding-system 'cp860
+  "DOS codepage 860 (Portuguese)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp860)
+  :mime-charset 'cp860)
+(define-coding-system-alias 'ibm860 'cp860)
+
+(define-coding-system 'cp861
+  "DOS codepage 861 (Icelandic)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp861)
+  :mime-charset 'cp861)
+(define-coding-system-alias 'ibm861 'cp861)
+
+(define-coding-system 'cp863
+  "DOS codepage 863 (French Canadian)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp863)
+  :mime-charset 'cp863)
+(define-coding-system-alias 'ibm863 'cp863)
+
+(define-coding-system 'cp865
+  "DOS codepage 865 (Norwegian/Danish)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp865)
+  :mime-charset 'cp865)
+(define-coding-system-alias 'ibm865 'cp865)
+
+(define-coding-system 'cp437
+  "DOS codepage 437"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp437)
+  :mime-charset 'cp437)
+(define-coding-system-alias 'ibm437 'cp437)
 \f
 (set-language-info-alist
  "Dutch" '((tutorial . "TUTORIAL.nl")
-          (charset ascii latin-iso8859-1)
+          (charset iso-8859-1)
           (coding-system iso-latin-1 iso-latin-9)
           (coding-priority iso-latin-1)
-          (nonascii-translation . latin-iso8859-1)
-          (unibyte-syntax . "latin-1")
+          (nonascii-translation . iso-8859-1)
           (unibyte-display . iso-latin-1)
           (input-method . "dutch")
           (sample-text . "Er is een aantal manieren waarop je dit kan doen")
@@ -277,16 +414,15 @@ but it selects the Dutch tutorial and input method."))
 
 (set-language-info-alist
  "German" '((tutorial . "TUTORIAL.de")
-           (charset ascii latin-iso8859-1)
+           (charset iso-8859-1)
            (coding-system iso-latin-1 iso-latin-9)
-           (coding-priority iso-latin-1 windows-1252)
+           (coding-priority iso-latin-1)
+           (nonascii-translation . iso-8859-1)
            (input-method . "german-postfix")
-           (nonascii-translation . latin-iso8859-1)
-           (unibyte-syntax . "latin-1")
            (unibyte-display . iso-latin-1)
            (sample-text . "\
 German (Deutsch Nord)  Guten Tag
-German (Deutsch S\e,A|\e(Bd)     Gr\e,A|_\e(B Gott")
+German (Deutsch S\e$(D+d\e(Bd)   Gr\e$(D+d)N\e(B Gott")
            (documentation . "\
 This language environment is almost the same as Latin-1,
 but sets the default input method to \"german-postfix\".
@@ -295,14 +431,13 @@ Additionally, it selects the German tutorial."))
 
 (set-language-info-alist
  "French" '((tutorial . "TUTORIAL.fr")
-           (charset ascii latin-iso8859-1)
+           (charset iso-8859-1)
            (coding-system iso-latin-1 iso-latin-9)
            (coding-priority iso-latin-1)
-           (nonascii-translation . latin-iso8859-1)
-           (unibyte-syntax . "latin-1")
+           (nonascii-translation . iso-8859-1)
            (unibyte-display . iso-latin-1)
            (input-method . "latin-1-prefix")
-           (sample-text . "French (Fran\e,Ag\e(Bais)     Bonjour, Salut")
+           (sample-text . "French (Fran\e$(D+.\e(Bais)   Bonjour, Salut")
            (documentation . "\
 This language environment is almost the same as Latin-1,
 but it selects the French tutorial and input method."))
@@ -310,11 +445,10 @@ but it selects the French tutorial and input method."))
 
 (set-language-info-alist
  "Italian" '((tutorial . "TUTORIAL.it")
-           (charset ascii latin-iso8859-1)
+           (charset iso-8859-1)
            (coding-system iso-latin-1 iso-latin-9)
            (coding-priority iso-latin-1)
-           (nonascii-translation . latin-iso8859-1)
-           (unibyte-syntax . "latin-1")
+           (nonascii-translation . iso-8859-1)
            (unibyte-display . iso-latin-1)
            (input-method . "italian-postfix")
            (sample-text . "Salve, ciao!")
@@ -325,15 +459,14 @@ Additionally, it selects the Italian tutorial."))
  '("European"))
 
 (set-language-info-alist
- "Slovenian" '((charset . (ascii latin-iso8859-2))
-             (coding-system . (iso-8859-2))
+ "Slovenian" '((charset iso-8859-2)
+             (coding-system . (iso-8859-2 windows-1250))
              (coding-priority . (iso-8859-2))
-             (nonascii-translation . latin-iso8859-2)
+             (nonascii-translation . iso-8859-2)
              (input-method . "slovenian")
-             (unibyte-syntax . "latin-2")
              (unibyte-display . iso-8859-2)
              (tutorial . "TUTORIAL.sl")
-             (sample-text . "\e,B.\e(Belimo vam uspe\e,B9\e(Ben dan!")
+             (sample-text . "\e$(D*v\e(Belimo vam uspe\e$(D+^\e(Ben dan!")
              (documentation . "\
 This language environment is almost the same as Latin-2,
 but it selects the Slovenian tutorial and input method."))
@@ -341,14 +474,13 @@ but it selects the Slovenian tutorial and input method."))
 
 (set-language-info-alist
  "Spanish" '((tutorial . "TUTORIAL.es")
-           (charset ascii latin-iso8859-1)
+           (charset iso-8859-1)
            (coding-system iso-latin-1 iso-latin-9)
            (coding-priority iso-latin-1)
            (input-method . "spanish-postfix")
-           (nonascii-translation . latin-iso8859-1)
-           (unibyte-syntax . "latin-1")
+           (nonascii-translation . iso-8859-1)
            (unibyte-display . iso-latin-1)
-           (sample-text . "Spanish (Espa\e,Aq\e(Bol)     \e,A!\e(BHola!")
+           (sample-text . "Spanish (Espa\e$(D+P\e(Bol)   \e$(D"B\e(BHola!")
            (documentation . "\
 This language environment is almost the same as Latin-1,
 but it sets the default input method to \"spanish-postfix\",
@@ -361,52 +493,52 @@ and it selects the Spanish tutorial."))
 ;; "Latin-3" language environment.
 
 (set-language-info-alist
- "Turkish" '((charset ascii latin-iso8859-9)
-            (coding-system iso-latin-5 iso-latin-3)
+ "Turkish" '((charset iso-8859-9)
+            (coding-system iso-latin-5 windows-1254 iso-latin-3)
             (coding-priority iso-latin-5)
-            (nonascii-translation . latin-iso8859-9)
-            (unibyte-syntax . "latin-5")
+            (nonascii-translation . iso-8859-9)
             (unibyte-display . iso-latin-5)
             (input-method . "turkish-postfix")
-            (sample-text . "Turkish (T\e,M|\e(Brk\e,Mg\e(Be)       Merhaba")
-            (documentation . t)
+            (sample-text . "Turkish (T\e$(D+d\e(Brk\e$(D+.\e(Be)   Merhaba")
             (setup-function . turkish-case-conversion-enable)
-            (exit-function . turkish-case-conversion-disable)))
+            (setup-function . turkish-case-conversion-disable)
+            (documentation . "Support for Turkish.
+Differs from the Latin-5 environment in using the `turkish-postfix' input
+method and applying Turkish case rules for the characters i, I, \e$(D)E\e(B, \e$(D*D\e(B.")))
 
 (defun turkish-case-conversion-enable ()
-  "Set up Turkish case conversion of `i' and `I' into `\e$,1 P\e(B' and `\e$,1 Q\e(B'."
+  "Set up Turkish case conversion of `i' and `I' into `\e$(D*D\e(B' and `\e$(D)E\e(B'."
   (let ((table (standard-case-table)))
-    (set-case-syntax-pair ?\e$,1 P\e(B ?i table)
-    (set-case-syntax-pair ?I ?\e$,1 Q\e(B table)))
+    (set-case-syntax-pair ?\e$(D*D\e(B ?i table)
+    (set-case-syntax-pair ?I ?\e$(D)E\e(B table)))
 
 (defun turkish-case-conversion-disable ()
   "Set up normal (non-Turkish) case conversion of `i' into `I'."
   (let ((table (standard-case-table)))
     (set-case-syntax-pair ?I ?i table)
-    (set-case-syntax ?\e$,1 P\e(B "w" table)
-    (set-case-syntax ?\e$,1 Q\e(B "w" table)))
+    (set-case-syntax ?\e$(D*D\e(B "w" table)
+    (set-case-syntax ?\e$(D)E\e(B "w" table)))
 
 ;; Polish ISO 8859-2 environment.
 ;; Maintainer: Wlodek Bzyl <matwb@univ.gda.pl>
 ;; Keywords: multilingual, Polish
 
 (set-language-info-alist
- "Polish" '((charset . (ascii latin-iso8859-2))
-          (coding-system . (iso-8859-2))
-          (coding-priority . (iso-8859-2))
+ "Polish" '((charset iso-8859-2)
+          (coding-system iso-8859-2 windows-1250)
+          (coding-priority iso-8859-2)
           (input-method . "polish-slash")
-          (nonascii-translation . latin-iso8859-2)
-          (unibyte-syntax . "latin-2")
+          (nonascii-translation . iso-8859-2)
           (unibyte-display . iso-8859-2)
           (tutorial . "TUTORIAL.pl")
-          (sample-text . "P\e,Bs\e(Bjd\e,B<\e(B, ki\e,Bq\e(B-\e,B?\e(Be t\e,Bj\e(B chmurno\e,B6f\e(B w g\e,B31\e(Bb flaszy")
+          (sample-text . "P\e$(D+Q\e(Bjd\e$(D+u\e(B, ki\e$(D+M\e(B-\e$(D+w\e(Be t\e$(D+8\e(B chmurno\e$(D+\++\e(B w g\e$(D)H+(\e(Bb flaszy")
           (documentation . t))
  '("European"))
 
 (set-language-info-alist
  "Welsh" `((coding-system utf-8 latin-8) ; the input method is Unicode-based
           (coding-priority utf-8 latin-8)
-          (nonascii-translation . latin-iso8859-14)
+          (nonascii-translation . iso-8859-14)
           (input-method . "welsh")
           (documentation . "Support for Welsh, using Unicode."))
  '("European"))
@@ -423,270 +555,130 @@ and it selects the Spanish tutorial."))
 (set-language-info-alist
  "Latin-7" `((coding-system latin-7)
             (coding-priority latin-7)
-            (nonascii-translation . ,(get 'decode-iso-latin-7
-                                          'translation-table))
+            (nonascii-translation . iso-8859-13)
             (input-method . "latin-prefix")
-            (features code-pages)
             (documentation . "Support for Latin-7, e.g. Latvian, Lithuanian."))
  '("European"))
 
 (set-language-info-alist
- "Lithuanian" `((coding-system latin-7)
+ "Lithuanian" `((coding-system latin-7 windows-1257)
                (coding-priority latin-7)
+               (nonascii-translation . iso-8859-13)
                (input-method . "lithuanian-keyboard")
-               (nonascii-translation . ,(get 'decode-iso-latin-7
-                                             'translation-table))
-               (features code-pages)
                (documentation . "Support for Lithuanian."))
  '("European"))
 
 (set-language-info-alist
- "Latvian" `((coding-system latin-7)
+ "Latvian" `((coding-system latin-7 windows-1257)
             (coding-priority latin-7)
+            (nonascii-translation . iso-8859-13)
             (input-method . "latvian-keyboard")
-            (nonascii-translation . ,(get 'decode-iso-latin-7
-                                          'translation-table))
-            (features code-pages)
             (documentation . "Support for Latvian."))
  '("European"))
 
 (set-language-info-alist
  "Swedish" '((tutorial . "TUTORIAL.sv")
-           (charset ascii latin-iso8859-1)
+           (charset iso-8859-1)
            (coding-system iso-latin-1)
            (coding-priority iso-latin-1)
-           (nonascii-translation . latin-iso8859-1)
-           (unibyte-syntax . "latin-1")
+           (nonascii-translation . iso-8859-1)
            (unibyte-display . iso-latin-1)
            (sample-text . "Goddag Hej")
            (documentation . "Support for Swedish"))
  '("European"))
 
 (set-language-info-alist
- "Croatian" '((charset . (ascii latin-iso8859-2))
-             (coding-system . (iso-8859-2))
-             (coding-priority . (iso-8859-2))
+ "Croatian" '((charset iso-8859-2)
+             (coding-system iso-8859-2)
+             (coding-priority iso-8859-2)
              (input-method . "croatian")
-             (nonascii-translation . latin-iso8859-2)
-             (unibyte-syntax . "latin-2")
+             (nonascii-translation . iso-8859-2)
              (unibyte-display . iso-8859-2)
              (documentation . "Support for Croatian with Latin-2 encoding."))
  '("European"))
 
 (set-language-info-alist
  "Brazilian Portuguese" '((tutorial . "TUTORIAL.pt_BR")
-           (charset ascii latin-iso8859-1)
+           (charset iso-8859-1)
            (coding-system iso-latin-1 iso-latin-9)
            (coding-priority iso-latin-1)
-           (nonascii-translation . latin-iso8859-1)
-           (unibyte-syntax . "latin-1")
-           (unibyte-display . iso-latin-1)
+           (nonascii-translation . iso-8859-1)
+           (unibyte-display . iso-8859-1)
            (input-method . "latin-1-prefix")
            (sample-text . "Oi")
            (documentation . "Support for Brazilian Portuguese."))
  '("European"))
 
-(set-language-info-alist
- "Esperanto" '((tutorial . "TUTORIAL.eo")
-              (charset ascii latin-iso8859-3)
-              (coding-system iso-latin-3)
-              (coding-priority iso-latin-3)
-              (nonascii-translation . latin-iso8859-3)
-              (unibyte-syntax . "latin-3")
-              (unibyte-display . iso-latin-3)
-              (input-method . "latin-3-prefix")
-              (documentation . "Support for Esperanto with ISO-8859-3 character set."))
- '("European"))
+\f
+(define-coding-system 'mac-roman
+  "Mac Roman Encoding (MIME:MACINTOSH)."
+  :coding-type 'charset
+  :mnemonic ?M 
+  :charset-list '(mac-roman)
+  :mime-charset 'macintosh)
+
+(define-coding-system 'next
+  "NeXTstep encoding"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(next)
+  :mime-charset 'next)
+
+(define-coding-system 'hp-roman8
+  "Hewlet-Packard roman-8 encoding (MIME:ROMAN-8)"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(hp-roman8)
+  :mime-charset 'hp-roman8)
+(define-coding-system-alias 'roman8 'hp-roman8)
+
+(define-coding-system 'adobe-standard-encoding
+  "Adobe `standard' encoding for PostScript"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(adobe-standard-encoding)
+  :mime-charset 'adobe-standard-encoding)
 
 \f
-;; Definitions for the Mac Roman character sets and coding system.
-;; The Mac Roman encoding uses all 128 code points in the range 128 to
-;; 255 for actual characters.  Emacs decodes them to one of the
-;; following character sets.
-;;     ascii, latin-iso8859-1, mule-unicode-0100-24ff,
-;;     mule-unicode-2500-33ff, mule-unicode-e000-ffff
-
-(let
-    ((encoding-vector (make-vector 256 nil))
-     (i 0)
-     (vec      ;; mac-roman (128..255) -> UCS mapping
-      [ #x00C4 ;; 128:LATIN CAPITAL LETTER A WITH DIAERESIS
-       #x00C5  ;; 129:LATIN CAPITAL LETTER A WITH RING ABOVE
-       #x00C7  ;; 130:LATIN CAPITAL LETTER C WITH CEDILLA
-       #x00C9  ;; 131:LATIN CAPITAL LETTER E WITH ACUTE
-       #x00D1  ;; 132:LATIN CAPITAL LETTER N WITH TILDE
-       #x00D6  ;; 133:LATIN CAPITAL LETTER O WITH DIAERESIS
-       #x00DC  ;; 134:LATIN CAPITAL LETTER U WITH DIAERESIS
-       #x00E1  ;; 135:LATIN SMALL LETTER A WITH ACUTE
-       #x00E0  ;; 136:LATIN SMALL LETTER A WITH GRAVE
-       #x00E2  ;; 137:LATIN SMALL LETTER A WITH CIRCUMFLEX
-       #x00E4  ;; 138:LATIN SMALL LETTER A WITH DIAERESIS
-       #x00E3  ;; 139:LATIN SMALL LETTER A WITH TILDE
-       #x00E5  ;; 140:LATIN SMALL LETTER A WITH RING ABOVE
-       #x00E7  ;; 141:LATIN SMALL LETTER C WITH CEDILLA
-       #x00E9  ;; 142:LATIN SMALL LETTER E WITH ACUTE
-       #x00E8  ;; 143:LATIN SMALL LETTER E WITH GRAVE
-       #x00EA  ;; 144:LATIN SMALL LETTER E WITH CIRCUMFLEX
-       #x00EB  ;; 145:LATIN SMALL LETTER E WITH DIAERESIS
-       #x00ED  ;; 146:LATIN SMALL LETTER I WITH ACUTE
-       #x00EC  ;; 147:LATIN SMALL LETTER I WITH GRAVE
-       #x00EE  ;; 148:LATIN SMALL LETTER I WITH CIRCUMFLEX
-       #x00EF  ;; 149:LATIN SMALL LETTER I WITH DIAERESIS
-       #x00F1  ;; 150:LATIN SMALL LETTER N WITH TILDE
-       #x00F3  ;; 151:LATIN SMALL LETTER O WITH ACUTE
-       #x00F2  ;; 152:LATIN SMALL LETTER O WITH GRAVE
-       #x00F4  ;; 153:LATIN SMALL LETTER O WITH CIRCUMFLEX
-       #x00F6  ;; 154:LATIN SMALL LETTER O WITH DIAERESIS
-       #x00F5  ;; 155:LATIN SMALL LETTER O WITH TILDE
-       #x00FA  ;; 156:LATIN SMALL LETTER U WITH ACUTE
-       #x00F9  ;; 157:LATIN SMALL LETTER U WITH GRAVE
-       #x00FB  ;; 158:LATIN SMALL LETTER U WITH CIRCUMFLEX
-       #x00FC  ;; 159:LATIN SMALL LETTER U WITH DIAERESIS
-       #x2020  ;; 160:DAGGER
-       #x00B0  ;; 161:DEGREE SIGN
-       #x00A2  ;; 162:CENT SIGN
-       #x00A3  ;; 163:POUND SIGN
-       #x00A7  ;; 164:SECTION SIGN
-       #x2022  ;; 165:BULLET
-       #x00B6  ;; 166:PILCROW SIGN
-       #x00DF  ;; 167:LATIN SMALL LETTER SHARP S
-       #x00AE  ;; 168:REGISTERED SIGN
-       #x00A9  ;; 169:COPYRIGHT SIGN
-       #x2122  ;; 170:TRADE MARK SIGN
-       #x00B4  ;; 171:ACUTE ACCENT
-       #x00A8  ;; 172:DIAERESIS
-       #x2260  ;; 173:NOT EQUAL TO
-       #x00C6  ;; 174:LATIN CAPITAL LETTER AE
-       #x00D8  ;; 175:LATIN CAPITAL LETTER O WITH STROKE
-       #x221E  ;; 176:INFINITY
-       #x00B1  ;; 177:PLUS-MINUS SIGN
-       #x2264  ;; 178:LESS-THAN OR EQUAL TO
-       #x2265  ;; 179:GREATER-THAN OR EQUAL TO
-       #x00A5  ;; 180:YEN SIGN
-       #x00B5  ;; 181:MICRO SIGN
-       #x2202  ;; 182:PARTIAL DIFFERENTIAL
-       #x2211  ;; 183:N-ARY SUMMATION
-       #x220F  ;; 184:N-ARY PRODUCT
-       #x03C0  ;; 185:GREEK SMALL LETTER PI
-       #x222B  ;; 186:INTEGRAL
-       #x00AA  ;; 187:FEMININE ORDINAL INDICATOR
-       #x00BA  ;; 188:MASCULINE ORDINAL INDICATOR
-       #x03A9  ;; 189:GREEK CAPITAL LETTER OMEGA
-       #x00E6  ;; 190:LATIN SMALL LETTER AE
-       #x00F8  ;; 191:LATIN SMALL LETTER O WITH STROKE
-       #x00BF  ;; 192:INVERTED QUESTION MARK
-       #x00A1  ;; 193:INVERTED EXCLAMATION MARK
-       #x00AC  ;; 194:NOT SIGN
-       #x221A  ;; 195:SQUARE ROOT
-       #x0192  ;; 196:LATIN SMALL LETTER F WITH HOOK
-       #x2248  ;; 197:ALMOST EQUAL TO
-       #x2206  ;; 198:INCREMENT
-       #x00AB  ;; 199:LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-       #x00BB  ;; 200:RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-       #x2026  ;; 201:HORIZONTAL ELLIPSIS
-       #x00A0  ;; 202:NO-BREAK SPACE
-       #x00C0  ;; 203:LATIN CAPITAL LETTER A WITH GRAVE
-       #x00C3  ;; 204:LATIN CAPITAL LETTER A WITH TILDE
-       #x00D5  ;; 205:LATIN CAPITAL LETTER O WITH TILDE
-       #x0152  ;; 206:LATIN CAPITAL LIGATURE OE
-       #x0153  ;; 207:LATIN SMALL LIGATURE OE
-       #x2013  ;; 208:EN DASH
-       #x2014  ;; 209:EM DASH
-       #x201C  ;; 210:LEFT DOUBLE QUOTATION MARK
-       #x201D  ;; 211:RIGHT DOUBLE QUOTATION MARK
-       #x2018  ;; 212:LEFT SINGLE QUOTATION MARK
-       #x2019  ;; 213:RIGHT SINGLE QUOTATION MARK
-       #x00F7  ;; 214:DIVISION SIGN
-       #x25CA  ;; 215:LOZENGE
-       #x00FF  ;; 216:LATIN SMALL LETTER Y WITH DIAERESIS
-       #x0178  ;; 217:LATIN CAPITAL LETTER Y WITH DIAERESIS
-       #x2044  ;; 218:FRACTION SLASH
-       #x20AC  ;; 219:EURO SIGN
-       #x2039  ;; 220:SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-       #x203A  ;; 221:SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-       #xFB01  ;; 222:LATIN SMALL LIGATURE FI
-       #xFB02  ;; 223:LATIN SMALL LIGATURE FL
-       #x2021  ;; 224:DOUBLE DAGGER
-       #x00B7  ;; 225:MIDDLE DOT
-       #x201A  ;; 226:SINGLE LOW-9 QUOTATION MARK
-       #x201E  ;; 227:DOUBLE LOW-9 QUOTATION MARK
-       #x2030  ;; 228:PER MILLE SIGN
-       #x00C2  ;; 229:LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-       #x00CA  ;; 230:LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-       #x00C1  ;; 231:LATIN CAPITAL LETTER A WITH ACUTE
-       #x00CB  ;; 232:LATIN CAPITAL LETTER E WITH DIAERESIS
-       #x00C8  ;; 233:LATIN CAPITAL LETTER E WITH GRAVE
-       #x00CD  ;; 234:LATIN CAPITAL LETTER I WITH ACUTE
-       #x00CE  ;; 235:LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-       #x00CF  ;; 236:LATIN CAPITAL LETTER I WITH DIAERESIS
-       #x00CC  ;; 237:LATIN CAPITAL LETTER I WITH GRAVE
-       #x00D3  ;; 238:LATIN CAPITAL LETTER O WITH ACUTE
-       #x00D4  ;; 239:LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-       #xF8FF  ;; 240:Apple logo
-       #x00D2  ;; 241:LATIN CAPITAL LETTER O WITH GRAVE
-       #x00DA  ;; 242:LATIN CAPITAL LETTER U WITH ACUTE
-       #x00DB  ;; 243:LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-       #x00D9  ;; 244:LATIN CAPITAL LETTER U WITH GRAVE
-       #x0131  ;; 245:LATIN SMALL LETTER DOTLESS I
-       #x02C6  ;; 246:MODIFIER LETTER CIRCUMFLEX ACCENT
-       #x02DC  ;; 247:SMALL TILDE
-       #x00AF  ;; 248:MACRON
-       #x02D8  ;; 249:BREVE
-       #x02D9  ;; 250:DOT ABOVE
-       #x02DA  ;; 251:RING ABOVE
-       #x00B8  ;; 252:CEDILLA
-       #x02DD  ;; 253:DOUBLE ACUTE ACCENT
-       #x02DB  ;; 254:OGONEK
-       #x02C7  ;; 255:CARON
-       ])
-     translation-table)
-  (while (< i 128)
-    (aset encoding-vector i i)
-    (setq i (1+ i)))
-  (while (< i 256)
-    (aset encoding-vector i
-         (decode-char 'ucs (aref vec (- i 128))))
-    (setq i (1+ i)))
-  (setq translation-table
-       (make-translation-table-from-vector encoding-vector))
-  (define-translation-table 'mac-roman-decoder translation-table)
-  (define-translation-table 'mac-roman-encoder
-    (char-table-extra-slot translation-table 0)))
-
-(define-ccl-program decode-mac-roman
-  `(4
-    ((loop
-      (read r1)
-      (if (r1 < 128)  ;; ASCII
-         (r0 = ,(charset-id 'ascii))
-       (if (r1 < 160)
-           (r0 = ,(charset-id 'eight-bit-control))
-         (r0 = ,(charset-id 'eight-bit-graphic))))
-      (translate-character mac-roman-decoder r0 r1)
-      (write-multibyte-character r0 r1)
-      (repeat))))
-  "CCL program to decode Mac Roman")
-
-(define-ccl-program encode-mac-roman
-  `(1
-    ((loop
-      (read-multibyte-character r0 r1)
-      (translate-character ucs-mule-to-mule-unicode r0 r1)
-      (translate-character mac-roman-encoder r0 r1)
-      (if (r0 != ,(charset-id 'ascii))
-         (if (r0 != ,(charset-id 'eight-bit-graphic))
-             (if (r0 != ,(charset-id 'eight-bit-control))
-                 (r1 = ??))))
-      (write-repeat r1))))
-  "CCL program to encode Mac Roman")
-
-(make-coding-system
- 'mac-roman 4 ?M
- "Mac Roman Encoding (MIME:MACINTOSH)."
- '(decode-mac-roman . encode-mac-roman)
- (list (cons 'safe-chars (get 'mac-roman-encoder 'translation-table))
-       '(valid-codes (0 . 255))
-       '(mime-charset . macintosh)))           ; per IANA, rfc1345
+;; For automatic composing of diacritics and combining marks.
+(dolist (range '( ;; combining diacritical marks
+                (#x0300 #x0314 (tc . bc))
+                (#x0315        (tr . bl))
+                (#x0316 #x0319 (bc . tc))
+                (#x031A        (tr . cl))
+                (#x031B #x0320 (bc . tc))
+                (#x0321        (Br . tr))
+                (#x0322        (Br . tl))
+                (#x0323 #x0333 (bc . tc))
+                (#x0334 #x0338 (Bc . Bc))
+                (#x0339 #x033C (bc . tc))
+                (#x033D #x033F (tc . bc))
+                (#x0340        (tl . bc))
+                (#x0341        (tr . bc))
+                (#x0342 #x0344 (tc . bc))
+                (#x0345        (bc . tc))
+                (#x0346        (tc . bc))
+                (#x0347 #x0349 (bc . tc))
+                (#x034A #x034C (tc . bc))
+                (#x034D #x034E (bc . tc))
+                ;; combining diacritical marks for symbols
+                (#x20D0 #x20D1 (tc . bc))
+                (#x20D2 #x20D3 (Bc . Bc))
+                (#x20D4 #x20D7 (tc . bc))
+                (#x20D8 #x20DA (Bc . Bc))
+                (#x20DB #x20DC (tc . bc))
+                (#x20DD #x20E0 (Bc . Bc))
+                (#x20E1        (tc . bc))
+                (#x20E2 #x20E3 (Bc . Bc))))
+  (let* ((from (car range))
+        (to (if (= (length range) 3)
+                (nth 1 range)
+              from))
+        (composition (car (last range))))
+    (while (<= from to)
+      (put-char-code-property from 'diacritic-composition composition)
+      (aset composition-function-table from 'diacritic-composition-function)
+      (setq from (1+ from)))))
 
 (defconst diacritic-composition-pattern "\\C^\\c^+")
 
@@ -699,13 +691,15 @@ positions (integers or markers) specifying the region."
     (narrow-to-region beg end)
     (goto-char (point-min))
     (while (re-search-forward diacritic-composition-pattern nil t)
-      (compose-region (match-beginning 0) (match-end 0)))))
+      (if (= (char-syntax (char-after (match-beginning 0))) ?w)
+         (compose-region (match-beginning 0) (match-end 0))))))
 
 (defun diacritic-compose-string (string)
   "Compose diacritic characters in STRING and return the resulting string."
   (let ((idx 0))
     (while (setq idx (string-match diacritic-composition-pattern string idx))
-      (compose-string string idx (match-end 0))
+      (if (= (char-syntax (aref string idx)) ?w)
+         (compose-string string idx (match-end 0)))
       (setq idx (match-end 0))))
   string)
 
@@ -714,33 +708,50 @@ positions (integers or markers) specifying the region."
   (interactive)
   (diacritic-compose-region (point-min) (point-max)))
 
-(defun diacritic-post-read-conversion (len)
-  (diacritic-compose-region (point) (+ (point) len))
-  len)
-
-(defun diacritic-composition-function (from to pattern &optional string)
-  "Compose diacritic text in the region FROM and TO.
-The text matches the regular expression PATTERN.
-Optional 4th argument STRING, if non-nil, is a string containing text
+(defun diacritic-composition-function (pos to font-object string)
+  "Compose diacritic text around POS.
+Optional 2nd argument STRING, if non-nil, is a string containing text
 to compose.
 
-The return value is the number of composed characters."
-  (when (< (1+ from) to)
-      (if string
-         (compose-string string from to)
-       (compose-region from to))
-      (- to from)))
-
-;; Register a function to compose Unicode diacrtics and marks.
-(let ((patterns '(("\\C^\\c^+" . diacritic-composition-function))))
-  (let ((c #x300))
-    (while (<= c #x362)
-      (aset composition-function-table (decode-char 'ucs c) patterns)
-      (setq c (1+ c)))
-    (setq c #x20d0)
-    (while (<= c #x20e3)
-      (aset composition-function-table (decode-char 'ucs c) patterns)
-      (setq c (1+ c)))))
+The return value is the end position of composed characters,
+or nil if no characters are composed."
+  (setq pos (1- pos))
+  (if string
+      (if (>= pos 0)
+         (let ((ch (aref string pos))
+               start end components ch composition)
+           (when (= (char-syntax ch) ?w)
+             (setq start pos
+                   end (length string)
+                   components (list ch)
+                   pos (1+ pos))
+             (while (and
+                     (< pos end)
+                     (setq ch (aref string pos)
+                           composition
+                           (get-char-code-property ch
+                                                   'diacritic-composition)))
+               (setq components (cons ch (cons composition components))
+                     pos (1+ pos)))
+             (compose-string string start pos (nreverse components))
+             pos)))
+    (if (>= pos (point-min))
+       (let ((ch (char-after pos))
+             start end components composition)
+         (when (= (char-syntax ch) ?w)
+           (setq start pos
+                 end (point-max)
+                 components (list ch)
+                 pos (1+ pos))
+           (while (and
+                   (< pos end)
+                   (setq ch (char-after pos)
+                         composition
+                         (get-char-code-property ch 'diacritic-composition)))
+             (setq components (cons ch (cons composition components))
+                   pos (1+ pos)))
+           (compose-region start pos (nreverse components))
+           pos)))))
 
 (provide 'european)
 
index 9fd25ae5ed3c343f075dfc016d47e612fbb9987f..92acff8aaca9ec9c04551525cf7e6d4cdf223966 100644 (file)
 
 ;;; Code:
 
+(define-coding-system 'georgian-ps
+  "Georgian PS encoding"
+  :coding-type 'charset
+  :mnemonic ?G
+  :charset-list '(georgian-ps))
+
+(define-coding-system 'georgian-academy
+  "Georgian Academy encoding"
+  :coding-type 'charset
+  :mnemonic ?G
+  :charset-list '(georgian-academy))
+
 (set-language-info-alist
  "Georgian" `((coding-system georgian-ps)
              (coding-priority georgian-ps)
              (input-method . "georgian")
-             (features code-pages)
-             (nonascii-translation . ,(get 'decode-georgian-ps
-                                           'translation-table))
+             (nonascii-translation . georgian-ps)
              (documentation . "Support for georgian-ps character set."))
  '("European"))                                ; fixme: is this appropriate for
                                        ; a non-Latin script?
index fb71e4a2ed299c7ee5006d707504b1f6bca458e9..6fa81c7251ab948edfdc2419dfcb90967c7d3de0 100644 (file)
@@ -1,10 +1,15 @@
 ;;; greek.el --- support for Greek -*- no-byte-compile: t -*-
 
+;; Copyright (C) 2002 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
+
 ;; Keywords: multilingual, Greek
 
 ;; This file is part of GNU Emacs.
 
 ;;; Code:
 
-(make-coding-system
- 'greek-iso-8bit 2 ?7
- "ISO 2022 based 8-bit encoding for Greek (MIME:ISO-8859-7)."
- '(ascii greek-iso8859-7 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t)
- '((safe-charsets ascii greek-iso8859-7)
-   (mime-charset . iso-8859-7)))
+(define-coding-system 'greek-iso-8bit
+  "ISO 2022 based 8-bit encoding for Greek (MIME:ISO-8859-7)."
+  :coding-type 'charset
+  :mnemonic ?7
+  :charset-list '(iso-8859-7)
+  :mime-charset 'iso-8859-7)
 
 (define-coding-system-alias 'iso-8859-7 'greek-iso-8bit)
 
+(define-coding-system 'windows-1253
+  "windows-1253 encoding for Greek"
+  :coding-type 'charset
+  :mnemonic ?g
+  :charset-list '(windows-1253)
+  :mime-charset 'windows-1253)
+(define-coding-system-alias 'cp1253 'windows-1253)
+
+(define-coding-system 'cp737
+  "Codepage 737 (PC Greek)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp737)
+  :mime-charset 'cp737)
+
+(define-coding-system 'cp851
+  "DOS codepage 851 (Greek)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp851)
+  :mime-charset 'cp851)
+(define-coding-system-alias 'ibm851 'cp851)
+
+(define-coding-system 'cp869
+  "DOS codepage 869 (Greek)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp869)
+  :mime-charset 'cp869)
+(define-coding-system-alias 'ibm869 'cp869)
+
 (set-language-info-alist
- "Greek" '((charset . (greek-iso8859-7))
-          (coding-system . (greek-iso-8bit))
+ "Greek" '((charset iso-8859-7)
+          (coding-system greek-iso-8bit windows-1253 cp851 cp869)
           (coding-priority greek-iso-8bit)
-          (nonascii-translation . greek-iso8859-7)
+          (nonascii-translation . iso-8859-7)
           (input-method . "greek")
-          (unibyte-display . greek-iso-8bit)
           (documentation . t)))
 
 (provide 'greek)
index fe4ed03ca7e9e682f340a73aed4bfd99b40c6ef0..f1606943070981075004fedce8dd4e233eebef32 100644 (file)
@@ -7,6 +7,10 @@
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
+
 ;; Keywords: multilingual, Hebrew
 
 ;; This file is part of GNU Emacs.
 
 ;;; Code:
 
-(make-coding-system
- 'hebrew-iso-8bit 2 ?8
- "ISO 2022 based 8-bit encoding for Hebrew (MIME:ISO-8859-8)."
- '(ascii hebrew-iso8859-8 nil nil
-   nil nil nil nil nil nil nil nil t nil nil t)
- '((safe-charsets ascii hebrew-iso8859-8)
-   (mime-charset . iso-8859-8)))
+(define-coding-system 'hebrew-iso-8bit
+  "ISO 2022 based 8-bit encoding for Hebrew (MIME:ISO-8859-8)."
+  :coding-type 'charset
+  :mnemonic ?8
+  :charset-list '(iso-8859-8)
+  :mime-charset 'iso-8859-8)
 
 (define-coding-system-alias 'iso-8859-8 'hebrew-iso-8bit)
 
 (define-coding-system-alias 'iso-8859-8-i 'hebrew-iso-8bit)
 
 (set-language-info-alist
- "Hebrew" '((charset . (hebrew-iso8859-8))
+ "Hebrew" '((charset iso-8859-8)
            (coding-priority hebrew-iso-8bit)
-           (coding-system . (hebrew-iso-8bit))
-           (nonascii-translation . hebrew-iso8859-8)
+           (coding-system hebrew-iso-8bit windows-1255 cp862)
+           (nonascii-translation . iso-8859-8)
            (input-method . "hebrew")
            (unibyte-display . hebrew-iso-8bit)
            (sample-text . "Hebrew      \e,Hylem\e(B")
 (set-language-info-alist
  "Windows-1255" '((coding-priority windows-1255)
                  (coding-system windows-1255)
-                 (features code-pages)
                  (documentation . "\
 Support for Windows-1255 encoding, e.g. for Yiddish.
 Right-to-left writing is not yet supported.")))
 
+(define-coding-system 'windows-1255
+  "windows-1255 (Hebrew) encoding (MIME: WINDOWS-1255)"
+  :coding-type 'charset
+  :mnemonic ?h
+  :charset-list '(windows-1255)
+  :mime-charset 'windows-1255)
+(define-coding-system-alias 'cp1255 'windows-1255)
+
+(define-coding-system 'cp862
+  "DOS codepage 862 (Hebrew)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp862)
+  :mime-charset 'cp862)
+(define-coding-system-alias 'ibm862 'cp862)
+
 (provide 'hebrew)
 
 ;;; arch-tag: 3ca04f32-3f1e-498e-af46-8267498ba5d9
index d33c1ee4a9b38f665976a701a6353c317a82443c..679bf424de35eb9f0bc65e83771a77ad3b96cd6d 100644 (file)
@@ -408,7 +408,7 @@ FUNCTION will be called 15 times."
     ;; trans-char -- nil / string / list of strings
     (when (and char trans-char)
       (if (stringp trans-char) (setq trans-char (list trans-char)))
-      (if (char-valid-p char) (setq char (char-to-string char)))
+      (if (characterp char) (setq char (char-to-string char)))
       (puthash char (car trans-char) encode-hash)
       (dolist (trans trans-char)
         (puthash trans char decode-hash)))))
@@ -426,7 +426,7 @@ FUNCTION will be called 15 times."
 (defun indian--puthash-c (c trans-c halant hashtbls)
   (indian--map
    (lambda (c trans-c)
-     (if (char-valid-p c) (setq c (char-to-string c)))
+     (if (characterp c) (setq c (char-to-string c)))
      (indian--puthash-char (concat c halant) trans-c hashtbls))
    c trans-c))
 
@@ -442,8 +442,8 @@ FUNCTION will be called 15 times."
      (indian--map
       (lambda (v trans-v)
        (when (and c trans-c  v trans-v)
-         (if (char-valid-p c) (setq c (char-to-string c)))
-         (setq v (if (char-valid-p (cadr v)) (char-to-string (cadr v)) ""))
+         (if (characterp c) (setq c (char-to-string c)))
+         (setq v (if (characterp (cadr v)) (char-to-string (cadr v)) ""))
          (if (stringp trans-c) (setq trans-c (list trans-c)))
          (if (stringp trans-v) (setq trans-v (list trans-v)))
          (indian--puthash-char
@@ -577,152 +577,165 @@ FUNCTION will be called 15 times."
 
 ;; The followings provide conversion between IS 13194 (ISCII) and UCS.
 
-(defvar ucs-devanagari-to-is13194-alist
-  '(;;Unicode vs IS13194  ;; only Devanagari is supported now.
-    (?\x0900 . "[U+0900]")
-    (?\x0901 . "\e(5!\e(B")
-    (?\x0902 . "\e(5"\e(B")
-    (?\x0903 . "\e(5#\e(B")
-    (?\x0904 . "[U+0904]")
-    (?\x0905 . "\e(5$\e(B")
-    (?\x0906 . "\e(5%\e(B")
-    (?\x0907 . "\e(5&\e(B")
-    (?\x0908 . "\e(5'\e(B")
-    (?\x0909 . "\e(5(\e(B")
-    (?\x090a . "\e(5)\e(B")
-    (?\x090b . "\e(5*\e(B")
-    (?\x090c . "\e(5&i\e(B")
-    (?\x090d . "\e(5.\e(B")
-    (?\x090e . "\e(5+\e(B")
-    (?\x090f . "\e(5,\e(B")
-    (?\x0910 . "\e(5-\e(B")
-    (?\x0911 . "\e(52\e(B")
-    (?\x0912 . "\e(5/\e(B")
-    (?\x0913 . "\e(50\e(B")
-    (?\x0914 . "\e(51\e(B")
-    (?\x0915 . "\e(53\e(B")
-    (?\x0916 . "\e(54\e(B")
-    (?\x0917 . "\e(55\e(B")
-    (?\x0918 . "\e(56\e(B")
-    (?\x0919 . "\e(57\e(B")
-    (?\x091a . "\e(58\e(B")
-    (?\x091b . "\e(59\e(B")
-    (?\x091c . "\e(5:\e(B")
-    (?\x091d . "\e(5;\e(B")
-    (?\x091e . "\e(5<\e(B")
-    (?\x091f . "\e(5=\e(B")
-    (?\x0920 . "\e(5>\e(B")
-    (?\x0921 . "\e(5?\e(B")
-    (?\x0922 . "\e(5@\e(B")
-    (?\x0923 . "\e(5A\e(B")
-    (?\x0924 . "\e(5B\e(B")
-    (?\x0925 . "\e(5C\e(B")
-    (?\x0926 . "\e(5D\e(B")
-    (?\x0927 . "\e(5E\e(B")
-    (?\x0928 . "\e(5F\e(B")
-    (?\x0929 . "\e(5G\e(B")
-    (?\x092a . "\e(5H\e(B")
-    (?\x092b . "\e(5I\e(B")
-    (?\x092c . "\e(5J\e(B")
-    (?\x092d . "\e(5K\e(B")
-    (?\x092e . "\e(5L\e(B")
-    (?\x092f . "\e(5M\e(B")
-    (?\x0930 . "\e(5O\e(B")
-    (?\x0931 . "\e(5P\e(B")
-    (?\x0932 . "\e(5Q\e(B")
-    (?\x0933 . "\e(5R\e(B")
-    (?\x0934 . "\e(5S\e(B")
-    (?\x0935 . "\e(5T\e(B")
-    (?\x0936 . "\e(5U\e(B")
-    (?\x0937 . "\e(5V\e(B")
-    (?\x0938 . "\e(5W\e(B")
-    (?\x0939 . "\e(5X\e(B")
-    (?\x093a . "[U+093a]")
-    (?\x093b . "[U+093b]")
-    (?\x093c . "\e(5i\e(B")
-    (?\x093d . "\e(5ji\e(B")
-    (?\x093e . "\e(5Z\e(B")
-    (?\x093f . "\e(5[\e(B")
-    (?\x0940 . "\e(5\\e(B")
-    (?\x0941 . "\e(5]\e(B")
-    (?\x0942 . "\e(5^\e(B")
-    (?\x0943 . "\e(5_\e(B")
-    (?\x0944 . "\e(5_i\e(B")
-    (?\x0945 . "\e(5c\e(B")
-    (?\x0946 . "\e(5`\e(B")
-    (?\x0947 . "\e(5a\e(B")
-    (?\x0948 . "\e(5b\e(B")
-    (?\x0949 . "\e(5g\e(B")
-    (?\x094a . "\e(5d\e(B")
-    (?\x094b . "\e(5e\e(B")
-    (?\x094c . "\e(5f\e(B")
-    (?\x094d . "\e(5h\e(B")
-    (?\x094e . "[U+094e]")
-    (?\x094f . "[U+094f]")
-    (?\x0950 . "\e(5!i\e(B")
-    (?\x0951 . "\e(5p5\e(B")
-    (?\x0952 . "\e(5p8\e(B")
-    (?\x0953 . "[DEVANAGARI GRAVE ACCENT]")
-    (?\x0954 . "[DEVANAGARI ACUTE ACCENT]")
-    (?\x0955 . "[U+0955]")
-    (?\x0956 . "[U+0956]")
-    (?\x0957 . "[U+0957]")
-    (?\x0958 . "\e(53i\e(B")
-    (?\x0959 . "\e(54i\e(B")
-    (?\x095a . "\e(55i\e(B")
-    (?\x095b . "\e(5:i\e(B")
-    (?\x095c . "\e(5?i\e(B")
-    (?\x095d . "\e(5@i\e(B")
-    (?\x095e . "\e(5Ii\e(B")
-    (?\x095f . "\e(5N\e(B")
-    (?\x0960 . "\e(5*i\e(B")
-    (?\x0961 . "\e(5'i\e(B")
-    (?\x0962 . "\e(5[i\e(B")
-    (?\x0963 . "\e(5ei\e(B")
-    (?\x0964 . "\e(5j\e(B")
-    (?\x0965 . "\e(5jj\e(B")
-    (?\x0966 . "\e(5q\e(B")
-    (?\x0967 . "\e(5r\e(B")
-    (?\x0968 . "\e(5s\e(B")
-    (?\x0969 . "\e(5t\e(B")
-    (?\x096a . "\e(5u\e(B")
-    (?\x096b . "\e(5v\e(B")
-    (?\x096c . "\e(5w\e(B")
-    (?\x096d . "\e(5x\e(B")
-    (?\x096e . "\e(5y\e(B")
-    (?\x096f . "\e(5z\e(B")
-    (?\x0970 . "[U+0970]")
-    (?\x0971 . "[U+0971]")
-    (?\x0972 . "[U+0972]")
-    (?\x0973 . "[U+0973]")
-    (?\x0974 . "[U+0974]")
-    (?\x0975 . "[U+0975]")
-    (?\x0976 . "[U+0976]")
-    (?\x0977 . "[U+0977]")
-    (?\x0978 . "[U+0978]")
-    (?\x0979 . "[U+0979]")
-    (?\x097a . "[U+097a]")
-    (?\x097b . "[U+097b]")
-    (?\x097c . "[U+097c]")
-    (?\x097d . "[U+097d]")
-    (?\x097e . "[U+097e]")
-    (?\x097f . "[U+097f]")))
-
-(defvar ucs-bengali-to-is13194-alist nil)
-(defvar ucs-assamese-to-is13194-alist nil)
-(defvar ucs-gurmukhi-to-is13194-alist nil)
-(defvar ucs-gujarati-to-is13194-alist nil)
-(defvar ucs-oriya-to-is13194-alist nil)
-(defvar ucs-tamil-to-is13194-alist nil)
-(defvar ucs-telugu-to-is13194-alist nil)
-(defvar ucs-malayalam-to-is13194-alist nil)
-(defvar ucs-kannada-to-is13194-alist nil)
-
-(defvar is13194-default-repartory 'devanagari)
+(let
+    ;;Unicode vs IS13194  ;; only Devanagari is supported now.
+    ((ucs-devanagari-to-is13194-alist
+      '((?\x0900 . "[U+0900]")
+       (?\x0901 . "\e(5!\e(B")
+       (?\x0902 . "\e(5"\e(B")
+       (?\x0903 . "\e(5#\e(B")
+       (?\x0904 . "[U+0904]")
+       (?\x0905 . "\e(5$\e(B")
+       (?\x0906 . "\e(5%\e(B")
+       (?\x0907 . "\e(5&\e(B")
+       (?\x0908 . "\e(5'\e(B")
+       (?\x0909 . "\e(5(\e(B")
+       (?\x090a . "\e(5)\e(B")
+       (?\x090b . "\e(5*\e(B")
+       (?\x090c . "\e(5&i\e(B")
+       (?\x090d . "\e(5.\e(B")
+       (?\x090e . "\e(5+\e(B")
+       (?\x090f . "\e(5,\e(B")
+       (?\x0910 . "\e(5-\e(B")
+       (?\x0911 . "\e(52\e(B")
+       (?\x0912 . "\e(5/\e(B")
+       (?\x0913 . "\e(50\e(B")
+       (?\x0914 . "\e(51\e(B")
+       (?\x0915 . "\e(53\e(B")
+       (?\x0916 . "\e(54\e(B")
+       (?\x0917 . "\e(55\e(B")
+       (?\x0918 . "\e(56\e(B")
+       (?\x0919 . "\e(57\e(B")
+       (?\x091a . "\e(58\e(B")
+       (?\x091b . "\e(59\e(B")
+       (?\x091c . "\e(5:\e(B")
+       (?\x091d . "\e(5;\e(B")
+       (?\x091e . "\e(5<\e(B")
+       (?\x091f . "\e(5=\e(B")
+       (?\x0920 . "\e(5>\e(B")
+       (?\x0921 . "\e(5?\e(B")
+       (?\x0922 . "\e(5@\e(B")
+       (?\x0923 . "\e(5A\e(B")
+       (?\x0924 . "\e(5B\e(B")
+       (?\x0925 . "\e(5C\e(B")
+       (?\x0926 . "\e(5D\e(B")
+       (?\x0927 . "\e(5E\e(B")
+       (?\x0928 . "\e(5F\e(B")
+       (?\x0929 . "\e(5G\e(B")
+       (?\x092a . "\e(5H\e(B")
+       (?\x092b . "\e(5I\e(B")
+       (?\x092c . "\e(5J\e(B")
+       (?\x092d . "\e(5K\e(B")
+       (?\x092e . "\e(5L\e(B")
+       (?\x092f . "\e(5M\e(B")
+       (?\x0930 . "\e(5O\e(B")
+       (?\x0931 . "\e(5P\e(B")
+       (?\x0932 . "\e(5Q\e(B")
+       (?\x0933 . "\e(5R\e(B")
+       (?\x0934 . "\e(5S\e(B")
+       (?\x0935 . "\e(5T\e(B")
+       (?\x0936 . "\e(5U\e(B")
+       (?\x0937 . "\e(5V\e(B")
+       (?\x0938 . "\e(5W\e(B")
+       (?\x0939 . "\e(5X\e(B")
+       (?\x093a . "[U+093a]")
+       (?\x093b . "[U+093b]")
+       (?\x093c . "\e(5i\e(B")
+       (?\x093d . "\e(5ji\e(B")
+       (?\x093e . "\e(5Z\e(B")
+       (?\x093f . "\e(5[\e(B")
+       (?\x0940 . "\e(5\\e(B")
+       (?\x0941 . "\e(5]\e(B")
+       (?\x0942 . "\e(5^\e(B")
+       (?\x0943 . "\e(5_\e(B")
+       (?\x0944 . "\e(5_i\e(B")
+       (?\x0945 . "\e(5c\e(B")
+       (?\x0946 . "\e(5`\e(B")
+       (?\x0947 . "\e(5a\e(B")
+       (?\x0948 . "\e(5b\e(B")
+       (?\x0949 . "\e(5g\e(B")
+       (?\x094a . "\e(5d\e(B")
+       (?\x094b . "\e(5e\e(B")
+       (?\x094c . "\e(5f\e(B")
+       (?\x094d . "\e(5h\e(B")
+       (?\x094e . "[U+094e]")
+       (?\x094f . "[U+094f]")
+       (?\x0950 . "\e(5!i\e(B")
+       (?\x0951 . "\e(5p5\e(B")
+       (?\x0952 . "\e(5p8\e(B")
+       (?\x0953 . "[DEVANAGARI GRAVE ACCENT]")
+       (?\x0954 . "[DEVANAGARI ACUTE ACCENT]")
+       (?\x0955 . "[U+0955]")
+       (?\x0956 . "[U+0956]")
+       (?\x0957 . "[U+0957]")
+       (?\x0958 . "\e(53i\e(B")
+       (?\x0959 . "\e(54i\e(B")
+       (?\x095a . "\e(55i\e(B")
+       (?\x095b . "\e(5:i\e(B")
+       (?\x095c . "\e(5?i\e(B")
+       (?\x095d . "\e(5@i\e(B")
+       (?\x095e . "\e(5Ii\e(B")
+       (?\x095f . "\e(5N\e(B")
+       (?\x0960 . "\e(5*i\e(B")
+       (?\x0961 . "\e(5'i\e(B")
+       (?\x0962 . "\e(5[i\e(B")
+       (?\x0963 . "\e(5ei\e(B")
+       (?\x0964 . "\e(5j\e(B")
+       (?\x0965 . "\e(5jj\e(B")
+       (?\x0966 . "\e(5q\e(B")
+       (?\x0967 . "\e(5r\e(B")
+       (?\x0968 . "\e(5s\e(B")
+       (?\x0969 . "\e(5t\e(B")
+       (?\x096a . "\e(5u\e(B")
+       (?\x096b . "\e(5v\e(B")
+       (?\x096c . "\e(5w\e(B")
+       (?\x096d . "\e(5x\e(B")
+       (?\x096e . "\e(5y\e(B")
+       (?\x096f . "\e(5z\e(B")
+       (?\x0970 . "[U+0970]")
+       (?\x0971 . "[U+0971]")
+       (?\x0972 . "[U+0972]")
+       (?\x0973 . "[U+0973]")
+       (?\x0974 . "[U+0974]")
+       (?\x0975 . "[U+0975]")
+       (?\x0976 . "[U+0976]")
+       (?\x0977 . "[U+0977]")
+       (?\x0978 . "[U+0978]")
+       (?\x0979 . "[U+0979]")
+       (?\x097a . "[U+097a]")
+       (?\x097b . "[U+097b]")
+       (?\x097c . "[U+097c]")
+       (?\x097d . "[U+097d]")
+       (?\x097e . "[U+097e]")
+       (?\x097f . "[U+097f]")))
+     (ucs-bengali-to-is13194-alist nil)
+     (ucs-assamese-to-is13194-alist nil)
+     (ucs-gurmukhi-to-is13194-alist nil)
+     (ucs-gujarati-to-is13194-alist nil)
+     (ucs-oriya-to-is13194-alist nil)
+     (ucs-tamil-to-is13194-alist nil)
+     (ucs-telugu-to-is13194-alist nil)
+     (ucs-malayalam-to-is13194-alist nil)
+     (ucs-kannada-to-is13194-alist nil))
+  (dolist (script '(devanagari bengali assamese gurmukhi gujarati
+                   oriya tamil telugu malayalam kannada))
+   (let ((hashtable (intern (concat "is13194-to-ucs-"
+                                   (symbol-name script) "-hashtbl" )))
+        (regexp    (intern (concat "is13194-to-ucs-"
+                                   (symbol-name script) "-regexp"))))
+     (set hashtable (make-hash-table :test 'equal :size 128))
+     (dolist (x (eval (intern (concat "ucs-" (symbol-name script)
+                                     "-to-is13194-alist"))))
+       (put-char-code-property (car x) 'script script)
+       (put-char-code-property (car x) 'iscii (cdr x))
+       (puthash (cdr x) (char-to-string (car x)) (eval hashtable)))
+      (set regexp (indian-regexp-of-hashtbl-keys (eval hashtable))))))
+
+(defvar is13194-default-repertory 'devanagari)
 
 (defvar is13194-repertory-to-ucs-script
-  `((DEF ?\x40 ,is13194-default-repartory)
-    (RMN ?\x41 ,is13194-default-repartory)
+  `((DEF ?\x40 ,is13194-default-repertory)
+    (RMN ?\x41 ,is13194-default-repertory)
     (DEV ?\x42 devanagari)
     (BNG ?\x43 bengali)
     (TML ?\x44 tamil)
@@ -756,31 +769,10 @@ FUNCTION will be called 15 times."
 (defvar is13194-to-ucs-kannada-hashtbl nil)
 (defvar is13194-to-ucs-kannada-regexp nil)
 
-(mapc
- (function (lambda (script)
-   (let ((hashtable (intern (concat "is13194-to-ucs-"
-                                    (symbol-name script) "-hashtbl" )))
-         (regexp    (intern (concat "is13194-to-ucs-"
-                                    (symbol-name script) "-regexp"))))
-     (set hashtable (make-hash-table :test 'equal :size 128))
-     (mapc
-      (function (lambda (x)
-        (put-char-code-property (decode-char 'ucs (car x))
-                                'script script)
-        (put-char-code-property (decode-char 'ucs (car x))
-                                'iscii (cdr x))
-        (puthash (cdr x) (char-to-string (decode-char 'ucs (car x)))
-                 (eval hashtable))))
-      (eval (intern (concat "ucs-" (symbol-name script)
-                            "-to-is13194-alist"))))
-     (set regexp (indian-regexp-of-hashtbl-keys (eval hashtable))))))
- '(devanagari bengali assamese gurmukhi gujarati
-   oriya tamil telugu malayalam kannada))
-
 (defvar ucs-to-is13194-regexp
   ;; only Devanagari is supported now.
-  (concat "[" (char-to-string (decode-char 'ucs #x0900))
-          "-" (char-to-string (decode-char 'ucs #x097f)) "]")
+  (concat "[" (char-to-string #x0900)
+          "-" (char-to-string #x097f) "]")
   "Regexp that matches to conversion")
 
 (defun ucs-to-iscii-region (from to)
@@ -792,11 +784,11 @@ Returns new end position."
     (save-restriction
       (narrow-to-region from to)
       (goto-char (point-min))
-      (let* ((current-repertory is13194-default-repartory))
-        (while (re-search-forward ucs-to-is13194-regexp nil t)
-          (replace-match
-           (get-char-code-property (string-to-char (match-string 0))
-                                   'iscii))))
+      (let* ((current-repertory is13194-default-repertory))
+       (while (re-search-forward ucs-to-is13194-regexp nil t)
+         (replace-match
+          (get-char-code-property (string-to-char (match-string 0))
+                                  'iscii))))
       (point-max))))
 
 (defun iscii-to-ucs-region (from to)
@@ -808,16 +800,17 @@ Returns new end position."
     (save-restriction
       (narrow-to-region from to)
       (goto-char (point-min))
-      (let* ((current-repertory is13194-default-repartory)
-             (current-hashtable
-              (intern (concat "is13194-to-ucs-"
-                              (symbol-name current-repertory) "-hashtbl")))
-             (current-regexp
-              (intern (concat "is13194-to-ucs-"
-                              (symbol-name current-repertory) "-regexp"))))
-        (while (re-search-forward (eval current-regexp) nil t)
-          (replace-match
-           (gethash (match-string 0) (eval current-hashtable) ""))))
+      (let* ((current-repertory is13194-default-repertory)
+            (current-hashtable
+             (intern (concat "is13194-to-ucs-"
+                             (symbol-name current-repertory) "-hashtbl")))
+            (current-regexp
+             (intern (concat "is13194-to-ucs-"
+                             (symbol-name current-repertory) "-regexp")))
+            (re (eval current-regexp))
+            (hash (eval current-hashtable)))
+       (while (re-search-forward re nil t)
+         (replace-match (gethash (match-string 0) hash ""))))
       (point-max))))
 
 ;;;###autoload
@@ -826,11 +819,15 @@ Returns new end position."
   (interactive "r")
   (save-excursion
     (save-restriction
-      (let ((pos from) chars (max to))
-        (narrow-to-region from to)
-        (while (< pos max)
-          (setq chars (compose-chars-after pos))
-          (if chars (setq pos (+ pos chars)) (setq pos (1+ pos))))))))
+      (let ((pos from) newpos func (max to))
+       (narrow-to-region from to)
+       (while (< pos max)
+         (setq func (aref composition-function-table (char-after pos)))
+         (if (fboundp func)
+             (setq newpos (funcall func pos nil)
+                   pos (if (and (integerp newpos) (> newpos pos))
+                           newpos (1+ pos)))
+           (setq pos (1+ pos))))))))
 
 ;;;###autoload
 (defun indian-compose-string (string)
@@ -861,405 +858,370 @@ Returns new end position."
 
 ;;; Backward Compatibility support programs
 
-;; The followings provides the conversion from old-implementation of
+;; The following provides the conversion from old-implementation of
 ;; Emacs Devanagari script to UCS.
 
 (defconst indian-2-colum-to-ucs
   '(
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2120   \e$(5!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/\e(B
-  ("\e$(5!!\e(B" . "\e$,15A\e(B")
-  ("\e$(5!"\e(B" . "\e$,15B\e(B")
-  ("\e$(5!#\e(B" . "\e$,15C\e(B")
-  ("\e$(5!$\e(B" . "\e$,15E\e(B")
-  ("\e$(5!%\e(B" . "\e$,15F\e(B")
-  ("\e$(5!&\e(B" . "\e$,15G\e(B")
-  ("\e$(5!'\e(B" . "\e$,15H\e(B")
-  ("\e$(5!(\e(B" . "\e$,15I\e(B")
-  ("\e$(5!)\e(B" . "\e$,15J\e(B")
-  ("\e$(5!*\e(B" . "\e$,15K\e(B")
-  ("\e$(5!*"p\e(B" . "\e$,15p6#\e(B")
-  ("\e$(5!+\e(B" . "\e$,15N\e(B")
-  ("\e$(5!,\e(B" . "\e$,15O\e(B")
-  ("\e$(5!-\e(B" . "\e$,15P\e(B")
-  ("\e$(5!.\e(B" . "\e$,15M\e(B")
-  ("\e$(5!/\e(B" . "\e$,15R\e(B")
+  ;;2120   \e$(6!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/\e(B
+  ("\e$(6!!\e(B" . "\e$,15A\e(B")
+  ("\e$(6!"\e(B" . "\e$,15B\e(B")
+  ("\e$(6!#\e(B" . "\e$,15C\e(B")
+  ("\e$(6!$\e(B" . "\e$,15E\e(B")
+  ("\e$(6!%\e(B" . "\e$,15F\e(B")
+  ("\e$(6!&\e(B" . "\e$,15G\e(B")
+  ("\e$(6!'\e(B" . "\e$,15H\e(B")
+  ("\e$(6!(\e(B" . "\e$,15I\e(B")
+  ("\e$(6!)\e(B" . "\e$,15J\e(B")
+  ("\e$(6!*\e(B" . "\e$,15K\e(B")
+  ("\e$(6!*"p\e(B" . "\e$,15p6#\e(B")
+  ("\e$(6!+\e(B" . "\e$,15N\e(B")
+  ("\e$(6!,\e(B" . "\e$,15O\e(B")
+  ("\e$(6!-\e(B" . "\e$,15P\e(B")
+  ("\e$(6!.\e(B" . "\e$,15M\e(B")
+  ("\e$(6!/\e(B" . "\e$,15R\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2130 \e$(5!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?\e(B
-  ("\e$(5!0\e(B" . "\e$,15S\e(B")
-  ("\e$(5!1\e(B" . "\e$,15T\e(B")
-  ("\e$(5!2\e(B" . "\e$,15Q\e(B")
-  ("\e$(5!3\e(B" . "\e$,15U\e(B")
-  ("\e$(5!4\e(B" . "\e$,15V\e(B")
-  ("\e$(5!5\e(B" . "\e$,15W\e(B")
-  ("\e$(5!6\e(B" . "\e$,15X\e(B")
-  ("\e$(5!7\e(B" . "\e$,15Y\e(B")
-  ("\e$(5!8\e(B" . "\e$,15Z\e(B")
-  ("\e$(5!9\e(B" . "\e$,15[\e(B")
-  ("\e$(5!:\e(B" . "\e$,15\\e(B")
-  ("\e$(5!;\e(B" . "\e$,15]\e(B")
-  ("\e$(5!<\e(B" . "\e$,15^\e(B")
-  ("\e$(5!=\e(B" . "\e$,15_\e(B")
-  ("\e$(5!>\e(B" . "\e$,15`\e(B")
-  ("\e$(5!?\e(B" . "\e$,15a\e(B")
+  ;;2130 \e$(6!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?\e(B
+  ("\e$(6!0\e(B" . "\e$,15S\e(B")
+  ("\e$(6!1\e(B" . "\e$,15T\e(B")
+  ("\e$(6!2\e(B" . "\e$,15Q\e(B")
+  ("\e$(6!3\e(B" . "\e$,15U\e(B")
+  ("\e$(6!4\e(B" . "\e$,15V\e(B")
+  ("\e$(6!5\e(B" . "\e$,15W\e(B")
+  ("\e$(6!6\e(B" . "\e$,15X\e(B")
+  ("\e$(6!7\e(B" . "\e$,15Y\e(B")
+  ("\e$(6!8\e(B" . "\e$,15Z\e(B")
+  ("\e$(6!9\e(B" . "\e$,15[\e(B")
+  ("\e$(6!:\e(B" . "\e$,15\\e(B")
+  ("\e$(6!;\e(B" . "\e$,15]\e(B")
+  ("\e$(6!<\e(B" . "\e$,15^\e(B")
+  ("\e$(6!=\e(B" . "\e$,15_\e(B")
+  ("\e$(6!>\e(B" . "\e$,15`\e(B")
+  ("\e$(6!?\e(B" . "\e$,15a\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2140 \e$(5!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O\e(B
-  ("\e$(5!@\e(B" . "\e$,15b\e(B")
-  ("\e$(5!A\e(B" . "\e$,15c\e(B")
-  ("\e$(5!B\e(B" . "\e$,15d\e(B")
-  ("\e$(5!C\e(B" . "\e$,15e\e(B")
-  ("\e$(5!D\e(B" . "\e$,15f\e(B")
-  ("\e$(5!E\e(B" . "\e$,15g\e(B")
-  ("\e$(5!F\e(B" . "\e$,15h\e(B")
-  ("\e$(5!G\e(B" . "\e$,15i\e(B")
-  ("\e$(5!H\e(B" . "\e$,15j\e(B")
-  ("\e$(5!I\e(B" . "\e$,15k\e(B")
-  ("\e$(5!J\e(B" . "\e$,15l\e(B")
-  ("\e$(5!K\e(B" . "\e$,15m\e(B")
-  ("\e$(5!L\e(B" . "\e$,15n\e(B")
-  ("\e$(5!M\e(B" . "\e$,15o\e(B")
-  ("\e$(5!N\e(B" . "\e$,16?\e(B")
-  ("\e$(5!O\e(B" . "\e$,15p\e(B")
+  ;;2140 \e$(6!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O\e(B
+  ("\e$(6!@\e(B" . "\e$,15b\e(B")
+  ("\e$(6!A\e(B" . "\e$,15c\e(B")
+  ("\e$(6!B\e(B" . "\e$,15d\e(B")
+  ("\e$(6!C\e(B" . "\e$,15e\e(B")
+  ("\e$(6!D\e(B" . "\e$,15f\e(B")
+  ("\e$(6!E\e(B" . "\e$,15g\e(B")
+  ("\e$(6!F\e(B" . "\e$,15h\e(B")
+  ("\e$(6!G\e(B" . "\e$,15i\e(B")
+  ("\e$(6!H\e(B" . "\e$,15j\e(B")
+  ("\e$(6!I\e(B" . "\e$,15k\e(B")
+  ("\e$(6!J\e(B" . "\e$,15l\e(B")
+  ("\e$(6!K\e(B" . "\e$,15m\e(B")
+  ("\e$(6!L\e(B" . "\e$,15n\e(B")
+  ("\e$(6!M\e(B" . "\e$,15o\e(B")
+  ("\e$(6!N\e(B" . "\e$,16?\e(B")
+  ("\e$(6!O\e(B" . "\e$,15p\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2150 \e$(5!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_\e(B
-  ("\e$(5!P\e(B" . "\e$,15q\e(B")
-  ("\e$(5!Q\e(B" . "\e$,15r\e(B")
-  ("\e$(5!R\e(B" . "\e$,15s\e(B")
-  ("\e$(5!S\e(B" . "\e$,15t\e(B")
-  ("\e$(5!T\e(B" . "\e$,15u\e(B")
-  ("\e$(5!U\e(B" . "\e$,15v\e(B")
-  ("\e$(5!V\e(B" . "\e$,15w\e(B")
-  ("\e$(5!W\e(B" . "\e$,15x\e(B")
-  ("\e$(5!X\e(B" . "\e$,15y\e(B")
-  ("\e$(5!Z\e(B" . "\e$,15~\e(B")
-  ("\e$(5![\e(B" . "\e$,15\7f\e(B")
-  ("\e$(5!\\e(B" . "\e$,16 \e(B")
-  ("\e$(5!]\e(B" . "\e$,16!\e(B")
-  ("\e$(5!^\e(B" . "\e$,16"\e(B")
-  ("\e$(5!_\e(B" . "\e$,16#\e(B")
+  ;;2150 \e$(6!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_\e(B
+  ("\e$(6!P\e(B" . "\e$,15q\e(B")
+  ("\e$(6!Q\e(B" . "\e$,15r\e(B")
+  ("\e$(6!R\e(B" . "\e$,15s\e(B")
+  ("\e$(6!S\e(B" . "\e$,15t\e(B")
+  ("\e$(6!T\e(B" . "\e$,15u\e(B")
+  ("\e$(6!U\e(B" . "\e$,15v\e(B")
+  ("\e$(6!V\e(B" . "\e$,15w\e(B")
+  ("\e$(6!W\e(B" . "\e$,15x\e(B")
+  ("\e$(6!X\e(B" . "\e$,15y\e(B")
+  ("\e$(6!Z\e(B" . "\e$,15~\e(B")
+  ("\e$(6![\e(B" . "\e$,15\7f\e(B")
+  ("\e$(6!\\e(B" . "\e$,16 \e(B")
+  ("\e$(6!]\e(B" . "\e$,16!\e(B")
+  ("\e$(6!^\e(B" . "\e$,16"\e(B")
+  ("\e$(6!_\e(B" . "\e$,16#\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2160 \e$(5!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o\e(B
-  ("\e$(5!`\e(B" . "\e$,16&\e(B")
-  ("\e$(5!a\e(B" . "\e$,16'\e(B")
-  ("\e$(5!b\e(B" . "\e$,16(\e(B")
-  ("\e$(5!c\e(B" . "\e$,16%\e(B")
-  ("\e$(5!d\e(B" . "\e$,16*\e(B")
-  ("\e$(5!e\e(B" . "\e$,16+\e(B")
-  ("\e$(5!f\e(B" . "\e$,16,\e(B")
-  ("\e$(5!g\e(B" . "\e$,16)\e(B")
-  ("\e$(5!h\e(B" . "\e$,16-\e(B")
-  ("\e$(5!i\e(B" . "\e$,15|\e(B")
-  ("\e$(5!j\e(B" . "\e$,16D\e(B")
-  ("\e$(5!j!j\e(B" . "\e$,16E\e(B")
+  ;;2160 \e$(6!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o\e(B
+  ("\e$(6!`\e(B" . "\e$,16&\e(B")
+  ("\e$(6!a\e(B" . "\e$,16'\e(B")
+  ("\e$(6!b\e(B" . "\e$,16(\e(B")
+  ("\e$(6!c\e(B" . "\e$,16%\e(B")
+  ("\e$(6!d\e(B" . "\e$,16*\e(B")
+  ("\e$(6!e\e(B" . "\e$,16+\e(B")
+  ("\e$(6!f\e(B" . "\e$,16,\e(B")
+  ("\e$(6!g\e(B" . "\e$,16)\e(B")
+  ("\e$(6!h\e(B" . "\e$,16-\e(B")
+  ("\e$(6!i\e(B" . "\e$,15|\e(B")
+  ("\e$(6!j\e(B" . "\e$,16D\e(B")
+  ("\e$(6!j!j\e(B" . "\e$,16E\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2170 \e$(5!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~\e(B
-  ("\e$(5!q\e(B" . "\e$,16F\e(B")
-  ("\e$(5!r\e(B" . "\e$,16G\e(B")
-  ("\e$(5!s\e(B" . "\e$,16H\e(B")
-  ("\e$(5!t\e(B" . "\e$,16I\e(B")
-  ("\e$(5!u\e(B" . "\e$,16J\e(B")
-  ("\e$(5!v\e(B" . "\e$,16K\e(B")
-  ("\e$(5!w\e(B" . "\e$,16L\e(B")
-  ("\e$(5!x\e(B" . "\e$,16M\e(B")
-  ("\e$(5!y\e(B" . "\e$,16N\e(B")
-  ("\e$(5!z\e(B" . "\e$,16O\e(B")
+  ;;2170 \e$(6!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~\e(B
+  ("\e$(6!q\e(B" . "\e$,16F\e(B")
+  ("\e$(6!r\e(B" . "\e$,16G\e(B")
+  ("\e$(6!s\e(B" . "\e$,16H\e(B")
+  ("\e$(6!t\e(B" . "\e$,16I\e(B")
+  ("\e$(6!u\e(B" . "\e$,16J\e(B")
+  ("\e$(6!v\e(B" . "\e$,16K\e(B")
+  ("\e$(6!w\e(B" . "\e$,16L\e(B")
+  ("\e$(6!x\e(B" . "\e$,16M\e(B")
+  ("\e$(6!y\e(B" . "\e$,16N\e(B")
+  ("\e$(6!z\e(B" . "\e$,16O\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2220   \e$(5"!"""#"$"%"&"'"(")"*"+","-"."/\e(B
-  ("\e$(5"!\e(B" . "\e$,16;6-5p\e(B")
-  ("\e$(5""\e(B" . "\e$,16>6-5p\e(B")
-  ("\e$(5"#\e(B" . "\e$,15U6-5p\e(B")
-  ("\e$(5"$\e(B" . "\e$,15W6-5p\e(B")
-  ("\e$(5"%\e(B" . "\e$,15d6-5p\e(B")
-  ("\e$(5"&\e(B" . "\e$,15j6-5p\e(B")
-  ("\e$(5"'\e(B" . "\e$,15k6-5p\e(B")
-  ("\e$(5")\e(B" . "\e$,15v6-5p\e(B")
-  ("\e$(5",\e(B" . "\e$,15p6!\e(B")
-  ("\e$(5"-\e(B" . "\e$,15p6"\e(B")
-  ("\e$(5".\e(B" . "\e$,15q6!\e(B")
-  ("\e$(5"/\e(B" . "\e$,15q6"\e(B")
+  ;;2220   \e$(6"!"""#"$"%"&"'"(")"*"+","-"."/\e(B
+  ("\e$(6"!\e(B" . "\e$,16;6-5p\e(B")
+  ("\e$(6""\e(B" . "\e$,16>6-5p\e(B")
+  ("\e$(6"#\e(B" . "\e$,15U6-5p\e(B")
+  ("\e$(6"$\e(B" . "\e$,15W6-5p\e(B")
+  ("\e$(6"%\e(B" . "\e$,15d6-5p\e(B")
+  ("\e$(6"&\e(B" . "\e$,15j6-5p\e(B")
+  ("\e$(6"'\e(B" . "\e$,15k6-5p\e(B")
+  ("\e$(6")\e(B" . "\e$,15v6-5p\e(B")
+  ("\e$(6",\e(B" . "\e$,15p6!\e(B")
+  ("\e$(6"-\e(B" . "\e$,15p6"\e(B")
+  ("\e$(6".\e(B" . "\e$,15q6!\e(B")
+  ("\e$(6"/\e(B" . "\e$,15q6"\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2230 \e$(5"0"1"2"3"4"5"6"7"8"9":";"<"=">"?\e(B
-  ("\e$(5"3\e(B" . "\e$,15U6-\e(B")
-  ("\e$(5"4\e(B" . "\e$,15V6-\e(B")
-  ("\e$(5"5\e(B" . "\e$,15W6-\e(B")
-  ("\e$(5"6\e(B" . "\e$,15X6-\e(B")
-  ("\e$(5"8\e(B" . "\e$,15Z6-\e(B")
-  ("\e$(5"8"q\e(B" . "\e$,15Z6-5p6-\e(B")
-  ("\e$(5":\e(B" . "\e$,15\6-\e(B")
-  ("\e$(5";\e(B" . "\e$,15]6-\e(B")
-  ("\e$(5"<\e(B" . "\e$,15^6-\e(B")
-  ("\e$(5"<\e(B" . "\e$,15^6-\e(B")
+  ;;2230 \e$(6"0"1"2"3"4"5"6"7"8"9":";"<"=">"?\e(B
+  ("\e$(6"3\e(B" . "\e$,15U6-\e(B")
+  ("\e$(6"4\e(B" . "\e$,15V6-\e(B")
+  ("\e$(6"5\e(B" . "\e$,15W6-\e(B")
+  ("\e$(6"6\e(B" . "\e$,15X6-\e(B")
+  ("\e$(6"8\e(B" . "\e$,15Z6-\e(B")
+  ("\e$(6"8"q\e(B" . "\e$,15Z6-5p6-\e(B")
+  ("\e$(6":\e(B" . "\e$,15\6-\e(B")
+  ("\e$(6";\e(B" . "\e$,15]6-\e(B")
+  ("\e$(6"<\e(B" . "\e$,15^6-\e(B")
+  ("\e$(6"<\e(B" . "\e$,15^6-\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2240 \e$(5"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O\e(B
-  ("\e$(5"A\e(B" . "\e$,15c6-\e(B")
-  ("\e$(5"B\e(B" . "\e$,15d6-\e(B")
-  ("\e$(5"C\e(B" . "\e$,15e6-\e(B")
-  ("\e$(5"E\e(B" . "\e$,15g6-\e(B")
-  ("\e$(5"F\e(B" . "\e$,15h6-\e(B")
-  ("\e$(5"G\e(B" . "\e$,15i6-\e(B")
-  ("\e$(5"H\e(B" . "\e$,15j6-\e(B")
-  ("\e$(5"I\e(B" . "\e$,15k6-\e(B")
-  ("\e$(5"J\e(B" . "\e$,15l6-\e(B")
-  ("\e$(5"J\e(B" . "\e$,15l6-\e(B")
-  ("\e$(5"K\e(B" . "\e$,15m6-\e(B")
-  ("\e$(5"L\e(B" . "\e$,15n6-\e(B")
-  ("\e$(5"M\e(B" . "\e$,15o6-\e(B")
-  ("\e$(5"N\e(B" . "\e$,16?6-\e(B")
+  ;;2240 \e$(6"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O\e(B
+  ("\e$(6"A\e(B" . "\e$,15c6-\e(B")
+  ("\e$(6"B\e(B" . "\e$,15d6-\e(B")
+  ("\e$(6"C\e(B" . "\e$,15e6-\e(B")
+  ("\e$(6"E\e(B" . "\e$,15g6-\e(B")
+  ("\e$(6"F\e(B" . "\e$,15h6-\e(B")
+  ("\e$(6"G\e(B" . "\e$,15i6-\e(B")
+  ("\e$(6"H\e(B" . "\e$,15j6-\e(B")
+  ("\e$(6"I\e(B" . "\e$,15k6-\e(B")
+  ("\e$(6"J\e(B" . "\e$,15l6-\e(B")
+  ("\e$(6"J\e(B" . "\e$,15l6-\e(B")
+  ("\e$(6"K\e(B" . "\e$,15m6-\e(B")
+  ("\e$(6"L\e(B" . "\e$,15n6-\e(B")
+  ("\e$(6"M\e(B" . "\e$,15o6-\e(B")
+  ("\e$(6"N\e(B" . "\e$,16?6-\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2250 \e$(5"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_\e(B
-  ("\e$(5"Q\e(B" . "\e$,15r6-\e(B")
-  ("\e$(5"R\e(B" . "\e$,15s6-\e(B")
-  ("\e$(5"S\e(B" . "\e$,15t6-\e(B")
-  ("\e$(5"T\e(B" . "\e$,15u6-\e(B")
-  ("\e$(5"U\e(B" . "\e$,15v6-\e(B")
-  ("\e$(5"V\e(B" . "\e$,15w6-\e(B")
-  ("\e$(5"W\e(B" . "\e$,15x6-\e(B")
-  ("\e$(5"]\e(B" . "\e$,16-5o\e(B")
+  ;;2250 \e$(6"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_\e(B
+  ("\e$(6"Q\e(B" . "\e$,15r6-\e(B")
+  ("\e$(6"R\e(B" . "\e$,15s6-\e(B")
+  ("\e$(6"S\e(B" . "\e$,15t6-\e(B")
+  ("\e$(6"T\e(B" . "\e$,15u6-\e(B")
+  ("\e$(6"U\e(B" . "\e$,15v6-\e(B")
+  ("\e$(6"V\e(B" . "\e$,15w6-\e(B")
+  ("\e$(6"W\e(B" . "\e$,15x6-\e(B")
+  ("\e$(6"]\e(B" . "\e$,16-5o\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2260 \e$(5"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o\e(B
-  ("\e$(5"`\e(B" . "\e$,15W6-5p6-\e(B")
-  ("\e$(5"a\e(B" . "\e$,15X6-5h6-\e(B")
-  ("\e$(5"c\e(B" . "\e$,15d6-5d6-\e(B")
-  ("\e$(5"d\e(B" . "\e$,15d6-5p6-\e(B")
-  ("\e$(5"e\e(B" . "\e$,15g6-5h6-\e(B")
-  ("\e$(5"f\e(B" . "\e$,15g6-5p6-\e(B")
-  ("\e$(5"g\e(B" . "\e$,15j6-5d6-\e(B")
-  ("\e$(5"h\e(B" . "\e$,15v6-5Z6-\e(B")
-  ("\e$(5"i\e(B" . "\e$,15v6-5p6-\e(B")
-  ("\e$(5"j\e(B" . "\e$,15v6-5u6-\e(B")
-  ("\e$(5"k\e(B" . "\e$,15h6-5h6-\e(B")
-  ("\e$(5"l\e(B" . "\e$,15U6-5w6-\e(B")
-  ("\e$(5"m\e(B" . "\e$,15\6-5^6-\e(B")
+  ;;2260 \e$(6"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o\e(B
+  ("\e$(6"`\e(B" . "\e$,15W6-5p6-\e(B")
+  ("\e$(6"a\e(B" . "\e$,15X6-5h6-\e(B")
+  ("\e$(6"c\e(B" . "\e$,15d6-5d6-\e(B")
+  ("\e$(6"d\e(B" . "\e$,15d6-5p6-\e(B")
+  ("\e$(6"e\e(B" . "\e$,15g6-5h6-\e(B")
+  ("\e$(6"f\e(B" . "\e$,15g6-5p6-\e(B")
+  ("\e$(6"g\e(B" . "\e$,15j6-5d6-\e(B")
+  ("\e$(6"h\e(B" . "\e$,15v6-5Z6-\e(B")
+  ("\e$(6"i\e(B" . "\e$,15v6-5p6-\e(B")
+  ("\e$(6"j\e(B" . "\e$,15v6-5u6-\e(B")
+  ("\e$(6"k\e(B" . "\e$,15h6-5h6-\e(B")
+  ("\e$(6"l\e(B" . "\e$,15U6-5w6-\e(B")
+  ("\e$(6"m\e(B" . "\e$,15\6-5^6-\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2270 \e$(5"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~\e(B
-  ("\e$(5"p\e(B" . "\e$,15p6-\e(B")
-  ("\e$(5"q\e(B" . "\e$,16-5p\e(B")
-  ("\e$(5"r\e(B" . "\e$,16-5p\e(B")
-  ("\e$(5"s\e(B" . "\e$,1686-\e(B")
-  ("\e$(5"t\e(B" . "\e$,1696-\e(B")
-  ("\e$(5"u\e(B" . "\e$,16:6-\e(B")
-  ("\e$(5"y\e(B" . "\e$,16>6-\e(B")
-  ("\e$(5"z\e(B" . "\e$,16;6-\e(B")
+  ;;2270 \e$(6"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~\e(B
+  ("\e$(6"p\e(B" . "\e$,15p6-\e(B")
+  ("\e$(6"q\e(B" . "\e$,16-5p\e(B")
+  ("\e$(6"r\e(B" . "\e$,16-5p\e(B")
+  ("\e$(6"s\e(B" . "\e$,1686-\e(B")
+  ("\e$(6"t\e(B" . "\e$,1696-\e(B")
+  ("\e$(6"u\e(B" . "\e$,16:6-\e(B")
+  ("\e$(6"y\e(B" . "\e$,16>6-\e(B")
+  ("\e$(6"z\e(B" . "\e$,16;6-\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2320   \e$(5#!#"###$#%#&#'#(#)#*#+#,#-#.#/\e(B
-  ("\e$(5#!\e(B" . "\e$,160\e(B")
-  ("\e$(5#&\e(B" . "\e$,15L\e(B")
-  ("\e$(5#&"p\e(B" . "\e$,15p6$\e(B")
-  ("\e$(5#'\e(B" . "\e$,16A\e(B")
-  ("\e$(5#'"p\e(B" . "\e$,15p6C\e(B")
-  ("\e$(5#*\e(B" . "\e$,16@\e(B")
-  ("\e$(5#*"p\e(B" . "\e$,15p6B\e(B")
+  ;;2320   \e$(6#!#"###$#%#&#'#(#)#*#+#,#-#.#/\e(B
+  ("\e$(6#!\e(B" . "\e$,160\e(B")
+  ("\e$(6#&\e(B" . "\e$,15L\e(B")
+  ("\e$(6#&"p\e(B" . "\e$,15p6$\e(B")
+  ("\e$(6#'\e(B" . "\e$,16A\e(B")
+  ("\e$(6#'"p\e(B" . "\e$,15p6C\e(B")
+  ("\e$(6#*\e(B" . "\e$,16@\e(B")
+  ("\e$(6#*"p\e(B" . "\e$,15p6B\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2330 \e$(5#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?\e(B
-  ("\e$(5#3\e(B" . "\e$,168\e(B")
-  ("\e$(5#4\e(B" . "\e$,169\e(B")
-  ("\e$(5#5\e(B" . "\e$,16:\e(B")
-  ("\e$(5#:\e(B" . "\e$,16;\e(B")
-  ("\e$(5#?\e(B" . "\e$,16<\e(B")
+  ;;2330 \e$(6#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?\e(B
+  ("\e$(6#3\e(B" . "\e$,168\e(B")
+  ("\e$(6#4\e(B" . "\e$,169\e(B")
+  ("\e$(6#5\e(B" . "\e$,16:\e(B")
+  ("\e$(6#:\e(B" . "\e$,16;\e(B")
+  ("\e$(6#?\e(B" . "\e$,16<\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2340 \e$(5#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O\e(B
-  ("\e$(5#@\e(B" . "\e$,16=\e(B")
-  ("\e$(5#I\e(B" . "\e$,16>\e(B")
-  ("\e$(5#J\e(B" . "\e$,15}\e(B")
-  ("\e$(5#K\e(B" . "\e$,16$\e(B")
-  ("\e$(5#L\e(B" . "\e$,16B\e(B")
-  ("\e$(5#M\e(B" . "\e$,16C\e(B")
+  ;;2340 \e$(6#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O\e(B
+  ("\e$(6#@\e(B" . "\e$,16=\e(B")
+  ("\e$(6#I\e(B" . "\e$,16>\e(B")
+  ("\e$(6#J\e(B" . "\e$,15}\e(B")
+  ("\e$(6#K\e(B" . "\e$,16$\e(B")
+  ("\e$(6#L\e(B" . "\e$,16B\e(B")
+  ("\e$(6#M\e(B" . "\e$,16C\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2350 \e$(5#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_\e(B
-  ("\e$(5#P\e(B" . "\e$,15n6-5h\e(B")
-  ("\e$(5#Q\e(B" . "\e$,15n6-5r\e(B")
-  ("\e$(5#R\e(B" . "\e$,15y6#\e(B")
+  ;;2350 \e$(6#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_\e(B
+  ("\e$(6#P\e(B" . "\e$,15n6-5h\e(B")
+  ("\e$(6#Q\e(B" . "\e$,15n6-5r\e(B")
+  ("\e$(6#R\e(B" . "\e$,15y6#\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2360 \e$(5#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o\e(B
-  ("\e$(5#`\e(B" . "\e$,15r6-5r\e(B")
-  ("\e$(5#a\e(B" . "\e$,15u6-5h\e(B")
-  ("\e$(5#b\e(B" . "\e$,15u6-5u\e(B")
-  ("\e$(5#c\e(B" . "\e$,15v6-5Z\e(B")
-  ("\e$(5#d\e(B" . "\e$,15v6-5h\e(B")
-  ("\e$(5#e\e(B" . "\e$,15v6-5l\e(B")
-  ("\e$(5#f\e(B" . "\e$,15v6-5r\e(B")
-  ("\e$(5#g\e(B" . "\e$,15v6-5u\e(B")
-  ("\e$(5#h\e(B" . "\e$,15w6-5_6-5p6-5o\e(B")
-  ("\e$(5#i\e(B" . "\e$,15w6-5_6-5o\e(B")
-  ("\e$(5#j\e(B" . "\e$,15w6-5_6-5u\e(B")
-  ("\e$(5#k\e(B" . "\e$,15w6-5_\e(B")
-  ("\e$(5#l\e(B" . "\e$,15w6-5`\e(B")
-  ("\e$(5#m\e(B" . "\e$,15x6-5h\e(B")
-  ("\e$(5#n\e(B" . "\e$,15x6-5p\e(B")
+  ;;2360 \e$(6#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o\e(B
+  ("\e$(6#`\e(B" . "\e$,15r6-5r\e(B")
+  ("\e$(6#a\e(B" . "\e$,15u6-5h\e(B")
+  ("\e$(6#b\e(B" . "\e$,15u6-5u\e(B")
+  ("\e$(6#c\e(B" . "\e$,15v6-5Z\e(B")
+  ("\e$(6#d\e(B" . "\e$,15v6-5h\e(B")
+  ("\e$(6#e\e(B" . "\e$,15v6-5l\e(B")
+  ("\e$(6#f\e(B" . "\e$,15v6-5r\e(B")
+  ("\e$(6#g\e(B" . "\e$,15v6-5u\e(B")
+  ("\e$(6#h\e(B" . "\e$,15w6-5_6-5p6-5o\e(B")
+  ("\e$(6#i\e(B" . "\e$,15w6-5_6-5o\e(B")
+  ("\e$(6#j\e(B" . "\e$,15w6-5_6-5u\e(B")
+  ("\e$(6#k\e(B" . "\e$,15w6-5_\e(B")
+  ("\e$(6#l\e(B" . "\e$,15w6-5`\e(B")
+  ("\e$(6#m\e(B" . "\e$,15x6-5h\e(B")
+  ("\e$(6#n\e(B" . "\e$,15x6-5p\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2370 \e$(5#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~\e(B
-  ("\e$(5#p\e(B" . "\e$,15y6-5c\e(B")
-  ("\e$(5#q\e(B" . "\e$,15y6-5h\e(B")
-  ("\e$(5#r\e(B" . "\e$,15y6-5n\e(B")
-  ("\e$(5#s\e(B" . "\e$,15y6-5o\e(B")
-  ("\e$(5#t\e(B" . "\e$,15y6-5p\e(B")
-  ("\e$(5#u\e(B" . "\e$,15y6-5r\e(B")
-  ("\e$(5#v\e(B" . "\e$,15y6-5u\e(B")
+  ;;2370 \e$(6#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~\e(B
+  ("\e$(6#p\e(B" . "\e$,15y6-5c\e(B")
+  ("\e$(6#q\e(B" . "\e$,15y6-5h\e(B")
+  ("\e$(6#r\e(B" . "\e$,15y6-5n\e(B")
+  ("\e$(6#s\e(B" . "\e$,15y6-5o\e(B")
+  ("\e$(6#t\e(B" . "\e$,15y6-5p\e(B")
+  ("\e$(6#u\e(B" . "\e$,15y6-5r\e(B")
+  ("\e$(6#v\e(B" . "\e$,15y6-5u\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2420   \e$(5$!$"$#$$$%$&$'$($)$*$+$,$-$.$/\e(B
-  ("\e$(5$!\e(B" . "\e$,15U6-5d6-5p6-5o\e(B")
-  ("\e$(5$"\e(B" . "\e$,15U6-5d6-5u\e(B")
-  ("\e$(5$#\e(B" . "\e$,15U6-5d6-5o\e(B")
-  ("\e$(5$$\e(B" . "\e$,15U6-5h6-5o\e(B")
-  ("\e$(5$%\e(B" . "\e$,15U6-5p6-5o\e(B")
-  ("\e$(5$&\e(B" . "\e$,15U6-5u6-5o\e(B")
-  ("\e$(5$'\e(B" . "\e$,15U6-5U\e(B")
-  ("\e$(5$(\e(B" . "\e$,15U6-5d\e(B")
-  ("\e$(5$)\e(B" . "\e$,15U6-5h\e(B")
-  ("\e$(5$*\e(B" . "\e$,15U6-5n\e(B")
-  ("\e$(5$+\e(B" . "\e$,15U6-5o\e(B")
-  ("\e$(5$,\e(B" . "\e$,15U6-5r\e(B")
-  ("\e$(5$-\e(B" . "\e$,15U6-5u\e(B")
-  ("\e$(5$.\e(B" . "\e$,15U6-5w\e(B")
-  ("\e$(5$/\e(B" . "\e$,15X6-5h\e(B")
+  ;;2420   \e$(6$!$"$#$$$%$&$'$($)$*$+$,$-$.$/\e(B
+  ("\e$(6$!\e(B" . "\e$,15U6-5d6-5p6-5o\e(B")
+  ("\e$(6$"\e(B" . "\e$,15U6-5d6-5u\e(B")
+  ("\e$(6$#\e(B" . "\e$,15U6-5d6-5o\e(B")
+  ("\e$(6$$\e(B" . "\e$,15U6-5h6-5o\e(B")
+  ("\e$(6$%\e(B" . "\e$,15U6-5p6-5o\e(B")
+  ("\e$(6$&\e(B" . "\e$,15U6-5u6-5o\e(B")
+  ("\e$(6$'\e(B" . "\e$,15U6-5U\e(B")
+  ("\e$(6$(\e(B" . "\e$,15U6-5d\e(B")
+  ("\e$(6$)\e(B" . "\e$,15U6-5h\e(B")
+  ("\e$(6$*\e(B" . "\e$,15U6-5n\e(B")
+  ("\e$(6$+\e(B" . "\e$,15U6-5o\e(B")
+  ("\e$(6$,\e(B" . "\e$,15U6-5r\e(B")
+  ("\e$(6$-\e(B" . "\e$,15U6-5u\e(B")
+  ("\e$(6$.\e(B" . "\e$,15U6-5w\e(B")
+  ("\e$(6$/\e(B" . "\e$,15X6-5h\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2430 \e$(5$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?\e(B
-  ("\e$(5$0\e(B" . "\e$,15Y6-5U6-5d6-5o\e(B")
-  ("\e$(5$1\e(B" . "\e$,15Y6-5U6-5w6-5u\e(B")
-  ("\e$(5$2\e(B" . "\e$,15Y6-5U6-5d\e(B")
-  ("\e$(5$3\e(B" . "\e$,15Y6-5U6-5w\e(B")
-  ("\e$(5$4\e(B" . "\e$,15Y6-5X6-5p\e(B")
-  ("\e$(5$5\e(B" . "\e$,15Y6-5U6-5o\e(B")
-  ("\e$(5$6\e(B" . "\e$,15Y6-5V6-5o\e(B")
-  ("\e$(5$7\e(B" . "\e$,15Y6-5W6-5o\e(B")
-  ("\e$(5$8\e(B" . "\e$,15Y6-5X6-5o\e(B")
-  ("\e$(5$9\e(B" . "\e$,15Y6-5U\e(B")
-  ("\e$(5$:\e(B" . "\e$,15Y6-5V\e(B")
-  ("\e$(5$;\e(B" . "\e$,15Y6-5W\e(B")
-  ("\e$(5$<\e(B" . "\e$,15Y6-5X\e(B")
-  ("\e$(5$=\e(B" . "\e$,15Y6-5Y\e(B")
-  ("\e$(5$>\e(B" . "\e$,15Y6-5h\e(B")
-  ("\e$(5$?\e(B" . "\e$,15Y6-5n\e(B")
+  ;;2430 \e$(6$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?\e(B
+  ("\e$(6$0\e(B" . "\e$,15Y6-5U6-5d6-5o\e(B")
+  ("\e$(6$1\e(B" . "\e$,15Y6-5U6-5w6-5u\e(B")
+  ("\e$(6$2\e(B" . "\e$,15Y6-5U6-5d\e(B")
+  ("\e$(6$3\e(B" . "\e$,15Y6-5U6-5w\e(B")
+  ("\e$(6$4\e(B" . "\e$,15Y6-5X6-5p\e(B")
+  ("\e$(6$5\e(B" . "\e$,15Y6-5U6-5o\e(B")
+  ("\e$(6$6\e(B" . "\e$,15Y6-5V6-5o\e(B")
+  ("\e$(6$7\e(B" . "\e$,15Y6-5W6-5o\e(B")
+  ("\e$(6$8\e(B" . "\e$,15Y6-5X6-5o\e(B")
+  ("\e$(6$9\e(B" . "\e$,15Y6-5U\e(B")
+  ("\e$(6$:\e(B" . "\e$,15Y6-5V\e(B")
+  ("\e$(6$;\e(B" . "\e$,15Y6-5W\e(B")
+  ("\e$(6$<\e(B" . "\e$,15Y6-5X\e(B")
+  ("\e$(6$=\e(B" . "\e$,15Y6-5Y\e(B")
+  ("\e$(6$>\e(B" . "\e$,15Y6-5h\e(B")
+  ("\e$(6$?\e(B" . "\e$,15Y6-5n\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2440 \e$(5$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O\e(B
-  ("\e$(5$@\e(B" . "\e$,15Y6-5o\e(B")
-  ("\e$(5$A\e(B" . "\e$,15Z6-5Z\e(B")
-  ("\e$(5$B\e(B" . "\e$,15Z6-5^\e(B")
-  ("\e$(5$C\e(B" . "\e$,15[6-5o\e(B")
-  ("\e$(5$D\e(B" . "\e$,15\6-5p\e(B")
-  ("\e$(5$E\e(B" . "\e$,15\6-5^\e(B")
-  ("\e$(5$F\e(B" . "\e$,15^6-5Z\e(B")
-  ("\e$(5$G\e(B" . "\e$,15^6-5\\e(B")
-  ("\e$(5$H\e(B" . "\e$,15_6-5U\e(B")
-  ("\e$(5$I\e(B" . "\e$,15_6-5_\e(B")
-  ("\e$(5$J\e(B" . "\e$,15_6-5`\e(B")
-  ("\e$(5$K\e(B" . "\e$,15_6-5o\e(B")
-  ("\e$(5$L\e(B" . "\e$,15`6-5o\e(B")
-  ("\e$(5$M\e(B" . "\e$,15a6-5W6-5o\e(B")
-  ("\e$(5$N\e(B" . "\e$,15a6-5X6-5p\e(B")
-  ("\e$(5$O\e(B" . "\e$,15a6-5p6-5o\e(B")
+  ;;2440 \e$(6$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O\e(B
+  ("\e$(6$@\e(B" . "\e$,15Y6-5o\e(B")
+  ("\e$(6$A\e(B" . "\e$,15Z6-5Z\e(B")
+  ("\e$(6$B\e(B" . "\e$,15Z6-5^\e(B")
+  ("\e$(6$C\e(B" . "\e$,15[6-5o\e(B")
+  ("\e$(6$D\e(B" . "\e$,15\6-5p\e(B")
+  ("\e$(6$E\e(B" . "\e$,15\6-5^\e(B")
+  ("\e$(6$F\e(B" . "\e$,15^6-5Z\e(B")
+  ("\e$(6$G\e(B" . "\e$,15^6-5\\e(B")
+  ("\e$(6$H\e(B" . "\e$,15_6-5U\e(B")
+  ("\e$(6$I\e(B" . "\e$,15_6-5_\e(B")
+  ("\e$(6$J\e(B" . "\e$,15_6-5`\e(B")
+  ("\e$(6$K\e(B" . "\e$,15_6-5o\e(B")
+  ("\e$(6$L\e(B" . "\e$,15`6-5o\e(B")
+  ("\e$(6$M\e(B" . "\e$,15a6-5W6-5o\e(B")
+  ("\e$(6$N\e(B" . "\e$,15a6-5X6-5p\e(B")
+  ("\e$(6$O\e(B" . "\e$,15a6-5p6-5o\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2450 \e$(5$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_\e(B
-  ("\e$(5$P\e(B" . "\e$,15a6-5W\e(B")
-  ("\e$(5$Q\e(B" . "\e$,15a6-5X\e(B")
-  ("\e$(5$R\e(B" . "\e$,15a6-5a\e(B")
-  ("\e$(5$S\e(B" . "\e$,15a6-5n\e(B")
-  ("\e$(5$T\e(B" . "\e$,15a6-5o\e(B")
+  ;;2450 \e$(6$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_\e(B
+  ("\e$(6$P\e(B" . "\e$,15a6-5W\e(B")
+  ("\e$(6$Q\e(B" . "\e$,15a6-5X\e(B")
+  ("\e$(6$R\e(B" . "\e$,15a6-5a\e(B")
+  ("\e$(6$S\e(B" . "\e$,15a6-5n\e(B")
+  ("\e$(6$T\e(B" . "\e$,15a6-5o\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2460 \e$(5$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o\e(B
-  ("\e$(5$`\e(B" . "\e$,15b6-5o\e(B")
-  ("\e$(5$a\e(B" . "\e$,15d6-5d\e(B")
-  ("\e$(5$b\e(B" . "\e$,15d6-5h\e(B")
-  ("\e$(5$c\e(B" . "\e$,15f6-5f6-5o\e(B")
-  ("\e$(5$d\e(B" . "\e$,15f6-5g6-5o\e(B")
-  ("\e$(5$e\e(B" . "\e$,15f6-5m6-5o\e(B")
-  ("\e$(5$f\e(B" . "\e$,15f6-5p6-5o\e(B")
-  ("\e$(5$g\e(B" . "\e$,15f6-5u6-5o\e(B")
-  ("\e$(5$h\e(B" . "\e$,15f6-5W6-5p\e(B")
-  ("\e$(5$i\e(B" . "\e$,15f6-5X6-5p\e(B")
-  ("\e$(5$j\e(B" . "\e$,15f6-5f6-5u\e(B")
-  ("\e$(5$k\e(B" . "\e$,15f6-5g6-5u\e(B")
-  ("\e$(5$l\e(B" . "\e$,15f6-5W\e(B")
-  ("\e$(5$m\e(B" . "\e$,15f6-5X\e(B")
-  ("\e$(5$n\e(B" . "\e$,15f6-5f\e(B")
-  ("\e$(5$o\e(B" . "\e$,15f6-5g\e(B")
+  ;;2460 \e$(6$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o\e(B
+  ("\e$(6$`\e(B" . "\e$,15b6-5o\e(B")
+  ("\e$(6$a\e(B" . "\e$,15d6-5d\e(B")
+  ("\e$(6$b\e(B" . "\e$,15d6-5h\e(B")
+  ("\e$(6$c\e(B" . "\e$,15f6-5f6-5o\e(B")
+  ("\e$(6$d\e(B" . "\e$,15f6-5g6-5o\e(B")
+  ("\e$(6$e\e(B" . "\e$,15f6-5m6-5o\e(B")
+  ("\e$(6$f\e(B" . "\e$,15f6-5p6-5o\e(B")
+  ("\e$(6$g\e(B" . "\e$,15f6-5u6-5o\e(B")
+  ("\e$(6$h\e(B" . "\e$,15f6-5W6-5p\e(B")
+  ("\e$(6$i\e(B" . "\e$,15f6-5X6-5p\e(B")
+  ("\e$(6$j\e(B" . "\e$,15f6-5f6-5u\e(B")
+  ("\e$(6$k\e(B" . "\e$,15f6-5g6-5u\e(B")
+  ("\e$(6$l\e(B" . "\e$,15f6-5W\e(B")
+  ("\e$(6$m\e(B" . "\e$,15f6-5X\e(B")
+  ("\e$(6$n\e(B" . "\e$,15f6-5f\e(B")
+  ("\e$(6$o\e(B" . "\e$,15f6-5g\e(B")
   ;;      0 1 2 3 4 5 6 7 8 9 a b c d e f
-  ;;2470 \e$(5$p$q$r$s$t$u$v$w$x$y$z${$|$}$~\e(B
-  ("\e$(5$p\e(B" . "\e$,15f6-5h\e(B")
-  ("\e$(5$q\e(B" . "\e$,15f6-5l\e(B")
-  ("\e$(5$r\e(B" . "\e$,15f6-5m\e(B")
-  ("\e$(5$s\e(B" . "\e$,15f6-5n\e(B")
-  ("\e$(5$t\e(B" . "\e$,15f6-5o\e(B")
-  ("\e$(5$u\e(B" . "\e$,15f6-5u\e(B")
-  ("\e$(5$v\e(B" . "\e$,15g6-5h\e(B")
-  ("\e$(5$w\e(B" . "\e$,15h6-5h\e(B")
-  ("\e$(5$x\e(B" . "\e$,15j6-5d\e(B")
-  ("\e$(5$y\e(B" . "\e$,15j6-5h\e(B")
-  ("\e$(5$z\e(B" . "\e$,15j6-5r\e(B")
-  ("\e$(5${\e(B" . "\e$,15l6-5h\e(B")
-  ("\e$(5$|\e(B" . "\e$,15l6-5l\e(B")
-  ("\e$(5$}\e(B" . "\e$,15l6-5u\e(B")
-  ("\e$(5$~\e(B" . "\e$,15m6-5h\e(B")))
+  ;;2470 \e$(6$p$q$r$s$t$u$v$w$x$y$z${$|$}$~\e(B
+  ("\e$(6$p\e(B" . "\e$,15f6-5h\e(B")
+  ("\e$(6$q\e(B" . "\e$,15f6-5l\e(B")
+  ("\e$(6$r\e(B" . "\e$,15f6-5m\e(B")
+  ("\e$(6$s\e(B" . "\e$,15f6-5n\e(B")
+  ("\e$(6$t\e(B" . "\e$,15f6-5o\e(B")
+  ("\e$(6$u\e(B" . "\e$,15f6-5u\e(B")
+  ("\e$(6$v\e(B" . "\e$,15g6-5h\e(B")
+  ("\e$(6$w\e(B" . "\e$,15h6-5h\e(B")
+  ("\e$(6$x\e(B" . "\e$,15j6-5d\e(B")
+  ("\e$(6$y\e(B" . "\e$,15j6-5h\e(B")
+  ("\e$(6$z\e(B" . "\e$,15j6-5r\e(B")
+  ("\e$(6${\e(B" . "\e$,15l6-5h\e(B")
+  ("\e$(6$|\e(B" . "\e$,15l6-5l\e(B")
+  ("\e$(6$}\e(B" . "\e$,15l6-5u\e(B")
+  ("\e$(6$~\e(B" . "\e$,15m6-5h\e(B")))
 
 (defconst indian-2-column-to-ucs-regexp
-  "\e$(5!j!j\e(B\\|\e$(5"8"q\e(B\\|[\e$(5#&#'!*#*\e(B]\e$(5"p\e(B\\|[\e$(5!!\e(B-\e$(5$~\e(B]")
+  "\e$(6!j!j\e(B\\|\e$(6"8"q\e(B\\|[\e$(6#&#'!*#*\e(B]\e$(6"p\e(B\\|[\e$(6!!\e(B-\e$(6$~\e(B]")
 
 (put 'indian-2-column-to-ucs-chartable 'char-table-extra-slots 1)
 (defconst indian-2-column-to-ucs-chartable
   (let ((table (make-char-table 'indian-2-column-to-ucs-chartable))
-        (alist nil))
+       (alist nil))
     (dolist (elt indian-2-colum-to-ucs)
       (if (= (length (car elt)) 1)
-          (aset table (aref (car elt) 0) (cdr elt))
-        (setq alist (cons elt alist))))
+         (aset table (aref (car elt) 0) (cdr elt))
+       (setq alist (cons elt alist))))
     (set-char-table-extra-slot table 0 alist)
     table))
 
+;;;###autoload
 (defun indian-2-column-to-ucs-region (from to)
   "Convert old Emacs Devanagari characters to UCS."
   (interactive "r")
   (save-excursion
     (save-restriction
       (let ((pos from)
-            (alist (char-table-extra-slot indian-2-column-to-ucs-chartable 0)))
-        (narrow-to-region from to)
-        (decompose-region from to)
-        (goto-char (point-min))
-        (while (re-search-forward indian-2-column-to-ucs-regexp nil t)
-          (let ((len (- (match-end 0) (match-beginning 0)))
-                subst)
-            (if (= len 1)
-                (setq subst (aref indian-2-column-to-ucs-chartable
+           (alist (char-table-extra-slot indian-2-column-to-ucs-chartable 0)))
+       (narrow-to-region from to)
+       (decompose-region from to)
+       (goto-char (point-min))
+       (while (re-search-forward indian-2-column-to-ucs-regexp nil t)
+         (let ((len (- (match-end 0) (match-beginning 0)))
+               subst)
+           (if (= len 1)
+               (setq subst (aref indian-2-column-to-ucs-chartable
                                  (char-after (match-beginning 0))))
-              (setq subst (cdr (assoc (match-string 0) alist))))
-            (replace-match (if subst subst "?"))))
-        (indian-compose-region (point-min) (point-max))))))
-
-;;;###autoload
-(defun indian-glyph-char (index &optional script)
-  "Return character of charset `indian-glyph' made from glyph index INDEX.
-The variable `indian-default-script' specifies the script of the glyph.
-Optional argument SCRIPT, if non-nil, overrides `indian-default-script'.
-See also the function `indian-char-glyph'."
-  (or script
-      (setq script indian-default-script))
-  (let ((offset (get script 'indian-glyph-code-offset)))
-    (or (integerp offset)
-       (error "Invalid script name: %s" script))
-    (or (and (>= index 0) (< index 256))
-       (error "Invalid glyph index: %d" index))
-    (setq index (+ offset index))
-    (make-char 'indian-glyph (+ (/ index 96) 32) (+ (% index 96) 32))))
-
-(defvar indian-glyph-max-char
-  (indian-glyph-char
-   255 (aref indian-script-table (1- (length indian-script-table))))
-  "The maximum valid code of characters in the charset `indian-glyph'.")
-
-;;;###autoload
-(defun indian-char-glyph (char)
-  "Return information about the glyph code for CHAR of `indian-glyph' charset.
-The value is (INDEX . SCRIPT), where INDEX is the glyph index
-in the font that Indian script name SCRIPT specifies.
-See also the function `indian-glyph-char'."
-  (let ((split (split-char char))
-       code)
-    (or (eq (car split) 'indian-glyph)
-       (error "Charset of `%c' is not indian-glyph" char))
-    (or (<= char indian-glyph-max-char)
-       (error "Invalid indian-glyph char: %d" char))
-    (setq code (+ (* (- (nth 1 split) 32) 96) (nth 2 split) -32))
-    (cons (% code 256) (aref indian-script-table (/ code 256)))))
+             (setq subst (cdr (assoc (match-string 0) alist))))
+           (replace-match (if subst subst "?"))))
+       (indian-compose-region (point-min) (point-max))))))
 
 (provide 'ind-util)
 
index 89b2ab44dbe3263c1b07777a300518d2bd89af83..6e15474ac9dee34eadc40cce51b60f717dddc62c 100644 (file)
 
 ;;; Code:
 
-(make-coding-system
- 'in-is13194 2 ?D
- "8-bit encoding for ASCII (MSB=0) and IS13194-Devanagari (MSB=1)."
- '(ascii indian-is13194 nil nil
-   nil ascii-eol)
- `((safe-chars . ,(let ((table (make-char-table 'safe-chars nil)))
-                   (set-char-table-range table 'indian-is13194 t)
-                   (dotimes (i 127)
-                     (aset table i t)
-                     (aset table (decode-char 'ucs (+ #x900 i)) t))
-                   table))
-   (post-read-conversion . in-is13194-post-read-conversion)
-   (pre-write-conversion . in-is13194-pre-write-conversion)))
-
-(define-coding-system-alias 'devanagari 'in-is13194)
+(define-coding-system 'in-is13194-devanagari
+  "8-bit encoding for ASCII (MSB=0) and IS13194-Devanagari (MSB=1)."
+  :coding-type 'iso-2022
+  :mnemonic ?D
+  :designation [ascii indian-is13194 nil nil]
+  :charset-list '(ascii indian-is13194)
+  :post-read-conversion 'in-is13194-post-read-conversion
+  :pre-write-conversion 'in-is13194-pre-write-conversion)
+
+(define-coding-system-alias 'devanagari 'in-is13194-devanagari)
 
 (defvar indian-font-foundry 'cdac
   "Font foundry for Indian characters.
@@ -160,18 +155,9 @@ Each Indian language environment sets this value
 to one of `indian-script-table' (which see).
 The default value is `devanagari'.")
 
-(define-ccl-program ccl-encode-indian-glyph-font
-  `(0
-    ;; Shorten (r1 = (((((r1 - 32) * 96) + r2) - 32) % 256))
-    (r1 = ((((r1 * 96) + r2) - ,(+ (* 32 96) 32)) % 256))))
-
-(setq font-ccl-encoder-alist
-      (cons (cons "-CDAC" 'ccl-encode-indian-glyph-font)
-           font-ccl-encoder-alist))
-
-(setq font-ccl-encoder-alist
-      (cons (cons "-AKRUTI" 'ccl-encode-indian-glyph-font)
-           font-ccl-encoder-alist))
+(defvar indian-composable-pattern
+  (make-char-table nil)
+  "Char table of regexps for composable Indian character sequence.")
 
 (provide 'indian)
 
index ae58c5a793ae20c497834a37f261e22497ddda5e..6e3680d614631cad9d6e89178963b8e803e2e05f 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: multilingual, Japanese
 
 
 ;;; Code:
 
-(make-coding-system
- 'iso-2022-jp 2 ?J
- "ISO 2022 based 7bit encoding for Japanese (MIME:ISO-2022-JP)."
- '((ascii japanese-jisx0208-1978 japanese-jisx0208
-         latin-jisx0201 japanese-jisx0212) nil nil nil
-   short ascii-eol ascii-cntl seven)
- '((safe-charsets ascii japanese-jisx0208-1978 japanese-jisx0208
-                 latin-jisx0201 japanese-jisx0212)
-   (mime-charset . iso-2022-jp)))
+;;; Load translation tables for CP932.
+(load "international/cp51932")
+(load "international/eucjp-ms")
+
+(define-coding-system 'iso-2022-jp
+  "ISO 2022 based 7bit encoding for Japanese (MIME:ISO-2022-JP)."
+  :coding-type 'iso-2022
+  :mnemonic ?J
+  :designation [(ascii japanese-jisx0208-1978 japanese-jisx0208
+                      latin-jisx0201)
+               nil nil nil]
+  :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation)
+  :charset-list '(ascii japanese-jisx0208
+                       japanese-jisx0208-1978 latin-jisx0201)
+  :mime-charset 'iso-2022-jp
+  :suitable-for-keyboard t)
 
 (define-coding-system-alias 'junet 'iso-2022-jp)
 
-(make-coding-system
- 'iso-2022-jp-2 2 ?J
- "ISO 2022 based 7bit encoding for CJK, Latin-1, and Greek (MIME:ISO-2022-JP-2)."
- '((ascii japanese-jisx0208-1978 japanese-jisx0208
-         latin-jisx0201 japanese-jisx0212
-         chinese-gb2312 korean-ksc5601) nil
-         (nil latin-iso8859-1 greek-iso8859-7) nil
- short ascii-eol ascii-cntl seven nil single-shift nil nil nil init-bol)
- '((safe-charsets ascii japanese-jisx0208-1978 japanese-jisx0208
-                 latin-jisx0201 japanese-jisx0212
-                 chinese-gb2312 korean-ksc5601
-                 latin-iso8859-1 greek-iso8859-7)
-   (mime-charset . iso-2022-jp-2)))
-
-(make-coding-system
- 'japanese-shift-jis 1 ?S
- "Shift-JIS 8-bit encoding for Japanese (MIME:SHIFT_JIS)."
- nil
- '((safe-charsets ascii japanese-jisx0208 japanese-jisx0208-1978
-                 latin-jisx0201 katakana-jisx0201)
-   (mime-charset . shift_jis)
-   (charset-origin-alist (japanese-jisx0208 "SJIS" encode-sjis-char)
-                        (katakana-jisx0201 "SJIS" encode-sjis-char))))
+(define-coding-system 'iso-2022-jp-2
+  "ISO 2022 based 7bit encoding for CJK, Latin-1, Greek (MIME:ISO-2022-JP-2)."
+  :coding-type 'iso-2022
+  :mnemonic ?J
+  :designation [(ascii japanese-jisx0208-1978 japanese-jisx0208
+                      latin-jisx0201 japanese-jisx0212
+                      chinese-gb2312 korean-ksc5601)
+               nil
+               (nil latin-iso8859-1 greek-iso8859-7)
+               nil]
+  :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation single-shift
+                init-at-bol)
+  :charset-list '(ascii japanese-jisx0208 japanese-jisx0212
+                       latin-jisx0201 japanese-jisx0208-1978
+                       chinese-gb2312 korean-ksc5601
+                       latin-iso8859-1 greek-iso8859-7)
+  :mime-charset 'iso-2022-jp-2
+  :suitable-for-keyboard t)
+
+(let ((map                     ; JIS           vs      CP932
+       '((#x301C . #xFF5E)     ; WAVE DASH             FULLWIDTH TILDE
+        (#x2014 . #x2015)      ; EM DASH               HORIZONTAL BAR
+        (#x2016 . #x2225)      ; DOUBLE VERTICAL LINE  PARALLEL TO
+        (#x2212 . #xFF0D)      ; MINUS SIGN            FULLWIDTH HYPHEN-MINUS
+        (#x00A2 . #xFFE0)      ; CENT SIGN             FULLWIDTH CENT SIGN
+        (#x00A3 . #xFFE1)      ; POUND SIGN            FULLWIDTH POUND SIGN
+        (#x00AC . #xFFE2)      ; NOT SIGN              FULLWIDTH NOT SIGN
+        (#x00A6 . #xFFE4)      ; BROKEN LINE           FULLWIDTH BROKEN LINE
+        )))
+  (define-translation-table 'japanese-ucs-jis-to-cp932-map map)
+  (mapc #'(lambda (x) (let ((tmp (car x)))
+                       (setcar x (cdr x)) (setcdr x tmp)))
+       map)
+  (define-translation-table 'japanese-ucs-cp932-to-jis-map map))
+
+;; U+2014 (EM DASH) vs U+2015 (HORIZONTAL BAR)
+(define-translation-table 'japanese-ucs-glibc-to-jis-map '((#x2015 . #x2014)))
+(define-translation-table 'japanese-ucs-jis-to-glibc-map '((#x2014 . #x2015)))
+
+(define-coding-system 'japanese-shift-jis
+  "Shift-JIS 8-bit encoding for Japanese (MIME:SHIFT_JIS)"
+  :coding-type 'shift-jis
+  :mnemonic ?S
+  :charset-list '(ascii katakana-jisx0201 japanese-jisx0208)
+  :mime-charset 'shift_jis)
 
 (define-coding-system-alias 'shift_jis 'japanese-shift-jis)
 (define-coding-system-alias 'sjis 'japanese-shift-jis)
 (define-coding-system-alias 'cp932 'japanese-shift-jis)
 
-(make-coding-system
- 'japanese-iso-7bit-1978-irv 2 ?j
- "ISO 2022 based 7-bit encoding for Japanese JISX0208-1978 and JISX0201-Roman."
- '((ascii japanese-jisx0208-1978 japanese-jisx0208
-         latin-jisx0201 japanese-jisx0212 katakana-jisx0201 t) nil nil nil
-   short ascii-eol ascii-cntl seven nil nil use-roman use-oldjis)
- '(ascii japanese-jisx0208-1978 japanese-jisx0208 latin-jisx0201))
+(define-coding-system 'japanese-cp932
+  "CP932 (Microsoft shift-jis)"
+  :coding-type 'charset
+  :mnemonic ?S
+  :charset-list '(ascii katakana-sjis cp932-2-byte))
+
+(define-coding-system-alias 'cp932 'japanese-cp932)
+
+(define-coding-system 'japanese-iso-7bit-1978-irv
+  "ISO 2022 based 7-bit encoding for Japanese JISX0208-1978 and JISX0201-Roman."
+  :coding-type 'iso-2022
+  :mnemonic ?j
+  :designation [(latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208
+                               japanese-jisx0212 katakana-jisx0201)
+               nil nil nil]
+  :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation
+                use-roman use-oldjis)
+  :charset-list '(ascii latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208
+                       japanese-jisx0212))
 
 (define-coding-system-alias 'iso-2022-jp-1978-irv 'japanese-iso-7bit-1978-irv)
 (define-coding-system-alias 'old-jis 'japanese-iso-7bit-1978-irv)
 
-(make-coding-system
- 'japanese-iso-8bit 2 ?E
- "ISO 2022 based EUC encoding for Japanese (MIME:EUC-JP)."
- '(ascii japanese-jisx0208 katakana-jisx0201 japanese-jisx0212
-   short ascii-eol ascii-cntl nil nil single-shift)
- '((safe-charsets ascii latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978
-                katakana-jisx0201 japanese-jisx0212)
-   (mime-charset . euc-jp)))
+(define-coding-system 'japanese-iso-8bit
+  "ISO 2022 based EUC encoding for Japanese (MIME:EUC-JP)."
+  :coding-type 'iso-2022
+  :mnemonic ?E
+  :designation [ascii japanese-jisx0208 katakana-jisx0201 japanese-jisx0212]
+  :flags '(short ascii-at-eol ascii-at-cntl single-shift)
+  :charset-list '(ascii latin-jisx0201 japanese-jisx0208
+                       katakana-jisx0201 japanese-jisx0212
+                       japanese-jisx0208-1978)
+  :mime-charset 'euc-jp)
 
 (define-coding-system-alias 'euc-japan-1990 'japanese-iso-8bit)
 (define-coding-system-alias 'euc-japan 'japanese-iso-8bit)
 (define-coding-system-alias 'euc-jp 'japanese-iso-8bit)
 
+(define-coding-system 'eucjp-ms
+  "eucJP-ms (like EUC-JP but with CP932 extension).
+eucJP-ms is defined in <http://www.opengroup.or.jp/jvc/cde/appendix.html>."
+  :coding-type 'iso-2022
+  :mnemonic ?E
+  :designation [ascii japanese-jisx0208 katakana-jisx0201 japanese-jisx0212]
+  :flags '(short ascii-at-eol ascii-at-cntl single-shift)
+  :charset-list '(ascii latin-jisx0201 japanese-jisx0208
+                       katakana-jisx0201 japanese-jisx0212)
+  :decode-translation-table 'eucjp-ms-decode
+  :encode-translation-table 'eucjp-ms-encode)
+
+(define-coding-system 'iso-2022-jp-2004
+  "ISO 2022 based 7bit encoding for JIS X 0213:2004 (MIME:ISO-2022-JP-2004)."
+  :coding-type 'iso-2022
+  :mnemonic ?J
+  :designation [(ascii japanese-jisx0208 japanese-jisx0213.2004-1
+                      japanese-jisx0213-1 japanese-jisx0213-2)
+               nil nil nil]
+  :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation)
+                ;; init-at-bol)
+  :charset-list '(ascii japanese-jisx0208 japanese-jisx0213.2004-1
+                       japanese-jisx0213-1 japanese-jisx0213-2)
+  :mime-charset 'iso-2022-jp-2004
+  :suitable-for-keyboard t)
+
+(define-coding-system-alias 'iso-2022-jp-3 'iso-2022-jp-2004)
+
+(define-coding-system 'euc-jis-2004
+  "ISO 2022 based EUC encoding for JIS X 0213 (MIME:EUC-JIS-2004)."
+  :coding-type 'iso-2022
+  :mnemonic ?E
+  :designation [ascii japanese-jisx0213.2004-1 katakana-jisx0201
+                      japanese-jisx0213-2]
+  :flags '(short ascii-at-eol ascii-at-cntl single-shift)
+  :charset-list '(ascii latin-jisx0201 japanese-jisx0213.2004-1
+                        japanese-jisx0213-1 katakana-jisx0201
+                        japanese-jisx0213-2)
+  :mime-charset 'euc-jis-2004)
+
+(define-coding-system-alias 'euc-jisx0213 'euc-jis-2004)
+
+(define-coding-system 'japanese-shift-jis-2004
+  "Shift_JIS 8-bit encodinf for Japanese (MIME:SHIFT_JIS-2004)"
+  :coding-type 'shift-jis
+  :mnemonic ?S
+  :charset-list '(ascii katakana-jisx0201 
+                        japanese-jisx0213.2004-1 japanese-jisx0213-2))
+
+(define-coding-system-alias 'shift_jis-2004 'japanese-shift-jis-2004)
+
 (set-language-info-alist
  "Japanese" '((setup-function . setup-japanese-environment-internal)
              (tutorial . "TUTORIAL.ja")
-             (charset japanese-jisx0208 japanese-jisx0208-1978
+             (charset japanese-jisx0208
                       japanese-jisx0212 latin-jisx0201 katakana-jisx0201
-                      japanese-jisx0213-1 japanese-jisx0213-2)
+                      japanese-jisx0213.2004-1 japanese-jisx0213-1 
+                      japanese-jisx0213-2 japanese-jisx0208-1978)
              (coding-system iso-2022-jp japanese-iso-8bit
-                            japanese-shift-jis japanese-iso-7bit-1978-irv)
+                            japanese-shift-jis japanese-iso-7bit-1978-irv
+                             iso-2022-jp-2004 japanese-shift-jis-2004
+                             euc-jis-2004)
              (coding-priority iso-2022-jp japanese-iso-8bit
-                              japanese-shift-jis iso-2022-jp-2)
+                              japanese-shift-jis 
+                               iso-2022-jp-2004 euc-jis-2004 
+                               japanese-shift-jis-2004
+                               iso-2022-jp-2)
              (input-method . "japanese")
              (features japan-util)
              (sample-text . "Japanese (\e$BF|K\8l\e(B)   \e$B$3$s$K$A$O\e(B, \e(I:]FAJ\e(B")
              (documentation . t)))
 
+(let ((map
+       ;; JISX0213-1 vs Unicode
+       '((#x2477 . [#x304B #x309A])
+        (#x2478 . [#x304D #x309A])
+        (#x2479 . [#x304F #x309A])
+        (#x247a . [#x3051 #x309A])
+        (#x247b . [#x3053 #x309A])
+        (#x2577 . [#x30AB #x309A])
+        (#x2578 . [#x30AD #x309A])
+        (#x2579 . [#x30AF #x309A])
+        (#x257a . [#x30B1 #x309A])
+        (#x257b . [#x30B3 #x309A])
+        (#x257c . [#x30BB #x309A])
+        (#x257d . [#x30C4 #x309A])
+        (#x257e . [#x30C8 #x309A])
+        (#x2678 . [#x31F7 #x309A])
+        (#x2b44 . [#x00E6 #x0300])
+        (#x2b48 . [#x0254 #x0300])
+        (#x2b49 . [#x0254 #x0301])
+        (#x2b4a . [#x028C #x0300])
+        (#x2b4b . [#x028C #x0301])
+        (#x2b4c . [#x0259 #x0300])
+        (#x2b4d . [#x0259 #x0301])
+        (#x2b4e . [#x025A #x0300])
+        (#x2b4f . [#x025A #x0301])
+        (#x2b65 . [#x02E9 #x02E5])
+        (#x2b66 . [#x02E5 #x02E9])))
+      table)
+  (dolist (elt map)
+    (setcar elt (decode-char 'japanese-jisx0213-1 (car elt))))
+  (setq table (make-translation-table-from-alist map))
+  (define-translation-table 'jisx0213-to-unicode table)
+  (define-translation-table 'unicode-to-jisx0213
+    (char-table-extra-slot table 0)))
+
 (provide 'japanese)
 
 ;;; arch-tag: 450f5537-9d53-4d5e-b731-4cf116d8cbc9
index f720a9c736743d6d214f149a499ea30ebac75dd1..b39bfd5ab30d9c898d6c63f7c270f0470b79eb0d 100644 (file)
                (features knd-util)
                (sample-text
                 . (kannada-compose-string
-                   (copy-sequence "Kannada (\e4\e$,43Ov#4z\e0\e$,1>u\e1\e4\e$,44Kv#4zv#4M\e0\e$,1?(?M?(\e1\e4\e$,43sv#4z\e0\e$,1?!\e1\e(B)     \e4\e$,44Kv#4z\e0\e$,1?(\e1\e4\e$,44hv#4zv#4\7f\e0\e$,1?.\e1\e4\e$,44qv#4{v#3Q\e0\e$,1?8?M>u?>\e1\e4\e$,44av#4z\e0\e$,1?0\e1\e(B")))
+                   (copy-sequence "Kannada (\e$,1>u?(?M?(?!\e(B) \e$,1?(?.?8?M>u?>?0\e(B")))
                (documentation . "\
 Kannada language and script is supported in this language
 environment.")) 
  '("Indian"))
 
+;; For automatic composition.
+(set-char-table-range composition-function-table '(#x0c80 . #x0cff)
+                     '(("[\x0c80-\x0CFF]+" . font-shape-text)))
+
 (provide 'kannada)
 
 ;;; arch-tag: 880ba90b-f6f5-4131-bc1d-930705b78416
index abb887347e7179fad6291bf081191ec8d5b34097..5c54cbebf37cf92b5b70f58a0d6e2a33cfb338a4 100644 (file)
        dummy)
       (function (lambda (x y) (> (length x) (length y))))))))
 
-(defun kannada-composition-function (from to pattern &optional string)
-  "Compose Kannada characters in REGION, or STRING if specified.
-Assume that the REGION or STRING must fully match the composable
-PATTERN regexp."
-  (if string (kannada-compose-syllable-string string)
-    (kannada-compose-syllable-region from to))
-  (- to from))
-
-;; Register a function to compose Kannada characters.
-(mapc
- (function (lambda (ucs)
-   (aset composition-function-table (decode-char 'ucs ucs)
-        (list (cons kannada-composable-pattern
-                     'kannada-composition-function)))))
- (kannada-range #x0c80 #x0cff))
+;;;###autoload
+(defun kannada-composition-function (pos &optional string)
+  "Compose Kannada characters after the position POS.
+If STRING is not nil, it is a string, and POS is an index to the string.
+In this case, compose characters after POS of the string."
+  (if string
+      ;; Not yet implemented.
+      nil
+    (goto-char pos)
+    (if (looking-at kannada-composable-pattern)
+       (prog1 (match-end 0)
+         (kannada-compose-syllable-region pos (match-end 0))))))
 
 ;; Notes on conversion steps.
 
@@ -298,8 +295,8 @@ Default value contains only the basic rules.")
 
 (defun knd-charseq (from &optional to)
   (if (null to) (setq to from))
-  (mapcar (function (lambda (x) (indian-glyph-char x 'kannada)))
-          (kannada-range from to)))
+  (number-sequence (decode-char 'kannada-cdac from)
+                  (decode-char 'kannada-cdac to)))
 
 (defvar knd-glyph-cv
   (append
index e7f3ae68568a4e1424b7503b154051c77caede7d..b59fb27f177706c7cc5b514d97bba1d107a4335d 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: multilingual, Korean
 
 
 ;;; Code:
 
-(make-coding-system
- 'korean-iso-8bit 2 ?K
- "ISO 2022 based EUC encoding for Korean KSC5601 (MIME:EUC-KR)."
- '(ascii korean-ksc5601 nil nil
-   nil ascii-eol ascii-cntl)
'((safe-charsets ascii korean-ksc5601)
-   (mime-charset . euc-kr)))
+(define-coding-system 'korean-iso-8bit
+  "ISO 2022 based EUC encoding for Korean KSC5601 (MIME:EUC-KR)."
+  :coding-type 'iso-2022
+  :mnemonic ?K
+  :designation [ascii korean-ksc5601 nil nil]
 :charset-list '(ascii korean-ksc5601)
+  :mime-charset 'euc-kr)
 
 (define-coding-system-alias 'euc-kr 'korean-iso-8bit)
 (define-coding-system-alias 'euc-korea 'korean-iso-8bit)
 (define-coding-system-alias 'cp949 'korean-iso-8bit)
 
-(make-coding-system
- 'iso-2022-kr 2 ?k
- "ISO 2022 based 7-bit encoding for Korean KSC5601 (MIME:ISO-2022-KR)."
- '(ascii (nil korean-ksc5601) nil nil
-        nil ascii-eol ascii-cntl seven locking-shift nil nil nil nil nil
-        designation-bol)
- '((safe-charsets ascii korean-ksc5601)
-   (mime-charset . iso-2022-kr)))
+(define-coding-system 'iso-2022-kr
+  "ISO 2022 based 7-bit encoding for Korean KSC5601 (MIME:ISO-2022-KR)."
+  :coding-type 'iso-2022
+  :mnemonic ?k
+  :designation [ascii (nil korean-ksc5601) nil nil]
+  :flags '(ascii-at-eol ascii-at-cntl 7-bit designation locking-shift
+                       designation-bol)
+  :charset-list '(ascii korean-ksc5601)
+  :mime-charset 'iso-2022-kr
+  :suitable-for-keyboard t)
 
 (define-coding-system-alias 'korean-iso-7bit-lock 'iso-2022-kr)
 
index 4df49a9ac23eee56f4768fc192e29cc0c941fa74..6d3b985c0d323b8b98e4daa3c39b2e2102d699cd 100644 (file)
@@ -5,8 +5,11 @@
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
-;; Keywords: multilingual, Lao
+;; Keywords: multilingual, Lao, i18n
 
 ;; This file is part of GNU Emacs.
 
           (?\e(1{\e(B invalid nil)
           (?\e(1|\e(B consonant "LETTER NHOR NHUU" "MOUSE")
           (?\e(1}\e(B consonant "LETTER MHOR MHAR" "DOG")
-          (?\e(1~\e(B invalid nil)
-          ;; Unicode equivalents
-          (?\e$,1D!\e(B consonant "LETTER KOR  KAI'" "CHICKEN")
-          (?\e$,1D"\e(B consonant "LETTER KHOR KHAI'" "EGG")
-          (?\e$,1D$\e(B consonant "LETTER QHOR QHWARGN" "BUFFALO")
-          (?\e$,1D'\e(B consonant "LETTER NGOR NGUU" "SNAKE")
-          (?\e$,1D(\e(B consonant "LETTER JOR JUA" "BUDDHIST NOVICE")
-          (?\e$,1D*\e(B consonant "LETTER XOR X\"ARNG" "ELEPHANT")
-          (?\e$,1D-\e(B consonant "LETTER YOR YUNG" "MOSQUITO")
-          (?\e$,1D4\e(B consonant "LETTER DOR DANG" "NOSE")
-          (?\e$,1D5\e(B consonant "LETTER TOR TAR" "EYE")
-          (?\e$,1D6\e(B consonant "LETTER THOR THUNG" "TO ASK,QUESTION")
-          (?\e$,1D7\e(B consonant "LETTER DHOR DHARM" "FLAG")
-          (?\e$,1D9\e(B consonant "LETTER NOR NOK" "BIRD")
-          (?\e$,1D:\e(B consonant "LETTER BOR BED" "FISHHOOK")
-          (?\e$,1D;\e(B consonant "LETTER POR PAR" "FISH")
-          (?\e$,1D<\e(B consonant "LETTER HPOR HPER\"" "BEE")
-          (?\e$,1D=\e(B consonant "LETTER FHOR FHAR" "WALL")
-          (?\e$,1D>\e(B consonant "LETTER PHOR PHUU" "MOUNTAIN")
-          (?\e$,1D?\e(B consonant "LETTER FOR FAI" "FIRE")
-          (?\e$,1DA\e(B consonant "LETTER MOR MAR\"" "HORSE")
-          (?\e$,1DB\e(B consonant "LETTER GNOR GNAR" "MEDICINE")
-          (?\e$,1DC\e(B consonant "LETTER ROR ROD" "CAR")
-          (?\e$,1DE\e(B consonant "LETTER LOR LIING" "MONKEY")
-          (?\e$,1DG\e(B consonant "LETTER WOR WII" "HAND FAN")
-          (?\e$,1DJ\e(B consonant "LETTER SOR SEA" "TIGER")
-          (?\e$,1DK\e(B consonant "LETTER HHOR HHAI" "JAR")
-          (?\e$,1DM\e(B consonant "LETTER OR OOW" "TAKE")
-          (?\e$,1DN\e(B consonant "LETTER HOR HEA" "BOAT")
-          (?\e$,1DO\e(B special "ELLIPSIS")
-          (?\e$,1DP\e(B vowel-base "VOWEL SIGN SARA A")
-          (?\e$,1DQ\e(B vowel-upper "VOWEL SIGN MAI KAN")
-          (?\e$,1DR\e(B vowel-base "VOWEL SIGN SARA AR")
-          (?\e$,1DS\e(B vowel-base "VOWEL SIGN SARA AM")
-          (?\e$,1DT\e(B vowel-upper "VOWEL SIGN SARA I")
-          (?\e$,1DU\e(B vowel-upper "VOWEL SIGN SARA II")
-          (?\e$,1DV\e(B vowel-upper "VOWEL SIGN SARA EU")
-          (?\e$,1DW\e(B vowel-upper "VOWEL SIGN SARA UR")
-          (?\e$,1DX\e(B vowel-lower "VOWEL SIGN SARA U")
-          (?\e$,1DY\e(B vowel-lower "VOWEL SIGN SARA UU")
-          (?\e$,1D[\e(B vowel-upper "VOWEL SIGN MAI KONG")
-          (?\e$,1D\\e(B semivowel-lower "SEMIVOWEL SIGN LO")
-          (?\e$,1D]\e(B vowel-base "SEMIVOWEL SIGN SARA IA")
-          (?\e$,1D`\e(B vowel-base "VOWEL SIGN SARA EE")
-          (?\e$,1Da\e(B vowel-base "VOWEL SIGN SARA AA")
-          (?\e$,1Db\e(B vowel-base "VOWEL SIGN SARA OO")
-          (?\e$,1Dc\e(B vowel-base "VOWEL SIGN SARA EI MAI MUAN\"")
-          (?\e$,1Dd\e(B vowel-base "VOWEL SIGN SARA AI MAI MAY")
-          (?\e$,1Df\e(B special "KO LA (REPETITION)")
-          (?\e$,1Dh\e(B tone "TONE MAI EK")
-          (?\e$,1Di\e(B tone "TONE MAI THO")
-          (?\e$,1Dj\e(B tone "TONE MAI TI")
-          (?\e$,1Dk\e(B tone "TONE MAI JADTAWAR")
-          (?\e$,1Dl\e(B tone "CANCELLATION MARK")
-          (?\e$,1Dm\e(B vowel-upper "VOWEL SIGN SARA OR")
-          (?\e$,1Dp\e(B special "DIGIT ZERO")
-          (?\e$,1Dq\e(B special "DIGIT ONE")
-          (?\e$,1Dr\e(B special "DIGIT TWO")
-          (?\e$,1Ds\e(B special "DIGIT THREE")
-          (?\e$,1Dt\e(B special "DIGIT FOUR")
-          (?\e$,1Du\e(B special "DIGIT FIVE")
-          (?\e$,1Dv\e(B special "DIGIT SIX")
-          (?\e$,1Dw\e(B special "DIGIT SEVEN")
-          (?\e$,1Dx\e(B special "DIGIT EIGHT")
-          (?\e$,1Dy\e(B special "DIGIT NINE")
-          (?\e$,1D|\e(B consonant "LETTER NHOR NHUU" "MOUSE")
-          (?\e$,1D}\e(B consonant "LETTER MHOR MHAR" "DOG")))
+          (?\e(1~\e(B invalid nil)))
       elm)
   (while l
     (setq elm (car l) l (cdr l))
 ;; CV -> C, CT -> C, CVT -> C, Cv -> C, CvT -> C
 ;;                                   v         v
 ;;                             T
-;;        V         T          V                   T
-;; CsV -> C, CsT -> C, CsVT -> C, Csv -> C, CvT -> C
-;;        s         s          s         s         s
-;;                                       v         v
+;;        V         T          V                    T
+;; CsV -> C, CsT -> C, CsVT -> C, Csv -> C, CsvT -> C
+;;        s         s          s         s          s
+;;                                       v          v
 
 
 ;; where C: consonant, V: vowel upper, v: vowel lower,
     ("\e(1d\e(B" (?\e(1d\e(B 0))
     ("\e(1c\e(B" (?\e(1c\e(B 0))
     ("\e(1`[R\e(B" (?\e(1`\e(B 0 ?\e(1[\e(B ?\e(1R\e(B))
-    ("\e(1S\e(B" (0 ?\e(1S\e(B))
-
-    ;; Unicode equivalents
-    ("\e$,1DP\e(B" (0 ?\e$,1DP\e(B) (0 ?\e$,1DQ\e(B))
-    ("\e$,1DR\e(B" (0 ?\e$,1DR\e(B))
-    ("\e$,1DT\e(B" (0 ?\e$,1DU\e(B))
-    ("\e$,1DU\e(B" (0 ?\e$,1DU\e(B))
-    ("\e$,1DV\e(B" (0 ?\e$,1DV\e(B))
-    ("\e$,1DW\e(B" (0 ?\e$,1DW\e(B))
-    ("\e$,1DX\e(B" (0 ?\e$,1DX\e(B))
-    ("\e$,1DY\e(B" (0 ?\e$,1DY\e(B))
-    ("\e$,1D`DP\e(B" (?\e$,1D`\e(B 0 ?\e$,1DP\e(B) (?\e$,1D`\e(B 0 ?\e$,1DQ\e(B))
-    ("\e$,1D`\e(B" (?\e$,1D`\e(B 0))
-    ("\e$,1DaDP\e(B" (?\e$,1Da\e(B 0 ?\e$,1DP\e(B) (?\e$,1Da\e(B 0 ?\e$,1DQ\e(B))
-    ("\e$,1Da\e(B" (?\e$,1Da\e(B 0))
-    ("\e$,1DbDP\e(B" (?\e$,1Db\e(B 0 ?\e$,1DP\e(B) (0 ?\e$,1D[\e(B) (?\e$,1D-\e(B ?\e$,1Db\e(B 0 ?\e$,1DQ\e(B) (?\e$,1DG\e(B ?\e$,1Db\e(B 0 ?\e$,1DQ\e(B))
-    ("\e$,1Db\e(B" (?\e$,1Db\e(B 0))
-    ("\e$,1D`DRDP\e(B" (?\e$,1D`\e(B 0 ?\e$,1DR\e(B ?\e$,1DP\e(B) (0 ?\e$,1DQ\e(B ?\e$,1DM\e(B))
-    ("\e$,1Dm\e(B" (0 ?\e$,1Dm\e(B) (0 ?\e$,1DM\e(B))
-    ("\e$,1D`DT\e(B" (?\e$,1D`\e(B 0 ?\e$,1DT\e(B))
-    ("\e$,1D`DU\e(B" (?\e$,1D`\e(B 0 ?\e$,1DU\e(B))
-    ("\e$,1D[DGDP\e(B" (0 ?\e$,1D[\e(B ?\e$,1DG\e(B ?\e$,1DP\e(B) (0 ?\e$,1DQ\e(B ?\e$,1DG\e(B))
-    ("\e$,1D[DG\e(B" (0 ?\e$,1D[\e(B ?\e$,1DG\e(B) (0 ?\e$,1DG\e(B))
-    ("\e$,1D`DQD]DP\e(B" (?\e$,1D`\e(B 0 ?\e$,1DQ\e(B ?\e$,1D]\e(B ?\e$,1DP\e(B) (0 ?\e$,1DQ\e(B ?\e$,1D]\e(B))
-    ("\e$,1D`DQD]\e(B" (?\e$,1D`\e(B 0 ?\e$,1DQ\e(B ?\e$,1D]\e(B) (0 ?\e$,1D]\e(B))
-    ("\e$,1D`DVDM\e(B" (?\e$,1D`\e(B 0 ?\e$,1DV\e(B ?\e$,1DM\e(B))
-    ("\e$,1D`DWDM\e(B" (?\e$,1D`\e(B 0 ?\e$,1DW\e(B ?\e$,1DM\e(B))
-    ("\e$,1Dd\e(B" (?\e$,1Dd\e(B 0))
-    ("\e$,1Dc\e(B" (?\e$,1Dc\e(B 0))
-    ("\e$,1D`D[DR\e(B" (?\e$,1D`\e(B 0 ?\e$,1D[\e(B ?\e$,1DR\e(B))
-    ("\e$,1DS\e(B" (0 ?\e$,1DS\e(B)))
+    ("\e(1S\e(B" (0 ?\e(1S\e(B)))
   "Alist of Lao vowel string vs the corresponding re-ordering rule.
 Each element has this form:
        (VOWEL NO-MAA-SAKOD-RULE WITH-MAA-SAKOD-RULE (MAA-SAKOD-0 RULE-0) ...)
@@ -585,24 +492,20 @@ syllable.  In that case, FROM and TO are indexes to STR."
       lao-str)))
 
 ;;;###autoload
-(defun lao-post-read-conversion (len)
-  (lao-compose-region (point) (+ (point) len))
-  len)
-
-;;;###autoload
-(defun lao-composition-function (from to pattern &optional string)
-  "Compose Lao text in the region FROM and TO.
-The text matches the regular expression PATTERN.
-Optional 4th argument STRING, if non-nil, is a string containing text
-to compose.
-
-The return value is number of composed characters."
-  (if (< (1+ from) to)
-      (progn
-       (if string
-           (compose-string string from to)
-         (compose-region from to))
-       (- to from))))
+(defun lao-composition-function (pos &optional string)
+  (setq pos (1- pos))
+  (with-category-table lao-category-table
+    (if string
+       (if (and (>= pos 0)
+                (eq (string-match lao-composition-pattern string pos) pos))
+           (prog1 (match-end 0)
+             (compose-string string pos (match-end 0))))
+      (if (>= pos (point-min))
+         (save-excursion
+           (goto-char pos)
+           (if (looking-at lao-composition-pattern)
+               (prog1 (match-end 0)
+                 (compose-region pos (match-end 0)))))))))
 
 ;;;###autoload
 (defun lao-compose-region (from to)
index 22991b3d3dfcb42509382c4210c39fd58ace6a22..546986a472269aaba2bfd2adf87bfbaad2f0c2c5 100644 (file)
@@ -4,6 +4,9 @@
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: multilingual, Lao
 
 
 ;;; Code:
 
-(make-coding-system
- 'lao 2 ?L
- "8-bit encoding for ASCII (MSB=0) and LAO (MSB=1)."
- '(ascii lao nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t)
- '((safe-charsets ascii lao)
-   (post-read-conversion . lao-post-read-conversion)))
+(define-coding-system 'lao
+  "8-bit encoding for ASCII (MSB=0) and LAO (MSB=1)."
+  :coding-type 'charset
+  :mnemonic ?L
+  :charset-list '(lao))
 
 (set-language-info-alist
  "Lao" '((charset lao)
         (coding-system lao)
         (coding-priority lao)
         (input-method . "lao")
-        (nonascii-translation . lao)
         (unibyte-display . lao)
         (features lao-util)
         (documentation . t)))
 
-(aset use-default-ascent ?\e(1;\e(B t)
-(aset use-default-ascent ?\e$,1D;\e(B t)
-(aset use-default-ascent ?\e(1=\e(B t)
-(aset use-default-ascent ?\e$,1D=\e(B t)
-(aset use-default-ascent ?\e(1?\e(B t)
-(aset use-default-ascent ?\e$,1D?\e(B t)
-(aset use-default-ascent ?\e(1B\e(B t)
-(aset use-default-ascent ?\e$,1DB\e(B t)
-(aset ignore-relative-composition ?\e(1\\e(B t)
-(aset ignore-relative-composition ?\e$,1D\\e(B t)
-
-;; Register a function to compose Lao characters.
-(let ((patterns '(("\\c0\\c9?\\(\\(\\c2\\|\\c3\\)\\c4?\\|\\c4\\)?"
-        . lao-composition-function))))
-  (aset composition-function-table (make-char 'lao) patterns)
-  (dotimes (i (1+ (- #xeff #xe80)))
-    (aset composition-function-table (decode-char 'ucs (+ i #xe80)) patterns)))
+;; For automatic composition.
+;; (let ((chars "\e(1QTUVWXY[\hijklm\e(B"))
+;;  (dotimes (i (length chars))
+;;    (aset composition-function-table (aref chars i)
+;;       'lao-composition-function)))
+(set-char-table-range composition-function-table '(#xE80 . #xEDF)
+                     '(("[\xE80-\xEDF]+" . font-shape-text)))
 
 (provide 'lao)
 
index 731a9ae67afcd02c5979da21e8c7f50b05bbf3d0..b5ef969231362b1f068918da46ba3903d12ef233 100644 (file)
 South Indian language Malayalam is supported in this language environment."))
  '("Indian"))
 
+;; For automatic composition.
+(set-char-table-range composition-function-table '(#x0d00 . #x0d7f)
+                     '(("[\x0D00-\x0D7F]+" . font-shape-text)))
+
 (provide 'malayalam)
 
 ;;; arch-tag: 5f500e53-1e4f-4bb2-aa93-ad8736f0349f
index c7328eb83a261280aa942b9cbd94ea8296d3e42c..ab2c0bd2a7c192b1bfb2a0ec54198b83c16c9a1f 100644 (file)
 IPA is International Phonetic Alphabet for English, French, German
 and Italian.")))
 
+;; This is for Arabic.  But, as we still don't have Arabic language
+;; support, we at least define a coding system here.
+
+(define-coding-system 'iso-8859-6
+  "ISO-8859-6 based encoding (MIME:ISO-8859-6)."
+  :coding-type 'charset
+  :mnemonic ?6
+  :charset-list '(iso-8859-6)
+  :mime-charset 'iso-8859-6)
+
 (provide 'misc-lang)
 
 ;;; arch-tag: 6953585c-1a1a-4c09-be82-a2518afb6074
index c52442798376e38be2682cfeffbf9cc687e857bc..fb2965b14d4f773ed0a616439f2890cc67ab78c5 100644 (file)
 
 
 ;;;###autoload
-(defun malayalam-composition-function (from to pattern  &optional string)
-  "Compose Malayalam characters in REGION, or STRING if specified.
-Assume that the REGION or STRING must fully match the composable
-PATTERN regexp."
-  (if string (malayalam-compose-syllable-string string)
-    (malayalam-compose-syllable-region from to))
-  (- to from))
-
-;; Register a function to compose Malayalam characters.
-(mapc
- (function (lambda (ucs)
-   (aset composition-function-table (decode-char 'ucs ucs)
-        (list (cons malayalam-composable-pattern
-                     'malayalam-composition-function)))))
- (nconc '(#x0d02 #x0d03) (malayalam-range #x0d05 #x0d39)))
+(defun malayalam-composition-function (pos  &optional string)
+  "Compose Malayalam characters after the position POS.
+If STRING is not nil, it is a string, and POS is an index to the string.
+In this case, compose characters after POS of the string."
+  (if string
+      (if auto-compose-current-font
+         (if (eq (string-match "[\e$,1@ \e(B-\e$,1A?\e(B]+" pos) pos)
+             (or (font-shape-text 0 (match-end 0) auto-compose-current-font
+                                  string)
+                 pos)))
+    (goto-char pos)
+    (if auto-compose-current-font
+       (if (looking-at  "[\e$,1@ \e(B-\e$,1A?\e(B]+")
+           (or (font-shape-text pos (match-end 0) auto-compose-current-font)
+               pos)
+         (if (looking-at malayalam-composable-pattern)
+             (prog1 (match-end 0)
+               (malayalam-compose-syllable-region pos (match-end 0))))))))
 
 ;; Notes on conversion steps.
 
@@ -380,10 +383,16 @@ PATTERN regexp."
         (narrow-to-region from to)
         (goto-char (point-min))
         ;; char-glyph-conversion
-        (while (re-search-forward mlm-char-glyph-regexp nil t)
-          (setq match-str (match-string 0))
-          (setq glyph-str
-                (concat glyph-str (gethash match-str mlm-char-glyph-hash))))
+        (while (not (eobp))
+         (if (looking-at mlm-char-glyph-regexp)
+             (progn
+               (setq match-str (match-string 0)
+                     glyph-str
+                     (concat glyph-str
+                             (gethash match-str mlm-char-glyph-hash)))
+               (goto-char (match-end 0)))
+           (setq glyph-str (concat glyph-str (string (following-char))))
+           (forward-char 1)))
         (when (string-match mlm-glyph-reorder-key-glyphs glyph-str)
           ;; glyph reordering
           (setq glyph-reorder-regexps mlm-glyph-reordering-regexp-list)
index 80e27b3b8f02d7b8e26cbe0bcb336c18046abc3a..3c3b9d628a144552520a4fb66af4e1c9593addca 100644 (file)
@@ -4,7 +4,7 @@
 ;;   Free Software Foundation.
 
 ;; Author:    Dan Nicolaescu <done@ece.arizona.edu>
-;; Keywords: multilingual, Romanian
+;; Keywords: multilingual, Romanian, i18n
 
 ;; This file is part of GNU Emacs.
 
 
 ;;; Commentary:
 
-;; Romanian ISO 8859-2 environment.
+;; Romanian ISO 8859-2 environment plus 8859-16 coding system.
 
 ;;; Code:
 
 (set-language-info-alist
- "Romanian" '((charset . (ascii latin-iso8859-2))
-             (coding-system . (iso-8859-2))
-             (coding-priority . (iso-8859-2))
-             (nonascii-translation . latin-iso8859-2)
+ "Romanian" '((charset iso-8859-2)
+             (coding-system iso-8859-2 iso-latin-10)
+             (coding-priority iso-8859-2)
+             (nonascii-translation . iso-8859-2)
              (input-method . "latin-2-postfix")
-             (unibyte-syntax . "latin-2")
              (unibyte-display . iso-8859-2)
              (tutorial . "TUTORIAL.ro")
              (sample-text . "Bunã ziua, bine aþi venit!")
-             (documentation . t))
+             (documentation . "Rmoanian environment using Latin-2 encoding.
+An environment for generic Latin-10 encoding is also available."))
  '("European"))
 
+(define-coding-system 'iso-latin-10
+  "ISO 2022 based 8-bit encoding for Latin-10."
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(iso-8859-16)
+  :mime-charset 'iso-8859-16)
+
+(define-coding-system-alias 'iso-8859-16 'iso-latin-10)
+(define-coding-system-alias 'latin-10 'iso-latin-10)
+
 (provide 'romanian)
 
 ;;; arch-tag: a0bf93ee-2f02-4678-a477-c08acc35366b
index 6b7fa1f6653cd490c47bf4100a864e33a20c715a..fd2ad98aa442e9ab268f1371ae843e9900c10a32 100644 (file)
@@ -35,9 +35,8 @@
  "Slovak" '((charset . (ascii latin-iso8859-2))
            (coding-system . (iso-8859-2))
            (coding-priority . (iso-8859-2))
-           (nonascii-translation . latin-iso8859-2)
+           (nonascii-translation . iso-8859-2)
            (input-method . "slovak")
-           (unibyte-syntax . "latin-2")
            (unibyte-display . iso-8859-2)
            (tutorial . "TUTORIAL.sk")
            (sample-text . "Prajeme V\e,Ba\e(Bm pr\e,Bm\e(Bjemn\e,B}\e(B de\e,Br\e(B!")
diff --git a/lisp/language/tai-viet.el b/lisp/language/tai-viet.el
new file mode 100644 (file)
index 0000000..faa666d
--- /dev/null
@@ -0,0 +1,68 @@
+;;; tai-viet.el --- support for Tai Viet -*- coding: utf-8; no-byte-compile: t -*-
+
+;; Copyright (C) 2007
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
+;; Copyright (C) 2007  Free Software Foundation, Inc.
+
+;; Keywords: multilingual, Tai Viet, i18n
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs 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 General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; Tai Viet is being included in the Unicode at the range U+AA80..U+AADF.
+
+;;; Code:
+
+(set-char-table-range composition-function-table
+                     '(#xAA80 . #xAADF)
+                     'tai-viet-composition-function)
+
+(set-language-info-alist
+ "TaiViet" '((charset unicode)
+             (coding-system utf-8)
+             (coding-priority utf-8)
+             (input-method . "tai-sonla")
+             (sample-text
+              "TaiViet (êªêª«êª±êª£ êª½êª•)\t\tꪅꪰꪙ꫃ êª¨êª®ê«ƒ êªêª«êª± / êª…ꪾ êª¨ï¿½ï½ êªêª«êª±")
+             (documentation . "\
+TaiViet refers to the Tai language used by Tai people in
+Vietnam, and also refers to the script used for this language.
+Both the script and language have the same origin as that of Thai
+language/script used in Thailand, but now they differ from each
+other in a significant way (especially the scripts are).
+
+The language name is spelled as \"êªêª«êª±êª£ êª½êª•\", and the script name is
+spelled as \"ꪎ�ꪽꪕ\" in the modern form, \"ꪎꪴ êª½êª•\" in the traditional
+from.
+
+As the proposal for TaiViet script to the Unicode is still on
+the progress, we use the Private Use Area for TaiViet
+characters (U+F000..U+F07E).  A TaiViet font encoded accordingly
+is available at this web page:
+    http://www.m17n.org/TaiViet/
+")))
+
+(provide 'tai-viet)
+
+;; Local Variables:
+;; coding: utf-8
+;; End:
+
+;; arch-tag: db4e3377-2ba7-47a0-b173-e44420d540c3
index 08f16e273c8698fffdf6d4409ef7a4599a243a0f..1eb659e4521cddb811e0acde3004cae45f564bbd 100644 (file)
@@ -38,6 +38,9 @@
 South Indian Language Tamil supported in this language environment."))
  '("Indian"))
 
+;; For automatic composition.
+(set-char-table-range composition-function-table '(#x0b80 . #x0bff)
+                     '(("[\x0B80-\x0BFF]+" . font-shape-text)))
 (provide 'tamil)
 
 ;;; arch-tag: 2201ac78-7d1e-4674-9bcb-9923c7a2bd9c
index 7696f634211d3833e9aa7b2b9eef0a49aab8eb49..0c09b79afd408535772ceaca18b0550cdba11603 100644 (file)
@@ -3,11 +3,11 @@
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
-;;   Registration Number H14PRO021
+;;   Registration Number H13PRO009
 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   Free Software Foundation, Inc.
 
-;; Keywords: mule, multilingual, thai
+;; Keywords: mule, multilingual, Thai, i18n
 
 ;; This file is part of GNU Emacs.
 
   "\\cc\\(\\cu\\|\\cI\\cU\\|\\cv\\ct?\\)\\|\\cv\\ct\\|\\cI\\cU"
   "Regular expression matching a Thai composite sequence.")
 
-(defun thai-self-insert-command (&optional n)
-  "Insert the Thai character you type.
-The character will be composed with the surrounding Thai character
-if necessary."
-  (interactive "*p")
-  (let ((pos (point))
-       category-set ch)
-    (self-insert-command n)
-    (or thai-auto-composition-mode
-       (thai-auto-composition (1- (point)) (point) 0))))
-
 (let ((l '((?\e,T!\e(B consonant "LETTER KO KAI")                                ; 0xA1
           (?\e,T"\e(B consonant "LETTER KHO KHAI")                               ; 0xA2
           (?\e,T#\e(B consonant "LETTER KHO KHUAT")                              ; 0xA3
@@ -163,95 +152,6 @@ if necessary."
           (?\e,T|\e(B invalid nil)                                               ; 0xFC
           (?\e,T}\e(B invalid nil)                                               ; 0xFD
           (?\e,T~\e(B invalid nil)                                               ; 0xFE
-
-          ;; Unicode equivalents
-          (?\e$,1Ba\e(B consonant "LETTER KO KAI")
-          (?\e$,1Bb\e(B consonant "LETTER KHO KHAI")
-          (?\e$,1Bc\e(B consonant "LETTER KHO KHUAT")
-          (?\e$,1Bd\e(B consonant "LETTER KHO KHWAI")
-          (?\e$,1Be\e(B consonant "LETTER KHO KHON")
-          (?\e$,1Bf\e(B consonant "LETTER KHO RAKHANG")
-          (?\e$,1Bg\e(B consonant "LETTER NGO NGU")
-          (?\e$,1Bh\e(B consonant "LETTER CHO CHAN")
-          (?\e$,1Bi\e(B consonant "LETTER CHO CHING")
-          (?\e$,1Bj\e(B consonant "LETTER CHO CHANG")
-          (?\e$,1Bk\e(B consonant "LETTER SO SO")
-          (?\e$,1Bl\e(B consonant "LETTER CHO CHOE")
-          (?\e$,1Bm\e(B consonant "LETTER YO YING")
-          (?\e$,1Bn\e(B consonant "LETTER DO CHADA")
-          (?\e$,1Bo\e(B consonant "LETTER TO PATAK")
-          (?\e$,1Bp\e(B consonant "LETTER THO THAN")
-          (?\e$,1Bq\e(B consonant "LETTER THO NANGMONTHO")
-          (?\e$,1Br\e(B consonant "LETTER THO PHUTHAO")
-          (?\e$,1Bs\e(B consonant "LETTER NO NEN")
-          (?\e$,1Bt\e(B consonant "LETTER DO DEK")
-          (?\e$,1Bu\e(B consonant "LETTER TO TAO")
-          (?\e$,1Bv\e(B consonant "LETTER THO THUNG")
-          (?\e$,1Bw\e(B consonant "LETTER THO THAHAN")
-          (?\e$,1Bx\e(B consonant "LETTER THO THONG")
-          (?\e$,1By\e(B consonant "LETTER NO NU")
-          (?\e$,1Bz\e(B consonant "LETTER BO BAIMAI")
-          (?\e$,1B{\e(B consonant "LETTER PO PLA")
-          (?\e$,1B|\e(B consonant "LETTER PHO PHUNG")
-          (?\e$,1B}\e(B consonant "LETTER FO FA")
-          (?\e$,1B~\e(B consonant "LETTER PHO PHAN")
-          (?\e$,1B\7f\e(B consonant "LETTER FO FAN")
-          (?\e$,1C \e(B consonant "LETTER PHO SAMPHAO")
-          (?\e$,1C!\e(B consonant "LETTER MO MA")
-          (?\e$,1C"\e(B consonant "LETTER YO YAK")
-          (?\e$,1C#\e(B consonant "LETTER RO RUA")
-          (?\e$,1C$\e(B vowel-base "LETTER RU (Pali vowel letter)")
-          (?\e$,1C%\e(B consonant "LETTER LO LING")
-          (?\e$,1C&\e(B vowel-base "LETTER LU (Pali vowel letter)")
-          (?\e$,1C'\e(B consonant "LETTER WO WAEN")
-          (?\e$,1C(\e(B consonant "LETTER SO SALA")
-          (?\e$,1C)\e(B consonant "LETTER SO RUSI")
-          (?\e$,1C*\e(B consonant "LETTER SO SUA")
-          (?\e$,1C+\e(B consonant "LETTER HO HIP")
-          (?\e$,1C,\e(B consonant "LETTER LO CHULA")
-          (?\e$,1C-\e(B consonant "LETTER O ANG")
-          (?\e$,1C.\e(B consonant "LETTER HO NOK HUK")
-          (?\e$,1C/\e(B special "PAI YAN NOI (abbreviation)")
-          (?\e$,1C0\e(B vowel-base "VOWEL SIGN SARA A")
-          (?\e$,1C1\e(B vowel-upper "VOWEL SIGN MAI HAN-AKAT N/S-T")
-          (?\e$,1C2\e(B vowel-base "VOWEL SIGN SARA AA")
-          (?\e$,1C3\e(B vowel-base "VOWEL SIGN SARA AM")
-          (?\e$,1C4\e(B vowel-upper "VOWEL SIGN SARA I N/S-T")
-          (?\e$,1C5\e(B vowel-upper "VOWEL SIGN SARA II N/S-T")
-          (?\e$,1C6\e(B vowel-upper "VOWEL SIGN SARA UE N/S-T")
-          (?\e$,1C7\e(B vowel-upper "VOWEL SIGN SARA UEE N/S-T")
-          (?\e$,1C8\e(B vowel-lower "VOWEL SIGN SARA U N/S-B")
-          (?\e$,1C9\e(B vowel-lower "VOWEL SIGN SARA UU N/S-B")
-          (?\e$,1C:\e(B vowel-lower "VOWEL SIGN PHINTHU N/S-B (Pali virama)")
-          (?\e$,1C?\e(B special "BAHT SIGN (currency symbol)")
-          (?\e$,1C@\e(B vowel-base "VOWEL SIGN SARA E")
-          (?\e$,1CA\e(B vowel-base "VOWEL SIGN SARA AE")
-          (?\e$,1CB\e(B vowel-base "VOWEL SIGN SARA O")
-          (?\e$,1CC\e(B vowel-base "VOWEL SIGN SARA MAI MUAN")
-          (?\e$,1CD\e(B vowel-base "VOWEL SIGN SARA MAI MALAI")
-          (?\e$,1CE\e(B vowel-base "LAK KHANG YAO")
-          (?\e$,1CF\e(B special "MAI YAMOK (repetion)")
-          (?\e$,1CG\e(B sign-upper "VOWEL SIGN MAI TAI KHU N/S-T")
-          (?\e$,1CH\e(B tone "TONE MAI EK N/S-T")
-          (?\e$,1CI\e(B tone "TONE MAI THO N/S-T")
-          (?\e$,1CJ\e(B tone "TONE MAI TRI N/S-T")
-          (?\e$,1CK\e(B tone "TONE MAI CHATTAWA N/S-T")
-          (?\e$,1CL\e(B sign-upper "THANTHAKHAT N/S-T (cancellation mark)")
-          (?\e$,1CM\e(B sign-upper "NIKKHAHIT N/S-T (final nasal)")
-          (?\e$,1CN\e(B sign-upper "YAMAKKAN N/S-T")
-          (?\e$,1CO\e(B special "FONRMAN")
-          (?\e$,1CP\e(B special "DIGIT ZERO")
-          (?\e$,1CQ\e(B special "DIGIT ONE")
-          (?\e$,1CR\e(B special "DIGIT TWO")
-          (?\e$,1CS\e(B special "DIGIT THREE")
-          (?\e$,1CT\e(B special "DIGIT FOUR")
-          (?\e$,1CU\e(B special "DIGIT FIVE")
-          (?\e$,1CV\e(B special "DIGIT SIX")
-          (?\e$,1CW\e(B special "DIGIT SEVEN")
-          (?\e$,1CX\e(B special "DIGIT EIGHT")
-          (?\e$,1CY\e(B special "DIGIT NINE")
-          (?\e$,1CZ\e(B special "ANGKHANKHU (ellipsis)")
-          (?\e$,1C[\e(B special "KHOMUT (beginning of religious texts)")
           ))
       elm)
   (while l
@@ -260,24 +160,20 @@ if necessary."
          (ptype (nth 1 elm)))
       (put-char-code-property char 'phonetic-type ptype)
       (cond ((eq ptype 'consonant)
-            (modify-category-entry char ?c thai-category-table)
-            (global-set-key (vector char) 'thai-self-insert-command))
+            (modify-category-entry char ?c thai-category-table))
            ((memq ptype '(vowel-upper vowel-lower))
             (modify-category-entry char ?v thai-category-table)
-            (if (or (= char ?\e,TT\e(B) (= char ?\e$,1C4\e(B))
+            (if (= char ?\e,TT\e(B)
                 ;; Give category `I' to "SARA I".
-                (modify-category-entry char ?I thai-category-table))
-            (global-set-key (vector char) 'thai-self-insert-command))
+                (modify-category-entry char ?I thai-category-table)))
            ((eq ptype 'tone)
             (modify-category-entry char ?t thai-category-table)
-            (modify-category-entry char ?u thai-category-table)
-            (global-set-key (vector char) 'thai-self-insert-command))
+            (modify-category-entry char ?u thai-category-table))
            ((eq ptype 'sign-upper)
             (modify-category-entry char ?u thai-category-table)
-            (if (or (= char ?\e,Tl\e(B) (= char ?\e$,1CL\e(B))
+            (if (= char ?\e,Tl\e(B)
                 ;; Give category `U' to "THANTHAKHAT".
-                (modify-category-entry char ?U thai-category-table))
-            (global-set-key (vector char) 'thai-self-insert-command)))
+                (modify-category-entry char ?U thai-category-table))))
       (put-char-code-property char 'name (nth 2 elm)))))
 
 (defun thai-compose-syllable (beg end &optional category-set string)
@@ -333,57 +229,20 @@ positions (integers or markers) specifying the region."
   (thai-compose-region (point-min) (point-max)))
 
 ;;;###autoload
-(defun thai-post-read-conversion (len)
-  (thai-compose-region (point) (+ (point) len))
-  len)
-
-;;;###autoload
-(defun thai-composition-function (from to pattern &optional string)
-  "Compose Thai text in the region FROM and TO.
-The text matches the regular expression PATTERN.
-Optional 4th argument STRING, if non-nil, is a string containing text
-to compose.
-
-The return value is number of composed characters."
-  (when (and (not thai-auto-composition-mode)
-            (< (1+ from) to))
-    (with-category-table thai-category-table
-      (if string
-         (if (eq (string-match thai-composition-pattern string from) from)
-             (thai-compose-syllable from (match-end 0) nil string))
-       (if (save-excursion
-             (goto-char from)
-             (and (looking-at thai-composition-pattern)
-                  (setq to (match-end 0))))
-           (thai-compose-syllable from to))))))
-
-(defun thai-auto-composition (beg end len)
+(defun thai-composition-function (pos to font-object string)
+  (setq pos (1- pos))
   (with-category-table thai-category-table
-    (let (category-set)
-      (while (and (> beg (point-min))
-                 (setq category-set (char-category-set (char-after (1- beg))))
-                 (or (aref category-set ?v) (aref category-set ?u)))
-         (setq beg (1- beg)))
-      (if (and (> beg (point-min))
-              (aref (char-category-set (char-after (1- beg))) ?c))
-         (setq beg (1- beg)))
-      (while (and (< end (point-max))
-                 (setq category-set (char-category-set (char-after end)))
-                 (or (aref category-set ?v) (aref category-set ?u)))
-       (setq end (1+ end)))
-      (if (< beg end)
-         (thai-compose-region beg end)))))
-
-(put 'thai-auto-composition-mode 'permanent-local t)
-
-;;;###autoload
-(define-minor-mode thai-auto-composition-mode
-  "Minor mode for automatically correct Thai character composition."
-  :group 'mule
-  (cond ((null thai-auto-composition-mode)
-        (remove-hook 'after-change-functions 'thai-auto-composition))
-       (t
-        (add-hook 'after-change-functions 'thai-auto-composition))))
+    (if string
+       (if (and (>= pos 0)
+                (eq (string-match thai-composition-pattern string pos) pos))
+           (prog1 (match-end 0)
+             (thai-compose-syllable pos (match-end 0) nil string)))
+      (if (>= pos (point-min))
+         (progn
+           (goto-char pos)
+           (if (looking-at thai-composition-pattern)
+               (prog1 (match-end 0)
+                 (thai-compose-syllable pos (match-end 0)))))))))
 
 ;; Thai-word-mode requires functions in the feature `thai-word'.
 (require 'thai-word)
index 98fe8ea77a17af6841da853dc91705dd553cbd30..7008cc9d380197674931e29f222e564ed9e697c3 100644 (file)
@@ -3,11 +3,14 @@
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
+;; Copyright (C) 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 ;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007  Free Software Foundation, Inc.
 
-;; Keywords: multilingual, Thai
+;; Keywords: multilingual, Thai, i18n
 
 ;; This file is part of GNU Emacs.
 
 
 ;;; Code:
 
-(make-coding-system
- 'thai-tis620 2 ?T
- "8-bit encoding for ASCII (MSB=0) and Thai TIS620 (MSB=1)."
- '(ascii thai-tis620 nil nil
-   nil nil nil nil nil nil nil nil nil nil nil t)
- '((safe-charsets ascii thai-tis620)
-   (mime-charset . tis-620)
-   (post-read-conversion . thai-post-read-conversion)))
+(define-coding-system 'thai-tis620
+  "8-bit encoding for ASCII (MSB=0) and Thai TIS620 (MSB=1)."
+  :coding-type 'charset
+  :mnemonic ?T
+  :charset-list '(tis620-2533))
 
 (define-coding-system-alias 'th-tis620 'thai-tis620)
 (define-coding-system-alias 'tis620 'thai-tis620)
@@ -48,9 +48,9 @@
 (set-language-info-alist
  "Thai" '((tutorial . "TUTORIAL.th")
          (charset thai-tis620)
-         (coding-system thai-tis620)
+         (coding-system thai-tis620 iso-8859-11 cp874)
          (coding-priority thai-tis620)
-         (nonascii-translation . thai-tis620)
+         (nonascii-translation . tis620-2533)
          (input-method . "thai-kesmanee")
          (unibyte-display . thai-tis620)
          (features thai-util)
          (exit-function . exit-thai-language-environment-internal)
          (sample-text
           . (thai-compose-string
-             (copy-sequence "Thai (\e,T@RIRd7B\e(B)              \e,TJ\e0GQ\e1J\e04U\e1$\e0CQ\e1:\e(B, \e,TJ\e0GQ\e1J\e04U\e1\e0$h\e1P\e(B")))
+             (copy-sequence "Thai (\e,T@RIRd7B\e(B)              \e,TJGQJ4U$CQ:\e(B, \e,TJGQJ4U$hP\e(B")))
          (documentation . t)))
 
-
-;; Register a function to compose Thai characters.
-(let ((patterns '(("\\c0?\\(\\c2\\|\\c3\\|\\c4\\)+"
-                  . thai-composition-function))))
-  (aset composition-function-table (make-char 'thai-tis620) patterns)
-  (dotimes (i (1+ (- #xe7f #xe00)))
-    (aset composition-function-table (decode-char 'ucs (+ i #xe00)) patterns)))
+(define-coding-system 'cp874
+  "DOS codepage 874 (Thai)"
+  :coding-type 'charset
+  :mnemonic ?D
+  :charset-list '(cp874)
+  :mime-charset 'cp874)
+(define-coding-system-alias 'ibm874 'cp874)
+
+(define-coding-system 'iso-8859-11
+  "ISO/IEC 8859/11 (Latin/Thai)
+This is the same as `thai-tis620' with the addition of no-break-space."
+  :coding-type 'charset
+  :mnemonic ?*
+  :mime-charset 'iso-8859-11 ; not actually registered as of 2002-05-24
+  :charset-list '(iso-8859-11))
+
+;; For automatic composition.
+(let ((chars "\e,TQTUVWXYZghijklmn\e(B"))
+  (dotimes (i (length chars))
+    (aset composition-function-table (aref chars i)
+         'thai-composition-function)))
 
 (provide 'thai)
 
index b0c38d40c2dc5dedbdcb6949ba428fb484820946..b58c60dc784fdb715ce9f2ecdc9833e7ae443c44 100644 (file)
 ;;; Code:
 
 (defconst tibetan-obsolete-glyphs
-  `(("\e$(7!=\e(B" . "\e$(8!=\e(B")                        ; 2 col <-> 1 col
-    ("\e$(7!?\e(B" . "\e$(8!?\e(B")
-    ("\e$(7!@\e(B" . "\e$(8!@\e(B")
-    ("\e$(7!A\e(B" . "\e$(8!A\e(B")
-    ("\e$(7"`\e(B" . "\e$(8"`\e(B")
-    ("\e$(7!;\e(B" . "\e$(8!;\e(B")
-    ("\e$(7!D\e(B" . "\e$(8!D\e(B")
+  `(("\e$(7!=\e(B" . "\e$(7!=\e(B")                        ; 2 col <-> 1 col
+    ("\e$(7!?\e(B" . "\e$(7!?\e(B")
+    ("\e$(7!@\e(B" . "\e$(7!@\e(B")
+    ("\e$(7!A\e(B" . "\e$(7!A\e(B")
+    ("\e$(7"`\e(B" . "\e$(7"`\e(B")
+    ("\e$(7!;\e(B" . "\e$(7!;\e(B")
+    ("\e$(7!D\e(B" . "\e$(7!D\e(B")
     ;; Yes these are dirty. But ...
     ("\e$(7!>\e(B \e$(7!>\e(B" . ,(compose-string "\e$(7!>\e(B \e$(7!>\e(B" 0 3 [?\e$(7!>\e(B (Br . Bl) ?  (Br . Bl) ?\e$(7!>\e(B]))
     ("\e$(7!4!5!5\e(B" . ,(compose-string
@@ -141,7 +141,7 @@ The returned string has no composition information."
 ;;;
 ;;; Here are examples of the words "bsgrubs" and "hfauM"
 ;;;
-;;;            \e4\e$(7"7\e0"7\e1\e4%qx!"U\e0"G###C"U\e1\e4"7\e0"7\e1\e4"G\e0"G\e1\e(B            \e4\e$(7"Hx!"Rx!"Ur'"_\e0"H"R"U"_\e1\e(B
+;;;            \e$(7"7"G###C"U"7"G\e(B            \e$(7"H"R"U"_\e(B
 ;;;
 ;;;                             M
 ;;;             b s b s         h
@@ -167,7 +167,7 @@ The returned string has no composition information."
     ;; If 'a follows a consonant, turn it into the subjoined form.
     ;; * Disabled by Tomabechi 2000/06/09 *
     ;; Because in Unicode, \e$(7"A\e(B may follow directly a consonant without
-    ;; any intervening vowel, as in \e4\e$(7"9\e0"9\e1\e4""\e0"""Q\e1\e4"A\e0"A\e1!;\e(B=\e4\e$(7"9\e0"9\e1\e(B \e4\e$(7""\e0""\e1\e(B \e4\e$(7"A\e0"A\e1\e(B not \e4\e$(7"9\e0"9\e1\e(B \e4\e$(7""\e0""\e1\e(B \e$(7"Q\e(B \e4\e$(7"A\e0"A\e1\e(B
+    ;; any intervening vowel, as in \e$(7"9"""Q"A!;\e(B=\e$(7"9\e(B \e$(7""\e(B \e$(7"A\e(B not \e$(7"9\e(B \e$(7""\e(B \e$(7"Q\e(B \e$(7"A\e(B
     ;;(if (and (= char ?\e$(7"A\e(B)
     ;;      (aref (char-category-set (car last)) ?0))
     ;; (setq char ?\e$(7"R\e(B)) ;; modified for new font by Tomabechi 1999/12/10
@@ -189,7 +189,8 @@ The returned string has no composition information."
 
      ;; Compose lower vowel sign vertically under.
      ((aref (char-category-set char) ?3)
-      (if (eq char ?\e$(7"Q\e(B)         ;; `\e$(7"Q\e(B' should not visible when composed.
+      (if (or (eq char ?\e$(7"Q\e(B) ;; `\e$(7"Q\e(B' and `\e$,1FP\e(B' should not visible when composed.
+             (eq char #xF70))
          (setq rule nil)
        (setq rule stack-under)))
      ;; Transform ra-mgo (superscribed r) if followed by a subjoined
@@ -315,11 +316,21 @@ are decomposed into normal Tibetan character sequences."
     new))
 
 ;;;###autoload
-(defun tibetan-composition-function (from to pattern &optional string)
+(defun tibetan-composition-function (pos &optional string)
   (if string
-      (tibetan-compose-string string)
-    (tibetan-compose-region from to))
-  (- to from))
+      (if auto-compose-current-font
+         (if (eq (string-match "[\e$(7!0\e(B-\e$,1GQ\e(B]+" pos) pos)
+             (or (font-shape-text 0 (match-end 0) auto-compose-current-font
+                                  string)
+                 pos)))
+    (goto-char pos)
+    (if auto-compose-current-font
+       (if (looking-at "[\e$(7!0\e(B-\e$,1GQ\e(B]+")
+           (or (font-shape-text pos (match-end 0) auto-compose-current-font)
+               pos)
+         (if (looking-at tibetan-composable-pattern)
+             (prog1 (match-end 0)
+               (tibetan-compose-region pos (match-end 0))))))))
 
 ;;;
 ;;; This variable is used to avoid repeated decomposition.
index fb8d02ba3b48de3e34d66416663afdf3a885a5cf..bad81e4a69eebb04e10aed4dd2a267ff6ad42725 100644 (file)
@@ -5,8 +5,11 @@
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
-;; Keywords: multilingual, Tibetan
+;; Keywords: multilingual, Tibetan, i18n
 
 ;; This file is part of GNU Emacs.
 
 ;;;
 
 
-(make-coding-system
- 'tibetan-iso-8bit 2 ?Q
- "8-bit encoding for ASCII (MSB=0) and TIBETAN (MSB=1)."
- '(ascii tibetan nil nil
-   nil nil)
- '((safe-charsets ascii tibetan)
-   (post-read-conversion . tibetan-post-read-conversion)
-   (pre-write-conversion . tibetan-pre-write-conversion)))
+(define-coding-system 'tibetan-iso-8bit
+  "8-bit encoding for ASCII (MSB=0) and TIBETAN (MSB=1)."
+  :coding-type 'iso-2022
+  :mnemonic ?Q
+  :designation [ascii tibetan nil nil]
+  :charset-list '(ascii tibetan))
 
 (define-coding-system-alias 'tibetan 'tibetan-iso-8bit)
 
             (input-method . "tibetan-wylie")
             (features tibet-util)
             (documentation . t)
-            (sample-text
-             . (tibetan-compose-string
-                (copy-sequence
-"Tibetan (\e4\e$(7"7r'"]\e0"7"]\e1\e4"2\e0"2\e1!;\e4%P\e0"G#!"Q\e1\e4"2\e0"2\e1!;\e(B) \e$(7!4!5!5!>\e4"7\e0"7\e1\e4$P\e0"!#C"Q\e1!;\e4"Er'"S\e0"E"S\e1\e4"G\e0"G\e1!;\e4"7\e0"7\e1\e4"2r'"[\e0"2"[\e1!;\e4"Dr'"[\e0"D"[\e1\e4"#\e0"#\e1\e4"G\e0"G\e1!>\e4"Ir'"]r'"_\e0"I"]"_\e1!;\e4"9\e0"9"Q\e1!;\e4"/r'"S\e0"/"S\e1!;\e4"5\e0"5"Q\e1\e4#2x!#9r'"[\e0"2#9"[\e1!;\e4"Hx!"Rx!"Ur'"c\e0"H"A"U"c\e1!>\e(B")))))
-
+            (sample-text "Tibetan (\e$(7"7"]"2!;"G#!"Q"2!;\e(B) \e$(7!4!5!5!>"7"!#C"Q!;"E"S"G!;"7"2"[!;"D"["#"G!>"I"]"_!;"9"Q!;"/"S!;"5"Q"2#9"[!;"H"A"U"c!>\e(B")))
 
 ;; `\e$(7"A\e(B' is included in the pattern for subjoined consonants because we
 ;; treat it specially in tibetan-add-components.
 ;; \e$(7"A\e(B is removed from the class of subjoined. Tomabechi 2000/06/08
 ;; (for Unicode support)
 (defconst tibetan-composable-pattern
-  "[\e$(7"!\e(B-\e$(7"J"K\e(B][\e$(7#!\e(B-\e$(7#J#K#L#M\e(B]*[\e$(7"Q"R"S\e(B-\e$(7"^"a"b"e\e(B]*[\e$(7"_"c"d"g\e(B-\e$(7"l!I!e!g\e(B]*"
+  "[\e$(7"!\e(B-\e$(7"J"K\e(B][\e$(7#!\e(B-\e$(7#J#K#L#M\e(B]*[\e$,1FP\e$(7"Q"R"S\e(B-\e$(7"^"a"b"e\e(B]*[\e$(7"_"c"d"g\e(B-\e$(7"l!I!e!g\e(B]*"
   "Regexp matching a composable sequence of Tibetan characters.")
 
-;; Register a function to compose Tibetan characters.
-(aset composition-function-table (make-char 'tibetan)
-      (list (cons tibetan-composable-pattern 'tibetan-composition-function)))
-
 ;;;
 ;;; Definitions of conversion data.
 ;;;
@@ -611,6 +604,10 @@ This also matches some punctuation characters which need conversion.")
 (defvar tibetan-decomposed nil)
 (defvar tibetan-decomposed-temp nil)
 
+;; For automatic composition.
+(set-char-table-range composition-function-table '(#xF00 . #xFD1)
+                     '(("[\xF00-\xFD1]+" . font-shape-text)))
+
 (provide 'tibetan)
 
 ;;; arch-tag: 8d37c8d7-f95d-450f-9ec2-819e61fc79a7
index ebc7b1f01f7140ca2a7f0a93ff24a9b19ec935de..58f32897f0dc415100e7876e9f9d4c7796068561 100644 (file)
       (function (lambda (x y) (> (length x) (length y))))))))
 
 
-;;;###autoload
-(defun tamil-composition-function (from to pattern  &optional string)
-  "Compose Tamil characters in REGION, or STRING if specified.
-Assume that the REGION or STRING must fully match the composable 
-PATTERN regexp."
-  (if string (tamil-compose-syllable-string string)
-    (tamil-compose-syllable-region from to))
-  (- to from))
-
-;; Register a function to compose Tamil characters.
-(mapc
- (function (lambda (ucs)
-   (aset composition-function-table (decode-char 'ucs ucs)
-        (list (cons tamil-composable-pattern
-                     'tamil-composition-function)))))
- (nconc '(#x0b82 #x0b83) (tamil-range #x0b85 #x0bb9)))
-
 ;; Notes on conversion steps.
 
 ;; 1. chars to glyphs
@@ -136,7 +119,7 @@ PATTERN regexp."
 
 (defvar tml-char-glyph
   '(;; various signs
-    ;;("\e$,1<"\e(B" . "")
+    ("\e$,1<"\e(B" . "\e$,4)b\e(B")        ;; not good
     ("\e$,1<#\e(B" . "\e$,4*G\e(B")
     ;; Independent Vowels
     ("\e$,1<%\e(B" . "\e$,4*<\e(B")
@@ -335,10 +318,18 @@ PATTERN regexp."
         (narrow-to-region from to)
         (goto-char (point-min))
         ;; char-glyph-conversion
-        (while (re-search-forward tml-char-glyph-regexp nil t)
-          (setq match-str (match-string 0))
-          (setq glyph-str
-                (concat glyph-str (gethash match-str tml-char-glyph-hash))))
+        (while (not (eobp))
+         (if (looking-at tml-char-glyph-regexp)
+             (progn
+               (setq match-str (match-string 0)
+                     glyph-str
+                     (concat glyph-str
+                             (gethash match-str tml-char-glyph-hash)))
+               (goto-char (match-end 0)))
+           (setq glyph-str (concat glyph-str (string (following-char))))
+           (forward-char 1)))
+       (or glyph-str
+           (aset glyph-str 0 (following-char)))
         ;; glyph reordering
         (when (string-match tml-glyph-reorder-key-glyphs glyph-str)
           (if (string-match (car tml-glyph-reordering-regexp-list)
@@ -363,6 +354,25 @@ PATTERN regexp."
                  glyph-str))))
         (compose-region from to glyph-str)))))
 
+;;;###autoload
+(defun tamil-composition-function (pos  &optional string)
+  "Compose Tamil characters after the position POS.
+If STRING is not nil, it is a string, and POS is an index to the string.
+In this case, compose characters after POS of the string."
+  (if string
+      (if auto-compose-current-font
+         (if (eq (string-match "[\e$,1< \e(B-\e$,1=?\e(B]+" pos) pos)
+             (or (font-shape-text 0 (match-end 0) auto-compose-current-font
+                                  string)
+                 pos)))
+    (goto-char pos)
+    (if auto-compose-current-font
+       (if (looking-at "[\e$,1< \e(B-\e$,1=?\e(B]+")
+           (or (font-shape-text pos (match-end 0) auto-compose-current-font))
+         (if (looking-at tamil-composable-pattern)
+             (prog1 (match-end 0)
+               (tamil-compose-syllable-region pos (match-end 0))))))))
+
 (provide 'tml-util)
 
 ;;; arch-tag: 4d1c9737-e7b1-44cf-a040-4f64c50e773e
diff --git a/lisp/language/tv-util.el b/lisp/language/tv-util.el
new file mode 100644 (file)
index 0000000..312ee1f
--- /dev/null
@@ -0,0 +1,145 @@
+;;; tv-util.el --- support for Tai Viet                        -*- coding: utf-8 -*-
+
+;; Copyright (C) 2007
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
+
+;; Keywords: multilingual, Tai Viet, i18n
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs 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 General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Code
+
+;; Regexp matching with a sequence of Tai Viet characters.
+(defconst tai-viet-re
+  (format "[\xaa80-\xaac2\xaadb-\xaadf-]+"))
+
+;; Char-table of information about glyph type of Tai Viet characters.
+(defconst tai-viet-glyph-info
+  (let ((table (make-char-table nil))
+       (specials '((right-overhang . "ꪊꪋꪌêªêªêª“ꪖꪜꪞꪡꪤꪨ")
+                   (left-overhang . "ê«‚")
+                   (combining-vowel . "ꪴꪰꪲꪳꪷꪸꪾ")
+                   (combining-tone . "꪿ê«")
+                   (misc . "-"))))
+    ;; Set all TaiViet characters to `t'.
+    (set-char-table-range table (cons #xaa80 #xaac2) t)
+    (set-char-table-range table (cons #xaadb #xaadf) t)
+    ;; Overwrite it for special characters.
+    (dolist (elt specials)
+      (let ((category (car elt))
+           (chars (cdr elt)))
+       (dotimes (i (length chars))
+         (aset table (aref chars i) category))))
+    table))
+
+(defun tai-viet-compose-string (from to string)
+  "Compose Tai Viet characters in STRING between indices FROM and TO."
+  (let* ((ch (aref string from))
+        (info (aref tai-viet-glyph-info ch))
+        prev-info)
+    (if (eq info 'non-spacing)
+       (compose-string string from (1+ from) (string ch ?\t)))
+    (setq from (1+ from) prev-info info)
+    (while (and (< from to)
+               (>= #xaa80 (setq ch (aref string from)))
+               (<= #xaaDF ch))
+      (setq info (aref tai-viet-glyph-info ch))
+      (if (and (eq info 'non-spacing)
+              (eq prev-info 'non-spacing))
+         (compose-string from (1+ from) (string ?\t ch)))
+      (setq from (1+ from) prev-info info))
+    (if (eq info 'right-overhang)
+       (compose-string string (1- from) from (string ch ?\t)))
+    from))
+
+(defun tai-viet-compose-region (from to)
+  "Compose Tai Viet characters in the region between FROM and TO."
+  (decompose-region from to)
+  (let ((normal-rule '(Br . Bl))
+       (tone-rule '(tr . bl))
+       (prev-viet nil)
+       ch info pos components overhang)
+    (while (< from to) 
+      (or ch
+         (setq ch (char-after from)
+               info (aref tai-viet-glyph-info ch)))
+      (setq from (1+ from))
+      (if (not info)
+         (setq prev-viet nil
+               ch nil)
+       (if (memq info '(combining-vowel combining-tone))
+           (progn
+             ;; Display this as a spacing glyph.
+             (compose-region (1- from) from (string ?\t ch))
+             (setq prev-viet t
+                   ch nil))
+         (setq pos (1- from)
+               components ch
+               overhang (if (eq info 'right-overhang)
+                            'right-overhang
+                          (if (and (not prev-viet) (eq info 'left-overhang))
+                              'left-overhang))
+               prev-viet t
+               ch nil)
+         (if (and (< from to)
+                  (setq ch (char-after from)
+                        info (aref tai-viet-glyph-info ch)))
+             (if (memq info '(combining-vowel combining-tone))
+                 (progn
+                   (setq components
+                         (list components normal-rule ch)
+                         from (1+ from)
+                         ch nil)
+                   (if (and (< from to)
+                            (setq ch (char-after from)
+                                  info (aref tai-viet-glyph-info ch))
+                            (eq info 'combining-tone))
+                       (setq components (nconc components
+                                               (list tone-rule ch))
+                             from (1+ from)))
+                   (if (eq overhang 'left-overhang)
+                       (setq components (cons ?\t
+                                              (cons normal-rule components)))
+                     (if (and (eq overhang 'right-overhang)
+                              (>= from to))
+                         (setq components (nconc components
+                                                 (list normal-rule ?\t)))))
+                   (compose-region pos from components))
+               (if (eq overhang 'left-overhang)
+                   (compose-region pos from (string ?\t components))))
+           (if (eq overhang 'left-overhang)
+               (compose-region pos from (string ?\t components))
+             (if (and (eq overhang 'right-overhang) (>= from to))
+                 (compose-region pos from (string components ?\t))))))))
+    from))
+
+
+;;;###autoload
+(defun tai-viet-composition-function (from to font-object string)
+  (if string
+      (if (string-match tai-viet-re string from)
+         (tai-viet-compose-string from (match-end 0) string))
+    (goto-char from)
+    (if (looking-at tai-viet-re)
+       (tai-viet-compose-region from (match-end 0)))))
+
+;;
+(provide 'tai-viet-util)
+
+;; arch-tag: a45ac3fc-07d0-44d5-8841-2ebea7e11f5b
index a4bd6fbf7b039d1ed960ab0c2e58db9c5bae9253..d2cec6dce86c0189b3dd741c28539a5c3154e630 100644 (file)
 ;;; Code:
 
 (set-language-info-alist
- "UTF-8" `((coding-system mule-utf-8)
-          (coding-priority mule-utf-8)
-          (setup-function
-           . (lambda ()
-               ;; Use Unicode font under Windows.  Jason Rumney fecit.
-               (if (and (fboundp 'w32-add-charset-info)
-                        (not (boundp 'w32-unicode-charset-defined)))
-                   (w32-add-charset-info "iso10646-1" 'w32-charset-ansi t))))
+ "UTF-8" `((coding-system utf-8)
+          (coding-priority utf-8)
+;; Presumably not relevant now.
+;;        (setup-function
+;;         . (lambda ()
+;;             ;; Use Unicode font under Windows.  Jason Rumney fecit.
+;;             (if (and (fboundp 'w32-add-charset-info)
+;;                      (not (boundp 'w32-unicode-charset-defined)))
+;;                 (w32-add-charset-info "iso10646-1" 'w32-charset-ansi t))))
 ;; Is this appropriate?
 ;;        (exit-function
 ;;         . (lambda ()
@@ -46,8 +47,8 @@
 ;;                               w32-charset-info-alist)))))
           (input-method . "rfc1345")   ; maybe not the best choice
           (documentation . "\
-This language environment is a generic one for a subset of the Unicode
-character set encoded in UTF-8."))
+This language environment is a generic one for the Unicode character set
+encoded in UTF-8."))
  nil)
 
 (provide 'utf-8-lang)
index eb89bf11ef27678c9b6051741fc6399cc95849a7..18fa8ef5f3eb20651841976b677020e9a8d10650 100644 (file)
@@ -6,6 +6,9 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
 ;; Keywords: mule, multilingual, Vietnamese
 
@@ -45,8 +48,7 @@
 ;;;###autoload
 (defun viet-encode-viscii-char (char)
   "Return VISCII character code of CHAR if appropriate."
-  (aref (char-table-extra-slot viet-viscii-nonascii-translation-table 0)
-       char))
+  (encode-char char 'viscii))
 
 ;; VIQR is a menmonic encoding specification for Vietnamese.
 ;; It represents diacritical marks by ASCII characters as follows:
index f50605429b735416ed5131b715d894994482262a..09b75c90c5c67d21bb66cb7b26e44470d07f8479 100644 (file)
@@ -6,8 +6,11 @@
 ;;   2005, 2006, 2007
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
 
-;; Keywords: multilingual, Vietnamese
+;; Keywords: multilingual, Vietnamese, i18n
 
 ;; This file is part of GNU Emacs.
 
 
 ;;; Code:
 
-(defvar viet-viscii-decode-table
-  [;; VISCII is a full 8-bit code.
-   0 1 ?\e,2F\e(B 3 4 ?\e,2G\e(B ?\e,2g\e(B 7 8 9 10 11 12 13 14 15
-   16 17 18 19 ?\e,2V\e(B 21 22 23 24 ?\e,2[\e(B 26 27 28 29 ?\e,2\\e(B 31
-   32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
-   48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
-   64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
-   80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
-   96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
-   112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
-   ?\e,2U\e(B ?\e,2!\e(B ?\e,2"\e(B ?\e,2#\e(B ?\e,2$\e(B ?\e,2%\e(B ?\e,2&\e(B ?\e,2'\e(B ?\e,2(\e(B ?\e,2)\e(B ?\e,2*\e(B ?\e,2+\e(B ?\e,2,\e(B ?\e,2-\e(B ?\e,2.\e(B ?\e,2/\e(B
-   ?\e,20\e(B ?\e,21\e(B ?\e,22\e(B ?\e,25\e(B ?\e,2~\e(B ?\e,2>\e(B ?\e,26\e(B ?\e,27\e(B ?\e,28\e(B ?\e,2v\e(B ?\e,2w\e(B ?\e,2o\e(B ?\e,2|\e(B ?\e,2{\e(B ?\e,2x\e(B ?\e,2O\e(B
-   ?\e,2u\e(B ?\e,1!\e(B ?\e,1"\e(B ?\e,1#\e(B ?\e,1$\e(B ?\e,1%\e(B ?\e,1&\e(B ?\e,1'\e(B ?\e,1(\e(B ?\e,1)\e(B ?\e,1*\e(B ?\e,1+\e(B ?\e,1,\e(B ?\e,1-\e(B ?\e,1.\e(B ?\e,1/\e(B
-   ?\e,10\e(B ?\e,11\e(B ?\e,12\e(B ?\e,2^\e(B ?\e,2=\e(B ?\e,15\e(B ?\e,16\e(B ?\e,17\e(B ?\e,18\e(B ?\e,2q\e(B ?\e,2Q\e(B ?\e,2W\e(B ?\e,2X\e(B ?\e,1=\e(B ?\e,1>\e(B ?\e,2_\e(B
-   ?\e,2`\e(B ?\e,2a\e(B ?\e,2b\e(B ?\e,2c\e(B ?\e,2d\e(B ?\e,2e\e(B ?\e,1F\e(B ?\e,1G\e(B ?\e,2h\e(B ?\e,2i\e(B ?\e,2j\e(B ?\e,2k\e(B ?\e,2l\e(B ?\e,2m\e(B ?\e,2n\e(B ?\e,1O\e(B
-   ?\e,2p\e(B ?\e,1Q\e(B ?\e,2r\e(B ?\e,2s\e(B ?\e,2t\e(B ?\e,1U\e(B ?\e,1V\e(B ?\e,1W\e(B ?\e,1X\e(B ?\e,2y\e(B ?\e,2z\e(B ?\e,1[\e(B ?\e,1\\e(B ?\e,2}\e(B ?\e,1^\e(B ?\e,1_\e(B
-   ?\e,1`\e(B ?\e,1a\e(B ?\e,1b\e(B ?\e,1c\e(B ?\e,1d\e(B ?\e,1e\e(B ?\e,1f\e(B ?\e,1g\e(B ?\e,1h\e(B ?\e,1i\e(B ?\e,1j\e(B ?\e,1k\e(B ?\e,1l\e(B ?\e,1m\e(B ?\e,1n\e(B ?\e,1o\e(B
-   ?\e,1p\e(B ?\e,1q\e(B ?\e,1r\e(B ?\e,1s\e(B ?\e,1t\e(B ?\e,1u\e(B ?\e,1v\e(B ?\e,1w\e(B ?\e,1x\e(B ?\e,1y\e(B ?\e,1z\e(B ?\e,1{\e(B ?\e,1|\e(B ?\e,1}\e(B ?\e,1~\e(B ?\e,2f\e(B ]
-  "Vietnamese VISCII decoding table.")
-
-(let ((table (make-translation-table-from-vector viet-viscii-decode-table)))
-  (define-translation-table 'viet-viscii-nonascii-translation-table table)
-  (define-translation-table 'viet-viscii-encode-table
-    (char-table-extra-slot table 0)))
-
-;;;
-;;; VSCII is a pre-version of TCVN-5712 and deprecated
-;;;
-(defvar viet-vscii-decode-table
-  [;; VSCII is a full 8-bit code.
-   0 ?\e,2z\e(B ?\e,2x\e(B 3 ?\e,2W\e(B ?\e,2X\e(B ?\e,2f\e(B 7 8 9 10 11 12 13 14 15
-   16 ?\e,2Q\e(B ?\e,2_\e(B ?\e,2O\e(B ?\e,2V\e(B ?\e,2[\e(B ?\e,2}\e(B ?\e,2\\e(B 24 25 26 27 28 29 30 31
-   32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
-   48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
-   64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
-   80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
-   96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
-   112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
-   ?\e,2`\e(B ?\e,2d\e(B ?\e,2c\e(B ?\e,2a\e(B ?\e,2U\e(B ?\e,2#\e(B ?\e,2'\e(B ?\e,2h\e(B ?\e,2k\e(B ?\e,2(\e(B ?\e,2i\e(B ?\e,2)\e(B ?\e,2.\e(B ?\e,2l\e(B ?\e,2o\e(B ?\e,2n\e(B
-   ?\e,2m\e(B ?\e,28\e(B ?\e,2r\e(B ?\e,2v\e(B ?\e,2u\e(B ?\e,2s\e(B ?\e,2w\e(B ?\e,25\e(B ?\e,26\e(B ?\e,27\e(B ?\e,2^\e(B ?\e,2>\e(B ?\e,2~\e(B ?\e,2y\e(B ?\e,2|\e(B ?\e,2{\e(B
-   160 ?\e,2e\e(B ?\e,2b\e(B ?\e,2j\e(B ?\e,2t\e(B ?\e,2=\e(B ?\e,2_\e(B ?\e,2p\e(B ?\e,1e\e(B ?\e,1b\e(B ?\e,1j\e(B ?\e,1t\e(B ?\e,1=\e(B ?\e,1y\e(B ?\e,1p\e(B ?\e,2"\e(B
-   192 193 194 195 196 ?\e,1`\e(B ?\e,1d\e(B ?\e,1c\e(B ?\e,1a\e(B ?\e,1U\e(B ?\e,2F\e(B ?\e,1"\e(B ?\e,1F\e(B ?\e,1G\e(B ?\e,1!\e(B ?\e,2G\e(B
-   ?\e,2!\e(B ?\e,2%\e(B ?\e,2&\e(B ?\e,2g\e(B ?\e,2%\e(B ?\e,2+\e(B ?\e,1#\e(B ?\e,1%\e(B ?\e,1&\e(B ?\e,1g\e(B ?\e,1$\e(B ?\e,1'\e(B ?\e,1h\e(B ?\e,2,\e(B ?\e,1k\e(B ?\e,1(\e(B
-   ?\e,1i\e(B ?\e,1)\e(B ?\e,1+\e(B ?\e,1,\e(B ?\e,1-\e(B ?\e,1*\e(B ?\e,1.\e(B ?\e,1l\e(B ?\e,1o\e(B ?\e,2-\e(B ?\e,2*\e(B ?\e,20\e(B ?\e,1n\e(B ?\e,1m\e(B ?\e,18\e(B ?\e,1r\e(B
-   ?\e,21\e(B ?\e,1v\e(B ?\e,1u\e(B ?\e,1s\e(B ?\e,1w\e(B ?\e,10\e(B ?\e,11\e(B ?\e,12\e(B ?\e,1/\e(B ?\e,15\e(B ?\e,16\e(B ?\e,17\e(B ?\e,1^\e(B ?\e,1>\e(B ?\e,1~\e(B ?\e,1y\e(B
-   ?\e,22\e(B ?\e,1|\e(B ?\e,1{\e(B ?\e,1z\e(B ?\e,1x\e(B ?\e,1W\e(B ?\e,1X\e(B ?\e,1f\e(B ?\e,1Q\e(B ?\e,1q\e(B ?\e,1O\e(B ?\e,1V\e(B ?\e,1[\e(B ?\e,1}\e(B ?\e,1\\e(B ?\e,2/\e(B]
-  "Vietnamese VSCII decoding table.")
-
-(let ((table (make-translation-table-from-vector viet-vscii-decode-table)))
-  (define-translation-table 'viet-vscii-nonascii-translation-table table)
-  (define-translation-table 'viet-vscii-encode-table
-    (char-table-extra-slot table 0)))
-
-;; Does not support combining characters in the range [176, 180]
-(defvar viet-tcvn-decode-table
-  [;; TCVN is a full 8-bit code.
-   0 ?\e,2z\e(B ?\e,2x\e(B 3 ?\e,2W\e(B ?\e,2X\e(B ?\e,2f\e(B 7 8 9 10 11 12 13 14 15
-   16 ?\e,2Q\e(B ?\e,2q\e(B ?\e,2O\e(B ?\e,2V\e(B ?\e,2[\e(B ?\e,2}\e(B ?\e,2\\e(B 24 25 26 27 28 29 30 31
-   32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
-   48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
-   64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
-   80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
-   96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
-   112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
-   ?\e,2`\e(B ?\e,2d\e(B ?\e,2c\e(B ?\e,2a\e(B ?\e,2U\e(B ?\e,2#\e(B ?\e,2'\e(B ?\e,2h\e(B ?\e,2k\e(B ?\e,2(\e(B ?\e,2i\e(B ?\e,2)\e(B ?\e,2.\e(B ?\e,2l\e(B ?\e,2o\e(B ?\e,2n\e(B
-   ?\e,2m\e(B ?\e,28\e(B ?\e,2r\e(B ?\e,2v\e(B ?\e,2u\e(B ?\e,2s\e(B ?\e,2w\e(B ?\e,25\e(B ?\e,26\e(B ?\e,27\e(B ?\e,2^\e(B ?\e,2>\e(B ?\e,2~\e(B ?\e,2y\e(B ?\e,2|\e(B ?\e,2{\e(B
-   160 ?\e,2e\e(B ?\e,2b\e(B ?\e,2j\e(B ?\e,2t\e(B ?\e,2=\e(B ?\e,2_\e(B ?\e,2p\e(B ?\e,1e\e(B ?\e,1b\e(B ?\e,1j\e(B ?\e,1t\e(B ?\e,1=\e(B ?\e,1_\e(B ?\e,1p\e(B ?\e,2"\e(B
-   176 177 178 179 180 ?\e,1`\e(B ?\e,1d\e(B ?\e,1c\e(B ?\e,1a\e(B ?\e,1U\e(B ?\e,2F\e(B ?\e,1"\e(B ?\e,1F\e(B ?\e,1G\e(B ?\e,1!\e(B ?\e,2G\e(B
-   ?\e,2!\e(B ?\e,2%\e(B ?\e,2&\e(B ?\e,2g\e(B ?\e,2$\e(B ?\e,2+\e(B ?\e,1#\e(B ?\e,1%\e(B ?\e,1&\e(B ?\e,1g\e(B ?\e,1$\e(B ?\e,1'\e(B ?\e,1h\e(B ?\e,2,\e(B ?\e,1k\e(B ?\e,1(\e(B
-   ?\e,1i\e(B ?\e,1)\e(B ?\e,1+\e(B ?\e,1,\e(B ?\e,1-\e(B ?\e,1*\e(B ?\e,1.\e(B ?\e,1l\e(B ?\e,1o\e(B ?\e,2-\e(B ?\e,2*\e(B ?\e,20\e(B ?\e,1n\e(B ?\e,1m\e(B ?\e,18\e(B ?\e,1r\e(B
-   ?\e,21\e(B ?\e,1v\e(B ?\e,1u\e(B ?\e,1s\e(B ?\e,1w\e(B ?\e,10\e(B ?\e,11\e(B ?\e,12\e(B ?\e,1/\e(B ?\e,15\e(B ?\e,16\e(B ?\e,17\e(B ?\e,1^\e(B ?\e,1>\e(B ?\e,1~\e(B ?\e,1y\e(B
-   ?\e,22\e(B ?\e,1|\e(B ?\e,1{\e(B ?\e,1z\e(B ?\e,1x\e(B ?\e,1W\e(B ?\e,1X\e(B ?\e,1f\e(B ?\e,1Q\e(B ?\e,1q\e(B ?\e,1O\e(B ?\e,1V\e(B ?\e,1[\e(B ?\e,1}\e(B ?\e,1\\e(B ?\e,2/\e(B]
-  "Vietnamese TCVN-5712 decoding table.")
-
-(let ((table (make-translation-table-from-vector viet-tcvn-decode-table)))
-  (define-translation-table 'viet-tcvn-nonascii-translation-table table)
-  (define-translation-table 'viet-tcvn-encode-table
-    (char-table-extra-slot table 0)))
-
-;; (defvar viet-vps-decode-table
-;;   [;; VPS is a full 8-bit code.
-;;    0 1 ?\e,2U\e(B ?\e,2'\e(B ?\e,2#\e(B ?\e,2)\e(B ?\e,2.\e(B 7 8 9 10 11 12 13 14 15
-;;    ?\e,28\e(B ?\e,2w\e(B ?\e,25\e(B ?\e,2~\e(B ?\e,2x\e(B ?\e,2q\e(B 22 23 24 ?\e,2\\e(B 26 27 ?\e,2g\e(B ?\e,2f\e(B 30 31
-;;    32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
-;;    48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
-;;    64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
-;;    80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
-;;    96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
-;;    112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
-;;    ?\e,2`\e(B ?\e,2d\e(B ?\e,2c\e(B ?\e,2$\e(B ?\e,2%\e(B ?\e,2&\e(B ?\e,1w\e(B ?\e,12\e(B ?\e,2e\e(B ?\e,1*\e(B ?\e,1+\e(B ?\e,1,\e(B ?\e,1.\e(B ?\e,2!\e(B ?\e,2"\e(B ?\e,2F\e(B
-;;    ?\e,2*\e(B 145 146 ?\e,2+\e(B ?\e,2,\e(B ?\e,2-\e(B ?\e,2/\e(B ?\e,20\e(B ?\e,21\e(B ?\e,22\e(B ?\e,1}\e(B ?\e,1V\e(B ?\e,1\\e(B ?\e,2>\e(B ?\e,26\e(B ?\e,27\e(B
-;;    160 ?\e,1!\e(B ?\e,1"\e(B ?\e,1F\e(B ?\e,1G\e(B ?\e,1#\e(B ?\e,2^\e(B ?\e,1>\e(B ?\e,2y\e(B ?\e,16\e(B ?\e,17\e(B ?\e,1^\e(B ?\e,2{\e(B ?\e,2Q\e(B ?\e,1~\e(B ?\e,2W\e(B
-;;    ?\e,11\e(B ?\e,2X\e(B ?\e,2O\e(B ?\e,2[\e(B ?\e,2m\e(B ?\e,2l\e(B ?\e,15\e(B ?\e,2o\e(B ?\e,2n\e(B ?\e,2s\e(B ?\e,1X\e(B ?\e,1f\e(B ?\e,2r\e(B ?\e,2v\e(B ?\e,2u\e(B ?\e,1q\e(B
-;;    ?\e,1%\e(B ?\e,2a\e(B ?\e,2b\e(B ?\e,1$\e(B ?\e,1&\e(B ?\e,1g\e(B ?\e,1'\e(B ?\e,1p\e(B ?\e,1k\e(B ?\e,2i\e(B ?\e,2j\e(B ?\e,1)\e(B ?\e,1o\e(B ?\e,1-\e(B ?\e,18\e(B ?\e,1[\e(B
-;;    ?\e,2_\e(B ?\e,2|\e(B ?\e,10\e(B ?\e,1/\e(B ?\e,2t\e(B ?\e,1v\e(B ?\e,1=\e(B ?\e,2h\e(B ?\e,1W\e(B ?\e,1Q\e(B ?\e,2z\e(B ?\e,1{\e(B ?\e,1_\e(B ?\e,2}\e(B ?\e,2k\e(B 223
-;;    ?\e,1`\e(B ?\e,1a\e(B ?\e,1b\e(B ?\e,1c\e(B ?\e,1d\e(B ?\e,1U\e(B ?\e,1e\e(B 231 ?\e,1h\e(B ?\e,1i\e(B ?\e,1j\e(B ?\e,1(\e(B ?\e,1l\e(B ?\e,1m\e(B 238 ?\e,1n\e(B
-;;    ?\e,2G\e(B ?\e,2p\e(B ?\e,1r\e(B ?\e,1s\e(B ?\e,1t\e(B ?\e,1u\e(B 246 ?\e,2=\e(B ?\e,1x\e(B ?\e,1y\e(B ?\e,1z\e(B ?\e,1|\e(B 252 ?\e,2V\e(B ?\e,2(\e(B ?\e,1O\e(B]
-;;   "Vietnamese VPS decoding table.")
-;;
-;; (let ((table (make-translation-table-from-vector viet-vps-decode-table)))
-;;   (define-translation-table 'viet-vps-nonascii-translation-table table)
-;;   (define-translation-table 'viet-vps-encode-table
-;;     (char-table-extra-slot table 0)))
-
-(define-ccl-program ccl-decode-viscii
-  `(3
-    ((loop
-      (r0 = 0)
-      (read r1)
-      (translate-character viet-viscii-nonascii-translation-table r0 r1)
-      (write-multibyte-character r0 r1)
-      (repeat))))
-  "CCL program to decode VISCII 1.1")
-
-(define-ccl-program ccl-encode-viscii
-  `(1
-    ((loop
-      (read-multibyte-character r0 r1)
-      (translate-character viet-viscii-encode-table r0 r1)
-      (write-repeat r1))))
-  "CCL program to encode VISCII 1.1")
-
-(define-ccl-program ccl-encode-viscii-font
-  `(0
-    ;; In:  R0:vietnamese-viscii-lower/vietnamese-viscii-upper
-    ;;      R1:position code
-    ;; Out: R1:font code point
-    (translate-character viet-viscii-encode-table r0 r1))
-  "CCL program to encode Vietnamese chars to VISCII 1.1 font")
-
-(define-ccl-program ccl-decode-vscii
-  `(3
-    ((loop
-      (r0 = 0)
-      (read r1)
-      (translate-character viet-vscii-nonascii-translation-table r0 r1)
-      (write-multibyte-character r0 r1)
-      (repeat))))
-  "CCL program to decode VSCII-1.")
-
-(define-ccl-program ccl-encode-vscii
-  `(1
-    ((loop
-      (read-multibyte-character r0 r1)
-      (translate-character viet-vscii-encode-table r0 r1)
-      (write-repeat r1))))
-  "CCL program to encode VSCII-1.")
-
-(define-ccl-program ccl-encode-vscii-font
-  `(0
-    ;; In:  R0:vietnamese-viscii-lower/vietnamese-viscii-upper
-    ;;      R1:position code
-    ;; Out: R1:font code point
-    (translate-character viet-vscii-encode-table r0 r1))
-  "CCL program to encode Vietnamese chars to VSCII-1 font.")
-
-(define-ccl-program ccl-decode-tcvn
-  `(3
-    ((loop
-      (r0 = 0)
-      (read r1)
-      (translate-character viet-tcvn-nonascii-translation-table r0 r1)
-      (write-multibyte-character r0 r1)
-      (repeat))))
-  "CCL program to decode TCVN-5712.")
-
-(define-ccl-program ccl-encode-tcvn
-  `(1
-    ((loop
-      (read-multibyte-character r0 r1)
-      (translate-character viet-tcvn-encode-table r0 r1)
-      (write-repeat r1))))
-  "CCL program to encode TCVN-5712.")
-
-(define-ccl-program ccl-encode-tcvn-font
-  `(0
-    ;; In:  R0:vietnamese-viscii-lower/vietnamese-viscii-upper
-    ;;      R1:position code
-    ;; Out: R1:font code point
-    (translate-character viet-tcvn-encode-table r0 r1))
-  "CCL program to encode Vietnamese chars to TCVN-5712 font.")
-
-;; (define-ccl-program ccl-decode-vps
-;;   `(3
-;;     ((loop
-;;      (r0 = 0)
-;;      (read r1)
-;;      (translate-character viet-vps-nonascii-translation-table r0 r1)
-;;      (write-multibyte-character r0 r1)
-;;      (repeat))))
-;;   "CCL program to decode VPS.")
-;;
-;; (define-ccl-program ccl-encode-vps
-;;   `(1
-;;     ((loop
-;;      (read-multibyte-character r0 r1)
-;;      (translate-character viet-vps-encode-table r0 r1)
-;;      (write-repeat r1))))
-;;   "CCL program to encode VPS.")
-;;
-;; (define-ccl-program ccl-encode-vps-font
-;;   `(0
-;;     ;; In:  R0:vietnamese-viscii-lower/vietnamese-viscii-upper
-;;     ;;      R1:position code
-;;     ;; Out: R1:font code point
-;;     (translate-character viet-vps-encode-table r0 r1))
-;;   "CCL program to encode Vietnamese chars to VPS font.")
-
-(make-coding-system
- 'vietnamese-viscii 4 ?V
- "8-bit encoding for Vietnamese VISCII 1.1 (MIME:VISCII)"
- '(ccl-decode-viscii . ccl-encode-viscii)
- '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper)
-   (mime-charset . viscii)
-   (valid-codes (0 . 255))))
+(define-coding-system 'vietnamese-viscii
+  "8-bit encoding for Vietnamese VISCII 1.1 (MIME:VISCII)."
+  :coding-type 'charset
+  :mnemonic ?V
+  :charset-list '(viscii)
+  :mime-charset 'viscii
+  :suitable-for-file-name t)
 
 (define-coding-system-alias 'viscii 'vietnamese-viscii)
 
-(make-coding-system
- 'vietnamese-vscii 4 ?v
- "8-bit encoding for Vietnamese VSCII-1"
- '(ccl-decode-vscii . ccl-encode-vscii)
'((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper)
-   (valid-codes (0 . 255))))
+(define-coding-system 'vietnamese-vscii
+  "8-bit encoding for Vietnamese VSCII-1."
+  :coding-type 'charset
+  :mnemonic ?v
 :charset-list '(vscii)
+  :suitable-for-file-name t)
 
 (define-coding-system-alias 'vscii 'vietnamese-vscii)
 
-(make-coding-system
- 'vietnamese-tcvn 4 ?t
- "8-bit encoding for Vietnamese TCVN-5712"
- '(ccl-decode-tcvn . ccl-encode-tcvn)
- '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper)
-   (valid-codes (0 . 255))))
-
-(define-coding-system-alias 'tcvn 'vietnamese-tcvn)
-(define-coding-system-alias 'tcvn-5712 'vietnamese-tcvn)
-
 ;; (make-coding-system
 ;;  'vietnamese-vps 4 ?p
 ;;  "8-bit encoding for Vietnamese VPS"
 ;;
 ;; (define-coding-system-alias 'vps 'vietnamese-vps)
 
-(make-coding-system
- 'vietnamese-viqr 0 ?q
- "Vietnamese latin transcription (VIQR)"
- nil
- '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper)
-   (post-read-conversion . viqr-post-read-conversion)
-   (pre-write-conversion . viqr-pre-write-conversion)
-   (charset-origin-alist
-    (vietnamese-viscii-lower "VISCII" viet-encode-viscii-char)
-    (vietnamese-viscii-upper "VISCII" viet-encode-viscii-char))))
-
+(define-coding-system 'vietnamese-viqr
+  "Vietnamese latin transcription (VIQR)."
+  :coding-type 'utf-8
+  :mnemonic ?q
+  :charset-list '(ascii viscii)
+  :post-read-conversion 'viqr-post-read-conversion
+  :pre-write-conversion 'viqr-pre-write-conversion)
 
 (define-coding-system-alias 'viqr 'vietnamese-viqr)
 
-(setq font-ccl-encoder-alist
-      (cons '("viscii" . ccl-encode-viscii-font) font-ccl-encoder-alist))
-
-(setq font-ccl-encoder-alist
-      (cons '("vscii" . ccl-encode-vscii-font) font-ccl-encoder-alist))
-
-(setq font-ccl-encoder-alist
-      (cons '("tcvn" . ccl-encode-tcvn-font) font-ccl-encoder-alist))
-
 (set-language-info-alist
- "Vietnamese" `((charset vietnamese-viscii-lower vietnamese-viscii-upper)
-               (nonascii-translation
-                . ,(get 'viet-viscii-nonascii-translation-table
-                        'translation-table))
-               (coding-system vietnamese-viscii vietnamese-vscii vietnamese-tcvn
-                              vietnamese-viqr)
+ "Vietnamese" `((charset viscii)
+               (coding-system vietnamese-viscii vietnamese-vscii
+                               vietnamese-tcvn vietnamese-viqr windows-1258)
+               (nonascii-translation . viscii)
                (coding-priority vietnamese-viscii)
                (input-method . "vietnamese-viqr")
                (unibyte-display . vietnamese-viscii)
                (sample-text . "Vietnamese (Ti\e,1*\e(Bng Vi\e,1.\e(Bt)     Ch\e,1`\e(Bo b\e,1U\e(Bn")
                (documentation . "\
 For Vietnamese, Emacs uses special charsets internally.
-They can be decoded from and encoded to VISCII, VSCII, TCVN-5712, and
-VIQR.  VSCII is deprecated in favour of TCVN-5712.  Current setting
-puts higher priority to the coding system VISCII than TCVN-5712.  If
-you prefer TCVN-5712, please do: (prefer-coding-system 'vietnamese-tcvn).
-There are two Vietnamese input methods: VIQR and Telex, VIQR is the
-default setting.")
-               ))
+They can be decoded from and encoded to VISCII, VSCII, TCVN-5712, VIQR
+and windows-1258.  VSCII is deprecated in favour of TCVN-5712.  The
+Current setting gives higher priority to the coding system VISCII than
+TCVN-5712.  If you prefer TCVN-5712, please do: (prefer-coding-system
+'vietnamese-tcvn).  There are two Vietnamese input methods: VIQR and
+Telex, VIQR is the default setting.")))
+
+(define-coding-system 'windows-1258
+  "windows-1258 encoding for Vietnamese (MIME: WINDOWS-1258)"
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(windows-1258)
+  :mime-charset 'windows-1258)
+(define-coding-system-alias 'cp1258 'windows-1258)
+
+(define-coding-system 'vietnamese-tcvn
+  "8-bit encoding for Vietnamese TCVN-5712"
+  :coding-type 'charset
+  :mnemonic ?t
+  :charset-list '(tcvn-5712)
+  :suitable-for-file-name t)
+(define-coding-system-alias 'tcvn 'vietnamese-tcvn)
+(define-coding-system-alias 'tcvn-5712 'vietnamese-tcvn)
 
 (provide 'vietnamese)
 
index 8704a6d8ccbc7ce0f68b1bb42d60a511b35393e3..450c5f219f9c5faba7016f0136d838febfbdd53d 100644 (file)
@@ -4,7 +4,7 @@
 \f
 ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best
 ;;;;;;  5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5"
-;;;;;;  "play/5x5.el" (18088 55113))
+;;;;;;  "play/5x5.el" (18177 871))
 ;;; Generated autoloads from play/5x5.el
 
 (autoload '5x5 "5x5" "\
@@ -63,14 +63,14 @@ should return a grid vector array that is the new solution.
 
 ;;;***
 \f
-;;;### (autoloads nil "abbrev" "abbrev.el" (18212 46004))
+;;;### (autoloads nil "abbrev" "abbrev.el" (18231 31060))
 ;;; Generated autoloads from abbrev.el
 (put 'abbrev-mode 'safe-local-variable 'booleanp)
 
 ;;;***
 \f
 ;;;### (autoloads (list-one-abbrev-table) "abbrevlist" "abbrevlist.el"
-;;;;;;  (18088 55079))
+;;;;;;  (18177 854))
 ;;; Generated autoloads from abbrevlist.el
 
 (autoload 'list-one-abbrev-table "abbrevlist" "\
@@ -81,7 +81,7 @@ Display alphabetical listing of ABBREV-TABLE in buffer OUTPUT-BUFFER.
 ;;;***
 \f
 ;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el"
-;;;;;;  (18173 8195))
+;;;;;;  (18190 39683))
 ;;; Generated autoloads from progmodes/ada-mode.el
 
 (autoload 'ada-add-extensions "ada-mode" "\
@@ -142,7 +142,7 @@ If you use ada-xref.el:
 ;;;***
 \f
 ;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el"
-;;;;;;  (18088 55114))
+;;;;;;  (18177 871))
 ;;; Generated autoloads from progmodes/ada-stmt.el
 
 (autoload 'ada-header "ada-stmt" "\
@@ -153,7 +153,7 @@ Insert a descriptive header at the top of the file.
 ;;;***
 \f
 ;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el"
-;;;;;;  (18201 33327))
+;;;;;;  (18203 51790))
 ;;; Generated autoloads from progmodes/ada-xref.el
 
 (autoload 'ada-find-file "ada-xref" "\
@@ -167,8 +167,8 @@ Completion is available.
 ;;;### (autoloads (change-log-merge add-log-current-defun change-log-mode
 ;;;;;;  add-change-log-entry-other-window add-change-log-entry find-change-log
 ;;;;;;  prompt-for-change-log-name add-log-mailing-address add-log-full-name
-;;;;;;  add-log-current-defun-function) "add-log" "add-log.el" (18210
-;;;;;;  13714))
+;;;;;;  add-log-current-defun-function) "add-log" "add-log.el" (18213
+;;;;;;  1252))
 ;;; Generated autoloads from add-log.el
 
 (defvar add-log-current-defun-function nil "\
@@ -301,7 +301,7 @@ old-style time formats for entries are supported.
 \f
 ;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice
 ;;;;;;  ad-enable-advice ad-default-compilation-action ad-redefinition-action)
-;;;;;;  "advice" "emacs-lisp/advice.el" (18213 13926))
+;;;;;;  "advice" "emacs-lisp/advice.el" (18231 31064))
 ;;; Generated autoloads from emacs-lisp/advice.el
 
 (defvar ad-redefinition-action 'warn "\
@@ -429,7 +429,7 @@ See Info node `(elisp)Advising Functions' for comprehensive documentation.
 \f
 ;;;### (autoloads (align-newline-and-indent align-unhighlight-rule
 ;;;;;;  align-highlight-rule align-current align-entire align-regexp
-;;;;;;  align) "align" "align.el" (18088 55079))
+;;;;;;  align) "align" "align.el" (18177 854))
 ;;; Generated autoloads from align.el
 
 (autoload 'align "align" "\
@@ -519,9 +519,13 @@ A replacement function for `newline-and-indent', aligning as it goes.
 ;;;***
 \f
 ;;;### (autoloads (outlineify-sticky allout-mode) "allout" "allout.el"
-;;;;;;  (18187 36838))
+;;;;;;  (18231 31060))
 ;;; Generated autoloads from allout.el
 
+(put 'allout-use-hanging-indents 'safe-local-variable (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
+
+(put 'allout-reindent-bodies 'safe-local-variable '(lambda (x) (memq x '(nil t text force))))
+
 (put 'allout-show-bodies 'safe-local-variable (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
 
 (put 'allout-header-prefix 'safe-local-variable 'stringp)
@@ -544,10 +548,6 @@ A replacement function for `newline-and-indent', aligning as it goes.
 
 (put 'allout-presentation-padding 'safe-local-variable 'integerp)
 
-(put 'allout-use-hanging-indents 'safe-local-variable (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
-
-(put 'allout-reindent-bodies 'safe-local-variable '(lambda (x) (memq x '(nil t text force))))
-
 (put 'allout-layout 'safe-local-variable '(lambda (x) (or (numberp x) (listp x) (memq x '(: * + -)))))
 
 (put 'allout-passphrase-verifier-string 'safe-local-variable 'stringp)
@@ -826,7 +826,7 @@ setup for auto-startup.
 ;;;***
 \f
 ;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp"
-;;;;;;  "net/ange-ftp.el" (18203 37788))
+;;;;;;  "net/ange-ftp.el" (18213 1258))
 ;;; Generated autoloads from net/ange-ftp.el
 
 (defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir)
@@ -848,7 +848,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (animate-birthday-present animate-sequence animate-string)
-;;;;;;  "animate" "play/animate.el" (18088 55113))
+;;;;;;  "animate" "play/animate.el" (18177 871))
 ;;; Generated autoloads from play/animate.el
 
 (autoload 'animate-string "animate" "\
@@ -876,7 +876,7 @@ You can specify the one's name by NAME; the default value is \"Sarah\".
 ;;;***
 \f
 ;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on)
-;;;;;;  "ansi-color" "ansi-color.el" (18169 11930))
+;;;;;;  "ansi-color" "ansi-color.el" (18190 39673))
 ;;; Generated autoloads from ansi-color.el
 
 (autoload 'ansi-color-for-comint-mode-on "ansi-color" "\
@@ -902,7 +902,7 @@ This is a good function to put in `comint-output-filter-functions'.
 ;;;***
 \f
 ;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules)
-;;;;;;  "antlr-mode" "progmodes/antlr-mode.el" (18203 37788))
+;;;;;;  "antlr-mode" "progmodes/antlr-mode.el" (18213 1259))
 ;;; Generated autoloads from progmodes/antlr-mode.el
 
 (autoload 'antlr-show-makefile-rules "antlr-mode" "\
@@ -941,7 +941,7 @@ Used in `antlr-mode'.  Also a useful function in `java-mode-hook'.
 ;;;### (autoloads (appt-activate appt-make-list appt-delete appt-add
 ;;;;;;  appt-display-diary appt-display-duration appt-display-mode-line
 ;;;;;;  appt-msg-window appt-visible appt-audible appt-message-warning-time
-;;;;;;  appt-issue-message) "appt" "calendar/appt.el" (18090 40233))
+;;;;;;  appt-issue-message) "appt" "calendar/appt.el" (18177 855))
 ;;; Generated autoloads from calendar/appt.el
 
 (defvar appt-issue-message t "\
@@ -1029,7 +1029,7 @@ ARG is positive, otherwise off.
 \f
 ;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property
 ;;;;;;  apropos-command apropos-variable apropos-read-pattern) "apropos"
-;;;;;;  "apropos.el" (18088 55080))
+;;;;;;  "apropos.el" (18231 31060))
 ;;; Generated autoloads from apropos.el
 
 (autoload 'apropos-read-pattern "apropos" "\
@@ -1125,8 +1125,8 @@ Returns list of symbols and documentation found.
 
 ;;;***
 \f
-;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (18163
-;;;;;;  2859))
+;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (18190
+;;;;;;  39673))
 ;;; Generated autoloads from arc-mode.el
 
 (autoload 'archive-mode "arc-mode" "\
@@ -1146,7 +1146,7 @@ archive.
 
 ;;;***
 \f
-;;;### (autoloads (array-mode) "array" "array.el" (18088 55080))
+;;;### (autoloads (array-mode) "array" "array.el" (18177 855))
 ;;; Generated autoloads from array.el
 
 (autoload 'array-mode "array" "\
@@ -1217,8 +1217,8 @@ Entering array mode calls the function `array-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (18200
-;;;;;;  51267))
+;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (18203
+;;;;;;  51792))
 ;;; Generated autoloads from textmodes/artist.el
 
 (autoload 'artist-mode "artist" "\
@@ -1423,8 +1423,8 @@ Keymap summary
 
 ;;;***
 \f
-;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (18088
-;;;;;;  55114))
+;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (18177
+;;;;;;  872))
 ;;; Generated autoloads from progmodes/asm-mode.el
 
 (autoload 'asm-mode "asm-mode" "\
@@ -1451,8 +1451,8 @@ Special commands:
 
 ;;;***
 \f
-;;;### (autoloads (assistant) "assistant" "gnus/assistant.el" (18212
-;;;;;;  21478))
+;;;### (autoloads (assistant) "assistant" "gnus/assistant.el" (18230
+;;;;;;  21280))
 ;;; Generated autoloads from gnus/assistant.el
 
 (autoload 'assistant "assistant" "\
@@ -1463,7 +1463,7 @@ Assist setting up Emacs based on FILE.
 ;;;***
 \f
 ;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el"
-;;;;;;  (18088 55080))
+;;;;;;  (18177 855))
 ;;; Generated autoloads from autoarg.el
 
 (defvar autoarg-mode nil "\
@@ -1517,7 +1517,7 @@ etc. to supply digit arguments.
 ;;;***
 \f
 ;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el"
-;;;;;;  (18147 59473))
+;;;;;;  (18190 39683))
 ;;; Generated autoloads from progmodes/autoconf.el
 
 (autoload 'autoconf-mode "autoconf" "\
@@ -1528,7 +1528,7 @@ Major mode for editing Autoconf configure.in files.
 ;;;***
 \f
 ;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert)
-;;;;;;  "autoinsert" "autoinsert.el" (18183 58476))
+;;;;;;  "autoinsert" "autoinsert.el" (18190 39673))
 ;;; Generated autoloads from autoinsert.el
 
 (autoload 'auto-insert "autoinsert" "\
@@ -1567,7 +1567,7 @@ insert a template for the file depending on the mode of the buffer.
 \f
 ;;;### (autoloads (batch-update-autoloads update-directory-autoloads
 ;;;;;;  update-file-autoloads) "autoload" "emacs-lisp/autoload.el"
-;;;;;;  (18120 34750))
+;;;;;;  (18177 857))
 ;;; Generated autoloads from emacs-lisp/autoload.el
 
 (put 'generated-autoload-file 'safe-local-variable 'stringp)
@@ -1604,7 +1604,7 @@ Calls `update-directory-autoloads' on the command line arguments.
 \f
 ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode
 ;;;;;;  auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode)
-;;;;;;  "autorevert" "autorevert.el" (18177 7730))
+;;;;;;  "autorevert" "autorevert.el" (18190 39673))
 ;;; Generated autoloads from autorevert.el
 
 (autoload 'auto-revert-mode "autorevert" "\
@@ -1673,7 +1673,7 @@ Use `auto-revert-mode' to revert a particular buffer.
 ;;;***
 \f
 ;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid"
-;;;;;;  "avoid.el" (18088 55080))
+;;;;;;  "avoid.el" (18177 855))
 ;;; Generated autoloads from avoid.el
 
 (defvar mouse-avoidance-mode nil "\
@@ -1714,7 +1714,7 @@ definition of \"random distance\".)
 ;;;***
 \f
 ;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el"
-;;;;;;  (18130 62047))
+;;;;;;  (18177 857))
 ;;; Generated autoloads from emacs-lisp/backquote.el
 
 (autoload 'backquote "backquote" "\
@@ -1739,7 +1739,7 @@ Vectors work just like lists.  Nested backquotes are permitted.
 ;;;***
 \f
 ;;;### (autoloads (display-battery-mode battery) "battery" "battery.el"
-;;;;;;  (18088 55080))
+;;;;;;  (18177 855))
 ;;; Generated autoloads from battery.el
  (put 'battery-mode-line-string 'risky-local-variable t)
 
@@ -1771,7 +1771,7 @@ seconds.
 ;;;***
 \f
 ;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run)
-;;;;;;  "benchmark" "emacs-lisp/benchmark.el" (18088 55094))
+;;;;;;  "benchmark" "emacs-lisp/benchmark.el" (18177 857))
 ;;; Generated autoloads from emacs-lisp/benchmark.el
 
 (autoload 'benchmark-run "benchmark" "\
@@ -1803,8 +1803,8 @@ non-interactive use see also `benchmark-run' and
 
 ;;;***
 \f
-;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (18088
-;;;;;;  55119))
+;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (18177
+;;;;;;  875))
 ;;; Generated autoloads from textmodes/bibtex.el
 
 (autoload 'bibtex-mode "bibtex" "\
@@ -1865,7 +1865,7 @@ if that value is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (bibtex-style-mode) "bibtex-style" "textmodes/bibtex-style.el"
-;;;;;;  (18157 34340))
+;;;;;;  (18190 39685))
 ;;; Generated autoloads from textmodes/bibtex-style.el
  (add-to-list 'auto-mode-alist '("\\.bst\\'" . bibtex-style-mode))
 
@@ -1878,7 +1878,7 @@ Major mode for editing BibTeX style files.
 \f
 ;;;### (autoloads (binhex-decode-region binhex-decode-region-external
 ;;;;;;  binhex-decode-region-internal) "binhex" "gnus/binhex.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/binhex.el
 
 (defconst binhex-begin-line "^:...............................................................$")
@@ -1901,8 +1901,8 @@ Binhex decode region between START and END.
 
 ;;;***
 \f
-;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (18203
-;;;;;;  37788))
+;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (18213
+;;;;;;  1259))
 ;;; Generated autoloads from play/blackbox.el
 
 (autoload 'blackbox "blackbox" "\
@@ -2024,8 +2024,8 @@ a reflection.
 ;;;### (autoloads (bookmark-bmenu-list bookmark-load bookmark-save
 ;;;;;;  bookmark-write bookmark-delete bookmark-insert bookmark-rename
 ;;;;;;  bookmark-insert-location bookmark-relocate bookmark-jump-other-window
-;;;;;;  bookmark-jump bookmark-set) "bookmark" "bookmark.el" (18169
-;;;;;;  11930))
+;;;;;;  bookmark-jump bookmark-set) "bookmark" "bookmark.el" (18190
+;;;;;;  39673))
 ;;; Generated autoloads from bookmark.el
  (define-key ctl-x-map "rb" 'bookmark-jump)
  (define-key ctl-x-map "rm" 'bookmark-set)
@@ -2222,7 +2222,7 @@ deletion, or > if it is flagged for displaying.
 ;;;;;;  browse-url-of-dired-file browse-url-of-buffer browse-url-of-file
 ;;;;;;  browse-url-url-at-point browse-url-galeon-program browse-url-firefox-program
 ;;;;;;  browse-url-browser-function) "browse-url" "net/browse-url.el"
-;;;;;;  (18214 4479))
+;;;;;;  (18231 31069))
 ;;; Generated autoloads from net/browse-url.el
 
 (defvar browse-url-browser-function (cond ((memq system-type '(windows-nt ms-dos cygwin)) 'browse-url-default-windows-browser) ((memq system-type '(darwin)) 'browse-url-default-macosx-browser) (t 'browse-url-default-browser)) "\
@@ -2552,8 +2552,8 @@ from `browse-url-elinks-wrapper'.
 
 ;;;***
 \f
-;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (18088
-;;;;;;  55113))
+;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (18177
+;;;;;;  871))
 ;;; Generated autoloads from play/bruce.el
 
 (autoload 'bruce "bruce" "\
@@ -2569,7 +2569,7 @@ Return a vector containing the lines from `bruce-phrases-file'.
 ;;;***
 \f
 ;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next)
-;;;;;;  "bs" "bs.el" (18211 32385))
+;;;;;;  "bs" "bs.el" (18213 1252))
 ;;; Generated autoloads from bs.el
 
 (autoload 'bs-cycle-next "bs" "\
@@ -2609,7 +2609,7 @@ name of buffer configuration.
 
 ;;;***
 \f
-;;;### (autoloads (bubbles) "bubbles" "play/bubbles.el" (18157 34340))
+;;;### (autoloads (bubbles) "bubbles" "play/bubbles.el" (18190 39683))
 ;;; Generated autoloads from play/bubbles.el
 
 (autoload 'bubbles "bubbles" "\
@@ -2620,8 +2620,8 @@ Play Bubbles game.
 ;;;***
 \f
 ;;;### (autoloads (insert-text-button make-text-button insert-button
-;;;;;;  make-button define-button-type) "button" "button.el" (18133
-;;;;;;  60495))
+;;;;;;  make-button define-button-type) "button" "button.el" (18190
+;;;;;;  39674))
 ;;; Generated autoloads from button.el
 
 (defvar button-map (let ((map (make-sparse-keymap))) (define-key map "\r" 'push-button) (define-key map [mouse-2] 'push-button) map) "\
@@ -2710,7 +2710,7 @@ Also see `make-text-button'.
 ;;;;;;  compile-defun byte-compile-file byte-recompile-directory
 ;;;;;;  byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning
 ;;;;;;  byte-compile-warnings-safe-p) "bytecomp" "emacs-lisp/bytecomp.el"
-;;;;;;  (18213 13926))
+;;;;;;  (18231 31064))
 ;;; Generated autoloads from emacs-lisp/bytecomp.el
 (put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
 (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp)
@@ -2726,6 +2726,8 @@ Not documented
 Change `byte-compile-warnings' to disable WARNING.
 If `byte-compile-warnings' is t, set it to `(not WARNING)'.
 Otherwise, if the first element is `not', add WARNING, else remove it.
+Normally you should let-bind `byte-compile-warnings' before calling this,
+else the global value will be modified.
 
 \(fn WARNING)" nil nil)
 
@@ -2733,6 +2735,8 @@ Otherwise, if the first element is `not', add WARNING, else remove it.
 Change `byte-compile-warnings' to enable WARNING.
 If `byte-compile-warnings' is `t', do nothing.  Otherwise, if the
 first element is `not', remove WARNING, else add it.
+Normally you should let-bind `byte-compile-warnings' before calling this,
+else the global value will be modified.
 
 \(fn WARNING)" nil nil)
 
@@ -2831,7 +2835,7 @@ and corresponding effects.
 
 ;;;***
 \f
-;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (18088 55093))
+;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (18177 856))
 ;;; Generated autoloads from calendar/cal-dst.el
 
 (put 'calendar-daylight-savings-starts 'risky-local-variable t)
@@ -2841,7 +2845,7 @@ and corresponding effects.
 ;;;***
 \f
 ;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el"
-;;;;;;  (18203 38492))
+;;;;;;  (18190 39681))
 ;;; Generated autoloads from calendar/cal-hebrew.el
 
 (autoload 'list-yahrzeit-dates "cal-hebrew" "\
@@ -2856,7 +2860,7 @@ from the cursor position.
 ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle
 ;;;;;;  calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc
 ;;;;;;  full-calc calc calc-dispatch calc-settings-file) "calc" "calc/calc.el"
-;;;;;;  (18214 4479))
+;;;;;;  (18231 31064))
 ;;; Generated autoloads from calc/calc.el
 
 (defvar calc-settings-file (convert-standard-filename "~/.calc.el") "\
@@ -2934,8 +2938,8 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads (calculator) "calculator" "calculator.el" (18203
-;;;;;;  37786))
+;;;### (autoloads (calculator) "calculator" "calculator.el" (18213
+;;;;;;  1252))
 ;;; Generated autoloads from calculator.el
 
 (autoload 'calculator "calculator" "\
@@ -2963,7 +2967,7 @@ See the documentation for `calculator-mode' for more information.
 ;;;;;;  mark-holidays-in-calendar view-calendar-holidays-initially
 ;;;;;;  calendar-remove-frame-by-deleting mark-diary-entries-in-calendar
 ;;;;;;  view-diary-entries-initially calendar-offset) "calendar"
-;;;;;;  "calendar/calendar.el" (18157 34340))
+;;;;;;  "calendar/calendar.el" (18190 39681))
 ;;; Generated autoloads from calendar/calendar.el
 
 (defvar calendar-offset 0 "\
@@ -3536,7 +3540,7 @@ movement commands will not work correctly.")
 ;;;***
 \f
 ;;;### (autoloads (canlock-verify canlock-insert-header) "canlock"
-;;;;;;  "gnus/canlock.el" (18088 55101))
+;;;;;;  "gnus/canlock.el" (18177 860))
 ;;; Generated autoloads from gnus/canlock.el
 
 (autoload 'canlock-insert-header "canlock" "\
@@ -3553,15 +3557,51 @@ it fails.
 
 ;;;***
 \f
-;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (18088
-;;;;;;  55114))
+;;;### (autoloads (capitalized-words-mode) "cap-words" "progmodes/cap-words.el"
+;;;;;;  (17928 6535))
+;;; Generated autoloads from progmodes/cap-words.el
+
+(autoload 'capitalized-words-mode "cap-words" "\
+Toggle Capitalized- Words mode.
+
+In this minor mode, a word boundary occurs immediately before an
+uppercase letter in a symbol.  This is in addition to all the normal
+boundaries given by the syntax and category tables.  There is no
+restriction to ASCII.
+
+E.g. the beginning of words in the following identifier are as marked:
+
+  capitalizedWorDD
+  ^          ^  ^^
+
+Note that these word boundaries only apply for word motion and
+marking commands such as \\[forward-word].  This mode does not affect word
+boundaries in found by regexp matching (`\\>', `\\w' &c).
+
+This style of identifiers is common in environments like Java ones,
+where underscores aren't trendy enough.  Capitalization rules are
+sometimes part of the language, e.g. Haskell, which may thus encourage
+such a style.  It is appropriate to add `capitalized-words-mode' to
+the mode hook for programming langauge modes in which you encounter
+variables like this, e.g. `java-mode-hook'.  It's unlikely to cause
+trouble if such identifiers aren't used.
+
+See also `glasses-mode' and `studlify-word'.
+Obsoletes `c-forward-into-nomenclature'.
+
+\(fn &optional ARG)" t nil)
+
+;;;***
+\f
+;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (18177
+;;;;;;  872))
 ;;; Generated autoloads from progmodes/cc-compat.el
 (put 'c-indent-level 'safe-local-variable 'integerp)
 
 ;;;***
 \f
 ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
-;;;;;;  (18203 37789))
+;;;;;;  (18213 1259))
 ;;; Generated autoloads from progmodes/cc-engine.el
 
 (autoload 'c-guess-basic-syntax "cc-engine" "\
@@ -3573,7 +3613,7 @@ Return the syntactic context of the current line.
 \f
 ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode
 ;;;;;;  c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
-;;;;;;  (18191 7159))
+;;;;;;  (18194 36640))
 ;;; Generated autoloads from progmodes/cc-mode.el
 
 (autoload 'c-initialize-cc-mode "cc-mode" "\
@@ -3731,7 +3771,7 @@ Key bindings:
 ;;;***
 \f
 ;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles"
-;;;;;;  "progmodes/cc-styles.el" (18192 17587))
+;;;;;;  "progmodes/cc-styles.el" (18194 36640))
 ;;; Generated autoloads from progmodes/cc-styles.el
 
 (autoload 'c-set-style "cc-styles" "\
@@ -3782,14 +3822,14 @@ and exists only for compatibility reasons.
 
 ;;;***
 \f
-;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (18088
-;;;;;;  55115))
+;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (18177
+;;;;;;  872))
 ;;; Generated autoloads from progmodes/cc-subword.el
  (autoload 'c-subword-mode "cc-subword" "Mode enabling subword movement and editing keys." t)
 
 ;;;***
 \f
-;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (18120 34752))
+;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (18177 872))
 ;;; Generated autoloads from progmodes/cc-vars.el
 (put 'c-basic-offset 'safe-local-variable 'integerp)
 (put 'c-backslash-column 'safe-local-variable 'integerp)
@@ -3799,7 +3839,7 @@ and exists only for compatibility reasons.
 \f
 ;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program
 ;;;;;;  declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el"
-;;;;;;  (18088 55107))
+;;;;;;  (18177 864))
 ;;; Generated autoloads from international/ccl.el
 
 (autoload 'ccl-compile "ccl" "\
@@ -4058,7 +4098,7 @@ See the documentation of `define-ccl-program' for the detail of CCL program.
 ;;;***
 \f
 ;;;### (autoloads (cfengine-mode) "cfengine" "progmodes/cfengine.el"
-;;;;;;  (18088 55115))
+;;;;;;  (18177 872))
 ;;; Generated autoloads from progmodes/cfengine.el
 
 (autoload 'cfengine-mode "cfengine" "\
@@ -4080,7 +4120,7 @@ to the action header.
 ;;;;;;  checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer
 ;;;;;;  checkdoc-eval-current-buffer checkdoc-message-interactive
 ;;;;;;  checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el"
-;;;;;;  (18203 37787))
+;;;;;;  (18213 1258))
 ;;; Generated autoloads from emacs-lisp/checkdoc.el
 (put 'checkdoc-force-docstrings-flag 'safe-local-variable 'booleanp)
 (put 'checkdoc-permit-comma-termination-flag 'safe-local-variable 'booleanp)
@@ -4265,9 +4305,9 @@ checking of documentation strings.
 
 ;;;***
 \f
-;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer
-;;;;;;  decode-hz-region) "china-util" "language/china-util.el" (18088
-;;;;;;  55108))
+;;;### (autoloads (pre-write-encode-hz post-read-decode-hz encode-hz-buffer
+;;;;;;  encode-hz-region decode-hz-buffer decode-hz-region) "china-util"
+;;;;;;  "language/china-util.el" (18177 866))
 ;;; Generated autoloads from language/china-util.el
 
 (autoload 'decode-hz-region "china-util" "\
@@ -4292,10 +4332,20 @@ Encode the text in the current buffer to HZ.
 
 \(fn)" t nil)
 
+(autoload 'post-read-decode-hz "china-util" "\
+Not documented
+
+\(fn LEN)" nil nil)
+
+(autoload 'pre-write-encode-hz "china-util" "\
+Not documented
+
+\(fn FROM TO)" nil nil)
+
 ;;;***
 \f
 ;;;### (autoloads (command-history list-command-history repeat-matching-complex-command)
-;;;;;;  "chistory" "chistory.el" (18088 55080))
+;;;;;;  "chistory" "chistory.el" (18177 856))
 ;;; Generated autoloads from chistory.el
 
 (autoload 'repeat-matching-complex-command "chistory" "\
@@ -4334,7 +4384,7 @@ and runs the normal hook `command-history-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (18213 13926))
+;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (18231 31065))
 ;;; Generated autoloads from emacs-lisp/cl.el
 
 (defvar custom-print-functions nil "\
@@ -4350,7 +4400,7 @@ a future Emacs interpreter will be able to use it.")
 ;;;***
 \f
 ;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el"
-;;;;;;  (18088 55095))
+;;;;;;  (18177 857))
 ;;; Generated autoloads from emacs-lisp/cl-indent.el
 
 (autoload 'common-lisp-indent-function "cl-indent" "\
@@ -4361,7 +4411,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el"
-;;;;;;  (18088 55115))
+;;;;;;  (18177 872))
 ;;; Generated autoloads from progmodes/cmacexp.el
 
 (autoload 'c-macro-expand "cmacexp" "\
@@ -4381,8 +4431,8 @@ For use inside Lisp programs, see also `c-macro-expansion'.
 
 ;;;***
 \f
-;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (18088
-;;;;;;  55080))
+;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (18177
+;;;;;;  856))
 ;;; Generated autoloads from cmuscheme.el
 
 (autoload 'run-scheme "cmuscheme" "\
@@ -4403,128 +4453,21 @@ is run).
 
 ;;;***
 \f
-;;;### (autoloads (cp-make-coding-system) "code-pages" "international/code-pages.el"
-;;;;;;  (18088 55107))
-;;; Generated autoloads from international/code-pages.el
-
-(autoload 'cp-make-coding-system "code-pages" "\
-Make coding system NAME for and 8-bit, extended-ASCII character set.
-V is a 128-long vector of characters to translate the upper half of
-the character set.  DOC-STRING and MNEMONIC are used as the
-corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
-?* is used.
-Return an updated `non-iso-charset-alist'.
-
-\(fn NAME V &optional DOC-STRING MNEMONIC)" nil (quote macro))
-(autoload-coding-system 'cp437 '(require 'code-pages))
-(autoload-coding-system 'cp737 '(require 'code-pages))
-(autoload-coding-system 'cp775 '(require 'code-pages))
-(autoload-coding-system 'cp850 '(require 'code-pages))
-(autoload-coding-system 'cp851 '(require 'code-pages))
-(autoload-coding-system 'cp852 '(require 'code-pages))
-(autoload-coding-system 'cp855 '(require 'code-pages))
-(autoload-coding-system 'cp857 '(require 'code-pages))
-(autoload-coding-system 'cp858 '(require 'code-pages))
-(autoload-coding-system 'cp860 '(require 'code-pages))
-(autoload-coding-system 'cp861 '(require 'code-pages))
-(autoload-coding-system 'cp862 '(require 'code-pages))
-(autoload-coding-system 'cp863 '(require 'code-pages))
-(autoload-coding-system 'cp864 '(require 'code-pages))
-(autoload-coding-system 'cp865 '(require 'code-pages))
-(autoload-coding-system 'cp866 '(require 'code-pages))
-(autoload-coding-system 'cp869 '(require 'code-pages))
-(autoload-coding-system 'cp874 '(require 'code-pages))
-(autoload-coding-system 'windows-1250 '(require 'code-pages))
-(autoload-coding-system 'cp1250 '(require 'code-pages))
-(autoload-coding-system 'windows-1253 '(require 'code-pages))
-(autoload-coding-system 'cp1253 '(require 'code-pages))
-(autoload-coding-system 'windows-1254 '(require 'code-pages))
-(autoload-coding-system 'cp1254 '(require 'code-pages))
-(autoload-coding-system 'windows-1255 '(require 'code-pages))
-(autoload-coding-system 'cp1255 '(require 'code-pages))
-(autoload-coding-system 'windows-1256 '(require 'code-pages))
-(autoload-coding-system 'cp1256 '(require 'code-pages))
-(autoload-coding-system 'windows-1257 '(require 'code-pages))
-(autoload-coding-system 'cp1257 '(require 'code-pages))
-(autoload-coding-system 'windows-1258 '(require 'code-pages))
-(autoload-coding-system 'cp1258 '(require 'code-pages))
-(autoload-coding-system 'next '(require 'code-pages))
-(autoload-coding-system 'koi8-t '(require 'code-pages))
-(autoload-coding-system 'iso-8859-16 '(require 'code-pages))
-(autoload-coding-system 'iso-8859-6 '(require 'code-pages))
-(autoload-coding-system 'iso-8859-10 '(require 'code-pages))
-(autoload-coding-system 'iso-8859-13 '(require 'code-pages))
-(autoload-coding-system 'georgian-ps '(require 'code-pages))
-(autoload-coding-system 'cp720 '(require 'code-pages))
-(autoload-coding-system 'cp1125 '(require 'code-pages))
-(autoload-coding-system 'mik '(require 'code-pages))
-(autoload-coding-system 'pt154 '(require 'code-pages))
-(autoload-coding-system 'iso-8859-11 '(require 'code-pages))
-
-;;;***
-\f
-;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage
-;;;;;;  cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage)
-;;;;;;  "codepage" "international/codepage.el" (18088 55107))
+;;;### (autoloads (codepage-setup) "codepage" "international/codepage.el"
+;;;;;;  (18177 864))
 ;;; Generated autoloads from international/codepage.el
 
-(autoload 'cp-make-coding-systems-for-codepage "codepage" "\
-Create a coding system to convert IBM CODEPAGE into charset ISO-NAME
-whose first character is at offset OFFSET from the beginning of 8-bit
-ASCII table.
-
-The created coding system has the usual 3 subsidiary systems: for Unix-,
-DOS- and Mac-style EOL conversion.  However, unlike built-in coding
-systems, the Mac-style EOL conversion is currently not supported by the
-decoder and encoder created by this function.
-
-\(fn CODEPAGE ISO-NAME OFFSET)" nil nil)
-
-(autoload 'cp-charset-for-codepage "codepage" "\
-Return the charset for which there is a translation table to DOS CODEPAGE.
-CODEPAGE must be the name of a DOS codepage, a string.
-
-\(fn CODEPAGE)" nil nil)
-
-(autoload 'cp-language-for-codepage "codepage" "\
-Return the name of the MULE language environment for CODEPAGE.
-CODEPAGE must be the name of a DOS codepage, a string.
-
-\(fn CODEPAGE)" nil nil)
-
-(autoload 'cp-offset-for-codepage "codepage" "\
-Return the offset to be used in setting up coding systems for CODEPAGE.
-CODEPAGE must be the name of a DOS codepage, a string.
-
-\(fn CODEPAGE)" nil nil)
-
-(autoload 'cp-supported-codepages "codepage" "\
-Return an alist of supported codepages.
-
-Each association in the alist has the form (NNN . CHARSET), where NNN is the
-codepage number, and CHARSET is the MULE charset which is the closest match
-for the character set supported by that codepage.
-
-A codepage NNN is supported if a variable called `cpNNN-decode-table' exists,
-is a vector, and has a charset property.
-
-\(fn)" nil nil)
-
 (autoload 'codepage-setup "codepage" "\
-Create a coding system cpCODEPAGE to support the IBM codepage CODEPAGE.
-
-These coding systems are meant for encoding and decoding 8-bit non-ASCII
-characters used by the IBM codepages, typically in conjunction with files
-read/written by MS-DOS software, or for display on the MS-DOS terminal.
+Obsolete.  All coding systems are set up initially.
 
-\(fn CODEPAGE)" t nil)
+\(fn &optional CODEPAGE)" t nil)
 
 ;;;***
 \f
 ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list
 ;;;;;;  comint-redirect-send-command-to-process comint-redirect-send-command
 ;;;;;;  comint-run make-comint make-comint-in-buffer) "comint" "comint.el"
-;;;;;;  (18208 48750))
+;;;;;;  (18213 1253))
 ;;; Generated autoloads from comint.el
 
 (defvar comint-output-filter-functions '(comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\
@@ -4614,8 +4557,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use.
 
 ;;;***
 \f
-;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (18088
-;;;;;;  55080))
+;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (18177
+;;;;;;  856))
 ;;; Generated autoloads from compare-w.el
 
 (autoload 'compare-windows "compare-w" "\
@@ -4652,7 +4595,7 @@ on third call it again advances points to the next difference and so on.
 ;;;;;;  compilation-shell-minor-mode compilation-mode compilation-start
 ;;;;;;  compile compilation-disable-input compile-command compilation-search-path
 ;;;;;;  compilation-ask-about-save compilation-window-height compilation-mode-hook)
-;;;;;;  "compile" "progmodes/compile.el" (18202 4003))
+;;;;;;  "compile" "progmodes/compile.el" (18213 1259))
 ;;; Generated autoloads from progmodes/compile.el
 
 (defvar compilation-mode-hook nil "\
@@ -4820,7 +4763,7 @@ This is the value of `next-error-function' in Compilation buffers.
 ;;;***
 \f
 ;;;### (autoloads (partial-completion-mode) "complete" "complete.el"
-;;;;;;  (18204 59927))
+;;;;;;  (18213 1253))
 ;;; Generated autoloads from complete.el
 
 (defvar partial-completion-mode nil "\
@@ -4862,7 +4805,7 @@ second TAB brings up the `*Completions*' buffer.
 ;;;***
 \f
 ;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el"
-;;;;;;  (18169 11930))
+;;;;;;  (18190 39674))
 ;;; Generated autoloads from completion.el
 
 (defvar dynamic-completion-mode nil "\
@@ -4881,51 +4824,11 @@ Enable dynamic word-completion.
 
 ;;;***
 \f
-;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after
-;;;;;;  find-composition compose-chars decompose-string compose-string
-;;;;;;  decompose-region compose-region encode-composition-rule)
-;;;;;;  "composite" "composite.el" (18088 55081))
+;;;### (autoloads (global-auto-composition-mode auto-composition-mode
+;;;;;;  encode-composition-rule) "composite" "composite.el" (18177
+;;;;;;  856))
 ;;; Generated autoloads from composite.el
 
-(defconst reference-point-alist '((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5)) "\
-Alist of symbols vs integer codes of glyph reference points.
-A glyph reference point symbol is to be used to specify a composition
-rule in COMPONENTS argument to such functions as `compose-region' and
-`make-composition'.
-
-Meanings of glyph reference point codes are as follows:
-
-    0----1----2 <---- ascent   0:tl or top-left
-    |         |                        1:tc or top-center
-    |         |                        2:tr or top-right
-    |         |                        3:Bl or base-left     9:cl or center-left
-    9   10   11 <---- center   4:Bc or base-center  10:cc or center-center
-    |         |                        5:Br or base-right   11:cr or center-right
-  --3----4----5-- <-- baseline 6:bl or bottom-left
-    |         |                        7:bc or bottom-center
-    6----7----8 <---- descent  8:br or bottom-right
-
-Glyph reference point symbols are to be used to specify composition
-rule of the form (GLOBAL-REF-POINT . NEW-REF-POINT), where
-GLOBAL-REF-POINT is a reference point in the overall glyphs already
-composed, and NEW-REF-POINT is a reference point in the new glyph to
-be added.
-
-For instance, if GLOBAL-REF-POINT is `br' (bottom-right) and
-NEW-REF-POINT is `tc' (top-center), the overall glyph is updated as
-follows (the point `*' corresponds to both reference points):
-
-    +-------+--+ <--- new ascent
-    |       |  |
-    | global|  |
-    | glyph |  |
- -- |       |  |-- <--- baseline (doesn't change)
-    +----+--*--+
-    |    | new |
-    |    |glyph|
-    +----+-----+ <--- new descent
-")
-
 (autoload 'encode-composition-rule "composite" "\
 Encode composition rule RULE into an integer value.
 RULE is a cons of global and new reference point symbols
@@ -4933,180 +4836,43 @@ RULE is a cons of global and new reference point symbols
 
 \(fn RULE)" nil nil)
 
-(autoload 'compose-region "composite" "\
-Compose characters in the current region.
-
-Characters are composed relatively, i.e. composed by overstricking or
-stacking depending on ascent, descent and other properties.
-
-When called from a program, expects these four arguments.
-
-First two arguments START and END are positions (integers or markers)
-specifying the region.
-
-Optional 3rd argument COMPONENTS, if non-nil, is a character or a
-sequence (vector, list, or string) of integers.  In this case,
-characters are composed not relatively but according to COMPONENTS.
-
-If it is a character, it is an alternate character to display instead
-of the text in the region.
-
-If it is a string, the elements are alternate characters.
-
-If it is a vector or list, it is a sequence of alternate characters and
-composition rules, where (2N)th elements are characters and (2N+1)th
-elements are composition rules to specify how to compose (2N+2)th
-elements with previously composed N glyphs.
-
-A composition rule is a cons of global and new glyph reference point
-symbols.  See the documentation of `reference-point-alist' for more
-detail.
-
-Optional 4th argument MODIFICATION-FUNC is a function to call to
-adjust the composition when it gets invalid because of a change of
-text in the composition.
-
-\(fn START END &optional COMPONENTS MODIFICATION-FUNC)" t nil)
-
-(autoload 'decompose-region "composite" "\
-Decompose text in the current region.
-
-When called from a program, expects two arguments,
-positions (integers or markers) specifying the region.
-
-\(fn START END)" t nil)
-
-(autoload 'compose-string "composite" "\
-Compose characters in string STRING.
-
-The return value is STRING where `composition' property is put on all
-the characters in it.
-
-Optional 2nd and 3rd arguments START and END specify the range of
-STRING to be composed.  They default to the beginning and the end of
-STRING respectively.
-
-Optional 4th argument COMPONENTS, if non-nil, is a character or a
-sequence (vector, list, or string) of integers.  See the function
-`compose-region' for more detail.
-
-Optional 5th argument MODIFICATION-FUNC is a function to call to
-adjust the composition when it gets invalid because of a change of
-text in the composition.
-
-\(fn STRING &optional START END COMPONENTS MODIFICATION-FUNC)" nil nil)
-
-(autoload 'decompose-string "composite" "\
-Return STRING where `composition' property is removed.
-
-\(fn STRING)" nil nil)
-
-(autoload 'compose-chars "composite" "\
-Return a string from arguments in which all characters are composed.
-For relative composition, arguments are characters.
-For rule-based composition, Mth (where M is odd) arguments are
-characters, and Nth (where N is even) arguments are composition rules.
-A composition rule is a cons of glyph reference points of the form
-\(GLOBAL-REF-POINT . NEW-REF-POINT).  See the documentation of
-`reference-point-alist' for more detail.
-
-\(fn &rest ARGS)" nil nil)
-
-(autoload 'find-composition "composite" "\
-Return information about a composition at or nearest to buffer position POS.
-
-If the character at POS has `composition' property, the value is a list
-of FROM, TO, and VALID-P.
-
-FROM and TO specify the range of text that has the same `composition'
-property, VALID-P is non-nil if and only if this composition is valid.
-
-If there's no composition at POS, and the optional 2nd argument LIMIT
-is non-nil, search for a composition toward LIMIT.
-
-If no composition is found, return nil.
-
-Optional 3rd argument STRING, if non-nil, is a string to look for a
-composition in; nil means the current buffer.
-
-If a valid composition is found and the optional 4th argument DETAIL-P
-is non-nil, the return value is a list of FROM, TO, COMPONENTS,
-RELATIVE-P, MOD-FUNC, and WIDTH.
-
-COMPONENTS is a vector of integers, the meaning depends on RELATIVE-P.
-
-RELATIVE-P is t if the composition method is relative, else nil.
-
-If RELATIVE-P is t, COMPONENTS is a vector of characters to be
-composed.  If RELATIVE-P is nil, COMPONENTS is a vector of characters
-and composition rules as described in `compose-region'.
+(autoload 'auto-composition-mode "composite" "\
+Toggle Auto Compostion mode.
+With arg, turn Auto Compostion mode off if and only if arg is a non-positive
+number; if arg is nil, toggle Auto Compostion mode; anything else turns Auto
+Compostion on.
 
-MOD-FUNC is a modification function of the composition.
+When Auto Composition is enabled, text characters are automatically composed
+by functions registered in `composition-function-table' (which see).
 
-WIDTH is a number of columns the composition occupies on the screen.
+You can use Global Auto Composition mode to automagically turn on
+Auto Composition mode in all buffers (this is the default).
 
-\(fn POS &optional LIMIT STRING DETAIL-P)" nil nil)
-
-(autoload 'compose-chars-after "composite" "\
-Compose characters in current buffer after position POS.
-
-It looks up the char-table `composition-function-table' (which see) by
-a character after POS.  If non-nil value is found, the format of the
-value should be an alist of PATTERNs vs FUNCs, where PATTERNs are
-regular expressions and FUNCs are functions.  If the text after POS
-matches one of PATTERNs, call the corresponding FUNC with three
-arguments POS, TO, and PATTERN, where TO is the end position of text
-matching PATTERN, and return what FUNC returns.  Otherwise, return
-nil.
-
-FUNC is responsible for composing the text properly.  The return value
-is:
-  nil -- if no characters were composed.
-  CHARS (integer) -- if CHARS characters were composed.
-
-Optional 2nd arg LIMIT, if non-nil, limits the matching of text.
-
-Optional 3rd arg OBJECT, if non-nil, is a string that contains the
-text to compose.  In that case, POS and LIMIT index to the string.
-
-This function is the default value of `compose-chars-after-function'.
-
-\(fn POS &optional LIMIT OBJECT)" nil nil)
-
-(autoload 'compose-last-chars "composite" "\
-Compose last characters.
-The argument is a parameterized event of the form
-       (compose-last-chars N COMPONENTS),
-where N is the number of characters before point to compose,
-COMPONENTS, if non-nil, is the same as the argument to `compose-region'
-\(which see).  If it is nil, `compose-chars-after' is called,
-and that function finds a proper rule to compose the target characters.
-This function is intended to be used from input methods.
-The global keymap binds special event `compose-last-chars' to this
-function.  Input method may generate an event (compose-last-chars N COMPONENTS)
-after a sequence of character events.
-
-\(fn ARGS)" t nil)
-(global-set-key [compose-last-chars] 'compose-last-chars)
+\(fn &optional ARG)" t nil)
 
-(autoload 'decompose-composite-char "composite" "\
-Convert CHAR to string.
+(defvar global-auto-composition-mode (not noninteractive) "\
+Non-nil if Global-Auto-Composition mode is enabled.
+See the command `global-auto-composition-mode' for a description of this minor mode.
+Setting this variable directly does not take effect;
+either customize it (see the info node `Easy Customization')
+or call the function `global-auto-composition-mode'.")
 
-If optional 2nd arg TYPE is non-nil, it is `string', `list', or
-`vector'.  In this case, CHAR is converted to string, list of CHAR, or
-vector of CHAR respectively.
-Optional 3rd arg WITH-COMPOSITION-RULE is ignored.
+(custom-autoload 'global-auto-composition-mode "composite" nil)
 
-\(fn CHAR &optional TYPE WITH-COMPOSITION-RULE)" nil nil)
+(autoload 'global-auto-composition-mode "composite" "\
+Toggle Auto-Composition mode in every possible buffer.
+With prefix ARG, turn Global-Auto-Composition mode on if and only if ARG is positive.
+Auto-Composition mode is enabled in all buffers where `turn-on-auto-composition-if-enabled' would do it.
+See `auto-composition-mode' for more information on Auto-Composition mode.
 
-(make-obsolete 'decompose-composite-char 'char-to-string "21.1")
+\(fn &optional ARG DUMMY)" t nil)
 
 ;;;***
 \f
 ;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode
 ;;;;;;  conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode
 ;;;;;;  conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el"
-;;;;;;  (18208 48754))
+;;;;;;  (18213 1260))
 ;;; Generated autoloads from textmodes/conf-mode.el
 
 (autoload 'conf-mode "conf-mode" "\
@@ -5262,7 +5028,7 @@ For details see `conf-mode'.  Example:
 ;;;***
 \f
 ;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie)
-;;;;;;  "cookie1" "play/cookie1.el" (18088 55113))
+;;;;;;  "cookie1" "play/cookie1.el" (18177 871))
 ;;; Generated autoloads from play/cookie1.el
 
 (autoload 'cookie "cookie1" "\
@@ -5294,7 +5060,7 @@ Randomly permute the elements of VECTOR (all permutations equally likely).
 ;;;***
 \f
 ;;;### (autoloads (copyright copyright-fix-years copyright-update)
-;;;;;;  "copyright" "emacs-lisp/copyright.el" (18183 58476))
+;;;;;;  "copyright" "emacs-lisp/copyright.el" (18190 39681))
 ;;; Generated autoloads from emacs-lisp/copyright.el
 
 (autoload 'copyright-update "copyright" "\
@@ -5322,7 +5088,7 @@ Insert a copyright by $ORGANIZATION notice at cursor.
 ;;;***
 \f
 ;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode)
-;;;;;;  "cperl-mode" "progmodes/cperl-mode.el" (18214 4479))
+;;;;;;  "cperl-mode" "progmodes/cperl-mode.el" (18231 31069))
 ;;; Generated autoloads from progmodes/cperl-mode.el
 (put 'cperl-indent-level 'safe-local-variable 'integerp)
 
@@ -5514,7 +5280,7 @@ Run a `perldoc' on the word around point.
 ;;;***
 \f
 ;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el"
-;;;;;;  (18120 34752))
+;;;;;;  (18177 872))
 ;;; Generated autoloads from progmodes/cpp.el
 
 (autoload 'cpp-highlight-buffer "cpp" "\
@@ -5533,7 +5299,7 @@ Edit display information for cpp conditionals.
 ;;;***
 \f
 ;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el"
-;;;;;;  (18088 55097))
+;;;;;;  (18177 858))
 ;;; Generated autoloads from emulation/crisp.el
 
 (defvar crisp-mode nil "\
@@ -5557,7 +5323,7 @@ With ARG, turn CRiSP mode on if ARG is positive, off otherwise.
 ;;;***
 \f
 ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el"
-;;;;;;  (18088 55095))
+;;;;;;  (18177 857))
 ;;; Generated autoloads from emacs-lisp/crm.el
 
 (autoload 'completing-read-multiple "crm" "\
@@ -5592,8 +5358,8 @@ INHERIT-INPUT-METHOD.
 
 ;;;***
 \f
-;;;### (autoloads (css-mode) "css-mode" "textmodes/css-mode.el" (18211
-;;;;;;  32385))
+;;;### (autoloads (css-mode) "css-mode" "textmodes/css-mode.el" (18213
+;;;;;;  1260))
 ;;; Generated autoloads from textmodes/css-mode.el
  (add-to-list 'auto-mode-alist '("\\.css\\'" . css-mode))
 
@@ -5605,7 +5371,7 @@ Major mode to edit Cascading Style Sheets.
 ;;;***
 \f
 ;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el"
-;;;;;;  (18186 14736))
+;;;;;;  (18190 39682))
 ;;; Generated autoloads from emulation/cua-base.el
 
 (defvar cua-mode nil "\
@@ -5664,7 +5430,7 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings.
 ;;;;;;  customize-mode customize customize-save-variable customize-set-variable
 ;;;;;;  customize-set-value custom-menu-sort-alphabetically custom-buffer-sort-alphabetically
 ;;;;;;  custom-browse-sort-alphabetically) "cus-edit" "cus-edit.el"
-;;;;;;  (18212 54459))
+;;;;;;  (18231 31060))
 ;;; Generated autoloads from cus-edit.el
 
 (defvar custom-browse-sort-alphabetically nil "\
@@ -5962,7 +5728,7 @@ The format is suitable for use with `easy-menu-define'.
 ;;;***
 \f
 ;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-set-faces
-;;;;;;  custom-declare-face) "cus-face" "cus-face.el" (18157 61328))
+;;;;;;  custom-declare-face) "cus-face" "cus-face.el" (18190 39674))
 ;;; Generated autoloads from cus-face.el
 
 (autoload 'custom-declare-face "cus-face" "\
@@ -6032,7 +5798,7 @@ This means reset FACE to its value in FROM-THEME.
 ;;;***
 \f
 ;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el"
-;;;;;;  (18088 55081))
+;;;;;;  (18177 856))
 ;;; Generated autoloads from cus-theme.el
 
 (autoload 'customize-create-theme "cus-theme" "\
@@ -6043,7 +5809,7 @@ Create a custom theme.
 ;;;***
 \f
 ;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el"
-;;;;;;  (18088 55081))
+;;;;;;  (18231 31060))
 ;;; Generated autoloads from cvs-status.el
 
 (autoload 'cvs-status-mode "cvs-status" "\
@@ -6054,7 +5820,7 @@ Mode used for cvs status output.
 ;;;***
 \f
 ;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode)
-;;;;;;  "cwarn" "progmodes/cwarn.el" (18088 55115))
+;;;;;;  "cwarn" "progmodes/cwarn.el" (18177 872))
 ;;; Generated autoloads from progmodes/cwarn.el
 
 (autoload 'cwarn-mode "cwarn" "\
@@ -6097,7 +5863,7 @@ See `cwarn-mode' for more information on Cwarn mode.
 \f
 ;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char
 ;;;;;;  cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el"
-;;;;;;  (18088 55108))
+;;;;;;  (18177 866))
 ;;; Generated autoloads from language/cyril-util.el
 
 (autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\
@@ -6126,7 +5892,7 @@ If the argument is nil, we return the display table to its standard state.
 ;;;***
 \f
 ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
-;;;;;;  (18126 18419))
+;;;;;;  (18177 856))
 ;;; Generated autoloads from dabbrev.el
  (define-key esc-map "/" 'dabbrev-expand)
  (define-key esc-map [?\C-/] 'dabbrev-completion)
@@ -6170,8 +5936,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion].
 
 ;;;***
 \f
-;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (18203
-;;;;;;  37789))
+;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (18213
+;;;;;;  1259))
 ;;; Generated autoloads from progmodes/dcl-mode.el
 
 (autoload 'dcl-mode "dcl-mode" "\
@@ -6298,7 +6064,7 @@ There is some minimal font-lock support (see vars
 ;;;***
 \f
 ;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug"
-;;;;;;  "emacs-lisp/debug.el" (18197 21672))
+;;;;;;  "emacs-lisp/debug.el" (18195 4246))
 ;;; Generated autoloads from emacs-lisp/debug.el
 
 (setq debugger 'debug)
@@ -6342,7 +6108,7 @@ To specify a nil argument interactively, exit with an empty minibuffer.
 ;;;***
 \f
 ;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el"
-;;;;;;  (18202 4002))
+;;;;;;  (18213 1259))
 ;;; Generated autoloads from play/decipher.el
 
 (autoload 'decipher "decipher" "\
@@ -6371,8 +6137,8 @@ The most useful commands are:
 ;;;***
 \f
 ;;;### (autoloads (delimit-columns-rectangle delimit-columns-region
-;;;;;;  delimit-columns-customize) "delim-col" "delim-col.el" (18088
-;;;;;;  55081))
+;;;;;;  delimit-columns-customize) "delim-col" "delim-col.el" (18177
+;;;;;;  856))
 ;;; Generated autoloads from delim-col.el
 
 (autoload 'delimit-columns-customize "delim-col" "\
@@ -6396,8 +6162,8 @@ START and END delimits the corners of text rectangle.
 
 ;;;***
 \f
-;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (18200
-;;;;;;  51266))
+;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (18203
+;;;;;;  51791))
 ;;; Generated autoloads from progmodes/delphi.el
 
 (autoload 'delphi-mode "delphi" "\
@@ -6447,8 +6213,8 @@ no args, if that value is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (18186
-;;;;;;  14736))
+;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (18231
+;;;;;;  31060))
 ;;; Generated autoloads from delsel.el
 
 (defalias 'pending-delete-mode 'delete-selection-mode)
@@ -6477,7 +6243,7 @@ any selection.
 ;;;***
 \f
 ;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode)
-;;;;;;  "derived" "emacs-lisp/derived.el" (18088 55095))
+;;;;;;  "derived" "emacs-lisp/derived.el" (18177 857))
 ;;; Generated autoloads from emacs-lisp/derived.el
 
 (autoload 'define-derived-mode "derived" "\
@@ -6542,7 +6308,7 @@ the first time the mode is used.
 ;;;***
 \f
 ;;;### (autoloads (describe-char describe-text-properties) "descr-text"
-;;;;;;  "descr-text.el" (18088 55081))
+;;;;;;  "descr-text.el" (18231 31060))
 ;;; Generated autoloads from descr-text.el
 
 (autoload 'describe-text-properties "descr-text" "\
@@ -6568,7 +6334,7 @@ as well as widgets, buttons, overlays, and text properties.
 ;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir
 ;;;;;;  desktop-load-default desktop-read desktop-remove desktop-save
 ;;;;;;  desktop-clear desktop-locals-to-save desktop-save-mode) "desktop"
-;;;;;;  "desktop.el" (18211 32385))
+;;;;;;  "desktop.el" (18231 31060))
 ;;; Generated autoloads from desktop.el
 
 (defvar desktop-save-mode nil "\
@@ -6752,7 +6518,7 @@ Revert to the last loaded desktop.
 \f
 ;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article
 ;;;;;;  gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines)
-;;;;;;  "deuglify" "gnus/deuglify.el" (18212 46006))
+;;;;;;  "deuglify" "gnus/deuglify.el" (18231 31065))
 ;;; Generated autoloads from gnus/deuglify.el
 
 (autoload 'gnus-article-outlook-unwrap-lines "deuglify" "\
@@ -6784,12 +6550,11 @@ Deuglify broken Outlook (Express) articles and redisplay.
 
 ;;;***
 \f
-;;;### (autoloads (devanagari-post-read-conversion devanagari-compose-region)
-;;;;;;  "devan-util" "language/devan-util.el" (18088 55109))
+;;;### (autoloads (devanagari-composition-function devanagari-post-read-conversion
+;;;;;;  devanagari-compose-region) "devan-util" "language/devan-util.el"
+;;;;;;  (18177 866))
 ;;; Generated autoloads from language/devan-util.el
 
-(defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]")
-
 (autoload 'devanagari-compose-region "devan-util" "\
 Not documented
 
@@ -6800,10 +6565,17 @@ Not documented
 
 \(fn LEN)" nil nil)
 
+(autoload 'devanagari-composition-function "devan-util" "\
+Compose Devanagari characters after the position POS.
+If STRING is not nil, it is a string, and POS is an index to the string.
+In this case, compose characters after POS of the string.
+
+\(fn POS &optional STRING)" nil nil)
+
 ;;;***
 \f
 ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib"
-;;;;;;  "calendar/diary-lib.el" (18157 34340))
+;;;;;;  "calendar/diary-lib.el" (18190 39681))
 ;;; Generated autoloads from calendar/diary-lib.el
 
 (autoload 'diary "diary-lib" "\
@@ -6849,7 +6621,7 @@ Major mode for editing the diary file.
 ;;;***
 \f
 ;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff"
-;;;;;;  "diff.el" (18210 30826))
+;;;;;;  "diff.el" (18213 1253))
 ;;; Generated autoloads from diff.el
 
 (defvar diff-switches "-c" "\
@@ -6883,7 +6655,7 @@ With prefix arg, prompt for diff switches.
 ;;;***
 \f
 ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el"
-;;;;;;  (18203 37786))
+;;;;;;  (18213 1253))
 ;;; Generated autoloads from diff-mode.el
 
 (autoload 'diff-mode "diff-mode" "\
@@ -6915,7 +6687,7 @@ Minor mode for viewing/editing context diffs.
 ;;;;;;  dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink
 ;;;;;;  dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename
 ;;;;;;  dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches)
-;;;;;;  "dired" "dired.el" (18200 51263))
+;;;;;;  "dired" "dired.el" (18203 51788))
 ;;; Generated autoloads from dired.el
 
 (defvar dired-listing-switches "-al" "\
@@ -7120,7 +6892,7 @@ Keybindings:
 ;;;;;;  dired-run-shell-command dired-do-shell-command dired-clean-directory
 ;;;;;;  dired-do-print dired-do-touch dired-do-chown dired-do-chgrp
 ;;;;;;  dired-do-chmod dired-compare-directories dired-backup-diff
-;;;;;;  dired-diff) "dired-aux" "dired-aux.el" (18169 11930))
+;;;;;;  dired-diff) "dired-aux" "dired-aux.el" (18231 31060))
 ;;; Generated autoloads from dired-aux.el
 
 (autoload 'dired-diff "dired-aux" "\
@@ -7535,7 +7307,7 @@ true then the type of the file linked to by FILE is printed instead.
 ;;;***
 \f
 ;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el"
-;;;;;;  (18212 46004))
+;;;;;;  (18231 31060))
 ;;; Generated autoloads from dired-x.el
 
 (autoload 'dired-jump "dired-x" "\
@@ -7565,12 +7337,16 @@ For absolute symlinks, use \\[dired-do-symlink].
 ;;;***
 \f
 ;;;### (autoloads (dirtrack dirtrack-mode) "dirtrack" "dirtrack.el"
-;;;;;;  (18213 13926))
+;;;;;;  (18231 31060))
 ;;; Generated autoloads from dirtrack.el
 
 (autoload 'dirtrack-mode "dirtrack" "\
 Enable or disable Dirtrack directory tracking in a shell buffer.
-This provides an alternative to `shell-dirtrack-mode'.
+This method requires that your shell prompt contain the full
+current working directory at all times, and that `dirtrack-list'
+is set to match the prompt.  This is an alternative to
+`shell-dirtrack-mode', which works differently, by tracking `cd'
+and similar commands which change the shell working directory.
 
 \(fn &optional ARG)" t nil)
 
@@ -7587,8 +7363,8 @@ function `dirtrack-debug-mode' to turn on debugging output.
 
 ;;;***
 \f
-;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (18173
-;;;;;;  8195))
+;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (18190
+;;;;;;  39681))
 ;;; Generated autoloads from emacs-lisp/disass.el
 
 (autoload 'disassemble "disass" "\
@@ -7607,7 +7383,7 @@ redefine OBJECT if it is a symbol.
 ;;;;;;  standard-display-g1 standard-display-ascii standard-display-default
 ;;;;;;  standard-display-8bit describe-current-display-table describe-display-table
 ;;;;;;  set-display-table-slot display-table-slot make-display-table)
-;;;;;;  "disp-table" "disp-table.el" (18088 55082))
+;;;;;;  "disp-table" "disp-table.el" (18231 31060))
 ;;; Generated autoloads from disp-table.el
 
 (autoload 'make-display-table "disp-table" "\
@@ -7723,7 +7499,7 @@ for users who call this function in `.emacs'.
 ;;;***
 \f
 ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el"
-;;;;;;  (18088 55113))
+;;;;;;  (18177 871))
 ;;; Generated autoloads from play/dissociate.el
 
 (autoload 'dissociated-press "dissociate" "\
@@ -7739,7 +7515,7 @@ Default is 2.
 
 ;;;***
 \f
-;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (18088 55082))
+;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (18177 856))
 ;;; Generated autoloads from dnd.el
 
 (defvar dnd-protocol-alist '(("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file) ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file)) "\
@@ -7760,7 +7536,7 @@ if some action was made, or nil if the URL is ignored.")
 ;;;***
 \f
 ;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode"
-;;;;;;  "textmodes/dns-mode.el" (18088 55119))
+;;;;;;  "textmodes/dns-mode.el" (18177 875))
 ;;; Generated autoloads from textmodes/dns-mode.el
 
 (autoload 'dns-mode "dns-mode" "\
@@ -7784,20 +7560,27 @@ Locate SOA record and increment the serial field.
 
 ;;;***
 \f
-;;;### (autoloads (doc-view-mode) "doc-view" "doc-view.el" (18201
-;;;;;;  33325))
+;;;### (autoloads (doc-view-minor-mode doc-view-mode) "doc-view"
+;;;;;;  "doc-view.el" (18231 31060))
 ;;; Generated autoloads from doc-view.el
 
 (autoload 'doc-view-mode "doc-view" "\
 Major mode in DocView buffers.
 You can use \\<doc-view-mode-map>\\[doc-view-toggle-display] to
-toggle between display as a set of images and display as text.
+toggle between displaying the document or editing it as text.
 
 \(fn)" t nil)
 
+(autoload 'doc-view-minor-mode "doc-view" "\
+Toggle Doc view minor mode.
+With arg, turn Doc view minor mode on if arg is positive, off otherwise.
+See the command `doc-view-mode' for more information on this mode.
+
+\(fn &optional ARG)" t nil)
+
 ;;;***
 \f
-;;;### (autoloads (doctor) "doctor" "play/doctor.el" (18088 55113))
+;;;### (autoloads (doctor) "doctor" "play/doctor.el" (18177 871))
 ;;; Generated autoloads from play/doctor.el
 
 (autoload 'doctor "doctor" "\
@@ -7807,7 +7590,7 @@ Switch to *doctor* buffer and start giving psychotherapy.
 
 ;;;***
 \f
-;;;### (autoloads (double-mode) "double" "double.el" (18203 37786))
+;;;### (autoloads (double-mode) "double" "double.el" (18213 1254))
 ;;; Generated autoloads from double.el
 
 (autoload 'double-mode "double" "\
@@ -7822,7 +7605,7 @@ when pressed twice.  See variable `double-map' for details.
 
 ;;;***
 \f
-;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (18088 55113))
+;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (18177 871))
 ;;; Generated autoloads from play/dunnet.el
 
 (autoload 'dunnet "dunnet" "\
@@ -7833,7 +7616,7 @@ Switch to *dungeon* buffer and start game.
 ;;;***
 \f
 ;;;### (autoloads (gnus-earcon-display) "earcon" "gnus/earcon.el"
-;;;;;;  (18088 55101))
+;;;;;;  (18177 860))
 ;;; Generated autoloads from gnus/earcon.el
 
 (autoload 'gnus-earcon-display "earcon" "\
@@ -7845,7 +7628,7 @@ Play sounds in message buffers.
 \f
 ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap
 ;;;;;;  define-globalized-minor-mode define-minor-mode) "easy-mmode"
-;;;;;;  "emacs-lisp/easy-mmode.el" (18201 33326))
+;;;;;;  "emacs-lisp/easy-mmode.el" (18203 51788))
 ;;; Generated autoloads from emacs-lisp/easy-mmode.el
 
 (defalias 'easy-mmode-define-minor-mode 'define-minor-mode)
@@ -7939,8 +7722,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX).
 ;;;***
 \f
 ;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define
-;;;;;;  easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (18120
-;;;;;;  34750))
+;;;;;;  easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (18177
+;;;;;;  857))
 ;;; Generated autoloads from emacs-lisp/easymenu.el
 
 (put 'easy-menu-define 'lisp-indent-function 'defun)
@@ -8089,7 +7872,7 @@ To implement dynamic menus, either call this from
 ;;;;;;  ebnf-eps-file ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer
 ;;;;;;  ebnf-spool-file ebnf-spool-directory ebnf-print-region ebnf-print-buffer
 ;;;;;;  ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps"
-;;;;;;  "progmodes/ebnf2ps.el" (18192 17587))
+;;;;;;  "progmodes/ebnf2ps.el" (18194 36640))
 ;;; Generated autoloads from progmodes/ebnf2ps.el
 
 (autoload 'ebnf-customize "ebnf2ps" "\
@@ -8363,8 +8146,8 @@ See `ebnf-style-database' documentation.
 ;;;;;;  ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition
 ;;;;;;  ebrowse-tags-view-definition ebrowse-tags-find-declaration
 ;;;;;;  ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree
-;;;;;;  ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (18197
-;;;;;;  21675))
+;;;;;;  ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (18195
+;;;;;;  4247))
 ;;; Generated autoloads from progmodes/ebrowse.el
 
 (autoload 'ebrowse-tree-mode "ebrowse" "\
@@ -8515,7 +8298,7 @@ Display statistics for a class tree.
 ;;;***
 \f
 ;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el"
-;;;;;;  (18133 2196))
+;;;;;;  (18190 39674))
 ;;; Generated autoloads from ebuff-menu.el
 
 (autoload 'electric-buffer-list "ebuff-menu" "\
@@ -8540,7 +8323,7 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry.
 ;;;***
 \f
 ;;;### (autoloads (Electric-command-history-redo-expression) "echistory"
-;;;;;;  "echistory.el" (18133 2196))
+;;;;;;  "echistory.el" (18190 39674))
 ;;; Generated autoloads from echistory.el
 
 (autoload 'Electric-command-history-redo-expression "echistory" "\
@@ -8552,7 +8335,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing.
 ;;;***
 \f
 ;;;### (autoloads (ecomplete-setup) "ecomplete" "gnus/ecomplete.el"
-;;;;;;  (18212 21473))
+;;;;;;  (18230 21282))
 ;;; Generated autoloads from gnus/ecomplete.el
 
 (autoload 'ecomplete-setup "ecomplete" "\
@@ -8564,7 +8347,7 @@ Not documented
 \f
 ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form
 ;;;;;;  edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug"
-;;;;;;  "emacs-lisp/edebug.el" (18197 21672))
+;;;;;;  "emacs-lisp/edebug.el" (18195 4247))
 ;;; Generated autoloads from emacs-lisp/edebug.el
 
 (defvar edebug-all-defs nil "\
@@ -8629,15 +8412,15 @@ Toggle edebugging of all forms.
 ;;;***
 \f
 ;;;### (autoloads (ediff-documentation ediff-version ediff-revision
-;;;;;;  ediff-patch-buffer ediff-patch-file run-ediff-from-cvs-buffer
-;;;;;;  ediff-merge-revisions-with-ancestor ediff-merge-revisions
-;;;;;;  ediff-merge-buffers-with-ancestor ediff-merge-buffers ediff-merge-files-with-ancestor
-;;;;;;  ediff-merge-files ediff-regions-linewise ediff-regions-wordwise
-;;;;;;  ediff-windows-linewise ediff-windows-wordwise ediff-merge-directory-revisions-with-ancestor
-;;;;;;  ediff-merge-directory-revisions ediff-merge-directories-with-ancestor
-;;;;;;  ediff-merge-directories ediff-directories3 ediff-directory-revisions
-;;;;;;  ediff-directories ediff-buffers3 ediff-buffers ediff-backup
-;;;;;;  ediff-files3 ediff-files) "ediff" "ediff.el" (18120 34749))
+;;;;;;  ediff-patch-buffer ediff-patch-file ediff-merge-revisions-with-ancestor
+;;;;;;  ediff-merge-revisions ediff-merge-buffers-with-ancestor ediff-merge-buffers
+;;;;;;  ediff-merge-files-with-ancestor ediff-merge-files ediff-regions-linewise
+;;;;;;  ediff-regions-wordwise ediff-windows-linewise ediff-windows-wordwise
+;;;;;;  ediff-merge-directory-revisions-with-ancestor ediff-merge-directory-revisions
+;;;;;;  ediff-merge-directories-with-ancestor ediff-merge-directories
+;;;;;;  ediff-directories3 ediff-directory-revisions ediff-directories
+;;;;;;  ediff-buffers3 ediff-buffers ediff-backup ediff-files3 ediff-files)
+;;;;;;  "ediff" "ediff.el" (18231 31060))
 ;;; Generated autoloads from ediff.el
 
 (autoload 'ediff-files "ediff" "\
@@ -8813,13 +8596,6 @@ buffer.
 
 \(fn &optional FILE STARTUP-HOOKS MERGE-BUFFER-FILE)" t nil)
 
-(autoload 'run-ediff-from-cvs-buffer "ediff" "\
-Run Ediff-merge on appropriate revisions of the selected file.
-First run after `M-x cvs-update'.  Then place the cursor on a line describing a
-file and then run `run-ediff-from-cvs-buffer'.
-
-\(fn POS)" t nil)
-
 (autoload 'ediff-patch-file "ediff" "\
 Run Ediff by patching SOURCE-FILENAME.
 If optional PATCH-BUF is given, use the patch in that buffer
@@ -8869,7 +8645,7 @@ With optional NODE, goes to that node.
 ;;;***
 \f
 ;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el"
-;;;;;;  (18202 3993))
+;;;;;;  (18231 31060))
 ;;; Generated autoloads from ediff-help.el
 
 (autoload 'ediff-customize "ediff-help" "\
@@ -8879,7 +8655,7 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (18203 37786))
+;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (18231 31060))
 ;;; Generated autoloads from ediff-hook.el
 
 (defvar ediff-window-setup-function)
@@ -8892,7 +8668,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el"
-;;;;;;  (18169 11930))
+;;;;;;  (18231 31060))
 ;;; Generated autoloads from ediff-mult.el
 
 (autoload 'ediff-show-registry "ediff-mult" "\
@@ -8905,7 +8681,7 @@ Display Ediff's registry.
 ;;;***
 \f
 ;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe)
-;;;;;;  "ediff-util" "ediff-util.el" (18214 4759))
+;;;;;;  "ediff-util" "ediff-util.el" (18231 31060))
 ;;; Generated autoloads from ediff-util.el
 
 (autoload 'ediff-toggle-multiframe "ediff-util" "\
@@ -8926,7 +8702,7 @@ To change the default, set the variable `ediff-use-toolbar-p', which see.
 \f
 ;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro
 ;;;;;;  edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el"
-;;;;;;  (18133 2196))
+;;;;;;  (18190 39674))
 ;;; Generated autoloads from edmacro.el
 
 (defvar edmacro-eight-bits nil "\
@@ -8979,7 +8755,7 @@ or nil, use a compact 80-column format.
 ;;;***
 \f
 ;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt"
-;;;;;;  "emulation/edt.el" (18212 54459))
+;;;;;;  "emulation/edt.el" (18231 31065))
 ;;; Generated autoloads from emulation/edt.el
 
 (autoload 'edt-set-scroll-margins "edt" "\
@@ -8997,7 +8773,7 @@ Turn on EDT Emulation.
 ;;;***
 \f
 ;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el"
-;;;;;;  (18088 55083))
+;;;;;;  (18177 857))
 ;;; Generated autoloads from ehelp.el
 
 (autoload 'with-electric-help "ehelp" "\
@@ -9034,7 +8810,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
-;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (18173 8195))
+;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (18190 39681))
 ;;; Generated autoloads from emacs-lisp/eldoc.el
 
 (defvar eldoc-minor-mode-string " ElDoc" "\
@@ -9072,8 +8848,8 @@ Emacs Lisp mode) that support Eldoc.")
 
 ;;;***
 \f
-;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (18088
-;;;;;;  55083))
+;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (18177
+;;;;;;  857))
 ;;; Generated autoloads from elide-head.el
 
 (autoload 'elide-head "elide-head" "\
@@ -9089,7 +8865,7 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks.
 ;;;***
 \f
 ;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el"
-;;;;;;  (18173 8195))
+;;;;;;  (18190 39681))
 ;;; Generated autoloads from emacs-lisp/elint.el
 
 (autoload 'elint-initialize "elint" "\
@@ -9100,8 +8876,8 @@ Initialize elint.
 ;;;***
 \f
 ;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list
-;;;;;;  elp-instrument-function) "elp" "emacs-lisp/elp.el" (18173
-;;;;;;  8195))
+;;;;;;  elp-instrument-function) "elp" "emacs-lisp/elp.el" (18231
+;;;;;;  31065))
 ;;; Generated autoloads from emacs-lisp/elp.el
 
 (autoload 'elp-instrument-function "elp" "\
@@ -9127,7 +8903,7 @@ For example, to instrument all ELP functions, do the following:
 (autoload 'elp-results "elp" "\
 Display current profiling results.
 If `elp-reset-after-results' is non-nil, then current profiling
-information for all instrumented functions are reset after results are
+information for all instrumented functions is reset after results are
 displayed.
 
 \(fn)" t nil)
@@ -9135,7 +8911,7 @@ displayed.
 ;;;***
 \f
 ;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el"
-;;;;;;  (18173 8195))
+;;;;;;  (18190 39683))
 ;;; Generated autoloads from mail/emacsbug.el
 
 (autoload 'report-emacs-bug "emacsbug" "\
@@ -9150,7 +8926,7 @@ Prompts for bug subject.  Leaves you in a mail buffer.
 ;;;;;;  emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote
 ;;;;;;  emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor
 ;;;;;;  emerge-buffers emerge-files-with-ancestor emerge-files) "emerge"
-;;;;;;  "emerge.el" (18200 51264))
+;;;;;;  "emerge.el" (18203 51788))
 ;;; Generated autoloads from emerge.el
 
 (defvar menu-bar-emerge-menu (make-sparse-keymap "Emerge"))
@@ -9228,7 +9004,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (encoded-kbd-setup-display) "encoded-kb" "international/encoded-kb.el"
-;;;;;;  (18200 51265))
+;;;;;;  (18203 51789))
 ;;; Generated autoloads from international/encoded-kb.el
 
 (autoload 'encoded-kbd-setup-display "encoded-kb" "\
@@ -9241,7 +9017,7 @@ DISPLAY may be a display id, a frame, or nil for the selected frame's display.
 ;;;***
 \f
 ;;;### (autoloads (encrypt-insert-file-contents encrypt-find-model)
-;;;;;;  "encrypt" "gnus/encrypt.el" (18212 21482))
+;;;;;;  "encrypt" "gnus/encrypt.el" (18230 21286))
 ;;; Generated autoloads from gnus/encrypt.el
 
 (autoload 'encrypt-find-model "encrypt" "\
@@ -9257,7 +9033,7 @@ Decrypt FILE into the current buffer.
 ;;;***
 \f
 ;;;### (autoloads (enriched-decode enriched-encode enriched-mode)
-;;;;;;  "enriched" "textmodes/enriched.el" (18088 55119))
+;;;;;;  "enriched" "textmodes/enriched.el" (18177 875))
 ;;; Generated autoloads from textmodes/enriched.el
 
 (autoload 'enriched-mode "enriched" "\
@@ -9288,7 +9064,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc"
-;;;;;;  "erc/erc.el" (18213 13926))
+;;;;;;  "erc/erc.el" (18231 31065))
 ;;; Generated autoloads from erc/erc.el
 
 (autoload 'erc-select-read-args "erc" "\
@@ -9330,33 +9106,33 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (18088
-;;;;;;  55099))
+;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (18177
+;;;;;;  858))
 ;;; Generated autoloads from erc/erc-autoaway.el
  (autoload 'erc-autoaway-mode "erc-autoaway")
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-button" "erc/erc-button.el" (18147 59472))
+;;;### (autoloads nil "erc-button" "erc/erc-button.el" (18190 39682))
 ;;; Generated autoloads from erc/erc-button.el
  (autoload 'erc-button-mode "erc-button" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (18088 55099))
+;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (18177 859))
 ;;; Generated autoloads from erc/erc-capab.el
  (autoload 'erc-capab-identify-mode "erc-capab" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (18147 59472))
+;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (18231 31065))
 ;;; Generated autoloads from erc/erc-compat.el
  (autoload 'erc-define-minor-mode "erc-compat")
 
 ;;;***
 \f
 ;;;### (autoloads (erc-ctcp-query-DCC pcomplete/erc-mode/DCC erc-cmd-DCC)
-;;;;;;  "erc-dcc" "erc/erc-dcc.el" (18088 55099))
+;;;;;;  "erc-dcc" "erc/erc-dcc.el" (18177 859))
 ;;; Generated autoloads from erc/erc-dcc.el
 
 (autoload 'erc-cmd-DCC "erc-dcc" "\
@@ -9388,7 +9164,7 @@ that subcommand.
 ;;;;;;  erc-ezb-add-session erc-ezb-end-of-session-list erc-ezb-init-session-list
 ;;;;;;  erc-ezb-identify erc-ezb-notice-autodetect erc-ezb-lookup-action
 ;;;;;;  erc-ezb-get-login erc-cmd-ezb) "erc-ezbounce" "erc/erc-ezbounce.el"
-;;;;;;  (18088 55099))
+;;;;;;  (18177 859))
 ;;; Generated autoloads from erc/erc-ezbounce.el
 
 (autoload 'erc-cmd-ezb "erc-ezbounce" "\
@@ -9450,8 +9226,8 @@ Add EZBouncer convenience functions to ERC.
 
 ;;;***
 \f
-;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (18088
-;;;;;;  55099))
+;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (18177
+;;;;;;  859))
 ;;; Generated autoloads from erc/erc-fill.el
  (autoload 'erc-fill-mode "erc-fill" nil t)
 
@@ -9463,15 +9239,15 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (18088
-;;;;;;  55099))
+;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (18177
+;;;;;;  859))
 ;;; Generated autoloads from erc/erc-hecomplete.el
  (autoload 'erc-hecomplete-mode "erc-hecomplete" nil t)
 
 ;;;***
 \f
 ;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd"
-;;;;;;  "erc/erc-identd.el" (18147 59472))
+;;;;;;  "erc/erc-identd.el" (18190 39682))
 ;;; Generated autoloads from erc/erc-identd.el
  (autoload 'erc-identd-mode "erc-identd")
 
@@ -9493,7 +9269,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (erc-create-imenu-index) "erc-imenu" "erc/erc-imenu.el"
-;;;;;;  (18088 55099))
+;;;;;;  (18177 859))
 ;;; Generated autoloads from erc/erc-imenu.el
 
 (autoload 'erc-create-imenu-index "erc-imenu" "\
@@ -9503,14 +9279,14 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-join" "erc/erc-join.el" (18088 55099))
+;;;### (autoloads nil "erc-join" "erc/erc-join.el" (18177 859))
 ;;; Generated autoloads from erc/erc-join.el
  (autoload 'erc-autojoin-mode "erc-join" nil t)
 
 ;;;***
 \f
 ;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log"
-;;;;;;  "erc/erc-log.el" (18213 13926))
+;;;;;;  "erc/erc-log.el" (18231 31065))
 ;;; Generated autoloads from erc/erc-log.el
  (autoload 'erc-log-mode "erc-log" nil t)
 
@@ -9542,7 +9318,7 @@ You can save every individual message by putting this function on
 ;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host
 ;;;;;;  erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool
 ;;;;;;  erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el"
-;;;;;;  (18088 55100))
+;;;;;;  (18177 859))
 ;;; Generated autoloads from erc/erc-match.el
  (autoload 'erc-match-mode "erc-match")
 
@@ -9588,14 +9364,14 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (18088 55100))
+;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (18177 859))
 ;;; Generated autoloads from erc/erc-menu.el
  (autoload 'erc-menu-mode "erc-menu" nil t)
 
 ;;;***
 \f
 ;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el"
-;;;;;;  (18088 55100))
+;;;;;;  (18177 859))
 ;;; Generated autoloads from erc/erc-netsplit.el
  (autoload 'erc-netsplit-mode "erc-netsplit")
 
@@ -9607,7 +9383,7 @@ Show who's gone.
 ;;;***
 \f
 ;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks"
-;;;;;;  "erc/erc-networks.el" (18088 55100))
+;;;;;;  "erc/erc-networks.el" (18177 859))
 ;;; Generated autoloads from erc/erc-networks.el
 
 (autoload 'erc-determine-network "erc-networks" "\
@@ -9625,7 +9401,7 @@ Interactively select a server to connect to using `erc-server-alist'.
 ;;;***
 \f
 ;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify"
-;;;;;;  "erc/erc-notify.el" (18088 55100))
+;;;;;;  "erc/erc-notify.el" (18177 859))
 ;;; Generated autoloads from erc/erc-notify.el
  (autoload 'erc-notify-mode "erc-notify" nil t)
 
@@ -9643,33 +9419,33 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-page" "erc/erc-page.el" (18088 55100))
+;;;### (autoloads nil "erc-page" "erc/erc-page.el" (18177 859))
 ;;; Generated autoloads from erc/erc-page.el
  (autoload 'erc-page-mode "erc-page")
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (18088
-;;;;;;  55100))
+;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (18177
+;;;;;;  859))
 ;;; Generated autoloads from erc/erc-pcomplete.el
  (autoload 'erc-completion-mode "erc-pcomplete" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (18088 55100))
+;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (18177 859))
 ;;; Generated autoloads from erc/erc-replace.el
  (autoload 'erc-replace-mode "erc-replace")
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (18088 55100))
+;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (18177 859))
 ;;; Generated autoloads from erc/erc-ring.el
  (autoload 'erc-ring-mode "erc-ring" nil t)
 
 ;;;***
 \f
 ;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode)
-;;;;;;  "erc-services" "erc/erc-services.el" (18088 55100))
+;;;;;;  "erc-services" "erc/erc-services.el" (18177 859))
 ;;; Generated autoloads from erc/erc-services.el
  (autoload 'erc-services-mode "erc-services" nil t)
 
@@ -9686,14 +9462,14 @@ When called interactively, read the password using `read-passwd'.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (18161 20995))
+;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (18190 39682))
 ;;; Generated autoloads from erc/erc-sound.el
  (autoload 'erc-sound-mode "erc-sound")
 
 ;;;***
 \f
 ;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el"
-;;;;;;  (18088 55100))
+;;;;;;  (18177 859))
 ;;; Generated autoloads from erc/erc-speedbar.el
 
 (autoload 'erc-speedbar-browser "erc-speedbar" "\
@@ -9704,21 +9480,21 @@ This will add a speedbar major display mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (18088
-;;;;;;  55100))
+;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (18177
+;;;;;;  859))
 ;;; Generated autoloads from erc/erc-spelling.el
  (autoload 'erc-spelling-mode "erc-spelling" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (18214 4763))
+;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (18231 31065))
 ;;; Generated autoloads from erc/erc-stamp.el
  (autoload 'erc-timestamp-mode "erc-stamp" nil t)
 
 ;;;***
 \f
 ;;;### (autoloads (erc-track-minor-mode) "erc-track" "erc/erc-track.el"
-;;;;;;  (18213 13926))
+;;;;;;  (18194 36639))
 ;;; Generated autoloads from erc/erc-track.el
 
 (defvar erc-track-minor-mode nil "\
@@ -9741,7 +9517,7 @@ module, otherwise the keybindings will not do anything useful.
 ;;;***
 \f
 ;;;### (autoloads (erc-truncate-buffer erc-truncate-buffer-to-size)
-;;;;;;  "erc-truncate" "erc/erc-truncate.el" (18088 55100))
+;;;;;;  "erc-truncate" "erc/erc-truncate.el" (18177 859))
 ;;; Generated autoloads from erc/erc-truncate.el
  (autoload 'erc-truncate-mode "erc-truncate" nil t)
 
@@ -9761,7 +9537,7 @@ Meant to be used in hooks, like `erc-insert-post-hook'.
 ;;;***
 \f
 ;;;### (autoloads (erc-xdcc-add-file) "erc-xdcc" "erc/erc-xdcc.el"
-;;;;;;  (18088 55100))
+;;;;;;  (18177 859))
 ;;; Generated autoloads from erc/erc-xdcc.el
 
 (autoload 'erc-xdcc-add-file "erc-xdcc" "\
@@ -9771,8 +9547,8 @@ Add a file to `erc-xdcc-files'.
 
 ;;;***
 \f
-;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (18203
-;;;;;;  37788))
+;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (18231
+;;;;;;  31065))
 ;;; Generated autoloads from eshell/esh-mode.el
 
 (autoload 'eshell-mode "esh-mode" "\
@@ -9784,8 +9560,8 @@ Emacs shell interactive mode.
 
 ;;;***
 \f
-;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (18088
-;;;;;;  55101))
+;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (18177
+;;;;;;  859))
 ;;; Generated autoloads from eshell/esh-test.el
 
 (autoload 'eshell-test "esh-test" "\
@@ -9796,7 +9572,7 @@ Test Eshell to verify that it works as expected.
 ;;;***
 \f
 ;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command
-;;;;;;  eshell) "eshell" "eshell/eshell.el" (18088 55101))
+;;;;;;  eshell) "eshell" "eshell/eshell.el" (18177 859))
 ;;; Generated autoloads from eshell/eshell.el
 
 (autoload 'eshell "eshell" "\
@@ -9842,7 +9618,7 @@ Please include any configuration details that might be involved.
 ;;;;;;  visit-tags-table tags-table-mode find-tag-default-function
 ;;;;;;  find-tag-hook tags-add-tables tags-compression-info-list
 ;;;;;;  tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el"
-;;;;;;  (18201 33327))
+;;;;;;  (18231 31069))
 ;;; Generated autoloads from progmodes/etags.el
 
 (defvar tags-file-name nil "\
@@ -10137,14 +9913,14 @@ for \\[find-tag] (which see).
 
 ;;;***
 \f
-;;;### (autoloads (ethio-write-file ethio-find-file ethio-java-to-fidel-buffer
+;;;### (autoloads (ethio-composition-function ethio-insert-ethio-space
+;;;;;;  ethio-write-file ethio-find-file ethio-java-to-fidel-buffer
 ;;;;;;  ethio-fidel-to-java-buffer ethio-tex-to-fidel-buffer ethio-fidel-to-tex-buffer
 ;;;;;;  ethio-input-special-character ethio-replace-space ethio-modify-vowel
-;;;;;;  ethio-fidel-to-sera-marker ethio-fidel-to-sera-mail ethio-fidel-to-sera-mail-or-marker
-;;;;;;  ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker
-;;;;;;  ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker
-;;;;;;  ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal)
-;;;;;;  "ethio-util" "language/ethio-util.el" (18173 8195))
+;;;;;;  ethio-fidel-to-sera-marker ethio-fidel-to-sera-region ethio-fidel-to-sera-buffer
+;;;;;;  ethio-sera-to-fidel-marker ethio-sera-to-fidel-region ethio-sera-to-fidel-buffer
+;;;;;;  setup-ethiopic-environment-internal) "ethio-util" "language/ethio-util.el"
+;;;;;;  (18194 36639))
 ;;; Generated autoloads from language/ethio-util.el
 
 (autoload 'setup-ethiopic-environment-internal "ethio-util" "\
@@ -10152,59 +9928,41 @@ Not documented
 
 \(fn)" nil nil)
 
-(autoload 'ethio-sera-to-fidel-region "ethio-util" "\
-Convert the characters in region from SERA to FIDEL.
-The variable `ethio-primary-language' specifies the primary language
-and `ethio-secondary-language' specifies the secondary.
-
-If the 3rd parameter SECONDARY is given and non-nil, assume the region
-begins with the secondary language; otherwise with the primary
-language.
-
-If the 4th parameter FORCE is given and non-nil, perform conversion
-even if the buffer is read-only.
-
-See also the descriptions of the variables
-`ethio-use-colon-for-colon' and
-`ethio-use-three-dot-question'.
-
-\(fn BEG END &optional SECONDARY FORCE)" t nil)
-
 (autoload 'ethio-sera-to-fidel-buffer "ethio-util" "\
 Convert the current buffer from SERA to FIDEL.
 
 The variable `ethio-primary-language' specifies the primary
 language and `ethio-secondary-language' specifies the secondary.
 
-If the 1st optional parameter SECONDARY is non-nil, assume the buffer
-begins with the secondary language; otherwise with the primary
-language.
+If the 1st optional argument SECONDARY is non-nil, assume the
+buffer begins with the secondary language; otherwise with the
+primary language.
 
-If the 2nd optional parametr FORCE is non-nil, perform conversion even if the
-buffer is read-only.
+If the 2nd optional argument FORCE is non-nil, perform conversion
+even if the buffer is read-only.
 
 See also the descriptions of the variables
-`ethio-use-colon-for-colon' and
-`ethio-use-three-dot-question'.
+`ethio-use-colon-for-colon' and `ethio-use-three-dot-question'.
 
 \(fn &optional SECONDARY FORCE)" t nil)
 
-(autoload 'ethio-sera-to-fidel-mail-or-marker "ethio-util" "\
-Execute `ethio-sera-to-fidel-mail' or `ethio-sera-to-fidel-marker' depending on the current major mode.
-If in rmail-mode or in mail-mode, execute the former; otherwise latter.
+(autoload 'ethio-sera-to-fidel-region "ethio-util" "\
+Convert the characters in region from SERA to FIDEL.
 
-\(fn &optional ARG)" t nil)
+The variable `ethio-primary-language' specifies the primary
+language and `ethio-secondary-language' specifies the secondary.
 
-(autoload 'ethio-sera-to-fidel-mail "ethio-util" "\
-Convert SERA to FIDEL to read/write mail and news.
+If the 3rd argument SECONDARY is given and non-nil, assume the
+region begins with the secondary language; otherwise with the
+primary language.
 
-If the buffer contains the markers \"<sera>\" and \"</sera>\",
-convert the segments between them into FIDEL.
+If the 4th argument FORCE is given and non-nil, perform
+conversion even if the buffer is read-only.
 
-If invoked interactively and there is no marker, convert the subject field
-and the body into FIDEL using `ethio-sera-to-fidel-region'.
+See also the descriptions of the variables
+`ethio-use-colon-for-colon' and `ethio-use-three-dot-question'.
 
-\(fn &optional ARG)" t nil)
+\(fn BEGIN END &optional SECONDARY FORCE)" t nil)
 
 (autoload 'ethio-sera-to-fidel-marker "ethio-util" "\
 Convert the regions surrounded by \"<sera>\" and \"</sera>\" from SERA to FIDEL.
@@ -10213,59 +9971,42 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted.
 
 \(fn &optional FORCE)" t nil)
 
-(autoload 'ethio-fidel-to-sera-region "ethio-util" "\
-Replace all the FIDEL characters in the region to the SERA format.
+(autoload 'ethio-fidel-to-sera-buffer "ethio-util" "\
+Replace all the FIDEL characters in the current buffer to the SERA format.
 The variable `ethio-primary-language' specifies the primary
 language and `ethio-secondary-language' specifies the secondary.
 
-If the 3dr parameter SECONDARY is given and non-nil, try to convert
-the region so that it begins in the secondary language; otherwise with
-the primary language.
+If the 1st optional argument SECONDARY is non-nil, try to convert the
+region so that it begins with the secondary language; otherwise with the
+primary language.
 
-If the 4th parameter FORCE is given and non-nil, convert even if the
+If the 2nd optional argument FORCE is non-nil, convert even if the
 buffer is read-only.
 
 See also the descriptions of the variables
 `ethio-use-colon-for-colon', `ethio-use-three-dot-question',
 `ethio-quote-vowel-always' and `ethio-numeric-reduction'.
 
-\(fn BEGIN END &optional SECONDARY FORCE)" t nil)
+\(fn &optional SECONDARY FORCE)" t nil)
+
+(autoload 'ethio-fidel-to-sera-region "ethio-util" "\
+Replace all the FIDEL characters in the region to the SERA format.
 
-(autoload 'ethio-fidel-to-sera-buffer "ethio-util" "\
-Replace all the FIDEL characters in the current buffer to the SERA format.
 The variable `ethio-primary-language' specifies the primary
 language and `ethio-secondary-language' specifies the secondary.
 
-If the 1st optional parameter SECONDARY is non-nil, try to convert the
-region so that it begins in the secondary language; otherwise with the
-primary language.
+If the 3rd argument SECONDARY is given and non-nil, convert
+the region so that it begins with the secondary language; otherwise with
+the primary language.
 
-If the 2nd optional parameter FORCE is non-nil, convert even if the
+If the 4th argument FORCE is given and non-nil, convert even if the
 buffer is read-only.
 
 See also the descriptions of the variables
 `ethio-use-colon-for-colon', `ethio-use-three-dot-question',
 `ethio-quote-vowel-always' and `ethio-numeric-reduction'.
 
-\(fn &optional SECONDARY FORCE)" t nil)
-
-(autoload 'ethio-fidel-to-sera-mail-or-marker "ethio-util" "\
-Execute `ethio-fidel-to-sera-mail' or `ethio-fidel-to-sera-marker' depending on the current major mode.
-If in rmail-mode or in mail-mode, execute the former; otherwise latter.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'ethio-fidel-to-sera-mail "ethio-util" "\
-Convert FIDEL to SERA to read/write mail and news.
-
-If the body contains at least one Ethiopic character,
- 1) insert the string \"<sera>\" at the beginning of the body,
- 2) insert \"</sera>\" at the end of the body, and
- 3) convert the body into SERA.
-
-The very same procedure applies to the subject field, too.
-
-\(fn)" t nil)
+\(fn BEGIN END &optional SECONDARY FORCE)" t nil)
 
 (autoload 'ethio-fidel-to-sera-marker "ethio-util" "\
 Convert the regions surrounded by \"<sera>\" and \"</sera>\" from FIDEL to SERA.
@@ -10282,25 +10023,24 @@ Modify the vowel of the FIDEL that is under the cursor.
 Replace ASCII spaces with Ethiopic word separators in the region.
 
 In the specified region, replace word separators surrounded by two
-Ethiopic characters, depending on the first parameter CH, which should
+Ethiopic characters, depending on the first argument CH, which should
 be 1, 2, or 3.
 
 If CH = 1, word separator will be replaced with an ASCII space.
 If CH = 2, with two ASCII spaces.
 If CH = 3, with the Ethiopic colon-like word separator.
 
-The second and third parameters BEGIN and END specify the region.
+The 2nd and 3rd arguments BEGIN and END specify the region.
 
 \(fn CH BEGIN END)" t nil)
 
 (autoload 'ethio-input-special-character "ethio-util" "\
-Allow the user to input special characters.
+This function is deprecated.
 
 \(fn ARG)" t nil)
 
 (autoload 'ethio-fidel-to-tex-buffer "ethio-util" "\
 Convert each fidel characters in the current buffer into a fidel-tex command.
-Each command is always surrounded by braces.
 
 \(fn)" t nil)
 
@@ -10326,20 +10066,31 @@ Convert the Java escape sequences into corresponding Ethiopic characters.
 \(fn)" nil nil)
 
 (autoload 'ethio-find-file "ethio-util" "\
-Transcribe file content into Ethiopic depending on filename suffix.
+Transliterate file content into Ethiopic dependig on filename suffix.
 
 \(fn)" nil nil)
 
 (autoload 'ethio-write-file "ethio-util" "\
-Transcribe Ethiopic characters in ASCII depending on the file extension.
+Transliterate Ethiopic characters in ASCII depending on the file extension.
 
 \(fn)" nil nil)
 
+(autoload 'ethio-insert-ethio-space "ethio-util" "\
+Insert the Ethiopic word delimiter (the colon-like character).
+With ARG, insert that many delimiters.
+
+\(fn ARG)" t nil)
+
+(autoload 'ethio-composition-function "ethio-util" "\
+Not documented
+
+\(fn POS &optional STRING)" nil nil)
+
 ;;;***
 \f
 ;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline
 ;;;;;;  eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el"
-;;;;;;  (18203 37788))
+;;;;;;  (18213 1258))
 ;;; Generated autoloads from net/eudc.el
 
 (autoload 'eudc-set-server "eudc" "\
@@ -10395,7 +10146,7 @@ This does nothing except loading eudc by autoload side-effect.
 \f
 ;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline
 ;;;;;;  eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary)
-;;;;;;  "eudc-bob" "net/eudc-bob.el" (18203 37788))
+;;;;;;  "eudc-bob" "net/eudc-bob.el" (18213 1258))
 ;;; Generated autoloads from net/eudc-bob.el
 
 (autoload 'eudc-display-generic-binary "eudc-bob" "\
@@ -10431,7 +10182,7 @@ Display a button for the JPEG DATA.
 ;;;***
 \f
 ;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb)
-;;;;;;  "eudc-export" "net/eudc-export.el" (18088 55111))
+;;;;;;  "eudc-export" "net/eudc-export.el" (18177 869))
 ;;; Generated autoloads from net/eudc-export.el
 
 (autoload 'eudc-insert-record-at-point-into-bbdb "eudc-export" "\
@@ -10448,7 +10199,7 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record.
 ;;;***
 \f
 ;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el"
-;;;;;;  (18203 37788))
+;;;;;;  (18213 1258))
 ;;; Generated autoloads from net/eudc-hotlist.el
 
 (autoload 'eudc-edit-hotlist "eudc-hotlist" "\
@@ -10458,8 +10209,8 @@ Edit the hotlist of directory servers in a specialized buffer.
 
 ;;;***
 \f
-;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (18088
-;;;;;;  55095))
+;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (18177
+;;;;;;  857))
 ;;; Generated autoloads from emacs-lisp/ewoc.el
 
 (autoload 'ewoc-create "ewoc" "\
@@ -10488,7 +10239,7 @@ fourth arg NOSEP non-nil inhibits this.
 ;;;### (autoloads (executable-make-buffer-file-executable-if-script-p
 ;;;;;;  executable-self-display executable-set-magic executable-interpret
 ;;;;;;  executable-command-find-posix-p) "executable" "progmodes/executable.el"
-;;;;;;  (18088 55116))
+;;;;;;  (18177 872))
 ;;; Generated autoloads from progmodes/executable.el
 
 (autoload 'executable-command-find-posix-p "executable" "\
@@ -10531,7 +10282,7 @@ file modes.
 \f
 ;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot
 ;;;;;;  expand-abbrev-hook expand-add-abbrevs) "expand" "expand.el"
-;;;;;;  (18088 55083))
+;;;;;;  (18177 859))
 ;;; Generated autoloads from expand.el
 
 (autoload 'expand-add-abbrevs "expand" "\
@@ -10580,7 +10331,7 @@ This is used only in conjunction with `expand-add-abbrevs'.
 
 ;;;***
 \f
-;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (18212 46008))
+;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (18231 31069))
 ;;; Generated autoloads from progmodes/f90.el
 
 (autoload 'f90-mode "f90" "\
@@ -10647,7 +10398,7 @@ with no args, if that value is non-nil.
 ;;;;;;  facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only
 ;;;;;;  facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu
 ;;;;;;  facemenu-set-background facemenu-set-foreground facemenu-set-face)
-;;;;;;  "facemenu" "facemenu.el" (18088 55083))
+;;;;;;  "facemenu" "facemenu.el" (18231 31060))
 ;;; Generated autoloads from facemenu.el
  (define-key global-map "\M-o" 'facemenu-keymap)
  (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap)
@@ -10812,11 +10563,51 @@ argument BUFFER-NAME is nil, it defaults to *Colors*.
 
 \(fn &optional LIST BUFFER-NAME)" t nil)
 
+;;;***
+\f
+;;;### (autoloads (turn-on-fast-lock fast-lock-mode) "fast-lock"
+;;;;;;  "obsolete/fast-lock.el" (18213 1259))
+;;; Generated autoloads from obsolete/fast-lock.el
+
+(autoload 'fast-lock-mode "fast-lock" "\
+Toggle Fast Lock mode.
+With arg, turn Fast Lock mode on if and only if arg is positive and the buffer
+is associated with a file.  Enable it automatically in your `~/.emacs' by:
+
+ (setq font-lock-support-mode 'fast-lock-mode)
+
+If Fast Lock mode is enabled, and the current buffer does not contain any text
+properties, any associated Font Lock cache is used if its timestamp matches the
+buffer's file, and its `font-lock-keywords' match those that you are using.
+
+Font Lock caches may be saved:
+- When you save the file's buffer.
+- When you kill an unmodified file's buffer.
+- When you exit Emacs, for all unmodified or saved buffers.
+Depending on the value of `fast-lock-save-events'.
+See also the commands `fast-lock-read-cache' and `fast-lock-save-cache'.
+
+Use \\[font-lock-fontify-buffer] to fontify the buffer if the cache is bad.
+
+Various methods of control are provided for the Font Lock cache.  In general,
+see variable `fast-lock-cache-directories' and function `fast-lock-cache-name'.
+For saving, see variables `fast-lock-minimum-size', `fast-lock-save-events',
+`fast-lock-save-others' and `fast-lock-save-faces'.
+
+\(fn &optional ARG)" t nil)
+
+(autoload 'turn-on-fast-lock "fast-lock" "\
+Unconditionally turn on Fast Lock mode.
+
+\(fn)" nil nil)
+
+(when (fboundp 'add-minor-mode) (defvar fast-lock-mode nil) (add-minor-mode 'fast-lock-mode nil))
+
 ;;;***
 \f
 ;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue
 ;;;;;;  feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts
-;;;;;;  feedmail-send-it) "feedmail" "mail/feedmail.el" (18192 17587))
+;;;;;;  feedmail-send-it) "feedmail" "mail/feedmail.el" (18194 36639))
 ;;; Generated autoloads from mail/feedmail.el
 
 (autoload 'feedmail-send-it "feedmail" "\
@@ -10870,7 +10661,7 @@ you can set `feedmail-queue-reminder-alist' to nil.
 ;;;***
 \f
 ;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu
-;;;;;;  find-file-at-point ffap-next) "ffap" "ffap.el" (18169 11931))
+;;;;;;  find-file-at-point ffap-next) "ffap" "ffap.el" (18190 39674))
 ;;; Generated autoloads from ffap.el
 
 (autoload 'ffap-next "ffap" "\
@@ -10929,7 +10720,7 @@ Evaluate the forms in variable `ffap-bindings'.
 ;;;### (autoloads (file-cache-minibuffer-complete file-cache-add-directory-recursively
 ;;;;;;  file-cache-add-directory-using-locate file-cache-add-directory-using-find
 ;;;;;;  file-cache-add-file file-cache-add-directory-list file-cache-add-directory)
-;;;;;;  "filecache" "filecache.el" (18169 11931))
+;;;;;;  "filecache" "filecache.el" (18190 39674))
 ;;; Generated autoloads from filecache.el
 
 (autoload 'file-cache-add-directory "filecache" "\
@@ -10988,8 +10779,8 @@ the name is considered already unique; only the second substitution
 
 ;;;***
 \f
-;;;### (autoloads (filesets-init) "filesets" "filesets.el" (18197
-;;;;;;  21668))
+;;;### (autoloads (filesets-init) "filesets" "filesets.el" (18203
+;;;;;;  51788))
 ;;; Generated autoloads from filesets.el
 
 (autoload 'filesets-init "filesets" "\
@@ -11000,7 +10791,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
 
 ;;;***
 \f
-;;;### (autoloads nil "fill" "textmodes/fill.el" (18210 22046))
+;;;### (autoloads nil "fill" "textmodes/fill.el" (18213 1260))
 ;;; Generated autoloads from textmodes/fill.el
 (put 'colon-double-space 'safe-local-variable 'booleanp)
 
@@ -11008,7 +10799,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
 \f
 ;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options
 ;;;;;;  find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el"
-;;;;;;  (18088 55084))
+;;;;;;  (18177 859))
 ;;; Generated autoloads from find-dired.el
 
 (defvar find-ls-option (if (eq system-type 'berkeley-unix) '("-ls" . "-gilsb") '("-exec ls -ld {} \\;" . "-ld")) "\
@@ -11069,7 +10860,7 @@ Thus ARG can also contain additional grep options.
 \f
 ;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file
 ;;;;;;  ff-find-other-file ff-get-other-file) "find-file" "find-file.el"
-;;;;;;  (18088 55084))
+;;;;;;  (18177 860))
 ;;; Generated autoloads from find-file.el
 
 (defvar ff-special-constructs '(("^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" lambda nil (buffer-substring (match-beginning 2) (match-end 2)))) "\
@@ -11163,7 +10954,7 @@ Visit the file you click on in another window.
 ;;;;;;  find-variable find-variable-noselect find-function-other-frame
 ;;;;;;  find-function-other-window find-function find-function-noselect
 ;;;;;;  find-function-search-for-symbol find-library) "find-func"
-;;;;;;  "emacs-lisp/find-func.el" (18200 51265))
+;;;;;;  "emacs-lisp/find-func.el" (18231 31065))
 ;;; Generated autoloads from emacs-lisp/find-func.el
 
 (autoload 'find-library "find-func" "\
@@ -11317,7 +11108,7 @@ Define some key bindings for the find-function family of functions.
 ;;;***
 \f
 ;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories
-;;;;;;  find-lisp-find-dired) "find-lisp" "find-lisp.el" (18169 11931))
+;;;;;;  find-lisp-find-dired) "find-lisp" "find-lisp.el" (18190 39675))
 ;;; Generated autoloads from find-lisp.el
 
 (autoload 'find-lisp-find-dired "find-lisp" "\
@@ -11338,7 +11129,7 @@ Change the filter on a find-lisp-find-dired buffer to REGEXP.
 ;;;***
 \f
 ;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords)
-;;;;;;  "finder" "finder.el" (18169 11931))
+;;;;;;  "finder" "finder.el" (18190 39675))
 ;;; Generated autoloads from finder.el
 
 (autoload 'finder-list-keywords "finder" "\
@@ -11360,7 +11151,7 @@ Find packages matching a given keyword.
 ;;;***
 \f
 ;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl"
-;;;;;;  "flow-ctrl.el" (18088 55084))
+;;;;;;  "flow-ctrl.el" (18177 860))
 ;;; Generated autoloads from flow-ctrl.el
 
 (autoload 'enable-flow-control "flow-ctrl" "\
@@ -11382,7 +11173,7 @@ to get the effect of a C-q.
 ;;;***
 \f
 ;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/flow-fill.el
 
 (autoload 'fill-flowed-encode "flow-fill" "\
@@ -11398,7 +11189,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode)
-;;;;;;  "flymake" "progmodes/flymake.el" (18120 34752))
+;;;;;;  "flymake" "progmodes/flymake.el" (18177 872))
 ;;; Generated autoloads from progmodes/flymake.el
 
 (autoload 'flymake-mode "flymake" "\
@@ -11422,7 +11213,7 @@ Turn flymake mode off.
 \f
 ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
 ;;;;;;  turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
-;;;;;;  "flyspell" "textmodes/flyspell.el" (18187 36841))
+;;;;;;  "flyspell" "textmodes/flyspell.el" (18231 31070))
 ;;; Generated autoloads from textmodes/flyspell.el
 
 (autoload 'flyspell-prog-mode "flyspell" "\
@@ -11492,7 +11283,7 @@ Flyspell whole buffer.
 \f
 ;;;### (autoloads (follow-delete-other-windows-and-split follow-mode
 ;;;;;;  turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el"
-;;;;;;  (18200 51264))
+;;;;;;  (18231 31061))
 ;;; Generated autoloads from follow.el
 
 (autoload 'turn-on-follow-mode "follow" "\
@@ -11565,8 +11356,8 @@ in your `~/.emacs' file, replacing [f7] by your favourite key:
 
 ;;;***
 \f
-;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (18088
-;;;;;;  55109))
+;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (18231
+;;;;;;  31069))
 ;;; Generated autoloads from mail/footnote.el
 
 (autoload 'footnote-mode "footnote" "\
@@ -11587,7 +11378,7 @@ key             binding
 ;;;***
 \f
 ;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode)
-;;;;;;  "forms" "forms.el" (18088 55084))
+;;;;;;  "forms" "forms.el" (18177 860))
 ;;; Generated autoloads from forms.el
 
 (autoload 'forms-mode "forms" "\
@@ -11624,7 +11415,7 @@ Visit a file in Forms mode in other window.
 ;;;***
 \f
 ;;;### (autoloads (fortran-mode) "fortran" "progmodes/fortran.el"
-;;;;;;  (18212 46008))
+;;;;;;  (18231 31070))
 ;;; Generated autoloads from progmodes/fortran.el
 
 (autoload 'fortran-mode "fortran" "\
@@ -11702,7 +11493,7 @@ with no args, if that value is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region
-;;;;;;  fortune-add-fortune) "fortune" "play/fortune.el" (18088 55113))
+;;;;;;  fortune-add-fortune) "fortune" "play/fortune.el" (18177 871))
 ;;; Generated autoloads from play/fortune.el
 
 (autoload 'fortune-add-fortune "fortune" "\
@@ -11752,7 +11543,7 @@ and choose the directory as the fortune-file.
 ;;;***
 \f
 ;;;### (autoloads (gdb-enable-debug gdb) "gdb-ui" "progmodes/gdb-ui.el"
-;;;;;;  (18197 21675))
+;;;;;;  (18231 31070))
 ;;; Generated autoloads from progmodes/gdb-ui.el
 
 (autoload 'gdb "gdb-ui" "\
@@ -11823,8 +11614,8 @@ Non-nil means record the process input and output in `gdb-debug-log'.")
 ;;;***
 \f
 ;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal
-;;;;;;  define-generic-mode) "generic" "emacs-lisp/generic.el" (18173
-;;;;;;  8195))
+;;;;;;  define-generic-mode) "generic" "emacs-lisp/generic.el" (18190
+;;;;;;  39682))
 ;;; Generated autoloads from emacs-lisp/generic.el
 
 (defvar generic-mode-list nil "\
@@ -11899,7 +11690,7 @@ regular expression that can be used as an element of
 ;;;***
 \f
 ;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el"
-;;;;;;  (18088 55116))
+;;;;;;  (18177 872))
 ;;; Generated autoloads from progmodes/glasses.el
 
 (autoload 'glasses-mode "glasses" "\
@@ -11913,7 +11704,7 @@ at places they belong to.
 \f
 ;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error
 ;;;;;;  gmm-message gmm-regexp-concat) "gmm-utils" "gnus/gmm-utils.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/gmm-utils.el
 
 (autoload 'gmm-regexp-concat "gmm-utils" "\
@@ -11966,7 +11757,7 @@ DEFAULT-MAP specifies the default key map for ICON-LIST.
 ;;;***
 \f
 ;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server
-;;;;;;  gnus-slave-no-server) "gnus" "gnus/gnus.el" (18212 46007))
+;;;;;;  gnus-slave-no-server) "gnus" "gnus/gnus.el" (18231 31066))
 ;;; Generated autoloads from gnus/gnus.el
 (when (fboundp 'custom-autoload)
  (custom-autoload 'gnus-select-method "gnus"))
@@ -12019,7 +11810,7 @@ prompt the user for the name of an NNTP server to use.
 ;;;;;;  gnus-agent-get-undownloaded-list gnus-agent-delete-group
 ;;;;;;  gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize
 ;;;;;;  gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent"
-;;;;;;  "gnus/gnus-agent.el" (18212 46006))
+;;;;;;  "gnus/gnus-agent.el" (18231 31065))
 ;;; Generated autoloads from gnus/gnus-agent.el
 
 (autoload 'gnus-unplugged "gnus-agent" "\
@@ -12110,7 +11901,7 @@ If CLEAN, obsolete (ignore).
 ;;;***
 \f
 ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/gnus-art.el
 
 (autoload 'gnus-article-prepare-display "gnus-art" "\
@@ -12121,7 +11912,7 @@ Make the current buffer look like a nice article.
 ;;;***
 \f
 ;;;### (autoloads (gnus-audio-play) "gnus-audio" "gnus/gnus-audio.el"
-;;;;;;  (18088 55102))
+;;;;;;  (18177 860))
 ;;; Generated autoloads from gnus/gnus-audio.el
 
 (autoload 'gnus-audio-play "gnus-audio" "\
@@ -12132,7 +11923,7 @@ Play a sound FILE through the speaker.
 ;;;***
 \f
 ;;;### (autoloads (gnus-bookmark-bmenu-list gnus-bookmark-jump gnus-bookmark-set)
-;;;;;;  "gnus-bookmark" "gnus/gnus-bookmark.el" (18212 21481))
+;;;;;;  "gnus-bookmark" "gnus/gnus-bookmark.el" (18230 21278))
 ;;; Generated autoloads from gnus/gnus-bookmark.el
 
 (autoload 'gnus-bookmark-set "gnus-bookmark" "\
@@ -12157,8 +11948,8 @@ deletion, or > if it is flagged for displaying.
 \f
 ;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group
 ;;;;;;  gnus-cache-generate-nov-databases gnus-cache-generate-active
-;;;;;;  gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (18212
-;;;;;;  46006))
+;;;;;;  gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (18231
+;;;;;;  31065))
 ;;; Generated autoloads from gnus/gnus-cache.el
 
 (autoload 'gnus-jog-cache "gnus-cache" "\
@@ -12200,7 +11991,7 @@ supported.
 ;;;***
 \f
 ;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article)
-;;;;;;  "gnus-delay" "gnus/gnus-delay.el" (18212 46006))
+;;;;;;  "gnus-delay" "gnus/gnus-delay.el" (18231 31065))
 ;;; Generated autoloads from gnus/gnus-delay.el
 
 (autoload 'gnus-delay-article "gnus-delay" "\
@@ -12236,7 +12027,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d)
-;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (18212 46006))
+;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (18231 31065))
 ;;; Generated autoloads from gnus/gnus-diary.el
 
 (autoload 'gnus-user-format-function-d "gnus-diary" "\
@@ -12252,7 +12043,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/gnus-dired.el
 
 (autoload 'turn-on-gnus-dired-mode "gnus-dired" "\
@@ -12263,7 +12054,7 @@ Convenience method to turn on gnus-dired-mode.
 ;;;***
 \f
 ;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/gnus-draft.el
 
 (autoload 'gnus-draft-reminder "gnus-draft" "\
@@ -12275,8 +12066,8 @@ Reminder user if there are unsent drafts.
 \f
 ;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png
 ;;;;;;  gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header
-;;;;;;  gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (18212
-;;;;;;  46006))
+;;;;;;  gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (18231
+;;;;;;  31065))
 ;;; Generated autoloads from gnus/gnus-fun.el
 
 (autoload 'gnus-random-x-face "gnus-fun" "\
@@ -12321,7 +12112,7 @@ FILE should be a PNG file that's 48x48 and smaller than or equal to
 ;;;***
 \f
 ;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group)
-;;;;;;  "gnus-group" "gnus/gnus-group.el" (18212 46006))
+;;;;;;  "gnus-group" "gnus/gnus-group.el" (18231 31065))
 ;;; Generated autoloads from gnus/gnus-group.el
 
 (autoload 'gnus-fetch-group "gnus-group" "\
@@ -12339,7 +12130,7 @@ Pop up a frame and enter GROUP.
 ;;;***
 \f
 ;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/gnus-kill.el
 
 (defalias 'gnus-batch-kill 'gnus-batch-score)
@@ -12354,7 +12145,7 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score
 \f
 ;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate
 ;;;;;;  turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/gnus-ml.el
 
 (autoload 'turn-on-gnus-mailing-list-mode "gnus-ml" "\
@@ -12379,7 +12170,7 @@ Minor mode for providing mailing-list commands.
 \f
 ;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update
 ;;;;;;  gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/gnus-mlspl.el
 
 (autoload 'gnus-group-split-setup "gnus-mlspl" "\
@@ -12480,7 +12271,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
 ;;;***
 \f
 ;;;### (autoloads (gnus-change-server) "gnus-move" "gnus/gnus-move.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/gnus-move.el
 
 (autoload 'gnus-change-server "gnus-move" "\
@@ -12492,7 +12283,7 @@ Update the .newsrc.eld file to reflect the change of nntp server.
 ;;;***
 \f
 ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
-;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (18212 46006))
+;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (18231 31065))
 ;;; Generated autoloads from gnus/gnus-msg.el
 
 (autoload 'gnus-msg-mail "gnus-msg" "\
@@ -12517,7 +12308,7 @@ Like `message-reply'.
 ;;;***
 \f
 ;;;### (autoloads (gnus-nocem-load-cache gnus-nocem-scan-groups)
-;;;;;;  "gnus-nocem" "gnus/gnus-nocem.el" (18212 46006))
+;;;;;;  "gnus-nocem" "gnus/gnus-nocem.el" (18231 31065))
 ;;; Generated autoloads from gnus/gnus-nocem.el
 
 (autoload 'gnus-nocem-scan-groups "gnus-nocem" "\
@@ -12534,7 +12325,7 @@ Load the NoCeM cache.
 \f
 ;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon
 ;;;;;;  gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from gnus/gnus-picon.el
 
 (autoload 'gnus-treat-from-picon "gnus-picon" "\
@@ -12561,7 +12352,7 @@ If picons are already displayed, remove them.
 ;;;;;;  gnus-sorted-nintersection gnus-sorted-range-intersection
 ;;;;;;  gnus-sorted-intersection gnus-intersection gnus-sorted-complement
 ;;;;;;  gnus-sorted-ndifference gnus-sorted-difference) "gnus-range"
-;;;;;;  "gnus/gnus-range.el" (18212 46006))
+;;;;;;  "gnus/gnus-range.el" (18231 31066))
 ;;; Generated autoloads from gnus/gnus-range.el
 
 (autoload 'gnus-sorted-difference "gnus-range" "\
@@ -12629,7 +12420,7 @@ Add NUM into sorted LIST by side effect.
 ;;;***
 \f
 ;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize)
-;;;;;;  "gnus-registry" "gnus/gnus-registry.el" (18212 46006))
+;;;;;;  "gnus-registry" "gnus/gnus-registry.el" (18231 31066))
 ;;; Generated autoloads from gnus/gnus-registry.el
 
 (autoload 'gnus-registry-initialize "gnus-registry" "\
@@ -12645,8 +12436,8 @@ Install the registry hooks.
 ;;;***
 \f
 ;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate
-;;;;;;  gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (18088
-;;;;;;  55103))
+;;;;;;  gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (18177
+;;;;;;  861))
 ;;; Generated autoloads from gnus/gnus-sieve.el
 
 (autoload 'gnus-sieve-update "gnus-sieve" "\
@@ -12674,7 +12465,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (gnus-batch-brew-soup) "gnus-soup" "gnus/gnus-soup.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31066))
 ;;; Generated autoloads from gnus/gnus-soup.el
 
 (autoload 'gnus-batch-brew-soup "gnus-soup" "\
@@ -12694,7 +12485,7 @@ Note -- this function hasn't been implemented yet.
 ;;;***
 \f
 ;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el"
-;;;;;;  (18212 46006))
+;;;;;;  (18231 31066))
 ;;; Generated autoloads from gnus/gnus-spec.el
 
 (autoload 'gnus-update-format "gnus-spec" "\
@@ -12705,8 +12496,8 @@ Update the format specification near point.
 ;;;***
 \f
 ;;;### (autoloads (gnus-fixup-nnimap-unread-after-getting-new-news
-;;;;;;  gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (18212
-;;;;;;  46006))
+;;;;;;  gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (18231
+;;;;;;  31066))
 ;;; Generated autoloads from gnus/gnus-start.el
 
 (autoload 'gnus-declare-backend "gnus-start" "\
@@ -12722,7 +12513,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31066))
 ;;; Generated autoloads from gnus/gnus-win.el
 
 (autoload 'gnus-add-configuration "gnus-win" "\
@@ -12732,7 +12523,7 @@ Add the window configuration CONF to `gnus-buffer-configuration'.
 
 ;;;***
 \f
-;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (18088 55114))
+;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (18177 871))
 ;;; Generated autoloads from play/gomoku.el
 
 (autoload 'gomoku "gomoku" "\
@@ -12759,7 +12550,7 @@ Use \\[describe-mode] for more info.
 ;;;***
 \f
 ;;;### (autoloads (goto-address goto-address-at-point) "goto-addr"
-;;;;;;  "net/goto-addr.el" (18088 55111))
+;;;;;;  "net/goto-addr.el" (18177 869))
 ;;; Generated autoloads from net/goto-addr.el
 
 (define-obsolete-function-alias 'goto-address-at-mouse 'goto-address-at-point "22.1")
@@ -12789,7 +12580,7 @@ Also fontifies the buffer appropriately (see `goto-address-fontify-p' and
 \f
 ;;;### (autoloads (rgrep lgrep grep-find grep grep-mode grep-compute-defaults
 ;;;;;;  grep-process-setup grep-setup-hook grep-find-command grep-command
-;;;;;;  grep-window-height) "grep" "progmodes/grep.el" (18135 53075))
+;;;;;;  grep-window-height) "grep" "progmodes/grep.el" (18190 39684))
 ;;; Generated autoloads from progmodes/grep.el
 
 (defvar grep-window-height nil "\
@@ -12929,7 +12720,7 @@ This command shares argument histories with \\[lgrep] and \\[grep-find].
 
 ;;;***
 \f
-;;;### (autoloads (gs-load-image) "gs" "gs.el" (18088 55084))
+;;;### (autoloads (gs-load-image) "gs" "gs.el" (18177 863))
 ;;; Generated autoloads from gs.el
 
 (autoload 'gs-load-image "gs" "\
@@ -12943,22 +12734,13 @@ the form \"WINDOW-ID PIXMAP-ID\".  Value is non-nil if successful.
 ;;;***
 \f
 ;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gud-gdb)
-;;;;;;  "gud" "progmodes/gud.el" (18214 4763))
+;;;;;;  "gud" "progmodes/gud.el" (18231 31070))
 ;;; Generated autoloads from progmodes/gud.el
 
 (autoload 'gud-gdb "gud" "\
 Run gdb on program FILE in buffer *gud-FILE*.
 The directory containing FILE becomes the initial working
-directory and source-file directory for your debugger.  By
-default this command starts GDB using a graphical interface.  See
-`gdba' for more information.
-
-To run GDB in text command mode, replace the GDB \"--annotate=3\"
-option with \"--fullname\" either in the minibuffer for the
-current Emacs session, or the custom variable
-`gud-gdb-command-name' for all future sessions.  You need to use
-text command mode to debug multiple programs within one Emacs
-session.
+directory and source-file directory for your debugger.
 
 \(fn COMMAND-LINE)" t nil)
 
@@ -13026,8 +12808,8 @@ Major mode for editing GDB scripts
 
 ;;;***
 \f
-;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (18202
-;;;;;;  4002))
+;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (18213
+;;;;;;  1259))
 ;;; Generated autoloads from play/handwrite.el
 
 (autoload 'handwrite "handwrite" "\
@@ -13045,7 +12827,7 @@ Variables: handwrite-linespace     (default 12)
 ;;;***
 \f
 ;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el"
-;;;;;;  (17822 31019))
+;;;;;;  (17928 6535))
 ;;; Generated autoloads from play/hanoi.el
 
 (autoload 'hanoi "hanoi" "\
@@ -13074,7 +12856,7 @@ to be updated.
 \f
 ;;;### (autoloads (mail-check-payment mail-add-payment-async mail-add-payment
 ;;;;;;  hashcash-verify-payment hashcash-insert-payment-async hashcash-insert-payment)
-;;;;;;  "hashcash" "gnus/hashcash.el" (18212 21477))
+;;;;;;  "hashcash" "gnus/hashcash.el" (18230 21282))
 ;;; Generated autoloads from gnus/hashcash.el
 
 (autoload 'hashcash-insert-payment "hashcash" "\
@@ -13119,7 +12901,7 @@ Prefix arg sets default accept amount temporarily.
 ;;;### (autoloads (scan-buf-previous-region scan-buf-next-region
 ;;;;;;  scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer
 ;;;;;;  help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string
-;;;;;;  help-at-pt-string) "help-at-pt" "help-at-pt.el" (18088 55084))
+;;;;;;  help-at-pt-string) "help-at-pt" "help-at-pt.el" (18231 31061))
 ;;; Generated autoloads from help-at-pt.el
 
 (autoload 'help-at-pt-string "help-at-pt" "\
@@ -13249,7 +13031,7 @@ different regions.  With numeric argument ARG, behaves like
 ;;;### (autoloads (describe-categories describe-syntax describe-variable
 ;;;;;;  variable-at-point describe-function-1 describe-simplify-lib-file-name
 ;;;;;;  help-C-file-name describe-function) "help-fns" "help-fns.el"
-;;;;;;  (18201 33325))
+;;;;;;  (18231 31061))
 ;;; Generated autoloads from help-fns.el
 
 (autoload 'describe-function "help-fns" "\
@@ -13307,7 +13089,7 @@ BUFFER should be a buffer or a buffer name.
 ;;;***
 \f
 ;;;### (autoloads (three-step-help) "help-macro" "help-macro.el"
-;;;;;;  (18088 55084))
+;;;;;;  (18177 863))
 ;;; Generated autoloads from help-macro.el
 
 (defvar three-step-help nil "\
@@ -13322,8 +13104,9 @@ A value of nil means skip the middle step, so that
 ;;;***
 \f
 ;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button
-;;;;;;  help-make-xrefs help-setup-xref help-mode-finish help-mode-setup
-;;;;;;  help-mode) "help-mode" "help-mode.el" (18120 34749))
+;;;;;;  help-make-xrefs help-buffer help-setup-xref help-mode-finish
+;;;;;;  help-mode-setup help-mode) "help-mode" "help-mode.el" (18231
+;;;;;;  31061))
 ;;; Generated autoloads from help-mode.el
 
 (autoload 'help-mode "help-mode" "\
@@ -13358,6 +13141,11 @@ restore it properly when going back.
 
 \(fn ITEM INTERACTIVE-P)" nil nil)
 
+(autoload 'help-buffer "help-mode" "\
+Not documented
+
+\(fn)" nil nil)
+
 (autoload 'help-make-xrefs "help-mode" "\
 Parse and hyperlink documentation cross-references in the given BUFFER.
 
@@ -13406,7 +13194,7 @@ Add xrefs for symbols in `pp's output between FROM and TO.
 ;;;***
 \f
 ;;;### (autoloads (Helper-help Helper-describe-bindings) "helper"
-;;;;;;  "emacs-lisp/helper.el" (18088 55096))
+;;;;;;  "emacs-lisp/helper.el" (18177 858))
 ;;; Generated autoloads from emacs-lisp/helper.el
 
 (autoload 'Helper-describe-bindings "helper" "\
@@ -13422,7 +13210,7 @@ Provide help for current mode.
 ;;;***
 \f
 ;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl"
-;;;;;;  "hexl.el" (18211 32385))
+;;;;;;  "hexl.el" (18213 1254))
 ;;; Generated autoloads from hexl.el
 
 (autoload 'hexl-mode "hexl" "\
@@ -13519,7 +13307,7 @@ This discards the buffer's undo information.
 ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
 ;;;;;;  hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
 ;;;;;;  global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el"
-;;;;;;  (18169 11931))
+;;;;;;  (18190 39676))
 ;;; Generated autoloads from hi-lock.el
 
 (autoload 'hi-lock-mode "hi-lock" "\
@@ -13649,7 +13437,7 @@ be found in variable `hi-lock-interactive-patterns'.
 ;;;***
 \f
 ;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially
-;;;;;;  hide-ifdef-mode) "hideif" "progmodes/hideif.el" (18088 55116))
+;;;;;;  hide-ifdef-mode) "hideif" "progmodes/hideif.el" (18177 872))
 ;;; Generated autoloads from progmodes/hideif.el
 
 (autoload 'hide-ifdef-mode "hideif" "\
@@ -13704,7 +13492,7 @@ how the hiding is done:
 ;;;***
 \f
 ;;;### (autoloads (turn-off-hideshow hs-minor-mode) "hideshow" "progmodes/hideshow.el"
-;;;;;;  (18128 32656))
+;;;;;;  (18177 873))
 ;;; Generated autoloads from progmodes/hideshow.el
 
 (defvar hs-special-modes-alist '((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning)) "\
@@ -13767,7 +13555,7 @@ Unconditionally turn off `hs-minor-mode'.
 ;;;;;;  highlight-compare-buffers highlight-changes-rotate-faces
 ;;;;;;  highlight-changes-previous-change highlight-changes-next-change
 ;;;;;;  highlight-changes-mode highlight-changes-remove-highlight)
-;;;;;;  "hilit-chg" "hilit-chg.el" (18120 34749))
+;;;;;;  "hilit-chg" "hilit-chg.el" (18177 863))
 ;;; Generated autoloads from hilit-chg.el
 
 (autoload 'highlight-changes-remove-highlight "hilit-chg" "\
@@ -13897,7 +13685,7 @@ variable `highlight-changes-global-changes-existing-buffers' is non-nil).
 ;;;;;;  hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction
 ;;;;;;  hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space
 ;;;;;;  hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp"
-;;;;;;  "hippie-exp.el" (18088 55085))
+;;;;;;  "hippie-exp.el" (18177 863))
 ;;; Generated autoloads from hippie-exp.el
 
 (defvar hippie-expand-try-functions-list '(try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol) "\
@@ -13970,7 +13758,7 @@ argument VERBOSE non-nil makes the function verbose.
 ;;;***
 \f
 ;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el"
-;;;;;;  (18088 55085))
+;;;;;;  (18177 863))
 ;;; Generated autoloads from hl-line.el
 
 (autoload 'hl-line-mode "hl-line" "\
@@ -14011,7 +13799,7 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and
 ;;;***
 \f
 ;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el"
-;;;;;;  (18157 34340))
+;;;;;;  (18190 39681))
 ;;; Generated autoloads from calendar/holidays.el
 
 (autoload 'holidays "holidays" "\
@@ -14047,8 +13835,8 @@ The optional LABEL is used to label the buffer created.
 
 ;;;***
 \f
-;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (18212
-;;;;;;  46007))
+;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (18231
+;;;;;;  31066))
 ;;; Generated autoloads from gnus/html2text.el
 
 (autoload 'html2text "html2text" "\
@@ -14080,7 +13868,7 @@ Convert HTML to plain text in the current buffer.
 ;;;;;;  ibuffer-backward-filter-group ibuffer-forward-filter-group
 ;;;;;;  ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
 ;;;;;;  ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
-;;;;;;  ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (18208 48750))
+;;;;;;  ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (18213 1254))
 ;;; Generated autoloads from ibuf-ext.el
 
 (autoload 'ibuffer-auto-mode "ibuf-ext" "\
@@ -14442,8 +14230,8 @@ defaults to one.
 ;;;***
 \f
 ;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter
-;;;;;;  define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (18088
-;;;;;;  55085))
+;;;;;;  define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (18177
+;;;;;;  863))
 ;;; Generated autoloads from ibuf-macs.el
 
 (autoload 'define-ibuffer-column "ibuf-macs" "\
@@ -14532,7 +14320,7 @@ bound to the current value of the filter.
 ;;;***
 \f
 ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers)
-;;;;;;  "ibuffer" "ibuffer.el" (18120 34749))
+;;;;;;  "ibuffer" "ibuffer.el" (18177 864))
 ;;; Generated autoloads from ibuffer.el
 
 (autoload 'ibuffer-list-buffers "ibuffer" "\
@@ -14573,7 +14361,7 @@ FORMATS is the value to use for `ibuffer-formats'.
 \f
 ;;;### (autoloads (icalendar-import-buffer icalendar-import-file
 ;;;;;;  icalendar-export-region icalendar-export-file) "icalendar"
-;;;;;;  "calendar/icalendar.el" (18173 8195))
+;;;;;;  "calendar/icalendar.el" (18190 39681))
 ;;; Generated autoloads from calendar/icalendar.el
 
 (autoload 'icalendar-export-file "icalendar" "\
@@ -14625,8 +14413,8 @@ buffer `*icalendar-errors*'.
 
 ;;;***
 \f
-;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (18120
-;;;;;;  34749))
+;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (18177
+;;;;;;  864))
 ;;; Generated autoloads from icomplete.el
 
 (defvar icomplete-mode nil "\
@@ -14647,7 +14435,7 @@ otherwise turn it off.
 
 ;;;***
 \f
-;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (18088 55116))
+;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (18177 873))
 ;;; Generated autoloads from progmodes/icon.el
 
 (autoload 'icon-mode "icon" "\
@@ -14688,7 +14476,7 @@ with no args, if that value is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el"
-;;;;;;  (18201 33329))
+;;;;;;  (18203 51791))
 ;;; Generated autoloads from progmodes/idlw-shell.el
 
 (autoload 'idlwave-shell "idlw-shell" "\
@@ -14714,7 +14502,7 @@ See also the variable `idlwave-shell-prompt-pattern'.
 ;;;***
 \f
 ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
-;;;;;;  (18197 21676))
+;;;;;;  (18195 4247))
 ;;; Generated autoloads from progmodes/idlwave.el
 
 (autoload 'idlwave-mode "idlwave" "\
@@ -14849,8 +14637,8 @@ The main features of this mode are
 ;;;;;;  ido-find-alternate-file ido-find-file-other-window ido-find-file
 ;;;;;;  ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer
 ;;;;;;  ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window
-;;;;;;  ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (18169
-;;;;;;  11931))
+;;;;;;  ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (18231
+;;;;;;  31061))
 ;;; Generated autoloads from ido.el
 
 (defvar ido-mode nil "\
@@ -15111,7 +14899,7 @@ DEF, if non-nil, is the default value.
 
 ;;;***
 \f
-;;;### (autoloads (ielm) "ielm" "ielm.el" (18214 4479))
+;;;### (autoloads (ielm) "ielm" "ielm.el" (18231 31061))
 ;;; Generated autoloads from ielm.el
  (add-hook 'same-window-buffer-names "*ielm*")
 
@@ -15124,7 +14912,7 @@ Switches to the buffer `*ielm*', or creates it if it does not exist.
 ;;;***
 \f
 ;;;### (autoloads (iimage-mode turn-on-iimage-mode) "iimage" "iimage.el"
-;;;;;;  (18088 55085))
+;;;;;;  (18231 31061))
 ;;; Generated autoloads from iimage.el
 
 (autoload 'turn-on-iimage-mode "iimage" "\
@@ -15143,7 +14931,7 @@ Toggle inline image minor mode.
 ;;;;;;  insert-image put-image create-image image-type-auto-detected-p
 ;;;;;;  image-type-available-p image-type image-type-from-file-name
 ;;;;;;  image-type-from-file-header image-type-from-buffer image-type-from-data)
-;;;;;;  "image" "image.el" (18186 14736))
+;;;;;;  "image" "image.el" (18190 39676))
 ;;; Generated autoloads from image.el
 
 (autoload 'image-type-from-data "image" "\
@@ -15326,7 +15114,7 @@ Example:
 ;;;;;;  image-dired-jump-thumbnail-buffer image-dired-delete-tag
 ;;;;;;  image-dired-tag-files image-dired-show-all-from-dir image-dired-display-thumbs
 ;;;;;;  image-dired-dired-with-window-configuration image-dired-dired-insert-marked-thumbs)
-;;;;;;  "image-dired" "image-dired.el" (18202 3995))
+;;;;;;  "image-dired" "image-dired.el" (18213 1254))
 ;;; Generated autoloads from image-dired.el
 
 (autoload 'image-dired-dired-insert-marked-thumbs "image-dired" "\
@@ -15460,7 +15248,7 @@ easy-to-use form.
 \f
 ;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp
 ;;;;;;  image-file-name-regexps image-file-name-extensions) "image-file"
-;;;;;;  "image-file.el" (18123 58387))
+;;;;;;  "image-file.el" (18177 864))
 ;;; Generated autoloads from image-file.el
 
 (defvar image-file-name-extensions '("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm" "svg") "\
@@ -15522,7 +15310,7 @@ Image files are those whose name has an extension in
 ;;;***
 \f
 ;;;### (autoloads (image-mode-maybe image-minor-mode image-mode)
-;;;;;;  "image-mode" "image-mode.el" (18132 64031))
+;;;;;;  "image-mode" "image-mode.el" (18231 31061))
 ;;; Generated autoloads from image-mode.el
  (push '("\\.jpe?g\\'"    . image-mode) auto-mode-alist)
  (push '("\\.png\\'"      . image-mode) auto-mode-alist)
@@ -15563,7 +15351,7 @@ information on these modes.
 ;;;***
 \f
 ;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar
-;;;;;;  imenu-sort-function) "imenu" "imenu.el" (18120 34749))
+;;;;;;  imenu-sort-function) "imenu" "imenu.el" (18177 864))
 ;;; Generated autoloads from imenu.el
 
 (defvar imenu-sort-function nil "\
@@ -15676,9 +15464,9 @@ for more information.
 
 ;;;***
 \f
-;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion
+;;;### (autoloads (indian-2-column-to-ucs-region in-is13194-pre-write-conversion
 ;;;;;;  in-is13194-post-read-conversion indian-compose-string indian-compose-region)
-;;;;;;  "ind-util" "language/ind-util.el" (18088 55109))
+;;;;;;  "ind-util" "language/ind-util.el" (18177 866))
 ;;; Generated autoloads from language/ind-util.el
 
 (autoload 'indian-compose-region "ind-util" "\
@@ -15701,27 +15489,16 @@ Not documented
 
 \(fn FROM TO)" nil nil)
 
-(autoload 'indian-glyph-char "ind-util" "\
-Return character of charset `indian-glyph' made from glyph index INDEX.
-The variable `indian-default-script' specifies the script of the glyph.
-Optional argument SCRIPT, if non-nil, overrides `indian-default-script'.
-See also the function `indian-char-glyph'.
-
-\(fn INDEX &optional SCRIPT)" nil nil)
-
-(autoload 'indian-char-glyph "ind-util" "\
-Return information about the glyph code for CHAR of `indian-glyph' charset.
-The value is (INDEX . SCRIPT), where INDEX is the glyph index
-in the font that Indian script name SCRIPT specifies.
-See also the function `indian-glyph-char'.
+(autoload 'indian-2-column-to-ucs-region "ind-util" "\
+Convert old Emacs Devanagari characters to UCS.
 
-\(fn CHAR)" nil nil)
+\(fn FROM TO)" t nil)
 
 ;;;***
 \f
 ;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command
 ;;;;;;  inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp"
-;;;;;;  "progmodes/inf-lisp.el" (18088 55117))
+;;;;;;  "progmodes/inf-lisp.el" (18177 873))
 ;;; Generated autoloads from progmodes/inf-lisp.el
 
 (defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\
@@ -15788,7 +15565,7 @@ of `inferior-lisp-program').  Runs the hooks from
 ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node
 ;;;;;;  Info-goto-emacs-command-node Info-mode info-apropos Info-index
 ;;;;;;  Info-directory Info-on-current-buffer info-standalone info-emacs-manual
-;;;;;;  info info-other-window) "info" "info.el" (18132 64031))
+;;;;;;  info info-other-window) "info" "info.el" (18231 31061))
 ;;; Generated autoloads from info.el
 
 (autoload 'info-other-window "info" "\
@@ -15954,7 +15731,7 @@ This will add a speedbar major display mode.
 \f
 ;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file
 ;;;;;;  info-lookup-symbol info-lookup-reset) "info-look" "info-look.el"
-;;;;;;  (18120 34749))
+;;;;;;  (18177 864))
 ;;; Generated autoloads from info-look.el
 
 (autoload 'info-lookup-reset "info-look" "\
@@ -16002,7 +15779,7 @@ Perform completion on file preceding point.
 ;;;***
 \f
 ;;;### (autoloads (info-xref-check-all-custom info-xref-check-all
-;;;;;;  info-xref-check) "info-xref" "info-xref.el" (18088 55085))
+;;;;;;  info-xref-check) "info-xref" "info-xref.el" (18177 864))
 ;;; Generated autoloads from info-xref.el
 
 (autoload 'info-xref-check "info-xref" "\
@@ -16029,7 +15806,7 @@ quite a while.
 ;;;***
 \f
 ;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify)
-;;;;;;  "informat" "informat.el" (18088 55086))
+;;;;;;  "informat" "informat.el" (18177 864))
 ;;; Generated autoloads from informat.el
 
 (autoload 'Info-tagify "informat" "\
@@ -16069,7 +15846,7 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\"
 ;;;***
 \f
 ;;;### (autoloads (isearch-buffers-minor-mode) "isearch-multi" "isearch-multi.el"
-;;;;;;  (18210 13714))
+;;;;;;  (18211 184))
 ;;; Generated autoloads from isearch-multi.el
 
 (defvar isearch-buffers-current-buffer nil "\
@@ -16103,7 +15880,7 @@ With arg, turn isearch-buffers minor mode on if arg is positive, off otherwise.
 \f
 ;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method
 ;;;;;;  isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el"
-;;;;;;  (18088 55107))
+;;;;;;  (18177 864))
 ;;; Generated autoloads from international/isearch-x.el
 
 (autoload 'isearch-toggle-specified-input-method "isearch-x" "\
@@ -16123,8 +15900,8 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (18088
-;;;;;;  55086))
+;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (18177
+;;;;;;  865))
 ;;; Generated autoloads from isearchb.el
 
 (autoload 'isearchb-activate "isearchb" "\
@@ -16135,59 +15912,97 @@ accessed via isearchb.
 
 \(fn)" t nil)
 
+;;;***
+\f
+;;;### (autoloads (iso-accents-mode) "iso-acc" "obsolete/iso-acc.el"
+;;;;;;  (18177 870))
+;;; Generated autoloads from obsolete/iso-acc.el
+
+(autoload 'iso-accents-mode "iso-acc" "\
+Toggle ISO Accents mode, in which accents modify the following letter.
+This permits easy insertion of accented characters according to ISO-8859-1.
+When Iso-accents mode is enabled, accent character keys
+\(`, ', \", ^, / and ~) do not self-insert; instead, they modify the following
+letter key so that it inserts an ISO accented letter.
+
+You can customize ISO Accents mode to a particular language
+with the command `iso-accents-customize'.
+
+Special combinations: ~c gives a c with cedilla,
+~d gives an Icelandic eth (d with dash).
+~t gives an Icelandic thorn.
+\"s gives German sharp s.
+/a gives a with ring.
+/e gives an a-e ligature.
+~< and ~> give guillemots.
+~! gives an inverted exclamation mark.
+~? gives an inverted question mark.
+
+With an argument, a positive argument enables ISO Accents mode,
+and a negative argument disables it.
+
+\(fn &optional ARG)" t nil)
+
 ;;;***
 \f
 ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
 ;;;;;;  iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
 ;;;;;;  iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
-;;;;;;  "international/iso-cvt.el" (18088 55107))
+;;;;;;  "international/iso-cvt.el" (18231 31069))
 ;;; Generated autoloads from international/iso-cvt.el
 
 (autoload 'iso-spanish "iso-cvt" "\
 Translate net conventions for Spanish to ISO 8859-1.
-The region between FROM and TO is translated using the table TRANS-TAB.
+The region between FROM and TO is translated using
+the table `iso-spanish-trans-tab'.
 Optional arg BUFFER is ignored (for use in `format-alist').
 
 \(fn FROM TO &optional BUFFER)" t nil)
 
 (autoload 'iso-german "iso-cvt" "\
 Translate net conventions for German to ISO 8859-1.
-The region between FROM and TO is translated using the table TRANS-TAB.
+The region between FROM and TO is translated using
+the table `iso-german-trans-tab'.
 Optional arg BUFFER is ignored (for use in `format-alist').
 
 \(fn FROM TO &optional BUFFER)" t nil)
 
 (autoload 'iso-iso2tex "iso-cvt" "\
 Translate ISO 8859-1 characters to TeX sequences.
-The region between FROM and TO is translated using the table TRANS-TAB.
+The region between FROM and TO is translated using
+the table `iso-iso2tex-trans-tab'.
 Optional arg BUFFER is ignored (for use in `format-alist').
 
 \(fn FROM TO &optional BUFFER)" t nil)
 
 (autoload 'iso-tex2iso "iso-cvt" "\
 Translate TeX sequences to ISO 8859-1 characters.
-The region between FROM and TO is translated using the table TRANS-TAB.
+The region between FROM and TO is translated using
+the table `iso-tex2iso-trans-tab'.
 Optional arg BUFFER is ignored (for use in `format-alist').
 
 \(fn FROM TO &optional BUFFER)" t nil)
 
 (autoload 'iso-gtex2iso "iso-cvt" "\
 Translate German TeX sequences to ISO 8859-1 characters.
-The region between FROM and TO is translated using the table TRANS-TAB.
+The region between FROM and TO is translated using
+the table `iso-gtex2iso-trans-tab'.
 Optional arg BUFFER is ignored (for use in `format-alist').
 
 \(fn FROM TO &optional BUFFER)" t nil)
 
 (autoload 'iso-iso2gtex "iso-cvt" "\
 Translate ISO 8859-1 characters to German TeX sequences.
-The region between FROM and TO is translated using the table TRANS-TAB.
+The region between FROM and TO is translated using
+the table `iso-iso2gtex-trans-tab'.
 Optional arg BUFFER is ignored (for use in `format-alist').
 
 \(fn FROM TO &optional BUFFER)" t nil)
 
 (autoload 'iso-iso2duden "iso-cvt" "\
-Translate ISO 8859-1 characters to German TeX sequences.
-The region between FROM and TO is translated using the table TRANS-TAB.
+Translate ISO 8859-1 characters to Duden sequences.
+The region between FROM and TO is translated using
+the table `iso-iso2duden-trans-tab'.
 Optional arg BUFFER is ignored (for use in `format-alist').
 
 \(fn FROM TO &optional BUFFER)" t nil)
@@ -16224,7 +16039,7 @@ Add submenus to the File menu, to convert to and from various formats.
 ;;;***
 \f
 ;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
-;;;;;;  (18088 55107))
+;;;;;;  (18177 864))
 ;;; Generated autoloads from international/iso-transl.el
  (or key-translation-map (setq key-translation-map (make-sparse-keymap)))
  (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
@@ -16237,7 +16052,7 @@ Add submenus to the File menu, to convert to and from various formats.
 ;;;;;;  ispell-region ispell-change-dictionary ispell-kill-ispell
 ;;;;;;  ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist
 ;;;;;;  ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
-;;;;;;  (18200 51267))
+;;;;;;  (18203 51792))
 ;;; Generated autoloads from textmodes/ispell.el
 (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
 
@@ -16528,8 +16343,8 @@ You can bind this to the key C-c i in GNUS or mail by adding to
 
 ;;;***
 \f
-;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (18120
-;;;;;;  34749))
+;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (18177
+;;;;;;  865))
 ;;; Generated autoloads from iswitchb.el
 
 (defvar iswitchb-mode nil "\
@@ -16554,7 +16369,7 @@ This mode enables switching between buffers using substrings.  See
 ;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region
 ;;;;;;  japanese-hiragana-region japanese-katakana-region japanese-zenkaku
 ;;;;;;  japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal)
-;;;;;;  "japan-util" "language/japan-util.el" (18088 55109))
+;;;;;;  "japan-util" "language/japan-util.el" (18177 866))
 ;;; Generated autoloads from language/japan-util.el
 
 (autoload 'setup-japanese-environment-internal "japan-util" "\
@@ -16632,7 +16447,7 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading.
 ;;;***
 \f
 ;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr"
-;;;;;;  "jka-compr.el" (18088 55086))
+;;;;;;  "jka-compr.el" (18177 866))
 ;;; Generated autoloads from jka-compr.el
 
 (defvar jka-compr-inhibit nil "\
@@ -16657,7 +16472,7 @@ by `jka-compr-installed'.
 \f
 ;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup
 ;;;;;;  keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el"
-;;;;;;  (18088 55097))
+;;;;;;  (18177 858))
 ;;; Generated autoloads from emulation/keypad.el
 
 (defvar keypad-setup nil "\
@@ -16713,7 +16528,7 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.'
 ;;;***
 \f
 ;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el"
-;;;;;;  (18088 55107))
+;;;;;;  (18177 865))
 ;;; Generated autoloads from international/kinsoku.el
 
 (autoload 'kinsoku "kinsoku" "\
@@ -16734,8 +16549,8 @@ the context of text formatting.
 
 ;;;***
 \f
-;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (18088
-;;;;;;  55107))
+;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (18177
+;;;;;;  865))
 ;;; Generated autoloads from international/kkc.el
 
 (defvar kkc-after-update-conversion-functions nil "\
@@ -16760,7 +16575,7 @@ and the return value is the length of the conversion.
 ;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro
 ;;;;;;  kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter
 ;;;;;;  kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro"
-;;;;;;  "kmacro.el" (18088 55086))
+;;;;;;  "kmacro.el" (18177 866))
 ;;; Generated autoloads from kmacro.el
  (global-set-key "\C-x(" 'kmacro-start-macro)
  (global-set-key "\C-x)" 'kmacro-end-macro)
@@ -16865,12 +16680,12 @@ If kbd macro currently being defined end it before activating it.
 
 ;;;***
 \f
-;;;### (autoloads (kannada-post-read-conversion kannada-compose-string
-;;;;;;  kannada-compose-region) "knd-util" "language/knd-util.el"
-;;;;;;  (18088 55109))
+;;;### (autoloads (kannada-composition-function kannada-post-read-conversion
+;;;;;;  kannada-compose-string kannada-compose-region) "knd-util"
+;;;;;;  "language/knd-util.el" (18177 866))
 ;;; Generated autoloads from language/knd-util.el
 
-(defconst kannada-consonant "[\x51f75-\x51fb9]")
+(defconst kannada-consonant "[\x0c95-\x0cb9]")
 
 (autoload 'kannada-compose-region "knd-util" "\
 Not documented
@@ -16887,10 +16702,17 @@ Not documented
 
 \(fn LEN)" nil nil)
 
+(autoload 'kannada-composition-function "knd-util" "\
+Compose Kannada characters after the position POS.
+If STRING is not nil, it is a string, and POS is an index to the string.
+In this case, compose characters after POS of the string.
+
+\(fn POS &optional STRING)" nil nil)
+
 ;;;***
 \f
 ;;;### (autoloads (setup-korean-environment-internal) "korea-util"
-;;;;;;  "language/korea-util.el" (18088 55109))
+;;;;;;  "language/korea-util.el" (18177 866))
 ;;; Generated autoloads from language/korea-util.el
 
 (defvar default-korean-keyboard (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "") "\
@@ -16905,7 +16727,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el"
-;;;;;;  (18202 4002))
+;;;;;;  (18213 1259))
 ;;; Generated autoloads from play/landmark.el
 
 (defalias 'landmark-repeat 'lm-test-run)
@@ -16937,10 +16759,9 @@ Use \\[describe-mode] for more info.
 
 ;;;***
 \f
-;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion
-;;;;;;  lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao
-;;;;;;  lao-compose-string) "lao-util" "language/lao-util.el" (18088
-;;;;;;  55109))
+;;;### (autoloads (lao-compose-region lao-composition-function lao-transcribe-roman-to-lao-string
+;;;;;;  lao-transcribe-single-roman-syllable-to-lao lao-compose-string)
+;;;;;;  "lao-util" "language/lao-util.el" (18177 866))
 ;;; Generated autoloads from language/lao-util.el
 
 (autoload 'lao-compose-string "lao-util" "\
@@ -16965,20 +16786,10 @@ Transcribe Romanized Lao string STR to Lao character string.
 
 \(fn STR)" nil nil)
 
-(autoload 'lao-post-read-conversion "lao-util" "\
-Not documented
-
-\(fn LEN)" nil nil)
-
 (autoload 'lao-composition-function "lao-util" "\
-Compose Lao text in the region FROM and TO.
-The text matches the regular expression PATTERN.
-Optional 4th argument STRING, if non-nil, is a string containing text
-to compose.
-
-The return value is number of composed characters.
+Not documented
 
-\(fn FROM TO PATTERN &optional STRING)" nil nil)
+\(fn POS &optional STRING)" nil nil)
 
 (autoload 'lao-compose-region "lao-util" "\
 Not documented
@@ -16989,7 +16800,7 @@ Not documented
 \f
 ;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc
 ;;;;;;  latexenc-inputenc-to-coding-system latex-inputenc-coding-alist)
-;;;;;;  "latexenc" "international/latexenc.el" (18088 55107))
+;;;;;;  "latexenc" "international/latexenc.el" (18177 865))
 ;;; Generated autoloads from international/latexenc.el
 
 (defvar latex-inputenc-coding-alist '(("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8)) "\
@@ -17021,7 +16832,7 @@ coding system names is determined from `latex-inputenc-coding-alist'.
 ;;;***
 \f
 ;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display)
-;;;;;;  "latin1-disp" "international/latin1-disp.el" (18120 34751))
+;;;;;;  "latin1-disp" "international/latin1-disp.el" (18177 865))
 ;;; Generated autoloads from international/latin1-disp.el
 
 (defvar latin1-display nil "\
@@ -17062,10 +16873,78 @@ use either \\[customize] or the function `latin1-display'.")
 
 (custom-autoload 'latin1-display-ucs-per-lynx "latin1-disp" nil)
 
+;;;***
+\f
+;;;### (autoloads (turn-on-lazy-lock lazy-lock-mode) "lazy-lock"
+;;;;;;  "obsolete/lazy-lock.el" (18177 870))
+;;; Generated autoloads from obsolete/lazy-lock.el
+
+(autoload 'lazy-lock-mode "lazy-lock" "\
+Toggle Lazy Lock mode.
+With arg, turn Lazy Lock mode on if and only if arg is positive.  Enable it
+automatically in your `~/.emacs' by:
+
+ (setq font-lock-support-mode 'lazy-lock-mode)
+
+For a newer font-lock support mode with similar functionality, see
+`jit-lock-mode'.  Eventually, Lazy Lock mode will be deprecated in
+JIT Lock's favor.
+
+When Lazy Lock mode is enabled, fontification can be lazy in a number of ways:
+
+- Demand-driven buffer fontification if `lazy-lock-minimum-size' is non-nil.
+  This means initial fontification does not occur if the buffer is greater than
+  `lazy-lock-minimum-size' characters in length.  Instead, fontification occurs
+  when necessary, such as when scrolling through the buffer would otherwise
+  reveal unfontified areas.  This is useful if buffer fontification is too slow
+  for large buffers.
+
+- Deferred scroll fontification if `lazy-lock-defer-on-scrolling' is non-nil.
+  This means demand-driven fontification does not occur as you scroll.
+  Instead, fontification is deferred until after `lazy-lock-defer-time' seconds
+  of Emacs idle time, while Emacs remains idle.  This is useful if
+  fontification is too slow to keep up with scrolling.
+
+- Deferred on-the-fly fontification if `lazy-lock-defer-on-the-fly' is non-nil.
+  This means on-the-fly fontification does not occur as you type.  Instead,
+  fontification is deferred until after `lazy-lock-defer-time' seconds of Emacs
+  idle time, while Emacs remains idle.  This is useful if fontification is too
+  slow to keep up with your typing.
+
+- Deferred context fontification if `lazy-lock-defer-contextually' is non-nil.
+  This means fontification updates the buffer corresponding to true syntactic
+  context, after `lazy-lock-defer-time' seconds of Emacs idle time, while Emacs
+  remains idle.  Otherwise, fontification occurs on modified lines only, and
+  subsequent lines can remain fontified corresponding to previous syntactic
+  contexts.  This is useful where strings or comments span lines.
+
+- Stealthy buffer fontification if `lazy-lock-stealth-time' is non-nil.
+  This means remaining unfontified areas of buffers are fontified if Emacs has
+  been idle for `lazy-lock-stealth-time' seconds, while Emacs remains idle.
+  This is useful if any buffer has any deferred fontification.
+
+Basic Font Lock mode on-the-fly fontification behavior fontifies modified
+lines only.  Thus, if `lazy-lock-defer-contextually' is non-nil, Lazy Lock mode
+on-the-fly fontification may fontify differently, albeit correctly.  In any
+event, to refontify some lines you can use \\[font-lock-fontify-block].
+
+Stealth fontification only occurs while the system remains unloaded.
+If the system load rises above `lazy-lock-stealth-load' percent, stealth
+fontification is suspended.  Stealth fontification intensity is controlled via
+the variable `lazy-lock-stealth-nice' and `lazy-lock-stealth-lines', and
+verbosity is controlled via the variable `lazy-lock-stealth-verbose'.
+
+\(fn &optional ARG)" t nil)
+
+(autoload 'turn-on-lazy-lock "lazy-lock" "\
+Unconditionally turn on Lazy Lock mode.
+
+\(fn)" nil nil)
+
 ;;;***
 \f
 ;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el"
-;;;;;;  (18088 55117))
+;;;;;;  (18177 873))
 ;;; Generated autoloads from progmodes/ld-script.el
 
 (add-to-list 'auto-mode-alist '("\\.ld[si]?\\>" . ld-script-mode))
@@ -17080,7 +16959,7 @@ A major mode to edit GNU ld script files
 ;;;***
 \f
 ;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el"
-;;;;;;  (18088 55086))
+;;;;;;  (18177 867))
 ;;; Generated autoloads from ledit.el
 
 (defconst ledit-save-files t "\
@@ -17115,7 +16994,7 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads (life) "life" "play/life.el" (18088 55114))
+;;;### (autoloads (life) "life" "play/life.el" (18177 871))
 ;;; Generated autoloads from play/life.el
 
 (autoload 'life "life" "\
@@ -17128,8 +17007,8 @@ generations (this defaults to 1).
 
 ;;;***
 \f
-;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (18213
-;;;;;;  13926))
+;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (18231
+;;;;;;  31063))
 ;;; Generated autoloads from loadhist.el
 
 (autoload 'unload-feature "loadhist" "\
@@ -17161,7 +17040,7 @@ something strange, such as redefining an Emacs function.
 ;;;***
 \f
 ;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches)
-;;;;;;  "locate" "locate.el" (18126 18420))
+;;;;;;  "locate" "locate.el" (18177 867))
 ;;; Generated autoloads from locate.el
 
 (defvar locate-ls-subdir-switches "-al" "\
@@ -17212,7 +17091,7 @@ except that FILTER is not optional.
 
 ;;;***
 \f
-;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (18120 34749))
+;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (18177 867))
 ;;; Generated autoloads from log-edit.el
 
 (autoload 'log-edit "log-edit" "\
@@ -17233,8 +17112,8 @@ If BUFFER is non-nil `log-edit' will jump to that buffer, use it to edit the
 
 ;;;***
 \f
-;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (18202
-;;;;;;  3995))
+;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (18213
+;;;;;;  1254))
 ;;; Generated autoloads from log-view.el
 
 (autoload 'log-view-mode "log-view" "\
@@ -17244,8 +17123,8 @@ Major mode for browsing CVS log output.
 
 ;;;***
 \f
-;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (18214
-;;;;;;  4763))
+;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (18231
+;;;;;;  31063))
 ;;; Generated autoloads from longlines.el
 
 (autoload 'longlines-mode "longlines" "\
@@ -17266,8 +17145,8 @@ are indicated with a symbol.
 ;;;***
 \f
 ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer
-;;;;;;  lpr-command lpr-switches printer-name) "lpr" "lpr.el" (18088
-;;;;;;  55086))
+;;;;;;  lpr-command lpr-switches printer-name) "lpr" "lpr.el" (18177
+;;;;;;  867))
 ;;; Generated autoloads from lpr.el
 
 (defvar lpr-windows-system (memq system-type '(emx win32 w32 mswindows ms-dos windows-nt)))
@@ -17361,7 +17240,7 @@ for further customization of the printer command.
 ;;;***
 \f
 ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
-;;;;;;  (18088 55086))
+;;;;;;  (18177 867))
 ;;; Generated autoloads from ls-lisp.el
 
 (defvar ls-lisp-support-shell-wildcards t "\
@@ -17372,8 +17251,8 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).")
 
 ;;;***
 \f
-;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (18088
-;;;;;;  55094))
+;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (18177
+;;;;;;  856))
 ;;; Generated autoloads from calendar/lunar.el
 
 (autoload 'phases-of-moon "lunar" "\
@@ -17386,8 +17265,8 @@ This function is suitable for execution in a .emacs file.
 
 ;;;***
 \f
-;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (18088
-;;;;;;  55117))
+;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (18177
+;;;;;;  873))
 ;;; Generated autoloads from progmodes/m4-mode.el
 
 (autoload 'm4-mode "m4-mode" "\
@@ -17399,7 +17278,7 @@ A major mode to edit m4 macro files.
 ;;;***
 \f
 ;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el"
-;;;;;;  (18088 55096))
+;;;;;;  (18177 858))
 ;;; Generated autoloads from emacs-lisp/macroexp.el
 
 (autoload 'macroexpand-all "macroexp" "\
@@ -17413,7 +17292,7 @@ definitions to shadow the loaded ones for use in file byte-compilation.
 ;;;***
 \f
 ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro
-;;;;;;  name-last-kbd-macro) "macros" "macros.el" (18088 55086))
+;;;;;;  name-last-kbd-macro) "macros" "macros.el" (18177 867))
 ;;; Generated autoloads from macros.el
 
 (autoload 'name-last-kbd-macro "macros" "\
@@ -17502,7 +17381,7 @@ and then select the region of un-tablified names and use
 ;;;***
 \f
 ;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr"
-;;;;;;  "mail/mail-extr.el" (18088 55109))
+;;;;;;  "mail/mail-extr.el" (18177 867))
 ;;; Generated autoloads from mail/mail-extr.el
 
 (autoload 'mail-extract-address-components "mail-extr" "\
@@ -17534,7 +17413,7 @@ Convert mail domain DOMAIN to the country it corresponds to.
 \f
 ;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history
 ;;;;;;  mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el"
-;;;;;;  (18088 55110))
+;;;;;;  (18177 867))
 ;;; Generated autoloads from mail/mail-hist.el
 
 (autoload 'mail-hist-define-keys "mail-hist" "\
@@ -17565,8 +17444,8 @@ This function normally would be called when the message is sent.
 \f
 ;;;### (autoloads (mail-fetch-field mail-unquote-printable-region
 ;;;;;;  mail-unquote-printable mail-quote-printable mail-file-babyl-p
-;;;;;;  mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (18088
-;;;;;;  55110))
+;;;;;;  mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (18177
+;;;;;;  867))
 ;;; Generated autoloads from mail/mail-utils.el
 
 (defvar mail-use-rfc822 nil "\
@@ -17617,10 +17496,25 @@ If 4th arg LIST is non-nil, return a list of all such fields.
 
 ;;;***
 \f
-;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup)
-;;;;;;  "mailabbrev" "mail/mailabbrev.el" (18120 34751))
+;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup
+;;;;;;  mail-abbrevs-mode) "mailabbrev" "mail/mailabbrev.el" (18231
+;;;;;;  31069))
 ;;; Generated autoloads from mail/mailabbrev.el
 
+(defvar mail-abbrevs-mode nil "\
+Non-nil if Mail-Abbrevs mode is enabled.
+See the command `mail-abbrevs-mode' for a description of this minor mode.
+Setting this variable directly does not take effect;
+either customize it (see the info node `Easy Customization')
+or call the function `mail-abbrevs-mode'.")
+
+(custom-autoload 'mail-abbrevs-mode "mailabbrev" nil)
+
+(autoload 'mail-abbrevs-mode "mailabbrev" "\
+Non-nil means expand mail aliases as abbrevs, in certain message headers.
+
+\(fn &optional ARG)" t nil)
+
 (autoload 'mail-abbrevs-setup "mailabbrev" "\
 Initialize use of the `mailabbrev' package.
 
@@ -17641,8 +17535,8 @@ If DEFINITION contains multiple addresses, separate them with commas.
 ;;;***
 \f
 ;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases
-;;;;;;  mail-complete-style) "mailalias" "mail/mailalias.el" (18088
-;;;;;;  55110))
+;;;;;;  mail-complete-style) "mailalias" "mail/mailalias.el" (18177
+;;;;;;  867))
 ;;; Generated autoloads from mail/mailalias.el
 
 (defvar mail-complete-style 'angles "\
@@ -17688,7 +17582,7 @@ current header, calls `mail-complete-function' and passes prefix arg if any.
 ;;;***
 \f
 ;;;### (autoloads (mailclient-send-it) "mailclient" "mail/mailclient.el"
-;;;;;;  (18088 55110))
+;;;;;;  (18177 867))
 ;;; Generated autoloads from mail/mailclient.el
 
 (autoload 'mailclient-send-it "mailclient" "\
@@ -17702,7 +17596,7 @@ The mail client is taken to be the handler of mailto URLs.
 \f
 ;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode
 ;;;;;;  makefile-gmake-mode makefile-automake-mode makefile-mode)
-;;;;;;  "make-mode" "progmodes/make-mode.el" (18088 55117))
+;;;;;;  "make-mode" "progmodes/make-mode.el" (18177 873))
 ;;; Generated autoloads from progmodes/make-mode.el
 
 (autoload 'makefile-mode "make-mode" "\
@@ -17819,8 +17713,8 @@ An adapted `makefile-mode' that knows about imake.
 
 ;;;***
 \f
-;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (18088
-;;;;;;  55086))
+;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (18177
+;;;;;;  867))
 ;;; Generated autoloads from makesum.el
 
 (autoload 'make-command-summary "makesum" "\
@@ -17831,7 +17725,7 @@ Previous contents of that buffer are killed first.
 
 ;;;***
 \f
-;;;### (autoloads (man-follow man) "man" "man.el" (18153 31207))
+;;;### (autoloads (man-follow man) "man" "man.el" (18190 39677))
 ;;; Generated autoloads from man.el
 
 (defalias 'manual-entry 'man)
@@ -17858,7 +17752,7 @@ Get a Un*x manual page of the item under point and put it in a buffer.
 
 ;;;***
 \f
-;;;### (autoloads (master-mode) "master" "master.el" (18088 55086))
+;;;### (autoloads (master-mode) "master" "master.el" (18177 867))
 ;;; Generated autoloads from master.el
 
 (autoload 'master-mode "master" "\
@@ -17881,7 +17775,7 @@ yourself the value of `master-of' by calling `master-show-slave'.
 ;;;***
 \f
 ;;;### (autoloads (minibuffer-indicate-depth-mode) "mb-depth" "mb-depth.el"
-;;;;;;  (18187 36839))
+;;;;;;  (18190 39677))
 ;;; Generated autoloads from mb-depth.el
 
 (defvar minibuffer-indicate-depth-mode nil "\
@@ -17906,8 +17800,8 @@ Returns non-nil if the new state is enabled.
 
 ;;;***
 \f
-;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (18211
-;;;;;;  32385))
+;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (18213
+;;;;;;  1254))
 ;;; Generated autoloads from menu-bar.el
 
 (put 'menu-bar-mode 'standard-value '(t))
@@ -17938,7 +17832,7 @@ turn on menu bars; otherwise, turn off menu bars.
 ;;;;;;  message-forward-make-body message-forward message-recover
 ;;;;;;  message-supersede message-cancel-news message-followup message-wide-reply
 ;;;;;;  message-reply message-news message-mail message-mode) "message"
-;;;;;;  "gnus/message.el" (18212 46007))
+;;;;;;  "gnus/message.el" (18231 31067))
 ;;; Generated autoloads from gnus/message.el
 
 (define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook)
@@ -18104,7 +17998,7 @@ which specify the range to operate on.
 ;;;***
 \f
 ;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el"
-;;;;;;  (18161 20996))
+;;;;;;  (18190 39684))
 ;;; Generated autoloads from progmodes/meta-mode.el
 
 (autoload 'metafont-mode "meta-mode" "\
@@ -18131,7 +18025,7 @@ Turning on MetaPost mode calls the value of the variable
 \f
 ;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body
 ;;;;;;  metamail-interpret-header) "metamail" "mail/metamail.el"
-;;;;;;  (18088 55110))
+;;;;;;  (18177 867))
 ;;; Generated autoloads from mail/metamail.el
 
 (autoload 'metamail-interpret-header "metamail" "\
@@ -18176,7 +18070,7 @@ redisplayed as output is inserted.
 \f
 ;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose
 ;;;;;;  mh-smail-batch mh-smail-other-window mh-smail) "mh-comp"
-;;;;;;  "mh-e/mh-comp.el" (18128 32656))
+;;;;;;  "mh-e/mh-comp.el" (18177 868))
 ;;; Generated autoloads from mh-e/mh-comp.el
 
 (autoload 'mh-smail "mh-comp" "\
@@ -18263,7 +18157,7 @@ delete the draft message.
 
 ;;;***
 \f
-;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (18152 13227))
+;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (18190 39683))
 ;;; Generated autoloads from mh-e/mh-e.el
 
 (put 'mh-progs 'risky-local-variable t)
@@ -18280,7 +18174,7 @@ Display version information about MH-E and the MH mail handling system.
 ;;;***
 \f
 ;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder"
-;;;;;;  "mh-e/mh-folder.el" (18123 35153))
+;;;;;;  "mh-e/mh-folder.el" (18177 868))
 ;;; Generated autoloads from mh-e/mh-folder.el
 
 (autoload 'mh-rmail "mh-folder" "\
@@ -18362,7 +18256,7 @@ perform the operation on all messages in that region.
 ;;;***
 \f
 ;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight"
-;;;;;;  "midnight.el" (18088 55086))
+;;;;;;  "midnight.el" (18177 868))
 ;;; Generated autoloads from midnight.el
 
 (autoload 'clean-buffer-list "midnight" "\
@@ -18389,7 +18283,7 @@ to its second argument TM.
 ;;;***
 \f
 ;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef"
-;;;;;;  "minibuf-eldef.el" (18088 55087))
+;;;;;;  "minibuf-eldef.el" (18177 868))
 ;;; Generated autoloads from minibuf-eldef.el
 
 (defvar minibuffer-electric-default-mode nil "\
@@ -18417,7 +18311,7 @@ Returns non-nil if the new state is enabled.
 ;;;***
 \f
 ;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el"
-;;;;;;  (18088 55117))
+;;;;;;  (18231 31070))
 ;;; Generated autoloads from progmodes/mixal-mode.el
 
 (autoload 'mixal-mode "mixal-mode" "\
@@ -18432,7 +18326,7 @@ Major mode for the mixal asm language.
 \f
 ;;;### (autoloads (malayalam-composition-function malayalam-post-read-conversion
 ;;;;;;  malayalam-compose-region) "mlm-util" "language/mlm-util.el"
-;;;;;;  (18088 55109))
+;;;;;;  (18177 866))
 ;;; Generated autoloads from language/mlm-util.el
 
 (autoload 'malayalam-compose-region "mlm-util" "\
@@ -18446,16 +18340,16 @@ Not documented
 \(fn LEN)" nil nil)
 
 (autoload 'malayalam-composition-function "mlm-util" "\
-Compose Malayalam characters in REGION, or STRING if specified.
-Assume that the REGION or STRING must fully match the composable
-PATTERN regexp.
+Compose Malayalam characters after the position POS.
+If STRING is not nil, it is a string, and POS is an index to the string.
+In this case, compose characters after POS of the string.
 
-\(fn FROM TO PATTERN &optional STRING)" nil nil)
+\(fn POS &optional STRING)" nil nil)
 
 ;;;***
 \f
 ;;;### (autoloads (mm-inline-external-body mm-extern-cache-contents)
-;;;;;;  "mm-extern" "gnus/mm-extern.el" (18088 55104))
+;;;;;;  "mm-extern" "gnus/mm-extern.el" (18177 861))
 ;;; Generated autoloads from gnus/mm-extern.el
 
 (autoload 'mm-extern-cache-contents "mm-extern" "\
@@ -18474,7 +18368,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
 ;;;***
 \f
 ;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31067))
 ;;; Generated autoloads from gnus/mm-partial.el
 
 (autoload 'mm-inline-partial "mm-partial" "\
@@ -18488,7 +18382,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
 ;;;***
 \f
 ;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents)
-;;;;;;  "mm-url" "gnus/mm-url.el" (18212 46007))
+;;;;;;  "mm-url" "gnus/mm-url.el" (18231 31067))
 ;;; Generated autoloads from gnus/mm-url.el
 
 (autoload 'mm-url-insert-file-contents "mm-url" "\
@@ -18505,7 +18399,7 @@ Insert file contents of URL using `mm-url-program'.
 ;;;***
 \f
 ;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu"
-;;;;;;  "gnus/mm-uu.el" (18212 46007))
+;;;;;;  "gnus/mm-uu.el" (18231 31067))
 ;;; Generated autoloads from gnus/mm-uu.el
 
 (autoload 'mm-uu-dissect "mm-uu" "\
@@ -18525,7 +18419,7 @@ Assume text has been decoded if DECODED is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31067))
 ;;; Generated autoloads from gnus/mml1991.el
 
 (autoload 'mml1991-encrypt "mml1991" "\
@@ -18542,7 +18436,7 @@ Not documented
 \f
 ;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt
 ;;;;;;  mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt)
-;;;;;;  "mml2015" "gnus/mml2015.el" (18212 46007))
+;;;;;;  "mml2015" "gnus/mml2015.el" (18231 31067))
 ;;; Generated autoloads from gnus/mml2015.el
 
 (autoload 'mml2015-decrypt "mml2015" "\
@@ -18583,7 +18477,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el"
-;;;;;;  (18130 62049))
+;;;;;;  (18177 873))
 ;;; Generated autoloads from progmodes/modula2.el
 
 (autoload 'modula-2-mode "modula2" "\
@@ -18615,7 +18509,7 @@ followed by the first character of the construct.
 ;;;***
 \f
 ;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el"
-;;;;;;  (18088 55114))
+;;;;;;  (18177 871))
 ;;; Generated autoloads from play/morse.el
 
 (autoload 'morse-region "morse" "\
@@ -18630,8 +18524,8 @@ Convert morse coded text in region to ordinary ASCII text.
 
 ;;;***
 \f
-;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (18088
-;;;;;;  55087))
+;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (18177
+;;;;;;  868))
 ;;; Generated autoloads from mouse-sel.el
 
 (defvar mouse-sel-mode nil "\
@@ -18683,7 +18577,7 @@ primary selection and region.
 
 ;;;***
 \f
-;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (18088 55114))
+;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (18177 871))
 ;;; Generated autoloads from play/mpuz.el
 
 (autoload 'mpuz "mpuz" "\
@@ -18693,7 +18587,7 @@ Multiplication puzzle with GNU Emacs.
 
 ;;;***
 \f
-;;;### (autoloads (msb-mode) "msb" "msb.el" (18211 32385))
+;;;### (autoloads (msb-mode) "msb" "msb.el" (18231 31063))
 ;;; Generated autoloads from msb.el
 
 (defvar msb-mode nil "\
@@ -18715,57 +18609,17 @@ different buffer menu using the function `msb'.
 
 ;;;***
 \f
-;;;### (autoloads (mule-diag list-input-methods list-fontsets describe-fontset
-;;;;;;  describe-font list-coding-categories list-coding-systems
-;;;;;;  describe-current-coding-system describe-current-coding-system-briefly
+;;;### (autoloads (unicode-data unicodedata-file mule-diag list-input-methods
+;;;;;;  list-fontsets describe-fontset describe-font list-coding-categories
+;;;;;;  list-coding-systems describe-current-coding-system describe-current-coding-system-briefly
 ;;;;;;  describe-coding-system describe-character-set list-charset-chars
 ;;;;;;  read-charset list-character-sets) "mule-diag" "international/mule-diag.el"
-;;;;;;  (18173 8195))
+;;;;;;  (18206 27859))
 ;;; Generated autoloads from international/mule-diag.el
 
-(defvar non-iso-charset-alist `((mac-roman (ascii latin-iso8859-1 mule-unicode-2500-33ff mule-unicode-0100-24ff mule-unicode-e000-ffff) mac-roman-decoder ((0 255))) (viscii (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-viscii-nonascii-translation-table ((0 255))) (vietnamese-tcvn (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-tcvn-nonascii-translation-table ((0 255))) (koi8-r (ascii cyrillic-iso8859-5) cyrillic-koi8-r-nonascii-translation-table ((32 255))) (alternativnyj (ascii cyrillic-iso8859-5) cyrillic-alternativnyj-nonascii-translation-table ((32 255))) (koi8-u (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff) cyrillic-koi8-u-nonascii-translation-table ((32 255))) (big5 (ascii chinese-big5-1 chinese-big5-2) decode-big5-char ((32 127) ((161 254) 64 126 161 254))) (sjis (ascii katakana-jisx0201 japanese-jisx0208) decode-sjis-char ((32 127 161 223) ((129 159 224 239) 64 126 128 252)))) "\
-Alist of charset names vs the corresponding information.
-This is mis-named for historical reasons.  The charsets are actually
-non-built-in ones.  They correspond to Emacs coding systems, not Emacs
-charsets, i.e. what Emacs can read (or write) by mapping to (or
-from) Emacs internal charsets that typically correspond to a limited
-set of ISO charsets.
-
-Each element has the following format:
-  (CHARSET CHARSET-LIST TRANSLATION-METHOD [ CODE-RANGE ])
-
-CHARSET is the name (symbol) of the charset.
-
-CHARSET-LIST is a list of Emacs charsets into which characters of
-CHARSET are mapped.
-
-TRANSLATION-METHOD is a translation table (symbol) to translate a
-character code of CHARSET to the corresponding Emacs character
-code.  It can also be a function to call with one argument, a
-character code in CHARSET.
-
-CODE-RANGE specifies the valid code ranges of CHARSET.
-It is a list of RANGEs, where each RANGE is of the form:
-  (FROM1 TO1 FROM2 TO2 ...)
-or
-  ((FROM1-1 TO1-1 FROM1-2 TO1-2 ...) . (FROM2-1 TO2-1 FROM2-2 TO2-2 ...))
-In the first form, valid codes are between FROM1 and TO1, or FROM2 and
-TO2, or...
-The second form is used for 2-byte codes.  The car part is the ranges
-of the first byte, and the cdr part is the ranges of the second byte.")
-
 (autoload 'list-character-sets "mule-diag" "\
 Display a list of all character sets.
 
-The ID-NUM column contains a charset identification number for
-internal Emacs use.
-
-The MULTIBYTE-FORM column contains the format of the buffer and string
-multibyte sequence of characters in the charset using one to four
-hexadecimal digits.
-  `xx' stands for any byte in the range 0..127.
-  `XX' stands for any byte in the range 160..255.
-
 The D column contains the dimension of this character set.  The CH
 column contains the number of characters in a block of this character
 set.  The FINAL-CHAR column contains an ISO-2022 <final-char> to use
@@ -18778,9 +18632,7 @@ but still shows the full information.
 
 (autoload 'read-charset "mule-diag" "\
 Read a character set from the minibuffer, prompting with string PROMPT.
-It must be an Emacs character set listed in the variable `charset-list'
-or a non-ISO character set listed in the variable
-`non-iso-charset-alist'.
+It must be an Emacs character set listed in the variable `charset-list'.
 
 Optional arguments are DEFAULT-VALUE and INITIAL-INPUT.
 DEFAULT-VALUE, if non-nil, is the default value.
@@ -18791,10 +18643,7 @@ detailed meanings of these arguments.
 \(fn PROMPT &optional DEFAULT-VALUE INITIAL-INPUT)" nil nil)
 
 (autoload 'list-charset-chars "mule-diag" "\
-Display a list of characters in the specified character set.
-This can list both Emacs `official' (ISO standard) charsets and the
-characters encoded by various Emacs coding systems which correspond to
-PC `codepages' and other coded character sets.  See `non-iso-charset-alist'.
+Display a list of characters in character set CHARSET.
 
 \(fn CHARSET)" t nil)
 
@@ -18887,14 +18736,29 @@ system which uses fontsets).
 
 \(fn)" t nil)
 
+(defvar unicodedata-file nil "\
+Location of UnicodeData file.
+This is the UnicodeData.txt file from the Unicode consortium, used for
+diagnostics.  If it is non-nil `describe-char-after' will print data
+looked up from it.")
+
+(custom-autoload 'unicodedata-file "mule-diag" t)
+
+(autoload 'unicode-data "mule-diag" "\
+Return a list of Unicode data for unicode CHAR.
+Each element is a list of a property description and the property value.
+The list is null if CHAR isn't found in `unicodedata-file'.
+
+\(fn CHAR)" nil nil)
+
 ;;;***
 \f
 ;;;### (autoloads (char-displayable-p detect-coding-with-language-environment
-;;;;;;  detect-coding-with-priority coding-system-translation-table-for-encode
+;;;;;;  detect-coding-with-priority with-coding-priority coding-system-translation-table-for-encode
 ;;;;;;  coding-system-translation-table-for-decode coding-system-pre-write-conversion
 ;;;;;;  coding-system-post-read-conversion lookup-nested-alist set-nested-alist
 ;;;;;;  truncate-string-to-width store-substring string-to-sequence)
-;;;;;;  "mule-util" "international/mule-util.el" (18088 55108))
+;;;;;;  "mule-util" "international/mule-util.el" (18177 865))
 ;;; Generated autoloads from international/mule-util.el
 
 (autoload 'string-to-sequence "mule-util" "\
@@ -18988,15 +18852,23 @@ Return the value of CODING-SYSTEM's `pre-write-conversion' property.
 \(fn CODING-SYSTEM)" nil nil)
 
 (autoload 'coding-system-translation-table-for-decode "mule-util" "\
-Return the value of CODING-SYSTEM's `translation-table-for-decode' property.
+Return the value of CODING-SYSTEM's `decode-translation-table' property.
 
 \(fn CODING-SYSTEM)" nil nil)
 
 (autoload 'coding-system-translation-table-for-encode "mule-util" "\
-Return the value of CODING-SYSTEM's `translation-table-for-encode' property.
+Return the value of CODING-SYSTEM's `encode-translation-table' property.
 
 \(fn CODING-SYSTEM)" nil nil)
 
+(autoload 'with-coding-priority "mule-util" "\
+Execute BODY like `progn' with CODING-SYSTEMS at the front of priority list.
+CODING-SYSTEMS is a list of coding systems.  See
+`set-coding-priority'.  This affects the implicit sorting of lists of
+coding sysems returned by operations such as `find-coding-systems-region'.
+
+\(fn CODING-SYSTEMS &rest BODY)" nil (quote macro))
+
 (autoload 'detect-coding-with-priority "mule-util" "\
 Detect a coding system of the text between FROM and TO with PRIORITY-LIST.
 PRIORITY-LIST is an alist of coding categories vs the corresponding
@@ -19005,7 +18877,7 @@ coding systems ordered by priority.
 \(fn FROM TO PRIORITY-LIST)" nil (quote macro))
 
 (autoload 'detect-coding-with-language-environment "mule-util" "\
-Detect a coding system of the text between FROM and TO with LANG-ENV.
+Detect a coding system for the text between FROM and TO with LANG-ENV.
 The detection takes into account the coding system priorities for the
 language environment LANG-ENV.
 
@@ -19023,7 +18895,7 @@ basis, this may not be accurate.
 ;;;***
 \f
 ;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el"
-;;;;;;  (18088 55087))
+;;;;;;  (18177 869))
 ;;; Generated autoloads from mwheel.el
 
 (defvar mouse-wheel-mode nil "\
@@ -19052,7 +18924,7 @@ Enable mouse wheel support.
 ;;;### (autoloads (network-connection network-connection-to-service
 ;;;;;;  whois-reverse-lookup whois finger ftp run-dig dns-lookup-host
 ;;;;;;  nslookup nslookup-host route arp netstat ipconfig ping traceroute)
-;;;;;;  "net-utils" "net/net-utils.el" (18088 55112))
+;;;;;;  "net-utils" "net/net-utils.el" (18177 869))
 ;;; Generated autoloads from net/net-utils.el
 
 (autoload 'traceroute "net-utils" "\
@@ -19148,7 +19020,7 @@ Open a network connection to HOST on PORT.
 ;;;;;;  uncomment-region comment-kill comment-set-column comment-indent
 ;;;;;;  comment-indent-default comment-normalize-vars comment-multi-line
 ;;;;;;  comment-padding comment-style comment-column) "newcomment"
-;;;;;;  "newcomment.el" (18210 13714))
+;;;;;;  "newcomment.el" (18231 31063))
 ;;; Generated autoloads from newcomment.el
 
 (defalias 'indent-for-comment 'comment-indent)
@@ -19310,7 +19182,8 @@ Call the comment command you want (Do What I Mean).
 If the region is active and `transient-mark-mode' is on, call
   `comment-region' (unless it only consists of comments, in which
   case it calls `uncomment-region').
-Else, if the current line is empty, insert a comment and indent it.
+Else, if the current line is empty, call `comment-insert-comment-function'
+if it is defined, otherwise insert a comment and indent it.
 Else if a prefix ARG is specified, call `comment-kill'.
 Else, call `comment-indent'.
 You can configure `comment-style' to change the way regions are commented.
@@ -19344,7 +19217,7 @@ unless optional argument SOFT is non-nil.
 \f
 ;;;### (autoloads (newsticker-show-news newsticker-start-ticker newsticker-start
 ;;;;;;  newsticker-ticker-running-p newsticker-running-p) "newsticker"
-;;;;;;  "net/newsticker.el" (18088 55112))
+;;;;;;  "net/newsticker.el" (18231 31069))
 ;;; Generated autoloads from net/newsticker.el
 
 (autoload 'newsticker-running-p "newsticker" "\
@@ -19386,7 +19259,7 @@ Switch to newsticker buffer.  You may want to bind this to a key.
 ;;;***
 \f
 ;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31067))
 ;;; Generated autoloads from gnus/nndiary.el
 
 (autoload 'nndiary-generate-nov-databases "nndiary" "\
@@ -19396,8 +19269,8 @@ Generate NOV databases in all nndiary directories.
 
 ;;;***
 \f
-;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (18212
-;;;;;;  46007))
+;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (18231
+;;;;;;  31067))
 ;;; Generated autoloads from gnus/nndoc.el
 
 (autoload 'nndoc-add-type "nndoc" "\
@@ -19412,7 +19285,7 @@ symbol in the alist.
 ;;;***
 \f
 ;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31068))
 ;;; Generated autoloads from gnus/nnfolder.el
 
 (autoload 'nnfolder-generate-active-file "nnfolder" "\
@@ -19424,7 +19297,7 @@ This command does not work if you use short group names.
 ;;;***
 \f
 ;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31068))
 ;;; Generated autoloads from gnus/nnkiboze.el
 
 (autoload 'nnkiboze-generate-groups "nnkiboze" "\
@@ -19436,7 +19309,7 @@ Finds out what articles are to be part of the nnkiboze groups.
 ;;;***
 \f
 ;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31068))
 ;;; Generated autoloads from gnus/nnml.el
 
 (autoload 'nnml-generate-nov-databases "nnml" "\
@@ -19447,7 +19320,7 @@ Generate NOV databases in all nnml directories.
 ;;;***
 \f
 ;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies)
-;;;;;;  "nnsoup" "gnus/nnsoup.el" (18212 46007))
+;;;;;;  "nnsoup" "gnus/nnsoup.el" (18231 31068))
 ;;; Generated autoloads from gnus/nnsoup.el
 
 (autoload 'nnsoup-pack-replies "nnsoup" "\
@@ -19468,7 +19341,7 @@ Revert posting and mailing methods to the standard Emacs methods.
 ;;;***
 \f
 ;;;### (autoloads (disable-command enable-command disabled-command-function)
-;;;;;;  "novice" "novice.el" (18088 55087))
+;;;;;;  "novice" "novice.el" (18177 870))
 ;;; Generated autoloads from novice.el
 
 (defvar disabled-command-function 'disabled-command-function "\
@@ -19501,7 +19374,7 @@ to future sessions.
 ;;;***
 \f
 ;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el"
-;;;;;;  (18120 34753))
+;;;;;;  (18231 31070))
 ;;; Generated autoloads from textmodes/nroff-mode.el
 
 (autoload 'nroff-mode "nroff-mode" "\
@@ -19516,7 +19389,7 @@ closing requests for requests that are used in matched pairs.
 ;;;***
 \f
 ;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el"
-;;;;;;  (18088 55117))
+;;;;;;  (18177 873))
 ;;; Generated autoloads from progmodes/octave-hlp.el
 
 (autoload 'octave-help "octave-hlp" "\
@@ -19530,7 +19403,7 @@ If KEY is not a string, prompt for it with completion.
 ;;;***
 \f
 ;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el"
-;;;;;;  (18164 24097))
+;;;;;;  (18190 39684))
 ;;; Generated autoloads from progmodes/octave-inf.el
 
 (autoload 'inferior-octave "octave-inf" "\
@@ -19553,7 +19426,7 @@ startup file, `~/.emacs-octave'.
 ;;;***
 \f
 ;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el"
-;;;;;;  (18203 37789))
+;;;;;;  (18213 1259))
 ;;; Generated autoloads from progmodes/octave-mod.el
 
 (autoload 'octave-mode "octave-mod" "\
@@ -19641,6 +19514,28 @@ including a reproducible test case and send the message.
 
 \(fn)" t nil)
 
+;;;***
+\f
+;;;### (autoloads (edit-options list-options) "options" "obsolete/options.el"
+;;;;;;  (18177 870))
+;;; Generated autoloads from obsolete/options.el
+
+(autoload 'list-options "options" "\
+Display a list of Emacs user options, with values and documentation.
+It is now better to use Customize instead.
+
+\(fn)" t nil)
+
+(autoload 'edit-options "options" "\
+Edit a list of Emacs user option values.
+Selects a buffer containing such a list,
+in which there are commands to set the option values.
+Type \\[describe-mode] in that buffer for a list of commands.
+
+The Custom feature is intended to make this obsolete.
+
+\(fn)" t nil)
+
 ;;;***
 \f
 ;;;### (autoloads (org-export-icalendar-combine-agenda-files org-export-icalendar-all-agenda-files
@@ -19652,7 +19547,7 @@ including a reproducible test case and send the message.
 ;;;;;;  org-insert-link-global org-store-link orgtbl-mode turn-on-orgtbl
 ;;;;;;  org-run-like-in-org-mode turn-on-orgstruct++ turn-on-orgstruct
 ;;;;;;  orgstruct-mode org-global-cycle org-cycle org-mode) "org"
-;;;;;;  "textmodes/org.el" (18208 48754))
+;;;;;;  "textmodes/org.el" (18231 31070))
 ;;; Generated autoloads from textmodes/org.el
 
 (autoload 'org-mode "org" "\
@@ -20065,7 +19960,7 @@ The file is stored under the name `org-combined-agenda-icalendar-file'.
 ;;;### (autoloads (org-export-as-latex org-export-region-as-latex
 ;;;;;;  org-replace-region-by-latex org-export-as-latex-to-buffer
 ;;;;;;  org-export-as-latex-batch) "org-export-latex" "textmodes/org-export-latex.el"
-;;;;;;  (18214 4479))
+;;;;;;  (18231 31070))
 ;;; Generated autoloads from textmodes/org-export-latex.el
 
 (autoload 'org-export-as-latex-batch "org-export-latex" "\
@@ -20117,8 +20012,8 @@ Export current buffer to a LaTeX file.
 ;;;***
 \f
 ;;;### (autoloads (org-publish-all org-publish-current-file org-publish-current-project
-;;;;;;  org-publish) "org-publish" "textmodes/org-publish.el" (18214
-;;;;;;  4479))
+;;;;;;  org-publish) "org-publish" "textmodes/org-publish.el" (18231
+;;;;;;  31070))
 ;;; Generated autoloads from textmodes/org-publish.el
 
 (autoload 'org-publish "org-publish" "\
@@ -20147,7 +20042,7 @@ With prefix argument, force publish all files.
 ;;;***
 \f
 ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el"
-;;;;;;  (18187 36839))
+;;;;;;  (18190 39678))
 ;;; Generated autoloads from outline.el
 (put 'outline-regexp 'safe-local-variable 'string-or-null-p)
 
@@ -20203,8 +20098,8 @@ See the command `outline-mode' for more information on this mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (18088
-;;;;;;  55120))
+;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (18177
+;;;;;;  875))
 ;;; Generated autoloads from textmodes/paragraphs.el
 (put 'paragraph-start 'safe-local-variable 'stringp)
 (put 'paragraph-separate 'safe-local-variable 'stringp)
@@ -20218,7 +20113,7 @@ See the command `outline-mode' for more information on this mode.
 
 ;;;***
 \f
-;;;### (autoloads (show-paren-mode) "paren" "paren.el" (18088 55087))
+;;;### (autoloads (show-paren-mode) "paren" "paren.el" (18177 870))
 ;;; Generated autoloads from paren.el
 
 (defvar show-paren-mode nil "\
@@ -20243,7 +20138,7 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time.
 ;;;***
 \f
 ;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el"
-;;;;;;  (18088 55094))
+;;;;;;  (18177 856))
 ;;; Generated autoloads from calendar/parse-time.el
 
 (autoload 'parse-time-string "parse-time" "\
@@ -20255,8 +20150,8 @@ unknown are returned as nil.
 
 ;;;***
 \f
-;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (18088
-;;;;;;  55117))
+;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (18177
+;;;;;;  873))
 ;;; Generated autoloads from progmodes/pascal.el
 
 (autoload 'pascal-mode "pascal" "\
@@ -20309,7 +20204,7 @@ no args, if that value is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (pc-bindings-mode) "pc-mode" "emulation/pc-mode.el"
-;;;;;;  (18088 55097))
+;;;;;;  (18177 858))
 ;;; Generated autoloads from emulation/pc-mode.el
 
 (autoload 'pc-bindings-mode "pc-mode" "\
@@ -20327,7 +20222,7 @@ C-Escape does list-buffers.
 ;;;***
 \f
 ;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select"
-;;;;;;  "emulation/pc-select.el" (18210 30826))
+;;;;;;  "emulation/pc-select.el" (18213 1258))
 ;;; Generated autoloads from emulation/pc-select.el
 
 (defvar pc-selection-mode nil "\
@@ -20403,8 +20298,8 @@ you must modify it using \\[customize] or \\[pc-selection-mode].")
 
 ;;;***
 \f
-;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (18088
-;;;;;;  55087))
+;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (18177
+;;;;;;  870))
 ;;; Generated autoloads from pcmpl-cvs.el
 
 (autoload 'pcomplete/cvs "pcmpl-cvs" "\
@@ -20415,7 +20310,7 @@ Completion rules for the `cvs' command.
 ;;;***
 \f
 ;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip)
-;;;;;;  "pcmpl-gnu" "pcmpl-gnu.el" (18088 55087))
+;;;;;;  "pcmpl-gnu" "pcmpl-gnu.el" (18177 870))
 ;;; Generated autoloads from pcmpl-gnu.el
 
 (autoload 'pcomplete/gzip "pcmpl-gnu" "\
@@ -20443,7 +20338,7 @@ Completion for the GNU tar utility.
 ;;;***
 \f
 ;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill)
-;;;;;;  "pcmpl-linux" "pcmpl-linux.el" (18088 55087))
+;;;;;;  "pcmpl-linux" "pcmpl-linux.el" (18177 870))
 ;;; Generated autoloads from pcmpl-linux.el
 
 (autoload 'pcomplete/kill "pcmpl-linux" "\
@@ -20463,8 +20358,8 @@ Completion for GNU/Linux `mount'.
 
 ;;;***
 \f
-;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (18088
-;;;;;;  55087))
+;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (18177
+;;;;;;  870))
 ;;; Generated autoloads from pcmpl-rpm.el
 
 (autoload 'pcomplete/rpm "pcmpl-rpm" "\
@@ -20480,7 +20375,7 @@ You can use \\[eshell-report-bug] to do so.
 \f
 ;;;### (autoloads (pcomplete/chgrp pcomplete/chown pcomplete/which
 ;;;;;;  pcomplete/xargs pcomplete/rm pcomplete/rmdir pcomplete/cd)
-;;;;;;  "pcmpl-unix" "pcmpl-unix.el" (18088 55087))
+;;;;;;  "pcmpl-unix" "pcmpl-unix.el" (18177 870))
 ;;; Generated autoloads from pcmpl-unix.el
 
 (autoload 'pcomplete/cd "pcmpl-unix" "\
@@ -20526,8 +20421,8 @@ Completion for the `chgrp' command.
 \f
 ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list
 ;;;;;;  pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete
-;;;;;;  pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (18088
-;;;;;;  55087))
+;;;;;;  pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (18177
+;;;;;;  870))
 ;;; Generated autoloads from pcomplete.el
 
 (autoload 'pcomplete "pcomplete" "\
@@ -20586,7 +20481,7 @@ Setup shell-mode to use pcomplete.
 \f
 ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status
 ;;;;;;  cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs"
-;;;;;;  "pcvs.el" (18190 46607))
+;;;;;;  "pcvs.el" (18194 36639))
 ;;; Generated autoloads from pcvs.el
 
 (autoload 'cvs-checkout "pcvs" "\
@@ -20663,7 +20558,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d
 
 ;;;***
 \f
-;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (18187 36839))
+;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (18190 39678))
 ;;; Generated autoloads from pcvs-defs.el
 
 (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] '(menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea")) (define-key m [checkout] '(menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository")) (define-key m [update] '(menu-item "Update Directory" cvs-update :help "Fetch updates from the repository")) (define-key m [examine] '(menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea")) (fset 'cvs-global-menu m)))
@@ -20671,7 +20566,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d
 ;;;***
 \f
 ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el"
-;;;;;;  (18128 36990))
+;;;;;;  (18177 873))
 ;;; Generated autoloads from progmodes/perl-mode.el
 (put 'perl-indent-level 'safe-local-variable 'integerp)
 
@@ -20730,7 +20625,7 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'.
 ;;;### (autoloads (pgg-snarf-keys pgg-snarf-keys-region pgg-insert-key
 ;;;;;;  pgg-verify pgg-verify-region pgg-sign pgg-sign-region pgg-decrypt
 ;;;;;;  pgg-decrypt-region pgg-encrypt pgg-encrypt-symmetric pgg-encrypt-symmetric-region
-;;;;;;  pgg-encrypt-region) "pgg" "pgg.el" (18088 55088))
+;;;;;;  pgg-encrypt-region) "pgg" "pgg.el" (18177 871))
 ;;; Generated autoloads from pgg.el
 
 (autoload 'pgg-encrypt-region "pgg" "\
@@ -20864,7 +20759,7 @@ Import public keys in the current buffer.
 ;;;***
 \f
 ;;;### (autoloads (pgg-gpg-symmetric-key-p) "pgg-gpg" "pgg-gpg.el"
-;;;;;;  (18088 55087))
+;;;;;;  (18177 871))
 ;;; Generated autoloads from pgg-gpg.el
 
 (autoload 'pgg-gpg-symmetric-key-p "pgg-gpg" "\
@@ -20875,7 +20770,7 @@ True if decoded armor MESSAGE-KEYS has symmetric encryption indicator.
 ;;;***
 \f
 ;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el"
-;;;;;;  (18088 55120))
+;;;;;;  (18177 876))
 ;;; Generated autoloads from textmodes/picture.el
 
 (autoload 'picture-mode "picture" "\
@@ -20956,7 +20851,7 @@ they are not defaultly assigned to keys.
 ;;;***
 \f
 ;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el"
-;;;;;;  (18088 55120))
+;;;;;;  (18177 876))
 ;;; Generated autoloads from textmodes/po.el
 
 (autoload 'po-find-file-coding-system "po" "\
@@ -20967,7 +20862,7 @@ Called through `file-coding-system-alist', before the file is visited for real.
 
 ;;;***
 \f
-;;;### (autoloads (pong) "pong" "play/pong.el" (18088 55114))
+;;;### (autoloads (pong) "pong" "play/pong.el" (18177 871))
 ;;; Generated autoloads from play/pong.el
 
 (autoload 'pong "pong" "\
@@ -20984,7 +20879,7 @@ pong-mode keybindings:\\<pong-mode-map>
 ;;;***
 \f
 ;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-buffer
-;;;;;;  pp-to-string) "pp" "emacs-lisp/pp.el" (18098 47345))
+;;;;;;  pp-to-string) "pp" "emacs-lisp/pp.el" (18177 858))
 ;;; Generated autoloads from emacs-lisp/pp.el
 
 (autoload 'pp-to-string "pp" "\
@@ -21040,7 +20935,7 @@ Ignores leading comment characters.
 ;;;;;;  pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
 ;;;;;;  pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
 ;;;;;;  pr-ps-directory-preview pr-interface) "printing" "printing.el"
-;;;;;;  (18211 32385))
+;;;;;;  (18231 31063))
 ;;; Generated autoloads from printing.el
 
 (autoload 'pr-interface "printing" "\
@@ -21628,7 +21523,7 @@ are both set to t.
 ;;;***
 \f
 ;;;### (autoloads (switch-to-prolog prolog-mode) "prolog" "progmodes/prolog.el"
-;;;;;;  (18203 37789))
+;;;;;;  (18213 1259))
 ;;; Generated autoloads from progmodes/prolog.el
 
 (autoload 'prolog-mode "prolog" "\
@@ -21651,7 +21546,7 @@ With prefix argument \\[universal-prefix], prompt for the program to use.
 
 ;;;***
 \f
-;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (18088 55088))
+;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (18177 874))
 ;;; Generated autoloads from ps-bdf.el
 
 (defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "\
@@ -21660,8 +21555,8 @@ The default value is '(\"/usr/local/share/emacs/fonts/bdf\").")
 
 ;;;***
 \f
-;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (18210
-;;;;;;  13716))
+;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (18231
+;;;;;;  31070))
 ;;; Generated autoloads from progmodes/ps-mode.el
 
 (autoload 'ps-mode "ps-mode" "\
@@ -21712,8 +21607,8 @@ Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number
 ;;;;;;  ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer
 ;;;;;;  ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces
 ;;;;;;  ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type
-;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (18214
-;;;;;;  4479))
+;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (18231
+;;;;;;  31064))
 ;;; Generated autoloads from ps-print.el
 
 (defvar ps-page-dimensions-database (list (list 'a4 (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list 'a3 (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list 'letter (* 72 8.5) (* 72 11.0) "Letter") (list 'legal (* 72 8.5) (* 72 14.0) "Legal") (list 'letter-small (* 72 7.68) (* 72 10.16) "LetterSmall") (list 'tabloid (* 72 11.0) (* 72 17.0) "Tabloid") (list 'ledger (* 72 17.0) (* 72 11.0) "Ledger") (list 'statement (* 72 5.5) (* 72 8.5) "Statement") (list 'executive (* 72 7.5) (* 72 10.0) "Executive") (list 'a4small (* 72 7.47) (* 72 10.85) "A4Small") (list 'b4 (* 72 10.125) (* 72 14.33) "B4") (list 'b5 (* 72 7.16) (* 72 10.125) "B5")) "\
@@ -21910,7 +21805,7 @@ If EXTENSION is any other symbol, it is ignored.
 ;;;***
 \f
 ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el"
-;;;;;;  (18208 48754))
+;;;;;;  (18231 31070))
 ;;; Generated autoloads from progmodes/python.el
 
 (add-to-list 'interpreter-mode-alist '("jython" . jython-mode))
@@ -21985,7 +21880,7 @@ Runs `jython-mode-hook' after `python-mode-hook'.
 ;;;***
 \f
 ;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31069))
 ;;; Generated autoloads from gnus/qp.el
 
 (autoload 'quoted-printable-decode-region "qp" "\
@@ -22008,7 +21903,7 @@ them into characters should be done separately.
 ;;;;;;  quail-defrule quail-install-decode-map quail-install-map
 ;;;;;;  quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout
 ;;;;;;  quail-define-package quail-use-package quail-title) "quail"
-;;;;;;  "international/quail.el" (18120 34751))
+;;;;;;  "international/quail.el" (18177 865))
 ;;; Generated autoloads from international/quail.el
 
 (autoload 'quail-title "quail" "\
@@ -22239,8 +22134,8 @@ of each directory.
 \f
 ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls
 ;;;;;;  quickurl-browse-url-ask quickurl-browse-url quickurl-add-url
-;;;;;;  quickurl-ask quickurl) "quickurl" "net/quickurl.el" (18088
-;;;;;;  55112))
+;;;;;;  quickurl-ask quickurl) "quickurl" "net/quickurl.el" (18177
+;;;;;;  869))
 ;;; Generated autoloads from net/quickurl.el
 
 (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\
@@ -22312,7 +22207,7 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'.
 ;;;***
 \f
 ;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc"
-;;;;;;  "net/rcirc.el" (18213 14317))
+;;;;;;  "net/rcirc.el" (18231 31069))
 ;;; Generated autoloads from net/rcirc.el
 
 (autoload 'rcirc "rcirc" "\
@@ -22347,8 +22242,8 @@ Global minor mode for tracking activity in rcirc buffers.
 
 ;;;***
 \f
-;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (18088
-;;;;;;  55112))
+;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (18177
+;;;;;;  869))
 ;;; Generated autoloads from net/rcompile.el
 
 (autoload 'remote-compile "rcompile" "\
@@ -22360,7 +22255,7 @@ See \\[compile].
 ;;;***
 \f
 ;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el"
-;;;;;;  (18173 8195))
+;;;;;;  (18190 39682))
 ;;; Generated autoloads from emacs-lisp/re-builder.el
 
 (defalias 'regexp-builder 're-builder)
@@ -22372,7 +22267,7 @@ Construct a regexp interactively.
 
 ;;;***
 \f
-;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (18161 20994))
+;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (18190 39678))
 ;;; Generated autoloads from recentf.el
 
 (defvar recentf-mode nil "\
@@ -22399,8 +22294,8 @@ that were operated on recently.
 ;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle
 ;;;;;;  delete-whitespace-rectangle open-rectangle insert-rectangle
 ;;;;;;  yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle
-;;;;;;  delete-rectangle move-to-column-force) "rect" "rect.el" (18088
-;;;;;;  55088))
+;;;;;;  delete-rectangle move-to-column-force) "rect" "rect.el" (18177
+;;;;;;  874))
 ;;; Generated autoloads from rect.el
 
 (autoload 'move-to-column-force "rect" "\
@@ -22528,8 +22423,8 @@ rectangle which were empty.
 
 ;;;***
 \f
-;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (18120
-;;;;;;  34753))
+;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (18177
+;;;;;;  876))
 ;;; Generated autoloads from textmodes/refill.el
 
 (autoload 'refill-mode "refill" "\
@@ -22545,7 +22440,7 @@ refilling if they would cause auto-filling.
 ;;;***
 \f
 ;;;### (autoloads (reftex-reset-scanning-information reftex-mode
-;;;;;;  turn-on-reftex) "reftex" "textmodes/reftex.el" (18203 37790))
+;;;;;;  turn-on-reftex) "reftex" "textmodes/reftex.el" (18231 31070))
 ;;; Generated autoloads from textmodes/reftex.el
 
 (autoload 'turn-on-reftex "reftex" "\
@@ -22595,7 +22490,7 @@ This enforces rescanning the buffer on next use.
 ;;;***
 \f
 ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el"
-;;;;;;  (18191 7159))
+;;;;;;  (18194 36640))
 ;;; Generated autoloads from textmodes/reftex-cite.el
 
 (autoload 'reftex-citation "reftex-cite" "\
@@ -22625,7 +22520,7 @@ While entering the regexp, completion on knows citation keys is possible.
 ;;;***
 \f
 ;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el"
-;;;;;;  (18120 34753))
+;;;;;;  (18177 876))
 ;;; Generated autoloads from textmodes/reftex-global.el
 
 (autoload 'reftex-isearch-minor-mode "reftex-global" "\
@@ -22642,7 +22537,7 @@ With no argument, this command toggles
 ;;;***
 \f
 ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el"
-;;;;;;  (18088 55120))
+;;;;;;  (18231 31070))
 ;;; Generated autoloads from textmodes/reftex-index.el
 
 (autoload 'reftex-index-phrases-mode "reftex-index" "\
@@ -22675,7 +22570,7 @@ Here are all local bindings.
 ;;;***
 \f
 ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el"
-;;;;;;  (18088 55120))
+;;;;;;  (18177 876))
 ;;; Generated autoloads from textmodes/reftex-parse.el
 
 (autoload 'reftex-all-document-files "reftex-parse" "\
@@ -22687,8 +22582,8 @@ of master file.
 
 ;;;***
 \f
-;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (18088
-;;;;;;  55120))
+;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (18177
+;;;;;;  876))
 ;;; Generated autoloads from textmodes/reftex-vars.el
 (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
 (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
@@ -22698,7 +22593,7 @@ of master file.
 ;;;***
 \f
 ;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el"
-;;;;;;  (18088 55096))
+;;;;;;  (18177 858))
 ;;; Generated autoloads from emacs-lisp/regexp-opt.el
 
 (autoload 'regexp-opt "regexp-opt" "\
@@ -22725,7 +22620,45 @@ This means the number of non-shy regexp grouping constructs
 
 ;;;***
 \f
-;;;### (autoloads (repeat) "repeat" "repeat.el" (18187 36839))
+;;;### (autoloads (remember-clipboard remember-other-frame remember)
+;;;;;;  "remember" "textmodes/remember.el" (18230 21316))
+;;; Generated autoloads from textmodes/remember.el
+
+(autoload 'remember "remember" "\
+Remember an arbitrary piece of data.
+INITIAL is the text to initially place in the *Remember* buffer,
+or nil to bring up a blank *Remember* buffer.
+
+With a prefix, use the region as INITIAL.
+
+\(fn &optional INITIAL)" t nil)
+
+(autoload 'remember-other-frame "remember" "\
+Call `remember' in another frame.
+
+\(fn &optional INITIAL)" t nil)
+
+(autoload 'remember-clipboard "remember" "\
+Remember the contents of the current clipboard.
+Most useful for remembering things from Netscape or other X Windows
+application.
+
+\(fn)" t nil)
+
+;;;***
+\f
+;;;### (autoloads (remember-diary-extract-entries) "remember-diary"
+;;;;;;  "textmodes/remember-diary.el" (18230 21313))
+;;; Generated autoloads from textmodes/remember-diary.el
+
+(autoload 'remember-diary-extract-entries "remember-diary" "\
+Extract diary entries from the region.
+
+\(fn)" nil nil)
+
+;;;***
+\f
+;;;### (autoloads (repeat) "repeat" "repeat.el" (18190 39678))
 ;;; Generated autoloads from repeat.el
 
 (autoload 'repeat "repeat" "\
@@ -22748,7 +22681,7 @@ recently executed command not bound to an input event\".
 ;;;***
 \f
 ;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el"
-;;;;;;  (18192 17587))
+;;;;;;  (18194 36639))
 ;;; Generated autoloads from mail/reporter.el
 
 (autoload 'reporter-submit-bug-report "reporter" "\
@@ -22780,7 +22713,7 @@ mail-sending package is used for editing and sending the message.
 ;;;***
 \f
 ;;;### (autoloads (reposition-window) "reposition" "reposition.el"
-;;;;;;  (18088 55088))
+;;;;;;  (18177 874))
 ;;; Generated autoloads from reposition.el
 
 (autoload 'reposition-window "reposition" "\
@@ -22807,8 +22740,8 @@ first comment line visible (if point is in a comment).
 
 ;;;***
 \f
-;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (18088
-;;;;;;  55088))
+;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (18177
+;;;;;;  874))
 ;;; Generated autoloads from resume.el
 
 (autoload 'resume-suspend-hook "resume" "\
@@ -22819,7 +22752,7 @@ Clear out the file used for transmitting args when Emacs resumes.
 ;;;***
 \f
 ;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el"
-;;;;;;  (18088 55088))
+;;;;;;  (18177 874))
 ;;; Generated autoloads from reveal.el
 
 (autoload 'reveal-mode "reveal" "\
@@ -22854,7 +22787,7 @@ With zero or negative ARG turn mode off.
 ;;;***
 \f
 ;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el"
-;;;;;;  (18197 21672))
+;;;;;;  (18195 4247))
 ;;; Generated autoloads from emacs-lisp/ring.el
 
 (autoload 'ring-p "ring" "\
@@ -22869,7 +22802,7 @@ Make a ring that can contain SIZE elements.
 
 ;;;***
 \f
-;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (18088 55112))
+;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (18177 869))
 ;;; Generated autoloads from net/rlogin.el
  (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)")
 
@@ -22920,8 +22853,8 @@ variable.
 ;;;;;;  rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output
 ;;;;;;  rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers
 ;;;;;;  rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names
-;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (18191
-;;;;;;  7159))
+;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (18194
+;;;;;;  36639))
 ;;; Generated autoloads from mail/rmail.el
 
 (autoload 'rmail-movemail-variant-p "rmail" "\
@@ -23186,7 +23119,7 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server.
 ;;;***
 \f
 ;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el"
-;;;;;;  (18088 55110))
+;;;;;;  (18177 867))
 ;;; Generated autoloads from mail/rmailedit.el
 
 (autoload 'rmail-edit-current-message "rmailedit" "\
@@ -23198,7 +23131,7 @@ Edit the contents of this message.
 \f
 ;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message
 ;;;;;;  rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd"
-;;;;;;  "mail/rmailkwd.el" (18088 55110))
+;;;;;;  "mail/rmailkwd.el" (18177 867))
 ;;; Generated autoloads from mail/rmailkwd.el
 
 (autoload 'rmail-add-label "rmailkwd" "\
@@ -23237,7 +23170,7 @@ With prefix argument N moves forward N messages with these labels.
 ;;;***
 \f
 ;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "mail/rmailmsc.el"
-;;;;;;  (18088 55110))
+;;;;;;  (18177 867))
 ;;; Generated autoloads from mail/rmailmsc.el
 
 (autoload 'set-rmail-inbox-list "rmailmsc" "\
@@ -23251,7 +23184,7 @@ If FILE-NAME is empty, remove any existing inbox list.
 \f
 ;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output
 ;;;;;;  rmail-output-to-rmail-file rmail-output-file-alist) "rmailout"
-;;;;;;  "mail/rmailout.el" (18088 55110))
+;;;;;;  "mail/rmailout.el" (18177 867))
 ;;; Generated autoloads from mail/rmailout.el
 
 (defvar rmail-output-file-alist nil "\
@@ -23318,8 +23251,8 @@ FILE-NAME defaults, interactively, from the Subject field of the message.
 \f
 ;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent
 ;;;;;;  rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject
-;;;;;;  rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (18088
-;;;;;;  55110))
+;;;;;;  rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (18177
+;;;;;;  867))
 ;;; Generated autoloads from mail/rmailsort.el
 
 (autoload 'rmail-sort-by-date "rmailsort" "\
@@ -23371,7 +23304,7 @@ KEYWORDS is a comma-separated list of labels.
 ;;;;;;  rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp
 ;;;;;;  rmail-summary-by-recipients rmail-summary-by-labels rmail-summary
 ;;;;;;  rmail-summary-line-count-flag rmail-summary-scroll-between-messages)
-;;;;;;  "rmailsum" "mail/rmailsum.el" (18101 9759))
+;;;;;;  "rmailsum" "mail/rmailsum.el" (18177 867))
 ;;; Generated autoloads from mail/rmailsum.el
 
 (defvar rmail-summary-scroll-between-messages t "\
@@ -23450,10 +23383,56 @@ Setting this variable has an effect only before reading a mail.")
 
 (custom-autoload 'rmail-user-mail-address-regexp "rmailsum" t)
 
+;;;***
+\f
+;;;### (autoloads (news-post-news) "rnewspost" "obsolete/rnewspost.el"
+;;;;;;  (18177 870))
+;;; Generated autoloads from obsolete/rnewspost.el
+
+(autoload 'news-post-news "rnewspost" "\
+Begin editing a new USENET news article to be posted.
+Type \\[describe-mode] once editing the article to get a list of commands.
+If NOQUERY is non-nil, we do not query before doing the work.
+
+\(fn &optional NOQUERY)" t nil)
+
+;;;***
+\f
+;;;### (autoloads (robin-use-package robin-modify-package robin-define-package)
+;;;;;;  "robin" "international/robin.el" (17928 6535))
+;;; Generated autoloads from international/robin.el
+
+(autoload 'robin-define-package "robin" "\
+Define a robin package.
+
+NAME is the string of this robin package.
+DOCSTRING is the documentation string of this robin package.
+Each RULE is of the form (INPUT OUTPUT) where INPUT is a string and
+OUTPUT is either a character or a string.  RULES are not evaluated.
+
+If there already exists a robin package whose name is NAME, the new
+one replaces the old one.
+
+\(fn NAME DOCSTRING &rest RULES)" nil (quote macro))
+
+(autoload 'robin-modify-package "robin" "\
+Change a rule in an already defined robin package.
+
+NAME is the string specifying a robin package.
+INPUT is a string that specifies the input pattern.
+OUTPUT is either a character or a string to be generated.
+
+\(fn NAME INPUT OUTPUT)" nil nil)
+
+(autoload 'robin-use-package "robin" "\
+Start using robin package NAME, which is a string.
+
+\(fn NAME)" nil nil)
+
 ;;;***
 \f
 ;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region
-;;;;;;  rot13-string rot13) "rot13" "rot13.el" (18088 55088))
+;;;;;;  rot13-string rot13) "rot13" "rot13.el" (18177 874))
 ;;; Generated autoloads from rot13.el
 
 (autoload 'rot13 "rot13" "\
@@ -23490,8 +23469,8 @@ Toggle the use of ROT13 encoding for the current window.
 
 ;;;***
 \f
-;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (18088
-;;;;;;  55088))
+;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (18177
+;;;;;;  874))
 ;;; Generated autoloads from ruler-mode.el
 
 (autoload 'ruler-mode "ruler-mode" "\
@@ -23501,8 +23480,8 @@ Display a ruler in the header line if ARG > 0.
 
 ;;;***
 \f
-;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (18142
-;;;;;;  63529))
+;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (18190
+;;;;;;  39682))
 ;;; Generated autoloads from emacs-lisp/rx.el
 
 (autoload 'rx-to-string "rx" "\
@@ -23815,7 +23794,7 @@ enclosed in `(and ...)'.
 ;;;***
 \f
 ;;;### (autoloads (savehist-mode savehist-mode) "savehist" "savehist.el"
-;;;;;;  (18211 32385))
+;;;;;;  (18231 31064))
 ;;; Generated autoloads from savehist.el
 
 (defvar savehist-mode nil "\
@@ -23841,7 +23820,7 @@ which is probably undesirable.
 ;;;***
 \f
 ;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el"
-;;;;;;  (18120 34753))
+;;;;;;  (18177 873))
 ;;; Generated autoloads from progmodes/scheme.el
 
 (autoload 'scheme-mode "scheme" "\
@@ -23883,7 +23862,7 @@ that variable's value is a string.
 ;;;***
 \f
 ;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31069))
 ;;; Generated autoloads from gnus/score-mode.el
 
 (autoload 'gnus-score-mode "score-mode" "\
@@ -23894,10 +23873,35 @@ This mode is an extended emacs-lisp mode.
 
 \(fn)" t nil)
 
+;;;***
+\f
+;;;### (autoloads (scribe-mode) "scribe" "obsolete/scribe.el" (18177
+;;;;;;  870))
+;;; Generated autoloads from obsolete/scribe.el
+
+(autoload 'scribe-mode "scribe" "\
+Major mode for editing files of Scribe (a text formatter) source.
+Scribe-mode is similar to text-mode, with a few extra commands added.
+\\{scribe-mode-map}
+
+Interesting variables:
+
+`scribe-fancy-paragraphs'
+  Non-nil makes Scribe mode use a different style of paragraph separation.
+
+`scribe-electric-quote'
+  Non-nil makes insert of double quote use `` or '' depending on context.
+
+`scribe-electric-parenthesis'
+  Non-nil makes an open-parenthesis char (one of `([<{')
+  automatically insert its close if typed after an @Command form.
+
+\(fn)" t nil)
+
 ;;;***
 \f
 ;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el"
-;;;;;;  (18088 55088))
+;;;;;;  (18177 874))
 ;;; Generated autoloads from scroll-all.el
 
 (defvar scroll-all-mode nil "\
@@ -23920,7 +23924,7 @@ apply to all visible windows in the same frame.
 ;;;***
 \f
 ;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el"
-;;;;;;  (18202 3996))
+;;;;;;  (18213 1255))
 ;;; Generated autoloads from scroll-lock.el
 
 (autoload 'scroll-lock-mode "scroll-lock" "\
@@ -23942,7 +23946,7 @@ during scrolling.
 ;;;;;;  mail-alias-file mail-default-reply-to mail-archive-file-name
 ;;;;;;  mail-header-separator send-mail-function mail-interactive
 ;;;;;;  mail-self-blind mail-specify-envelope-from mail-from-style)
-;;;;;;  "sendmail" "mail/sendmail.el" (18197 21674))
+;;;;;;  "sendmail" "mail/sendmail.el" (18203 51789))
 ;;; Generated autoloads from mail/sendmail.el
 
 (defvar mail-from-style 'angles "\
@@ -24243,7 +24247,7 @@ Like `mail' command, but display mail buffer in another frame.
 ;;;***
 \f
 ;;;### (autoloads (server-save-buffers-kill-terminal server-mode
-;;;;;;  server-start) "server" "server.el" (18213 13926))
+;;;;;;  server-start) "server" "server.el" (18231 31064))
 ;;; Generated autoloads from server.el
 
 (autoload 'server-start "server" "\
@@ -24287,7 +24291,7 @@ only these files will be asked to be saved.
 
 ;;;***
 \f
-;;;### (autoloads (ses-mode) "ses" "ses.el" (18209 8664))
+;;;### (autoloads (ses-mode) "ses" "ses.el" (18231 31064))
 ;;; Generated autoloads from ses.el
 
 (autoload 'ses-mode "ses" "\
@@ -24306,7 +24310,7 @@ These are active only in the minibuffer, when entering or editing a formula:
 ;;;***
 \f
 ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el"
-;;;;;;  (18120 34753))
+;;;;;;  (18177 876))
 ;;; Generated autoloads from textmodes/sgml-mode.el
 
 (autoload 'sgml-mode "sgml-mode" "\
@@ -24374,7 +24378,7 @@ To work around that, do:
 ;;;***
 \f
 ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
-;;;;;;  (18173 8196))
+;;;;;;  (18190 39684))
 ;;; Generated autoloads from progmodes/sh-script.el
 (put 'sh-shell 'safe-local-variable 'symbolp)
 
@@ -24438,7 +24442,7 @@ with your script for an edit-interpret-debug cycle.
 
 ;;;***
 \f
-;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (18130 62048))
+;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (18177 862))
 ;;; Generated autoloads from gnus/sha1.el
 
 (autoload 'sha1 "sha1" "\
@@ -24453,7 +24457,7 @@ If BINARY is non-nil, return a string in binary form.
 ;;;***
 \f
 ;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el"
-;;;;;;  (18088 55096))
+;;;;;;  (18177 858))
 ;;; Generated autoloads from emacs-lisp/shadow.el
 
 (autoload 'list-load-path-shadows "shadow" "\
@@ -24500,8 +24504,8 @@ buffer called `*Shadows*'.  Shadowings are located by calling the
 ;;;***
 \f
 ;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group
-;;;;;;  shadow-define-cluster) "shadowfile" "shadowfile.el" (18120
-;;;;;;  34749))
+;;;;;;  shadow-define-cluster) "shadowfile" "shadowfile.el" (18231
+;;;;;;  31064))
 ;;; Generated autoloads from shadowfile.el
 
 (autoload 'shadow-define-cluster "shadowfile" "\
@@ -24509,8 +24513,8 @@ Edit (or create) the definition of a cluster NAME.
 This is a group of hosts that share directories, so that copying to or from
 one of them is sufficient to update the file on all of them.  Clusters are
 defined by a name, the network address of a primary host (the one we copy
-files to), and a regular expression that matches the hostnames of all the sites
-in the cluster.
+files to), and a regular expression that matches the hostnames of all the
+sites in the cluster.
 
 \(fn NAME)" t nil)
 
@@ -24526,8 +24530,8 @@ specific hostnames, or names of clusters (see `shadow-define-cluster').
 Make each of a group of files be shared between hosts.
 Prompts for regular expression; files matching this are shared between a list
 of sites, which are also prompted for.  The filenames must be identical on all
-hosts (if they aren't, use `shadow-define-literal-group' instead of this function).
-Each site can be either a hostname or the name of a cluster (see
+hosts (if they aren't, use `shadow-define-literal-group' instead of this
+function).  Each site can be either a hostname or the name of a cluster (see
 `shadow-define-cluster').
 
 \(fn)" t nil)
@@ -24540,7 +24544,7 @@ Set up file shadowing.
 ;;;***
 \f
 ;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el"
-;;;;;;  (18212 46004))
+;;;;;;  (18231 31064))
 ;;; Generated autoloads from shell.el
 
 (defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\
@@ -24590,7 +24594,7 @@ Otherwise, one argument `-i' is passed to the shell.
 ;;;***
 \f
 ;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage)
-;;;;;;  "sieve" "gnus/sieve.el" (18212 46007))
+;;;;;;  "sieve" "gnus/sieve.el" (18231 31069))
 ;;; Generated autoloads from gnus/sieve.el
 
 (autoload 'sieve-manage "sieve" "\
@@ -24611,7 +24615,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31069))
 ;;; Generated autoloads from gnus/sieve-mode.el
 
 (autoload 'sieve-mode "sieve-mode" "\
@@ -24626,14 +24630,14 @@ Turning on Sieve mode runs `sieve-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "simple" "simple.el" (18208 48751))
+;;;### (autoloads nil "simple" "simple.el" (18231 31064))
 ;;; Generated autoloads from simple.el
 (put 'fill-prefix 'safe-local-variable 'string-or-null-p)
 
 ;;;***
 \f
-;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (18088
-;;;;;;  55117))
+;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (18231
+;;;;;;  31070))
 ;;; Generated autoloads from progmodes/simula.el
 
 (autoload 'simula-mode "simula" "\
@@ -24682,7 +24686,7 @@ with no arguments, if that value is non-nil.
 ;;;***
 \f
 ;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new
-;;;;;;  define-skeleton) "skeleton" "skeleton.el" (18120 34749))
+;;;;;;  define-skeleton) "skeleton" "skeleton.el" (18177 874))
 ;;; Generated autoloads from skeleton.el
 
 (defvar skeleton-filter-function 'identity "\
@@ -24792,7 +24796,7 @@ symmetrical ones, and the same character twice for the others.
 ;;;***
 \f
 ;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el"
-;;;;;;  (18202 3996))
+;;;;;;  (18231 31064))
 ;;; Generated autoloads from smerge-mode.el
 
 (autoload 'smerge-ediff "smerge-mode" "\
@@ -24811,7 +24815,7 @@ Minor mode to simplify editing output from the diff3 program.
 ;;;***
 \f
 ;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31069))
 ;;; Generated autoloads from gnus/smiley.el
 
 (autoload 'smiley-region "smiley" "\
@@ -24829,7 +24833,7 @@ interactively. If there's no argument, do it at the current buffer
 ;;;***
 \f
 ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail"
-;;;;;;  "mail/smtpmail.el" (18088 55110))
+;;;;;;  "mail/smtpmail.el" (18177 867))
 ;;; Generated autoloads from mail/smtpmail.el
 
 (autoload 'smtpmail-send-it "smtpmail" "\
@@ -24844,7 +24848,7 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'.
 
 ;;;***
 \f
-;;;### (autoloads (snake) "snake" "play/snake.el" (18088 55114))
+;;;### (autoloads (snake) "snake" "play/snake.el" (18177 871))
 ;;; Generated autoloads from play/snake.el
 
 (autoload 'snake "snake" "\
@@ -24868,7 +24872,7 @@ Snake mode keybindings:
 ;;;***
 \f
 ;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el"
-;;;;;;  (18161 20995))
+;;;;;;  (18190 39683))
 ;;; Generated autoloads from net/snmp-mode.el
 
 (autoload 'snmp-mode "snmp-mode" "\
@@ -24899,7 +24903,7 @@ then `snmpv2-mode-hook'.
 \f
 ;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name
 ;;;;;;  calendar-longitude calendar-latitude calendar-time-display-form)
-;;;;;;  "solar" "calendar/solar.el" (18088 55094))
+;;;;;;  "solar" "calendar/solar.el" (18177 856))
 ;;; Generated autoloads from calendar/solar.el
 
 (defvar calendar-time-display-form '(12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")")) "\
@@ -24970,8 +24974,8 @@ Requires floating point.
 
 ;;;***
 \f
-;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (18173
-;;;;;;  8195))
+;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (18190
+;;;;;;  39683))
 ;;; Generated autoloads from play/solitaire.el
 
 (autoload 'solitaire "solitaire" "\
@@ -25048,7 +25052,7 @@ Pick your favourite shortcuts:
 \f
 ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields
 ;;;;;;  sort-fields sort-numeric-fields sort-pages sort-paragraphs
-;;;;;;  sort-lines sort-subr) "sort" "sort.el" (18128 32655))
+;;;;;;  sort-lines sort-subr) "sort" "sort.el" (18177 874))
 ;;; Generated autoloads from sort.el
 (put 'sort-fold-case 'safe-local-variable 'booleanp)
 
@@ -25192,8 +25196,8 @@ From a program takes two point or marker arguments, BEG and END.
 
 ;;;***
 \f
-;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (18212
-;;;;;;  46007))
+;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (18231
+;;;;;;  31069))
 ;;; Generated autoloads from gnus/spam.el
 
 (autoload 'spam-initialize "spam" "\
@@ -25209,7 +25213,7 @@ installed through spam-necessary-extra-headers.
 \f
 ;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file
 ;;;;;;  spam-report-url-ping-mm-url spam-report-process-queue) "spam-report"
-;;;;;;  "gnus/spam-report.el" (18212 46007))
+;;;;;;  "gnus/spam-report.el" (18231 31069))
 ;;; Generated autoloads from gnus/spam-report.el
 
 (autoload 'spam-report-process-queue "spam-report" "\
@@ -25252,7 +25256,7 @@ Spam reports will be queued with the method used when
 ;;;***
 \f
 ;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar"
-;;;;;;  "speedbar.el" (18164 30590))
+;;;;;;  "speedbar.el" (18190 39679))
 ;;; Generated autoloads from speedbar.el
 
 (defalias 'speedbar 'speedbar-frame-mode)
@@ -25277,7 +25281,7 @@ selected.  If the speedbar frame is active, then select the attached frame.
 ;;;***
 \f
 ;;;### (autoloads (spell-string spell-region spell-word spell-buffer)
-;;;;;;  "spell" "textmodes/spell.el" (18088 55120))
+;;;;;;  "spell" "textmodes/spell.el" (18177 876))
 ;;; Generated autoloads from textmodes/spell.el
 
 (put 'spell-filter 'risky-local-variable t)
@@ -25313,8 +25317,8 @@ Check spelling of string supplied as argument.
 
 ;;;***
 \f
-;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (18088
-;;;;;;  55114))
+;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (18177
+;;;;;;  871))
 ;;; Generated autoloads from play/spook.el
 
 (autoload 'spook "spook" "\
@@ -25332,8 +25336,8 @@ Return a vector containing the lines from `spook-phrases-file'.
 ;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres
 ;;;;;;  sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix
 ;;;;;;  sql-sybase sql-oracle sql-product-interactive sql-mode sql-help
-;;;;;;  sql-add-product-keywords) "sql" "progmodes/sql.el" (18173
-;;;;;;  8196))
+;;;;;;  sql-add-product-keywords) "sql" "progmodes/sql.el" (18190
+;;;;;;  39684))
 ;;; Generated autoloads from progmodes/sql.el
 
 (autoload 'sql-add-product-keywords "sql" "\
@@ -25764,8 +25768,8 @@ input.  See `sql-interactive-mode'.
 ;;;;;;  strokes-mode strokes-list-strokes strokes-load-user-strokes
 ;;;;;;  strokes-help strokes-describe-stroke strokes-do-complex-stroke
 ;;;;;;  strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke
-;;;;;;  strokes-global-set-stroke) "strokes" "strokes.el" (18120
-;;;;;;  34749))
+;;;;;;  strokes-global-set-stroke) "strokes" "strokes.el" (18231
+;;;;;;  31064))
 ;;; Generated autoloads from strokes.el
 
 (autoload 'strokes-global-set-stroke "strokes" "\
@@ -25875,7 +25879,7 @@ Read a complex stroke and insert its glyph into the current buffer.
 ;;;***
 \f
 ;;;### (autoloads (studlify-buffer studlify-word studlify-region)
-;;;;;;  "studly" "play/studly.el" (16268 23254))
+;;;;;;  "studly" "play/studly.el" (16511 54937))
 ;;; Generated autoloads from play/studly.el
 
 (autoload 'studlify-region "studly" "\
@@ -25895,7 +25899,7 @@ Studlify-case the current buffer.
 
 ;;;***
 \f
-;;;### (autoloads (locate-library) "subr" "subr.el" (18211 32385))
+;;;### (autoloads (locate-library) "subr" "subr.el" (18231 31064))
 ;;; Generated autoloads from subr.el
 
 (autoload 'locate-library "subr" "\
@@ -25917,7 +25921,7 @@ and the file name is displayed in the echo area.
 ;;;***
 \f
 ;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el"
-;;;;;;  (18173 8195))
+;;;;;;  (18190 39683))
 ;;; Generated autoloads from mail/supercite.el
 
 (autoload 'sc-cite-original "supercite" "\
@@ -25949,8 +25953,8 @@ before, and `sc-post-hook' is run after the guts of this function.
 
 ;;;***
 \f
-;;;### (autoloads (gpm-mouse-mode) "t-mouse" "t-mouse.el" (18177
-;;;;;;  7731))
+;;;### (autoloads (gpm-mouse-mode) "t-mouse" "t-mouse.el" (18190
+;;;;;;  39679))
 ;;; Generated autoloads from t-mouse.el
 
 (define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1")
@@ -25977,7 +25981,7 @@ It relies on the `gpm' daemon being activated.
 
 ;;;***
 \f
-;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (18088 55089))
+;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (18177 875))
 ;;; Generated autoloads from tabify.el
 
 (autoload 'untabify "tabify" "\
@@ -26012,7 +26016,7 @@ The variable `tab-width' controls the spacing of tab stops.
 ;;;;;;  table-recognize table-insert-row-column table-insert-column
 ;;;;;;  table-insert-row table-insert table-point-left-cell-hook
 ;;;;;;  table-point-entered-cell-hook table-load-hook table-cell-map-hook)
-;;;;;;  "table" "textmodes/table.el" (18173 8196))
+;;;;;;  "table" "textmodes/table.el" (18190 39686))
 ;;; Generated autoloads from textmodes/table.el
 
 (defvar table-cell-map-hook nil "\
@@ -26600,7 +26604,7 @@ converts a table into plain text without frames.  It is a companion to
 
 ;;;***
 \f
-;;;### (autoloads (talk talk-connect) "talk" "talk.el" (18133 2197))
+;;;### (autoloads (talk talk-connect) "talk" "talk.el" (18190 39679))
 ;;; Generated autoloads from talk.el
 
 (autoload 'talk-connect "talk" "\
@@ -26615,7 +26619,7 @@ Connect to the Emacs talk group from the current X display or tty frame.
 
 ;;;***
 \f
-;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (18202 3996))
+;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (18213 1256))
 ;;; Generated autoloads from tar-mode.el
 
 (autoload 'tar-mode "tar-mode" "\
@@ -26639,7 +26643,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
 ;;;***
 \f
 ;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl"
-;;;;;;  "progmodes/tcl.el" (18120 34753))
+;;;;;;  "progmodes/tcl.el" (18177 873))
 ;;; Generated autoloads from progmodes/tcl.el
 
 (autoload 'tcl-mode "tcl" "\
@@ -26690,7 +26694,7 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'.
 
 ;;;***
 \f
-;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (18101 9759))
+;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (18177 869))
 ;;; Generated autoloads from net/telnet.el
  (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)")
 
@@ -26717,8 +26721,8 @@ Normally input is edited in Emacs and sent a line at a time.
 
 ;;;***
 \f
-;;;### (autoloads (ansi-term term make-term) "term" "term.el" (18120
-;;;;;;  34749))
+;;;### (autoloads (ansi-term term make-term) "term" "term.el" (18177
+;;;;;;  875))
 ;;; Generated autoloads from term.el
 
 (autoload 'make-term "term" "\
@@ -26746,8 +26750,8 @@ Start a terminal-emulator in a new buffer.
 
 ;;;***
 \f
-;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (18088
-;;;;;;  55090))
+;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (18177
+;;;;;;  875))
 ;;; Generated autoloads from terminal.el
 
 (autoload 'terminal-emulator "terminal" "\
@@ -26784,7 +26788,7 @@ subprocess started.
 ;;;***
 \f
 ;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el"
-;;;;;;  (18088 55096))
+;;;;;;  (18177 858))
 ;;; Generated autoloads from emacs-lisp/testcover.el
 
 (autoload 'testcover-this-defun "testcover" "\
@@ -26794,7 +26798,7 @@ Start coverage on function under point.
 
 ;;;***
 \f
-;;;### (autoloads (tetris) "tetris" "play/tetris.el" (18088 55114))
+;;;### (autoloads (tetris) "tetris" "play/tetris.el" (18177 871))
 ;;; Generated autoloads from play/tetris.el
 
 (autoload 'tetris "tetris" "\
@@ -26825,7 +26829,7 @@ tetris-mode keybindings:
 ;;;;;;  tex-start-commands tex-start-options slitex-run-command latex-run-command
 ;;;;;;  tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp
 ;;;;;;  tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el"
-;;;;;;  (18211 32385))
+;;;;;;  (18213 1261))
 ;;; Generated autoloads from textmodes/tex-mode.el
 
 (defvar tex-shell-file-name nil "\
@@ -27127,7 +27131,7 @@ Major mode to edit DocTeX files.
 ;;;***
 \f
 ;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer)
-;;;;;;  "texinfmt" "textmodes/texinfmt.el" (18130 62049))
+;;;;;;  "texinfmt" "textmodes/texinfmt.el" (18177 876))
 ;;; Generated autoloads from textmodes/texinfmt.el
 
 (autoload 'texinfo-format-buffer "texinfmt" "\
@@ -27167,7 +27171,7 @@ if large.  You can use `Info-split' to do this manually.
 ;;;***
 \f
 ;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote)
-;;;;;;  "texinfo" "textmodes/texinfo.el" (18149 22003))
+;;;;;;  "texinfo" "textmodes/texinfo.el" (18190 39686))
 ;;; Generated autoloads from textmodes/texinfo.el
 
 (defvar texinfo-open-quote "``" "\
@@ -27251,10 +27255,9 @@ value of `texinfo-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads (thai-auto-composition-mode thai-composition-function
-;;;;;;  thai-post-read-conversion thai-compose-buffer thai-compose-string
-;;;;;;  thai-compose-region) "thai-util" "language/thai-util.el"
-;;;;;;  (18088 55109))
+;;;### (autoloads (thai-composition-function thai-compose-buffer
+;;;;;;  thai-compose-string thai-compose-region) "thai-util" "language/thai-util.el"
+;;;;;;  (18177 866))
 ;;; Generated autoloads from language/thai-util.el
 
 (autoload 'thai-compose-region "thai-util" "\
@@ -27274,31 +27277,16 @@ Compose Thai characters in the current buffer.
 
 \(fn)" t nil)
 
-(autoload 'thai-post-read-conversion "thai-util" "\
-Not documented
-
-\(fn LEN)" nil nil)
-
 (autoload 'thai-composition-function "thai-util" "\
-Compose Thai text in the region FROM and TO.
-The text matches the regular expression PATTERN.
-Optional 4th argument STRING, if non-nil, is a string containing text
-to compose.
-
-The return value is number of composed characters.
-
-\(fn FROM TO PATTERN &optional STRING)" nil nil)
-
-(autoload 'thai-auto-composition-mode "thai-util" "\
-Minor mode for automatically correct Thai character composition.
+Not documented
 
-\(fn &optional ARG)" t nil)
+\(fn POS &optional STRING)" nil nil)
 
 ;;;***
 \f
 ;;;### (autoloads (list-at-point number-at-point symbol-at-point
 ;;;;;;  sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing)
-;;;;;;  "thingatpt" "thingatpt.el" (18088 55090))
+;;;;;;  "thingatpt" "thingatpt.el" (18177 876))
 ;;; Generated autoloads from thingatpt.el
 
 (autoload 'forward-thing "thingatpt" "\
@@ -27355,7 +27343,7 @@ Not documented
 \f
 ;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show thumbs-dired-show-marked
 ;;;;;;  thumbs-show-from-dir thumbs-find-thumb) "thumbs" "thumbs.el"
-;;;;;;  (18088 55090))
+;;;;;;  (18177 876))
 ;;; Generated autoloads from thumbs.el
 
 (autoload 'thumbs-find-thumb "thumbs" "\
@@ -27394,7 +27382,7 @@ In dired, call the setroot program on the image at point.
 ;;;;;;  tibetan-composition-function tibetan-decompose-string tibetan-decompose-region
 ;;;;;;  tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan
 ;;;;;;  tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util"
-;;;;;;  "language/tibet-util.el" (18088 55109))
+;;;;;;  "language/tibet-util.el" (18177 866))
 ;;; Generated autoloads from language/tibet-util.el
 
 (autoload 'tibetan-char-p "tibet-util" "\
@@ -27441,7 +27429,7 @@ are decomposed into normal Tibetan character sequences.
 (autoload 'tibetan-composition-function "tibet-util" "\
 Not documented
 
-\(fn FROM TO PATTERN &optional STRING)" nil nil)
+\(fn POS &optional STRING)" nil nil)
 
 (autoload 'tibetan-decompose-buffer "tibet-util" "\
 Decomposes Tibetan characters in the buffer into their components.
@@ -27473,7 +27461,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el"
-;;;;;;  (18088 55121))
+;;;;;;  (18177 876))
 ;;; Generated autoloads from textmodes/tildify.el
 
 (autoload 'tildify-region "tildify" "\
@@ -27497,7 +27485,7 @@ This function performs no refilling of the changed text.
 ;;;***
 \f
 ;;;### (autoloads (display-time-world display-time-mode display-time
-;;;;;;  display-time-day-and-date) "time" "time.el" (18211 32385))
+;;;;;;  display-time-day-and-date) "time" "time.el" (18231 31064))
 ;;; Generated autoloads from time.el
 
 (defvar display-time-day-and-date nil "\
@@ -27546,8 +27534,8 @@ To turn off the world time display, go to that window and type `q'.
 ;;;### (autoloads (safe-date-to-time time-to-days time-to-day-in-year
 ;;;;;;  date-leap-year-p days-between date-to-day time-add time-subtract
 ;;;;;;  time-since days-to-time time-less-p seconds-to-time time-to-seconds
-;;;;;;  date-to-time) "time-date" "calendar/time-date.el" (18088
-;;;;;;  55094))
+;;;;;;  date-to-time) "time-date" "calendar/time-date.el" (18177
+;;;;;;  856))
 ;;; Generated autoloads from calendar/time-date.el
 
 (autoload 'date-to-time "time-date" "\
@@ -27633,7 +27621,7 @@ If DATE is malformed, return a time value of zeros.
 ;;;***
 \f
 ;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp"
-;;;;;;  "time-stamp.el" (18088 55090))
+;;;;;;  "time-stamp.el" (18177 876))
 ;;; Generated autoloads from time-stamp.el
 (put 'time-stamp-format 'safe-local-variable 'stringp)
 (put 'time-stamp-line-limit 'safe-local-variable 'integerp)
@@ -27676,7 +27664,7 @@ With ARG, turn time stamping on if and only if arg is positive.
 ;;;;;;  timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
 ;;;;;;  timeclock-change timeclock-status-string timeclock-out timeclock-in
 ;;;;;;  timeclock-modeline-display) "timeclock" "calendar/timeclock.el"
-;;;;;;  (18088 55094))
+;;;;;;  (18177 856))
 ;;; Generated autoloads from calendar/timeclock.el
 
 (autoload 'timeclock-modeline-display "timeclock" "\
@@ -27777,7 +27765,7 @@ relative only to the time worked today, and not to past time.
 \f
 ;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer
 ;;;;;;  run-at-time cancel-function-timers cancel-timer) "timer"
-;;;;;;  "emacs-lisp/timer.el" (18088 55096))
+;;;;;;  "emacs-lisp/timer.el" (18177 858))
 ;;; Generated autoloads from emacs-lisp/timer.el
 
 (defalias 'disable-timeout 'cancel-timer)
@@ -27858,7 +27846,7 @@ be detected.
 ;;;***
 \f
 ;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv"
-;;;;;;  "international/titdic-cnv.el" (18088 55108))
+;;;;;;  "international/titdic-cnv.el" (18177 865))
 ;;; Generated autoloads from international/titdic-cnv.el
 
 (autoload 'titdic-convert "titdic-cnv" "\
@@ -27881,8 +27869,8 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\".
 ;;;***
 \f
 ;;;### (autoloads (tamil-composition-function tamil-post-read-conversion
-;;;;;;  tamil-compose-region) "tml-util" "language/tml-util.el" (18088
-;;;;;;  55109))
+;;;;;;  tamil-compose-region) "tml-util" "language/tml-util.el" (18177
+;;;;;;  866))
 ;;; Generated autoloads from language/tml-util.el
 
 (autoload 'tamil-compose-region "tml-util" "\
@@ -27896,16 +27884,16 @@ Not documented
 \(fn LEN)" nil nil)
 
 (autoload 'tamil-composition-function "tml-util" "\
-Compose Tamil characters in REGION, or STRING if specified.
-Assume that the REGION or STRING must fully match the composable 
-PATTERN regexp.
+Compose Tamil characters after the position POS.
+If STRING is not nil, it is a string, and POS is an index to the string.
+In this case, compose characters after POS of the string.
 
-\(fn FROM TO PATTERN &optional STRING)" nil nil)
+\(fn POS &optional STRING)" nil nil)
 
 ;;;***
 \f
 ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm"
-;;;;;;  "tmm.el" (18149 22003))
+;;;;;;  "tmm.el" (18190 39679))
 ;;; Generated autoloads from tmm.el
  (define-key global-map "\M-`" 'tmm-menubar)
  (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse)
@@ -27945,7 +27933,7 @@ Its value should be an event that has a binding in MENU.
 \f
 ;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities
 ;;;;;;  todo-insert-item todo-add-item-non-interactively todo-add-category)
-;;;;;;  "todo-mode" "calendar/todo-mode.el" (18203 38492))
+;;;;;;  "todo-mode" "calendar/todo-mode.el" (18177 856))
 ;;; Generated autoloads from calendar/todo-mode.el
 
 (autoload 'todo-add-category "todo-mode" "\
@@ -28006,7 +27994,7 @@ Show TODO list.
 \f
 ;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu
 ;;;;;;  tool-bar-local-item tool-bar-add-item toggle-tool-bar-mode-from-frame)
-;;;;;;  "tool-bar" "tool-bar.el" (18133 2197))
+;;;;;;  "tool-bar" "tool-bar.el" (18190 39679))
 ;;; Generated autoloads from tool-bar.el
 
 (autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\
@@ -28079,7 +28067,7 @@ holds a keymap.
 ;;;***
 \f
 ;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el"
-;;;;;;  (18211 32385))
+;;;;;;  (18213 1258))
 ;;; Generated autoloads from emulation/tpu-edt.el
 
 (defvar tpu-edt-mode nil "\
@@ -28105,7 +28093,7 @@ Turn on TPU/edt emulation.
 
 ;;;***
 \f
-;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (18088 55096))
+;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (18177 858))
 ;;; Generated autoloads from emacs-lisp/tq.el
 
 (autoload 'tq-create "tq" "\
@@ -28119,7 +28107,7 @@ to a tcp server on another machine.
 ;;;***
 \f
 ;;;### (autoloads (trace-function-background trace-function trace-buffer)
-;;;;;;  "trace" "emacs-lisp/trace.el" (18088 55096))
+;;;;;;  "trace" "emacs-lisp/trace.el" (18177 858))
 ;;; Generated autoloads from emacs-lisp/trace.el
 
 (defvar trace-buffer "*trace-output*" "\
@@ -28156,7 +28144,7 @@ BUFFER defaults to `trace-buffer'.
 ;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion
 ;;;;;;  tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers
 ;;;;;;  tramp-file-name-handler tramp-syntax) "tramp" "net/tramp.el"
-;;;;;;  (18211 32385))
+;;;;;;  (18231 31069))
 ;;; Generated autoloads from net/tramp.el
 
 (defvar tramp-syntax (if (featurep 'xemacs) 'sep 'ftp) "\
@@ -28284,7 +28272,7 @@ Discard Tramp from loading remote files.
 ;;;***
 \f
 ;;;### (autoloads (tramp-ftp-enable-ange-ftp) "tramp-ftp" "net/tramp-ftp.el"
-;;;;;;  (18183 58477))
+;;;;;;  (18231 31069))
 ;;; Generated autoloads from net/tramp-ftp.el
 
 (autoload 'tramp-ftp-enable-ange-ftp "tramp-ftp" "\
@@ -28294,8 +28282,8 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (18200
-;;;;;;  51264))
+;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (18203
+;;;;;;  51788))
 ;;; Generated autoloads from tutorial.el
 
 (autoload 'help-with-tutorial "tutorial" "\
@@ -28317,10 +28305,21 @@ resumed later.
 
 \(fn &optional ARG DONT-ASK-FOR-REVERT)" t nil)
 
+;;;***
+\f
+;;;### (autoloads (tai-viet-composition-function) "tv-util" "language/tv-util.el"
+;;;;;;  (18177 848))
+;;; Generated autoloads from language/tv-util.el
+
+(autoload 'tai-viet-composition-function "tv-util" "\
+Not documented
+
+\(fn POS &optional STRING)" nil nil)
+
 ;;;***
 \f
 ;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column"
-;;;;;;  "textmodes/two-column.el" (18201 33329))
+;;;;;;  "textmodes/two-column.el" (18203 51793))
 ;;; Generated autoloads from textmodes/two-column.el
  (autoload '2C-command "two-column" () t 'keymap)
  (global-set-key "\C-x6" '2C-command)
@@ -28371,7 +28370,7 @@ First column's text    sSs  Second column's text
 ;;;;;;  type-break type-break-mode type-break-keystroke-threshold
 ;;;;;;  type-break-good-break-interval type-break-good-rest-interval
 ;;;;;;  type-break-interval type-break-mode) "type-break" "type-break.el"
-;;;;;;  (18088 55090))
+;;;;;;  (18177 877))
 ;;; Generated autoloads from type-break.el
 
 (defvar type-break-mode nil "\
@@ -28554,7 +28553,7 @@ FRAC should be the inverse of the fractional value; for example, a value of
 ;;;***
 \f
 ;;;### (autoloads (ununderline-region underline-region) "underline"
-;;;;;;  "textmodes/underline.el" (18088 55121))
+;;;;;;  "textmodes/underline.el" (18177 876))
 ;;; Generated autoloads from textmodes/underline.el
 
 (autoload 'underline-region "underline" "\
@@ -28575,7 +28574,7 @@ which specify the range to operate on.
 ;;;***
 \f
 ;;;### (autoloads (unforward-rmail-message undigestify-rmail-message)
-;;;;;;  "undigest" "mail/undigest.el" (18120 34751))
+;;;;;;  "undigest" "mail/undigest.el" (18177 867))
 ;;; Generated autoloads from mail/undigest.el
 
 (autoload 'undigestify-rmail-message "undigest" "\
@@ -28594,7 +28593,7 @@ following the containing message.
 ;;;***
 \f
 ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el"
-;;;;;;  (18088 55110))
+;;;;;;  (18177 867))
 ;;; Generated autoloads from mail/unrmail.el
 
 (autoload 'batch-unrmail "unrmail" "\
@@ -28613,21 +28612,21 @@ Convert Rmail file FILE to system inbox format file TO-FILE.
 
 ;;;***
 \f
-;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (18120
-;;;;;;  34750))
+;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (18231
+;;;;;;  31065))
 ;;; Generated autoloads from emacs-lisp/unsafep.el
 
 (autoload 'unsafep "unsafep" "\
-Return nil if evaluating FORM couldn't possibly do any harm;
-otherwise result is a reason why FORM is unsafe.  UNSAFEP-VARS is a list
-of symbols with local bindings.
+Return nil if evaluating FORM couldn't possibly do any harm.
+Otherwise result is a reason why FORM is unsafe.
+UNSAFEP-VARS is a list of symbols with local bindings.
 
 \(fn FORM &optional UNSAFEP-VARS)" nil nil)
 
 ;;;***
 \f
 ;;;### (autoloads (url-retrieve-synchronously url-retrieve) "url"
-;;;;;;  "url/url.el" (18088 55122))
+;;;;;;  "url/url.el" (18177 877))
 ;;; Generated autoloads from url/url.el
 
 (autoload 'url-retrieve "url" "\
@@ -28667,7 +28666,7 @@ no further processing).  URL is either a string or a parsed URL.
 ;;;***
 \f
 ;;;### (autoloads (url-register-auth-scheme url-get-authentication)
-;;;;;;  "url-auth" "url/url-auth.el" (18197 21677))
+;;;;;;  "url-auth" "url/url-auth.el" (18195 4247))
 ;;; Generated autoloads from url/url-auth.el
 
 (autoload 'url-get-authentication "url-auth" "\
@@ -28709,8 +28708,8 @@ RATING   a rating between 1 and 10 of the strength of the authentication.
 ;;;***
 \f
 ;;;### (autoloads (url-cache-expired url-cache-extract url-is-cached
-;;;;;;  url-store-in-cache) "url-cache" "url/url-cache.el" (18120
-;;;;;;  34753))
+;;;;;;  url-store-in-cache) "url-cache" "url/url-cache.el" (18177
+;;;;;;  877))
 ;;; Generated autoloads from url/url-cache.el
 
 (autoload 'url-store-in-cache "url-cache" "\
@@ -28735,7 +28734,7 @@ Return t if a cached file has expired.
 
 ;;;***
 \f
-;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (18088 55121))
+;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (18177 877))
 ;;; Generated autoloads from url/url-cid.el
 
 (autoload 'url-cid "url-cid" "\
@@ -28746,7 +28745,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav"
-;;;;;;  "url/url-dav.el" (18173 8196))
+;;;;;;  "url/url-dav.el" (18190 39686))
 ;;; Generated autoloads from url/url-dav.el
 
 (autoload 'url-dav-supported-p "url-dav" "\
@@ -28761,8 +28760,8 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads (url-file) "url-file" "url/url-file.el" (18140
-;;;;;;  63039))
+;;;### (autoloads (url-file) "url-file" "url/url-file.el" (18190
+;;;;;;  39686))
 ;;; Generated autoloads from url/url-file.el
 
 (autoload 'url-file "url-file" "\
@@ -28773,7 +28772,7 @@ Handle file: and ftp: URLs.
 ;;;***
 \f
 ;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw"
-;;;;;;  "url/url-gw.el" (18088 55121))
+;;;;;;  "url/url-gw.el" (18177 877))
 ;;; Generated autoloads from url/url-gw.el
 
 (autoload 'url-gateway-nslookup-host "url-gw" "\
@@ -28792,8 +28791,8 @@ Might do a non-blocking connection; use `process-status' to check.
 ;;;***
 \f
 ;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file
-;;;;;;  url-handler-mode) "url-handlers" "url/url-handlers.el" (18088
-;;;;;;  55121))
+;;;;;;  url-handler-mode) "url-handlers" "url/url-handlers.el" (18177
+;;;;;;  877))
 ;;; Generated autoloads from url/url-handlers.el
 
 (defvar url-handler-mode nil "\
@@ -28837,7 +28836,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p
-;;;;;;  url-http) "url-http" "url/url-http.el" (18140 63039))
+;;;;;;  url-http) "url-http" "url/url-http.el" (18190 39686))
 ;;; Generated autoloads from url/url-http.el
 
 (autoload 'url-http "url-http" "\
@@ -28902,7 +28901,7 @@ HTTPS retrievals are asynchronous.")
 
 ;;;***
 \f
-;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (18088 55121))
+;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (18177 877))
 ;;; Generated autoloads from url/url-irc.el
 
 (autoload 'url-irc "url-irc" "\
@@ -28912,8 +28911,8 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (18088
-;;;;;;  55121))
+;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (18177
+;;;;;;  877))
 ;;; Generated autoloads from url/url-ldap.el
 
 (autoload 'url-ldap "url-ldap" "\
@@ -28927,7 +28926,7 @@ URL can be a URL string, or a URL vector of the type returned by
 ;;;***
 \f
 ;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el"
-;;;;;;  (18140 63039))
+;;;;;;  (18190 39686))
 ;;; Generated autoloads from url/url-mailto.el
 
 (autoload 'url-mail "url-mailto" "\
@@ -28943,7 +28942,7 @@ Handle the mailto: URL syntax.
 ;;;***
 \f
 ;;;### (autoloads (url-data url-generic-emulator-loader url-info
-;;;;;;  url-man) "url-misc" "url/url-misc.el" (18165 39747))
+;;;;;;  url-man) "url-misc" "url/url-misc.el" (18190 39686))
 ;;; Generated autoloads from url/url-misc.el
 
 (autoload 'url-man "url-misc" "\
@@ -28975,7 +28974,7 @@ Fetch a data URL (RFC 2397).
 ;;;***
 \f
 ;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el"
-;;;;;;  (18163 15437))
+;;;;;;  (18190 39686))
 ;;; Generated autoloads from url/url-news.el
 
 (autoload 'url-news "url-news" "\
@@ -28992,7 +28991,7 @@ Not documented
 \f
 ;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable
 ;;;;;;  dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el"
-;;;;;;  (18088 55121))
+;;;;;;  (18177 877))
 ;;; Generated autoloads from url/url-ns.el
 
 (autoload 'isPlainHostName "url-ns" "\
@@ -29033,7 +29032,7 @@ Not documented
 ;;;***
 \f
 ;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse"
-;;;;;;  "url/url-parse.el" (18140 63039))
+;;;;;;  "url/url-parse.el" (18190 39686))
 ;;; Generated autoloads from url/url-parse.el
 
 (autoload 'url-recreate-url "url-parse" "\
@@ -29051,7 +29050,7 @@ Format is:
 ;;;***
 \f
 ;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el"
-;;;;;;  (18088 55121))
+;;;;;;  (18177 877))
 ;;; Generated autoloads from url/url-privacy.el
 
 (autoload 'url-setup-privacy-info "url-privacy" "\
@@ -29067,7 +29066,7 @@ Setup variables that expose info about you and your system.
 ;;;;;;  url-pretty-length url-strip-leading-spaces url-eat-trailing-space
 ;;;;;;  url-get-normalized-date url-lazy-message url-normalize-url
 ;;;;;;  url-insert-entities-in-string url-parse-args url-debug url-debug)
-;;;;;;  "url-util" "url/url-util.el" (18197 21677))
+;;;;;;  "url-util" "url/url-util.el" (18195 4247))
 ;;; Generated autoloads from url/url-util.el
 
 (defvar url-debug nil "\
@@ -29201,7 +29200,7 @@ This uses `url-current-object', set locally to the buffer.
 ;;;***
 \f
 ;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock)
-;;;;;;  "userlock" "userlock.el" (18120 34749))
+;;;;;;  "userlock" "userlock.el" (18177 877))
 ;;; Generated autoloads from userlock.el
 
 (autoload 'ask-user-about-lock "userlock" "\
@@ -29229,15 +29228,25 @@ The buffer in question is current when this function is called.
 
 ;;;***
 \f
-;;;### (autoloads nil "utf-7" "international/utf-7.el" (18088 55108))
+;;;### (autoloads (utf-7-pre-write-conversion utf-7-post-read-conversion)
+;;;;;;  "utf-7" "international/utf-7.el" (18177 865))
 ;;; Generated autoloads from international/utf-7.el
-(autoload-coding-system 'utf-7 '(require 'utf-7))
+
+(autoload 'utf-7-post-read-conversion "utf-7" "\
+Not documented
+
+\(fn LEN)" nil nil)
+
+(autoload 'utf-7-pre-write-conversion "utf-7" "\
+Not documented
+
+\(fn FROM TO)" nil nil)
 
 ;;;***
 \f
 ;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal
 ;;;;;;  uudecode-decode-region-external) "uudecode" "gnus/uudecode.el"
-;;;;;;  (18212 46007))
+;;;;;;  (18231 31069))
 ;;; Generated autoloads from gnus/uudecode.el
 
 (autoload 'uudecode-decode-region-external "uudecode" "\
@@ -29267,7 +29276,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME.
 ;;;;;;  vc-directory vc-merge vc-insert-headers vc-revision-other-window
 ;;;;;;  vc-diff vc-version-diff vc-register vc-next-action vc-do-command
 ;;;;;;  edit-vc-file with-vc-file vc-before-checkin-hook vc-checkin-hook
-;;;;;;  vc-checkout-hook) "vc" "vc.el" (18214 4763))
+;;;;;;  vc-checkout-hook) "vc" "vc.el" (18231 31064))
 ;;; Generated autoloads from vc.el
 
 (defvar vc-checkout-hook nil "\
@@ -29557,7 +29566,7 @@ mode-specific menu.  `vc-annotate-color-map' and
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-arch" "vc-arch.el" (18201 33325))
+;;;### (autoloads nil "vc-arch" "vc-arch.el" (18231 31064))
 ;;; Generated autoloads from vc-arch.el
  (defun vc-arch-registered (file)
   (if (vc-find-root file "{arch}/=tagging-method")
@@ -29567,7 +29576,7 @@ mode-specific menu.  `vc-annotate-color-map' and
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-bzr" "vc-bzr.el" (18201 33325))
+;;;### (autoloads nil "vc-bzr" "vc-bzr.el" (18203 51788))
 ;;; Generated autoloads from vc-bzr.el
 
 (defconst vc-bzr-admin-dirname ".bzr" "\
@@ -29582,7 +29591,7 @@ Name of the directory containing Bzr repository status files.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (18201 33326))
+;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (18231 31064))
 ;;; Generated autoloads from vc-cvs.el
  (defun vc-cvs-registered (f)
   (when (file-readable-p (expand-file-name
@@ -29592,7 +29601,7 @@ Name of the directory containing Bzr repository status files.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-git" "vc-git.el" (18201 33364))
+;;;### (autoloads nil "vc-git" "vc-git.el" (18203 51788))
 ;;; Generated autoloads from vc-git.el
  (defun vc-git-registered (file)
   "Return non-nil if FILE is registered with git."
@@ -29603,7 +29612,7 @@ Name of the directory containing Bzr repository status files.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-hg" "vc-hg.el" (18203 37787))
+;;;### (autoloads nil "vc-hg" "vc-hg.el" (18203 51788))
 ;;; Generated autoloads from vc-hg.el
  (defun vc-hg-registered (file)
   "Return non-nil if FILE is registered with hg."
@@ -29614,7 +29623,7 @@ Name of the directory containing Bzr repository status files.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (18201 33326))
+;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (18231 31064))
 ;;; Generated autoloads from vc-mcvs.el
  (defun vc-mcvs-registered (file)
   (if (vc-find-root file "MCVS/CVS")
@@ -29624,7 +29633,7 @@ Name of the directory containing Bzr repository status files.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-mtn" "vc-mtn.el" (18202 3996))
+;;;### (autoloads nil "vc-mtn" "vc-mtn.el" (18213 1256))
 ;;; Generated autoloads from vc-mtn.el
 
 (defconst vc-mtn-admin-dir "_MTN")
@@ -29639,7 +29648,7 @@ Name of the directory containing Bzr repository status files.")
 ;;;***
 \f
 ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el"
-;;;;;;  (18190 46608))
+;;;;;;  (18194 36639))
 ;;; Generated autoloads from vc-rcs.el
 
 (defvar vc-rcs-master-templates '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s") "\
@@ -29652,7 +29661,7 @@ For a description of possible values, see `vc-check-master-templates'.")
 ;;;***
 \f
 ;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el"
-;;;;;;  (18190 46608))
+;;;;;;  (18194 36639))
 ;;; Generated autoloads from vc-sccs.el
 
 (defvar vc-sccs-master-templates '("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir) "\
@@ -29669,7 +29678,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir)
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-svn" "vc-svn.el" (18201 33326))
+;;;### (autoloads nil "vc-svn" "vc-svn.el" (18231 31064))
 ;;; Generated autoloads from vc-svn.el
  (defun vc-svn-registered (f)
   (let ((admin-dir (cond ((and (eq system-type 'windows-nt)
@@ -29687,7 +29696,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir)
 ;;;***
 \f
 ;;;### (autoloads (vera-mode) "vera-mode" "progmodes/vera-mode.el"
-;;;;;;  (18203 37789))
+;;;;;;  (18213 1259))
 ;;; Generated autoloads from progmodes/vera-mode.el
  (add-to-list 'auto-mode-alist '("\\.vr[hi]?\\'" . vera-mode))
 
@@ -29745,7 +29754,7 @@ Key bindings:
 ;;;***
 \f
 ;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el"
-;;;;;;  (18203 37789))
+;;;;;;  (18213 1260))
 ;;; Generated autoloads from progmodes/vhdl-mode.el
 
 (autoload 'vhdl-mode "vhdl-mode" "\
@@ -30286,7 +30295,7 @@ Key bindings:
 
 ;;;***
 \f
-;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (18201 33326))
+;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (18203 51788))
 ;;; Generated autoloads from emulation/vi.el
 
 (autoload 'vi-mode "vi" "\
@@ -30341,7 +30350,7 @@ Syntax table and abbrevs while in vi mode remain as they were in Emacs.
 ;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion
 ;;;;;;  viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer
 ;;;;;;  viet-decode-viqr-region viet-encode-viscii-char) "viet-util"
-;;;;;;  "language/viet-util.el" (18088 55109))
+;;;;;;  "language/viet-util.el" (18177 866))
 ;;; Generated autoloads from language/viet-util.el
 
 (autoload 'viet-encode-viscii-char "viet-util" "\
@@ -30385,12 +30394,19 @@ Not documented
 
 ;;;***
 \f
-;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame
-;;;;;;  view-buffer-other-window view-buffer view-file-other-frame
-;;;;;;  view-file-other-window view-file) "view" "view.el" (18169
-;;;;;;  11932))
+;;;### (autoloads (View-exit-and-edit view-mode-enter view-return-to-alist-update
+;;;;;;  view-mode view-buffer-other-frame view-buffer-other-window
+;;;;;;  view-buffer view-file-other-frame view-file-other-window
+;;;;;;  view-file view-remove-frame-by-deleting) "view" "view.el"
+;;;;;;  (18231 31064))
 ;;; Generated autoloads from view.el
 
+(defvar view-remove-frame-by-deleting t "\
+*Determine how View mode removes a frame no longer needed.
+If nil, make an icon of the frame.  If non-nil, delete the frame.")
+
+(custom-autoload 'view-remove-frame-by-deleting "view" t)
+
 (defvar view-mode nil "\
 Non-nil if View mode is enabled.
 Don't change this variable directly, you must change it by one of the
@@ -30400,11 +30416,11 @@ functions that enable or disable view mode.")
 
 (autoload 'view-file "view" "\
 View FILE in View mode, returning to previous buffer when done.
-Emacs commands editing the buffer contents are not available; instead,
-a special set of commands (mostly letters and punctuation)
-are defined for moving around in the buffer.
+Emacs commands editing the buffer contents are not available; instead, a
+special set of commands (mostly letters and punctuation) are defined for
+moving around in the buffer.
 Space scrolls forward, Delete scrolls backward.
-For list of all View commands, type H or h while viewing.
+For list of all View commands, type H or h while viewing.
 
 This command runs the normal hook `view-mode-hook'.
 
@@ -30412,12 +30428,12 @@ This command runs the normal hook `view-mode-hook'.
 
 (autoload 'view-file-other-window "view" "\
 View FILE in View mode in another window.
-Return that window to its previous buffer when done.
-Emacs commands editing the buffer contents are not available; instead,
-a special set of commands (mostly letters and punctuation)
-are defined for moving around in the buffer.
+Return that window to its previous buffer when done.  Emacs commands
+editing the buffer contents are not available; instead, a special set of
+commands (mostly letters and punctuation) are defined for moving around
+in the buffer.
 Space scrolls forward, Delete scrolls backward.
-For list of all View commands, type H or h while viewing.
+For list of all View commands, type H or h while viewing.
 
 This command runs the normal hook `view-mode-hook'.
 
@@ -30426,11 +30442,11 @@ This command runs the normal hook `view-mode-hook'.
 (autoload 'view-file-other-frame "view" "\
 View FILE in View mode in another frame.
 Maybe delete other frame and/or return to previous buffer when done.
-Emacs commands editing the buffer contents are not available; instead,
-a special set of commands (mostly letters and punctuation)
-are defined for moving around in the buffer.
+Emacs commands editing the buffer contents are not available; instead, a
+special set of commands (mostly letters and punctuation) are defined for
+moving around in the buffer.
 Space scrolls forward, Delete scrolls backward.
-For list of all View commands, type H or h while viewing.
+For list of all View commands, type H or h while viewing.
 
 This command runs the normal hook `view-mode-hook'.
 
@@ -30438,51 +30454,51 @@ This command runs the normal hook `view-mode-hook'.
 
 (autoload 'view-buffer "view" "\
 View BUFFER in View mode, returning to previous buffer when done.
-Emacs commands editing the buffer contents are not available; instead,
-a special set of commands (mostly letters and punctuation)
-are defined for moving around in the buffer.
+Emacs commands editing the buffer contents are not available; instead, a
+special set of commands (mostly letters and punctuation) are defined for
+moving around in the buffer.
 Space scrolls forward, Delete scrolls backward.
-For list of all View commands, type H or h while viewing.
+For list of all View commands, type H or h while viewing.
 
 This command runs the normal hook `view-mode-hook'.
 
 Optional argument EXIT-ACTION is either nil or a function with buffer as
-argument.  This function is called when finished viewing buffer.
-Use this argument instead of explicitly setting `view-exit-action'.
+argument.  This function is called when finished viewing buffer.  Use
+this argument instead of explicitly setting `view-exit-action'.
 
 \(fn BUFFER &optional EXIT-ACTION)" t nil)
 
 (autoload 'view-buffer-other-window "view" "\
 View BUFFER in View mode in another window.
-Return to previous buffer when done, unless optional NOT-RETURN is non-nil.
-Emacs commands editing the buffer contents are not available; instead,
-a special set of commands (mostly letters and punctuation)
-are defined for moving around in the buffer.
+Return to previous buffer when done, unless optional NOT-RETURN is
+non-nil.  Emacs commands editing the buffer contents are not available;
+instead, a special set of commands (mostly letters and punctuation) are
+defined for moving around in the buffer.
 Space scrolls forward, Delete scrolls backward.
-For list of all View commands, type H or h while viewing.
+For list of all View commands, type H or h while viewing.
 
 This command runs the normal hook `view-mode-hook'.
 
 Optional argument EXIT-ACTION is either nil or a function with buffer as
-argument.  This function is called when finished viewing buffer.
-Use this argument instead of explicitly setting `view-exit-action'.
+argument.  This function is called when finished viewing buffer.  Use
+this argument instead of explicitly setting `view-exit-action'.
 
 \(fn BUFFER &optional NOT-RETURN EXIT-ACTION)" t nil)
 
 (autoload 'view-buffer-other-frame "view" "\
 View BUFFER in View mode in another frame.
-Return to previous buffer when done, unless optional NOT-RETURN is non-nil.
-Emacs commands editing the buffer contents are not available; instead,
-a special set of commands (mostly letters and punctuation)
-are defined for moving around in the buffer.
+Return to previous buffer when done, unless optional NOT-RETURN is
+non-nil.  Emacs commands editing the buffer contents are not available;
+instead, a special set of commands (mostly letters and punctuation) are
+defined for moving around in the buffer.
 Space scrolls forward, Delete scrolls backward.
-For list of all View commands, type H or h while viewing.
+For list of all View commands, type H or h while viewing.
 
 This command runs the normal hook `view-mode-hook'.
 
 Optional argument EXIT-ACTION is either nil or a function with buffer as
-argument.  This function is called when finished viewing buffer.
-Use this argument instead of explicitly setting `view-exit-action'.
+argument.  This function is called when finished viewing buffer.  Use
+this argument instead of explicitly setting `view-exit-action'.
 
 \(fn BUFFER &optional NOT-RETURN EXIT-ACTION)" t nil)
 
@@ -30566,26 +30582,41 @@ Entry to view-mode runs the normal hook `view-mode-hook'.
 
 \(fn &optional ARG)" t nil)
 
+(autoload 'view-return-to-alist-update "view" "\
+Update `view-return-to-alist' of buffer BUFFER.
+Remove from `view-return-to-alist' all entries referencing dead
+windows.  Optional argument ITEM non-nil means add ITEM to
+`view-return-to-alist' after purging.  For a decsription of items
+that can be added see the RETURN-TO-ALIST argument of the
+function `view-mode-exit'.  If `view-return-to-alist' contains an
+entry for the selected window, purge that entry from
+`view-return-to-alist' before adding ITEM.
+
+\(fn BUFFER &optional ITEM)" nil nil)
+
 (autoload 'view-mode-enter "view" "\
 Enter View mode and set up exit from view mode depending on optional arguments.
-If RETURN-TO is non-nil it is added as an element to the buffer local alist
-`view-return-to-alist'.
-Save EXIT-ACTION in buffer local variable `view-exit-action'.
-It should be either nil or a function that takes a buffer as argument.
-This function will be called by `view-mode-exit'.
-
-RETURN-TO is either nil, meaning do nothing when exiting view mode, or
-it has the format (WINDOW OLD-WINDOW . OLD-BUF-INFO).
-WINDOW is a window used for viewing.
-OLD-WINDOW is nil or the window to select after viewing.
-OLD-BUF-INFO tells what to do with WINDOW when exiting.  It is one of:
-1) nil       Do nothing.
-2) t         Delete WINDOW or, if it is the only window, its frame.
+RETURN-TO non-nil means add RETURN-TO as an element to the buffer
+local alist `view-return-to-alist'.  Save EXIT-ACTION in buffer
+local variable `view-exit-action'.  It should be either nil or a
+function that takes a buffer as argument.  This function will be
+called by `view-mode-exit'.
+
+RETURN-TO is either nil, meaning do nothing when exiting view
+mode, or must have the format (WINDOW OLD-WINDOW . OLD-BUF-INFO).
+WINDOW is the window used for viewing.  OLD-WINDOW is nil or the
+window to select after viewing.  OLD-BUF-INFO tells what to do
+with WINDOW when exiting.  It is one of:
+1) nil            Do nothing.
+2) t              Delete WINDOW or, if it is the only window and
+                  `view-remove-frame-by-deleting' is non-nil, its
+                  frame.
 3) (OLD-BUFF START POINT)  Display buffer OLD-BUFF with displayed text
-                           starting at START and point at POINT in WINDOW.
-4) quit-window   Do `quit-window' in WINDOW.
+                  starting at START and point at POINT in WINDOW.
+4) quit-window    Do `quit-window' in WINDOW.
+5) keep-frame     Like case 2) but do not delete the frame.
 
-For list of all View commands, type H or h while viewing.
+For list of all View commands, type H or h while viewing.
 
 This function runs the normal hook `view-mode-hook'.
 
@@ -30598,8 +30629,8 @@ Exit View mode and make the current buffer editable.
 
 ;;;***
 \f
-;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (18088
-;;;;;;  55097))
+;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (18231
+;;;;;;  31065))
 ;;; Generated autoloads from emulation/vip.el
 
 (autoload 'vip-setup "vip" "\
@@ -30615,7 +30646,7 @@ Turn on VIP emulation of VI.
 ;;;***
 \f
 ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el"
-;;;;;;  (18213 13953))
+;;;;;;  (18231 31065))
 ;;; Generated autoloads from emulation/viper.el
 
 (autoload 'toggle-viper-mode "viper" "\
@@ -30632,7 +30663,7 @@ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'.
 ;;;***
 \f
 ;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el"
-;;;;;;  (18088 55096))
+;;;;;;  (18177 858))
 ;;; Generated autoloads from emacs-lisp/warnings.el
 
 (defvar warning-prefix-function nil "\
@@ -30722,7 +30753,7 @@ this is equivalent to `display-warning', using
 ;;;***
 \f
 ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el"
-;;;;;;  (18214 4479))
+;;;;;;  (18231 31064))
 ;;; Generated autoloads from wdired.el
 
 (autoload 'wdired-change-to-wdired-mode "wdired" "\
@@ -30738,7 +30769,7 @@ See `wdired-mode'.
 
 ;;;***
 \f
-;;;### (autoloads (webjump) "webjump" "net/webjump.el" (18088 55112))
+;;;### (autoloads (webjump) "webjump" "net/webjump.el" (18177 869))
 ;;; Generated autoloads from net/webjump.el
 
 (autoload 'webjump "webjump" "\
@@ -30755,7 +30786,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke
 ;;;***
 \f
 ;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el"
-;;;;;;  (18147 59474))
+;;;;;;  (18190 39684))
 ;;; Generated autoloads from progmodes/which-func.el
  (put 'which-func-format 'risky-local-variable t)
  (put 'which-func-current 'risky-local-variable t)
@@ -30788,7 +30819,7 @@ and off otherwise.
 ;;;;;;  whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check
 ;;;;;;  whitespace-toggle-indent-check whitespace-toggle-trailing-check
 ;;;;;;  whitespace-toggle-leading-check) "whitespace" "whitespace.el"
-;;;;;;  (18169 11932))
+;;;;;;  (18231 31064))
 ;;; Generated autoloads from whitespace.el
 
 (autoload 'whitespace-toggle-leading-check "whitespace" "\
@@ -30874,12 +30905,12 @@ When this mode is active, `whitespace-buffer' is added to
 Hook function to be called on the buffer when whitespace check is enabled.
 This is meant to be added buffer-locally to `write-file-functions'.
 
-\(fn)" t nil)
+\(fn)" nil nil)
 
 ;;;***
 \f
 ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse
-;;;;;;  widget-browse-at) "wid-browse" "wid-browse.el" (18149 22003))
+;;;;;;  widget-browse-at) "wid-browse" "wid-browse.el" (18190 39680))
 ;;; Generated autoloads from wid-browse.el
 
 (autoload 'widget-browse-at "wid-browse" "\
@@ -30906,8 +30937,8 @@ With arg, turn widget mode on if and only if arg is positive.
 ;;;***
 \f
 ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create
-;;;;;;  widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (18187
-;;;;;;  36840))
+;;;;;;  widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (18190
+;;;;;;  39680))
 ;;; Generated autoloads from wid-edit.el
 
 (autoload 'widgetp "wid-edit" "\
@@ -30951,8 +30982,8 @@ Setup current buffer so editing string widgets works.
 ;;;***
 \f
 ;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right
-;;;;;;  windmove-up windmove-left) "windmove" "windmove.el" (18088
-;;;;;;  55091))
+;;;;;;  windmove-up windmove-left) "windmove" "windmove.el" (18177
+;;;;;;  878))
 ;;; Generated autoloads from windmove.el
 
 (autoload 'windmove-left "windmove" "\
@@ -31005,7 +31036,7 @@ Default MODIFIER is 'shift.
 ;;;***
 \f
 ;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el"
-;;;;;;  (18120 34750))
+;;;;;;  (18177 878))
 ;;; Generated autoloads from winner.el
 
 (defvar winner-mode nil "\
@@ -31024,7 +31055,7 @@ With arg, turn Winner mode on if and only if arg is positive.
 ;;;***
 \f
 ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman"
-;;;;;;  "woman.el" (18197 21670))
+;;;;;;  "woman.el" (18195 4246))
 ;;; Generated autoloads from woman.el
 
 (autoload 'woman "woman" "\
@@ -31060,7 +31091,7 @@ decompress the file if appropriate.  See the documentation for the
 ;;;***
 \f
 ;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el"
-;;;;;;  (18088 55097))
+;;;;;;  (18177 858))
 ;;; Generated autoloads from emulation/ws-mode.el
 
 (autoload 'wordstar-mode "ws-mode" "\
@@ -31173,7 +31204,7 @@ The key bindings are:
 ;;;***
 \f
 ;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el"
-;;;;;;  (18088 55091))
+;;;;;;  (18177 878))
 ;;; Generated autoloads from xml.el
 
 (autoload 'xml-parse-file "xml" "\
@@ -31198,8 +31229,8 @@ If PARSE-NS is non-nil, then QNAMES are expanded.
 
 ;;;***
 \f
-;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (18200
-;;;;;;  51264))
+;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (18203
+;;;;;;  51788))
 ;;; Generated autoloads from xt-mouse.el
 
 (defvar xterm-mouse-mode nil "\
@@ -31228,7 +31259,7 @@ down the SHIFT key while pressing the mouse button.
 ;;;***
 \f
 ;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc"
-;;;;;;  "gnus/yenc.el" (18088 55107))
+;;;;;;  "gnus/yenc.el" (18177 863))
 ;;; Generated autoloads from gnus/yenc.el
 
 (autoload 'yenc-decode-region "yenc" "\
@@ -31244,7 +31275,7 @@ Extract file name from an yenc header.
 ;;;***
 \f
 ;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism
-;;;;;;  yow) "yow" "play/yow.el" (18203 37788))
+;;;;;;  yow) "yow" "play/yow.el" (18177 871))
 ;;; Generated autoloads from play/yow.el
 
 (autoload 'yow "yow" "\
@@ -31270,7 +31301,7 @@ Zippy goes to the analyst.
 
 ;;;***
 \f
-;;;### (autoloads (zone) "zone" "play/zone.el" (18202 4002))
+;;;### (autoloads (zone) "zone" "play/zone.el" (18213 1259))
 ;;; Generated autoloads from play/zone.el
 
 (autoload 'zone "zone" "\
@@ -31299,38 +31330,37 @@ Zone out, completely.
 ;;;;;;  "calendar/cal-islam.el" "calendar/cal-iso.el" "calendar/cal-julian.el"
 ;;;;;;  "calendar/cal-mayan.el" "calendar/cal-menu.el" "calendar/cal-move.el"
 ;;;;;;  "calendar/cal-persia.el" "calendar/cal-tex.el" "calendar/cal-x.el"
-;;;;;;  "case-table.el" "cdl.el" "cus-dep.el" "cus-load.el" "cus-start.el"
-;;;;;;  "custom.el" "dframe.el" "dos-fns.el" "dos-vars.el" "dos-w32.el"
-;;;;;;  "ediff-diff.el" "ediff-init.el" "ediff-merg.el" "ediff-ptch.el"
-;;;;;;  "ediff-vers.el" "ediff-wind.el" "electric.el" "emacs-lisp/assoc.el"
-;;;;;;  "emacs-lisp/authors.el" "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el"
-;;;;;;  "emacs-lisp/byte-opt.el" "emacs-lisp/byte-run.el" "emacs-lisp/cl-compat.el"
-;;;;;;  "emacs-lisp/cl-extra.el" "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el"
-;;;;;;  "emacs-lisp/cl-seq.el" "emacs-lisp/cl-specs.el" "emacs-lisp/cust-print.el"
-;;;;;;  "emacs-lisp/find-gc.el" "emacs-lisp/float-sup.el" "emacs-lisp/gulp.el"
-;;;;;;  "emacs-lisp/levents.el" "emacs-lisp/lisp-mnt.el" "emacs-lisp/lisp-mode.el"
-;;;;;;  "emacs-lisp/lisp.el" "emacs-lisp/lmenu.el" "emacs-lisp/lselect.el"
-;;;;;;  "emacs-lisp/lucid.el" "emacs-lisp/map-ynp.el" "emacs-lisp/regi.el"
-;;;;;;  "emacs-lisp/sregex.el" "emacs-lisp/syntax.el" "emacs-lisp/tcover-ses.el"
-;;;;;;  "emacs-lisp/tcover-unsafep.el" "emacs-lock.el" "emulation/cua-gmrk.el"
-;;;;;;  "emulation/cua-rect.el" "emulation/edt-lk201.el" "emulation/edt-mapper.el"
-;;;;;;  "emulation/edt-pc.el" "emulation/edt-vt100.el" "emulation/tpu-extras.el"
-;;;;;;  "emulation/tpu-mapper.el" "emulation/viper-cmd.el" "emulation/viper-ex.el"
-;;;;;;  "emulation/viper-init.el" "emulation/viper-keym.el" "emulation/viper-macs.el"
-;;;;;;  "emulation/viper-mous.el" "emulation/viper-util.el" "env.el"
-;;;;;;  "erc/erc-backend.el" "erc/erc-goodies.el" "erc/erc-ibuffer.el"
-;;;;;;  "erc/erc-lang.el" "eshell/em-alias.el" "eshell/em-banner.el"
-;;;;;;  "eshell/em-basic.el" "eshell/em-cmpl.el" "eshell/em-dirs.el"
-;;;;;;  "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el"
-;;;;;;  "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el"
-;;;;;;  "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el"
-;;;;;;  "eshell/em-unix.el" "eshell/em-xtra.el" "eshell/esh-arg.el"
-;;;;;;  "eshell/esh-cmd.el" "eshell/esh-ext.el" "eshell/esh-groups.el"
+;;;;;;  "case-table.el" "cdl.el" "cus-dep.el" "cus-start.el" "custom.el"
+;;;;;;  "dframe.el" "dos-fns.el" "dos-vars.el" "dos-w32.el" "ediff-diff.el"
+;;;;;;  "ediff-init.el" "ediff-merg.el" "ediff-ptch.el" "ediff-vers.el"
+;;;;;;  "ediff-wind.el" "electric.el" "emacs-lisp/assoc.el" "emacs-lisp/authors.el"
+;;;;;;  "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el"
+;;;;;;  "emacs-lisp/byte-run.el" "emacs-lisp/cl-compat.el" "emacs-lisp/cl-extra.el"
+;;;;;;  "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el"
+;;;;;;  "emacs-lisp/cl-specs.el" "emacs-lisp/cust-print.el" "emacs-lisp/find-gc.el"
+;;;;;;  "emacs-lisp/float-sup.el" "emacs-lisp/gulp.el" "emacs-lisp/levents.el"
+;;;;;;  "emacs-lisp/lisp-mnt.el" "emacs-lisp/lisp-mode.el" "emacs-lisp/lisp.el"
+;;;;;;  "emacs-lisp/lmenu.el" "emacs-lisp/lucid.el" "emacs-lisp/map-ynp.el"
+;;;;;;  "emacs-lisp/regi.el" "emacs-lisp/sregex.el" "emacs-lisp/syntax.el"
+;;;;;;  "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el"
+;;;;;;  "emacs-lock.el" "emulation/cua-gmrk.el" "emulation/cua-rect.el"
+;;;;;;  "emulation/edt-lk201.el" "emulation/edt-mapper.el" "emulation/edt-pc.el"
+;;;;;;  "emulation/edt-vt100.el" "emulation/tpu-extras.el" "emulation/tpu-mapper.el"
+;;;;;;  "emulation/viper-cmd.el" "emulation/viper-ex.el" "emulation/viper-init.el"
+;;;;;;  "emulation/viper-keym.el" "emulation/viper-macs.el" "emulation/viper-mous.el"
+;;;;;;  "emulation/viper-util.el" "env.el" "erc/erc-backend.el" "erc/erc-goodies.el"
+;;;;;;  "erc/erc-ibuffer.el" "erc/erc-lang.el" "eshell/em-alias.el"
+;;;;;;  "eshell/em-banner.el" "eshell/em-basic.el" "eshell/em-cmpl.el"
+;;;;;;  "eshell/em-dirs.el" "eshell/em-glob.el" "eshell/em-hist.el"
+;;;;;;  "eshell/em-ls.el" "eshell/em-pred.el" "eshell/em-prompt.el"
+;;;;;;  "eshell/em-rebind.el" "eshell/em-script.el" "eshell/em-smart.el"
+;;;;;;  "eshell/em-term.el" "eshell/em-unix.el" "eshell/em-xtra.el"
+;;;;;;  "eshell/esh-arg.el" "eshell/esh-cmd.el" "eshell/esh-ext.el"
 ;;;;;;  "eshell/esh-io.el" "eshell/esh-maint.el" "eshell/esh-module.el"
 ;;;;;;  "eshell/esh-opt.el" "eshell/esh-proc.el" "eshell/esh-util.el"
-;;;;;;  "eshell/esh-var.el" "ezimage.el" "faces.el" "files.el" "finder-inf.el"
-;;;;;;  "foldout.el" "font-core.el" "font-lock.el" "format.el" "forms-d2.el"
-;;;;;;  "forms-pass.el" "frame.el" "fringe.el" "generic-x.el" "gnus/compface.el"
+;;;;;;  "eshell/esh-var.el" "ezimage.el" "faces.el" "files.el" "foldout.el"
+;;;;;;  "font-core.el" "font-lock.el" "format.el" "forms-d2.el" "forms-pass.el"
+;;;;;;  "frame.el" "fringe.el" "generic-x.el" "gnus/compface.el"
 ;;;;;;  "gnus/dig.el" "gnus/dns.el" "gnus/format-spec.el" "gnus/gnus-async.el"
 ;;;;;;  "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" "gnus/gnus-cus.el"
 ;;;;;;  "gnus/gnus-demon.el" "gnus/gnus-dup.el" "gnus/gnus-eform.el"
@@ -31357,31 +31387,33 @@ Zone out, completely.
 ;;;;;;  "gnus/sieve-manage.el" "gnus/smime-ldap.el" "gnus/smime.el"
 ;;;;;;  "gnus/spam-stat.el" "gnus/spam-wash.el" "gnus/starttls.el"
 ;;;;;;  "gnus/utf7.el" "gnus/webmail.el" "help.el" "indent.el" "international/characters.el"
+;;;;;;  "international/charprop.el" "international/cp51932.el" "international/eucjp-ms.el"
 ;;;;;;  "international/fontset.el" "international/iso-ascii.el" "international/ja-dic-cnv.el"
-;;;;;;  "international/ja-dic-utl.el" "international/latin-1.el"
-;;;;;;  "international/latin-2.el" "international/latin-3.el" "international/latin-4.el"
-;;;;;;  "international/latin-5.el" "international/latin-8.el" "international/latin-9.el"
-;;;;;;  "international/mule-cmds.el" "international/mule-conf.el"
-;;;;;;  "international/mule.el" "international/ogonek.el" "international/subst-big5.el"
-;;;;;;  "international/subst-gb2312.el" "international/subst-jis.el"
-;;;;;;  "international/subst-ksc.el" "international/ucs-tables.el"
-;;;;;;  "international/utf-16.el" "international/utf-8.el" "isearch.el"
-;;;;;;  "jit-lock.el" "jka-cmpr-hook.el" "kermit.el" "language/chinese.el"
-;;;;;;  "language/cyrillic.el" "language/czech.el" "language/devanagari.el"
-;;;;;;  "language/english.el" "language/ethiopic.el" "language/european.el"
-;;;;;;  "language/georgian.el" "language/greek.el" "language/hebrew.el"
-;;;;;;  "language/indian.el" "language/japanese.el" "language/kannada.el"
-;;;;;;  "language/korean.el" "language/lao.el" "language/malayalam.el"
-;;;;;;  "language/misc-lang.el" "language/romanian.el" "language/slovak.el"
-;;;;;;  "language/tamil.el" "language/thai-word.el" "language/thai.el"
-;;;;;;  "language/tibetan.el" "language/utf-8-lang.el" "language/vietnamese.el"
-;;;;;;  "ldefs-boot.el" "loadup.el" "mail/blessmail.el" "mail/mailheader.el"
-;;;;;;  "mail/mailpost.el" "mail/mspools.el" "mail/rfc2368.el" "mail/rfc822.el"
-;;;;;;  "mail/rmail-spam-filter.el" "mail/uce.el" "mail/vms-pmail.el"
-;;;;;;  "mh-e/mh-acros.el" "mh-e/mh-alias.el" "mh-e/mh-buffers.el"
-;;;;;;  "mh-e/mh-compat.el" "mh-e/mh-funcs.el" "mh-e/mh-gnus.el"
-;;;;;;  "mh-e/mh-identity.el" "mh-e/mh-inc.el" "mh-e/mh-junk.el"
-;;;;;;  "mh-e/mh-letter.el" "mh-e/mh-limit.el" "mh-e/mh-loaddefs.el"
+;;;;;;  "international/ja-dic-utl.el" "international/mule-cmds.el"
+;;;;;;  "international/mule-conf.el" "international/mule.el" "international/ogonek.el"
+;;;;;;  "international/uni-bidi.el" "international/uni-category.el"
+;;;;;;  "international/uni-combining.el" "international/uni-comment.el"
+;;;;;;  "international/uni-decimal.el" "international/uni-decomposition.el"
+;;;;;;  "international/uni-digit.el" "international/uni-lowercase.el"
+;;;;;;  "international/uni-mirrored.el" "international/uni-name.el"
+;;;;;;  "international/uni-numeric.el" "international/uni-old-name.el"
+;;;;;;  "international/uni-titlecase.el" "international/uni-uppercase.el"
+;;;;;;  "isearch.el" "jit-lock.el" "jka-cmpr-hook.el" "kermit.el"
+;;;;;;  "language/chinese.el" "language/cyrillic.el" "language/czech.el"
+;;;;;;  "language/devanagari.el" "language/english.el" "language/ethiopic.el"
+;;;;;;  "language/european.el" "language/georgian.el" "language/greek.el"
+;;;;;;  "language/hebrew.el" "language/indian.el" "language/japanese.el"
+;;;;;;  "language/kannada.el" "language/korean.el" "language/lao.el"
+;;;;;;  "language/malayalam.el" "language/misc-lang.el" "language/romanian.el"
+;;;;;;  "language/slovak.el" "language/tai-viet.el" "language/tamil.el"
+;;;;;;  "language/thai-word.el" "language/thai.el" "language/tibetan.el"
+;;;;;;  "language/utf-8-lang.el" "language/vietnamese.el" "ldefs-boot.el"
+;;;;;;  "loadup.el" "mail/blessmail.el" "mail/mailheader.el" "mail/mailpost.el"
+;;;;;;  "mail/mspools.el" "mail/rfc2368.el" "mail/rfc822.el" "mail/rmail-spam-filter.el"
+;;;;;;  "mail/uce.el" "mail/vms-pmail.el" "mh-e/mh-acros.el" "mh-e/mh-alias.el"
+;;;;;;  "mh-e/mh-buffers.el" "mh-e/mh-compat.el" "mh-e/mh-funcs.el"
+;;;;;;  "mh-e/mh-gnus.el" "mh-e/mh-identity.el" "mh-e/mh-inc.el"
+;;;;;;  "mh-e/mh-junk.el" "mh-e/mh-letter.el" "mh-e/mh-limit.el"
 ;;;;;;  "mh-e/mh-mime.el" "mh-e/mh-print.el" "mh-e/mh-scan.el" "mh-e/mh-search.el"
 ;;;;;;  "mh-e/mh-seq.el" "mh-e/mh-show.el" "mh-e/mh-speed.el" "mh-e/mh-thread.el"
 ;;;;;;  "mh-e/mh-tool-bar.el" "mh-e/mh-utils.el" "mh-e/mh-xface.el"
@@ -31401,21 +31433,21 @@ Zone out, completely.
 ;;;;;;  "progmodes/ebnf-iso.el" "progmodes/ebnf-otz.el" "progmodes/ebnf-yac.el"
 ;;;;;;  "progmodes/idlw-complete-structtag.el" "progmodes/idlw-help.el"
 ;;;;;;  "progmodes/idlw-toolbar.el" "progmodes/mantemp.el" "progmodes/xscheme.el"
-;;;;;;  "ps-mule.el" "register.el" "replace.el" "rfn-eshadow.el"
-;;;;;;  "s-region.el" "saveplace.el" "sb-image.el" "scroll-bar.el"
-;;;;;;  "select.el" "soundex.el" "startup.el" "subdirs.el" "tempo.el"
-;;;;;;  "textmodes/bib-mode.el" "textmodes/makeinfo.el" "textmodes/page-ext.el"
-;;;;;;  "textmodes/page.el" "textmodes/refbib.el" "textmodes/refer.el"
-;;;;;;  "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el" "textmodes/reftex-ref.el"
-;;;;;;  "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" "textmodes/texnfo-upd.el"
-;;;;;;  "textmodes/text-mode.el" "timezone.el" "tooltip.el" "tree-widget.el"
-;;;;;;  "uniquify.el" "url/url-about.el" "url/url-cookie.el" "url/url-dired.el"
-;;;;;;  "url/url-expand.el" "url/url-ftp.el" "url/url-history.el"
-;;;;;;  "url/url-imap.el" "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el"
-;;;;;;  "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el"
-;;;;;;  "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el"
-;;;;;;  "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el"
-;;;;;;  "x-dnd.el") (18214 7224 993409))
+;;;;;;  "ps-def.el" "ps-mule.el" "ps-samp.el" "register.el" "replace.el"
+;;;;;;  "rfn-eshadow.el" "s-region.el" "saveplace.el" "sb-image.el"
+;;;;;;  "scroll-bar.el" "select.el" "soundex.el" "startup.el" "subdirs.el"
+;;;;;;  "tempo.el" "textmodes/bib-mode.el" "textmodes/makeinfo.el"
+;;;;;;  "textmodes/page-ext.el" "textmodes/page.el" "textmodes/refbib.el"
+;;;;;;  "textmodes/refer.el" "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el"
+;;;;;;  "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" "textmodes/reftex-toc.el"
+;;;;;;  "textmodes/texnfo-upd.el" "textmodes/text-mode.el" "timezone.el"
+;;;;;;  "tooltip.el" "tree-widget.el" "uniquify.el" "url/url-about.el"
+;;;;;;  "url/url-cookie.el" "url/url-dired.el" "url/url-expand.el"
+;;;;;;  "url/url-ftp.el" "url/url-history.el" "url/url-imap.el" "url/url-methods.el"
+;;;;;;  "url/url-nfs.el" "url/url-proxy.el" "url/url-vars.el" "url/vc-dav.el"
+;;;;;;  "vc-hooks.el" "vcursor.el" "version.el" "vms-patch.el" "vmsproc.el"
+;;;;;;  "vt-control.el" "vt100-led.el" "w32-fns.el" "w32-vars.el"
+;;;;;;  "widget.el" "window.el" "x-dnd.el") (18232 8668 344872))
 
 ;;;***
 \f
index 43e7beff8d64447c177f9d7826128ae35ceee82d..12aaae60aabd477bf256b529fc90bef3c947c5d6 100644 (file)
@@ -33,6 +33,8 @@
 ;; get autoloaded when bootstrapping
 (if (or (equal (nth 3 command-line-args) "bootstrap")
        (equal (nth 4 command-line-args) "bootstrap")
+       (equal (nth 3 command-line-args) "unidata-gen.el")
+       (equal (nth 4 command-line-args) "unidata-gen-files")
        ;; in case CANNOT_DUMP
        (equal (nth 0 command-line-args) "../src/bootstrap-emacs"))
     (let ((dir (car load-path)))
 ;; multilingual text.
 (load "international/mule-cmds")
 (load "case-table")
-(load "international/utf-8")
-(load "international/utf-16")
 (load "international/characters")
+(load "composite")
+;; This file doesn't exist when building Emacs from CVS.  It is
+;; generated just after temacs is build.
+(load "international/charprop.el" t)
 
-(let ((set-case-syntax-set-multibyte t))
-  (load "international/latin-1")
-  (load "international/latin-2")
-  (load "international/latin-3")
-  (load "international/latin-4")
-  (load "international/latin-5")
-  (load "international/latin-8")
-  (load "international/latin-9"))
 ;; Load language-specific files.
 (load "language/chinese")
 (load "language/cyrillic")
 (load "language/japanese")
 (load "language/korean")
 (load "language/lao")
+(load "language/tai-viet")
 (load "language/thai")
 (load "language/tibetan")
 (load "language/vietnamese")
 (load "language/utf-8-lang")
 (load "language/georgian")
 
-(load "international/ucs-tables")
-
-(update-coding-systems-internal)
-
 (load "indent")
 (load "window")
 (load "frame")
       (load "vms-patch")))
 (if (eq system-type 'windows-nt)
     (progn
-      (load "international/ccl")
-      (load "international/code-pages")
       (load "w32-vars")
       (load "term/w32-win")
       (load "ls-lisp")
        (equal (nth 4 command-line-args) "bootstrap"))
     (setcdr load-path nil))
 
+(clear-charset-maps)
 (garbage-collect)
 
 ;;; At this point, we're ready to resume undo recording for scratch.
index eb96ef07612ebd42724f498f37d220d0f8df338f..14a0a8d4ef1a1e4fa7d8634fcbd4fbd33e86ae71 100644 (file)
@@ -162,7 +162,7 @@ usually do not have translators to read other languages for them.\n\n")
      '(lambda (var)
        (insert (format "  value of $%s: %s\n" var (getenv var))))
      '("LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES"
-       "LC_MONETARY" "LC_NUMERIC" "LC_TIME" "LANG"))
+       "LC_MONETARY" "LC_NUMERIC" "LC_TIME" "LANG" "XMODIFIERS"))
     (insert (format "  locale-coding-system: %s\n" locale-coding-system))
     (insert (format "  default-enable-multibyte-characters: %s\n"
                    default-enable-multibyte-characters))
index 7beb8c0516c788f1ccbe38e5f6f8fe7e69782a8b..5d276f9c76af2a4ed2c78caa4df86ed735109599 100644 (file)
@@ -945,17 +945,17 @@ Note:    it means the file has no messages in it.\n\^_")))
     (unless (and coding-system
                 (coding-system-p coding-system))
       (setq coding-system
-           ;; Emacs 21.1 and later writes RMAIL files in emacs-mule, but
-           ;; earlier versions did that with the current buffer's encoding.
-           ;; So we want to favor detection of emacs-mule (whose normal
-           ;; priority is quite low), but still allow detection of other
-           ;; encodings if emacs-mule won't fit.  The call to
-           ;; detect-coding-with-priority below achieves that.
-           (car (detect-coding-with-priority
-                 from to
-                 '((coding-category-emacs-mule . emacs-mule))))))
-    (unless (memq coding-system
-                 '(undecided undecided-unix))
+           ;; If rmail-file-coding-system is nil, Emacs 21 writes
+           ;; RMAIL files in emacs-mule, Emacs 22 in utf-8, but
+           ;; earlier versions did that with the current buffer's
+           ;; encoding.  So we want to favor detection of emacs-mule
+           ;; (whose normal priority is quite low) and utf-8, but
+           ;; still allow detection of other encodings if they won't
+           ;; fit.  The call to with-coding-priority below achieves
+           ;; that.
+           (with-coding-priority '(emacs-mule utf-8)
+             (detect-coding-region from to 'highest))))
+    (unless (eq (coding-system-type coding-system) 'undecided)
       (set-buffer-modified-p t)                ; avoid locking when decoding
       (let ((buffer-undo-list t))
        (decode-coding-region from to coding-system))
index da1c5c48989d112d0efbabf55562354b3e0aa523..7d66b5e7ac6bf93a8612195469431fe8aeae6d1c 100644 (file)
@@ -1109,7 +1109,7 @@ external program defined by `sendmail-program'."
                          (/= (point) (point-max)))
                   selected-coding
                   (setq charset
-                        (coding-system-get selected-coding 'mime-charset))
+                        (coding-system-get selected-coding :mime-charset))
                   (goto-char delimline)
                   (insert "MIME-version: 1.0\n"
                           "Content-type: text/plain; charset="
@@ -1794,7 +1794,7 @@ The seventh argument ACTIONS is a list of actions to take
       (define-key (current-local-map) "v"
        (lambda ()
          (interactive)
-         (let ((coding-system-for-read 'emacs-mule-unix))
+         (let ((coding-system-for-read 'utf-8-emacs-unix))
            (dired-view-file))))
       (define-key (current-local-map) "\C-c\C-c"
        (lambda ()
@@ -1802,13 +1802,13 @@ The seventh argument ACTIONS is a list of actions to take
          (let ((fname (dired-get-filename))
                ;; Auto-saved files are written in the internal
                ;; representation, so they should be read accordingly.
-               (coding-system-for-read 'emacs-mule-unix))
+               (coding-system-for-read 'utf-8-emacs-unix))
            (switch-to-buffer-other-window "*mail*")
            (let ((buffer-read-only nil))
              (erase-buffer)
              (insert-file-contents fname nil)
              ;; insert-file-contents will set buffer-file-coding-system
-             ;; to emacs-mule, which is probably not what they want to
+             ;; to utf-8-emacs, which is probably not what they want to
              ;; use for sending the message.  But we don't know what
              ;; was its value before the buffer was killed or Emacs
              ;; crashed.  We therefore reset buffer-file-coding-system
@@ -1863,7 +1863,7 @@ you can move to one of them and type C-c C-c to recover that one."
                     (buffer-coding buffer-file-coding-system)
                     ;; Auto-save files are written in internal
                     ;; representation of non-ASCII characters.
-                    (coding-system-for-read 'emacs-mule-unix))
+                    (coding-system-for-read 'utf-8-emacs-unix))
                 (erase-buffer)
                 (insert-file-contents file-name nil)
                 (setq buffer-file-coding-system buffer-coding)))))
index 4b4d732e811727e56aba21f99fcc9cc9ef342135..ae9a517014060d5cd20795eaae79948ea97a7494 100644 (file)
@@ -49,6 +49,9 @@ BYTE_COMPILE_EXTRA_FLAGS =
 # Set EMACSLOADPATH correctly (already defined in environment).
 EMACSLOADPATH=$(lisp)
 
+# Use C locale
+LC_ALL = C
+
 lisptagsfiles1 = $(lisp)/*.el
 lisptagsfiles2 = $(lisp)/*/*.el
 ETAGS = "../lib-src/$(BLD)/etags"
index 41b349aec5a22793b67eef754cbb5f2f6694e033..0efcc09b8b630e16175c8720b014480f65c57cfc 100644 (file)
 
 ;;; Commentary:
 
+;; Fixme: Is this actually used?  if so, it should be in language,
+;; possibly as a feature property of Swedish, probably defining a
+;; `swascii' coding system.
+
 ;;; Code:
 
 ;; Written by Howard Gayle.  See case-table.el for details.
 
 ;; See iso-swed.el for a description of the character set.
 
-(require 'latin-1)
-
 (defvar mail-send-hook)
 (defvar news-group-hook-alist)
 (defvar news-inews-hook)
index d604715d4d7528986d4660cfe66cb25bc9398c81..5f2a76e13289484390ad7e6bd58c65727bcfa06c 100644 (file)
@@ -320,7 +320,14 @@ static unsigned char gamegrid_bits[] = {
                          (< max-height height))
                      (setq max-height height))))))
       (when (and max-height (< max-height 1))
-       (face-spec-set gamegrid-face `((t :height ,max-height)))))))
+       (let ((default-font-height (face-attribute 'default :height))
+             (resy (/ (display-pixel-height) (/ (display-mm-height) 25.4)))
+             point-size pixel-size)
+         (setq point-size (/ (* (float default-font-height) max-height) 10)
+               pixel-size (floor (* resy (/ point-size 72.27)))
+               point-size (* (/ pixel-size resy) 72.27))
+         (face-spec-set gamegrid-face
+                        `((t :height ,(floor (* point-size 10))))))))))
 
 (defun gamegrid-initialize-display ()
   (setq gamegrid-display-mode (gamegrid-display-type))
diff --git a/lisp/progmodes/cap-words.el b/lisp/progmodes/cap-words.el
new file mode 100644 (file)
index 0000000..6854c5e
--- /dev/null
@@ -0,0 +1,94 @@
+;;; cap-words.el --- minor mode for motion in CapitalizedWordIdentifiers
+
+;; Copyright (C) 2002  Free Software Foundation, Inc.
+
+;; Author: Dave Love <fx@gnu.org>
+;; Keywords: languages
+
+;; This file 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 2, or (at your option)
+;; any later version.
+
+;; This file 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 General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to
+;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; Provides Capitalized Words minor mode for word movement in
+;; identifiers CapitalizedLikeThis.
+
+;; Note that the same effect could be obtained by frobbing the
+;; category of upper case characters to produce word boundaries, but
+;; the necessary processing isn't done for ASCII characters.
+
+;; Fixme: This doesn't work properly for mouse double clicks.
+
+;;; Code:
+
+(defun capitalized-next-word-boundary (pos limit)
+  "Function for use in `next-word-boundary-function-table'.
+Looks for word boundaries before capitals."
+  (save-excursion
+    (goto-char pos)
+    (let (case-fold-search)
+      (if (<= pos limit)
+         ;; Fixme: Are these regexps the best?
+         (or (and (re-search-forward "\\=.\\w*[[:upper:]]"
+                                     limit t)
+                  (progn (backward-char)
+                         t))
+             (re-search-forward "\\>" limit t))
+       (or (re-search-backward "[[:upper:]]\\w*\\=" limit t)
+           (re-search-backward "\\<" limit t))))
+    (point)))
+
+(defconst capitalized-next-word-boundary-function-table
+  (let ((tab (make-char-table nil)))
+    (set-char-table-range tab t #'capitalized-next-word-boundary)
+    tab)
+  "Assigned to `next-word-boundary-function-table' in Capitalized Words mode.")
+
+;;;###autoload
+(define-minor-mode capitalized-words-mode
+  "Toggle Capitalized- Words mode.
+
+In this minor mode, a word boundary occurs immediately before an
+uppercase letter in a symbol.  This is in addition to all the normal
+boundaries given by the syntax and category tables.  There is no
+restriction to ASCII.
+
+E.g. the beginning of words in the following identifier are as marked:
+
+  capitalizedWorDD
+  ^          ^  ^^
+
+Note that these word boundaries only apply for word motion and
+marking commands such as \\[forward-word].  This mode does not affect word
+boundaries in found by regexp matching (`\\>', `\\w' &c).
+
+This style of identifiers is common in environments like Java ones,
+where underscores aren't trendy enough.  Capitalization rules are
+sometimes part of the language, e.g. Haskell, which may thus encourage
+such a style.  It is appropriate to add `capitalized-words-mode' to
+the mode hook for programming langauge modes in which you encounter
+variables like this, e.g. `java-mode-hook'.  It's unlikely to cause
+trouble if such identifiers aren't used.
+
+See also `glasses-mode' and `studlify-word'.
+Obsoletes `c-forward-into-nomenclature'."
+  nil " Caps" nil :group 'programming
+  (set (make-local-variable 'next-word-boundary-function-table)
+       capitalized-next-word-boundary-function-table))
+
+(provide 'cap-words)
+
+;;; arch-tag: 46513b64-fe5a-4c0b-902c-ed235c22975f
+;;; cap-words.el ends here
index 0ccb643bc75075fa102b6352fc8707f1259f7e2b..6c91fb1811b9e03091c0d2c65300eacd5304ede5 100644 (file)
@@ -322,7 +322,7 @@ The expansion is entirely correct because it uses the C preprocessor."
     (while (< (point) limit)
       (cond
        ((or (null (setq char (nth 3 state)))
-            (and (char-valid-p char) (eq (char-syntax (nth 3 state)) ?\")))
+            (and (characterp char) (eq (char-syntax (nth 3 state)) ?\")))
         ;; Normal text, or comment, or docstring, or normal string.
         nil)
        ((eq (nth 3 state) ?\n)
index ed3fce12d60c8eb9dd21e300acb40d6c29b2fd28..4fba083f2620051f22f1b89c3a14cbea1626c5a5 100644 (file)
@@ -1116,7 +1116,7 @@ subshells can nest."
 (defun sh-font-lock-syntactic-face-function (state)
   (let ((q (nth 3 state)))
     (if q
-        (if (char-valid-p q)
+        (if (characterp q)
             (if (eq q ?\`) 'sh-quoted-exec font-lock-string-face)
           sh-heredoc-face)
       font-lock-comment-face)))
index 097bd18bb1a47e95a106260fb6469cec1766f3c8..19a776d770667962ff13946a14ec31f9e6cbb2db 100644 (file)
@@ -6,6 +6,10 @@
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 
+;; Copyright (C) 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H13PRO009
+
 ;; Keywords: wp, BDF, font, PostScript
 ;; Maintainer: Kenichi Handa <handa@m17n.org>
 
 ;;; Code:
 
 (eval-and-compile
-  (require 'ps-mule)
-
-  ;; to avoid XEmacs compilation gripes
-  (defvar installation-directory nil)
-  (defvar coding-system-for-read nil))
+  (require 'ps-mule))
 
 ;;;###autoload
 (defvar bdf-directory-list
@@ -61,15 +61,11 @@ for BDFNAME."
   (if (file-name-absolute-p bdfname)
       (and (file-readable-p bdfname)
           bdfname)
-    (let ((dir-list bdf-directory-list)
-         dir)
-      (while (and dir-list
-                 (progn
-                   (setq dir (expand-file-name bdfname (car dir-list)))
-                   (not (file-readable-p dir))))
-       (setq dir nil
-             dir-list (cdr dir-list)))
-      dir)))
+    (catch 'tag
+      (dolist (dir bdf-directory-list)
+       (let ((absolute-path (expand-file-name bdfname dir)))
+         (if (file-readable-p absolute-path)
+           (throw 'tag absolute-path)))))))
 
 (defsubst bdf-file-mod-time (filename)
   "Return modification time of FILENAME.
@@ -81,28 +77,24 @@ The value is a list of two integers, the first integer has high-order
   "Return non-nil if and only if FILENAME is newer than MOD-TIME.
 MOD-TIME is a modification time as a list of two integers, the first
 integer has high-order 16 bits, the second has low 16 bits."
-  (let ((file-name (bdf-expand-file-name filename)))
-    (and file-name
-        (let* ((new-mod-time (bdf-file-mod-time file-name))
-               (new-time (car new-mod-time))
-               (time (car mod-time)))
-          (or (> new-time time)
-              (and (= new-time time)
-                   (> (nth 1 new-mod-time) (nth 1 mod-time))))))))
+  (let* ((new-mod-time (bdf-file-mod-time filename))
+        (new-time (car new-mod-time))
+        (time (car mod-time)))
+    (or (> new-time time)
+       (and (= new-time time)
+            (> (nth 1 new-mod-time) (nth 1 mod-time))))))
 
 (defun bdf-find-file (bdfname)
   "Return a buffer visiting a bdf file BDFNAME.
-If BDFNAME is not an absolute path, directories listed in
-`bdf-directory-list' is searched.
+BDFNAME must be an absolute file name.
 If BDFNAME doesn't exist, return nil."
-  (let ((file-name (bdf-expand-file-name bdfname)))
-    (and file-name
-        (let ((buf (generate-new-buffer " *bdf-work*"))
-              (coding-system-for-read 'no-conversion))
-          (save-excursion
-            (set-buffer buf)
-            (insert-file-contents file-name)
-            buf)))))
+  (and (file-readable-p bdfname)
+       (let ((buf (generate-new-buffer " *bdf-work*"))
+            (coding-system-for-read 'no-conversion))
+        (save-excursion
+          (set-buffer buf)
+          (insert-file-contents bdfname)
+          buf))))
 
 (defvar bdf-cache-file (if (eq system-type 'ms-dos)
                           ;; convert-standard-filename doesn't
@@ -115,7 +107,7 @@ If BDFNAME doesn't exist, return nil."
 (defvar bdf-cache nil
   "Cached information of `BDF' font files.  It is a list of FONT-INFO.
 FONT-INFO is a list of the following format:
-    (BDFFILE ABSOLUTE-PATH MOD-TIME SIZE FONT-BOUNDING-BOX
+    (ABSOLUTE-FILE-NAME MOD-TIME SIZE FONT-BOUNDING-BOX
      RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR)
 See the documentation of the function `bdf-read-font-info' for more detail.")
 
@@ -146,7 +138,7 @@ The file is written if and only if the file already exists and writable."
 (defun bdf-set-cache (font-info)
   "Cache FONT-INFO as information about one `BDF' font file.
 FONT-INFO is a list of the following format:
-    (BDFFILE ABSOLUTE-PATH MOD-TIME SIZE FONT-BOUNDING-BOX
+    (ABSOLUTE-FILE-NAME MOD-TIME SIZE FONT-BOUNDING-BOX
      RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR)
 See the documentation of the function `bdf-read-font-info' for more detail."
   (let ((slot (assoc (car font-info) bdf-cache)))
@@ -181,19 +173,16 @@ See the documentation of the function `bdf-read-font-info' for more detail."
 
 (defun bdf-read-font-info (bdfname)
   "Read `BDF' font file BDFNAME and return information (FONT-INFO) of the file.
+BDFNAME must be an absolute file name.
 FONT-INFO is a list of the following format:
-    (BDFFILE ABSOLUTE-PATH MOD-TIME FONT-BOUNDING-BOX
+    (BDFFILE MOD-TIME FONT-BOUNDING-BOX
      RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR)
 
-BDFFILE is a name of a font file (excluding directory part).
-
-ABSOLUTE-PATH is an absolute path of the font file.
-
 MOD-TIME is last modification time as a list of two integers, the
 first integer has high-order 16 bits, the second has low 16 bits.
 
-SIZE is a size of the font.  This value is got from SIZE record of the
-font.
+SIZE is a size of the font on 72 dpi device.  This value is got
+from SIZE record of the font.
 
 FONT-BOUNDING-BOX is the font bounding box as a list of four integers,
 BBX-WIDTH, BBX-HEIGHT, BBX-XOFF, and BBX-YOFF.
@@ -218,12 +207,12 @@ of the glyph in the font file.
 Nth element of OFFSET-VECTOR is a file position for the glyph of code
 CODE, where N and CODE are in the following relation:
     (bdf-compact-code CODE) => N, (bdf-expand-code N) => CODE"
-  (let* ((absolute-path (bdf-expand-file-name bdfname))
-        (buf (and absolute-path (bdf-find-file absolute-path)))
+  (let* ((buf (bdf-find-file bdfname))
         (maxlen 0)
         (relative-compose 'false)
         (baseline-offset 0)
         size
+        dpi
         font-bounding-box
         default-char
         code-range
@@ -248,12 +237,19 @@ CODE, where N and CODE are in the following relation:
                     (- (aref font-bounding-box 3))))
 
          (goto-char (point-min))
-         (search-forward "\nSIZE ")
-         (setq size (read (current-buffer)))
-         ;; The following kludgy code is t avoid bugs of several
-         ;; fonts which have wrong SIZE record.
-         (and (<= size (/ (aref font-bounding-box 1) 3))
-              (setq size (aref font-bounding-box 1)))
+         (search-forward "\nFONT ")
+         (if (looking-at "-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-\\([0-9]+\\)")
+             (setq size (string-to-int (match-string 1)))
+           (search-forward "\nSIZE ")
+           (setq size (read (current-buffer)))
+           ;; The following kludgy code is t avoid bugs of several
+           ;; fonts which have wrong SIZE record.
+           (and (string-match "jiskan" bdfname)
+                (<= size (/ (aref font-bounding-box 1) 3))
+                (setq size (aref font-bounding-box 1)))
+           (setq dpi (read (current-buffer)))
+           (if (and (> dpi 0) (/= dpi 72))
+               (setq size (/ (* size dpi) 72))))
 
          (setq default-char (bdf-search-and-read "\nDEFAULT_CHAR" nil))
 
@@ -305,55 +301,39 @@ CODE, where N and CODE are in the following relation:
 
     (kill-buffer buf))
   (message "Reading %s...done" bdfname)
-  (list bdfname absolute-path (bdf-file-mod-time absolute-path)
+  (list bdfname (bdf-file-mod-time bdfname)
        size font-bounding-box relative-compose baseline-offset
        code-range maxlen offset-vector)))
 
-(defsubst bdf-info-absolute-path (font-info)     (nth 1 font-info))
-(defsubst bdf-info-mod-time (font-info)          (nth 2 font-info))
-(defsubst bdf-info-size (font-info)              (nth 3 font-info))
-(defsubst bdf-info-font-bounding-box (font-info) (nth 4 font-info))
-(defsubst bdf-info-relative-compose (font-info)  (nth 5 font-info))
-(defsubst bdf-info-baseline-offset (font-info)   (nth 6 font-info))
-(defsubst bdf-info-code-range (font-info)        (nth 7 font-info))
-(defsubst bdf-info-maxlen (font-info)            (nth 8 font-info))
-(defsubst bdf-info-offset-vector (font-info)     (nth 9 font-info))
+(defsubst bdf-info-absolute-path (font-info)     (nth 0 font-info))
+(defsubst bdf-info-mod-time (font-info)          (nth 1 font-info))
+(defsubst bdf-info-size (font-info)              (nth 2 font-info))
+(defsubst bdf-info-font-bounding-box (font-info) (nth 3 font-info))
+(defsubst bdf-info-relative-compose (font-info)  (nth 4 font-info))
+(defsubst bdf-info-baseline-offset (font-info)   (nth 5 font-info))
+(defsubst bdf-info-code-range (font-info)        (nth 6 font-info))
+(defsubst bdf-info-maxlen (font-info)            (nth 7 font-info))
+(defsubst bdf-info-offset-vector (font-info)     (nth 8 font-info))
 
 (defun bdf-get-font-info (bdfname)
   "Return information about `BDF' font file BDFNAME.
+BDFNAME must be an absolute file name.
 The value FONT-INFO is a list of the following format:
-    (BDFFILE ABSOLUTE-PATH MOD-TIME SIZE FONT-BOUNDING-BOX
+    (BDFNAME MOD-TIME SIZE FONT-BOUNDING-BOX
      RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR)
 See the documentation of the function `bdf-read-font-info' for more detail."
   (or bdf-cache
       (bdf-read-cache))
   (let ((font-info (assoc bdfname bdf-cache)))
     (if (or (not font-info)
-           (not (file-readable-p (bdf-info-absolute-path font-info)))
+           (not (file-readable-p bdfname))
            (bdf-file-newer-than-time bdfname (bdf-info-mod-time font-info)))
        (progn
          (setq font-info (bdf-read-font-info bdfname))
          (bdf-set-cache font-info)))
     font-info))
 
-(defun bdf-find-font-info (bdfnames)
-  "Return information about `BDF' font file with alternative names BDFNAMES.
-
-If BDFNAMES is a list of file names, this function finds the first file
-in the list which exists and is readable, then calls `bdf-get-font-info'
-on that file name."
-  (let ((fnlist bdfnames)
-       (fname bdfnames))
-    (if (consp fnlist)
-       (while (and fnlist
-                   (progn
-                     (setq fname (car fnlist))
-                     (null (bdf-expand-file-name fname))))
-         (setq fname nil
-               fnlist (cdr fnlist))))
-    (bdf-get-font-info (or fname (car bdfnames)))))
-
-(defun bdf-read-bitmap (bdfname offset maxlen)
+(defun bdf-read-bitmap (bdfname offset maxlen relative-compose)
   "Read `BDF' font file BDFNAME to get bitmap data at file position OFFSET.
 BDFNAME is an absolute path name of the font file.
 MAXLEN specifies how many bytes we should read at least.
@@ -362,7 +342,7 @@ DWIDTH is a pixel width of a glyph.
 BBX is a bounding box of the glyph.
 BITMAP-STRING is a string representing bits by hexadecimal digits."
   (let* ((coding-system-for-read 'no-conversion)
-        (bbx (elt (bdf-get-font-info bdfname) 4))
+        (bbx (bdf-info-font-bounding-box (bdf-get-font-info bdfname)))
         (dwidth (elt bbx 0))
         (bitmap-string "")
         height yoff)
@@ -372,6 +352,8 @@ BITMAP-STRING is a string representing bits by hexadecimal digits."
          (goto-char (point-min))
          (search-forward "\nDWIDTH")
          (setq dwidth (read (current-buffer)))
+         (if (= dwidth 0)
+             (setq dwidth 0.1))
          (goto-char (point-min))
          (search-forward "\nBBX")
          (setq bbx (vector (read (current-buffer)) (read (current-buffer))
@@ -403,29 +385,26 @@ BITMAP-STRING is a string representing bits by hexadecimal digits."
            (delete-char 1))
          (setq bitmap-string (buffer-string)))
       (error nil))
-    (list dwidth bbx bitmap-string)))
-
-(defun bdf-get-bitmaps (bdfname codes)
-  "Return bitmap information of glyphs of CODES in `BDF' font file BDFNAME.
-CODES is a list of encoding number of glyphs in the file.
-The value is a list of CODE, DWIDTH, BBX, and BITMAP-STRING.
+    (vector dwidth (aref bbx 0) (aref bbx 1) (aref bbx 2) (aref bbx 3)
+           (concat "<" bitmap-string ">")
+           (or relative-compose 'false))))
+
+(defun bdf-get-bitmap (bdfname code)
+  "Return bitmap information of glyph of CODE in `BDF' font file BDFNAME.
+CODE is an encoding number of glyph in the file.
+The value is a list (DWIDTH BBX BITMAP-STRING).
 DWIDTH is a pixel width of a glyph.
 BBX is a bounding box of the glyph.
 BITMAP-STRING is a string representing bits by hexadecimal digits."
-  (let* ((font-info (bdf-find-font-info bdfname))
-        (absolute-path (bdf-info-absolute-path font-info))
-        ;;(font-bounding-box (bdf-info-font-bounding-box font-info))
-        (maxlen (bdf-info-maxlen font-info))
-        (code-range (bdf-info-code-range font-info))
-        (offset-vector (bdf-info-offset-vector font-info)))
-    (mapcar '(lambda (x)
-              (cons x (bdf-read-bitmap
-                       absolute-path
-                       (aref offset-vector (bdf-compact-code x code-range))
-                       maxlen)))
-           codes)))
-
-;;; Interface to ps-print.el
+  (let* ((info (bdf-get-font-info bdfname))
+        (maxlen (bdf-info-maxlen info))
+        (code-range (bdf-info-code-range info))
+        (offset-vector (bdf-info-offset-vector info)))
+    (bdf-read-bitmap bdfname
+                    (aref offset-vector (bdf-compact-code code code-range))
+                    maxlen (bdf-info-relative-compose info))))
+
+;;; Interface to ps-mule.el
 
 ;; Called from ps-mule-init-external-library.
 (defun bdf-generate-prologue ()
@@ -433,27 +412,36 @@ BITMAP-STRING is a string representing bits by hexadecimal digits."
       (bdf-initialize))
   (ps-mule-generate-bitmap-prologue))
 
+;; Called from ps-mule-check-font.
+(defun bdf-check-font (font-spec)
+  (let ((font-name-list (ps-mule-font-spec-name font-spec)))
+    (ps-mule-font-spec-set-name
+     font-spec
+     (if (stringp font-name-list)
+        (bdf-expand-file-name font-name-list)
+       (catch 'tag
+        (dolist (font-name font-name-list)
+          (setq font-name (bdf-expand-file-name font-name))
+          (if font-name
+              (throw 'tag font-name))))))))
+
 ;; Called from ps-mule-generate-font.
-(defun bdf-generate-font (charset font-spec)
-  (let* ((font-name (ps-mule-font-spec-name font-spec))
-        (font-info (bdf-find-font-info font-name))
-        (font-name (if (consp font-name) (car font-name) font-name)))
-    (ps-mule-generate-bitmap-font font-name
-                                 (ps-mule-font-spec-bytes font-spec)
-                                 (charset-width charset)
-                                 (bdf-info-size font-info)
-                                 (bdf-info-relative-compose font-info)
-                                 (bdf-info-baseline-offset font-info)
-                                 (bdf-info-font-bounding-box font-info))))
-
-;; Called from ps-mule-generate-glyphs.
-(defun bdf-generate-glyphs (font-spec code-list bytes)
-  (let ((font-name (ps-mule-font-spec-name font-spec)))
-    (mapcar '(lambda (x)
-              (apply 'ps-mule-generate-bitmap-glyph
-                     (if (consp font-name) (car font-name) font-name)
-                     x))
-           (bdf-get-bitmaps font-name code-list))))
+(defun bdf-generate-font (font-spec)
+  (let ((info (bdf-get-font-info (ps-mule-font-spec-name font-spec))))
+    (ps-mule-font-spec-set-extra
+     font-spec (bdf-info-absolute-path info))
+    (ps-mule-generate-bitmap-font font-spec
+                                 (bdf-info-size info)
+                                 (bdf-info-relative-compose info)
+                                 (bdf-info-baseline-offset info)
+                                 (bdf-info-font-bounding-box info))))
+
+;; Called from ps-mule-generate-glyph.
+(defun bdf-generate-glyph (font-spec char)
+  (let ((font-name (ps-mule-font-spec-extra font-spec))
+       (code (ps-mule-encode-char char font-spec)))
+    (ps-mule-generate-bitmap-glyph font-spec char code
+                                  (bdf-get-bitmap font-name code))))
 
 (provide 'ps-bdf)
 
diff --git a/lisp/ps-def.el b/lisp/ps-def.el
new file mode 100644 (file)
index 0000000..3903fc0
--- /dev/null
@@ -0,0 +1,456 @@
+;;; ps-def.el --- XEmacs and Emacs definitions for ps-print
+
+;; Copyright (C) 2007 Free Software Foundation, Inc.
+
+;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
+;;     Kenichi Handa <handa@m17n.org> (multi-byte characters)
+;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters)
+;;     Vinicius Jose Latorre <viniciusjl@ig.com.br>
+;; Keywords: wp, print, PostScript
+;; Version: 7.2.2
+;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 General Public License for more
+;; details.
+
+;; You should have received a copy of the GNU General Public License along with
+;; GNU Emacs; see the file COPYING.  If not, write to the Free Software
+;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; See ps-print.el for documentation.
+
+;;; Code:
+
+
+\f
+;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; XEmacs Definitions
+
+
+(cond
+ ((featurep 'xemacs)                   ; XEmacs
+
+
+  ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  ;; ps-bdf
+
+  (defvar installation-directory nil)
+  (defvar coding-system-for-read)
+
+
+  ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  ;; ps-mule
+
+  (defvar leading-code-private-22 157)
+
+  (or (fboundp 'charset-bytes)
+      (defun charset-bytes (charset) 1)) ; ascii
+
+  (or (fboundp 'charset-dimension)
+      (defun charset-dimension (charset) 1)) ; ascii
+
+  (or (fboundp 'charset-id)
+      (defun charset-id (charset) 0))  ; ascii
+
+  (or (fboundp 'charset-width)
+      (defun charset-width (charset) 1)) ; ascii
+
+  (or (fboundp 'find-charset-region)
+      (defun find-charset-region (beg end &optional table)
+       (list 'ascii)))
+
+  (or (fboundp 'char-width)
+      (defun char-width (char) 1))     ; ascii
+
+  (or (fboundp 'chars-in-region)
+      (defun chars-in-region (beg end)
+       (- (max beg end) (min beg end))))
+
+  (or (fboundp 'forward-point)
+      (defun forward-point (arg)
+       (save-excursion
+         (let ((count (abs arg))
+               (step  (if (zerop arg)
+                          0
+                        (/ arg arg))))
+           (while (and (> count 0)
+                       (< (point-min) (point)) (< (point) (point-max)))
+             (forward-char step)
+             (setq count (1- count)))
+           (+ (point) (* count step))))))
+
+  (or (fboundp 'decompose-composite-char)
+      (defun decompose-composite-char (char &optional type
+                                           with-composition-rule)
+       nil))
+
+  (or (fboundp 'encode-coding-string)
+      (defun encode-coding-string (string coding-system &optional nocopy)
+       (if nocopy
+           string
+         (copy-sequence string))))
+
+  (or (fboundp 'coding-system-p)
+      (defun coding-system-p (obj) nil))
+
+  (or (fboundp 'ccl-execute-on-string)
+      (defun ccl-execute-on-string (ccl-prog status str
+                                            &optional contin unibyte-p)
+       str))
+
+  (or (fboundp 'define-ccl-program)
+      (defmacro define-ccl-program (name ccl-program &optional doc)
+       `(defconst ,name nil ,doc)))
+
+  (or (fboundp 'multibyte-string-p)
+      (defun multibyte-string-p (str)
+       (let ((len (length str))
+             (i 0)
+             multibyte)
+         (while (and (< i len) (not (setq multibyte (> (aref str i) 255))))
+           (setq i (1+ i)))
+         multibyte)))
+
+  (or (fboundp 'string-make-multibyte)
+      (defalias 'string-make-multibyte 'copy-sequence))
+
+  (or (fboundp 'encode-char)
+      (defun encode-char (ch ccs)
+       ch))
+
+
+  ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  ;; ps-print
+
+  ;; GNU Emacs
+  (or (fboundp 'line-beginning-position)
+      (defun line-beginning-position (&optional n)
+       (save-excursion
+         (and n (/= n 1) (forward-line (1- n)))
+         (beginning-of-line)
+         (point))))
+
+
+  ;; GNU Emacs
+  (or (fboundp 'find-composition)
+      (defalias 'find-composition 'ignore))
+
+
+  (defun ps-xemacs-color-name (color)
+    (if (color-specifier-p color)
+       (color-name color)
+      color))
+
+
+  (defalias 'ps-mark-active-p 'region-active-p)
+
+
+  (defun ps-face-foreground-name (face)
+    (ps-xemacs-color-name (face-foreground face)))
+
+
+  (defun ps-face-background-name (face)
+    (ps-xemacs-color-name (face-background face)))
+
+
+  (defalias 'ps-frame-parameter 'frame-property)
+
+
+  ;; Return t if the device (which can be changed during an emacs session)
+  ;; can handle colors.
+  ;; XEmacs change: Need to check for emacs-major-version too.
+  (if (or (> emacs-major-version 19)
+         (and (= emacs-major-version 19)
+              (>= emacs-minor-version 12)))
+      ;; xemacs >= 19.12
+      (defun ps-color-device ()
+       (eq (device-class) 'color))
+    ;; xemacs < 19.12
+    (setq ps-print-color-p nil)
+    (defalias 'ps-color-device 'ignore))
+
+
+  (defun ps-mapper (extent list)
+    (nconc list
+          (list (list (extent-start-position extent) 'push extent)
+                (list (extent-end-position extent) 'pull extent)))
+    nil)
+
+
+  (defun ps-extent-sorter (a b)
+    (< (extent-priority a) (extent-priority b)))
+
+
+  (defun ps-xemacs-face-kind-p (face kind kind-regex)
+    (let* ((frame-font (or (face-font-instance face)
+                          (face-font-instance 'default)))
+          (kind-cons
+           (and frame-font
+                (assq kind
+                      (font-instance-properties frame-font))))
+          (kind-spec (cdr-safe kind-cons))
+          (case-fold-search t))
+      (and kind-spec (string-match kind-regex kind-spec))))
+
+
+  ;; to avoid XEmacs compilation gripes
+  (defvar coding-system-for-write)
+  (defvar buffer-file-coding-system)
+
+
+  (and (fboundp 'find-coding-system)
+       (or (funcall 'find-coding-system 'raw-text-unix)
+          (funcall 'copy-coding-system 'no-conversion-unix 'raw-text-unix)))
+
+
+  (defun ps-color-values (x-color)
+    (let ((color (ps-xemacs-color-name x-color)))
+      (cond
+       ((fboundp 'x-color-values)
+       (funcall 'x-color-values color))
+       ((and (fboundp 'color-instance-rgb-components)
+            (ps-color-device))
+       (funcall 'color-instance-rgb-components
+                (if (color-instance-p x-color)
+                    x-color
+                  (make-color-instance color))))
+       (t
+       (error "No available function to determine X color values")))))
+
+
+  (defun ps-face-bold-p (face)
+    (or (ps-xemacs-face-kind-p face 'WEIGHT_NAME "bold\\|demibold")
+       (memq face ps-bold-faces)))     ; Kludge-compatible
+
+
+  (defun ps-face-italic-p (face)
+    (or (ps-xemacs-face-kind-p face 'ANGLE_NAME "i\\|o")
+       (ps-xemacs-face-kind-p face 'SLANT "i\\|o")
+       (memq face ps-italic-faces)))   ; Kludge-compatible
+
+
+  ;; XEmacs will have to make do with %s (princ) for floats.
+  (defvar ps-color-format "%s %s %s")
+  (defvar ps-float-format "%s ")
+
+
+  (defun ps-generate-postscript-with-faces1 (from to)
+    ;; Generate some PostScript.
+    (let ((face 'default)
+         (position to)
+         ;; XEmacs
+         ;; Build the list of extents...
+         (a (cons 'dummy nil))
+         record type extent extent-list)
+      (map-extents 'ps-mapper nil from to a)
+      (setq a (sort (cdr a) 'car-less-than-car)
+           extent-list nil)
+
+      ;; Loop through the extents...
+      (while a
+       (setq record (car a)
+             position (car record)
+
+             record (cdr record)
+             type (car record)
+
+             record (cdr record)
+             extent (car record))
+
+       ;; Plot up to this record.
+       ;; XEmacs 19.12: for some reason, we're getting into a
+       ;; situation in which some of the records have
+       ;; positions less than 'from'.  Since we've narrowed
+       ;; the buffer, this'll generate errors.  This is a hack,
+       ;; but don't call ps-plot-with-face unless from > point-min.
+       (and (>= from (point-min))
+            (ps-plot-with-face from (min position (point-max)) face))
+
+       (cond
+        ((eq type 'push)
+         (and (extent-face extent)
+              (setq extent-list (sort (cons extent extent-list)
+                                      'ps-extent-sorter))))
+
+        ((eq type 'pull)
+         (setq extent-list (sort (delq extent extent-list)
+                                 'ps-extent-sorter))))
+
+       (setq face (if extent-list
+                      (extent-face (car extent-list))
+                    'default)
+             from position
+             a (cdr a)))
+
+      (ps-plot-with-face from to face)))
+
+  )
+ (t                                    ; Emacs
+  ;; Do nothing
+  ))                                   ; end cond featurep
+
+
+\f
+;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Emacs Definitions
+
+
+(cond
+ ((featurep 'xemacs)                   ; XEmacs
+  ;; Do nothing
+  )
+ (t                                    ; Emacs
+
+
+  ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+  ;; ps-print
+
+
+  (defun ps-mark-active-p ()
+    mark-active)
+
+
+  (defun ps-face-foreground-name (face)
+    (face-foreground face nil t))
+
+
+  (defun ps-face-background-name (face)
+    (face-background face nil t))
+
+
+  (defalias 'ps-frame-parameter 'frame-parameter)
+
+
+  ;; Return t if the device (which can be changed during an emacs session) can
+  ;; handle colors.  This function is not yet implemented for GNU emacs.
+  (defun ps-color-device ()
+    (if (fboundp 'color-values)
+       (funcall 'color-values "Green")
+      t))
+
+
+  (defun ps-color-values (x-color)
+    (cond
+     ((fboundp 'color-values)
+      (funcall 'color-values x-color))
+     ((fboundp 'x-color-values)
+      (funcall 'x-color-values x-color))
+     (t
+      (error "No available function to determine X color values"))))
+
+
+  (defun ps-face-bold-p (face)
+    (or (face-bold-p face)
+       (memq face ps-bold-faces)))
+
+
+  (defun ps-face-italic-p (face)
+    (or (face-italic-p face)
+       (memq face ps-italic-faces)))
+
+
+  ;; Emacs understands the %f format; we'll use it to limit color RGB values
+  ;; to three decimals to cut down some on the size of the PostScript output.
+  (defvar ps-color-format "%0.3f %0.3f %0.3f")
+  (defvar ps-float-format "%0.3f ")
+
+
+  (defun ps-generate-postscript-with-faces1 (from to)
+    ;; Generate some PostScript.
+    (let ((face 'default)
+         (position to)
+         ;; Emacs
+         (property-change from)
+         (overlay-change from)
+         (save-buffer-invisibility-spec buffer-invisibility-spec)
+         (buffer-invisibility-spec nil)
+         before-string after-string)
+      (while (< from to)
+       (and (< property-change to)     ; Don't search for property change
+                                       ; unless previous search succeeded.
+            (setq property-change (next-property-change from nil to)))
+       (and (< overlay-change to)      ; Don't search for overlay change
+                                       ; unless previous search succeeded.
+            (setq overlay-change (min (next-overlay-change from)
+                                      to)))
+       (setq position (min property-change overlay-change)
+             before-string nil
+             after-string nil)
+       ;; The code below is not quite correct,
+       ;; because a non-nil overlay invisible property
+       ;; which is inactive according to the current value
+       ;; of buffer-invisibility-spec nonetheless overrides
+       ;; a face text property.
+       (setq face
+             (cond ((let ((prop (get-text-property from 'invisible)))
+                      ;; Decide whether this invisible property
+                      ;; really makes the text invisible.
+                      (if (eq save-buffer-invisibility-spec t)
+                          (not (null prop))
+                        (or (memq prop save-buffer-invisibility-spec)
+                            (assq prop save-buffer-invisibility-spec))))
+                    'emacs--invisible--face)
+                   ((get-text-property from 'face))
+                   (t 'default)))
+       (let ((overlays (overlays-at from))
+             (face-priority -1))       ; text-property
+         (while (and overlays
+                     (not (eq face 'emacs--invisible--face)))
+           (let* ((overlay (car overlays))
+                  (overlay-invisible
+                   (overlay-get overlay 'invisible))
+                  (overlay-priority
+                   (or (overlay-get overlay 'priority) 0)))
+             (and (> overlay-priority face-priority)
+                  (setq before-string
+                        (or (overlay-get overlay 'before-string)
+                            before-string)
+                        after-string
+                        (or (and (<= (overlay-end overlay) position)
+                                 (overlay-get overlay 'after-string))
+                            after-string)
+                        face-priority overlay-priority
+                        face
+                        (cond
+                         ((if (eq save-buffer-invisibility-spec t)
+                              (not (null overlay-invisible))
+                            (or (memq overlay-invisible
+                                      save-buffer-invisibility-spec)
+                                (assq overlay-invisible
+                                      save-buffer-invisibility-spec)))
+                          'emacs--invisible--face)
+                         ((overlay-get overlay 'face))
+                         (t face)
+                         ))))
+           (setq overlays (cdr overlays))))
+       ;; Plot up to this record.
+       (and before-string
+            (ps-plot-string before-string))
+       (ps-plot-with-face from position face)
+       (and after-string
+            (ps-plot-string after-string))
+       (setq from position))
+      (ps-plot-with-face from to face)))
+
+  ))                                   ; end cond featurep
+
+\f
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(provide 'ps-def)
+
+;; arch-tag: 4edde45b-af10-4685-b8ee-7cd0f951095a
+;;; ps-def.el ends here
index fcad2c85bdfad10d143e6c13db51345d15f47d4c..54054e4e36e8befe43d9f7e0c0c2b826308d2e1b 100644 (file)
 ;;; Code:
 
 (eval-and-compile
-  (require 'ps-print)
-
-  ;; to avoid XEmacs compilation gripes
-  (defvar leading-code-private-22 157)
-  (or (fboundp 'charset-bytes)
-      (defun charset-bytes (charset) 1)) ; ascii
-  (or (fboundp 'charset-dimension)
-      (defun charset-dimension (charset) 1)) ; ascii
-  (or (fboundp 'charset-id)
-      (defun charset-id (charset) 0))  ; ascii
-  (or (fboundp 'charset-width)
-      (defun charset-width (charset) 1)) ; ascii
-  (or (fboundp 'find-charset-region)
-      (defun find-charset-region (beg end &optional table)
-       (list 'ascii)))
-  (or (fboundp 'char-valid-p)
-      (defun char-valid-p (char)
-       (< (following-char) 256)))
-  (or (fboundp 'split-char)
-      (defun split-char (char)
-       (list (if (char-valid-p char)
-                 'ascii
-               'unknow)
-             char)))
-  (or (fboundp 'char-width)
-      (defun char-width (char) 1))     ; ascii
-  (or (fboundp 'chars-in-region)
-      (defun chars-in-region (beg end)
-       (- (max beg end) (min beg end))))
-  (or (fboundp 'forward-point)
-      (defun forward-point (arg)
-       (save-excursion
-         (let ((count (abs arg))
-               (step  (if (zerop arg)
-                          0
-                        (/ arg arg))))
-           (while (and (> count 0)
-                       (< (point-min) (point)) (< (point) (point-max)))
-             (forward-char step)
-             (setq count (1- count)))
-           (+ (point) (* count step))))))
-  (or (fboundp 'decompose-composite-char)
-      (defun decompose-composite-char (char &optional type
-                                           with-composition-rule)
-       nil))
-  (or (fboundp 'encode-coding-string)
-      (defun encode-coding-string (string coding-system &optional nocopy)
-       (if nocopy
-           string
-         (copy-sequence string))))
-  (or (fboundp 'coding-system-p)
-      (defun coding-system-p (obj) nil))
-  (or (fboundp 'ccl-execute-on-string)
-      (defun ccl-execute-on-string (ccl-prog status str
-                                            &optional contin unibyte-p)
-       str))
-  (or (fboundp 'define-ccl-program)
-      (defmacro define-ccl-program (name ccl-program &optional doc)
-       `(defconst ,name nil ,doc)))
-  (or (fboundp 'multibyte-string-p)
-      (defun multibyte-string-p (str)
-       (let ((len (length str))
-             (i 0)
-             multibyte)
-         (while (and (< i len) (not (setq multibyte (> (aref str i) 255))))
-           (setq i (1+ i)))
-         multibyte)))
-  (or (fboundp 'string-make-multibyte)
-      (defalias 'string-make-multibyte 'copy-sequence))
-  (or (fboundp 'encode-char)
-      (defun encode-char (ch ccs)
-       ch)))
+  (require 'ps-print))
 
 
 ;;;###autoload
@@ -255,8 +184,8 @@ font family.
 See also the variable `ps-font-info-database'.")
 
 (defconst ps-mule-font-info-database-latin
-  '((latin-iso8859-1
-     (normal nil nil iso-latin-1)))
+  '((iso-8859-1
+     (normal nil nil)))
   "Sample setting of `ps-mule-font-info-database' to use latin fonts.")
 
 (defcustom ps-mule-font-info-database-default
@@ -267,119 +196,104 @@ See also the variable `ps-font-info-database'.")
 
 (defconst ps-mule-font-info-database-ps
   '((katakana-jisx0201
-     (normal builtin "Ryumin-Light.Katakana" ps-mule-encode-7bit 1)
-     (bold builtin "GothicBBB-Medium.Katakana" ps-mule-encode-7bit 1)
-     (bold-italic builtin "GothicBBB-Medium.Katakana" ps-mule-encode-7bit 1))
+     (normal builtin "Ryumin-Light.Katakana")
+     (bold builtin "GothicBBB-Medium.Katakana")
+     (bold-italic builtin "GothicBBB-Medium.Katakana"))
     (latin-jisx0201
-     (normal builtin "Ryumin-Light.Hankaku" ps-mule-encode-7bit 1)
-     (bold builtin "GothicBBB-Medium.Hankaku" ps-mule-encode-7bit 1))
+     (normal builtin "Ryumin-Light.Hankaku")
+     (bold builtin "GothicBBB-Medium.Hankaku"))
     (japanese-jisx0208
-     (normal builtin "Ryumin-Light-H" ps-mule-encode-7bit 2)
-     (bold builtin "GothicBBB-Medium-H" ps-mule-encode-7bit 2))
+     (normal builtin "Ryumin-Light-H")
+     (bold builtin "GothicBBB-Medium-H"))
     (korean-ksc5601
-     (normal builtin "Munhwa-Regular-KSC-EUC-H" ps-mule-encode-7bit 2)
-     (bold builtin "Munhwa-Bold-KSC-EUC-H" ps-mule-encode-7bit 2))
+     (normal builtin "Munhwa-Regular-KSC-EUC-H")
+     (bold builtin "Munhwa-Bold-KSC-EUC-H"))
     )
   "Sample setting of the `ps-mule-font-info-database' to use builtin PS font.
 
 Currently, data for Japanese and Korean PostScript printers are listed.")
 
 (defconst ps-mule-font-info-database-bdf
-  '((ascii
-     (normal bdf ("lt1-24-etl.bdf" "etl24-latin1.bdf") nil 1)
-     (bold bdf ("lt1-16b-etl.bdf" "etl16b-latin1.bdf") nil 1)
-     (italic bdf ("lt1-16i-etl.bdf" "etl16i-latin1.bdf") nil 1)
-     (bold-italic bdf ("lt1-16bi-etl.bdf" "etl16bi-latin1.bdf") nil 1))
-    (latin-iso8859-1
-     (normal bdf ("lt1-24-etl.bdf" "etl24-latin1.bdf") iso-latin-1 1)
-     (bold bdf ("lt1-16b-etl.bdf" "etl16b-latin1.bdf") iso-latin-1 1)
-     (italic bdf ("lt1-16i-etl.bdf" "etl16i-latin1.bdf") iso-latin-1 1)
-     (bold-italic bdf ("lt1-16bi-etl.bdf" "etl16bi-latin1.bdf") iso-latin-1 1))
-    (latin-iso8859-2
-     (normal bdf ("lt2-24-etl.bdf" "etl24-latin2.bdf") iso-latin-2 1))
-    (latin-iso8859-3
-     (normal bdf ("lt3-24-etl.bdf" "etl24-latin3.bdf") iso-latin-3 1))
-    (latin-iso8859-4
-     (normal bdf ("lt4-24-etl.bdf" "etl24-latin4.bdf") iso-latin-4 1))
+  '((iso-8859-1
+     (normal bdf ("lt1-24-etl.bdf" "etl24-latin1.bdf"))
+     (bold bdf ("lt1-16b-etl.bdf" "etl16b-latin1.bdf"))
+     (italic bdf ("lt1-16i-etl.bdf" "etl16i-latin1.bdf"))
+     (bold-italic bdf ("lt1-16bi-etl.bdf" "etl16bi-latin1.bdf")))
+    (iso-8859-2
+     (normal bdf ("lt2-24-etl.bdf" "etl24-latin2.bdf")))
+    (iso-8859-3
+     (normal bdf ("lt3-24-etl.bdf" "etl24-latin3.bdf")))
+    (iso-8859-4
+     (normal bdf ("lt4-24-etl.bdf" "etl24-latin4.bdf")))
     (thai-tis620
-     (normal bdf ("thai24.bdf" "thai-24.bdf") thai-tis620 1))
+     (normal bdf ("thai24.bdf" "thai-24.bdf") iso-8859-11))
     (greek-iso8859-7
-     (normal bdf ("grk24-etl.bdf" "etl24-greek.bdf") greek-iso-8bit 1))
-    ;; (arabic-iso8859-6       nil) ; not yet available
+     (normal bdf ("grk24-etl.bdf" "etl24-greek.bdf") iso-8859-7))
     (hebrew-iso8859-8
-     (normal bdf ("heb24-etl.bdf" "etl24-hebrew.bdf") hebrew-iso-8bit 1))
-    (katakana-jisx0201
-     (normal bdf "12x24rk.bdf" ps-mule-encode-8bit 1))
-    (latin-jisx0201
-     (normal bdf "12x24rk.bdf" ps-mule-encode-7bit 1))
+     (normal bdf ("heb24-etl.bdf" "etl24-hebrew.bdf") iso-8859-8))
+    (jisx0201
+     (normal bdf "12x24rk.bdf" jisx0201))
     (cyrillic-iso8859-5
-     (normal bdf ("cyr24-etl.bdf" "etl24-cyrillic.bdf") cyrillic-iso-8bit 1))
-    (latin-iso8859-9
-     (normal bdf ("lt5-24-etl.bdf" "etl24-latin5.bdf") iso-latin-5 1))
-    (japanese-jisx0208-1978
-     (normal bdf "jiskan24.bdf" ps-mule-encode-7bit 2))
+     (normal bdf ("cyr24-etl.bdf" "etl24-cyrillic.bdf") iso-8859-5))
+    (iso-8859-9
+     (normal bdf ("lt5-24-etl.bdf" "etl24-latin5.bdf") iso-8859-9))
     (chinese-gb2312
-     (normal bdf "gb24st.bdf" ps-mule-encode-7bit 2))
+     (normal bdf "gb24st.bdf"))
     (japanese-jisx0208
-     (normal bdf "jiskan24.bdf" ps-mule-encode-7bit 2))
+     (normal bdf "jiskan24.bdf"))
     (korean-ksc5601
-     (normal bdf "hanglm24.bdf" ps-mule-encode-7bit 2))
+     (normal bdf "hanglm24.bdf"))
     (japanese-jisx0212
-     (normal bdf ("jksp40.bdf" "jisksp40.bdf") ps-mule-encode-7bit 2))
+     (normal bdf ("jksp40.bdf" "jisksp40.bdf")))
     (chinese-cns11643-1
-     (normal bdf ("cns1-40.bdf" "cns-1-40.bdf") ps-mule-encode-7bit 2))
+     (normal bdf ("cns1-40.bdf" "cns-1-40.bdf")))
     (chinese-cns11643-2
-     (normal bdf ("cns2-40.bdf" "cns-2-40.bdf") ps-mule-encode-7bit 2))
-    (chinese-big5-1
-     (normal bdf "taipei24.bdf" chinese-big5 2))
-    (chinese-big5-2
-     (normal bdf "taipei24.bdf" chinese-big5 2))
+     (normal bdf ("cns2-40.bdf" "cns-2-40.bdf")))
+    (big5
+     (normal bdf "taipei24.bdf"))
     (chinese-sisheng
-     (normal bdf ("sish24-etl.bdf" "etl24-sisheng.bdf") ps-mule-encode-7bit 1))
+     (normal bdf ("sish24-etl.bdf" "etl24-sisheng.bdf")))
     (ipa
-     (normal bdf ("ipa24-etl.bdf" "etl24-ipa.bdf") ps-mule-encode-8bit 1))
-    (vietnamese-viscii-lower
-     (normal bdf ("visc24-etl.bdf" "etl24-viscii.bdf") vietnamese-viscii 1))
-    (vietnamese-viscii-upper
-     (normal bdf ("visc24-etl.bdf" "etl24-viscii.bdf") vietnamese-viscii 1))
+     (normal bdf ("ipa24-etl.bdf" "etl24-ipa.bdf") ipa))
+    (viscii
+     (normal bdf ("visc24-etl.bdf" "etl24-viscii.bdf")))
     (arabic-digit
-     (normal bdf ("arab24-0-etl.bdf" "etl24-arabic0.bdf") ps-mule-encode-7bit 1))
+     (normal bdf ("arab24-0-etl.bdf" "etl24-arabic0.bdf")))
     (arabic-1-column
-     (normal bdf ("arab24-1-etl.bdf" "etl24-arabic1.bdf") ps-mule-encode-7bit 1))
-    ;; (ascii-right-to-left nil) ; not yet available
+     (normal bdf ("arab24-1-etl.bdf" "etl24-arabic1.bdf")))
     (lao
-     (normal bdf ("lao24-mule.bdf" "mule-lao-24.bdf") lao 1))
+     (normal bdf ("lao24-mule.bdf" "mule-lao-24.bdf") ps-mule-encode-lao 1))
     (arabic-2-column
-     (normal bdf ("arab24-2-etl.bdf" "etl24-arabic2.bdf") ps-mule-encode-7bit 1))
+     (normal bdf ("arab24-2-etl.bdf" "etl24-arabic2.bdf")))
+    (devanagari-cdac
+     (normal bdf "dvsr0ntt-32.bdf"))
+    (malayalam-cdac
+     (normal bdf "mlkr0ntt-32.bdf"))
+    (tamil-cdac
+     (normal bdf "tmvl0ntt-32.bdf"))
     (indian-is13194
-     (normal bdf ("isci24-mule.bdf" "mule-iscii-24.bdf") ps-mule-encode-7bit 1))
+     (normal bdf ("isci24-mule.bdf" "mule-iscii-24.bdf")))
     (indian-1-column
-     (normal bdf ("ind1c24-mule.bdf" "mule-indian-1col-24.bdf") ps-mule-encode-7bit 2))
-    (tibetan-1-column
-     (normal bdf ("tib1c24-mule.bdf" "mule-tibmdx-1col-24.bdf") ps-mule-encode-7bit 2))
+     (normal bdf ("ind1c24-mule.bdf" "mule-indian-1col-24.bdf")))
     (ethiopic
-     (normal bdf ("ethio24f-uni.bdf" "ethiomx24f-uni.bdf") ps-mule-encode-ethiopic 2))
+     (normal bdf ("ethio24f-uni.bdf" "ethiomx24f-uni.bdf") unicode-bmp))
     (chinese-cns11643-3
-     (normal bdf ("cns3-40.bdf" "cns-3-40.bdf") ps-mule-encode-7bit 2))
+     (normal bdf ("cns3-40.bdf" "cns-3-40.bdf")))
     (chinese-cns11643-4
-     (normal bdf ("cns4-40.bdf" "cns-4-40.bdf") ps-mule-encode-7bit 2))
+     (normal bdf ("cns4-40.bdf" "cns-4-40.bdf")))
     (chinese-cns11643-5
-     (normal bdf ("cns5-40.bdf" "cns-5-40.bdf") ps-mule-encode-7bit 2))
+     (normal bdf ("cns5-40.bdf" "cns-5-40.bdf")))
     (chinese-cns11643-6
-     (normal bdf ("cns6-40.bdf" "cns-6-40.bdf") ps-mule-encode-7bit 2))
+     (normal bdf ("cns6-40.bdf" "cns-6-40.bdf")))
     (chinese-cns11643-7
-     (normal bdf ("cns7-40.bdf" "cns-7-40.bdf") ps-mule-encode-7bit 2))
+     (normal bdf ("cns7-40.bdf" "cns-7-40.bdf")))
     (indian-2-column
-     (normal bdf ("ind24-mule.bdf" "mule-indian-24.bdf") ps-mule-encode-7bit 2))
+     (normal bdf ("ind24-mule.bdf" "mule-indian-24.bdf")))
     (tibetan
-     (normal bdf ("tib24p-mule.bdf" "tib24-mule.bdf" "mule-tibmdx-24.bdf")
-            ps-mule-encode-7bit 2))
-    (mule-unicode-0100-24ff
-     (normal bdf "etl24-unicode.bdf" ps-mule-encode-ucs2 2))
-    (mule-unicode-2500-33ff
-     (normal bdf "etl24-unicode.bdf" ps-mule-encode-ucs2 2))
-    (mule-unicode-e000-ffff
-     (normal bdf "etl24-unicode.bdf" ps-mule-encode-ucs2 2)))
+     (normal bdf ("tib24p-mule.bdf" "tib24-mule.bdf" "mule-tibmdx-24.bdf")))
+    (unicode-bmp
+     (normal bdf "etl24-unicode.bdf"))
+    )
   "Sample setting of the `ps-mule-font-info-database' to use BDF fonts.
 BDF (Bitmap Distribution Format) is a format used for distributing X's font
 source file.
@@ -407,130 +321,112 @@ by `ps-font-family' and `ps-header-font-family'.
 
 See also `ps-mule-font-info-database-bdf'.")
 
-;; Two typical encoding functions for PostScript fonts.
-
-(defun ps-mule-encode-7bit (string)
-  (ps-mule-encode-bit string 0))
-
-(defun ps-mule-encode-8bit (string)
-  (ps-mule-encode-bit string 128))
-
-(defun ps-mule-encode-bit (string delta)
-  (let* ((dim (charset-dimension (char-charset (string-to-char string))))
-        (len (length string))
-        (str (make-string (* len dim) 0))
-        (j 0))
-    (if (= dim 1)
-        ;; (apply 'string
-        ;;        (mapcar (lambda (c) (+ (nth 1 (split-char c)) delta))
-        ;;                string))
-       (dotimes (i len)
-         (aset str i
-               (+ (nth 1 (split-char (aref string i))) delta)))
-      ;; (mapconcat (lambda (c)
-      ;;              (let ((split (split-char c)))
-      ;;                (string (+ (nth 1 split) delta)
-      ;;                        (+ (nth 2 split) delta))))
-      ;;            string "")
-      (dotimes (i len)
-       (let ((split (split-char (aref string i))))
-         (aset str j (+ (nth 1 split) delta))
-         (aset str (1+ j) (+ (nth 2 split) delta))
-         (setq j (+ j 2)))))
-    str))
-
-;; Special encoding function for Ethiopic.
-(if (boundp 'mule-version)             ; only if mule package is loaded
-    (define-ccl-program ccl-encode-ethio-unicode
-      `(1
-       ((read r2)
-        (loop
-         (if (r2 == ,leading-code-private-22)
-             ((read r0)
-              (if (r0 == ,(charset-id 'ethiopic))
-                  ((read r1 r2)
-                   (r1 &= 127) (r2 &= 127)
-                   (call ccl-encode-ethio-font)
-                   (write r1)
-                   (write-read-repeat r2))
-                ((write r2 r0)
-                 (repeat))))
-           (write-read-repeat r2))))))
-  ;; to avoid compilation gripes
-  (defvar ccl-encode-ethio-unicode nil))
-
-(defalias 'ps-mule-encode-ethiopic
-  (if (boundp 'mule-version)
-      ;; Bound mule-version.
-      (lambda (string)
-        (ccl-execute-on-string (symbol-value 'ccl-encode-ethio-unicode)
-                               (make-vector 9 nil)
-                               string))
-    ;; Unbound mule-version.
-    #'identity))
-
-;; Special encoding for mule-unicode-* characters.
-(defun ps-mule-encode-ucs2 (string)
-  (let* ((len (length string))
-        (str (make-string (* 2 len) 0))
-        (j 0)
-        ch hi lo)
-    (dotimes (i len)
-      (setq ch (encode-char (aref string i) 'ucs)
-           hi (lsh ch -8)
-           lo (logand ch 255))
-      (aset str j hi)
-      (aset str (1+ j) lo)
-      (setq j (+ j 2)))
-    str))
-
-;; A charset which we are now processing.
-(defvar ps-mule-current-charset nil)
-
-(defun ps-mule-get-font-spec (charset font-type)
-  "Return FONT-SPEC for printing characters CHARSET with FONT-TYPE.
-FONT-SPEC is a list that has the form:
-
-       (FONT-SRC FONT-NAME ENCODING BYTES)
-
-FONT-SPEC is extracted from `ps-mule-font-info-database'.
-
-See the documentation of `ps-mule-font-info-database' for the meaning of each
-element of the list."
-  (let ((slot (cdr (assq charset ps-mule-font-info-database))))
-    (and slot
-        (cdr (or (assq font-type slot)
-                 (and (eq font-type 'bold-italic)
-                      (or (assq 'bold slot) (assq 'italic slot)))
-                 (assq 'normal slot))))))
+(defvar ps-mule-font-spec-list nil
+  "Array of FONT-SPEC lists for each font type.
+
+Elements are for `normal' font, `bold' font, `italic' font, and
+`bold-italic' font in this order.
+
+Each element is a list of FONT-SPEC which has this form:
+
+       (ID CHARSET (FONT-SRC FONT-NAME ENCODING) EXTRA-DATA)
+
+Where
+
+ID is a number for this FONT-SPEC and is unique in the list.
+
+CHARSET, FONT-SRC, FONT-NAME, ENCODING are the same as those in
+`ps-mule-font-info-database' (which see).
+
+EXTRA-DATA is a data attached by external libraries.
+
+Each list is ordered by the current charset priorities.
+
+This variable is setup by `ps-mule-begin-job' from
+`ps-mule-font-info-database'.")
 
 ;; Functions to access each element of FONT-SPEC.
-(defsubst ps-mule-font-spec-src (font-spec) (car font-spec))
-(defsubst ps-mule-font-spec-name (font-spec) (nth 1 font-spec))
-(defsubst ps-mule-font-spec-encoding (font-spec) (nth 2 font-spec))
-(defsubst ps-mule-font-spec-bytes (font-spec) (nth 3 font-spec))
-
-(defsubst ps-mule-printable-p (charset)
-  "Non-nil if characters in CHARSET is printable."
-  ;; ASCII and Latin-1 are always printable.
-  (or (eq charset 'ascii)
-      (eq charset 'latin-iso8859-1)
-      (ps-mule-get-font-spec charset 'normal)))
+(defsubst ps-mule-font-spec-id (font-spec) (aref font-spec 0))
+(defsubst ps-mule-font-spec-charset (font-spec) (aref font-spec 1))
+(defsubst ps-mule-font-spec-font-id (font-spec) (aref font-spec 2))
+(defsubst ps-mule-font-spec-src (font-spec) (aref font-spec 3))
+(defsubst ps-mule-font-spec-name (font-spec) (aref font-spec 4))
+(defsubst ps-mule-font-spec-set-name (font-spec name)
+  (aset font-spec 4 name))
+(defsubst ps-mule-font-spec-encoding (font-spec) (aref font-spec 5))
+(defsubst ps-mule-font-spec-bytes (font-spec) (aref font-spec 6))
+(defsubst ps-mule-font-spec-extra (font-spec) (aref font-spec 7))
+(defsubst ps-mule-font-spec-set-extra (font-spec extra)
+  (aset font-spec 7 extra))
+
+;; Functions to encode character into glyph code.
+(defun ps-mule-encode-lao (char)
+  (- char #x0DE0))
+
+(defun ps-mule-encode-char (char font-spec)
+  (let ((encoding (ps-mule-font-spec-encoding font-spec)))
+    (cond ((charsetp encoding)
+          (encode-char char encoding))
+         ((fboundp encoding)
+          (funcall encoding char))
+         (t
+          char))))
+
+;; Array of FONT-SPEC-TABLEs; Nth element is for FONT-TYPE N.
+;;
+;; FONT-TYPE is 0, 1, 2, or 3 representing normal, bold, italic, and
+;; bold-italic respectively.
+;;
+;; FONT-SPEC-TABLE is a char-table of FONT-SPECs.  It records which
+;; character is printed by which FONT-SPEC.  It has one extra slot
+;; whose value is an alist of the form:
+;;     (CHARSET . FONT-SPEC)
+;; FONT-SPEC is a vecotr of the form:
+;;     (ID FONT-SRC FONT-NAME ENCODING EXTRA)
+(defvar ps-mule-font-spec-tables nil)
+
+;; Array of FONT-TYPEs; Nth element FONT-NUMBER N.
+;;
+;; FONT-NUMBER is 0, 1, 2, 3, 4, 5, 6 representing fonts f0, f1, f2,
+;; f3, h0, h1, and H0.
+(defconst ps-mule-font-number-to-type [ 0 1 2 3 1 0 0 ])
+
+(defsubst ps-mule-get-font-spec (char font-spec-table font-spec)
+  "Return a font spec for printing CHAR with FONT-SPEC-TABLE.
+
+FONT-SPEC, if non-nil, is a font spec to try at first.
+
+See the documentation of `ps-mule-font-spec-tables' for the
+format of font spec."
+
+  (or (aref font-spec-table char)
+      (aset font-spec-table char
+           (or (and (< char 256)
+                    (cdr (car (char-table-extra-slot font-spec-table 0))))
+               (and font-spec
+                    (encode-char char (ps-mule-font-spec-charset font-spec))
+                    font-spec)
+               (catch 'tag
+                 (dolist (elt (char-table-extra-slot font-spec-table 0))
+                   (and (encode-char char (car elt))
+                        (throw 'tag (cdr elt)))))
+               ;; Record that no font-spec exist for CHAR.
+               t))))
 
 (defconst ps-mule-external-libraries
-  '((builtin nil nil
+  '((builtin nil nil nil
             nil nil nil)
-    (bdf     ps-bdf nil
-            bdf-generate-prologue bdf-generate-font bdf-generate-glyphs)
-    (pcf     nil nil
-            pcf-generate-prologue pcf-generate-font pcf-generate-glyphs)
-    (vflib   nil nil
-            vflib-generate-prologue vflib-generate-font vflib-generate-glyphs))
+    (bdf     ps-bdf nil bdf-generate-prologue
+            bdf-check-font bdf-generate-font bdf-generate-glyph)
+    (pcf     nil nil pcf-generate-prologue
+            pcf-check-font pcf-generate-font pcf-generate-glyph)
+    (vflib   nil nil vflib-generate-prologue
+            vflib-check-font vflib-generate-font vflib-generate-glyphs))
   "Alist of external libraries information to support PostScript printing.
 Each element has the form:
 
-    (FONT-SRC FEATURE INITIALIZED-P
-     PROLOGUE-FUNC FONT-FUNC GLYPHS-FUNC)
+    (FONT-SRC FEATURE INITIALIZED-P PROLOGUE-FUNC
+     CHECK-FUNC FONT-FUNC GLYPH-FUNC)
 
 FONT-SRC is the font source: builtin, bdf, pcf, or vflib.
 
@@ -544,342 +440,230 @@ PROLOGUE-FUNC is a function to generate PostScript code which define several
 PostScript procedures that will be called by FONT-FUNC and GLYPHS-FUNC.  It is
 called with no argument, and should return a list of strings.
 
+CHECK-FUNC is a function to check if a font is available or not.
+It is called with one argument FONT-SPEC, and should return non-nil iff the
+font specified in FONT-SPEC is available.
+
 FONT-FUNC is a function to generate PostScript code which define a new font.
 It is called with one argument FONT-SPEC, and should return a list of strings.
 
-GLYPHS-FUNC is a function to generate PostScript code which define glyphs of
-characters.  It is called with three arguments FONT-SPEC, CODE-LIST, and BYTES,
-and should return a list of strings.")
-
-(defun ps-mule-init-external-library (font-spec)
-  "Initialize external library specified by FONT-SPEC for PostScript printing.
-See the documentation of `ps-mule-get-font-spec' for FONT-SPEC's meaning."
-  (let* ((font-src (ps-mule-font-spec-src font-spec))
-        (slot (assq font-src ps-mule-external-libraries)))
+GLYPH-FUNC is a function to generate PostScript code which define glyphs of
+characters.  It is called with two arguments FONT-SPEC and CODE, and should
+return a list of strings.")
+
+(defsubst ps-mule-exlib-feature (exlib) (nth 1 exlib))
+(defsubst ps-mule-exlib-initialized-p (exlib) (nth 2 exlib))
+(defsubst ps-mule-exlib-set-initialized-p (exlib val)
+  (setcar (nthcdr 2 exlib) val))
+(defsubst ps-mule-exlib-prologue (exlib) (nth 3 exlib))
+(defsubst ps-mule-exlib-check (exlib) (nth 4 exlib))
+(defsubst ps-mule-exlib-font (exlib) (nth 5 exlib))
+(defsubst ps-mule-exlib-glyph (exlib) (nth 6 exlib))
+
+(defun ps-mule-init-external-library (exlib)
+  "Initialize external library specified by EXLIB for PostScript printing.
+See the documentation of `ps-mule-external-libraries' for EXLIB's meaning."
+  (or (ps-mule-exlib-initialized-p exlib)
+      (let ((prologue-func (ps-mule-exlib-prologue exlib)))
+       (if prologue-func
+           (let ((feature (ps-mule-exlib-feature exlib)))
+             (if feature
+                 (require feature))
+             (ps-output-prologue (funcall prologue-func))))
+       (ps-mule-exlib-set-initialized-p exlib t))))
+
+(defvar ps-mule-output-list nil)
+
+(defun ps-mule-check-font (font-spec)
+  "Check if a font specified in FONT-SPEC is available or not."
+  (let ((font-src (ps-mule-font-spec-src font-spec)))
     (or (not font-src)
-       (nth 2 slot)
-       (let ((func (nth 3 slot)))
-         (if func
-             (progn
-               (require (nth 1 slot))
-               (ps-output-prologue (funcall func))))
-         (setcar (nthcdr 2 slot) t)))))
-
-;; Cached glyph information of fonts, alist of:
-;;     (FONT-NAME ((FONT-TYPE-NUMBER . SCALED-FONT-NAME) ...)
-;;      cache CODE0 CODE1 ...)
-(defvar ps-mule-font-cache nil)
-
-(defun ps-mule-generate-font (font-spec charset &optional header-p)
-  "Generate PostScript codes to define a new font in FONT-SPEC for CHARSET.
-
-If optional 3rd arg HEADER-P is non-nil, generate codes to define a header
-font."
-  (let* ((font-name (ps-mule-font-spec-name font-spec))
-        (font-name (if (consp font-name) (car font-name) font-name))
-        (font-cache (assoc font-name ps-mule-font-cache))
-        (font-src (ps-mule-font-spec-src font-spec))
-        (func (nth 4 (assq font-src ps-mule-external-libraries)))
-        (font-size (if header-p (if (eq ps-current-font 0)
-                                    ps-header-title-font-size-internal
-                                  ps-header-font-size-internal)
-                     ps-font-size-internal))
-        (current-font (+ ps-current-font (if header-p 10 0)))
-        (scaled-font-name
-         (cond (header-p
-                (format "h%d" ps-current-font))
-               ((eq charset 'ascii)
-                (format "f%d" ps-current-font))
-               (t
-                (format "f%02x-%d" (charset-id charset) ps-current-font)))))
-    (and func (not font-cache)
-        (ps-output-prologue (funcall func charset font-spec)))
-    (ps-output-prologue
-     (list (format "/%s %f /%s Def%sFontMule\n"
-                  scaled-font-name font-size font-name
-                  (if (or header-p
-                          (eq ps-mule-current-charset 'ascii))
-                      "Ascii" ""))))
-    (if font-cache
-       (setcar (cdr font-cache)
-               (cons (cons current-font scaled-font-name)
-                     (nth 1 font-cache)))
-      (setq font-cache (list font-name
-                            (list (cons current-font scaled-font-name))
-                            'cache)
-           ps-mule-font-cache (cons font-cache ps-mule-font-cache)))
-    font-cache))
-
-(defun ps-mule-generate-glyphs (font-spec code-list)
-  "Generate PostScript codes which generate glyphs for CODE-LIST of FONT-SPEC."
-  (let* ((font-src (ps-mule-font-spec-src font-spec))
-        (func (nth 5 (assq font-src ps-mule-external-libraries))))
-    (and func
-        (ps-output-prologue
-         (funcall func font-spec code-list
-                  (ps-mule-font-spec-bytes font-spec))))))
-
-(defun ps-mule-prepare-font (font-spec string charset
-                                      &optional no-setfont header-p)
-  "Generate PostScript codes to print STRING of CHARSET by font FONT-SPEC.
-
-The generated code is inserted on prologue part except the code that sets the
-current font (using PostScript procedure `FM').
-
-If optional 4th arg NO-SETFONT is non-nil, don't generate the code for setting
-the current font.
-
-If optional 5th arg HEADER-P is non-nil, generate a code for setting a header
-font."
-  (let* ((font-name (ps-mule-font-spec-name font-spec))
-        (font-name (if (consp font-name) (car font-name) font-name))
-        (current-font (+ ps-current-font (if header-p 10 0)))
-        (font-cache (assoc font-name ps-mule-font-cache)))
-    (or (and font-cache (assq current-font (nth 1 font-cache)))
-       (setq font-cache (ps-mule-generate-font font-spec charset header-p)))
-    (or no-setfont
-       (let ((new-font (cdr (assq current-font (nth 1 font-cache)))))
-         (or (equal new-font ps-last-font)
-             (progn
-               (ps-output (format "/%s FM\n" new-font))
-               (setq ps-last-font new-font)))))
-    (if (nth 5 (assq (ps-mule-font-spec-src font-spec)
-                    ps-mule-external-libraries))
-       ;; We have to generate PostScript codes which define glyphs.
-       (let* ((cached-codes (nthcdr 2 font-cache))
-              (bytes (ps-mule-font-spec-bytes font-spec))
-              (len (length string))
-              (i 0)
-              newcodes code)
-         (while (< i len)
-           (setq code (if (= bytes 1)
-                          (aref string i)
-                        (+ (* (aref string i) 256) (aref string (1+ i)))))
-           (or (memq code cached-codes)
-               (progn
-                 (setq newcodes (cons code newcodes))
-                 (setcdr cached-codes (cons code (cdr cached-codes)))))
-           (setq i (+ i bytes)))
-         (and newcodes
-              (ps-mule-generate-glyphs font-spec newcodes))))))
+       (let ((exlib (assq font-src ps-mule-external-libraries)))
+         (ps-mule-init-external-library exlib)
+         (or (not (ps-mule-exlib-check exlib))
+             (funcall (ps-mule-exlib-check exlib) font-spec))))))
 
-;;;###autoload
-(defun ps-mule-prepare-ascii-font (string)
-  "Setup special ASCII font for STRING.
-STRING should contain only ASCII characters."
-  (let ((font-spec
-        (ps-mule-get-font-spec
-         'ascii
-         (car (nth ps-current-font (ps-font-alist 'ps-font-for-text))))))
-    (and font-spec
-        (ps-mule-prepare-font font-spec string 'ascii))))
-
-;;;###autoload
-(defun ps-mule-set-ascii-font ()
-  (unless (eq ps-mule-current-charset 'ascii)
-    (ps-set-font ps-current-font)
-    (setq ps-mule-current-charset 'ascii)))
-
-;; List of charsets of multi-byte characters in a text being printed.
-;; If the text doesn't contain any multi-byte characters (i.e. only ASCII),
-;; the value is nil.
-(defvar ps-mule-charset-list nil)
+(defun ps-mule-prepare-font (font-spec)
+  "Generate PostScript codes defining a new font of FONT-SPEC for charset."
+  (let* ((font-src (ps-mule-font-spec-src font-spec))
+        (exlib (assq font-src ps-mule-external-libraries))
+        (id (ps-mule-font-spec-id font-spec))
+        (ftag (format "%02X" id))
+        (font-func (ps-mule-exlib-font exlib))
+        output-list)
+    (if font-func
+       (setq output-list (funcall font-func font-spec))
+      (setq output-list
+           (format "/F%s /%s findfont def\n"
+                   ftag (or (ps-mule-font-spec-name font-spec) "Courier")))
+      (ps-mule-font-spec-set-extra font-spec t))
+    (and output-list
+        (nconc ps-mule-output-list (list output-list)))))
+
+(defun ps-mule-prepare-glyph (char font-spec)
+  "Generate PostScript codes to print CHAR by FONT-SPEC.
+
+If CHAR is a cons (FROM TO), generate codes for characters
+specified by the character code range FROM and TO.
+
+The generated code is inserted on prologue part."
+  (if (vectorp font-spec)
+      (progn
+       (or (ps-mule-font-spec-extra font-spec)
+           (ps-mule-prepare-font font-spec))
+       (let ((glyph-func (ps-mule-exlib-glyph
+                          (assq (ps-mule-font-spec-src font-spec)
+                                ps-mule-external-libraries))))
+         (if glyph-func
+             (let (from to output-list)
+               (if (consp char)
+                   (setq from (car char) to (cdr char))
+                 (setq from char to char))
+               (while (<= from to)
+                 (setq output-list
+                       (funcall glyph-func font-spec from))
+                 (and output-list
+                      (ps-output-prologue output-list))
+                 (setq from (1+ from)))))))))
 
 ;; This is a PostScript code inserted in the header of generated PostScript.
 (defconst ps-mule-prologue
   "%%%% Start of Mule Section
 
-%% Working dictionary for general use.
-/MuleDict 10 dict def
-
-%% Adjust /RelativeCompose properly by checking /BaselineOffset.
-/AdjustRelativeCompose {       % fontdict  |-  fontdict
-  dup length 2 add dict begin
-    { 1 index /FID ne { def } { pop pop } ifelse } forall
-    currentdict /BaselineOffset known {
-       BaselineOffset false eq { /BaselineOffset 0 def } if
-    } {
-      /BaselineOffset 0 def
-    } ifelse
-    currentdict /RelativeCompose known not {
-      /RelativeCompose [ 0 0.1 ] def
-    } {
-      RelativeCompose false ne {
-       [ BaselineOffset RelativeCompose BaselineOffset add
-         [ FontMatrix { FontSize div } forall ] transform ]
-       /RelativeCompose exch def
-      } if
-    } ifelse
-    currentdict
-  end
-} def
-
-%% Define already scaled font for non-ASCII character sets.
-/DefFontMule {                 % fontname size basefont  |-  --
-  findfont exch scalefont AdjustRelativeCompose definefont pop
+/Latin1Encoding {      % newname fontname  |  font
+    findfont dup length dict begin
+       { 1 index /FID ne { def } { pop pop } ifelse } forall
+        /Encoding ISOLatin1Encoding def
+       currentdict
+    end
+    definefont
 } bind def
 
-%% Define already scaled font for ASCII character sets.
-/DefAsciiFontMule {            % fontname size basefont  |-
-  MuleDict begin
-  findfont dup /Encoding get /ISOLatin1Encoding exch def
-  exch scalefont AdjustRelativeCompose reencodeFontISO
-  end
-} def
-
-/CurrentFont false def
-
-%% Set the specified font to use.
-%% For non-ASCII font, don't install Ascent, etc.
-/FM {                          %  fontname  |-  --
-    /font exch def
-    font /f0 eq font /f1 eq font /f2 eq font /f3 eq or or or {
-      font F
-    } {
-      font findfont setfont
-    } ifelse
+%% Redefine fonts for multiple charsets.
+/ReDefFont {                % fontname encoding fdepvector size  |  -
+  20 dict begin
+  3 index findfont {
+    1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse
+  } forall
+  /FontType 0 def
+  /FMapType 3 def
+  /EscChar 0 def
+  % FontMatrix ::= [ size 0 0 size 0 0 ]
+  /FontMatrix exch [ exch dup 0 exch 0 exch 0 0 ] def
+  /FDepVector exch def
+  /Encoding exch def
+  currentdict
+  end                  % fontname dic
+  definefont pop
 } bind def
-
-%% Show vacant box for characters which don't have appropriate font.
-/SB {                          % count column |-  --
-    SpaceWidth mul /w exch def
-    1 exch 1 exch { %for
-       pop
-       gsave
-       0 setlinewidth
-       0 Descent rmoveto w 0 rlineto
-       0 LineHeight rlineto w neg 0 rlineto closepath stroke
-       grestore
-       w 0 rmoveto
-    } for
-} bind def
-
-%% Flag to tell if we are now handling a composition.  This is
-%% defined here because both composition handler and bitmap font
-%% handler require it.
-/Composing false def
-
-%%%% End of Mule Section
-
 "
   "PostScript code for printing multi-byte characters.")
 
 (defvar ps-mule-prologue-generated nil)
 
+;; EscChar used in generated composite fonts.
+(defconst ps-mule-esc-char 0)
+
 (defun ps-mule-prologue-generated ()
   (unless ps-mule-prologue-generated
     (ps-output-prologue ps-mule-prologue)
+    (ps-output-prologue
+     (format "\n/EscChar %d def\n\n%%%% End of Mule Section\n\n"
+            ps-mule-esc-char))
     (setq ps-mule-prologue-generated t)))
 
-(defun ps-mule-find-wrappoint (from to char-width &optional composition)
-  "Find the longest sequence which is printable in the current line.
-
-The search starts at FROM and goes until TO.
-
-Optional 4th arg COMPOSITION, if non-nil, is information of
-composition starting at FROM.
-
-If COMPOSITION is nil, it is assumed that all characters between FROM
-and TO belong to a charset in `ps-mule-current-charset'.  Otherwise,
-it is assumed that all characters between FROM and TO belong to the
-same composition.
-
-CHAR-WIDTH is the average width of ASCII characters in the current font.
-
-Returns the value:
+(defun ps-mule-encode-region (from to font-spec-table)
+  "Generate PostScript code for plotting characters in the region FROM and TO.
 
-       (ENDPOS . RUN-WIDTH)
+FONT-SPEC-TABLE is 0, 1, 2, 3, 4, 5, or 6, each represents font tags f0, f1,
+f2, f3, h0, h1, and H0 respectively."
+  (let* ((font-spec nil)
+        (font-id 0)
+        (string-list nil)
+        ;; At most 4-byte (EscChar FONT-ID CODE1 CODE2) per character.
+        (str (make-string (* (- to from) 4) 0))
+        (i 0))
+    (goto-char from)
+    (while (< (point) to)
+      (let* ((char (following-char))
+            (this-spec (ps-mule-get-font-spec char font-spec-table font-spec))
+            this-id)
+       (if (vectorp this-spec)
+           (setq this-id (ps-mule-font-spec-font-id this-spec))
+         ;; Can't print CHAR.   Replace it with '?'.
+         (setq char ??
+               this-spec (ps-mule-get-font-spec char font-spec-table nil)
+               this-id (ps-mule-font-spec-font-id this-spec)))
+       (or (= font-id this-id)
+           (progn
+             (if font-spec
+                 (setq string-list (cons (substring str 0 i) string-list)
+                       i 0))
+             (setq font-id this-id)
+             (or (= font-id 0)
+                 (progn
+                   (aset str i ps-mule-esc-char)
+                   (setq i (1+ i))
+                   (aset str i font-id)
+                   (setq i (1+ i))))))
+       (setq font-spec this-spec)
+       (if (< char 128)
+           (aset str i char)
+         (let* ((code (ps-mule-encode-char char font-spec)))
+           (if (= (ps-mule-font-spec-bytes font-spec) 1)
+               (aset str i code)
+             (aset str i (/ code 256))
+             (setq i (1+ i))
+             (aset str i (% code 256)))))
+       (setq i (1+ i))
+       (forward-char 1)))
+    (nreverse (cons (substring str 0 i) string-list))))
+
+(defun ps-mule-plot-composition (composition font-spec-table)
+  "Generate PostScript code for plotting COMPOSITION with FONT-SPEC-TABLE."
+  (ps-output "[")
+  (let ((components (copy-sequence (nth 2 composition)))
+       (font-spec nil))
+    (dotimes (i (length components))
+      (let ((elt (aref components i))
+           this-spec)
+       (if (consp elt)
+           ;; ELT is a composition rule.
+           (ps-output (format " %d" (encode-composition-rule elt)))
+         ;; ELT is a glyph character.
+         (setq this-spec
+               (ps-mule-get-font-spec elt font-spec-table font-spec))
+         (or (vectorp this-spec)
+             ;; Can't print CHAR.   Replace it with '?'.
+             (setq elt ??
+                   this-spec
+                   (ps-mule-get-font-spec elt font-spec-table font-spec)))
+         (setq font-spec this-spec)
+         (let* ((bytes (ps-mule-font-spec-bytes font-spec))
+                (code (ps-mule-encode-char elt font-spec))
+                (font-id (ps-mule-font-spec-font-id font-spec))
+                (str (make-string (if (= font-id 0) 1 (+ 2 bytes)) 0)))
+           (if (= font-id 0)
+               (aset str 0 code)
+             (aset str 0 ps-mule-esc-char)
+             (aset str 1 font-id)
+             (if (= bytes 1)
+                 (aset str 2 code)
+               (aset str 2 (/ code 256))
+               (aset str 3 (% code 256))))
+           (ps-output "[")
+           (ps-output-string str)
+           (ps-output (if (eq (ps-mule-font-spec-src font-spec) 'bdf)
+                          (format "/C%02X-%X" (ps-mule-font-spec-id font-spec)
+                                  elt)
+                        "false"))
+           (ps-output "]"))))))
+  (ps-output " ] " (if (nth 3 composition) "RLC" "RBC") "\n"))
 
-Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of
-the sequence."
-  (if (or composition (eq ps-mule-current-charset 'composition))
-      ;; We must draw one char by one.
-      (let ((run-width (if composition
-                          (nth 5 composition)
-                        (* (char-width (char-after from)) char-width))))
-       (if (> run-width ps-width-remaining)
-           (cons from ps-width-remaining)
-         (cons (if composition
-                   (nth 1 composition)
-                 (1+ from))
-               run-width)))
-    ;; We assume that all characters in this range have the same width.
-    (setq char-width (* char-width (charset-width ps-mule-current-charset)))
-    (let ((run-width (* (abs (- from to)) char-width)))
-      (if (> run-width ps-width-remaining)
-         (cons (min to
-                    (save-excursion
-                      (goto-char from)
-                      (forward-point
-                       (truncate (/ ps-width-remaining char-width)))))
-               ps-width-remaining)
-       (cons to run-width)))))
-
-;;;###autoload
 (defun ps-mule-plot-string (from to &optional bg-color)
   "Generate PostScript code for plotting characters in the region FROM and TO.
 
-It is assumed that all characters in this region belong to the same charset.
-
-Optional argument BG-COLOR specifies background color.
-
-Returns the value:
-
-       (ENDPOS . RUN-WIDTH)
-
-Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of
-the sequence."
-  (let ((ch (char-after from)))
-    (setq ps-mule-current-charset
-         (char-charset (or (aref ps-print-translation-table ch) ch))))
-  (let* ((wrappoint (ps-mule-find-wrappoint
-                    from to (ps-avg-char-width 'ps-font-for-text)))
-        (to (car wrappoint))
-        (font-type (car (nth ps-current-font
-                             (ps-font-alist 'ps-font-for-text))))
-        (font-spec (ps-mule-get-font-spec ps-mule-current-charset font-type))
-        (string (buffer-substring-no-properties from to)))
-    (dotimes (i (length string))
-      (let ((ch (aref ps-print-translation-table (aref string i))))
-       (if ch
-           (aset string i ch))))
-    (cond
-     ((= from to)
-      ;; We can't print any more characters in the current line.
-      nil)
-
-     (font-spec
-      ;; We surely have a font for printing this character set.
-      (ps-output-string (ps-mule-string-encoding font-spec string))
-      (ps-output " S\n"))
-
-     ((eq ps-mule-current-charset 'latin-iso8859-1)
-      ;; Latin-1 can be printed by a normal ASCII font.
-      (ps-output-string (ps-mule-string-ascii string))
-      (ps-output " S\n"))
-
-     ;; This case is obsolete for Emacs 21.
-     ((eq ps-mule-current-charset 'composition)
-      (ps-mule-plot-composition from (1+ from) bg-color))
-
-     (t
-      ;; No way to print this charset.  Just show a vacant box of an
-      ;; appropriate width.
-      (ps-output (format "%d %d SB\n"
-                        (length string)
-                        (if (eq ps-mule-current-charset 'composition)
-                            (char-width (char-after from))
-                          (charset-width ps-mule-current-charset))))))
-    wrappoint))
-
-;;;###autoload
-(defun ps-mule-plot-composition (from to &optional bg-color)
-  "Generate PostScript code for plotting composition in the region FROM and TO.
-
-It is assumed that all characters in this region belong to the same
-composition.
-
-Optional argument BG-COLOR specifies background color.
+Optional argument BG-COLOR is ignored.
 
 Returns the value:
 
@@ -887,98 +671,100 @@ Returns the value:
 
 Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of
 the sequence."
-  (let* ((composition (find-composition from nil nil t))
-        (wrappoint (ps-mule-find-wrappoint
-                    from to (ps-avg-char-width 'ps-font-for-text)
-                    composition))
-        (to (car wrappoint))
-        (font-type (car (nth ps-current-font
-                             (ps-font-alist 'ps-font-for-text)))))
-    (if (< from to)
-       ;; We can print this composition in the current line.
-       (let ((components (nth 2 composition)))
-         (ps-mule-plot-components
-          (ps-mule-prepare-font-for-components components font-type)
-          (if (nth 3 composition) "RLC" "RBC"))))
-    wrappoint))
-
-;; Prepare font of FONT-TYPE for printing COMPONENTS.  By side effect,
-;; change character elements in COMPONENTS to the form:
-;;     ENCODED-STRING or (FONTNAME . ENCODED-STRING)
-;; and change rule elements to the encoded value (integer).
-;; The latter form is used if we much change font for the character.
-
-(defun ps-mule-prepare-font-for-components (components font-type)
-  (dotimes (i (length components))
-    (let ((elt (aref components i)))
-      (if (consp elt)
-         ;; ELT is a composition rule.
-         (setq elt (encode-composition-rule elt))
-       ;; ELT is a glyph character.
-       (let* ((charset (char-charset elt))
-              (font (or (eq charset ps-mule-current-charset)
-                        (if (eq charset 'ascii)
-                            (format "/f%d" ps-current-font)
-                          (format "/f%02x-%d"
-                                  (charset-id charset) ps-current-font))))
-               str)
-         (setq ps-mule-current-charset charset
-               str (ps-mule-string-encoding
-                    (ps-mule-get-font-spec charset font-type)
-                    (char-to-string elt)
-                    'no-setfont))
-         (if (stringp font)
-             (setq elt (cons font str) ps-last-font font)
-           (setq elt str))))
-      (aset components i elt)))
-  components)
-
-(defun ps-mule-plot-components (components tail)
-  (let ((elt (aref components 0))
-       (len (length components))
-       (i 1))
-    (ps-output "[ ")
-    (if (stringp elt)
-       (ps-output-string elt)
-      (ps-output (car elt) " ")
-      (ps-output-string (cdr elt)))
-    (while (< i len)
-      (setq elt (aref components i) i (1+ i))
-      (ps-output " ")
-      (cond ((stringp elt)
-            (ps-output-string elt))
-           ((consp elt)
-            (ps-output (car elt) " ")
-            (ps-output-string (cdr elt)))
-           (t                          ; i.e. (integerp elt)
-            (ps-output (format "%d" elt)))))
-    (ps-output " ] " tail "\n")))
-
-;; Composite font support
+  (let* ((average-width (ps-avg-char-width 'ps-font-for-text))
+        (point (point))
+        (composition (find-composition from to nil t))
+        (stop (if composition (car composition) to))
+        (ascii-or-latin-1 "[\000-\377]+")
+        (run-width 0)
+        (endpos nil)
+        (font-spec-table (aref ps-mule-font-spec-tables
+                               (aref ps-mule-font-number-to-type
+                                     ps-current-font)))
+        width)
+    (goto-char from)
+    (while (not endpos)
+      (cond ((= (point) stop)
+            (if (= stop to)
+                (setq endpos stop)
+              (if (< from stop)
+                  (dolist (l (ps-mule-encode-region from (point)
+                                                    font-spec-table))
+                    (ps-output-string l)
+                    (ps-output " S\n")))
+              (setq width (* (nth 5 composition) average-width))
+              (if (< ps-width-remaining (+ run-width width))
+                  (setq endpos stop)
+                (ps-mule-plot-composition composition font-spec-table)
+                (setq run-width (+ run-width width)
+                      from (nth 1 composition))
+                (goto-char from)
+                (setq composition (find-composition (point) to nil t))
+                (setq stop (if composition (car composition) to)))))
+
+           ((looking-at ascii-or-latin-1)
+            (let ((nchars (- (min (match-end 0) stop) (point))))
+              (setq width (* average-width nchars))
+              (if (< ps-width-remaining (+ run-width width))
+                  (setq nchars (truncate (- ps-width-remaining run-width)
+                                         average-width)
+                        run-width (+ run-width (* nchars average-width))
+                        endpos (+ (point) nchars))
+                (setq run-width (+ run-width width))
+                (forward-char nchars))))
+
+           (t
+            (while (and (< (point) stop) (not endpos))
+              (setq width (char-width (following-char)))
+              (if (< ps-width-remaining (+ run-width width))
+                  (setq endpos (point))
+                (setq run-width (+ run-width width))
+                (forward-char 1))))))
+
+    (if (< from endpos)
+       (dolist (l (ps-mule-encode-region from endpos font-spec-table))
+         (ps-output-string l)
+         (ps-output " S\n")))
+    (goto-char point)
+    (cons endpos run-width)))
+
+;; Character composition support
 
 (defvar ps-mule-composition-prologue-generated nil)
 
 (defconst ps-mule-composition-prologue
-  "%%%% Character composition handler
+  "%%%% Procedures for character composition.
 /RelativeCompositionSkip 0.4 def
 
 %% Get a bounding box (relative to currentpoint) of STR.
-/GetPathBox {                  % str  |-  --
-    gsave
-    currentfont /FontType get 3 eq { %ifelse
-       stringwidth pop pop
+/GetPathBox {                  % [ str cname ]  |  -
+    dup 1 get dup false ne {
+       BitmapDict exch get /bmp exch def
+       %% bmp ::= [ DWIDTH WIDTH HEIGHT XOFF YOFF BITMAP RELATIVE-COMPOSE]
+       /LLY bmp 4 get def
+       /URY LLY bmp 2 get add def
+       /RelativeCompose bmp 6 get dup false ne {
+           dup LLY le { pop 1 } { URY ge { -1 } { 0 } ifelse } ifelse
+       } {
+           pop 0
+       } ifelse def
+       dup 0 get stringwidth pop dup /WIDTH exch def bmp 0 get div
+       dup LLY mul /LLY exch def
+       URY mul /URY exch def   
     } {
-       currentpoint /y exch def /x exch def
-       false charpath flattenpath pathbbox
-       y sub /URY exch def x sub /URX exch def
-       y sub /LLY exch def x sub /LLX exch def
+       pop
+       dup 0 get stringwidth pop /WIDTH exch def
+       gsave 0 0 moveto
+       dup 0 get false charpath flattenpath pathbbox
+       /URY exch def pop /LLY exch def pop
+       grestore
+       /RelativeCompose 0 def
     } ifelse
-    grestore
 } bind def
 
-%% Apply effects (underline, strikeout, overline, box) to the
-%% rectangle specified by TOP BOTTOM LEFT RIGHT.
-/SpecialEffect {                                       % --  |-  --
+%% Apply effects except for shadow and outline to the rectangle
+%% specified by TOP BOTTOM LEFT RIGHT.
+/SpecialEffect {               % --  |  --
     currentpoint dup TOP add /yy exch def BOTTOM add /YY exch def
     dup LEFT add /xx exch def RIGHT add /XX exch def
     %% Adjust positions for future shadowing.
@@ -996,579 +782,452 @@ the sequence."
     Effect 16 and 0 ne { false 0 doBox } if            % box
 } def
 
-%% Show STR with effects (shadow, outline).
-/ShowWithEffect {                                      % str  |-  --
-    Effect 8 and 0 ne { dup doShadow } if
-    Effect 32 and 0 ne { true doOutline } { show } ifelse
-} def
-
-%% Draw COMPONENTS which have the form [ font0? [str0 xoff0 yoff0] ... ].
-/ShowComponents {                                      % components  |-  -
-    LEFT 0 lt { LEFT neg 0 rmoveto } if
-    {
-       dup type /nametype eq {                         % font
-           FM
-       } {                                             % [ str xoff yoff ]
-           gsave
-           aload pop rmoveto ShowWithEffect
-           grestore
-       } ifelse
+%% Draw COMPONENTS which has the form [ [str0 xoff0 yoff0] ... ] with
+%% effects shadow and outline.
+/ShowComponents {              % components  |  -
+    gsave
+    {  gsave aload pop rmoveto
+       Effect 8 and 0 ne { dup doShadow } if
+       Effect 32 and 0 ne { true doOutline } { show } ifelse
+       grestore
     } forall
+    grestore
     RIGHT 0 rmoveto
 } def
 
 %% Show relative composition.
-/RLC {         % [ font0? str0 font1? str1 ... fontN? strN ]  |-  --
+/RLC {        % [[str0 cname0] [str1 cname1] ... [strN cnameN]]  |  -
     /components exch def
-    /Composing true def
-    /first true def
-    gsave
-    [ components {
-       /elt exch def
-       elt type /nametype eq {                         % font
-           elt dup FM
-       } { first {                                     % first string
-           /first false def
-           elt GetPathBox
-           %% Bounding box of overall glyphs.
-           /LEFT LLX def
-           /RIGHT URX def
-           /TOP URY def
-           /BOTTOM LLY def
-           currentfont /RelativeCompose known {
-               /relative currentfont /RelativeCompose get def
-               relative false eq {
-                   %% Disable relative composition by setting sufficiently low
-                   %% and high positions.
-                   /relative [ -100000 100000 ] def
-               } if
+    [                          % push [str xoff yoff] one by one
+    [ components 0 get GetPathBox aload pop pop 0 0 ]
+    %% Bounding box of overall glyphs.
+    /LEFT 0 def
+    /RIGHT WIDTH def
+    /TOP URY def
+    /BOTTOM LLY def
+       
+    1 1 components length 1 sub {
+       components exch get
+       [ exch
+           GetPathBox
+           aload pop pop                               % str
+           0                                           % xoff
+           RelativeCompose 1 eq {          % compose on TOP
+               TOP LLY sub RelativeCompositionSkip add % yoff
+               /TOP TOP URY LLY sub add RelativeCompositionSkip add def
+           } { RelativeCompose -1 eq { % compose under BOTTOM
+               BOTTOM URY sub RelativeCompositionSkip sub % yoff
+               /BOTTOM BOTTOM URY LLY sub sub
+               RelativeCompositionSkip sub def
            } {
-               /relative [ -100000 100000 ] def
-           } ifelse
-           [ elt 0 0 ]
-       } {                                             % other strings
-           elt GetPathBox
-           [ elt                                       % str
-             LLX 0 lt { RIGHT } { 0 } ifelse           % xoff
-             LLY relative 1 get ge {                   % compose on TOP
-                 TOP LLY sub RelativeCompositionSkip add       % yoff
-                 /TOP TOP URY LLY sub add RelativeCompositionSkip add def
-             } { URY relative 0 get le {               % compose under BOTTOM
-                 BOTTOM URY sub RelativeCompositionSkip sub % yoff
-                 /BOTTOM BOTTOM URY LLY sub sub
-                       RelativeCompositionSkip sub def
-             } {
-                 0                                     % yoff
-                 URY TOP gt { /TOP URY def } if
-                 LLY BOTTOM lt { /BOTTOM LLY def } if
-             } ifelse } ifelse
-             ]
-           URX RIGHT gt { /RIGHT URX def } if
-       } ifelse } ifelse
-    } forall ] /components exch def
-    grestore
-
-    %% Reflect special effects.
-    SpecialEffect
-
-    %% Draw components while ignoring effects other than shadow and outline.
-    components ShowComponents
-    /Composing false def
-
+               0                                       % yoff
+               URY TOP gt { /TOP URY def } if
+               LLY BOTTOM lt { /BOTTOM LLY def } if
+           } ifelse } ifelse
+       ]
+    } for
+    ]
+    SpecialEffect              % Reflect special effects.
+    ShowComponents             % Draw components.
 } def
 
 %% Show rule-base composition.
-/RBC {         % [ font0? str0 rule1 font1? str1 rule2 ... strN ]  |-  --
+/RBC { % [[str0 cname0] rule1 [str1 cname0] rule2 ... [strN cnameN]]  |  -
     /components exch def
-    /Composing true def
-    /first true def
-    gsave
-    [ components {
-       /elt exch def
-       elt type /nametype eq {                         % font
-           elt dup FM
-       } { elt type /integertype eq {                  % rule
-           %% This RULE decoding should be compatible with macro
+    [                          % push [str xoff yoff] one by one
+    [ components 0 get GetPathBox aload pop pop 0 0 ]
+    %% Bounding box of overall glyphs.
+    /LEFT 0 def
+    /RIGHT WIDTH def
+    /TOP URY def
+    /BOTTOM LLY def
+    1 1 components length 1 sub {
+       components exch get /elt exch def
+       elt type /integertype eq {                      % rule
+           %% Do the same RULE decoding as the macro
            %% COMPOSITION_DECODE_RULE in emacs/src/composite.h.
            elt 12 idiv dup 3 mod /grefx exch def 3 idiv /grefy exch def
            elt 12 mod dup 3 mod /nrefx exch def 3 idiv /nrefy exch def
-       } { first {                                     % first string
-           /first false def
-           elt GetPathBox
-           %% Bounding box of overall glyphs.
-           /LEFT LLX def
-           /RIGHT URX def
-           /TOP URY def
-           /BOTTOM LLY def
-           /WIDTH RIGHT LEFT sub def
-           [ elt 0 0 ]
        } {                                             % other strings
+           [
            elt GetPathBox
-           /width URX LLX sub def
+           aload pop pop
            /height URY LLY sub def
-           /left LEFT [ 0 WIDTH 2 div WIDTH ] grefx get add
-               [ 0 width 2 div width ] nrefx get sub def
+           /left LEFT [ 0 RIGHT LEFT sub dup 2 div exch ] grefx get add
+               [ 0 WIDTH 2 div WIDTH ] nrefx get sub def
            /bottom [ TOP 0 BOTTOM TOP BOTTOM add 2 div ] grefy get
                [ height LLY neg 0 height 2 div ] nrefy get sub def
            %% Update bounding box
            left LEFT lt { /LEFT left def } if
-           left width add RIGHT gt { /RIGHT left width add def } if
-           /WIDTH RIGHT LEFT sub def
+           left WIDTH add RIGHT gt { /RIGHT left WIDTH add def } if
            bottom BOTTOM lt { /BOTTOM bottom def } if
            bottom height add TOP gt { /TOP bottom height add def } if
-           [ elt left LLX sub bottom LLY sub ]
-       } ifelse } ifelse } ifelse
-    } forall ] /components exch def
-    grestore
-
-    %% Reflect special effects.
-    SpecialEffect
+           left bottom LLY sub ]
+       } ifelse
+    } for
+    ]
 
-    %% Draw components while ignoring effects other than shadow and outline.
-    components ShowComponents
+    LEFT 0 lt {                        % Adjust xoff to the right.
+       dup { dup 1 get LEFT sub 1 exch put } forall
+       /RIGHT RIGHT LEFT sub def
+    } if
 
-    /Composing false def
+    SpecialEffect              % Reflect special effects.
+    ShowComponents             % Draw components.
 } def
-%%%% End of character composition handler
 
+%%%% End of procedures for character composition
 "
   "PostScript code for printing character composition.")
 
-(defun ps-mule-string-ascii (str)
-  (ps-set-font ps-current-font)
-  (string-as-unibyte (encode-coding-string str 'iso-latin-1)))
-
-;; Encode STR for a font specified by FONT-SPEC and return the result.
-;; If necessary, it generates the PostScript code for the font and glyphs to
-;; print STR.  If optional 4th arg HEADER-P is non-nil, it is assumed that STR
-;; is for headers.
-(defun ps-mule-string-encoding (font-spec str &optional no-setfont header-p)
-  (let ((encoding (ps-mule-font-spec-encoding font-spec)))
-    (setq str
-         (string-as-unibyte
-          (cond ((coding-system-p encoding)
-                 (encode-coding-string str encoding))
-                ((functionp encoding)
-                 (funcall encoding str))
-                (encoding
-                 (error "Invalid coding system or function: %s" encoding))
-                (t
-                 str))))
-    (if (ps-mule-font-spec-src font-spec)
-       (ps-mule-prepare-font font-spec str ps-mule-current-charset
-                             (or no-setfont header-p)
-                             header-p)
-      (or no-setfont
-         (ps-set-font ps-current-font)))
-    str))
+(defun ps-mule-composition-prologue-generated ()
+  (unless ps-mule-composition-prologue-generated
+    (ps-mule-prologue-generated)
+    (ps-output-prologue ps-mule-composition-prologue)
+    (setq ps-mule-composition-prologue-generated t)))
 
 ;; Bitmap font support
 
 (defvar ps-mule-bitmap-prologue-generated nil)
 
 (defconst ps-mule-bitmap-prologue
-  "%%%% Bitmap font handler
-
-/str7 7 string def             % working area
-
-%% We grow the dictionary one bunch (1024 entries) by one.
-/BitmapDictArray 256 array def
-/BitmapDictLength 1024 def
-/BitmapDictIndex -1 def
-
-/NewBitmapDict {               % --  |-  --
-    /BitmapDictIndex BitmapDictIndex 1 add def
-    BitmapDictArray BitmapDictIndex BitmapDictLength dict put
-} bind def
-
-%% Make at least one dictionary.
-NewBitmapDict
+  "%%%% Procedures for bitmap fonts.
 
-/AddBitmap {                   % gloval-charname bitmap-data  |-  --
-    BitmapDictArray BitmapDictIndex get
-    dup length BitmapDictLength ge {
-       pop
-       NewBitmapDict
-       BitmapDictArray BitmapDictIndex get
-    } if
-    3 1 roll put
-} bind def
-
-/GetBitmap {                   % gloval-charname  |-  bitmap-data
-    0 1 BitmapDictIndex { BitmapDictArray exch get begin } for
-    load
-    0 1 BitmapDictIndex { pop end } for
-} bind def
-
-%% Return a global character name which can be used as a key in the
-%% bitmap dictionary.
-/GlobalCharName {              % fontidx code1 code2  |-  gloval-charname
-    exch 256 mul add exch 65536 mul add 16777216 add 16 str7 cvrs 0 66 put
-    str7 cvn
-} bind def
-
-%% Character code holder for a 2-byte character.
-/FirstCode -1 def
-
-%% Glyph rendering procedure
-/BuildGlyphCommon {            % fontdict charname  |-  --
-    1 index /FontDimension get 1 eq { /FirstCode 0 store } if
-    NameIndexDict exch get     % STACK: fontdict charcode
-    FirstCode 0 lt { %ifelse
-       %% This is the first byte of a 2-byte character.  Just
-       %% remember it for the moment.
-       /FirstCode exch store
-       pop
-       0 0 setcharwidth
-    } {
-       1 index /FontSize get /size exch def
-       1 index /FontSpaceWidthRatio get /ratio exch def
-       1 index /FontIndex get exch FirstCode exch
-       GlobalCharName GetBitmap /bmp exch def
-       %% bmp == [ DWIDTH BBX-WIDTH BBX-HEIGHT BBX-XOFF BBX-YOFF BITMAP ]
-       Composing { %ifelse
-           /FontMatrix get [ exch { size div } forall ] /mtrx exch def
-           bmp 3 get bmp 4 get mtrx transform
-           /LLY exch def /LLX exch def
-           bmp 1 get bmp 3 get add bmp 2 get bmp 4 get add mtrx transform
-           /URY exch def /URX exch def
-       } {
-           pop
-       } ifelse
-       /FirstCode -1 store
-
-       bmp 0 get size div 0            % wx wy
-       setcharwidth                    % We can't use setcachedevice here.
-
-       bmp 1 get 0 gt bmp 2 get 0 gt and {
-           bmp 1 get bmp 2 get         % width height
-           true                        % polarity
-           [ size 0 0 size neg bmp 3 get neg bmp 2 get bmp 4 get add ] % matrix
-           bmp 5 1 getinterval cvx     % datasrc
-           imagemask
-       } if
-    } ifelse
-} bind def
-
-/BuildCharCommon {
-    1 index /Encoding get exch get
-    1 index /BuildGlyph get exec
-} bind def
-
-%% Bitmap font creator
-
-%% Common Encoding shared by all bitmap fonts.
-/EncodingCommon 256 array def
-%% Mapping table from character name to character code.
-/NameIndexDict 256 dict def
-0 1 255 { %for
-    /idx exch def
-    /idxname idx 256 add 16 (XXX) cvrs dup 0 67 put cvn def % `C' == 67
-    EncodingCommon idx idxname put
-    NameIndexDict idxname idx put
-} for
-
-/GlobalFontIndex 0 def
-
-%% fontname dim col fontsize relative-compose baseline-offset fbbx  |-  --
-/BitmapFont {
-    15 dict begin
-    /FontBBox exch def
+%% Create a base bitmap font.
+/NBF { % fontname fontsize relative-compose baseline-offset enc  |  --
+    11 dict begin
+    /FontType 3 def
+    /FontMatrix matrix def
+    /FontBBox [ 0 0 0 0 ] def
+    /Encoding exch def
     /BaselineOffset exch def
     /RelativeCompose exch def
     /FontSize exch def
-    /FontBBox [ FontBBox { FontSize div } forall ] def
-    FontBBox 2 get FontBBox 0 get sub exch div
-    /FontSpaceWidthRatio exch def
-    /FontDimension exch def
-    /FontIndex GlobalFontIndex def
-    /FontType 3 def
-    /FontMatrix matrix def
-    /Encoding EncodingCommon def
-    /BuildGlyph { BuildGlyphCommon } def
-    /BuildChar { BuildCharCommon } def
-    currentdict end
-    definefont pop
-    /GlobalFontIndex GlobalFontIndex 1 add def
-} bind def
-
-%% Define a new bitmap font.
-%% fontname dim col fontsize relative-compose baseline-offset fbbx  |-  --
-/NF {
-    /fbbx exch def
-    %% Convert BDF's FontBoundingBox to PostScript's FontBBox
-    [ fbbx 2 get fbbx 3 get
-      fbbx 2 get fbbx 0 get add fbbx 3 get fbbx 1 get add ]
-    BitmapFont
+    /FontMatrix [ 1 FontSize div 0 0 1 FontSize div 0 0 ] def
+    /BuildGlyph {              % fontdict charname  |  -
+       BitmapDict exch get /bmp exch def pop
+       %% bmp ::= [ DWIDTH WIDTH HEIGHT XOFF YOFF BITMAP RELATIVE-COMPOSE ]
+       /llx bmp 3 get def
+       /lly bmp 4 get def
+       /urx llx bmp 1 get add def
+       /ury lly bmp 2 get add def
+       bmp 0 get 0 llx lly urx ury setcachedevice
+       bmp 5 get length 0 gt {
+           llx ury translate
+           bmp 1 get bmp 2 get
+           true [ 1 0 0 -1 0 0 ] { bmp 5 get } imagemask
+       } if
+    } bind def
+    /BuildChar {               % fontdict byte  |  -
+       1 index /Encoding get exch get
+       1 index /BuildGlyph get exec
+    } bind def
+    dup currentdict end
+    definefont def
 } bind def
 
-%% Define a glyph for the specified font and character.
-/NG {                          % fontname charcode bitmap-data  |-  --
-    /bmp exch def
-    exch findfont dup /BaselineOffset get bmp 4 get add bmp exch 4 exch put
-    /FontIndex get exch
-    dup 256 idiv exch 256 mod GlobalCharName
-    bmp AddBitmap
+%% Create a parent font of 8/8 mapping.
+/NPF {                         % fontname encoding fdepvector  |  -
+    8 dict begin
+       /FontType 0 def
+       /FMapType 2 def
+       /FontMatrix matrix def
+       /FDepVector exch def
+       /Encoding exch def
+       dup currentdict
+    end
+    definefont def
 } bind def
-%%%% End of bitmap font handler
 
+%%%% End of procedures for bitmap fonts.
 ")
 
 ;; External library support.
 
+(defvar ps-mule-bitmap-dict-list nil)
+(defvar ps-mule-bitmap-font-record nil)
+
 ;; The following three functions are to be called from external
 ;; libraries which support bitmap fonts (e.g. `bdf') to get
 ;; appropriate PostScript code.
 
 (defun ps-mule-generate-bitmap-prologue ()
   (unless ps-mule-bitmap-prologue-generated
-    (setq ps-mule-bitmap-prologue-generated t)
+    (setq ps-mule-bitmap-prologue-generated t
+         ps-mule-bitmap-dict-list nil
+         ps-mule-bitmap-font-record (make-vector 1024 nil))
     (list ps-mule-bitmap-prologue)))
 
-(defun ps-mule-generate-bitmap-font (&rest args)
-  (list (apply 'format "/%s %d %d %f %S %d %S NF\n" args)))
-
-(defun ps-mule-generate-bitmap-glyph (font-name code dwidth bbx bitmap)
-  (format "/%s %d [ %d %d %d %d %d <%s> ] NG\n"
-         font-name code
-         dwidth (aref bbx 0) (aref bbx 1) (aref bbx 2) (aref bbx 3)
-         bitmap))
+(defun ps-mule-generate-bitmap-font (font-spec size relative-compose
+                                              baselie-offset bbx)
+  (let* ((id (ps-mule-font-spec-id font-spec))
+        (bytes (ps-mule-font-spec-bytes font-spec))
+        output-list)
+    (if (= bytes 1)
+       (setq output-list
+             (list (format "/E%02X [ 0 1 255 {pop /.notdef} for ] def\n" id)
+                   (format "%%%% %s\n" (ps-mule-font-spec-name font-spec))
+                   (format "/F%02X %f %S %d E%02X NBF\n" id size
+                           relative-compose baselie-offset id)))
+      (setq output-list
+           (list (list (format "/E%02X [ 0 1 255 { pop 0 } for ] def\n" id))
+                 (list (format "/V%02X [" id))
+                 " ] def\n"
+                 (format "%%%% %s\n" (ps-mule-font-spec-name font-spec))
+                 (format "/F%02X E%02X V%02X NPF\n" id id id))))
+    (aset ps-mule-bitmap-font-record id
+         (vector (= bytes 1) output-list
+                 size relative-compose baselie-offset bbx))
+    (if ps-mule-bitmap-dict-list
+       output-list
+      (setq ps-mule-bitmap-dict-list (list "/BitmapDict <<\n" ">> def\n"))
+      (cons ps-mule-bitmap-dict-list output-list))))
+
+(defun ps-mule-generate-bitmap-glyph (font-spec char code bitmap)
+  (let* ((id (ps-mule-font-spec-id font-spec))
+        ;; FONT-RECORD ::= ([(SUBFONT-OUTPUT-LIST ...) | t] 
+        ;;                  BASEFONT-OUTPUT-LIST SIZE REL-COMP B-OFFSET BBX)
+        (font-record (aref ps-mule-bitmap-font-record id))
+        enc-name
+        output-list)
+    (if (listp (aref font-record 0))
+       ;; This is a 2-dimensional font.  Create a subfont for this
+       ;; glyph if not yet created.
+       (let* ((high (/ code 256))
+              (id2 (+ (* id 256) high)))
+         (setq output-list (cdr (assq high (aref font-record 0)))
+               code (% code 256))
+         (or output-list
+             ;; We must create a subfont.
+             (let ((enc-list (car (aref font-record 1)))
+                   (fdep-list (nth 1 (aref font-record 1))))
+               (setq output-list
+                     (list
+                      (format "/E%04X [ 0 1 255 {pop /.notdef} for ] def\n"
+                              id2)
+                      (format "/F%04X %f %S %d E%04X NBF\n"
+                              id2 (aref font-record 2) (aref font-record 3)
+                              (aref font-record 4) id2)
+                      (format "E%02X %d %d put\n"
+                              id high (1- (length fdep-list)))))
+               (nconc enc-list (list output-list))
+               (nconc fdep-list (list (format " F%04X" id2)))
+               (aset font-record 0
+                     (cons (cons high output-list) (aref font-record 0)))))
+         (setq enc-name (format "%04X" id2)))
+      (setq output-list (aref font-record 1)
+           enc-name (format "%02X" id)))
+    (setcdr ps-mule-bitmap-dict-list
+           (cons (format "/C%02X-%X %s\n" id char bitmap)
+                 (cdr ps-mule-bitmap-dict-list)))
+    (setcdr output-list
+           (cons (format "E%s %d /C%02X-%X put\n" enc-name code id char)
+                 (cdr output-list))))
+  nil)
 
 ;; Mule specific initializers.
 
 ;;;###autoload
 (defun ps-mule-initialize ()
   "Initialize global data for printing multi-byte characters."
-  (setq ps-mule-font-cache nil
-       ps-mule-prologue-generated nil
+  (setq ps-mule-prologue-generated nil
        ps-mule-composition-prologue-generated nil
        ps-mule-bitmap-prologue-generated nil)
   (mapcar `(lambda (x) (setcar (nthcdr 2 x) nil))
          ps-mule-external-libraries))
 
-(defvar ps-mule-header-charsets nil)
-
-;;;###autoload
 (defun ps-mule-encode-header-string (string fonttag)
   "Generate PostScript code for ploting STRING by font FONTTAG.
-FONTTAG should be a string \"/h0\" or \"/h1\"."
-  (setq string (cond ((not (stringp string))
-                     "")
-                    ((multibyte-string-p string)
-                     (copy-sequence string))
-                    (t
-                     (string-make-multibyte string))))
-  (when ps-mule-header-charsets
-    (if (eq (car ps-mule-header-charsets) 'latin-iso8859-1)
-       ;; Latin1 characters can be printed by the standard PostScript
-       ;; font.  Converts the other non-ASCII characters to `?'.
-       (let ((len (length string)))
-         (dotimes (i len)
-           (or (memq (char-charset (aref string i)) '(ascii latin-iso8859-1))
-               (aset string i ??)))
-         (setq string (encode-coding-string string 'iso-latin-1)))
-      ;; We must prepare a font for the first non-ASCII and non-Latin1
-      ;; character in STRING.
-      (let* ((ps-current-font (if (string= fonttag "/h0") 0 1))
-            (ps-mule-current-charset (car ps-mule-header-charsets))
-            (font-type (car (nth ps-current-font
-                                 (ps-font-alist 'ps-font-for-header))))
-            (font-spec (ps-mule-get-font-spec ps-mule-current-charset
-                                              font-type)))
-       (if (or (not font-spec)
-               (/= (charset-dimension ps-mule-current-charset) 1))
-           ;; We don't have a proper font, or we can't print them on
-           ;; header because this kind of charset is not ASCII
-           ;; compatible.
-           (let ((len (length string)))
-             (dotimes (i len)
-               (or (memq (char-charset (aref string i))
-                         '(ascii latin-iso8859-1))
-                   (aset string i ??)))
-             (setq string (encode-coding-string string 'iso-latin-1)))
-         (let ((charsets (list 'ascii (car ps-mule-header-charsets)))
-               (len (length string)))
-           (dotimes (i len)
-             (or (memq (char-charset (aref string i)) charsets)
-                 (aset string i ??))))
-         (setq string (ps-mule-string-encoding font-spec string nil t))))))
-  string)
-
-(defun ps-mule-show-warning (charsets from to header-footer-list)
-  (let ((table (make-category-table))
-       (buf (current-buffer))
-       (max-unprintable-chars 15)
-       char-pos-list)
-    (define-category ?u "Unprintable charset" table)
-    (dolist (cs charsets)
-      (modify-category-entry (make-char cs) ?u table))
-    (with-category-table table
-      (save-excursion
-       (goto-char from)
-       (while (and (<= (length char-pos-list) max-unprintable-chars)
-                   (re-search-forward "\\cu" to t))
-         (or (aref ps-print-translation-table (preceding-char))
-             (push (cons (preceding-char) (1- (point))) char-pos-list)))))
-    (with-output-to-temp-buffer "*Warning*"
-      (with-current-buffer standard-output
-       (when char-pos-list
-         (let ((func #'(lambda (buf pos)
-                         (when (buffer-live-p buf)
-                           (pop-to-buffer buf)
-                           (goto-char pos))))
-               (more nil))
-           (if (>= (length char-pos-list) max-unprintable-chars)
-               (setq char-pos-list (cdr char-pos-list)
-                     more t))
-           (insert "These characters in the buffer can't be printed:\n")
-           (dolist (elt (nreverse char-pos-list))
-             (insert " ")
-             (insert-text-button (string (car elt))
-                                 :type 'help-xref
-                                 'help-echo
-                                 "mouse-2, RET: jump to this character"
-                                 'help-function func
-                                 'help-args (list buf (cdr elt)))
-             (insert ","))
-           (if more
-               (insert " and more...")
-             ;; Delete the last comma.
-             (delete-char -1))
-           (insert "\nClick them to jump to the buffer position,\n"
-                   (substitute-command-keys "\
-or \\[universal-argument] \\[what-cursor-position] will give information about them.\n"))))
-
-       (with-category-table table
-         (let (string-list)
-           (dolist (elt header-footer-list)
-             (when (stringp elt)
-               (when (string-match "\\cu+" elt)
-                 (setq elt (copy-sequence elt))
-                 (put-text-property (match-beginning 0) (match-end 0)
-                                    'face 'highlight elt)
-                 (while (string-match "\\cu+" elt (match-end 0))
-                   (put-text-property (match-beginning 0) (match-end 0)
-                                      'face 'highlight elt))
-                 (push elt string-list))))
-           (when string-list
-             (insert
-              "These highlighted characters in header/footer can't be printed:\n")
-             (dolist (elt string-list)
-               (insert "  " elt "\n")))))))))
+FONTTAG should be a string \"/h0\", \"/h1\", \"/L0\", or \"/H0\".
+Any other value is treated as \"/H0\"."
+  (with-temp-buffer
+    (insert string)
+    (ps-mule-encode-region (point-min) (point-max)
+                          (aref ps-mule-font-spec-tables
+                                (aref ps-mule-font-number-to-type
+                                      (cond ((string= fonttag "/h0") 4)
+                                            ((string= fonttag "/h1") 5)
+                                            ((string= fonttag "/L0") 6)
+                                            (t 0)))))))
 
 ;;;###autoload
 (defun ps-mule-begin-job (from to)
   "Start printing job for multi-byte chars between FROM and TO.
 It checks if all multi-byte characters in the region are printable or not."
-  (setq ps-mule-charset-list nil
-       ps-mule-header-charsets nil
-       ps-mule-font-info-database
-       (cond ((eq ps-multibyte-buffer 'non-latin-printer)
-              ps-mule-font-info-database-ps)
-             ((eq ps-multibyte-buffer 'bdf-font)
-              ps-mule-font-info-database-bdf)
-             ((eq ps-multibyte-buffer 'bdf-font-except-latin)
-              ps-mule-font-info-database-ps-bdf)
-             (t
-              ps-mule-font-info-database-default)))
-  (and (boundp 'enable-multibyte-characters)
-       enable-multibyte-characters
-       ;; Initialize `ps-mule-charset-list'.  If some characters aren't
-       ;; printable, warn it.
-       (let ((header-footer-list (ps-header-footer-string))
-            unprintable-charsets)
-        (setq ps-mule-charset-list
-              (delq 'ascii (delq 'eight-bit-control
-                                 (delq 'eight-bit-graphic 
-                                       (find-charset-region
-                                        from to ps-print-translation-table))))
-              ps-mule-header-charsets
-              (delq 'ascii (delq 'eight-bit-control
-                                 (delq 'eight-bit-graphic 
-                                       (find-charset-string
-                                        (mapconcat
-                                         'identity header-footer-list "")
-                                        ps-print-translation-table)))))
-        (dolist (cs ps-mule-charset-list)
-          (or (ps-mule-printable-p cs)
-              (push cs unprintable-charsets)))
-        (dolist (cs ps-mule-header-charsets)
-          (or (ps-mule-printable-p cs)
-              (memq cs unprintable-charsets)
-              (push cs unprintable-charsets)))
-        (when unprintable-charsets
-          (ps-mule-show-warning unprintable-charsets from to
-                                header-footer-list)
-          (or
-           (y-or-n-p "Font for some characters not found, continue anyway? ")
-           (error "Printing cancelled")))
-
-        (or ps-mule-composition-prologue-generated
-            (let ((use-composition (nth 2 (find-composition from to))))
-              (or use-composition
-                  (let (str)
-                    (while header-footer-list
-                      (setq str (car header-footer-list))
-                      (if (and (stringp str)
-                               (nth 2 (find-composition 0 (length str) str)))
-                          (setq use-composition t
-                                header-footer-list nil)
-                        (setq header-footer-list (cdr header-footer-list))))))
-              (when use-composition
-                (progn
-                  (ps-mule-prologue-generated)
-                  (ps-output-prologue ps-mule-composition-prologue)
-                  (setq ps-mule-composition-prologue-generated t)))))))
-
-  (setq ps-mule-current-charset 'ascii)
-
-  (if (or ps-mule-charset-list ps-mule-header-charsets)
-      (dolist (elt (append ps-mule-header-charsets ps-mule-charset-list))
-       (ps-mule-prologue-generated)
-       (ps-mule-init-external-library (ps-mule-get-font-spec elt 'normal))))
-
-  ;; If ASCII font is also specified in ps-mule-font-info-database,
-  ;; use it instead of what specified in ps-font-info-database.
-  (let ((font-spec (ps-mule-get-font-spec 'ascii 'normal)))
-    (if font-spec
-       (progn
-         (ps-mule-prologue-generated)
-         (ps-mule-init-external-library font-spec)
-         (let ((ps-current-font 0))
-           (dolist (font (ps-font-alist 'ps-font-for-text))
-             ;; Be sure to download a glyph for SPACE in advance.
-             (ps-mule-prepare-font (ps-mule-get-font-spec 'ascii font)
-                                   " " 'ascii 'no-setfont)
-             (setq ps-current-font (1+ ps-current-font)))))))
-
-  ;; If the header contains non-ASCII and non-Latin1 characters, prepare a font
-  ;; and glyphs for the first occurrence of such characters.
-  (if (and ps-mule-header-charsets
-          (not (eq (car ps-mule-header-charsets) 'latin-iso8859-1))
-          (= (charset-dimension (car ps-mule-header-charsets)) 1))
-      (let ((font-spec (ps-mule-get-font-spec (car ps-mule-header-charsets)
-                                             'normal)))
-       (if font-spec
-           ;; Be sure to download glyphs for "0123456789/" in advance for page
-           ;; numbering.
-           (let ((ps-current-font 0))
-             (ps-mule-prepare-font font-spec "0123456789/" 'ascii t t)))))
-
-  (if ps-mule-charset-list
-      ;; We must change this regexp for multi-byte buffer.
-      (setq ps-control-or-escape-regexp
-           (cond ((eq ps-print-control-characters '8-bit)
-                  "[^\040-\176]")
-                 ((eq ps-print-control-characters 'control-8-bit)
-                  (string-as-multibyte "[^\040-\176\240-\377]"))
-                 ((eq ps-print-control-characters 'control)
-                  (string-as-multibyte "[^\040-\176\200-\377]"))
-                 (t (string-as-multibyte "[^\000-\011\013\015-\377]"))))))
+  (auto-compose-region from to)
+  (if (and (not (find-composition from to))
+          (save-excursion
+            (goto-char from)
+            (= (skip-chars-forward "\x00-\xFF" to) to)))
+      ;; All characters can be printed by normal PostScript fonts.
+      (setq ps-basic-plot-string-function 'ps-basic-plot-string
+           ps-encode-header-string-function 'identity)
+    (setq ps-basic-plot-string-function 'ps-mule-plot-string
+         ps-encode-header-string-function 'ps-mule-encode-header-string
+         ps-mule-font-info-database
+         (cond ((eq ps-multibyte-buffer 'non-latin-printer)
+                ps-mule-font-info-database-ps)
+               ((eq ps-multibyte-buffer 'bdf-font)
+                ps-mule-font-info-database-bdf)
+               ((eq ps-multibyte-buffer 'bdf-font-except-latin)
+                ps-mule-font-info-database-ps-bdf)
+               (t
+                ps-mule-font-info-database-default)))
+
+    ;; Be sure to have font information for Latin-1.
+    (or (assq 'iso-8859-1 ps-mule-font-info-database)
+       (setq ps-mule-font-info-database
+             (cons '(iso-8859-1 (normal nil nil))
+                   ps-mule-font-info-database)))
+
+    ;; Generate ps-mule-font-spec-tables.
+    (let ((font-spec-alist (make-vector 4 nil))
+         (id-max 0)
+         (font-id 0)
+         font-info-list)
+      ;; Generate properly ordered font-info-list from
+      ;; ps-mule-font-info-database.
+      (let ((charset-list
+            (copy-sequence (get-language-info current-language-environment
+                                              'charset))))
+       (setq charset-list (cons 'iso-8859-1 (delq 'iso-8859-1 charset-list)))
+       (dolist (charset charset-list)
+         (let ((font-info (assq charset ps-mule-font-info-database)))
+           (and font-info
+                (setq font-info-list (cons font-info font-info-list)))))
+       (dolist (font-info ps-mule-font-info-database)
+         (or (memq (car font-info) charset-list)
+             (setq font-info-list (cons font-info font-info-list))))
+       (setq font-info-list (nreverse font-info-list)))
+
+      ;; Store FONT-SPECs in each element of font-spec-alist.
+      (dolist (font-info font-info-list)
+       (let ((font-spec-vec (make-vector 4 nil))
+             (charset (car font-info))
+             encoding font-spec)
+         (dolist (e (cdr font-info))
+           (setq encoding (or (nth 3 e) charset)
+                 font-spec (vector id-max charset font-id
+                                   (nth 1 e) (nth 2 e) encoding
+                                   (or (nth 4 e) (charset-dimension encoding))
+                                   nil)
+                 id-max (1+ id-max))
+           (if (ps-mule-check-font font-spec)
+               (aset font-spec-vec
+                     (cond ((eq (car e) 'normal) 0)
+                           ((eq (car e) 'bold) 1)
+                           ((eq (car e) 'italic) 2)
+                           (t 3)) font-spec)))
+         (when (aref font-spec-vec 0)
+           (or (aref font-spec-vec 3)
+               (aset font-spec-vec 3 (or (aref font-spec-vec 1)
+                                         (aref font-spec-vec 2)
+                                         (aref font-spec-vec 0))))
+           (or (aref font-spec-vec 1)
+               (aset font-spec-vec 1 (aref font-spec-vec 0)))
+           (or (aref font-spec-vec 2)
+               (aset font-spec-vec 2 (aref font-spec-vec 1)))
+           (dotimes (i 4)
+             (aset font-spec-alist i
+                   (nconc (aref font-spec-alist i)
+                          (list (cons charset (aref font-spec-vec i))))))
+           (setq font-id (1+ font-id)))))
+
+      ;; Make four FONT-SPEC-TABLEs and set them in
+      ;; ps-mule-font-spec-tables.  Each char table has one extra slot
+      ;; whose value is an element of font-spec-alist.
+      (setq ps-mule-font-spec-tables (make-vector 4 nil))
+      (put 'font-spec-table 'char-table-extra-slots 1)
+      (dotimes (i 4)
+       (let ((table (make-char-table 'font-spec-table)))
+         (aset ps-mule-font-spec-tables i table)
+         (set-char-table-extra-slot table 0 (aref font-spec-alist i))
+         ;; Be sure to have glyphs for "0123456789/" in advance for
+         ;; page numbering.
+         (let ((str " 0123456789/"))
+           (dotimes (i (length str))
+             (or (vectorp (ps-mule-get-font-spec (aref str i) table nil))
+                 (error "ASCII font not available")))))))
+
+    (ps-mule-prologue-generated)
+    (if (find-composition from to)
+       (ps-mule-composition-prologue-generated))))
+
+(defun ps-mule-restruct-output-list (list tail)
+  (dolist (elt list)
+    (if (listp elt)
+       (setq tail (ps-mule-restruct-output-list elt tail))
+      (setcdr tail (cons elt (cdr tail)))
+      (setq tail (cdr tail))))
+  tail)
+
+(defun ps-mule-redefine-font (font-number fonttag size ps-font)
+  (let* ((font-type (aref ps-mule-font-number-to-type font-number))
+        (font-spec-alist (char-table-extra-slot 
+                          (aref ps-mule-font-spec-tables font-type) 0)))
+    (ps-output-prologue
+     (list (if (ps-mule-font-spec-src (cdr (car font-spec-alist)))
+              ;; We ignore a font specfied in ps-font-info-database.
+              (format "/V%s VTOP%d def\n" fonttag font-type)
+            (format "/V%s [ VTOP%d aload pop ] def\n
+V%s 0 /%s-latin1 /%s Latin1Encoding put\n"
+                    fonttag font-type fonttag ps-font ps-font))
+          (format "/%s ETOP%d V%s %f ReDefFont\n"
+                  fonttag font-type fonttag size)))))
 
-;;;###autoload
-(defun ps-mule-begin-page ()
-  (setq ps-mule-current-charset 'ascii))
 
+;;;###autoload
+(defun ps-mule-end-job ()
+  "Finish printing job for multi-byte chars."
+
+  ;; Prepare root and sub fonts while generating glyphs if necessary.
+  (let ((output-head (list t))
+       (ps-mule-output-list (list t)))
+    (dotimes (i 4)
+      (map-char-table 'ps-mule-prepare-glyph 
+                     (aref ps-mule-font-spec-tables i)))
+    (ps-mule-restruct-output-list (cdr ps-mule-output-list) output-head)
+    (ps-output-prologue (cdr output-head)))
+
+  ;; Prepare top Encoding and templates of FDepVector.
+  (dotimes (i 4)
+    (let ((font-spec-alist (char-table-extra-slot
+                           (aref ps-mule-font-spec-tables i) 0))
+         font-list font-spec)
+      (dolist (elt font-spec-alist)
+       (setq font-spec (cdr elt))
+       (if (ps-mule-font-spec-extra font-spec)
+           (push (cons (ps-mule-font-spec-font-id font-spec)
+                       (ps-mule-font-spec-id font-spec))
+                 font-list)))
+      (setq font-list (nreverse font-list))
+      (ps-output-prologue
+       (list (format "/ETOP%d 256 array def\n" i)
+            (format "0 1 255 { ETOP%d exch 0 put } for\n" i)))
+      (let ((index 0))
+       (dolist (font font-list)
+         (ps-output-prologue (format "ETOP%d %d %d put\n" i (car font) index))
+         (setq index (1+ index))))
+      (ps-output-prologue (format "/VTOP%d [%s] def\n" i
+                                 (mapconcat #'(lambda (x)
+                                                (format "F%02X" (cdr x)))
+                                            font-list " ")))))
+       
+  ;; Redefine fonts f0, f1, f2, f3, h0, h1, H0.
+  (ps-mule-redefine-font 4 "h0" ps-header-title-font-size-internal
+                        (ps-font 'ps-font-for-header 'bold))
+  (ps-mule-redefine-font 5 "h1" ps-header-font-size-internal
+                        (ps-font 'ps-font-for-header 'normal))
+  (ps-mule-redefine-font 6 "H0" ps-footer-font-size-internal
+                        (ps-font 'ps-font-for-footer 'normal))
+  (let ((font (ps-font-alist 'ps-font-for-text))
+       (i 0))
+    (while font
+      (ps-mule-redefine-font i (format "f%d" i)
+                            ps-font-size-internal
+                            (ps-font 'ps-font-for-text (car (car font))))
+      (setq font (cdr font)
+           i (1+ i)))))
 
 (provide 'ps-mule)
 
index 0e442f3b104cd2672d4a38a21aeab6a264600de6..6be1f12d43908591366297758f4a9f0f28c91dac 100644 (file)
 ;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters)
 ;;     Vinicius Jose Latorre <viniciusjl@ig.com.br>
 ;; Keywords: wp, print, PostScript
-;; Version: 6.8.1
+;; Version: 7.3.1
 ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
 
-(defconst ps-print-version "6.8.1"
-  "ps-print.el, v 6.8.1 <2007/11/21 vinicius>
+(defconst ps-print-version "7.3.1"
+  "ps-print.el, v 7.3.1 <2007/11/21 vinicius>
 
 Vinicius's last change version -- this file may have been edited as part of
 Emacs without changes to the version number.  When reporting bugs, please also
@@ -1342,7 +1342,7 @@ Please send all bug fixes and enhancements to
 ;;
 ;; Faces are always treated as opaque.
 ;;
-;; Epoch, Lucid and Emacs 21 not supported.  At all.
+;; Epoch, Lucid and Emacs 22 not supported.  At all.
 ;;
 ;; Fixed-pitch fonts work better for line folding, but are not required.
 ;;
@@ -1459,31 +1459,16 @@ Please send all bug fixes and enhancements to
 
 (require 'lpr)
 
+
 (or (featurep 'lisp-float-type)
     (error "`ps-print' requires floating point support"))
 
+
 (if (featurep 'xemacs)
     ()
   (unless (and (boundp 'emacs-major-version)
-              (>= emacs-major-version 22))
-    (error "`ps-print' only supports Emacs 22 and higher")))
-
-
-;; GNU Emacs
-(or (fboundp 'line-beginning-position)
-    (defun line-beginning-position (&optional n)
-      (save-excursion
-       (and n (/= n 1) (forward-line (1- n)))
-       (beginning-of-line)
-       (point))))
-
-
-;; to avoid compilation gripes
-
-;; GNU Emacs
-(defalias 'ps-e-find-composition (if (fboundp 'find-composition)
-                                    'find-composition
-                                  'ignore))
+              (>= emacs-major-version 23))
+    (error "`ps-print' only supports Emacs 23 and higher")))
 
 
 (defconst ps-windows-system
@@ -1492,30 +1477,9 @@ Please send all bug fixes and enhancements to
   (memq system-type '(usg-unix-v dgux hpux irix)))
 
 
-(defun ps-xemacs-color-name (color)
-  (when (featurep 'xemacs)
-    (if (color-specifier-p color)
-       (color-name color)
-      color)))
-
-(defalias 'ps-frame-parameter
-  (if (fboundp 'frame-parameter) 'frame-parameter 'frame-property))
-
-(defalias 'ps-mark-active-p
-  (if (featurep 'xemacs)
-      'region-active-p                 ; XEmacs
-    (defvar mark-active)               ; To shup up XEmacs's byte compiler.
-    (lambda () mark-active)))          ; Emacs
-
-(defun ps-face-foreground-name (face)
-  (if (featurep 'xemacs)
-      (ps-xemacs-color-name (face-foreground face))
-    (face-foreground face nil t)))
+;; Load XEmacs/Emacs definitions
+(eval-and-compile (require 'ps-def))
 
-(defun ps-face-background-name (face)
-  (if (featurep 'xemacs)
-      (ps-xemacs-color-name (face-background face))
-    (face-background face nil t)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; User Variables:
@@ -3900,102 +3864,6 @@ It can be retrieved with `(ps-get ALIST-SYM KEY)'."
   (format-time-string "%T"))
 
 
-(and (featurep 'xemacs)
-     ;; XEmacs change: Need to check for emacs-major-version too.
-     (or (< emacs-major-version 19)
-        (and (= emacs-major-version 19) (< emacs-minor-version 12)))
-     (setq ps-print-color-p nil))
-
-
-;; Return t if the device (which can be changed during an emacs session)
-;; can handle colors.
-;; This function is not yet implemented for GNU emacs.
-(defalias 'ps-color-device
-  (cond ((and (featurep 'xemacs)
-             ;; XEmacs change: Need to check for emacs-major-version too.
-             (or (> emacs-major-version 19)
-                 (and (= emacs-major-version 19)
-                      (>= emacs-minor-version 12)))) ; XEmacs >= 19.12
-        (lambda ()
-          (eq (device-class) 'color)))
-
-       (t                              ; Emacs
-        (lambda ()
-          (if (fboundp 'color-values)
-              (color-values "Green")
-            t)))))
-
-
-(defun ps-xemacs-mapper (extent list)
-  (when (featurep 'xemacs)
-    (nconc list
-          (list (list (extent-start-position extent) 'push extent)
-                (list (extent-end-position extent) 'pull extent))))
-  nil)
-
-(defun ps-xemacs-extent-sorter (a b)
-  (when (featurep 'xemacs)
-    (< (extent-priority a) (extent-priority b))))
-
-(defun ps-xemacs-face-kind-p (face kind kind-regex)
-  (when (featurep 'xemacs)
-    (let* ((frame-font (or (face-font-instance face)
-                          (face-font-instance 'default)))
-          (kind-cons
-           (and frame-font
-                (assq kind
-                      (font-instance-properties frame-font))))
-          (kind-spec (cdr-safe kind-cons))
-          (case-fold-search t))
-      (and kind-spec (string-match kind-regex kind-spec)))))
-
-(when (featurep 'xemacs)
-  ;; to avoid XEmacs compilation gripes
-  (defvar coding-system-for-write)
-  (defvar coding-system-for-read)
-  (defvar buffer-file-coding-system)
-  
-  (and (fboundp 'find-coding-system)
-       (or (find-coding-system 'raw-text-unix)
-          (copy-coding-system 'no-conversion-unix 'raw-text-unix))))
-
-(defun ps-color-values (x-color)
-  (if (featurep 'xemacs)
-      (let ((color (ps-xemacs-color-name x-color)))
-       (cond
-        ((fboundp 'x-color-values)
-         (x-color-values color))
-        ((and (fboundp 'color-instance-rgb-components)
-              (ps-color-device))
-         (color-instance-rgb-components
-          (if (color-instance-p x-color)
-              x-color
-            (make-color-instance color))))
-        (t
-         (error "No available function to determine X color values"))))
-    (cond
-     ((fboundp 'color-values)
-      (color-values x-color))
-     ((fboundp 'x-color-values)
-      (x-color-values x-color))
-     (t
-      (error "No available function to determine X color values")))))
-
-(defun ps-face-bold-p (face)
-  (if (featurep 'xemacs)
-      (or (ps-xemacs-face-kind-p face 'WEIGHT_NAME "bold\\|demibold")
-         (memq face ps-bold-faces))    ; Kludge-compatible
-    (or (face-bold-p face)
-       (memq face ps-bold-faces))))
-
-(defun ps-face-italic-p (face)
-  (if (featurep 'xemacs)
-      (or (ps-xemacs-face-kind-p face 'ANGLE_NAME "i\\|o")
-         (ps-xemacs-face-kind-p face 'SLANT "i\\|o")
-         (memq face ps-italic-faces))  ; Kludge-compatible
-    (or (face-italic-p face)
-       (memq face ps-italic-faces))))
-
 (defvar ps-print-color-scale 1.0)
 
 (defun ps-color-scale (color)
@@ -4076,15 +3944,6 @@ Note: No major/minor-mode is activated and no local variables are evaluated for
 (defvar ps-razchunk 0)
 
 (defvar ps-color-p nil)
-(defvar ps-color-format
-  (if (featurep 'xemacs)
-      ;; XEmacs will have to make do with %s (princ) for floats.
-      "%s %s %s"
-
-    ;; Emacs understands the %f format; we'll use it to limit color RGB
-    ;; values to three decimals to cut down some on the size of the
-    ;; PostScript output.
-    "%0.3f %0.3f %0.3f"))
 
 ;; These values determine how much print-height to deduct when headers/footers
 ;; are turned on.  This is a pretty clumsy way of handling it, but it'll do for
@@ -4870,73 +4729,35 @@ page-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th
     (goto-char (point-max))
     (insert-file-contents fname)))
 
-;; These functions are used in `ps-mule' to get charset of header and footer.
-;; To avoid unnecessary calls to functions in `ps-left-header',
-;; `ps-right-header', `ps-left-footer' and `ps-right-footer'.
-
-(defun ps-generate-string-list (content)
-  (let (str)
-    (while content
-      (setq str (cons (cond
-                      ;; string
-                      ((stringp (car content))
-                       (car content))
-                      ;; function symbol
-                      ((functionp (car content))
-                       (concat "(" (funcall (car content)) ")"))
-                      ;; variable symbol
-                      ((and (symbolp (car content)) (boundp (car content)))
-                       (concat "(" (symbol-value (car content)) ")"))
-                      ;; otherwise, empty string
-                      (t
-                       ""))
-                     str)
-           content (cdr content)))
-    (nreverse str)))
-
-(defvar ps-lh-cache nil)
-(defvar ps-rh-cache nil)
-(defvar ps-lf-cache nil)
-(defvar ps-rf-cache nil)
-
-(defun ps-header-footer-string ()
-  (and ps-print-header
-       (setq ps-lh-cache (ps-generate-string-list ps-left-header)
-            ps-rh-cache (ps-generate-string-list ps-right-header)))
-  (and ps-print-footer
-       (setq ps-lf-cache (ps-generate-string-list ps-left-footer)
-            ps-rf-cache (ps-generate-string-list ps-right-footer)))
-  (append ps-lh-cache ps-rh-cache ps-lf-cache ps-rf-cache))
-
-;; All autoloads.
-(declare-function ps-mule-encode-header-string "ps-mule")
-(declare-function ps-mule-begin-page           "ps-mule")
-(declare-function ps-mule-prepare-ascii-font   "ps-mule")
-(declare-function ps-mule-set-ascii-font       "ps-mule")
-(declare-function ps-mule-initialize           "ps-mule")
-(declare-function ps-mule-begin-job            "ps-mule")
-
 ;; These functions insert the arrays that define the contents of the headers.
 
+(defvar ps-encode-header-string-function nil)
+
 (defun ps-generate-header-line (fonttag &optional content)
   (ps-output " [" fonttag " ")
   (cond
    ;; Literal strings should be output as is -- the string must contain its own
    ;; PS string delimiters, '(' and ')', if necessary.
    ((stringp content)
-    (ps-output (ps-mule-encode-header-string content fonttag)))
+    (ps-output content))
 
    ;; Functions are called -- they should return strings; they will be inserted
    ;; as strings and the PS string delimiters added.
    ((functionp content)
-    (ps-output-string (ps-mule-encode-header-string (funcall content)
-                                                   fonttag)))
+    (if (functionp ps-encode-header-string-function)
+       (dolist (l (funcall ps-encode-header-string-function
+                           (funcall content) fonttag))
+         (ps-output-string l))
+      (ps-output-string (funcall content))))
 
    ;; Variables will have their contents inserted.  They should contain
    ;; strings, and will be inserted as strings.
    ((and (symbolp content) (boundp content))
-    (ps-output-string (ps-mule-encode-header-string (symbol-value content)
-                                                   fonttag)))
+    (if (fboundp ps-encode-header-string-function)
+       (dolist (l (funcall ps-encode-header-string-function
+                            (symbol-value content) fonttag))
+         (ps-output-string l))
+      (ps-output-string (symbol-value content))))
 
    ;; Anything else will get turned into an empty string.
    (t
@@ -5002,15 +4823,6 @@ page-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th
        (vector 0 0 0 0)))))
 
 
-;; Emacs understands the %f format; we'll use it to limit color RGB values
-;; to three decimals to cut down some on the size of the PostScript output.
-;; XEmacs will have to make do with %s (princ) for floats.
-
-(defvar ps-float-format (if (featurep 'xemacs)
-                           "%s "       ; XEmacs
-                         "%0.3f "))    ; Emacs
-
-
 (defun ps-float-format (value &optional default)
   (let ((literal (or value default)))
     (cond ((null literal)
@@ -5911,6 +5723,7 @@ XSTART YSTART are the relative position for the first page in a sheet.")
    (t
     (list default default default))))
 
+(defvar ps-basic-plot-string-function 'ps-basic-plot-string)
 
 (defun ps-begin-job (genfunc)
   ;; prologue files
@@ -6027,7 +5840,11 @@ XSTART YSTART are the relative position for the first page in a sheet.")
        ps-default-color      (and (not (member ps-print-color-p
                                                '(nil back-white)))
                                   ps-default-foreground)
-       ps-current-color      ps-default-color)
+       ps-current-color      ps-default-color
+       ;; Set up default functions.
+       ;; They may be overridden by ps-mule-begin-job.
+       ps-basic-plot-string-function    'ps-basic-plot-string
+       ps-encode-header-string-function nil)
   ;; initialize page dimensions
   (ps-get-page-dimensions)
   ;; final check
@@ -6114,28 +5931,19 @@ XSTART YSTART are the relative position for the first page in a sheet.")
             (format "/PageNumber %d def\n" (ps-page-number)))
 
   (when ps-print-header
-    (ps-generate-header "HeaderLinesLeft"  "/h0" "/h1"
-                       (or ps-lh-cache ps-left-header))
-    (ps-generate-header "HeaderLinesRight" "/h0" "/h1"
-                       (or ps-rh-cache ps-right-header))
-    (ps-output (format "%d SetHeaderLines\n" ps-header-lines))
-    (setq ps-lh-cache nil
-         ps-rh-cache nil))
+    (ps-generate-header "HeaderLinesLeft"  "/h0" "/h1" ps-left-header)
+    (ps-generate-header "HeaderLinesRight" "/h0" "/h1" ps-right-header)
+    (ps-output (format "%d SetHeaderLines\n" ps-header-lines)))
 
   (when ps-print-footer
-    (ps-generate-header "FooterLinesLeft"  "/H0" "/H0"
-                       (or ps-lf-cache ps-left-footer))
-    (ps-generate-header "FooterLinesRight" "/H0" "/H0"
-                       (or ps-rf-cache ps-right-footer))
-    (ps-output (format "%d SetFooterLines\n" ps-footer-lines))
-    (setq ps-lf-cache nil
-         ps-rf-cache nil))
+    (ps-generate-header "FooterLinesLeft"  "/H0" "/H0" ps-left-footer)
+    (ps-generate-header "FooterLinesRight" "/H0" "/H0" ps-right-footer)
+    (ps-output (format "%d SetFooterLines\n" ps-footer-lines)))
 
   (ps-output (number-to-string ps-lines-printed) " BeginPage\n")
   (ps-set-font  ps-current-font)
   (ps-set-bg    ps-current-bg)
-  (ps-set-color ps-current-color)
-  (ps-mule-begin-page))
+  (ps-set-color ps-current-color))
 
 (defsubst ps-skip-newline (limit)
   (setq ps-showline-count (1+ ps-showline-count)
@@ -6179,7 +5987,6 @@ XSTART YSTART are the relative position for the first page in a sheet.")
                                       (ps-avg-char-width 'ps-font-for-text)))
         (to (car wrappoint))
         (str (substring string from to)))
-    (ps-mule-prepare-ascii-font str)
     (ps-output-string str)
     (ps-output " S\n")
     wrappoint))
@@ -6189,7 +5996,6 @@ XSTART YSTART are the relative position for the first page in a sheet.")
                                       (ps-avg-char-width 'ps-font-for-text)))
         (to (car wrappoint))
         (string (buffer-substring-no-properties from to)))
-    (ps-mule-prepare-ascii-font string)
     (ps-output-string string)
     (ps-output " S\n")
     wrappoint))
@@ -6314,26 +6120,16 @@ to the equivalent Latin-1 characters.")
       (if (re-search-forward ps-control-or-escape-regexp to t)
          ;; region with some control characters or some multi-byte characters
          (let* ((match-point (match-beginning 0))
-                (match       (char-after match-point))
-                (composition (ps-e-find-composition from (1+ match-point))))
-           (if composition
-               (if (and (nth 2 composition)
-                        (<= (car composition) match-point))
-                   (progn
-                     (setq match-point (car composition)
-                           match 0)
-                     (goto-char (nth 1 composition)))
-                 (setq composition nil)))
+                (match       (char-after match-point)))
            (when (< from match-point)
-             (ps-mule-set-ascii-font)
-             (ps-plot 'ps-basic-plot-string from match-point bg-color))
+             (ps-plot ps-basic-plot-string-function
+                      from match-point bg-color))
            (cond
             ((= match ?\t)             ; tab
              (let ((linestart (line-beginning-position)))
                (forward-char -1)
                (setq from (+ linestart (current-column)))
                (when (re-search-forward "[ \t]+" to t)
-                 (ps-mule-set-ascii-font)
                  (ps-plot 'ps-basic-plot-whitespace
                           from (+ linestart (current-column))
                           bg-color))))
@@ -6358,30 +6154,11 @@ to the equivalent Latin-1 characters.")
                     (ps-skip-newline to))
                (ps-next-page)))
 
-            (composition               ; a composite sequence
-             (ps-plot 'ps-mule-plot-composition match-point (point) bg-color))
-
-            ((> match 255)             ; a multi-byte character
-             (setq match (or (aref ps-print-translation-table match) match))
-             (let* ((charset (char-charset match))
-                    (composition (ps-e-find-composition match-point to))
-                    (stop (if (nth 2 composition) (car composition) to)))
-               (or (eq charset 'composition)
-                   (while (and (< (point) stop)
-                               (let ((ch (following-char)))
-                                 (setq ch
-                                       (or (aref ps-print-translation-table ch)
-                                           ch))
-                                 (eq (char-charset ch) charset)))
-                     (forward-char 1)))
-               (ps-plot 'ps-mule-plot-string match-point (point) bg-color)))
-                                       ; characters from ^@ to ^_ and
             (t                         ; characters from 127 to 255
              (ps-control-character match)))
            (setq from (point)))
-       ;; region without control characters nor multi-byte characters
-       (ps-mule-set-ascii-font)
-       (ps-plot 'ps-basic-plot-string from to bg-color)
+       ;; region without control characters
+       (ps-plot ps-basic-plot-string-function from to bg-color)
        (setq from to)))))
 
 (defvar ps-string-control-codes
@@ -6413,7 +6190,6 @@ to the equivalent Latin-1 characters.")
     (if (< (car wrappoint) to)
        (ps-continue-line))
     (setq ps-width-remaining (- ps-width-remaining (* len char-width)))
-    (ps-mule-prepare-ascii-font str)
     (ps-output-string str)
     (ps-output " S\n")))
 
@@ -6625,125 +6401,7 @@ If FACE is not a valid face name, use default face."
   (save-restriction
     (narrow-to-region from to)
     (ps-print-ensure-fontified from to)
-    (let ((face 'default)
-         (position to))
-      (cond
-       ((featurep 'xemacs)             ; XEmacs
-       ;; Build the list of extents...
-       (let ((a (cons 'dummy nil))
-             record type extent extent-list)
-         (map-extents 'ps-xemacs-mapper nil from to a)
-         (setq a (sort (cdr a) 'car-less-than-car)
-               extent-list nil)
-
-         ;; Loop through the extents...
-         (while a
-           (setq record (car a)
-                 position (car record)
-
-                 record (cdr record)
-                 type (car record)
-
-                 record (cdr record)
-                 extent (car record))
-
-           ;; Plot up to this record.
-           ;; XEmacs 19.12: for some reason, we're getting into a
-           ;; situation in which some of the records have
-           ;; positions less than 'from'.  Since we've narrowed
-           ;; the buffer, this'll generate errors.  This is a hack,
-           ;; but don't call ps-plot-with-face unless from > point-min.
-           (and (>= from (point-min))
-                (ps-plot-with-face from (min position (point-max)) face))
-
-           (cond
-            ((eq type 'push)
-             (and (extent-face extent)
-                  (setq extent-list (sort (cons extent extent-list)
-                                          'ps-xemacs-extent-sorter))))
-
-            ((eq type 'pull)
-             (setq extent-list (sort (delq extent extent-list)
-                                     'ps-xemacs-extent-sorter))))
-
-           (setq face (if extent-list
-                          (extent-face (car extent-list))
-                        'default)
-                 from position
-                 a (cdr a)))))
-
-       (t                              ; Emacs
-       (let ((property-change from)
-             (overlay-change from)
-             (save-buffer-invisibility-spec buffer-invisibility-spec)
-             (buffer-invisibility-spec nil)
-             before-string after-string)
-         (while (< from to)
-           (and (< property-change to) ; Don't search for property change
-                                       ; unless previous search succeeded.
-                (setq property-change (next-property-change from nil to)))
-           (and (< overlay-change to)  ; Don't search for overlay change
-                                       ; unless previous search succeeded.
-                (setq overlay-change (min (next-overlay-change from)
-                                          to)))
-           (setq position (min property-change overlay-change)
-                 before-string nil
-                 after-string nil)
-           ;; The code below is not quite correct,
-           ;; because a non-nil overlay invisible property
-           ;; which is inactive according to the current value
-           ;; of buffer-invisibility-spec nonetheless overrides
-           ;; a face text property.
-           (setq face
-                 (cond ((let ((prop (get-text-property from 'invisible)))
-                          ;; Decide whether this invisible property
-                          ;; really makes the text invisible.
-                          (if (eq save-buffer-invisibility-spec t)
-                              (not (null prop))
-                            (or (memq prop save-buffer-invisibility-spec)
-                                (assq prop save-buffer-invisibility-spec))))
-                        'emacs--invisible--face)
-                       ((get-text-property from 'face))
-                       (t 'default)))
-           (let ((overlays (overlays-at from))
-                 (face-priority -1))   ; text-property
-             (while (and overlays
-                         (not (eq face 'emacs--invisible--face)))
-               (let* ((overlay (car overlays))
-                      (overlay-invisible
-                       (overlay-get overlay 'invisible))
-                      (overlay-priority
-                       (or (overlay-get overlay 'priority) 0)))
-                 (and (> overlay-priority face-priority)
-                      (setq before-string
-                            (or (overlay-get overlay 'before-string)
-                                before-string)
-                            after-string
-                            (or (and (<= (overlay-end overlay) position)
-                                     (overlay-get overlay 'after-string))
-                                after-string)
-                            face-priority overlay-priority
-                            face
-                            (cond
-                             ((if (eq save-buffer-invisibility-spec t)
-                                  (not (null overlay-invisible))
-                                (or (memq overlay-invisible
-                                          save-buffer-invisibility-spec)
-                                    (assq overlay-invisible
-                                          save-buffer-invisibility-spec)))
-                              'emacs--invisible--face)
-                             ((overlay-get overlay 'face))
-                             (t face)
-                             ))))
-               (setq overlays (cdr overlays))))
-           ;; Plot up to this record.
-           (and before-string
-                (ps-plot-string before-string))
-           (ps-plot-with-face from position face)
-           (and after-string
-                (ps-plot-string after-string))
-           (setq from position)))))
-      (ps-plot-with-face from to face))))
+    (ps-generate-postscript-with-faces1 from to)))
 
 (defun ps-generate-postscript (from to)
   (ps-plot-region from to 0))
@@ -6791,6 +6449,7 @@ If FACE is not a valid face name, use default face."
                (ps-begin-page)
                (funcall genfunc from to)
                (ps-end-page)
+               (ps-mule-end-job)
                (ps-end-job needs-begin-file)
 
                ;; Setting this variable tells the unwind form that the
@@ -6949,213 +6608,13 @@ If FACE is not a valid face name, use default face."
       (t
        (setq kill-emacs-hook 'ps-kill-emacs-check)))
 
-\f
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Sample Setup Code:
-
-
-;; This stuff is for anybody that's brave enough to look this far,
-;; and able to figure out how to use it.  It isn't really part of
-;; ps-print, but I'll leave it here in hopes it might be useful:
-
-;; WARNING!!! The following code is *sample* code only.
-;; Don't use it unless you understand what it does!
-
-;; The key `f22' should probably be replaced by `print'.  --Stef
-
-;; A hook to bind to `rmail-mode-hook' to locally bind prsc and set the
-;; `ps-left-headers' specially for mail messages.
-(defun ps-rmail-mode-hook ()
-  (local-set-key [(f22)] 'ps-rmail-print-message-from-summary)
-  (setq ps-header-lines 3
-       ps-left-header
-       ;; The left headers will display the message's subject, its
-       ;; author, and the name of the folder it was in.
-       '(ps-article-subject ps-article-author buffer-name)))
-
-;; See `ps-gnus-print-article-from-summary'.  This function does the
-;; same thing for rmail.
-(defun ps-rmail-print-message-from-summary ()
-  (interactive)
-  (ps-print-message-from-summary 'rmail-summary-buffer "RMAIL"))
-
-;; Used in `ps-rmail-print-article-from-summary',
-;; `ps-gnus-print-article-from-summary' and `ps-vm-print-message-from-summary'.
-(defun ps-print-message-from-summary (summary-buffer summary-default)
-  (let ((ps-buf (or (and (boundp summary-buffer)
-                        (symbol-value summary-buffer))
-                   summary-default)))
-    (and (get-buffer ps-buf)
-        (save-excursion
-          (set-buffer ps-buf)
-          (ps-spool-buffer-with-faces)))))
-
-;; Look in an article or mail message for the Subject: line.  To be
-;; placed in `ps-left-headers'.
-(defun ps-article-subject ()
-  (save-excursion
-    (goto-char (point-min))
-    (if (re-search-forward "^Subject:[ \t]+\\(.*\\)$" nil t)
-       (buffer-substring (match-beginning 1) (match-end 1))
-      "Subject ???")))
-
-;; Look in an article or mail message for the From: line.  Sorta-kinda
-;; understands RFC-822 addresses and can pull the real name out where
-;; it's provided.  To be placed in `ps-left-headers'.
-(defun ps-article-author ()
-  (save-excursion
-    (goto-char (point-min))
-    (if (re-search-forward "^From:[ \t]+\\(.*\\)$" nil t)
-       (let ((fromstring (buffer-substring (match-beginning 1) (match-end 1))))
-         (cond
-
-          ;; Try first to match addresses that look like
-          ;; thompson@wg2.waii.com (Jim Thompson)
-          ((string-match ".*[ \t]+(\\(.*\\))" fromstring)
-           (substring fromstring (match-beginning 1) (match-end 1)))
-
-          ;; Next try to match addresses that look like
-          ;; Jim Thompson <thompson@wg2.waii.com> or
-          ;; "Jim Thompson" <thompson@wg2.waii.com>
-          ((string-match "\\(\"?\\)\\(.*\\)\\1[ \t]+<.*>" fromstring)
-           (substring fromstring (match-beginning 2) (match-end 2)))
-
-          ;; Couldn't find a real name -- show the address instead.
-          (t fromstring)))
-      "From ???")))
-
-;; A hook to bind to `gnus-article-prepare-hook'.  This will set the
-;; `ps-left-headers' specially for gnus articles.  Unfortunately,
-;; `gnus-article-mode-hook' is called only once, the first time the *Article*
-;; buffer enters that mode, so it would only work for the first time
-;; we ran gnus.  The second time, this hook wouldn't get set up.  The
-;; only alternative is `gnus-article-prepare-hook'.
-(defun ps-gnus-article-prepare-hook ()
-  (setq ps-header-lines 3
-       ps-left-header
-       ;; The left headers will display the article's subject, its
-       ;; author, and the newsgroup it was in.
-       '(ps-article-subject ps-article-author gnus-newsgroup-name)))
-
-;; A hook to bind to `vm-mode-hook' to locally bind prsc and set the
-;; `ps-left-headers' specially for mail messages.
-(defun ps-vm-mode-hook ()
-  (local-set-key [(f22)] 'ps-vm-print-message-from-summary)
-  (setq ps-header-lines 3
-       ps-left-header
-       ;; The left headers will display the message's subject, its
-       ;; author, and the name of the folder it was in.
-       '(ps-article-subject ps-article-author buffer-name)))
-
-;; Every now and then I forget to switch from the *Summary* buffer to
-;; the *Article* before hitting prsc, and a nicely formatted list of
-;; article subjects shows up at the printer.  This function, bound to
-;; prsc for the gnus *Summary* buffer means I don't have to switch
-;; buffers first.
-;; sb:  Updated for Gnus 5.
-(defun ps-gnus-print-article-from-summary ()
-  (interactive)
-  (ps-print-message-from-summary 'gnus-article-buffer "*Article*"))
-
-;; See `ps-gnus-print-article-from-summary'.  This function does the
-;; same thing for vm.
-(defun ps-vm-print-message-from-summary ()
-  (interactive)
-  (ps-print-message-from-summary 'vm-mail-buffer ""))
-
-;; A hook to bind to bind to `gnus-summary-setup-buffer' to locally bind
-;; prsc.
-(defun ps-gnus-summary-setup ()
-  (local-set-key [(f22)] 'ps-gnus-print-article-from-summary))
-
-;; Look in an article or mail message for the Subject: line.  To be
-;; placed in `ps-left-headers'.
-(defun ps-info-file ()
-  (save-excursion
-    (goto-char (point-min))
-    (if (re-search-forward "File:[ \t]+\\([^, \t\n]*\\)" nil t)
-       (buffer-substring (match-beginning 1) (match-end 1))
-      "File ???")))
-
-;; Look in an article or mail message for the Subject: line.  To be
-;; placed in `ps-left-headers'.
-(defun ps-info-node ()
-  (save-excursion
-    (goto-char (point-min))
-    (if (re-search-forward "Node:[ \t]+\\([^,\t\n]*\\)" nil t)
-       (buffer-substring (match-beginning 1) (match-end 1))
-      "Node ???")))
-
-(defun ps-info-mode-hook ()
-  (setq ps-left-header
-       ;; The left headers will display the node name and file name.
-       '(ps-info-node ps-info-file)))
-
-;; WARNING! The following function is a *sample* only, and is *not*
-;; meant to be used as a whole unless you understand what the effects
-;; will be!  (In fact, this is a copy of Jim's setup for ps-print --
-;; I'd be very surprised if it was useful to *anybody*, without
-;; modification.)
-
-(defun ps-jts-ps-setup ()
-  (global-set-key [(f22)] 'ps-spool-buffer-with-faces) ;f22 is prsc
-  (global-set-key [(shift f22)] 'ps-spool-region-with-faces)
-  (global-set-key [(control f22)] 'ps-despool)
-  (add-hook 'gnus-article-prepare-hook 'ps-gnus-article-prepare-hook)
-  (add-hook 'gnus-summary-mode-hook 'ps-gnus-summary-setup)
-  (add-hook 'vm-mode-hook 'ps-vm-mode-hook)
-  (add-hook 'vm-mode-hooks 'ps-vm-mode-hook)
-  (add-hook 'Info-mode-hook 'ps-info-mode-hook)
-  (setq ps-spool-duplex t
-       ps-print-color-p nil
-       ps-lpr-command "lpr"
-       ps-lpr-switches '("-Jjct,duplex_long"))
-  'ps-jts-ps-setup)
-
-;; WARNING! The following function is a *sample* only, and is *not*
-;; meant to be used as a whole unless it corresponds to your needs.
-;; (In fact, this is a copy of Jack's setup for ps-print --
-;; I would not be that surprised if it was useful to *anybody*,
-;; without modification.)
-
-(defun ps-jack-setup ()
-  (setq ps-print-color-p  nil
-       ps-lpr-command    "lpr"
-       ps-lpr-switches   nil
-
-       ps-paper-type        'a4
-       ps-landscape-mode    t
-       ps-number-of-columns 2
-
-       ps-left-margin   (/ (* 72  1.0) 2.54) ;  1.0 cm
-       ps-right-margin  (/ (* 72  1.0) 2.54) ;  1.0 cm
-       ps-inter-column  (/ (* 72  1.0) 2.54) ;  1.0 cm
-       ps-bottom-margin (/ (* 72  1.5) 2.54) ;  1.5 cm
-       ps-top-margin    (/ (* 72  1.5) 2.54) ;  1.5 cm
-       ps-header-offset (/ (* 72  1.0) 2.54) ;  1.0 cm
-       ps-header-line-pad    .15
-       ps-print-header       t
-       ps-print-header-frame t
-       ps-header-lines       2
-       ps-show-n-of-n        t
-       ps-spool-duplex       nil
-
-       ps-font-family             'Courier
-       ps-font-size               5.5
-       ps-header-font-family      'Helvetica
-       ps-header-font-size        6
-       ps-header-title-font-size  8)
-  'ps-jack-setup)
-
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; To make this file smaller, some commands go in a separate file.
 ;; But autoload them here to make the separation invisible.
 \f
-;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string
-;;;;;;  ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string
-;;;;;;  ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer)
-;;;;;;  "ps-mule" "ps-mule.el" "586d0a4deeb89be9b80cc01def34481c")
+;;;### (autoloads (ps-mule-end-job ps-mule-begin-job ps-mule-initialize
+;;;;;;  ps-multibyte-buffer) "ps-mule" "ps-mule.el" "ba0ba38bf1f9831ca12701290fd4b211")
 ;;; Generated autoloads from ps-mule.el
 
 (defvar ps-multibyte-buffer nil "\
@@ -7203,69 +6662,19 @@ Any other value is treated as nil.")
 
 (custom-autoload 'ps-multibyte-buffer "ps-mule" t)
 
-(autoload 'ps-mule-prepare-ascii-font "ps-mule" "\
-Setup special ASCII font for STRING.
-STRING should contain only ASCII characters.
-
-\(fn STRING)" nil nil)
-
-(autoload 'ps-mule-set-ascii-font "ps-mule" "\
-Not documented
-
-\(fn)" nil nil)
-
-(autoload 'ps-mule-plot-string "ps-mule" "\
-Generate PostScript code for plotting characters in the region FROM and TO.
-
-It is assumed that all characters in this region belong to the same charset.
-
-Optional argument BG-COLOR specifies background color.
-
-Returns the value:
-
-       (ENDPOS . RUN-WIDTH)
-
-Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of
-the sequence.
-
-\(fn FROM TO &optional BG-COLOR)" nil nil)
-
-(autoload 'ps-mule-plot-composition "ps-mule" "\
-Generate PostScript code for plotting composition in the region FROM and TO.
-
-It is assumed that all characters in this region belong to the same
-composition.
-
-Optional argument BG-COLOR specifies background color.
-
-Returns the value:
-
-       (ENDPOS . RUN-WIDTH)
-
-Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of
-the sequence.
-
-\(fn FROM TO &optional BG-COLOR)" nil nil)
-
 (autoload 'ps-mule-initialize "ps-mule" "\
 Initialize global data for printing multi-byte characters.
 
 \(fn)" nil nil)
 
-(autoload 'ps-mule-encode-header-string "ps-mule" "\
-Generate PostScript code for ploting STRING by font FONTTAG.
-FONTTAG should be a string \"/h0\" or \"/h1\".
-
-\(fn STRING FONTTAG)" nil nil)
-
 (autoload 'ps-mule-begin-job "ps-mule" "\
 Start printing job for multi-byte chars between FROM and TO.
 It checks if all multi-byte characters in the region are printable or not.
 
 \(fn FROM TO)" nil nil)
 
-(autoload 'ps-mule-begin-page "ps-mule" "\
-Not documented
+(autoload 'ps-mule-end-job "ps-mule" "\
+Finish printing job for multi-byte chars.
 
 \(fn)" nil nil)
 
diff --git a/lisp/ps-samp.el b/lisp/ps-samp.el
new file mode 100644 (file)
index 0000000..a8e4086
--- /dev/null
@@ -0,0 +1,244 @@
+;;; ps-samp.el --- ps-print sample setup code
+
+;; Copyright (C) 2007 Free Software Foundation, Inc.
+
+;; Author: Jim Thompson (was <thompson@wg2.waii.com>)
+;;     Jacques Duthen (was <duthen@cegelec-red.fr>)
+;;     Vinicius Jose Latorre <viniciusjl@ig.com.br>
+;;     Kenichi Handa <handa@m17n.org> (multi-byte characters)
+;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters)
+;;     Vinicius Jose Latorre <viniciusjl@ig.com.br>
+;; Keywords: wp, print, PostScript
+;; Version: 7.2.2
+;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 General Public License for more
+;; details.
+
+;; You should have received a copy of the GNU General Public License along with
+;; GNU Emacs; see the file COPYING.  If not, write to the Free Software
+;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; See ps-print.el for documentation.
+
+;;; Code:
+
+
+(eval-and-compile (require 'ps-print))
+
+\f
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Sample Setup Code:
+
+
+;; This stuff is for anybody that's brave enough to look this far,
+;; and able to figure out how to use it.  It isn't really part of
+;; ps-print, but I'll leave it here in hopes it might be useful:
+
+;; WARNING!!! The following code is *sample* code only.
+;; Don't use it unless you understand what it does!
+
+;; The key `f22' should probably be replaced by `print'.  --Stef
+
+;; A hook to bind to `rmail-mode-hook' to locally bind prsc and set the
+;; `ps-left-headers' specially for mail messages.
+(defun ps-rmail-mode-hook ()
+  (local-set-key [(f22)] 'ps-rmail-print-message-from-summary)
+  (setq ps-header-lines 3
+       ps-left-header
+       ;; The left headers will display the message's subject, its
+       ;; author, and the name of the folder it was in.
+       '(ps-article-subject ps-article-author buffer-name)))
+
+;; See `ps-gnus-print-article-from-summary'.  This function does the
+;; same thing for rmail.
+(defun ps-rmail-print-message-from-summary ()
+  (interactive)
+  (ps-print-message-from-summary 'rmail-summary-buffer "RMAIL"))
+
+;; Used in `ps-rmail-print-article-from-summary',
+;; `ps-gnus-print-article-from-summary' and `ps-vm-print-message-from-summary'.
+(defun ps-print-message-from-summary (summary-buffer summary-default)
+  (let ((ps-buf (or (and (boundp summary-buffer)
+                        (symbol-value summary-buffer))
+                   summary-default)))
+    (and (get-buffer ps-buf)
+        (save-excursion
+          (set-buffer ps-buf)
+          (ps-spool-buffer-with-faces)))))
+
+;; Look in an article or mail message for the Subject: line.  To be
+;; placed in `ps-left-headers'.
+(defun ps-article-subject ()
+  (save-excursion
+    (goto-char (point-min))
+    (if (re-search-forward "^Subject:[ \t]+\\(.*\\)$" nil t)
+       (buffer-substring (match-beginning 1) (match-end 1))
+      "Subject ???")))
+
+;; Look in an article or mail message for the From: line.  Sorta-kinda
+;; understands RFC-822 addresses and can pull the real name out where
+;; it's provided.  To be placed in `ps-left-headers'.
+(defun ps-article-author ()
+  (save-excursion
+    (goto-char (point-min))
+    (if (re-search-forward "^From:[ \t]+\\(.*\\)$" nil t)
+       (let ((fromstring (buffer-substring (match-beginning 1) (match-end 1))))
+         (cond
+
+          ;; Try first to match addresses that look like
+          ;; thompson@wg2.waii.com (Jim Thompson)
+          ((string-match ".*[ \t]+(\\(.*\\))" fromstring)
+           (substring fromstring (match-beginning 1) (match-end 1)))
+
+          ;; Next try to match addresses that look like
+          ;; Jim Thompson <thompson@wg2.waii.com> or
+          ;; "Jim Thompson" <thompson@wg2.waii.com>
+          ((string-match "\\(\"?\\)\\(.*\\)\\1[ \t]+<.*>" fromstring)
+           (substring fromstring (match-beginning 2) (match-end 2)))
+
+          ;; Couldn't find a real name -- show the address instead.
+          (t fromstring)))
+      "From ???")))
+
+;; A hook to bind to `gnus-article-prepare-hook'.  This will set the
+;; `ps-left-headers' specially for gnus articles.  Unfortunately,
+;; `gnus-article-mode-hook' is called only once, the first time the *Article*
+;; buffer enters that mode, so it would only work for the first time
+;; we ran gnus.  The second time, this hook wouldn't get set up.  The
+;; only alternative is `gnus-article-prepare-hook'.
+(defun ps-gnus-article-prepare-hook ()
+  (setq ps-header-lines 3
+       ps-left-header
+       ;; The left headers will display the article's subject, its
+       ;; author, and the newsgroup it was in.
+       '(ps-article-subject ps-article-author gnus-newsgroup-name)))
+
+;; A hook to bind to `vm-mode-hook' to locally bind prsc and set the
+;; `ps-left-headers' specially for mail messages.
+(defun ps-vm-mode-hook ()
+  (local-set-key [(f22)] 'ps-vm-print-message-from-summary)
+  (setq ps-header-lines 3
+       ps-left-header
+       ;; The left headers will display the message's subject, its
+       ;; author, and the name of the folder it was in.
+       '(ps-article-subject ps-article-author buffer-name)))
+
+;; Every now and then I forget to switch from the *Summary* buffer to
+;; the *Article* before hitting prsc, and a nicely formatted list of
+;; article subjects shows up at the printer.  This function, bound to
+;; prsc for the gnus *Summary* buffer means I don't have to switch
+;; buffers first.
+;; sb:  Updated for Gnus 5.
+(defun ps-gnus-print-article-from-summary ()
+  (interactive)
+  (ps-print-message-from-summary 'gnus-article-buffer "*Article*"))
+
+;; See `ps-gnus-print-article-from-summary'.  This function does the
+;; same thing for vm.
+(defun ps-vm-print-message-from-summary ()
+  (interactive)
+  (ps-print-message-from-summary 'vm-mail-buffer ""))
+
+;; A hook to bind to bind to `gnus-summary-setup-buffer' to locally bind
+;; prsc.
+(defun ps-gnus-summary-setup ()
+  (local-set-key [(f22)] 'ps-gnus-print-article-from-summary))
+
+;; Look in an article or mail message for the Subject: line.  To be
+;; placed in `ps-left-headers'.
+(defun ps-info-file ()
+  (save-excursion
+    (goto-char (point-min))
+    (if (re-search-forward "File:[ \t]+\\([^, \t\n]*\\)" nil t)
+       (buffer-substring (match-beginning 1) (match-end 1))
+      "File ???")))
+
+;; Look in an article or mail message for the Subject: line.  To be
+;; placed in `ps-left-headers'.
+(defun ps-info-node ()
+  (save-excursion
+    (goto-char (point-min))
+    (if (re-search-forward "Node:[ \t]+\\([^,\t\n]*\\)" nil t)
+       (buffer-substring (match-beginning 1) (match-end 1))
+      "Node ???")))
+
+(defun ps-info-mode-hook ()
+  (setq ps-left-header
+       ;; The left headers will display the node name and file name.
+       '(ps-info-node ps-info-file)))
+
+;; WARNING! The following function is a *sample* only, and is *not*
+;; meant to be used as a whole unless you understand what the effects
+;; will be!  (In fact, this is a copy of Jim's setup for ps-print --
+;; I'd be very surprised if it was useful to *anybody*, without
+;; modification.)
+
+(defun ps-jts-ps-setup ()
+  (global-set-key [(f22)] 'ps-spool-buffer-with-faces) ;f22 is prsc
+  (global-set-key [(shift f22)] 'ps-spool-region-with-faces)
+  (global-set-key [(control f22)] 'ps-despool)
+  (add-hook 'gnus-article-prepare-hook 'ps-gnus-article-prepare-hook)
+  (add-hook 'gnus-summary-mode-hook 'ps-gnus-summary-setup)
+  (add-hook 'vm-mode-hook 'ps-vm-mode-hook)
+  (add-hook 'vm-mode-hooks 'ps-vm-mode-hook)
+  (add-hook 'Info-mode-hook 'ps-info-mode-hook)
+  (setq ps-spool-duplex t
+       ps-print-color-p nil
+       ps-lpr-command "lpr"
+       ps-lpr-switches '("-Jjct,duplex_long"))
+  'ps-jts-ps-setup)
+
+;; WARNING! The following function is a *sample* only, and is *not*
+;; meant to be used as a whole unless it corresponds to your needs.
+;; (In fact, this is a copy of Jack's setup for ps-print --
+;; I would not be that surprised if it was useful to *anybody*,
+;; without modification.)
+
+(defun ps-jack-setup ()
+  (setq ps-print-color-p  nil
+       ps-lpr-command    "lpr"
+       ps-lpr-switches   nil
+
+       ps-paper-type        'a4
+       ps-landscape-mode    t
+       ps-number-of-columns 2
+
+       ps-left-margin   (/ (* 72  1.0) 2.54) ;  1.0 cm
+       ps-right-margin  (/ (* 72  1.0) 2.54) ;  1.0 cm
+       ps-inter-column  (/ (* 72  1.0) 2.54) ;  1.0 cm
+       ps-bottom-margin (/ (* 72  1.5) 2.54) ;  1.5 cm
+       ps-top-margin    (/ (* 72  1.5) 2.54) ;  1.5 cm
+       ps-header-offset (/ (* 72  1.0) 2.54) ;  1.0 cm
+       ps-header-line-pad    .15
+       ps-print-header       t
+       ps-print-header-frame t
+       ps-header-lines       2
+       ps-show-n-of-n        t
+       ps-spool-duplex       nil
+
+       ps-font-family             'Courier
+       ps-font-size               5.5
+       ps-header-font-family      'Helvetica
+       ps-header-font-size        6
+       ps-header-title-font-size  8)
+  'ps-jack-setup)
+
+\f
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(provide 'ps-samp)
+
+;; arch-tag: 99c415d3-be39-43c6-aa32-7ee33ba19600
+;;; ps-samp.el ends here
index 156625bd41a7ac10c1d665ca3b57f6e061a8cb12..56bb308086200bdd3c72d092f637ecf567ba957e 100644 (file)
@@ -135,8 +135,7 @@ or remove a tab stop.  \\[ruler-mode-toggle-show-tab-stops] or
   "Ensure WIDGET value is a valid character value."
   (save-excursion
     (let ((value (widget-value widget)))
-      (if (char-valid-p value)
-          nil
+      (unless (characterp value)
         (widget-put widget :error
                     (format "Invalid character value: %S" value))
         widget))))
@@ -667,7 +666,8 @@ Optional argument PROPS specifies other text properties to apply."
          ;; Create an "clean" ruler.
          (ruler
           (propertize
-           (make-string w ruler-mode-basic-graduation-char)
+           (string-to-multibyte 
+           (make-string w ruler-mode-basic-graduation-char))
            'face 'ruler-mode-default
            'local-map ruler-mode-map
            'help-echo (cond
index e9e5e2185f600aa607a4ae158e9ae1e1e3ade33e..35c103d1c1505740d17f38a96a0cea0962826965 100644 (file)
 
 ;;; Code:
 
+(defvar selection-coding-system nil
+  "Coding system for communicating with other X clients.
+
+When sending text via selection and clipboard, if the target
+data-type matches with the type of this coding system, it is used
+for encoding the text.  Otherwise (including the case that this
+variable is nil), a proper coding system is used as below:
+
+data-type      coding system
+---------      -------------
+UTF8_STRING    utf-8
+COMPOUND_TEXT  compound-text-with-extensions
+STRING         iso-latin-1
+C_STRING       no-conversion
+
+When receiving text, if this coding system is non-nil, it is used
+for decoding regardless of the data-type.  If this is nil, a
+proper coding system is used according to the data-type as above.
+
+See also the documentation of the variable `x-select-request-type' how
+to control which data-type to request for receiving text.
+
+The default value is nil.")
+
+(defvar next-selection-coding-system nil
+  "Coding system for the next communication with other X clients.
+Usually, `selection-coding-system' is used for communicating with
+other X clients.  But, if this variable is set, it is used for
+the next communication only.  After the communication, this
+variable is set to nil.")
+
 ;; This is for temporary compatibility with pre-release Emacs 19.
 (defalias 'x-selection 'x-get-selection)
 (defun x-get-selection (&optional type data-type)
@@ -48,11 +79,21 @@ in `selection-converter-alist', which see."
        coding)
     (when (and (stringp data)
               (setq data-type (get-text-property 0 'foreign-selection data)))
-      (setq coding (if (eq data-type 'UTF8_STRING)
-                      'utf-8
-                    (or next-selection-coding-system
-                        selection-coding-system))
-           data (decode-coding-string data coding))
+      (setq coding (or next-selection-coding-system
+                      selection-coding-system
+                      (cond ((eq data-type 'UTF8_STRING)
+                             'utf-8)
+                            ((eq data-type 'COMPOUND-TEXT)
+                             'compound-text-with-extensions)
+                            ((eq data-type 'C_STRING)
+                             nil)
+                            ((eq data-type 'STRING)
+                             'iso-8859-1)
+                            (t
+                             (error "Unknow selection data type: %S" type))))
+           data (if coding (decode-coding-string data coding)
+                  (string-to-multibyte data)))
+      (setq next-selection-coding-system nil)
       (put-text-property 0 (length data) 'foreign-selection data-type data))
     data))
 
@@ -157,41 +198,6 @@ Cut buffers are considered obsolete; you should use selections instead."
 ;;; Every selection type that Emacs handles is implemented this way, except
 ;;; for TIMESTAMP, which is a special case.
 
-(eval-when-compile (require 'ccl))
-
-(define-ccl-program ccl-check-utf-8
-  '(0
-    ((r0 = 1)
-     (loop
-      (read-if (r1 < #x80) (repeat)
-       ((r0 = 0)
-        (if (r1 < #xC2) (end))
-        (read r2)
-        (if ((r2 & #xC0) != #x80) (end))
-        (if (r1 < #xE0) ((r0 = 1) (repeat)))
-        (read r2)
-        (if ((r2 & #xC0) != #x80) (end))
-        (if (r1 < #xF0) ((r0 = 1) (repeat)))
-        (read r2)
-        (if ((r2 & #xC0) != #x80) (end))
-        (if (r1 < #xF8) ((r0 = 1) (repeat)))
-        (read r2)
-        (if ((r2 & #xC0) != #x80) (end))
-        (if (r1 == #xF8) ((r0 = 1) (repeat)))
-        (end))))))
-  "Check if the input unibyte string is a valid UTF-8 sequence or not.
-If it is valid, set the register `r0' to 1, else set it to 0.")
-
-(defun string-utf-8-p (string)
-  "Return non-nil if STRING is a unibyte string of valid UTF-8 sequence."
-  (if (or (not (stringp string))
-         (multibyte-string-p string))
-      (error "Not a unibyte string: %s" string))
-  (let ((status (make-vector 9 0)))
-    (ccl-execute-on-string ccl-check-utf-8 status string)
-    (= (aref status 0) 1)))
-
-
 (defun xselect-convert-to-string (selection type value)
   (let (str coding)
     ;; Get the actual string from VALUE.
@@ -224,52 +230,54 @@ If it is valid, set the register `r0' to 1, else set it to 0.")
          str
        (setq coding (or next-selection-coding-system selection-coding-system))
        (if coding
-           (setq coding (coding-system-base coding))
-         (setq coding 'raw-text))
+           (setq coding (coding-system-base coding)))
        (let ((inhibit-read-only t))
          ;; Suppress producing escape sequences for compositions.
          (remove-text-properties 0 (length str) '(composition nil) str)
-         (cond
-          ((eq type 'TEXT)
-           (if (not (multibyte-string-p str))
-               ;; Don't have to encode unibyte string.
-               (setq type 'STRING)
-             ;; If STR contains only ASCII, Latin-1, and raw bytes,
-             ;; encode STR by iso-latin-1, and return it as type
-             ;; `STRING'.  Otherwise, encode STR by CODING.  In that
-             ;; case, the returing type depends on CODING.
-             (let ((charsets (find-charset-string str)))
-               (setq charsets
-                     (delq 'ascii
-                           (delq 'latin-iso8859-1
-                                 (delq 'eight-bit-control
-                                       (delq 'eight-bit-graphic charsets)))))
-               (if charsets
-                   (setq str (encode-coding-string str coding)
-                         type (if (memq coding '(compound-text
-                                                 compound-text-with-extensions))
-                                  'COMPOUND_TEXT
-                                'STRING))
-                 (setq type 'STRING
-                       str (encode-coding-string str 'iso-latin-1))))))
-
-          ((eq type 'COMPOUND_TEXT)
-           (setq str (encode-coding-string str coding)))
-
-          ((eq type 'STRING)
-           (if (memq coding '(compound-text
-                              compound-text-with-extensions))
-               (setq str (string-make-unibyte str))
-             (setq str (encode-coding-string str coding))))
-
-          ((eq type 'UTF8_STRING)
-           (if (multibyte-string-p str)
-               (setq str (encode-coding-string str 'utf-8)))
-           (if (not (string-utf-8-p str))
-               (setq str nil))) ;; Decline request as we don't have UTF-8 data.
-          (t
-           (error "Unknow selection type: %S" type))
-          )))
+         (if (not (multibyte-string-p str))
+             ;; Don't have to encode unibyte string.
+             (setq type 'C_STRING)
+           (if (eq type 'TEXT)
+               ;; TEXT is a polimorphic target.  We must select the
+               ;; actual type from `UTF8_STRING', `COMPOUND_TEXT',
+               ;; `STRING', and `C_STRING'.
+               (let (non-latin-1 non-unicode eight-bit)
+                 (mapc #'(lambda (x)
+                           (if (>= x #x100)
+                               (if (< x #x110000)
+                                   (setq non-latin-1 t)
+                                 (if (< x #x3FFF80)
+                                     (setq non-unicode t)
+                                   (setq eight-bit t)))))
+                       str)
+                 (setq type (if non-unicode 'COMPOUND_TEXT
+                              (if non-latin-1 'UTF8_STRING
+                                (if eight-bit 'C_STRING 'STRING))))))
+           (cond
+            ((eq type 'UTF8_STRING)
+             (if (or (not coding)
+                     (not (eq (coding-system-type coding) 'utf-8)))
+                 (setq coding 'utf-8))
+             (setq str (encode-coding-string str coding)))
+
+            ((eq type 'STRING)
+             (if (or (not coding)
+                     (not (eq (coding-system-type coding) 'charset)))
+                 (setq coding 'iso-8859-1))
+             (setq str (encode-coding-string str coding)))
+
+            ((eq type 'COMPOUND_TEXT)
+             (if (or (not coding)
+                     (not (eq (coding-system-type coding) 'iso-2022)))
+                 (setq coding 'compound-text-with-extensions))
+             (setq str (encode-coding-string str coding)))
+
+            ((eq type 'C_STRING)
+             (setq str (string-make-unibyte str)))
+
+            (t
+             (error "Unknow selection type: %S" type))
+            ))))
 
       (setq next-selection-coding-system nil)
       (cons type str))))
index b92967da11203ba5cf183de7e14528842ebacd29..565632c344f1d8b9c8fec265c513fea2ff1b1264 100644 (file)
@@ -961,9 +961,9 @@ in *Help* buffer.  See also the command `describe-char'."
        (if (or (not coding)
                (eq (coding-system-type coding) t))
            (setq coding default-buffer-file-coding-system))
-       (if (not (char-valid-p char))
+       (if (eq (char-charset char) 'eight-bit)
            (setq encoding-msg
-                 (format "(%d, #o%o, #x%x, invalid)" char char char))
+                 (format "(%d, #o%o, #x%x, raw-byte)" char char char))
          ;; Check if the character is displayed with some `display'
          ;; text property.  In that case, set under-display to the
          ;; buffer substring covered by that property.
index 4425bb0389af3b300f647a4172a452cace1a4c4d..a49fbdcd954e81c2ecb2f7013e79f6dedb4ac57e 100644 (file)
@@ -355,7 +355,7 @@ automatically, and you are prompted to fill in the variable parts.")))
 
 (defun skeleton-internal-1 (element &optional literal recursive)
   (cond
-   ((char-or-string-p element)
+   ((or (integerp element) (stringp element))
     (if (and (integerp element)                ; -num
             (< element 0))
        (if skeleton-untabify
index 24c29f52a86858fd83c779edbe8cdf3d85f1b56a..8ab50efa877d7989a09204d503367b22d13cb93c 100644 (file)
@@ -837,6 +837,7 @@ opening the first frame (e.g. open a connection to an X server).")
   (custom-reevaluate-setting 'file-name-shadow-mode)
   (custom-reevaluate-setting 'send-mail-function)
   (custom-reevaluate-setting 'focus-follows-mouse)
+  (custom-reevaluate-setting 'global-auto-composition-mode)
 
   (normal-erase-is-backspace-setup-frame)
 
index 3461700d6cb3bc817c238fc691bec3e41283a916..d16d4d26693ce862d39c78180470f76c8baee121 100644 (file)
@@ -739,7 +739,7 @@ The normal global definition of the character C-x indirects to this keymap.")
           ;; Filter out integers too large to be events.
           ;; M is the biggest modifier.
           (zerop (logand obj (lognot (1- (lsh ?\M-\^@ 1)))))
-          (char-valid-p (event-basic-type obj)))
+          (characterp (event-basic-type obj)))
       (and (symbolp obj)
           (get obj 'event-symbol-elements))
       (and (consp obj)
index 80e642d6666ea7676fe2d393b353eddfb0458e39..324580767da4f4c04ec6b1ae307bcf5caf8e8d23 100644 (file)
@@ -129,16 +129,17 @@ This information is useful, but it takes screen space away from file names."
   :group 'tar)
 
 (defvar tar-parse-info nil)
-;; Be sure that this variable holds byte position, not char position.
 (defvar tar-header-offset nil)
 (defvar tar-superior-buffer nil)
 (defvar tar-superior-descriptor nil)
 (defvar tar-subfile-mode nil)
+(defvar tar-file-name-coding-system nil)
 
 (put 'tar-parse-info 'permanent-local t)
 (put 'tar-header-offset 'permanent-local t)
 (put 'tar-superior-buffer 'permanent-local t)
 (put 'tar-superior-descriptor 'permanent-local t)
+(put 'tar-file-name-coding-system 'permanent-local t)
 \f
 (defmacro tar-setf (form val)
   "A mind-numbingly simple implementation of setf."
@@ -203,6 +204,7 @@ This information is useful, but it takes screen space away from file names."
   "Return a `tar-header' structure.
 This is a list of name, mode, uid, gid, size,
 write-date, checksum, link-type, and link-name."
+  (setq string (string-as-unibyte string))
   (cond ((< (length string) 512) nil)
        (;(some 'plusp string)           ; <-- oops, massive cycle hog!
         (or (not (= 0 (aref string 0))) ; This will do.
@@ -231,15 +233,10 @@ write-date, checksum, link-type, and link-name."
           (setq linkname (substring string tar-link-offset link-end))
           (if default-enable-multibyte-characters
               (setq name
-                    (decode-coding-string name
-                                          (or file-name-coding-system
-                                              default-file-name-coding-system
-                                              'undecided))
+                    (decode-coding-string name tar-file-name-coding-system)
                     linkname
                     (decode-coding-string linkname
-                                          (or file-name-coding-system
-                                              default-file-name-coding-system
-                                              'undecided))))
+                                          tar-file-name-coding-system)))
           (if (and (null link-p) (string-match "/\\'" name)) (setq link-p 5)) ; directory
           (make-tar-header
             name
@@ -298,6 +295,7 @@ write-date, checksum, link-type, and link-name."
 
 (defun tar-header-block-checksum (string)
   "Compute and return a tar-acceptable checksum for this block."
+  (setq string (string-as-unibyte string))
   (let* ((chk-field-start tar-chk-offset)
         (chk-field-end (+ chk-field-start 8))
         (sum 0)
@@ -400,7 +398,8 @@ MODE should be an integer which is a file mode value."
                (unless (file-directory-p name)
                  (write-region start end name))
                (set-file-modes name (tar-header-mode tokens))))))
-      (set-buffer-multibyte multibyte))))
+      (if multibyte
+         (set-buffer-multibyte 'to)))))
 
 (defun tar-summarize-buffer ()
   "Parse the contents of the tar file in the current buffer.
@@ -429,11 +428,11 @@ is visible (and the real data of the buffer is hidden)."
           (if (< size 0)
               (error "%s has size %s - corrupted"
                      (tar-header-name tokens) size))
-                                        ;
-                                        ; This is just too slow.  Don't really need it anyway....
-                                        ;(tar-header-block-check-checksum
-                                        ;  hblock (tar-header-block-checksum hblock)
-                                        ;  (tar-header-name tokens))
+          ;;
+          ;; This is just too slow.  Don't really need it anyway....
+          ;;(tar-header-block-check-checksum
+          ;;  hblock (tar-header-block-checksum hblock)
+          ;;  (tar-header-name tokens))
 
           (push (make-tar-desc pos tokens) result)
 
@@ -441,7 +440,7 @@ is visible (and the real data of the buffer is hidden)."
                (> size 0)
                (setq pos
                      (+ pos 512 (ash (ash (1- size) -9) 9)) ; this works
-                                        ;(+ pos (+ size (- 512 (rem (1- size) 512)))) ; this doesn't
+                     ;;(+ pos (+ size (- 512 (rem (1- size) 512)))) ; this doesn't
                      ))))
       (make-local-variable 'tar-parse-info)
       (setq tar-parse-info (nreverse result))
@@ -450,22 +449,24 @@ is visible (and the real data of the buffer is hidden)."
       (if (eq tokens 'empty-tar-block)
           (progress-reporter-done progress-reporter)
         (message "Warning: premature EOF parsing tar file")))
-    (set-buffer-multibyte default-enable-multibyte-characters)
+    ;; Obey the user's preference for the use of uni/multibytes.
+    (if default-enable-multibyte-characters
+       (set-buffer-multibyte 'to))
     (goto-char (point-min))
-    (let ((inhibit-read-only t))
-      ;; Collect summary lines and insert them all at once since tar files
-      ;; can be pretty big.
-      (let ((total-summaries
-            (mapconcat
-             (lambda (tar-desc)
-               (tar-header-block-summarize (tar-desc-tokens tar-desc)))
-             tar-parse-info
-             "\n")))
-       (insert total-summaries "\n"))
-      (narrow-to-region (point-min) (point))
-      (set (make-local-variable 'tar-header-offset) (position-bytes (point)))
-      (goto-char (point-min))
-      (restore-buffer-modified-p modified))))
+    (let ((inhibit-read-only t)
+          ;; Collect summary lines and insert them all at once since tar files
+          ;; can be pretty big.
+          (total-summaries
+           (mapconcat
+            (lambda (tar-desc)
+              (tar-header-block-summarize (tar-desc-tokens tar-desc)))
+            tar-parse-info
+            "\n")))
+      (insert total-summaries "\n"))
+    (narrow-to-region (point-min) (point))
+    (set (make-local-variable 'tar-header-offset) (position-bytes (point)))
+    (goto-char (point-min))
+    (restore-buffer-modified-p modified)))
 \f
 (defvar tar-mode-map
   (let ((map (make-keymap)))
@@ -497,50 +498,50 @@ is visible (and the real data of the buffer is hidden)."
     (define-key map "M" 'tar-chmod-entry)
     (define-key map "G" 'tar-chgrp-entry)
     (define-key map "O" 'tar-chown-entry)
-
+\f
     ;; Make menu bar items.
 
     ;; Get rid of the Edit menu bar item to save space.
     (define-key map [menu-bar edit] 'undefined)
 
     (define-key map [menu-bar immediate]
-      (cons "Immediate" (make-sparse-keymap "Immediate")))
+  (cons "Immediate" (make-sparse-keymap "Immediate")))
 
     (define-key map [menu-bar immediate view]
-      '("View This File" . tar-view))
+  '("View This File" . tar-view))
     (define-key map [menu-bar immediate display]
-      '("Display in Other Window" . tar-display-other-window))
+  '("Display in Other Window" . tar-display-other-window))
     (define-key map [menu-bar immediate find-file-other-window]
-      '("Find in Other Window" . tar-extract-other-window))
+  '("Find in Other Window" . tar-extract-other-window))
     (define-key map [menu-bar immediate find-file]
-      '("Find This File" . tar-extract))
+  '("Find This File" . tar-extract))
 
     (define-key map [menu-bar mark]
-      (cons "Mark" (make-sparse-keymap "Mark")))
+  (cons "Mark" (make-sparse-keymap "Mark")))
 
     (define-key map [menu-bar mark unmark-all]
-      '("Unmark All" . tar-clear-modification-flags))
+  '("Unmark All" . tar-clear-modification-flags))
     (define-key map [menu-bar mark deletion]
-      '("Flag" . tar-flag-deleted))
+  '("Flag" . tar-flag-deleted))
     (define-key map [menu-bar mark unmark]
-      '("Unflag" . tar-unflag))
+  '("Unflag" . tar-unflag))
 
     (define-key map [menu-bar operate]
-      (cons "Operate" (make-sparse-keymap "Operate")))
+  (cons "Operate" (make-sparse-keymap "Operate")))
 
     (define-key map [menu-bar operate chown]
-      '("Change Owner..." . tar-chown-entry))
+  '("Change Owner..." . tar-chown-entry))
     (define-key map [menu-bar operate chgrp]
-      '("Change Group..." . tar-chgrp-entry))
+  '("Change Group..." . tar-chgrp-entry))
     (define-key map [menu-bar operate chmod]
-      '("Change Mode..." . tar-chmod-entry))
+  '("Change Mode..." . tar-chmod-entry))
     (define-key map [menu-bar operate rename]
-      '("Rename to..." . tar-rename-entry))
+  '("Rename to..." . tar-rename-entry))
     (define-key map [menu-bar operate copy]
-      '("Copy to..." . tar-copy))
+  '("Copy to..." . tar-copy))
     (define-key map [menu-bar operate expunge]
-      '("Expunge Marked Files" . tar-expunge))
-
+  '("Expunge Marked Files" . tar-expunge))
+\f
     map)
   "Local keymap for Tar mode listings.")
 
@@ -575,6 +576,10 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
   (set (make-local-variable 'revert-buffer-function) 'tar-mode-revert)
   (set (make-local-variable 'local-enable-local-variables) nil)
   (set (make-local-variable 'next-line-add-newlines) nil)
+  (set (make-local-variable 'tar-file-name-coding-system)
+       (or file-name-coding-system
+          default-file-name-coding-system
+          locale-coding-system))
   ;; Prevent loss of data when saving the file.
   (set (make-local-variable 'file-precious-flag) t)
   (auto-save-mode 0)
@@ -582,7 +587,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
   (buffer-disable-undo)
   (widen)
   (if (and (boundp 'tar-header-offset) tar-header-offset)
-      (narrow-to-region (point-min) (byte-to-position tar-header-offset))
+      (narrow-to-region (point-min) tar-header-offset)
     (tar-summarize-buffer)
     (tar-next-line 0)))
 
@@ -701,7 +706,6 @@ appear on disk when you save the tar-file's buffer."
                   (- tar-header-offset (point-min))))
         (end (+ start size)))
     (let* ((tar-buffer (current-buffer))
-          (tar-buffer-multibyte enable-multibyte-characters)
           (tarname (buffer-name))
           (bufname (concat (file-name-nondirectory name)
                            " ("
@@ -712,89 +716,74 @@ appear on disk when you save the tar-file's buffer."
                                  ;; `:' is not allowed on Windows
                                  (concat tarname "!" name)))
           (buffer (get-file-buffer new-buffer-file-name))
-          (just-created nil))
+          (just-created nil)
+          (pos (point))
+          undo-list)
       (unless buffer
        (setq buffer (generate-new-buffer bufname))
+       (save-excursion
+         (set-buffer buffer)
+         (setq undo-list buffer-undo-list
+               buffer-undo-list t))
        (setq bufname (buffer-name buffer))
        (setq just-created t)
        (unwind-protect
-           (progn
+           (let (coding)
+             (narrow-to-region start end)
+             (goto-char start)
+             (setq coding (or coding-system-for-read
+                              (and set-auto-coding-function
+                                   (funcall set-auto-coding-function
+                                            name (- end start)))
+                              ;; The following binding causes
+                              ;; find-buffer-file-type-coding-system
+                              ;; (defined on dos-w32.el) to act as if
+                              ;; the file being extracted existed, so
+                              ;; that the file's contents' encoding and
+                              ;; EOL format are auto-detected.
+                              (let ((file-name-handler-alist
+                                     '(("" . tar-file-name-handler))))
+                                (car (find-operation-coding-system
+                                      'insert-file-contents
+                                      (cons name (current-buffer)) t)))))
+             (if (or (not coding)
+                     (eq (coding-system-type coding) 'undecided))
+                 (setq coding (detect-coding-region start end t)))
+             (if (and default-enable-multibyte-characters
+                      (coding-system-get coding :for-unibyte))
+                 (save-excursion
+                   (set-buffer buffer)
+                   (set-buffer-multibyte nil)))
              (widen)
-             (set-buffer-multibyte nil)
+             (decode-coding-region start end coding buffer)
              (save-excursion
                (set-buffer buffer)
-               (let ((buffer-undo-list t))
-                 (if enable-multibyte-characters
-                     (progn
-                       ;; We must avoid unibyte->multibyte conversion.
-                       (set-buffer-multibyte nil)
-                       (insert-buffer-substring tar-buffer start end)
-                       (set-buffer-multibyte t))
-                   (insert-buffer-substring tar-buffer start end))
-                 (goto-char (point-min))
-                 (setq buffer-file-name new-buffer-file-name)
-                 (setq buffer-file-truename
-                       (abbreviate-file-name buffer-file-name))
-                 ;; We need to mimic the parts of insert-file-contents
-                 ;; which determine the coding-system and decode the text.
-                 (let ((coding
-                        (or coding-system-for-read
-                            (and set-auto-coding-function
-                                 (save-excursion
-                                   (funcall set-auto-coding-function
-                                            name (- (point-max) (point)))))
-                            ;; The following binding causes
-                            ;; find-buffer-file-type-coding-system
-                            ;; (defined on dos-w32.el) to act as if
-                            ;; the file being extracted existed, so
-                            ;; that the file's contents' encoding and
-                            ;; EOL format are auto-detected.
-                            (let ((file-name-handler-alist
-                                   '(("" . tar-file-name-handler))))
-                              (car (find-operation-coding-system
-                                    'insert-file-contents
-                                    (cons name (current-buffer)) t)))))
-                       (multibyte enable-multibyte-characters)
-                       (detected (detect-coding-region
-                                  (point-min)
-                                  (min (+ (point-min) 16384) (point-max)) t)))
-                   (if coding
-                       (or (numberp (coding-system-eol-type coding))
-                           (vectorp (coding-system-eol-type detected))
-                           (setq coding (coding-system-change-eol-conversion
-                                         coding
-                                         (coding-system-eol-type detected))))
-                     (setq coding
-                           (find-new-buffer-file-coding-system detected)))
-                   (if (or (eq coding 'no-conversion)
-                           (eq (coding-system-type coding) 5))
-                       (setq multibyte (set-buffer-multibyte nil)))
-                   (or multibyte
-                       (setq coding
-                             (coding-system-change-text-conversion
-                              coding 'raw-text)))
-                   (decode-coding-region (point-min) (point-max) coding)
-                   ;; Force buffer-file-coding-system to what
-                   ;; decode-coding-region actually used.
-                   (set-buffer-file-coding-system last-coding-system-used t))
-                 ;; Set the default-directory to the dir of the
-                 ;; superior buffer.
-                 (setq default-directory
-                       (save-excursion
-                         (set-buffer tar-buffer)
-                         default-directory))
-                 (normal-mode)  ; pick a mode.
-                 (rename-buffer bufname)
-                 (make-local-variable 'tar-superior-buffer)
-                 (make-local-variable 'tar-superior-descriptor)
-                 (setq tar-superior-buffer tar-buffer)
-                 (setq tar-superior-descriptor descriptor)
-                 (setq buffer-read-only read-only-p)
-                 (set-buffer-modified-p nil))
+               (goto-char (point-min))
+               (setq buffer-file-name new-buffer-file-name)
+               (setq buffer-file-truename
+                     (abbreviate-file-name buffer-file-name))
+               ;; Force buffer-file-coding-system to what
+               ;; decode-coding-region actually used.
+               (set-buffer-file-coding-system last-coding-system-used t)
+               ;; Set the default-directory to the dir of the
+               ;; superior buffer.
+               (setq default-directory
+                     (save-excursion
+                       (set-buffer tar-buffer)
+                       default-directory))
+               (normal-mode)  ; pick a mode.
+               (rename-buffer bufname)
+               (make-local-variable 'tar-superior-buffer)
+               (make-local-variable 'tar-superior-descriptor)
+               (setq tar-superior-buffer tar-buffer)
+               (setq tar-superior-descriptor descriptor)
+               (setq buffer-read-only read-only-p)
+               (set-buffer-modified-p nil)
+               (setq buffer-undo-list undo-list)
                (tar-subfile-mode 1))
              (set-buffer tar-buffer))
          (narrow-to-region (point-min) tar-header-offset)
-         (set-buffer-multibyte tar-buffer-multibyte)))
+         (goto-char pos)))
       (if view-p
          (view-buffer buffer (and just-created 'kill-buffer))
        (if (eq other-window-p 'display)
@@ -852,7 +841,6 @@ the current tar-entry."
         (start (+ (tar-desc-data-start descriptor)
                   (- tar-header-offset (point-min))))
         (end (+ start size))
-        (multibyte enable-multibyte-characters)
         (inhibit-file-name-handlers inhibit-file-name-handlers)
         (inhibit-file-name-operation inhibit-file-name-operation))
     (save-restriction
@@ -866,11 +854,8 @@ the current tar-entry."
                      (and (eq inhibit-file-name-operation 'write-region)
                           inhibit-file-name-handlers))
                inhibit-file-name-operation 'write-region))
-      (unwind-protect
-         (let ((coding-system-for-write 'no-conversion))
-           (set-buffer-multibyte nil)
-           (write-region start end to-file nil nil nil t))
-       (set-buffer-multibyte multibyte)))
+      (let ((coding-system-for-write 'no-conversion))
+       (write-region start end to-file nil nil nil t)))
     (message "Copied tar entry %s to %s" name to-file)))
 
 (defun tar-flag-deleted (p &optional unflag)
@@ -899,7 +884,6 @@ With a prefix argument, un-mark that many files backward."
   (tar-flag-deleted (- p) t))
 
 
-;; When this function is called, it is sure that the buffer is unibyte.
 (defun tar-expunge-internal ()
   "Expunge the tar-entry specified by the current line."
   (let* ((descriptor (tar-current-descriptor))
@@ -949,11 +933,8 @@ for this to be permanent."
   (interactive)
   (if (or noconfirm
          (y-or-n-p "Expunge files marked for deletion? "))
-      (let ((n 0)
-           (multibyte enable-multibyte-characters))
+      (let ((n 0))
        (save-excursion
-          (widen)
-          (set-buffer-multibyte nil)
          (goto-char (point-min))
          (while (not (eobp))
            (if (looking-at "D")
@@ -962,8 +943,6 @@ for this to be permanent."
                (forward-line 1)))
          ;; after doing the deletions, add any padding that may be necessary.
          (tar-pad-to-blocksize)
-          (widen)
-          (set-buffer-multibyte multibyte)
          (narrow-to-region (point-min) tar-header-offset))
        (if (zerop n)
            (message "Nothing to expunge.")
@@ -975,7 +954,7 @@ for this to be permanent."
   (interactive)
   (save-excursion
     (goto-char (point-min))
-    (while (< (position-bytes (point)) tar-header-offset)
+    (while (< (point) tar-header-offset)
       (if (not (eq (following-char) ?\s))
          (progn (delete-char 1) (insert " ")))
       (forward-line 1))))
@@ -1045,15 +1024,13 @@ for this to be permanent."
     (list (read-string "New name: "
            (tar-header-name (tar-desc-tokens (tar-current-descriptor))))))
   (if (string= "" new-name) (error "zero length name"))
-  (if (> (length new-name) 98) (error "name too long"))
-  (tar-setf (tar-header-name (tar-desc-tokens (tar-current-descriptor)))
-           new-name)
-  (if (multibyte-string-p new-name)
-      (setq new-name (encode-coding-string new-name
-                                          (or file-name-coding-system
-                                              default-file-name-coding-system))))
-  (tar-alter-one-field 0
-    (substring (concat new-name (make-string 99 0)) 0 99)))
+  (let ((encoded-new-name (encode-coding-string new-name
+                                               tar-file-name-coding-system)))
+    (if (> (length encoded-new-name) 98) (error "name too long"))
+    (tar-setf (tar-header-name (tar-desc-tokens (tar-current-descriptor)))
+             new-name)
+    (tar-alter-one-field 0
+     (substring (concat encoded-new-name (make-string 99 0)) 0 99))))
 
 
 (defun tar-chmod-entry (new-mode)
@@ -1070,8 +1047,7 @@ for this to be permanent."
 
 (defun tar-alter-one-field (data-position new-data-string)
   (let* ((descriptor (tar-current-descriptor))
-        (tokens (tar-desc-tokens descriptor))
-        (multibyte enable-multibyte-characters))
+        (tokens (tar-desc-tokens descriptor)))
     (unwind-protect
        (save-excursion
          ;;
@@ -1081,10 +1057,9 @@ for this to be permanent."
            (forward-line 1)
            (delete-region p (point))
            (insert (tar-header-block-summarize tokens) "\n")
-           (setq tar-header-offset (position-bytes (point-max))))
+           (setq tar-header-offset (point-max)))
 
          (widen)
-         (set-buffer-multibyte nil)
          (let* ((start (+ (tar-desc-data-start descriptor)
                           (- tar-header-offset (point-min))
                            -512)))
@@ -1092,7 +1067,13 @@ for this to be permanent."
            ;; delete the old field and insert a new one.
            (goto-char (+ start data-position))
            (delete-region (point) (+ (point) (length new-data-string))) ; <--
-           (insert new-data-string) ; <--
+
+           ;; As new-data-string is unibyte, just inserting it will
+           ;; make eight-bit chars to the corresponding multibyte
+           ;; chars.  This avoid that conversion, i.e., eight-bit
+           ;; chars are converted to multibyte form of eight-bit
+           ;; chars.
+           (insert (string-to-multibyte new-data-string))
            ;;
            ;; compute a new checksum and insert it.
            (let ((chk (tar-header-block-checksum
@@ -1110,7 +1091,6 @@ for this to be permanent."
                chk (tar-header-name tokens))
              )))
       (narrow-to-region (point-min) tar-header-offset)
-      (set-buffer-multibyte multibyte)
       (tar-next-line 0))))
 
 
@@ -1135,14 +1115,9 @@ to make your changes permanent."
     (error "This buffer doesn't have an index into its superior tar file!"))
   (save-excursion
   (let ((subfile (current-buffer))
-       (subfile-multibyte enable-multibyte-characters)
        (coding buffer-file-coding-system)
        (descriptor tar-superior-descriptor)
        subfile-size)
-    ;; We must make the current buffer unibyte temporarily to avoid
-    ;; multibyte->unibyte conversion in `insert-buffer-substring'.
-    (set-buffer-multibyte nil)
-    (setq subfile-size (buffer-size))
     (set-buffer tar-superior-buffer)
     (let* ((tokens (tar-desc-tokens descriptor))
           (start (tar-desc-data-start descriptor))
@@ -1150,28 +1125,28 @@ to make your changes permanent."
           (size (tar-header-size tokens))
           (size-pad (ash (ash (+ size 511) -9) 9))
           (head (memq descriptor tar-parse-info))
-          (following-descs (cdr head))
-          (tar-buffer-multibyte enable-multibyte-characters))
+          (following-descs (cdr head)))
       (if (not head)
        (error "Can't find this tar file entry in its parent tar file!"))
       (unwind-protect
        (save-excursion
-       (widen)
-       (set-buffer-multibyte nil)
        ;; delete the old data...
        (let* ((data-start (+ start (- tar-header-offset (point-min))))
               (data-end (+ data-start (ash (ash (+ size 511) -9) 9))))
-         (delete-region data-start data-end)
+         (narrow-to-region data-start data-end)
+         (delete-region (point-min) (point-max))
          ;; insert the new data...
          (goto-char data-start)
-         (insert-buffer-substring subfile)
-         (setq subfile-size
-               (encode-coding-region
-                data-start (+ data-start subfile-size) coding))
+         (save-excursion
+           (set-buffer subfile)
+           (save-restriction
+             (widen)
+             (encode-coding-region 1 (point-max) coding tar-superior-buffer)))
+         (setq subfile-size (- (point-max) (point-min)))
          ;;
          ;; pad the new data out to a multiple of 512...
          (let ((subfile-size-pad (ash (ash (+ subfile-size 511) -9) 9)))
-           (goto-char (+ data-start subfile-size))
+           (goto-char (point-max))
            (insert (make-string (- subfile-size-pad subfile-size) 0))
            ;;
            ;; update the data pointer of this and all following files...
@@ -1182,6 +1157,7 @@ to make your changes permanent."
                          (+ (tar-desc-data-start desc) difference))))
            ;;
            ;; Update the size field in the header block.
+           (widen)
            (let ((header-start (- data-start 512)))
              (goto-char (+ header-start tar-size-offset))
              (delete-region (point) (+ (point) 12))
@@ -1220,19 +1196,16 @@ to make your changes permanent."
                ;; Insert the new text after the old, before deleting,
                ;; to preserve the window start.
                (let ((line (tar-header-block-summarize tokens t)))
-                 (insert-before-markers (string-as-unibyte line) "\n"))
+                 (insert-before-markers line "\n"))
                (delete-region p after)
                (setq tar-header-offset (marker-position m)))
              )))
        ;; after doing the insertion, add any final padding that may be necessary.
        (tar-pad-to-blocksize))
-       (narrow-to-region (point-min) tar-header-offset)
-       (set-buffer-multibyte tar-buffer-multibyte)))
+       (narrow-to-region (point-min) tar-header-offset)))
     (set-buffer-modified-p t)   ; mark the tar file as modified
     (tar-next-line 0)
     (set-buffer subfile)
-    ;; Restore the buffer multibyteness.
-    (set-buffer-multibyte subfile-multibyte)
     (set-buffer-modified-p nil) ; mark the tar subfile as unmodified
     (message "Saved into tar-buffer `%s'.  Be sure to save that buffer!"
             (buffer-name tar-superior-buffer))
@@ -1280,14 +1253,13 @@ Leaves the region wide."
        ;; tar-header-offset turns out to be null for files fetched with W3,
        ;; at least.
        (let ((coding-system-for-write 'no-conversion))
-         (write-region (if tar-header-offset
-                           (byte-to-position tar-header-offset)
-                         (point-min))
+         (write-region (or tar-header-offset
+                           (point-min))
                        (point-max)
                        buffer-file-name nil t))
        (tar-clear-modification-flags)
        (set-buffer-modified-p nil))
-    (narrow-to-region (point-min) (byte-to-position tar-header-offset)))
+    (narrow-to-region (point-min) tar-header-offset))
   ;; Return t because we've written the file.
   t)
 \f
index 523d20670e689bee1a35b2a98f72a0734746dd43..21e7aa4f9571ab8edb0562c0ffbf07427cf82d97 100644 (file)
@@ -882,8 +882,6 @@ is buffer-local.")
     (unless (or (eq i ?O) (eq i 91))
                (define-key esc-map (make-string 1 i) 'term-send-raw-meta))
     (setq i (1+ i)))
-  (dolist (elm (generic-character-list))
-    (define-key map (vector elm) 'term-send-raw))
   (define-key map "\e" esc-map)
   (setq term-raw-map map)
   (setq term-raw-escape-map
index b6db7a2c6d8a555f227a63b485972e9bc2388d6b..641af430024450f58151fc7910290a6e3996488d 100644 (file)
@@ -1,4 +1,4 @@
-;;; mac-win.el --- parse switches controlling interface with Mac window system -*-coding: iso-2022-7bit;-*-
+;;; mac-win.el --- parse switches controlling interface with Mac window system -*-coding: utf-8
 
 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007 Free Software Foundation, Inc.
@@ -1143,95 +1143,145 @@ correspoinding TextEncodingBase value."
 (mac-add-charset-info "mac-dingbats" 34)
 (mac-add-charset-info "iso10646-1" 126) ; for ATSUI
 
-(cp-make-coding-system
- mac-centraleurroman
- [?\\e,AD\e(B ?\\e$,1  \e(B ?\\e$,1 !\e(B ?\\e,AI\e(B ?\\e$,1 $\e(B ?\\e,AV\e(B ?\\e,A\\e(B ?\\e,Aa\e(B ?\\e$,1 %\e(B ?\\e$,1 ,\e(B ?\\e,Ad\e(B ?\\e$,1 -\e(B ?\\e$,1 &\e(B ?\\e$,1 '\e(B ?\\e,Ai\e(B ?\\e$,1!9\e(B
-  ?\\e$,1!:\e(B ?\\e$,1 .\e(B ?\\e,Am\e(B ?\\e$,1 /\e(B ?\\e$,1 2\e(B ?\\e$,1 3\e(B ?\\e$,1 6\e(B ?\\e,As\e(B ?\\e$,1 7\e(B ?\\e,At\e(B ?\\e,Av\e(B ?\\e,Au\e(B ?\\e,Az\e(B ?\\e$,1 :\e(B ?\\e$,1 ;\e(B ?\\e,A|\e(B
-  ?\\e$,1s \e(B ?\\e,A0\e(B ?\\e$,1 8\e(B ?\\e,A#\e(B ?\\e,A'\e(B ?\\e$,1s"\e(B ?\\e,A6\e(B ?\\e,A_\e(B ?\\e,A.\e(B ?\\e,A)\e(B ?\\e$,1ub\e(B ?\\e$,1 9\e(B ?\\e,A(\e(B ?\\e$,1y \e(B ?\\e$,1 C\e(B ?\\e$,1 N\e(B
-  ?\\e$,1 O\e(B ?\\e$,1 J\e(B ?\\e$,1y$\e(B ?\\e$,1y%\e(B ?\\e$,1 K\e(B ?\\e$,1 V\e(B ?\\e$,1x"\e(B ?\\e$,1x1\e(B ?\\e$,1 b\e(B ?\\e$,1 [\e(B ?\\e$,1 \\e(B ?\\e$,1 ]\e(B ?\\e$,1 ^\e(B ?\\e$,1 Y\e(B ?\\e$,1 Z\e(B ?\\e$,1 e\e(B
-  ?\\e$,1 f\e(B ?\\e$,1 c\e(B ?\\e,A,\e(B ?\\e$,1x:\e(B ?\\e$,1 d\e(B ?\\e$,1 g\e(B ?\\e$,1x&\e(B ?\\e,A+\e(B ?\\e,A;\e(B ?\\e$,1s&\e(B ?\\e,A \e(B ?\\e$,1 h\e(B ?\\e$,1 p\e(B ?\\e,AU\e(B ?\\e$,1 q\e(B ?\\e$,1 l\e(B
-  ?\\e$,1rs\e(B ?\\e$,1rt\e(B ?\\e$,1r|\e(B ?\\e$,1r}\e(B ?\\e$,1rx\e(B ?\\e$,1ry\e(B ?\\e,Aw\e(B ?\\e$,2"*\e(B ?\\e$,1 m\e(B ?\\e$,1 t\e(B ?\\e$,1 u\e(B ?\\e$,1 x\e(B ?\\e$,1s9\e(B ?\\e$,1s:\e(B ?\\e$,1 y\e(B ?\\e$,1 v\e(B
-  ?\\e$,1 w\e(B ?\\e$,1! \e(B ?\\e$,1rz\e(B ?\\e$,1r~\e(B ?\\e$,1!!\e(B ?\\e$,1 z\e(B ?\\e$,1 {\e(B ?\\e,AA\e(B ?\\e$,1!$\e(B ?\\e$,1!%\e(B ?\\e,AM\e(B ?\\e$,1!=\e(B ?\\e$,1!>\e(B ?\\e$,1!*\e(B ?\\e,AS\e(B ?\\e,AT\e(B
-  ?\\e$,1!+\e(B ?\\e$,1!.\e(B ?\\e,AZ\e(B ?\\e$,1!/\e(B ?\\e$,1!0\e(B ?\\e$,1!1\e(B ?\\e$,1!2\e(B ?\\e$,1!3\e(B ?\\e,A]\e(B ?\\e,A}\e(B ?\\e$,1 W\e(B ?\\e$,1!;\e(B ?\\e$,1 a\e(B ?\\e$,1!<\e(B ?\\e$,1 B\e(B ?\\e$,1$g\e(B]
- "Mac Central European Roman Encoding (MIME:x-mac-centraleurroman).")
-(coding-system-put 'mac-centraleurroman 'mime-charset 'x-mac-centraleurroman)
-
-(cp-make-coding-system
- mac-cyrillic
- [?\\e$,1(0\e(B ?\\e$,1(1\e(B ?\\e$,1(2\e(B ?\\e$,1(3\e(B ?\\e$,1(4\e(B ?\\e$,1(5\e(B ?\\e$,1(6\e(B ?\\e$,1(7\e(B ?\\e$,1(8\e(B ?\\e$,1(9\e(B ?\\e$,1(:\e(B ?\\e$,1(;\e(B ?\\e$,1(<\e(B ?\\e$,1(=\e(B ?\\e$,1(>\e(B ?\\e$,1(?\e(B
-  ?\\e$,1(@\e(B ?\\e$,1(A\e(B ?\\e$,1(B\e(B ?\\e$,1(C\e(B ?\\e$,1(D\e(B ?\\e$,1(E\e(B ?\\e$,1(F\e(B ?\\e$,1(G\e(B ?\\e$,1(H\e(B ?\\e$,1(I\e(B ?\\e$,1(J\e(B ?\\e$,1(K\e(B ?\\e$,1(L\e(B ?\\e$,1(M\e(B ?\\e$,1(N\e(B ?\\e$,1(O\e(B
-  ?\\e$,1s \e(B ?\\e,A0\e(B ?\\e$,1)P\e(B ?\\e,A#\e(B ?\\e,A'\e(B ?\\e$,1s"\e(B ?\\e,A6\e(B ?\\e$,1(&\e(B ?\\e,A.\e(B ?\\e,A)\e(B ?\\e$,1ub\e(B ?\\e$,1("\e(B ?\\e$,1(r\e(B ?\\e$,1y \e(B ?\\e$,1(#\e(B ?\\e$,1(s\e(B
-  ?\\e$,1x>\e(B ?\\e,A1\e(B ?\\e$,1y$\e(B ?\\e$,1y%\e(B ?\\e$,1(v\e(B ?\\e,A5\e(B ?\\e$,1)Q\e(B ?\\e$,1((\e(B ?\\e$,1($\e(B ?\\e$,1(t\e(B ?\\e$,1('\e(B ?\\e$,1(w\e(B ?\\e$,1()\e(B ?\\e$,1(y\e(B ?\\e$,1(*\e(B ?\\e$,1(z\e(B
-  ?\\e$,1(x\e(B ?\\e$,1(%\e(B ?\\e,A,\e(B ?\\e$,1x:\e(B ?\\e$,1!R\e(B ?\\e$,1xh\e(B ?\\e$,1x&\e(B ?\\e,A+\e(B ?\\e,A;\e(B ?\\e$,1s&\e(B ?\\e,A \e(B ?\\e$,1(+\e(B ?\\e$,1({\e(B ?\\e$,1(,\e(B ?\\e$,1(|\e(B ?\\e$,1(u\e(B
-  ?\\e$,1rs\e(B ?\\e$,1rt\e(B ?\\e$,1r|\e(B ?\\e$,1r}\e(B ?\\e$,1rx\e(B ?\\e$,1ry\e(B ?\\e,Aw\e(B ?\\e$,1r~\e(B ?\\e$,1(.\e(B ?\\e$,1(~\e(B ?\\e$,1(/\e(B ?\\e$,1(\7f\e(B ?\\e$,1uV\e(B ?\\e$,1(!\e(B ?\\e$,1(q\e(B ?\\e$,1(o\e(B
-  ?\\e$,1(P\e(B ?\\e$,1(Q\e(B ?\\e$,1(R\e(B ?\\e$,1(S\e(B ?\\e$,1(T\e(B ?\\e$,1(U\e(B ?\\e$,1(V\e(B ?\\e$,1(W\e(B ?\\e$,1(X\e(B ?\\e$,1(Y\e(B ?\\e$,1(Z\e(B ?\\e$,1([\e(B ?\\e$,1(\\e(B ?\\e$,1(]\e(B ?\\e$,1(^\e(B ?\\e$,1(_\e(B
-  ?\\e$,1(`\e(B ?\\e$,1(a\e(B ?\\e$,1(b\e(B ?\\e$,1(c\e(B ?\\e$,1(d\e(B ?\\e$,1(e\e(B ?\\e$,1(f\e(B ?\\e$,1(g\e(B ?\\e$,1(h\e(B ?\\e$,1(i\e(B ?\\e$,1(j\e(B ?\\e$,1(k\e(B ?\\e$,1(l\e(B ?\\e$,1(m\e(B ?\\e$,1(n\e(B ?\\e$,1tL\e(B]
- "Mac Cyrillic Encoding (MIME:x-mac-cyrillic).")
-(coding-system-put 'mac-cyrillic 'mime-charset 'x-mac-cyrillic)
-
-(let
-    ((encoding-vector
-      (vconcat
-       (make-vector 32 nil)
-       ;; mac-symbol (32..126) -> emacs-mule mapping
-       [?\  ?\! ?\\e$,1x \e(B ?\# ?\\e$,1x#\e(B ?\% ?\& ?\\e$,1x-\e(B ?\( ?\) ?\\e$,1x7\e(B ?\+ ?\, ?\\e$,1x2\e(B ?\. ?\/
-       ?\0 ?\1 ?\2 ?\3 ?\4 ?\5 ?\6 ?\7 ?\8 ?\9 ?\: ?\; ?\< ?\= ?\> ?\?
-       ?\\e$,1xe\e(B ?\\e$,1&q\e(B ?\\e$,1&r\e(B ?\\e$,1''\e(B ?\\e$,1&t\e(B ?\\e$,1&u\e(B ?\\e$,1'&\e(B ?\\e$,1&s\e(B ?\\e$,1&w\e(B ?\\e$,1&y\e(B ?\\e$,1'Q\e(B ?\\e$,1&z\e(B ?\\e$,1&{\e(B ?\\e$,1&|\e(B ?\\e$,1&}\e(B ?\\e$,1&\7f\e(B
-       ?\\e$,1' \e(B ?\\e$,1&x\e(B ?\\e$,1'!\e(B ?\\e$,1'#\e(B ?\\e$,1'$\e(B ?\\e$,1'%\e(B ?\\e$,1'B\e(B ?\\e$,1')\e(B ?\\e$,1&~\e(B ?\\e$,1'(\e(B ?\\e$,1&v\e(B ?\[ ?\\e$,1xT\e(B ?\] ?\\e$,1ye\e(B ?\_
-       ?\\e$,3bE\e(B ?\\e$,1'1\e(B ?\\e$,1'2\e(B ?\\e$,1'G\e(B ?\\e$,1'4\e(B ?\\e$,1'5\e(B ?\\e$,1'F\e(B ?\\e$,1'3\e(B ?\\e$,1'7\e(B ?\\e$,1'9\e(B ?\\e$,1'U\e(B ?\\e$,1':\e(B ?\\e$,1';\e(B ?\\e$,1'<\e(B ?\\e$,1'=\e(B ?\\e$,1'?\e(B
-       ?\\e$,1'@\e(B ?\\e$,1'8\e(B ?\\e$,1'A\e(B ?\\e$,1'C\e(B ?\\e$,1'D\e(B ?\\e$,1'E\e(B ?\\e$,1'V\e(B ?\\e$,1'I\e(B ?\\e$,1'>\e(B ?\\e$,1'H\e(B ?\\e$,1'6\e(B ?\{ ?\| ?\} ?\\e$,1x\\e(B]
-       (make-vector (- 160 127) nil)
-       ;; mac-symbol (160..254) -> emacs-mule mapping
-       ;; Mapping of the following characters are changed from the
-       ;; original one:
-       ;; 0xE2 0x00AE+0xF87F -> 0x00AE # REGISTERED SIGN, alternate: sans serif
-       ;; 0xE3 0x00A9+0xF87F -> 0x00A9 # COPYRIGHT SIGN, alternate: sans serif
-       ;; 0xE4 0x2122+0xF87F -> 0x2122 # TRADE MARK SIGN, alternate: sans serif
-       [?\\e$,1tL\e(B ?\\e$,1'R\e(B ?\\e$,1s2\e(B ?\\e$,1y$\e(B ?\\e$,1sD\e(B ?\\e$,1x>\e(B ?\\e$,1!R\e(B ?\\e$,2#c\e(B ?\\e$,2#f\e(B ?\\e$,2#e\e(B ?\\e$,2#`\e(B ?\\e$,1vt\e(B ?\\e$,1vp\e(B ?\\e$,1vq\e(B ?\\e$,1vr\e(B ?\\e$,1vs\e(B
-       ?\\e,A0\e(B ?\\e,A1\e(B ?\\e$,1s3\e(B ?\\e$,1y%\e(B ?\\e,AW\e(B ?\\e$,1x=\e(B ?\\e$,1x"\e(B ?\\e$,1s"\e(B ?\\e,Aw\e(B ?\\e$,1y \e(B ?\\e$,1y!\e(B ?\\e$,1xh\e(B ?\\e$,1s&\e(B ?\\e$,1|p\e(B ?\\e$,1|O\e(B ?\\e$,1w5\e(B
-       ?\\e$,1uu\e(B ?\\e$,1uQ\e(B ?\\e$,1u\\e(B ?\\e$,1uX\e(B ?\\e$,1yW\e(B ?\\e$,1yU\e(B ?\\e$,1x%\e(B ?\\e$,1xI\e(B ?\\e$,1xJ\e(B ?\\e$,1yC\e(B ?\\e$,1yG\e(B ?\\e$,1yD\e(B ?\\e$,1yB\e(B ?\\e$,1yF\e(B ?\\e$,1x(\e(B ?\\e$,1x)\e(B
-       ?\\e$,1x@\e(B ?\\e$,1x'\e(B ?\\e,A.\e(B ?\\e,A)\e(B ?\\e$,1ub\e(B ?\\e$,1x/\e(B ?\\e$,1x:\e(B ?\\e$,1z%\e(B ?\\e,A,\e(B ?\\e$,1xG\e(B ?\\e$,1xH\e(B ?\\e$,1wT\e(B ?\\e$,1wP\e(B ?\\e$,1wQ\e(B ?\\e$,1wR\e(B ?\\e$,1wS\e(B
-       ?\\e$,2"*\e(B ?\\e$,2=H\e(B ?\\e,A.\e(B ?\\e,A)\e(B ?\\e$,1ub\e(B ?\\e$,1x1\e(B ?\\e$,1|;\e(B ?\\e$,1|<\e(B ?\\e$,1|=\e(B ?\\e$,1|A\e(B ?\\e$,1|B\e(B ?\\e$,1|C\e(B ?\\e$,1|G\e(B ?\\e$,1|H\e(B ?\\e$,1|I\e(B ?\\e$,1|J\e(B
-       ?\\e$,3b_\e(B ?\\e$,2=I\e(B ?\\e$,1xK\e(B ?\\e$,1{ \e(B ?\\e$,1|N\e(B ?\\e$,1{!\e(B ?\\e$,1|>\e(B ?\\e$,1|?\e(B ?\\e$,1|@\e(B ?\\e$,1|D\e(B ?\\e$,1|E\e(B ?\\e$,1|F\e(B ?\\e$,1|K\e(B ?\\e$,1|L\e(B ?\\e$,1|M\e(B
-       nil]))
-     translation-table)
-  (setq translation-table
-       (make-translation-table-from-vector encoding-vector))
-;;  (define-translation-table 'mac-symbol-decoder translation-table)
-  (define-translation-table 'mac-symbol-encoder
-    (char-table-extra-slot translation-table 0)))
-
-(let
-    ((encoding-vector
-      (vconcat
-       (make-vector 32 nil)
-       ;; mac-dingbats (32..126) -> emacs-mule mapping
-       [?\  ?\\e$,2%A\e(B ?\\e$,2%B\e(B ?\\e$,2%C\e(B ?\\e$,2%D\e(B ?\\e$,2"n\e(B ?\\e$,2%F\e(B ?\\e$,2%G\e(B ?\\e$,2%H\e(B ?\\e$,2%I\e(B ?\\e$,2"{\e(B ?\\e$,2"~\e(B ?\\e$,2%L\e(B ?\\e$,2%M\e(B ?\\e$,2%N\e(B ?\\e$,2%O\e(B
-       ?\\e$,2%P\e(B ?\\e$,2%Q\e(B ?\\e$,2%R\e(B ?\\e$,2%S\e(B ?\\e$,2%T\e(B ?\\e$,2%U\e(B ?\\e$,2%V\e(B ?\\e$,2%W\e(B ?\\e$,2%X\e(B ?\\e$,2%Y\e(B ?\\e$,2%Z\e(B ?\\e$,2%[\e(B ?\\e$,2%\\e(B ?\\e$,2%]\e(B ?\\e$,2%^\e(B ?\\e$,2%_\e(B
-       ?\\e$,2%`\e(B ?\\e$,2%a\e(B ?\\e$,2%b\e(B ?\\e$,2%c\e(B ?\\e$,2%d\e(B ?\\e$,2%e\e(B ?\\e$,2%f\e(B ?\\e$,2%g\e(B ?\\e$,2"e\e(B ?\\e$,2%i\e(B ?\\e$,2%j\e(B ?\\e$,2%k\e(B ?\\e$,2%l\e(B ?\\e$,2%m\e(B ?\\e$,2%n\e(B ?\\e$,2%o\e(B
-       ?\\e$,2%p\e(B ?\\e$,2%q\e(B ?\\e$,2%r\e(B ?\\e$,2%s\e(B ?\\e$,2%t\e(B ?\\e$,2%u\e(B ?\\e$,2%v\e(B ?\\e$,2%w\e(B ?\\e$,2%x\e(B ?\\e$,2%y\e(B ?\\e$,2%z\e(B ?\\e$,2%{\e(B ?\\e$,2%|\e(B ?\\e$,2%}\e(B ?\\e$,2%~\e(B ?\\e$,2%\7f\e(B
-       ?\\e$,2& \e(B ?\\e$,2&!\e(B ?\\e$,2&"\e(B ?\\e$,2&#\e(B ?\\e$,2&$\e(B ?\\e$,2&%\e(B ?\\e$,2&&\e(B ?\\e$,2&'\e(B ?\\e$,2&(\e(B ?\\e$,2&)\e(B ?\\e$,2&*\e(B ?\\e$,2&+\e(B ?\\e$,2"/\e(B ?\\e$,2&-\e(B ?\\e$,2!`\e(B ?\\e$,2&/\e(B
-       ?\\e$,2&0\e(B ?\\e$,2&1\e(B ?\\e$,2&2\e(B ?\\e$,2!r\e(B ?\\e$,2!|\e(B ?\\e$,2"&\e(B ?\\e$,2&6\e(B ?\\e$,2"7\e(B ?\\e$,2&8\e(B ?\\e$,2&9\e(B ?\\e$,2&:\e(B ?\\e$,2&;\e(B ?\\e$,2&<\e(B ?\\e$,2&=\e(B ?\\e$,2&>\e(B
-       nil
-       ;; mac-dingbats (128..141) -> emacs-mule mapping
-       ?\\e$,2&H\e(B ?\\e$,2&I\e(B ?\\e$,2&J\e(B ?\\e$,2&K\e(B ?\\e$,2&L\e(B ?\\e$,2&M\e(B ?\\e$,2&N\e(B ?\\e$,2&O\e(B ?\\e$,2&P\e(B ?\\e$,2&Q\e(B ?\\e$,2&R\e(B ?\\e$,2&S\e(B ?\\e$,2&T\e(B ?\\e$,2&U\e(B]
-       (make-vector (- 161 142) nil)
-       ;; mac-dingbats (161..239) -> emacs-mule mapping
-       [?\\e$,2&A\e(B ?\\e$,2&B\e(B ?\\e$,2&C\e(B ?\\e$,2&D\e(B ?\\e$,2&E\e(B ?\\e$,2&F\e(B ?\\e$,2&G\e(B ?\\e$,2#c\e(B ?\\e$,2#f\e(B ?\\e$,2#e\e(B ?\\e$,2#`\e(B ?\\e$,1~@\e(B ?\\e$,1~A\e(B ?\\e$,1~B\e(B ?\\e$,1~C\e(B
-       ?\\e$,1~D\e(B ?\\e$,1~E\e(B ?\\e$,1~F\e(B ?\\e$,1~G\e(B ?\\e$,1~H\e(B ?\\e$,1~I\e(B ?\\e$,2&V\e(B ?\\e$,2&W\e(B ?\\e$,2&X\e(B ?\\e$,2&Y\e(B ?\\e$,2&Z\e(B ?\\e$,2&[\e(B ?\\e$,2&\\e(B ?\\e$,2&]\e(B ?\\e$,2&^\e(B ?\\e$,2&_\e(B
-       ?\\e$,2&`\e(B ?\\e$,2&a\e(B ?\\e$,2&b\e(B ?\\e$,2&c\e(B ?\\e$,2&d\e(B ?\\e$,2&e\e(B ?\\e$,2&f\e(B ?\\e$,2&g\e(B ?\\e$,2&h\e(B ?\\e$,2&i\e(B ?\\e$,2&j\e(B ?\\e$,2&k\e(B ?\\e$,2&l\e(B ?\\e$,2&m\e(B ?\\e$,2&n\e(B ?\\e$,2&o\e(B
-       ?\\e$,2&p\e(B ?\\e$,2&q\e(B ?\\e$,2&r\e(B ?\\e$,2&s\e(B ?\\e$,2&t\e(B ?\\e$,1vr\e(B ?\\e$,1vt\e(B ?\\e$,1vu\e(B ?\\e$,2&x\e(B ?\\e$,2&y\e(B ?\\e$,2&z\e(B ?\\e$,2&{\e(B ?\\e$,2&|\e(B ?\\e$,2&}\e(B ?\\e$,2&~\e(B ?\\e$,2&\7f\e(B
-       ?\\e$,2' \e(B ?\\e$,2'!\e(B ?\\e$,2'"\e(B ?\\e$,2'#\e(B ?\\e$,2'$\e(B ?\\e$,2'%\e(B ?\\e$,2'&\e(B ?\\e$,2''\e(B ?\\e$,2'(\e(B ?\\e$,2')\e(B ?\\e$,2'*\e(B ?\\e$,2'+\e(B ?\\e$,2',\e(B ?\\e$,2'-\e(B ?\\e$,2'.\e(B ?\\e$,2'/\e(B
-       nil
-       ;; mac-dingbats (241..254) -> emacs-mule mapping
-       ?\\e$,2'1\e(B ?\\e$,2'2\e(B ?\\e$,2'3\e(B ?\\e$,2'4\e(B ?\\e$,2'5\e(B ?\\e$,2'6\e(B ?\\e$,2'7\e(B ?\\e$,2'8\e(B ?\\e$,2'9\e(B ?\\e$,2':\e(B ?\\e$,2';\e(B ?\\e$,2'<\e(B ?\\e$,2'=\e(B ?\\e$,2'>\e(B
-       nil]))
-     translation-table)
-  (setq translation-table
-       (make-translation-table-from-vector encoding-vector))
-;;  (define-translation-table 'mac-dingbats-decoder translation-table)
-  (define-translation-table 'mac-dingbats-encoder
-    (char-table-extra-slot translation-table 0)))
+(define-charset 'mac-centraleurroman
+  "Mac Central European Roman"
+  :short-name "Mac CE"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map
+  (let ((tbl
+        [?\Ä ?\Ä€ ?\Ä ?\É ?\Ä„ ?\Ö ?\Ãœ ?\á ?\Ä… ?\ÄŒ ?\ä ?\Ä ?\Ć ?\ć ?\é ?\Ź
+         ?\ź ?\ÄŽ ?\í ?\Ä ?\Ä’ ?\Ä“ ?\Ä– ?\ó ?\Ä— ?\ô ?\ö ?\õ ?\ú ?\Äš ?\Ä› ?\ü
+         ?\† ?\° ?\Ę ?\£ ?\§ ?\• ?\¶ ?\ß ?\® ?\© ?\â„¢ ?\Ä™ ?\¨ ?\≠ ?\Ä£ ?\Ä®
+         ?\į ?\Ī ?\≤ ?\≥ ?\Ä« ?\Ķ ?\∂ ?\∑ ?\Å‚ ?\Ä» ?\ļ ?\Ľ ?\ľ ?\Ĺ ?\ĺ ?\Å…
+         ?\ņ ?\Ń ?\¬ ?\√ ?\Å„ ?\Ň ?\∆ ?\« ?\» ?\… ?\  ?\ň ?\Å ?\Õ ?\Å‘ ?\ÅŒ
+         ?\– ?\— ?\“ ?\†?\‘ ?\’ ?\÷ ?\â—Š ?\Å ?\Å” ?\Å• ?\Ř ?\‹ ?\› ?\Å™ ?\Å–
+         ?\Å— ?\Å  ?\‚ ?\„ ?\Å¡ ?\Åš ?\Å› ?\à?\Ť ?\Å¥ ?\à?\Ž ?\ž ?\Ū ?\Ó ?\Ô
+         ?\Å« ?\Å® ?\Ú ?\ů ?\Å° ?\ű ?\Ų ?\ų ?\à?\ý ?\Ä· ?\Å» ?\Å ?\ż ?\Ä¢ ?\ˇ])
+       (map (make-vector 512 nil)))
+    (or (= (length tbl) 128)
+       (error "Invalid vector length: %d" (length tbl)))
+    (dotimes (i 128)
+      (aset map (* i 2) i)
+      (aset map (1+ (* i 2)) i))
+    (dotimes (i 128)
+      (aset map (+ 256 (* i 2)) (+ 128 i))
+      (aset map (+ 256 (1+ (* i 2))) (aref tbl i)))
+    map))
+
+(define-coding-system 'mac-centraleurroman
+  "Mac Central European Roman Encoding (MIME:x-mac-centraleurroman)."
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(mac-centraleurroman)
+  :mime-charset 'x-mac-centraleurroman)
+
+(define-charset 'mac-cyrillic
+  "Mac Cyrillic"
+  :short-name "Mac CYRILLIC"
+  :ascii-compatible-p t
+  :code-space [0 255]
+  :map
+  (let ((tbl
+        [?\Р?\Б ?\Ð’ ?\Г ?\Д ?\Е ?\Ж ?\З ?\И ?\Й ?\К ?\Л ?\Ðœ ?\Р?\О ?\П
+         ?\Р ?\С ?\Т ?\У ?\Ф ?\Ð¥ ?\Ц ?\Ч ?\Ш ?\Щ ?\Ъ ?\Ы ?\Ь ?\Э ?\Ю ?\Я
+         ?\† ?\° ?\Ò ?\£ ?\§ ?\• ?\¶ ?\І ?\® ?\© ?\â„¢ ?\Ђ ?\Ñ’ ?\≠ ?\Ѓ ?\Ñ“
+         ?\∞ ?\± ?\≤ ?\≥ ?\Ñ– ?\µ ?\Ò‘ ?\Ј ?\Є ?\Ñ” ?\Ї ?\Ñ— ?\Љ ?\Ñ™ ?\Њ ?\Ñš
+         ?\ј ?\Ð… ?\¬ ?\√ ?\Æ’ ?\≈ ?\∆ ?\« ?\» ?\… ?\  ?\Ћ ?\Ñ› ?\ÐŒ ?\Ñœ ?\Ñ•
+         ?\– ?\— ?\“ ?\†?\‘ ?\’ ?\÷ ?\„ ?\ÐŽ ?\Ñž ?\Р?\ÑŸ ?\â„– ?\Р?\Ñ‘ ?\Ñ
+         ?\а ?\б ?\в ?\г ?\д ?\е ?\ж ?\з ?\и ?\й ?\к ?\л ?\м ?\н ?\о ?\п
+         ?\Ñ€ ?\Ñ ?\Ñ‚ ?\у ?\Ñ„ ?\Ñ… ?\ц ?\ч ?\ш ?\щ ?\ÑŠ ?\Ñ‹ ?\ÑŒ ?\Ñ ?\ÑŽ ?\€])
+       (map (make-vector 512 nil)))
+    (or (= (length tbl) 128)
+       (error "Invalid vector length: %d" (length tbl)))
+    (dotimes (i 128)
+      (aset map (* i 2) i)
+      (aset map (1+ (* i 2)) i))
+    (dotimes (i 128)
+      (aset map (+ 256 (* i 2)) (+ 128 i))
+      (aset map (+ 256 (1+ (* i 2))) (aref tbl i)))
+    map))
+
+(define-coding-system 'mac-cyrillic
+  "Mac Cyrillic Encoding (MIME:x-mac-cyrillic)."
+  :coding-type 'charset
+  :mnemonic ?*
+  :charset-list '(mac-cyrillic)
+  :mime-charset 'x-mac-cyrillic)
+
+(define-charset 'mac-symbol
+  "Mac Symbol"
+  :short-name "Mac SYMBOL"
+  :code-space [32 254]
+  :map
+  (let ((tbl-32-126
+        [?\  ?\! ?\∀ ?\# ?\∃ ?\% ?\& ?\∠?\( ?\) ?\∗ ?\+ ?\, ?\− ?\. ?\/
+         ?\0 ?\1 ?\2 ?\3 ?\4 ?\5 ?\6 ?\7 ?\8 ?\9 ?\: ?\; ?\< ?\= ?\> ?\?
+         ?\≅ ?\Α ?\Î’ ?\Χ ?\Δ ?\Ε ?\Φ ?\Γ ?\Η ?\Ι ?\Ï‘ ?\Κ ?\Λ ?\Îœ ?\Π?\Ο
+         ?\Π ?\Θ ?\Ρ ?\Σ ?\Τ ?\Î¥ ?\Ï‚ ?\Ω ?\Ξ ?\Ψ ?\Ζ ?\[ ?\∴ ?\] ?\⊥ ?\_
+         ?\ ?\α ?\β ?\χ ?\δ ?\ε ?\φ ?\γ ?\η ?\ι ?\Ï• ?\κ ?\λ ?\μ ?\ν ?\ο
+         ?\Ï€ ?\θ ?\Ï ?\σ ?\Ï„ ?\Ï… ?\Ï– ?\ω ?\ξ ?\ψ ?\ζ ?\{ ?\| ?\} ?\∼])
+       (map-32-126 (make-vector (* (1+ (- 126 32)) 2) nil))
+       (tbl-160-254
+        ;; Mapping of the following characters are changed from the
+        ;; original one:
+        ;; 0xE2 0x00AE+0xF87F->0x00AE # REGISTERED SIGN, alternate: sans serif
+        ;; 0xE3 0x00A9+0xF87F->0x00A9 # COPYRIGHT SIGN, alternate: sans serif
+        ;; 0xE4 0x2122+0xF87F->0x2122 # TRADE MARK SIGN, alternate: sans serif
+        [?\€ ?\Ï’ ?\′ ?\≤ ?\â„ ?\∞ ?\Æ’ ?\♣ ?\♦ ?\♥ ?\â™  ?\↔ ?\↠?\↑ ?\→ ?\↓
+         ?\° ?\± ?\″ ?\≥ ?\× ?\∠?\∂ ?\• ?\÷ ?\≠ ?\≡ ?\≈ ?\… ?\â ?\⎯ ?\↵
+         ?\ℵ ?\â„‘ ?\â„œ ?\℘ ?\⊗ ?\⊕ ?\∅ ?\∩ ?\∪ ?\⊃ ?\⊇ ?\⊄ ?\⊂ ?\⊆ ?\∈ ?\∉
+         ?\∠ ?\∇ ?\® ?\© ?\â„¢ ?\∠?\√ ?\â‹… ?\¬ ?\∧ ?\∨ ?\⇔ ?\⇠?\⇑ ?\⇒ ?\⇓
+         ?\â—Š ?\〈 ?\® ?\© ?\â„¢ ?\∑ ?\⎛ ?\⎜ ?\⎠?\⎡ ?\⎢ ?\⎣ ?\⎧ ?\⎨ ?\⎩ ?\⎪
+         ?\ ?\〉 ?\∫ ?\⌠ ?\⎮ ?\⌡ ?\⎞ ?\⎟ ?\⎠ ?\⎤ ?\⎥ ?\⎦ ?\⎫ ?\⎬ ?\⎭])
+       (map-160-254 (make-vector (* (1+ (- 254 160)) 2) nil)))
+    (dotimes (i (1+ (- 126 32)))
+      (aset map-32-126 (* i 2) (+ 32 i))
+      (aset map-32-126 (1+ (* i 2)) (aref tbl-32-126 i)))
+    (dotimes (i (1+ (- 254 160)))
+      (aset map-160-254 (* i 2) (+ 160 i))
+      (aset map-160-254 (1+ (* i 2)) (aref tbl-160-254 i)))
+    (vconcat map-32-126 map-160-254)))
+
+(define-charset 'mac-dingbats
+  "Mac Dingbats"
+  :short-name "Mac Dingbats"
+  :code-space [32 254]
+  :map
+  (let ((tbl-32-126
+        [?\  ?\✠?\✂ ?\✃ ?\✄ ?\☎ ?\✆ ?\✇ ?\✈ ?\✉ ?\☛ ?\☞ ?\✌ ?\✠?\✎ ?\âœ
+         ?\✠?\✑ ?\✒ ?\✓ ?\✔ ?\✕ ?\✖ ?\✗ ?\✘ ?\✙ ?\✚ ?\✛ ?\✜ ?\✠?\✞ ?\✟
+         ?\✠ ?\✡ ?\✢ ?\✣ ?\✤ ?\✥ ?\✦ ?\✧ ?\★ ?\✩ ?\✪ ?\✫ ?\✬ ?\✭ ?\✮ ?\✯
+         ?\✰ ?\✱ ?\✲ ?\✳ ?\✴ ?\✵ ?\✶ ?\✷ ?\✸ ?\✹ ?\✺ ?\✻ ?\✼ ?\✽ ?\✾ ?\✿
+         ?\†?\â ?\â‚ ?\⃠?\â„ ?\â… ?\↠?\⇠?\∠?\≠?\⊠?\â‹ ?\â— ?\â ?\â–  ?\â
+         ?\â ?\â‘ ?\â’ ?\â–² ?\â–¼ ?\â—† ?\â– ?\â—— ?\☠?\â™ ?\âš ?\â› ?\✠?\â ?\âž])
+       (map-32-126 (make-vector (* (1+ (- 126 32)) 2) nil))
+       (tbl-128-141
+        [?\⨠?\â© ?\⪠?\â« ?\⬠?\â­ ?\â® ?\⯠?\â° ?\â± ?\â² ?\â³ ?\â´ ?\âµ])
+       (map-128-141 (make-vector (* (1+ (- 141 128)) 2) nil))
+       (tbl-161-239
+        [?\â¡ ?\⢠?\⣠?\⤠?\⥠?\⦠?\⧠?\♣ ?\♦ ?\♥ ?\â™  ?\â‘  ?\â‘¡ ?\â‘¢ ?\â‘£
+         ?\⑤ ?\â‘¥ ?\⑦ ?\⑧ ?\⑨ ?\â‘© ?\ⶠ?\â· ?\⸠?\â¹ ?\⺠?\â» ?\â¼ ?\â½ ?\â¾ ?\â¿
+         ?\➀ ?\âž ?\âž‚ ?\➃ ?\âž„ ?\âž… ?\➆ ?\➇ ?\➈ ?\➉ ?\➊ ?\âž‹ ?\➌ ?\âž ?\➎ ?\âž
+         ?\âž ?\âž‘ ?\âž’ ?\âž“ ?\âž” ?\→ ?\↔ ?\↕ ?\➘ ?\âž™ ?\âžš ?\âž› ?\âžœ ?\âž ?\âžž ?\➟
+         ?\âž  ?\âž¡ ?\➢ ?\➣ ?\➤ ?\➥ ?\➦ ?\➧ ?\➨ ?\âž© ?\➪ ?\âž« ?\➬ ?\âž­ ?\âž® ?\➯])
+       (map-161-239 (make-vector (* (1+ (- 239 161)) 2) nil))
+       (tbl-241-254
+        [?\âž± ?\âž² ?\âž³ ?\âž´ ?\âžµ ?\➶ ?\âž· ?\➸ ?\âž¹ ?\➺ ?\âž» ?\âž¼ ?\âž½ ?\âž¾])
+       (map-241-254 (make-vector (* (1+ (- 254 241)) 2) nil)))
+    (dotimes (i (1+ (- 126 32)))
+      (aset map-32-126 (* i 2) (+ 32 i))
+      (aset map-32-126 (1+ (* i 2)) (aref tbl-32-126 i)))
+    (dotimes (i (1+ (- 141 128)))
+      (aset map-128-141 (* i 2) (+ 128 i))
+      (aset map-128-141 (1+ (* i 2)) (aref tbl-128-141 i)))
+    (dotimes (i (1+ (- 239 161)))
+      (aset map-161-239 (* i 2) (+ 161 i))
+      (aset map-161-239 (1+ (* i 2)) (aref tbl-161-239 i)))
+    (dotimes (i (1+ (- 254 241)))
+      (aset map-241-254 (* i 2) (+ 241 i))
+      (aset map-241-254 (1+ (* i 2)) (aref tbl-241-254 i)))
+    (vconcat map-32-126 map-128-141 map-161-239 map-241-254)))
 
 (defconst mac-system-coding-system
   (let ((base (or (cdr (assq mac-system-script-code
@@ -1285,7 +1335,7 @@ correspoinding TextEncodingBase value."
              (setq str nil)
            ;; ASCII-only?
            (unless (mac-code-convert-string data nil mac-text-encoding-ascii)
-             (subst-char-in-string ?\x5c ?\\e(J\\e(B str t)
+             (subst-char-in-string ?\x5c ?\Â¥ str t)
              (subst-char-in-string ?\x80 ?\\ str t)))))
     (or str
        (decode-coding-string data
@@ -1304,7 +1354,7 @@ correspoinding TextEncodingBase value."
                   (eq coding-system 'japanese-shift-jis-mac))
          (setq encoding mac-text-encoding-mac-japanese-basic-variant)
          (setq str (subst-char-in-string ?\\ ?\x80 str))
-         (subst-char-in-string ?\\e(J\\e(B ?\x5c str t)
+         (subst-char-in-string ?\Â¥ ?\x5c str t)
          ;; ASCII-only?
          (if (string-match "\\`[\x00-\x7f]*\\'" str)
              (setq str nil)))
@@ -1320,7 +1370,7 @@ correspoinding TextEncodingBase value."
   (or coding-system (setq coding-system mac-system-coding-system))
   (prog1 (setq data (decode-coding-string data coding-system))
     (when (eq (coding-system-base coding-system) 'japanese-shift-jis)
-      ;; (subst-char-in-string ?\x5c ?\\e(J\\e(B data t)
+      ;; (subst-char-in-string ?\x5c ?\Â¥ data t)
       (subst-char-in-string ?\x80 ?\\ data t))))
 
 (defun mac-string-to-TEXT (string &optional coding-system)
@@ -1336,7 +1386,7 @@ correspoinding TextEncodingBase value."
        (coding-system-change-eol-conversion coding-system 'mac))
   (when (eq coding-system 'japanese-shift-jis-mac)
     ;; (setq string (subst-char-in-string ?\\ ?\x80 string))
-    (setq string (subst-char-in-string ?\\e(J\\e(B ?\x5c string)))
+    (setq string (subst-char-in-string ?\Â¥ ?\x5c string)))
   (encode-coding-string string coding-system))
 
 (defun mac-furl-to-string (data)
@@ -2310,164 +2360,23 @@ See also `mac-dnd-known-types'."
          (mac-dnd-drop-data event (selected-frame) window
                             (cdr item) (car item) action)))))
 \f
-(defvar mac-font-encoder-list
-  '(("mac-roman" mac-roman-encoder
-     ccl-encode-mac-roman-font "%s")
-    ("mac-centraleurroman" encode-mac-centraleurroman
-     ccl-encode-mac-centraleurroman-font "%s ce")
-    ("mac-cyrillic" encode-mac-cyrillic
-     ccl-encode-mac-cyrillic-font "%s cy")
-    ("mac-symbol" mac-symbol-encoder
-     ccl-encode-mac-symbol-font "symbol")
-    ("mac-dingbats" mac-dingbats-encoder
-     ccl-encode-mac-dingbats-font "zapf dingbats")))
-
-(let ((encoder-list
-       (mapcar (lambda (lst) (nth 1 lst)) mac-font-encoder-list))
-      (charset-list
-       '(latin-iso8859-2
-        latin-iso8859-3 latin-iso8859-4
-        cyrillic-iso8859-5 greek-iso8859-7 hebrew-iso8859-8
-        latin-iso8859-9 latin-iso8859-14 latin-iso8859-15)))
-  (dolist (encoder encoder-list)
-    (let ((table (get encoder 'translation-table)))
-      (dolist (charset charset-list)
-       (dotimes (i 96)
-         (let* ((c (make-char charset (+ i 32)))
-                (mu (aref ucs-mule-to-mule-unicode c))
-                (mac-encoded (and mu (aref table mu))))
-           (if mac-encoded
-               (aset table c mac-encoded))))))))
-
-;; We assume none of official dim2 charsets (0x90..0x99) are encoded
-;; to these fonts.
-
-(define-ccl-program ccl-encode-mac-roman-font
-  `(0
-    (if (r0 <= ?\xef)
-       (translate-character mac-roman-encoder r0 r1)
-      ((r1 <<= 7)
-       (r1 |= r2)
-       (translate-character mac-roman-encoder r0 r1))))
-  "CCL program for Mac Roman font")
-
-(define-ccl-program ccl-encode-mac-centraleurroman-font
-  `(0
-    (if (r0 <= ?\xef)
-       (translate-character encode-mac-centraleurroman r0 r1)
-      ((r1 <<= 7)
-       (r1 |= r2)
-       (translate-character encode-mac-centraleurroman r0 r1))))
-  "CCL program for Mac Central European Roman font")
-
-(define-ccl-program ccl-encode-mac-cyrillic-font
-  `(0
-    (if (r0 <= ?\xef)
-       (translate-character encode-mac-cyrillic r0 r1)
-      ((r1 <<= 7)
-       (r1 |= r2)
-       (translate-character encode-mac-cyrillic r0 r1))))
-  "CCL program for Mac Cyrillic font")
-
-(define-ccl-program ccl-encode-mac-symbol-font
-  `(0
-    (if (r0 <= ?\xef)
-       (translate-character mac-symbol-encoder r0 r1)
-      ((r1 <<= 7)
-       (r1 |= r2)
-       (translate-character mac-symbol-encoder r0 r1))))
-  "CCL program for Mac Symbol font")
-
-(define-ccl-program ccl-encode-mac-dingbats-font
-  `(0
-    (if (r0 <= ?\xef)
-       (translate-character mac-dingbats-encoder r0 r1)
-      ((r1 <<= 7)
-       (r1 |= r2)
-       (translate-character mac-dingbats-encoder r0 r1))))
-  "CCL program for Mac Dingbats font")
-
-
-(setq font-ccl-encoder-alist
-      (nconc
-       (mapcar (lambda (lst) (cons (nth 0 lst) (nth 2 lst)))
-              mac-font-encoder-list)
-       font-ccl-encoder-alist))
-
-(defconst mac-char-fontspec-list
-  ;; Directly operate on a char-table instead of a fontset so that it
-  ;; may not create a dummy fontset.
-  (let ((template (make-char-table 'fontset)))
-    (dolist
-       (font-encoder
-        (nreverse
-         (mapcar (lambda (lst)
-                   (cons (cons (nth 3 lst) (nth 0 lst)) (nth 1 lst)))
-                 mac-font-encoder-list)))
-      (let ((font (car font-encoder))
-           (encoder (cdr font-encoder)))
-       (map-char-table
-        (lambda (key val)
-          (or (null val)
-              (generic-char-p key)
-              (memq (char-charset key)
-                    '(ascii eight-bit-control eight-bit-graphic))
-              (aset template key font)))
-        (get encoder 'translation-table))))
-
-    ;; Like fontset-info, but extend a range only if its "to" part is
-    ;; the predecessor of the current char.
-    (let* ((last '((0 nil)))
-          (accumulator last)
-          last-char-or-range last-char last-elt)
-      (map-char-table
-       (lambda (char elt)
-        (when elt
-          (setq last-char-or-range (car (car last))
-                last-char (if (consp last-char-or-range)
-                              (cdr last-char-or-range)
-                            last-char-or-range)
-                last-elt (cdr (car last)))
-          (if (and (eq elt last-elt)
-                   (= char (1+ last-char))
-                   (eq (char-charset char) (char-charset last-char)))
-              (if (consp last-char-or-range)
-                  (setcdr last-char-or-range char)
-                (setcar (car last) (cons last-char char)))
-            (setcdr last (list (cons char elt)))
-            (setq last (cdr last)))))
-       template)
-      (cdr accumulator))))
+(setq font-encoding-alist
+      (append
+       '(("mac-roman" . mac-roman)
+        ("mac-centraleurroman" . mac-centraleurroman)
+        ("mac-cyrillic" . mac-cyrillic)
+        ("mac-symbol" . mac-symbol)
+        ("mac-dingbats" . mac-dingbats))
+       font-encoding-alist))
 
 (defun fontset-add-mac-fonts (fontset &optional base-family)
-  "Add font-specs for Mac fonts to FONTSET.
-The added font-specs are determined by BASE-FAMILY and the value
-of `mac-char-fontspec-list', which is a list
-of (CHARACTER-OR-RANGE . (FAMILY-FORMAT . REGISTRY)).  If
-BASE-FAMILY is nil, the font family in the added font-specs is
-also nil.  If BASE-FAMILY is a string, `%s' in FAMILY-FORMAT is
-replaced with the string.  Otherwise, `%s' in FAMILY-FORMAT is
-replaced with the ASCII font family name in FONTSET."
-  (if base-family
-      (if (stringp base-family)
-         (setq base-family (downcase base-family))
-       (let ((ascii-font (fontset-font fontset (charset-id 'ascii))))
-         (if ascii-font
-             (setq base-family
-                   (aref (x-decompose-font-name
-                          (downcase (x-resolve-font-name ascii-font)))
-                         xlfd-regexp-family-subnum))))))
-  (let (fontspec-cache fontspec)
-    (dolist (char-fontspec mac-char-fontspec-list)
-      (setq fontspec (cdr (assq (cdr char-fontspec) fontspec-cache)))
-      (when (null fontspec)
-       (setq fontspec
-             (cons (and base-family
-                        (format (car (cdr char-fontspec)) base-family))
-                   (cdr (cdr char-fontspec))))
-       (setq fontspec-cache (cons (cons (cdr char-fontspec) fontspec)
-                                  fontspec-cache)))
-      (set-fontset-font fontset (car char-fontspec) fontspec))))
+  (dolist (elt `((latin . (,(or base-family "Monaco") . "mac-roman"))
+                (mac-roman . (,base-family . "mac-roman"))
+                (mac-centraleurroman . (,base-family . "mac-centraleurroman"))
+                (mac-cyrillic . (,base-family . "mac-cyrillic"))
+                (mac-symbol . (,base-family . "mac-symbol"))
+                (mac-dingbats . (,base-family . "mac-dingbats"))))
+    (set-fontset-font fontset (car elt) (cdr elt))))
 
 (defun create-fontset-from-mac-roman-font (font &optional resolved-font
                                                fontset-name)
@@ -2482,10 +2391,14 @@ Optional 2nd arg FONTSET-NAME is a string to be used in
 an appropriate name is generated automatically.
 
 It returns a name of the created fontset."
-  (let ((fontset
-        (create-fontset-from-ascii-font font resolved-font fontset-name)))
-    (fontset-add-mac-fonts fontset t)
-    fontset))
+  (or resolved-font
+      (setq resolved-font (x-resolve-font-name font)))
+  (let ((base-family (aref (x-decompose-font-name resolved-font)
+                          xlfd-regexp-family-subnum)))
+    (if (string= base-family "*")
+       (setq base-family nil))
+    (new-fontset fontset-name (list (cons 'ascii resolved-font)))
+    (fontset-add-mac-fonts fontset-name base-family)))
 
 (defun x-win-suspend-error ()
   (error "Suspending an Emacs running under Mac makes no sense"))
@@ -2587,58 +2500,17 @@ It returns a name of the created fontset."
 
 ;; Setup the default fontset.
 (setup-default-fontset)
-(cond ((x-list-fonts "*-iso10646-1" nil nil 1)
-       ;; Use ATSUI (if available) for the following charsets.
-       (dolist
-          (charset '(latin-iso8859-1
-                     latin-iso8859-2 latin-iso8859-3 latin-iso8859-4
-                     thai-tis620 greek-iso8859-7 arabic-iso8859-6
-                     hebrew-iso8859-8 cyrillic-iso8859-5
-                     latin-iso8859-9 latin-iso8859-15 latin-iso8859-14
-                     japanese-jisx0212 chinese-sisheng ipa
-                     vietnamese-viscii-lower vietnamese-viscii-upper
-                     lao ethiopic tibetan))
-        (set-fontset-font nil charset '(nil . "iso10646-1"))))
-      ((null (x-list-fonts "*-iso8859-1" nil nil 1))
-       ;; Add Mac-encoding fonts unless ETL fonts are installed.
-       (fontset-add-mac-fonts "fontset-default")))
 
 ;; Create a fontset that uses mac-roman font.  With this fontset,
-;; characters decoded from mac-roman encoding (ascii, latin-iso8859-1,
-;; and mule-unicode-xxxx-yyyy) are displayed by a mac-roman font.
-(create-fontset-from-fontset-spec
- "-etl-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard,
-ascii:-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman")
-(fontset-add-mac-fonts "fontset-standard" t)
+;; characters belonging to mac-roman charset (that contains ASCII and
+;; more Latin characters) are displayed by a mac-roman font.
+(create-fontset-from-mac-roman-font
+ "-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman" nil
+ "-apple-Monaco-normal-r-*-*-12-*-*-*-*-*-fontset-standard")
 
 ;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...).
 (create-fontset-from-x-resource)
 
-;; Try to create a fontset from a font specification which comes
-;; from initial-frame-alist, default-frame-alist, or X resource.
-;; A font specification in command line argument (i.e. -fn XXXX)
-;; should be already in default-frame-alist as a `font'
-;; parameter.  However, any font specifications in site-start
-;; library, user's init file (.emacs), and default.el are not
-;; yet handled here.
-
-(let ((font (or (cdr (assq 'font initial-frame-alist))
-               (cdr (assq 'font default-frame-alist))
-               (x-get-resource "font" "Font")))
-      xlfd-fields resolved-name)
-  (if (and font
-          (not (query-fontset font))
-          (setq resolved-name (x-resolve-font-name font))
-          (setq xlfd-fields (x-decompose-font-name font)))
-      (if (string= "fontset" (aref xlfd-fields xlfd-regexp-registry-subnum))
-         (new-fontset font (x-complement-fontset-spec xlfd-fields nil))
-       ;; Create a fontset from FONT.  The fontset name is
-       ;; generated from FONT.
-       (if (and (string= "mac" (aref xlfd-fields xlfd-regexp-registry-subnum))
-                (string= "roman" (aref xlfd-fields xlfd-regexp-encoding-subnum)))
-           (create-fontset-from-mac-roman-font font resolved-name "startup")
-         (create-fontset-from-ascii-font font resolved-name "startup")))))
-
 ;; Apply a geometry resource to the initial frame.  Put it at the end
 ;; of the alist, so that anything specified on the command line takes
 ;; precedence.
index 754d412045498e29bd5182528432ac5e08c3b81d..bdaeaf1b52eb65b6ab5b3bd2fdc4875439cc4e37 100644 (file)
@@ -78,7 +78,6 @@
 (require 'select)
 (require 'menu-bar)
 (require 'dnd)
-(require 'code-pages)
 (require 'w32-vars)
 
 ;; Keep an obsolete alias for w32-focus-frame in case it is used by code
@@ -1096,7 +1095,7 @@ pop-up menu are unaffected by `w32-list-proportional-fonts')."
       ;; Append list of fontsets currently defined.
       ;; Conditional on new-fontset so bootstrapping works on non-GUI compiles
       (if (fboundp 'new-fontset)
-      (append w32-fixed-font-alist (list (generate-fontset-menu)))))))
+          (append w32-fixed-font-alist (list (generate-fontset-menu)))))))
   (if fonts
       (let (font)
        (while fonts
@@ -1148,43 +1147,19 @@ pop-up menu are unaffected by `w32-list-proportional-fonts')."
   (setup-default-fontset)
 
   ;; Enable Japanese fonts on Windows to be used by default.
-  (set-fontset-font nil (make-char 'katakana-jisx0201)
+  (set-fontset-font t (make-char 'katakana-jisx0201)
                    '("*" . "JISX0208-SJIS"))
-  (set-fontset-font nil (make-char 'latin-jisx0201)
+  (set-fontset-font t (make-char 'latin-jisx0201)
                    '("*" . "JISX0208-SJIS"))
-  (set-fontset-font nil (make-char 'japanese-jisx0208)
+  (set-fontset-font t (make-char 'japanese-jisx0208)
                    '("*" . "JISX0208-SJIS"))
-  (set-fontset-font nil (make-char 'japanese-jisx0208-1978)
+  (set-fontset-font t (make-char 'japanese-jisx0208-1978)
                    '("*" . "JISX0208-SJIS"))
 
   ;; Create the standard fontset.
   (create-fontset-from-fontset-spec w32-standard-fontset-spec t)
   ;; Create fontset specified in X resources "Fontset-N" (N is 0, 1,...).
   (create-fontset-from-x-resource)
-  ;; Try to create a fontset from a font specification which comes
-  ;; from initial-frame-alist, default-frame-alist, or X resource.
-  ;; A font specification in command line argument (i.e. -fn XXXX)
-  ;; should be already in default-frame-alist as a `font'
-  ;; parameter.  However, any font specifications in site-start
-  ;; library, user's init file (.emacs), and default.el are not
-  ;; yet handled here.
-
-  (let ((font (or (cdr (assq 'font initial-frame-alist))
-                  (cdr (assq 'font default-frame-alist))
-                  (x-get-resource "font" "Font")))
-        xlfd-fields resolved-name)
-    (if (and font
-             (not (query-fontset font))
-             (setq resolved-name (x-resolve-font-name font))
-             (setq xlfd-fields (x-decompose-font-name font)))
-        (if (string= "fontset"
-                     (aref xlfd-fields xlfd-regexp-registry-subnum))
-            (new-fontset font
-                         (x-complement-fontset-spec xlfd-fields nil))
-          ;; Create a fontset from FONT.  The fontset name is
-          ;; generated from FONT.
-          (create-fontset-from-ascii-font font
-                                          resolved-name "startup"))))
 
   ;; Apply a geometry resource to the initial frame.  Put it at the end
   ;; of the alist, so that anything specified on the command line takes
index 66c5a272e1cbed82e7ba29506c264109d2dd467c..b8a8097d0aa384a128a3de807aa25ae14db332e5 100644 (file)
@@ -1289,9 +1289,10 @@ as returned by `x-server-vendor'."
         ;; This is used by DEC's X server.
         '((65280 . remove)))))
 
+;; Latin-1
 (let ((i 160))
   (while (< i 256)
-    (puthash i (make-char 'latin-iso8859-1 i) x-keysym-table)
+    (puthash i i x-keysym-table)
     (setq i (1+ i))))
 
 ;; Table from Kuhn's proposed additions to the `KEYSYM Encoding'
@@ -1419,70 +1420,70 @@ as returned by `x-server-vendor'."
        ;; Kana: Fixme: needs conversion to Japanese charset -- seems
        ;; to require jisx0213, for which the Unicode translation
        ;; isn't clear.
-       (#x47e . ?\e$,1s>\e(B)
-       (#x4a1 . ?\e$,2=B\e(B)
-       (#x4a2 . ?\\e$,2=L\e(B)
-       (#x4a3 . ?\\e$,2=M\e(B)
-       (#x4a4 . ?\e$,2=A\e(B)
-       (#x4a5 . ?\e$,2?{\e(B)
-       (#x4a6 . ?\e$,2?r\e(B)
-       (#x4a7 . ?\e$,2?!\e(B)
-       (#x4a8 . ?\e$,2?#\e(B)
-       (#x4a9 . ?\e$,2?%\e(B)
-       (#x4aa . ?\e$,2?'\e(B)
-       (#x4ab . ?\e$,2?)\e(B)
-       (#x4ac . ?\e$,2?c\e(B)
-       (#x4ad . ?\e$,2?e\e(B)
-       (#x4ae . ?\e$,2?g\e(B)
-       (#x4af . ?\e$,2?C\e(B)
-       (#x4b0 . ?\e$,2?|\e(B)
-       (#x4b1 . ?\e$,2?"\e(B)
-       (#x4b2 . ?\e$,2?$\e(B)
-       (#x4b3 . ?\e$,2?&\e(B)
-       (#x4b4 . ?\e$,2?(\e(B)
-       (#x4b5 . ?\e$,2?*\e(B)
-       (#x4b6 . ?\e$,2?+\e(B)
-       (#x4b7 . ?\e$,2?-\e(B)
-       (#x4b8 . ?\e$,2?/\e(B)
-       (#x4b9 . ?\e$,2?1\e(B)
-       (#x4ba . ?\e$,2?3\e(B)
-       (#x4bb . ?\e$,2?5\e(B)
-       (#x4bc . ?\e$,2?7\e(B)
-       (#x4bd . ?\e$,2?9\e(B)
-       (#x4be . ?\e$,2?;\e(B)
-       (#x4bf . ?\e$,2?=\e(B)
-       (#x4c0 . ?\e$,2??\e(B)
-       (#x4c1 . ?\e$,2?A\e(B)
-       (#x4c2 . ?\e$,2?D\e(B)
-       (#x4c3 . ?\e$,2?F\e(B)
-       (#x4c4 . ?\e$,2?H\e(B)
-       (#x4c5 . ?\e$,2?J\e(B)
-       (#x4c6 . ?\e$,2?K\e(B)
-       (#x4c7 . ?\e$,2?L\e(B)
-       (#x4c8 . ?\e$,2?M\e(B)
-       (#x4c9 . ?\e$,2?N\e(B)
-       (#x4ca . ?\e$,2?O\e(B)
-       (#x4cb . ?\e$,2?R\e(B)
-       (#x4cc . ?\e$,2?U\e(B)
-       (#x4cd . ?\e$,2?X\e(B)
-       (#x4ce . ?\e$,2?[\e(B)
-       (#x4cf . ?\e$,2?^\e(B)
-       (#x4d0 . ?\e$,2?_\e(B)
-       (#x4d1 . ?\e$,2?`\e(B)
-       (#x4d2 . ?\e$,2?a\e(B)
-       (#x4d3 . ?\e$,2?b\e(B)
-       (#x4d4 . ?\e$,2?d\e(B)
-       (#x4d5 . ?\e$,2?f\e(B)
-       (#x4d6 . ?\e$,2?h\e(B)
-       (#x4d7 . ?\e$,2?i\e(B)
-       (#x4d8 . ?\e$,2?j\e(B)
-       (#x4d9 . ?\e$,2?k\e(B)
-       (#x4da . ?\e$,2?l\e(B)
-       (#x4db . ?\e$,2?m\e(B)
-       (#x4dc . ?\e$,2?o\e(B)
-       (#x4dd . ?\e$,2?s\e(B)
-       (#x4de . ?\e$,2>{\e(B)
-       (#x4df . ?\e$,2>|\e(B)
+       (#x47e . ?\e(J~\e(B)
+       (#x4a1 . ?\e$A!#\e(B)
+       (#x4a2 . ?\\e$A!8\e(B)
+       (#x4a3 . ?\\e$A!9\e(B)
+       (#x4a4 . ?\e$A!"\e(B)
+       (#x4a5 . ?\e$A!$\e(B)
+       (#x4a6 . ?\e$A%r\e(B)
+       (#x4a7 . ?\e$A%!\e(B)
+       (#x4a8 . ?\e$A%#\e(B)
+       (#x4a9 . ?\e$A%%\e(B)
+       (#x4aa . ?\e$A%'\e(B)
+       (#x4ab . ?\e$A%)\e(B)
+       (#x4ac . ?\e$A%c\e(B)
+       (#x4ad . ?\e$A%e\e(B)
+       (#x4ae . ?\e$A%g\e(B)
+       (#x4af . ?\e$A%C\e(B)
+       (#x4b0 . ?\e$B!<\e(B)
+       (#x4b1 . ?\e$A%"\e(B)
+       (#x4b2 . ?\e$A%$\e(B)
+       (#x4b3 . ?\e$A%&\e(B)
+       (#x4b4 . ?\e$A%(\e(B)
+       (#x4b5 . ?\e$A%*\e(B)
+       (#x4b6 . ?\e$A%+\e(B)
+       (#x4b7 . ?\e$A%-\e(B)
+       (#x4b8 . ?\e$A%/\e(B)
+       (#x4b9 . ?\e$A%1\e(B)
+       (#x4ba . ?\e$A%3\e(B)
+       (#x4bb . ?\e$A%5\e(B)
+       (#x4bc . ?\e$A%7\e(B)
+       (#x4bd . ?\e$A%9\e(B)
+       (#x4be . ?\e$A%;\e(B)
+       (#x4bf . ?\e$A%=\e(B)
+       (#x4c0 . ?\e$A%?\e(B)
+       (#x4c1 . ?\e$A%A\e(B)
+       (#x4c2 . ?\e$A%D\e(B)
+       (#x4c3 . ?\e$A%F\e(B)
+       (#x4c4 . ?\e$A%H\e(B)
+       (#x4c5 . ?\e$A%J\e(B)
+       (#x4c6 . ?\e$A%K\e(B)
+       (#x4c7 . ?\e$A%L\e(B)
+       (#x4c8 . ?\e$A%M\e(B)
+       (#x4c9 . ?\e$A%N\e(B)
+       (#x4ca . ?\e$A%O\e(B)
+       (#x4cb . ?\e$A%R\e(B)
+       (#x4cc . ?\e$A%U\e(B)
+       (#x4cd . ?\e$A%X\e(B)
+       (#x4ce . ?\e$A%[\e(B)
+       (#x4cf . ?\e$A%^\e(B)
+       (#x4d0 . ?\e$A%_\e(B)
+       (#x4d1 . ?\e$A%`\e(B)
+       (#x4d2 . ?\e$A%a\e(B)
+       (#x4d3 . ?\e$A%b\e(B)
+       (#x4d4 . ?\e$A%d\e(B)
+       (#x4d5 . ?\e$A%f\e(B)
+       (#x4d6 . ?\e$A%h\e(B)
+       (#x4d7 . ?\e$A%i\e(B)
+       (#x4d8 . ?\e$A%j\e(B)
+       (#x4d9 . ?\e$A%k\e(B)
+       (#x4da . ?\e$A%l\e(B)
+       (#x4db . ?\e$A%m\e(B)
+       (#x4dc . ?\e$A%o\e(B)
+       (#x4dd . ?\e$A%s\e(B)
+       (#x4de . ?\e$B!+\e(B)
+       (#x4df . ?\e$B!,\e(B)
        ;; Arabic
        (#x5ac . ?\e,G,\e(B)
        (#x5bb . ?\e,G;\e(B)
@@ -1730,11 +1731,11 @@ as returned by `x-server-vendor'."
        (#x7f9 . ?\e,Fy\e(B)
         ;; Technical
        (#x8a1 . ?\e$,1|W\e(B)
-       (#x8a2 . ?\e$,2 ,\e(B)
-       (#x8a3 . ?\e$,2  \e(B)
+       (#x8a2 . ?\e$A)0\e(B)
+       (#x8a3 . ?\e$A)$\e(B)
        (#x8a4 . ?\e$,1{ \e(B)
        (#x8a5 . ?\e$,1{!\e(B)
-       (#x8a6 . ?\e$,2 "\e(B)
+       (#x8a6 . ?\e$A)&\e(B)
        (#x8a7 . ?\e$,1|A\e(B)
        (#x8a8 . ?\e$,1|C\e(B)
        (#x8a9 . ?\e$,1|D\e(B)
@@ -1745,56 +1746,56 @@ as returned by `x-server-vendor'."
        (#x8ae . ?\e$,1|@\e(B)
        (#x8af . ?\e$,1|H\e(B)
        (#x8b0 . ?\e$,1|L\e(B)
-       (#x8bc . ?\e$,1y$\e(B)
-       (#x8bd . ?\e$,1y \e(B)
-       (#x8be . ?\e$,1y%\e(B)
-       (#x8bf . ?\e$,1xK\e(B)
-       (#x8c0 . ?\e$,1xT\e(B)
-       (#x8c1 . ?\e$,1x=\e(B)
-       (#x8c2 . ?\e$,1x>\e(B)
-       (#x8c5 . ?\e$,1x'\e(B)
-       (#x8c8 . ?\e$,1x\\e(B)
-       (#x8c9 . ?\e$,1xc\e(B)
-       (#x8cd . ?\e$,1wT\e(B)
-       (#x8ce . ?\e$,1wR\e(B)
-       (#x8cf . ?\e$,1y!\e(B)
-       (#x8d6 . ?\e$,1x:\e(B)
-       (#x8da . ?\e$,1yB\e(B)
-       (#x8db . ?\e$,1yC\e(B)
-       (#x8dc . ?\e$,1xI\e(B)
-       (#x8dd . ?\e$,1xJ\e(B)
-       (#x8de . ?\e$,1xG\e(B)
-       (#x8df . ?\e$,1xH\e(B)
-       (#x8ef . ?\e$,1x"\e(B)
+       (#x8bc . ?\e$A!\\e(B)
+       (#x8bd . ?\e$A!Y\e(B)
+       (#x8be . ?\e$A!]\e(B)
+       (#x8bf . ?\e$A!R\e(B)
+       (#x8c0 . ?\e$A!`\e(B)
+       (#x8c1 . ?\e$A!X\e(B)
+       (#x8c2 . ?\e$A!^\e(B)
+       (#x8c5 . ?\e$B"`\e(B)
+       (#x8c8 . ?\e$(G"D\e(B)
+       (#x8c9 . ?\e$(O"l\e(B)
+       (#x8cd . ?\e$B"N\e(B)
+       (#x8ce . ?\e$B"M\e(B)
+       (#x8cf . ?\e$A!T\e(B)
+       (#x8d6 . ?\e$A!L\e(B)
+       (#x8da . ?\e$B">\e(B)
+       (#x8db . ?\e$B"?\e(B)
+       (#x8dc . ?\e$A!I\e(B)
+       (#x8dd . ?\e$A!H\e(B)
+       (#x8de . ?\e$A!D\e(B)
+       (#x8df . ?\e$A!E\e(B)
+       (#x8ef . ?\e$B"_\e(B)
        (#x8f6 . ?\e$,1!R\e(B)
-       (#x8fb . ?\e$,1vp\e(B)
-       (#x8fc . ?\e$,1vq\e(B)
-       (#x8fd . ?\e$,1vr\e(B)
-       (#x8fe . ?\e$,1vs\e(B)
+       (#x8fb . ?\e$A!{\e(B)
+       (#x8fc . ?\e$A!|\e(B)
+       (#x8fd . ?\e$A!z\e(B)
+       (#x8fe . ?\e$A!}\e(B)
        ;; Special
-       (#x9e0 . ?\e$,2"&\e(B)
-       (#x9e1 . ?\e$,2!R\e(B)
-       (#x9e2 . ?\e$,1}I\e(B)
-       (#x9e3 . ?\e$,1}L\e(B)
-       (#x9e4 . ?\e$,1}M\e(B)
-       (#x9e5 . ?\e$,1}J\e(B)
+       (#x9e0 . ?\e$A!t\e(B)
+       (#x9e1 . ?\e$(C"F\e(B)
+       (#x9e2 . ?\e$(GB*\e(B)
+       (#x9e3 . ?\e$(GB-\e(B)
+       (#x9e4 . ?\e$(GB.\e(B)
+       (#x9e5 . ?\e$(GB+\e(B)
        (#x9e8 . ?\e$,1}d\e(B)
-       (#x9e9 . ?\e$,1}K\e(B)
-       (#x9ea . ?\e$,2 8\e(B)
-       (#x9eb . ?\e$,2 0\e(B)
-       (#x9ec . ?\e$,2 ,\e(B)
-       (#x9ed . ?\e$,2 4\e(B)
-       (#x9ee . ?\e$,2 \\e(B)
+       (#x9e9 . ?\e$(GB,\e(B)
+       (#x9ea . ?\e$A)<\e(B)
+       (#x9eb . ?\e$A)4\e(B)
+       (#x9ec . ?\e$A)0\e(B)
+       (#x9ed . ?\e$A)8\e(B)
+       (#x9ee . ?\e$A)`\e(B)
        (#x9ef . ?\e$,1|Z\e(B)
        (#x9f0 . ?\e$,1|[\e(B)
-       (#x9f1 . ?\e$,2  \e(B)
+       (#x9f1 . ?\e$A)$\e(B)
        (#x9f2 . ?\e$,1|\\e(B)
        (#x9f3 . ?\e$,1|]\e(B)
-       (#x9f4 . ?\e$,2 <\e(B)
-       (#x9f5 . ?\e$,2 D\e(B)
-       (#x9f6 . ?\e$,2 T\e(B)
-       (#x9f7 . ?\e$,2 L\e(B)
-       (#x9f8 . ?\e$,2 "\e(B)
+       (#x9f4 . ?\e$A)@\e(B)
+       (#x9f5 . ?\e$A)H\e(B)
+       (#x9f6 . ?\e$A)X\e(B)
+       (#x9f7 . ?\e$A)P\e(B)
+       (#x9f8 . ?\e$A)&\e(B)
        ;; Publishing
        (#xaa1 . ?\e$,1rc\e(B)
        (#xaa2 . ?\e$,1rb\e(B)
@@ -1804,93 +1805,93 @@ as returned by `x-server-vendor'."
        (#xaa6 . ?\e$,1rh\e(B)
        (#xaa7 . ?\e$,1ri\e(B)
        (#xaa8 . ?\e$,1rj\e(B)
-       (#xaa9 . ?\e$,1rt\e(B)
-       (#xaaa . ?\e$,1rs\e(B)
-       (#xaae . ?\e$,1s&\e(B)
-       (#xaaf . ?\e$,1s%\e(B)
-       (#xab0 . ?\e$,1v3\e(B)
-       (#xab1 . ?\e$,1v4\e(B)
-       (#xab2 . ?\e$,1v5\e(B)
+       (#xaa9 . ?\e$(G!7\e(B)
+       (#xaaa . ?\e$(G!9\e(B)
+       (#xaae . ?\e$A!-\e(B)
+       (#xaaf . ?\e$(G!-\e(B)
+       (#xab0 . ?\e$(O'x\e(B)
+       (#xab1 . ?\e$(O'y\e(B)
+       (#xab2 . ?\e$(O'z\e(B)
        (#xab3 . ?\e$,1v6\e(B)
        (#xab4 . ?\e$,1v7\e(B)
        (#xab5 . ?\e$,1v8\e(B)
        (#xab6 . ?\e$,1v9\e(B)
        (#xab7 . ?\e$,1v:\e(B)
-       (#xab8 . ?\e$,1uE\e(B)
+       (#xab8 . ?\e$(G""\e(B)
        (#xabb . ?\e$,1rr\e(B)
        (#xabc . ?\e$,1{)\e(B)
        (#xabe . ?\e$,1{*\e(B)
-       (#xac3 . ?\e$,1v;\e(B)
-       (#xac4 . ?\e$,1v<\e(B)
-       (#xac5 . ?\e$,1v=\e(B)
-       (#xac6 . ?\e$,1v>\e(B)
-       (#xac9 . ?\e$,1ub\e(B)
+       (#xac3 . ?\e$(C({\e(B)
+       (#xac4 . ?\e$(C(|\e(B)
+       (#xac5 . ?\e$(C(}\e(B)
+       (#xac6 . ?\e$(C(~\e(B)
+       (#xac9 . ?\e$(D"o\e(B)
        (#xaca . ?\e$,2"s\e(B)
-       (#xacc . ?\e$,2"!\e(B)
-       (#xacd . ?\e$,2!w\e(B)
-       (#xace . ?\e$,2"+\e(B)
+       (#xacc . ?\e$(O##\e(B)
+       (#xacd . ?\e$(O#!\e(B)
+       (#xace . ?\e$A!p\e(B)
        (#xacf . ?\e$,2!o\e(B)
-       (#xad0 . ?\e$,1rx\e(B)
-       (#xad1 . ?\e$,1ry\e(B)
-       (#xad2 . ?\e$,1r|\e(B)
-       (#xad3 . ?\e$,1r}\e(B)
+       (#xad0 . ?\e,F!\e(B)
+       (#xad1 . ?\e,F"\e(B)
+       (#xad2 . ?\e,Y4\e(B)
+       (#xad3 . ?\e,Y!\e(B)
        (#xad4 . ?\e$,1u^\e(B)
-       (#xad6 . ?\e$,1s2\e(B)
-       (#xad7 . ?\e$,1s3\e(B)
+       (#xad6 . ?\e$A!d\e(B)
+       (#xad7 . ?\e$A!e\e(B)
        (#xad9 . ?\e$,2%]\e(B)
        (#xadb . ?\e$,2!l\e(B)
-       (#xadc . ?\e$,2" \e(B)
-       (#xadd . ?\e$,2!v\e(B)
-       (#xade . ?\e$,2"/\e(B)
+       (#xadc . ?\e$(O#$\e(B)
+       (#xadd . ?\e$(O#"\e(B)
+       (#xade . ?\e$A!q\e(B)
        (#xadf . ?\e$,2!n\e(B)
-       (#xae0 . ?\e$,2"F\e(B)
+       (#xae0 . ?\e$(O#?\e(B)
        (#xae1 . ?\e$,2!k\e(B)
        (#xae2 . ?\e$,2!m\e(B)
-       (#xae3 . ?\e$,2!s\e(B)
-       (#xae4 . ?\e$,2!}\e(B)
-       (#xae5 . ?\e$,2"f\e(B)
-       (#xae6 . ?\e$,1s"\e(B)
+       (#xae3 . ?\e$A!w\e(B)
+       (#xae4 . ?\e$(G!}\e(B)
+       (#xae5 . ?\e$A!n\e(B)
+       (#xae6 . ?\e$(O#@\e(B)
        (#xae7 . ?\e$,2!j\e(B)
-       (#xae8 . ?\e$,2!r\e(B)
-       (#xae9 . ?\e$,2!|\e(B)
-       (#xaea . ?\e$,2"|\e(B)
-       (#xaeb . ?\e$,2"~\e(B)
-       (#xaec . ?\e$,2#c\e(B)
-       (#xaed . ?\e$,2#f\e(B)
-       (#xaee . ?\e$,2#e\e(B)
+       (#xae8 . ?\e$A!x\e(B)
+       (#xae9 . ?\e$(G!~\e(B)
+       (#xaea . ?\e$(C"P\e(B)
+       (#xaeb . ?\e$(O-~\e(B)
+       (#xaec . ?\e$(O&@\e(B)
+       (#xaed . ?\e$(O&<\e(B)
+       (#xaee . ?\e$(O&>\e(B)
        (#xaf0 . ?\e$,2%`\e(B)
-       (#xaf1 . ?\e$,1s \e(B)
-       (#xaf2 . ?\e$,1s!\e(B)
-       (#xaf3 . ?\e$,2%S\e(B)
+       (#xaf1 . ?\e$B"w\e(B)
+       (#xaf2 . ?\e$B"x\e(B)
+       (#xaf3 . ?\e$(O'{\e(B)
        (#xaf4 . ?\e$,2%W\e(B)
-       (#xaf5 . ?\e$,2#o\e(B)
-       (#xaf6 . ?\e$,2#m\e(B)
-       (#xaf7 . ?\e$,2#B\e(B)
-       (#xaf8 . ?\e$,2#@\e(B)
-       (#xaf9 . ?\e$,2"n\e(B)
+       (#xaf5 . ?\e$B"t\e(B)
+       (#xaf6 . ?\e$B"u\e(B)
+       (#xaf7 . ?\e$A!a\e(B)
+       (#xaf8 . ?\e$A!b\e(B)
+       (#xaf9 . ?\e$(O&g\e(B)
        (#xafa . ?\e$,1zu\e(B)
        (#xafb . ?\e$,1uW\e(B)
        (#xafc . ?\e$,1s8\e(B)
        (#xafd . ?\e$,1rz\e(B)
-       (#xafe . ?\e$,1r~\e(B)
+       (#xafe . ?\e,Y%\e(B)
        ;; APL
        (#xba3 . ?<)
        (#xba6 . ?>)
-       (#xba8 . ?\e$,1xH\e(B)
-       (#xba9 . ?\e$,1xG\e(B)
+       (#xba8 . ?\e$A!E\e(B)
+       (#xba9 . ?\e$A!D\e(B)
        (#xbc0 . ?\e,A/\e(B)
-       (#xbc2 . ?\e$,1ye\e(B)
-       (#xbc3 . ?\e$,1xI\e(B)
+       (#xbc2 . ?\e$A!M\e(B)
+       (#xbc3 . ?\e$A!I\e(B)
        (#xbc4 . ?\e$,1zj\e(B)
        (#xbc6 . ?_)
        (#xbca . ?\e$,1x8\e(B)
        (#xbcc . ?\e$,1|5\e(B)
        (#xbce . ?\e$,1yd\e(B)
-       (#xbcf . ?\e$,2"+\e(B)
+       (#xbcf . ?\e$A!p\e(B)
        (#xbd3 . ?\e$,1zh\e(B)
-       (#xbd6 . ?\e$,1xJ\e(B)
-       (#xbd8 . ?\e$,1yC\e(B)
-       (#xbda . ?\e$,1yB\e(B)
+       (#xbd6 . ?\e$A!H\e(B)
+       (#xbd8 . ?\e$B"?\e(B)
+       (#xbda . ?\e$B">\e(B)
        (#xbdc . ?\e$,1yb\e(B)
        (#xbfc . ?\e$,1yc\e(B)
        ;; Hebrew
@@ -2105,7 +2106,7 @@ as returned by `x-server-vendor'."
        ;; Latin-9
        (#x13bc . ?\e,b<\e(B)
        (#x13bd . ?\e,b=\e(B)
-       (#x13be . ?\e,b>\e(B)
+       (#x13be . ?\e,_/\e(B)
        ;; Currency
        (#x20a0 . ?\e$,1t@\e(B)
        (#x20a1 . ?\e$,1tA\e(B)
@@ -2208,112 +2209,37 @@ in the clipboard."
 
 (defvar x-select-request-type nil
   "*Data type request for X selection.
-The value is nil, one of the following data types, or a list of them:
+The value is one of the following data types, a list of them, or nil:
   `COMPOUND_TEXT', `UTF8_STRING', `STRING', `TEXT'
 
-If the value is nil, try `COMPOUND_TEXT' and `UTF8_STRING', and
-use the more appropriate result.  If both fail, try `STRING', and
-then `TEXT'.
-
 If the value is one of the above symbols, try only the specified
 type.
 
 If the value is a list of them, try each of them in the specified
-order until succeed.")
+order until succeed.
 
-;; Helper function for x-selection-value.  Select UTF8 or CTEXT
-;; whichever is more appropriate.  Here, we use this heurisitcs.
-;;
-;;   (1) If their lengthes are different, select the longer one.  This
-;;   is because an X client may just cut off unsupported characters.
-;;
-;;   (2) Otherwise, if they are different at Nth character, and that
-;;   of UTF8 is a Latin character and that of CTEXT belongs to a CJK
-;;   character set, select UTF8.  Also select UTF8 if the Nth
-;;   character of UTF8 is non-ASCII where as that of CTEXT is ASCII.
-;;   This is because an X client may replace unsupported characters
-;;   with some ASCII character (typically ` ' or `?') in CTEXT.
-;;
-;;   (3) Otherwise, select CTEXT.  This is because legacy charsets are
-;;   better for the current Emacs, especially when the selection owner
-;;   is also Emacs.
-
-(defun x-select-utf8-or-ctext (utf8 ctext)
-  (let ((len-utf8 (length utf8))
-       (len-ctext (length ctext))
-       (selected ctext)
-       (i 0)
-       char)
-    (if (/= len-utf8 len-ctext)
-       (if (> len-utf8 len-ctext) utf8 ctext)
-      (let ((result (compare-strings utf8 0 len-utf8 ctext 0 len-ctext)))
-       (if (eq result t)
-           ctext
-         (let ((utf8-char (aref utf8 (1- (abs result))))
-               (ctext-char (aref ctext (1- (abs result)))))
-           (if (or (and (aref (char-category-set utf8-char) ?l)
-                        (aref (char-category-set ctext-char) ?C))
-                   (and (>= utf8-char 128)
-                        (< ctext-char  128)))
-               utf8
-             ctext)))))))
+The value nil is the same as this list:
+  \(UTF8_STRING COMPOUND_TEXT STRING)
+")
 
 ;; Get a selection value of type TYPE by calling x-get-selection with
-;; an appropiate DATA-TYPE argument decidd by `x-select-request-type'.
+;; an appropiate DATA-TYPE argument decided by `x-select-request-type'.
 ;; The return value is already decoded.  If x-get-selection causes an
 ;; error, this function return nil.
 
 (defun x-selection-value (type)
-  (let (text)
-    (cond ((null x-select-request-type)
-          (let (utf8 ctext utf8-coding)
-            ;; We try both UTF8_STRING and COMPOUND_TEXT, and choose
-            ;; the more appropriate one.  If both fail, try STRING.
-
-            ;; At first try UTF8_STRING.
-            (setq utf8 (condition-case nil
-                           (x-get-selection type 'UTF8_STRING)
-                         (error nil))
-                  utf8-coding last-coding-system-used)
-            (if utf8
-                ;; If it is a local selection, or it contains only
-                ;; ASCII characers, choose it.
-                (if (or (not (get-text-property 0 'foreign-selection utf8))
-                        (= (length utf8) (string-bytes utf8)))
-                    (setq text utf8)))
-            ;; If not yet decided, try COMPOUND_TEXT.
-            (if (not text)
-                (if (setq ctext (condition-case nil
-                                    (x-get-selection type 'COMPOUND_TEXT)
-                                  (error nil)))
-                    ;; If UTF8_STRING was also successful, choose the
-                    ;; more appropriate one from UTF8 and CTEXT.
-                    (if utf8
-                        (setq text (x-select-utf8-or-ctext utf8 ctext))
-                      ;; Othewise, choose CTEXT.
-                      (setq text ctext))
-                  (setq text utf8)))
-            ;; If not yet decided, try STRING.
-            (or text
-                (setq text (condition-case nil
-                               (x-get-selection type 'STRING)
-                             (error nil))))
-            (if (eq text utf8)
-                (setq last-coding-system-used utf8-coding))))
-
-         ((consp x-select-request-type)
-          (let ((tail x-select-request-type))
-            (while (and tail (not text))
-              (condition-case nil
-                  (setq text (x-get-selection type (car tail)))
-                (error nil))
-              (setq tail (cdr tail)))))
-
-         (t
-          (condition-case nil
-              (setq text (x-get-selection type x-select-request-type))
-            (error nil))))
-
+  (let ((request-type (or x-select-request-type
+                         '(UTF8_STRING COMPOUND_TEXT STRING)))
+       text)
+    (if (consp request-type)
+       (while (and request-type (not text))
+         (condition-case nil
+             (setq text (x-get-selection type (car request-type)))
+           (error nil))
+         (setq request-type (cdr request-type)))
+      (condition-case nil
+         (setq text (x-get-selection type request-type))
+       (error nil)))
     (if text
        (remove-text-properties 0 (length text) '(foreign-selection nil) text))
     text))
@@ -2480,28 +2406,6 @@ order until succeed.")
   ;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...).
   (create-fontset-from-x-resource)
 
-  ;; Try to create a fontset from a font specification which comes
-  ;; from initial-frame-alist, default-frame-alist, or X resource.
-  ;; A font specification in command line argument (i.e. -fn XXXX)
-  ;; should be already in default-frame-alist as a `font'
-  ;; parameter.  However, any font specifications in site-start
-  ;; library, user's init file (.emacs), and default.el are not
-  ;; yet handled here.
-
-  (let ((font (or (cdr (assq 'font initial-frame-alist))
-                 (cdr (assq 'font default-frame-alist))
-                 (x-get-resource "font" "Font")))
-       xlfd-fields resolved-name)
-    (if (and font
-            (not (query-fontset font))
-            (setq resolved-name (x-resolve-font-name font))
-            (setq xlfd-fields (x-decompose-font-name font)))
-       (if (string= "fontset" (aref xlfd-fields xlfd-regexp-registry-subnum))
-           (new-fontset font (x-complement-fontset-spec xlfd-fields nil))
-         ;; Create a fontset from FONT.  The fontset name is
-         ;; generated from FONT.
-         (create-fontset-from-ascii-font font resolved-name "startup"))))
-
   ;; Set scroll bar mode to right if set by X resources. Default is left.
   (if (equal (x-get-resource "verticalScrollBars" "ScrollBars") "right")
       (customize-set-variable 'scroll-bar-mode 'right))
index 54e45d6b28f7a5b04703d01ad306b2d5cc274906..6badf8f51e18a76bb733a3dbf4cc07dc39be6146 100644 (file)
@@ -374,15 +374,29 @@ and `fill-nobreak-invisible'."
              (looking-at paragraph-start))))
      (run-hook-with-args-until-success 'fill-nobreak-predicate)))))
 
-;; Put `fill-find-break-point-function' property to charsets which
-;; require special functions to find line breaking point.
-(dolist (pair '((katakana-jisx0201 . kinsoku)
-               (chinese-gb2312 . kinsoku)
-               (japanese-jisx0208 . kinsoku)
-               (japanese-jisx0212 . kinsoku)
-               (chinese-big5-1 . kinsoku)
-               (chinese-big5-2 . kinsoku)))
-  (put-charset-property (car pair) 'fill-find-break-point-function (cdr pair)))
+(defvar fill-find-break-point-function-table (make-char-table nil)
+  "Char-table of special functions to find line breaking point.")
+
+(defvar fill-nospace-between-words-table (make-char-table nil)
+  "Char-table of characters that don't use space between words.")
+
+(progn
+  ;; Register `kinsoku' for scripts HAN, KANA, BOPOMPFO, and CJK-MISS.
+  ;; Also tell that they don't use space between words.
+  (map-char-table
+   #'(lambda (key val)
+       (when (memq val '(han kana bopomofo cjk-misc))
+        (set-char-table-range fill-find-break-point-function-table
+                              key 'kinsoku)
+        (set-char-table-range fill-nospace-between-words-table
+                              key t)))
+   char-script-table)
+  ;; Do the same thing also for full width characters and half
+  ;; width kana variants.
+  (set-char-table-range fill-find-break-point-function-table
+                       '(#xFF01 . #xFFE6) 'kinsoku)
+  (set-char-table-range fill-nospace-between-words-table
+                       '(#xFF01 . #xFFE6) 'kinsoku))
 
 (defun fill-find-break-point (limit)
   "Move point to a proper line breaking position of the current line.
@@ -393,15 +407,9 @@ after or before a non-ASCII character.  If the charset of the
 character has the property `fill-find-break-point-function', this
 function calls the property value as a function with one arg LIMIT.
 If the charset has no such property, do nothing."
-  (let* ((ch (following-char))
-        (charset (char-charset ch))
-        func)
-    (if (eq charset 'ascii)
-       (setq ch (preceding-char)
-             charset (char-charset ch)))
-    (if (charsetp charset)
-       (setq func
-             (get-charset-property charset 'fill-find-break-point-function)))
+  (let ((func (or
+              (aref fill-find-break-point-function-table (following-char))
+              (aref fill-find-break-point-function-table (preceding-char)))))
     (if (and func (fboundp func))
        (funcall func limit))))
 
@@ -460,14 +468,13 @@ Point is moved to just past the fill prefix on the first line."
   (goto-char from)
   (if enable-multibyte-characters
       ;; Delete unnecessay newlines surrounded by words.  The
-      ;; character category `|' means that we can break a line
-      ;; at the character.  And, charset property
-      ;; `nospace-between-words' tells how to concatenate
-      ;; words.  If the value is non-nil, never put spaces
-      ;; between words, thus delete a newline between them.
-      ;; If the value is nil, delete a newline only when a
-      ;; character preceding a newline has text property
-      ;; `nospace-between-words'.
+      ;; character category `|' means that we can break a line at the
+      ;; character.  And, char-table
+      ;; `fill-nospace-between-words-table' tells how to concatenate
+      ;; words.  If a character has non-nil value in the table, never
+      ;; put spaces between words, thus delete a newline between them.
+      ;; Otherwise, delete a newline only when a character preceding a
+      ;; newline has non-nil value in that table.
       (while (search-forward "\n" to t)
        (if (get-text-property (match-beginning 0) 'fill-space)
            (replace-match (get-text-property (match-beginning 0) 'fill-space))
@@ -475,10 +482,8 @@ Point is moved to just past the fill prefix on the first line."
                (next (following-char)))
            (if (and (or (aref (char-category-set next) ?|)
                         (aref (char-category-set prev) ?|))
-                    (or (get-charset-property (char-charset prev)
-                                              'nospace-between-words)
-                        (get-text-property (1- (match-beginning 0))
-                                           'nospace-between-words)))
+                    (or (aref fill-nospace-between-words-table next)
+                        (aref fill-nospace-between-words-table prev)))
                (delete-char -1))))))
 
   (goto-char from)
index 104e79acb4bd9109cae871eed468b7f696c49dd4..65153c3bb5d28f743b40774feda5043b83bf1dae 100644 (file)
@@ -1190,28 +1190,7 @@ Protects against bogus binding of `enable-multibyte-characters' in XEmacs."
       (decode-coding-string str (ispell-get-coding-system))
     str))
 
-(put 'ispell-unified-chars-table 'char-table-extra-slots 0)
-
-;; Char-table that maps an Unicode character (charset:
-;; latin-iso8859-1, mule-unicode-0100-24ff, mule-unicode-2500-34ff) to
-;; a string in which all equivalent characters are listed.
-
-(defconst ispell-unified-chars-table
-  (let ((table (make-char-table 'ispell-unified-chars-table)))
-    (map-char-table
-     #'(lambda (c v)
-        (if (and v (/= c v))
-            (let ((unified (or (aref table v) (string v))))
-              (aset table v (concat unified (string c))))))
-     ucs-mule-8859-to-mule-unicode)
-    table))
-
-;; Return a string decoded from Nth element of the current dictionary
-;; while splicing equivalent characters into the string.  This splicing
-;; is done only if the string is a regular expression of the form
-;; "[...]" because, otherwise, splicing will result in incorrect
-;; regular expression matching.
-
+;; Return a string decoded from Nth element of the current dictionary.
 (defun ispell-get-decoded-string (n)
   (let* ((slot (or
                (assoc ispell-current-dictionary ispell-local-dictionary-alist)
@@ -1220,17 +1199,8 @@ Protects against bogus binding of `enable-multibyte-characters' in XEmacs."
     (when (and (> (length str) 0)
               (not (multibyte-string-p str)))
       (setq str (ispell-decode-string str))
-      (if (and (= (aref str 0) ?\[)
-              (eq (string-match "\\]" str) (1- (length str))))
-         (setq str
-               (string-as-multibyte
-                (mapconcat
-                 #'(lambda (c)
-                     (let ((unichar (aref ucs-mule-8859-to-mule-unicode c)))
-                       (if unichar
-                           (aref ispell-unified-chars-table unichar)
-                         (string c))))
-                 str ""))))
+      (or (multibyte-string-p str)
+         (setq str (string-to-multibyte str)))
       (setcar (nthcdr n slot) str))
     str))
 
index 245ffc479081cf821e6767c8cadb669040aabeae..181234e429a80a709feaa889df875f351c69092c 100644 (file)
@@ -114,8 +114,6 @@ This takes effect when first loading the `sgml-mode' library.")
         (define-key map "\"" 'sgml-name-self))
       (when (memq ?' sgml-specials)
         (define-key map "'" 'sgml-name-self)))
-    (define-key map (vector (make-char 'latin-iso8859-1))
-      'sgml-maybe-name-self)
     (let ((c 127)
          (map (nth 1 map)))
       (while (< (setq c (1+ c)) 256)
@@ -211,7 +209,7 @@ This takes effect when first loading the `sgml-mode' library.")
   (let ((table (make-char-table 'sgml-table))
        (i 32)
        elt)
-    (while (< i 256)
+    (while (< i 128)
       (setq elt (aref sgml-char-names i))
       (if elt (aset table (make-char 'latin-iso8859-1 i) elt))
       (setq i (1+ i)))
index 7316e6db75a3794e4667db0de1ff8770147e00cc..06a984ba6a512a80af512d53f0372821d3473ad7 100644 (file)
@@ -710,7 +710,7 @@ around literals."
 ;;; Some functions used in time-stamp-format
 
 ;;; These functions have been obsolete since 1995
-;;; and will be removed in a future Emacs release.
+;;; and will be removed in Emacs 23.
 ;;; Meanwhile, discourage other packages from using them.
 (dolist (function '(time-stamp-month-dd-yyyy time-stamp-dd/mm/yyyy
                    time-stamp-mon-dd-yyyy   time-stamp-dd-mon-yy
diff --git a/lisp/url/.gitignore b/lisp/url/.gitignore
deleted file mode 100644 (file)
index 362a9c8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Makefile
-auto-autoloads.el
-custom-load.el
-url-auto.el
index 6d82b194ff89f176f5bc0aa9fb71daebfa84c6ce..7d4c764f2d0b66ebc2e11cf479d4251f6011dc51 100644 (file)
@@ -30,7 +30,7 @@
 (defconst emacs-copyright "Copyright (C) 2007 Free Software Foundation, Inc."
   "Short copyright string for this version of Emacs.")
 
-(defconst emacs-version "23.0.50" "\
+(defconst emacs-version "23.0.60" "\
 Version numbers of this version of Emacs.")
 
 (defconst emacs-major-version
index 82343d4e14b64c27481bb928bcc558929460cf3a..676e26ee12ae45c48ed35fa6f85b4f7c78979cc0 100644 (file)
@@ -94,7 +94,7 @@ numbers, and the build number."
   (x-server-version))
 
 (defun w32-using-nt ()
-  "Return non-nil if running on a 32-bit Windows system.
+  "Return non-nil if running on a Windows NT descendant.
 That includes all Windows systems except for 9X/Me."
   (and (eq system-type 'windows-nt) (getenv "SystemRoot")))
 
@@ -374,9 +374,11 @@ bit output with no translation."
 ;; value from w32-select-font etc, so list the most important charsets last.
 (w32-add-charset-info "iso8859-14" 'w32-charset-ansi  28604)
 (w32-add-charset-info "iso8859-15" 'w32-charset-ansi  28605)
+;; The following two are included for pattern matching.
+(w32-add-charset-info "jisx0201" 'w32-charset-shiftjis 932)
+(w32-add-charset-info "jisx0208" 'w32-charset-shiftjis 932)
 (w32-add-charset-info "jisx0201-latin" 'w32-charset-shiftjis 932)
 (w32-add-charset-info "jisx0201-katakana" 'w32-charset-shiftjis 932)
-(w32-add-charset-info "jisx0208-sjis" 'w32-charset-shiftjis 932)
 (w32-add-charset-info "ksc5601.1989-1" 'w32-charset-hangeul 949)
 (w32-add-charset-info "big5-1" 'w32-charset-chinesebig5 950)
 (w32-add-charset-info "gb2312.1980-1" 'w32-charset-gb2312 936)
@@ -397,12 +399,20 @@ bit output with no translation."
       (w32-add-charset-info "iso8859-5" 'w32-charset-russian 28595)
       (w32-add-charset-info "tis620-1" 'w32-charset-thai 874)
       (w32-add-charset-info "ksc5601.1992-1" 'w32-charset-johab 1361)
-      (w32-add-charset-info "mac-latin" 'w32-charset-mac nil)))
+      (w32-add-charset-info "mac-roman" 'w32-charset-mac 10000)))
 (if (boundp 'w32-unicode-charset-defined)
     (progn
       (w32-add-charset-info "iso10646-1" 'w32-charset-unicode t))
-  ;; If unicode windows charset is not defined, use ansi fonts.
-  (w32-add-charset-info "iso10646-1" 'w32-charset-ansi t))
+  (w32-add-charset-info "iso10646-1" 'w32-charset-default t))
+;;   ;; If unicode windows charset is not defined, use ansi fonts.
+;;   (w32-add-charset-info "iso10646-1" 'w32-charset-ansi t))
+
+;; Prefered names
+(w32-add-charset-info "big5-0" 'w32-charset-chinesebig5 950)
+(w32-add-charset-info "gb2312.1980-0" 'w32-charset-gb2312 936)
+(w32-add-charset-info "jisx0208-sjis" 'w32-charset-shiftjis 932)
+(w32-add-charset-info "ksc5601.1987-0" 'w32-charset-hangeul 949)
+(w32-add-charset-info "tis620-0" 'w32-charset-thai 874)
 (w32-add-charset-info "iso8859-1" 'w32-charset-ansi 1252)
 
 (make-obsolete-variable 'w32-enable-italics
index 1ce6deda89efcf05a6e031cadcc117ed03978d10..652d49a542177e4d4eb3fd443c8687ca03c08c02 100644 (file)
@@ -3024,6 +3024,43 @@ as the value."
   :complete-function 'ispell-complete-word
   :prompt-history 'widget-string-prompt-value-history)
 
+(eval-when-compile (defvar widget))
+
+(defun widget-string-complete ()
+  "Complete contents of string field.
+Completions are taken from the :completion-alist property of the
+widget.  If that isn't a list, it's evalled and expected to yield a list."
+  (interactive)
+  (let* ((prefix (buffer-substring-no-properties (widget-field-start widget)
+                                                (point)))
+        (completion-ignore-case (widget-get widget :completion-ignore-case))
+        (alist (widget-get widget :completion-alist))
+        (_ (unless (listp alist)
+             (setq alist (eval alist))))
+        (completion (try-completion prefix alist)))
+    (cond ((eq completion t)
+          (when completion-ignore-case
+            ;; Replace field with completion in case its case is different.
+            (delete-region (widget-field-start widget)
+                           (widget-field-end widget))
+            (insert-and-inherit (car (assoc-ignore-case prefix alist))))
+          (message "Only match"))
+         ((null completion)
+          (error "No match"))
+         ((not (eq t (compare-strings prefix nil nil completion nil nil 
+                                      completion-ignore-case)))
+          (when completion-ignore-case
+            ;; Replace field with completion in case its case is different.
+            (delete-region (widget-field-start widget)
+                           (widget-field-end widget))
+            (insert-and-inherit completion)))
+         (t
+          (message "Making completion list...")
+          (with-output-to-temp-buffer "*Completions*"
+            (display-completion-list
+             (all-completions prefix alist nil)))
+          (message "Making completion list...done")))))
+
 (define-widget 'regexp 'string
   "A regular expression."
   :match 'widget-regexp-match
@@ -3180,16 +3217,13 @@ It reads a directory name from an editable text field."
                       (interactive)
                       (lisp-complete-symbol 'boundp))
   :tag "Variable")
-\f
-(defvar widget-coding-system-prompt-value-history nil
-  "History of input to `widget-coding-system-prompt-value'.")
 
 (define-widget 'coding-system 'symbol
   "A MULE coding-system."
   :format "%{%t%}: %v"
   :tag "Coding system"
   :base-only nil
-  :prompt-history 'widget-coding-system-prompt-value-history
+  :prompt-history 'coding-system-value-history
   :prompt-value 'widget-coding-system-prompt-value
   :action 'widget-coding-system-action
   :complete-function (lambda ()
@@ -3429,7 +3463,7 @@ To use this type, you must define :match or :match-alternatives."
                           (aref value 0)
                         value))
   :match (lambda (widget value)
-          (char-valid-p value)))
+          (characterp value)))
 
 (define-widget 'list 'group
   "A Lisp list."
index 6da62d83f21d929c6be23c8f471d1b5407aee695..08768e16bebd42b6a309d03ddf093c789d18bb27 100755 (executable)
--- a/make-dist
+++ b/make-dist
@@ -318,7 +318,7 @@ for subdir in lisp site-lisp \
              leim/SKK-DIC leim/ja-dic leim/quail \
              src src/m src/s src/bitmaps lib-src oldXMenu lwlib \
              nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
-             etc etc/e etc/gnus etc/nxml \
+             etc etc/charsets etc/e etc/gnus etc/nxml \
              etc/images etc/images/ezimage etc/images/gnus etc/images/gud \
              etc/images/icons etc/images/low-color etc/images/mail \
              etc/images/smilies etc/images/smilies/grayscale \
@@ -575,7 +575,7 @@ echo "Making links to \`etc'"
 ### tex litter.
 (cd etc
  files=`ls -d * | grep -v CVS | grep -v RCS | grep -v 'Old' | grep -v '^e$' \
-        | grep -v '^gnus$' | grep -v '^images$' | grep -v '^nxml$' \
+        | grep -v '^charsets$' | grep -v '^gnus$' | grep -v '^images$' | grep -v '^nxml$' \
         | grep -v '^refcards$' | grep -v '^tutorials$'| grep -v '^schema$'`
  ln $files ../${tempdir}/etc
  ## If we ended up with a symlink, or if we did not get anything
@@ -599,7 +599,7 @@ echo "Making links to \`etc'"
  rm -f DOC* *~ \#*\# *.dvi *.log *.orig *.rej *,v =* core
  rm -f TAGS)
 
-for dir in etc/e etc/gnus etc/nxml etc/tutorials etc/refcards etc/schema ; do
+for dir in etc/charsets etc/e etc/gnus etc/nxml etc/tutorials etc/refcards etc/schema ; do
     echo "Making links to \`${dir}'"
     (cd ${dir}
        ln `ls -d * | grep -v CVS | grep -v RCS` ../../${tempdir}/${dir}
diff --git a/nt/.arch-inventory b/nt/.arch-inventory
deleted file mode 100644 (file)
index a2db727..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-source ^subdirs\.el$
-
-# arch-tag: 01b87183-9d94-4b6b-93cb-fece25c4eec9
diff --git a/nt/ChangeLog.unicode b/nt/ChangeLog.unicode
new file mode 100644 (file)
index 0000000..f4f5008
--- /dev/null
@@ -0,0 +1,22 @@
+2007-10-21  Jason Rumney  <jasonr@gnu.org>
+
+       * configure.bat (withfont): Set sep1 after modifying usercflags.
+
+2007-06-04  Jason Rumney  <jasonr@gnu.org>
+
+       * configure.bat: Rename --with-font-backend to --enable-font-backend
+       for consistency with other platforms.
+
+2007-05-31  Jason Rumney  <jasonr@gnu.org>
+
+       * configure.bat: Add --with-font-backend option.
+
+;; Local Variables:
+;; coding: iso-2022-7bit
+;; End:
+
+    Copyright (C) 2007 Free Software Foundation, Inc.
+  Copying and distribution of this file, with or without modification,
+  are permitted provided the copyright notice and this notice are preserved.
+
+;; arch-tag: d84beebb-6c36-40b7-af5d-4121fb59ea1e
index ef0a746949bac5e8a1fada9c2e7cdde6eac25224..bc3daa6e9b0128ecad464d3492ec4db8ad40097e 100755 (executable)
@@ -108,6 +108,7 @@ if "%1" == "--without-jpeg" goto withoutjpeg
 if "%1" == "--without-gif" goto withoutgif\r
 if "%1" == "--without-tiff" goto withouttiff\r
 if "%1" == "--without-xpm" goto withoutxpm\r
+if "%1" == "--enable-font-backend" goto withfont\r
 if "%1" == "" goto checkutils\r
 :usage\r
 echo Usage: configure [options]\r
@@ -125,6 +126,7 @@ echo.   --without-jpeg          do not use jpeg-6b
 echo.   --without-gif           do not use giflib or libungif\r
 echo.   --without-tiff          do not use libtiff\r
 echo.   --without-xpm           do not use libXpm\r
+echo.   --enable-font-backend   build with font backend support\r
 goto end\r
 rem ----------------------------------------------------------------------\r
 :setprefix\r
@@ -211,6 +213,13 @@ set HAVE_XPM=
 shift\r
 goto again\r
 \r
+:withfont\r
+set usercflags=%usercflags%%sep1%-DUSE_FONT_BACKEND\r
+set sep1= %nothing%\r
+set usefontbackend=Y\r
+shift\r
+goto again\r
+\r
 rem ----------------------------------------------------------------------\r
 rem    Check that necessary utilities (cp and rm) are present.\r
 :checkutils\r
@@ -481,6 +490,7 @@ for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y
 if (%docflags%)==(Y) echo USER_CFLAGS=%usercflags%>>config.settings\r
 for %%v in (%userldflags%) do if not (%%v)==() set doldflags=Y\r
 if (%doldflags%)==(Y) echo USER_LDFLAGS=%userldflags%>>config.settings\r
+if (%usefontbackend%) == (Y) echo USE_FONTBACKEND=1 >>config.settings\r
 echo # End of settings from configure.bat>>config.settings\r
 echo. >>config.settings\r
 \r
index ad7b666f18803b46ccff9fefd943bec094767c45..2c3750bd8de7a96ea4a62c4782d86a70c849d37f 100644 (file)
@@ -754,7 +754,7 @@ define xchartable
   print (struct Lisp_Char_Table *) $ptr
   printf "Purpose: "
   xprintsym $->purpose
-  printf "  %d extra slots", ($->size & 0x1ff) - 388
+  printf "  %d extra slots", ($->size & 0x1ff) - 68
   echo \n
 end
 document xchartable
@@ -992,6 +992,29 @@ document xprintsym
   Print argument as a symbol.
 end
 
+define xcoding
+  set $tmp = (struct Lisp_Hash_Table *) ((Vcoding_system_hash_table & $valmask) | gdb_data_seg_bits)
+  set $tmp = (struct Lisp_Vector *) (($tmp->key_and_value & $valmask) | gdb_data_seg_bits)
+  set $name = $tmp->contents[$arg0 * 2]
+  print $name
+  pr
+  print $tmp->contents[$arg0 * 2 + 1]
+  pr
+end
+document xcoding
+  Print the name and attributes of coding system that has ID (argument).
+end
+
+define xcharset
+  set $tmp = (struct Lisp_Hash_Table *) ((Vcharset_hash_table & $valmask) | gdb_data_seg_bits)
+  set $tmp = (struct Lisp_Vector *) (($tmp->key_and_value & $valmask) | gdb_data_seg_bits)
+  p $tmp->contents[$arg0->hash_index * 2]
+  pr
+end
+document xcharset
+  Print the name of charset that has ID (argument).
+end
+
 define xbacktrace
   set $bt = backtrace_list
   while $bt
diff --git a/src/ChangeLog.unicode b/src/ChangeLog.unicode
new file mode 100644 (file)
index 0000000..2577db7
--- /dev/null
@@ -0,0 +1,5271 @@
+2007-12-27  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * ftfont.c (ftfont_drive_otf): Fix setting of FROM and TO slots of
+       glyphs.
+
+       * font.h (struct font_driver): Docstring of member `shape' is
+       improved.
+
+2007-12-25  Kenichi Handa  <handa@m17n.org>
+
+       * composite.c (syms_of_composite): Fix docstring of
+       auto-composition-function.
+
+       * font.h (LGLYPH_SIZE): New macro.
+
+       * font.c (Ffont_fill_gstring): Stop filling when a character not
+       supported by the font is found.
+       (Ffont_shape_text): When a shape callback function returns nil,
+       try at most two more times with larger gstring.
+       (Ffont_at): Fix getting of w.  Call font_at with correct 5th
+       argument.
+
+       * xdisp.c (handle_auto_composed_prop): Change the argument to
+       auto-composition-function.
+
+       * ftfont.c (ftfont_encode_char): Use the macro FONT_INVALID_CODE.
+       (ftfont_shape_by_flt): If an element of lgstring is nil, make a
+       Lispy glyph and store it in the lgstring.
+
+       * xfont.c (xfont_encode_char): Use the macro FONT_INVALID_CODE.
+
+       * xftfont.c (xftfont_encode_char): Use the macro FONT_INVALID_CODE.
+
+2007-12-21  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * font.c (Ffont_shape_text): Avoid unnecessary composition.
+
+       * fontset.c (Vfont_encoding_charset_alist): New variable.
+       (syms_of_fontset): DEFVAR it.
+       (reorder_font_vector): Optimize for the case of no need of
+       reordring.
+       (fontset_find_font): Likewise.
+       (face_for_char): Map the charset property by
+       Vfont_encoding_charset_alist.
+
+2007-12-20  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (logfonts_match): Don't check adstyle here.
+       (font_matches_spec): Check here against physical font instead.
+       (add_font_entity_to_list): Avoid some substitutions.
+
+       * font.c (font_parse_fcname): Default weight and slant to normal.
+       (font_score): Prefer normal fonts if weight or slant unspecified.
+       (font_score) [WINDOWSNT]: Scale weight difference down to closer
+       match freetype scores.
+
+2007-12-19  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (w32font_text_extents): Don't use the frame stored in the
+       font, as it may have been deleted.
+       (w32_enumfont_pattern_entity): Map generic family to adstyle using
+       most common hyphenless variation.
+       (logfonts_match): Check generic family.
+       (font_matches_spec): Don't check generic family here.
+       (fill_in_logfont): Set generic family based on adstyle.
+
+       * w32font.h (w32font_get_cache): Update declaration.
+
+2007-12-18  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * ftfont.c (ftfont_get_cache): Adjust the argument type.
+
+       * frame.c (x_set_font_backend): Don't call Fclear_font_cache.  If
+       none of the new drivers are available, call font_update_drviers
+       with the old drivers.
+
+       * w32font.c (w32font_get_cache): Adjust the argument type.
+
+       * xfont.c (xfont_get_cache): Adjust the argument type.
+
+       * font.h (struct font_driver): Change argument type of get_cache.
+
+       * xftfont.c (xftfont_start_for_frame): Delete prototype.
+
+       * font.c (Ffont_get): Fix arguments to Fassoc.
+       (font_prepare_cache, font_finish_cache, font_get_cache): New
+       functions.
+       (font_clear_cache): New function.
+       (font_list_entities): Use font_get_cache.
+       (font_matching_entity): Likewise.
+       (font_update_drivers): Call font_clear_cache when finishing a
+       driver.
+
+       * fontset.c (fontset_find_font): Fix previous change.
+
+2007-12-14  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * xterm.c (x_check_font) [USE_FONT_BACKEND]: Don't access
+       dpyinfo->font_table.
+       (x_delete_display) [USE_FONT_BACKEND]: Likewise.
+       (x_delete_terminal) [USE_FONT_BACKEND]: Likewise
+
+       * font.c (font_at): Handle the case that the arg C is negative.
+       Handle the unibyte case.
+       (Ffont_at): Call font_at with the arg C -1.
+
+       * xdisp.c (handle_auto_composed_prop): Don't get a character at
+       the position here, and call font_at with the arg C -1.  Don't
+       check the range of the existing composition at the point.
+
+2007-12-13  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * fontset.c (fontset_add): New args charset_id and famliy.  Caller
+       changed.
+       (load_font_get_repertory): Assume that font_spec is always a
+       font-spec object.
+       (fontset_find_font): Likewise.
+       (Fset_fontset_font): Always store a font-spec object in a fontset.
+
+       * xdisp.c (handle_auto_composed_prop): Use Fget_text_property
+       instead of get_property_and_range.
+
+2007-12-10  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * xftfont.c (struct xftfont_info): Delete the member ft_face.
+       (xftfont_open): Don't keep locking face.
+       (xftfont_close): Don't unlock face.
+       (xftfont_anchor_point): Lock and unlock face.
+       (xftfont_shape): Likewise.
+
+       * fontset.c (fontset_find_font): Don't prefer a font of
+       supplementary charset.
+
+2007-12-09  Kenichi Handa  <handa@m17n.org>
+
+       * ftfont.c (struct OpenTypeSpec): Members script_tag renamed to
+       script, langsys_tag renamed to langsys, new member script.
+       (OTF_TAG_STR): Terminate by '\0'.
+       (ftfont_get_open_type_spec): If :otf prop is is spec, Limit the
+       listing to the script specified in that property.  Fix arg to
+       OTF_check_features.
+
+2007-12-08  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.h: New file.
+
+       * w32font.c: Include it.
+       (struct w32font_info): Add owning_frame field.  Move to w32font.h.
+       (w32font_open): Set owning_frame.
+       (w32font_text_extents): Use owning_frame.
+       (struct font_callback_data): Add opentype_only field.
+       (add_font_entity_to_list): Use it to filter fonts.
+       Don't check against full name.
+       (w32font_list_internal): New function.
+       (w32font_list): Use it.
+       (w32font_match_internal): New function.
+       (w32font_match): Use it.
+       (w32font_open_internal): New function.
+       (w32font_open): Use it.
+       (w32font_get_cache, w32font_close, w32font_has_char)
+       (w32font_encode_char, w32font_text_extents, w32font_draw):
+       Make non-static.
+
+       * makefile.w32-in (w32font.o): Depend on w32font.h.
+
+2007-12-06  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * charset.c (Fdefine_charset_internal): Record a supplementary
+       charset at the tail of Vcharset_order_list.
+
+       * font.c (Ffont_shape_text): Fix the return value.
+
+       * ftfont.c (OTF_SYM_TAG, OTF_TAG_STR): Fix argument names.
+
+       * xdisp.c (handle_auto_composed_prop): Fix previous change.
+
+2007-12-05  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * ftfont.c (struct OpenTypeSpec): New struct.
+       (OTF_SYM_TAG, OTF_TAG_STR): New macros.
+       (ftfont_get_open_type_spec): New function.
+       (ftfont_list) [HAVE_LIBOTF]: Check otf-spec property.
+
+       * lread.c (read1): Redo the previous change with checking
+       Vpurify_flag.
+
+2007-12-04  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (add_font_entity_to_list): Compare only the beginning
+       of full name.
+
+2007-12-04  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (handle_auto_composed_prop): Simplify the code.  Never
+       return HANDLED_RECOMPUTE_PROPS.
+
+2007-12-03  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (font_gstring_produce): Delete it.
+
+       * composite.h (COMPOSITION_METHOD): Handle
+       COMPOSITION_WITH_GLYPH_STRING.
+
+2007-12-04  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * xfont.c (Qx): Deleted.
+       (syms_of_xfont): Don't initialize Qx.
+
+       * composite.h (enum composition_method): Define
+       COMPOSITION_WITH_GLYPH_STRING unconditionally.
+
+2007-12-03  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * xfaces.c [HAVE_WINDOW_SYSTEM]: Include "font.h" unconditionally.
+       (choose_face_font): Accept new form of font-spec.
+
+       * frame.h (font_driver_list): Declare it unconditionally.
+       (struct frame): Define members font_driver_list and font_data_list
+       unconditionally.
+
+       * fontset.c: Include "font.h" unconditionally.
+       (generate_ascii_font_name): Use font_parse_xlfd and
+       font_unparse_xlfd.
+       (Fset_fontset_font): Accept a font-spec object.
+
+       * font.c (font_unparse_xlfd): If pixel_size is zero, make the
+       PIXEL_SIZE part a wild card.
+
+       * dispextern.h (struct glyph_string): Define members clip and
+       num_clips unconditionally.
+       (struct face): Define members font_info and extra unconditionally.
+
+       * ftfont.c (ftfont_open): Set members maybe_otf and otf of
+       ftfont_info only when HAVE_LIBOTF is defined.
+
+>>>>>>> 1.1.2.202
+2007-12-02  Andreas Schwab  <schwab@suse.de>
+
+       * xdisp.c (back_to_previous_visible_line_start): Fix type of beg
+       and end.
+
+2007-12-01  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (w32font_driver): Add new fields.
+
+2007-12-01  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * config.in: Re-generated.
+
+       * Makefile.in (ALL_CFLAGS): Add @M17N_FLT_CFLAGS@.
+       (FONTSRC, FONTOBJ) [HAVE_WINDOW_SYSTEM]: Set them unconditionally.
+       (LIBES): Add @M17N_FLT_CFLAGS@.
+
+       * composite.c (compose_text): Don't treat the new style
+       composition specially.
+
+       * emacs.c (main): Call syms_of_font unconditionally.
+
+       * font.h (FONT_ENTITY_NOT_LOADABLE)
+       (FONT_ENTITY_SET_NOT_LOADABLE): New macros.
+       (LGSTRING_XXXX, LGLYPH_XXX): Adjusted for the change of lispy
+       gstring.
+       (struct font_driver): New member shape.
+       (font_registry_charsets): Extern. it.
+       (font_find_for_lface): Prototype adjusted.
+       (font_prepare_composition): Likewise.
+       (font_otf_capability, font_drive_otf): Delete their externs.
+
+       * font.c [HAVE_M17N_FLT]: Include <m17n-flt.h>.
+       (font_charset_alist): Moved from xfont.c and renamed.
+       (font_registry_charsets): Likewise.
+       (font_prop_validate_otf): New function.
+       (font_property_table): Register it for QCotf.
+       (DEVICE_DELTA, adjust_anchor, REPLACEMENT_CHARACTER)
+       (font_drive_otf): Deleted.
+       (font_prepare_composition): New arg F.  Adjusted for the change of
+       lispy gstring.
+       (font_find_for_lface): New arg C.
+       (font_load_for_face): Adjusted for the change of
+       font_find_for_lface.
+       (Ffont_make_gstring): Adjusted for the change of lispy gstring.
+       (Ffont_fill_gstring): Likewise.
+       (Ffont_shape_text): New function.
+       (Fopen_font): If the font size is not given, use 12-pixel.
+       (Ffont_at): New arg STRING.
+       (syms_of_font): Initalize font_charset_alist.  Declare
+       Ffont_shape_text as a Lisp function.  Call syms_of_XXfont
+       conditionally.
+
+       * fontset.c (fontset_find_font) [USE_FONT_BACKEND]: Try multiple
+       fonts of the same font-spec.  Change the format of RFONT-DEF.
+       (face_for_char): Adjusted for the change of RFONT-DEF.
+       (make_fontset_for_ascii_face): Likewise.
+       (Finternal_char_font): Likewise.
+       (Fset_fontset_font) [USE_FONT_BACKEND]: Handle new format of
+       font-spec.
+
+       * ftfont.h: New file.
+
+       * ftfont.c: Don't include Freetype headers.  Include "ftfont.h".
+       (struct ftfont_info) [HAVE_LIBOTF]: New members maybe_otf and otf.
+       (ftfont_open) [HAVE_LIBOTF]: Initialize the above members.
+       (ftfont_driver) [HAVE_LIBOTF, HAVE_M17N_FLT]: Don't set
+       font_otf_capability and font_drive_otf, set ftfont_shape.
+       (ftfont_list): Adjusted for the change of :otf property value.
+       (struct MFLTFontFT) [HAVE_LIBOTF, HAVE_M17N_FLT]: New struct.
+       (ftfont_get_glyph_id, ftfont_get_metrics, ftfont_check_otf)
+       (adjust_anchor, ftfont_drive_otf, ftfont_shape_by_flt)
+       (ftfont_shape) [HAVE_LIBOTF, HAVE_M17N_FLT]: New function.s
+       (DEVICE_DELTA) [HAVE_LIBOTF, HAVE_M17N_FLT]: New macro.
+       (otf_gstring, gstring, m17n_flt_initialized): New variables.
+
+       * w32term.c (x_draw_composite_glyph_string_foreground): Adjusted
+       for the change of lispy gstring.
+
+       * xdisp.c (handle_composition_prop): Adjusted for the change of
+       lispy gstring.  Call a function for auto-composition with the
+third arg it->window.
+       (fill_composite_glyph_string): Adjusted for the change of lispy
+       string.
+       (x_produce_glyphs): Adjusted for the change of
+       font_prepare_compositionl.
+
+       * xfaces.c (set_font_frame_param): Adjusted for the change of
+       font_find_for_lface.
+
+       * xfont.c (x_font_charset_alist): Moved to font.c and renamed.
+       (xfont_registry_charsets): Likewise.  Caller changed.
+       (syms_of_xfont): Don't handle x_font_charset_alist.
+
+       * xftfont.c: Include "ftfont.h".
+       (struct xftfont_info) [HAVE_LIBOTF]: New members maybe_otf and
+       otf.
+       (xftfont_open) [HAVE_LIBOTF]: Initialize the above members.
+       (xftfont_close) [HAVE_LIBOTF]: Close otf.
+       (xftfont_shape) [HAVE_LIBOTF, HAVE_M17N_FLT]: New function.
+       (syms_of_xftfont) [HAVE_LIBOTF, HAVE_M17N_FLT]: Set
+       xftfont_driver.shape to xftfont_shape.
+
+       * xterm.c (x_draw_composite_glyph_string_foreground): Adjusted for
+       the change of lispy gstring.
+
+2007-11-29  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * ftxfont.c (ftxfont_end_for_frame): Fix array indexing error.
+
+2007-12-01  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (w32font_draw): Fill background manually.
+
+2007-11-23  Jason Rumney  <jasonr@gnu.org>
+
+       * font.c (Qfontp): Remove unused symbol.
+       (QCantialias): New symbol.
+       (syms_of_font): Define it.
+       (font_property_table): Set a validator for QCantialias.
+
+       * w32font.c (CLEARTYPE_QUALITY, CLEARTYPE_NATURAL_QUALITY): Define
+       if not already.
+       (QCfamily): Share with xfaces.c.
+       (Qstandard, Qsubpixel, Qnatural): New symbols.
+       (syms_of_w32font): Define them. Don't define QCfamily here.
+       (w32_antialias_type, lispy_antialias_type): New functions.
+       (w32_enumfont_pattern_entity): New arg requested_font.
+       Set antialias parameter if non-default was requested.
+       (fill_in_logfont): Fill in lfQuality if :antialias specified.
+
+2007-11-21  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * lread.c (read1): Undo the previous change.
+
+2007-11-21  CHENG Gao  <chenggao@gmail.com>  (tiny change)
+
+       * frame.c (Fdelete_frame): Call font_update_drivers only when
+       USE_FONT_BACKEND is defined..
+
+2007-11-19  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * font.h (struct font_bitmap): New member bits_per_pixel.
+       (struct font_driver): New members start_for_frame and end_for_frame.
+       (struct font_data_list): New struct.
+       (font_put_frame_data, font_get_frame_data): Extern them.
+
+       * frame.h (struct frame): New member font_data_list.
+
+       * font.c (font_update_drivers): Call driver->start_for_frame and
+       driver->end_for_frame at proper timings.
+       (font_put_frame_data, font_get_frame_data): New functions.
+       (Ffont_spec): Add usage in the docstring.
+
+       * frame.c (make_frame): Initialize f->font_data_list to NULL.
+       (Fdelete_frame): Call font_update_drivers.
+
+       * xftfont.c (struct xftface_info): Delete the member xft_draw.
+       (xftfont_prepare_face): Adjusted for the above change.
+       (xftfont_done_face): Likewise.
+       (xftfont_get_xft_draw): New function.
+       (xftfont_draw): Get XftDraw by xftfont_get_xft_draw.
+       (xftfont_end_for_frame): New function.
+       (syms_of_xftfont): Set xftfont_driver.end_for_frame.
+
+       * ftxfont.c (ftxfont_get_gcs): Renamed from ftxfont_create_gcs.
+       Argument changed.  Cache GCs in the per-frame data.
+       (struct ftxfont_frame_data): New struct.
+       (ftxfont_draw_bitmap): New arg gc_fore and flush.
+       (ftxfont_prepare_face, ftxfont_done_face): Delete them.
+       (ftxfont_draw): Get GCs by ftxfont_get_gcs.  Reflect s->clip in
+       GCs.
+       (ftxfont_end_for_frame): New function.
+       (syms_of_ftxfont): Set ftxfont_driver.end_for_frame.
+
+       * ftfont.c (ftfont_get_bitmap): Set bitmap->bits_per_pixel.
+
+2007-11-18  Kenichi Handa  <handa@m17n.org>
+
+       * xselect.c (Vselection_coding_system)
+       (Vnext_selection_coding_system): Delete them.
+       (syms_of_xselect): Don't declare selection-coding-system and
+       next-selection-coding-system.  They are declared in select.el.
+
+2007-11-17  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.h (WM_UNICHAR, UNICODE_NOCHAR): Define if not already.
+
+       * w32fns.c: Include imm.h.
+       (get_composition_string_fn, get_ime_context_fn): New optional
+       system functions.
+       (globals_of_w32fns): Load them from imm32.dll.
+       (ignore_ime_char): New flag.
+       (w32_wnd_proc): Handle WM_UNICHAR, WM_IME_CHAR and
+       WM_IME_ENDCOMPOSITION messages.
+
+       * w32term.c (w32_read_socket) [WM_UNICHAR]: Handle as
+       MULTIBYTE_CHAR_KEYSTROKE_EVENT.
+
+2007-11-14  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * lread.c (READCHAR): Call readchar with the 2nd arg NULL.
+       (READCHAR_REPORT_MULTIBYTE): New macro.
+       (readchar): New 2nd arg MULTIBYTE.
+       (read1): Use READCHAR_REPORT_MULTIBYTE for the first read.  Make
+       symbol's name multibyte according to the multibyteness of the
+       source.
+
+2007-11-12  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * xfaces.c (face_for_overlay_string): Call lookup_face with
+       correct arguments (fix of synching with the trunk).
+
+2007-11-05  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (font_prop_validate_symbol): The argument prop_index is
+       deleted.
+       (font_prop_validate_style, font_prop_validate_non_neg)
+       (font_prop_validate_spacing): Likewise.
+       (font_property_table): Arguments to validater changed.  Callers
+       changed.
+       (font_lispy_object): Deleted.
+       (font_at): Use font_find_object instead fo font_lispy_object.
+
+2007-11-02  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * fileio.c (Fexpand_file_name): Adjust multibyteness of directory
+       and file names.
+
+2007-10-27  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (add_font_name_to_list): Avoid vertical fonts.
+       (font_matches_spec): Remove debug output.
+       (add_font_entity_to_list): Avoid using substituted fonts.
+
+2007-10-21  Jason Rumney  <jasonr@gnu.org>
+
+       * doc.c (Fsnarf_documentation):
+       * Makefile.in (temacs${EXEEXT}, mostlyclean): Undo last change.
+
+2007-10-12  Miles Bader  <miles@gnu.org>
+
+       * src/dispextern.h (struct glyph_row): Only define "clip" field if
+       HAVE_WINDOW_SYSTEM is defined.
+
+2007-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Fix up multi-tty merge.
+
+       * xterm.c (handle_one_xevent): Remove duplicate code and fix up nesting
+       and indentation.
+
+       * xfaces.c (free_realized_face, clear_face_gcs):
+       Include font_done_for_face in the input_blocked section, just in case.
+
+       * xdisp.c (decode_mode_spec): Use terminal-local coding systems.
+       (get_char_face_and_encoding): Undo last change and remove the *other*
+       duplicate definition (i.e. keep the one that's better scoped and that
+       includes code for the font-backend).
+
+       * terminal.c (create_terminal): Default keyboard_coding to
+       `no-conversion' and terminal_coding to `undecided'.
+
+       * lread.c (read1): Use XSETPVECTYPE to set a pseudovector's tag.
+
+       * fontset.c (free_realized_fontsets): Check that the table entry does
+       contain a fontset before trying to compare it to `base'.
+
+       * emacs.c (main): Move syms_of_data, syms_of_fileio, syms_of_alloc,
+       syms_of_charset, and syms_of_coding earlier because init_window_once
+       now needs Vcoding_system_hash_table to be setup.
+
+       * coding.h (default_buffer_file_coding): Remove.
+
+       * coding.c (default_buffer_file_coding): Remove.
+       (Fterminal_coding_system, Fkeyboard_coding_system): Use ->id rather
+       than ->symbol, and use the terminal-local coding system.
+       (syms_of_coding): Don't setup the coding-systems that are not
+       terminal-local.
+       (Fdefine_coding_system_internal): Use XCAR/XCDR.
+
+       * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
+       Use XSETPVECTYPE now that XSETCHAR_TABLE doesn't set the tag anymore.
+
+       * alloc.c (Fmake_char_table, make_sub_char_table): Remove.  They're now
+       in chartab.c and were re-added here by mistake.
+       (Fpurecopy): Use XSETPVECTYPE after copying a COMPILED pseudovector.
+
+       * doc.c (Fsnarf_documentation):
+       * Makefile.in (temacs${EXEEXT}, mostlyclean): Move buildobj.lst from
+       src to etc.
+
+       * ChangeLog.10: Add mistakenly removed entry.
+
+2007-10-12  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * Makefile.in (fringe.o, minibuf.o): Fix dependencies.
+
+2007-10-11  Miles Bader  <miles@gnu.org>
+
+       * xdisp.c (get_char_face_and_encoding): Remove extraneous definition.
+       Add extra args to FACE_FOR_CHAR.
+
+2007-09-20  Kenichi Handa  <handa@m17n.org>
+
+       * keymap.c (where_is_internal_1): If key is a cons, store the copy
+       in sequence.
+
+       * chartab.c (map_sub_char_table): If the range contains just one
+       character, call the function with that character even if the depth
+       is not 3.
+       (map_char_table): Likewise.
+
+2007-09-19  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (w32font_text_extents): Calculate metrics for the
+       whole string.
+
+2007-09-15  Jason Rumney  <jasonr@gnu.org>
+
+       * w32xfns.c (get_next_msg): Consolidate WM_PAINT messages.
+
+2007-09-13  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.c (x_set_glyph_string_clipping): Use
+       get_glyph_string_clip_rects.
+       (x_set_glyph_string_clipping_exactly): Adjusted for the change of
+       struct glyph_string.
+       (x_draw_glyph_string): Likewise.
+
+       * w32font.c (w32font_draw): Do clipping here.
+
+2007-09-13  Kenichi Handa  <handa@m17n.org>
+
+       * xftfont.c (xftfont_draw): Adjusted for the change of struct
+       glyph_string.
+
+       * xterm.c (x_set_glyph_string_clipping): Use
+       get_glyph_string_clip_rects.
+       (x_set_glyph_string_clipping_exactly): Adjusted for the change of
+       struct glyph_string.
+       (x_draw_glyph_string): Likewise.
+
+       * xdisp.c (get_glyph_string_clip_rects): Reflect s->row->clip to
+       the resulting clip(s}.
+       (expose_overlaps): Add arg r.  Callers changed.  Set it ot
+       row->clip temporarily.
+       (expose_window): Redraw rows overlapping the exposed area.
+
+       * dispextern.h (struct glyph_row): New member clip.
+       (struct glyph_string): Delete members clip_x, clip_y, clip_width,
+       clip_height, new member clip, and num_clips.
+
+2007-09-07  Kenichi Handa  <handa@m17n.org>
+
+       * data.c (Fchar_or_string_p): Fix docstring.
+
+2007-08-22  Kenichi Handa  <handa@m17n.org>
+
+       * xftfont.c (xftfont_draw): If s->font_info != s->face->font_info,
+       create a temporal XftDraw object.
+
+2007-07-26  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (Ffontp): Fix docstring.
+
+       * coding.c (detect_coding_iso_2022): Don't treat SI/SO codes as a
+       strong evidence of ISO-2022.
+
+2007-07-23  Kenichi Handa  <handa@m17n.org>
+
+       * abbrev.c (abbrev_check_chars): Use CHAR_TABLE_REF, not
+       SYNTAX_ENTRY_FOLLOW_PARENT.
+
+2007-06-29  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * fns.c (weak_hash_tables): Rename from Vweak_hash_tables and change
+       its type.
+       (make_hash_table, copy_hash_table, sweep_weak_hash_tables, init_fns):
+       Update to the new type of weak_hash_tables and next_weak.
+
+       * lisp.h (struct Lisp_Hash_Table): Change next_weak from Lisp_Object to
+       a plain C pointer to Lisp_Hash_Table.
+
+       * lisp.h (XGCTYPE, GC_HASH_TABLE_P, GC_NILP, GC_NUMBERP, GC_NATNUMP)
+       (GC_INTEGERP, GC_SYMBOLP, GC_MISCP, GC_VECTORLIKEP, GC_STRINGP)
+       (GC_CONSP, GC_FLOATP, GC_VECTORP, GC_OVERLAYP, GC_MARKERP)
+       (GC_INTFWDP, GC_BOOLFWDP, GC_OBJFWDP, GC_BUFFER_OBJFWDP)
+       (GC_BUFFER_LOCAL_VALUEP, GC_SOME_BUFFER_LOCAL_VALUEP)
+       (GC_KBOARD_OBJFWDP, GC_PSEUDOVECTORP, GC_WINDOW_CONFIGURATIONP)
+       (GC_PROCESSP, GC_WINDOWP, GC_SUBRP, GC_COMPILEDP, GC_BUFFERP)
+       (GC_SUB_CHAR_TABLE_P, GC_CHAR_TABLE_P, GC_BOOL_VECTOR_P, GC_FRAMEP)
+       (GC_EQ): Remove since they've been identical to their non-GC_
+       alter-egos ever since the markbit was eradicated.
+
+       * src/alloc.c:
+       * src/buffer.c:
+       * src/buffer.h:
+       * src/data.c:
+       * src/fileio.c:
+       * src/filelock.c:
+       * src/fns.c:
+       * src/frame.h:
+       * src/lisp.h:
+       * src/macterm.c:
+       * src/print.c:
+       * src/process.c:
+       * src/w32fns.c:
+       * src/w32menu.c:
+       * src/w32term.c:
+       * src/xfns.c:
+       * src/xmenu.c:
+       * src/xterm.c: Replace uses of GC_* macros with the non-GC_ versions.
+
+2007-06-25  Kenichi Handa  <handa@m17n.org>
+
+       * chartab.c (map_sub_char_table): Make it work for the top-level
+       char-table.  Fix handling of parent char-table.
+       (map_char_table):  Adjust for the above change.
+
+2007-06-24  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (Qgdi): Rename from Qw32.
+
+2007-06-22  Jason Rumney  <jasonr@gnu.org>
+
+       * w32bdf.c (get_quoted_string): Make function static.
+
+2007-06-20  Kenichi Handa  <handa@m17n.org>
+
+       * xftfont.c (xftfont_open): If one of font's ASCII glyph has
+       bigger ascent and descent than those of the font, use them as
+       font's ascent and descent.
+
+2007-06-18  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.in (${lispsource}international/charprop.el): Move this
+       target within "#ifdef HAVE_UNIDATA" and "#endif".
+
+2007-06-16  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.in (lisp): Add ${lispsource}language/tai-viet.el.
+       (shortlisp): Add ../lisp/language/tai-viet.el.
+
+2007-06-15  Ulrich Mueller  <ulm@gentoo.org>  (tiny change)
+
+       * Makefile.in (${lispsource}international/charprop.el): Depend on
+       temacs${EXEEXT}.
+
+2007-06-13  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (w32font_close): Delete the GDI font object.
+
+       * w32menu.c: Include character.h
+
+       * w32proc.c: Likewise.
+
+       * w32select.c: Likewise.
+
+       * makefile.w32-in (w32proc.o): Depend on character.h
+
+2007-06-11  Jason Rumney  <jasonr@gnu.org>
+
+       * w32fns.c (syms_of_w32fns): Use DEFSYM macro.
+
+       * w32menu.c (syms_of_w32menu): Likewise.
+
+       * w32proc.c (syms_of_ntproc): Likewise.
+
+       * w32select.c (syms_of_w32select): Likewise.
+
+       * w32term.c (syms_of_w32term): Likewise.
+
+2007-06-06  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (w32font_draw): Delete brush after using it.
+
+2007-06-04  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (w32font_open): Don't set font_idx.
+       (w32font_text_extents): Try GetTextExtentPoint32W before defaulting
+       to font settings.
+       (w32font_draw): Fill background explicitly.
+
+2007-06-03  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.c (w32_initialize): Don't call w32font_initialize.
+
+       * w32font.c (w32font_info): Remove subranges.
+       (QCsubranges, Qmodern, Qswiss, Qroman): Remove.
+       (QCfamily, Qmonospace, Qsans_serif, Qmono, Qsans, Qsans__serif)
+       (Qraster, Qoutline, Qlatin, Qgreek, Qcoptic, Qcyrillic, Qarmenian)
+       (Qhebrew, Qarabic, Qsyriac, Qnko, Qthaana, Qdevanagari, Qbengali)
+       (Qgurmukhi, Qgujarati, Qoriya, Qtamil, Qtelugu, Qkannada)
+       (Qmalayalam, Qsinhala, Qthai, Qlao, Qtibetan, Qmyanmar, Qgeorgian)
+       (Qhangul, Qethiopic, Qcherokee, Qcanadian_aboriginal, Qogham)
+       (Qrunic, Qkhmer, Qmongolian, Qsymbol, Qbraille, Qhan)
+       (Qideographic_description, Qcjk_misc, Qkana, Qbopomofo, Qkanbun)
+       (Qyi, Qbyzantine_musical_symbol, Qmusical_symbol, Qmathematical):
+       New symbols.
+       (font_callback_data): New struct.
+       (w32font_list, w32font_match): Use it.
+       (w32font_open): Don't populate subranges.
+       (w32font_has_char): Use script Lisp symbols, not subrange bitmask.
+       (w32font_encode_char): Always return unicode code-point as-is.
+       (w32font_text_extents): Supply a tranformation matrix to
+       GetGlyphOutline. Never look up by glyph index. Avoid looping
+       twice. Use unicode version of GetTexExtentPoint32 instead of
+       glyph index version.
+       (set_fonts_frame): Remove
+       (w32_enumfont_pattern_entity): Add frame parameter, use it to
+       set frame parameter. Use backward compatible fake foundries.
+       Save generic family in extra slot under QCfamily. Make width slot
+       constant. Save QCspacing value. Save list of scripts instead of
+       binary subranges.
+       (w32_generic_family, logfonts_match, font_matches_spec): New functions.
+       (add_font_entity_to_list): Use font_callback_data struct. Filter
+       unwanted fonts.
+       (add_one_font_entity_to_list): Use font_callback_data struct.
+       (w32_registry): Default to iso10646_1;
+       (fill_in_logfont): Use dpi from extra slot. Don't bother with
+       string font registries. Don't fill in font name if it is a generic
+       family name, fill family instead. Use spacing, family and script
+       extra info to fill pitch, family and charset fields.
+       (list_all_matching_fonts): Use font_callback_data struct.
+       (unicode_range_for_char): Remove.
+       (font_supported_scripts): New function.
+       (w32font_initialize): Remove.
+       (syms_of_w32font): Update which symbols are defined.
+
+2007-06-02  Jason Rumney  <jasonr@gnu.org>
+
+       * font.c (font_pixel_size): Reverse assq_no_quit args.
+
+       * w32term.h (FONT_WIDTH): Report max width, not average.
+       (FONT_MAX_WIDTH): Remove.
+       (FONT_AVG_WIDTH): New macro.
+
+       * xfaces.c (Fx_list_fonts) [WINDOWSNT]: Remove Windows only
+       redefinition of FONT_WIDTH.
+
+       * w32term.c (x_font_min_bounds): Use FONT_AVG_WIDTH.
+       (w32_cache_char_metrics): Use FONT_WIDTH.
+
+       * w32fns.c (w32_load_system_font, w32_list_fonts): Use FONT_AVG_WIDTH.
+
+2007-06-01  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (w32font_open): Make lfHeight negative.
+
+       * w32fns.c (x_default_font_parameter): Use new style font name.
+       (Fx_create_frame, x_create_tip_frame): Initialize resx and resy.
+
+2007-05-31  Jason Rumney  <jasonr@gnu.org>
+
+       * w32font.c (QCsubranges): New symbol.
+       (w32font_open, w32font_has_char): Get subranges from subproperty
+       of extra.
+       (w32_enumfont_pattern_entity): Set subranges as subproperty of extra.
+       (syms_of_w32font): Define :subranges symbol.
+
+       * font.c (font_put_extra): Expose externally.
+
+       * font.h (font_put_extra): Moved declaration from font.c.
+
+       * font.c (Ffont_get): Use font driver to determine otf capability.
+       (adjust_anchor): Check if driver defines anchor_point before using.
+
+       * w32font.c (w32font_open): Handle size, height and pixel_size better.
+       (w32font_draw): Use options.
+       (w32_enumfont_pattern_entity): Set size to 0 for scalable fonts.
+       Fix detection of truetype fonts.
+       (registry_to_w32_charset): Handle charsets other than iso8859-1
+       expressed as lisp symbols.
+       (w32_registry): Express charset as lisp symbol.
+       (fill_in_logfont): Reverse pixel and point height logic.
+       Don't set width here. Set quality to default.
+
+       * w32fns.c (w32_load_system_font): Fix detecting FIXED_PITCH fonts.
+       (x_to_w32_font): Fill in lfPitchAndFamily correctly.
+
+       * xterm.c (x_draw_glyph_string_foreground) [USE_FONT_BACKEND]:
+       Remove redundant loop and allocation.
+
+       * makefile.w32-in (font.o, w32font.o): New objects.
+       (fontset.o, xdisp.o, xfaces.o, w32fns.o, w32term.o): Depend on font.h
+       (FONTOBJ): New group of objects conditioned on USE_FONT_BACKEND.
+
+       * xdisp.c (fill_composite_glyph_string): Make the first arg to
+       STORE_XCHARB a valid l-value.
+
+       * w32term.c (w32_native_per_char_metric): Swap width and rbearing
+       calculations for non-Truetype fonts.
+       (x_draw_glyph_string): Sync with xterm.c.
+       (x_draw_glyph_string_foreground) [USE_FONT_BACKEND]: Remove
+       redundant code.
+       (w32_initialize) [USE_FONT_BACKEND]: Call w32font_initialize.
+
+       * w32term.h (w32_output_data) [USE_FONT_BACKEND]: Add fontp member.
+       (FRAME_FONT_OBJECT) [USE_FONT_BACKEND]: New macro from xterm.h.
+
+       * w32fns.c [USE_FONT_BACKEND]: Port font backend changes from xfns.c.
+       (x_to_w32_charset, w32_to_x_charset): Expose externally.
+
+       * w32font.c: New file for w32 font backend.
+
+2007-05-28  Kenichi Handa  <handa@m17n.org>
+
+       * term.c: Don't include "buffer.h" twice.
+
+2007-05-21  Kenichi Handa  <handa@m17n.org>
+
+       * syntax.c (skip_syntaxes): Synch with the trunk.
+
+2007-05-14  Kenichi Handa  <handa@m17n.org>
+
+       * character.c (Funibyte_string): New function.
+       (syms_of_character): Defsubr it.
+
+2007-05-01  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.c [USE_FONT_BACKEND]:
+       (x_get_font_repertory, note_mouse_movement, x_set_mouse_face_gc):
+       (x_set_glyph_string_clipping, x_set_glyph_string_clipping_exactly):
+       (x_draw_glyph_string, x_draw_glyph_string_foreground):
+       (x_draw_composite_glyph_string_foreground, x_new_fontset2):
+       (x_free_frame_resources): Sync with xterm.c.
+
+2007-04-29  Andreas Schwab  <schwab@suse.de>
+
+       * lread.c (read1): Use CHAR_TABLE_STANDARD_SLOTS to validate
+       char-table size.
+
+2007-04-26  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (check_otf_features): Define it regardless of
+       HAVE_LIBOTF.
+
+2007-04-25  Kenichi Handa  <handa@m17n.org>
+
+       * ftfont.c (ftfont_driver): Delete font_otf_gsub and
+       font_otf_gpos, add font_drive_otf.
+
+       * fontset.c (fontset_find_font): Pay attention to font size
+       specified for a font.
+       (reorder_font_vector): Check contents of font_def.
+
+       * font.c (struct otf_list): Delete it.
+       (otf_list): Make it a lisp variable..
+       (otf_open): Use lispy otf_list.
+       (generate_otf_features): Renamed from parse_gsub_gpos_spec.
+       (check_otf_features): New function.
+       (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor): New
+       functinos.
+       (font_drive_otf): New function merging font_otf_gsub and
+       font_otf_gpos.
+       (font_open_for_lface): New arg spec.  Change argument order.
+       (font_load_for_face): Adjusted for the change of
+       font_open_for_lface.
+       (Ffont_drive_otf): New function merging Ffont_otf_gsub and
+       Ffont_otf_gpos.
+       (syms_of_font): Staticpro otf_list.  Delete defsubr of
+       Sfont_otf_gsub and Sfont_otf_gpos.  Defsubr Sfont_drive_otf.
+
+       * xfaces.c (set_font_frame_param): Adjusted for the change of
+       font_open_for_lface.
+
+       * font.h (font_open_for_lface): Adjust prototype.
+       (struct font_driver): Delete members otf_gsub and otf_gpos, add
+       member otf_drive.
+       (font_otf_gsub, font_otf_gpos): Delete externs.
+       (font_drive_otf): Extern it.
+
+2007-04-24  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (font_at): If the window W is not on a window system,
+       return Qnil.
+
+       * coding.c (produce_chars): Don't call insert_from_gap if no
+       characters to produce.
+       (encode_coding): Likewise.
+
+2007-04-17  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (free_realized_fontsets): Avoid unnecessary call of
+       Fclear_face_cache.
+
+       * xfaces.c (face_for_font): Check also face->font==font->font.font.
+
+2007-04-16  Miles Bader  <miles@gnu.org>
+
+       * emacs.c (main): Change default value of `enable_font_backend' to 1.
+       Parse "--disable-font-backend" option.
+       (standard_args): Add "--disable-font-backend" option.
+
+2007-04-13  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (fontset_find_font): New function.
+       (fontset_font): Use fontset_find_font.
+       (make_fontset_for_ascii_face): Don't set face ID in rfont_def.
+       Register the specified font for all Latin characters.
+       (new_fontset_from_font): Register the specified font for all Latin
+       characters.
+       (dump_fontset): For a realized fontset, include the base fontset
+       name in the returned vector.
+
+2007-04-11  Kenichi Handa  <handa@m17n.org>
+
+       * character.h (CHAR_STRING): Cast C to unsigned on calling
+       char_string.
+
+       * character.c (char_string): Type of arg C changed to unsigned.
+       Signal an error if C is an invalid character code.
+
+       * editfns.c (general_insert_function): Use CHARACTERP, not INTEGERP.
+       (Fchar_to_string): Likewise.
+
+2007-03-23  Kenichi Handa  <handa@m17n.org>
+
+       * character.h (MIN_MULTIBYTE_LEADING_CODE)
+       (MAX_MULTIBYTE_LEADING_CODE): New macros.
+
+       * regex.c (analyse_first): Fix for multibyte characters in "case
+       charset:" and "case categoryspec:".
+
+2007-03-04  Andreas Schwab  <schwab@suse.de>
+
+       * Makefile.in (LIBES): Move standard libraries to the end.
+
+2007-02-27  Kenichi Handa  <handa@m17n.org>
+
+       * process.c: Cancel the change done by sync with HEAD.
+
+2007-02-23  Kenichi Handa  <handa@m17n.org>
+
+       * alloc.c (Fgarbage_collect): If nextb->text->inhibit_shrinking is
+       nonzero, don't shrink the buffer nextb.
+
+       * buffer.h (struct buffer_text): New member inhibit_shrinking.
+
+       * coding.c (coding_alloc_by_making_gap): New arg offset.
+       (alloc_destination): Call coding_alloc_by_making_gap with the arg
+       offset.
+       (decode_coding_iso_2022): Update coding->safe_charsets.
+       (decode_coding_gap): Temporarily set
+       current_buffer->text->inhibit_shrinking to 1.
+
+2007-02-20  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (x_draw_composite_glyph_string_foreground): Fix
+       indexing into elements of s->cmp and s->char2b.
+
+2007-02-16  Juanma Barranquero  <lekktu@gmail.com>
+
+       * regex.c (RE_STRING_CHAR_AND_LENGTH) [! emacs]: Add missing arg `len'.
+
+2007-02-16  Kenichi Handa  <handa@m17n.org>
+
+       * regex.c (GET_CHAR_BEFORE_2, GET_CHAR_AFTER): Check the variable
+       target_multibyte instead of multibyte.
+       (re_match_2_internal): Call bcmp_translate with target_multibyte.
+       (bcmp_translate): Change the argument name from multibyte to
+       target_multibyte.
+
+2007-02-15  Kenichi Handa  <handa@m17n.org>
+
+       These changes are to compile a regexp into a pattern that can be
+       used both for multibyte and unibyte targets.
+
+       * Makefile.in (search.o): Depend on charset.h.
+
+       * character.c (multibyte_char_to_unibyte_safe): New function.
+
+       * search.c: Include "charset.h".
+       (compile_pattern_1): Delete argument multibyte.  Don't set
+       cp->buf.target_multibyte here.  Set cp->buf.charset_unibyte.
+       (compile_pattern): Don't compare cp->buf.target_multibyte.
+       Compare cp->buf.charset_unibyte.
+       (compile_pattern): Set cp->buf.target_multibyte.
+
+       * lisp.h (multibyte_char_to_unibyte_safe): Extern it.
+
+       * regex.h (struct re_pattern_buffer): New member charset_unibyte.
+
+       * regex.c (RE_STRING_CHAR, RE_STRING_CHAR_AND_LENGTH): New arg
+       multibyte.  Callers changed.
+       (RE_CHAR_TO_MULTIBYTE, RE_CHAR_TO_UNIBYTE): New macros.
+       (MAKE_CHAR_MULTIBYTE, MAKE_CHAR_UNIBYTE): Deleted.  Callers
+       changed to use RE_CHAR_TO_MULTIBYTE and RE_CHAR_TO_UNIBYTE
+       respectively.
+       (SETUP_ASCII_RANGE, SETUP_UNIBYTE_RANGE): New macros.
+       (SETUP_MULTIBYTE_RANGE): Generate a more compact range_table.
+       (regex_compile): Make the compiled pattern usable both for
+       multibyte and unibyte targets.
+       (analyse_first): Make the fastmap usable both for multibyte and
+       unibyte targets.
+       (TRANSLATE_VIA_MULTIBYTE): Deleted.
+       (re_match_2_internal): Pay attention to the case that the
+       multibyteness of bufp and target may be different.
+
+2007-02-14  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (x_produce_glyphs): When a font is not found, make the
+       empty box occupy at least one column width.
+
+2007-01-30  Miles Bader  <miles@gnu.org>
+
+       * Makefile.in: Remove redundant HAVE_XFT clause.
+
+2006-12-20  Kenichi Handa  <handa@m17n.org>
+
+       * xrdb.c (x_load_resources): Setup the default fontSet X reource.
+
+2006-12-15  Kenichi Handa  <handa@m17n.org>
+
+       * regex.c (regex_compile): Synch with HEAD.
+
+2006-12-12  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (Finternal_char_font): Fix previous change.
+
+2006-12-07  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (Finternal_char_font): Fix for the case of POSITION
+       being nil.
+
+2006-12-06  Kenichi Handa  <handa@m17n.org>
+
+       * xftfont.c (xftfont_open): Call FcConfigSubstitute.
+
+2006-12-05  Kenichi Handa  <handa@m17n.org>
+
+       * xftfont.c (xftfont_open): Don't enable antialias explicitly.
+
+2006-11-30  Kenichi Handa  <handa@m17n.org>
+
+       * search.c (simple_search): Fix previous change.
+
+2006-11-29  Kenichi Handa  <handa@m17n.org>
+
+       * xftfont.c (ftfont_font_format): Extern declaration.
+
+       * frame.c (x_set_font): Fix the second arg to fs_query_fontset.
+
+       * xfont.c (xfont_driver): Initialize ftfont_driver.type by 0.
+       (xfont_list): Don't directly use Lisp_Object as an operand of &&.
+
+       * ftfont.c (ftfont_driver): Initialize ftfont_driver.type by 0.
+       (ftfont_font_format): Fix previous change.
+
+       * font.h (Ffont_xlfd_name): EXFUN it.
+
+       * font.c (font_parse_xlfd): Fix the array size of `f'.
+       (register_font_driver): Use EQ to compare driver->type.
+
+       * xfns.c (xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
+       (create_frame_xic) [USE_FONT_BACKEND]: Call xic_create_xfontset2.
+       (xic_set_xfontset) [USE_FONT_BACKEND]: Likewise.
+
+2006-11-27  Kenichi Handa  <handa@m17n.org>
+
+       * ftfont.c (ftfont_pattern_entity): Check if FC_FONTFORMAT is
+       defined.
+       (ftfont_list_generic_family, ftfont_list, ftfont_font_format):
+       Likewise.
+
+2006-11-24  Kenichi Handa  <handa@m17n.org>
+
+       * xfont.c (xfont_open): Set font->format.
+
+       * xftfont.c (xftfont_open): Set font->format.
+
+       * ftfont.c (ftfont_pattern_entity): Add fontformat in a pattern.
+       (ftfont_list): Include FC_FONTFORMAT in FcObject.
+       (ftfont_open): Set font->format.
+       (ftfont_font_format): New function.
+
+       * font.h (struct font): New memeber format.
+
+       * font.c (Qopentype): New variable.
+       (syms_of_font): Defsym it.
+       (Fquery_font): Change the format of the last element of the return
+       value.
+
+2006-11-22  Kenichi Handa  <handa@m17n.org>
+
+       * search.c (simple_search): Fix sync with HEAD.
+
+2006-11-17  Kenichi Handa  <handa@m17n.org>
+
+       * xfns.c (xic_create_xfontset): Try the default fontset name as a
+       last resort.
+
+2006-11-08  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (detect_coding_charset): Fix detection of multi-byte
+       charset.
+
+2006-11-07  Bob Halley  <halley@play-bow.org>  (tiny change)
+
+       * ccl.c (ccl_driver): If DST is NULL, set ccl->produced to 0.
+
+2006-10-31  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (get_next_display_element): Set it->face_id for the
+       first component of a composition.
+       (x_produce_glyphs): Check if the font is changed or not for
+       composition.
+
+2006-10-31  Kenichi Handa  <handa@m17n.org>
+
+       (get_next_display_element): Set it->face_id for the
+       first component of a composition.
+       (x_produce_glyphs): Check if the font is changed or not for
+       composition.
+
+2006-10-30  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (Qlatin): New variable.
+       (syms_of_fontset): Define it as a lisp symbol.
+       (Fset_fontset_font): If TARGET is `latin', use FONT_SPEC for
+       ASCII.
+
+2006-10-27  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (font_unparse_fcname): Pay attention to the case that
+       some of font property is a null string.
+
+2006-10-26  Kenichi Handa  <handa@m17n.org>
+
+       * term.c: Include "composite.h".
+       (encode_terminal_code): Output all components of composition.
+       Check the size of encode_terminal_src.
+       (produce_glyphs): For compostion, call produce_composite_glyph.
+       (append_composite_glyph, produce_composite_glyph): New functions.
+
+       * xdisp.c (x_produce_glyphs): In handling composition, if a font
+       is not found, get font_info from the current ascii face.
+
+2006-10-23  Kenichi Handa  <handa@m17n.org>
+
+       * fileio.c (Finsert_file_contents): On replacing, temporarily bind
+       buffer-file-name to Qnil before calling insert_from_buffer.
+
+       * font.c (font_unparse_fcname): Pay attention to the case that
+       foundry is a null string.
+
+2006-10-17  Kenichi Handa  <handa@m17n.org>
+
+       * ftfont.c (ftfont_list): Allow registry "unicode-sip".
+
+       * font.c (Qunicode_sip): New variable.
+       (syms_of_font): Declare it as a Lisp symbol.
+
+       * font.h (Qunicode_sip): Extern it.
+
+2006-10-16  Kenichi Handa  <handa@m17n.org>
+
+       * composite.c (get_composition_id): Pay attention to TAB
+       component.
+
+       * xterm.c (x_draw_composite_glyph_string_foreground): Don't draw
+       TAB.  Adjusted for the change of s->char2b which always points to
+       the first elememnt of allocated memory.
+
+       * xftfont.c (xftfont_text_extents): Fix calculation of descent
+       value.
+
+       * xdisp.c (handle_composition_prop): Set it->c to the first
+       non-TAB component.
+       (fill_composite_glyph_string): Argument changed.
+       (BUILD_COMPOSITE_GLYPH_STRING): Adjusted for the above change.
+       (x_produce_glyphs): Fix handling of left/right padding.
+
+2006-10-04  Kenichi Handa  <handa@m17n.org>
+
+       * regex.c (analyse_first): Cancel the change for synching with
+       HEAD.
+
+2006-08-28  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (detect_coding_system): Fix for handling off
+       inhibit_iso_escape_detection.  Fix for the case that no coding
+       system is defined for a specific coding category.
+
+2006-08-21  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (font_matching_entity): Dolete unused local var.
+
+       * xftfont.c (xftfont_open): Call XftDefaultSubstitute before
+       opening a font.
+
+       * fileio.c (Finsert_file_contents): On recovering a file, assume
+       Unix-like eol.
+       (choose_write_coding_system): On auto-saving a file, force
+       Unix-like eol.
+
+       * coding.c (setup_coding_system): Fix setting of
+       coding->common_flags based on eol_type.
+       (coding_inherit_eol_type): If PARENT is not nil, be sure to
+       inherit from it.
+
+2006-08-04  Kenichi Handa  <handa@m17n.org>
+
+       * alloc.c (NSTATICS): Increased to 0x600.
+
+2006-08-01  Kenichi Handa  <handa@m17n.org>
+
+       * ftfont.c (ftfont_driver): Set ftfont_driver.match to
+       ftfont_match.
+       (ftfont_list): Don't check :name property.
+       (ftfont_match): New function.
+       (ftfont_pattern_entity): If the pattern doesn't contain
+       FC_SPACING, don't assuce FC_MONO.
+
+       * font.h (struct font_driver): New member `match'.
+       (font_update_drivers): Prototype adjusted.
+
+       * font.c (font_parse_fcname): Don't change :name property of FONT.
+       (font_parse_name): Likewise.
+       (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE, check_gstring): Define
+       them unconditionally.
+       (font_matching_entity): New function.
+       (font_open_by_name): Try font_matching_entity if exact match is
+       not found.
+       (font_update_drivers): Delete the arg FONT.  Return a list of
+       actually used backends.  Don't free faces, font caches here.
+       Don't store data in frame parameters.  Don't call x_set_font.
+       (Ffont_spec): Store :name property as is.
+       (Ffont_get): Check HAVE_LIBOTF before calling font_otf_capability.
+       (Ffont_otf_gsub): Call font->driver->otf_gsub instead of
+       font_otf_gsub.
+       (Ffont_otf_gpos): Call font->driver->otf_gpos instead of
+       font_otf_gpos.
+       (Ffont_otf_alternates): Check if the driver has otf_gsub function.
+       Call font->driver->otf_gsub instead of font_otf_gsub.
+
+       * frame.c (x_set_font_backend): Do more works that were done in
+       font_update_drivers before.
+
+       * xfont.c (xfont_match): New function.
+       (xfont_driver): Set xfont_driver.match to xfont_match.
+       (xfont_draw): Set font in GC if necessary.
+
+       * ftxfont.c (ftxfont_match): New function.
+       (syms_of_ftxfont): Set ftxfont_driver.match to ftxfont_match.
+
+       * xftfont.c (xftfont_match): New function.
+       (syms_of_xftfont): Set xftfont_driver.match to xftfont_match.
+
+2006-07-28  Kenichi Handa  <handa@m17n.org>
+
+       * font.h (struct font): New member scalable.
+       (struct font_driver): New arg ALTERANTE_SUBST to otf_gsub.
+       (font_otf_gsub): Prototype adjusted.
+
+       * font.c (font_otf_capability): Fix handling of the default
+       langsys.
+       (parse_gsub_gpos_spec): Type changed to void.  New arg nbytes.
+       Check the contents of SPEC.
+       (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE): New macros.
+       (check_gstring): New function.
+       (REPLACEMENT_CHARACTER): New macro.
+       (font_otf_gsub): New arg alternate_subst.  Be sure to set all
+       glyph codes of GSTRING.
+       (font_otf_gpos): Be sure to set all glyph codes of GSTRING.
+       (font_prepare_composition): Set cmp->glyph_len.
+       (font_open_entity): Set font->scalable.
+       (Ffont_get): Handle :otf property.
+       (Ffont_otf_gsub, Ffont_otf_gpos, Ffont_otf_alternates): New
+       functions.
+       (Fquery_font): Use font->font.full_name.
+       (syms_of_font): Defsubr Sfont_otf_gsub, Sfont_otf_gpos, and
+       Sfont_otf_alternates.
+
+       * ftfont.c (ftfont_open): Set font->font.full_name and
+       font->font.name properly.  Fix calculation of font->font.height
+       and font->min_width.
+
+       * ftxfont.c (ftxfont_create_gcs): New function.
+       (ftxfont_draw_bitmap): Fix arg to ftfont_driver.get_bitmap.
+       (ftxfont_draw_backgrond): Fix filling region.
+       (ftxfont_default_fid): New function.
+       (ftxfont_open): Set xfotn->fid to the return value of
+       ftxfont_default_fid.
+       (ftxfont_prepare_face): Use ftxfont_create_gcs to create GCs.
+       (ftxfont_done_face): Free only GCs that are created by
+       ftxfont_create_gcs.
+       (ftxfont_draw): If face->gc != s->gc, create proper GCs.
+
+       * xterm.c (x_set_glyph_string_clipping_exactly) [USE_FONT_BACKEND]:
+       Clip to src->width, etc (not src->clip_XXX).
+
+       * xfns.c (x_create_tip_frame) [USE_FONT_BACKEND]: Handle
+       FontBackend frame parameter.
+
+2006-07-26  Kenichi Handa  <handa@m17n.org>
+
+       * font.h (struct font_driver_list): New member `on'.
+       (Fclear_font_cache): EXFUN it.
+       (font_update_drivers): Extern it.
+
+       * font.c (font_unparse_fcname): Fix typo (swidth->width).
+       (font_list_entities): Check driver_list->on.
+       (register_font_driver): Initalize `on' member to 0.
+       (font_update_drivers): New function.
+       (Fclear_font_cache): Check driver_list->on.
+
+       * frame.h (Qfont_backend): Extern it.
+       (x_set_font_backend): Extern it.
+
+       * frame.c (Qfont_backend): New variable.
+       (frame_parms): New element for font-backend.
+       (x_set_font_backend): New function.
+
+       * xfns.c (Fx_create_frame) [USE_FONT_BACKEND]: Handle
+       FontBackend frame parameter.
+       (x_frame_parm_handlers) [USE_FONT_BACKEND]: New element
+       x_set_font_backend.
+
+       * xfont.c (xfont_list): Don't try listing by :name property if the
+       name is not for XLFD.
+
+2006-07-24  Kenichi Handa  <handa@m17n.org>
+
+       * font.h (LGLYPH_FROM, LGLYPH_TO, LGLYPH_SET_FROM)
+       (LGLYPH_SET_TO): New macros.
+       (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WADJUST): Check if adjustment
+       element of G is vector or not.
+       (font_at): Extern it.
+
+       * font.c: Include window.h.
+       (font_lispy_object): New function.
+       (font_prepare_composition): Check LGLYPH_FORM (g) to detect the
+       end of valid glyph.
+       (font_close_object): Fix getting (struct font *).
+       (font_at): New function.
+       (Ffont_get): If FONT is a font-object, get entity from it.
+       (Ffont_make_gstring): Initialize elements of glyphs with nil.
+       (Ffont_fill_gstring): Use macro LGSTRING_XXX and LGLYPH_XXX.  Fix
+       range check.
+       (Ffont_at): New function.
+       (syms_of_font): Defsubr Sfont_at.
+
+       * xdisp.c (it_props): Move the entry for Qauto_composed to just
+       before the entry for Qcompostion.
+       (handle_auto_composed_prop): Call auto-composition-function with 4
+       args.
+       (handle_composition_prop) [USE_FONT_BACKEND]: Set it->face_id from
+       the font in gstring.
+       (fill_composite_glyph_string) [USE_FONT_BACKEND]: Check
+       LGLYPH_FORM (g) to detect the end of valid glyph.
+       (x_produce_glyphs) [USE_FONT_BACKEND]: Don't update it->face_id if
+       we are composing with gstring.
+
+       * xterm.c (x_draw_composite_glyph_string_foreground) [USE_FONT_BACKEND]:
+       Check if adjustment is vector or not.
+
+       * Makefile.in (font.o): Make it depends on window.h.
+
+2006-07-24  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (x_draw_composite_glyph_string_foreground): Check if
+       adjustment is vector or not.
+
+2006-07-20  Kenichi Handa  <handa@m17n.org>
+
+       * casefiddle.c (casify_object): Sync with HEAD.
+
+2006-07-18  Miles Bader  <miles@gnu.org>
+
+       * character.h (CHECK_CHARACTER): Redefine in terms of CHECK_TYPE.
+
+2006-07-14  Kenichi Handa  <handa@m17n.org>
+
+       * font.h (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WIDTH, LGLYPH_WADJUST)
+       (LGLYPH_SET_WIDTH): Adjusted for the change of LGLYPH format.
+       (LGLYPH_ADJUSTMENT, LGLYPH_SET_ADJUSTMENT): New macros.
+
+       * font.c (font_merge_old_spec): Treat '*' in foundry as a wild
+       card.
+       (DEVICE_DELTA): Fix typo.
+       (font_otf_gpos): Adjusted for the change of LGLYPH format.
+       (font_prepare_composition): Likewise.
+
+       * xterm.c (x_draw_composite_glyph_string_foreground): Adjusted for
+       the change of LGLYPH format.
+
+2006-07-07  Kenichi Handa  <handa@m17n.org>
+
+       * ftfont.c (ftfont_list): Fix typo.
+       (ftfont_build_basic_charsets): Don't include letters with
+       diactrics.
+
+2006-07-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * xfaces.c (realize_non_ascii_face): Set face->extra to NULL.
+
+       * xftfont.c (xftfont_done_face): Call XftDrawDestroy only if
+       xftface_info is non-NULL.
+
+2006-07-07  Kenichi Handa  <handa@m17n.org>
+
+       * ftfont.c (ftfont_list): Fix typo.
+       (ftfont_build_basic_charsets): Don't include letters with
+       diactrics.
+
+2006-07-05  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * ftfont.c (ftfont_list): Move misplaced #endif
+
+2006-07-05  Kenichi Handa  <handa@m17n.org>
+
+       * ftfont.c (ftfont_list): Pay attention to the case that
+       FC_CAPABILITY is not defined.
+
+2006-07-03  Kenichi Handa  <handa@m17n.org>
+
+       * xftfont.c (xftfont_open): Set charset related members to -1.
+
+       * ftfont.c (ftfont_list): Handle QCotf property.  Handling of
+       QCname fixed.
+       (ftfont_open): Set charset related members to -1.
+
+       * fontset.c (Votf_script_alist): New variable.
+       (syms_of_fontset): Initialize it.
+       (fontset_font): Delete unused variable.
+
+       * fontset.h (Votf_script_alist): Extern it.
+
+       * font.c (font_find_for_lface): Code optimized.
+
+       * font.h (font_close_object, font_merge_old_spec): Extern them.
+
+2006-06-28  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (QCscalable, Qc, Qm, Qp, Qd): New variables.
+       (syms_of_font): Initialize them.
+       (font_pixel_size): Allow float value in dpi.
+       (font_prop_validate_type): Deleted.
+       (font_prop_validate_symbol, font_prop_validate_style): Argument
+       changed.  Caller changed.
+       (font_prop_validate_non_neg): Renamed from
+       font_prop_validate_size.
+       (font_prop_validate_extra): Deleted.
+       (font_prop_validate_spacing): New function.
+       (font_property_table): Add elements for all known properties.
+       (get_font_prop_index): Renamed from check_font_prop_name.  New
+       argument FROM.  Caller changed.
+       (font_prop_validate): Validate all known properties.
+       (font_put_extra): Argument force deleted.  Caller changed.
+       (font_expand_wildcards): Make it static.  Fix the way of shrinking
+       the possible range.
+       (font_parse_xlfd): Arguemnt merge deleted.  Fix handling of RESX,
+       RESY, SPACING, and AVGWIDTH.  Don't validate property values here.
+       Caller changed.
+       (font_unparse_xlfd): Handle dpi, spacing, and scalable properties.
+       (font_parse_fcname): Arguemnt merge deleted.  Fix parsing of point
+       size.  Don't validate properties values here.  Caller changed.
+       (font_unparse_fcname): Handle dpi, spacing, and scalable
+       properties.
+       (font_open_by_name): Delete unused variable.
+       (Ffont_spec): Likewise.  Validate property values.
+       (Ffont_match_p): New function.
+
+       * font.h (QCscalable): Extern it.
+       (font_parse_xlfd, font_parse_fcname): Prototype adjusted.
+
+       * ftfont.c (ftfont_list): Handle properties dpi, spacing, and
+       scalable.
+
+       * xfont.c (xfont_query_font): Adjusted for the change of
+       font_parse_xlfd.
+       (xfont_list_pattern): New function.
+       (xfont_list): Use xfont_list_pattern.
+
+       * xftfont.c (xftfont_prepare_face): Cancel previous change.
+       (xftfont_done_face): Likewise.
+
+2006-06-26  Kenichi Handa  <handa@m17n.org>
+
+       * font.h (Flist_fonts): EXFUN it.
+
+2006-06-25  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.c (w32_initialize): Add back smoothing_type and
+       smoothing_enabled definitions.
+
+2006-06-23  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (x_draw_glyph_string) [USE_FONT_BACKEND]: Check
+       s->face->font on determining underline position.
+
+2006-06-21  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (font_parse_xlfd): Fix generating of CHARSET_REGISTRY field.
+       (font_has_char): Accept font-object too.
+       (font_find_for_lface): Try at first with a size specified in face.
+
+       * xftfont.c (xftfont_prepare_face): Make non-ascii face share
+       face->extra with ascii face.
+       (xftfont_done_face): Don't free face->extra of non-ascii face.
+
+2006-06-20  Kenichi Handa  <handa@m17n.org>
+
+       * frame.c (x_set_font) [USE_FONT_BACKEND]: Fix argument to
+       font_open_by_name.
+
+2006-06-19  Kenichi Handa  <handa@m17n.org>
+
+       * font.h (QCspacing, QCdpi): Extern them.
+       (enum font_spacing): New enum.
+       (FONT_PIXEL_SIZE_QUANTUM): New macro.
+
+       * font.c (POINT_TO_PIXEL): Don't divice POINT by 10.
+       (QCspacing, QCdpi): New variables.
+       (syms_of_font): Initialize them.
+       (font_pixel_size): New function.
+       (font_put_extra): New function.
+       (font_parse_xlfd): Fix handling of font size.  Add QCdpi property
+       in FONT_EXTRA.
+       (font_parse_fcname): Handle enumenrated values (e.g. bold).  Fix
+       handling font size.  Add QCname property that contains only
+       unknown properties.
+       (font_score): Change argument.  Caller changed.  Pay attention to
+       FONT_PIXEL_SIZE_QUANTUM.
+       (font_sort_entites): Fix handling of font size.
+       (font_list_entities): Likewise.
+       (font_find_for_lface): Likewise.
+       (font_open_for_lface): Likewise.
+       (font_open_by_name): Likewise.
+       (Ffont_spec): Add QCname property that contains only unknown
+       properties.
+
+       * ftfont.c (ftfont_list): Use assq_no_quit, not Fassq.  Don't
+       include weight in listing pattern, instead check weight of each
+       listed font.  Don't include scalable in pattern.  Pay attention to
+       FONT_PIXEL_SIZE_QUANTUM.
+
+2006-06-19  Kenichi Handa  <handa@m17n.org>
+
+       * lread.c (read_escape): Fix the code synched with HEAD.
+
+       * font.c (font_parse_fcname): Fix parsing of point-size.
+       (font_unparse_fcname): Produce symbolic names for style
+       properties.
+       (font_list_entities): Handle float size correctly.
+       (font_open_by_name): Prefer `normal' property values if the name
+       doesn't specify them.
+
+       * fontset.c (Finternal_char_font): Use font_get_name, not
+       Ffont_xlfd_name.
+
+       * ftfont.c (ftfont_pattern_entity): Use the numeric value 100 for
+       FC_WEIGHT_REGULAR.  Exclude FC_SIZE and FC_PIXEL_SIZE from listing
+       pattern.  Don't force scalable.
+
+       * xftfont.c (xftfont_open): For generating a name, start from
+       96-byte buffer.
+
+2006-06-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * frame.h (x_new_fontset2): Fix prototype.
+
+2006-06-16  Kenichi Handa  <handa@m17n.org>
+
+       * font.h (struct font_driver): Member parse_name deleted.
+       (font_match_p, font_get_spec, font_parse_fcname)
+       (font_unparse_fcname): Extern them.
+       (font_get_name): Prototype adjusted.
+
+       * font.c (XLFD_SMALLNUM_MASK): Delete this macro.
+       (XLFD_LARGENUM_MASK): Delete XLFD_ENCODING_MASK from it.
+       (font_expand_wildcards): Fix handling ENCODING field.  Avoid
+       unnecessary checks for weight, slant, and swidth.
+       (font_parse_fcname): New function.
+       (font_unparse_fcname): New function.
+       (font_parse_name): New function.
+       (font_match_p): New function.
+       (font_get_name): Return value changed to Lisp string.
+       (font_get_spec): New function.
+       (Qunspecified, Qignore_defface): Don't extern them.
+       (font_find_for_lface): Assume that LFACE is fully specified.
+       (font_load_for_face): If lface[LFACE_FONT_INDEX] is an font
+       object, use it for FACE.
+       (font_open_by_name): Call Ffont_spec with QCname prop.  Don't call
+       driver->parse_name.
+       (Ffont_spec): Call font_parse_name, not font_parse_xlfd.
+
+       * fontset.h (new_fontset_from_font) [USE_FONT_BACKEND]: Prototype
+       adjusted.
+
+       * fontset.c (new_fontset_from_font) [USE_FONT_BACKEND]: Argument F
+       deleted.  Don't call Fnew_fontset.  Instead, directly call
+       make_fontset.
+
+       * frame.h (x_new_fontset2) [USE_FONT_BACKEND]: Prototype adjusted.
+
+       * frame.c (x_set_font) [USE_FONT_BACKEND]: Adjusted for the change
+       of x_new_fontset2.
+
+       * ftfont.c (Qmonospace, Qsans_serif, Qserif, Qmono, Qsans)
+       (Qsans__serif): New variables.
+       (ftfont_generic_family_list): New variable.
+       (syms_of_ftfont): Initialize the above variables.
+       (ftfont_pattern_entity): Argument NAME deleted.
+       (ftfont_list_generic_family): New function.
+       (ftfont_parse_name): Delete this function.
+       (ftfont_list): Try generic family only when FcFontList found no
+       font.
+       (ftfont_list_family): Fix args to FcObjectSetBuild.
+
+       * xfaces.c (check_lface_attrs) [USE_FONT_BACKEND]: Accept font
+       object in attrs[LFACE_FONT_INDEX].
+       (set_lface_from_font_name): Cancel all changes for font-backend.
+       (set_lface_from_font_and_fontset) [USE_FONT_BACKEND]: New
+       function.
+       (Finternal_set_lisp_face_attribute) [USE_FONT_BACKEND]: Accept a
+       font object in QCfont attribute.
+       (set_font_frame_param) [USE_FONT_BACKEND]: Likewise.
+       (realize_default_face) [USE_FONT_BACKEND]: Call
+       set_lface_from_font_and_fontset.
+
+       * xfns.c (x_default_font_parameter) [USE_FONT_BACKEND]: Try also
+       "fixed", and signal error here if no suitable font was found.
+
+       * xfont.c (xfont_parse_name): Delete this function.
+
+       * xftfont.c (xftfont_open): Change coding style of error
+       handling.  Generate fontconfig's fontname pattern.
+
+       * xterm.h (struct x_output) [USE_FONT_BACKEND]: New member fontp.
+       (FRAME_FONT_OBJECT) [USE_FONT_BACKEND]: New macro.
+
+       * xterm.c (x_new_fontset2) [USE_FONT_BACKEND]: Change arguments.
+       Both args FONTSET and FONT_OBJECT must be existing ones.
+
+2006-06-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c (mac_set_unicode_keystroke_event): Don't use MAKE_CHAR.
+
+2006-06-14  Kenichi Handa  <handa@m17n.org>
+
+       * xfont.c (xfont_open, xfont_encode_char): Fix typo.
+
+       * font.h (struct font): Fix typo.
+
+       * font.c (enum xlfd_field_index): Rename XLFD_XXX_SIZE_INDEX to
+       XLFD_XXX_INDEX.
+       (enum xlfd_field_mask): New enum.
+       (intern_font_field): Argument changed.  Caller changed.  If digits
+       are followed by non-digits, return a symbol.
+       (font_expand_wildcards): New function.
+       (font_parse_xlfd): Fix wildcard handling.
+       (Ffont_spec): If :name is specified, reflect the info in the other
+       properties.
+
+       * ftfont.c (ftfont_pattern_entity): Fix typo.
+       (ftfont_list): Enforce FC_LANG in PATTERN to cancel the effect of
+       locale.
+
+2006-06-09  Kenichi Handa  <handa@m17n.org>
+
+       * font.h (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Extern them.
+
+       * font.c (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Moved from
+       ftfont.c.
+       (font_unparse_xlfd): Fix argument type declaration.  Append "*" if
+       registry doesn't specify encoding part.
+       (font_find_for_lface): Pay attention to LFACE_FONT_INDEX.
+       (font_open_by_name): At first try parsing the name.
+       (syms_of_font): Declare Qiso8859_1, Qiso10646_1, and Qunicode_bmp
+       as Lisp symbols.
+
+       * fontset.c (reorder_font_vector): Pay attention to the case that
+       the 3rd element of font_def is nil.
+       (fontset_font): For the default fontset, append one more fontset
+       elements for a script-based font specification.  Don't add script
+       attribute on finding a font.
+       (new_fontset_from_font): Unconditionally set FONTSET_ASCII to the
+       font name.
+       (fontset_ascii_font): If a font can't be opened, return nil.
+
+       * ftfont.c (Qiso8859_1, Qiso10646_1, Qunicode_bmp): Moved to
+       font.c.
+       (ftfont_pattern_entity): New function.
+       (ftfont_get_cache): Assume that freetype_font_cache is already
+       initialized.
+       (ftfont_list): Handle the case that a file is specified in font
+       name.  Use ftfont_pattern_entity to generate entities.
+       (ftfont_has_char): Check if the pattern contains FC_CHARSET.
+       (syms_of_ftfont): Initialize freetype_font_cache.
+
+       * xftfont.c (xftfont_open): Make the font name fontconfig's
+       style.  Add BLOCK_INPUT and UNBLOCK_INPUT.
+       (xftfont_close): Free font->font.name if not NULL.
+
+       * xfont.c (xfont_list): If script is specified for a font, return
+       null_vector.
+       (xfont_list_family): Declare argument type.
+
+       * xfaces.c (set_lface_from_font_name): If a font doesn't have a
+       name, set LFACE_FONT (lface) to nil.
+
+       * xterm.c (x_new_fontset2): If an ASCII font couldn't be loaded,
+       return Qnil.
+
+2006-06-08  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.c (w32_initialize): Manually sync 2006-06-05 change from
+       HEAD.
+
+2006-06-08  Kenichi Handa  <handa@m17n.org>
+
+       * emacs.c (main): Check -enable-font-backend arg after the check
+       of -nl.
+       (standard_args): Add "-enable-font-backend".
+
+       * coding.c (Ffind_operation_coding_system): Sync with HEAD.
+
+       * callproc.c (Fcall_process): Sync with HEAD.
+
+       * coding.h (CODING_REQUIRE_ENCODING): Comment sync with HEAD.
+
+2006-06-07  Kenichi Handa  <handa@m17n.org>
+
+       * xftfont.c (xftfont_default_fid): Set fid_known to 1.
+       (struct xftdraw_list, xftdraw_list): Delete them.
+       (register_xftdraw, check_xftdraw): Delete them.
+       (xftfont_prepare_face): Don't call register_xftdraw.
+       (xftfont_done_face): Don't call check_xftdraw.
+       (xftfont_draw): Get backroudn color only when with_background is
+       nonzero.
+
+       * xfont.c (xfont_encode_char): Fix calculation of char2b.
+
+2006-06-06  Kenichi Handa  <handa@m17n.org>
+
+       These changes are for the new font handling codes.
+
+       * Makefile.in (ALL_CFLAGS): Add @FREETYPE_CFLAGS@,
+       @FONTCONFIG_CFLAGS@, and @LIBOTF_CFLAGS@.
+       (LIB_X11_LIB): If HAVE_XFT is defined, set to @XFT_LIBS@.
+       (FONTSRC, FONTOBJ): New variables.
+       (obj): Add $(FONTOBJ).
+       (SOME_MACHINE_OBJECTS): Lib_X11_Lib.
+       (LIBES): Add @FREETYPE_LIBS@, @FONTCONFIG_LIBS@, and
+       @LIBOTF_LIBS@.
+       (font.o, ftfont.o, xfont.o, xftfont.o, ftxfont.o): New targets.
+       (fontset.o, xdisp.o, xfaces.o, xfns.o, xterm.o): Depends on
+       $(FONTSRC).
+
+       * font.h, font.c, xfont.c, ftfont.c, xftfont.c, ftxfont.c: New
+       files.
+
+       * character.h (Vscript_representative_chars): Extern it.
+
+       * character.c (Vscript_representative_chars): New variable.
+       (syms_of_character): Declare it as a Lisp variable.
+
+       * composite.c (get_composition_id) [USE_FONT_BACKEND]: If
+       enable_font_backend is nonzero, accept the composition method
+       COMPOSITION_WITH_GLYPH_STRING.
+
+       * composite.h (enum composition_method) [USE_FONT_BACKEND]: New
+       enumeration COMPOSITION_WITH_GLYPH_STRING.
+
+       * config.in: Re-generated.
+
+       * dispextern.h (struct glyph_string) [USE_FONT_BACKEND]: New
+       members clip_x, clip_y, clip_width, and clip_height.
+       (struct face) [USE_FONT_BACKEND]: New members font_info and extra.
+
+       * emacs.c (main) [USE_FONT_BACKEND]: Handle arg
+       --enable-font-backend.  Call syms_of_font.
+
+       * fns.c (assoc_no_quit): New function.
+
+       * fontset.h (FONT_INFO_FROM_FACE): New macro.
+       (face_for_font, new_fontset_from_font)
+       (fontset_ascii_font) [USE_FONT_BACKEND]: Extern them.
+
+       * fontset.c [USE_FONT_BACKEND]: Include "font.h".
+       (fontset_font, fontset_ascii, face_for_char)
+       (make_fontset_for_ascii_face, Ffont_info)
+       (Finternal_char_font) [USE_FONT_BACKEND]: If enable_font_backend
+       is nonzero, use font-backend mechanism.
+       (find_font_encoding): Make it non-static.
+       (new_fontset_from_font, fontset_ascii_font) [USE_FONT_BACKEND]:
+       New functions.
+
+       * frame.h (struct frame): New members resx and resy.
+       (struct frame) [USE_FONT_BACKEND]: New member font_driver_list.
+       (x_new_fontset2) [USE_FONT_BACKEND]: Extern it.
+
+       * frame.c [USE_FONT_BACKEND]: Include "font.h".
+       (make_frame, x_set_font) [USE_FONT_BACKEND]: Use font-backend
+       mechanism.
+
+       * lisp.h (assoc_no_quit): Extern it.
+
+       * xdisp.c: If USE_FONT_BACKEND is defined, include "font.h".
+       Through out the file, use FONT_INFO_FROM_FACE instead of
+       FONT_INFO_FROM_ID, use get_per_char_metric instead of
+       rif->per_char_metric.
+       (handle_composition_prop) [USE_FONT_BACKEND]: If the composition
+       method is COMPOSITION_WITH_GLYPH_STRING, just set it->c to ' '.
+       (get_glyph_face_and_encoding, fill_composite_glyph_string)
+       (get_char_face_and_encoding, BUILD_COMPOSITE_GLYPH_STRING)
+       (x_produce_glyphs) [USE_FONT_BACKEND]: If enable_font_backend is
+       nonzero, use font-backend mechanism.
+       (get_per_char_metric): New function.
+
+       * xfaces.c [USE_FONT_BACKEND]: Include "font.h".
+       (set_lface_from_font_name)
+       (set_font_frame_param, free_realized_face)
+       (prepare_face_for_display, clear_face_gcs)
+       (Finternal_set_font_selection_order, realize_x_face)
+       [USE_FONT_BACKEND]: If enable_font_backend is nonzero, use
+       font-backend mechanism.
+       (clear_face_cache) [USE_FONT_BACKEND]: Don't call
+       clear_font_table.
+       (load_face_font) [USE_FONT_BACKEND]: Abort.
+       (face_symbolic_value, face_symbolic_weight, face_symbolic_slant)
+       (face_symbolic_swidth, face_for_font) [USE_FONT_BACKEND]: New
+       functions.
+
+       * xfns.c [USE_FONT_BACKEND]: Include "font.h".
+       (x_default_font_parameter) [USE_FONT_BACKEND]: New function.
+       (Fx_create_frame) [USE_FONT_BACKEND]: If enable_font_backend is
+       nonzero, register all available font drivers.  Call
+       x_default_font_parameter for deciding a font.
+       (x_create_tip_frame) [USE_FONT_BACKEND]: Likewise.
+
+       * xterm.c [USE_FONT_BACKEND]: Include "font.h".
+       (x_set_mouse_face_gc, x_set_glyph_string_clipping)
+       (x_set_glyph_string_clipping_exactly)
+       (x_compute_glyph_string_overhangs)
+       (x_draw_glyph_string_foreground)
+       (x_draw_composite_glyph_string_foreground, x_draw_glyph_string)
+       (x_free_frame_resources) [USE_FONT_BACKEND]: If
+       enable_font_backend is nonzero, use font-backend mechanism.
+       (x_new_fontset2) [USE_FONT_BACKEND]: New function.
+
+2006-05-15  Kenichi Handa  <handa@m17n.org>
+
+       * coding.h (system_eol_type): Fix synching with HEAD.
+
+       * coding.c (system_eol_type): Sync with HEAD.
+       (coding_inherit_eol_type): If PARENT is nil, inherit from
+       system_eol_type.
+       (syms_of_coding): Initialize system_eol_type.
+
+       * callproc.c (Fcall_process): Sync with HEAD.
+
+       * process.c (setup_process_coding_systems): Fix synching with
+       HEAD.
+       (read_process_output): Likewise.
+       (Fset_process_coding_system): Inherit system's eol format if
+       necessary.
+
+       * fileio.c (choose_write_coding_system): Fix synching with HEAD.
+
+       * keymap.c (push_key_description): Fix synching with HEAD.
+
+2006-05-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macgui.h (USE_ATSUI): Don't enable on emacs-unicode-2 branch.
+
+2006-04-07  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_eol): Pay attention to buffer relocation in
+       del_range_2.
+       (decode_coding): Call decode_eol before restoring undo_list.
+
+2006-03-20  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (Fdefine_charset_internal): Fix setting of
+       emacs_mule_bytes.
+
+2006-03-14  Kenichi Handa  <handa@m17n.org>
+
+       * keyboard.c (read_char): Check if C is a character or not before
+       looking up Vkeyboard_translate_table.
+
+2006-03-10  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION): Fix
+       condition to terminate the loop.
+
+2006-03-09  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (produce_composition): Compare charbuf[i] instead of
+       args[i] against 0.
+       (Fterminal_coding_system): Use EQ to compare Lisp objects.
+
+2006-03-07  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (DECODE_COMPOSITION_START): If the source is short, set
+       coding->result to CODING_RESULT_INSUFFICIENT_SRC.
+       (decode_coding_gap): Set CODING_MODE_LAST_BLOCK after the call of
+       detect_coding.
+       (emacs_mule_char): Handle old style (Emacs 20) component character
+       of a composition.
+       (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Fix parsing a composition
+       rule.
+       (DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION): Likewise.
+       (decode_coding_emacs_mule): Handle invalid bytes correctly.
+
+2006-03-04  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (encode_coding_ccl): Allocate destination dynamically
+       when necessary.
+
+2006-03-03  Kenichi Handa  <handa@m17n.org>
+
+       * ccl.c (Fccl_execute_on_string): Fix the condition of terminating
+       the loop.  When quitted, show a proper error message.
+
+2006-03-02  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding): Fix previous change.
+
+       * xterm.c (x_set_glyph_string_clipping_exactly): Set
+       src->clip_head and src->clip_tail temporarily instead of src->hl.
+
+       * ccl.c (CCL_WRITE_STRING): Handle a flag bit for multibyte
+       character sequence.
+       (Fccl_execute_on_string): Use ASET, not XSET.
+
+2006-03-01  Kenichi Handa  <handa@m17n.org>
+
+       * search.c (search_buffer): Fix handling of "\\" in a trivial
+       regexp.
+
+2006-02-28  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding): Fix the condition of terminating the
+       decoding loop.
+
+2006-02-27  Kenichi Handa  <handa@m17n.org>
+
+       * data.c (Faset): On setting a character bigger than 255 in a
+       unibyte string, signal an error instead of make the string
+       multibyte.
+
+2006-02-22  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (map_charset_chars): Fix for ascii-compatible charset
+       made by a mapping table.
+
+2006-02-21  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (fill_composite_glyph_string): Check s->face is NULL or
+       not.
+       (BUILD_COMPOSITE_GLYPH_STRING): If C is TAB, set s->face to NULL.
+       (x_produce_glyphs): If CH is TAB, set cmp->offsets properly.
+
+       * xterm.c (x_draw_composite_glyph_string_foreground): Check
+       s->face is NULL or not.
+
+2006-02-20  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (x_set_glyph_string_clipping_exactly): New function.
+       (x_draw_glyph_string): Fix drawing of right_overhang and
+       left_overhang around/on cursor.
+
+       * xdisp.c (draw_glyphs): Fix inclusion of right_overwriting
+       glyphs.
+
+       * term.c (produce_glyphs): Sync to HEAD.
+
+2006-02-15  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (x_produce_glyphs): Handle composition with TAB.
+
+2006-02-05  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c: Cancel incorrect synching with HEAD.
+
+2006-02-03  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (Fdefine_coding_system_internal): Avoid a duplicated
+       element in Vcoding_system_alist.
+       (Fdefine_coding_system_alias): Likewise.
+
+2006-01-19  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (handle_one_xevent): Handle keysyms 0x1000000..0x10000FF.
+
+       * coding.c: Sync to HEAD for handling autoload-coding-system.
+       (Qcoding_system_define_form): New variable.
+       (syms_of_coding): Intern and staticpro it.
+       (Fcoding_system_p): Check Qcoding_system_define_form.
+       (Fcheck_coding_system): Try to autoload the definition of
+       CODING-SYSTEM.
+
+       * coding.h (CODING_SYSTEM_P): If ID is not available, call
+       Fcoding_system_p.
+       (CHECK_CODING_SYSTEM): If ID is not available, call
+       Fcheck_coding_system.
+       (CHECK_CODING_SYSTEM_GET_SPEC): Try also Fcheck_coding_system.
+       (CHECK_CODING_SYSTEM_GET_ID): Likewise.
+
+2006-01-17  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (handle_one_xevent): Delete unnecessary code inserted by
+       sync with HEAD.
+
+       * coding.c (code_conversion_restore): GCPRO arg.
+
+2005-12-28  Kenichi Handa  <handa@m17n.org>
+
+       * character.c (lisp_string_width): Check multibyteness of STRING.
+
+2005-10-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c (mac_encode_char): Call ccl_driver with the last arg
+       Qnil.  Use JIS_TO_SJIS instead of ENCODE_SJIS.
+       (decode_mac_font_name): Use decode_coding_c_string instead of
+       decode_coding.
+       (x_load_font): Initialize fontp->fontset to -1.  Set
+       fontp->encoding_type.
+
+2005-10-17  Kenichi Handa  <handa@m17n.org>
+
+       * search.c (search_buffer): Give up BM search on case-fold-search
+       if one of a target character has a case-equivalence of different
+       byte length even if that target charcter is an ASCII.
+       (simple_search): Fix culculation of byte length of matched text.
+       (boyer_moore): Fix handling of case-equivalent multibyte
+       characters.
+
+2005-10-15  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding): Fix handling of invalid bytes.
+
+2005-10-06  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (handle_one_xevent): Handle keysyms directly mapped to
+       Unicode characters.
+
+2005-09-23  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (encode_coding_object): If a pre-write-conversion
+       function makes a new buffer, kill it.
+
+2005-07-29  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (QCascii_compatible_p): New variable.
+       (syms_of_coding): Initialize it.
+       (ONE_MORE_BYTE): Decrement `src' before calling string_char.
+       (ONE_MORE_BYTE_NO_CHECK): Likewise.
+       (record_conversion_result): Add `default:' case.
+       (coding_charset_list): Delete unused variable `coding_type'.
+       (Fdefine_coding_system_internal): Add `ascii-compatible-p'
+       property in the plist of the coding system.
+       (Fcoding_system_put): Check QCascii_compatible_p.
+
+2005-06-09  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (get_next_display_element): Sync with the change in
+       HEAD (2005-06-08).
+
+2005-06-06  Kenichi Handa  <handa@m17n.org>
+
+       * callproc.c (Fcall_process): Sync with the change in
+       HEAD (2005-06-04).
+
+2005-06-05  Miles Bader  <miles@gnu.org>
+
+       * xfaces.c (Finternal_lisp_face_equal_p): Restore previously
+       removed calculation of frame `f', as it's now used.
+
+2005-05-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c (x_font_name_to_mac_font_name): Sync with trunk
+       for the case that does not require code conversion.
+
+2005-05-11  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.in (shortlisp): Cancel previous change.
+       (RUN_TEMACS): Include "-nl" if HAVE_SHM is defined.
+       (emacs${EXEEXT}): Run $(RUN_TEMACS) unconditionally.
+       (UNIDATA): New variable.
+       (${lispsource}international/charprop.el): Depends on ${UNIDATA}.
+       (bootstrap-emacs${EXEEXT}): Depends on charprop.el.  Run
+       $(RUN_TEMACS) unconditionally.
+
+2005-05-10  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.in (shortlisp): Add ../lisp/international/charprop.el.
+       (temacs${EXEEXT}): Build charprop.el if necessary.
+       (admindir): New variable.
+       ($(lispsource)international/charprop.el): New target.
+
+2005-05-04  Miles Bader  <miles@gnu.org>
+
+       * character.c (chars-in-region): Obsolete function removed.
+       (syms_of_character): Remove its initialization.
+
+2005-04-28  Benjamin Riefenstahl  <b.riefenstahl@turtle-trading.net>
+
+       * w32select.c (validate_coding_system)
+       (setup_windows_coding_system): New functions.
+       (convert_to_handle_as_coded, Fw32_get_clipboard_data): Use
+       setup_windows_coding_system.
+       (setup_config, Fw32_get_clipboard_data): Use
+       validate_coding_system.
+       (Fx_selection_exists): Move call to setup_config to a place
+       were signals are allowed.
+
+       * lisp.h (Fcoding_system_base, Fcoding_system_eol_type)
+       (Fcheck_coding_system): Add declarations.
+
+2005-04-28  Kenichi Handa  <handa@m17n.org>
+
+       * s/ms-w32.h (STDC_HEADERS): Sync with the change in
+       HEAD (2005-04-23).
+
+2005-04-25  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (load_charset_map_from_vector): Fix for the first
+       iteration.
+
+2005-04-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macfns.c (Fx_create_frame, x_create_tip_frame): Pass Lisp
+       string as the second argument for x_new_fontset.
+
+2005-04-18  Kenichi Handa  <handa@m17n.org>
+
+       * fns.c (Fstring_as_multibyte): Fix the change for syncing with
+       CVS head.
+
+2005-04-09  Kenichi Handa  <handa@m17n.org>
+
+       * search.c (search_buffer): Fix the change for syncing with CVS
+       head.
+       (search_buffer): Likewise.
+
+2005-03-31  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (get_next_display_element): Sync with CVS head.
+
+2005-03-29  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding_object): Use safe_call1 instead of call1.
+       (encode_coding_object): Use safe_call instead of call2.
+
+2005-03-14  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (set_default_ascii_font): Fix the change for
+       syncing with CVS head.
+
+2005-01-30  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (Fset_fontset_font): Check family element of a given
+       vector.
+
+       * Makefile.in (lisp): Include charprop.el.
+
+2005-01-17  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macfns.c (Fx_create_frame, x_create_tip_frame): Fix crash.
+       Not sure if it's unnecessary.
+
+2005-01-16  Steven Tamm  <steventamm@mac.com>
+
+       * macfns.c (Fx_create_frame, x_create_tip_frame): ifdef'd out
+       some possibly unnecessary fontset checking code that crashed
+       when creating a new frame
+
+2005-01-17  Kenichi Handa  <handa@m17n.org>
+
+       * xfaces.c (merge_faces): Fix argument to lookup_derived_face and
+       lookup_face.
+
+       * xdisp.c (Fformat_mode_line): Fix argument to lookup_named_face.
+
+       * fringe.c (draw_fringe_bitmap_1): Fix argument to
+       lookup_named_face.
+
+2004-12-25  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (get_next_display_element): Sync to the change in HEAD
+       on 2004-12-21.
+
+2004-12-11  Kenichi Handa  <handa@m17n.org>
+
+       * search.c: Sync to the change in HEAD on 2004-11-19, 20.
+
+       * w32console.c: Sync to the change in HEAD on 2004-12-01.
+
+       * coding.c: Cancel the change done in HEAD on 2004-11-30.
+       (coding_charset_list): New function.
+
+       * coding.h (coding_charset_list): Extern it.
+
+       * term.c: Sync to the change in HEAD on 2004-11-30.
+
+2004-12-09  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (Fset_fontset_font): Call find_font_encoding with
+       concatenation of family and registry.
+
+2004-12-06  Kenichi Handa  <handa@m17n.org>
+
+       * character.h (BYTE8_STRING): Fix typo.
+
+       * editfns.c (Ftranslate_region_internal): Don't convert unibyte
+       string to multibyte (sync to HEAD).
+
+       * casefiddle.c (casify_region): Handle changes in byte-length
+       using replace_range_2 (sync to HEAD).
+
+2004-11-24  Andreas Schwab  <schwab@suse.de>
+
+       * chartab.c (map_char_table): GCPRO table and arg.
+
+2004-10-29  Kenichi Handa  <handa@m17n.org>
+
+       * syntax.c (skip_syntaxes): Return lispy 0 (not nil) if point is
+       already at limit.
+
+2004-10-23  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (fs_load_font): Use fast_string_match_ignore_case
+       instead of fast_c_string_match_ignore_case.
+       (find_font_encoding): Argument changed to Lisp_Object.  Use
+       fast_string_match_ignore_case instead of
+       fast_c_string_match_ignore_case.  Caller changed.
+
+2004-10-15  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (get_next_display_element): In unibyte case, decide to
+       display in octal form by checking a chacter by
+       UNIBYTE_CHAR_HAS_MULTIBYTE_P.
+
+       * charset.c (Fset_unibyte_charset): Setup
+       unibyte_has_multibyte_table.
+
+       * character.c (unibyte_has_multibyte_table): New variable.
+
+       * character.h (unibyte_has_multibyte_table): Extern it.
+       (UNIBYTE_CHAR_HAS_MULTIBYTE_P): New macro.
+
+2004-10-14  Kenichi Handa  <handa@m17n.org>
+
+       * callproc.c (Fcall_process): Fix merging of 2004-10-13 change.
+
+2004-10-13  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (encode_coding_iso_2022): Fix handling of charset
+       annotation.
+
+2004-10-12  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (setup_coding_system): If coding_system is nil, use
+       Qundecided.
+       (Fterminal_coding_system): Return nil if terminal coding system is
+       `undecided'.
+       (syms_of_coding): Define coding-system `undecided' here.  Setup
+       terminal_coding as `undecided'.
+
+2004-10-04  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (message_dolog, set_message_1): Call
+       unibyte_char_to_multibyte with arg type int.
+
+       * fileio.c (Fsubstitute_in_file_name): Fix previous change.
+
+       * lread.c (read1): Fix reading of a char-table.
+
+       * print.c (print_object): Include sub char-table in cicularities
+       detection.
+
+2004-10-01  Kenichi Handa  <handa@m17n.org>
+
+       * keymap.c (where_is_internal_2): Fix for the case that KEY is a
+       cons.  Append the found sequences in car of ARGS instead of
+       prepending.
+
+2004-09-28  Kenichi Handa  <handa@m17n.org>
+
+       * fileio.c (report_file_error): Make a unibyte string from
+       strerror (errorno).
+       (Fsubstitute_in_file_name): Fix the arg to
+       unibyte_char_to_multibyte.  It is evaluated twice.
+
+2004-09-19  Kenichi Handa  <handa@m17n.org>
+
+       * charset.h (CHAR_CHARSET): Shortcut for ASCII case.
+
+2004-09-14  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (detect_coding): Fix previous change.
+
+2004-09-13  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (detect_coding_utf_16): Don't set detect_info->found if
+       BOM is not found.
+       (detect_coding): Optimization for ISO-2022 when no 8-bit data is
+       found.
+       (detect_coding_system): Likewise.
+
+2004-09-01  Jason Rumney  <jasonr@gnu.org>
+
+       * w32fns.c (x_to_w32_font): Update to use new coding struct.
+
+2004-08-17  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (Fdeclare_equiv_charset): Fix handing of CHARS.
+       (Fiso_charset): Likewise.
+
+2004-08-03  Steven Tamm  <steventamm@mac.com>
+
+       * macterm.c (mac_encode_char): Add charset argument and update
+       to use encoding_type.
+       (x_new_font,x_new_fontset): Merge in changes from xterm.c;
+       switch to pure fontset
+       (decode_mac_font_name): Temporarily remove decoding
+       (x_font_name_to_mac_font_name): Temporarily remove encoding
+       (x_load_font): Temporarily remove encoding
+
+2004-06-30  Kenichi Handa  <handa@m17n.org>
+
+       * xfaces.c (Fface_font): If frame is not on a window system,
+       ignore CHARACTER arg.  If HAVE_WINDOW_SYSTEM is not defined, don't
+       refer to face->font.
+       (split_font_name_into_vector, build_font_name_from_vector)
+       (lookup_non_ascii_face, realize_non_ascii_face): Define them only
+       whne HAVE_WINDOW_SYSTEM is defined.
+
+2004-05-29  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (BUILD_GLYPH_STRINGS): Check if s is NULL.
+       (x_produce_glyphs): Fix setting of members of cmp in case
+       cmp->glyph_len is zero,
+
+       * fontset.c (Fset_fontset_font): Docstring fixed.
+       (Ffontset_info): Make it backward compatible.  New arg ALL.
+
+2004-05-11  Kim F. Storm  <storm@cua.dk>
+
+       * process.c (read_process_output): Grow decoding_buf when needed;
+       this could cause a crash in allocate_string and compact_small_strings.
+
+2004-04-29  Kenichi Handa  <handa@m17n.org>
+
+       * fileio.c (WRITE_BUF_SIZE): This macro deleted.
+       (e_write): Fix previous change.
+
+2004-04-28  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (setup_coding_system): Set coding->common_flags
+       correctly for raw-text.
+       (consume_chars): On encoding unibyte text by raw-text, don't check
+       multibyte form.
+       (encode_coding): On encoding by raw-text, never use translation
+       tables.
+
+       * fileio.c (e_write): Short cut for the case of no encoding.
+
+2004-04-20  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (detect_coding): Delete unused variables.
+       (detect_coding_system): Likewise.
+
+2004-04-18  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (encode_coding_utf_8): Fix handling of raw-byte char.
+       (consume_chars): Fix handling of 8-bit bytes in unibyte source.
+
+2004-04-14  Kenichi Handa  <handa@m17n.org>
+
+       Sync all files to HEAD.
+
+2004-04-14  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (Ffind_coding_systems_region_internal): Include
+       raw-text and no-conversion in the result.
+
+       * fontset.h: Sync to HEAD.
+
+       * fontset.c: Sync to HEAD.
+
+2004-04-14  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (find_font_encoding): Return `ascii' for unknown
+       encoding.
+       (load_font_get_repertory): Delete unnecessary check of ENCODING of
+       FONT_DEF.
+       (font_def_arg, add_arg, from_arg, to_arg): New args.
+       (set_fontset_font): Argument changed.
+       (Fset_fontset_font): Fix for the case that TARGET is a script
+       name and charset name.
+       (new_fontset_from_font_name): Fix argument to Fnew_fontset.
+
+2004-04-13  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (fontset_font): Renamed from fontset_face.  Return
+       value changed.
+       (face_suitable_for_char_p): Adjusted for the change of
+       fontset_font.
+       (face_for_char): Likewise.
+       (make_fontset_for_ascii_face): Fix setting of the fontset element
+       for ASCII.
+       (Finternal_char_font): Use fontset_font instead of FACE_FOR_CHAR
+       to get a font name.
+       (Ffontset_info): Adjusted for the change of fontset_font.
+
+       * composite.c: Sync to HEAD.
+
+       * search.c: Sync to HEAD.
+
+       * coding.c: Sync to HEAD.
+       (emacs_mule_char): Check invalid code more regidly.
+
+       * coding.h: Sync to HEAD.
+
+       * charset.c: Sync to HEAD.
+
+       * charset.h: Sync to HEAD.
+
+       * character.h (LEADING_CODE_LATIN_1_MIN)
+       (LEADING_CODE_LATIN_1_MAX): Delete these macros.
+
+2004-04-08  Kenichi Handa  <handa@m17n.org>
+
+       * category.h: Sync to HEAD.
+
+       * category.c: Sync to HEAD.
+
+       * syntax.h: Sync to HEAD.
+
+       * syntax.c: Sync to HEAD.
+
+       * regex.h: Sync to HEAD.
+
+       * regex.c: Sync to HEAD.
+
+2004-04-07  Kenichi Handa  <handa@m17n.org>
+
+       * editfns.c: Sync to HEAD.
+       (check_translation): New function.
+       (Ftranslate_region_internal): Handle M:N mapping.
+
+2004-04-06  Kenichi Handa  <handa@m17n.org>
+
+       * xfaces.c (xlfd_point_size): Set font->numeric[XLFD_PIXEL_SIZE].
+
+2004-03-30  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (DECODE_DESIGNATION): Set chars_96 to -1 instead of
+       goto invalid_code.
+       (decode_coding_iso_2022): Fix handling of invalid designation.
+
+       * fileio.c (Finsert_file_contents): Be sure to call unbind_to
+       after calling code_conversion_save.
+
+2004-03-11  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (handle_auto_composed_prop): Fix Lisp_Object/int mixup.
+
+       * print.c (print_prune_string_charset): Fix Lisp_Object/int mixup.
+
+       * fontset.c: Include "intervals.h".
+       (fontset_face): Fix comparing of Lisp_Objects.
+       (free_face_fontset): Fix Lisp_Object/int mixup.
+       (new_fontset_from_font_name): Likewise.
+
+       * editfns.c (Ftranslate_region_internal): Fix Lisp_Object/int mixup.
+
+       * coding.c: Add many prototypes for static functions.
+       (get_translation_table): Allow max_lookup to be NULL.
+       (decode_coding): Call get_translation_table with max_lookup NULL.
+       (Ffind_coding_systems_region_internal): Likewise.
+       (Funencodable_char_position, Fcheck_coding_systems_region):
+       Likewise.
+
+2004-03-11  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (get_translation_table): Declare it as Lisp_Object.
+       (LOOKUP_TRANSLATION_TABLE): New macro.
+       (produce_chars): Use LOOKUP_TRANSLATION_TABLE instead of
+       CHAR_TABLE_REF.
+       (consume_chars): Likewise.
+
+2004-03-11  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (MAX_ANNOTATION_LENGTH): Adjusted for the change of
+       annotation data format.
+       (ADD_ANNOTATION_DATA, ADD_COMPOSITION_DATA, ADD_CHARSET_DATA):
+       Change arguments FROM and TO to single argument NCHARS.  Caller
+       changed.
+       (decode_coding_utf_8): Pay attention to coding->charbuf_used.
+       (decode_coding_utf_16, decode_coding_emacs_mule)
+       (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
+       (decode_coding_ccl, decode_coding_charset): Likewise.
+       (get_translation): New function.
+       (produce_chars): New arguments translation_table and last_block.
+       Translate characters here.  Return number of carryover chars.
+       Caller changed.
+       (produce_composition): New argument pos.  Caller changed.
+       Adjusted for the change of annotation data format.
+       (produce_charset, produce_annotation): Likewise.
+       (decode_coding, encode_coding): Don't call translate_chars.
+       (consume_chars): New arg translation_table.  Caller changed.
+       (translate_chars): Deleted.
+       (syms_of_coding): Make translation-table's number of extra slots
+       2.
+
+2004-03-09  Kenichi Handa  <handa@m17n.org>
+
+       * search.c (simple_search): Fix setting this_pos_byte in backward
+       search.
+
+       * coding.c (detect_coding_emacs_mule): Fix counting of encoded
+       byte sequence.
+       (detect_coding_ccl): Fix setting of the variable valids.
+
+2004-03-04  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (x_list_fonts): Fix the detection of an auto-scaled font.
+
+       * coding.c (decode_coding_utf_16): Fix handling of surrogate pair.
+
+       * editfns.c (Ftranslate_region_internal): Renamed from
+       Ftranslate_region.  Accept a char-table in TABLE.
+       (syms_of_editfns): Defsubr Stranslate_region_internal.
+
+       * xfaces.c (set_lface_from_font_name): If a font is specified for
+       a frame, generate a fontset from the font.
+       (build_scalable_font_name): If the scalable font is requested for
+       a specific size, don't change that size.
+       (try_font_list): Try a scalable font also in the case that a
+       pattern string is specified,
+
+
+2004-03-03  Kenichi Handa  <handa@m17n.org>
+
+       * xfaces.c (Fface_font): New optional arg CHARACTER.
+
+2004-02-17  Kenichi Handa  <handa@m17n.org>
+
+       * charset.h (CHARSET_OFFSET): New macro.
+
+2004-02-13  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (x_get_font_repertory): Fix for non-Unicode-bmp charset.
+
+       * fontset.c (fontset_face): Handle the case that repertory is a
+       char-table.
+       (find_font_encoding): Return nil for unknown encoding.
+       (Fset_fontset_font): Ignore a font of unknown encoding.
+
+2004-02-09  Kenichi Handa  <handa@m17n.org>
+
+       * keymap.c (describe_vector): Handle default value of a char
+       table.
+
+       * fontset.c (fontset_face): Handle fallback fonts correctly.
+       (Ffontset_info): Return infomation about fallback fonts.
+
+2004-02-06  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (FONTSET_DEFAULT): New macro.
+       (FONTSET_ADD): Handle the case that range is nil.
+       (fontset_add): Likewise.
+       (Fset_fontset_font): Change the 2nd arg name to TARGET, and handle
+       the case that it is nil.
+       (dump_fontset): Call FONTSET_DEFAULT, not FONTSET_FALLBACK.
+       (syms_of_fontset): Set char-table-extra-slots property of fontset
+       to 9.
+
+       * charset.h (CHAR_CHARSET_P): Fix for the case that the method is
+       subset or superset.
+
+2004-01-30  Kenichi Handa  <handa@m17n.org>
+
+       * emacs.c (main): Call init_charset after syms_of_XXX.
+
+       * charset.c (Vcharset_map_directory): Deleted.
+       (Vcharset_map_path): New variable
+       (load_charset_map_from_file): Use Vcharset_map_path instead.
+       (init_charset): Initialize Vcharset_map_path.
+       (syms_of_charset): Delete declaration of "charset-map-directory",
+       add declaration of "charset-map-path".
+
+2004-01-29  Kenichi Handa  <handa@m17n.org>
+
+       * fns.c (string_char_to_byte): Optimize for ASCII only string.
+       (string_byte_to_char): Likewise.
+
+       * fileio.c (Finsert_file_contents): Avoid detecting a code twice.
+
+       * coding.c (detect_coding_iso_2022): Fix handling of SS2 and SS3.
+       (detect_coding): Treat '\0' as normal ASCII byte..
+       (detect_coding_system): Likewise.
+
+2004-01-27  Kenichi Handa  <handa@m17n.org>
+
+       * coding.h (SJIS_TO_JIS2, JIS_TO_SJIS2): New macros.
+
+       * coding.c (QCmnemonic, QCdefalut_char)
+       (QCdecode_translation_table, QCencode_translation_table)
+       (QCpost_read_conversion, QCpre_write_conversion): New variables.
+       (get_translation_table): Return a list of translation tables if
+       necessary.
+       (decode_coding): Call get_translation_table with ENCODEP 0.
+       (char_encodable_p): If translation_table is non-nil, always call
+       translate_char.
+       (Fdefine_coding_system_internal): Accept list of translation
+       tables as :encode-translation-table and :decode-translation-table.
+       (Fcoding_system_put): New function.
+       (syms_of_coding): Declare new symbols.  Defsubr
+       Scoding_system_put.
+       (decode_coding_sjis): Handle 4th charset (typically JISX0212).
+       (encode_coding_sjis): Likewise.
+
+       * charset.c (map_charset_chars): Fix arg to map_charset_chars in
+       when the charset is superset type.
+
+       * character.c (translate_char): Accept list of translation tables.
+
+2004-01-25  Kenichi Handa  <handa@m17n.org>
+
+       * coding.h (enum coding_attr_index): New member
+       coding_attr_trans_tbl.
+       (CODING_ATTR_TRANS_TBL): New macro.
+
+       * coding.c (get_translation_table): New function.
+       (translate_chars): Fix the bug of skipping annotation data.
+       (decode_coding): Utilze get_translation_table.
+       (encode_coding): Likewise.
+       (char_encodable_p): Translate char if necessary.
+       (Funencodable_char_position): Likewise.
+       (Ffind_coding_systems_region_internal): Setup translation table
+       for encode in a coding system attribute vector in advance.
+       (Fcheck_coding_systems_region): Likewise.
+       (Fdefine_coding_system_internal): Allow a symbol as translation
+       table.  For shift-jis type coding system, allow 4th charset.
+
+2004-01-24  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding_sjis): Check the first byte rigidly.
+
+       * xdisp.c (get_next_display_element): Pass -1 as POS to
+       FACE_FOR_CHAR if displaying a C-string.
+
+2004-01-23  Kenichi Handa  <handa@m17n.org>
+
+       * composite.c (get_composition_id): Handle xoff and yoff in a
+       composition rule.
+
+       * composite.h (COMPOSITION_DECODE_RULE): New arg xoff and yoff.
+       (struct composition): New member lbearing and rbearing.
+
+       * xdisp.c (move_it_to): Optimize for the case (op & MOVE_TO_Y).
+       (x_get_glyph_overhangs): Handle a composition glyph.
+       (x_produce_glyphs): Setup lbearing and rbreaing for a composition
+       glyph.
+
+       * xterm.c (x_compute_glyph_string_overhangs): Handle also a
+       composition glyph.
+
+2004-01-18  Kenichi Handa  <handa@m17n.org>
+
+       * print.c: Include charset.h.
+       (Vprint_charset_text_property): New variable.
+       (Qdefault): Extern it.
+       (PRINT_STRING_NON_CHARSET_FOUND)
+       (PRINT_STRING_UNSAFE_CHARSET_FOUND): New macros.
+       (print_check_string_result): New variable.
+       (print_check_string_charset_prop): New function.
+       (print_prune_charset_plist): New variable.
+       (print_prune_string_charset): New function.
+       (print_object): Call print_prune_string_charset if
+       Vprint_charset_text_property is not t.
+       (print_interval): Print nothing if itnerval->plist is nil.
+       (syms_of_print): Declare Vprint_charset_text_property as a lisp
+       variable.  Init and staticpro print_prune_charset_plist.
+
+2004-01-15  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (new_fontset_from_font_name): Use the specified font
+       for all characters in the new fontset.
+
+       * macterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
+       OBJECT args.
+
+       * xdisp.c (x_produce_glyphs): Call FACE_FOR_CHAR with POS and
+       OBJECT args for composition too.
+
+       * w32term.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
+       OBJECT args.
+
+2004-01-13  Kenichi Handa  <handa@m17n.org>
+
+       * dispextern.h (FACE_FOR_CHAR): New args POS and OBJECT.
+
+       * fontset.c (reorder_font_vector): Adjusted for the change of
+       FONT_DEF format.
+       (fontset_face): New arg id.  Caller changed.
+       (face_for_char): New args pos and object.
+       (make_fontset_for_ascii_face): Adjusted for the change of FONT_DEF
+       format.n
+       (fs_query_fontset): Check NAME by Fassoc too.
+       (Fset_fontset_font): Allow non-XLFD font name.
+       (Ffontset_info): Adjusted for the change of FONT_DEF format.
+
+       * fontset.h (face_for_char): Prototype adjusted.
+
+       * xdisp.c (face_before_or_after_it_pos): Call FACE_FOR_CHAR with
+       POS and OBJECT args.
+       (get_next_display_element): Likewise.
+       (append_space): Likewise.
+       (extend_face_to_end_of_line): Likewise.
+       (get_char_face_and_encoding): Likewise.
+       (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
+       (x_produce_glyphs): Likewise.
+
+       * xfaces.c (compute_char_face): Call FACE_FOR_CHAR with
+       POS and OBJECT args.
+
+       * xterm.c (x_set_mouse_face_gc): Call FACE_FOR_CHAR with
+       POS and OBJECT args.
+
+2004-01-03  Jason Rumney  <jasonr@gnu.org>
+
+       * w32select.c (Fw32_set_clipboard_data): Avoid potential realloc
+       of GlobalAlloc'ed memory.
+
+2003-12-29  Kenichi Handa  <handa@m17n.org>
+
+       * ccl.c (Fccl_execute_on_string): Fix the condition of loop.
+
+       * charset.h (charset_table_used): Delete extern.
+
+       * charset.c (charset_table_used): Make it static.
+       (map_charset_chars): Fix args to c_function with.
+
+       * chartab.c (map_sub_char_table_for_charset): Fix args to
+       c_function with.
+
+       * coding.h (enum coding_result_code): Delete
+       CODING_RESULT_INSUFFICIENT_CMP, add CODING_RESULT_INVALID_SRC.
+
+       * coding.c (Qinsufficient_source, Qinconsistent_eol)
+       (Qinvalid_source, Qinterrupted, Qinsufficient_memory): New
+       variables.
+       (Vlast_code_conversion_error): New variables.
+       (syms_of_coding): DEFSYM or DEFVAR_LISP them.
+       (ONE_MORE_BYTE): Record error if any instead of signaling an
+       error.  If non-ASCII multibyte char is found, return the negative
+       value of the code.  All callers changed to check it.
+       (ONE_MORE_BYTE_NO_CHECK): Likewise.
+       (record_conversion_result): New function.  All codes setting
+       coding->result are changed to call this function.
+       (detect_coding_utf_8): Don't use the local variable incomplete.
+       (decode_coding_utf_8): Likewise.
+       (emacs_mule_char): Change the second arg to `const'.
+       (detect_coding_emacs_mule): Don't use the local variable
+       incomplete.
+       (detect_coding_sjis): Likewise.
+       (detect_coding_big5): Likewise.
+       (decode_coding): Fix of flushing out unprocessed data.
+       (make_conversion_work_buffer): Fix making of a work buffer.
+       (decode_coding_object): Return coding->dst_object;
+
+       * fontset.c (set_fontset_font): Fix args.
+
+       * lisp.h (CHARACTERBITS): Define as 22.
+
+       * process.c (send_process): Be sure to set coding->src_multibyte.
+
+       * xdisp.c (handle_auto_composed_prop): Fix setting of limit.
+
+2003-12-02  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (handle_auto_composed_prop): Give limit to
+       Fnext_single_char_property_change.
+
+2003-12-02  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (detect_coding): Fix previous change.
+       (detect_coding_system): Likewise.
+
+2003-12-02  Kenichi Handa  <handa@m17n.org>
+
+       * composite.c (syms_of_composite): Don't make the compostion hash
+       table week.
+
+       * fontset.c (Fset_fontset_font): Fix docstring.
+
+       * lisp.h (detect_coding_system): Adjust prototype.
+
+       * fileio.c (kill_workbuf_unwind): Delete this function.
+       (Finsert_file_contents): Adjust the call of detect_coding_system.
+       Get conversion_buffer by code_conversion_save.  Use the macor
+       CODING_MAY_REQUIRE_DECODING.  After decoding, update
+       coding_system.
+
+       * coding.h (make_conversion_work_buffer): Delete extern.
+       (code_conversion_save): Extern it.
+
+       * coding.c (enum iso_code_class_type): Delete ISO_carriage_return.
+       (CODING_GET_INFO): Delete argument eol_type.  Callers changed.
+       (decode_coding_utf_8): Don't do eol converion.
+       (detect_coding_utf_16): Check coding->src_chars, not
+       coding->src_bytes.  Add heuristics for those that have no
+       signature.
+       (decode_coding_emacs_mule): Don't do eol converion.
+       (decode_coding_iso_2022): Likewise.
+       (decode_coding_sjis): Likewise.
+       (decode_coding_big5): Likewise.
+       (decode_coding_charset): Likewise.
+       (adjust_coding_eol_type): Return a new coding system.
+       (detect_coding): Don't detect eol.  Fix for utf-16 detection.
+       (decode_eol): In case of CRLF->LF conversion, use del_range_2 on
+       each change.
+       (decode_coding): Pay attention to undo_list.  Do eol convesion for
+       all types of coding-systems (if necessary).
+       (Vcode_conversion_work_buf_list): Delete it.
+       (Vcode_conversion_reused_workbuf): Renamed from
+       Vcode_conversion_reused_work_buf.
+       (Vcode_conversion_workbuf_name): New variable.
+       (reused_workbuf_in_use): New variable.
+       (make_conversion_work_buffer): Delete the arg DEPTH.
+       (code_conversion_restore): Argument changed to cons.
+       (code_conversion_save): Delete the argument BUFFER.  Callers
+       changed.
+       (detect_coding_system): New argument src_chars.  Callers changed.
+       Fix for utf-16 detection.
+       (init_coding_once): Don't use ISO_carriage_return.
+       (syms_of_coding): Initialized Vcode_conversion_workbuf_name and
+       reused_workbuf_in_use.
+
+2003-11-24  Kenichi Handa  <handa@m17n.org>
+
+       * keymap.c (store_in_keymap): Pay attention to the case that idx
+       is a cons specifying a character range.
+
+       * coding.c (Fdefine_coding_system_internal): Fix previous change.
+
+2003-11-23  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (handle_auto_composed_prop): Fix the case of returning
+       HANDLED_RECOMPUTE_PROPS.
+
+       * coding.c (Fdefine_coding_system_internal): Fix checking of
+       ascii compatibility.
+
+2003-11-22  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (find_charsets_in_text): Delete unused locale
+       variable.
+       (Fset_charset_priority): Update Vemacs_mule_charset_list too.
+
+       * coding.c (encode_coding_emacs_mule): Emit bytes with MSB.
+       Resync charset_list to Vemacs_mule_charset_list.
+
+       * keymap.c (store_in_keymap): Pay attention to the case that idx
+       is a cons specifying a character range.
+
+2003-11-18  Kenichi Handa  <handa@m17n.org>
+
+       * composite.c (update_compositions): Bind inhibit-read-only, etc
+       to t before calling remove-list-of-text-properties.
+
+       * print.c (print_object): Always print ASCII chars as is.
+
+2003-11-17  Kenichi Handa  <handa@m17n.org>
+
+       * keymap.c (Fdefine_key): Fix handling of Lucid style event type
+       list.
+
+       * fns.c (Fmapconcat): Signal an error if SEQUENCE is a char table.
+       (Fmapcar): Likewise.
+       (Fmapc): Likewise.
+
+2003-11-15  Kenichi Handa  <handa@m17n.org>
+
+       * syntax.c (skip_chars): Be sure to alloca char_ranges when
+       necessary.
+
+2003-11-14  Kenichi Handa  <handa@m17n.org>
+
+       * xfaces.c (set_lface_from_font_name): Fix for the case that
+       FONTNAME is not fontset name.
+
+2003-11-13  Kenichi Handa  <handa@m17n.org>
+
+       * fns.c (base64_encode_1): Fix previous change.
+
+2003-11-08  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (set_fontset_font): New function.
+       (Fset_fontset_font): If a font is specified for a charset, use
+       map_charset_chars to store the font spec in a fontset.
+
+2003-10-29  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (fontset_face): Create a fallback fontset on demand
+       (make_fontset): Don't create a fallback fontset here.
+       (free_face_fontset): Free a fallback fontset (if any) too.
+       (n_auto_fontsets): Delete this variable.
+       (auto_fontset_alist): New variable.
+       (new_fontset_from_font_name): Check auto_fontset_alist.
+       (dump_fontset) [FONTSET_DEBUG]: Fully re-written.
+       (Ffontset_list_all) [FONTSET_DEBUG]: New function.
+       (syms_of_fontset): Initialize and staticpro auto_fontset_alist.
+       Defsubr Sfontset_list_all.
+
+2003-10-24  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (x_list_fonts): Fix excluding of auto-scaled fonts.
+
+2003-10-23  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (Fnew_fontset): Check NAME more rigidly.
+
+2003-10-17  Kenichi Handa  <handa@m17n.org>
+
+       * editfns.c (Fgoto_char): Fix docstring.
+
+2003-10-16  Kenichi Handa  <handa@m17n.org>
+
+       * insdel.c (insert_from_gap): Adjust intervals correctly.
+
+2003-10-12  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.c (GLYPHSET, WCRANGE): Define if system headers don't.
+       (pfnGetFontUnicodeRanges): New dynamically loaded function.
+       (w32_initialize): Try to load it.
+       (x_get_font_repertory): Use it if available.
+       (w32_encode_char): Add shortcut for unicode output.
+
+       * w32fns.c (w32_load_system_font): Default charset to -1.
+       (x_to_w32_charset): Match all fonts for unicode.
+       (w32_to_x_charset): New parameter matching. Don't return partial
+       or wildcard charsets.
+       (w32_to_all_x_charsets): Don't return partial or wildcard charsets.
+       (w32_codepage_for_font): Return CP_UNICODE for unicode.
+       (w32_to_x_font): Match charset to real charset.
+       (enum_font_cb2): Always list unicode versions.
+
+       * makefile.w32-in (temacs): Increase EMHEAP.
+
+2003-10-11  Jason Rumney  <jasonr@gnu.org>
+
+       * w32term.c (w32_encode_char): New charset parameter.
+       font_info.encoding becomes encoding_type.
+       (x_get_font_repertory): New function. Warning: stub only!
+       (x_new_font): Return quickly if font already set.
+       (x_new_fontset): fontsetname parameter is Lisp_Object.
+       Use new fs_query_fontset. Try new_fontset_from_font_name. Use
+       fontset_name for return value.
+
+       * w32term.h: Declare x_get_font_repertory.
+
+       * w32select.c (Fw32_set_clipboard_data): Use string_x_string_p in
+       place of find_charset_in_text. Use encode_coding_object in place
+       of encode_coding.
+       (Fw32_get_clipboard_data): Use decode_coding_c_string in place of
+       decode_coding.
+
+       * w32fns.c (Fx_create_frame, x_create_tip_frame): Use new version
+       of x_new_fontset.
+       (w32_load_system_font): Initialize charset as unicode.
+       font_info.encoding becomes encoding_type.
+       (w32_to_x_font): Use decode_coding_c_string in place of
+       decode_coding.
+       (x_to_w32_font): Use encode_coding_object in place of
+       encode_coding.
+       (syms_of_w32fns): Set get_font_repertory_func.
+
+       * w32console.c: Include character.h. Use terminal_encode_buffer
+       from term.c.
+       (write_glyphs): Use new version of encode_terminal_code. Use
+       encode_coding_object in place of encode_coding.
+
+       * w32bdf.c (w32_load_bdf_font): Clear font_info before filling.
+       encoding becomes encoding_type.
+
+       * term.c (terminal_encode_buffer): Make externally visible.
+
+       * makefile.w32-in: Add character.h dependancies.
+       (character.o, chartab.o): New targets.
+
+2003-10-10  Kenichi Handa  <handa@m17n.org>
+
+       * fileio.c (Finsert_file_contents) [DOS_NT]: Use the macro
+       CODING_ID_EOL_TYPE..
+
+2003-10-07  Andreas Schwab  <schwab@suse.de>
+
+       * coding.c (produce_chars): Revert last change.
+
+2003-10-06  Kenichi Handa  <handa@m17n.org>
+
+       * charset.h (charset_unicode): Extern it.
+
+       * charset.c (string_xstring_p): Check by (C >= 0x100).
+       (find_charsets_in_text): Format of the arc CHARSETS changed.  New
+       arg MULTIBYTE.
+       (Ffind_charset_region, Ffind_charset_string): Adjusted for the
+       change of find_charsets_in_text.
+       (Fsplit_char): Fix doc.  Never return unknown.
+
+       * chartab.c (char_table_translate): Use CHARACTERP, not INETEGERP.
+
+       * coding.c (Fdefine_coding_system_alias): Update
+       Vcoding_system_list.
+
+       * fontset.c (load_font_get_repertory): Pay attention to the case
+       that ENCODING of a font is specified by a char-table.
+
+       * xterm.c (x_get_font_repertory): Handle the case that the
+       encoding of font is other than Unicode.
+
+2003-10-02  Kenichi Handa  <handa@m17n.org>
+
+       * term.c (encode_terminal_code): Don't handle glyph-table.  Check
+       if a character is encodable by the terminal coding system.  If
+       not, produces proper number of `?'s.  Update
+       terminal_encode_buffer and terminal_encode_buf_size if necessary.
+       (produce_glyphs): Check by CHAR_BYTE8_P, not SINGLE_BYTE_CHAR_P.
+
+2003-10-01  Kenichi Handa  <handa@m17n.org>
+
+       * term.c (terminal_encode_buffer, terminal_encode_buf_size): New
+       variables.
+       (encode_terminal_code): Argument changed.  Encode multiple
+       characters at once.  Store the result of encoding in
+       terminal_encode_buffer.
+       (write_glyphs): Adjusted for the change of encode_terminal_code.
+       (insert_glyphs): Likewise.
+       (term_init): Initialize terminal_encode_buffer and
+       terminal_encode_buf_size.
+
+       * coding.c (consume_chars): If coding->src_object is nil, don't
+       check annotation.
+
+2003-09-30  Kenichi Handa  <handa@m17n.org>
+
+       * character.c (char_string): Use ASCII_CHAR_P instead of
+       SINGLE_BYTE_CHAR_P.
+
+2003-09-30  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (handle_auto_composed_prop): Check if the last
+       characters of auto-composed region is newly composed with the
+       following characters.
+       (handle_composition_prop): Fix checking of point being inside
+       composition.
+
+2003-09-26  Kenichi Handa  <handa@m17n.org>
+
+       * fns.c (concat): Don't change multibyteness of the result by
+       concatenating an 8-bit character.
+
+       * data.c (Faset): Check newelt by CHECK_CHARACTER.  Don't change
+       multibyteness of the result when newelt is an 8-bit character.
+
+2003-09-29  Dave Love  <fx@gnu.org>
+
+       * xmenu.c (find_and_call_menu_selection): Make menu_bar_items_used
+       EMACS_INT.
+
+       * xfns.c (DefaultDepthOfScreen, x_encode_text): Remove unused vars.
+
+       * xfaces.c (face_numeric_value): Declare dim size_t.
+       (Finternal_lisp_face_equal_p): Remove unused f.
+
+       * xdisp.c (BUILD_CHAR_GLYPH_STRINGS, display_and_set_cursor)
+       (MATRIX_ROW): Remove unused vars.
+       (draw_glyphs, x_insert_glyphs, fast_find_position)
+       (fast_find_position, fast_find_string_pos): Use EMACS_INT for
+       byte/char counts.
+
+       * regex.c (regex_compile): Remove unused var.
+
+       * minibuf.c (Fminibuffer_complete_word): Remove unused var.
+
+       * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap)
+       (Faccessible_keymaps, where_is_internal): Remove unused vars.
+
+       * keyboard.c (cancel_hourglass_unwind): Return Qnil.
+
+       * frame.c (frame_name_fnn_p): Make len EMACS_INT.
+
+       * fileio.c (Fwrite_region): Remove unused var.
+
+       * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
+       (adjust_frame_glyphs_for_window_redisplay): Remove unused ch_dim.
+
+       * composite.c (Fremove_list_of_text_properties): Declare.
+
+       * coding.c (inhibit_pre_post_conversion): Removed (unused).
+       (alloc_destination, produce_chars): Use EMACS_INT for byte/char
+       counts.
+       (coding_inherit_eol_type): Remove unused attrs.
+       (detect_coding): Cast arg of detect_eol.
+
+       * charset.c (syms_of_charset): Remove unused var p.
+       (find_charsets_in_text, Ffind_charset_region): Use EMACS_INT for
+       byte/char counts.
+
+       * casetab.c (set_case_table): Remove unused var.
+
+       * window.c (Fdisplay_buffer, Fframe_selected_window): Remove
+       unsued vars.
+
+2003-09-26  Dave Love  <fx@gnu.org>
+
+       * xterm.c (x_bitmap_mask): Declare.
+
+2003-09-17  Dave Love  <fx@gnu.org>
+
+       * xterm.c (x_term_init): Fix type error.
+
+       * lisp.h: Add Funibyte_char_to_multibyte.
+
+       * coding.c (Fread_coding_system): Fix arg of XSETSTRING.
+       (Fset_coding_system_priority): Doc fix.
+
+       * alloc.c: Sync with HEAD version.
+
+       * ccl.c (ccl_driver): Fix arg of CHARACTERP.
+
+       * indent.c (check_composition): Make start and end EMACS_INT.
+
+       * character.c (lisp_string_width): Make ignore and end EMACS_INT.
+
+       * xdisp.c (handle_composition_prop, check_point_in_composition):
+       Make buffer positions EMACS_INT.
+
+       * composite.c (find_composition, run_composition_function)
+       (update_compositions, Ffind_composition_internal): Make buffer
+       positions EMACS_INT.
+
+       * composite.h (find_composition, update_compositions): Make
+       position args EMACS_INT.
+
+       * keyboard.c (adjust_point_for_property): Make beg and end
+       EMACS_INT.
+
+       * intervals.c (get_property_and_range):
+       * intervals.h (get_property_and_range): Make start and end EMACS_INT.
+
+       * unexalpha.c: Don't include varargs.h.
+
+2003-09-16  Dave Love  <fx@gnu.org>
+
+       * coding.h (ENCODE_UTF_8): New.
+
+       * Makefile.in (gtkutil.o): Depend on coding.h.
+
+       * coding.c (Fset_coding_system_priority): Doc fix.
+
+2003-09-16  Kenichi Handa  <handa@m17n.org>
+
+       * fileio.c (Finsert_file_contents): Call setup_coding_system in
+       the case of auto saving.
+
+2003-09-10  Andreas Schwab  <schwab@suse.de>
+
+       * chartab.c (map_char_table): Protect `range' from GC.
+       (map_char_table_for_charset): Likewise.
+
+2003-07-09  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding_sjis): Check bytes more rigidly.
+
+2003-06-26  Kenichi Handa  <handa@m17n.org>
+
+       * fileio.c (choose_write_coding_system): Return a decided coding
+       system.
+       (Fwrite_region): Set Vlast_coding_system_used to the return value
+       of choose_write_coding_system.
+
+2003-06-06  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (Fset_charset_priority): Pay attention to duplicated
+       arguments.
+
+       * coding.c (QCcategory): New variable.
+       (syms_of_coding): Defsym it.  Set all elements of
+       Vcoding_category_table and their symbol values.
+       (Fset_coding_system_priority): Doc fix.  Update symbol qvalues of
+       coding-category-XXX, and coding-category-list.
+       (Fdefine_coding_system_internal): Add category in the plist.
+
+2003-06-05  Kenichi Handa  <handa@m17n.org>
+
+       * callproc.c (Fcall_process): Handle carryover correctly.
+
+       * coding.c (decode_coding_iso_2022): Fix handling of invalid
+       bytes.
+       (raw_text_coding_system): Check NILP (coding_system).
+       (coding_inherit_eol_type): Check NILP (coding_system) and
+       NILP (parent).
+       (consume_chars): Fix for the case of raw-text.
+
+       * process.c (read_process_output): Handle carryover correctly.
+
+2003-06-02  Dave Love  <fx@gnu.org>
+
+       * regex.c (re_search_2): Fix last change.
+
+2003-05-30  Kenichi Handa  <handa@m17n.org>
+
+       * regex.c (GET_CHAR_BEFORE_2): Check multibyte, not
+       target_multibyte.  Even in a unibyte case, return a converted
+       multibyte char.
+       (GET_CHAR_AFTER): New macro.
+       (PATFETCH): Translate via multibyte char.
+       (HANDLE_UNIBYTE_RANGE): Delete this macro.
+       (SETUP_MULTIBYTE_RANGE): New macro.
+       (regex_compile): Setup compiled code so that its multibyteness
+       matches that of a target.  Fix the handling of "[X-YZ]" using
+       SETUP_MULTIBYTE_RANGE.
+       (analyse_first) <charset>: For filling fastmap for all multibyte
+       characters, don't check by BASE_LEADING_CODE_P.
+       (re_search_2): Don't check RE_TARGET_MULTIBYTE_P (bufp).  It is
+       the same as RE_MULTIBYTE_P (bufp) now.
+       (mutually_exclusive_p): Check by (! multibyte ||
+       IS_REAL_ASCII (c)).
+       (TARGET_CHAR_AND_LENGTH): Delete this macro.
+       (TRANSLATE_VIA_MULTIBYTE): New macro.
+       (re_match_2_internal): Don't check RE_TARGET_MULTIBYTE_P (bufp).
+       It is the same as RE_MULTIBYTE_P (bufp) now.
+       <exactn>: Translate via multibyte.
+       <anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH.  Don't
+       translate it.
+       <charset, charset_not>: Fetch a character by
+       RE_STRING_CHAR_AND_LENGTH.  Translate via multibyte.
+       <duplicate>: Call bcmp_translate with the last arg `multibyte'.
+       <wordbound, notwordbound, wordbeg, wordend, syntaxspec,
+       notsyntaxspec, categoryspec, notcategoryspec> Fetch a character
+       by GET_CHAR_AFTER.
+       (bcmp_translate):  Likewise.
+
+       * search.c (compile_pattern): Check the member target_multibyte,
+       not the member multibyte of buf.
+
+       * lread.c (read1): While reading a string, set force_singlebyte
+       and force_multibyte correctly.
+
+       * charset.c (Fset_unibyte_charset): Fix setting up of
+       unibyte_to_multibyte_table.
+       (init_charset_once): Likewise.
+
+2003-05-29  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (setup_coding_system): If coding has
+       post-read-conversion or pre-write-conversion, set
+       CODING_REQUIRE_DECODING_MASK and CODING_REQUIRE_ENCODING_MASK
+       respectively.
+       (decode_coding_gap): Run post-read-conversion if any.
+
+       * fileio.c (Finsert_file_contents): Even if we read into a
+       unibyte buffer, check if we must decode the result or not.
+
+2003-05-29  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (make_conversion_work_buffer): Change the work buffer
+       name to the same one as that of Emacs 21.
+
+2003-05-28  Kenichi Handa  <handa@m17n.org>
+
+       * coding.h (make_conversion_work_buffer): Prototype adjusted.
+       (code_conversion_restore): Don't extern it.
+
+       * coding.c (detected_mask): Delete unused variable.
+       (decode_coding_iso_2022): Pay attention to the byte sequence of
+       CTEXT extended segment, and retain those bytes as is.
+       (decode_coding_ccl): Delete unused variable `valids'.
+       (setup_coding_system): Delete unused variable `category'.
+       (consume_chars): Delete unused variable `category'.  Make it work
+       for non-multibyte case.
+       (make_conversion_work_buffer): Argument changed.
+       (saved_coding): Delete unused variable.
+       (code_conversion_restore): Don't check saved_coding->destination.
+       (code_conversion_save): New function.
+       (decode_coding_gap, encode_coding_gap): Call code_conversion_save
+       instead of record_unwind_protect.
+       (decode_coding_object, encode_coding_object): Likewise.  Recover
+       PT.
+       (detect_coding_system): Delete unused variable `mask'.
+       (Fdefine_coding_system_internal): Delete unsed vaiable id;
+
+       * fileio.c (kill_workbuf_unwind): New function.
+       (Finsert_file_contents): On replacing, call
+       make_conversion_work_buffer with correct args, and call
+       record_unwind_protect with the first arg kill_workbuf_unwind.
+
+       * lisp.h (Fgenerate_new_buffer_name): EXFUN it.
+
+2003-05-20  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (BASE_FONTSET_P): Check FONTSET_BASE, not
+       FONTSET_NAME.
+       (fontset_add): Fix for the case that TO is less than TO1.
+       (Ffontset_info): Don't use fallback fontset on checking the
+       default fontset.
+       (dump_fontset): New function for debugging.
+
+       * coding.c (Fdefine_coding_system_internal): Fix for the case that
+       coding_type is Qcharset.
+
+2003-05-07  Kenichi Handa  <handa@m17n.org>
+
+       * chartab.c (map_sub_char_table): New argument DEFAULT_VAL.
+       (map_char_table): Don't inherit the value from the parent on
+       initializing VAL.  Adjusted for the above change.
+
+2003-05-06  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (Qsignature, Qendian): Delete these variables.
+       (syms_of_coding): Don't initialize them.
+       (CATEGORY_MASK_UTF_16_AUTO): New macro.
+       (detect_coding_utf_16): Add CATEGORY_MASK_UTF_16_AUTO in
+       detect_info->found.
+       (decode_coding_utf_16): Don't detect BOM here.
+       (encode_coding_utf_16): Produce BOM if CODING_UTF_16_BOM (coding)
+       is NOT utf_16_without_bom.
+       (setup_coding_system): For a coding system of type utf-16, check
+       if the attribute :endian is Qbig or not (not nil or not), and set
+       CODING_REQUIRE_DETECTION_MASK if BOM detection is required.
+       (detect_coding): If coding type is utf-16 and BOM detection is
+       required, detect it.
+       (Fdefine_coding_system_internal): For a coding system of type
+       utf-16, check if the attribute :endian is Qbig or not (not nil or
+       not).
+
+2003-05-06  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (coding_set_source): Fix for the case that the current
+       buffer is different from coding->src_object.
+       (decode_coding_object): Don't use the conversion work buffer if
+       DST_OBJECT is a buffer.
+
+2003-05-04  Dave Love  <fx@gnu.org>
+
+       * lread.c (read_emacs_mule_char) [len==2]: Index
+       emacs_mule_charset correctly.
+
+2003-02-16  Dave Love  <fx@gnu.org>
+
+       * coding.c (Qbig5, Vbig5_coding_system, CATEGORY_MASK_BIG5)
+       (detect_coding_big5, decode_coding_big5, encode_coding_big5)
+       (Fdecode_big5_char, Fencode_big5_char): Deleted.  (Big5 no longer
+       treated specially.)
+       (setup_coding_system, coding_category, CATEGORY_MASK_ANY)
+       (detected_mask): Remove Big5 bits.
+
+2003-04-09  Kenichi Handa  <handa@m17n.org>
+
+       The following changes are to make the font rescaling facility
+       compatible with Emacs 21.
+
+       * xfaces.c (Vface_font_rescale_alist): Renamed from
+       Vface_resizing_fonts.
+       (struct font_name): Rename member resizing_ratio to rescale_ratio.
+       (font_rescale_ratio): Renamed from font_resizing_ratio.
+       (split_font_name): Set font->rescale_ratio.
+       (better_font_p): Pay attention to font->rescale_ratio.
+       (build_scalable_font_name): Likewise.  Change RESX, and RESY
+       fields.
+       (syms_of_xfaces): Declare Vface_font_rescale_alist as a Lisp
+       variable.
+
+2003-03-28  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (Qutf_16_be_nosig, Qutf_16_be, Qutf_16_le_nosig)
+       (Qutf_16_le): Remove these variables.
+       (syms_of_coding): Don't DEFSYM them.
+       (decode_coding_utf_16): Fix handling of BOM.
+       (encode_coding_utf_16): Fix handling of BOM.
+
+2003-03-14  Kenichi Handa  <handa@m17n.org>
+
+       * fileio.c (Finsert_file_contents): On replacing, before decoding
+       the file into the work buffer, set point of the work buffer to the
+       end.
+
+2003-02-13  Dave Love  <fx@gnu.org>
+
+       * coding.c (Fcheck_coding_systems_region): Fix type errors.
+
+2003-02-04  Dave Love  <fx@gnu.org>
+
+       * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
+       and fix C types.
+
+2003-01-31  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (SKIP_GLYPHS): New macro.
+       (set_cursor_from_row): Pay attention to string display properties.
+
+       * category.c (copy_category_entry): Fix for the case that RANGE
+       is an integer.
+
+       * xterm.c (x_encode_char): Call ccl_driver with the last arg Qnil.
+
+       * w32term.c (w32_encode_char): Call ccl_driver with the last arg
+       Qnil.
+
+2003-01-30  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (Fcharset_id_internal): New function.
+       (syms_of_charset): Defsubr it.
+
+       * coding.c (decode_coding_ccl, encode_coding_ccl): Call ccl_driver
+       with the last arg charset_list acquired from coding.
+       (Fdefine_coding_system_internal): For ccl-based coding system, fix
+       the attribute coding_attr_ccl_valids.
+
+       * coding.h (enum define_coding_ccl_arg_index): Set the first
+       member coding_arg_ccl_decoder to coding_arg_max.
+
+       * ccl.h (ccl_driver): Prototype adjusted.
+
+       * ccl.c (CCL_DECODE_CHAR, CCL_ENCODE_CHAR): New macros.
+       (ccl_driver): New arg CHARSET_LIST.  Use the above macros instead
+       of DECODE_CAHR, ENCODE_CHAR, CHAR_CHARSET.
+       (Fccl_execute): Call ccl_driver with the last arg Qnil.
+       (Fccl_execute_on_string): Likewise.
+
+2003-01-11  Kenichi Handa  <handa@m17n.org>
+
+       * charset.h (ENCODE_CHAR): If the method is SUBSET or SUPERSET,
+       call encode_char.
+
+       * charset.c (encode_char): Fix handling of methods SUBSET and
+       SUPERSET.
+
+       * xterm.c (x_new_fontset): Fix previous change.
+
+2003-01-10  Dave Love  <fx@gnu.org>
+
+       * composite.c (syms_of_composite): Make composition_hash_table
+       weak.
+
+2003-01-10  Kenichi Handa  <handa@m17n.org>
+
+       * dispextern.h (check_face_attributes, generate_ascii_font_name)
+       (font_name_registry): Don't extern them.
+       (split_font_name_into_vector, build_font_name_from_vector): Extern
+       them.
+
+       * fontset.h (Qfontset): Don't extern it.
+       (new_fontset_from_font_name): Extern it.
+
+       * fontset.c: Give 8 extra slots to fontset objects.
+       (Qfontset_info): New variable.
+       (syms_of_fontset): Defsym it.
+       (FONTSET_FALLBACK): New macro.
+       (fontset_face): Try also the default fontset.
+       (make_fontset): Realize a fallback fontset from the default
+       fontset.
+       (generate_ascii_font_name): Moved from xfaces.c.  Rewritten by
+       using split_font_name_into_vector and build_font_name_from_vector.
+       (Fset_fontset_font): Access the elements of font_spec by enum
+       FONT_SPEC_INDEX.  If font_spec is a string, extract the registry
+       name by using split_font_name_into_vector.
+       (Fnew_fontset): If no ASCII font is specified in FONTLIST,
+       generate a proper font name from the fontset name.  Update
+       Vfontset_alias_alist.
+       (n_auto_fontsets): New variable.
+       (new_fontset_from_font_name): New function.
+       (Ffont_info): Store the information about fonts generated from the
+       default fontset in the first extra slot of the returned
+       char-table.
+
+       * xfaces.c (generate_ascii_font_name): Moved to fontset.c.
+       (font_name_registry): Function deleted.
+       (split_font_name_into_vector): New function.
+       (build_font_name_from_vector): New function.
+       (font_list): The argument REGISTRY is now a list of registry
+       names.
+       (choose_face_font): If we are choosing an ASCII font, and ATTRS
+       specifies an explicit font name, return the name as is.  Make a
+       list of registy names.
+
+       * xfns.c (x_set_font, x_create_tip_frame): Adjusted to the change
+       of x_new_fontset.
+       (Fx_create_frame): Don't call x_new_fontset here.  Just use
+       x_list_fonts to check the existence of fonts.
+
+       * xterm.h (x_new_fontset): Prototype adjusted.
+
+       * xterm.c (x_new_fontset): Change the arg FONTSETNAME to Lisp
+       string.  Use new_fontset_from_font_name to create a fontset from a
+       font name.
+
+2003-01-07  Dave Love  <fx@gnu.org>
+
+       * Makefile.in: Fix some dependencies.
+
+       * keymap.c (Fapropos_internal): Don't gcpro apropos_predicate but
+       set it to nil before returning.
+
+       * composite.c (update_compositions): Fix type error.
+
+       * syntax.c (skip_chars, skip_syntaxes): Fix type errors.
+
+2003-01-07  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (x_new_font): Optimize for the case that the font is
+       already set for the frame.
+
+2003-01-06  Kenichi Handa  <handa@m17n.org>
+
+       * chartab.c (char_table_ascii): Check if the char table contents
+       is sub-char-table or not.
+       (char_table_set): Fix argument to char_table_ascii.
+       (char_table_set_range): Likewise.
+
+       * coding.c (CATEGORY_MASK_RAW_TEXT): New macro.
+       (detect_coding_utf_8, detect_coding_utf_16)
+       (detect_coding_emacs_mule, detect_coding_iso_2022)
+       (detect_coding_sjis, detect_coding_big5)
+       (detect_coding_ccl, detect_coding_charset): Change argument MASK
+       to DETECT_INFO.  Update DETECT_INFO and return 1 if the byte
+       sequence is valid in this coding system.  Callers changed.
+       (MAX_ANNOTATION_LENGTH): New macro.
+       (ADD_ANNOTATION_DATA): New macro.
+       (ADD_COMPOSITION_DATA): Argument changed.  Callers changed.  Call
+       ADD_ANNOTATION_DATA.  The format of annotation data changed.
+       (ADD_CHARSET_DATA): New macro.
+       (emacs_mule_char): New argument ID.  Callers changed.
+       (decode_coding_emacs_mule, decode_coding_iso_2022)
+       (decode_coding_sjis, decode_coding_big5, decode_coding_charset):
+       Produce charset annotation data in coding->charbuf.
+       (encode_coding_emacs_mule, encode_coding_iso_2022): Pay attention
+       to charset annotation data in coding->charbuf.
+       (setup_coding_system): Add CODING_ANNOTATE_CHARSET_MASK
+       coding->common_flags if the coding system is iso-2022 based and
+       uses designation.
+       (produce_composition): Adjusted for the new annotation data
+       format.
+       (produce_charset): New function.
+       (produce_annotation): Handle charset annotation.
+       (handle_composition_annotation, handle_charset_annotation): New
+       functions.
+       (consume_chars): Handle charset annotation.  Utilize the above two
+       functions.
+       (encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
+       buffer, get the deleted text as a string and set
+       coding->src_object to that string.
+       (detect_coding, detect_coding_system): Use the new struct
+       coding_detection_info.
+
+       * coding.h (struct coding_detection_info): New structure.
+       (struct coding_system): Prototype of the member `detector'
+       adjusted.
+       (CODING_ANNOTATE_CHARSET_MASK): New macro.
+
+2003-01-06  Kenichi Handa  <handa@m17n.org>
+
+       * insdel.c (insert_from_gap): Fix argument to offset_intervals.
+
+2003-01-03  Dave Love  <fx@gnu.org>
+
+       * keymap.c (apropos_predicate, apropos_accumulate): Declare
+       static.
+       (Fapropos_internal): Don't gcpro apropos_accumulate.  Set result
+       to new local and nullify apropos_accumulate before returning.
+       (syms_of_keymap): Staticpro and initialize apropos_accumulate.
+
+2002-12-05  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (Fdefine_charset_internal): Setup charset.fast_map
+       correctly.
+
+2002-11-26  Dave Love  <fx@gnu.org>
+
+       * fns.c (Flanginfo): Call synchronize_system_time_locale.
+
+2002-11-07  Kenichi Handa  <handa@m17n.org>
+
+       The following changes are to make character composition happen
+       automatically on displaying.
+
+       * Makefile.in (lisp, shortlisp): Add composite.elc
+
+       * composite.h (Qauto_composed, Vauto_composition_function,
+       Qauto_composition_function): Extern them.
+
+       * composite.c (Vcomposition_function_table,
+       Qcomposition_function_table): Delete variables.
+       (Qauto_composed, Vauto_composition_function,
+       Qauto_composition_function): New variables.
+       (run_composition_function): Don't call
+       compose-chars-after-function.
+       (update_compositions): Clear `auto-composed' text property.
+       (compose_chars_in_text): Delete this function.
+       (syms_of_composite): Staticpro Qauto_composed and
+       Qauto_composition_function.  Declare Vauto_composition_function as
+       a Lisp variable.
+
+       * dispextern.h (enum prop_idx): Add member AUTO_COMPOSED_PROP_IDX.
+
+       * xdisp.c (it_props): Add an entry for Qauto_composed.
+       (handle_auto_composed_prop): New function.
+
+       * xselect.c (selection_data_to_lisp_data): Don't call
+       compose_chars_in_text.
+
+2002-11-06  Dave Love  <fx@gnu.org>
+
+       * keyboard.c (read_char): Modify checking around use of
+       Vkeyboard_translate_table.
+
+       * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
+       and fix C types.
+
+2002-11-06  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding_utf_8): When eol_type is Qdos, handle
+       the case that the last byte is '\r' correctly.
+       (decode_coding_emacs_mule): Likewise.
+       (decode_coding_iso_2022): Likewise.
+       (decode_coding_sjis): Likewise.
+       (decode_coding_big5): Likewise.
+       (decode_coding_charset): Likewise.
+       (produce_chars): Likewise.
+       (decode_coding): Flushing out the unprocessed data correctly.
+       (decode_coding_gap): Set CODING_MODE_LAST_BLOCK bit of
+       coding->mode.
+
+2002-10-31  Dave Love  <fx@gnu.org>
+
+       * xterm.c (XTread_socket): Fix changes for defined keysyms.  Add
+       XK_ISO... case.
+       (xaw_scroll_callback): Revert last change.
+
+2002-10-30  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (Fset_charset_priority): Update
+       Viso_2022_charset_list.
+
+2002-10-29  Kenichi Handa  <handa@m17n.org>
+
+       * xfaces.c (Vface_resizing_fonts): New variable.
+       (struct font_name): New member `resizing_ratio'.
+       (font_resizing_ratio): New function.
+       (split_font_name): Set font->resizing_ratio.
+       (better_font_p): Pay attention to font->resizing_ratio.
+       (build_scalable_font_name): Likewise.  Don't change POINT_SIZE,
+       RESX, and RESY fields.
+       (try_alternative_families): Try scalable fonts if
+       Vscalable_fonts_allowed is not Qt.
+       (syms_of_xfaces): Declare Vface_resizing_fonts as a Lisp variable.
+
+2002-10-29  Dave Love  <fx@gnu.org>
+
+       * xterm.c (xaw_scroll_callback): Cast correctly.
+
+2002-10-28  Dave Love  <fx@gnu.org>
+
+       * keyboard.c (lispy_accent_codes, lispy_accent_keys): Extend.
+       (lispy_kana_keys): Comment out.
+       (make_lispy_event) [XK_kana_A]: Comment out.
+
+       * xterm.c (xaw_scroll_callback): Cast call_data.
+       (XTread_socket): Deal with ASCII keysyms.
+       (syms_of_xterm) <Vx_keysym_table>: Fix args of make_hash_table.
+
+2002-10-27  Dave Love  <fx@gnu.org>
+
+       * xterm.c (Vx_keysym_table): New.
+       (syms_of_xterm): Initialize it.
+       (XTread_socket): Use it.
+       From head: Eliminate incorrect optimization that tried to avoid
+       decoding the output of X*LookupString.
+       (x_get_font_repertory): Delete charset declaration.
+
+2002-10-16  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (detect_coding): Fix previous change.
+       (detect_coding_charset): If only ASCII bytes are found, return 0.
+       (detect_coding_system): Fix previous change.
+       (Fdefine_coding_system_internal): Setup
+       CODING_ATTR_ASCII_COMPAT (attrs) correctly.
+
+2002-10-15  Dave Love  <fx@gnu.org>
+
+       * coding.c (Fcheck_coding_system): Doc fix.
+
+       * editfns.c (Finsert_byte): Return a proper value.
+
+2002-10-14  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding): Fix args to translate_chars.  Pay
+       attention to Vstandard_translation_table_for_decode.
+       (encode_coding): Fix args to translate_chars.  Pay attention to
+       Vstandard_translation_table_for_encode.
+
+       * data.c (Faset): Check NEWELT by ASCII_CHAR_P, not by
+       SINGLE_BYTE_CHAR_P.
+
+       * editfns.c (general_insert_function): Check VAL by ASCII_CHAR_P,
+       not by SINGLE_BYTE_CHAR_P.
+
+       * fns.c (concat): Check CH by ASCII_CHAR_P, not by
+       SINGLE_BYTE_CHAR_P.
+
+       * insdel.c (copy_text): Check C by ASCII_CHAR_P, not by
+       SINGLE_BYTE_CHAR_P.
+
+       * keymap.c (Ftext_char_description): Check C by ASCII_CHAR_P, not
+       by SINGLE_BYTE_CHAR_P.
+
+       * search.c (Freplace_match): Check C by ASCII_CHAR_P, not by
+       SINGLE_BYTE_CHAR_P.
+
+2002-10-14  Dave Love  <fx@gnu.org>
+
+       * fns.c (Fstring_as_multibyte, Fstring_to_multibyte): Doc fix.
+
+2002-10-10  Dave Love  <fx@gnu.org>
+
+       * fns.c (Flanginfo): Fix typo.
+
+       * unexelf.c (unexec): Make last change conditional on Irix 6.5.
+
+2002-10-10  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (detect_coding_utf_8): Check incomplete byte sequence.
+       Don't update *mask when correctly detected.
+       (detect_coding_utf_16): Likewise.
+       (detect_coding_emacs_mule): Likewise.
+       (detect_coding_iso_2022): Likewise.
+       (detect_coding_sjis): Likewise.
+       (detect_coding_big5): Likewise.
+       (detect_coding_ccl): Likewise.
+       (decode_coding_sjis): Fix decoding of katakana-jisx0201.
+       (detect_eol): Delete the argument CODING, and add the argument
+       CATEGORY.
+       (detect_coding): Adjusted for the changes above.
+       (detect_coding_system): Likewise.
+
+2002-10-09  Kenichi Handa  <handa@m17n.org>
+
+       * character.c (char_string): Renamed from
+       char_string_with_unification.  Pay attention to
+       CHAR_MODIFIER_MASK.
+       (string_char): Renamed from string_char.
+
+       * character.h (CHAR_STRING): Call char_string if C is greater than
+       MAX_3_BYTE_CHAR.
+       (CHAR_STRING_ADVANCE): Likewise.
+       (STRING_CHAR): Call string_char instead of
+       string_char_with_unification.
+       (STRING_CHAR_AND_LENGTH): Likewise.
+       (STRING_CHAR_ADVANCE): Likewise.
+
+2002-10-09  Dave Love  <fx@gnu.org>
+
+       * coding.c (decode_coding_utf_8): Treat surrogates as invalid.
+
+2002-10-07  Kenichi Handa  <handa@m17n.org>
+
+       * keymap.c (push_key_description): Pay attention to
+       force_multibyte.
+
+       * regex.c (re_search_2): Fix for the case of unibyte buffer.
+
+2002-10-06  Dave Love  <fx@gnu.org>
+
+       * charset.c (define_charset_internal): Rename `supprementary'.
+
+       * Makefile.in (lisp, shortlisp): Remove latin-N.
+
+2002-10-05  Dave Love  <fx@gnu.org>
+
+       * xfns.c (x_window, x_window): Use use_xim.
+
+       * xterm.c (use_xim): Initialize.
+       (xim_open_dpy, xim_initialize, xim_close_dpy): Use use_xim.
+       (x_term_init): Maybe set use_xim.
+
+       * xterm.h (use_xim) [HAVE_X_I18N]: Declare.
+
+2002-10-01  Kenichi Handa  <handa@m17n.org>
+
+       * search.c (search_buffer): Fix case-fold-search of multibyte
+       characters.
+       (boyer_moore): Rename the last argument to char_high_bits.
+
+2002-09-27  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (display_string): Fix for the case of zero width glyph.
+
+       * xfns.c (x_set_font): Change the error message of the case that
+       x_new_fontset returns Qt.
+
+       * xfaces.c (set_lface_from_font_name): Reject the default fontset.
+       (Finternal_set_lisp_face_attribute): Use signal_error for the
+       error of invalid fontset.
+
+       * xterm.c (x_new_fontset): If FONTSETNAME specifies the default
+       fontset, return Qt.
+
+2002-09-19  Kenichi Handa  <handa@m17n.org>
+
+       * regex.c (re_search_2): Fix previous change.
+
+2002-09-18  Kenichi Handa  <handa@m17n.org>
+
+       * syntax.c (skip_syntaxes): Fix previous change.
+
+2002-09-13  Kenichi Handa  <handa@m17n.org>
+
+       * syntax.c (skip_chars): Fix previous change.
+       (skip_syntaxes): Fix previous change.
+
+2002-09-06  Dave Love  <fx@gnu.org>
+
+       * config.in: Restore it.
+
+2002-09-05  Dave Love  <fx@gnu.org>
+
+       * config.in: Removed (now auto-generated).
+
+       * s/usg5-4.h: Fix last change.
+
+       * unexelf.c (unexec): Make .got handling not SGI-specific.
+
+       * syntax.c (syms_of_syntax) <multibyte-syntax-as-symbol>: Doc fix.
+
+       * regex.c: Use `ifdef HAVE_ALLOCA_H', not `if HAVE_ALLOCA_H'.
+
+       * keyboard.c (read_key_sequence): Fix type error.
+
+       * buffer.c (Fset_buffer_multibyte, Fset_buffer_multibyte): Fix
+       type error.
+
+       * fontset.c (fontset_add): Return Lisp_Object.
+
+2002-09-03  Dave Love  <fx@gnu.org>
+
+       * charset.h (charset_ordered_list_tick): Declare extern.
+
+2002-09-03  Kenichi Handa  <handa@m17n.org>
+
+       The following changes (and some of 2002-08-20 changes of mine) are
+       for handling syntax, category, and case conversion for unibyte
+       characters by converting them to multibyte on the fly.  With these
+       changes, we don't have to setup syntax and case tables for unibyte
+       characters in each language environment.
+
+       * abbrev.c (Fexpand_abbrev): Convert a unibyte character to
+       multibyte if necessary.
+
+       * bytecode.c (Fbyte_code): Likewise.
+
+       * character.h (LEADING_CODE_LATIN_1_MIN)
+       (LEADING_CODE_LATIN_1_MAX): New macros.
+       (unibyte_to_multibyte_table): Extern it.
+       (unibyte_char_to_multibyte): New macro.
+       (MAKE_CHAR_MULTIBYTE): Use unibyte_to_multibyte_table.
+       (CHAR_LEADING_CODE): New macro.
+       (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): New macro.
+
+       * character.c (unibyte_to_multibyte_table): New variable.
+       (unibyte_char_to_multibyte): Move to character.h and defined as
+       macro.
+       (multibyte_char_to_unibyte): If C is an eight-bit character,
+       convert it to the corresponding byte value.
+
+       * charset.c (Fset_unibyte_charset): If the dimension of CHARSET is
+       not 1, singals an error.  Update the elements of
+       unibyte_to_multibyte_table.
+       (init_charset_once): Initialize unibyte_to_multibyte_table.
+       (syms_of_charset): Define the charset `iso-8859-1'.
+
+       * casefiddle.c (casify_object): Fix previous change.
+
+       * cmds.c (internal_self_insert): In a multibyte buffer, insert C
+       as is without converting it to unibyte.  In a unibyte buffer,
+       convert C to multibyte before checking the syntax.
+
+       * lisp.h (unibyte_char_to_multibyte): Extern deleted.
+
+       * minibuf.c (Fminibuffer_complete_word): Use the macro
+       FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
+
+       * regex.h (struct re_pattern_buffer): New member target_multibyte.
+
+       * regex.c (RE_TARGET_MULTIBYTE_P): New macro.
+       (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte.  If
+       that is zero, convert an eight-bit char to multibyte.
+       (MAKE_CHAR_MULTIBYTE, CHAR_LEADING_CODE): New dummy new macros for
+       non-emacs case.
+       (PATFETCH): Convert an eight-bit char to multibyte.
+       (HANDLE_UNIBYTE_RANGE): New macro.
+       (regex_compile): Setup the compiled pattern for multibyte chars
+       even if the given regex string is unibyte.  Use PATFETCH_RAW
+       instead of PATFETCH in many places.  To handle `charset'
+       specification of unibyte, call HANDLE_UNIBYTE_RANGE.   Use bitmap
+       only for ASCII chars.
+       (analyse_first) <exactn>: Simplified because the compiled pattern
+       is multibyte.
+       <charset_not>: Setup fastmap from bitmap only for ASCII chars.
+       <charset>: Use CHAR_LEADING_CODE to get leading codes.
+       <categoryspec>: If multibyte, setup fastmap only for ASCII chars
+       here.
+       (re_compile_fastmap) [emacs]: Call analyse_first with the arg
+       multibyte always 1.
+       (re_search_2): In emacs, set the locale variable multibyte to 1,
+       otherwise to 0.  New local variable target_multibyte.  Check it
+       to decide the multibyteness of STR1 and STR2.  If
+       target_multibyte is zero, convert unibyte chars to multibyte
+       before translating and checking fastmap.
+       (TARGET_CHAR_AND_LENGTH): New macro.
+       (re_match_2_internal): In emacs, set the locale variable multibyte
+       to 1, otherwise to 0.  New local variable target_multibyte.  Check
+       it to decide the multibyteness of STR1 and STR2.  Use
+       TARGET_CHAR_AND_LENGTH to fetch a character from D.
+       <charset, charset_not>: If multibyte is nonzero, check fastmap
+       only for ASCII chars.   Call bcmp_translate with
+       target_multibyte, not with multibyte.
+       <begline>: Declare the local variable C as `unsigned'.
+       (bcmp_translate): Change the last arg name to target_multibyte.
+
+       * search.c (compile_pattern_1): Don't adjust the multibyteness of
+       the regexp pattern and the matching target.  Set cp->buf.multibyte
+       to the multibyteness of the regexp pattern.  Set
+       cp->but.target_multibyte to the multibyteness of the matching
+       target.
+       (wordify): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE instead of
+       FETCH_STRING_CHAR_ADVANCE.
+       (Freplace_match): Convert unibyte chars to multibyte.
+
+       * syntax.c (char_quoted): Use FETCH_CHAR_AS_MULTIBYTE to convert
+       unibyte chars to multibyte.
+       (back_comment): Likewise.
+       (scan_words): Likewise.
+       (skip_chars): The arg syntaxp is deleted, and the code for
+       handling syntaxes is moved to skip_syntaxes.  Callers changed.
+       Fix the case that the multibyteness of STRING and the current
+       buffer doesn't match.
+       (skip_syntaxes): New function.
+       (SYNTAX_WITH_MULTIBYTE_CHECK): Check C by ASCII_CHAR_P, not by
+       SINGLE_BYTE_CHAR_P.
+       (Fforward_comment): Use FETCH_CHAR_AS_MULTIBYTE to convert unibyte
+       chars to multibyte.
+       (scan_lists): Likewise.
+       (Fbackward_prefix_chars): Likewise.
+       (scan_sexps_forward): Likewise.
+
+2002-08-23  Kenichi Handa  <handa@m17n.org>
+
+       * xfaces.c (QCfontset): New variable.
+       (LFACE_FONTSET): New macro.
+       (check_lface_attrs): Check also LFACE_FONTSET_INDEX.
+       (set_lface_from_font_name): Setup LFACE_FONTSET (lface).
+       (Finternal_set_lisp_face_attribute): Handle QCfontset.
+       (Finternal_get_lisp_face_attribute): Likewise.
+       (lface_same_font_attributes_p): Fix checking of LFACE_FONT_INDEX,
+       check also LFACE_FONTSET_INDEX.
+       (face_fontset): Check attrs[LFACE_FONTSET_INDEX], not
+       attrs[LFACE_FONT_INDEX].
+       (syms_of_xfaces): Intern and staticpro QCfontset.
+
+       * dispextern.h (enum lface_attribute_index): New member
+       LFACE_FONTSET_INDEX.
+
+       * fns.c (base64_encode_1): Handle eight-bit chars correctly.
+
+2002-08-21  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (coding_set_destination): Fix coding->destination for
+       the case converting a region.
+       (encode_coding_utf_8): Encode eight-bit chars as single byte.
+       (encode_coding_object): Fix coding->dst_pos and
+       coding->dst_pos_byte for the case converting a region.
+
+       * insdel.c (insert_from_gap): Make it work even if PT != GTP.
+
+       * character.h (BYTE8_STRING): New macro.
+
+       * fns.c (base64_decode_1): Insert eight-bit chars correctly.
+
+2002-08-20  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (get_next_display_element): Don't display unibyte 8-bit
+       characters by octal form.
+
+       * abbrev.c (Fexpand_abbrev): Fix for the multibyte case.
+
+       * buffer.h (_fetch_multibyte_char_len): Extern deleted.
+       (FETCH_MULTIBYTE_CHAR): Don't use _fetch_multibyte_char_len.
+       (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
+       (FETCH_CHAR_AS_MULTIBYTE): New macro.
+
+       * casetab.c (set_canon, set_identity, shuffle): Simplified.
+
+       * casefiddle.c (casify_object): Simplified.  Handle the case that
+       the case conversion change the byte length.
+       (casify_region): Likewise
+
+       * character.h (MAKE_CHAR_UNIBYTE, MAKE_CHAR_MULTIBYTE): New
+       macros.
+
+       * character.c (_fetch_multibyte_char_len): This variable deleted.
+       (syms_of_character): Setup Vprintable_chars.
+
+       * editfns.c (Fchar_equal): Fix for the unibyte case.
+       (Finsert_byte): New function.
+       (syms_of_editfns): Defsubr it.
+
+       * keyboard.c (read_key_sequence): Use ~CHAR_MODIFIER_MASK instead
+       of direct code 0x3ffff.
+
+       * search.c (Freplace_match): Fix for the unibyte case.
+
+2002-08-19  Kenichi Handa  <handa@m17n.org>
+
+       * lread.c (safe_to_load_p): Fix the logic.
+
+       * syntax.c (scan_words): Don't treat characters belonging to
+       different scripts as constituting a word.
+
+       * editfns.c (Fformat): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
+
+       * fontset.c (Fset_fontset_font): Treat `ascii' as charset, not
+       script.
+
+       * emacs.c (main): In the case of --unibyte, instead of aborting on
+       finding non-empty buffer, make it unibyte.
+
+2002-08-18  Kenichi Handa  <handa@m17n.org>
+
+       * xterm.c (x_new_fontset): Call `create-fontset-from-ascii-font'
+       to create a fontset.
+
+2002-08-18  Dave Love  <fx@gnu.org>
+
+       * character.c (Funibyte_char_to_multibyte): Doc fix.
+
+       * xfns.c [HAVE_STDLIB_H]: Fix last change.
+
+2002-08-15  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (fontset_add): Make the type `int'.
+       (fontset_id_valid_p): Define it if FONTSET_DEBUG is defined.
+
+       * character.c (unibyte_char_to_multibyte): Refer to
+       charset_unibyte, not charset_primary.
+       (multibyte_char_to_unibyte): Likewise.
+       (Funibyte_char_to_multibyte): Likewise.
+
+       * charset.h: (charset_unibyte): Extern it instead of
+       charset_primary.
+
+       * charset.c (charset_unibyte): Renamed from charset_primary.
+       (Funibyte_charset): Renamed from Fprimary_charset.
+       (Fset_unibyte_charset): Renamed from Fset_primary_charset.
+       (syms_of_charset): Adjusted for the above changes.
+
+       * w32term.c (x_produce_glyphs): Use ASCII_CHAR_P, not
+       SINGLE_BYTE_CHAR_P.  Fix the logic of handling non-ASCII char when
+       it->multibyte_p is zero.
+
+       * lisp.h (nonascii_insert_offset, Vnonascii_translation_table):
+       Extern deleted.
+
+2002-08-08  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (Fdefine_coding_system_internal): Fix category setting
+       for a coding system of type iso-2022.
+
+2002-08-02  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.h (FS_LOAD_FONT): Call fs_load_font with the arg CHARSET
+       -1.
+
+2002-08-01  Kenichi Handa  <handa@m17n.org>
+
+       * syntax.c (Vnext_word_boundary_function_table): New variable.
+       (syms_of_syntax): Declare it as a Lisp variable.
+       (scan_words): Call functions in Vnext_word_boundary_function_table
+       if any.
+
+       * xterm.c (x_load_font): Initialize fontp->fontset to -1.
+
+       * fontset.c (fs_load_font): If fontp->charset is not negative,
+       return fontp without setting its members.
+
+2002-07-31  Dave Love  <fx@gnu.org>
+
+       * config.in: Generated with autoheader.
+
+       * xfns.c [HAVE_STDLIB_H]: Change logic (instead of fixing typo).
+
+       * m/sparc.h (HAVE_ALLOCA): Delete.
+
+       * s/irix6-5.h: Don't include strings.h.
+       (bcopy, bzero, bcmp): Don't undef.
+
+       * s/irix6-0.h (bcopy, bzero, bcmp): Don't undef.
+
+       * s/usg5-4.h (NO_SIOCTL_H): Don't define.
+       (TIOCSIGSEND): Don't test IRIX6.
+       (bcopy, bzero, bcmp): Define conditionally.
+
+2002-07-31  Kenichi Handa  <handa@m17n.org>
+
+       * buffer.c (Qas, Qmake, Qto): New variables.
+       (Fset_buffer_multibyte): New optional arg METHOD.  Caller changed.
+       (syms_of_buffer): Intern and staticpro Qas, Qmake, and Qto.
+
+       * callproc.c (Fcall_process): Don't call insert_1_both directly if
+       we are inserting a process output into a multibyte buffer.
+
+       * character.h (CHAR_TO_BYTE8): If C is not eight-bit char, call
+       multibyte_char_to_unibyte.
+
+       * character.c (Funibyte_char_to_multibyte): If C can't be decoded
+       by the primary charset, make it eight-bit char.
+       (Fmultibyte_char_to_unibyte): Call CHAR_TO_BYTE8.
+
+       * charset.c: (charset_eight_bit, Qeight_bit_control): New
+       variables.
+       (charset_8_bit__control, charset_8_bit_graphic,
+       Qeight_bit_control, Qeight_bit_graphic): These variables deleted.
+       (define_charset_internal): New function.
+       (syms_of_charset): Call define_charset_internal for pre-defined
+       charsets.
+
+       * charset.h (charset_8_bit): Extern it.
+
+       * coding.c (make_conversion_work_buffer): Adjusted for the change
+       of Fset_buffer_multibyte.
+       (encode_coding_raw_text): Increment p0 in the loop.
+
+       * lisp.h (Fset_buffer_multibyte): Prototype adjusted.
+
+       * xdisp.c (setup_echo_area_for_printing, set_message_1): Adjusted
+       for the change of Fset_buffer_multibyte.
+
+       * fns.c (Fstring_to_multibyte): New function.
+       (syms_of_fns): Declare Fstring_to_multibyte as Lisp subroutine.
+
+2002-07-30  Dave Love  <fx@gnu.org>
+
+       * xfns.c (x_put_x_image): Declare args.
+
+       * xfaces.c (font_name_registry, choose_face_font): Delete unused
+       vars.
+       (try_font_list): Declare an arg.
+
+       * xdisp.c (message2_nolog, set_message): Declare an arg.
+
+       * terminfo.c (tparam): Declare an arg.  Use P_ to declare tparm.
+
+       * syntax.c (scan_sexps_forward): Declare an arg.
+
+       * scroll.c (calculate_scrolling, calculate_direct_scrolling):
+       Declare an arg.
+
+       * lisp.h (Fnew_fontset): Declare.
+
+       * keymap.c (push_key_description): Call CHARACTERP correctly.
+
+       * fontset.c (fontset_add): Declare args.  Call make_number
+       correctly.
+       (face_for_char): Delete unused vars.
+       (Fset_fontset_font): Doc fix.  Delete unused vars.
+
+       * doc.c (Fsubstitute_command_keys): Delete unused vars.
+
+       * composite.c (update_compositions): Declare arg.
+
+       * cm.c (calccost, cmgoto): Declare args.
+
+       * charset.c: Remove `emacs' conditional.  Doc fixes.
+       (map_char_table_for_charset): Declare.
+
+       * character.c (syms_of_character) <translation-table-vector>: Doc
+       fix.
+
+       * ccl.c: Remove `emacs' conditional.  Include hash table stuff
+       from trunk.
+
+2002-07-26  Kenichi Handa  <handa@m17n.org>
+
+       The following changes are to allow specifying multiple font
+       patterns for a character range (specified by script or charset).
+
+       * Makefile.in (abbrev.o): Depend on syntax.h.
+       (xfaces.o): Depend on charset.h.
+
+       * alloc.c (Fmake_string): Use ASCII_CHAR_P, not
+       SINGLE_BYTE_CHAR_P.
+
+       * ccl.c (Fccl_execute_on_string): Add `const' to local variables.
+
+       * character.h (Vchar_script_table): Extern it.
+
+       * character.c (Vscript_alist): This variable deleted.
+       (Vchar_script_table, Qchar_script_table): New variable.
+       (syms_of_character): Declare Vchar_script_table as a lisp variable
+       and initialize it.
+
+       * chartab.c (Fmake_char_table): Doc fixed.  If PURPOSE doesn't
+       have property char-table-extra-slots, make no extra slot.
+
+       * dispextern.h (struct face): Member `charset' deleted.
+       (FACE_SUITABLE_FOR_CHAR_P): Use ASCII_CHAR_P, not
+       SINGLE_BYTE_CHAR_P.
+       (FACE_FOR_CHAR): Likewise.
+       (choose_face_font, lookup_non_ascii_face, font_name_registry): Add
+       prototypes
+       (lookup_face, lookup_named_face, lookup_derived_face): Prototype
+       fixed.
+       (generate_ascii_font_name): Renamed from generate_ascii_font.
+
+       * fontset.h (get_font_repertory_func): New prototype.
+       (make_fontset_for_ascii_face, fs_load_font): Prototypes fixed.
+       (FS_LOAD_FONT): Call fs_load_font with the 3rd arg charset_ascii.
+
+       * fontset.c (Qprepend, Qappend): New variables.
+       (FONTSET_CHARSET_ALIST, FONTSET_FACE_ALIST): These macros deleted.
+       (FONTSET_NOFONT_FACE, FONTSET_REPERTORY): New macros.
+       (FONTSET_REF): Optimize if FONTSET is Vdefault_fontset.
+       (FONTSET_REF_AND_RANGE, FONTSET_ADD): New macros.
+       (fontset_ref_and_range, fontset_add, reorder_font_vector)
+       (load_font_get_repertory): New functions.
+       (fontset_set): This function deleted.
+       (fontset_face): New arg FACE.  Return face ID, not face.
+       Completely re-written to handle new fontset structure.  Caller
+       changed.
+       (free_face_fontset): Use ASET istead of AREF (X) = Y.
+       (face_for_char): Don't call lookup_face.
+       (make_fontset_for_ascii_face): New arg FACE.
+       (fs_load_font): New arg CHARSET_ID.  Don't check
+       Vfont_encoding_alist here.
+       (find_font_encoding): New function.
+       (list_fontsets): Use STRINGP, not ! NILP.
+       (accumulate_script_ranges): New function.
+       (Fset_fontset_font, Fnew_fontset, Ffontset_info): Completely
+       re-written to handle new fontset structure.
+       (Ffontset_font): Return a copy of element.
+       (syms_of_fontset): Define symbols Qprepend and Qappend.  Fix
+       docstring of font-encoding-alist.
+
+       * lisp.h (CHAR_TABLE_REF): Remove unnecessary check (IDX >= 0).
+       (Fset_fotset_font): Fix arguments to 5.
+
+       * msdos.c (XMenuActivate): Adjuted for the change of
+       lookup_derived_face.
+
+       * xdisp.c (message_dolog, set_message_1, extend_face_to_end_of_line):
+       Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
+       (highlight_trailing_whitespace): Adjusted for the change of
+       lookup_named_face.
+
+       * xfaces.c: Include charset.h.
+       (load_face_font): Argument C deleted.  Caller changed.
+       (generate_ascii_font_name): Renamed from generate_ascii_font.
+       (font_name_registry): New function.
+       (cache_face): Store ascii faces before non-ascii faces in buckets.
+       (lookup_face): Arguments C and BASE_FACE deleted.  Caller changed.
+       Lookup only ascii faces.
+       (lookup_non_ascii_face): New function.
+       (lookup_named_face): Argument C deleted.  Caller changed.
+       (lookup_derived_face): Argument C deleted.  Caller changed.
+       (try_font_list): New arg PATTERN.  Caller changed.  If PATTERN is
+       a string, just call font_list with it.
+       (choose_face_font): Arguments FACE and C deleted.  New arg
+       FONT_SPEC.  Caller changed.
+       (realize_face): Arguments C and BASE_FACE deleted.  Caller
+       (realize_x_face): Likewise.
+       (realize_non_ascii_face): New function.
+       (realize_x_face): Call load_face_font here.
+       (realize_tty_face): Argument C deleted.  Caller changed.
+       (compute_char_face): If CH is not ascii, call FACE_FOR_CHAR to
+       get a face ID.
+       (dump_realized_face): Don't print charset of FACE.
+
+       * xfns.c (x_set_font): Always call x_new_fontset and
+       store_frame_parameter.
+       (Fx_create_frame): Call x_new_fontset, not x_new_font.
+       (syms_of_xfns): Set get_font_repertory_func to
+       x_get_font_repertory.
+
+       * xterm.h (x_get_font_repertory): Extern it.
+
+       * xterm.c (x_produce_glyphs): Use ASCII_CHAR_P, not
+       SINGLE_BYTE_CHAR_P.  Fix the logic of handling non-ASCII char when
+       it->multibyte_p is zero.
+       (XTread_socket): Use ASCII_CHAR_P, not SINGLE_BYTE_CHAR_P.
+       (x_new_fontset): If FONTSETNAME doesn't match any existing
+       fontsets, create a new one.
+       (x_get_font_repertory): New function.
+
+2002-07-25  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (Ffind_coding_systems_region_internal): Detect an
+       ASCII only string correctly.
+
+       * lread.c (Fload): Don't load with Qload_force_doc_strings t if
+       version is 0.
+
+2002-07-24  Kenichi Handa  <handa@m17n.org>
+
+       * lread.c: Include "coding.h".
+       (Qget_emacs_mule_file_char, Qload_force_doc_strings,
+       load_each_byte, unread_char): New variables.
+       (readchar_backlog): This variable deleted.
+       (readchar): Return a character unless load_each_byte is nonzero.
+       Handle the case that readcharfun is Qget_emacs_mule_file_char or a
+       cons.  If unread_char is not -1, simply return it.
+       (unreadchar): Handle the case that readcharfun is
+       Qget_emacs_mule_file_char or a cons.  Set unread_char if
+       necessary.
+       (read_multibyte): This function deleted.
+       (readbyte_for_lambda, readbyte_from_file, readbyte_from_string)
+       (read_emacs_mule_char): New functions.
+       (Fload): Even if the file doesn't have the extention ".elc", if
+       safe_to_load_p returns a positive version number, assume that the
+       file contains bytecompiled code.  If the version is less than 22,
+       load the file while decoding multibyte sequences by emacs-mule.
+       (readevalloop): Don't use readchar_backlog.
+       (Fread): Likewise.  Pay attention to the case that STREAM is a
+       cons.
+       (Fread_from_string): Pay attention to the case that STREAM is a
+       cons.
+       (read_escape): The arg BYTEREP deleted.
+       (read1): Set load_each_byte to 1 temporarily while handling
+       #@NUMBER.  Don't call read_multibyte.
+       (read_vector): Call Fread with a cons.  If readcharfun is
+       Qget_emacs_mule_file_char, decode the read string by emacs-mule.
+       (read_list): If doc_reference is 2, make the cdr part string as
+       unibyte.
+       (syms_of_lread): Intern and staticpro Qget_emacs_mule_file_char
+       and Qload_force_doc_strings.
+
+2002-07-23  Kenichi Handa  <handa@m17n.org>
+
+       * xdisp.c (face_before_or_after_it_pos): Call
+       FETCH_MULTIBYTE_CHAR with byte postion, not char position.
+
+2002-07-22  Kenichi Handa  <handa@m17n.org>
+
+       * character.h (TRAILING_CODE_P): New macro.
+       (MAYBE_UNIFY_CHAR): Adjusted for the change of Funify_charset.
+       (string_char_with_unification): Fix prototype.
+       (Vscript_alist): Extern it.
+
+       * character.c (Vscript_alist): New variable.
+       (string_char_with_unification): Add `const' to local variables.
+       (str_as_unibyte): Likewise.
+       (string_escape_byte8): Likewise.
+       (syms_of_character): Declare script-alist as a Lisp variable.
+
+       * charset.h (Vcharset_ordered_list): Extern it.
+       (charset_ordered_list_tick): Extern it.
+       (EMACS_MULE_LEADING_CODE_PRIVATE_11)
+       (EMACS_MULE_LEADING_CODE_PRIVATE_12)
+       (EMACS_MULE_LEADING_CODE_PRIVATE_21)
+       (EMACS_MULE_LEADING_CODE_PRIVATE_22): New macros
+       (Funify_charset): Adjusted for the change of Funify_charset.
+
+       * charset.c (charset_ordered_list_tick): New variable.
+       (Fdefine_charset_internal): Increment charset_ordered_list_tick.
+       (Funify_charset): New optional arg DEUNIFY.  If it is non-nil,
+       deunify intead of unify a charset.
+       (string_xstring_p): Add `const' to local variables.
+       (find_charsets_in_text): Add `const' to arguemnts and local
+       variables.
+       (encode_char): Adjusted for the change of Funify_charset.  Fix
+       detecting of invalid code.
+       (Fset_charset_priority): Increment charset_ordered_list_tick.
+       (Fmap_charset_chars): Fix handling of default value for FROM_CODE
+       and TO_CODE.
+
+       * coding.c (LEADING_CODE_PRIVATE_11, LEADING_CODE_PRIVATE_12)
+       (LEADING_CODE_PRIVATE_21, LEADING_CODE_PRIVATE_22): Macros
+       deleted.  Callers changed to use
+       EMACS_MULE_LEADING_CODE_PRIVATE_11, etc.
+       (decode_coding_ccl): Add `const' to local variables.
+       (consume_chars): Likewise.
+       (Ffind_coding_systems_region_internal): Likewise.
+       (Fcheck_coding_systems_region): Likewise.
+
+       * print.c (print_object): Use octal form for printing the
+       contents of a bool vector.
+
+2002-07-18  Dave Love  <fx@gnu.org>
+
+       * lread.c (Fload) <!load_dangerous_libraries>: Don't leak fd.
+       <version == 20>: Refuse to load.
+
+2002-07-17  Dave Love  <fx@gnu.org>
+
+       * fns.c: Move coding.h.
+       (Qcodeset, Qdays, Qmonths): New.
+       (concat): Use CHARACTERP instead of INTERGERP.
+       (Flocale_codeset): Deleted.
+       (Flanginfo): New function.
+       (syms_of_fns): Changed accordingly.
+
+       * coding.c (adjust_coding_eol_type): Fix eol_type/eol_seen mixup.
+
+2002-07-16  Dave Love  <fx@gnu.org>
+
+       * casetab.c (init_casetab_once, init_casetab_once): Fix
+       CHAR_TABLE_SET call.
+
+       * category.c (Fmodify_category_entry): Fix CATEGORY_MEMBER call.
+
+       * character.c (syms_of_character): Fix CHAR_TABLE_SET call.
+
+       * charset.c (Fmap_charset_chars): Check args.  Convert Lisp types.
+       (load_charset_map, Fdeclare_equiv_charset, Fencode_char)
+       (Fset_charset_priority, syms_of_charset): Convert Lisp types.
+
+       * charset.h (CHECK_CHARSET_GET_ID): Use XINT on AREF result.
+
+       * coding.c (ENCODE_DESIGNATION, decode_eol)
+       (make_conversion_work_buffer, code_conversion_restore)
+       (Fdefine_coding_system_internal): Convert Lisp types.
+       (code_conversion_restore): Use EQ, not ==.
+       (Fencode_coding_string): Fix code_convert_string call.
+
+       * coding.h (code_convert_region): Fix prototype.
+
+       * dispextern.h (redraw_frame, redraw_garbaged_frames): Removed.
+
+       * fontset.c (fontset_ref, fontset_set, fs_load_font)
+       (Ffontset_info): Convert Lisp types.
+
+       * syntax.h (SYNTAX_ENTRY_INT): Don't use make_number.
+
+       * xterm.c (note_mouse_movement): Fix call of window_from_coordinates.
+
+       * xdisp.c (display_mode_element): Fix call of Fset_text_properties.
+
+       * chartab.c: Include "...h", not <...h> in some cases.
+
+       * callproc.c (Fcall_process): Remove unused variables.
+
+2002-07-12  Dave Love  <fx@gnu.org>
+
+       * coding.c (Fset_coding_system_priority): Allow null arg list.
+
+2002-07-03  Dave Love  <fx@gnu.org>
+
+       * minibuf.c (Fminibuffer_complete_word): Remove unused var.
+       (Fself_insert_and_exit): Use CHARACTERP.
+
+       * callproc.c (Fcall_process): Remove unused vars.
+
+       * xterm.c (XTread_socket): Add extra dead keysyms.
+
+       * xdisp.c (decode_mode_spec_coding): Use CHARACTERP.
+
+       * dispextern.h: Remove prototypes for redraw_frame,
+       redraw_garbaged_frames.
+
+       * cmds.c (Fself_insert_command): Use CHARACTERP.
+
+       * chartab.c (make_sub_char_table): Remove unused var.
+       (Fset_char_table_default, Fmap_char_table): Doc fix.
+
+       * keymap.c (access_keymap): Remove generic char code.
+       (push_key_description): Use CHARACTERP.
+
+2002-07-01  Dave Love  <fx@gnu.org>
+
+       * charset.c: Doc fixes.
+       (Funify_charset): Extra checking.
+
+2002-06-24  Dave Love  <fx@gnu.org>
+
+       * lread.c: Remove some unused variables.
+       (safe_to_load_p): If safe, return the magic number version byte.
+       (Fload): Maybe use load-with-code-conversion.
+
+2002-06-12  Kenichi Handa  <handa@m17n.org>
+
+       * category.c (Fmodify_category_entry): Don't modify the contents
+       of category_set for characters out of the range.  Avoid
+       unnecessary modification.
+
+       * character.h (MAYBE_UNIFY_CHAR): Adjusted for the change of
+       Vchar_unify_table.  The default value of the table is now nil.
+
+       * character.c (syms_of_character): Setup Vchar_width_table for
+       eight-bit-control and raw-byte chars.
+
+       * charset.h (enum define_charset_arg_index): Delete
+       charset_arg_parents and add charset_arg_subset and
+       charset_arg_superset.
+       (enum charset_attr_index): Delete charset_parents and add
+       charset_subset and charset_superset.
+       (enum charset_method): Delete CHARSET_METHOD_INHERIT and add
+       CHARSET_METHOD_SUBSET and CHARSET_METHOD_SUPERSET.
+       (CHARSET_ATTR_PARENTS, CHARSET_PARENTS): Macros deleted.
+       (CHARSET_ATTR_SUBSET, CHARSET_ATTR_SUPERSET, CHARSET_SUBSET)
+       (CHARSET_SUPERSET): New macros.
+       (charset_work): Extern it.
+       (ENCODE_CHAR): Use charset_work.
+       (CHAR_CHARSET_P): Adjusted for the change of encoder format.
+       (map_charset_chars): Extern it.
+
+       * charset.c (load_charset_map): Set the default value of encoder
+       and deunifier char-tables to nil.
+       (map_charset_chars): Argument changed.  Callers changed.  Use
+       map_char_table_for_charset instead of map_char_table.
+       (Fmap_charset_chars): New optional args from_code and to_code.
+       (Fdefine_charset_internal): Adjusted for the change of
+       `define-charset' (:parents -> :subset or :superset).
+       (charset_work): New variable.
+       (encode_char): Adjusted for the change of
+       Fdefine_charset_internal.
+       (syms_of_charset): Likewise.
+       (Ffind_charset_string): Setup the vector `charsets' correctly.
+
+       * chartab.c (sub_char_table_ref_and_range): New arg defalt.  Fix
+       the previous change.
+       (char_table_ref_and_range): Adjusted for the above change.
+       (map_sub_char_table_for_charset): New function.
+       (map_char_table_for_charset): New function.
+
+       * keymap.c (describe_vector): Handle a char-table directly here.
+       (describe_char_table): Deleted.
+
+       * lisp.h (map_charset_chars): Deleted.
+
+2002-06-11  Dave Love  <fx@gnu.org>
+
+       * fns.c (count_combining): Comment out (unused).
+       (Flocale_codeset): New.
+       (syms_of_fns): Defsubr it.
+
+       * config.in (HAVE_PTY_H, HAVE_SIZE_T, HAVE_LANGINFO_CODESET): New.
+       (size_t): Removed.
+
+2002-06-06  Dave Love  <fx@gnu.org>
+
+       * Makefile.in (chartab.o): Depend on charset.h
+
+2002-06-03  Kenichi Handa  <handa@m17n.org>
+
+       * character.c (syms_of_character): Set the default value of
+       Vprintable_chars to Qnil.
+
+2002-05-31  Dave Love  <fx@gnu.org>
+
+       * Makefile.in (lisp, shortlisp): Change indian.elc to indian.el.
+
+2002-05-31  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (load_charset_map): Handle the case that from < to
+       correctly.
+
+       * coding.c (encode_coding_emacs_mule): Pay attention to raw-8-bit
+       chars.
+       (encode_coding_iso_2022): Likewise.
+       (encode_coding_sjis): Likewise.
+       (encode_coding_big5): Likewise.
+       (encode_coding_charset): Likewise.
+
+2002-05-30  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.in (lisp): Change chinese.elc to chinese.el.  They are
+       not bytecompiled now.
+       (shortlisp): Likewise.
+
+       * charset.c (charset_jisx0201_roman, charset_jisx0208_1978)
+       (charset_jisx0208): New variables.
+       (Fdefine_charset_internal): Setup them if appropriate.
+       (init_charset_once): Initialize them to -1.
+
+       * charset.h (charset_jisx0201_roman, charset_jisx0208_1978,
+       charset_jisx0208): Extern them.
+
+       * coding.c (CODING_ISO_FLAG_USE_ROMAN): New macro
+       (CODING_ISO_FLAG_USE_OLDJIS): New macro.
+       (CODING_ISO_FLAG_FULL_SUPPORT): Macro definition changed.
+       (setup_iso_safe_charsets): Fix arguemtns to Fassq.
+       (DECODE_DESIGNATION): Pay attention to CODING_ISO_FLAG_USE_ROMAN
+       and CODING_ISO_FLAG_USE_OLDJIS.
+       (ENCODE_ISO_CHARACTER_DIMENSION1): Likewise.
+       (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
+       (encode_coding_iso_2022): Change the 1st arg to
+       ENCODE_ISO_CHARACTER to a variable.
+
+2002-05-29  Kenichi Handa  <handa@m17n.org>
+
+       * charset.h (enum define_charset_arg_index): New enums
+       charset_arg_min_code and charset_arg_max_code.
+       (struct charset): New member char_index_offset.
+
+       * charset.c (CODE_POINT_TO_INDEX): Take charset->char_index_offset
+       into account.
+       (INDEX_TO_CODE_POINT): Likewise.
+       (Fdefine_charset_internal): Handle args[charset_arg_min_code] and
+       args[charset_arg_max_code].  Setup charset.char_index_offset.
+       (syms_of_charset): Fix args to Fdefine_charset_internal.
+
+2002-05-27  Dave Love  <fx@gnu.org>
+
+       * coding.c (decode_coding_utf_8): Reject overlong sequences.
+
+2002-05-26  Dave Love  <fx@gnu.org>
+
+       * coding.c: Doc fixes.
+       (Fcoding_system_aliases): Fix return value.
+       (Qmac): Remove (duplicated) definition.
+
+2002-05-25  Dave Love  <fx@gnu.org>
+
+       * charset.c (Fcharset_priority_list, Fset_charset_priority): New
+       functions.
+
+       * character.c (Fstring): Doc fix.
+
+       * charset.c (Fdefine_charset_alias): Update Vcharset_list.
+
+       * fontset.c (Ffontset_info): Doc fix.  Return charset names, not
+       ids.
+       (font-encoding-alist): Doc fix.
+
+2002-05-24  Dave Love  <fx@gnu.org>
+
+       * term.c (costs_set): Declare static, non-initialized for pcc.
+       (encode_terminal_code): Remove ensued var.
+
+       * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal decl
+       for K&R.
+
+       * xterm.c (xlwmenu_window_p): Fix prototype for K&R.
+
+       * coding.c (setup_iso_safe_charsets): Fix arg decl for K&R.
+       (suffixes): Moved out of make_subsidiaries for K&R.
+
+       * charset.c (map_charset_chars): Fix c_function declaration for
+       K&R.
+
+       * lisp.h (DEFUN) [!PROTOTYPES]: Remove spurious `args'.
+
+2002-05-23  Dave Love  <fx@gnu.org>
+
+       * data.c (Fchar_or_string_p): Doc fix.  Use CHARACTERP.
+
+       * category.c (Fmodify_category_entry): Doc fix.  Remove unused
+       vars.
+
+2002-05-23  Yong Lu <lyongu@asia-infonet.com>
+
+       * charset.c (Fdefine_charset_internal): Fix argument to bzero.
+
+       * coding.c (Fdefine_coding_system_internal): Fix previous change.
+       (decode_coding_charset): Workaround for the bug of GCC 2.96.
+
+2002-05-23  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.in (lisp): Change cyrillic.elc to cyrillic.el,
+       vietnamese.elc to vietnamese.el.  They are not bytecompiled now.
+       (shortlisp): Likewise.
+
+2002-05-22  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding_charset): Adjusted for the change of
+       Fdefine_coding_system_internal.
+       (Fdefine_coding_system_internal): For a coding system of
+       `charset' type, store a list of charset IDs in
+       `charset_attr_charset_valids' element of coding attributes.
+
+       * charset.c (Fmake_char): Fix previous change.
+
+2002-05-21  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (ONE_MORE_BYTE_NO_CHECK): Increment consumed_chars.
+       (emacs_mule_char): New arg src.  Delete arg `composition'.  Caller
+       changed.  Handle 2-byte and 3-byte charsets correctly.
+       (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Renamed from
+       DECODE_EMACS_MULE_COMPOSITION_RULE.  Caller changed.
+       (DECODE_EMACS_MULE_COMPOSITION_RULE_21): New macro.
+       (DECODE_EMACS_MULE_21_COMPOSITION): Call
+       DECODE_EMACS_MULE_COMPOSITION_RULE_21.  Produce correct annotation
+       sequence.
+       (decode_coding_emacs_mule): Handle composition correctly.  Rewind
+       `src' and `consumed_chars' correctly before calling
+       emacs_mule_char.
+       (DECODE_COMPOSITION_START): Correctly handle the case of altchar
+       and alt&rule composition.
+       (decode_coding_iso_2022): Handle composition correctly.
+       (init_coding_once): Setup emacs_mule_bytes for private charsets.
+
+       * charset.c (Fdefine_charset_internal): Fix bug for the case of
+       re-defining a charset.  If the charset has :emacs-mule-id, setup
+       emacs_mule_bytes.
+       (Fmake_char): If CODE1 is nil, use the minimum code of the
+       charset.
+
+2002-05-20  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (encode_coding_iso_2022): If coding requires safe
+       encoding, produce a character specified by
+       CODING_INHIBIT_CHARACTER_SUBSTITUTION.
+       (encode_coding_sjis): Likewise.
+       (encode_coding_big5): Likewise.
+       (encode_coding_charset): Likewise.
+
+2002-05-17  Dave Love  <fx@gnu.org>
+
+       * xterm.c (XSetIMValues): Declare.
+
+       * process.c: Conditionally include sys/wait.h, pty.h.
+
+       * print.c (print_object): Fix print format for 64-bit
+       systems.
+
+       * keyboard.c (modify_event_symbol): Fix print format for 64-bit
+       systems.
+
+       * buffer.c (emacs_strerror): Declare.
+       (MMAP_ALLOCATED_P, mmap_enlarge, syms_of_buffer): Import changes
+       from trunk.
+
+       * fontset.c (Fclear_face_cache): Declare.
+       (accumulate_font_info): Commented-out (unused).
+       (face_for_char, Fset_fontset_font, Ffontset_info): Remove unused
+       variables.
+
+       * character.h (string_escape_byte8): Declare.
+
+       * charset.c (load_charset_map, load_charset_map_from_file): Remove
+       unused vars.
+       (Fdefine_charset_internal, Fsplit_char, syms_of_charset)
+       (Fmap_charset_chars): Doc fix.
+
+       * coding.c (Vchar_coding_system_table, Qchar_coding_system):
+       Removed.
+       (Fset_coding_system_priority, Fset_coding_system_priority)
+       (Fdefine_coding_system_internal): Doc fix.
+
+2002-05-16  Dave Love  <fx@gnu.org>
+
+       * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Remove -nointrinsics.
+
+2002-05-16  Kenichi Handa  <handa@m17n.org>
+
+       * character.c (string_escape_byte8): Make multibyte string with
+       correct size.
+
+       * charset.c (Fmake_char): Delete unnecessary code.
+
+2002-05-14  Kenichi Handa  <handa@m17n.org>
+
+       * xfns.c (x_encode_text): Allocate coding.destination here, and
+       call encode_coding_object with dst_object Qnil.
+
+       * buffer.c (Fset_buffer_multibyte): Convert 8-bit bytes to
+       multibyte form correctly.
+
+       * fontset.c (fs_load_font): Check fontp->full_name (not fontname)
+       against Vfont_encoding_alist.
+
+       * coding.c (Fdecode_sjis_char): Fix typo (0x7F->0xFF).  Fix the
+       handling of charset list.
+       (encode_coding_iso_2022): Setup coding->safe_charsets in advance.
+       (decode_coding_object): Move point to coding->dst_pos before
+       calling post-read-conversion function.
+       (encode_coding_object): Give correct arguments to
+       pre-write-conversion.  Ignore the return value of
+       pre-write-conversion function.  Pay attention to the case that
+       pre-write-conversion changes the current buffer.  If dst_object is
+       Qt, even if coding->src_bytes is zero, allocate at least one byte
+       to coding->destination.
+
+       * coding.h (JIS_TO_SJIS): Fix typo (j1->s1, j2->s2).
+
+       * charset.c (Fmake_char): Make it more backward compatible.
+       (Fmap_charset_chars): Fix docstring.
+
+2002-05-13  Dave Love  <fx@gnu.org>
+
+       * coding.c: Doc fixes.
+       (Fdefine_coding_system_alias): Use names, not symbols, in
+       coding-system-alist.
+
+2002-05-13  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (free_realized_fontsets): Call Fclear_face_cache instead
+       of calling free_realized_face.
+
+2002-05-10  Yong Lu <lyongu@asia-infonet.com>
+
+       * charset.c (load_charset_map): Fix previous change.
+       (read_hex): Don't treat SPC as a comment starter.
+       (decode_char): If CODE_POINT_TO_INDEX retruns -1, always return
+       -1.
+       (Fdecode_char): Fix typo.
+
+2002-05-10  Kenichi Handa  <handa@m17n.org>
+
+       * charset.h (struct charset): New member `code_space_mask'.
+
+       * coding.c (coding_set_source): Delete the local variable
+       beg_byte.
+       (encode_coding_charset): Delete the local variable charset.
+       (Fdefine_coding_system_internal): Likewise.
+       (Fdefine_coding_system_internal): Setup
+       attrs[coding_attr_charset_valids] correctly.
+
+       * charset.c (CODE_POINT_TO_INDEX): Utilize `code_space_mask'
+       member to check if CODE is valid or not.
+       (Fdefine_charset_internal): Initialize `code_space_mask' member.
+       (encode_char): Before calling CODE_POINT_TO_INDEX, check if CODE
+       is within the range of charset->min_code and carset->max_code.
+
+2002-05-09  Dave Love  <fx@gnu.org>
+
+       * syntax.h (syntax_temp) [!__GNUC__]: Declare.
+
+       * dispextern.h (generate_ascii_font): Fix return type.
+
+       * xfaces.c (generate_ascii_font): Fix arg declaration.
+
+       * coding.c (coding_inherit_eol_type)
+       (Fset_terminal_coding_system_internal)
+       (Fset_safe_terminal_coding_system_internal): Fix arg declarations.
+
+2002-05-08  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding_charset, encode_coding_charset): Handle
+       multiple charsets correctly.
+
+2002-05-07  Kenichi Handa  <handa@m17n.org>
+
+       * search.c (boyer_moore): Fix handling of mulitbyte character
+       translation.
+
+       * xdisp.c (display_mode_element): When the variable `elt' is
+       changed, update `this' and `lisp_string'.
+
+2002-05-07  Kenichi Handa  <handa@m17n.org>
+
+       * buffer.c (Fset_buffer_multibyte): Fix 8-bit char handling.
+
+       * callproc.c (Fcall_process): Be sure to give the current buffer
+       to decode_coding_c_string.  Update PT and PT_BYTE after the
+       insertion.
+
+       * charset.c (struct charset_map_entries): New struct.
+       (load_charset_map): Renamed from parse_charset_map.  New args
+       entries and n_entries.  Caller changed.
+       (load_charset_map_from_file): Renamed from load_charset_map.
+       Caller changed.  New arg control_flag.  Call load_charset_map at
+       the tail.
+       (load_charset_map_from_vector): New function.
+       (Fdefine_charset_internal): Setup charset.compact_codes_p.
+       (encode_char): If the charset is compact, change a character index
+       to a code point.
+
+       * coding.c (coding_alloc_by_making_gap): Check the case that the
+       source and destination are the same correctly.
+       (decode_coding_raw_text): Set coding->consumed_char and
+       coding->consumed to 0.
+       (produce_chars): If coding->chars_at_source is nonzero, update
+       coding->consumed_char and coding->consumed before calling
+       alloc_destination.
+       (Fdefine_coding_system_alias): Register ALIAS in
+       Vcoding_system_alist.
+       (syms_of_coding): Define `no-convesion' coding system at the tail.
+
+       * fileio.c (Finsert_file_contents): Set coding_system instead of
+       val.  If the current buffer is multibyte, always call
+       decode_coding_gap.
+
+       * xfaces.c (try_font_list): Give higher priority to fontset's
+       family than face's family.
+
+2002-04-18  Kenichi Handa  <handa@m17n.org>
+
+       * callproc.c (Fcall_process): Be sure to give the current buffer
+       to decode_coding_c_string.
+
+       * xfaces.c (try_font_list): Give a family specified in a fontset
+       higher priority than a family specified in a face.
+
+2002-04-09  Kenichi Handa  <handa@m17n.org>
+
+       * fileio.c (Finsert_file_contents): Fix calculation of `inserted'.
+       Fix arguments to insert_from_buffer.
+
+       * xdisp.c (display_mode_element): Fix calculation of `bytepos'.
+
+2002-03-11  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (produce_chars): Set the variable `multibytep' correctly.
+       (decode_coding_gap): Set coding->dst_multibyte correctly.
+
+2002-03-07  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (encode_coding_utf_8): Initialize produced_chars to 0.
+       (decode_coding_utf_16): Fix converting high and low bytes to
+       code-point.
+       (encode_coding_utf_16): Substitute coding->default_char for
+       non-Unicode characters.
+       (decode_coding): Don't call record_insert here.
+       (setup_coding_system): Initialize `surrogate' of
+       coding->spec.utf_16 to 0.
+       (EMIT_ONE_BYTE): Fix for multibyte case.
+
+       * insdel.c (insert_from_gap): Call record_insert.
+
+2002-03-04  Kenichi Handa  <handa@m17n.org>
+
+       * casefiddle.c (casify_region): Fix multibyte case.
+
+       * character.c (c_string_width): Add return type `int'.
+       (char_string_with_unification): Arg ADVANCED deleted.
+
+       * character.h (CHAR_VALID_P): Don't call CHARACTERP.
+       (CHAR_STRING): Adjusted for the change of
+       char_string_with_unification.
+       (CHAR_STRING_ADVANCE): Make it do-while statement.
+
+       * chartab.c (sub_char_table_set_range): Optimized for the case
+       DEPTH == 3.  Add workaround code for a GCC optimization bug.
+
+       * charset.c (parse_charset_map): Remove an unused variable.
+
+       * coding.c: Delete unused variables.
+
+       * fileio.c (Finsert_file_contents): Set coding_system to Qnil
+       earlier.  If inserted is zero and the coding system doesn't
+       require flushing, don't call decode_coding_gap.
+
+       * syntax.h (SET_RAW_SYNTAX_ENTRY): Don't call make_number.
+
+2002-03-01  Kenichi Handa  <handa@m17n.org>
+
+       The following changes are for using Unicode as an internal
+       character model, and use UTF-8 format for buffer/string
+       representation.
+
+       * .gdbinit (xchartable): Adjusted for the change of char table
+       structure.
+       (xsubchartable, xcoding, xcharset, xcurbuf): New commands.
+
+       * Makefile.in (obj): Add character.o and chartab.o.
+       (lisp, shortlisp): Remove utf-8.elc:
+       (*.o): For many files, change dependency on charset.h to
+       character.h, and add dependency on character.h.
+       (character.o, chartab.o): New targets.
+
+       * abbrev.c, bytecode.c, casefiddle.c, cmds.c, dispnew.c, doc.c,
+       doprnt.c, dosfns.c, frame.c, marker.c, minibuf.c, msdos.c,
+       w16select.c, w32bdf.c, w32console.c: Include "character.h" instead
+       of "charset.h".
+
+       * dired.c, filelock.c: Include "character.h".
+
+       * alloc.c: Include "character.h" instead of "charset.h".
+       (Fmake_char_table): Moved to chartab.c.
+       (make_sub_char_table): Likewise.
+       (syms_of_alloc): Remove defsubr for Smake_char_table.
+
+       * buffer.c: Include "character.h" instead of "charset.h", don't
+       include "coding.h".
+       (Fset_buffer_multibyte): Adjuted for UTF-8.
+
+       * buffer.h: EXFUN Fbuffer_live_p.
+
+       * callproc.c: Include "character.h" instead of "charset.h".
+       (Fcall_process): Big change for the new code-conversion APIs.
+
+       * casetab.c: Include "character.h" instead of "charset.h".
+       (set_canon, set_identity, shuffle): Adjusted for the new
+       map_char_table spec.
+       (init_casetab_once): Call CHAR_TABLE_SET instead of directly
+       accessing the char table structure.
+
+       * chartab.c: New file that implements char table.
+
+       * category.c: Include "character.h".
+       (copy_category_entry): New function.
+       (copy_category_table): Call map_char_table and copy_category_entry.
+       (Fmake_category_table): Initialize all top-vel slots.
+       (char_category_set): New function.
+       (modify_lower_category_set): Deleted.
+       (Fmodify_category_entry): Call char_table_ref_and_range.
+
+       * category.h (CATEGORY_SET): Just call char_category_set.
+
+       * ccl.c: Include "character.h".
+       (Qccl, Qcclp): New variables.
+       (CCL_WRITE_CHAR): Alway treat the arg CH as a character even if
+       it's less than 256.
+       (CCL_WRITE_MULTIBYTE_CHAR): Deleted.
+       (CCL_WRITE_STRING, CCL_READ_CHAR): Adjusted for the change of SRC
+       and DST type.
+       (ccl_driver): Types of arguments changed.  Code adjusted for that.
+       (Fccl_execute, Fccl_execute_on_string): Adjusted for the change of
+       ccl_driver.
+       (syms_of_ccl): Intern and staticpro Qccl and Qcclp.
+
+       * ccl.h (struct ccl_program): Members eol_type and multibyte
+       deleted.  New members src_multibyte, dst_multibyte, consumed, and
+       produced.
+       (struct ccl_spec): Members decoder and encoder deleted.  New
+       memeber ccl.
+       (CODING_SPEC_CCL_PROGRAM): New macro.
+       (ccl_driver): Prototype updated.
+       (Qccl, Qcclp, Fccl_program_p): Extern them.
+       (CHECK_CCL_PROGRAM): New macro.
+
+       * character.c, character.h, chartab.c: New files.
+
+       * charset.c: Mostly re-written.  Character and multibyte sequence
+       handling codes are moved to character.c.
+
+       * charset.h: Mostly re-written.  Character and multibyte sequence
+       handling codes are moved to character.h.
+
+       * coding.c, coding.h: Mostly re-written.
+
+       * composite.c: Include "character.h" instead of "charset.h".
+       (CHAR_WIDTH): Moved to character.h.
+       (HASH_KEY, HASH_VALUE): Deleted.
+
+       * composite.h (enum composition_method): Order of enumeration
+       symbols changed.
+
+       * data.c: Include "character.h" instead of "charset.h".
+       (Faref): Call CHAR_TABLE_REF for a char table.
+       (Faset): Call CHAR_TABLE_SET for a char table.
+
+       * dispextern.h (free_realized_face, check_face_attribytes,
+       generate_ascii_font): Extern them.
+       (free_realized_multibyte_face): Extern deleted.
+
+       * disptab.h (DISP_CHAR_VECTOR): Adjusted for the change of char
+       table structure.
+
+       * editfns.c: Include "character.h" instead of "charset.h".
+       (Fchar_to_string): Always call CHAR_STRING.
+
+       * emacs.c (main): Call init_charset_once, init_charset,
+       syms_of_chartab, and syms_of_character.
+
+       * fileio.c: Include "character.h" instead of "charset.h".
+       (Finsert_file_contents): Big change for the new code-conversion
+       API.
+       (choose_write_coding_system): Likewise.
+       (Fwrite_region): Likewise.
+       (build_annotations_2): Deleted.
+       (e_write): Big change for the new code-conversion API.
+
+       * fns.c: Include "character.h" instead of "charset.h".
+       (copy_sub_char_table): Moved to chartab.c.
+       (Fcopy_sequence): Call copy_char_table for a char table.
+       (concat): Delete codes calling count_multibyte.
+       (string_char_to_byte): Adjusted for the new multibyte form.
+       (string_byte_to_char): Likewise.
+       (internal_equal): Adjusted for the change of char table structure.
+       (Fchar_table_subtype, Fchar_table_parent, Fset_char_table_parent,
+       Fchar_table_extra_slot, Fset_char_table_extra_slot,
+       Fchar_table_range, Fset_char_table_range, Fset_char_table_default,
+       char_table_translate, optimize_sub_char_table,
+       Foptimize_char_table, map_char_table, Fmap_char_table): Moved to
+       chartab.c.
+       (char_table_ref_and_index): Deleted.
+       (HASH_KEY, HASH_VALUE): Moved to lisp.h.
+       (Fmd5): Call preferred_coding_system instead of accessing
+       Vcoding_category_list.  Adjusted for the new code-conversion API.
+       (syms_of_fns): Defsubr for char table related functions moved to
+       chartab.c.
+
+       * fontset.c: Mostly re-written.
+
+       * fontset.h (struct font_info): Type of the member encoding_type
+       changed.
+       (enum FONT_SPEC_INDEX): New enum.
+       (fontset_font_pattern, fs_load_font): Prototype updated.
+       (FS_LOAD_FONT): Adjusted for the change of fs_load_font.
+
+       * indent.c: Include "character.h" instead of "charset.h".
+       (MULTIBYTE_BYTES_WIDTH): Call CHAR_WIDTH instead of
+       WIDTH_BY_CHAR_HEAD.
+
+       * insdel.c: Include "character.h" instead of "charset.h".
+       (copy_text): Don't refer to Vnonascii_translation_table.
+       (insert_from_gap): New function.
+
+       * keyboard.c: Include "character.h" instead of "charset.h".
+       (command_loop_1): Never call direct_output_forward_char before
+       a non-ASCII character.
+       (read_char): If Vkeyboard_translate_table is a char table, always
+       translated a character.
+
+       * keymap.c: Include "character.h".
+       (store_in_keymap): Handle the case that IDX is a cons.
+       (Fdefine_key): Handle the case that KEY is a cons and the car part
+       is also a cons (range).
+       (push_key_description): Adjusted for the new character code.
+       (describe_vector): Call describe_char_table for a char table.
+       (describe_char_table): New function.
+
+       * keymap.h (describe_char_table): Extern it.
+
+       * lisp.h (enum pvec_type): New member PVEC_SUB_CHAR_TABLE.
+       (XSUB_CHAR_TABLE, XSETSUB_CHAR_TABLE): New macros.
+       (CHAR_TABLE_ORDINARY_SLOTS, CHAR_TABLE_SINGLE_BYTE_SLOTS,
+       SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS):
+       Deleted.
+       (CHAR_TABLE_REF, CHAR_TABLE_SET): Adjusted for the new char table
+       structure.
+       (CHAR_TABLE_TRANSLATE): Just call char_table_translate.
+       (CHARTAB_SIZE_BITS_0, CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2,
+       CHARTAB_SIZE_BITS_3): New macros.
+       (chartab_size): Extern it.
+       (struct Lisp_Char_Table): Re-designed.
+       (struct Lisp_Sub_Char_Table): New structure.
+       (HASH_KEY, HASH_VALUE): Moved from fns.c.
+       (CHARACTERBITS): Defined as 22.
+       (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the above change.
+       (SUB_CHAR_TABLE_P): Check PVEC_CHAR_TABLE.
+       (GC_SUB_CHAR_TABLE_P): New macro.
+       (Fencode_coding_string, Fdecode_coding_string): EXFUN Updated.
+       (code_convert_string_norecord): Extern deleted.
+       (init_character_once, syms_of_character, init_charset,
+       syms_of_composite, Qeq, Fmakehash, insert_from_gap): Extern them.
+
+       * lread.c: Include "character.h".
+       (read_multibyte): New arg NBYTES.
+       (read_escape): The meaning of returned *BYTEREP changed.
+       (to_multibyte): Deleted.
+       (read1): Adjuted the handling of char table and string.
+
+       * print.c: Include "character.h" instead of "charset.h".
+       (print_string): Convert 8-bit raw bytes to octal form by
+       string_escape_byte8.
+       (print_object): Adjusted for the new multibyte form.  Print 8-bit
+       raw bytes always in octal form.  Handle sub char table correctly.
+
+       * process.c: Include "character.h" instead of "charset.h".
+       (read_process_output): Adjusted for the new code-conversion API.
+       (send_process): Likewise.
+
+       * puresize.h (BASE_PURESIZE): Increased.
+
+       * regex.c: Include "character.h" instead of "charset.h".
+       (BYTE8_TO_CHAR, CHAR_BYTE8_P) [not emacs]: New dummy macros.
+       (regex_compile): Accept a range whose starting and ending
+       character have different leading bytes.
+       (analyse_first): Adjusted for the above change.
+
+       * search.c: Include "character.h" instead of "charset.h".
+       (search_buffer, boyer_moore): Adjusted for the new multibyte form.
+       (Freplace_match): Adjusted for the change of
+       multibyte_char_to_unibyte.
+
+       * syntax.c: Include "character.h" instead of "charset.h".
+       (syntax_parent_lookup): Deleted.
+       (Fmodify_syntax_entry): Accept a cons as CHAR.
+       (skip_chars): Adjusted for the new multibyte form.
+       (init_syntax_once): Call char_table_set_range instead of directly
+       accessing the structure of a char table.
+
+       * syntax.h (SET_RAW_SYNTAX_ENTRY): Call CHAR_TABLE_SET.
+       (SYNTAX_ENTRY_FOLLOW_PARENT): Macro deleted.
+       (SET_RAW_SYNTAX_ENTRY_RANGE): New macro.
+       (SYNTAX_ENTRY_INT): Call CHAR_TABLE_REF.
+
+       * term.c: Include "buffer.h" and "character.h".
+       (encode_terminal_code): Adjusted for the new code-conversion API.
+       (write_glyphs): Likewise.
+       (produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH.
+
+       * w32term.c (x_new_font): Adjusted for the change of FS_LOAD_FONT.
+
+       * xdisp.c: Include "character.h".
+       (get_next_display_element): Adjusted for the new multibyte form.
+       (disp_char_vector): Adjusted for the new char table structure.
+       (decode_mode_spec_coding): Adjusted for the new structure of
+       coding system.
+       (decode_mode_spec): Adjusted for the new code-conversion API.
+
+       * xfaces.c: Include "character.h" instead of "charset.h".
+       (load_face_font): Adjusted for the change of choose_face_font and
+       FS_LOAD_FONT.
+       (generate_ascii_font): New function.
+       (set_lface_from_font_name): Adjusted for the change of
+       FS_LOAD_FONT.
+       (set_font_frame_param): Adjusted for the change of
+       choose_face_font.
+       (free_realized_face): Make it public.
+       (free_realized_faces_for_fontset): Renamed from
+       free_realized_multibyte_face.  Free also faces realized for ASCII.
+       (choose_face_font): Argments changed.  Adjusted for the change of
+       fontset_font_pattern and FS_LOAD_FONT.
+
+       * xfns.c: Include "character.h".
+       (x_encode_text): Adjusted for the new code-conversion API.
+
+       * xselect.c: Don't include "charset.h".
+       (selection_data_to_lisp_data): Adjusted for the new code
+       covnersion API.
+
+       * xterm.c: Include "character.h".
+       (x_encode_char): New argument CHARSET.  Caller changed.
+       (x_get_char_face_and_encoding): Call ENCODE_CHAR instead of
+       SPLIT_CHAR.
+       (x_get_glyph_face_and_encoding): Likewise.
+       (x_produce_glyphs): Don't check Vnonascii_translation_table Call
+       CHAR_WIDTH instead of CHARSET_WIDTH.
+       (XTread_socket): Adjusted for the new code-conversion API.
+       (x_new_font): Adjusted for the change of FS_LOAD_FONT.
+       (x_load_font): Adjusted for the change of struct font.
+
+;; Local Variables:
+;; coding: iso-2022-7bit
+;; End:
+
+    Copyright (C) 2002 Free Software Foundation, Inc.
+  Copying and distribution of this file, with or without modification,
+  are permitted provided the copyright notice and this notice are preserved.
+
+;;; arch-tag: 1bff38bd-2030-46ae-9d18-f15e6006b665
index fd8afdc99ba8152a16e49f3a170bbdd7a43543cc..e1e5d457fc23fe1516d3da4fe4ec1d5d7aa141e9 100644 (file)
@@ -51,6 +51,7 @@ LIBOBJS = @LIBOBJS@
 dot = .
 dotdot = ${dot}${dot}
 lispsource = ${srcdir}/$(dot)$(dot)/lisp/
+admindir = $(srcdir)/$(dot)$(dot)/admin/
 libsrc = $(dot)$(dot)/lib-src/
 etc = $(dot)$(dot)/etc/
 oldXMenudir = $(dot)$(dot)/oldXMenu/
@@ -281,7 +282,7 @@ DBUS_OBJ = dbusbind.o
 
 /* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
    since it may have -I options that should override those two.  */
-ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${CFLAGS}
+ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@
 .c.o:
        $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
 
@@ -590,10 +591,29 @@ emacsapp = $(PWD)/$(mac)Emacs.app/
 emacsappsrc = ${srcdir}/../mac/Emacs.app/
 #endif
 
+#ifdef HAVE_WINDOW_SYSTEM
+FONTSRC = font.h
+#ifdef USE_FONT_BACKEND
+#ifdef HAVE_X_WINDOWS
+#if defined (HAVE_XFT)
+FONTOBJ = font.o xfont.o ftfont.o xftfont.o ftxfont.o
+#elif defined (HAVE_FREETYPE)
+FONTOBJ = font.o xfont.o ftfont.o ftxfont.o
+#else /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
+FONTOBJ = font.o xfont.o
+#endif /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
+#else /* ! HAVE_X_WINDOWS */
+FONTOBJ = font.o
+#endif /* ! HAVE_X_WINDOWS */
+#else  /* ! USE_FONT_BACKEND */
+FONTOBJ = font.o
+#endif /* ! USE_FONT_BACKEND */
+#endif /* HAVE_WINDOW_SYSTEM */
+
 /* lastfile must follow all files
    whose initialized data areas should be dumped as pure by dump-emacs.  */
 obj=    dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
-       charset.o coding.o category.o ccl.o \
+       charset.o coding.o category.o ccl.o character.o chartab.o \
        cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
        emacs.o keyboard.o macros.o keymap.o sysdep.o \
        buffer.o filelock.o insdel.o marker.o \
@@ -605,7 +625,7 @@ obj=    dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
        process.o callproc.o \
        region-cache.o sound.o atimer.o \
        doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
-       $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ)
+       $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ) $(FONTOBJ)
 
 /* Object files used on some machine or other.
    These go in the DOC file on all machines
@@ -614,7 +634,7 @@ SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
   xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
   mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
   w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
-  w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
+  w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONTOBJ)
 
 
 #ifdef TERMINFO
@@ -736,6 +756,7 @@ lisp= \
        ${lispsource}buff-menu.elc \
        ${lispsource}button.elc \
        ${lispsource}emacs-lisp/byte-run.elc \
+       ${lispsource}composite.elc \
        ${lispsource}cus-face.elc \
        ${lispsource}cus-start.elc \
        ${lispsource}custom.elc \
@@ -763,20 +784,11 @@ lisp= \
        ${lispsource}international/mule-conf.el \
        ${lispsource}international/mule-cmds.elc \
        ${lispsource}international/characters.elc \
-       ${lispsource}international/ucs-tables.elc \
-       ${lispsource}international/utf-8.elc \
-       ${lispsource}international/utf-16.elc \
-       ${lispsource}international/latin-1.el \
-       ${lispsource}international/latin-2.el \
-       ${lispsource}international/latin-3.el \
-       ${lispsource}international/latin-4.el \
-       ${lispsource}international/latin-5.el \
-       ${lispsource}international/latin-8.el \
-       ${lispsource}international/latin-9.el \
+       ${lispsource}international/charprop.el \
        ${lispsource}case-table.elc \
-       ${lispsource}language/chinese.elc \
-       ${lispsource}language/cyrillic.elc \
-       ${lispsource}language/indian.elc \
+       ${lispsource}language/chinese.el \
+       ${lispsource}language/cyrillic.el \
+       ${lispsource}language/indian.el \
        ${lispsource}language/devanagari.el \
        ${lispsource}language/kannada.el \
        ${lispsource}language/malayalam.el \
@@ -792,9 +804,10 @@ lisp= \
        ${lispsource}language/japanese.el \
        ${lispsource}language/korean.el \
        ${lispsource}language/lao.el \
+       ${lispsource}language/tai-viet.el \
        ${lispsource}language/thai.el \
        ${lispsource}language/tibetan.elc \
-       ${lispsource}language/vietnamese.elc \
+       ${lispsource}language/vietnamese.el \
        ${lispsource}language/misc-lang.el \
        ${lispsource}language/utf-8-lang.el \
        ${lispsource}language/georgian.el \
@@ -835,6 +848,7 @@ shortlisp= \
        ../lisp/buff-menu.elc \
        ../lisp/button.elc \
        ../lisp/emacs-lisp/byte-run.elc \
+       ../lisp/composite.elc \
        ../lisp/cus-face.elc \
        ../lisp/cus-start.elc \
        ../lisp/custom.elc \
@@ -860,20 +874,10 @@ shortlisp= \
        ../lisp/international/mule-conf.el \
        ../lisp/international/mule-cmds.elc \
        ../lisp/international/characters.elc \
-       ../lisp/international/ucs-tables.elc \
-       ../lisp/international/utf-8.elc \
-       ../lisp/international/utf-16.elc \
-       ../lisp/international/latin-1.el \
-       ../lisp/international/latin-2.el \
-       ../lisp/international/latin-3.el \
-       ../lisp/international/latin-4.el \
-       ../lisp/international/latin-5.el \
-       ../lisp/international/latin-8.el \
-       ../lisp/international/latin-9.el \
        ../lisp/case-table.elc \
-       ../lisp/language/chinese.elc \
-       ../lisp/language/cyrillic.elc \
-       ../lisp/language/indian.elc \
+       ../lisp/language/chinese.el \
+       ../lisp/language/cyrillic.el \
+       ../lisp/language/indian.el \
        ../lisp/language/devanagari.el \
        ../lisp/language/kannada.el \
        ../lisp/language/malayalam.el \
@@ -889,9 +893,10 @@ shortlisp= \
        ../lisp/language/japanese.el \
        ../lisp/language/korean.el \
        ../lisp/language/lao.el \
+       ../lisp/language/tai-viet.el \
        ../lisp/language/thai.el \
        ../lisp/language/tibetan.elc \
-       ../lisp/language/vietnamese.elc \
+       ../lisp/language/vietnamese.el \
        ../lisp/language/misc-lang.el \
        ../lisp/language/utf-8-lang.el \
        ../lisp/language/georgian.el \
@@ -946,8 +951,9 @@ SOME_MACHINE_LISP = ${dotdot}/lisp/mouse.elc \
    with GCC, we might need gnulib again after them.  */
 LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
    LIBGPM LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
-   LIBS_DEBUG $(GETLOADAVG_LIBS) $(GNULIB_VAR) LIB_MATH LIB_STANDARD \
-   $(GNULIB_VAR)
+   LIBS_DEBUG $(GETLOADAVG_LIBS) \
+   @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
+   $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)
 
 /* Enable recompilation of certain other files depending on system type.  */
 
@@ -959,7 +965,11 @@ LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
 #define OBJECTS_MACHINE
 #endif
 
-RUN_TEMACS = ./temacs
+#ifdef HAVE_SHM
+RUN_TEMACS = `/bin/pwd`/temacs -nl
+#else
+RUN_TEMACS = `/bin/pwd`/temacs
+#endif
 
 all: emacs${EXEEXT} OTHER_FILES
 
@@ -968,11 +978,7 @@ emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
        rm -f emacs${EXEEXT}
        ln temacs${EXEEXT} emacs${EXEEXT}
 #else
-#ifdef HAVE_SHM
-       LC_ALL=C $(RUN_TEMACS) -nl -batch -l loadup dump
-#else /* ! defined (HAVE_SHM) */
        LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
-#endif /* ! defined (HAVE_SHM) */
 #endif /* ! defined (CANNOT_DUMP) */
        -./emacs -q -batch -f list-load-path-shadows
 
@@ -992,6 +998,16 @@ ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LIS
 ${libsrc}make-docfile${EXEEXT}:
        cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
 
+#ifdef HAVE_UNIDATA
+UNIDATA=${admindir}unidata/UnicodeData.txt
+
+${lispsource}international/charprop.el: temacs${EXEEXT} ${UNIDATA}
+       RUNEMACS="$(RUN_TEMACS)"; \
+       cd ${admindir}unidata; \
+       $(MAKE) $(MFLAGS) \
+         RUNEMACS="$${RUNEMACS}" DSTDIR=${lispsource}international
+#endif
+
 /* Some systems define this to cause parallel Make-ing.  */
 #ifndef MAKE_PARALLEL
 #define MAKE_PARALLEL
@@ -1092,70 +1108,81 @@ stamp-oldxmenu:
    it is so often changed in ways that do not require any recompilation
    and so rarely changed in ways that do require any.  */
 
+abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h character.h \
+       syntax.h $(config_h)
 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
-   dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h charset.h \
+   dispextern.h $(INTERVAL_SRC) blockinput.h atimer.h systime.h character.h \
    $(config_h)
 callint.o: callint.c window.h commands.h buffer.h keymap.h \
    keyboard.h dispextern.h $(config_h)
 callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
-       process.h systty.h syssignal.h charset.h coding.h ccl.h msdos.h \
+       process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
         composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
-casefiddle.o: casefiddle.c syntax.h commands.h buffer.h composite.h \
+casefiddle.o: casefiddle.c syntax.h commands.h buffer.h character.h \
+   composite.h \
        charset.h keymap.h $(config_h)
 casetab.o: casetab.c buffer.h $(config_h)
-category.o: category.c category.h buffer.h charset.h keymap.h $(config_h)
-ccl.o: ccl.c ccl.h charset.h coding.h $(config_h)
-charset.o: charset.c charset.h buffer.h coding.h composite.h disptab.h \
-       $(config_h)
-coding.o: coding.c coding.h ccl.h buffer.h charset.h intervals.h composite.h \
+category.o: category.c category.h buffer.h charset.h keymap.h  \
+       character.h $(config_h)
+ccl.o: ccl.c ccl.h charset.h character.h coding.h $(config_h)
+character.o: character.c character.h buffer.h charset.h composite.h disptab.h \
+   $(config.h)
+charset.o: charset.c charset.h character.h buffer.h coding.h composite.h \
+   disptab.h $(config_h)
+chartab.o: charset.h character.h $(config.h)
+coding.o: coding.c coding.h ccl.h buffer.h character.h charset.h intervals.h composite.h \
        window.h dispextern.h frame.h termhooks.h $(config_h)
 cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
-cmds.o: cmds.c syntax.h buffer.h charset.h commands.h window.h $(config_h) \
+cmds.o: cmds.c syntax.h buffer.h character.h commands.h window.h $(config_h) \
        msdos.h dispextern.h keyboard.h keymap.h
 pre-crt0.o: pre-crt0.c
 ecrt0.o: ecrt0.c $(config_h)
        CRT0_COMPILE ${srcdir}/ecrt0.c
-dired.o: dired.c commands.h buffer.h $(config_h) charset.h coding.h regex.h \
-   systime.h blockinput.h atimer.h
+dired.o: dired.c commands.h buffer.h $(config_h) character.h charset.h \
+   coding.h regex.h systime.h blockinput.h atimer.h
 dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
    window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
    disptab.h indent.h intervals.h \
-   xterm.h blockinput.h atimer.h charset.h msdos.h composite.h keyboard.h \
+   xterm.h blockinput.h atimer.h character.h msdos.h composite.h keyboard.h \
    $(config_h)
-doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h charset.h
-doprnt.o: doprnt.c charset.h $(config_h)
+doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h character.h
+doprnt.o: doprnt.c character.h $(config_h)
 dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
    msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
    $(config_h)
-editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
+editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
    coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
 emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
    termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h) \
    window.h dispextern.h keyboard.h keymap.h
-fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) charset.h \
+fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
    coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
-filelock.o: filelock.c buffer.h charset.h coding.h systime.h epaths.h $(config_h)
+filelock.o: filelock.c buffer.h character.h charset.h coding.h systime.h \
+   epaths.h $(config_h)
 filemode.o: filemode.c  $(config_h)
 frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
-   blockinput.h atimer.h systime.h buffer.h charset.h fontset.h \
+   blockinput.h atimer.h systime.h buffer.h character.h fontset.h \
    msdos.h dosfns.h dispextern.h w32term.h macterm.h termchar.h $(config_h)
 fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
-fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h \
-   keyboard.h termhooks.h $(config_h)
+font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
+   font.h $(config_h)
+ftfont.o: dispextern.h frame.h character.h charset.h font.h $(config_h)
+fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h character.h \
+   charset.h frame.h keyboard.h termhooks.h $(FONTSRC) $(config_h)
 getloadavg.o: getloadavg.c $(config_h)
 image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
    systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h $(config_h)
 indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
-   termopts.h disptab.h region-cache.h charset.h composite.h dispextern.h \
-   keyboard.h
-insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h charset.h \
+   termopts.h disptab.h region-cache.h character.h category.h composite.h \
+   dispextern.h keyboard.h
+insdel.o: insdel.c window.h buffer.h $(INTERVAL_SRC) blockinput.h character.h \
    dispextern.h atimer.h systime.h region-cache.h $(config_h)
-keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h charset.h \
+keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
    commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
    systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
    atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
 keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
-   atimer.h systime.h puresize.h charset.h intervals.h keymap.h window.h \
+   atimer.h systime.h puresize.h character.h intervals.h keymap.h window.h \
    $(config_h)
 lastfile.o: lastfile.c  $(config_h)
 macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
@@ -1164,35 +1191,37 @@ malloc.o: malloc.c $(config_h)
 gmalloc.o: gmalloc.c $(config_h)
 ralloc.o: ralloc.c $(config_h)
 vm-limit.o: vm-limit.c mem-limits.h $(config_h)
-marker.o: marker.c buffer.h charset.h $(config_h)
+marker.o: marker.c buffer.h character.h $(config_h)
 md5.o: md5.c md5.h $(config_h)
 minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
-   buffer.h commands.h charset.h msdos.h $(INTERVAL_SRC) keymap.h \
+   buffer.h commands.h character.h msdos.h $(INTERVAL_SRC) keymap.h \
    termhooks.h $(config_h)
 mktime.o: mktime.c $(config_h)
 msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
-   termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h \
+   termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
    keyboard.h intervals.h buffer.h commands.h blockinput.h atimer.h $(config_h)
 process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
    commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
    blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
    keyboard.h $(config_h)
-regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h charset.h
+regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h character.h \
+   charset.h
 region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
 scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
    termhooks.h $(config_h)
 search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
-   blockinput.h atimer.h systime.h category.h charset.h composite.h \
-   $(INTERVAL_SRC) $(config_h)
+   blockinput.h atimer.h systime.h category.h character.h charset.h \
+   composite.h $(INTERVAL_SRC) \
+   $(config_h)
 strftime.o: strftime.c $(config_h)
-syntax.o: syntax.c syntax.h buffer.h commands.h category.h charset.h \
+syntax.o: syntax.c syntax.h buffer.h commands.h category.h character.h \
    composite.h keymap.h regex.h $(INTERVAL_SRC) $(config_h)
 sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
    process.h dispextern.h termhooks.h termchar.h termopts.h \
    frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
 term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
-   disptab.h dispextern.h keyboard.h charset.h coding.h ccl.h msdos.h \
-   window.h keymap.h blockinput.h atimer.h systime.h
+   disptab.h dispextern.h keyboard.h character.h charset.h coding.h ccl.h \
+   msdos.h window.h keymap.h blockinput.h atimer.h systime.h
 termcap.o: termcap.c $(config_h)
 terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
    keyboard.h $(config_h)
@@ -1211,24 +1240,32 @@ window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
    disptab.h keyboard.h dispextern.h msdos.h composite.h \
    keymap.h blockinput.h atimer.h systime.h $(INTERVAL_SRC) \
    xterm.h w32term.h macterm.h $(config_h)
-xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h coding.h \
-   termchar.h frame.h window.h disptab.h termhooks.h charset.h $(config_h) \
-   keyboard.h $(INTERVAL_SRC) region-cache.h xterm.h w32term.h macterm.h \
-   msdos.h composite.h fontset.h blockinput.h atimer.h systime.h keymap.h
-xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
-   window.h charset.h msdos.h dosfns.h composite.h atimer.h systime.h \
-   keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) termchar.h \
-   termhooks.h $(config_h)
+xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
+   coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h     \
+   charset.h $(config_h) keyboard.h $(INTERVAL_SRC) region-cache.h xterm.h    \
+   w32term.h macterm.h msdos.h composite.h fontset.h blockinput.h atimer.h    \
+   systime.h keymap.h $(FONTSRC)
+xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h  \
+   window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h        \
+   systime.h keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC)  \
+   termchar.h termhooks.h $(FONTSRC) $(config_h)
 xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
    $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
-   charset.h gtkutil.h termchar.h termhooks.h $(config_h)
+   character.h charset.h coding.h gtkutil.h $(config_h) termhooks.h \
+   fontset.h termchar.h $(FONTSRC)
+xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
+   font.h $(config_h)
+xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
+   font.h $(config_h)
+ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
+   font.h $(config_h)
 xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
-   keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h \
-   gtkutil.h msdos.h coding.h $(config_h)
+   charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h \
+   systime.h gtkutil.h msdos.h coding.h $(config_h)
 xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
-  dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
-  keyboard.h gnu.h charset.h ccl.h fontset.h composite.h \
-  coding.h process.h gtkutil.h $(config_h)
+   dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
+   keyboard.h gnu.h character.h charset.h ccl.h fontset.h composite.h \
+   coding.h process.h gtkutil.h $(FONTSRC) $(config_h)
 xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
   buffer.h atimer.h systime.h termhooks.h $(config_h)
 xrdb.o: xrdb.c $(config_h) epaths.h
@@ -1246,28 +1283,30 @@ atimer.o: atimer.c atimer.h systime.h $(config_h)
 /* The files of Lisp proper */
 
 alloc.o: alloc.c process.h frame.h window.h buffer.h  puresize.h syssignal.h keyboard.h \
- blockinput.h atimer.h systime.h charset.h dispextern.h $(config_h) $(INTERVAL_SRC)
-bytecode.o: bytecode.c buffer.h syntax.h charset.h window.h dispextern.h \
+ blockinput.h atimer.h systime.h character.h dispextern.h $(config_h) \
+ $(INTERVAL_SRC)
+bytecode.o: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
   frame.h xterm.h $(config_h)
-data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h frame.h termhooks.h $(config_h)
+data.o: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
+   termhooks.h $(config_h)
 eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
   dispextern.h $(config_h)
 floatfns.o: floatfns.c $(config_h)
-fns.o: fns.c commands.h $(config_h) frame.h buffer.h charset.h keyboard.h \
+fns.o: fns.c commands.h $(config_h) frame.h buffer.h character.h keyboard.h \
  keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
  blockinput.h atimer.h systime.h xterm.h termhooks.h
-print.o: print.c process.h frame.h window.h buffer.h keyboard.h charset.h \
+print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
    $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
    blockinput.h atimer.h systime.h
-lread.o: lread.c commands.h keyboard.h buffer.h epaths.h charset.h \
- $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
+lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
charset.h $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
 
 /* Text properties support */
 textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVAL_SRC) \
        $(config_h)
 intervals.o: intervals.c buffer.h $(INTERVAL_SRC) keyboard.h puresize.h \
        keymap.h $(config_h)
-composite.o: composite.c buffer.h  charset.h $(INTERVAL_SRC) $(config_h)
+composite.o: composite.c buffer.h  character.h $(INTERVAL_SRC) $(config_h)
 
 /* System-specific programs to be made.
    OTHER_FILES and OBJECTS_MACHINE
@@ -1370,14 +1409,10 @@ bootstrap: bootstrap-emacs${EXEEXT}
 /* Dump an Emacs executable named bootstrap-emacs containing the
    files from loadup.el in source form.  */
 
-bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
+bootstrap-emacs${EXEEXT}: temacs${EXEEXT} ${lispsource}international/charprop.el
 #ifdef CANNOT_DUMP
        ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
 #else
-#ifdef HAVE_SHM
-       $(RUN_TEMACS) -nl -batch -l loadup bootstrap
-#else /* ! defined (HAVE_SHM) */
        $(RUN_TEMACS) --batch --load loadup bootstrap
-#endif /* ! defined (HAVE_SHM) */
        mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
 #endif /* ! defined (CANNOT_DUMP) */
index 2d87e1806f0a32e11ae976fa569ef892e31d0ee1..88f37ee363cffa4dc062eafc51709aa732b7c2ad 100644 (file)
@@ -53,7 +53,7 @@ Boston, MA 02110-1301, USA.  */
 #include "keyboard.h"
 #include "frame.h"
 #include "blockinput.h"
-#include "charset.h"
+#include "character.h"
 #include "syssignal.h"
 #include "termhooks.h"         /* For struct terminal.  */
 #include <setjmp.h>
@@ -502,7 +502,7 @@ struct gcpro *gcprolist;
 /* Addresses of staticpro'd variables.  Initialize it to a nonzero
    value; otherwise some compilers put it into BSS.  */
 
-#define NSTATICS 1280
+#define NSTATICS 0x600
 static Lisp_Object *staticvec[NSTATICS] = {&Vpurify_flag};
 
 /* Index of next unused slot in staticvec.  */
@@ -2288,7 +2288,7 @@ INIT must be an integer that represents a character.  */)
   CHECK_NUMBER (init);
 
   c = XINT (init);
-  if (SINGLE_BYTE_CHAR_P (c))
+  if (ASCII_CHAR_P (c))
     {
       nbytes = XINT (length);
       val = make_uninit_string (nbytes);
@@ -3052,51 +3052,6 @@ See also the function `vector'.  */)
 }
 
 
-DEFUN ("make-char-table", Fmake_char_table, Smake_char_table, 1, 2, 0,
-       doc: /* Return a newly created char-table, with purpose PURPOSE.
-Each element is initialized to INIT, which defaults to nil.
-PURPOSE should be a symbol which has a `char-table-extra-slots' property.
-The property's value should be an integer between 0 and 10.  */)
-     (purpose, init)
-     register Lisp_Object purpose, init;
-{
-  Lisp_Object vector;
-  Lisp_Object n;
-  CHECK_SYMBOL (purpose);
-  n = Fget (purpose, Qchar_table_extra_slots);
-  CHECK_NUMBER (n);
-  if (XINT (n) < 0 || XINT (n) > 10)
-    args_out_of_range (n, Qnil);
-  /* Add 2 to the size for the defalt and parent slots.  */
-  vector = Fmake_vector (make_number (CHAR_TABLE_STANDARD_SLOTS + XINT (n)),
-                        init);
-  XSETPVECTYPE (XVECTOR (vector), PVEC_CHAR_TABLE);
-  XCHAR_TABLE (vector)->top = Qt;
-  XCHAR_TABLE (vector)->parent = Qnil;
-  XCHAR_TABLE (vector)->purpose = purpose;
-  XSETCHAR_TABLE (vector, XCHAR_TABLE (vector));
-  return vector;
-}
-
-
-/* Return a newly created sub char table with slots initialized by INIT.
-   Since a sub char table does not appear as a top level Emacs Lisp
-   object, we don't need a Lisp interface to make it.  */
-
-Lisp_Object
-make_sub_char_table (init)
-     Lisp_Object init;
-{
-  Lisp_Object vector
-    = Fmake_vector (make_number (SUB_CHAR_TABLE_STANDARD_SLOTS), init);
-  XSETPVECTYPE (XVECTOR (vector), PVEC_CHAR_TABLE);
-  XCHAR_TABLE (vector)->top = Qnil;
-  XCHAR_TABLE (vector)->defalt = Qnil;
-  XSETCHAR_TABLE (vector, XCHAR_TABLE (vector));
-  return vector;
-}
-
-
 DEFUN ("vector", Fvector, Svector, 0, MANY, 0,
        doc: /* Return a newly created vector with specified arguments as elements.
 Any number of arguments, even zero arguments, are allowed.
@@ -4161,7 +4116,7 @@ mark_maybe_object (obj)
     {
       int mark_p = 0;
 
-      switch (XGCTYPE (obj))
+      switch (XTYPE (obj))
        {
        case Lisp_String:
          mark_p = (live_string_p (m, po)
@@ -4181,13 +4136,13 @@ mark_maybe_object (obj)
          break;
 
        case Lisp_Vectorlike:
-         /* Note: can't check GC_BUFFERP before we know it's a
+         /* Note: can't check BUFFERP before we know it's a
             buffer because checking that dereferences the pointer
             PO which might point anywhere.  */
          if (live_vector_p (m, po))
-           mark_p = !GC_SUBRP (obj) && !VECTOR_MARKED_P (XVECTOR (obj));
+           mark_p = !SUBRP (obj) && !VECTOR_MARKED_P (XVECTOR (obj));
          else if (live_buffer_p (m, po))
-           mark_p = GC_BUFFERP (obj) && !VECTOR_MARKED_P (XBUFFER (obj));
+           mark_p = BUFFERP (obj) && !VECTOR_MARKED_P (XBUFFER (obj));
          break;
 
        case Lisp_Misc:
@@ -4278,7 +4233,7 @@ mark_maybe_pointer (p)
            {
              Lisp_Object tem;
              XSETVECTOR (tem, p);
-             if (!GC_SUBRP (tem) && !VECTOR_MARKED_P (XVECTOR (tem)))
+             if (!SUBRP (tem) && !VECTOR_MARKED_P (XVECTOR (tem)))
                obj = tem;
            }
          break;
@@ -4287,7 +4242,7 @@ mark_maybe_pointer (p)
          abort ();
        }
 
-      if (!GC_NILP (obj))
+      if (!NILP (obj))
        mark_object (obj);
     }
 }
@@ -5051,7 +5006,8 @@ returns nil, because real GC can't be done.  */)
          truncate_undo_list (nextb);
 
        /* Shrink buffer gaps, but skip indirect and dead buffers.  */
-       if (nextb->base_buffer == 0 && !NILP (nextb->name))
+       if (nextb->base_buffer == 0 && !NILP (nextb->name)
+           && ! nextb->text->inhibit_shrinking)
          {
            /* If a buffer's gap size is more than 10% of the buffer
               size, or larger than 2000 bytes, then shrink it
@@ -5190,8 +5146,8 @@ returns nil, because real GC can't be done.  */)
            prev = Qnil;
            while (CONSP (tail))
              {
-               if (GC_CONSP (XCAR (tail))
-                   && GC_MARKERP (XCAR (XCAR (tail)))
+               if (CONSP (XCAR (tail))
+                   && MARKERP (XCAR (XCAR (tail)))
                    && !XMARKER (XCAR (XCAR (tail)))->gcmarkbit)
                  {
                    if (NILP (prev))
@@ -5340,7 +5296,7 @@ mark_glyph_matrix (matrix)
            struct glyph *end_glyph = glyph + row->used[area];
 
            for (; glyph < end_glyph; ++glyph)
-             if (GC_STRINGP (glyph->object)
+             if (STRINGP (glyph->object)
                  && !STRING_MARKED_P (XSTRING (glyph->object)))
                mark_object (glyph->object);
          }
@@ -5496,7 +5452,7 @@ mark_object (arg)
 
 #endif /* not GC_CHECK_MARKED_OBJECTS */
 
-  switch (SWITCH_ENUM_CAST (XGCTYPE (obj)))
+  switch (SWITCH_ENUM_CAST (XTYPE (obj)))
     {
     case Lisp_String:
       {
@@ -5515,13 +5471,13 @@ mark_object (arg)
     case Lisp_Vectorlike:
 #ifdef GC_CHECK_MARKED_OBJECTS
       m = mem_find (po);
-      if (m == MEM_NIL && !GC_SUBRP (obj)
+      if (m == MEM_NIL && !SUBRP (obj)
          && po != &buffer_defaults
          && po != &buffer_local_symbols)
        abort ();
 #endif /* GC_CHECK_MARKED_OBJECTS */
 
-      if (GC_BUFFERP (obj))
+      if (BUFFERP (obj))
        {
          if (!VECTOR_MARKED_P (XBUFFER (obj)))
            {
@@ -5538,9 +5494,9 @@ mark_object (arg)
              mark_buffer (obj);
            }
        }
-      else if (GC_SUBRP (obj))
+      else if (SUBRP (obj))
        break;
-      else if (GC_COMPILEDP (obj))
+      else if (COMPILEDP (obj))
        /* We could treat this just like a vector, but it is better to
           save the COMPILED_CONSTANTS element for last and avoid
           recursion there.  */
@@ -5563,7 +5519,7 @@ mark_object (arg)
          obj = ptr->contents[COMPILED_CONSTANTS];
          goto loop;
        }
-      else if (GC_FRAMEP (obj))
+      else if (FRAMEP (obj))
        {
          register struct frame *ptr = XFRAME (obj);
          if (mark_vectorlike (XVECTOR (obj)))
@@ -5574,7 +5530,7 @@ mark_object (arg)
 #endif /* HAVE_WINDOW_SYSTEM */
            }
        }
-      else if (GC_WINDOWP (obj))
+      else if (WINDOWP (obj))
        {
          register struct Lisp_Vector *ptr = XVECTOR (obj);
          struct window *w = XWINDOW (obj);
@@ -5592,13 +5548,13 @@ mark_object (arg)
                }
            }
        }
-      else if (GC_HASH_TABLE_P (obj))
+      else if (HASH_TABLE_P (obj))
        {
          struct Lisp_Hash_Table *h = XHASH_TABLE (obj);
          if (mark_vectorlike ((struct Lisp_Vector *)h))
            { /* If hash table is not weak, mark all keys and values.
                 For weak tables, mark only the vector.  */
-             if (GC_NILP (h->weak))
+             if (NILP (h->weak))
                mark_object (h->key_and_value);
              else
                VECTOR_MARK (XVECTOR (h->key_and_value));
@@ -5820,7 +5776,7 @@ survives_gc_p (obj)
 {
   int survives_p;
 
-  switch (XGCTYPE (obj))
+  switch (XTYPE (obj))
     {
     case Lisp_Int:
       survives_p = 1;
@@ -5839,7 +5795,7 @@ survives_gc_p (obj)
       break;
 
     case Lisp_Vectorlike:
-      survives_p = GC_SUBRP (obj) || VECTOR_MARKED_P (XVECTOR (obj));
+      survives_p = SUBRP (obj) || VECTOR_MARKED_P (XVECTOR (obj));
       break;
 
     case Lisp_Cons:
@@ -6449,7 +6405,6 @@ The time is in seconds as a floating point value.  */);
   defsubr (&Smake_byte_code);
   defsubr (&Smake_list);
   defsubr (&Smake_vector);
-  defsubr (&Smake_char_table);
   defsubr (&Smake_string);
   defsubr (&Smake_bool_vector);
   defsubr (&Smake_symbol);
index 58e2bd9e4cdb33b296f4b48745c4f02da104e8e8..009d7de86fc8ed52dbf0df07f8b1da8bac685abb 100644 (file)
@@ -42,7 +42,7 @@ extern int errno;
 #include "window.h"
 #include "commands.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "region-cache.h"
 #include "indent.h"
 #include "blockinput.h"
@@ -175,6 +175,7 @@ static struct Lisp_Overlay * copy_overlays P_ ((struct buffer *, struct Lisp_Ove
 static void modify_overlay P_ ((struct buffer *, EMACS_INT, EMACS_INT));
 static Lisp_Object buffer_lisp_local_variables P_ ((struct buffer *));
 
+extern char * emacs_strerror P_ ((int));
 
 /* For debugging; temporary.  See set_buffer_internal.  */
 /* Lisp_Object Qlisp_mode, Vcheck_symbol; */
@@ -2181,8 +2182,10 @@ DEFUN ("set-buffer-multibyte", Fset_buffer_multibyte, Sset_buffer_multibyte,
        doc: /* Set the multibyte flag of the current buffer to FLAG.
 If FLAG is t, this makes the buffer a multibyte buffer.
 If FLAG is nil, this makes the buffer a single-byte buffer.
-The buffer contents remain unchanged as a sequence of bytes
-but the contents viewed as characters do change.
+In these cases, the buffer contents remain unchanged as a sequence of
+bytes but the contents viewed as characters do change.
+If FLAG is `to', this makes the buffer a multibyte buffer by changing
+all eight-bit bytes to eight-bit characters.
 If the multibyte flag was really changed, undo information of the
 current buffer is cleared.  */)
      (flag)
@@ -2256,11 +2259,11 @@ current buffer is cleared.  */)
              p = GAP_END_ADDR;
              stop = Z;
            }
-         if (MULTIBYTE_STR_AS_UNIBYTE_P (p, bytes))
-           p += bytes, pos += bytes;
-         else
+         if (ASCII_BYTE_P (*p))
+           p++, pos++;
+         else if (CHAR_BYTE8_HEAD_P (*p))
            {
-             c = STRING_CHAR (p, stop - pos);
+             c = STRING_CHAR_AND_LENGTH (p, stop - pos, bytes);
              /* Delete all bytes for this 8-bit character but the
                 last one, and change the last one to the charcter
                 code.  */
@@ -2275,6 +2278,11 @@ current buffer is cleared.  */)
                zv -= bytes;
              stop = Z;
            }
+         else
+           {
+             bytes = BYTES_BY_CHAR_HEAD (*p);
+             p += bytes, pos += bytes;
+           }
        }
       if (narrowed)
        Fnarrow_to_region (make_number (begv), make_number (zv));
@@ -2283,13 +2291,14 @@ current buffer is cleared.  */)
     {
       int pt = PT;
       int pos, stop;
-      unsigned char *p;
+      unsigned char *p, *pend;
 
       /* Be sure not to have a multibyte sequence striding over the GAP.
-        Ex: We change this: "...abc\201 _GAP_ \241def..."
-            to: "...abc _GAP_ \201\241def..."  */
+        Ex: We change this: "...abc\302 _GAP_ \241def..."
+            to: "...abc _GAP_ \302\241def..."  */
 
-      if (GPT_BYTE > 1 && GPT_BYTE < Z_BYTE
+      if (EQ (flag, Qt)
+         && GPT_BYTE > 1 && GPT_BYTE < Z_BYTE
          && ! CHAR_HEAD_P (*(GAP_END_ADDR)))
        {
          unsigned char *p = GPT_ADDR - 1;
@@ -2308,6 +2317,7 @@ current buffer is cleared.  */)
       pos = BEG;
       stop = GPT;
       p = BEG_ADDR;
+      pend = GPT_ADDR;
       while (1)
        {
          int bytes;
@@ -2317,16 +2327,21 @@ current buffer is cleared.  */)
              if (pos == Z)
                break;
              p = GAP_END_ADDR;
+             pend = Z_ADDR;
              stop = Z;
            }
 
-         if (UNIBYTE_STR_AS_MULTIBYTE_P (p, stop - pos, bytes))
+         if (ASCII_BYTE_P (*p))
+           p++, pos++;
+         else if (EQ (flag, Qt) && (bytes = MULTIBYTE_LENGTH (p, pend)) > 0)
            p += bytes, pos += bytes;
          else
            {
              unsigned char tmp[MAX_MULTIBYTE_LENGTH];
+             int c;
 
-             bytes = CHAR_STRING (*p, tmp);
+             c = BYTE8_TO_CHAR (*p);
+             bytes = CHAR_STRING (c, tmp);
              *p = tmp[0];
              TEMP_SET_PT_BOTH (pos + 1, pos + 1);
              bytes--;
@@ -2340,6 +2355,7 @@ current buffer is cleared.  */)
                zv += bytes;
              if (pos <= pt)
                pt += bytes;
+             pend = Z_ADDR;
              stop = Z;
            }
        }
@@ -2847,7 +2863,7 @@ overlay_touches_p (pos)
       int endpos;
 
       XSETMISC (overlay ,tail);
-      if (!GC_OVERLAYP (overlay))
+      if (!OVERLAYP (overlay))
        abort ();
 
       endpos = OVERLAY_POSITION (OVERLAY_END (overlay));
@@ -2862,7 +2878,7 @@ overlay_touches_p (pos)
       int startpos;
 
       XSETMISC (overlay, tail);
-      if (!GC_OVERLAYP (overlay))
+      if (!OVERLAYP (overlay))
        abort ();
 
       startpos = OVERLAY_POSITION (OVERLAY_START (overlay));
index a308d20e4913b2eb6ddab3994ec64c6e7b9da17b..22cb21cb3ae39da00b24645d0d184689c0f56fd5 100644 (file)
@@ -325,7 +325,6 @@ else
 
 /* Variables used locally in FETCH_MULTIBYTE_CHAR.  */
 extern unsigned char *_fetch_multibyte_char_p;
-extern int _fetch_multibyte_char_len;
 
 /* Return character code of multi-byte form at position POS.  If POS
    doesn't point the head of valid multi-byte form, only the byte at
@@ -333,10 +332,18 @@ extern int _fetch_multibyte_char_len;
 
 #define FETCH_MULTIBYTE_CHAR(pos)                                      \
   (_fetch_multibyte_char_p = (((pos) >= GPT_BYTE ? GAP_SIZE : 0)       \
-                              + (pos) + BEG_ADDR - BEG_BYTE),                  \
-   _fetch_multibyte_char_len                                           \
-      = ((pos) >= GPT_BYTE ? ZV_BYTE : GPT_BYTE) - (pos),              \
-   STRING_CHAR (_fetch_multibyte_char_p, _fetch_multibyte_char_len))
+                              + (pos) + BEG_ADDR - BEG_BYTE),          \
+   STRING_CHAR (_fetch_multibyte_char_p, 0))
+
+/* Return character at position POS.  If the current buffer is unibyte
+   and the character is not ASCII, make the returning character
+   multibyte.  */
+
+#define FETCH_CHAR_AS_MULTIBYTE(pos)                   \
+  (!NILP (current_buffer->enable_multibyte_characters) \
+   ? FETCH_MULTIBYTE_CHAR ((pos))                      \
+   : unibyte_char_to_multibyte (FETCH_BYTE ((pos))))
+
 \f
 /* Macros for accessing a character or byte,
    or converting between byte positions and addresses,
@@ -385,10 +392,7 @@ extern int _fetch_multibyte_char_len;
   (_fetch_multibyte_char_p                                             \
      = (((pos) >= BUF_GPT_BYTE (buf) ? BUF_GAP_SIZE (buf) : 0)         \
         + (pos) + BUF_BEG_ADDR (buf) - BEG_BYTE),                      \
-   _fetch_multibyte_char_len                                           \
-     = (((pos) >= BUF_GPT_BYTE (buf) ? BUF_ZV_BYTE (buf) : BUF_GPT_BYTE (buf)) \
-        - (pos)),                                                      \
-   STRING_CHAR (_fetch_multibyte_char_p, _fetch_multibyte_char_len))
+   STRING_CHAR (_fetch_multibyte_char_p, 0))
 \f
 /* Define the actual buffer data structures.  */
 
@@ -444,6 +448,11 @@ struct buffer_text
        successive elements in its marker `chain'
        are the other markers referring to this buffer.  */
     struct Lisp_Marker *markers;
+
+    /* Usually 0.  Temporarily set to 1 in decode_coding_gap to
+       prevent Fgarbage_collect from shrinking the gap and loosing
+       not-yet-decoded bytes.  */
+    int inhibit_shrinking;
   };
 
 /* This is the structure that the buffer Lisp object points to.  */
@@ -854,6 +863,7 @@ extern void mmap_set_vars P_ ((int));
       }                                                                        \
   } while (0)
 
+EXFUN (Fbuffer_live_p, 1);
 EXFUN (Fbuffer_name, 1);
 EXFUN (Fget_file_buffer, 1);
 EXFUN (Fnext_overlay_change, 1);
@@ -897,7 +907,7 @@ extern Lisp_Object Vtransient_mark_mode;
    We assume you know which buffer it's pointing into.  */
 
 #define OVERLAY_POSITION(P) \
- (GC_MARKERP (P) ? marker_position (P) : (abort (), 0))
+ (MARKERP (P) ? marker_position (P) : (abort (), 0))
 
 \f
 /***********************************************************************
index 3582e69dfb7ae3ec83939968f66795f49d036130..1dd1f3671e4dbfcfa9e76f5ce567e52fa31c48a8 100644 (file)
@@ -37,7 +37,7 @@ by Hallvard:
 #include <config.h>
 #include "lisp.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "syntax.h"
 #include "window.h"
 
@@ -1394,10 +1394,17 @@ If the third argument is incorrect, Emacs may crash.  */)
          break;
 
        case Bchar_syntax:
-         BEFORE_POTENTIAL_GC ();
-         CHECK_NUMBER (TOP);
-         AFTER_POTENTIAL_GC ();
-         XSETFASTINT (TOP, syntax_code_spec[(int) SYNTAX (XINT (TOP))]);
+         {
+           int c;
+
+           BEFORE_POTENTIAL_GC ();
+           CHECK_CHARACTER (TOP);
+           AFTER_POTENTIAL_GC ();
+           c = XFASTINT (TOP);
+           if (NILP (current_buffer->enable_multibyte_characters))
+             MAKE_CHAR_MULTIBYTE (c);
+           XSETFASTINT (TOP, syntax_code_spec[(int) SYNTAX (c)]);
+         }
          break;
 
        case Bbuffer_substring:
index 3e6833aed443c6be54bb0149065941ddccf55b63..567fe3a284dcdad716c989fd47b06d8b54f07baf 100644 (file)
@@ -75,7 +75,7 @@ extern int errno;
 #include "lisp.h"
 #include "commands.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "ccl.h"
 #include "coding.h"
 #include "composite.h"
@@ -278,6 +278,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
     if (nargs >= 5)
       {
        int must_encode = 0;
+       Lisp_Object coding_attrs;
 
        for (i = 4; i < nargs; i++)
          CHECK_STRING (args[i]);
@@ -303,11 +304,15 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
            else
              val = Qnil;
          }
+       val = coding_inherit_eol_type (val, Qnil);
        setup_coding_system (Fcheck_coding_system (val), &argument_coding);
-       if (argument_coding.common_flags & CODING_ASCII_INCOMPATIBLE_MASK)
-         setup_coding_system (Qraw_text, &argument_coding);
-       if (argument_coding.eol_type == CODING_EOL_UNDECIDED)
-         argument_coding.eol_type = system_eol_type;
+       coding_attrs = CODING_ID_ATTRS (argument_coding.id);
+       if (NILP (CODING_ATTR_ASCII_COMPAT (coding_attrs)))
+         {
+           /* We should not use an ASCII incompatible coding system.  */
+           val = raw_text_coding_system (val);
+           setup_coding_system (val, &argument_coding);
+         }
       }
   }
 
@@ -430,12 +435,8 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
        {
          argument_coding.src_multibyte = STRING_MULTIBYTE (args[i]);
          if (CODING_REQUIRE_ENCODING (&argument_coding))
-           {
-             /* We must encode this argument.  */
-             args[i] = encode_coding_string (args[i], &argument_coding, 1);
-             if (argument_coding.type == coding_type_ccl)
-               setup_ccl_program (&(argument_coding.spec.ccl.encoder), Qnil);
-           }
+           /* We must encode this argument.  */
+           args[i] = encode_coding_string (&argument_coding, args[i], 1);
          new_argv[i - 3] = SDATA (args[i]);
        }
       UNGCPRO;
@@ -747,19 +748,15 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
          else
            val = Qnil;
        }
-      setup_coding_system (Fcheck_coding_system (val), &process_coding);
+      Fcheck_coding_system (val);
       /* In unibyte mode, character code conversion should not take
         place but EOL conversion should.  So, setup raw-text or one
         of the subsidiary according to the information just setup.  */
       if (NILP (current_buffer->enable_multibyte_characters)
          && !NILP (val))
-       setup_raw_text_coding_system (&process_coding);
+       val = raw_text_coding_system (val);
+      setup_coding_system (val, &process_coding);
     }
-  process_coding.src_multibyte = 0;
-  process_coding.dst_multibyte
-    = (BUFFERP (buffer)
-       ? ! NILP (XBUFFER (buffer)->enable_multibyte_characters)
-       : ! NILP (current_buffer->enable_multibyte_characters));
 
   immediate_quit = 1;
   QUIT;
@@ -771,12 +768,8 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
     int carryover = 0;
     int display_on_the_fly = display_p;
     struct coding_system saved_coding;
-    int pt_orig = PT, pt_byte_orig = PT_BYTE;
-    int inserted;
 
     saved_coding = process_coding;
-    if (process_coding.composing != COMPOSITION_DISABLED)
-      coding_allocate_composition_data (&process_coding, PT);
     while (1)
       {
        /* Repeatedly read until we've filled as much as possible
@@ -809,133 +802,49 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
 
        if (!NILP (buffer))
          {
-           if (! CODING_MAY_REQUIRE_DECODING (&process_coding))
+           if (NILP (current_buffer->enable_multibyte_characters)
+               && ! CODING_MAY_REQUIRE_DECODING (&process_coding))
              insert_1_both (buf, nread, nread, 0, 1, 0);
            else
              {                 /* We have to decode the input.  */
-               int size;
-               char *decoding_buf;
-
-             repeat_decoding:
-               size = decoding_buffer_size (&process_coding, nread);
-               decoding_buf = (char *) xmalloc (size);
-
-               /* We can't use the macro CODING_REQUIRE_DETECTION
-                  because it always returns nonzero if the coding
-                  system requires EOL detection.  Here, we have to
-                  check only whether or not the coding system
-                  requires text-encoding detection.  */
-               if (process_coding.type == coding_type_undecided)
-                 {
-                   detect_coding (&process_coding, buf, nread);
-                   if (process_coding.composing != COMPOSITION_DISABLED)
-                     /* We have not yet allocated the composition
-                        data because the coding type was undecided.  */
-                     coding_allocate_composition_data (&process_coding, PT);
-                 }
-               if (process_coding.cmp_data)
-                 process_coding.cmp_data->char_offset = PT;
-
-               decode_coding (&process_coding, buf, decoding_buf,
-                              nread, size);
+               Lisp_Object curbuf;
 
+               XSETBUFFER (curbuf, current_buffer);
+               decode_coding_c_string (&process_coding, buf, nread,
+                                       curbuf);
                if (display_on_the_fly
-                   && saved_coding.type == coding_type_undecided
-                   && process_coding.type != coding_type_undecided)
+                   && CODING_REQUIRE_DETECTION (&saved_coding)
+                   && ! CODING_REQUIRE_DETECTION (&process_coding))
                  {
                    /* We have detected some coding system.  But,
                       there's a possibility that the detection was
-                      done by insufficient data.  So, we try the code
-                      detection again with more data.  */
-                   xfree (decoding_buf);
+                      done by insufficient data.  So, we give up
+                      displaying on the fly.  */
+                   if (process_coding.produced > 0)
+                     del_range_2 (process_coding.dst_pos,
+                                  process_coding.dst_pos_byte,
+                                  process_coding.dst_pos
+                                  + process_coding.produced_char,
+                                  process_coding.dst_pos_byte
+                                  + process_coding.produced, 0);
                    display_on_the_fly = 0;
                    process_coding = saved_coding;
                    carryover = nread;
                    /* This is to make the above condition always
                       fails in the future.  */
-                   saved_coding.type = coding_type_no_conversion;
+                   saved_coding.common_flags
+                     &= ~CODING_REQUIRE_DETECTION_MASK;
                    continue;
                  }
 
-               if (process_coding.produced > 0)
-                 insert_1_both (decoding_buf, process_coding.produced_char,
-                                process_coding.produced, 0, 1, 0);
-               xfree (decoding_buf);
-
-               if (process_coding.result == CODING_FINISH_INCONSISTENT_EOL)
-                 {
-                   Lisp_Object eol_type, coding;
-
-                   if (process_coding.eol_type == CODING_EOL_CR)
-                     {
-                       /* CRs have been replaced with LFs.  Undo
-                          that in the text inserted above.  */
-                       unsigned char *p;
-
-                       move_gap_both (PT, PT_BYTE);
-
-                       p = BYTE_POS_ADDR (pt_byte_orig);
-                       for (; p < GPT_ADDR; ++p)
-                         if (*p == '\n')
-                           *p = '\r';
-                     }
-                   else if (process_coding.eol_type == CODING_EOL_CRLF)
-                     {
-                       /* CR LFs have been replaced with LFs.  Undo
-                          that by inserting CRs in front of LFs in
-                          the text inserted above.  */
-                       EMACS_INT bytepos, old_pt, old_pt_byte, nCR;
-
-                       old_pt = PT;
-                       old_pt_byte = PT_BYTE;
-                       nCR = 0;
-
-                       for (bytepos = PT_BYTE - 1;
-                            bytepos >= pt_byte_orig;
-                            --bytepos)
-                         if (FETCH_BYTE (bytepos) == '\n')
-                           {
-                             EMACS_INT charpos = BYTE_TO_CHAR (bytepos);
-                             TEMP_SET_PT_BOTH (charpos, bytepos);
-                             insert_1_both ("\r", 1, 1, 0, 1, 0);
-                             ++nCR;
-                           }
-
-                       TEMP_SET_PT_BOTH (old_pt + nCR, old_pt_byte + nCR);
-                     }
-
-                   /* Set the coding system symbol to that for
-                      Unix-like EOL.  */
-                   eol_type = Fget (saved_coding.symbol, Qeol_type);
-                   if (VECTORP (eol_type)
-                       && ASIZE (eol_type) == 3
-                       && SYMBOLP (AREF (eol_type, CODING_EOL_LF)))
-                     coding = AREF (eol_type, CODING_EOL_LF);
-                   else
-                     coding = saved_coding.symbol;
-
-                   process_coding.symbol = coding;
-                   process_coding.eol_type = CODING_EOL_LF;
-                   process_coding.mode
-                     &= ~CODING_MODE_INHIBIT_INCONSISTENT_EOL;
-                 }
-
-               nread -= process_coding.consumed;
-               carryover = nread;
+               TEMP_SET_PT_BOTH (PT + process_coding.produced_char,
+                                 PT_BYTE + process_coding.produced);
+               carryover = process_coding.carryover_bytes;
                if (carryover > 0)
                  /* As CARRYOVER should not be that large, we had
                     better avoid overhead of bcopy.  */
-                 BCOPY_SHORT (buf + process_coding.consumed, buf,
-                              carryover);
-               if (process_coding.result == CODING_FINISH_INSUFFICIENT_CMP)
-                 {
-                   /* The decoding ended because of insufficient data
-                      area to record information about composition.
-                      We must try decoding with additional data area
-                      before reading more output for the process.  */
-                   coding_allocate_composition_data (&process_coding, PT);
-                   goto repeat_decoding;
-                 }
+                 BCOPY_SHORT (process_coding.carryover, buf,
+                              process_coding.carryover_bytes);
              }
          }
 
@@ -966,33 +875,12 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
       }
   give_up: ;
 
-    if (!NILP (buffer)
-       && process_coding.cmp_data)
-      {
-       coding_restore_composition (&process_coding, Fcurrent_buffer ());
-       coding_free_composition_data (&process_coding);
-      }
-
-    {
-      int post_read_count = SPECPDL_INDEX ();
-
-      record_unwind_protect (save_excursion_restore, save_excursion_save ());
-      inserted = PT - pt_orig;
-      TEMP_SET_PT_BOTH (pt_orig, pt_byte_orig);
-      if (SYMBOLP (process_coding.post_read_conversion)
-         && !NILP (Ffboundp (process_coding.post_read_conversion)))
-       call1 (process_coding.post_read_conversion, make_number (inserted));
-
-      Vlast_coding_system_used = process_coding.symbol;
-
-      /* If the caller required, let the buffer inherit the
-        coding-system used to decode the process output.  */
-      if (inherit_process_coding_system)
-       call1 (intern ("after-insert-file-set-buffer-file-coding-system"),
-              make_number (total_read));
-
-      unbind_to (post_read_count, Qnil);
-    }
+    Vlast_coding_system_used = CODING_ID_NAME (process_coding.id);
+    /* If the caller required, let the buffer inherit the
+       coding-system used to decode the process output.  */
+    if (inherit_process_coding_system)
+      call1 (intern ("after-insert-file-set-buffer-file-coding-system"),
+              make_number (total_read));
   }
 
   /* Wait for it to terminate, unless it already has.  */
index 0e9e1ba2c34b74a003023fb1af0076f79b643160..2984201a03b6d6d79ac6bcfb0246df7975d2727a 100644 (file)
@@ -23,7 +23,7 @@ Boston, MA 02110-1301, USA.  */
 #include <config.h>
 #include "lisp.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "commands.h"
 #include "syntax.h"
 #include "composite.h"
@@ -38,7 +38,7 @@ casify_object (flag, obj)
      enum case_action flag;
      Lisp_Object obj;
 {
-  register int i, c, len;
+  register int c, c1;
   register int inword = flag == CASE_DOWN;
 
   /* If the case table is flagged as modified, rescan it.  */
@@ -50,6 +50,7 @@ casify_object (flag, obj)
       int flagbits = (CHAR_ALT | CHAR_SUPER | CHAR_HYPER
                      | CHAR_SHIFT | CHAR_CTL | CHAR_META);
       int flags = XINT (obj) & flagbits;
+      int multibyte = ! NILP (current_buffer->enable_multibyte_characters);
 
       /* If the character has higher bits set
         above the flags, return it unchanged.
@@ -57,12 +58,18 @@ casify_object (flag, obj)
       if ((unsigned) XFASTINT (obj) > (unsigned) flagbits)
        return obj;
 
-      c = DOWNCASE (XFASTINT (obj) & ~flagbits);
+      c1 = XFASTINT (obj) & ~flagbits;
+      if (! multibyte)
+       MAKE_CHAR_MULTIBYTE (c1);
+      c = DOWNCASE (c1);
       if (inword)
        XSETFASTINT (obj, c | flags);
       else if (c == (XFASTINT (obj) & ~flagbits))
        {
-         c = UPCASE1 ((XFASTINT (obj) & ~flagbits));
+         if (! inword)
+           c = UPCASE1 (c1);
+         if (! multibyte)
+           MAKE_CHAR_UNIBYTE (c);
          XSETFASTINT (obj, c | flags);
        }
       return obj;
@@ -71,42 +78,43 @@ casify_object (flag, obj)
   if (STRINGP (obj))
     {
       int multibyte = STRING_MULTIBYTE (obj);
-      int n;
+      int i, i_byte, len;
+      int size = SCHARS (obj);
 
       obj = Fcopy_sequence (obj);
-      len = SBYTES (obj);
-
-      /* I counts bytes, and N counts chars.  */
-      for (i = n = 0; i < len; n++)
+      for (i = i_byte = 0; i < size; i++, i_byte += len)
        {
-         int from_len = 1, to_len = 1;
-
-         c = SREF (obj, i);
-
-         if (multibyte && c >= 0x80)
-           c = STRING_CHAR_AND_LENGTH (SDATA (obj) + i, len -i, from_len);
+         if (multibyte)
+           c = STRING_CHAR_AND_LENGTH (SDATA (obj) + i_byte, 0, len);
+         else
+           {
+             c = SREF (obj, i_byte);
+             len = 1;
+             MAKE_CHAR_MULTIBYTE (c);
+           }
+         c1 = c;
          if (inword && flag != CASE_CAPITALIZE_UP)
            c = DOWNCASE (c);
          else if (!UPPERCASEP (c)
                   && (!inword || flag != CASE_CAPITALIZE_UP))
-           c = UPCASE1 (c);
-         if ((ASCII_BYTE_P (c) && from_len == 1)
-             || (! multibyte && SINGLE_BYTE_CHAR_P (c)))
-           SSET (obj, i, c);
-         else
+           c = UPCASE1 (c1);
+         if ((int) flag >= (int) CASE_CAPITALIZE)
+           inword = (SYNTAX (c) == Sword);
+         if (c != c1)
            {
-             to_len = CHAR_BYTES (c);
-             if (from_len == to_len)
-               CHAR_STRING (c, SDATA (obj) + i);
+             if (! multibyte)
+               {
+                 MAKE_CHAR_UNIBYTE (c);
+                 SSET (obj, i_byte, c);
+               }
+             else if (ASCII_CHAR_P (c1) && ASCII_CHAR_P (c))
+               SSET (obj, i_byte,  c);
              else
                {
-                 Faset (obj, make_number (n), make_number (c));
-                 len += to_len - from_len;
+                 Faset (obj, make_number (i), make_number (c));
+                 i_byte += CHAR_BYTES (c) - len;
                }
            }
-         if ((int) flag >= (int) CASE_CAPITALIZE)
-           inword = SYNTAX (c) == Sword;
-         i += to_len;
        }
       return obj;
     }
@@ -168,13 +176,14 @@ casify_region (flag, b, e)
      enum case_action flag;
      Lisp_Object b, e;
 {
-  register int i;
   register int c;
   register int inword = flag == CASE_DOWN;
   register int multibyte = !NILP (current_buffer->enable_multibyte_characters);
   int start, end;
   int start_byte, end_byte;
   int changed = 0;
+  int opoint = PT;
+  int opoint_byte = PT_BYTE;
 
   if (EQ (b, e))
     /* Not modifying because nothing marked */
@@ -192,85 +201,74 @@ casify_region (flag, b, e)
   start_byte = CHAR_TO_BYTE (start);
   end_byte = CHAR_TO_BYTE (end);
 
-  for (i = start_byte; i < end_byte; i++, start++)
+  while (start < end)
     {
-      int c2;
-      c = c2 = FETCH_BYTE (i);
-      if (multibyte && c >= 0x80)
-       /* A multibyte character can't be handled in this simple loop.  */
-       break;
+      int c2, len;
+
+      if (multibyte)
+       {
+         c = FETCH_MULTIBYTE_CHAR (start_byte);
+         len = CHAR_BYTES (c);
+       }
+      else
+       {
+         c = FETCH_BYTE (start_byte);
+         MAKE_CHAR_MULTIBYTE (c);
+         len = 1;
+       }
+      c2 = c;
       if (inword && flag != CASE_CAPITALIZE_UP)
        c = DOWNCASE (c);
       else if (!UPPERCASEP (c)
               && (!inword || flag != CASE_CAPITALIZE_UP))
        c = UPCASE1 (c);
-      if (multibyte && c >= 0x80)
-       /* A multibyte result character can't be handled in this
-          simple loop.  */
-       break;
-      FETCH_BYTE (i) = c;
-      if (c != c2)
-       changed = 1;
       if ((int) flag >= (int) CASE_CAPITALIZE)
-       inword = SYNTAX (c) == Sword && (inword || !SYNTAX_PREFIX (c));
-    }
-  if (i < end_byte)
-    {
-      /* The work is not yet finished because of a multibyte character
-        just encountered.  */
-      int opoint = PT;
-      int opoint_byte = PT_BYTE;
-      int c2;
-
-      while (start < end)
+       inword = ((SYNTAX (c) == Sword) && (inword || !SYNTAX_PREFIX (c)));
+      if (c != c2)
        {
-         if ((c = FETCH_BYTE (i)) >= 0x80)
-           c = FETCH_MULTIBYTE_CHAR (i);
-         c2 = c;
-         if (inword && flag != CASE_CAPITALIZE_UP)
-           c2 = DOWNCASE (c);
-         else if (!UPPERCASEP (c)
-                  && (!inword || flag != CASE_CAPITALIZE_UP))
-           c2 = UPCASE1 (c);
-         if (c != c2)
+         changed = 1;
+         if (! multibyte)
+           {
+             MAKE_CHAR_UNIBYTE (c);
+             FETCH_BYTE (start_byte) = c;
+           }
+         else if (ASCII_CHAR_P (c2) && ASCII_CHAR_P (c))
+           FETCH_BYTE (start_byte) = c;
+         else
            {
-             int fromlen, tolen, j;
+             int tolen = CHAR_BYTES (c);
+             int j;
              unsigned char str[MAX_MULTIBYTE_LENGTH];
 
-             changed = 1;
-             /* Handle the most likely case */
-             if (c < 0400 && c2 < 0400)
-               FETCH_BYTE (i) = c2;
-             else if (fromlen = CHAR_STRING (c, str),
-                      tolen = CHAR_STRING (c2, str),
-                      fromlen == tolen)
+             CHAR_STRING (c, str);
+             if (len == tolen)
                {
                  /* Length is unchanged.  */
-                 for (j = 0; j < tolen; ++j)
-                   FETCH_BYTE (i + j) = str[j];
+                 for (j = 0; j < len; ++j)
+                   FETCH_BYTE (start_byte + j) = str[j];
                }
              else
                {
                  /* Replace one character with the other,
                     keeping text properties the same.  */
-                 replace_range_2 (start, i,
-                                  start + 1, i + fromlen,
+                 replace_range_2 (start, start_byte,
+                                  start + 1, start_byte + len,
                                   str, 1, tolen,
-                                  1);
-                 if (opoint > start)
-                   opoint_byte += tolen - fromlen;
+                                  0);
+                 len = tolen;
                }
            }
-         if ((int) flag >= (int) CASE_CAPITALIZE)
-           inword = SYNTAX (c2) == Sword;
-         INC_BOTH (start, i);
        }
-      TEMP_SET_PT_BOTH (opoint, opoint_byte);
+      start++;
+      start_byte += len;
     }
 
-  start = XFASTINT (b);
+  if (PT != opoint)
+    TEMP_SET_PT_BOTH (opoint, opoint_byte);
+
   if (changed)
     {
+      start = XFASTINT (b);
       signal_after_change (start, end - start, end - start);
       update_compositions (start, end, CHECK_ALL);
     }
index 952a320dda3f6f19f4eeeee66efaeafbec60f1c5..bcd8e63cc7a2fe269c98ec764bdf26addbfb4db0 100644 (file)
@@ -24,7 +24,7 @@ Boston, MA 02110-1301, USA.  */
 #include <config.h>
 #include "lisp.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 
 Lisp_Object Qcase_table_p, Qcase_table;
 Lisp_Object Vascii_downcase_table, Vascii_upcase_table;
@@ -126,7 +126,6 @@ set_case_table (table, standard)
      int standard;
 {
   Lisp_Object up, canon, eqv;
-  int indices[3];
 
   check_case_table (table);
 
@@ -137,8 +136,8 @@ set_case_table (table, standard)
   if (NILP (up))
     {
       up = Fmake_char_table (Qcase_table, Qnil);
-      map_char_table (set_identity, Qnil, table, table, up, 0, indices);
-      map_char_table (shuffle, Qnil, table, table, up, 0, indices);
+      map_char_table (set_identity, Qnil, table, up);
+      map_char_table (shuffle, Qnil, table, up);
       XCHAR_TABLE (table)->extras[0] = up;
     }
 
@@ -146,14 +145,14 @@ set_case_table (table, standard)
     {
       canon = Fmake_char_table (Qcase_table, Qnil);
       XCHAR_TABLE (table)->extras[1] = canon;
-      map_char_table (set_canon, Qnil, table, table, table, 0, indices);
+      map_char_table (set_canon, Qnil, table, table);
     }
 
   if (NILP (eqv))
     {
       eqv = Fmake_char_table (Qcase_table, Qnil);
-      map_char_table (set_identity, Qnil, canon, canon, eqv, 0, indices);
-      map_char_table (shuffle, Qnil, canon, canon, eqv, 0, indices);
+      map_char_table (set_identity, Qnil, canon, eqv);
+      map_char_table (shuffle, Qnil, canon, eqv);
       XCHAR_TABLE (table)->extras[2] = eqv;
     }
 
@@ -180,30 +179,45 @@ set_case_table (table, standard)
 \f
 /* The following functions are called in map_char_table.  */
 
-/*  Set CANON char-table element for C to a translated ELT by UP and
-   DOWN char-tables.  This is done only when ELT is a character.  The
-   char-tables CANON, UP, and DOWN are in CASE_TABLE.  */
+/* Set CANON char-table element for characters in RANGE to a
+   translated ELT by UP and DOWN char-tables.  This is done only when
+   ELT is a character.  The char-tables CANON, UP, and DOWN are in
+   CASE_TABLE.  */
 
 static void
-set_canon (case_table, c, elt)
-     Lisp_Object case_table, c, elt;
+set_canon (case_table, range, elt)
+     Lisp_Object case_table, range, elt;
 {
   Lisp_Object up = XCHAR_TABLE (case_table)->extras[0];
   Lisp_Object canon = XCHAR_TABLE (case_table)->extras[1];
 
   if (NATNUMP (elt))
-    Faset (canon, c, Faref (case_table, Faref (up, elt)));
+    Fset_char_table_range (canon, range, Faref (case_table, Faref (up, elt)));
 }
 
-/* Set elements of char-table TABLE for C to C itself.  This is done
-   only when ELT is a character.  This is called in map_char_table.  */
+/* Set elements of char-table TABLE for C to C itself.  C may be a
+   cons specifying a character range.  In that case, set characters in
+   that range to themselves.  This is done only when ELT is a
+   character.  This is called in map_char_table.  */
 
 static void
 set_identity (table, c, elt)
      Lisp_Object table, c, elt;
 {
   if (NATNUMP (elt))
-    Faset (table, c, c);
+    {
+      int from, to;
+
+      if (CONSP (c))
+       {
+         from = XINT (XCAR (c));
+         to = XINT (XCDR (c));
+       }
+      else
+       from = to = XINT (c);
+      for (; from <= to; from++)
+       CHAR_TABLE_SET (table, from, make_number (from));
+    }
 }
 
 /* Permute the elements of TABLE (which is initially an identity
@@ -215,11 +229,25 @@ static void
 shuffle (table, c, elt)
      Lisp_Object table, c, elt;
 {
-  if (NATNUMP (elt) && !EQ (c, elt))
+  if (NATNUMP (elt))
     {
       Lisp_Object tem = Faref (table, elt);
-      Faset (table, elt, c);
-      Faset (table, c, tem);
+      int from, to;
+
+      if (CONSP (c))
+       {
+         from = XINT (XCAR (c));
+         to = XINT (XCDR (c));
+       }
+      else
+       from = to = XINT (c);
+
+      for (; from <= to; from++)
+       if (from != XINT (elt))
+         {
+           Faset (table, elt, make_number (from));
+           Faset (table, make_number (from), tem);
+         }
     }
 }
 \f
@@ -244,22 +272,24 @@ init_casetab_once ()
   Vascii_downcase_table = down;
   XCHAR_TABLE (down)->purpose = Qcase_table;
 
-  for (i = 0; i < CHAR_TABLE_SINGLE_BYTE_SLOTS; i++)
-    XSETFASTINT (XCHAR_TABLE (down)->contents[i],
-                (i >= 'A' && i <= 'Z') ? i + ('a' - 'A') : i);
+  for (i = 0; i < 128; i++)
+    {
+      int c = (i >= 'A' && i <= 'Z') ? i + ('a' - 'A') : i;
+      CHAR_TABLE_SET (down, i, make_number (c));
+    }
 
   XCHAR_TABLE (down)->extras[1] = Fcopy_sequence (down);
 
   up = Fmake_char_table (Qcase_table, Qnil);
   XCHAR_TABLE (down)->extras[0] = up;
 
-  for (i = 0; i < CHAR_TABLE_SINGLE_BYTE_SLOTS; i++)
-    XSETFASTINT (XCHAR_TABLE (up)->contents[i],
-                ((i >= 'A' && i <= 'Z')
-                 ? i + ('a' - 'A')
-                 : ((i >= 'a' && i <= 'z')
-                    ? i + ('A' - 'a')
-                    : i)));
+  for (i = 0; i < 128; i++)
+    {
+      int c = ((i >= 'A' && i <= 'Z') ? i + ('a' - 'A')
+              : ((i >= 'a' && i <= 'z') ? i + ('A' - 'a')
+                 : i));;
+      CHAR_TABLE_SET (up, i, make_number (c));
+    }
 
   XCHAR_TABLE (down)->extras[2] = Fcopy_sequence (up);
 
index 7ea9b7810fa66c92618f51a224c8a23d83b9aadb..708131d8e410a9feb5089446ceaeaf303d1a23a0 100644 (file)
@@ -5,6 +5,9 @@
      2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
+   Copyright (C) 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -31,6 +34,7 @@ Boston, MA 02110-1301, USA.  */
 #include <ctype.h>
 #include "lisp.h"
 #include "buffer.h"
+#include "character.h"
 #include "charset.h"
 #include "category.h"
 #include "keymap.h"
@@ -189,6 +193,18 @@ This is the one used for new buffers.  */)
   return Vstandard_category_table;
 }
 
+
+static void
+copy_category_entry (table, c, val)
+     Lisp_Object table, c, val;
+{
+  val = Fcopy_sequence (val);
+  if (CONSP (c))
+    char_table_set_range (table, XINT (XCAR (c)), XINT (XCDR (c)), val);
+  else
+    char_table_set (table, XINT (c), val);
+}
+
 /* Return a copy of category table TABLE.  We can't simply use the
    function copy-sequence because no contents should be shared between
    the original and the copy.  This function is called recursively by
@@ -198,44 +214,14 @@ Lisp_Object
 copy_category_table (table)
      Lisp_Object table;
 {
-  Lisp_Object tmp;
-  int i, to;
+  table = copy_char_table (table);
 
-  if (!NILP (XCHAR_TABLE (table)->top))
-    {
-      /* TABLE is a top level char table.
-        At first, make a copy of tree structure of the table.  */
-      table = Fcopy_sequence (table);
-
-      /* Then, copy elements for single byte characters one by one.  */
-      for (i = 0; i < CHAR_TABLE_SINGLE_BYTE_SLOTS; i++)
-       if (!NILP (tmp = XCHAR_TABLE (table)->contents[i]))
-         XCHAR_TABLE (table)->contents[i] = Fcopy_sequence (tmp);
-      to = CHAR_TABLE_ORDINARY_SLOTS;
-
-      /* Also copy the first (and sole) extra slot.  It is a vector
-         containing docstring of each category.  */
-      Fset_char_table_extra_slot
-       (table, make_number (0),
-        Fcopy_sequence (Fchar_table_extra_slot (table, make_number (0))));
-    }
-  else
-    {
-      i  = 32;
-      to = SUB_CHAR_TABLE_ORDINARY_SLOTS;
-    }
-
-  /* If the table has non-nil default value, copy it.  */
-  if (!NILP (tmp = XCHAR_TABLE (table)->defalt))
-    XCHAR_TABLE (table)->defalt = Fcopy_sequence (tmp);
-
-  /* At last, copy the remaining elements while paying attention to a
-     sub char table.  */
-  for (; i < to; i++)
-    if (!NILP (tmp = XCHAR_TABLE (table)->contents[i]))
-      XCHAR_TABLE (table)->contents[i]
-       = (SUB_CHAR_TABLE_P (tmp)
-          ? copy_category_table (tmp) : Fcopy_sequence (tmp));
+  if (! NILP (XCHAR_TABLE (table)->defalt))
+    XCHAR_TABLE (table)->defalt
+      = Fcopy_sequence (XCHAR_TABLE (table)->defalt);
+  XCHAR_TABLE (table)->extras[0]
+    = Fcopy_sequence (XCHAR_TABLE (table)->extras[0]);
+  map_char_table (copy_category_entry, Qnil, table, table);
 
   return table;
 }
@@ -261,9 +247,12 @@ DEFUN ("make-category-table", Fmake_category_table, Smake_category_table,
      ()
 {
   Lisp_Object val;
+  int i;
 
   val = Fmake_char_table (Qcategory_table, Qnil);
   XCHAR_TABLE (val)->defalt = MAKE_CATEGORY_SET;
+  for (i = 0; i < (1 << CHARTAB_SIZE_BITS_0); i++)
+    XCHAR_TABLE (val)->contents[i] = MAKE_CATEGORY_SET;
   Fset_char_table_extra_slot (val, make_number (0),
                              Fmake_vector (make_number (95), Qnil));
   return val;
@@ -285,6 +274,13 @@ Return TABLE.  */)
 }
 
 \f
+Lisp_Object
+char_category_set (c)
+     int c;
+{
+  return CHAR_TABLE_REF (current_buffer->category_table, c);
+}
+
 DEFUN ("char-category-set", Fchar_category_set, Schar_category_set, 1, 1, 0,
        doc: /* Return the category set of CHAR.
 usage: (char-category-set CHAR)  */)
@@ -318,34 +314,6 @@ The return value is a string containing those same categories.  */)
   return build_string (str);
 }
 
-/* Modify all category sets stored under sub char-table TABLE so that
-   they contain (SET_VALUE is t) or don't contain (SET_VALUE is nil)
-   CATEGORY.  */
-
-void
-modify_lower_category_set (table, category, set_value)
-     Lisp_Object table, category, set_value;
-{
-  Lisp_Object val;
-  int i;
-
-  val = XCHAR_TABLE (table)->defalt;
-  if (!CATEGORY_SET_P (val))
-    val = MAKE_CATEGORY_SET;
-  SET_CATEGORY_SET (val, category, set_value);
-  XCHAR_TABLE (table)->defalt = val;
-
-  for (i = 32; i < SUB_CHAR_TABLE_ORDINARY_SLOTS; i++)
-    {
-      val = XCHAR_TABLE (table)->contents[i];
-
-      if (CATEGORY_SET_P (val))
-       SET_CATEGORY_SET (val, category, set_value);
-      else if (SUB_CHAR_TABLE_P (val))
-       modify_lower_category_set (val, category, set_value);
-    }
-}
-
 void
 set_category_set (category_set, category, val)
      Lisp_Object category_set, category, val;
@@ -365,113 +333,55 @@ DEFUN ("modify-category-entry", Fmodify_category_entry,
        Smodify_category_entry, 2, 4, 0,
        doc: /* Modify the category set of CHARACTER by adding CATEGORY to it.
 The category is changed only for table TABLE, which defaults to
- the current buffer's category table.
+the current buffer's category table.
+CHARACTER can be either a single character or a cons representing the
+lower and upper ends of an inclusive character range to modify.
 If optional fourth argument RESET is non-nil,
 then delete CATEGORY from the category set instead of adding it.  */)
      (character, category, table, reset)
      Lisp_Object character, category, table, reset;
 {
-  int c, charset, c1, c2;
   Lisp_Object set_value;       /* Actual value to be set in category sets.  */
-  Lisp_Object val, category_set;
+  Lisp_Object category_set;
+  int start, end;
+  int from, to;
 
-  CHECK_NUMBER (character);
-  c = XINT (character);
-  CHECK_CATEGORY (category);
-  table = check_category_table (table);
-
-  if (NILP (CATEGORY_DOCSTRING (table, XFASTINT (category))))
-    error ("Undefined category: %c", XFASTINT (category));
-
-  set_value = NILP (reset) ? Qt : Qnil;
-
-  if (c < CHAR_TABLE_SINGLE_BYTE_SLOTS)
-    {
-      val = XCHAR_TABLE (table)->contents[c];
-      if (!CATEGORY_SET_P (val))
-       XCHAR_TABLE (table)->contents[c] = (val = MAKE_CATEGORY_SET);
-      SET_CATEGORY_SET (val, category, set_value);
-      return Qnil;
-    }
-
-  SPLIT_CHAR (c, charset, c1, c2);
-
-  /* The top level table.  */
-  val = XCHAR_TABLE (table)->contents[charset + 128];
-  if (CATEGORY_SET_P (val))
-    category_set = val;
-  else if (!SUB_CHAR_TABLE_P (val))
-    {
-      category_set = val = MAKE_CATEGORY_SET;
-      XCHAR_TABLE (table)->contents[charset + 128] = category_set;
-    }
-
-  if (c1 <= 0)
+  if (INTEGERP (character))
     {
-      /* Only a charset is specified.  */
-      if (SUB_CHAR_TABLE_P (val))
-       /* All characters in CHARSET should be the same as for having
-           CATEGORY or not.  */
-       modify_lower_category_set (val, category, set_value);
-      else
-       SET_CATEGORY_SET (category_set, category, set_value);
-      return Qnil;
+      CHECK_CHARACTER (character);
+      start = end = XFASTINT (character);
     }
-
-  /* The second level table.  */
-  if (!SUB_CHAR_TABLE_P (val))
+  else
     {
-      val = make_sub_char_table (Qnil);
-      XCHAR_TABLE (table)->contents[charset + 128] = val;
-      /* We must set default category set of CHARSET in `defalt' slot.  */
-      XCHAR_TABLE (val)->defalt = category_set;
+      CHECK_CONS (character);
+      CHECK_CHARACTER_CAR (character);
+      CHECK_CHARACTER_CDR (character);
+      start = XFASTINT (XCAR (character));
+      end = XFASTINT (XCDR (character));
     }
-  table = val;
 
-  val = XCHAR_TABLE (table)->contents[c1];
-  if (CATEGORY_SET_P (val))
-    category_set = val;
-  else if (!SUB_CHAR_TABLE_P (val))
-    {
-      category_set = val = Fcopy_sequence (XCHAR_TABLE (table)->defalt);
-      XCHAR_TABLE (table)->contents[c1] = category_set;
-    }
+  CHECK_CATEGORY (category);
+  table = check_category_table (table);
 
-  if (c2 <= 0)
-    {
-      if (SUB_CHAR_TABLE_P (val))
-       /* All characters in C1 group of CHARSET should be the same as
-           for CATEGORY.  */
-       modify_lower_category_set (val, category, set_value);
-      else
-       SET_CATEGORY_SET (category_set, category, set_value);
-      return Qnil;
-    }
+  if (NILP (CATEGORY_DOCSTRING (table, XFASTINT (category))))
+    error ("Undefined category: %c", XFASTINT (category));
 
-  /* The third (bottom) level table.  */
-  if (!SUB_CHAR_TABLE_P (val))
-    {
-      val = make_sub_char_table (Qnil);
-      XCHAR_TABLE (table)->contents[c1] = val;
-      /* We must set default category set of CHARSET and C1 in
-         `defalt' slot.  */
-      XCHAR_TABLE (val)->defalt = category_set;
-    }
-  table = val;
+  set_value = NILP (reset) ? Qt : Qnil;
 
-  val = XCHAR_TABLE (table)->contents[c2];
-  if (CATEGORY_SET_P (val))
-    category_set = val;
-  else if (!SUB_CHAR_TABLE_P (val))
+  while (start <= end)
     {
-      category_set = Fcopy_sequence (XCHAR_TABLE (table)->defalt);
-      XCHAR_TABLE (table)->contents[c2] = category_set;
+      category_set = char_table_ref_and_range (table, start, &from, &to);
+      if (CATEGORY_MEMBER (XFASTINT (category), category_set) != NILP (reset))
+       {
+         category_set = Fcopy_sequence (category_set);
+         SET_CATEGORY_SET (category_set, category, set_value);
+         if (to > end)
+           char_table_set_range (table, start, end, category_set);
+         else
+           char_table_set_range (table, start, to, category_set);
+       }
+      start = to + 1;
     }
-  else
-    /* This should never happen.  */
-    error ("Invalid category table");
-
-  SET_CATEGORY_SET (category_set, category, set_value);
 
   return Qnil;
 }
index be534fb47f5393e08cf2e8f7e3dc9149e1e7887c..3687e06ce1f2b8cb75750d7a93c9df2b32acf7c5 100644 (file)
@@ -3,6 +3,9 @@
      2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
+   Copyright (C) 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -93,21 +96,7 @@ extern Lisp_Object _temp_category_set;
 #define Vstandard_category_table buffer_defaults.category_table
 
 /* Return the category set of character C in the current category table.  */
-#ifdef __GNUC__
-#define CATEGORY_SET(c)                                                             \
-  ({ Lisp_Object table = current_buffer->category_table;                    \
-     Lisp_Object temp;                                                      \
-     if ((c) < CHAR_TABLE_SINGLE_BYTE_SLOTS)                                \
-       while (NILP (temp = XCHAR_TABLE (table)->contents[(unsigned char) c]) \
-             && NILP (temp = XCHAR_TABLE (table)->defalt))                  \
-        table = XCHAR_TABLE (table)->parent;                                \
-     else                                                                   \
-       temp = Faref (table, make_number (c));                               \
-     temp; })
-#else
-#define CATEGORY_SET(c) \
-  Faref (current_buffer->category_table, make_number (c))
-#endif
+#define CATEGORY_SET(c) char_category_set (c)
 
 /* Return the doc string of CATEGORY in category table TABLE.  */
 #define CATEGORY_DOCSTRING(table, category) \
@@ -120,8 +109,8 @@ extern Lisp_Object _temp_category_set;
 
 /* Return 1 if there is a word boundary between two word-constituent
    characters C1 and C2 if they appear in this order, else return 0.
-   There is no word boundary between two word-constituent ASCII
-   characters.  */
+   There is no word boundary between two word-constituent ASCII and
+   Latin-1 characters.  */
 #define WORD_BOUNDARY_P(c1, c2)                                        \
   (!(SINGLE_BYTE_CHAR_P (c1) && SINGLE_BYTE_CHAR_P (c2))       \
    && word_boundary_p (c1, c2))
index 3ef342f455e6c724316990965ef8457892788f73..5e4a6632d1dd005811b8cb56c7431a589d3fc39c 100644 (file)
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -5,6 +5,9 @@
      2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
+   Copyright (C) 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -28,10 +31,13 @@ Boston, MA 02110-1301, USA.  */
 #include <stdio.h>
 
 #include "lisp.h"
+#include "character.h"
 #include "charset.h"
 #include "ccl.h"
 #include "coding.h"
 
+Lisp_Object Qccl, Qcclp;
+
 /* This contains all code conversion map available to CCL.  */
 Lisp_Object Vcode_conversion_map_vector;
 
@@ -67,6 +73,8 @@ Lisp_Object Vtranslation_hash_table_vector;
 #define GET_HASH_TABLE(id) \
   (XHASH_TABLE (XCDR(XVECTOR(Vtranslation_hash_table_vector)->contents[(id)])))
 
+extern int charset_unicode;
+
 /* CCL (Code Conversion Language) is a simple language which has
    operations on one input buffer, one output buffer, and 7 registers.
    The syntax of CCL is described in `ccl.el'.  Emacs Lisp function
@@ -199,10 +207,13 @@ Lisp_Object Vtranslation_hash_table_vector;
 #define CCL_WriteStringJump    0x0A /* Write string and jump:
                                        1:A--D--D--R--E--S--S-000XXXXX
                                        2:LENGTH
-                                       3:0000STRIN[0]STRIN[1]STRIN[2]
+                                       3:000MSTRIN[0]STRIN[1]STRIN[2]
                                        ...
                                        ------------------------------
-                                       write_string (STRING, LENGTH);
+                                       if (M)
+                                         write_multibyte_string (STRING, LENGTH);
+                                       else
+                                         write_string (STRING, LENGTH);
                                        IC += ADDRESS;
                                        */
 
@@ -309,13 +320,16 @@ Lisp_Object Vtranslation_hash_table_vector;
 
 #define CCL_WriteConstString   0x14 /* Write a constant or a string:
                                        1:CCCCCCCCCCCCCCCCCCCCrrrXXXXX
-                                       [2:0000STRIN[0]STRIN[1]STRIN[2]]
+                                       [2:000MSTRIN[0]STRIN[1]STRIN[2]]
                                        [...]
                                        -----------------------------
                                        if (!rrr)
                                          write (CC..C)
                                        else
-                                         write_string (STRING, CC..C);
+                                         if (M)
+                                           write_multibyte_string (STRING, CC..C);
+                                         else
+                                           write_string (STRING, CC..C);
                                          IC += (CC..C + 2) / 3;
                                        */
 
@@ -743,136 +757,87 @@ while(0)
 
 /* Encode one character CH to multibyte form and write to the current
    output buffer.  If CH is less than 256, CH is written as is.  */
-#define CCL_WRITE_CHAR(ch)                                             \
-  do {                                                                 \
-    int bytes = SINGLE_BYTE_CHAR_P (ch) ? 1: CHAR_BYTES (ch);          \
-    if (!dst)                                                          \
-      CCL_INVALID_CMD;                                                 \
-    else if (dst + bytes + extra_bytes < (dst_bytes ? dst_end : src))  \
-      {                                                                        \
-       if (bytes == 1)                                                 \
-         {                                                             \
-           *dst++ = (ch);                                              \
-           if (extra_bytes && (ch) >= 0x80 && (ch) < 0xA0)             \
-             /* We may have to convert this eight-bit char to          \
-                multibyte form later.  */                              \
-             extra_bytes++;                                            \
-         }                                                             \
-       else if (CHAR_VALID_P (ch, 0))                                  \
-         dst += CHAR_STRING (ch, dst);                                 \
-       else                                                            \
-         CCL_INVALID_CMD;                                              \
-      }                                                                        \
-    else                                                               \
-      CCL_SUSPEND (CCL_STAT_SUSPEND_BY_DST);                           \
-  } while (0)
-
-/* Encode one character CH to multibyte form and write to the current
-   output buffer.  The output bytes always forms a valid multibyte
-   sequence.  */
-#define CCL_WRITE_MULTIBYTE_CHAR(ch)                                   \
-  do {                                                                 \
-    int bytes = CHAR_BYTES (ch);                                       \
-    if (!dst)                                                          \
-      CCL_INVALID_CMD;                                                 \
-    else if (dst + bytes + extra_bytes < (dst_bytes ? dst_end : src))  \
-      {                                                                        \
-       if (CHAR_VALID_P ((ch), 0))                                     \
-         dst += CHAR_STRING ((ch), dst);                               \
-       else                                                            \
-         CCL_INVALID_CMD;                                              \
-      }                                                                        \
-    else                                                               \
-      CCL_SUSPEND (CCL_STAT_SUSPEND_BY_DST);                           \
+#define CCL_WRITE_CHAR(ch)                     \
+  do {                                         \
+    if (! dst)                                 \
+      CCL_INVALID_CMD;                         \
+    else if (dst < dst_end)                    \
+      *dst++ = (ch);                           \
+    else                                       \
+      CCL_SUSPEND (CCL_STAT_SUSPEND_BY_DST);   \
   } while (0)
 
 /* Write a string at ccl_prog[IC] of length LEN to the current output
    buffer.  */
-#define CCL_WRITE_STRING(len)                          \
-  do {                                                 \
-    if (!dst)                                          \
-      CCL_INVALID_CMD;                                 \
-    else if (dst + len <= (dst_bytes ? dst_end : src)) \
-      for (i = 0; i < len; i++)                                \
-       *dst++ = ((XFASTINT (ccl_prog[ic + (i / 3)]))   \
-                 >> ((2 - (i % 3)) * 8)) & 0xFF;       \
-    else                                               \
-      CCL_SUSPEND (CCL_STAT_SUSPEND_BY_DST);           \
-  } while (0)
-
-/* Read one byte from the current input buffer into REGth register.  */
-#define CCL_READ_CHAR(REG)                             \
-  do {                                                 \
-    if (!src)                                          \
-      CCL_INVALID_CMD;                                 \
-    else if (src < src_end)                            \
-      {                                                        \
-       REG = *src++;                                   \
-       if (REG == '\n'                                 \
-           && ccl->eol_type != CODING_EOL_LF)          \
-         {                                             \
-           /* We are encoding.  */                     \
-           if (ccl->eol_type == CODING_EOL_CRLF)       \
-             {                                         \
-               if (ccl->cr_consumed)                   \
-                 ccl->cr_consumed = 0;                 \
-               else                                    \
-                 {                                     \
-                   ccl->cr_consumed = 1;               \
-                   REG = '\r';                         \
-                   src--;                              \
-                 }                                     \
-             }                                         \
-           else                                        \
-             REG = '\r';                               \
-         }                                             \
-       if (REG == LEADING_CODE_8_BIT_CONTROL           \
-           && ccl->multibyte)                          \
-         REG = *src++ - 0x20;                          \
-      }                                                        \
-    else if (ccl->last_block)                          \
-      {                                                        \
-       REG = -1;                                       \
-        ic = eof_ic;                                   \
-        goto ccl_repeat;                               \
-      }                                                        \
-    else                                               \
-      CCL_SUSPEND (CCL_STAT_SUSPEND_BY_SRC);           \
-  } while (0)
-
-
-/* Set C to the character code made from CHARSET and CODE.  This is
-   like MAKE_CHAR but check the validity of CHARSET and CODE.  If they
-   are not valid, set C to (CODE & 0xFF) because that is usually the
-   case that CCL_ReadMultibyteChar2 read an invalid code and it set
-   CODE to that invalid byte.  */
-
-#define CCL_MAKE_CHAR(charset, code, c)                                \
+#define CCL_WRITE_STRING(len)                                  \
   do {                                                         \
-    if (charset == CHARSET_ASCII)                              \
-      c = code & 0xFF;                                         \
-    else if (CHARSET_DEFINED_P (charset)                       \
-            && (code & 0x7F) >= 32                             \
-            && (code < 256 || ((code >> 7) & 0x7F) >= 32))     \
+    int i;                                                     \
+    if (!dst)                                                  \
+      CCL_INVALID_CMD;                                         \
+    else if (dst + len <= dst_end)                             \
       {                                                                \
-       int c1 = code & 0x7F, c2 = 0;                           \
-                                                               \
-       if (code >= 256)                                        \
-         c2 = c1, c1 = (code >> 7) & 0x7F;                     \
-       c = MAKE_CHAR (charset, c1, c2);                        \
+       if (XFASTINT (ccl_prog[ic]) & 0x1000000)                \
+         for (i = 0; i < len; i++)                             \
+           *dst++ = XFASTINT (ccl_prog[ic + i]) & 0xFFFFFF;    \
+       else                                                    \
+         for (i = 0; i < len; i++)                             \
+           *dst++ = ((XFASTINT (ccl_prog[ic + (i / 3)]))       \
+                     >> ((2 - (i % 3)) * 8)) & 0xFF;           \
       }                                                                \
     else                                                       \
-      c = code & 0xFF;                                         \
+      CCL_SUSPEND (CCL_STAT_SUSPEND_BY_DST);                   \
   } while (0)
 
+/* Read one byte from the current input buffer into Rth register.  */
+#define CCL_READ_CHAR(r)                       \
+  do {                                         \
+    if (! src)                                 \
+      CCL_INVALID_CMD;                         \
+    else if (src < src_end)                    \
+      r = *src++;                              \
+    else if (ccl->last_block)                  \
+      {                                                \
+       r = -1;                                 \
+       ic = ccl->eof_ic;                       \
+       goto ccl_repeat;                        \
+      }                                                \
+    else                                       \
+      CCL_SUSPEND (CCL_STAT_SUSPEND_BY_SRC);   \
+    } while (0)
+
+/* Decode CODE by a charset whose id is ID.  If ID is 0, return CODE
+   as is for backward compatibility.  Assume that we can use the
+   variable `charset'.  */
+
+#define CCL_DECODE_CHAR(id, code)      \
+  ((id) == 0 ? (code)                  \
+   : (charset = CHARSET_FROM_ID ((id)), DECODE_CHAR (charset, (code))))
+
+/* Encode character C by some of charsets in CHARSET_LIST.  Set ID to
+   the id of the used charset, ENCODED to the resulf of encoding.
+   Assume that we can use the variable `charset'.  */
+
+#define CCL_ENCODE_CHAR(c, charset_list, id, encoded)          \
+  do {                                                         \
+    unsigned code;                                             \
+                                                               \
+    charset = char_charset ((c), (charset_list), &code);       \
+    if (! charset && ! NILP (charset_list))                    \
+      charset = char_charset ((c), Qnil, &code);               \
+    if (charset)                                               \
+      {                                                                \
+       (id) = CHARSET_ID (charset);                            \
+       (encoded) = code;                                       \
+      }                                                                \
+   } while (0)
 
-/* Execute CCL code on SRC_BYTES length text at SOURCE.  The resulting
-   text goes to a place pointed by DESTINATION, the length of which
-   should not exceed DST_BYTES.  The bytes actually processed is
-   returned as *CONSUMED.  The return value is the length of the
-   resulting text.  As a side effect, the contents of CCL registers
-   are updated.  If SOURCE or DESTINATION is NULL, only operations on
-   registers are permitted.  */
+/* Execute CCL code on characters at SOURCE (length SRC_SIZE).  The
+   resulting text goes to a place pointed by DESTINATION, the length
+   of which should not exceed DST_SIZE.  As a side effect, how many
+   characters are consumed and produced are recorded in CCL->consumed
+   and CCL->produced, and the contents of CCL registers are updated.
+   If SOURCE or DESTINATION is NULL, only operations on registers are
+   permitted.  */
 
 #ifdef CCL_DEBUG
 #define CCL_DEBUG_BACKTRACE_LEN 256
@@ -897,36 +862,32 @@ struct ccl_prog_stack
 /* For the moment, we only support depth 256 of stack.  */
 static struct ccl_prog_stack ccl_prog_stack_struct[256];
 
-int
-ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
+void
+ccl_driver (ccl, source, destination, src_size, dst_size, charset_list)
      struct ccl_program *ccl;
-     unsigned char *source, *destination;
-     int src_bytes, dst_bytes;
-     int *consumed;
+     int *source, *destination;
+     int src_size, dst_size;
+     Lisp_Object charset_list;
 {
   register int *reg = ccl->reg;
   register int ic = ccl->ic;
   register int code = 0, field1, field2;
   register Lisp_Object *ccl_prog = ccl->prog;
-  unsigned char *src = source, *src_end = src + src_bytes;
-  unsigned char *dst = destination, *dst_end = dst + dst_bytes;
+  int *src = source, *src_end = src + src_size;
+  int *dst = destination, *dst_end = dst + dst_size;
   int jump_address;
   int i = 0, j, op;
   int stack_idx = ccl->stack_idx;
   /* Instruction counter of the current CCL code. */
   int this_ic = 0;
-  /* CCL_WRITE_CHAR will produce 8-bit code of range 0x80..0x9F.  But,
-     each of them will be converted to multibyte form of 2-byte
-     sequence.  For that conversion, we remember how many more bytes
-     we must keep in DESTINATION in this variable.  */
-  int extra_bytes = ccl->eight_bit_control;
+  struct charset *charset;
   int eof_ic = ccl->eof_ic;
   int eof_hit = 0;
 
   if (ic >= eof_ic)
     ic = CCL_HEADER_MAIN;
 
-  if (ccl->buf_magnification == 0) /* We can't produce any bytes.  */
+  if (ccl->buf_magnification == 0) /* We can't read/produce any bytes.  */
     dst = NULL;
 
   /* Set mapping stack pointer. */
@@ -951,8 +912,8 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
          /* We can't just signal Qquit, instead break the loop as if
              the whole data is processed.  Don't reset Vquit_flag, it
              must be handled later at a safer place.  */
-         if (consumed)
-           src = source + src_bytes;
+         if (src)
+           src = source + src_size;
          ccl->status = CCL_STAT_QUIT;
          break;
        }
@@ -1273,8 +1234,22 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
            case CCL_LE: reg[rrr] = i <= j; break;
            case CCL_GE: reg[rrr] = i >= j; break;
            case CCL_NE: reg[rrr] = i != j; break;
-           case CCL_DECODE_SJIS: DECODE_SJIS (i, j, reg[rrr], reg[7]); break;
-           case CCL_ENCODE_SJIS: ENCODE_SJIS (i, j, reg[rrr], reg[7]); break;
+           case CCL_DECODE_SJIS:
+             {
+               i = (i << 8) | j;
+               SJIS_TO_JIS (i);
+               reg[rrr] = i >> 8;
+               reg[7] = i & 0xFF;
+               break;
+             }
+           case CCL_ENCODE_SJIS:
+             {
+               i = (i << 8) | j;
+               JIS_TO_SJIS (i);
+               reg[rrr] = i >> 8;
+               reg[7] = i & 0xFF;
+               break;
+             }
            default: CCL_INVALID_CMD;
            }
          code &= 0x1F;
@@ -1294,166 +1269,29 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
            case CCL_ReadMultibyteChar2:
              if (!src)
                CCL_INVALID_CMD;
-
-             if (src >= src_end)
-               {
-                 src++;
-                 goto ccl_read_multibyte_character_suspend;
-               }
-
-             if (!ccl->multibyte)
-               {
-                 int bytes;
-                 if (!UNIBYTE_STR_AS_MULTIBYTE_P (src, src_end - src, bytes))
-                   {
-                     reg[RRR] = CHARSET_8_BIT_CONTROL;
-                     reg[rrr] = *src++;
-                     break;
-                   }
-               }
-             i = *src++;
-             if (i == '\n' && ccl->eol_type != CODING_EOL_LF)
-               {
-                 /* We are encoding.  */
-                 if (ccl->eol_type == CODING_EOL_CRLF)
-                   {
-                     if (ccl->cr_consumed)
-                       ccl->cr_consumed = 0;
-                     else
-                       {
-                         ccl->cr_consumed = 1;
-                         i = '\r';
-                         src--;
-                       }
-                   }
-                 else
-                   i = '\r';
-                 reg[rrr] = i;
-                 reg[RRR] = CHARSET_ASCII;
-               }
-             else if (i < 0x80)
-               {
-                 /* ASCII */
-                 reg[rrr] = i;
-                 reg[RRR] = CHARSET_ASCII;
-               }
-             else if (i <= MAX_CHARSET_OFFICIAL_DIMENSION2)
-               {
-                 int dimension = BYTES_BY_CHAR_HEAD (i) - 1;
-
-                 if (dimension == 0)
-                   {
-                     /* `i' is a leading code for an undefined charset.  */
-                     reg[RRR] = CHARSET_8_BIT_GRAPHIC;
-                     reg[rrr] = i;
-                   }
-                 else if (src + dimension > src_end)
-                   goto ccl_read_multibyte_character_suspend;
-                 else
-                   {
-                     reg[RRR] = i;
-                     i = (*src++ & 0x7F);
-                     if (dimension == 1)
-                       reg[rrr] = i;
-                     else
-                       reg[rrr] = ((i << 7) | (*src++ & 0x7F));
-                   }
-               }
-             else if ((i == LEADING_CODE_PRIVATE_11)
-                      || (i == LEADING_CODE_PRIVATE_12))
-               {
-                 if ((src + 1) >= src_end)
-                   goto ccl_read_multibyte_character_suspend;
-                 reg[RRR] = *src++;
-                 reg[rrr] = (*src++ & 0x7F);
-               }
-             else if ((i == LEADING_CODE_PRIVATE_21)
-                      || (i == LEADING_CODE_PRIVATE_22))
-               {
-                 if ((src + 2) >= src_end)
-                   goto ccl_read_multibyte_character_suspend;
-                 reg[RRR] = *src++;
-                 i = (*src++ & 0x7F);
-                 reg[rrr] = ((i << 7) | (*src & 0x7F));
-                 src++;
-               }
-             else if (i == LEADING_CODE_8_BIT_CONTROL)
-               {
-                 if (src >= src_end)
-                   goto ccl_read_multibyte_character_suspend;
-                 reg[RRR] = CHARSET_8_BIT_CONTROL;
-                 reg[rrr] = (*src++ - 0x20);
-               }
-             else if (i >= 0xA0)
-               {
-                 reg[RRR] = CHARSET_8_BIT_GRAPHIC;
-                 reg[rrr] = i;
-               }
-             else
-               {
-                 /* INVALID CODE.  Return a single byte character.  */
-                 reg[RRR] = CHARSET_ASCII;
-                 reg[rrr] = i;
-               }
-             break;
-
-           ccl_read_multibyte_character_suspend:
-             if (src <= src_end && !ccl->multibyte && ccl->last_block)
-               {
-                 reg[RRR] = CHARSET_8_BIT_CONTROL;
-                 reg[rrr] = i;
-                 break;
-               }
-             src--;
-             if (ccl->last_block)
-               {
-                 ic = eof_ic;
-                 eof_hit = 1;
-                 goto ccl_repeat;
-               }
-             else
-               CCL_SUSPEND (CCL_STAT_SUSPEND_BY_SRC);
-
+             CCL_READ_CHAR (i);
+             CCL_ENCODE_CHAR (i, charset_list, reg[RRR], reg[rrr]);
              break;
 
            case CCL_WriteMultibyteChar2:
-             i = reg[RRR]; /* charset */
-             if (i == CHARSET_ASCII
-                 || i == CHARSET_8_BIT_CONTROL
-                 || i == CHARSET_8_BIT_GRAPHIC)
-               i = reg[rrr] & 0xFF;
-             else if (CHARSET_DIMENSION (i) == 1)
-               i = ((i - 0x70) << 7) | (reg[rrr] & 0x7F);
-             else if (i < MIN_CHARSET_PRIVATE_DIMENSION2)
-               i = ((i - 0x8F) << 14) | reg[rrr];
-             else
-               i = ((i - 0xE0) << 14) | reg[rrr];
-
-             CCL_WRITE_MULTIBYTE_CHAR (i);
-
+             if (! dst)
+               CCL_INVALID_CMD;
+             i = CCL_DECODE_CHAR (reg[RRR], reg[rrr]);
+             CCL_WRITE_CHAR (i);
              break;
 
            case CCL_TranslateCharacter:
-             CCL_MAKE_CHAR (reg[RRR], reg[rrr], i);
-             op = translate_char (GET_TRANSLATION_TABLE (reg[Rrr]),
-                                  i, -1, 0, 0);
-             SPLIT_CHAR (op, reg[RRR], i, j);
-             if (j != -1)
-               i = (i << 7) | j;
-
-             reg[rrr] = i;
+             i = CCL_DECODE_CHAR (reg[RRR], reg[rrr]);
+             op = translate_char (GET_TRANSLATION_TABLE (reg[Rrr]), i);
+             CCL_ENCODE_CHAR (op, charset_list, reg[RRR], reg[rrr]);
              break;
 
            case CCL_TranslateCharacterConstTbl:
              op = XINT (ccl_prog[ic]); /* table */
              ic++;
-             CCL_MAKE_CHAR (reg[RRR], reg[rrr], i);
-             op = translate_char (GET_TRANSLATION_TABLE (op), i, -1, 0, 0);
-             SPLIT_CHAR (op, reg[RRR], i, j);
-             if (j != -1)
-               i = (i << 7) | j;
-
-             reg[rrr] = i;
+             i = CCL_DECODE_CHAR (reg[RRR], reg[rrr]);
+             op = translate_char (GET_TRANSLATION_TABLE (op), i);
+             CCL_ENCODE_CHAR (op, charset_list, reg[RRR], reg[rrr]);
              break;
 
            case CCL_LookupIntConstTbl:
@@ -1467,12 +1305,10 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
                  {
                    Lisp_Object opl;
                    opl = HASH_VALUE (h, op);
-                   if (!CHAR_VALID_P (XINT (opl), 0))
+                   if (! CHARACTERP (opl))
                      CCL_INVALID_CMD;
-                   SPLIT_CHAR (XINT (opl), reg[RRR], i, j);
-                   if (j != -1)
-                     i = (i << 7) | j;
-                   reg[rrr] = i;
+                   reg[RRR] = charset_unicode;
+                   reg[rrr] = op;
                    reg[7] = 1; /* r7 true for success */
                  }
                else
@@ -1483,7 +1319,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
            case CCL_LookupCharConstTbl:
              op = XINT (ccl_prog[ic]); /* table */
              ic++;
-             CCL_MAKE_CHAR (reg[RRR], reg[rrr], i);
+             i = CCL_DECODE_CHAR (reg[RRR], reg[rrr]);
              {
                struct Lisp_Hash_Table *h = GET_HASH_TABLE (op);
 
@@ -1917,10 +1753,10 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
        }
 
       msglen = strlen (msg);
-      if (dst + msglen <= (dst_bytes ? dst_end : src))
+      if (dst + msglen <= dst_end)
        {
-         bcopy (msg, dst, msglen);
-         dst += msglen;
+         for (i = 0; i < msglen; i++)
+           *dst++ = msg[i];
        }
 
       if (ccl->status == CCL_STAT_INVALID_CMD)
@@ -1946,10 +1782,11 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed)
   ccl->ic = ic;
   ccl->stack_idx = stack_idx;
   ccl->prog = ccl_prog;
-  ccl->eight_bit_control = (extra_bytes > 1);
-  if (consumed)
-    *consumed = src - source;
-  return (dst ? dst - destination : 0);
+  ccl->consumed = src - source;
+  if (dst != NULL)
+    ccl->produced = dst - destination;
+  else
+    ccl->produced = 0;
 }
 
 /* Resolve symbols in the specified CCL code (Lisp vector).  This
@@ -2109,7 +1946,6 @@ setup_ccl_program (ccl, ccl_prog)
   ccl->private_state = 0;
   ccl->status = 0;
   ccl->stack_idx = 0;
-  ccl->eol_type = CODING_EOL_LF;
   ccl->suppress_error = 0;
   ccl->eight_bit_control = 0;
   return 0;
@@ -2197,7 +2033,7 @@ programs.  */)
                  ? XINT (AREF (reg, i))
                  : 0);
 
-  ccl_driver (&ccl, (unsigned char *)0, (unsigned char *)0, 0, 0, (int *)0);
+  ccl_driver (&ccl, NULL, NULL, 0, 0, Qnil);
   QUIT;
   if (ccl.status != CCL_STAT_SUCCESS)
     error ("Error in CCL program at %dth code", ccl.ic);
@@ -2239,10 +2075,13 @@ usage: (ccl-execute-on-string CCL-PROGRAM STATUS STRING &optional CONTINUE UNIBY
 {
   Lisp_Object val;
   struct ccl_program ccl;
-  int i, produced;
+  int i;
   int outbufsize;
-  char *outbuf;
-  struct gcpro gcpro1, gcpro2;
+  unsigned char *outbuf, *outp;
+  int str_chars, str_bytes;
+#define CCL_EXECUTE_BUF_SIZE 1024
+  int source[CCL_EXECUTE_BUF_SIZE], destination[CCL_EXECUTE_BUF_SIZE];
+  int consumed_chars, consumed_bytes, produced_chars;
 
   if (setup_ccl_program (&ccl, ccl_prog) < 0)
     error ("Invalid CCL program");
@@ -2252,7 +2091,8 @@ usage: (ccl-execute-on-string CCL-PROGRAM STATUS STRING &optional CONTINUE UNIBY
     error ("Length of vector STATUS is not 9");
   CHECK_STRING (str);
 
-  GCPRO2 (status, str);
+  str_chars = SCHARS (str);
+  str_bytes = SBYTES (str);
 
   for (i = 0; i < 8; i++)
     {
@@ -2267,33 +2107,90 @@ usage: (ccl-execute-on-string CCL-PROGRAM STATUS STRING &optional CONTINUE UNIBY
       if (ccl.ic < i && i < ccl.size)
        ccl.ic = i;
     }
-  outbufsize = SBYTES (str) * ccl.buf_magnification + 256;
-  outbuf = (char *) xmalloc (outbufsize);
-  ccl.last_block = NILP (contin);
-  ccl.multibyte = STRING_MULTIBYTE (str);
-  produced = ccl_driver (&ccl, SDATA (str), outbuf,
-                        SBYTES (str), outbufsize, (int *) 0);
+
+  outbufsize = (ccl.buf_magnification
+               ? str_bytes * ccl.buf_magnification + 256
+               : str_bytes + 256);
+  outp = outbuf = (unsigned char *) xmalloc (outbufsize);
+
+  consumed_chars = consumed_bytes = 0;
+  produced_chars = 0;
+  while (1)
+    {
+      const unsigned char *p = SDATA (str) + consumed_bytes;
+      const unsigned char *endp = SDATA (str) + str_bytes;
+      int i = 0;
+      int *src, src_size;
+
+      if (endp - p == str_chars - consumed_chars)
+       while (i < CCL_EXECUTE_BUF_SIZE && p < endp)
+         source[i++] = *p++;
+      else
+       while (i < CCL_EXECUTE_BUF_SIZE && p < endp)
+         source[i++] = STRING_CHAR_ADVANCE (p);
+      consumed_chars += i;
+      consumed_bytes = p - SDATA (str);
+
+      if (consumed_bytes == str_bytes)
+       ccl.last_block = NILP (contin);
+      src = source;
+      src_size = i;
+      while (1)
+       {
+         ccl_driver (&ccl, src, destination, src_size, CCL_EXECUTE_BUF_SIZE,
+                     Qnil);
+         produced_chars += ccl.produced;
+         if (NILP (unibyte_p))
+           {
+             if (outp - outbuf + MAX_MULTIBYTE_LENGTH * ccl.produced
+                 > outbufsize)
+               {
+                 int offset = outp - outbuf;
+                 outbufsize += MAX_MULTIBYTE_LENGTH * ccl.produced;
+                 outbuf = (unsigned char *) xrealloc (outbuf, outbufsize);
+                 outp = outbuf + offset;
+               }
+             for (i = 0; i < ccl.produced; i++)
+               CHAR_STRING_ADVANCE (destination[i], outp);
+           }
+         else
+           {
+             if (outp - outbuf + ccl.produced > outbufsize)
+               {
+                 int offset = outp - outbuf;
+                 outbufsize += ccl.produced;
+                 outbuf = (unsigned char *) xrealloc (outbuf, outbufsize);
+                 outp = outbuf + offset;
+               }
+             for (i = 0; i < ccl.produced; i++)
+               *outp++ = destination[i];
+           }
+         src += ccl.consumed;
+         src_size -= ccl.consumed;
+         if (ccl.status != CCL_STAT_SUSPEND_BY_DST)
+           break;
+       }
+
+      if (ccl.status != CCL_STAT_SUSPEND_BY_SRC
+         || str_chars == consumed_chars)
+       break;
+    }
+
+  if (ccl.status == CCL_STAT_INVALID_CMD)
+    error ("Error in CCL program at %dth code", ccl.ic);
+  if (ccl.status == CCL_STAT_QUIT)
+    error ("CCL program interrupted at %dth code", ccl.ic);
+
   for (i = 0; i < 8; i++)
     ASET (status, i, make_number (ccl.reg[i]));
   ASET (status, 8, make_number (ccl.ic));
-  UNGCPRO;
 
   if (NILP (unibyte_p))
-    {
-      int nchars;
-
-      produced = str_as_multibyte (outbuf, outbufsize, produced, &nchars);
-      val = make_multibyte_string (outbuf, nchars, produced);
-    }
+    val = make_multibyte_string ((char *) outbuf, produced_chars,
+                                outp - outbuf);
   else
-    val = make_unibyte_string (outbuf, produced);
+    val = make_unibyte_string ((char *) outbuf, produced_chars);
   xfree (outbuf);
-  QUIT;
-  if (ccl.status == CCL_STAT_SUSPEND_BY_DST)
-    error ("Output buffer for the CCL programs overflow");
-  if (ccl.status != CCL_STAT_SUCCESS
-      && ccl.status != CCL_STAT_SUSPEND_BY_SRC)
-    error ("Error in CCL program at %dth code", ccl.ic);
 
   return val;
 }
@@ -2425,6 +2322,12 @@ syms_of_ccl ()
   staticpro (&Vccl_program_table);
   Vccl_program_table = Fmake_vector (make_number (32), Qnil);
 
+  Qccl = intern ("ccl");
+  staticpro (&Qccl);
+
+  Qcclp = intern ("cclp");
+  staticpro (&Qcclp);
+
   Qccl_program = intern ("ccl-program");
   staticpro (&Qccl_program);
 
index 7199170a15c7793f812831fcaad19ca511fadae3..d76038c857d8f436b99cafe9e443a5120e0244bb 100644 (file)
--- a/src/ccl.h
+++ b/src/ccl.h
@@ -3,6 +3,9 @@
      2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
+   Copyright (C) 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -59,16 +62,14 @@ struct ccl_program {
                                   many times bigger the output buffer
                                   should be than the input buffer.  */
   int stack_idx;               /* How deep the call of CCL_Call is nested.  */
-  int eol_type;                        /* When the CCL program is used for
-                                  encoding by a coding system, set to
-                                  the eol_type of the coding system.
-                                  In other cases, always
-                                  CODING_EOL_LF.  */
-  int multibyte;               /* 1 if the source text is multibyte.  */
+  int src_multibyte;           /* 1 if the input buffer is multibyte.  */
+  int dst_multibyte;           /* 1 if the output buffer is multibyte.  */
   int cr_consumed;             /* Flag for encoding DOS-like EOL
                                   format when the CCL program is used
                                   for encoding by a coding
                                   system.  */
+  int consumed;
+  int produced;
   int suppress_error;          /* If nonzero, don't insert error
                                   message in the output.  */
   int eight_bit_control;       /* If nonzero, ccl_driver counts all
@@ -82,13 +83,13 @@ struct ccl_program {
    coding_system.  */
 
 struct ccl_spec {
-  struct ccl_program decoder;
-  struct ccl_program encoder;
-  unsigned char valid_codes[256];
+  struct ccl_program ccl;
   int cr_carryover;            /* CR carryover flag.  */
   unsigned char eight_bit_carryover[MAX_MULTIBYTE_LENGTH];
 };
 
+#define CODING_SPEC_CCL_PROGRAM(coding) ((coding)->spec.ccl.ccl)
+
 /* Alist of fontname patterns vs corresponding CCL program.  */
 extern Lisp_Object Vfont_ccl_encoder_alist;
 
@@ -99,8 +100,8 @@ extern int setup_ccl_program P_ ((struct ccl_program *, Lisp_Object));
 /* Check if CCL is updated or not.  If not, re-setup members of CCL.  */
 extern int check_ccl_update P_ ((struct ccl_program *));
 
-extern int ccl_driver P_ ((struct ccl_program *, unsigned char *,
-                          unsigned char *, int, int, int *));
+extern void ccl_driver P_ ((struct ccl_program *, int *, int *, int, int,
+                           Lisp_Object));
 
 /* Vector of CCL program names vs corresponding program data.  */
 extern Lisp_Object Vccl_program_table;
@@ -109,6 +110,16 @@ extern Lisp_Object Vccl_program_table;
    is an index for Vccl_protram_table. */
 extern Lisp_Object Qccl_program_idx;
 
+extern Lisp_Object Qccl, Qcclp;
+
+EXFUN (Fccl_program_p, 1);
+
+#define CHECK_CCL_PROGRAM(x)                   \
+  do {                                         \
+    if (NILP (Fccl_program_p (x)))             \
+      x = wrong_type_argument (Qcclp, (x));    \
+  } while (0);
+
 #endif /* EMACS_CCL_H */
 
 /* arch-tag: 14681df7-876d-43de-bc71-6b78e23a4e3c
diff --git a/src/character.c b/src/character.c
new file mode 100644 (file)
index 0000000..15a2c45
--- /dev/null
@@ -0,0 +1,1041 @@
+/* Basic character support.
+   Copyright (C) 1995, 1997, 1998, 2001 Electrotechnical Laboratory, JAPAN.
+     Licensed to the Free Software Foundation.
+   Copyright (C) 2001, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* At first, see the document in `character.h' to understand the code
+   in this file.  */
+
+#ifdef emacs
+#include <config.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef emacs
+
+#include <sys/types.h>
+#include "lisp.h"
+#include "character.h"
+#include "buffer.h"
+#include "charset.h"
+#include "composite.h"
+#include "disptab.h"
+
+#else  /* not emacs */
+
+#include "mulelib.h"
+
+#endif /* emacs */
+
+Lisp_Object Qcharacterp;
+
+/* Vector of translation table ever defined.
+   ID of a translation table is used to index this vector.  */
+Lisp_Object Vtranslation_table_vector;
+
+/* A char-table for characters which may invoke auto-filling.  */
+Lisp_Object Vauto_fill_chars;
+
+Lisp_Object Qauto_fill_chars;
+
+/* Char-table of information about which character to unify to which
+   Unicode character.  */
+Lisp_Object Vchar_unify_table;
+
+/* A char-table.  An element is non-nil iff the corresponding
+   character has a printable glyph.  */
+Lisp_Object Vprintable_chars;
+
+/* A char-table.  An elemnent is a column-width of the corresponding
+   character.  */
+Lisp_Object Vchar_width_table;
+
+/* A char-table.  An element is a symbol indicating the direction
+   property of corresponding character.  */
+Lisp_Object Vchar_direction_table;
+
+/* Variable used locally in the macro FETCH_MULTIBYTE_CHAR.  */
+unsigned char *_fetch_multibyte_char_p;
+
+/* Char table of scripts.  */
+Lisp_Object Vchar_script_table;
+
+/* Alist of scripts vs representative characters.  */
+Lisp_Object Vscript_representative_chars;
+
+static Lisp_Object Qchar_script_table;
+
+/* Mapping table from unibyte chars to multibyte chars.  */
+int unibyte_to_multibyte_table[256];
+
+/* Nth element is 1 iff unibyte char N can be mapped to a multibyte
+   char.  */
+char unibyte_has_multibyte_table[256];
+
+\f
+
+/* Store multibyte form of character C at P.  If C has modifier bits,
+   handle them appropriately.  */
+
+int
+char_string (c, p)
+     unsigned c;
+     unsigned char *p;
+{
+  int bytes;
+
+  if (c & CHAR_MODIFIER_MASK)
+    {
+      /* As an non-ASCII character can't have modifier bits, we just
+        ignore the bits.  */
+      if (ASCII_CHAR_P ((c & ~CHAR_MODIFIER_MASK)))
+       {
+         /* For Meta, Shift, and Control modifiers, we need special care.  */
+         if (c & CHAR_META)
+           {
+             /* Move the meta bit to the right place for a string.  */
+             c = (c & ~CHAR_META) | 0x80;
+           }
+         if (c & CHAR_SHIFT)
+           {
+             /* Shift modifier is valid only with [A-Za-z].  */
+             if ((c & 0377) >= 'A' && (c & 0377) <= 'Z')
+               c &= ~CHAR_SHIFT;
+             else if ((c & 0377) >= 'a' && (c & 0377) <= 'z')
+               c = (c & ~CHAR_SHIFT) - ('a' - 'A');
+           }
+         if (c & CHAR_CTL)
+           {
+             /* Simulate the code in lread.c.  */
+             /* Allow `\C- ' and `\C-?'.  */
+             if (c == (CHAR_CTL | ' '))
+               c = 0;
+             else if (c == (CHAR_CTL | '?'))
+               c = 127;
+             /* ASCII control chars are made from letters (both cases),
+                as well as the non-letters within 0100...0137.  */
+             else if ((c & 0137) >= 0101 && (c & 0137) <= 0132)
+               c &= (037 | (~0177 & ~CHAR_CTL));
+             else if ((c & 0177) >= 0100 && (c & 0177) <= 0137)
+               c &= (037 | (~0177 & ~CHAR_CTL));
+           }
+       }
+
+      /* If C still has any modifier bits, just ignore it.  */
+      c &= ~CHAR_MODIFIER_MASK;
+    }
+
+  MAYBE_UNIFY_CHAR (c);
+
+  if (c <= MAX_3_BYTE_CHAR)
+    {
+      bytes = CHAR_STRING (c, p);
+    }
+  else if (c <= MAX_4_BYTE_CHAR)
+    {
+      p[0] = (0xF0 | (c >> 18));
+      p[1] = (0x80 | ((c >> 12) & 0x3F));
+      p[2] = (0x80 | ((c >> 6) & 0x3F));
+      p[3] = (0x80 | (c & 0x3F));
+      bytes = 4;
+    }
+  else if (c <= MAX_5_BYTE_CHAR)
+    {
+      p[0] = 0xF8;
+      p[1] = (0x80 | ((c >> 18) & 0x0F));
+      p[2] = (0x80 | ((c >> 12) & 0x3F));
+      p[3] = (0x80 | ((c >> 6) & 0x3F));
+      p[4] = (0x80 | (c & 0x3F));
+      bytes = 5;
+    }
+  else if (c <= MAX_CHAR)
+    {
+      c = CHAR_TO_BYTE8 (c);
+      bytes = BYTE8_STRING (c, p);
+    }
+  else
+    error ("Invalid character: %d", c);
+
+  return bytes;
+}
+
+
+/* Return a character whose multibyte form is at P.  Set LEN is not
+   NULL, it must be a pointer to integer.  In that case, set *LEN to
+   the byte length of the multibyte form.  If ADVANCED is not NULL, is
+   must be a pointer to unsigned char.  In that case, set *ADVANCED to
+   the ending address (i.e. the starting address of the next
+   character) of the multibyte form.  */
+
+int
+string_char (p, advanced, len)
+     const unsigned char *p;
+     const unsigned char **advanced;
+     int *len;
+{
+  int c;
+  const unsigned char *saved_p = p;
+
+  if (*p < 0x80 || ! (*p & 0x20) || ! (*p & 0x10))
+    {
+      c = STRING_CHAR_ADVANCE (p);
+    }
+  else if (! (*p & 0x08))
+    {
+      c = ((((p)[0] & 0xF) << 18)
+          | (((p)[1] & 0x3F) << 12)
+          | (((p)[2] & 0x3F) << 6)
+          | ((p)[3] & 0x3F));
+      p += 4;
+    }
+  else
+    {
+      c = ((((p)[1] & 0x3F) << 18)
+          | (((p)[2] & 0x3F) << 12)
+          | (((p)[3] & 0x3F) << 6)
+          | ((p)[4] & 0x3F));
+      p += 5;
+    }
+
+  MAYBE_UNIFY_CHAR (c);
+
+  if (len)
+    *len = p - saved_p;
+  if (advanced)
+    *advanced = p;
+  return c;
+}
+
+
+/* Translate character C by translation table TABLE.  If C is
+   negative, translate a character specified by CHARSET and CODE.  If
+   no translation is found in TABLE, return the untranslated
+   character.  If TABLE is a list, elements are char tables.  In this
+   case, translace C by all tables.  */
+
+int
+translate_char (table, c)
+     Lisp_Object table;
+     int c;
+{
+  if (CHAR_TABLE_P (table))
+    {
+      Lisp_Object ch;
+
+      ch = CHAR_TABLE_REF (table, c);
+      if (CHARACTERP (ch))
+       c = XINT (ch);
+    }
+  else
+    {
+      for (; CONSP (table); table = XCDR (table))
+       c = translate_char (XCAR (table), c);
+    }
+  return c;
+}
+
+/* Convert the multibyte character C to unibyte 8-bit character based
+   on the current value of charset_unibyte.  If dimension of
+   charset_unibyte is more than one, return (C & 0xFF).
+
+   The argument REV_TBL is now ignored.  It will be removed in the
+   future.  */
+
+int
+multibyte_char_to_unibyte (c, rev_tbl)
+     int c;
+     Lisp_Object rev_tbl;
+{
+  struct charset *charset;
+  unsigned c1;
+
+  if (CHAR_BYTE8_P (c))
+    return CHAR_TO_BYTE8 (c);
+  charset = CHARSET_FROM_ID (charset_unibyte);
+  c1 = ENCODE_CHAR (charset, c);
+  return ((c1 != CHARSET_INVALID_CODE (charset)) ? c1 : c & 0xFF);
+}
+
+/* Like multibyte_char_to_unibyte, but return -1 if C is not supported
+   by charset_unibyte.  */
+
+int
+multibyte_char_to_unibyte_safe (c)
+     int c;
+{
+  struct charset *charset;
+  unsigned c1;
+
+  if (CHAR_BYTE8_P (c))
+    return CHAR_TO_BYTE8 (c);
+  charset = CHARSET_FROM_ID (charset_unibyte);
+  c1 = ENCODE_CHAR (charset, c);
+  return ((c1 != CHARSET_INVALID_CODE (charset)) ? c1 : -1);
+}
+
+DEFUN ("characterp", Fcharacterp, Scharacterp, 1, 2, 0,
+       doc: /* Return non-nil if OBJECT is a character.  */)
+     (object, ignore)
+     Lisp_Object object, ignore;
+{
+  return (CHARACTERP (object) ? Qt : Qnil);
+}
+
+DEFUN ("max-char", Fmax_char, Smax_char, 0, 0, 0,
+       doc: /* Return the character of the maximum code.  */)
+     ()
+{
+  return make_number (MAX_CHAR);
+}
+
+DEFUN ("unibyte-char-to-multibyte", Funibyte_char_to_multibyte,
+       Sunibyte_char_to_multibyte, 1, 1, 0,
+       doc: /* Convert the unibyte character CH to multibyte character.
+The multibyte character is a result of decoding CH by
+the current unibyte charset (see `unibyte-charset').  */)
+     (ch)
+     Lisp_Object ch;
+{
+  int c;
+  struct charset *charset;
+
+  CHECK_CHARACTER (ch);
+  c = XFASTINT (ch);
+  if (c >= 0400)
+    error ("Invalid unibyte character: %d", c);
+  charset = CHARSET_FROM_ID (charset_unibyte);
+  c = DECODE_CHAR (charset, c);
+  if (c < 0)
+    c = BYTE8_TO_CHAR (XFASTINT (ch));
+  return make_number (c);
+}
+
+DEFUN ("multibyte-char-to-unibyte", Fmultibyte_char_to_unibyte,
+       Smultibyte_char_to_unibyte, 1, 1, 0,
+       doc: /* Convert the multibyte character CH to unibyte character.\n\
+The unibyte character is a result of encoding CH by
+the current primary charset (value of `charset-primary').  */)
+     (ch)
+     Lisp_Object ch;
+{
+  int c;
+
+  CHECK_CHARACTER (ch);
+  c = XFASTINT (ch);
+  c = CHAR_TO_BYTE8 (c);
+  return make_number (c);
+}
+
+DEFUN ("char-bytes", Fchar_bytes, Schar_bytes, 1, 1, 0,
+       doc: /* Return 1 regardless of the argument CHAR.
+This is now an obsolete function.  We keep it just for backward compatibility.  */)
+     (ch)
+     Lisp_Object ch;
+{
+  CHECK_CHARACTER (ch);
+  return make_number (1);
+}
+
+DEFUN ("char-width", Fchar_width, Schar_width, 1, 1, 0,
+       doc: /* Return width of CHAR when displayed in the current buffer.
+The width is measured by how many columns it occupies on the screen.
+Tab is taken to occupy `tab-width' columns.  */)
+     (ch)
+       Lisp_Object ch;
+{
+  Lisp_Object disp;
+  int c, width;
+  struct Lisp_Char_Table *dp = buffer_display_table ();
+
+  CHECK_CHARACTER (ch);
+  c = XINT (ch);
+
+  /* Get the way the display table would display it.  */
+  disp = dp ? DISP_CHAR_VECTOR (dp, c) : Qnil;
+
+  if (VECTORP (disp))
+    width = ASIZE (disp);
+  else
+    width = CHAR_WIDTH (c);
+
+  return make_number (width);
+}
+
+/* Return width of string STR of length LEN when displayed in the
+   current buffer.  The width is measured by how many columns it
+   occupies on the screen.  If PRECISION > 0, return the width of
+   longest substring that doesn't exceed PRECISION, and set number of
+   characters and bytes of the substring in *NCHARS and *NBYTES
+   respectively.  */
+
+int
+c_string_width (str, len, precision, nchars, nbytes)
+     const unsigned char *str;
+     int precision, *nchars, *nbytes;
+{
+  int i = 0, i_byte = 0;
+  int width = 0;
+  struct Lisp_Char_Table *dp = buffer_display_table ();
+
+  while (i_byte < len)
+    {
+      int bytes, thiswidth;
+      Lisp_Object val;
+      int c = STRING_CHAR_AND_LENGTH (str + i_byte, len - i_byte, bytes);
+
+      if (dp)
+       {
+         val = DISP_CHAR_VECTOR (dp, c);
+         if (VECTORP (val))
+           thiswidth = XVECTOR (val)->size;
+         else
+           thiswidth = CHAR_WIDTH (c);
+       }
+      else
+       {
+         thiswidth = CHAR_WIDTH (c);
+       }
+
+      if (precision > 0
+         && (width + thiswidth > precision))
+       {
+         *nchars = i;
+         *nbytes = i_byte;
+         return width;
+       }
+      i++;
+      i_byte += bytes;
+      width += thiswidth;
+  }
+
+  if (precision > 0)
+    {
+      *nchars = i;
+      *nbytes = i_byte;
+    }
+
+  return width;
+}
+
+/* Return width of string STR of length LEN when displayed in the
+   current buffer.  The width is measured by how many columns it
+   occupies on the screen.  */
+
+int
+strwidth (str, len)
+     unsigned char *str;
+     int len;
+{
+  return c_string_width (str, len, -1, NULL, NULL);
+}
+
+/* Return width of Lisp string STRING when displayed in the current
+   buffer.  The width is measured by how many columns it occupies on
+   the screen while paying attention to compositions.  If PRECISION >
+   0, return the width of longest substring that doesn't exceed
+   PRECISION, and set number of characters and bytes of the substring
+   in *NCHARS and *NBYTES respectively.  */
+
+int
+lisp_string_width (string, precision, nchars, nbytes)
+     Lisp_Object string;
+     int precision, *nchars, *nbytes;
+{
+  int len = SCHARS (string);
+  /* This set multibyte to 0 even if STRING is multibyte when it
+     contains only ascii and eight-bit-graphic, but that's
+     intentional.  */
+  int multibyte = len < SBYTES (string);
+  unsigned char *str = SDATA (string);
+  int i = 0, i_byte = 0;
+  int width = 0;
+  struct Lisp_Char_Table *dp = buffer_display_table ();
+
+  while (i < len)
+    {
+      int chars, bytes, thiswidth;
+      Lisp_Object val;
+      int cmp_id;
+      EMACS_INT ignore, end;
+
+      if (find_composition (i, -1, &ignore, &end, &val, string)
+         && ((cmp_id = get_composition_id (i, i_byte, end - i, val, string))
+             >= 0))
+       {
+         thiswidth = composition_table[cmp_id]->width;
+         chars = end - i;
+         bytes = string_char_to_byte (string, end) - i_byte;
+       }
+      else
+       {
+         int c;
+
+         if (multibyte)
+           c = STRING_CHAR_AND_LENGTH (str + i_byte, len - i_byte, bytes);
+         else
+           c = str[i_byte], bytes = 1;
+         chars = 1;
+         if (dp)
+           {
+             val = DISP_CHAR_VECTOR (dp, c);
+             if (VECTORP (val))
+               thiswidth = XVECTOR (val)->size;
+             else
+               thiswidth = CHAR_WIDTH (c);
+           }
+         else
+           {
+             thiswidth = CHAR_WIDTH (c);
+           }
+       }
+
+      if (precision > 0
+         && (width + thiswidth > precision))
+       {
+         *nchars = i;
+         *nbytes = i_byte;
+         return width;
+       }
+      i += chars;
+      i_byte += bytes;
+      width += thiswidth;
+  }
+
+  if (precision > 0)
+    {
+      *nchars = i;
+      *nbytes = i_byte;
+    }
+
+  return width;
+}
+
+DEFUN ("string-width", Fstring_width, Sstring_width, 1, 1, 0,
+       doc: /* Return width of STRING when displayed in the current buffer.
+Width is measured by how many columns it occupies on the screen.
+When calculating width of a multibyte character in STRING,
+only the base leading-code is considered; the validity of
+the following bytes is not checked.  Tabs in STRING are always
+taken to occupy `tab-width' columns.  */)
+     (str)
+     Lisp_Object str;
+{
+  Lisp_Object val;
+
+  CHECK_STRING (str);
+  XSETFASTINT (val, lisp_string_width (str, -1, NULL, NULL));
+  return val;
+}
+
+DEFUN ("char-direction", Fchar_direction, Schar_direction, 1, 1, 0,
+       doc: /* Return the direction of CHAR.
+The returned value is 0 for left-to-right and 1 for right-to-left.  */)
+     (ch)
+     Lisp_Object ch;
+{
+  int c;
+
+  CHECK_CHARACTER (ch);
+  c = XINT (ch);
+  return CHAR_TABLE_REF (Vchar_direction_table, c);
+}
+
+/* Return the number of characters in the NBYTES bytes at PTR.
+   This works by looking at the contents and checking for multibyte
+   sequences while assuming that there's no invalid sequence.
+   However, if the current buffer has enable-multibyte-characters =
+   nil, we treat each byte as a character.  */
+
+int
+chars_in_text (ptr, nbytes)
+     const unsigned char *ptr;
+     int nbytes;
+{
+  /* current_buffer is null at early stages of Emacs initialization.  */
+  if (current_buffer == 0
+      || NILP (current_buffer->enable_multibyte_characters))
+    return nbytes;
+
+  return multibyte_chars_in_text (ptr, nbytes);
+}
+
+/* Return the number of characters in the NBYTES bytes at PTR.
+   This works by looking at the contents and checking for multibyte
+   sequences while assuming that there's no invalid sequence.  It
+   ignores enable-multibyte-characters.  */
+
+int
+multibyte_chars_in_text (ptr, nbytes)
+     const unsigned char *ptr;
+     int nbytes;
+{
+  const unsigned char *endp = ptr + nbytes;
+  int chars = 0;
+
+  while (ptr < endp)
+    {
+      int len = MULTIBYTE_LENGTH (ptr, endp);
+
+      if (len == 0)
+       abort ();
+      ptr += len;
+      chars++;
+    }
+
+  return chars;
+}
+
+/* Parse unibyte text at STR of LEN bytes as a multibyte text, count
+   characters and bytes in it, and store them in *NCHARS and *NBYTES
+   respectively.  On counting bytes, pay attention to that 8-bit
+   characters not constructing a valid multibyte sequence are
+   represented by 2-byte in a multibyte text.  */
+
+void
+parse_str_as_multibyte (str, len, nchars, nbytes)
+     const unsigned char *str;
+     int len, *nchars, *nbytes;
+{
+  const unsigned char *endp = str + len;
+  int n, chars = 0, bytes = 0;
+
+  if (len >= MAX_MULTIBYTE_LENGTH)
+    {
+      const unsigned char *adjusted_endp = endp - MAX_MULTIBYTE_LENGTH;
+      while (str < adjusted_endp)
+       {
+         if ((n = MULTIBYTE_LENGTH_NO_CHECK (str)) > 0)
+           str += n, bytes += n;
+         else
+           str++, bytes += 2;
+         chars++;
+       }
+    }
+  while (str < endp)
+    {
+      if ((n = MULTIBYTE_LENGTH (str, endp)) > 0)
+       str += n, bytes += n;
+      else
+       str++, bytes += 2;
+      chars++;
+    }
+
+  *nchars = chars;
+  *nbytes = bytes;
+  return;
+}
+
+/* Arrange unibyte text at STR of NBYTES bytes as a multibyte text.
+   It actually converts only such 8-bit characters that don't contruct
+   a multibyte sequence to multibyte forms of Latin-1 characters.  If
+   NCHARS is nonzero, set *NCHARS to the number of characters in the
+   text.  It is assured that we can use LEN bytes at STR as a work
+   area and that is enough.  Return the number of bytes of the
+   resulting text.  */
+
+int
+str_as_multibyte (str, len, nbytes, nchars)
+     unsigned char *str;
+     int len, nbytes, *nchars;
+{
+  unsigned char *p = str, *endp = str + nbytes;
+  unsigned char *to;
+  int chars = 0;
+  int n;
+
+  if (nbytes >= MAX_MULTIBYTE_LENGTH)
+    {
+      unsigned char *adjusted_endp = endp - MAX_MULTIBYTE_LENGTH;
+      while (p < adjusted_endp
+            && (n = MULTIBYTE_LENGTH_NO_CHECK (p)) > 0)
+       p += n, chars++;
+    }
+  while ((n = MULTIBYTE_LENGTH (p, endp)) > 0)
+    p += n, chars++;
+  if (nchars)
+    *nchars = chars;
+  if (p == endp)
+    return nbytes;
+
+  to = p;
+  nbytes = endp - p;
+  endp = str + len;
+  safe_bcopy ((char *) p, (char *) (endp - nbytes), nbytes);
+  p = endp - nbytes;
+
+  if (nbytes >= MAX_MULTIBYTE_LENGTH)
+    {
+      unsigned char *adjusted_endp = endp - MAX_MULTIBYTE_LENGTH;
+      while (p < adjusted_endp)
+       {
+         if ((n = MULTIBYTE_LENGTH_NO_CHECK (p)) > 0)
+           {
+             while (n--)
+               *to++ = *p++;
+           }
+         else
+           {
+             int c = *p++;
+             c = BYTE8_TO_CHAR (c);
+             to += CHAR_STRING (c, to);
+           }
+       }
+      chars++;
+    }
+  while (p < endp)
+    {
+      if ((n = MULTIBYTE_LENGTH (p, endp)) > 0)
+       {
+         while (n--)
+           *to++ = *p++;
+       }
+      else
+       {
+         int c = *p++;
+         c = BYTE8_TO_CHAR (c);
+         to += CHAR_STRING (c, to);
+       }
+      chars++;
+    }
+  if (nchars)
+    *nchars = chars;
+  return (to - str);
+}
+
+/* Parse unibyte string at STR of LEN bytes, and return the number of
+   bytes it may ocupy when converted to multibyte string by
+   `str_to_multibyte'.  */
+
+int
+parse_str_to_multibyte (str, len)
+     unsigned char *str;
+     int len;
+{
+  unsigned char *endp = str + len;
+  int bytes;
+
+  for (bytes = 0; str < endp; str++)
+    bytes += (*str < 0x80) ? 1 : 2;
+  return bytes;
+}
+
+
+/* Convert unibyte text at STR of NBYTES bytes to a multibyte text
+   that contains the same single-byte characters.  It actually
+   converts all 8-bit characters to multibyte forms.  It is assured
+   that we can use LEN bytes at STR as a work area and that is
+   enough.  */
+
+int
+str_to_multibyte (str, len, bytes)
+     unsigned char *str;
+     int len, bytes;
+{
+  unsigned char *p = str, *endp = str + bytes;
+  unsigned char *to;
+
+  while (p < endp && *p < 0x80) p++;
+  if (p == endp)
+    return bytes;
+  to = p;
+  bytes = endp - p;
+  endp = str + len;
+  safe_bcopy ((char *) p, (char *) (endp - bytes), bytes);
+  p = endp - bytes;
+  while (p < endp)
+    {
+      int c = *p++;
+
+      if (c >= 0x80)
+       c = BYTE8_TO_CHAR (c);
+      to += CHAR_STRING (c, to);
+    }
+  return (to - str);
+}
+
+/* Arrange multibyte text at STR of LEN bytes as a unibyte text.  It
+   actually converts characters in the range 0x80..0xFF to
+   unibyte.  */
+
+int
+str_as_unibyte (str, bytes)
+     unsigned char *str;
+     int bytes;
+{
+  const unsigned char *p = str, *endp = str + bytes;
+  unsigned char *to;
+  int c, len;
+
+  while (p < endp)
+    {
+      c = *p;
+      len = BYTES_BY_CHAR_HEAD (c);
+      if (CHAR_BYTE8_HEAD_P (c))
+       break;
+      p += len;
+    }
+  to = str + (p - str);
+  while (p < endp)
+    {
+      c = *p;
+      len = BYTES_BY_CHAR_HEAD (c);
+      if (CHAR_BYTE8_HEAD_P (c))
+       {
+         c = STRING_CHAR_ADVANCE (p);
+         *to++ = CHAR_TO_BYTE8 (c);
+       }
+      else
+       {
+         while (len--) *to++ = *p++;
+       }
+    }
+  return (to - str);
+}
+
+int
+string_count_byte8 (string)
+     Lisp_Object string;
+{
+  int multibyte = STRING_MULTIBYTE (string);
+  int nbytes = SBYTES (string);
+  unsigned char *p = SDATA (string);
+  unsigned char *pend = p + nbytes;
+  int count = 0;
+  int c, len;
+
+  if (multibyte)
+    while (p < pend)
+      {
+       c = *p;
+       len = BYTES_BY_CHAR_HEAD (c);
+
+       if (CHAR_BYTE8_HEAD_P (c))
+         count++;
+       p += len;
+      }
+  else
+    while (p < pend)
+      {
+       if (*p++ >= 0x80)
+         count++;
+      }
+  return count;
+}
+
+
+Lisp_Object
+string_escape_byte8 (string)
+     Lisp_Object string;
+{
+  int nchars = SCHARS (string);
+  int nbytes = SBYTES (string);
+  int multibyte = STRING_MULTIBYTE (string);
+  int byte8_count;
+  const unsigned char *src, *src_end;
+  unsigned char *dst;
+  Lisp_Object val;
+  int c, len;
+
+  if (multibyte && nchars == nbytes)
+    return string;
+
+  byte8_count = string_count_byte8 (string);
+
+  if (byte8_count == 0)
+    return string;
+
+  if (multibyte)
+    /* Convert 2-byte sequence of byte8 chars to 4-byte octal.  */
+    val = make_uninit_multibyte_string (nchars + byte8_count * 3,
+                                       nbytes + byte8_count * 2);
+  else
+    /* Convert 1-byte sequence of byte8 chars to 4-byte octal.  */
+    val = make_uninit_string (nbytes + byte8_count * 3);
+
+  src = SDATA (string);
+  src_end = src + nbytes;
+  dst = SDATA (val);
+  if (multibyte)
+    while (src < src_end)
+      {
+       c = *src;
+       len = BYTES_BY_CHAR_HEAD (c);
+
+       if (CHAR_BYTE8_HEAD_P (c))
+         {
+           c = STRING_CHAR_ADVANCE (src);
+           c = CHAR_TO_BYTE8 (c);
+           sprintf ((char *) dst, "\\%03o", c);
+           dst += 4;
+         }
+       else
+         while (len--) *dst++ = *src++;
+      }
+  else
+    while (src < src_end)
+      {
+       c = *src++;
+       if (c >= 0x80)
+         {
+           sprintf ((char *) dst, "\\%03o", c);
+           dst += 4;
+         }
+       else
+         *dst++ = c;
+      }
+  return val;
+}
+
+\f
+DEFUN ("string", Fstring, Sstring, 0, MANY, 0,
+       doc: /*
+Concatenate all the argument characters and make the result a string.
+usage: (string &rest CHARACTERS)  */)
+     (n, args)
+     int n;
+     Lisp_Object *args;
+{
+  int i;
+  unsigned char *buf = (unsigned char *) alloca (MAX_MULTIBYTE_LENGTH * n);
+  unsigned char *p = buf;
+  int c;
+
+  for (i = 0; i < n; i++)
+    {
+      CHECK_CHARACTER (args[i]);
+      c = XINT (args[i]);
+      p += CHAR_STRING (c, p);
+    }
+
+  return make_string_from_bytes ((char *) buf, n, p - buf);
+}
+
+DEFUN ("unibyte-string", Funibyte_string, Sunibyte_string, 0, MANY, 0,
+       doc: /* Concatenate all the argument bytes and make the result a unibyte string.
+usage: (unibyte-string &rest BYTES)  */)
+     (n, args)
+     int n;
+     Lisp_Object *args;
+{
+  int i;
+  unsigned char *buf = (unsigned char *) alloca (n);
+  unsigned char *p = buf;
+  unsigned c;
+
+  for (i = 0; i < n; i++)
+    {
+      CHECK_NATNUM (args[i]);
+      c = XFASTINT (args[i]);
+      if (c >= 256)
+       args_out_of_range_3 (args[i], make_number (0), make_number (255));
+      *p++ = c;
+    }
+
+  return make_string_from_bytes ((char *) buf, n, p - buf);
+}
+
+void
+init_character_once ()
+{
+}
+
+#ifdef emacs
+
+void
+syms_of_character ()
+{
+  DEFSYM (Qcharacterp, "characterp");
+  DEFSYM (Qauto_fill_chars, "auto-fill-chars");
+
+  staticpro (&Vchar_unify_table);
+  Vchar_unify_table = Qnil;
+
+  defsubr (&Smax_char);
+  defsubr (&Scharacterp);
+  defsubr (&Sunibyte_char_to_multibyte);
+  defsubr (&Smultibyte_char_to_unibyte);
+  defsubr (&Schar_bytes);
+  defsubr (&Schar_width);
+  defsubr (&Sstring_width);
+  defsubr (&Schar_direction);
+  defsubr (&Sstring);
+  defsubr (&Sunibyte_string);
+
+  DEFVAR_LISP ("translation-table-vector",  &Vtranslation_table_vector,
+              doc: /*
+Vector recording all translation tables ever defined.
+Each element is a pair (SYMBOL . TABLE) relating the table to the
+symbol naming it.  The ID of a translation table is an index into this vector.  */);
+  Vtranslation_table_vector = Fmake_vector (make_number (16), Qnil);
+
+  DEFVAR_LISP ("auto-fill-chars", &Vauto_fill_chars,
+              doc: /*
+A char-table for characters which invoke auto-filling.
+Such characters have value t in this table.  */);
+  Vauto_fill_chars = Fmake_char_table (Qauto_fill_chars, Qnil);
+  CHAR_TABLE_SET (Vauto_fill_chars, ' ', Qt);
+  CHAR_TABLE_SET (Vauto_fill_chars, '\n', Qt);
+
+  DEFVAR_LISP ("char-width-table", &Vchar_width_table,
+              doc: /*
+A char-table for width (columns) of each character.  */);
+  Vchar_width_table = Fmake_char_table (Qnil, make_number (1));
+  char_table_set_range (Vchar_width_table, 0x80, 0x9F, make_number (4));
+  char_table_set_range (Vchar_width_table, MAX_5_BYTE_CHAR + 1, MAX_CHAR,
+                       make_number (4));
+
+  DEFVAR_LISP ("char-direction-table", &Vchar_direction_table,
+              doc: /* A char-table for direction of each character.  */);
+  Vchar_direction_table = Fmake_char_table (Qnil, make_number (1));
+
+  DEFVAR_LISP ("printable-chars", &Vprintable_chars,
+              doc: /* A char-table for each printable character.  */);
+  Vprintable_chars = Fmake_char_table (Qnil, Qnil);
+  Fset_char_table_range (Vprintable_chars,
+                        Fcons (make_number (32), make_number (126)), Qt);
+  Fset_char_table_range (Vprintable_chars,
+                        Fcons (make_number (160),
+                               make_number (MAX_5_BYTE_CHAR)), Qt);
+
+  DEFVAR_LISP ("char-script-table", &Vchar_script_table,
+              doc: /* Char table of script symbols.
+It has one extra slot whose value is a list of script symbols.  */);
+
+  /* Intern this now in case it isn't already done.
+     Setting this variable twice is harmless.
+     But don't staticpro it here--that is done in alloc.c.  */
+  Qchar_table_extra_slots = intern ("char-table-extra-slots");
+  DEFSYM (Qchar_script_table, "char-script-table");
+  Fput (Qchar_script_table, Qchar_table_extra_slots, make_number (1));
+  Vchar_script_table = Fmake_char_table (Qchar_script_table, Qnil);
+
+  DEFVAR_LISP ("script-representative-chars", &Vscript_representative_chars,
+              doc: /* Alist of scripts vs the representative characters.  */);
+  Vscript_representative_chars = Qnil;
+}
+
+#endif /* emacs */
+
+/* arch-tag: b6665960-3c3d-4184-85cd-af4318197999
+   (do not change this comment) */
diff --git a/src/character.h b/src/character.h
new file mode 100644 (file)
index 0000000..1e4a120
--- /dev/null
@@ -0,0 +1,667 @@
+/* Header for multibyte character handler.
+   Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN.
+     Licensed to the Free Software Foundation.
+   Copyright (C) 2003, 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#ifndef EMACS_CHARACTER_H
+#define EMACS_CHARACTER_H
+
+/* character code      1st byte   byte sequence
+   --------------      --------   -------------
+        0-7F           00..7F     0xxxxxxx
+       80-7FF          C2..DF     110xxxxx 10xxxxxx
+      800-FFFF         E0..EF     1110xxxx 10xxxxxx 10xxxxxx
+    10000-1FFFFF       F0..F7     11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+   200000-3FFF7F       F8         11111000 1000xxxx 10xxxxxx 10xxxxxx 10xxxxxx
+   3FFF80-3FFFFF       C0..C1     1100000x 10xxxxxx (for eight-bit-char)
+   400000-...          invalid
+
+   invalid 1st byte    80..BF     10xxxxxx
+                       F9..FF     11111xxx (xxx != 000)
+*/
+
+/* Maximum character code ((1 << CHARACTERBITS) - 1).  */
+#define MAX_CHAR  0x3FFFFF
+
+/* Maximum Unicode character code.  */
+#define MAX_UNICODE_CHAR 0x10FFFF
+
+/* Maximum N-byte character codes.  */
+#define MAX_1_BYTE_CHAR 0x7F
+#define MAX_2_BYTE_CHAR 0x7FF
+#define MAX_3_BYTE_CHAR 0xFFFF
+#define MAX_4_BYTE_CHAR 0x1FFFFF
+#define MAX_5_BYTE_CHAR 0x3FFF7F
+
+/* Minimum leading code of multibyte characters.  */
+#define MIN_MULTIBYTE_LEADING_CODE 0xC0
+/* Maximum leading code of multibyte characters.  */
+#define MAX_MULTIBYTE_LEADING_CODE 0xF8
+
+/* Nonzero iff C is a character that corresponds to a raw 8-bit
+   byte.  */
+#define CHAR_BYTE8_P(c) ((c) > MAX_5_BYTE_CHAR)
+
+/* Return the character code for raw 8-bit byte BYTE.  */
+#define BYTE8_TO_CHAR(byte) ((byte) + 0x3FFF00)
+
+/* Return the raw 8-bit byte for character C.  */
+#define CHAR_TO_BYTE8(c)       \
+  (CHAR_BYTE8_P (c)            \
+   ? (c) - 0x3FFF00            \
+   : multibyte_char_to_unibyte (c, Qnil))
+
+/* Nonzero iff BYTE is the 1st byte of a multibyte form of a character
+   that corresponds to a raw 8-bit byte.  */
+#define CHAR_BYTE8_HEAD_P(byte) ((byte) == 0xC0 || (byte) == 0xC1)
+
+/* Mapping table from unibyte chars to multibyte chars.  */
+extern int unibyte_to_multibyte_table[256];
+
+/* Convert the unibyte character C to the corresponding multibyte
+   character.  If C can't be converted, return C.  */
+#define unibyte_char_to_multibyte(c)   \
+  ((c) < 256 ? unibyte_to_multibyte_table[(c)] : (c))
+
+/* Nth element is 1 iff unibyte char N can be mapped to a multibyte
+   char.  */
+extern char unibyte_has_multibyte_table[256];
+
+#define UNIBYTE_CHAR_HAS_MULTIBYTE_P(c) (unibyte_has_multibyte_table[(c)])
+
+/* If C is not ASCII, make it unibyte. */
+#define MAKE_CHAR_UNIBYTE(c)   \
+  do {                         \
+    if (! ASCII_CHAR_P (c))    \
+      c = CHAR_TO_BYTE8 (c);   \
+  } while (0)
+
+
+/* If C is not ASCII, make it multibyte.  It assumes C < 256.  */
+#define MAKE_CHAR_MULTIBYTE(c) ((c) = unibyte_to_multibyte_table[(c)])
+
+/* This is the maximum byte length of multibyte form.  */
+#define MAX_MULTIBYTE_LENGTH 5
+
+/* Return a Lisp character whose character code is C.  It assumes C is
+   a valid character code.  */
+#define make_char(c) make_number (c)
+
+/* Nonzero iff C is an ASCII byte.  */
+#define ASCII_BYTE_P(c) ((unsigned) (c) < 0x80)
+
+/* Nonzero iff X is a character.  */
+#define CHARACTERP(x) (NATNUMP (x) && XFASTINT (x) <= MAX_CHAR)
+
+/* Nonzero iff C is valid as a character code.  GENERICP is not used
+   now.  */
+#define CHAR_VALID_P(c, genericp) ((unsigned) (c) <= MAX_CHAR)
+
+/* Check if Lisp object X is a character or not.  */
+#define CHECK_CHARACTER(x) \
+  CHECK_TYPE (CHARACTERP (x), Qcharacterp, x)
+
+#define CHECK_CHARACTER_CAR(x) \
+  do {                                 \
+    Lisp_Object tmp = XCAR (x);                \
+    CHECK_CHARACTER (tmp);             \
+    XSETCAR ((x), tmp);                        \
+  } while (0)
+
+#define CHECK_CHARACTER_CDR(x) \
+  do {                                 \
+    Lisp_Object tmp = XCDR (x);                \
+    CHECK_CHARACTER (tmp);             \
+    XSETCDR ((x), tmp);                        \
+  } while (0)
+
+/* Nonzero iff C is an ASCII character.  */
+#define ASCII_CHAR_P(c) ((unsigned) (c) < 0x80)
+
+/* Nonzero iff C is a character of code less than 0x100.  */
+#define SINGLE_BYTE_CHAR_P(c) ((unsigned) (c) < 0x100)
+
+/* Nonzero if character C has a printable glyph.  */
+#define CHAR_PRINTABLE_P(c)    \
+  (((c) >= 32 && ((c) < 127)   \
+    || ! NILP (CHAR_TABLE_REF (Vprintable_chars, (c)))))
+
+/* Return byte length of multibyte form for character C.  */
+#define CHAR_BYTES(c)                  \
+  ( (c) <= MAX_1_BYTE_CHAR ? 1         \
+    : (c) <= MAX_2_BYTE_CHAR ? 2       \
+    : (c) <= MAX_3_BYTE_CHAR ? 3       \
+    : (c) <= MAX_4_BYTE_CHAR ? 4       \
+    : (c) <= MAX_5_BYTE_CHAR ? 5       \
+    : 2)
+
+
+/* Return the leading code of multibyte form of C.  */
+#define CHAR_LEADING_CODE(c)                           \
+  ((c) <= MAX_1_BYTE_CHAR ? c                          \
+   : (c) <= MAX_2_BYTE_CHAR ? (0xC0 | ((c) >> 6))      \
+   : (c) <= MAX_3_BYTE_CHAR ? (0xE0 | ((c) >> 12))     \
+   : (c) <= MAX_4_BYTE_CHAR ? (0xF0 | ((c) >> 18))     \
+   : (c) <= MAX_5_BYTE_CHAR ? 0xF8                     \
+   : (0xC0 | (((c) >> 6) & 0x01)))
+
+
+/* Store multibyte form of the character C in P.  The caller should
+   allocate at least MAX_MULTIBYTE_LENGTH bytes area at P in advance.
+   Returns the length of the multibyte form.  */
+
+#define CHAR_STRING(c, p)                      \
+  ((unsigned) (c) <= MAX_1_BYTE_CHAR           \
+   ? ((p)[0] = (c),                            \
+      1)                                       \
+   : (unsigned) (c) <= MAX_2_BYTE_CHAR         \
+   ? ((p)[0] = (0xC0 | ((c) >> 6)),            \
+      (p)[1] = (0x80 | ((c) & 0x3F)),          \
+      2)                                       \
+   : (unsigned) (c) <= MAX_3_BYTE_CHAR         \
+   ? ((p)[0] = (0xE0 | ((c) >> 12)),           \
+      (p)[1] = (0x80 | (((c) >> 6) & 0x3F)),   \
+      (p)[2] = (0x80 | ((c) & 0x3F)),          \
+      3)                                       \
+   : char_string ((unsigned) c, p))
+
+/* Store multibyte form of byte B in P.  The caller should allocate at
+   least MAX_MULTIBYTE_LENGTH bytes area at P in advance.  Returns the
+   length of the multibyte form.  */
+
+#define BYTE8_STRING(b, p)                     \
+  ((p)[0] = (0xC0 | (((b) >> 6) & 0x01)),      \
+   (p)[1] = (0x80 | ((b) & 0x3F)),             \
+   2)
+
+
+/* Store multibyte form of the character C in P.  The caller should
+   allocate at least MAX_MULTIBYTE_LENGTH bytes area at P in advance.
+   And, advance P to the end of the multibyte form.  */
+
+#define CHAR_STRING_ADVANCE(c, p)              \
+  do {                                         \
+    if ((c) <= MAX_1_BYTE_CHAR)                        \
+      *(p)++ = (c);                            \
+    else if ((c) <= MAX_2_BYTE_CHAR)           \
+      *(p)++ = (0xC0 | ((c) >> 6)),            \
+       *(p)++ = (0x80 | ((c) & 0x3F));         \
+    else if ((c) <= MAX_3_BYTE_CHAR)           \
+      *(p)++ = (0xE0 | ((c) >> 12)),           \
+       *(p)++ = (0x80 | (((c) >> 6) & 0x3F)),  \
+       *(p)++ = (0x80 | ((c) & 0x3F));         \
+    else                                       \
+      (p) += char_string ((c), (p));           \
+  } while (0)
+
+
+/* Nonzero iff BYTE starts a non-ASCII character in a multibyte
+   form.  */
+#define LEADING_CODE_P(byte) (((byte) & 0xC0) == 0xC0)
+
+/* Nonzero iff BYTE is a trailing code of a non-ASCII character in a
+   multibyte form.  */
+#define TRAILING_CODE_P(byte) (((byte) & 0xC0) == 0x80)
+
+/* Nonzero iff BYTE starts a character in a multibyte form.
+   This is equivalent to:
+       (ASCII_BYTE_P (byte) || LEADING_CODE_P (byte))  */
+#define CHAR_HEAD_P(byte) (((byte) & 0xC0) != 0x80)
+
+/* Just kept for backward compatibility.  This macro will be removed
+   in the future.  */
+#define BASE_LEADING_CODE_P LEADING_CODE_P
+
+/* How many bytes a character that starts with BYTE occupies in a
+   multibyte form.  */
+#define BYTES_BY_CHAR_HEAD(byte)       \
+  (!((byte) & 0x80) ? 1                        \
+   : !((byte) & 0x20) ? 2              \
+   : !((byte) & 0x10) ? 3              \
+   : !((byte) & 0x08) ? 4              \
+   : 5)
+
+
+/* Return the length of the multi-byte form at string STR of length
+   LEN while assuming that STR points a valid multi-byte form.  As
+   this macro isn't necessary anymore, all callers will be changed to
+   use BYTES_BY_CHAR_HEAD directly in the future.  */
+
+#define MULTIBYTE_FORM_LENGTH(str, len)                \
+  BYTES_BY_CHAR_HEAD (*(str))
+
+/* Parse multibyte string STR of length LENGTH and set BYTES to the
+   byte length of a character at STR while assuming that STR points a
+   valid multibyte form.  As this macro isn't necessary anymore, all
+   callers will be changed to use BYTES_BY_CHAR_HEAD directly in the
+   future.  */
+
+#define PARSE_MULTIBYTE_SEQ(str, length, bytes)        \
+  (bytes) = BYTES_BY_CHAR_HEAD (*(str))
+
+/* The byte length of multibyte form at unibyte string P ending at
+   PEND.  If STR doesn't point a valid multibyte form, return 0.  */
+
+#define MULTIBYTE_LENGTH(p, pend)                              \
+  (p >= pend ? 0                                               \
+   : !((p)[0] & 0x80) ? 1                                      \
+   : ((p + 1 >= pend) || (((p)[1] & 0xC0) != 0x80)) ? 0                \
+   : ((p)[0] & 0xE0) == 0xC0 ? 2                               \
+   : ((p + 2 >= pend) || (((p)[2] & 0xC0) != 0x80)) ? 0                \
+   : ((p)[0] & 0xF0) == 0xE0 ? 3                               \
+   : ((p + 3 >= pend) || (((p)[3] & 0xC0) != 0x80)) ? 0                \
+   : ((p)[0] & 0xF8) == 0xF0 ? 4                               \
+   : ((p + 4 >= pend) || (((p)[4] & 0xC0) != 0x80)) ? 0                \
+   : (p)[0] == 0xF8 && ((p)[1] & 0xF0) == 0x80 ? 5             \
+   : 0)
+
+
+/* Like MULTIBYTE_LENGTH but don't check the ending address.  */
+
+#define MULTIBYTE_LENGTH_NO_CHECK(p)                   \
+  (!((p)[0] & 0x80) ? 1                                        \
+   : ((p)[1] & 0xC0) != 0x80 ? 0                       \
+   : ((p)[0] & 0xE0) == 0xC0 ? 2                       \
+   : ((p)[2] & 0xC0) != 0x80 ? 0                       \
+   : ((p)[0] & 0xF0) == 0xE0 ? 3                       \
+   : ((p)[3] & 0xC0) != 0x80 ? 0                       \
+   : ((p)[0] & 0xF8) == 0xF0 ? 4                       \
+   : ((p)[4] & 0xC0) != 0x80 ? 0                       \
+   : (p)[0] == 0xF8 && ((p)[1] & 0xF0) == 0x80 ? 5     \
+   : 0)
+
+/* If P is before LIMIT, advance P to the next character boundary.  It
+   assumes that P is already at a character boundary of the sane
+   mulitbyte form whose end address is LIMIT.  */
+
+#define NEXT_CHAR_BOUNDARY(p, limit)   \
+  do {                                 \
+    if ((p) < (limit))                 \
+      (p) += BYTES_BY_CHAR_HEAD (*(p));        \
+  } while (0)
+
+
+/* If P is after LIMIT, advance P to the previous character boundary.
+   It assumes that P is already at a character boundary of the sane
+   mulitbyte form whose beginning address is LIMIT.  */
+
+#define PREV_CHAR_BOUNDARY(p, limit)                                   \
+  do {                                                                 \
+    if ((p) > (limit))                                                 \
+      {                                                                        \
+       const unsigned char *p0 = (p);                                  \
+       do {                                                            \
+         p0--;                                                         \
+       } while (p0 >= limit && ! CHAR_HEAD_P (*p0));                   \
+       (p) = (BYTES_BY_CHAR_HEAD (*p0) == (p) - p0) ? p0 : (p) - 1;    \
+      }                                                                        \
+  } while (0)
+
+/* Return the character code of character whose multibyte form is at
+   P.  The argument LEN is ignored.  It will be removed in the
+   future.  */
+
+#define STRING_CHAR(p, len)                                    \
+  (!((p)[0] & 0x80)                                            \
+   ? (p)[0]                                                    \
+   : ! ((p)[0] & 0x20)                                         \
+   ? (((((p)[0] & 0x1F) << 6)                                  \
+       | ((p)[1] & 0x3F))                                      \
+      + (((unsigned char) (p)[0]) < 0xC2 ? 0x3FFF80 : 0))      \
+   : ! ((p)[0] & 0x10)                                         \
+   ? ((((p)[0] & 0x0F) << 12)                                  \
+      | (((p)[1] & 0x3F) << 6)                                 \
+      | ((p)[2] & 0x3F))                                       \
+   : string_char ((p), NULL, NULL))
+
+
+/* Like STRING_CHAR but set ACTUAL_LEN to the length of multibyte
+   form.  The argument LEN is ignored.  It will be removed in the
+   future.  */
+
+#define STRING_CHAR_AND_LENGTH(p, len, actual_len)             \
+  (!((p)[0] & 0x80)                                            \
+   ? ((actual_len) = 1, (p)[0])                                        \
+   : ! ((p)[0] & 0x20)                                         \
+   ? ((actual_len) = 2,                                                \
+      (((((p)[0] & 0x1F) << 6)                                 \
+       | ((p)[1] & 0x3F))                                      \
+       + (((unsigned char) (p)[0]) < 0xC2 ? 0x3FFF80 : 0)))    \
+   : ! ((p)[0] & 0x10)                                         \
+   ? ((actual_len) = 3,                                                \
+      ((((p)[0] & 0x0F) << 12)                                 \
+       | (((p)[1] & 0x3F) << 6)                                        \
+       | ((p)[2] & 0x3F)))                                     \
+   : string_char ((p), NULL, &actual_len))
+
+
+/* Like STRING_CHAR but advance P to the end of multibyte form.  */
+
+#define STRING_CHAR_ADVANCE(p)                                 \
+  (!((p)[0] & 0x80)                                            \
+   ? *(p)++                                                    \
+   : ! ((p)[0] & 0x20)                                         \
+   ? ((p) += 2,                                                        \
+      ((((p)[-2] & 0x1F) << 6)                                 \
+       | ((p)[-1] & 0x3F)                                      \
+       | ((unsigned char) ((p)[-2]) < 0xC2 ? 0x3FFF80 : 0)))   \
+   : ! ((p)[0] & 0x10)                                         \
+   ? ((p) += 3,                                                        \
+      ((((p)[-3] & 0x0F) << 12)                                        \
+       | (((p)[-2] & 0x3F) << 6)                               \
+       | ((p)[-1] & 0x3F)))                                    \
+   : string_char ((p), &(p), NULL))
+
+
+/* Fetch the "next" character from Lisp string STRING at byte position
+   BYTEIDX, character position CHARIDX.  Store it into OUTPUT.
+
+   All the args must be side-effect-free.
+   BYTEIDX and CHARIDX must be lvalues;
+   we increment them past the character fetched.  */
+
+#define FETCH_STRING_CHAR_ADVANCE(OUTPUT, STRING, CHARIDX, BYTEIDX)    \
+  if (1)                                                               \
+    {                                                                  \
+      CHARIDX++;                                                       \
+      if (STRING_MULTIBYTE (STRING))                                   \
+       {                                                               \
+         unsigned char *ptr = &XSTRING (STRING)->data[BYTEIDX];        \
+         int len;                                                      \
+                                                                       \
+         OUTPUT = STRING_CHAR_AND_LENGTH (ptr, 0, len);                \
+         BYTEIDX += len;                                               \
+       }                                                               \
+      else                                                             \
+       OUTPUT = XSTRING (STRING)->data[BYTEIDX++];                     \
+    }                                                                  \
+  else
+
+/* Like FETCH_STRING_CHAR_ADVANCE but return a multibyte character eve
+   if STRING is unibyte.  */
+
+#define FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE(OUTPUT, STRING, CHARIDX, BYTEIDX) \
+  if (1)                                                                     \
+    {                                                                        \
+      CHARIDX++;                                                             \
+      if (STRING_MULTIBYTE (STRING))                                         \
+       {                                                                     \
+         unsigned char *ptr = &XSTRING (STRING)->data[BYTEIDX];              \
+         int len;                                                            \
+                                                                             \
+         OUTPUT = STRING_CHAR_AND_LENGTH (ptr, 0, len);                      \
+         BYTEIDX += len;                                                     \
+       }                                                                     \
+      else                                                                   \
+       {                                                                     \
+         OUTPUT = XSTRING (STRING)->data[BYTEIDX++];                         \
+         MAKE_CHAR_MULTIBYTE (OUTPUT);                                       \
+       }                                                                     \
+    }                                                                        \
+  else
+
+
+/* Like FETCH_STRING_CHAR_ADVANCE but assumes STRING is multibyte.  */
+
+#define FETCH_STRING_CHAR_ADVANCE_NO_CHECK(OUTPUT, STRING, CHARIDX, BYTEIDX) \
+  if (1)                                                                    \
+    {                                                                       \
+      unsigned char *ptr = &XSTRING (STRING)->data[BYTEIDX];                \
+      int len;                                                              \
+                                                                            \
+      OUTPUT = STRING_CHAR_AND_LENGTH (ptr, 0, len);                        \
+      BYTEIDX += len;                                                       \
+      CHARIDX++;                                                            \
+    }                                                                       \
+  else
+
+
+/* Like FETCH_STRING_CHAR_ADVANCE but fetch character from the current
+   buffer.  */
+
+#define FETCH_CHAR_ADVANCE(OUTPUT, CHARIDX, BYTEIDX)           \
+  if (1)                                                       \
+    {                                                          \
+      CHARIDX++;                                               \
+      if (!NILP (current_buffer->enable_multibyte_characters)) \
+       {                                                       \
+         unsigned char *ptr = BYTE_POS_ADDR (BYTEIDX);         \
+         int len;                                              \
+                                                               \
+         OUTPUT= STRING_CHAR_AND_LENGTH (ptr, 0, len);         \
+         BYTEIDX += len;                                       \
+       }                                                       \
+      else                                                     \
+       {                                                       \
+         OUTPUT = *(BYTE_POS_ADDR (BYTEIDX));                  \
+         BYTEIDX++;                                            \
+       }                                                       \
+    }                                                          \
+  else
+
+
+/* Like FETCH_CHAR_ADVANCE but assumes the current buffer is multibyte.  */
+
+#define FETCH_CHAR_ADVANCE_NO_CHECK(OUTPUT, CHARIDX, BYTEIDX)  \
+  if (1)                                                       \
+    {                                                          \
+      unsigned char *ptr = BYTE_POS_ADDR (BYTEIDX);            \
+      int len;                                                 \
+                                                               \
+      OUTPUT= STRING_CHAR_AND_LENGTH (ptr, 0, len);            \
+      BYTEIDX += len;                                          \
+      CHARIDX++;                                               \
+    }                                                          \
+  else
+
+
+/* Increase the buffer byte position POS_BYTE of the current buffer to
+   the next character boundary.  No range checking of POS.  */
+
+#define INC_POS(pos_byte)                              \
+  do {                                                 \
+    unsigned char *p = BYTE_POS_ADDR (pos_byte);       \
+    pos_byte += BYTES_BY_CHAR_HEAD (*p);               \
+  } while (0)
+
+
+/* Decrease the buffer byte position POS_BYTE of the current buffer to
+   the previous character boundary.  No range checking of POS.  */
+
+#define DEC_POS(pos_byte)                      \
+  do {                                         \
+    unsigned char *p;                          \
+                                               \
+    pos_byte--;                                        \
+    if (pos_byte < GPT_BYTE)                   \
+      p = BEG_ADDR + pos_byte - 1;             \
+    else                                       \
+      p = BEG_ADDR + GAP_SIZE + pos_byte - 1;  \
+    while (!CHAR_HEAD_P (*p))                  \
+      {                                                \
+       p--;                                    \
+       pos_byte--;                             \
+      }                                                \
+  } while (0)
+
+/* Increment both CHARPOS and BYTEPOS, each in the appropriate way.  */
+
+#define INC_BOTH(charpos, bytepos)                             \
+  do                                                           \
+    {                                                          \
+      (charpos)++;                                             \
+      if (NILP (current_buffer->enable_multibyte_characters))  \
+       (bytepos)++;                                            \
+      else                                                     \
+       INC_POS ((bytepos));                                    \
+    }                                                          \
+  while (0)
+
+
+/* Decrement both CHARPOS and BYTEPOS, each in the appropriate way.  */
+
+#define DEC_BOTH(charpos, bytepos)                             \
+  do                                                           \
+    {                                                          \
+      (charpos)--;                                             \
+      if (NILP (current_buffer->enable_multibyte_characters))  \
+       (bytepos)--;                                            \
+      else                                                     \
+       DEC_POS ((bytepos));                                    \
+    }                                                          \
+  while (0)
+
+
+/* Increase the buffer byte position POS_BYTE of the current buffer to
+   the next character boundary.  This macro relies on the fact that
+   *GPT_ADDR and *Z_ADDR are always accessible and the values are
+   '\0'.  No range checking of POS_BYTE.  */
+
+#define BUF_INC_POS(buf, pos_byte)                             \
+  do {                                                         \
+    unsigned char *p = BUF_BYTE_ADDRESS (buf, pos_byte);       \
+    pos_byte += BYTES_BY_CHAR_HEAD (*p);                       \
+  } while (0)
+
+
+/* Decrease the buffer byte position POS_BYTE of the current buffer to
+   the previous character boundary.  No range checking of POS_BYTE.  */
+
+#define BUF_DEC_POS(buf, pos_byte)                                     \
+  do {                                                                 \
+    unsigned char *p;                                                  \
+    pos_byte--;                                                                \
+    if (pos_byte < BUF_GPT_BYTE (buf))                                 \
+      p = BUF_BEG_ADDR (buf) + pos_byte - 1;                           \
+    else                                                               \
+      p = BUF_BEG_ADDR (buf) + BUF_GAP_SIZE (buf) + pos_byte - 1;      \
+    while (!CHAR_HEAD_P (*p))                                          \
+      {                                                                        \
+       p--;                                                            \
+       pos_byte--;                                                     \
+      }                                                                        \
+  } while (0)
+
+
+/* If C is a character to be unified with a Unicode character, return
+   the unified Unicode character.  */
+
+#define MAYBE_UNIFY_CHAR(c)                                    \
+  if (c > MAX_UNICODE_CHAR                                     \
+      && CHAR_TABLE_P (Vchar_unify_table))                     \
+    {                                                          \
+      Lisp_Object val;                                         \
+      int unified;                                             \
+                                                               \
+      val = CHAR_TABLE_REF (Vchar_unify_table, c);             \
+      if (! NILP (val))                                                \
+       {                                                       \
+         if (SYMBOLP (val))                                    \
+           {                                                   \
+             Funify_charset (val, Qnil, Qnil);                 \
+             val = CHAR_TABLE_REF (Vchar_unify_table, c);      \
+           }                                                   \
+         if ((unified = XINT (val)) >= 0)                      \
+           c = unified;                                        \
+       }                                                       \
+    }                                                          \
+  else
+
+
+/* Return the width of ASCII character C.  The width is measured by
+   how many columns occupied on the screen when displayed in the
+   current buffer.  */
+
+#define ASCII_CHAR_WIDTH(c)                                            \
+  (c < 0x20                                                            \
+   ? (c == '\t'                                                                \
+      ? XFASTINT (current_buffer->tab_width)                           \
+      : (c == '\n' ? 0 : (NILP (current_buffer->ctl_arrow) ? 4 : 2)))  \
+   : (c < 0x7f                                                         \
+      ? 1                                                              \
+      : ((NILP (current_buffer->ctl_arrow) ? 4 : 2))))
+
+/* Return the width of character C.  The width is measured by how many
+   columns occupied on the screen when displayed in the current
+   buffer.  */
+
+#define CHAR_WIDTH(c)          \
+  (ASCII_CHAR_P (c)            \
+   ? ASCII_CHAR_WIDTH (c)      \
+   : XINT (CHAR_TABLE_REF (Vchar_width_table, c)))
+
+extern int char_resolve_modifier_mask P_ ((int));
+extern int char_string P_ ((unsigned, unsigned char *));
+extern int string_char P_ ((const unsigned char *,
+                           const unsigned char **, int *));
+
+extern int translate_char P_ ((Lisp_Object, int c));
+extern int char_printable_p P_ ((int c));
+extern void parse_str_as_multibyte P_ ((const unsigned char *, int, int *,
+                                       int *));
+extern int parse_str_to_multibyte P_ ((unsigned char *, int));
+extern int str_as_multibyte P_ ((unsigned char *, int, int, int *));
+extern int str_to_multibyte P_ ((unsigned char *, int, int));
+extern int str_as_unibyte P_ ((unsigned char *, int));
+extern int strwidth P_ ((unsigned char *, int));
+extern int c_string_width P_ ((const unsigned char *, int, int, int *, int *));
+extern int lisp_string_width P_ ((Lisp_Object, int, int *, int *));
+
+extern Lisp_Object Vprintable_chars;
+
+extern Lisp_Object Qcharacterp, Qauto_fill_chars;
+extern Lisp_Object Vtranslation_table_vector;
+extern Lisp_Object Vchar_width_table;
+extern Lisp_Object Vchar_direction_table;
+extern Lisp_Object Vchar_unify_table;
+
+extern Lisp_Object string_escape_byte8 P_ ((Lisp_Object));
+
+/* Return a translation table of id number ID.  */
+#define GET_TRANSLATION_TABLE(id) \
+  (XCDR(XVECTOR(Vtranslation_table_vector)->contents[(id)]))
+
+/* A char-table for characters which may invoke auto-filling.  */
+extern Lisp_Object Vauto_fill_chars;
+
+extern Lisp_Object Vchar_script_table;
+extern Lisp_Object Vscript_representative_chars;
+
+/* Copy LEN bytes from FROM to TO.  This macro should be used only
+   when a caller knows that LEN is short and the obvious copy loop is
+   faster than calling bcopy which has some overhead.  Copying a
+   multibyte sequence of a character is the typical case.  */
+
+#define BCOPY_SHORT(from, to, len)             \
+  do {                                         \
+    int i = len;                               \
+    unsigned char *from_p = from, *to_p = to;  \
+    while (i--) *to_p++ = *from_p++;           \
+  } while (0)
+
+#define DEFSYM(sym, name)      \
+  do { (sym) = intern ((name)); staticpro (&(sym)); } while (0)
+
+#endif /* EMACS_CHARACTER_H */
+
+/* arch-tag: 4ef86004-2eff-4073-8cea-cfcbcf7188ac
+   (do not change this comment) */
index 1a85cd39c72451189985efe49353a1c4912b0750..9ed6a7332238702a666441840154fa5cee3f2761 100644 (file)
@@ -1,4 +1,4 @@
-/* Basic multilingual character support.
+/* Basic character set support.
    Copyright (C) 2001, 2002, 2003, 2004, 2005,
                  2006, 2007 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@@ -6,6 +6,10 @@
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
 
+   Copyright (C) 2003, 2004
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
 This file is part of GNU Emacs.
 
 GNU Emacs is free software; you can redistribute it and/or modify
@@ -23,875 +27,1407 @@ along with GNU Emacs; see the file COPYING.  If not, write to
 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 Boston, MA 02110-1301, USA.  */
 
-/* At first, see the document in `charset.h' to understand the code in
-   this file.  */
-
-#ifdef emacs
 #include <config.h>
-#endif
 
 #include <stdio.h>
-
-#ifdef emacs
-
+#include <unistd.h>
+#include <ctype.h>
 #include <sys/types.h>
 #include "lisp.h"
-#include "buffer.h"
+#include "character.h"
 #include "charset.h"
-#include "composite.h"
 #include "coding.h"
 #include "disptab.h"
+#include "buffer.h"
 
-#else  /* not emacs */
+/*** GENERAL NOTES on CODED CHARACTER SETS (CHARSETS) ***
 
-#include "mulelib.h"
+  A coded character set ("charset" hereafter) is a meaningful
+  collection (i.e. language, culture, functionality, etc.) of
+  characters.  Emacs handles multiple charsets at once.  In Emacs Lisp
+  code, a charset is represented by a symbol.  In C code, a charset is
+  represented by its ID number or by a pointer to a struct charset.
 
-#endif /* emacs */
+  The actual information about each charset is stored in two places.
+  Lispy information is stored in the hash table Vcharset_hash_table as
+  a vector (charset attributes).  The other information is stored in
+  charset_table as a struct charset.
 
-Lisp_Object Qcharset, Qascii, Qeight_bit_control, Qeight_bit_graphic;
-Lisp_Object Qunknown;
-
-/* Declaration of special leading-codes.  */
-EMACS_INT leading_code_private_11; /* for private DIMENSION1 of 1-column */
-EMACS_INT leading_code_private_12; /* for private DIMENSION1 of 2-column */
-EMACS_INT leading_code_private_21; /* for private DIMENSION2 of 1-column */
-EMACS_INT leading_code_private_22; /* for private DIMENSION2 of 2-column */
-
-/* Declaration of special charsets.  The values are set by
-   Fsetup_special_charsets.  */
-int charset_latin_iso8859_1;   /* ISO8859-1 (Latin-1) */
-int charset_jisx0208_1978;     /* JISX0208.1978 (Japanese Kanji old set) */
-int charset_jisx0208;          /* JISX0208.1983 (Japanese Kanji) */
-int charset_katakana_jisx0201; /* JISX0201.Kana (Japanese Katakana) */
-int charset_latin_jisx0201;    /* JISX0201.Roman (Japanese Roman) */
-int charset_big5_1;            /* Big5 Level 1 (Chinese Traditional) */
-int charset_big5_2;            /* Big5 Level 2 (Chinese Traditional) */
-int charset_mule_unicode_0100_24ff;
-int charset_mule_unicode_2500_33ff;
-int charset_mule_unicode_e000_ffff;
-
-Lisp_Object Qcharset_table;
-
-/* A char-table containing information of each character set.  */
-Lisp_Object Vcharset_table;
-
-/* A vector of charset symbol indexed by charset-id.  This is used
-   only for returning charset symbol from C functions.  */
-Lisp_Object Vcharset_symbol_table;
-
-/* A list of charset symbols ever defined.  */
+*/
+
+/* List of all charsets.  This variable is used only from Emacs
+   Lisp.  */
 Lisp_Object Vcharset_list;
 
-/* Vector of translation table ever defined.
-   ID of a translation table is used to index this vector.  */
-Lisp_Object Vtranslation_table_vector;
+/* Hash table that contains attributes of each charset.  Keys are
+   charset symbols, and values are vectors of charset attributes.  */
+Lisp_Object Vcharset_hash_table;
 
-/* A char-table for characters which may invoke auto-filling.  */
-Lisp_Object Vauto_fill_chars;
+/* Table of struct charset.  */
+struct charset *charset_table;
 
-Lisp_Object Qauto_fill_chars;
+static int charset_table_size;
+static int charset_table_used;
 
-/* Tables used by macros BYTES_BY_CHAR_HEAD and WIDTH_BY_CHAR_HEAD.  */
-int bytes_by_char_head[256];
-int width_by_char_head[256];
+Lisp_Object Qcharsetp;
 
-/* Mapping table from ISO2022's charset (specified by DIMENSION,
-   CHARS, and FINAL-CHAR) to Emacs' charset.  */
-int iso_charset_table[2][2][128];
+/* Special charset symbols.  */
+Lisp_Object Qascii;
+Lisp_Object Qeight_bit;
+Lisp_Object Qiso_8859_1;
+Lisp_Object Qunicode;
+
+/* The corresponding charsets.  */
+int charset_ascii;
+int charset_eight_bit;
+int charset_iso_8859_1;
+int charset_unicode;
+
+/* The other special charsets.  */
+int charset_jisx0201_roman;
+int charset_jisx0208_1978;
+int charset_jisx0208;
+
+/* Value of charset attribute `charset-iso-plane'.  */
+Lisp_Object Qgl, Qgr;
 
-/* Variables used locally in the macro FETCH_MULTIBYTE_CHAR.  */
-unsigned char *_fetch_multibyte_char_p;
-int _fetch_multibyte_char_len;
+/* Charset of unibyte characters.  */
+int charset_unibyte;
 
-/* Offset to add to a non-ASCII value when inserting it.  */
-EMACS_INT nonascii_insert_offset;
+/* List of charsets ordered by the priority.  */
+Lisp_Object Vcharset_ordered_list;
 
-/* Translation table for converting non-ASCII unibyte characters
-   to multibyte codes, or nil.  */
-Lisp_Object Vnonascii_translation_table;
+/* Incremented everytime we change Vcharset_ordered_list.  This is
+   unsigned short so that it fits in Lisp_Int and never matches
+   -1.  */
+unsigned short charset_ordered_list_tick;
+
+/* List of iso-2022 charsets.  */
+Lisp_Object Viso_2022_charset_list;
+
+/* List of emacs-mule charsets.  */
+Lisp_Object Vemacs_mule_charset_list;
+
+struct charset *emacs_mule_charset[256];
+
+/* Mapping table from ISO2022's charset (specified by DIMENSION,
+   CHARS, and FINAL-CHAR) to Emacs' charset.  */
+int iso_charset_table[ISO_MAX_DIMENSION][ISO_MAX_CHARS][ISO_MAX_FINAL];
+
+Lisp_Object Vcharset_map_path;
+
+Lisp_Object Vchar_unified_charset_table;
+
+/* Defined in chartab.c */
+extern void
+map_char_table_for_charset P_ ((void (*c_function) (Lisp_Object, Lisp_Object),
+                               Lisp_Object function, Lisp_Object table,
+                               Lisp_Object arg, struct charset *charset,
+                               unsigned from, unsigned to));
+
+#define CODE_POINT_TO_INDEX(charset, code)                             \
+  ((charset)->code_linear_p                                            \
+   ? (code) - (charset)->min_code                                      \
+   : (((charset)->code_space_mask[(code) >> 24] & 0x8)                 \
+      && ((charset)->code_space_mask[((code) >> 16) & 0xFF] & 0x4)     \
+      && ((charset)->code_space_mask[((code) >> 8) & 0xFF] & 0x2)      \
+      && ((charset)->code_space_mask[(code) & 0xFF] & 0x1))            \
+   ? (((((code) >> 24) - (charset)->code_space[12])                    \
+       * (charset)->code_space[11])                                    \
+      + (((((code) >> 16) & 0xFF) - (charset)->code_space[8])          \
+        * (charset)->code_space[7])                                    \
+      + (((((code) >> 8) & 0xFF) - (charset)->code_space[4])           \
+        * (charset)->code_space[3])                                    \
+      + (((code) & 0xFF) - (charset)->code_space[0])                   \
+      - ((charset)->char_index_offset))                                        \
+   : -1)
+
+
+/* Convert the character index IDX to code-point CODE for CHARSET.
+   It is assumed that IDX is in a valid range.  */
+
+#define INDEX_TO_CODE_POINT(charset, idx)                                   \
+  ((charset)->code_linear_p                                                 \
+   ? (idx) + (charset)->min_code                                            \
+   : (idx += (charset)->char_index_offset,                                  \
+      (((charset)->code_space[0] + (idx) % (charset)->code_space[2])        \
+       | (((charset)->code_space[4]                                         \
+          + ((idx) / (charset)->code_space[3] % (charset)->code_space[6]))  \
+         << 8)                                                              \
+       | (((charset)->code_space[8]                                         \
+          + ((idx) / (charset)->code_space[7] % (charset)->code_space[10])) \
+         << 16)                                                             \
+       | (((charset)->code_space[12] + ((idx) / (charset)->code_space[11]))  \
+         << 24))))
 
-/* List of all possible generic characters.  */
-Lisp_Object Vgeneric_character_list;
 
 \f
-void
-invalid_character (c)
-     int c;
-{
-  error ("Invalid character: %d, #o%o, #x%x", c, c, c);
-}
 
-/* Parse string STR of length LENGTH and fetch information of a
-   character at STR.  Set BYTES to the byte length the character
-   occupies, CHARSET, C1, C2 to proper values of the character. */
-
-#define SPLIT_MULTIBYTE_SEQ(str, length, bytes, charset, c1, c2)            \
-  do {                                                                      \
-    (c1) = *(str);                                                          \
-    (bytes) = BYTES_BY_CHAR_HEAD (c1);                                      \
-    if ((bytes) == 1)                                                       \
-      (charset) = ASCII_BYTE_P (c1) ? CHARSET_ASCII : CHARSET_8_BIT_GRAPHIC; \
-    else if ((bytes) == 2)                                                  \
-      {                                                                             \
-       if ((c1) == LEADING_CODE_8_BIT_CONTROL)                              \
-         (charset) = CHARSET_8_BIT_CONTROL, (c1) = (str)[1] - 0x20;         \
-       else                                                                 \
-         (charset) = (c1), (c1) = (str)[1] & 0x7F;                          \
-      }                                                                             \
-    else if ((bytes) == 3)                                                  \
-      {                                                                             \
-       if ((c1) < LEADING_CODE_PRIVATE_11)                                  \
-         (charset) = (c1), (c1) = (str)[1] & 0x7F, (c2) = (str)[2] & 0x7F;  \
-       else                                                                 \
-         (charset) = (str)[1], (c1) = (str)[2] & 0x7F;                      \
-      }                                                                             \
-    else                                                                    \
-      (charset) = (str)[1], (c1) = (str)[2] & 0x7F, (c2) = (str)[3] & 0x7F;  \
-  } while (0)
-
-/* 1 if CHARSET, C1, and C2 compose a valid character, else 0.
-   Note that this intentionally allows invalid components, such
-   as 0xA0 0xA0, because there exist many files that contain
-   such invalid byte sequences, especially in EUC-GB. */
-#define CHAR_COMPONENTS_VALID_P(charset, c1, c2)       \
-  ((charset) == CHARSET_ASCII                          \
-   ? ((c1) >= 0 && (c1) <= 0x7F)                       \
-   : ((charset) == CHARSET_8_BIT_CONTROL               \
-      ? ((c1) >= 0x80 && (c1) <= 0x9F)                 \
-      : ((charset) == CHARSET_8_BIT_GRAPHIC            \
-        ? ((c1) >= 0x80 && (c1) <= 0xFF)               \
-        : (CHARSET_DIMENSION (charset) == 1            \
-           ? ((c1) >= 0x20 && (c1) <= 0x7F)            \
-           : ((c1) >= 0x20 && (c1) <= 0x7F             \
-              && (c2) >= 0x20 && (c2) <= 0x7F)))))
-
-/* Store multi-byte form of the character C in STR.  The caller should
-   allocate at least 4-byte area at STR in advance.  Returns the
-   length of the multi-byte form.  If C is an invalid character code,
-   return -1.  */
+/* Set to 1 to warn that a charset map is loaded and thus a buffer
+   text and a string data may be relocated.  */
+int charset_map_loaded;
 
-int
-char_to_string_1 (c, str)
-     int c;
-     unsigned char *str;
+struct charset_map_entries
 {
-  unsigned char *p = str;
+  struct {
+    unsigned from, to;
+    int c;
+  } entry[0x10000];
+  struct charset_map_entries *next;
+};
+
+/* Load the mapping information for CHARSET from ENTRIES.
+
+   If CONTROL_FLAG is 0, setup CHARSET->min_char and CHARSET->max_char.
+
+   If CONTROL_FLAG is 1, setup CHARSET->min_char, CHARSET->max_char,
+   CHARSET->decoder, and CHARSET->encoder.
+
+   If CONTROL_FLAG is 2, setup CHARSET->deunifier and
+   Vchar_unify_table.  If Vchar_unified_charset_table is non-nil,
+   setup it too.  */
+
+static void
+load_charset_map (charset, entries, n_entries, control_flag)
+  struct charset *charset;
+  struct charset_map_entries *entries;
+  int n_entries;
+  int control_flag;
+{
+  Lisp_Object vec, table;
+  unsigned max_code = CHARSET_MAX_CODE (charset);
+  int ascii_compatible_p = charset->ascii_compatible_p;
+  int min_char, max_char, nonascii_min_char;
+  int i;
+  unsigned char *fast_map = charset->fast_map;
 
-  if (c & CHAR_MODIFIER_MASK)  /* This includes the case C is negative.  */
+  if (n_entries <= 0)
+    return;
+
+  if (control_flag > 0)
     {
-      /* Multibyte character can't have a modifier bit.  */
-      if (! SINGLE_BYTE_CHAR_P ((c & ~CHAR_MODIFIER_MASK)))
-       return -1;
+      int n = CODE_POINT_TO_INDEX (charset, max_code) + 1;
 
-      /* For Meta, Shift, and Control modifiers, we need special care.  */
-      if (c & CHAR_META)
+      table = Fmake_char_table (Qnil, Qnil);
+      if (control_flag == 1)
+       vec = Fmake_vector (make_number (n), make_number (-1));
+      else if (! CHAR_TABLE_P (Vchar_unify_table))
+       Vchar_unify_table = Fmake_char_table (Qnil, Qnil);
+
+      charset_map_loaded = 1;
+    }
+
+  min_char = max_char = entries->entry[0].c;
+  nonascii_min_char = MAX_CHAR;
+  for (i = 0; i < n_entries; i++)
+    {
+      unsigned from, to;
+      int from_index, to_index;
+      int from_c, to_c;
+      int idx = i % 0x10000;
+
+      if (i > 0 && idx == 0)
+       entries = entries->next;
+      from = entries->entry[idx].from;
+      to = entries->entry[idx].to;
+      from_c = entries->entry[idx].c;
+      from_index = CODE_POINT_TO_INDEX (charset, from);
+      if (from == to)
        {
-         /* Move the meta bit to the right place for a string.  */
-         c = (c & ~CHAR_META) | 0x80;
+         to_index = from_index;
+         to_c = from_c;
        }
-      if (c & CHAR_SHIFT)
+      else
        {
-         /* Shift modifier is valid only with [A-Za-z].  */
-         if ((c & 0377) >= 'A' && (c & 0377) <= 'Z')
-           c &= ~CHAR_SHIFT;
-         else if ((c & 0377) >= 'a' && (c & 0377) <= 'z')
-           c = (c & ~CHAR_SHIFT) - ('a' - 'A');
+         to_index = CODE_POINT_TO_INDEX (charset, to);
+         to_c = from_c + (to_index - from_index);
        }
-      if (c & CHAR_CTL)
+      if (from_index < 0 || to_index < 0)
+       continue;
+
+      if (control_flag < 2)
        {
-         /* Simulate the code in lread.c.  */
-         /* Allow `\C- ' and `\C-?'.  */
-         if (c == (CHAR_CTL | ' '))
-           c = 0;
-         else if (c == (CHAR_CTL | '?'))
-           c = 127;
-         /* ASCII control chars are made from letters (both cases),
-            as well as the non-letters within 0100...0137.  */
-         else if ((c & 0137) >= 0101 && (c & 0137) <= 0132)
-           c &= (037 | (~0177 & ~CHAR_CTL));
-         else if ((c & 0177) >= 0100 && (c & 0177) <= 0137)
-           c &= (037 | (~0177 & ~CHAR_CTL));
-       }
+         int c;
 
-      /* If C still has any modifier bits, just ignore it.  */
-      c &= ~CHAR_MODIFIER_MASK;
-    }
+         if (to_c > max_char)
+           max_char = to_c;
+         else if (from_c < min_char)
+           min_char = from_c;
+         if (ascii_compatible_p)
+           {
+             if (! ASCII_BYTE_P (from_c))
+               {
+                 if (from_c < nonascii_min_char)
+                   nonascii_min_char = from_c;
+               }
+             else if (! ASCII_BYTE_P (to_c))
+               {
+                 nonascii_min_char = 0x80;
+               }
+           }
 
-  if (SINGLE_BYTE_CHAR_P (c))
-    {
-      if (ASCII_BYTE_P (c) || c >= 0xA0)
-       *p++ = c;
+         for (c = from_c; c <= to_c; c++)
+           CHARSET_FAST_MAP_SET (c, fast_map);
+
+         if (control_flag == 1)
+           {
+             unsigned code = from;
+
+             if (CHARSET_COMPACT_CODES_P (charset))
+               while (1)
+                 {
+                   ASET (vec, from_index, make_number (from_c));
+                   if (NILP (CHAR_TABLE_REF (table, from_c)))
+                     CHAR_TABLE_SET (table, from_c, make_number (code));
+                   if (from_index == to_index)
+                     break;
+                   from_index++, from_c++;
+                   code = INDEX_TO_CODE_POINT (charset, from_index);
+                 }
+             else
+               for (; from_index <= to_index; from_index++, from_c++)
+                 {
+                   ASET (vec, from_index, make_number (from_c));
+                   if (NILP (CHAR_TABLE_REF (table, from_c)))
+                     CHAR_TABLE_SET (table, from_c, make_number (from_index));
+                 }
+           }
+       }
       else
        {
-         *p++ = LEADING_CODE_8_BIT_CONTROL;
-         *p++ = c + 0x20;
+         unsigned code = from;
+
+         while (1)
+           {
+             int c1 = DECODE_CHAR (charset, code);
+
+             if (c1 >= 0)
+               {
+                 CHAR_TABLE_SET (table, from_c, make_number (c1));
+                 CHAR_TABLE_SET (Vchar_unify_table, c1, make_number (from_c));
+                 if (CHAR_TABLE_P (Vchar_unified_charset_table))
+                   CHAR_TABLE_SET (Vchar_unified_charset_table, c1,
+                                   CHARSET_NAME (charset));
+               }
+             if (from_index == to_index)
+               break;
+             from_index++, from_c++;
+             code = INDEX_TO_CODE_POINT (charset, from_index);
+           }
        }
     }
-  else if (CHAR_VALID_P (c, 0))
-    {
-      int charset, c1, c2;
 
-      SPLIT_CHAR (c, charset, c1, c2);
-
-      if (charset >= LEADING_CODE_EXT_11)
-       *p++ = (charset < LEADING_CODE_EXT_12
-               ? LEADING_CODE_PRIVATE_11
-               : (charset < LEADING_CODE_EXT_21
-                  ? LEADING_CODE_PRIVATE_12
-                  : (charset < LEADING_CODE_EXT_22
-                     ? LEADING_CODE_PRIVATE_21
-                     : LEADING_CODE_PRIVATE_22)));
-      *p++ = charset;
-      if ((c1 > 0 && c1 < 32) || (c2 > 0 && c2 < 32))
-       return -1;
-      if (c1)
+  if (control_flag < 2)
+    {
+      CHARSET_MIN_CHAR (charset) = (ascii_compatible_p
+                                   ? nonascii_min_char : min_char);
+      CHARSET_MAX_CHAR (charset) = max_char;
+      if (control_flag == 1)
        {
-         *p++ = c1 | 0x80;
-         if (c2 > 0)
-           *p++ = c2 | 0x80;
+         CHARSET_DECODER (charset) = vec;
+         CHARSET_ENCODER (charset) = table;
        }
     }
   else
-    return -1;
-
-  return (p - str);
+    CHARSET_DEUNIFIER (charset) = table;
 }
 
 
-/* Store multi-byte form of the character C in STR.  The caller should
-   allocate at least 4-byte area at STR in advance.  Returns the
-   length of the multi-byte form.  If C is an invalid character code,
-   signal an error.
-
-   Use macro `CHAR_STRING (C, STR)' instead of calling this function
-   directly if C can be an ASCII character.  */
+/* Read a hexadecimal number (preceded by "0x") from the file FP while
+   paying attention to comment charcter '#'.  */
 
-int
-char_to_string (c, str)
-     int c;
-     unsigned char *str;
+static INLINE unsigned
+read_hex (fp, eof)
+     FILE *fp;
+     int *eof;
 {
-  int len;
-  len = char_to_string_1 (c, str);
-  if (len == -1)
-    invalid_character (c);
-  return len;
-}
+  int c;
+  unsigned n;
 
+  while ((c = getc (fp)) != EOF)
+    {
+      if (c == '#')
+       {
+         while ((c = getc (fp)) != EOF && c != '\n');
+       }
+      else if (c == '0')
+       {
+         if ((c = getc (fp)) == EOF || c == 'x')
+           break;
+       }
+    }
+  if (c == EOF)
+    {
+      *eof = 1;
+      return 0;
+    }
+  *eof = 0;
+  n = 0;
+  if (c == 'x')
+    while ((c = getc (fp)) != EOF && isxdigit (c))
+      n = ((n << 4)
+          | (c <= '9' ? c - '0' : c <= 'F' ? c - 'A' + 10 : c - 'a' + 10));
+  else
+    while ((c = getc (fp)) != EOF && isdigit (c))
+      n = (n * 10) + c - '0';
+  if (c != EOF)
+    ungetc (c, fp);
+  return n;
+}
 
-/* Return the non-ASCII character corresponding to multi-byte form at
-   STR of length LEN.  If ACTUAL_LEN is not NULL, store the byte
-   length of the multibyte form in *ACTUAL_LEN.
 
-   Use macros STRING_CHAR or STRING_CHAR_AND_LENGTH instead of calling
-   this function directly if you want ot handle ASCII characters as
-   well.  */
+/* Return a mapping vector for CHARSET loaded from MAPFILE.
+   Each line of MAPFILE has this form
+       0xAAAA 0xCCCC
+   where 0xAAAA is a code-point and 0xCCCC is the corresponding
+   character code, or this form
+       0xAAAA-0xBBBB 0xCCCC
+   where 0xAAAA and 0xBBBB are code-points specifying a range, and
+   0xCCCC is the first character code of the range.
 
-int
-string_to_char (str, len, actual_len)
-     const unsigned char *str;
-     int len, *actual_len;
-{
-  int c, bytes, charset, c1, c2;
+   The returned vector has this form:
+       [ CODE1 CHAR1 CODE2 CHAR2 .... ]
+   where CODE1 is a code-point or a cons of code-points specifying a
+   range.  */
 
-  SPLIT_MULTIBYTE_SEQ (str, len, bytes, charset, c1, c2);
-  c = MAKE_CHAR (charset, c1, c2);
-  if (actual_len)
-    *actual_len = bytes;
-  return c;
-}
+extern void add_to_log P_ ((char *, Lisp_Object, Lisp_Object));
 
-/* Return the length of the multi-byte form at string STR of length LEN.
-   Use the macro MULTIBYTE_FORM_LENGTH instead.  */
-int
-multibyte_form_length (str, len)
-     const unsigned char *str;
-     int len;
+static void
+load_charset_map_from_file (charset, mapfile, control_flag)
+     struct charset *charset;
+     Lisp_Object mapfile;
+     int control_flag;
 {
-  int bytes;
-
-  PARSE_MULTIBYTE_SEQ (str, len, bytes);
-  return bytes;
-}
-
-/* Check multibyte form at string STR of length LEN and set variables
-   pointed by CHARSET, C1, and C2 to charset and position codes of the
-   character at STR, and return 0.  If there's no multibyte character,
-   return -1.  This should be used only in the macro SPLIT_STRING
-   which checks range of STR in advance.  */
+  unsigned min_code = CHARSET_MIN_CODE (charset);
+  unsigned max_code = CHARSET_MAX_CODE (charset);
+  int fd;
+  FILE *fp;
+  int eof;
+  Lisp_Object suffixes;
+  struct charset_map_entries *head, *entries;
+  int n_entries;
+
+  suffixes = Fcons (build_string (".map"),
+                   Fcons (build_string (".TXT"), Qnil));
+
+  fd = openp (Vcharset_map_path, mapfile, suffixes, NULL, Qnil);
+  if (fd < 0
+      || ! (fp = fdopen (fd, "r")))
+    {
+      add_to_log ("Failure in loading charset map: %S", mapfile, Qnil);
+      return;
+    }
 
-int
-split_string (str, len, charset, c1, c2)
-     const unsigned char *str;
-     unsigned char *c1, *c2;
-     int len, *charset;
-{
-  register int bytes, cs, code1, code2 = -1;
+  head = entries = ((struct charset_map_entries *)
+                   alloca (sizeof (struct charset_map_entries)));
+  n_entries = 0;
+  eof = 0;
+  while (1)
+    {
+      unsigned from, to;
+      int c;
+      int idx;
 
-  SPLIT_MULTIBYTE_SEQ (str, len, bytes, cs, code1, code2);
-  if (cs == CHARSET_ASCII)
-    return -1;
-  *charset = cs;
-  *c1 = code1;
-  *c2 = code2;
-  return 0;
-}
+      from = read_hex (fp, &eof);
+      if (eof)
+       break;
+      if (getc (fp) == '-')
+       to = read_hex (fp, &eof);
+      else
+       to = from;
+      c = (int) read_hex (fp, &eof);
 
-/* Return 1 if character C has valid printable glyph.
-   Use the macro CHAR_PRINTABLE_P instead.  */
-int
-char_printable_p (c)
-     int c;
-{
-  int charset, c1, c2;
+      if (from < min_code || to > max_code || from > to || c > MAX_CHAR)
+       continue;
 
-  if (ASCII_BYTE_P (c))
-    return 1;
-  else if (SINGLE_BYTE_CHAR_P (c))
-    return 0;
-  else if (c >= MAX_CHAR)
-    return 0;
+      if (n_entries > 0 && (n_entries % 0x10000) == 0)
+       {
+         entries->next = ((struct charset_map_entries *)
+                          alloca (sizeof (struct charset_map_entries)));
+         entries = entries->next;
+       }
+      idx = n_entries % 0x10000;
+      entries->entry[idx].from = from;
+      entries->entry[idx].to = to;
+      entries->entry[idx].c = c;
+      n_entries++;
+    }
+  fclose (fp);
+  close (fd);
 
-  SPLIT_CHAR (c, charset, c1, c2);
-  if (! CHARSET_DEFINED_P (charset))
-    return 0;
-  if (CHARSET_CHARS (charset) == 94
-      ? c1 <= 32 || c1 >= 127
-      : c1 < 32)
-    return 0;
-  if (CHARSET_DIMENSION (charset) == 2
-      && (CHARSET_CHARS (charset) == 94
-         ? c2 <= 32 || c2 >= 127
-         : c2 < 32))
-    return 0;
-  return 1;
+  load_charset_map (charset, head, n_entries, control_flag);
 }
 
-/* Translate character C by translation table TABLE.  If C
-   is negative, translate a character specified by CHARSET, C1, and C2
-   (C1 and C2 are code points of the character).  If no translation is
-   found in TABLE, return C.  */
-int
-translate_char (table, c, charset, c1, c2)
-     Lisp_Object table;
-     int c, charset, c1, c2;
+static void
+load_charset_map_from_vector (charset, vec, control_flag)
+     struct charset *charset;
+     Lisp_Object vec;
+     int control_flag;
 {
-  Lisp_Object ch;
-  int alt_charset, alt_c1, alt_c2, dimension;
-
-  if (c < 0) c = MAKE_CHAR (charset, (c1 & 0x7F) , (c2 & 0x7F));
-  if (!CHAR_TABLE_P (table)
-      || (ch = Faref (table, make_number (c)), !NATNUMP (ch)))
-    return c;
-
-  SPLIT_CHAR (XFASTINT (ch), alt_charset, alt_c1, alt_c2);
-  dimension = CHARSET_DIMENSION (alt_charset);
-  if ((dimension == 1 && alt_c1 > 0) || (dimension == 2 && alt_c2 > 0))
-    /* CH is not a generic character, just return it.  */
-    return XFASTINT (ch);
-
-  /* Since CH is a generic character, we must return a specific
-     charater which has the same position codes as C from CH.  */
-  if (charset < 0)
-    SPLIT_CHAR (c, charset, c1, c2);
-  if (dimension != CHARSET_DIMENSION (charset))
-    /* We can't make such a character because of dimension mismatch.  */
-    return c;
-  return MAKE_CHAR (alt_charset, c1, c2);
-}
+  unsigned min_code = CHARSET_MIN_CODE (charset);
+  unsigned max_code = CHARSET_MAX_CODE (charset);
+  struct charset_map_entries *head, *entries;
+  int n_entries;
+  int len = ASIZE (vec);
+  int i;
 
-/* Convert the unibyte character C to multibyte based on
-   Vnonascii_translation_table or nonascii_insert_offset.  If they can't
-   convert C to a valid multibyte character, convert it based on
-   DEFAULT_NONASCII_INSERT_OFFSET which makes C a Latin-1 character.  */
+  if (len % 2 == 1)
+    {
+      add_to_log ("Failure in loading charset map: %V", vec, Qnil);
+      return;
+    }
 
-int
-unibyte_char_to_multibyte (c)
-     int c;
-{
-  if (c < 0400 && c >= 0200)
+  head = entries = ((struct charset_map_entries *)
+                   alloca (sizeof (struct charset_map_entries)));
+  n_entries = 0;
+  for (i = 0; i < len; i += 2)
     {
-      int c_save = c;
+      Lisp_Object val, val2;
+      unsigned from, to;
+      int c;
+      int idx;
 
-      if (! NILP (Vnonascii_translation_table))
+      val = AREF (vec, i);
+      if (CONSP (val))
        {
-         c = XINT (Faref (Vnonascii_translation_table, make_number (c)));
-         if (c >= 0400 && ! char_valid_p (c, 0))
-           c = c_save + DEFAULT_NONASCII_INSERT_OFFSET;
+         val2 = XCDR (val);
+         val = XCAR (val);
+         CHECK_NATNUM (val);
+         CHECK_NATNUM (val2);
+         from = XFASTINT (val);
+         to = XFASTINT (val2);
        }
-      else if (c >= 0240 && nonascii_insert_offset > 0)
+      else
        {
-         c += nonascii_insert_offset;
-         if (c < 0400 || ! char_valid_p (c, 0))
-           c = c_save + DEFAULT_NONASCII_INSERT_OFFSET;
+         CHECK_NATNUM (val);
+         from = to = XFASTINT (val);
        }
-      else if (c >= 0240)
-       c = c_save + DEFAULT_NONASCII_INSERT_OFFSET;
-    }
-  return c;
-}
+      val = AREF (vec, i + 1);
+      CHECK_NATNUM (val);
+      c = XFASTINT (val);
+
+      if (from < min_code || to > max_code || from > to || c > MAX_CHAR)
+       continue;
 
+      if (n_entries > 0 && (n_entries % 0x10000) == 0)
+       {
+         entries->next = ((struct charset_map_entries *)
+                          alloca (sizeof (struct charset_map_entries)));
+         entries = entries->next;
+       }
+      idx = n_entries % 0x10000;
+      entries->entry[idx].from = from;
+      entries->entry[idx].to = to;
+      entries->entry[idx].c = c;
+      n_entries++;
+    }
 
-/* Convert the multibyte character C to unibyte 8-bit character based
-   on Vnonascii_translation_table or nonascii_insert_offset.  If
-   REV_TBL is non-nil, it should be a reverse table of
-   Vnonascii_translation_table, i.e. what given by:
-     Fchar_table_extra_slot (Vnonascii_translation_table, make_number (0))  */
+  load_charset_map (charset, head, n_entries, control_flag);
+}
 
-int
-multibyte_char_to_unibyte (c, rev_tbl)
-     int c;
-     Lisp_Object rev_tbl;
+static void
+load_charset (charset)
+     struct charset *charset;
 {
-  if (!SINGLE_BYTE_CHAR_P (c))
+  if (CHARSET_METHOD (charset) == CHARSET_METHOD_MAP_DEFERRED)
     {
-      int c_save = c;
+      Lisp_Object map;
 
-      if (! CHAR_TABLE_P (rev_tbl)
-         && CHAR_TABLE_P (Vnonascii_translation_table))
-       rev_tbl = Fchar_table_extra_slot (Vnonascii_translation_table,
-                                         make_number (0));
-      if (CHAR_TABLE_P (rev_tbl))
-       {
-         Lisp_Object temp;
-         temp = Faref (rev_tbl, make_number (c));
-         if (INTEGERP (temp))
-           c = XINT (temp);
-         if (c >= 256)
-           c = (c_save & 0177) + 0200;
-       }
+      map = CHARSET_MAP (charset);
+      if (STRINGP (map))
+       load_charset_map_from_file (charset, map, 1);
       else
-       {
-         if (nonascii_insert_offset > 0)
-           c -= nonascii_insert_offset;
-         if (c < 128 || c >= 256)
-           c = (c_save & 0177) + 0200;
-       }
+       load_charset_map_from_vector (charset, map, 1);
+      CHARSET_METHOD (charset) = CHARSET_METHOD_MAP;
     }
+}
 
-  return c;
+
+DEFUN ("charsetp", Fcharsetp, Scharsetp, 1, 1, 0,
+       doc: /* Return non-nil if and only if OBJECT is a charset.*/)
+     (object)
+     Lisp_Object object;
+{
+  return (CHARSETP (object) ? Qt : Qnil);
 }
 
-\f
-/* Update the table Vcharset_table with the given arguments (see the
-   document of `define-charset' for the meaning of each argument).
-   Several other table contents are also updated.  The caller should
-   check the validity of CHARSET-ID and the remaining arguments in
-   advance.  */
 
 void
-update_charset_table (charset_id, dimension, chars, width, direction,
-                     iso_final_char, iso_graphic_plane,
-                     short_name, long_name, description)
-     Lisp_Object charset_id, dimension, chars, width, direction;
-     Lisp_Object iso_final_char, iso_graphic_plane;
-     Lisp_Object short_name, long_name, description;
+map_charset_chars (c_function, function, arg,
+                  charset, from, to)
+     void (*c_function) P_ ((Lisp_Object, Lisp_Object));
+     Lisp_Object function, arg;
+     struct charset *charset;
+     unsigned from, to;
 {
-  int charset = XINT (charset_id);
-  int bytes;
-  unsigned char leading_code_base, leading_code_ext;
-
-  if (NILP (CHARSET_TABLE_ENTRY (charset)))
-    CHARSET_TABLE_ENTRY (charset)
-      = Fmake_vector (make_number (CHARSET_MAX_IDX), Qnil);
-
-  if (NILP (long_name))
-    long_name = short_name;
-  if (NILP (description))
-    description = long_name;
-
-  /* Get byte length of multibyte form, base leading-code, and
-     extended leading-code of the charset.  See the comment under the
-     title "GENERAL NOTE on CHARACTER SET (CHARSET)" in charset.h.  */
-  bytes = XINT (dimension);
-  if (charset < MIN_CHARSET_PRIVATE_DIMENSION1)
-    {
-      /* Official charset, it doesn't have an extended leading-code.  */
-      if (charset != CHARSET_ASCII && charset != CHARSET_8_BIT_GRAPHIC)
-       bytes += 1; /* For a base leading-code.  */
-      leading_code_base = charset;
-      leading_code_ext = 0;
-    }
-  else
-    {
-      /* Private charset.  */
-      bytes += 2; /* For base and extended leading-codes.  */
-      leading_code_base
-       = (charset < LEADING_CODE_EXT_12
-          ? LEADING_CODE_PRIVATE_11
-          : (charset < LEADING_CODE_EXT_21
-             ? LEADING_CODE_PRIVATE_12
-             : (charset < LEADING_CODE_EXT_22
-                ? LEADING_CODE_PRIVATE_21
-                : LEADING_CODE_PRIVATE_22)));
-      leading_code_ext = charset;
-      if (BYTES_BY_CHAR_HEAD (leading_code_base) != bytes)
-       error ("Invalid dimension for the charset-ID %d", charset);
-    }
-
-  CHARSET_TABLE_INFO (charset, CHARSET_ID_IDX) = charset_id;
-  CHARSET_TABLE_INFO (charset, CHARSET_BYTES_IDX) = make_number (bytes);
-  CHARSET_TABLE_INFO (charset, CHARSET_DIMENSION_IDX) = dimension;
-  CHARSET_TABLE_INFO (charset, CHARSET_CHARS_IDX) = chars;
-  CHARSET_TABLE_INFO (charset, CHARSET_WIDTH_IDX) = width;
-  CHARSET_TABLE_INFO (charset, CHARSET_DIRECTION_IDX) = direction;
-  CHARSET_TABLE_INFO (charset, CHARSET_LEADING_CODE_BASE_IDX)
-    = make_number (leading_code_base);
-  CHARSET_TABLE_INFO (charset, CHARSET_LEADING_CODE_EXT_IDX)
-    = make_number (leading_code_ext);
-  CHARSET_TABLE_INFO (charset, CHARSET_ISO_FINAL_CHAR_IDX) = iso_final_char;
-  CHARSET_TABLE_INFO (charset, CHARSET_ISO_GRAPHIC_PLANE_IDX)
-    = iso_graphic_plane;
-  CHARSET_TABLE_INFO (charset, CHARSET_SHORT_NAME_IDX) = short_name;
-  CHARSET_TABLE_INFO (charset, CHARSET_LONG_NAME_IDX) = long_name;
-  CHARSET_TABLE_INFO (charset, CHARSET_DESCRIPTION_IDX) = description;
-  CHARSET_TABLE_INFO (charset, CHARSET_PLIST_IDX) = Qnil;
+  Lisp_Object range;
+  int partial;
 
-  {
-    /* If we have already defined a charset which has the same
-       DIMENSION, CHARS and ISO-FINAL-CHAR but the different
-       DIRECTION, we must update the entry REVERSE-CHARSET of both
-       charsets.  If there's no such charset, the value of the entry
-       is set to nil.  */
-    int i;
-
-    for (i = 0; i <= MAX_CHARSET; i++)
-      if (!NILP (CHARSET_TABLE_ENTRY (i)))
-       {
-         if (CHARSET_DIMENSION (i) == XINT (dimension)
-             && CHARSET_CHARS (i) == XINT (chars)
-             && CHARSET_ISO_FINAL_CHAR (i) == XINT (iso_final_char)
-             && CHARSET_DIRECTION (i) != XINT (direction))
-           {
-             CHARSET_TABLE_INFO (charset, CHARSET_REVERSE_CHARSET_IDX)
-               = make_number (i);
-             CHARSET_TABLE_INFO (i, CHARSET_REVERSE_CHARSET_IDX) = charset_id;
-             break;
-           }
-       }
-    if (i > MAX_CHARSET)
-      /* No such a charset.  */
-      CHARSET_TABLE_INFO (charset, CHARSET_REVERSE_CHARSET_IDX)
-       = make_number (-1);
-  }
+  if (CHARSET_METHOD (charset) == CHARSET_METHOD_MAP_DEFERRED)
+    load_charset (charset);
 
-  if (charset != CHARSET_ASCII && charset != CHARSET_8_BIT_GRAPHIC
-      && charset < MIN_CHARSET_PRIVATE_DIMENSION1)
+  partial = (from > CHARSET_MIN_CODE (charset)
+            || to < CHARSET_MAX_CODE (charset));
+
+  if (CHARSET_UNIFIED_P (charset)
+      && CHAR_TABLE_P (CHARSET_DEUNIFIER (charset)))
     {
-      bytes_by_char_head[leading_code_base] = bytes;
-      width_by_char_head[leading_code_base] = XINT (width);
+      map_char_table_for_charset (c_function, function,
+                                 CHARSET_DEUNIFIER (charset), arg,
+                                 partial ? charset : NULL, from, to);
+    }
 
-      /* Update table emacs_code_class.  */
-      emacs_code_class[charset] = (bytes == 2
-                                  ? EMACS_leading_code_2
-                                  : (bytes == 3
-                                     ? EMACS_leading_code_3
-                                     : EMACS_leading_code_4));
+  if (CHARSET_METHOD (charset) == CHARSET_METHOD_OFFSET)
+    {
+      int from_idx = CODE_POINT_TO_INDEX (charset, from);
+      int to_idx = CODE_POINT_TO_INDEX (charset, to);
+      int from_c = from_idx + CHARSET_CODE_OFFSET (charset);
+      int to_c = to_idx + CHARSET_CODE_OFFSET (charset);
+
+      range = Fcons (make_number (from_c), make_number (to_c));
+      if (NILP (function))
+       (*c_function) (arg, range);
+      else
+       call2 (function, range, arg);
+    }
+  else if (CHARSET_METHOD (charset) == CHARSET_METHOD_MAP)
+    {
+      if (! CHAR_TABLE_P (CHARSET_ENCODER (charset)))
+       return;
+      map_char_table_for_charset (c_function, function,
+                                 CHARSET_ENCODER (charset), arg,
+                                 partial ? charset : NULL, from, to);
     }
+  else if (CHARSET_METHOD (charset) == CHARSET_METHOD_SUBSET)
+    {
+      Lisp_Object subset_info;
+      int offset;
+
+      subset_info = CHARSET_SUBSET (charset);
+      charset = CHARSET_FROM_ID (XFASTINT (AREF (subset_info, 0)));
+      offset = XINT (AREF (subset_info, 3));
+      from -= offset;
+      if (from < XFASTINT (AREF (subset_info, 1)))
+       from = XFASTINT (AREF (subset_info, 1));
+      to -= offset;
+      if (to > XFASTINT (AREF (subset_info, 2)))
+       to = XFASTINT (AREF (subset_info, 2));
+      map_charset_chars (c_function, function, arg, charset, from, to);
+    }
+  else                         /* i.e. CHARSET_METHOD_SUPERSET */
+    {
+      Lisp_Object parents;
 
-  /* Update table iso_charset_table.  */
-  if (XINT (iso_final_char) >= 0
-      && ISO_CHARSET_TABLE (dimension, chars, iso_final_char) < 0)
-    ISO_CHARSET_TABLE (dimension, chars, iso_final_char) = charset;
+      for (parents = CHARSET_SUPERSET (charset); CONSP (parents);
+          parents = XCDR (parents))
+       {
+         int offset;
+         unsigned this_from, this_to;
+
+         charset = CHARSET_FROM_ID (XFASTINT (XCAR (XCAR (parents))));
+         offset = XINT (XCDR (XCAR (parents)));
+         this_from = from - offset;
+         this_to = to - offset;
+         if (this_from < CHARSET_MIN_CODE (charset))
+           this_from = CHARSET_MIN_CODE (charset);
+         if (this_to > CHARSET_MAX_CODE (charset))
+           this_to = CHARSET_MAX_CODE (charset);
+         map_charset_chars (c_function, function, arg, charset,
+                            this_from, this_to);
+       }
+    }
 }
 
-#ifdef emacs
+DEFUN ("map-charset-chars", Fmap_charset_chars, Smap_charset_chars, 2, 5, 0,
+       doc: /* Call FUNCTION for all characters in CHARSET.
+FUNCTION is called with an argument RANGE and the optional 3rd
+argument ARG.
 
-/* Return charset id of CHARSET_SYMBOL, or return -1 if CHARSET_SYMBOL
-   is invalid.  */
-int
-get_charset_id (charset_symbol)
-     Lisp_Object charset_symbol;
-{
-  Lisp_Object val;
-  int charset;
-
-  /* This originally used a ?: operator, but reportedly the HP-UX
-     compiler version HP92453-01 A.10.32.22 miscompiles that.  */
-  if (SYMBOLP (charset_symbol)
-      && VECTORP (val = Fget (charset_symbol, Qcharset))
-      && CHARSET_VALID_P (charset =
-                         XINT (XVECTOR (val)->contents[CHARSET_ID_IDX])))
-    return charset;
-  else
-    return -1;
-}
+RANGE is a cons (FROM .  TO), where FROM and TO indicate a range of
+characters contained in CHARSET.
 
-/* Return an identification number for a new private charset of
-   DIMENSION and WIDTH.  If there's no more room for the new charset,
-   return 0.  */
-Lisp_Object
-get_new_private_charset_id (dimension, width)
-     int dimension, width;
+The optional 4th and 5th arguments FROM-CODE and TO-CODE specify the
+range of code points of target characters.  */)
+     (function, charset, arg, from_code, to_code)
+       Lisp_Object function, charset, arg, from_code, to_code;
 {
-  int charset, from, to;
+  struct charset *cs;
+  unsigned from, to;
 
-  if (dimension == 1)
+  CHECK_CHARSET_GET_CHARSET (charset, cs);
+  if (NILP (from_code))
+    from = CHARSET_MIN_CODE (cs);
+  else
     {
-      from = LEADING_CODE_EXT_11;
-      to = LEADING_CODE_EXT_21;
+      CHECK_NATNUM (from_code);
+      from = XINT (from_code);
+      if (from < CHARSET_MIN_CODE (cs))
+       from = CHARSET_MIN_CODE (cs);
     }
+  if (NILP (to_code))
+    to = CHARSET_MAX_CODE (cs);
   else
     {
-      from = LEADING_CODE_EXT_21;
-      to = LEADING_CODE_EXT_MAX + 1;
+      CHECK_NATNUM (to_code);
+      to = XINT (to_code);
+      if (to > CHARSET_MAX_CODE (cs))
+       to = CHARSET_MAX_CODE (cs);
     }
-
-  for (charset = from; charset < to; charset++)
-    if (!CHARSET_DEFINED_P (charset)) break;
-
-  return make_number (charset < to ? charset : 0);
-}
-
-DEFUN ("define-charset", Fdefine_charset, Sdefine_charset, 3, 3, 0,
-       doc: /* Define CHARSET-ID as the identification number of CHARSET with INFO-VECTOR.
-If CHARSET-ID is nil, it is decided automatically, which means CHARSET is
- treated as a private charset.
-INFO-VECTOR is a vector of the format:
-   [DIMENSION CHARS WIDTH DIRECTION ISO-FINAL-CHAR ISO-GRAPHIC-PLANE
-    SHORT-NAME LONG-NAME DESCRIPTION]
-The meanings of each elements is as follows:
-DIMENSION (integer) is the number of bytes to represent a character: 1 or 2.
-CHARS (integer) is the number of characters in a dimension: 94 or 96.
-WIDTH (integer) is the number of columns a character in the charset
-occupies on the screen: one of 0, 1, and 2.
-
-DIRECTION (integer) is the rendering direction of characters in the
-charset when rendering.  If 0, render from left to right, else
-render from right to left.
-
-ISO-FINAL-CHAR (character) is the final character of the
-corresponding ISO 2022 charset.
-It may be -1 if the charset is internal use only.
-
-ISO-GRAPHIC-PLANE (integer) is the graphic plane to be invoked
-while encoding to variants of ISO 2022 coding system, one of the
-following: 0/graphic-plane-left(GL), 1/graphic-plane-right(GR).
-It may be -1 if the charset is internal use only.
-
-SHORT-NAME (string) is the short name to refer to the charset.
-
-LONG-NAME (string) is the long name to refer to the charset.
-
-DESCRIPTION (string) is the description string of the charset.  */)
-       (charset_id, charset_symbol, info_vector)
-     Lisp_Object charset_id, charset_symbol, info_vector;
-{
-  Lisp_Object *vec;
-
-  if (!NILP (charset_id))
-    CHECK_NUMBER (charset_id);
-  CHECK_SYMBOL (charset_symbol);
-  CHECK_VECTOR (info_vector);
-
-  if (! NILP (charset_id))
-    {
-      if (! CHARSET_VALID_P (XINT (charset_id)))
-       error ("Invalid CHARSET: %d", XINT (charset_id));
-      else if (CHARSET_DEFINED_P (XINT (charset_id)))
-       error ("Already defined charset: %d", XINT (charset_id));
-    }
-
-  vec = XVECTOR (info_vector)->contents;
-  if (XVECTOR (info_vector)->size != 9
-      || !INTEGERP (vec[0]) || !(XINT (vec[0]) == 1 || XINT (vec[0]) == 2)
-      || !INTEGERP (vec[1]) || !(XINT (vec[1]) == 94 || XINT (vec[1]) == 96)
-      || !INTEGERP (vec[2]) || !(XINT (vec[2]) == 1 || XINT (vec[2]) == 2)
-      || !INTEGERP (vec[3]) || !(XINT (vec[3]) == 0 || XINT (vec[3]) == 1)
-      || !INTEGERP (vec[4])
-      || !(XINT (vec[4]) == -1 || (XINT (vec[4]) >= '0' && XINT (vec[4]) <= '~'))
-      || !INTEGERP (vec[5])
-      || !(XINT (vec[5]) == -1 || XINT (vec[5]) == 0 || XINT (vec[5]) == 1)
-      || !STRINGP (vec[6])
-      || !STRINGP (vec[7])
-      || !STRINGP (vec[8]))
-    error ("Invalid info-vector argument for defining charset %s",
-          SDATA (SYMBOL_NAME (charset_symbol)));
-
-  if (NILP (charset_id))
-    {
-      charset_id = get_new_private_charset_id (XINT (vec[0]), XINT (vec[2]));
-      if (XINT (charset_id) == 0)
-       error ("There's no room for a new private charset %s",
-              SDATA (SYMBOL_NAME (charset_symbol)));
-    }
-
-  update_charset_table (charset_id, vec[0], vec[1], vec[2], vec[3],
-                       vec[4], vec[5], vec[6], vec[7], vec[8]);
-  Fput (charset_symbol, Qcharset, CHARSET_TABLE_ENTRY (XINT (charset_id)));
-  CHARSET_SYMBOL (XINT (charset_id)) = charset_symbol;
-  Vcharset_list = Fcons (charset_symbol, Vcharset_list);
-  Fupdate_coding_systems_internal ();
+  map_charset_chars (NULL, function, arg, cs, from, to);
   return Qnil;
 }
 
-DEFUN ("generic-character-list", Fgeneric_character_list,
-       Sgeneric_character_list, 0, 0, 0,
-       doc: /* Return a list of all possible generic characters.
-It includes a generic character for a charset not yet defined.  */)
-     ()
-{
-  return Vgeneric_character_list;
-}
 
-DEFUN ("get-unused-iso-final-char", Fget_unused_iso_final_char,
-       Sget_unused_iso_final_char, 2, 2, 0,
-       doc: /* Return an unused ISO's final char for a charset of DIMENSION and CHARS.
-DIMENSION is the number of bytes to represent a character: 1 or 2.
-CHARS is the number of characters in a dimension: 94 or 96.
+/* Define a charset according to the arguments.  The Nth argument is
+   the Nth attribute of the charset (the last attribute `charset-id'
+   is not included).  See the docstring of `define-charset' for the
+   detail.  */
 
-This final char is for private use, thus the range is `0' (48) .. `?' (63).
-If there's no unused final char for the specified kind of charset,
-return nil.  */)
-     (dimension, chars)
-     Lisp_Object dimension, chars;
+DEFUN ("define-charset-internal", Fdefine_charset_internal,
+       Sdefine_charset_internal, charset_arg_max, MANY, 0,
+       doc: /* For internal use only.
+usage: (define-charset-internal ...)  */)
+     (nargs, args)
+     int nargs;
+     Lisp_Object *args;
 {
-  int final_char;
+  /* Charset attr vector.  */
+  Lisp_Object attrs;
+  Lisp_Object val;
+  unsigned hash_code;
+  struct Lisp_Hash_Table *hash_table = XHASH_TABLE (Vcharset_hash_table);
+  int i, j;
+  struct charset charset;
+  int id;
+  int dimension;
+  int new_definition_p;
+  int nchars;
+
+  if (nargs != charset_arg_max)
+    return Fsignal (Qwrong_number_of_arguments,
+                   Fcons (intern ("define-charset-internal"),
+                          make_number (nargs)));
+
+  attrs = Fmake_vector (make_number (charset_attr_max), Qnil);
+
+  CHECK_SYMBOL (args[charset_arg_name]);
+  ASET (attrs, charset_name, args[charset_arg_name]);
+
+  val = args[charset_arg_code_space];
+  for (i = 0, dimension = 0, nchars = 1; i < 4; i++)
+    {
+      int min_byte, max_byte;
+
+      min_byte = XINT (Faref (val, make_number (i * 2)));
+      max_byte = XINT (Faref (val, make_number (i * 2 + 1)));
+      if (min_byte < 0 || min_byte > max_byte || max_byte >= 256)
+       error ("Invalid :code-space value");
+      charset.code_space[i * 4] = min_byte;
+      charset.code_space[i * 4 + 1] = max_byte;
+      charset.code_space[i * 4 + 2] = max_byte - min_byte + 1;
+      nchars *= charset.code_space[i * 4 + 2];
+      charset.code_space[i * 4 + 3] = nchars;
+      if (max_byte > 0)
+       dimension = i + 1;
+    }
 
-  CHECK_NUMBER (dimension);
-  CHECK_NUMBER (chars);
-  if (XINT (dimension) != 1 && XINT (dimension) != 2)
-    error ("Invalid charset dimension %d, it should be 1 or 2",
-          XINT (dimension));
-  if (XINT (chars) != 94 && XINT (chars) != 96)
-    error ("Invalid charset chars %d, it should be 94 or 96",
-          XINT (chars));
-  for (final_char = '0'; final_char <= '?'; final_char++)
+  val = args[charset_arg_dimension];
+  if (NILP (val))
+    charset.dimension = dimension;
+  else
     {
-      if (ISO_CHARSET_TABLE (dimension, chars, make_number (final_char)) < 0)
-       break;
+      CHECK_NATNUM (val);
+      charset.dimension = XINT (val);
+      if (charset.dimension < 1 || charset.dimension > 4)
+       args_out_of_range_3 (val, make_number (1), make_number (4));
     }
-  return (final_char <= '?' ? make_number (final_char) : Qnil);
-}
 
-DEFUN ("declare-equiv-charset", Fdeclare_equiv_charset, Sdeclare_equiv_charset,
-       4, 4, 0,
-       doc: /* Declare an equivalent charset for ISO-2022 decoding.
+  charset.code_linear_p
+    = (charset.dimension == 1
+       || (charset.code_space[2] == 256
+          && (charset.dimension == 2
+              || (charset.code_space[6] == 256
+                  && (charset.dimension == 3
+                      || charset.code_space[10] == 256)))));
 
-On decoding by an ISO-2022 base coding system, when a charset
-specified by DIMENSION, CHARS, and FINAL-CHAR is designated, behave as
-if CHARSET is designated instead.  */)
-     (dimension, chars, final_char, charset)
-     Lisp_Object dimension, chars, final_char, charset;
-{
-  int charset_id;
+  if (! charset.code_linear_p)
+    {
+      charset.code_space_mask = (unsigned char *) xmalloc (256);
+      bzero (charset.code_space_mask, 256);
+      for (i = 0; i < 4; i++)
+       for (j = charset.code_space[i * 4]; j <= charset.code_space[i * 4 + 1];
+            j++)
+         charset.code_space_mask[j] |= (1 << i);
+    }
 
-  CHECK_NUMBER (dimension);
-  CHECK_NUMBER (chars);
-  CHECK_NUMBER (final_char);
-  CHECK_SYMBOL (charset);
+  charset.iso_chars_96 = charset.code_space[2] == 96;
 
-  if (XINT (dimension) != 1 && XINT (dimension) != 2)
-    error ("Invalid DIMENSION %d, it should be 1 or 2", XINT (dimension));
-  if (XINT (chars) != 94 && XINT (chars) != 96)
-    error ("Invalid CHARS %d, it should be 94 or 96", XINT (chars));
-  if (XINT (final_char) < '0' || XFASTINT (final_char) > '~')
-    error ("Invalid FINAL-CHAR %c, it should be `0'..`~'", XINT (chars));
-  if ((charset_id = get_charset_id (charset)) < 0)
-    error ("Invalid charset %s", SDATA (SYMBOL_NAME (charset)));
+  charset.min_code = (charset.code_space[0]
+                     | (charset.code_space[4] << 8)
+                     | (charset.code_space[8] << 16)
+                     | (charset.code_space[12] << 24));
+  charset.max_code = (charset.code_space[1]
+                     | (charset.code_space[5] << 8)
+                     | (charset.code_space[9] << 16)
+                     | (charset.code_space[13] << 24));
+  charset.char_index_offset = 0;
 
-  ISO_CHARSET_TABLE (dimension, chars, final_char) = charset_id;
-  return Qnil;
-}
+  val = args[charset_arg_min_code];
+  if (! NILP (val))
+    {
+      unsigned code;
 
-/* Return information about charsets in the text at PTR of NBYTES
-   bytes, which are NCHARS characters.  The value is:
+      if (INTEGERP (val))
+       code = XINT (val);
+      else
+       {
+         CHECK_CONS (val);
+         CHECK_NUMBER_CAR (val);
+         CHECK_NUMBER_CDR (val);
+         code = (XINT (XCAR (val)) << 16) | (XINT (XCDR (val)));
+       }
+      if (code < charset.min_code
+         || code > charset.max_code)
+       args_out_of_range_3 (make_number (charset.min_code),
+                            make_number (charset.max_code), val);
+      charset.char_index_offset = CODE_POINT_TO_INDEX (&charset, code);
+      charset.min_code = code;
+    }
 
-       0: Each character is represented by one byte.  This is always
-          true for unibyte text.
-       1: No charsets other than ascii eight-bit-control,
-          eight-bit-graphic, and latin-1 are found.
-       2: Otherwise.
+  val = args[charset_arg_max_code];
+  if (! NILP (val))
+    {
+      unsigned code;
+
+      if (INTEGERP (val))
+       code = XINT (val);
+      else
+       {
+         CHECK_CONS (val);
+         CHECK_NUMBER_CAR (val);
+         CHECK_NUMBER_CDR (val);
+         code = (XINT (XCAR (val)) << 16) | (XINT (XCDR (val)));
+       }
+      if (code < charset.min_code
+         || code > charset.max_code)
+       args_out_of_range_3 (make_number (charset.min_code),
+                            make_number (charset.max_code), val);
+      charset.max_code = code;
+    }
 
-   In addition, if CHARSETS is nonzero, for each found charset N, set
-   CHARSETS[N] to 1.  For that, callers should allocate CHARSETS
-   (MAX_CHARSET + 1 elements) in advance.  It may lookup a translation
-   table TABLE if supplied.  For invalid charsets, set CHARSETS[1] to
-   1 (note that there's no charset whose ID is 1).  */
+  charset.compact_codes_p = charset.max_code < 0x1000000;
 
-int
-find_charset_in_text (ptr, nchars, nbytes, charsets, table)
-     const unsigned char *ptr;
-     int nchars, nbytes, *charsets;
-     Lisp_Object table;
-{
-  if (nchars == nbytes)
+  val = args[charset_arg_invalid_code];
+  if (NILP (val))
     {
-      if (charsets && nbytes > 0)
+      if (charset.min_code > 0)
+       charset.invalid_code = 0;
+      else
        {
-         const unsigned char *endp = ptr + nbytes;
-         int maskbits = 0;
+         XSETINT (val, charset.max_code + 1);
+         if (XINT (val) == charset.max_code + 1)
+           charset.invalid_code = charset.max_code + 1;
+         else
+           error ("Attribute :invalid-code must be specified");
+       }
+    }
+  else
+    {
+      CHECK_NATNUM (val);
+      charset.invalid_code = XFASTINT (val);
+    }
 
-         while (ptr < endp && maskbits != 7)
-           {
-             maskbits |= (*ptr < 0x80 ? 1 : *ptr < 0xA0 ? 2 : 4);
-             ptr++;
-           }
+  val = args[charset_arg_iso_final];
+  if (NILP (val))
+    charset.iso_final = -1;
+  else
+    {
+      CHECK_NUMBER (val);
+      if (XINT (val) < '0' || XINT (val) > 127)
+       error ("Invalid iso-final-char: %d", XINT (val));
+      charset.iso_final = XINT (val);
+    }
 
-         if (maskbits & 1)
-           charsets[CHARSET_ASCII] = 1;
-         if (maskbits & 2)
-           charsets[CHARSET_8_BIT_CONTROL] = 1;
-         if (maskbits & 4)
-           charsets[CHARSET_8_BIT_GRAPHIC] = 1;
-       }
-      return 0;
+  val = args[charset_arg_iso_revision];
+  if (NILP (val))
+    charset.iso_revision = -1;
+  else
+    {
+      CHECK_NUMBER (val);
+      if (XINT (val) > 63)
+       args_out_of_range (make_number (63), val);
+      charset.iso_revision = XINT (val);
     }
+
+  val = args[charset_arg_emacs_mule_id];
+  if (NILP (val))
+    charset.emacs_mule_id = -1;
   else
     {
-      int return_val = 1;
-      int bytes, charset, c1, c2;
+      CHECK_NATNUM (val);
+      if ((XINT (val) > 0 && XINT (val) <= 128) || XINT (val) >= 256)
+       error ("Invalid emacs-mule-id: %d", XINT (val));
+      charset.emacs_mule_id = XINT (val);
+    }
 
-      if (! CHAR_TABLE_P (table))
-       table = Qnil;
+  charset.ascii_compatible_p = ! NILP (args[charset_arg_ascii_compatible_p]);
 
-      while (nchars-- > 0)
-       {
-         SPLIT_MULTIBYTE_SEQ (ptr, len, bytes, charset, c1, c2);
-         ptr += bytes;
+  charset.supplementary_p = ! NILP (args[charset_arg_supplementary_p]);
 
-         if (!CHARSET_DEFINED_P (charset))
-           charset = 1;
-         else if (! NILP (table))
-           {
-             int c = translate_char (table, -1, charset, c1, c2);
-             if (c >= 0)
-               charset = CHAR_CHARSET (c);
-           }
+  charset.unified_p = 0;
 
-         if (return_val == 1
-             && charset != CHARSET_ASCII
-             && charset != CHARSET_8_BIT_CONTROL
-             && charset != CHARSET_8_BIT_GRAPHIC
-             && charset != charset_latin_iso8859_1)
-           return_val = 2;
+  bzero (charset.fast_map, sizeof (charset.fast_map));
 
-         if (charsets)
-           charsets[charset] = 1;
-         else if (return_val == 2)
-           break;
-       }
-      return return_val;
+  if (! NILP (args[charset_arg_code_offset]))
+    {
+      val = args[charset_arg_code_offset];
+      CHECK_NUMBER (val);
+
+      charset.method = CHARSET_METHOD_OFFSET;
+      charset.code_offset = XINT (val);
+
+      i = CODE_POINT_TO_INDEX (&charset, charset.min_code);
+      charset.min_char = i + charset.code_offset;
+      i = CODE_POINT_TO_INDEX (&charset, charset.max_code);
+      charset.max_char = i + charset.code_offset;
+      if (charset.max_char > MAX_CHAR)
+       error ("Unsupported max char: %d", charset.max_char);
+
+      i = (charset.min_char >> 7) << 7;
+      for (; i < 0x10000 && i <= charset.max_char; i += 128)
+       CHARSET_FAST_MAP_SET (i, charset.fast_map);
+      i = (i >> 12) << 12;
+      for (; i <= charset.max_char; i += 0x1000)
+       CHARSET_FAST_MAP_SET (i, charset.fast_map);
     }
-}
-
-DEFUN ("find-charset-region", Ffind_charset_region, Sfind_charset_region,
+  else if (! NILP (args[charset_arg_map]))
+    {
+      val = args[charset_arg_map];
+      ASET (attrs, charset_map, val);
+      if (STRINGP (val))
+       load_charset_map_from_file (&charset, val, 0);
+      else
+       load_charset_map_from_vector (&charset, val, 0);
+      charset.method = CHARSET_METHOD_MAP_DEFERRED;
+    }
+  else if (! NILP (args[charset_arg_subset]))
+    {
+      Lisp_Object parent;
+      Lisp_Object parent_min_code, parent_max_code, parent_code_offset;
+      struct charset *parent_charset;
+
+      val = args[charset_arg_subset];
+      parent = Fcar (val);
+      CHECK_CHARSET_GET_CHARSET (parent, parent_charset);
+      parent_min_code = Fnth (make_number (1), val);
+      CHECK_NATNUM (parent_min_code);
+      parent_max_code = Fnth (make_number (2), val);
+      CHECK_NATNUM (parent_max_code);
+      parent_code_offset = Fnth (make_number (3), val);
+      CHECK_NUMBER (parent_code_offset);
+      val = Fmake_vector (make_number (4), Qnil);
+      ASET (val, 0, make_number (parent_charset->id));
+      ASET (val, 1, parent_min_code);
+      ASET (val, 2, parent_max_code);
+      ASET (val, 3, parent_code_offset);
+      ASET (attrs, charset_subset, val);
+
+      charset.method = CHARSET_METHOD_SUBSET;
+      /* Here, we just copy the parent's fast_map.  It's not accurate,
+        but at least it works for quickly detecting which character
+        DOESN'T belong to this charset.  */
+      for (i = 0; i < 190; i++)
+       charset.fast_map[i] = parent_charset->fast_map[i];
+
+      /* We also copy these for parents.  */
+      charset.min_char = parent_charset->min_char;
+      charset.max_char = parent_charset->max_char;
+    }
+  else if (! NILP (args[charset_arg_superset]))
+    {
+      val = args[charset_arg_superset];
+      charset.method = CHARSET_METHOD_SUPERSET;
+      val = Fcopy_sequence (val);
+      ASET (attrs, charset_superset, val);
+
+      charset.min_char = MAX_CHAR;
+      charset.max_char = 0;
+      for (; ! NILP (val); val = Fcdr (val))
+       {
+         Lisp_Object elt, car_part, cdr_part;
+         int this_id, offset;
+         struct charset *this_charset;
+
+         elt = Fcar (val);
+         if (CONSP (elt))
+           {
+             car_part = XCAR (elt);
+             cdr_part = XCDR (elt);
+             CHECK_CHARSET_GET_ID (car_part, this_id);
+             CHECK_NUMBER (cdr_part);
+             offset = XINT (cdr_part);
+           }
+         else
+           {
+             CHECK_CHARSET_GET_ID (elt, this_id);
+             offset = 0;
+           }
+         XSETCAR (val, Fcons (make_number (this_id), make_number (offset)));
+
+         this_charset = CHARSET_FROM_ID (this_id);
+         if (charset.min_char > this_charset->min_char)
+           charset.min_char = this_charset->min_char;
+         if (charset.max_char < this_charset->max_char)
+           charset.max_char = this_charset->max_char;
+         for (i = 0; i < 190; i++)
+           charset.fast_map[i] |= this_charset->fast_map[i];
+       }
+    }
+  else
+    error ("None of :code-offset, :map, :parents are specified");
+
+  val = args[charset_arg_unify_map];
+  if (! NILP (val) && !STRINGP (val))
+    CHECK_VECTOR (val);
+  ASET (attrs, charset_unify_map, val);
+
+  CHECK_LIST (args[charset_arg_plist]);
+  ASET (attrs, charset_plist, args[charset_arg_plist]);
+
+  charset.hash_index = hash_lookup (hash_table, args[charset_arg_name],
+                                   &hash_code);
+  if (charset.hash_index >= 0)
+    {
+      new_definition_p = 0;
+      id = XFASTINT (CHARSET_SYMBOL_ID (args[charset_arg_name]));
+      HASH_VALUE (hash_table, charset.hash_index) = attrs;
+    }
+  else
+    {
+      charset.hash_index = hash_put (hash_table, args[charset_arg_name], attrs,
+                                    hash_code);
+      if (charset_table_used == charset_table_size)
+       {
+         struct charset *new_table
+           = (struct charset *) xmalloc (sizeof (struct charset)
+                                         * (charset_table_size + 16));
+         bcopy (charset_table, new_table,
+                sizeof (struct charset) * charset_table_size);
+         charset_table_size += 16;
+         charset_table = new_table;
+       }
+      id = charset_table_used++;
+      new_definition_p = 1;
+    }
+
+  ASET (attrs, charset_id, make_number (id));
+  charset.id = id;
+  charset_table[id] = charset;
+
+  if (charset.iso_final >= 0)
+    {
+      ISO_CHARSET_TABLE (charset.dimension, charset.iso_chars_96,
+                        charset.iso_final) = id;
+      if (new_definition_p)
+       Viso_2022_charset_list = nconc2 (Viso_2022_charset_list,
+                                        Fcons (make_number (id), Qnil));
+      if (ISO_CHARSET_TABLE (1, 0, 'J') == id)
+       charset_jisx0201_roman = id;
+      else if (ISO_CHARSET_TABLE (2, 0, '@') == id)
+       charset_jisx0208_1978 = id;
+      else if (ISO_CHARSET_TABLE (2, 0, 'B') == id)
+       charset_jisx0208 = id;
+    }
+       
+  if (charset.emacs_mule_id >= 0)
+    {
+      emacs_mule_charset[charset.emacs_mule_id] = CHARSET_FROM_ID (id);
+      if (charset.emacs_mule_id < 0xA0)
+       emacs_mule_bytes[charset.emacs_mule_id] = charset.dimension + 1;
+      else
+       emacs_mule_bytes[charset.emacs_mule_id] = charset.dimension + 2;
+      if (new_definition_p)
+       Vemacs_mule_charset_list = nconc2 (Vemacs_mule_charset_list,
+                                          Fcons (make_number (id), Qnil));
+    }
+
+  if (new_definition_p)
+    {
+      Vcharset_list = Fcons (args[charset_arg_name], Vcharset_list);
+      if (charset.supplementary_p)
+       Vcharset_ordered_list = nconc2 (Vcharset_ordered_list,
+                                       Fcons (make_number (id), Qnil));
+      else
+       Vcharset_ordered_list = Fcons (make_number (id),
+                                      Vcharset_ordered_list);
+      charset_ordered_list_tick++;
+    }
+
+  return Qnil;
+}
+
+
+/* Same as Fdefine_charset_internal but arguments are more convenient
+   to call from C (typically in syms_of_charset).  This can define a
+   charset of `offset' method only.  Return the ID of the new
+   charset.  */
+
+static int
+define_charset_internal (name, dimension, code_space, min_code, max_code,
+                        iso_final, iso_revision, emacs_mule_id,
+                        ascii_compatible, supplementary,
+                        code_offset)
+     Lisp_Object name;
+     int dimension;
+     unsigned char *code_space;
+     unsigned min_code, max_code;
+     int iso_final, iso_revision, emacs_mule_id;
+     int ascii_compatible, supplementary;
+     int code_offset;
+{
+  Lisp_Object args[charset_arg_max];
+  Lisp_Object plist[14];
+  Lisp_Object val;
+  int i;
+
+  args[charset_arg_name] = name;
+  args[charset_arg_dimension] = make_number (dimension);
+  val = Fmake_vector (make_number (8), make_number (0));
+  for (i = 0; i < 8; i++)
+    ASET (val, i, make_number (code_space[i]));
+  args[charset_arg_code_space] = val;
+  args[charset_arg_min_code] = make_number (min_code);
+  args[charset_arg_max_code] = make_number (max_code);
+  args[charset_arg_iso_final]
+    = (iso_final < 0 ? Qnil : make_number (iso_final));
+  args[charset_arg_iso_revision] = make_number (iso_revision);
+  args[charset_arg_emacs_mule_id]
+    = (emacs_mule_id < 0 ? Qnil : make_number (emacs_mule_id));
+  args[charset_arg_ascii_compatible_p] = ascii_compatible ? Qt : Qnil;
+  args[charset_arg_supplementary_p] = supplementary ? Qt : Qnil;
+  args[charset_arg_invalid_code] = Qnil;
+  args[charset_arg_code_offset] = make_number (code_offset);
+  args[charset_arg_map] = Qnil;
+  args[charset_arg_subset] = Qnil;
+  args[charset_arg_superset] = Qnil;
+  args[charset_arg_unify_map] = Qnil;
+
+  plist[0] = intern (":name");
+  plist[1] = args[charset_arg_name];
+  plist[2] = intern (":dimension");
+  plist[3] = args[charset_arg_dimension];
+  plist[4] = intern (":code-space");
+  plist[5] = args[charset_arg_code_space];
+  plist[6] = intern (":iso-final-char");
+  plist[7] = args[charset_arg_iso_final];
+  plist[8] = intern (":emacs-mule-id");
+  plist[9] = args[charset_arg_emacs_mule_id];
+  plist[10] = intern (":ascii-compatible-p");
+  plist[11] = args[charset_arg_ascii_compatible_p];
+  plist[12] = intern (":code-offset");
+  plist[13] = args[charset_arg_code_offset];
+
+  args[charset_arg_plist] = Flist (14, plist);
+  Fdefine_charset_internal (charset_arg_max, args);
+
+  return XINT (CHARSET_SYMBOL_ID (name));
+}
+
+
+DEFUN ("define-charset-alias", Fdefine_charset_alias,
+       Sdefine_charset_alias, 2, 2, 0,
+       doc: /* Define ALIAS as an alias for charset CHARSET.  */)
+     (alias, charset)
+     Lisp_Object alias, charset;
+{
+  Lisp_Object attr;
+
+  CHECK_CHARSET_GET_ATTR (charset, attr);
+  Fputhash (alias, attr, Vcharset_hash_table);
+  Vcharset_list = Fcons (alias, Vcharset_list);
+  return Qnil;
+}
+
+
+DEFUN ("unibyte-charset", Funibyte_charset, Sunibyte_charset, 0, 0, 0,
+       doc: /* Return the unibyte charset (set by `set-unibyte-charset').  */)
+     ()
+{
+  return CHARSET_NAME (CHARSET_FROM_ID (charset_unibyte));
+}
+
+
+DEFUN ("set-unibyte-charset", Fset_unibyte_charset, Sset_unibyte_charset,
+       1, 1, 0,
+       doc: /* Set the unibyte charset to CHARSET.
+This determines how unibyte/multibyte conversion is done.  See also
+function `unibyte-charset'.  */)
+     (charset)
+     Lisp_Object charset;
+{
+  struct charset *cs;
+  int i, c;
+
+  CHECK_CHARSET_GET_CHARSET (charset, cs);
+  if (! cs->ascii_compatible_p
+      || cs->dimension != 1)
+    error ("Inappropriate unibyte charset: %s", SDATA (SYMBOL_NAME (charset)));
+  charset_unibyte = cs->id;
+  memset (unibyte_has_multibyte_table, 1, 128);
+  for (i = 128; i < 256; i++)
+    {
+      c = DECODE_CHAR (cs, i);
+      unibyte_to_multibyte_table[i] = (c < 0 ? BYTE8_TO_CHAR (i) : c);
+      unibyte_has_multibyte_table[i] = c >= 0;
+    }
+
+  return Qnil;
+}
+
+
+DEFUN ("charset-plist", Fcharset_plist, Scharset_plist, 1, 1, 0,
+       doc: /* Return the property list of CHARSET.  */)
+     (charset)
+     Lisp_Object charset;
+{
+  Lisp_Object attrs;
+
+  CHECK_CHARSET_GET_ATTR (charset, attrs);
+  return CHARSET_ATTR_PLIST (attrs);
+}
+
+
+DEFUN ("set-charset-plist", Fset_charset_plist, Sset_charset_plist, 2, 2, 0,
+       doc: /* Set CHARSET's property list to PLIST.  */)
+     (charset, plist)
+     Lisp_Object charset, plist;
+{
+  Lisp_Object attrs;
+
+  CHECK_CHARSET_GET_ATTR (charset, attrs);
+  CHARSET_ATTR_PLIST (attrs) = plist;
+  return plist;
+}
+
+
+DEFUN ("unify-charset", Funify_charset, Sunify_charset, 1, 3, 0,
+       doc: /* Unify characters of CHARSET with Unicode.
+This means reading the relevant file and installing the table defined
+by CHARSET's `:unify-map' property.
+
+Optional second arg UNIFY-MAP is a file name string or a vector.  It has
+the same meaning as the `:unify-map' attribute in the function
+`define-charset' (which see).
+
+Optional third argument DEUNIFY, if non-nil, means to de-unify CHARSET.  */)
+     (charset, unify_map, deunify)
+     Lisp_Object charset, unify_map, deunify;
+{
+  int id;
+  struct charset *cs;
+
+  CHECK_CHARSET_GET_ID (charset, id);
+  cs = CHARSET_FROM_ID (id);
+  if (CHARSET_METHOD (cs) == CHARSET_METHOD_MAP_DEFERRED)
+    load_charset (cs);
+  if (NILP (deunify)
+      ? CHARSET_UNIFIED_P (cs) && ! NILP (CHARSET_DEUNIFIER (cs))
+      : ! CHARSET_UNIFIED_P (cs))
+    return Qnil;
+
+  CHARSET_UNIFIED_P (cs) = 0;
+  if (NILP (deunify))
+    {
+      if (CHARSET_METHOD (cs) != CHARSET_METHOD_OFFSET)
+       error ("Can't unify charset: %s", SDATA (SYMBOL_NAME (charset)));
+      if (NILP (unify_map))
+       unify_map = CHARSET_UNIFY_MAP (cs);
+      if (STRINGP (unify_map))
+       load_charset_map_from_file (cs, unify_map, 2);
+      else if (VECTORP (unify_map))
+       load_charset_map_from_vector (cs, unify_map, 2);
+      else if (NILP (unify_map))
+       error ("No unify-map for charset");
+      else
+       error ("Bad unify-map arg");
+      CHARSET_UNIFIED_P (cs) = 1;
+    }
+  else if (CHAR_TABLE_P (Vchar_unify_table))
+    {
+      int min_code = CHARSET_MIN_CODE (cs);
+      int max_code = CHARSET_MAX_CODE (cs);
+      int min_char = DECODE_CHAR (cs, min_code);
+      int max_char = DECODE_CHAR (cs, max_code);
+
+      char_table_set_range (Vchar_unify_table, min_char, max_char, Qnil);
+    }
+
+  return Qnil;
+}
+
+DEFUN ("get-unused-iso-final-char", Fget_unused_iso_final_char,
+       Sget_unused_iso_final_char, 2, 2, 0,
+       doc: /*
+Return an unused ISO final char for a charset of DIMENISION and CHARS.
+DIMENSION is the number of bytes to represent a character: 1 or 2.
+CHARS is the number of characters in a dimension: 94 or 96.
+
+This final char is for private use, thus the range is `0' (48) .. `?' (63).
+If there's no unused final char for the specified kind of charset,
+return nil.  */)
+     (dimension, chars)
+     Lisp_Object dimension, chars;
+{
+  int final_char;
+
+  CHECK_NUMBER (dimension);
+  CHECK_NUMBER (chars);
+  if (XINT (dimension) != 1 && XINT (dimension) != 2 && XINT (dimension) != 3)
+    args_out_of_range_3 (dimension, make_number (1), make_number (3));
+  if (XINT (chars) != 94 && XINT (chars) != 96)
+    args_out_of_range_3 (chars, make_number (94), make_number (96));
+  for (final_char = '0'; final_char <= '?'; final_char++)
+    if (ISO_CHARSET_TABLE (XINT (dimension), XINT (chars), final_char) < 0)
+      break;
+  return (final_char <= '?' ? make_number (final_char) : Qnil);
+}
+
+static void
+check_iso_charset_parameter (dimension, chars, final_char)
+     Lisp_Object dimension, chars, final_char;
+{
+  CHECK_NATNUM (dimension);
+  CHECK_NATNUM (chars);
+  CHECK_NATNUM (final_char);
+
+  if (XINT (dimension) > 3)
+    error ("Invalid DIMENSION %d, it should be 1, 2, or 3", XINT (dimension));
+  if (XINT (chars) != 94 && XINT (chars) != 96)
+    error ("Invalid CHARS %d, it should be 94 or 96", XINT (chars));
+  if (XINT (final_char) < '0' || XINT (final_char) > '~')
+    error ("Invalid FINAL-CHAR %c, it should be `0'..`~'", XINT (chars));
+}
+
+
+DEFUN ("declare-equiv-charset", Fdeclare_equiv_charset, Sdeclare_equiv_charset,
+       4, 4, 0,
+       doc: /* Declare an equivalent charset for ISO-2022 decoding.
+
+On decoding by an ISO-2022 base coding system, when a charset
+specified by DIMENSION, CHARS, and FINAL-CHAR is designated, behave as
+if CHARSET is designated instead.  */)
+     (dimension, chars, final_char, charset)
+     Lisp_Object dimension, chars, final_char, charset;
+{
+  int id;
+  int chars_flag;
+
+  CHECK_CHARSET_GET_ID (charset, id);
+  check_iso_charset_parameter (dimension, chars, final_char);
+  chars_flag = XINT (chars) == 96;
+  ISO_CHARSET_TABLE (XINT (dimension), chars_flag, XINT (final_char)) = id;
+  return Qnil;
+}
+
+
+/* Return information about charsets in the text at PTR of NBYTES
+   bytes, which are NCHARS characters.  The value is:
+
+       0: Each character is represented by one byte.  This is always
+          true for a unibyte string.  For a multibyte string, true if
+          it contains only ASCII characters.
+
+       1: No charsets other than ascii, control-1, and latin-1 are
+          found.
+
+       2: Otherwise.
+*/
+
+int
+string_xstring_p (string)
+     Lisp_Object string;
+{
+  const unsigned char *p = SDATA (string);
+  const unsigned char *endp = p + SBYTES (string);
+
+  if (SCHARS (string) == SBYTES (string))
+    return 0;
+
+  while (p < endp)
+    {
+      int c = STRING_CHAR_ADVANCE (p);
+
+      if (c >= 0x100)
+       return 2;
+    }
+  return 1;
+}
+
+
+/* Find charsets in the string at PTR of NCHARS and NBYTES.
+
+   CHARSETS is a vector.  If Nth element is non-nil, it means the
+   charset whose id is N is already found.
+
+   It may lookup a translation table TABLE if supplied.  */
+
+static void
+find_charsets_in_text (ptr, nchars, nbytes, charsets, table, multibyte)
+     const unsigned char *ptr;
+     EMACS_INT nchars, nbytes;
+     Lisp_Object charsets, table;
+     int multibyte;
+{
+  const unsigned char *pend = ptr + nbytes;
+
+  if (nchars == nbytes)
+    {
+      if (multibyte)
+       ASET (charsets, charset_ascii, Qt);
+      else
+       while (ptr < pend)
+         {
+           int c = *ptr++;
+
+           if (!NILP (table))
+             c = translate_char (table, c);
+           if (ASCII_BYTE_P (c))
+             ASET (charsets, charset_ascii, Qt);
+           else
+             ASET (charsets, charset_eight_bit, Qt);
+         }
+    }
+  else
+    {
+      while (ptr < pend)
+       {
+         int c = STRING_CHAR_ADVANCE (ptr);
+         struct charset *charset;
+
+         if (!NILP (table))
+           c = translate_char (table, c);
+         charset = CHAR_CHARSET (c);
+         ASET (charsets, CHARSET_ID (charset), Qt);
+       }
+    }
+}
+
+DEFUN ("find-charset-region", Ffind_charset_region, Sfind_charset_region,
        2, 3, 0,
        doc: /* Return a list of charsets in the region between BEG and END.
 BEG and END are buffer positions.
 Optional arg TABLE if non-nil is a translation table to look up.
 
-If the region contains invalid multibyte characters,
-`unknown' is included in the returned list.
-
 If the current buffer is unibyte, the returned list may contain
 only `ascii', `eight-bit-control', and `eight-bit-graphic'.  */)
      (beg, end, table)
      Lisp_Object beg, end, table;
 {
-  int charsets[MAX_CHARSET + 1];
-  int from, from_byte, to, stop, stop_byte, i;
+  Lisp_Object charsets;
+  EMACS_INT from, from_byte, to, stop, stop_byte;
+  int i;
   Lisp_Object val;
+  int multibyte = ! NILP (current_buffer->enable_multibyte_characters);
 
   validate_region (&beg, &end);
   from = XFASTINT (beg);
@@ -907,11 +1443,12 @@ only `ascii', `eight-bit-control', and `eight-bit-graphic'.  */)
 
   from_byte = CHAR_TO_BYTE (from);
 
-  bzero (charsets, (MAX_CHARSET + 1) * sizeof (int));
+  charsets = Fmake_vector (make_number (charset_table_used), Qnil);
   while (1)
     {
-      find_charset_in_text (BYTE_POS_ADDR (from_byte), stop - from,
-                           stop_byte - from_byte, charsets, table);
+      find_charsets_in_text (BYTE_POS_ADDR (from_byte), stop - from,
+                            stop_byte - from_byte, charsets, table,
+                            multibyte);
       if (stop < to)
        {
          from = stop, from_byte = stop_byte;
@@ -922,13 +1459,9 @@ only `ascii', `eight-bit-control', and `eight-bit-graphic'.  */)
     }
 
   val = Qnil;
-  if (charsets[1])
-    val = Fcons (Qunknown, val);
-  for (i = MAX_CHARSET; i >= MIN_CHARSET_OFFICIAL_DIMENSION1; i--)
-    if (charsets[i])
-      val = Fcons (CHARSET_SYMBOL (i), val);
-  if (charsets[0])
-    val = Fcons (Qascii, val);
+  for (i = charset_table_used - 1; i >= 0; i--)
+    if (!NILP (AREF (charsets, i)))
+      val = Fcons (CHARSET_NAME (charset_table + i), val);
   return val;
 }
 
@@ -937,850 +1470,607 @@ DEFUN ("find-charset-string", Ffind_charset_string, Sfind_charset_string,
        doc: /* Return a list of charsets in STR.
 Optional arg TABLE if non-nil is a translation table to look up.
 
-If the string contains invalid multibyte characters,
-`unknown' is included in the returned list.
-
 If STR is unibyte, the returned list may contain
-only `ascii', `eight-bit-control', and `eight-bit-graphic'.  */)
+only `ascii', `eight-bit-control', and `eight-bit-graphic'. */)
      (str, table)
      Lisp_Object str, table;
 {
-  int charsets[MAX_CHARSET + 1];
+  Lisp_Object charsets;
   int i;
   Lisp_Object val;
 
   CHECK_STRING (str);
 
-  bzero (charsets, (MAX_CHARSET + 1) * sizeof (int));
-  find_charset_in_text (SDATA (str), SCHARS (str),
-                       SBYTES (str), charsets, table);
-
+  charsets = Fmake_vector (make_number (charset_table_used), Qnil);
+  find_charsets_in_text (SDATA (str), SCHARS (str), SBYTES (str),
+                        charsets, table,
+                        STRING_MULTIBYTE (str));
   val = Qnil;
-  if (charsets[1])
-    val = Fcons (Qunknown, val);
-  for (i = MAX_CHARSET; i >= MIN_CHARSET_OFFICIAL_DIMENSION1; i--)
-    if (charsets[i])
-      val = Fcons (CHARSET_SYMBOL (i), val);
-  if (charsets[0])
-    val = Fcons (Qascii, val);
+  for (i = charset_table_used - 1; i >= 0; i--)
+    if (!NILP (AREF (charsets, i)))
+      val = Fcons (CHARSET_NAME (charset_table + i), val);
   return val;
 }
 
 \f
-DEFUN ("make-char-internal", Fmake_char_internal, Smake_char_internal, 1, 3, 0,
-       doc: /* Return a character made from arguments.
-Internal use only.  */)
-     (charset, code1, code2)
-     Lisp_Object charset, code1, code2;
+
+/* Return a character correponding to the code-point CODE of
+   CHARSET.  */
+
+int
+decode_char (charset, code)
+     struct charset *charset;
+     unsigned code;
 {
-  int charset_id, c1, c2;
+  int c, char_index;
+  enum charset_method method = CHARSET_METHOD (charset);
 
-  CHECK_NUMBER (charset);
-  charset_id = XINT (charset);
-  if (!CHARSET_DEFINED_P (charset_id))
-    error ("Invalid charset ID: %d", XINT (charset));
+  if (code < CHARSET_MIN_CODE (charset) || code > CHARSET_MAX_CODE (charset))
+    return -1;
 
-  if (NILP (code1))
-    c1 = 0;
-  else
+  if (method == CHARSET_METHOD_MAP_DEFERRED)
     {
-      CHECK_NUMBER (code1);
-      c1 = XINT (code1);
-    }
-  if (NILP (code2))
-    c2 = 0;
-  else
-    {
-      CHECK_NUMBER (code2);
-      c2 = XINT (code2);
+      load_charset (charset);
+      method = CHARSET_METHOD (charset);
     }
 
-  if (charset_id == CHARSET_ASCII)
-    {
-      if (c1 < 0 || c1 > 0x7F)
-       goto invalid_code_posints;
-      return make_number (c1);
-    }
-  else if (charset_id == CHARSET_8_BIT_CONTROL)
+  if (method == CHARSET_METHOD_SUBSET)
     {
-      if (NILP (code1))
-       c1 = 0x80;
-      else if (c1 < 0x80 || c1 > 0x9F)
-       goto invalid_code_posints;
-      return make_number (c1);
+      Lisp_Object subset_info;
+
+      subset_info = CHARSET_SUBSET (charset);
+      charset = CHARSET_FROM_ID (XFASTINT (AREF (subset_info, 0)));
+      code -= XINT (AREF (subset_info, 3));
+      if (code < XFASTINT (AREF (subset_info, 1))
+         || code > XFASTINT (AREF (subset_info, 2)))
+       c = -1;
+      else
+       c = DECODE_CHAR (charset, code);
     }
-  else if (charset_id == CHARSET_8_BIT_GRAPHIC)
+  else if (method == CHARSET_METHOD_SUPERSET)
     {
-      if (NILP (code1))
-       c1 = 0xA0;
-      else if (c1 < 0xA0 || c1 > 0xFF)
-       goto invalid_code_posints;
-      return make_number (c1);
-    }
-  else if (c1 < 0 || c1 > 0xFF || c2 < 0 || c2 > 0xFF)
-    goto invalid_code_posints;
-  c1 &= 0x7F;
-  c2 &= 0x7F;
-  if (c1 == 0
-      ? c2 != 0
-      : (c2 == 0
-        ? !CHAR_COMPONENTS_VALID_P (charset_id, c1, 0x20)
-        : !CHAR_COMPONENTS_VALID_P (charset_id, c1, c2)))
-    goto invalid_code_posints;
-  return make_number (MAKE_CHAR (charset_id, c1, c2));
-
- invalid_code_posints:
-  error ("Invalid code points for charset ID %d: %d %d", charset_id, c1, c2);
-}
+      Lisp_Object parents;
 
-DEFUN ("split-char", Fsplit_char, Ssplit_char, 1, 1, 0,
-       doc: /* Return list of charset and one or two position-codes of CH.
-If CH is invalid as a character code,
-return a list of symbol `unknown' and CH.  */)
-     (ch)
-     Lisp_Object ch;
-{
-  int c, charset, c1, c2;
+      parents = CHARSET_SUPERSET (charset);
+      c = -1;
+      for (; CONSP (parents); parents = XCDR (parents))
+       {
+         int id = XINT (XCAR (XCAR (parents)));
+         int code_offset = XINT (XCDR (XCAR (parents)));
+         unsigned this_code = code - code_offset;
 
-  CHECK_NUMBER (ch);
-  c = XFASTINT (ch);
-  if (!CHAR_VALID_P (c, 1))
-    return Fcons (Qunknown, Fcons (ch, Qnil));
-  SPLIT_CHAR (XFASTINT (ch), charset, c1, c2);
-  return (c2 >= 0
-         ? Fcons (CHARSET_SYMBOL (charset),
-                  Fcons (make_number (c1), Fcons (make_number (c2), Qnil)))
-         : Fcons (CHARSET_SYMBOL (charset), Fcons (make_number (c1), Qnil)));
-}
+         charset = CHARSET_FROM_ID (id);
+         if ((c = DECODE_CHAR (charset, this_code)) >= 0)
+           break;
+       }
+    }
+  else
+    {
+      char_index = CODE_POINT_TO_INDEX (charset, code);
+      if (char_index < 0)
+       return -1;
 
-DEFUN ("char-charset", Fchar_charset, Schar_charset, 1, 1, 0,
-       doc: /* Return charset of CH.  */)
-     (ch)
-     Lisp_Object ch;
-{
-  CHECK_NUMBER (ch);
+      if (method == CHARSET_METHOD_MAP)
+       {
+         Lisp_Object decoder;
 
-  return CHARSET_SYMBOL (CHAR_CHARSET (XINT (ch)));
-}
+         decoder = CHARSET_DECODER (charset);
+         if (! VECTORP (decoder))
+           return -1;
+         c = XINT (AREF (decoder, char_index));
+       }
+      else
+       {
+         c = char_index + CHARSET_CODE_OFFSET (charset);
+       }
+    }
 
-DEFUN ("charset-after", Fcharset_after, Scharset_after, 0, 1, 0,
-       doc: /* Return charset of a character in the current buffer at position POS.
-If POS is nil, it defauls to the current point.
-If POS is out of range, the value is nil.  */)
-     (pos)
-     Lisp_Object pos;
-{
-  Lisp_Object ch;
-  int charset;
+  if (CHARSET_UNIFIED_P (charset)
+      && c >= 0)
+    {
+      MAYBE_UNIFY_CHAR (c);
+    }
 
-  ch = Fchar_after (pos);
-  if (! INTEGERP (ch))
-    return ch;
-  charset = CHAR_CHARSET (XINT (ch));
-  return CHARSET_SYMBOL (charset);
+  return c;
 }
 
-DEFUN ("iso-charset", Fiso_charset, Siso_charset, 3, 3, 0,
-       doc: /* Return charset of ISO's specification DIMENSION, CHARS, and FINAL-CHAR.
-
-ISO 2022's designation sequence (escape sequence) distinguishes charsets
-by their DIMENSION, CHARS, and FINAL-CHAR,
-where as Emacs distinguishes them by charset symbol.
-See the documentation of the function `charset-info' for the meanings of
-DIMENSION, CHARS, and FINAL-CHAR.  */)
-     (dimension, chars, final_char)
-     Lisp_Object dimension, chars, final_char;
-{
-  int charset;
-
-  CHECK_NUMBER (dimension);
-  CHECK_NUMBER (chars);
-  CHECK_NUMBER (final_char);
+/* Variable used temporarily by the macro ENCODE_CHAR.  */
+Lisp_Object charset_work;
 
-  if ((charset = ISO_CHARSET_TABLE (dimension, chars, final_char)) < 0)
-    return Qnil;
-  return CHARSET_SYMBOL (charset);
-}
+/* Return a code-point of CHAR in CHARSET.  If CHAR doesn't belong to
+   CHARSET, return CHARSET_INVALID_CODE (CHARSET).  If STRICT is true,
+   use CHARSET's strict_max_char instead of max_char.  */
 
-/* If GENERICP is nonzero, return nonzero if C is a valid normal or
-   generic character.  If GENERICP is zero, return nonzero if C is a
-   valid normal character.  Do not call this function directly,
-   instead use macro CHAR_VALID_P.  */
-int
-char_valid_p (c, genericp)
-     int c, genericp;
+unsigned
+encode_char (charset, c)
+     struct charset *charset;
+     int c;
 {
-  int charset, c1, c2;
+  unsigned code;
+  enum charset_method method = CHARSET_METHOD (charset);
 
-  if (c < 0 || c >= MAX_CHAR)
-    return 0;
-  if (SINGLE_BYTE_CHAR_P (c))
-    return 1;
-  SPLIT_CHAR (c, charset, c1, c2);
-  if (genericp)
+  if (CHARSET_UNIFIED_P (charset))
     {
-      if (c1)
-       {
-         if (c2 <= 0) c2 = 0x20;
-       }
-      else
+      Lisp_Object deunifier, deunified;
+
+      deunifier = CHARSET_DEUNIFIER (charset);
+      if (! CHAR_TABLE_P (deunifier))
        {
-         if (c2 <= 0) c1 = c2 = 0x20;
+         Funify_charset (CHARSET_NAME (charset), Qnil, Qnil);
+         deunifier = CHARSET_DEUNIFIER (charset);
        }
+      deunified = CHAR_TABLE_REF (deunifier, c);
+      if (! NILP (deunified))
+       c = XINT (deunified);
     }
-  return (CHARSET_DEFINED_P (charset)
-         && CHAR_COMPONENTS_VALID_P (charset, c1, c2));
-}
 
-DEFUN ("char-valid-p", Fchar_valid_p, Schar_valid_p, 1, 2, 0,
-       doc: /* Return t if OBJECT is a valid normal character.
-If optional arg GENERICP is non-nil, also return t if OBJECT is
-a valid generic character.  */)
-     (object, genericp)
-     Lisp_Object object, genericp;
-{
-  if (! NATNUMP (object))
-    return Qnil;
-  return (CHAR_VALID_P (XFASTINT (object), !NILP (genericp)) ? Qt : Qnil);
-}
+  if (method == CHARSET_METHOD_SUBSET)
+    {
+      Lisp_Object subset_info;
+      struct charset *this_charset;
+
+      subset_info = CHARSET_SUBSET (charset);
+      this_charset = CHARSET_FROM_ID (XFASTINT (AREF (subset_info, 0)));
+      code = ENCODE_CHAR (this_charset, c);
+      if (code == CHARSET_INVALID_CODE (this_charset)
+         || code < XFASTINT (AREF (subset_info, 1))
+         || code > XFASTINT (AREF (subset_info, 2)))
+       return CHARSET_INVALID_CODE (charset);
+      code += XINT (AREF (subset_info, 3));
+      return code;
+    }
 
-DEFUN ("unibyte-char-to-multibyte", Funibyte_char_to_multibyte,
-       Sunibyte_char_to_multibyte, 1, 1, 0,
-       doc: /* Convert the unibyte character CH to multibyte character.
-The conversion is done based on `nonascii-translation-table' (which see)
- or `nonascii-insert-offset' (which see).  */)
-     (ch)
-     Lisp_Object ch;
-{
-  int c;
+  if (method == CHARSET_METHOD_SUPERSET)
+    {
+      Lisp_Object parents;
 
-  CHECK_NUMBER (ch);
-  c = XINT (ch);
-  if (c < 0 || c >= 0400)
-    error ("Invalid unibyte character: %d", c);
-  c = unibyte_char_to_multibyte (c);
-  if (c < 0)
-    error ("Can't convert to multibyte character: %d", XINT (ch));
-  return make_number (c);
-}
+      parents = CHARSET_SUPERSET (charset);
+      for (; CONSP (parents); parents = XCDR (parents))
+       {
+         int id = XINT (XCAR (XCAR (parents)));
+         int code_offset = XINT (XCDR (XCAR (parents)));
+         struct charset *this_charset = CHARSET_FROM_ID (id);
 
-DEFUN ("multibyte-char-to-unibyte", Fmultibyte_char_to_unibyte,
-       Smultibyte_char_to_unibyte, 1, 1, 0,
-       doc: /* Convert the multibyte character CH to unibyte character.
-The conversion is done based on `nonascii-translation-table' (which see)
- or `nonascii-insert-offset' (which see).  */)
-     (ch)
-     Lisp_Object ch;
-{
-  int c;
+         code = ENCODE_CHAR (this_charset, c);
+         if (code != CHARSET_INVALID_CODE (this_charset))
+           return code + code_offset;
+       }
+      return CHARSET_INVALID_CODE (charset);
+    }
 
-  CHECK_NUMBER (ch);
-  c = XINT (ch);
-  if (! CHAR_VALID_P (c, 0))
-    error ("Invalid multibyte character: %d", c);
-  c = multibyte_char_to_unibyte (c, Qnil);
-  if (c < 0)
-    error ("Can't convert to unibyte character: %d", XINT (ch));
-  return make_number (c);
-}
+  if (! CHARSET_FAST_MAP_REF ((c), charset->fast_map)
+      || c < CHARSET_MIN_CHAR (charset) || c > CHARSET_MAX_CHAR (charset))
+    return CHARSET_INVALID_CODE (charset);
 
-DEFUN ("char-bytes", Fchar_bytes, Schar_bytes, 1, 1, 0,
-       doc: /* Return 1 regardless of the argument CH.  */)
-     (ch)
-     Lisp_Object ch;
-{
-  CHECK_NUMBER (ch);
-  return make_number (1);
-}
+  if (method == CHARSET_METHOD_MAP_DEFERRED)
+    {
+      load_charset (charset);
+      method = CHARSET_METHOD (charset);
+    }
 
-/* Return how many bytes C will occupy in a multibyte buffer.
-   Don't call this function directly, instead use macro CHAR_BYTES.  */
-int
-char_bytes (c)
-     int c;
-{
-  int charset;
+  if (method == CHARSET_METHOD_MAP)
+    {
+      Lisp_Object encoder;
+      Lisp_Object val;
 
-  if (ASCII_BYTE_P (c) || (c & ~((1 << CHARACTERBITS) -1)))
-    return 1;
-  if (SINGLE_BYTE_CHAR_P (c) && c >= 0xA0)
-    return 1;
+      encoder = CHARSET_ENCODER (charset);
+      if (! CHAR_TABLE_P (CHARSET_ENCODER (charset)))
+       return CHARSET_INVALID_CODE (charset);
+      val = CHAR_TABLE_REF (encoder, c);
+      if (NILP (val))
+       return CHARSET_INVALID_CODE (charset);
+      code = XINT (val);
+      if (! CHARSET_COMPACT_CODES_P (charset))
+       code = INDEX_TO_CODE_POINT (charset, code);
+    }
+  else                         /* method == CHARSET_METHOD_OFFSET */
+    {
+      code = c - CHARSET_CODE_OFFSET (charset);
+      code = INDEX_TO_CODE_POINT (charset, code);
+    }
 
-  charset = CHAR_CHARSET (c);
-  return (CHARSET_DEFINED_P (charset) ? CHARSET_BYTES (charset) : 1);
+  return code;
 }
 
-/* Return the width of character of which multi-byte form starts with
-   C.  The width is measured by how many columns occupied on the
-   screen when displayed in the current buffer.  */
-
-#define ONE_BYTE_CHAR_WIDTH(c)                                         \
-  (c < 0x20                                                            \
-   ? (c == '\t'                                                                \
-      ? XFASTINT (current_buffer->tab_width)                           \
-      : (c == '\n' ? 0 : (NILP (current_buffer->ctl_arrow) ? 4 : 2)))  \
-   : (c < 0x7f                                                         \
-      ? 1                                                              \
-      : (c == 0x7F                                                     \
-        ? (NILP (current_buffer->ctl_arrow) ? 4 : 2)                   \
-        : ((! NILP (current_buffer->enable_multibyte_characters)       \
-            && BASE_LEADING_CODE_P (c))                                \
-           ? WIDTH_BY_CHAR_HEAD (c)                                    \
-           : 4))))
-
-DEFUN ("char-width", Fchar_width, Schar_width, 1, 1, 0,
-       doc: /* Return width of CH when displayed in the current buffer.
-The width is measured by how many columns it occupies on the screen.
-Tab is taken to occupy `tab-width' columns.  */)
-     (ch)
-     Lisp_Object ch;
-{
-  Lisp_Object val, disp;
-  int c;
-  struct Lisp_Char_Table *dp = buffer_display_table ();
 
-  CHECK_NUMBER (ch);
+DEFUN ("decode-char", Fdecode_char, Sdecode_char, 2, 3, 0,
+       doc: /* Decode the pair of CHARSET and CODE-POINT into a character.
+Return nil if CODE-POINT is not valid in CHARSET.
 
-  c = XINT (ch);
+CODE-POINT may be a cons (HIGHER-16-BIT-VALUE . LOWER-16-BIT-VALUE).
 
-  /* Get the way the display table would display it.  */
-  disp = dp ? DISP_CHAR_VECTOR (dp, c) : Qnil;
+Optional argument RESTRICTION specifies a way to map the pair of CCS
+and CODE-POINT to a chracter.   Currently not supported and just ignored.  */)
+  (charset, code_point, restriction)
+     Lisp_Object charset, code_point, restriction;
+{
+  int c, id;
+  unsigned code;
+  struct charset *charsetp;
 
-  if (VECTORP (disp))
-    XSETINT (val, XVECTOR (disp)->size);
-  else if (SINGLE_BYTE_CHAR_P (c))
-    XSETINT (val, ONE_BYTE_CHAR_WIDTH (c));
+  CHECK_CHARSET_GET_ID (charset, id);
+  if (CONSP (code_point))
+    {
+      CHECK_NATNUM_CAR (code_point);
+      CHECK_NATNUM_CDR (code_point);
+      code = (XINT (XCAR (code_point)) << 16) | (XINT (XCDR (code_point)));
+    }
   else
     {
-      int charset = CHAR_CHARSET (c);
-
-      XSETFASTINT (val, CHARSET_WIDTH (charset));
+      CHECK_NATNUM (code_point);
+      code = XINT (code_point);
     }
-  return val;
+  charsetp = CHARSET_FROM_ID (id);
+  c = DECODE_CHAR (charsetp, code);
+  return (c >= 0 ? make_number (c) : Qnil);
 }
 
-/* Return width of string STR of length LEN when displayed in the
-   current buffer.  The width is measured by how many columns it
-   occupies on the screen.  */
 
-int
-strwidth (str, len)
-     unsigned char *str;
-     int len;
+DEFUN ("encode-char", Fencode_char, Sencode_char, 2, 3, 0,
+       doc: /* Encode the character CH into a code-point of CHARSET.
+Return nil if CHARSET doesn't include CH.
+
+Optional argument RESTRICTION specifies a way to map CHAR to a
+code-point in CCS.  Currently not supported and just ignored.  */)
+     (ch, charset, restriction)
+     Lisp_Object ch, charset, restriction;
 {
-  return c_string_width (str, len, -1, NULL, NULL);
+  int id;
+  unsigned code;
+  struct charset *charsetp;
+
+  CHECK_CHARSET_GET_ID (charset, id);
+  CHECK_NATNUM (ch);
+  charsetp = CHARSET_FROM_ID (id);
+  code = ENCODE_CHAR (charsetp, XINT (ch));
+  if (code == CHARSET_INVALID_CODE (charsetp))
+    return Qnil;
+  if (code > 0x7FFFFFF)
+    return Fcons (make_number (code >> 16), make_number (code & 0xFFFF));
+  return make_number (code);
 }
 
-/* Return width of string STR of length LEN when displayed in the
-   current buffer.  The width is measured by how many columns it
-   occupies on the screen.  If PRECISION > 0, return the width of
-   longest substring that doesn't exceed PRECISION, and set number of
-   characters and bytes of the substring in *NCHARS and *NBYTES
-   respectively.  */
 
-int
-c_string_width (str, len, precision, nchars, nbytes)
-     const unsigned char *str;
-     int len, precision, *nchars, *nbytes;
+DEFUN ("make-char", Fmake_char, Smake_char, 1, 5, 0,
+       doc:
+       /* Return a character of CHARSET whose position codes are CODEn.
+
+CODE1 through CODE4 are optional, but if you don't supply sufficient
+position codes, it is assumed that the minimum code in each dimension
+is specified.  */)
+     (charset, code1, code2, code3, code4)
+     Lisp_Object charset, code1, code2, code3, code4;
 {
-  int i = 0, i_byte = 0;
-  int width = 0;
-  int chars;
-  struct Lisp_Char_Table *dp = buffer_display_table ();
+  int id, dimension;
+  struct charset *charsetp;
+  unsigned code;
+  int c;
 
-  while (i_byte < len)
+  CHECK_CHARSET_GET_ID (charset, id);
+  charsetp = CHARSET_FROM_ID (id);
+
+  dimension = CHARSET_DIMENSION (charsetp);
+  if (NILP (code1))
+    code = (CHARSET_ASCII_COMPATIBLE_P (charsetp)
+           ? 0 : CHARSET_MIN_CODE (charsetp));
+  else
     {
-      int bytes, thiswidth;
-      Lisp_Object val;
+      CHECK_NATNUM (code1);
+      if (XFASTINT (code1) >= 0x100)
+       args_out_of_range (make_number (0xFF), code1);
+      code = XFASTINT (code1);
 
-      if (dp)
+      if (dimension > 1)
        {
-         int c = STRING_CHAR_AND_LENGTH (str + i_byte, len - i_byte, bytes);
-
-         chars = 1;
-         val = DISP_CHAR_VECTOR (dp, c);
-         if (VECTORP (val))
-           thiswidth = XVECTOR (val)->size;
+         code <<= 8;
+         if (NILP (code2))
+           code |= charsetp->code_space[(dimension - 2) * 4];
          else
-           thiswidth = ONE_BYTE_CHAR_WIDTH (str[i_byte]);
-       }
-      else
-       {
-         chars = 1;
-         PARSE_MULTIBYTE_SEQ (str + i_byte, len - i_byte, bytes);
-         thiswidth = ONE_BYTE_CHAR_WIDTH (str[i_byte]);
-       }
+           {
+             CHECK_NATNUM (code2);
+             if (XFASTINT (code2) >= 0x100)
+               args_out_of_range (make_number (0xFF), code2);
+             code |= XFASTINT (code2);
+           }
 
-      if (precision > 0
-         && (width + thiswidth > precision))
-       {
-         *nchars = i;
-         *nbytes = i_byte;
-         return width;
+         if (dimension > 2)
+           {
+             code <<= 8;
+             if (NILP (code3))
+               code |= charsetp->code_space[(dimension - 3) * 4];
+             else
+               {
+                 CHECK_NATNUM (code3);
+                 if (XFASTINT (code3) >= 0x100)
+                   args_out_of_range (make_number (0xFF), code3);
+                 code |= XFASTINT (code3);
+               }
+
+             if (dimension > 3)
+               {
+                 code <<= 8;
+                 if (NILP (code4))
+                   code |= charsetp->code_space[0];
+                 else
+                   {
+                     CHECK_NATNUM (code4);
+                     if (XFASTINT (code4) >= 0x100)
+                       args_out_of_range (make_number (0xFF), code4);
+                     code |= XFASTINT (code4);
+                   }
+               }
+           }
        }
-      i++;
-      i_byte += bytes;
-      width += thiswidth;
-  }
-
-  if (precision > 0)
-    {
-      *nchars = i;
-      *nbytes = i_byte;
     }
 
-  return width;
+  if (CHARSET_ISO_FINAL (charsetp) >= 0)
+    code &= 0x7F7F7F7F;
+  c = DECODE_CHAR (charsetp, code);
+  if (c < 0)
+    error ("Invalid code(s)");
+  return make_number (c);
 }
 
-/* Return width of Lisp string STRING when displayed in the current
-   buffer.  The width is measured by how many columns it occupies on
-   the screen while paying attention to compositions.  If PRECISION >
-   0, return the width of longest substring that doesn't exceed
-   PRECISION, and set number of characters and bytes of the substring
-   in *NCHARS and *NBYTES respectively.  */
 
-int
-lisp_string_width (string, precision, nchars, nbytes)
-     Lisp_Object string;
-     int precision, *nchars, *nbytes;
-{
-  int len = SCHARS (string);
-  int len_byte = SBYTES (string);
-  /* This set multibyte to 0 even if STRING is multibyte when it
-     contains only ascii and eight-bit-graphic, but that's
-     intentional.  */
-  int multibyte = len < len_byte;
-  const unsigned char *str = SDATA (string);
-  int i = 0, i_byte = 0;
-  int width = 0;
-  struct Lisp_Char_Table *dp = buffer_display_table ();
-
-  while (i < len)
-    {
-      int chars, bytes, thiswidth;
-      Lisp_Object val;
-      int cmp_id;
-      int ignore, end;
+/* Return the first charset in CHARSET_LIST that contains C.
+   CHARSET_LIST is a list of charset IDs.  If it is nil, use
+   Vcharset_ordered_list.  */
 
-      if (find_composition (i, -1, &ignore, &end, &val, string)
-         && ((cmp_id = get_composition_id (i, i_byte, end - i, val, string))
-             >= 0))
-       {
-         thiswidth = composition_table[cmp_id]->width;
-         chars = end - i;
-         bytes = string_char_to_byte (string, end) - i_byte;
-       }
-      else if (dp)
-       {
-         int c;
+struct charset *
+char_charset (c, charset_list, code_return)
+     int c;
+     Lisp_Object charset_list;
+     unsigned *code_return;
+{
+  if (NILP (charset_list))
+    charset_list = Vcharset_ordered_list;
 
-         if (multibyte)
-           c = STRING_CHAR_AND_LENGTH (str + i_byte, len - i_byte, bytes);
-         else
-           c = str[i_byte], bytes = 1;
-         chars = 1;
-         val = DISP_CHAR_VECTOR (dp, c);
-         if (VECTORP (val))
-           thiswidth = XVECTOR (val)->size;
-         else
-           thiswidth = ONE_BYTE_CHAR_WIDTH (str[i_byte]);
-       }
-      else
-       {
-         chars = 1;
-         if (multibyte)
-           PARSE_MULTIBYTE_SEQ (str + i_byte, len_byte - i_byte, bytes);
-         else
-           bytes = 1;
-         thiswidth = ONE_BYTE_CHAR_WIDTH (str[i_byte]);
-       }
+  while (CONSP (charset_list))
+    {
+      struct charset *charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
+      unsigned code = ENCODE_CHAR (charset, c);
 
-      if (precision > 0
-         && (width + thiswidth > precision))
+      if (code != CHARSET_INVALID_CODE (charset))
        {
-         *nchars = i;
-         *nbytes = i_byte;
-         return width;
+         if (code_return)
+           *code_return = code;
+         return charset;
        }
-      i += chars;
-      i_byte += bytes;
-      width += thiswidth;
-  }
-
-  if (precision > 0)
-    {
-      *nchars = i;
-      *nbytes = i_byte;
+      charset_list = XCDR (charset_list);
     }
-
-  return width;
+  return NULL;
 }
 
-DEFUN ("string-width", Fstring_width, Sstring_width, 1, 1, 0,
-       doc: /* Return width of STRING when displayed in the current buffer.
-Width is measured by how many columns it occupies on the screen.
-When calculating width of a multibyte character in STRING,
-only the base leading-code is considered; the validity of
-the following bytes is not checked.  Tabs in STRING are always
-taken to occupy `tab-width' columns.  */)
-     (string)
-     Lisp_Object string;
-{
-  Lisp_Object val;
-
-  CHECK_STRING (string);
-  XSETFASTINT (val, lisp_string_width (string, -1, NULL, NULL));
-  return val;
-}
 
-DEFUN ("char-direction", Fchar_direction, Schar_direction, 1, 1, 0,
-       doc: /* Return the direction of CH.
-The returned value is 0 for left-to-right and 1 for right-to-left.  */)
+DEFUN ("split-char", Fsplit_char, Ssplit_char, 1, 1, 0,
+       doc:
+       /*Return list of charset and one to four position-codes of CHAR.
+The charset is decided by the current priority order of charsets.
+A position-code is a byte value of each dimension of the code-point of
+CHAR in the charset.  */)
      (ch)
      Lisp_Object ch;
 {
-  int charset;
+  struct charset *charset;
+  int c, dimension;
+  unsigned code;
+  Lisp_Object val;
 
-  CHECK_NUMBER (ch);
-  charset = CHAR_CHARSET (XFASTINT (ch));
-  if (!CHARSET_DEFINED_P (charset))
-    invalid_character (XINT (ch));
-  return CHARSET_TABLE_INFO (charset, CHARSET_DIRECTION_IDX);
+  CHECK_CHARACTER (ch);
+  c = XFASTINT (ch);
+  charset = CHAR_CHARSET (c);
+  if (! charset)
+    abort ();
+  code = ENCODE_CHAR (charset, c);
+  if (code == CHARSET_INVALID_CODE (charset))
+    abort ();
+  dimension = CHARSET_DIMENSION (charset);
+  for (val = Qnil; dimension > 0; dimension--)
+    {
+      val = Fcons (make_number (code & 0xFF), val);
+      code >>= 8;
+    }
+  return Fcons (CHARSET_NAME (charset), val);
 }
 
-/* Return the number of characters in the NBYTES bytes at PTR.
-   This works by looking at the contents and checking for multibyte sequences.
-   However, if the current buffer has enable-multibyte-characters = nil,
-   we treat each byte as a character.  */
 
-int
-chars_in_text (ptr, nbytes)
-     const unsigned char *ptr;
-     int nbytes;
+DEFUN ("char-charset", Fchar_charset, Schar_charset, 1, 1, 0,
+       doc: /* Return the charset of highest priority that contains CH.  */)
+     (ch)
+     Lisp_Object ch;
 {
-  /* current_buffer is null at early stages of Emacs initialization.  */
-  if (current_buffer == 0
-      || NILP (current_buffer->enable_multibyte_characters))
-    return nbytes;
+  struct charset *charset;
 
-  return multibyte_chars_in_text (ptr, nbytes);
+  CHECK_CHARACTER (ch);
+  charset = CHAR_CHARSET (XINT (ch));
+  return (CHARSET_NAME (charset));
 }
 
-/* Return the number of characters in the NBYTES bytes at PTR.
-   This works by looking at the contents and checking for multibyte sequences.
-   It ignores enable-multibyte-characters.  */
 
-int
-multibyte_chars_in_text (ptr, nbytes)
-     const unsigned char *ptr;
-     int nbytes;
+DEFUN ("charset-after", Fcharset_after, Scharset_after, 0, 1, 0,
+       doc: /*
+Return charset of a character in the current buffer at position POS.
+If POS is nil, it defauls to the current point.
+If POS is out of range, the value is nil.  */)
+     (pos)
+     Lisp_Object pos;
 {
-  const unsigned char *endp;
-  int chars, bytes;
+  Lisp_Object ch;
+  struct charset *charset;
 
-  endp = ptr + nbytes;
-  chars = 0;
+  ch = Fchar_after (pos);
+  if (! INTEGERP (ch))
+    return ch;
+  charset = CHAR_CHARSET (XINT (ch));
+  return (CHARSET_NAME (charset));
+}
 
-  while (ptr < endp)
-    {
-      PARSE_MULTIBYTE_SEQ (ptr, endp - ptr, bytes);
-      ptr += bytes;
-      chars++;
-    }
 
-  return chars;
-}
+DEFUN ("iso-charset", Fiso_charset, Siso_charset, 3, 3, 0,
+       doc: /*
+Return charset of ISO's specification DIMENSION, CHARS, and FINAL-CHAR.
 
-/* Parse unibyte text at STR of LEN bytes as multibyte text, and
-   count the numbers of characters and bytes in it.  On counting
-   bytes, pay attention to the fact that 8-bit characters in the range
-   0x80..0x9F are represented by 2 bytes in multibyte text.  */
-void
-parse_str_as_multibyte (str, len, nchars, nbytes)
-     const unsigned char *str;
-     int len, *nchars, *nbytes;
+ISO 2022's designation sequence (escape sequence) distinguishes charsets
+by their DIMENSION, CHARS, and FINAL-CHAR,
+where as Emacs distinguishes them by charset symbol.
+See the documentation of the function `charset-info' for the meanings of
+DIMENSION, CHARS, and FINAL-CHAR.  */)
+     (dimension, chars, final_char)
+     Lisp_Object dimension, chars, final_char;
 {
-  const unsigned char *endp = str + len;
-  int n, chars = 0, bytes = 0;
-
-  while (str < endp)
-    {
-      if (UNIBYTE_STR_AS_MULTIBYTE_P (str, endp - str, n))
-       str += n, bytes += n;
-      else
-       str++, bytes += 2;
-      chars++;
-    }
-  *nchars = chars;
-  *nbytes = bytes;
-  return;
+  int id;
+  int chars_flag;
+
+  check_iso_charset_parameter (dimension, chars, final_char);
+  chars_flag = XFASTINT (chars) == 96;
+  id = ISO_CHARSET_TABLE (XFASTINT (dimension), chars_flag,
+                         XFASTINT (final_char));
+  return (id >= 0 ? CHARSET_NAME (CHARSET_FROM_ID (id)) : Qnil);
 }
 
-/* Arrange unibyte text at STR of NBYTES bytes as multibyte text.
-   It actually converts only 8-bit characters in the range 0x80..0x9F
-   that don't contruct multibyte characters to multibyte forms.  If
-   NCHARS is nonzero, set *NCHARS to the number of characters in the
-   text.  It is assured that we can use LEN bytes at STR as a work
-   area and that is enough.  Return the number of bytes of the
-   resulting text.  */
 
-int
-str_as_multibyte (str, len, nbytes, nchars)
-     unsigned char *str;
-     int len, nbytes, *nchars;
+DEFUN ("clear-charset-maps", Fclear_charset_maps, Sclear_charset_maps,
+       0, 0, 0,
+       doc: /*
+Clear encoder and decoder of charsets that are loaded from mapfiles.  */)
+     ()
 {
-  unsigned char *p = str, *endp = str + nbytes;
-  unsigned char *to;
-  int chars = 0;
-  int n;
-
-  while (p < endp && UNIBYTE_STR_AS_MULTIBYTE_P (p, endp - p, n))
-    p += n, chars++;
-  if (nchars)
-    *nchars = chars;
-  if (p == endp)
-    return nbytes;
-
-  to = p;
-  nbytes = endp - p;
-  endp = str + len;
-  safe_bcopy (p, endp - nbytes, nbytes);
-  p = endp - nbytes;
-  while (p < endp)
+  int i;
+  struct charset *charset;
+  Lisp_Object attrs;
+
+  for (i = 0; i < charset_table_used; i++)
     {
-      if (UNIBYTE_STR_AS_MULTIBYTE_P (p, endp - p, n))
-       {
-         while (n--)
-           *to++ = *p++;
-       }
-      else
+      charset = CHARSET_FROM_ID (i);
+      attrs = CHARSET_ATTRIBUTES (charset);
+
+      if (CHARSET_METHOD (charset) == CHARSET_METHOD_MAP)
        {
-         *to++ = LEADING_CODE_8_BIT_CONTROL;
-         *to++ = *p++ + 0x20;
+         CHARSET_ATTR_DECODER (attrs) = Qnil;
+         CHARSET_ATTR_ENCODER (attrs) = Qnil;
+         CHARSET_METHOD (charset) = CHARSET_METHOD_MAP_DEFERRED;
        }
-      chars++;
-    }
-  if (nchars)
-    *nchars = chars;
-  return (to - str);
-}
-
-/* Parse unibyte string at STR of LEN bytes, and return the number of
-   bytes it may ocupy when converted to multibyte string by
-   `str_to_multibyte'.  */
-
-int
-parse_str_to_multibyte (str, len)
-     unsigned char *str;
-     int len;
-{
-  unsigned char *endp = str + len;
-  int bytes;
-
-  for (bytes = 0; str < endp; str++)
-    bytes += (*str < 0x80 || *str >= 0xA0) ? 1 : 2;
-  return bytes;
-}
 
-/* Convert unibyte text at STR of NBYTES bytes to multibyte text
-   that contains the same single-byte characters.  It actually
-   converts all 8-bit characters to multibyte forms.  It is assured
-   that we can use LEN bytes at STR as a work area and that is
-   enough.  */
+      if (CHARSET_UNIFIED_P (charset))
+       CHARSET_ATTR_DEUNIFIER (attrs) = Qnil;
+    }
 
-int
-str_to_multibyte (str, len, bytes)
-     unsigned char *str;
-     int len, bytes;
-{
-  unsigned char *p = str, *endp = str + bytes;
-  unsigned char *to;
-
-  while (p < endp && (*p < 0x80 || *p >= 0xA0)) p++;
-  if (p == endp)
-    return bytes;
-  to = p;
-  bytes = endp - p;
-  endp = str + len;
-  safe_bcopy (p, endp - bytes, bytes);
-  p = endp - bytes;
-  while (p < endp)
+  if (CHAR_TABLE_P (Vchar_unified_charset_table))
     {
-      if (*p < 0x80 || *p >= 0xA0)
-       *to++ = *p++;
-      else
-       *to++ = LEADING_CODE_8_BIT_CONTROL, *to++ = *p++ + 0x20;
+      Foptimize_char_table (Vchar_unified_charset_table);
+      Vchar_unify_table = Vchar_unified_charset_table;
+      Vchar_unified_charset_table = Qnil;
     }
-  return (to - str);
-}
 
-/* Arrange multibyte text at STR of LEN bytes as a unibyte text.  It
-   actually converts only 8-bit characters in the range 0x80..0x9F to
-   unibyte forms.  */
+  return Qnil;
+}
 
-int
-str_as_unibyte (str, bytes)
-     unsigned char *str;
-     int bytes;
+DEFUN ("charset-priority-list", Fcharset_priority_list,
+       Scharset_priority_list, 0, 1, 0,
+       doc: /* Return the list of charsets ordered by priority.
+HIGHESTP non-nil means just return the highest priority one.  */)
+     (highestp)
+     Lisp_Object highestp;
 {
-  unsigned char *p = str, *endp = str + bytes;
-  unsigned char *to = str;
+  Lisp_Object val = Qnil, list = Vcharset_ordered_list;
 
-  while (p < endp && *p != LEADING_CODE_8_BIT_CONTROL) p++;
-  to = p;
-  while (p < endp)
+  if (!NILP (highestp))
+    return CHARSET_NAME (CHARSET_FROM_ID (XINT (Fcar (list))));
+
+  while (!NILP (list))
     {
-      if (*p == LEADING_CODE_8_BIT_CONTROL)
-       *to++ = *(p + 1) - 0x20, p += 2;
-      else
-       *to++ = *p++;
+      val = Fcons (CHARSET_NAME (CHARSET_FROM_ID (XINT (XCAR (list)))), val);
+      list = XCDR (list);
     }
-  return (to - str);
+  return Fnreverse (val);
 }
 
-\f
-DEFUN ("string", Fstring, Sstring, 0, MANY, 0,
-  doc: /* Concatenate all the argument characters and make the result a string.
-usage: (string &rest CHARACTERS)  */)
-     (n, args)
-     int n;
+DEFUN ("set-charset-priority", Fset_charset_priority, Sset_charset_priority,
+       1, MANY, 0,
+       doc: /* Assign higher priority to the charsets given as arguments.
+usage: (set-charset-priority &rest charsets)  */)
+       (nargs, args)
+     int nargs;
      Lisp_Object *args;
 {
-  int i, bufsize;
-  unsigned char *buf, *p;
-  int c;
-  int multibyte = 0;
-  Lisp_Object ret;
-  USE_SAFE_ALLOCA;
-
-  bufsize = MAX_MULTIBYTE_LENGTH * n;
-  SAFE_ALLOCA (buf, unsigned char *, bufsize);
-  p = buf;
+  Lisp_Object new_head, old_list, arglist[2];
+  Lisp_Object list_2022, list_emacs_mule;
+  int i, id;
 
-  for (i = 0; i < n; i++)
+  old_list = Fcopy_sequence (Vcharset_ordered_list);
+  new_head = Qnil;
+  for (i = 0; i < nargs; i++)
     {
-      CHECK_NUMBER (args[i]);
-      if (!multibyte && !SINGLE_BYTE_CHAR_P (XFASTINT (args[i])))
-       multibyte = 1;
+      CHECK_CHARSET_GET_ID (args[i], id);
+      if (! NILP (Fmemq (make_number (id), old_list)))
+       {
+         old_list = Fdelq (make_number (id), old_list);
+         new_head = Fcons (make_number (id), new_head);
+       }
     }
+  arglist[0] = Fnreverse (new_head);
+  arglist[1] = old_list;
+  Vcharset_ordered_list = Fnconc (2, arglist);
+  charset_ordered_list_tick++;
 
-  for (i = 0; i < n; i++)
+  for (old_list = Vcharset_ordered_list, list_2022 = list_emacs_mule = Qnil;
+       CONSP (old_list); old_list = XCDR (old_list))
     {
-      c = XINT (args[i]);
-      if (multibyte)
-       p += CHAR_STRING (c, p);
-      else
-       *p++ = c;
+      if (! NILP (Fmemq (XCAR (old_list), Viso_2022_charset_list)))
+       list_2022 = Fcons (XCAR (old_list), list_2022);
+      if (! NILP (Fmemq (XCAR (old_list), Vemacs_mule_charset_list)))
+       list_emacs_mule = Fcons (XCAR (old_list), list_emacs_mule);
     }
+  Viso_2022_charset_list = Fnreverse (list_2022);
+  Vemacs_mule_charset_list = Fnreverse (list_emacs_mule);
 
-  ret = make_string_from_bytes (buf, n, p - buf);
-  SAFE_FREE ();
-
-  return ret;
+  return Qnil;
 }
 
-#endif /* emacs */
-\f
-int
-charset_id_internal (charset_name)
-     char *charset_name;
+DEFUN ("charset-id-internal", Fcharset_id_internal, Scharset_id_internal,
+       0, 1, 0,
+       doc: /* Internal use only.
+Return charset identification number of CHARSET.  */)
+     (charset)
+     Lisp_Object charset;
 {
-  Lisp_Object val;
-
-  val= Fget (intern (charset_name), Qcharset);
-  if (!VECTORP (val))
-    error ("Charset %s is not defined", charset_name);
+  int id;
 
-  return (XINT (XVECTOR (val)->contents[0]));
+  CHECK_CHARSET_GET_ID (charset, id);
+  return make_number (id);
 }
 
-DEFUN ("setup-special-charsets", Fsetup_special_charsets,
-       Ssetup_special_charsets, 0, 0, 0, doc: /* Internal use only.  */)
-     ()
+\f
+void
+init_charset ()
 {
-  charset_latin_iso8859_1 = charset_id_internal ("latin-iso8859-1");
-  charset_jisx0208_1978 = charset_id_internal ("japanese-jisx0208-1978");
-  charset_jisx0208 = charset_id_internal ("japanese-jisx0208");
-  charset_katakana_jisx0201 = charset_id_internal ("katakana-jisx0201");
-  charset_latin_jisx0201 = charset_id_internal ("latin-jisx0201");
-  charset_big5_1 = charset_id_internal ("chinese-big5-1");
-  charset_big5_2 = charset_id_internal ("chinese-big5-2");
-  charset_mule_unicode_0100_24ff
-    = charset_id_internal ("mule-unicode-0100-24ff");
-  charset_mule_unicode_2500_33ff
-    = charset_id_internal ("mule-unicode-2500-33ff");
-  charset_mule_unicode_e000_ffff
-    = charset_id_internal ("mule-unicode-e000-ffff");
-  return Qnil;
+  Vcharset_map_path
+    = Fcons (Fexpand_file_name (build_string ("charsets"), Vdata_directory),
+            Qnil);
 }
 
+
 void
 init_charset_once ()
 {
   int i, j, k;
 
-  staticpro (&Vcharset_table);
-  staticpro (&Vcharset_symbol_table);
-  staticpro (&Vgeneric_character_list);
-
-  /* This has to be done here, before we call Fmake_char_table.  */
-  Qcharset_table = intern ("charset-table");
-  staticpro (&Qcharset_table);
-
-  /* Intern this now in case it isn't already done.
-     Setting this variable twice is harmless.
-     But don't staticpro it here--that is done in alloc.c.  */
-  Qchar_table_extra_slots = intern ("char-table-extra-slots");
-
-  /* Now we are ready to set up this property, so we can
-     create the charset table.  */
-  Fput (Qcharset_table, Qchar_table_extra_slots, make_number (0));
-  Vcharset_table = Fmake_char_table (Qcharset_table, Qnil);
-
-  Qunknown = intern ("unknown");
-  staticpro (&Qunknown);
-  Vcharset_symbol_table = Fmake_vector (make_number (MAX_CHARSET + 1),
-                                       Qunknown);
-
-  /* Setup tables.  */
-  for (i = 0; i < 2; i++)
-    for (j = 0; j < 2; j++)
-      for (k = 0; k < 128; k++)
-       iso_charset_table [i][j][k] = -1;
+  for (i = 0; i < ISO_MAX_DIMENSION; i++)
+    for (j = 0; j < ISO_MAX_CHARS; j++)
+      for (k = 0; k < ISO_MAX_FINAL; k++)
+       iso_charset_table[i][j][k] = -1;
 
   for (i = 0; i < 256; i++)
-    bytes_by_char_head[i] = 1;
-  bytes_by_char_head[LEADING_CODE_PRIVATE_11] = 3;
-  bytes_by_char_head[LEADING_CODE_PRIVATE_12] = 3;
-  bytes_by_char_head[LEADING_CODE_PRIVATE_21] = 4;
-  bytes_by_char_head[LEADING_CODE_PRIVATE_22] = 4;
+    emacs_mule_charset[i] = NULL;
+
+  charset_jisx0201_roman = -1;
+  charset_jisx0208_1978 = -1;
+  charset_jisx0208 = -1;
 
   for (i = 0; i < 128; i++)
-    width_by_char_head[i] = 1;
+    unibyte_to_multibyte_table[i] = i;
   for (; i < 256; i++)
-    width_by_char_head[i] = 4;
-  width_by_char_head[LEADING_CODE_PRIVATE_11] = 1;
-  width_by_char_head[LEADING_CODE_PRIVATE_12] = 2;
-  width_by_char_head[LEADING_CODE_PRIVATE_21] = 1;
-  width_by_char_head[LEADING_CODE_PRIVATE_22] = 2;
-
-  {
-    Lisp_Object val;
-
-    val = Qnil;
-    for (i = 0x81; i < 0x90; i++)
-      val = Fcons (make_number ((i - 0x70) << 7), val);
-    for (; i < 0x9A; i++)
-      val = Fcons (make_number ((i - 0x8F) << 14), val);
-    for (i = 0xA0; i < 0xF0; i++)
-      val = Fcons (make_number ((i - 0x70) << 7), val);
-    for (; i < 0xFF; i++)
-      val = Fcons (make_number ((i - 0xE0) << 14), val);
-    Vgeneric_character_list = Fnreverse (val);
-  }
-
-  nonascii_insert_offset = 0;
-  Vnonascii_translation_table = Qnil;
+    unibyte_to_multibyte_table[i] = BYTE8_TO_CHAR (i);
 }
 
 #ifdef emacs
@@ -1788,140 +2078,87 @@ init_charset_once ()
 void
 syms_of_charset ()
 {
-  Qcharset = intern ("charset");
-  staticpro (&Qcharset);
-
-  Qascii = intern ("ascii");
-  staticpro (&Qascii);
-
-  Qeight_bit_control = intern ("eight-bit-control");
-  staticpro (&Qeight_bit_control);
-
-  Qeight_bit_graphic = intern ("eight-bit-graphic");
-  staticpro (&Qeight_bit_graphic);
-
-  /* Define special charsets ascii, eight-bit-control, and
-     eight-bit-graphic.  */
-  update_charset_table (make_number (CHARSET_ASCII),
-                       make_number (1), make_number (94),
-                       make_number (1),
-                       make_number (0),
-                       make_number ('B'),
-                       make_number (0),
-                       build_string ("ASCII"),
-                       Qnil,   /* same as above */
-                       build_string ("ASCII (ISO646 IRV)"));
-  CHARSET_SYMBOL (CHARSET_ASCII) = Qascii;
-  Fput (Qascii, Qcharset, CHARSET_TABLE_ENTRY (CHARSET_ASCII));
-
-  update_charset_table (make_number (CHARSET_8_BIT_CONTROL),
-                       make_number (1), make_number (96),
-                       make_number (4),
-                       make_number (0),
-                       make_number (-1),
-                       make_number (-1),
-                       build_string ("8-bit control code (0x80..0x9F)"),
-                       Qnil,   /* same as above */
-                       Qnil);  /* same as above */
-  CHARSET_SYMBOL (CHARSET_8_BIT_CONTROL) = Qeight_bit_control;
-  Fput (Qeight_bit_control, Qcharset,
-       CHARSET_TABLE_ENTRY (CHARSET_8_BIT_CONTROL));
-
-  update_charset_table (make_number (CHARSET_8_BIT_GRAPHIC),
-                       make_number (1), make_number (96),
-                       make_number (4),
-                       make_number (0),
-                       make_number (-1),
-                       make_number (-1),
-                       build_string ("8-bit graphic char (0xA0..0xFF)"),
-                       Qnil,   /* same as above */
-                       Qnil);  /* same as above */
-  CHARSET_SYMBOL (CHARSET_8_BIT_GRAPHIC) = Qeight_bit_graphic;
-  Fput (Qeight_bit_graphic, Qcharset,
-       CHARSET_TABLE_ENTRY (CHARSET_8_BIT_GRAPHIC));
-
-  Qauto_fill_chars = intern ("auto-fill-chars");
-  staticpro (&Qauto_fill_chars);
-  Fput (Qauto_fill_chars, Qchar_table_extra_slots, make_number (0));
-
-  defsubr (&Sdefine_charset);
-  defsubr (&Sgeneric_character_list);
+  DEFSYM (Qcharsetp, "charsetp");
+
+  DEFSYM (Qascii, "ascii");
+  DEFSYM (Qunicode, "unicode");
+  DEFSYM (Qeight_bit, "eight-bit");
+  DEFSYM (Qiso_8859_1, "iso-8859-1");
+
+  DEFSYM (Qgl, "gl");
+  DEFSYM (Qgr, "gr");
+
+  staticpro (&Vcharset_ordered_list);
+  Vcharset_ordered_list = Qnil;
+
+  staticpro (&Viso_2022_charset_list);
+  Viso_2022_charset_list = Qnil;
+
+  staticpro (&Vemacs_mule_charset_list);
+  Vemacs_mule_charset_list = Qnil;
+
+  staticpro (&Vcharset_hash_table);
+  {
+    Lisp_Object args[2];
+    args[0] = QCtest;
+    args[1] = Qeq;
+    Vcharset_hash_table = Fmake_hash_table (2, args);
+  }
+
+  charset_table_size = 128;
+  charset_table = ((struct charset *)
+                  xmalloc (sizeof (struct charset) * charset_table_size));
+  charset_table_used = 0;
+
+  staticpro (&Vchar_unified_charset_table);
+  Vchar_unified_charset_table = Fmake_char_table (Qnil, make_number (-1));
+
+  defsubr (&Scharsetp);
+  defsubr (&Smap_charset_chars);
+  defsubr (&Sdefine_charset_internal);
+  defsubr (&Sdefine_charset_alias);
+  defsubr (&Sunibyte_charset);
+  defsubr (&Sset_unibyte_charset);
+  defsubr (&Scharset_plist);
+  defsubr (&Sset_charset_plist);
+  defsubr (&Sunify_charset);
   defsubr (&Sget_unused_iso_final_char);
   defsubr (&Sdeclare_equiv_charset);
   defsubr (&Sfind_charset_region);
   defsubr (&Sfind_charset_string);
-  defsubr (&Smake_char_internal);
+  defsubr (&Sdecode_char);
+  defsubr (&Sencode_char);
   defsubr (&Ssplit_char);
+  defsubr (&Smake_char);
   defsubr (&Schar_charset);
   defsubr (&Scharset_after);
   defsubr (&Siso_charset);
-  defsubr (&Schar_valid_p);
-  defsubr (&Sunibyte_char_to_multibyte);
-  defsubr (&Smultibyte_char_to_unibyte);
-  defsubr (&Schar_bytes);
-  defsubr (&Schar_width);
-  defsubr (&Sstring_width);
-  defsubr (&Schar_direction);
-  defsubr (&Sstring);
-  defsubr (&Ssetup_special_charsets);
+  defsubr (&Sclear_charset_maps);
+  defsubr (&Scharset_priority_list);
+  defsubr (&Sset_charset_priority);
+  defsubr (&Scharset_id_internal);
+
+  DEFVAR_LISP ("charset-map-path", &Vcharset_map_path,
+              doc: /* *Lisp of directories to search for charset map files.  */);
+  Vcharset_map_path = Qnil;
 
   DEFVAR_LISP ("charset-list", &Vcharset_list,
-              doc: /* List of charsets ever defined.  */);
-  Vcharset_list = Fcons (Qascii, Fcons (Qeight_bit_control,
-                                       Fcons (Qeight_bit_graphic, Qnil)));
-
-  DEFVAR_LISP ("translation-table-vector",  &Vtranslation_table_vector,
-              doc: /* Vector of cons cell of a symbol and translation table ever defined.
-An ID of a translation table is an index of this vector.  */);
-  Vtranslation_table_vector = Fmake_vector (make_number (16), Qnil);
-
-  DEFVAR_INT ("leading-code-private-11", &leading_code_private_11,
-             doc: /* Leading-code of private TYPE9N charset of column-width 1.  */);
-  leading_code_private_11 = LEADING_CODE_PRIVATE_11;
-
-  DEFVAR_INT ("leading-code-private-12", &leading_code_private_12,
-             doc: /* Leading-code of private TYPE9N charset of column-width 2.  */);
-  leading_code_private_12 = LEADING_CODE_PRIVATE_12;
-
-  DEFVAR_INT ("leading-code-private-21", &leading_code_private_21,
-             doc: /* Leading-code of private TYPE9Nx9N charset of column-width 1.  */);
-  leading_code_private_21 = LEADING_CODE_PRIVATE_21;
-
-  DEFVAR_INT ("leading-code-private-22", &leading_code_private_22,
-             doc: /* Leading-code of private TYPE9Nx9N charset of column-width 2.  */);
-  leading_code_private_22 = LEADING_CODE_PRIVATE_22;
-
-  DEFVAR_INT ("nonascii-insert-offset", &nonascii_insert_offset,
-             doc: /* Offset for converting non-ASCII unibyte codes 0240...0377 to multibyte.
-This is used for converting unibyte text to multibyte,
-and for inserting character codes specified by number.
-
-This serves to convert a Latin-1 or similar 8-bit character code
-to the corresponding Emacs multibyte character code.
-Typically the value should be (- (make-char CHARSET 0) 128),
-for your choice of character set.
-If `nonascii-translation-table' is non-nil, it overrides this variable.  */);
-  nonascii_insert_offset = 0;
-
-  DEFVAR_LISP ("nonascii-translation-table", &Vnonascii_translation_table,
-              doc: /* Translation table to convert non-ASCII unibyte codes to multibyte.
-This is used for converting unibyte text to multibyte,
-and for inserting character codes specified by number.
-
-Conversion is performed only when multibyte characters are enabled,
-and it serves to convert a Latin-1 or similar 8-bit character code
-to the corresponding Emacs character code.
-
-If this is nil, `nonascii-insert-offset' is used instead.
-See also the docstring of `make-translation-table'.  */);
-  Vnonascii_translation_table = Qnil;
-
-  DEFVAR_LISP ("auto-fill-chars", &Vauto_fill_chars,
-              doc: /* A char-table for characters which invoke auto-filling.
-Such characters have value t in this table.  */);
-  Vauto_fill_chars = Fmake_char_table (Qauto_fill_chars, Qnil);
-  CHAR_TABLE_SET (Vauto_fill_chars, make_number (' '), Qt);
-  CHAR_TABLE_SET (Vauto_fill_chars, make_number ('\n'), Qt);
+              doc: /* List of all charsets ever defined.  */);
+  Vcharset_list = Qnil;
+
+  charset_ascii
+    = define_charset_internal (Qascii, 1, "\x00\x7F\x00\x00\x00\x00",
+                              0, 127, 'B', -1, 0, 1, 0, 0);
+  charset_iso_8859_1
+    = define_charset_internal (Qiso_8859_1, 1, "\x00\xFF\x00\x00\x00\x00",
+                              0, 255, -1, -1, -1, 1, 0, 0);
+  charset_unicode
+    = define_charset_internal (Qunicode, 3, "\x00\xFF\x00\xFF\x00\x10",
+                              0, MAX_UNICODE_CHAR, -1, 0, -1, 1, 0, 0);
+  charset_eight_bit
+    = define_charset_internal (Qeight_bit, 1, "\x80\xFF\x00\x00\x00\x00",
+                              128, 255, -1, 0, -1, 0, 0,
+                              MAX_5_BYTE_CHAR + 1);
 }
 
 #endif /* emacs */
index c20766f910b49f806463d6469bab8a29b9f3fd00..6d34a5feea3d78038019223857d003e55a407e15 100644 (file)
@@ -1,4 +1,4 @@
-/* Header for multibyte character handler.
+/* Header for charset handler.
    Copyright (C) 2001, 2002, 2003, 2004, 2005,
                  2006, 2007 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@@ -6,6 +6,10 @@
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
 
+   Copyright (C) 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
 This file is part of GNU Emacs.
 
 GNU Emacs is free software; you can redistribute it and/or modify
@@ -26,866 +30,523 @@ Boston, MA 02110-1301, USA.  */
 #ifndef EMACS_CHARSET_H
 #define EMACS_CHARSET_H
 
-/* #define BYTE_COMBINING_DEBUG */
-
-/*** GENERAL NOTE on CHARACTER SET (CHARSET) ***
-
-  A character set ("charset" hereafter) is a meaningful collection
-  (i.e. language, culture, functionality, etc) of characters.  Emacs
-  handles multiple charsets at once.  Each charset corresponds to one
-  of the ISO charsets.  Emacs identifies a charset by a unique
-  identification number, whereas ISO identifies a charset by a triplet
-  of DIMENSION, CHARS and FINAL-CHAR.  So, hereafter, just saying
-  "charset" means an identification number (integer value).
-
-  The value range of charsets is 0x00, 0x81..0xFE.  There are four
-  kinds of charset depending on DIMENSION (1 or 2) and CHARS (94 or
-  96).  For instance, a charset of DIMENSION2_CHARS94 contains 94x94
-  characters.
-
-  Within Emacs Lisp, a charset is treated as a symbol which has a
-  property `charset'.  The property value is a vector containing
-  various information about the charset.  For readability of C code,
-  we use the following convention for C variable names:
-       charset_symbol: Emacs Lisp symbol of a charset
-       charset_id: Emacs Lisp integer of an identification number of a charset
-       charset: C integer of an identification number of a charset
-
-  Each charset (except for ascii) is assigned a base leading-code
-  (range 0x80..0x9E).  In addition, a charset of greater than 0xA0
-  (whose base leading-code is 0x9A..0x9D) is assigned an extended
-  leading-code (range 0xA0..0xFE).  In this case, each base
-  leading-code specifies the allowable range of extended leading-code
-  as shown in the table below.  A leading-code is used to represent a
-  character in Emacs' buffer and string.
-
-  We call a charset which has extended leading-code a "private
-  charset" because those are mainly for a charset which is not yet
-  registered by ISO.  On the contrary, we call a charset which does
-  not have extended leading-code an "official charset".
-
-  ---------------------------------------------------------------------------
-  charset      dimension        base leading-code      extended leading-code
-  ---------------------------------------------------------------------------
-  0x00         official dim1    -- none --             -- none --
-               (ASCII)
-  0x01..0x7F   --never used--
-  0x80         official dim1    -- none --             -- none --
-               (eight-bit-graphic)
-  0x81..0x8F   official dim1    same as charset        -- none --
-  0x90..0x99   official dim2    same as charset        -- none --
-  0x9A..0x9D   --never used--
-  0x9E         official dim1    same as charset        -- none --
-               (eight-bit-control)
-  0x9F         --never used--
-  0xA0..0xDF   private dim1        0x9A                same as charset
-               of 1-column width
-  0xE0..0xEF   private dim1        0x9B                same as charset
-               of 2-column width
-  0xF0..0xF4   private dim2        0x9C                same as charset
-               of 1-column width
-  0xF5..0xFE   private dim2        0x9D                same as charset
-               of 2-column width
-  0xFF         --never used--
-  ---------------------------------------------------------------------------
-
-*/
-
-/* Definition of special leading-codes.  */
-/* Leading-code followed by extended leading-code.  */
-#define LEADING_CODE_PRIVATE_11        0x9A /* for private DIMENSION1 of 1-column */
-#define LEADING_CODE_PRIVATE_12        0x9B /* for private DIMENSION1 of 2-column */
-#define LEADING_CODE_PRIVATE_21        0x9C /* for private DIMENSION2 of 1-column */
-#define LEADING_CODE_PRIVATE_22        0x9D /* for private DIMENSION2 of 2-column */
-
-#define LEADING_CODE_8_BIT_CONTROL 0x9E /* for `eight-bit-control' */
-
-/* Extended leading-code.  */
-/* Start of each extended leading-codes.  */
-#define LEADING_CODE_EXT_11 0xA0 /* follows LEADING_CODE_PRIVATE_11 */
-#define LEADING_CODE_EXT_12 0xE0 /* follows LEADING_CODE_PRIVATE_12 */
-#define LEADING_CODE_EXT_21 0xF0 /* follows LEADING_CODE_PRIVATE_21 */
-#define LEADING_CODE_EXT_22 0xF5 /* follows LEADING_CODE_PRIVATE_22 */
-/* Maximum value of extended leading-codes.  */
-#define LEADING_CODE_EXT_MAX 0xFE
-
-/* Definition of minimum/maximum charset of each DIMENSION.  */
-#define MIN_CHARSET_OFFICIAL_DIMENSION1        0x80
-#define MAX_CHARSET_OFFICIAL_DIMENSION1        0x8F
-#define MIN_CHARSET_OFFICIAL_DIMENSION2        0x90
-#define MAX_CHARSET_OFFICIAL_DIMENSION2 0x99
-#define MIN_CHARSET_PRIVATE_DIMENSION1 LEADING_CODE_EXT_11
-#define MIN_CHARSET_PRIVATE_DIMENSION2 LEADING_CODE_EXT_21
-
-/* Maximum value of overall charset identification number.  */
-#define MAX_CHARSET 0xFE
-
-/* Definition of special charsets.  */
-#define CHARSET_ASCII          0       /* 0x00..0x7F */
-#define CHARSET_8_BIT_CONTROL  0x9E    /* 0x80..0x9F */
-#define CHARSET_8_BIT_GRAPHIC  0x80    /* 0xA0..0xFF */
-
-extern int charset_latin_iso8859_1; /* ISO8859-1 (Latin-1) */
-extern int charset_jisx0208_1978; /* JISX0208.1978 (Japanese Kanji old set) */
-extern int charset_jisx0208;   /* JISX0208.1983 (Japanese Kanji) */
-extern int charset_katakana_jisx0201; /* JISX0201.Kana (Japanese Katakana) */
-extern int charset_latin_jisx0201; /* JISX0201.Roman (Japanese Roman) */
-extern int charset_big5_1;     /* Big5 Level 1 (Chinese Traditional) */
-extern int charset_big5_2;     /* Big5 Level 2 (Chinese Traditional) */
-extern int charset_mule_unicode_0100_24ff;
-extern int charset_mule_unicode_2500_33ff;
-extern int charset_mule_unicode_e000_ffff;
-
-/* Check if CH is an ASCII character or a base leading-code.
-   Nowadays, any byte can be the first byte of a character in a
-   multibyte buffer/string.  So this macro name is not appropriate.  */
-#define CHAR_HEAD_P(ch) ((unsigned char) (ch) < 0xA0)
-
-/*** GENERAL NOTE on CHARACTER REPRESENTATION ***
-
-  Firstly, the term "character" or "char" is used for a multilingual
-  character (of course, including ASCII characters), not for a byte in
-  computer memory.  We use the term "code" or "byte" for the latter
-  case.
-
-  A character is identified by charset and one or two POSITION-CODEs.
-  POSITION-CODE is the position of the character in the charset.  A
-  character of DIMENSION1 charset has one POSITION-CODE: POSITION-CODE-1.
-  A character of DIMENSION2 charset has two POSITION-CODE:
-  POSITION-CODE-1 and POSITION-CODE-2.  The code range of
-  POSITION-CODE is 0x20..0x7F.
-
-  Emacs has two kinds of representation of a character: multi-byte
-  form (for buffers and strings) and single-word form (for character
-  objects in Emacs Lisp).  The latter is called "character code"
-  hereafter.  Both representations encode the information of charset
-  and POSITION-CODE but in a different way (for instance, the MSB of
-  POSITION-CODE is set in multi-byte form).
-
-  For details of the multi-byte form, see the section "2. Emacs
-  internal format handlers" of `coding.c'.
-
-  Emacs uses 19 bits for a character code.  The bits are divided into
-  3 fields: FIELD1(5bits):FIELD2(7bits):FIELD3(7bits).
-
-  A character code of DIMENSION1 character uses FIELD2 to hold charset
-  and FIELD3 to hold POSITION-CODE-1.  A character code of DIMENSION2
-  character uses FIELD1 to hold charset, FIELD2 and FIELD3 to hold
-  POSITION-CODE-1 and POSITION-CODE-2 respectively.
-
-  More precisely...
-
-  FIELD2 of DIMENSION1 character (except for ascii, eight-bit-control,
-  and eight-bit-graphic) is "charset - 0x70".  This is to make all
-  character codes except for ASCII and 8-bit codes greater than 256.
-  So, the range of FIELD2 of DIMENSION1 character is 0, 1, or
-  0x11..0x7F.
-
-  FIELD1 of DIMENSION2 character is "charset - 0x8F" for official
-  charset and "charset - 0xE0" for private charset.  So, the range of
-  FIELD1 of DIMENSION2 character is 0x01..0x1E.
-
-  -----------------------------------------------------------------------------
-  charset              FIELD1 (5-bit)      FIELD2 (7-bit)      FIELD3 (7-bit)
-  -----------------------------------------------------------------------------
-  ascii                        0                   0                   0x00..0x7F
-  eight-bit-control    0                   1                   0x00..0x1F
-  eight-bit-graphic    0                   1                   0x20..0x7F
-  DIMENSION1           0                   charset - 0x70      POSITION-CODE-1
-  DIMENSION2(o)                charset - 0x8F      POSITION-CODE-1     POSITION-CODE-2
-  DIMENSION2(p)                charset - 0xE0      POSITION-CODE-1     POSITION-CODE-2
-  -----------------------------------------------------------------------------
-  "(o)": official, "(p)": private
-  -----------------------------------------------------------------------------
-*/
-
-/* Masks of each field of character code.  */
-#define CHAR_FIELD1_MASK (0x1F << 14)
-#define CHAR_FIELD2_MASK (0x7F << 7)
-#define CHAR_FIELD3_MASK 0x7F
-
-/* Macros to access each field of character C.  */
-#define CHAR_FIELD1(c) (((c) & CHAR_FIELD1_MASK) >> 14)
-#define CHAR_FIELD2(c) (((c) & CHAR_FIELD2_MASK) >> 7)
-#define CHAR_FIELD3(c) ((c) & CHAR_FIELD3_MASK)
-
-/* Minimum character code of character of each DIMENSION.  */
-#define MIN_CHAR_OFFICIAL_DIMENSION1 \
-  ((0x81 - 0x70) << 7)
-#define MIN_CHAR_PRIVATE_DIMENSION1 \
-  ((MIN_CHARSET_PRIVATE_DIMENSION1 - 0x70) << 7)
-#define MIN_CHAR_OFFICIAL_DIMENSION2 \
-  ((MIN_CHARSET_OFFICIAL_DIMENSION2 - 0x8F) << 14)
-#define MIN_CHAR_PRIVATE_DIMENSION2 \
-  ((MIN_CHARSET_PRIVATE_DIMENSION2 - 0xE0) << 14)
-/* Maximum character code currently used plus 1.  */
-#define MAX_CHAR (0x1F << 14)
-
-/* 1 if C is a single byte character, else 0.  */
-#define SINGLE_BYTE_CHAR_P(c) (((unsigned)(c) & 0xFF) == (c))
-
-/* 1 if BYTE is an ASCII character in itself, in multibyte mode.  */
-#define ASCII_BYTE_P(byte) ((byte) < 0x80)
-
-/* A char-table containing information on each character set.
-
-   Unlike ordinary char-tables, this doesn't contain any nested tables.
-   Only the top level elements are used.  Each element is a vector of
-   the following information:
-       CHARSET-ID, BYTES, DIMENSION, CHARS, WIDTH, DIRECTION,
-       LEADING-CODE-BASE, LEADING-CODE-EXT,
-       ISO-FINAL-CHAR, ISO-GRAPHIC-PLANE,
-       REVERSE-CHARSET, SHORT-NAME, LONG-NAME, DESCRIPTION,
-       PLIST.
-
-   CHARSET-ID (integer) is the identification number of the charset.
-
-   BYTES (integer) is the length of the multi-byte form of a character
-   in the charset: one of 1, 2, 3, and 4.
-
-   DIMENSION (integer) is the number of bytes to represent a character: 1 or 2.
-
-   CHARS (integer) is the number of characters in a dimension: 94 or 96.
-
-   WIDTH (integer) is the number of columns a character in the charset
-   occupies on the screen: one of 0, 1, and 2..
-
-   DIRECTION (integer) is the rendering direction of characters in the
-   charset when rendering.  If 0, render from left to right, else
-   render from right to left.
-
-   LEADING-CODE-BASE (integer) is the base leading-code for the
-   charset.
-
-   LEADING-CODE-EXT (integer) is the extended leading-code for the
-   charset.  All charsets of less than 0xA0 have the value 0.
-
-   ISO-FINAL-CHAR (character) is the final character of the
-   corresponding ISO 2022 charset.  It is -1 for such a character
-   that is used only internally (e.g. `eight-bit-control').
-
-   ISO-GRAPHIC-PLANE (integer) is the graphic plane to be invoked
-   while encoding to variants of ISO 2022 coding system, one of the
-   following: 0/graphic-plane-left(GL), 1/graphic-plane-right(GR).  It
-   is -1 for such a character that is used only internally
-   (e.g. `eight-bit-control').
-
-   REVERSE-CHARSET (integer) is the charset which differs only in
-   LEFT-TO-RIGHT value from the charset.  If there's no such a
-   charset, the value is -1.
-
-   SHORT-NAME (string) is the short name to refer to the charset.
-
-   LONG-NAME (string) is the long name to refer to the charset.
-
-   DESCRIPTION (string) is the description string of the charset.
-
-   PLIST (property list) may contain any type of information a user
-   wants to put and get by functions `put-charset-property' and
-   `get-charset-property' respectively.  */
-extern Lisp_Object Vcharset_table;
-
-/* Macros to access various information of CHARSET in Vcharset_table.
-   We provide these macros for efficiency.  No range check of CHARSET.  */
-
-/* Return entry of CHARSET (C integer) in Vcharset_table.  */
-#define CHARSET_TABLE_ENTRY(charset)                                   \
-  XCHAR_TABLE (Vcharset_table)->contents[((charset) == CHARSET_ASCII   \
-                                         ? 0 : (charset) + 128)]
-
-/* Return information INFO-IDX of CHARSET.  */
-#define CHARSET_TABLE_INFO(charset, info_idx) \
-  XVECTOR (CHARSET_TABLE_ENTRY (charset))->contents[info_idx]
-
-#define CHARSET_ID_IDX (0)
-#define CHARSET_BYTES_IDX (1)
-#define CHARSET_DIMENSION_IDX (2)
-#define CHARSET_CHARS_IDX (3)
-#define CHARSET_WIDTH_IDX (4)
-#define CHARSET_DIRECTION_IDX (5)
-#define CHARSET_LEADING_CODE_BASE_IDX (6)
-#define CHARSET_LEADING_CODE_EXT_IDX (7)
-#define CHARSET_ISO_FINAL_CHAR_IDX (8)
-#define CHARSET_ISO_GRAPHIC_PLANE_IDX (9)
-#define CHARSET_REVERSE_CHARSET_IDX (10)
-#define CHARSET_SHORT_NAME_IDX (11)
-#define CHARSET_LONG_NAME_IDX (12)
-#define CHARSET_DESCRIPTION_IDX (13)
-#define CHARSET_PLIST_IDX (14)
-/* Size of a vector of each entry of Vcharset_table.  */
-#define CHARSET_MAX_IDX (15)
-
-/* And several more macros to be used frequently.  */
-#define CHARSET_BYTES(charset) \
-  XFASTINT (CHARSET_TABLE_INFO (charset, CHARSET_BYTES_IDX))
-#define CHARSET_DIMENSION(charset) \
-  XFASTINT (CHARSET_TABLE_INFO (charset, CHARSET_DIMENSION_IDX))
-#define CHARSET_CHARS(charset) \
-  XFASTINT (CHARSET_TABLE_INFO (charset, CHARSET_CHARS_IDX))
-#define CHARSET_WIDTH(charset) \
-  XFASTINT (CHARSET_TABLE_INFO (charset, CHARSET_WIDTH_IDX))
-#define CHARSET_DIRECTION(charset) \
-  XFASTINT (CHARSET_TABLE_INFO (charset, CHARSET_DIRECTION_IDX))
-#define CHARSET_LEADING_CODE_BASE(charset) \
-  XFASTINT (CHARSET_TABLE_INFO (charset, CHARSET_LEADING_CODE_BASE_IDX))
-#define CHARSET_LEADING_CODE_EXT(charset) \
-  XFASTINT (CHARSET_TABLE_INFO (charset, CHARSET_LEADING_CODE_EXT_IDX))
-#define CHARSET_ISO_FINAL_CHAR(charset) \
-  XINT (CHARSET_TABLE_INFO (charset, CHARSET_ISO_FINAL_CHAR_IDX))
-#define CHARSET_ISO_GRAPHIC_PLANE(charset) \
-  XINT (CHARSET_TABLE_INFO (charset, CHARSET_ISO_GRAPHIC_PLANE_IDX))
-#define CHARSET_REVERSE_CHARSET(charset) \
-  XINT (CHARSET_TABLE_INFO (charset, CHARSET_REVERSE_CHARSET_IDX))
-
-/* Macros to specify direction of a charset.  */
-#define CHARSET_DIRECTION_LEFT_TO_RIGHT 0
-#define CHARSET_DIRECTION_RIGHT_TO_LEFT 1
-
-/* A vector of charset symbol indexed by charset-id.  This is used
-   only for returning charset symbol from C functions.  */
-extern Lisp_Object Vcharset_symbol_table;
-
-/* Return symbol of CHARSET.  */
-#define CHARSET_SYMBOL(charset) \
-  XVECTOR (Vcharset_symbol_table)->contents[charset]
-
-/* 1 if CHARSET is in valid value range, else 0.  */
-#define CHARSET_VALID_P(charset)                                        \
-  ((charset) == 0                                                       \
-   || ((charset) > 0x80 && (charset) <= MAX_CHARSET_OFFICIAL_DIMENSION2) \
-   || ((charset) >= MIN_CHARSET_PRIVATE_DIMENSION1                      \
-       && (charset) <= MAX_CHARSET)                                     \
-   || ((charset) == CHARSET_8_BIT_CONTROL)                              \
-   || ((charset) == CHARSET_8_BIT_GRAPHIC))
-
-/* 1 if CHARSET is already defined, else 0.  */
-#define CHARSET_DEFINED_P(charset)                     \
-  (((charset) >= 0) && ((charset) <= MAX_CHARSET)      \
-   && !NILP (CHARSET_TABLE_ENTRY (charset)))
-
-/* Since the information CHARSET-BYTES and CHARSET-WIDTH of
-   Vcharset_table can be retrieved only by the first byte of
-   multi-byte form (an ASCII code or a base leading-code), we provide
-   here tables to be used by macros BYTES_BY_CHAR_HEAD and
-   WIDTH_BY_CHAR_HEAD for faster information retrieval.  */
-extern int bytes_by_char_head[256];
-extern int width_by_char_head[256];
-
-#define BYTES_BY_CHAR_HEAD(char_head)  \
-  (ASCII_BYTE_P (char_head) ? 1 : bytes_by_char_head[char_head])
-#define WIDTH_BY_CHAR_HEAD(char_head)  \
-  (ASCII_BYTE_P (char_head) ? 1 : width_by_char_head[char_head])
-
-/* Charset of the character C.  */
-#define CHAR_CHARSET(c)                                                        \
-  (SINGLE_BYTE_CHAR_P (c)                                              \
-   ? (ASCII_BYTE_P (c)                                                 \
-      ? CHARSET_ASCII                                                  \
-      : (c) < 0xA0 ? CHARSET_8_BIT_CONTROL : CHARSET_8_BIT_GRAPHIC)    \
-   : ((c) < MIN_CHAR_OFFICIAL_DIMENSION2                               \
-      ? CHAR_FIELD2 (c) + 0x70                                         \
-      : ((c) < MIN_CHAR_PRIVATE_DIMENSION2                             \
-        ? CHAR_FIELD1 (c) + 0x8F                                       \
-        : CHAR_FIELD1 (c) + 0xE0)))
+/* Index to arguments of Fdefine_charset_internal.  */
+
+enum define_charset_arg_index
+  {
+    charset_arg_name,
+    charset_arg_dimension,
+    charset_arg_code_space,
+    charset_arg_min_code,
+    charset_arg_max_code,
+    charset_arg_iso_final,
+    charset_arg_iso_revision,
+    charset_arg_emacs_mule_id,
+    charset_arg_ascii_compatible_p,
+    charset_arg_supplementary_p,
+    charset_arg_invalid_code,
+    charset_arg_code_offset,
+    charset_arg_map,
+    charset_arg_subset,
+    charset_arg_superset,
+    charset_arg_unify_map,
+    charset_arg_plist,
+    charset_arg_max
+  };
+
+
+/* Indices to charset attributes vector.  */
+
+enum charset_attr_index
+  {
+    /* ID number of the charset.  */
+    charset_id,
+
+    /* Name of the charset (symbol).  */
+    charset_name,
+
+    /* Property list of the charset.  */
+    charset_plist,
+
+    /* If the method of the charset is `MAP_DEFERRED', the value is a
+       mapping vector or a file name that contains mapping vector.
+       Otherwise, nil.  */
+    charset_map,
+
+    /* If the method of the charset is `MAP', the value is a vector
+       that maps code points of the charset to characters.  The vector
+       is indexed by a character index.  A character index is
+       calculated from a code point and the code-space table of the
+       charset.  */
+    charset_decoder,
+
+    /* If the method of the charset is `MAP', the value is a
+       char-table that maps characters of the charset to code
+       points.  */
+    charset_encoder,
+
+    /* If the method of the charset is `SUBSET', the value is a vector
+       that has this form:
+
+       [ CHARSET-ID MIN-CODE MAX-CODE OFFSET ]
+
+       CHARSET-ID is an ID number of a parent charset.  MIN-CODE and
+       MAX-CODE specify the range of characters inherited from the
+       parent.  OFFSET is an integer value to add to a code point of
+       the parent charset to get the corresponding code point of this
+       charset.  */
+    charset_subset,
+
+    /* If the method of the charset is `SUPERSET', the value is a list
+       whose elements have this form:
+
+       (CHARSET-ID . OFFSET)
+
+      CHARSET-IDs are ID numbers of parent charsets.  OFFSET is an
+      integer value to add to a code point of the parent charset to
+      get the corresponding code point of this charset.  */
+    charset_superset,
+
+    /* The value is a mapping vector or a file name that contains the
+       mapping.  This defines how characters in the charset should be
+       unified with Unicode.  The value of the member
+       `charset_deunifier' is created from this information.  */
+    charset_unify_map,
+
+    /* If characters in the charset must be unified Unicode, the value
+       is a char table that maps a unified Unicode character code to
+       the non-unified character code in the charset.  */
+    charset_deunifier,
+
+    /* The length of the charset attribute vector.  */
+    charset_attr_max
+  };
+
+/* Methods for converting code points and characters of charsets.  */
+
+enum charset_method
+  {
+    /* For a charset of this method, a character code is calculated
+       from a character index (which is calculated from a code point)
+       simply by adding an offset value.  */
+    CHARSET_METHOD_OFFSET,
+
+    /* For a charset of this method, a decoder vector and an encoder
+       char-table is used for code point <-> character code
+       conversion.  */
+    CHARSET_METHOD_MAP,
+
+    /* Same as above but decoder and encoder are loaded from a file on
+       demand.  Once loaded, the method is changed to
+       CHARSET_METHOD_MAP.  */
+    CHARSET_METHOD_MAP_DEFERRED,
+
+    /* A charset of this method is a subset of another charset.  */
+    CHARSET_METHOD_SUBSET,
+
+    /* A charset of this method is a superset of other charsets.  */
+    CHARSET_METHOD_SUPERSET
+  };
+
+struct charset
+{
+  /* Index to charset_table.  */
+  int id;
 
-/* Check if two characters C1 and C2 belong to the same charset.  */
-#define SAME_CHARSET_P(c1, c2)                         \
-  (c1 < MIN_CHAR_OFFICIAL_DIMENSION2                   \
-   ? (c1 & CHAR_FIELD2_MASK) == (c2 & CHAR_FIELD2_MASK)        \
-   : (c1 & CHAR_FIELD1_MASK) == (c2 & CHAR_FIELD1_MASK))
-
-/* Return a character of which charset is CHARSET and position-codes
-   are C1 and C2.  DIMENSION1 character ignores C2.  */
-#define MAKE_CHAR(charset, c1, c2)                                         \
-  ((charset) == CHARSET_ASCII                                              \
-   ? (c1) & 0x7F                                                           \
-   : (((charset) == CHARSET_8_BIT_CONTROL                                  \
-       || (charset) == CHARSET_8_BIT_GRAPHIC)                              \
-      ? ((c1) & 0x7F) | 0x80                                               \
-      : ((CHARSET_DEFINED_P (charset)                                      \
-         ? CHARSET_DIMENSION (charset) == 1                                \
-         : (charset) < MIN_CHARSET_PRIVATE_DIMENSION2)                     \
-        ? (((charset) - 0x70) << 7) | ((c1) <= 0 ? 0 : ((c1) & 0x7F))      \
-        : ((((charset)                                                     \
-             - ((charset) < MIN_CHARSET_PRIVATE_DIMENSION2 ? 0x8F : 0xE0)) \
-            << 14)                                                         \
-           | ((c2) <= 0 ? 0 : ((c2) & 0x7F))                               \
-           | ((c1) <= 0 ? 0 : (((c1) & 0x7F) << 7))))))
-
-
-/* If GENERICP is nonzero, return nonzero if C is a valid normal or
-   generic character.  If GENERICP is zero, return nonzero if C is a
-   valid normal character.  */
-#define CHAR_VALID_P(c, genericp)      \
-  ((c) >= 0                            \
-   && (SINGLE_BYTE_CHAR_P (c) || char_valid_p (c, genericp)))
-
-/* This default value is used when nonascii-translation-table or
-   nonascii-insert-offset fail to convert unibyte character to a valid
-   multibyte character.  This makes a Latin-1 character.  */
-
-#define DEFAULT_NONASCII_INSERT_OFFSET 0x800
-
-/* Parse multibyte string STR of length LENGTH and set BYTES to the
-   byte length of a character at STR.  */
-
-#ifdef BYTE_COMBINING_DEBUG
-
-#define PARSE_MULTIBYTE_SEQ(str, length, bytes)                        \
+  /* Index to Vcharset_hash_table.  */
+  int hash_index;
+
+  /* Dimension of the charset: 1, 2, 3, or 4.  */
+  int dimension;
+
+  /* Byte code range of each dimension.  <code_space>[4N] is a mininum
+     byte code of the (N+1)th dimension, <code_space>[4N+1] is a
+     maximum byte code of the (N+1)th dimension, <code_space>[4N+2] is
+     (<code_space>[4N+1] - <code_space>[4N] + 1), <code_space>[4N+3]
+     is a number of characters containd in the first to (N+1)th
+     dismesions.  We get `char-index' of a `code-point' from this
+     information.  */
+  int code_space[16];
+
+  /* If B is a byte of Nth dimension of a code-point, the (N-1)th bit
+     of code_space_mask[B] is set.  This array is used to quickly
+     check if a code-point is in a valid range.  */
+  unsigned char *code_space_mask;
+
+  /* 1 if there's no gap in code-points.  */
+  int code_linear_p;
+
+  /* If the charset is treated as 94-chars in ISO-2022, the value is 0.
+     If the charset is treated as 96-chars in ISO-2022, the value is 1.  */
+  int iso_chars_96;
+
+  /* ISO final byte of the charset: 48..127.  It may be -1 if the
+     charset doesn't conform to ISO-2022.  */
+  int iso_final;
+
+  /* ISO revision number of the charset.  */
+  int iso_revision;
+
+  /* If the charset is identical to what supported by Emacs 21 and the
+     priors, the identification number of the charset used in those
+     version.  Otherwise, -1.  */
+  int emacs_mule_id;
+
+  /* Nonzero if the charset is compatible with ASCII.  */
+  int ascii_compatible_p;
+
+  /* Nonzero if the charset is supplementary.  */
+  int supplementary_p;
+
+  /* Nonzero if all the code points are representable by Lisp_Int.  */
+  int compact_codes_p;
+
+  /* The method for encoding/decoding characters of the charset.  */
+  enum charset_method method;
+
+  /* Mininum and Maximum code points of the charset.  */
+  unsigned min_code, max_code;
+
+  /* Offset value used by macros CODE_POINT_TO_INDEX and
+      INDEX_TO_CODE_POINT. .  */
+  unsigned char_index_offset;
+
+  /* Mininum and Maximum character codes of the charset.  If the
+     charset is compatible with ASCII, min_char is a minimum non-ASCII
+     character of the charset.  If the method of charset is
+     CHARSET_METHOD_OFFSET, even if the charset is unified, min_char
+     and max_char doesn't change.  */
+  int min_char, max_char;
+
+  /* The code returned by ENCODE_CHAR if a character is not encodable
+     by the charset.  */
+  unsigned invalid_code;
+
+  /* If the method of the charset is CHARSET_METHOD_MAP, this is a
+     table of bits used to quickly and roughly guess if a character
+     belongs to the charset.
+
+     The first 64 elements are 512 bits for characters less than
+     0x10000.  Each bit corresponds to 128-character block.  The last
+     126 elements are 1008 bits for the greater characters
+     (0x10000..0x3FFFFF).  Each bit corresponds to 4096-character
+     block.
+
+     If a bit is 1, at least one character in the corresponding block is
+     in this charset.  */
+  unsigned char fast_map[190];
+
+  /* Offset value to calculate a character code from code-point, and
+     visa versa.  */
+  int code_offset;
+
+  int unified_p;
+};
+
+/* Hash table of charset symbols vs. the correponding attribute
+   vectors.  */
+extern Lisp_Object Vcharset_hash_table;
+
+/* Table of struct charset.  */
+extern struct charset *charset_table;
+
+#define CHARSET_FROM_ID(id) (charset_table + (id))
+
+extern Lisp_Object Vcharset_ordered_list;
+
+/* Incremented everytime we change the priority of charsets.  */
+extern unsigned short charset_ordered_list_tick;
+
+extern Lisp_Object Vcharset_list;
+extern Lisp_Object Viso_2022_charset_list;
+extern Lisp_Object Vemacs_mule_charset_list;
+
+extern struct charset *emacs_mule_charset[256];
+
+
+/* Macros to access information about charset.  */
+
+/* Return the attribute vector of charset whose symbol is SYMBOL.  */
+#define CHARSET_SYMBOL_ATTRIBUTES(symbol)      \
+  Fgethash ((symbol), Vcharset_hash_table, Qnil)
+
+#define CHARSET_ATTR_ID(attrs)         AREF ((attrs), charset_id)
+#define CHARSET_ATTR_NAME(attrs)       AREF ((attrs), charset_name)
+#define CHARSET_ATTR_PLIST(attrs)      AREF ((attrs), charset_plist)
+#define CHARSET_ATTR_MAP(attrs)                AREF ((attrs), charset_map)
+#define CHARSET_ATTR_DECODER(attrs)    AREF ((attrs), charset_decoder)
+#define CHARSET_ATTR_ENCODER(attrs)    AREF ((attrs), charset_encoder)
+#define CHARSET_ATTR_SUBSET(attrs)     AREF ((attrs), charset_subset)
+#define CHARSET_ATTR_SUPERSET(attrs)   AREF ((attrs), charset_superset)
+#define CHARSET_ATTR_UNIFY_MAP(attrs)  AREF ((attrs), charset_unify_map)
+#define CHARSET_ATTR_DEUNIFIER(attrs)  AREF ((attrs), charset_deunifier)
+
+#define CHARSET_SYMBOL_ID(symbol)      \
+  CHARSET_ATTR_ID (CHARSET_SYMBOL_ATTRIBUTES (symbol))
+
+/* Return an index to Vcharset_hash_table of the charset whose symbol
+   is SYMBOL.  */
+#define CHARSET_SYMBOL_HASH_INDEX(symbol)      \
+  hash_lookup (XHASH_TABLE (Vcharset_hash_table), symbol, NULL)
+
+/* Return the attribute vector of CHARSET.  */
+#define CHARSET_ATTRIBUTES(charset)    \
+  (HASH_VALUE (XHASH_TABLE (Vcharset_hash_table), (charset)->hash_index))
+
+#define CHARSET_ID(charset)            ((charset)->id)
+#define CHARSET_HASH_INDEX(charset)    ((charset)->hash_index)
+#define CHARSET_DIMENSION(charset)     ((charset)->dimension)
+#define CHARSET_CODE_SPACE(charset)    ((charset)->code_space)
+#define CHARSET_CODE_LINEAR_P(charset) ((charset)->code_linear_p)
+#define CHARSET_ISO_CHARS_96(charset)  ((charset)->iso_chars_96)
+#define CHARSET_ISO_FINAL(charset)     ((charset)->iso_final)
+#define CHARSET_ISO_PLANE(charset)     ((charset)->iso_plane)
+#define CHARSET_ISO_REVISION(charset)  ((charset)->iso_revision)
+#define CHARSET_EMACS_MULE_ID(charset) ((charset)->emacs_mule_id)
+#define CHARSET_ASCII_COMPATIBLE_P(charset) ((charset)->ascii_compatible_p)
+#define CHARSET_COMPACT_CODES_P(charset) ((charset)->compact_codes_p)
+#define CHARSET_METHOD(charset)                ((charset)->method)
+#define CHARSET_MIN_CODE(charset)      ((charset)->min_code)
+#define CHARSET_MAX_CODE(charset)      ((charset)->max_code)
+#define CHARSET_INVALID_CODE(charset)  ((charset)->invalid_code)
+#define CHARSET_MIN_CHAR(charset)      ((charset)->min_char)
+#define CHARSET_MAX_CHAR(charset)      ((charset)->max_char)
+#define CHARSET_CODE_OFFSET(charset)   ((charset)->code_offset)
+#define CHARSET_UNIFIED_P(charset)     ((charset)->unified_p)
+
+#define CHARSET_NAME(charset)          \
+  (CHARSET_ATTR_NAME (CHARSET_ATTRIBUTES (charset)))
+#define CHARSET_MAP(charset)   \
+  (CHARSET_ATTR_MAP (CHARSET_ATTRIBUTES (charset)))
+#define CHARSET_DECODER(charset)       \
+  (CHARSET_ATTR_DECODER (CHARSET_ATTRIBUTES (charset)))
+#define CHARSET_ENCODER(charset)       \
+  (CHARSET_ATTR_ENCODER (CHARSET_ATTRIBUTES (charset)))
+#define CHARSET_SUBSET(charset)        \
+  (CHARSET_ATTR_SUBSET (CHARSET_ATTRIBUTES (charset)))
+#define CHARSET_SUPERSET(charset)      \
+  (CHARSET_ATTR_SUPERSET (CHARSET_ATTRIBUTES (charset)))
+#define CHARSET_UNIFY_MAP(charset)     \
+  (CHARSET_ATTR_UNIFY_MAP (CHARSET_ATTRIBUTES (charset)))
+#define CHARSET_DEUNIFIER(charset)     \
+  (CHARSET_ATTR_DEUNIFIER (CHARSET_ATTRIBUTES (charset)))
+
+
+/* Nonzero if OBJ is a valid charset symbol.  */
+#define CHARSETP(obj) (CHARSET_SYMBOL_HASH_INDEX (obj) >= 0)
+
+/* Check if X is a valid charset symbol.  If not, signal an error.  */
+#define CHECK_CHARSET(x)                                       \
   do {                                                         \
-    int i = 1;                                                 \
-    while (i < (length) && ! CHAR_HEAD_P ((str)[i])) i++;      \
-    (bytes) = BYTES_BY_CHAR_HEAD ((str)[0]);                   \
-    if ((bytes) > i)                                           \
-      abort ();                                                        \
+    if (! SYMBOLP (x) || CHARSET_SYMBOL_HASH_INDEX (x) < 0)    \
+      x = wrong_type_argument (Qcharsetp, (x));                        \
   } while (0)
 
-#else  /* not BYTE_COMBINING_DEBUG */
-
-#define PARSE_MULTIBYTE_SEQ(str, length, bytes)        \
-  ((void)(length), (bytes) = BYTES_BY_CHAR_HEAD ((str)[0]))
-
-#endif /* not BYTE_COMBINING_DEBUG */
-
-#define VALID_LEADING_CODE_P(code)     \
-  (! NILP (CHARSET_TABLE_ENTRY (code)))
-
-/* Return 1 if the byte sequence at unibyte string STR (LENGTH bytes)
-   is valid as a multibyte form.  If valid, by a side effect, BYTES is
-   set to the byte length of the multibyte form.  */
-
-#define UNIBYTE_STR_AS_MULTIBYTE_P(str, length, bytes)         \
-  (((str)[0] < 0x80 || (str)[0] >= 0xA0)                       \
-   ? ((bytes) = 1)                                             \
-   : (((bytes) = BYTES_BY_CHAR_HEAD ((str)[0])),               \
-      ((bytes) <= (length)                                     \
-       && !CHAR_HEAD_P ((str)[1])                              \
-       && ((bytes) == 2                                                \
-          ? (str)[0] != LEADING_CODE_8_BIT_CONTROL             \
-          : (!CHAR_HEAD_P ((str)[2])                           \
-             && ((bytes) == 3                                  \
-                 ? (((str)[0] != LEADING_CODE_PRIVATE_11       \
-                     && (str)[0] != LEADING_CODE_PRIVATE_12)   \
-                    || VALID_LEADING_CODE_P (str[1]))          \
-                 : (!CHAR_HEAD_P ((str)[3])                    \
-                    && VALID_LEADING_CODE_P (str[1]))))))))
-
-
-/* Return 1 if the byte sequence at multibyte string STR is valid as
-   a unibyte form.  By a side effect, BYTES is set to the byte length
-   of one character at STR.  */
-
-#define MULTIBYTE_STR_AS_UNIBYTE_P(str, bytes) \
-  ((bytes) = BYTES_BY_CHAR_HEAD ((str)[0]),    \
-   (str)[0] != LEADING_CODE_8_BIT_CONTROL)
-
-/* The charset of character C is stored in CHARSET, and the
-   position-codes of C are stored in C1 and C2.
-   We store -1 in C2 if the dimension of the charset is 1.  */
-
-#define SPLIT_CHAR(c, charset, c1, c2)                                     \
-  (SINGLE_BYTE_CHAR_P (c)                                                  \
-   ? ((charset                                                             \
-       = (ASCII_BYTE_P (c)                                                 \
-         ? CHARSET_ASCII                                                   \
-         : ((c) < 0xA0 ? CHARSET_8_BIT_CONTROL : CHARSET_8_BIT_GRAPHIC))), \
-      c1 = (c), c2 = -1)                                                   \
-   : ((c) & CHAR_FIELD1_MASK                                               \
-      ? (charset = (CHAR_FIELD1 (c)                                        \
-                   + ((c) < MIN_CHAR_PRIVATE_DIMENSION2 ? 0x8F : 0xE0)),   \
-        c1 = CHAR_FIELD2 (c),                                              \
-        c2 = CHAR_FIELD3 (c))                                              \
-      : (charset = CHAR_FIELD2 (c) + 0x70,                                 \
-        c1 = CHAR_FIELD3 (c),                                              \
-        c2 = -1)))
-
-/* Return 1 if character C has valid printable glyph.  */
-#define CHAR_PRINTABLE_P(c) (ASCII_BYTE_P (c) || char_printable_p (c))
-
-/* The charset of the character at STR is stored in CHARSET, and the
-   position-codes are stored in C1 and C2.
-   We store -1 in C2 if the character is just 2 bytes.  */
-
-#define SPLIT_STRING(str, len, charset, c1, c2)                        \
-  ((BYTES_BY_CHAR_HEAD ((unsigned char) *(str)) < 2            \
-    || BYTES_BY_CHAR_HEAD ((unsigned char) *(str)) > len       \
-    || split_string (str, len, &charset, &c1, &c2) < 0)                \
-   ? c1 = *(str), charset = CHARSET_ASCII                      \
-   : charset)
 
-/* Mapping table from ISO2022's charset (specified by DIMENSION,
-   CHARS, and FINAL_CHAR) to Emacs' charset.  Should be accessed by
-   macro ISO_CHARSET_TABLE (DIMENSION, CHARS, FINAL_CHAR).  */
-extern int iso_charset_table[2][2][128];
-
-#define ISO_CHARSET_TABLE(dimension, chars, final_char) \
-  iso_charset_table[XINT (dimension) - 1][XINT (chars) > 94][XINT (final_char)]
-
-#define BASE_LEADING_CODE_P(c) (BYTES_BY_CHAR_HEAD ((unsigned char) (c)) > 1)
-
-/* Return how many bytes C will occupy in a multibyte buffer.  */
-#define CHAR_BYTES(c)                                  \
-  (SINGLE_BYTE_CHAR_P (c)                              \
-   ? ((ASCII_BYTE_P (c) || (c) >= 0xA0) ? 1 : 2)       \
-   : char_bytes (c))
-
-/* The following two macros CHAR_STRING and STRING_CHAR are the main
-   entry points to convert between Emacs's two types of character
-   representations: multi-byte form and single-word form (character
-   code).  */
-
-/* Store multi-byte form of the character C in STR.  The caller should
-   allocate at least MAX_MULTIBYTE_LENGTH bytes area at STR in
-   advance.  Returns the length of the multi-byte form.  If C is an
-   invalid character code, signal an error.  */
-
-#define CHAR_STRING(c, str)                                              \
-  (SINGLE_BYTE_CHAR_P (c)                                                \
-   ? ((ASCII_BYTE_P (c) || c >= 0xA0)                    \
-      ? (*(str) = (unsigned char)(c), 1)                                 \
-      : (*(str) = LEADING_CODE_8_BIT_CONTROL, *((str)+ 1) = c + 0x20, 2)) \
-   : char_to_string (c, (unsigned char *) str))
-
-/* Like CHAR_STRING but don't signal an error if C is invalid.
-   Value is -1 in this case.  */
-
-#define CHAR_STRING_NO_SIGNAL(c, str)                                    \
-  (SINGLE_BYTE_CHAR_P (c)                                                \
-   ? ((ASCII_BYTE_P (c) || c >= 0xA0)                                    \
-      ? (*(str) = (unsigned char)(c), 1)                                 \
-      : (*(str) = LEADING_CODE_8_BIT_CONTROL, *((str)+ 1) = c + 0x20, 2)) \
-   : char_to_string_1 (c, (unsigned char *) str))
-
-/* Return a character code of the character of which multi-byte form
-   is at STR and the length is LEN.  If STR doesn't contain valid
-   multi-byte form, only the first byte in STR is returned.  */
-
-#define STRING_CHAR(str, len)                          \
-  (BYTES_BY_CHAR_HEAD ((unsigned char) *(str)) == 1    \
-   ? (unsigned char) *(str)                            \
-   : string_to_char (str, len, 0))
-
-/* This is like STRING_CHAR but the third arg ACTUAL_LEN is set to the
-   length of the multi-byte form.  Just to know the length, use
-   MULTIBYTE_FORM_LENGTH.  */
-
-#define STRING_CHAR_AND_LENGTH(str, len, actual_len)   \
-  (BYTES_BY_CHAR_HEAD ((unsigned char) *(str)) == 1    \
-   ? ((actual_len) = 1), (unsigned char) *(str)                \
-   : string_to_char (str, len, &(actual_len)))
-
-/* Fetch the "next" character from Lisp string STRING at byte position
-   BYTEIDX, character position CHARIDX.  Store it into OUTPUT.
-
-   All the args must be side-effect-free.
-   BYTEIDX and CHARIDX must be lvalues;
-   we increment them past the character fetched.  */
-
-#define FETCH_STRING_CHAR_ADVANCE(OUTPUT, STRING, CHARIDX, BYTEIDX)       \
-if (1)                                                                    \
-  {                                                                       \
-    CHARIDX++;                                                            \
-    if (STRING_MULTIBYTE (STRING))                                        \
-      {                                                                           \
-       const unsigned char *ptr = SDATA (STRING) + BYTEIDX;               \
-       int space_left = SBYTES (STRING) - BYTEIDX;                        \
-       int actual_len;                                                    \
-                                                                          \
-       OUTPUT = STRING_CHAR_AND_LENGTH (ptr, space_left, actual_len);     \
-       BYTEIDX += actual_len;                                             \
-      }                                                                           \
-    else                                                                  \
-      OUTPUT = SREF (STRING, BYTEIDX++);                                  \
-  }                                                                       \
-else
-
-/* Like FETCH_STRING_CHAR_ADVANCE but assume STRING is multibyte.  */
-
-#define FETCH_STRING_CHAR_ADVANCE_NO_CHECK(OUTPUT, STRING, CHARIDX, BYTEIDX)  \
-if (1)                                                                       \
-  {                                                                          \
-    const unsigned char *fetch_string_char_ptr = SDATA (STRING) + BYTEIDX;    \
-    int fetch_string_char_space_left = SBYTES (STRING) - BYTEIDX;            \
-    int actual_len;                                                          \
-                                                                             \
-    OUTPUT                                                                   \
-      = STRING_CHAR_AND_LENGTH (fetch_string_char_ptr,                       \
-                               fetch_string_char_space_left, actual_len);    \
-                                                                             \
-    BYTEIDX += actual_len;                                                   \
-    CHARIDX++;                                                               \
-  }                                                                          \
-else
-
-/* Like FETCH_STRING_CHAR_ADVANCE but fetch character from the current
-   buffer.  */
-
-#define FETCH_CHAR_ADVANCE(OUTPUT, CHARIDX, BYTEIDX)                     \
-if (1)                                                                   \
-  {                                                                      \
-    CHARIDX++;                                                           \
-    if (!NILP (current_buffer->enable_multibyte_characters))             \
-      {                                                                          \
-       unsigned char *ptr = BYTE_POS_ADDR (BYTEIDX);                     \
-       int space_left = ((CHARIDX < GPT ? GPT_BYTE : Z_BYTE) - BYTEIDX); \
-       int actual_len;                                                   \
-                                                                         \
-       OUTPUT= STRING_CHAR_AND_LENGTH (ptr, space_left, actual_len);     \
-       BYTEIDX += actual_len;                                            \
-      }                                                                          \
-    else                                                                 \
-      {                                                                          \
-       OUTPUT = *(BYTE_POS_ADDR (BYTEIDX));                              \
-       BYTEIDX++;                                                        \
-      }                                                                          \
-  }                                                                      \
-else
-
-/* Return the length of the multi-byte form at string STR of length LEN.  */
-
-#define MULTIBYTE_FORM_LENGTH(str, len)                        \
-  (BYTES_BY_CHAR_HEAD (*(unsigned char *)(str)) == 1   \
-   ? 1                                                 \
-   : multibyte_form_length (str, len))
-
-/* If P is before LIMIT, advance P to the next character boundary.  It
-   assumes that P is already at a character boundary of the sane
-   mulitbyte form whose end address is LIMIT.  */
-
-#define NEXT_CHAR_BOUNDARY(p, limit)   \
-  do {                                 \
-    if ((p) < (limit))                 \
-      (p) += BYTES_BY_CHAR_HEAD (*(p));        \
+/* Check if X is a valid charset symbol.  If valid, set ID to the id
+   number of the charset.  Otherwise, signal an error. */
+#define CHECK_CHARSET_GET_ID(x, id)                                    \
+  do {                                                                 \
+    int idx;                                                           \
+                                                                       \
+    if (! SYMBOLP (x) || (idx = CHARSET_SYMBOL_HASH_INDEX (x)) < 0)    \
+      x = wrong_type_argument (Qcharsetp, (x));                                \
+    id = XINT (AREF (HASH_VALUE (XHASH_TABLE (Vcharset_hash_table), idx), \
+                    charset_id));                                      \
   } while (0)
 
 
-/* If P is after LIMIT, advance P to the previous character boundary.  */
-
-#define PREV_CHAR_BOUNDARY(p, limit)                                   \
+/* Check if X is a valid charset symbol.  If valid, set ATTR to the
+   attr vector of the charset.  Otherwise, signal an error. */
+#define CHECK_CHARSET_GET_ATTR(x, attr)                                \
   do {                                                                 \
-    if ((p) > (limit))                                                 \
-      {                                                                        \
-       const unsigned char *p0 = (p);                                  \
-       const unsigned char *p_limit = max (limit, p0 - MAX_MULTIBYTE_LENGTH);\
-       do {                                                            \
-         p0--;                                                         \
-       } while (p0 >= p_limit && ! CHAR_HEAD_P (*p0));                 \
-       /* If BBCH(*p0) > p-p0, it means we were not on a boundary.  */ \
-       (p) = (BYTES_BY_CHAR_HEAD (*p0) >= (p) - p0) ? p0 : (p) - 1;    \
-      }                                                                        \
+    if (!SYMBOLP (x) || NILP (attr = CHARSET_SYMBOL_ATTRIBUTES (x)))   \
+      x = wrong_type_argument (Qcharsetp, (x));                                \
   } while (0)
 
-#define AT_CHAR_BOUNDARY_P(result, p, limit)   \
+
+#define CHECK_CHARSET_GET_CHARSET(x, charset)  \
   do {                                         \
-    if (CHAR_HEAD_P (*(p)) || (p) <= limit)    \
-      /* Optimization for the common case. */  \
-      (result) = 1;                            \
-    else                                       \
-      {                                                \
-       const unsigned char *p_aux = (p)+1;     \
-       PREV_CHAR_BOUNDARY (p_aux, limit);      \
-       (result) = (p_aux == (p));              \
-      }                                                \
-} while (0)
-
-#ifdef emacs
-
-/* Increase the buffer byte position POS_BYTE of the current buffer to
-   the next character boundary.  This macro relies on the fact that
-   *GPT_ADDR and *Z_ADDR are always accessible and the values are
-   '\0'.  No range checking of POS.  */
-
-#ifdef BYTE_COMBINING_DEBUG
-
-#define INC_POS(pos_byte)                              \
-  do {                                                 \
-    unsigned char *p = BYTE_POS_ADDR (pos_byte);       \
-    if (BASE_LEADING_CODE_P (*p))                      \
-      {                                                        \
-       int len, bytes;                                 \
-       len = Z_BYTE - pos_byte;                        \
-       PARSE_MULTIBYTE_SEQ (p, len, bytes);            \
-       pos_byte += bytes;                              \
-      }                                                        \
-    else                                               \
-      pos_byte++;                                      \
+    int id;                                    \
+    CHECK_CHARSET_GET_ID (x, id);              \
+    charset = CHARSET_FROM_ID (id);            \
   } while (0)
 
-#else  /* not BYTE_COMBINING_DEBUG */
 
-#define INC_POS(pos_byte)                              \
-  do {                                                 \
-    unsigned char *p = BYTE_POS_ADDR (pos_byte);       \
-    pos_byte += BYTES_BY_CHAR_HEAD (*p);               \
-  } while (0)
+/* Lookup Vcharset_order_list and return the first charset that
+   contains the character C.  */
+#define CHAR_CHARSET(c)                                \
+  ((c) < 0x80 ? CHARSET_FROM_ID (charset_ascii)        \
+   : char_charset ((c), Qnil, NULL))
 
-#endif /* not BYTE_COMBINING_DEBUG */
+#if 0
+/* Char-table of charset-sets.  Each element is a bool vector indexed
+   by a charset ID.  */
+extern Lisp_Object Vchar_charset_set;
 
-/* Decrease the buffer byte position POS_BYTE of the current buffer to
-   the previous character boundary.  No range checking of POS.  */
-#define DEC_POS(pos_byte)                                              \
-  do {                                                                 \
-    unsigned char *p, *p_min;                                          \
-                                                                       \
-    pos_byte--;                                                                \
-    if (pos_byte < GPT_BYTE)                                           \
-      p = BEG_ADDR + pos_byte - BEG_BYTE, p_min = BEG_ADDR;            \
-    else                                                               \
-      p = BEG_ADDR + GAP_SIZE + pos_byte - BEG_BYTE, p_min = GAP_END_ADDR;\
-    if (p > p_min && !CHAR_HEAD_P (*p))                                        \
-      {                                                                        \
-       unsigned char *pend = p--;                                      \
-       int len, bytes;                                                 \
-        if (p_min < p - MAX_MULTIBYTE_LENGTH)                          \
-          p_min = p - MAX_MULTIBYTE_LENGTH;                            \
-       while (p > p_min && !CHAR_HEAD_P (*p)) p--;                     \
-       len = pend + 1 - p;                                             \
-       PARSE_MULTIBYTE_SEQ (p, len, bytes);                            \
-       if (bytes == len)                                               \
-         pos_byte -= len - 1;                                          \
-      }                                                                        \
-  } while (0)
+/* Charset-bag of character C.  */
+#define CHAR_CHARSET_SET(c) \
+  CHAR_TABLE_REF (Vchar_charset_set, c)
 
-/* Increment both CHARPOS and BYTEPOS, each in the appropriate way.  */
+/* Check if two characters C1 and C2 belong to the same charset.  */
+#define SAME_CHARSET_P(c1, c2) \
+  intersection_p (CHAR_CHARSET_SET (c1), CHAR_CHARSET_SET (c2))
+
+#endif
+
+
+/* Return a character correponding to the code-point CODE of CHARSET.
+   Try some optimization before calling decode_char.  */
+
+#define DECODE_CHAR(charset, code)                                     \
+  ((ASCII_BYTE_P (code) && (charset)->ascii_compatible_p)              \
+   ? (code)                                                            \
+   : ((code) < (charset)->min_code || (code) > (charset)->max_code)    \
+   ? -1                                                                        \
+   : (charset)->unified_p                                              \
+   ? decode_char ((charset), (code))                                   \
+   : (charset)->method == CHARSET_METHOD_OFFSET                                \
+   ? ((charset)->code_linear_p                                         \
+      ? (code) - (charset)->min_code + (charset)->code_offset          \
+      : decode_char ((charset), (code)))                               \
+   : (charset)->method == CHARSET_METHOD_MAP                           \
+   ? ((charset)->code_linear_p                                         \
+      ? XINT (AREF (CHARSET_DECODER (charset),                         \
+                       (code) - (charset)->min_code))                  \
+      : decode_char ((charset), (code)))                               \
+   : decode_char ((charset), (code)))
+
+
+/* If CHARSET is a simple offset base charset, return it's offset,
+   otherwise return -1.  */
+#define CHARSET_OFFSET(charset)                                \
+  (((charset)->method == CHARSET_METHOD_OFFSET         \
+    && (charset)->code_linear_p                                \
+    && ! (charset)->unified_p)                         \
+   ? (charset)->code_offset - (charset)->min_code      \
+   : -1)
+
+extern Lisp_Object charset_work;
+
+/* Return a code point of CHAR in CHARSET.
+   Try some optimization before calling encode_char.  */
+
+#define ENCODE_CHAR(charset, c)                                                 \
+  ((ASCII_CHAR_P (c) && (charset)->ascii_compatible_p)                  \
+   ? (c)                                                                \
+   : ((charset)->unified_p                                              \
+      || (charset)->method == CHARSET_METHOD_SUBSET                     \
+      || (charset)->method == CHARSET_METHOD_SUPERSET)                  \
+   ? encode_char ((charset), (c))                                       \
+   : ((c) < (charset)->min_char || (c) > (charset)->max_char)           \
+   ? (charset)->invalid_code                                            \
+   : (charset)->method == CHARSET_METHOD_OFFSET                                 \
+   ? ((charset)->code_linear_p                                          \
+      ? (c) - (charset)->code_offset + (charset)->min_code              \
+      : encode_char ((charset), (c)))                                   \
+   : (charset)->method == CHARSET_METHOD_MAP                            \
+   ? ((charset)->compact_codes_p                                        \
+      ? (charset_work = CHAR_TABLE_REF (CHARSET_ENCODER (charset), (c)), \
+        (NILP (charset_work)                                            \
+         ? (charset)->invalid_code                                      \
+         : XFASTINT (charset_work)))                                    \
+      : encode_char ((charset), (c)))                                   \
+   : encode_char ((charset), (c)))
+
+
+/* Set to 1 when a charset map is loaded to warn that a buffer text
+   and a string data may be relocated.  */
+extern int charset_map_loaded;
+
+
+/* Set CHARSET to the charset highest priority of C, CODE to the
+   code-point of C in CHARSET.  */
+#define SPLIT_CHAR(c, charset, code)   \
+  ((charset) = char_charset ((c), Qnil, &(code)))
+
+
+#define ISO_MAX_DIMENSION 3
+#define ISO_MAX_CHARS 2
+#define ISO_MAX_FINAL 0x80     /* only 0x30..0xFF are used */
 
-#define INC_BOTH(charpos, bytepos)                             \
-do                                                             \
-  {                                                            \
-    (charpos)++;                                               \
-    if (NILP (current_buffer->enable_multibyte_characters))    \
-      (bytepos)++;                                             \
-    else                                                       \
-      INC_POS ((bytepos));                                     \
-  }                                                            \
-while (0)
-
-/* Decrement both CHARPOS and BYTEPOS, each in the appropriate way.  */
-
-#define DEC_BOTH(charpos, bytepos)                             \
-do                                                             \
-  {                                                            \
-    (charpos)--;                                               \
-    if (NILP (current_buffer->enable_multibyte_characters))    \
-      (bytepos)--;                                             \
-    else                                                       \
-      DEC_POS ((bytepos));                                     \
-  }                                                            \
-while (0)
+/* Mapping table from ISO2022's charset (specified by DIMENSION,
+   CHARS, and FINAL_CHAR) to Emacs' charset ID.  Should be accessed by
+   macro ISO_CHARSET_TABLE (DIMENSION, CHARS, FINAL_CHAR).  */
+extern int iso_charset_table[ISO_MAX_DIMENSION][ISO_MAX_CHARS][ISO_MAX_FINAL];
 
-/* Increase the buffer byte position POS_BYTE of the current buffer to
-   the next character boundary.  This macro relies on the fact that
-   *GPT_ADDR and *Z_ADDR are always accessible and the values are
-   '\0'.  No range checking of POS_BYTE.  */
+/* A charset of type iso2022 who has DIMENSION, CHARS, and FINAL
+   (final character).  */
+#define ISO_CHARSET_TABLE(dimension, chars_96, final)  \
+  iso_charset_table[(dimension) - 1][(chars_96)][(final)]
 
-#ifdef BYTE_COMBINING_DEBUG
+/* Nonzero if the charset who has FAST_MAP may contain C.  */
+#define CHARSET_FAST_MAP_REF(c, fast_map)              \
+  ((c) < 0x10000                                       \
+   ? fast_map[(c) >> 10] & (1 << (((c) >> 7) & 7))     \
+   : fast_map[((c) >> 15) + 62] & (1 << (((c) >> 12) & 7)))
 
-#define BUF_INC_POS(buf, pos_byte)                             \
+#define CHARSET_FAST_MAP_SET(c, fast_map)                      \
   do {                                                         \
-    unsigned char *p = BUF_BYTE_ADDRESS (buf, pos_byte);       \
-    if (BASE_LEADING_CODE_P (*p))                              \
-      {                                                                \
-       int len, bytes;                                         \
-       len = BUF_Z_BYTE (buf) - pos_byte;                      \
-       PARSE_MULTIBYTE_SEQ (p, len, bytes);                    \
-       pos_byte += bytes;                                      \
-      }                                                                \
+    if ((c) < 0x10000)                                         \
+      (fast_map)[(c) >> 10] |= 1 << (((c) >> 7) & 7);          \
     else                                                       \
-      pos_byte++;                                              \
+      (fast_map)[((c) >> 15) + 62] |= 1 << (((c) >> 12) & 7);  \
   } while (0)
 
-#else  /* not BYTE_COMBINING_DEBUG */
 
-#define BUF_INC_POS(buf, pos_byte)                             \
-  do {                                                         \
-    unsigned char *p = BUF_BYTE_ADDRESS (buf, pos_byte);       \
-    pos_byte += BYTES_BY_CHAR_HEAD (*p);                       \
-  } while (0)
 
-#endif /* not BYTE_COMBINING_DEBUG */
+/* 1 if CHARSET may contain the character C.  */
+#define CHAR_CHARSET_P(c, charset)                                      \
+  ((ASCII_CHAR_P (c) && (charset)->ascii_compatible_p)                  \
+   || ((CHARSET_UNIFIED_P (charset)                                     \
+       || (charset)->method == CHARSET_METHOD_SUBSET                    \
+       || (charset)->method == CHARSET_METHOD_SUPERSET)                 \
+       ? encode_char ((charset), (c)) != (charset)->invalid_code        \
+       : (CHARSET_FAST_MAP_REF ((c), (charset)->fast_map)               \
+         && ((charset)->method == CHARSET_METHOD_OFFSET                 \
+             ? (c) >= (charset)->min_char && (c) <= (charset)->max_char \
+             : ((charset)->method == CHARSET_METHOD_MAP                 \
+                && (charset)->compact_codes_p)                          \
+             ? ! NILP (CHAR_TABLE_REF (CHARSET_ENCODER (charset), (c))) \
+             : encode_char ((charset), (c)) != (charset)->invalid_code))))
 
-/* Decrease the buffer byte position POS_BYTE of the current buffer to
-   the previous character boundary.  No range checking of POS_BYTE.  */
-#define BUF_DEC_POS(buf, pos_byte)                                     \
-  do {                                                                 \
-    unsigned char *p, *p_min;                                          \
-    pos_byte--;                                                                \
-    if (pos_byte < BUF_GPT_BYTE (buf))                                 \
-      {                                                                        \
-       p = BUF_BEG_ADDR (buf) + pos_byte - BEG_BYTE;                   \
-       p_min = BUF_BEG_ADDR (buf);                                     \
-      }                                                                        \
-    else                                                               \
-      {                                                                        \
-       p = BUF_BEG_ADDR (buf) + BUF_GAP_SIZE (buf) + pos_byte - BEG_BYTE;\
-       p_min = BUF_GAP_END_ADDR (buf);                                 \
-      }                                                                        \
-    if (p > p_min && !CHAR_HEAD_P (*p))                                        \
-      {                                                                        \
-       unsigned char *pend = p--;                                      \
-       int len, bytes;                                                 \
-        if (p_min < p - MAX_MULTIBYTE_LENGTH)                          \
-          p_min = p - MAX_MULTIBYTE_LENGTH;                            \
-       while (p > p_min && !CHAR_HEAD_P (*p)) p--;                     \
-       len = pend + 1 - p;                                             \
-       PARSE_MULTIBYTE_SEQ (p, len, bytes);                            \
-       if (bytes == len)                                               \
-         pos_byte -= len - 1;                                          \
-      }                                                                        \
-  } while (0)
+\f
+/* Special macros for emacs-mule encoding.  */
 
-#endif /* emacs */
-
-/* This is the maximum byte length of multi-byte sequence.  */
-#define MAX_MULTIBYTE_LENGTH 4
-
-extern void invalid_character P_ ((int)) NO_RETURN;
-
-extern int translate_char P_ ((Lisp_Object, int, int, int, int));
-extern int split_string P_ ((const unsigned char *, int, int *,
-                                      unsigned char *, unsigned char *));
-extern int char_to_string P_ ((int, unsigned char *));
-extern int char_to_string_1 P_ ((int, unsigned char *));
-extern int string_to_char P_ ((const unsigned char *, int, int *));
-extern int char_printable_p P_ ((int c));
-extern int multibyte_form_length P_ ((const unsigned char *, int));
-extern void parse_str_as_multibyte P_ ((const unsigned char *, int, int *,
-                                       int *));
-extern int str_as_multibyte P_ ((unsigned char *, int, int, int *));
-extern int parse_str_to_multibyte P_ ((unsigned char *, int));
-extern int str_to_multibyte P_ ((unsigned char *, int, int));
-extern int str_as_unibyte P_ ((unsigned char *, int));
-extern int get_charset_id P_ ((Lisp_Object));
-extern int find_charset_in_text P_ ((const unsigned char *, int, int, int *,
-                                   Lisp_Object));
-extern int strwidth P_ ((unsigned char *, int));
-extern int c_string_width P_ ((const unsigned char *, int, int, int *, int *));
-extern int lisp_string_width P_ ((Lisp_Object, int, int *, int *));
-extern int char_bytes P_ ((int));
-extern int char_valid_p P_ ((int, int));
-
-EXFUN (Funibyte_char_to_multibyte, 1);
-
-extern Lisp_Object Vtranslation_table_vector;
-
-/* Return a translation table of id number ID.  */
-#define GET_TRANSLATION_TABLE(id) \
-  (XCDR(XVECTOR(Vtranslation_table_vector)->contents[(id)]))
-
-/* A char-table for characters which may invoke auto-filling.  */
-extern Lisp_Object Vauto_fill_chars;
-
-/* Copy LEN bytes from FROM to TO.  This macro should be used only
-   when a caller knows that LEN is short and the obvious copy loop is
-   faster than calling bcopy which has some overhead.  Copying a
-   multibyte sequence of a multibyte character is the typical case.  */
-
-#define BCOPY_SHORT(from, to, len)             \
-  do {                                         \
-    int i = len;                               \
-    const unsigned char *from_p = from;                \
-    unsigned char *to_p = to;                  \
-    while (i--) *to_p++ = *from_p++;           \
-  } while (0)
+/* Leading-code followed by extended leading-code.    DIMENSION/COLUMN */
+#define EMACS_MULE_LEADING_CODE_PRIVATE_11     0x9A /* 1/1 */
+#define EMACS_MULE_LEADING_CODE_PRIVATE_12     0x9B /* 1/2 */
+#define EMACS_MULE_LEADING_CODE_PRIVATE_21     0x9C /* 2/2 */
+#define EMACS_MULE_LEADING_CODE_PRIVATE_22     0x9D /* 2/2 */
+
+extern struct charset *emacs_mule_charset[256];
+
+\f
+
+extern Lisp_Object Qcharsetp;
+
+extern Lisp_Object Qascii, Qunicode;
+extern int charset_ascii, charset_eight_bit;
+extern int charset_iso_8859_1;
+extern int charset_unicode;
+extern int charset_jisx0201_roman;
+extern int charset_jisx0208_1978;
+extern int charset_jisx0208;
+
+extern int charset_unibyte;
+
+extern struct charset *char_charset P_ ((int, Lisp_Object, unsigned *));
+extern Lisp_Object charset_attributes P_ ((int));
+
+extern int decode_char P_ ((struct charset *, unsigned));
+extern unsigned encode_char P_ ((struct charset *, int));
+extern int string_xstring_p P_ ((Lisp_Object));
+
+extern void map_charset_chars P_ ((void (*) (Lisp_Object, Lisp_Object),
+                                  Lisp_Object, Lisp_Object,
+                                  struct charset *, unsigned, unsigned));
+
+EXFUN (Funify_charset, 3);
 
 #endif /* EMACS_CHARSET_H */
 
diff --git a/src/chartab.c b/src/chartab.c
new file mode 100644 (file)
index 0000000..5306e22
--- /dev/null
@@ -0,0 +1,1048 @@
+/* chartab.c -- char-table support
+   Copyright (C) 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <config.h>
+#include "lisp.h"
+#include "character.h"
+#include "charset.h"
+#include "ccl.h"
+
+/* 64/16/32/128 */
+
+/* Number of elements in Nth level char-table.  */
+const int chartab_size[4] =
+  { (1 << CHARTAB_SIZE_BITS_0),
+    (1 << CHARTAB_SIZE_BITS_1),
+    (1 << CHARTAB_SIZE_BITS_2),
+    (1 << CHARTAB_SIZE_BITS_3) };
+
+/* Number of characters each element of Nth level char-table
+   covers.  */
+const int chartab_chars[4] =
+  { (1 << (CHARTAB_SIZE_BITS_1 + CHARTAB_SIZE_BITS_2 + CHARTAB_SIZE_BITS_3)),
+    (1 << (CHARTAB_SIZE_BITS_2 + CHARTAB_SIZE_BITS_3)),
+    (1 << CHARTAB_SIZE_BITS_3),
+    1 };
+
+/* Number of characters (in bits) each element of Nth level char-table
+   covers.  */
+const int chartab_bits[4] =
+  { (CHARTAB_SIZE_BITS_1 + CHARTAB_SIZE_BITS_2 + CHARTAB_SIZE_BITS_3),
+    (CHARTAB_SIZE_BITS_2 + CHARTAB_SIZE_BITS_3),
+    CHARTAB_SIZE_BITS_3,
+    0 };
+
+#define CHARTAB_IDX(c, depth, min_char)                \
+  (((c) - (min_char)) >> chartab_bits[(depth)])
+
+
+DEFUN ("make-char-table", Fmake_char_table, Smake_char_table, 1, 2, 0,
+       doc: /* Return a newly created char-table, with purpose PURPOSE.
+Each element is initialized to INIT, which defaults to nil.
+
+PURPOSE should be a symbol.  If it has a `char-table-extra-slots'
+property, the property's value should be an integer between 0 and 10
+that specifies how many extra slots the char-table has.  Otherwise,
+the char-table has no extra slot.  */)
+     (purpose, init)
+     register Lisp_Object purpose, init;
+{
+  Lisp_Object vector;
+  Lisp_Object n;
+  int n_extras;
+  int size;
+
+  CHECK_SYMBOL (purpose);
+  n = Fget (purpose, Qchar_table_extra_slots);
+  if (NILP (n))
+    n_extras = 0;
+  else
+    {
+      CHECK_NATNUM (n);
+      n_extras = XINT (n);
+      if (n_extras > 10)
+       args_out_of_range (n, Qnil);
+    }
+
+  size = VECSIZE (struct Lisp_Char_Table) - 1 + n_extras;
+  vector = Fmake_vector (make_number (size), init);
+  XSETPVECTYPE (XVECTOR (vector), PVEC_CHAR_TABLE);
+  XCHAR_TABLE (vector)->parent = Qnil;
+  XCHAR_TABLE (vector)->purpose = purpose;
+  XSETCHAR_TABLE (vector, XCHAR_TABLE (vector));
+  return vector;
+}
+
+static Lisp_Object
+make_sub_char_table (depth, min_char, defalt)
+     int depth, min_char;
+     Lisp_Object defalt;
+{
+  Lisp_Object table;
+  int size = VECSIZE (struct Lisp_Sub_Char_Table) - 1 + chartab_size[depth];
+
+  table = Fmake_vector (make_number (size), defalt);
+  XSETPVECTYPE (XVECTOR (table), PVEC_SUB_CHAR_TABLE);
+  XSUB_CHAR_TABLE (table)->depth = make_number (depth);
+  XSUB_CHAR_TABLE (table)->min_char = make_number (min_char);
+  XSETSUB_CHAR_TABLE (table, XSUB_CHAR_TABLE (table));
+
+  return table;
+}
+
+static Lisp_Object
+char_table_ascii (table)
+     Lisp_Object table;
+{
+  Lisp_Object sub;
+
+  sub = XCHAR_TABLE (table)->contents[0];
+  if (! SUB_CHAR_TABLE_P (sub))
+    return sub;
+  sub = XSUB_CHAR_TABLE (sub)->contents[0];
+  if (! SUB_CHAR_TABLE_P (sub))
+    return sub;
+  return XSUB_CHAR_TABLE (sub)->contents[0];
+}
+
+Lisp_Object
+copy_sub_char_table (table)
+     Lisp_Object table;
+{
+  Lisp_Object copy;
+  int depth = XINT (XSUB_CHAR_TABLE (table)->depth);
+  int min_char = XINT (XSUB_CHAR_TABLE (table)->min_char);
+  Lisp_Object val;
+  int i;
+
+  copy = make_sub_char_table (depth, min_char, Qnil);
+  /* Recursively copy any sub char-tables.  */
+  for (i = 0; i < chartab_size[depth]; i++)
+    {
+      val = XSUB_CHAR_TABLE (table)->contents[i];
+      if (SUB_CHAR_TABLE_P (val))
+       XSUB_CHAR_TABLE (copy)->contents[i] = copy_sub_char_table (val);
+      else
+       XSUB_CHAR_TABLE (copy)->contents[i] = val;
+    }
+
+  return copy;
+}
+
+
+Lisp_Object
+copy_char_table (table)
+     Lisp_Object table;
+{
+  Lisp_Object copy;
+  int size = XCHAR_TABLE (table)->size & PSEUDOVECTOR_SIZE_MASK;
+  int i;
+
+  copy = Fmake_vector (make_number (size), Qnil);
+  XSETPVECTYPE (XVECTOR (copy), PVEC_CHAR_TABLE);
+  XCHAR_TABLE (copy)->defalt = XCHAR_TABLE (table)->defalt;
+  XCHAR_TABLE (copy)->parent = XCHAR_TABLE (table)->parent;
+  XCHAR_TABLE (copy)->purpose = XCHAR_TABLE (table)->purpose;
+  XCHAR_TABLE (copy)->ascii = XCHAR_TABLE (table)->ascii;
+  for (i = 0; i < chartab_size[0]; i++)
+    XCHAR_TABLE (copy)->contents[i]
+      = (SUB_CHAR_TABLE_P (XCHAR_TABLE (table)->contents[i])
+        ? copy_sub_char_table (XCHAR_TABLE (table)->contents[i])
+        : XCHAR_TABLE (table)->contents[i]);
+  if (SUB_CHAR_TABLE_P (XCHAR_TABLE (copy)->ascii))
+    XCHAR_TABLE (copy)->ascii = char_table_ascii (copy);
+  size -= VECSIZE (struct Lisp_Char_Table) - 1;
+  for (i = 0; i < size; i++)
+    XCHAR_TABLE (copy)->extras[i] = XCHAR_TABLE (table)->extras[i];
+
+  XSETCHAR_TABLE (copy, XCHAR_TABLE (copy));
+  return copy;
+}
+
+Lisp_Object
+sub_char_table_ref (table, c)
+     Lisp_Object table;
+     int c;
+{
+  struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table);
+  int depth = XINT (tbl->depth);
+  int min_char = XINT (tbl->min_char);
+  Lisp_Object val;
+
+  val = tbl->contents[CHARTAB_IDX (c, depth, min_char)];
+  if (SUB_CHAR_TABLE_P (val))
+    val = sub_char_table_ref (val, c);
+  return val;
+}
+
+Lisp_Object
+char_table_ref (table, c)
+     Lisp_Object table;
+     int c;
+{
+  struct Lisp_Char_Table *tbl = XCHAR_TABLE (table);
+  Lisp_Object val;
+
+  if (ASCII_CHAR_P (c))
+    {
+      val = tbl->ascii;
+      if (SUB_CHAR_TABLE_P (val))
+       val = XSUB_CHAR_TABLE (val)->contents[c];
+    }
+  else
+    {
+      val = tbl->contents[CHARTAB_IDX (c, 0, 0)];
+      if (SUB_CHAR_TABLE_P (val))
+       val = sub_char_table_ref (val, c);
+    }
+  if (NILP (val))
+    {
+      val = tbl->defalt;
+      if (NILP (val) && CHAR_TABLE_P (tbl->parent))
+       val = char_table_ref (tbl->parent, c);
+    }
+  return val;
+}
+
+static Lisp_Object
+sub_char_table_ref_and_range (table, c, from, to, defalt)
+     Lisp_Object table;
+     int c;
+     int *from, *to;
+     Lisp_Object defalt;
+{
+  struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table);
+  int depth = XINT (tbl->depth);
+  int min_char = XINT (tbl->min_char);
+  int max_char = min_char + chartab_chars[depth - 1] - 1;
+  int index = CHARTAB_IDX (c, depth, min_char);
+  Lisp_Object val;
+
+  val = tbl->contents[index];
+  *from = min_char + index * chartab_chars[depth];
+  *to = *from + chartab_chars[depth] - 1;
+  if (SUB_CHAR_TABLE_P (val))
+    val = sub_char_table_ref_and_range (val, c, from, to, defalt);
+  else if (NILP (val))
+    val = defalt;
+
+  while (*from > min_char
+        && *from == min_char + index * chartab_chars[depth])
+    {
+      Lisp_Object this_val;
+      int this_from = *from - chartab_chars[depth];
+      int this_to = *from - 1;
+
+      index--;
+      this_val = tbl->contents[index];
+      if (SUB_CHAR_TABLE_P (this_val))
+       this_val = sub_char_table_ref_and_range (this_val, this_to,
+                                                &this_from, &this_to,
+                                                defalt);
+      else if (NILP (this_val))
+       this_val = defalt;
+
+      if (! EQ (this_val, val))
+       break;
+      *from = this_from;
+    }
+  index = CHARTAB_IDX (c, depth, min_char);
+  while (*to < max_char
+        && *to == min_char + (index + 1) * chartab_chars[depth] - 1)
+    {
+      Lisp_Object this_val;
+      int this_from = *to + 1;
+      int this_to = this_from + chartab_chars[depth] - 1;
+
+      index++;
+      this_val = tbl->contents[index];
+      if (SUB_CHAR_TABLE_P (this_val))
+       this_val = sub_char_table_ref_and_range (this_val, this_from,
+                                                &this_from, &this_to,
+                                                defalt);
+      else if (NILP (this_val))
+       this_val = defalt;
+      if (! EQ (this_val, val))
+       break;
+      *to = this_to;
+    }
+
+  return val;
+}
+
+
+/* Return the value for C in char-table TABLE.  Set *FROM and *TO to
+   the range of characters (containing C) that have the same value as
+   C.  It is not assured that the value of (*FROM - 1) and (*TO + 1)
+   is different from that of C.  */
+
+Lisp_Object
+char_table_ref_and_range (table, c, from, to)
+     Lisp_Object table;
+     int c;
+     int *from, *to;
+{
+  struct Lisp_Char_Table *tbl = XCHAR_TABLE (table);
+  int index = CHARTAB_IDX (c, 0, 0);
+  Lisp_Object val;
+
+  val = tbl->contents[index];
+  *from = index * chartab_chars[0];
+  *to = *from + chartab_chars[0] - 1;
+  if (SUB_CHAR_TABLE_P (val))
+    val = sub_char_table_ref_and_range (val, c, from, to, tbl->defalt);
+  else if (NILP (val))
+    val = tbl->defalt;
+
+  while (*from > 0 && *from == index * chartab_chars[0])
+    {
+      Lisp_Object this_val;
+      int this_from = *from - chartab_chars[0];
+      int this_to = *from - 1;
+
+      index--;
+      this_val = tbl->contents[index];
+      if (SUB_CHAR_TABLE_P (this_val))
+       this_val = sub_char_table_ref_and_range (this_val, this_to,
+                                                &this_from, &this_to,
+                                                tbl->defalt);
+      else if (NILP (this_val))
+       this_val = tbl->defalt;
+
+      if (! EQ (this_val, val))
+       break;
+      *from = this_from;
+    }
+  while (*to < MAX_CHAR && *to == (index + 1) * chartab_chars[0] - 1)
+    {
+      Lisp_Object this_val;
+      int this_from = *to + 1;
+      int this_to = this_from + chartab_chars[0] - 1;
+
+      index++;
+      this_val = tbl->contents[index];
+      if (SUB_CHAR_TABLE_P (this_val))
+       this_val = sub_char_table_ref_and_range (this_val, this_from,
+                                                &this_from, &this_to,
+                                                tbl->defalt);
+      else if (NILP (this_val))
+       this_val = tbl->defalt;
+      if (! EQ (this_val, val))
+       break;
+      *to = this_to;
+    }
+
+  return val;
+}
+
+
+#define ASET_RANGE(ARRAY, FROM, TO, LIMIT, VAL)                                \
+  do {                                                                 \
+    int limit = (TO) < (LIMIT) ? (TO) : (LIMIT);                       \
+    for (; (FROM) < limit; (FROM)++) (ARRAY)->contents[(FROM)] = (VAL);        \
+  } while (0)
+
+#define GET_SUB_CHAR_TABLE(TABLE, SUBTABLE, IDX, DEPTH, MIN_CHAR)        \
+  do {                                                                   \
+    (SUBTABLE) = (TABLE)->contents[(IDX)];                               \
+    if (!SUB_CHAR_TABLE_P (SUBTABLE))                                    \
+      (SUBTABLE) = make_sub_char_table ((DEPTH), (MIN_CHAR), (SUBTABLE)); \
+  } while (0)
+
+
+static void
+sub_char_table_set (table, c, val)
+     Lisp_Object table;
+     int c;
+     Lisp_Object val;
+{
+  struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table);
+  int depth = XINT ((tbl)->depth);
+  int min_char = XINT ((tbl)->min_char);
+  int i = CHARTAB_IDX (c, depth, min_char);
+  Lisp_Object sub;
+
+  if (depth == 3)
+    tbl->contents[i] = val;
+  else
+    {
+      sub = tbl->contents[i];
+      if (! SUB_CHAR_TABLE_P (sub))
+       {
+         sub = make_sub_char_table (depth + 1,
+                                    min_char + i * chartab_chars[depth], sub);
+         tbl->contents[i] = sub;
+       }
+      sub_char_table_set (sub, c, val);
+    }
+}
+
+Lisp_Object
+char_table_set (table, c, val)
+     Lisp_Object table;
+     int c;
+     Lisp_Object val;
+{
+  struct Lisp_Char_Table *tbl = XCHAR_TABLE (table);
+
+  if (ASCII_CHAR_P (c)
+      && SUB_CHAR_TABLE_P (tbl->ascii))
+    {
+      XSUB_CHAR_TABLE (tbl->ascii)->contents[c] = val;
+    }
+  else
+    {
+      int i = CHARTAB_IDX (c, 0, 0);
+      Lisp_Object sub;
+
+      sub = tbl->contents[i];
+      if (! SUB_CHAR_TABLE_P (sub))
+       {
+         sub = make_sub_char_table (1, i * chartab_chars[0], sub);
+         tbl->contents[i] = sub;
+       }
+      sub_char_table_set (sub, c, val);
+      if (ASCII_CHAR_P (c))
+       tbl->ascii = char_table_ascii (table);
+    }
+  return val;
+}
+
+static void
+sub_char_table_set_range (table, depth, min_char, from, to, val)
+     Lisp_Object *table;
+     int depth;
+     int min_char;
+     int from, to;
+     Lisp_Object val;
+{
+  int max_char = min_char + chartab_chars[depth] - 1;
+
+  if (depth == 3 || (from <= min_char && to >= max_char))
+    *table = val;
+  else
+    {
+      int i, j;
+
+      depth++;
+      if (! SUB_CHAR_TABLE_P (*table))
+       *table = make_sub_char_table (depth, min_char, *table);
+      if (from < min_char)
+       from = min_char;
+      if (to > max_char)
+       to = max_char;
+      i = CHARTAB_IDX (from, depth, min_char);
+      j = CHARTAB_IDX (to, depth, min_char);
+      min_char += chartab_chars[depth] * i;
+      for (; i <= j; i++, min_char += chartab_chars[depth])
+       sub_char_table_set_range (XSUB_CHAR_TABLE (*table)->contents + i,
+                                 depth, min_char, from, to, val);
+    }
+}
+
+
+Lisp_Object
+char_table_set_range (table, from, to, val)
+     Lisp_Object table;
+     int from, to;
+     Lisp_Object val;
+{
+  struct Lisp_Char_Table *tbl = XCHAR_TABLE (table);
+  Lisp_Object *contents = tbl->contents;
+  int i, min_char;
+
+  if (from == to)
+    char_table_set (table, from, val);
+  else
+    {
+      for (i = CHARTAB_IDX (from, 0, 0), min_char = i * chartab_chars[0];
+          min_char <= to;
+          i++, min_char += chartab_chars[0])
+       sub_char_table_set_range (contents + i, 0, min_char, from, to, val);
+      if (ASCII_CHAR_P (from))
+       tbl->ascii = char_table_ascii (table);
+    }
+  return val;
+}
+
+\f
+DEFUN ("char-table-subtype", Fchar_table_subtype, Schar_table_subtype,
+       1, 1, 0,
+       doc: /*
+Return the subtype of char-table CHAR-TABLE.  The value is a symbol.  */)
+     (char_table)
+     Lisp_Object char_table;
+{
+  CHECK_CHAR_TABLE (char_table);
+
+  return XCHAR_TABLE (char_table)->purpose;
+}
+
+DEFUN ("char-table-parent", Fchar_table_parent, Schar_table_parent,
+       1, 1, 0,
+       doc: /* Return the parent char-table of CHAR-TABLE.
+The value is either nil or another char-table.
+If CHAR-TABLE holds nil for a given character,
+then the actual applicable value is inherited from the parent char-table
+\(or from its parents, if necessary).  */)
+  (char_table)
+     Lisp_Object char_table;
+{
+  CHECK_CHAR_TABLE (char_table);
+
+  return XCHAR_TABLE (char_table)->parent;
+}
+
+DEFUN ("set-char-table-parent", Fset_char_table_parent, Sset_char_table_parent,
+       2, 2, 0,
+       doc: /* Set the parent char-table of CHAR-TABLE to PARENT.
+Return PARENT.  PARENT must be either nil or another char-table.  */)
+     (char_table, parent)
+     Lisp_Object char_table, parent;
+{
+  Lisp_Object temp;
+
+  CHECK_CHAR_TABLE (char_table);
+
+  if (!NILP (parent))
+    {
+      CHECK_CHAR_TABLE (parent);
+
+      for (temp = parent; !NILP (temp); temp = XCHAR_TABLE (temp)->parent)
+       if (EQ (temp, char_table))
+         error ("Attempt to make a chartable be its own parent");
+    }
+
+  XCHAR_TABLE (char_table)->parent = parent;
+
+  return parent;
+}
+
+DEFUN ("char-table-extra-slot", Fchar_table_extra_slot, Schar_table_extra_slot,
+       2, 2, 0,
+       doc: /* Return the value of CHAR-TABLE's extra-slot number N.  */)
+     (char_table, n)
+     Lisp_Object char_table, n;
+{
+  CHECK_CHAR_TABLE (char_table);
+  CHECK_NUMBER (n);
+  if (XINT (n) < 0
+      || XINT (n) >= CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (char_table)))
+    args_out_of_range (char_table, n);
+
+  return XCHAR_TABLE (char_table)->extras[XINT (n)];
+}
+
+DEFUN ("set-char-table-extra-slot", Fset_char_table_extra_slot,
+       Sset_char_table_extra_slot,
+       3, 3, 0,
+       doc: /* Set CHAR-TABLE's extra-slot number N to VALUE.  */)
+     (char_table, n, value)
+     Lisp_Object char_table, n, value;
+{
+  CHECK_CHAR_TABLE (char_table);
+  CHECK_NUMBER (n);
+  if (XINT (n) < 0
+      || XINT (n) >= CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (char_table)))
+    args_out_of_range (char_table, n);
+
+  return XCHAR_TABLE (char_table)->extras[XINT (n)] = value;
+}
+\f
+DEFUN ("char-table-range", Fchar_table_range, Schar_table_range,
+       2, 2, 0,
+       doc: /* Return the value in CHAR-TABLE for a range of characters RANGE.
+RANGE should be nil (for the default value),
+a cons of character codes (for characters in the range), or a character code.  */)
+     (char_table, range)
+     Lisp_Object char_table, range;
+{
+  Lisp_Object val;
+  CHECK_CHAR_TABLE (char_table);
+
+  if (EQ (range, Qnil))
+    val = XCHAR_TABLE (char_table)->defalt;
+  else if (INTEGERP (range))
+    val = CHAR_TABLE_REF (char_table, XINT (range));
+  else if (CONSP (range))
+    {
+      int from, to;
+
+      CHECK_CHARACTER_CAR (range);
+      CHECK_CHARACTER_CDR (range);
+      val = char_table_ref_and_range (char_table, XINT (XCAR (range)),
+                                     &from, &to);
+      /* Not yet implemented. */
+    }
+  else
+    error ("Invalid RANGE argument to `char-table-range'");
+  return val;
+}
+
+DEFUN ("set-char-table-range", Fset_char_table_range, Sset_char_table_range,
+       3, 3, 0,
+       doc: /* Set the value in CHAR-TABLE for a range of characters RANGE to VALUE.
+RANGE should be t (for all characters), nil (for the default value),
+a cons of character codes (for characters in the range),
+or a character code.  Return VALUE.  */)
+     (char_table, range, value)
+     Lisp_Object char_table, range, value;
+{
+  CHECK_CHAR_TABLE (char_table);
+  if (EQ (range, Qt))
+    {
+      int i;
+
+      XCHAR_TABLE (char_table)->ascii = Qnil;
+      for (i = 0; i < chartab_size[0]; i++)
+       XCHAR_TABLE (char_table)->contents[i] = Qnil;
+      XCHAR_TABLE (char_table)->defalt = value;
+    }
+  else if (EQ (range, Qnil))
+    XCHAR_TABLE (char_table)->defalt = value;
+  else if (INTEGERP (range))
+    char_table_set (char_table, XINT (range), value);
+  else if (CONSP (range))
+    {
+      CHECK_CHARACTER_CAR (range);
+      CHECK_CHARACTER_CDR (range);
+      char_table_set_range (char_table,
+                           XINT (XCAR (range)), XINT (XCDR (range)), value);
+    }
+  else
+    error ("Invalid RANGE argument to `set-char-table-range'");
+
+  return value;
+}
+
+DEFUN ("set-char-table-default", Fset_char_table_default,
+       Sset_char_table_default, 3, 3, 0,
+       doc: /*
+This function is obsolete and has no effect.  */)
+     (char_table, ch, value)
+     Lisp_Object char_table, ch, value;
+{
+  return Qnil;
+}
+
+/* Look up the element in TABLE at index CH, and return it as an
+   integer.  If the element is not a character, return CH itself.  */
+
+int
+char_table_translate (table, ch)
+     Lisp_Object table;
+     int ch;
+{
+  Lisp_Object value;
+  value = Faref (table, make_number (ch));
+  if (! CHARACTERP (value))
+    return ch;
+  return XINT (value);
+}
+
+static Lisp_Object
+optimize_sub_char_table (table)
+     Lisp_Object table;
+{
+  struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table);
+  int depth = XINT (tbl->depth);
+  Lisp_Object elt, this;
+  int i;
+
+  elt = XSUB_CHAR_TABLE (table)->contents[0];
+  if (SUB_CHAR_TABLE_P (elt))
+    elt = XSUB_CHAR_TABLE (table)->contents[0] = optimize_sub_char_table (elt);
+  if (SUB_CHAR_TABLE_P (elt))
+    return table;
+  for (i = 1; i < chartab_size[depth]; i++)
+    {
+      this = XSUB_CHAR_TABLE (table)->contents[i];
+      if (SUB_CHAR_TABLE_P (this))
+       this = XSUB_CHAR_TABLE (table)->contents[i]
+         = optimize_sub_char_table (this);
+      if (SUB_CHAR_TABLE_P (this)
+         || NILP (Fequal (this, elt)))
+       break;
+    }
+
+  return (i < chartab_size[depth] ? table : elt);
+}
+
+DEFUN ("optimize-char-table", Foptimize_char_table, Soptimize_char_table,
+       1, 1, 0,
+       doc: /* Optimize CHAR-TABLE.  */)
+     (char_table)
+     Lisp_Object char_table;
+{
+  Lisp_Object elt;
+  int i;
+
+  CHECK_CHAR_TABLE (char_table);
+
+  for (i = 0; i < chartab_size[0]; i++)
+    {
+      elt = XCHAR_TABLE (char_table)->contents[i];
+      if (SUB_CHAR_TABLE_P (elt))
+       XCHAR_TABLE (char_table)->contents[i] = optimize_sub_char_table (elt);
+    }
+  return Qnil;
+}
+
+\f
+/* Map C_FUNCTION or FUNCTION over TABLE (top or sub char-table),
+   calling it for each character or group of characters that share a
+   value.  RANGE is a cons (FROM . TO) specifying the range of target
+   characters, VAL is a value of FROM in TABLE, DEFAULT_VAL is the
+   default value of the char-table, PARENT is the parent of the
+   char-table.
+
+   ARG is passed to C_FUNCTION when that is called.
+
+   It returns the value of last character covered by TABLE (not the
+   value inheritted from the parent), and by side-effect, the car part
+   of RANGE is updated to the minimum character C where C and all the
+   following characters in TABLE have the same value.  */
+
+static Lisp_Object
+map_sub_char_table (c_function, function, table, arg, val, range,
+                   default_val, parent)
+     void (*c_function) P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
+     Lisp_Object function, table, arg, val, range, default_val, parent;
+{
+  /* Pointer to the elements of TABLE. */
+  Lisp_Object *contents;
+  /* Depth of TABLE.  */
+  int depth;
+  /* Minimum and maxinum characters covered by TABLE. */
+  int min_char, max_char;
+  /* Number of characters covered by one element of TABLE.  */
+  int chars_in_block;
+  int from = XINT (XCAR (range)), to = XINT (XCDR (range));
+  int i, c;
+
+  if (SUB_CHAR_TABLE_P (table))
+    {
+      struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table);
+
+      depth = XINT (tbl->depth);
+      contents = tbl->contents;
+      min_char = XINT (tbl->min_char);
+      max_char = min_char + chartab_chars[depth - 1] - 1;
+    }
+  else
+    {
+      depth = 0;
+      contents = XCHAR_TABLE (table)->contents;
+      min_char = 0;
+      max_char = MAX_CHAR;
+    }
+  chars_in_block = chartab_chars[depth];
+
+  if (to < max_char)
+    max_char = to;
+  /* Set I to the index of the first element to check.  */
+  if (from <= min_char)
+    i = 0;
+  else
+    i = (from - min_char) / chars_in_block;
+  for (c = min_char + chars_in_block * i; c <= max_char;
+       i++, c += chars_in_block)
+    {
+      Lisp_Object this = contents[i];
+      int nextc = c + chars_in_block;
+
+      if (SUB_CHAR_TABLE_P (this))
+       {
+         if (to >= nextc)
+           XSETCDR (range, make_number (nextc - 1));
+         val = map_sub_char_table (c_function, function, this, arg,
+                                   val, range, default_val, parent);
+       }
+      else
+       {
+         if (NILP (this))
+           this = default_val;
+         if (NILP (Fequal (val, this)))
+           {
+             int different_value = 1;
+
+             if (NILP (val))
+               {
+                 if (! NILP (parent))
+                   {
+                     Lisp_Object temp = XCHAR_TABLE (parent)->parent;
+
+                     /* This is to get a value of FROM in PARENT
+                        without checking the parent of PARENT.  */
+                     XCHAR_TABLE (parent)->parent = Qnil;
+                     val = CHAR_TABLE_REF (parent, from);
+                     XCHAR_TABLE (parent)->parent = temp;
+                     XSETCDR (range, make_number (c - 1));
+                     val = map_sub_char_table (c_function, function,
+                                               parent, arg, val, range,
+                                               XCHAR_TABLE (parent)->defalt,
+                                               XCHAR_TABLE (parent)->parent);
+                     if (! NILP (Fequal (val, this)))
+                       different_value = 0;
+                   }
+               }
+             if (! NILP (val) && different_value)
+               {
+                 XSETCDR (range, make_number (c - 1));
+                 if (EQ (XCAR (range), XCDR (range)))
+                   {
+                     if (c_function)
+                       (*c_function) (arg, XCAR (range), val);
+                     else
+                       call2 (function, XCAR (range), val);
+                   }
+                 else
+                   {
+                     if (c_function)
+                       (*c_function) (arg, range, val);
+                     else
+                       call2 (function, range, val);
+                   }
+               }
+             val = this;
+             from = c;
+             XSETCAR (range, make_number (c));
+           }
+       }
+      XSETCDR (range, make_number (to));
+    }
+  return val;
+}
+
+
+/* Map C_FUNCTION or FUNCTION over TABLE, calling it for each
+   character or group of characters that share a value.
+
+   ARG is passed to C_FUNCTION when that is called.  */
+
+void
+map_char_table (c_function, function, table, arg)
+     void (*c_function) P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
+     Lisp_Object function, table, arg;
+{
+  Lisp_Object range, val;
+  int c, i;
+  struct gcpro gcpro1, gcpro2, gcpro3;
+
+  range = Fcons (make_number (0), make_number (MAX_CHAR));
+  GCPRO3 (table, arg, range);
+  val = XCHAR_TABLE (table)->ascii;
+  if (SUB_CHAR_TABLE_P (val))
+    val = XSUB_CHAR_TABLE (val)->contents[0];
+  val = map_sub_char_table (c_function, function, table, arg, val, range,
+                           XCHAR_TABLE (table)->defalt,
+                           XCHAR_TABLE (table)->parent);
+  /* If VAL is nil and TABLE has a parent, we must consult the parent
+     recursively.  */
+  while (NILP (val) && ! NILP (XCHAR_TABLE (table)->parent))
+    {
+      Lisp_Object parent = XCHAR_TABLE (table)->parent;
+      Lisp_Object temp = XCHAR_TABLE (parent)->parent;
+      int from = XINT (XCAR (range));
+
+      /* This is to get a value of FROM in PARENT without checking the
+        parent of PARENT.  */
+      XCHAR_TABLE (parent)->parent = Qnil;
+      val = CHAR_TABLE_REF (parent, from);
+      XCHAR_TABLE (parent)->parent = temp;
+      val = map_sub_char_table (c_function, function, parent, arg, val, range,
+                               XCHAR_TABLE (parent)->defalt,
+                               XCHAR_TABLE (parent)->parent);
+      table = parent;
+    }
+
+  if (! NILP (val))
+    {
+      if (EQ (XCAR (range), XCDR (range)))
+       {
+         if (c_function)
+           (*c_function) (arg, XCAR (range), val);
+         else
+           call2 (function, XCAR (range), val);
+       }
+      else
+       {
+         if (c_function)
+           (*c_function) (arg, range, val);
+         else
+           call2 (function, range, val);
+       }
+    }
+
+  UNGCPRO;
+}
+
+DEFUN ("map-char-table", Fmap_char_table, Smap_char_table,
+  2, 2, 0,
+       doc: /*
+Call FUNCTION for each character in CHAR-TABLE that has non-nil value.
+FUNCTION is called with two arguments--a key and a value.
+The key is a character code or a cons of character codes specifying a
+range of characters that have the same value.  */)
+     (function, char_table)
+     Lisp_Object function, char_table;
+{
+  CHECK_CHAR_TABLE (char_table);
+
+  map_char_table (NULL, function, char_table, char_table);
+  return Qnil;
+}
+
+
+static void
+map_sub_char_table_for_charset (c_function, function, table, arg, range,
+                               charset, from, to)
+     void (*c_function) P_ ((Lisp_Object, Lisp_Object));
+     Lisp_Object function, table, arg, range;
+     struct charset *charset;
+     unsigned from, to;
+{
+  struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table);
+  int depth = XINT (tbl->depth);
+  int c, i;
+
+  if (depth < 3)
+    for (i = 0, c = XINT (tbl->min_char); i < chartab_size[depth];
+        i++, c += chartab_chars[depth])
+      {
+       Lisp_Object this;
+
+       this = tbl->contents[i];
+       if (SUB_CHAR_TABLE_P (this))
+         map_sub_char_table_for_charset (c_function, function, this, arg,
+                                         range, charset, from, to);
+       else
+         {
+           if (! NILP (XCAR (range)))
+             {
+               XSETCDR (range, make_number (c - 1));
+               if (c_function)
+                 (*c_function) (arg, range);
+               else
+                 call2 (function, range, arg);
+             }
+           XSETCAR (range, Qnil);
+         }
+      }
+  else
+    for (i = 0, c = XINT (tbl->min_char); i < chartab_size[depth]; i++, c ++)
+      {
+       Lisp_Object this;
+       unsigned code;
+
+       this = tbl->contents[i];
+       if (NILP (this)
+           || (charset
+               && (code = ENCODE_CHAR (charset, c),
+                   (code < from || code > to))))
+         {
+           if (! NILP (XCAR (range)))
+             {
+               XSETCDR (range, make_number (c - 1));
+               if (c_function)
+                 (*c_function) (arg, range);
+               else
+                 call2 (function, range, arg);
+               XSETCAR (range, Qnil);
+             }
+         }
+       else
+         {
+           if (NILP (XCAR (range)))
+             XSETCAR (range, make_number (c));
+         }
+      }
+}
+
+
+void
+map_char_table_for_charset (c_function, function, table, arg,
+                           charset, from, to)
+     void (*c_function) P_ ((Lisp_Object, Lisp_Object));
+     Lisp_Object function, table, arg;
+     struct charset *charset;
+     unsigned from, to;
+{
+  Lisp_Object range;
+  int c, i;
+  struct gcpro gcpro1;
+
+  range = Fcons (Qnil, Qnil);
+  GCPRO1 (range);
+
+  for (i = 0, c = 0; i < chartab_size[0]; i++, c += chartab_chars[0])
+    {
+      Lisp_Object this;
+
+      this = XCHAR_TABLE (table)->contents[i];
+      if (SUB_CHAR_TABLE_P (this))
+       map_sub_char_table_for_charset (c_function, function, this, arg,
+                                       range, charset, from, to);
+      else
+       {
+         if (! NILP (XCAR (range)))
+           {
+             XSETCDR (range, make_number (c - 1));
+             if (c_function)
+               (*c_function) (arg, range);
+             else
+               call2 (function, range, arg);
+           }
+         XSETCAR (range, Qnil);
+       }
+    }
+  if (! NILP (XCAR (range)))
+    {
+      XSETCDR (range, make_number (c - 1));
+      if (c_function)
+       (*c_function) (arg, range);
+      else
+       call2 (function, range, arg);
+    }
+
+  UNGCPRO;
+}
+
+\f
+void
+syms_of_chartab ()
+{
+  defsubr (&Smake_char_table);
+  defsubr (&Schar_table_parent);
+  defsubr (&Schar_table_subtype);
+  defsubr (&Sset_char_table_parent);
+  defsubr (&Schar_table_extra_slot);
+  defsubr (&Sset_char_table_extra_slot);
+  defsubr (&Schar_table_range);
+  defsubr (&Sset_char_table_range);
+  defsubr (&Sset_char_table_default);
+  defsubr (&Soptimize_char_table);
+  defsubr (&Smap_char_table);
+}
+
+/* arch-tag: 18b5b560-7ab5-4108-b09e-d5dd65dc6fda
+   (do not change this comment) */
index b89074fbc5e05b3a213986e9eaeeb2b5c9a75d41..45b3f87fff2ddf22de1cc0717f96057be4326c0b 100644 (file)
@@ -24,7 +24,7 @@ Boston, MA 02110-1301, USA.  */
 #include "lisp.h"
 #include "commands.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "syntax.h"
 #include "window.h"
 #include "keyboard.h"
@@ -327,11 +327,11 @@ Whichever character you type to run this command is inserted.  */)
   CHECK_NUMBER (n);
 
   /* Barf if the key that invoked this was not a character.  */
-  if (!INTEGERP (last_command_char))
+  if (!CHARACTERP (last_command_char))
     bitch_at_user ();
   {
     int character = translate_char (Vtranslation_table_for_input,
-                                   XINT (last_command_char), 0, 0, 0);
+                                   XINT (last_command_char));
     if (XINT (n) >= 2 && NILP (current_buffer->overwrite_mode))
       {
        int modified_char = character;
@@ -395,7 +395,6 @@ internal_self_insert (c, noautofill)
   /* At first, get multi-byte form of C in STR.  */
   if (!NILP (current_buffer->enable_multibyte_characters))
     {
-      c = unibyte_char_to_multibyte (c);
       len = CHAR_STRING (c, str);
       if (len == 1)
        /* If C has modifier bits, this makes C an appropriate
@@ -472,10 +471,19 @@ internal_self_insert (c, noautofill)
        }
       hairy = 2;
     }
+
+  if (NILP (current_buffer->enable_multibyte_characters))
+    MAKE_CHAR_MULTIBYTE (c);
+  synt = SYNTAX (c);
+
   if (!NILP (current_buffer->abbrev_mode)
-      && SYNTAX (c) != Sword
+      && synt != Sword
       && NILP (current_buffer->read_only)
-      && PT > BEGV && SYNTAX (XFASTINT (Fprevious_char ())) == Sword)
+      && PT > BEGV
+      && (!NILP (current_buffer->enable_multibyte_characters)
+         ? SYNTAX (XFASTINT (Fprevious_char ())) == Sword
+         : (SYNTAX (unibyte_char_to_multibyte (XFASTINT (Fprevious_char ())))
+            == Sword)))
     {
       int modiff = MODIFF;
       Lisp_Object sym;
@@ -544,7 +552,6 @@ internal_self_insert (c, noautofill)
       Vself_insert_face = Qnil;
     }
 
-  synt = SYNTAX (c);
   if ((synt == Sclose || synt == Smath)
       && !NILP (Vblink_paren_function) && INTERACTIVE
       && !noautofill)
index 331b94e30a63fd585264799c3be4c919a6e90453..bca75754156775cdf8c6d34f4d383c07e3412e1b 100644 (file)
@@ -1,10 +1,13 @@
-/* Coding system handler (conversion, detection, and etc).
+/* Coding system handler (conversion, detection, etc).
    Copyright (C) 2001, 2002, 2003, 2004, 2005,
                  2006, 2007 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
      2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
+   Copyright (C) 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -27,387 +30,329 @@ Boston, MA 02110-1301, USA.  */
 
   0. General comments
   1. Preamble
-  2. Emacs' internal format (emacs-mule) handlers
-  3. ISO2022 handlers
-  4. Shift-JIS and BIG5 handlers
-  5. CCL handlers
-  6. End-of-line handlers
-  7. C library functions
-  8. Emacs Lisp library functions
-  9. Post-amble
+  2. Emacs' internal format (emacs-utf-8) handlers
+  3. UTF-8 handlers
+  4. UTF-16 handlers
+  5. Charset-base coding systems handlers
+  6. emacs-mule (old Emacs' internal format) handlers
+  7. ISO2022 handlers
+  8. Shift-JIS and BIG5 handlers
+  9. CCL handlers
+  10. C library functions
+  11. Emacs Lisp library functions
+  12. Postamble
 
 */
 
-/*** 0. General comments ***/
+/*** 0. General comments ***
 
 
-/*** GENERAL NOTE on CODING SYSTEMS ***
+CODING SYSTEM
 
-  A coding system is an encoding mechanism for one or more character
-  sets.  Here's a list of coding systems which Emacs can handle.  When
-  we say "decode", it means converting some other coding system to
-  Emacs' internal format (emacs-mule), and when we say "encode",
-  it means converting the coding system emacs-mule to some other
+  A coding system is an object for an encoding mechanism that contains
+  information about how to convert byte sequences to character
+  sequences and vice versa.  When we say "decode", it means converting
+  a byte sequence of a specific coding system into a character
+  sequence that is represented by Emacs' internal coding system
+  `emacs-utf-8', and when we say "encode", it means converting a
+  character sequence of emacs-utf-8 to a byte sequence of a specific
   coding system.
 
-  0. Emacs' internal format (emacs-mule)
+  In Emacs Lisp, a coding system is represented by a Lisp symbol.  In
+  C level, a coding system is represented by a vector of attributes
+  stored in the hash table Vcharset_hash_table.  The conversion from
+  coding system symbol to attributes vector is done by looking up
+  Vcharset_hash_table by the symbol.
+
+  Coding systems are classified into the following types depending on
+  the encoding mechanism.  Here's a brief description of the types.
+
+  o UTF-8
+
+  o UTF-16
 
-  Emacs itself holds a multi-lingual character in buffers and strings
-  in a special format.  Details are described in section 2.
+  o Charset-base coding system
 
-  1. ISO2022
+  A coding system defined by one or more (coded) character sets.
+  Decoding and encoding are done by a code converter defined for each
+  character set.
+
+  o Old Emacs internal format (emacs-mule)
+
+  The coding system adopted by old versions of Emacs (20 and 21).
+
+  o ISO2022-base coding system
 
   The most famous coding system for multiple character sets.  X's
-  Compound Text, various EUCs (Extended Unix Code), and coding
-  systems used in Internet communication such as ISO-2022-JP are
-  all variants of ISO2022.  Details are described in section 3.
+  Compound Text, various EUCs (Extended Unix Code), and coding systems
+  used in the Internet communication such as ISO-2022-JP are all
+  variants of ISO2022.
 
-  2. SJIS (or Shift-JIS or MS-Kanji-Code)
+  o SJIS (or Shift-JIS or MS-Kanji-Code)
 
   A coding system to encode character sets: ASCII, JISX0201, and
   JISX0208.  Widely used for PC's in Japan.  Details are described in
-  section 4.
+  section 8.
 
-  3. BIG5
+  o BIG5
 
-  A coding system to encode the character sets ASCII and Big5.  Widely
+  A coding system to encode character sets: ASCII and Big5.  Widely
   used for Chinese (mainly in Taiwan and Hong Kong).  Details are
-  described in section 4.  In this file, when we write "BIG5"
-  (all uppercase), we mean the coding system, and when we write
-  "Big5" (capitalized), we mean the character set.
+  described in section 8.  In this file, when we write "big5" (all
+  lowercase), we mean the coding system, and when we write "Big5"
+  (capitalized), we mean the character set.
 
-  4. Raw text
+  o CCL
 
-  A coding system for text containing random 8-bit code.  Emacs does
-  no code conversion on such text except for end-of-line format.
+  If a user wants to decode/encode text encoded in a coding system
+  not listed above, he can supply a decoder and an encoder for it in
+  CCL (Code Conversion Language) programs.  Emacs executes the CCL
+  program while decoding/encoding.
 
-  5. Other
+  o Raw-text
 
-  If a user wants to read/write text encoded in a coding system not
-  listed above, he can supply a decoder and an encoder for it as CCL
-  (Code Conversion Language) programs.  Emacs executes the CCL program
-  while reading/writing.
+  A coding system for text containing raw eight-bit data.  Emacs
+  treats each byte of source text as a character (except for
+  end-of-line conversion).
 
-  Emacs represents a coding system by a Lisp symbol that has a property
-  `coding-system'.  But, before actually using the coding system, the
-  information about it is set in a structure of type `struct
-  coding_system' for rapid processing.  See section 6 for more details.
+  o No-conversion
 
-*/
+  Like raw text, but don't do end-of-line conversion.
 
-/*** GENERAL NOTES on END-OF-LINE FORMAT ***
 
-  How end-of-line of text is encoded depends on the operating system.
-  For instance, Unix's format is just one byte of `line-feed' code,
+END-OF-LINE FORMAT
+
+  How text end-of-line is encoded depends on operating system.  For
+  instance, Unix's format is just one byte of LF (line-feed) code,
   whereas DOS's format is two-byte sequence of `carriage-return' and
   `line-feed' codes.  MacOS's format is usually one byte of
   `carriage-return'.
 
   Since text character encoding and end-of-line encoding are
-  independent, any coding system described above can have any
-  end-of-line format.  So Emacs has information about end-of-line
-  format in each coding-system.  See section 6 for more details.
+  independent, any coding system described above can take any format
+  of end-of-line (except for no-conversion).
+
+STRUCT CODING_SYSTEM
+
+  Before using a coding system for code conversion (i.e. decoding and
+  encoding), we setup a structure of type `struct coding_system'.
+  This structure keeps various information about a specific code
+  conversion (e.g. the location of source and destination data).
 
 */
 
+/* COMMON MACROS */
+
+
 /*** GENERAL NOTES on `detect_coding_XXX ()' functions ***
 
-  These functions check if a text between SRC and SRC_END is encoded
-  in the coding system category XXX.  Each returns an integer value in
-  which appropriate flag bits for the category XXX are set.  The flag
-  bits are defined in macros CODING_CATEGORY_MASK_XXX.  Below is the
-  template for these functions.  If MULTIBYTEP is nonzero, 8-bit codes
-  of the range 0x80..0x9F are in multibyte form.  */
+  These functions check if a byte sequence specified as a source in
+  CODING conforms to the format of XXX, and update the members of
+  DETECT_INFO.
+
+  Return 1 if the byte sequence conforms to XXX, otherwise return 0.
+
+  Below is the template of these functions.  */
+
 #if 0
-int
-detect_coding_emacs_mule (src, src_end, multibytep)
-     unsigned char *src, *src_end;
-     int multibytep;
+static int
+detect_coding_XXX (coding, detect_info)
+     struct coding_system *coding;
+     struct coding_detection_info *detect_info;
 {
-  ...
+  const unsigned char *src = coding->source;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int multibytep = coding->src_multibyte;
+  int consumed_chars = 0;
+  int found = 0;
+  ...;
+
+  while (1)
+    {
+      /* Get one byte from the source.  If the souce is exausted, jump
+        to no_more_source:.  */
+      ONE_MORE_BYTE (c);
+
+      if (! __C_conforms_to_XXX___ (c))
+       break;
+      if (! __C_strongly_suggests_XXX__ (c))
+       found = CATEGORY_MASK_XXX;
+    }
+  /* The byte sequence is invalid for XXX.  */
+  detect_info->rejected |= CATEGORY_MASK_XXX;
+  return 0;
+
+ no_more_source:
+  /* The source exausted successfully.  */
+  detect_info->found |= found;
+  return 1;
 }
 #endif
 
 /*** GENERAL NOTES on `decode_coding_XXX ()' functions ***
 
-  These functions decode SRC_BYTES length of unibyte text at SOURCE
-  encoded in CODING to Emacs' internal format.  The resulting
-  multibyte text goes to a place pointed to by DESTINATION, the length
-  of which should not exceed DST_BYTES.
+  These functions decode a byte sequence specified as a source by
+  CODING.  The resulting multibyte text goes to a place pointed to by
+  CODING->charbuf, the length of which should not exceed
+  CODING->charbuf_size;
 
-  These functions set the information about original and decoded texts
-  in the members `produced', `produced_char', `consumed', and
-  `consumed_char' of the structure *CODING.  They also set the member
-  `result' to one of CODING_FINISH_XXX indicating how the decoding
-  finished.
+  These functions set the information of original and decoded texts in
+  CODING->consumed, CODING->consumed_char, and CODING->charbuf_used.
+  They also set CODING->result to one of CODING_RESULT_XXX indicating
+  how the decoding is finished.
 
-  DST_BYTES zero means that the source area and destination area are
-  overlapped, which means that we can produce a decoded text until it
-  reaches the head of the not-yet-decoded source text.
+  Below is the template of these functions.  */
 
-  Below is a template for these functions.  */
 #if 0
 static void
-decode_coding_XXX (coding, source, destination, src_bytes, dst_bytes)
+decode_coding_XXXX (coding)
      struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char *destination;
-     int src_bytes, dst_bytes;
 {
-  ...
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  /* SRC_BASE remembers the start position in source in each loop.
+     The loop will be exited when there's not enough source code, or
+     when there's no room in CHARBUF for a decoded character.  */
+  const unsigned char *src_base;
+  /* A buffer to produce decoded characters.  */
+  int *charbuf = coding->charbuf + coding->charbuf_used;
+  int *charbuf_end = coding->charbuf + coding->charbuf_size;
+  int multibytep = coding->src_multibyte;
+
+  while (1)
+    {
+      src_base = src;
+      if (charbuf < charbuf_end)
+       /* No more room to produce a decoded character.  */
+       break;
+      ONE_MORE_BYTE (c);
+      /* Decode it. */
+    }
+
+ no_more_source:
+  if (src_base < src_end
+      && coding->mode & CODING_MODE_LAST_BLOCK)
+    /* If the source ends by partial bytes to construct a character,
+       treat them as eight-bit raw data.  */
+    while (src_base < src_end && charbuf < charbuf_end)
+      *charbuf++ = *src_base++;
+  /* Remember how many bytes and characters we consumed.  If the
+     source is multibyte, the bytes and chars are not identical.  */
+  coding->consumed = coding->consumed_char = src_base - coding->source;
+  /* Remember how many characters we produced.  */
+  coding->charbuf_used = charbuf - coding->charbuf;
 }
 #endif
 
 /*** GENERAL NOTES on `encode_coding_XXX ()' functions ***
 
-  These functions encode SRC_BYTES length text at SOURCE from Emacs'
-  internal multibyte format to CODING.  The resulting unibyte text
+  These functions encode SRC_BYTES length text at SOURCE of Emacs'
+  internal multibyte format by CODING.  The resulting byte sequence
   goes to a place pointed to by DESTINATION, the length of which
   should not exceed DST_BYTES.
 
-  These functions set the information about original and encoded texts
-  in the members `produced', `produced_char', `consumed', and
-  `consumed_char' of the structure *CODING.  They also set the member
-  `result' to one of CODING_FINISH_XXX indicating how the encoding
-  finished.
+  These functions set the information of original and encoded texts in
+  the members produced, produced_char, consumed, and consumed_char of
+  the structure *CODING.  They also set the member result to one of
+  CODING_RESULT_XXX indicating how the encoding finished.
 
-  DST_BYTES zero means that the source area and destination area are
-  overlapped, which means that we can produce encoded text until it
-  reaches at the head of the not-yet-encoded source text.
+  DST_BYTES zero means that source area and destination area are
+  overlapped, which means that we can produce encoded text until it
+  reaches at the head of not-yet-encoded source text.
 
-  Below is a template for these functions.  */
+  Below is a template of these functions.  */
 #if 0
 static void
-encode_coding_XXX (coding, source, destination, src_bytes, dst_bytes)
+encode_coding_XXX (coding)
      struct coding_system *coding;
-     unsigned char *source, *destination;
-     int src_bytes, dst_bytes;
 {
-  ...
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf->charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  unsigned char *adjusted_dst_end = dst_end - _MAX_BYTES_PRODUCED_IN_LOOP_;
+  int produced_chars = 0;
+
+  for (; charbuf < charbuf_end && dst < adjusted_dst_end; charbuf++)
+    {
+      int c = *charbuf;
+      /* Encode C into DST, and increment DST.  */
+    }
+ label_no_more_destination:
+  /* How many chars and bytes we produced.  */
+  coding->produced_char += produced_chars;
+  coding->produced = dst - coding->destination;
 }
 #endif
 
-/*** COMMONLY USED MACROS ***/
-
-/* The following two macros ONE_MORE_BYTE and TWO_MORE_BYTES safely
-   get one, two, and three bytes from the source text respectively.
-   If there are not enough bytes in the source, they jump to
-   `label_end_of_loop'.  The caller should set variables `coding',
-   `src' and `src_end' to appropriate pointer in advance.  These
-   macros are called from decoding routines `decode_coding_XXX', thus
-   it is assumed that the source text is unibyte.  */
-
-#define ONE_MORE_BYTE(c1)                                      \
-  do {                                                         \
-    if (src >= src_end)                                                \
-      {                                                                \
-       coding->result = CODING_FINISH_INSUFFICIENT_SRC;        \
-       goto label_end_of_loop;                                 \
-      }                                                                \
-    c1 = *src++;                                               \
-  } while (0)
-
-#define TWO_MORE_BYTES(c1, c2)                                 \
-  do {                                                         \
-    if (src + 1 >= src_end)                                    \
-      {                                                                \
-       coding->result = CODING_FINISH_INSUFFICIENT_SRC;        \
-       goto label_end_of_loop;                                 \
-      }                                                                \
-    c1 = *src++;                                               \
-    c2 = *src++;                                               \
-  } while (0)
-
-
-/* Like ONE_MORE_BYTE, but 8-bit bytes of data at SRC are in multibyte
-   form if MULTIBYTEP is nonzero.  In addition, if SRC is not less
-   than SRC_END, return with RET.  */
-
-#define ONE_MORE_BYTE_CHECK_MULTIBYTE(c1, multibytep, ret)     \
-  do {                                                         \
-    if (src >= src_end)                                                \
-      {                                                                \
-       coding->result = CODING_FINISH_INSUFFICIENT_SRC;        \
-       return ret;                                             \
-      }                                                                \
-    c1 = *src++;                                               \
-    if (multibytep && c1 == LEADING_CODE_8_BIT_CONTROL)                \
-      c1 = *src++ - 0x20;                                      \
-  } while (0)
-
-/* Set C to the next character at the source text pointed by `src'.
-   If there are not enough characters in the source, jump to
-   `label_end_of_loop'.  The caller should set variables `coding'
-   `src', `src_end', and `translation_table' to appropriate pointers
-   in advance.  This macro is used in encoding routines
-   `encode_coding_XXX', thus it assumes that the source text is in
-   multibyte form except for 8-bit characters.  8-bit characters are
-   in multibyte form if coding->src_multibyte is nonzero, else they
-   are represented by a single byte.  */
-
-#define ONE_MORE_CHAR(c)                                       \
-  do {                                                         \
-    int len = src_end - src;                                   \
-    int bytes;                                                 \
-    if (len <= 0)                                              \
-      {                                                                \
-       coding->result = CODING_FINISH_INSUFFICIENT_SRC;        \
-       goto label_end_of_loop;                                 \
-      }                                                                \
-    if (coding->src_multibyte                                  \
-       || UNIBYTE_STR_AS_MULTIBYTE_P (src, len, bytes))        \
-      c = STRING_CHAR_AND_LENGTH (src, len, bytes);            \
-    else                                                       \
-      c = *src, bytes = 1;                                     \
-    if (!NILP (translation_table))                             \
-      c = translate_char (translation_table, c, -1, 0, 0);     \
-    src += bytes;                                              \
-  } while (0)
-
-
-/* Produce a multibyte form of character C to `dst'.  Jump to
-   `label_end_of_loop' if there's not enough space at `dst'.
-
-   If we are now in the middle of a composition sequence, the decoded
-   character may be ALTCHAR (for the current composition).  In that
-   case, the character goes to coding->cmp_data->data instead of
-   `dst'.
-
-   This macro is used in decoding routines.  */
-
-#define EMIT_CHAR(c)                                                   \
-  do {                                                                 \
-    if (! COMPOSING_P (coding)                                         \
-       || coding->composing == COMPOSITION_RELATIVE                    \
-       || coding->composing == COMPOSITION_WITH_RULE)                  \
-      {                                                                        \
-       int bytes = CHAR_BYTES (c);                                     \
-       if ((dst + bytes) > (dst_bytes ? dst_end : src))                \
-         {                                                             \
-           coding->result = CODING_FINISH_INSUFFICIENT_DST;            \
-           goto label_end_of_loop;                                     \
-         }                                                             \
-       dst += CHAR_STRING (c, dst);                                    \
-       coding->produced_char++;                                        \
-      }                                                                        \
-                                                                       \
-    if (COMPOSING_P (coding)                                           \
-       && coding->composing != COMPOSITION_RELATIVE)                   \
-      {                                                                        \
-       CODING_ADD_COMPOSITION_COMPONENT (coding, c);                   \
-       coding->composition_rule_follows                                \
-         = coding->composing != COMPOSITION_WITH_ALTCHARS;             \
-      }                                                                        \
-  } while (0)
-
-
-#define EMIT_ONE_BYTE(c)                                       \
-  do {                                                         \
-    if (dst >= (dst_bytes ? dst_end : src))                    \
-      {                                                                \
-       coding->result = CODING_FINISH_INSUFFICIENT_DST;        \
-       goto label_end_of_loop;                                 \
-      }                                                                \
-    *dst++ = c;                                                        \
-  } while (0)
-
-#define EMIT_TWO_BYTES(c1, c2)                                 \
-  do {                                                         \
-    if (dst + 2 > (dst_bytes ? dst_end : src))                 \
-      {                                                                \
-       coding->result = CODING_FINISH_INSUFFICIENT_DST;        \
-       goto label_end_of_loop;                                 \
-      }                                                                \
-    *dst++ = c1, *dst++ = c2;                                  \
-  } while (0)
-
-#define EMIT_BYTES(from, to)                                   \
-  do {                                                         \
-    if (dst + (to - from) > (dst_bytes ? dst_end : src))       \
-      {                                                                \
-       coding->result = CODING_FINISH_INSUFFICIENT_DST;        \
-       goto label_end_of_loop;                                 \
-      }                                                                \
-    while (from < to)                                          \
-      *dst++ = *from++;                                                \
-  } while (0)
-
 \f
 /*** 1. Preamble ***/
 
-#ifdef emacs
 #include <config.h>
-#endif
-
 #include <stdio.h>
 
-#ifdef emacs
-
 #include "lisp.h"
 #include "buffer.h"
+#include "character.h"
 #include "charset.h"
-#include "composite.h"
 #include "ccl.h"
+#include "composite.h"
 #include "coding.h"
 #include "window.h"
-#include "intervals.h"
 #include "frame.h"
 #include "termhooks.h"
 
-#else  /* not emacs */
-
-#include "mulelib.h"
+Lisp_Object Vcoding_system_hash_table;
 
-#endif /* not emacs */
-
-Lisp_Object Qcoding_system, Qeol_type;
+Lisp_Object Qcoding_system, Qcoding_aliases, Qeol_type;
+Lisp_Object Qunix, Qdos;
+extern Lisp_Object Qmac;       /* frame.c */
 Lisp_Object Qbuffer_file_coding_system;
 Lisp_Object Qpost_read_conversion, Qpre_write_conversion;
+Lisp_Object Qdefault_char;
 Lisp_Object Qno_conversion, Qundecided;
+Lisp_Object Qcharset, Qiso_2022, Qutf_8, Qutf_16, Qshift_jis, Qbig5;
+Lisp_Object Qbig, Qlittle;
 Lisp_Object Qcoding_system_history;
-Lisp_Object Qsafe_chars;
 Lisp_Object Qvalid_codes;
-Lisp_Object Qascii_incompatible;
+Lisp_Object QCcategory, QCmnemonic, QCdefalut_char;
+Lisp_Object QCdecode_translation_table, QCencode_translation_table;
+Lisp_Object QCpost_read_conversion, QCpre_write_conversion;
+Lisp_Object QCascii_compatible_p;
 
 extern Lisp_Object Qinsert_file_contents, Qwrite_region;
 Lisp_Object Qcall_process, Qcall_process_region;
 Lisp_Object Qstart_process, Qopen_network_stream;
 Lisp_Object Qtarget_idx;
 
+Lisp_Object Qinsufficient_source, Qinconsistent_eol, Qinvalid_source;
+Lisp_Object Qinterrupted, Qinsufficient_memory;
+
 extern Lisp_Object Qcompletion_ignore_case;
 
 /* If a symbol has this property, evaluate the value to define the
    symbol as a coding system.  */
-Lisp_Object Qcoding_system_define_form;
-
-Lisp_Object Vselect_safe_coding_system_function;
+static Lisp_Object Qcoding_system_define_form;
 
 int coding_system_require_warning;
 
+Lisp_Object Vselect_safe_coding_system_function;
+
 /* Mnemonic string for each format of end-of-line.  */
 Lisp_Object eol_mnemonic_unix, eol_mnemonic_dos, eol_mnemonic_mac;
 /* Mnemonic string to indicate format of end-of-line is not yet
    decided.  */
 Lisp_Object eol_mnemonic_undecided;
 
-/* Format of end-of-line decided by system.  This is CODING_EOL_LF on
-   Unix, CODING_EOL_CRLF on DOS/Windows, and CODING_EOL_CR on Mac.
+/* Format of end-of-line decided by system.  This is Qunix on
+   Unix and Mac, Qdos on DOS/Windows.
    This has an effect only for external encoding (i.e. for output to
    file and process), not for in-buffer or Lisp string encoding.  */
-int system_eol_type;
+static Lisp_Object system_eol_type;
 
 #ifdef emacs
 
-/* Information about which coding system is safe for which chars.
-   The value has the form (GENERIC-LIST . NON-GENERIC-ALIST).
-
-   GENERIC-LIST is a list of generic coding systems which can encode
-   any characters.
-
-   NON-GENERIC-ALIST is an alist of non generic coding systems vs the
-   corresponding char table that contains safe chars.  */
-Lisp_Object Vcoding_system_safe_chars;
-
 Lisp_Object Vcoding_system_list, Vcoding_system_alist;
 
 Lisp_Object Qcoding_system_p, Qcoding_system_error;
@@ -415,8 +360,7 @@ Lisp_Object Qcoding_system_p, Qcoding_system_error;
 /* Coding system emacs-mule and raw-text are for converting only
    end-of-line format.  */
 Lisp_Object Qemacs_mule, Qraw_text;
-
-Lisp_Object Qutf_8;
+Lisp_Object Qutf_8_emacs;
 
 /* Coding-systems are handed between Emacs Lisp programs and C internal
    routines by the following three variables.  */
@@ -426,7 +370,8 @@ Lisp_Object Vcoding_system_for_read;
 Lisp_Object Vcoding_system_for_write;
 /* Coding-system actually used in the latest I/O.  */
 Lisp_Object Vlast_coding_system_used;
-
+/* Set to non-nil when an error is detected while code conversion.  */
+Lisp_Object Vlast_code_conversion_error;
 /* A vector of length 256 which contains information about special
    Latin codes (especially for dealing with Microsoft codes).  */
 Lisp_Object Vlatin_extra_code_table;
@@ -444,9 +389,6 @@ int inherit_process_coding_system;
    terminal coding system is nil.  */
 struct coding_system safe_terminal_coding;
 
-/* Default coding system to be used to write a file.  */
-struct coding_system default_buffer_file_coding;
-
 Lisp_Object Vfile_coding_system_alist;
 Lisp_Object Vprocess_coding_system_alist;
 Lisp_Object Vnetwork_coding_system_alist;
@@ -455,42 +397,6 @@ Lisp_Object Vlocale_coding_system;
 
 #endif /* emacs */
 
-Lisp_Object Qcoding_category, Qcoding_category_index;
-
-/* List of symbols `coding-category-xxx' ordered by priority.  */
-Lisp_Object Vcoding_category_list;
-
-/* Table of coding categories (Lisp symbols).  */
-Lisp_Object Vcoding_category_table;
-
-/* Table of names of symbol for each coding-category.  */
-char *coding_category_name[CODING_CATEGORY_IDX_MAX] = {
-  "coding-category-emacs-mule",
-  "coding-category-sjis",
-  "coding-category-iso-7",
-  "coding-category-iso-7-tight",
-  "coding-category-iso-8-1",
-  "coding-category-iso-8-2",
-  "coding-category-iso-7-else",
-  "coding-category-iso-8-else",
-  "coding-category-ccl",
-  "coding-category-big5",
-  "coding-category-utf-8",
-  "coding-category-utf-16-be",
-  "coding-category-utf-16-le",
-  "coding-category-raw-text",
-  "coding-category-binary"
-};
-
-/* Table of pointers to coding systems corresponding to each coding
-   categories.  */
-struct coding_system *coding_system_table[CODING_CATEGORY_IDX_MAX];
-
-/* Table of coding category masks.  Nth element is a mask for a coding
-   category of which priority is Nth.  */
-static
-int coding_priorities[CODING_CATEGORY_IDX_MAX];
-
 /* Flag to tell if we look up translation table on character code
    conversion.  */
 Lisp_Object Venable_character_translation;
@@ -505,7 +411,7 @@ Lisp_Object Qtranslation_table_for_decode;
 Lisp_Object Qtranslation_table_for_encode;
 
 /* Alist of charsets vs revision number.  */
-Lisp_Object Vcharset_revision_alist;
+static Lisp_Object Vcharset_revision_table;
 
 /* Default coding systems used for process I/O.  */
 Lisp_Object Vdefault_process_coding_system;
@@ -513,696 +419,1867 @@ Lisp_Object Vdefault_process_coding_system;
 /* Char table for translating Quail and self-inserting input.  */
 Lisp_Object Vtranslation_table_for_input;
 
-/* Global flag to tell that we can't call post-read-conversion and
-   pre-write-conversion functions.  Usually the value is zero, but it
-   is set to 1 temporarily while such functions are running.  This is
-   to avoid infinite recursive call.  */
-static int inhibit_pre_post_conversion;
+/* Two special coding systems.  */
+Lisp_Object Vsjis_coding_system;
+Lisp_Object Vbig5_coding_system;
+
+/* ISO2022 section */
+
+#define CODING_ISO_INITIAL(coding, reg)                        \
+  (XINT (AREF (AREF (CODING_ID_ATTRS ((coding)->id),   \
+                    coding_attr_iso_initial),          \
+              reg)))
+
+
+#define CODING_ISO_REQUEST(coding, charset_id) \
+  ((charset_id <= (coding)->max_charset_id     \
+    ? (coding)->safe_charsets[charset_id]      \
+    : -1))
+
+
+#define CODING_ISO_FLAGS(coding)       \
+  ((coding)->spec.iso_2022.flags)
+#define CODING_ISO_DESIGNATION(coding, reg)    \
+  ((coding)->spec.iso_2022.current_designation[reg])
+#define CODING_ISO_INVOCATION(coding, plane)   \
+  ((coding)->spec.iso_2022.current_invocation[plane])
+#define CODING_ISO_SINGLE_SHIFTING(coding)     \
+  ((coding)->spec.iso_2022.single_shifting)
+#define CODING_ISO_BOL(coding) \
+  ((coding)->spec.iso_2022.bol)
+#define CODING_ISO_INVOKED_CHARSET(coding, plane)      \
+  CODING_ISO_DESIGNATION ((coding), CODING_ISO_INVOCATION ((coding), (plane)))
+
+/* Control characters of ISO2022.  */
+                       /* code */      /* function */
+#define ISO_CODE_LF    0x0A            /* line-feed */
+#define ISO_CODE_CR    0x0D            /* carriage-return */
+#define ISO_CODE_SO    0x0E            /* shift-out */
+#define ISO_CODE_SI    0x0F            /* shift-in */
+#define ISO_CODE_SS2_7 0x19            /* single-shift-2 for 7-bit code */
+#define ISO_CODE_ESC   0x1B            /* escape */
+#define ISO_CODE_SS2   0x8E            /* single-shift-2 */
+#define ISO_CODE_SS3   0x8F            /* single-shift-3 */
+#define ISO_CODE_CSI   0x9B            /* control-sequence-introducer */
+
+/* All code (1-byte) of ISO2022 is classified into one of the
+   followings.  */
+enum iso_code_class_type
+  {
+    ISO_control_0,             /* Control codes in the range
+                                  0x00..0x1F and 0x7F, except for the
+                                  following 5 codes.  */
+    ISO_shift_out,             /* ISO_CODE_SO (0x0E) */
+    ISO_shift_in,              /* ISO_CODE_SI (0x0F) */
+    ISO_single_shift_2_7,      /* ISO_CODE_SS2_7 (0x19) */
+    ISO_escape,                        /* ISO_CODE_SO (0x1B) */
+    ISO_control_1,             /* Control codes in the range
+                                  0x80..0x9F, except for the
+                                  following 3 codes.  */
+    ISO_single_shift_2,                /* ISO_CODE_SS2 (0x8E) */
+    ISO_single_shift_3,                /* ISO_CODE_SS3 (0x8F) */
+    ISO_control_sequence_introducer, /* ISO_CODE_CSI (0x9B) */
+    ISO_0x20_or_0x7F,          /* Codes of the values 0x20 or 0x7F.  */
+    ISO_graphic_plane_0,       /* Graphic codes in the range 0x21..0x7E.  */
+    ISO_0xA0_or_0xFF,          /* Codes of the values 0xA0 or 0xFF.  */
+    ISO_graphic_plane_1                /* Graphic codes in the range 0xA1..0xFE.  */
+  };
 
-Lisp_Object Qchar_coding_system;
+/** The macros CODING_ISO_FLAG_XXX defines a flag bit of the
+    `iso-flags' attribute of an iso2022 coding system.  */
 
-/* Return `safe-chars' property of CODING_SYSTEM (symbol).  Don't check
-   its validity.  */
+/* If set, produce long-form designation sequence (e.g. ESC $ ( A)
+   instead of the correct short-form sequence (e.g. ESC $ A).  */
+#define CODING_ISO_FLAG_LONG_FORM      0x0001
 
-Lisp_Object
-coding_safe_chars (coding_system)
-     Lisp_Object coding_system;
-{
-  Lisp_Object coding_spec, plist, safe_chars;
+/* If set, reset graphic planes and registers at end-of-line to the
+   initial state.  */
+#define CODING_ISO_FLAG_RESET_AT_EOL   0x0002
 
-  coding_spec = Fget (coding_system, Qcoding_system);
-  plist = XVECTOR (coding_spec)->contents[3];
-  safe_chars = Fplist_get (XVECTOR (coding_spec)->contents[3], Qsafe_chars);
-  return (CHAR_TABLE_P (safe_chars) ? safe_chars : Qt);
-}
+/* If set, reset graphic planes and registers before any control
+   characters to the initial state.  */
+#define CODING_ISO_FLAG_RESET_AT_CNTL  0x0004
 
-#define CODING_SAFE_CHAR_P(safe_chars, c) \
-  (EQ (safe_chars, Qt) || !NILP (CHAR_TABLE_REF (safe_chars, c)))
+/* If set, encode by 7-bit environment.  */
+#define CODING_ISO_FLAG_SEVEN_BITS     0x0008
 
-\f
-/*** 2. Emacs internal format (emacs-mule) handlers ***/
+/* If set, use locking-shift function.  */
+#define CODING_ISO_FLAG_LOCKING_SHIFT  0x0010
 
-/* Emacs' internal format for representation of multiple character
-   sets is a kind of multi-byte encoding, i.e. characters are
-   represented by variable-length sequences of one-byte codes.
+/* If set, use single-shift function.  Overwrite
+   CODING_ISO_FLAG_LOCKING_SHIFT.  */
+#define CODING_ISO_FLAG_SINGLE_SHIFT   0x0020
 
-   ASCII characters and control characters (e.g. `tab', `newline') are
-   represented by one-byte sequences which are their ASCII codes, in
-   the range 0x00 through 0x7F.
+/* If set, use designation escape sequence.  */
+#define CODING_ISO_FLAG_DESIGNATION    0x0040
 
-   8-bit characters of the range 0x80..0x9F are represented by
-   two-byte sequences of LEADING_CODE_8_BIT_CONTROL and (their 8-bit
-   code + 0x20).
+/* If set, produce revision number sequence.  */
+#define CODING_ISO_FLAG_REVISION       0x0080
 
-   8-bit characters of the range 0xA0..0xFF are represented by
-   one-byte sequences which are their 8-bit code.
+/* If set, produce ISO6429's direction specifying sequence.  */
+#define CODING_ISO_FLAG_DIRECTION      0x0100
 
-   The other characters are represented by a sequence of `base
-   leading-code', optional `extended leading-code', and one or two
-   `position-code's.  The length of the sequence is determined by the
-   base leading-code.  Leading-code takes the range 0x81 through 0x9D,
-   whereas extended leading-code and position-code take the range 0xA0
-   through 0xFF.  See `charset.h' for more details about leading-code
-   and position-code.
+/* If set, assume designation states are reset at beginning of line on
+   output.  */
+#define CODING_ISO_FLAG_INIT_AT_BOL    0x0200
 
-   --- CODE RANGE of Emacs' internal format ---
-   character set       range
-   -------------       -----
-   ascii               0x00..0x7F
-   eight-bit-control   LEADING_CODE_8_BIT_CONTROL + 0xA0..0xBF
-   eight-bit-graphic   0xA0..0xBF
-   ELSE                        0x81..0x9D + [0xA0..0xFF]+
-   ---------------------------------------------
+/* If set, designation sequence should be placed at beginning of line
+   on output.  */
+#define CODING_ISO_FLAG_DESIGNATE_AT_BOL 0x0400
 
-   As this is the internal character representation, the format is
-   usually not used externally (i.e. in a file or in a data sent to a
-   process).  But, it is possible to have a text externally in this
-   format (i.e. by encoding by the coding system `emacs-mule').
+/* If set, do not encode unsafe charactes on output.  */
+#define CODING_ISO_FLAG_SAFE           0x0800
 
-   In that case, a sequence of one-byte codes has a slightly different
-   form.
+/* If set, extra latin codes (128..159) are accepted as a valid code
+   on input.  */
+#define CODING_ISO_FLAG_LATIN_EXTRA    0x1000
 
-   Firstly, all characters in eight-bit-control are represented by
-   one-byte sequences which are their 8-bit code.
+#define CODING_ISO_FLAG_COMPOSITION    0x2000
 
-   Next, character composition data are represented by the byte
-   sequence of the form: 0x80 METHOD BYTES CHARS COMPONENT ...,
-   where,
-       METHOD is 0xF0 plus one of composition method (enum
-       composition_method),
+#define CODING_ISO_FLAG_EUC_TW_SHIFT   0x4000
 
-       BYTES is 0xA0 plus the byte length of these composition data,
+#define CODING_ISO_FLAG_USE_ROMAN      0x8000
 
-       CHARS is 0xA0 plus the number of characters composed by these
-       data,
+#define CODING_ISO_FLAG_USE_OLDJIS     0x10000
 
-       COMPONENTs are characters of multibyte form or composition
-       rules encoded by two-byte of ASCII codes.
+#define CODING_ISO_FLAG_FULL_SUPPORT   0x100000
 
-   In addition, for backward compatibility, the following formats are
-   also recognized as composition data on decoding.
+/* A character to be produced on output if encoding of the original
+   character is prohibited by CODING_ISO_FLAG_SAFE.  */
+#define CODING_INHIBIT_CHARACTER_SUBSTITUTION  '?'
 
-   0x80 MSEQ ...
-   0x80 0xFF MSEQ RULE MSEQ RULE ... MSEQ
 
-   Here,
-       MSEQ is a multibyte form but in these special format:
-         ASCII: 0xA0 ASCII_CODE+0x80,
-         other: LEADING_CODE+0x20 FOLLOWING-BYTE ...,
-       RULE is a one byte code of the range 0xA0..0xF0 that
-       represents a composition rule.
-  */
+/* UTF-16 section */
+#define CODING_UTF_16_BOM(coding)      \
+  ((coding)->spec.utf_16.bom)
 
-enum emacs_code_class_type emacs_code_class[256];
+#define CODING_UTF_16_ENDIAN(coding)   \
+  ((coding)->spec.utf_16.endian)
 
-/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
-   Check if a text is encoded in Emacs' internal format.  If it is,
-   return CODING_CATEGORY_MASK_EMACS_MULE, else return 0.  */
+#define CODING_UTF_16_SURROGATE(coding)        \
+  ((coding)->spec.utf_16.surrogate)
 
-static int
-detect_coding_emacs_mule (src, src_end, multibytep)
-      unsigned char *src, *src_end;
-      int multibytep;
-{
-  unsigned char c;
-  int composing = 0;
-  /* Dummy for ONE_MORE_BYTE.  */
-  struct coding_system dummy_coding;
-  struct coding_system *coding = &dummy_coding;
 
-  while (1)
-    {
-      ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep,
-                                    CODING_CATEGORY_MASK_EMACS_MULE);
-      if (composing)
-       {
-         if (c < 0xA0)
-           composing = 0;
-         else if (c == 0xA0)
-           {
-             ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, 0);
-             c &= 0x7F;
-           }
-         else
-           c -= 0x20;
-       }
+/* CCL section */
+#define CODING_CCL_DECODER(coding)     \
+  AREF (CODING_ID_ATTRS ((coding)->id), coding_attr_ccl_decoder)
+#define CODING_CCL_ENCODER(coding)     \
+  AREF (CODING_ID_ATTRS ((coding)->id), coding_attr_ccl_encoder)
+#define CODING_CCL_VALIDS(coding)                                         \
+  (SDATA (AREF (CODING_ID_ATTRS ((coding)->id), coding_attr_ccl_valids)))
 
-      if (c < 0x20)
-       {
-         if (c == ISO_CODE_ESC || c == ISO_CODE_SI || c == ISO_CODE_SO)
-           return 0;
-       }
-      else if (c >= 0x80 && c < 0xA0)
-       {
-         if (c == 0x80)
-           /* Old leading code for a composite character.  */
-           composing = 1;
-         else
-           {
-             unsigned char *src_base = src - 1;
-             int bytes;
+/* Index for each coding category in `coding_categories' */
 
-             if (!UNIBYTE_STR_AS_MULTIBYTE_P (src_base, src_end - src_base,
-                                              bytes))
-               return 0;
-             src = src_base + bytes;
-           }
-       }
-    }
-}
+enum coding_category
+  {
+    coding_category_iso_7,
+    coding_category_iso_7_tight,
+    coding_category_iso_8_1,
+    coding_category_iso_8_2,
+    coding_category_iso_7_else,
+    coding_category_iso_8_else,
+    coding_category_utf_8,
+    coding_category_utf_16_auto,
+    coding_category_utf_16_be,
+    coding_category_utf_16_le,
+    coding_category_utf_16_be_nosig,
+    coding_category_utf_16_le_nosig,
+    coding_category_charset,
+    coding_category_sjis,
+    coding_category_big5,
+    coding_category_ccl,
+    coding_category_emacs_mule,
+    /* All above are targets of code detection.  */
+    coding_category_raw_text,
+    coding_category_undecided,
+    coding_category_max
+  };
+
+/* Definitions of flag bits used in detect_coding_XXXX.  */
+#define CATEGORY_MASK_ISO_7            (1 << coding_category_iso_7)
+#define CATEGORY_MASK_ISO_7_TIGHT      (1 << coding_category_iso_7_tight)
+#define CATEGORY_MASK_ISO_8_1          (1 << coding_category_iso_8_1)
+#define CATEGORY_MASK_ISO_8_2          (1 << coding_category_iso_8_2)
+#define CATEGORY_MASK_ISO_7_ELSE       (1 << coding_category_iso_7_else)
+#define CATEGORY_MASK_ISO_8_ELSE       (1 << coding_category_iso_8_else)
+#define CATEGORY_MASK_UTF_8            (1 << coding_category_utf_8)
+#define CATEGORY_MASK_UTF_16_AUTO      (1 << coding_category_utf_16_auto)
+#define CATEGORY_MASK_UTF_16_BE                (1 << coding_category_utf_16_be)
+#define CATEGORY_MASK_UTF_16_LE                (1 << coding_category_utf_16_le)
+#define CATEGORY_MASK_UTF_16_BE_NOSIG  (1 << coding_category_utf_16_be_nosig)
+#define CATEGORY_MASK_UTF_16_LE_NOSIG  (1 << coding_category_utf_16_le_nosig)
+#define CATEGORY_MASK_CHARSET          (1 << coding_category_charset)
+#define CATEGORY_MASK_SJIS             (1 << coding_category_sjis)
+#define CATEGORY_MASK_BIG5             (1 << coding_category_big5)
+#define CATEGORY_MASK_CCL              (1 << coding_category_ccl)
+#define CATEGORY_MASK_EMACS_MULE       (1 << coding_category_emacs_mule)
+#define CATEGORY_MASK_RAW_TEXT         (1 << coding_category_raw_text)
+
+/* This value is returned if detect_coding_mask () find nothing other
+   than ASCII characters.  */
+#define CATEGORY_MASK_ANY              \
+  (CATEGORY_MASK_ISO_7                 \
+   | CATEGORY_MASK_ISO_7_TIGHT         \
+   | CATEGORY_MASK_ISO_8_1             \
+   | CATEGORY_MASK_ISO_8_2             \
+   | CATEGORY_MASK_ISO_7_ELSE          \
+   | CATEGORY_MASK_ISO_8_ELSE          \
+   | CATEGORY_MASK_UTF_8               \
+   | CATEGORY_MASK_UTF_16_BE           \
+   | CATEGORY_MASK_UTF_16_LE           \
+   | CATEGORY_MASK_UTF_16_BE_NOSIG     \
+   | CATEGORY_MASK_UTF_16_LE_NOSIG     \
+   | CATEGORY_MASK_CHARSET             \
+   | CATEGORY_MASK_SJIS                        \
+   | CATEGORY_MASK_BIG5                        \
+   | CATEGORY_MASK_CCL                 \
+   | CATEGORY_MASK_EMACS_MULE)
+
+
+#define CATEGORY_MASK_ISO_7BIT \
+  (CATEGORY_MASK_ISO_7 | CATEGORY_MASK_ISO_7_TIGHT)
+
+#define CATEGORY_MASK_ISO_8BIT \
+  (CATEGORY_MASK_ISO_8_1 | CATEGORY_MASK_ISO_8_2)
+
+#define CATEGORY_MASK_ISO_ELSE \
+  (CATEGORY_MASK_ISO_7_ELSE | CATEGORY_MASK_ISO_8_ELSE)
+
+#define CATEGORY_MASK_ISO_ESCAPE       \
+  (CATEGORY_MASK_ISO_7                 \
+   | CATEGORY_MASK_ISO_7_TIGHT         \
+   | CATEGORY_MASK_ISO_7_ELSE          \
+   | CATEGORY_MASK_ISO_8_ELSE)
+
+#define CATEGORY_MASK_ISO      \
+  (  CATEGORY_MASK_ISO_7BIT    \
+     | CATEGORY_MASK_ISO_8BIT  \
+     | CATEGORY_MASK_ISO_ELSE)
+
+#define CATEGORY_MASK_UTF_16           \
+  (CATEGORY_MASK_UTF_16_BE             \
+   | CATEGORY_MASK_UTF_16_LE           \
+   | CATEGORY_MASK_UTF_16_BE_NOSIG     \
+   | CATEGORY_MASK_UTF_16_LE_NOSIG)
+
+
+/* List of symbols `coding-category-xxx' ordered by priority.  This
+   variable is exposed to Emacs Lisp.  */
+static Lisp_Object Vcoding_category_list;
+
+/* Table of coding categories (Lisp symbols).  This variable is for
+   internal use oly.  */
+static Lisp_Object Vcoding_category_table;
+
+/* Table of coding-categories ordered by priority.  */
+static enum coding_category coding_priorities[coding_category_max];
+
+/* Nth element is a coding context for the coding system bound to the
+   Nth coding category.  */
+static struct coding_system coding_categories[coding_category_max];
+
+/*** Commonly used macros and functions ***/
+
+#ifndef min
+#define min(a, b) ((a) < (b) ? (a) : (b))
+#endif
+#ifndef max
+#define max(a, b) ((a) > (b) ? (a) : (b))
+#endif
+
+#define CODING_GET_INFO(coding, attrs, charset_list)   \
+  do {                                                 \
+    (attrs) = CODING_ID_ATTRS ((coding)->id);          \
+    (charset_list) = CODING_ATTR_CHARSET_LIST (attrs); \
+  } while (0)
 
 
-/* Record the starting position START and METHOD of one composition.  */
+/* Safely get one byte from the source text pointed by SRC which ends
+   at SRC_END, and set C to that byte.  If there are not enough bytes
+   in the source, it jumps to `no_more_source'.  If multibytep is
+   nonzero, and a multibyte character is found at SRC, set C to the
+   negative value of the character code.  The caller should declare
+   and set these variables appropriately in advance:
+       src, src_end, multibytep */
 
-#define CODING_ADD_COMPOSITION_START(coding, start, method)    \
-  do {                                                         \
-    struct composition_data *cmp_data = coding->cmp_data;      \
-    int *data = cmp_data->data + cmp_data->used;               \
-    coding->cmp_data_start = cmp_data->used;                   \
-    data[0] = -1;                                              \
-    data[1] = cmp_data->char_offset + start;                   \
-    data[3] = (int) method;                                    \
-    cmp_data->used += 4;                                       \
+#define ONE_MORE_BYTE(c)                               \
+  do {                                                 \
+    if (src == src_end)                                        \
+      {                                                        \
+       if (src_base < src)                             \
+         record_conversion_result                      \
+           (coding, CODING_RESULT_INSUFFICIENT_SRC);   \
+       goto no_more_source;                            \
+      }                                                        \
+    c = *src++;                                                \
+    if (multibytep && (c & 0x80))                      \
+      {                                                        \
+       if ((c & 0xFE) == 0xC0)                         \
+         c = ((c & 1) << 6) | *src++;                  \
+       else                                            \
+         {                                             \
+           src--;                                      \
+           c = - string_char (src, &src, NULL);        \
+           record_conversion_result                    \
+             (coding, CODING_RESULT_INVALID_SRC);      \
+         }                                             \
+      }                                                        \
+    consumed_chars++;                                  \
   } while (0)
 
-/* Record the ending position END of the current composition.  */
 
-#define CODING_ADD_COMPOSITION_END(coding, end)                        \
-  do {                                                         \
-    struct composition_data *cmp_data = coding->cmp_data;      \
-    int *data = cmp_data->data + coding->cmp_data_start;       \
-    data[0] = cmp_data->used - coding->cmp_data_start;         \
-    data[2] = cmp_data->char_offset + end;                     \
+#define ONE_MORE_BYTE_NO_CHECK(c)                      \
+  do {                                                 \
+    c = *src++;                                                \
+    if (multibytep && (c & 0x80))                      \
+      {                                                        \
+       if ((c & 0xFE) == 0xC0)                         \
+         c = ((c & 1) << 6) | *src++;                  \
+       else                                            \
+         {                                             \
+           src--;                                      \
+           c = - string_char (src, &src, NULL);        \
+           record_conversion_result                    \
+             (coding, CODING_RESULT_INVALID_SRC);      \
+         }                                             \
+      }                                                        \
+    consumed_chars++;                                  \
   } while (0)
 
-/* Record one COMPONENT (alternate character or composition rule).  */
 
-#define CODING_ADD_COMPOSITION_COMPONENT(coding, component)            \
-  do {                                                                 \
-    coding->cmp_data->data[coding->cmp_data->used++] = component;      \
-    if (coding->cmp_data->used - coding->cmp_data_start                        \
-       == COMPOSITION_DATA_MAX_BUNCH_LENGTH)                           \
-      {                                                                        \
-       CODING_ADD_COMPOSITION_END (coding, coding->produced_char);     \
-       coding->composing = COMPOSITION_NO;                             \
-      }                                                                        \
-  } while (0)
+/* Store a byte C in the place pointed by DST and increment DST to the
+   next free point, and increment PRODUCED_CHARS.  The caller should
+   assure that C is 0..127, and declare and set the variable `dst'
+   appropriately in advance.
+*/
 
 
-/* Get one byte from a data pointed by SRC and increment SRC.  If SRC
-   is not less than SRC_END, return -1 without incrementing Src.  */
+#define EMIT_ONE_ASCII_BYTE(c) \
+  do {                         \
+    produced_chars++;          \
+    *dst++ = (c);              \
+  } while (0)
 
-#define SAFE_ONE_MORE_BYTE() (src >= src_end ? -1 : *src++)
 
+/* Like EMIT_ONE_ASCII_BYTE byt store two bytes; C1 and C2.  */
 
-/* Decode a character represented as a component of composition
-   sequence of Emacs 20 style at SRC.  Set C to that character, store
-   its multibyte form sequence at P, and set P to the end of that
-   sequence.  If no valid character is found, set C to -1.  */
+#define EMIT_TWO_ASCII_BYTES(c1, c2)   \
+  do {                                 \
+    produced_chars += 2;               \
+    *dst++ = (c1), *dst++ = (c2);      \
+  } while (0)
 
-#define DECODE_EMACS_MULE_COMPOSITION_CHAR(c, p)               \
-  do {                                                         \
-    int bytes;                                                 \
-                                                               \
-    c = SAFE_ONE_MORE_BYTE ();                                 \
-    if (c < 0)                                                 \
-      break;                                                   \
-    if (CHAR_HEAD_P (c))                                       \
-      c = -1;                                                  \
-    else if (c == 0xA0)                                                \
-      {                                                                \
-       c = SAFE_ONE_MORE_BYTE ();                              \
-       if (c < 0xA0)                                           \
-         c = -1;                                               \
-       else                                                    \
-         {                                                     \
-           c -= 0x80;                                          \
-           *p++ = c;                                           \
-         }                                                     \
-      }                                                                \
-    else if (BASE_LEADING_CODE_P (c - 0x20))                   \
-      {                                                                \
-       unsigned char *p0 = p;                                  \
-                                                               \
-       c -= 0x20;                                              \
-       *p++ = c;                                               \
-       bytes = BYTES_BY_CHAR_HEAD (c);                         \
-       while (--bytes)                                         \
-         {                                                     \
-           c = SAFE_ONE_MORE_BYTE ();                          \
-           if (c < 0)                                          \
-             break;                                            \
-           *p++ = c;                                           \
-         }                                                     \
-       if (UNIBYTE_STR_AS_MULTIBYTE_P (p0, p - p0, bytes)      \
-           || (coding->flags /* We are recovering a file.  */  \
-               && p0[0] == LEADING_CODE_8_BIT_CONTROL          \
-               && ! CHAR_HEAD_P (p0[1])))                      \
-         c = STRING_CHAR (p0, bytes);                          \
-       else                                                    \
-         c = -1;                                               \
-      }                                                                \
-    else                                                       \
-      c = -1;                                                  \
+
+/* Store a byte C in the place pointed by DST and increment DST to the
+   next free point, and increment PRODUCED_CHARS.  If MULTIBYTEP is
+   nonzero, store in an appropriate multibyte from.  The caller should
+   declare and set the variables `dst' and `multibytep' appropriately
+   in advance.  */
+
+#define EMIT_ONE_BYTE(c)               \
+  do {                                 \
+    produced_chars++;                  \
+    if (multibytep)                    \
+      {                                        \
+       int ch = (c);                   \
+       if (ch >= 0x80)                 \
+         ch = BYTE8_TO_CHAR (ch);      \
+       CHAR_STRING_ADVANCE (ch, dst);  \
+      }                                        \
+    else                               \
+      *dst++ = (c);                    \
   } while (0)
 
 
-/* Decode a composition rule represented as a component of composition
-   sequence of Emacs 20 style at SRC.  Set C to the rule.  If not
-   valid rule is found, set C to -1.  */
+/* Like EMIT_ONE_BYTE, but emit two bytes; C1 and C2.  */
+
+#define EMIT_TWO_BYTES(c1, c2)         \
+  do {                                 \
+    produced_chars += 2;               \
+    if (multibytep)                    \
+      {                                        \
+       int ch;                         \
+                                       \
+       ch = (c1);                      \
+       if (ch >= 0x80)                 \
+         ch = BYTE8_TO_CHAR (ch);      \
+       CHAR_STRING_ADVANCE (ch, dst);  \
+       ch = (c2);                      \
+       if (ch >= 0x80)                 \
+         ch = BYTE8_TO_CHAR (ch);      \
+       CHAR_STRING_ADVANCE (ch, dst);  \
+      }                                        \
+    else                               \
+      {                                        \
+       *dst++ = (c1);                  \
+       *dst++ = (c2);                  \
+      }                                        \
+  } while (0)
 
-#define DECODE_EMACS_MULE_COMPOSITION_RULE(c)          \
-  do {                                                 \
-    c = SAFE_ONE_MORE_BYTE ();                         \
-    c -= 0xA0;                                         \
-    if (c < 0 || c >= 81)                              \
-      c = -1;                                          \
-    else                                               \
-      {                                                        \
-       gref = c / 9, nref = c % 9;                     \
-       c = COMPOSITION_ENCODE_RULE (gref, nref);       \
-      }                                                        \
+
+#define EMIT_THREE_BYTES(c1, c2, c3)   \
+  do {                                 \
+    EMIT_ONE_BYTE (c1);                        \
+    EMIT_TWO_BYTES (c2, c3);           \
   } while (0)
 
 
-/* Decode composition sequence encoded by `emacs-mule' at the source
-   pointed by SRC.  SRC_END is the end of source.  Store information
-   of the composition in CODING->cmp_data.
+#define EMIT_FOUR_BYTES(c1, c2, c3, c4)                \
+  do {                                         \
+    EMIT_TWO_BYTES (c1, c2);                   \
+    EMIT_TWO_BYTES (c3, c4);                   \
+  } while (0)
 
-   For backward compatibility, decode also a composition sequence of
-   Emacs 20 style.  In that case, the composition sequence contains
-   characters that should be extracted into a buffer or string.  Store
-   those characters at *DESTINATION in multibyte form.
 
-   If we encounter an invalid byte sequence, return 0.
-   If we encounter an insufficient source or destination, or
-   insufficient space in CODING->cmp_data, return 1.
-   Otherwise, return consumed bytes in the source.
+/* Prototypes for static functions.  */
+static void record_conversion_result P_ ((struct coding_system *coding,
+                                         enum coding_result_code result));
+static int detect_coding_utf_8 P_ ((struct coding_system *,
+                                   struct coding_detection_info *info));
+static void decode_coding_utf_8 P_ ((struct coding_system *));
+static int encode_coding_utf_8 P_ ((struct coding_system *));
+
+static int detect_coding_utf_16 P_ ((struct coding_system *,
+                                    struct coding_detection_info *info));
+static void decode_coding_utf_16 P_ ((struct coding_system *));
+static int encode_coding_utf_16 P_ ((struct coding_system *));
+
+static int detect_coding_iso_2022 P_ ((struct coding_system *,
+                                      struct coding_detection_info *info));
+static void decode_coding_iso_2022 P_ ((struct coding_system *));
+static int encode_coding_iso_2022 P_ ((struct coding_system *));
+
+static int detect_coding_emacs_mule P_ ((struct coding_system *,
+                                        struct coding_detection_info *info));
+static void decode_coding_emacs_mule P_ ((struct coding_system *));
+static int encode_coding_emacs_mule P_ ((struct coding_system *));
+
+static int detect_coding_sjis P_ ((struct coding_system *,
+                                  struct coding_detection_info *info));
+static void decode_coding_sjis P_ ((struct coding_system *));
+static int encode_coding_sjis P_ ((struct coding_system *));
+
+static int detect_coding_big5 P_ ((struct coding_system *,
+                                  struct coding_detection_info *info));
+static void decode_coding_big5 P_ ((struct coding_system *));
+static int encode_coding_big5 P_ ((struct coding_system *));
+
+static int detect_coding_ccl P_ ((struct coding_system *,
+                                 struct coding_detection_info *info));
+static void decode_coding_ccl P_ ((struct coding_system *));
+static int encode_coding_ccl P_ ((struct coding_system *));
+
+static void decode_coding_raw_text P_ ((struct coding_system *));
+static int encode_coding_raw_text P_ ((struct coding_system *));
+
+static void coding_set_source P_ ((struct coding_system *));
+static void coding_set_destination P_ ((struct coding_system *));
+static void coding_alloc_by_realloc P_ ((struct coding_system *, EMACS_INT));
+static void coding_alloc_by_making_gap P_ ((struct coding_system *,
+                                           EMACS_INT, EMACS_INT));
+static unsigned char *alloc_destination P_ ((struct coding_system *,
+                                            EMACS_INT, unsigned char *));
+static void setup_iso_safe_charsets P_ ((Lisp_Object));
+static unsigned char *encode_designation_at_bol P_ ((struct coding_system *,
+                                                    int *, int *,
+                                                    unsigned char *));
+static int detect_eol P_ ((const unsigned char *,
+                          EMACS_INT, enum coding_category));
+static Lisp_Object adjust_coding_eol_type P_ ((struct coding_system *, int));
+static void decode_eol P_ ((struct coding_system *));
+static Lisp_Object get_translation_table P_ ((Lisp_Object, int, int *));
+static Lisp_Object get_translation P_ ((Lisp_Object, int *, int *,
+                                       int, int *, int *));
+static int produce_chars P_ ((struct coding_system *, Lisp_Object, int));
+static INLINE void produce_composition P_ ((struct coding_system *, int *,
+                                           EMACS_INT));
+static INLINE void produce_charset P_ ((struct coding_system *, int *,
+                                       EMACS_INT));
+static void produce_annotation P_ ((struct coding_system *, EMACS_INT));
+static int decode_coding P_ ((struct coding_system *));
+static INLINE int *handle_composition_annotation P_ ((EMACS_INT, EMACS_INT,
+                                                     struct coding_system *, 
+                                                     int *, EMACS_INT *));
+static INLINE int *handle_charset_annotation P_ ((EMACS_INT, EMACS_INT,
+                                                 struct coding_system *,
+                                                 int *, EMACS_INT *));
+static void consume_chars P_ ((struct coding_system *, Lisp_Object, int));
+static int encode_coding P_ ((struct coding_system *));
+static Lisp_Object make_conversion_work_buffer P_ ((int));
+static Lisp_Object code_conversion_restore P_ ((Lisp_Object));
+static INLINE int char_encodable_p P_ ((int, Lisp_Object));
+static Lisp_Object make_subsidiaries P_ ((Lisp_Object));
 
-*/
-static INLINE int
-decode_composition_emacs_mule (coding, src, src_end,
-                              destination, dst_end, dst_bytes)
-     struct coding_system *coding;
-     const unsigned char *src, *src_end;
-     unsigned char **destination, *dst_end;
-     int dst_bytes;
+static void
+record_conversion_result (struct coding_system *coding,
+                         enum coding_result_code result)
 {
-  unsigned char *dst = *destination;
-  int method, data_len, nchars;
-  const unsigned char *src_base = src++;
-  /* Store components of composition.  */
-  int component[COMPOSITION_DATA_MAX_BUNCH_LENGTH];
-  int ncomponent;
-  /* Store multibyte form of characters to be composed.  This is for
-     Emacs 20 style composition sequence.  */
-  unsigned char buf[MAX_COMPOSITION_COMPONENTS * MAX_MULTIBYTE_LENGTH];
-  unsigned char *bufp = buf;
-  int c, i, gref, nref;
-
-  if (coding->cmp_data->used + COMPOSITION_DATA_MAX_BUNCH_LENGTH
-      >= COMPOSITION_DATA_SIZE)
+  coding->result = result;
+  switch (result)
     {
-      coding->result = CODING_FINISH_INSUFFICIENT_CMP;
-      return -1;
+    case CODING_RESULT_INSUFFICIENT_SRC:
+      Vlast_code_conversion_error = Qinsufficient_source;
+      break;
+    case CODING_RESULT_INCONSISTENT_EOL:
+      Vlast_code_conversion_error = Qinconsistent_eol;
+      break;
+    case CODING_RESULT_INVALID_SRC:
+      Vlast_code_conversion_error = Qinvalid_source;
+      break;
+    case CODING_RESULT_INTERRUPT:
+      Vlast_code_conversion_error = Qinterrupted;
+      break;
+    case CODING_RESULT_INSUFFICIENT_MEM:
+      Vlast_code_conversion_error = Qinsufficient_memory;
+      break;
+    default:
+      Vlast_code_conversion_error = intern ("Unknown error");
     }
+}
 
-  ONE_MORE_BYTE (c);
-  if (c - 0xF0 >= COMPOSITION_RELATIVE
-          && c - 0xF0 <= COMPOSITION_WITH_RULE_ALTCHARS)
-    {
-      int with_rule;
+#define CODING_DECODE_CHAR(coding, src, src_base, src_end, charset, code, c) \
+  do {                                                                      \
+    charset_map_loaded = 0;                                                 \
+    c = DECODE_CHAR (charset, code);                                        \
+    if (charset_map_loaded)                                                 \
+      {                                                                             \
+       const unsigned char *orig = coding->source;                          \
+       EMACS_INT offset;                                                    \
+                                                                            \
+       coding_set_source (coding);                                          \
+       offset = coding->source - orig;                                      \
+       src += offset;                                                       \
+       src_base += offset;                                                  \
+       src_end += offset;                                                   \
+      }                                                                             \
+  } while (0)
 
-      method = c - 0xF0;
-      with_rule = (method == COMPOSITION_WITH_RULE
-                  || method == COMPOSITION_WITH_RULE_ALTCHARS);
-      ONE_MORE_BYTE (c);
-      data_len = c - 0xA0;
-      if (data_len < 4
-         || src_base + data_len > src_end)
-       return 0;
+
+#define ASSURE_DESTINATION(bytes)                              \
+  do {                                                         \
+    if (dst + (bytes) >= dst_end)                              \
+      {                                                                \
+       int more_bytes = charbuf_end - charbuf + (bytes);       \
+                                                               \
+       dst = alloc_destination (coding, more_bytes, dst);      \
+       dst_end = coding->destination + coding->dst_bytes;      \
+      }                                                                \
+  } while (0)
+
+
+
+static void
+coding_set_source (coding)
+     struct coding_system *coding;
+{
+  if (BUFFERP (coding->src_object))
+    {
+      struct buffer *buf = XBUFFER (coding->src_object);
+
+      if (coding->src_pos < 0)
+       coding->source = BUF_GAP_END_ADDR (buf) + coding->src_pos_byte;
+      else
+       coding->source = BUF_BYTE_ADDRESS (buf, coding->src_pos_byte);
+    }
+  else if (STRINGP (coding->src_object))
+    {
+      coding->source = SDATA (coding->src_object) + coding->src_pos_byte;
+    }
+  else
+    /* Otherwise, the source is C string and is never relocated
+       automatically.  Thus we don't have to update anything.  */
+    ;
+}
+
+static void
+coding_set_destination (coding)
+     struct coding_system *coding;
+{
+  if (BUFFERP (coding->dst_object))
+    {
+      if (coding->src_pos < 0)
+       {
+         coding->destination = BEG_ADDR + coding->dst_pos_byte - 1;
+         coding->dst_bytes = (GAP_END_ADDR
+                              - (coding->src_bytes - coding->consumed)
+                              - coding->destination);
+       }
+      else
+       {
+         /* We are sure that coding->dst_pos_byte is before the gap
+            of the buffer. */
+         coding->destination = (BUF_BEG_ADDR (XBUFFER (coding->dst_object))
+                                + coding->dst_pos_byte - 1);
+         coding->dst_bytes = (BUF_GAP_END_ADDR (XBUFFER (coding->dst_object))
+                              - coding->destination);
+       }
+    }
+  else
+    /* Otherwise, the destination is C string and is never relocated
+       automatically.  Thus we don't have to update anything.  */
+    ;
+}
+
+
+static void
+coding_alloc_by_realloc (coding, bytes)
+     struct coding_system *coding;
+     EMACS_INT bytes;
+{
+  coding->destination = (unsigned char *) xrealloc (coding->destination,
+                                                   coding->dst_bytes + bytes);
+  coding->dst_bytes += bytes;
+}
+
+static void
+coding_alloc_by_making_gap (coding, offset, bytes)
+     struct coding_system *coding;
+     EMACS_INT offset, bytes;
+{
+  if (BUFFERP (coding->dst_object)
+      && EQ (coding->src_object, coding->dst_object))
+    {
+      EMACS_INT add = offset + (coding->src_bytes - coding->consumed);
+
+      GPT += offset, GPT_BYTE += offset;
+      GAP_SIZE -= add; ZV += add; Z += add; ZV_BYTE += add; Z_BYTE += add;
+      make_gap (bytes);
+      GAP_SIZE += add; ZV -= add; Z -= add; ZV_BYTE -= add; Z_BYTE -= add;
+      GPT -= offset, GPT_BYTE -= offset;
+    }
+  else
+    {
+      Lisp_Object this_buffer;
+
+      this_buffer = Fcurrent_buffer ();
+      set_buffer_internal (XBUFFER (coding->dst_object));
+      make_gap (bytes);
+      set_buffer_internal (XBUFFER (this_buffer));
+    }
+}
+
+
+static unsigned char *
+alloc_destination (coding, nbytes, dst)
+     struct coding_system *coding;
+     EMACS_INT nbytes;
+     unsigned char *dst;
+{
+  EMACS_INT offset = dst - coding->destination;
+
+  if (BUFFERP (coding->dst_object))
+    coding_alloc_by_making_gap (coding, offset, nbytes);
+  else
+    coding_alloc_by_realloc (coding, nbytes);
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding_set_destination (coding);
+  dst = coding->destination + offset;
+  return dst;
+}
+
+/** Macros for annotations.  */
+
+/* Maximum length of annotation data (sum of annotations for
+   composition and charset).  */
+#define MAX_ANNOTATION_LENGTH (4 + (MAX_COMPOSITION_COMPONENTS * 2) - 1 + 4)
+
+/* An annotation data is stored in the array coding->charbuf in this
+   format:
+     [ -LENGTH ANNOTATION_MASK NCHARS ... ]
+   LENGTH is the number of elements in the annotation.
+   ANNOTATION_MASK is one of CODING_ANNOTATE_XXX_MASK.
+   NCHARS is the number of characters in the text annotated.
+
+   The format of the following elements depend on ANNOTATION_MASK.
+
+   In the case of CODING_ANNOTATE_COMPOSITION_MASK, these elements
+   follows:
+     ... METHOD [ COMPOSITION-COMPONENTS ... ]
+   METHOD is one of enum composition_method.
+   Optionnal COMPOSITION-COMPONENTS are characters and composition
+   rules.
+
+   In the case of CODING_ANNOTATE_CHARSET_MASK, one element CHARSET-ID
+   follows.  */
+
+#define ADD_ANNOTATION_DATA(buf, len, mask, nchars)    \
+  do {                                                 \
+    *(buf)++ = -(len);                                 \
+    *(buf)++ = (mask);                                 \
+    *(buf)++ = (nchars);                               \
+    coding->annotated = 1;                             \
+  } while (0);
+
+#define ADD_COMPOSITION_DATA(buf, nchars, method)                          \
+  do {                                                                     \
+    ADD_ANNOTATION_DATA (buf, 4, CODING_ANNOTATE_COMPOSITION_MASK, nchars); \
+    *buf++ = method;                                                       \
+  } while (0)
+
+
+#define ADD_CHARSET_DATA(buf, nchars, id)                              \
+  do {                                                                 \
+    ADD_ANNOTATION_DATA (buf, 4, CODING_ANNOTATE_CHARSET_MASK, nchars);        \
+    *buf++ = id;                                                       \
+  } while (0)
+
+\f
+/*** 2. Emacs' internal format (emacs-utf-8) ***/
+
+
+
+\f
+/*** 3. UTF-8 ***/
+
+/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
+   Check if a text is encoded in UTF-8.  If it is, return 1, else
+   return 0.  */
+
+#define UTF_8_1_OCTET_P(c)         ((c) < 0x80)
+#define UTF_8_EXTRA_OCTET_P(c)     (((c) & 0xC0) == 0x80)
+#define UTF_8_2_OCTET_LEADING_P(c) (((c) & 0xE0) == 0xC0)
+#define UTF_8_3_OCTET_LEADING_P(c) (((c) & 0xF0) == 0xE0)
+#define UTF_8_4_OCTET_LEADING_P(c) (((c) & 0xF8) == 0xF0)
+#define UTF_8_5_OCTET_LEADING_P(c) (((c) & 0xFC) == 0xF8)
+
+static int
+detect_coding_utf_8 (coding, detect_info)
+     struct coding_system *coding;
+     struct coding_detection_info *detect_info;
+{
+  const unsigned char *src = coding->source, *src_base;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int multibytep = coding->src_multibyte;
+  int consumed_chars = 0;
+  int found = 0;
+
+  detect_info->checked |= CATEGORY_MASK_UTF_8;
+  /* A coding system of this category is always ASCII compatible.  */
+  src += coding->head_ascii;
+
+  while (1)
+    {
+      int c, c1, c2, c3, c4;
+
+      src_base = src;
+      ONE_MORE_BYTE (c);
+      if (c < 0 || UTF_8_1_OCTET_P (c))
+       continue;
+      ONE_MORE_BYTE (c1);
+      if (c1 < 0 || ! UTF_8_EXTRA_OCTET_P (c1))
+       break;
+      if (UTF_8_2_OCTET_LEADING_P (c))
+       {
+         found = CATEGORY_MASK_UTF_8;
+         continue;
+       }
+      ONE_MORE_BYTE (c2);
+      if (c2 < 0 || ! UTF_8_EXTRA_OCTET_P (c2))
+       break;
+      if (UTF_8_3_OCTET_LEADING_P (c))
+       {
+         found = CATEGORY_MASK_UTF_8;
+         continue;
+       }
+      ONE_MORE_BYTE (c3);
+      if (c3 < 0 || ! UTF_8_EXTRA_OCTET_P (c3))
+       break;
+      if (UTF_8_4_OCTET_LEADING_P (c))
+       {
+         found = CATEGORY_MASK_UTF_8;
+         continue;
+       }
+      ONE_MORE_BYTE (c4);
+      if (c4 < 0 || ! UTF_8_EXTRA_OCTET_P (c4))
+       break;
+      if (UTF_8_5_OCTET_LEADING_P (c))
+       {
+         found = CATEGORY_MASK_UTF_8;
+         continue;
+       }
+      break;
+    }
+  detect_info->rejected |= CATEGORY_MASK_UTF_8;
+  return 0;
+
+ no_more_source:
+  if (src_base < src && coding->mode & CODING_MODE_LAST_BLOCK)
+    {
+      detect_info->rejected |= CATEGORY_MASK_UTF_8;
+      return 0;
+    }
+  detect_info->found |= found;
+  return 1;
+}
+
+
+static void
+decode_coding_utf_8 (coding)
+     struct coding_system *coding;
+{
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  const unsigned char *src_base;
+  int *charbuf = coding->charbuf + coding->charbuf_used;
+  int *charbuf_end = coding->charbuf + coding->charbuf_size;
+  int consumed_chars = 0, consumed_chars_base;
+  int multibytep = coding->src_multibyte;
+  Lisp_Object attr, charset_list;
+
+  CODING_GET_INFO (coding, attr, charset_list);
+
+  while (1)
+    {
+      int c, c1, c2, c3, c4, c5;
+
+      src_base = src;
+      consumed_chars_base = consumed_chars;
+
+      if (charbuf >= charbuf_end)
+       break;
+
+      ONE_MORE_BYTE (c1);
+      if (c1 < 0)
+       {
+         c = - c1;
+       }
+      else if (UTF_8_1_OCTET_P(c1))
+       {
+         c = c1;
+       }
+      else
+       {
+         ONE_MORE_BYTE (c2);
+         if (c2 < 0 || ! UTF_8_EXTRA_OCTET_P (c2))
+           goto invalid_code;
+         if (UTF_8_2_OCTET_LEADING_P (c1))
+           {
+             c = ((c1 & 0x1F) << 6) | (c2 & 0x3F);
+             /* Reject overlong sequences here and below.  Encoders
+                producing them are incorrect, they can be misleading,
+                and they mess up read/write invariance.  */
+             if (c < 128)
+               goto invalid_code;
+           }
+         else
+           {
+             ONE_MORE_BYTE (c3);
+             if (c3 < 0 || ! UTF_8_EXTRA_OCTET_P (c3))
+               goto invalid_code;
+             if (UTF_8_3_OCTET_LEADING_P (c1))
+               {
+                 c = (((c1 & 0xF) << 12)
+                      | ((c2 & 0x3F) << 6) | (c3 & 0x3F));
+                 if (c < 0x800
+                     || (c >= 0xd800 && c < 0xe000)) /* surrogates (invalid) */
+                   goto invalid_code;
+               }
+             else
+               {
+                 ONE_MORE_BYTE (c4);
+                 if (c4 < 0 || ! UTF_8_EXTRA_OCTET_P (c4))
+                   goto invalid_code;
+                 if (UTF_8_4_OCTET_LEADING_P (c1))
+                   {
+                   c = (((c1 & 0x7) << 18) | ((c2 & 0x3F) << 12)
+                        | ((c3 & 0x3F) << 6) | (c4 & 0x3F));
+                   if (c < 0x10000)
+                     goto invalid_code;
+                   }
+                 else
+                   {
+                     ONE_MORE_BYTE (c5);
+                     if (c5 < 0 || ! UTF_8_EXTRA_OCTET_P (c5))
+                       goto invalid_code;
+                     if (UTF_8_5_OCTET_LEADING_P (c1))
+                       {
+                         c = (((c1 & 0x3) << 24) | ((c2 & 0x3F) << 18)
+                              | ((c3 & 0x3F) << 12) | ((c4 & 0x3F) << 6)
+                              | (c5 & 0x3F));
+                         if ((c > MAX_CHAR) || (c < 0x200000))
+                           goto invalid_code;
+                       }
+                     else
+                       goto invalid_code;
+                   }
+               }
+           }
+       }
+
+      *charbuf++ = c;
+      continue;
+
+    invalid_code:
+      src = src_base;
+      consumed_chars = consumed_chars_base;
       ONE_MORE_BYTE (c);
-      nchars = c - 0xA0;
-      if (c < 1)
-       return 0;
-      for (ncomponent = 0; src < src_base + data_len; ncomponent++)
+      *charbuf++ = ASCII_BYTE_P (c) ? c : BYTE8_TO_CHAR (c);
+      coding->errors++;
+    }
+
+ no_more_source:
+  coding->consumed_char += consumed_chars_base;
+  coding->consumed = src_base - coding->source;
+  coding->charbuf_used = charbuf - coding->charbuf;
+}
+
+
+static int
+encode_coding_utf_8 (coding)
+     struct coding_system *coding;
+{
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int produced_chars = 0;
+  int c;
+
+  if (multibytep)
+    {
+      int safe_room = MAX_MULTIBYTE_LENGTH * 2;
+
+      while (charbuf < charbuf_end)
+       {
+         unsigned char str[MAX_MULTIBYTE_LENGTH], *p, *pend = str;
+
+         ASSURE_DESTINATION (safe_room);
+         c = *charbuf++;
+         if (CHAR_BYTE8_P (c))
+           {
+             c = CHAR_TO_BYTE8 (c);
+             EMIT_ONE_BYTE (c);
+           }
+         else
+           {
+             CHAR_STRING_ADVANCE (c, pend);
+             for (p = str; p < pend; p++)
+               EMIT_ONE_BYTE (*p);
+           }
+       }
+    }
+  else
+    {
+      int safe_room = MAX_MULTIBYTE_LENGTH;
+
+      while (charbuf < charbuf_end)
+       {
+         ASSURE_DESTINATION (safe_room);
+         c = *charbuf++;
+         if (CHAR_BYTE8_P (c))
+           *dst++ = CHAR_TO_BYTE8 (c);
+         else
+           dst += CHAR_STRING (c, dst);
+         produced_chars++;
+       }
+    }
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding->produced_char += produced_chars;
+  coding->produced = dst - coding->destination;
+  return 0;
+}
+
+
+/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
+   Check if a text is encoded in one of UTF-16 based coding systems.
+   If it is, return 1, else return 0.  */
+
+#define UTF_16_HIGH_SURROGATE_P(val) \
+  (((val) & 0xFC00) == 0xD800)
+
+#define UTF_16_LOW_SURROGATE_P(val) \
+  (((val) & 0xFC00) == 0xDC00)
+
+#define UTF_16_INVALID_P(val)  \
+  (((val) == 0xFFFE)           \
+   || ((val) == 0xFFFF)                \
+   || UTF_16_LOW_SURROGATE_P (val))
+
+
+static int
+detect_coding_utf_16 (coding, detect_info)
+     struct coding_system *coding;
+     struct coding_detection_info *detect_info;
+{
+  const unsigned char *src = coding->source, *src_base = src;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int multibytep = coding->src_multibyte;
+  int consumed_chars = 0;
+  int c1, c2;
+
+  detect_info->checked |= CATEGORY_MASK_UTF_16;
+  if (coding->mode & CODING_MODE_LAST_BLOCK
+      && (coding->src_chars & 1))
+    {
+      detect_info->rejected |= CATEGORY_MASK_UTF_16;
+      return 0;
+    }
+
+  ONE_MORE_BYTE (c1);
+  ONE_MORE_BYTE (c2);
+  if ((c1 == 0xFF) && (c2 == 0xFE))
+    {
+      detect_info->found |= (CATEGORY_MASK_UTF_16_LE
+                            | CATEGORY_MASK_UTF_16_AUTO);
+      detect_info->rejected |= (CATEGORY_MASK_UTF_16_BE
+                               | CATEGORY_MASK_UTF_16_BE_NOSIG
+                               | CATEGORY_MASK_UTF_16_LE_NOSIG);
+    }
+  else if ((c1 == 0xFE) && (c2 == 0xFF))
+    {
+      detect_info->found |= (CATEGORY_MASK_UTF_16_BE
+                            | CATEGORY_MASK_UTF_16_AUTO);
+      detect_info->rejected |= (CATEGORY_MASK_UTF_16_LE
+                               | CATEGORY_MASK_UTF_16_BE_NOSIG
+                               | CATEGORY_MASK_UTF_16_LE_NOSIG);
+    }
+  else if (c1 >= 0 && c2 >= 0)
+    {
+      detect_info->rejected
+       |= (CATEGORY_MASK_UTF_16_BE | CATEGORY_MASK_UTF_16_LE);
+    }
+ no_more_source:
+  return 1;
+}
+
+static void
+decode_coding_utf_16 (coding)
+     struct coding_system *coding;
+{
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  const unsigned char *src_base;
+  int *charbuf = coding->charbuf + coding->charbuf_used;
+  int *charbuf_end = coding->charbuf + coding->charbuf_size;
+  int consumed_chars = 0, consumed_chars_base;
+  int multibytep = coding->src_multibyte;
+  enum utf_16_bom_type bom = CODING_UTF_16_BOM (coding);
+  enum utf_16_endian_type endian = CODING_UTF_16_ENDIAN (coding);
+  int surrogate = CODING_UTF_16_SURROGATE (coding);
+  Lisp_Object attr, charset_list;
+
+  CODING_GET_INFO (coding, attr, charset_list);
+
+  if (bom == utf_16_with_bom)
+    {
+      int c, c1, c2;
+
+      src_base = src;
+      ONE_MORE_BYTE (c1);
+      ONE_MORE_BYTE (c2);
+      c = (c1 << 8) | c2;
+
+      if (endian == utf_16_big_endian
+         ? c != 0xFEFF : c != 0xFFFE)
+       {
+         /* The first two bytes are not BOM.  Treat them as bytes
+            for a normal character.  */
+         src = src_base;
+         coding->errors++;
+       }
+      CODING_UTF_16_BOM (coding) = utf_16_without_bom;
+    }
+  else if (bom == utf_16_detect_bom)
+    {
+      /* We have already tried to detect BOM and failed in
+        detect_coding.  */
+      CODING_UTF_16_BOM (coding) = utf_16_without_bom;
+    }
+
+  while (1)
+    {
+      int c, c1, c2;
+
+      src_base = src;
+      consumed_chars_base = consumed_chars;
+
+      if (charbuf + 2 >= charbuf_end)
+       break;
+
+      ONE_MORE_BYTE (c1);
+      if (c1 < 0)
+       {
+         *charbuf++ = -c1;
+         continue;
+       }
+      ONE_MORE_BYTE (c2);
+      if (c2 < 0)
+       {
+         *charbuf++ = ASCII_BYTE_P (c1) ? c1 : BYTE8_TO_CHAR (c1);
+         *charbuf++ = -c2;
+         continue;
+       }
+      c = (endian == utf_16_big_endian
+          ? ((c1 << 8) | c2) : ((c2 << 8) | c1));
+      if (surrogate)
+       {
+         if (! UTF_16_LOW_SURROGATE_P (c))
+           {
+             if (endian == utf_16_big_endian)
+               c1 = surrogate >> 8, c2 = surrogate & 0xFF;
+             else
+               c1 = surrogate & 0xFF, c2 = surrogate >> 8;
+             *charbuf++ = c1;
+             *charbuf++ = c2;
+             coding->errors++;
+             if (UTF_16_HIGH_SURROGATE_P (c))
+               CODING_UTF_16_SURROGATE (coding) = surrogate = c;
+             else
+               *charbuf++ = c;
+           }
+         else
+           {
+             c = ((surrogate - 0xD800) << 10) | (c - 0xDC00);
+             CODING_UTF_16_SURROGATE (coding) = surrogate = 0;
+             *charbuf++ = 0x10000 + c;
+           }
+       }
+      else
+       {
+         if (UTF_16_HIGH_SURROGATE_P (c))
+           CODING_UTF_16_SURROGATE (coding) = surrogate = c;
+         else
+           *charbuf++ = c;
+       }
+    }
+
+ no_more_source:
+  coding->consumed_char += consumed_chars_base;
+  coding->consumed = src_base - coding->source;
+  coding->charbuf_used = charbuf - coding->charbuf;
+}
+
+static int
+encode_coding_utf_16 (coding)
+     struct coding_system *coding;
+{
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int safe_room = 8;
+  enum utf_16_bom_type bom = CODING_UTF_16_BOM (coding);
+  int big_endian = CODING_UTF_16_ENDIAN (coding) == utf_16_big_endian;
+  int produced_chars = 0;
+  Lisp_Object attrs, charset_list;
+  int c;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+
+  if (bom != utf_16_without_bom)
+    {
+      ASSURE_DESTINATION (safe_room);
+      if (big_endian)
+       EMIT_TWO_BYTES (0xFE, 0xFF);
+      else
+       EMIT_TWO_BYTES (0xFF, 0xFE);
+      CODING_UTF_16_BOM (coding) = utf_16_without_bom;
+    }
+
+  while (charbuf < charbuf_end)
+    {
+      ASSURE_DESTINATION (safe_room);
+      c = *charbuf++;
+      if (c >= MAX_UNICODE_CHAR)
+       c = coding->default_char;
+
+      if (c < 0x10000)
+       {
+         if (big_endian)
+           EMIT_TWO_BYTES (c >> 8, c & 0xFF);
+         else
+           EMIT_TWO_BYTES (c & 0xFF, c >> 8);
+       }
+      else
+       {
+         int c1, c2;
+
+         c -= 0x10000;
+         c1 = (c >> 10) + 0xD800;
+         c2 = (c & 0x3FF) + 0xDC00;
+         if (big_endian)
+           EMIT_FOUR_BYTES (c1 >> 8, c1 & 0xFF, c2 >> 8, c2 & 0xFF);
+         else
+           EMIT_FOUR_BYTES (c1 & 0xFF, c1 >> 8, c2 & 0xFF, c2 >> 8);
+       }
+    }
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding->produced = dst - coding->destination;
+  coding->produced_char += produced_chars;
+  return 0;
+}
+
+\f
+/*** 6. Old Emacs' internal format (emacs-mule) ***/
+
+/* Emacs' internal format for representation of multiple character
+   sets is a kind of multi-byte encoding, i.e. characters are
+   represented by variable-length sequences of one-byte codes.
+
+   ASCII characters and control characters (e.g. `tab', `newline') are
+   represented by one-byte sequences which are their ASCII codes, in
+   the range 0x00 through 0x7F.
+
+   8-bit characters of the range 0x80..0x9F are represented by
+   two-byte sequences of LEADING_CODE_8_BIT_CONTROL and (their 8-bit
+   code + 0x20).
+
+   8-bit characters of the range 0xA0..0xFF are represented by
+   one-byte sequences which are their 8-bit code.
+
+   The other characters are represented by a sequence of `base
+   leading-code', optional `extended leading-code', and one or two
+   `position-code's.  The length of the sequence is determined by the
+   base leading-code.  Leading-code takes the range 0x81 through 0x9D,
+   whereas extended leading-code and position-code take the range 0xA0
+   through 0xFF.  See `charset.h' for more details about leading-code
+   and position-code.
+
+   --- CODE RANGE of Emacs' internal format ---
+   character set       range
+   -------------       -----
+   ascii               0x00..0x7F
+   eight-bit-control   LEADING_CODE_8_BIT_CONTROL + 0xA0..0xBF
+   eight-bit-graphic   0xA0..0xBF
+   ELSE                        0x81..0x9D + [0xA0..0xFF]+
+   ---------------------------------------------
+
+   As this is the internal character representation, the format is
+   usually not used externally (i.e. in a file or in a data sent to a
+   process).  But, it is possible to have a text externally in this
+   format (i.e. by encoding by the coding system `emacs-mule').
+
+   In that case, a sequence of one-byte codes has a slightly different
+   form.
+
+   At first, all characters in eight-bit-control are represented by
+   one-byte sequences which are their 8-bit code.
+
+   Next, character composition data are represented by the byte
+   sequence of the form: 0x80 METHOD BYTES CHARS COMPONENT ...,
+   where,
+       METHOD is 0xF0 plus one of composition method (enum
+       composition_method),
+
+       BYTES is 0xA0 plus a byte length of this composition data,
+
+       CHARS is 0x20 plus a number of characters composed by this
+       data,
+
+       COMPONENTs are characters of multibye form or composition
+       rules encoded by two-byte of ASCII codes.
+
+   In addition, for backward compatibility, the following formats are
+   also recognized as composition data on decoding.
+
+   0x80 MSEQ ...
+   0x80 0xFF MSEQ RULE MSEQ RULE ... MSEQ
+
+   Here,
+       MSEQ is a multibyte form but in these special format:
+         ASCII: 0xA0 ASCII_CODE+0x80,
+         other: LEADING_CODE+0x20 FOLLOWING-BYTE ...,
+       RULE is a one byte code of the range 0xA0..0xF0 that
+       represents a composition rule.
+  */
+
+char emacs_mule_bytes[256];
+
+int
+emacs_mule_char (coding, src, nbytes, nchars, id)
+     struct coding_system *coding;
+     const unsigned char *src;
+     int *nbytes, *nchars, *id;
+{
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  const unsigned char *src_base = src;
+  int multibytep = coding->src_multibyte;
+  struct charset *charset;
+  unsigned code;
+  int c;
+  int consumed_chars = 0;
+
+  ONE_MORE_BYTE (c);
+  if (c < 0)
+    {
+      c = -c;
+      charset = emacs_mule_charset[0];
+    }
+  else
+    {
+      if (c >= 0xA0)
+       {
+         /* Old style component character of a compostion.  */
+         if (c == 0xA0)
+           {
+             ONE_MORE_BYTE (c);
+             c -= 0x80;
+           }
+         else
+           c -= 0x20;
+       }
+
+      switch (emacs_mule_bytes[c])
        {
-         /* If it is longer than this, it can't be valid.  */
-         if (ncomponent >= COMPOSITION_DATA_MAX_BUNCH_LENGTH)
-           return 0;
+       case 2:
+         if (! (charset = emacs_mule_charset[c]))
+           goto invalid_code;
+         ONE_MORE_BYTE (c);
+         if (c < 0xA0)
+           goto invalid_code;
+         code = c & 0x7F;
+         break;
 
-         if (ncomponent % 2 && with_rule)
+       case 3:
+         if (c == EMACS_MULE_LEADING_CODE_PRIVATE_11
+             || c == EMACS_MULE_LEADING_CODE_PRIVATE_12)
            {
-             ONE_MORE_BYTE (gref);
-             gref -= 32;
-             ONE_MORE_BYTE (nref);
-             nref -= 32;
-             c = COMPOSITION_ENCODE_RULE (gref, nref);
+             ONE_MORE_BYTE (c);
+             if (c < 0xA0 || ! (charset = emacs_mule_charset[c]))
+               goto invalid_code;
+             ONE_MORE_BYTE (c);
+             if (c < 0xA0)
+               goto invalid_code;
+             code = c & 0x7F;
            }
          else
            {
-             int bytes;
-             if (UNIBYTE_STR_AS_MULTIBYTE_P (src, src_end - src, bytes)
-                 || (coding->flags /* We are recovering a file.  */
-                     && src[0] == LEADING_CODE_8_BIT_CONTROL
-                     && ! CHAR_HEAD_P (src[1])))
-               c = STRING_CHAR (src, bytes);
-             else
-               c = *src, bytes = 1;
-             src += bytes;
+             if (! (charset = emacs_mule_charset[c]))
+               goto invalid_code;
+             ONE_MORE_BYTE (c);
+             if (c < 0xA0)
+               goto invalid_code;
+             code = (c & 0x7F) << 8;
+             ONE_MORE_BYTE (c);
+             if (c < 0xA0)
+               goto invalid_code;
+             code |= c & 0x7F;
            }
-         component[ncomponent] = c;
+         break;
+
+       case 4:
+         ONE_MORE_BYTE (c);
+         if (c < 0 || ! (charset = emacs_mule_charset[c]))
+           goto invalid_code;
+         ONE_MORE_BYTE (c);
+         if (c < 0xA0)
+           goto invalid_code;
+         code = (c & 0x7F) << 8;
+         ONE_MORE_BYTE (c);
+         if (c < 0xA0)
+           goto invalid_code;
+         code |= c & 0x7F;
+         break;
+
+       case 1:
+         code = c;
+         charset = CHARSET_FROM_ID (ASCII_BYTE_P (code)
+                                    ? charset_ascii : charset_eight_bit);
+         break;
+
+       default:
+         abort ();
        }
+      c = DECODE_CHAR (charset, code);
+      if (c < 0)
+       goto invalid_code;
     }
-  else if (c >= 0x80)
-    {
-      /* This may be an old Emacs 20 style format.  See the comment at
-        the section 2 of this file.  */
-      while (src < src_end && !CHAR_HEAD_P (*src)) src++;
-      if (src == src_end
-         && !(coding->mode & CODING_MODE_LAST_BLOCK))
-       goto label_end_of_loop;
+  *nbytes = src - src_base;
+  *nchars = consumed_chars;
+  if (id)
+    *id = charset->id;
+  return c;
+
+ no_more_source:
+  return -2;
+
+ invalid_code:
+  return -1;
+}
+
+
+/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
+   Check if a text is encoded in `emacs-mule'.  If it is, return 1,
+   else return 0.  */
+
+static int
+detect_coding_emacs_mule (coding, detect_info)
+     struct coding_system *coding;
+     struct coding_detection_info *detect_info;
+{
+  const unsigned char *src = coding->source, *src_base;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int multibytep = coding->src_multibyte;
+  int consumed_chars = 0;
+  int c;
+  int found = 0;
 
-      src_end = src;
-      src = src_base + 1;
-      if (c < 0xC0)
+  detect_info->checked |= CATEGORY_MASK_EMACS_MULE;
+  /* A coding system of this category is always ASCII compatible.  */
+  src += coding->head_ascii;
+
+  while (1)
+    {
+      src_base = src;
+      ONE_MORE_BYTE (c);
+      if (c < 0)
+       continue;
+      if (c == 0x80)
        {
-         method = COMPOSITION_RELATIVE;
-         for (ncomponent = 0; ncomponent < MAX_COMPOSITION_COMPONENTS;)
+         /* Perhaps the start of composite character.  We simple skip
+            it because analyzing it is too heavy for detecting.  But,
+            at least, we check that the composite character
+            constitues of more than 4 bytes.  */
+         const unsigned char *src_base;
+
+       repeat:
+         src_base = src;
+         do
            {
-             DECODE_EMACS_MULE_COMPOSITION_CHAR (c, bufp);
-             if (c < 0)
-               break;
-             component[ncomponent++] = c;
+             ONE_MORE_BYTE (c);
            }
-         if (ncomponent < 2)
-           return 0;
-         nchars = ncomponent;
+         while (c >= 0xA0);
+
+         if (src - src_base <= 4)
+           break;
+         found = CATEGORY_MASK_EMACS_MULE;
+         if (c == 0x80)
+           goto repeat;
        }
-      else if (c == 0xFF)
+
+      if (c < 0x80)
        {
-         method = COMPOSITION_WITH_RULE;
-         src++;
-         DECODE_EMACS_MULE_COMPOSITION_CHAR (c, bufp);
-         if (c < 0)
-           return 0;
-         component[0] = c;
-         for (ncomponent = 1;
-              ncomponent < MAX_COMPOSITION_COMPONENTS * 2 - 1;)
+         if (c < 0x20
+             && (c == ISO_CODE_ESC || c == ISO_CODE_SI || c == ISO_CODE_SO))
+           break;
+       }
+      else
+       {
+         int more_bytes = emacs_mule_bytes[*src_base] - 1;
+
+         while (more_bytes > 0)
            {
-             DECODE_EMACS_MULE_COMPOSITION_RULE (c);
-             if (c < 0)
-               break;
-             component[ncomponent++] = c;
-             DECODE_EMACS_MULE_COMPOSITION_CHAR (c, bufp);
-             if (c < 0)
-               break;
-             component[ncomponent++] = c;
+             ONE_MORE_BYTE (c);
+             if (c < 0xA0)
+               {
+                 src--;        /* Unread the last byte.  */
+                 break;
+               }
+             more_bytes--;
            }
-         if (ncomponent < 3)
-           return 0;
-         nchars = (ncomponent + 1) / 2;
+         if (more_bytes != 0)
+           break;
+         found = CATEGORY_MASK_EMACS_MULE;
        }
-      else
-       return 0;
     }
-  else
-    return 0;
+  detect_info->rejected |= CATEGORY_MASK_EMACS_MULE;
+  return 0;
 
-  if (buf == bufp || dst + (bufp - buf) <= (dst_bytes ? dst_end : src))
+ no_more_source:
+  if (src_base < src && coding->mode & CODING_MODE_LAST_BLOCK)
     {
-      CODING_ADD_COMPOSITION_START (coding, coding->produced_char, method);
-      for (i = 0; i < ncomponent; i++)
-       CODING_ADD_COMPOSITION_COMPONENT (coding, component[i]);
-      CODING_ADD_COMPOSITION_END (coding, coding->produced_char + nchars);
-      if (buf < bufp)
-       {
-         unsigned char *p = buf;
-         EMIT_BYTES (p, bufp);
-         *destination += bufp - buf;
-         coding->produced_char += nchars;
-       }
-      return (src - src_base);
+      detect_info->rejected |= CATEGORY_MASK_EMACS_MULE;
+      return 0;
     }
- label_end_of_loop:
-  return -1;
+  detect_info->found |= found;
+  return 1;
 }
 
+
 /* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions".  */
 
+/* Decode a character represented as a component of composition
+   sequence of Emacs 20/21 style at SRC.  Set C to that character and
+   update SRC to the head of next character (or an encoded composition
+   rule).  If SRC doesn't points a composition component, set C to -1.
+   If SRC points an invalid byte sequence, global exit by a return
+   value 0.  */
+
+#define DECODE_EMACS_MULE_COMPOSITION_CHAR(buf)                        \
+  if (1)                                                       \
+    {                                                          \
+      int c;                                                   \
+      int nbytes, nchars;                                      \
+                                                               \
+      if (src == src_end)                                      \
+       break;                                                  \
+      c = emacs_mule_char (coding, src, &nbytes, &nchars, NULL);\
+      if (c < 0)                                               \
+       {                                                       \
+         if (c == -2)                                          \
+           break;                                              \
+         goto invalid_code;                                    \
+       }                                                       \
+      *buf++ = c;                                              \
+      src += nbytes;                                           \
+      consumed_chars += nchars;                                        \
+    }                                                          \
+  else
+
+
+/* Decode a composition rule represented as a component of composition
+   sequence of Emacs 20 style at SRC.  Store the decoded rule in *BUF,
+   and increment BUF.  If SRC points an invalid byte sequence, set C
+   to -1.  */
+
+#define DECODE_EMACS_MULE_COMPOSITION_RULE_20(buf)     \
+  do {                                                 \
+    int c, gref, nref;                                 \
+                                                       \
+    if (src >= src_end)                                        \
+      goto invalid_code;                               \
+    ONE_MORE_BYTE_NO_CHECK (c);                                \
+    c -= 0xA0;                                         \
+    if (c < 0 || c >= 81)                              \
+      goto invalid_code;                               \
+                                                       \
+    gref = c / 9, nref = c % 9;                                \
+    *buf++ = COMPOSITION_ENCODE_RULE (gref, nref);     \
+  } while (0)
+
+
+/* Decode a composition rule represented as a component of composition
+   sequence of Emacs 21 style at SRC.  Store the decoded rule in *BUF,
+   and increment BUF.  If SRC points an invalid byte sequence, set C
+   to -1.  */
+
+#define DECODE_EMACS_MULE_COMPOSITION_RULE_21(buf)     \
+  do {                                                 \
+    int gref, nref;                                    \
+                                                       \
+    if (src + 1>= src_end)                             \
+      goto invalid_code;                               \
+    ONE_MORE_BYTE_NO_CHECK (gref);                     \
+    gref -= 0x20;                                      \
+    ONE_MORE_BYTE_NO_CHECK (nref);                     \
+    nref -= 0x20;                                      \
+    if (gref < 0 || gref >= 81                         \
+       || nref < 0 || nref >= 81)                      \
+      goto invalid_code;                               \
+    *buf++ = COMPOSITION_ENCODE_RULE (gref, nref);     \
+  } while (0)
+
+
+#define DECODE_EMACS_MULE_21_COMPOSITION(c)                            \
+  do {                                                                 \
+    /* Emacs 21 style format.  The first three bytes at SRC are                \
+       (METHOD - 0xF2), (BYTES - 0xA0), (CHARS - 0xA0), where BYTES is \
+       the byte length of this composition information, CHARS is the   \
+       number of characters composed by this composition.  */          \
+    enum composition_method method = c - 0xF2;                         \
+    int *charbuf_base = charbuf;                                       \
+    int consumed_chars_limit;                                          \
+    int nbytes, nchars;                                                        \
+                                                                       \
+    ONE_MORE_BYTE (c);                                                 \
+    if (c < 0)                                                         \
+      goto invalid_code;                                               \
+    nbytes = c - 0xA0;                                                 \
+    if (nbytes < 3)                                                    \
+      goto invalid_code;                                               \
+    ONE_MORE_BYTE (c);                                                 \
+    if (c < 0)                                                         \
+      goto invalid_code;                                               \
+    nchars = c - 0xA0;                                                 \
+    ADD_COMPOSITION_DATA (charbuf, nchars, method);                    \
+    consumed_chars_limit = consumed_chars_base + nbytes;               \
+    if (method != COMPOSITION_RELATIVE)                                        \
+      {                                                                        \
+       int i = 0;                                                      \
+       while (consumed_chars < consumed_chars_limit)                   \
+         {                                                             \
+           if (i % 2 && method != COMPOSITION_WITH_ALTCHARS)           \
+             DECODE_EMACS_MULE_COMPOSITION_RULE_21 (charbuf);          \
+           else                                                        \
+             DECODE_EMACS_MULE_COMPOSITION_CHAR (charbuf);             \
+           i++;                                                        \
+         }                                                             \
+       if (consumed_chars < consumed_chars_limit)                      \
+         goto invalid_code;                                            \
+       charbuf_base[0] -= i;                                           \
+      }                                                                        \
+  } while (0)
+
+
+#define DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION(c)                   \
+  do {                                                                 \
+    /* Emacs 20 style format for relative composition.  */             \
+    /* Store multibyte form of characters to be composed.  */          \
+    enum composition_method method = COMPOSITION_RELATIVE;             \
+    int components[MAX_COMPOSITION_COMPONENTS * 2 - 1];                        \
+    int *buf = components;                                             \
+    int i, j;                                                          \
+                                                                       \
+    src = src_base;                                                    \
+    ONE_MORE_BYTE (c);         /* skip 0x80 */                         \
+    for (i = 0; *src >= 0xA0 && i < MAX_COMPOSITION_COMPONENTS; i++)   \
+      DECODE_EMACS_MULE_COMPOSITION_CHAR (buf);                                \
+    if (i < 2)                                                         \
+      goto invalid_code;                                               \
+    ADD_COMPOSITION_DATA (charbuf, i, method);                         \
+    for (j = 0; j < i; j++)                                            \
+      *charbuf++ = components[j];                                      \
+  } while (0)
+
+
+#define DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION(c)           \
+  do {                                                         \
+    /* Emacs 20 style format for rule-base composition.  */    \
+    /* Store multibyte form of characters to be composed.  */  \
+    enum composition_method method = COMPOSITION_WITH_RULE;    \
+    int *charbuf_base = charbuf;                               \
+    int components[MAX_COMPOSITION_COMPONENTS * 2 - 1];                \
+    int *buf = components;                                     \
+    int i, j;                                                  \
+                                                               \
+    DECODE_EMACS_MULE_COMPOSITION_CHAR (buf);                  \
+    for (i = 1; i < MAX_COMPOSITION_COMPONENTS; i++)           \
+      {                                                                \
+       if (*src < 0xA0)                                        \
+         break;                                                \
+       DECODE_EMACS_MULE_COMPOSITION_RULE_20 (buf);            \
+       DECODE_EMACS_MULE_COMPOSITION_CHAR (buf);               \
+      }                                                                \
+    if (i <= 1 || (buf - components) % 2 == 0)                 \
+      goto invalid_code;                                       \
+    if (charbuf + i + (i / 2) + 1 >= charbuf_end)              \
+      goto no_more_source;                                     \
+    ADD_COMPOSITION_DATA (charbuf, i, method);                 \
+    i = i * 2 - 1;                                             \
+    for (j = 0; j < i; j++)                                    \
+      *charbuf++ = components[j];                              \
+    charbuf_base[0] -= i;                                      \
+    for (j = 0; j < i; j += 2)                                 \
+      *charbuf++ = components[j];                              \
+  } while (0)
+
+
 static void
-decode_coding_emacs_mule (coding, source, destination, src_bytes, dst_bytes)
+decode_coding_emacs_mule (coding)
      struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char *destination;
-     int src_bytes, dst_bytes;
 {
-  const unsigned char *src = source;
-  const unsigned char *src_end = source + src_bytes;
-  unsigned char *dst = destination;
-  unsigned char *dst_end = destination + dst_bytes;
-  /* SRC_BASE remembers the start position in source in each loop.
-     The loop will be exited when there's not enough source code, or
-     when there's not enough destination area to produce a
-     character.  */
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
   const unsigned char *src_base;
+  int *charbuf = coding->charbuf + coding->charbuf_used;
+  int *charbuf_end
+    = coding->charbuf + coding->charbuf_size - MAX_ANNOTATION_LENGTH;
+  int consumed_chars = 0, consumed_chars_base;
+  int multibytep = coding->src_multibyte;
+  Lisp_Object attrs, charset_list;
+  int char_offset = coding->produced_char;
+  int last_offset = char_offset;
+  int last_id = charset_ascii;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
 
-  coding->produced_char = 0;
-  while ((src_base = src) < src_end)
+  while (1)
     {
-      unsigned char tmp[MAX_MULTIBYTE_LENGTH];
-      const unsigned char *p;
-      int bytes;
+      int c;
 
-      if (*src == '\r')
-       {
-         int c = *src++;
+      src_base = src;
+      consumed_chars_base = consumed_chars;
 
-         if (coding->eol_type == CODING_EOL_CR)
-           c = '\n';
-         else if (coding->eol_type == CODING_EOL_CRLF)
-           {
-             ONE_MORE_BYTE (c);
-             if (c != '\n')
-               {
-                 src--;
-                 c = '\r';
-               }
-           }
-         *dst++ = c;
-         coding->produced_char++;
-         continue;
-       }
-      else if (*src == '\n')
+      if (charbuf >= charbuf_end)
+       break;
+
+      ONE_MORE_BYTE (c);
+      if (c < 0)
        {
-         if ((coding->eol_type == CODING_EOL_CR
-              || coding->eol_type == CODING_EOL_CRLF)
-             && coding->mode & CODING_MODE_INHIBIT_INCONSISTENT_EOL)
-           {
-             coding->result = CODING_FINISH_INCONSISTENT_EOL;
-             goto label_end_of_loop;
-           }
-         *dst++ = *src++;
-         coding->produced_char++;
-         continue;
+         *charbuf++ = -c;
+         char_offset++;
        }
-      else if (*src == 0x80 && coding->cmp_data)
+      else if (c < 0x80)
        {
-         /* Start of composition data.  */
-         int consumed  = decode_composition_emacs_mule (coding, src, src_end,
-                                                        &dst, dst_end,
-                                                        dst_bytes);
-         if (consumed < 0)
-           goto label_end_of_loop;
-         else if (consumed > 0)
-           {
-             src += consumed;
-             continue;
-           }
-         bytes = CHAR_STRING (*src, tmp);
-         p = tmp;
-         src++;
+         *charbuf++ = c;
+         char_offset++;
        }
-      else if (UNIBYTE_STR_AS_MULTIBYTE_P (src, src_end - src, bytes)
-              || (coding->flags /* We are recovering a file.  */
-                  && src[0] == LEADING_CODE_8_BIT_CONTROL
-                  && ! CHAR_HEAD_P (src[1])))
+      else if (c == 0x80)
        {
-         p = src;
-         src += bytes;
+         ONE_MORE_BYTE (c);
+         if (c < 0)
+           goto invalid_code;
+         if (c - 0xF2 >= COMPOSITION_RELATIVE
+             && c - 0xF2 <= COMPOSITION_WITH_RULE_ALTCHARS)
+           DECODE_EMACS_MULE_21_COMPOSITION (c);
+         else if (c < 0xC0)
+           DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION (c);
+         else if (c == 0xFF)
+           DECODE_EMACS_MULE_20_RULEBASE_COMPOSITION (c);
+         else
+           goto invalid_code;
        }
-      else
+      else if (c < 0xA0 && emacs_mule_bytes[c] > 1)
        {
-         int i, c;
+         int nbytes, nchars;
+         int id;
 
-         bytes = BYTES_BY_CHAR_HEAD (*src);
-         src++;
-         for (i = 1; i < bytes; i++)
+         src = src_base;
+         consumed_chars = consumed_chars_base;
+         c = emacs_mule_char (coding, src, &nbytes, &nchars, &id);
+         if (c < 0)
            {
-             ONE_MORE_BYTE (c);
-             if (CHAR_HEAD_P (c))
+             if (c == -2)
                break;
+             goto invalid_code;
            }
-         if (i < bytes)
-           {
-             bytes = CHAR_STRING (*src_base, tmp);
-             p = tmp;
-             src = src_base + 1;
-           }
-         else
+         if (last_id != id)
            {
-             p = src_base;
+             if (last_id != charset_ascii)
+               ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+             last_id = id;
+             last_offset = char_offset;
            }
+         *charbuf++ = c;
+         src += nbytes;
+         consumed_chars += nchars;
+         char_offset++;
        }
-      if (dst + bytes >= (dst_bytes ? dst_end : src))
-       {
-         coding->result = CODING_FINISH_INSUFFICIENT_DST;
-         break;
-       }
-      while (bytes--) *dst++ = *p++;
-      coding->produced_char++;
-    }
- label_end_of_loop:
-  coding->consumed = coding->consumed_char = src_base - source;
-  coding->produced = dst - destination;
-}
+      else
+       goto invalid_code;
+      continue;
 
+    invalid_code:
+      src = src_base;
+      consumed_chars = consumed_chars_base;
+      ONE_MORE_BYTE (c);
+      *charbuf++ = ASCII_BYTE_P (c) ? c : BYTE8_TO_CHAR (c);
+      char_offset++;
+      coding->errors++;
+    }
 
-/* Encode composition data stored at DATA into a special byte sequence
-   starting by 0x80.  Update CODING->cmp_data_start and maybe
-   CODING->cmp_data for the next call.  */
+ no_more_source:
+  if (last_id != charset_ascii)
+    ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+  coding->consumed_char += consumed_chars_base;
+  coding->consumed = src_base - coding->source;
+  coding->charbuf_used = charbuf - coding->charbuf;
+}
 
-#define ENCODE_COMPOSITION_EMACS_MULE(coding, data)                    \
-  do {                                                                 \
-    unsigned char buf[1024], *p0 = buf, *p;                            \
-    int len = data[0];                                                 \
-    int i;                                                             \
-                                                                       \
-    buf[0] = 0x80;                                                     \
-    buf[1] = 0xF0 + data[3];   /* METHOD */                            \
-    buf[3] = 0xA0 + (data[2] - data[1]); /* COMPOSED-CHARS */          \
-    p = buf + 4;                                                       \
-    if (data[3] == COMPOSITION_WITH_RULE                               \
-       || data[3] == COMPOSITION_WITH_RULE_ALTCHARS)                   \
-      {                                                                        \
-       p += CHAR_STRING (data[4], p);                                  \
-       for (i = 5; i < len; i += 2)                                    \
-         {                                                             \
-           int gref, nref;                                             \
-            COMPOSITION_DECODE_RULE (data[i], gref, nref);             \
-           *p++ = 0x20 + gref;                                         \
-           *p++ = 0x20 + nref;                                         \
-           p += CHAR_STRING (data[i + 1], p);                          \
-         }                                                             \
-      }                                                                        \
-    else                                                               \
-      {                                                                        \
-       for (i = 4; i < len; i++)                                       \
-         p += CHAR_STRING (data[i], p);                                \
-      }                                                                        \
-    buf[2] = 0xA0 + (p - buf); /* COMPONENTS-BYTES */                  \
-                                                                       \
-    if (dst + (p - buf) + 4 > (dst_bytes ? dst_end : src))             \
-      {                                                                        \
-       coding->result = CODING_FINISH_INSUFFICIENT_DST;                \
-       goto label_end_of_loop;                                         \
-      }                                                                        \
-    while (p0 < p)                                                     \
-      *dst++ = *p0++;                                                  \
-    coding->cmp_data_start += data[0];                                 \
-    if (coding->cmp_data_start == coding->cmp_data->used               \
-       && coding->cmp_data->next)                                      \
-      {                                                                        \
-       coding->cmp_data = coding->cmp_data->next;                      \
-       coding->cmp_data_start = 0;                                     \
-      }                                                                        \
-  } while (0)
 
+#define EMACS_MULE_LEADING_CODES(id, codes)    \
+  do {                                         \
+    if (id < 0xA0)                             \
+      codes[0] = id, codes[1] = 0;             \
+    else if (id < 0xE0)                                \
+      codes[0] = 0x9A, codes[1] = id;          \
+    else if (id < 0xF0)                                \
+      codes[0] = 0x9B, codes[1] = id;          \
+    else if (id < 0xF5)                                \
+      codes[0] = 0x9C, codes[1] = id;          \
+    else                                       \
+      codes[0] = 0x9D, codes[1] = id;          \
+  } while (0);
 
-static void encode_eol P_ ((struct coding_system *, const unsigned char *,
-                           unsigned char *, int, int));
 
-static void
-encode_coding_emacs_mule (coding, source, destination, src_bytes, dst_bytes)
+static int
+encode_coding_emacs_mule (coding)
      struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char *destination;
-     int src_bytes, dst_bytes;
 {
-  const unsigned char *src = source;
-  const unsigned char *src_end = source + src_bytes;
-  unsigned char *dst = destination;
-  unsigned char *dst_end = destination + dst_bytes;
-  const unsigned char *src_base;
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int safe_room = 8;
+  int produced_chars = 0;
+  Lisp_Object attrs, charset_list;
   int c;
-  int char_offset;
-  int *data;
-
-  Lisp_Object translation_table;
+  int preferred_charset_id = -1;
 
-  translation_table = Qnil;
-
-  /* Optimization for the case that there's no composition.  */
-  if (!coding->cmp_data || coding->cmp_data->used == 0)
+  CODING_GET_INFO (coding, attrs, charset_list);
+  if (! EQ (charset_list, Vemacs_mule_charset_list))
     {
-      encode_eol (coding, source, destination, src_bytes, dst_bytes);
-      return;
+      CODING_ATTR_CHARSET_LIST (attrs)
+       = charset_list = Vemacs_mule_charset_list;
     }
 
-  char_offset = coding->cmp_data->char_offset;
-  data = coding->cmp_data->data + coding->cmp_data_start;
-  while (1)
+  while (charbuf < charbuf_end)
     {
-      src_base = src;
+      ASSURE_DESTINATION (safe_room);
+      c = *charbuf++;
 
-      /* If SRC starts a composition, encode the information about the
-        composition in advance.  */
-      if (coding->cmp_data_start < coding->cmp_data->used
-         && char_offset + coding->consumed_char == data[1])
+      if (c < 0)
        {
-         ENCODE_COMPOSITION_EMACS_MULE (coding, data);
-         char_offset = coding->cmp_data->char_offset;
-         data = coding->cmp_data->data + coding->cmp_data_start;
+         /* Handle an annotation.  */
+         switch (*charbuf)
+           {
+           case CODING_ANNOTATE_COMPOSITION_MASK:
+             /* Not yet implemented.  */
+             break;
+           case CODING_ANNOTATE_CHARSET_MASK:
+             preferred_charset_id = charbuf[3];
+             if (preferred_charset_id >= 0
+                 && NILP (Fmemq (make_number (preferred_charset_id),
+                                 charset_list)))
+               preferred_charset_id = -1;
+             break;
+           default:
+             abort ();
+           }
+         charbuf += -c - 1;
+         continue;
        }
 
-      ONE_MORE_CHAR (c);
-      if (c == '\n' && (coding->eol_type == CODING_EOL_CRLF
-                       || coding->eol_type == CODING_EOL_CR))
+      if (ASCII_CHAR_P (c))
+       EMIT_ONE_ASCII_BYTE (c);
+      else if (CHAR_BYTE8_P (c))
        {
-         if (coding->eol_type == CODING_EOL_CRLF)
-           EMIT_TWO_BYTES ('\r', c);
-         else
-           EMIT_ONE_BYTE ('\r');
+         c = CHAR_TO_BYTE8 (c);
+         EMIT_ONE_BYTE (c);
        }
-      else if (SINGLE_BYTE_CHAR_P (c))
+      else
        {
-         if (coding->flags && ! ASCII_BYTE_P (c))
-           {
-             /* As we are auto saving, retain the multibyte form for
-                8-bit chars.  */
-             unsigned char buf[MAX_MULTIBYTE_LENGTH];
-             int bytes = CHAR_STRING (c, buf);
+         struct charset *charset;
+         unsigned code;
+         int dimension;
+         int emacs_mule_id;
+         unsigned char leading_codes[2];
 
-             if (bytes == 1)
-               EMIT_ONE_BYTE (buf[0]);
-             else
-               EMIT_TWO_BYTES (buf[0], buf[1]);
+         if (preferred_charset_id >= 0)
+           {
+             charset = CHARSET_FROM_ID (preferred_charset_id);
+             if (! CHAR_CHARSET_P (c, charset))
+               charset = char_charset (c, charset_list, NULL);
            }
          else
-           EMIT_ONE_BYTE (c);
+           charset = char_charset (c, charset_list, &code);
+         if (! charset)
+           {
+             c = coding->default_char;
+             if (ASCII_CHAR_P (c))
+               {
+                 EMIT_ONE_ASCII_BYTE (c);
+                 continue;
+               }
+             charset = char_charset (c, charset_list, &code);
+           }
+         dimension = CHARSET_DIMENSION (charset);
+         emacs_mule_id = CHARSET_EMACS_MULE_ID (charset);
+         EMACS_MULE_LEADING_CODES (emacs_mule_id, leading_codes);
+         EMIT_ONE_BYTE (leading_codes[0]);
+         if (leading_codes[1])
+           EMIT_ONE_BYTE (leading_codes[1]);
+         if (dimension == 1)
+           EMIT_ONE_BYTE (code | 0x80);
+         else
+           {
+             code |= 0x8080;
+             EMIT_ONE_BYTE (code >> 8);
+             EMIT_ONE_BYTE (code & 0xFF);
+           }
        }
-      else
-       EMIT_BYTES (src_base, src);
-      coding->consumed_char++;
     }
- label_end_of_loop:
-  coding->consumed = src_base - source;
-  coding->produced = coding->produced_char = dst - destination;
-  return;
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding->produced_char += produced_chars;
+  coding->produced = dst - coding->destination;
+  return 0;
 }
 
 \f
-/*** 3. ISO2022 handlers ***/
+/*** 7. ISO2022 handlers ***/
 
 /* The following note describes the coding system ISO2022 briefly.
    Since the intention of this note is to help understand the
@@ -1332,7 +2409,7 @@ encode_coding_emacs_mule (coding, source, destination, src_bytes, dst_bytes)
    7-bit environment, non-locking-shift, and non-single-shift.
 
    Note (**): If <F> is '@', 'A', or 'B', the intermediate character
-   '(' can be omitted.  We refer to this as "short-form" hereafter.
+   '(' must be omitted.  We refer to this as "short-form" hereafter.
 
    Now you may notice that there are a lot of ways of encoding the
    same multilingual text in ISO2022.  Actually, there exist many
@@ -1362,10 +2439,10 @@ encode_coding_emacs_mule (coding, source, destination, src_bytes, dst_bytes)
   Since these are not standard escape sequences of any ISO standard,
   the use of them with these meanings is restricted to Emacs only.
 
-  (*) This form is used only in Emacs 20.5 and older versions,
-  but the newer versions can safely decode it.
+  (*) This form is used only in Emacs 20.7 and older versions,
+  but newer versions can safely decode it.
   (**) This form is used only in Emacs 21.1 and newer versions,
-  and the older versions can't decode it.
+  and older versions can't decode it.
 
   Here's a list of example usages of these composition escape
   sequences (categorized by `enum composition_method').
@@ -1381,422 +2458,438 @@ encode_coding_emacs_mule (coding, source, destination, src_bytes, dst_bytes)
 
 enum iso_code_class_type iso_code_class[256];
 
-#define CHARSET_OK(idx, charset, c)                                    \
-  (coding_system_table[idx]                                            \
-   && (charset == CHARSET_ASCII                                                \
-       || (safe_chars = coding_safe_chars (coding_system_table[idx]->symbol), \
-          CODING_SAFE_CHAR_P (safe_chars, c)))                         \
-   && (CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding_system_table[idx],        \
-                                             charset)                  \
-       != CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION))
+#define SAFE_CHARSET_P(coding, id)     \
+  ((id) <= (coding)->max_charset_id    \
+   && (coding)->safe_charsets[id] >= 0)
+
+
+#define SHIFT_OUT_OK(category) \
+  (CODING_ISO_INITIAL (&coding_categories[category], 1) >= 0)
 
-#define SHIFT_OUT_OK(idx) \
-  (CODING_SPEC_ISO_INITIAL_DESIGNATION (coding_system_table[idx], 1) >= 0)
+static void
+setup_iso_safe_charsets (attrs)
+     Lisp_Object attrs;
+{
+  Lisp_Object charset_list, safe_charsets;
+  Lisp_Object request;
+  Lisp_Object reg_usage;
+  Lisp_Object tail;
+  int reg94, reg96;
+  int flags = XINT (AREF (attrs, coding_attr_iso_flags));
+  int max_charset_id;
+
+  charset_list = CODING_ATTR_CHARSET_LIST (attrs);
+  if ((flags & CODING_ISO_FLAG_FULL_SUPPORT)
+      && ! EQ (charset_list, Viso_2022_charset_list))
+    {
+      CODING_ATTR_CHARSET_LIST (attrs)
+       = charset_list = Viso_2022_charset_list;
+      ASET (attrs, coding_attr_safe_charsets, Qnil);
+    }
+
+  if (STRINGP (AREF (attrs, coding_attr_safe_charsets)))
+    return;
+
+  max_charset_id = 0;
+  for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
+    {
+      int id = XINT (XCAR (tail));
+      if (max_charset_id < id)
+       max_charset_id = id;
+    }
+
+  safe_charsets = Fmake_string (make_number (max_charset_id + 1),
+                               make_number (255));
+  request = AREF (attrs, coding_attr_iso_request);
+  reg_usage = AREF (attrs, coding_attr_iso_usage);
+  reg94 = XINT (XCAR (reg_usage));
+  reg96 = XINT (XCDR (reg_usage));
+
+  for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
+    {
+      Lisp_Object id;
+      Lisp_Object reg;
+      struct charset *charset;
+
+      id = XCAR (tail);
+      charset = CHARSET_FROM_ID (XINT (id));
+      reg = Fcdr (Fassq (id, request));
+      if (! NILP (reg))
+       SSET (safe_charsets, XINT (id), XINT (reg));
+      else if (charset->iso_chars_96)
+       {
+         if (reg96 < 4)
+           SSET (safe_charsets, XINT (id), reg96);
+       }
+      else
+       {
+         if (reg94 < 4)
+           SSET (safe_charsets, XINT (id), reg94);
+       }
+    }
+  ASET (attrs, coding_attr_safe_charsets, safe_charsets);
+}
 
-#define COMPOSITION_OK(idx)    \
-  (coding_system_table[idx]->composing != COMPOSITION_DISABLED)
 
 /* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
-   Check if a text is encoded in ISO2022.  If it is, return an
-   integer in which appropriate flag bits any of:
-       CODING_CATEGORY_MASK_ISO_7
-       CODING_CATEGORY_MASK_ISO_7_TIGHT
-       CODING_CATEGORY_MASK_ISO_8_1
-       CODING_CATEGORY_MASK_ISO_8_2
-       CODING_CATEGORY_MASK_ISO_7_ELSE
-       CODING_CATEGORY_MASK_ISO_8_ELSE
-   are set.  If a code which should never appear in ISO2022 is found,
-   returns 0.  */
+   Check if a text is encoded in one of ISO-2022 based codig systems.
+   If it is, return 1, else return 0.  */
 
 static int
-detect_coding_iso2022 (src, src_end, multibytep)
-     unsigned char *src, *src_end;
-     int multibytep;
+detect_coding_iso_2022 (coding, detect_info)
+     struct coding_system *coding;
+     struct coding_detection_info *detect_info;
 {
-  int mask = CODING_CATEGORY_MASK_ISO;
-  int mask_found = 0;
-  int reg[4], shift_out = 0, single_shifting = 0;
-  int c, c1, charset;
-  /* Dummy for ONE_MORE_BYTE.  */
-  struct coding_system dummy_coding;
-  struct coding_system *coding = &dummy_coding;
-  Lisp_Object safe_chars;
-
-  reg[0] = CHARSET_ASCII, reg[1] = reg[2] = reg[3] = -1;
-  while (mask)
-    {
-      ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, mask & mask_found);
-    retry:
+  const unsigned char *src = coding->source, *src_base = src;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int multibytep = coding->src_multibyte;
+  int single_shifting = 0;
+  int id;
+  int c, c1;
+  int consumed_chars = 0;
+  int i;
+  int rejected = 0;
+  int found = 0;
+
+  detect_info->checked |= CATEGORY_MASK_ISO;
+
+  for (i = coding_category_iso_7; i <= coding_category_iso_8_else; i++)
+    {
+      struct coding_system *this = &(coding_categories[i]);
+      Lisp_Object attrs, val;
+
+      attrs = CODING_ID_ATTRS (this->id);
+      if (CODING_ISO_FLAGS (this) & CODING_ISO_FLAG_FULL_SUPPORT
+         && ! EQ (CODING_ATTR_SAFE_CHARSETS (attrs), Viso_2022_charset_list))
+       setup_iso_safe_charsets (attrs);
+      val = CODING_ATTR_SAFE_CHARSETS (attrs);
+      this->max_charset_id = SCHARS (val) - 1;
+      this->safe_charsets = (char *) SDATA (val);
+    }
+
+  /* A coding system of this category is always ASCII compatible.  */
+  src += coding->head_ascii;
+
+  while (rejected != CATEGORY_MASK_ISO)
+    {
+      src_base = src;
+      ONE_MORE_BYTE (c);
       switch (c)
        {
        case ISO_CODE_ESC:
          if (inhibit_iso_escape_detection)
            break;
          single_shifting = 0;
-         ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, mask & mask_found);
+         ONE_MORE_BYTE (c);
          if (c >= '(' && c <= '/')
            {
              /* Designation sequence for a charset of dimension 1.  */
-             ONE_MORE_BYTE_CHECK_MULTIBYTE (c1, multibytep, mask & mask_found);
+             ONE_MORE_BYTE (c1);
              if (c1 < ' ' || c1 >= 0x80
-                 || (charset = iso_charset_table[0][c >= ','][c1]) < 0)
+                 || (id = iso_charset_table[0][c >= ','][c1]) < 0)
                /* Invalid designation sequence.  Just ignore.  */
                break;
-             reg[(c - '(') % 4] = charset;
            }
          else if (c == '$')
            {
              /* Designation sequence for a charset of dimension 2.  */
-             ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, mask & mask_found);
+             ONE_MORE_BYTE (c);
              if (c >= '@' && c <= 'B')
                /* Designation for JISX0208.1978, GB2312, or JISX0208.  */
-               reg[0] = charset = iso_charset_table[1][0][c];
+               id = iso_charset_table[1][0][c];
              else if (c >= '(' && c <= '/')
                {
-                 ONE_MORE_BYTE_CHECK_MULTIBYTE (c1, multibytep,
-                                                mask & mask_found);
+                 ONE_MORE_BYTE (c1);
                  if (c1 < ' ' || c1 >= 0x80
-                     || (charset = iso_charset_table[1][c >= ','][c1]) < 0)
+                     || (id = iso_charset_table[1][c >= ','][c1]) < 0)
                    /* Invalid designation sequence.  Just ignore.  */
                    break;
-                 reg[(c - '(') % 4] = charset;
                }
              else
-               /* Invalid designation sequence.  Just ignore.  */
+               /* Invalid designation sequence.  Just ignore it.  */
                break;
            }
          else if (c == 'N' || c == 'O')
            {
              /* ESC <Fe> for SS2 or SS3.  */
-             mask &= CODING_CATEGORY_MASK_ISO_7_ELSE;
+             single_shifting = 1;
+             rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_8BIT;
              break;
            }
          else if (c >= '0' && c <= '4')
            {
              /* ESC <Fp> for start/end composition.  */
-             if (COMPOSITION_OK (CODING_CATEGORY_IDX_ISO_7))
-               mask_found |= CODING_CATEGORY_MASK_ISO_7;
-             else
-               mask &= ~CODING_CATEGORY_MASK_ISO_7;
-             if (COMPOSITION_OK (CODING_CATEGORY_IDX_ISO_7_TIGHT))
-               mask_found |= CODING_CATEGORY_MASK_ISO_7_TIGHT;
-             else
-               mask &= ~CODING_CATEGORY_MASK_ISO_7_TIGHT;
-             if (COMPOSITION_OK (CODING_CATEGORY_IDX_ISO_8_1))
-               mask_found |= CODING_CATEGORY_MASK_ISO_8_1;
-             else
-               mask &= ~CODING_CATEGORY_MASK_ISO_8_1;
-             if (COMPOSITION_OK (CODING_CATEGORY_IDX_ISO_8_2))
-               mask_found |= CODING_CATEGORY_MASK_ISO_8_2;
-             else
-               mask &= ~CODING_CATEGORY_MASK_ISO_8_2;
-             if (COMPOSITION_OK (CODING_CATEGORY_IDX_ISO_7_ELSE))
-               mask_found |= CODING_CATEGORY_MASK_ISO_7_ELSE;
-             else
-               mask &= ~CODING_CATEGORY_MASK_ISO_7_ELSE;
-             if (COMPOSITION_OK (CODING_CATEGORY_IDX_ISO_8_ELSE))
-               mask_found |= CODING_CATEGORY_MASK_ISO_8_ELSE;
-             else
-               mask &= ~CODING_CATEGORY_MASK_ISO_8_ELSE;
+             found |= CATEGORY_MASK_ISO;
              break;
            }
          else
-           /* Invalid escape sequence.  Just ignore.  */
-           break;
+           {
+             /* Invalid escape sequence.  Just ignore it.  */
+             break;
+           }
 
          /* We found a valid designation sequence for CHARSET.  */
-         mask &= ~CODING_CATEGORY_MASK_ISO_8BIT;
-         c = MAKE_CHAR (charset, 0, 0);
-         if (CHARSET_OK (CODING_CATEGORY_IDX_ISO_7, charset, c))
-           mask_found |= CODING_CATEGORY_MASK_ISO_7;
+         rejected |= CATEGORY_MASK_ISO_8BIT;
+         if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7],
+                             id))
+           found |= CATEGORY_MASK_ISO_7;
          else
-           mask &= ~CODING_CATEGORY_MASK_ISO_7;
-         if (CHARSET_OK (CODING_CATEGORY_IDX_ISO_7_TIGHT, charset, c))
-           mask_found |= CODING_CATEGORY_MASK_ISO_7_TIGHT;
+           rejected |= CATEGORY_MASK_ISO_7;
+         if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7_tight],
+                             id))
+           found |= CATEGORY_MASK_ISO_7_TIGHT;
          else
-           mask &= ~CODING_CATEGORY_MASK_ISO_7_TIGHT;
-         if (CHARSET_OK (CODING_CATEGORY_IDX_ISO_7_ELSE, charset, c))
-           mask_found |= CODING_CATEGORY_MASK_ISO_7_ELSE;
+           rejected |= CATEGORY_MASK_ISO_7_TIGHT;
+         if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7_else],
+                             id))
+           found |= CATEGORY_MASK_ISO_7_ELSE;
          else
-           mask &= ~CODING_CATEGORY_MASK_ISO_7_ELSE;
-         if (CHARSET_OK (CODING_CATEGORY_IDX_ISO_8_ELSE, charset, c))
-           mask_found |= CODING_CATEGORY_MASK_ISO_8_ELSE;
+           rejected |= CATEGORY_MASK_ISO_7_ELSE;
+         if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_8_else],
+                             id))
+           found |= CATEGORY_MASK_ISO_8_ELSE;
          else
-           mask &= ~CODING_CATEGORY_MASK_ISO_8_ELSE;
+           rejected |= CATEGORY_MASK_ISO_8_ELSE;
          break;
 
        case ISO_CODE_SO:
-         if (inhibit_iso_escape_detection)
-           break;
-         single_shifting = 0;
-         if (shift_out == 0
-             && (reg[1] >= 0
-                 || SHIFT_OUT_OK (CODING_CATEGORY_IDX_ISO_7_ELSE)
-                 || SHIFT_OUT_OK (CODING_CATEGORY_IDX_ISO_8_ELSE)))
-           {
-             /* Locking shift out.  */
-             mask &= ~CODING_CATEGORY_MASK_ISO_7BIT;
-             mask_found |= CODING_CATEGORY_MASK_ISO_SHIFT;
-           }
-         break;
-
        case ISO_CODE_SI:
+         /* Locking shift out/in.  */
          if (inhibit_iso_escape_detection)
            break;
          single_shifting = 0;
-         if (shift_out == 1)
-           {
-             /* Locking shift in.  */
-             mask &= ~CODING_CATEGORY_MASK_ISO_7BIT;
-             mask_found |= CODING_CATEGORY_MASK_ISO_SHIFT;
-           }
+         rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_8BIT;
          break;
 
        case ISO_CODE_CSI:
+         /* Control sequence introducer.  */
          single_shifting = 0;
+         rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_7_ELSE;
+         found |= CATEGORY_MASK_ISO_8_ELSE;
+         goto check_extra_latin;
+
        case ISO_CODE_SS2:
        case ISO_CODE_SS3:
-         {
-           int newmask = CODING_CATEGORY_MASK_ISO_8_ELSE;
-
-           if (inhibit_iso_escape_detection)
-             break;
-           if (c != ISO_CODE_CSI)
-             {
-               if (coding_system_table[CODING_CATEGORY_IDX_ISO_8_1]->flags
-                   & CODING_FLAG_ISO_SINGLE_SHIFT)
-                 newmask |= CODING_CATEGORY_MASK_ISO_8_1;
-               if (coding_system_table[CODING_CATEGORY_IDX_ISO_8_2]->flags
-                   & CODING_FLAG_ISO_SINGLE_SHIFT)
-                 newmask |= CODING_CATEGORY_MASK_ISO_8_2;
-               single_shifting = 1;
-             }
-           if (VECTORP (Vlatin_extra_code_table)
-               && !NILP (XVECTOR (Vlatin_extra_code_table)->contents[c]))
-             {
-               if (coding_system_table[CODING_CATEGORY_IDX_ISO_8_1]->flags
-                   & CODING_FLAG_ISO_LATIN_EXTRA)
-                 newmask |= CODING_CATEGORY_MASK_ISO_8_1;
-               if (coding_system_table[CODING_CATEGORY_IDX_ISO_8_2]->flags
-                   & CODING_FLAG_ISO_LATIN_EXTRA)
-                 newmask |= CODING_CATEGORY_MASK_ISO_8_2;
-             }
-           mask &= newmask;
-           mask_found |= newmask;
-         }
-         break;
+         /* Single shift.   */
+         if (inhibit_iso_escape_detection)
+           break;
+         single_shifting = 0;
+         rejected |= CATEGORY_MASK_ISO_7BIT;
+         if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1])
+             & CODING_ISO_FLAG_SINGLE_SHIFT)
+           found |= CATEGORY_MASK_ISO_8_1, single_shifting = 1;
+         if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_2])
+             & CODING_ISO_FLAG_SINGLE_SHIFT)
+           found |= CATEGORY_MASK_ISO_8_2, single_shifting = 1;
+         if (single_shifting)
+           break;
+         goto check_extra_latin;
 
        default:
+         if (c < 0)
+           continue;
          if (c < 0x80)
            {
              single_shifting = 0;
              break;
            }
-         else if (c < 0xA0)
-           {
-             single_shifting = 0;
-             if (VECTORP (Vlatin_extra_code_table)
-                 && !NILP (XVECTOR (Vlatin_extra_code_table)->contents[c]))
-               {
-                 int newmask = 0;
-
-                 if (coding_system_table[CODING_CATEGORY_IDX_ISO_8_1]->flags
-                     & CODING_FLAG_ISO_LATIN_EXTRA)
-                   newmask |= CODING_CATEGORY_MASK_ISO_8_1;
-                 if (coding_system_table[CODING_CATEGORY_IDX_ISO_8_2]->flags
-                     & CODING_FLAG_ISO_LATIN_EXTRA)
-                   newmask |= CODING_CATEGORY_MASK_ISO_8_2;
-                 mask &= newmask;
-                 mask_found |= newmask;
-               }
-             else
-               return 0;
-           }
-         else
+         if (c >= 0xA0)
            {
-             mask &= ~(CODING_CATEGORY_MASK_ISO_7BIT
-                       | CODING_CATEGORY_MASK_ISO_7_ELSE);
-             mask_found |= CODING_CATEGORY_MASK_ISO_8_1;
+             rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_7_ELSE;
+             found |= CATEGORY_MASK_ISO_8_1;
              /* Check the length of succeeding codes of the range
-                 0xA0..0FF.  If the byte length is odd, we exclude
-                 CODING_CATEGORY_MASK_ISO_8_2.  We can check this only
-                 when we are not single shifting.  */
-             if (!single_shifting
-                 && mask & CODING_CATEGORY_MASK_ISO_8_2)
+                 0xA0..0FF.  If the byte length is even, we include
+                 CATEGORY_MASK_ISO_8_2 in `found'.  We can check this
+                 only when we are not single shifting.  */
+             if (! single_shifting
+                 && ! (rejected & CATEGORY_MASK_ISO_8_2))
                {
                  int i = 1;
-
-                 c = -1;
                  while (src < src_end)
                    {
-                     ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep,
-                                                    mask & mask_found);
+                     ONE_MORE_BYTE (c);
                      if (c < 0xA0)
                        break;
                      i++;
                    }
 
                  if (i & 1 && src < src_end)
-                   mask &= ~CODING_CATEGORY_MASK_ISO_8_2;
+                   rejected |= CATEGORY_MASK_ISO_8_2;
                  else
-                   mask_found |= CODING_CATEGORY_MASK_ISO_8_2;
-                 if (c >= 0)
-                   /* This means that we have read one extra byte.  */
-                   goto retry;
+                   found |= CATEGORY_MASK_ISO_8_2;
                }
+             break;
            }
-         break;
+       check_extra_latin:
+         single_shifting = 0;
+         if (! VECTORP (Vlatin_extra_code_table)
+             || NILP (XVECTOR (Vlatin_extra_code_table)->contents[c]))
+           {
+             rejected = CATEGORY_MASK_ISO;
+             break;
+           }
+         if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1])
+             & CODING_ISO_FLAG_LATIN_EXTRA)
+           found |= CATEGORY_MASK_ISO_8_1;
+         else
+           rejected |= CATEGORY_MASK_ISO_8_1;
+         rejected |= CATEGORY_MASK_ISO_8_2;
        }
     }
-  return (mask & mask_found);
-}
+  detect_info->rejected |= CATEGORY_MASK_ISO;
+  return 0;
 
-/* Decode a character of which charset is CHARSET, the 1st position
-   code is C1, the 2nd position code is C2, and return the decoded
-   character code.  If the variable `translation_table' is non-nil,
-   returned the translated code.  */
+ no_more_source:
+  detect_info->rejected |= rejected;
+  detect_info->found |= (found & ~rejected);
+  return 1;
+}
 
-#define DECODE_ISO_CHARACTER(charset, c1, c2)  \
-  (NILP (translation_table)                    \
-   ? MAKE_CHAR (charset, c1, c2)               \
-   : translate_char (translation_table, -1, charset, c1, c2))
 
-/* Set designation state into CODING.  */
-#define DECODE_DESIGNATION(reg, dimension, chars, final_char)             \
-  do {                                                                    \
-    int charset, c;                                                       \
-                                                                          \
-    if (final_char < '0' || final_char >= 128)                            \
-      goto label_invalid_code;                                            \
-    charset = ISO_CHARSET_TABLE (make_number (dimension),                 \
-                                make_number (chars),                      \
-                                make_number (final_char));                \
-    c = MAKE_CHAR (charset, 0, 0);                                        \
-    if (charset >= 0                                                      \
-       && (CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset) == reg \
-           || CODING_SAFE_CHAR_P (safe_chars, c)))                        \
-      {                                                                           \
-       if (coding->spec.iso2022.last_invalid_designation_register == 0    \
-           && reg == 0                                                    \
-           && charset == CHARSET_ASCII)                                   \
-         {                                                                \
-           /* We should insert this designation sequence as is so         \
-               that it is surely written back to a file.  */              \
-           coding->spec.iso2022.last_invalid_designation_register = -1;   \
-           goto label_invalid_code;                                       \
-         }                                                                \
-       coding->spec.iso2022.last_invalid_designation_register = -1;       \
-        if ((coding->mode & CODING_MODE_DIRECTION)                        \
-           && CHARSET_REVERSE_CHARSET (charset) >= 0)                     \
-          charset = CHARSET_REVERSE_CHARSET (charset);                    \
-        CODING_SPEC_ISO_DESIGNATION (coding, reg) = charset;              \
-      }                                                                           \
-    else                                                                  \
-      {                                                                           \
-       coding->spec.iso2022.last_invalid_designation_register = reg;      \
-       goto label_invalid_code;                                           \
-      }                                                                           \
+/* Set designation state into CODING.  Set CHARS_96 to -1 if the
+   escape sequence should be kept.  */
+#define DECODE_DESIGNATION(reg, dim, chars_96, final)                  \
+  do {                                                                 \
+    int id, prev;                                                      \
+                                                                       \
+    if (final < '0' || final >= 128                                    \
+       || ((id = ISO_CHARSET_TABLE (dim, chars_96, final)) < 0)        \
+       || !SAFE_CHARSET_P (coding, id))                                \
+      {                                                                        \
+       CODING_ISO_DESIGNATION (coding, reg) = -2;                      \
+       chars_96 = -1;                                                  \
+       break;                                                          \
+      }                                                                        \
+    prev = CODING_ISO_DESIGNATION (coding, reg);                       \
+    if (id == charset_jisx0201_roman)                                  \
+      {                                                                        \
+       if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_USE_ROMAN)      \
+         id = charset_ascii;                                           \
+      }                                                                        \
+    else if (id == charset_jisx0208_1978)                              \
+      {                                                                        \
+       if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_USE_OLDJIS)     \
+         id = charset_jisx0208;                                        \
+      }                                                                        \
+    CODING_ISO_DESIGNATION (coding, reg) = id;                         \
+    /* If there was an invalid designation to REG previously, and this \
+       designation is ASCII to REG, we should keep this designation    \
+       sequence.  */                                                   \
+    if (prev == -2 && id == charset_ascii)                             \
+      chars_96 = -1;                                                   \
   } while (0)
 
-/* Allocate a memory block for storing information about compositions.
-   The block is chained to the already allocated blocks.  */
 
-void
-coding_allocate_composition_data (coding, char_offset)
-     struct coding_system *coding;
-     int char_offset;
-{
-  struct composition_data *cmp_data
-    = (struct composition_data *) xmalloc (sizeof *cmp_data);
-
-  cmp_data->char_offset = char_offset;
-  cmp_data->used = 0;
-  cmp_data->prev = coding->cmp_data;
-  cmp_data->next = NULL;
-  if (coding->cmp_data)
-    coding->cmp_data->next = cmp_data;
-  coding->cmp_data = cmp_data;
-  coding->cmp_data_start = 0;
-  coding->composing = COMPOSITION_NO;
-}
+#define MAYBE_FINISH_COMPOSITION()                             \
+  do {                                                         \
+    int i;                                                     \
+    if (composition_state == COMPOSING_NO)                     \
+      break;                                                   \
+    /* It is assured that we have enough room for producing    \
+       characters stored in the table `components'.  */                \
+    if (charbuf + component_idx > charbuf_end)                 \
+      goto no_more_source;                                     \
+    composition_state = COMPOSING_NO;                          \
+    if (method == COMPOSITION_RELATIVE                         \
+       || method == COMPOSITION_WITH_ALTCHARS)                 \
+      {                                                                \
+       for (i = 0; i < component_idx; i++)                     \
+         *charbuf++ = components[i];                           \
+       char_offset += component_idx;                           \
+      }                                                                \
+    else                                                       \
+      {                                                                \
+       for (i = 0; i < component_idx; i += 2)                  \
+         *charbuf++ = components[i];                           \
+       char_offset += (component_idx / 2) + 1;                 \
+      }                                                                \
+  } while (0)
+
 
 /* Handle composition start sequence ESC 0, ESC 2, ESC 3, or ESC 4.
    ESC 0 : relative composition : ESC 0 CHAR ... ESC 1
    ESC 2 : rulebase composition : ESC 2 CHAR RULE CHAR RULE ... CHAR ESC 1
-   ESC 3 : altchar composition :  ESC 3 ALT ... ESC 0 CHAR ... ESC 1
-   ESC 4 : alt&rule composition : ESC 4 ALT RULE .. ALT ESC 0 CHAR ... ESC 1
+   ESC 3 : altchar composition :  ESC 3 CHAR ... ESC 0 CHAR ... ESC 1
+   ESC 4 : alt&rule composition : ESC 4 CHAR RULE ... CHAR ESC 0 CHAR ... ESC 1
   */
 
-#define DECODE_COMPOSITION_START(c1)                                      \
-  do {                                                                    \
-    if (coding->composing == COMPOSITION_DISABLED)                        \
-      {                                                                           \
-       *dst++ = ISO_CODE_ESC;                                             \
-       *dst++ = c1 & 0x7f;                                                \
-       coding->produced_char += 2;                                        \
-      }                                                                           \
-    else if (!COMPOSING_P (coding))                                       \
-      {                                                                           \
-       /* This is surely the start of a composition.  We must be sure     \
-           that coding->cmp_data has enough space to store the            \
-           information about the composition.  If not, terminate the      \
-           current decoding loop, allocate one more memory block for      \
-           coding->cmp_data in the caller, then start the decoding        \
-           loop again.  We can't allocate memory here directly because    \
-           it may cause buffer/string relocation.  */                     \
-       if (!coding->cmp_data                                              \
-           || (coding->cmp_data->used + COMPOSITION_DATA_MAX_BUNCH_LENGTH \
-               >= COMPOSITION_DATA_SIZE))                                 \
-         {                                                                \
-           coding->result = CODING_FINISH_INSUFFICIENT_CMP;               \
-           goto label_end_of_loop;                                        \
-         }                                                                \
-       coding->composing = (c1 == '0' ? COMPOSITION_RELATIVE              \
-                            : c1 == '2' ? COMPOSITION_WITH_RULE           \
-                            : c1 == '3' ? COMPOSITION_WITH_ALTCHARS       \
-                            : COMPOSITION_WITH_RULE_ALTCHARS);            \
-       CODING_ADD_COMPOSITION_START (coding, coding->produced_char,       \
-                                     coding->composing);                  \
-       coding->composition_rule_follows = 0;                              \
-      }                                                                           \
-    else                                                                  \
-      {                                                                           \
-       /* We are already handling a composition.  If the method is        \
-           the following two, the codes following the current escape      \
-           sequence are actual characters stored in a buffer.  */         \
-       if (coding->composing == COMPOSITION_WITH_ALTCHARS                 \
-           || coding->composing == COMPOSITION_WITH_RULE_ALTCHARS)        \
-         {                                                                \
-           coding->composing = COMPOSITION_RELATIVE;                      \
-           coding->composition_rule_follows = 0;                          \
-         }                                                                \
-      }                                                                           \
+#define DECODE_COMPOSITION_START(c1)                                   \
+  do {                                                                 \
+    if (c1 == '0'                                                      \
+       && composition_state == COMPOSING_COMPONENT_RULE)               \
+      {                                                                        \
+       component_len = component_idx;                                  \
+       composition_state = COMPOSING_CHAR;                             \
+      }                                                                        \
+    else                                                               \
+      {                                                                        \
+       const unsigned char *p;                                         \
+                                                                       \
+       MAYBE_FINISH_COMPOSITION ();                                    \
+       if (charbuf + MAX_COMPOSITION_COMPONENTS > charbuf_end)         \
+         goto no_more_source;                                          \
+       for (p = src; p < src_end - 1; p++)                             \
+         if (*p == ISO_CODE_ESC && p[1] == '1')                        \
+           break;                                                      \
+       if (p == src_end - 1)                                           \
+         {                                                             \
+           /* The current composition doesn't end in the current       \
+              source.  */                                              \
+           record_conversion_result                                    \
+             (coding, CODING_RESULT_INSUFFICIENT_SRC);                 \
+           goto no_more_source;                                        \
+         }                                                             \
+                                                                       \
+       /* This is surely the start of a composition.  */               \
+       method = (c1 == '0' ? COMPOSITION_RELATIVE                      \
+                 : c1 == '2' ? COMPOSITION_WITH_RULE                   \
+                 : c1 == '3' ? COMPOSITION_WITH_ALTCHARS               \
+                 : COMPOSITION_WITH_RULE_ALTCHARS);                    \
+       composition_state = (c1 <= '2' ? COMPOSING_CHAR                 \
+                            : COMPOSING_COMPONENT_CHAR);               \
+       component_idx = component_len = 0;                              \
+      }                                                                        \
   } while (0)
 
-/* Handle composition end sequence ESC 1.  */
 
-#define DECODE_COMPOSITION_END(c1)                                     \
+/* Handle compositoin end sequence ESC 1.  */
+
+#define DECODE_COMPOSITION_END()                                       \
   do {                                                                 \
-    if (! COMPOSING_P (coding))                                                \
+    int nchars = (component_len > 0 ? component_idx - component_len    \
+                 : method == COMPOSITION_RELATIVE ? component_idx      \
+                 : (component_idx + 1) / 2);                           \
+    int i;                                                             \
+    int *saved_charbuf = charbuf;                                      \
+                                                                       \
+    ADD_COMPOSITION_DATA (charbuf, nchars, method);                    \
+    if (method != COMPOSITION_RELATIVE)                                        \
       {                                                                        \
-       *dst++ = ISO_CODE_ESC;                                          \
-       *dst++ = c1;                                                    \
-       coding->produced_char += 2;                                     \
+       if (component_len == 0)                                         \
+         for (i = 0; i < component_idx; i++)                           \
+           *charbuf++ = components[i];                                 \
+       else                                                            \
+         for (i = 0; i < component_len; i++)                           \
+           *charbuf++ = components[i];                                 \
+       *saved_charbuf = saved_charbuf - charbuf;                       \
       }                                                                        \
+    if (method == COMPOSITION_WITH_RULE)                               \
+      for (i = 0; i < component_idx; i += 2, char_offset++)            \
+       *charbuf++ = components[i];                                     \
     else                                                               \
-      {                                                                        \
-       CODING_ADD_COMPOSITION_END (coding, coding->produced_char);     \
-       coding->composing = COMPOSITION_NO;                             \
-      }                                                                        \
+      for (i = component_len; i < component_idx; i++, char_offset++)   \
+       *charbuf++ = components[i];                                     \
+    coding->annotated = 1;                                             \
+    composition_state = COMPOSING_NO;                                  \
   } while (0)
 
+
 /* Decode a composition rule from the byte C1 (and maybe one more byte
    from SRC) and store one encoded composition rule in
    coding->cmp_data.  */
 
 #define DECODE_COMPOSITION_RULE(c1)                                    \
   do {                                                                 \
-    int rule = 0;                                                      \
     (c1) -= 32;                                                                \
     if (c1 < 81)               /* old format (before ver.21) */        \
       {                                                                        \
@@ -1804,168 +2897,164 @@ coding_allocate_composition_data (coding, char_offset)
        int nref = (c1) % 9;                                            \
        if (gref == 4) gref = 10;                                       \
        if (nref == 4) nref = 10;                                       \
-       rule = COMPOSITION_ENCODE_RULE (gref, nref);                    \
+       c1 = COMPOSITION_ENCODE_RULE (gref, nref);                      \
       }                                                                        \
     else if (c1 < 93)          /* new format (after ver.21) */         \
       {                                                                        \
        ONE_MORE_BYTE (c2);                                             \
-       rule = COMPOSITION_ENCODE_RULE (c1 - 81, c2 - 32);              \
+       c1 = COMPOSITION_ENCODE_RULE (c1 - 81, c2 - 32);                \
       }                                                                        \
-    CODING_ADD_COMPOSITION_COMPONENT (coding, rule);                   \
-    coding->composition_rule_follows = 0;                              \
+    else                                                               \
+      c1 = 0;                                                          \
   } while (0)
 
 
 /* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions".  */
 
 static void
-decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
+decode_coding_iso_2022 (coding)
      struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char *destination;
-     int src_bytes, dst_bytes;
 {
-  const unsigned char *src = source;
-  const unsigned char *src_end = source + src_bytes;
-  unsigned char *dst = destination;
-  unsigned char *dst_end = destination + dst_bytes;
-  /* Charsets invoked to graphic plane 0 and 1 respectively.  */
-  int charset0 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 0);
-  int charset1 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 1);
-  /* SRC_BASE remembers the start position in source in each loop.
-     The loop will be exited when there's not enough source code
-     (within macro ONE_MORE_BYTE), or when there's not enough
-     destination area to produce a character (within macro
-     EMIT_CHAR).  */
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
   const unsigned char *src_base;
-  int c, charset;
-  Lisp_Object translation_table;
-  Lisp_Object safe_chars;
-
-  safe_chars = coding_safe_chars (coding->symbol);
-
-  if (NILP (Venable_character_translation))
-    translation_table = Qnil;
-  else
-    {
-      translation_table = coding->translation_table_for_decode;
-      if (NILP (translation_table))
-       translation_table = Vstandard_translation_table_for_decode;
-    }
-
-  coding->result = CODING_FINISH_NORMAL;
+  int *charbuf = coding->charbuf + coding->charbuf_used;
+  int *charbuf_end
+    = coding->charbuf + coding->charbuf_size - 4 - MAX_ANNOTATION_LENGTH;
+  int consumed_chars = 0, consumed_chars_base;
+  int multibytep = coding->src_multibyte;
+  /* Charsets invoked to graphic plane 0 and 1 respectively.  */
+  int charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
+  int charset_id_1 = CODING_ISO_INVOKED_CHARSET (coding, 1);
+  int charset_id_2, charset_id_3;
+  struct charset *charset;
+  int c;
+  /* For handling composition sequence.  */
+#define COMPOSING_NO                   0
+#define COMPOSING_CHAR                 1
+#define COMPOSING_RULE                 2
+#define COMPOSING_COMPONENT_CHAR       3
+#define COMPOSING_COMPONENT_RULE       4
+
+  int composition_state = COMPOSING_NO;
+  enum composition_method method;
+  int components[MAX_COMPOSITION_COMPONENTS * 2 + 1];
+  int component_idx;
+  int component_len;
+  Lisp_Object attrs, charset_list;
+  int char_offset = coding->produced_char;
+  int last_offset = char_offset;
+  int last_id = charset_ascii;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+  setup_iso_safe_charsets (attrs);
+  /* Charset list may have been changed.  */
+  charset_list = CODING_ATTR_CHARSET_LIST (attrs);
+  coding->safe_charsets = (char *) SDATA (CODING_ATTR_SAFE_CHARSETS(attrs));
 
   while (1)
     {
-      int c1, c2 = 0;
+      int c1, c2;
 
       src_base = src;
+      consumed_chars_base = consumed_chars;
+
+      if (charbuf >= charbuf_end)
+       break;
+
       ONE_MORE_BYTE (c1);
+      if (c1 < 0)
+       goto invalid_code;
 
-      /* We produce no character or one character.  */
+      /* We produce at most one character.  */
       switch (iso_code_class [c1])
        {
        case ISO_0x20_or_0x7F:
-         if (COMPOSING_P (coding) && coding->composition_rule_follows)
-           {
-             DECODE_COMPOSITION_RULE (c1);
-             continue;
-           }
-         if (charset0 < 0 || CHARSET_CHARS (charset0) == 94)
+         if (composition_state != COMPOSING_NO)
            {
-             /* This is SPACE or DEL.  */
-             charset = CHARSET_ASCII;
-             break;
+             if (composition_state == COMPOSING_RULE
+                 || composition_state == COMPOSING_COMPONENT_RULE)
+               {
+                 DECODE_COMPOSITION_RULE (c1);
+                 components[component_idx++] = c1;
+                 composition_state--;
+                 continue;
+               }
            }
-         /* This is a graphic character, we fall down ...  */
+         if (charset_id_0 < 0
+             || ! CHARSET_ISO_CHARS_96 (CHARSET_FROM_ID (charset_id_0)))
+           /* This is SPACE or DEL.  */
+           charset = CHARSET_FROM_ID (charset_ascii);
+         else
+           charset = CHARSET_FROM_ID (charset_id_0);
+         break;
 
        case ISO_graphic_plane_0:
-         if (COMPOSING_P (coding) && coding->composition_rule_follows)
+         if (composition_state != COMPOSING_NO)
            {
-             DECODE_COMPOSITION_RULE (c1);
-             continue;
+             if (composition_state == COMPOSING_RULE
+                 || composition_state == COMPOSING_COMPONENT_RULE)
+               {
+                 DECODE_COMPOSITION_RULE (c1);
+                 components[component_idx++] = c1;
+                 composition_state--;
+                 continue;
+               }
            }
-         charset = charset0;
+         if (charset_id_0 < 0)
+           charset = CHARSET_FROM_ID (charset_ascii);
+         else
+           charset = CHARSET_FROM_ID (charset_id_0);
          break;
 
        case ISO_0xA0_or_0xFF:
-         if (charset1 < 0 || CHARSET_CHARS (charset1) == 94
-             || coding->flags & CODING_FLAG_ISO_SEVEN_BITS)
-           goto label_invalid_code;
+         if (charset_id_1 < 0
+             || ! CHARSET_ISO_CHARS_96 (CHARSET_FROM_ID (charset_id_1))
+             || CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS)
+           goto invalid_code;
          /* This is a graphic character, we fall down ... */
 
        case ISO_graphic_plane_1:
-         if (charset1 < 0)
-           goto label_invalid_code;
-         charset = charset1;
+         if (charset_id_1 < 0)
+           goto invalid_code;
+         charset = CHARSET_FROM_ID (charset_id_1);
          break;
 
        case ISO_control_0:
-         if (COMPOSING_P (coding))
-           DECODE_COMPOSITION_END ('1');
-
-         /* All ISO2022 control characters in this class have the
-             same representation in Emacs internal format.  */
-         if (c1 == '\n'
-             && (coding->mode & CODING_MODE_INHIBIT_INCONSISTENT_EOL)
-             && (coding->eol_type == CODING_EOL_CR
-                 || coding->eol_type == CODING_EOL_CRLF))
-           {
-             coding->result = CODING_FINISH_INCONSISTENT_EOL;
-             goto label_end_of_loop;
-           }
-         charset = CHARSET_ASCII;
+         MAYBE_FINISH_COMPOSITION ();
+         charset = CHARSET_FROM_ID (charset_ascii);
          break;
 
        case ISO_control_1:
-         if (COMPOSING_P (coding))
-           DECODE_COMPOSITION_END ('1');
-         goto label_invalid_code;
-
-       case ISO_carriage_return:
-         if (COMPOSING_P (coding))
-           DECODE_COMPOSITION_END ('1');
-
-         if (coding->eol_type == CODING_EOL_CR)
-           c1 = '\n';
-         else if (coding->eol_type == CODING_EOL_CRLF)
-           {
-             ONE_MORE_BYTE (c1);
-             if (c1 != ISO_CODE_LF)
-               {
-                 src--;
-                 c1 = '\r';
-               }
-           }
-         charset = CHARSET_ASCII;
-         break;
+         MAYBE_FINISH_COMPOSITION ();
+         goto invalid_code;
 
        case ISO_shift_out:
-         if (! (coding->flags & CODING_FLAG_ISO_LOCKING_SHIFT)
-             || CODING_SPEC_ISO_DESIGNATION (coding, 1) < 0)
-           goto label_invalid_code;
-         CODING_SPEC_ISO_INVOCATION (coding, 0) = 1;
-         charset0 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 0);
+         if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LOCKING_SHIFT)
+             || CODING_ISO_DESIGNATION (coding, 1) < 0)
+           goto invalid_code;
+         CODING_ISO_INVOCATION (coding, 0) = 1;
+         charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
          continue;
 
        case ISO_shift_in:
-         if (! (coding->flags & CODING_FLAG_ISO_LOCKING_SHIFT))
-           goto label_invalid_code;
-         CODING_SPEC_ISO_INVOCATION (coding, 0) = 0;
-         charset0 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 0);
+         if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LOCKING_SHIFT))
+           goto invalid_code;
+         CODING_ISO_INVOCATION (coding, 0) = 0;
+         charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
          continue;
 
        case ISO_single_shift_2_7:
        case ISO_single_shift_2:
-         if (! (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT))
-           goto label_invalid_code;
+         if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT))
+           goto invalid_code;
          /* SS2 is handled as an escape sequence of ESC 'N' */
          c1 = 'N';
          goto label_escape_sequence;
 
        case ISO_single_shift_3:
-         if (! (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT))
-           goto label_invalid_code;
+         if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT))
+           goto invalid_code;
          /* SS2 is handled as an escape sequence of ESC 'O' */
          c1 = 'O';
          goto label_escape_sequence;
@@ -1978,7 +3067,7 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
        case ISO_escape:
          ONE_MORE_BYTE (c1);
        label_escape_sequence:
-         /* Escape sequences handled by Emacs are invocation,
+         /* Escape sequences handled here are invocation,
             designation, direction specification, and character
             composition specification.  */
          switch (c1)
@@ -1986,89 +3075,110 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
            case '&':           /* revision of following character set */
              ONE_MORE_BYTE (c1);
              if (!(c1 >= '@' && c1 <= '~'))
-               goto label_invalid_code;
+               goto invalid_code;
              ONE_MORE_BYTE (c1);
              if (c1 != ISO_CODE_ESC)
-               goto label_invalid_code;
+               goto invalid_code;
              ONE_MORE_BYTE (c1);
              goto label_escape_sequence;
 
            case '$':           /* designation of 2-byte character set */
-             if (! (coding->flags & CODING_FLAG_ISO_DESIGNATION))
-               goto label_invalid_code;
-             ONE_MORE_BYTE (c1);
-             if (c1 >= '@' && c1 <= 'B')
-               {       /* designation of JISX0208.1978, GB2312.1980,
+             if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DESIGNATION))
+               goto invalid_code;
+             {
+               int reg, chars96;
+
+               ONE_MORE_BYTE (c1);
+               if (c1 >= '@' && c1 <= 'B')
+                 {     /* designation of JISX0208.1978, GB2312.1980,
                           or JISX0208.1980 */
-                 DECODE_DESIGNATION (0, 2, 94, c1);
-               }
-             else if (c1 >= 0x28 && c1 <= 0x2B)
-               {       /* designation of DIMENSION2_CHARS94 character set */
-                 ONE_MORE_BYTE (c2);
-                 DECODE_DESIGNATION (c1 - 0x28, 2, 94, c2);
-               }
-             else if (c1 >= 0x2C && c1 <= 0x2F)
-               {       /* designation of DIMENSION2_CHARS96 character set */
-                 ONE_MORE_BYTE (c2);
-                 DECODE_DESIGNATION (c1 - 0x2C, 2, 96, c2);
-               }
-             else
-               goto label_invalid_code;
-             /* We must update these variables now.  */
-             charset0 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 0);
-             charset1 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 1);
+                   reg = 0, chars96 = 0;
+                 }
+               else if (c1 >= 0x28 && c1 <= 0x2B)
+                 { /* designation of DIMENSION2_CHARS94 character set */
+                   reg = c1 - 0x28, chars96 = 0;
+                   ONE_MORE_BYTE (c1);
+                 }
+               else if (c1 >= 0x2C && c1 <= 0x2F)
+                 { /* designation of DIMENSION2_CHARS96 character set */
+                   reg = c1 - 0x2C, chars96 = 1;
+                   ONE_MORE_BYTE (c1);
+                 }
+               else
+                 goto invalid_code;
+               DECODE_DESIGNATION (reg, 2, chars96, c1);
+               /* We must update these variables now.  */
+               if (reg == 0)
+                 charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
+               else if (reg == 1)
+                 charset_id_1 = CODING_ISO_INVOKED_CHARSET (coding, 1);
+               if (chars96 < 0)
+                 goto invalid_code;
+             }
              continue;
 
            case 'n':           /* invocation of locking-shift-2 */
-             if (! (coding->flags & CODING_FLAG_ISO_LOCKING_SHIFT)
-                 || CODING_SPEC_ISO_DESIGNATION (coding, 2) < 0)
-               goto label_invalid_code;
-             CODING_SPEC_ISO_INVOCATION (coding, 0) = 2;
-             charset0 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 0);
+             if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LOCKING_SHIFT)
+                 || CODING_ISO_DESIGNATION (coding, 2) < 0)
+               goto invalid_code;
+             CODING_ISO_INVOCATION (coding, 0) = 2;
+             charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
              continue;
 
            case 'o':           /* invocation of locking-shift-3 */
-             if (! (coding->flags & CODING_FLAG_ISO_LOCKING_SHIFT)
-                 || CODING_SPEC_ISO_DESIGNATION (coding, 3) < 0)
-               goto label_invalid_code;
-             CODING_SPEC_ISO_INVOCATION (coding, 0) = 3;
-             charset0 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 0);
+             if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LOCKING_SHIFT)
+                 || CODING_ISO_DESIGNATION (coding, 3) < 0)
+               goto invalid_code;
+             CODING_ISO_INVOCATION (coding, 0) = 3;
+             charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
              continue;
 
            case 'N':           /* invocation of single-shift-2 */
-             if (! (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT)
-                 || CODING_SPEC_ISO_DESIGNATION (coding, 2) < 0)
-               goto label_invalid_code;
-             charset = CODING_SPEC_ISO_DESIGNATION (coding, 2);
+             if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT)
+                 || CODING_ISO_DESIGNATION (coding, 2) < 0)
+               goto invalid_code;
+             charset_id_2 = CODING_ISO_DESIGNATION (coding, 2);
+             if (charset_id_2 < 0)
+               charset = CHARSET_FROM_ID (charset_ascii);
+             else
+               charset = CHARSET_FROM_ID (charset_id_2);
              ONE_MORE_BYTE (c1);
              if (c1 < 0x20 || (c1 >= 0x80 && c1 < 0xA0))
-               goto label_invalid_code;
+               goto invalid_code;
              break;
 
            case 'O':           /* invocation of single-shift-3 */
-             if (! (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT)
-                 || CODING_SPEC_ISO_DESIGNATION (coding, 3) < 0)
-               goto label_invalid_code;
-             charset = CODING_SPEC_ISO_DESIGNATION (coding, 3);
+             if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT)
+                 || CODING_ISO_DESIGNATION (coding, 3) < 0)
+               goto invalid_code;
+             charset_id_3 = CODING_ISO_DESIGNATION (coding, 3);
+             if (charset_id_3 < 0)
+               charset = CHARSET_FROM_ID (charset_ascii);
+             else
+               charset = CHARSET_FROM_ID (charset_id_3);
              ONE_MORE_BYTE (c1);
              if (c1 < 0x20 || (c1 >= 0x80 && c1 < 0xA0))
-               goto label_invalid_code;
+               goto invalid_code;
              break;
 
            case '0': case '2': case '3': case '4': /* start composition */
+             if (! (coding->common_flags & CODING_ANNOTATE_COMPOSITION_MASK))
+               goto invalid_code;
              DECODE_COMPOSITION_START (c1);
              continue;
 
            case '1':           /* end composition */
-             DECODE_COMPOSITION_END (c1);
+             if (composition_state == COMPOSING_NO)
+               goto invalid_code;
+             DECODE_COMPOSITION_END ();
              continue;
 
            case '[':           /* specification of direction */
-             if (coding->flags & CODING_FLAG_ISO_NO_DIRECTION)
-               goto label_invalid_code;
+             if (! CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DIRECTION)
+               goto invalid_code;
              /* For the moment, nested direction is not supported.
                 So, `coding->mode & CODING_MODE_DIRECTION' zero means
-                left-to-right, and nonzero means right-to-left.  */
+                left-to-right, and nozero means right-to-left.  */
              ONE_MORE_BYTE (c1);
              switch (c1)
                {
@@ -2081,7 +3191,7 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
                  if (c1 == ']')
                    coding->mode &= ~CODING_MODE_DIRECTION;
                  else
-                   goto label_invalid_code;
+                   goto invalid_code;
                  break;
 
                case '2':       /* start of right-to-left direction */
@@ -2089,17 +3199,15 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
                  if (c1 == ']')
                    coding->mode |= CODING_MODE_DIRECTION;
                  else
-                   goto label_invalid_code;
+                   goto invalid_code;
                  break;
 
                default:
-                 goto label_invalid_code;
+                 goto invalid_code;
                }
              continue;
 
            case '%':
-             if (COMPOSING_P (coding))
-               DECODE_COMPOSITION_END ('1');
              ONE_MORE_BYTE (c1);
              if (c1 == '/')
                {
@@ -2108,46 +3216,40 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
                     We keep these bytes as is for the moment.
                     They may be decoded by post-read-conversion.  */
                  int dim, M, L;
-                 int size, required;
-                 int produced_chars;
+                 int size;
 
                  ONE_MORE_BYTE (dim);
                  ONE_MORE_BYTE (M);
                  ONE_MORE_BYTE (L);
                  size = ((M - 128) * 128) + (L - 128);
-                 required = 8 + size * 2;
-                 if (dst + required > (dst_bytes ? dst_end : src))
-                   goto label_end_of_loop;
-                 *dst++ = ISO_CODE_ESC;
-                 *dst++ = '%';
-                 *dst++ = '/';
-                 *dst++ = dim;
-                 produced_chars = 4;
-                 dst += CHAR_STRING (M, dst), produced_chars++;
-                 dst += CHAR_STRING (L, dst), produced_chars++;
+                 if (charbuf + 8 + size > charbuf_end)
+                   goto break_loop;
+                 *charbuf++ = ISO_CODE_ESC;
+                 *charbuf++ = '%';
+                 *charbuf++ = '/';
+                 *charbuf++ = dim;
+                 *charbuf++ = BYTE8_TO_CHAR (M);
+                 *charbuf++ = BYTE8_TO_CHAR (L);
                  while (size-- > 0)
                    {
                      ONE_MORE_BYTE (c1);
-                     dst += CHAR_STRING (c1, dst), produced_chars++;
+                     *charbuf++ = ASCII_BYTE_P (c1) ? c1 : BYTE8_TO_CHAR (c1);
                    }
-                 coding->produced_char += produced_chars;
                }
              else if (c1 == 'G')
                {
-                 unsigned char *d = dst;
-                 int produced_chars;
-
                  /* XFree86 extension for embedding UTF-8 in CTEXT:
                     ESC % G --UTF-8-BYTES-- ESC % @
                     We keep these bytes as is for the moment.
                     They may be decoded by post-read-conversion.  */
-                 if (d + 6 > (dst_bytes ? dst_end : src))
-                   goto label_end_of_loop;
-                 *d++ = ISO_CODE_ESC;
-                 *d++ = '%';
-                 *d++ = 'G';
-                 produced_chars = 3;
-                 while (d + 1 < (dst_bytes ? dst_end : src))
+                 int *p = charbuf;
+
+                 if (p + 6 > charbuf_end)
+                   goto break_loop;
+                 *p++ = ISO_CODE_ESC;
+                 *p++ = '%';
+                 *p++ = 'G';
+                 while (p < charbuf_end)
                    {
                      ONE_MORE_BYTE (c1);
                      if (c1 == ISO_CODE_ESC
@@ -2158,71 +3260,128 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
                          src += 2;
                          break;
                        }
-                     d += CHAR_STRING (c1, d), produced_chars++;
+                     *p++ = ASCII_BYTE_P (c1) ? c1 : BYTE8_TO_CHAR (c1);
                    }
-                 if (d + 3 > (dst_bytes ? dst_end : src))
-                   goto label_end_of_loop;
-                 *d++ = ISO_CODE_ESC;
-                 *d++ = '%';
-                 *d++ = '@';
-                 dst = d;
-                 coding->produced_char += produced_chars + 3;
+                 if (p + 3 > charbuf_end)
+                   goto break_loop;
+                 *p++ = ISO_CODE_ESC;
+                 *p++ = '%';
+                 *p++ = '@';
+                 charbuf = p;
                }
              else
-               goto label_invalid_code;
+               goto invalid_code;
              continue;
+             break;
 
            default:
-             if (! (coding->flags & CODING_FLAG_ISO_DESIGNATION))
-               goto label_invalid_code;
-             if (c1 >= 0x28 && c1 <= 0x2B)
-               {       /* designation of DIMENSION1_CHARS94 character set */
-                 ONE_MORE_BYTE (c2);
-                 DECODE_DESIGNATION (c1 - 0x28, 1, 94, c2);
-               }
-             else if (c1 >= 0x2C && c1 <= 0x2F)
-               {       /* designation of DIMENSION1_CHARS96 character set */
-                 ONE_MORE_BYTE (c2);
-                 DECODE_DESIGNATION (c1 - 0x2C, 1, 96, c2);
-               }
-             else
-               goto label_invalid_code;
-             /* We must update these variables now.  */
-             charset0 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 0);
-             charset1 = CODING_SPEC_ISO_PLANE_CHARSET (coding, 1);
+             if (! (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DESIGNATION))
+               goto invalid_code;
+             {
+               int reg, chars96;
+
+               if (c1 >= 0x28 && c1 <= 0x2B)
+                 { /* designation of DIMENSION1_CHARS94 character set */
+                   reg = c1 - 0x28, chars96 = 0;
+                   ONE_MORE_BYTE (c1);
+                 }
+               else if (c1 >= 0x2C && c1 <= 0x2F)
+                 { /* designation of DIMENSION1_CHARS96 character set */
+                   reg = c1 - 0x2C, chars96 = 1;
+                   ONE_MORE_BYTE (c1);
+                 }
+               else
+                 goto invalid_code;
+               DECODE_DESIGNATION (reg, 1, chars96, c1);
+               /* We must update these variables now.  */
+               if (reg == 0)
+                 charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
+               else if (reg == 1)
+                 charset_id_1 = CODING_ISO_INVOKED_CHARSET (coding, 1);
+               if (chars96 < 0)
+                 goto invalid_code;
+             }
              continue;
            }
        }
 
+      if (charset->id != charset_ascii
+         && last_id != charset->id)
+       {
+         if (last_id != charset_ascii)
+           ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+         last_id = charset->id;
+         last_offset = char_offset;
+       }
+
       /* Now we know CHARSET and 1st position code C1 of a character.
-         Produce a multibyte sequence for that character while getting
-         2nd position code C2 if necessary.  */
-      if (CHARSET_DIMENSION (charset) == 2)
+         Produce a decoded character while getting 2nd position code
+         C2 if necessary.  */
+      c1 &= 0x7F;
+      if (CHARSET_DIMENSION (charset) > 1)
        {
          ONE_MORE_BYTE (c2);
-         if (c1 < 0x80 ? c2 < 0x20 || c2 >= 0x80 : c2 < 0xA0)
+         if (c2 < 0x20 || (c2 >= 0x80 && c2 < 0xA0))
            /* C2 is not in a valid range.  */
-           goto label_invalid_code;
+           goto invalid_code;
+         c1 = (c1 << 8) | (c2 & 0x7F);
+         if (CHARSET_DIMENSION (charset) > 2)
+           {
+             ONE_MORE_BYTE (c2);
+             if (c2 < 0x20 || (c2 >= 0x80 && c2 < 0xA0))
+               /* C2 is not in a valid range.  */
+               goto invalid_code;
+             c1 = (c1 << 8) | (c2 & 0x7F);
+           }
+       }
+
+      CODING_DECODE_CHAR (coding, src, src_base, src_end, charset, c1, c);
+      if (c < 0)
+       {
+         MAYBE_FINISH_COMPOSITION ();
+         for (; src_base < src; src_base++, char_offset++)
+           {
+             if (ASCII_BYTE_P (*src_base))
+               *charbuf++ = *src_base;
+             else
+               *charbuf++ = BYTE8_TO_CHAR (*src_base);
+           }
+       }
+      else if (composition_state == COMPOSING_NO)
+       {
+         *charbuf++ = c;
+         char_offset++;
+       }
+      else
+       {
+         components[component_idx++] = c;
+         if (method == COMPOSITION_WITH_RULE
+             || (method == COMPOSITION_WITH_RULE_ALTCHARS
+                 && composition_state == COMPOSING_COMPONENT_CHAR))
+           composition_state++;
        }
-      c = DECODE_ISO_CHARACTER (charset, c1, c2);
-      EMIT_CHAR (c);
       continue;
 
-    label_invalid_code:
-      coding->errors++;
-      if (COMPOSING_P (coding))
-       DECODE_COMPOSITION_END ('1');
+    invalid_code:
+      MAYBE_FINISH_COMPOSITION ();
       src = src_base;
-      c = *src++;
-      if (! NILP (translation_table))
-       c = translate_char (translation_table, c, 0, 0, 0);
-      EMIT_CHAR (c);
+      consumed_chars = consumed_chars_base;
+      ONE_MORE_BYTE (c);
+      *charbuf++ = c < 0 ? -c : ASCII_BYTE_P (c) ? c : BYTE8_TO_CHAR (c);
+      char_offset++;
+      coding->errors++;
+      continue;
+
+    break_loop:
+      break;
     }
 
- label_end_of_loop:
-  coding->consumed = coding->consumed_char = src_base - source;
-  coding->produced = dst - destination;
-  return;
+ no_more_source:
+  if (last_id != charset_ascii)
+    ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+  coding->consumed_char += consumed_chars_base;
+  coding->consumed = src_base - coding->source;
+  coding->charbuf_used = charbuf - coding->charbuf;
 }
 
 
@@ -2230,9 +3389,9 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
 
 /*
    It is not enough to say just "ISO2022" on encoding, we have to
-   specify more details.  In Emacs, each ISO2022 coding system
+   specify more details.  In Emacs, each coding system of ISO2022
    variant has the following specifications:
-       1. Initial designation to G0 through G3.
+       1. Initial designation to G0 thru G3.
        2. Allows short-form designation?
        3. ASCII should be designated to G0 before control characters?
        4. ASCII should be designated to G0 at end of line?
@@ -2242,8 +3401,8 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
    And the following two are only for Japanese:
        8. Use ASCII in place of JIS0201-1976-Roman?
        9. Use JISX0208-1983 in place of JISX0208-1978?
-   These specifications are encoded in `coding->flags' as flag bits
-   defined by macros CODING_FLAG_ISO_XXX.  See `coding.h' for more
+   These specifications are encoded in CODING_ISO_FLAGS (coding) as flag bits
+   defined by macros CODING_ISO_FLAG_XXX.  See `coding.h' for more
    details.
 */
 
@@ -2254,115 +3413,136 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
 
 #define ENCODE_DESIGNATION(charset, reg, coding)                       \
   do {                                                                 \
-    unsigned char final_char = CHARSET_ISO_FINAL_CHAR (charset);       \
+    unsigned char final_char = CHARSET_ISO_FINAL (charset);            \
     char *intermediate_char_94 = "()*+";                               \
     char *intermediate_char_96 = ",-./";                               \
-    int revision = CODING_SPEC_ISO_REVISION_NUMBER(coding, charset);   \
-                                                                       \
-    if (revision < 255)                                                        \
+    int revision = -1;                                                 \
+    int c;                                                             \
+                                                                       \
+    if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_REVISION)          \
+      revision = CHARSET_ISO_REVISION (charset);                       \
+                                                                       \
+    if (revision >= 0)                                                 \
       {                                                                        \
-       *dst++ = ISO_CODE_ESC;                                          \
-       *dst++ = '&';                                                   \
-       *dst++ = '@' + revision;                                        \
+       EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, '&');                       \
+       EMIT_ONE_BYTE ('@' + revision);                                 \
       }                                                                        \
-    *dst++ = ISO_CODE_ESC;                                             \
+    EMIT_ONE_ASCII_BYTE (ISO_CODE_ESC);                                        \
     if (CHARSET_DIMENSION (charset) == 1)                              \
       {                                                                        \
-       if (CHARSET_CHARS (charset) == 94)                              \
-         *dst++ = (unsigned char) (intermediate_char_94[reg]);         \
+       if (! CHARSET_ISO_CHARS_96 (charset))                           \
+         c = intermediate_char_94[reg];                                \
        else                                                            \
-         *dst++ = (unsigned char) (intermediate_char_96[reg]);         \
+         c = intermediate_char_96[reg];                                \
+       EMIT_ONE_ASCII_BYTE (c);                                        \
       }                                                                        \
     else                                                               \
       {                                                                        \
-       *dst++ = '$';                                                   \
-       if (CHARSET_CHARS (charset) == 94)                              \
+       EMIT_ONE_ASCII_BYTE ('$');                                      \
+       if (! CHARSET_ISO_CHARS_96 (charset))                           \
          {                                                             \
-           if (! (coding->flags & CODING_FLAG_ISO_SHORT_FORM)          \
+           if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_LONG_FORM   \
                || reg != 0                                             \
                || final_char < '@' || final_char > 'B')                \
-             *dst++ = (unsigned char) (intermediate_char_94[reg]);     \
+             EMIT_ONE_ASCII_BYTE (intermediate_char_94[reg]);          \
          }                                                             \
        else                                                            \
-         *dst++ = (unsigned char) (intermediate_char_96[reg]);         \
+         EMIT_ONE_ASCII_BYTE (intermediate_char_96[reg]);              \
       }                                                                        \
-    *dst++ = final_char;                                               \
-    CODING_SPEC_ISO_DESIGNATION (coding, reg) = charset;               \
+    EMIT_ONE_ASCII_BYTE (final_char);                                  \
+                                                                       \
+    CODING_ISO_DESIGNATION (coding, reg) = CHARSET_ID (charset);       \
   } while (0)
 
+
 /* The following two macros produce codes (control character or escape
    sequence) for ISO2022 single-shift functions (single-shift-2 and
    single-shift-3).  */
 
-#define ENCODE_SINGLE_SHIFT_2                          \
-  do {                                                 \
-    if (coding->flags & CODING_FLAG_ISO_SEVEN_BITS)    \
-      *dst++ = ISO_CODE_ESC, *dst++ = 'N';             \
-    else                                               \
-      *dst++ = ISO_CODE_SS2;                           \
-    CODING_SPEC_ISO_SINGLE_SHIFTING (coding) = 1;      \
+#define ENCODE_SINGLE_SHIFT_2                                          \
+  do {                                                                 \
+    if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS)                \
+      EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, 'N');                                \
+    else                                                               \
+      EMIT_ONE_BYTE (ISO_CODE_SS2);                                    \
+    CODING_ISO_SINGLE_SHIFTING (coding) = 1;                           \
   } while (0)
 
-#define ENCODE_SINGLE_SHIFT_3                          \
-  do {                                                 \
-    if (coding->flags & CODING_FLAG_ISO_SEVEN_BITS)    \
-      *dst++ = ISO_CODE_ESC, *dst++ = 'O';             \
-    else                                               \
-      *dst++ = ISO_CODE_SS3;                           \
-    CODING_SPEC_ISO_SINGLE_SHIFTING (coding) = 1;      \
+
+#define ENCODE_SINGLE_SHIFT_3                                          \
+  do {                                                                 \
+    if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS)                \
+      EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, 'O');                                \
+    else                                                               \
+      EMIT_ONE_BYTE (ISO_CODE_SS3);                                    \
+    CODING_ISO_SINGLE_SHIFTING (coding) = 1;                           \
   } while (0)
 
+
 /* The following four macros produce codes (control character or
    escape sequence) for ISO2022 locking-shift functions (shift-in,
    shift-out, locking-shift-2, and locking-shift-3).  */
 
-#define ENCODE_SHIFT_IN                                \
-  do {                                         \
-    *dst++ = ISO_CODE_SI;                      \
-    CODING_SPEC_ISO_INVOCATION (coding, 0) = 0;        \
+#define ENCODE_SHIFT_IN                                        \
+  do {                                                 \
+    EMIT_ONE_ASCII_BYTE (ISO_CODE_SI);                 \
+    CODING_ISO_INVOCATION (coding, 0) = 0;             \
   } while (0)
 
-#define ENCODE_SHIFT_OUT                       \
-  do {                                         \
-    *dst++ = ISO_CODE_SO;                      \
-    CODING_SPEC_ISO_INVOCATION (coding, 0) = 1;        \
+
+#define ENCODE_SHIFT_OUT                               \
+  do {                                                 \
+    EMIT_ONE_ASCII_BYTE (ISO_CODE_SO);                 \
+    CODING_ISO_INVOCATION (coding, 0) = 1;             \
   } while (0)
 
-#define ENCODE_LOCKING_SHIFT_2                 \
-  do {                                         \
-    *dst++ = ISO_CODE_ESC, *dst++ = 'n';       \
-    CODING_SPEC_ISO_INVOCATION (coding, 0) = 2;        \
+
+#define ENCODE_LOCKING_SHIFT_2                         \
+  do {                                                 \
+    EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, 'n');          \
+    CODING_ISO_INVOCATION (coding, 0) = 2;             \
   } while (0)
 
-#define ENCODE_LOCKING_SHIFT_3                 \
-  do {                                         \
-    *dst++ = ISO_CODE_ESC, *dst++ = 'o';       \
-    CODING_SPEC_ISO_INVOCATION (coding, 0) = 3;        \
+
+#define ENCODE_LOCKING_SHIFT_3                         \
+  do {                                                 \
+    EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, 'n');          \
+    CODING_ISO_INVOCATION (coding, 0) = 3;             \
   } while (0)
 
+
 /* Produce codes for a DIMENSION1 character whose character set is
    CHARSET and whose position-code is C1.  Designation and invocation
    sequences are also produced in advance if necessary.  */
 
 #define ENCODE_ISO_CHARACTER_DIMENSION1(charset, c1)                   \
   do {                                                                 \
-    if (CODING_SPEC_ISO_SINGLE_SHIFTING (coding))                      \
+    int id = CHARSET_ID (charset);                                     \
+                                                                       \
+    if ((CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_USE_ROMAN)                \
+       && id == charset_ascii)                                         \
+      {                                                                        \
+       id = charset_jisx0201_roman;                                    \
+       charset = CHARSET_FROM_ID (id);                                 \
+      }                                                                        \
+                                                                       \
+    if (CODING_ISO_SINGLE_SHIFTING (coding))                           \
       {                                                                        \
-       if (coding->flags & CODING_FLAG_ISO_SEVEN_BITS)                 \
-         *dst++ = c1 & 0x7F;                                           \
+       if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS)     \
+         EMIT_ONE_ASCII_BYTE (c1 & 0x7F);                              \
        else                                                            \
-         *dst++ = c1 | 0x80;                                           \
-       CODING_SPEC_ISO_SINGLE_SHIFTING (coding) = 0;                   \
+         EMIT_ONE_BYTE (c1 | 0x80);                                    \
+       CODING_ISO_SINGLE_SHIFTING (coding) = 0;                        \
        break;                                                          \
       }                                                                        \
-    else if (charset == CODING_SPEC_ISO_PLANE_CHARSET (coding, 0))     \
+    else if (id == CODING_ISO_INVOKED_CHARSET (coding, 0))             \
       {                                                                        \
-       *dst++ = c1 & 0x7F;                                             \
+       EMIT_ONE_ASCII_BYTE (c1 & 0x7F);                                \
        break;                                                          \
       }                                                                        \
-    else if (charset == CODING_SPEC_ISO_PLANE_CHARSET (coding, 1))     \
+    else if (id == CODING_ISO_INVOKED_CHARSET (coding, 1))             \
       {                                                                        \
-       *dst++ = c1 | 0x80;                                             \
+       EMIT_ONE_BYTE (c1 | 0x80);                                      \
        break;                                                          \
       }                                                                        \
     else                                                               \
@@ -2370,32 +3550,43 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
         must invoke it, or, at first, designate it to some graphic     \
         register.  Then repeat the loop to actually produce the        \
         character.  */                                                 \
-      dst = encode_invocation_designation (charset, coding, dst);      \
+      dst = encode_invocation_designation (charset, coding, dst,       \
+                                          &produced_chars);            \
   } while (1)
 
+
 /* Produce codes for a DIMENSION2 character whose character set is
    CHARSET and whose position-codes are C1 and C2.  Designation and
    invocation codes are also produced in advance if necessary.  */
 
 #define ENCODE_ISO_CHARACTER_DIMENSION2(charset, c1, c2)               \
   do {                                                                 \
-    if (CODING_SPEC_ISO_SINGLE_SHIFTING (coding))                      \
+    int id = CHARSET_ID (charset);                                     \
+                                                                       \
+    if ((CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_USE_OLDJIS)       \
+       && id == charset_jisx0208)                                      \
       {                                                                        \
-       if (coding->flags & CODING_FLAG_ISO_SEVEN_BITS)                 \
-         *dst++ = c1 & 0x7F, *dst++ = c2 & 0x7F;                       \
+       id = charset_jisx0208_1978;                                     \
+       charset = CHARSET_FROM_ID (id);                                 \
+      }                                                                        \
+                                                                       \
+    if (CODING_ISO_SINGLE_SHIFTING (coding))                           \
+      {                                                                        \
+       if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SEVEN_BITS)     \
+         EMIT_TWO_ASCII_BYTES ((c1) & 0x7F, (c2) & 0x7F);              \
        else                                                            \
-         *dst++ = c1 | 0x80, *dst++ = c2 | 0x80;                       \
-       CODING_SPEC_ISO_SINGLE_SHIFTING (coding) = 0;                   \
+         EMIT_TWO_BYTES ((c1) | 0x80, (c2) | 0x80);                    \
+       CODING_ISO_SINGLE_SHIFTING (coding) = 0;                        \
        break;                                                          \
       }                                                                        \
-    else if (charset == CODING_SPEC_ISO_PLANE_CHARSET (coding, 0))     \
+    else if (id == CODING_ISO_INVOKED_CHARSET (coding, 0))             \
       {                                                                        \
-       *dst++ = c1 & 0x7F, *dst++= c2 & 0x7F;                          \
+       EMIT_TWO_ASCII_BYTES ((c1) & 0x7F, (c2) & 0x7F);                \
        break;                                                          \
       }                                                                        \
-    else if (charset == CODING_SPEC_ISO_PLANE_CHARSET (coding, 1))     \
+    else if (id == CODING_ISO_INVOKED_CHARSET (coding, 1))             \
       {                                                                        \
-       *dst++ = c1 | 0x80, *dst++= c2 | 0x80;                          \
+       EMIT_TWO_BYTES ((c1) | 0x80, (c2) | 0x80);                      \
        break;                                                          \
       }                                                                        \
     else                                                               \
@@ -2403,73 +3594,49 @@ decode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
         must invoke it, or, at first, designate it to some graphic     \
         register.  Then repeat the loop to actually produce the        \
         character.  */                                                 \
-      dst = encode_invocation_designation (charset, coding, dst);      \
+      dst = encode_invocation_designation (charset, coding, dst,       \
+                                          &produced_chars);            \
   } while (1)
 
-#define ENCODE_ISO_CHARACTER(c)                                        \
-  do {                                                         \
-    int charset, c1, c2;                                       \
-                                                               \
-    SPLIT_CHAR (c, charset, c1, c2);                           \
-    if (CHARSET_DEFINED_P (charset))                           \
-      {                                                                \
-       if (CHARSET_DIMENSION (charset) == 1)                   \
-         {                                                     \
-           if (charset == CHARSET_ASCII                        \
-               && coding->flags & CODING_FLAG_ISO_USE_ROMAN)   \
-             charset = charset_latin_jisx0201;                 \
-           ENCODE_ISO_CHARACTER_DIMENSION1 (charset, c1);      \
-         }                                                     \
-       else                                                    \
-         {                                                     \
-           if (charset == charset_jisx0208                     \
-               && coding->flags & CODING_FLAG_ISO_USE_OLDJIS)  \
-             charset = charset_jisx0208_1978;                  \
-           ENCODE_ISO_CHARACTER_DIMENSION2 (charset, c1, c2);  \
-         }                                                     \
-      }                                                                \
-    else                                                       \
-      {                                                                \
-       *dst++ = c1;                                            \
-       if (c2 >= 0)                                            \
-         *dst++ = c2;                                          \
-      }                                                                \
-  } while (0)
-
-
-/* Instead of encoding character C, produce one or two `?'s.  */
 
-#define ENCODE_UNSAFE_CHARACTER(c)                             \
-  do {                                                         \
-    ENCODE_ISO_CHARACTER (CODING_REPLACEMENT_CHARACTER);       \
-    if (CHARSET_WIDTH (CHAR_CHARSET (c)) > 1)                  \
-      ENCODE_ISO_CHARACTER (CODING_REPLACEMENT_CHARACTER);     \
+#define ENCODE_ISO_CHARACTER(charset, c)                                  \
+  do {                                                                    \
+    int code = ENCODE_CHAR ((charset),(c));                               \
+                                                                          \
+    if (CHARSET_DIMENSION (charset) == 1)                                 \
+      ENCODE_ISO_CHARACTER_DIMENSION1 ((charset), code);                  \
+    else                                                                  \
+      ENCODE_ISO_CHARACTER_DIMENSION2 ((charset), code >> 8, code & 0xFF); \
   } while (0)
 
 
 /* Produce designation and invocation codes at a place pointed by DST
-   to use CHARSET.  The element `spec.iso2022' of *CODING is updated.
+   to use CHARSET.  The element `spec.iso_2022' of *CODING is updated.
    Return new DST.  */
 
 unsigned char *
-encode_invocation_designation (charset, coding, dst)
-     int charset;
+encode_invocation_designation (charset, coding, dst, p_nchars)
+     struct charset *charset;
      struct coding_system *coding;
      unsigned char *dst;
+     int *p_nchars;
 {
+  int multibytep = coding->dst_multibyte;
+  int produced_chars = *p_nchars;
   int reg;                     /* graphic register number */
+  int id = CHARSET_ID (charset);
 
   /* At first, check designations.  */
   for (reg = 0; reg < 4; reg++)
-    if (charset == CODING_SPEC_ISO_DESIGNATION (coding, reg))
+    if (id == CODING_ISO_DESIGNATION (coding, reg))
       break;
 
   if (reg >= 4)
     {
       /* CHARSET is not yet designated to any graphic registers.  */
       /* At first check the requested designation.  */
-      reg = CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset);
-      if (reg == CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION)
+      reg = CODING_ISO_REQUEST (coding, id);
+      if (reg < 0)
        /* Since CHARSET requests no special designation, designate it
           to graphic register 0.  */
        reg = 0;
@@ -2477,8 +3644,8 @@ encode_invocation_designation (charset, coding, dst)
       ENCODE_DESIGNATION (charset, reg, coding);
     }
 
-  if (CODING_SPEC_ISO_INVOCATION (coding, 0) != reg
-      && CODING_SPEC_ISO_INVOCATION (coding, 1) != reg)
+  if (CODING_ISO_INVOCATION (coding, 0) != reg
+      && CODING_ISO_INVOCATION (coding, 1) != reg)
     {
       /* Since the graphic register REG is not invoked to any graphic
         planes, invoke it to graphic plane 0.  */
@@ -2493,14 +3660,14 @@ encode_invocation_designation (charset, coding, dst)
          break;
 
        case 2:                 /* graphic register 2 */
-         if (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT)
+         if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT)
            ENCODE_SINGLE_SHIFT_2;
          else
            ENCODE_LOCKING_SHIFT_2;
          break;
 
        case 3:                 /* graphic register 3 */
-         if (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT)
+         if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_SINGLE_SHIFT)
            ENCODE_SINGLE_SHIFT_3;
          else
            ENCODE_LOCKING_SHIFT_3;
@@ -2508,98 +3675,55 @@ encode_invocation_designation (charset, coding, dst)
        }
     }
 
+  *p_nchars = produced_chars;
   return dst;
 }
 
-/* Produce 2-byte codes for encoded composition rule RULE.  */
-
-#define ENCODE_COMPOSITION_RULE(rule)          \
-  do {                                         \
-    int gref, nref;                            \
-    COMPOSITION_DECODE_RULE (rule, gref, nref);        \
-    *dst++ = 32 + 81 + gref;                   \
-    *dst++ = 32 + nref;                                \
-  } while (0)
-
-/* Produce codes for indicating the start of a composition sequence
-   (ESC 0, ESC 3, or ESC 4).  DATA points to an array of integers
-   which specify information about the composition.  See the comment
-   in coding.h for the format of DATA.  */
-
-#define ENCODE_COMPOSITION_START(coding, data)                         \
+/* The following three macros produce codes for indicating direction
+   of text.  */
+#define ENCODE_CONTROL_SEQUENCE_INTRODUCER                             \
   do {                                                                 \
-    coding->composing = data[3];                                       \
-    *dst++ = ISO_CODE_ESC;                                             \
-    if (coding->composing == COMPOSITION_RELATIVE)                     \
-      *dst++ = '0';                                                    \
+    if (CODING_ISO_FLAGS (coding) == CODING_ISO_FLAG_SEVEN_BITS)       \
+      EMIT_TWO_ASCII_BYTES (ISO_CODE_ESC, '[');                                \
     else                                                               \
-      {                                                                        \
-       *dst++ = (coding->composing == COMPOSITION_WITH_ALTCHARS        \
-                 ? '3' : '4');                                         \
-       coding->cmp_data_index = coding->cmp_data_start + 4;            \
-       coding->composition_rule_follows = 0;                           \
-      }                                                                        \
+      EMIT_ONE_BYTE (ISO_CODE_CSI);                                    \
   } while (0)
 
-/* Produce codes for indicating the end of the current composition.  */
 
-#define ENCODE_COMPOSITION_END(coding, data)                   \
-  do {                                                         \
-    *dst++ = ISO_CODE_ESC;                                     \
-    *dst++ = '1';                                              \
-    coding->cmp_data_start += data[0];                         \
-    coding->composing = COMPOSITION_NO;                                \
-    if (coding->cmp_data_start == coding->cmp_data->used       \
-       && coding->cmp_data->next)                              \
-      {                                                                \
-       coding->cmp_data = coding->cmp_data->next;              \
-       coding->cmp_data_start = 0;                             \
-      }                                                                \
+#define ENCODE_DIRECTION_R2L()                 \
+  do {                                         \
+    ENCODE_CONTROL_SEQUENCE_INTRODUCER (dst);  \
+    EMIT_TWO_ASCII_BYTES ('2', ']');           \
   } while (0)
 
-/* Produce composition start sequence ESC 0.  Here, this sequence
-   doesn't mean the start of a new composition but means that we have
-   just produced components (alternate chars and composition rules) of
-   the composition and the actual text follows in SRC.  */
 
-#define ENCODE_COMPOSITION_FAKE_START(coding)  \
+#define ENCODE_DIRECTION_L2R()                 \
   do {                                         \
-    *dst++ = ISO_CODE_ESC;                     \
-    *dst++ = '0';                              \
-    coding->composing = COMPOSITION_RELATIVE;  \
+    ENCODE_CONTROL_SEQUENCE_INTRODUCER (dst);  \
+    EMIT_TWO_ASCII_BYTES ('0', ']');           \
   } while (0)
 
-/* The following three macros produce codes for indicating direction
-   of text.  */
-#define ENCODE_CONTROL_SEQUENCE_INTRODUCER             \
-  do {                                                 \
-    if (coding->flags == CODING_FLAG_ISO_SEVEN_BITS)   \
-      *dst++ = ISO_CODE_ESC, *dst++ = '[';             \
-    else                                               \
-      *dst++ = ISO_CODE_CSI;                           \
-  } while (0)
-
-#define ENCODE_DIRECTION_R2L   \
-  ENCODE_CONTROL_SEQUENCE_INTRODUCER (dst), *dst++ = '2', *dst++ = ']'
-
-#define ENCODE_DIRECTION_L2R   \
-  ENCODE_CONTROL_SEQUENCE_INTRODUCER (dst), *dst++ = '0', *dst++ = ']'
 
 /* Produce codes for designation and invocation to reset the graphic
    planes and registers to initial state.  */
-#define ENCODE_RESET_PLANE_AND_REGISTER                                            \
-  do {                                                                     \
-    int reg;                                                               \
-    if (CODING_SPEC_ISO_INVOCATION (coding, 0) != 0)                       \
-      ENCODE_SHIFT_IN;                                                     \
-    for (reg = 0; reg < 4; reg++)                                          \
-      if (CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, reg) >= 0           \
-         && (CODING_SPEC_ISO_DESIGNATION (coding, reg)                     \
-             != CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, reg)))        \
-       ENCODE_DESIGNATION                                                  \
-         (CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, reg), reg, coding); \
+#define ENCODE_RESET_PLANE_AND_REGISTER()                              \
+  do {                                                                 \
+    int reg;                                                           \
+    struct charset *charset;                                           \
+                                                                       \
+    if (CODING_ISO_INVOCATION (coding, 0) != 0)                                \
+      ENCODE_SHIFT_IN;                                                 \
+    for (reg = 0; reg < 4; reg++)                                      \
+      if (CODING_ISO_INITIAL (coding, reg) >= 0                                \
+         && (CODING_ISO_DESIGNATION (coding, reg)                      \
+             != CODING_ISO_INITIAL (coding, reg)))                     \
+       {                                                               \
+         charset = CHARSET_FROM_ID (CODING_ISO_INITIAL (coding, reg)); \
+         ENCODE_DESIGNATION (charset, reg, coding);                    \
+       }                                                               \
   } while (0)
 
+
 /* Produce designation sequences of charsets in the line started from
    SRC to a place pointed by DST, and return updated DST.
 
@@ -2607,41 +3731,51 @@ encode_invocation_designation (charset, coding, dst)
    find all the necessary designations.  */
 
 static unsigned char *
-encode_designation_at_bol (coding, translation_table, src, src_end, dst)
+encode_designation_at_bol (coding, charbuf, charbuf_end, dst)
      struct coding_system *coding;
-     Lisp_Object translation_table;
-     const unsigned char *src, *src_end;
+     int *charbuf, *charbuf_end;
      unsigned char *dst;
 {
-  int charset, c, found = 0, reg;
+  struct charset *charset;
   /* Table of charsets to be designated to each graphic register.  */
   int r[4];
+  int c, found = 0, reg;
+  int produced_chars = 0;
+  int multibytep = coding->dst_multibyte;
+  Lisp_Object attrs;
+  Lisp_Object charset_list;
+
+  attrs = CODING_ID_ATTRS (coding->id);
+  charset_list = CODING_ATTR_CHARSET_LIST (attrs);
+  if (EQ (charset_list, Qiso_2022))
+    charset_list = Viso_2022_charset_list;
 
   for (reg = 0; reg < 4; reg++)
     r[reg] = -1;
 
   while (found < 4)
     {
-      ONE_MORE_CHAR (c);
+      int id;
+
+      c = *charbuf++;
       if (c == '\n')
        break;
-
-      charset = CHAR_CHARSET (c);
-      reg = CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset);
-      if (reg != CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION && r[reg] < 0)
+      charset = char_charset (c, charset_list, NULL);
+      id = CHARSET_ID (charset);
+      reg = CODING_ISO_REQUEST (coding, id);
+      if (reg >= 0 && r[reg] < 0)
        {
          found++;
-         r[reg] = charset;
+         r[reg] = id;
        }
     }
 
- label_end_of_loop:
   if (found)
     {
       for (reg = 0; reg < 4; reg++)
        if (r[reg] >= 0
-           && CODING_SPEC_ISO_DESIGNATION (coding, reg) != r[reg])
-         ENCODE_DESIGNATION (r[reg], reg, coding);
+           && CODING_ISO_DESIGNATION (coding, reg) != r[reg])
+         ENCODE_DESIGNATION (CHARSET_FROM_ID (r[reg]), reg, coding);
     }
 
   return dst;
@@ -2649,188 +3783,160 @@ encode_designation_at_bol (coding, translation_table, src, src_end, dst)
 
 /* See the above "GENERAL NOTES on `encode_coding_XXX ()' functions".  */
 
-static void
-encode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
+static int
+encode_coding_iso_2022 (coding)
      struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char *destination;
-     int src_bytes, dst_bytes;
 {
-  const unsigned char *src = source;
-  const unsigned char *src_end = source + src_bytes;
-  unsigned char *dst = destination;
-  unsigned char *dst_end = destination + dst_bytes;
-  /* Since the maximum bytes produced by each loop is 20, we subtract 19
-     from DST_END to assure overflow checking is necessary only at the
-     head of loop.  */
-  unsigned char *adjusted_dst_end = dst_end - 19;
-  /* SRC_BASE remembers the start position in source in each loop.
-     The loop will be exited when there's not enough source text to
-     analyze multi-byte codes (within macro ONE_MORE_CHAR), or when
-     there's not enough destination area to produce encoded codes
-     (within macro EMIT_BYTES).  */
-  const unsigned char *src_base;
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int safe_room = 16;
+  int bol_designation
+    = (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DESIGNATE_AT_BOL
+       && CODING_ISO_BOL (coding));
+  int produced_chars = 0;
+  Lisp_Object attrs, eol_type, charset_list;
+  int ascii_compatible;
   int c;
-  Lisp_Object translation_table;
-  Lisp_Object safe_chars;
-
-  if (coding->flags & CODING_FLAG_ISO_SAFE)
-    coding->mode |= CODING_MODE_INHIBIT_UNENCODABLE_CHAR;
+  int preferred_charset_id = -1;
 
-  safe_chars = coding_safe_chars (coding->symbol);
+  CODING_GET_INFO (coding, attrs, charset_list);
+  eol_type = CODING_ID_EOL_TYPE (coding->id);
+  if (VECTORP (eol_type))
+    eol_type = Qunix;
 
-  if (NILP (Venable_character_translation))
-    translation_table = Qnil;
-  else
-    {
-      translation_table = coding->translation_table_for_encode;
-      if (NILP (translation_table))
-       translation_table = Vstandard_translation_table_for_encode;
-    }
+  setup_iso_safe_charsets (attrs);
+  /* Charset list may have been changed.  */
+  charset_list = CODING_ATTR_CHARSET_LIST (attrs);
+  coding->safe_charsets = (char *) SDATA (CODING_ATTR_SAFE_CHARSETS(attrs));
 
-  coding->consumed_char = 0;
-  coding->errors = 0;
-  while (1)
-    {
-      src_base = src;
+  ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
 
-      if (dst >= (dst_bytes ? adjusted_dst_end : (src - 19)))
-       {
-         coding->result = CODING_FINISH_INSUFFICIENT_DST;
-         break;
-       }
+  while (charbuf < charbuf_end)
+    {
+      ASSURE_DESTINATION (safe_room);
 
-      if (coding->flags & CODING_FLAG_ISO_DESIGNATE_AT_BOL
-         && CODING_SPEC_ISO_BOL (coding))
+      if (bol_designation)
        {
+         unsigned char *dst_prev = dst;
+
          /* We have to produce designation sequences if any now.  */
-         dst = encode_designation_at_bol (coding, translation_table,
-                                          src, src_end, dst);
-         CODING_SPEC_ISO_BOL (coding) = 0;
+         dst = encode_designation_at_bol (coding, charbuf, charbuf_end, dst);
+         bol_designation = 0;
+         /* We are sure that designation sequences are all ASCII bytes.  */
+         produced_chars += dst - dst_prev;
        }
 
-      /* Check composition start and end.  */
-      if (coding->composing != COMPOSITION_DISABLED
-         && coding->cmp_data_start < coding->cmp_data->used)
-       {
-         struct composition_data *cmp_data = coding->cmp_data;
-         int *data = cmp_data->data + coding->cmp_data_start;
-         int this_pos = cmp_data->char_offset + coding->consumed_char;
+      c = *charbuf++;
 
-         if (coding->composing == COMPOSITION_RELATIVE)
-           {
-             if (this_pos == data[2])
-               {
-                 ENCODE_COMPOSITION_END (coding, data);
-                 cmp_data = coding->cmp_data;
-                 data = cmp_data->data + coding->cmp_data_start;
-               }
-           }
-         else if (COMPOSING_P (coding))
-           {
-             /* COMPOSITION_WITH_ALTCHARS or COMPOSITION_WITH_RULE_ALTCHAR  */
-             if (coding->cmp_data_index == coding->cmp_data_start + data[0])
-               /* We have consumed components of the composition.
-                   What follows in SRC is the composition's base
-                   text.  */
-               ENCODE_COMPOSITION_FAKE_START (coding);
-             else
-               {
-                 int c = cmp_data->data[coding->cmp_data_index++];
-                 if (coding->composition_rule_follows)
-                   {
-                     ENCODE_COMPOSITION_RULE (c);
-                     coding->composition_rule_follows = 0;
-                   }
-                 else
-                   {
-                     if (coding->mode & CODING_MODE_INHIBIT_UNENCODABLE_CHAR
-                         && ! CODING_SAFE_CHAR_P (safe_chars, c))
-                       ENCODE_UNSAFE_CHARACTER (c);
-                     else
-                       ENCODE_ISO_CHARACTER (c);
-                     if (coding->composing == COMPOSITION_WITH_RULE_ALTCHARS)
-                       coding->composition_rule_follows = 1;
-                   }
-                 continue;
-               }
-           }
-         if (!COMPOSING_P (coding))
+      if (c < 0)
+       {
+         /* Handle an annotation.  */
+         switch (*charbuf)
            {
-             if (this_pos == data[1])
-               {
-                 ENCODE_COMPOSITION_START (coding, data);
-                 continue;
-               }
+           case CODING_ANNOTATE_COMPOSITION_MASK:
+             /* Not yet implemented.  */
+             break;
+           case CODING_ANNOTATE_CHARSET_MASK:
+             preferred_charset_id = charbuf[2];
+             if (preferred_charset_id >= 0
+                 && NILP (Fmemq (make_number (preferred_charset_id),
+                                 charset_list)))
+               preferred_charset_id = -1;
+             break;
+           default:
+             abort ();
            }
+         charbuf += -c - 1;
+         continue;
        }
 
-      ONE_MORE_CHAR (c);
-
       /* Now encode the character C.  */
       if (c < 0x20 || c == 0x7F)
        {
-         if (c == '\r')
+         if (c == '\n'
+             || (c == '\r' && EQ (eol_type, Qmac)))
            {
-             if (! (coding->mode & CODING_MODE_SELECTIVE_DISPLAY))
+             if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_RESET_AT_EOL)
+               ENCODE_RESET_PLANE_AND_REGISTER ();
+             if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_INIT_AT_BOL)
                {
-                 if (coding->flags & CODING_FLAG_ISO_RESET_AT_CNTL)
-                   ENCODE_RESET_PLANE_AND_REGISTER;
-                 *dst++ = c;
-                 continue;
+                 int i;
+
+                 for (i = 0; i < 4; i++)
+                   CODING_ISO_DESIGNATION (coding, i)
+                     = CODING_ISO_INITIAL (coding, i);
                }
-             /* fall down to treat '\r' as '\n' ...  */
-             c = '\n';
-           }
-         if (c == '\n')
-           {
-             if (coding->flags & CODING_FLAG_ISO_RESET_AT_EOL)
-               ENCODE_RESET_PLANE_AND_REGISTER;
-             if (coding->flags & CODING_FLAG_ISO_INIT_AT_BOL)
-               bcopy (coding->spec.iso2022.initial_designation,
-                      coding->spec.iso2022.current_designation,
-                      sizeof coding->spec.iso2022.initial_designation);
-             if (coding->eol_type == CODING_EOL_LF
-                 || coding->eol_type == CODING_EOL_UNDECIDED)
-               *dst++ = ISO_CODE_LF;
-             else if (coding->eol_type == CODING_EOL_CRLF)
-               *dst++ = ISO_CODE_CR, *dst++ = ISO_CODE_LF;
-             else
-               *dst++ = ISO_CODE_CR;
-             CODING_SPEC_ISO_BOL (coding) = 1;
+             bol_designation
+               = CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_DESIGNATE_AT_BOL;
            }
+         else if (CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_RESET_AT_CNTL)
+           ENCODE_RESET_PLANE_AND_REGISTER ();
+         EMIT_ONE_ASCII_BYTE (c);
+       }
+      else if (ASCII_CHAR_P (c))
+       {
+         if (ascii_compatible)
+           EMIT_ONE_ASCII_BYTE (c);
          else
            {
-             if (coding->flags & CODING_FLAG_ISO_RESET_AT_CNTL)
-               ENCODE_RESET_PLANE_AND_REGISTER;
-             *dst++ = c;
+             struct charset *charset = CHARSET_FROM_ID (charset_ascii);
+             ENCODE_ISO_CHARACTER (charset, c);
            }
        }
-      else if (ASCII_BYTE_P (c))
-       ENCODE_ISO_CHARACTER (c);
-      else if (SINGLE_BYTE_CHAR_P (c))
+      else if (CHAR_BYTE8_P (c))
        {
-         *dst++ = c;
-         coding->errors++;
+         c = CHAR_TO_BYTE8 (c);
+         EMIT_ONE_BYTE (c);
        }
-      else if (coding->mode & CODING_MODE_INHIBIT_UNENCODABLE_CHAR
-              && ! CODING_SAFE_CHAR_P (safe_chars, c))
-       ENCODE_UNSAFE_CHARACTER (c);
       else
-       ENCODE_ISO_CHARACTER (c);
+       {
+         struct charset *charset;
 
-      coding->consumed_char++;
+         if (preferred_charset_id >= 0)
+           {
+             charset = CHARSET_FROM_ID (preferred_charset_id);
+             if (! CHAR_CHARSET_P (c, charset))
+               charset = char_charset (c, charset_list, NULL);
+           }
+         else
+           charset = char_charset (c, charset_list, NULL);
+         if (!charset)
+           {
+             if (coding->mode & CODING_MODE_SAFE_ENCODING)
+               {
+                 c = CODING_INHIBIT_CHARACTER_SUBSTITUTION;
+                 charset = CHARSET_FROM_ID (charset_ascii);
+               }
+             else
+               {
+                 c = coding->default_char;
+                 charset = char_charset (c, charset_list, NULL);
+               }
+           }
+         ENCODE_ISO_CHARACTER (charset, c);
+       }
     }
 
- label_end_of_loop:
-  coding->consumed = src_base - source;
-  coding->produced = coding->produced_char = dst - destination;
+  if (coding->mode & CODING_MODE_LAST_BLOCK
+      && CODING_ISO_FLAGS (coding) & CODING_ISO_FLAG_RESET_AT_EOL)
+    {
+      ASSURE_DESTINATION (safe_room);
+      ENCODE_RESET_PLANE_AND_REGISTER ();
+    }
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  CODING_ISO_BOL (coding) = bol_designation;
+  coding->produced_char += produced_chars;
+  coding->produced = dst - coding->destination;
+  return 0;
 }
 
 \f
-/*** 4. SJIS and BIG5 handlers ***/
+/*** 8,9. SJIS and BIG5 handlers ***/
 
-/* Although SJIS and BIG5 are not ISO coding systems, they are used
+/* Although SJIS and BIG5 are not ISO's coding system, they are used
    quite widely.  So, for the moment, Emacs supports them in the bare
    C code.  But, in the future, they may be supported only by CCL.  */
 
@@ -2839,12 +3945,12 @@ encode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
    as is.  A character of charset katakana-jisx0201 is encoded by
    "position-code + 0x80".  A character of charset japanese-jisx0208
    is encoded in 2-byte but two position-codes are divided and shifted
-   so that it fits in the range below.
+   so that it fit in the range below.
 
    --- CODE RANGE of SJIS ---
    (character set)     (range)
    ASCII               0x00 .. 0x7F
-   KATAKANA-JISX0201   0xA1 .. 0xDF
+   KATAKANA-JISX0201   0xA0 .. 0xDF
    JISX0208 (1st byte) 0x81 .. 0x9F and 0xE0 .. 0xEF
            (2nd byte)  0x40 .. 0x7E and 0x80 .. 0xFC
    -------------------------------
@@ -2853,7 +3959,7 @@ encode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
 
 /* BIG5 is a coding system encoding two character sets: ASCII and
    Big5.  An ASCII character is encoded as is.  Big5 is a two-byte
-   character set and is encoded in two bytes.
+   character set and is encoded in two-byte.
 
    --- CODE RANGE of BIG5 ---
    (character set)     (range)
@@ -2862,1136 +3968,1310 @@ encode_coding_iso2022 (coding, source, destination, src_bytes, dst_bytes)
        (2nd byte)      0x40 .. 0x7E and 0xA1 .. 0xFE
    --------------------------
 
-   Since the number of characters in Big5 is larger than maximum
-   characters in Emacs' charset (96x96), it can't be handled as one
-   charset.  So, in Emacs, Big5 is divided into two: `charset-big5-1'
-   and `charset-big5-2'.  Both are DIMENSION2 and CHARS94.  The former
-   contains frequently used characters and the latter contains less
-   frequently used characters.  */
-
-/* Macros to decode or encode a character of Big5 in BIG5.  B1 and B2
-   are the 1st and 2nd position-codes of Big5 in BIG5 coding system.
-   C1 and C2 are the 1st and 2nd position-codes of Emacs' internal
-   format.  CHARSET is `charset_big5_1' or `charset_big5_2'.  */
-
-/* Number of Big5 characters which have the same code in 1st byte.  */
-#define BIG5_SAME_ROW (0xFF - 0xA1 + 0x7F - 0x40)
-
-#define DECODE_BIG5(b1, b2, charset, c1, c2)                           \
-  do {                                                                 \
-    unsigned int temp                                                  \
-      = (b1 - 0xA1) * BIG5_SAME_ROW + b2 - (b2 < 0x7F ? 0x40 : 0x62);  \
-    if (b1 < 0xC9)                                                     \
-      charset = charset_big5_1;                                                \
-    else                                                               \
-      {                                                                        \
-       charset = charset_big5_2;                                       \
-       temp -= (0xC9 - 0xA1) * BIG5_SAME_ROW;                          \
-      }                                                                        \
-    c1 = temp / (0xFF - 0xA1) + 0x21;                                  \
-    c2 = temp % (0xFF - 0xA1) + 0x21;                                  \
-  } while (0)
-
-#define ENCODE_BIG5(charset, c1, c2, b1, b2)                           \
-  do {                                                                 \
-    unsigned int temp = (c1 - 0x21) * (0xFF - 0xA1) + (c2 - 0x21);     \
-    if (charset == charset_big5_2)                                     \
-      temp += BIG5_SAME_ROW * (0xC9 - 0xA1);                           \
-    b1 = temp / BIG5_SAME_ROW + 0xA1;                                  \
-    b2 = temp % BIG5_SAME_ROW;                                         \
-    b2 += b2 < 0x3F ? 0x40 : 0x62;                                     \
-  } while (0)
+  */
 
 /* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
    Check if a text is encoded in SJIS.  If it is, return
-   CODING_CATEGORY_MASK_SJIS, else return 0.  */
+   CATEGORY_MASK_SJIS, else return 0.  */
 
 static int
-detect_coding_sjis (src, src_end, multibytep)
-     unsigned char *src, *src_end;
-     int multibytep;
+detect_coding_sjis (coding, detect_info)
+     struct coding_system *coding;
+     struct coding_detection_info *detect_info;
 {
+  const unsigned char *src = coding->source, *src_base;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int multibytep = coding->src_multibyte;
+  int consumed_chars = 0;
+  int found = 0;
   int c;
-  /* Dummy for ONE_MORE_BYTE.  */
-  struct coding_system dummy_coding;
-  struct coding_system *coding = &dummy_coding;
+
+  detect_info->checked |= CATEGORY_MASK_SJIS;
+  /* A coding system of this category is always ASCII compatible.  */
+  src += coding->head_ascii;
 
   while (1)
     {
-      ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, CODING_CATEGORY_MASK_SJIS);
+      src_base = src;
+      ONE_MORE_BYTE (c);
       if (c < 0x80)
        continue;
-      if (c == 0x80 || c == 0xA0 || c > 0xEF)
-       return 0;
-      if (c <= 0x9F || c >= 0xE0)
+      if ((c >= 0x81 && c <= 0x9F) || (c >= 0xE0 && c <= 0xEF))
        {
-         ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, 0);
+         ONE_MORE_BYTE (c);
          if (c < 0x40 || c == 0x7F || c > 0xFC)
-           return 0;
+           break;
+         found = CATEGORY_MASK_SJIS;
        }
+      else if (c >= 0xA0 && c < 0xE0)
+       found = CATEGORY_MASK_SJIS;
+      else
+       break;
+    }
+  detect_info->rejected |= CATEGORY_MASK_SJIS;
+  return 0;
+
+ no_more_source:
+  if (src_base < src && coding->mode & CODING_MODE_LAST_BLOCK)
+    {
+      detect_info->rejected |= CATEGORY_MASK_SJIS;
+      return 0;
     }
+  detect_info->found |= found;
+  return 1;
 }
 
 /* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
    Check if a text is encoded in BIG5.  If it is, return
-   CODING_CATEGORY_MASK_BIG5, else return 0.  */
+   CATEGORY_MASK_BIG5, else return 0.  */
 
 static int
-detect_coding_big5 (src, src_end, multibytep)
-     unsigned char *src, *src_end;
-     int multibytep;
+detect_coding_big5 (coding, detect_info)
+     struct coding_system *coding;
+     struct coding_detection_info *detect_info;
 {
+  const unsigned char *src = coding->source, *src_base;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int multibytep = coding->src_multibyte;
+  int consumed_chars = 0;
+  int found = 0;
   int c;
-  /* Dummy for ONE_MORE_BYTE.  */
-  struct coding_system dummy_coding;
-  struct coding_system *coding = &dummy_coding;
+
+  detect_info->checked |= CATEGORY_MASK_BIG5;
+  /* A coding system of this category is always ASCII compatible.  */
+  src += coding->head_ascii;
 
   while (1)
     {
-      ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, CODING_CATEGORY_MASK_BIG5);
+      src_base = src;
+      ONE_MORE_BYTE (c);
       if (c < 0x80)
        continue;
-      if (c < 0xA1 || c > 0xFE)
-       return 0;
-      ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, 0);
-      if (c < 0x40 || (c > 0x7F && c < 0xA1) || c > 0xFE)
-       return 0;
+      if (c >= 0xA1)
+       {
+         ONE_MORE_BYTE (c);
+         if (c < 0x40 || (c >= 0x7F && c <= 0xA0))
+           return 0;
+         found = CATEGORY_MASK_BIG5;
+       }
+      else
+       break;
+    }
+  detect_info->rejected |= CATEGORY_MASK_BIG5;
+  return 0;
+
+ no_more_source:
+  if (src_base < src && coding->mode & CODING_MODE_LAST_BLOCK)
+    {
+      detect_info->rejected |= CATEGORY_MASK_BIG5;
+      return 0;
     }
+  detect_info->found |= found;
+  return 1;
 }
 
-/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
-   Check if a text is encoded in UTF-8.  If it is, return
-   CODING_CATEGORY_MASK_UTF_8, else return 0.  */
+/* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions".
+   If SJIS_P is 1, decode SJIS text, else decode BIG5 test.  */
 
-#define UTF_8_1_OCTET_P(c)         ((c) < 0x80)
-#define UTF_8_EXTRA_OCTET_P(c)     (((c) & 0xC0) == 0x80)
-#define UTF_8_2_OCTET_LEADING_P(c) (((c) & 0xE0) == 0xC0)
-#define UTF_8_3_OCTET_LEADING_P(c) (((c) & 0xF0) == 0xE0)
-#define UTF_8_4_OCTET_LEADING_P(c) (((c) & 0xF8) == 0xF0)
-#define UTF_8_5_OCTET_LEADING_P(c) (((c) & 0xFC) == 0xF8)
-#define UTF_8_6_OCTET_LEADING_P(c) (((c) & 0xFE) == 0xFC)
+static void
+decode_coding_sjis (coding)
+     struct coding_system *coding;
+{
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  const unsigned char *src_base;
+  int *charbuf = coding->charbuf + coding->charbuf_used;
+  int *charbuf_end
+    = coding->charbuf + coding->charbuf_size - MAX_ANNOTATION_LENGTH;
+  int consumed_chars = 0, consumed_chars_base;
+  int multibytep = coding->src_multibyte;
+  struct charset *charset_roman, *charset_kanji, *charset_kana;
+  struct charset *charset_kanji2;
+  Lisp_Object attrs, charset_list, val;
+  int char_offset = coding->produced_char;
+  int last_offset = char_offset;
+  int last_id = charset_ascii;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+
+  val = charset_list;
+  charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_kana = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_kanji = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_kanji2 = NILP (val) ? NULL : CHARSET_FROM_ID (XINT (XCAR (val)));
+
+  while (1)
+    {
+      int c, c1;
+      struct charset *charset;
+
+      src_base = src;
+      consumed_chars_base = consumed_chars;
+
+      if (charbuf >= charbuf_end)
+       break;
+
+      ONE_MORE_BYTE (c);
+      if (c < 0)
+       goto invalid_code;
+      if (c < 0x80)
+       charset = charset_roman;
+      else if (c == 0x80 || c == 0xA0)
+       goto invalid_code;
+      else if (c >= 0xA1 && c <= 0xDF)
+       {
+         /* SJIS -> JISX0201-Kana */
+         c &= 0x7F;
+         charset = charset_kana;
+       }
+      else if (c <= 0xEF)
+       {
+         /* SJIS -> JISX0208 */
+         ONE_MORE_BYTE (c1);
+         if (c1 < 0x40 || c1 == 0x7F || c1 > 0xFC)
+           goto invalid_code;
+         c = (c << 8) | c1;
+         SJIS_TO_JIS (c);
+         charset = charset_kanji;
+       }
+      else if (c <= 0xFC && charset_kanji2)
+       {
+         /* SJIS -> JISX0213-2 */
+         ONE_MORE_BYTE (c1);
+         if (c1 < 0x40 || c1 == 0x7F || c1 > 0xFC)
+           goto invalid_code;
+         c = (c << 8) | c1;
+         SJIS_TO_JIS2 (c);
+         charset = charset_kanji2;
+       }
+      else
+       goto invalid_code;
+      if (charset->id != charset_ascii
+         && last_id != charset->id)
+       {
+         if (last_id != charset_ascii)
+           ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+         last_id = charset->id;
+         last_offset = char_offset;
+       }
+      CODING_DECODE_CHAR (coding, src, src_base, src_end, charset, c, c);
+      *charbuf++ = c;
+      char_offset++;
+      continue;
+
+    invalid_code:
+      src = src_base;
+      consumed_chars = consumed_chars_base;
+      ONE_MORE_BYTE (c);
+      *charbuf++ = c < 0 ? -c : BYTE8_TO_CHAR (c);
+      char_offset++;
+      coding->errors++;
+    }
+
+ no_more_source:
+  if (last_id != charset_ascii)
+    ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+  coding->consumed_char += consumed_chars_base;
+  coding->consumed = src_base - coding->source;
+  coding->charbuf_used = charbuf - coding->charbuf;
+}
+
+static void
+decode_coding_big5 (coding)
+     struct coding_system *coding;
+{
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  const unsigned char *src_base;
+  int *charbuf = coding->charbuf + coding->charbuf_used;
+  int *charbuf_end
+    = coding->charbuf + coding->charbuf_size - MAX_ANNOTATION_LENGTH;
+  int consumed_chars = 0, consumed_chars_base;
+  int multibytep = coding->src_multibyte;
+  struct charset *charset_roman, *charset_big5;
+  Lisp_Object attrs, charset_list, val;
+  int char_offset = coding->produced_char;
+  int last_offset = char_offset;
+  int last_id = charset_ascii;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+  val = charset_list;
+  charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_big5 = CHARSET_FROM_ID (XINT (XCAR (val)));
+
+  while (1)
+    {
+      int c, c1;
+      struct charset *charset;
+
+      src_base = src;
+      consumed_chars_base = consumed_chars;
+
+      if (charbuf >= charbuf_end)
+       break;
+
+      ONE_MORE_BYTE (c);
+
+      if (c < 0)
+       goto invalid_code;
+      if (c < 0x80)
+       charset = charset_roman;
+      else
+       {
+         /* BIG5 -> Big5 */
+         if (c < 0xA1 || c > 0xFE)
+           goto invalid_code;
+         ONE_MORE_BYTE (c1);
+         if (c1 < 0x40 || (c1 > 0x7E && c1 < 0xA1) || c1 > 0xFE)
+           goto invalid_code;
+         c = c << 8 | c1;
+         charset = charset_big5;
+       }
+      if (charset->id != charset_ascii
+         && last_id != charset->id)
+       {
+         if (last_id != charset_ascii)
+           ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+         last_id = charset->id;
+         last_offset = char_offset;
+       }
+      CODING_DECODE_CHAR (coding, src, src_base, src_end, charset, c, c);
+      *charbuf++ = c;
+      char_offset++;
+      continue;
+
+    invalid_code:
+      src = src_base;
+      consumed_chars = consumed_chars_base;
+      ONE_MORE_BYTE (c);
+      *charbuf++ = c < 0 ? -c : BYTE8_TO_CHAR (c);
+      char_offset++;
+      coding->errors++;
+    }
+
+ no_more_source:
+  if (last_id != charset_ascii)
+    ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+  coding->consumed_char += consumed_chars_base;
+  coding->consumed = src_base - coding->source;
+  coding->charbuf_used = charbuf - coding->charbuf;
+}
+
+/* See the above "GENERAL NOTES on `encode_coding_XXX ()' functions".
+   This function can encode charsets `ascii', `katakana-jisx0201',
+   `japanese-jisx0208', `chinese-big5-1', and `chinese-big5-2'.  We
+   are sure that all these charsets are registered as official charset
+   (i.e. do not have extended leading-codes).  Characters of other
+   charsets are produced without any encoding.  If SJIS_P is 1, encode
+   SJIS text, else encode BIG5 text.  */
 
 static int
-detect_coding_utf_8 (src, src_end, multibytep)
-     unsigned char *src, *src_end;
-     int multibytep;
+encode_coding_sjis (coding)
+     struct coding_system *coding;
 {
-  unsigned char c;
-  int seq_maybe_bytes;
-  /* Dummy for ONE_MORE_BYTE.  */
-  struct coding_system dummy_coding;
-  struct coding_system *coding = &dummy_coding;
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int safe_room = 4;
+  int produced_chars = 0;
+  Lisp_Object attrs, charset_list, val;
+  int ascii_compatible;
+  struct charset *charset_roman, *charset_kanji, *charset_kana;
+  struct charset *charset_kanji2;
+  int c;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+  val = charset_list;
+  charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_kana = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_kanji = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_kanji2 = NILP (val) ? NULL : CHARSET_FROM_ID (XINT (XCAR (val)));
+
+  ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
+
+  while (charbuf < charbuf_end)
+    {
+      ASSURE_DESTINATION (safe_room);
+      c = *charbuf++;
+      /* Now encode the character C.  */
+      if (ASCII_CHAR_P (c) && ascii_compatible)
+       EMIT_ONE_ASCII_BYTE (c);
+      else if (CHAR_BYTE8_P (c))
+       {
+         c = CHAR_TO_BYTE8 (c);
+         EMIT_ONE_BYTE (c);
+       }
+      else
+       {
+         unsigned code;
+         struct charset *charset = char_charset (c, charset_list, &code);
+
+         if (!charset)
+           {
+             if (coding->mode & CODING_MODE_SAFE_ENCODING)
+               {
+                 code = CODING_INHIBIT_CHARACTER_SUBSTITUTION;
+                 charset = CHARSET_FROM_ID (charset_ascii);
+               }
+             else
+               {
+                 c = coding->default_char;
+                 charset = char_charset (c, charset_list, &code);
+               }
+           }
+         if (code == CHARSET_INVALID_CODE (charset))
+           abort ();
+         if (charset == charset_kanji)
+           {
+             int c1, c2;
+             JIS_TO_SJIS (code);
+             c1 = code >> 8, c2 = code & 0xFF;
+             EMIT_TWO_BYTES (c1, c2);
+           }
+         else if (charset == charset_kana)
+           EMIT_ONE_BYTE (code | 0x80);
+         else if (charset_kanji2 && charset == charset_kanji2)
+           {
+             int c1, c2;
+
+             c1 = code >> 8;
+             if (c1 == 0x21 || (c1 >= 0x23 && c1 < 0x25)
+                 || (c1 >= 0x2C && c1 <= 0x2F) || c1 >= 0x6E)
+               {
+                 JIS_TO_SJIS2 (code);
+                 c1 = code >> 8, c2 = code & 0xFF;
+                 EMIT_TWO_BYTES (c1, c2);
+               }
+             else
+               EMIT_ONE_ASCII_BYTE (code & 0x7F);
+           }
+         else
+           EMIT_ONE_ASCII_BYTE (code & 0x7F);
+       }
+    }
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding->produced_char += produced_chars;
+  coding->produced = dst - coding->destination;
+  return 0;
+}
+
+static int
+encode_coding_big5 (coding)
+     struct coding_system *coding;
+{
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int safe_room = 4;
+  int produced_chars = 0;
+  Lisp_Object attrs, charset_list, val;
+  int ascii_compatible;
+  struct charset *charset_roman, *charset_big5;
+  int c;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+  val = charset_list;
+  charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_big5 = CHARSET_FROM_ID (XINT (XCAR (val)));
+  ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
+
+  while (charbuf < charbuf_end)
+    {
+      ASSURE_DESTINATION (safe_room);
+      c = *charbuf++;
+      /* Now encode the character C.  */
+      if (ASCII_CHAR_P (c) && ascii_compatible)
+       EMIT_ONE_ASCII_BYTE (c);
+      else if (CHAR_BYTE8_P (c))
+       {
+         c = CHAR_TO_BYTE8 (c);
+         EMIT_ONE_BYTE (c);
+       }
+      else
+       {
+         unsigned code;
+         struct charset *charset = char_charset (c, charset_list, &code);
+
+         if (! charset)
+           {
+             if (coding->mode & CODING_MODE_SAFE_ENCODING)
+               {
+                 code = CODING_INHIBIT_CHARACTER_SUBSTITUTION;
+                 charset = CHARSET_FROM_ID (charset_ascii);
+               }
+             else
+               {
+                 c = coding->default_char;
+                 charset = char_charset (c, charset_list, &code);
+               }
+           }
+         if (code == CHARSET_INVALID_CODE (charset))
+           abort ();
+         if (charset == charset_big5)
+           {
+             int c1, c2;
+
+             c1 = code >> 8, c2 = code & 0xFF;
+             EMIT_TWO_BYTES (c1, c2);
+           }
+         else
+           EMIT_ONE_ASCII_BYTE (code & 0x7F);
+       }
+    }
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding->produced_char += produced_chars;
+  coding->produced = dst - coding->destination;
+  return 0;
+}
+
+\f
+/*** 10. CCL handlers ***/
+
+/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
+   Check if a text is encoded in a coding system of which
+   encoder/decoder are written in CCL program.  If it is, return
+   CATEGORY_MASK_CCL, else return 0.  */
+
+static int
+detect_coding_ccl (coding, detect_info)
+     struct coding_system *coding;
+     struct coding_detection_info *detect_info;
+{
+  const unsigned char *src = coding->source, *src_base;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int multibytep = coding->src_multibyte;
+  int consumed_chars = 0;
+  int found = 0;
+  unsigned char *valids;
+  int head_ascii = coding->head_ascii;
+  Lisp_Object attrs;
+
+  detect_info->checked |= CATEGORY_MASK_CCL;
+
+  coding = &coding_categories[coding_category_ccl];
+  valids = CODING_CCL_VALIDS (coding);
+  attrs = CODING_ID_ATTRS (coding->id);
+  if (! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
+    src += head_ascii;
+
+  while (1)
+    {
+      int c;
+
+      src_base = src;
+      ONE_MORE_BYTE (c);
+      if (c < 0 || ! valids[c])
+       break;
+      if ((valids[c] > 1))
+       found = CATEGORY_MASK_CCL;
+    }
+  detect_info->rejected |= CATEGORY_MASK_CCL;
+  return 0;
+
+ no_more_source:
+  detect_info->found |= found;
+  return 1;
+}
 
-  while (1)
-    {
-      ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, CODING_CATEGORY_MASK_UTF_8);
-      if (UTF_8_1_OCTET_P (c))
-       continue;
-      else if (UTF_8_2_OCTET_LEADING_P (c))
-       seq_maybe_bytes = 1;
-      else if (UTF_8_3_OCTET_LEADING_P (c))
-       seq_maybe_bytes = 2;
-      else if (UTF_8_4_OCTET_LEADING_P (c))
-       seq_maybe_bytes = 3;
-      else if (UTF_8_5_OCTET_LEADING_P (c))
-       seq_maybe_bytes = 4;
-      else if (UTF_8_6_OCTET_LEADING_P (c))
-       seq_maybe_bytes = 5;
+static void
+decode_coding_ccl (coding)
+     struct coding_system *coding;
+{
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int *charbuf = coding->charbuf + coding->charbuf_used;
+  int *charbuf_end = coding->charbuf + coding->charbuf_size;
+  int consumed_chars = 0;
+  int multibytep = coding->src_multibyte;
+  struct ccl_program ccl;
+  int source_charbuf[1024];
+  int source_byteidx[1024];
+  Lisp_Object attrs, charset_list;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+  setup_ccl_program (&ccl, CODING_CCL_DECODER (coding));
+
+  while (src < src_end)
+    {
+      const unsigned char *p = src;
+      int *source, *source_end;
+      int i = 0;
+
+      if (multibytep)
+       while (i < 1024 && p < src_end)
+         {
+           source_byteidx[i] = p - src;
+           source_charbuf[i++] = STRING_CHAR_ADVANCE (p);
+         }
       else
-       return 0;
+       while (i < 1024 && p < src_end)
+         source_charbuf[i++] = *p++;
 
-      do
+      if (p == src_end && coding->mode & CODING_MODE_LAST_BLOCK)
+       ccl.last_block = 1;
+
+      source = source_charbuf;
+      source_end = source + i;
+      while (source < source_end)
        {
-         ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, 0);
-         if (!UTF_8_EXTRA_OCTET_P (c))
-           return 0;
-         seq_maybe_bytes--;
+         ccl_driver (&ccl, source, charbuf,
+                     source_end - source, charbuf_end - charbuf,
+                     charset_list);
+         source += ccl.consumed;
+         charbuf += ccl.produced;
+         if (ccl.status != CCL_STAT_SUSPEND_BY_DST)
+           break;
        }
-      while (seq_maybe_bytes > 0);
-    }
-}
-
-/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
-   Check if a text is encoded in UTF-16 Big Endian (endian == 1) or
-   Little Endian (otherwise).  If it is, return
-   CODING_CATEGORY_MASK_UTF_16_BE or CODING_CATEGORY_MASK_UTF_16_LE,
-   else return 0.  */
-
-#define UTF_16_INVALID_P(val)  \
-  (((val) == 0xFFFE)           \
-   || ((val) == 0xFFFF))
+      if (source < source_end)
+       src += source_byteidx[source - source_charbuf];
+      else
+       src = p;
+      consumed_chars += source - source_charbuf;
 
-#define UTF_16_HIGH_SURROGATE_P(val) \
-  (((val) & 0xD800) == 0xD800)
+      if (ccl.status != CCL_STAT_SUSPEND_BY_SRC
+         && ccl.status != CODING_RESULT_INSUFFICIENT_SRC)
+       break;
+    }
 
-#define UTF_16_LOW_SURROGATE_P(val) \
-  (((val) & 0xDC00) == 0xDC00)
+  switch (ccl.status)
+    {
+    case CCL_STAT_SUSPEND_BY_SRC:
+      record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_SRC);
+      break;
+    case CCL_STAT_SUSPEND_BY_DST:
+      break;
+    case CCL_STAT_QUIT:
+    case CCL_STAT_INVALID_CMD:
+      record_conversion_result (coding, CODING_RESULT_INTERRUPT);
+      break;
+    default:
+      record_conversion_result (coding, CODING_RESULT_SUCCESS);
+      break;
+    }
+  coding->consumed_char += consumed_chars;
+  coding->consumed = src - coding->source;
+  coding->charbuf_used = charbuf - coding->charbuf;
+}
 
 static int
-detect_coding_utf_16 (src, src_end, multibytep)
-     unsigned char *src, *src_end;
-     int multibytep;
+encode_coding_ccl (coding)
+     struct coding_system *coding;
 {
-  unsigned char c1, c2;
-  /* Dummy for ONE_MORE_BYTE_CHECK_MULTIBYTE.  */
-  struct coding_system dummy_coding;
-  struct coding_system *coding = &dummy_coding;
+  struct ccl_program ccl;
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int destination_charbuf[1024];
+  int i, produced_chars = 0;
+  Lisp_Object attrs, charset_list;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+  setup_ccl_program (&ccl, CODING_CCL_ENCODER (coding));
+
+  ccl.last_block = coding->mode & CODING_MODE_LAST_BLOCK;
+  ccl.dst_multibyte = coding->dst_multibyte;
+
+  while (charbuf < charbuf_end)
+    {
+      ccl_driver (&ccl, charbuf, destination_charbuf,
+                 charbuf_end - charbuf, 1024, charset_list);
+      if (multibytep)
+       {
+         ASSURE_DESTINATION (ccl.produced * 2);
+         for (i = 0; i < ccl.produced; i++)
+           EMIT_ONE_BYTE (destination_charbuf[i] & 0xFF);
+       }
+      else
+       {
+         ASSURE_DESTINATION (ccl.produced);
+         for (i = 0; i < ccl.produced; i++)    
+           *dst++ = destination_charbuf[i] & 0xFF;
+         produced_chars += ccl.produced;
+       }
+      charbuf += ccl.consumed;
+      if (ccl.status == CCL_STAT_QUIT
+         || ccl.status == CCL_STAT_INVALID_CMD)
+       break;
+    }
 
-  ONE_MORE_BYTE_CHECK_MULTIBYTE (c1, multibytep, 0);
-  ONE_MORE_BYTE_CHECK_MULTIBYTE (c2, multibytep, 0);
+  switch (ccl.status)
+    {
+    case CCL_STAT_SUSPEND_BY_SRC:
+      record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_SRC);
+      break;
+    case CCL_STAT_SUSPEND_BY_DST:
+      record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_DST);
+      break;
+    case CCL_STAT_QUIT:
+    case CCL_STAT_INVALID_CMD:
+      record_conversion_result (coding, CODING_RESULT_INTERRUPT);
+      break;
+    default:
+      record_conversion_result (coding, CODING_RESULT_SUCCESS);
+      break;
+    }
 
-  if ((c1 == 0xFF) && (c2 == 0xFE))
-    return CODING_CATEGORY_MASK_UTF_16_LE;
-  else if ((c1 == 0xFE) && (c2 == 0xFF))
-    return CODING_CATEGORY_MASK_UTF_16_BE;
+  coding->produced_char += produced_chars;
+  coding->produced = dst - coding->destination;
   return 0;
 }
 
-/* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions".
-   If SJIS_P is 1, decode SJIS text, else decode BIG5 test.  */
+
+\f
+/*** 10, 11. no-conversion handlers ***/
+
+/* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions".  */
 
 static void
-decode_coding_sjis_big5 (coding, source, destination,
-                        src_bytes, dst_bytes, sjis_p)
+decode_coding_raw_text (coding)
      struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char  *destination;
-     int src_bytes, dst_bytes;
-     int sjis_p;
 {
-  const unsigned char *src = source;
-  const unsigned char *src_end = source + src_bytes;
-  unsigned char *dst = destination;
-  unsigned char *dst_end = destination + dst_bytes;
-  /* SRC_BASE remembers the start position in source in each loop.
-     The loop will be exited when there's not enough source code
-     (within macro ONE_MORE_BYTE), or when there's not enough
-     destination area to produce a character (within macro
-     EMIT_CHAR).  */
-  const unsigned char *src_base;
-  Lisp_Object translation_table;
+  coding->chars_at_source = 1;
+  coding->consumed_char = 0;
+  coding->consumed = 0;
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+}
 
-  if (NILP (Venable_character_translation))
-    translation_table = Qnil;
-  else
-    {
-      translation_table = coding->translation_table_for_decode;
-      if (NILP (translation_table))
-       translation_table = Vstandard_translation_table_for_decode;
-    }
+static int
+encode_coding_raw_text (coding)
+     struct coding_system *coding;
+{
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = coding->charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int produced_chars = 0;
+  int c;
 
-  coding->produced_char = 0;
-  while (1)
+  if (multibytep)
     {
-      int c, charset, c1, c2 = 0;
+      int safe_room = MAX_MULTIBYTE_LENGTH * 2;
 
-      src_base = src;
-      ONE_MORE_BYTE (c1);
+      if (coding->src_multibyte)
+       while (charbuf < charbuf_end)
+         {
+           ASSURE_DESTINATION (safe_room);
+           c = *charbuf++;
+           if (ASCII_CHAR_P (c))
+             EMIT_ONE_ASCII_BYTE (c);
+           else if (CHAR_BYTE8_P (c))
+             {
+               c = CHAR_TO_BYTE8 (c);
+               EMIT_ONE_BYTE (c);
+             }
+           else
+             {
+               unsigned char str[MAX_MULTIBYTE_LENGTH], *p0 = str, *p1 = str;
 
-      if (c1 < 0x80)
+               CHAR_STRING_ADVANCE (c, p1);
+               while (p0 < p1)
+                 {
+                   EMIT_ONE_BYTE (*p0);
+                   p0++;
+                 }
+             }
+         }
+      else
+       while (charbuf < charbuf_end)
+         {
+           ASSURE_DESTINATION (safe_room);
+           c = *charbuf++;
+           EMIT_ONE_BYTE (c);
+         }
+    }
+  else
+    {
+      if (coding->src_multibyte)
        {
-         charset = CHARSET_ASCII;
-         if (c1 < 0x20)
+         int safe_room = MAX_MULTIBYTE_LENGTH;
+
+         while (charbuf < charbuf_end)
            {
-             if (c1 == '\r')
-               {
-                 if (coding->eol_type == CODING_EOL_CRLF)
-                   {
-                     ONE_MORE_BYTE (c2);
-                     if (c2 == '\n')
-                       c1 = c2;
-                     else
-                       /* To process C2 again, SRC is subtracted by 1.  */
-                       src--;
-                   }
-                 else if (coding->eol_type == CODING_EOL_CR)
-                   c1 = '\n';
-               }
-             else if (c1 == '\n'
-                      && (coding->mode & CODING_MODE_INHIBIT_INCONSISTENT_EOL)
-                      && (coding->eol_type == CODING_EOL_CR
-                          || coding->eol_type == CODING_EOL_CRLF))
-               {
-                 coding->result = CODING_FINISH_INCONSISTENT_EOL;
-                 goto label_end_of_loop;
-               }
+             ASSURE_DESTINATION (safe_room);
+             c = *charbuf++;
+             if (ASCII_CHAR_P (c))
+               *dst++ = c;
+             else if (CHAR_BYTE8_P (c))
+               *dst++ = CHAR_TO_BYTE8 (c);
+             else
+               CHAR_STRING_ADVANCE (c, dst);
+             produced_chars++;
            }
        }
       else
-        {
-         if (sjis_p)
-           {
-             if (c1 == 0x80 || c1 == 0xA0 || c1 > 0xEF)
-               goto label_invalid_code;
-             if (c1 <= 0x9F || c1 >= 0xE0)
-               {
-                 /* SJIS -> JISX0208 */
-                 ONE_MORE_BYTE (c2);
-                 if (c2 < 0x40 || c2 == 0x7F || c2 > 0xFC)
-                   goto label_invalid_code;
-                 DECODE_SJIS (c1, c2, c1, c2);
-                 charset = charset_jisx0208;
-               }
-             else
-               /* SJIS -> JISX0201-Kana */
-               charset = charset_katakana_jisx0201;
-           }
-         else
-           {
-             /* BIG5 -> Big5 */
-             if (c1 < 0xA0 || c1 > 0xFE)
-               goto label_invalid_code;
-             ONE_MORE_BYTE (c2);
-             if (c2 < 0x40 || (c2 > 0x7E && c2 < 0xA1) || c2 > 0xFE)
-               goto label_invalid_code;
-             DECODE_BIG5 (c1, c2, charset, c1, c2);
-           }
+       {
+         ASSURE_DESTINATION (charbuf_end - charbuf);
+         while (charbuf < charbuf_end && dst < dst_end)
+           *dst++ = *charbuf++;
+         produced_chars = dst - (coding->destination + coding->dst_bytes);
        }
-
-      c = DECODE_ISO_CHARACTER (charset, c1, c2);
-      EMIT_CHAR (c);
-      continue;
-
-    label_invalid_code:
-      coding->errors++;
-      src = src_base;
-      c = *src++;
-      EMIT_CHAR (c);
     }
-
- label_end_of_loop:
-  coding->consumed = coding->consumed_char = src_base - source;
-  coding->produced = dst - destination;
-  return;
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding->produced_char += produced_chars;
+  coding->produced = dst - coding->destination;
+  return 0;
 }
 
-/* See the above "GENERAL NOTES on `encode_coding_XXX ()' functions".
-   This function can encode charsets `ascii', `katakana-jisx0201',
-   `japanese-jisx0208', `chinese-big5-1', and `chinese-big5-2'.  We
-   are sure that all these charsets are registered as official charset
-   (i.e. do not have extended leading-codes).  Characters of other
-   charsets are produced without any encoding.  If SJIS_P is 1, encode
-   SJIS text, else encode BIG5 text.  */
+/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
+   Check if a text is encoded in a charset-based coding system.  If it
+   is, return 1, else return 0.  */
 
-static void
-encode_coding_sjis_big5 (coding, source, destination,
-                        src_bytes, dst_bytes, sjis_p)
+static int
+detect_coding_charset (coding, detect_info)
      struct coding_system *coding;
-     unsigned char *source, *destination;
-     int src_bytes, dst_bytes;
-     int sjis_p;
+     struct coding_detection_info *detect_info;
 {
-  unsigned char *src = source;
-  unsigned char *src_end = source + src_bytes;
-  unsigned char *dst = destination;
-  unsigned char *dst_end = destination + dst_bytes;
-  /* SRC_BASE remembers the start position in source in each loop.
-     The loop will be exited when there's not enough source text to
-     analyze multi-byte codes (within macro ONE_MORE_CHAR), or when
-     there's not enough destination area to produce encoded codes
-     (within macro EMIT_BYTES).  */
-  unsigned char *src_base;
-  Lisp_Object translation_table;
+  const unsigned char *src = coding->source, *src_base;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  int multibytep = coding->src_multibyte;
+  int consumed_chars = 0;
+  Lisp_Object attrs, valids;
+  int found = 0;
+  int head_ascii = coding->head_ascii;
 
-  if (NILP (Venable_character_translation))
-    translation_table = Qnil;
-  else
-    {
-      translation_table = coding->translation_table_for_encode;
-      if (NILP (translation_table))
-       translation_table = Vstandard_translation_table_for_encode;
-    }
+  detect_info->checked |= CATEGORY_MASK_CHARSET;
+
+  coding = &coding_categories[coding_category_charset];
+  attrs = CODING_ID_ATTRS (coding->id);
+  valids = AREF (attrs, coding_attr_charset_valids);
+
+  if (! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
+    src += head_ascii;
 
   while (1)
     {
-      int c, charset, c1, c2;
+      int c;
+      Lisp_Object val;
+      struct charset *charset;
+      int dim, idx;
 
       src_base = src;
-      ONE_MORE_CHAR (c);
-
-      /* Now encode the character C.  */
-      if (SINGLE_BYTE_CHAR_P (c))
+      ONE_MORE_BYTE (c);
+      if (c < 0)
+       continue;
+      val = AREF (valids, c);
+      if (NILP (val))
+       break;
+      if (c >= 0x80)
+       found = CATEGORY_MASK_CHARSET;
+      if (INTEGERP (val))
        {
-         switch (c)
+         charset = CHARSET_FROM_ID (XFASTINT (val));
+         dim = CHARSET_DIMENSION (charset);
+         for (idx = 1; idx < dim; idx++)
            {
-           case '\r':
-             if (!(coding->mode & CODING_MODE_SELECTIVE_DISPLAY))
-               {
-                 EMIT_ONE_BYTE (c);
-                 break;
-               }
-             c = '\n';
-           case '\n':
-             if (coding->eol_type == CODING_EOL_CRLF)
-               {
-                 EMIT_TWO_BYTES ('\r', c);
-                 break;
-               }
-             else if (coding->eol_type == CODING_EOL_CR)
-               c = '\r';
-           default:
-             EMIT_ONE_BYTE (c);
+             if (src == src_end)
+               goto too_short;
+             ONE_MORE_BYTE (c);
+             if (c < charset->code_space[(dim - 1 - idx) * 2] 
+                 || c > charset->code_space[(dim - 1 - idx) * 2 + 1])
+               break;
            }
+         if (idx < dim)
+           break;
        }
       else
        {
-         SPLIT_CHAR (c, charset, c1, c2);
-         if (sjis_p)
-           {
-             if (charset == charset_jisx0208
-                 || charset == charset_jisx0208_1978)
-               {
-                 ENCODE_SJIS (c1, c2, c1, c2);
-                 EMIT_TWO_BYTES (c1, c2);
-               }
-             else if (charset == charset_katakana_jisx0201)
-               EMIT_ONE_BYTE (c1 | 0x80);
-             else if (charset == charset_latin_jisx0201)
-               EMIT_ONE_BYTE (c1);
-             else if (coding->mode & CODING_MODE_INHIBIT_UNENCODABLE_CHAR)
-               {
-                 EMIT_ONE_BYTE (CODING_REPLACEMENT_CHARACTER);
-                 if (CHARSET_WIDTH (charset) > 1)
-                   EMIT_ONE_BYTE (CODING_REPLACEMENT_CHARACTER);
-               }
-             else
-               /* There's no way other than producing the internal
-                  codes as is.  */
-               EMIT_BYTES (src_base, src);
-           }
-         else
+         idx = 1;
+         for (; CONSP (val); val = XCDR (val))
            {
-             if (charset == charset_big5_1 || charset == charset_big5_2)
+             charset = CHARSET_FROM_ID (XFASTINT (XCAR (val)));
+             dim = CHARSET_DIMENSION (charset);
+             while (idx < dim)
                {
-                 ENCODE_BIG5 (charset, c1, c2, c1, c2);
-                 EMIT_TWO_BYTES (c1, c2);
+                 if (src == src_end)
+                   goto too_short;
+                 ONE_MORE_BYTE (c);
+                 if (c < charset->code_space[(dim - 1 - idx) * 4]
+                     || c > charset->code_space[(dim - 1 - idx) * 4 + 1])
+                   break;
+                 idx++;
                }
-             else if (coding->mode & CODING_MODE_INHIBIT_UNENCODABLE_CHAR)
+             if (idx == dim)
                {
-                 EMIT_ONE_BYTE (CODING_REPLACEMENT_CHARACTER);
-                 if (CHARSET_WIDTH (charset) > 1)
-                   EMIT_ONE_BYTE (CODING_REPLACEMENT_CHARACTER);
+                 val = Qnil;
+                 break;
                }
-             else
-               /* There's no way other than producing the internal
-                  codes as is.  */
-               EMIT_BYTES (src_base, src);
            }
+         if (CONSP (val))
+           break;
        }
-      coding->consumed_char++;
     }
+ too_short:
+  detect_info->rejected |= CATEGORY_MASK_CHARSET;
+  return 0;
 
label_end_of_loop:
-  coding->consumed = src_base - source;
-  coding->produced = coding->produced_char = dst - destination;
no_more_source:
+  detect_info->found |= found;
+  return 1;
 }
 
-\f
-/*** 5. CCL handlers ***/
-
-/* See the above "GENERAL NOTES on `detect_coding_XXX ()' functions".
-   Check if a text is encoded in a coding system of which
-   encoder/decoder are written in CCL program.  If it is, return
-   CODING_CATEGORY_MASK_CCL, else return 0.  */
-
-static int
-detect_coding_ccl (src, src_end, multibytep)
-     unsigned char *src, *src_end;
-     int multibytep;
+static void
+decode_coding_charset (coding)
+     struct coding_system *coding;
 {
-  unsigned char *valid;
-  int c;
-  /* Dummy for ONE_MORE_BYTE.  */
-  struct coding_system dummy_coding;
-  struct coding_system *coding = &dummy_coding;
-
-  /* No coding system is assigned to coding-category-ccl.  */
-  if (!coding_system_table[CODING_CATEGORY_IDX_CCL])
-    return 0;
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  const unsigned char *src_base;
+  int *charbuf = coding->charbuf + coding->charbuf_used;
+  int *charbuf_end
+    = coding->charbuf + coding->charbuf_size - MAX_ANNOTATION_LENGTH;
+  int consumed_chars = 0, consumed_chars_base;
+  int multibytep = coding->src_multibyte;
+  Lisp_Object attrs, charset_list, valids;
+  int char_offset = coding->produced_char;
+  int last_offset = char_offset;
+  int last_id = charset_ascii;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+  valids = AREF (attrs, coding_attr_charset_valids);
 
-  valid = coding_system_table[CODING_CATEGORY_IDX_CCL]->spec.ccl.valid_codes;
   while (1)
     {
-      ONE_MORE_BYTE_CHECK_MULTIBYTE (c, multibytep, CODING_CATEGORY_MASK_CCL);
-      if (! valid[c])
-       return 0;
-    }
-}
+      int c;
+      Lisp_Object val;
+      struct charset *charset;
+      int dim;
+      int len = 1;
+      unsigned code;
 
-\f
-/*** 6. End-of-line handlers ***/
+      src_base = src;
+      consumed_chars_base = consumed_chars;
 
-/* See the above "GENERAL NOTES on `decode_coding_XXX ()' functions".  */
+      if (charbuf >= charbuf_end)
+       break;
 
-static void
-decode_eol (coding, source, destination, src_bytes, dst_bytes)
-     struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char *destination;
-     int src_bytes, dst_bytes;
-{
-  const unsigned char *src = source;
-  unsigned char *dst = destination;
-  const unsigned char *src_end = src + src_bytes;
-  unsigned char *dst_end = dst + dst_bytes;
-  Lisp_Object translation_table;
-  /* SRC_BASE remembers the start position in source in each loop.
-     The loop will be exited when there's not enough source code
-     (within macro ONE_MORE_BYTE), or when there's not enough
-     destination area to produce a character (within macro
-     EMIT_CHAR).  */
-  const unsigned char *src_base;
-  int c;
+      ONE_MORE_BYTE (c);
+      if (c < 0)
+       goto invalid_code;
+      code = c;
 
-  translation_table = Qnil;
-  switch (coding->eol_type)
-    {
-    case CODING_EOL_CRLF:
-      while (1)
+      val = AREF (valids, c);
+      if (NILP (val))
+       goto invalid_code;
+      if (INTEGERP (val))
        {
-         src_base = src;
-         ONE_MORE_BYTE (c);
-         if (c == '\r')
+         charset = CHARSET_FROM_ID (XFASTINT (val));
+         dim = CHARSET_DIMENSION (charset);
+         while (len < dim)
            {
              ONE_MORE_BYTE (c);
-             if (c != '\n')
-               {
-                 src--;
-                 c = '\r';
-               }
-           }
-         else if (c == '\n'
-                  && (coding->mode & CODING_MODE_INHIBIT_INCONSISTENT_EOL))
-           {
-             coding->result = CODING_FINISH_INCONSISTENT_EOL;
-             goto label_end_of_loop;
+             code = (code << 8) | c;
+             len++;
            }
-         EMIT_CHAR (c);
+         CODING_DECODE_CHAR (coding, src, src_base, src_end,
+                             charset, code, c);
        }
-      break;
-
-    case CODING_EOL_CR:
-      while (1)
+      else
        {
-         src_base = src;
-         ONE_MORE_BYTE (c);
-         if (c == '\n')
+         /* VAL is a list of charset IDs.  It is assured that the
+            list is sorted by charset dimensions (smaller one
+            comes first).  */
+         while (CONSP (val))
            {
-             if (coding->mode & CODING_MODE_INHIBIT_INCONSISTENT_EOL)
+             charset = CHARSET_FROM_ID (XFASTINT (XCAR (val)));
+             dim = CHARSET_DIMENSION (charset);
+             while (len < dim)
                {
-                 coding->result = CODING_FINISH_INCONSISTENT_EOL;
-                 goto label_end_of_loop;
+                 ONE_MORE_BYTE (c);
+                 code = (code << 8) | c;
+                 len++;
                }
+             CODING_DECODE_CHAR (coding, src, src_base,
+                                 src_end, charset, code, c);
+             if (c >= 0)
+               break;
+             val = XCDR (val);
            }
-         else if (c == '\r')
-           c = '\n';
-         EMIT_CHAR (c);
        }
-      break;
-
-    default:                   /* no need for EOL handling */
-      while (1)
+      if (c < 0)
+       goto invalid_code;
+      if (charset->id != charset_ascii
+         && last_id != charset->id)
        {
-         src_base = src;
-         ONE_MORE_BYTE (c);
-         EMIT_CHAR (c);
+         if (last_id != charset_ascii)
+           ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+         last_id = charset->id;
+         last_offset = char_offset;
        }
+
+      *charbuf++ = c;
+      char_offset++;
+      continue;
+
+    invalid_code:
+      src = src_base;
+      consumed_chars = consumed_chars_base;
+      ONE_MORE_BYTE (c);
+      *charbuf++ = c < 0 ? -c : ASCII_BYTE_P (c) ? c : BYTE8_TO_CHAR (c);
+      char_offset++;
+      coding->errors++;
     }
 
- label_end_of_loop:
-  coding->consumed = coding->consumed_char = src_base - source;
-  coding->produced = dst - destination;
-  return;
+ no_more_source:
+  if (last_id != charset_ascii)
+    ADD_CHARSET_DATA (charbuf, char_offset - last_offset, last_id);
+  coding->consumed_char += consumed_chars_base;
+  coding->consumed = src_base - coding->source;
+  coding->charbuf_used = charbuf - coding->charbuf;
 }
 
-/* See "GENERAL NOTES about `encode_coding_XXX ()' functions".  Encode
-   format of end-of-line according to `coding->eol_type'.  It also
-   convert multibyte form 8-bit characters to unibyte if
-   CODING->src_multibyte is nonzero.  If `coding->mode &
-   CODING_MODE_SELECTIVE_DISPLAY' is nonzero, code '\r' in source text
-   also means end-of-line.  */
-
-static void
-encode_eol (coding, source, destination, src_bytes, dst_bytes)
+static int
+encode_coding_charset (coding)
      struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char *destination;
-     int src_bytes, dst_bytes;
 {
-  const unsigned char *src = source;
-  unsigned char *dst = destination;
-  const unsigned char *src_end = src + src_bytes;
-  unsigned char *dst_end = dst + dst_bytes;
-  Lisp_Object translation_table;
-  /* SRC_BASE remembers the start position in source in each loop.
-     The loop will be exited when there's not enough source text to
-     analyze multi-byte codes (within macro ONE_MORE_CHAR), or when
-     there's not enough destination area to produce encoded codes
-     (within macro EMIT_BYTES).  */
-  const unsigned char *src_base;
-  unsigned char *tmp;
-  int c;
-  int selective_display = coding->mode & CODING_MODE_SELECTIVE_DISPLAY;
-
-  translation_table = Qnil;
-  if (coding->src_multibyte
-      && *(src_end - 1) == LEADING_CODE_8_BIT_CONTROL)
-    {
-      src_end--;
-      src_bytes--;
-      coding->result = CODING_FINISH_INSUFFICIENT_SRC;
-    }
-
-  if (coding->eol_type == CODING_EOL_CRLF)
-    {
-      while (src < src_end)
-       {
-         src_base = src;
-         c = *src++;
-         if (c >= 0x20)
-           EMIT_ONE_BYTE (c);
-         else if (c == '\n' || (c == '\r' && selective_display))
-           EMIT_TWO_BYTES ('\r', '\n');
-         else
-           EMIT_ONE_BYTE (c);
-       }
-      src_base = src;
-    label_end_of_loop:
-      ;
-    }
-  else
+  int multibytep = coding->dst_multibyte;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf + coding->charbuf_used;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int safe_room = MAX_MULTIBYTE_LENGTH;
+  int produced_chars = 0;
+  Lisp_Object attrs, charset_list;
+  int ascii_compatible;
+  int c;
+
+  CODING_GET_INFO (coding, attrs, charset_list);
+  ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
+
+  while (charbuf < charbuf_end)
     {
-      if (!dst_bytes || src_bytes <= dst_bytes)
+      struct charset *charset;
+      unsigned code;
+
+      ASSURE_DESTINATION (safe_room);
+      c = *charbuf++;
+      if (ascii_compatible && ASCII_CHAR_P (c))
+       EMIT_ONE_ASCII_BYTE (c);
+      else if (CHAR_BYTE8_P (c))
        {
-         safe_bcopy (src, dst, src_bytes);
-         src_base = src_end;
-         dst += src_bytes;
+         c = CHAR_TO_BYTE8 (c);
+         EMIT_ONE_BYTE (c);
        }
       else
        {
-         if (coding->src_multibyte
-             && *(src + dst_bytes - 1) == LEADING_CODE_8_BIT_CONTROL)
-           dst_bytes--;
-         safe_bcopy (src, dst, dst_bytes);
-         src_base = src + dst_bytes;
-         dst = destination + dst_bytes;
-         coding->result = CODING_FINISH_INSUFFICIENT_DST;
-       }
-      if (coding->eol_type == CODING_EOL_CR)
-       {
-         for (tmp = destination; tmp < dst; tmp++)
-           if (*tmp == '\n') *tmp = '\r';
-       }
-      else if (selective_display)
-       {
-         for (tmp = destination; tmp < dst; tmp++)
-           if (*tmp == '\r') *tmp = '\n';
+         charset = char_charset (c, charset_list, &code);
+         if (charset)
+           {
+             if (CHARSET_DIMENSION (charset) == 1)
+               EMIT_ONE_BYTE (code);
+             else if (CHARSET_DIMENSION (charset) == 2)
+               EMIT_TWO_BYTES (code >> 8, code & 0xFF);
+             else if (CHARSET_DIMENSION (charset) == 3)
+               EMIT_THREE_BYTES (code >> 16, (code >> 8) & 0xFF, code & 0xFF);
+             else
+               EMIT_FOUR_BYTES (code >> 24, (code >> 16) & 0xFF,
+                                (code >> 8) & 0xFF, code & 0xFF);
+           }
+         else
+           {
+             if (coding->mode & CODING_MODE_SAFE_ENCODING)
+               c = CODING_INHIBIT_CHARACTER_SUBSTITUTION;
+             else
+               c = coding->default_char;
+             EMIT_ONE_BYTE (c);
+           }
        }
     }
-  if (coding->src_multibyte)
-    dst = destination + str_as_unibyte (destination, dst - destination);
 
-  coding->consumed = src_base - source;
-  coding->produced = dst - destination;
-  coding->produced_char = coding->produced;
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding->produced_char += produced_chars;
+  coding->produced = dst - coding->destination;
+  return 0;
 }
 
 \f
 /*** 7. C library functions ***/
 
-/* In Emacs Lisp, a coding system is represented by a Lisp symbol which
-   has a property `coding-system'.  The value of this property is a
-   vector of length 5 (called the coding-vector).  Among elements of
-   this vector, the first (element[0]) and the fifth (element[4])
-   carry important information for decoding/encoding.  Before
-   decoding/encoding, this information should be set in fields of a
-   structure of type `coding_system'.
-
-   The value of the property `coding-system' can be a symbol of another
-   subsidiary coding-system.  In that case, Emacs gets coding-vector
-   from that symbol.
-
-   `element[0]' contains information to be set in `coding->type'.  The
-   value and its meaning is as follows:
-
-   0 -- coding_type_emacs_mule
-   1 -- coding_type_sjis
-   2 -- coding_type_iso2022
-   3 -- coding_type_big5
-   4 -- coding_type_ccl encoder/decoder written in CCL
-   nil -- coding_type_no_conversion
-   t -- coding_type_undecided (automatic conversion on decoding,
-                              no-conversion on encoding)
-
-   `element[4]' contains information to be set in `coding->flags' and
-   `coding->spec'.  The meaning varies by `coding->type'.
-
-   If `coding->type' is `coding_type_iso2022', element[4] is a vector
-   of length 32 (of which the first 13 sub-elements are used now).
-   Meanings of these sub-elements are:
-
-   sub-element[N] where N is 0 through 3: to be set in `coding->spec.iso2022'
-       If the value is an integer of valid charset, the charset is
-       assumed to be designated to graphic register N initially.
-
-       If the value is minus, it is a minus value of charset which
-       reserves graphic register N, which means that the charset is
-       not designated initially but should be designated to graphic
-       register N just before encoding a character in that charset.
-
-       If the value is nil, graphic register N is never used on
-       encoding.
-
-   sub-element[N] where N is 4 through 11: to be set in `coding->flags'
-       Each value takes t or nil.  See the section ISO2022 of
-       `coding.h' for more information.
-
-   If `coding->type' is `coding_type_big5', element[4] is t to denote
-   BIG5-ETen or nil to denote BIG5-HKU.
-
-   If `coding->type' takes the other value, element[4] is ignored.
-
-   Emacs Lisp's coding systems also carry information about format of
-   end-of-line in a value of property `eol-type'.  If the value is
-   integer, 0 means CODING_EOL_LF, 1 means CODING_EOL_CRLF, and 2
-   means CODING_EOL_CR.  If it is not integer, it should be a vector
-   of subsidiary coding systems of which property `eol-type' has one
-   of the above values.
-
-*/
-
-/* Extract information for decoding/encoding from CODING_SYSTEM_SYMBOL
-   and set it in CODING.  If CODING_SYSTEM_SYMBOL is invalid, CODING
-   is setup so that no conversion is necessary and return -1, else
-   return 0.  */
+/* Setup coding context CODING from information about CODING_SYSTEM.
+   If CODING_SYSTEM is nil, `no-conversion' is assumed.  If
+   CODING_SYSTEM is invalid, signal an error.  */
 
-int
+void
 setup_coding_system (coding_system, coding)
      Lisp_Object coding_system;
      struct coding_system *coding;
 {
-  Lisp_Object coding_spec, coding_type, eol_type, plist;
+  Lisp_Object attrs;
+  Lisp_Object eol_type;
+  Lisp_Object coding_type;
   Lisp_Object val;
 
-  /* At first, zero clear all members.  */
-  bzero (coding, sizeof (struct coding_system));
-
-  /* Initialize some fields required for all kinds of coding systems.  */
-  coding->symbol = coding_system;
-  coding->heading_ascii = -1;
-  coding->post_read_conversion = coding->pre_write_conversion = Qnil;
-  coding->composing = COMPOSITION_DISABLED;
-  coding->cmp_data = NULL;
-
   if (NILP (coding_system))
-    goto label_invalid_coding_system;
+    coding_system = Qundecided;
 
-  coding_spec = Fget (coding_system, Qcoding_system);
+  CHECK_CODING_SYSTEM_GET_ID (coding_system, coding->id);
 
-  if (!VECTORP (coding_spec)
-      || XVECTOR (coding_spec)->size != 5
-      || !CONSP (XVECTOR (coding_spec)->contents[3]))
-    goto label_invalid_coding_system;
+  attrs = CODING_ID_ATTRS (coding->id);
+  eol_type = CODING_ID_EOL_TYPE (coding->id);
 
-  eol_type = inhibit_eol_conversion ? Qnil : Fget (coding_system, Qeol_type);
+  coding->mode = 0;
+  coding->head_ascii = -1;
   if (VECTORP (eol_type))
+    coding->common_flags = (CODING_REQUIRE_DECODING_MASK
+                           | CODING_REQUIRE_DETECTION_MASK);
+  else if (! EQ (eol_type, Qunix))
+    coding->common_flags = (CODING_REQUIRE_DECODING_MASK
+                           | CODING_REQUIRE_ENCODING_MASK);
+  else
+    coding->common_flags = 0;
+  if (! NILP (CODING_ATTR_POST_READ (attrs)))
+    coding->common_flags |= CODING_REQUIRE_DECODING_MASK;
+  if (! NILP (CODING_ATTR_PRE_WRITE (attrs)))
+    coding->common_flags |= CODING_REQUIRE_ENCODING_MASK;
+  if (! NILP (CODING_ATTR_FOR_UNIBYTE (attrs)))
+    coding->common_flags |= CODING_FOR_UNIBYTE_MASK;
+
+  val = CODING_ATTR_SAFE_CHARSETS (attrs);
+  coding->max_charset_id = SCHARS (val) - 1;
+  coding->safe_charsets = (char *) SDATA (val);
+  coding->default_char = XINT (CODING_ATTR_DEFAULT_CHAR (attrs));
+
+  coding_type = CODING_ATTR_TYPE (attrs);
+  if (EQ (coding_type, Qundecided))
     {
-      coding->eol_type = CODING_EOL_UNDECIDED;
-      coding->common_flags = CODING_REQUIRE_DETECTION_MASK;
-      if (system_eol_type != CODING_EOL_LF)
-       coding->common_flags |= CODING_REQUIRE_ENCODING_MASK;
+      coding->detector = NULL;
+      coding->decoder = decode_coding_raw_text;
+      coding->encoder = encode_coding_raw_text;
+      coding->common_flags |= CODING_REQUIRE_DETECTION_MASK;
     }
-  else if (XFASTINT (eol_type) == 1)
+  else if (EQ (coding_type, Qiso_2022))
     {
-      coding->eol_type = CODING_EOL_CRLF;
+      int i;
+      int flags = XINT (AREF (attrs, coding_attr_iso_flags));
+
+      /* Invoke graphic register 0 to plane 0.  */
+      CODING_ISO_INVOCATION (coding, 0) = 0;
+      /* Invoke graphic register 1 to plane 1 if we can use 8-bit.  */
+      CODING_ISO_INVOCATION (coding, 1)
+       = (flags & CODING_ISO_FLAG_SEVEN_BITS ? -1 : 1);
+      /* Setup the initial status of designation.  */
+      for (i = 0; i < 4; i++)
+       CODING_ISO_DESIGNATION (coding, i) = CODING_ISO_INITIAL (coding, i);
+      /* Not single shifting initially.  */
+      CODING_ISO_SINGLE_SHIFTING (coding) = 0;
+      /* Beginning of buffer should also be regarded as bol. */
+      CODING_ISO_BOL (coding) = 1;
+      coding->detector = detect_coding_iso_2022;
+      coding->decoder = decode_coding_iso_2022;
+      coding->encoder = encode_coding_iso_2022;
+      if (flags & CODING_ISO_FLAG_SAFE)
+       coding->mode |= CODING_MODE_SAFE_ENCODING;
       coding->common_flags
-       = CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
+       |= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK
+           | CODING_REQUIRE_FLUSHING_MASK);
+      if (flags & CODING_ISO_FLAG_COMPOSITION)
+       coding->common_flags |= CODING_ANNOTATE_COMPOSITION_MASK;
+      if (flags & CODING_ISO_FLAG_DESIGNATION)
+       coding->common_flags |= CODING_ANNOTATE_CHARSET_MASK;
+      if (flags & CODING_ISO_FLAG_FULL_SUPPORT)
+       {
+         setup_iso_safe_charsets (attrs);
+         val = CODING_ATTR_SAFE_CHARSETS (attrs);
+         coding->max_charset_id = SCHARS (val) - 1;
+         coding->safe_charsets = (char *) SDATA (val);
+       }
+      CODING_ISO_FLAGS (coding) = flags;
     }
-  else if (XFASTINT (eol_type) == 2)
+  else if (EQ (coding_type, Qcharset))
     {
-      coding->eol_type = CODING_EOL_CR;
+      coding->detector = detect_coding_charset;
+      coding->decoder = decode_coding_charset;
+      coding->encoder = encode_coding_charset;
       coding->common_flags
-       = CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
+       |= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
     }
-  else
+  else if (EQ (coding_type, Qutf_8))
     {
-      coding->common_flags = 0;
-      coding->eol_type = CODING_EOL_LF;
+      coding->detector = detect_coding_utf_8;
+      coding->decoder = decode_coding_utf_8;
+      coding->encoder = encode_coding_utf_8;
+      coding->common_flags
+       |= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
+    }
+  else if (EQ (coding_type, Qutf_16))
+    {
+      val = AREF (attrs, coding_attr_utf_16_bom);
+      CODING_UTF_16_BOM (coding) = (CONSP (val) ? utf_16_detect_bom
+                                   : EQ (val, Qt) ? utf_16_with_bom
+                                   : utf_16_without_bom);
+      val = AREF (attrs, coding_attr_utf_16_endian);
+      CODING_UTF_16_ENDIAN (coding) = (EQ (val, Qbig) ? utf_16_big_endian
+                                      : utf_16_little_endian);
+      CODING_UTF_16_SURROGATE (coding) = 0;
+      coding->detector = detect_coding_utf_16;
+      coding->decoder = decode_coding_utf_16;
+      coding->encoder = encode_coding_utf_16;
+      coding->common_flags
+       |= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
+      if (CODING_UTF_16_BOM (coding) == utf_16_detect_bom)
+       coding->common_flags |= CODING_REQUIRE_DETECTION_MASK;
     }
-
-  coding_type = XVECTOR (coding_spec)->contents[0];
-  /* Try short cut.  */
-  if (SYMBOLP (coding_type))
+  else if (EQ (coding_type, Qccl))
+    {
+      coding->detector = detect_coding_ccl;
+      coding->decoder = decode_coding_ccl;
+      coding->encoder = encode_coding_ccl;
+      coding->common_flags
+       |= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK
+           | CODING_REQUIRE_FLUSHING_MASK);
+    }
+  else if (EQ (coding_type, Qemacs_mule))
     {
-      if (EQ (coding_type, Qt))
+      coding->detector = detect_coding_emacs_mule;
+      coding->decoder = decode_coding_emacs_mule;
+      coding->encoder = encode_coding_emacs_mule;
+      coding->common_flags
+       |= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
+      if (! NILP (AREF (attrs, coding_attr_emacs_mule_full))
+         && ! EQ (CODING_ATTR_CHARSET_LIST (attrs), Vemacs_mule_charset_list))
        {
-         coding->type = coding_type_undecided;
-         coding->common_flags |= CODING_REQUIRE_DETECTION_MASK;
+         Lisp_Object tail, safe_charsets;
+         int max_charset_id = 0;
+
+         for (tail = Vemacs_mule_charset_list; CONSP (tail);
+              tail = XCDR (tail))
+           if (max_charset_id < XFASTINT (XCAR (tail)))
+             max_charset_id = XFASTINT (XCAR (tail));
+         safe_charsets = Fmake_string (make_number (max_charset_id + 1),
+                                       make_number (255));
+         for (tail = Vemacs_mule_charset_list; CONSP (tail);
+              tail = XCDR (tail))
+           SSET (safe_charsets, XFASTINT (XCAR (tail)), 0);
+         coding->max_charset_id = max_charset_id;
+         coding->safe_charsets = (char *) SDATA (safe_charsets);
        }
-      else
-       coding->type = coding_type_no_conversion;
-      /* Initialize this member.  Any thing other than
-        CODING_CATEGORY_IDX_UTF_16_BE and
-        CODING_CATEGORY_IDX_UTF_16_LE are ok because they have
-        special treatment in detect_eol.  */
-      coding->category_idx = CODING_CATEGORY_IDX_EMACS_MULE;
-
-      return 0;
-    }
-
-  /* Get values of coding system properties:
-     `post-read-conversion', `pre-write-conversion',
-     `translation-table-for-decode', `translation-table-for-encode'.  */
-  plist = XVECTOR (coding_spec)->contents[3];
-  /* Pre & post conversion functions should be disabled if
-     inhibit_eol_conversion is nonzero.  This is the case that a code
-     conversion function is called while those functions are running.  */
-  if (! inhibit_pre_post_conversion)
-    {
-      coding->post_read_conversion = Fplist_get (plist, Qpost_read_conversion);
-      coding->pre_write_conversion = Fplist_get (plist, Qpre_write_conversion);
-    }
-  val = Fplist_get (plist, Qtranslation_table_for_decode);
-  if (SYMBOLP (val))
-    val = Fget (val, Qtranslation_table_for_decode);
-  coding->translation_table_for_decode = CHAR_TABLE_P (val) ? val : Qnil;
-  val = Fplist_get (plist, Qtranslation_table_for_encode);
-  if (SYMBOLP (val))
-    val = Fget (val, Qtranslation_table_for_encode);
-  coding->translation_table_for_encode = CHAR_TABLE_P (val) ? val : Qnil;
-  val = Fplist_get (plist, Qcoding_category);
-  if (!NILP (val))
-    {
-      val = Fget (val, Qcoding_category_index);
-      if (INTEGERP (val))
-       coding->category_idx = XINT (val);
-      else
-       goto label_invalid_coding_system;
     }
-  else
-    goto label_invalid_coding_system;
-
-  /* If the coding system has non-nil `composition' property, enable
-     composition handling.  */
-  val = Fplist_get (plist, Qcomposition);
-  if (!NILP (val))
-    coding->composing = COMPOSITION_NO;
-
-  /* If the coding system is ascii-incompatible, record it in
-     common_flags.   */
-  val = Fplist_get (plist, Qascii_incompatible);
-  if (! NILP (val))
-    coding->common_flags |= CODING_ASCII_INCOMPATIBLE_MASK;
-
-  switch (XFASTINT (coding_type))
+  else if (EQ (coding_type, Qshift_jis))
     {
-    case 0:
-      coding->type = coding_type_emacs_mule;
-      coding->common_flags
-       |= CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
-      if (!NILP (coding->post_read_conversion))
-       coding->common_flags |= CODING_REQUIRE_DECODING_MASK;
-      if (!NILP (coding->pre_write_conversion))
-       coding->common_flags |= CODING_REQUIRE_ENCODING_MASK;
-      break;
-
-    case 1:
-      coding->type = coding_type_sjis;
-      coding->common_flags
-       |= CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
-      break;
-
-    case 2:
-      coding->type = coding_type_iso2022;
-      coding->common_flags
-       |= CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
-      {
-       Lisp_Object val, temp;
-       Lisp_Object *flags;
-       int i, charset, reg_bits = 0;
-
-       val = XVECTOR (coding_spec)->contents[4];
-
-       if (!VECTORP (val) || XVECTOR (val)->size != 32)
-         goto label_invalid_coding_system;
-
-       flags = XVECTOR (val)->contents;
-       coding->flags
-         = ((NILP (flags[4]) ? 0 : CODING_FLAG_ISO_SHORT_FORM)
-            | (NILP (flags[5]) ? 0 : CODING_FLAG_ISO_RESET_AT_EOL)
-            | (NILP (flags[6]) ? 0 : CODING_FLAG_ISO_RESET_AT_CNTL)
-            | (NILP (flags[7]) ? 0 : CODING_FLAG_ISO_SEVEN_BITS)
-            | (NILP (flags[8]) ? 0 : CODING_FLAG_ISO_LOCKING_SHIFT)
-            | (NILP (flags[9]) ? 0 : CODING_FLAG_ISO_SINGLE_SHIFT)
-            | (NILP (flags[10]) ? 0 : CODING_FLAG_ISO_USE_ROMAN)
-            | (NILP (flags[11]) ? 0 : CODING_FLAG_ISO_USE_OLDJIS)
-            | (NILP (flags[12]) ? 0 : CODING_FLAG_ISO_NO_DIRECTION)
-            | (NILP (flags[13]) ? 0 : CODING_FLAG_ISO_INIT_AT_BOL)
-            | (NILP (flags[14]) ? 0 : CODING_FLAG_ISO_DESIGNATE_AT_BOL)
-            | (NILP (flags[15]) ? 0 : CODING_FLAG_ISO_SAFE)
-            | (NILP (flags[16]) ? 0 : CODING_FLAG_ISO_LATIN_EXTRA)
-            );
-
-       /* Invoke graphic register 0 to plane 0.  */
-       CODING_SPEC_ISO_INVOCATION (coding, 0) = 0;
-       /* Invoke graphic register 1 to plane 1 if we can use full 8-bit.  */
-       CODING_SPEC_ISO_INVOCATION (coding, 1)
-         = (coding->flags & CODING_FLAG_ISO_SEVEN_BITS ? -1 : 1);
-       /* Not single shifting at first.  */
-       CODING_SPEC_ISO_SINGLE_SHIFTING (coding) = 0;
-       /* Beginning of buffer should also be regarded as bol. */
-       CODING_SPEC_ISO_BOL (coding) = 1;
-
-       for (charset = 0; charset <= MAX_CHARSET; charset++)
-         CODING_SPEC_ISO_REVISION_NUMBER (coding, charset) = 255;
-       val = Vcharset_revision_alist;
-       while (CONSP (val))
-         {
-           charset = get_charset_id (Fcar_safe (XCAR (val)));
-           if (charset >= 0
-               && (temp = Fcdr_safe (XCAR (val)), INTEGERP (temp))
-               && (i = XINT (temp), (i >= 0 && (i + '@') < 128)))
-             CODING_SPEC_ISO_REVISION_NUMBER (coding, charset) = i;
-           val = XCDR (val);
-         }
-
-       /* Checks FLAGS[REG] (REG = 0, 1, 2 3) and decide designations.
-          FLAGS[REG] can be one of below:
-               integer CHARSET: CHARSET occupies register I,
-               t: designate nothing to REG initially, but can be used
-                 by any charsets,
-               list of integer, nil, or t: designate the first
-                 element (if integer) to REG initially, the remaining
-                 elements (if integer) is designated to REG on request,
-                 if an element is t, REG can be used by any charsets,
-               nil: REG is never used.  */
-       for (charset = 0; charset <= MAX_CHARSET; charset++)
-         CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset)
-           = CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION;
-       for (i = 0; i < 4; i++)
-         {
-           if ((INTEGERP (flags[i])
-                && (charset = XINT (flags[i]), CHARSET_VALID_P (charset)))
-               || (charset = get_charset_id (flags[i])) >= 0)
-             {
-               CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, i) = charset;
-               CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset) = i;
-             }
-           else if (EQ (flags[i], Qt))
-             {
-               CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, i) = -1;
-               reg_bits |= 1 << i;
-               coding->flags |= CODING_FLAG_ISO_DESIGNATION;
-             }
-           else if (CONSP (flags[i]))
-             {
-               Lisp_Object tail;
-               tail = flags[i];
-
-               coding->flags |= CODING_FLAG_ISO_DESIGNATION;
-               if ((INTEGERP (XCAR (tail))
-                    && (charset = XINT (XCAR (tail)),
-                        CHARSET_VALID_P (charset)))
-                   || (charset = get_charset_id (XCAR (tail))) >= 0)
-                 {
-                   CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, i) = charset;
-                   CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset) =i;
-                 }
-               else
-                 CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, i) = -1;
-               tail = XCDR (tail);
-               while (CONSP (tail))
-                 {
-                   if ((INTEGERP (XCAR (tail))
-                        && (charset = XINT (XCAR (tail)),
-                            CHARSET_VALID_P (charset)))
-                       || (charset = get_charset_id (XCAR (tail))) >= 0)
-                     CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset)
-                       = i;
-                   else if (EQ (XCAR (tail), Qt))
-                     reg_bits |= 1 << i;
-                   tail = XCDR (tail);
-                 }
-             }
-           else
-             CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, i) = -1;
-
-           CODING_SPEC_ISO_DESIGNATION (coding, i)
-             = CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, i);
-         }
-
-       if (reg_bits && ! (coding->flags & CODING_FLAG_ISO_LOCKING_SHIFT))
-         {
-           /* REG 1 can be used only by locking shift in 7-bit env.  */
-           if (coding->flags & CODING_FLAG_ISO_SEVEN_BITS)
-             reg_bits &= ~2;
-           if (! (coding->flags & CODING_FLAG_ISO_SINGLE_SHIFT))
-             /* Without any shifting, only REG 0 and 1 can be used.  */
-             reg_bits &= 3;
-         }
-
-       if (reg_bits)
-         for (charset = 0; charset <= MAX_CHARSET; charset++)
-           {
-             if (CHARSET_DEFINED_P (charset)
-                 && (CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset)
-                     == CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION))
-               {
-                 /* There exist some default graphic registers to be
-                    used by CHARSET.  */
-
-                 /* We had better avoid designating a charset of
-                    CHARS96 to REG 0 as far as possible.  */
-                 if (CHARSET_CHARS (charset) == 96)
-                   CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset)
-                     = (reg_bits & 2
-                        ? 1 : (reg_bits & 4 ? 2 : (reg_bits & 8 ? 3 : 0)));
-                 else
-                   CODING_SPEC_ISO_REQUESTED_DESIGNATION (coding, charset)
-                     = (reg_bits & 1
-                        ? 0 : (reg_bits & 2 ? 1 : (reg_bits & 4 ? 2 : 3)));
-               }
-           }
-      }
-      coding->common_flags |= CODING_REQUIRE_FLUSHING_MASK;
-      coding->spec.iso2022.last_invalid_designation_register = -1;
-      break;
-
-    case 3:
-      coding->type = coding_type_big5;
+      coding->detector = detect_coding_sjis;
+      coding->decoder = decode_coding_sjis;
+      coding->encoder = encode_coding_sjis;
       coding->common_flags
-       |= CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
-      coding->flags
-       = (NILP (XVECTOR (coding_spec)->contents[4])
-          ? CODING_FLAG_BIG5_HKU
-          : CODING_FLAG_BIG5_ETEN);
-      break;
-
-    case 4:
-      coding->type = coding_type_ccl;
+       |= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
+    }
+  else if (EQ (coding_type, Qbig5))
+    {
+      coding->detector = detect_coding_big5;
+      coding->decoder = decode_coding_big5;
+      coding->encoder = encode_coding_big5;
       coding->common_flags
-       |= CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK;
-      {
-       val = XVECTOR (coding_spec)->contents[4];
-       if (! CONSP (val)
-           || setup_ccl_program (&(coding->spec.ccl.decoder),
-                                 XCAR (val)) < 0
-           || setup_ccl_program (&(coding->spec.ccl.encoder),
-                                 XCDR (val)) < 0)
-         goto label_invalid_coding_system;
-
-       bzero (coding->spec.ccl.valid_codes, 256);
-       val = Fplist_get (plist, Qvalid_codes);
-       if (CONSP (val))
-         {
-           Lisp_Object this;
-
-           for (; CONSP (val); val = XCDR (val))
-             {
-               this = XCAR (val);
-               if (INTEGERP (this)
-                   && XINT (this) >= 0 && XINT (this) < 256)
-                 coding->spec.ccl.valid_codes[XINT (this)] = 1;
-               else if (CONSP (this)
-                        && INTEGERP (XCAR (this))
-                        && INTEGERP (XCDR (this)))
-                 {
-                   int start = XINT (XCAR (this));
-                   int end = XINT (XCDR (this));
-
-                   if (start >= 0 && start <= end && end < 256)
-                     while (start <= end)
-                       coding->spec.ccl.valid_codes[start++] = 1;
-                 }
-             }
-         }
-      }
-      coding->common_flags |= CODING_REQUIRE_FLUSHING_MASK;
-      coding->spec.ccl.cr_carryover = 0;
-      coding->spec.ccl.eight_bit_carryover[0] = 0;
-      break;
-
-    case 5:
-      coding->type = coding_type_raw_text;
-      break;
+       |= (CODING_REQUIRE_DECODING_MASK | CODING_REQUIRE_ENCODING_MASK);
+    }
+  else                         /* EQ (coding_type, Qraw_text) */
+    {
+      coding->detector = NULL;
+      coding->decoder = decode_coding_raw_text;
+      coding->encoder = encode_coding_raw_text;
+      if (! EQ (eol_type, Qunix))
+       {
+         coding->common_flags |= CODING_REQUIRE_DECODING_MASK;
+         if (! VECTORP (eol_type))
+           coding->common_flags |= CODING_REQUIRE_ENCODING_MASK;
+       }
 
-    default:
-      goto label_invalid_coding_system;
     }
-  return 0;
 
- label_invalid_coding_system:
-  coding->type = coding_type_no_conversion;
-  coding->category_idx = CODING_CATEGORY_IDX_BINARY;
-  coding->common_flags = 0;
-  coding->eol_type = CODING_EOL_UNDECIDED;
-  coding->pre_write_conversion = coding->post_read_conversion = Qnil;
-  return NILP (coding_system) ? 0 : -1;
+  return;
 }
 
-/* Free memory blocks allocated for storing composition information.  */
+/* Return a list of charsets supported by CODING.  */
 
-void
-coding_free_composition_data (coding)
+Lisp_Object
+coding_charset_list (coding)
      struct coding_system *coding;
 {
-  struct composition_data *cmp_data = coding->cmp_data, *next;
+  Lisp_Object attrs, charset_list;
 
-  if (!cmp_data)
-    return;
-  /* Memory blocks are chained.  At first, rewind to the first, then,
-     free blocks one by one.  */
-  while (cmp_data->prev)
-    cmp_data = cmp_data->prev;
-  while (cmp_data)
+  CODING_GET_INFO (coding, attrs, charset_list);
+  if (EQ (CODING_ATTR_TYPE (attrs), Qiso_2022))
     {
-      next = cmp_data->next;
-      xfree (cmp_data);
-      cmp_data = next;
+      int flags = XINT (AREF (attrs, coding_attr_iso_flags));
+
+      if (flags & CODING_ISO_FLAG_FULL_SUPPORT)
+       charset_list = Viso_2022_charset_list;
+    }
+  else if (EQ (CODING_ATTR_TYPE (attrs), Qemacs_mule))
+    {
+      charset_list = Vemacs_mule_charset_list;
     }
-  coding->cmp_data = NULL;
+  return charset_list;
 }
 
-/* Set `char_offset' member of all memory blocks pointed by
-   coding->cmp_data to POS.  */
 
-void
-coding_adjust_composition_offset (coding, pos)
-     struct coding_system *coding;
-     int pos;
+/* Return raw-text or one of its subsidiaries that has the same
+   eol_type as CODING-SYSTEM.  */
+
+Lisp_Object
+raw_text_coding_system (coding_system)
+     Lisp_Object coding_system;
 {
-  struct composition_data *cmp_data;
+  Lisp_Object spec, attrs;
+  Lisp_Object eol_type, raw_text_eol_type;
+
+  if (NILP (coding_system))
+    return Qraw_text;
+  spec = CODING_SYSTEM_SPEC (coding_system);
+  attrs = AREF (spec, 0);
+
+  if (EQ (CODING_ATTR_TYPE (attrs), Qraw_text))
+    return coding_system;
 
-  for (cmp_data = coding->cmp_data; cmp_data; cmp_data = cmp_data->next)
-    cmp_data->char_offset = pos;
+  eol_type = AREF (spec, 2);
+  if (VECTORP (eol_type))
+    return Qraw_text;
+  spec = CODING_SYSTEM_SPEC (Qraw_text);
+  raw_text_eol_type = AREF (spec, 2);
+  return (EQ (eol_type, Qunix) ? AREF (raw_text_eol_type, 0)
+         : EQ (eol_type, Qdos) ? AREF (raw_text_eol_type, 1)
+         : AREF (raw_text_eol_type, 2));
 }
 
-/* Setup raw-text or one of its subsidiaries in the structure
-   coding_system CODING according to the already setup value eol_type
-   in CODING.  CODING should be setup for some coding system in
-   advance.  */
 
-void
-setup_raw_text_coding_system (coding)
-     struct coding_system *coding;
+/* If CODING_SYSTEM doesn't specify end-of-line format but PARENT
+   does, return one of the subsidiary that has the same eol-spec as
+   PARENT.  Otherwise, return CODING_SYSTEM.  If PARENT is nil,
+   inherit end-of-line format from the system's setting
+   (system_eol_type).  */
+
+Lisp_Object
+coding_inherit_eol_type (coding_system, parent)
+     Lisp_Object coding_system, parent;
 {
-  if (coding->type != coding_type_raw_text)
+  Lisp_Object spec, eol_type;
+
+  if (NILP (coding_system))
+    coding_system = Qraw_text;
+  spec = CODING_SYSTEM_SPEC (coding_system);
+  eol_type = AREF (spec, 2);
+  if (VECTORP (eol_type))
     {
-      coding->symbol = Qraw_text;
-      coding->type = coding_type_raw_text;
-      if (coding->eol_type != CODING_EOL_UNDECIDED)
+      Lisp_Object parent_eol_type;
+
+      if (! NILP (parent))
        {
-         Lisp_Object subsidiaries;
-         subsidiaries = Fget (Qraw_text, Qeol_type);
+         Lisp_Object parent_spec;
 
-         if (VECTORP (subsidiaries)
-             && XVECTOR (subsidiaries)->size == 3)
-           coding->symbol
-             = XVECTOR (subsidiaries)->contents[coding->eol_type];
+         parent_spec = CODING_SYSTEM_SPEC (parent);
+         parent_eol_type = AREF (parent_spec, 2);
        }
-      setup_coding_system (coding->symbol, coding);
-    }
-  return;
+      else
+       parent_eol_type = system_eol_type;
+      if (EQ (parent_eol_type, Qunix))
+       coding_system = AREF (eol_type, 0);
+      else if (EQ (parent_eol_type, Qdos))
+       coding_system = AREF (eol_type, 1);
+      else if (EQ (parent_eol_type, Qmac))
+       coding_system = AREF (eol_type, 2);
+    }
+  return coding_system;
 }
 
 /* Emacs has a mechanism to automatically detect a coding system if it
@@ -4044,14 +5324,14 @@ setup_raw_text_coding_system (coding)
    o coding-category-iso-7-else
 
        The category for a coding system which has the same code range
-       as ISO2022 of 7-bit environment but uses locking shift or
+       as ISO2022 of 7-bit environemnt but uses locking shift or
        single shift functions.  Assigned the coding-system (Lisp
        symbol) `iso-2022-7bit-lock' by default.
 
    o coding-category-iso-8-else
 
        The category for a coding system which has the same code range
-       as ISO2022 of 8-bit environment but uses locking shift or
+       as ISO2022 of 8-bit environemnt but uses locking shift or
        single shift functions.  Assigned the coding-system (Lisp
        symbol) `iso-2022-8bit-ss2' by default.
 
@@ -4094,2425 +5374,1788 @@ setup_raw_text_coding_system (coding)
        `no-conversion' by default.
 
    Each of them is a Lisp symbol and the value is an actual
-   `coding-system' (this is also a Lisp symbol) assigned by a user.
+   `coding-system's (this is also a Lisp symbol) assigned by a user.
    What Emacs does actually is to detect a category of coding system.
    Then, it uses a `coding-system' assigned to it.  If Emacs can't
-   decide a single possible category, it selects a category of the
+   decide only one possible category, it selects a category of the
    highest priority.  Priorities of categories are also specified by a
    user in a Lisp variable `coding-category-list'.
 
 */
 
-static
-int ascii_skip_code[256];
-
-/* Detect how a text of length SRC_BYTES pointed by SOURCE is encoded.
-   If it detects possible coding systems, return an integer in which
-   appropriate flag bits are set.  Flag bits are defined by macros
-   CODING_CATEGORY_MASK_XXX in `coding.h'.  If PRIORITIES is non-NULL,
-   it should point the table `coding_priorities'.  In that case, only
-   the flag bit for a coding system of the highest priority is set in
-   the returned value.  If MULTIBYTEP is nonzero, 8-bit codes of the
-   range 0x80..0x9F are in multibyte form.
-
-   How many ASCII characters are at the head is returned as *SKIP.  */
-
-static int
-detect_coding_mask (source, src_bytes, priorities, skip, multibytep)
-     unsigned char *source;
-     int src_bytes, *priorities, *skip;
-     int multibytep;
-{
-  register unsigned char c;
-  unsigned char *src = source, *src_end = source + src_bytes;
-  unsigned int mask, utf16_examined_p, iso2022_examined_p;
-  int i;
-
-  /* At first, skip all ASCII characters and control characters except
-     for three ISO2022 specific control characters.  */
-  ascii_skip_code[ISO_CODE_SO] = 0;
-  ascii_skip_code[ISO_CODE_SI] = 0;
-  ascii_skip_code[ISO_CODE_ESC] = 0;
-
- label_loop_detect_coding:
-  while (src < src_end && ascii_skip_code[*src]) src++;
-  *skip = src - source;
-
-  if (src >= src_end)
-    /* We found nothing other than ASCII.  There's nothing to do.  */
-    return 0;
-
-  c = *src;
-  /* The text seems to be encoded in some multilingual coding system.
-     Now, try to find in which coding system the text is encoded.  */
-  if (c < 0x80)
-    {
-      /* i.e. (c == ISO_CODE_ESC || c == ISO_CODE_SI || c == ISO_CODE_SO) */
-      /* C is an ISO2022 specific control code of C0.  */
-      mask = detect_coding_iso2022 (src, src_end, multibytep);
-      if (mask == 0)
-       {
-         /* No valid ISO2022 code follows C.  Try again.  */
-         src++;
-         if (c == ISO_CODE_ESC)
-           ascii_skip_code[ISO_CODE_ESC] = 1;
-         else
-           ascii_skip_code[ISO_CODE_SO] = ascii_skip_code[ISO_CODE_SI] = 1;
-         goto label_loop_detect_coding;
-       }
-      if (priorities)
-       {
-         for (i = 0; i < CODING_CATEGORY_IDX_MAX; i++)
-           {
-             if (mask & priorities[i])
-               return priorities[i];
-           }
-         return CODING_CATEGORY_MASK_RAW_TEXT;
-       }
-    }
-  else
-    {
-      int try;
-
-      if (multibytep && c == LEADING_CODE_8_BIT_CONTROL)
-       c = src[1] - 0x20;
-
-      if (c < 0xA0)
-       {
-         /* C is the first byte of SJIS character code,
-            or a leading-code of Emacs' internal format (emacs-mule),
-            or the first byte of UTF-16.  */
-         try = (CODING_CATEGORY_MASK_SJIS
-                 | CODING_CATEGORY_MASK_EMACS_MULE
-                 | CODING_CATEGORY_MASK_UTF_16_BE
-                 | CODING_CATEGORY_MASK_UTF_16_LE);
-
-         /* Or, if C is a special latin extra code,
-            or is an ISO2022 specific control code of C1 (SS2 or SS3),
-            or is an ISO2022 control-sequence-introducer (CSI),
-            we should also consider the possibility of ISO2022 codings.  */
-         if ((VECTORP (Vlatin_extra_code_table)
-              && !NILP (XVECTOR (Vlatin_extra_code_table)->contents[c]))
-             || (c == ISO_CODE_SS2 || c == ISO_CODE_SS3)
-             || (c == ISO_CODE_CSI
-                 && (src < src_end
-                     && (*src == ']'
-                         || ((*src == '0' || *src == '1' || *src == '2')
-                             && src + 1 < src_end
-                             && src[1] == ']')))))
-           try |= (CODING_CATEGORY_MASK_ISO_8_ELSE
-                    | CODING_CATEGORY_MASK_ISO_8BIT);
-       }
-      else
-       /* C is a character of ISO2022 in graphic plane right,
-          or a SJIS's 1-byte character code (i.e. JISX0201),
-          or the first byte of BIG5's 2-byte code,
-          or the first byte of UTF-8/16.  */
-       try = (CODING_CATEGORY_MASK_ISO_8_ELSE
-               | CODING_CATEGORY_MASK_ISO_8BIT
-               | CODING_CATEGORY_MASK_SJIS
-               | CODING_CATEGORY_MASK_BIG5
-               | CODING_CATEGORY_MASK_UTF_8
-               | CODING_CATEGORY_MASK_UTF_16_BE
-               | CODING_CATEGORY_MASK_UTF_16_LE);
-
-      /* Or, we may have to consider the possibility of CCL.  */
-      if (coding_system_table[CODING_CATEGORY_IDX_CCL]
-         && (coding_system_table[CODING_CATEGORY_IDX_CCL]
-             ->spec.ccl.valid_codes)[c])
-       try |= CODING_CATEGORY_MASK_CCL;
-
-      mask = 0;
-      utf16_examined_p = iso2022_examined_p = 0;
-      if (priorities)
-       {
-         for (i = 0; i < CODING_CATEGORY_IDX_MAX; i++)
-           {
-             if (!iso2022_examined_p
-                 && (priorities[i] & try & CODING_CATEGORY_MASK_ISO))
-               {
-                 mask |= detect_coding_iso2022 (src, src_end, multibytep);
-                 iso2022_examined_p = 1;
-               }
-             else if (priorities[i] & try & CODING_CATEGORY_MASK_SJIS)
-               mask |= detect_coding_sjis (src, src_end, multibytep);
-             else if (priorities[i] & try & CODING_CATEGORY_MASK_UTF_8)
-               mask |= detect_coding_utf_8 (src, src_end, multibytep);
-             else if (!utf16_examined_p
-                      && (priorities[i] & try &
-                          CODING_CATEGORY_MASK_UTF_16_BE_LE))
-               {
-                 mask |= detect_coding_utf_16 (src, src_end, multibytep);
-                 utf16_examined_p = 1;
-               }
-             else if (priorities[i] & try & CODING_CATEGORY_MASK_BIG5)
-               mask |= detect_coding_big5 (src, src_end, multibytep);
-             else if (priorities[i] & try & CODING_CATEGORY_MASK_EMACS_MULE)
-               mask |= detect_coding_emacs_mule (src, src_end, multibytep);
-             else if (priorities[i] & try & CODING_CATEGORY_MASK_CCL)
-               mask |= detect_coding_ccl (src, src_end, multibytep);
-             else if (priorities[i] & CODING_CATEGORY_MASK_RAW_TEXT)
-               mask |= CODING_CATEGORY_MASK_RAW_TEXT;
-             else if (priorities[i] & CODING_CATEGORY_MASK_BINARY)
-               mask |= CODING_CATEGORY_MASK_BINARY;
-             if (mask & priorities[i])
-               return priorities[i];
-           }
-         return CODING_CATEGORY_MASK_RAW_TEXT;
-       }
-      if (try & CODING_CATEGORY_MASK_ISO)
-       mask |= detect_coding_iso2022 (src, src_end, multibytep);
-      if (try & CODING_CATEGORY_MASK_SJIS)
-       mask |= detect_coding_sjis (src, src_end, multibytep);
-      if (try & CODING_CATEGORY_MASK_BIG5)
-       mask |= detect_coding_big5 (src, src_end, multibytep);
-      if (try & CODING_CATEGORY_MASK_UTF_8)
-       mask |= detect_coding_utf_8 (src, src_end, multibytep);
-      if (try & CODING_CATEGORY_MASK_UTF_16_BE_LE)
-       mask |= detect_coding_utf_16 (src, src_end, multibytep);
-      if (try & CODING_CATEGORY_MASK_EMACS_MULE)
-       mask |= detect_coding_emacs_mule (src, src_end, multibytep);
-      if (try & CODING_CATEGORY_MASK_CCL)
-       mask |= detect_coding_ccl (src, src_end, multibytep);
-    }
-  return (mask | CODING_CATEGORY_MASK_RAW_TEXT | CODING_CATEGORY_MASK_BINARY);
-}
-
-/* Detect how a text of length SRC_BYTES pointed by SRC is encoded.
-   The information of the detected coding system is set in CODING.  */
-
-void
-detect_coding (coding, src, src_bytes)
-     struct coding_system *coding;
-     const unsigned char *src;
-     int src_bytes;
-{
-  unsigned int idx;
-  int skip, mask;
-  Lisp_Object val;
-
-  val = Vcoding_category_list;
-  mask = detect_coding_mask (src, src_bytes, coding_priorities, &skip,
-                            coding->src_multibyte);
-  coding->heading_ascii = skip;
-
-  if (!mask) return;
-
-  /* We found a single coding system of the highest priority in MASK.  */
-  idx = 0;
-  while (mask && ! (mask & 1)) mask >>= 1, idx++;
-  if (! mask)
-    idx = CODING_CATEGORY_IDX_RAW_TEXT;
-
-  val = find_symbol_value (XVECTOR (Vcoding_category_table)->contents[idx]);
-
-  if (coding->eol_type != CODING_EOL_UNDECIDED)
-    {
-      Lisp_Object tmp;
-
-      tmp = Fget (val, Qeol_type);
-      if (VECTORP (tmp))
-       val = XVECTOR (tmp)->contents[coding->eol_type];
-    }
-
-  /* Setup this new coding system while preserving some slots.  */
-  {
-    int src_multibyte = coding->src_multibyte;
-    int dst_multibyte = coding->dst_multibyte;
-
-    setup_coding_system (val, coding);
-    coding->src_multibyte = src_multibyte;
-    coding->dst_multibyte = dst_multibyte;
-    coding->heading_ascii = skip;
-  }
-}
+#define EOL_SEEN_NONE  0
+#define EOL_SEEN_LF    1
+#define EOL_SEEN_CR    2
+#define EOL_SEEN_CRLF  4
 
 /* Detect how end-of-line of a text of length SRC_BYTES pointed by
-   SOURCE is encoded.  Return one of CODING_EOL_LF, CODING_EOL_CRLF,
-   CODING_EOL_CR, and CODING_EOL_UNDECIDED.
-
-   How many non-eol characters are at the head is returned as *SKIP.  */
-
-#define MAX_EOL_CHECK_COUNT 3
-
-static int
-detect_eol_type (source, src_bytes, skip)
-     const unsigned char *source;
-     int src_bytes, *skip;
-{
-  const unsigned char *src = source, *src_end = src + src_bytes;
-  unsigned char c;
-  int total = 0;               /* How many end-of-lines are found so far.  */
-  int eol_type = CODING_EOL_UNDECIDED;
-  int this_eol_type;
-
-  *skip = 0;
-
-  while (src < src_end && total < MAX_EOL_CHECK_COUNT)
-    {
-      c = *src++;
-      if (c == '\n' || c == '\r')
-       {
-         if (*skip == 0)
-           *skip = src - 1 - source;
-         total++;
-         if (c == '\n')
-           this_eol_type = CODING_EOL_LF;
-         else if (src >= src_end || *src != '\n')
-           this_eol_type = CODING_EOL_CR;
-         else
-           this_eol_type = CODING_EOL_CRLF, src++;
-
-         if (eol_type == CODING_EOL_UNDECIDED)
-           /* This is the first end-of-line.  */
-           eol_type = this_eol_type;
-         else if (eol_type != this_eol_type)
-           {
-             /* The found type is different from what found before.  */
-             eol_type = CODING_EOL_INCONSISTENT;
-             break;
-           }
-       }
-    }
-
-  if (*skip == 0)
-    *skip = src_end - source;
-  return eol_type;
-}
-
-/* Like detect_eol_type, but detect EOL type in 2-octet
-   big-endian/little-endian format for coding systems utf-16-be and
-   utf-16-le.  */
-
-static int
-detect_eol_type_in_2_octet_form (source, src_bytes, skip, big_endian_p)
-     const unsigned char *source;
-     int src_bytes, *skip, big_endian_p;
-{
-  const unsigned char *src = source, *src_end = src + src_bytes;
-  unsigned int c1, c2;
-  int total = 0;               /* How many end-of-lines are found so far.  */
-  int eol_type = CODING_EOL_UNDECIDED;
-  int this_eol_type;
-  int msb, lsb;
-
-  if (big_endian_p)
-    msb = 0, lsb = 1;
-  else
-    msb = 1, lsb = 0;
-
-  *skip = 0;
-
-  while ((src + 1) < src_end && total < MAX_EOL_CHECK_COUNT)
-    {
-      c1 = (src[msb] << 8) | (src[lsb]);
-      src += 2;
-
-      if (c1 == '\n' || c1 == '\r')
-       {
-         if (*skip == 0)
-           *skip = src - 2 - source;
-         total++;
-         if (c1 == '\n')
-           {
-             this_eol_type = CODING_EOL_LF;
-           }
-         else
-           {
-             if ((src + 1) >= src_end)
-               {
-                 this_eol_type = CODING_EOL_CR;
-               }
-             else
-               {
-                 c2 = (src[msb] << 8) | (src[lsb]);
-                 if (c2 == '\n')
-                   this_eol_type = CODING_EOL_CRLF, src += 2;
-                 else
-                   this_eol_type = CODING_EOL_CR;
-               }
-           }
-
-         if (eol_type == CODING_EOL_UNDECIDED)
-           /* This is the first end-of-line.  */
-           eol_type = this_eol_type;
-         else if (eol_type != this_eol_type)
-           {
-             /* The found type is different from what found before.  */
-             eol_type = CODING_EOL_INCONSISTENT;
-             break;
-           }
-       }
-    }
-
-  if (*skip == 0)
-    *skip = src_end - source;
-  return eol_type;
-}
-
-/* Detect how end-of-line of a text of length SRC_BYTES pointed by SRC
-   is encoded.  If it detects an appropriate format of end-of-line, it
-   sets the information in *CODING.  */
-
-void
-detect_eol (coding, src, src_bytes)
-     struct coding_system *coding;
-     const unsigned char *src;
-     int src_bytes;
-{
-  Lisp_Object val;
-  int skip;
-  int eol_type;
-
-  switch (coding->category_idx)
-    {
-    case CODING_CATEGORY_IDX_UTF_16_BE:
-      eol_type = detect_eol_type_in_2_octet_form (src, src_bytes, &skip, 1);
-      break;
-    case CODING_CATEGORY_IDX_UTF_16_LE:
-      eol_type = detect_eol_type_in_2_octet_form (src, src_bytes, &skip, 0);
-      break;
-    default:
-      eol_type = detect_eol_type (src, src_bytes, &skip);
-      break;
-    }
+   SOURCE is encoded.  If CATEGORY is one of
+   coding_category_utf_16_XXXX, assume that CR and LF are encoded by
+   two-byte, else they are encoded by one-byte.
 
-  if (coding->heading_ascii > skip)
-    coding->heading_ascii = skip;
-  else
-    skip = coding->heading_ascii;
+   Return one of EOL_SEEN_XXX.  */
 
-  if (eol_type == CODING_EOL_UNDECIDED)
-    return;
-  if (eol_type == CODING_EOL_INCONSISTENT)
-    {
-#if 0
-      /* This code is suppressed until we find a better way to
-        distinguish raw text file and binary file.  */
+#define MAX_EOL_CHECK_COUNT 3
 
-      /* If we have already detected that the coding is raw-text, the
-        coding should actually be no-conversion.  */
-      if (coding->type == coding_type_raw_text)
-       {
-         setup_coding_system (Qno_conversion, coding);
-         return;
-       }
-      /* Else, let's decode only text code anyway.  */
-#endif /* 0 */
-      eol_type = CODING_EOL_LF;
-    }
+static int
+detect_eol (source, src_bytes, category)
+     const unsigned char *source;
+     EMACS_INT src_bytes;
+     enum coding_category category;
+{
+  const unsigned char *src = source, *src_end = src + src_bytes;
+  unsigned char c;
+  int total  = 0;
+  int eol_seen = EOL_SEEN_NONE;
 
-  val = Fget (coding->symbol, Qeol_type);
-  if (VECTORP (val) && XVECTOR (val)->size == 3)
+  if ((1 << category) & CATEGORY_MASK_UTF_16)
     {
-      int src_multibyte = coding->src_multibyte;
-      int dst_multibyte = coding->dst_multibyte;
-      struct composition_data *cmp_data = coding->cmp_data;
+      int msb, lsb;
 
-      setup_coding_system (XVECTOR (val)->contents[eol_type], coding);
-      coding->src_multibyte = src_multibyte;
-      coding->dst_multibyte = dst_multibyte;
-      coding->heading_ascii = skip;
-      coding->cmp_data = cmp_data;
-    }
-}
+      msb = category == (coding_category_utf_16_le
+                        | coding_category_utf_16_le_nosig);
+      lsb = 1 - msb;
 
-#define CONVERSION_BUFFER_EXTRA_ROOM 256
+      while (src + 1 < src_end)
+       {
+         c = src[lsb];
+         if (src[msb] == 0 && (c == '\n' || c == '\r'))
+           {
+             int this_eol;
+
+             if (c == '\n')
+               this_eol = EOL_SEEN_LF;
+             else if (src + 3 >= src_end
+                      || src[msb + 2] != 0
+                      || src[lsb + 2] != '\n')
+               this_eol = EOL_SEEN_CR;
+             else
+               this_eol = EOL_SEEN_CRLF;
 
-#define DECODING_BUFFER_MAG(coding)                    \
-  (coding->type == coding_type_iso2022                 \
-   ? 3                                                 \
-   : (coding->type == coding_type_ccl                  \
-      ? coding->spec.ccl.decoder.buf_magnification     \
-      : 2))
+             if (eol_seen == EOL_SEEN_NONE)
+               /* This is the first end-of-line.  */
+               eol_seen = this_eol;
+             else if (eol_seen != this_eol)
+               {
+                 /* The found type is different from what found before.  */
+                 eol_seen = EOL_SEEN_LF;
+                 break;
+               }
+             if (++total == MAX_EOL_CHECK_COUNT)
+               break;
+           }
+         src += 2;
+       }
+    }
+  else
+    {
+      while (src < src_end)
+       {
+         c = *src++;
+         if (c == '\n' || c == '\r')
+           {
+             int this_eol;
 
-/* Return maximum size (bytes) of a buffer enough for decoding
-   SRC_BYTES of text encoded in CODING.  */
+             if (c == '\n')
+               this_eol = EOL_SEEN_LF;
+             else if (src >= src_end || *src != '\n')
+               this_eol = EOL_SEEN_CR;
+             else
+               this_eol = EOL_SEEN_CRLF, src++;
 
-int
-decoding_buffer_size (coding, src_bytes)
-     struct coding_system *coding;
-     int src_bytes;
-{
-  return (src_bytes * DECODING_BUFFER_MAG (coding)
-         + CONVERSION_BUFFER_EXTRA_ROOM);
+             if (eol_seen == EOL_SEEN_NONE)
+               /* This is the first end-of-line.  */
+               eol_seen = this_eol;
+             else if (eol_seen != this_eol)
+               {
+                 /* The found type is different from what found before.  */
+                 eol_seen = EOL_SEEN_LF;
+                 break;
+               }
+             if (++total == MAX_EOL_CHECK_COUNT)
+               break;
+           }
+       }
+    }
+  return eol_seen;
 }
 
-/* Return maximum size (bytes) of a buffer enough for encoding
-   SRC_BYTES of text to CODING.  */
 
-int
-encoding_buffer_size (coding, src_bytes)
+static Lisp_Object
+adjust_coding_eol_type (coding, eol_seen)
      struct coding_system *coding;
-     int src_bytes;
+     int eol_seen;
 {
-  int magnification;
+  Lisp_Object eol_type;
 
-  if (coding->type == coding_type_ccl)
+  eol_type = CODING_ID_EOL_TYPE (coding->id);
+  if (eol_seen & EOL_SEEN_LF)
     {
-      magnification = coding->spec.ccl.encoder.buf_magnification;
-      if (coding->eol_type == CODING_EOL_CRLF)
-       magnification *= 2;
+      coding->id = CODING_SYSTEM_ID (AREF (eol_type, 0));
+      eol_type = Qunix;
     }
-  else if (CODING_REQUIRE_ENCODING (coding))
-    magnification = 3;
-  else
-    magnification = 1;
-
-  return (src_bytes * magnification + CONVERSION_BUFFER_EXTRA_ROOM);
-}
-
-/* Working buffer for code conversion.  */
-struct conversion_buffer
-{
-  int size;                    /* size of data.  */
-  int on_stack;                        /* 1 if allocated by alloca.  */
-  unsigned char *data;
-};
-
-/* Allocate LEN bytes of memory for BUF (struct conversion_buffer).  */
-#define allocate_conversion_buffer(buf, len)           \
-  do {                                                 \
-    if (len < MAX_ALLOCA)                              \
-      {                                                        \
-       buf.data = (unsigned char *) alloca (len);      \
-       buf.on_stack = 1;                               \
-      }                                                        \
-    else                                               \
-      {                                                        \
-       buf.data = (unsigned char *) xmalloc (len);     \
-       buf.on_stack = 0;                               \
-      }                                                        \
-    buf.size = len;                                    \
-  } while (0)
-
-/* Double the allocated memory for *BUF.  */
-static void
-extend_conversion_buffer (buf)
-     struct conversion_buffer *buf;
-{
-  if (buf->on_stack)
+  else if (eol_seen & EOL_SEEN_CRLF)
     {
-      unsigned char *save = buf->data;
-      buf->data = (unsigned char *) xmalloc (buf->size * 2);
-      bcopy (save, buf->data, buf->size);
-      buf->on_stack = 0;
+      coding->id = CODING_SYSTEM_ID (AREF (eol_type, 1));
+      eol_type = Qdos;
     }
-  else
+  else if (eol_seen & EOL_SEEN_CR)
     {
-      buf->data = (unsigned char *) xrealloc (buf->data, buf->size * 2);
+      coding->id = CODING_SYSTEM_ID (AREF (eol_type, 2));
+      eol_type = Qmac;
     }
-  buf->size *= 2;
+  return eol_type;
 }
 
-/* Free the allocated memory for BUF if it is not on stack.  */
-static void
-free_conversion_buffer (buf)
-     struct conversion_buffer *buf;
-{
-  if (!buf->on_stack)
-    xfree (buf->data);
-}
+/* Detect how a text specified in CODING is encoded.  If a coding
+   system is detected, update fields of CODING by the detected coding
+   system.  */
 
-int
-ccl_coding_driver (coding, source, destination, src_bytes, dst_bytes, encodep)
+void
+detect_coding (coding)
      struct coding_system *coding;
-     unsigned char *source, *destination;
-     int src_bytes, dst_bytes, encodep;
 {
-  struct ccl_program *ccl
-    = encodep ? &coding->spec.ccl.encoder : &coding->spec.ccl.decoder;
-  unsigned char *dst = destination;
+  const unsigned char *src, *src_end;
 
-  ccl->suppress_error = coding->suppress_error;
-  ccl->last_block = coding->mode & CODING_MODE_LAST_BLOCK;
-  if (encodep)
-    {
-      /* On encoding, EOL format is converted within ccl_driver.  For
-        that, setup proper information in the structure CCL.  */
-      ccl->eol_type = coding->eol_type;
-      if (ccl->eol_type ==CODING_EOL_UNDECIDED)
-       ccl->eol_type = CODING_EOL_LF;
-      ccl->cr_consumed = coding->spec.ccl.cr_carryover;
-      ccl->eight_bit_control = coding->dst_multibyte;
-    }
-  else
-    ccl->eight_bit_control = 1;
-  ccl->multibyte = coding->src_multibyte;
-  if (coding->spec.ccl.eight_bit_carryover[0] != 0)
-    {
-      /* Move carryover bytes to DESTINATION.  */
-      unsigned char *p = coding->spec.ccl.eight_bit_carryover;
-      while (*p)
-       *dst++ = *p++;
-      coding->spec.ccl.eight_bit_carryover[0] = 0;
-      if (dst_bytes)
-       dst_bytes -= dst - destination;
-    }
+  coding->consumed = coding->consumed_char = 0;
+  coding->produced = coding->produced_char = 0;
+  coding_set_source (coding);
 
-  coding->produced = (ccl_driver (ccl, source, dst, src_bytes, dst_bytes,
-                                 &(coding->consumed))
-                     + dst - destination);
+  src_end = coding->source + coding->src_bytes;
 
-  if (encodep)
-    {
-      coding->produced_char = coding->produced;
-      coding->spec.ccl.cr_carryover = ccl->cr_consumed;
-    }
-  else if (!ccl->eight_bit_control)
-    {
-      /* The produced bytes forms a valid multibyte sequence. */
-      coding->produced_char
-       = multibyte_chars_in_text (destination, coding->produced);
-      coding->spec.ccl.eight_bit_carryover[0] = 0;
-    }
-  else
+  /* If we have not yet decided the text encoding type, detect it
+     now.  */
+  if (EQ (CODING_ATTR_TYPE (CODING_ID_ATTRS (coding->id)), Qundecided))
     {
-      /* On decoding, the destination should always multibyte.  But,
-        CCL program might have been generated an invalid multibyte
-        sequence.  Here we make such a sequence valid as
-        multibyte.  */
-      int bytes
-       = dst_bytes ? dst_bytes : source + coding->consumed - destination;
-
-      if ((coding->consumed < src_bytes
-          || !ccl->last_block)
-         && coding->produced >= 1
-         && destination[coding->produced - 1] >= 0x80)
-       {
-         /* We should not convert the tailing 8-bit codes to
-            multibyte form even if they doesn't form a valid
-            multibyte sequence.  They may form a valid sequence in
-            the next call.  */
-         int carryover = 0;
-
-         if (destination[coding->produced - 1] < 0xA0)
-           carryover = 1;
-         else if (coding->produced >= 2)
+      int c, i;
+      struct coding_detection_info detect_info;
+
+      detect_info.checked = detect_info.found = detect_info.rejected = 0;
+      for (i = 0, src = coding->source; src < src_end; i++, src++)
+       {
+         c = *src;
+         if (c & 0x80)
+           break;
+         if (c < 0x20
+             && (c == ISO_CODE_ESC || c == ISO_CODE_SI || c == ISO_CODE_SO)
+             && ! inhibit_iso_escape_detection
+             && ! detect_info.checked)
            {
-             if (destination[coding->produced - 2] >= 0x80)
+             coding->head_ascii = src - (coding->source + coding->consumed);
+             if (detect_coding_iso_2022 (coding, &detect_info))
                {
-                 if (destination[coding->produced - 2] < 0xA0)
-                   carryover = 2;
-                 else if (coding->produced >= 3
-                          && destination[coding->produced - 3] >= 0x80
-                          && destination[coding->produced - 3] < 0xA0)
-                   carryover = 3;
+                 /* We have scanned the whole data.  */
+                 if (! (detect_info.rejected & CATEGORY_MASK_ISO_7_ELSE))
+                   /* We didn't find an 8-bit code.  */
+                   src = src_end;
+                 break;
                }
            }
-         if (carryover > 0)
-           {
-             BCOPY_SHORT (destination + coding->produced - carryover,
-                          coding->spec.ccl.eight_bit_carryover,
-                          carryover);
-             coding->spec.ccl.eight_bit_carryover[carryover] = 0;
-             coding->produced -= carryover;
-           }
        }
-      coding->produced = str_as_multibyte (destination, bytes,
-                                          coding->produced,
-                                          &(coding->produced_char));
-    }
+      coding->head_ascii = src - (coding->source + coding->consumed);
+
+      if (coding->head_ascii < coding->src_bytes
+         || detect_info.found)
+       {
+         enum coding_category category;
+         struct coding_system *this;
 
-  switch (ccl->status)
+         if (coding->head_ascii == coding->src_bytes)
+           /* As all bytes are 7-bit, we can ignore non-ISO-2022 codings.  */
+           for (i = 0; i < coding_category_raw_text; i++)
+             {
+               category = coding_priorities[i];
+               this = coding_categories + category;
+               if (detect_info.found & (1 << category))
+                 break;
+             }
+         else
+           for (i = 0; i < coding_category_raw_text; i++)
+             {
+               category = coding_priorities[i];
+               this = coding_categories + category;
+               if (this->id < 0)
+                 {
+                   /* No coding system of this category is defined.  */
+                   detect_info.rejected |= (1 << category);
+                 }
+               else if (category >= coding_category_raw_text)
+                 continue;
+               else if (detect_info.checked & (1 << category))
+                 {
+                   if (detect_info.found & (1 << category))
+                     break;
+                 }
+               else if ((*(this->detector)) (coding, &detect_info)
+                        && detect_info.found & (1 << category))
+                 {
+                   if (category == coding_category_utf_16_auto)
+                     {
+                       if (detect_info.found & CATEGORY_MASK_UTF_16_LE)
+                         category = coding_category_utf_16_le;
+                       else
+                         category = coding_category_utf_16_be;
+                     }
+                   break;
+                 }
+             }
+         
+         if (i < coding_category_raw_text)
+           setup_coding_system (CODING_ID_NAME (this->id), coding);
+         else if (detect_info.rejected == CATEGORY_MASK_ANY)
+           setup_coding_system (Qraw_text, coding);
+         else if (detect_info.rejected)
+           for (i = 0; i < coding_category_raw_text; i++)
+             if (! (detect_info.rejected & (1 << coding_priorities[i])))
+               {
+                 this = coding_categories + coding_priorities[i];
+                 setup_coding_system (CODING_ID_NAME (this->id), coding);
+                 break;
+               }
+       }
+    }
+  else if (XINT (CODING_ATTR_CATEGORY (CODING_ID_ATTRS (coding->id)))
+          == coding_category_utf_16_auto)
     {
-    case CCL_STAT_SUSPEND_BY_SRC:
-      coding->result = CODING_FINISH_INSUFFICIENT_SRC;
-      break;
-    case CCL_STAT_SUSPEND_BY_DST:
-      coding->result = CODING_FINISH_INSUFFICIENT_DST;
-      break;
-    case CCL_STAT_QUIT:
-    case CCL_STAT_INVALID_CMD:
-      coding->result = CODING_FINISH_INTERRUPT;
-      break;
-    default:
-      coding->result = CODING_FINISH_NORMAL;
-      break;
+      Lisp_Object coding_systems;
+      struct coding_detection_info detect_info;
+
+      coding_systems
+       = AREF (CODING_ID_ATTRS (coding->id), coding_attr_utf_16_bom);
+      detect_info.found = detect_info.rejected = 0;
+      if (CONSP (coding_systems)
+         && detect_coding_utf_16 (coding, &detect_info))
+       {
+         if (detect_info.found & CATEGORY_MASK_UTF_16_LE)
+           setup_coding_system (XCAR (coding_systems), coding);
+         else if (detect_info.found & CATEGORY_MASK_UTF_16_BE)
+           setup_coding_system (XCDR (coding_systems), coding);
+       }
     }
-  return coding->result;
 }
 
-/* Decode EOL format of the text at PTR of BYTES length destructively
-   according to CODING->eol_type.  This is called after the CCL
-   program produced a decoded text at PTR.  If we do CRLF->LF
-   conversion, update CODING->produced and CODING->produced_char.  */
 
 static void
-decode_eol_post_ccl (coding, ptr, bytes)
+decode_eol (coding)
      struct coding_system *coding;
-     unsigned char *ptr;
-     int bytes;
 {
-  Lisp_Object val, saved_coding_symbol;
-  unsigned char *pend = ptr + bytes;
-  int dummy;
-
-  /* Remember the current coding system symbol.  We set it back when
-     an inconsistent EOL is found so that `last-coding-system-used' is
-     set to the coding system that doesn't specify EOL conversion.  */
-  saved_coding_symbol = coding->symbol;
+  Lisp_Object eol_type;
+  unsigned char *p, *pbeg, *pend;
+  
+  eol_type = CODING_ID_EOL_TYPE (coding->id);
+  if (EQ (eol_type, Qunix))
+    return;
 
-  coding->spec.ccl.cr_carryover = 0;
-  if (coding->eol_type == CODING_EOL_UNDECIDED)
-    {
-      /* Here, to avoid the call of setup_coding_system, we directly
-        call detect_eol_type.  */
-      coding->eol_type = detect_eol_type (ptr, bytes, &dummy);
-      if (coding->eol_type == CODING_EOL_INCONSISTENT)
-       coding->eol_type = CODING_EOL_LF;
-      if (coding->eol_type != CODING_EOL_UNDECIDED)
-       {
-         val = Fget (coding->symbol, Qeol_type);
-         if (VECTORP (val) && XVECTOR (val)->size == 3)
-           coding->symbol = XVECTOR (val)->contents[coding->eol_type];
-       }
-      coding->mode |= CODING_MODE_INHIBIT_INCONSISTENT_EOL;
-    }
+  if (NILP (coding->dst_object))
+    pbeg = coding->destination;
+  else
+    pbeg = BYTE_POS_ADDR (coding->dst_pos_byte);
+  pend = pbeg + coding->produced;
 
-  if (coding->eol_type == CODING_EOL_LF
-      || coding->eol_type == CODING_EOL_UNDECIDED)
-    {
-      /* We have nothing to do.  */
-      ptr = pend;
-    }
-  else if (coding->eol_type == CODING_EOL_CRLF)
+  if (VECTORP (eol_type))
     {
-      unsigned char *pstart = ptr, *p = ptr;
+      int eol_seen = EOL_SEEN_NONE;
 
-      if (! (coding->mode & CODING_MODE_LAST_BLOCK)
-         && *(pend - 1) == '\r')
-       {
-         /* If the last character is CR, we can't handle it here
-            because LF will be in the not-yet-decoded source text.
-            Record that the CR is not yet processed.  */
-         coding->spec.ccl.cr_carryover = 1;
-         coding->produced--;
-         coding->produced_char--;
-         pend--;
-       }
-      while (ptr < pend)
+      for (p = pbeg; p < pend; p++)
        {
-         if (*ptr == '\r')
+         if (*p == '\n')
+           eol_seen |= EOL_SEEN_LF;
+         else if (*p == '\r')
            {
-             if (ptr + 1 < pend && *(ptr + 1) == '\n')
-               {
-                 *p++ = '\n';
-                 ptr += 2;
-               }
-             else
+             if (p + 1 < pend && *(p + 1) == '\n')
                {
-                 if (coding->mode & CODING_MODE_INHIBIT_INCONSISTENT_EOL)
-                   goto undo_eol_conversion;
-                 *p++ = *ptr++;
+                 eol_seen |= EOL_SEEN_CRLF;
+                 p++;
                }
-           }
-         else if (*ptr == '\n'
-                  && coding->mode & CODING_MODE_INHIBIT_INCONSISTENT_EOL)
-           goto undo_eol_conversion;
-         else
-           *p++ = *ptr++;
-         continue;
-
-       undo_eol_conversion:
-         /* We have faced with inconsistent EOL format at PTR.
-            Convert all LFs before PTR back to CRLFs.  */
-         for (p--, ptr--; p >= pstart; p--)
-           {
-             if (*p == '\n')
-               *ptr-- = '\n', *ptr-- = '\r';
              else
-               *ptr-- = *p;
-           }
-         /*  If carryover is recorded, cancel it because we don't
-             convert CRLF anymore.  */
-         if (coding->spec.ccl.cr_carryover)
-           {
-             coding->spec.ccl.cr_carryover = 0;
-             coding->produced++;
-             coding->produced_char++;
-             pend++;
+               eol_seen |= EOL_SEEN_CR;
            }
-         p = ptr = pend;
-         coding->eol_type = CODING_EOL_LF;
-         coding->symbol = saved_coding_symbol;
-       }
-      if (p < pend)
-       {
-         /* As each two-byte sequence CRLF was converted to LF, (PEND
-            - P) is the number of deleted characters.  */
-         coding->produced -= pend - p;
-         coding->produced_char -= pend - p;
        }
+      if (eol_seen != EOL_SEEN_NONE
+         && eol_seen != EOL_SEEN_LF
+         && eol_seen != EOL_SEEN_CRLF
+         && eol_seen != EOL_SEEN_CR)
+       eol_seen = EOL_SEEN_LF;
+      if (eol_seen != EOL_SEEN_NONE)
+       eol_type = adjust_coding_eol_type (coding, eol_seen);
+    }
+
+  if (EQ (eol_type, Qmac))
+    {
+      for (p = pbeg; p < pend; p++)
+       if (*p == '\r')
+         *p = '\n';
     }
-  else                 /* i.e. coding->eol_type == CODING_EOL_CR */
+  else if (EQ (eol_type, Qdos))
     {
-      unsigned char *p = ptr;
+      int n = 0;
 
-      for (; ptr < pend; ptr++)
+      if (NILP (coding->dst_object))
+       {
+         /* Start deleting '\r' from the tail to minimize the memory
+            movement.  */
+         for (p = pend - 2; p >= pbeg; p--)
+           if (*p == '\r')
+             {
+               safe_bcopy ((char *) (p + 1), (char *) p, pend-- - p - 1);
+               n++;
+             }
+       }
+      else
        {
-         if (*ptr == '\r')
-           *ptr = '\n';
-         else if (*ptr == '\n'
-                  && coding->mode & CODING_MODE_INHIBIT_INCONSISTENT_EOL)
+         int pos_byte = coding->dst_pos_byte;
+         int pos = coding->dst_pos;
+         int pos_end = pos + coding->produced_char - 1;
+
+         while (pos < pos_end)
            {
-             for (; p < ptr; p++)
+             p = BYTE_POS_ADDR (pos_byte);
+             if (*p == '\r' && p[1] == '\n')
                {
-                 if (*p == '\n')
-                   *p = '\r';
+                 del_range_2 (pos, pos_byte, pos + 1, pos_byte + 1, 0);
+                 n++;
+                 pos_end--;
                }
-             ptr = pend;
-             coding->eol_type = CODING_EOL_LF;
-             coding->symbol = saved_coding_symbol;
+             pos++;
+             pos_byte += BYTES_BY_CHAR_HEAD (*p);
            }
        }
+      coding->produced -= n;
+      coding->produced_char -= n;
     }
 }
 
-/* See "GENERAL NOTES about `decode_coding_XXX ()' functions".  Before
-   decoding, it may detect coding system and format of end-of-line if
-   those are not yet decided.  The source should be unibyte, the
-   result is multibyte if CODING->dst_multibyte is nonzero, else
-   unibyte.  */
-
-int
-decode_coding (coding, source, destination, src_bytes, dst_bytes)
-     struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char *destination;
-     int src_bytes, dst_bytes;
-{
-  int extra = 0;
-
-  if (coding->type == coding_type_undecided)
-    detect_coding (coding, source, src_bytes);
 
-  if (coding->eol_type == CODING_EOL_UNDECIDED
-      && coding->type != coding_type_ccl)
-    {
-      detect_eol (coding, source, src_bytes);
-      /* We had better recover the original eol format if we
-        encounter an inconsistent eol format while decoding.  */
-      coding->mode |= CODING_MODE_INHIBIT_INCONSISTENT_EOL;
-    }
+/* Return a translation table (or list of them) from coding system
+   attribute vector ATTRS for encoding (ENCODEP is nonzero) or
+   decoding (ENCODEP is zero). */
 
-  coding->produced = coding->produced_char = 0;
-  coding->consumed = coding->consumed_char = 0;
-  coding->errors = 0;
-  coding->result = CODING_FINISH_NORMAL;
+static Lisp_Object
+get_translation_table (attrs, encodep, max_lookup)
+     Lisp_Object attrs;
+     int encodep, *max_lookup;
+{
+  Lisp_Object standard, translation_table;
+  Lisp_Object val;
 
-  switch (coding->type)
+  if (encodep)
+    translation_table = CODING_ATTR_ENCODE_TBL (attrs),
+      standard = Vstandard_translation_table_for_encode;
+  else
+    translation_table = CODING_ATTR_DECODE_TBL (attrs),
+      standard = Vstandard_translation_table_for_decode;
+  if (NILP (translation_table))
+    translation_table = standard;
+  else
     {
-    case coding_type_sjis:
-      decode_coding_sjis_big5 (coding, source, destination,
-                              src_bytes, dst_bytes, 1);
-      break;
-
-    case coding_type_iso2022:
-      decode_coding_iso2022 (coding, source, destination,
-                            src_bytes, dst_bytes);
-      break;
-
-    case coding_type_big5:
-      decode_coding_sjis_big5 (coding, source, destination,
-                              src_bytes, dst_bytes, 0);
-      break;
-
-    case coding_type_emacs_mule:
-      decode_coding_emacs_mule (coding, source, destination,
-                               src_bytes, dst_bytes);
-      break;
-
-    case coding_type_ccl:
-      if (coding->spec.ccl.cr_carryover)
+      if (SYMBOLP (translation_table))
+       translation_table = Fget (translation_table, Qtranslation_table);
+      else if (CONSP (translation_table))
        {
-         /* Put the CR which was not processed by the previous call
-            of decode_eol_post_ccl in DESTINATION.  It will be
-            decoded together with the following LF by the call to
-            decode_eol_post_ccl below.  */
-         *destination = '\r';
-         coding->produced++;
-         coding->produced_char++;
-         dst_bytes--;
-         extra = coding->spec.ccl.cr_carryover;
+         translation_table = Fcopy_sequence (translation_table);
+         for (val = translation_table; CONSP (val); val = XCDR (val))
+           if (SYMBOLP (XCAR (val)))
+             XSETCAR (val, Fget (XCAR (val), Qtranslation_table));
        }
-      ccl_coding_driver (coding, source, destination + extra,
-                        src_bytes, dst_bytes, 0);
-      if (coding->eol_type != CODING_EOL_LF)
+      if (CHAR_TABLE_P (standard))
        {
-         coding->produced += extra;
-         coding->produced_char += extra;
-         decode_eol_post_ccl (coding, destination, coding->produced);
+         if (CONSP (translation_table))
+           translation_table = nconc2 (translation_table,
+                                       Fcons (standard, Qnil));
+         else
+           translation_table = Fcons (translation_table,
+                                      Fcons (standard, Qnil));
        }
-      break;
-
-    default:
-      decode_eol (coding, source, destination, src_bytes, dst_bytes);
     }
 
-  if (coding->result == CODING_FINISH_INSUFFICIENT_SRC
-      && coding->mode & CODING_MODE_LAST_BLOCK
-      && coding->consumed == src_bytes)
-    coding->result = CODING_FINISH_NORMAL;
-
-  if (coding->mode & CODING_MODE_LAST_BLOCK
-      && coding->result == CODING_FINISH_INSUFFICIENT_SRC)
+  if (max_lookup)
     {
-      const unsigned char *src = source + coding->consumed;
-      unsigned char *dst = destination + coding->produced;
-
-      src_bytes -= coding->consumed;
-      coding->errors++;
-      if (COMPOSING_P (coding))
-       DECODE_COMPOSITION_END ('1');
-      while (src_bytes--)
+      *max_lookup = 1;
+      if (CHAR_TABLE_P (translation_table)
+         && CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (translation_table)) > 1)
        {
-         int c = *src++;
-         dst += CHAR_STRING (c, dst);
-         coding->produced_char++;
+         val = XCHAR_TABLE (translation_table)->extras[1];
+         if (NATNUMP (val) && *max_lookup < XFASTINT (val))
+           *max_lookup = XFASTINT (val);
        }
-      coding->consumed = coding->consumed_char = src - source;
-      coding->produced = dst - destination;
-      coding->result = CODING_FINISH_NORMAL;
-    }
+      else if (CONSP (translation_table))
+       {
+         Lisp_Object tail, val;
 
-  if (!coding->dst_multibyte)
-    {
-      coding->produced = str_as_unibyte (destination, coding->produced);
-      coding->produced_char = coding->produced;
+         for (tail = translation_table; CONSP (tail); tail = XCDR (tail))
+           if (CHAR_TABLE_P (XCAR (tail))
+               && CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (XCAR (tail))) > 1)
+             {
+               val = XCHAR_TABLE (XCAR (tail))->extras[1];
+               if (NATNUMP (val) && *max_lookup < XFASTINT (val))
+                 *max_lookup = XFASTINT (val);
+             }
+       }
     }
-
-  return coding->result;
+  return translation_table;
 }
 
-/* See "GENERAL NOTES about `encode_coding_XXX ()' functions".  The
-   multibyteness of the source is CODING->src_multibyte, the
-   multibyteness of the result is always unibyte.  */
-
-int
-encode_coding (coding, source, destination, src_bytes, dst_bytes)
-     struct coding_system *coding;
-     const unsigned char *source;
-     unsigned char *destination;
-     int src_bytes, dst_bytes;
-{
-  coding->produced = coding->produced_char = 0;
-  coding->consumed = coding->consumed_char = 0;
-  coding->errors = 0;
-  coding->result = CODING_FINISH_NORMAL;
-  if (coding->eol_type == CODING_EOL_UNDECIDED)
-    coding->eol_type = CODING_EOL_LF;
-
-  switch (coding->type)
-    {
-    case coding_type_sjis:
-      encode_coding_sjis_big5 (coding, source, destination,
-                              src_bytes, dst_bytes, 1);
-      break;
-
-    case coding_type_iso2022:
-      encode_coding_iso2022 (coding, source, destination,
-                            src_bytes, dst_bytes);
-      break;
-
-    case coding_type_big5:
-      encode_coding_sjis_big5 (coding, source, destination,
-                              src_bytes, dst_bytes, 0);
-      break;
-
-    case coding_type_emacs_mule:
-      encode_coding_emacs_mule (coding, source, destination,
-                               src_bytes, dst_bytes);
-      break;
-
-    case coding_type_ccl:
-      ccl_coding_driver (coding, source, destination,
-                        src_bytes, dst_bytes, 1);
-      break;
+#define LOOKUP_TRANSLATION_TABLE(table, c, trans)              \
+  do {                                                         \
+    trans = Qnil;                                              \
+    if (CHAR_TABLE_P (table))                                  \
+      {                                                                \
+       trans = CHAR_TABLE_REF (table, c);                      \
+       if (CHARACTERP (trans))                                 \
+         c = XFASTINT (trans), trans = Qnil;                   \
+      }                                                                \
+    else if (CONSP (table))                                    \
+      {                                                                \
+       Lisp_Object tail;                                       \
+                                                               \
+       for (tail = table; CONSP (tail); tail = XCDR (tail))    \
+         if (CHAR_TABLE_P (XCAR (tail)))                       \
+           {                                                   \
+             trans = CHAR_TABLE_REF (XCAR (tail), c);          \
+             if (CHARACTERP (trans))                           \
+               c = XFASTINT (trans), trans = Qnil;             \
+             else if (! NILP (trans))                          \
+               break;                                          \
+           }                                                   \
+      }                                                                \
+  } while (0)
 
-    default:
-      encode_eol (coding, source, destination, src_bytes, dst_bytes);
-    }
 
-  if (coding->mode & CODING_MODE_LAST_BLOCK
-      && coding->result == CODING_FINISH_INSUFFICIENT_SRC)
+static Lisp_Object
+get_translation (val, buf, buf_end, last_block, from_nchars, to_nchars)
+     Lisp_Object val;
+     int *buf, *buf_end;
+     int last_block;
+     int *from_nchars, *to_nchars;
+{
+  /* VAL is TO or (([FROM-CHAR ...] .  TO) ...) where TO is TO-CHAR or
+     [TO-CHAR ...].  */
+  if (CONSP (val))
     {
-      const unsigned char *src = source + coding->consumed;
-      unsigned char *dst = destination + coding->produced;
+      Lisp_Object from, tail;
+      int i, len;
 
-      if (coding->type == coding_type_iso2022)
-       ENCODE_RESET_PLANE_AND_REGISTER;
-      if (COMPOSING_P (coding))
-       *dst++ = ISO_CODE_ESC, *dst++ = '1';
-      if (coding->consumed < src_bytes)
+      for (tail = val; CONSP (tail); tail = XCDR (tail))
        {
-         int len = src_bytes - coding->consumed;
-
-         BCOPY_SHORT (src, dst, len);
-         if (coding->src_multibyte)
-           len = str_as_unibyte (dst, len);
-         dst += len;
-         coding->consumed = src_bytes;
+         val = XCAR (tail);
+         from = XCAR (val);
+         len = ASIZE (from);
+         for (i = 0; i < len; i++)
+           {
+             if (buf + i == buf_end)
+               {
+                 if (! last_block)
+                   return Qt;
+                 break;
+               }
+             if (XINT (AREF (from, i)) != buf[i])
+               break;
+           }
+         if (i == len)
+           {
+             val = XCDR (val);
+             *from_nchars = len;
+             break;
+           }
        }
-      coding->produced = coding->produced_char = dst - destination;
-      coding->result = CODING_FINISH_NORMAL;
+      if (! CONSP (tail))
+       return Qnil;
     }
-
-  if (coding->result == CODING_FINISH_INSUFFICIENT_SRC
-      && coding->consumed == src_bytes)
-    coding->result = CODING_FINISH_NORMAL;
-
-  return coding->result;
+  if (VECTORP (val))
+    *buf = XINT (AREF (val, 0)), *to_nchars = ASIZE (val);
+  else
+    *buf = XINT (val);
+  return val;
 }
 
-/* Scan text in the region between *BEG and *END (byte positions),
-   skip characters which we don't have to decode by coding system
-   CODING at the head and tail, then set *BEG and *END to the region
-   of the text we actually have to convert.  The caller should move
-   the gap out of the region in advance if the region is from a
-   buffer.
-
-   If STR is not NULL, *BEG and *END are indices into STR.  */
 
-static void
-shrink_decoding_region (beg, end, coding, str)
-     int *beg, *end;
+static int
+produce_chars (coding, translation_table, last_block)
      struct coding_system *coding;
-     unsigned char *str;
+     Lisp_Object translation_table;
+     int last_block;
 {
-  unsigned char *begp_orig, *begp, *endp_orig, *endp, c;
-  int eol_conversion;
-  Lisp_Object translation_table;
+  unsigned char *dst = coding->destination + coding->produced;
+  unsigned char *dst_end = coding->destination + coding->dst_bytes;
+  int produced;
+  int produced_chars = 0;
+  int carryover = 0;
 
-  if (coding->type == coding_type_ccl
-      || coding->type == coding_type_undecided
-      || coding->eol_type != CODING_EOL_LF
-      || !NILP (coding->post_read_conversion)
-      || coding->composing != COMPOSITION_DISABLED)
+  if (! coding->chars_at_source)
     {
-      /* We can't skip any data.  */
-      return;
-    }
-  if (coding->type == coding_type_no_conversion
-      || coding->type == coding_type_raw_text
-      || coding->type == coding_type_emacs_mule)
-    {
-      /* We need no conversion, but don't have to skip any data here.
-         Decoding routine handles them effectively anyway.  */
-      return;
-    }
+      /* Characters are in coding->charbuf.  */
+      int *buf = coding->charbuf;
+      int *buf_end = buf + coding->charbuf_used;
+
+      if (BUFFERP (coding->src_object)
+         && EQ (coding->src_object, coding->dst_object))
+       dst_end = ((unsigned char *) coding->source) + coding->consumed;
+
+      while (buf < buf_end)
+       {
+         int c = *buf, i;
+
+         if (c >= 0)
+           {
+             int from_nchars = 1, to_nchars = 1;
+             Lisp_Object trans = Qnil;
 
-  translation_table = coding->translation_table_for_decode;
-  if (NILP (translation_table) && !NILP (Venable_character_translation))
-    translation_table = Vstandard_translation_table_for_decode;
-  if (CHAR_TABLE_P (translation_table))
-    {
-      int i;
-      for (i = 0; i < 128; i++)
-       if (!NILP (CHAR_TABLE_REF (translation_table, i)))
-         break;
-      if (i < 128)
-       /* Some ASCII character should be translated.  We give up
-          shrinking.  */
-       return;
-    }
+             LOOKUP_TRANSLATION_TABLE (translation_table, c, trans);
+             if (! NILP (trans))
+               {
+                 trans = get_translation (trans, buf, buf_end, last_block,
+                                          &from_nchars, &to_nchars);
+                 if (EQ (trans, Qt))
+                   break;
+                 c = *buf;
+               }
 
-  if (coding->heading_ascii >= 0)
-    /* Detection routine has already found how much we can skip at the
-       head.  */
-    *beg += coding->heading_ascii;
+             if (dst + MAX_MULTIBYTE_LENGTH * to_nchars > dst_end)
+               {
+                 dst = alloc_destination (coding,
+                                          buf_end - buf
+                                          + MAX_MULTIBYTE_LENGTH * to_nchars,
+                                          dst);
+                 dst_end = coding->destination + coding->dst_bytes;
+               }
 
-  if (str)
-    {
-      begp_orig = begp = str + *beg;
-      endp_orig = endp = str + *end;
+             for (i = 0; i < to_nchars; i++)
+               {
+                 if (i > 0)
+                   c = XINT (AREF (trans, i));
+                 if (coding->dst_multibyte
+                     || ! CHAR_BYTE8_P (c))
+                   CHAR_STRING_ADVANCE (c, dst);
+                 else
+                   *dst++ = CHAR_TO_BYTE8 (c);
+               }
+             produced_chars += to_nchars;
+             *buf++ = to_nchars;
+             while (--from_nchars > 0)
+               *buf++ = 0;
+           }
+         else
+           /* This is an annotation datum.  (-C) is the length.  */
+           buf += -c;
+       }
+      carryover = buf_end - buf;
     }
   else
     {
-      begp_orig = begp = BYTE_POS_ADDR (*beg);
-      endp_orig = endp = begp + *end - *beg;
-    }
+      const unsigned char *src = coding->source;
+      const unsigned char *src_end = src + coding->src_bytes;
+      Lisp_Object eol_type;
 
-  eol_conversion = (coding->eol_type == CODING_EOL_CR
-                   || coding->eol_type == CODING_EOL_CRLF);
+      eol_type = CODING_ID_EOL_TYPE (coding->id);
 
-  switch (coding->type)
-    {
-    case coding_type_sjis:
-    case coding_type_big5:
-      /* We can skip all ASCII characters at the head.  */
-      if (coding->heading_ascii < 0)
+      if (coding->src_multibyte != coding->dst_multibyte)
        {
-         if (eol_conversion)
-           while (begp < endp && *begp < 0x80 && *begp != '\r') begp++;
-         else
-           while (begp < endp && *begp < 0x80) begp++;
-       }
-      /* We can skip all ASCII characters at the tail except for the
-        second byte of SJIS or BIG5 code.  */
-      if (eol_conversion)
-       while (begp < endp && endp[-1] < 0x80 && endp[-1] != '\r') endp--;
-      else
-       while (begp < endp && endp[-1] < 0x80) endp--;
-      /* Do not consider LF as ascii if preceded by CR, since that
-        confuses eol decoding. */
-      if (begp < endp && endp < endp_orig && endp[-1] == '\r' && endp[0] == '\n')
-       endp++;
-      if (begp < endp && endp < endp_orig && endp[-1] >= 0x80)
-       endp++;
-      break;
+         if (coding->src_multibyte)
+           {
+             int multibytep = 1;
+             int consumed_chars;
 
-    case coding_type_iso2022:
-      if (CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, 0) != CHARSET_ASCII)
-       /* We can't skip any data.  */
-       break;
-      if (coding->heading_ascii < 0)
-       {
-         /* We can skip all ASCII characters at the head except for a
-            few control codes.  */
-         while (begp < endp && (c = *begp) < 0x80
-                && c != ISO_CODE_CR && c != ISO_CODE_SO
-                && c != ISO_CODE_SI && c != ISO_CODE_ESC
-                && (!eol_conversion || c != ISO_CODE_LF))
-           begp++;
-       }
-      switch (coding->category_idx)
-       {
-       case CODING_CATEGORY_IDX_ISO_8_1:
-       case CODING_CATEGORY_IDX_ISO_8_2:
-         /* We can skip all ASCII characters at the tail.  */
-         if (eol_conversion)
-           while (begp < endp && (c = endp[-1]) < 0x80 && c != '\r') endp--;
+             while (1)
+               {
+                 const unsigned char *src_base = src;
+                 int c;
+
+                 ONE_MORE_BYTE (c);
+                 if (c == '\r')
+                   {
+                     if (EQ (eol_type, Qdos))
+                       {
+                         if (src == src_end)
+                           {
+                             record_conversion_result
+                               (coding, CODING_RESULT_INSUFFICIENT_SRC);
+                             goto no_more_source;
+                           }
+                         if (*src == '\n')
+                           c = *src++;
+                       }
+                     else if (EQ (eol_type, Qmac))
+                       c = '\n';
+                   }
+                 if (dst == dst_end)
+                   {
+                     coding->consumed = src - coding->source;
+
+                   if (EQ (coding->src_object, coding->dst_object))
+                     dst_end = (unsigned char *) src;
+                   if (dst == dst_end)
+                     {
+                       dst = alloc_destination (coding, src_end - src + 1,
+                                                dst);
+                       dst_end = coding->destination + coding->dst_bytes;
+                       coding_set_source (coding);
+                       src = coding->source + coding->consumed;
+                       src_end = coding->source + coding->src_bytes;
+                     }
+                   }
+                 *dst++ = c;
+                 produced_chars++;
+               }
+           no_more_source:
+             ;
+           }
          else
-           while (begp < endp && endp[-1] < 0x80) endp--;
-         /* Do not consider LF as ascii if preceded by CR, since that
-             confuses eol decoding. */
-         if (begp < endp && endp < endp_orig && endp[-1] == '\r' && endp[0] == '\n')
-           endp++;
-         break;
+           while (src < src_end)
+             {
+               int multibytep = 1;
+               int c = *src++;
 
-       case CODING_CATEGORY_IDX_ISO_7:
-       case CODING_CATEGORY_IDX_ISO_7_TIGHT:
-         {
-           /* We can skip all characters at the tail except for 8-bit
-              codes and ESC and the following 2-byte at the tail.  */
-           unsigned char *eight_bit = NULL;
+               if (c == '\r')
+                 {
+                   if (EQ (eol_type, Qdos))
+                     {
+                       if (src < src_end
+                           && *src == '\n')
+                         c = *src++;
+                     }
+                   else if (EQ (eol_type, Qmac))
+                     c = '\n';
+                 }
+               if (dst >= dst_end - 1)
+                 {
+                   coding->consumed = src - coding->source;
+
+                   if (EQ (coding->src_object, coding->dst_object))
+                     dst_end = (unsigned char *) src;
+                   if (dst >= dst_end - 1)
+                     {
+                       dst = alloc_destination (coding, src_end - src + 2,
+                                                dst);
+                       dst_end = coding->destination + coding->dst_bytes;
+                       coding_set_source (coding);
+                       src = coding->source + coding->consumed;
+                       src_end = coding->source + coding->src_bytes;
+                     }
+                 }
+               EMIT_ONE_BYTE (c);
+             }
+       }
+      else
+       {
+         if (!EQ (coding->src_object, coding->dst_object))
+           {
+             int require = coding->src_bytes - coding->dst_bytes;
 
-           if (eol_conversion)
-             while (begp < endp
-                    && (c = endp[-1]) != ISO_CODE_ESC && c != '\r')
+             if (require > 0)
                {
-                 if (!eight_bit && c & 0x80) eight_bit = endp;
-                 endp--;
+                 EMACS_INT offset = src - coding->source;
+
+                 dst = alloc_destination (coding, require, dst);
+                 coding_set_source (coding);
+                 src = coding->source + offset;
+                 src_end = coding->source + coding->src_bytes;
                }
-           else
-             while (begp < endp
-                    && (c = endp[-1]) != ISO_CODE_ESC)
+           }
+         produced_chars = coding->src_chars;
+         while (src < src_end)
+           {
+             int c = *src++;
+
+             if (c == '\r')
                {
-                 if (!eight_bit && c & 0x80) eight_bit = endp;
-                 endp--;
+                 if (EQ (eol_type, Qdos))
+                   {
+                     if (src < src_end
+                         && *src == '\n')
+                       c = *src++;
+                     produced_chars--;
+                   }
+                 else if (EQ (eol_type, Qmac))
+                   c = '\n';
                }
-           /* Do not consider LF as ascii if preceded by CR, since that
-              confuses eol decoding. */
-           if (begp < endp && endp < endp_orig
-               && endp[-1] == '\r' && endp[0] == '\n')
-             endp++;
-           if (begp < endp && endp[-1] == ISO_CODE_ESC)
-             {
-               if (endp + 1 < endp_orig && end[0] == '(' && end[1] == 'B')
-                 /* This is an ASCII designation sequence.  We can
-                    surely skip the tail.  But, if we have
-                    encountered an 8-bit code, skip only the codes
-                    after that.  */
-                 endp = eight_bit ? eight_bit : endp + 2;
-               else
-                 /* Hmmm, we can't skip the tail.  */
-                 endp = endp_orig;
-             }
-           else if (eight_bit)
-             endp = eight_bit;
-         }
+             *dst++ = c;
+           }
        }
-      break;
-
-    default:
-      abort ();
+      coding->consumed = coding->src_bytes;
+      coding->consumed_char = coding->src_chars;
     }
-  *beg += begp - begp_orig;
-  *end += endp - endp_orig;
-  return;
+
+  produced = dst - (coding->destination + coding->produced);
+  if (BUFFERP (coding->dst_object) && produced_chars > 0)
+    insert_from_gap (produced_chars, produced);
+  coding->produced += produced;
+  coding->produced_char += produced_chars;
+  return carryover;
 }
 
-/* Like shrink_decoding_region but for encoding.  */
+/* Compose text in CODING->object according to the annotation data at
+   CHARBUF.  CHARBUF is an array:
+     [ -LENGTH ANNOTATION_MASK FROM TO METHOD COMP_LEN [ COMPONENTS... ] ]
+ */
 
-static void
-shrink_encoding_region (beg, end, coding, str)
-     int *beg, *end;
+static INLINE void
+produce_composition (coding, charbuf, pos)
      struct coding_system *coding;
-     unsigned char *str;
+     int *charbuf;
+     EMACS_INT pos;
 {
-  unsigned char *begp_orig, *begp, *endp_orig, *endp;
-  int eol_conversion;
-  Lisp_Object translation_table;
+  int len;
+  EMACS_INT to;
+  enum composition_method method;
+  Lisp_Object components;
 
-  if (coding->type == coding_type_ccl
-      || coding->eol_type == CODING_EOL_CRLF
-      || coding->eol_type == CODING_EOL_CR
-      || (coding->cmp_data && coding->cmp_data->used > 0))
-    {
-      /* We can't skip any data.  */
-      return;
-    }
-  if (coding->type == coding_type_no_conversion
-      || coding->type == coding_type_raw_text
-      || coding->type == coding_type_emacs_mule
-      || coding->type == coding_type_undecided)
-    {
-      /* We need no conversion, but don't have to skip any data here.
-         Encoding routine handles them effectively anyway.  */
-      return;
-    }
+  len = -charbuf[0];
+  to = pos + charbuf[2];
+  if (to <= pos)
+    return;
+  method = (enum composition_method) (charbuf[3]);
 
-  translation_table = coding->translation_table_for_encode;
-  if (NILP (translation_table) && !NILP (Venable_character_translation))
-    translation_table = Vstandard_translation_table_for_encode;
-  if (CHAR_TABLE_P (translation_table))
+  if (method == COMPOSITION_RELATIVE)
+    components = Qnil;
+  else if (method >= COMPOSITION_WITH_RULE
+          && method <= COMPOSITION_WITH_RULE_ALTCHARS)
     {
+      Lisp_Object args[MAX_COMPOSITION_COMPONENTS * 2 - 1];
       int i;
-      for (i = 0; i < 128; i++)
-       if (!NILP (CHAR_TABLE_REF (translation_table, i)))
-         break;
-      if (i < 128)
-       /* Some ASCII character should be translated.  We give up
-          shrinking.  */
-       return;
-    }
 
-  if (str)
-    {
-      begp_orig = begp = str + *beg;
-      endp_orig = endp = str + *end;
+      len -= 4;
+      charbuf += 4;
+      for (i = 0; i < len; i++)
+       {
+         args[i] = make_number (charbuf[i]);
+         if (charbuf[i] < 0)
+           return;
+       }
+      components = (method == COMPOSITION_WITH_ALTCHARS
+                   ? Fstring (len, args) : Fvector (len, args));
     }
   else
-    {
-      begp_orig = begp = BYTE_POS_ADDR (*beg);
-      endp_orig = endp = begp + *end - *beg;
-    }
-
-  eol_conversion = (coding->eol_type == CODING_EOL_CR
-                   || coding->eol_type == CODING_EOL_CRLF);
+    return;
+  compose_text (pos, to, components, Qnil, coding->dst_object);
+}
 
-  /* Here, we don't have to check coding->pre_write_conversion because
-     the caller is expected to have handled it already.  */
-  switch (coding->type)
-    {
-    case coding_type_iso2022:
-      if (CODING_SPEC_ISO_INITIAL_DESIGNATION (coding, 0) != CHARSET_ASCII)
-       /* We can't skip any data.  */
-       break;
-      if (coding->flags & CODING_FLAG_ISO_DESIGNATE_AT_BOL)
-       {
-         unsigned char *bol = begp;
-         while (begp < endp && *begp < 0x80)
-           {
-             begp++;
-             if (begp[-1] == '\n')
-               bol = begp;
-           }
-         begp = bol;
-         goto label_skip_tail;
-       }
-      /* fall down ... */
 
-    case coding_type_sjis:
-    case coding_type_big5:
-      /* We can skip all ASCII characters at the head and tail.  */
-      if (eol_conversion)
-       while (begp < endp && *begp < 0x80 && *begp != '\n') begp++;
-      else
-       while (begp < endp && *begp < 0x80) begp++;
-    label_skip_tail:
-      if (eol_conversion)
-       while (begp < endp && endp[-1] < 0x80 && endp[-1] != '\n') endp--;
-      else
-       while (begp < endp && *(endp - 1) < 0x80) endp--;
-      break;
+/* Put `charset' property on text in CODING->object according to
+   the annotation data at CHARBUF.  CHARBUF is an array:
+     [ -LENGTH ANNOTATION_MASK NCHARS CHARSET-ID ]
+ */
 
-    default:
-      abort ();
-    }
+static INLINE void
+produce_charset (coding, charbuf, pos)
+     struct coding_system *coding;
+     int *charbuf;
+     EMACS_INT pos;
+{
+  EMACS_INT from = pos - charbuf[2];
+  struct charset *charset = CHARSET_FROM_ID (charbuf[3]);
 
-  *beg += begp - begp_orig;
-  *end += endp - endp_orig;
-  return;
+  Fput_text_property (make_number (from), make_number (pos),
+                     Qcharset, CHARSET_NAME (charset),
+                     coding->dst_object);
 }
 
-/* As shrinking conversion region requires some overhead, we don't try
-   shrinking if the length of conversion region is less than this
-   value.  */
-static int shrink_conversion_region_threshhold = 1024;
 
-#define SHRINK_CONVERSION_REGION(beg, end, coding, str, encodep)       \
+#define CHARBUF_SIZE 0x4000
+
+#define ALLOC_CONVERSION_WORK_AREA(coding)                             \
   do {                                                                 \
-    if (*(end) - *(beg) > shrink_conversion_region_threshhold)         \
+    int size = CHARBUF_SIZE;;                                          \
+                                                                       \
+    coding->charbuf = NULL;                                            \
+    while (size > 1024)                                                        \
       {                                                                        \
-        if (encodep) shrink_encoding_region (beg, end, coding, str);   \
-        else shrink_decoding_region (beg, end, coding, str);           \
+       coding->charbuf = (int *) alloca (sizeof (int) * size);         \
+       if (coding->charbuf)                                            \
+         break;                                                        \
+       size >>= 1;                                                     \
       }                                                                        \
+    if (! coding->charbuf)                                             \
+      {                                                                        \
+       record_conversion_result (coding, CODING_RESULT_INSUFFICIENT_MEM); \
+       return coding->result;                                          \
+      }                                                                        \
+    coding->charbuf_size = size;                                       \
   } while (0)
 
-/* ARG is (CODING BUFFER ...) where CODING is what to be set in
-   Vlast_coding_system_used and the remaining elements are buffers to
-   kill.  */
-static Lisp_Object
-code_convert_region_unwind (arg)
-     Lisp_Object arg;
-{
-  struct gcpro gcpro1;
-  GCPRO1 (arg);
-
-  inhibit_pre_post_conversion = 0;
-  Vlast_coding_system_used = XCAR (arg);
-  for (arg = XCDR (arg); CONSP (arg); arg = XCDR (arg))
-    Fkill_buffer (XCAR (arg));
-
-  UNGCPRO;
-  return Qnil;
-}
-
-/* Store information about all compositions in the range FROM and TO
-   of OBJ in memory blocks pointed by CODING->cmp_data.  OBJ is a
-   buffer or a string, defaults to the current buffer.  */
 
-void
-coding_save_composition (coding, from, to, obj)
+static void
+produce_annotation (coding, pos)
      struct coding_system *coding;
-     int from, to;
-     Lisp_Object obj;
+     EMACS_INT pos;
 {
-  Lisp_Object prop;
-  int start, end;
+  int *charbuf = coding->charbuf;
+  int *charbuf_end = charbuf + coding->charbuf_used;
 
-  if (coding->composing == COMPOSITION_DISABLED)
-    return;
-  if (!coding->cmp_data)
-    coding_allocate_composition_data (coding, from);
-  if (!find_composition (from, to, &start, &end, &prop, obj)
-      || end > to)
+  if (NILP (coding->dst_object))
     return;
-  if (start < from
-      && (!find_composition (end, to, &start, &end, &prop, obj)
-         || end > to))
-    return;
-  coding->composing = COMPOSITION_NO;
-  do
+
+  while (charbuf < charbuf_end)
     {
-      if (COMPOSITION_VALID_P (start, end, prop))
+      if (*charbuf >= 0)
+       pos += *charbuf++;
+      else
        {
-         enum composition_method method = COMPOSITION_METHOD (prop);
-         if (coding->cmp_data->used + COMPOSITION_DATA_MAX_BUNCH_LENGTH
-             >= COMPOSITION_DATA_SIZE)
-           coding_allocate_composition_data (coding, from);
-         /* For relative composition, we remember start and end
-             positions, for the other compositions, we also remember
-             components.  */
-         CODING_ADD_COMPOSITION_START (coding, start - from, method);
-         if (method != COMPOSITION_RELATIVE)
+         int len = -*charbuf;
+         switch (charbuf[1])
            {
-             /* We must store a*/
-             Lisp_Object val, ch;
-
-             val = COMPOSITION_COMPONENTS (prop);
-             if (CONSP (val))
-               while (CONSP (val))
-                 {
-                   ch = XCAR (val), val = XCDR (val);
-                   CODING_ADD_COMPOSITION_COMPONENT (coding, XINT (ch));
-                 }
-             else if (VECTORP (val) || STRINGP (val))
-               {
-                 int len = (VECTORP (val)
-                            ? XVECTOR (val)->size : SCHARS (val));
-                 int i;
-                 for (i = 0; i < len; i++)
-                   {
-                     ch = (STRINGP (val)
-                           ? Faref (val, make_number (i))
-                           : XVECTOR (val)->contents[i]);
-                     CODING_ADD_COMPOSITION_COMPONENT (coding, XINT (ch));
-                   }
-               }
-             else              /* INTEGERP (val) */
-               CODING_ADD_COMPOSITION_COMPONENT (coding, XINT (val));
+           case CODING_ANNOTATE_COMPOSITION_MASK:
+             produce_composition (coding, charbuf, pos);
+             break;
+           case CODING_ANNOTATE_CHARSET_MASK:
+             produce_charset (coding, charbuf, pos);
+             break;
+           default:
+             abort ();
            }
-         CODING_ADD_COMPOSITION_END (coding, end - from);
+         charbuf += len;
        }
-      start = end;
     }
-  while (start < to
-        && find_composition (start, to, &start, &end, &prop, obj)
-        && end <= to);
-
-  /* Make coding->cmp_data point to the first memory block.  */
-  while (coding->cmp_data->prev)
-    coding->cmp_data = coding->cmp_data->prev;
-  coding->cmp_data_start = 0;
 }
 
-/* Reflect the saved information about compositions to OBJ.
-   CODING->cmp_data points to a memory block for the information.  OBJ
-   is a buffer or a string, defaults to the current buffer.  */
+/* Decode the data at CODING->src_object into CODING->dst_object.
+   CODING->src_object is a buffer, a string, or nil.
+   CODING->dst_object is a buffer.
 
-void
-coding_restore_composition (coding, obj)
-     struct coding_system *coding;
-     Lisp_Object obj;
-{
-  struct composition_data *cmp_data = coding->cmp_data;
+   If CODING->src_object is a buffer, it must be the current buffer.
+   In this case, if CODING->src_pos is positive, it is a position of
+   the source text in the buffer, otherwise, the source text is in the
+   gap area of the buffer, and CODING->src_pos specifies the offset of
+   the text from GPT (which must be the same as PT).  If this is the
+   same buffer as CODING->dst_object, CODING->src_pos must be
+   negative.
 
-  if (!cmp_data)
-    return;
+   If CODING->src_object is a string, CODING->src_pos is an index to
+   that string.
 
-  while (cmp_data->prev)
-    cmp_data = cmp_data->prev;
+   If CODING->src_object is nil, CODING->source must already point to
+   the non-relocatable memory area.  In this case, CODING->src_pos is
+   an offset from CODING->source.
 
-  while (cmp_data)
-    {
-      int i;
+   The decoded data is inserted at the current point of the buffer
+   CODING->dst_object.
+*/
 
-      for (i = 0; i < cmp_data->used && cmp_data->data[i] > 0;
-          i += cmp_data->data[i])
-       {
-         int *data = cmp_data->data + i;
-         enum composition_method method = (enum composition_method) data[3];
-         Lisp_Object components;
+static int
+decode_coding (coding)
+     struct coding_system *coding;
+{
+  Lisp_Object attrs;
+  Lisp_Object undo_list;
+  Lisp_Object translation_table;
+  int carryover;
+  int i;
 
-         if (data[0] < 0 || i + data[0] > cmp_data->used)
-           /* Invalid composition data.  */
-           break;
+  if (BUFFERP (coding->src_object)
+      && coding->src_pos > 0
+      && coding->src_pos < GPT
+      && coding->src_pos + coding->src_chars > GPT)
+    move_gap_both (coding->src_pos, coding->src_pos_byte);
 
-         if (method == COMPOSITION_RELATIVE)
-           components = Qnil;
-         else
-           {
-             int len = data[0] - 4, j;
-             Lisp_Object args[MAX_COMPOSITION_COMPONENTS * 2 - 1];
-
-             if (method == COMPOSITION_WITH_RULE_ALTCHARS
-                 && len % 2 == 0)
-               len --;
-             if (len < 1)
-               /* Invalid composition data.  */
-               break;
-             for (j = 0; j < len; j++)
-               args[j] = make_number (data[4 + j]);
-             components = (method == COMPOSITION_WITH_ALTCHARS
-                           ? Fstring (len, args)
-                           : Fvector (len, args));
-           }
-         compose_text (data[1], data[2], components, Qnil, obj);
-       }
-      cmp_data = cmp_data->next;
+  undo_list = Qt;
+  if (BUFFERP (coding->dst_object))
+    {
+      if (current_buffer != XBUFFER (coding->dst_object))
+       set_buffer_internal (XBUFFER (coding->dst_object));
+      if (GPT != PT)
+       move_gap_both (PT, PT_BYTE);
+      undo_list = current_buffer->undo_list;
+      current_buffer->undo_list = Qt;
     }
-}
 
-/* Decode (if ENCODEP is zero) or encode (if ENCODEP is nonzero) the
-   text from FROM to TO (byte positions are FROM_BYTE and TO_BYTE) by
-   coding system CODING, and return the status code of code conversion
-   (currently, this value has no meaning).
-
-   How many characters (and bytes) are converted to how many
-   characters (and bytes) are recorded in members of the structure
-   CODING.
-
-   If REPLACE is nonzero, we do various things as if the original text
-   is deleted and a new text is inserted.  See the comments in
-   replace_range (insdel.c) to know what we are doing.
-
-   If REPLACE is zero, it is assumed that the source text is unibyte.
-   Otherwise, it is assumed that the source text is multibyte.  */
+  coding->consumed = coding->consumed_char = 0;
+  coding->produced = coding->produced_char = 0;
+  coding->chars_at_source = 0;
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding->errors = 0;
 
-int
-code_convert_region (from, from_byte, to, to_byte, coding, encodep, replace)
-     int from, from_byte, to, to_byte, encodep, replace;
-     struct coding_system *coding;
-{
-  int len = to - from, len_byte = to_byte - from_byte;
-  int nchars_del = 0, nbytes_del = 0;
-  int require, inserted, inserted_byte;
-  int head_skip, tail_skip, total_skip = 0;
-  Lisp_Object saved_coding_symbol;
-  int first = 1;
-  unsigned char *src, *dst;
-  Lisp_Object deletion;
-  int orig_point = PT, orig_len = len;
-  int prev_Z;
-  int multibyte_p = !NILP (current_buffer->enable_multibyte_characters);
+  ALLOC_CONVERSION_WORK_AREA (coding);
 
-  deletion = Qnil;
-  saved_coding_symbol = coding->symbol;
+  attrs = CODING_ID_ATTRS (coding->id);
+  translation_table = get_translation_table (attrs, 0, NULL);
 
-  if (from < PT && PT < to)
+  carryover = 0;
+  do
     {
-      TEMP_SET_PT_BOTH (from, from_byte);
-      orig_point = from;
+      EMACS_INT pos = coding->dst_pos + coding->produced_char;
+
+      coding_set_source (coding);
+      coding->annotated = 0;
+      coding->charbuf_used = carryover;
+      (*(coding->decoder)) (coding);
+      coding_set_destination (coding);
+      carryover = produce_chars (coding, translation_table, 0);
+      if (coding->annotated)
+       produce_annotation (coding, pos);
+      for (i = 0; i < carryover; i++)
+       coding->charbuf[i]
+         = coding->charbuf[coding->charbuf_used - carryover + i];
     }
+  while (coding->consumed < coding->src_bytes
+        && (coding->result == CODING_RESULT_SUCCESS
+            || coding->result == CODING_RESULT_INVALID_SRC));
 
-  if (replace)
+  if (carryover > 0)
     {
-      int saved_from = from;
-      int saved_inhibit_modification_hooks;
-
-      prepare_to_modify_buffer (from, to, &from);
-      if (saved_from != from)
-       {
-         to = from + len;
-         from_byte = CHAR_TO_BYTE (from), to_byte = CHAR_TO_BYTE (to);
-         len_byte = to_byte - from_byte;
-       }
-
-      /* The code conversion routine can not preserve text properties
-        for now.  So, we must remove all text properties in the
-        region.  Here, we must suppress all modification hooks.  */
-      saved_inhibit_modification_hooks = inhibit_modification_hooks;
-      inhibit_modification_hooks = 1;
-      Fset_text_properties (make_number (from), make_number (to), Qnil, Qnil);
-      inhibit_modification_hooks = saved_inhibit_modification_hooks;
+      coding_set_destination (coding);
+      coding->charbuf_used = carryover;
+      produce_chars (coding, translation_table, 1);
     }
 
-  coding->heading_ascii = 0;
-
-  if (! encodep && CODING_REQUIRE_DETECTION (coding))
+  coding->carryover_bytes = 0;
+  if (coding->consumed < coding->src_bytes)
     {
-      /* We must detect encoding of text and eol format.  */
+      int nbytes = coding->src_bytes - coding->consumed;
+      const unsigned char *src;
 
-      if (from < GPT && to > GPT)
-       move_gap_both (from, from_byte);
-      if (coding->type == coding_type_undecided)
+      coding_set_source (coding);
+      coding_set_destination (coding);
+      src = coding->source + coding->consumed;
+
+      if (coding->mode & CODING_MODE_LAST_BLOCK)
        {
-         detect_coding (coding, BYTE_POS_ADDR (from_byte), len_byte);
-         if (coding->type == coding_type_undecided)
+         /* Flush out unprocessed data as binary chars.  We are sure
+            that the number of data is less than the size of
+            coding->charbuf.  */
+         coding->charbuf_used = 0;
+         while (nbytes-- > 0)
            {
-             /* It seems that the text contains only ASCII, but we
-                should not leave it undecided because the deeper
-                decoding routine (decode_coding) tries to detect the
-                encodings again in vain.  */
-             coding->type = coding_type_emacs_mule;
-             coding->category_idx = CODING_CATEGORY_IDX_EMACS_MULE;
-             /* As emacs-mule decoder will handle composition, we
-                need this setting to allocate coding->cmp_data
-                later.  */
-             coding->composing = COMPOSITION_NO;
+             int c = *src++;
+
+             if (c & 0x80)
+               c = BYTE8_TO_CHAR (c);
+             coding->charbuf[coding->charbuf_used++] = c;
            }
+         produce_chars (coding, Qnil, 1);
        }
-      if (coding->eol_type == CODING_EOL_UNDECIDED
-         && coding->type != coding_type_ccl)
+      else
        {
-         detect_eol (coding, BYTE_POS_ADDR (from_byte), len_byte);
-         if (coding->eol_type == CODING_EOL_UNDECIDED)
-           coding->eol_type = CODING_EOL_LF;
-         /* We had better recover the original eol format if we
-            encounter an inconsistent eol format while decoding.  */
-         coding->mode |= CODING_MODE_INHIBIT_INCONSISTENT_EOL;
+         /* Record unprocessed bytes in coding->carryover.  We are
+            sure that the number of data is less than the size of
+            coding->carryover.  */
+         unsigned char *p = coding->carryover;
+
+         coding->carryover_bytes = nbytes;
+         while (nbytes-- > 0)
+           *p++ = *src++;
        }
+      coding->consumed = coding->src_bytes;
     }
 
-  /* Now we convert the text.  */
-
-  /* For encoding, we must process pre-write-conversion in advance.  */
-  if (! inhibit_pre_post_conversion
-      && encodep
-      && SYMBOLP (coding->pre_write_conversion)
-      && ! NILP (Ffboundp (coding->pre_write_conversion)))
+  if (! EQ (CODING_ID_EOL_TYPE (coding->id), Qunix))
+    decode_eol (coding);
+  if (BUFFERP (coding->dst_object))
     {
-      /* The function in pre-write-conversion may put a new text in a
-         new buffer.  */
-      struct buffer *prev = current_buffer;
-      Lisp_Object new;
+      current_buffer->undo_list = undo_list;
+      record_insert (coding->dst_pos, coding->produced_char);
+    }
+  return coding->result;
+}
 
-      record_unwind_protect (code_convert_region_unwind,
-                            Fcons (Vlast_coding_system_used, Qnil));
-      /* We should not call any more pre-write/post-read-conversion
-         functions while this pre-write-conversion is running.  */
-      inhibit_pre_post_conversion = 1;
-      call2 (coding->pre_write_conversion,
-            make_number (from), make_number (to));
-      inhibit_pre_post_conversion = 0;
-      /* Discard the unwind protect.  */
-      specpdl_ptr--;
 
-      if (current_buffer != prev)
-       {
-         len = ZV - BEGV;
-         new = Fcurrent_buffer ();
-         set_buffer_internal_1 (prev);
-         del_range_2 (from, from_byte, to, to_byte, 0);
-         TEMP_SET_PT_BOTH (from, from_byte);
-         insert_from_buffer (XBUFFER (new), 1, len, 0);
-         Fkill_buffer (new);
-         if (orig_point >= to)
-           orig_point += len - orig_len;
-         else if (orig_point > from)
-           orig_point = from;
-         orig_len = len;
-         to = from + len;
-         from_byte = CHAR_TO_BYTE (from);
-         to_byte = CHAR_TO_BYTE (to);
-         len_byte = to_byte - from_byte;
-         TEMP_SET_PT_BOTH (from, from_byte);
-       }
-    }
+/* Extract an annotation datum from a composition starting at POS and
+   ending before LIMIT of CODING->src_object (buffer or string), store
+   the data in BUF, set *STOP to a starting position of the next
+   composition (if any) or to LIMIT, and return the address of the
+   next element of BUF.
+
+   If such an annotation is not found, set *STOP to a starting
+   position of a composition after POS (if any) or to LIMIT, and
+   return BUF.  */
+
+static INLINE int *
+handle_composition_annotation (pos, limit, coding, buf, stop)
+     EMACS_INT pos, limit;
+     struct coding_system *coding;
+     int *buf;
+     EMACS_INT *stop;
+{
+  EMACS_INT start, end;
+  Lisp_Object prop;
 
-  if (replace)
+  if (! find_composition (pos, limit, &start, &end, &prop, coding->src_object)
+      || end > limit)
+    *stop = limit;
+  else if (start > pos)
+    *stop = start;
+  else
     {
-      if (! EQ (current_buffer->undo_list, Qt))
-       deletion = make_buffer_string_both (from, from_byte, to, to_byte, 1);
-      else
+      if (start == pos)
        {
-         nchars_del = to - from;
-         nbytes_del = to_byte - from_byte;
+         /* We found a composition.  Store the corresponding
+            annotation data in BUF.  */
+         int *head = buf;
+         enum composition_method method = COMPOSITION_METHOD (prop);
+         int nchars = COMPOSITION_LENGTH (prop);
+
+         ADD_COMPOSITION_DATA (buf, nchars, method);
+         if (method != COMPOSITION_RELATIVE)
+           {
+             Lisp_Object components;
+             int len, i, i_byte;
+
+             components = COMPOSITION_COMPONENTS (prop);
+             if (VECTORP (components))
+               {
+                 len = XVECTOR (components)->size;
+                 for (i = 0; i < len; i++)
+                   *buf++ = XINT (AREF (components, i));
+               }
+             else if (STRINGP (components))
+               {
+                 len = SCHARS (components);
+                 i = i_byte = 0;
+                 while (i < len)
+                   {
+                     FETCH_STRING_CHAR_ADVANCE (*buf, components, i, i_byte);
+                     buf++;
+                   }
+               }
+             else if (INTEGERP (components))
+               {
+                 len = 1;
+                 *buf++ = XINT (components);
+               }
+             else if (CONSP (components))
+               {
+                 for (len = 0; CONSP (components);
+                      len++, components = XCDR (components))
+                   *buf++ = XINT (XCAR (components));
+               }
+             else
+               abort ();
+             *head -= len;
+           }
        }
-    }
 
-  if (coding->composing != COMPOSITION_DISABLED)
-    {
-      if (encodep)
-       coding_save_composition (coding, from, to, Fcurrent_buffer ());
+      if (find_composition (end, limit, &start, &end, &prop,
+                           coding->src_object)
+         && end <= limit)
+       *stop = start;
       else
-       coding_allocate_composition_data (coding, from);
+       *stop = limit;
     }
+  return buf;
+}
 
-  /* Try to skip the heading and tailing ASCIIs.  We can't skip them
-     if we must run CCL program or there are compositions to
-     encode.  */
-  if (coding->type != coding_type_ccl
-      && (! coding->cmp_data || coding->cmp_data->used == 0))
-    {
-      int from_byte_orig = from_byte, to_byte_orig = to_byte;
 
-      if (from < GPT && GPT < to)
-       move_gap_both (from, from_byte);
-      SHRINK_CONVERSION_REGION (&from_byte, &to_byte, coding, NULL, encodep);
-      if (from_byte == to_byte
-         && (encodep || NILP (coding->post_read_conversion))
-         && ! CODING_REQUIRE_FLUSHING (coding))
-       {
-         coding->produced = len_byte;
-         coding->produced_char = len;
-         if (!replace)
-           /* We must record and adjust for this new text now.  */
-           adjust_after_insert (from, from_byte_orig, to, to_byte_orig, len);
-         coding_free_composition_data (coding);
-         return 0;
-       }
-
-      head_skip = from_byte - from_byte_orig;
-      tail_skip = to_byte_orig - to_byte;
-      total_skip = head_skip + tail_skip;
-      from += head_skip;
-      to -= tail_skip;
-      len -= total_skip; len_byte -= total_skip;
-    }
-
-  /* For conversion, we must put the gap before the text in addition to
-     making the gap larger for efficient decoding.  The required gap
-     size starts from 2000 which is the magic number used in make_gap.
-     But, after one batch of conversion, it will be incremented if we
-     find that it is not enough .  */
-  require = 2000;
-
-  if (GAP_SIZE  < require)
-    make_gap (require - GAP_SIZE);
-  move_gap_both (from, from_byte);
-
-  inserted = inserted_byte = 0;
-
-  GAP_SIZE += len_byte;
-  ZV -= len;
-  Z -= len;
-  ZV_BYTE -= len_byte;
-  Z_BYTE -= len_byte;
-
-  if (GPT - BEG < BEG_UNCHANGED)
-    BEG_UNCHANGED = GPT - BEG;
-  if (Z - GPT < END_UNCHANGED)
-    END_UNCHANGED = Z - GPT;
-
-  if (!encodep && coding->src_multibyte)
-    {
-      /* Decoding routines expects that the source text is unibyte.
-        We must convert 8-bit characters of multibyte form to
-        unibyte.  */
-      int len_byte_orig = len_byte;
-      len_byte = str_as_unibyte (GAP_END_ADDR - len_byte, len_byte);
-      if (len_byte < len_byte_orig)
-       safe_bcopy (GAP_END_ADDR - len_byte_orig, GAP_END_ADDR - len_byte,
-                   len_byte);
-      coding->src_multibyte = 0;
-    }
-
-  for (;;)
-    {
-      int result;
-
-      /* The buffer memory is now:
-        +--------+converted-text+---------+-------original-text-------+---+
-        |<-from->|<--inserted-->|---------|<--------len_byte--------->|---|
-                 |<---------------------- GAP ----------------------->|  */
-      src = GAP_END_ADDR - len_byte;
-      dst = GPT_ADDR + inserted_byte;
-
-      if (encodep)
-       result = encode_coding (coding, src, dst, len_byte, 0);
-      else
-       {
-         if (coding->composing != COMPOSITION_DISABLED)
-           coding->cmp_data->char_offset = from + inserted;
-         result = decode_coding (coding, src, dst, len_byte, 0);
-       }
+/* Extract an annotation datum from a text property `charset' at POS of
+   CODING->src_object (buffer of string), store the data in BUF, set
+   *STOP to the position where the value of `charset' property changes
+   (limiting by LIMIT), and return the address of the next element of
+   BUF.
 
-      /* The buffer memory is now:
-        +--------+-------converted-text----+--+------original-text----+---+
-        |<-from->|<-inserted->|<-produced->|--|<-(len_byte-consumed)->|---|
-                 |<---------------------- GAP ----------------------->|  */
+   If the property value is nil, set *STOP to the position where the
+   property value is non-nil (limiting by LIMIT), and return BUF.  */
+
+static INLINE int *
+handle_charset_annotation (pos, limit, coding, buf, stop)
+     EMACS_INT pos, limit;
+     struct coding_system *coding;
+     int *buf;
+     EMACS_INT *stop;
+{
+  Lisp_Object val, next;
+  int id;
 
-      inserted += coding->produced_char;
-      inserted_byte += coding->produced;
-      len_byte -= coding->consumed;
+  val = Fget_text_property (make_number (pos), Qcharset, coding->src_object);
+  if (! NILP (val) && CHARSETP (val))
+    id = XINT (CHARSET_SYMBOL_ID (val));
+  else
+    id = -1;
+  ADD_CHARSET_DATA (buf, 0, id);
+  next = Fnext_single_property_change (make_number (pos), Qcharset,
+                                      coding->src_object,
+                                      make_number (limit));
+  *stop = XINT (next);
+  return buf;
+}
 
-      if (result == CODING_FINISH_INSUFFICIENT_CMP)
-       {
-         coding_allocate_composition_data (coding, from + inserted);
-         continue;
-       }
 
-      src += coding->consumed;
-      dst += coding->produced;
+static void
+consume_chars (coding, translation_table, max_lookup)
+     struct coding_system *coding;
+     Lisp_Object translation_table;
+     int max_lookup;
+{
+  int *buf = coding->charbuf;
+  int *buf_end = coding->charbuf + coding->charbuf_size;
+  const unsigned char *src = coding->source + coding->consumed;
+  const unsigned char *src_end = coding->source + coding->src_bytes;
+  EMACS_INT pos = coding->src_pos + coding->consumed_char;
+  EMACS_INT end_pos = coding->src_pos + coding->src_chars;
+  int multibytep = coding->src_multibyte;
+  Lisp_Object eol_type;
+  int c;
+  EMACS_INT stop, stop_composition, stop_charset;
+  int *lookup_buf = NULL;
 
-      if (result == CODING_FINISH_NORMAL)
-       {
-         src += len_byte;
-         break;
-       }
-      if (! encodep && result == CODING_FINISH_INCONSISTENT_EOL)
-       {
-         unsigned char *pend = dst, *p = pend - inserted_byte;
-         Lisp_Object eol_type;
+  if (! NILP (translation_table))
+    lookup_buf = alloca (sizeof (int) * max_lookup);
 
-         /* Encode LFs back to the original eol format (CR or CRLF).  */
-         if (coding->eol_type == CODING_EOL_CR)
-           {
-             while (p < pend) if (*p++ == '\n') p[-1] = '\r';
-           }
-         else
-           {
-             int count = 0;
+  eol_type = CODING_ID_EOL_TYPE (coding->id);
+  if (VECTORP (eol_type))
+    eol_type = Qunix;
 
-             while (p < pend) if (*p++ == '\n') count++;
-             if (src - dst < count)
-               {
-                 /* We don't have sufficient room for encoding LFs
-                    back to CRLF.  We must record converted and
-                    not-yet-converted text back to the buffer
-                    content, enlarge the gap, then record them out of
-                    the buffer contents again.  */
-                 int add = len_byte + inserted_byte;
-
-                 GAP_SIZE -= add;
-                 ZV += add; Z += add; ZV_BYTE += add; Z_BYTE += add;
-                 GPT += inserted_byte; GPT_BYTE += inserted_byte;
-                 make_gap (count - GAP_SIZE);
-                 GAP_SIZE += add;
-                 ZV -= add; Z -= add; ZV_BYTE -= add; Z_BYTE -= add;
-                 GPT -= inserted_byte; GPT_BYTE -= inserted_byte;
-                 /* Don't forget to update SRC, DST, and PEND.  */
-                 src = GAP_END_ADDR - len_byte;
-                 dst = GPT_ADDR + inserted_byte;
-                 pend = dst;
-               }
-             inserted += count;
-             inserted_byte += count;
-             coding->produced += count;
-             p = dst = pend + count;
-             while (count)
-               {
-                 *--p = *--pend;
-                 if (*p == '\n') count--, *--p = '\r';
-               }
-           }
+  /* Note: composition handling is not yet implemented.  */
+  coding->common_flags &= ~CODING_ANNOTATE_COMPOSITION_MASK;
 
-         /* Suppress eol-format conversion in the further conversion.  */
-         coding->eol_type = CODING_EOL_LF;
+  if (NILP (coding->src_object))
+    stop = stop_composition = stop_charset = end_pos;
+  else
+    {
+      if (coding->common_flags & CODING_ANNOTATE_COMPOSITION_MASK)
+       stop = stop_composition = pos;
+      else
+       stop = stop_composition = end_pos;
+      if (coding->common_flags & CODING_ANNOTATE_CHARSET_MASK)
+       stop = stop_charset = pos;
+      else
+       stop_charset = end_pos;
+    }
 
-         /* Set the coding system symbol to that for Unix-like EOL.  */
-         eol_type = Fget (saved_coding_symbol, Qeol_type);
-         if (VECTORP (eol_type)
-             && XVECTOR (eol_type)->size == 3
-             && SYMBOLP (XVECTOR (eol_type)->contents[CODING_EOL_LF]))
-           coding->symbol = XVECTOR (eol_type)->contents[CODING_EOL_LF];
-         else
-           coding->symbol = saved_coding_symbol;
+  /* Compensate for CRLF and conversion.  */
+  buf_end -= 1 + MAX_ANNOTATION_LENGTH;
+  while (buf < buf_end)
+    {
+      Lisp_Object trans;
 
-         continue;
-       }
-      if (len_byte <= 0)
+      if (pos == stop)
        {
-         if (coding->type != coding_type_ccl
-             || coding->mode & CODING_MODE_LAST_BLOCK)
+         if (pos == end_pos)
            break;
-         coding->mode |= CODING_MODE_LAST_BLOCK;
-         continue;
+         if (pos == stop_composition)
+           buf = handle_composition_annotation (pos, end_pos, coding,
+                                                buf, &stop_composition);
+         if (pos == stop_charset)
+           buf = handle_charset_annotation (pos, end_pos, coding,
+                                            buf, &stop_charset);
+         stop = (stop_composition < stop_charset
+                 ? stop_composition : stop_charset);
        }
-      if (result == CODING_FINISH_INSUFFICIENT_SRC)
-       {
-         /* The source text ends in invalid codes.  Let's just
-            make them valid buffer contents, and finish conversion.  */
-         if (multibyte_p)
-           {
-             unsigned char *start = dst;
 
-             inserted += len_byte;
-             while (len_byte--)
-               {
-                 int c = *src++;
-                 dst += CHAR_STRING (c, dst);
-               }
+      if (! multibytep)
+       {
+         EMACS_INT bytes;
 
-             inserted_byte += dst - start;
-           }
+         if (coding->encoder == encode_coding_raw_text)
+           c = *src++, pos++;
+         else if ((bytes = MULTIBYTE_LENGTH (src, src_end)) > 0)
+           c = STRING_CHAR_ADVANCE (src), pos += bytes;
          else
-           {
-             inserted += len_byte;
-             inserted_byte += len_byte;
-             while (len_byte--)
-               *dst++ = *src++;
-           }
-         break;
-       }
-      if (result == CODING_FINISH_INTERRUPT)
-       {
-         /* The conversion procedure was interrupted by a user.  */
-         break;
-       }
-      /* Now RESULT == CODING_FINISH_INSUFFICIENT_DST  */
-      if (coding->consumed < 1)
-       {
-         /* It's quite strange to require more memory without
-            consuming any bytes.  Perhaps CCL program bug.  */
-         break;
+           c = BYTE8_TO_CHAR (*src), src++, pos++;
        }
-      if (first)
+      else
+       c = STRING_CHAR_ADVANCE (src), pos++;
+      if ((c == '\r') && (coding->mode & CODING_MODE_SELECTIVE_DISPLAY))
+       c = '\n';
+      if (! EQ (eol_type, Qunix))
        {
-         /* We have just done the first batch of conversion which was
-            stopped because of insufficient gap.  Let's reconsider the
-            required gap size (i.e. SRT - DST) now.
-
-            We have converted ORIG bytes (== coding->consumed) into
-            NEW bytes (coding->produced).  To convert the remaining
-            LEN bytes, we may need REQUIRE bytes of gap, where:
-               REQUIRE + LEN_BYTE = LEN_BYTE * (NEW / ORIG)
-               REQUIRE = LEN_BYTE * (NEW - ORIG) / ORIG
-            Here, we are sure that NEW >= ORIG.  */
-
-         if (coding->produced <= coding->consumed)
-           {
-             /* This happens because of CCL-based coding system with
-                eol-type CRLF.  */
-             require = 0;
-           }
-         else
+         if (c == '\n')
            {
-             float ratio = coding->produced - coding->consumed;
-             ratio /= coding->consumed;
-             require = len_byte * ratio;
+             if (EQ (eol_type, Qdos))
+               *buf++ = '\r';
+             else
+               c = '\r';
            }
-         first = 0;
-       }
-      if ((src - dst) < (require + 2000))
-       {
-         /* See the comment above the previous call of make_gap.  */
-         int add = len_byte + inserted_byte;
-
-         GAP_SIZE -= add;
-         ZV += add; Z += add; ZV_BYTE += add; Z_BYTE += add;
-         GPT += inserted_byte; GPT_BYTE += inserted_byte;
-         make_gap (require + 2000);
-         GAP_SIZE += add;
-         ZV -= add; Z -= add; ZV_BYTE -= add; Z_BYTE -= add;
-         GPT -= inserted_byte; GPT_BYTE -= inserted_byte;
        }
-    }
-  if (src - dst > 0) *dst = 0; /* Put an anchor.  */
 
-  if (encodep && coding->dst_multibyte)
-    {
-      /* The output is unibyte.  We must convert 8-bit characters to
-        multibyte form.  */
-      if (inserted_byte * 2 > GAP_SIZE)
+      trans = Qnil;
+      LOOKUP_TRANSLATION_TABLE (translation_table, c, trans);
+      if (NILP (trans))
+       *buf++ = c;
+      else
        {
-         GAP_SIZE -= inserted_byte;
-         ZV += inserted_byte; Z += inserted_byte;
-         ZV_BYTE += inserted_byte; Z_BYTE += inserted_byte;
-         GPT += inserted_byte; GPT_BYTE += inserted_byte;
-         make_gap (inserted_byte - GAP_SIZE);
-         GAP_SIZE += inserted_byte;
-         ZV -= inserted_byte; Z -= inserted_byte;
-         ZV_BYTE -= inserted_byte; Z_BYTE -= inserted_byte;
-         GPT -= inserted_byte; GPT_BYTE -= inserted_byte;
+         int from_nchars = 1, to_nchars = 1;
+         int *lookup_buf_end;
+         const unsigned char *p = src;
+         int i;
+
+         lookup_buf[0] = c;
+         for (i = 1; i < max_lookup && p < src_end; i++)
+           lookup_buf[i] = STRING_CHAR_ADVANCE (p);
+         lookup_buf_end = lookup_buf + i;
+         trans = get_translation (trans, lookup_buf, lookup_buf_end, 1,
+                                  &from_nchars, &to_nchars);
+         if (EQ (trans, Qt)
+             || buf + to_nchars > buf_end)
+           break;
+         *buf++ = *lookup_buf;
+         for (i = 1; i < to_nchars; i++)
+           *buf++ = XINT (AREF (trans, i));
+         for (i = 1; i < from_nchars; i++, pos++)
+           src += MULTIBYTE_LENGTH_NO_CHECK (src);
        }
-      inserted_byte = str_to_multibyte (GPT_ADDR, GAP_SIZE, inserted_byte);
     }
 
-  /* If we shrank the conversion area, adjust it now.  */
-  if (total_skip > 0)
-    {
-      if (tail_skip > 0)
-       safe_bcopy (GAP_END_ADDR, GPT_ADDR + inserted_byte, tail_skip);
-      inserted += total_skip; inserted_byte += total_skip;
-      GAP_SIZE += total_skip;
-      GPT -= head_skip; GPT_BYTE -= head_skip;
-      ZV -= total_skip; ZV_BYTE -= total_skip;
-      Z -= total_skip; Z_BYTE -= total_skip;
-      from -= head_skip; from_byte -= head_skip;
-      to += tail_skip; to_byte += tail_skip;
-    }
+  coding->consumed = src - coding->source;
+  coding->consumed_char = pos - coding->src_pos;
+  coding->charbuf_used = buf - coding->charbuf;
+  coding->chars_at_source = 0;
+}
 
-  prev_Z = Z;
-  if (! EQ (current_buffer->undo_list, Qt))
-    adjust_after_replace (from, from_byte, deletion, inserted, inserted_byte);
-  else
-    adjust_after_replace_noundo (from, from_byte, nchars_del, nbytes_del,
-                                inserted, inserted_byte);
-  inserted = Z - prev_Z;
 
-  if (!encodep && coding->cmp_data && coding->cmp_data->used)
-    coding_restore_composition (coding, Fcurrent_buffer ());
-  coding_free_composition_data (coding);
+/* Encode the text at CODING->src_object into CODING->dst_object.
+   CODING->src_object is a buffer or a string.
+   CODING->dst_object is a buffer or nil.
 
-  if (! inhibit_pre_post_conversion
-      && ! encodep && ! NILP (coding->post_read_conversion))
-    {
-      Lisp_Object val;
-      Lisp_Object saved_coding_system;
+   If CODING->src_object is a buffer, it must be the current buffer.
+   In this case, if CODING->src_pos is positive, it is a position of
+   the source text in the buffer, otherwise. the source text is in the
+   gap area of the buffer, and coding->src_pos specifies the offset of
+   the text from GPT (which must be the same as PT).  If this is the
+   same buffer as CODING->dst_object, CODING->src_pos must be
+   negative and CODING should not have `pre-write-conversion'.
 
-      if (from != PT)
-       TEMP_SET_PT_BOTH (from, from_byte);
-      prev_Z = Z;
-      record_unwind_protect (code_convert_region_unwind,
-                            Fcons (Vlast_coding_system_used, Qnil));
-      saved_coding_system = Vlast_coding_system_used;
-      Vlast_coding_system_used = coding->symbol;
-      /* We should not call any more pre-write/post-read-conversion
-         functions while this post-read-conversion is running.  */
-      inhibit_pre_post_conversion = 1;
-      val = call1 (coding->post_read_conversion, make_number (inserted));
-      inhibit_pre_post_conversion = 0;
-      coding->symbol = Vlast_coding_system_used;
-      Vlast_coding_system_used = saved_coding_system;
-      /* Discard the unwind protect.  */
-      specpdl_ptr--;
-      CHECK_NUMBER (val);
-      inserted += Z - prev_Z;
-    }
-
-  if (orig_point >= from)
-    {
-      if (orig_point >= from + orig_len)
-       orig_point += inserted - orig_len;
-      else
-       orig_point = from;
-      TEMP_SET_PT (orig_point);
-    }
+   If CODING->src_object is a string, CODING should not have
+   `pre-write-conversion'.
+
+   If CODING->dst_object is a buffer, the encoded data is inserted at
+   the current point of that buffer.
+
+   If CODING->dst_object is nil, the encoded data is placed at the
+   memory area specified by CODING->destination.  */
+
+static int
+encode_coding (coding)
+     struct coding_system *coding;
+{
+  Lisp_Object attrs;
+  Lisp_Object translation_table;
+  int max_lookup;
+
+  attrs = CODING_ID_ATTRS (coding->id);
+  if (coding->encoder == encode_coding_raw_text)
+    translation_table = Qnil, max_lookup = 0;
+  else
+    translation_table = get_translation_table (attrs, 1, &max_lookup);
 
-  if (replace)
+  if (BUFFERP (coding->dst_object))
     {
-      signal_after_change (from, to - from, inserted);
-      update_compositions (from, from + inserted, CHECK_BORDER);
+      set_buffer_internal (XBUFFER (coding->dst_object));
+      coding->dst_multibyte
+       = ! NILP (current_buffer->enable_multibyte_characters);
     }
 
-  {
-    coding->consumed = to_byte - from_byte;
-    coding->consumed_char = to - from;
-    coding->produced = inserted_byte;
-    coding->produced_char = inserted;
-  }
+  coding->consumed = coding->consumed_char = 0;
+  coding->produced = coding->produced_char = 0;
+  record_conversion_result (coding, CODING_RESULT_SUCCESS);
+  coding->errors = 0;
 
-  return 0;
+  ALLOC_CONVERSION_WORK_AREA (coding);
+
+  do {
+    coding_set_source (coding);
+    consume_chars (coding, translation_table, max_lookup);
+    coding_set_destination (coding);
+    (*(coding->encoder)) (coding);
+  } while (coding->consumed_char < coding->src_chars);
+
+  if (BUFFERP (coding->dst_object) && coding->produced_char > 0)
+    insert_from_gap (coding->produced_char, coding->produced);
+
+  return (coding->result);
 }
 
+
 /* Name (or base name) of work buffer for code conversion.  */
 static Lisp_Object Vcode_conversion_workbuf_name;
 
-/* Set the current buffer to the working buffer prepared for
-   code-conversion.  MULTIBYTE specifies the multibyteness of the
-   buffer.  Return the buffer we set if it must be killed after use.
-   Otherwise return Qnil.  */
+/* A working buffer used by the top level conversion.  Once it is
+   created, it is never destroyed.  It has the name
+   Vcode_conversion_workbuf_name.  The other working buffers are
+   destroyed after the use is finished, and their names are modified
+   versions of Vcode_conversion_workbuf_name.  */
+static Lisp_Object Vcode_conversion_reused_workbuf;
+
+/* 1 iff Vcode_conversion_reused_workbuf is already in use.  */
+static int reused_workbuf_in_use;
+
+
+/* Return a working buffer of code convesion.  MULTIBYTE specifies the
+   multibyteness of returning buffer.  */
 
 static Lisp_Object
-set_conversion_work_buffer (multibyte)
+make_conversion_work_buffer (multibyte)
      int multibyte;
 {
-  Lisp_Object buffer, buffer_to_kill;
-  struct buffer *buf;
+  Lisp_Object name, workbuf;
+  struct buffer *current;
 
-  buffer = Fget_buffer_create (Vcode_conversion_workbuf_name);
-  buf = XBUFFER (buffer);
-  if (buf == current_buffer)
+  if (reused_workbuf_in_use++)
     {
-      /* As we are already in the work buffer, we must generate a new
-        buffer for the work.  */
-      Lisp_Object name;
-
       name = Fgenerate_new_buffer_name (Vcode_conversion_workbuf_name, Qnil);
-      buffer = buffer_to_kill = Fget_buffer_create (name);
-      buf = XBUFFER (buffer);
+      workbuf = Fget_buffer_create (name);
     }
   else
-    buffer_to_kill = Qnil;
-
-  delete_all_overlays (buf);
-  buf->directory = current_buffer->directory;
-  buf->read_only = Qnil;
-  buf->filename = Qnil;
-  buf->undo_list = Qt;
-  eassert (buf->overlays_before == NULL);
-  eassert (buf->overlays_after == NULL);
-  set_buffer_internal (buf);
-  if (BEG != BEGV || Z != ZV)
-    Fwiden ();
-  del_range_2 (BEG, BEG_BYTE, Z, Z_BYTE, 0);
-  buf->enable_multibyte_characters = multibyte ? Qt : Qnil;
-  return buffer_to_kill;
+    {
+      name = Vcode_conversion_workbuf_name;
+      workbuf = Fget_buffer_create (name);
+      if (NILP (Vcode_conversion_reused_workbuf))
+       Vcode_conversion_reused_workbuf = workbuf;
+    }
+  current = current_buffer;
+  set_buffer_internal (XBUFFER (workbuf));
+  Ferase_buffer ();      
+  current_buffer->undo_list = Qt;
+  current_buffer->enable_multibyte_characters = multibyte ? Qt : Qnil;
+  set_buffer_internal (current);
+  return workbuf;
+}
+
+
+static Lisp_Object
+code_conversion_restore (arg)
+     Lisp_Object arg;
+{
+  Lisp_Object current, workbuf;
+  struct gcpro gcpro1;
+
+  GCPRO1 (arg);
+  current = XCAR (arg);
+  workbuf = XCDR (arg);
+  if (! NILP (workbuf))
+    {
+      if (EQ (workbuf, Vcode_conversion_reused_workbuf))
+       reused_workbuf_in_use = 0;
+      else if (! NILP (Fbuffer_live_p (workbuf)))
+       Fkill_buffer (workbuf);
+    }
+  set_buffer_internal (XBUFFER (current));
+  UNGCPRO;
+  return Qnil;
 }
 
 Lisp_Object
-run_pre_post_conversion_on_str (str, coding, encodep)
-     Lisp_Object str;
+code_conversion_save (with_work_buf, multibyte)
+     int with_work_buf, multibyte;
+{
+  Lisp_Object workbuf = Qnil;
+
+  if (with_work_buf)
+    workbuf = make_conversion_work_buffer (multibyte);
+  record_unwind_protect (code_conversion_restore,
+                        Fcons (Fcurrent_buffer (), workbuf));
+  return workbuf;
+}
+
+int
+decode_coding_gap (coding, chars, bytes)
      struct coding_system *coding;
-     int encodep;
+     EMACS_INT chars, bytes;
 {
-  int count = SPECPDL_INDEX ();
-  struct gcpro gcpro1, gcpro2;
-  int multibyte = STRING_MULTIBYTE (str);
-  Lisp_Object old_deactivate_mark;
-  Lisp_Object buffer_to_kill;
-  Lisp_Object unwind_arg;
-
-  record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
-  /* It is not crucial to specbind this.  */
-  old_deactivate_mark = Vdeactivate_mark;
-  GCPRO2 (str, old_deactivate_mark);
-
-  /* We must insert the contents of STR as is without
-     unibyte<->multibyte conversion.  For that, we adjust the
-     multibyteness of the working buffer to that of STR.  */
-  buffer_to_kill = set_conversion_work_buffer (multibyte);
-  if (NILP (buffer_to_kill))
-    unwind_arg = Fcons (Vlast_coding_system_used, Qnil);
-  else
-    unwind_arg = list2 (Vlast_coding_system_used, buffer_to_kill);
-  record_unwind_protect (code_convert_region_unwind, unwind_arg);
+  int count = specpdl_ptr - specpdl;
+  Lisp_Object attrs;
+
+  code_conversion_save (0, 0);
+
+  coding->src_object = Fcurrent_buffer ();
+  coding->src_chars = chars;
+  coding->src_bytes = bytes;
+  coding->src_pos = -chars;
+  coding->src_pos_byte = -bytes;
+  coding->src_multibyte = chars < bytes;
+  coding->dst_object = coding->src_object;
+  coding->dst_pos = PT;
+  coding->dst_pos_byte = PT_BYTE;
+  coding->dst_multibyte = ! NILP (current_buffer->enable_multibyte_characters);
 
-  insert_from_string (str, 0, 0,
-                     SCHARS (str), SBYTES (str), 0);
-  UNGCPRO;
-  inhibit_pre_post_conversion = 1;
-  if (encodep)
-    {
-      struct buffer *prev = current_buffer;
+  if (CODING_REQUIRE_DETECTION (coding))
+    detect_coding (coding);
 
-      call2 (coding->pre_write_conversion, make_number (BEG), make_number (Z));
-      if (prev != current_buffer)
-       /* We must kill the current buffer too.  */
-       Fsetcdr (unwind_arg, Fcons (Fcurrent_buffer (), XCDR (unwind_arg)));
-    }
-  else
+  coding->mode |= CODING_MODE_LAST_BLOCK;
+  current_buffer->text->inhibit_shrinking = 1;
+  decode_coding (coding);
+  current_buffer->text->inhibit_shrinking = 0;
+
+  attrs = CODING_ID_ATTRS (coding->id);
+  if (! NILP (CODING_ATTR_POST_READ (attrs)))
     {
-      Vlast_coding_system_used = coding->symbol;
-      TEMP_SET_PT_BOTH (BEG, BEG_BYTE);
-      call1 (coding->post_read_conversion, make_number (Z - BEG));
-      coding->symbol = Vlast_coding_system_used;
+      EMACS_INT prev_Z = Z, prev_Z_BYTE = Z_BYTE;
+      Lisp_Object val;
+
+      TEMP_SET_PT_BOTH (coding->dst_pos, coding->dst_pos_byte);
+      val = call1 (CODING_ATTR_POST_READ (attrs),
+                  make_number (coding->produced_char));
+      CHECK_NATNUM (val);
+      coding->produced_char += Z - prev_Z;
+      coding->produced += Z_BYTE - prev_Z_BYTE;
     }
-  inhibit_pre_post_conversion = 0;
-  Vdeactivate_mark = old_deactivate_mark;
-  str = make_buffer_string (BEG, Z, 1);
-  return unbind_to (count, str);
+
+  unbind_to (count, Qnil);
+  return coding->result;
 }
 
+int
+encode_coding_gap (coding, chars, bytes)
+     struct coding_system *coding;
+     EMACS_INT chars, bytes;
+{
+  int count = specpdl_ptr - specpdl;
 
-/* Run pre-write-conversion function of CODING on NCHARS/NBYTES
-   text in *STR.  *SIZE is the allocated bytes for STR.  As it
-   is intended that this function is called from encode_terminal_code,
-   the pre-write-conversion function is run by safe_call and thus
-   "Error during redisplay: ..." is logged when an error occurs.
+  code_conversion_save (0, 0);
 
-   Store the resulting text in *STR and set CODING->produced_char and
-   CODING->produced to the number of characters and bytes
-   respectively.  If the size of *STR is too small, enlarge it by
-   xrealloc and update *STR and *SIZE.  */
+  coding->src_object = Fcurrent_buffer ();
+  coding->src_chars = chars;
+  coding->src_bytes = bytes;
+  coding->src_pos = -chars;
+  coding->src_pos_byte = -bytes;
+  coding->src_multibyte = chars < bytes;
+  coding->dst_object = coding->src_object;
+  coding->dst_pos = PT;
+  coding->dst_pos_byte = PT_BYTE;
 
-void
-run_pre_write_conversin_on_c_str (str, size, nchars, nbytes, coding)
-     unsigned char **str;
-     int *size, nchars, nbytes;
-     struct coding_system *coding;
-{
-  struct gcpro gcpro1, gcpro2;
-  struct buffer *cur = current_buffer;
-  struct buffer *prev;
-  Lisp_Object old_deactivate_mark, old_last_coding_system_used;
-  Lisp_Object args[3];
-  Lisp_Object buffer_to_kill;
-
-  /* It is not crucial to specbind this.  */
-  old_deactivate_mark = Vdeactivate_mark;
-  old_last_coding_system_used = Vlast_coding_system_used;
-  GCPRO2 (old_deactivate_mark, old_last_coding_system_used);
-
-  /* We must insert the contents of STR as is without
-     unibyte<->multibyte conversion.  For that, we adjust the
-     multibyteness of the working buffer to that of STR.  */
-  buffer_to_kill = set_conversion_work_buffer (coding->src_multibyte);
-  insert_1_both (*str, nchars, nbytes, 0, 0, 0);
-  UNGCPRO;
-  inhibit_pre_post_conversion = 1;
-  prev = current_buffer;
-  args[0] = coding->pre_write_conversion;
-  args[1] = make_number (BEG);
-  args[2] = make_number (Z);
-  safe_call (3, args);
-  inhibit_pre_post_conversion = 0;
-  Vdeactivate_mark = old_deactivate_mark;
-  Vlast_coding_system_used = old_last_coding_system_used;
-  coding->produced_char = Z - BEG;
-  coding->produced = Z_BYTE - BEG_BYTE;
-  if (coding->produced > *size)
-    {
-      *size = coding->produced;
-      *str = xrealloc (*str, *size);
-    }
-  if (BEG < GPT && GPT < Z)
-    move_gap (BEG);
-  bcopy (BEG_ADDR, *str, coding->produced);
-  coding->src_multibyte
-    = ! NILP (current_buffer->enable_multibyte_characters);
-  if (prev != current_buffer)
-    Fkill_buffer (Fcurrent_buffer ());
-  set_buffer_internal (cur);
-  if (! NILP (buffer_to_kill))
-    Fkill_buffer (buffer_to_kill);
+  encode_coding (coding);
+
+  unbind_to (count, Qnil);
+  return coding->result;
 }
 
 
-Lisp_Object
-decode_coding_string (str, coding, nocopy)
-     Lisp_Object str;
+/* Decode the text in the range FROM/FROM_BYTE and TO/TO_BYTE in
+   SRC_OBJECT into DST_OBJECT by coding context CODING.
+
+   SRC_OBJECT is a buffer, a string, or Qnil.
+
+   If it is a buffer, the text is at point of the buffer.  FROM and TO
+   are positions in the buffer.
+
+   If it is a string, the text is at the beginning of the string.
+   FROM and TO are indices to the string.
+
+   If it is nil, the text is at coding->source.  FROM and TO are
+   indices to coding->source.
+
+   DST_OBJECT is a buffer, Qt, or Qnil.
+
+   If it is a buffer, the decoded text is inserted at point of the
+   buffer.  If the buffer is the same as SRC_OBJECT, the source text
+   is deleted.
+
+   If it is Qt, a string is made from the decoded text, and
+   set in CODING->dst_object.
+
+   If it is Qnil, the decoded text is stored at CODING->destination.
+   The caller must allocate CODING->dst_bytes bytes at
+   CODING->destination by xmalloc.  If the decoded text is longer than
+   CODING->dst_bytes, CODING->destination is relocated by xrealloc.
+ */
+
+void
+decode_coding_object (coding, src_object, from, from_byte, to, to_byte,
+                     dst_object)
      struct coding_system *coding;
-     int nocopy;
+     Lisp_Object src_object;
+     EMACS_INT from, from_byte, to, to_byte;
+     Lisp_Object dst_object;
 {
-  int len;
-  struct conversion_buffer buf;
-  int from, to_byte;
-  Lisp_Object saved_coding_symbol;
-  int result;
-  int require_decoding;
-  int shrinked_bytes = 0;
-  Lisp_Object newstr;
-  int consumed, consumed_char, produced, produced_char;
-
-  from = 0;
-  to_byte = SBYTES (str);
-
-  saved_coding_symbol = coding->symbol;
-  coding->src_multibyte = STRING_MULTIBYTE (str);
-  coding->dst_multibyte = 1;
-  coding->heading_ascii = 0;
+  int count = specpdl_ptr - specpdl;
+  unsigned char *destination;
+  EMACS_INT dst_bytes;
+  EMACS_INT chars = to - from;
+  EMACS_INT bytes = to_byte - from_byte;
+  Lisp_Object attrs;
+  Lisp_Object buffer;
+  int saved_pt = -1, saved_pt_byte;
 
-  if (CODING_REQUIRE_DETECTION (coding))
+  buffer = Fcurrent_buffer ();
+
+  if (NILP (dst_object))
+    {
+      destination = coding->destination;
+      dst_bytes = coding->dst_bytes;
+    }
+
+  coding->src_object = src_object;
+  coding->src_chars = chars;
+  coding->src_bytes = bytes;
+  coding->src_multibyte = chars < bytes;
+
+  if (STRINGP (src_object))
     {
-      /* See the comments in code_convert_region.  */
-      if (coding->type == coding_type_undecided)
+      coding->src_pos = from;
+      coding->src_pos_byte = from_byte;
+    }
+  else if (BUFFERP (src_object))
+    {
+      set_buffer_internal (XBUFFER (src_object));
+      if (from != GPT)
+       move_gap_both (from, from_byte);
+      if (EQ (src_object, dst_object))
        {
-         detect_coding (coding, SDATA (str), to_byte);
-         if (coding->type == coding_type_undecided)
-           {
-             coding->type = coding_type_emacs_mule;
-             coding->category_idx = CODING_CATEGORY_IDX_EMACS_MULE;
-             /* As emacs-mule decoder will handle composition, we
-                need this setting to allocate coding->cmp_data
-                later.  */
-             coding->composing = COMPOSITION_NO;
-           }
+         saved_pt = PT, saved_pt_byte = PT_BYTE;
+         TEMP_SET_PT_BOTH (from, from_byte);
+         del_range_both (from, from_byte, to, to_byte, 1);
+         coding->src_pos = -chars;
+         coding->src_pos_byte = -bytes;
        }
-      if (coding->eol_type == CODING_EOL_UNDECIDED
-         && coding->type != coding_type_ccl)
+      else
        {
-         saved_coding_symbol = coding->symbol;
-         detect_eol (coding, SDATA (str), to_byte);
-         if (coding->eol_type == CODING_EOL_UNDECIDED)
-           coding->eol_type = CODING_EOL_LF;
-         /* We had better recover the original eol format if we
-            encounter an inconsistent eol format while decoding.  */
-         coding->mode |= CODING_MODE_INHIBIT_INCONSISTENT_EOL;
+         coding->src_pos = from;
+         coding->src_pos_byte = from_byte;
        }
     }
 
-  if (coding->type == coding_type_no_conversion
-      || coding->type == coding_type_raw_text)
-    coding->dst_multibyte = 0;
-
-  require_decoding = CODING_REQUIRE_DECODING (coding);
+  if (CODING_REQUIRE_DETECTION (coding))
+    detect_coding (coding);
+  attrs = CODING_ID_ATTRS (coding->id);
 
-  if (STRING_MULTIBYTE (str))
+  if (EQ (dst_object, Qt)
+      || (! NILP (CODING_ATTR_POST_READ (attrs))
+         && NILP (dst_object)))
     {
-      /* Decoding routines expect the source text to be unibyte.  */
-      str = Fstring_as_unibyte (str);
-      to_byte = SBYTES (str);
-      nocopy = 1;
-      coding->src_multibyte = 0;
+      coding->dst_object = code_conversion_save (1, 1);
+      coding->dst_pos = BEG;
+      coding->dst_pos_byte = BEG_BYTE;
+      coding->dst_multibyte = 1;
     }
-
-  /* Try to skip the heading and tailing ASCIIs.  */
-  if (require_decoding && coding->type != coding_type_ccl)
+  else if (BUFFERP (dst_object))
     {
-      SHRINK_CONVERSION_REGION (&from, &to_byte, coding, SDATA (str),
-                               0);
-      if (from == to_byte)
-       require_decoding = 0;
-      shrinked_bytes = from + (SBYTES (str) - to_byte);
+      code_conversion_save (0, 0);
+      coding->dst_object = dst_object;
+      coding->dst_pos = BUF_PT (XBUFFER (dst_object));
+      coding->dst_pos_byte = BUF_PT_BYTE (XBUFFER (dst_object));
+      coding->dst_multibyte
+       = ! NILP (XBUFFER (dst_object)->enable_multibyte_characters);
     }
-
-  if (!require_decoding
-      && !(SYMBOLP (coding->post_read_conversion)
-          && !NILP (Ffboundp (coding->post_read_conversion))))
+  else
     {
-      coding->consumed = SBYTES (str);
-      coding->consumed_char = SCHARS (str);
-      if (coding->dst_multibyte)
-       {
-         str = Fstring_as_multibyte (str);
-         nocopy = 1;
-       }
-      coding->produced = SBYTES (str);
-      coding->produced_char = SCHARS (str);
-      return (nocopy ? str : Fcopy_sequence (str));
+      code_conversion_save (0, 0);
+      coding->dst_object = Qnil;
+      coding->dst_multibyte = 1;
     }
 
-  if (coding->composing != COMPOSITION_DISABLED)
-    coding_allocate_composition_data (coding, from);
-  len = decoding_buffer_size (coding, to_byte - from);
-  allocate_conversion_buffer (buf, len);
+  decode_coding (coding);
 
-  consumed = consumed_char = produced = produced_char = 0;
-  while (1)
+  if (BUFFERP (coding->dst_object))
+    set_buffer_internal (XBUFFER (coding->dst_object));
+
+  if (! NILP (CODING_ATTR_POST_READ (attrs)))
     {
-      result = decode_coding (coding, SDATA (str) + from + consumed,
-                             buf.data + produced, to_byte - from - consumed,
-                             buf.size - produced);
-      consumed += coding->consumed;
-      consumed_char += coding->consumed_char;
-      produced += coding->produced;
-      produced_char += coding->produced_char;
-      if (result == CODING_FINISH_NORMAL
-         || result == CODING_FINISH_INTERRUPT
-         || (result == CODING_FINISH_INSUFFICIENT_SRC
-             && coding->consumed == 0))
-       break;
-      if (result == CODING_FINISH_INSUFFICIENT_CMP)
-       coding_allocate_composition_data (coding, from + produced_char);
-      else if (result == CODING_FINISH_INSUFFICIENT_DST)
-       extend_conversion_buffer (&buf);
-      else if (result == CODING_FINISH_INCONSISTENT_EOL)
-       {
-         Lisp_Object eol_type;
+      struct gcpro gcpro1, gcpro2;
+      EMACS_INT prev_Z = Z, prev_Z_BYTE = Z_BYTE;
+      Lisp_Object val;
 
-         /* Recover the original EOL format.  */
-         if (coding->eol_type == CODING_EOL_CR)
-           {
-             unsigned char *p;
-             for (p = buf.data; p < buf.data + produced; p++)
-               if (*p == '\n') *p = '\r';
-           }
-         else if (coding->eol_type == CODING_EOL_CRLF)
+      TEMP_SET_PT_BOTH (coding->dst_pos, coding->dst_pos_byte);
+      GCPRO2 (coding->src_object, coding->dst_object);
+      val = safe_call1 (CODING_ATTR_POST_READ (attrs),
+                       make_number (coding->produced_char));
+      UNGCPRO;
+      CHECK_NATNUM (val);
+      coding->produced_char += Z - prev_Z;
+      coding->produced += Z_BYTE - prev_Z_BYTE;
+    }
+
+  if (EQ (dst_object, Qt))
+    {
+      coding->dst_object = Fbuffer_string ();
+    }
+  else if (NILP (dst_object) && BUFFERP (coding->dst_object))
+    {
+      set_buffer_internal (XBUFFER (coding->dst_object));
+      if (dst_bytes < coding->produced)
+       {
+         destination
+           = (unsigned char *) xrealloc (destination, coding->produced);
+         if (! destination)
            {
-             int num_eol = 0;
-             unsigned char *p0, *p1;
-             for (p0 = buf.data, p1 = p0 + produced; p0 < p1; p0++)
-               if (*p0 == '\n') num_eol++;
-             if (produced + num_eol >= buf.size)
-               extend_conversion_buffer (&buf);
-             for (p0 = buf.data + produced, p1 = p0 + num_eol; p0 > buf.data;)
-               {
-                 *--p1 = *--p0;
-                 if (*p0 == '\n') *--p1 = '\r';
-               }
-             produced += num_eol;
-             produced_char += num_eol;
+             record_conversion_result (coding,
+                                       CODING_RESULT_INSUFFICIENT_DST);
+             unbind_to (count, Qnil);
+             return;
            }
-         /* Suppress eol-format conversion in the further conversion.  */
-         coding->eol_type = CODING_EOL_LF;
-
-         /* Set the coding system symbol to that for Unix-like EOL.  */
-         eol_type = Fget (saved_coding_symbol, Qeol_type);
-         if (VECTORP (eol_type)
-             && XVECTOR (eol_type)->size == 3
-             && SYMBOLP (XVECTOR (eol_type)->contents[CODING_EOL_LF]))
-           coding->symbol = XVECTOR (eol_type)->contents[CODING_EOL_LF];
-         else
-           coding->symbol = saved_coding_symbol;
-
-
+         if (BEGV < GPT && GPT < BEGV + coding->produced_char)
+           move_gap_both (BEGV, BEGV_BYTE);
+         bcopy (BEGV_ADDR, destination, coding->produced);
+         coding->destination = destination;
        }
     }
 
-  coding->consumed = consumed;
-  coding->consumed_char = consumed_char;
-  coding->produced = produced;
-  coding->produced_char = produced_char;
+  if (saved_pt >= 0)
+    {
+      /* This is the case of:
+        (BUFFERP (src_object) && EQ (src_object, dst_object))
+        As we have moved PT while replacing the original buffer
+        contents, we must recover it now.  */
+      set_buffer_internal (XBUFFER (src_object));
+      if (saved_pt < from)
+       TEMP_SET_PT_BOTH (saved_pt, saved_pt_byte);
+      else if (saved_pt < from + chars)
+       TEMP_SET_PT_BOTH (from, from_byte);
+      else if (! NILP (current_buffer->enable_multibyte_characters))
+       TEMP_SET_PT_BOTH (saved_pt + (coding->produced_char - chars),
+                         saved_pt_byte + (coding->produced - bytes));
+      else
+       TEMP_SET_PT_BOTH (saved_pt + (coding->produced - bytes),
+                         saved_pt_byte + (coding->produced - bytes));
+    }
 
-  if (coding->dst_multibyte)
-    newstr = make_uninit_multibyte_string (produced_char + shrinked_bytes,
-                                          produced + shrinked_bytes);
-  else
-    newstr = make_uninit_string (produced + shrinked_bytes);
-  if (from > 0)
-    STRING_COPYIN (newstr, 0, SDATA (str), from);
-  STRING_COPYIN (newstr, from, buf.data, produced);
-  if (shrinked_bytes > from)
-    STRING_COPYIN (newstr, from + produced,
-                  SDATA (str) + to_byte,
-                  shrinked_bytes - from);
-  free_conversion_buffer (&buf);
-
-  coding->consumed += shrinked_bytes;
-  coding->consumed_char += shrinked_bytes;
-  coding->produced += shrinked_bytes;
-  coding->produced_char += shrinked_bytes;
-
-  if (coding->cmp_data && coding->cmp_data->used)
-    coding_restore_composition (coding, newstr);
-  coding_free_composition_data (coding);
-
-  if (SYMBOLP (coding->post_read_conversion)
-      && !NILP (Ffboundp (coding->post_read_conversion)))
-    newstr = run_pre_post_conversion_on_str (newstr, coding, 0);
-
-  return newstr;
+  unbind_to (count, coding->dst_object);
 }
 
-Lisp_Object
-encode_coding_string (str, coding, nocopy)
-     Lisp_Object str;
+
+void
+encode_coding_object (coding, src_object, from, from_byte, to, to_byte,
+                     dst_object)
      struct coding_system *coding;
-     int nocopy;
+     Lisp_Object src_object;
+     EMACS_INT from, from_byte, to, to_byte;
+     Lisp_Object dst_object;
 {
-  int len;
-  struct conversion_buffer buf;
-  int from, to, to_byte;
-  int result;
-  int shrinked_bytes = 0;
-  Lisp_Object newstr;
-  int consumed, consumed_char, produced, produced_char;
-
-  if (SYMBOLP (coding->pre_write_conversion)
-      && !NILP (Ffboundp (coding->pre_write_conversion)))
-    {
-      str = run_pre_post_conversion_on_str (str, coding, 1);
-      /* As STR is just newly generated, we don't have to copy it
-        anymore.  */
-      nocopy = 1;
-    }
+  int count = specpdl_ptr - specpdl;
+  EMACS_INT chars = to - from;
+  EMACS_INT bytes = to_byte - from_byte;
+  Lisp_Object attrs;
+  Lisp_Object buffer;
+  int saved_pt = -1, saved_pt_byte;
+  int kill_src_buffer = 0;
+
+  buffer = Fcurrent_buffer ();
+
+  coding->src_object = src_object;
+  coding->src_chars = chars;
+  coding->src_bytes = bytes;
+  coding->src_multibyte = chars < bytes;
+
+  attrs = CODING_ID_ATTRS (coding->id);
+
+  if (! NILP (CODING_ATTR_PRE_WRITE (attrs)))
+    {
+      coding->src_object = code_conversion_save (1, coding->src_multibyte);
+      set_buffer_internal (XBUFFER (coding->src_object));
+      if (STRINGP (src_object))
+       insert_from_string (src_object, from, from_byte, chars, bytes, 0);
+      else if (BUFFERP (src_object))
+       insert_from_buffer (XBUFFER (src_object), from, chars, 0);
+      else
+       insert_1_both (coding->source + from, chars, bytes, 0, 0, 0);
 
-  from = 0;
-  to = SCHARS (str);
-  to_byte = SBYTES (str);
+      if (EQ (src_object, dst_object))
+       {
+         set_buffer_internal (XBUFFER (src_object));
+         saved_pt = PT, saved_pt_byte = PT_BYTE;
+         del_range_both (from, from_byte, to, to_byte, 1);
+         set_buffer_internal (XBUFFER (coding->src_object));
+       }
 
-  /* Encoding routines determine the multibyteness of the source text
-     by coding->src_multibyte.  */
-  coding->src_multibyte = SCHARS (str) < SBYTES (str);
-  coding->dst_multibyte = 0;
-  if (! CODING_REQUIRE_ENCODING (coding))
-    goto no_need_of_encoding;
+      {
+       Lisp_Object args[3];
 
-  if (coding->composing != COMPOSITION_DISABLED)
-    coding_save_composition (coding, from, to, str);
+       args[0] = CODING_ATTR_PRE_WRITE (attrs);
+       args[1] = make_number (BEG);
+       args[2] = make_number (Z);
+       safe_call (3, args);
+      }
+      if (XBUFFER (coding->src_object) != current_buffer)
+       kill_src_buffer = 1;
+      coding->src_object = Fcurrent_buffer ();
+      if (BEG != GPT)
+       move_gap_both (BEG, BEG_BYTE);
+      coding->src_chars = Z - BEG;
+      coding->src_bytes = Z_BYTE - BEG_BYTE;
+      coding->src_pos = BEG;
+      coding->src_pos_byte = BEG_BYTE;
+      coding->src_multibyte = Z < Z_BYTE;
+    }
+  else if (STRINGP (src_object))
+    {
+      code_conversion_save (0, 0);
+      coding->src_pos = from;
+      coding->src_pos_byte = from_byte;
+    }
+  else if (BUFFERP (src_object))
+    {
+      code_conversion_save (0, 0);
+      set_buffer_internal (XBUFFER (src_object));
+      if (EQ (src_object, dst_object))
+       {
+         saved_pt = PT, saved_pt_byte = PT_BYTE;
+         coding->src_object = del_range_1 (from, to, 1, 1);
+         coding->src_pos = 0;
+         coding->src_pos_byte = 0;
+       }
+      else
+       {
+         if (from < GPT && to >= GPT)
+           move_gap_both (from, from_byte);
+         coding->src_pos = from;
+         coding->src_pos_byte = from_byte;
+       }
+    }
+  else
+    code_conversion_save (0, 0);
 
-  /* Try to skip the heading and tailing ASCIIs.  We can't skip them
-     if we must run CCL program or there are compositions to
-     encode.  */
-  coding->heading_ascii = 0;
-  if (coding->type != coding_type_ccl
-      && (! coding->cmp_data || coding->cmp_data->used == 0))
+  if (BUFFERP (dst_object))
     {
-      SHRINK_CONVERSION_REGION (&from, &to_byte, coding, SDATA (str),
-                               1);
-      if (from == to_byte)
+      coding->dst_object = dst_object;
+      if (EQ (src_object, dst_object))
        {
-         coding_free_composition_data (coding);
-         goto no_need_of_encoding;
+         coding->dst_pos = from;
+         coding->dst_pos_byte = from_byte;
        }
-      shrinked_bytes = from + (SBYTES (str) - to_byte);
+      else
+       {
+         coding->dst_pos = BUF_PT (XBUFFER (dst_object));
+         coding->dst_pos_byte = BUF_PT_BYTE (XBUFFER (dst_object));
+       }
+      coding->dst_multibyte
+       = ! NILP (XBUFFER (dst_object)->enable_multibyte_characters);
+    }
+  else if (EQ (dst_object, Qt))
+    {
+      coding->dst_object = Qnil;
+      coding->dst_bytes = coding->src_chars;
+      if (coding->dst_bytes == 0)
+       coding->dst_bytes = 1;
+      coding->destination = (unsigned char *) xmalloc (coding->dst_bytes);
+      coding->dst_multibyte = 0;
+    }
+  else
+    {
+      coding->dst_object = Qnil;
+      coding->dst_multibyte = 0;
     }
 
-  len = encoding_buffer_size (coding, to_byte - from);
-  allocate_conversion_buffer (buf, len);
+  encode_coding (coding);
 
-  consumed = consumed_char = produced = produced_char = 0;
-  while (1)
+  if (EQ (dst_object, Qt))
     {
-      result = encode_coding (coding, SDATA (str) + from + consumed,
-                             buf.data + produced, to_byte - from - consumed,
-                             buf.size - produced);
-      consumed += coding->consumed;
-      consumed_char += coding->consumed_char;
-      produced += coding->produced;
-      produced_char += coding->produced_char;
-      if (result == CODING_FINISH_NORMAL
-         || result == CODING_FINISH_INTERRUPT
-         || (result == CODING_FINISH_INSUFFICIENT_SRC
-             && coding->consumed == 0))
-       break;
-      /* Now result should be CODING_FINISH_INSUFFICIENT_DST.  */
-      extend_conversion_buffer (&buf);
-    }
-
-  coding->consumed = consumed;
-  coding->consumed_char = consumed_char;
-  coding->produced = produced;
-  coding->produced_char = produced_char;
-
-  newstr = make_uninit_string (produced + shrinked_bytes);
-  if (from > 0)
-    STRING_COPYIN (newstr, 0, SDATA (str), from);
-  STRING_COPYIN (newstr, from, buf.data, produced);
-  if (shrinked_bytes > from)
-    STRING_COPYIN (newstr, from + produced,
-                  SDATA (str) + to_byte,
-                  shrinked_bytes - from);
-
-  free_conversion_buffer (&buf);
-  coding_free_composition_data (coding);
-
-  return newstr;
-
- no_need_of_encoding:
-  coding->consumed = SBYTES (str);
-  coding->consumed_char = SCHARS (str);
-  if (STRING_MULTIBYTE (str))
-    {
-      if (nocopy)
-       /* We are sure that STR doesn't contain a multibyte
-          character.  */
-       STRING_SET_UNIBYTE (str);
+      if (BUFFERP (coding->dst_object))
+       coding->dst_object = Fbuffer_string ();
       else
        {
-         str = Fstring_as_unibyte (str);
-         nocopy = 1;
+         coding->dst_object
+           = make_unibyte_string ((char *) coding->destination,
+                                  coding->produced);
+         xfree (coding->destination);
        }
     }
-  coding->produced = SBYTES (str);
-  coding->produced_char = SCHARS (str);
-  return (nocopy ? str : Fcopy_sequence (str));
+
+  if (saved_pt >= 0)
+    {
+      /* This is the case of:
+        (BUFFERP (src_object) && EQ (src_object, dst_object))
+        As we have moved PT while replacing the original buffer
+        contents, we must recover it now.  */
+      set_buffer_internal (XBUFFER (src_object));
+      if (saved_pt < from)
+       TEMP_SET_PT_BOTH (saved_pt, saved_pt_byte);
+      else if (saved_pt < from + chars)
+       TEMP_SET_PT_BOTH (from, from_byte);
+      else if (! NILP (current_buffer->enable_multibyte_characters))
+       TEMP_SET_PT_BOTH (saved_pt + (coding->produced_char - chars),
+                         saved_pt_byte + (coding->produced - bytes));
+      else
+       TEMP_SET_PT_BOTH (saved_pt + (coding->produced - bytes),
+                         saved_pt_byte + (coding->produced - bytes));
+    }
+
+  if (kill_src_buffer)
+    Fkill_buffer (coding->src_object);
+  unbind_to (count, Qnil);
+}
+
+
+Lisp_Object
+preferred_coding_system ()
+{
+  int id = coding_categories[coding_priorities[0]].id;
+
+  return CODING_ID_NAME (id);
 }
 
 \f
@@ -6521,21 +7164,18 @@ encode_coding_string (str, coding, nocopy)
 
 DEFUN ("coding-system-p", Fcoding_system_p, Scoding_system_p, 1, 1, 0,
        doc: /* Return t if OBJECT is nil or a coding-system.
-See the documentation of `make-coding-system' for information
+See the documentation of `define-coding-system' for information
 about coding-system objects.  */)
      (obj)
      Lisp_Object obj;
 {
-  if (NILP (obj))
+  if (NILP (obj)
+      || CODING_SYSTEM_ID (obj) >= 0)
     return Qt;
-  if (!SYMBOLP (obj))
+  if (! SYMBOLP (obj)
+      || NILP (Fget (obj, Qcoding_system_define_form)))
     return Qnil;
-  if (! NILP (Fget (obj, Qcoding_system_define_form)))
-    return Qt;
-  /* Get coding-spec vector for OBJ.  */
-  obj = Fget (obj, Qcoding_system);
-  return ((VECTORP (obj) && XVECTOR (obj)->size == 5)
-         ? Qt : Qnil);
+  return Qt;
 }
 
 DEFUN ("read-non-nil-coding-system", Fread_non_nil_coding_system,
@@ -6579,9 +7219,9 @@ DEFUN ("check-coding-system", Fcheck_coding_system, Scheck_coding_system,
        1, 1, 0,
        doc: /* Check validity of CODING-SYSTEM.
 If valid, return CODING-SYSTEM, else signal a `coding-system-error' error.
-It is valid if it is nil or a symbol with a non-nil `coding-system' property.
-The value of this property should be a vector of length 5.  */)
-     (coding_system)
+It is valid if it is nil or a symbol defined as a coding system by the
+function `define-coding-system'.  */)
+  (coding_system)
      Lisp_Object coding_system;
 {
   Lisp_Object define_form;
@@ -6596,77 +7236,289 @@ The value of this property should be a vector of length 5.  */)
     return coding_system;
   xsignal1 (Qcoding_system_error, coding_system);
 }
+
 \f
+/* Detect how the bytes at SRC of length SRC_BYTES are encoded.  If
+   HIGHEST is nonzero, return the coding system of the highest
+   priority among the detected coding systems.  Otherwize return a
+   list of detected coding systems sorted by their priorities.  If
+   MULTIBYTEP is nonzero, it is assumed that the bytes are in correct
+   multibyte form but contains only ASCII and eight-bit chars.
+   Otherwise, the bytes are raw bytes.
+
+   CODING-SYSTEM controls the detection as below:
+
+   If it is nil, detect both text-format and eol-format.  If the
+   text-format part of CODING-SYSTEM is already specified
+   (e.g. `iso-latin-1'), detect only eol-format.  If the eol-format
+   part of CODING-SYSTEM is already specified (e.g. `undecided-unix'),
+   detect only text-format.  */
+
 Lisp_Object
-detect_coding_system (src, src_bytes, highest, multibytep)
+detect_coding_system (src, src_chars, src_bytes, highest, multibytep,
+                     coding_system)
      const unsigned char *src;
-     int src_bytes, highest;
+     int src_chars, src_bytes, highest;
      int multibytep;
+     Lisp_Object coding_system;
 {
-  int coding_mask, eol_type;
-  Lisp_Object val, tmp;
-  int dummy;
+  const unsigned char *src_end = src + src_bytes;
+  Lisp_Object attrs, eol_type;
+  Lisp_Object val;
+  struct coding_system coding;
+  int id;
+  struct coding_detection_info detect_info;
+  enum coding_category base_category;
+
+  if (NILP (coding_system))
+    coding_system = Qundecided;
+  setup_coding_system (coding_system, &coding);
+  attrs = CODING_ID_ATTRS (coding.id);
+  eol_type = CODING_ID_EOL_TYPE (coding.id);
+  coding_system = CODING_ATTR_BASE_NAME (attrs);
+
+  coding.source = src;
+  coding.src_chars = src_chars;
+  coding.src_bytes = src_bytes;
+  coding.src_multibyte = multibytep;
+  coding.consumed = 0;
+  coding.mode |= CODING_MODE_LAST_BLOCK;
 
-  coding_mask = detect_coding_mask (src, src_bytes, NULL, &dummy, multibytep);
-  eol_type  = detect_eol_type (src, src_bytes, &dummy);
-  if (eol_type == CODING_EOL_INCONSISTENT)
-    eol_type = CODING_EOL_UNDECIDED;
+  detect_info.checked = detect_info.found = detect_info.rejected = 0;
 
-  if (!coding_mask)
+  /* At first, detect text-format if necessary.  */
+  base_category = XINT (CODING_ATTR_CATEGORY (attrs));
+  if (base_category == coding_category_undecided)
     {
-      val = Qundecided;
-      if (eol_type != CODING_EOL_UNDECIDED)
+      enum coding_category category;
+      struct coding_system *this;
+      int c, i;
+
+      /* Skip all ASCII bytes except for a few ISO2022 controls.  */
+      for (i = 0; src < src_end; i++, src++)
+       {
+         c = *src;
+         if (c & 0x80)
+           break;
+         if (c < 0x20
+             && (c == ISO_CODE_ESC || c == ISO_CODE_SI || c == ISO_CODE_SO)
+             && ! inhibit_iso_escape_detection)
+           {
+             coding.head_ascii = src - coding.source;
+             if (detect_coding_iso_2022 (&coding, &detect_info))
+               {
+                 /* We have scanned the whole data.  */
+                 if (! (detect_info.rejected & CATEGORY_MASK_ISO_7_ELSE))
+                   /* We didn't find an 8-bit code.  */
+                   src = src_end;
+                 break;
+               }
+           }
+       }
+      coding.head_ascii = src - coding.source;
+
+      if (src < src_end
+         || detect_info.found)
+       {
+         if (src == src_end)
+           /* As all bytes are 7-bit, we can ignore non-ISO-2022 codings.  */
+           for (i = 0; i < coding_category_raw_text; i++)
+             {
+               category = coding_priorities[i];
+               this = coding_categories + category;
+               if (detect_info.found & (1 << category))
+                 break;
+             }
+         else
+           for (i = 0; i < coding_category_raw_text; i++)
+             {
+               category = coding_priorities[i];
+               this = coding_categories + category;
+
+               if (this->id < 0)
+                 {
+                   /* No coding system of this category is defined.  */
+                   detect_info.rejected |= (1 << category);
+                 }
+               else if (category >= coding_category_raw_text)
+                 continue;
+               else if (detect_info.checked & (1 << category))
+                 {
+                   if (highest
+                       && (detect_info.found & (1 << category)))
+                     break;
+                 }
+               else
+                 {
+                   if ((*(this->detector)) (&coding, &detect_info)
+                       && highest
+                       && (detect_info.found & (1 << category)))
+                     {
+                       if (category == coding_category_utf_16_auto)
+                         {
+                           if (detect_info.found & CATEGORY_MASK_UTF_16_LE)
+                             category = coding_category_utf_16_le;
+                           else
+                             category = coding_category_utf_16_be;
+                         }
+                       break;
+                     }
+                 }
+             }
+       }
+
+      if (detect_info.rejected == CATEGORY_MASK_ANY)
+       {
+         detect_info.found = CATEGORY_MASK_RAW_TEXT;
+         id = coding_categories[coding_category_raw_text].id;
+         val = Fcons (make_number (id), Qnil);
+       }
+      else if (! detect_info.rejected && ! detect_info.found)
+       {
+         detect_info.found = CATEGORY_MASK_ANY;
+         id = coding_categories[coding_category_undecided].id;
+         val = Fcons (make_number (id), Qnil);
+       }
+      else if (highest)
+       {
+         if (detect_info.found)
+           {
+             detect_info.found = 1 << category;
+             val = Fcons (make_number (this->id), Qnil);
+           }
+         else
+           for (i = 0; i < coding_category_raw_text; i++)
+             if (! (detect_info.rejected & (1 << coding_priorities[i])))
+               {
+                 detect_info.found = 1 << coding_priorities[i];
+                 id = coding_categories[coding_priorities[i]].id;
+                 val = Fcons (make_number (id), Qnil);
+                 break;
+               }
+       }
+      else
        {
-         Lisp_Object val2;
-         val2 = Fget (Qundecided, Qeol_type);
-         if (VECTORP (val2))
-           val = XVECTOR (val2)->contents[eol_type];
+         int mask = detect_info.rejected | detect_info.found;
+         int found = 0;
+         val = Qnil;
+
+         for (i = coding_category_raw_text - 1; i >= 0; i--)
+           {
+             category = coding_priorities[i];
+             if (! (mask & (1 << category)))
+               {
+                 found |= 1 << category;
+                 id = coding_categories[category].id;
+                 if (id >= 0)
+                   val = Fcons (make_number (id), val);
+               }
+           }
+         for (i = coding_category_raw_text - 1; i >= 0; i--)
+           {
+             category = coding_priorities[i];
+             if (detect_info.found & (1 << category))
+               {
+                 id = coding_categories[category].id;
+                 val = Fcons (make_number (id), val);
+               }
+           }
+         detect_info.found |= found;
        }
-      return (highest ? val : Fcons (val, Qnil));
     }
-
-  /* At first, gather possible coding systems in VAL.  */
-  val = Qnil;
-  for (tmp = Vcoding_category_list; CONSP (tmp); tmp = XCDR (tmp))
+  else if (base_category == coding_category_utf_16_auto)
     {
-      Lisp_Object category_val, category_index;
-
-      category_index = Fget (XCAR (tmp), Qcoding_category_index);
-      category_val = Fsymbol_value (XCAR (tmp));
-      if (!NILP (category_val)
-         && NATNUMP (category_index)
-         && (coding_mask & (1 << XFASTINT (category_index))))
+      if (detect_coding_utf_16 (&coding, &detect_info))
        {
-         val = Fcons (category_val, val);
-         if (highest)
-           break;
+         struct coding_system *this;
+
+         if (detect_info.found & CATEGORY_MASK_UTF_16_LE)
+           this = coding_categories + coding_category_utf_16_le;
+         else if (detect_info.found & CATEGORY_MASK_UTF_16_BE)
+           this = coding_categories + coding_category_utf_16_be;
+         else if (detect_info.rejected & CATEGORY_MASK_UTF_16_LE_NOSIG)
+           this = coding_categories + coding_category_utf_16_be_nosig;
+         else
+           this = coding_categories + coding_category_utf_16_le_nosig;
+         val = Fcons (make_number (this->id), Qnil);
        }
     }
-  if (!highest)
-    val = Fnreverse (val);
-
-  /* Then, replace the elements with subsidiary coding systems.  */
-  for (tmp = val; CONSP (tmp); tmp = XCDR (tmp))
+  else
     {
-      if (eol_type != CODING_EOL_UNDECIDED
-         && eol_type != CODING_EOL_INCONSISTENT)
-       {
-         Lisp_Object eol;
-         eol = Fget (XCAR (tmp), Qeol_type);
-         if (VECTORP (eol))
-           XSETCAR (tmp, XVECTOR (eol)->contents[eol_type]);
-       }
+      detect_info.found = 1 << XINT (CODING_ATTR_CATEGORY (attrs));
+      val = Fcons (make_number (coding.id), Qnil);
     }
+
+  /* Then, detect eol-format if necessary.  */
+  {
+    int normal_eol = -1, utf_16_be_eol = -1, utf_16_le_eol;
+    Lisp_Object tail;
+
+    if (VECTORP (eol_type))
+      {
+       if (detect_info.found & ~CATEGORY_MASK_UTF_16)
+         normal_eol = detect_eol (coding.source, src_bytes,
+                                  coding_category_raw_text);
+       if (detect_info.found & (CATEGORY_MASK_UTF_16_BE
+                                | CATEGORY_MASK_UTF_16_BE_NOSIG))
+         utf_16_be_eol = detect_eol (coding.source, src_bytes,
+                                     coding_category_utf_16_be);
+       if (detect_info.found & (CATEGORY_MASK_UTF_16_LE
+                                | CATEGORY_MASK_UTF_16_LE_NOSIG))
+         utf_16_le_eol = detect_eol (coding.source, src_bytes,
+                                     coding_category_utf_16_le);
+      }
+    else
+      {
+       if (EQ (eol_type, Qunix))
+         normal_eol = utf_16_be_eol = utf_16_le_eol = EOL_SEEN_LF;
+       else if (EQ (eol_type, Qdos))
+         normal_eol = utf_16_be_eol = utf_16_le_eol = EOL_SEEN_CRLF;
+       else
+         normal_eol = utf_16_be_eol = utf_16_le_eol = EOL_SEEN_CR;
+      }
+
+    for (tail = val; CONSP (tail); tail = XCDR (tail))
+      {
+       enum coding_category category;
+       int this_eol;
+
+       id = XINT (XCAR (tail));
+       attrs = CODING_ID_ATTRS (id);
+       category = XINT (CODING_ATTR_CATEGORY (attrs));
+       eol_type = CODING_ID_EOL_TYPE (id);
+       if (VECTORP (eol_type))
+         {
+           if (category == coding_category_utf_16_be
+               || category == coding_category_utf_16_be_nosig)
+             this_eol = utf_16_be_eol;
+           else if (category == coding_category_utf_16_le
+                    || category == coding_category_utf_16_le_nosig)
+             this_eol = utf_16_le_eol;
+           else
+             this_eol = normal_eol;
+
+           if (this_eol == EOL_SEEN_LF)
+             XSETCAR (tail, AREF (eol_type, 0));
+           else if (this_eol == EOL_SEEN_CRLF)
+             XSETCAR (tail, AREF (eol_type, 1));
+           else if (this_eol == EOL_SEEN_CR)
+             XSETCAR (tail, AREF (eol_type, 2));
+           else
+             XSETCAR (tail, CODING_ID_NAME (id));
+         }
+       else
+         XSETCAR (tail, CODING_ID_NAME (id));
+      }
+  }
+
   return (highest ? XCAR (val) : val);
 }
 
+
 DEFUN ("detect-coding-region", Fdetect_coding_region, Sdetect_coding_region,
        2, 3, 0,
-       doc: /* Detect how the byte sequence in the region is encoded.
-Return a list of possible coding systems used on decoding a byte
-sequence containing the bytes in the region between START and END when
-the coding system `undecided' is specified.  The list is ordered by
-priority decided in the current language environment.
+       doc: /* Detect coding system of the text in the region between START and END.
+Return a list of possible coding systems ordered by priority.
 
 If only ASCII characters are found (except for such ISO-2022 control
 characters ISO-2022 as ESC), it returns a list of single element
@@ -6680,7 +7532,6 @@ highest priority.  */)
 {
   int from, to;
   int from_byte, to_byte;
-  int include_anchor_byte = 0;
 
   CHECK_NUMBER_COERCE_MARKER (start);
   CHECK_NUMBER_COERCE_MARKER (end);
@@ -6692,29 +7543,19 @@ highest priority.  */)
 
   if (from < GPT && to >= GPT)
     move_gap_both (to, to_byte);
-  /* If we an anchor byte `\0' follows the region, we include it in
-     the detecting source.  Then code detectors can handle the tailing
-     byte sequence more accurately.
 
-     Fix me: This is not a perfect solution.  It is better that we
-     add one more argument, say LAST_BLOCK, to all detect_coding_XXX.
-  */
-  if (to == Z || (to == GPT && GAP_SIZE > 0))
-    include_anchor_byte = 1;
   return detect_coding_system (BYTE_POS_ADDR (from_byte),
-                              to_byte - from_byte + include_anchor_byte,
+                              to - from, to_byte - from_byte,
                               !NILP (highest),
                               !NILP (current_buffer
-                                     ->enable_multibyte_characters));
+                                     ->enable_multibyte_characters),
+                              Qnil);
 }
 
 DEFUN ("detect-coding-string", Fdetect_coding_string, Sdetect_coding_string,
        1, 2, 0,
-       doc: /* Detect how the byte sequence in STRING is encoded.
-Return a list of possible coding systems used on decoding a byte
-sequence containing the bytes in STRING when the coding system
-`undecided' is specified.  The list is ordered by priority decided in
-the current language environment.
+       doc: /* Detect coding system of the text in STRING.
+Return a list of possible coding systems ordered by priority.
 
 If only ASCII characters are found (except for such ISO-2022 control
 characters ISO-2022 as ESC), it returns a list of single element
@@ -6729,288 +7570,157 @@ highest priority.  */)
   CHECK_STRING (string);
 
   return detect_coding_system (SDATA (string),
-                              /* "+ 1" is to include the anchor byte
-                                 `\0'.  With this, code detectors can
-                                 handle the tailing bytes more
-                                 accurately.  */
-                              SBYTES (string) + 1,
-                              !NILP (highest),
-                              STRING_MULTIBYTE (string));
+                              SCHARS (string), SBYTES (string),
+                              !NILP (highest), STRING_MULTIBYTE (string),
+                              Qnil);
 }
 
-/*  Subroutine for Ffind_coding_systems_region_internal.
 
-    Return a list of coding systems that safely encode the multibyte
-    text between P and PEND.  SAFE_CODINGS, if non-nil, is an alist of
-    possible coding systems.  If it is nil, it means that we have not
-    yet found any coding systems.
-
-    WORK_TABLE a char-table of which element is set to t once the
-    element is looked up.
-
-    If a non-ASCII single byte char is found, set
-    *single_byte_char_found to 1.  */
-
-static Lisp_Object
-find_safe_codings (p, pend, safe_codings, work_table, single_byte_char_found)
-     unsigned char *p, *pend;
-     Lisp_Object safe_codings, work_table;
-     int *single_byte_char_found;
+static INLINE int
+char_encodable_p (c, attrs)
+     int c;
+     Lisp_Object attrs;
 {
-  int c, len;
-  Lisp_Object val, ch;
-  Lisp_Object prev, tail;
+  Lisp_Object tail;
+  struct charset *charset;
+  Lisp_Object translation_table;
 
-  if (NILP (safe_codings))
-    goto done_safe_codings;
-  while (p < pend)
+  translation_table = CODING_ATTR_TRANS_TBL (attrs);
+  if (! NILP (translation_table))
+    c = translate_char (translation_table, c);
+  for (tail = CODING_ATTR_CHARSET_LIST (attrs);
+       CONSP (tail); tail = XCDR (tail))
     {
-      c = STRING_CHAR_AND_LENGTH (p, pend - p, len);
-      p += len;
-      if (ASCII_BYTE_P (c))
-       /* We can ignore ASCII characters here.  */
-       continue;
-      if (SINGLE_BYTE_CHAR_P (c))
-       *single_byte_char_found = 1;
-      /* Check the safe coding systems for C.  */
-      ch = make_number (c);
-      val = Faref (work_table, ch);
-      if (EQ (val, Qt))
-       /* This element was already checked.  Ignore it.  */
-       continue;
-      /* Remember that we checked this element.  */
-      Faset (work_table, ch, Qt);
-
-      for (prev = tail = safe_codings; CONSP (tail); tail = XCDR (tail))
-       {
-         Lisp_Object elt, translation_table, hash_table, accept_latin_extra;
-         int encodable;
-
-         elt = XCAR (tail);
-         if (CONSP (XCDR (elt)))
-           {
-             /* This entry has this format now:
-                ( CODING SAFE-CHARS TRANSLATION-TABLE HASH-TABLE
-                         ACCEPT-LATIN-EXTRA ) */
-             val = XCDR (elt);
-             encodable = ! NILP (Faref (XCAR (val), ch));
-             if (! encodable)
-               {
-                 val = XCDR (val);
-                 translation_table = XCAR (val);
-                 hash_table = XCAR (XCDR (val));
-                 accept_latin_extra = XCAR (XCDR (XCDR (val)));
-               }
-           }
-         else
-           {
-             /* This entry has this format now: ( CODING . SAFE-CHARS) */
-             encodable = ! NILP (Faref (XCDR (elt), ch));
-             if (! encodable)
-               {
-                 /* Transform the format to:
-                    ( CODING SAFE-CHARS TRANSLATION-TABLE HASH-TABLE
-                      ACCEPT-LATIN-EXTRA )  */
-                 val = Fget (XCAR (elt), Qcoding_system);
-                 translation_table
-                   = Fplist_get (AREF (val, 3),
-                                 Qtranslation_table_for_encode);
-                 if (SYMBOLP (translation_table))
-                   translation_table = Fget (translation_table,
-                                             Qtranslation_table);
-                 hash_table
-                   = (CHAR_TABLE_P (translation_table)
-                      ? XCHAR_TABLE (translation_table)->extras[1]
-                      : Qnil);
-                 accept_latin_extra
-                   = ((EQ (AREF (val, 0), make_number (2))
-                       && VECTORP (AREF (val, 4)))
-                      ? AREF (AREF (val, 4), 16)
-                      : Qnil);
-                 XSETCAR (tail, list5 (XCAR (elt), XCDR (elt),
-                                       translation_table, hash_table,
-                                       accept_latin_extra));
-               }
-           }
-
-         if (! encodable
-             && ((CHAR_TABLE_P (translation_table)
-                  && ! NILP (Faref (translation_table, ch)))
-                 || (HASH_TABLE_P (hash_table)
-                     && ! NILP (Fgethash (ch, hash_table, Qnil)))
-                 || (SINGLE_BYTE_CHAR_P (c)
-                     && ! NILP (accept_latin_extra)
-                     && VECTORP (Vlatin_extra_code_table)
-                     && ! NILP (AREF (Vlatin_extra_code_table, c)))))
-           encodable = 1;
-         if (encodable)
-           prev = tail;
-         else
-           {
-             /* Exclude this coding system from SAFE_CODINGS.  */
-             if (EQ (tail, safe_codings))
-               {
-                 safe_codings = XCDR (safe_codings);
-                 if (NILP (safe_codings))
-                   goto done_safe_codings;
-               }
-             else
-               XSETCDR (prev, XCDR (tail));
-           }
-       }
+      charset = CHARSET_FROM_ID (XINT (XCAR (tail)));
+      if (CHAR_CHARSET_P (c, charset))
+       break;
     }
-
- done_safe_codings:
-  /* If the above loop was terminated before P reaches PEND, it means
-     SAFE_CODINGS was set to nil.  If we have not yet found an
-     non-ASCII single-byte char, check it now.  */
-  if (! *single_byte_char_found)
-    while (p < pend)
-      {
-       c = STRING_CHAR_AND_LENGTH (p, pend - p, len);
-       p += len;
-       if (! ASCII_BYTE_P (c)
-           && SINGLE_BYTE_CHAR_P (c))
-         {
-           *single_byte_char_found = 1;
-           break;
-         }
-      }
-  return safe_codings;
+  return (! NILP (tail));
 }
 
+
+/* Return a list of coding systems that safely encode the text between
+   START and END.  If EXCLUDE is non-nil, it is a list of coding
+   systems not to check.  The returned list doesn't contain any such
+   coding systems.  In any case, if the text contains only ASCII or is
+   unibyte, return t.  */
+
 DEFUN ("find-coding-systems-region-internal",
        Ffind_coding_systems_region_internal,
-       Sfind_coding_systems_region_internal, 2, 2, 0,
+       Sfind_coding_systems_region_internal, 2, 3, 0,
        doc: /* Internal use only.  */)
-     (start, end)
-     Lisp_Object start, end;
+     (start, end, exclude)
+     Lisp_Object start, end, exclude;
 {
-  Lisp_Object work_table, safe_codings;
-  int non_ascii_p = 0;
-  int single_byte_char_found = 0;
-  const unsigned char *p1, *p1end, *p2, *p2end, *p;
+  Lisp_Object coding_attrs_list, safe_codings;
+  EMACS_INT start_byte, end_byte;
+  const unsigned char *p, *pbeg, *pend;
+  int c;
+  Lisp_Object tail, elt;
 
   if (STRINGP (start))
     {
-      if (!STRING_MULTIBYTE (start))
+      if (!STRING_MULTIBYTE (start)
+         || SCHARS (start) == SBYTES (start))
        return Qt;
-      p1 = SDATA (start), p1end = p1 + SBYTES (start);
-      p2 = p2end = p1end;
-      if (SCHARS (start) != SBYTES (start))
-       non_ascii_p = 1;
+      start_byte = 0;
+      end_byte = SBYTES (start);
     }
   else
     {
-      int from, to, stop;
-
       CHECK_NUMBER_COERCE_MARKER (start);
       CHECK_NUMBER_COERCE_MARKER (end);
       if (XINT (start) < BEG || XINT (end) > Z || XINT (start) > XINT (end))
        args_out_of_range (start, end);
       if (NILP (current_buffer->enable_multibyte_characters))
        return Qt;
-      from = CHAR_TO_BYTE (XINT (start));
-      to = CHAR_TO_BYTE (XINT (end));
-      stop = from < GPT_BYTE && GPT_BYTE < to ? GPT_BYTE : to;
-      p1 = BYTE_POS_ADDR (from), p1end = p1 + (stop - from);
-      if (stop == to)
-       p2 = p2end = p1end;
-      else
-       p2 = BYTE_POS_ADDR (stop), p2end = p2 + (to - stop);
-      if (XINT (end) - XINT (start) != to - from)
-       non_ascii_p = 1;
-    }
+      start_byte = CHAR_TO_BYTE (XINT (start));
+      end_byte = CHAR_TO_BYTE (XINT (end));
+      if (XINT (end) - XINT (start) == end_byte - start_byte)
+       return Qt;
 
-  if (!non_ascii_p)
-    {
-      /* We are sure that the text contains no multibyte character.
-        Check if it contains eight-bit-graphic.  */
-      p = p1;
-      for (p = p1; p < p1end && ASCII_BYTE_P (*p); p++);
-      if (p == p1end)
+      if (XINT (start) < GPT && XINT (end) > GPT)
        {
-         for (p = p2; p < p2end && ASCII_BYTE_P (*p); p++);
-         if (p == p2end)
-           return Qt;
+         if ((GPT - XINT (start)) < (XINT (end) - GPT))
+           move_gap_both (XINT (start), start_byte);
+         else
+           move_gap_both (XINT (end), end_byte);
        }
     }
 
-  /* The text contains non-ASCII characters.  */
+  coding_attrs_list = Qnil;
+  for (tail = Vcoding_system_list; CONSP (tail); tail = XCDR (tail))
+    if (NILP (exclude)
+       || NILP (Fmemq (XCAR (tail), exclude)))
+      {
+       Lisp_Object attrs;
 
-  work_table = Fmake_char_table (Qchar_coding_system, Qnil);
-  safe_codings = Fcopy_sequence (XCDR (Vcoding_system_safe_chars));
+       attrs = AREF (CODING_SYSTEM_SPEC (XCAR (tail)), 0);
+       if (EQ (XCAR (tail), CODING_ATTR_BASE_NAME (attrs))
+           && ! EQ (CODING_ATTR_TYPE (attrs), Qundecided))
+         {
+           ASET (attrs, coding_attr_trans_tbl,
+                 get_translation_table (attrs, 1, NULL));
+           coding_attrs_list = Fcons (attrs, coding_attrs_list);
+         }
+      }
 
-  safe_codings = find_safe_codings (p1, p1end, safe_codings, work_table,
-                                   &single_byte_char_found);
-  if (p2 < p2end)
-    safe_codings = find_safe_codings (p2, p2end, safe_codings, work_table,
-                                     &single_byte_char_found);
-  if (EQ (safe_codings, XCDR (Vcoding_system_safe_chars)))
-    safe_codings = Qt;
+  if (STRINGP (start))
+    p = pbeg = SDATA (start);
   else
-    {
-      /* Turn safe_codings to a list of coding systems... */
-      Lisp_Object val;
-
-      if (single_byte_char_found)
-       /* ... and append these for eight-bit chars.  */
-       val = Fcons (Qraw_text,
-                    Fcons (Qemacs_mule, Fcons (Qno_conversion, Qnil)));
-      else
-       /* ... and append generic coding systems.  */
-       val = Fcopy_sequence (XCAR (Vcoding_system_safe_chars));
-
-      for (; CONSP (safe_codings); safe_codings = XCDR (safe_codings))
-       val = Fcons (XCAR (XCAR (safe_codings)), val);
-      safe_codings = val;
-    }
-
-  return safe_codings;
-}
-
-
-/* Search from position POS for such characters that are unencodable
-   accoding to SAFE_CHARS, and return a list of their positions.  P
-   points where in the memory the character at POS exists.  Limit the
-   search at PEND or when Nth unencodable characters are found.
-
-   If SAFE_CHARS is a char table, an element for an unencodable
-   character is nil.
-
-   If SAFE_CHARS is nil, all non-ASCII characters are unencodable.
+    p = pbeg = BYTE_POS_ADDR (start_byte);
+  pend = p + (end_byte - start_byte);
 
-   Otherwise, SAFE_CHARS is t, and only eight-bit-contrl and
-   eight-bit-graphic characters are unencodable.  */
+  while (p < pend && ASCII_BYTE_P (*p)) p++;
+  while (p < pend && ASCII_BYTE_P (*(pend - 1))) pend--;
 
-static Lisp_Object
-unencodable_char_position (safe_chars, pos, p, pend, n)
-     Lisp_Object safe_chars;
-     int pos;
-     unsigned char *p, *pend;
-     int n;
-{
-  Lisp_Object pos_list;
-
-  pos_list = Qnil;
   while (p < pend)
     {
-      int len;
-      int c = STRING_CHAR_AND_LENGTH (p, MAX_MULTIBYTE_LENGTH, len);
-
-      if (c >= 128
-         && (CHAR_TABLE_P (safe_chars)
-             ? NILP (CHAR_TABLE_REF (safe_chars, c))
-             : (NILP (safe_chars) || c < 256)))
+      if (ASCII_BYTE_P (*p))
+       p++;
+      else
        {
-         pos_list = Fcons (make_number (pos), pos_list);
-         if (--n <= 0)
-           break;
+         c = STRING_CHAR_ADVANCE (p);
+
+         charset_map_loaded = 0;
+         for (tail = coding_attrs_list; CONSP (tail);)
+           {
+             elt = XCAR (tail);
+             if (NILP (elt))
+               tail = XCDR (tail);
+             else if (char_encodable_p (c, elt))
+               tail = XCDR (tail);
+             else if (CONSP (XCDR (tail)))
+               {
+                 XSETCAR (tail, XCAR (XCDR (tail)));
+                 XSETCDR (tail, XCDR (XCDR (tail)));
+               }
+             else
+               {
+                 XSETCAR (tail, Qnil);
+                 tail = XCDR (tail);
+               }
+           }
+         if (charset_map_loaded)
+           {
+             EMACS_INT p_offset = p - pbeg, pend_offset = pend - pbeg;
+
+             if (STRINGP (start))
+               pbeg = SDATA (start);
+             else
+               pbeg = BYTE_POS_ADDR (start_byte);
+             p = pbeg + p_offset;
+             pend = pbeg + pend_offset;
+           }
        }
-      pos++;
-      p += len;
     }
-  return Fnreverse (pos_list);
+
+  safe_codings = list2 (Qraw_text, Qno_conversion);
+  for (tail = coding_attrs_list; CONSP (tail); tail = XCDR (tail))
+    if (! NILP (XCAR (tail)))
+      safe_codings = Fcons (CODING_ATTR_BASE_NAME (XCAR (tail)), safe_codings);
+
+  return safe_codings;
 }
 
 
@@ -7032,24 +7742,36 @@ to the string.  */)
      Lisp_Object start, end, coding_system, count, string;
 {
   int n;
-  Lisp_Object safe_chars;
   struct coding_system coding;
+  Lisp_Object attrs, charset_list, translation_table;
   Lisp_Object positions;
   int from, to;
-  unsigned char *p, *pend;
+  const unsigned char *p, *stop, *pend;
+  int ascii_compatible;
+
+  setup_coding_system (Fcheck_coding_system (coding_system), &coding);
+  attrs = CODING_ID_ATTRS (coding.id);
+  if (EQ (CODING_ATTR_TYPE (attrs), Qraw_text))
+    return Qnil;
+  ascii_compatible = ! NILP (CODING_ATTR_ASCII_COMPAT (attrs));
+  charset_list = CODING_ATTR_CHARSET_LIST (attrs);
+  translation_table = get_translation_table (attrs, 1, NULL);
 
   if (NILP (string))
     {
       validate_region (&start, &end);
       from = XINT (start);
       to = XINT (end);
-      if (NILP (current_buffer->enable_multibyte_characters))
+      if (NILP (current_buffer->enable_multibyte_characters)
+         || (ascii_compatible
+             && (to - from) == (CHAR_TO_BYTE (to) - (CHAR_TO_BYTE (from)))))
        return Qnil;
       p = CHAR_POS_ADDR (from);
-      if (to == GPT)
-       pend = GPT_ADDR;
+      pend = CHAR_POS_ADDR (to);
+      if (from < GPT && to >= GPT)
+       stop = GPT_ADDR;
       else
-       pend = CHAR_POS_ADDR (to);
+       stop = pend;
     }
   else
     {
@@ -7064,11 +7786,11 @@ to the string.  */)
       if (! STRING_MULTIBYTE (string))
        return Qnil;
       p = SDATA (string) + string_char_to_byte (string, from);
-      pend = SDATA (string) + string_char_to_byte (string, to);
+      stop = pend = SDATA (string) + string_char_to_byte (string, to);
+      if (ascii_compatible && (to - from) == (pend - p))
+       return Qnil;
     }
 
-  setup_coding_system (Fcheck_coding_system (coding_system), &coding);
-
   if (NILP (count))
     n = 1;
   else
@@ -7077,151 +7799,294 @@ to the string.  */)
       n = XINT (count);
     }
 
-  if (coding.type == coding_type_no_conversion
-      || coding.type == coding_type_raw_text)
-    return Qnil;
+  positions = Qnil;
+  while (1)
+    {
+      int c;
 
-  if (coding.type == coding_type_undecided)
-    safe_chars = Qnil;
-  else
-    safe_chars = coding_safe_chars (coding_system);
+      if (ascii_compatible)
+       while (p < stop && ASCII_BYTE_P (*p))
+         p++, from++;
+      if (p >= stop)
+       {
+         if (p >= pend)
+           break;
+         stop = pend;
+         p = GAP_END_ADDR;
+       }
+
+      c = STRING_CHAR_ADVANCE (p);
+      if (! (ASCII_CHAR_P (c) && ascii_compatible)
+         && ! char_charset (translate_char (translation_table, c),
+                            charset_list, NULL))
+       {
+         positions = Fcons (make_number (from), positions);
+         n--;
+         if (n == 0)
+           break;
+       }
+
+      from++;
+    }
+
+  return (NILP (count) ? Fcar (positions) : Fnreverse (positions));
+}
+
+
+DEFUN ("check-coding-systems-region", Fcheck_coding_systems_region,
+       Scheck_coding_systems_region, 3, 3, 0,
+       doc: /* Check if the region is encodable by coding systems.
 
-  if (STRINGP (string)
-      || from >= GPT || to <= GPT)
-    positions = unencodable_char_position (safe_chars, from, p, pend, n);
+START and END are buffer positions specifying the region.
+CODING-SYSTEM-LIST is a list of coding systems to check.
+
+The value is an alist ((CODING-SYSTEM POS0 POS1 ...) ...), where
+CODING-SYSTEM is a member of CODING-SYSTEM-LIst and can't encode the
+whole region, POS0, POS1, ... are buffer positions where non-encodable
+characters are found.
+
+If all coding systems in CODING-SYSTEM-LIST can encode the region, the
+value is nil.
+
+START may be a string.  In that case, check if the string is
+encodable, and the value contains indices to the string instead of
+buffer positions.  END is ignored.  */)
+     (start, end, coding_system_list)
+     Lisp_Object start, end, coding_system_list;
+{
+  Lisp_Object list;
+  EMACS_INT start_byte, end_byte;
+  int pos;
+  const unsigned char *p, *pbeg, *pend;
+  int c;
+  Lisp_Object tail, elt, attrs;
+
+  if (STRINGP (start))
+    {
+      if (!STRING_MULTIBYTE (start)
+         && SCHARS (start) != SBYTES (start))
+       return Qnil;
+      start_byte = 0;
+      end_byte = SBYTES (start);
+      pos = 0;
+    }
   else
     {
-      Lisp_Object args[2];
+      CHECK_NUMBER_COERCE_MARKER (start);
+      CHECK_NUMBER_COERCE_MARKER (end);
+      if (XINT (start) < BEG || XINT (end) > Z || XINT (start) > XINT (end))
+       args_out_of_range (start, end);
+      if (NILP (current_buffer->enable_multibyte_characters))
+       return Qnil;
+      start_byte = CHAR_TO_BYTE (XINT (start));
+      end_byte = CHAR_TO_BYTE (XINT (end));
+      if (XINT (end) - XINT (start) == end_byte - start_byte)
+       return Qt;
+
+      if (XINT (start) < GPT && XINT (end) > GPT)
+       {
+         if ((GPT - XINT (start)) < (XINT (end) - GPT))
+           move_gap_both (XINT (start), start_byte);
+         else
+           move_gap_both (XINT (end), end_byte);
+       }
+      pos = XINT (start);
+    }
+
+  list = Qnil;
+  for (tail = coding_system_list; CONSP (tail); tail = XCDR (tail))
+    {
+      elt = XCAR (tail);
+      attrs = AREF (CODING_SYSTEM_SPEC (elt), 0);
+      ASET (attrs, coding_attr_trans_tbl,
+           get_translation_table (attrs, 1, NULL));
+      list = Fcons (Fcons (elt, Fcons (attrs, Qnil)), list);
+    }
+
+  if (STRINGP (start))
+    p = pbeg = SDATA (start);
+  else
+    p = pbeg = BYTE_POS_ADDR (start_byte);
+  pend = p + (end_byte - start_byte);
 
-      args[0] = unencodable_char_position (safe_chars, from, p, GPT_ADDR, n);
-      n -= XINT (Flength (args[0]));
-      if (n <= 0)
-       positions = args[0];
+  while (p < pend && ASCII_BYTE_P (*p)) p++, pos++;
+  while (p < pend && ASCII_BYTE_P (*(pend - 1))) pend--;
+
+  while (p < pend)
+    {
+      if (ASCII_BYTE_P (*p))
+       p++;
       else
        {
-         args[1] = unencodable_char_position (safe_chars, GPT, GAP_END_ADDR,
-                                              pend, n);
-         positions = Fappend (2, args);
+         c = STRING_CHAR_ADVANCE (p);
+
+         charset_map_loaded = 0;
+         for (tail = list; CONSP (tail); tail = XCDR (tail))
+           {
+             elt = XCDR (XCAR (tail));
+             if (! char_encodable_p (c, XCAR (elt)))
+               XSETCDR (elt, Fcons (make_number (pos), XCDR (elt)));
+           }
+         if (charset_map_loaded)
+           {
+             EMACS_INT p_offset = p - pbeg, pend_offset = pend - pbeg;
+
+             if (STRINGP (start))
+               pbeg = SDATA (start);
+             else
+               pbeg = BYTE_POS_ADDR (start_byte);
+             p = pbeg + p_offset;
+             pend = pbeg + pend_offset;
+           }
        }
+      pos++;
+    }
+
+  tail = list;
+  list = Qnil;
+  for (; CONSP (tail); tail = XCDR (tail))
+    {
+      elt = XCAR (tail);
+      if (CONSP (XCDR (XCDR (elt))))
+       list = Fcons (Fcons (XCAR (elt), Fnreverse (XCDR (XCDR (elt)))),
+                     list);
     }
 
-  return  (NILP (count) ? Fcar (positions) : positions);
+  return list;
 }
 
 
 Lisp_Object
-code_convert_region1 (start, end, coding_system, encodep)
-     Lisp_Object start, end, coding_system;
-     int encodep;
+code_convert_region (start, end, coding_system, dst_object, encodep, norecord)
+     Lisp_Object start, end, coding_system, dst_object;
+     int encodep, norecord;
 {
   struct coding_system coding;
-  int from, to;
+  EMACS_INT from, from_byte, to, to_byte;
+  Lisp_Object src_object;
 
   CHECK_NUMBER_COERCE_MARKER (start);
   CHECK_NUMBER_COERCE_MARKER (end);
-  CHECK_SYMBOL (coding_system);
+  if (NILP (coding_system))
+    coding_system = Qno_conversion;
+  else
+    CHECK_CODING_SYSTEM (coding_system);
+  src_object = Fcurrent_buffer ();
+  if (NILP (dst_object))
+    dst_object = src_object;
+  else if (! EQ (dst_object, Qt))
+    CHECK_BUFFER (dst_object);
 
   validate_region (&start, &end);
   from = XFASTINT (start);
+  from_byte = CHAR_TO_BYTE (from);
   to = XFASTINT (end);
+  to_byte = CHAR_TO_BYTE (to);
 
-  if (NILP (coding_system))
-    return make_number (to - from);
-
-  if (setup_coding_system (Fcheck_coding_system (coding_system), &coding) < 0)
-    error ("Invalid coding system: %s", SDATA (SYMBOL_NAME (coding_system)));
-
+  setup_coding_system (coding_system, &coding);
   coding.mode |= CODING_MODE_LAST_BLOCK;
-  coding.src_multibyte = coding.dst_multibyte
-    = !NILP (current_buffer->enable_multibyte_characters);
-  code_convert_region (from, CHAR_TO_BYTE (from), to, CHAR_TO_BYTE (to),
-                      &coding, encodep, 1);
-  Vlast_coding_system_used = coding.symbol;
-  return make_number (coding.produced_char);
+
+  if (encodep)
+    encode_coding_object (&coding, src_object, from, from_byte, to, to_byte,
+                         dst_object);
+  else
+    decode_coding_object (&coding, src_object, from, from_byte, to, to_byte,
+                         dst_object);
+  if (! norecord)
+    Vlast_coding_system_used = CODING_ID_NAME (coding.id);
+
+  return (BUFFERP (dst_object)
+         ? make_number (coding.produced_char)
+         : coding.dst_object);
 }
 
+
 DEFUN ("decode-coding-region", Fdecode_coding_region, Sdecode_coding_region,
-       3, 3, "r\nzCoding system: ",
+       3, 4, "r\nzCoding system: ",
        doc: /* Decode the current region from the specified coding system.
-When called from a program, takes three arguments:
-START, END, and CODING-SYSTEM.  START and END are buffer positions.
+When called from a program, takes four arguments:
+       START, END, CODING-SYSTEM, and DESTINATION.
+START and END are buffer positions.
+
+Optional 4th arguments DESTINATION specifies where the decoded text goes.
+If nil, the region between START and END is replaced by the decoded text.
+If buffer, the decoded text is inserted in the buffer.
+If t, the decoded text is returned.
+
 This function sets `last-coding-system-used' to the precise coding system
 used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
 not fully specified.)
 It returns the length of the decoded text.  */)
-     (start, end, coding_system)
-     Lisp_Object start, end, coding_system;
+     (start, end, coding_system, destination)
+     Lisp_Object start, end, coding_system, destination;
 {
-  return code_convert_region1 (start, end, coding_system, 0);
+  return code_convert_region (start, end, coding_system, destination, 0, 0);
 }
 
 DEFUN ("encode-coding-region", Fencode_coding_region, Sencode_coding_region,
-       3, 3, "r\nzCoding system: ",
-       doc: /* Encode the current region into the specified coding system.
+       3, 4, "r\nzCoding system: ",
+       doc: /* Encode the current region by specified coding system.
 When called from a program, takes three arguments:
 START, END, and CODING-SYSTEM.  START and END are buffer positions.
+
+Optional 4th arguments DESTINATION specifies where the encoded text goes.
+If nil, the region between START and END is replace by the encoded text.
+If buffer, the encoded text is inserted in the buffer.
+If t, the encoded text is returned.
+
 This function sets `last-coding-system-used' to the precise coding system
 used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
 not fully specified.)
 It returns the length of the encoded text.  */)
-     (start, end, coding_system)
-     Lisp_Object start, end, coding_system;
+  (start, end, coding_system, destination)
+     Lisp_Object start, end, coding_system, destination;
 {
-  return code_convert_region1 (start, end, coding_system, 1);
+  return code_convert_region (start, end, coding_system, destination, 1, 0);
 }
 
 Lisp_Object
-code_convert_string1 (string, coding_system, nocopy, encodep)
-     Lisp_Object string, coding_system, nocopy;
-     int encodep;
+code_convert_string (string, coding_system, dst_object,
+                    encodep, nocopy, norecord)
+     Lisp_Object string, coding_system, dst_object;
+     int encodep, nocopy, norecord;
 {
   struct coding_system coding;
+  EMACS_INT chars, bytes;
 
   CHECK_STRING (string);
-  CHECK_SYMBOL (coding_system);
-
   if (NILP (coding_system))
-    return (NILP (nocopy) ? Fcopy_sequence (string) : string);
+    {
+      if (! norecord)
+       Vlast_coding_system_used = Qno_conversion;
+      if (NILP (dst_object))
+       return (nocopy ? Fcopy_sequence (string) : string);
+    }
 
-  if (setup_coding_system (Fcheck_coding_system (coding_system), &coding) < 0)
-    error ("Invalid coding system: %s", SDATA (SYMBOL_NAME (coding_system)));
+  if (NILP (coding_system))
+    coding_system = Qno_conversion;
+  else
+    CHECK_CODING_SYSTEM (coding_system);
+  if (NILP (dst_object))
+    dst_object = Qt;
+  else if (! EQ (dst_object, Qt))
+    CHECK_BUFFER (dst_object);
 
+  setup_coding_system (coding_system, &coding);
   coding.mode |= CODING_MODE_LAST_BLOCK;
-  string = (encodep
-           ? encode_coding_string (string, &coding, !NILP (nocopy))
-           : decode_coding_string (string, &coding, !NILP (nocopy)));
-  Vlast_coding_system_used = coding.symbol;
-
-  return string;
-}
+  chars = SCHARS (string);
+  bytes = SBYTES (string);
+  if (encodep)
+    encode_coding_object (&coding, string, 0, 0, chars, bytes, dst_object);
+  else
+    decode_coding_object (&coding, string, 0, 0, chars, bytes, dst_object);
+  if (! norecord)
+    Vlast_coding_system_used = CODING_ID_NAME (coding.id);
 
-DEFUN ("decode-coding-string", Fdecode_coding_string, Sdecode_coding_string,
-       2, 3, 0,
-       doc: /* Decode STRING which is encoded in CODING-SYSTEM, and return the result.
-Optional arg NOCOPY non-nil means it is OK to return STRING itself
-if the decoding operation is trivial.
-This function sets `last-coding-system-used' to the precise coding system
-used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
-not fully specified.)  */)
-     (string, coding_system, nocopy)
-     Lisp_Object string, coding_system, nocopy;
-{
-  return code_convert_string1 (string, coding_system, nocopy, 0);
+  return (BUFFERP (dst_object)
+         ? make_number (coding.produced_char)
+         : coding.dst_object);
 }
 
-DEFUN ("encode-coding-string", Fencode_coding_string, Sencode_coding_string,
-       2, 3, 0,
-       doc: /* Encode STRING to CODING-SYSTEM, and return the result.
-Optional arg NOCOPY non-nil means it is OK to return STRING itself
-if the encoding operation is trivial.
-This function sets `last-coding-system-used' to the precise coding system
-used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
-not fully specified.)  */)
-     (string, coding_system, nocopy)
-     Lisp_Object string, coding_system, nocopy;
-{
-  return code_convert_string1 (string, coding_system, nocopy, 1);
-}
 
 /* Encode or decode STRING according to CODING_SYSTEM.
    Do not set Vlast_coding_system_used.
@@ -7234,23 +8099,52 @@ code_convert_string_norecord (string, coding_system, encodep)
      Lisp_Object string, coding_system;
      int encodep;
 {
-  struct coding_system coding;
+  return code_convert_string (string, coding_system, Qt, encodep, 0, 1);
+}
 
-  CHECK_STRING (string);
-  CHECK_SYMBOL (coding_system);
 
-  if (NILP (coding_system))
-    return string;
+DEFUN ("decode-coding-string", Fdecode_coding_string, Sdecode_coding_string,
+       2, 4, 0,
+       doc: /* Decode STRING which is encoded in CODING-SYSTEM, and return the result.
+
+Optional third arg NOCOPY non-nil means it is OK to return STRING itself
+if the decoding operation is trivial.
+
+Optional fourth arg BUFFER non-nil meant that the decoded text is
+inserted in BUFFER instead of returned as a string.  In this case,
+the return value is BUFFER.
+
+This function sets `last-coding-system-used' to the precise coding system
+used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
+not fully specified.  */)
+  (string, coding_system, nocopy, buffer)
+     Lisp_Object string, coding_system, nocopy, buffer;
+{
+  return code_convert_string (string, coding_system, buffer,
+                             0, ! NILP (nocopy), 0);
+}
+
+DEFUN ("encode-coding-string", Fencode_coding_string, Sencode_coding_string,
+       2, 4, 0,
+       doc: /* Encode STRING to CODING-SYSTEM, and return the result.
 
-  if (setup_coding_system (Fcheck_coding_system (coding_system), &coding) < 0)
-    error ("Invalid coding system: %s", SDATA (SYMBOL_NAME (coding_system)));
+Optional third arg NOCOPY non-nil means it is OK to return STRING
+itself if the encoding operation is trivial.
 
-  coding.composing = COMPOSITION_DISABLED;
-  coding.mode |= CODING_MODE_LAST_BLOCK;
-  return (encodep
-         ? encode_coding_string (string, &coding, 1)
-         : decode_coding_string (string, &coding, 1));
+Optional fourth arg BUFFER non-nil meant that the encoded text is
+inserted in BUFFER instead of returned as a string.  In this case,
+the return value is BUFFER.
+
+This function sets `last-coding-system-used' to the precise coding system
+used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
+not fully specified.)  */)
+     (string, coding_system, nocopy, buffer)
+     Lisp_Object string, coding_system, nocopy, buffer;
+{
+  return code_convert_string (string, coding_system, buffer,
+                             1, ! NILP (nocopy), 1);
 }
+
 \f
 DEFUN ("decode-sjis-char", Fdecode_sjis_char, Sdecode_sjis_char, 1, 1, 0,
        doc: /* Decode a Japanese character which has CODE in shift_jis encoding.
@@ -7258,60 +8152,75 @@ Return the corresponding character.  */)
      (code)
      Lisp_Object code;
 {
-  unsigned char c1, c2, s1, s2;
-  Lisp_Object val;
+  Lisp_Object spec, attrs, val;
+  struct charset *charset_roman, *charset_kanji, *charset_kana, *charset;
+  int c;
 
-  CHECK_NUMBER (code);
-  s1 = (XFASTINT (code)) >> 8, s2 = (XFASTINT (code)) & 0xFF;
-  if (s1 == 0)
+  CHECK_NATNUM (code);
+  c = XFASTINT (code);
+  CHECK_CODING_SYSTEM_GET_SPEC (Vsjis_coding_system, spec);
+  attrs = AREF (spec, 0);
+
+  if (ASCII_BYTE_P (c)
+      && ! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
+    return code;
+
+  val = CODING_ATTR_CHARSET_LIST (attrs);
+  charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_kana = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_kanji = CHARSET_FROM_ID (XINT (XCAR (val)));
+
+  if (c <= 0x7F)
+    charset = charset_roman;
+  else if (c >= 0xA0 && c < 0xDF)
     {
-      if (s2 < 0x80)
-       XSETFASTINT (val, s2);
-      else if (s2 >= 0xA0 || s2 <= 0xDF)
-       XSETFASTINT (val, MAKE_CHAR (charset_katakana_jisx0201, s2, 0));
-      else
-       error ("Invalid Shift JIS code: %x", XFASTINT (code));
+      charset = charset_kana;
+      c -= 0x80;
     }
   else
     {
-      if ((s1 < 0x80 || (s1 > 0x9F && s1 < 0xE0) || s1 > 0xEF)
-         || (s2 < 0x40 || s2 == 0x7F || s2 > 0xFC))
-       error ("Invalid Shift JIS code: %x", XFASTINT (code));
-      DECODE_SJIS (s1, s2, c1, c2);
-      XSETFASTINT (val, MAKE_CHAR (charset_jisx0208, c1, c2));
+      int s1 = c >> 8, s2 = c & 0xFF;
+
+      if (s1 < 0x81 || (s1 > 0x9F && s1 < 0xE0) || s1 > 0xEF
+         || s2 < 0x40 || s2 == 0x7F || s2 > 0xFC)
+       error ("Invalid code: %d", code);
+      SJIS_TO_JIS (c);
+      charset = charset_kanji;
     }
-  return val;
+  c = DECODE_CHAR (charset, c);
+  if (c < 0)
+    error ("Invalid code: %d", code);
+  return make_number (c);
 }
 
+
 DEFUN ("encode-sjis-char", Fencode_sjis_char, Sencode_sjis_char, 1, 1, 0,
        doc: /* Encode a Japanese character CH to shift_jis encoding.
 Return the corresponding code in SJIS.  */)
      (ch)
-     Lisp_Object ch;
+    Lisp_Object ch;
 {
-  int charset, c1, c2, s1, s2;
-  Lisp_Object val;
+  Lisp_Object spec, attrs, charset_list;
+  int c;
+  struct charset *charset;
+  unsigned code;
 
-  CHECK_NUMBER (ch);
-  SPLIT_CHAR (XFASTINT (ch), charset, c1, c2);
-  if (charset == CHARSET_ASCII)
-    {
-      val = ch;
-    }
-  else if (charset == charset_jisx0208
-          && c1 > 0x20 && c1 < 0x7F && c2 > 0x20 && c2 < 0x7F)
-    {
-      ENCODE_SJIS (c1, c2, s1, s2);
-      XSETFASTINT (val, (s1 << 8) | s2);
-    }
-  else if (charset == charset_katakana_jisx0201
-          && c1 > 0x20 && c2 < 0xE0)
-    {
-      XSETFASTINT (val, c1 | 0x80);
-    }
-  else
-    error ("Can't encode to shift_jis: %d", XFASTINT (ch));
-  return val;
+  CHECK_CHARACTER (ch);
+  c = XFASTINT (ch);
+  CHECK_CODING_SYSTEM_GET_SPEC (Vsjis_coding_system, spec);
+  attrs = AREF (spec, 0);
+
+  if (ASCII_CHAR_P (c)
+      && ! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
+    return ch;
+
+  charset_list = CODING_ATTR_CHARSET_LIST (attrs);
+  charset = char_charset (c, charset_list, &code);
+  if (code == CHARSET_INVALID_CODE (charset))
+    error ("Can't encode by shift_jis encoding: %d", c);
+  JIS_TO_SJIS (code);
+
+  return make_number (code);
 }
 
 DEFUN ("decode-big5-char", Fdecode_big5_char, Sdecode_big5_char, 1, 1, 0,
@@ -7320,27 +8229,37 @@ Return the corresponding character.  */)
      (code)
      Lisp_Object code;
 {
-  int charset;
-  unsigned char b1, b2, c1, c2;
-  Lisp_Object val;
+  Lisp_Object spec, attrs, val;
+  struct charset *charset_roman, *charset_big5, *charset;
+  int c;
 
-  CHECK_NUMBER (code);
-  b1 = (XFASTINT (code)) >> 8, b2 = (XFASTINT (code)) & 0xFF;
-  if (b1 == 0)
-    {
-      if (b2 >= 0x80)
-       error ("Invalid BIG5 code: %x", XFASTINT (code));
-      val = code;
-    }
+  CHECK_NATNUM (code);
+  c = XFASTINT (code);
+  CHECK_CODING_SYSTEM_GET_SPEC (Vbig5_coding_system, spec);
+  attrs = AREF (spec, 0);
+
+  if (ASCII_BYTE_P (c)
+      && ! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
+    return code;
+
+  val = CODING_ATTR_CHARSET_LIST (attrs);
+  charset_roman = CHARSET_FROM_ID (XINT (XCAR (val))), val = XCDR (val);
+  charset_big5 = CHARSET_FROM_ID (XINT (XCAR (val)));
+
+  if (c <= 0x7F)
+    charset = charset_roman;
   else
     {
-      if ((b1 < 0xA1 || b1 > 0xFE)
-         || (b2 < 0x40 || (b2 > 0x7E && b2 < 0xA1) || b2 > 0xFE))
-       error ("Invalid BIG5 code: %x", XFASTINT (code));
-      DECODE_BIG5 (b1, b2, charset, c1, c2);
-      XSETFASTINT (val, MAKE_CHAR (charset, c1, c2));
+      int b1 = c >> 8, b2 = c & 0x7F;
+      if (b1 < 0xA1 || b1 > 0xFE
+         || b2 < 0x40 || (b2 > 0x7E && b2 < 0xA1) || b2 > 0xFE)
+       error ("Invalid code: %d", code);
+      charset = charset_big5;
     }
-  return val;
+  c = DECODE_CHAR (charset, (unsigned )c);
+  if (c < 0)
+    error ("Invalid code: %d", code);
+  return make_number (c);
 }
 
 DEFUN ("encode-big5-char", Fencode_big5_char, Sencode_big5_char, 1, 1, 0,
@@ -7349,27 +8268,27 @@ Return the corresponding character code in Big5.  */)
      (ch)
      Lisp_Object ch;
 {
-  int charset, c1, c2, b1, b2;
-  Lisp_Object val;
-
-  CHECK_NUMBER (ch);
-  SPLIT_CHAR (XFASTINT (ch), charset, c1, c2);
-  if (charset == CHARSET_ASCII)
-    {
-      val = ch;
-    }
-  else if ((charset == charset_big5_1
-           && (XFASTINT (ch) >= 0x250a1 && XFASTINT (ch) <= 0x271ec))
-          || (charset == charset_big5_2
-              && XFASTINT (ch) >= 0x290a1 && XFASTINT (ch) <= 0x2bdb2))
-    {
-      ENCODE_BIG5 (charset, c1, c2, b1, b2);
-      XSETFASTINT (val, (b1 << 8) | b2);
-    }
-  else
-    error ("Can't encode to Big5: %d", XFASTINT (ch));
-  return val;
+  Lisp_Object spec, attrs, charset_list;
+  struct charset *charset;
+  int c;
+  unsigned code;
+
+  CHECK_CHARACTER (ch);
+  c = XFASTINT (ch);
+  CHECK_CODING_SYSTEM_GET_SPEC (Vbig5_coding_system, spec);
+  attrs = AREF (spec, 0);
+  if (ASCII_CHAR_P (c)
+      && ! NILP (CODING_ATTR_ASCII_COMPAT (attrs)))
+    return ch;
+
+  charset_list = CODING_ATTR_CHARSET_LIST (attrs);
+  charset = char_charset (c, charset_list, &code);
+  if (code == CHARSET_INVALID_CODE (charset))
+    error ("Can't encode by Big5 encoding: %d", c);
+
+  return make_number (code);
 }
+
 \f
 DEFUN ("set-terminal-coding-system-internal", Fset_terminal_coding_system_internal,
        Sset_terminal_coding_system_internal, 1, 2, 0,
@@ -7382,17 +8301,16 @@ DEFUN ("set-terminal-coding-system-internal", Fset_terminal_coding_system_intern
   CHECK_SYMBOL (coding_system);
   setup_coding_system (Fcheck_coding_system (coding_system), terminal_coding);
   /* We had better not send unsafe characters to terminal.  */
-  terminal_coding->mode |= CODING_MODE_INHIBIT_UNENCODABLE_CHAR;
-  /* Character composition should be disabled.  */
-  terminal_coding->composing = COMPOSITION_DISABLED;
-  /* Error notification should be suppressed.  */
-  terminal_coding->suppress_error = 1;
+  terminal_coding->mode |= CODING_MODE_SAFE_ENCODING;
+  /* Characer composition should be disabled.  */
+  terminal_coding->common_flags &= ~CODING_ANNOTATE_COMPOSITION_MASK;
   terminal_coding->src_multibyte = 1;
   terminal_coding->dst_multibyte = 0;
   return Qnil;
 }
 
-DEFUN ("set-safe-terminal-coding-system-internal", Fset_safe_terminal_coding_system_internal,
+DEFUN ("set-safe-terminal-coding-system-internal",
+       Fset_safe_terminal_coding_system_internal,
        Sset_safe_terminal_coding_system_internal, 1, 1, 0,
        doc: /* Internal use only.  */)
      (coding_system)
@@ -7401,10 +8319,8 @@ DEFUN ("set-safe-terminal-coding-system-internal", Fset_safe_terminal_coding_sys
   CHECK_SYMBOL (coding_system);
   setup_coding_system (Fcheck_coding_system (coding_system),
                       &safe_terminal_coding);
-  /* Character composition should be disabled.  */
-  safe_terminal_coding.composing = COMPOSITION_DISABLED;
-  /* Error notification should be suppressed.  */
-  safe_terminal_coding.suppress_error = 1;
+  /* Characer composition should be disabled.  */
+  safe_terminal_coding.common_flags &= ~CODING_ANNOTATE_COMPOSITION_MASK;
   safe_terminal_coding.src_multibyte = 1;
   safe_terminal_coding.dst_multibyte = 0;
   return Qnil;
@@ -7418,7 +8334,12 @@ frame's terminal device.  */)
      (terminal)
      Lisp_Object terminal;
 {
-  return TERMINAL_TERMINAL_CODING (get_terminal (terminal, 1))->symbol;
+  struct coding_system *terminal_coding
+    = TERMINAL_TERMINAL_CODING (get_terminal (terminal, 1));
+  Lisp_Object coding_system = CODING_ID_NAME (terminal_coding->id);
+
+  /* For backward compatibility, return nil if it is `undecided'. */
+  return (! EQ (coding_system, Qundecided) ? coding_system : Qnil);
 }
 
 DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_internal,
@@ -7430,23 +8351,22 @@ DEFUN ("set-keyboard-coding-system-internal", Fset_keyboard_coding_system_intern
 {
   struct terminal *t = get_terminal (terminal, 1);
   CHECK_SYMBOL (coding_system);
-
   setup_coding_system (Fcheck_coding_system (coding_system),
-                       TERMINAL_KEYBOARD_CODING (t));
-  /* Character composition should be disabled.  */
-  TERMINAL_KEYBOARD_CODING (t)->composing = COMPOSITION_DISABLED;
+                      TERMINAL_KEYBOARD_CODING (t));
+  /* Characer composition should be disabled.  */
+  TERMINAL_KEYBOARD_CODING (t)->common_flags
+    &= ~CODING_ANNOTATE_COMPOSITION_MASK;
   return Qnil;
 }
 
-DEFUN ("keyboard-coding-system", Fkeyboard_coding_system,
-       Skeyboard_coding_system, 0, 1, 0,
-       doc: /* Return coding system for decoding keyboard input on TERMINAL.
-TERMINAL may be a terminal id, a frame, or nil for the selected
-frame's terminal device.  */)
+DEFUN ("keyboard-coding-system",
+       Fkeyboard_coding_system, Skeyboard_coding_system, 0, 1, 0,
+       doc: /* Return coding system specified for decoding keyboard input.  */)
      (terminal)
      Lisp_Object terminal;
 {
-  return TERMINAL_KEYBOARD_CODING (get_terminal (terminal, 1))->symbol;
+  return CODING_ID_NAME (TERMINAL_KEYBOARD_CODING
+                        (get_terminal (terminal, 1))->id);
 }
 
 \f
@@ -7463,207 +8383,898 @@ The first argument OPERATION specifies an I/O primitive:
   For process I/O, `call-process', `call-process-region', or `start-process'.
   For network I/O, `open-network-stream'.
 
-The remaining arguments should be the same arguments that were passed
-to the primitive.  Depending on which primitive, one of those arguments
-is selected as the TARGET.  For example, if OPERATION does file I/O,
-whichever argument specifies the file name is TARGET.
+The remaining arguments should be the same arguments that were passed
+to the primitive.  Depending on which primitive, one of those arguments
+is selected as the TARGET.  For example, if OPERATION does file I/O,
+whichever argument specifies the file name is TARGET.
+
+TARGET has a meaning which depends on OPERATION:
+  For file I/O, TARGET is a file name (except for the special case below).
+  For process I/O, TARGET is a process name.
+  For network I/O, TARGET is a service name or a port number
+
+This function looks up what specified for TARGET in,
+`file-coding-system-alist', `process-coding-system-alist',
+or `network-coding-system-alist' depending on OPERATION.
+They may specify a coding system, a cons of coding systems,
+or a function symbol to call.
+In the last case, we call the function with one argument,
+which is a list of all the arguments given to this function.
+If the function can't decide a coding system, it can return
+`undecided' so that the normal code-detection is performed.
+
+If OPERATION is `insert-file-contents', the argument corresponding to
+TARGET may be a cons (FILENAME . BUFFER).  In that case, FILENAME is a
+file name to look up, and BUFFER is a buffer that contains the file's
+contents (not yet decoded).  If `file-coding-system-alist' specifies a
+function to call for FILENAME, that function should examine the
+contents of BUFFER instead of reading the file.
+
+usage: (find-operation-coding-system OPERATION ARGUMENTS...)  */)
+     (nargs, args)
+     int nargs;
+     Lisp_Object *args;
+{
+  Lisp_Object operation, target_idx, target, val;
+  register Lisp_Object chain;
+
+  if (nargs < 2)
+    error ("Too few arguments");
+  operation = args[0];
+  if (!SYMBOLP (operation)
+      || !INTEGERP (target_idx = Fget (operation, Qtarget_idx)))
+    error ("Invalid first arguement");
+  if (nargs < 1 + XINT (target_idx))
+    error ("Too few arguments for operation: %s",
+          SDATA (SYMBOL_NAME (operation)));
+  target = args[XINT (target_idx) + 1];
+  if (!(STRINGP (target)
+       || (EQ (operation, Qinsert_file_contents) && CONSP (target)
+           && STRINGP (XCAR (target)) && BUFFERP (XCDR (target)))
+       || (EQ (operation, Qopen_network_stream) && INTEGERP (target))))
+    error ("Invalid %dth argument", XINT (target_idx) + 1);
+  if (CONSP (target))
+    target = XCAR (target);
+
+  chain = ((EQ (operation, Qinsert_file_contents)
+           || EQ (operation, Qwrite_region))
+          ? Vfile_coding_system_alist
+          : (EQ (operation, Qopen_network_stream)
+             ? Vnetwork_coding_system_alist
+             : Vprocess_coding_system_alist));
+  if (NILP (chain))
+    return Qnil;
+
+  for (; CONSP (chain); chain = XCDR (chain))
+    {
+      Lisp_Object elt;
+
+      elt = XCAR (chain);
+      if (CONSP (elt)
+         && ((STRINGP (target)
+              && STRINGP (XCAR (elt))
+              && fast_string_match (XCAR (elt), target) >= 0)
+             || (INTEGERP (target) && EQ (target, XCAR (elt)))))
+       {
+         val = XCDR (elt);
+         /* Here, if VAL is both a valid coding system and a valid
+             function symbol, we return VAL as a coding system.  */
+         if (CONSP (val))
+           return val;
+         if (! SYMBOLP (val))
+           return Qnil;
+         if (! NILP (Fcoding_system_p (val)))
+           return Fcons (val, val);
+         if (! NILP (Ffboundp (val)))
+           {
+             /* We use call1 rather than safe_call1
+                so as to get bug reports about functions called here
+                which don't handle the current interface.  */
+             val = call1 (val, Flist (nargs, args));
+             if (CONSP (val))
+               return val;
+             if (SYMBOLP (val) && ! NILP (Fcoding_system_p (val)))
+               return Fcons (val, val);
+           }
+         return Qnil;
+       }
+    }
+  return Qnil;
+}
+
+DEFUN ("set-coding-system-priority", Fset_coding_system_priority,
+       Sset_coding_system_priority, 0, MANY, 0,
+       doc: /* Assign higher priority to the coding systems given as arguments.
+If multiple coding systems belongs to the same category,
+all but the first one are ignored.
+
+usage: (set-coding-system-priority ...)  */)
+     (nargs, args)
+     int nargs;
+     Lisp_Object *args;
+{
+  int i, j;
+  int changed[coding_category_max];
+  enum coding_category priorities[coding_category_max];
+
+  bzero (changed, sizeof changed);
+
+  for (i = j = 0; i < nargs; i++)
+    {
+      enum coding_category category;
+      Lisp_Object spec, attrs;
+
+      CHECK_CODING_SYSTEM_GET_SPEC (args[i], spec);
+      attrs = AREF (spec, 0);
+      category = XINT (CODING_ATTR_CATEGORY (attrs));
+      if (changed[category])
+       /* Ignore this coding system because a coding system of the
+          same category already had a higher priority.  */
+       continue;
+      changed[category] = 1;
+      priorities[j++] = category;
+      if (coding_categories[category].id >= 0
+         && ! EQ (args[i], CODING_ID_NAME (coding_categories[category].id)))
+       setup_coding_system (args[i], &coding_categories[category]);
+      Fset (AREF (Vcoding_category_table, category), args[i]);
+    }
+
+  /* Now we have decided top J priorities.  Reflect the order of the
+     original priorities to the remaining priorities.  */
+
+  for (i = j, j = 0; i < coding_category_max; i++, j++)
+    {
+      while (j < coding_category_max
+            && changed[coding_priorities[j]])
+       j++;
+      if (j == coding_category_max)
+       abort ();
+      priorities[i] = coding_priorities[j];
+    }
+
+  bcopy (priorities, coding_priorities, sizeof priorities);
+
+  /* Update `coding-category-list'.  */
+  Vcoding_category_list = Qnil;
+  for (i = coding_category_max - 1; i >= 0; i--)
+    Vcoding_category_list
+      = Fcons (AREF (Vcoding_category_table, priorities[i]),
+              Vcoding_category_list);
+
+  return Qnil;
+}
+
+DEFUN ("coding-system-priority-list", Fcoding_system_priority_list,
+       Scoding_system_priority_list, 0, 1, 0,
+       doc: /* Return a list of coding systems ordered by their priorities.
+HIGHESTP non-nil means just return the highest priority one.  */)
+     (highestp)
+     Lisp_Object highestp;
+{
+  int i;
+  Lisp_Object val;
+
+  for (i = 0, val = Qnil; i < coding_category_max; i++)
+    {
+      enum coding_category category = coding_priorities[i];
+      int id = coding_categories[category].id;
+      Lisp_Object attrs;
+
+      if (id < 0)
+       continue;
+      attrs = CODING_ID_ATTRS (id);
+      if (! NILP (highestp))
+       return CODING_ATTR_BASE_NAME (attrs);
+      val = Fcons (CODING_ATTR_BASE_NAME (attrs), val);
+    }
+  return Fnreverse (val);
+}
+
+static char *suffixes[] = { "-unix", "-dos", "-mac" };
+
+static Lisp_Object
+make_subsidiaries (base)
+     Lisp_Object base;
+{
+  Lisp_Object subsidiaries;
+  int base_name_len = SBYTES (SYMBOL_NAME (base));
+  char *buf = (char *) alloca (base_name_len + 6);
+  int i;
+
+  bcopy (SDATA (SYMBOL_NAME (base)), buf, base_name_len);
+  subsidiaries = Fmake_vector (make_number (3), Qnil);
+  for (i = 0; i < 3; i++)
+    {
+      bcopy (suffixes[i], buf + base_name_len, strlen (suffixes[i]) + 1);
+      ASET (subsidiaries, i, intern (buf));
+    }
+  return subsidiaries;
+}
+
+
+DEFUN ("define-coding-system-internal", Fdefine_coding_system_internal,
+       Sdefine_coding_system_internal, coding_arg_max, MANY, 0,
+       doc: /* For internal use only.
+usage: (define-coding-system-internal ...)  */)
+     (nargs, args)
+     int nargs;
+     Lisp_Object *args;
+{
+  Lisp_Object name;
+  Lisp_Object spec_vec;                /* [ ATTRS ALIASE EOL_TYPE ] */
+  Lisp_Object attrs;           /* Vector of attributes.  */
+  Lisp_Object eol_type;
+  Lisp_Object aliases;
+  Lisp_Object coding_type, charset_list, safe_charsets;
+  enum coding_category category;
+  Lisp_Object tail, val;
+  int max_charset_id = 0;
+  int i;
+
+  if (nargs < coding_arg_max)
+    goto short_args;
+
+  attrs = Fmake_vector (make_number (coding_attr_last_index), Qnil);
+
+  name = args[coding_arg_name];
+  CHECK_SYMBOL (name);
+  CODING_ATTR_BASE_NAME (attrs) = name;
+
+  val = args[coding_arg_mnemonic];
+  if (! STRINGP (val))
+    CHECK_CHARACTER (val);
+  CODING_ATTR_MNEMONIC (attrs) = val;
+
+  coding_type = args[coding_arg_coding_type];
+  CHECK_SYMBOL (coding_type);
+  CODING_ATTR_TYPE (attrs) = coding_type;
+
+  charset_list = args[coding_arg_charset_list];
+  if (SYMBOLP (charset_list))
+    {
+      if (EQ (charset_list, Qiso_2022))
+       {
+         if (! EQ (coding_type, Qiso_2022))
+           error ("Invalid charset-list");
+         charset_list = Viso_2022_charset_list;
+       }
+      else if (EQ (charset_list, Qemacs_mule))
+       {
+         if (! EQ (coding_type, Qemacs_mule))
+           error ("Invalid charset-list");
+         charset_list = Vemacs_mule_charset_list;
+       }
+      for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
+       if (max_charset_id < XFASTINT (XCAR (tail)))
+         max_charset_id = XFASTINT (XCAR (tail));
+    }
+  else
+    {
+      charset_list = Fcopy_sequence (charset_list);
+      for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
+       {
+         struct charset *charset;
+
+         val = XCAR (tail);
+         CHECK_CHARSET_GET_CHARSET (val, charset);
+         if (EQ (coding_type, Qiso_2022)
+             ? CHARSET_ISO_FINAL (charset) < 0
+             : EQ (coding_type, Qemacs_mule)
+             ? CHARSET_EMACS_MULE_ID (charset) < 0
+             : 0)
+           error ("Can't handle charset `%s'",
+                  SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
+
+         XSETCAR (tail, make_number (charset->id));
+         if (max_charset_id < charset->id)
+           max_charset_id = charset->id;
+       }
+    }
+  CODING_ATTR_CHARSET_LIST (attrs) = charset_list;
+
+  safe_charsets = Fmake_string (make_number (max_charset_id + 1),
+                               make_number (255));
+  for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
+    SSET (safe_charsets, XFASTINT (XCAR (tail)), 0);
+  CODING_ATTR_SAFE_CHARSETS (attrs) = safe_charsets;
+
+  CODING_ATTR_ASCII_COMPAT (attrs) = args[coding_arg_ascii_compatible_p];
+
+  val = args[coding_arg_decode_translation_table];
+  if (! CHAR_TABLE_P (val) && ! CONSP (val))
+    CHECK_SYMBOL (val);
+  CODING_ATTR_DECODE_TBL (attrs) = val;
+
+  val = args[coding_arg_encode_translation_table];
+  if (! CHAR_TABLE_P (val) && ! CONSP (val))
+    CHECK_SYMBOL (val);
+  CODING_ATTR_ENCODE_TBL (attrs) = val;
+
+  val = args[coding_arg_post_read_conversion];
+  CHECK_SYMBOL (val);
+  CODING_ATTR_POST_READ (attrs) = val;
+
+  val = args[coding_arg_pre_write_conversion];
+  CHECK_SYMBOL (val);
+  CODING_ATTR_PRE_WRITE (attrs) = val;
+
+  val = args[coding_arg_default_char];
+  if (NILP (val))
+    CODING_ATTR_DEFAULT_CHAR (attrs) = make_number (' ');
+  else
+    {
+      CHECK_CHARACTER (val);
+      CODING_ATTR_DEFAULT_CHAR (attrs) = val;
+    }
+
+  val = args[coding_arg_for_unibyte];
+  CODING_ATTR_FOR_UNIBYTE (attrs) = NILP (val) ? Qnil : Qt;
+
+  val = args[coding_arg_plist];
+  CHECK_LIST (val);
+  CODING_ATTR_PLIST (attrs) = val;
+
+  if (EQ (coding_type, Qcharset))
+    {
+      /* Generate a lisp vector of 256 elements.  Each element is nil,
+        integer, or a list of charset IDs.
+
+        If Nth element is nil, the byte code N is invalid in this
+        coding system.
+
+        If Nth element is a number NUM, N is the first byte of a
+        charset whose ID is NUM.
+
+        If Nth element is a list of charset IDs, N is the first byte
+        of one of them.  The list is sorted by dimensions of the
+        charsets.  A charset of smaller dimension comes firtst. */
+      val = Fmake_vector (make_number (256), Qnil);
+
+      for (tail = charset_list; CONSP (tail); tail = XCDR (tail))
+       {
+         struct charset *charset = CHARSET_FROM_ID (XFASTINT (XCAR (tail)));
+         int dim = CHARSET_DIMENSION (charset);
+         int idx = (dim - 1) * 4;
+
+         if (CHARSET_ASCII_COMPATIBLE_P (charset))
+           CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
+
+         for (i = charset->code_space[idx];
+              i <= charset->code_space[idx + 1]; i++)
+           {
+             Lisp_Object tmp, tmp2;
+             int dim2;
+
+             tmp = AREF (val, i);
+             if (NILP (tmp))
+               tmp = XCAR (tail);
+             else if (NUMBERP (tmp))
+               {
+                 dim2 = CHARSET_DIMENSION (CHARSET_FROM_ID (XFASTINT (tmp)));
+                 if (dim < dim2)
+                   tmp = Fcons (XCAR (tail), Fcons (tmp, Qnil));
+                 else
+                   tmp = Fcons (tmp, Fcons (XCAR (tail), Qnil));
+               }
+             else
+               {
+                 for (tmp2 = tmp; CONSP (tmp2); tmp2 = XCDR (tmp2))
+                   {
+                     dim2 = CHARSET_DIMENSION (CHARSET_FROM_ID (XFASTINT (XCAR (tmp2))));
+                     if (dim < dim2)
+                       break;
+                   }
+                 if (NILP (tmp2))
+                   tmp = nconc2 (tmp, Fcons (XCAR (tail), Qnil));
+                 else
+                   {
+                     XSETCDR (tmp2, Fcons (XCAR (tmp2), XCDR (tmp2)));
+                     XSETCAR (tmp2, XCAR (tail));
+                   }
+               }
+             ASET (val, i, tmp);
+           }
+       }
+      ASET (attrs, coding_attr_charset_valids, val);
+      category = coding_category_charset;
+    }
+  else if (EQ (coding_type, Qccl))
+    {
+      Lisp_Object valids;
+
+      if (nargs < coding_arg_ccl_max)
+       goto short_args;
 
-TARGET has a meaning which depends on OPERATION:
-  For file I/O, TARGET is a file name (except for the special case below).
-  For process I/O, TARGET is a process name.
-  For network I/O, TARGET is a service name or a port number
+      val = args[coding_arg_ccl_decoder];
+      CHECK_CCL_PROGRAM (val);
+      if (VECTORP (val))
+       val = Fcopy_sequence (val);
+      ASET (attrs, coding_attr_ccl_decoder, val);
 
-This function looks up what specified for TARGET in,
-`file-coding-system-alist', `process-coding-system-alist',
-or `network-coding-system-alist' depending on OPERATION.
-They may specify a coding system, a cons of coding systems,
-or a function symbol to call.
-In the last case, we call the function with one argument,
-which is a list of all the arguments given to this function.
-If the function can't decide a coding system, it can return
-`undecided' so that the normal code-detection is performed.
+      val = args[coding_arg_ccl_encoder];
+      CHECK_CCL_PROGRAM (val);
+      if (VECTORP (val))
+       val = Fcopy_sequence (val);
+      ASET (attrs, coding_attr_ccl_encoder, val);
 
-If OPERATION is `insert-file-contents', the argument corresponding to
-TARGET may be a cons (FILENAME . BUFFER).  In that case, FILENAME is a
-file name to look up, and BUFFER is a buffer that contains the file's
-contents (not yet decoded).  If `file-coding-system-alist' specifies a
-function to call for FILENAME, that function should examine the
-contents of BUFFER instead of reading the file.
+      val = args[coding_arg_ccl_valids];
+      valids = Fmake_string (make_number (256), make_number (0));
+      for (tail = val; !NILP (tail); tail = Fcdr (tail))
+       {
+         int from, to;
 
-usage: (find-operation-coding-system OPERATION ARGUMENTS...)  */)
-     (nargs, args)
-     int nargs;
-     Lisp_Object *args;
-{
-  Lisp_Object operation, target_idx, target, val;
-  register Lisp_Object chain;
+         val = Fcar (tail);
+         if (INTEGERP (val))
+           {
+             from = to = XINT (val);
+             if (from < 0 || from > 255)
+               args_out_of_range_3 (val, make_number (0), make_number (255));
+           }
+         else
+           {
+             CHECK_CONS (val);
+             CHECK_NATNUM_CAR (val);
+             CHECK_NATNUM_CDR (val);
+             from = XINT (XCAR (val));
+             if (from > 255)
+               args_out_of_range_3 (XCAR (val),
+                                    make_number (0), make_number (255));
+             to = XINT (XCDR (val));
+             if (to < from || to > 255)
+               args_out_of_range_3 (XCDR (val),
+                                    XCAR (val), make_number (255));
+           }
+         for (i = from; i <= to; i++)
+           SSET (valids, i, 1);
+       }
+      ASET (attrs, coding_attr_ccl_valids, valids);
 
-  if (nargs < 2)
-    error ("Too few arguments");
-  operation = args[0];
-  if (!SYMBOLP (operation)
-      || !INTEGERP (target_idx = Fget (operation, Qtarget_idx)))
-    error ("Invalid first argument");
-  if (nargs < 1 + XINT (target_idx))
-    error ("Too few arguments for operation: %s",
-          SDATA (SYMBOL_NAME (operation)));
-  /* For write-region, if the 6th argument (i.e. VISIT, the 5th
-     argument to write-region) is string, it must be treated as a
-     target file name.  */
-  if (EQ (operation, Qwrite_region)
-      && nargs > 5
-      && STRINGP (args[5]))
-    target_idx = make_number (4);
-  target = args[XINT (target_idx) + 1];
-  if (!(STRINGP (target)
-       || (EQ (operation, Qinsert_file_contents) && CONSP (target)
-           && STRINGP (XCAR (target)) && BUFFERP (XCDR (target)))
-       || (EQ (operation, Qopen_network_stream) && INTEGERP (target))))
-    error ("Invalid argument %d", XINT (target_idx) + 1);
-  if (CONSP (target))
-    target = XCAR (target);
+      category = coding_category_ccl;
+    }
+  else if (EQ (coding_type, Qutf_16))
+    {
+      Lisp_Object bom, endian;
 
-  chain = ((EQ (operation, Qinsert_file_contents)
-           || EQ (operation, Qwrite_region))
-          ? Vfile_coding_system_alist
-          : (EQ (operation, Qopen_network_stream)
-             ? Vnetwork_coding_system_alist
-             : Vprocess_coding_system_alist));
-  if (NILP (chain))
-    return Qnil;
+      CODING_ATTR_ASCII_COMPAT (attrs) = Qnil;
 
-  for (; CONSP (chain); chain = XCDR (chain))
-    {
-      Lisp_Object elt;
-      elt = XCAR (chain);
+      if (nargs < coding_arg_utf16_max)
+       goto short_args;
 
-      if (CONSP (elt)
-         && ((STRINGP (target)
-              && STRINGP (XCAR (elt))
-              && fast_string_match (XCAR (elt), target) >= 0)
-             || (INTEGERP (target) && EQ (target, XCAR (elt)))))
+      bom = args[coding_arg_utf16_bom];
+      if (! NILP (bom) && ! EQ (bom, Qt))
        {
-         val = XCDR (elt);
-         /* Here, if VAL is both a valid coding system and a valid
-             function symbol, we return VAL as a coding system.  */
-         if (CONSP (val))
-           return val;
-         if (! SYMBOLP (val))
-           return Qnil;
-         if (! NILP (Fcoding_system_p (val)))
-           return Fcons (val, val);
-         if (! NILP (Ffboundp (val)))
+         CHECK_CONS (bom);
+         val = XCAR (bom);
+         CHECK_CODING_SYSTEM (val);
+         val = XCDR (bom);
+         CHECK_CODING_SYSTEM (val);
+       }
+      ASET (attrs, coding_attr_utf_16_bom, bom);
+
+      endian = args[coding_arg_utf16_endian];
+      CHECK_SYMBOL (endian);
+      if (NILP (endian))
+       endian = Qbig;
+      else if (! EQ (endian, Qbig) && ! EQ (endian, Qlittle))
+       error ("Invalid endian: %s", SDATA (SYMBOL_NAME (endian)));
+      ASET (attrs, coding_attr_utf_16_endian, endian);
+
+      category = (CONSP (bom)
+                 ? coding_category_utf_16_auto
+                 : NILP (bom)
+                 ? (EQ (endian, Qbig)
+                    ? coding_category_utf_16_be_nosig
+                    : coding_category_utf_16_le_nosig)
+                 : (EQ (endian, Qbig)
+                    ? coding_category_utf_16_be
+                    : coding_category_utf_16_le));
+    }
+  else if (EQ (coding_type, Qiso_2022))
+    {
+      Lisp_Object initial, reg_usage, request, flags;
+      int i;
+
+      if (nargs < coding_arg_iso2022_max)
+       goto short_args;
+
+      initial = Fcopy_sequence (args[coding_arg_iso2022_initial]);
+      CHECK_VECTOR (initial);
+      for (i = 0; i < 4; i++)
+       {
+         val = Faref (initial, make_number (i));
+         if (! NILP (val))
            {
-             /* We use call1 rather than safe_call1
-                so as to get bug reports about functions called here
-                which don't handle the current interface.  */
-             val = call1 (val, Flist (nargs, args));
-             if (CONSP (val))
-               return val;
-             if (SYMBOLP (val) && ! NILP (Fcoding_system_p (val)))
-               return Fcons (val, val);
+             struct charset *charset;
+
+             CHECK_CHARSET_GET_CHARSET (val, charset);
+             ASET (initial, i, make_number (CHARSET_ID (charset)));
+             if (i == 0 && CHARSET_ASCII_COMPATIBLE_P (charset))
+               CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
            }
-         return Qnil;
+         else
+           ASET (initial, i, make_number (-1));
        }
-    }
-  return Qnil;
-}
 
-DEFUN ("update-coding-systems-internal",  Fupdate_coding_systems_internal,
-       Supdate_coding_systems_internal, 0, 0, 0,
-       doc: /* Update internal database for ISO2022 and CCL based coding systems.
-When values of any coding categories are changed, you must
-call this function.  */)
-     ()
-{
-  int i;
+      reg_usage = args[coding_arg_iso2022_reg_usage];
+      CHECK_CONS (reg_usage);
+      CHECK_NUMBER_CAR (reg_usage);
+      CHECK_NUMBER_CDR (reg_usage);
+
+      request = Fcopy_sequence (args[coding_arg_iso2022_request]);
+      for (tail = request; ! NILP (tail); tail = Fcdr (tail))
+       {
+         int id;
+         Lisp_Object tmp;
+
+         val = Fcar (tail);
+         CHECK_CONS (val);
+         tmp = XCAR (val);
+         CHECK_CHARSET_GET_ID (tmp, id);
+         CHECK_NATNUM_CDR (val);
+         if (XINT (XCDR (val)) >= 4)
+           error ("Invalid graphic register number: %d", XINT (XCDR (val)));
+         XSETCAR (val, make_number (id));
+       }
 
-  for (i = CODING_CATEGORY_IDX_EMACS_MULE; i < CODING_CATEGORY_IDX_MAX; i++)
+      flags = args[coding_arg_iso2022_flags];
+      CHECK_NATNUM (flags);
+      i = XINT (flags);
+      if (EQ (args[coding_arg_charset_list], Qiso_2022))
+       flags = make_number (i | CODING_ISO_FLAG_FULL_SUPPORT);
+
+      ASET (attrs, coding_attr_iso_initial, initial);
+      ASET (attrs, coding_attr_iso_usage, reg_usage);
+      ASET (attrs, coding_attr_iso_request, request);
+      ASET (attrs, coding_attr_iso_flags, flags);
+      setup_iso_safe_charsets (attrs);
+
+      if (i & CODING_ISO_FLAG_SEVEN_BITS)
+       category = ((i & (CODING_ISO_FLAG_LOCKING_SHIFT
+                         | CODING_ISO_FLAG_SINGLE_SHIFT))
+                   ? coding_category_iso_7_else
+                   : EQ (args[coding_arg_charset_list], Qiso_2022)
+                   ? coding_category_iso_7
+                   : coding_category_iso_7_tight);
+      else
+       {
+         int id = XINT (AREF (initial, 1));
+
+         category = (((i & CODING_ISO_FLAG_LOCKING_SHIFT)
+                      || EQ (args[coding_arg_charset_list], Qiso_2022)
+                      || id < 0)
+                     ? coding_category_iso_8_else
+                     : (CHARSET_DIMENSION (CHARSET_FROM_ID (id)) == 1)
+                     ? coding_category_iso_8_1
+                     : coding_category_iso_8_2);
+       }
+      if (category != coding_category_iso_8_1
+         && category != coding_category_iso_8_2)
+       CODING_ATTR_ASCII_COMPAT (attrs) = Qnil;
+    }
+  else if (EQ (coding_type, Qemacs_mule))
+    {
+      if (EQ (args[coding_arg_charset_list], Qemacs_mule))
+       ASET (attrs, coding_attr_emacs_mule_full, Qt);
+      CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
+      category = coding_category_emacs_mule;
+    }
+  else if (EQ (coding_type, Qshift_jis))
     {
-      Lisp_Object val;
 
-      val = find_symbol_value (XVECTOR (Vcoding_category_table)->contents[i]);
-      if (!NILP (val))
+      struct charset *charset;
+
+      if (XINT (Flength (charset_list)) != 3
+         && XINT (Flength (charset_list)) != 4)
+       error ("There should be three or four charsets");
+
+      charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
+      if (CHARSET_DIMENSION (charset) != 1)
+       error ("Dimension of charset %s is not one",
+              SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
+      if (CHARSET_ASCII_COMPATIBLE_P (charset))
+       CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
+
+      charset_list = XCDR (charset_list);
+      charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
+      if (CHARSET_DIMENSION (charset) != 1)
+       error ("Dimension of charset %s is not one",
+              SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
+
+      charset_list = XCDR (charset_list);
+      charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
+      if (CHARSET_DIMENSION (charset) != 2)
+       error ("Dimension of charset %s is not two",
+              SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
+
+      charset_list = XCDR (charset_list);
+      if (! NILP (charset_list))
        {
-         if (! coding_system_table[i])
-           coding_system_table[i] = ((struct coding_system *)
-                                     xmalloc (sizeof (struct coding_system)));
-         setup_coding_system (val, coding_system_table[i]);
+         charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
+         if (CHARSET_DIMENSION (charset) != 2)
+           error ("Dimension of charset %s is not two",
+                  SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
        }
-      else if (coding_system_table[i])
+
+      category = coding_category_sjis;
+      Vsjis_coding_system = name;
+    }
+  else if (EQ (coding_type, Qbig5))
+    {
+      struct charset *charset;
+
+      if (XINT (Flength (charset_list)) != 2)
+       error ("There should be just two charsets");
+
+      charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
+      if (CHARSET_DIMENSION (charset) != 1)
+       error ("Dimension of charset %s is not one",
+              SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
+      if (CHARSET_ASCII_COMPATIBLE_P (charset))
+       CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
+
+      charset_list = XCDR (charset_list);
+      charset = CHARSET_FROM_ID (XINT (XCAR (charset_list)));
+      if (CHARSET_DIMENSION (charset) != 2)
+       error ("Dimension of charset %s is not two",
+              SDATA (SYMBOL_NAME (CHARSET_NAME (charset))));
+
+      category = coding_category_big5;
+      Vbig5_coding_system = name;
+    }
+  else if (EQ (coding_type, Qraw_text))
+    {
+      category = coding_category_raw_text;
+      CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
+    }
+  else if (EQ (coding_type, Qutf_8))
+    {
+      category = coding_category_utf_8;
+      CODING_ATTR_ASCII_COMPAT (attrs) = Qt;
+    }
+  else if (EQ (coding_type, Qundecided))
+    category = coding_category_undecided;
+  else
+    error ("Invalid coding system type: %s",
+          SDATA (SYMBOL_NAME (coding_type)));
+
+  CODING_ATTR_CATEGORY (attrs) = make_number (category);
+  CODING_ATTR_PLIST (attrs)
+    = Fcons (QCcategory, Fcons (AREF (Vcoding_category_table, category),
+                               CODING_ATTR_PLIST (attrs)));
+  CODING_ATTR_PLIST (attrs)
+    = Fcons (QCascii_compatible_p, 
+            Fcons (CODING_ATTR_ASCII_COMPAT (attrs),
+                   CODING_ATTR_PLIST (attrs)));
+
+  eol_type = args[coding_arg_eol_type];
+  if (! NILP (eol_type)
+      && ! EQ (eol_type, Qunix)
+      && ! EQ (eol_type, Qdos)
+      && ! EQ (eol_type, Qmac))
+    error ("Invalid eol-type");
+
+  aliases = Fcons (name, Qnil);
+
+  if (NILP (eol_type))
+    {
+      eol_type = make_subsidiaries (name);
+      for (i = 0; i < 3; i++)
        {
-         xfree (coding_system_table[i]);
-         coding_system_table[i] = NULL;
+         Lisp_Object this_spec, this_name, this_aliases, this_eol_type;
+
+         this_name = AREF (eol_type, i);
+         this_aliases = Fcons (this_name, Qnil);
+         this_eol_type = (i == 0 ? Qunix : i == 1 ? Qdos : Qmac);
+         this_spec = Fmake_vector (make_number (3), attrs);
+         ASET (this_spec, 1, this_aliases);
+         ASET (this_spec, 2, this_eol_type);
+         Fputhash (this_name, this_spec, Vcoding_system_hash_table);
+         Vcoding_system_list = Fcons (this_name, Vcoding_system_list);
+         val = Fassoc (Fsymbol_name (this_name), Vcoding_system_alist);
+         if (NILP (val))
+           Vcoding_system_alist
+             = Fcons (Fcons (Fsymbol_name (this_name), Qnil),
+                      Vcoding_system_alist);
        }
     }
 
+  spec_vec = Fmake_vector (make_number (3), attrs);
+  ASET (spec_vec, 1, aliases);
+  ASET (spec_vec, 2, eol_type);
+
+  Fputhash (name, spec_vec, Vcoding_system_hash_table);
+  Vcoding_system_list = Fcons (name, Vcoding_system_list);
+  val = Fassoc (Fsymbol_name (name), Vcoding_system_alist);
+  if (NILP (val))
+    Vcoding_system_alist = Fcons (Fcons (Fsymbol_name (name), Qnil),
+                                 Vcoding_system_alist);
+
+  {
+    int id = coding_categories[category].id;
+
+    if (id < 0 || EQ (name, CODING_ID_NAME (id)))
+      setup_coding_system (name, &coding_categories[category]);
+  }
+
   return Qnil;
+
+ short_args:
+  return Fsignal (Qwrong_number_of_arguments,
+                 Fcons (intern ("define-coding-system-internal"),
+                        make_number (nargs)));
 }
 
-DEFUN ("set-coding-priority-internal", Fset_coding_priority_internal,
-       Sset_coding_priority_internal, 0, 0, 0,
-       doc: /* Update internal database for the current value of `coding-category-list'.
-This function is internal use only.  */)
-     ()
+
+DEFUN ("coding-system-put", Fcoding_system_put, Scoding_system_put,
+       3, 3, 0,
+       doc: /* Change value in CODING-SYSTEM's property list PROP to VAL.  */)
+  (coding_system, prop, val)
+     Lisp_Object coding_system, prop, val;
 {
-  int i = 0, idx;
-  Lisp_Object val;
+  Lisp_Object spec, attrs;
+
+  CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
+  attrs = AREF (spec, 0);
+  if (EQ (prop, QCmnemonic))
+    {
+      if (! STRINGP (val))
+       CHECK_CHARACTER (val);
+      CODING_ATTR_MNEMONIC (attrs) = val;
+    }
+  else if (EQ (prop, QCdefalut_char))
+    {
+      if (NILP (val))
+       val = make_number (' ');
+      else
+       CHECK_CHARACTER (val);
+      CODING_ATTR_DEFAULT_CHAR (attrs) = val;
+    }
+  else if (EQ (prop, QCdecode_translation_table))
+    {
+      if (! CHAR_TABLE_P (val) && ! CONSP (val))
+       CHECK_SYMBOL (val);
+      CODING_ATTR_DECODE_TBL (attrs) = val;
+    }
+  else if (EQ (prop, QCencode_translation_table))
+    {
+      if (! CHAR_TABLE_P (val) && ! CONSP (val))
+       CHECK_SYMBOL (val);
+      CODING_ATTR_ENCODE_TBL (attrs) = val;
+    }
+  else if (EQ (prop, QCpost_read_conversion))
+    {
+      CHECK_SYMBOL (val);
+      CODING_ATTR_POST_READ (attrs) = val;
+    }
+  else if (EQ (prop, QCpre_write_conversion))
+    {
+      CHECK_SYMBOL (val);
+      CODING_ATTR_PRE_WRITE (attrs) = val;
+    }
+  else if (EQ (prop, QCascii_compatible_p))
+    {
+      CODING_ATTR_ASCII_COMPAT (attrs) = val;
+    }
+
+  CODING_ATTR_PLIST (attrs)
+    = Fplist_put (CODING_ATTR_PLIST (attrs), prop, val);
+  return val;
+}
 
-  val = Vcoding_category_list;
 
-  while (CONSP (val) && i < CODING_CATEGORY_IDX_MAX)
+DEFUN ("define-coding-system-alias", Fdefine_coding_system_alias,
+       Sdefine_coding_system_alias, 2, 2, 0,
+       doc: /* Define ALIAS as an alias for CODING-SYSTEM.  */)
+     (alias, coding_system)
+     Lisp_Object alias, coding_system;
+{
+  Lisp_Object spec, aliases, eol_type, val;
+
+  CHECK_SYMBOL (alias);
+  CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
+  aliases = AREF (spec, 1);
+  /* ALISES should be a list of length more than zero, and the first
+     element is a base coding system.  Append ALIAS at the tail of the
+     list.  */
+  while (!NILP (XCDR (aliases)))
+    aliases = XCDR (aliases);
+  XSETCDR (aliases, Fcons (alias, Qnil));
+
+  eol_type = AREF (spec, 2);
+  if (VECTORP (eol_type))
     {
-      if (! SYMBOLP (XCAR (val)))
-       break;
-      idx = XFASTINT (Fget (XCAR (val), Qcoding_category_index));
-      if (idx >= CODING_CATEGORY_IDX_MAX)
-       break;
-      coding_priorities[i++] = (1 << idx);
-      val = XCDR (val);
+      Lisp_Object subsidiaries;
+      int i;
+
+      subsidiaries = make_subsidiaries (alias);
+      for (i = 0; i < 3; i++)
+       Fdefine_coding_system_alias (AREF (subsidiaries, i),
+                                    AREF (eol_type, i));
     }
-  /* If coding-category-list is valid and contains all coding
-     categories, `i' should be CODING_CATEGORY_IDX_MAX now.  If not,
-     the following code saves Emacs from crashing.  */
-  while (i < CODING_CATEGORY_IDX_MAX)
-    coding_priorities[i++] = CODING_CATEGORY_MASK_RAW_TEXT;
+
+  Fputhash (alias, spec, Vcoding_system_hash_table);
+  Vcoding_system_list = Fcons (alias, Vcoding_system_list);
+  val = Fassoc (Fsymbol_name (alias), Vcoding_system_alist);
+  if (NILP (val))
+    Vcoding_system_alist = Fcons (Fcons (Fsymbol_name (alias), Qnil),
+                                 Vcoding_system_alist);
 
   return Qnil;
 }
 
-DEFUN ("define-coding-system-internal", Fdefine_coding_system_internal,
-       Sdefine_coding_system_internal, 1, 1, 0,
-       doc: /* Register CODING-SYSTEM as a base coding system.
-This function is internal use only.  */)
+DEFUN ("coding-system-base", Fcoding_system_base, Scoding_system_base,
+       1, 1, 0,
+       doc: /* Return the base of CODING-SYSTEM.
+Any alias or subsidiary coding system is not a base coding system.  */)
+  (coding_system)
+     Lisp_Object coding_system;
+{
+  Lisp_Object spec, attrs;
+
+  if (NILP (coding_system))
+    return (Qno_conversion);
+  CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
+  attrs = AREF (spec, 0);
+  return CODING_ATTR_BASE_NAME (attrs);
+}
+
+DEFUN ("coding-system-plist", Fcoding_system_plist, Scoding_system_plist,
+       1, 1, 0,
+       doc: "Return the property list of CODING-SYSTEM.")
+     (coding_system)
+     Lisp_Object coding_system;
+{
+  Lisp_Object spec, attrs;
+
+  if (NILP (coding_system))
+    coding_system = Qno_conversion;
+  CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
+  attrs = AREF (spec, 0);
+  return CODING_ATTR_PLIST (attrs);
+}
+
+
+DEFUN ("coding-system-aliases", Fcoding_system_aliases, Scoding_system_aliases,
+       1, 1, 0,
+       doc: /* Return the list of aliases of CODING-SYSTEM.  */)
      (coding_system)
      Lisp_Object coding_system;
 {
-  Lisp_Object safe_chars, slot;
+  Lisp_Object spec;
 
-  if (NILP (Fcheck_coding_system (coding_system)))
-    xsignal1 (Qcoding_system_error, coding_system);
+  if (NILP (coding_system))
+    coding_system = Qno_conversion;
+  CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
+  return AREF (spec, 1);
+}
 
-  safe_chars = coding_safe_chars (coding_system);
-  if (! EQ (safe_chars, Qt) && ! CHAR_TABLE_P (safe_chars))
-    error ("No valid safe-chars property for %s",
-          SDATA (SYMBOL_NAME (coding_system)));
+DEFUN ("coding-system-eol-type", Fcoding_system_eol_type,
+       Scoding_system_eol_type, 1, 1, 0,
+       doc: /* Return eol-type of CODING-SYSTEM.
+An eol-type is integer 0, 1, 2, or a vector of coding systems.
 
-  if (EQ (safe_chars, Qt))
-    {
-      if (NILP (Fmemq (coding_system, XCAR (Vcoding_system_safe_chars))))
-       XSETCAR (Vcoding_system_safe_chars,
-                Fcons (coding_system, XCAR (Vcoding_system_safe_chars)));
-    }
-  else
-    {
-      slot = Fassq (coding_system, XCDR (Vcoding_system_safe_chars));
-      if (NILP (slot))
-       XSETCDR (Vcoding_system_safe_chars,
-                nconc2 (XCDR (Vcoding_system_safe_chars),
-                        Fcons (Fcons (coding_system, safe_chars), Qnil)));
-      else
-       XSETCDR (slot, safe_chars);
-    }
-  return Qnil;
+Integer values 0, 1, and 2 indicate a format of end-of-line; LF, CRLF,
+and CR respectively.
+
+A vector value indicates that a format of end-of-line should be
+detected automatically.  Nth element of the vector is the subsidiary
+coding system whose eol-type is N.  */)
+     (coding_system)
+     Lisp_Object coding_system;
+{
+  Lisp_Object spec, eol_type;
+  int n;
+
+  if (NILP (coding_system))
+    coding_system = Qno_conversion;
+  if (! CODING_SYSTEM_P (coding_system))
+    return Qnil;
+  spec = CODING_SYSTEM_SPEC (coding_system);
+  eol_type = AREF (spec, 2);
+  if (VECTORP (eol_type))
+    return Fcopy_sequence (eol_type);
+  n = EQ (eol_type, Qunix) ? 0 : EQ (eol_type, Qdos) ? 1 : 2;
+  return make_number (n);
 }
 
 #endif /* emacs */
@@ -7676,20 +9287,11 @@ init_coding_once ()
 {
   int i;
 
-  /* Emacs' internal format specific initialize routine.  */
-  for (i = 0; i <= 0x20; i++)
-    emacs_code_class[i] = EMACS_control_code;
-  emacs_code_class[0x0A] = EMACS_linefeed_code;
-  emacs_code_class[0x0D] = EMACS_carriage_return_code;
-  for (i = 0x21 ; i < 0x7F; i++)
-    emacs_code_class[i] = EMACS_ascii_code;
-  emacs_code_class[0x7F] = EMACS_control_code;
-  for (i = 0x80; i < 0xFF; i++)
-    emacs_code_class[i] = EMACS_invalid_code;
-  emacs_code_class[LEADING_CODE_PRIVATE_11] = EMACS_leading_code_3;
-  emacs_code_class[LEADING_CODE_PRIVATE_12] = EMACS_leading_code_3;
-  emacs_code_class[LEADING_CODE_PRIVATE_21] = EMACS_leading_code_4;
-  emacs_code_class[LEADING_CODE_PRIVATE_22] = EMACS_leading_code_4;
+  for (i = 0; i < coding_category_max; i++)
+    {
+      coding_categories[i].id = -1;
+      coding_priorities[i] = i;
+    }
 
   /* ISO2022 specific initialize routine.  */
   for (i = 0; i < 0x20; i++)
@@ -7702,7 +9304,6 @@ init_coding_once ()
     iso_code_class[i] = ISO_graphic_plane_1;
   iso_code_class[0x20] = iso_code_class[0x7F] = ISO_0x20_or_0x7F;
   iso_code_class[0xA0] = iso_code_class[0xFF] = ISO_0xA0_or_0xFF;
-  iso_code_class[ISO_CODE_CR] = ISO_carriage_return;
   iso_code_class[ISO_CODE_SO] = ISO_shift_out;
   iso_code_class[ISO_CODE_SI] = ISO_shift_in;
   iso_code_class[ISO_CODE_SS2_7] = ISO_single_shift_2_7;
@@ -7711,22 +9312,14 @@ init_coding_once ()
   iso_code_class[ISO_CODE_SS3] = ISO_single_shift_3;
   iso_code_class[ISO_CODE_CSI] = ISO_control_sequence_introducer;
 
-  setup_coding_system (Qnil, &safe_terminal_coding);
-  setup_coding_system (Qnil, &default_buffer_file_coding);
-
-  bzero (coding_system_table, sizeof coding_system_table);
-
-  bzero (ascii_skip_code, sizeof ascii_skip_code);
-  for (i = 0; i < 128; i++)
-    ascii_skip_code[i] = 1;
-
-#if defined (MSDOS) || defined (WINDOWSNT)
-  system_eol_type = CODING_EOL_CRLF;
-#else
-  system_eol_type = CODING_EOL_LF;
-#endif
-
-  inhibit_pre_post_conversion = 0;
+  for (i = 0; i < 256; i++)
+    {
+      emacs_mule_bytes[i] = 1;
+    }
+  emacs_mule_bytes[EMACS_MULE_LEADING_CODE_PRIVATE_11] = 3;
+  emacs_mule_bytes[EMACS_MULE_LEADING_CODE_PRIVATE_12] = 3;
+  emacs_mule_bytes[EMACS_MULE_LEADING_CODE_PRIVATE_21] = 4;
+  emacs_mule_bytes[EMACS_MULE_LEADING_CODE_PRIVATE_22] = 4;
 }
 
 #ifdef emacs
@@ -7734,14 +9327,31 @@ init_coding_once ()
 void
 syms_of_coding ()
 {
+  staticpro (&Vcoding_system_hash_table);
+  {
+    Lisp_Object args[2];
+    args[0] = QCtest;
+    args[1] = Qeq;
+    Vcoding_system_hash_table = Fmake_hash_table (2, args);
+  }
+
+  staticpro (&Vsjis_coding_system);
+  Vsjis_coding_system = Qnil;
+
+  staticpro (&Vbig5_coding_system);
+  Vbig5_coding_system = Qnil;
+
+  staticpro (&Vcode_conversion_reused_workbuf);
+  Vcode_conversion_reused_workbuf = Qnil;
+
   staticpro (&Vcode_conversion_workbuf_name);
   Vcode_conversion_workbuf_name = build_string (" *code-conversion-work*");
 
-  Qtarget_idx = intern ("target-idx");
-  staticpro (&Qtarget_idx);
+  reused_workbuf_in_use = 0;
 
-  Qcoding_system_history = intern ("coding-system-history");
-  staticpro (&Qcoding_system_history);
+  DEFSYM (Qcharset, "charset");
+  DEFSYM (Qtarget_idx, "target-idx");
+  DEFSYM (Qcoding_system_history, "coding-system-history");
   Fset (Qcoding_system_history, Qnil);
 
   /* Target FILENAME is the first argument.  */
@@ -7749,123 +9359,131 @@ syms_of_coding ()
   /* Target FILENAME is the third argument.  */
   Fput (Qwrite_region, Qtarget_idx, make_number (2));
 
-  Qcall_process = intern ("call-process");
-  staticpro (&Qcall_process);
+  DEFSYM (Qcall_process, "call-process");
   /* Target PROGRAM is the first argument.  */
   Fput (Qcall_process, Qtarget_idx, make_number (0));
 
-  Qcall_process_region = intern ("call-process-region");
-  staticpro (&Qcall_process_region);
+  DEFSYM (Qcall_process_region, "call-process-region");
   /* Target PROGRAM is the third argument.  */
   Fput (Qcall_process_region, Qtarget_idx, make_number (2));
 
-  Qstart_process = intern ("start-process");
-  staticpro (&Qstart_process);
+  DEFSYM (Qstart_process, "start-process");
   /* Target PROGRAM is the third argument.  */
   Fput (Qstart_process, Qtarget_idx, make_number (2));
 
-  Qopen_network_stream = intern ("open-network-stream");
-  staticpro (&Qopen_network_stream);
+  DEFSYM (Qopen_network_stream, "open-network-stream");
   /* Target SERVICE is the fourth argument.  */
   Fput (Qopen_network_stream, Qtarget_idx, make_number (3));
 
-  Qcoding_system = intern ("coding-system");
-  staticpro (&Qcoding_system);
+  DEFSYM (Qcoding_system, "coding-system");
+  DEFSYM (Qcoding_aliases, "coding-aliases");
 
-  Qeol_type = intern ("eol-type");
-  staticpro (&Qeol_type);
+  DEFSYM (Qeol_type, "eol-type");
+  DEFSYM (Qunix, "unix");
+  DEFSYM (Qdos, "dos");
 
-  Qbuffer_file_coding_system = intern ("buffer-file-coding-system");
-  staticpro (&Qbuffer_file_coding_system);
+  DEFSYM (Qbuffer_file_coding_system, "buffer-file-coding-system");
+  DEFSYM (Qpost_read_conversion, "post-read-conversion");
+  DEFSYM (Qpre_write_conversion, "pre-write-conversion");
+  DEFSYM (Qdefault_char, "default-char");
+  DEFSYM (Qundecided, "undecided");
+  DEFSYM (Qno_conversion, "no-conversion");
+  DEFSYM (Qraw_text, "raw-text");
 
-  Qpost_read_conversion = intern ("post-read-conversion");
-  staticpro (&Qpost_read_conversion);
+  DEFSYM (Qiso_2022, "iso-2022");
 
-  Qpre_write_conversion = intern ("pre-write-conversion");
-  staticpro (&Qpre_write_conversion);
+  DEFSYM (Qutf_8, "utf-8");
+  DEFSYM (Qutf_8_emacs, "utf-8-emacs");
 
-  Qno_conversion = intern ("no-conversion");
-  staticpro (&Qno_conversion);
+  DEFSYM (Qutf_16, "utf-16");
+  DEFSYM (Qbig, "big");
+  DEFSYM (Qlittle, "little");
 
-  Qundecided = intern ("undecided");
-  staticpro (&Qundecided);
+  DEFSYM (Qshift_jis, "shift-jis");
+  DEFSYM (Qbig5, "big5");
 
-  Qcoding_system_p = intern ("coding-system-p");
-  staticpro (&Qcoding_system_p);
-
-  Qcoding_system_error = intern ("coding-system-error");
-  staticpro (&Qcoding_system_error);
+  DEFSYM (Qcoding_system_p, "coding-system-p");
 
+  DEFSYM (Qcoding_system_error, "coding-system-error");
   Fput (Qcoding_system_error, Qerror_conditions,
        Fcons (Qcoding_system_error, Fcons (Qerror, Qnil)));
   Fput (Qcoding_system_error, Qerror_message,
        build_string ("Invalid coding system"));
 
-  Qcoding_category = intern ("coding-category");
-  staticpro (&Qcoding_category);
-  Qcoding_category_index = intern ("coding-category-index");
-  staticpro (&Qcoding_category_index);
-
-  Vcoding_category_table
-    = Fmake_vector (make_number (CODING_CATEGORY_IDX_MAX), Qnil);
-  staticpro (&Vcoding_category_table);
-  {
-    int i;
-    for (i = 0; i < CODING_CATEGORY_IDX_MAX; i++)
-      {
-       XVECTOR (Vcoding_category_table)->contents[i]
-         = intern (coding_category_name[i]);
-       Fput (XVECTOR (Vcoding_category_table)->contents[i],
-             Qcoding_category_index, make_number (i));
-      }
-  }
-
-  Vcoding_system_safe_chars = Fcons (Qnil, Qnil);
-  staticpro (&Vcoding_system_safe_chars);
-
-  Qtranslation_table = intern ("translation-table");
-  staticpro (&Qtranslation_table);
-  Fput (Qtranslation_table, Qchar_table_extra_slots, make_number (2));
-
-  Qtranslation_table_id = intern ("translation-table-id");
-  staticpro (&Qtranslation_table_id);
-
-  Qtranslation_table_for_decode = intern ("translation-table-for-decode");
-  staticpro (&Qtranslation_table_for_decode);
-
-  Qtranslation_table_for_encode = intern ("translation-table-for-encode");
-  staticpro (&Qtranslation_table_for_encode);
-
-  Qsafe_chars = intern ("safe-chars");
-  staticpro (&Qsafe_chars);
-
-  Qchar_coding_system = intern ("char-coding-system");
-  staticpro (&Qchar_coding_system);
-
   /* Intern this now in case it isn't already done.
      Setting this variable twice is harmless.
      But don't staticpro it here--that is done in alloc.c.  */
   Qchar_table_extra_slots = intern ("char-table-extra-slots");
-  Fput (Qsafe_chars, Qchar_table_extra_slots, make_number (0));
-  Fput (Qchar_coding_system, Qchar_table_extra_slots, make_number (0));
 
-  Qvalid_codes = intern ("valid-codes");
-  staticpro (&Qvalid_codes);
-
-  Qascii_incompatible = intern ("ascii-incompatible");
-  staticpro (&Qascii_incompatible);
+  DEFSYM (Qtranslation_table, "translation-table");
+  Fput (Qtranslation_table, Qchar_table_extra_slots, make_number (2));
+  DEFSYM (Qtranslation_table_id, "translation-table-id");
+  DEFSYM (Qtranslation_table_for_decode, "translation-table-for-decode");
+  DEFSYM (Qtranslation_table_for_encode, "translation-table-for-encode");
 
-  Qemacs_mule = intern ("emacs-mule");
-  staticpro (&Qemacs_mule);
+  DEFSYM (Qvalid_codes, "valid-codes");
 
-  Qraw_text = intern ("raw-text");
-  staticpro (&Qraw_text);
+  DEFSYM (Qemacs_mule, "emacs-mule");
 
-  Qutf_8 = intern ("utf-8");
-  staticpro (&Qutf_8);
+  DEFSYM (QCcategory, ":category");
+  DEFSYM (QCmnemonic, ":mnemonic");
+  DEFSYM (QCdefalut_char, ":default-char");
+  DEFSYM (QCdecode_translation_table, ":decode-translation-table");
+  DEFSYM (QCencode_translation_table, ":encode-translation-table");
+  DEFSYM (QCpost_read_conversion, ":post-read-conversion");
+  DEFSYM (QCpre_write_conversion, ":pre-write-conversion");
+  DEFSYM (QCascii_compatible_p, ":ascii-compatible-p");
 
-  Qcoding_system_define_form = intern ("coding-system-define-form");
-  staticpro (&Qcoding_system_define_form);
+  Vcoding_category_table
+    = Fmake_vector (make_number (coding_category_max), Qnil);
+  staticpro (&Vcoding_category_table);
+  /* Followings are target of code detection.  */
+  ASET (Vcoding_category_table, coding_category_iso_7,
+       intern ("coding-category-iso-7"));
+  ASET (Vcoding_category_table, coding_category_iso_7_tight,
+       intern ("coding-category-iso-7-tight"));
+  ASET (Vcoding_category_table, coding_category_iso_8_1,
+       intern ("coding-category-iso-8-1"));
+  ASET (Vcoding_category_table, coding_category_iso_8_2,
+       intern ("coding-category-iso-8-2"));
+  ASET (Vcoding_category_table, coding_category_iso_7_else,
+       intern ("coding-category-iso-7-else"));
+  ASET (Vcoding_category_table, coding_category_iso_8_else,
+       intern ("coding-category-iso-8-else"));
+  ASET (Vcoding_category_table, coding_category_utf_8,
+       intern ("coding-category-utf-8"));
+  ASET (Vcoding_category_table, coding_category_utf_16_be,
+       intern ("coding-category-utf-16-be"));
+  ASET (Vcoding_category_table, coding_category_utf_16_auto,
+       intern ("coding-category-utf-16-auto"));
+  ASET (Vcoding_category_table, coding_category_utf_16_le,
+       intern ("coding-category-utf-16-le"));
+  ASET (Vcoding_category_table, coding_category_utf_16_be_nosig,
+       intern ("coding-category-utf-16-be-nosig"));
+  ASET (Vcoding_category_table, coding_category_utf_16_le_nosig,
+       intern ("coding-category-utf-16-le-nosig"));
+  ASET (Vcoding_category_table, coding_category_charset,
+       intern ("coding-category-charset"));
+  ASET (Vcoding_category_table, coding_category_sjis,
+       intern ("coding-category-sjis"));
+  ASET (Vcoding_category_table, coding_category_big5,
+       intern ("coding-category-big5"));
+  ASET (Vcoding_category_table, coding_category_ccl,
+       intern ("coding-category-ccl"));
+  ASET (Vcoding_category_table, coding_category_emacs_mule,
+       intern ("coding-category-emacs-mule"));
+  /* Followings are NOT target of code detection.  */
+  ASET (Vcoding_category_table, coding_category_raw_text,
+       intern ("coding-category-raw-text"));
+  ASET (Vcoding_category_table, coding_category_undecided,
+       intern ("coding-category-undecided"));
+
+  DEFSYM (Qinsufficient_source, "insufficient-source");
+  DEFSYM (Qinconsistent_eol, "inconsistent-eol");
+  DEFSYM (Qinvalid_source, "invalid-source");
+  DEFSYM (Qinterrupted, "interrupted");
+  DEFSYM (Qinsufficient_memory, "insufficient-memory");
+  DEFSYM (Qcoding_system_define_form, "coding-system-define-form");
 
   defsubr (&Scoding_system_p);
   defsubr (&Sread_coding_system);
@@ -7875,6 +9493,7 @@ syms_of_coding ()
   defsubr (&Sdetect_coding_string);
   defsubr (&Sfind_coding_systems_region_internal);
   defsubr (&Sunencodable_char_position);
+  defsubr (&Scheck_coding_systems_region);
   defsubr (&Sdecode_coding_region);
   defsubr (&Sencode_coding_region);
   defsubr (&Sdecode_coding_string);
@@ -7889,15 +9508,21 @@ syms_of_coding ()
   defsubr (&Sset_keyboard_coding_system_internal);
   defsubr (&Skeyboard_coding_system);
   defsubr (&Sfind_operation_coding_system);
-  defsubr (&Supdate_coding_systems_internal);
-  defsubr (&Sset_coding_priority_internal);
+  defsubr (&Sset_coding_system_priority);
   defsubr (&Sdefine_coding_system_internal);
+  defsubr (&Sdefine_coding_system_alias);
+  defsubr (&Scoding_system_put);
+  defsubr (&Scoding_system_base);
+  defsubr (&Scoding_system_plist);
+  defsubr (&Scoding_system_aliases);
+  defsubr (&Scoding_system_eol_type);
+  defsubr (&Scoding_system_priority_list);
 
   DEFVAR_LISP ("coding-system-list", &Vcoding_system_list,
               doc: /* List of coding systems.
 
 Do not alter the value of this variable manually.  This variable should be
-updated by the functions `make-coding-system' and
+updated by the functions `define-coding-system' and
 `define-coding-system-alias'.  */);
   Vcoding_system_list = Qnil;
 
@@ -7924,7 +9549,7 @@ Don't modify this variable directly, but use `set-coding-priority'.  */);
     int i;
 
     Vcoding_category_list = Qnil;
-    for (i = CODING_CATEGORY_IDX_MAX - 1; i >= 0; i--)
+    for (i = coding_category_max - 1; i >= 0; i--)
       Vcoding_category_list
        = Fcons (XVECTOR (Vcoding_category_table)->contents[i],
                 Vcoding_category_list);
@@ -7954,25 +9579,44 @@ the value of `buffer-file-coding-system' is used.  */);
   Vcoding_system_for_write = Qnil;
 
   DEFVAR_LISP ("last-coding-system-used", &Vlast_coding_system_used,
-              doc: /* Coding system used in the latest file or process I/O.
-Also set by `encode-coding-region', `decode-coding-region',
-`encode-coding-string' and `decode-coding-string'.  */);
+              doc: /*
+Coding system used in the latest file or process I/O.  */);
   Vlast_coding_system_used = Qnil;
 
+  DEFVAR_LISP ("last-code-conversion-error", &Vlast_code_conversion_error,
+              doc: /*
+Error status of the last code conversion.
+
+When an error was detected in the last code conversion, this variable
+is set to one of the following symbols.
+  `insufficient-source'
+  `inconsistent-eol'
+  `invalid-source'
+  `interrupted'
+  `insufficient-memory'
+When no error was detected, the value doesn't change.  So, to check
+the error status of a code conversion by this variable, you must
+explicitly set this variable to nil before performing code
+conversion.  */);
+  Vlast_code_conversion_error = Qnil;
+
   DEFVAR_BOOL ("inhibit-eol-conversion", &inhibit_eol_conversion,
-              doc: /* *Non-nil means always inhibit code conversion of end-of-line format.
+              doc: /*
+*Non-nil means always inhibit code conversion of end-of-line format.
 See info node `Coding Systems' and info node `Text and Binary' concerning
 such conversion.  */);
   inhibit_eol_conversion = 0;
 
   DEFVAR_BOOL ("inherit-process-coding-system", &inherit_process_coding_system,
-              doc: /* Non-nil means process buffer inherits coding system of process output.
+              doc: /*
+Non-nil means process buffer inherits coding system of process output.
 Bind it to t if the process output is to be treated as if it were a file
 read from some filesystem.  */);
   inherit_process_coding_system = 0;
 
   DEFVAR_LISP ("file-coding-system-alist", &Vfile_coding_system_alist,
-              doc: /* Alist to decide a coding system to use for a file I/O operation.
+              doc: /*
+Alist to decide a coding system to use for a file I/O operation.
 The format is ((PATTERN . VAL) ...),
 where PATTERN is a regular expression matching a file name,
 VAL is a coding system, a cons of coding systems, or a function symbol.
@@ -7992,7 +9636,8 @@ and the variable `auto-coding-alist'.  */);
   Vfile_coding_system_alist = Qnil;
 
   DEFVAR_LISP ("process-coding-system-alist", &Vprocess_coding_system_alist,
-    doc: /* Alist to decide a coding system to use for a process I/O operation.
+              doc: /*
+Alist to decide a coding system to use for a process I/O operation.
 The format is ((PATTERN . VAL) ...),
 where PATTERN is a regular expression matching a program name,
 VAL is a coding system, a cons of coding systems, or a function symbol.
@@ -8007,7 +9652,8 @@ See also the function `find-operation-coding-system'.  */);
   Vprocess_coding_system_alist = Qnil;
 
   DEFVAR_LISP ("network-coding-system-alist", &Vnetwork_coding_system_alist,
-    doc: /* Alist to decide a coding system to use for a network I/O operation.
+              doc: /*
+Alist to decide a coding system to use for a network I/O operation.
 The format is ((PATTERN . VAL) ...),
 where PATTERN is a regular expression matching a network service name
 or is a port number to connect to,
@@ -8029,23 +9675,28 @@ Also used for decoding keyboard input on X Window system.  */);
 
   /* The eol mnemonics are reset in startup.el system-dependently.  */
   DEFVAR_LISP ("eol-mnemonic-unix", &eol_mnemonic_unix,
-              doc: /* *String displayed in mode line for UNIX-like (LF) end-of-line format.  */);
+              doc: /*
+*String displayed in mode line for UNIX-like (LF) end-of-line format.  */);
   eol_mnemonic_unix = build_string (":");
 
   DEFVAR_LISP ("eol-mnemonic-dos", &eol_mnemonic_dos,
-              doc: /* *String displayed in mode line for DOS-like (CRLF) end-of-line format.  */);
+              doc: /*
+*String displayed in mode line for DOS-like (CRLF) end-of-line format.  */);
   eol_mnemonic_dos = build_string ("\\");
 
   DEFVAR_LISP ("eol-mnemonic-mac", &eol_mnemonic_mac,
-              doc: /* *String displayed in mode line for MAC-like (CR) end-of-line format.  */);
+              doc: /*
+*String displayed in mode line for MAC-like (CR) end-of-line format.  */);
   eol_mnemonic_mac = build_string ("/");
 
   DEFVAR_LISP ("eol-mnemonic-undecided", &eol_mnemonic_undecided,
-              doc: /* *String displayed in mode line when end-of-line format is not yet determined.  */);
+              doc: /*
+*String displayed in mode line when end-of-line format is not yet determined.  */);
   eol_mnemonic_undecided = build_string (":");
 
   DEFVAR_LISP ("enable-character-translation", &Venable_character_translation,
-              doc: /* *Non-nil enables character translation while encoding and decoding.  */);
+              doc: /*
+*Non-nil enables character translation while encoding and decoding.  */);
   Venable_character_translation = Qt;
 
   DEFVAR_LISP ("standard-translation-table-for-decode",
@@ -8058,11 +9709,12 @@ Also used for decoding keyboard input on X Window system.  */);
               doc: /* Table for translating characters while encoding.  */);
   Vstandard_translation_table_for_encode = Qnil;
 
-  DEFVAR_LISP ("charset-revision-table", &Vcharset_revision_alist,
+  DEFVAR_LISP ("charset-revision-table", &Vcharset_revision_table,
               doc: /* Alist of charsets vs revision numbers.
 While encoding, if a charset (car part of an element) is found,
-designate it with the escape sequence identifying revision (cdr part of the element).  */);
-  Vcharset_revision_alist = Qnil;
+designate it with the escape sequence identifying revision (cdr part
+of the element).  */);
+  Vcharset_revision_table = Qnil;
 
   DEFVAR_LISP ("default-process-coding-system",
               &Vdefault_process_coding_system,
@@ -8072,7 +9724,8 @@ the cdr part is used for encoding a text to be sent to a process.  */);
   Vdefault_process_coding_system = Qnil;
 
   DEFVAR_LISP ("latin-extra-code-table", &Vlatin_extra_code_table,
-              doc: /* Table of extra Latin codes in the range 128..159 (inclusive).
+              doc: /*
+Table of extra Latin codes in the range 128..159 (inclusive).
 This is a vector of length 256.
 If Nth element is non-nil, the existence of code N in a file
 \(or output of subprocess) doesn't prevent it to be detected as
@@ -8084,7 +9737,8 @@ Only 128th through 159th elements has a meaning.  */);
 
   DEFVAR_LISP ("select-safe-coding-system-function",
               &Vselect_safe_coding_system_function,
-              doc: /* Function to call to select safe coding system for encoding a text.
+              doc: /*
+Function to call to select safe coding system for encoding a text.
 
 If set, this function is called to force a user to select a proper
 coding system which can encode the text in the case that a default
@@ -8104,7 +9758,8 @@ called even if `coding-system-for-write' is non-nil.  The command
 
   DEFVAR_BOOL ("inhibit-iso-escape-detection",
               &inhibit_iso_escape_detection,
-              doc: /* If non-nil, Emacs ignores ISO2022's escape sequence on code detection.
+              doc: /*
+If non-nil, Emacs ignores ISO2022's escape sequence on code detection.
 
 By default, on reading a file, Emacs tries to detect how the text is
 encoded.  This code detection is sensitive to escape sequences.  If
@@ -8134,6 +9789,66 @@ escape sequence (e.g `latin-1') on reading by \\[universal-coding-system-argumen
 This is applied to the result of input methods, not their input.  See also
 `keyboard-translate-table'.  */);
     Vtranslation_table_for_input = Qnil;
+
+  {
+    Lisp_Object args[coding_arg_max];
+    Lisp_Object plist[16];
+    int i;
+
+    for (i = 0; i < coding_arg_max; i++)
+      args[i] = Qnil;
+
+    plist[0] = intern (":name");
+    plist[1] = args[coding_arg_name] = Qno_conversion;
+    plist[2] = intern (":mnemonic");
+    plist[3] = args[coding_arg_mnemonic] = make_number ('=');
+    plist[4] = intern (":coding-type");
+    plist[5] = args[coding_arg_coding_type] = Qraw_text;
+    plist[6] = intern (":ascii-compatible-p");
+    plist[7] = args[coding_arg_ascii_compatible_p] = Qt;
+    plist[8] = intern (":default-char");
+    plist[9] = args[coding_arg_default_char] = make_number (0);
+    plist[10] = intern (":for-unibyte");
+    plist[11] = args[coding_arg_for_unibyte] = Qt;
+    plist[12] = intern (":docstring");
+    plist[13] = build_string ("Do no conversion.\n\
+\n\
+When you visit a file with this coding, the file is read into a\n\
+unibyte buffer as is, thus each byte of a file is treated as a\n\
+character.");
+    plist[14] = intern (":eol-type");
+    plist[15] = args[coding_arg_eol_type] = Qunix;
+    args[coding_arg_plist] = Flist (16, plist);
+    Fdefine_coding_system_internal (coding_arg_max, args);
+
+    plist[1] = args[coding_arg_name] = Qundecided;
+    plist[3] = args[coding_arg_mnemonic] = make_number ('-');
+    plist[5] = args[coding_arg_coding_type] = Qundecided;
+    /* This is already set.
+       plist[7] = args[coding_arg_ascii_compatible_p] = Qt; */
+    plist[8] = intern (":charset-list");
+    plist[9] = args[coding_arg_charset_list] = Fcons (Qascii, Qnil);
+    plist[11] = args[coding_arg_for_unibyte] = Qnil;
+    plist[13] = build_string ("No conversion on encoding, automatic conversion on decoding.");
+    plist[15] = args[coding_arg_eol_type] = Qnil;
+    args[coding_arg_plist] = Flist (16, plist);
+    Fdefine_coding_system_internal (coding_arg_max, args);
+  }
+
+  setup_coding_system (Qno_conversion, &safe_terminal_coding);
+
+  {
+    int i;
+
+    for (i = 0; i < coding_category_max; i++)
+      Fset (AREF (Vcoding_category_table, i), Qno_conversion);
+  }
+#if defined (MSDOS) || defined (WINDOWSNT)
+  system_eol_type = Qdos;
+#else
+  system_eol_type = Qunix;
+#endif
+  staticpro (&system_eol_type);
 }
 
 char *
index a53a74ec161ca5ab3245e72fe2e52bfbb80da29e..ef464caeadc9e7a7572acb983573e67972cf64ec 100644 (file)
@@ -5,6 +5,9 @@
      2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
+   Copyright (C) 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -26,306 +29,253 @@ Boston, MA 02110-1301, USA.  */
 #ifndef EMACS_CODING_H
 #define EMACS_CODING_H
 
-#include "ccl.h"
+/* Index to arguments of Fdefine_coding_system_internal.  */
 
-/*** EMACS' INTERNAL FORMAT (emacs-mule) section ***/
+enum define_coding_system_arg_index
+  {
+    coding_arg_name,
+    coding_arg_mnemonic,
+    coding_arg_coding_type,
+    coding_arg_charset_list,
+    coding_arg_ascii_compatible_p,
+    coding_arg_decode_translation_table,
+    coding_arg_encode_translation_table,
+    coding_arg_post_read_conversion,
+    coding_arg_pre_write_conversion,
+    coding_arg_default_char,
+    coding_arg_for_unibyte,
+    coding_arg_plist,
+    coding_arg_eol_type,
+    coding_arg_max
+  };
 
-/* All code (1-byte) of Emacs' internal format is classified into one
-   of the followings.  See also `charset.h'.  */
-enum emacs_code_class_type
+enum define_coding_iso2022_arg_index
   {
-    EMACS_control_code,                /* Control codes in the range
-                                  0x00..0x1F and 0x7F except for the
-                                  following two codes.  */
-    EMACS_linefeed_code,       /* 0x0A (linefeed) to denote
-                                  end-of-line.  */
-    EMACS_carriage_return_code,        /* 0x0D (carriage-return) to be used
-                                  in selective display mode.  */
-    EMACS_ascii_code,          /* ASCII characters.  */
-    EMACS_leading_code_2,      /* Base leading code of official
-                                  TYPE9N character.  */
-    EMACS_leading_code_3,      /* Base leading code of private TYPE9N
-                                  or official TYPE9Nx9N character.  */
-    EMACS_leading_code_4,      /* Base leading code of private
-                                  TYPE9Nx9N character.  */
-    EMACS_invalid_code         /* Invalid code, i.e. a base leading
-                                  code not yet assigned to any
-                                  charset, or a code of the range
-                                  0xA0..0xFF.  */
+    coding_arg_iso2022_initial = coding_arg_max,
+    coding_arg_iso2022_reg_usage,
+    coding_arg_iso2022_request,
+    coding_arg_iso2022_flags,
+    coding_arg_iso2022_max
   };
 
-extern enum emacs_code_class_type emacs_code_class[256];
-
-/*** ISO2022 section ***/
-
-/* Macros to define code of control characters for ISO2022's functions.  */
-                       /* code */      /* function */
-#define ISO_CODE_LF    0x0A            /* line-feed */
-#define ISO_CODE_CR    0x0D            /* carriage-return */
-#define ISO_CODE_SO    0x0E            /* shift-out */
-#define ISO_CODE_SI    0x0F            /* shift-in */
-#define ISO_CODE_SS2_7 0x19            /* single-shift-2 for 7-bit code */
-#define ISO_CODE_ESC   0x1B            /* escape */
-#define ISO_CODE_SS2   0x8E            /* single-shift-2 */
-#define ISO_CODE_SS3   0x8F            /* single-shift-3 */
-#define ISO_CODE_CSI   0x9B            /* control-sequence-introduce */
-
-/* All code (1-byte) of ISO2022 is classified into one of the
-   followings.  */
-enum iso_code_class_type
+enum define_coding_utf16_arg_index
   {
-    ISO_control_0,             /* Control codes in the range
-                                  0x00..0x1F and 0x7F, except for the
-                                  following 5 codes.  */
-    ISO_carriage_return,       /* ISO_CODE_CR (0x0D) */
-    ISO_shift_out,             /* ISO_CODE_SO (0x0E) */
-    ISO_shift_in,              /* ISO_CODE_SI (0x0F) */
-    ISO_single_shift_2_7,      /* ISO_CODE_SS2_7 (0x19) */
-    ISO_escape,                        /* ISO_CODE_SO (0x1B) */
-    ISO_control_1,             /* Control codes in the range
-                                  0x80..0x9F, except for the
-                                  following 3 codes.  */
-    ISO_single_shift_2,                /* ISO_CODE_SS2 (0x8E) */
-    ISO_single_shift_3,                /* ISO_CODE_SS3 (0x8F) */
-    ISO_control_sequence_introducer, /* ISO_CODE_CSI (0x9B) */
-    ISO_0x20_or_0x7F,          /* Codes of the values 0x20 or 0x7F.  */
-    ISO_graphic_plane_0,       /* Graphic codes in the range 0x21..0x7E.  */
-    ISO_0xA0_or_0xFF,          /* Codes of the values 0xA0 or 0xFF.  */
-    ISO_graphic_plane_1                /* Graphic codes in the range 0xA1..0xFE.  */
+    coding_arg_utf16_bom = coding_arg_max,
+    coding_arg_utf16_endian,
+    coding_arg_utf16_max
   };
 
-/** The macros CODING_FLAG_ISO_XXX defines a flag bit of the `flags'
-  element in the structure `coding_system'.  This information is used
-  while encoding a text to ISO2022.  **/
+enum define_coding_ccl_arg_index
+  {
+    coding_arg_ccl_decoder = coding_arg_max,
+    coding_arg_ccl_encoder,
+    coding_arg_ccl_valids,
+    coding_arg_ccl_max
+  };
 
-/* If set, produce short-form designation sequence (e.g. ESC $ A)
-   instead of long-form sequence (e.g. ESC $ ( A).  */
-#define CODING_FLAG_ISO_SHORT_FORM     0x0001
+/* Hash table for all coding systems.  Keys are coding system symbols
+   and values are spec vectors of the corresponding coding system.  A
+   spec vector has the form [ ATTRS ALIASES EOL-TYPE ].  ATTRS is a
+   vector of attribute of the coding system.  ALIASES is a list of
+   aliases (symbols) of the coding system.  EOL-TYPE is `unix', `dos',
+   `mac' or a vector of coding systems (symbols).  */
 
-/* If set, reset graphic planes and registers at end-of-line to the
-   initial state.  */
-#define CODING_FLAG_ISO_RESET_AT_EOL   0x0002
+extern Lisp_Object Vcoding_system_hash_table;
 
-/* If set, reset graphic planes and registers before any control
-   characters to the initial state.  */
-#define CODING_FLAG_ISO_RESET_AT_CNTL  0x0004
 
-/* If set, encode by 7-bit environment.  */
-#define CODING_FLAG_ISO_SEVEN_BITS     0x0008
+/* Enumeration of coding system type.  */
 
-/* If set, use locking-shift function.  */
-#define CODING_FLAG_ISO_LOCKING_SHIFT  0x0010
+enum coding_system_type
+  {
+    coding_type_charset,
+    coding_type_utf_8,
+    coding_type_utf_16,
+    coding_type_iso_2022,
+    coding_type_emacs_mule,
+    coding_type_sjis,
+    coding_type_ccl,
+    coding_type_raw_text,
+    coding_type_undecided,
+    coding_type_max
+  };
 
-/* If set, use single-shift function.  Overwrite
-   CODING_FLAG_ISO_LOCKING_SHIFT.  */
-#define CODING_FLAG_ISO_SINGLE_SHIFT   0x0020
 
-/* If set, designate JISX0201-Roman instead of ASCII.  */
-#define CODING_FLAG_ISO_USE_ROMAN      0x0040
+/* Enumeration of end-of-line format type.  */
 
-/* If set, designate JISX0208-1978 instead of JISX0208-1983.  */
-#define CODING_FLAG_ISO_USE_OLDJIS     0x0080
+enum end_of_line_type
+  {
+    eol_lf,            /* Line-feed only, same as Emacs' internal
+                          format.  */
+    eol_crlf,          /* Sequence of carriage-return and
+                          line-feed.  */
+    eol_cr,            /* Carriage-return only.  */
+    eol_any,           /* Accept any of above.  Produce line-feed
+                          only.  */
+    eol_undecided,     /* This value is used to denote that the
+                          eol-type is not yet undecided.  */
+    eol_type_max
+  };
 
-/* If set, do not produce ISO6429's direction specifying sequence.  */
-#define CODING_FLAG_ISO_NO_DIRECTION   0x0100
+/* Enumeration of index to an attribute vector of a coding system.  */
 
-/* If set, assume designation states are reset at beginning of line on
-   output.  */
-#define CODING_FLAG_ISO_INIT_AT_BOL    0x0200
+enum coding_attr_index
+  {
+    coding_attr_base_name,
+    coding_attr_docstring,
+    coding_attr_mnemonic,
+    coding_attr_type,
+    coding_attr_charset_list,
+    coding_attr_ascii_compat,
+    coding_attr_decode_tbl,
+    coding_attr_encode_tbl,
+    coding_attr_trans_tbl,
+    coding_attr_post_read,
+    coding_attr_pre_write,
+    coding_attr_default_char,
+    coding_attr_for_unibyte,
+    coding_attr_plist,
+
+    coding_attr_category,
+    coding_attr_safe_charsets,
+
+    /* The followings are extra attributes for each type.  */
+    coding_attr_charset_valids,
+
+    coding_attr_ccl_decoder,
+    coding_attr_ccl_encoder,
+    coding_attr_ccl_valids,
+
+    coding_attr_iso_initial,
+    coding_attr_iso_usage,
+    coding_attr_iso_request,
+    coding_attr_iso_flags,
+
+    coding_attr_utf_16_bom,
+    coding_attr_utf_16_endian,
+
+    coding_attr_emacs_mule_full,
+
+    coding_attr_last_index
+  };
 
-/* If set, designation sequence should be placed at beginning of line
-   on output.  */
-#define CODING_FLAG_ISO_DESIGNATE_AT_BOL 0x0400
 
-/* If set, do not encode unsafe characters on output.  */
-#define CODING_FLAG_ISO_SAFE           0x0800
+/* Macros to access an element of an attribute vector.  */
 
-/* If set, extra latin codes (128..159) are accepted as a valid code
-   on input.  */
-#define CODING_FLAG_ISO_LATIN_EXTRA    0x1000
+#define CODING_ATTR_BASE_NAME(attrs)   AREF (attrs, coding_attr_base_name)
+#define CODING_ATTR_TYPE(attrs)                AREF (attrs, coding_attr_type)
+#define CODING_ATTR_CHARSET_LIST(attrs)        AREF (attrs, coding_attr_charset_list)
+#define CODING_ATTR_MNEMONIC(attrs)    AREF (attrs, coding_attr_mnemonic)
+#define CODING_ATTR_DOCSTRING(attrs)   AREF (attrs, coding_attr_docstring)
+#define CODING_ATTR_ASCII_COMPAT(attrs)        AREF (attrs, coding_attr_ascii_compat)
+#define CODING_ATTR_DECODE_TBL(attrs)  AREF (attrs, coding_attr_decode_tbl)
+#define CODING_ATTR_ENCODE_TBL(attrs)  AREF (attrs, coding_attr_encode_tbl)
+#define CODING_ATTR_TRANS_TBL(attrs)   AREF (attrs, coding_attr_trans_tbl)
+#define CODING_ATTR_POST_READ(attrs)   AREF (attrs, coding_attr_post_read)
+#define CODING_ATTR_PRE_WRITE(attrs)   AREF (attrs, coding_attr_pre_write)
+#define CODING_ATTR_DEFAULT_CHAR(attrs)        AREF (attrs, coding_attr_default_char)
+#define CODING_ATTR_FOR_UNIBYTE(attrs) AREF (attrs, coding_attr_for_unibyte)
+#define CODING_ATTR_FLUSHING(attrs)    AREF (attrs, coding_attr_flushing)
+#define CODING_ATTR_PLIST(attrs)       AREF (attrs, coding_attr_plist)
+#define CODING_ATTR_CATEGORY(attrs)    AREF (attrs, coding_attr_category)
+#define CODING_ATTR_SAFE_CHARSETS(attrs)AREF (attrs, coding_attr_safe_charsets)
 
-/* If set, use designation escape sequence.  */
-#define CODING_FLAG_ISO_DESIGNATION    0x10000
 
-/* A character to be produced on output if encoding of the original
-   character is inhibitted by CODING_MODE_INHIBIT_UNENCODABLE_CHAR.
-   It must be an ASCII character.  */
-#define CODING_REPLACEMENT_CHARACTER '?'
+/* Return the name of a coding system specified by ID.  */
+#define CODING_ID_NAME(id) \
+  (HASH_KEY (XHASH_TABLE (Vcoding_system_hash_table), id))
 
-/* Structure of the field `spec.iso2022' in the structure `coding_system'.  */
-struct iso2022_spec
-{
-  /* The current graphic register invoked to each graphic plane.  */
-  int current_invocation[2];
+/* Return the attribute vector of a coding system specified by ID.  */
 
-  /* The current charset designated to each graphic register.  */
-  int current_designation[4];
+#define CODING_ID_ATTRS(id)    \
+  (AREF (HASH_VALUE (XHASH_TABLE (Vcoding_system_hash_table), id), 0))
 
-  /* A charset initially designated to each graphic register.  */
-  int initial_designation[4];
+/* Return the list of aliases of a coding system specified by ID.  */
 
-  /* If not -1, it is a graphic register specified in an invalid
-     designation sequence.  */
-  int last_invalid_designation_register;
+#define CODING_ID_ALIASES(id)  \
+  (AREF (HASH_VALUE (XHASH_TABLE (Vcoding_system_hash_table), id), 1))
 
-  /* A graphic register to which each charset should be designated.  */
-  unsigned char requested_designation[MAX_CHARSET + 1];
+/* Return the eol-type of a coding system specified by ID.  */
 
-  /* A revision number to be specified for each charset on encoding.
-     The value 255 means no revision number for the corresponding
-     charset.  */
-  unsigned char charset_revision_number[MAX_CHARSET + 1];
+#define CODING_ID_EOL_TYPE(id) \
+  (AREF (HASH_VALUE (XHASH_TABLE (Vcoding_system_hash_table), id), 2))
 
-  /* Set to 1 temporarily only when graphic register 2 or 3 is invoked
-     by single-shift while encoding.  */
-  int single_shifting;
 
-  /* Set to 1 temporarily only when processing at beginning of line.  */
-  int bol;
-};
+/* Return the spec vector of CODING_SYSTEM_SYMBOL.  */
+
+#define CODING_SYSTEM_SPEC(coding_system_symbol)       \
+  (Fgethash (coding_system_symbol, Vcoding_system_hash_table, Qnil))
+
+
+/* Return the ID of CODING_SYSTEM_SYMBOL.  */
+
+#define CODING_SYSTEM_ID(coding_system_symbol)                 \
+  hash_lookup (XHASH_TABLE (Vcoding_system_hash_table),                \
+              coding_system_symbol, NULL)
+
+/* Return 1 if CODING_SYSTEM_SYMBOL is a coding system.  */
+
+#define CODING_SYSTEM_P(coding_system_symbol)          \
+  (CODING_SYSTEM_ID (coding_system_symbol) >= 0                \
+   || (! NILP (coding_system_symbol)                   \
+       && ! NILP (Fcoding_system_p (coding_system_symbol))))
+
+/* Check if X is a coding system or not.  */
+
+#define CHECK_CODING_SYSTEM(x)                         \
+  do {                                                 \
+    if (CODING_SYSTEM_ID (x) < 0                       \
+       && NILP (Fcheck_coding_system (x)))             \
+      wrong_type_argument (Qcoding_system_p, (x));     \
+  } while (0)
+
+
+/* Check if X is a coding system or not.  If it is, set SEPC to the
+   spec vector of the coding system.  */
+
+#define CHECK_CODING_SYSTEM_GET_SPEC(x, spec)          \
+  do {                                                 \
+    spec = CODING_SYSTEM_SPEC (x);                     \
+    if (NILP (spec))                                   \
+      {                                                        \
+       Fcheck_coding_system (x);                       \
+       spec = CODING_SYSTEM_SPEC (x);                  \
+      }                                                        \
+    if (NILP (spec))                                   \
+      x = wrong_type_argument (Qcoding_system_p, (x)); \
+  } while (0)
+
+
+/* Check if X is a coding system or not.  If it is, set ID to the
+   ID of the coding system.  */
+
+#define CHECK_CODING_SYSTEM_GET_ID(x, id)                      \
+  do                                                           \
+    {                                                          \
+      id = CODING_SYSTEM_ID (x);                               \
+      if (id < 0)                                              \
+       {                                                       \
+         Fcheck_coding_system (x);                             \
+         id = CODING_SYSTEM_ID (x);                            \
+       }                                                       \
+      if (id < 0)                                              \
+       x = wrong_type_argument (Qcoding_system_p, (x));        \
+    } while (0)
 
-/* Macros to access each field in the structure `spec.iso2022'.  */
-#define CODING_SPEC_ISO_INVOCATION(coding, plane) \
-  (coding)->spec.iso2022.current_invocation[plane]
-#define CODING_SPEC_ISO_DESIGNATION(coding, reg) \
-  (coding)->spec.iso2022.current_designation[reg]
-#define CODING_SPEC_ISO_INITIAL_DESIGNATION(coding, reg) \
-  (coding)->spec.iso2022.initial_designation[reg]
-#define CODING_SPEC_ISO_REQUESTED_DESIGNATION(coding, charset) \
-  (coding)->spec.iso2022.requested_designation[charset]
-#define CODING_SPEC_ISO_REVISION_NUMBER(coding, charset) \
-  (coding)->spec.iso2022.charset_revision_number[charset]
-#define CODING_SPEC_ISO_SINGLE_SHIFTING(coding) \
-  (coding)->spec.iso2022.single_shifting
-#define CODING_SPEC_ISO_BOL(coding) \
-  (coding)->spec.iso2022.bol
-
-/* A value which may appear in
-   coding->spec.iso2022.requested_designation indicating that the
-   corresponding charset does not request any graphic register to be
-   designated.  */
-#define CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION 4
-
-/* Return a charset which is currently designated to the graphic plane
-   PLANE in the coding-system CODING.  */
-#define CODING_SPEC_ISO_PLANE_CHARSET(coding, plane)   \
-  ((CODING_SPEC_ISO_INVOCATION (coding, plane) < 0)    \
-   ? -1                                                        \
-   : CODING_SPEC_ISO_DESIGNATION (coding,              \
-                                 CODING_SPEC_ISO_INVOCATION (coding, plane)))
-
-/*** BIG5 section ***/
-
-/* Macros to denote each type of BIG5 coding system.  */
-#define CODING_FLAG_BIG5_HKU   0x00 /* BIG5-HKU is one of variants of
-                                       BIG5 developed by Hong Kong
-                                       University.  */
-#define CODING_FLAG_BIG5_ETEN  0x01 /* BIG5_ETen is one of variants
-                                       of BIG5 developed by the
-                                       company ETen in Taiwan.  */
 
 /*** GENERAL section ***/
 
-/* Types of coding system.  */
-enum coding_type
+/* Enumeration of result code of code conversion.  */
+enum coding_result_code
   {
-    coding_type_no_conversion, /* A coding system which requires no
-                                  conversion for reading and writing
-                                  including end-of-line format.  */
-    coding_type_emacs_mule,    /* A coding system used in Emacs'
-                                  buffer and string.  Requires no
-                                  conversion for reading and writing
-                                  except for end-of-line format.  */
-    coding_type_undecided,     /* A coding system which requires
-                                  automatic detection of a real
-                                  coding system.  */
-    coding_type_sjis,          /* SJIS coding system for Japanese.  */
-    coding_type_iso2022,       /* Any coding system of ISO2022
-                                  variants.  */
-    coding_type_big5,          /* BIG5 coding system for Chinese.  */
-    coding_type_ccl,           /* The coding system of which decoder
-                                  and encoder are written in CCL.  */
-    coding_type_raw_text       /* A coding system for a text
-                                  containing random 8-bit code which
-                                  does not require code conversion
-                                  except for end-of-line format. */
+    CODING_RESULT_SUCCESS,
+    CODING_RESULT_INSUFFICIENT_SRC,
+    CODING_RESULT_INSUFFICIENT_DST,
+    CODING_RESULT_INCONSISTENT_EOL,
+    CODING_RESULT_INVALID_SRC,
+    CODING_RESULT_INTERRUPT,
+    CODING_RESULT_INSUFFICIENT_MEM
   };
 
-/* Formats of end-of-line.  */
-#define CODING_EOL_LF  0       /* Line-feed only, same as Emacs'
-                                  internal format.  */
-#define CODING_EOL_CRLF        1       /* Sequence of carriage-return and
-                                  line-feed.  */
-#define CODING_EOL_CR  2       /* Carriage-return only.  */
-#define CODING_EOL_UNDECIDED 3 /* This value is used to denote the
-                                  eol-type is not yet decided.  */
-#define CODING_EOL_INCONSISTENT 4 /* This value is used to denote the
-                                    eol-type is not consistent
-                                    through the file.  */
-
-/* 1 if composing.  */
-#define COMPOSING_P(coding) ((int) coding->composing > (int) COMPOSITION_NO)
-
-#define COMPOSITION_DATA_SIZE 4080
-#define COMPOSITION_DATA_MAX_BUNCH_LENGTH (4 + MAX_COMPOSITION_COMPONENTS*2)
-
-/* Data structure to hold information about compositions of text that
-   is being decoded or encode.  ISO 2022 base code conversion routines
-   handle special ESC sequences for composition specification.  But,
-   they can't get/put such information directly from/to a buffer in
-   the deepest place.  So, they store or retrieve the information
-   through this structure.
-
-   The encoder stores the information in this structure when it meets
-   ESC sequences for composition while encoding codes, then, after all
-   text codes are encoded, puts `composition' properties on the text
-   by referring to the structure.
-
-   The decoder at first stores the information of a text to be
-   decoded, then, while decoding codes, generates ESC sequences for
-   composition at proper places by referring to the structure.  */
-
-struct composition_data
-{
-  /* The character position of the first character to be encoded or
-     decoded.  START and END (see below) are relative to this
-     position.  */
-  int char_offset;
-
-  /* The composition data.  These elements are repeated for each
-     composition:
-       LENGTH START END METHOD [ COMPONENT ... ]
-     where,
-        LENGTH is the number of elements for this composition.
-
-       START and END are starting and ending character positions of
-       the composition relative to `char_offset'.
-
-       METHOD is one of `enum composing_status' specifying the way of
-       composition.
-
-       COMPONENT is a character or an encoded composition rule.  */
-  int data[COMPOSITION_DATA_SIZE];
-
-  /* The number of elements in `data' currently used.  */
-  int used;
-
-  /* Pointers to the previous and next structures.  When `data' is
-     filled up, another structure is allocated and linked in `next'.
-     The new structure has backward link to this structure in `prev'.
-     The number of chained structures depends on how many compositions
-     the text being encoded or decoded contains.  */
-  struct composition_data *prev, *next;
-};
-
-/* Macros used for the member `result' of the struct
-   coding_system.  */
-#define CODING_FINISH_NORMAL           0
-#define CODING_FINISH_INSUFFICIENT_SRC 1
-#define CODING_FINISH_INSUFFICIENT_DST 2
-#define CODING_FINISH_INCONSISTENT_EOL 3
-#define CODING_FINISH_INSUFFICIENT_CMP 4
-#define CODING_FINISH_INTERRUPT                5
 
 /* Macros used for the member `mode' of the struct coding_system.  */
 
@@ -334,7 +284,7 @@ struct composition_data
 #define CODING_MODE_INHIBIT_INCONSISTENT_EOL   0x01
 
 /* If set, the decoding/encoding routines treat the current data as
-   the last block of the whole text to be converted, and do
+   the last block of the whole text to be converted, and do the
    appropriate finishing job.  */
 #define CODING_MODE_LAST_BLOCK                 0x02
 
@@ -342,65 +292,106 @@ struct composition_data
    enables selective display.  */
 #define CODING_MODE_SELECTIVE_DISPLAY          0x04
 
-/* If set, replace unencodabae characters by `?' on encoding.  */
-#define CODING_MODE_INHIBIT_UNENCODABLE_CHAR   0x08
-
 /* This flag is used by the decoding/encoding routines on the fly.  If
    set, it means that right-to-left text is being processed.  */
-#define CODING_MODE_DIRECTION                  0x10
+#define CODING_MODE_DIRECTION                  0x08
 
-struct coding_system
+#define CODING_MODE_FIXED_DESTINATION          0x10
+
+/* If set, it means that the encoding routines produces some safe
+   ASCII characters (usually '?') for unsupported characters.  */
+#define CODING_MODE_SAFE_ENCODING              0x20
+
+/* Structure of the field `spec.iso_2022' in the structure
+   `coding_system'.  */
+struct iso_2022_spec
 {
-  /* Type of the coding system.  */
-  enum coding_type type;
+  /* Bit-wise-or of CODING_ISO_FLAG_XXX.  */
+  unsigned flags;
 
-  /* Type of end-of-line format (LF, CRLF, or CR) of the coding system.  */
-  int eol_type;
+  /* The current graphic register invoked to each graphic plane.  */
+  int current_invocation[2];
 
-  /* Flag bits of the coding system.  The meaning of each bit is common
-     to all types of coding systems.  */
-  unsigned int common_flags;
+  /* The current charset designated to each graphic register.  The
+     value -1 means that not charset is designated, -2 means that
+     there was an invalid designation previously.  */
+  int current_designation[4];
 
-  /* Flag bits of the coding system.  The meaning of each bit depends
-     on the type of the coding system.  */
-  unsigned int flags;
+  /* Set to 1 temporarily only when graphic register 2 or 3 is invoked
+     by single-shift while encoding.  */
+  int single_shifting;
 
-  /* Mode bits of the coding system.  See the comments of the macros
-     CODING_MODE_XXX.  */
-  unsigned int mode;
+  /* Set to 1 temporarily only when processing at beginning of line.  */
+  int bol;
+};
+
+struct ccl_spec;
+
+enum utf_16_bom_type
+  {
+    utf_16_detect_bom,
+    utf_16_without_bom,
+    utf_16_with_bom
+  };
+
+enum utf_16_endian_type
+  {
+    utf_16_big_endian,
+    utf_16_little_endian
+  };
+
+struct utf_16_spec
+{
+  enum utf_16_bom_type bom;
+  enum utf_16_endian_type endian;
+  int surrogate;
+};
 
-  /* The current status of composition handling.  */
-  int composing;
+struct coding_detection_info
+{
+  /* Values of these members are bitwise-OR of CATEGORY_MASK_XXXs.  */
+  /* Which categories are already checked.  */
+  int checked;
+  /* Which categories are strongly found.  */
+  int found;
+  /* Which categories are rejected.  */
+  int rejected;
+};
 
-  /* 1 if the next character is a composition rule.  */
-  int composition_rule_follows;
 
-  /* Information of compositions are stored here on decoding and set
-     in advance on encoding.  */
-  struct composition_data *cmp_data;
+struct coding_system
+{
+  /* ID number of the coding system.  This is an index to
+     Vcoding_system_hash_table.  This value is set by
+     setup_coding_system.  At the early stage of building time, this
+     value is -1 in the array coding_categories to indicate that no
+     coding-system of that category is yet defined.  */
+  int id;
 
-  /* Index to cmp_data->data for the first element for the current
-     composition.  */
-  int cmp_data_start;
+  /* Flag bits of the coding system.  The meaning of each bit is common
+     to all types of coding systems.  */
+  int common_flags;
 
-  /* Index to cmp_data->data for the current element for the current
-     composition.  */
-  int cmp_data_index;
+  /* Mode bits of the coding system.  See the comments of the macros
+     CODING_MODE_XXX.  */
+  unsigned int mode;
 
   /* Detailed information specific to each type of coding system.  */
-  union spec
+  union
     {
-      struct iso2022_spec iso2022;
-      struct ccl_spec ccl;     /* Defined in ccl.h.  */
+      struct iso_2022_spec iso_2022;
+      struct ccl_spec *ccl;    /* Defined in ccl.h.  */
+      struct utf_16_spec utf_16;
+      int emacs_mule_full_support;
     } spec;
 
-  /* Index number of coding category of the coding system.  */
-  int category_idx;
+  int max_charset_id;
+  char *safe_charsets;
 
-  /* The following two members specify how characters 128..159 are
-     represented in source and destination text respectively.  1 means
-     they are represented by 2-byte sequence, 0 means they are
-     represented by 1-byte as is (see the comment in charset.h).  */
+  /* The following two members specify how binary 8-bit code 128..255
+     are represented in source and destination text respectively.  1
+     means they are represented by 2-byte sequence, 0 means they are
+     represented by 1-byte as is (see the comment in character.h).  */
   unsigned src_multibyte : 1;
   unsigned dst_multibyte : 1;
 
@@ -408,173 +399,200 @@ struct coding_system
      -1 in setup_coding_system, and updated by detect_coding.  So,
      when this is equal to the byte length of the text being
      converted, we can skip the actual conversion process.  */
-  int heading_ascii;
+  int head_ascii;
 
   /* The following members are set by encoding/decoding routine.  */
-  int produced, produced_char, consumed, consumed_char;
+  EMACS_INT produced, produced_char, consumed, consumed_char;
 
   /* Number of error source data found in a decoding routine.  */
   int errors;
 
-  /* Finish status of code conversion.  It should be one of macros
-     CODING_FINISH_XXXX.  */
-  int result;
+  /* Store the positions of error source data. */
+  EMACS_INT *error_positions;
 
-  /* If nonzero, suppress error notification.  */
-  int suppress_error;
+  /* Finish status of code conversion.  */
+  enum coding_result_code result;
 
-  /* The following members are all Lisp symbols.  We don't have to
-     protect them from GC because the current garbage collection
-     doesn't relocate Lisp symbols.  But, when it is changed, we must
-     find a way to protect them.  */
+  EMACS_INT src_pos, src_pos_byte, src_chars, src_bytes;
+  Lisp_Object src_object;
+  const unsigned char *source;
 
-  /* Backward pointer to the Lisp symbol of the coding system.  */
-  Lisp_Object symbol;
+  EMACS_INT dst_pos, dst_pos_byte, dst_bytes;
+  Lisp_Object dst_object;
+  unsigned char *destination;
 
-  /* Lisp function (symbol) to be called after decoding to do
-     additional conversion, or nil.  */
-  Lisp_Object post_read_conversion;
+  /* Set to 1 if the source of conversion is not in the member
+     `charbuf', but at `src_object'.  */
+  int chars_at_source;
 
-  /* Lisp function (symbol) to be called before encoding to do
-     additional conversion, or nil.  */
-  Lisp_Object pre_write_conversion;
+  /* If an element is non-negative, it is a character code.
 
-  /* Character translation tables to look up, or nil.  */
-  Lisp_Object translation_table_for_decode;
-  Lisp_Object translation_table_for_encode;
-};
+     If it is in the range -128..-1, it is a 8-bit character code
+     minus 256.
+
+     If it is less than -128, it specifies the start of an annotation
+     chunk.  The length of the chunk is -128 minus the value of the
+     element.  The following elements are OFFSET, ANNOTATION-TYPE, and
+     a sequence of actual data for the annotation.  OFFSET is a
+     character position offset from dst_pos or src_pos,
+     ANNOTATION-TYPE specfies the meaning of the annotation and how to
+     handle the following data..  */
+  int *charbuf;
+  int charbuf_size, charbuf_used;
+
+  /* Set to 1 if charbuf contains an annotation.  */
+  int annotated;
+
+  unsigned char carryover[64];
+  int carryover_bytes;
+
+  int default_char;
 
-/* Mask bits for (struct coding_system *)->common_flags.  */
-#define CODING_REQUIRE_FLUSHING_MASK   0x01
-#define CODING_REQUIRE_DECODING_MASK   0x02
-#define CODING_REQUIRE_ENCODING_MASK   0x04
-#define CODING_REQUIRE_DETECTION_MASK  0x08
-#define CODING_ASCII_INCOMPATIBLE_MASK 0x10
+  int (*detector) P_ ((struct coding_system *,
+                      struct coding_detection_info *));
+  void (*decoder) P_ ((struct coding_system *));
+  int (*encoder) P_ ((struct coding_system *));
+};
 
-/* Return 1 if the coding system CODING requires specific code to be
+/* Meanings of bits in the member `common_flags' of the structure
+   coding_system.  The lowest 8 bits are reserved for various kind of
+   annotations (currently two of them are used).  */
+#define CODING_ANNOTATION_MASK                 0x00FF
+#define CODING_ANNOTATE_COMPOSITION_MASK       0x0001
+#define CODING_ANNOTATE_DIRECTION_MASK         0x0002
+#define CODING_ANNOTATE_CHARSET_MASK           0x0003
+#define CODING_FOR_UNIBYTE_MASK                        0x0100
+#define CODING_REQUIRE_FLUSHING_MASK           0x0200
+#define CODING_REQUIRE_DECODING_MASK           0x0400
+#define CODING_REQUIRE_ENCODING_MASK           0x0800
+#define CODING_REQUIRE_DETECTION_MASK          0x1000
+#define CODING_RESET_AT_BOL_MASK               0x2000
+
+/* Return 1 if the coding context CODING requires annotaion
+   handling.  */
+#define CODING_REQUIRE_ANNOTATION(coding) \
+  ((coding)->common_flags & CODING_ANNOTATION_MASK)
+
+/* Return 1 if the coding context CODING prefers decoding into unibyte.  */
+#define CODING_FOR_UNIBYTE(coding) \
+  ((coding)->common_flags & CODING_FOR_UNIBYTE_MASK)
+
+/* Return 1 if the coding context CODING requires specific code to be
    attached at the tail of converted text.  */
 #define CODING_REQUIRE_FLUSHING(coding) \
   ((coding)->common_flags & CODING_REQUIRE_FLUSHING_MASK)
 
-/* Return 1 if the coding system CODING requires code conversion on
+/* Return 1 if the coding context CODING requires code conversion on
    decoding.  */
 #define CODING_REQUIRE_DECODING(coding)        \
   ((coding)->dst_multibyte             \
    || (coding)->common_flags & CODING_REQUIRE_DECODING_MASK)
 
-/* Return 1 if the coding system CODING requires code conversion on
+
+/* Return 1 if the coding context CODING requires code conversion on
    encoding.
    The non-multibyte part of the condition is to support encoding of
    unibyte strings/buffers generated by string-as-unibyte or
    (set-buffer-multibyte nil) from multibyte strings/buffers.  */
-#define CODING_REQUIRE_ENCODING(coding)        \
-  ((coding)->src_multibyte             \
-   || (coding)->common_flags & CODING_REQUIRE_ENCODING_MASK)
+#define CODING_REQUIRE_ENCODING(coding)                                \
+  ((coding)->src_multibyte                                     \
+   || (coding)->common_flags & CODING_REQUIRE_ENCODING_MASK    \
+   || (coding)->mode & CODING_MODE_SELECTIVE_DISPLAY)
 
-/* Return 1 if the coding system CODING requires some kind of code
+
+/* Return 1 if the coding context CODING requires some kind of code
    detection.  */
 #define CODING_REQUIRE_DETECTION(coding) \
   ((coding)->common_flags & CODING_REQUIRE_DETECTION_MASK)
 
-/* Return 1 if the coding system CODING requires code conversion on
+/* Return 1 if the coding context CODING requires code conversion on
    decoding or some kind of code detection.  */
 #define CODING_MAY_REQUIRE_DECODING(coding)    \
   (CODING_REQUIRE_DECODING (coding)            \
    || CODING_REQUIRE_DETECTION (coding))
 
-/* Index for each coding category in `coding_category_table' */
-#define CODING_CATEGORY_IDX_EMACS_MULE 0
-#define CODING_CATEGORY_IDX_SJIS       1
-#define CODING_CATEGORY_IDX_ISO_7      2
-#define CODING_CATEGORY_IDX_ISO_7_TIGHT        3
-#define CODING_CATEGORY_IDX_ISO_8_1    4
-#define CODING_CATEGORY_IDX_ISO_8_2    5
-#define CODING_CATEGORY_IDX_ISO_7_ELSE 6
-#define CODING_CATEGORY_IDX_ISO_8_ELSE 7
-#define CODING_CATEGORY_IDX_CCL                8
-#define CODING_CATEGORY_IDX_BIG5       9
-#define CODING_CATEGORY_IDX_UTF_8       10
-#define CODING_CATEGORY_IDX_UTF_16_BE   11
-#define CODING_CATEGORY_IDX_UTF_16_LE   12
-#define CODING_CATEGORY_IDX_RAW_TEXT   13
-#define CODING_CATEGORY_IDX_BINARY     14
-#define CODING_CATEGORY_IDX_MAX                15
-
-/* Definitions of flag bits returned by the function
-   detect_coding_mask ().  */
-#define CODING_CATEGORY_MASK_EMACS_MULE        (1 << CODING_CATEGORY_IDX_EMACS_MULE)
-#define CODING_CATEGORY_MASK_SJIS      (1 << CODING_CATEGORY_IDX_SJIS)
-#define CODING_CATEGORY_MASK_ISO_7     (1 << CODING_CATEGORY_IDX_ISO_7)
-#define CODING_CATEGORY_MASK_ISO_7_TIGHT (1 << CODING_CATEGORY_IDX_ISO_7_TIGHT)
-#define CODING_CATEGORY_MASK_ISO_8_1   (1 << CODING_CATEGORY_IDX_ISO_8_1)
-#define CODING_CATEGORY_MASK_ISO_8_2   (1 << CODING_CATEGORY_IDX_ISO_8_2)
-#define CODING_CATEGORY_MASK_ISO_7_ELSE        (1 << CODING_CATEGORY_IDX_ISO_7_ELSE)
-#define CODING_CATEGORY_MASK_ISO_8_ELSE        (1 << CODING_CATEGORY_IDX_ISO_8_ELSE)
-#define CODING_CATEGORY_MASK_CCL       (1 << CODING_CATEGORY_IDX_CCL)
-#define CODING_CATEGORY_MASK_BIG5      (1 << CODING_CATEGORY_IDX_BIG5)
-#define CODING_CATEGORY_MASK_UTF_8      (1 << CODING_CATEGORY_IDX_UTF_8)
-#define CODING_CATEGORY_MASK_UTF_16_BE  (1 << CODING_CATEGORY_IDX_UTF_16_BE)
-#define CODING_CATEGORY_MASK_UTF_16_LE  (1 << CODING_CATEGORY_IDX_UTF_16_LE)
-#define CODING_CATEGORY_MASK_RAW_TEXT  (1 << CODING_CATEGORY_IDX_RAW_TEXT)
-#define CODING_CATEGORY_MASK_BINARY    (1 << CODING_CATEGORY_IDX_BINARY)
-
-/* This value is returned if detect_coding_mask () find nothing other
-   than ASCII characters.  */
-#define CODING_CATEGORY_MASK_ANY       \
-  (  CODING_CATEGORY_MASK_EMACS_MULE   \
-   | CODING_CATEGORY_MASK_SJIS         \
-   | CODING_CATEGORY_MASK_ISO_7                \
-   | CODING_CATEGORY_MASK_ISO_7_TIGHT          \
-   | CODING_CATEGORY_MASK_ISO_8_1      \
-   | CODING_CATEGORY_MASK_ISO_8_2      \
-   | CODING_CATEGORY_MASK_ISO_7_ELSE   \
-   | CODING_CATEGORY_MASK_ISO_8_ELSE   \
-   | CODING_CATEGORY_MASK_CCL          \
-   | CODING_CATEGORY_MASK_BIG5         \
-   | CODING_CATEGORY_MASK_UTF_8                \
-   | CODING_CATEGORY_MASK_UTF_16_BE    \
-   | CODING_CATEGORY_MASK_UTF_16_LE)
-
-#define CODING_CATEGORY_MASK_ISO_7BIT \
-  (CODING_CATEGORY_MASK_ISO_7 | CODING_CATEGORY_MASK_ISO_7_TIGHT)
-
-#define CODING_CATEGORY_MASK_ISO_8BIT \
-  (CODING_CATEGORY_MASK_ISO_8_1 | CODING_CATEGORY_MASK_ISO_8_2)
-
-#define CODING_CATEGORY_MASK_ISO_SHIFT \
-  (CODING_CATEGORY_MASK_ISO_7_ELSE | CODING_CATEGORY_MASK_ISO_8_ELSE)
-
-#define CODING_CATEGORY_MASK_ISO       \
-  (  CODING_CATEGORY_MASK_ISO_7BIT     \
-   | CODING_CATEGORY_MASK_ISO_SHIFT    \
-   | CODING_CATEGORY_MASK_ISO_8BIT)
-
-#define CODING_CATEGORY_MASK_UTF_16_BE_LE \
-   (CODING_CATEGORY_MASK_UTF_16_BE | CODING_CATEGORY_MASK_UTF_16_LE)
-
 /* Macros to decode or encode a character of JISX0208 in SJIS.  S1 and
    S2 are the 1st and 2nd position-codes of JISX0208 in SJIS coding
    system.  C1 and C2 are the 1st and 2nd position codes of Emacs'
    internal format.  */
 
-#define DECODE_SJIS(s1, s2, c1, c2)                    \
-  do {                                                 \
-    if (s2 >= 0x9F)                                    \
-      c1 = s1 * 2 - (s1 >= 0xE0 ? 0x160 : 0xE0),       \
-      c2 = s2 - 0x7E;                                  \
-    else                                               \
-      c1 = s1 * 2 - ((s1 >= 0xE0) ? 0x161 : 0xE1),     \
-      c2 = s2 - ((s2 >= 0x7F) ? 0x20 : 0x1F);          \
+#define SJIS_TO_JIS(code)                              \
+  do {                                                 \
+    int s1, s2, j1, j2;                                        \
+                                                       \
+    s1 = (code) >> 8, s2 = (code) & 0xFF;              \
+                                                       \
+    if (s2 >= 0x9F)                                    \
+      (j1 = s1 * 2 - (s1 >= 0xE0 ? 0x160 : 0xE0),      \
+       j2 = s2 - 0x7E);                                        \
+    else                                               \
+      (j1 = s1 * 2 - ((s1 >= 0xE0) ? 0x161 : 0xE1),    \
+       j2 = s2 - ((s2 >= 0x7F) ? 0x20 : 0x1F));                \
+    (code) = (j1 << 8) | j2;                           \
+  } while (0)
+
+#define SJIS_TO_JIS2(code)                             \
+  do {                                                 \
+    int s1, s2, j1, j2;                                        \
+                                                       \
+    s1 = (code) >> 8, s2 = (code) & 0xFF;              \
+                                                       \
+    if (s2 >= 0x9F)                                    \
+      {                                                        \
+       j1 = (s1 == 0xF0 ? 0x28                         \
+             : s1 == 0xF1 ? 0x24                       \
+             : s1 == 0xF2 ? 0x2C                       \
+             : s1 == 0xF3 ? 0x2E                       \
+             : 0x6E + (s1 - 0xF4) * 2);                \
+       j2 = s2 - 0x7E;                                 \
+      }                                                        \
+    else                                               \
+      {                                                        \
+       j1 = (s1 <= 0xF2 ? 0x21 + (s1 - 0xF0) * 2       \
+             : s1 <= 0xF4 ? 0x2D + (s1 - 0xF3) * 2     \
+             : 0x6F + (s1 - 0xF5) * 2);                \
+       j2 = s2 - ((s2 >= 0x7F ? 0x20 : 0x1F));         \
+      }                                                        \
+    (code) = (j1 << 8) | j2;                           \
+  } while (0)
+
+
+#define JIS_TO_SJIS(code)                              \
+  do {                                                 \
+    int s1, s2, j1, j2;                                        \
+                                                       \
+    j1 = (code) >> 8, j2 = (code) & 0xFF;              \
+    if (j1 & 1)                                                \
+      (s1 = j1 / 2 + ((j1 < 0x5F) ? 0x71 : 0xB1),      \
+       s2 = j2 + ((j2 >= 0x60) ? 0x20 : 0x1F));                \
+    else                                               \
+      (s1 = j1 / 2 + ((j1 < 0x5F) ? 0x70 : 0xB0),      \
+       s2 = j2 + 0x7E);                                        \
+    (code) = (s1 << 8) | s2;                           \
   } while (0)
 
-#define ENCODE_SJIS(c1, c2, s1, s2)                    \
+#define JIS_TO_SJIS2(code)                             \
   do {                                                 \
-    if (c1 & 1)                                                \
-      s1 = c1 / 2 + ((c1 < 0x5F) ? 0x71 : 0xB1),       \
-      s2 = c2 + ((c2 >= 0x60) ? 0x20 : 0x1F);          \
+    int s1, s2, j1, j2;                                        \
+                                                       \
+    j1 = (code) >> 8, j2 = (code) & 0xFF;              \
+    if (j1 & 1)                                                \
+      {                                                        \
+       s1 = (j1 <= 0x25 ? 0xF0 + (j1 - 0x21) / 2       \
+             : j1 <= 0x27 ? 0xF3 + (j1 - 0x2D) / 2     \
+             : 0xF5 + (j1 - 0x6F) / 2);                \
+       s2 = j2 + ((j2 >= 0x60) ? 0x20 : 0x1F);         \
+      }                                                        \
     else                                               \
-      s1 = c1 / 2 + ((c1 < 0x5F) ? 0x70 : 0xB0),       \
-      s2 = c2 + 0x7E;                                  \
+      {                                                        \
+       s1 = (j1 == 0x28 ? 0xF0                         \
+             : j1 == 0x24 ? 0xF1                       \
+             : j1 == 0x2C ? 0xF2                       \
+             : j1 == 0x2E ? 0xF3                       \
+             : 0xF4 + (j1 - 0x6E) / 2);                \
+       s2 = j2 + 0x7E;                                 \
+      }                                                        \
+    (code) = (s1 << 8) | s2;                           \
   } while (0)
 
 /* Encode the file name NAME using the specified coding system
@@ -588,6 +606,7 @@ struct coding_system
       ? code_convert_string_norecord (name, Vdefault_file_name_coding_system, 1) \
       : name))
 
+
 /* Decode the file name NAME using the specified coding system
    for file names, if any.  */
 #define DECODE_FILE(name)                                                 \
@@ -599,6 +618,7 @@ struct coding_system
       ? code_convert_string_norecord (name, Vdefault_file_name_coding_system, 0) \
       : name))
 
+
 /* Encode the string STR using the specified coding system
    for system functions, if any.  */
 #define ENCODE_SYSTEM(str)                                                \
@@ -615,54 +635,83 @@ struct coding_system
    ? code_convert_string_norecord (str, Vlocale_coding_system, 0)         \
    : str)
 
+/* Used by the gtk menu code.  Note that this encodes utf-8, not
+   utf-8-emacs, so it's not a no-op.  */
 #define ENCODE_UTF_8(str) code_convert_string_norecord (str, Qutf_8, 1)
 
 /* Extern declarations.  */
-extern int decode_coding P_ ((struct coding_system *, const unsigned char *,
-                             unsigned char *, int, int));
-extern int encode_coding P_ ((struct coding_system *, const unsigned char *,
-                             unsigned char *, int, int));
-extern void coding_save_composition P_ ((struct coding_system *, int, int,
-                                        Lisp_Object));
-extern void coding_free_composition_data P_ ((struct coding_system *));
-extern void coding_adjust_composition_offset P_ ((struct coding_system *,
-                                                 int));
-extern void coding_allocate_composition_data P_ ((struct coding_system *,
-                                                 int));
-extern void coding_restore_composition P_ ((struct coding_system *,
-                                           Lisp_Object));
-extern int code_convert_region P_ ((int, int, int, int, struct coding_system *,
-                                   int, int));
-extern Lisp_Object run_pre_post_conversion_on_str P_ ((Lisp_Object,
-                                                      struct coding_system *,
-                                                      int));
-extern void run_pre_write_conversin_on_c_str P_ ((unsigned char **, int *,
-                                                 int, int,
-                                                 struct coding_system *));
-
+extern Lisp_Object code_conversion_save P_ ((int, int));
 extern int decoding_buffer_size P_ ((struct coding_system *, int));
 extern int encoding_buffer_size P_ ((struct coding_system *, int));
-extern void detect_coding P_ ((struct coding_system *, const unsigned char *,
-                              int));
-extern void detect_eol P_ ((struct coding_system *, const unsigned char *,
-                           int));
-extern int setup_coding_system P_ ((Lisp_Object, struct coding_system *));
-extern Lisp_Object code_convert_string P_ ((Lisp_Object,
-                                           struct coding_system *, int, int));
-extern Lisp_Object code_convert_string1 P_ ((Lisp_Object, Lisp_Object,
-                                            Lisp_Object, int));
+extern void setup_coding_system P_ ((Lisp_Object, struct coding_system *));
+extern Lisp_Object coding_charset_list P_ ((struct coding_system *));
+extern void detect_coding P_ ((struct coding_system *));
+extern Lisp_Object code_convert_region P_ ((Lisp_Object, Lisp_Object,
+                                           Lisp_Object, Lisp_Object,
+                                           int, int));
+extern Lisp_Object code_convert_string P_ ((Lisp_Object, Lisp_Object,
+                                           Lisp_Object, int, int, int));
 extern Lisp_Object code_convert_string_norecord P_ ((Lisp_Object, Lisp_Object,
                                                     int));
-extern void setup_raw_text_coding_system P_ ((struct coding_system *));
-extern Lisp_Object encode_coding_string P_ ((Lisp_Object,
-                                            struct coding_system *, int));
-extern Lisp_Object decode_coding_string P_ ((Lisp_Object,
-                                            struct coding_system *, int));
+extern Lisp_Object raw_text_coding_system P_ ((Lisp_Object));
+extern Lisp_Object coding_inherit_eol_type P_ ((Lisp_Object, Lisp_Object));
+
+extern int decode_coding_gap P_ ((struct coding_system *,
+                                 EMACS_INT, EMACS_INT));
+extern int encode_coding_gap P_ ((struct coding_system *,
+                                 EMACS_INT, EMACS_INT));
+extern void decode_coding_object P_ ((struct coding_system *,
+                                     Lisp_Object, EMACS_INT, EMACS_INT,
+                                     EMACS_INT, EMACS_INT, Lisp_Object));
+extern void encode_coding_object P_ ((struct coding_system *,
+                                     Lisp_Object, EMACS_INT, EMACS_INT,
+                                     EMACS_INT, EMACS_INT, Lisp_Object));
+
+/* Macros for backward compatibility.  */
+
+#define decode_coding_region(coding, from, to)         \
+  decode_coding_object (coding, Fcurrent_buffer (),    \
+                       from, CHAR_TO_BYTE (from),      \
+                       to, CHAR_TO_BYTE (to), Fcurrent_buffer ())
+
+
+#define encode_coding_region(coding, from, to)         \
+  encode_coding_object (coding, Fcurrent_buffer (),    \
+                       from, CHAR_TO_BYTE (from),      \
+                       to, CHAR_TO_BYTE (to), Fcurrent_buffer ())
+
+
+#define decode_coding_string(coding, string, nocopy)                   \
+  decode_coding_object (coding, string, 0, 0, XSTRING (string)->size,  \
+                       STRING_BYTES (XSTRING (string)), Qt)
+
+#define encode_coding_string(coding, string, nocopy)                   \
+  (encode_coding_object (coding, string, 0, 0, XSTRING (string)->size, \
+                        STRING_BYTES (XSTRING (string)), Qt),          \
+   (coding)->dst_object)
+
+
+#define decode_coding_c_string(coding, src, bytes, dst_object)         \
+  do {                                                                 \
+    (coding)->source = (src);                                          \
+    (coding)->src_chars = (coding)->src_bytes = (bytes);               \
+    decode_coding_object ((coding), Qnil, 0, 0, (bytes), (bytes),      \
+                         (dst_object));                                \
+  } while (0)
+
+
+extern Lisp_Object preferred_coding_system P_ (());
+
+
+extern Lisp_Object Qutf_8, Qutf_8_emacs;
+
 extern Lisp_Object Qcoding_system, Qeol_type, Qcoding_category_index;
-extern Lisp_Object Qraw_text, Qemacs_mule;
+extern Lisp_Object Qcoding_system_p;
+extern Lisp_Object Qraw_text, Qemacs_mule, Qno_conversion, Qundecided;
+extern Lisp_Object Qiso_2022;
 extern Lisp_Object Qbuffer_file_coding_system;
-extern Lisp_Object Vcoding_category_list;
-extern Lisp_Object Qutf_8;
+
+extern Lisp_Object Qunix, Qdos, Qmac;
 
 extern Lisp_Object Qtranslation_table;
 extern Lisp_Object Qtranslation_table_id;
@@ -672,9 +721,6 @@ extern Lisp_Object eol_mnemonic_unix, eol_mnemonic_dos, eol_mnemonic_mac;
 /* Mnemonic string to indicate type of end-of-line is not yet decided.  */
 extern Lisp_Object eol_mnemonic_undecided;
 
-/* Format of end-of-line decided by system.  */
-extern int system_eol_type;
-
 #ifdef emacs
 extern Lisp_Object Qfile_coding_system;
 extern Lisp_Object Qcall_process, Qcall_process_region;
@@ -700,13 +746,10 @@ extern int inherit_process_coding_system;
    terminal coding system is nil.  */
 extern struct coding_system safe_terminal_coding;
 
-/* Default coding system to be used to write a file.  */
-extern struct coding_system default_buffer_file_coding;
-
 /* Default coding systems used for process I/O.  */
 extern Lisp_Object Vdefault_process_coding_system;
 
-/* Function to call to force a user to force select a proper coding
+/* Function to call to force a user to force select a propert coding
    system.  */
 extern Lisp_Object Vselect_safe_coding_system_function;
 
@@ -726,6 +769,9 @@ extern Lisp_Object Vdefault_file_name_coding_system;
 /* Error signaled when there's a problem with detecting coding system */
 extern Lisp_Object Qcoding_system_error;
 
+extern char emacs_mule_bytes[256];
+extern int emacs_mule_string_char P_ ((unsigned char *));
+
 #endif /* EMACS_CODING_H */
 
 /* arch-tag: 2bc3b4fa-6870-4f64-8135-b962b2d290e4
index 95c19d745601fe20e453506072bd3248726bf391..921640c2eb1109be43a44c3b0d5754a64889961f 100644 (file)
@@ -4,6 +4,9 @@
    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
+   Copyright (C) 2003, 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -25,7 +28,7 @@ Boston, MA 02110-1301, USA.  */
 #include <config.h>
 #include "lisp.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "intervals.h"
 
 /* Emacs uses special text property `composition' to support character
@@ -147,19 +150,17 @@ Lisp_Object composition_hash_table;
 /* Function to call to adjust composition.  */
 Lisp_Object Vcompose_chars_after_function;
 
-/* Char-table of patterns and functions to make a composition.  */
-Lisp_Object Vcomposition_function_table;
-Lisp_Object Qcomposition_function_table;
+Lisp_Object Qauto_composed;
+Lisp_Object Vauto_composition_function;
+Lisp_Object Qauto_composition_function;
+
+EXFUN (Fremove_list_of_text_properties, 4);
 
 /* Temporary variable used in macros COMPOSITION_XXX.  */
 Lisp_Object composition_temp;
-\f
-/* Return how many columns C will occupy on the screen.  It always
-   returns 1 for control characters and 8-bit characters because those
-   are just ignored in a composition.  */
-#define CHAR_WIDTH(c) \
-  (SINGLE_BYTE_CHAR_P (c) ? 1 : CHARSET_WIDTH (CHAR_CHARSET (c)))
 
+extern int enable_font_backend;
+\f
 /* Return COMPOSITION-ID of a composition at buffer position
    CHARPOS/BYTEPOS and length NCHARS.  The `composition' property of
    the sequence is PROP.  STRING, if non-nil, is a string that
@@ -274,6 +275,22 @@ get_composition_id (charpos, bytepos, nchars, prop, string)
   /* Check if the contents of COMPONENTS are valid if COMPONENTS is a
      vector or a list.  It should be a sequence of:
        char1 rule1 char2 rule2 char3 ...    ruleN charN+1  */
+
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend
+      && VECTORP (components)
+      && ASIZE (components) >= 2
+      && VECTORP (AREF (components, 0)))
+    {
+      /* COMPONENTS is a glyph-string.  */
+      int len = ASIZE (key);
+
+      for (i = 1; i < len; i++)
+       if (! VECTORP (AREF (key, i)))
+         goto invalid_composition;
+    }
+  else
+#endif  /* USE_FONT_BACKEND */
   if (VECTORP (components) || CONSP (components))
     {
       int len = XVECTOR (key)->size;
@@ -307,6 +324,12 @@ get_composition_id (charpos, bytepos, nchars, prop, string)
                 : ((INTEGERP (components) || STRINGP (components))
                    ? COMPOSITION_WITH_ALTCHARS
                    : COMPOSITION_WITH_RULE_ALTCHARS));
+#ifdef USE_FONT_BACKEND
+  if (cmp->method == COMPOSITION_WITH_RULE_ALTCHARS
+      && VECTORP (components)
+      && ! INTEGERP (AREF (components, 0)))
+    cmp->method = COMPOSITION_WITH_GLYPH_STRING;
+#endif  /* USE_FONT_BACKEND */
   cmp->hash_index = hash_index;
   glyph_len = (cmp->method == COMPOSITION_WITH_RULE_ALTCHARS
               ? (XVECTOR (key)->size + 1) / 2
@@ -315,6 +338,14 @@ get_composition_id (charpos, bytepos, nchars, prop, string)
   cmp->offsets = (short *) xmalloc (sizeof (short) * glyph_len * 2);
   cmp->font = NULL;
 
+#ifdef USE_FONT_BACKEND
+  if (cmp->method == COMPOSITION_WITH_GLYPH_STRING)
+    {
+      cmp->width = 1;          /* Should be fixed later.  */
+      cmp->glyph_len--;
+    }
+  else
+#endif /* USE_FONT_BACKEND */
   /* Calculate the width of overall glyphs of the composition.  */
   if (cmp->method != COMPOSITION_WITH_RULE_ALTCHARS)
     {
@@ -335,17 +366,17 @@ get_composition_id (charpos, bytepos, nchars, prop, string)
       float leftmost = 0.0, rightmost;
 
       ch = XINT (key_contents[0]);
-      rightmost = CHAR_WIDTH (ch);
+      rightmost = ch != '\t' ? CHAR_WIDTH (ch) : 1;
 
       for (i = 1; i < glyph_len; i += 2)
        {
-         int rule, gref, nref;
+         int rule, gref, nref, xoff, yoff;
          int this_width;
          float this_left;
 
          rule = XINT (key_contents[i]);
          ch = XINT (key_contents[i + 1]);
-         this_width = CHAR_WIDTH (ch);
+         this_width = ch != '\t' ? CHAR_WIDTH (ch) : 1;
 
          /* A composition rule is specified by an integer value
             that encodes global and new reference points (GREF and
@@ -361,7 +392,7 @@ get_composition_id (charpos, bytepos, nchars, prop, string)
                |       |
                6---7---8 -- descent
          */
-         COMPOSITION_DECODE_RULE (rule, gref, nref);
+         COMPOSITION_DECODE_RULE (rule, gref, nref, xoff, yoff);
          this_left = (leftmost
                       + (gref % 3) * (rightmost - leftmost) / 2.0
                       - (nref % 3) * this_width / 2.0);
@@ -407,7 +438,8 @@ get_composition_id (charpos, bytepos, nchars, prop, string)
 
 int
 find_composition (pos, limit, start, end, prop, object)
-     int pos, limit, *start, *end;
+     int pos, limit;
+     EMACS_INT *start, *end;
      Lisp_Object *prop, object;
 {
   Lisp_Object val;
@@ -451,7 +483,7 @@ run_composition_function (from, to, prop)
      Lisp_Object prop;
 {
   Lisp_Object func;
-  int start, end;
+  EMACS_INT start, end;
 
   func = COMPOSITION_MODIFICATION_FUNC (prop);
   /* If an invalid composition precedes or follows, try to make them
@@ -466,24 +498,29 @@ run_composition_function (from, to, prop)
     to = end;
   if (!NILP (Ffboundp (func)))
     call2 (func, make_number (from), make_number (to));
-  else if (!NILP (Ffboundp (Vcompose_chars_after_function)))
-    call3 (Vcompose_chars_after_function,
-          make_number (from), make_number (to), Qnil);
 }
 
 /* Make invalid compositions adjacent to or inside FROM and TO valid.
    CHECK_MASK is bitwise `or' of mask bits defined by macros
    CHECK_XXX (see the comment in composite.h).
 
+   It also resets the text-property `auto-composed' to a proper region
+   so that automatic character composition works correctly later while
+   displaying the region.
+
    This function is called when a buffer text is changed.  If the
    change is deletion, FROM == TO.  Otherwise, FROM < TO.  */
 
 void
 update_compositions (from, to, check_mask)
-     int from, to, check_mask;
+     EMACS_INT from, to;
+     int check_mask;
 {
   Lisp_Object prop;
-  int start, end;
+  EMACS_INT start, end;
+  /* The beginning and end of the region to set the property
+     `auto-composed' to nil.  */
+  EMACS_INT min_pos = from, max_pos = to;
 
   if (inhibit_modification_hooks)
     return;
@@ -503,6 +540,9 @@ update_compositions (from, to, check_mask)
          && find_composition (from - 1, -1, &start, &end, &prop, Qnil)
          && COMPOSITION_VALID_P (start, end, prop))
        {
+         min_pos = start;
+         if (end > to)
+           max_pos = end;
          if (from < end)
            Fput_text_property (make_number (from), make_number (end),
                                Qcomposition,
@@ -513,7 +553,11 @@ update_compositions (from, to, check_mask)
       else if (from < ZV
               && find_composition (from, -1, &start, &from, &prop, Qnil)
               && COMPOSITION_VALID_P (start, from, prop))
-       run_composition_function (start, from, prop);
+       {
+         if (from > to)
+           max_pos = from;
+         run_composition_function (start, from, prop);
+       }
     }
 
   if (check_mask & CHECK_INSIDE)
@@ -540,15 +584,33 @@ update_compositions (from, to, check_mask)
             To avoid it, in such a case, we change the property of
             the former to the copy of it.  */
          if (to < end)
-           Fput_text_property (make_number (start), make_number (to),
-                               Qcomposition,
-                               Fcons (XCAR (prop), XCDR (prop)), Qnil);
+           {
+             Fput_text_property (make_number (start), make_number (to),
+                                 Qcomposition,
+                                 Fcons (XCAR (prop), XCDR (prop)), Qnil);
+             max_pos = end;
+           }
          run_composition_function (start, end, prop);
        }
       else if (to < ZV
               && find_composition (to, -1, &start, &end, &prop, Qnil)
               && COMPOSITION_VALID_P (start, end, prop))
-       run_composition_function (start, end, prop);
+       {
+         run_composition_function (start, end, prop);
+         max_pos = end;
+       }
+    }
+  if (min_pos < max_pos)
+    {
+      int count = SPECPDL_INDEX ();
+
+      specbind (Qinhibit_read_only, Qt);
+      specbind (Qinhibit_modification_hooks, Qt);
+      specbind (Qinhibit_point_motion_hooks, Qt);
+      Fremove_list_of_text_properties (make_number (min_pos),
+                                      make_number (max_pos),
+                                      Fcons (Qauto_composed, Qnil), Qnil);
+      unbind_to (count, Qnil);
     }
 }
 
@@ -590,12 +652,17 @@ compose_text (start, end, components, modification_func, string)
 {
   Lisp_Object prop;
 
+#if 0
+  if (VECTORP (components) && ASIZE (components) > 1
+      && VECTORP (AREF (components, 0)))
+    prop = components;
+  else
+#endif /* USE_FONT_BACKEND */
   prop = Fcons (Fcons (make_number (end - start), components),
                modification_func);
   Fput_text_property  (make_number (start), make_number (end),
                       Qcomposition, prop, string);
 }
-
 \f
 /* Emacs Lisp APIs.  */
 
@@ -653,7 +720,7 @@ See `find-composition' for more detail.  */)
      Lisp_Object pos, limit, string, detail_p;
 {
   Lisp_Object prop, tail;
-  int start, end;
+  EMACS_INT start, end;
   int id;
 
   CHECK_NUMBER_COERCE_MARKER (pos);
@@ -732,12 +799,12 @@ syms_of_composite ()
 
     args[0] = QCtest;
     args[1] = Qequal;
+    args[2] = QCweakness;
     /* We used to make the hash table weak so that unreferenced
        compostions can be garbage-collected.  But, usually once
        created compositions are repeatedly used in an Emacs session,
        and thus it's not worth to save memory in such a way.  So, we
        make the table not weak.  */
-    args[2] = QCweakness;
     args[3] = Qnil;
     args[4] = QCsize;
     args[5] = make_number (311);
@@ -763,29 +830,24 @@ valid.
 The default value is the function `compose-chars-after'.  */);
   Vcompose_chars_after_function = intern ("compose-chars-after");
 
-  Qcomposition_function_table = intern ("composition-function-table");
-  staticpro (&Qcomposition_function_table);
-
-  /* Intern this now in case it isn't already done.
-     Setting this variable twice is harmless.
-     But don't staticpro it here--that is done in alloc.c.  */
-  Qchar_table_extra_slots = intern ("char-table-extra-slots");
+  Qauto_composed = intern ("auto-composed");
+  staticpro (&Qauto_composed);
 
-  Fput (Qcomposition_function_table, Qchar_table_extra_slots, make_number (0));
+  Qauto_composition_function = intern ("auto-composition-function");
+  staticpro (&Qauto_composition_function);
 
-  DEFVAR_LISP ("composition-function-table", &Vcomposition_function_table,
-              doc: /* Char table of patterns and functions to make a composition.
+  DEFVAR_LISP ("auto-composition-function", &Vauto_composition_function,
+              doc: /* Function to call to compose characters automatically.
+The function is called from the display routine with four arguments,
+FROM, TO, WINDOW, and STRING.
 
-Each element is nil or an alist of PATTERNs vs FUNCs, where PATTERNs
-are regular expressions and FUNCs are functions.  FUNC is responsible
-for composing text matching the corresponding PATTERN.  FUNC is called
-with three arguments FROM, TO, and PATTERN.  See the function
-`compose-chars-after' for more detail.
+If STRING is nil, the function must compose characters in the region
+between FROM and TO in the current buffer.
 
-This table is looked up by the first character of a composition when
-the composition gets invalid after a change in a buffer.  */);
-  Vcomposition_function_table
-    = Fmake_char_table (Qcomposition_function_table, Qnil);
+Otherwise, STRING is a string, and FROM and TO are indices into the
+string.  In this case, the function must compose characters in the
+string.  */);
+  Vauto_composition_function = Qnil;
 
   defsubr (&Scompose_region_internal);
   defsubr (&Scompose_string_internal);
index ba8f8c841045b71c8676ec2d54496ffe356fd25c..eb60f1d2ecd411398c18912b962ae04dcd40ac78 100644 (file)
@@ -4,6 +4,9 @@
    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
+   Copyright (C) 2003, 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -25,22 +28,22 @@ Boston, MA 02110-1301, USA.  */
 #ifndef EMACS_COMPOSITE_H
 #define EMACS_COMPOSITE_H
 
-/* Methods to display a sequence of components a composition.  */
+/* Methods to display a sequence of components of a composition.  */
 enum composition_method {
-  /* The first two are actually not methods, but used in code
-     conversion to specify the current composing status.  */
-  COMPOSITION_DISABLED,                /* Never handle composition data */
-  COMPOSITION_NO,              /* Not processing composition data */
   /* Compose relatively without alternate characters.  */
   COMPOSITION_RELATIVE,
-  /* Compose by specified composition rule.  This is not used in Emacs
-     21 but we need it to decode files saved in the older versions of
-     Emacs.  */
+  /* Compose by specified composition rules.  This is not used in
+     Emacs 21 but we need it to decode files saved in the older
+     versions of Emacs.  */
   COMPOSITION_WITH_RULE,
   /* Compose relatively with alternate characters.  */
   COMPOSITION_WITH_ALTCHARS,
-  /* Compose by specified composition rule with alternate characters.  */
-  COMPOSITION_WITH_RULE_ALTCHARS
+  /* Compose by specified composition rules with alternate characters.  */
+  COMPOSITION_WITH_RULE_ALTCHARS,
+  /* Compose by specified lispy glyph-string.  */
+  COMPOSITION_WITH_GLYPH_STRING,
+  /* This is not a method.  */
+  COMPOSITION_NO
 };
 
 /* Maximum number of compoments a single composition can have.  */
@@ -87,9 +90,13 @@ extern Lisp_Object composition_temp;
    : (composition_temp = XCDR (XCAR (prop)),                           \
       (NILP (composition_temp)                                         \
        ? COMPOSITION_RELATIVE                                          \
-       : ((INTEGERP (composition_temp) || STRINGP (composition_temp))  \
-         ? COMPOSITION_WITH_ALTCHARS                                   \
-         : COMPOSITION_WITH_RULE_ALTCHARS))))
+       : (INTEGERP (composition_temp) || STRINGP (composition_temp))   \
+       ? COMPOSITION_WITH_ALTCHARS                                     \
+       : (VECTORP (composition_temp)                                   \
+         && ASIZE (composition_temp) >= 2                              \
+         && VECTORP (AREF (composition_temp, 0)))                      \
+       ? COMPOSITION_WITH_GLYPH_STRING                                 \
+       : COMPOSITION_WITH_RULE_ALTCHARS)))
 
 /* Return 1 if the composition is valid.  It is valid if length of
    the composition equals to (END - START).  */
@@ -128,13 +135,19 @@ extern Lisp_Object composition_temp;
        ->contents[(n) * 2 - 1])
 
 /* Decode encoded composition rule RULE_CODE into GREF (global
-   reference point code) and NREF (new reference point code).  Don't
-   check RULE_CODE, always set GREF and NREF to valid values.  */
-#define COMPOSITION_DECODE_RULE(rule_code, gref, nref) \
-  do {                                                 \
-    gref = (rule_code) / 12;                           \
-    if (gref > 12) gref = 11;                          \
-    nref = (rule_code) % 12;                           \
+   reference point code), NREF (new reference point code), XOFF
+   (horizontal offset) YOFF (vertical offset).  Don't check RULE_CODE,
+   always set GREF and NREF to valid values.  By side effect,
+   RULE_CODE is modified.  */
+
+#define COMPOSITION_DECODE_RULE(rule_code, gref, nref, xoff, yoff)     \
+  do {                                                                 \
+    xoff = (rule_code) >> 16;                                          \
+    yoff = ((rule_code) >> 8) & 0xFF;                                  \
+    rule_code &= 0xFF;                                                 \
+    gref = (rule_code) / 12;                                           \
+    if (gref > 12) gref = 11;                                          \
+    nref = (rule_code) % 12;                                           \
   } while (0)
 
 /* Return encoded composition rule for the pair of global reference
@@ -161,6 +174,8 @@ struct composition {
   /* Width, ascent, and descent pixels of the composition.  */
   short pixel_width, ascent, descent;
 
+  short lbearing, rbearing;
+
   /* How many columns the overall glyphs occupy on the screen.  This
      gives an approximate value for column calculation in
      Fcurrent_column, and etc.  */
@@ -200,11 +215,14 @@ extern int n_compositions;
 
 extern Lisp_Object Qcomposition;
 extern Lisp_Object composition_hash_table;
+extern Lisp_Object Qauto_composed;
+extern Lisp_Object Vauto_composition_function;
+extern Lisp_Object Qauto_composition_function;
 
 extern int get_composition_id P_ ((int, int, int, Lisp_Object, Lisp_Object));
-extern int find_composition P_ ((int, int, int *, int *, Lisp_Object *,
+extern int find_composition P_ ((int, int, EMACS_INT *, EMACS_INT *, Lisp_Object *,
                                 Lisp_Object));
-extern void update_compositions P_ ((int, int, int));
+extern void update_compositions P_ ((EMACS_INT, EMACS_INT, int));
 extern void make_composition_value_copy P_ ((Lisp_Object));
 extern void compose_region P_ ((int, int, Lisp_Object, Lisp_Object,
                                Lisp_Object));
index ac78c53a4b60b5561c2bac1f67fd9769d840e2d0..d7023aafa704c5a2a8e55ab8d76daad95248d54a 100644 (file)
@@ -159,6 +159,9 @@ Boston, MA 02110-1301, USA.  */
 /* Define to 1 if you have the `fpathconf' function. */
 #undef HAVE_FPATHCONF
 
+/* Define to 1 if you have freetype and fontconfig libraries. */
+#undef HAVE_FREETYPE
+
 /* Define to 1 if you have the `frexp' function. */
 #undef HAVE_FREXP
 
@@ -349,6 +352,9 @@ Boston, MA 02110-1301, USA.  */
 /* Define to 1 if you have the `ncurses' library (-lncurses). */
 #undef HAVE_LIBNCURSES
 
+/* Define to 1 if you have libotf library. */
+#undef HAVE_LIBOTF
+
 /* Define to 1 if you have the <libpng/png.h> header file. */
 #undef HAVE_LIBPNG_PNG_H
 
@@ -385,6 +391,9 @@ Boston, MA 02110-1301, USA.  */
 /* Define to 1 if you have the `lrand48' function. */
 #undef HAVE_LRAND48
 
+/* Define to 1 if you have m17n-flt library. */
+#undef HAVE_M17N_FLT
+
 /* Define to 1 if you have the <machine/soundcard.h> header file. */
 #undef HAVE_MACHINE_SOUNDCARD_H
 
@@ -847,6 +856,9 @@ Boston, MA 02110-1301, USA.  */
 /* Define to the unexec source file name. */
 #undef UNEXEC_SRC
 
+/* Define to 1 if we should use font-backend. */
+#undef USE_FONT_BACKEND
+
 /* Define to 1 if we should use toolkit scroll bars. */
 #undef USE_TOOLKIT_SCROLL_BARS
 
index 0e3987ae540f7649813c34b5ee2e3a7cc0302570..88a665b3cf8907b839837fe0984295a2f6cf3d6b 100644 (file)
@@ -25,7 +25,7 @@ Boston, MA 02110-1301, USA.  */
 #include <stdio.h>
 #include "lisp.h"
 #include "puresize.h"
-#include "charset.h"
+#include "character.h"
 #include "buffer.h"
 #include "keyboard.h"
 #include "frame.h"
@@ -116,7 +116,7 @@ wrong_type_argument (predicate, value)
 {
   /* If VALUE is not even a valid Lisp object, abort here
      where we can get a backtrace showing where it came from.  */
-  if ((unsigned int) XGCTYPE (value) >= Lisp_Type_Limit)
+  if ((unsigned int) XTYPE (value) >= Lisp_Type_Limit)
     abort ();
 
   xsignal2 (Qwrong_type_argument, predicate, value);
@@ -188,7 +188,7 @@ for example, (type-of 1) returns `integer'.  */)
      (object)
      Lisp_Object object;
 {
-  switch (XGCTYPE (object))
+  switch (XTYPE (object))
     {
     case Lisp_Int:
       return Qinteger;
@@ -215,25 +215,25 @@ for example, (type-of 1) returns `integer'.  */)
       abort ();
 
     case Lisp_Vectorlike:
-      if (GC_WINDOW_CONFIGURATIONP (object))
+      if (WINDOW_CONFIGURATIONP (object))
        return Qwindow_configuration;
-      if (GC_PROCESSP (object))
+      if (PROCESSP (object))
        return Qprocess;
-      if (GC_WINDOWP (object))
+      if (WINDOWP (object))
        return Qwindow;
-      if (GC_SUBRP (object))
+      if (SUBRP (object))
        return Qsubr;
-      if (GC_COMPILEDP (object))
+      if (COMPILEDP (object))
        return Qcompiled_function;
-      if (GC_BUFFERP (object))
+      if (BUFFERP (object))
        return Qbuffer;
-      if (GC_CHAR_TABLE_P (object))
+      if (CHAR_TABLE_P (object))
        return Qchar_table;
-      if (GC_BOOL_VECTOR_P (object))
+      if (BOOL_VECTOR_P (object))
        return Qbool_vector;
-      if (GC_FRAMEP (object))
+      if (FRAMEP (object))
        return Qframe;
-      if (GC_HASH_TABLE_P (object))
+      if (HASH_TABLE_P (object))
        return Qhash_table;
       return Qvector;
 
@@ -436,11 +436,11 @@ DEFUN ("byte-code-function-p", Fbyte_code_function_p, Sbyte_code_function_p,
 }
 
 DEFUN ("char-or-string-p", Fchar_or_string_p, Schar_or_string_p, 1, 1, 0,
-       doc: /* Return t if OBJECT is a character (an integer) or a string.  */)
+       doc: /* Return t if OBJECT is a character or a string.  */)
      (object)
      register Lisp_Object object;
 {
-  if (INTEGERP (object) || STRINGP (object))
+  if (CHARACTERP (object) || STRINGP (object))
     return Qt;
   return Qnil;
 }
@@ -1989,96 +1989,8 @@ or a byte-code object.  IDX starts at 0.  */)
     }
   else if (CHAR_TABLE_P (array))
     {
-      Lisp_Object val;
-
-      val = Qnil;
-
-      if (idxval < 0)
-       args_out_of_range (array, idx);
-      if (idxval < CHAR_TABLE_ORDINARY_SLOTS)
-       {
-         if (! SINGLE_BYTE_CHAR_P (idxval))
-           args_out_of_range (array, idx);
-         /* For ASCII and 8-bit European characters, the element is
-             stored in the top table.  */
-         val = XCHAR_TABLE (array)->contents[idxval];
-         if (NILP (val))
-           {
-             int default_slot
-               = (idxval < 0x80 ? CHAR_TABLE_DEFAULT_SLOT_ASCII
-                  : idxval < 0xA0 ? CHAR_TABLE_DEFAULT_SLOT_8_BIT_CONTROL
-                  : CHAR_TABLE_DEFAULT_SLOT_8_BIT_GRAPHIC);
-             val = XCHAR_TABLE (array)->contents[default_slot];
-           }
-         if (NILP (val))
-           val = XCHAR_TABLE (array)->defalt;
-         while (NILP (val))    /* Follow parents until we find some value.  */
-           {
-             array = XCHAR_TABLE (array)->parent;
-             if (NILP (array))
-               return Qnil;
-             val = XCHAR_TABLE (array)->contents[idxval];
-             if (NILP (val))
-               val = XCHAR_TABLE (array)->defalt;
-           }
-         return val;
-       }
-      else
-       {
-         int code[4], i;
-         Lisp_Object sub_table;
-         Lisp_Object current_default;
-
-         SPLIT_CHAR (idxval, code[0], code[1], code[2]);
-         if (code[1] < 32) code[1] = -1;
-         else if (code[2] < 32) code[2] = -1;
-
-         /* Here, the possible range of CODE[0] (== charset ID) is
-           128..MAX_CHARSET.  Since the top level char table contains
-           data for multibyte characters after 256th element, we must
-           increment CODE[0] by 128 to get a correct index.  */
-         code[0] += 128;
-         code[3] = -1;         /* anchor */
-
-       try_parent_char_table:
-         current_default = XCHAR_TABLE (array)->defalt;
-         sub_table = array;
-         for (i = 0; code[i] >= 0; i++)
-           {
-             val = XCHAR_TABLE (sub_table)->contents[code[i]];
-             if (SUB_CHAR_TABLE_P (val))
-               {
-                 sub_table = val;
-                 if (! NILP (XCHAR_TABLE (sub_table)->defalt))
-                   current_default = XCHAR_TABLE (sub_table)->defalt;
-               }
-             else
-               {
-                 if (NILP (val))
-                   val = current_default;
-                 if (NILP (val))
-                   {
-                     array = XCHAR_TABLE (array)->parent;
-                     if (!NILP (array))
-                       goto try_parent_char_table;
-                   }
-                 return val;
-               }
-           }
-         /* Reaching here means IDXVAL is a generic character in
-            which each character or a group has independent value.
-            Essentially it's nonsense to get a value for such a
-            generic character, but for backward compatibility, we try
-            the default value and parent.  */
-         val = current_default;
-         if (NILP (val))
-           {
-             array = XCHAR_TABLE (array)->parent;
-             if (!NILP (array))
-               goto try_parent_char_table;
-           }
-         return val;
-       }
+      CHECK_CHARACTER (idx);
+      return CHAR_TABLE_REF (array, idxval);
     }
   else
     {
@@ -2134,45 +2046,8 @@ bool-vector.  IDX starts at 0.  */)
     }
   else if (CHAR_TABLE_P (array))
     {
-      if (idxval < 0)
-       args_out_of_range (array, idx);
-      if (idxval < CHAR_TABLE_ORDINARY_SLOTS)
-       {
-         if (! SINGLE_BYTE_CHAR_P (idxval))
-           args_out_of_range (array, idx);
-         XCHAR_TABLE (array)->contents[idxval] = newelt;
-       }
-      else
-       {
-         int code[4], i;
-         Lisp_Object val;
-
-         SPLIT_CHAR (idxval, code[0], code[1], code[2]);
-         if (code[1] < 32) code[1] = -1;
-         else if (code[2] < 32) code[2] = -1;
-
-         /* See the comment of the corresponding part in Faref.  */
-         code[0] += 128;
-         code[3] = -1;         /* anchor */
-         for (i = 0; code[i + 1] >= 0; i++)
-           {
-             val = XCHAR_TABLE (array)->contents[code[i]];
-             if (SUB_CHAR_TABLE_P (val))
-               array = val;
-             else
-               {
-                 Lisp_Object temp;
-
-                 /* VAL is a leaf.  Create a sub char table with the
-                    initial value VAL and look into it.  */
-
-                 temp = make_sub_char_table (val);
-                 XCHAR_TABLE (array)->contents[code[i]] = temp;
-                 array = temp;
-               }
-           }
-         XCHAR_TABLE (array)->contents[code[i]] = newelt;
-       }
+      CHECK_CHARACTER (idx);
+      CHAR_TABLE_SET (array, idxval, newelt);
     }
   else if (STRING_MULTIBYTE (array))
     {
@@ -2181,7 +2056,7 @@ bool-vector.  IDX starts at 0.  */)
 
       if (idxval < 0 || idxval >= SCHARS (array))
        args_out_of_range (array, idx);
-      CHECK_NUMBER (newelt);
+      CHECK_CHARACTER (newelt);
 
       nbytes = SBYTES (array);
 
@@ -2216,38 +2091,9 @@ bool-vector.  IDX starts at 0.  */)
        args_out_of_range (array, idx);
       CHECK_NUMBER (newelt);
 
-      if (XINT (newelt) < 0 || SINGLE_BYTE_CHAR_P (XINT (newelt)))
-       SSET (array, idxval, XINT (newelt));
-      else
-       {
-         /* We must relocate the string data while converting it to
-            multibyte.  */
-         int idxval_byte, prev_bytes, new_bytes;
-         unsigned char workbuf[MAX_MULTIBYTE_LENGTH], *p0 = workbuf, *p1;
-         unsigned char *origstr = SDATA (array), *str;
-         int nchars, nbytes;
-         USE_SAFE_ALLOCA;
-
-         nchars = SCHARS (array);
-         nbytes = idxval_byte = count_size_as_multibyte (origstr, idxval);
-         nbytes += count_size_as_multibyte (origstr + idxval,
-                                            nchars - idxval);
-         SAFE_ALLOCA (str, unsigned char *, nbytes);
-         copy_text (SDATA (array), str, nchars, 0, 1);
-         PARSE_MULTIBYTE_SEQ (str + idxval_byte, nbytes - idxval_byte,
-                              prev_bytes);
-         new_bytes = CHAR_STRING (XINT (newelt), p0);
-         allocate_string_data (XSTRING (array), nchars,
-                               nbytes + new_bytes - prev_bytes);
-         bcopy (str, SDATA (array), idxval_byte);
-         p1 = SDATA (array) + idxval_byte;
-         while (new_bytes--)
-           *p1++ = *p0++;
-         bcopy (str + idxval_byte + prev_bytes, p1,
-                nbytes - (idxval_byte + prev_bytes));
-         SAFE_FREE ();
-         clear_string_char_byte_cache ();
-       }
+      if (XINT (newelt) >= 0 && ! SINGLE_BYTE_CHAR_P (XINT (newelt)))
+       args_out_of_range (array, newelt);
+      SSET (array, idxval, XINT (newelt));
     }
 
   return newelt;
index 09c72f69fdf668a6d6bd36b8ff6706c8bb2e7364..ccd27dbb713ca5f464cf77b312bc2728623f85e8 100644 (file)
@@ -96,6 +96,7 @@ extern struct direct *readdir ();
 #include "systime.h"
 #include "buffer.h"
 #include "commands.h"
+#include "character.h"
 #include "charset.h"
 #include "coding.h"
 #include "regex.h"
index 9cf666b2fd261d0ca37ce3aa5745536c85ee629a..b802759372136b64bb9165d939f789253bd13f8c 100644 (file)
@@ -852,6 +852,12 @@ struct glyph_row
 
   /* Continuation lines width at the start of the row.  */
   int continuation_lines_width;
+
+#ifdef HAVE_WINDOW_SYSTEM
+  /* Non-NULL means the current clipping area.  This is temporarily
+     set while exposing a region.  Coordinates are frame-relative.  */
+  XRectangle *clip;
+#endif
 };
 
 
@@ -1215,6 +1221,12 @@ struct glyph_string
      *clip_tail, not including their overhangs.  */
   struct glyph_string *clip_head, *clip_tail;
 
+  /* The current clipping areas.  */
+  NativeRectangle clip[2];
+
+  /* Number of clipping areas. */
+  int num_clips;
+
   struct glyph_string *next, *prev;
 };
 
@@ -1386,6 +1398,7 @@ enum lface_attribute_index
   LFACE_FONT_INDEX,
   LFACE_INHERIT_INDEX,
   LFACE_AVGWIDTH_INDEX,
+  LFACE_FONTSET_INDEX,
   LFACE_VECTOR_SIZE
 };
 
@@ -1470,10 +1483,10 @@ struct face
      reallocated.  */
   int font_info_id;
 
-  /* Fontset ID if this face uses a fontset, or -1.  This is only >= 0
-     if the face was realized for a composition sequence.
-     Otherwise, a specific font is loaded from the set of fonts
-     specified by the fontset given by the family attribute of the face.  */
+  struct font_info *font_info;
+
+  /* Fontset ID if for this face's fontset.  Non-ASCII faces derived
+     from the same ASCII face have the same fontset.  */
   int fontset;
 
   /* Pixmap width and height.  */
@@ -1505,13 +1518,6 @@ struct face
   /* The hash value of this face.  */
   unsigned hash;
 
-  /* The charset for which this face was realized if it was realized
-     for use in multibyte text.  If fontset >= 0, this is the charset
-     of the first character of the composition sequence.  A value of
-     charset < 0 means the face was realized for use in unibyte text
-     where the idea of Emacs charsets isn't applicable.  */
-  int charset;
-
   /* Non-zero if text in this face should be underlined, overlined,
      strike-through or have a box drawn around it.  */
   unsigned underline_p : 1;
@@ -1557,9 +1563,13 @@ struct face
   /* Next and previous face in hash collision list of face cache.  */
   struct face *next, *prev;
 
-  /* If this face is for ASCII characters, this points this face
-     itself.  Otherwise, this points a face for ASCII characters.  */
+  /* If this face is an ASCII face, this points to this face itself.
+     Otherwise, this points to an ASCII face that has the same
+     attributes except the font.  */
   struct face *ascii_face;
+
+  /* Extra member that a font-driver uses privately.  */
+  void *extra;
 };
 
 
@@ -1647,7 +1657,7 @@ struct face_cache
 /* Non-zero if FACE is suitable for displaying character CHAR.  */
 
 #define FACE_SUITABLE_FOR_CHAR_P(FACE, CHAR)   \
-  (SINGLE_BYTE_CHAR_P (CHAR)                   \
+  (ASCII_CHAR_P (CHAR)                         \
    ? (FACE) == (FACE)->ascii_face              \
    : face_suitable_for_char_p ((FACE), (CHAR)))
 
@@ -1655,15 +1665,15 @@ struct face_cache
    with id ID but is suitable for displaying character CHAR.
    This macro is only meaningful for multibyte character CHAR.  */
 
-#define FACE_FOR_CHAR(F, FACE, CHAR)   \
-  (SINGLE_BYTE_CHAR_P (CHAR)           \
-   ? (FACE)->ascii_face->id            \
-   : face_for_char ((F), (FACE), (CHAR)))
+#define FACE_FOR_CHAR(F, FACE, CHAR, POS, OBJECT)      \
+  (ASCII_CHAR_P (CHAR)                                 \
+   ? (FACE)->ascii_face->id                            \
+   : face_for_char ((F), (FACE), (CHAR), (POS), (OBJECT)))
 
 #else /* not HAVE_WINDOW_SYSTEM */
 
 #define FACE_SUITABLE_FOR_CHAR_P(FACE, CHAR) 1
-#define FACE_FOR_CHAR(F, FACE, CHAR) ((FACE)->id)
+#define FACE_FOR_CHAR(F, FACE, CHAR, POS, OBJECT) ((FACE)->id)
 
 #endif /* not HAVE_WINDOW_SYSTEM */
 
@@ -1781,6 +1791,7 @@ enum display_element_type
 
 enum prop_idx
 {
+  AUTO_COMPOSED_PROP_IDX,
   FONTIFIED_PROP_IDX,
   FACE_PROP_IDX,
   INVISIBLE_PROP_IDX,
@@ -2333,7 +2344,9 @@ struct redisplay_interface
    the two-byte form of C.  Encoding is returned in *CHAR2B.  If
    TWO_BYTE_P is non-null, return non-zero there if font is two-byte.  */
   int (*encode_char) P_ ((int c, XChar2b *char2b,
-                         struct font_info *font_into, int *two_byte_p));
+                         struct font_info *font_into,
+                         struct charset *charset,
+                         int *two_byte_p));
 
 /* Compute left and right overhang of glyph string S.
    A NULL pointer if platform does not support this. */
@@ -2842,15 +2855,17 @@ void clear_face_cache P_ ((int));
 unsigned long load_color P_ ((struct frame *, struct face *, Lisp_Object,
                              enum lface_attribute_index));
 void unload_color P_ ((struct frame *, unsigned long));
-int face_font_available_p P_ ((struct frame *, Lisp_Object));
+char *choose_face_font P_ ((struct frame *, Lisp_Object *, Lisp_Object,
+                           int *));
 int ascii_face_of_lisp_face P_ ((struct frame *, int));
 void prepare_face_for_display P_ ((struct frame *, struct face *));
 int xstricmp P_ ((const unsigned char *, const unsigned char *));
-int lookup_face P_ ((struct frame *, Lisp_Object *, int, struct face *));
-int lookup_named_face P_ ((struct frame *, Lisp_Object, int, int));
+int lookup_face P_ ((struct frame *, Lisp_Object *));
+int lookup_non_ascii_face P_ ((struct frame *, int, struct face *));
+int lookup_named_face P_ ((struct frame *, Lisp_Object, int));
 int smaller_face P_ ((struct frame *, int, int));
 int face_with_height P_ ((struct frame *, int, int));
-int lookup_derived_face P_ ((struct frame *, Lisp_Object, int, int, int));
+int lookup_derived_face P_ ((struct frame *, Lisp_Object, int, int));
 void init_frame_faces P_ ((struct frame *));
 void free_frame_faces P_ ((struct frame *));
 void recompute_basic_faces P_ ((struct frame *));
@@ -2864,10 +2879,12 @@ int face_at_string_position P_ ((struct window *, Lisp_Object, int, int, int,
 int merge_faces P_ ((struct frame *, Lisp_Object, int, int));
 int compute_char_face P_ ((struct frame *, int, Lisp_Object));
 void free_all_realized_faces P_ ((Lisp_Object));
+void free_realized_face P_ ((struct frame *, struct face *));
 extern Lisp_Object Qforeground_color, Qbackground_color;
 extern Lisp_Object Qframe_set_background_mode;
 extern char unspecified_fg[], unspecified_bg[];
-void free_realized_multibyte_face P_ ((struct frame *, int));
+extern Lisp_Object split_font_name_into_vector P_ ((Lisp_Object));
+extern Lisp_Object build_font_name_from_vector P_ ((Lisp_Object));
 
 /* Defined in xfns.c  */
 
index 312ec38f44513c6f7e85a3860f4a3d0e3025c07e..d7bca7acbc4762768bf4a590c30eb716830d83d1 100644 (file)
@@ -36,7 +36,7 @@ Boston, MA 02110-1301, USA.  */
 #include "dispextern.h"
 #include "cm.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "keyboard.h"
 #include "frame.h"
 #include "termhooks.h"
index 19033dc993e110d2dced84191ab968b8a65b5954..3efb47d26a0f879cc1ce31ee084bb6485edc8a2e 100644 (file)
@@ -36,8 +36,14 @@ Boston, MA 02110-1301, USA.  */
 
 extern Lisp_Object disp_char_vector P_ ((struct Lisp_Char_Table *, int));
 
-#define DISP_CHAR_VECTOR(dp, c) \
-  (SINGLE_BYTE_CHAR_P(c) ? (dp)->contents[c] : disp_char_vector ((dp), (c)))
+#define DISP_CHAR_VECTOR(dp, c)                                \
+  (ASCII_CHAR_P(c)                                     \
+   ? (NILP ((dp)->ascii)                               \
+      ? (dp)->defalt                                   \
+      : (SUB_CHAR_TABLE_P ((dp)->ascii)                        \
+        ? XSUB_CHAR_TABLE ((dp)->ascii)->contents[c]   \
+        : (dp)->ascii))                                \
+   : disp_char_vector ((dp), (c)))
 
 /* Defined in window.c.  */
 extern struct Lisp_Char_Table *window_display_table P_ ((struct window *));
index ec02449035a40cce3c30258031ac936b7d777256..5dc30a01053278bd3e4cdda4724af7e804f45bfc 100644 (file)
--- a/src/doc.c
+++ b/src/doc.c
@@ -41,7 +41,7 @@ Boston, MA 02110-1301, USA.  */
 #include "lisp.h"
 #include "buffer.h"
 #include "keyboard.h"
-#include "charset.h"
+#include "character.h"
 #include "keymap.h"
 
 #ifdef HAVE_INDEX
index e9c97d60cccf6f311fa93aabc2c7762ee94246c9..d049ec2d060cdb341eab0a3a982065ee95f5ff3d 100644 (file)
@@ -47,7 +47,7 @@ Boston, MA 02110-1301, USA.  */
 /* Since we use the macro CHAR_HEAD_P, we have to include this, but
    don't have to include others because CHAR_HEAD_P does not contains
    another macro.  */
-#include "charset.h"
+#include "character.h"
 
 static int doprnt1 ();
 
index 32d7a2c8d7438099e0d1333fc9081f459e2cc38c..2d2d4e04e7d2cfb48f3c104f601728c274fabce4 100644 (file)
@@ -38,7 +38,7 @@ Boston, MA 02110-1301, USA.  */
 #include "dosfns.h"
 #include "msdos.h"
 #include "dispextern.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include <dpmi.h>
 #include <go32.h>
index f5b71f2aa1826750e0f84a5bf7bc99cb453f8563..fa1b229bfc4cc16eed57802bd514616776c42150 100644 (file)
@@ -52,7 +52,7 @@ Boston, MA 02110-1301, USA.  */
 
 #include "intervals.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "frame.h"
 #include "window.h"
@@ -210,11 +210,9 @@ usage: (char-to-string CHAR)  */)
   int len;
   unsigned char str[MAX_MULTIBYTE_LENGTH];
 
-  CHECK_NUMBER (character);
+  CHECK_CHARACTER (character);
 
-  len = (SINGLE_BYTE_CHAR_P (XFASTINT (character))
-        ? (*str = (unsigned char)(XFASTINT (character)), 1)
-        : char_to_string (XFASTINT (character), str));
+  len = CHAR_STRING (XFASTINT (character), str);
   return make_string_from_bytes (str, 1, len);
 }
 
@@ -2155,7 +2153,7 @@ general_insert_function (insert_func, insert_from_string_func,
   for (argnum = 0; argnum < nargs; argnum++)
     {
       val = args[argnum];
-      if (INTEGERP (val))
+      if (CHARACTERP (val))
        {
          unsigned char str[MAX_MULTIBYTE_LENGTH];
          int len;
@@ -2164,7 +2162,7 @@ general_insert_function (insert_func, insert_from_string_func,
            len = CHAR_STRING (XFASTINT (val), str);
          else
            {
-             str[0] = (SINGLE_BYTE_CHAR_P (XINT (val))
+             str[0] = (ASCII_CHAR_P (XINT (val))
                        ? XINT (val)
                        : multibyte_char_to_unibyte (XINT (val), Qnil));
              len = 1;
@@ -2331,6 +2329,29 @@ from adjoining text, if those properties are sticky.  */)
   return Qnil;
 }
 
+DEFUN ("insert-byte", Finsert_byte, Sinsert_byte, 2, 3, 0,
+       doc: /* Insert COUNT (second arg) copies of BYTE (first arg).
+Both arguments are required.
+BYTE is a number of the range 0..255.
+
+If BYTE is 128..255 and the current buffer is multibyte, the
+corresponding eight-bit character is inserted.
+
+Point, and before-insertion markers, are relocated as in the function `insert'.
+The optional third arg INHERIT, if non-nil, says to inherit text properties
+from adjoining text, if those properties are sticky.  */)
+     (byte, count, inherit)
+       Lisp_Object byte, count, inherit;
+{
+  CHECK_NUMBER (byte);
+  if (XINT (byte) < 0 || XINT (byte) > 255)
+    args_out_of_range_3 (byte, make_number (0), make_number (255));
+  if (XINT (byte) >= 128
+      && ! NILP (current_buffer->enable_multibyte_characters))
+    XSETFASTINT (byte, BYTE8_TO_CHAR (XINT (byte)));
+  return Finsert_char (byte, count, inherit);
+}
+
 \f
 /* Making strings from buffer contents.  */
 
@@ -2892,12 +2913,73 @@ Both characters must have the same length of multi-byte form.  */)
   return Qnil;
 }
 
+
+static Lisp_Object check_translation P_ ((int, int, int, Lisp_Object));
+
+/* Helper function for Ftranslate_region_internal.
+
+   Check if a character sequence at POS (POS_BYTE) matches an element
+   of VAL.  VAL is a list (([FROM-CHAR ...] . TO) ...).  If a matching
+   element is found, return it.  Otherwise return Qnil.  */
+
+static Lisp_Object
+check_translation (pos, pos_byte, end, val)
+     int pos, pos_byte, end;
+     Lisp_Object val;
+{
+  int buf_size = 16, buf_used = 0;
+  int *buf = alloca (sizeof (int) * buf_size);
+
+  for (; CONSP (val); val = XCDR (val))
+    {
+      Lisp_Object elt;
+      int len, i;
+
+      elt = XCAR (val);
+      if (! CONSP (elt))
+       continue;
+      elt = XCAR (elt);
+      if (! VECTORP (elt))
+       continue;
+      len = ASIZE (elt);
+      if (len <= end - pos)
+       {
+         for (i = 0; i < len; i++)
+           {
+             if (buf_used <= i)
+               {
+                 unsigned char *p = BYTE_POS_ADDR (pos_byte);
+                 int len;
+
+                 if (buf_used == buf_size)
+                   {
+                     int *newbuf;
+
+                     buf_size += 16;
+                     newbuf = alloca (sizeof (int) * buf_size);
+                     memcpy (newbuf, buf, sizeof (int) * buf_used);
+                     buf = newbuf;
+                   }
+                 buf[buf_used++] = STRING_CHAR_AND_LENGTH (p, 0, len);
+                 pos_byte += len;
+               }
+             if (XINT (AREF (elt, i)) != buf[i])
+               break;
+           }
+         if (i == len)
+           return XCAR (val);
+       }
+    }
+  return Qnil;
+}
+
+
 DEFUN ("translate-region-internal", Ftranslate_region_internal,
        Stranslate_region_internal, 3, 3, 0,
        doc: /* Internal use only.
 From START to END, translate characters according to TABLE.
-TABLE is a string; the Nth character in it is the mapping
-for the character with code N.
+TABLE is a string or a char-table; the Nth character in it is the
+mapping for the character with code N.
 It returns the number of characters changed.  */)
      (start, end, table)
      Lisp_Object start;
@@ -2911,10 +2993,13 @@ It returns the number of characters changed.  */)
   int pos, pos_byte, end_pos;
   int multibyte = !NILP (current_buffer->enable_multibyte_characters);
   int string_multibyte;
+  Lisp_Object val;
 
   validate_region (&start, &end);
   if (CHAR_TABLE_P (table))
     {
+      if (! EQ (XCHAR_TABLE (table)->purpose, Qtranslation_table))
+       error ("Not a translation table");
       size = MAX_CHAR;
       tt = NULL;
     }
@@ -2925,14 +3010,14 @@ It returns the number of characters changed.  */)
       if (! multibyte && (SCHARS (table) < SBYTES (table)))
        table = string_make_unibyte (table);
       string_multibyte = SCHARS (table) < SBYTES (table);
-      size = SCHARS (table);
+      size = SBYTES (table);
       tt = SDATA (table);
     }
 
   pos = XINT (start);
   pos_byte = CHAR_TO_BYTE (pos);
   end_pos = XINT (end);
-  modify_region (current_buffer, pos, XINT (end), 0);
+  modify_region (current_buffer, pos, end_pos, 0);
 
   cnt = 0;
   for (; pos < end_pos; )
@@ -2941,6 +3026,7 @@ It returns the number of characters changed.  */)
       unsigned char *str, buf[MAX_MULTIBYTE_LENGTH];
       int len, str_len;
       int oc;
+      Lisp_Object val;
 
       if (multibyte)
        oc = STRING_CHAR_AND_LENGTH (p, MAX_MULTIBYTE_LENGTH, len);
@@ -2955,7 +3041,7 @@ It returns the number of characters changed.  */)
              if (string_multibyte)
                {
                  str = tt + string_char_to_byte (table, oc);
-                 nc = STRING_CHAR_AND_LENGTH (str, MAX_MULTIBYTE_LENGTH,
+                 nc = STRING_CHAR_AND_LENGTH (str, MAX_MULTIBYTE_LENGTH, 
                                               str_len);
                }
              else
@@ -2963,7 +3049,7 @@ It returns the number of characters changed.  */)
                  nc = tt[oc];
                  if (! ASCII_BYTE_P (nc) && multibyte)
                    {
-                     str_len = CHAR_STRING (nc, buf);
+                     str_len = BYTE8_STRING (nc, buf);
                      str = buf;
                    }
                  else
@@ -2975,28 +3061,34 @@ It returns the number of characters changed.  */)
            }
          else
            {
-             Lisp_Object val;
              int c;
 
              nc = oc;
              val = CHAR_TABLE_REF (table, oc);
-             if (INTEGERP (val)
+             if (CHARACTERP (val)
                  && (c = XINT (val), CHAR_VALID_P (c, 0)))
                {
                  nc = c;
                  str_len = CHAR_STRING (nc, buf);
                  str = buf;
                }
+             else if (VECTORP (val) || (CONSP (val)))
+               {
+                 /* VAL is [TO_CHAR ...] or (([FROM-CHAR ...] .  TO) ...)
+                    where TO is TO-CHAR or [TO-CHAR ...].  */
+                 nc = -1;
+               }
            }
 
-         if (nc != oc)
+         if (nc != oc && nc >= 0)
            {
+             /* Simple one char to one char translation.  */
              if (len != str_len)
                {
                  Lisp_Object string;
 
                  /* This is less efficient, because it moves the gap,
-                    but it should multibyte characters correctly.  */
+                    but it should handle multibyte characters correctly.  */
                  string = make_multibyte_string (str, 1, str_len);
                  replace_range (pos, pos + 1, string, 1, 0, 1);
                  len = str_len;
@@ -3011,6 +3103,46 @@ It returns the number of characters changed.  */)
                }
              ++cnt;
            }
+         else if (nc < 0)
+           {
+             Lisp_Object string;
+
+             if (CONSP (val))
+               {
+                 val = check_translation (pos, pos_byte, end_pos, val);
+                 if (NILP (val))
+                   {
+                     pos_byte += len;
+                     pos++;
+                     continue;
+                   }
+                 /* VAL is ([FROM-CHAR ...] . TO).  */
+                 len = ASIZE (XCAR (val));
+                 val = XCDR (val);
+               }
+             else
+               len = 1;
+
+             if (VECTORP (val))
+               {
+                 int i;
+
+                 string = Fmake_string (make_number (ASIZE (val)),
+                                        AREF (val, 0));
+                 for (i = 1; i < ASIZE (val); i++)
+                   Faset (string, make_number (i), AREF (val, i));
+               }
+             else
+               {
+                 string = Fmake_string (make_number (1), val);
+               }
+             replace_range (pos, pos + len, string, 1, 0, 1);
+             pos_byte += SBYTES (string);
+             pos += SCHARS (string);
+             cnt += SCHARS (string);
+             end_pos += SCHARS (string) - len;
+             continue;
+           }
        }
       pos_byte += len;
       pos++;
@@ -3608,8 +3740,8 @@ usage: (format STRING &rest OBJECTS)  */)
            thissize = 30 + (precision[n] > 0 ? precision[n] : 0);
            if (*format == 'c')
              {
-               if (! SINGLE_BYTE_CHAR_P (XINT (args[n]))
-                   /* Note: No one can remember why we have to treat
+               if (! ASCII_CHAR_P (XINT (args[n]))
+                   /* Note: No one can remeber why we have to treat
                       the character 0 as a multibyte character here.
                       But, until it causes a real problem, let's
                       don't change it.  */
@@ -4030,8 +4162,20 @@ Case is ignored if `case-fold-search' is non-nil in the current buffer.  */)
   /* Do these in separate statements,
      then compare the variables.
      because of the way DOWNCASE uses temp variables.  */
-  i1 = DOWNCASE (XFASTINT (c1));
-  i2 = DOWNCASE (XFASTINT (c2));
+  i1 = XFASTINT (c1);
+  if (NILP (current_buffer->enable_multibyte_characters)
+      && ! ASCII_CHAR_P (i1))
+    {
+      MAKE_CHAR_MULTIBYTE (i1);
+    }
+  i2 = XFASTINT (c2);
+  if (NILP (current_buffer->enable_multibyte_characters)
+      && ! ASCII_CHAR_P (i2))
+    {
+      MAKE_CHAR_MULTIBYTE (i2);
+    }
+  i1 = DOWNCASE (i1);
+  i2 = DOWNCASE (i2);
   return (i1 == i2 ? Qt :  Qnil);
 }
 \f
@@ -4526,6 +4670,7 @@ functions if all the text being accessed has this property.  */);
   defsubr (&Sinsert_and_inherit);
   defsubr (&Sinsert_and_inherit_before_markers);
   defsubr (&Sinsert_char);
+  defsubr (&Sinsert_byte);
 
   defsubr (&Suser_login_name);
   defsubr (&Suser_real_login_name);
index 85aa2f3a6f79c1f413e8fddd80a79763f602dbc9..21e583f7d91ec0851566f6a61d3087bd177d86bb 100644 (file)
@@ -788,6 +788,9 @@ bug_reporting_address ()
   return count >= 3 ? REPORT_EMACS_BUG_PRETEST_ADDRESS : REPORT_EMACS_BUG_ADDRESS;
 }
 
+#ifdef USE_FONT_BACKEND
+extern int enable_font_backend;
+#endif /* USE_FONT_BACKEND */
 
 /* ARGSUSED */
 int
@@ -1282,6 +1285,7 @@ main (argc, argv
       init_alloc_once ();
       init_obarray ();
       init_eval_once ();
+      init_character_once ();
       init_charset_once ();
       init_coding_once ();
       init_syntax_once ();     /* Create standard syntax table.  */
@@ -1320,7 +1324,6 @@ main (argc, argv
       syms_of_macterm ();
       syms_of_macmenu ();
       syms_of_macselect ();
-      syms_of_data ();
       syms_of_search ();
       syms_of_frame ();
 
@@ -1328,6 +1331,16 @@ main (argc, argv
       mac_term_init (build_string ("Mac"), NULL, NULL);
       init_keyboard ();
 #endif
+      /* Called before syms_of_fileio, because it sets up Qerror_condition.  */
+      syms_of_data ();
+      syms_of_fileio ();
+      /* Before syms_of_coding to initialize Vgc_cons_threshold.  */
+      syms_of_alloc ();
+      /* Before syms_of_coding because it initializes Qcharsetp.  */
+      syms_of_charset ();
+      /* Before init_window_once, because it sets up the
+        Vcoding_system_hash_table.  */
+      syms_of_coding ();       /* This should be after syms_of_fileio.  */
 
       init_window_once ();     /* Init the window system.  */
       init_fileio_once ();     /* Must precede any path manipulation.  */
@@ -1403,12 +1416,15 @@ main (argc, argv
              Lisp_Object buffer;
 
              buffer = Fcdr (XCAR (tail));
-             /* Verify that all buffers are empty now, as they
-                ought to be.  */
-             if (BUF_Z (XBUFFER (buffer)) > BUF_BEG (XBUFFER (buffer)))
-               abort ();
-             /* It is safe to do this crudely in an empty buffer.  */
-             XBUFFER (buffer)->enable_multibyte_characters = Qnil;
+             /* Make a multibyte buffer unibyte.  */
+             if (BUF_Z_BYTE (XBUFFER (buffer)) > BUF_Z (XBUFFER (buffer)))
+               {
+                 struct buffer *current = current_buffer;
+
+                 set_buffer_temp (XBUFFER (buffer));
+                 Fset_buffer_multibyte (Qnil);
+                 set_buffer_temp (current);
+               }
            }
        }
     }
@@ -1416,6 +1432,16 @@ main (argc, argv
   no_loadup
     = argmatch (argv, argc, "-nl", "--no-loadup", 6, NULL, &skip_args);
 
+#ifdef USE_FONT_BACKEND
+  enable_font_backend = 1;
+  if (argmatch (argv, argc, "-enable-font-backend", "--enable-font-backend",
+               4, NULL, &skip_args))
+    enable_font_backend = 1;
+  else if (argmatch (argv, argc,
+                    "-disable-font-backend", "--disable-font-backend",
+                    4, NULL, &skip_args))
+    enable_font_backend = 0;
+#endif /* USE_FONT_BACKEND */
 
 #ifdef HAVE_X_WINDOWS
   /* Stupid kludge to catch command-line display spec.  We can't
@@ -1536,7 +1562,7 @@ main (argc, argv
       /* Called before init_window_once for Mac OS Classic.  */
       syms_of_data ();
 #endif
-      syms_of_alloc ();
+      syms_of_chartab ();
       syms_of_lread ();
       syms_of_print ();
       syms_of_eval ();
@@ -1554,7 +1580,7 @@ main (argc, argv
       /* Called before init_window_once for Mac OS Classic.  */
       syms_of_ccl ();
 #endif
-      syms_of_charset ();
+      syms_of_character ();
       syms_of_cmds ();
 #ifndef NO_DIR_LIBRARY
       syms_of_dired ();
@@ -1563,8 +1589,6 @@ main (argc, argv
       syms_of_doc ();
       syms_of_editfns ();
       syms_of_emacs ();
-      syms_of_fileio ();
-      syms_of_coding ();       /* This should be after syms_of_fileio.  */
 #ifdef CLASH_DETECTION
       syms_of_filelock ();
 #endif /* CLASH_DETECTION */
@@ -1601,6 +1625,7 @@ main (argc, argv
       syms_of_window ();
       syms_of_xdisp ();
 #ifdef HAVE_WINDOW_SYSTEM
+      syms_of_font ();
       syms_of_fringe ();
       syms_of_image ();
 #endif /* HAVE_WINDOW_SYSTEM */
@@ -1670,6 +1695,8 @@ main (argc, argv
 #endif  /* HAVE_NTGUI */
     }
 
+  init_charset ();
+
   init_editfns (); /* init_process uses Voperating_system_release. */
   init_process (); /* init_display uses add_keyboard_wait_descriptor. */
 #ifndef MAC_OS8
@@ -1816,6 +1843,8 @@ struct standard_args standard_args[] =
   { "-unibyte", "--unibyte", 81, 0 },
   { "-no-multibyte", "--no-multibyte", 80, 0 },
   { "-nl", "--no-loadup", 70, 0 },
+  { "-enable-font-backend", "--enable-font-backend", 65, 0 },
+  { "-disable-font-backend", "--disable-font-backend", 65, 0 },
   /* -d must come last before the options handled in startup.el.  */
   { "-d", "--display", 60, 1 },
   { "-display", 0, 60, 1 },
index 19558fa332a11a15533a05b275b07896b3b3399d..4dfb0d24796048f91dc6d6d68a4574286f7f6fe8 100644 (file)
@@ -75,7 +75,7 @@ extern int errno;
 #include "lisp.h"
 #include "intervals.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "window.h"
 #include "blockinput.h"
@@ -274,9 +274,12 @@ report_file_error (string, data)
 {
   Lisp_Object errstring;
   int errorno = errno;
+  char *str;
 
   synchronize_system_messages_locale ();
-  errstring = code_convert_string_norecord (build_string (strerror (errorno)),
+  str = strerror (errorno);
+  errstring = code_convert_string_norecord (make_unibyte_string (str,
+                                                                strlen (str)),
                                            Vlocale_coding_system, 0);
 
   while (1)
@@ -314,6 +317,7 @@ restore_point_unwind (location)
   Fset_marker (location, Qnil, Qnil);
   return Qnil;
 }
+
 \f
 Lisp_Object Qexpand_file_name;
 Lisp_Object Qsubstitute_in_file_name;
@@ -1142,8 +1146,19 @@ See also the function `substitute-in-file-name'.  */)
     }
 
   name = FILE_SYSTEM_CASE (name);
-  nm = SDATA (name);
   multibyte = STRING_MULTIBYTE (name);
+  if (multibyte != STRING_MULTIBYTE (default_directory))
+    {
+      if (multibyte)
+       default_directory = string_to_multibyte (default_directory);
+      else
+       {
+         name = string_to_multibyte (name);
+         multibyte = 1;
+       }
+    }
+
+  nm = SDATA (name);
 
 #ifdef DOS_NT
   /* We will force directory separators to be either all \ or /, so make
@@ -1452,7 +1467,6 @@ See also the function `substitute-in-file-name'.  */)
       && !newdir)
     {
       newdir = SDATA (default_directory);
-      multibyte |= STRING_MULTIBYTE (default_directory);
 #ifdef DOS_NT
       /* Note if special escape prefix is present, but remove for now.  */
       if (newdir[0] == '/' && newdir[1] == ':')
@@ -2294,7 +2308,8 @@ duplicates what `expand-file-name' does.  */)
               convert what we substitute into multibyte.  */
            while (*o)
              {
-               int c = unibyte_char_to_multibyte (*o++);
+               int c = *o++;
+               c = unibyte_char_to_multibyte (c);
                x += CHAR_STRING (c, x);
              }
          }
@@ -3733,7 +3748,7 @@ variable `last-coding-system-used' to the coding system actually used.  */)
   unsigned char buffer[1 << 14];
   int replace_handled = 0;
   int set_coding_system = 0;
-  int coding_system_decided = 0;
+  Lisp_Object coding_system;
   int read_quit = 0;
   Lisp_Object old_Vdeactivate_mark = Vdeactivate_mark;
   int we_locked_file = 0;
@@ -3754,6 +3769,10 @@ variable `last-coding-system-used' to the coding system actually used.  */)
   CHECK_STRING (filename);
   filename = Fexpand_file_name (filename, Qnil);
 
+  /* The value Qnil means that the coding system is not yet
+     decided.  */
+  coding_system = Qnil;
+
   /* If the file name has special constructs in it,
      call the corresponding file handler.  */
   handler = Ffind_file_name_handler (filename, Qinsert_file_contents);
@@ -3877,27 +3896,18 @@ variable `last-coding-system-used' to the coding system actually used.  */)
 
   if (EQ (Vcoding_system_for_read, Qauto_save_coding))
     {
-      /* We use emacs-mule for auto saving... */
-      setup_coding_system (Qemacs_mule, &coding);
-      /* ... but with the special flag to indicate to read in a
-        multibyte sequence for eight-bit-control char as is.  */
-      coding.flags = 1;
-      coding.src_multibyte = 0;
-      coding.dst_multibyte
-       = !NILP (current_buffer->enable_multibyte_characters);
-      coding.eol_type = CODING_EOL_LF;
-      coding_system_decided = 1;
+      coding_system = coding_inherit_eol_type (Qutf_8_emacs, Qunix);
+      setup_coding_system (coding_system, &coding);
+      /* Ensure we set Vlast_coding_system_used.  */
+      set_coding_system = 1;
     }
   else if (BEG < Z)
     {
       /* Decide the coding system to use for reading the file now
          because we can't use an optimized method for handling
          `coding:' tag if the current buffer is not empty.  */
-      Lisp_Object val;
-      val = Qnil;
-
       if (!NILP (Vcoding_system_for_read))
-       val = Vcoding_system_for_read;
+       coding_system = Vcoding_system_for_read;
       else
        {
          /* Don't try looking inside a file for a coding system
@@ -3953,8 +3963,8 @@ variable `last-coding-system-used' to the coding system actually used.  */)
 
                  insert_1_both (read_buf, nread, nread, 0, 0, 0);
                  TEMP_SET_PT_BOTH (BEG, BEG_BYTE);
-                 val = call2 (Vset_auto_coding_function,
-                              filename, make_number (nread));
+                 coding_system = call2 (Vset_auto_coding_function,
+                                        filename, make_number (nread));
                  set_buffer_internal (prev);
 
                  /* Discard the unwind protect for recovering the
@@ -3968,34 +3978,33 @@ variable `last-coding-system-used' to the coding system actually used.  */)
                }
            }
 
-         if (NILP (val))
+         if (NILP (coding_system))
            {
              /* If we have not yet decided a coding system, check
                  file-coding-system-alist.  */
-             Lisp_Object args[6], coding_systems;
+             Lisp_Object args[6];
 
              args[0] = Qinsert_file_contents, args[1] = orig_filename;
              args[2] = visit, args[3] = beg, args[4] = end, args[5] = replace;
-             coding_systems = Ffind_operation_coding_system (6, args);
-             if (CONSP (coding_systems))
-               val = XCAR (coding_systems);
+             coding_system = Ffind_operation_coding_system (6, args);
+             if (CONSP (coding_system))
+               coding_system = XCAR (coding_system);
            }
        }
 
-      setup_coding_system (Fcheck_coding_system (val), &coding);
-      /* Ensure we set Vlast_coding_system_used.  */
-      set_coding_system = 1;
+      if (NILP (coding_system))
+       coding_system = Qundecided;
+      else
+       CHECK_CODING_SYSTEM (coding_system);
 
-      if (NILP (current_buffer->enable_multibyte_characters)
-         && ! NILP (val))
+      if (NILP (current_buffer->enable_multibyte_characters))
        /* We must suppress all character code conversion except for
           end-of-line conversion.  */
-       setup_raw_text_coding_system (&coding);
+       coding_system = raw_text_coding_system (coding_system);
 
-      coding.src_multibyte = 0;
-      coding.dst_multibyte
-       = !NILP (current_buffer->enable_multibyte_characters);
-      coding_system_decided = 1;
+      setup_coding_system (coding_system, &coding);
+      /* Ensure we set Vlast_coding_system_used.  */
+      set_coding_system = 1;
     }
 
   /* If requested, replace the accessible part of the buffer
@@ -4014,7 +4023,8 @@ variable `last-coding-system-used' to the coding system actually used.  */)
      and let the following if-statement handle the replace job.  */
   if (!NILP (replace)
       && BEGV < ZV
-      && !(coding.common_flags & CODING_REQUIRE_DECODING_MASK))
+      && (NILP (coding_system)
+         || ! CODING_REQUIRE_DECODING (&coding)))
     {
       /* same_at_start and same_at_end count bytes,
         because file access counts bytes
@@ -4049,21 +4059,15 @@ variable `last-coding-system-used' to the coding system actually used.  */)
          else if (nread == 0)
            break;
 
-         if (coding.type == coding_type_undecided)
-           detect_coding (&coding, buffer, nread);
-         if (coding.common_flags & CODING_REQUIRE_DECODING_MASK)
-           /* We found that the file should be decoded somehow.
-               Let's give up here.  */
+         if (CODING_REQUIRE_DETECTION (&coding))
            {
-             giveup_match_end = 1;
-             break;
+             coding_system = detect_coding_system (buffer, nread, nread, 1, 0,
+                                                   coding_system);
+             setup_coding_system (coding_system, &coding);
            }
 
-         if (coding.eol_type == CODING_EOL_UNDECIDED)
-           detect_eol (&coding, buffer, nread);
-         if (coding.eol_type != CODING_EOL_UNDECIDED
-             && coding.eol_type != CODING_EOL_LF)
-           /* We found that the format of eol should be decoded.
+         if (CODING_REQUIRE_DECODING (&coding))
+           /* We found that the file should be decoded somehow.
                Let's give up here.  */
            {
              giveup_match_end = 1;
@@ -4208,124 +4212,108 @@ variable `last-coding-system-used' to the coding system actually used.  */)
     {
       int same_at_start = BEGV_BYTE;
       int same_at_end = ZV_BYTE;
+      int same_at_start_charpos;
+      int inserted_chars;
       int overlap;
       int bufpos;
-      /* Make sure that the gap is large enough.  */
-      int bufsize = 2 * st.st_size;
-      unsigned char *conversion_buffer = (unsigned char *) xmalloc (bufsize);
+      unsigned char *decoded;
       int temp;
+      int this_count = SPECPDL_INDEX ();
+      int multibyte = ! NILP (current_buffer->enable_multibyte_characters);
+      Lisp_Object conversion_buffer;
+
+      conversion_buffer = code_conversion_save (1, multibyte);
 
       /* First read the whole file, performing code conversion into
         CONVERSION_BUFFER.  */
 
       if (lseek (fd, XINT (beg), 0) < 0)
-       {
-         xfree (conversion_buffer);
-         report_file_error ("Setting file position",
-                            Fcons (orig_filename, Qnil));
-       }
+       report_file_error ("Setting file position",
+                          Fcons (orig_filename, Qnil));
 
       total = st.st_size;      /* Total bytes in the file.  */
       how_much = 0;            /* Bytes read from file so far.  */
       inserted = 0;            /* Bytes put into CONVERSION_BUFFER so far.  */
       unprocessed = 0;         /* Bytes not processed in previous loop.  */
 
+      GCPRO1 (conversion_buffer);
       while (how_much < total)
        {
+         /* We read one bunch by one (READ_BUF_SIZE bytes) to allow
+            quitting while reading a huge while.  */
          /* try is reserved in some compilers (Microsoft C) */
          int trytry = min (total - how_much, READ_BUF_SIZE - unprocessed);
-         unsigned char *destination = read_buf + unprocessed;
          int this;
 
          /* Allow quitting out of the actual I/O.  */
          immediate_quit = 1;
          QUIT;
-         this = emacs_read (fd, destination, trytry);
+         this = emacs_read (fd, read_buf + unprocessed, trytry);
          immediate_quit = 0;
 
-         if (this < 0 || this + unprocessed == 0)
+         if (this <= 0)
            {
-             how_much = this;
+             if (this < 0)
+               how_much = this;
              break;
            }
 
          how_much += this;
 
-         if (CODING_MAY_REQUIRE_DECODING (&coding))
-           {
-             int require, result;
-
-             this += unprocessed;
-
-             /* If we are using more space than estimated,
-                make CONVERSION_BUFFER bigger.  */
-             require = decoding_buffer_size (&coding, this);
-             if (inserted + require + 2 * (total - how_much) > bufsize)
-               {
-                 bufsize = inserted + require + 2 * (total - how_much);
-                 conversion_buffer = (unsigned char *) xrealloc (conversion_buffer, bufsize);
-               }
-
-             /* Convert this batch with results in CONVERSION_BUFFER.  */
-             if (how_much >= total)  /* This is the last block.  */
-               coding.mode |= CODING_MODE_LAST_BLOCK;
-             if (coding.composing != COMPOSITION_DISABLED)
-               coding_allocate_composition_data (&coding, BEGV);
-             result = decode_coding (&coding, read_buf,
-                                     conversion_buffer + inserted,
-                                     this, bufsize - inserted);
-
-             /* Save for next iteration whatever we didn't convert.  */
-             unprocessed = this - coding.consumed;
-             bcopy (read_buf + coding.consumed, read_buf, unprocessed);
-             if (!NILP (current_buffer->enable_multibyte_characters))
-               this = coding.produced;
-             else
-               this = str_as_unibyte (conversion_buffer + inserted,
-                                      coding.produced);
-           }
-
-         inserted += this;
+         BUF_SET_PT (XBUFFER (conversion_buffer),
+                     BUF_Z (XBUFFER (conversion_buffer)));
+         decode_coding_c_string (&coding, read_buf, unprocessed + this,
+                                 conversion_buffer);
+         unprocessed = coding.carryover_bytes;
+         if (coding.carryover_bytes > 0)
+           bcopy (coding.carryover, read_buf, unprocessed);
        }
+      UNGCPRO;
+      emacs_close (fd);
 
-      /* At this point, INSERTED is how many characters (i.e. bytes)
-        are present in CONVERSION_BUFFER.
-        HOW_MUCH should equal TOTAL,
-        or should be <= 0 if we couldn't read the file.  */
+      /* At this point, HOW_MUCH should equal TOTAL, or should be <= 0
+        if we couldn't read the file.  */
 
       if (how_much < 0)
+       error ("IO error reading %s: %s",
+              SDATA (orig_filename), emacs_strerror (errno));
+
+      if (unprocessed > 0)
        {
-         xfree (conversion_buffer);
-         coding_free_composition_data (&coding);
-         error ("IO error reading %s: %s",
-                SDATA (orig_filename), emacs_strerror (errno));
+         coding.mode |= CODING_MODE_LAST_BLOCK;
+         decode_coding_c_string (&coding, read_buf, unprocessed,
+                                 conversion_buffer);
+         coding.mode &= ~CODING_MODE_LAST_BLOCK;
        }
 
-      /* Compare the beginning of the converted file
-        with the buffer text.  */
+      decoded = BUF_BEG_ADDR (XBUFFER (conversion_buffer));
+      inserted = (BUF_Z_BYTE (XBUFFER (conversion_buffer))
+                 - BUF_BEG_BYTE (XBUFFER (conversion_buffer)));
+
+      /* Compare the beginning of the converted string with the buffer
+        text.  */
 
       bufpos = 0;
       while (bufpos < inserted && same_at_start < same_at_end
-            && FETCH_BYTE (same_at_start) == conversion_buffer[bufpos])
+            && FETCH_BYTE (same_at_start) == decoded[bufpos])
        same_at_start++, bufpos++;
 
-      /* If the file matches the buffer completely,
+      /* If the file matches the head of buffer completely,
         there's no need to replace anything.  */
 
       if (bufpos == inserted)
        {
-         xfree (conversion_buffer);
-         coding_free_composition_data (&coding);
-         emacs_close (fd);
          specpdl_ptr--;
          /* Truncate the buffer to the size of the file.  */
          del_range_byte (same_at_start, same_at_end, 0);
          inserted = 0;
+
+         unbind_to (this_count, Qnil);
          goto handled;
        }
 
-      /* Extend the start of non-matching text area to multibyte
-        character boundary.  */
+      /* Extend the start of non-matching text area to the previous
+        multibyte character boundary.  */
       if (! NILP (current_buffer->enable_multibyte_characters))
        while (same_at_start > BEGV_BYTE
               && ! CHAR_HEAD_P (FETCH_BYTE (same_at_start)))
@@ -4338,11 +4326,11 @@ variable `last-coding-system-used' to the coding system actually used.  */)
       /* Compare with same_at_start to avoid counting some buffer text
         as matching both at the file's beginning and at the end.  */
       while (bufpos > 0 && same_at_end > same_at_start
-            && FETCH_BYTE (same_at_end - 1) == conversion_buffer[bufpos - 1])
+            && FETCH_BYTE (same_at_end - 1) == decoded[bufpos - 1])
        same_at_end--, bufpos--;
 
-      /* Extend the end of non-matching text area to multibyte
-        character boundary.  */
+      /* Extend the end of non-matching text area to the next
+        multibyte character boundary.  */
       if (! NILP (current_buffer->enable_multibyte_characters))
        while (same_at_end < ZV_BYTE
               && ! CHAR_HEAD_P (FETCH_BYTE (same_at_end)))
@@ -4360,7 +4348,7 @@ variable `last-coding-system-used' to the coding system actually used.  */)
 
       /* Replace the chars that we need to replace,
         and update INSERTED to equal the number of bytes
-        we are taking from the file.  */
+        we are taking from the decoded string.  */
       inserted -= (ZV_BYTE - same_at_end) + (same_at_start - BEGV_BYTE);
 
       if (same_at_end != same_at_start)
@@ -4375,20 +4363,25 @@ variable `last-coding-system-used' to the coding system actually used.  */)
        }
       /* Insert from the file at the proper position.  */
       SET_PT_BOTH (temp, same_at_start);
-      insert_1 (conversion_buffer + same_at_start - BEGV_BYTE, inserted,
-               0, 0, 0);
-      if (coding.cmp_data && coding.cmp_data->used)
-       coding_restore_composition (&coding, Fcurrent_buffer ());
-      coding_free_composition_data (&coding);
-
+      same_at_start_charpos
+       = buf_bytepos_to_charpos (XBUFFER (conversion_buffer),
+                                 same_at_start);
+      inserted_chars
+       = (buf_bytepos_to_charpos (XBUFFER (conversion_buffer),
+                                  same_at_start + inserted)
+          - same_at_start_charpos);
+      /* This binding is to avoid ask-user-about-supersession-threat
+        being called in insert_from_buffer (via in
+        prepare_to_modify_buffer).  */
+      specbind (intern ("buffer-file-name"), Qnil);
+      insert_from_buffer (XBUFFER (conversion_buffer),
+                         same_at_start_charpos, inserted_chars, 0);
       /* Set `inserted' to the number of inserted characters.  */
       inserted = PT - temp;
       /* Set point before the inserted characters.  */
       SET_PT_BOTH (temp, same_at_start);
 
-      xfree (conversion_buffer);
-      emacs_close (fd);
-      specpdl_ptr--;
+      unbind_to (this_count, Qnil);
 
       goto handled;
     }
@@ -4441,7 +4434,7 @@ variable `last-coding-system-used' to the coding system actually used.  */)
   inserted = 0;
 
   /* Here, we don't do code conversion in the loop.  It is done by
-     code_convert_region after all data are read into the buffer.  */
+     decode_coding_gap after all data are read into the buffer.  */
   {
     int gap_size = GAP_SIZE;
 
@@ -4546,26 +4539,23 @@ variable `last-coding-system-used' to the coding system actually used.  */)
 
  notfound:
 
-  if (! coding_system_decided)
+  if (NILP (coding_system))
     {
       /* The coding system is not yet decided.  Decide it by an
         optimized method for handling `coding:' tag.
 
         Note that we can get here only if the buffer was empty
         before the insertion.  */
-      Lisp_Object val;
-      val = Qnil;
 
       if (!NILP (Vcoding_system_for_read))
-       val = Vcoding_system_for_read;
+       coding_system = Vcoding_system_for_read;
       else
        {
          /* Since we are sure that the current buffer was empty
             before the insertion, we can toggle
             enable-multibyte-characters directly here without taking
-            care of marker adjustment and byte combining problem.  By
-            this way, we can run Lisp program safely before decoding
-            the inserted text.  */
+            care of marker adjustment.  By this way, we can run Lisp
+            program safely before decoding the inserted text.  */
          Lisp_Object unwind_data;
          int count = SPECPDL_INDEX ();
 
@@ -4578,72 +4568,69 @@ variable `last-coding-system-used' to the coding system actually used.  */)
 
          if (inserted > 0 && ! NILP (Vset_auto_coding_function))
            {
-             val = call2 (Vset_auto_coding_function,
-                          filename, make_number (inserted));
+             coding_system = call2 (Vset_auto_coding_function,
+                                    filename, make_number (inserted));
            }
 
-         if (NILP (val))
+         if (NILP (coding_system))
            {
              /* If the coding system is not yet decided, check
                 file-coding-system-alist.  */
-             Lisp_Object args[6], coding_systems;
+             Lisp_Object args[6];
 
              args[0] = Qinsert_file_contents, args[1] = orig_filename;
              args[2] = visit, args[3] = beg, args[4] = end, args[5] = Qnil;
-             coding_systems = Ffind_operation_coding_system (6, args);
-             if (CONSP (coding_systems))
-               val = XCAR (coding_systems);
+             coding_system = Ffind_operation_coding_system (6, args);
+             if (CONSP (coding_system))
+               coding_system = XCAR (coding_system);
            }
          unbind_to (count, Qnil);
          inserted = Z_BYTE - BEG_BYTE;
        }
 
-      /* The following kludgy code is to avoid some compiler bug.
-        We can't simply do
-        setup_coding_system (val, &coding);
-        on some system.  */
-      {
-       struct coding_system temp_coding;
-       setup_coding_system (Fcheck_coding_system (val), &temp_coding);
-       bcopy (&temp_coding, &coding, sizeof coding);
-      }
-      /* Ensure we set Vlast_coding_system_used.  */
-      set_coding_system = 1;
+      if (NILP (coding_system))
+       coding_system = Qundecided;
+      else
+       CHECK_CODING_SYSTEM (coding_system);
 
-      if (NILP (current_buffer->enable_multibyte_characters)
-         && ! NILP (val))
+      if (NILP (current_buffer->enable_multibyte_characters))
        /* We must suppress all character code conversion except for
           end-of-line conversion.  */
-       setup_raw_text_coding_system (&coding);
-      coding.src_multibyte = 0;
-      coding.dst_multibyte
-       = !NILP (current_buffer->enable_multibyte_characters);
+       coding_system = raw_text_coding_system (coding_system);
+      setup_coding_system (coding_system, &coding);
+      /* Ensure we set Vlast_coding_system_used.  */
+      set_coding_system = 1;
     }
 
-  if (!NILP (visit)
-      /* Can't do this if part of the buffer might be preserved.  */
-      && NILP (replace)
-      && (coding.type == coding_type_no_conversion
-         || coding.type == coding_type_raw_text))
+  if (!NILP (visit))
     {
-      /* Visiting a file with these coding system makes the buffer
-         unibyte. */
-      current_buffer->enable_multibyte_characters = Qnil;
-      coding.dst_multibyte = 0;
+      /* When we visit a file by raw-text, we change the buffer to
+        unibyte.  */
+      if (CODING_FOR_UNIBYTE (&coding)
+         /* Can't do this if part of the buffer might be preserved.  */
+         && NILP (replace))
+       /* Visiting a file with these coding system makes the buffer
+          unibyte. */
+       current_buffer->enable_multibyte_characters = Qnil;
     }
 
-  if (inserted > 0 || coding.type == coding_type_ccl)
+  coding.dst_multibyte = ! NILP (current_buffer->enable_multibyte_characters);
+  if (CODING_MAY_REQUIRE_DECODING (&coding)
+      && (inserted > 0 || CODING_REQUIRE_FLUSHING (&coding)))
     {
-      if (CODING_MAY_REQUIRE_DECODING (&coding))
-       {
-         code_convert_region (PT, PT_BYTE, PT + inserted, PT_BYTE + inserted,
-                              &coding, 0, 0);
-         inserted = coding.produced_char;
-       }
-      else
-       adjust_after_insert (PT, PT_BYTE, PT + inserted, PT_BYTE + inserted,
-                            inserted);
+      move_gap_both (PT, PT_BYTE);
+      GAP_SIZE += inserted;
+      ZV_BYTE -= inserted;
+      Z_BYTE -= inserted;
+      ZV -= inserted;
+      Z -= inserted;
+      decode_coding_gap (&coding, inserted, inserted);
+      inserted = coding.produced_char;
+      coding_system = CODING_ID_NAME (coding.id);
     }
+  else if (inserted > 0)
+    adjust_after_insert (PT, PT_BYTE, PT + inserted, PT_BYTE + inserted,
+                        inserted);
 
   /* Now INSERTED is measured in characters.  */
 
@@ -4651,8 +4638,8 @@ variable `last-coding-system-used' to the coding system actually used.  */)
   /* Use the conversion type to determine buffer-file-type
      (find-buffer-file-type is now used to help determine the
      conversion).  */
-  if ((coding.eol_type == CODING_EOL_UNDECIDED
-       || coding.eol_type == CODING_EOL_LF)
+  if ((VECTORP (CODING_ID_EOL_TYPE (coding.id))
+       || EQ (CODING_ID_EOL_TYPE (coding.id), Qunix))
       && ! CODING_REQUIRE_DECODING (&coding))
     current_buffer->buffer_file_type = Qt;
   else
@@ -4692,7 +4679,7 @@ variable `last-coding-system-used' to the coding system actually used.  */)
     }
 
   if (set_coding_system)
-    Vlast_coding_system_used = coding.symbol;
+    Vlast_coding_system_used = coding_system;
 
   if (! NILP (Ffboundp (Qafter_insert_file_set_coding)))
     {
@@ -4853,8 +4840,6 @@ variable `last-coding-system-used' to the coding system actually used.  */)
 }
 \f
 static Lisp_Object build_annotations P_ ((Lisp_Object, Lisp_Object));
-static Lisp_Object build_annotations_2 P_ ((Lisp_Object, Lisp_Object,
-                                           Lisp_Object, Lisp_Object));
 
 /* If build_annotations switched buffers, switch back to BUF.
    Kill the temporary buffer that was selected in the meantime.
@@ -4879,26 +4864,21 @@ build_annotations_unwind (buf)
 
 /* Decide the coding-system to encode the data with.  */
 
-void
+static Lisp_Object
 choose_write_coding_system (start, end, filename,
                            append, visit, lockname, coding)
      Lisp_Object start, end, filename, append, visit, lockname;
      struct coding_system *coding;
 {
   Lisp_Object val;
+  Lisp_Object eol_parent = Qnil;
 
   if (auto_saving
       && NILP (Fstring_equal (current_buffer->filename,
                              current_buffer->auto_save_file_name)))
     {
-      /* We use emacs-mule for auto saving... */
-      setup_coding_system (Qemacs_mule, coding);
-      /* ... but with the special flag to indicate not to strip off
-        leading code of eight-bit-control chars.  */
-      coding->flags = 1;
-      /* We force LF for end-of-line because that is faster.  */
-      coding->eol_type = CODING_EOL_LF;
-      goto done_setup_coding;
+      val = Qutf_8_emacs;
+      eol_parent = Qunix;
     }
   else if (!NILP (Vcoding_system_for_write))
     {
@@ -4946,8 +4926,7 @@ choose_write_coding_system (start, end, filename,
            val = XCDR (coding_systems);
        }
 
-      if (NILP (val)
-         && !NILP (current_buffer->buffer_file_coding_system))
+      if (NILP (val))
        {
          /* If we still have not decided a coding system, use the
             default value of buffer-file-coding-system.  */
@@ -4955,45 +4934,42 @@ choose_write_coding_system (start, end, filename,
          using_default_coding = 1;
        }
 
+      if (! NILP (val) && ! force_raw_text)
+       {
+         Lisp_Object spec, attrs;
+
+         CHECK_CODING_SYSTEM_GET_SPEC (val, spec);
+         attrs = AREF (spec, 0);
+         if (EQ (CODING_ATTR_TYPE (attrs), Qraw_text))
+           force_raw_text = 1;
+       }
+
       if (!force_raw_text
          && !NILP (Ffboundp (Vselect_safe_coding_system_function)))
        /* Confirm that VAL can surely encode the current region.  */
        val = call5 (Vselect_safe_coding_system_function,
                     start, end, val, Qnil, filename);
 
-      setup_coding_system (Fcheck_coding_system (val), coding);
-      if (coding->eol_type == CODING_EOL_UNDECIDED
-         && !using_default_coding)
-       {
-         if (! EQ (default_buffer_file_coding.symbol,
-                   buffer_defaults.buffer_file_coding_system))
-           setup_coding_system (buffer_defaults.buffer_file_coding_system,
-                                &default_buffer_file_coding);
-         if (default_buffer_file_coding.eol_type != CODING_EOL_UNDECIDED)
-           {
-             Lisp_Object subsidiaries;
-
-             coding->eol_type = default_buffer_file_coding.eol_type;
-             subsidiaries = Fget (coding->symbol, Qeol_type);
-             if (VECTORP (subsidiaries)
-                 && XVECTOR (subsidiaries)->size == 3)
-               coding->symbol
-                 = XVECTOR (subsidiaries)->contents[coding->eol_type];
-           }
-       }
+      /* If the decided coding-system doesn't specify end-of-line
+        format, we use that of
+        `default-buffer-file-coding-system'.  */
+      if (! using_default_coding
+         && ! NILP (buffer_defaults.buffer_file_coding_system))
+       val = (coding_inherit_eol_type
+              (val, buffer_defaults.buffer_file_coding_system));
 
+      /* If we decide not to encode text, use `raw-text' or one of its
+        subsidiaries.  */
       if (force_raw_text)
-       setup_raw_text_coding_system (coding);
-      goto done_setup_coding;
+       val = raw_text_coding_system (val);
     }
 
-  setup_coding_system (Fcheck_coding_system (val), coding);
+  val = coding_inherit_eol_type (val, eol_parent);
+  setup_coding_system (val, coding);
 
- done_setup_coding:
-  if (coding->eol_type == CODING_EOL_UNDECIDED)
-    coding->eol_type = system_eol_type;
   if (!STRINGP (start) && !NILP (current_buffer->selective_display))
     coding->mode |= CODING_MODE_SELECTIVE_DISPLAY;
+  return val;
 }
 
 DEFUN ("write-region", Fwrite_region, Swrite_region, 3, 7,
@@ -5038,7 +5014,6 @@ This does code conversion according to the value of
   int save_errno = 0;
   const unsigned char *fn;
   struct stat st;
-  int tem;
   int count = SPECPDL_INDEX ();
   int count1;
 #ifdef VMS
@@ -5138,21 +5113,9 @@ This does code conversion according to the value of
      We used to make this choice before calling build_annotations, but that
      leads to problems when a write-annotate-function takes care of
      unsavable chars (as was the case with X-Symbol).  */
-  choose_write_coding_system (start, end, filename,
-                             append, visit, lockname, &coding);
-  Vlast_coding_system_used = coding.symbol;
-
-  given_buffer = current_buffer;
-  if (! STRINGP (start))
-    {
-      annotations = build_annotations_2 (start, end,
-                                        coding.pre_write_conversion, annotations);
-      if (current_buffer != given_buffer)
-       {
-         XSETFASTINT (start, BEGV);
-         XSETFASTINT (end, ZV);
-       }
-    }
+  Vlast_coding_system_used
+    = choose_write_coding_system (start, end, filename,
+                                 append, visit, lockname, &coding);
 
 #ifdef CLASH_DETECTION
   if (!auto_saving)
@@ -5290,6 +5253,9 @@ This does code conversion according to the value of
   if (GPT > BEG && GPT_ADDR[-1] != '\n')
     move_gap (find_next_newline (GPT, 1));
 #else
+#if 0
+  /* The new encoding routine doesn't require the following.  */
+
   /* Whether VMS or not, we must move the gap to the next of newline
      when we must put designation sequences at beginning of line.  */
   if (INTEGERP (start)
@@ -5302,6 +5268,7 @@ This does code conversion according to the value of
       move_gap_both (PT, PT_BYTE);
       SET_PT_BOTH (opoint, opoint_byte);
     }
+#endif
 #endif
 
   failure = 0;
@@ -5315,23 +5282,10 @@ This does code conversion according to the value of
     }
   else if (XINT (start) != XINT (end))
     {
-      tem = CHAR_TO_BYTE (XINT (start));
-
-      if (XINT (start) < GPT)
-       {
-         failure = 0 > a_write (desc, Qnil, XINT (start),
-                                min (GPT, XINT (end)) - XINT (start),
-                                &annotations, &coding);
-         save_errno = errno;
-       }
-
-      if (XINT (end) > GPT && !failure)
-       {
-         tem = max (XINT (start), GPT);
-         failure = 0 > a_write (desc, Qnil, tem , XINT (end) - tem,
-                                &annotations, &coding);
-         save_errno = errno;
-       }
+      failure = 0 > a_write (desc, Qnil,
+                            XINT (start), XINT (end) - XINT (start),
+                            &annotations, &coding);
+      save_errno = errno;
     }
   else
     {
@@ -5347,7 +5301,7 @@ This does code conversion according to the value of
     {
       /* We have to flush out a data. */
       coding.mode |= CODING_MODE_LAST_BLOCK;
-      failure = 0 > e_write (desc, Qnil, 0, 0, &coding);
+      failure = 0 > e_write (desc, Qnil, 1, 1, &coding);
       save_errno = errno;
     }
 
@@ -5546,30 +5500,6 @@ build_annotations (start, end)
   return annotations;
 }
 
-static Lisp_Object
-build_annotations_2 (start, end, pre_write_conversion, annotations)
-     Lisp_Object start, end, pre_write_conversion, annotations;
-{
-  struct gcpro gcpro1;
-  Lisp_Object res;
-
-  GCPRO1 (annotations);
-  /* At last, do the same for the function PRE_WRITE_CONVERSION
-     implied by the current coding-system.  */
-  if (!NILP (pre_write_conversion))
-    {
-      struct buffer *given_buffer = current_buffer;
-      Vwrite_region_annotations_so_far = annotations;
-      res = call2 (pre_write_conversion, start, end);
-      Flength (res);
-      annotations = (current_buffer != given_buffer
-                    ? res
-                    : merge (annotations, res, Qcar_less_than_car));
-    }
-
-  UNGCPRO;
-  return annotations;
-}
 \f
 /* Write to descriptor DESC the NCHARS chars starting at POS of STRING.
    If STRING is nil, POS is the character position in the current buffer.
@@ -5625,9 +5555,6 @@ a_write (desc, string, pos, nchars, annot, coding)
   return 0;
 }
 
-#ifndef WRITE_BUF_SIZE
-#define WRITE_BUF_SIZE (16 * 1024)
-#endif
 
 /* Write text in the range START and END into descriptor DESC,
    encoding them with coding system CODING.  If STRING is nil, START
@@ -5641,78 +5568,77 @@ e_write (desc, string, start, end, coding)
      int start, end;
      struct coding_system *coding;
 {
-  register char *addr;
-  register int nbytes;
-  char buf[WRITE_BUF_SIZE];
-  int return_val = 0;
-
-  if (start >= end)
-    coding->composing = COMPOSITION_DISABLED;
-  if (coding->composing != COMPOSITION_DISABLED)
-    coding_save_composition (coding, start, end, string);
-
   if (STRINGP (string))
     {
-      addr = SDATA (string);
-      nbytes = SBYTES (string);
-      coding->src_multibyte = STRING_MULTIBYTE (string);
-    }
-  else if (start < end)
-    {
-      /* It is assured that the gap is not in the range START and END-1.  */
-      addr = CHAR_POS_ADDR (start);
-      nbytes = CHAR_TO_BYTE (end) - CHAR_TO_BYTE (start);
-      coding->src_multibyte
-       = !NILP (current_buffer->enable_multibyte_characters);
-    }
-  else
-    {
-      addr = "";
-      nbytes = 0;
-      coding->src_multibyte = 1;
+      start = 0;
+      end = SCHARS (string);
     }
 
   /* We used to have a code for handling selective display here.  But,
      now it is handled within encode_coding.  */
-  while (1)
-    {
-      int result;
 
-      result = encode_coding (coding, addr, buf, nbytes, WRITE_BUF_SIZE);
-      if (coding->produced > 0)
+  while (start < end)
+    {
+      if (STRINGP (string))
        {
-         coding->produced -= emacs_write (desc, buf, coding->produced);
-         if (coding->produced)
+         coding->src_multibyte = SCHARS (string) < SBYTES (string);
+         if (CODING_REQUIRE_ENCODING (coding))
            {
-             return_val = -1;
-             break;
+             encode_coding_object (coding, string,
+                                   start, string_char_to_byte (string, start),
+                                   end, string_char_to_byte (string, end), Qt);
+           }
+         else
+           {
+             coding->dst_object = string;
+             coding->consumed_char = SCHARS (string);
+             coding->produced = SBYTES (string);
            }
        }
-      nbytes -= coding->consumed;
-      addr += coding->consumed;
-      if (result == CODING_FINISH_INSUFFICIENT_SRC
-         && nbytes > 0)
+      else
        {
-         /* The source text ends by an incomplete multibyte form.
-             There's no way other than write it out as is.  */
-         nbytes -= emacs_write (desc, addr, nbytes);
-         if (nbytes)
+         int start_byte = CHAR_TO_BYTE (start);
+         int end_byte = CHAR_TO_BYTE (end);
+
+         coding->src_multibyte = (end - start) < (end_byte - start_byte);
+         if (CODING_REQUIRE_ENCODING (coding))
            {
-             return_val = -1;
-             break;
+             encode_coding_object (coding, Fcurrent_buffer (),
+                                   start, start_byte, end, end_byte, Qt);
+           }
+         else
+           {
+             coding->dst_object = Qnil;
+             coding->dst_pos_byte = start_byte;
+             if (start >= GPT || end <= GPT)
+               {
+                 coding->consumed_char = end - start;
+                 coding->produced = end_byte - start_byte;
+               }
+             else
+               {
+                 coding->consumed_char = GPT - start;
+                 coding->produced = GPT_BYTE - start_byte;
+               }
            }
        }
-      if (nbytes <= 0)
-       break;
+
+      if (coding->produced > 0)
+       {
+         coding->produced -=
+           emacs_write (desc,
+                        STRINGP (coding->dst_object)
+                        ? SDATA (coding->dst_object)
+                        : BYTE_POS_ADDR (coding->dst_pos_byte),
+                        coding->produced);
+
+         if (coding->produced)
+           return -1;
+       }
       start += coding->consumed_char;
-      if (coding->cmp_data)
-       coding_adjust_composition_offset (coding, start);
     }
 
-  if (coding->cmp_data)
-    coding_free_composition_data (coding);
-
-  return return_val;
+  return 0;
 }
 \f
 DEFUN ("verify-visited-file-modtime", Fverify_visited_file_modtime,
@@ -6013,7 +5939,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer.  */)
      couldn't handle some ange-ftp'd file.  */
 
   for (do_handled_files = 0; do_handled_files < 2; do_handled_files++)
-    for (tail = Vbuffer_alist; GC_CONSP (tail); tail = XCDR (tail))
+    for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail))
       {
        buf = XCDR (XCAR (tail));
        b = XBUFFER (buf);
@@ -6290,9 +6216,9 @@ DEFUN ("read-file-name-internal", Fread_file_name_internal, Sread_file_name_inte
            {
              Lisp_Object tem = XCAR (all);
              int len;
-             if (STRINGP (tem)
-                 && (len = SBYTES (tem), len > 0)
-                 && IS_DIRECTORY_SEP (SREF (tem, len-1)))
+             if (STRINGP (tem) &&
+                 (len = SBYTES (tem), len > 0) &&
+                 IS_DIRECTORY_SEP (SREF (tem, len-1)))
                comp = Fcons (tem, comp);
            }
        }
index 4c211bf99471968cb5e19496719d76b4c88c8d98..b479a8028669cec6f98e56b2bdaa9c01293be711 100644 (file)
@@ -53,7 +53,7 @@ extern int errno;
 
 #include "lisp.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "systime.h"
 
@@ -666,7 +666,7 @@ unlock_all_files ()
   register Lisp_Object tail;
   register struct buffer *b;
 
-  for (tail = Vbuffer_alist; GC_CONSP (tail); tail = XCDR (tail))
+  for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail))
     {
       b = XBUFFER (XCDR (XCAR (tail)));
       if (STRINGP (b->file_truename) && BUF_SAVE_MODIFF (b) < BUF_MODIFF (b))
index 618ccb5025fc1a11addc64cffb36e405f2178366..82f9501f7aae87a92285f7114b177d0dc416ec8c 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -39,7 +39,7 @@ Boston, MA 02110-1301, USA.  */
 
 #include "lisp.h"
 #include "commands.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "buffer.h"
 #include "keyboard.h"
@@ -151,8 +151,6 @@ To get the number of bytes, use `string-bytes'.  */)
     XSETFASTINT (val, SCHARS (sequence));
   else if (VECTORP (sequence))
     XSETFASTINT (val, ASIZE (sequence));
-  else if (SUB_CHAR_TABLE_P (sequence))
-    XSETFASTINT (val, SUB_CHAR_TABLE_ORDINARY_SLOTS);
   else if (CHAR_TABLE_P (sequence))
     XSETFASTINT (val, MAX_CHAR);
   else if (BOOL_VECTOR_P (sequence))
@@ -217,7 +215,7 @@ which is at least the number of distinct elements.  */)
 
 DEFUN ("string-bytes", Fstring_bytes, Sstring_bytes, 1, 1, 0,
        doc: /* Return the number of bytes in STRING.
-If STRING is a multibyte string, this is greater than the length of STRING.  */)
+If STRING is multibyte, this may be greater than the length of STRING.  */)
      (string)
      Lisp_Object string;
 {
@@ -464,28 +462,6 @@ usage: (vconcat &rest SEQUENCES)   */)
   return concat (nargs, args, Lisp_Vectorlike, 0);
 }
 
-/* Return a copy of a sub char table ARG.  The elements except for a
-   nested sub char table are not copied.  */
-static Lisp_Object
-copy_sub_char_table (arg)
-     Lisp_Object arg;
-{
-  Lisp_Object copy = make_sub_char_table (Qnil);
-  int i;
-
-  XCHAR_TABLE (copy)->defalt = XCHAR_TABLE (arg)->defalt;
-  /* Copy all the contents.  */
-  bcopy (XCHAR_TABLE (arg)->contents, XCHAR_TABLE (copy)->contents,
-        SUB_CHAR_TABLE_ORDINARY_SLOTS * sizeof (Lisp_Object));
-  /* Recursively copy any sub char-tables in the ordinary slots.  */
-  for (i = 32; i < SUB_CHAR_TABLE_ORDINARY_SLOTS; i++)
-    if (SUB_CHAR_TABLE_P (XCHAR_TABLE (arg)->contents[i]))
-      XCHAR_TABLE (copy)->contents[i]
-       = copy_sub_char_table (XCHAR_TABLE (copy)->contents[i]);
-
-  return copy;
-}
-
 
 DEFUN ("copy-sequence", Fcopy_sequence, Scopy_sequence, 1, 1, 0,
        doc: /* Return a copy of a list, vector, string or char-table.
@@ -498,24 +474,7 @@ with the original.  */)
 
   if (CHAR_TABLE_P (arg))
     {
-      int i;
-      Lisp_Object copy;
-
-      copy = Fmake_char_table (XCHAR_TABLE (arg)->purpose, Qnil);
-      /* Copy all the slots, including the extra ones.  */
-      bcopy (XVECTOR (arg)->contents, XVECTOR (copy)->contents,
-            ((XCHAR_TABLE (arg)->size & PSEUDOVECTOR_SIZE_MASK)
-             * sizeof (Lisp_Object)));
-
-      /* Recursively copy any sub char tables in the ordinary slots
-         for multibyte characters.  */
-      for (i = CHAR_TABLE_SINGLE_BYTE_SLOTS;
-          i < CHAR_TABLE_ORDINARY_SLOTS; i++)
-       if (SUB_CHAR_TABLE_P (XCHAR_TABLE (arg)->contents[i]))
-         XCHAR_TABLE (copy)->contents[i]
-           = copy_sub_char_table (XCHAR_TABLE (copy)->contents[i]);
-
-      return copy;
+      return copy_char_table (arg);
     }
 
   if (BOOL_VECTOR_P (arg))
@@ -618,10 +577,10 @@ concat (nargs, args, target_type, last_special)
            for (i = 0; i < len; i++)
              {
                ch = AREF (this, i);
-               CHECK_NUMBER (ch);
+               CHECK_CHARACTER (ch);
                this_len_byte = CHAR_BYTES (XINT (ch));
                result_len_byte += this_len_byte;
-               if (!SINGLE_BYTE_CHAR_P (XINT (ch)))
+               if (! ASCII_CHAR_P (XINT (ch)) && ! CHAR_BYTE8_P (XINT (ch)))
                  some_multibyte = 1;
              }
          else if (BOOL_VECTOR_P (this) && XBOOL_VECTOR (this)->size > 0)
@@ -630,10 +589,10 @@ concat (nargs, args, target_type, last_special)
            for (; CONSP (this); this = XCDR (this))
              {
                ch = XCAR (this);
-               CHECK_NUMBER (ch);
+               CHECK_CHARACTER (ch);
                this_len_byte = CHAR_BYTES (XINT (ch));
                result_len_byte += this_len_byte;
-               if (!SINGLE_BYTE_CHAR_P (XINT (ch)))
+               if (! ASCII_CHAR_P (XINT (ch)) && ! CHAR_BYTE8_P (XINT (ch)))
                  some_multibyte = 1;
              }
          else if (STRINGP (this))
@@ -749,9 +708,7 @@ concat (nargs, args, target_type, last_special)
                  {
                    XSETFASTINT (elt, SREF (this, thisindex)); thisindex++;
                    if (some_multibyte
-                       && (XINT (elt) >= 0240
-                           || (XINT (elt) >= 0200
-                               && ! NILP (Vnonascii_translation_table)))
+                       && XINT (elt) >= 0200
                        && XINT (elt) < 0400)
                      {
                        c = unibyte_char_to_multibyte (XINT (elt));
@@ -784,28 +741,12 @@ concat (nargs, args, target_type, last_special)
            else
              {
                CHECK_NUMBER (elt);
-               if (SINGLE_BYTE_CHAR_P (XINT (elt)))
-                 {
-                   if (some_multibyte)
-                     toindex_byte
-                       += CHAR_STRING (XINT (elt),
-                                       SDATA (val) + toindex_byte);
-                   else
-                     SSET (val, toindex_byte++, XINT (elt));
-                   toindex++;
-                 }
+               if (some_multibyte)
+                 toindex_byte += CHAR_STRING (XINT (elt),
+                                              SDATA (val) + toindex_byte);
                else
-                 /* If we have any multibyte characters,
-                    we already decided to make a multibyte string.  */
-                 {
-                   int c = XINT (elt);
-                   /* P exists as a variable
-                      to avoid a bug on the Masscomp C compiler.  */
-                   unsigned char *p = SDATA (val) + toindex_byte;
-
-                   toindex_byte += CHAR_STRING (c, p);
-                   toindex++;
-                 }
+                 SSET (val, toindex_byte++, XINT (elt));
+               toindex++;
              }
          }
     }
@@ -855,7 +796,7 @@ string_char_to_byte (string, char_index)
      Lisp_Object string;
      int char_index;
 {
-  int i, i_byte;
+  int i_byte;
   int best_below, best_below_byte;
   int best_above, best_above_byte;
 
@@ -881,40 +822,30 @@ string_char_to_byte (string, char_index)
 
   if (char_index - best_below < best_above - char_index)
     {
+      unsigned char *p = SDATA (string) + best_below_byte;
+
       while (best_below < char_index)
        {
-         int c;
-         FETCH_STRING_CHAR_ADVANCE_NO_CHECK (c, string,
-                                             best_below, best_below_byte);
+         p += BYTES_BY_CHAR_HEAD (*p);
+         best_below++;
        }
-      i = best_below;
-      i_byte = best_below_byte;
+      i_byte = p - SDATA (string);
     }
   else
     {
+      unsigned char *p = SDATA (string) + best_above_byte;
+
       while (best_above > char_index)
        {
-         unsigned char *pend = SDATA (string) + best_above_byte;
-         unsigned char *pbeg = pend - best_above_byte;
-         unsigned char *p = pend - 1;
-         int bytes;
-
-         while (p > pbeg  && !CHAR_HEAD_P (*p)) p--;
-         PARSE_MULTIBYTE_SEQ (p, pend - p, bytes);
-         if (bytes == pend - p)
-           best_above_byte -= bytes;
-         else if (bytes > pend - p)
-           best_above_byte -= (pend - p);
-         else
-           best_above_byte--;
+         p--;
+         while (!CHAR_HEAD_P (*p)) p--;
          best_above--;
        }
-      i = best_above;
-      i_byte = best_above_byte;
+      i_byte = p - SDATA (string);
     }
 
   string_char_byte_cache_bytepos = i_byte;
-  string_char_byte_cache_charpos = i;
+  string_char_byte_cache_charpos = char_index;
   string_char_byte_cache_string = string;
 
   return i_byte;
@@ -953,36 +884,30 @@ string_byte_to_char (string, byte_index)
 
   if (byte_index - best_below_byte < best_above_byte - byte_index)
     {
-      while (best_below_byte < byte_index)
+      unsigned char *p = SDATA (string) + best_below_byte;
+      unsigned char *pend = SDATA (string) + byte_index;
+
+      while (p < pend)
        {
-         int c;
-         FETCH_STRING_CHAR_ADVANCE_NO_CHECK (c, string,
-                                             best_below, best_below_byte);
+         p += BYTES_BY_CHAR_HEAD (*p);
+         best_below++;
        }
       i = best_below;
-      i_byte = best_below_byte;
+      i_byte = p - SDATA (string);
     }
   else
     {
-      while (best_above_byte > byte_index)
+      unsigned char *p = SDATA (string) + best_above_byte;
+      unsigned char *pbeg = SDATA (string) + byte_index;
+
+      while (p > pbeg)
        {
-         unsigned char *pend = SDATA (string) + best_above_byte;
-         unsigned char *pbeg = pend - best_above_byte;
-         unsigned char *p = pend - 1;
-         int bytes;
-
-         while (p > pbeg  && !CHAR_HEAD_P (*p)) p--;
-         PARSE_MULTIBYTE_SEQ (p, pend - p, bytes);
-         if (bytes == pend - p)
-           best_above_byte -= bytes;
-         else if (bytes > pend - p)
-           best_above_byte -= (pend - p);
-         else
-           best_above_byte--;
+         p--;
+         while (!CHAR_HEAD_P (*p)) p--;
          best_above--;
        }
       i = best_above;
-      i_byte = best_above_byte;
+      i_byte = p - SDATA (string);
     }
 
   string_char_byte_cache_bytepos = i_byte;
@@ -992,9 +917,7 @@ string_byte_to_char (string, byte_index)
   return i;
 }
 \f
-/* Convert STRING to a multibyte string.
-   Single-byte characters 0240 through 0377 are converted
-   by adding nonascii_insert_offset to each.  */
+/* Convert STRING to a multibyte string.  */
 
 Lisp_Object
 string_make_multibyte (string)
@@ -1026,10 +949,9 @@ string_make_multibyte (string)
 }
 
 
-/* Convert STRING to a multibyte string without changing each
-   character codes.  Thus, characters 0200 trough 0237 are converted
-   to eight-bit-control characters, and characters 0240 through 0377
-   are converted eight-bit-graphic characters. */
+/* Convert STRING (if unibyte) to a multibyte string without changing
+   the number of characters.  Characters 0200 trough 0237 are
+   converted to eight-bit characters. */
 
 Lisp_Object
 string_to_multibyte (string)
@@ -1044,8 +966,8 @@ string_to_multibyte (string)
     return string;
 
   nbytes = parse_str_to_multibyte (SDATA (string), SBYTES (string));
-  /* If all the chars are ASCII or eight-bit-graphic, they won't need
-     any more bytes once converted.  */
+  /* If all the chars are ASCII, they won't need any more bytes once
+     converted.  */
   if (nbytes == SBYTES (string))
     return make_multibyte_string (SDATA (string), nbytes, nbytes);
 
@@ -1126,8 +1048,7 @@ DEFUN ("string-as-unibyte", Fstring_as_unibyte, Sstring_as_unibyte,
 If STRING is unibyte, the result is STRING itself.
 Otherwise it is a newly created string, with no text properties.
 If STRING is multibyte and contains a character of charset
-`eight-bit-control' or `eight-bit-graphic', it is converted to the
-corresponding single byte.  */)
+`eight-bit', it is converted to the corresponding single byte.  */)
      (string)
      Lisp_Object string;
 {
@@ -1151,20 +1072,16 @@ DEFUN ("string-as-multibyte", Fstring_as_multibyte, Sstring_as_multibyte,
        doc: /* Return a multibyte string with the same individual bytes as STRING.
 If STRING is multibyte, the result is STRING itself.
 Otherwise it is a newly created string, with no text properties.
+
 If STRING is unibyte and contains an individual 8-bit byte (i.e. not
-part of a multibyte form), it is converted to the corresponding
-multibyte character of charset `eight-bit-control' or `eight-bit-graphic'.
+part of a correct utf-8 sequence), it is converted to the corresponding
+multibyte character of charset `eight-bit'.
+See also `string-to-multibyte'.
+
 Beware, this often doesn't really do what you think it does.
-It is similar to (decode-coding-string STRING 'emacs-mule-unix).
+It is similar to (decode-coding-string STRING 'utf-8-emacs).
 If you're not sure, whether to use `string-as-multibyte' or
-`string-to-multibyte', use `string-to-multibyte'.  Beware:
-   (aref (string-as-multibyte "\\201") 0) -> 129 (aka ?\\201)
-   (aref (string-as-multibyte "\\300") 0) -> 192 (aka ?\\300)
-   (aref (string-as-multibyte "\\300\\201") 0) -> 192 (aka ?\\300)
-   (aref (string-as-multibyte "\\300\\201") 1) -> 129 (aka ?\\201)
-but
-   (aref (string-as-multibyte "\\201\\300") 0) -> 2240
-   (aref (string-as-multibyte "\\201\\300") 1) -> <error>  */)
+`string-to-multibyte', use `string-to-multibyte'.  */)
      (string)
      Lisp_Object string;
 {
@@ -1195,11 +1112,13 @@ DEFUN ("string-to-multibyte", Fstring_to_multibyte, Sstring_to_multibyte,
        doc: /* Return a multibyte string with the same individual chars as STRING.
 If STRING is multibyte, the result is STRING itself.
 Otherwise it is a newly created string, with no text properties.
-Characters 0200 through 0237 are converted to eight-bit-control
-characters of the same character code.  Characters 0240 through 0377
-are converted to eight-bit-graphic characters of the same character
-codes.
-This is similar to (decode-coding-string STRING 'binary)  */)
+
+If STRING is unibyte and contains an 8-bit byte, it is converted to
+the corresponding multibyte character of charset `eight-bit'.
+
+This differs from `string-as-multibyte' by converting each byte of a correct
+utf-8 sequence to an eight-bit character, not just bytes that don't form a
+correct sequence.  */)
      (string)
      Lisp_Object string;
 {
@@ -1599,6 +1518,22 @@ The value is actually the first element of LIST whose car equals KEY.  */)
   return CAR (list);
 }
 
+/* Like Fassoc but never report an error and do not allow quits.
+   Use only on lists known never to be circular.  */
+
+Lisp_Object
+assoc_no_quit (key, list)
+     Lisp_Object key, list;
+{
+  while (CONSP (list)
+        && (!CONSP (XCAR (list))
+            || (!EQ (XCAR (XCAR (list)), key)
+                && NILP (Fequal (XCAR (XCAR (list)), key)))))
+    list = XCDR (list);
+
+  return CONSP (list) ? XCAR (list) : Qnil;
+}
+
 DEFUN ("rassq", Frassq, Srassq, 2, 2, 0,
        doc: /* Return non-nil if KEY is `eq' to the cdr of an element of LIST.
 The value is actually the first element of LIST whose cdr is KEY.  */)
@@ -2270,7 +2205,8 @@ internal_equal (o1, o2, depth, props)
           functions are sensible to compare, so eliminate the others now.  */
        if (size & PSEUDOVECTOR_FLAG)
          {
-           if (!(size & (PVEC_COMPILED | PVEC_CHAR_TABLE)))
+           if (!(size & (PVEC_COMPILED
+                         | PVEC_CHAR_TABLE | PVEC_SUB_CHAR_TABLE)))
              return 0;
            size &= PSEUDOVECTOR_SIZE_MASK;
          }
@@ -2325,11 +2261,11 @@ ARRAY is a vector, string, char-table, or bool-vector.  */)
     }
   else if (CHAR_TABLE_P (array))
     {
-      register Lisp_Object *p = XCHAR_TABLE (array)->contents;
-      size = CHAR_TABLE_ORDINARY_SLOTS;
-      for (index = 0; index < size; index++)
-       p[index] = item;
-      XCHAR_TABLE (array)->defalt = Qnil;
+      int i;
+
+      for (i = 0; i < (1 << CHARTAB_SIZE_BITS_0); i++)
+       XCHAR_TABLE (array)->contents[i] = item;
+      XCHAR_TABLE (array)->defalt = item;
     }
   else if (STRINGP (array))
     {
@@ -2398,582 +2334,6 @@ This makes STRING unibyte and may change its length.  */)
   STRING_SET_UNIBYTE (string);
   return Qnil;
 }
-\f
-DEFUN ("char-table-subtype", Fchar_table_subtype, Schar_table_subtype,
-       1, 1, 0,
-       doc: /* Return the subtype of char-table CHAR-TABLE.  The value is a symbol.  */)
-     (char_table)
-     Lisp_Object char_table;
-{
-  CHECK_CHAR_TABLE (char_table);
-
-  return XCHAR_TABLE (char_table)->purpose;
-}
-
-DEFUN ("char-table-parent", Fchar_table_parent, Schar_table_parent,
-       1, 1, 0,
-       doc: /* Return the parent char-table of CHAR-TABLE.
-The value is either nil or another char-table.
-If CHAR-TABLE holds nil for a given character,
-then the actual applicable value is inherited from the parent char-table
-\(or from its parents, if necessary).  */)
-     (char_table)
-     Lisp_Object char_table;
-{
-  CHECK_CHAR_TABLE (char_table);
-
-  return XCHAR_TABLE (char_table)->parent;
-}
-
-DEFUN ("set-char-table-parent", Fset_char_table_parent, Sset_char_table_parent,
-       2, 2, 0,
-       doc: /* Set the parent char-table of CHAR-TABLE to PARENT.
-Return PARENT.  PARENT must be either nil or another char-table.  */)
-     (char_table, parent)
-     Lisp_Object char_table, parent;
-{
-  Lisp_Object temp;
-
-  CHECK_CHAR_TABLE (char_table);
-
-  if (!NILP (parent))
-    {
-      CHECK_CHAR_TABLE (parent);
-
-      for (temp = parent; CHAR_TABLE_P (temp);
-          temp = XCHAR_TABLE (temp)->parent)
-       if (EQ (temp, char_table))
-         error ("Attempt to make a chartable be its own parent");
-    }
-
-  XCHAR_TABLE (char_table)->parent = parent;
-
-  return parent;
-}
-
-DEFUN ("char-table-extra-slot", Fchar_table_extra_slot, Schar_table_extra_slot,
-       2, 2, 0,
-       doc: /* Return the value of CHAR-TABLE's extra-slot number N.  */)
-     (char_table, n)
-     Lisp_Object char_table, n;
-{
-  CHECK_CHAR_TABLE (char_table);
-  CHECK_NUMBER (n);
-  if (XINT (n) < 0
-      || XINT (n) >= CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (char_table)))
-    args_out_of_range (char_table, n);
-
-  return XCHAR_TABLE (char_table)->extras[XINT (n)];
-}
-
-DEFUN ("set-char-table-extra-slot", Fset_char_table_extra_slot,
-       Sset_char_table_extra_slot,
-       3, 3, 0,
-       doc: /* Set CHAR-TABLE's extra-slot number N to VALUE.  */)
-     (char_table, n, value)
-     Lisp_Object char_table, n, value;
-{
-  CHECK_CHAR_TABLE (char_table);
-  CHECK_NUMBER (n);
-  if (XINT (n) < 0
-      || XINT (n) >= CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (char_table)))
-    args_out_of_range (char_table, n);
-
-  return XCHAR_TABLE (char_table)->extras[XINT (n)] = value;
-}
-\f
-static Lisp_Object
-char_table_range (table, from, to, defalt)
-     Lisp_Object table;
-     int from, to;
-     Lisp_Object defalt;
-{
-  Lisp_Object val;
-
-  if (! NILP (XCHAR_TABLE (table)->defalt))
-    defalt = XCHAR_TABLE (table)->defalt;
-  val = XCHAR_TABLE (table)->contents[from];
-  if (SUB_CHAR_TABLE_P (val))
-    val = char_table_range (val, 32, 127, defalt);
-  else if (NILP (val))
-    val = defalt;
-  for (from++; from <= to; from++)
-    {
-      Lisp_Object this_val;
-
-      this_val = XCHAR_TABLE (table)->contents[from];
-      if (SUB_CHAR_TABLE_P (this_val))
-       this_val = char_table_range (this_val, 32, 127, defalt);
-      else if (NILP (this_val))
-       this_val = defalt;
-      if (! EQ (val, this_val))
-       error ("Characters in the range have inconsistent values");
-    }
-  return val;
-}
-
-
-DEFUN ("char-table-range", Fchar_table_range, Schar_table_range,
-       2, 2, 0,
-       doc: /* Return the value in CHAR-TABLE for a range of characters RANGE.
-RANGE should be nil (for the default value),
-a vector which identifies a character set or a row of a character set,
-a character set name, or a character code.
-If the characters in the specified range have different values,
-an error is signaled.
-
-Note that this function doesn't check the parent of CHAR-TABLE.  */)
-     (char_table, range)
-     Lisp_Object char_table, range;
-{
-  int charset_id, c1 = 0, c2 = 0;
-  int size;
-  Lisp_Object ch, val, current_default;
-
-  CHECK_CHAR_TABLE (char_table);
-
-  if (EQ (range, Qnil))
-    return XCHAR_TABLE (char_table)->defalt;
-  if (INTEGERP (range))
-    {
-      int c = XINT (range);
-      if (! CHAR_VALID_P (c, 0))
-       error ("Invalid character code: %d", c);
-      ch = range;
-      SPLIT_CHAR (c, charset_id, c1, c2);
-    }
-  else if (SYMBOLP (range))
-    {
-      Lisp_Object charset_info;
-
-      charset_info = Fget (range, Qcharset);
-      CHECK_VECTOR (charset_info);
-      charset_id = XINT (AREF (charset_info, 0));
-      ch = Fmake_char_internal (make_number (charset_id),
-                               make_number (0), make_number (0));
-    }
-  else if (VECTORP (range))
-    {
-      size = ASIZE (range);
-      if (size == 0)
-       args_out_of_range (range, make_number (0));
-      CHECK_NUMBER (AREF (range, 0));
-      charset_id = XINT (AREF (range, 0));
-      if (size > 1)
-       {
-         CHECK_NUMBER (AREF (range, 1));
-         c1 = XINT (AREF (range, 1));
-         if (size > 2)
-           {
-             CHECK_NUMBER (AREF (range, 2));
-             c2 = XINT (AREF (range, 2));
-           }
-       }
-
-      /* This checks if charset_id, c0, and c1 are all valid or not.  */
-      ch = Fmake_char_internal (make_number (charset_id),
-                               make_number (c1), make_number (c2));
-    }
-  else
-    error ("Invalid RANGE argument to `char-table-range'");
-
-  if (c1 > 0 && (CHARSET_DIMENSION (charset_id) == 1 || c2 > 0))
-    {
-      /* Fully specified character.  */
-      Lisp_Object parent = XCHAR_TABLE (char_table)->parent;
-
-      XCHAR_TABLE (char_table)->parent = Qnil;
-      val = Faref (char_table, ch);
-      XCHAR_TABLE (char_table)->parent = parent;
-      return val;
-    }
-
-  current_default = XCHAR_TABLE (char_table)->defalt;
-  if (charset_id == CHARSET_ASCII
-      || charset_id == CHARSET_8_BIT_CONTROL
-      || charset_id == CHARSET_8_BIT_GRAPHIC)
-    {
-      int from, to, defalt;
-
-      if (charset_id == CHARSET_ASCII)
-       from = 0, to = 127, defalt = CHAR_TABLE_DEFAULT_SLOT_ASCII;
-      else if (charset_id == CHARSET_8_BIT_CONTROL)
-       from = 128, to = 159, defalt = CHAR_TABLE_DEFAULT_SLOT_8_BIT_CONTROL;
-      else
-       from = 160, to = 255, defalt = CHAR_TABLE_DEFAULT_SLOT_8_BIT_GRAPHIC;
-      if (! NILP (XCHAR_TABLE (char_table)->contents[defalt]))
-       current_default = XCHAR_TABLE (char_table)->contents[defalt];
-      return char_table_range (char_table, from, to, current_default);
-    }
-
-  val = XCHAR_TABLE (char_table)->contents[128 + charset_id];
-  if (! SUB_CHAR_TABLE_P (val))
-    return (NILP (val) ? current_default : val);
-  if (! NILP (XCHAR_TABLE (val)->defalt))
-    current_default = XCHAR_TABLE (val)->defalt;
-  if (c1 == 0)
-    return char_table_range (val, 32, 127, current_default);
-  val = XCHAR_TABLE (val)->contents[c1];
-  if (! SUB_CHAR_TABLE_P (val))
-    return (NILP (val) ? current_default : val);
-  if (! NILP (XCHAR_TABLE (val)->defalt))
-    current_default = XCHAR_TABLE (val)->defalt;
-  return char_table_range (val, 32, 127, current_default);
-}
-
-DEFUN ("set-char-table-range", Fset_char_table_range, Sset_char_table_range,
-       3, 3, 0,
-       doc: /* Set the value in CHAR-TABLE for a range of characters RANGE to VALUE.
-RANGE should be t (for all characters), nil (for the default value),
-a character set, a vector which identifies a character set, a row of a
-character set, or a character code.  Return VALUE.  */)
-     (char_table, range, value)
-     Lisp_Object char_table, range, value;
-{
-  int i;
-
-  CHECK_CHAR_TABLE (char_table);
-
-  if (EQ (range, Qt))
-    for (i = 0; i < CHAR_TABLE_ORDINARY_SLOTS; i++)
-      {
-       /* Don't set these special slots used for default values of
-          ascii, eight-bit-control, and eight-bit-graphic.  */
-       if (i != CHAR_TABLE_DEFAULT_SLOT_ASCII
-           && i != CHAR_TABLE_DEFAULT_SLOT_8_BIT_CONTROL
-           && i != CHAR_TABLE_DEFAULT_SLOT_8_BIT_GRAPHIC)
-         XCHAR_TABLE (char_table)->contents[i] = value;
-      }
-  else if (EQ (range, Qnil))
-    XCHAR_TABLE (char_table)->defalt = value;
-  else if (SYMBOLP (range))
-    {
-      Lisp_Object charset_info;
-      int charset_id;
-
-      charset_info = Fget (range, Qcharset);
-      if (! VECTORP (charset_info)
-         || ! NATNUMP (AREF (charset_info, 0))
-         || (charset_id = XINT (AREF (charset_info, 0)),
-             ! CHARSET_DEFINED_P (charset_id)))
-       error ("Invalid charset: %s", SDATA (SYMBOL_NAME (range)));
-
-      if (charset_id == CHARSET_ASCII)
-       for (i = 0; i < 128; i++)
-         XCHAR_TABLE (char_table)->contents[i] = value;
-      else if (charset_id == CHARSET_8_BIT_CONTROL)
-       for (i = 128; i < 160; i++)
-         XCHAR_TABLE (char_table)->contents[i] = value;
-      else if (charset_id == CHARSET_8_BIT_GRAPHIC)
-       for (i = 160; i < 256; i++)
-         XCHAR_TABLE (char_table)->contents[i] = value;
-      else
-       XCHAR_TABLE (char_table)->contents[charset_id + 128] = value;
-    }
-  else if (INTEGERP (range))
-    Faset (char_table, range, value);
-  else if (VECTORP (range))
-    {
-      int size = ASIZE (range);
-      Lisp_Object *val = XVECTOR (range)->contents;
-      Lisp_Object ch = Fmake_char_internal (size <= 0 ? Qnil : val[0],
-                                           size <= 1 ? Qnil : val[1],
-                                           size <= 2 ? Qnil : val[2]);
-      Faset (char_table, ch, value);
-    }
-  else
-    error ("Invalid RANGE argument to `set-char-table-range'");
-
-  return value;
-}
-
-DEFUN ("set-char-table-default", Fset_char_table_default,
-       Sset_char_table_default, 3, 3, 0,
-       doc: /* Set the default value in CHAR-TABLE for generic character CH to VALUE.
-The generic character specifies the group of characters.
-If CH is a normal character, set the default value for a group of
-characters to which CH belongs.
-See also the documentation of `make-char'.  */)
-     (char_table, ch, value)
-     Lisp_Object char_table, ch, value;
-{
-  int c, charset, code1, code2;
-  Lisp_Object temp;
-
-  CHECK_CHAR_TABLE (char_table);
-  CHECK_NUMBER (ch);
-
-  c = XINT (ch);
-  SPLIT_CHAR (c, charset, code1, code2);
-
-  /* Since we may want to set the default value for a character set
-     not yet defined, we check only if the character set is in the
-     valid range or not, instead of it is already defined or not.  */
-  if (! CHARSET_VALID_P (charset))
-    invalid_character (c);
-
-  if (SINGLE_BYTE_CHAR_P (c))
-    {
-      /* We use special slots for the default values of single byte
-        characters.  */
-      int default_slot
-       = (c < 0x80 ? CHAR_TABLE_DEFAULT_SLOT_ASCII
-          : c < 0xA0 ? CHAR_TABLE_DEFAULT_SLOT_8_BIT_CONTROL
-          : CHAR_TABLE_DEFAULT_SLOT_8_BIT_GRAPHIC);
-
-      return (XCHAR_TABLE (char_table)->contents[default_slot] = value);
-    }
-
-  /* Even if C is not a generic char, we had better behave as if a
-     generic char is specified.  */
-  if (!CHARSET_DEFINED_P (charset) || CHARSET_DIMENSION (charset) == 1)
-    code1 = 0;
-  temp = XCHAR_TABLE (char_table)->contents[charset + 128];
-  if (! SUB_CHAR_TABLE_P (temp))
-    {
-      temp = make_sub_char_table (temp);
-      XCHAR_TABLE (char_table)->contents[charset + 128] = temp;
-    }
-  if (!code1)
-    {
-      XCHAR_TABLE (temp)->defalt = value;
-      return value;
-    }
-  char_table = temp;
-  temp = XCHAR_TABLE (char_table)->contents[code1];
-  if (SUB_CHAR_TABLE_P (temp))
-    XCHAR_TABLE (temp)->defalt = value;
-  else
-    XCHAR_TABLE (char_table)->contents[code1] = value;
-  return value;
-}
-
-/* Look up the element in TABLE at index CH,
-   and return it as an integer.
-   If the element is nil, return CH itself.
-   (Actually we do that for any non-integer.)  */
-
-int
-char_table_translate (table, ch)
-     Lisp_Object table;
-     int ch;
-{
-  Lisp_Object value;
-  value = Faref (table, make_number (ch));
-  if (! INTEGERP (value))
-    return ch;
-  return XINT (value);
-}
-
-static void
-optimize_sub_char_table (table, chars)
-     Lisp_Object *table;
-     int chars;
-{
-  Lisp_Object elt;
-  int from, to;
-
-  if (chars == 94)
-    from = 33, to = 127;
-  else
-    from = 32, to = 128;
-
-  if (!SUB_CHAR_TABLE_P (*table)
-      || ! NILP (XCHAR_TABLE (*table)->defalt))
-    return;
-  elt = XCHAR_TABLE (*table)->contents[from++];
-  for (; from < to; from++)
-    if (NILP (Fequal (elt, XCHAR_TABLE (*table)->contents[from])))
-      return;
-  *table = elt;
-}
-
-DEFUN ("optimize-char-table", Foptimize_char_table, Soptimize_char_table,
-       1, 1, 0, doc: /* Optimize char table TABLE.  */)
-     (table)
-     Lisp_Object table;
-{
-  Lisp_Object elt;
-  int dim, chars;
-  int i, j;
-
-  CHECK_CHAR_TABLE (table);
-
-  for (i = CHAR_TABLE_SINGLE_BYTE_SLOTS; i < CHAR_TABLE_ORDINARY_SLOTS; i++)
-    {
-      elt = XCHAR_TABLE (table)->contents[i];
-      if (!SUB_CHAR_TABLE_P (elt))
-       continue;
-      dim = CHARSET_DIMENSION (i - 128);
-      chars = CHARSET_CHARS (i - 128);
-      if (dim == 2)
-       for (j = 32; j < SUB_CHAR_TABLE_ORDINARY_SLOTS; j++)
-         optimize_sub_char_table (XCHAR_TABLE (elt)->contents + j, chars);
-      optimize_sub_char_table (XCHAR_TABLE (table)->contents + i, chars);
-    }
-  return Qnil;
-}
-
-\f
-/* Map C_FUNCTION or FUNCTION over SUBTABLE, calling it for each
-   character or group of characters that share a value.
-   DEPTH is the current depth in the originally specified
-   chartable, and INDICES contains the vector indices
-   for the levels our callers have descended.
-
-   ARG is passed to C_FUNCTION when that is called.  */
-
-void
-map_char_table (c_function, function, table, subtable, arg, depth, indices)
-     void (*c_function) P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
-     Lisp_Object function, table, subtable, arg;
-     int depth, *indices;
-{
-  int i, to;
-  struct gcpro gcpro1, gcpro2,  gcpro3, gcpro4;
-
-  GCPRO4 (arg, table, subtable, function);
-
-  if (depth == 0)
-    {
-      /* At first, handle ASCII and 8-bit European characters.  */
-      for (i = 0; i < CHAR_TABLE_SINGLE_BYTE_SLOTS; i++)
-       {
-         Lisp_Object elt= XCHAR_TABLE (subtable)->contents[i];
-         if (NILP (elt))
-           elt = XCHAR_TABLE (subtable)->defalt;
-         if (NILP (elt))
-           elt = Faref (subtable, make_number (i));
-         if (c_function)
-           (*c_function) (arg, make_number (i), elt);
-         else
-           call2 (function, make_number (i), elt);
-       }
-#if 0 /* If the char table has entries for higher characters,
-        we should report them.  */
-      if (NILP (current_buffer->enable_multibyte_characters))
-       {
-         UNGCPRO;
-         return;
-       }
-#endif
-      to = CHAR_TABLE_ORDINARY_SLOTS;
-    }
-  else
-    {
-      int charset = indices[0] - 128;
-
-      i = 32;
-      to = SUB_CHAR_TABLE_ORDINARY_SLOTS;
-      if (CHARSET_CHARS (charset) == 94)
-       i++, to--;
-    }
-
-  for (; i < to; i++)
-    {
-      Lisp_Object elt;
-      int charset;
-
-      elt = XCHAR_TABLE (subtable)->contents[i];
-      indices[depth] = i;
-      charset = indices[0] - 128;
-      if (depth == 0
-         && (!CHARSET_DEFINED_P (charset)
-             || charset == CHARSET_8_BIT_CONTROL
-             || charset == CHARSET_8_BIT_GRAPHIC))
-       continue;
-
-      if (SUB_CHAR_TABLE_P (elt))
-       {
-         if (depth >= 3)
-           error ("Too deep char table");
-         map_char_table (c_function, function, table, elt, arg, depth + 1, indices);
-       }
-      else
-       {
-         int c1, c2, c;
-
-         c1 = depth >= 1 ? indices[1] : 0;
-         c2 = depth >= 2 ? indices[2] : 0;
-         c = MAKE_CHAR (charset, c1, c2);
-
-         if (NILP (elt))
-           elt = XCHAR_TABLE (subtable)->defalt;
-         if (NILP  (elt))
-           elt = Faref (table, make_number (c));
-
-         if (c_function)
-           (*c_function) (arg, make_number (c), elt);
-         else
-           call2 (function, make_number (c), elt);
-       }
-    }
-  UNGCPRO;
-}
-
-static void void_call2 P_ ((Lisp_Object a, Lisp_Object b, Lisp_Object c));
-static void
-void_call2 (a, b, c)
-     Lisp_Object a, b, c;
-{
-  call2 (a, b, c);
-}
-
-DEFUN ("map-char-table", Fmap_char_table, Smap_char_table,
-       2, 2, 0,
-       doc: /* Call FUNCTION for each (normal and generic) characters in CHAR-TABLE.
-FUNCTION is called with two arguments--a key and a value.
-The key is always a possible IDX argument to `aref'.  */)
-     (function, char_table)
-     Lisp_Object function, char_table;
-{
-  /* The depth of char table is at most 3. */
-  int indices[3];
-
-  CHECK_CHAR_TABLE (char_table);
-
-  /* When Lisp_Object is represented as a union, `call2' cannot directly
-     be passed to map_char_table because it returns a Lisp_Object rather
-     than returning nothing.
-     Casting leads to crashes on some architectures.  --Stef  */
-  map_char_table (void_call2, Qnil, char_table, char_table, function, 0, indices);
-  return Qnil;
-}
-
-/* Return a value for character C in char-table TABLE.  Store the
-   actual index for that value in *IDX.  Ignore the default value of
-   TABLE.  */
-
-Lisp_Object
-char_table_ref_and_index (table, c, idx)
-     Lisp_Object table;
-     int c, *idx;
-{
-  int charset, c1, c2;
-  Lisp_Object elt;
-
-  if (SINGLE_BYTE_CHAR_P (c))
-    {
-      *idx = c;
-      return XCHAR_TABLE (table)->contents[c];
-    }
-  SPLIT_CHAR (c, charset, c1, c2);
-  elt = XCHAR_TABLE (table)->contents[charset + 128];
-  *idx = MAKE_CHAR (charset, 0, 0);
-  if (!SUB_CHAR_TABLE_P (elt))
-    return elt;
-  if (c1 < 32 || NILP (XCHAR_TABLE (elt)->contents[c1]))
-    return XCHAR_TABLE (elt)->defalt;
-  elt = XCHAR_TABLE (elt)->contents[c1];
-  *idx = MAKE_CHAR (charset, c1, 0);
-  if (!SUB_CHAR_TABLE_P (elt))
-    return elt;
-  if (c2 < 32 || NILP (XCHAR_TABLE (elt)->contents[c2]))
-    return XCHAR_TABLE (elt)->defalt;
-  *idx = c;
-  return XCHAR_TABLE (elt)->contents[c2];
-}
-
 \f
 /* ARGSUSED */
 Lisp_Object
@@ -3133,6 +2493,8 @@ SEQUENCE may be a list, a vector, a bool-vector, or a string.  */)
   USE_SAFE_ALLOCA;
 
   len = Flength (sequence);
+  if (CHAR_TABLE_P (sequence))
+    wrong_type_argument (Qlistp, sequence);
   leni = XINT (len);
   nargs = leni + leni - 1;
   if (nargs < 0) return empty_unibyte_string;
@@ -3169,6 +2531,8 @@ SEQUENCE may be a list, a vector, a bool-vector, or a string.  */)
   USE_SAFE_ALLOCA;
 
   len = Flength (sequence);
+  if (CHAR_TABLE_P (sequence))
+    wrong_type_argument (Qlistp, sequence);
   leni = XFASTINT (len);
 
   SAFE_ALLOCA_LISP (args, leni);
@@ -3191,6 +2555,8 @@ SEQUENCE may be a list, a vector, a bool-vector, or a string.  */)
   register int leni;
 
   leni = XFASTINT (Flength (sequence));
+  if (CHAR_TABLE_P (sequence))
+    wrong_type_argument (Qlistp, sequence);
   mapcar1 (leni, 0, function, sequence);
 
   return sequence;
@@ -3987,7 +3353,9 @@ base64_encode_1 (from, to, length, line_break, multibyte)
       if (multibyte)
        {
          c = STRING_CHAR_AND_LENGTH (from + i, length - i, bytes);
-         if (c >= 256)
+         if (CHAR_BYTE8_P (c))
+           c = CHAR_TO_BYTE8 (c);
+         else if (c >= 256)
            return -1;
          i += bytes;
        }
@@ -4025,7 +3393,9 @@ base64_encode_1 (from, to, length, line_break, multibyte)
       if (multibyte)
        {
          c = STRING_CHAR_AND_LENGTH (from + i, length - i, bytes);
-         if (c >= 256)
+         if (CHAR_BYTE8_P (c))
+           c = CHAR_TO_BYTE8 (c);
+         else if (c >= 256)
            return -1;
          i += bytes;
        }
@@ -4047,7 +3417,9 @@ base64_encode_1 (from, to, length, line_break, multibyte)
       if (multibyte)
        {
          c = STRING_CHAR_AND_LENGTH (from + i, length - i, bytes);
-         if (c >= 256)
+         if (CHAR_BYTE8_P (c))
+           c = CHAR_TO_BYTE8 (c);
+         else if (c >= 256)
            return -1;
          i += bytes;
        }
@@ -4197,8 +3569,8 @@ base64_decode_1 (from, to, length, multibyte, nchars_return)
       value |= base64_char_to_value[c] << 12;
 
       c = (unsigned char) (value >> 16);
-      if (multibyte)
-       e += CHAR_STRING (c, e);
+      if (multibyte && c >= 128)
+       e += BYTE8_STRING (c, e);
       else
        *e++ = c;
       nchars++;
@@ -4221,8 +3593,8 @@ base64_decode_1 (from, to, length, multibyte, nchars_return)
       value |= base64_char_to_value[c] << 6;
 
       c = (unsigned char) (0xff & value >> 8);
-      if (multibyte)
-       e += CHAR_STRING (c, e);
+      if (multibyte && c >= 128)
+       e += BYTE8_STRING (c, e);
       else
        *e++ = c;
       nchars++;
@@ -4239,8 +3611,8 @@ base64_decode_1 (from, to, length, multibyte, nchars_return)
       value |= base64_char_to_value[c];
 
       c = (unsigned char) (0xff & value);
-      if (multibyte)
-       e += CHAR_STRING (c, e);
+      if (multibyte && c >= 128)
+       e += BYTE8_STRING (c, e);
       else
        *e++ = c;
       nchars++;
@@ -4462,7 +3834,7 @@ hashfn_eq (h, key)
      struct Lisp_Hash_Table *h;
      Lisp_Object key;
 {
-  unsigned hash = XUINT (key) ^ XGCTYPE (key);
+  unsigned hash = XUINT (key) ^ XTYPE (key);
   xassert ((hash & ~INTMASK) == 0);
   return hash;
 }
@@ -4481,7 +3853,7 @@ hashfn_eql (h, key)
   if (FLOATP (key))
     hash = sxhash (key, 0);
   else
-    hash = XUINT (key) ^ XGCTYPE (key);
+    hash = XUINT (key) ^ XTYPE (key);
   xassert ((hash & ~INTMASK) == 0);
   return hash;
 }
@@ -4902,7 +4274,7 @@ sweep_weak_table (h, remove_entries_p)
       /* Follow collision chain, removing entries that
         don't survive this garbage collection.  */
       prev = Qnil;
-      for (idx = HASH_INDEX (h, bucket); !GC_NILP (idx); idx = next)
+      for (idx = HASH_INDEX (h, bucket); !NILP (idx); idx = next)
        {
          int i = XFASTINT (idx);
          int key_known_to_survive_p = survives_gc_p (HASH_KEY (h, i));
@@ -4927,7 +4299,7 @@ sweep_weak_table (h, remove_entries_p)
              if (remove_p)
                {
                  /* Take out of collision chain.  */
-                 if (GC_NILP (prev))
+                 if (NILP (prev))
                    HASH_INDEX (h, bucket) = next;
                  else
                    HASH_NEXT (h, XFASTINT (prev)) = next;
@@ -4973,7 +4345,7 @@ sweep_weak_table (h, remove_entries_p)
 
 /* Remove elements from weak hash tables that don't survive the
    current garbage collection.  Remove weak tables that don't survive
-   from weak_hash_tables.  Called from gc_sweep.  */
+   from Vweak_hash_tables.  Called from gc_sweep.  */
 
 void
 sweep_weak_hash_tables ()
@@ -5508,7 +4880,6 @@ including negative integers.  */)
  ************************************************************************/
 
 #include "md5.h"
-#include "coding.h"
 
 DEFUN ("md5", Fmd5, Smd5, 1, 5, 0,
        doc: /* Return MD5 message digest of OBJECT, a buffer or string.
@@ -5559,7 +4930,7 @@ guesswork fails.  Normally, an error is signaled in such case.  */)
 
          if (STRING_MULTIBYTE (object))
            /* use default, we can't guess correct value */
-           coding_system = find_symbol_value (XCAR (Vcoding_category_list));
+           coding_system = preferred_coding_system ();
          else
            coding_system = Qraw_text;
        }
@@ -5575,7 +4946,7 @@ guesswork fails.  Normally, an error is signaled in such case.  */)
        }
 
       if (STRING_MULTIBYTE (object))
-       object = code_convert_string1 (object, coding_system, Qnil, 1);
+       object = code_convert_string (object, coding_system, Qnil, 1, 0, 1);
 
       size = SCHARS (object);
       size_byte = SBYTES (object);
@@ -5717,7 +5088,7 @@ guesswork fails.  Normally, an error is signaled in such case.  */)
       specpdl_ptr--;
 
       if (STRING_MULTIBYTE (object))
-       object = code_convert_string1 (object, coding_system, Qnil, 1);
+       object = code_convert_string (object, coding_system, Qnil, 1, 0, 0);
     }
 
   md5_buffer (SDATA (object) + start_byte,
@@ -5880,16 +5251,6 @@ used if both `use-dialog-box' and this variable are non-nil.  */);
   defsubr (&Sequal_including_properties);
   defsubr (&Sfillarray);
   defsubr (&Sclear_string);
-  defsubr (&Schar_table_subtype);
-  defsubr (&Schar_table_parent);
-  defsubr (&Sset_char_table_parent);
-  defsubr (&Schar_table_extra_slot);
-  defsubr (&Sset_char_table_extra_slot);
-  defsubr (&Schar_table_range);
-  defsubr (&Sset_char_table_range);
-  defsubr (&Sset_char_table_default);
-  defsubr (&Soptimize_char_table);
-  defsubr (&Smap_char_table);
   defsubr (&Snconc);
   defsubr (&Smapcar);
   defsubr (&Smapc);
diff --git a/src/font.c b/src/font.c
new file mode 100644 (file)
index 0000000..8347a0d
--- /dev/null
@@ -0,0 +1,4168 @@
+/* font.c -- "Font" primitives.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#ifdef HAVE_M17N_FLT
+#include <m17n-flt.h>
+#endif
+
+#include "lisp.h"
+#include "buffer.h"
+#include "frame.h"
+#include "window.h"
+#include "dispextern.h"
+#include "charset.h"
+#include "character.h"
+#include "composite.h"
+#include "fontset.h"
+#include "font.h"
+
+#ifndef FONT_DEBUG
+#define FONT_DEBUG
+#endif
+
+#ifdef FONT_DEBUG
+#undef xassert
+#define xassert(X)     do {if (!(X)) abort ();} while (0)
+#else
+#define xassert(X)     (void) 0
+#endif
+
+int enable_font_backend;
+
+Lisp_Object Qopentype;
+
+/* Important character set symbols.  */
+Lisp_Object Qiso8859_1, Qiso10646_1, Qunicode_bmp, Qunicode_sip;
+
+/* Like CHECK_FONT_SPEC but also validate properties of the font-spec,
+   and set X to the validated result.  */
+
+#define CHECK_VALIDATE_FONT_SPEC(x)                            \
+  do {                                                         \
+    if (! FONT_SPEC_P (x)) x = wrong_type_argument (Qfont, x); \
+    x = font_prop_validate (x);                                        \
+  } while (0)
+
+/* Number of pt per inch (from the TeXbook).  */
+#define PT_PER_INCH 72.27
+
+/* Return a pixel size (integer) corresponding to POINT size (double)
+   on resolution DPI.  */
+#define POINT_TO_PIXEL(POINT, DPI) ((POINT) * (DPI) / PT_PER_INCH + 0.5)
+
+/* Return a point size (double) corresponding to POINT size (integer)
+   on resolution DPI.  */
+#define PIXEL_TO_POINT(PIXEL, DPI) ((PIXEL) * PT_PER_INCH * 10 / (DPI) + 0.5)
+
+/* Special string of zero length.  It is used to specify a NULL name
+   in a font properties (e.g. adstyle).  We don't use the symbol of
+   NULL name because it's confusing (Lisp printer prints nothing for
+   it). */
+Lisp_Object null_string;
+
+/* Special vector of zero length.  This is repeatedly used by (struct
+   font_driver *)->list when a specified font is not found. */
+Lisp_Object null_vector;
+
+/* Vector of 3 elements.  Each element is an alist for one of font
+   style properties (weight, slant, width).  Each alist contains a
+   mapping between symbolic property values (e.g. `medium' for weight)
+   and numeric property values (e.g. 100).  So, it looks like this:
+       [((thin . 0) ... (heavy . 210))
+        ((ro . 0) ... (ot . 210))
+        ((ultracondensed . 50) ... (wide . 200))]  */
+static Lisp_Object font_style_table;
+
+/* Alist of font family vs the corresponding aliases.
+   Each element has this form:
+       (FAMILY ALIAS1 ALIAS2 ...)   */
+
+static Lisp_Object font_family_alist;
+
+/* Symbols representing keys of normal font properties.  */
+extern Lisp_Object QCtype, QCfamily, QCweight, QCslant, QCwidth, QCsize, QCname;
+Lisp_Object QCfoundry, QCadstyle, QCregistry, QCextra;
+/* Symbols representing keys of font extra info.  */
+Lisp_Object QCspacing, QCdpi, QCscalable, QCotf, QClanguage, QCscript;
+Lisp_Object QCantialias;
+/* Symbols representing values of font spacing property.  */
+Lisp_Object Qc, Qm, Qp, Qd;
+
+/* Alist of font registry symbol and the corresponding charsets
+   information.  The information is retrieved from
+   Vfont_encoding_alist on demand.
+
+   Eash element has the form:
+       (REGISTRY . (ENCODING-CHARSET-ID . REPERTORY-CHARSET-ID))
+   or
+       (REGISTRY . nil)
+
+   In the former form, ENCODING-CHARSET-ID is an ID of a charset that
+   encodes a character code to a glyph code of a font, and
+   REPERTORY-CHARSET-ID is an ID of a charset that tells if a
+   character is supported by a font.
+
+   The latter form means that the information for REGISTRY couldn't be
+   retrieved.  */
+static Lisp_Object font_charset_alist;
+
+/* List of all font drivers.  Each font-backend (XXXfont.c) calls
+   register_font_driver in syms_of_XXXfont to register its font-driver
+   here.  */
+static struct font_driver_list *font_driver_list;
+
+static int font_pixel_size P_ ((FRAME_PTR f, Lisp_Object));
+static Lisp_Object prop_name_to_numeric P_ ((enum font_property_index,
+                                            Lisp_Object));
+static Lisp_Object prop_numeric_to_name P_ ((enum font_property_index, int));
+static Lisp_Object font_open_entity P_ ((FRAME_PTR, Lisp_Object, int));
+static void build_font_family_alist P_ ((void));
+
+/* Number of registered font drivers.  */
+static int num_font_drivers;
+
+/* Return a pixel size of font-spec SPEC on frame F.  */
+
+static int
+font_pixel_size (f, spec)
+     FRAME_PTR f;
+     Lisp_Object spec;
+{
+  Lisp_Object size = AREF (spec, FONT_SIZE_INDEX);
+  double point_size;
+  int pixel_size, dpi;
+  Lisp_Object extra, val;
+      
+  if (INTEGERP (size))
+    return XINT (size);
+  if (NILP (size))
+    return 0;
+  point_size = XFLOAT_DATA (size);
+  extra = AREF (spec, FONT_EXTRA_INDEX);
+  val = assq_no_quit (QCdpi, extra);
+  if (CONSP (val))
+    {
+      if (INTEGERP (XCDR (val)))
+       dpi = XINT (XCDR (val));
+      else
+       dpi = XFLOAT_DATA (XCDR (val)) + 0.5;
+    }
+  else
+    dpi = f->resy;
+  pixel_size = POINT_TO_PIXEL (point_size, dpi);
+  return pixel_size;
+}
+
+/* Return a numeric value corresponding to PROP's NAME (symbol).  If
+   NAME is not registered in font_style_table, return Qnil.  PROP must
+   be one of FONT_{WEIGHT|SLANT|SWIDTH}_INDEX.  */
+
+static Lisp_Object
+prop_name_to_numeric (prop, name)
+     enum font_property_index prop;
+     Lisp_Object name;
+{
+  int table_index = prop - FONT_WEIGHT_INDEX;
+  Lisp_Object val;
+
+  val = assq_no_quit (name, AREF (font_style_table, table_index));
+  return (NILP (val) ? Qnil : XCDR (val));
+}
+
+
+/* Return a name (symbol) corresponding to PROP's NUMERIC value.  If
+   no name is registered for NUMERIC in font_style_table, return a
+   symbol of integer name (e.g. `123').  PROP must be one of
+   FONT_{WEIGHT|SLANT|SWIDTH}_INDEX.  */
+
+static Lisp_Object
+prop_numeric_to_name (prop, numeric)
+     enum font_property_index prop;
+     int numeric;
+{
+  int table_index = prop - FONT_WEIGHT_INDEX;
+  Lisp_Object table = AREF (font_style_table, table_index);
+  char buf[10];
+
+  while (! NILP (table))
+    {
+      if (XINT (XCDR (XCAR (table))) >= numeric)
+       {
+         if (XINT (XCDR (XCAR (table))) == numeric)
+           return XCAR (XCAR (table));
+         else
+           break;
+       }
+      table = XCDR (table);
+    }
+  sprintf (buf, "%d", numeric);
+  return intern (buf);
+}
+
+
+/* Return a symbol whose name is STR (length LEN).  If STR contains
+   uppercase letters, downcase them in advance.  */
+
+Lisp_Object
+intern_downcase (str, len)
+     char *str;
+     int len;
+{
+  char *buf;
+  int i;
+
+  for (i = 0; i < len; i++)
+    if (isupper (str[i]))
+      break;
+  if (i == len)
+    return Fintern (make_unibyte_string (str, len), Qnil);
+  buf = alloca (len);
+  if (! buf)
+    return Fintern (null_string, Qnil);
+  bcopy (str, buf, len);
+  for (; i < len; i++)
+    if (isascii (buf[i]))
+      buf[i] = tolower (buf[i]);
+  return Fintern (make_unibyte_string (buf, len), Qnil);
+}
+
+extern Lisp_Object Vface_alternative_font_family_alist;
+
+/* Setup font_family_alist of the form:
+       ((FAMILY-SYMBOL ALIAS-SYMBOL ...) ...)
+   from Vface_alternative_font_family_alist of the form:
+       ((FAMILY-STRING ALIAS-STRING ...) ...)  */
+
+static void
+build_font_family_alist ()
+{
+  Lisp_Object alist = Vface_alternative_font_family_alist;
+
+  for (; CONSP (alist); alist = XCDR (alist))
+    {
+      Lisp_Object tail, elt;
+
+      for (tail = XCAR (alist), elt = Qnil ; CONSP (tail); tail = XCDR (tail))
+       elt = nconc2 (elt, Fcons (Fintern (XCAR (tail), Qnil), Qnil));
+      font_family_alist = Fcons (elt, font_family_alist);
+    }
+}
+
+extern Lisp_Object find_font_encoding P_ ((Lisp_Object));
+
+/* Return encoding charset and repertory charset for REGISTRY in
+   ENCODING and REPERTORY correspondingly.  If correct information for
+   REGISTRY is available, return 0.  Otherwise return -1.  */
+
+int
+font_registry_charsets (registry, encoding, repertory)
+     Lisp_Object registry;
+     struct charset **encoding, **repertory;
+{
+  Lisp_Object val;
+  int encoding_id, repertory_id;
+
+  val = assq_no_quit (registry, font_charset_alist);
+  if (! NILP (val))
+    {
+      val = XCDR (val);
+      if (NILP (val))
+       return -1;
+      encoding_id = XINT (XCAR (val));
+      repertory_id = XINT (XCDR (val));
+    }
+  else
+    {
+      val = find_font_encoding (SYMBOL_NAME (registry));
+      if (SYMBOLP (val) && CHARSETP (val))
+       {
+         encoding_id = repertory_id = XINT (CHARSET_SYMBOL_ID (val));
+       }
+      else if (CONSP (val))
+       {
+         if (! CHARSETP (XCAR (val)))
+           goto invalid_entry;
+         encoding_id = XINT (CHARSET_SYMBOL_ID (XCAR (val)));
+         if (NILP (XCDR (val)))
+           repertory_id = -1;
+         else
+           {
+             if (! CHARSETP (XCDR (val)))
+               goto invalid_entry;
+             repertory_id = XINT (CHARSET_SYMBOL_ID (XCDR (val)));
+           }
+       }      
+      else
+       goto invalid_entry;
+      val = Fcons (make_number (encoding_id), make_number (repertory_id));
+      font_charset_alist
+       = nconc2 (font_charset_alist, Fcons (Fcons (registry, val), Qnil));
+    }
+
+  if (encoding)
+    *encoding = CHARSET_FROM_ID (encoding_id);
+  if (repertory)
+    *repertory = repertory_id >= 0 ? CHARSET_FROM_ID (repertory_id) : NULL;
+  return 0;
+
+ invalid_entry:
+  font_charset_alist
+    = nconc2 (font_charset_alist, Fcons (Fcons (registry, Qnil), Qnil));
+  return -1;
+}
+
+\f
+/* Font property value validaters.  See the comment of
+   font_property_table for the meaning of the arguments.  */
+
+static Lisp_Object font_prop_validate_symbol P_ ((Lisp_Object, Lisp_Object));
+static Lisp_Object font_prop_validate_style P_ ((Lisp_Object, Lisp_Object));
+static Lisp_Object font_prop_validate_non_neg P_ ((Lisp_Object, Lisp_Object));
+static Lisp_Object font_prop_validate_spacing P_ ((Lisp_Object, Lisp_Object));
+static int get_font_prop_index P_ ((Lisp_Object, int));
+static Lisp_Object font_prop_validate P_ ((Lisp_Object));
+
+static Lisp_Object
+font_prop_validate_symbol (prop, val)
+     Lisp_Object prop, val;
+{
+  if (EQ (prop, QCotf))
+    return (SYMBOLP (val) ? val : Qerror);
+  if (STRINGP (val))
+    val = (SCHARS (val) == 0 ? null_string
+          : intern_downcase ((char *) SDATA (val), SBYTES (val)));
+  else if (SYMBOLP (val))
+    {
+      if (SCHARS (SYMBOL_NAME (val)) == 0)
+       val = null_string;
+    }
+  else
+    val = Qerror;
+  return val;
+}
+
+static Lisp_Object
+font_prop_validate_style (prop, val)
+     Lisp_Object prop, val;
+{
+  if (! INTEGERP (val))
+    {
+      if (STRINGP (val))
+       val = intern_downcase ((char *) SDATA (val), SBYTES (val));
+      if (! SYMBOLP (val))
+       val = Qerror;
+      else
+       {
+         enum font_property_index prop_index
+           = (EQ (prop, QCweight) ? FONT_WEIGHT_INDEX
+              : EQ (prop, QCslant) ? FONT_SLANT_INDEX
+              : FONT_WIDTH_INDEX);
+
+         val = prop_name_to_numeric (prop_index, val);
+         if (NILP (val))
+           val = Qerror;
+       }
+    }
+  return val;
+}
+
+static Lisp_Object
+font_prop_validate_non_neg (prop, val)
+     Lisp_Object prop, val;
+{
+  return (NATNUMP (val) || (FLOATP (val) && XFLOAT_DATA (val) >= 0)
+         ? val : Qerror);
+}
+
+static Lisp_Object
+font_prop_validate_spacing (prop, val)
+     Lisp_Object prop, val;
+{
+  if (NILP (val) || (NATNUMP (val) && XINT (val) <= FONT_SPACING_CHARCELL))
+    return val;
+  if (EQ (val, Qc))
+    return make_number (FONT_SPACING_CHARCELL);
+  if (EQ (val, Qm))
+    return make_number (FONT_SPACING_MONO);
+  if (EQ (val, Qp))
+    return make_number (FONT_SPACING_PROPORTIONAL);
+  return Qerror;
+}
+
+static Lisp_Object
+font_prop_validate_otf (prop, val)
+     Lisp_Object prop, val;
+{
+  Lisp_Object tail, tmp;
+  int i;
+
+  /* VAL = (SCRIPT [ LANGSYS [ GSUB-FEATURES [ GPOS-FEATURES ]]])
+     GSUB-FEATURES = (FEATURE ... [ nil FEATURE ... ]) | nil
+     GPOS-FEATURES = (FEATURE ... [ nil FEATURE ... ]) | nil  */
+  if (! CONSP (val))
+    return Qerror;
+  if (! SYMBOLP (XCAR (val)))
+    return Qerror;
+  tail = XCDR (val);
+  if (NILP (tail))
+    return val;
+  if (! CONSP (tail) || ! SYMBOLP (XCAR (val)))
+    return Qerror;
+  for (i = 0; i < 2; i++)
+    {
+      tail = XCDR (tail);
+      if (NILP (tail))
+       return val;
+      if (! CONSP (tail))
+       return Qerror;
+      for (tmp = XCAR (tail); CONSP (tmp); tmp = XCDR (tmp))
+       if (! SYMBOLP (XCAR (tmp)))
+         return Qerror;
+      if (! NILP (tmp))
+       return Qerror;
+    }
+  return val;
+}
+
+/* Structure of known font property keys and validater of the
+   values.  */
+struct
+{
+  /* Pointer to the key symbol.  */
+  Lisp_Object *key;
+  /* Function to validate PROP's value VAL, or NULL if any value is
+     ok.  The value is VAL or its regularized value if VAL is valid,
+     and Qerror if not.  */
+  Lisp_Object (*validater) P_ ((Lisp_Object prop, Lisp_Object val));
+} font_property_table[] =
+  { { &QCtype, font_prop_validate_symbol },
+    { &QCfoundry, font_prop_validate_symbol },
+    { &QCfamily, font_prop_validate_symbol },
+    { &QCadstyle, font_prop_validate_symbol },
+    { &QCregistry, font_prop_validate_symbol },
+    { &QCweight, font_prop_validate_style },
+    { &QCslant, font_prop_validate_style },
+    { &QCwidth, font_prop_validate_style },
+    { &QCsize, font_prop_validate_non_neg },
+    { &QClanguage, font_prop_validate_symbol },
+    { &QCscript, font_prop_validate_symbol },
+    { &QCdpi, font_prop_validate_non_neg },
+    { &QCspacing, font_prop_validate_spacing },
+    { &QCscalable, NULL },
+    { &QCotf, font_prop_validate_otf },
+    { &QCantialias, font_prop_validate_symbol }
+  };
+
+/* Size (number of elements) of the above table.  */
+#define FONT_PROPERTY_TABLE_SIZE \
+  ((sizeof font_property_table) / (sizeof *font_property_table))
+
+/* Return an index number of font property KEY or -1 if KEY is not an
+   already known property.  Start searching font_property_table from
+   index FROM (which is 0 or FONT_EXTRA_INDEX).  */
+
+static int
+get_font_prop_index (key, from)
+     Lisp_Object key;
+     int from;
+{
+  for (; from < FONT_PROPERTY_TABLE_SIZE; from++)
+    if (EQ (key, *font_property_table[from].key))
+      return from;
+  return -1;
+}
+
+/* Validate font properties in SPEC (vector) while updating elements
+   to regularized values.  Signal an error if an invalid property is
+   found. */
+
+static Lisp_Object
+font_prop_validate (spec)
+     Lisp_Object spec;
+{
+  int i;
+  Lisp_Object prop, val, extra;
+
+  for (i = FONT_TYPE_INDEX; i < FONT_EXTRA_INDEX; i++)
+    {
+      if (! NILP (AREF (spec, i)))
+       {
+         prop = *font_property_table[i].key;
+         val = (font_property_table[i].validater) (prop, AREF (spec, i));
+         if (EQ (val, Qerror))
+           Fsignal (Qfont, list2 (build_string ("invalid font property"),
+                                  Fcons (prop, AREF (spec, i))));
+         ASET (spec, i, val);
+       }
+    }
+  for (extra = AREF (spec, FONT_EXTRA_INDEX);
+       CONSP (extra); extra = XCDR (extra))
+    {
+      Lisp_Object elt = XCAR (extra);
+
+      prop = XCAR (elt);
+      i = get_font_prop_index (prop, FONT_EXTRA_INDEX);
+      if (i >= 0
+         && font_property_table[i].validater)
+       {
+         val = (font_property_table[i].validater) (prop, XCDR (elt));
+         if (EQ (val, Qerror))
+           Fsignal (Qfont, list2 (build_string ("invalid font property"),
+                                  elt));
+         XSETCDR (elt, val);
+       }
+    }
+  return spec;
+}
+      
+/* Store VAL as a value of extra font property PROP in FONT.  */
+
+Lisp_Object
+font_put_extra (font, prop, val)
+     Lisp_Object font, prop, val;
+{
+  Lisp_Object extra = AREF (font, FONT_EXTRA_INDEX);
+  Lisp_Object slot = (NILP (extra) ? Qnil : assq_no_quit (prop, extra));
+
+  if (NILP (slot))
+    {
+      extra = Fcons (Fcons (prop, val), extra);
+      ASET (font, FONT_EXTRA_INDEX, extra);
+      return val;
+    }
+  XSETCDR (slot, val);
+  return val;
+}
+
+\f
+/* Font name parser and unparser */
+
+static Lisp_Object intern_font_field P_ ((char *, int));
+static int parse_matrix P_ ((char *));
+static int font_expand_wildcards P_ ((Lisp_Object *, int));
+static int font_parse_name P_ ((char *, Lisp_Object));
+
+/* An enumerator for each field of an XLFD font name.  */
+enum xlfd_field_index
+{
+  XLFD_FOUNDRY_INDEX,
+  XLFD_FAMILY_INDEX,
+  XLFD_WEIGHT_INDEX,
+  XLFD_SLANT_INDEX,
+  XLFD_SWIDTH_INDEX,
+  XLFD_ADSTYLE_INDEX,
+  XLFD_PIXEL_INDEX,
+  XLFD_POINT_INDEX,
+  XLFD_RESX_INDEX,
+  XLFD_RESY_INDEX,
+  XLFD_SPACING_INDEX,
+  XLFD_AVGWIDTH_INDEX,
+  XLFD_REGISTRY_INDEX,
+  XLFD_ENCODING_INDEX,
+  XLFD_LAST_INDEX
+};
+
+/* An enumerator for mask bit corresponding to each XLFD field.  */
+enum xlfd_field_mask
+{
+  XLFD_FOUNDRY_MASK = 0x0001,
+  XLFD_FAMILY_MASK = 0x0002,
+  XLFD_WEIGHT_MASK = 0x0004,
+  XLFD_SLANT_MASK = 0x0008,
+  XLFD_SWIDTH_MASK = 0x0010,
+  XLFD_ADSTYLE_MASK = 0x0020,
+  XLFD_PIXEL_MASK = 0x0040,
+  XLFD_POINT_MASK = 0x0080,
+  XLFD_RESX_MASK = 0x0100,
+  XLFD_RESY_MASK = 0x0200,
+  XLFD_SPACING_MASK = 0x0400,
+  XLFD_AVGWIDTH_MASK = 0x0800,
+  XLFD_REGISTRY_MASK = 0x1000,
+  XLFD_ENCODING_MASK = 0x2000
+};
+
+
+/* Return a Lispy value of a XLFD font field at STR and LEN bytes.
+   If LEN is zero, it returns `null_string'.
+   If STR is "*", it returns nil.
+   If all characters in STR are digits, it returns an integer.
+   Otherwise, it returns a symbol interned from downcased STR.  */
+
+static Lisp_Object
+intern_font_field (str, len)
+     char *str;
+     int len;
+{
+  int i;
+
+  if (len == 0)
+    return null_string;
+  if (*str == '*' && len == 1)
+    return Qnil;
+  if (isdigit (*str))
+    {
+      for (i = 1; i < len; i++)
+       if (! isdigit (str[i]))
+         break;
+      if (i == len)
+       return make_number (atoi (str));
+    }
+  return intern_downcase (str, len);
+}
+
+/* Parse P pointing the pixel/point size field of the form
+   `[A B C D]' which specifies a transformation matrix:
+
+       A  B  0
+       C  D  0
+       0  0  1
+
+   by which all glyphs of the font are transformed.  The spec says
+   that scalar value N for the pixel/point size is equivalent to:
+   A = N * resx/resy, B = C = 0, D = N.
+
+   Return the scalar value N if the form is valid.  Otherwise return
+   -1.  */
+
+static int
+parse_matrix (p)
+     char *p;
+{
+  double matrix[4];
+  char *end;
+  int i;
+
+  for (i = 0, p++; i < 4 && *p && *p != ']'; i++)
+    {
+      if (*p == '~')
+       matrix[i] = - strtod (p + 1, &end);
+      else
+       matrix[i] = strtod (p, &end);
+      p = end;
+    }
+  return (i == 4 ? (int) matrix[3] : -1);
+}
+
+/* Expand a wildcard field in FIELD (the first N fields are filled) to
+   multiple fields to fill in all 14 XLFD fields while restring a
+   field position by its contents.  */
+
+static int
+font_expand_wildcards (field, n)
+     Lisp_Object field[XLFD_LAST_INDEX];
+     int n;
+{
+  /* Copy of FIELD.  */
+  Lisp_Object tmp[XLFD_LAST_INDEX];
+  /* Array of information about where this element can go.  Nth
+     element is for Nth element of FIELD. */
+  struct {
+    /* Minimum possible field.  */
+    int from;
+    /* Maxinum possible field.  */
+    int to;
+    /* Bit mask of possible field.  Nth bit corresponds to Nth field.  */
+    int mask;
+  } range[XLFD_LAST_INDEX];
+  int i, j;
+  int range_from, range_to;
+  unsigned range_mask;
+
+#define XLFD_SYMBOL_MASK (XLFD_FOUNDRY_MASK | XLFD_FAMILY_MASK \
+                         | XLFD_ADSTYLE_MASK  | XLFD_REGISTRY_MASK)
+#define XLFD_NULL_MASK (XLFD_FOUNDRY_MASK | XLFD_ADSTYLE_MASK)
+#define XLFD_LARGENUM_MASK (XLFD_POINT_MASK | XLFD_RESX_MASK | XLFD_RESY_MASK \
+                           | XLFD_AVGWIDTH_MASK)
+#define XLFD_REGENC_MASK (XLFD_REGISTRY_MASK | XLFD_ENCODING_MASK)
+
+  /* Initialize RANGE_MASK for FIELD[0] which can be 0th to (14 - N)th
+     field.  The value is shifted to left one bit by one in the
+     following loop.  */
+  for (i = 0, range_mask = 0; i <= 14 - n; i++)
+    range_mask = (range_mask << 1) | 1;
+
+  /* The triplet RANGE_FROM, RANGE_TO, and RANGE_MASK is a
+     position-based retriction for FIELD[I].  */
+  for (i = 0, range_from = 0, range_to = 14 - n; i < n;
+       i++, range_from++, range_to++, range_mask <<= 1)
+    {
+      Lisp_Object val = field[i];
+
+      tmp[i] = val;
+      if (NILP (val))
+       {
+         /* Wildcard.  */
+         range[i].from = range_from;
+         range[i].to = range_to;
+         range[i].mask = range_mask;
+       }
+      else
+       {
+         /* The triplet FROM, TO, and MASK is a value-based
+            retriction for FIELD[I].  */
+         int from, to;
+         unsigned mask;
+
+         if (INTEGERP (val))
+           {
+             int numeric = XINT (val);
+
+             if (i + 1 == n)
+               from = to = XLFD_ENCODING_INDEX,
+                 mask = XLFD_ENCODING_MASK;
+             else if (numeric == 0)
+               from = XLFD_PIXEL_INDEX, to = XLFD_AVGWIDTH_INDEX,
+                 mask = XLFD_PIXEL_MASK | XLFD_LARGENUM_MASK;
+             else if (numeric <= 48)
+               from = to = XLFD_PIXEL_INDEX,
+                 mask = XLFD_PIXEL_MASK;
+             else 
+               from = XLFD_POINT_INDEX, to = XLFD_AVGWIDTH_INDEX,
+                 mask = XLFD_LARGENUM_MASK;
+           }
+         else if (EQ (val, null_string))
+           from = XLFD_FOUNDRY_INDEX, to = XLFD_ADSTYLE_INDEX,
+             mask = XLFD_NULL_MASK;
+         else if (i == 0)
+           from = to = XLFD_FOUNDRY_INDEX, mask = XLFD_FOUNDRY_MASK;
+         else if (i + 1 == n)
+           {
+             Lisp_Object name = SYMBOL_NAME (val);
+
+             if (SDATA (name)[SBYTES (name) - 1] == '*')
+               from = XLFD_REGISTRY_INDEX, to = XLFD_ENCODING_INDEX,
+                 mask = XLFD_REGENC_MASK;
+             else
+               from = to = XLFD_ENCODING_INDEX,
+                 mask = XLFD_ENCODING_MASK;
+           }
+         else if (range_from <= XLFD_WEIGHT_INDEX
+                  && range_to >= XLFD_WEIGHT_INDEX
+                  && !NILP (prop_name_to_numeric (FONT_WEIGHT_INDEX, val)))
+           from = to = XLFD_WEIGHT_INDEX, mask = XLFD_WEIGHT_MASK;
+         else if (range_from <= XLFD_SLANT_INDEX
+                  && range_to >= XLFD_SLANT_INDEX
+                  && !NILP (prop_name_to_numeric (FONT_SLANT_INDEX, val)))
+           from = to = XLFD_SLANT_INDEX, mask = XLFD_SLANT_MASK;
+         else if (range_from <= XLFD_SWIDTH_INDEX
+                  && range_to >= XLFD_SWIDTH_INDEX
+                  && !NILP (prop_name_to_numeric (FONT_WIDTH_INDEX, val)))
+           from = to = XLFD_SWIDTH_INDEX, mask = XLFD_SWIDTH_MASK;
+         else
+           {
+             if (EQ (val, Qc) || EQ (val, Qm) || EQ (val, Qp) || EQ (val, Qd))
+               from = to = XLFD_SPACING_INDEX, mask = XLFD_SPACING_MASK;
+             else
+               from = XLFD_FOUNDRY_INDEX, to = XLFD_ENCODING_INDEX,
+                 mask = XLFD_SYMBOL_MASK;
+           }
+
+         /* Merge position-based and value-based restrictions.  */
+         mask &= range_mask;
+         while (from < range_from)
+           mask &= ~(1 << from++);
+         while (from < 14 && ! (mask & (1 << from)))
+           from++;
+         while (to > range_to)
+           mask &= ~(1 << to--);
+         while (to >= 0 && ! (mask & (1 << to)))
+           to--;
+         if (from > to)
+           return -1;
+         range[i].from = from;
+         range[i].to = to;
+         range[i].mask = mask;
+
+         if (from > range_from || to < range_to)
+           {
+             /* The range is narrowed by value-based restrictions.
+                Reflect it to the other fields.  */
+
+             /* Following fields should be after FROM.  */
+             range_from = from;
+             /* Preceding fields should be before TO.  */
+             for (j = i - 1, from--, to--; j >= 0; j--, from--, to--)
+               {
+                 /* Check FROM for non-wildcard field.  */
+                 if (! NILP (tmp[j]) && range[j].from < from)
+                   {
+                     while (range[j].from < from)
+                       range[j].mask &= ~(1 << range[j].from++);
+                     while (from < 14 && ! (range[j].mask & (1 << from)))
+                       from++;
+                     range[j].from = from;
+                   }
+                 else
+                   from = range[j].from;
+                 if (range[j].to > to)
+                   {
+                     while (range[j].to > to)
+                       range[j].mask &= ~(1 << range[j].to--);
+                     while (to >= 0 && ! (range[j].mask & (1 << to)))
+                       to--;
+                     range[j].to = to;
+                   }
+                 else
+                   to = range[j].to;
+                 if (from > to)
+                   return -1;
+               }
+           }
+       }
+    }
+
+  /* Decide all fileds from restrictions in RANGE.  */
+  for (i = j = 0; i < n ; i++)
+    {
+      if (j < range[i].from)
+       {
+         if (i == 0 || ! NILP (tmp[i - 1]))
+           /* None of TMP[X] corresponds to Jth field.  */
+           return -1;
+         for (; j < range[i].from; j++)
+           field[j] = Qnil;
+       }
+      field[j++] = tmp[i];
+    }
+  if (! NILP (tmp[n - 1]) && j < XLFD_REGISTRY_INDEX)
+    return -1;
+  for (; j < XLFD_LAST_INDEX; j++)
+    field[j] = Qnil;
+  if (INTEGERP (field[XLFD_ENCODING_INDEX]))
+    field[XLFD_ENCODING_INDEX]
+      = Fintern (Fnumber_to_string (field[XLFD_ENCODING_INDEX]), Qnil);
+  return 0;
+}
+
+/* Parse NAME (null terminated) as XLFD and store information in FONT
+   (font-spec or font-entity).  Size property of FONT is set as
+   follows:
+       specified XLFD fields           FONT property
+       ---------------------           -------------
+       PIXEL_SIZE                      PIXEL_SIZE (Lisp integer)
+       POINT_SIZE and RESY             calculated pixel size (Lisp integer)
+       POINT_SIZE                      POINT_SIZE/10 (Lisp float)
+
+   If NAME is successfully parsed, return 0.  Otherwise return -1.
+
+   FONT is usually a font-spec, but when this function is called from
+   X font backend driver, it is a font-entity.  In that case, NAME is
+   a fully specified XLFD, and we set FONT_EXTRA_INDEX of FONT to a
+   symbol RESX-RESY-SPACING-AVGWIDTH.
+*/
+
+int
+font_parse_xlfd (name, font)
+     char *name;
+     Lisp_Object font;
+{
+  int len = strlen (name);
+  int i, j;
+  Lisp_Object dpi, spacing;
+  int avgwidth;
+  char *f[XLFD_LAST_INDEX + 1];
+  Lisp_Object val;
+  char *p;
+
+  if (len > 255)
+    /* Maximum XLFD name length is 255. */
+    return -1;
+  /* Accept "*-.." as a fully specified XLFD. */
+  if (name[0] == '*' && name[1] == '-')
+    i = 1, f[XLFD_FOUNDRY_INDEX] = name;
+  else
+    i = 0;
+  for (p = name + i; *p; p++)
+    if (*p == '-' && i < XLFD_LAST_INDEX)
+      f[i++] = p + 1;
+  f[i] = p;
+
+  dpi = spacing = Qnil;
+  avgwidth = -1;
+
+  if (i == XLFD_LAST_INDEX)
+    {
+      int pixel_size;
+
+      /* Fully specified XLFD.  */
+      for (i = 0, j = FONT_FOUNDRY_INDEX; i < XLFD_WEIGHT_INDEX; i++, j++)
+       {
+         val = intern_font_field (f[i], f[i + 1] - 1 - f[i]);
+         if (! NILP (val))
+           ASET (font, j, val);
+       }
+      for (j = FONT_WEIGHT_INDEX; i < XLFD_ADSTYLE_INDEX; i++, j++)
+       {
+         val = intern_font_field (f[i], f[i + 1] - 1 - f[i]);
+         if (! NILP (val))
+           {
+             Lisp_Object numeric = prop_name_to_numeric (j, val);
+
+             if (INTEGERP (numeric))
+               val = numeric;
+             ASET (font, j, val);
+           }
+       }
+      val = intern_font_field (f[i], f[i + 1] - 1 - f[i]);
+      if (! NILP (val))
+       ASET (font, FONT_ADSTYLE_INDEX, val);
+      i = XLFD_REGISTRY_INDEX;
+      val = intern_font_field (f[i], f[i + 2] - f[i]);
+      if (! NILP (val))
+       ASET (font, FONT_REGISTRY_INDEX, val);
+
+      p = f[XLFD_PIXEL_INDEX];
+      if (*p == '[' && (pixel_size = parse_matrix (p)) >= 0)
+       ASET (font, FONT_SIZE_INDEX, make_number (pixel_size));       
+      else
+       {
+         i = XLFD_PIXEL_INDEX;
+         val = intern_font_field (f[i], f[i + 1] - 1 - f[i]);
+         if (! NILP (val))
+           ASET (font, FONT_SIZE_INDEX, val);
+         else
+           {
+             double point_size = -1;
+
+             xassert (FONT_SPEC_P (font));
+             p = f[XLFD_POINT_INDEX];
+             if (*p == '[')
+               point_size = parse_matrix (p);
+             else if (isdigit (*p))
+               point_size = atoi (p), point_size /= 10;
+             if (point_size >= 0)
+               ASET (font, FONT_SIZE_INDEX, make_float (point_size));
+             else
+               {
+                 i = XLFD_PIXEL_INDEX;
+                 val = intern_font_field (f[i], f[i + 1] - 1 - f[i]);
+                 if (! NILP (val))
+                   ASET (font, FONT_SIZE_INDEX, val);
+               }
+           }
+       }
+
+      /* Parse RESX, RESY, SPACING, and AVGWIDTH.  */
+      if (FONT_ENTITY_P (font))
+       {
+         i = XLFD_RESX_INDEX;
+         ASET (font, FONT_EXTRA_INDEX,
+               intern_font_field (f[i], f[XLFD_REGISTRY_INDEX] - 1 - f[i]));
+         return 0;
+       }
+
+      /* Here we just setup DPI, SPACING, and AVGWIDTH.  They are set
+        in FONT_EXTRA_INDEX later.  */
+      i = XLFD_RESX_INDEX;
+      dpi = intern_font_field (f[i], f[i + 1] - 1 - f[i]);
+      i = XLFD_SPACING_INDEX;
+      spacing = intern_font_field (f[i], f[i + 1] - 1 - f[i]);
+      p = f[XLFD_AVGWIDTH_INDEX];
+      if (*p == '~')
+       p++;
+      if (isdigit (*p))
+       avgwidth = atoi (p);
+    }
+  else
+    {
+      int wild_card_found = 0;
+      Lisp_Object prop[XLFD_LAST_INDEX];
+
+      for (j = 0; j < i; j++)
+       {
+         if (*f[j] == '*')
+           {
+             if (f[j][1] && f[j][1] != '-')
+               return -1;
+             prop[j] = Qnil;
+             wild_card_found = 1;
+           }
+         else if (isdigit (*f[j]))
+           {
+             for (p = f[j] + 1; isdigit (*p); p++);
+             if (*p && *p != '-')
+               prop[j] = intern_downcase (f[j], p - f[j]);
+             else
+               prop[j] = make_number (atoi (f[j]));
+           }
+         else if (j + 1 < i)
+           prop[j] = intern_font_field (f[j], f[j + 1] - 1 - f[j]);
+         else
+           prop[j] = intern_font_field (f[j], f[i] - f[j]);
+       }
+      if (! wild_card_found)
+       return -1;
+      if (font_expand_wildcards (prop, i) < 0)
+       return -1;
+
+      for (i = 0, j = FONT_FOUNDRY_INDEX; i < XLFD_WEIGHT_INDEX; i++, j++)
+       if (! NILP (prop[i]))
+         ASET (font, j, prop[i]);
+      for (j = FONT_WEIGHT_INDEX; i < XLFD_ADSTYLE_INDEX; i++, j++)
+       if (! NILP (prop[i]))
+         ASET (font, j, prop[i]);
+      if (! NILP (prop[XLFD_ADSTYLE_INDEX]))
+       ASET (font, FONT_ADSTYLE_INDEX, prop[XLFD_ADSTYLE_INDEX]);
+      val = prop[XLFD_REGISTRY_INDEX];
+      if (NILP (val))
+       {
+         val = prop[XLFD_ENCODING_INDEX];
+         if (! NILP (val))
+           val = Fintern (concat2 (build_string ("*-"), SYMBOL_NAME (val)),
+                          Qnil);
+       }
+      else if (NILP (prop[XLFD_ENCODING_INDEX]))
+       val = Fintern (concat2 (SYMBOL_NAME (val), build_string ("-*")),
+                      Qnil);
+      else
+       val = Fintern (concat3 (SYMBOL_NAME (val), build_string ("-"),
+                               SYMBOL_NAME (prop[XLFD_ENCODING_INDEX])),
+                      Qnil);
+      if (! NILP (val))
+       ASET (font, FONT_REGISTRY_INDEX, val);
+
+      if (INTEGERP (prop[XLFD_PIXEL_INDEX]))
+       ASET (font, FONT_SIZE_INDEX, prop[XLFD_PIXEL_INDEX]);
+      else if (INTEGERP (prop[XLFD_POINT_INDEX]))
+       {
+         double point_size = XINT (prop[XLFD_POINT_INDEX]);
+
+         ASET (font, FONT_SIZE_INDEX, make_float (point_size / 10));
+       }
+
+      dpi = prop[XLFD_RESX_INDEX];
+      spacing = prop[XLFD_SPACING_INDEX];
+      if (INTEGERP (prop[XLFD_AVGWIDTH_INDEX]))
+       avgwidth = XINT (prop[XLFD_AVGWIDTH_INDEX]);
+    }
+
+  if (! NILP (dpi))
+    font_put_extra (font, QCdpi, dpi);
+  if (! NILP (spacing))
+    font_put_extra (font, QCspacing, spacing);
+  if (avgwidth >= 0)
+    font_put_extra (font, QCscalable, avgwidth == 0 ? Qt : Qnil);
+
+  return 0;
+}
+
+/* Store XLFD name of FONT (font-spec or font-entity) in NAME (NBYTES
+   length), and return the name length.  If FONT_SIZE_INDEX of FONT is
+   0, use PIXEL_SIZE instead.  */
+
+int
+font_unparse_xlfd (font, pixel_size, name, nbytes)
+     Lisp_Object font;
+     int pixel_size;
+     char *name;
+     int nbytes;
+{
+  char *f[XLFD_REGISTRY_INDEX + 1];
+  Lisp_Object val;
+  int i, j, len = 0;
+
+  xassert (FONTP (font));
+
+  for (i = FONT_FOUNDRY_INDEX, j = XLFD_FOUNDRY_INDEX; i <= FONT_REGISTRY_INDEX;
+       i++, j++)
+    {
+      if (i == FONT_ADSTYLE_INDEX)
+       j = XLFD_ADSTYLE_INDEX;
+      else if (i == FONT_REGISTRY_INDEX)
+       j = XLFD_REGISTRY_INDEX;
+      val = AREF (font, i);
+      if (NILP (val))
+       {
+         if (j == XLFD_REGISTRY_INDEX)
+           f[j] = "*-*", len += 4;
+         else
+           f[j] = "*", len += 2;
+       }
+      else
+       {
+         if (SYMBOLP (val))
+           val = SYMBOL_NAME (val);
+         if (j == XLFD_REGISTRY_INDEX
+             && ! strchr ((char *) SDATA (val), '-'))
+           {
+             /* Change "jisx0208*" and "jisx0208" to "jisx0208*-*".  */
+             if (SDATA (val)[SBYTES (val) - 1] == '*')
+               {
+                 f[j] = alloca (SBYTES (val) + 3);
+                 sprintf (f[j], "%s-*", SDATA (val));
+                 len += SBYTES (val) + 3;
+               }
+             else
+               {
+                 f[j] = alloca (SBYTES (val) + 4);
+                 sprintf (f[j], "%s*-*", SDATA (val));
+                 len += SBYTES (val) + 4;
+               }
+           }
+         else
+           f[j] = (char *) SDATA (val), len += SBYTES (val) + 1;
+       }
+    }
+
+  for (i = FONT_WEIGHT_INDEX, j = XLFD_WEIGHT_INDEX; i <= FONT_WIDTH_INDEX;
+       i++, j++)
+    {
+      val = AREF (font, i);
+      if (NILP (val))
+       f[j] = "*", len += 2;
+      else
+       {
+         if (INTEGERP (val))
+           val = prop_numeric_to_name (i, XINT (val));
+         if (SYMBOLP (val))
+           val = SYMBOL_NAME (val);
+         xassert (STRINGP (val));
+         f[j] = (char *) SDATA (val), len += SBYTES (val) + 1;
+       }
+    }
+
+  val = AREF (font, FONT_SIZE_INDEX);
+  xassert (NUMBERP (val) || NILP (val));
+  if (INTEGERP (val))
+    {
+      f[XLFD_PIXEL_INDEX] = alloca (22);
+      i = XINT (val);
+      if (i > 0)
+       len += sprintf (f[XLFD_PIXEL_INDEX], "%d-*", i) + 1;
+      else if (pixel_size > 0)
+       len += sprintf (f[XLFD_PIXEL_INDEX], "%d-*", pixel_size) + 1;
+      f[XLFD_PIXEL_INDEX] = "*-*", len += 4;
+    }
+  else if (FLOATP (val))
+    {
+      f[XLFD_PIXEL_INDEX] = alloca (12);
+      i = XFLOAT_DATA (val) * 10;
+      len += sprintf (f[XLFD_PIXEL_INDEX], "*-%d", i) + 1;
+    }
+  else
+    f[XLFD_PIXEL_INDEX] = "*-*", len += 4;
+
+  val = AREF (font, FONT_EXTRA_INDEX);
+
+  if (FONT_ENTITY_P (font)
+      && EQ (AREF (font, FONT_TYPE_INDEX), Qx))
+    {
+      /* Setup names for RESX-RESY-SPACING-AVWIDTH.  */
+      if (SYMBOLP (val) && ! NILP (val))
+       {
+         val = SYMBOL_NAME (val);
+         f[XLFD_RESX_INDEX] = (char *) SDATA (val), len += SBYTES (val) + 1;
+       }
+      else
+       f[XLFD_RESX_INDEX] = "*-*-*-*", len += 6;
+    }
+  else
+    {
+      Lisp_Object dpi = assq_no_quit (QCdpi, val);
+      Lisp_Object spacing = assq_no_quit (QCspacing, val);
+      Lisp_Object scalable = assq_no_quit (QCscalable, val);
+
+      if (CONSP (dpi) || CONSP (spacing) || CONSP (scalable))
+       {
+         char *str = alloca (24);
+         int this_len;
+
+         if (CONSP (dpi) && INTEGERP (XCDR (dpi)))
+           this_len = sprintf (str, "%d-%d",
+                               XINT (XCDR (dpi)), XINT (XCDR (dpi)));
+         else
+           this_len = sprintf (str, "*-*");
+         if (CONSP (spacing) && ! NILP (XCDR (spacing)))
+           {
+             val = XCDR (spacing);
+             if (INTEGERP (val))
+               {
+                 if (XINT (val) < FONT_SPACING_MONO)
+                   val = Qp;
+                 else if (XINT (val) < FONT_SPACING_CHARCELL)
+                   val = Qm;
+                 else
+                   val = Qc;
+               }
+             xassert (SYMBOLP (val));
+             this_len += sprintf (str + this_len, "-%c",
+                                  SDATA (SYMBOL_NAME (val))[0]);
+           }
+         else
+           this_len += sprintf (str + this_len, "-*");
+         if (CONSP (scalable) && ! NILP (XCDR (spacing)))
+           this_len += sprintf (str + this_len, "-0");
+         else
+           this_len += sprintf (str + this_len, "-*");
+         f[XLFD_RESX_INDEX] = str;
+         len += this_len;
+       }
+      else
+       f[XLFD_RESX_INDEX] = "*-*-*-*", len += 8;
+    }
+
+  len++;       /* for terminating '\0'.  */
+  if (len >= nbytes)
+    return -1;
+  return sprintf (name, "-%s-%s-%s-%s-%s-%s-%s-%s-%s",
+                 f[XLFD_FOUNDRY_INDEX], f[XLFD_FAMILY_INDEX],
+                 f[XLFD_WEIGHT_INDEX], f[XLFD_SLANT_INDEX],
+                 f[XLFD_SWIDTH_INDEX],
+                 f[XLFD_ADSTYLE_INDEX], f[XLFD_PIXEL_INDEX],
+                 f[XLFD_RESX_INDEX], f[XLFD_REGISTRY_INDEX]);
+}
+
+/* Parse NAME (null terminated) as Fonconfig's name format and store
+   information in FONT (font-spec or font-entity).  If NAME is
+   successfully parsed, return 0.  Otherwise return -1.  */
+
+int
+font_parse_fcname (name, font)
+     char *name;
+     Lisp_Object font;
+{
+  char *p0, *p1;
+  int len = strlen (name);
+  char *copy;
+  int weight_set = 0;
+  int slant_set = 0;
+
+  if (len == 0)
+    return -1;
+  /* It is assured that (name[0] && name[0] != '-').  */
+  if (name[0] == ':')
+    p0 = name;
+  else
+    {
+      Lisp_Object family;
+      double point_size;
+
+      for (p0 = name + 1; *p0 && (*p0 != '-' && *p0 != ':'); p0++)
+       if (*p0 == '\\' && p0[1])
+         p0++;
+      family = intern_font_field (name, p0 - name);
+      if (*p0 == '-')
+       {
+         if (! isdigit (p0[1]))
+           return -1;
+         point_size = strtod (p0 + 1, &p1);
+         if (*p1 && *p1 != ':')
+           return -1;
+         ASET (font, FONT_SIZE_INDEX, make_float (point_size));
+         p0 = p1;
+       }
+      ASET (font, FONT_FAMILY_INDEX, family);
+    }
+
+  len -= p0 - name;
+  copy = alloca (len + 1);
+  if (! copy)
+    return -1;
+  name = copy;
+  
+  /* Now parse ":KEY=VAL" patterns.  Store known keys and values in
+     extra, copy unknown ones to COPY.  */
+  while (*p0)
+    {
+      Lisp_Object key, val;
+      int prop;
+
+      for (p1 = p0 + 1; *p1 && *p1 != '=' && *p1 != ':'; p1++);
+      if (*p1 != '=')
+       {
+         /* Must be an enumerated value.  */
+         val = intern_font_field (p0 + 1, p1 - p0 - 1);
+         if (memcmp (p0 + 1, "light", 5) == 0
+             || memcmp (p0 + 1, "medium", 6) == 0
+             || memcmp (p0 + 1, "demibold", 8) == 0
+             || memcmp (p0 + 1, "bold", 4) == 0
+             || memcmp (p0 + 1, "black", 5) == 0)
+           {
+             ASET (font, FONT_WEIGHT_INDEX, val);
+              weight_set = 1;
+           }
+         else if (memcmp (p0 + 1, "roman", 5) == 0
+                  || memcmp (p0 + 1, "italic", 6) == 0
+                  || memcmp (p0 + 1, "oblique", 7) == 0)
+           {
+             ASET (font, FONT_SLANT_INDEX, val);
+              slant_set = 1;
+           }
+         else if (memcmp (p0 + 1, "charcell", 8) == 0
+                  || memcmp (p0 + 1, "mono", 4) == 0
+                  || memcmp (p0 + 1, "proportional", 12) == 0)
+           {
+             font_put_extra (font, QCspacing,
+                             (p0[1] == 'c' ? Qc : p0[1] == 'm' ? Qm : Qp));
+           }
+         else
+           {
+             /* unknown key */
+             bcopy (p0, copy, p1 - p0);
+             copy += p1 - p0;
+           }
+       }
+      else
+       {
+         if (memcmp (p0 + 1, "pixelsize=", 10) == 0)
+           prop = FONT_SIZE_INDEX;
+         else
+           {
+             key = intern_font_field (p0, p1 - p0);
+             prop = get_font_prop_index (key, 0);
+           }
+         p0 = p1 + 1;
+         for (p1 = p0; *p1 && *p1 != ':'; p1++);
+         val = intern_font_field (p0, p1 - p0);
+         if (! NILP (val))
+           {
+             if (prop >= 0 && prop < FONT_EXTRA_INDEX)
+               {
+                  if (prop == FONT_WEIGHT_INDEX)
+                    weight_set = 1;
+                  else if (prop == FONT_SLANT_INDEX)
+                    slant_set = 1;
+
+                 ASET (font, prop, val);
+               }
+             else
+               font_put_extra (font, key, val);
+           }
+       }
+      p0 = p1;
+    }
+
+  if (!weight_set)
+    ASET (font, FONT_WEIGHT_INDEX, build_string ("normal"));
+  if (!slant_set)
+    ASET (font, FONT_SLANT_INDEX, build_string ("normal"));
+
+  return 0;
+}
+
+/* Store fontconfig's font name of FONT (font-spec or font-entity) in
+   NAME (NBYTES length), and return the name length.  If
+   FONT_SIZE_INDEX of FONT is 0, use PIXEL_SIZE instead.  */
+
+int
+font_unparse_fcname (font, pixel_size, name, nbytes)
+     Lisp_Object font;
+     int pixel_size;
+     char *name;
+     int nbytes;
+{
+  Lisp_Object val;
+  int point_size;
+  int dpi, spacing, scalable;
+  int i, len = 1;
+  char *p;
+  Lisp_Object styles[3];
+  char *style_names[3] = { "weight", "slant", "width" };
+
+  val = AREF (font, FONT_FAMILY_INDEX);
+  if (SYMBOLP (val) && ! NILP (val))
+    len += SBYTES (SYMBOL_NAME (val));
+
+  val = AREF (font, FONT_SIZE_INDEX);
+  if (INTEGERP (val))
+    {
+      if (XINT (val) != 0)
+       pixel_size = XINT (val);
+      point_size = -1;
+      len += 21;               /* for ":pixelsize=NUM" */
+    }
+  else if (FLOATP (val))
+    {
+      pixel_size = -1;
+      point_size = (int) XFLOAT_DATA (val);
+      len += 11;               /* for "-NUM" */
+    }
+
+  val = AREF (font, FONT_FOUNDRY_INDEX);
+  if (SYMBOLP (val) && ! NILP (val))
+    /* ":foundry=NAME" */
+    len += 9 + SBYTES (SYMBOL_NAME (val));
+
+  for (i = FONT_WEIGHT_INDEX; i <= FONT_WIDTH_INDEX; i++)
+    {
+      val = AREF (font, i);
+      if (INTEGERP (val))
+       {
+         val = prop_numeric_to_name (i, XINT (val));
+         len += (strlen (style_names[i - FONT_WEIGHT_INDEX])
+                 + 2 + SBYTES (SYMBOL_NAME (val))); /* :xxx=NAME */
+       }
+      styles[i - FONT_WEIGHT_INDEX] = val;
+    }
+
+  val = AREF (font, FONT_EXTRA_INDEX);
+  if (FONT_ENTITY_P (font)
+      && EQ (AREF (font, FONT_TYPE_INDEX), Qx))
+    {
+      char *p;
+
+      /* VAL is a symbol of name `RESX-RESY-SPACING-AVWIDTH'.  */
+      p = (char *) SDATA (SYMBOL_NAME (val));
+      dpi = atoi (p);
+      for (p++; *p != '-'; p++);       /* skip RESX */
+      for (p++; *p != '-'; p++);       /* skip RESY */
+      spacing = (*p == 'c' ? FONT_SPACING_CHARCELL
+                : *p == 'm' ? FONT_SPACING_MONO
+                : FONT_SPACING_PROPORTIONAL);
+      for (p++; *p != '-'; p++);       /* skip SPACING */
+      scalable = (atoi (p) == 0);
+      /* The longest pattern is ":dpi=NUM:scalable=False:spacing=100" */
+      len += 42;
+    }
+  else
+    {
+      Lisp_Object elt;
+
+      dpi = spacing = scalable = -1;
+      elt = assq_no_quit (QCdpi, val);
+      if (CONSP (elt))
+       dpi = XINT (XCDR (elt)), len += 15; /* for ":dpi=NUM" */
+      elt = assq_no_quit (QCspacing, val);
+      if (CONSP (elt))
+       spacing = XINT (XCDR (elt)), len += 12; /* for ":spacing=100" */
+      elt = assq_no_quit (QCscalable, val);
+      if (CONSP (elt))
+       scalable = ! NILP (XCDR (elt)), len += 15; /* for ":scalable=False" */
+    }
+
+  if (len > nbytes)
+    return -1;
+  p = name;
+  if (! NILP (AREF (font, FONT_FAMILY_INDEX)))
+    p += sprintf(p, "%s",
+                SDATA (SYMBOL_NAME (AREF (font, FONT_FAMILY_INDEX))));
+  if (point_size > 0)
+    {
+      if (p == name)
+       p += sprintf (p, "%d", point_size);
+      else
+       p += sprintf (p, "-%d", point_size);
+    }
+  else if (pixel_size > 0)
+    p += sprintf (p, ":pixelsize=%d", pixel_size);
+  if (SYMBOLP (AREF (font, FONT_FOUNDRY_INDEX))
+      && ! NILP (AREF (font, FONT_FOUNDRY_INDEX)))
+    p += sprintf (p, ":foundry=%s",
+                 SDATA (SYMBOL_NAME (AREF (font, FONT_FOUNDRY_INDEX))));
+  for (i = 0; i < 3; i++)
+    if (SYMBOLP (styles[i]) && ! NILP (styles [i]))
+      p += sprintf (p, ":%s=%s", style_names[i],
+                   SDATA (SYMBOL_NAME (styles [i])));
+  if (dpi >= 0)
+    p += sprintf (p, ":dpi=%d", dpi);
+  if (spacing >= 0)
+    p += sprintf (p, ":spacing=%d", spacing);
+  if (scalable > 0)
+    p += sprintf (p, ":scalable=True");
+  else if (scalable == 0)
+    p += sprintf (p, ":scalable=False");
+  return (p - name);
+}
+
+/* Parse NAME (null terminated) and store information in FONT
+   (font-spec or font-entity).  If NAME is successfully parsed, return
+   0.  Otherwise return -1.
+
+   If NAME is XLFD and FONT is a font-entity, store
+   RESX-RESY-SPACING-AVWIDTH information as a symbol in
+   FONT_EXTRA_INDEX.  */
+
+static int
+font_parse_name (name, font)
+     char *name;
+     Lisp_Object font;
+{
+  if (name[0] == '-' || index (name, '*'))
+    return font_parse_xlfd (name, font);
+  return font_parse_fcname (name, font);
+}
+
+/* Merge old style font specification (either a font name NAME or a
+   combination of a family name FAMILY and a registry name REGISTRY
+   into the font specification SPEC.  */
+
+void
+font_merge_old_spec (name, family, registry, spec)
+     Lisp_Object name, family, registry, spec;
+{
+  if (STRINGP (name))
+    {
+      if (font_parse_xlfd ((char *) SDATA (name), spec) < 0)
+       {
+         Lisp_Object extra = Fcons (Fcons (QCname, name), Qnil);
+
+         ASET (spec, FONT_EXTRA_INDEX, extra);
+       }
+    }
+  else
+    {
+      if (! NILP (family))
+       {
+         int len;
+         char *p0, *p1;
+
+         xassert (STRINGP (family));
+         len = SBYTES (family);
+         p0 = (char *) SDATA (family);
+         p1 = index (p0, '-');
+         if (p1)
+           {
+             if ((*p0 != '*' || p1 - p0 > 1)
+                 && NILP (AREF (spec, FONT_FOUNDRY_INDEX)))
+               ASET (spec, FONT_FOUNDRY_INDEX,
+                     intern_downcase (p0, p1 - p0));
+             if (NILP (AREF (spec, FONT_FAMILY_INDEX)))
+               ASET (spec, FONT_FAMILY_INDEX,
+                     intern_downcase (p1 + 1, len - (p1 + 1 - p0)));
+           }
+         else if (NILP (AREF (spec, FONT_FAMILY_INDEX)))
+           ASET (spec, FONT_FAMILY_INDEX, intern_downcase (p0, len));
+       }
+      if (! NILP (registry)
+         && NILP (AREF (spec, FONT_REGISTRY_INDEX)))
+       ASET (spec, FONT_REGISTRY_INDEX,
+             intern_downcase ((char *) SDATA (registry), SBYTES (registry)));
+    }
+}
+
+\f
+/* This part (through the next ^L) is still experimental and never
+   tested.  We may drastically change codes.  */
+
+/* OTF handler */
+
+#define LGSTRING_HEADER_SIZE 6
+#define LGSTRING_GLYPH_SIZE 8
+
+static int
+check_gstring (gstring)
+     Lisp_Object gstring;
+{
+  Lisp_Object val;
+  int i, j;
+
+  CHECK_VECTOR (gstring);
+  val = AREF (gstring, 0);
+  CHECK_VECTOR (val);
+  if (ASIZE (val) < LGSTRING_HEADER_SIZE)
+    goto err;
+  CHECK_FONT_OBJECT (LGSTRING_FONT (gstring));
+  if (! NILP (LGSTRING_LBEARING (gstring)))
+    CHECK_NUMBER (LGSTRING_LBEARING (gstring));
+  if (! NILP (LGSTRING_RBEARING (gstring)))
+    CHECK_NUMBER (LGSTRING_RBEARING (gstring));
+  if (! NILP (LGSTRING_WIDTH (gstring)))
+    CHECK_NATNUM (LGSTRING_WIDTH (gstring));
+  if (! NILP (LGSTRING_ASCENT (gstring)))
+    CHECK_NUMBER (LGSTRING_ASCENT (gstring));
+  if (! NILP (LGSTRING_DESCENT (gstring)))
+    CHECK_NUMBER (LGSTRING_DESCENT(gstring));
+
+  for (i = 0; i < LGSTRING_LENGTH (gstring); i++)
+    {
+      val = LGSTRING_GLYPH (gstring, i);
+      CHECK_VECTOR (val);
+      if (ASIZE (val) < LGSTRING_GLYPH_SIZE)
+       goto err;
+      if (NILP (LGLYPH_CHAR (val)))
+       break;
+      CHECK_NATNUM (LGLYPH_FROM (val));
+      CHECK_NATNUM (LGLYPH_TO (val));
+      CHECK_CHARACTER (LGLYPH_CHAR (val));
+      if (! NILP (LGLYPH_CODE (val)))
+       CHECK_NATNUM (LGLYPH_CODE (val));
+      if (! NILP (LGLYPH_WIDTH (val)))
+       CHECK_NATNUM (LGLYPH_WIDTH (val));
+      if (! NILP (LGLYPH_ADJUSTMENT (val)))
+       {
+         val = LGLYPH_ADJUSTMENT (val);
+         CHECK_VECTOR (val);
+         if (ASIZE (val) < 3)
+           goto err;
+         for (j = 0; j < 3; j++)
+           CHECK_NUMBER (AREF (val, j));
+       }
+    }
+  return i;
+ err:
+  error ("Invalid glyph-string format");
+  return -1;
+}
+
+static void
+check_otf_features (otf_features)
+     Lisp_Object otf_features;
+{
+  Lisp_Object val, elt;
+
+  CHECK_CONS (otf_features);
+  CHECK_SYMBOL (XCAR (otf_features));
+  otf_features = XCDR (otf_features);
+  CHECK_CONS (otf_features);
+  CHECK_SYMBOL (XCAR (otf_features));
+  otf_features = XCDR (otf_features);
+  for (val = Fcar (otf_features); ! NILP (val);  val = Fcdr (val))
+    {
+      CHECK_SYMBOL (Fcar (val));
+      if (SBYTES (SYMBOL_NAME (XCAR (val))) > 4)
+       error ("Invalid OTF GSUB feature: %s", SYMBOL_NAME (XCAR (val)));
+    }
+  otf_features = XCDR (otf_features);
+  for (val = Fcar (otf_features); ! NILP (val);  val = Fcdr (val))
+    {
+      CHECK_SYMBOL (Fcar (val));
+      if (SBYTES (SYMBOL_NAME (XCAR (val))) > 4)
+       error ("Invalid OTF GPOS feature: %s", SYMBOL_NAME (XCAR (val)));
+    }
+}
+
+#ifdef HAVE_LIBOTF
+#include <otf.h>
+
+Lisp_Object otf_list;
+
+static Lisp_Object
+otf_tag_symbol (tag)
+     OTF_Tag tag;
+{
+  char name[5];
+
+  OTF_tag_name (tag, name);
+  return Fintern (make_unibyte_string (name, 4), Qnil);
+}
+
+static OTF *
+otf_open (entity, file)
+     Lisp_Object entity;
+     char *file;
+{
+  Lisp_Object val = Fassoc (entity, otf_list);
+  OTF *otf;
+
+  if (! NILP (val))
+    otf = XSAVE_VALUE (XCDR (val))->pointer;
+  else
+    {
+      otf = file ? OTF_open (file) : NULL;
+      val = make_save_value (otf, 0);
+      otf_list = Fcons (Fcons (entity, val), otf_list);
+    }
+  return otf;
+}
+
+
+/* Return a list describing which scripts/languages FONT supports by
+   which GSUB/GPOS features of OpenType tables.  See the comment of
+   (sturct font_driver).otf_capability.  */
+
+Lisp_Object
+font_otf_capability (font)
+     struct font *font;
+{
+  OTF *otf;
+  Lisp_Object capability = Fcons (Qnil, Qnil);
+  int i;
+
+  otf = otf_open (font->entity, font->file_name);
+  if (! otf)
+    return Qnil;
+  for (i = 0; i < 2; i++)
+    {
+      OTF_GSUB_GPOS *gsub_gpos;
+      Lisp_Object script_list = Qnil;
+      int j;
+
+      if (OTF_get_features (otf, i == 0) < 0)
+       continue;
+      gsub_gpos = i == 0 ? otf->gsub : otf->gpos;
+      for (j = gsub_gpos->ScriptList.ScriptCount - 1; j >= 0; j--)
+       {
+         OTF_Script *script = gsub_gpos->ScriptList.Script + j;
+         Lisp_Object langsys_list = Qnil;
+         Lisp_Object script_tag = otf_tag_symbol (script->ScriptTag);
+         int k;
+
+         for (k = script->LangSysCount; k >= 0; k--)
+           {
+             OTF_LangSys *langsys;
+             Lisp_Object feature_list = Qnil;
+             Lisp_Object langsys_tag;
+             int l;
+
+             if (k == script->LangSysCount)
+               {
+                 langsys = &script->DefaultLangSys;
+                 langsys_tag = Qnil;
+               }
+             else
+               {
+                 langsys = script->LangSys + k;
+                 langsys_tag
+                   = otf_tag_symbol (script->LangSysRecord[k].LangSysTag);
+               }
+             for (l = langsys->FeatureCount - 1; l >= 0; l--)
+               {
+                 OTF_Feature *feature
+                   = gsub_gpos->FeatureList.Feature + langsys->FeatureIndex[l];
+                 Lisp_Object feature_tag
+                   = otf_tag_symbol (feature->FeatureTag);
+
+                 feature_list = Fcons (feature_tag, feature_list);
+               }
+             langsys_list = Fcons (Fcons (langsys_tag, feature_list),
+                                   langsys_list);
+           }
+         script_list = Fcons (Fcons (script_tag, langsys_list),
+                              script_list);
+       }
+
+      if (i == 0)
+       XSETCAR (capability, script_list);
+      else
+       XSETCDR (capability, script_list);
+    }
+
+  return capability;
+}
+
+/* Parse OTF features in SPEC and write a proper features spec string
+   in FEATURES for the call of OTF_drive_gsub/gpos (of libotf).  It is
+   assured that the sufficient memory has already allocated for
+   FEATURES.  */
+
+static void
+generate_otf_features (spec, features)
+     Lisp_Object spec;
+     char *features;
+{
+  Lisp_Object val;
+  char *p, *pend;
+  int asterisk;
+
+  p = features;
+  *p = '\0';
+  for (asterisk = 0; CONSP (spec); spec = XCDR (spec))
+    {
+      val = XCAR (spec);
+      CHECK_SYMBOL (val);
+      if (p > features)
+       *p++ = ',';
+      if (SREF (SYMBOL_NAME (val), 0) == '*')
+       {
+         asterisk = 1;
+         *p++ = '*';
+       }
+      else if (! asterisk)
+       {
+         val = SYMBOL_NAME (val);
+         p += sprintf (p, "%s", SDATA (val));
+       }
+      else
+       {
+         val = SYMBOL_NAME (val);
+         p += sprintf (p, "~%s", SDATA (val));
+       }
+    }
+  if (CONSP (spec))
+    error ("OTF spec too long");
+}
+
+
+Lisp_Object
+font_otf_DeviceTable (device_table)
+     OTF_DeviceTable *device_table;
+{
+  int len = device_table->StartSize - device_table->EndSize + 1;
+
+  return Fcons (make_number (len),
+               make_unibyte_string (device_table->DeltaValue, len));
+}
+
+Lisp_Object
+font_otf_ValueRecord (value_format, value_record)
+     int value_format;
+     OTF_ValueRecord *value_record;
+{
+  Lisp_Object val = Fmake_vector (make_number (8), Qnil);
+
+  if (value_format & OTF_XPlacement)
+    ASET (val, 0, value_record->XPlacement);
+  if (value_format & OTF_YPlacement)
+    ASET (val, 1, value_record->YPlacement);
+  if (value_format & OTF_XAdvance)
+    ASET (val, 2, value_record->XAdvance);
+  if (value_format & OTF_YAdvance)
+    ASET (val, 3, value_record->YAdvance);
+  if (value_format & OTF_XPlaDevice)
+    ASET (val, 4, font_otf_DeviceTable (&value_record->XPlaDevice));
+  if (value_format & OTF_YPlaDevice)
+    ASET (val, 4, font_otf_DeviceTable (&value_record->YPlaDevice));
+  if (value_format & OTF_XAdvDevice)
+    ASET (val, 4, font_otf_DeviceTable (&value_record->XAdvDevice));
+  if (value_format & OTF_YAdvDevice)
+    ASET (val, 4, font_otf_DeviceTable (&value_record->YAdvDevice));
+  return val;
+}
+
+Lisp_Object
+font_otf_Anchor (anchor)
+     OTF_Anchor *anchor;
+{
+  Lisp_Object val;
+
+  val = Fmake_vector (make_number (anchor->AnchorFormat + 1), Qnil);
+  ASET (val, 0, make_number (anchor->XCoordinate));
+  ASET (val, 1, make_number (anchor->YCoordinate));
+  if (anchor->AnchorFormat == 2)
+    ASET (val, 2, make_number (anchor->f.f1.AnchorPoint));
+  else
+    {
+      ASET (val, 3, font_otf_DeviceTable (&anchor->f.f2.XDeviceTable));
+      ASET (val, 4, font_otf_DeviceTable (&anchor->f.f2.YDeviceTable));
+    }
+  return val;
+}
+
+#endif /* HAVE_LIBOTF */
+
+/* G-string (glyph string) handler */
+
+/* G-string is a vector of the form [HEADER GLYPH ...].
+   See the docstring of `font-make-gstring' for more detail.  */
+
+struct font *
+font_prepare_composition (cmp, f)
+     struct composition *cmp;
+     FRAME_PTR f;
+{
+  Lisp_Object gstring
+    = AREF (XHASH_TABLE (composition_hash_table)->key_and_value,
+           cmp->hash_index * 2);
+
+  cmp->font = XSAVE_VALUE (LGSTRING_FONT (gstring))->pointer;
+  cmp->glyph_len = LGSTRING_LENGTH (gstring);
+  cmp->pixel_width = LGSTRING_WIDTH (gstring);
+  cmp->lbearing = LGSTRING_LBEARING (gstring);
+  cmp->rbearing = LGSTRING_RBEARING (gstring);
+  cmp->ascent = LGSTRING_ASCENT (gstring);
+  cmp->descent = LGSTRING_DESCENT (gstring);
+  cmp->width = cmp->pixel_width / FRAME_COLUMN_WIDTH (f);
+  if (cmp->width == 0)
+    cmp->width = 1;
+
+  return cmp->font;
+}
+
+\f
+/* Font sorting */
+
+static unsigned font_score P_ ((Lisp_Object, Lisp_Object *));
+static int font_compare P_ ((const void *, const void *));
+static Lisp_Object font_sort_entites P_ ((Lisp_Object, Lisp_Object,
+                                         Lisp_Object, Lisp_Object));
+
+/* We sort fonts by scoring each of them against a specified
+   font-spec.  The score value is 32 bit (`unsigned'), and the smaller
+   the value is, the closer the font is to the font-spec.
+
+   Each 1-bit of the highest 4 bits of the score is used for atomic
+   properties FOUNDRY, FAMILY, ADSTYLE, and REGISTRY.
+
+   Each 7-bit in the lowest 28 bits are used for numeric properties
+   WEIGHT, SLANT, WIDTH, and SIZE.  */
+
+/* How many bits to shift to store the difference value of each font
+   property in a score.  */
+static int sort_shift_bits[FONT_SIZE_INDEX + 1];
+
+/* Score font-entity ENTITY against properties of font-spec SPEC_PROP.
+   The return value indicates how different ENTITY is compared with
+   SPEC_PROP.  */
+
+static unsigned
+font_score (entity, spec_prop)
+     Lisp_Object entity, *spec_prop;
+{
+  unsigned score = 0;
+  int i;
+  /* Score four atomic fields.  Maximum difference is 1. */
+  for (i = FONT_FOUNDRY_INDEX; i <= FONT_REGISTRY_INDEX; i++)
+    if (! NILP (spec_prop[i])
+       && ! EQ (spec_prop[i], AREF (entity, i)))
+      score |= 1 << sort_shift_bits[i];
+
+  /* Score four numeric fields.  Maximum difference is 127. */
+  for (i = FONT_WEIGHT_INDEX; i <= FONT_SIZE_INDEX; i++)
+    {
+      Lisp_Object entity_val = AREF (entity, i);
+      Lisp_Object spec_val = spec_prop[i];
+
+      /* If weight and slant are unspecified, score normal lower (low wins). */
+      if (NILP (spec_val))
+        {
+          if (i == FONT_WEIGHT_INDEX || i == FONT_SLANT_INDEX)
+            spec_val = prop_name_to_numeric (i, build_string ("normal"));
+        }
+
+      if (! NILP (spec_val) && ! EQ (spec_val, entity_val))
+       {
+         if (! INTEGERP (entity_val))
+           score |= 127 << sort_shift_bits[i];
+         else
+           {
+             int diff = XINT (entity_val) - XINT (spec_val);
+
+             if (diff < 0)
+               diff = - diff;
+             if (i == FONT_SIZE_INDEX)
+               {
+                 if (XINT (entity_val) > 0
+                     && diff > FONT_PIXEL_SIZE_QUANTUM)
+                   score |= min (diff, 127) << sort_shift_bits[i];
+               }
+#ifdef WINDOWSNT
+              else if (i == FONT_WEIGHT_INDEX)
+                {
+                  /* Windows uses a much wider range for weight (100-900)
+                     compared with freetype (0-210), so scale down the
+                     difference.  A more general way of doing this
+                     would be to look up the values of regular and bold
+                     and/or light and calculate the scale factor from them,
+                     but the lookup would be expensive, and if only Windows
+                     needs it, not worth the effort.  */
+                  score |= min (diff / 4, 127) << sort_shift_bits[i];
+                }
+#endif
+             else
+               score |= min (diff, 127) << sort_shift_bits[i];
+           }
+       }
+    }
+
+  return score;
+}
+
+
+/* The comparison function for qsort.  */
+
+static int
+font_compare (d1, d2)
+     const void *d1, *d2;
+{
+  return (*(unsigned *) d1 < *(unsigned *) d2
+         ? -1 : *(unsigned *) d1 > *(unsigned *) d2);
+}
+
+
+/* The structure for elements being sorted by qsort.  */
+struct font_sort_data
+{
+  unsigned score;
+  Lisp_Object entity;
+};
+
+
+/* Sort font-entities in vector VEC by closeness to font-spec PREFER.
+   If PREFER specifies a point-size, calculate the corresponding
+   pixel-size from QCdpi property of PREFER or from the Y-resolution
+   of FRAME before sorting.  If SPEC is not nil, it is a font-spec to
+   get the font-entities in VEC.  */
+
+static Lisp_Object
+font_sort_entites (vec, prefer, frame, spec)
+     Lisp_Object vec, prefer, frame, spec;
+{
+  Lisp_Object prefer_prop[FONT_SPEC_MAX];
+  int len, i;
+  struct font_sort_data *data;
+  USE_SAFE_ALLOCA;
+
+  len = ASIZE (vec);
+  if (len <= 1)
+    return vec;
+
+  for (i = FONT_FOUNDRY_INDEX; i <= FONT_SIZE_INDEX; i++)
+    prefer_prop[i] = AREF (prefer, i);
+
+  if (! NILP (spec))
+    {
+      /* As it is assured that all fonts in VEC match with SPEC, we
+        should ignore properties specified in SPEC.  So, set the
+        corresponding properties in PREFER_PROP to nil. */
+      for (i = FONT_WEIGHT_INDEX; i <= FONT_SIZE_INDEX; i++)
+       if (! NILP (AREF (spec, i)))
+         prefer_prop[i++] = Qnil;
+    }
+
+  if (FLOATP (prefer_prop[FONT_SIZE_INDEX]))
+    prefer_prop[FONT_SIZE_INDEX]
+      = make_number (font_pixel_size (XFRAME (frame), prefer));
+
+  /* Scoring and sorting.  */
+  SAFE_ALLOCA (data, struct font_sort_data *, (sizeof *data) * len);
+  for (i = 0; i < len; i++)
+    {
+      data[i].entity = AREF (vec, i);
+      data[i].score = font_score (data[i].entity, prefer_prop);
+    }
+  qsort (data, len, sizeof *data, font_compare);
+  for (i = 0; i < len; i++)
+    ASET (vec, i, data[i].entity);
+  SAFE_FREE ();
+
+  return vec;
+}
+
+\f
+/* API of Font Service Layer.  */
+
+/* Reflect ORDER (see the variable font_sort_order in xfaces.c) to
+   sort_shift_bits.  Finternal_set_font_selection_order calls this
+   function with font_sort_order after setting up it.  */
+
+void
+font_update_sort_order (order)
+     int *order;
+{
+  int i, shift_bits = 21;
+
+  for (i = 0; i < 4; i++, shift_bits -= 7)
+    {
+      int xlfd_idx = order[i];
+
+      if (xlfd_idx == XLFD_WEIGHT_INDEX)
+       sort_shift_bits[FONT_WEIGHT_INDEX] = shift_bits;
+      else if (xlfd_idx == XLFD_SLANT_INDEX)
+       sort_shift_bits[FONT_SLANT_INDEX] = shift_bits;
+      else if (xlfd_idx == XLFD_SWIDTH_INDEX)
+       sort_shift_bits[FONT_WIDTH_INDEX] = shift_bits;
+      else
+       sort_shift_bits[FONT_SIZE_INDEX] = shift_bits;
+    }
+}
+
+
+/* Return weight property of FONT as symbol.  */
+
+Lisp_Object
+font_symbolic_weight (font)
+     Lisp_Object font;
+{
+  Lisp_Object weight = AREF (font, FONT_WEIGHT_INDEX);
+
+  if (INTEGERP (weight))
+    weight = prop_numeric_to_name (FONT_WEIGHT_INDEX, XINT (weight));
+  return weight;
+}
+
+
+/* Return slant property of FONT as symbol.  */
+
+Lisp_Object
+font_symbolic_slant (font)
+     Lisp_Object font;
+{
+  Lisp_Object slant = AREF (font, FONT_SLANT_INDEX);
+
+  if (INTEGERP (slant))
+    slant = prop_numeric_to_name (FONT_SLANT_INDEX, XINT (slant));
+  return slant;
+}
+
+
+/* Return width property of FONT as symbol.  */
+
+Lisp_Object
+font_symbolic_width (font)
+     Lisp_Object font;
+{
+  Lisp_Object width = AREF (font, FONT_WIDTH_INDEX);
+
+  if (INTEGERP (width))
+    width = prop_numeric_to_name (FONT_WIDTH_INDEX, XINT (width));
+  return width;
+}
+
+
+/* Check if ENTITY matches with the font specification SPEC.  */
+
+int
+font_match_p (spec, entity)
+     Lisp_Object spec, entity;
+{
+  int i;
+
+  for (i = FONT_FOUNDRY_INDEX; i < FONT_SIZE_INDEX; i++)
+    if (! NILP (AREF (spec, i))
+       && ! EQ (AREF (spec, i), AREF (entity, i)))
+      return 0;
+  if (INTEGERP (AREF (spec, FONT_SIZE_INDEX))
+      && XINT (AREF (entity, FONT_SIZE_INDEX)) > 0
+      && (XINT (AREF (spec, FONT_SIZE_INDEX))
+         != XINT (AREF (entity, FONT_SIZE_INDEX))))
+    return 0;
+  return 1;
+}
+
+
+/* Return a lispy font object corresponding to FONT.  */
+
+Lisp_Object
+font_find_object (font)
+     struct font *font;
+{
+  Lisp_Object tail, elt;
+
+  for (tail = AREF (font->entity, FONT_OBJLIST_INDEX); CONSP (tail);
+       tail = XCDR (tail))
+    {
+      elt = XCAR (tail);
+      if (font == XSAVE_VALUE (elt)->pointer
+         && XSAVE_VALUE (elt)->integer > 0)
+       return elt;
+    }
+  abort ();
+  return Qnil;
+}
+
+\f
+/* Font cache
+
+   Each font backend has the callback function get_cache, and it
+   returns a cons cell of which cdr part can be freely used for
+   caching fonts.  The cons cell may be shared by multiple frames
+   and/or multiple font drivers.  So, we arrange the cdr part as this:
+
+       ((DRIVER-TYPE NUM-FRAMES FONT-CACHE-DATA ...) ...)
+
+   where DRIVER-TYPE is a symbol such as `x', `xft', etc., NUM-FRAMES
+   is a number frames sharing this cache, and FONT-CACHE-DATA is a
+   cons (FONT-SPEC FONT-ENTITY ...).  */
+
+static void font_prepare_cache P_ ((FRAME_PTR, struct font_driver *));
+static void font_finish_cache P_ ((FRAME_PTR, struct font_driver *));
+static Lisp_Object font_get_cache P_ ((FRAME_PTR, struct font_driver *));
+static void font_clear_cache P_ ((FRAME_PTR, Lisp_Object,
+                                 struct font_driver *));
+
+static void
+font_prepare_cache (f, driver)
+     FRAME_PTR f;
+     struct font_driver *driver;
+{
+  Lisp_Object cache, val;
+
+  cache = driver->get_cache (f);
+  val = XCDR (cache);
+  while (CONSP (val) && ! EQ (XCAR (XCAR (val)), driver->type))
+    val = XCDR (val);
+  if (NILP (val))
+    {
+      val = Fcons (driver->type, Fcons (make_number (1), Qnil));
+      XSETCDR (cache, Fcons (val, XCDR (cache)));
+    }
+  else
+    {
+      val = XCDR (XCAR (val));
+      XSETCAR (val, make_number (XINT (XCAR (val)) + 1));
+    }
+}
+
+static void
+font_finish_cache (f, driver)
+     FRAME_PTR f;
+     struct font_driver *driver;
+{
+  Lisp_Object cache, val, tmp;
+
+
+  cache = driver->get_cache (f);
+  val = XCDR (cache);
+  while (CONSP (val) && ! EQ (XCAR (XCAR (val)), driver->type))
+    cache = val, val = XCDR (val);
+  xassert (! NILP (val));
+  tmp = XCDR (XCAR (val));
+  if (XINT (XCAR (tmp)) == 0)
+    {
+      font_clear_cache (f, XCAR (val), driver);
+      XSETCDR (cache, XCDR (val));
+    }
+  else
+    {
+      XSETCAR (tmp, make_number (XINT (XCAR (tmp)) - 1));
+    }
+}
+
+static Lisp_Object
+font_get_cache (f, driver)
+     FRAME_PTR f;
+     struct font_driver *driver;
+{
+  Lisp_Object val = driver->get_cache (f);
+  Lisp_Object type = driver->type;
+
+  xassert (CONSP (val));
+  for (val = XCDR (val); ! EQ (XCAR (XCAR (val)), type); val = XCDR (val));
+  xassert (CONSP (val));
+  /* VAL = ((DRIVER-TYPE NUM-FRAMES FONT-CACHE-DATA ...) ...) */
+  val = XCDR (XCAR (val));
+  return val;
+}
+
+static void
+font_clear_cache (f, cache, driver)
+     FRAME_PTR f;
+     Lisp_Object cache;
+     struct font_driver *driver;
+{
+  Lisp_Object tail, elt;
+           
+  /* CACHE = (DRIVER-TYPE NUM-FRAMES FONT-CACHE-DATA ...) */
+  for (tail = XCDR (XCDR (cache)); CONSP (tail); tail = XCDR (tail))
+    {
+      elt = XCAR (tail);
+      if (CONSP (elt) && FONT_SPEC_P (XCAR (elt)))
+       {
+         Lisp_Object vec = XCDR (elt);
+         int i;
+
+         for (i = 0; i < ASIZE (vec); i++)
+           {
+             Lisp_Object entity = AREF (vec, i);
+
+             if (EQ (driver->type, AREF (entity, FONT_TYPE_INDEX)))
+               {
+                 Lisp_Object objlist = AREF (entity, FONT_OBJLIST_INDEX);
+
+                 for (; CONSP (objlist); objlist = XCDR (objlist))
+                   {
+                     Lisp_Object val = XCAR (objlist);
+                     struct Lisp_Save_Value *p = XSAVE_VALUE (val);
+                     struct font *font = p->pointer;
+
+                     xassert (font && driver == font->driver);
+                     driver->close (f, font);
+                     p->pointer = NULL;
+                     p->integer = 0;
+                   }
+                 if (driver->free_entity)
+                   driver->free_entity (entity);
+               }
+           }
+       }
+    }
+  XSETCDR (cache, Qnil);
+}
+\f
+
+static Lisp_Object scratch_font_spec, scratch_font_prefer;
+
+
+/* Return a vector of font-entities matching with SPEC on frame F.  */
+
+static Lisp_Object
+font_list_entities (frame, spec)
+     Lisp_Object frame, spec;
+{
+  FRAME_PTR f = XFRAME (frame);
+  struct font_driver_list *driver_list = f->font_driver_list;
+  Lisp_Object ftype, family, size, alternate_familes;
+  Lisp_Object *vec = alloca (sizeof (Lisp_Object) * num_font_drivers);
+  int i;
+
+  if (! vec)
+    return null_vector;
+
+  family = AREF (spec, FONT_FAMILY_INDEX);
+  if (NILP (family))
+    alternate_familes = Qnil;
+  else
+    {
+      if (NILP (font_family_alist)
+         && !NILP (Vface_alternative_font_family_alist))
+       build_font_family_alist ();
+      alternate_familes = assq_no_quit (family, font_family_alist);
+      if (! NILP (alternate_familes))
+       alternate_familes = XCDR (alternate_familes);
+    }
+  size = AREF (spec, FONT_SIZE_INDEX);
+  if (FLOATP (size))
+    ASET (spec, FONT_SIZE_INDEX, make_number (font_pixel_size (f, spec)));
+
+  xassert (ASIZE (spec) == FONT_SPEC_MAX);
+  ftype = AREF (spec, FONT_TYPE_INDEX);
+  
+  for (i = 0; driver_list; driver_list = driver_list->next)
+    if (driver_list->on
+       && (NILP (ftype) || EQ (driver_list->driver->type, ftype)))
+      {
+       Lisp_Object cache = font_get_cache (f, driver_list->driver);
+       Lisp_Object tail = alternate_familes;
+
+       ASET (spec, FONT_TYPE_INDEX, driver_list->driver->type);
+       ASET (spec, FONT_FAMILY_INDEX, family);
+
+       while (1)
+         {
+           Lisp_Object val = assoc_no_quit (spec, XCDR (cache));
+
+           if (CONSP (val))
+             val = XCDR (val);
+           else
+             {
+               val = driver_list->driver->list (frame, spec);
+               if (VECTORP (val))
+                 XSETCDR (cache, Fcons (Fcons (Fcopy_sequence (spec), val),
+                                        XCDR (cache)));
+             }
+           if (VECTORP (val) && ASIZE (val) > 0)
+             {
+               vec[i++] = val;
+               break;
+             }
+           if (NILP (tail))
+             break;
+           ASET (spec, FONT_FAMILY_INDEX, XCAR (tail));
+           tail = XCDR (tail);
+         }
+      }
+  ASET (spec, FONT_TYPE_INDEX, ftype);
+  ASET (spec, FONT_FAMILY_INDEX, family);
+  ASET (spec, FONT_SIZE_INDEX, size);
+  return (i > 0 ? Fvconcat (i, vec) : null_vector);
+}
+
+
+/* Return a font entity matching with SPEC on FRAME.  */
+
+static Lisp_Object
+font_matching_entity (frame, spec)
+     Lisp_Object frame, spec;
+{
+  FRAME_PTR f = XFRAME (frame);
+  struct font_driver_list *driver_list = f->font_driver_list;
+  Lisp_Object ftype, size, entity;
+
+  ftype = AREF (spec, FONT_TYPE_INDEX);
+  size = AREF (spec, FONT_SIZE_INDEX);
+  if (FLOATP (size))
+    ASET (spec, FONT_SIZE_INDEX, make_number (font_pixel_size (f, spec)));
+  entity = Qnil;
+  for (; driver_list; driver_list = driver_list->next)
+    if (driver_list->on
+       && (NILP (ftype) || EQ (driver_list->driver->type, ftype)))
+      {
+       Lisp_Object cache = font_get_cache (f, driver_list->driver);
+       Lisp_Object key;
+
+       ASET (spec, FONT_TYPE_INDEX, driver_list->driver->type);
+       key = Fcons (spec, Qnil);
+       entity = assoc_no_quit (key, XCDR (cache));
+       if (CONSP (entity))
+         entity = XCDR (entity);
+       else
+         {
+           entity = driver_list->driver->match (frame, spec);
+           if (! NILP (entity))
+             {
+               XSETCAR (key, Fcopy_sequence (spec));
+               XSETCDR (cache, Fcons (Fcons (key, entity), XCDR (cache)));
+             }
+         }
+       if (! NILP (entity))
+         break;
+      }
+  ASET (spec, FONT_TYPE_INDEX, ftype);
+  ASET (spec, FONT_SIZE_INDEX, size);
+  return entity;
+}
+
+static int num_fonts;
+
+
+/* Open a font of ENTITY and PIXEL_SIZE on frame F, and return the
+   opened font object.  */
+
+static Lisp_Object
+font_open_entity (f, entity, pixel_size)
+     FRAME_PTR f;
+     Lisp_Object entity;
+     int pixel_size;
+{
+  struct font_driver_list *driver_list;
+  Lisp_Object objlist, size, val;
+  struct font *font;
+
+  size = AREF (entity, FONT_SIZE_INDEX);
+  xassert (NATNUMP (size));
+  if (XINT (size) != 0)
+    pixel_size = XINT (size);
+
+  for (objlist = AREF (entity, FONT_OBJLIST_INDEX); CONSP (objlist);
+       objlist = XCDR (objlist))
+    {
+      font = XSAVE_VALUE (XCAR (objlist))->pointer;
+      if (font->pixel_size == pixel_size)
+       {
+         XSAVE_VALUE (XCAR (objlist))->integer++;
+         return XCAR (objlist);
+       }
+    }
+
+  xassert (FONT_ENTITY_P (entity));
+  val = AREF (entity, FONT_TYPE_INDEX);
+  for (driver_list = f->font_driver_list;
+       driver_list && ! EQ (driver_list->driver->type, val);
+       driver_list = driver_list->next);
+  if (! driver_list)
+    return Qnil;
+
+  font = driver_list->driver->open (f, entity, pixel_size);
+  if (! font)
+    return Qnil;
+  font->scalable = XINT (size) == 0;
+
+  val = make_save_value (font, 1);
+  ASET (entity, FONT_OBJLIST_INDEX,
+       Fcons (val, AREF (entity, FONT_OBJLIST_INDEX)));
+  num_fonts++;
+  return val;
+}
+
+
+/* Close FONT_OBJECT that is opened on frame F.  */
+
+void
+font_close_object (f, font_object)
+     FRAME_PTR f;
+     Lisp_Object font_object;
+{
+  struct font *font = XSAVE_VALUE (font_object)->pointer;
+  Lisp_Object objlist;
+  Lisp_Object tail, prev = Qnil;
+
+  XSAVE_VALUE (font_object)->integer--;
+  xassert (XSAVE_VALUE (font_object)->integer >= 0);
+  if (XSAVE_VALUE (font_object)->integer > 0)
+    return;
+
+  objlist = AREF (font->entity, FONT_OBJLIST_INDEX);
+  for (prev = Qnil, tail = objlist; CONSP (tail);
+       prev = tail, tail = XCDR (tail))
+    if (EQ (font_object, XCAR (tail)))
+      {
+       if (font->driver->close)
+         font->driver->close (f, font);
+       XSAVE_VALUE (font_object)->pointer = NULL;
+       if (NILP (prev))
+         ASET (font->entity, FONT_OBJLIST_INDEX, XCDR (objlist));
+       else
+         XSETCDR (prev, XCDR (objlist));
+       return;
+      }
+  abort ();
+}
+
+
+/* Return 1 if FONT on F has a glyph for character C, 0 if not, -1 if
+   FONT is a font-entity and it must be opened to check.  */
+
+int
+font_has_char (f, font, c)
+     FRAME_PTR f;
+     Lisp_Object font;
+     int c;
+{
+  struct font *fontp;
+
+  if (FONT_ENTITY_P (font))
+    {
+      Lisp_Object type = AREF (font, FONT_TYPE_INDEX);
+      struct font_driver_list *driver_list;
+
+      for (driver_list = f->font_driver_list;
+          driver_list && ! EQ (driver_list->driver->type, type);
+          driver_list = driver_list->next);
+      if (! driver_list)
+       return 0;
+      if (! driver_list->driver->has_char)
+       return -1;
+      return driver_list->driver->has_char (font, c);
+    }
+
+  xassert (FONT_OBJECT_P (font));
+  fontp = XSAVE_VALUE (font)->pointer;
+
+  if (fontp->driver->has_char)
+    {
+      int result = fontp->driver->has_char (fontp->entity, c);
+
+      if (result >= 0)
+       return result;
+    }
+  return (fontp->driver->encode_char (fontp, c) != FONT_INVALID_CODE);
+}
+
+
+/* Return the glyph ID of FONT_OBJECT for character C.  */
+
+unsigned
+font_encode_char (font_object, c)
+     Lisp_Object font_object;
+     int c;
+{
+  struct font *font = XSAVE_VALUE (font_object)->pointer;
+
+  return font->driver->encode_char (font, c);
+}
+
+
+/* Return the name of FONT_OBJECT.  */
+
+Lisp_Object
+font_get_name (font_object)
+     Lisp_Object font_object;
+{
+  struct font *font = XSAVE_VALUE (font_object)->pointer;
+  char *name = (font->font.full_name ? font->font.full_name
+               : font->font.name ? font->font.name
+               : NULL);
+
+  return (name ? make_unibyte_string (name, strlen (name)) : null_string);
+}
+
+
+/* Return the specification of FONT_OBJECT.  */
+
+Lisp_Object
+font_get_spec (font_object)
+     Lisp_Object font_object;
+{
+  struct font *font = XSAVE_VALUE (font_object)->pointer;
+  Lisp_Object spec = Ffont_spec (0, NULL);
+  int i;
+
+  for (i = 0; i < FONT_SIZE_INDEX; i++)
+    ASET (spec, i, AREF (font->entity, i));
+  ASET (spec, FONT_SIZE_INDEX, make_number (font->pixel_size));
+  return spec;
+}
+
+
+/* Return the frame on which FONT exists.  FONT is a font object or a
+   font entity.  */
+
+Lisp_Object
+font_get_frame (font)
+     Lisp_Object font;
+{
+  if (FONT_OBJECT_P (font))
+    font = ((struct font *) XSAVE_VALUE (font)->pointer)->entity;
+  xassert (FONT_ENTITY_P (font));
+  return AREF (font, FONT_FRAME_INDEX);
+}
+
+
+/* Find a font entity best matching with LFACE.  If SPEC is non-nil,
+   the font must exactly match with it.  C, if not negative, is a
+   character that the entity must support.  */
+
+Lisp_Object
+font_find_for_lface (f, lface, spec, c)
+     FRAME_PTR f;
+     Lisp_Object *lface;
+     Lisp_Object spec;
+     int c;
+{
+  Lisp_Object frame, entities;
+  int i;
+
+  XSETFRAME (frame, f);
+
+  if (NILP (spec))
+    {
+      if (c >= 0x100)
+       return Qnil;
+      for (i = 0; i < FONT_SPEC_MAX; i++)
+       ASET (scratch_font_spec, i, Qnil);
+      ASET (scratch_font_spec, FONT_REGISTRY_INDEX, Qiso8859_1);
+
+      if (! NILP (lface[LFACE_FAMILY_INDEX]))
+       font_merge_old_spec (Qnil, lface[LFACE_FAMILY_INDEX], Qnil,
+                            scratch_font_spec);
+      entities = font_list_entities (frame, scratch_font_spec);
+      while (ASIZE (entities) == 0)
+       {
+         /* Try without FOUNDRY or FAMILY.  */
+         if (! NILP (AREF (scratch_font_spec, FONT_FOUNDRY_INDEX)))
+           {
+             ASET (scratch_font_spec, FONT_FOUNDRY_INDEX, Qnil);
+             entities = font_list_entities (frame, scratch_font_spec);
+           }
+         else if (! NILP (AREF (scratch_font_spec, FONT_FAMILY_INDEX)))
+           {
+             ASET (scratch_font_spec, FONT_FAMILY_INDEX, Qnil);
+             entities = font_list_entities (frame, scratch_font_spec);
+           }
+         else
+           break;
+       }
+    }
+  else
+    {
+      Lisp_Object registry = AREF (spec, FONT_REGISTRY_INDEX);
+
+      if (NILP (registry))
+       registry = Qiso8859_1;
+
+      if (c >= 0)
+       {
+         struct charset *repertory;
+
+         if (font_registry_charsets (registry, NULL, &repertory) < 0)
+           return Qnil;
+         if (repertory)
+           {
+             if (ENCODE_CHAR (repertory, c)
+                 == CHARSET_INVALID_CODE (repertory))
+               return Qnil;
+             /* Any font of this registry support C.  So, let's
+                suppress the further checking.  */
+             c = -1;
+           }
+         else if (c > MAX_UNICODE_CHAR)
+           return Qnil;
+       }
+      for (i = 0; i < FONT_SPEC_MAX; i++)
+       ASET (scratch_font_spec, i, AREF (spec, i));
+      ASET (scratch_font_spec, FONT_REGISTRY_INDEX, registry);
+      entities = font_list_entities (frame, scratch_font_spec);
+    }
+
+  if (ASIZE (entities) == 0)
+    return Qnil;
+  if (ASIZE (entities) > 1)
+    {
+      /* Sort fonts by properties specified in LFACE.  */
+      Lisp_Object prefer = scratch_font_prefer;
+      double pt;
+
+      if (! NILP (lface[LFACE_FAMILY_INDEX]))
+       font_merge_old_spec (Qnil, lface[LFACE_FAMILY_INDEX], Qnil, prefer);
+      ASET (prefer, FONT_WEIGHT_INDEX,
+           font_prop_validate_style (QCweight, lface[LFACE_WEIGHT_INDEX]));
+      ASET (prefer, FONT_SLANT_INDEX,
+           font_prop_validate_style (QCslant, lface[LFACE_SLANT_INDEX]));
+      ASET (prefer, FONT_WIDTH_INDEX,
+           font_prop_validate_style (QCwidth, lface[LFACE_SWIDTH_INDEX]));
+      pt = XINT (lface[LFACE_HEIGHT_INDEX]);
+      ASET (prefer, FONT_SIZE_INDEX, make_float (pt / 10));
+
+      font_sort_entites (entities, prefer, frame, spec);
+    }
+
+  if (c < 0)
+    return AREF (entities, 0);
+  for (i = 0; i < ASIZE (entities); i++)
+    {
+      int result = font_has_char (f, AREF (entities, i), c);
+      Lisp_Object font_object;
+
+      if (result > 0)
+       return AREF (entities, i);
+      if (result <= 0)
+       continue;
+      font_object = font_open_for_lface (f, AREF (entities, i), lface, spec);
+      if (NILP (font_object))
+       continue;
+      result = font_has_char (f, font_object, c);
+      font_close_object (f, font_object);
+      if (result > 0)
+       return AREF (entities, i);
+    }      
+  return Qnil;
+}
+
+
+Lisp_Object
+font_open_for_lface (f, entity, lface, spec)
+     FRAME_PTR f;
+     Lisp_Object entity;
+     Lisp_Object *lface;
+     Lisp_Object spec;
+{
+  int size;
+
+  if (FONT_SPEC_P (spec) && INTEGERP (AREF (spec, FONT_SIZE_INDEX)))
+    size = XINT (AREF (spec, FONT_SIZE_INDEX));
+  else
+    {
+      double pt = XINT (lface[LFACE_HEIGHT_INDEX]);
+
+      pt /= 10;
+      size = POINT_TO_PIXEL (pt, f->resy);
+    }
+  return font_open_entity (f, entity, size);
+}
+
+
+/* Load a font best matching with FACE's font-related properties into
+   FACE on frame F.  If no proper font is found, record that FACE has
+   no font.  */
+
+void
+font_load_for_face (f, face)
+     FRAME_PTR f;
+     struct face *face;
+{
+  Lisp_Object font_object = face->lface[LFACE_FONT_INDEX];
+
+  if (NILP (font_object))
+    {
+      Lisp_Object entity = font_find_for_lface (f, face->lface, Qnil, -1);
+
+      if (! NILP (entity))
+       font_object = font_open_for_lface (f, entity, face->lface, Qnil);
+    }
+
+  if (! NILP (font_object))
+    {
+      struct font *font = XSAVE_VALUE (font_object)->pointer;
+
+      face->font = font->font.font;
+      face->font_info = (struct font_info *) font;
+      face->font_info_id = 0;
+      face->font_name = font->font.full_name;
+    }
+  else
+    {
+      face->font = NULL;
+      face->font_info = NULL;
+      face->font_info_id = -1;
+      face->font_name = NULL;
+      add_to_log ("Unable to load font for a face%s", null_string, Qnil);
+    }
+}
+
+
+/* Make FACE on frame F ready to use the font opened for FACE.  */
+
+void
+font_prepare_for_face (f, face)
+     FRAME_PTR f;
+     struct face *face;
+{
+  struct font *font = (struct font *) face->font_info;
+
+  if (font->driver->prepare_face)
+    font->driver->prepare_face (f, face);
+}
+
+
+/* Make FACE on frame F stop using the font opened for FACE.  */
+
+void
+font_done_for_face (f, face)
+     FRAME_PTR f;
+     struct face *face;
+{
+  struct font *font = (struct font *) face->font_info;
+
+  if (font->driver->done_face)
+    font->driver->done_face (f, face);
+  face->extra = NULL;
+}
+
+
+/* Open a font best matching with NAME on frame F.  If no proper font
+   is found, return Qnil.  */
+
+Lisp_Object
+font_open_by_name (f, name)
+     FRAME_PTR f;
+     char *name;
+{
+  Lisp_Object args[2];
+  Lisp_Object spec, prefer, size, entity, entity_list;
+  Lisp_Object frame;
+  int i;
+  int pixel_size;
+
+  XSETFRAME (frame, f);
+
+  args[0] = QCname;
+  args[1] = make_unibyte_string (name, strlen (name));
+  spec = Ffont_spec (2, args);
+  prefer = scratch_font_prefer;
+  for (i = FONT_WEIGHT_INDEX; i < FONT_SIZE_INDEX; i++)
+    if (NILP (AREF (spec, i)))
+      ASET (prefer, i, make_number (100));
+  size = AREF (spec, FONT_SIZE_INDEX);
+  if (NILP (size))
+    pixel_size = 0;
+  else if (INTEGERP (size))
+    pixel_size = XINT (size);
+  else                         /* FLOATP (size) */
+    {
+      double pt = XFLOAT_DATA (size);
+
+      pixel_size = POINT_TO_PIXEL (pt, f->resy);
+      size = make_number (pixel_size);
+      ASET (spec, FONT_SIZE_INDEX, size);
+    }
+  if (pixel_size == 0)
+    {
+      pixel_size = POINT_TO_PIXEL (12.0, f->resy);
+      size = make_number (pixel_size);
+    }
+  ASET (prefer, FONT_SIZE_INDEX, size);
+  if (NILP (AREF (spec, FONT_REGISTRY_INDEX)))
+    ASET (spec, FONT_REGISTRY_INDEX, Qiso8859_1);
+
+  entity_list = Flist_fonts (spec, frame, make_number (1), prefer);
+  if (NILP (entity_list))
+    entity = font_matching_entity (frame, spec);
+  else
+    entity = XCAR (entity_list);
+  return (NILP (entity)
+         ? Qnil
+         : font_open_entity (f, entity, pixel_size));
+}
+
+
+/* Register font-driver DRIVER.  This function is used in two ways.
+
+   The first is with frame F non-NULL.  In this case, make DRIVER
+   available (but not yet activated) on F.  All frame creaters
+   (e.g. Fx_create_frame) must call this function at least once with
+   an available font-driver.
+
+   The second is with frame F NULL.  In this case, DRIVER is globally
+   registered in the variable `font_driver_list'.  All font-driver
+   implementations must call this function in its syms_of_XXXX
+   (e.g. syms_of_xfont).  */
+
+void
+register_font_driver (driver, f)
+     struct font_driver *driver;
+     FRAME_PTR f;
+{
+  struct font_driver_list *root = f ? f->font_driver_list : font_driver_list;
+  struct font_driver_list *prev, *list;
+
+  if (f && ! driver->draw)
+    error ("Unsable font driver for a frame: %s",
+          SDATA (SYMBOL_NAME (driver->type)));
+
+  for (prev = NULL, list = root; list; prev = list, list = list->next)
+    if (EQ (list->driver->type, driver->type))
+      error ("Duplicated font driver: %s", SDATA (SYMBOL_NAME (driver->type)));
+
+  list = malloc (sizeof (struct font_driver_list));
+  list->on = 0;
+  list->driver = driver;
+  list->next = NULL;
+  if (prev)
+    prev->next = list;
+  else if (f)
+    f->font_driver_list = list;
+  else
+    font_driver_list = list;
+  num_font_drivers++;
+}
+
+
+/* Free font-driver list on frame F.  It doesn't free font-drivers
+   themselves.  */
+
+void
+free_font_driver_list (f)
+     FRAME_PTR f;
+{
+  while (f->font_driver_list)
+    {
+      struct font_driver_list *next = f->font_driver_list->next;
+
+      free (f->font_driver_list);
+      f->font_driver_list = next;
+    }
+}
+
+
+/* Make the frame F use font backends listed in NEW_DRIVERS (list of
+   symbols, e.g. xft, x).  If NEW_DRIVERS is t, make F use all
+   available font drivers.  If NEW_DRIVERS is nil, finalize all drivers.
+
+   A caller must free all realized faces if any in advance.  The
+   return value is a list of font backends actually made used on
+   F.  */
+
+Lisp_Object
+font_update_drivers (f, new_drivers)
+     FRAME_PTR f;
+     Lisp_Object new_drivers;
+{
+  Lisp_Object active_drivers = Qnil;
+  struct font_driver_list *list;
+
+  for (list = f->font_driver_list; list; list = list->next)
+    if (list->on)
+      {
+       if (! EQ (new_drivers, Qt)
+           && NILP (Fmemq (list->driver->type, new_drivers)))
+         {
+           if (list->driver->end_for_frame)
+             list->driver->end_for_frame (f);
+           font_finish_cache (f, list->driver);
+           list->on = 0;
+         }
+      }
+    else
+      {
+       if (EQ (new_drivers, Qt)
+           || ! NILP (Fmemq (list->driver->type, new_drivers)))
+         {
+           if (! list->driver->start_for_frame
+               || list->driver->start_for_frame (f) == 0)
+             {
+               font_prepare_cache (f, list->driver);
+               list->on = 1;
+               active_drivers = nconc2 (active_drivers,
+                                        Fcons (list->driver->type, Qnil));
+             }
+         }
+      }
+
+  return active_drivers;
+}
+
+int
+font_put_frame_data (f, driver, data)
+     FRAME_PTR f;
+     struct font_driver *driver;
+     void *data;
+{
+  struct font_data_list *list, *prev;
+
+  for (prev = NULL, list = f->font_data_list; list;
+       prev = list, list = list->next)
+    if (list->driver == driver)
+      break;
+  if (! data)
+    {
+      if (list)
+       {
+         if (prev)
+           prev->next = list->next;
+         else
+           f->font_data_list = list->next;
+         free (list);
+       }
+      return 0;
+    }
+
+  if (! list)
+    {
+      list = malloc (sizeof (struct font_data_list));
+      if (! list)
+       return -1;
+      list->driver = driver;
+      list->next = f->font_data_list;
+      f->font_data_list = list;
+    }
+  list->data = data;
+  return 0;
+}
+
+
+void *
+font_get_frame_data (f, driver)
+     FRAME_PTR f;
+     struct font_driver *driver;
+{
+  struct font_data_list *list;
+
+  for (list = f->font_data_list; list; list = list->next)
+    if (list->driver == driver)
+      break;
+  if (! list)
+    return NULL;
+  return list->data;
+}
+
+
+/* Return the font used to draw character C by FACE at buffer position
+   POS in window W.  If STRING is non-nil, it is a string containing C
+   at index POS.  If C is negative, get C from the current buffer or
+   STRING.  */
+
+Lisp_Object
+font_at (c, pos, face, w, string)
+     int c;
+     EMACS_INT pos;
+     struct face *face;
+     struct window *w;
+     Lisp_Object string;
+{
+  FRAME_PTR f;
+  int multibyte;
+
+  if (c < 0)
+    {
+      if (NILP (string))
+       {
+         multibyte = ! NILP (current_buffer->enable_multibyte_characters);
+         if (multibyte)
+           {
+             EMACS_INT pos_byte = CHAR_TO_BYTE (pos);
+
+             c = FETCH_CHAR (pos_byte);
+           }
+         else
+           c = FETCH_BYTE (pos);
+       }
+      else
+       {
+         unsigned char *str;
+
+         multibyte = STRING_MULTIBYTE (string);
+         if (multibyte)
+           {
+             EMACS_INT pos_byte = string_char_to_byte (string, pos);
+
+             str = SDATA (string) + pos_byte;
+             c = STRING_CHAR (str, 0);
+           }
+         else
+           c = SDATA (string)[pos];
+       }
+    }
+
+  f = XFRAME (w->frame);
+  if (! FRAME_WINDOW_P (f))
+    return Qnil;
+  if (! face)
+    {
+      int face_id;
+      int endptr;
+
+      if (STRINGP (string))
+       face_id = face_at_string_position (w, string, pos, 0, -1, -1, &endptr,
+                                          DEFAULT_FACE_ID, 0);
+      else
+       face_id = face_at_buffer_position (w, pos, -1, -1, &endptr,
+                                          pos + 100, 0);
+      face = FACE_FROM_ID (f, face_id);
+    }
+  if (multibyte)
+    {
+      int face_id = FACE_FOR_CHAR (f, face, c, pos, string);
+      face = FACE_FROM_ID (f, face_id);
+    }
+  if (! face->font_info)
+    return Qnil;
+  return font_find_object ((struct font *) face->font_info);
+}
+
+\f
+/* Lisp API */
+
+DEFUN ("fontp", Ffontp, Sfontp, 1, 1, 0,
+       doc: /* Return t if OBJECT is a font-spec or font-entity.
+Return nil otherwise.  */)
+     (object)
+     Lisp_Object object;
+{
+  return (FONTP (object) ? Qt : Qnil);
+}
+
+DEFUN ("font-spec", Ffont_spec, Sfont_spec, 0, MANY, 0,
+       doc: /* Return a newly created font-spec with arguments as properties.
+
+ARGS must come in pairs KEY VALUE of font properties.  KEY must be a
+valid font property name listed below:
+
+`:family', `:weight', `:slant', `:width'
+
+They are the same as face attributes of the same name.  See
+`set-face-attribute.
+
+`:foundry'
+
+VALUE must be a string or a symbol specifying the font foundry, e.g. ``misc''.
+
+`:adstyle'
+
+VALUE must be a string or a symbol specifying the additional
+typographic style information of a font, e.g. ``sans''.  Usually null.
+
+`:registry'
+
+VALUE must be a string or a symbol specifying the charset registry and
+encoding of a font, e.g. ``iso8859-1''.
+
+`:size'
+
+VALUE must be a non-negative integer or a floating point number
+specifying the font size.  It specifies the font size in 1/10 pixels
+(if VALUE is an integer), or in points (if VALUE is a float).
+usage: (font-spec ARGS ...)  */)
+     (nargs, args)
+     int nargs;
+     Lisp_Object *args;
+{
+  Lisp_Object spec = Fmake_vector (make_number (FONT_SPEC_MAX), Qnil);
+  int i;
+
+  for (i = 0; i < nargs; i += 2)
+    {
+      enum font_property_index prop;
+      Lisp_Object key = args[i], val = args[i + 1];
+
+      prop = get_font_prop_index (key, 0);
+      if (prop < FONT_EXTRA_INDEX)
+       ASET (spec, prop, val);
+      else
+       {
+         if (EQ (key, QCname))
+           {
+             CHECK_STRING (val);
+             font_parse_name ((char *) SDATA (val), spec);
+           }
+         font_put_extra (spec, key, val);
+       }
+    }
+  CHECK_VALIDATE_FONT_SPEC (spec);
+  return spec;
+}
+
+
+DEFUN ("font-get", Ffont_get, Sfont_get, 2, 2, 0,
+       doc: /* Return the value of FONT's property KEY.
+FONT is a font-spec, a font-entity, or a font-object.  */)
+     (font, key)
+     Lisp_Object font, key;
+{
+  enum font_property_index idx;
+
+  if (FONT_OBJECT_P (font))
+    {
+      struct font *fontp = XSAVE_VALUE (font)->pointer;
+
+      if (EQ (key, QCotf))
+       {
+          if (fontp->driver->otf_capability)
+            return fontp->driver->otf_capability (fontp);
+          else
+            return Qnil;
+       }
+      font = fontp->entity;
+    }
+  else
+    CHECK_FONT (font);
+  idx = get_font_prop_index (key, 0);
+  if (idx < FONT_EXTRA_INDEX)
+    return AREF (font, idx);
+  if (FONT_ENTITY_P (font))
+    return Qnil;
+  return Fcdr (Fassoc (key, AREF (font, FONT_EXTRA_INDEX)));
+}
+
+
+DEFUN ("font-put", Ffont_put, Sfont_put, 3, 3, 0,
+       doc: /* Set one property of FONT-SPEC: give property KEY value VALUE.  */)
+     (font_spec, prop, val)
+     Lisp_Object font_spec, prop, val;
+{
+  enum font_property_index idx;
+  Lisp_Object extra, slot;
+
+  CHECK_FONT_SPEC (font_spec);
+  idx = get_font_prop_index (prop, 0);
+  if (idx < FONT_EXTRA_INDEX)
+    return ASET (font_spec, idx, val);
+  extra = AREF (font_spec, FONT_EXTRA_INDEX);
+  slot = Fassoc (extra, prop);
+  if (NILP (slot))
+    extra = Fcons (Fcons (prop, val), extra);
+  else
+    Fsetcdr (slot, val);
+  return val;
+}
+
+DEFUN ("list-fonts", Flist_fonts, Slist_fonts, 1, 4, 0,
+       doc: /* List available fonts matching FONT-SPEC on the current frame.
+Optional 2nd argument FRAME specifies the target frame.
+Optional 3rd argument NUM, if non-nil, limits the number of returned fonts.
+Optional 4th argument PREFER, if non-nil, is a font-spec to
+control the order of the returned list.  Fonts are sorted by
+how they are close to PREFER.  */)
+     (font_spec, frame, num, prefer)
+     Lisp_Object font_spec, frame, num, prefer;
+{
+  Lisp_Object vec, list, tail;
+  int n = 0, i, len;
+
+  if (NILP (frame))
+    frame = selected_frame;
+  CHECK_LIVE_FRAME (frame);
+  CHECK_VALIDATE_FONT_SPEC (font_spec);
+  if (! NILP (num))
+    {
+      CHECK_NUMBER (num);
+      n = XINT (num);
+      if (n <= 0)
+       return Qnil;
+    }
+  if (! NILP (prefer))
+    CHECK_FONT (prefer);
+
+  vec = font_list_entities (frame, font_spec);
+  len = ASIZE (vec);
+  if (len == 0)
+    return Qnil;
+  if (len == 1)
+    return Fcons (AREF (vec, 0), Qnil);
+
+  if (! NILP (prefer))
+    vec = font_sort_entites (vec, prefer, frame, font_spec);
+
+  list = tail = Fcons (AREF (vec, 0), Qnil);
+  if (n == 0 || n > len)
+    n = len;
+  for (i = 1; i < n; i++)
+    {
+      Lisp_Object val = Fcons (AREF (vec, i), Qnil);
+
+      XSETCDR (tail, val);
+      tail = val;
+    }
+  return list;
+}
+
+DEFUN ("list-families", Flist_families, Slist_families, 0, 1, 0,
+       doc: /* List available font families on the current frame.
+Optional 2nd argument FRAME specifies the target frame.  */)
+     (frame)
+     Lisp_Object frame;
+{
+  FRAME_PTR f;
+  struct font_driver_list *driver_list;
+  Lisp_Object list;
+
+  if (NILP (frame))
+    frame = selected_frame;
+  CHECK_LIVE_FRAME (frame);
+  f = XFRAME (frame);
+  list = Qnil;
+  for (driver_list = f->font_driver_list; driver_list;
+       driver_list = driver_list->next)
+    if (driver_list->driver->list_family)
+      {
+       Lisp_Object val = driver_list->driver->list_family (frame);
+
+       if (NILP (list))
+         list = val;
+       else
+         {
+           Lisp_Object tail = list;
+
+           for (; CONSP (val); val = XCDR (val))
+             if (NILP (Fmemq (XCAR (val), tail)))
+               list = Fcons (XCAR (val), list);
+         }
+      }
+  return list;
+}
+
+DEFUN ("find-font", Ffind_font, Sfind_font, 1, 2, 0,
+       doc: /* Return a font-entity matching with FONT-SPEC on the current frame.
+Optional 2nd argument FRAME, if non-nil, specifies the target frame.  */)
+     (font_spec, frame)
+     Lisp_Object font_spec, frame;
+{
+  Lisp_Object val = Flist_fonts (font_spec, frame, make_number (1), Qnil);
+
+  if (CONSP (val))
+    val = XCAR (val);
+  return val;
+}
+
+DEFUN ("font-xlfd-name", Ffont_xlfd_name, Sfont_xlfd_name, 1, 1, 0,
+       doc: /*  Return XLFD name of FONT.
+FONT is a font-spec, font-entity, or font-object.
+If the name is too long for XLFD (maximum 255 chars), return nil.  */)
+     (font)
+     Lisp_Object font;
+{
+  char name[256];
+  int pixel_size = 0;
+
+  if (FONT_SPEC_P (font))
+    CHECK_VALIDATE_FONT_SPEC (font);
+  else if (FONT_ENTITY_P (font))
+    CHECK_FONT (font);
+  else
+    {
+      struct font *fontp;
+
+      CHECK_FONT_GET_OBJECT (font, fontp);
+      font = fontp->entity;
+      pixel_size = fontp->pixel_size;
+    }
+
+  if (font_unparse_xlfd (font, pixel_size, name, 256) < 0)
+    return Qnil;
+  return build_string (name);
+}
+
+DEFUN ("clear-font-cache", Fclear_font_cache, Sclear_font_cache, 0, 0, 0,
+       doc: /* Clear font cache.  */)
+     ()
+{
+  Lisp_Object list, frame;
+
+  FOR_EACH_FRAME (list, frame)
+    {
+      FRAME_PTR f = XFRAME (frame);
+      struct font_driver_list *driver_list = f->font_driver_list;
+
+      for (; driver_list; driver_list = driver_list->next)
+       if (driver_list->on)
+         {
+           Lisp_Object cache = driver_list->driver->get_cache (f);
+           Lisp_Object val;
+           
+           val = XCDR (cache);
+           while (! EQ (XCAR (val), driver_list->driver->type))
+             val = XCDR (val);
+           val = XCDR (XCAR (val));
+           if (XINT (XCAR (val)) == 0)
+             {
+               font_clear_cache (f, XCAR (val), driver_list->driver);
+               XSETCDR (cache, XCDR (val));
+             }
+         }
+    }
+
+  return Qnil;
+}
+
+DEFUN ("internal-set-font-style-table", Finternal_set_font_style_table,
+       Sinternal_set_font_style_table, 2, 2, 0,
+       doc: /* Set font style table for PROP to TABLE.
+PROP must be `:weight', `:slant', or `:width'.
+TABLE must be an alist of symbols vs the corresponding numeric values
+sorted by numeric values.  */)
+     (prop, table)
+     Lisp_Object prop, table;
+{
+  int table_index;
+  int numeric;
+  Lisp_Object tail, val;
+  
+  CHECK_SYMBOL (prop);
+  table_index = (EQ (prop, QCweight) ? 0
+                : EQ (prop, QCslant) ? 1
+                : EQ (prop, QCwidth) ? 2
+                : 3);
+  if (table_index >= ASIZE (font_style_table))
+    error ("Invalid font style property: %s", SDATA (SYMBOL_NAME (prop)));
+  table = Fcopy_sequence (table);
+  numeric = -1;
+  for (tail = table; ! NILP (tail); tail = Fcdr (tail))
+    {
+      prop = Fcar (Fcar (tail));
+      val = Fcdr (Fcar (tail));
+      CHECK_SYMBOL (prop);
+      CHECK_NATNUM (val);
+      if (numeric > XINT (val))
+       error ("Numeric values not sorted for %s", SDATA (SYMBOL_NAME (prop)));
+      numeric = XINT (val);
+      XSETCAR (tail, Fcons (prop, val));
+    }
+  ASET (font_style_table, table_index, table);
+  return Qnil;
+}
+  
+/* The following three functions are still expremental.  */
+
+DEFUN ("font-make-gstring", Ffont_make_gstring, Sfont_make_gstring, 2, 2, 0,
+       doc: /* Return a newly created g-string for FONT-OBJECT with NUM glyphs.
+FONT-OBJECT may be nil if it is not yet known.
+
+G-string is sequence of glyphs of a specific font,
+and is a vector of this form:
+    [ HEADER GLYPH ... ]
+HEADER is a vector of this form:
+    [FONT-OBJECT WIDTH LBEARING RBEARING ASCENT DESCENT]
+where
+    FONT-OBJECT is a font-object for all glyphs in the g-string,
+    WIDTH thry DESCENT are the metrics (in pixels) of the whole G-string.
+GLYPH is a vector of this form:
+    [ FROM-IDX TO-IDX C CODE WIDTH LBEARING RBEARING ASCENT DESCENT
+      [ [X-OFF Y-OFF WADJUST] | nil] ]
+where
+    FROM-IDX and TO-IDX are used internally and should not be touched.
+    C is the character of the glyph.
+    CODE is the glyph-code of C in FONT-OBJECT.
+    WIDTH thry DESCENT are the metrics (in pixels) of the glyph.
+    X-OFF and Y-OFF are offests to the base position for the glyph.
+    WADJUST is the adjustment to the normal width of the glyph.  */)
+     (font_object, num)
+     Lisp_Object font_object, num;
+{
+  Lisp_Object gstring, g;
+  int len;
+  int i;
+
+  if (! NILP (font_object))
+    CHECK_FONT_OBJECT (font_object);
+  CHECK_NATNUM (num);
+
+  len = XINT (num) + 1;
+  gstring = Fmake_vector (make_number (len), Qnil);
+  g = Fmake_vector (make_number (6), Qnil);
+  ASET (g, 0, font_object);
+  ASET (gstring, 0, g);
+  for (i = 1; i < len; i++)
+    ASET (gstring, i, Fmake_vector (make_number (10), Qnil));
+  return gstring;
+}
+
+DEFUN ("font-fill-gstring", Ffont_fill_gstring, Sfont_fill_gstring, 4, 5, 0,
+       doc: /* Fillin glyph-string GSTRING by characters for FONT-OBJECT.
+START and END specifies the region to extract characters.
+If optional 3rd argument OBJECT is non-nil, it is a buffer or a string from
+where to extract characters.
+FONT-OBJECT may be nil if GSTRING already already contains one.  */)
+     (gstring, font_object, start, end, object)
+     Lisp_Object gstring, font_object, start, end, object;
+{
+  int len, i, c;
+  unsigned code;
+  struct font *font;
+
+  CHECK_VECTOR (gstring);
+  if (NILP (font_object))
+    font_object = LGSTRING_FONT (gstring);
+  CHECK_FONT_GET_OBJECT (font_object, font);
+
+  if (STRINGP (object))
+    {
+      const unsigned char *p;
+
+      CHECK_NATNUM (start);
+      CHECK_NATNUM (end);
+      if (XINT (start) > XINT (end)
+         || XINT (end) > ASIZE (object)
+         || XINT (end) - XINT (start) > LGSTRING_LENGTH (gstring))
+       args_out_of_range_3 (object, start, end);
+
+      len = XINT (end) - XINT (start);
+      p = SDATA (object) + string_char_to_byte (object, XINT (start));
+      for (i = 0; i < len; i++)
+       {
+         Lisp_Object g = LGSTRING_GLYPH (gstring, i);
+
+         c = STRING_CHAR_ADVANCE (p);
+         code = font->driver->encode_char (font, c);
+         if (code > MOST_POSITIVE_FIXNUM || code == FONT_INVALID_CODE)
+           break;
+         LGLYPH_SET_FROM (g, i);
+         LGLYPH_SET_TO (g, i);
+         LGLYPH_SET_CHAR (g, c);
+         LGLYPH_SET_CODE (g, code);
+       }
+    }
+  else
+    {
+      int pos, pos_byte;
+
+      if (! NILP (object))
+       Fset_buffer (object);
+      validate_region (&start, &end);
+      if (XINT (end) - XINT (start) > LGSTRING_LENGTH (gstring))
+       args_out_of_range (start, end);
+      len = XINT (end) - XINT (start);
+      pos = XINT (start);
+      pos_byte = CHAR_TO_BYTE (pos);
+      for (i = 0; i < len; i++)
+       {
+         Lisp_Object g = LGSTRING_GLYPH (gstring, i);
+
+         FETCH_CHAR_ADVANCE (c, pos, pos_byte);
+         code = font->driver->encode_char (font, c);
+         if (code > MOST_POSITIVE_FIXNUM || code == FONT_INVALID_CODE)
+           break;
+         LGLYPH_SET_FROM (g, i);
+         LGLYPH_SET_TO (g, i);
+         LGLYPH_SET_CHAR (g, c);
+         LGLYPH_SET_CODE (g, code);
+       }
+    }
+  for (; i < LGSTRING_LENGTH (gstring); i++)
+    LGSTRING_SET_GLYPH (gstring, i, Qnil);    
+  return Qnil;
+}
+
+DEFUN ("font-shape-text", Ffont_shape_text, Sfont_shape_text, 3, 4, 0,
+       doc: /* Shape text between FROM and TO by FONT-OBJECT.
+If optional 4th argument STRING is non-nil, it is a string to shape,
+and FROM and TO are indices to the string.
+The value is the end position of the text that can be shaped by
+FONT-OBJECT.  */)
+     (from, to, font_object, string)
+     Lisp_Object from, to, font_object, string;
+{
+  struct font *font;
+  struct font_metrics metrics;
+  EMACS_INT start, end;
+  Lisp_Object gstring, n;
+  int len, i, j;
+
+  if (NILP (string))
+    {
+      validate_region (&from, &to);
+      start = XFASTINT (from);
+      end = XFASTINT (to);
+      modify_region (current_buffer, start, end, 0);
+    }
+  else
+    {
+      CHECK_STRING (string);
+      start = XINT (from);
+      end = XINT (to);
+      if (start < 0 || start > end || end > SCHARS (string))
+       args_out_of_range_3 (string, from, to);
+    }
+
+  CHECK_FONT_GET_OBJECT (font_object, font);
+  if (! font->driver->shape)
+    return from;
+
+  len = end - start;
+  gstring = Ffont_make_gstring (font_object, make_number (len));
+  Ffont_fill_gstring (gstring, font_object, from, to, string);
+  
+  /* Try at most three times with larger gstring each time.  */
+  for (i = 0; i < 3; i++)
+    {
+      Lisp_Object args[2];
+
+      n = font->driver->shape (gstring);
+      if (INTEGERP (n))
+       break;
+      args[0] = gstring;
+      args[1] = Fmake_vector (make_number (len), Qnil);
+      gstring = Fvconcat (2, args);
+    }
+  if (! INTEGERP (n) || XINT (n) == 0)
+    return Qnil;
+  len = XINT (n);
+
+  for (i = 0; i < len;)
+    {
+      Lisp_Object gstr;
+      Lisp_Object g = LGSTRING_GLYPH (gstring, i);
+      EMACS_INT this_from = LGLYPH_FROM (g);
+      EMACS_INT this_to = LGLYPH_TO (g) + 1;
+      int j, k;
+      int need_composition = 0;
+
+      metrics.lbearing = LGLYPH_LBEARING (g);
+      metrics.rbearing = LGLYPH_RBEARING (g);
+      metrics.ascent = LGLYPH_ASCENT (g);
+      metrics.descent = LGLYPH_DESCENT (g);
+      if (NILP (LGLYPH_ADJUSTMENT (g)))
+       {
+         metrics.width = LGLYPH_WIDTH (g);
+         if (XINT (LGLYPH_CHAR (g)) == 0 || metrics.width == 0)
+           need_composition = 1;
+       }
+      else
+       {
+         metrics.width = LGLYPH_WADJUST (g);
+         metrics.lbearing += LGLYPH_XOFF (g);
+         metrics.rbearing += LGLYPH_XOFF (g);
+         metrics.ascent -= LGLYPH_YOFF (g);
+         metrics.descent += LGLYPH_YOFF (g);
+         need_composition = 1;
+       }
+      for (j = i + 1; j < len; j++)
+       {
+         int x;
+
+         g = LGSTRING_GLYPH (gstring, j);
+         if (this_from != LGLYPH_FROM (g))
+           break;
+         need_composition = 1;
+         x = metrics.width + LGLYPH_LBEARING (g) + LGLYPH_XOFF (g);
+         if (metrics.lbearing > x)
+           metrics.lbearing = x;
+         x = metrics.width + LGLYPH_RBEARING (g) + LGLYPH_XOFF (g);
+         if (metrics.rbearing < x)
+           metrics.rbearing = x;
+         x = LGLYPH_ASCENT (g) - LGLYPH_YOFF (g);
+         if (metrics.ascent < x)
+           metrics.ascent = x;
+         x = LGLYPH_DESCENT (g) - LGLYPH_YOFF (g);
+         if (metrics.descent < x)
+           metrics.descent = x;
+         if (NILP (LGLYPH_ADJUSTMENT (g)))
+           metrics.width += LGLYPH_WIDTH (g);
+         else
+           metrics.width += LGLYPH_WADJUST (g);
+       }
+
+      if (need_composition)
+       {
+         gstr = Ffont_make_gstring (font_object, make_number (j - i));
+         LGSTRING_SET_WIDTH (gstr, metrics.width);
+         LGSTRING_SET_LBEARING (gstr, metrics.lbearing);
+         LGSTRING_SET_RBEARING (gstr, metrics.rbearing);
+         LGSTRING_SET_ASCENT (gstr, metrics.ascent);
+         LGSTRING_SET_DESCENT (gstr, metrics.descent);
+         for (k = i; i < j; i++)
+           LGSTRING_SET_GLYPH (gstr, i - k, LGSTRING_GLYPH (gstring, i));
+         from = make_number (start + this_from);
+         to = make_number (start + this_to);
+         if (NILP (string))
+           Fcompose_region_internal (from, to, gstr, Qnil);
+         else
+           Fcompose_string_internal (string, from, to, gstr, Qnil);
+       }
+      else
+       i = j;
+    }
+
+  return to;
+}
+
+DEFUN ("font-drive-otf", Ffont_drive_otf, Sfont_drive_otf, 6, 6, 0,
+       doc: /* Apply OpenType features on glyph-string GSTRING-IN.
+OTF-SPEC specifies which featuress to apply in this format:
+  (SCRIPT LANGSYS GSUB GPOS)
+where
+  SCRIPT is a symbol specifying a script tag of OpenType,
+  LANGSYS is a symbol specifying a langsys tag of OpenType,
+  GSUB and GPOS, if non-nil, are lists of symbols specifying feature tags.
+
+If LANGYS is nil, the default langsys is selected.
+
+The features are applied in the order appeared in the list.  The
+symbol `*' means to apply all available features not appeared in this
+list, and the remaining features are ignored.  For instance, (vatu
+pstf * haln) is to apply vatu and pstf in this order, then to apply
+all available features other than vatu, pstf, and haln.
+
+The features are applied to the glyphs in the range FROM and TO of
+the glyph-string GSTRING-IN.
+
+If some of a feature is actually applicable, the resulting glyphs are
+produced in the glyph-string GSTRING-OUT from the index INDEX.  In
+this case, the value is the number of produced glyphs.
+
+If no feature is applicable, no glyph is produced in GSTRING-OUT, and
+the value is 0.
+
+If GSTRING-OUT is too short to hold produced glyphs, no glyphs is
+produced in GSTRING-OUT, and the value is nil.
+
+See the documentation of `font-make-gstring' for the format of
+glyph-string.  */)
+     (otf_features, gstring_in, from, to, gstring_out, index)
+     Lisp_Object otf_features, gstring_in, from, to, gstring_out, index;
+{
+  Lisp_Object font_object = LGSTRING_FONT (gstring_in);
+  Lisp_Object val;
+  struct font *font;
+  int len, num;
+
+  check_otf_features (otf_features);
+  CHECK_FONT_GET_OBJECT (font_object, font);
+  if (! font->driver->otf_drive)
+    error ("Font backend %s can't drive OpenType GSUB table",
+          SDATA (SYMBOL_NAME (font->driver->type)));
+  CHECK_CONS (otf_features);
+  CHECK_SYMBOL (XCAR (otf_features));
+  val = XCDR (otf_features);
+  CHECK_SYMBOL (XCAR (val));
+  val = XCDR (otf_features);
+  if (! NILP (val))
+    CHECK_CONS (val);
+  len = check_gstring (gstring_in);
+  CHECK_VECTOR (gstring_out);
+  CHECK_NATNUM (from);
+  CHECK_NATNUM (to);
+  CHECK_NATNUM (index);
+
+  if (XINT (from) >= XINT (to) || XINT (to) > len)
+    args_out_of_range_3 (from, to, make_number (len));
+  if (XINT (index) >= ASIZE (gstring_out))
+    args_out_of_range (index, make_number (ASIZE (gstring_out)));
+  num = font->driver->otf_drive (font, otf_features,
+                                gstring_in, XINT (from), XINT (to),
+                                gstring_out, XINT (index), 0);
+  if (num < 0)
+    return Qnil;
+  return make_number (num);
+}
+
+DEFUN ("font-otf-alternates", Ffont_otf_alternates, Sfont_otf_alternates,
+       3, 3, 0,
+       doc: /* Return a list of alternate glyphs of CHARACTER in FONT-OBJECT.
+FEATURE-SPEC specifies which features of the font FONT-OBJECT to apply
+in this format:
+  (SCRIPT LANGSYS FEATURE ...)
+See the documentation of `font-otf-gsub' for more detail.
+
+The value is a list of cons cells of the format (GLYPH-ID . CHARACTER),
+where GLYPH-ID is a glyph index of the font, and CHARACTER is a
+character code corresponding to the glyph or nil if there's no
+corresponding character.  */)
+     (font_object, character, otf_features)
+     Lisp_Object font_object, character, otf_features;
+{
+  struct font *font;
+  Lisp_Object gstring_in, gstring_out, g;
+  Lisp_Object alternates;
+  int i, num;
+
+  CHECK_FONT_GET_OBJECT (font_object, font);
+  if (! font->driver->otf_drive)
+    error ("Font backend %s can't drive OpenType GSUB table",
+          SDATA (SYMBOL_NAME (font->driver->type)));
+  CHECK_CHARACTER (character);
+  CHECK_CONS (otf_features);
+
+  gstring_in = Ffont_make_gstring (font_object, make_number (1));
+  g = LGSTRING_GLYPH (gstring_in, 0);
+  LGLYPH_SET_CHAR (g, character);
+  gstring_out = Ffont_make_gstring (font_object, make_number (10));
+  while ((num = font->driver->otf_drive (font, otf_features, gstring_in, 0, 1,
+                                        gstring_out, 0, 1)) < 0)
+    gstring_out = Ffont_make_gstring (font_object,
+                                     make_number (ASIZE (gstring_out) * 2));
+  alternates = Qnil;
+  for (i = 0; i < num; i++)
+    {
+      Lisp_Object g = LGSTRING_GLYPH (gstring_out, i);
+      int c = XINT (LGLYPH_CHAR (g));
+      unsigned code = XUINT (LGLYPH_CODE (g));
+
+      alternates = Fcons (Fcons (make_number (code),
+                                c > 0 ? make_number (c) : Qnil),
+                         alternates);
+    }
+  return Fnreverse (alternates);
+}
+
+
+#ifdef FONT_DEBUG
+
+DEFUN ("open-font", Fopen_font, Sopen_font, 1, 3, 0,
+       doc: /* Open FONT-ENTITY.  */)
+     (font_entity, size, frame)
+     Lisp_Object font_entity;
+     Lisp_Object size;
+     Lisp_Object frame;
+{
+  int isize;
+
+  CHECK_FONT_ENTITY (font_entity);
+  if (NILP (size))
+    size = AREF (font_entity, FONT_SIZE_INDEX);
+  CHECK_NUMBER (size);
+  if (NILP (frame))
+    frame = selected_frame;
+  CHECK_LIVE_FRAME (frame);
+  
+  isize = XINT (size);
+  if (isize == 0)
+    isize = 120;
+  if (isize < 0)
+    isize = POINT_TO_PIXEL (- isize, XFRAME (frame)->resy);
+
+  return font_open_entity (XFRAME (frame), font_entity, isize);
+}
+
+DEFUN ("close-font", Fclose_font, Sclose_font, 1, 2, 0,
+       doc: /* Close FONT-OBJECT.  */)
+     (font_object, frame)
+     Lisp_Object font_object, frame;
+{
+  CHECK_FONT_OBJECT (font_object);
+  if (NILP (frame))
+    frame = selected_frame;
+  CHECK_LIVE_FRAME (frame);
+  font_close_object (XFRAME (frame), font_object);
+  return Qnil;
+}
+
+DEFUN ("query-font", Fquery_font, Squery_font, 1, 1, 0,
+       doc: /* Return information about FONT-OBJECT.
+The value is a vector:
+  [ NAME FILENAME PIXEL-SIZE SIZE ASCENT DESCENT SPACE-WIDTH AVERAGE-WIDTH
+    CAPABILITY ]
+
+NAME is a string of the font name (or nil if the font backend doesn't
+provide a name).
+
+FILENAME is a string of the font file (or nil if the font backend
+doesn't provide a file name).
+
+PIXEL-SIZE is a pixel size by which the font is opened.
+
+SIZE is a maximum advance width of the font in pixel.
+
+ASCENT, DESCENT, SPACE-WIDTH, AVERAGE-WIDTH are metrics of the font in
+pixel.
+
+CAPABILITY is a list whose first element is a symbol representing the
+font format \(x, opentype, truetype, type1, pcf, or bdf) and the
+remaining elements describes a detail of the font capability.
+
+If the font is OpenType font, the form of the list is
+  \(opentype GSUB GPOS)
+where GSUB shows which "GSUB" features the font supports, and GPOS
+shows which "GPOS" features the font supports.  Both GSUB and GPOS are
+lists of the format:
+  \((SCRIPT (LANGSYS FEATURE ...) ...) ...)
+
+If the font is not OpenType font, currently the length of the form is
+one.
+
+SCRIPT is a symbol representing OpenType script tag.
+
+LANGSYS is a symbol representing OpenType langsys tag, or nil
+representing the default langsys.
+
+FEATURE is a symbol representing OpenType feature tag.  
+
+If the font is not OpenType font, OTF-CAPABILITY is nil.  */)
+     (font_object)
+     Lisp_Object font_object;
+{
+  struct font *font;
+  Lisp_Object val;
+
+  CHECK_FONT_GET_OBJECT (font_object, font);
+
+  val = Fmake_vector (make_number (9), Qnil);
+  if (font->font.full_name)
+    ASET (val, 0, make_unibyte_string (font->font.full_name,
+                                      strlen (font->font.full_name)));
+  if (font->file_name)
+    ASET (val, 1, make_unibyte_string (font->file_name,
+                                      strlen (font->file_name)));
+  ASET (val, 2, make_number (font->pixel_size));
+  ASET (val, 3, make_number (font->font.size));
+  ASET (val, 4, make_number (font->ascent));
+  ASET (val, 5, make_number (font->descent));
+  ASET (val, 6, make_number (font->font.space_width));
+  ASET (val, 7, make_number (font->font.average_width));
+  if (font->driver->otf_capability)
+    ASET (val, 8, Fcons (Qopentype, font->driver->otf_capability (font)));
+  else
+    ASET (val, 8, Fcons (font->format, Qnil));
+  return val;
+}
+
+DEFUN ("get-font-glyphs", Fget_font_glyphs, Sget_font_glyphs, 2, 2, 0,
+       doc: /* Return a vector of glyphs of FONT-OBJECT for drawing STRING.
+Each element is a vector [GLYPH-CODE LBEARING RBEARING WIDTH ASCENT DESCENT].  */)
+     (font_object, string)
+     Lisp_Object font_object, string;
+{
+  struct font *font;
+  int i, len;
+  Lisp_Object vec;
+
+  CHECK_FONT_GET_OBJECT (font_object, font);
+  CHECK_STRING (string);
+  len = SCHARS (string);
+  vec = Fmake_vector (make_number (len), Qnil);
+  for (i = 0; i < len; i++)
+    {
+      Lisp_Object ch = Faref (string, make_number (i));
+      Lisp_Object val;
+      int c = XINT (ch);
+      unsigned code;
+      struct font_metrics metrics;
+
+      code = font->driver->encode_char (font, c);
+      if (code == FONT_INVALID_CODE)
+       continue;
+      val = Fmake_vector (make_number (6), Qnil);
+      if (code <= MOST_POSITIVE_FIXNUM)
+       ASET (val, 0, make_number (code));
+      else
+       ASET (val, 0, Fcons (make_number (code >> 16),
+                            make_number (code & 0xFFFF)));
+      font->driver->text_extents (font, &code, 1, &metrics);      
+      ASET (val, 1, make_number (metrics.lbearing));
+      ASET (val, 2, make_number (metrics.rbearing));
+      ASET (val, 3, make_number (metrics.width));
+      ASET (val, 4, make_number (metrics.ascent));
+      ASET (val, 5, make_number (metrics.descent));
+      ASET (vec, i, val);
+    }
+  return vec;
+}
+
+DEFUN ("font-match-p", Ffont_match_p, Sfont_match_p, 2, 2, 0,
+       doc: /* Return t iff font-spec SPEC matches with FONT.
+FONT is a font-spec, font-entity, or font-object. */)
+     (spec, font)
+     Lisp_Object spec, font;
+{
+  CHECK_FONT_SPEC (spec);
+  if (FONT_OBJECT_P (font))
+    font = ((struct font *) XSAVE_VALUE (font)->pointer)->entity;
+  else if (! FONT_ENTITY_P (font))
+    CHECK_FONT_SPEC (font);
+
+  return (font_match_p (spec, font) ? Qt : Qnil);
+}
+
+DEFUN ("font-at", Ffont_at, Sfont_at, 1, 3, 0,
+       doc: /* Return a font-object for displaying a character at POSISTION.
+Optional second arg WINDOW, if non-nil, is a window displaying
+the current buffer.  It defaults to the currently selected window.  */)
+     (position, window, string)
+     Lisp_Object position, window, string;
+{
+  struct window *w;
+  EMACS_INT pos;
+
+  if (NILP (string))
+    {
+      CHECK_NUMBER_COERCE_MARKER (position);
+      pos = XINT (position);
+      if (pos < BEGV || pos >= ZV)
+       args_out_of_range_3 (position, make_number (BEGV), make_number (ZV));
+    }
+  else
+    {
+      EMACS_INT len;
+      unsigned char *str;
+
+      CHECK_NUMBER (position);
+      CHECK_STRING (string);
+      pos = XINT (position);
+      if (pos < 0 || pos >= SCHARS (string))
+       args_out_of_range (string, position);
+    }
+  if (NILP (window))
+    window = selected_window;
+  CHECK_LIVE_WINDOW (window);
+  w = XWINDOW (window);
+
+  return font_at (-1, pos, NULL, w, string);
+}
+
+#if 0
+DEFUN ("draw-string", Fdraw_string, Sdraw_string, 2, 2, 0,
+       doc: /*  Draw STRING by FONT-OBJECT on the top left corner of the current frame.
+The value is a number of glyphs drawn.
+Type C-l to recover what previously shown.  */)
+     (font_object, string)
+     Lisp_Object font_object, string;
+{
+  Lisp_Object frame = selected_frame;
+  FRAME_PTR f = XFRAME (frame);
+  struct font *font;
+  struct face *face;
+  int i, len, width;
+  unsigned *code;
+
+  CHECK_FONT_GET_OBJECT (font_object, font);
+  CHECK_STRING (string);
+  len = SCHARS (string);
+  code = alloca (sizeof (unsigned) * len);
+  for (i = 0; i < len; i++)
+    {
+      Lisp_Object ch = Faref (string, make_number (i));
+      Lisp_Object val;
+      int c = XINT (ch);
+
+      code[i] = font->driver->encode_char (font, c);
+      if (code[i] == FONT_INVALID_CODE)
+       break;
+    }
+  face = FACE_FROM_ID (f, DEFAULT_FACE_ID);
+  face->fontp = font;
+  if (font->driver->prepare_face)
+    font->driver->prepare_face (f, face);
+  width = font->driver->text_extents (font, code, i, NULL);
+  len = font->driver->draw_text (f, face, 0, font->ascent, code, i, width);
+  if (font->driver->done_face)
+    font->driver->done_face (f, face);
+  face->fontp = NULL;
+  return make_number (len);
+}
+#endif
+
+#endif /* FONT_DEBUG */
+
+\f
+extern void syms_of_ftfont P_ (());
+extern void syms_of_xfont P_ (());
+extern void syms_of_xftfont P_ (());
+extern void syms_of_ftxfont P_ (());
+extern void syms_of_bdffont P_ (());
+extern void syms_of_w32font P_ (());
+extern void syms_of_atmfont P_ (());
+
+void
+syms_of_font ()
+{
+  sort_shift_bits[FONT_SLANT_INDEX] = 0;
+  sort_shift_bits[FONT_WEIGHT_INDEX] = 7;
+  sort_shift_bits[FONT_SIZE_INDEX] = 14;
+  sort_shift_bits[FONT_WIDTH_INDEX] = 21;
+  sort_shift_bits[FONT_ADSTYLE_INDEX] = 28;
+  sort_shift_bits[FONT_FOUNDRY_INDEX] = 29;
+  sort_shift_bits[FONT_FAMILY_INDEX] = 30;
+  sort_shift_bits[FONT_REGISTRY_INDEX] = 31;
+  /* Note that sort_shift_bits[FONT_TYPE_INDEX] is never used.  */
+
+  staticpro (&font_style_table);
+  font_style_table = Fmake_vector (make_number (3), Qnil);
+
+  staticpro (&font_family_alist);
+  font_family_alist = Qnil;
+
+  staticpro (&font_charset_alist);
+  font_charset_alist = Qnil;
+
+  DEFSYM (Qopentype, "opentype");
+
+  DEFSYM (Qiso8859_1, "iso8859-1");
+  DEFSYM (Qiso10646_1, "iso10646-1");
+  DEFSYM (Qunicode_bmp, "unicode-bmp");
+  DEFSYM (Qunicode_sip, "unicode-sip");
+
+  DEFSYM (QCotf, ":otf");
+  DEFSYM (QClanguage, ":language");
+  DEFSYM (QCscript, ":script");
+  DEFSYM (QCantialias, ":antialias");
+
+  DEFSYM (QCfoundry, ":foundry");
+  DEFSYM (QCadstyle, ":adstyle");
+  DEFSYM (QCregistry, ":registry");
+  DEFSYM (QCspacing, ":spacing");
+  DEFSYM (QCdpi, ":dpi");
+  DEFSYM (QCscalable, ":scalable");
+  DEFSYM (QCextra, ":extra");
+
+  DEFSYM (Qc, "c");
+  DEFSYM (Qm, "m");
+  DEFSYM (Qp, "p");
+  DEFSYM (Qd, "d");
+
+  staticpro (&null_string);
+  null_string = build_string ("");
+  staticpro (&null_vector);
+  null_vector = Fmake_vector (make_number (0), Qnil);
+
+  staticpro (&scratch_font_spec);
+  scratch_font_spec = Ffont_spec (0, NULL);
+  staticpro (&scratch_font_prefer);
+  scratch_font_prefer = Ffont_spec (0, NULL);
+
+#ifdef HAVE_LIBOTF
+  staticpro (&otf_list);
+  otf_list = Qnil;
+#endif
+
+  defsubr (&Sfontp);
+  defsubr (&Sfont_spec);
+  defsubr (&Sfont_get);
+  defsubr (&Sfont_put);
+  defsubr (&Slist_fonts);
+  defsubr (&Slist_families);
+  defsubr (&Sfind_font);
+  defsubr (&Sfont_xlfd_name);
+  defsubr (&Sclear_font_cache);
+  defsubr (&Sinternal_set_font_style_table);
+  defsubr (&Sfont_make_gstring);
+  defsubr (&Sfont_fill_gstring);
+  defsubr (&Sfont_shape_text);
+  defsubr (&Sfont_drive_otf);
+  defsubr (&Sfont_otf_alternates);
+
+#ifdef FONT_DEBUG
+  defsubr (&Sopen_font);
+  defsubr (&Sclose_font);
+  defsubr (&Squery_font);
+  defsubr (&Sget_font_glyphs);
+  defsubr (&Sfont_match_p);
+  defsubr (&Sfont_at);
+#if 0
+  defsubr (&Sdraw_string);
+#endif
+#endif /* FONT_DEBUG */
+
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+#ifdef HAVE_FREETYPE
+      syms_of_ftfont ();
+#ifdef HAVE_X_WINDOWS
+      syms_of_xfont ();
+      syms_of_ftxfont ();
+#ifdef HAVE_XFT
+      syms_of_xftfont ();
+#endif  /* HAVE_XFT */
+#endif /* HAVE_X_WINDOWS */
+#else  /* not HAVE_FREETYPE */
+#ifdef HAVE_X_WINDOWS
+      syms_of_xfont ();
+#endif /* HAVE_X_WINDOWS */
+#endif /* not HAVE_FREETYPE */
+#ifdef HAVE_BDFFONT
+      syms_of_bdffont ();
+#endif /* HAVE_BDFFONT */
+#ifdef WINDOWSNT
+      syms_of_w32font ();
+#endif /* WINDOWSNT */
+#ifdef MAC_OS
+      syms_of_atmfont ();
+#endif /* MAC_OS */
+    }
+#endif /* USE_FONT_BACKEND */
+}
+
+/* arch-tag: 74c9475d-5976-4c93-a327-942ae3072846
+   (do not change this comment) */
diff --git a/src/font.h b/src/font.h
new file mode 100644 (file)
index 0000000..2433cdb
--- /dev/null
@@ -0,0 +1,582 @@
+/* font.h -- Interface definition for font handling.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#ifndef EMACS_FONT_H
+#define EMACS_FONT_H
+
+#include "ccl.h"
+
+/* We have three types of Lisp objects related to font.
+
+   FONT-SPEC
+
+       Vector (length FONT_SPEC_MAX) of font properties.  Some
+       properties can be left unspecified (i.e. nil).  Emacs asks
+       font-drivers to find a font by FONT-SPEC.  A fontset entry
+       specifies requisite properties whereas a face specifies just
+       preferable properties.  This object is fully modifiable by
+       Lisp.
+
+   FONT-ENTITY
+
+       Vector (length FONT_ENTITY_MAX) of fully specified font
+       properties that a font-driver returns upon a request of
+       FONT-SPEC.
+
+       Note: Only the method `list' of a font-driver can create this
+       object, and should never be modified by Lisp.  In that sense,
+       it may be cleaner to implement it as a Lisp object of a new
+       type (e.g. struct Lisp_Font).
+
+   FONT-OBJECT
+
+       Lisp object of type Lisp_Misc_Save_Value encapsulating a
+       pointer to "struct font".  This corresponds to an opened font.
+
+       Note: The note for FONT-ENTITY also applies to this.
+*/
+
+
+struct font_driver;
+struct font;
+
+/* An enumerator for each font property.  This is used as an index to
+   the vector of FONT-SPEC and FONT-ENTITY.
+
+   Note: The order is important and should not be changed.  */
+
+enum font_property_index
+  {
+    /* FONT-TYPE is a symbol indicating a font backend; currently `x',
+       `xft', `ftx', `freetype' are available on X and gdi on Windows.
+       For Windows, we `bdf' and `uniscribe' backends are in progress.
+       For Mac OS X, we need `atm'.  */
+    FONT_TYPE_INDEX,
+
+    /* FONT-FOUNDRY is a foundry name (symbol).  */
+    FONT_FOUNDRY_INDEX,
+
+    /* FONT-FAMILY is a family name (symbol).  */
+    FONT_FAMILY_INDEX,
+
+    /* FONT-ADSTYLE is an additional style name (symbol).  */
+    FONT_ADSTYLE_INDEX,
+
+    /* FONT-REGISTRY is a combination of a charset-registry and
+       charset0encoding name (symbol).  */
+    FONT_REGISTRY_INDEX,
+
+    /* FONT-WEIGHT is a numeric value of weight (e.g. medium, bold) of
+       the font.  The value is what defined by FC_WEIGHT_* in
+       fontconfig. */
+    FONT_WEIGHT_INDEX,
+
+    /* FONT-SLANT is a numeric value of slant (e.g. r, i, o) of the
+       font.  The value is what defined by FC_SLANT_* in
+       fontconfig plus 100. */
+    FONT_SLANT_INDEX,
+
+    /* FONT-WIDTH is a numeric value of setwidth (e.g. normal,
+       condensed) of the font.  The value is what defined by
+       FC_WIDTH_* in fontconfig. */
+    FONT_WIDTH_INDEX,
+
+    /* FONT-SIZE is a size of the font.  If integer, it is a pixel
+       size.  For a font-spec, the value can be float specifying a
+       point size.  For a font-entity, the value can be zero meaning
+       that the font is scalable.  */
+    FONT_SIZE_INDEX,
+
+    /* In a font-spec, the value is an alist of extra information of a
+       font such as name, OpenType features, and language coverage.
+       In a font-entity, the value is an extra infomation for
+       identifying a font (font-driver dependent).  */
+    FONT_EXTRA_INDEX,          /* alist                alist */
+
+    /* This value is the length of font-spec vector.  */
+    FONT_SPEC_MAX,
+
+    /* The followings are used only for a font-entity.  */
+
+    /* Frame on which the font is found.  The value is nil if the font
+       can be opend on any frame.  */
+    FONT_FRAME_INDEX = FONT_SPEC_MAX,
+
+    /* List of font-objects opened from the font-entity.  The value is
+       nil if no font can be opened for this font-entity.  */
+    FONT_OBJLIST_INDEX,
+
+    /* This value is the length of font-entity vector.  */
+    FONT_ENTITY_MAX
+  };
+
+extern Lisp_Object QCspacing, QCdpi, QCscalable, QCotf, QClanguage, QCscript;
+
+/* Important character set symbols.  */
+extern Lisp_Object Qiso8859_1, Qiso10646_1, Qunicode_bmp, Qunicode_sip;
+
+extern Lisp_Object null_string;
+extern Lisp_Object null_vector;
+
+/* Structure for an opened font.  We can safely cast this structure to
+   "struct font_info".  */
+
+struct font
+{
+  struct font_info font;
+
+  /* From which font-entity the font is opened.  */
+  Lisp_Object entity;
+
+  /* By which pixel size the font is opened.  */
+  int pixel_size;
+
+  /* Font-driver for the font.  */
+  struct font_driver *driver;
+
+  /* Symbol of font font; x, ttf, pcf, etc,   */
+  Lisp_Object format;
+
+  /* File name of the font, or NULL if the font is not associated with
+     a file.  */
+  char *file_name;
+
+  /* Charset to encode a character code into a glyph code of the font.
+     -1 means that the font doesn't require this information to encode
+     a character.  */
+  int encoding_charset;
+
+  /* Charset to check if a character code is supported by the font.
+     -1 means that the contents of the font must be looked up to
+     determine it.  */
+  int repertory_charset;
+
+  /* Minimum glyph width (in pixels).  */
+  int min_width;
+
+  /* Ascent and descent of the font (in pixels).  */
+  int ascent, descent;
+
+  /* 1 iff the font is scalable.  */
+  int scalable;
+
+  /* There will be more to this structure, but they are private to a
+     font-driver.  */
+};
+
+enum font_spacing
+  {
+    FONT_SPACING_PROPORTIONAL = 0,
+    FONT_SPACING_DUAL = 90,
+    FONT_SPACING_MONO = 100,
+    FONT_SPACING_CHARCELL = 110
+  };
+
+struct font_metrics
+{
+  short lbearing, rbearing, width, ascent, descent;
+};
+
+struct font_bitmap
+{
+  int bits_per_pixel;
+  int rows;
+  int width;
+  int pitch;
+  unsigned char *buffer;
+  int left;
+  int top;
+  int advance;
+  void *extra;
+};
+
+/* Predicates to check various font-related objects.  */
+
+#define FONTP(x)       \
+  (VECTORP (x) && (ASIZE (x) == FONT_SPEC_MAX || ASIZE (x) == FONT_ENTITY_MAX))
+#define FONT_SPEC_P(x) \
+  (VECTORP (x) && ASIZE (x) == FONT_SPEC_MAX)
+#define FONT_ENTITY_P(x)       \
+  (VECTORP (x) && ASIZE (x) == FONT_ENTITY_MAX)
+#define FONT_OBJECT_P(x)       \
+  (XTYPE (x) == Lisp_Misc && XMISCTYPE (x) == Lisp_Misc_Save_Value)
+
+#define FONT_ENTITY_NOT_LOADABLE(entity)       \
+  EQ (AREF (entity, FONT_OBJLIST_INDEX), Qt)
+
+#define FONT_ENTITY_SET_NOT_LOADABLE(entity)   \
+  ASET (entity, FONT_OBJLIST_INDEX, Qt)
+
+
+/* Check macros for various font-related objects.  */
+
+#define CHECK_FONT(x)  \
+  do { if (! FONTP (x)) x = wrong_type_argument (Qfont, x); } while (0)
+#define CHECK_FONT_SPEC(x)     \
+  do { if (! FONT_SPEC_P (x)) x = wrong_type_argument (Qfont, x); } while (0)
+#define CHECK_FONT_ENTITY(x)   \
+  do { if (! FONT_ENTITY_P (x)) x = wrong_type_argument (Qfont, x); } while (0)
+#define CHECK_FONT_OBJECT(x)   \
+  do { if (! FONT_OBJECT_P (x)) x = wrong_type_argument (Qfont, x); } while (0)
+
+#define CHECK_FONT_GET_OBJECT(x, font)                                 \
+  do {                                                                 \
+    if (! FONT_OBJECT_P (x)) x = wrong_type_argument (Qfont, x);       \
+    if (! XSAVE_VALUE (x)->pointer) error ("Font already closed");     \
+    font = XSAVE_VALUE (x)->pointer;                                   \
+  } while (0)
+
+/* Ignore the difference of font pixel sizes less than or equal to
+   this value.  */
+#define FONT_PIXEL_SIZE_QUANTUM 1
+
+struct face;
+struct composition;
+
+/* Macros for lispy glyph-string.  */
+#define LGSTRING_FONT(lgs) AREF (AREF ((lgs), 0), 0)
+#define LGSTRING_WIDTH(lgs) XINT (AREF (AREF ((lgs), 0), 1))
+#define LGSTRING_LBEARING(lgs) XINT (AREF (AREF ((lgs), 0), 2))
+#define LGSTRING_RBEARING(lgs) XINT (AREF (AREF ((lgs), 0), 3))
+#define LGSTRING_ASCENT(lgs) XINT (AREF (AREF ((lgs), 0), 4))
+#define LGSTRING_DESCENT(lgs) XINT (AREF (AREF ((lgs), 0), 5))
+#define LGSTRING_SET_FONT(lgs, val)    \
+  ASET (AREF ((lgs), 0), 0, (val))
+#define LGSTRING_SET_WIDTH(lgs, val)   \
+  ASET (AREF ((lgs), 0), 1, make_number (val))
+#define LGSTRING_SET_LBEARING(lgs, val) \
+  ASET (AREF ((lgs), 0), 2, make_number (val))
+#define LGSTRING_SET_RBEARING(lgs, val)        \
+  ASET (AREF ((lgs), 0), 3, make_number (val))
+#define LGSTRING_SET_ASCENT(lgs, val)  \
+  ASET (AREF ((lgs), 0), 4, make_number (val))
+#define LGSTRING_SET_DESCENT(lgs, val) \
+  ASET (AREF ((lgs), 0), 5, make_number (val))
+
+#define LGSTRING_LENGTH(lgs) (ASIZE ((lgs)) - 1)
+#define LGSTRING_GLYPH(lgs, idx) AREF ((lgs), (idx) + 1)
+#define LGSTRING_SET_GLYPH(lgs, idx, val) ASET ((lgs), (idx) + 1, (val))
+
+/* Vector size of Lispy glyph.  */
+#define LGLYPH_SIZE 10
+#define LGLYPH_FROM(g) XINT (AREF ((g), 0))
+#define LGLYPH_TO(g) XINT (AREF ((g), 1))
+#define LGLYPH_CHAR(g) XINT (AREF ((g), 2))
+#define LGLYPH_CODE(g) XINT (AREF ((g), 3))
+#define LGLYPH_WIDTH(g) XINT (AREF ((g), 4))
+#define LGLYPH_LBEARING(g) XINT (AREF ((g), 5))
+#define LGLYPH_RBEARING(g) XINT (AREF ((g), 6))
+#define LGLYPH_ASCENT(g) XINT (AREF ((g), 7))
+#define LGLYPH_DESCENT(g) XINT (AREF ((g), 8))
+#define LGLYPH_ADJUSTMENT(g) AREF ((g), 9)
+#define LGLYPH_SET_FROM(g, val) ASET ((g), 0, make_number (val))
+#define LGLYPH_SET_TO(g, val) ASET ((g), 1, make_number (val))
+#define LGLYPH_SET_CHAR(g, val) ASET ((g), 2, make_number (val))
+#define LGLYPH_SET_CODE(g, val) ASET ((g), 3, make_number (val))
+#define LGLYPH_SET_WIDTH(g, val) ASET ((g), 4, make_number (val))
+#define LGLYPH_SET_LBEARING(g, val) ASET ((g), 5, make_number (val))
+#define LGLYPH_SET_RBEARING(g, val) ASET ((g), 6, make_number (val))
+#define LGLYPH_SET_ASCENT(g, val) ASET ((g), 7, make_number (val))
+#define LGLYPH_SET_DESCENT(g, val) ASET ((g), 8, make_number (val))
+#define LGLYPH_SET_ADJUSTMENT(g, val) ASET ((g), 9, (val))
+
+#define LGLYPH_XOFF(g) (VECTORP (LGLYPH_ADJUSTMENT (g)) \
+                       ? XINT (AREF (LGLYPH_ADJUSTMENT (g), 0)) : 0)
+#define LGLYPH_YOFF(g) (VECTORP (LGLYPH_ADJUSTMENT (g)) \
+                       ? XINT (AREF (LGLYPH_ADJUSTMENT (g), 1)) : 0)
+#define LGLYPH_WADJUST(g) (VECTORP (LGLYPH_ADJUSTMENT (g)) \
+                          ? XINT (AREF (LGLYPH_ADJUSTMENT (g), 2)) : 0)
+
+#define FONT_INVALID_CODE 0xFFFFFFFF
+
+/* Font driver.  Members specified as "optional" can be NULL.  */
+
+struct font_driver
+{
+  /* Symbol indicating the type of the font-driver.  */
+  Lisp_Object type;
+
+  /* Return a cache of font-entities on frame F.  The cache must be a
+     cons whose cdr part is the actual cache area.  */
+  Lisp_Object (*get_cache) P_ ((FRAME_PTR F));
+
+  /* List fonts exactly matching with FONT_SPEC on FRAME.  The value
+     is a vector of font-entities.  This is the sole API that
+     allocates font-entities.  */
+  Lisp_Object (*list) P_ ((Lisp_Object frame, Lisp_Object font_spec));
+
+  /* Return a font entity most closely maching with FONT_SPEC on
+     FRAME.  The closeness is detemined by the font backend, thus
+     `face-font-selection-order' is ignored here.  */
+  Lisp_Object (*match) P_ ((Lisp_Object frame, Lisp_Object font_spec));
+
+  /* Optional.
+     List available families.  The value is a list of family names
+     (symbols).  */
+  Lisp_Object (*list_family) P_ ((Lisp_Object frame));
+
+  /* Optional (if FONT_EXTRA_INDEX is not Lisp_Save_Value).
+     Free FONT_EXTRA_INDEX field of FONT_ENTITY.  */
+  void (*free_entity) P_ ((Lisp_Object font_entity));
+
+  /* Open a font specified by FONT_ENTITY on frame F.  If the font is
+     scalable, open it with PIXEL_SIZE.  */
+  struct font *(*open) P_ ((FRAME_PTR f, Lisp_Object font_entity,
+                           int pixel_size));
+
+  /* Close FONT on frame F.  */
+  void (*close) P_ ((FRAME_PTR f, struct font *font));
+
+  /* Optional (if FACE->extra is not used).
+     Prepare FACE for displaying characters by FONT on frame F by
+     storing some data in FACE->extra.  If successful, return 0.
+     Otherwise, return -1.  */
+  int (*prepare_face) P_ ((FRAME_PTR f, struct face *face));
+
+  /* Optional.
+     Done FACE for displaying characters by FACE->font on frame F.  */
+  void (*done_face) P_ ((FRAME_PTR f, struct face *face));
+
+  /* Optional.
+     If FONT_ENTITY has a glyph for character C (Unicode code point),
+     return 1.  If not, return 0.  If a font must be opened to check
+     it, return -1.  */
+  int (*has_char) P_ ((Lisp_Object entity, int c));
+
+  /* Return a glyph code of FONT for characer C (Unicode code point).
+     If FONT doesn't have such a glyph, return FONT_INVALID_CODE.  */
+  unsigned (*encode_char) P_ ((struct font *font, int c));
+
+  /* Computate the total metrics of the NGLYPHS glyphs specified by
+     the font FONT and the sequence of glyph codes CODE, and store the
+     result in METRICS.  */
+  int (*text_extents) P_ ((struct font *font,
+                          unsigned *code, int nglyphs,
+                          struct font_metrics *metrics));
+
+  /* Optional.
+     Draw glyphs between FROM and TO of S->char2b at (X Y) pixel
+     position of frame F with S->FACE and S->GC.  If WITH_BACKGROUND
+     is nonzero, fill the background in advance.  It is assured that
+     WITH_BACKGROUND is zero when (FROM > 0 || TO < S->nchars).  */
+  int (*draw) P_ ((struct glyph_string *s, int from, int to,
+                  int x, int y, int with_background));
+
+  /* Optional.
+     Store bitmap data for glyph-code CODE of FONT in BITMAP.  It is
+     intended that this method is callled from the other font-driver
+     for actual drawing.  */
+  int (*get_bitmap) P_ ((struct font *font, unsigned code,
+                        struct font_bitmap *bitmap,
+                        int bits_per_pixel));
+
+  /* Optional.
+     Free bitmap data in BITMAP.  */
+  void (*free_bitmap) P_ ((struct font *font, struct font_bitmap *bitmap));
+
+  /* Optional.
+     Return an outline data for glyph-code CODE of FONT.  The format
+     of the outline data depends on the font-driver.  */
+  void *(*get_outline) P_ ((struct font *font, unsigned code));
+
+  /* Optional.
+     Free OUTLINE (that is obtained by the above method).  */
+  void (*free_outline) P_ ((struct font *font, void *outline));
+
+  /* Optional.
+     Get coordinates of the INDEXth anchor point of the glyph whose
+     code is CODE.  Store the coordinates in *X and *Y.  Return 0 if
+     the operations was successfull.  Otherwise return -1.  */
+  int (*anchor_point) P_ ((struct font *font, unsigned code, int index,
+                          int *x, int *y));
+
+  /* Optional.
+     Return a list describing which scripts/languages FONT
+     supports by which GSUB/GPOS features of OpenType tables.  */
+  Lisp_Object (*otf_capability) P_ ((struct font *font));
+
+  /* Optional.
+     Apply FONT's OTF-FEATURES to the glyph string.
+
+     FEATURES specifies which OTF features to apply in this format:
+       (SCRIPT LANGSYS GSUB-FEATURE GPOS-FEATURE)
+     See the documentation of `font-drive-otf' for the detail.
+
+     This method applies the specified features to the codes in the
+     elements of GSTRING-IN (between FROMth and TOth).  The output
+     codes are stored in GSTRING-OUT at the IDXth element and the
+     following elements.
+
+     Return the number of output codes.  If none of the features are
+     applicable to the input data, return 0.  If GSTRING-OUT is too
+     short, return -1.  */
+  int (*otf_drive) P_ ((struct font *font, Lisp_Object features,
+                      Lisp_Object gstring_in, int from, int to,
+                      Lisp_Object gstring_out, int idx, int alternate_subst));
+
+  /* Optional.
+     Make the font driver ready for frame F.  Usually this function
+     makes some data specific to F and store it in F by calling
+     font_put_frame_data ().  */
+  int (*start_for_frame) P_ ((FRAME_PTR f));
+  
+  /* Optional.
+     End using the driver for frame F.  Usually this function free
+     some data stored for F.  */
+  int (*end_for_frame) P_ ((FRAME_PTR f));
+
+  /* Optional.
+
+     Shape text in LGSTRING.  See the docstring of `font-make-gstring'
+     for the format of LGSTRING.  If the (N+1)th element of LGSTRING
+     is nil, input of shaping is from the 1st to (N)th elements.  In
+     each input glyph, FROM, TO, CHAR, and CODE are already set.
+
+     This function updates all fields of the input glyphs.  If the
+     output glyphs (M) are more than the input glyphs (N), (N+1)th
+     through (M)th elements of LGSTRING are updated possibly by making
+     a new glyph object and storing it in LGSTRING.  If (M) is greater
+     than the length of LGSTRING, nil should be return.  In that case,
+     this function is called again with the larger LGSTRING.  */
+  Lisp_Object (*shape) P_ ((Lisp_Object lgstring));
+};
+
+
+/* Chain of font drivers.  There's one global font driver list
+   (font_driver_list in font.c).  In addition, each frame has it's own
+   font driver list at FRAME_PTR->font_driver_list.  */
+
+struct font_driver_list
+{
+  /* 1 iff this driver is currently used.  It is igonred in the global
+     font driver list.*/
+  int on;
+  /* Pointer to the font driver.  */
+  struct font_driver *driver;
+  /* Pointer to the next element of the chain.  */
+  struct font_driver_list *next;
+};
+
+
+/* Chain of arbitrary data specific to each font driver.  Each frame
+   has it's own font data list at FRAME_PTR->font_data_list.  */
+
+struct font_data_list
+{
+  /* Pointer to the font driver.  */
+  struct font_driver *driver;
+  /* Data specific to the font driver.  */
+  void *data;
+  /* Pointer to the next element of the chain.  */
+  struct font_data_list *next;
+};
+
+extern int enable_font_backend;
+
+EXFUN (Ffont_spec, MANY);
+EXFUN (Ffont_get, 2);
+EXFUN (Flist_fonts, 4);
+EXFUN (Fclear_font_cache, 0);
+EXFUN (Ffont_xlfd_name, 1);
+
+extern int font_registry_charsets P_ ((Lisp_Object, struct charset **,
+                                      struct charset **));
+extern Lisp_Object font_symbolic_weight P_ ((Lisp_Object font));
+extern Lisp_Object font_symbolic_slant P_ ((Lisp_Object font));
+extern Lisp_Object font_symbolic_width P_ ((Lisp_Object font));
+
+extern int font_match_p P_ ((Lisp_Object spec, Lisp_Object entity));
+
+extern Lisp_Object font_find_object P_ ((struct font *font));
+extern Lisp_Object font_get_name P_ ((Lisp_Object font_object));
+extern Lisp_Object font_get_spec P_ ((Lisp_Object font_object));
+extern Lisp_Object font_get_frame P_ ((Lisp_Object font_object));
+extern int font_has_char P_ ((FRAME_PTR, Lisp_Object, int));
+extern unsigned font_encode_char P_ ((Lisp_Object, int));
+
+extern int font_set_lface_from_name P_ ((FRAME_PTR f,
+                                        Lisp_Object lface,
+                                        Lisp_Object fontname,
+                                        int force_p, int may_fail_p));
+extern Lisp_Object font_find_for_lface P_ ((FRAME_PTR f, Lisp_Object *lface,
+                                           Lisp_Object spec, int c));
+extern Lisp_Object font_open_for_lface P_ ((FRAME_PTR f, Lisp_Object entity,
+                                           Lisp_Object *lface,
+                                           Lisp_Object spec));
+extern void font_load_for_face P_ ((FRAME_PTR f, struct face *face));
+extern void font_prepare_for_face P_ ((FRAME_PTR f, struct face *face));
+extern Lisp_Object font_open_by_name P_ ((FRAME_PTR f, char *name));
+extern void font_close_object (FRAME_PTR f, Lisp_Object font_object);
+
+extern Lisp_Object intern_downcase P_ ((char *str, int len));
+extern void font_update_sort_order P_ ((int *order));
+
+extern void font_merge_old_spec P_ ((Lisp_Object name, Lisp_Object family,
+                                    Lisp_Object registry, Lisp_Object spec));
+
+
+extern int font_parse_xlfd P_ ((char *name, Lisp_Object font));
+extern int font_unparse_xlfd P_ ((Lisp_Object font, int pixel_size,
+                                 char *name, int bytes));
+extern int font_parse_fcname P_ ((char *name, Lisp_Object font));
+extern int font_unparse_fcname P_ ((Lisp_Object font, int pixel_size,
+                                 char *name, int bytes));
+extern void register_font_driver P_ ((struct font_driver *driver, FRAME_PTR f));
+extern void free_font_driver_list P_ ((FRAME_PTR f));
+extern Lisp_Object font_update_drivers P_ ((FRAME_PTR f, Lisp_Object list));
+extern Lisp_Object font_at P_ ((int c, EMACS_INT pos, struct face *face,
+                               struct window *w, Lisp_Object object));
+
+extern struct font *font_prepare_composition P_ ((struct composition *cmp,
+                                                 FRAME_PTR f));
+
+extern Lisp_Object font_put_extra P_ ((Lisp_Object font, Lisp_Object prop,
+                                       Lisp_Object val));
+
+extern int font_put_frame_data P_ ((FRAME_PTR f,
+                                   struct font_driver *driver,
+                                   void *data));
+extern void *font_get_frame_data P_ ((FRAME_PTR f,
+                                     struct font_driver *driver));
+
+#ifdef HAVE_FREETYPE
+extern struct font_driver ftfont_driver;
+#endif /* HAVE_FREETYPE */
+#ifdef HAVE_X_WINDOWS
+extern struct font_driver xfont_driver;
+extern struct font_driver ftxfont_driver;
+#ifdef HAVE_XFT
+extern struct font_driver xftfont_driver;
+#endif /* HAVE_XFT */
+#endif /* HAVE_X_WINDOWS */
+#ifdef WINDOWSNT
+extern struct font_driver w32font_driver;
+#endif /* WINDOWSNT */
+#ifdef MAC_OS
+extern struct font_driver atmfont_driver;
+#endif /* MAC_OS */
+
+#endif /* not EMACS_FONT_H */
+
+/* arch-tag: 3b7260c3-5bec-4d6b-a0db-95c1b431b1a2
+   (do not change this comment) */
index 2c0f0ac161ce6820020e36e84e9f8e8d856b21f1..085aadb1f0d5700ce18e635caebc3fb236ebe0ee 100644 (file)
@@ -5,7 +5,10 @@
      2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
-
+   Copyright (C) 2003, 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 This file is part of GNU Emacs.
 
 GNU Emacs is free software; you can redistribute it and/or modify
@@ -32,12 +35,15 @@ Boston, MA 02110-1301, USA.  */
 #endif
 
 #include "lisp.h"
+#include "blockinput.h"
 #include "buffer.h"
+#include "character.h"
 #include "charset.h"
 #include "ccl.h"
 #include "keyboard.h"
 #include "frame.h"
 #include "dispextern.h"
+#include "intervals.h"
 #include "fontset.h"
 #include "window.h"
 #ifdef HAVE_X_WINDOWS
@@ -51,71 +57,130 @@ Boston, MA 02110-1301, USA.  */
 #endif
 #include "termhooks.h"
 
-#ifdef FONTSET_DEBUG
+#include "font.h"
+
 #undef xassert
+#ifdef FONTSET_DEBUG
 #define xassert(X)     do {if (!(X)) abort ();} while (0)
 #undef INLINE
 #define INLINE
-#endif
+#else   /* not FONTSET_DEBUG */
+#define xassert(X)     (void) 0
+#endif /* not FONTSET_DEBUG */
 
+EXFUN (Fclear_face_cache, 1);
 
 /* FONTSET
 
    A fontset is a collection of font related information to give
-   similar appearance (style, size, etc) of characters.  There are two
-   kinds of fontsets; base and realized.  A base fontset is created by
-   new-fontset from Emacs Lisp explicitly.  A realized fontset is
-   created implicitly when a face is realized for ASCII characters.  A
-   face is also realized for multibyte characters based on an ASCII
-   face.  All of the multibyte faces based on the same ASCII face
-   share the same realized fontset.
+   similar appearance (style, etc) of characters.  A fontset has two
+   roles.  One is to use for the frame parameter `font' as if it is an
+   ASCII font.  In that case, Emacs uses the font specified for
+   `ascii' script for the frame's default font.
+
+   Another role, the more important one, is to provide information
+   about which font to use for each non-ASCII character.
+
+   There are two kinds of fontsets; base and realized.  A base fontset
+   is created by `new-fontset' from Emacs Lisp explicitly.  A realized
+   fontset is created implicitly when a face is realized for ASCII
+   characters.  A face is also realized for non-ASCII characters based
+   on an ASCII face.  All of non-ASCII faces based on the same ASCII
+   face share the same realized fontset.
+
+   A fontset object is implemented by a char-table whose default value
+   and parent are always nil.
+
+   An element of a base fontset is a vector of FONT-DEFs which itself
+   is a vector [ FONT-SPEC ENCODING REPERTORY ].
+
+   FONT-SPEC is a font-spec created by `font-spec' or
+       ( FAMILY . REGISTRY )
+   or
+       FONT-NAME
+   where FAMILY, REGISTRY, and FONT-NAME are strings.
+
+   ENCODING is a charset ID that can convert characters to glyph codes
+   of the corresponding font.
+
+   REPERTORY is a charset ID, a char-table, or nil.  If REPERTORY is a
+   charset ID, the repertory of the charset exactly matches with that
+   of the font.  If REPERTORY is a char-table, all characters who have
+   a non-nil value in the table are supported.  If REPERTORY is nil,
+   we consult with the font itself to get the repertory.
+
+   ENCODING and REPERTORY are extracted from the variable
+   Vfont_encoding_alist by using a font name generated from FONT-SPEC
+   (if it is a vector) or FONT-NAME as a matching target.
 
-   A fontset object is implemented by a char-table.
 
-   An element of a base fontset is:
-       (INDEX . FONTNAME) or
-       (INDEX . (FOUNDRY . REGISTRY ))
-   FONTNAME is a font name pattern for the corresponding character.
-   FOUNDRY and REGISTRY are respectively foundry and registry fields of
-   a font name for the corresponding character.  INDEX specifies for
-   which character (or generic character) the element is defined.  It
-   may be different from an index to access this element.  For
-   instance, if a fontset defines some font for all characters of
-   charset `japanese-jisx0208', INDEX is the generic character of this
-   charset.  REGISTRY is the
+   An element of a realized fontset is nil or t, or has this form:
 
-   An element of a realized fontset is FACE-ID which is a face to use
-   for displaying the corresponding character.
+       [CHARSET-ORDERED-LIST-TICK PREFERRED-CHARSET-ID PREFERRED-FAMILY
+        RFONT-DEF0 RFONT-DEF1 ...].
 
-   All single byte characters (ASCII and 8bit-unibyte) share the same
-   element in a fontset.  The element is stored in the first element
-   of the fontset.
+   RFONT-DEFn (i.e. Realized FONT-DEF) has this form:
 
-   To access or set each element, use macros FONTSET_REF and
-   FONTSET_SET respectively for efficiency.
+       [ FACE-ID FONT-INDEX FONT-DEF OPENED-FONT-NAME ]
 
-   A fontset has 3 extra slots.
+   RFONT-DEFn is automatically reordered by the current charset
+   priority list.
 
-   The 1st slot is an ID number of the fontset.
+   The value nil means that we have not yet generated the above vector
+   from the base of the fontset.
 
-   The 2nd slot is a name of the fontset.  This is nil for a realized
-   face.
+   The value t means that no font is available for the corresponding
+   range of characters.
 
-   The 3rd slot is a frame that the fontset belongs to.  This is nil
-   for a default face.
 
-   A parent of a base fontset is nil.  A parent of a realized fontset
-   is a base fontset.
+   A fontset has 9 extra slots.
 
-   All fontsets are recorded in Vfontset_table.
+   The 1st slot: the ID number of the fontset
+
+   The 2nd slot:
+       base: the name of the fontset
+       realized: nil
+
+   The 3rd slot:
+       base: nil
+       realized: the base fontset
+
+   The 4th slot:
+       base: nil
+       realized: the frame that the fontset belongs to
+
+   The 5th slot:
+       base: the font name for ASCII characters
+       realized: nil
+
+   The 6th slot:
+       base: nil
+       realized: the ID number of a face to use for characters that
+                 has no font in a realized fontset.
+
+   The 7th slot:
+       base: nil
+       realized: Alist of font index vs the corresponding repertory
+       char-table.
+       
+   The 8th slot:
+       base: nil
+       realized: If the base is not the default fontset, a fontset
+       realized from the default fontset, else nil.
+
+   The 9th slot:
+       base: Same as element value (but for fallback fonts).
+       realized: Likewise.
+
+   All fontsets are recorded in the vector Vfontset_table.
 
 
    DEFAULT FONTSET
 
-   There's a special fontset named `default fontset' which defines a
-   default fontname pattern.  When a base fontset doesn't specify a
-   font for a specific character, the corresponding value in the
-   default fontset is used.  The format is the same as a base fontset.
+   There's a special base fontset named `default fontset' which
+   defines the default font specifications.  When a base fontset
+   doesn't specify a font for a specific character, the corresponding
+   value in the default fontset is used.
 
    The parent of a realized fontset created for such a face that has
    no fontset is the default fontset.
@@ -123,16 +188,19 @@ Boston, MA 02110-1301, USA.  */
 
    These structures are hidden from the other codes than this file.
    The other codes handle fontsets only by their ID numbers.  They
-   usually use variable name `fontset' for IDs.  But, in this file, we
-   always use variable name `id' for IDs, and name `fontset' for the
-   actual fontset objects.
+   usually use the variable name `fontset' for IDs.  But, in this
+   file, we always use varialbe name `id' for IDs, and name `fontset'
+   for an actual fontset object, i.e., char-table.
 
 */
 
 /********** VARIABLES and FUNCTION PROTOTYPES **********/
 
 extern Lisp_Object Qfont;
-Lisp_Object Qfontset;
+static Lisp_Object Qfontset;
+static Lisp_Object Qfontset_info;
+static Lisp_Object Qprepend, Qappend;
+static Lisp_Object Qlatin;
 
 /* Vector containing all fontsets.  */
 static Lisp_Object Vfontset_table;
@@ -142,19 +210,17 @@ static Lisp_Object Vfontset_table;
 static int next_fontset_id;
 
 /* The default fontset.  This gives default FAMILY and REGISTRY of
-   font for each characters.  */
+   font for each character.  */
 static Lisp_Object Vdefault_fontset;
 
-/* Alist of font specifications.  It override the font specification
-   in the default fontset.  */
-static Lisp_Object Voverriding_fontspec_alist;
-
 Lisp_Object Vfont_encoding_alist;
+Lisp_Object Vfont_encoding_charset_alist;
 Lisp_Object Vuse_default_ascent;
 Lisp_Object Vignore_relative_composition;
 Lisp_Object Valternate_fontname_alist;
 Lisp_Object Vfontset_alias_alist;
 Lisp_Object Vvertical_centering_font_regexp;
+Lisp_Object Votf_script_alist;
 
 /* The following six are declarations of callback functions depending
    on window system.  See the comments in src/fontset.h for more
@@ -187,19 +253,39 @@ void (*set_frame_fontset_func) P_ ((FRAME_PTR f, Lisp_Object arg,
    This function set the member `encoder' of the structure.  */
 void (*find_ccl_program_func) P_ ((struct font_info *));
 
+Lisp_Object (*get_font_repertory_func) P_ ((struct frame *,
+                                           struct font_info *));
+
 /* Check if any window system is used now.  */
 void (*check_window_system_func) P_ ((void));
 
 
 /* Prototype declarations for static functions.  */
-static Lisp_Object fontset_ref P_ ((Lisp_Object, int));
-static Lisp_Object lookup_overriding_fontspec P_ ((Lisp_Object, int));
-static void fontset_set P_ ((Lisp_Object, int, Lisp_Object));
+static Lisp_Object fontset_add P_ ((Lisp_Object, Lisp_Object, Lisp_Object,
+                                   Lisp_Object));
+static void reorder_font_vector P_ ((Lisp_Object, int, Lisp_Object));
+static Lisp_Object fontset_font P_ ((Lisp_Object, int, struct face *, int));
 static Lisp_Object make_fontset P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
-static int fontset_id_valid_p P_ ((int));
 static Lisp_Object fontset_pattern_regexp P_ ((Lisp_Object));
-static Lisp_Object font_family_registry P_ ((Lisp_Object, int));
-static Lisp_Object regularize_fontname P_ ((Lisp_Object));
+static void accumulate_script_ranges P_ ((Lisp_Object, Lisp_Object,
+                                         Lisp_Object));
+Lisp_Object find_font_encoding P_ ((Lisp_Object));
+
+static void set_fontset_font P_ ((Lisp_Object, Lisp_Object));
+
+#ifdef FONTSET_DEBUG
+
+/* Return 1 if ID is a valid fontset id, else return 0.  */
+
+static int
+fontset_id_valid_p (id)
+     int id;
+{
+  return (id >= 0 && id < ASIZE (Vfontset_table) - 1);
+}
+
+#endif
+
 
 \f
 /********** MACROS AND FUNCTIONS TO HANDLE FONTSET **********/
@@ -209,170 +295,577 @@ static Lisp_Object regularize_fontname P_ ((Lisp_Object));
 
 /* Macros to access special values of FONTSET.  */
 #define FONTSET_ID(fontset)            XCHAR_TABLE (fontset)->extras[0]
+
+/* Macros to access special values of (base) FONTSET.  */
 #define FONTSET_NAME(fontset)          XCHAR_TABLE (fontset)->extras[1]
-#define FONTSET_FRAME(fontset)         XCHAR_TABLE (fontset)->extras[2]
-#define FONTSET_ASCII(fontset)         XCHAR_TABLE (fontset)->contents[0]
-#define FONTSET_BASE(fontset)          XCHAR_TABLE (fontset)->parent
+#define FONTSET_ASCII(fontset)         XCHAR_TABLE (fontset)->extras[4]
+
+/* Macros to access special values of (realized) FONTSET.  */
+#define FONTSET_BASE(fontset)          XCHAR_TABLE (fontset)->extras[2]
+#define FONTSET_FRAME(fontset)         XCHAR_TABLE (fontset)->extras[3]
+#define FONTSET_NOFONT_FACE(fontset)   XCHAR_TABLE (fontset)->extras[5]
+#define FONTSET_REPERTORY(fontset)     XCHAR_TABLE (fontset)->extras[6]
+#define FONTSET_DEFAULT(fontset)       XCHAR_TABLE (fontset)->extras[7]
+
+/* For both base and realized fontset.  */
+#define FONTSET_FALLBACK(fontset)      XCHAR_TABLE (fontset)->extras[8]
 
-#define BASE_FONTSET_P(fontset)                NILP (FONTSET_BASE(fontset))
+#define BASE_FONTSET_P(fontset)                (NILP (FONTSET_BASE (fontset)))
 
 
-/* Return the element of FONTSET (char-table) at index C (character).  */
+/* Return the element of FONTSET for the character C.  If FONTSET is a
+   base fontset other then the default fontset and FONTSET doesn't
+   contain information for C, return the information in the default
+   fontset.  */
 
-#define FONTSET_REF(fontset, c)        fontset_ref (fontset, c)
+#define FONTSET_REF(fontset, c)                \
+  (EQ (fontset, Vdefault_fontset)      \
+   ? CHAR_TABLE_REF (fontset, c)       \
+   : fontset_ref ((fontset), (c)))
 
 static Lisp_Object
 fontset_ref (fontset, c)
      Lisp_Object fontset;
      int c;
 {
-  int charset, c1, c2;
-  Lisp_Object elt, defalt;
-
-  if (SINGLE_BYTE_CHAR_P (c))
-    return FONTSET_ASCII (fontset);
-
-  SPLIT_CHAR (c, charset, c1, c2);
-  elt = XCHAR_TABLE (fontset)->contents[charset + 128];
-  if (!SUB_CHAR_TABLE_P (elt))
-    return elt;
-  defalt = XCHAR_TABLE (elt)->defalt;
-  if (c1 < 32
-      || (elt = XCHAR_TABLE (elt)->contents[c1],
-         NILP (elt)))
-    return defalt;
-  if (!SUB_CHAR_TABLE_P (elt))
-    return elt;
-  defalt = XCHAR_TABLE (elt)->defalt;
-  if (c2 < 32
-      || (elt = XCHAR_TABLE (elt)->contents[c2],
-         NILP (elt)))
-    return defalt;
+  Lisp_Object elt;
+
+  elt = CHAR_TABLE_REF (fontset, c);
+  if (NILP (elt) && ! EQ (fontset, Vdefault_fontset)
+      /* Don't check Vdefault_fontset for a realized fontset.  */
+      && NILP (FONTSET_BASE (fontset)))
+    elt = CHAR_TABLE_REF (Vdefault_fontset, c);
   return elt;
 }
 
 
+/* Return the element of FONTSET for the character C, set FROM and TO
+   to the range of characters around C that have the same value as C.
+   If FONTSET is a base fontset other then the default fontset and
+   FONTSET doesn't contain information for C, return the information
+   in the default fontset.  */
+
+#define FONTSET_REF_AND_RANGE(fontset, c, form, to)    \
+  (EQ (fontset, Vdefault_fontset)                      \
+   ? char_table_ref_and_range (fontset, c, &from, &to) \
+   : fontset_ref_and_range (fontset, c, &from, &to))
+
 static Lisp_Object
-lookup_overriding_fontspec (frame, c)
-     Lisp_Object frame;
+fontset_ref_and_range (fontset, c, from, to)
+     Lisp_Object fontset;
      int c;
+     int *from, *to;
 {
-  Lisp_Object tail;
+  Lisp_Object elt;
 
-  for (tail = Voverriding_fontspec_alist; CONSP (tail); tail = XCDR (tail))
+  elt = char_table_ref_and_range (fontset, c, from, to);
+  if (NILP (elt) && ! EQ (fontset, Vdefault_fontset)
+      /* Don't check Vdefault_fontset for a realized fontset.  */
+      && NILP (FONTSET_BASE (fontset)))
     {
-      Lisp_Object val, target, elt;
-
-      val = XCAR (tail);
-      target = XCAR (val);
-      val = XCDR (val);
-      /* Now VAL is (NO-FRAME-LIST OK-FRAME-LIST CHAR FONTNAME).  */
-      if (NILP (Fmemq (frame, XCAR (val)))
-         && (CHAR_TABLE_P (target)
-             ? ! NILP (CHAR_TABLE_REF (target, c))
-             : XINT (target) == CHAR_CHARSET (c)))
-       {
-         val = XCDR (val);
-         elt = XCDR (val);
-         if (NILP (Fmemq (frame, XCAR (val))))
-           {
-             if (! face_font_available_p (XFRAME (frame), XCDR (elt)))
-               {
-                 val = XCDR (XCAR (tail));
-                 XSETCAR (val, Fcons (frame, XCAR (val)));
-                 continue;
-               }
-             XSETCAR (val, Fcons (frame, XCAR (val)));
-           }
-         if (NILP (XCAR (elt)))
-           XSETCAR (elt, make_number (c));
-         return elt;
-       }
+      int from1, to1;
+
+      elt = char_table_ref_and_range (Vdefault_fontset, c, &from1, &to1);
+      if (*from < from1)
+       *from = from1;
+      if (*to > to1)
+       *to = to1;
     }
-  return Qnil;
+  return elt;
 }
 
-#define FONTSET_REF_VIA_BASE(fontset, c) fontset_ref_via_base (fontset, &c)
+
+/* Set elements of FONTSET for characters in RANGE to the value ELT.
+   RANGE is a cons (FROM . TO), where FROM and TO are character codes
+   specifying a range.  */
+
+#define FONTSET_SET(fontset, range, elt)       \
+  Fset_char_table_range ((fontset), (range), (elt))
+
+
+/* Modify the elements of FONTSET for characters in RANGE by replacing
+   with ELT or adding ELT.  RANGE is a cons (FROM . TO), where FROM
+   and TO are character codes specifying a range.  If ADD is nil,
+   replace with ELT, if ADD is `prepend', prepend ELT, otherwise,
+   append ELT.  */
+
+#define FONTSET_ADD(fontset, range, elt, add)                               \
+  (NILP (add)                                                               \
+   ? (NILP (range)                                                          \
+      ? (FONTSET_FALLBACK (fontset) = Fmake_vector (make_number (1), (elt))) \
+      : Fset_char_table_range ((fontset), (range),                          \
+                              Fmake_vector (make_number (1), (elt))))       \
+   : fontset_add ((fontset), (range), (elt), (add)))
 
 static Lisp_Object
-fontset_ref_via_base (fontset, c)
-     Lisp_Object fontset;
-     int *c;
+fontset_add (fontset, range, elt, add)
+     Lisp_Object fontset, range, elt, add;
 {
-  int charset, c1, c2;
-  Lisp_Object elt;
+  Lisp_Object args[2];
+  int idx = (EQ (add, Qappend) ? 0 : 1);
 
-  if (SINGLE_BYTE_CHAR_P (*c))
-    return FONTSET_ASCII (fontset);
-
-  elt = Qnil;
-  if (! EQ (FONTSET_BASE (fontset), Vdefault_fontset))
-    elt = FONTSET_REF (FONTSET_BASE (fontset), *c);
-  if (NILP (elt))
-    elt = lookup_overriding_fontspec (FONTSET_FRAME (fontset), *c);
-  if (NILP (elt))
-    elt = FONTSET_REF (Vdefault_fontset, *c);
-  if (NILP (elt))
-    return Qnil;
+  args[1 - idx] = Fmake_vector (make_number (1), elt);
 
-  *c = XINT (XCAR (elt));
-  SPLIT_CHAR (*c, charset, c1, c2);
-  elt = XCHAR_TABLE (fontset)->contents[charset + 128];
-  if (c1 < 32)
-    return (SUB_CHAR_TABLE_P (elt) ? XCHAR_TABLE (elt)->defalt : elt);
-  if (!SUB_CHAR_TABLE_P (elt))
-    return Qnil;
-  elt = XCHAR_TABLE (elt)->contents[c1];
-  if (c2 < 32)
-    return (SUB_CHAR_TABLE_P (elt) ? XCHAR_TABLE (elt)->defalt : elt);
-  if (!SUB_CHAR_TABLE_P (elt))
-    return Qnil;
-  elt = XCHAR_TABLE (elt)->contents[c2];
-  return elt;
+  if (CONSP (range))
+    {
+      int from = XINT (XCAR (range));
+      int to = XINT (XCDR (range));
+      int from1, to1;
+
+      do {
+       args[idx] = char_table_ref_and_range (fontset, from, &from1, &to1);
+       if (to < to1)
+         to1 = to;
+       char_table_set_range (fontset, from, to1,
+                             NILP (args[idx]) ? args[1 - idx]
+                             : Fvconcat (2, args));
+       from = to1 + 1;
+      } while (from < to);
+    }
+  else
+    {
+      args[idx] = FONTSET_FALLBACK (fontset);
+      FONTSET_FALLBACK (fontset)
+       = NILP (args[idx]) ? args[1 - idx] : Fvconcat (2, args);
+    }
+  return Qnil;
 }
 
 
-/* Store into the element of FONTSET at index C the value NEWELT.  */
-#define FONTSET_SET(fontset, c, newelt) fontset_set(fontset, c, newelt)
+/* Update FONT-GROUP which has this form:
+       [CHARSET-ORDERED-LIST-TICK PREFERRED-CHARSET-ID PREFERRED-FAMILY
+        RFONT-DEF0 RFONT-DEF1 ...].
+   Reorder RFONT-DEFs according to the current order of charset
+   (Vcharset_ordered_list), and update CHARSET-ORDERED-LIST-TICK to
+   the latest value.  */
 
 static void
-fontset_set (fontset, c, newelt)
+reorder_font_vector (font_group, charset_id, family)
+     Lisp_Object font_group;
+     int charset_id;
+     Lisp_Object family;
+{
+  Lisp_Object list, *new_vec;
+  int size;
+  int *charset_id_table;
+  int i, idx;
+  Lisp_Object preferred_by_charset, preferred_by_family;
+
+  size = ASIZE (font_group) - 3;
+  charset_id_table = (int *) alloca (sizeof (int) * size);
+  new_vec = (Lisp_Object *) alloca (sizeof (Lisp_Object) * size);
+
+  /* At first, extract ENCODING (a chaset ID) from RFONT_DEF which
+     has this form:
+       [FACE-ID FONT-INDEX [ FONT-SPEC ENCODING REPERTORY ]]
+     In addtion, if RFONT_DEF is preferred by family or charset, store
+     it from the start of new_vec.  */
+  for (i = 0, idx = 0; i < size; i++)
+    {
+      Lisp_Object rfont_def = AREF (font_group, i + 3);
+      Lisp_Object font_spec = AREF (AREF (rfont_def, 2), 0);
+      Lisp_Object this_family = AREF (font_spec, FONT_FAMILY_INDEX);
+      int id = XINT (AREF (AREF (rfont_def, 2), 1));
+      struct charset *charset = CHARSET_FROM_ID (id);
+
+      charset_id_table[i] = -1;
+      if (! NILP (this_family)
+         && (fast_string_match_ignore_case (family, SYMBOL_NAME (this_family))
+             >= 0))
+       {
+         if (idx > 0)
+           memmove (new_vec + 1, new_vec, sizeof (Lisp_Object) * idx);
+         new_vec[0] = rfont_def;
+         idx++;
+         ASET (font_group, i + 3, Qnil);
+       }
+      else if (id == charset_id)
+       {
+         new_vec[idx++] = rfont_def;
+         ASET (font_group, i + 3, Qnil);
+       }
+      else if (! charset->supplementary_p)
+       charset_id_table[i] = id;
+    }
+
+  if (idx == 0
+      && (XINT (AREF (font_group, 0)) == charset_ordered_list_tick))
+    /* No need of reordering.  */
+    return;
+
+  ASET (font_group, 0, make_number (charset_ordered_list_tick));
+  ASET (font_group, 1, make_number (charset_id));
+  ASET (font_group, 2, family);
+
+  /* Then, store the remaining RFONT-DEFs in NEW_VEC in the correct
+     order.  */
+  for (list = Vcharset_ordered_list; idx < size; list = XCDR (list))
+    {
+      int id = XINT (XCAR (list));
+      struct charset *charset = CHARSET_FROM_ID (id);
+
+      if (charset->supplementary_p)
+       break;
+      for (i = 0; i < size; i++)
+       if (charset_id_table[i] == XINT (XCAR (list))
+           && ! NILP (AREF (font_group, i + 2)))
+         {
+           new_vec[idx++] = AREF (font_group, i + 3);
+           ASET (font_group, i + 3, Qnil);
+         }
+    }
+  for (i = 0; i < size; i++)
+    if (! NILP (AREF (font_group, i + 3)))
+      new_vec[idx++] = AREF (font_group, i + 3);
+
+  /* At last, update elements of FONT-GROUP.  */
+  for (i = 0; i < size; i++)
+    ASET (font_group, i + 3, new_vec[i]);
+}
+
+
+/* Load a font matching the font related attributes in FACE->lface and
+   font pattern in FONT_DEF of FONTSET, and return an index of the
+   font.  FONT_DEF has this form:
+       [ FONT-SPEC ENCODING REPERTORY ]
+   If REPERTORY is nil, generate a char-table representing the font
+   repertory by looking into the font itself.  */
+
+extern Lisp_Object QCname;
+
+static int
+load_font_get_repertory (f, face, font_def, fontset)
+     FRAME_PTR f;
+     struct face *face;
+     Lisp_Object font_def;
      Lisp_Object fontset;
-     int c;
-     Lisp_Object newelt;
 {
-  int charset, code[3];
-  Lisp_Object *elt;
-  int i;
+  char *font_name;
+  struct font_info *font_info;
+  int charset;
+  Lisp_Object font_spec, name;
+
+  font_spec = AREF (font_def, 0);
+  name = Ffont_get (font_spec, QCname);
+  if (! NILP (name))
+    font_name = choose_face_font (f, face->lface, name, NULL);
+  else
+    font_name = choose_face_font (f, face->lface, font_spec, NULL);
+  charset = XINT (AREF (font_def, 1));
+  if (! (font_info = fs_load_font (f, font_name, charset)))
+    return -1;
+
+  if (NILP (AREF (font_def, 2))
+      && NILP (Fassq (make_number (font_info->font_idx),
+                     FONTSET_REPERTORY (fontset))))
+    {
+      /* We must look into the font to get the correct repertory as a
+        char-table.  */
+      Lisp_Object repertory;
+
+      repertory = (*get_font_repertory_func) (f, font_info);
+      FONTSET_REPERTORY (fontset)
+       = Fcons (Fcons (make_number (font_info->font_idx), repertory),
+                FONTSET_REPERTORY (fontset));
+    }
+       
+  return font_info->font_idx;
+}
 
-  if (SINGLE_BYTE_CHAR_P (c))
+static Lisp_Object fontset_find_font P_ ((Lisp_Object, int, struct face *,
+                                         int, int));
+
+/* Return RFONT-DEF (vector) in the realized fontset FONTSET for the
+   character C.  If the corresponding font is not yet opened, open it
+   (if FACE is not NULL) or return Qnil (if FACE is NULL).
+   If no proper font is found for C, return Qnil.
+   ID is a charset-id that must be preferred, or -1 meaning no
+   preference.
+   If FALLBACK is nonzero, search only fallback fonts.  */
+
+static Lisp_Object
+fontset_find_font (fontset, c, face, id, fallback)
+     Lisp_Object fontset;
+     int c;
+     struct face *face;
+     int id, fallback;
+{
+  Lisp_Object base_fontset, elt, vec, font_def;
+  int i, from, to;
+  int font_idx;
+  FRAME_PTR f = XFRAME (FONTSET_FRAME (fontset));
+
+  base_fontset = FONTSET_BASE (fontset);
+  if (! fallback)
+    vec = CHAR_TABLE_REF (fontset, c);
+  else
+    vec = FONTSET_FALLBACK (fontset);
+  if (NILP (vec))
     {
-      FONTSET_ASCII (fontset) = newelt;
-      return;
+      Lisp_Object range;
+
+      /* We have not yet decided a font for C.  */
+      if (! face)
+       return Qnil;
+      if (! fallback)
+       {
+         elt = FONTSET_REF_AND_RANGE (base_fontset, c, from, to);
+         range = Fcons (make_number (from), make_number (to));
+         if (EQ (base_fontset, Vdefault_fontset))
+           {
+             Lisp_Object script = CHAR_TABLE_REF (Vchar_script_table, c);
+
+             if (! NILP (script))
+               {
+                 Lisp_Object font_spec = Ffont_spec (0, NULL);
+                 Lisp_Object args[2], tmp;           
+
+                 ASET (font_spec, FONT_REGISTRY_INDEX, Qiso10646_1);
+                 ASET (font_spec, FONT_EXTRA_INDEX,
+                       Fcons (Fcons (QCscript, script), Qnil));
+                 args[0] = elt;
+                 tmp = Fmake_vector (make_number (3), Qnil);
+                 ASET (tmp, 0, font_spec);
+                 ASET (tmp, 1, CHARSET_SYMBOL_ID (Qunicode_bmp));
+                 args[1] = Fvector (1, &tmp);
+                 elt = Fvconcat (2, args);
+               }
+           }
+       }
+      else
+       {
+         elt = FONTSET_FALLBACK (base_fontset);
+       }
+      if (NILP (elt))
+       {
+         /* Qt means we have no font for characters of this range.  */
+         vec = Qt;
+       }
+      else
+       {
+         /* Build a vector [ -1 -1 nil NEW-ELT0 NEW-ELT1 NEW-ELT2 ... ],
+            where the first -1 is to force reordering of NEW-ELTn,
+            NEW-ELTn is [nil nil AREF (elt, n) nil].  */
+         vec = Fmake_vector (make_number (ASIZE (elt) + 3), Qnil);
+         ASET (vec, 0, make_number (-1));
+         ASET (vec, 1, make_number (-1));
+         for (i = 0; i < ASIZE (elt); i++)
+           {
+             Lisp_Object tmp;
+             tmp = Fmake_vector (make_number (5), Qnil);
+             ASET (tmp, 2, AREF (elt, i));
+             ASET (vec, i + 3, tmp);
+           }
+       }
+      /* Then store it in the fontset.  */
+      if (! fallback)
+       FONTSET_SET (fontset, range, vec);
+      else
+       FONTSET_FALLBACK (fontset) = vec;
     }
+  if (EQ (vec, Qt))
+    return Qnil;
 
-  SPLIT_CHAR (c, charset, code[0], code[1]);
-  code[2] = 0;                 /* anchor */
-  elt = &XCHAR_TABLE (fontset)->contents[charset + 128];
-  for (i = 0; code[i] > 0; i++)
+  if (ASIZE (vec) > 4
+      && (XINT (AREF (vec, 0)) != charset_ordered_list_tick
+         || (id >= 0 && XINT (AREF (vec, 1)) != id)
+         || NILP (Fequal (AREF (vec, 2), face->lface[LFACE_FAMILY_INDEX]))))
+    /* We have just created VEC,
+       or the charset priorities were changed,
+       or the preferred charset was changed,
+       or the preferred family was changed.  */
+    reorder_font_vector (vec, id, face->lface[LFACE_FAMILY_INDEX]);
+
+  /* Find the first available font in the vector of RFONT-DEF.  */
+  for (i = 3; i < ASIZE (vec); i++)
     {
-      if (!SUB_CHAR_TABLE_P (*elt))
+      elt = AREF (vec, i);
+      if (NILP (elt))
+       continue;
+      /* ELT == [ FACE-ID FONT-INDEX FONT-DEF ... ] */
+      if (INTEGERP (AREF (elt, 1)) && XINT (AREF (elt, 1)) < 0)
+       /* We couldn't open this font last time.  */
+       continue;
+
+      if (!face && NILP (AREF (elt, 1)))
+       /* We have not yet opened the font.  */
+       return Qnil;
+
+      font_def = AREF (elt, 2);
+      /* FONT_DEF == [ FONT-SPEC ENCODING REPERTORY ] */
+
+#ifdef USE_FONT_BACKEND
+      if (enable_font_backend)
        {
-         Lisp_Object val = *elt;
-         *elt = make_sub_char_table (Qnil);
-         XCHAR_TABLE (*elt)->defalt = val;
+         /* ELT == [ FACE-ID FONT-INDEX FONT-DEF FONT-LIST ]
+            where FONT-LIST is a list of font-entity or font-object.  */
+         Lisp_Object font_list = AREF (elt, 3), prev = Qnil;
+         Lisp_Object font_object;
+         int has_char;
+
+         for (; CONSP (font_list);
+              prev = font_list, font_list = XCDR (font_list))
+           {
+             font_object = XCAR (font_list);
+             if (! (FONT_ENTITY_P (font_object)
+                    && FONT_ENTITY_NOT_LOADABLE (font_object))
+                 && (has_char = font_has_char (f, font_object, c)) != 0)
+               {
+                 if (has_char < 0)
+                   {
+                     Lisp_Object obj = font_open_for_lface (f, font_object,
+                                                            face->lface, Qnil);
+                     if (NILP (obj))
+                       {
+                         FONT_ENTITY_SET_NOT_LOADABLE (font_object);
+                         continue;
+                       }
+                     font_object = obj;
+                     XSETCAR (font_list, font_object);
+                     if (! font_has_char (f, font_object, c))
+                       continue;
+                   }
+                 if (! NILP (prev))
+                   {
+                     /* Move this element to the head.  */
+                     XSETCDR (prev, XCDR (font_list));
+                     ASET (elt, 3, Fcons (XCAR (font_list), AREF (elt, 3)));
+                   }
+                 break;
+               }
+           }
+         if (NILP (font_list))
+           {
+             Lisp_Object font_spec = AREF (font_def, 0);
+             Lisp_Object font_entity;
+
+             font_entity = font_find_for_lface (f, face->lface, font_spec, c);
+             if (NILP (font_entity))
+               continue;
+             font_list = Fcons (font_entity, AREF (elt, 3));
+             ASET (elt, 3, font_list);
+           }
+         font_object = XCAR (font_list);
+         if (FONT_ENTITY_P (font_object))
+           {
+             font_object = font_open_for_lface (f, font_object,
+                                                face->lface, Qnil);
+             if (NILP (font_object))
+               {
+                 FONT_ENTITY_SET_NOT_LOADABLE (XCAR (font_list));
+                 continue;
+               }
+             XSETCAR (font_list, font_object);
+           }
+         ASET (elt, 1, make_number (0));
        }
-      elt = &XCHAR_TABLE (*elt)->contents[code[i]];
+      else
+#endif /* USE_FONT_BACKEND */
+
+      if (INTEGERP (AREF (font_def, 2)))
+       {
+         /* The repertory is specified by charset ID.  */
+         struct charset *charset
+           = CHARSET_FROM_ID (XINT (AREF (font_def, 2)));
+
+         if (! CHAR_CHARSET_P (c, charset))
+           /* This font can't display C.  */
+           continue;
+       }
+      else if (CHAR_TABLE_P (AREF (font_def, 2)))
+       {
+         /* The repertory is specified by a char table.  */
+         if (NILP (CHAR_TABLE_REF (AREF (font_def, 2), c)))
+           /* This font can't display C.  */
+           continue;
+       }
+      else
+       {
+         Lisp_Object slot;
+
+         if (! INTEGERP (AREF (elt, 1)))
+           {
+             /* We have not yet opened a font matching this spec.
+                Open the best matching font now and register the
+                repertory.  */
+             struct font_info *font_info;
+
+             font_idx = load_font_get_repertory (f, face, font_def, fontset);
+             ASET (elt, 1, make_number (font_idx));
+             if (font_idx < 0)
+               /* This means that we couldn't find a font matching
+                  FONT_DEF.  */
+               continue;
+             font_info = (*get_font_info_func) (f, font_idx);
+             ASET (elt, 3, build_string (font_info->full_name));
+           }
+
+         slot = Fassq (AREF (elt, 1), FONTSET_REPERTORY (fontset));
+         xassert (CONSP (slot));
+         if (NILP (CHAR_TABLE_REF (XCDR (slot), c)))
+           /* This font can't display C.  */
+           continue;
+       }
+
+      /* Now we have decided to use this font spec to display C.  */
+      if (! INTEGERP (AREF (elt, 1)))
+       {
+         /* But not yet opened the best matching font.  */
+         struct font_info *font_info;
+
+         font_idx = load_font_get_repertory (f, face, font_def, fontset);
+         ASET (elt, 1, make_number (font_idx));
+         if (font_idx < 0)
+           /* Can't open it.  Try the other one.  */
+           continue;
+         font_info = (*get_font_info_func) (f, font_idx);
+         ASET (elt, 3, build_string (font_info->full_name));
+       }
+
+      /* Now we have the opened font.  */
+      return elt;
     }
-  if (SUB_CHAR_TABLE_P (*elt))
-    XCHAR_TABLE (*elt)->defalt = newelt;
-  else
-    *elt = newelt;
+  return Qnil;
 }
 
 
+static Lisp_Object
+fontset_font (fontset, c, face, id)
+     Lisp_Object fontset;
+     int c;
+     struct face *face;
+     int id;
+{
+  Lisp_Object rfont_def;
+  Lisp_Object base_fontset;
+
+  /* Try a font-group for C. */
+  rfont_def = fontset_find_font (fontset, c, face, id, 0);
+  if (! NILP (rfont_def))
+    return rfont_def;
+  base_fontset = FONTSET_BASE (fontset);
+  /* Try a font-group for C of the default fontset. */
+  if (! EQ (base_fontset, Vdefault_fontset))
+    {
+      if (NILP (FONTSET_DEFAULT (fontset)))
+       FONTSET_DEFAULT (fontset)
+         = make_fontset (FONTSET_FRAME (fontset), Qnil, Vdefault_fontset);
+      rfont_def = fontset_find_font (FONTSET_DEFAULT (fontset), c, face, id, 0);
+    }
+  if (! NILP (rfont_def))
+    return rfont_def;
+  /* Try a fallback font-group. */
+  rfont_def = fontset_find_font (fontset, c, face, id, 1);
+  if (! NILP (rfont_def))
+    return rfont_def;
+  /* Try a fallback font-group of the default fontset . */
+  if (! EQ (base_fontset, Vdefault_fontset))
+    rfont_def = fontset_find_font (FONTSET_DEFAULT (fontset), c, face, id, 1);
+  return rfont_def;
+}
+
 /* Return a newly created fontset with NAME.  If BASE is nil, make a
-   base fontset.  Otherwise make a realized fontset whose parent is
+   base fontset.  Otherwise make a realized fontset whose base is
    BASE.  */
 
 static Lisp_Object
@@ -391,103 +884,105 @@ make_fontset (frame, name, base)
   while (!NILP (AREF (Vfontset_table, id))) id++;
 
   if (id + 1 == size)
-    Vfontset_table = larger_vector (Vfontset_table, size + 8, Qnil);
+    Vfontset_table = larger_vector (Vfontset_table, size + 32, Qnil);
 
   fontset = Fmake_char_table (Qfontset, Qnil);
 
   FONTSET_ID (fontset) = make_number (id);
-  FONTSET_NAME (fontset) = name;
-  FONTSET_FRAME (fontset) = frame;
-  FONTSET_BASE (fontset) = base;
+  if (NILP (base))
+    {
+      FONTSET_NAME (fontset) = name;
+    }
+  else
+    {
+      FONTSET_NAME (fontset) = Qnil;
+      FONTSET_FRAME (fontset) = frame;
+      FONTSET_BASE (fontset) = base;
+    }
 
-  AREF (Vfontset_table, id) = fontset;
+  ASET (Vfontset_table, id, fontset);
   next_fontset_id = id + 1;
   return fontset;
 }
 
 
-/* Return 1 if ID is a valid fontset id, else return 0.  */
-
-static INLINE int
-fontset_id_valid_p (id)
-     int id;
-{
-  return (id >= 0 && id < ASIZE (Vfontset_table) - 1);
-}
-
-
-/* Extract `family' and `registry' string from FONTNAME and a cons of
-   them.  Actually, `family' may also contain `foundry', `registry'
-   may also contain `encoding' of FONTNAME.  But, if FONTNAME doesn't
-   conform to XLFD nor explicitely specifies the other fields
-   (i.e. not using wildcard `*'), return FONTNAME.  If FORCE is
-   nonzero, specifications of the other fields are ignored, and return
-   a cons as far as FONTNAME conform to XLFD.  */
-
-static Lisp_Object
-font_family_registry (fontname, force)
+/* Set the ASCII font of the default fontset to FONTNAME if that is
+   not yet set.  */
+void
+set_default_ascii_font (fontname)
      Lisp_Object fontname;
-     int force;
 {
-  Lisp_Object family, registry;
-  const char *p = SDATA (fontname);
-  const char *sep[15];
-  int i = 0;
-
-  while (*p && i < 15)
-    if (*p++ == '-')
-      {
-       if (!force && i >= 2 && i <= 11 && *p != '*' && p[1] != '-')
-         return fontname;
-       sep[i++] = p;
-      }
-  if (i != 14)
-    return fontname;
+  if (! STRINGP (FONTSET_ASCII (Vdefault_fontset)))
+    {
+      int id = fs_query_fontset (fontname, 2);
 
-  family = make_unibyte_string (sep[0], sep[2] - 1 - sep[0]);
-  registry = make_unibyte_string (sep[12], p - sep[12]);
-  return Fcons (family, registry);
+      if (id >= 0)
+       fontname = FONTSET_ASCII (FONTSET_FROM_ID (id));
+      FONTSET_ASCII (Vdefault_fontset)= fontname;
+    }
 }
 
 \f
-/********** INTERFACES TO xfaces.c and dispextern.h **********/
+/********** INTERFACES TO xfaces.c, xfns.c, and dispextern.h **********/
 
-/* Return name of the fontset with ID.  */
+/* Return the name of the fontset who has ID.  */
 
 Lisp_Object
 fontset_name (id)
      int id;
 {
   Lisp_Object fontset;
+
   fontset = FONTSET_FROM_ID (id);
   return FONTSET_NAME (fontset);
 }
 
 
-/* Return ASCII font name of the fontset with ID.  */
+/* Return the ASCII font name of the fontset who has ID.  */
 
 Lisp_Object
 fontset_ascii (id)
      int id;
 {
   Lisp_Object fontset, elt;
+
   fontset= FONTSET_FROM_ID (id);
   elt = FONTSET_ASCII (fontset);
-  return XCDR (elt);
+#ifdef USE_FONT_BACKEND
+  if (CONSP (elt))
+    elt = XCAR (elt);
+#endif  /* USE_FONT_BACKEND */
+  /* It is assured that ELT is always a string (i.e. fontname
+     pattern).  */
+  return elt;
 }
 
 
-/* Free fontset of FACE.  Called from free_realized_face.  */
+/* Free fontset of FACE defined on frame F.  Called from
+   free_realized_face.  */
 
 void
 free_face_fontset (f, face)
      FRAME_PTR f;
      struct face *face;
 {
-  if (fontset_id_valid_p (face->fontset))
+  Lisp_Object fontset;
+
+  fontset = AREF (Vfontset_table, face->fontset);
+  xassert (!NILP (fontset) && ! BASE_FONTSET_P (fontset));
+  xassert (f == XFRAME (FONTSET_FRAME (fontset)));
+  ASET (Vfontset_table, face->fontset, Qnil);
+  if (face->fontset < next_fontset_id)
+    next_fontset_id = face->fontset;
+  if (! NILP (FONTSET_DEFAULT (fontset)))
     {
-      AREF (Vfontset_table, face->fontset) = Qnil;
-      if (face->fontset < next_fontset_id)
+      int id = XINT (FONTSET_ID (FONTSET_DEFAULT (fontset)));
+      
+      fontset = AREF (Vfontset_table, id);
+      xassert (!NILP (fontset) && ! BASE_FONTSET_P (fontset));
+      xassert (f == XFRAME (FONTSET_FRAME (fontset)));
+      ASET (Vfontset_table, id, Qnil);
+      if (id < next_fontset_id)
        next_fontset_id = face->fontset;
     }
 }
@@ -495,57 +990,92 @@ free_face_fontset (f, face)
 
 /* Return 1 if FACE is suitable for displaying character C.
    Otherwise return 0.  Called from the macro FACE_SUITABLE_FOR_CHAR_P
-   when C is not a single byte character..  */
+   when C is not an ASCII character.  */
 
 int
 face_suitable_for_char_p (face, c)
      struct face *face;
      int c;
 {
-  Lisp_Object fontset, elt;
-
-  if (SINGLE_BYTE_CHAR_P (c))
-    return (face == face->ascii_face);
+  Lisp_Object fontset, rfont_def;
 
-  xassert (fontset_id_valid_p (face->fontset));
   fontset = FONTSET_FROM_ID (face->fontset);
-  xassert (!BASE_FONTSET_P (fontset));
-
-  elt = FONTSET_REF_VIA_BASE (fontset, c);
-  return (!NILP (elt) && face->id == XFASTINT (elt));
+  rfont_def = fontset_font (fontset, c, NULL, -1);
+  return (VECTORP (rfont_def)
+         && INTEGERP (AREF (rfont_def, 0))
+         && face->id == XINT (AREF (rfont_def, 0)));
 }
 
 
 /* Return ID of face suitable for displaying character C on frame F.
-   The selection of face is done based on the fontset of FACE.  FACE
-   should already have been realized for ASCII characters.  Called
-   from the macro FACE_FOR_CHAR when C is not a single byte character.  */
+   FACE must be reazlied for ASCII characters in advance.  Called from
+   the macro FACE_FOR_CHAR.  */
 
 int
-face_for_char (f, face, c)
+face_for_char (f, face, c, pos, object)
      FRAME_PTR f;
      struct face *face;
-     int c;
+     int c, pos;
+     Lisp_Object object;
 {
-  Lisp_Object fontset, elt;
+  Lisp_Object fontset, charset, rfont_def;
   int face_id;
+  int id;
+
+  if (ASCII_CHAR_P (c))
+    return face->ascii_face->id;
 
   xassert (fontset_id_valid_p (face->fontset));
   fontset = FONTSET_FROM_ID (face->fontset);
   xassert (!BASE_FONTSET_P (fontset));
+  if (pos < 0)
+    id = -1;
+  else
+    {
+      charset = Fget_char_property (make_number (pos), Qcharset, object);
+      if (NILP (charset))
+       id = -1;
+      else if (CHARSETP (charset))
+       {
+         Lisp_Object val;
+
+         val = assoc_no_quit (charset, Vfont_encoding_charset_alist);
+         if (CONSP (val) && CHARSETP (XCDR (val)))
+           charset = XCDR (val);
+         id = XINT (CHARSET_SYMBOL_ID (charset));
+       }
+    }
+  rfont_def = fontset_font (fontset, c, face, id);
+  if (VECTORP (rfont_def))
+    {
+#ifdef USE_FONT_BACKEND
+      if (enable_font_backend
+         && NILP (AREF (rfont_def, 0)))
+       {
+         struct font *font = XSAVE_VALUE (XCAR (AREF (rfont_def, 3)))->pointer;
 
-  elt = FONTSET_REF_VIA_BASE (fontset, c);
-  if (!NILP (elt))
-    return XINT (elt);
+         face_id = face_for_font (f, font, face);
+         ASET (rfont_def, 0, make_number (face_id));
+       }
+      else
+#endif /* USE_FONT_BACKEND */
+      if (NILP (AREF (rfont_def, 0)))
+       {
+         /* We have not yet made a realized face that uses this font.  */
+         int font_idx = XINT (AREF (rfont_def, 1));
 
-  /* No face is recorded for C in the fontset of FACE.  Make a new
-     realized face for C that has the same fontset.  */
-  face_id = lookup_face (f, face->lface, c, face);
+         face_id = lookup_non_ascii_face (f, font_idx, face);
+         ASET (rfont_def, 0, make_number (face_id));
+       }
+      return XINT (AREF (rfont_def, 0));
+    }
 
-  /* Record the face ID in FONTSET at the same index as the
-     information in the base fontset.  */
-  FONTSET_SET (fontset, c, make_number (face_id));
-  return face_id;
+  if (NILP (FONTSET_NOFONT_FACE (fontset)))
+    {
+      face_id = lookup_non_ascii_face (f, -1, face);
+      FONTSET_NOFONT_FACE (fontset) = make_number (face_id);
+    }
+  return XINT (FONTSET_NOFONT_FACE (fontset));
 }
 
 
@@ -555,9 +1085,10 @@ face_for_char (f, face, c)
    Called from realize_x_face.  */
 
 int
-make_fontset_for_ascii_face (f, base_fontset_id)
+make_fontset_for_ascii_face (f, base_fontset_id, face)
      FRAME_PTR f;
      int base_fontset_id;
+     struct face *face;
 {
   Lisp_Object base_fontset, fontset, frame;
 
@@ -568,69 +1099,47 @@ make_fontset_for_ascii_face (f, base_fontset_id)
       if (!BASE_FONTSET_P (base_fontset))
        base_fontset = FONTSET_BASE (base_fontset);
       xassert (BASE_FONTSET_P (base_fontset));
+      if (! BASE_FONTSET_P (base_fontset))
+       abort ();
     }
   else
     base_fontset = Vdefault_fontset;
 
   fontset = make_fontset (frame, Qnil, base_fontset);
-  return XINT (FONTSET_ID (fontset));
-}
-
-
-/* Return the font name pattern for C that is recorded in the fontset
-   with ID.  If a font name pattern is specified (instead of a cons of
-   family and registry), check if a font can be opened by that pattern
-   to get the fullname.  If a font is opened, return that name.
-   Otherwise, return nil.  If ID is -1, or the fontset doesn't contain
-   information about C, get the registry and encoding of C from the
-   default fontset.  Called from choose_face_font.  */
+  {
+    Lisp_Object elt, rfont_def, val;
 
-Lisp_Object
-fontset_font_pattern (f, id, c)
-     FRAME_PTR f;
-     int id, c;
-{
-  Lisp_Object fontset, elt;
-  struct font_info *fontp;
+    elt = FONTSET_REF (base_fontset, 0);
+    xassert (VECTORP (elt) && ASIZE (elt) > 0);
+    rfont_def = Fmake_vector (make_number (4), Qnil);
+#ifdef USE_FONT_BACKEND
+    if (enable_font_backend && face->font_info)
+      {
+       struct font *font = (struct font *) face->font_info;
 
-  elt = Qnil;
-  if (fontset_id_valid_p (id))
+       ASET (rfont_def, 3, Fcons (font->entity, Qnil));
+      }
+    else
+#endif  /* USE_FONT_BACKEND */
     {
-      fontset = FONTSET_FROM_ID (id);
-      xassert (!BASE_FONTSET_P (fontset));
-      fontset = FONTSET_BASE (fontset);
-      if (! EQ (fontset, Vdefault_fontset))
-       elt = FONTSET_REF (fontset, c);
+      ASET (rfont_def, 3, build_string (face->font_name));
     }
-  if (NILP (elt))
-    {
-      Lisp_Object frame;
-
-      XSETFRAME (frame, f);
-      elt = lookup_overriding_fontspec (frame, c);
-    }
-  if (NILP (elt))
-    elt = FONTSET_REF (Vdefault_fontset, c);
-
-  if (!CONSP (elt))
-    return Qnil;
-  if (CONSP (XCDR (elt)))
-    return XCDR (elt);
-
-  /* The fontset specifies only a font name pattern (not cons of
-     family and registry).  If a font can be opened by that pattern,
-     return the name of opened font.  Otherwise return nil.  The
-     exception is a font for single byte characters.  In that case, we
-     return a cons of FAMILY and REGISTRY extracted from the opened
-     font name.  */
-  elt = XCDR (elt);
-  xassert (STRINGP (elt));
-  fontp = FS_LOAD_FONT (f, c, SDATA (elt), -1);
-  if (!fontp)
-    return Qnil;
-
-  return font_family_registry (build_string (fontp->full_name),
-                              SINGLE_BYTE_CHAR_P (c));
+    ASET (rfont_def, 1, make_number (face->font_info_id));
+    ASET (rfont_def, 2, AREF (elt, 0));
+    elt = Fmake_vector (make_number (4), Qnil);
+    ASET (elt, 0, make_number (charset_ordered_list_tick));
+    ASET (elt, 1, make_number (charset_ascii));
+    ASET (elt, 2, rfont_def);
+    ASET (elt, 3, rfont_def);
+
+    val = Fcons (Qlatin, Qnil);
+    map_char_table (accumulate_script_ranges, Qnil, Vchar_script_table, val);
+    for (val = XCDR (val); CONSP (val); val = XCDR (val))
+      char_table_set_range (fontset, XINT (XCAR (XCAR (val))),
+                           XINT (XCDR (XCAR (val))), elt);
+    FONTSET_FALLBACK (fontset) = elt;
+  }
+  return XINT (FONTSET_ID (fontset));
 }
 
 
@@ -638,125 +1147,57 @@ fontset_font_pattern (f, id, c)
 #pragma optimize("", off)
 #endif
 
-/* Load a font named FONTNAME to display character C on frame F.
-   Return a pointer to the struct font_info of the loaded font.  If
-   loading fails, return NULL.  If FACE is non-zero and a fontset is
-   assigned to it, record FACE->id in the fontset for C.  If FONTNAME
-   is NULL, the name is taken from the fontset of FACE or what
-   specified by ID.  */
+/* Load a font named FONTNAME on frame F.  Return a pointer to the
+   struct font_info of the loaded font.  If loading fails, return
+   NULL.  CHARSET is an ID of charset to encode characters for this
+   font.  If it is -1, find one from Vfont_encoding_alist.  */
 
 struct font_info *
-fs_load_font (f, c, fontname, id, face)
+fs_load_font (f, fontname, charset)
      FRAME_PTR f;
-     int c;
      char *fontname;
-     int id;
-     struct face *face;
+     int charset;
 {
-  Lisp_Object fontset;
-  Lisp_Object list, elt, fullname;
-  int size = 0;
   struct font_info *fontp;
-  int charset = CHAR_CHARSET (c);
-
-  if (face)
-    id = face->fontset;
-  if (id < 0)
-    fontset = Qnil;
-  else
-    fontset = FONTSET_FROM_ID (id);
-
-  if (!NILP (fontset)
-      && !BASE_FONTSET_P (fontset))
-    {
-      elt = FONTSET_REF_VIA_BASE (fontset, c);
-      if (!NILP (elt))
-       {
-         /* A suitable face for C is already recorded, which means
-            that a proper font is already loaded.  */
-         int face_id = XINT (elt);
-
-         xassert (face_id == face->id);
-         face = FACE_FROM_ID (f, face_id);
-         return (*get_font_info_func) (f, face->font_info_id);
-       }
-
-      if (!fontname && charset == CHARSET_ASCII)
-       {
-         elt = FONTSET_ASCII (fontset);
-         fontname = SDATA (XCDR (elt));
-       }
-    }
+  Lisp_Object fullname;
 
   if (!fontname)
     /* No way to get fontname.  */
-    return 0;
+    return NULL;
 
-  fontp = (*load_font_func) (f, fontname, size);
-  if (!fontp)
-    return 0;
-
-  /* Fill in members (charset, vertical_centering, encoding, etc) of
-     font_info structure that are not set by (*load_font_func).  */
-  fontp->charset = charset;
+  fontp = (*load_font_func) (f, fontname, 0);
+  if (! fontp || fontp->charset >= 0)
+    return fontp;
 
+  fontname = fontp->full_name;
   fullname = build_string (fontp->full_name);
-  fontp->vertical_centering
-    = (STRINGP (Vvertical_centering_font_regexp)
-       && (fast_string_match_ignore_case
-          (Vvertical_centering_font_regexp, fullname) >= 0));
 
-  if (fontp->encoding[1] != FONT_ENCODING_NOT_DECIDED)
+  if (charset < 0)
     {
-      /* The font itself tells which code points to be used.  Use this
-        encoding for all other charsets.  */
-      int i;
-
-      fontp->encoding[0] = fontp->encoding[1];
-      for (i = MIN_CHARSET_OFFICIAL_DIMENSION1; i <= MAX_CHARSET; i++)
-       fontp->encoding[i] = fontp->encoding[1];
+      Lisp_Object charset_symbol;
+
+      charset_symbol = find_font_encoding (fullname);
+      if (CONSP (charset_symbol))
+       charset_symbol = XCAR (charset_symbol);
+      if (NILP (charset_symbol))
+       charset_symbol = Qascii;
+      charset = XINT (CHARSET_SYMBOL_ID (charset_symbol));
     }
-  else
-    {
-      /* The font itself doesn't have information about encoding.  */
-      int i;
+  fontp->charset = charset;
+  fontp->vertical_centering = 0;
+  fontp->font_encoder = NULL;
 
-      /* By default, encoding of ASCII chars is 0 (i.e. 0x00..0x7F),
-        others is 1 (i.e. 0x80..0xFF).  */
-      fontp->encoding[0] = 0;
-      for (i = MIN_CHARSET_OFFICIAL_DIMENSION1; i <= MAX_CHARSET; i++)
-       fontp->encoding[i] = 1;
-      /* Then override them by a specification in Vfont_encoding_alist.  */
-      for (list = Vfont_encoding_alist; CONSP (list); list = XCDR (list))
-       {
-         elt = XCAR (list);
-         if (CONSP (elt)
-             && STRINGP (XCAR (elt)) && CONSP (XCDR (elt))
-             && (fast_string_match_ignore_case (XCAR (elt), fullname) >= 0))
-           {
-             Lisp_Object tmp;
+  if (charset != charset_ascii)
+    {
+      fontp->vertical_centering
+       = (STRINGP (Vvertical_centering_font_regexp)
+          && (fast_string_match_ignore_case
+              (Vvertical_centering_font_regexp, fullname) >= 0));
 
-             for (tmp = XCDR (elt); CONSP (tmp); tmp = XCDR (tmp))
-               if (CONSP (XCAR (tmp))
-                   && ((i = get_charset_id (XCAR (XCAR (tmp))))
-                       >= 0)
-                   && INTEGERP (XCDR (XCAR (tmp)))
-                   && XFASTINT (XCDR (XCAR (tmp))) < 4)
-                 fontp->encoding[i]
-                   = XFASTINT (XCDR (XCAR (tmp)));
-           }
-       }
+      if (find_ccl_program_func)
+       (*find_ccl_program_func) (fontp);
     }
 
-  if (! fontp->font_encoder && find_ccl_program_func)
-    (*find_ccl_program_func) (fontp);
-
-  /* If we loaded a font for a face that has fontset, record the face
-     ID in the fontset for C.  */
-  if (face
-      && !NILP (fontset)
-      && !BASE_FONTSET_P (fontset))
-    FONTSET_SET (fontset, c, make_number (face->id));
   return fontp;
 }
 
@@ -764,24 +1205,34 @@ fs_load_font (f, c, fontname, id, face)
 #pragma optimize("", on)
 #endif
 
-/* Set the ASCII font of the default fontset to FONTNAME if that is
-   not yet set.  */
-void
-set_default_ascii_font (fontname)
+\f
+/* Return ENCODING or a cons of ENCODING and REPERTORY of the font
+   FONTNAME.  ENCODING is a charset symbol that specifies the encoding
+   of the font.  REPERTORY is a charset symbol or nil.  */
+
+
+Lisp_Object
+find_font_encoding (fontname)
      Lisp_Object fontname;
 {
-  if (! CONSP (FONTSET_ASCII (Vdefault_fontset)))
-    {
-      int id = fs_query_fontset (fontname, 2);
+  Lisp_Object tail, elt;
 
-      if (id >= 0)
-       fontname = XCDR (FONTSET_ASCII (FONTSET_FROM_ID (id)));
-      FONTSET_ASCII (Vdefault_fontset)
-       = Fcons (make_number (0), fontname);
+  for (tail = Vfont_encoding_alist; CONSP (tail); tail = XCDR (tail))
+    {
+      elt = XCAR (tail);
+      if (CONSP (elt)
+         && STRINGP (XCAR (elt))
+         && fast_string_match_ignore_case (XCAR (elt), fontname) >= 0
+         && (SYMBOLP (XCDR (elt))
+             ? CHARSETP (XCDR (elt))
+             : CONSP (XCDR (elt)) && CHARSETP (XCAR (XCDR (elt)))))
+       return (XCDR (elt));
     }
+  /* We don't know the encoding of this font.  Let's assume `ascii'.  */
+  return Qascii;
 }
 
-\f
+
 /* Cache data used by fontset_pattern_regexp.  The car part is a
    pattern string containing at least one wild card, the cdr part is
    the corresponding regular expression.  */
@@ -870,6 +1321,8 @@ fs_query_fontset (name, name_pattern)
   if (name_pattern != 1)
     {
       tem = Frassoc (name, Vfontset_alias_alist);
+      if (NILP (tem))
+       tem = Fassoc (name, Vfontset_alias_alist);
       if (CONSP (tem) && STRINGP (XCAR (tem)))
        name = XCAR (tem);
       else if (name_pattern == 0)
@@ -929,280 +1382,600 @@ If REGEXPP is non-nil, PATTERN is a regular expression.  */)
   return FONTSET_NAME (fontset);
 }
 
-/* Return a list of base fontset names matching PATTERN on frame F.
-   If SIZE is not 0, it is the size (maximum bound width) of fontsets
-   to be listed.  */
+/* Return a list of base fontset names matching PATTERN on frame F.  */
+
+Lisp_Object
+list_fontsets (f, pattern, size)
+     FRAME_PTR f;
+     Lisp_Object pattern;
+     int size;
+{
+  Lisp_Object frame, regexp, val;
+  int id;
+
+  XSETFRAME (frame, f);
+
+  regexp = fontset_pattern_regexp (pattern);
+  val = Qnil;
+
+  for (id = 0; id < ASIZE (Vfontset_table); id++)
+    {
+      Lisp_Object fontset, name;
+
+      fontset = FONTSET_FROM_ID (id);
+      if (NILP (fontset)
+         || !BASE_FONTSET_P (fontset)
+         || !EQ (frame, FONTSET_FRAME (fontset)))
+       continue;
+      name = FONTSET_NAME (fontset);
+
+      if (STRINGP (regexp)
+         ? (fast_string_match (regexp, name) < 0)
+         : strcmp (SDATA (pattern), SDATA (name)))
+       continue;
+
+      val = Fcons (Fcopy_sequence (FONTSET_NAME (fontset)), val);
+    }
+
+  return val;
+}
+
+
+/* Free all realized fontsets whose base fontset is BASE.  */
+
+static void
+free_realized_fontsets (base)
+     Lisp_Object base;
+{
+  int id;
+
+#if 0
+  /* For the moment, this doesn't work because free_realized_face
+     doesn't remove FACE from a cache.  Until we find a solution, we
+     suppress this code, and simply use Fclear_face_cache even though
+     that is not efficient.  */
+  BLOCK_INPUT;
+  for (id = 0; id < ASIZE (Vfontset_table); id++)
+    {
+      Lisp_Object this = AREF (Vfontset_table, id);
+
+      if (EQ (FONTSET_BASE (this), base))
+       {
+         Lisp_Object tail;
+
+         for (tail = FONTSET_FACE_ALIST (this); CONSP (tail);
+              tail = XCDR (tail))
+           {
+             FRAME_PTR f = XFRAME (FONTSET_FRAME (this));
+             int face_id = XINT (XCDR (XCAR (tail)));
+             struct face *face = FACE_FROM_ID (f, face_id);
+
+             /* Face THIS itself is also freed by the following call.  */
+             free_realized_face (f, face);
+           }
+       }
+    }
+  UNBLOCK_INPUT;
+#else  /* not 0 */
+  /* But, we don't have to call Fclear_face_cache if no fontset has
+     been realized from BASE.  */
+  for (id = 0; id < ASIZE (Vfontset_table); id++)
+    {
+      Lisp_Object this = AREF (Vfontset_table, id);
+
+      if (CHAR_TABLE_P (this) && EQ (FONTSET_BASE (this), base))
+       {
+         Fclear_face_cache (Qt);
+         break;
+       }
+    }
+#endif /* not 0 */
+}
+
+
+/* Check validity of NAME as a fontset name and return the
+   corresponding fontset.  If not valid, signal an error.
+   If NAME is t, return Vdefault_fontset.  */
+
+static Lisp_Object
+check_fontset_name (name)
+     Lisp_Object name;
+{
+  int id;
+
+  if (EQ (name, Qt))
+    return Vdefault_fontset;
+
+  CHECK_STRING (name);
+  /* First try NAME as literal.  */
+  id = fs_query_fontset (name, 2);
+  if (id < 0)
+    /* For backward compatibility, try again NAME as pattern.  */
+    id = fs_query_fontset (name, 0);
+  if (id < 0)
+    error ("Fontset `%s' does not exist", SDATA (name));
+  return FONTSET_FROM_ID (id);
+}
+
+static void
+accumulate_script_ranges (arg, range, val)
+     Lisp_Object arg, range, val;
+{
+  if (EQ (XCAR (arg), val))
+    {
+      if (CONSP (range))
+       XSETCDR (arg, Fcons (Fcons (XCAR (range), XCDR (range)), XCDR (arg)));
+      else
+       XSETCDR (arg, Fcons (Fcons (range, range), XCDR (arg)));
+    }
+}
+
+
+/* Return an ASCII font name generated from fontset name NAME and
+   font-spec ASCII_SPEC.  NAME is a string conforming to XLFD.  */
+
+static INLINE Lisp_Object
+generate_ascii_font_name (name, ascii_spec)
+     Lisp_Object name, ascii_spec;
+{
+  Lisp_Object font_spec = Ffont_spec (0, NULL);
+  Lisp_Object vec;
+  int i;
+  char xlfd[256];
+
+  if (font_parse_xlfd (SDATA (name), font_spec) < 0)
+    error ("Not an XLFD font name: %s", SDATA (name));
+  for (i = FONT_FOUNDRY_INDEX; i <= FONT_WIDTH_INDEX; i++)
+    if (! NILP (AREF (ascii_spec, i)))
+      ASET (font_spec, i, AREF (ascii_spec, i));
+  i = font_unparse_xlfd (font_spec, 0, xlfd, 256);
+  if (i < 0)
+    error ("Not an XLFD font name: %s", SDATA (name));
+  return make_unibyte_string (xlfd, i);
+}
+
+/* Variables referred in set_fontset_font.  They are set before
+   map_charset_chars is called in Fset_fontset_font.  */
+static Lisp_Object font_def_arg, add_arg;
+static int from_arg, to_arg;
+
+/* Callback function for map_charset_chars in Fset_fontset_font.  In
+   FONTSET, set font_def_arg in a fashion specified by add_arg for
+   characters in RANGE while ignoring the range between from_arg and
+   to_arg.  */
+
+static void
+set_fontset_font (fontset, range)
+     Lisp_Object fontset, range;
+{
+  if (from_arg < to_arg)
+    {
+      int from = XINT (XCAR (range)), to = XINT (XCDR (range));
+
+      if (from < from_arg)
+       {
+         if (to > to_arg)
+           {
+             Lisp_Object range2;
+
+             range2 = Fcons (make_number (to_arg), XCDR (range));
+             FONTSET_ADD (fontset, range, font_def_arg, add_arg);
+             to = to_arg;
+           }
+         if (to > from_arg)
+           range = Fcons (XCAR (range), make_number (from_arg));
+       }
+      else if (to <= to_arg)
+       return;
+      else
+       {
+         if (from < to_arg)
+           range = Fcons (make_number (to_arg), XCDR (range));
+       }
+    }
+  FONTSET_ADD (fontset, range, font_def_arg, add_arg);
+}
+
+extern Lisp_Object QCfamily, QCregistry;
+
+DEFUN ("set-fontset-font", Fset_fontset_font, Sset_fontset_font, 3, 5, 0,
+       doc: /*
+Modify fontset NAME to use FONT-SPEC for TARGET characters.
+
+TARGET may be a cons; (FROM . TO), where FROM and TO are characters.
+In that case, use FONT-SPEC for all characters in the range FROM and
+TO (inclusive).
+
+TARGET may be a script name symbol.  In that case, use FONT-SPEC for
+all characters that belong to the script.
+
+TARGET may be a charset.  In that case, use FONT-SPEC for all
+characters in the charset.
+
+TARGET may be nil.  In that case, use FONT-SPEC for any characters for
+that no FONT-SPEC is specified.
+
+FONT-SPEC may one of these:
+ * A cons (FAMILY . REGISTRY), where FAMILY is a font family name and
+   REGISTRY is a font registry name.  FAMILY may contains foundry
+   name, and REGISTRY may contains encoding name.
+ * A font name string.
 
-Lisp_Object
-list_fontsets (f, pattern, size)
-     FRAME_PTR f;
-     Lisp_Object pattern;
-     int size;
+Optional 4th argument FRAME, if non-nil, is a frame.  This argument is
+kept for backward compatibility and has no meaning.
+
+Optional 5th argument ADD, if non-nil, specifies how to add FONT-SPEC
+to the font specifications for TARGET previously set.  If it is
+`prepend', FONT-SPEC is prepended.  If it is `append', FONT-SPEC is
+appended.  By default, FONT-SPEC overrides the previous settings.  */)
+     (name, target, font_spec, frame, add)
+     Lisp_Object name, target, font_spec, frame, add;
 {
-  Lisp_Object frame, regexp, val;
-  int id;
+  Lisp_Object fontset;
+  Lisp_Object font_def, registry, family;
+  Lisp_Object encoding, repertory;
+  Lisp_Object range_list;
+  struct charset *charset = NULL;
 
-  XSETFRAME (frame, f);
+  fontset = check_fontset_name (name);
 
-  regexp = fontset_pattern_regexp (pattern);
-  val = Qnil;
+  /* The arg FRAME is kept for backward compatibility.  We only check
+     the validity.  */
+  if (!NILP (frame))
+    CHECK_LIVE_FRAME (frame);
 
-  for (id = 0; id < ASIZE (Vfontset_table); id++)
+  if (VECTORP (font_spec))
     {
-      Lisp_Object fontset, name;
-
-      fontset = FONTSET_FROM_ID (id);
-      if (NILP (fontset)
-         || !BASE_FONTSET_P (fontset)
-         || !EQ (frame, FONTSET_FRAME (fontset)))
-       continue;
-      name = FONTSET_NAME (fontset);
+      if (! FONT_SPEC_P (font_spec))
+       Fsignal (Qfont, list2 (build_string ("invalid font-spec"), font_spec));
+    }
+  else if (CONSP (font_spec))
+    {
+      Lisp_Object args[4];
+      int i= 0;
 
-      if (!NILP (regexp)
-         ? (fast_string_match (regexp, name) < 0)
-         : strcmp (SDATA (pattern), SDATA (name)))
-       continue;
+      family = XCAR (font_spec);
+      registry = XCDR (font_spec);
 
-      if (size)
+      if (! NILP (family))
        {
-         struct font_info *fontp;
-         fontp = FS_LOAD_FONT (f, 0, NULL, id);
-         if (!fontp || size != fontp->size)
-           continue;
+         CHECK_STRING (family);
+         args[i++] = QCfamily;
+         args[i++] = family;
        }
-      val = Fcons (Fcopy_sequence (FONTSET_NAME (fontset)), val);
+      CHECK_STRING (registry);
+      args[i++] = QCregistry;
+      args[i++] = registry;
+      font_spec = Ffont_spec (i, args);
     }
+  else
+    {
+      Lisp_Object args[2];
 
-  return val;
-}
-
-DEFUN ("new-fontset", Fnew_fontset, Snew_fontset, 2, 2, 0,
-       doc: /* Create a new fontset NAME that contains font information in FONTLIST.
-FONTLIST is an alist of charsets vs corresponding font name patterns.  */)
-     (name, fontlist)
-     Lisp_Object name, fontlist;
-{
-  Lisp_Object fontset, elements, ascii_font;
-  Lisp_Object tem, tail, elt;
-  int id;
+      CHECK_STRING (font_spec);
+      args[0] = QCname;
+      args[1] = font_spec;
+      font_spec = Ffont_spec (2, args);
+    }
 
-  (*check_window_system_func) ();
+  family = AREF (font_spec, FONT_FAMILY_INDEX);
+  if (! NILP (family) && SYMBOLP (family))
+    family = SYMBOL_NAME (family);
+  registry = AREF (font_spec, FONT_REGISTRY_INDEX);
+  if (! NILP (registry) && SYMBOLP (registry))
+    registry = SYMBOL_NAME (registry);
 
-  CHECK_STRING (name);
-  CHECK_LIST (fontlist);
+  encoding = find_font_encoding (concat2 (family, registry));
+  if (NILP (encoding))
+    encoding = Qascii;
 
-  name = Fdowncase (name);
-  id = fs_query_fontset (name, 2);
-  if (id >= 0)
+  if (SYMBOLP (encoding))
     {
-      fontset = FONTSET_FROM_ID (id);
-      tem = FONTSET_NAME (fontset);
-      error ("Fontset `%s' matches the existing fontset `%s'",
-            SDATA (name),  SDATA (tem));
+      CHECK_CHARSET (encoding);
+      encoding = repertory = CHARSET_SYMBOL_ID (encoding);
+    }
+  else
+    {
+      repertory = XCDR (encoding);
+      encoding = XCAR (encoding);
+      CHECK_CHARSET (encoding);
+      encoding = CHARSET_SYMBOL_ID (encoding);
+      if (! NILP (repertory) && SYMBOLP (repertory))
+       {
+         CHECK_CHARSET (repertory);
+         repertory = CHARSET_SYMBOL_ID (repertory);
+       }
     }
+  font_def = Fmake_vector (make_number (3), font_spec);
+  ASET (font_def, 1, encoding);
+  ASET (font_def, 2, repertory);
 
-  /* Check the validity of FONTLIST while creating a template for
-     fontset elements.  */
-  elements = ascii_font = Qnil;
-  for (tail = fontlist; CONSP (tail); tail = XCDR (tail))
+  if (CHARACTERP (target))
+    range_list = Fcons (Fcons (target, target), Qnil);
+  else if (CONSP (target))
     {
-      int c, charset;
+      Lisp_Object from, to;
 
-      tem = XCAR (tail);
-      if (!CONSP (tem)
-         || (charset = get_charset_id (XCAR (tem))) < 0
-         || (!STRINGP (XCDR (tem)) && !CONSP (XCDR (tem))))
-       error ("Elements of fontlist must be a cons of charset and font name pattern");
+      from = Fcar (target);
+      to = Fcdr (target);
+      CHECK_CHARACTER (from);
+      CHECK_CHARACTER (to);
+      range_list = Fcons (target, Qnil);
+    }
+  else if (SYMBOLP (target) && !NILP (target))
+    {
+      Lisp_Object script_list;
+      Lisp_Object val;
 
-      tem = XCDR (tem);
-      if (STRINGP (tem))
-       tem = Fdowncase (tem);
-      else
-       tem = Fcons (Fdowncase (Fcar (tem)), Fdowncase (Fcdr (tem)));
-      if (charset == CHARSET_ASCII)
-       ascii_font = tem;
-      else
+      range_list = Qnil;
+      script_list = XCHAR_TABLE (Vchar_script_table)->extras[0];
+      if (! NILP (Fmemq (target, script_list)))
+       {
+         val = Fcons (target, Qnil);
+         map_char_table (accumulate_script_ranges, Qnil, Vchar_script_table,
+                         val);
+         range_list = XCDR (val);
+         if (EQ (target, Qlatin))
+           {
+             if (VECTORP (font_spec))
+               val = generate_ascii_font_name (FONTSET_NAME (fontset),
+                                               font_spec);
+             else
+               val = font_spec;
+             FONTSET_ASCII (fontset) = val;
+           }
+       }
+      if (CHARSETP (target))
        {
-         c = MAKE_CHAR (charset, 0, 0);
-         elements = Fcons (Fcons (make_number (c), tem), elements);
+         if (EQ (target, Qascii))
+           {
+             if (VECTORP (font_spec))
+               font_spec = generate_ascii_font_name (FONTSET_NAME (fontset),
+                                                     font_spec);
+             FONTSET_ASCII (fontset) = font_spec;
+             range_list = Fcons (Fcons (make_number (0), make_number (127)),
+                                 Qnil);
+           }
+         else
+           {
+             CHECK_CHARSET_GET_CHARSET (target, charset);
+           }
        }
+      else if (NILP (range_list))
+       error ("Invalid script or charset name: %s",
+              SDATA (SYMBOL_NAME (target)));
     }
+  else if (NILP (target))
+    range_list = Fcons (Qnil, Qnil);
+  else
+    error ("Invalid target for setting a font");
 
-  if (NILP (ascii_font))
-    error ("No ASCII font in the fontlist");
 
-  fontset = make_fontset (Qnil, name, Qnil);
-  FONTSET_ASCII (fontset) = Fcons (make_number (0), ascii_font);
-  for (; CONSP (elements); elements = XCDR (elements))
+  if (charset)
     {
-      elt = XCAR (elements);
-      tem = XCDR (elt);
-      if (STRINGP (tem))
-       tem = font_family_registry (tem, 0);
-      tem = Fcons (XCAR (elt), tem);
-      FONTSET_SET (fontset, XINT (XCAR (elt)), tem);
+      font_def_arg = font_def;
+      add_arg = add;
+      if (NILP (range_list))
+       from_arg = to_arg = 0;
+      else
+       from_arg = XINT (XCAR (XCAR (range_list))),
+         to_arg = XINT (XCDR (XCAR (range_list)));
+
+      map_charset_chars (set_fontset_font, Qnil, fontset, charset,
+                        CHARSET_MIN_CODE (charset),
+                        CHARSET_MAX_CODE (charset));
     }
+  for (; CONSP (range_list); range_list = XCDR (range_list))
+    FONTSET_ADD (fontset, XCAR (range_list), font_def, add);
+
+  /* Free all realized fontsets whose base is FONTSET.  This way, the
+     specified character(s) are surely redisplayed by a correct
+     font.  */
+  free_realized_fontsets (fontset);
 
   return Qnil;
 }
 
 
-/* Clear all elements of FONTSET for multibyte characters.  */
-
-static void
-clear_fontset_elements (fontset)
-     Lisp_Object fontset;
-{
-  int i;
-
-  for (i = CHAR_TABLE_SINGLE_BYTE_SLOTS; i < CHAR_TABLE_ORDINARY_SLOTS; i++)
-    XCHAR_TABLE (fontset)->contents[i] = Qnil;
-}
+DEFUN ("new-fontset", Fnew_fontset, Snew_fontset, 2, 2, 0,
+       doc: /* Create a new fontset NAME from font information in FONTLIST.
 
+FONTLIST is an alist of scripts vs the corresponding font specification list.
+Each element of FONTLIST has the form (SCRIPT FONT-SPEC ...), where a
+character of SCRIPT is displayed by a font that matches one of
+FONT-SPEC.
 
-/* Check validity of NAME as a fontset name and return the
-   corresponding fontset.  If not valid, signal an error.
-   If NAME is nil, return Vdefault_fontset.  */
+SCRIPT is a symbol that appears in the first extra slot of the
+char-table `char-script-table'.
 
-static Lisp_Object
-check_fontset_name (name)
-     Lisp_Object name;
+FONT-SPEC is a vector, a cons, or a string.  See the documentation of
+`set-fontset-font' for the meaning.  */)
+  (name, fontlist)
+     Lisp_Object name, fontlist;
 {
+  Lisp_Object fontset;
+  Lisp_Object val;
   int id;
 
-  if (EQ (name, Qnil))
-    return Vdefault_fontset;
-
   CHECK_STRING (name);
-  /* First try NAME as literal.  */
-  id = fs_query_fontset (name, 2);
-  if (id < 0)
-    /* For backward compatibility, try again NAME as pattern.  */
-    id = fs_query_fontset (name, 0);
-  if (id < 0)
-    error ("Fontset `%s' does not exist", SDATA (name));
-  return FONTSET_FROM_ID (id);
-}
-
-/* Downcase FONTNAME or car and cdr of FONTNAME.  If FONTNAME is a
-   string, maybe change FONTNAME to (FAMILY . REGISTRY).  */
-
-static Lisp_Object
-regularize_fontname (Lisp_Object fontname)
-{
-  Lisp_Object family, registry;
-
-  if (STRINGP (fontname))
-    return font_family_registry (Fdowncase (fontname), 0);
+  CHECK_LIST (fontlist);
 
-  CHECK_CONS (fontname);
-  family = XCAR (fontname);
-  registry = XCDR (fontname);
-  if (!NILP (family))
+  id = fs_query_fontset (name, 0);
+  if (id < 0)
+    {
+      name = Fdowncase (name);
+      val = split_font_name_into_vector (name);
+      if (NILP (val) || NILP (AREF (val, 12)) || NILP (AREF (val, 13)))
+       error ("Fontset name must be in XLFD format");
+      if (strcmp (SDATA (AREF (val, 12)), "fontset"))
+       error ("Registry field of fontset name must be \"fontset\"");
+      Vfontset_alias_alist
+       = Fcons (Fcons (name,
+                       concat2 (concat2 (AREF (val, 12), build_string ("-")),
+                                AREF (val, 13))),
+                Vfontset_alias_alist);
+      ASET (val, 12, build_string ("iso8859-1"));
+      fontset = make_fontset (Qnil, name, Qnil);
+      FONTSET_ASCII (fontset) = build_font_name_from_vector (val);
+    }
+  else
     {
-      CHECK_STRING (family);
-      family = Fdowncase (family);
+      fontset = FONTSET_FROM_ID (id);;
+      free_realized_fontsets (fontset);
+      Fset_char_table_range (fontset, Qt, Qnil);
     }
-  if (!NILP (registry))
+
+  for (; ! NILP (fontlist); fontlist = Fcdr (fontlist))
     {
-      CHECK_STRING (registry);
-      registry = Fdowncase (registry);
+      Lisp_Object elt, script;
+
+      elt = Fcar (fontlist);
+      script = Fcar (elt);
+      elt = Fcdr (elt);
+      if (CONSP (elt) && (NILP (XCDR (elt)) || CONSP (XCDR (elt))))
+       for (; CONSP (elt); elt = XCDR (elt))
+         Fset_fontset_font (name, script, XCAR (elt), Qnil, Qappend);
+      else
+       Fset_fontset_font (name, script, elt, Qnil, Qappend);
     }
-  return Fcons (family, registry);
+  return name;
 }
 
-DEFUN ("set-fontset-font", Fset_fontset_font, Sset_fontset_font, 3, 4, 0,
-       doc: /* Modify fontset NAME to use FONTNAME for CHARACTER.
 
-If NAME is nil, modify the default fontset.
-CHARACTER may be a cons; (FROM . TO), where FROM and TO are
-non-generic characters.  In that case, use FONTNAME
-for all characters in the range FROM and TO (inclusive).
-CHARACTER may be a charset.  In that case, use FONTNAME
-for all character in the charsets.
+/* Alist of automatically created fontsets.  Each element is a cons
+   (FONTNAME . FONTSET-ID).  */
+static Lisp_Object auto_fontset_alist;
 
-FONTNAME may be a cons; (FAMILY . REGISTRY), where FAMILY is a family
-name of a font, REGISTRY is a registry name of a font.  */)
-     (name, character, fontname, frame)
-     Lisp_Object name, character, fontname, frame;
+int
+new_fontset_from_font_name (Lisp_Object fontname)
 {
-  Lisp_Object fontset, elt;
-  Lisp_Object realized;
-  int from, to;
+  Lisp_Object val;
+  Lisp_Object name;
+  Lisp_Object vec;
   int id;
 
-  fontset = check_fontset_name (name);
+  fontname = Fdowncase (fontname);
+  val = Fassoc (fontname, auto_fontset_alist);
+  if (CONSP (val))
+    return XINT (XCDR (val));
 
-  if (CONSP (character))
+  vec = split_font_name_into_vector (fontname);
+  if ( NILP (vec))
+    vec = Fmake_vector (make_number (14), build_string (""));
+  ASET (vec, 12, build_string ("fontset"));
+  if (NILP (auto_fontset_alist))
     {
-      /* CH should be (FROM . TO) where FROM and TO are non-generic
-        characters.  */
-      CHECK_NUMBER_CAR (character);
-      CHECK_NUMBER_CDR (character);
-      from = XINT (XCAR (character));
-      to = XINT (XCDR (character));
-      if (!char_valid_p (from, 0) || !char_valid_p (to, 0))
-       error ("Character range should be by non-generic characters");
-      if (!NILP (name)
-         && (SINGLE_BYTE_CHAR_P (from) || SINGLE_BYTE_CHAR_P (to)))
-       error ("Can't change font for a single byte character");
+      ASET (vec, 13, build_string ("startup"));
+      name = build_font_name_from_vector (vec);
     }
-  else if (SYMBOLP (character))
+  else
     {
-      elt = Fget (character, Qcharset);
-      if (!VECTORP (elt) || ASIZE (elt) < 1 || !NATNUMP (AREF (elt, 0)))
-       error ("Invalid charset: %s", SDATA (SYMBOL_NAME (character)));
-      from = MAKE_CHAR (XINT (AREF (elt, 0)), 0, 0);
-      to = from;
+      char temp[20];
+      int len = XINT (Flength (auto_fontset_alist));
+
+      sprintf (temp, "auto%d", len);
+      ASET (vec, 13, build_string (temp));
+      name = build_font_name_from_vector (vec);
     }
+  name = Fnew_fontset (name, list2 (list2 (Qascii, fontname),
+                                   list2 (Fcons (make_number (0),
+                                                 make_number (MAX_CHAR)),
+                                          fontname)));
+  id = fs_query_fontset (name, 0);
+  auto_fontset_alist
+    = Fcons (Fcons (fontname, make_number (id)), auto_fontset_alist);
+  return id;
+}
+
+#ifdef USE_FONT_BACKEND
+int
+new_fontset_from_font (font_object)
+     Lisp_Object font_object;
+{
+  Lisp_Object font_name = font_get_name (font_object);
+  Lisp_Object font_spec = font_get_spec (font_object);
+  Lisp_Object fontset_spec, short_name, name, fontset;
+
+  if (NILP (auto_fontset_alist))
+    short_name = build_string ("fontset-startup");
   else
     {
-      CHECK_NUMBER (character);
-      from = XINT (character);
-      to = from;
+      char temp[32];
+      int len = XINT (Flength (auto_fontset_alist));
+
+      sprintf (temp, "fontset-auto%d", len);
+      short_name = build_string (temp);
     }
-  if (!char_valid_p (from, 1))
-    invalid_character (from);
-  if (SINGLE_BYTE_CHAR_P (from))
-    error ("Can't change font for a single byte character");
-  if (from < to)
+  fontset_spec = Fcopy_sequence (font_spec);
+  ASET (fontset_spec, FONT_REGISTRY_INDEX, short_name);
+  name = Ffont_xlfd_name (fontset_spec);
+  if (NILP (name))
     {
-      if (!char_valid_p (to, 1))
-       invalid_character (to);
-      if (SINGLE_BYTE_CHAR_P (to))
-       error ("Can't change font for a single byte character");
-    }
+      int i;
 
-  /* The arg FRAME is kept for backward compatibility.  We only check
-     the validity.  */
-  if (!NILP (frame))
-    CHECK_LIVE_FRAME (frame);
+      for (i = 0; i < FONT_SIZE_INDEX; i++)
+       if ((i != FONT_FAMILY_INDEX) && (i != FONT_REGISTRY_INDEX))
+         ASET (fontset_spec, i, Qnil);
+      name = Ffont_xlfd_name (fontset_spec);
+      if (NILP (name))
+       abort ();
+    }
+  fontset = make_fontset (Qnil, name, Qnil);
+  FONTSET_ASCII (fontset) = font_name;
+  font_spec = Fcons (SYMBOL_NAME (AREF (font_spec, FONT_FAMILY_INDEX)),
+                    SYMBOL_NAME (AREF (font_spec, FONT_REGISTRY_INDEX)));
+  Fset_fontset_font (name, Qlatin, font_spec, Qnil, Qnil);
+  Fset_fontset_font (name, Qnil, font_spec, Qnil, Qnil);
+  return XINT (FONTSET_ID (fontset));
+}
 
-  elt = Fcons (make_number (from), regularize_fontname (fontname));
-  for (; from <= to; from++)
-    FONTSET_SET (fontset, from, elt);
-  Foptimize_char_table (fontset);
+struct font *
+fontset_ascii_font (f, id)
+     FRAME_PTR f;
+     int id;
+{
+  Lisp_Object fontset = FONTSET_FROM_ID (id);
+  Lisp_Object ascii_slot = FONTSET_ASCII (fontset);
+  Lisp_Object val, font_object;
 
-  /* If there's a realized fontset REALIZED whose parent is FONTSET,
-     clear all the elements of REALIZED and free all multibyte faces
-     whose fontset is REALIZED.  This way, the specified character(s)
-     are surely redisplayed by a correct font.  */
-  for (id = 0; id < ASIZE (Vfontset_table); id++)
+  if (CONSP (ascii_slot))
     {
-      realized = AREF (Vfontset_table, id);
-      if (!NILP (realized)
-         && !BASE_FONTSET_P (realized)
-         && EQ (FONTSET_BASE (realized), fontset))
+      Lisp_Object ascii_font_name = XCAR (ascii_slot);
+
+      font_object = Qnil;
+      for (val = XCDR (ascii_slot); ! NILP (val); val = XCDR (val))
+       {
+         Lisp_Object frame = font_get_frame (XCAR (val));
+
+         if (NILP (frame) || XFRAME (frame) == f)
+           {
+             font_object = XCAR (val);
+             if (XSAVE_VALUE (font_object)->integer == 0)
+               {
+                 font_object = font_open_by_name (f, SDATA (ascii_font_name));
+                 XSETCAR (val, font_object);
+               }
+             break;
+           }
+       }
+      if (NILP (font_object))
        {
-         FRAME_PTR f = XFRAME (FONTSET_FRAME (realized));
-         clear_fontset_elements (realized);
-         free_realized_multibyte_face (f, id);
+         font_object = font_open_by_name (f, SDATA (ascii_font_name));
+         XSETCDR (ascii_slot, Fcons (font_object, XCDR (ascii_slot)));
        }
     }
-
-  return Qnil;
+  else
+    {
+      font_object = font_open_by_name (f, SDATA (ascii_slot));
+      FONTSET_ASCII (fontset) = Fcons (ascii_slot, Fcons (font_object, Qnil));
+    }
+  if (NILP (font_object))
+    return NULL;
+  return XSAVE_VALUE (font_object)->pointer;
 }
 
+#endif /* USE_FONT_BACKEND */
+
 DEFUN ("font-info", Ffont_info, Sfont_info, 1, 2, 0,
        doc: /* Return information about a font named NAME on frame FRAME.
 If FRAME is omitted or nil, use the selected frame.
@@ -1223,6 +1996,7 @@ If the named font is not yet loaded, return nil.  */)
   FRAME_PTR f;
   struct font_info *fontp;
   Lisp_Object info;
+  Lisp_Object font_object;
 
   (*check_window_system_func) ();
 
@@ -1236,6 +2010,17 @@ If the named font is not yet loaded, return nil.  */)
   if (!query_font_func)
     error ("Font query function is not supported");
 
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      font_object = font_open_by_name (f, SDATA (name));
+      if (NILP (font_object))
+       fontp = NULL;
+      else
+       fontp = (struct font_info *) XSAVE_VALUE (font_object)->pointer;
+    }
+  else
+#endif /* USE_FONT_BACKEND */
   fontp = (*query_font_func) (f, SDATA (name));
   if (!fontp)
     return Qnil;
@@ -1250,6 +2035,10 @@ If the named font is not yet loaded, return nil.  */)
   XVECTOR (info)->contents[5] = make_number (fontp->relative_compose);
   XVECTOR (info)->contents[6] = make_number (fontp->default_ascent);
 
+#ifdef USE_FONT_BACKEND
+  if (! NILP (font_object))
+    font_close_object (f, font_object);
+#endif /* USE_FONT_BACKEND */
   return info;
 }
 
@@ -1288,20 +2077,24 @@ DEFUN ("internal-char-font", Finternal_char_font, Sinternal_char_font, 1, 2, 0,
 {
   int pos, pos_byte, dummy;
   int face_id;
-  int c, code;
+  int c;
   struct frame *f;
   struct face *face;
+  Lisp_Object charset, rfont_def;
+  int cs_id;
 
   if (NILP (position))
     {
-      CHECK_NATNUM (ch);
+      CHECK_CHARACTER (ch);
       c = XINT (ch);
       f = XFRAME (selected_frame);
       face_id = DEFAULT_FACE_ID;
+      pos = -1;
+      cs_id = -1;
     }
   else
     {
-      Lisp_Object window;
+      Lisp_Object window, charset;
       struct window *w;
 
       CHECK_NUMBER_COERCE_MARKER (position);
@@ -1322,231 +2115,254 @@ DEFUN ("internal-char-font", Finternal_char_font, Sinternal_char_font, 1, 2, 0,
       w = XWINDOW (window);
       f = XFRAME (w->frame);
       face_id = face_at_buffer_position (w, pos, -1, -1, &dummy, pos + 100, 0);
+      charset = Fget_char_property (position, Qcharset, Qnil);
+      if (CHARSETP (charset))
+       cs_id = XINT (CHARSET_SYMBOL_ID (charset));
+      else
+       cs_id = -1;
     }
   if (! CHAR_VALID_P (c, 0))
     return Qnil;
-  face_id = FACE_FOR_CHAR (f, FACE_FROM_ID (f, face_id), c);
+  face_id = FACE_FOR_CHAR (f, FACE_FROM_ID (f, face_id), c, pos, Qnil);
   face = FACE_FROM_ID (f, face_id);
-  if (! face->font || ! face->font_name)
-    return Qnil;
-
-  {
-    struct font_info *fontp = (*get_font_info_func) (f, face->font_info_id);
-    XChar2b char2b;
-    int c1, c2, charset;
-
-    SPLIT_CHAR (c, charset, c1, c2);
-    if (c2 > 0)
-      STORE_XCHAR2B (&char2b, c1, c2);
-    else
-      STORE_XCHAR2B (&char2b, 0, c1);
-    FRAME_RIF (f)->encode_char (c, &char2b, fontp, NULL);
-    code = (XCHAR2B_BYTE1 (&char2b) << 8) | XCHAR2B_BYTE2 (&char2b);
-  }
-  return Fcons (build_string (face->font_name), make_number (code));
+  rfont_def = fontset_font (FONTSET_FROM_ID (face->fontset), c, face, cs_id);
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      if (VECTORP (rfont_def) && ! NILP (AREF (rfont_def, 3)))
+       {
+         Lisp_Object font_object = XCAR (AREF (rfont_def, 3));
+         struct font *font = XSAVE_VALUE (font_object)->pointer;
+         unsigned code = font->driver->encode_char (font, c);
+         Lisp_Object fontname = font_get_name (font_object);
+
+         if (code == FONT_INVALID_CODE)
+           return Fcons (fontname, Qnil);
+         if (code <= MOST_POSITIVE_FIXNUM)
+           return Fcons (fontname, make_number (code));
+         return Fcons (fontname, Fcons (make_number (code >> 16),
+                                        make_number (code & 0xFFFF)));
+       }
+      return Qnil;
+    }
+#endif /* USE_FONT_BACKEND */
+  if (VECTORP (rfont_def) && STRINGP (AREF (rfont_def, 3)))
+    {
+      Lisp_Object font_def;
+      struct font_info *fontp;
+      struct charset *charset;
+      XChar2b char2b;
+      int code;
+
+      font_def = AREF (rfont_def, 2);
+      charset = CHARSET_FROM_ID (XINT (AREF (font_def, 1)));
+      code = ENCODE_CHAR (charset, c);
+      if (code == CHARSET_INVALID_CODE (charset))
+       return (Fcons (AREF (rfont_def, 3), Qnil));
+      STORE_XCHAR2B (&char2b, ((code >> 8) & 0xFF), (code & 0xFF));
+      fontp = (*get_font_info_func) (f, XINT (AREF (rfont_def, 1)));
+      FRAME_RIF (f)->encode_char (c, &char2b, fontp, charset, NULL);
+      code = (XCHAR2B_BYTE1 (&char2b) << 8) | XCHAR2B_BYTE2 (&char2b);
+      return (Fcons (AREF (rfont_def, 3), make_number (code)));
+    }
+  return Qnil;
 }
 
 
-/* Called from Ffontset_info via map_char_table on each leaf of
-   fontset.  ARG is a copy of the default fontset.  The current leaf
-   is indexed by CHARACTER and has value ELT.  This function override
-   the copy by ELT if ELT is not nil.  */
-
-static void
-override_font_info (fontset, character, elt)
-     Lisp_Object fontset, character, elt;
-{
-  if (! NILP (elt))
-    Faset (fontset, character, elt);
-}
+DEFUN ("fontset-info", Ffontset_info, Sfontset_info, 1, 2, 0,
+       doc: /* Return information about a fontset FONTSET on frame FRAME.
+The value is a char-table of which elements has this form.
 
-/* Called from Ffontset_info via map_char_table on each leaf of
-   fontset.  ARG is a list (LAST FONT-INFO ...), where LAST is `(last
-   ARG)' and FONT-INFOs have this form:
-       (CHAR FONT-SPEC) or ((FROM . TO) FONT-SPEC)
-   The current leaf is indexed by CHARACTER and has value ELT.  This
-   function add the information of the current leaf to ARG by
-   appending a new element or modifying the last element.  */
+    ((FONT-PATTERN OPENED-FONT ...) ...)
 
-static void
-accumulate_font_info (arg, character, elt)
-     Lisp_Object arg, character, elt;
-{
-  Lisp_Object last, last_char, last_elt;
+FONT-PATTERN is a vector:
 
-  if (!CONSP (elt) && !SINGLE_BYTE_CHAR_P (XINT (character)))
-    elt = FONTSET_REF (Vdefault_fontset, XINT (character));
-  if (!CONSP (elt))
-    return;
-  last = XCAR (arg);
-  last_char = XCAR (XCAR (last));
-  last_elt = XCAR (XCDR (XCAR (last)));
-  elt = XCDR (elt);
-  if (!NILP (Fequal (elt, last_elt)))
-    {
-      int this_charset = CHAR_CHARSET (XINT (character));
+       [ FAMILY WEIGHT SLANT SWIDTH ADSTYLE REGISTRY ]
 
-      if (CONSP (last_char))   /* LAST_CHAR == (FROM . TO)  */
-       {
-         if (this_charset == CHAR_CHARSET (XINT (XCAR (last_char))))
-           {
-             XSETCDR (last_char, character);
-             return;
-           }
-       }
-      else if (XINT (last_char) == XINT (character))
-       return;
-      else if (this_charset == CHAR_CHARSET (XINT (last_char)))
-       {
-         XSETCAR (XCAR (last), Fcons (last_char, character));
-         return;
-       }
-    }
-  XSETCDR (last, Fcons (Fcons (character, Fcons (elt, Qnil)), Qnil));
-  XSETCAR (arg, XCDR (last));
-}
+or a string of font name pattern.
 
+OPENED-FONT is a name of a font actually opened.
 
-DEFUN ("fontset-info", Ffontset_info, Sfontset_info, 1, 2, 0,
-       doc: /* Return information about a fontset named NAME on frame FRAME.
-If NAME is nil, return information about the default fontset.
-The value is a vector:
-  [ SIZE HEIGHT ((CHARSET-OR-RANGE FONT-SPEC OPENED ...) ...) ],
-where,
-  SIZE is the maximum bound width of ASCII font in the fontset,
-  HEIGHT is the maximum bound height of ASCII font in the fontset,
-  CHARSET-OR-RANGE is a charset, a character (may be a generic character)
-    or a cons of two characters specifying the range of characters.
-  FONT-SPEC is a fontname pattern string or a cons (FAMILY . REGISTRY),
-    where FAMILY is a `FAMILY' field of a XLFD font name,
-    REGISTRY is a `CHARSET_REGISTRY' field of a XLFD font name.
-    FAMILY may contain a `FOUNDRY' field at the head.
-    REGISTRY may contain a `CHARSET_ENCODING' field at the tail.
-  OPENEDs are names of fonts actually opened.
-If the ASCII font is not yet opened, SIZE and HEIGHT are 0.
-If FRAME is omitted, it defaults to the currently selected frame.  */)
-     (name, frame)
-     Lisp_Object name, frame;
+The char-table has one extra slot.  The value is a char-table
+containing the information about the derived fonts from the default
+fontset.  The format is the same as abobe.  */)
+     (fontset, frame)
+     Lisp_Object fontset, frame;
 {
-  Lisp_Object fontset;
   FRAME_PTR f;
-  int indices[3];
-  Lisp_Object val, tail, elt;
-  Lisp_Object *realized;
-  struct font_info *fontp = NULL;
-  int n_realized = 0;
-  int i;
+  Lisp_Object *realized[2], fontsets[2], tables[2];
+  Lisp_Object val, elt;
+  int c, i, j, k;
 
   (*check_window_system_func) ();
 
-  fontset = check_fontset_name (name);
+  fontset = check_fontset_name (fontset);
 
   if (NILP (frame))
     frame = selected_frame;
   CHECK_LIVE_FRAME (frame);
   f = XFRAME (frame);
 
-  /* Recode realized fontsets whose base is FONTSET in the table
-     `realized'.  */
-  realized = (Lisp_Object *) alloca (sizeof (Lisp_Object)
-                                    * ASIZE (Vfontset_table));
-  for (i = 0; i < ASIZE (Vfontset_table); i++)
+  /* Recode fontsets realized on FRAME from the base fontset FONTSET
+     in the table `realized'.  */
+  realized[0] = (Lisp_Object *) alloca (sizeof (Lisp_Object)
+                                       * ASIZE (Vfontset_table));
+  for (i = j = 0; i < ASIZE (Vfontset_table); i++)
     {
       elt = FONTSET_FROM_ID (i);
       if (!NILP (elt)
-         && EQ (FONTSET_BASE (elt), fontset))
-       realized[n_realized++] = elt;
+         && EQ (FONTSET_BASE (elt), fontset)
+         && EQ (FONTSET_FRAME (elt), frame))
+       realized[0][j++] = elt;
     }
+  realized[0][j] = Qnil;
 
-  if (! EQ (fontset, Vdefault_fontset))
+  realized[1] = (Lisp_Object *) alloca (sizeof (Lisp_Object)
+                                       * ASIZE (Vfontset_table));
+  for (i = j = 0; ! NILP (realized[0][i]); i++)
     {
-      /* Merge FONTSET onto the default fontset.  */
-      val = Fcopy_sequence (Vdefault_fontset);
-      map_char_table (override_font_info, Qnil, fontset, fontset, val, 0, indices);
-      fontset = val;
+      elt = FONTSET_DEFAULT (realized[0][i]);
+      if (! NILP (elt))
+       realized[1][j++] = elt;
     }
+  realized[1][j] = Qnil;
 
-  /* Accumulate information of the fontset in VAL.  The format is
-     (LAST FONT-INFO FONT-INFO ...), where FONT-INFO is (CHAR-OR-RANGE
-     FONT-SPEC).  See the comment for accumulate_font_info for the
-     detail.  */
-  val = Fcons (Fcons (make_number (0),
-                     Fcons (XCDR (FONTSET_ASCII (fontset)), Qnil)),
-              Qnil);
-  val = Fcons (val, val);
-  map_char_table (accumulate_font_info, Qnil, fontset, fontset, val, 0, indices);
-  val = XCDR (val);
-
-  /* For each FONT-INFO, if CHAR_OR_RANGE (car part) is a generic
-     character for a charset, replace it with the charset symbol.  If
-     fonts are opened for FONT-SPEC, append the names of the fonts to
-     FONT-SPEC.  */
-  for (tail = val; CONSP (tail); tail = XCDR (tail))
+  tables[0] = Fmake_char_table (Qfontset_info, Qnil);
+  tables[1] = Fmake_char_table (Qnil, Qnil);
+  XCHAR_TABLE (tables[0])->extras[0] = tables[1];
+  fontsets[0] = fontset;
+  fontsets[1] = Vdefault_fontset;
+
+  /* Accumulate information of the fontset in TABLE.  The format of
+     each element is ((FONT-SPEC OPENED-FONT ...) ...).  */
+  for (k = 0; k <= 1; k++)
     {
-      int c;
-      elt = XCAR (tail);
-      if (INTEGERP (XCAR (elt)))
-       {
-         int charset, c1, c2;
-         c = XINT (XCAR (elt));
-         SPLIT_CHAR (c, charset, c1, c2);
-         if (c1 == 0)
-           XSETCAR (elt, CHARSET_SYMBOL (charset));
-       }
-      else
-       c = XINT (XCAR (XCAR (elt)));
-      for (i = 0; i < n_realized; i++)
+      for (c = 0; c <= MAX_CHAR; )
        {
-         Lisp_Object face_id, font;
-         struct face *face;
+         int from, to;
 
-         face_id = FONTSET_REF_VIA_BASE (realized[i], c);
-         if (INTEGERP (face_id))
+         if (c <= MAX_5_BYTE_CHAR)
+           {
+             val = char_table_ref_and_range (fontsets[k], c, &from, &to);
+             if (to > MAX_5_BYTE_CHAR)
+               to = MAX_5_BYTE_CHAR;
+           }
+         else
            {
-             face = FACE_FROM_ID (f, XINT (face_id));
-             if (face && face->font && face->font_name)
+             val = FONTSET_FALLBACK (fontsets[k]);
+             to = MAX_CHAR;
+           }
+         if (VECTORP (val))
+           {
+             Lisp_Object alist;
+
+             /* At first, set ALIST to ((FONT-SPEC) ...).  */
+             for (alist = Qnil, i = 0; i < ASIZE (val); i++)
+               alist = Fcons (Fcons (AREF (AREF (val, i), 0), Qnil), alist);
+             alist = Fnreverse (alist);
+
+             /* Then store opend font names to cdr of each elements.  */
+             for (i = 0; ! NILP (realized[k][i]); i++)
                {
-                 font = build_string (face->font_name);
-                 if (NILP (Fmember (font, XCDR (XCDR (elt)))))
-                   XSETCDR (XCDR (elt), Fcons (font, XCDR (XCDR (elt))));
+                 if (c <= MAX_5_BYTE_CHAR)
+                   val = FONTSET_REF (realized[k][i], c);
+                 else
+                   val = FONTSET_FALLBACK (realized[k][i]);
+                 if (! VECTORP (val))
+                   continue;
+                 /* VAL is [int int ?
+                            [FACE-ID FONT-INDEX FONT-DEF FONT-NAME] ...].
+                    If a font of an element is already opened,
+                    FONT-NAME is the name of a opened font.  */
+                 for (j = 3; j < ASIZE (val); j++)
+                   if (STRINGP (AREF (AREF (val, j), 3)))
+                     {
+                       Lisp_Object font_idx;
+
+                       font_idx = AREF (AREF (val, j), 1);
+                       elt = Fassq (AREF (AREF (AREF (val, j), 2), 0), alist);
+                       if (CONSP (elt)
+                           && NILP (Fmemq (font_idx, XCDR(elt))))
+                         nconc2 (elt, Fcons (font_idx, Qnil));
+                     }
                }
+             for (val = alist; CONSP (val); val = XCDR (val))
+               for (elt = XCDR (XCAR (val)); CONSP (elt); elt = XCDR (elt))
+                 {
+                   struct font_info *font_info
+                     = (*get_font_info_func) (f, XINT (XCAR (elt)));
+                   XSETCAR (elt, build_string (font_info->full_name));
+                 }
+
+             /* Store ALIST in TBL for characters C..TO.  */
+             if (c <= MAX_5_BYTE_CHAR)
+               char_table_set_range (tables[k], c, to, alist);
+             else
+               XCHAR_TABLE (tables[k])->defalt = alist;
            }
+         c = to + 1;
        }
     }
 
-  elt = Fcdr (Fcdr (Fassq (CHARSET_SYMBOL (CHARSET_ASCII), val)));
-  if (CONSP (elt))
-    {
-      elt = XCAR (elt);
-      fontp = (*query_font_func) (f, SDATA (elt));
-    }
-  val = Fmake_vector (make_number (3), val);
-  AREF (val, 0) = fontp ? make_number (fontp->size) : make_number (0);
-  AREF (val, 1) = fontp ? make_number (fontp->height) : make_number (0);
-  return val;
+  return tables[0];
 }
 
-DEFUN ("fontset-font", Ffontset_font, Sfontset_font, 2, 2, 0,
+
+DEFUN ("fontset-font", Ffontset_font, Sfontset_font, 2, 3, 0,
        doc: /* Return a font name pattern for character CH in fontset NAME.
-If NAME is nil, find a font name pattern in the default fontset.  */)
-     (name, ch)
-     Lisp_Object name, ch;
+If NAME is t, find a pattern in the default fontset.
+
+The value has the form (FAMILY . REGISTRY), where FAMILY is a font
+family name and REGISTRY is a font registry name.  This is actually
+the first font name pattern for CH in the fontset or in the default
+fontset.
+
+If the 2nd optional arg ALL is non-nil, return a list of all font name
+patterns.  */)
+  (name, ch, all)
+     Lisp_Object name, ch, all;
 {
   int c;
-  Lisp_Object fontset, elt;
+  Lisp_Object fontset, elt, list, repertory, val;
+  int i, j;
 
   fontset = check_fontset_name (name);
 
-  CHECK_NUMBER (ch);
+  CHECK_CHARACTER (ch);
   c = XINT (ch);
-  if (!char_valid_p (c, 1))
-    invalid_character (c);
-
-  elt = FONTSET_REF (fontset, c);
-  if (CONSP (elt))
-    elt = XCDR (elt);
+  list = Qnil;
+  while (1)
+    {
+      for (i = 0, elt = FONTSET_REF (fontset, c); i < 2;
+          i++, elt = FONTSET_FALLBACK (fontset))
+       if (VECTORP (elt))
+         for (j = 0; j < ASIZE (elt); j++)
+           {
+             val = AREF (elt, j);
+             repertory = AREF (val, 1);
+             if (INTEGERP (repertory))
+               {
+                 struct charset *charset = CHARSET_FROM_ID (XINT (repertory));
 
-  return elt;
+                 if (! CHAR_CHARSET_P (c, charset))
+                   continue;
+               }
+             else if (CHAR_TABLE_P (repertory))
+               {
+                 if (NILP (CHAR_TABLE_REF (repertory, c)))
+                   continue;
+               }
+             val = AREF (val, 0);
+             val = Fcons (AREF (val, 0), AREF (val, 5));
+             if (NILP (all))
+               return val;
+             list = Fcons (val, list);
+           }
+      if (EQ (fontset, Vdefault_fontset))
+       break;
+      fontset = Vdefault_fontset;
+    }
+  return (Fnreverse (list));
 }
 
 DEFUN ("fontset-list", Ffontset_list, Sfontset_list, 0, 0, 0,
@@ -1568,61 +2384,57 @@ DEFUN ("fontset-list", Ffontset_list, Sfontset_list, 0, 0, 0,
   return list;
 }
 
-DEFUN ("set-overriding-fontspec-internal", Fset_overriding_fontspec_internal,
-       Sset_overriding_fontspec_internal, 1, 1, 0,
-       doc: /* Internal use only.
-
-FONTLIST is an alist of TARGET vs FONTNAME, where TARGET is a charset
-or a char-table, FONTNAME have the same meanings as in
-`set-fontset-font'.
 
-It overrides the font specifications for each TARGET in the default
-fontset by the corresponding FONTNAME.
-
-If TARGET is a charset, targets are all characters in the charset.  If
-TARGET is a char-table, targets are characters whose value is non-nil
-in the table.
+#ifdef FONTSET_DEBUG
 
-It is intended that this function is called only from
-`set-language-environment'.  */)
-     (fontlist)
-     Lisp_Object fontlist;
+Lisp_Object
+dump_fontset (fontset)
+     Lisp_Object fontset;
 {
-  Lisp_Object tail;
+  Lisp_Object vec;
 
-  fontlist = Fcopy_sequence (fontlist);
-  /* Now FONTLIST is ((TARGET . FONTNAME) ...).  Reform it to ((TARGET
-     nil nil nil FONTSPEC) ...), where TARGET is a charset-id or a
-     char-table.  */
-  for (tail = fontlist; CONSP (tail); tail = XCDR (tail))
+  vec = Fmake_vector (make_number (3), Qnil);
+  ASET (vec, 0, FONTSET_ID (fontset));
+
+  if (BASE_FONTSET_P (fontset))
+    {
+      ASET (vec, 1, FONTSET_NAME (fontset));
+    }
+  else
     {
-      Lisp_Object elt, target;
+      Lisp_Object frame;
 
-      elt = XCAR (tail);
-      target = Fcar (elt);
-      elt = Fcons (Qnil, regularize_fontname (Fcdr (elt)));
-      if (! CHAR_TABLE_P (target))
+      frame = FONTSET_FRAME (fontset);
+      if (FRAMEP (frame))
        {
-         int charset, c;
-
-         CHECK_SYMBOL (target);
-         charset = get_charset_id (target);
-         if (charset < 0)
-           error ("Invalid charset %s", SDATA (SYMBOL_NAME (target)));
-         target = make_number (charset);
-         c = MAKE_CHAR (charset, 0, 0);
-         XSETCAR (elt, make_number (c));
+         FRAME_PTR f = XFRAME (frame);
+
+         if (FRAME_LIVE_P (f))
+           ASET (vec, 1,
+                 Fcons (FONTSET_NAME (FONTSET_BASE (fontset)), f->name));
+         else
+           ASET (vec, 1,
+                 Fcons (FONTSET_NAME (FONTSET_BASE (fontset)), Qnil));
        }
-      elt = Fcons (target, Fcons (Qnil, Fcons (Qnil, elt)));
-      XSETCAR (tail, elt);
+      if (!NILP (FONTSET_DEFAULT (fontset)))
+       ASET (vec, 2, FONTSET_ID (FONTSET_DEFAULT (fontset)));
     }
-  if (! NILP (Fequal (fontlist, Voverriding_fontspec_alist)))
-    return Qnil;
-  Voverriding_fontspec_alist = fontlist;
-  clear_face_cache (0);
-  ++windows_or_buffers_changed;
-  return Qnil;
+  return vec;
+}
+
+DEFUN ("fontset-list-all", Ffontset_list_all, Sfontset_list_all, 0, 0, 0,
+       doc: /* Return a brief summary of all fontsets for debug use.  */)
+     ()
+{
+  Lisp_Object val;
+  int i;
+
+  for (i = 0, val = Qnil; i < ASIZE (Vfontset_table); i++)
+    if (! NILP (AREF (Vfontset_table, i)))
+      val = Fcons (dump_fontset (AREF (Vfontset_table, i)), val);
+  return (Fnreverse (val));
 }
+#endif /* FONTSET_DEBUG */
 
 void
 syms_of_fontset ()
@@ -1631,9 +2443,14 @@ syms_of_fontset ()
     /* Window system initializer should have set proper functions.  */
     abort ();
 
-  Qfontset = intern ("fontset");
-  staticpro (&Qfontset);
-  Fput (Qfontset, Qchar_table_extra_slots, make_number (3));
+  DEFSYM (Qfontset, "fontset");
+  Fput (Qfontset, Qchar_table_extra_slots, make_number (9));
+  DEFSYM (Qfontset_info, "fontset-info");
+  Fput (Qfontset_info, Qchar_table_extra_slots, make_number (1));
+
+  DEFSYM (Qprepend, "prepend");
+  DEFSYM (Qappend, "append");
+  DEFSYM (Qlatin, "latin");
 
   Vcached_fontset_data = Qnil;
   staticpro (&Vcached_fontset_data);
@@ -1649,32 +2466,45 @@ syms_of_fontset ()
   AREF (Vfontset_table, 0) = Vdefault_fontset;
   next_fontset_id = 1;
 
-  Voverriding_fontspec_alist = Qnil;
-  staticpro (&Voverriding_fontspec_alist);
+  auto_fontset_alist = Qnil;
+  staticpro (&auto_fontset_alist);
 
   DEFVAR_LISP ("font-encoding-alist", &Vfont_encoding_alist,
-              doc: /* Alist of fontname patterns vs corresponding encoding info.
-Each element looks like (REGEXP . ENCODING-INFO),
- where ENCODING-INFO is an alist of CHARSET vs ENCODING.
-ENCODING is one of the following integer values:
-       0: code points 0x20..0x7F or 0x2020..0x7F7F are used,
-       1: code points 0xA0..0xFF or 0xA0A0..0xFFFF are used,
-       2: code points 0x20A0..0x7FFF are used,
-       3: code points 0xA020..0xFF7F are used.  */);
+              doc: /*
+Alist of fontname patterns vs the corresponding encoding and repertory info.
+Each element looks like (REGEXP . (ENCODING . REPERTORY)),
+where ENCODING is a charset or a char-table,
+and REPERTORY is a charset, a char-table, or nil.
+
+If ENCDING and REPERTORY are the same, the element can have the form
+\(REGEXP . ENCODING).
+
+ENCODING is for converting a character to a glyph code of the font.
+If ENCODING is a charset, encoding a character by the charset gives
+the corresponding glyph code.  If ENCODING is a char-table, looking up
+the table by a character gives the corresponding glyph code.
+
+REPERTORY specifies a repertory of characters supported by the font.
+If REPERTORY is a charset, all characters beloging to the charset are
+supported.  If REPERTORY is a char-table, all characters who have a
+non-nil value in the table are supported.  It REPERTORY is nil, Emacs
+gets the repertory information by an opened font and ENCODING.  */);
   Vfont_encoding_alist = Qnil;
-  Vfont_encoding_alist
-    = Fcons (Fcons (build_string ("JISX0201"),
-                   Fcons (Fcons (intern ("latin-jisx0201"), make_number (0)),
-                          Qnil)),
-            Vfont_encoding_alist);
-  Vfont_encoding_alist
-    = Fcons (Fcons (build_string ("ISO8859-1"),
-                   Fcons (Fcons (intern ("ascii"), make_number (0)),
-                          Qnil)),
-            Vfont_encoding_alist);
+
+  DEFVAR_LISP ("font-encoding-charset-alist", &Vfont_encoding_charset_alist,
+              doc: /*
+Alist of charsets vs the charsets to determine the preferred font encoding.
+Each element looks like (CHARSET . ENCDOING-CHARSET),
+where ENCODING-CHARSET is a charset registered in the variable
+`font-encoding-alist' as ENCODING.
+
+When a text has a property `charset' and the value is CHARSET, a font
+whose encoding corresponds to ENCODING-CHARSET is preferred.  */);
+  Vfont_encoding_charset_alist = Qnil;
 
   DEFVAR_LISP ("use-default-ascent", &Vuse_default_ascent,
-              doc: /* Char table of characters whose ascent values should be ignored.
+              doc: /*
+Char table of characters whose ascent values should be ignored.
 If an entry for a character is non-nil, the ascent value of the glyph
 is assumed to be what specified by _MULE_DEFAULT_ASCENT property of a font.
 
@@ -1683,7 +2513,8 @@ such a character is displayed on screen.  */);
   Vuse_default_ascent = Qnil;
 
   DEFVAR_LISP ("ignore-relative-composition", &Vignore_relative_composition,
-              doc: /* Char table of characters which is not composed relatively.
+              doc: /*
+Char table of characters which is not composed relatively.
 If an entry for a character is non-nil, a composition sequence
 which contains that character is displayed so that
 the glyph of that character is put without considering
@@ -1709,6 +2540,10 @@ When a character is displayed with such fonts, the character is displayed
 at the vertical center of lines.  */);
   Vvertical_centering_font_regexp = Qnil;
 
+  DEFVAR_LISP ("otf-script-alist", &Votf_script_alist,
+              doc: /* Alist of OpenType script tags vs the corresponding script names.  */);
+  Votf_script_alist = Qnil;
+
   defsubr (&Squery_fontset);
   defsubr (&Snew_fontset);
   defsubr (&Sset_fontset_font);
@@ -1717,7 +2552,9 @@ at the vertical center of lines.  */);
   defsubr (&Sfontset_info);
   defsubr (&Sfontset_font);
   defsubr (&Sfontset_list);
-  defsubr (&Sset_overriding_fontspec_internal);
+#ifdef FONTSET_DEBUG
+  defsubr (&Sfontset_list_all);
+#endif
 }
 
 /* arch-tag: ea861585-2f5f-4e5b-9849-d04a9c3a3537
index c8bd1e36eabe97cbf258c933c546f8341024afef..353f01b27b06aa6227335e1b95b3f6e78c97c33e 100644 (file)
@@ -5,6 +5,9 @@
      2005, 2006, 2007
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
+   Copyright (C) 2003, 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -44,7 +47,8 @@ struct font_info
   /* Full name of the font given by a window system.  */
   char *full_name;
 
-  /* Charset of characters displayed by the font.  */
+  /* Charset to encode a character code into a glyph code of the
+     font.  */
   int charset;
 
 #ifdef WINDOWSNT
@@ -71,25 +75,15 @@ struct font_info
      of lines.  */
   int vertical_centering;
 
-  /* Encodings of the font indexed by CHARSET.  The value is one of
+  /* Encoding type of the font.  The value is one of
      0, 1, 2, or 3:
        0: code points 0x20..0x7F or 0x2020..0x7F7F are used
        1: code points 0xA0..0xFF or 0xA0A0..0xFFFF are used
        2: code points 0x20A0..0x7FFF are used
        3: code points 0xA020..0xFF7F are used
-     For instance, ASCII and Latin-1 characters may use the same font
-     but different code points (ASCII uses 0x20..0x7F and Latin-1 uses
-     0xA0..0xFF).
-
-     If the value can't be decided from information of the font, we
-     consult `font-encoding-alist' to get of the corresponding charset
-     whose default value is defined in lisp/fontset.el.  Since there's
-     no charset whose id is 1, we use encoding[1] to store the
-     encoding information decided by the font itself.
-
      If the member `font_encoder' is not NULL, this member is ignored.
   */
-  unsigned char encoding[MAX_CHARSET + 1];
+  unsigned char encoding_type;
 
   /* The baseline position of a font is normally `ascent' value of the
      font.  However, there exists many fonts which don't set `ascent'
@@ -149,6 +143,17 @@ struct font_info
    to be used.  */
 #define FONT_ENCODING_NOT_DECIDED 255
 
+enum FONT_SPEC_INDEX
+  {
+    FONT_SPEC_FAMILY_INDEX,
+    FONT_SPEC_WEIGHT_INDEX,
+    FONT_SPEC_SLANT_INDEX,
+    FONT_SPEC_SWIDTH_INDEX,
+    FONT_SPEC_ADSTYLE_INDEX,
+    FONT_SPEC_REGISTRY_INDEX,
+    FONT_SPEC_MAX_INDEX
+  };
+
 /* Forward declaration for prototypes.  */
 struct frame;
 
@@ -188,43 +193,41 @@ extern void (*set_frame_fontset_func) P_ ((struct frame *f, Lisp_Object arg,
    This function set the memer `encoder' of the structure.  */
 extern void (*find_ccl_program_func) P_ ((struct font_info *));
 
+extern Lisp_Object (*get_font_repertory_func) P_ ((struct frame *,
+                                                  struct font_info *));
+
 /* Check if any window system is used now.  */
 extern void (*check_window_system_func) P_ ((void));
 
 struct face;
 
 extern void free_face_fontset P_ ((FRAME_PTR, struct face *));
-extern Lisp_Object fontset_font_pattern P_ ((FRAME_PTR, int, int));
+extern Lisp_Object fontset_font_pattern P_ ((FRAME_PTR, struct face *, int));
 extern int face_suitable_for_char_p P_ ((struct face *, int));
-extern int face_for_char P_ ((FRAME_PTR, struct face *, int));
-extern int make_fontset_for_ascii_face P_ ((FRAME_PTR, int));
+extern int face_for_char P_ ((FRAME_PTR, struct face *, int,
+                             int, Lisp_Object));
+extern int make_fontset_for_ascii_face P_ ((FRAME_PTR, int, struct face *));
+extern int new_fontset_from_font_name P_ ((Lisp_Object));
 extern void set_default_ascii_font P_ ((Lisp_Object));
-extern struct font_info *fs_load_font P_ ((struct frame *, int, char *, int,
-                                          struct face *));
+extern struct font_info *fs_load_font P_ ((struct frame *, char *, int));
 extern int fs_query_fontset P_ ((Lisp_Object, int));
 EXFUN (Fquery_fontset, 2);
 extern Lisp_Object list_fontsets P_ ((struct frame *, Lisp_Object, int));
 
-extern Lisp_Object Qfontset;
 extern Lisp_Object Vuse_default_ascent;
 extern Lisp_Object Vignore_relative_composition;
 extern Lisp_Object Valternate_fontname_alist;
 extern Lisp_Object Vfontset_alias_alist;
 extern Lisp_Object Vvertical_centering_font_regexp;
+extern Lisp_Object Votf_script_alist;
 
-/* Load a font named FONTNAME for displaying character C.  All fonts
-   for frame F is stored in a table pointed by FONT_TABLE.  Return a
-   pointer to the struct font_info of the loaded font.  If loading
-   fails, return 0; If FONTNAME is NULL, the name is taken from the
-   information of FONTSET.  If FONTSET is given, try to load a font
-   whose size matches that of FONTSET, and, the font index is stored
-   in the table for FONTSET.  */
+/* Load a font named FONTNAME on frame F.  All fonts for frame F is
+   stored in a table pointed by FONT_TABLE.  Return a pointer to the
+   struct font_info of the loaded font.  If loading fails, return
+   NULL.  */
 
-#define FS_LOAD_FONT(f, c, fontname, fontset)  \
-  fs_load_font (f, c, fontname, fontset, NULL)
+#define FS_LOAD_FONT(f, fontname) fs_load_font (f, fontname, -1)
 
-#define FS_LOAD_FACE_FONT(f, c, fontname, face) \
-  fs_load_font (f, c, fontname, -1, face)
 
 /* Return an immutable id for font_info FONT_INFO on frame F.  The
    reason for this macro is hat one cannot hold pointers to font_info
@@ -242,10 +245,26 @@ extern Lisp_Object Vvertical_centering_font_regexp;
       ? (FRAME_X_DISPLAY_INFO ((F))->font_table + (ID))                        \
       : 0)
 
+#ifdef USE_FONT_BACKEND
+#define FONT_INFO_FROM_FACE(F, FACE)           \
+  (enable_font_backend ? (FACE)->font_info     \
+   : FONT_INFO_FROM_ID ((F), (FACE)->font_info_id))
+#else  /* not USE_FONT_BACKEND */
+#define FONT_INFO_FROM_FACE(F, FACE)   \
+  FONT_INFO_FROM_ID ((F), (FACE)->font_info_id)
+#endif /* not USE_FONT_BACKEND */
+
 extern Lisp_Object fontset_name P_ ((int));
 extern Lisp_Object fontset_ascii P_ ((int));
 extern int fontset_height P_ ((int));
 
+#ifdef USE_FONT_BACKEND
+struct font;
+extern int face_for_font P_ ((struct frame *, struct font *, struct face *));
+extern int new_fontset_from_font P_ ((Lisp_Object));
+extern struct font *fontset_ascii_font P_ ((FRAME_PTR, int));
+#endif /* USE_FONT_BACKEND */
+
 #endif /* EMACS_FONTSET_H */
 
 /* arch-tag: c27cef7b-3cab-488a-8398-7a4daa96bb77
index b06b541d60c4981487a340bbe21e1a822660527a..c5762142541efd3489c73bb6ebf4552811fed62d 100644 (file)
@@ -23,7 +23,7 @@ Boston, MA 02110-1301, USA.  */
 
 #include <stdio.h>
 #include "lisp.h"
-#include "charset.h"
+#include "character.h"
 #ifdef HAVE_X_WINDOWS
 #include "xterm.h"
 #endif
@@ -54,6 +54,10 @@ Boston, MA 02110-1301, USA.  */
 
 #ifdef HAVE_WINDOW_SYSTEM
 
+#ifdef USE_FONT_BACKEND
+#include "font.h"
+#endif /* USE_FONT_BACKEND */
+
 /* The name we're using in resource queries.  Most often "emacs".  */
 
 Lisp_Object Vx_resource_name;
@@ -112,6 +116,9 @@ Lisp_Object Qtty_color_mode;
 Lisp_Object Qtty, Qtty_type;
 
 Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth;
+#ifdef USE_FONT_BACKEND
+Lisp_Object Qfont_backend;
+#endif /* USE_FONT_BACKEND */
 
 Lisp_Object Qinhibit_face_set_after_frame_default;
 Lisp_Object Qface_set_after_frame_default;
@@ -326,6 +333,10 @@ make_frame (mini_p)
 #endif
   f->size_hint_flags = 0;
   f->win_gravity = 0;
+#ifdef USE_FONT_BACKEND
+  f->font_driver_list = NULL;
+  f->font_data_list = NULL;
+#endif /* USE_FONT_BACKEND */
 
   root_window = make_window ();
   if (mini_p)
@@ -1474,6 +1485,11 @@ The functions are run with one arg, the frame to be deleted.  */)
      memory. */
   free_glyphs (f);
 
+#ifdef USE_FONT_BACKEND
+  /* Give chance to each font driver to free a frame specific data.  */
+  font_update_drivers (f, Qnil);
+#endif /* USE_FONT_BACKEND */
+
   /* Mark all the windows that used to be on FRAME as deleted, and then
      remove the reference to them.  */
   delete_all_subwindows (XWINDOW (f->root_window));
@@ -2193,7 +2209,7 @@ store_in_alist (alistptr, prop, val)
 static int
 frame_name_fnn_p (str, len)
      char *str;
-     int len;
+     EMACS_INT len;
 {
   if (len > 1 && str[0] == 'F')
     {
@@ -2834,6 +2850,9 @@ static struct frame_parm_table frame_parms[] =
   {"right-fringe",             &Qright_fringe},
   {"wait-for-wm",              &Qwait_for_wm},
   {"fullscreen",                &Qfullscreen},
+#ifdef USE_FONT_BACKEND
+  {"font-backend",             &Qfont_backend}
+#endif /* USE_FONT_BACKEND */
 };
 
 #ifdef HAVE_WINDOW_SYSTEM
@@ -3348,20 +3367,60 @@ x_set_font (f, arg, oldval)
   Lisp_Object frame;
   int old_fontset = FRAME_FONTSET(f);
 
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      int fontset = -1;
+      Lisp_Object font_object;
+
+      /* ARG is a fontset name, a font name, or a font object.
+        In the last case, this function never fail.  */
+      if (STRINGP (arg))
+       {
+         fontset = fs_query_fontset (arg, 0);
+         if (fontset < 0)
+           font_object = font_open_by_name (f, SDATA (arg));
+         else if (fontset > 0)
+           {
+             Lisp_Object ascii_font = fontset_ascii (fontset);
+
+             font_object = font_open_by_name (f, SDATA (ascii_font));
+           }
+       }
+      else
+       font_object = arg;
+
+      if (fontset < 0 && ! NILP (font_object))
+       fontset = new_fontset_from_font (font_object);
+
+      if (fontset == 0)
+       /* Refuse the default fontset.  */
+       result = Qt;
+      else if (NILP (font_object))
+       result = Qnil;
+      else
+       result = x_new_fontset2 (f, fontset, font_object);
+    }
+  else
+    {
+#endif /* USE_FONT_BACKEND */
   CHECK_STRING (arg);
 
   fontset_name = Fquery_fontset (arg, Qnil);
 
   BLOCK_INPUT;
   result = (STRINGP (fontset_name)
-            ? x_new_fontset (f, SDATA (fontset_name))
-            : x_new_font (f, SDATA (arg)));
+            ? x_new_fontset (f, fontset_name)
+            : x_new_fontset (f, arg));
   UNBLOCK_INPUT;
+#ifdef USE_FONT_BACKEND
+    }
+#endif
 
   if (EQ (result, Qnil))
     error ("Font `%s' is not defined", SDATA (arg));
   else if (EQ (result, Qt))
-    error ("The characters of the given font have varying widths");
+    error ("The default fontset can't be used for a frame font");
   else if (STRINGP (result))
     {
       set_default_ascii_font (result);
@@ -3372,7 +3431,9 @@ x_set_font (f, arg, oldval)
          if (old_fontset == FRAME_FONTSET (f))
            return;
        }
-      else if (!NILP (Fequal (result, oldval)))
+      store_frame_param (f, Qfont, result);
+
+      if (!NILP (Fequal (result, oldval)))
         return;
 
       /* Recalculate toolbar height.  */
@@ -3380,7 +3441,6 @@ x_set_font (f, arg, oldval)
       /* Ensure we redraw it.  */
       clear_current_matrices (f);
 
-      store_frame_param (f, Qfont, result);
       recompute_basic_faces (f);
     }
   else
@@ -3401,6 +3461,62 @@ x_set_font (f, arg, oldval)
 }
 
 
+#ifdef USE_FONT_BACKEND
+void
+x_set_font_backend (f, new_value, old_value)
+     struct frame *f;
+     Lisp_Object new_value, old_value;
+{
+  if (! NILP (new_value)
+      && !CONSP (new_value))
+    {
+      char *p0, *p1;
+       
+      CHECK_STRING (new_value);
+      p0 = p1 = SDATA (new_value);
+      new_value = Qnil;
+      while (*p0)
+       {
+         while (*p1 && *p1 != ',') p1++;
+         if (p0 < p1)
+           new_value = Fcons (Fintern (make_string (p0, p1 - p0), Qnil),
+                              new_value);
+         if (*p1)
+           p1++;
+         p0 = p1;
+       }
+      new_value = Fnreverse (new_value);
+    }
+
+  if (! NILP (old_value) && ! NILP (Fequal (old_value, new_value)))
+    return;
+
+  if (FRAME_FONT_OBJECT (f))
+    free_all_realized_faces (Qnil);
+
+  new_value = font_update_drivers (f, NILP (new_value) ? Qt : new_value);
+  if (NILP (new_value))
+    {
+      if (NILP (old_value))
+       error ("No font backend available");
+      font_update_drivers (f, old_value);
+      error ("None of specified font backends are available");
+    }
+  store_frame_param (f, Qfont_backend, new_value);
+
+  if (FRAME_FONT_OBJECT (f))
+    {
+      Lisp_Object frame;
+
+      XSETFRAME (frame, f);
+      x_set_font (f, Fframe_parameter (frame, Qfont), Qnil);
+      ++face_change_count;
+      ++windows_or_buffers_changed;
+    }
+}
+#endif /* USE_FONT_BACKEND */
+
+
 void
 x_set_fringe_width (f, new_value, old_value)
      struct frame *f;
index a9bddbe34b889a3639f604de9c6e387edbc2cf4c..ef8d3d7da56370cc80fa16b1cfb8629d7e14eb2d 100644 (file)
@@ -77,6 +77,8 @@ enum text_cursor_kinds
 
 struct terminal;
 
+struct font_driver_list;
+
 struct frame
 {
   EMACS_UINT size;
@@ -268,6 +270,9 @@ struct frame
   /* Size of the frame window in pixels.  */
   int pixel_height, pixel_width;
 
+  /* Dots per inch of the screen the frame is on.  */
+  double resx, resy;
+
   /* These many pixels are the difference between the outer window (i.e. the
      left and top of the window manager decoration) and FRAME_X_WINDOW. */
   int x_pixels_diff, y_pixels_diff;
@@ -317,6 +322,12 @@ struct frame
   }
   output_data;
 
+  /* List of font-drivers available on the frame. */
+  struct font_driver_list *font_driver_list;
+  /* List of data specific to font-driver and frame, but common to
+     faces.  */
+  struct font_data_list *font_data_list;
+
   /* Total width of fringes reserved for drawing truncation bitmaps,
      continuation bitmaps and alike.  The width is in canonical char
      units of the frame.  This must currently be the case because window
@@ -475,7 +486,7 @@ struct frame
 
 typedef struct frame *FRAME_PTR;
 
-#define XFRAME(p) (eassert (GC_FRAMEP(p)),(struct frame *) XPNTR (p))
+#define XFRAME(p) (eassert (FRAMEP(p)),(struct frame *) XPNTR (p))
 #define XSETFRAME(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_FRAME))
 
 /* Given a window, return its frame as a Lisp_Object.  */
@@ -1005,6 +1016,7 @@ extern Lisp_Object Qscreen_gamma;
 extern Lisp_Object Qline_spacing;
 extern Lisp_Object Qwait_for_wm;
 extern Lisp_Object Qfullscreen;
+extern Lisp_Object Qfont_backend;
 
 extern Lisp_Object Qleft_fringe, Qright_fringe;
 extern Lisp_Object Qheight, Qwidth;
@@ -1043,8 +1055,10 @@ extern void x_set_offset P_ ((struct frame *, int, int, int));
 extern void x_wm_set_icon_position P_ ((struct frame *, int, int));
 
 extern Lisp_Object x_new_font P_ ((struct frame *, char *));
-extern Lisp_Object x_new_fontset P_ ((struct frame *, char *));
-
+extern Lisp_Object x_new_fontset P_ ((struct frame *, Lisp_Object));
+#ifdef USE_FONT_BACKEND
+extern Lisp_Object x_new_fontset2 P_ ((struct frame *, int, Lisp_Object));
+#endif /* USE_FONT_BACKEND */
 
 /* These are in frame.c  */
 
@@ -1064,6 +1078,7 @@ extern void x_set_fullscreen P_ ((struct frame *, Lisp_Object, Lisp_Object));
 extern void x_set_line_spacing P_ ((struct frame *, Lisp_Object, Lisp_Object));
 extern void x_set_screen_gamma P_ ((struct frame *, Lisp_Object, Lisp_Object));
 extern void x_set_font P_ ((struct frame *, Lisp_Object, Lisp_Object));
+extern void x_set_font_backend P_ ((struct frame *, Lisp_Object, Lisp_Object));
 extern void x_set_fringe_width P_ ((struct frame *, Lisp_Object, Lisp_Object));
 extern void x_set_border_width P_ ((struct frame *, Lisp_Object, Lisp_Object));
 extern void x_set_internal_border_width P_ ((struct frame *, Lisp_Object,
index 70e14f51f5fb4cd3ccee63ec3a809944a054a08a..f24ab34f429ec2e33750cfd783650e4738353fb9 100644 (file)
@@ -586,7 +586,7 @@ draw_fringe_bitmap_1 (w, row, left_p, overlay, which)
       Lisp_Object face;
 
       if ((face = fringe_faces[which], NILP (face))
-         || (face_id = lookup_derived_face (f, face, 'A', FRINGE_FACE_ID, 0),
+         || (face_id = lookup_derived_face (f, face, FRINGE_FACE_ID, 0),
              face_id < 0))
        face_id = FRINGE_FACE_ID;
     }
@@ -1563,7 +1563,7 @@ If FACE is nil, reset face to default fringe face.  */)
   if (!NILP (face))
     {
       face_id = lookup_derived_face (SELECTED_FRAME (), face,
-                                    'A', FRINGE_FACE_ID, 1);
+                                    FRINGE_FACE_ID, 1);
       if (face_id < 0)
        error ("No such face");
     }
diff --git a/src/ftfont.c b/src/ftfont.c
new file mode 100644 (file)
index 0000000..316f8f3
--- /dev/null
@@ -0,0 +1,1700 @@
+/* ftfont.c -- FreeType font driver.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+#include <stdio.h>
+
+#include <fontconfig/fontconfig.h>
+#include <fontconfig/fcfreetype.h>
+
+#include "lisp.h"
+#include "dispextern.h"
+#include "frame.h"
+#include "blockinput.h"
+#include "character.h"
+#include "charset.h"
+#include "coding.h"
+#include "fontset.h"
+#include "font.h"
+#include "ftfont.h"
+
+/* Symbolic type of this font-driver.  */
+Lisp_Object Qfreetype;
+
+/* Fontconfig's generic families and their aliases.  */
+static Lisp_Object Qmonospace, Qsans_serif, Qserif, Qmono, Qsans, Qsans__serif;
+
+/* Flag to tell if FcInit is areadly called or not.  */
+static int fc_initialized;
+
+/* Handle to a FreeType library instance.  */
+static FT_Library ft_library;
+
+/* Cache for FreeType fonts.  */
+static Lisp_Object freetype_font_cache;
+
+/* Fontconfig's charset used for finding fonts of registry
+   "iso8859-1".  */
+static FcCharSet *cs_iso8859_1;
+
+/* The actual structure for FreeType font that can be casted to struct
+   font.  */
+
+struct ftfont_info
+{
+  struct font font;
+  FT_Size ft_size;
+#ifdef HAVE_LIBOTF
+  int maybe_otf;       /* Flag to tell if this may be OTF or not.  */
+  OTF *otf;
+#endif /* HAVE_LIBOTF */
+};
+
+static int ftfont_build_basic_charsets P_ ((void));
+static Lisp_Object ftfont_pattern_entity P_ ((FcPattern *,
+                                             Lisp_Object, Lisp_Object));
+static Lisp_Object ftfont_list_generic_family P_ ((Lisp_Object, Lisp_Object,
+                                                  Lisp_Object));
+Lisp_Object ftfont_font_format P_ ((FcPattern *));
+
+#define SYMBOL_FcChar8(SYM) (FcChar8 *) SDATA (SYMBOL_NAME (SYM))
+
+static int
+ftfont_build_basic_charsets ()
+{
+  FcChar32 c;
+
+  cs_iso8859_1 = FcCharSetCreate ();
+  if (! cs_iso8859_1)
+    return -1;
+  for (c = ' '; c < 127; c++)
+    if (! FcCharSetAddChar (cs_iso8859_1, c))
+      return -1;
+#if 0
+  /* This part is currently disabled.  Should be fixed later.  */
+  for (c = 192; c < 256; c++)
+    if (! FcCharSetAddChar (cs_iso8859_1, c))
+      return -1;
+#endif
+  return 0;
+}
+
+static Lisp_Object
+ftfont_pattern_entity (p, frame, registry)
+     FcPattern *p;
+     Lisp_Object frame, registry;
+{
+  Lisp_Object entity;
+  FcChar8 *file, *fontformat;
+  FcCharSet *charset;
+  char *str;
+  int numeric;
+  double dbl;
+
+  if (FcPatternGetString (p, FC_FILE, 0, &file) != FcResultMatch)
+    return Qnil;
+  if (FcPatternGetCharSet (p, FC_CHARSET, 0, &charset) != FcResultMatch)
+    charset = NULL;
+#ifdef FC_FONTFORMAT
+  if (FcPatternGetString (p, FC_FONTFORMAT, 0, &fontformat) != FcResultMatch)
+#endif /* FC_FONTFORMAT */
+    fontformat = NULL;
+
+  entity = Fmake_vector (make_number (FONT_ENTITY_MAX), null_string);
+
+  ASET (entity, FONT_TYPE_INDEX, Qfreetype);
+  ASET (entity, FONT_REGISTRY_INDEX, registry);
+  ASET (entity, FONT_FRAME_INDEX, frame);
+  ASET (entity, FONT_OBJLIST_INDEX, Qnil);
+
+  if (FcPatternGetString (p, FC_FOUNDRY, 0, (FcChar8 **) &str) == FcResultMatch)
+    ASET (entity, FONT_FOUNDRY_INDEX, intern_downcase (str, strlen (str)));
+  if (FcPatternGetString (p, FC_FAMILY, 0, (FcChar8 **) &str) == FcResultMatch)
+    ASET (entity, FONT_FAMILY_INDEX, intern_downcase (str, strlen (str)));
+  if (FcPatternGetInteger (p, FC_WEIGHT, 0, &numeric) == FcResultMatch)
+    {
+      if (numeric == FC_WEIGHT_REGULAR)
+       numeric = 100;
+      ASET (entity, FONT_WEIGHT_INDEX, make_number (numeric));
+    }
+  if (FcPatternGetInteger (p, FC_SLANT, 0, &numeric) == FcResultMatch)
+    ASET (entity, FONT_SLANT_INDEX, make_number (numeric + 100));
+  if (FcPatternGetInteger (p, FC_WIDTH, 0, &numeric) == FcResultMatch)
+    ASET (entity, FONT_WIDTH_INDEX, make_number (numeric));
+  if (FcPatternGetDouble (p, FC_PIXEL_SIZE, 0, &dbl) == FcResultMatch)
+    ASET (entity, FONT_SIZE_INDEX, make_number (dbl));
+  else
+    ASET (entity, FONT_SIZE_INDEX, make_number (0));
+
+  if (FcPatternGetInteger (p, FC_SPACING, 0, &numeric) != FcResultMatch)
+    numeric = -1;
+  file = FcStrCopy (file);
+  if (! file)
+    return Qnil;
+
+  p = FcPatternCreate ();
+  if (! p)
+    return Qnil;
+
+  if (FcPatternAddString (p, FC_FILE, file) == FcFalse
+      || (charset
+         && FcPatternAddCharSet (p, FC_CHARSET, charset) == FcFalse)
+#ifdef FC_FONTFORMAT
+      || (fontformat
+         && FcPatternAddString (p, FC_FONTFORMAT, fontformat) == FcFalse)
+#endif /* FC_FONTFORMAT */
+      || (numeric >= 0
+         && FcPatternAddInteger (p, FC_SPACING, numeric) == FcFalse))
+    {
+      FcPatternDestroy (p);
+      return Qnil;
+    }
+  ASET (entity, FONT_EXTRA_INDEX, make_save_value (p, 0));
+  return entity;
+}
+
+static Lisp_Object ftfont_generic_family_list;
+
+static Lisp_Object
+ftfont_list_generic_family (spec, frame, registry)
+     Lisp_Object spec, frame, registry;
+{
+  Lisp_Object family = AREF (spec, FONT_FAMILY_INDEX);
+  Lisp_Object slot, list, val;
+
+  if (EQ (family, Qmono))
+    family = Qmonospace;
+  else if (EQ (family, Qsans) || EQ (family, Qsans__serif))
+    family = Qsans_serif;
+  slot = assq_no_quit (family, ftfont_generic_family_list);
+  if (! CONSP (slot))
+    return null_vector;
+  list = XCDR (slot);
+  if (EQ (list, Qt))
+    {
+      /* Not yet listed.  */
+      FcObjectSet *objset = NULL;
+      FcPattern *pattern = NULL, *pat = NULL;
+      FcFontSet *fontset = NULL;
+      FcChar8 *fam;
+      int i, j;
+
+      objset = FcObjectSetBuild (FC_FOUNDRY, FC_FAMILY, FC_WEIGHT, FC_SLANT,
+                                FC_WIDTH, FC_PIXEL_SIZE, FC_SPACING,
+                                FC_CHARSET, FC_FILE,
+#ifdef FC_FONTFORMAT
+                                FC_FONTFORMAT,
+#endif /* FC_FONTFORMAT */
+                                NULL);
+      if (! objset)
+       goto err;
+      pattern = FcPatternBuild (NULL, FC_FAMILY, FcTypeString,
+                               SYMBOL_FcChar8 (family), (char *) 0);
+      if (! pattern)
+       goto err;
+      pat = FcPatternCreate ();
+      if (! pat)
+       goto err;
+      FcConfigSubstitute (NULL, pattern, FcMatchPattern);
+      for (i = 0, val = Qnil;
+          FcPatternGetString (pattern, FC_FAMILY, i, &fam) == FcResultMatch;
+          i++)
+       {
+         if (strcmp ((char *) fam, (char *) SYMBOL_FcChar8 (family)) == 0)
+           continue;
+         if (! FcPatternAddString (pat, FC_FAMILY, fam))
+           goto err;
+         fontset = FcFontList (NULL, pat, objset);
+         if (! fontset)
+           goto err;
+         /* Here we build the list in reverse order so that the last
+            loop in this function build a list in the correct
+            order.  */
+         for (j = 0; j < fontset->nfont; j++)
+           {
+             Lisp_Object entity;
+
+             entity = ftfont_pattern_entity (fontset->fonts[j],
+                                             frame, registry);
+             if (! NILP (entity))
+               val = Fcons (entity, val);
+           }
+         FcFontSetDestroy (fontset);
+         fontset = NULL;
+         FcPatternDel (pat, FC_FAMILY);
+       }
+      list = val;
+      XSETCDR (slot, list);
+    err:
+      if (pat) FcPatternDestroy (pat);
+      if (pattern) FcPatternDestroy (pattern);
+      if (fontset) FcFontSetDestroy (fontset);
+      if (objset) FcObjectSetDestroy (objset);
+      if (EQ (list, Qt))
+       return Qnil;
+    }
+  ASET (spec, FONT_FAMILY_INDEX, Qnil);
+  for (val = Qnil; CONSP (list); list = XCDR (list))
+    if (font_match_p (spec, XCAR (list)))
+      val = Fcons (XCAR (list), val);
+  ASET (spec, FONT_FAMILY_INDEX, family);
+  return Fvconcat (1, &val);
+}
+
+
+static Lisp_Object ftfont_get_cache P_ ((FRAME_PTR));
+static Lisp_Object ftfont_list P_ ((Lisp_Object, Lisp_Object));
+static Lisp_Object ftfont_match P_ ((Lisp_Object, Lisp_Object));
+static Lisp_Object ftfont_list_family P_ ((Lisp_Object));
+static void ftfont_free_entity P_ ((Lisp_Object));
+static struct font *ftfont_open P_ ((FRAME_PTR, Lisp_Object, int));
+static void ftfont_close P_ ((FRAME_PTR, struct font *));
+static int ftfont_has_char P_ ((Lisp_Object, int));
+static unsigned ftfont_encode_char P_ ((struct font *, int));
+static int ftfont_text_extents P_ ((struct font *, unsigned *, int,
+                                   struct font_metrics *));
+static int ftfont_get_bitmap P_ ((struct font *, unsigned,
+                                 struct font_bitmap *, int));
+static int ftfont_anchor_point P_ ((struct font *, unsigned, int,
+                                   int *, int *));
+static Lisp_Object ftfont_shape P_ ((Lisp_Object));
+
+struct font_driver ftfont_driver =
+  {
+    0,                         /* Qfreetype */
+    ftfont_get_cache,
+    ftfont_list,
+    ftfont_match,
+    ftfont_list_family,
+    ftfont_free_entity,
+    ftfont_open,
+    ftfont_close,
+    /* We can't draw a text without device dependent functions.  */
+    NULL,
+    NULL,
+    ftfont_has_char,
+    ftfont_encode_char,
+    ftfont_text_extents,
+    /* We can't draw a text without device dependent functions.  */
+    NULL,
+    ftfont_get_bitmap,
+    NULL,
+    NULL,
+    NULL,
+    ftfont_anchor_point,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+#ifdef HAVE_M17N_FLT
+    ftfont_shape
+#else  /* not HAVE_M17N_FLT */
+    NULL
+#endif /* not HAVE_M17N_FLT */
+  };
+
+extern Lisp_Object QCname;
+
+static Lisp_Object
+ftfont_get_cache (f)
+     FRAME_PTR f;
+{
+  return freetype_font_cache;
+}
+
+struct OpenTypeSpec
+{
+  Lisp_Object script;
+  unsigned int script_tag, langsys_tag;
+  int nfeatures[2];
+  unsigned int *features[2];
+};
+
+#define OTF_SYM_TAG(SYM, TAG)                                  \
+  do {                                                         \
+    unsigned char *p = SDATA (SYMBOL_NAME (SYM));              \
+    TAG = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];    \
+  } while (0)
+
+#define OTF_TAG_STR(TAG, P)                    \
+  do {                                         \
+    (P)[0] = (char) (TAG >> 24);               \
+    (P)[1] = (char) ((TAG >> 16) & 0xFF);      \
+    (P)[2] = (char) ((TAG >> 8) & 0xFF);       \
+    (P)[3] = (char) (TAG & 0xFF);              \
+    (P)[4] = '\0';                             \
+  } while (0)
+
+static struct OpenTypeSpec *
+ftfont_get_open_type_spec (Lisp_Object otf_spec)
+{
+  struct OpenTypeSpec *spec = malloc (sizeof (struct OpenTypeSpec));
+  Lisp_Object val;
+  int i, j, negative;
+
+  if (! spec)
+    return NULL;
+  spec->script = XCAR (otf_spec);
+  if (! NILP (val))
+    {
+      OTF_SYM_TAG (spec->script, spec->script_tag);
+      val = assq_no_quit (spec->script, Votf_script_alist);
+      if (CONSP (val) && SYMBOLP (XCDR (val)))
+       spec->script = XCDR (val);
+      else
+       spec->script = Qnil;
+    }
+  else
+    spec->script_tag = 0x44464C54;     /* "DFLT" */
+  otf_spec = XCDR (otf_spec);
+  val = XCAR (otf_spec);
+  if (! NILP (val))
+    OTF_SYM_TAG (val, spec->langsys_tag);
+  else
+    spec->langsys_tag = 0;
+  spec->nfeatures[0] = spec->nfeatures[1] = 0;
+  for (i = 0; i < 2; i++)
+    {
+      Lisp_Object len;
+
+      otf_spec = XCDR (otf_spec);    
+      if (NILP (otf_spec))
+       break;
+      val = XCAR (otf_spec);
+      if (NILP (val))
+       continue;
+      len = Flength (val);
+      spec->features[i] = malloc (sizeof (int) * XINT (len));
+      if (! spec->features[i])
+       {
+         if (i > 0 && spec->features[0])
+           free (spec->features[0]);
+         free (spec);
+         return NULL;
+       }
+      for (j = 0, negative = 0; CONSP (val); val = XCDR (val))
+       {
+         if (NILP (XCAR (val)))
+           negative = 1;
+         else
+           {
+             unsigned int tag;
+
+             OTF_SYM_TAG (XCAR (val), tag);
+             spec->features[i][j++] = negative ? tag & 0x80000000 : tag;
+           }
+       }
+      spec->nfeatures[i] = j;
+    }
+  return spec;
+}
+
+static Lisp_Object
+ftfont_list (frame, spec)
+     Lisp_Object frame, spec;
+{
+  Lisp_Object val, tmp, extra;
+  int i;
+  FcPattern *pattern = NULL;
+  FcCharSet *charset = NULL;
+  FcLangSet *langset = NULL;
+  FcFontSet *fontset = NULL;
+  FcObjectSet *objset = NULL;
+  Lisp_Object script;
+  Lisp_Object registry = Qunicode_bmp;
+  struct OpenTypeSpec *otspec= NULL;
+  int weight = 0;
+  double dpi = -1;
+  int spacing = -1;
+  int scalable = -1;
+  char otlayout[15];           /* For "otlayout:XXXX" */
+  
+  val = null_vector;
+
+  if (! fc_initialized)
+    {
+      FcInit ();
+      fc_initialized = 1;
+    }
+
+  if (! NILP (AREF (spec, FONT_ADSTYLE_INDEX))
+      && ! EQ (AREF (spec, FONT_ADSTYLE_INDEX), null_string))
+    return val;
+  if (! NILP (AREF (spec, FONT_SLANT_INDEX))
+      && XINT (AREF (spec, FONT_SLANT_INDEX)) < 100)
+    /* Fontconfig doesn't support reverse-italic/obligue.  */
+    return val;
+
+  if (! NILP (AREF (spec, FONT_REGISTRY_INDEX)))
+    {
+      registry = AREF (spec, FONT_REGISTRY_INDEX);
+      if (EQ (registry, Qiso8859_1))
+       {
+         if (! cs_iso8859_1
+             && ftfont_build_basic_charsets () < 0)
+           return Qnil;
+         charset = cs_iso8859_1;
+       }
+      else if (! EQ (registry, Qiso10646_1)
+              && ! EQ (registry, Qunicode_bmp)
+              && ! EQ (registry, Qunicode_sip))
+       return val;
+    }
+
+  otlayout[0] = '\0';
+  script = Qnil;
+  for (extra = AREF (spec, FONT_EXTRA_INDEX);
+       CONSP (extra); extra = XCDR (extra))
+    {
+      Lisp_Object key, val;
+
+      tmp = XCAR (extra);
+      key = XCAR (tmp), val = XCDR (tmp);
+      if (EQ (key, QCotf))
+       {
+         otspec = ftfont_get_open_type_spec (val);
+         if (! otspec)
+           return null_vector;
+         strcat (otlayout, "otlayout:");
+         OTF_TAG_STR (otspec->script_tag, otlayout + 9);
+         script = otspec->script;
+       }
+      else if (EQ (key, QClanguage))
+       {
+         langset = FcLangSetCreate ();
+         if (! langset)
+           goto err;
+         if (SYMBOLP (val))
+           {
+             if (! FcLangSetAdd (langset, SYMBOL_FcChar8 (val)))
+               goto err;
+           }
+         else
+           for (; CONSP (val); val = XCDR (val))
+             if (SYMBOLP (XCAR (val))
+                 && ! FcLangSetAdd (langset, SYMBOL_FcChar8 (XCAR (val))))
+               goto err;
+       }
+      else if (EQ (key, QCscript))
+       script = val;
+      else if (EQ (key, QCdpi))
+       dpi = XINT (val);
+      else if (EQ (key, QCspacing))
+       spacing = XINT (val);
+      else if (EQ (key, QCscalable))
+       scalable = ! NILP (val);
+    }
+
+  if (! NILP (script) && ! charset)
+    {
+      Lisp_Object chars = assq_no_quit (script, Vscript_representative_chars);
+
+      if (CONSP (chars))
+       {
+         charset = FcCharSetCreate ();
+         if (! charset)
+           goto err;
+         for (chars = XCDR (chars); CONSP (chars); chars = XCDR (chars))
+           if (CHARACTERP (XCAR (chars))
+               && ! FcCharSetAddChar (charset, XUINT (XCAR (chars))))
+             goto err;
+       }
+    }
+
+  pattern = FcPatternCreate ();
+  if (! pattern)
+    goto err;
+  tmp = AREF (spec, FONT_FOUNDRY_INDEX);
+  if (SYMBOLP (tmp) && ! NILP (tmp)
+      && ! FcPatternAddString (pattern, FC_FOUNDRY, SYMBOL_FcChar8 (tmp)))
+    goto err;
+  tmp = AREF (spec, FONT_FAMILY_INDEX);
+  if (SYMBOLP (tmp) && ! NILP (tmp)
+      && ! FcPatternAddString (pattern, FC_FAMILY, SYMBOL_FcChar8 (tmp)))
+    goto err;
+  /* Emacs conventionally doesn't distinguish normal, regular, and
+     medium weight, but fontconfig does.  So, we can't restrict font
+     listing by weight.  We check it after getting a list.  */
+  tmp = AREF (spec, FONT_WEIGHT_INDEX);
+  if (INTEGERP (tmp))
+    weight = XINT (tmp);
+  tmp = AREF (spec, FONT_SLANT_INDEX);
+  if (INTEGERP (tmp)
+      && ! FcPatternAddInteger (pattern, FC_SLANT, XINT (tmp) - 100))
+    goto err;
+  tmp = AREF (spec, FONT_WIDTH_INDEX);
+  if (INTEGERP (tmp)
+      && ! FcPatternAddInteger (pattern, FC_WIDTH, XINT (tmp)))
+    goto err;
+
+  if (charset
+      && ! FcPatternAddCharSet (pattern, FC_CHARSET, charset))
+    goto err;
+  if (langset
+      && ! FcPatternAddLangSet (pattern, FC_LANG, langset))
+    goto err;
+  if (dpi >= 0
+      && ! FcPatternAddDouble (pattern, FC_DPI, dpi))
+    goto err;
+  if (spacing >= 0
+      && ! FcPatternAddInteger (pattern, FC_SPACING, spacing))
+    goto err;
+  if (scalable >= 0
+      && ! FcPatternAddBool (pattern, FC_SCALABLE, scalable ? FcTrue : FcFalse))
+    goto err;
+
+  objset = FcObjectSetBuild (FC_FOUNDRY, FC_FAMILY, FC_WEIGHT, FC_SLANT,
+                            FC_WIDTH, FC_PIXEL_SIZE, FC_SPACING,
+                            FC_CHARSET, FC_FILE,
+#ifdef FC_FONTFORMAT
+                            FC_FONTFORMAT,
+#endif /* FC_FONTFORMAT */
+                            NULL);
+  if (! objset)
+    goto err;
+  if (otlayout[0])
+    {
+#ifdef FC_CAPABILITY
+      if (! FcObjectSetAdd (objset, FC_CAPABILITY))
+       goto err;
+#else  /* not FC_CAPABILITY */
+      goto finish;
+#endif /* not FC_CAPABILITY */
+    }
+
+  fontset = FcFontList (NULL, pattern, objset);
+  if (! fontset)
+    goto err;
+
+  if (fontset->nfont > 0)
+    {
+      double pixel_size;
+
+      if (NILP (AREF (spec, FONT_SIZE_INDEX)))
+       pixel_size = 0;
+      else
+       pixel_size = XINT (AREF (spec, FONT_SIZE_INDEX));
+
+      for (i = 0, val = Qnil; i < fontset->nfont; i++)
+       {
+         Lisp_Object entity;
+
+         if (pixel_size > 0)
+           {
+             double this;
+
+             if (FcPatternGetDouble (fontset->fonts[i], FC_PIXEL_SIZE, 0,
+                                     &this) == FcResultMatch
+                 && ((this < pixel_size - FONT_PIXEL_SIZE_QUANTUM)
+                     || (this > pixel_size + FONT_PIXEL_SIZE_QUANTUM)))
+               continue;
+           }
+         if (weight > 0)
+           {
+             int this;
+
+             if (FcPatternGetInteger (fontset->fonts[i], FC_WEIGHT, 0,
+                                      &this) != FcResultMatch
+                 || (this != weight
+                     && (weight != 100
+                         || this < FC_WEIGHT_REGULAR
+                         || this > FC_WEIGHT_MEDIUM)))
+               continue;
+           }
+#ifdef FC_CAPABILITY
+         if (otlayout[0])
+           {
+             FcChar8 *this;
+
+             if (FcPatternGetString (fontset->fonts[i], FC_CAPABILITY, 0,
+                                     &this) != FcResultMatch
+                 || ! strstr ((char *) this, otlayout))
+               continue;
+           }
+#endif /* FC_CAPABILITY */
+#ifdef HAVE_LIBOTF
+         if (otspec)
+           {
+             FcChar8 *file;
+             OTF *otf;
+
+             if (FcPatternGetString (fontset->fonts[i], FC_FILE, 0, &file)
+                 != FcResultMatch)
+               continue;
+             otf = OTF_open ((char *) file);
+             if (! otf)
+               continue;
+             if (OTF_check_features (otf, 1,
+                                     otspec->script_tag, otspec->langsys_tag,
+                                     otspec->features[0],
+                                     otspec->nfeatures[0]) != 1
+                 || OTF_check_features (otf, 0,
+                                        otspec->script_tag, otspec->langsys_tag,
+                                        otspec->features[1],
+                                        otspec->nfeatures[1]) != 1)
+               continue;
+           }
+#endif /* HAVE_LIBOTF */
+         entity = ftfont_pattern_entity (fontset->fonts[i], frame, registry);
+         if (! NILP (entity))
+           val = Fcons (entity, val);
+       }
+      val = Fvconcat (1, &val);
+    }
+  else if (! NILP (AREF (spec, FONT_FAMILY_INDEX)))
+    val = ftfont_list_generic_family (spec, frame, registry);
+  goto finish;
+
+ err:
+  /* We come here because of unexpected error in fontconfig API call
+     (usually insufficient memory).  */
+  val = Qnil;
+
+ finish:
+  if (charset && charset != cs_iso8859_1) FcCharSetDestroy (charset);
+  if (objset) FcObjectSetDestroy (objset);
+  if (fontset) FcFontSetDestroy (fontset);
+  if (langset) FcLangSetDestroy (langset);
+  if (pattern) FcPatternDestroy (pattern);
+  if (otspec)
+    {
+      if (otspec->nfeatures[0] > 0)
+       free (otspec->features[0]);
+      if (otspec->nfeatures[1] > 0)
+       free (otspec->features[1]);
+      free (otspec);
+    }
+  return val;
+}
+
+static Lisp_Object
+ftfont_match (frame, spec)
+     Lisp_Object frame, spec;
+{
+  Lisp_Object extra, val, entity;
+  FcPattern *pattern = NULL, *match = NULL;
+  FcResult result;
+
+  if (! fc_initialized)
+    {
+      FcInit ();
+      fc_initialized = 1;
+    }
+
+  extra = AREF (spec, FONT_EXTRA_INDEX);
+  val = assq_no_quit (QCname, extra);
+  if (! CONSP (val) || ! STRINGP (XCDR (val)))
+    return Qnil;
+
+  entity = Qnil;
+  pattern = FcNameParse (SDATA (XCDR (val)));
+  if (pattern)
+    {
+      if (FcConfigSubstitute (NULL, pattern, FcMatchPattern) == FcTrue)
+       {
+         FcDefaultSubstitute (pattern);
+         match = FcFontMatch (NULL, pattern, &result);
+         if (match)
+           {
+             entity = ftfont_pattern_entity (match, frame, Qunicode_bmp);
+             FcPatternDestroy (match);
+           }
+       }
+      FcPatternDestroy (pattern);
+    }
+
+  return entity;
+}
+
+static Lisp_Object
+ftfont_list_family (frame)
+     Lisp_Object frame;
+{
+  Lisp_Object list;
+  FcPattern *pattern = NULL;
+  FcFontSet *fontset = NULL;
+  FcObjectSet *objset = NULL;
+  int i;
+
+  if (! fc_initialized)
+    {
+      FcInit ();
+      fc_initialized = 1;
+    }
+
+  pattern = FcPatternCreate ();
+  if (! pattern)
+    goto finish;
+  objset = FcObjectSetBuild (FC_FAMILY, NULL);
+  if (! objset)
+    goto finish;
+  fontset = FcFontList (NULL, pattern, objset);
+  if (! fontset)
+    goto finish;
+
+  list = Qnil;
+  for (i = 0; i < fontset->nfont; i++)
+    {
+      FcPattern *pat = fontset->fonts[i];
+      FcChar8 *str;
+
+      if (FcPatternGetString (pat, FC_FAMILY, 0, &str) == FcResultMatch)
+       list = Fcons (intern_downcase ((char *) str, strlen ((char *) str)),
+                     list);
+    }
+
+ finish:
+  if (objset) FcObjectSetDestroy (objset);
+  if (fontset) FcFontSetDestroy (fontset);
+  if (pattern) FcPatternDestroy (pattern);
+
+  return list;
+}
+
+
+static void 
+ftfont_free_entity (entity)
+     Lisp_Object entity;
+{
+  Lisp_Object val = AREF (entity, FONT_EXTRA_INDEX);
+  FcPattern *pattern = XSAVE_VALUE (val)->pointer;
+
+  FcPatternDestroy (pattern);
+}
+
+static struct font *
+ftfont_open (f, entity, pixel_size)
+     FRAME_PTR f;
+     Lisp_Object entity;
+     int pixel_size;
+{
+  struct ftfont_info *ftfont_info;
+  struct font *font;
+  FT_Face ft_face;
+  FT_Size ft_size;
+  FT_UInt size;
+  Lisp_Object val;
+  FcPattern *pattern;
+  FcChar8 *file;
+  int spacing;
+  char *name;
+  int len;
+
+  val = AREF (entity, FONT_EXTRA_INDEX);
+  if (XTYPE (val) != Lisp_Misc
+      || XMISCTYPE (val) != Lisp_Misc_Save_Value)
+    return NULL;
+  pattern = XSAVE_VALUE (val)->pointer;
+  if (XSAVE_VALUE (val)->integer == 0)
+    {
+      /* We have not yet created FT_Face for this font.  */
+      if (! ft_library
+         && FT_Init_FreeType (&ft_library) != 0)
+       return NULL;
+      if (FcPatternGetString (pattern, FC_FILE, 0, &file) != FcResultMatch)
+       return NULL;
+      if (FT_New_Face (ft_library, (char *) file, 0, &ft_face) != 0)
+       return NULL;
+      FcPatternAddFTFace (pattern, FC_FT_FACE, ft_face);
+      ft_size = ft_face->size;
+    }
+  else
+    {
+      if (FcPatternGetFTFace (pattern, FC_FT_FACE, 0, &ft_face)
+         != FcResultMatch)
+       return NULL;
+      if (FT_New_Size (ft_face, &ft_size) != 0)
+       return NULL;
+      if (FT_Activate_Size (ft_size) != 0)
+       {
+         FT_Done_Size (ft_size);
+         return NULL;
+       }
+    } 
+
+  size = XINT (AREF (entity, FONT_SIZE_INDEX));
+  if (size == 0)
+    size = pixel_size;
+  if (FT_Set_Pixel_Sizes (ft_face, size, size) != 0)
+    {
+      if (XSAVE_VALUE (val)->integer == 0)
+       FT_Done_Face (ft_face);
+      return NULL;
+    }
+
+  ftfont_info = malloc (sizeof (struct ftfont_info));
+  if (! ftfont_info)
+    return NULL;
+  ftfont_info->ft_size = ft_size;
+#ifdef HAVE_LIBOTF
+  ftfont_info->maybe_otf = ft_face->face_flags & FT_FACE_FLAG_SFNT;
+  ftfont_info->otf = NULL;
+#endif /* HAVE_LIBOTF */
+
+  font = (struct font *) ftfont_info;
+  font->format = ftfont_font_format (pattern);
+  font->entity = entity;
+  font->pixel_size = size;
+  font->driver = &ftfont_driver;
+  len = 96;
+  name = malloc (len);
+  while (name && font_unparse_fcname (entity, pixel_size, name, len) < 0)
+    {
+      char *new = realloc (name, len += 32);
+
+      if (! new)
+       free (name);
+      name = new;
+    }
+  font->font.full_name = font->font.name = name;
+  font->file_name = (char *) file;
+  font->font.size = ft_face->size->metrics.max_advance >> 6;
+  if (font->font.size <= 0)
+    font->font.size = size;
+  font->font.charset = font->encoding_charset = font->repertory_charset = -1;
+  font->ascent = ft_face->size->metrics.ascender >> 6;
+  font->descent = - ft_face->size->metrics.descender >> 6;
+  font->font.height = font->ascent + font->descent;
+  if (FcPatternGetInteger (pattern, FC_SPACING, 0, &spacing) != FcResultMatch)
+    spacing = FC_PROPORTIONAL;
+  if (spacing != FC_PROPORTIONAL)
+    font->font.average_width = font->font.space_width = font->font.size;
+  else
+    {
+      int i;
+
+      for (i = 32; i < 127; i++)
+       {
+         if (FT_Load_Char (ft_face, i, FT_LOAD_DEFAULT) != 0)
+           break;
+         if (i == 32)
+           font->font.space_width = ft_face->glyph->metrics.horiAdvance >> 6;
+         font->font.average_width += ft_face->glyph->metrics.horiAdvance >> 6;
+       }
+      if (i == 127)
+       {
+         /* The font contains all ASCII printable characters.  */
+         font->font.average_width /= 95;
+       }
+      else
+       {
+         if (i == 32)
+           font->font.space_width = font->font.size;
+         font->font.average_width = font->font.size;
+       }
+    }
+
+  /* Unfortunately FreeType doesn't provide a way to get minimum char
+     width.  So, we use space_width instead.  */
+  font->min_width = font->font.space_width;
+
+  font->font.baseline_offset = 0;
+  font->font.relative_compose = 0;
+  font->font.default_ascent = 0;
+  font->font.vertical_centering = 0;
+
+  (XSAVE_VALUE (val)->integer)++;
+
+  return font;
+}
+
+static void
+ftfont_close (f, font)
+     FRAME_PTR f;
+     struct font *font;
+{
+  struct ftfont_info *ftfont_info = (struct ftfont_info *) font;
+  Lisp_Object entity = font->entity;
+  Lisp_Object val = AREF (entity, FONT_EXTRA_INDEX);
+
+  (XSAVE_VALUE (val)->integer)--;
+  if (XSAVE_VALUE (val)->integer == 0)
+    {
+      FT_Done_Face (ftfont_info->ft_size->face);
+#ifdef HAVE_LIBOTF
+      if (ftfont_info->otf)
+       OTF_close (ftfont_info->otf);
+#endif
+    }
+  else
+    FT_Done_Size (ftfont_info->ft_size);
+
+  free (font);
+}
+
+static int 
+ftfont_has_char (entity, c)
+     Lisp_Object entity;
+     int c;
+{
+  Lisp_Object val;
+  FcPattern *pattern;
+  FcCharSet *charset;
+
+  val = AREF (entity, FONT_EXTRA_INDEX);
+  pattern = XSAVE_VALUE (val)->pointer;
+  if (FcPatternGetCharSet (pattern, FC_CHARSET, 0, &charset) != FcResultMatch)
+    return -1;
+  return (FcCharSetHasChar (charset, (FcChar32) c) == FcTrue);
+}
+
+static unsigned
+ftfont_encode_char (font, c)
+     struct font *font;
+     int c;
+{
+  struct ftfont_info *ftfont_info = (struct ftfont_info *) font;
+  FT_Face ft_face = ftfont_info->ft_size->face;
+  FT_ULong charcode = c;
+  FT_UInt code = FT_Get_Char_Index (ft_face, charcode);
+
+  return (code > 0 ? code : FONT_INVALID_CODE);
+}
+
+static int
+ftfont_text_extents (font, code, nglyphs, metrics)
+     struct font *font;
+     unsigned *code;
+     int nglyphs;
+     struct font_metrics *metrics;
+{
+  struct ftfont_info *ftfont_info = (struct ftfont_info *) font;
+  FT_Face ft_face = ftfont_info->ft_size->face;
+  int width = 0;
+  int i;
+
+  if (ftfont_info->ft_size != ft_face->size)
+    FT_Activate_Size (ftfont_info->ft_size);
+  if (metrics)
+    bzero (metrics, sizeof (struct font_metrics));
+  for (i = 0; i < nglyphs; i++)
+    {
+      if (FT_Load_Glyph (ft_face, code[i], FT_LOAD_DEFAULT) == 0)
+       {
+         FT_Glyph_Metrics *m = &ft_face->glyph->metrics;
+
+         if (metrics)
+           {
+             if (metrics->lbearing > width + (m->horiBearingX >> 6))
+               metrics->lbearing = width + (m->horiBearingX >> 6);
+             if (metrics->rbearing
+                 < width + ((m->horiBearingX + m->width) >> 6))
+               metrics->rbearing
+                 = width + ((m->horiBearingX + m->width) >> 6);
+             if (metrics->ascent < (m->horiBearingY >> 6))
+               metrics->ascent = m->horiBearingY >> 6;
+             if (metrics->descent > ((m->horiBearingY + m->height) >> 6))
+               metrics->descent = (m->horiBearingY + m->height) >> 6;
+           }
+         width += m->horiAdvance >> 6;
+       }
+      else
+       {
+         width += font->font.space_width;
+       }
+    }
+  if (metrics)
+    metrics->width = width;
+
+  return width;
+}
+
+static int
+ftfont_get_bitmap (font, code, bitmap, bits_per_pixel)
+     struct font *font;
+     unsigned code;
+     struct font_bitmap *bitmap;
+     int bits_per_pixel;
+{
+  struct ftfont_info *ftfont_info = (struct ftfont_info *) font;
+  FT_Face ft_face = ftfont_info->ft_size->face;
+  FT_Int32 load_flags = FT_LOAD_RENDER;
+
+  if (ftfont_info->ft_size != ft_face->size)
+    FT_Activate_Size (ftfont_info->ft_size);
+  if (bits_per_pixel == 1)
+    {
+#ifdef FT_LOAD_TARGET_MONO
+      load_flags |= FT_LOAD_TARGET_MONO;
+#else
+      load_flags |= FT_LOAD_MONOCHROME;
+#endif
+    }
+  else if (bits_per_pixel != 8)
+    /* We don't support such a rendering.  */
+    return -1;
+
+  if (FT_Load_Glyph (ft_face, code, load_flags) != 0)
+    return -1;
+  bitmap->bits_per_pixel
+    = (ft_face->glyph->bitmap.pixel_mode == FT_PIXEL_MODE_MONO ? 1
+       : ft_face->glyph->bitmap.pixel_mode == FT_PIXEL_MODE_GRAY ? 8
+       : ft_face->glyph->bitmap.pixel_mode == FT_PIXEL_MODE_LCD ? 8
+       : ft_face->glyph->bitmap.pixel_mode == FT_PIXEL_MODE_LCD_V ? 8
+       : -1);
+  if (bitmap->bits_per_pixel < 0)
+    /* We don't suport that kind of pixel mode.  */
+    return -1;
+  bitmap->rows = ft_face->glyph->bitmap.rows;
+  bitmap->width = ft_face->glyph->bitmap.width;
+  bitmap->pitch = ft_face->glyph->bitmap.pitch;
+  bitmap->buffer = ft_face->glyph->bitmap.buffer;
+  bitmap->left = ft_face->glyph->bitmap_left;
+  bitmap->top = ft_face->glyph->bitmap_top;
+  bitmap->advance = ft_face->glyph->metrics.horiAdvance >> 6;
+  bitmap->extra = NULL;
+
+  return 0;
+}
+
+static int
+ftfont_anchor_point (font, code, index, x, y)
+     struct font *font;
+     unsigned code;
+     int index;
+     int *x, *y;
+{
+  struct ftfont_info *ftfont_info = (struct ftfont_info *) font;
+  FT_Face ft_face = ftfont_info->ft_size->face;
+
+  if (ftfont_info->ft_size != ft_face->size)
+    FT_Activate_Size (ftfont_info->ft_size);
+  if (FT_Load_Glyph (ft_face, code, FT_LOAD_DEFAULT) != 0)
+    return -1;
+  if (ft_face->glyph->format != FT_GLYPH_FORMAT_OUTLINE)
+    return -1;
+  if (index >= ft_face->glyph->outline.n_points)
+    return -1;
+  *x = ft_face->glyph->outline.points[index].x;
+  *y = ft_face->glyph->outline.points[index].y;
+  return 0;
+}
+
+#ifdef HAVE_LIBOTF
+#ifdef HAVE_M17N_FLT
+
+struct MFLTFontFT
+{
+  MFLTFont flt_font;
+  struct font *font;
+  FT_Face ft_face;
+  OTF *otf;
+};
+
+static int
+ftfont_get_glyph_id (font, gstring, from, to)
+     MFLTFont *font;
+     MFLTGlyphString *gstring;
+     int from, to;
+{
+  struct MFLTFontFT *flt_font_ft = (struct MFLTFontFT *) font;
+  FT_Face ft_face = flt_font_ft->ft_face;
+  MFLTGlyph *g;
+
+  for (g = gstring->glyphs + from; from < to; g++, from++)
+    if (! g->encoded)
+      {
+       FT_UInt code = FT_Get_Char_Index (ft_face, g->code);
+
+       g->code = code > 0 ? code : FONT_INVALID_CODE;
+       g->encoded = 1;
+      }
+  return 0;
+}
+
+static int
+ftfont_get_metrics (font, gstring, from, to)
+     MFLTFont *font;
+     MFLTGlyphString *gstring;
+     int from, to;
+{
+  struct MFLTFontFT *flt_font_ft = (struct MFLTFontFT *) font;
+  FT_Face ft_face = flt_font_ft->ft_face;
+  MFLTGlyph *g;
+
+  for (g = gstring->glyphs + from; from < to; g++, from++)
+    if (! g->measured)
+      {
+       if (g->code != FONT_INVALID_CODE)
+         {
+           FT_Glyph_Metrics *m;
+
+           if (FT_Load_Glyph (ft_face, g->code, FT_LOAD_DEFAULT) != 0)
+             abort ();
+           m = &ft_face->glyph->metrics;
+
+           g->lbearing = m->horiBearingX;
+           g->rbearing = m->horiBearingX + m->width;
+           g->ascent = m->horiBearingY;
+           g->descent = m->height - m->horiBearingY;
+           g->xadv = m->horiAdvance;
+         }
+       else
+         {
+           g->lbearing = 0;
+           g->rbearing = g->xadv = flt_font_ft->font->font.space_width << 6;
+           g->ascent = flt_font_ft->font->ascent << 6;
+           g->descent = flt_font_ft->font->descent << 6;
+         }
+       g->yadv = 0;
+       g->measured = 1;
+      }
+  return 0;
+}
+
+static int 
+ftfont_check_otf (MFLTFont *font, MFLTOtfSpec *spec)
+{
+  struct MFLTFontFT *flt_font_ft = (struct MFLTFontFT *) font;
+  OTF *otf = flt_font_ft->otf;
+  OTF_Tag *tags;
+  int i, n, negative;
+
+  for (i = 0; i < 2; i++)
+    {
+      if (! spec->features[i])
+       continue;
+      for (n = 0; spec->features[i][n]; n++);
+      tags = alloca (sizeof (OTF_Tag) * n);
+      for (n = 0, negative = 0; spec->features[i][n]; n++)
+       {
+         if (spec->features[i][n] == 0xFFFFFFFF)
+           negative = 1;
+         else if (negative)
+           tags[n - 1] = spec->features[i][n] | 0x80000000;
+         else
+           tags[n] = spec->features[i][n];
+       }
+      if (n - negative > 0
+         && OTF_check_features (otf, i == 0, spec->script, spec->langsys,
+                                tags, n - negative) != 1)
+       return 0;
+    }
+  return 1;
+}
+
+#define DEVICE_DELTA(table, size)                              \
+  (((size) >= (table).StartSize && (size) <= (table).EndSize)  \
+   ? (table).DeltaValue[(size) - (table).StartSize] << 6       \
+   : 0)
+
+static void
+adjust_anchor (FT_Face ft_face, OTF_Anchor *anchor,
+              unsigned code, int x_ppem, int y_ppem, int *x, int *y)
+{
+  if (anchor->AnchorFormat == 2)
+    {
+      FT_Outline *outline;
+      int ap = anchor->f.f1.AnchorPoint;
+
+      FT_Load_Glyph (ft_face, (FT_UInt) code, FT_LOAD_MONOCHROME);
+      outline = &ft_face->glyph->outline;
+      if (ap < outline->n_points)
+       {
+         *x = outline->points[ap].x << 6;
+         *y = outline->points[ap].y << 6;
+       }
+    }
+  else if (anchor->AnchorFormat == 3)
+    {
+      if (anchor->f.f2.XDeviceTable.offset)
+       *x += DEVICE_DELTA (anchor->f.f2.XDeviceTable, x_ppem);
+      if (anchor->f.f2.YDeviceTable.offset)
+       *y += DEVICE_DELTA (anchor->f.f2.YDeviceTable, y_ppem);
+    }
+}
+
+static OTF_GlyphString otf_gstring;
+
+static int 
+ftfont_drive_otf (font, spec, in, from, to, out, adjustment)
+     MFLTFont *font;
+     MFLTOtfSpec *spec;
+     MFLTGlyphString *in;
+     int from, to;
+     MFLTGlyphString *out;
+     MFLTGlyphAdjustment *adjustment;
+{
+  struct MFLTFontFT *flt_font_ft = (struct MFLTFontFT *) font;
+  FT_Face ft_face = flt_font_ft->ft_face;
+  OTF *otf = flt_font_ft->otf;
+  int len = to - from;
+  int i, j, gidx;
+  OTF_Glyph *otfg;
+  char script[5], *langsys = NULL;
+  char *gsub_features = NULL, *gpos_features = NULL;
+
+  if (len == 0)
+    return from;
+  OTF_tag_name (spec->script, script);
+  if (spec->langsys)
+    {
+      langsys = alloca (5);
+      OTF_tag_name (spec->langsys, langsys);
+    }
+  for (i = 0; i < 2; i++)
+    {
+      char *p;
+
+      if (spec->features[i] && spec->features[i][1] != 0xFFFFFFFF)
+       {
+         for (j = 0; spec->features[i][j]; j++);
+         if (i == 0)
+           p = gsub_features = alloca (6 * j);
+         else
+           p = gpos_features = alloca (6 * j);
+         for (j = 0; spec->features[i][j]; j++)
+           {
+             if (spec->features[i][j] == 0xFFFFFFFF)
+               *p++ = '*', *p++ = ',';
+             else
+               {
+                 OTF_tag_name (spec->features[i][j], p);
+                 p[4] = ',';
+                 p += 5;
+               }
+           }
+         *--p = '\0';
+       }
+    }
+
+  if (otf_gstring.size == 0)
+    {
+      otf_gstring.glyphs = (OTF_Glyph *) malloc (sizeof (OTF_Glyph) * len);
+      otf_gstring.size = len;
+    }
+  else if (otf_gstring.size < len)
+    {
+      otf_gstring.glyphs = (OTF_Glyph *) realloc (otf_gstring.glyphs,
+                                                 sizeof (OTF_Glyph) * len);
+      otf_gstring.size = len;
+    }
+  otf_gstring.used = len;
+  memset (otf_gstring.glyphs, 0, sizeof (OTF_Glyph) * len);
+  for (i = 0; i < len; i++)
+    {
+      otf_gstring.glyphs[i].c = in->glyphs[from + i].c;
+      otf_gstring.glyphs[i].glyph_id = in->glyphs[from + i].code;
+    }
+
+  OTF_drive_gdef (otf, &otf_gstring);
+  gidx = out->used;
+
+  if (gsub_features)
+    {
+      if (OTF_drive_gsub (otf, &otf_gstring, script, langsys, gsub_features)
+         < 0)
+       goto simple_copy;
+      if (out->allocated < out->used + otf_gstring.used)
+       return -2;
+      for (i = 0, otfg = otf_gstring.glyphs; i < otf_gstring.used; )
+       {
+         OTF_Glyph *endg;
+         MFLTGlyph *g;
+         int min_from, max_to;
+         int j;
+
+         g = out->glyphs + out->used;
+         *g = in->glyphs[from + otfg->f.index.from];
+         if (g->code != otfg->glyph_id)
+           {
+             g->c = 0;
+             g->code = otfg->glyph_id;
+             g->measured = 0;
+           }
+         out->used++;
+         min_from = g->from;
+         max_to = g->to;
+         if (otfg->f.index.from < otfg->f.index.to)
+           {
+             /* OTFG substitutes multiple glyphs in IN.  */
+             for (j = from + otfg->f.index.from + 1;
+                  j <= from + otfg->f.index.to; j++)
+               {
+                 if (min_from > in->glyphs[j].from)
+                   min_from = in->glyphs[j].from;
+                 if (max_to < in->glyphs[j].to)
+                   max_to = in->glyphs[j].to;
+               }
+             g->from = min_from;
+             g->to = max_to;
+           }
+         for (i++, otfg++; (i < otf_gstring.used
+                            && otfg->f.index.from == otfg[-1].f.index.from);
+              i++, otfg++)
+           {
+             g = out->glyphs + out->used;
+             *g = in->glyphs[from + otfg->f.index.to];
+             if (g->code != otfg->glyph_id)
+               {
+                 g->c = 0;
+                 g->code = otfg->glyph_id;
+                 g->measured = 0;
+               }
+             out->used++;
+           }
+       }
+    }
+  else
+    {
+      if (out->allocated < out->used + len)
+       return -2;
+      for (i = 0; i < len; i++)
+       out->glyphs[out->used++] = in->glyphs[from + i];
+    }
+
+  if (gpos_features)
+    {
+      MFLTGlyph *base = NULL, *mark = NULL, *g;
+      int x_ppem, y_ppem, x_scale, y_scale;
+
+      if (OTF_drive_gpos (otf, &otf_gstring, script, langsys, gpos_features)
+         < 0)
+       return to;
+
+      x_ppem = ft_face->size->metrics.x_ppem;
+      y_ppem = ft_face->size->metrics.y_ppem;
+      x_scale = ft_face->size->metrics.x_scale;
+      y_scale = ft_face->size->metrics.y_scale;
+
+      for (i = 0, otfg = otf_gstring.glyphs, g = out->glyphs + gidx;
+          i < otf_gstring.used; i++, otfg++, g++)
+       {
+         MFLTGlyph *prev;
+
+         if (! otfg->glyph_id)
+           continue;
+         switch (otfg->positioning_type)
+           {
+           case 0:
+             break;
+           case 1:             /* Single */
+           case 2:             /* Pair */
+             {
+               int format = otfg->f.f1.format;
+
+               if (format & OTF_XPlacement)
+                 adjustment[i].xoff
+                   = otfg->f.f1.value->XPlacement * x_scale / 0x10000;
+               if (format & OTF_XPlaDevice)
+                 adjustment[i].xoff
+                   += DEVICE_DELTA (otfg->f.f1.value->XPlaDevice, x_ppem);
+               if (format & OTF_YPlacement)
+                 adjustment[i].yoff
+                   = - (otfg->f.f1.value->YPlacement * y_scale / 0x10000);
+               if (format & OTF_YPlaDevice)
+                 adjustment[i].yoff
+                   -= DEVICE_DELTA (otfg->f.f1.value->YPlaDevice, y_ppem);
+               if (format & OTF_XAdvance)
+                 adjustment[i].xadv
+                   += otfg->f.f1.value->XAdvance * x_scale / 0x10000;
+               if (format & OTF_XAdvDevice)
+                 adjustment[i].xadv
+                   += DEVICE_DELTA (otfg->f.f1.value->XAdvDevice, x_ppem);
+               if (format & OTF_YAdvance)
+                 adjustment[i].yadv
+                   += otfg->f.f1.value->YAdvance * y_scale / 0x10000;
+               if (format & OTF_YAdvDevice)
+                 adjustment[i].yadv
+                   += DEVICE_DELTA (otfg->f.f1.value->YAdvDevice, y_ppem);
+               adjustment[i].set = 1;
+             }
+             break;
+           case 3:             /* Cursive */
+             /* Not yet supported.  */
+             break;
+           case 4:             /* Mark-to-Base */
+           case 5:             /* Mark-to-Ligature */
+             if (! base)
+               break;
+             prev = base;
+             goto label_adjust_anchor;
+           default:            /* i.e. case 6 Mark-to-Mark */
+             if (! mark)
+               break;
+             prev = mark;
+
+           label_adjust_anchor:
+             {
+               int base_x, base_y, mark_x, mark_y;
+               int this_from, this_to;
+
+               base_x = otfg->f.f4.base_anchor->XCoordinate * x_scale / 0x10000;
+               base_y = otfg->f.f4.base_anchor->YCoordinate * y_scale / 0x10000;
+               mark_x = otfg->f.f4.mark_anchor->XCoordinate * x_scale / 0x10000;
+               mark_y = otfg->f.f4.mark_anchor->YCoordinate * y_scale / 0x10000;;
+
+               if (otfg->f.f4.base_anchor->AnchorFormat != 1)
+                 adjust_anchor (ft_face, otfg->f.f4.base_anchor,
+                                prev->code, x_ppem, y_ppem, &base_x, &base_y);
+               if (otfg->f.f4.mark_anchor->AnchorFormat != 1)
+                 adjust_anchor (ft_face, otfg->f.f4.mark_anchor, g->code,
+                                x_ppem, y_ppem, &mark_x, &mark_y);
+               adjustment[i].xoff = (base_x - mark_x);
+               adjustment[i].yoff = - (base_y - mark_y);
+               adjustment[i].back = (g - prev);
+               adjustment[i].xadv = 0;
+               adjustment[i].advance_is_absolute = 1;
+               adjustment[i].set = 1;
+               this_from = g->from;
+               this_to = g->to;
+               for (j = 0; prev + j < g; j++)
+                 {
+                   if (this_from > prev[j].from)
+                     this_from = prev[j].from;
+                   if (this_to < prev[j].to)
+                     this_to = prev[j].to;
+                 }
+               for (; prev <= g; prev++)
+                 {
+                   prev->from = this_from;
+                   prev->to = this_to;
+                 }
+             }
+           }
+         if (otfg->GlyphClass == OTF_GlyphClass0)
+           base = mark = g;
+         else if (otfg->GlyphClass == OTF_GlyphClassMark)
+           mark = g;
+         else
+           base = g;
+       }
+    }
+  return to;
+
+ simple_copy:
+  if (out->allocated < out->used + len)
+    return -2;
+  font->get_metrics (font, in, from, to);
+  memcpy (out->glyphs + out->used, in->glyphs + from,
+         sizeof (MFLTGlyph) * len);
+  out->used += len;
+  return to;
+}
+
+static MFLTGlyphString gstring;
+
+static int m17n_flt_initialized;
+
+extern Lisp_Object QCfamily;
+
+Lisp_Object
+ftfont_shape_by_flt (lgstring, font, ft_face, otf)
+     Lisp_Object lgstring;
+     struct font *font;
+     FT_Face ft_face;
+     OTF *otf;
+{
+  EMACS_UINT len = LGSTRING_LENGTH (lgstring);
+  EMACS_UINT i;
+  struct MFLTFontFT flt_font_ft;
+
+  if (! m17n_flt_initialized)
+    {
+      M17N_INIT ();
+      m17n_flt_initialized = 1;
+    }
+
+  for (i = 0; i < len; i++)
+    if (NILP (LGSTRING_GLYPH (lgstring, i)))
+      break;
+  len = i;
+
+  if (gstring.allocated == 0)
+    {
+      gstring.allocated = len * 2;
+      gstring.glyph_size = sizeof (MFLTGlyph);
+      gstring.glyphs = malloc (sizeof (MFLTGlyph) * gstring.allocated);
+    }
+  else if (gstring.allocated < len * 2)
+    {
+      gstring.allocated = len * 2;
+      gstring.glyphs = realloc (gstring.glyphs,
+                               sizeof (MFLTGlyph) * gstring.allocated);
+    }
+  for (i = 0; i < len; i++)
+    gstring.glyphs[i].c = LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, i));
+  gstring.used = len;
+  gstring.r2l = 0;
+
+  {
+    Lisp_Object family = Ffont_get (LGSTRING_FONT (lgstring), QCfamily);
+
+    if (NILP (family))
+      flt_font_ft.flt_font.family = Mnil;
+    else
+      flt_font_ft.flt_font.family = msymbol (SDATA (SYMBOL_NAME (family)));
+  }
+  flt_font_ft.flt_font.x_ppem = ft_face->size->metrics.x_ppem;
+  flt_font_ft.flt_font.y_ppem = ft_face->size->metrics.y_ppem;
+  flt_font_ft.flt_font.get_glyph_id = ftfont_get_glyph_id;
+  flt_font_ft.flt_font.get_metrics = ftfont_get_metrics;
+  flt_font_ft.flt_font.check_otf = ftfont_check_otf;
+  flt_font_ft.flt_font.drive_otf = ftfont_drive_otf;
+  flt_font_ft.flt_font.internal = NULL;
+  flt_font_ft.font = font;
+  flt_font_ft.ft_face = ft_face;
+  flt_font_ft.otf = otf;
+  for (i = 0; i < 3; i++)
+    {
+      int result = mflt_run (&gstring, 0, len, &flt_font_ft.flt_font, NULL);
+      if (result != -2)
+       break;
+      gstring.allocated += gstring.allocated;
+      gstring.glyphs = realloc (gstring.glyphs,
+                               sizeof (MFLTGlyph) * gstring.allocated);
+    }
+  if (gstring.used > LGSTRING_LENGTH (lgstring))
+    return Qnil;
+  for (i = 0; i < gstring.used; i++)
+    {
+      MFLTGlyph *g = gstring.glyphs + i;
+
+      g->from = LGLYPH_FROM (LGSTRING_GLYPH (lgstring, g->from));
+      g->to = LGLYPH_TO (LGSTRING_GLYPH (lgstring, g->to));
+    }
+
+  for (i = 0; i < gstring.used; i++)
+    {
+      Lisp_Object lglyph = LGSTRING_GLYPH (lgstring, i);
+      MFLTGlyph *g = gstring.glyphs + i;
+
+      if (NILP (lglyph))
+       {
+         lglyph = Fmake_vector (make_number (LGLYPH_SIZE), Qnil);
+         LGSTRING_SET_GLYPH (lgstring, i, lglyph);
+       }
+      LGLYPH_SET_FROM (lglyph, g->from);
+      LGLYPH_SET_TO (lglyph, g->to);
+      LGLYPH_SET_CHAR (lglyph, g->c);
+      LGLYPH_SET_CODE (lglyph, g->code);
+      LGLYPH_SET_WIDTH (lglyph, g->xadv >> 6);
+      LGLYPH_SET_LBEARING (lglyph, g->lbearing >> 6);
+      LGLYPH_SET_RBEARING (lglyph, g->rbearing >> 6);
+      LGLYPH_SET_ASCENT (lglyph, g->ascent >> 6);
+      LGLYPH_SET_DESCENT (lglyph, g->descent >> 6);
+      if (g->adjusted)
+       {
+         Lisp_Object vec;
+
+         vec = Fmake_vector (make_number (3), Qnil);
+         ASET (vec, 0, make_number (g->xoff >> 6));
+         ASET (vec, 1, make_number (g->yoff >> 6));
+         ASET (vec, 2, make_number (g->xadv >> 6));
+         LGLYPH_SET_ADJUSTMENT (lglyph, vec);
+       }
+    }
+  return make_number (i);
+}
+
+Lisp_Object
+ftfont_shape (lgstring)
+     Lisp_Object lgstring;
+{
+  struct font *font;
+  struct ftfont_info *ftfont_info;
+
+  CHECK_FONT_GET_OBJECT (LGSTRING_FONT (lgstring), font);
+  ftfont_info = (struct ftfont_info *) font;
+  if (! ftfont_info->maybe_otf)
+    return 0;
+  if (! ftfont_info->otf)
+    {
+      OTF *otf = OTF_open_ft_face (ftfont_info->ft_size->face);
+
+      if (! otf || OTF_get_table (otf, "head") < 0)
+       {
+         if (otf)
+           OTF_close (otf);
+         ftfont_info->maybe_otf = 0;
+         return 0;
+       }
+
+      ftfont_info->otf = otf;
+    }
+
+  return ftfont_shape_by_flt (lgstring, font, ftfont_info->ft_size->face,
+                             ftfont_info->otf);
+}
+
+#endif /* HAVE_M17N_FLT */
+#endif /* HAVE_LIBOTF */
+
+Lisp_Object
+ftfont_font_format (FcPattern *pattern)
+{
+  FcChar8 *str;
+
+#ifdef FC_FONTFORMAT
+  if (FcPatternGetString (pattern, FC_FONTFORMAT, 0, &str) != FcResultMatch)
+    return Qnil;
+  if (strcmp ((char *) str, "TrueType") == 0)
+    return intern ("truetype");
+  if (strcmp ((char *) str, "Type 1") == 0)
+    return intern ("type1");
+  if (strcmp ((char *) str, "PCF") == 0)  
+    return intern ("pcf");
+  if (strcmp ((char *) str, "BDF") == 0)  
+    return intern ("bdf");
+#else  /* not FC_FONTFORMAT */
+  if (FcPatternGetString (pattern, FC_FILE, 0, &str) != FcResultMatch)
+    return Qnil;
+  if (strcasestr ((char *) str, ".ttf") == 0)
+    return intern ("truetype");
+  if (strcasestr ((char *) str, "pfb") == 0)
+    return intern ("type1");
+  if (strcasestr ((char *) str, "pcf") == 0)  
+    return intern ("pcf");
+  if (strcasestr ((char *) str, "bdf") == 0)  
+    return intern ("bdf");
+#endif /* not FC_FONTFORMAT */
+  return intern ("unknown");
+}
+
+\f
+void
+syms_of_ftfont ()
+{
+  DEFSYM (Qfreetype, "freetype");
+  DEFSYM (Qmonospace, "monospace");
+  DEFSYM (Qsans_serif, "sans-serif");
+  DEFSYM (Qserif, "serif");
+  DEFSYM (Qmono, "mono");
+  DEFSYM (Qsans, "sans");
+  DEFSYM (Qsans__serif, "sans serif");
+
+  staticpro (&freetype_font_cache);
+  freetype_font_cache = Fcons (Qt, Qnil);
+
+  staticpro (&ftfont_generic_family_list);
+  ftfont_generic_family_list
+    = Fcons (Fcons (Qmonospace, Qt),
+            Fcons (Fcons (Qsans_serif, Qt),
+                   Fcons (Fcons (Qsans, Qt), Qnil)));
+
+  ftfont_driver.type = Qfreetype;
+  register_font_driver (&ftfont_driver, NULL);
+}
+
+/* arch-tag: 7cfa432c-33a6-4988-83d2-a82ed8604aca
+   (do not change this comment) */
diff --git a/src/ftfont.h b/src/ftfont.h
new file mode 100644 (file)
index 0000000..bd6d478
--- /dev/null
@@ -0,0 +1,42 @@
+/* ftfont.h -- Interface definition for Freetype font backend.
+   Copyright (C) 2007
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#ifndef EMACS_FTFONT_H
+#define EMACS_FTFONT_H
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_SIZES_H
+
+#ifdef HAVE_LIBOTF
+#include <otf.h>
+#ifdef HAVE_M17N_FLT
+#include <m17n-flt.h>
+extern Lisp_Object ftfont_shape_by_flt P_ ((Lisp_Object, struct font *,
+                                           FT_Face, OTF *));
+#endif /* HAVE_LIBOTF */
+#endif /* HAVE_M17N_FLT */
+
+#endif /* EMACS_FTFONT_H */
+
+/* arch-tag: cec13d1c-7156-4997-9ebd-e989040c3d78
+   (do not change this comment) */
diff --git a/src/ftxfont.c b/src/ftxfont.c
new file mode 100644 (file)
index 0000000..62453a1
--- /dev/null
@@ -0,0 +1,472 @@
+/* ftxfont.c -- FreeType font driver on X (without using XFT).
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+#include <stdio.h>
+#include <X11/Xlib.h>
+
+#include "lisp.h"
+#include "dispextern.h"
+#include "xterm.h"
+#include "frame.h"
+#include "blockinput.h"
+#include "character.h"
+#include "charset.h"
+#include "fontset.h"
+#include "font.h"
+
+/* FTX font driver.  */
+
+static Lisp_Object Qftx;
+
+/* Prototypes for helper function.  */
+static GC *ftxfont_get_gcs P_ ((FRAME_PTR, unsigned long, unsigned long));
+static int ftxfont_draw_bitmap P_ ((FRAME_PTR, GC, GC *, struct font *,
+                                   unsigned, int, int, XPoint *, int, int *,
+                                   int));
+static void ftxfont_draw_backgrond P_ ((FRAME_PTR, struct font *, GC,
+                                       int, int, int));
+static Font ftxfont_default_fid P_ ((FRAME_PTR));
+
+struct ftxfont_frame_data
+{
+  /* Background and foreground colors.  */
+  XColor colors[2];
+  /* GCs interporationg the above colors.  gcs[0] is for a color
+   closest to BACKGROUND, and gcs[5] is for a color closest to
+   FOREGROUND.  */
+  GC gcs[6];
+  struct ftxfont_frame_data *next;
+};
+
+
+/* Return an array of 6 GCs for antialiasing.  */
+
+static GC *
+ftxfont_get_gcs (f, foreground, background)
+     FRAME_PTR f;
+     unsigned long foreground, background;
+{
+  XColor color;
+  XGCValues xgcv;
+  int i;
+  struct ftxfont_frame_data *data = font_get_frame_data (f, &ftxfont_driver);
+  struct ftxfont_frame_data *prev = NULL, *this = NULL, *new;
+
+  if (data)
+    {
+      for (this = data; this; prev = this, this = this->next)
+       {
+         if (this->colors[0].pixel < background)
+           continue;
+         if (this->colors[0].pixel > background)
+           break;
+         if (this->colors[1].pixel < foreground)
+           continue;
+         if (this->colors[1].pixel > foreground)
+           break;
+         return this->gcs;
+       }
+    }
+
+  new = malloc (sizeof (struct ftxfont_frame_data));
+  if (! new)
+    return NULL;
+  new->next = this;
+  if (prev)
+    {
+      prev->next = new;
+    }
+  else if (font_put_frame_data (f, &ftxfont_driver, new) < 0)
+    {
+      free (new);
+      return NULL;
+    }
+
+  new->colors[0].pixel = background;
+  new->colors[1].pixel = foreground;
+
+  BLOCK_INPUT;
+  XQueryColors (FRAME_X_DISPLAY (f), FRAME_X_COLORMAP (f), new->colors, 2);
+  for (i = 1; i < 7; i++)
+    {
+      /* Interpolate colors linearly.  Any better algorithm?  */
+      color.red
+       = (new->colors[1].red * i + new->colors[0].red * (8 - i)) / 8;
+      color.green
+       = (new->colors[1].green * i + new->colors[0].green * (8 - i)) / 8;
+      color.blue
+       = (new->colors[1].blue * i + new->colors[0].blue * (8 - i)) / 8;
+      if (! x_alloc_nearest_color (f, FRAME_X_COLORMAP (f), &color))
+       break;
+      xgcv.foreground = color.pixel;
+      new->gcs[i - 1] = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
+                                  GCForeground, &xgcv);
+    }
+  UNBLOCK_INPUT;
+
+  if (i < 7)
+    {
+      BLOCK_INPUT;
+      for (i--; i >= 0; i--)
+       XFreeGC (FRAME_X_DISPLAY (f), new->gcs[i]);
+      UNBLOCK_INPUT;
+      if (prev)
+       prev->next = new->next;
+      else if (data)
+       font_put_frame_data (f, &ftxfont_driver, new->next);
+      free (new);
+      return NULL;
+    }
+  return new->gcs;
+}
+
+static int
+ftxfont_draw_bitmap (f, gc_fore, gcs, font, code, x, y, p, size, n, flush)
+     FRAME_PTR f;
+     GC gc_fore, *gcs;
+     struct font *font;
+     unsigned code;
+     int x, y;
+     XPoint *p;
+     int size, *n;
+     int flush;
+{
+  struct font_bitmap bitmap;
+  unsigned char *b;
+  int i, j;
+
+  if (ftfont_driver.get_bitmap (font, code, &bitmap, size > 0x100 ? 1 : 8) < 0)
+    return 0;
+  if (size > 0x100)
+    {
+      for (i = 0, b = bitmap.buffer; i < bitmap.rows;
+          i++, b += bitmap.pitch)
+       {
+         for (j = 0; j < bitmap.width; j++)
+           if (b[j / 8] & (1 << (7 - (j % 8))))
+             {
+               p[n[0]].x = x + bitmap.left + j;
+               p[n[0]].y = y - bitmap.top + i;
+               if (++n[0] == size)
+                 {
+                   XDrawPoints (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
+                                gc_fore, p, size, CoordModeOrigin);
+                   n[0] = 0;
+                 }
+             }
+       }
+      if (flush && n[0] > 0)
+       XDrawPoints (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
+                    gc_fore, p, n[0], CoordModeOrigin);
+    }
+  else
+    {
+      for (i = 0, b = bitmap.buffer; i < bitmap.rows;
+          i++, b += bitmap.pitch)
+       {
+         for (j = 0; j < bitmap.width; j++)
+           {
+             int idx = (bitmap.bits_per_pixel == 1
+                        ? ((b[j / 8] & (1 << (7 - (j % 8)))) ? 6 : -1)
+                        : (b[j] >> 5) - 1);
+
+             if (idx >= 0)
+               {
+                 XPoint *pp = p + size * idx;
+
+                 pp[n[idx]].x = x + bitmap.left + j;
+                 pp[n[idx]].y = y - bitmap.top + i;
+                 if (++(n[idx]) == size)
+                   {
+                     XDrawPoints (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
+                                  idx == 6 ? gc_fore : gcs[idx], pp, size,
+                                  CoordModeOrigin);
+                     n[idx] = 0;
+                   }
+               }
+           }
+       }
+      if (flush)
+       {
+         for (i = 0; i < 6; i++)
+           if (n[i] > 0)
+             XDrawPoints (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
+                          gcs[i], p + 0x100 * i, n[i], CoordModeOrigin);
+         if (n[6] > 0)
+           XDrawPoints (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
+                        gc_fore, p + 0x600, n[6], CoordModeOrigin);
+       }
+    }
+
+  if (ftfont_driver.free_bitmap)
+    ftfont_driver.free_bitmap (font, &bitmap);
+
+  return bitmap.advance;
+}
+
+static void
+ftxfont_draw_backgrond (f, font, gc, x, y, width)
+     FRAME_PTR f;
+     struct font *font;
+     GC gc;
+     int x, y, width;
+{
+  XGCValues xgcv;
+
+  XGetGCValues (FRAME_X_DISPLAY (f), gc,
+               GCForeground | GCBackground, &xgcv);
+  XSetForeground (FRAME_X_DISPLAY (f), gc, xgcv.background);
+  XFillRectangle (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), gc,
+                 x, y - font->ascent, width, y + font->descent);
+  XSetForeground (FRAME_X_DISPLAY (f), gc, xgcv.foreground);
+}
+
+/* Return the default Font ID on frame F.  */
+
+static Font
+ftxfont_default_fid (f)
+     FRAME_PTR f;
+{
+  static int fid_known;
+  static Font fid;
+
+  if (! fid_known)
+    {
+      fid = XLoadFont (FRAME_X_DISPLAY (f), "fixed");
+      if (! fid)
+       {
+         fid = XLoadFont (FRAME_X_DISPLAY (f), "*");
+         if (! fid)
+           abort ();
+       }
+      fid_known = 1;
+    }
+  return fid;
+}
+
+/* Prototypes for font-driver methods.  */
+static Lisp_Object ftxfont_list P_ ((Lisp_Object, Lisp_Object));
+static Lisp_Object ftxfont_match P_ ((Lisp_Object, Lisp_Object));
+static struct font *ftxfont_open P_ ((FRAME_PTR, Lisp_Object, int));
+static void ftxfont_close P_ ((FRAME_PTR, struct font *));
+static int ftxfont_draw P_ ((struct glyph_string *, int, int, int, int, int));
+
+struct font_driver ftxfont_driver;
+
+static Lisp_Object
+ftxfont_list (frame, spec)
+     Lisp_Object frame;
+     Lisp_Object spec;
+{
+  Lisp_Object val = ftfont_driver.list (frame, spec);
+  
+  if (! NILP (val))
+    {
+      int i;
+
+      for (i = 0; i < ASIZE (val); i++)
+       ASET (AREF (val, i), FONT_TYPE_INDEX, Qftx);
+    }
+  return val;
+}
+
+static Lisp_Object
+ftxfont_match (frame, spec)
+     Lisp_Object frame;
+     Lisp_Object spec;
+{
+  Lisp_Object entity = ftfont_driver.match (frame, spec);
+
+  if (VECTORP (entity))
+    ASET (entity, FONT_TYPE_INDEX, Qftx);
+  return entity;
+}
+
+static struct font *
+ftxfont_open (f, entity, pixel_size)
+     FRAME_PTR f;
+     Lisp_Object entity;
+     int pixel_size;
+{
+  Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
+  struct font *font;
+  XFontStruct *xfont = malloc (sizeof (XFontStruct));
+  
+  if (! xfont)
+    return NULL;
+  font = ftfont_driver.open (f, entity, pixel_size);
+  if (! font)
+    {
+      free (xfont);
+      return NULL;
+    }
+
+  xfont->fid = ftxfont_default_fid (f);
+  xfont->ascent = font->ascent;
+  xfont->descent = font->descent;
+  xfont->max_bounds.width = font->font.size;
+  xfont->min_bounds.width = font->min_width;
+  font->font.font = xfont;
+  font->driver = &ftxfont_driver;
+
+  dpyinfo->n_fonts++;
+
+  /* Set global flag fonts_changed_p to non-zero if the font loaded
+     has a character with a smaller width than any other character
+     before, or if the font loaded has a smaller height than any other
+     font loaded before.  If this happens, it will make a glyph matrix
+     reallocation necessary.  */
+  if (dpyinfo->n_fonts == 1)
+    {
+      dpyinfo->smallest_font_height = font->font.height;
+      dpyinfo->smallest_char_width = font->min_width;
+      fonts_changed_p = 1;
+    }
+  else
+    {
+      if (dpyinfo->smallest_font_height > font->font.height)
+       dpyinfo->smallest_font_height = font->font.height, fonts_changed_p |= 1;
+      if (dpyinfo->smallest_char_width > font->min_width)
+       dpyinfo->smallest_char_width = font->min_width, fonts_changed_p |= 1;
+    }
+
+  return font;
+}
+
+static void
+ftxfont_close (f, font)
+     FRAME_PTR f;
+     struct font *font;
+{
+  ftfont_driver.close (f, font);
+  FRAME_X_DISPLAY_INFO (f)->n_fonts--;
+}
+
+static int
+ftxfont_draw (s, from, to, x, y, with_background)
+     struct glyph_string *s;
+     int from, to, x, y, with_background;
+{
+  FRAME_PTR f = s->f;
+  struct face *face = s->face;
+  struct font *font = (struct font *) face->font_info;
+  XPoint p[0x700];
+  int n[7];
+  unsigned *code;
+  int len = to - from;
+  int i;
+  GC *gcs;
+
+  n[0] = n[1] = n[2] = n[3] = n[4] = n[5] = n[6] = 0;
+
+  BLOCK_INPUT;
+  if (with_background)
+    ftxfont_draw_backgrond (f, font, s->gc, x, y, s->width);
+  code = alloca (sizeof (unsigned) * len);
+  for (i = 0; i < len; i++)
+    code[i] = ((XCHAR2B_BYTE1 (s->char2b + from + i) << 8)
+              | XCHAR2B_BYTE2 (s->char2b + from + i));
+
+  if (face->gc == s->gc)
+    {
+      gcs = ftxfont_get_gcs (f, face->foreground, face->background);
+    }
+  else
+    {
+      XGCValues xgcv;
+      unsigned long mask = GCForeground | GCBackground;
+
+      XGetGCValues (FRAME_X_DISPLAY (f), s->gc, mask, &xgcv);
+      gcs = ftxfont_get_gcs (f, xgcv.foreground, xgcv.background);
+    }
+
+  if (gcs)
+    {
+      if (s->num_clips)
+       for (i = 0; i < 6; i++)
+         XSetClipRectangles (FRAME_X_DISPLAY (f), gcs[i], 0, 0,
+                             s->clip, s->num_clips, Unsorted);
+
+      for (i = 0; i < len; i++)
+       x += ftxfont_draw_bitmap (f, s->gc, gcs, font, code[i], x, y,
+                                 p, 0x100, n, i + 1 == len);
+      if (s->num_clips)
+       for (i = 0; i < 6; i++)
+         XSetClipMask (FRAME_X_DISPLAY (f), gcs[i], None);
+    }
+  else
+    {
+      /* We can't draw with antialiasing.
+        s->gc should already have a proper clipping setting. */
+      for (i = 0; i < len; i++)
+       x += ftxfont_draw_bitmap (f, s->gc, NULL, font, code[i], x, y,
+                                 p, 0x700, n, i + 1 == len);
+    }
+
+  UNBLOCK_INPUT;
+
+  return len;
+}
+
+static int
+ftxfont_end_for_frame (f)
+     FRAME_PTR f;
+{
+  struct ftxfont_frame_data *data = font_get_frame_data (f, &ftxfont_driver);
+  
+  BLOCK_INPUT;
+  while (data)
+    {
+      struct ftxfont_frame_data *next = data->next;
+      int i;
+      
+      for (i = 0; i < 6; i++)
+       XFreeGC (FRAME_X_DISPLAY (f), data->gcs[i]);
+      free (data);
+      data = next;
+    }
+  UNBLOCK_INPUT;
+  return 0;
+}
+
+\f
+
+void
+syms_of_ftxfont ()
+{
+  DEFSYM (Qftx, "ftx");
+
+  ftxfont_driver = ftfont_driver;
+  ftxfont_driver.type = Qftx;
+  ftxfont_driver.list = ftxfont_list;
+  ftxfont_driver.match = ftxfont_match;
+  ftxfont_driver.open = ftxfont_open;
+  ftxfont_driver.close = ftxfont_close;
+  ftxfont_driver.draw = ftxfont_draw;
+  ftxfont_driver.end_for_frame = ftxfont_end_for_frame;
+  register_font_driver (&ftxfont_driver, NULL);
+}
+
+/* arch-tag: 59bd3469-5330-413f-b29d-1aa36492abe8
+   (do not change this comment) */
index 2d48dc746d7a199b87e50858770ae46a1eca77e5..3f52874957004443a50f72e139f7363adf8252e0 100644 (file)
@@ -24,7 +24,7 @@ Boston, MA 02110-1301, USA.  */
 
 #include "lisp.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "category.h"
 #include "indent.h"
 #include "keyboard.h"
@@ -291,7 +291,7 @@ check_composition (pos, pos_byte, point, len, len_byte, width)
      int *len, *len_byte, *width;
 {
   Lisp_Object prop;
-  int start, end;
+  EMACS_INT start, end;
   int id;
 
   if (! find_composition (pos, -1, &start, &end, &prop, Qnil)
@@ -327,7 +327,7 @@ check_composition (pos, pos_byte, point, len, len_byte, width)
        if (dp != 0 && VECTORP (DISP_CHAR_VECTOR (dp, c)))              \
          width = XVECTOR (DISP_CHAR_VECTOR (dp, c))->size;             \
        else                                                            \
-         width = WIDTH_BY_CHAR_HEAD (*p);                              \
+         width = CHAR_WIDTH (c);                                       \
        if (width > 1)                                                  \
          wide_column = width;                                          \
       }                                                                        \
index 5cde53864b73b2a3733f1884a23531a75c1b1f06..0b10534db2f81882a2bbb522743231faab24f133 100644 (file)
@@ -24,7 +24,7 @@ Boston, MA 02110-1301, USA.  */
 #include "lisp.h"
 #include "intervals.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "window.h"
 #include "blockinput.h"
 #include "region-cache.h"
@@ -652,22 +652,11 @@ copy_text (from_addr, to_addr, nbytes,
       int bytes_left = nbytes;
       Lisp_Object tbl = Qnil;
 
-      /* We set the variable tbl to the reverse table of
-         Vnonascii_translation_table in advance.  */
-      if (CHAR_TABLE_P (Vnonascii_translation_table))
-       {
-         tbl = Fchar_table_extra_slot (Vnonascii_translation_table,
-                                       make_number (0));
-         if (!CHAR_TABLE_P (tbl))
-           tbl = Qnil;
-       }
-
-      /* Convert multibyte to single byte.  */
       while (bytes_left > 0)
        {
          int thislen, c;
          c = STRING_CHAR_AND_LENGTH (from_addr, bytes_left, thislen);
-         if (!SINGLE_BYTE_CHAR_P (c))
+         if (!ASCII_CHAR_P (c))
            c = multibyte_char_to_unibyte (c, tbl);
          *to_addr++ = c;
          from_addr += thislen;
@@ -1173,6 +1162,50 @@ insert_from_string_1 (string, pos, pos_byte, nchars, nbytes,
                               current_buffer, inherit);
 
   adjust_point (nchars, outgoing_nbytes);
+
+  CHECK_MARKERS ();
+}
+\f
+/* Insert a sequence of NCHARS chars which occupy NBYTES bytes
+   starting at GPT_ADDR.  */
+
+void
+insert_from_gap (nchars, nbytes)
+     register int nchars, nbytes;
+{
+  if (NILP (current_buffer->enable_multibyte_characters))
+    nchars = nbytes;
+
+  record_insert (GPT, nchars);
+  MODIFF++;
+
+  GAP_SIZE -= nbytes;
+  GPT += nchars;
+  ZV += nchars;
+  Z += nchars;
+  GPT_BYTE += nbytes;
+  ZV_BYTE += nbytes;
+  Z_BYTE += nbytes;
+  if (GAP_SIZE > 0) *(GPT_ADDR) = 0; /* Put an anchor.  */
+
+  if (GPT_BYTE < GPT)
+    abort ();
+
+  adjust_overlays_for_insert (GPT - nchars, nchars);
+  adjust_markers_for_insert (GPT - nchars, GPT_BYTE - nbytes,
+                            GPT, GPT_BYTE, 0);
+
+  if (BUF_INTERVALS (current_buffer) != 0)
+    {
+      offset_intervals (current_buffer, GPT - nchars, nchars);
+      graft_intervals_into_buffer (NULL_INTERVAL, GPT - nchars, nchars,
+                                  current_buffer, 0);
+    }
+
+  if (GPT - nchars < PT)
+    adjust_point (nchars, nbytes);
+
+  CHECK_MARKERS ();
 }
 \f
 /* Insert text from BUF, NCHARS characters starting at CHARPOS, into the
index 639abcf349181497421330a7fbd00bf8a37436e3..1190ad11cea0d30eb9890c696693d3c48ca1db50 100644 (file)
@@ -2316,7 +2316,7 @@ int
 get_property_and_range (pos, prop, val, start, end, object)
      int pos;
      Lisp_Object prop, *val;
-     int *start, *end;
+     EMACS_INT *start, *end;
      Lisp_Object object;
 {
   INTERVAL i, prev, next;
index 3b746ec40e9931d84207b90bb4dacef5bd0faf4c..d15470521da238002d7d6858bef1f38277e7f806 100644 (file)
@@ -300,7 +300,7 @@ extern Lisp_Object textget P_ ((Lisp_Object, Lisp_Object));
 extern Lisp_Object lookup_char_property P_ ((Lisp_Object, Lisp_Object, int));
 extern void move_if_not_intangible P_ ((int));
 extern int get_property_and_range P_ ((int, Lisp_Object, Lisp_Object *,
-                                      int *, int *, Lisp_Object));
+                                      EMACS_INT *, EMACS_INT *, Lisp_Object));
 extern Lisp_Object get_local_map P_ ((int, struct buffer *, Lisp_Object));
 extern INTERVAL update_interval P_ ((INTERVAL, int));
 extern void set_intervals_multibyte P_ ((int));
index bcd3b536c57a3571a2e75fa3ffb46071af17a760..2230b339f5e5766e4bbdc94df7597d71b170707a 100644 (file)
@@ -33,7 +33,7 @@ Boston, MA 02110-1301, USA.  */
 #include "window.h"
 #include "commands.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "disptab.h"
 #include "dispextern.h"
 #include "syntax.h"
@@ -1799,7 +1799,7 @@ command_loop_1 ()
                          : (lose >= 0x20 && lose < 0x7f))
                      /* To extract the case of continuation on
                          wide-column characters.  */
-                     && (WIDTH_BY_CHAR_HEAD (FETCH_BYTE (PT_BYTE)) == 1)
+                     && ASCII_BYTE_P (lose)
                      && (XFASTINT (XWINDOW (selected_window)->last_modified)
                          >= MODIFF)
                      && (XFASTINT (XWINDOW (selected_window)->last_overlay_modified)
@@ -1856,7 +1856,7 @@ command_loop_1 ()
                {
                  unsigned int c
                    = translate_char (Vtranslation_table_for_input,
-                                     XFASTINT (last_command_char), 0, 0, 0);
+                                     XFASTINT (last_command_char));
                  int value;
                  if (NILP (Vexecuting_kbd_macro)
                      && !EQ (minibuf_window, selected_window))
@@ -2035,7 +2035,7 @@ adjust_point_for_property (last_pt, modified)
      int last_pt;
      int modified;
 {
-  int beg, end;
+  EMACS_INT beg, end;
   Lisp_Object val, overlay, tmp;
   int check_composition = 1, check_display = 1, check_invisible = 1;
   int orig_pt = PT;
@@ -3196,7 +3196,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
          || (VECTORP (current_kboard->Vkeyboard_translate_table)
              && XVECTOR (current_kboard->Vkeyboard_translate_table)->size > (unsigned) XFASTINT (c))
          || (CHAR_TABLE_P (current_kboard->Vkeyboard_translate_table)
-             && CHAR_VALID_P (XINT (c), 0)))
+             && CHARACTERP (c)))
        {
          Lisp_Object d;
          d = Faref (current_kboard->Vkeyboard_translate_table, c);
@@ -10087,8 +10087,38 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
 
       /* If KEY is not defined in any of the keymaps,
         and cannot be part of a function key or translation,
-        and is an upper case letter or shifted key,
-        use the corresponding lower-case/unshifted key instead.  */
+        and is an upper case letter
+        use the corresponding lower-case letter instead.  */
+      if (first_binding >= nmaps
+         && /* indec.start >= t && fkey.start >= t && */ keytran.start >= t
+         && INTEGERP (key)
+         && ((CHARACTERP (make_number (XINT (key) & ~CHAR_MODIFIER_MASK))
+              && UPPERCASEP (XINT (key) & ~CHAR_MODIFIER_MASK))
+             || (XINT (key) & shift_modifier)))
+       {
+         Lisp_Object new_key;
+
+         original_uppercase = key;
+         original_uppercase_position = t - 1;
+
+         if (XINT (key) & shift_modifier)
+           XSETINT (new_key, XINT (key) & ~shift_modifier);
+         else
+           XSETINT (new_key, (DOWNCASE (XINT (key) & ~CHAR_MODIFIER_MASK)
+                              | (XINT (key) & ~CHAR_MODIFIER_MASK)));
+
+         /* We have to do this unconditionally, regardless of whether
+            the lower-case char is defined in the keymaps, because they
+            might get translated through function-key-map.  */
+         keybuf[t - 1] = new_key;
+         mock_input = max (t, mock_input);
+
+         goto replay_sequence;
+       }
+      /* If KEY is not defined in any of the keymaps,
+        and cannot be part of a function key or translation,
+        and is a shifted function key,
+        use the corresponding unshifted function key instead.  */
       if (first_binding >= nmaps
          && /* indec.start >= t && fkey.start >= t && */ keytran.start >= t)
        {
index 5cfa8e7e1ceb4dfc230ba420e7d56fad13dad48a..1630ac22a5359f8dedbf5058fddc859b06634779 100644 (file)
@@ -29,6 +29,7 @@ Boston, MA 02110-1301, USA.  */
 #include "lisp.h"
 #include "commands.h"
 #include "buffer.h"
+#include "character.h"
 #include "charset.h"
 #include "keyboard.h"
 #include "frame.h"
@@ -422,11 +423,7 @@ Return PARENT.  PARENT should be nil or another keymap.  */)
 
       if (CHAR_TABLE_P (XCAR (list)))
        {
-         int indices[3];
-
-         map_char_table (fix_submap_inheritance, Qnil,
-                         XCAR (list), XCAR (list),
-                         keymap, 0, indices);
+         map_char_table (fix_submap_inheritance, Qnil, XCAR (list), keymap);
        }
     }
 
@@ -566,9 +563,7 @@ access_keymap (map, idx, t_ok, noinherit, autoload)
 
     GCPRO4 (map, tail, idx, t_binding);
 
-    /* If `t_ok' is 2, both `t' and generic-char bindings are accepted.
-       If it is 1, only generic-char bindings are accepted.
-       Otherwise, neither are.  */
+    /* If `t_ok' is 2, both `t' is accepted.  */
     t_ok = t_ok ? 2 : 0;
 
     for (tail = XCDR (map);
@@ -592,24 +587,6 @@ access_keymap (map, idx, t_ok, noinherit, autoload)
 
            if (EQ (key, idx))
              val = XCDR (binding);
-           else if (t_ok
-                    && INTEGERP (idx)
-                    && (XINT (idx) & CHAR_MODIFIER_MASK) == 0
-                    && INTEGERP (key)
-                    && (XINT (key) & CHAR_MODIFIER_MASK) == 0
-                    && !SINGLE_BYTE_CHAR_P (XINT (idx))
-                    && !SINGLE_BYTE_CHAR_P (XINT (key))
-                    && CHAR_VALID_P (XINT (key), 1)
-                    && !CHAR_VALID_P (XINT (key), 0)
-                    && (CHAR_CHARSET (XINT (key))
-                        == CHAR_CHARSET (XINT (idx))))
-             {
-               /* KEY is the generic character of the charset of IDX.
-                  Use KEY's binding if there isn't a binding for IDX
-                  itself.  */
-               t_binding = XCDR (binding);
-               t_ok = 0;
-             }
            else if (t_ok > 1 && EQ (key, Qt))
              {
                t_binding = XCDR (binding);
@@ -721,12 +698,10 @@ map_keymap (map, fun, args, data, autoload)
        }
       else if (CHAR_TABLE_P (binding))
        {
-         int indices[3];
-         map_char_table (map_keymap_char_table_item, Qnil, binding, binding,
+         map_char_table (map_keymap_char_table_item, Qnil, binding,
                          Fcons (make_save_value (fun, 0),
                                 Fcons (make_save_value (data, 0),
-                                       args)),
-                         0, indices);
+                                       args)));
        }
     }
   UNGCPRO;
@@ -881,10 +856,15 @@ store_in_keymap (keymap, idx, def)
   if (!CONSP (keymap) || !EQ (XCAR (keymap), Qkeymap))
     error ("attempt to define a key in a non-keymap");
 
-  /* If idx is a list (some sort of mouse click, perhaps?),
-     the index we want to use is the car of the list, which
-     ought to be a symbol.  */
-  idx = EVENT_HEAD (idx);
+  /* If idx is a cons, and the car part is a character, idx must be of
+     the form (FROM-CHAR . TO-CHAR).  */
+  if (CONSP (idx) && CHARACTERP (XCAR (idx)))
+    CHECK_CHARACTER_CDR (idx);
+  else
+    /* If idx is a list (some sort of mouse click, perhaps?),
+       the index we want to use is the car of the list, which
+       ought to be a symbol.  */
+    idx = EVENT_HEAD (idx);
 
   /* If idx is a symbol, it might have modifiers, which need to
      be put in the canonical order.  */
@@ -921,6 +901,19 @@ store_in_keymap (keymap, idx, def)
                ASET (elt, XFASTINT (idx), def);
                return def;
              }
+           else if (CONSP (idx) && CHARACTERP (XCAR (idx)))
+             {
+               int from = XFASTINT (XCAR (idx));
+               int to = XFASTINT (XCDR (idx));
+
+               if (to >= ASIZE (elt))
+                 to = ASIZE (elt) - 1;
+               for (; from <= to; from++)
+                 ASET (elt, from, def);
+               if (to == XFASTINT (XCDR (idx)))
+                 /* We have defined all keys in IDX.  */
+                 return def;
+             }
            insertion_point = tail;
          }
        else if (CHAR_TABLE_P (elt))
@@ -937,6 +930,11 @@ store_in_keymap (keymap, idx, def)
                       NILP (def) ? Qt : def);
                return def;
              }
+           else if (CONSP (idx) && CHARACTERP (XCAR (idx)))
+             {
+               Fset_char_table_range (elt, idx, NILP (def) ? Qt : def);
+               return def;
+             }
            insertion_point = tail;
          }
        else if (CONSP (elt))
@@ -947,6 +945,19 @@ store_in_keymap (keymap, idx, def)
                XSETCDR (elt, def);
                return def;
              }
+           else if (CONSP (idx) && CHARACTERP (XCAR (idx)))
+             {
+               int from = XFASTINT (XCAR (idx));
+               int to = XFASTINT (XCDR (idx));
+
+               if (from <= XFASTINT (XCAR (elt))
+                   && to >= XFASTINT (XCAR (elt)))
+                 {
+                   XSETCDR (elt, def);
+                   if (from == to)
+                     return def;
+                 }
+             }
          }
        else if (EQ (elt, Qkeymap))
          /* If we find a 'keymap' symbol in the spine of KEYMAP,
@@ -961,9 +972,22 @@ store_in_keymap (keymap, idx, def)
   keymap_end:
     /* We have scanned the entire keymap, and not found a binding for
        IDX.  Let's add one.  */
-    CHECK_IMPURE (insertion_point);
-    XSETCDR (insertion_point,
-            Fcons (Fcons (idx, def), XCDR (insertion_point)));
+    {
+      Lisp_Object elt;
+
+      if (CONSP (idx) && CHARACTERP (XCAR (idx)))
+       {
+         /* IDX specifies a range of characters, and not all of them
+            were handled yet, which means this keymap doesn't have a
+            char-table.  So, we insert a char-table now.  */
+         elt = Fmake_char_table (Qkeymap, Qnil);
+         Fset_char_table_range (elt, idx, NILP (def) ? Qt : def);
+       }
+      else
+       elt = Fcons (idx, def);
+      CHECK_IMPURE (insertion_point);
+      XSETCDR (insertion_point, Fcons (elt, XCDR (insertion_point)));
+    }
   }
 
   return def;
@@ -1049,7 +1073,7 @@ static void
 copy_keymap_1 (chartable, idx, elt)
      Lisp_Object chartable, idx, elt;
 {
-  Faset (chartable, idx, copy_keymap_item (elt));
+  Fset_char_table_range (chartable, idx, copy_keymap_item (elt));
 }
 
 DEFUN ("copy-keymap", Fcopy_keymap, Scopy_keymap, 1, 1, 0,
@@ -1072,9 +1096,8 @@ is not copied.  */)
       Lisp_Object elt = XCAR (keymap);
       if (CHAR_TABLE_P (elt))
        {
-         int indices[3];
          elt = Fcopy_sequence (elt);
-         map_char_table (copy_keymap_1, Qnil, elt, elt, elt, 0, indices);
+         map_char_table (copy_keymap_1, Qnil, elt, elt);
        }
       else if (VECTORP (elt))
        {
@@ -1171,8 +1194,15 @@ binding KEY to DEF is added at the front of KEYMAP.  */)
     {
       c = Faref (key, make_number (idx));
 
-      if (CONSP (c) && lucid_event_type_list_p (c))
-       c = Fevent_convert_list (c);
+      if (CONSP (c))
+       {
+         /* C may be a Lucid style event type list or a cons (FROM .
+            TO) specifying a range of characters.  */
+         if (lucid_event_type_list_p (c))
+           c = Fevent_convert_list (c);
+         else if (CHARACTERP (XCAR (c)))
+           CHECK_CHARACTER_CDR (c);
+       }
 
       if (SYMBOLP (c))
        silly_event_symbol_error (c);
@@ -1193,7 +1223,10 @@ binding KEY to DEF is added at the front of KEYMAP.  */)
          idx++;
        }
 
-      if (!INTEGERP (c) && !SYMBOLP (c) && !CONSP (c))
+      if (!INTEGERP (c) && !SYMBOLP (c)
+         && (!CONSP (c)
+             /* If C is a range, it must be a leaf.  */
+             || (INTEGERP (XCAR (c)) && idx != length)))
        error ("Key sequence contains invalid event");
 
       if (idx == length)
@@ -2314,15 +2347,13 @@ push_key_description (c, p, force_multibyte)
      int force_multibyte;
 {
   unsigned c2;
-  int valid_p;
 
   /* Clear all the meaningless bits above the meta bit.  */
   c &= meta_modifier | ~ - meta_modifier;
   c2 = c & ~(alt_modifier | ctrl_modifier | hyper_modifier
             | meta_modifier | shift_modifier | super_modifier);
 
-  valid_p = SINGLE_BYTE_CHAR_P (c2) || char_valid_p (c2, 0);
-  if (! valid_p)
+  if (! CHARACTERP (make_number (c2)))
     {
       /* KEY_DESCRIPTION_SIZE is large enough for this.  */
       p += sprintf (p, "[%d]", c);
@@ -2416,25 +2447,12 @@ push_key_description (c, p, force_multibyte)
     }
   else
     {
-      if (force_multibyte)
-       {
-         if (SINGLE_BYTE_CHAR_P (c))
-           c = unibyte_char_to_multibyte (c);
-         p += CHAR_STRING (c, p);
-       }
-      else if (NILP (current_buffer->enable_multibyte_characters))
-       {
-         int bit_offset;
-         *p++ = '\\';
-         /* The biggest character code uses 19 bits.  */
-         for (bit_offset = 18; bit_offset >= 0; bit_offset -= 3)
-           {
-             if (c >= (1 << bit_offset))
-               *p++ = ((c & (7 << bit_offset)) >> bit_offset) + '0';
-           }
-       }
+      /* Now we are sure that C is a valid character code.  */
+      if (NILP (current_buffer->enable_multibyte_characters)
+         && ! force_multibyte)
+       *p++ = multibyte_char_to_unibyte (c, Qnil);
       else
-       p += CHAR_STRING (c, p);
+       p += CHAR_STRING (c, (unsigned char *) p);
     }
 
   return p;
@@ -2458,56 +2476,10 @@ around function keys and event symbols.  */)
 
   if (INTEGERP (key))          /* Normal character */
     {
-      unsigned int charset, c1, c2;
-      int without_bits = XINT (key) & ~((-1) << CHARACTERBITS);
-
-      if (SINGLE_BYTE_CHAR_P (without_bits))
-       charset = 0;
-      else
-       SPLIT_CHAR (without_bits, charset, c1, c2);
-
-      if (! CHAR_VALID_P (without_bits, 1))
-       {
-         char buf[256];
+      char tem[KEY_DESCRIPTION_SIZE];
 
-         sprintf (buf, "Invalid char code %ld", (long) XINT (key));
-         return build_string (buf);
-       }
-      else if (charset
-              && ((c1 == 0 && c2 == -1) || c2 == 0))
-       {
-         /* Handle a generic character.  */
-         Lisp_Object name;
-         char buf[256];
-
-         name = CHARSET_TABLE_INFO (charset, CHARSET_SHORT_NAME_IDX);
-         CHECK_STRING (name);
-         if (c1 == 0)
-           /* Only a charset is specified.   */
-           sprintf (buf, "Generic char %d: all of ", without_bits);
-         else
-           /* 1st code-point of 2-dimensional charset is specified.   */
-           sprintf (buf, "Generic char %d: row %d of ", without_bits, c1);
-         return concat2 (build_string (buf), name);
-       }
-      else
-       {
-         char tem[KEY_DESCRIPTION_SIZE], *end;
-         int nbytes, nchars;
-         Lisp_Object string;
-
-         end = push_key_description (XUINT (key), tem, 1);
-         nbytes = end - tem;
-         nchars = multibyte_chars_in_text (tem, nbytes);
-         if (nchars == nbytes)
-           {
-             *end = '\0';
-             string = build_string (tem);
-           }
-         else
-           string = make_multibyte_string (tem, nchars, nbytes);
-         return string;
-       }
+      *push_key_description (XUINT (key), tem, 1) = 0;
+      return build_string (tem);
     }
   else if (SYMBOLP (key))      /* Function key or event-symbol */
     {
@@ -2573,7 +2545,7 @@ See Info node `(elisp)Describing Characters' for examples.  */)
   CHECK_NUMBER (character);
 
   c = XINT (character);
-  if (!SINGLE_BYTE_CHAR_P (c))
+  if (!ASCII_CHAR_P (c))
     {
       int len = CHAR_STRING (c, str);
 
@@ -2952,7 +2924,11 @@ where_is_internal_1 (key, binding, args, data)
       Faset (sequence, last, make_number (XINT (key) | meta_modifier));
     }
   else
-    sequence = append_key (this, key);
+    {
+      if (CONSP (key))
+       key = Fcons (XCAR (key), XCDR (key));
+      sequence = append_key (this, key);
+    }
 
   if (!NILP (where_is_cache))
     {
@@ -3608,9 +3584,10 @@ DESCRIBER is the output function used; nil means use `princ'.  */)
    If the definition in effect in the whole map does not match
    the one in this vector, we ignore this one.
 
-   When describing a sub-char-table, INDICES is a list of
-   indices at higher levels in this char-table,
-   and CHAR_TABLE_DEPTH says how many levels down we have gone.
+   ARGS is simply passed as the second argument to ELT_DESCRIBER.
+
+   INDICES and CHAR_TABLE_DEPTH are ignored.  They will be removed in
+   the near future.
 
    KEYMAP_P is 1 if vector is known to be a keymap, so map ESC to M-.
 
@@ -3635,24 +3612,18 @@ describe_vector (vector, prefix, args, elt_describer,
   Lisp_Object definition;
   Lisp_Object tem2;
   Lisp_Object elt_prefix = Qnil;
-  register int i;
+  int i;
   Lisp_Object suppress;
   Lisp_Object kludge;
   int first = 1;
   struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
   /* Range of elements to be handled.  */
   int from, to;
-  /* A flag to tell if a leaf in this level of char-table is not a
-     generic character (i.e. a complete multibyte character).  */
-  int complete_char;
-  int character;
+  Lisp_Object character;
   int starting_i;
 
   suppress = Qnil;
 
-  if (indices == 0)
-    indices = (int *) alloca (3 * sizeof (int));
-
   definition = Qnil;
 
   if (!keymap_p)
@@ -3676,61 +3647,24 @@ describe_vector (vector, prefix, args, elt_describer,
   if (partial)
     suppress = intern ("suppress-keymap");
 
-  if (CHAR_TABLE_P (vector))
-    {
-      if (char_table_depth == 0)
-       {
-         /* VECTOR is a top level char-table.  */
-         complete_char = 1;
-         from = 0;
-         to = CHAR_TABLE_ORDINARY_SLOTS;
-       }
-      else
-       {
-         /* VECTOR is a sub char-table.  */
-         if (char_table_depth >= 3)
-           /* A char-table is never that deep.  */
-           error ("Too deep char table");
-
-         complete_char
-           = (CHARSET_VALID_P (indices[0])
-              && ((CHARSET_DIMENSION (indices[0]) == 1
-                   && char_table_depth == 1)
-                  || char_table_depth == 2));
-
-         /* Meaningful elements are from 32th to 127th.  */
-         from = 32;
-         to = SUB_CHAR_TABLE_ORDINARY_SLOTS;
-       }
-    }
-  else
-    {
-      /* This does the right thing for ordinary vectors.  */
-
-      complete_char = 1;
-      from = 0;
-      to = XVECTOR (vector)->size;
-    }
+  from = 0;
+  to = CHAR_TABLE_P (vector) ? MAX_CHAR + 1 : XVECTOR (vector)->size;
 
   for (i = from; i < to; i++)
     {
       int this_shadowed = 0;
-      QUIT;
+      int range_beg, range_end;
+      Lisp_Object val;
 
-      if (CHAR_TABLE_P (vector))
-       {
-         if (char_table_depth == 0 && i >= CHAR_TABLE_SINGLE_BYTE_SLOTS)
-           complete_char = 0;
+      QUIT;
 
-         if (i >= CHAR_TABLE_SINGLE_BYTE_SLOTS
-             && !CHARSET_DEFINED_P (i - 128))
-           continue;
+      starting_i = i;
 
-         definition
-           = get_keyelt (XCHAR_TABLE (vector)->contents[i], 0);
-       }
+      if (CHAR_TABLE_P (vector))
+       val = char_table_ref_and_range (vector, i, &range_beg, &i);
       else
-       definition = get_keyelt (AREF (vector, i), 0);
+       val = AREF (vector, i);
+      definition = get_keyelt (val, 0);
 
       if (NILP (definition)) continue;
 
@@ -3744,31 +3678,11 @@ describe_vector (vector, prefix, args, elt_describer,
          if (!NILP (tem)) continue;
        }
 
-      /* Set CHARACTER to the character this entry describes, if any.
-        Also update *INDICES.  */
-      if (CHAR_TABLE_P (vector))
-       {
-         indices[char_table_depth] = i;
-
-         if (char_table_depth == 0)
-           {
-             character = i;
-             indices[0] = i - 128;
-           }
-         else if (complete_char)
-           {
-             character = MAKE_CHAR (indices[0], indices[1], indices[2]);
-           }
-         else
-           character = 0;
-       }
-      else
-       character = i;
-
-      ASET (kludge, 0, make_number (character));
+      character = make_number (starting_i);
+      ASET (kludge, 0, character);
 
       /* If this binding is shadowed by some other map, ignore it.  */
-      if (!NILP (shadow) && complete_char)
+      if (!NILP (shadow))
        {
          Lisp_Object tem;
 
@@ -3785,7 +3699,7 @@ describe_vector (vector, prefix, args, elt_describer,
 
       /* Ignore this definition if it is shadowed by an earlier
         one in the same keymap.  */
-      if (!NILP (entire_map) && complete_char)
+      if (!NILP (entire_map))
        {
          Lisp_Object tem;
 
@@ -3797,89 +3711,28 @@ describe_vector (vector, prefix, args, elt_describer,
 
       if (first)
        {
-         if (char_table_depth == 0)
-           insert ("\n", 1);
+         insert ("\n", 1);
          first = 0;
        }
 
-      /* For a sub char-table, show the depth by indentation.
-        CHAR_TABLE_DEPTH can be greater than 0 only for a char-table.  */
-      if (char_table_depth > 0)
-       insert ("    ", char_table_depth * 2); /* depth is 1 or 2.  */
-
       /* Output the prefix that applies to every entry in this map.  */
       if (!NILP (elt_prefix))
        insert1 (elt_prefix);
 
-      /* Insert or describe the character this slot is for,
-        or a description of what it is for.  */
-      if (SUB_CHAR_TABLE_P (vector))
-       {
-         if (complete_char)
-           insert_char (character);
-         else
-           {
-             /* We need an octal representation for this block of
-                 characters.  */
-             char work[16];
-             sprintf (work, "(row %d)", i);
-             insert (work, strlen (work));
-           }
-       }
-      else if (CHAR_TABLE_P (vector))
-       {
-         if (complete_char)
-           insert1 (Fkey_description (kludge, prefix));
-         else
-           {
-             /* Print the information for this character set.  */
-             insert_string ("<");
-             tem2 = CHARSET_TABLE_INFO (i - 128, CHARSET_SHORT_NAME_IDX);
-             if (STRINGP (tem2))
-               insert_from_string (tem2, 0, 0, SCHARS (tem2),
-                                   SBYTES (tem2), 0);
-             else
-               insert ("?", 1);
-             insert (">", 1);
-           }
-       }
-      else
-       {
-         insert1 (Fkey_description (kludge, prefix));
-       }
-
-      /* If we find a sub char-table within a char-table,
-        scan it recursively; it defines the details for
-        a character set or a portion of a character set.  */
-      if (CHAR_TABLE_P (vector) && SUB_CHAR_TABLE_P (definition))
-       {
-         insert ("\n", 1);
-         describe_vector (definition, prefix, args, elt_describer,
-                          partial, shadow, entire_map,
-                          indices, char_table_depth + 1, keymap_p,
-                          mention_shadow);
-         continue;
-       }
-
-      starting_i = i;
+      insert1 (Fkey_description (kludge, prefix));
 
       /* Find all consecutive characters or rows that have the same
          definition.  But, for elements of a top level char table, if
          they are for charsets, we had better describe one by one even
          if they have the same definition.  */
       if (CHAR_TABLE_P (vector))
-       {
-         int limit = to;
-
-         if (char_table_depth == 0)
-           limit = CHAR_TABLE_SINGLE_BYTE_SLOTS;
-
-         while (i + 1 < limit
-                && (tem2 = get_keyelt (XCHAR_TABLE (vector)->contents[i + 1], 0),
-                    !NILP (tem2))
-                && !NILP (Fequal (tem2, definition)))
-           i++;
-       }
+       while (i + 1 < to
+              && (val = char_table_ref_and_range (vector, i + 1,
+                                                  &range_beg, &range_end),
+                  tem2 = get_keyelt (val, 0),
+                  !NILP (tem2))
+              && !NILP (Fequal (tem2, definition)))
+         i = range_end;
       else
        while (i + 1 < to
               && (tem2 = get_keyelt (AREF (vector, i + 1), 0),
@@ -3887,7 +3740,6 @@ describe_vector (vector, prefix, args, elt_describer,
               && !NILP (Fequal (tem2, definition)))
          i++;
 
-
       /* If we have a range of more than one character,
         print where the range reaches to.  */
 
@@ -3900,31 +3752,7 @@ describe_vector (vector, prefix, args, elt_describer,
          if (!NILP (elt_prefix))
            insert1 (elt_prefix);
 
-         if (CHAR_TABLE_P (vector))
-           {
-             if (char_table_depth == 0)
-               {
-                 insert1 (Fkey_description (kludge, prefix));
-               }
-             else if (complete_char)
-               {
-                 indices[char_table_depth] = i;
-                 character = MAKE_CHAR (indices[0], indices[1], indices[2]);
-                 insert_char (character);
-               }
-             else
-               {
-                 /* We need an octal representation for this block of
-                    characters.  */
-                 char work[16];
-                 sprintf (work, "(row %d)", i);
-                 insert (work, strlen (work));
-               }
-           }
-         else
-           {
-             insert1 (Fkey_description (kludge, prefix));
-           }
+         insert1 (Fkey_description (kludge, prefix));
        }
 
       /* Print a description of the definition of this character.
@@ -3940,11 +3768,11 @@ describe_vector (vector, prefix, args, elt_describer,
        }
     }
 
-  /* For (sub) char-table, print `defalt' slot at last.  */
-  if (CHAR_TABLE_P (vector) && !NILP (XCHAR_TABLE (vector)->defalt))
+  if (CHAR_TABLE_P (vector) && ! NILP (XCHAR_TABLE (vector)->defalt))
     {
-      insert ("    ", char_table_depth * 2);
-      insert_string ("<<default>>");
+      if (!NILP (elt_prefix))
+       insert1 (elt_prefix);
+      insert ("default", 7);
       (*elt_describer) (XCHAR_TABLE (vector)->defalt, args);
     }
 
index ee51db1f425e4e76de97c1df7d788b8b7cf45329..fb53f68b07352b1a2088e5c35b81e2a483cc94ee 100644 (file)
@@ -348,8 +348,9 @@ enum pvec_type
   PVEC_BUFFER = 0x20000,
   PVEC_HASH_TABLE = 0x40000,
   PVEC_TERMINAL = 0x80000,
-  PVEC_OTHER = 0x100000,
-  PVEC_TYPE_MASK = 0x1ffe00
+  PVEC_SUB_CHAR_TABLE = 0x100000,
+  PVEC_OTHER = 0x200000,
+  PVEC_TYPE_MASK = 0x2ffe00
 
 #if 0 /* This is used to make the value of PSEUDOVECTOR_FLAG available to
         GDB.  It doesn't work on OS Alpha.  Moved to a variable in
@@ -475,17 +476,6 @@ extern Lisp_Object make_number P_ ((EMACS_INT));
 
 #define EQ(x, y) (XHASH (x) == XHASH (y))
 
-/* During garbage collection, XGCTYPE must be used for extracting types
- so that the mark bit is ignored.  XMARKBIT accesses the markbit.
- Markbits are used only in particular slots of particular structure types.
- Other markbits are always zero.
- Outside of garbage collection, all mark bits are always zero.  */
-
-#ifndef XGCTYPE
-/* The distinction does not exist now that the MARKBIT has been eliminated.  */
-#define XGCTYPE(a) XTYPE (a)
-#endif
-
 #ifndef XPNTR
 #ifdef HAVE_SHM
 /* In this representation, data is found in two widely separated segments.  */
@@ -527,11 +517,11 @@ extern size_t pure_size;
 
 /* Extract a value or address from a Lisp_Object.  */
 
-#define XCONS(a) (eassert (GC_CONSP(a)),(struct Lisp_Cons *) XPNTR(a))
-#define XVECTOR(a) (eassert (GC_VECTORLIKEP(a)),(struct Lisp_Vector *) XPNTR(a))
-#define XSTRING(a) (eassert (GC_STRINGP(a)),(struct Lisp_String *) XPNTR(a))
-#define XSYMBOL(a) (eassert (GC_SYMBOLP(a)),(struct Lisp_Symbol *) XPNTR(a))
-#define XFLOAT(a) (eassert (GC_FLOATP(a)),(struct Lisp_Float *) XPNTR(a))
+#define XCONS(a) (eassert (CONSP(a)),(struct Lisp_Cons *) XPNTR(a))
+#define XVECTOR(a) (eassert (VECTORLIKEP(a)),(struct Lisp_Vector *) XPNTR(a))
+#define XSTRING(a) (eassert (STRINGP(a)),(struct Lisp_String *) XPNTR(a))
+#define XSYMBOL(a) (eassert (SYMBOLP(a)),(struct Lisp_Symbol *) XPNTR(a))
+#define XFLOAT(a) (eassert (FLOATP(a)),(struct Lisp_Float *) XPNTR(a))
 
 /* Misc types.  */
 
@@ -553,13 +543,14 @@ extern size_t pure_size;
 
 /* Pseudovector types.  */
 
-#define XPROCESS(a) (eassert (GC_PROCESSP(a)),(struct Lisp_Process *) XPNTR(a))
-#define XWINDOW(a) (eassert (GC_WINDOWP(a)),(struct window *) XPNTR(a))
-#define XTERMINAL(a) (eassert (GC_TERMINALP(a)),(struct terminal *) XPNTR(a))
-#define XSUBR(a) (eassert (GC_SUBRP(a)),(struct Lisp_Subr *) XPNTR(a))
-#define XBUFFER(a) (eassert (GC_BUFFERP(a)),(struct buffer *) XPNTR(a))
-#define XCHAR_TABLE(a) (eassert (GC_CHAR_TABLE_P (a)), (struct Lisp_Char_Table *) XPNTR(a))
-#define XBOOL_VECTOR(a) (eassert (GC_BOOL_VECTOR_P (a)), (struct Lisp_Bool_Vector *) XPNTR(a))
+#define XPROCESS(a) (eassert (PROCESSP(a)),(struct Lisp_Process *) XPNTR(a))
+#define XWINDOW(a) (eassert (WINDOWP(a)),(struct window *) XPNTR(a))
+#define XTERMINAL(a) (eassert (TERMINALP(a)),(struct terminal *) XPNTR(a))
+#define XSUBR(a) (eassert (SUBRP(a)),(struct Lisp_Subr *) XPNTR(a))
+#define XBUFFER(a) (eassert (BUFFERP(a)),(struct buffer *) XPNTR(a))
+#define XCHAR_TABLE(a) (eassert (CHAR_TABLE_P (a)), (struct Lisp_Char_Table *) XPNTR(a))
+#define XSUB_CHAR_TABLE(a) (eassert (SUB_CHAR_TABLE_P (a)), (struct Lisp_Sub_Char_Table *) XPNTR(a))
+#define XBOOL_VECTOR(a) (eassert (BOOL_VECTOR_P (a)), (struct Lisp_Bool_Vector *) XPNTR(a))
 
 /* Construct a Lisp_Object from a value or address.  */
 
@@ -592,6 +583,7 @@ extern size_t pure_size;
 #define XSETBUFFER(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_BUFFER))
 #define XSETCHAR_TABLE(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_CHAR_TABLE))
 #define XSETBOOL_VECTOR(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_BOOL_VECTOR))
+#define XSETSUB_CHAR_TABLE(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_SUB_CHAR_TABLE))
 
 /* Convenience macros for dealing with Lisp arrays.  */
 
@@ -772,49 +764,20 @@ struct Lisp_Vector
   ((OFFSETOF(type, nonlispfield) - OFFSETOF(struct Lisp_Vector, contents[0])) \
    / sizeof (Lisp_Object))
 
-/* A char table is a kind of vectorlike, with contents are like a
+/* A char-table is a kind of vectorlike, with contents are like a
    vector but with a few other slots.  For some purposes, it makes
-   sense to handle a chartable with type struct Lisp_Vector.  An
+   sense to handle a char-table with type struct Lisp_Vector.  An
    element of a char table can be any Lisp objects, but if it is a sub
    char-table, we treat it a table that contains information of a
-   group of characters of the same charsets or a specific character of
-   a charset.  A sub char-table has the same structure as a char table
-   except for that the former omits several slots at the tail.  A sub
-   char table appears only in an element of a char table, and there's
-   no way to access it directly from Emacs Lisp program.  */
-
-/* This is the number of slots that apply to characters or character
-   sets.  The first 128 are for ASCII, the next 128 are for 8-bit
-   European characters, and the last 128 are for multibyte characters.
-   The first 256 are indexed by the code itself, but the last 128 are
-   indexed by (charset-id + 128).  */
-#define CHAR_TABLE_ORDINARY_SLOTS 384
-
-/* These are the slot of the default values for single byte
-   characters.  As 0x9A is never be a charset-id, it is safe to use
-   that slot for ASCII.  0x9E and 0x80 are charset-ids of
-   eight-bit-control and eight-bit-graphic respectively.  */
-#define CHAR_TABLE_DEFAULT_SLOT_ASCII (0x9A + 128)
-#define CHAR_TABLE_DEFAULT_SLOT_8_BIT_CONTROL (0x9E + 128)
-#define CHAR_TABLE_DEFAULT_SLOT_8_BIT_GRAPHIC (0x80 + 128)
-
-/* This is the number of slots that apply to characters of ASCII and
-   8-bit Europeans only.  */
-#define CHAR_TABLE_SINGLE_BYTE_SLOTS 256
+   specific range of characters.  A sub char-table has the same
+   structure as a vector.  A sub char table appears only in an element
+   of a char-table, and there's no way to access it directly from
+   Emacs Lisp program.  */
 
 /* This is the number of slots that every char table must have.  This
    counts the ordinary slots and the top, defalt, parent, and purpose
    slots.  */
-#define CHAR_TABLE_STANDARD_SLOTS (CHAR_TABLE_ORDINARY_SLOTS + 4)
-
-/* This is the number of slots that apply to position-code-1 and
-   position-code-2 of a multibyte character at the 2nd and 3rd level
-   sub char tables respectively.  */
-#define SUB_CHAR_TABLE_ORDINARY_SLOTS 128
-
-/* This is the number of slots that every sub char table must have.
-   This counts the ordinary slots and the top and defalt slot.  */
-#define SUB_CHAR_TABLE_STANDARD_SLOTS (SUB_CHAR_TABLE_ORDINARY_SLOTS + 2)
+#define CHAR_TABLE_STANDARD_SLOTS (VECSIZE (struct Lisp_Char_Table) - 1)
 
 /* Return the number of "extra" slots in the char table CT.  */
 
@@ -822,70 +785,92 @@ struct Lisp_Vector
   (((CT)->size & PSEUDOVECTOR_SIZE_MASK) - CHAR_TABLE_STANDARD_SLOTS)
 
 /* Almost equivalent to Faref (CT, IDX) with optimization for ASCII
-   and 8-bit Europeans characters.  For these characters, do not check
-   validity of CT.  Do not follow parent.  */
-#define CHAR_TABLE_REF(CT, IDX)                                \
-  ((IDX) >= 0 && (IDX) < CHAR_TABLE_SINGLE_BYTE_SLOTS  \
-   ? (!NILP (XCHAR_TABLE (CT)->contents[IDX])          \
-      ? XCHAR_TABLE (CT)->contents[IDX]                        \
-      : XCHAR_TABLE (CT)->defalt)                      \
-   : Faref (CT, make_number (IDX)))
+   characters.  Do not check validity of CT.  */
+#define CHAR_TABLE_REF(CT, IDX)                                                 \
+  ((ASCII_CHAR_P (IDX)                                                  \
+    && SUB_CHAR_TABLE_P (XCHAR_TABLE (CT)->ascii)                       \
+    && !NILP (XSUB_CHAR_TABLE (XCHAR_TABLE (CT)->ascii)->contents[IDX])) \
+   ? XSUB_CHAR_TABLE (XCHAR_TABLE (CT)->ascii)->contents[IDX]           \
+   : char_table_ref ((CT), (IDX)))
 
-/* Almost equivalent to Faref (CT, IDX) with optimization for ASCII
-   and 8-bit Europeans characters.  However, if the result is nil,
-   return IDX.
+/* Almost equivalent to Faref (CT, IDX).  However, if the result is
+   not a character, return IDX.
 
    For these characters, do not check validity of CT
    and do not follow parent.  */
-#define CHAR_TABLE_TRANSLATE(CT, IDX)                  \
-  ((IDX) < CHAR_TABLE_SINGLE_BYTE_SLOTS                        \
-   ? (!NILP (XCHAR_TABLE (CT)->contents[IDX])          \
-      ? XINT (XCHAR_TABLE (CT)->contents[IDX])         \
-      : IDX)                                           \
-   : char_table_translate (CT, IDX))
+#define CHAR_TABLE_TRANSLATE(CT, IDX)  \
+  char_table_translate (CT, IDX)
 
 /* Equivalent to Faset (CT, IDX, VAL) with optimization for ASCII and
-   8-bit Europeans characters.  Do not check validity of CT.  */
-#define CHAR_TABLE_SET(CT, IDX, VAL)                   \
-  do {                                                 \
-    if (XFASTINT (IDX) < CHAR_TABLE_SINGLE_BYTE_SLOTS) \
-      XCHAR_TABLE (CT)->contents[XFASTINT (IDX)] = VAL;        \
-    else                                               \
-      Faset (CT, IDX, VAL);                            \
-  } while (0)
+   8-bit European characters.  Do not check validity of CT.  */
+#define CHAR_TABLE_SET(CT, IDX, VAL)                                   \
+  (((IDX) >= 0 && ASCII_CHAR_P (IDX)                                   \
+    && SUB_CHAR_TABLE_P (XCHAR_TABLE (CT)->ascii))                     \
+   ? XSUB_CHAR_TABLE (XCHAR_TABLE (CT)->ascii)->contents[IDX] = VAL    \
+   : char_table_set (CT, IDX, VAL))
+
+#define CHARTAB_SIZE_BITS_0 6
+#define CHARTAB_SIZE_BITS_1 4
+#define CHARTAB_SIZE_BITS_2 5
+#define CHARTAB_SIZE_BITS_3 7
+
+extern const int chartab_size[4];
+
+struct Lisp_Sub_Char_Table;
 
 struct Lisp_Char_Table
   {
     /* This is the vector's size field, which also holds the
        pseudovector type information.  It holds the size, too.
-       The size counts the top, defalt, purpose, and parent slots.
-       The last three are not counted if this is a sub char table.  */
+       The size counts the defalt, parent, purpose, ascii,
+       contents, and extras slots.  */
     EMACS_UINT size;
     struct Lisp_Vector *next;
-    /* This holds a flag to tell if this is a top level char table (t)
-       or a sub char table (nil).  */
-    Lisp_Object top;
+
     /* This holds a default value,
        which is used whenever the value for a specific character is nil.  */
     Lisp_Object defalt;
-    /* This holds an actual value of each element.  A sub char table
-       has only SUB_CHAR_TABLE_ORDINARY_SLOTS number of elements.  */
-    Lisp_Object contents[CHAR_TABLE_ORDINARY_SLOTS];
 
-    /* A sub char table doesn't has the following slots.  */
-
-    /* This points to another char table, which we inherit from
-       when the value for a specific character is nil.
-       The `defalt' slot takes precedence over this.  */
+    /* This points to another char table, which we inherit from when the
+       value for a specific character is nil.  The `defalt' slot takes
+       precedence over this.  */
     Lisp_Object parent;
-    /* This should be a symbol which says what kind of use
-       this char-table is meant for.
-       Typically now the values can be `syntax-table' and `display-table'.  */
+
+    /* This is a symbol which says what kind of use this char-table is
+       meant for.  */
     Lisp_Object purpose;
-    /* These hold additional data.  */
+
+    /* The bottom sub char-table for characters of the range 0..127.  It
+       is nil if none of ASCII character has a specific value.  */
+    Lisp_Object ascii;
+
+    Lisp_Object contents[(1 << CHARTAB_SIZE_BITS_0)];
+
+    /* These hold additional data.  It is a vector.  */
     Lisp_Object extras[1];
   };
 
+struct Lisp_Sub_Char_Table
+  {
+    /* This is the vector's size field, which also holds the
+       pseudovector type information.  It holds the size, too.  */
+    EMACS_INT size;
+    struct Lisp_Vector *next;
+
+    /* Depth of this sub char-table.  It should be 1, 2, or 3.  A sub
+       char-table of depth 1 contains 16 elments, and each element
+       covers 4096 (128*32) characters.  A sub char-table of depth 2
+       contains 32 elements, and each element covers 128 characters.  A
+       sub char-table of depth 3 contains 128 elements, and each element
+       is for one character.  */
+    Lisp_Object depth;
+
+    /* Minimum character covered by the sub char-table.  */
+    Lisp_Object min_char;
+
+    Lisp_Object contents[1];
+  };
+
 /* A boolvector is a kind of vectorlike, with contents are like a string.  */
 struct Lisp_Bool_Vector
   {
@@ -1094,7 +1079,6 @@ struct Lisp_Hash_Table
      (XSETPSEUDOVECTOR (VAR, PTR, PVEC_HASH_TABLE))
 
 #define HASH_TABLE_P(OBJ)  PSEUDOVECTORP (OBJ, PVEC_HASH_TABLE)
-#define GC_HASH_TABLE_P(x) GC_PSEUDOVECTORP (x, PVEC_HASH_TABLE)
 
 #define CHECK_HASH_TABLE(x) \
   CHECK_TYPE (HASH_TABLE_P (x), Qhash_table_p, x)
@@ -1416,9 +1400,9 @@ typedef unsigned char UCHAR;
   (CHAR_ALT | CHAR_SUPER | CHAR_HYPER  | CHAR_SHIFT | CHAR_CTL | CHAR_META)
 
 
-/* Actually, the current Emacs uses 19 bits for the character value
+/* Actually, the current Emacs uses 22 bits for the character value
    itself.  */
-#define CHARACTERBITS 19
+#define CHARACTERBITS 22
 
 /* The maximum byte size consumed by push_key_description.
    All callers should assure that at least this size of memory is
@@ -1446,9 +1430,9 @@ typedef unsigned char UCHAR;
 #define GLYPH int
 
 /* Mask bits for face.  */
-#define GLYPH_MASK_FACE    0x7FF80000
+#define GLYPH_MASK_FACE    0x7FC00000
  /* Mask bits for character code.  */
-#define GLYPH_MASK_CHAR    0x0007FFFF /* The lowest 19 bits */
+#define GLYPH_MASK_CHAR    0x003FFFFF /* The lowest 22 bits */
 
 /* The FAST macros assume that we already know we're in an X window.  */
 
@@ -1475,46 +1459,28 @@ typedef unsigned char UCHAR;
 /* Data type checking */
 
 #define NILP(x)  EQ (x, Qnil)
-#define GC_NILP(x) GC_EQ (x, Qnil)
 
 #define NUMBERP(x) (INTEGERP (x) || FLOATP (x))
-#define GC_NUMBERP(x) (GC_INTEGERP (x) || GC_FLOATP (x))
 #define NATNUMP(x) (INTEGERP (x) && XINT (x) >= 0)
-#define GC_NATNUMP(x) (GC_INTEGERP (x) && XINT (x) >= 0)
 
 #define INTEGERP(x) (XTYPE ((x)) == Lisp_Int)
-#define GC_INTEGERP(x) INTEGERP (x)
 #define SYMBOLP(x) (XTYPE ((x)) == Lisp_Symbol)
-#define GC_SYMBOLP(x) (XGCTYPE ((x)) == Lisp_Symbol)
 #define MISCP(x) (XTYPE ((x)) == Lisp_Misc)
-#define GC_MISCP(x) (XGCTYPE ((x)) == Lisp_Misc)
 #define VECTORLIKEP(x) (XTYPE ((x)) == Lisp_Vectorlike)
-#define GC_VECTORLIKEP(x) (XGCTYPE ((x)) == Lisp_Vectorlike)
 #define STRINGP(x) (XTYPE ((x)) == Lisp_String)
-#define GC_STRINGP(x) (XGCTYPE ((x)) == Lisp_String)
 #define CONSP(x) (XTYPE ((x)) == Lisp_Cons)
-#define GC_CONSP(x) (XGCTYPE ((x)) == Lisp_Cons)
 
 #define FLOATP(x) (XTYPE ((x)) == Lisp_Float)
-#define GC_FLOATP(x) (XGCTYPE ((x)) == Lisp_Float)
-#define VECTORP(x) (VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG))
-#define GC_VECTORP(x) (GC_VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG))
+#define VECTORP(x)    (VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG))
 #define OVERLAYP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay)
-#define GC_OVERLAYP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay)
 #define MARKERP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Marker)
-#define GC_MARKERP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Marker)
 #define INTFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Intfwd)
-#define GC_INTFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Intfwd)
 #define BOOLFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Boolfwd)
-#define GC_BOOLFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Boolfwd)
 #define OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Objfwd)
-#define GC_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Objfwd)
 #define BUFFER_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd)
-#define GC_BUFFER_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd)
 #define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value)
-#define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value)
+#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value)
 #define KBOARD_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd)
-#define GC_KBOARD_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd)
 #define SAVE_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Save_Value)
 
 
@@ -1524,36 +1490,18 @@ typedef unsigned char UCHAR;
    && (((XVECTOR (x)->size & (PSEUDOVECTOR_FLAG | (code))))    \
        == (PSEUDOVECTOR_FLAG | (code))))
 
-/* True if object X is a pseudovector whose code is CODE.
-   This one works during GC.  */
-#define GC_PSEUDOVECTORP(x, code)                              \
-  (GC_VECTORLIKEP (x)                                          \
-   && (((XVECTOR (x)->size & (PSEUDOVECTOR_FLAG | (code))))    \
-       == (PSEUDOVECTOR_FLAG | (code))))
-
 /* Test for specific pseudovector types.  */
 #define WINDOW_CONFIGURATIONP(x) PSEUDOVECTORP (x, PVEC_WINDOW_CONFIGURATION)
-#define GC_WINDOW_CONFIGURATIONP(x) GC_PSEUDOVECTORP (x, PVEC_WINDOW_CONFIGURATION)
 #define PROCESSP(x) PSEUDOVECTORP (x, PVEC_PROCESS)
-#define GC_PROCESSP(x) GC_PSEUDOVECTORP (x, PVEC_PROCESS)
 #define WINDOWP(x) PSEUDOVECTORP (x, PVEC_WINDOW)
-#define GC_WINDOWP(x) GC_PSEUDOVECTORP (x, PVEC_WINDOW)
 #define TERMINALP(x) PSEUDOVECTORP (x, PVEC_TERMINAL)
-#define GC_TERMINALP(x) GC_PSEUDOVECTORP (x, PVEC_TERMINAL)
 #define SUBRP(x) PSEUDOVECTORP (x, PVEC_SUBR)
-#define GC_SUBRP(x) GC_PSEUDOVECTORP (x, PVEC_SUBR)
 #define COMPILEDP(x) PSEUDOVECTORP (x, PVEC_COMPILED)
-#define GC_COMPILEDP(x) GC_PSEUDOVECTORP (x, PVEC_COMPILED)
 #define BUFFERP(x) PSEUDOVECTORP (x, PVEC_BUFFER)
-#define GC_BUFFERP(x) GC_PSEUDOVECTORP (x, PVEC_BUFFER)
 #define CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_CHAR_TABLE)
-#define GC_CHAR_TABLE_P(x) GC_PSEUDOVECTORP (x, PVEC_CHAR_TABLE)
+#define SUB_CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_SUB_CHAR_TABLE)
 #define BOOL_VECTOR_P(x) PSEUDOVECTORP (x, PVEC_BOOL_VECTOR)
-#define GC_BOOL_VECTOR_P(x) GC_PSEUDOVECTORP (x, PVEC_BOOL_VECTOR)
 #define FRAMEP(x) PSEUDOVECTORP (x, PVEC_FRAME)
-#define GC_FRAMEP(x) GC_PSEUDOVECTORP (x, PVEC_FRAME)
-
-#define SUB_CHAR_TABLE_P(x) (CHAR_TABLE_P (x) && NILP (XCHAR_TABLE (x)->top))
 
 /* Test for image (image . spec)  */
 #define IMAGEP(x) (CONSP (x) && EQ (XCAR (x), Qimage))
@@ -1563,8 +1511,6 @@ typedef unsigned char UCHAR;
 #define ARRAYP(x) \
   (VECTORP (x) || STRINGP (x) || CHAR_TABLE_P (x) || BOOL_VECTOR_P (x))
 \f
-#define GC_EQ(x, y) EQ (x, y)
-
 #define CHECK_LIST(x) \
   CHECK_TYPE (CONSP (x) || NILP (x), Qlistp, x)
 
@@ -1670,6 +1616,20 @@ typedef unsigned char UCHAR;
     XSETCDR ((x), tmp);                        \
   } while (0)
 
+#define CHECK_NATNUM_CAR(x) \
+  do {                                 \
+    Lisp_Object tmp = XCAR (x);                \
+    CHECK_NATNUM (tmp);                        \
+    XSETCAR ((x), tmp);                        \
+  } while (0)
+
+#define CHECK_NATNUM_CDR(x) \
+  do {                                 \
+    Lisp_Object tmp = XCDR (x);                \
+    CHECK_NATNUM (tmp);                        \
+    XSETCDR ((x), tmp);                        \
+  } while (0)
+
 /* Cast pointers to this type to compare them.  Some machines want int.  */
 #ifndef PNTR_COMPARISON_TYPE
 #define PNTR_COMPARISON_TYPE EMACS_UINT
@@ -2304,34 +2264,44 @@ extern void keys_of_cmds P_ ((void));
 
 /* Defined in coding.c */
 EXFUN (Fcoding_system_p, 1);
+EXFUN (Fcoding_system_base, 1);
+EXFUN (Fcoding_system_eol_type, 1);
+EXFUN (Fcheck_coding_system, 1);
 EXFUN (Fcheck_coding_system, 1);
 EXFUN (Fread_coding_system, 2);
 EXFUN (Fread_non_nil_coding_system, 1);
 EXFUN (Ffind_operation_coding_system, MANY);
 EXFUN (Fupdate_coding_systems_internal, 0);
-EXFUN (Fencode_coding_string, 3);
-EXFUN (Fdecode_coding_string, 3);
-extern Lisp_Object detect_coding_system P_ ((const unsigned char *, int, int,
-                                            int));
+EXFUN (Fencode_coding_string, 4);
+EXFUN (Fdecode_coding_string, 4);
+extern Lisp_Object detect_coding_system P_ ((const unsigned char *, int,
+                                            int, int, int, Lisp_Object));
 extern void init_coding P_ ((void));
 extern void init_coding_once P_ ((void));
 extern void syms_of_coding P_ ((void));
-extern Lisp_Object code_convert_string_norecord P_ ((Lisp_Object, Lisp_Object,
-                                                    int));
+
+/* Defined in character.c */
+extern void init_character_once P_ ((void));
+extern void syms_of_character P_ ((void));
+EXFUN (Funibyte_char_to_multibyte, 1);
 
 /* Defined in charset.c */
-extern EMACS_INT nonascii_insert_offset;
-extern Lisp_Object Vnonascii_translation_table;
 EXFUN (Fchar_bytes, 1);
 EXFUN (Fchar_width, 1);
 EXFUN (Fstring, MANY);
 extern int chars_in_text P_ ((const unsigned char *, int));
 extern int multibyte_chars_in_text P_ ((const unsigned char *, int));
-extern int unibyte_char_to_multibyte P_ ((int));
 extern int multibyte_char_to_unibyte P_ ((int, Lisp_Object));
+extern int multibyte_char_to_unibyte_safe P_ ((int));
 extern Lisp_Object Qcharset;
+extern void init_charset P_ ((void));
 extern void init_charset_once P_ ((void));
 extern void syms_of_charset P_ ((void));
+/* Structure forward declarations.  */
+struct charset;
+
+/* Defined in composite.c */
+extern void syms_of_composite P_ ((void));
 
 /* Defined in syntax.c */
 EXFUN (Fforward_word, 1);
@@ -2349,9 +2319,8 @@ extern int next_almost_prime P_ ((int));
 extern Lisp_Object larger_vector P_ ((Lisp_Object, int, Lisp_Object));
 extern void sweep_weak_hash_tables P_ ((void));
 extern Lisp_Object Qstring_lessp;
-EXFUN (Foptimize_char_table, 1);
 extern Lisp_Object Vfeatures;
-extern Lisp_Object QCtest, QCweakness, Qequal;
+extern Lisp_Object QCtest, QCweakness, Qequal, Qeq;
 unsigned sxhash P_ ((Lisp_Object, int));
 Lisp_Object make_hash_table P_ ((Lisp_Object, Lisp_Object, Lisp_Object,
                                 Lisp_Object, Lisp_Object, Lisp_Object,
@@ -2366,6 +2335,7 @@ void remove_hash_entry P_ ((struct Lisp_Hash_Table *, int));
 extern void init_fns P_ ((void));
 EXFUN (Fsxhash, 1);
 EXFUN (Fmake_hash_table, MANY);
+EXFUN (Fmakehash, 1);
 EXFUN (Fcopy_hash_table, 1);
 EXFUN (Fhash_table_count, 1);
 EXFUN (Fhash_table_rehash_size, 1);
@@ -2424,6 +2394,7 @@ extern Lisp_Object concat2 P_ ((Lisp_Object, Lisp_Object));
 extern Lisp_Object concat3 P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
 extern Lisp_Object nconc2 P_ ((Lisp_Object, Lisp_Object));
 extern Lisp_Object assq_no_quit P_ ((Lisp_Object, Lisp_Object));
+extern Lisp_Object assoc_no_quit P_ ((Lisp_Object, Lisp_Object));
 extern void clear_string_char_byte_cache P_ ((void));
 extern int string_char_to_byte P_ ((Lisp_Object, int));
 extern int string_byte_to_char P_ ((Lisp_Object, int));
@@ -2434,18 +2405,10 @@ EXFUN (Fcopy_alist, 1);
 EXFUN (Fplist_get, 2);
 EXFUN (Fplist_put, 3);
 EXFUN (Fplist_member, 2);
-EXFUN (Fset_char_table_parent, 2);
-EXFUN (Fchar_table_extra_slot, 2);
-EXFUN (Fset_char_table_extra_slot, 3);
 EXFUN (Frassoc, 2);
 EXFUN (Fstring_equal, 2);
 EXFUN (Fcompare_strings, 7);
 EXFUN (Fstring_lessp, 2);
-extern int char_table_translate P_ ((Lisp_Object, int));
-extern void map_char_table P_ ((void (*) (Lisp_Object, Lisp_Object, Lisp_Object),
-                               Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, int,
-                               int *));
-extern Lisp_Object char_table_ref_and_index P_ ((Lisp_Object, int, int *));
 extern void syms_of_fns P_ ((void));
 
 /* Defined in floatfns.c */
@@ -2478,6 +2441,7 @@ extern void insert P_ ((const unsigned char *, int));
 extern void insert_and_inherit P_ ((const unsigned char *, int));
 extern void insert_1 P_ ((const unsigned char *, int, int, int, int));
 extern void insert_1_both P_ ((const unsigned char *, int, int, int, int, int));
+extern void insert_from_gap P_ ((int, int));
 extern void insert_from_string P_ ((Lisp_Object, int, int, int, int, int));
 extern void insert_from_buffer P_ ((struct buffer *, int, int, int));
 extern void insert_char P_ ((int));
@@ -2604,8 +2568,6 @@ extern Lisp_Object make_pure_vector P_ ((EMACS_INT));
 EXFUN (Fgarbage_collect, 0);
 EXFUN (Fmake_byte_code, MANY);
 EXFUN (Fmake_bool_vector, 2);
-EXFUN (Fmake_char_table, 2);
-extern Lisp_Object make_sub_char_table P_ ((Lisp_Object));
 extern Lisp_Object Qchar_table_extra_slots;
 extern struct Lisp_Vector *allocate_vector P_ ((EMACS_INT));
 extern struct Lisp_Vector *allocate_pseudovector P_ ((int memlen, int lisplen, EMACS_INT tag));
@@ -2633,6 +2595,31 @@ extern void syms_of_alloc P_ ((void));
 extern struct buffer * allocate_buffer P_ ((void));
 extern int valid_lisp_object_p P_ ((Lisp_Object));
 
+/* Defined in chartab.c */
+EXFUN (Fmake_char_table, 2);
+EXFUN (Fchar_table_parent, 1);
+EXFUN (Fset_char_table_parent, 2);
+EXFUN (Fchar_table_extra_slot, 2);
+EXFUN (Fset_char_table_extra_slot, 3);
+EXFUN (Fchar_table_range, 2);
+EXFUN (Fset_char_table_range, 3);
+EXFUN (Fset_char_table_default, 3);
+EXFUN (Foptimize_char_table, 1);
+EXFUN (Fmap_char_table, 2);
+extern Lisp_Object copy_char_table P_ ((Lisp_Object));
+extern Lisp_Object sub_char_table_ref P_ ((Lisp_Object, int));
+extern Lisp_Object char_table_ref P_ ((Lisp_Object, int));
+extern Lisp_Object char_table_ref_and_range P_ ((Lisp_Object, int,
+                                                int *, int *));
+extern Lisp_Object char_table_set P_ ((Lisp_Object, int, Lisp_Object));
+extern Lisp_Object char_table_set_range P_ ((Lisp_Object, int, int,
+                                            Lisp_Object));
+extern int char_table_translate P_ ((Lisp_Object, int));
+extern void map_char_table P_ ((void (*) (Lisp_Object, Lisp_Object,
+                                         Lisp_Object),
+                               Lisp_Object, Lisp_Object, Lisp_Object));
+extern void syms_of_chartab P_ ((void));
+
 /* Defined in print.c */
 extern Lisp_Object Vprin1_to_string_buffer;
 extern void debug_print P_ ((Lisp_Object));
@@ -2846,6 +2833,7 @@ extern int overlay_touches_p P_ ((int));
 extern Lisp_Object Vbuffer_alist, Vinhibit_read_only;
 EXFUN (Fget_buffer, 1);
 EXFUN (Fget_buffer_create, 1);
+EXFUN (Fgenerate_new_buffer_name, 2);
 EXFUN (Fset_buffer, 1);
 EXFUN (set_buffer_if_live, 1);
 EXFUN (Fbarf_if_buffer_read_only, 0);
@@ -3189,6 +3177,7 @@ extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
 EXFUN (Fnext_single_property_change, 4);
 EXFUN (Fnext_single_char_property_change, 4);
 EXFUN (Fprevious_single_property_change, 4);
+EXFUN (Fget_text_property, 3);
 EXFUN (Fput_text_property, 5);
 EXFUN (Fget_text_property, 3);
 EXFUN (Fprevious_char_property_change, 2);
@@ -3250,6 +3239,7 @@ extern void init_sound P_ ((void));
 
 /* Defined in category.c */
 extern void init_category_once P_ ((void));
+extern Lisp_Object char_category_set P_ ((int));
 extern void syms_of_category P_ ((void));
 
 /* Defined in ccl.c */
@@ -3269,7 +3259,8 @@ extern void syms_of_terminal P_ ((void));
 #ifdef HAVE_WINDOW_SYSTEM
 /* Defined in fontset.c */
 extern void syms_of_fontset P_ ((void));
-EXFUN (Fset_fontset_font, 4);
+EXFUN (Fset_fontset_font, 5);
+EXFUN (Fnew_fontset, 2);
 
 /* Defined in xfns.c, w32fns.c, or macfns.c */
 EXFUN (Fxw_display_color_p, 1);
index ee020fd43d3cf4913ddc98d89f9713ff11c3c758..6674f8406863ad289b2eb137419780fd6d2b7b45 100644 (file)
@@ -31,7 +31,9 @@ Boston, MA 02110-1301, USA.  */
 #include "lisp.h"
 #include "intervals.h"
 #include "buffer.h"
+#include "character.h"
 #include "charset.h"
+#include "coding.h"
 #include <epaths.h>
 #include "commands.h"
 #include "keyboard.h"
@@ -92,6 +94,12 @@ Lisp_Object Qinhibit_file_name_operation;
 Lisp_Object Qeval_buffer_list, Veval_buffer_list;
 Lisp_Object Qfile_truename, Qdo_after_load_evaluation; /* ACM 2006/5/16 */
 
+/* Used instead of Qget_file_char while loading *.elc files compiled
+   by Emacs 21 or older.  */
+static Lisp_Object Qget_emacs_mule_file_char;
+
+static Lisp_Object Qload_force_doc_strings;
+
 extern Lisp_Object Qevent_symbol_element_mask;
 extern Lisp_Object Qfile_exists_p;
 
@@ -135,6 +143,11 @@ static int load_force_doc_strings;
 /* Nonzero means read should convert strings to unibyte.  */
 static int load_convert_to_unibyte;
 
+/* Nonzero means READCHAR should read bytes one by one (not character)
+   when READCHARFUN is Qget_file_char or Qget_emacs_mule_file_char.
+   This is set to 1 by read1 temporarily while handling #@NUMBER.  */
+static int load_each_byte;
+
 /* Function to use for loading an Emacs Lisp source file (not
    compiled) instead of readevalloop.  */
 Lisp_Object Vload_source_file_function;
@@ -163,9 +176,6 @@ static int read_from_string_index;
 static int read_from_string_index_byte;
 static int read_from_string_limit;
 
-/* Number of bytes left to read in the buffer character
-   that `readchar' has already advanced over.  */
-static int readchar_backlog;
 /* Number of characters read in the current call to Fread or
    Fread_from_string. */
 static int readchar_count;
@@ -210,7 +220,9 @@ int load_dangerous_libraries;
 
 static Lisp_Object Vbytecomp_version_regexp;
 
-static void to_multibyte P_ ((char **, char **, int *));
+static int read_emacs_mule_char P_ ((int, int (*) (int, Lisp_Object),
+                                    Lisp_Object));
+
 static void readevalloop P_ ((Lisp_Object, FILE*, Lisp_Object,
                              Lisp_Object (*) (), int,
                              Lisp_Object, Lisp_Object,
@@ -222,29 +234,48 @@ static void invalid_syntax P_ ((const char *, int)) NO_RETURN;
 static void end_of_file_error P_ (()) NO_RETURN;
 
 \f
+/* Functions that read one byte from the current source READCHARFUN
+   or unreads one byte.  If the integer argument C is -1, it returns
+   one read byte, or -1 when there's no more byte in the source.  If C
+   is 0 or positive, it unreads C, and the return value is not
+   interesting.  */
+
+static int readbyte_for_lambda P_ ((int, Lisp_Object));
+static int readbyte_from_file P_ ((int, Lisp_Object));
+static int readbyte_from_string P_ ((int, Lisp_Object));
+
 /* Handle unreading and rereading of characters.
    Write READCHAR to read a character,
    UNREAD(c) to unread c to be read again.
 
-   The READCHAR and UNREAD macros are meant for reading/unreading a
-   byte code; they do not handle multibyte characters.  The caller
-   should manage them if necessary.
+   These macros correctly read/unread multibyte characters.  */
 
-   [ Actually that seems to be a lie; READCHAR will definitely read
-     multibyte characters from buffer sources, at least.  Is the
-     comment just out of date?
-     -- Colin Walters <walters@gnu.org>, 22 May 2002 16:36:50 -0400 ]
- */
-
-#define READCHAR readchar (readcharfun)
+#define READCHAR readchar (readcharfun, NULL)
 #define UNREAD(c) unreadchar (readcharfun, c)
 
+/* Same as READCHAR but set *MULTIBYTE to the multibyteness of the source.  */
+#define READCHAR_REPORT_MULTIBYTE(multibyte) readchar (readcharfun, multibyte)
+
+/* When READCHARFUN is Qget_file_char, Qget_emacs_mule_file_char,
+   Qlambda, or a cons, we use this to keep an unread character because
+   a file stream can't handle multibyte-char unreading.  The value -1
+   means that there's no unread character. */
+static int unread_char;
+
 static int
-readchar (readcharfun)
+readchar (readcharfun, multibyte)
      Lisp_Object readcharfun;
+     int *multibyte;
 {
   Lisp_Object tem;
   register int c;
+  int (*readbyte) P_ ((int, Lisp_Object));
+  unsigned char buf[MAX_MULTIBYTE_LENGTH];
+  int i, len;
+  int emacs_mule_encoding = 0;
+
+  if (multibyte)
+    *multibyte = 0;
 
   readchar_count++;
 
@@ -253,31 +284,24 @@ readchar (readcharfun)
       register struct buffer *inbuffer = XBUFFER (readcharfun);
 
       int pt_byte = BUF_PT_BYTE (inbuffer);
-      int orig_pt_byte = pt_byte;
-
-      if (readchar_backlog > 0)
-       /* We get the address of the byte just passed,
-          which is the last byte of the character.
-          The other bytes in this character are consecutive with it,
-          because the gap can't be in the middle of a character.  */
-       return *(BUF_BYTE_ADDRESS (inbuffer, BUF_PT_BYTE (inbuffer) - 1)
-                - --readchar_backlog);
 
       if (pt_byte >= BUF_ZV_BYTE (inbuffer))
        return -1;
 
-      readchar_backlog = -1;
-
       if (! NILP (inbuffer->enable_multibyte_characters))
        {
          /* Fetch the character code from the buffer.  */
          unsigned char *p = BUF_BYTE_ADDRESS (inbuffer, pt_byte);
          BUF_INC_POS (inbuffer, pt_byte);
          c = STRING_CHAR (p, pt_byte - orig_pt_byte);
+         if (multibyte)
+           *multibyte = 1;
        }
       else
        {
          c = BUF_FETCH_BYTE (inbuffer, pt_byte);
+         if (! ASCII_BYTE_P (c))
+           c = BYTE8_TO_CHAR (c);
          pt_byte++;
        }
       SET_BUF_PT_BOTH (inbuffer, BUF_PT (inbuffer) + 1, pt_byte);
@@ -289,31 +313,24 @@ readchar (readcharfun)
       register struct buffer *inbuffer = XMARKER (readcharfun)->buffer;
 
       int bytepos = marker_byte_position (readcharfun);
-      int orig_bytepos = bytepos;
-
-      if (readchar_backlog > 0)
-       /* We get the address of the byte just passed,
-          which is the last byte of the character.
-          The other bytes in this character are consecutive with it,
-          because the gap can't be in the middle of a character.  */
-       return *(BUF_BYTE_ADDRESS (inbuffer, XMARKER (readcharfun)->bytepos - 1)
-                - --readchar_backlog);
 
       if (bytepos >= BUF_ZV_BYTE (inbuffer))
        return -1;
 
-      readchar_backlog = -1;
-
       if (! NILP (inbuffer->enable_multibyte_characters))
        {
          /* Fetch the character code from the buffer.  */
          unsigned char *p = BUF_BYTE_ADDRESS (inbuffer, bytepos);
          BUF_INC_POS (inbuffer, bytepos);
          c = STRING_CHAR (p, bytepos - orig_bytepos);
+         if (multibyte)
+           *multibyte = 1;
        }
       else
        {
          c = BUF_FETCH_BYTE (inbuffer, bytepos);
+         if (! ASCII_BYTE_P (c))
+           c = BYTE8_TO_CHAR (c);
          bytepos++;
        }
 
@@ -324,44 +341,95 @@ readchar (readcharfun)
     }
 
   if (EQ (readcharfun, Qlambda))
-    return read_bytecode_char (0);
+    {
+      readbyte = readbyte_for_lambda;
+      goto read_multibyte;
+    }
 
   if (EQ (readcharfun, Qget_file_char))
     {
-      BLOCK_INPUT;
-      c = getc (instream);
-#ifdef EINTR
-      /* Interrupted reads have been observed while reading over the network */
-      while (c == EOF && ferror (instream) && errno == EINTR)
-       {
-         UNBLOCK_INPUT;
-         QUIT;
-         BLOCK_INPUT;
-         clearerr (instream);
-         c = getc (instream);
-       }
-#endif
-      UNBLOCK_INPUT;
-      return c;
+      readbyte = readbyte_from_file;
+      goto read_multibyte;
     }
 
   if (STRINGP (readcharfun))
     {
       if (read_from_string_index >= read_from_string_limit)
        c = -1;
+      else if (STRING_MULTIBYTE (readcharfun))
+       {
+         if (multibyte)
+           *multibyte = 1;
+         FETCH_STRING_CHAR_ADVANCE_NO_CHECK (c, readcharfun,
+                                             read_from_string_index,
+                                             read_from_string_index_byte);
+       }
       else
-       FETCH_STRING_CHAR_ADVANCE (c, readcharfun,
-                                  read_from_string_index,
-                                  read_from_string_index_byte);
-
+       {
+         c = SREF (readcharfun, read_from_string_index_byte);
+         read_from_string_index++;
+         read_from_string_index_byte++;
+       }
       return c;
     }
 
+  if (CONSP (readcharfun))
+    {
+      /* This is the case that read_vector is reading from a unibyte
+        string that contains a byte sequence previously skipped
+        because of #@NUMBER.  The car part of readcharfun is that
+        string, and the cdr part is a value of readcharfun given to
+        read_vector.  */
+      readbyte = readbyte_from_string;
+      if (EQ (XCDR (readcharfun), Qget_emacs_mule_file_char))
+       emacs_mule_encoding = 1;
+      goto read_multibyte;
+    }
+
+  if (EQ (readcharfun, Qget_emacs_mule_file_char))
+    {
+      readbyte = readbyte_from_file;
+      emacs_mule_encoding = 1;
+      goto read_multibyte;
+    }
+
   tem = call0 (readcharfun);
 
   if (NILP (tem))
     return -1;
   return XINT (tem);
+
+ read_multibyte:
+  if (unread_char >= 0)
+    {
+      c = unread_char;
+      unread_char = -1;
+      return c;
+    }
+  c = (*readbyte) (-1, readcharfun);
+  if (c < 0 || load_each_byte)
+    return c;
+  if (multibyte)
+    *multibyte = 1;
+  if (ASCII_BYTE_P (c))
+    return c;
+  if (emacs_mule_encoding)
+    return read_emacs_mule_char (c, readbyte, readcharfun);
+  i = 0;
+  buf[i++] = c;
+  len = BYTES_BY_CHAR_HEAD (c);
+  while (i < len)
+    {
+      c = (*readbyte) (-1, readcharfun);
+      if (c < 0 || ! TRAILING_CODE_P (c))
+       {
+         while (--i > 1)
+           (*readbyte) (buf[i], readcharfun);
+         return BYTE8_TO_CHAR (buf[0]);
+       }
+      buf[i++] = c;
+    }
+  return STRING_CHAR (buf, i);
 }
 
 /* Unread the character C in the way appropriate for the stream READCHARFUN.
@@ -382,36 +450,26 @@ unreadchar (readcharfun, c)
       struct buffer *b = XBUFFER (readcharfun);
       int bytepos = BUF_PT_BYTE (b);
 
-      if (readchar_backlog >= 0)
-       readchar_backlog++;
+      BUF_PT (b)--;
+      if (! NILP (b->enable_multibyte_characters))
+       BUF_DEC_POS (b, bytepos);
       else
-       {
-         BUF_PT (b)--;
-         if (! NILP (b->enable_multibyte_characters))
-           BUF_DEC_POS (b, bytepos);
-         else
-           bytepos--;
+       bytepos--;
 
-         BUF_PT_BYTE (b) = bytepos;
-       }
+      BUF_PT_BYTE (b) = bytepos;
     }
   else if (MARKERP (readcharfun))
     {
       struct buffer *b = XMARKER (readcharfun)->buffer;
       int bytepos = XMARKER (readcharfun)->bytepos;
 
-      if (readchar_backlog >= 0)
-       readchar_backlog++;
+      XMARKER (readcharfun)->charpos--;
+      if (! NILP (b->enable_multibyte_characters))
+       BUF_DEC_POS (b, bytepos);
       else
-       {
-         XMARKER (readcharfun)->charpos--;
-         if (! NILP (b->enable_multibyte_characters))
-           BUF_DEC_POS (b, bytepos);
-         else
-           bytepos--;
+       bytepos--;
 
-         XMARKER (readcharfun)->bytepos = bytepos;
-       }
+      XMARKER (readcharfun)->bytepos = bytepos;
     }
   else if (STRINGP (readcharfun))
     {
@@ -419,18 +477,165 @@ unreadchar (readcharfun, c)
       read_from_string_index_byte
        = string_char_to_byte (readcharfun, read_from_string_index);
     }
+  else if (CONSP (readcharfun))
+    {
+      unread_char = c;
+    }
   else if (EQ (readcharfun, Qlambda))
-    read_bytecode_char (1);
-  else if (EQ (readcharfun, Qget_file_char))
+    {
+      unread_char = c;
+    }
+  else if (EQ (readcharfun, Qget_file_char)
+          || EQ (readcharfun, Qget_emacs_mule_file_char))
+    {
+      if (load_each_byte)
+       {
+         BLOCK_INPUT;
+         ungetc (c, instream);
+         UNBLOCK_INPUT;
+       }
+      else
+       unread_char = c;
+    }
+  else
+    call1 (readcharfun, make_number (c));
+}
+
+static int
+readbyte_for_lambda (c, readcharfun)
+     int c;
+     Lisp_Object readcharfun;
+{
+  return read_bytecode_char (c >= 0);
+}
+
+
+static int
+readbyte_from_file (c, readcharfun)
+     int c;
+     Lisp_Object readcharfun;
+{
+  if (c >= 0)
     {
       BLOCK_INPUT;
       ungetc (c, instream);
       UNBLOCK_INPUT;
+      return 0;
+    }
+
+  BLOCK_INPUT;
+  c = getc (instream);
+
+#ifdef EINTR
+  /* Interrupted reads have been observed while reading over the network */
+  while (c == EOF && ferror (instream) && errno == EINTR)
+    {
+      UNBLOCK_INPUT;
+      QUIT;
+      BLOCK_INPUT;
+      clearerr (instream);
+      c = getc (instream);
+    }
+#endif
+
+  UNBLOCK_INPUT;
+
+  return (c == EOF ? -1 : c);
+}
+
+static int
+readbyte_from_string (c, readcharfun)
+     int c;
+     Lisp_Object readcharfun;
+{
+  Lisp_Object string = XCAR (readcharfun);
+
+  if (c >= 0)
+    {
+      read_from_string_index--;
+      read_from_string_index_byte
+       = string_char_to_byte (string, read_from_string_index);
     }
+
+  if (read_from_string_index >= read_from_string_limit)
+    c = -1;
   else
-    call1 (readcharfun, make_number (c));
+    FETCH_STRING_CHAR_ADVANCE (c, string,
+                              read_from_string_index,
+                              read_from_string_index_byte);
+  return c;
+}
+
+
+/* Read one non-ASCII character from INSTREAM.  The character is
+   encoded in `emacs-mule' and the first byte is already read in
+   C.  */
+
+extern char emacs_mule_bytes[256];
+
+static int
+read_emacs_mule_char (c, readbyte, readcharfun)
+     int c;
+     int (*readbyte) P_ ((int, Lisp_Object));
+     Lisp_Object readcharfun;
+{
+  /* Emacs-mule coding uses at most 4-byte for one character.  */
+  unsigned char buf[4];
+  int len = emacs_mule_bytes[c];
+  struct charset *charset;
+  int i;
+  unsigned code;
+
+  if (len == 1)
+    /* C is not a valid leading-code of `emacs-mule'.  */
+    return BYTE8_TO_CHAR (c);
+
+  i = 0;
+  buf[i++] = c;
+  while (i < len)
+    {
+      c = (*readbyte) (-1, readcharfun);
+      if (c < 0xA0)
+       {
+         while (--i > 1)
+           (*readbyte) (buf[i], readcharfun);
+         return BYTE8_TO_CHAR (buf[0]);
+       }
+      buf[i++] = c;
+    }
+
+  if (len == 2)
+    {
+      charset = emacs_mule_charset[buf[0]];
+      code = buf[1] & 0x7F;
+    }
+  else if (len == 3)
+    {
+      if (buf[0] == EMACS_MULE_LEADING_CODE_PRIVATE_11
+         || buf[0] == EMACS_MULE_LEADING_CODE_PRIVATE_12)
+       {
+         charset = emacs_mule_charset[buf[1]];
+         code = buf[2] & 0x7F;
+       }
+      else
+       {
+         charset = emacs_mule_charset[buf[0]];
+         code = ((buf[1] << 8) | buf[2]) & 0x7F7F;
+       }
+    }
+  else
+    {
+      charset = emacs_mule_charset[buf[1]];
+      code = ((buf[2] << 8) | buf[3]) & 0x7F7F;
+    }
+  c = DECODE_CHAR (charset, code);
+  if (c < 0)
+    Fsignal (Qinvalid_read_syntax,
+            Fcons (build_string ("invalid multibyte form"), Qnil));
+  return c;
 }
 
+
 static Lisp_Object read_internal_start P_ ((Lisp_Object, Lisp_Object,
                                            Lisp_Object));
 static Lisp_Object read0 P_ ((Lisp_Object));
@@ -438,7 +643,6 @@ static Lisp_Object read1 P_ ((Lisp_Object, int *, int));
 
 static Lisp_Object read_list P_ ((int, Lisp_Object));
 static Lisp_Object read_vector P_ ((Lisp_Object, int));
-static int read_multibyte P_ ((int, Lisp_Object));
 
 static Lisp_Object substitute_object_recurse P_ ((Lisp_Object, Lisp_Object,
                                                  Lisp_Object));
@@ -645,11 +849,11 @@ DEFUN ("get-file-char", Fget_file_char, Sget_file_char, 0, 0, 0,
 
 
 \f
-/* Value is non-zero if the file associated with file descriptor FD
-   is a compiled Lisp file that's safe to load.  Only files compiled
-   with Emacs are safe to load.  Files compiled with XEmacs can lead
-   to a crash in Fbyte_code because of an incompatible change in the
-   byte compiler.  */
+/* Value is a version number of byte compiled code if the file
+   associated with file descriptor FD is a compiled Lisp file that's
+   safe to load.  Only files compiled with Emacs are safe to load.
+   Files compiled with XEmacs can lead to a crash in Fbyte_code
+   because of an incompatible change in the byte compiler.  */
 
 static int
 safe_to_load_p (fd)
@@ -658,6 +862,7 @@ safe_to_load_p (fd)
   char buf[512];
   int nbytes, i;
   int safe_p = 1;
+  int version = 1;
 
   /* Read the first few bytes from the file, and look for a line
      specifying the byte compiler version used.  */
@@ -667,15 +872,18 @@ safe_to_load_p (fd)
       buf[nbytes] = '\0';
 
       /* Skip to the next newline, skipping over the initial `ELC'
-        with NUL bytes following it.  */
+        with NUL bytes following it, but note the version.  */
       for (i = 0; i < nbytes && buf[i] != '\n'; ++i)
-       ;
+       if (i == 4)
+         version = buf[i];
 
-      if (i < nbytes
-         && fast_c_string_match_ignore_case (Vbytecomp_version_regexp,
+      if (i == nbytes
+         || fast_c_string_match_ignore_case (Vbytecomp_version_regexp,
                                              buf + i) < 0)
        safe_p = 0;
     }
+  if (safe_p)
+    safe_p = version;
 
   lseek (fd, 0, SEEK_SET);
   return safe_p;
@@ -789,6 +997,8 @@ Return t if the file exists and loads successfully.  */)
   int safe_p = 1;
   char *fmode = "r";
   Lisp_Object tmp[2];
+  int version;
+
 #ifdef DOS_NT
   fmode = "rt";
 #endif /* DOS_NT */
@@ -912,12 +1122,15 @@ Return t if the file exists and loads successfully.  */)
                                    tmp))
                     : found) ;
 
+  version = -1;
+
   /* Check for the presence of old-style quotes and warn about them.  */
   specbind (Qold_style_backquotes, Qnil);
   record_unwind_protect (load_warn_old_style_backquotes, file);
 
   if (!bcmp (SDATA (found) + SBYTES (found) - 4,
-            ".elc", 4))
+            ".elc", 4)
+      || (version = safe_to_load_p (fd)) > 0)
     /* Load .elc files directly, but not when they are
        remote and have no handler!  */
     {
@@ -928,7 +1141,8 @@ Return t if the file exists and loads successfully.  */)
 
          GCPRO3 (file, found, hist_file_name);
 
-         if (!safe_to_load_p (fd))
+         if (version < 0
+             && ! (version = safe_to_load_p (fd)))
            {
              safe_p = 0;
              if (!load_dangerous_libraries)
@@ -1026,8 +1240,17 @@ Return t if the file exists and loads successfully.  */)
   load_descriptor_list
     = Fcons (make_number (fileno (stream)), load_descriptor_list);
   load_in_progress++;
-  readevalloop (Qget_file_char, stream, hist_file_name,
-               Feval, 0, Qnil, Qnil, Qnil, Qnil);
+  if (! version || version >= 22)
+    readevalloop (Qget_file_char, stream, hist_file_name,
+                 Feval, 0, Qnil, Qnil, Qnil, Qnil);
+  else
+    {
+      /* We can't handle a file which was compiled with
+        byte-compile-dynamic by older version of Emacs.  */
+      specbind (Qload_force_doc_strings, Qt);
+      readevalloop (Qget_emacs_mule_file_char, stream, hist_file_name, Feval,
+                   0, Qnil, Qnil, Qnil, Qnil);
+    }
   unbind_to (count, Qnil);
 
   /* Run any eval-after-load forms for this file */
@@ -1456,8 +1679,6 @@ readevalloop (readcharfun, stream, sourcename, evalfun,
   record_unwind_protect (readevalloop_1, load_convert_to_unibyte ? Qt : Qnil);
   load_convert_to_unibyte = !NILP (unibyte);
 
-  readchar_backlog = -1;
-
   GCPRO4 (sourcename, readfun, start, end);
 
   /* Try to ensure sourcename is a truename, except whilst preloading. */
@@ -1714,7 +1935,6 @@ read_internal_start (stream, start, end)
 {
   Lisp_Object retval;
 
-  readchar_backlog = -1;
   readchar_count = 0;
   new_backquote_flag = 0;
   read_objects = Qnil;
@@ -1722,17 +1942,25 @@ read_internal_start (stream, start, end)
       || EQ (Vread_with_symbol_positions, stream))
     Vread_symbol_positions_list = Qnil;
 
-  if (STRINGP (stream))
+  if (STRINGP (stream)
+      || ((CONSP (stream) && STRINGP (XCAR (stream)))))
     {
       int startval, endval;
+      Lisp_Object string;
+
+      if (STRINGP (stream))
+       string = stream;
+      else
+       string = XCAR (stream);
+
       if (NILP (end))
-       endval = SCHARS (stream);
+       endval = SCHARS (string);
       else
        {
          CHECK_NUMBER (end);
          endval = XINT (end);
-         if (endval < 0 || endval > SCHARS (stream))
-           args_out_of_range (stream, end);
+         if (endval < 0 || endval > SCHARS (string))
+           args_out_of_range (string, end);
        }
 
       if (NILP (start))
@@ -1742,10 +1970,10 @@ read_internal_start (stream, start, end)
          CHECK_NUMBER (start);
          startval = XINT (start);
          if (startval < 0 || startval > endval)
-           args_out_of_range (stream, start);
+           args_out_of_range (string, start);
        }
       read_from_string_index = startval;
-      read_from_string_index_byte = string_char_to_byte (stream, startval);
+      read_from_string_index_byte = string_char_to_byte (string, startval);
       read_from_string_limit = endval;
     }
 
@@ -1792,59 +2020,19 @@ read0 (readcharfun)
 static int read_buffer_size;
 static char *read_buffer;
 
-/* Read multibyte form and return it as a character.  C is a first
-   byte of multibyte form, and rest of them are read from
-   READCHARFUN.  */
-
-static int
-read_multibyte (c, readcharfun)
-     register int c;
-     Lisp_Object readcharfun;
-{
-  /* We need the actual character code of this multibyte
-     characters.  */
-  unsigned char str[MAX_MULTIBYTE_LENGTH];
-  int len = 0;
-  int bytes;
-
-  if (c < 0)
-    return c;
-
-  str[len++] = c;
-  while ((c = READCHAR) >= 0xA0
-        && len < MAX_MULTIBYTE_LENGTH)
-    {
-      str[len++] = c;
-      readchar_count--;
-    }
-  UNREAD (c);
-  if (UNIBYTE_STR_AS_MULTIBYTE_P (str, len, bytes))
-    return STRING_CHAR (str, len);
-  /* The byte sequence is not valid as multibyte.  Unread all bytes
-     but the first one, and return the first byte.  */
-  while (--len > 0)
-    UNREAD (str[len]);
-  return str[0];
-}
-
 /* Read a \-escape sequence, assuming we already read the `\'.
-   If the escape sequence forces unibyte, store 1 into *BYTEREP.
-   If the escape sequence forces multibyte, store 2 into *BYTEREP.
-   Otherwise store 0 into *BYTEREP.  */
+   If the escape sequence forces unibyte, return eight-bit char.  */
 
 static int
-read_escape (readcharfun, stringp, byterep)
+read_escape (readcharfun, stringp)
      Lisp_Object readcharfun;
      int stringp;
-     int *byterep;
 {
   register int c = READCHAR;
   /* \u allows up to four hex digits, \U up to eight. Default to the
      behaviour for \u, and change this value in the case that \U is seen. */
   int unicode_hex_count = 4;
 
-  *byterep = 0;
-
   switch (c)
     {
     case -1:
@@ -1881,7 +2069,7 @@ read_escape (readcharfun, stringp, byterep)
        error ("Invalid escape character syntax");
       c = READCHAR;
       if (c == '\\')
-       c = read_escape (readcharfun, 0, byterep);
+       c = read_escape (readcharfun, 0);
       return c | meta_modifier;
 
     case 'S':
@@ -1890,7 +2078,7 @@ read_escape (readcharfun, stringp, byterep)
        error ("Invalid escape character syntax");
       c = READCHAR;
       if (c == '\\')
-       c = read_escape (readcharfun, 0, byterep);
+       c = read_escape (readcharfun, 0);
       return c | shift_modifier;
 
     case 'H':
@@ -1899,7 +2087,7 @@ read_escape (readcharfun, stringp, byterep)
        error ("Invalid escape character syntax");
       c = READCHAR;
       if (c == '\\')
-       c = read_escape (readcharfun, 0, byterep);
+       c = read_escape (readcharfun, 0);
       return c | hyper_modifier;
 
     case 'A':
@@ -1908,7 +2096,7 @@ read_escape (readcharfun, stringp, byterep)
        error ("Invalid escape character syntax");
       c = READCHAR;
       if (c == '\\')
-       c = read_escape (readcharfun, 0, byterep);
+       c = read_escape (readcharfun, 0);
       return c | alt_modifier;
 
     case 's':
@@ -1920,7 +2108,7 @@ read_escape (readcharfun, stringp, byterep)
        }
       c = READCHAR;
       if (c == '\\')
-       c = read_escape (readcharfun, 0, byterep);
+       c = read_escape (readcharfun, 0);
       return c | super_modifier;
 
     case 'C':
@@ -1930,7 +2118,7 @@ read_escape (readcharfun, stringp, byterep)
     case '^':
       c = READCHAR;
       if (c == '\\')
-       c = read_escape (readcharfun, 0, byterep);
+       c = read_escape (readcharfun, 0);
       if ((c & ~CHAR_MODIFIER_MASK) == '?')
        return 0177 | (c & CHAR_MODIFIER_MASK);
       else if (! SINGLE_BYTE_CHAR_P ((c & ~CHAR_MODIFIER_MASK)))
@@ -1970,7 +2158,8 @@ read_escape (readcharfun, stringp, byterep)
              }
          }
 
-       *byterep = 1;
+       if (i >= 0x80 && i < 0x100)
+         i = BYTE8_TO_CHAR (i);
        return i;
       }
 
@@ -1978,6 +2167,7 @@ read_escape (readcharfun, stringp, byterep)
       /* A hex escape, as in ANSI C.  */
       {
        int i = 0;
+       int count = 0;
        while (1)
          {
            c = READCHAR;
@@ -2000,9 +2190,11 @@ read_escape (readcharfun, stringp, byterep)
                UNREAD (c);
                break;
              }
+           count++;
          }
 
-       *byterep = 2;
+       if (count < 3 && i >= 0x80)
+         return BYTE8_TO_CHAR (i);
        return i;
       }
 
@@ -2016,8 +2208,6 @@ read_escape (readcharfun, stringp, byterep)
       {
        int i = 0;
        int count = 0;
-       Lisp_Object lisp_char;
-       struct gcpro gcpro1;
 
        while (++count <= unicode_hex_count)
          {
@@ -2034,22 +2224,10 @@ read_escape (readcharfun, stringp, byterep)
              }
          }
 
-       GCPRO1 (readcharfun);
-       lisp_char = call2 (intern ("decode-char"), intern ("ucs"),
-                         make_number (i));
-       UNGCPRO;
-
-       if (NILP (lisp_char))
-         {
-           error ("Unsupported Unicode code point: U+%x", (unsigned)i);
-         }
-
-       return XFASTINT (lisp_char);
+       return i;
       }
 
     default:
-      if (BASE_LEADING_CODE_P (c))
-       c = read_multibyte (c, readcharfun);
       return c;
     }
 }
@@ -2120,43 +2298,6 @@ read_integer (readcharfun, radix)
 }
 
 
-/* Convert unibyte text in read_buffer to multibyte.
-
-   Initially, *P is a pointer after the end of the unibyte text, and
-   the pointer *END points after the end of read_buffer.
-
-   If read_buffer doesn't have enough room to hold the result
-   of the conversion, reallocate it and adjust *P and *END.
-
-   At the end, make *P point after the result of the conversion, and
-   return in *NCHARS the number of characters in the converted
-   text.  */
-
-static void
-to_multibyte (p, end, nchars)
-     char **p, **end;
-     int *nchars;
-{
-  int nbytes;
-
-  parse_str_as_multibyte (read_buffer, *p - read_buffer, &nbytes, nchars);
-  if (read_buffer_size < 2 * nbytes)
-    {
-      int offset = *p - read_buffer;
-      read_buffer_size = 2 * max (read_buffer_size, nbytes);
-      read_buffer = (char *) xrealloc (read_buffer, read_buffer_size);
-      *p = read_buffer + offset;
-      *end = read_buffer + read_buffer_size;
-    }
-
-  if (nbytes != *nchars)
-    nbytes = str_as_multibyte (read_buffer, read_buffer_size,
-                              *p - read_buffer, nchars);
-
-  *p = read_buffer + nbytes;
-}
-
-
 /* If the next token is ')' or ']' or '.', we store that character
    in *PCH and the return value is not interesting.  Else, we store
    zero in *PCH and we read and return one lisp object.
@@ -2171,12 +2312,14 @@ read1 (readcharfun, pch, first_in_list)
 {
   register int c;
   int uninterned_symbol = 0;
+  int multibyte;
 
   *pch = 0;
+  load_each_byte = 0;
 
  retry:
 
-  c = READCHAR;
+  c = READCHAR_REPORT_MULTIBYTE (&multibyte);
   if (c < 0)
     end_of_file_error ();
 
@@ -2204,11 +2347,9 @@ read1 (readcharfun, pch, first_in_list)
            {
              Lisp_Object tmp;
              tmp = read_vector (readcharfun, 0);
-             if (XVECTOR (tmp)->size < CHAR_TABLE_STANDARD_SLOTS
-                 || XVECTOR (tmp)->size > CHAR_TABLE_STANDARD_SLOTS + 10)
+             if (XVECTOR (tmp)->size < CHAR_TABLE_STANDARD_SLOTS)
                error ("Invalid size char-table");
              XSETPVECTYPE (XVECTOR (tmp), PVEC_CHAR_TABLE);
-             XCHAR_TABLE (tmp)->top = Qt;
              return tmp;
            }
          else if (c == '^')
@@ -2217,11 +2358,18 @@ read1 (readcharfun, pch, first_in_list)
              if (c == '[')
                {
                  Lisp_Object tmp;
+                 int depth, size;
+
                  tmp = read_vector (readcharfun, 0);
-                 if (XVECTOR (tmp)->size != SUB_CHAR_TABLE_STANDARD_SLOTS)
+                 if (!INTEGERP (AREF (tmp, 0)))
+                   error ("Invalid depth in char-table");
+                 depth = XINT (AREF (tmp, 0));
+                 if (depth < 1 || depth > 3)
+                   error ("Invalid depth in char-table");
+                 size = XVECTOR (tmp)->size - 2;
+                 if (chartab_size [depth] != size)
                    error ("Invalid size char-table");
-                 XSETPVECTYPE (XVECTOR (tmp), PVEC_CHAR_TABLE);
-                 XCHAR_TABLE (tmp)->top = Qnil;
+                 XSETPVECTYPE (XVECTOR (tmp), PVEC_SUB_CHAR_TABLE);
                  return tmp;
                }
              invalid_syntax ("#^^", 3);
@@ -2242,12 +2390,14 @@ read1 (readcharfun, pch, first_in_list)
 
              UNREAD (c);
              tmp = read1 (readcharfun, pch, first_in_list);
-             if (size_in_chars != SCHARS (tmp)
-                 /* We used to print 1 char too many
-                    when the number of bits was a multiple of 8.
-                    Accept such input in case it came from an old version.  */
-                 && ! (XFASTINT (length)
-                       == (SCHARS (tmp) - 1) * BOOL_VECTOR_BITS_PER_CHAR))
+             if (STRING_MULTIBYTE (tmp)
+                 || (size_in_chars != SCHARS (tmp)
+                     /* We used to print 1 char too many
+                        when the number of bits was a multiple of 8.
+                        Accept such input in case it came from an old
+                        version.  */
+                     && ! (XFASTINT (length)
+                           == (SCHARS (tmp) - 1) * BOOL_VECTOR_BITS_PER_CHAR)))
                invalid_syntax ("#&...", 5);
 
              val = Fmake_bool_vector (length, Qnil);
@@ -2309,6 +2459,7 @@ read1 (readcharfun, pch, first_in_list)
        {
          int i, nskip = 0;
 
+         load_each_byte = 1;
          /* Read a decimal integer.  */
          while ((c = READCHAR) >= 0
                 && c >= '0' && c <= '9')
@@ -2319,7 +2470,9 @@ read1 (readcharfun, pch, first_in_list)
          if (c >= 0)
            UNREAD (c);
 
-         if (load_force_doc_strings && EQ (readcharfun, Qget_file_char))
+         if (load_force_doc_strings
+             && (EQ (readcharfun, Qget_file_char)
+                 || EQ (readcharfun, Qget_emacs_mule_file_char)))
            {
              /* If we are supposed to force doc strings into core right now,
                 record the last string that we skipped,
@@ -2371,6 +2524,7 @@ read1 (readcharfun, pch, first_in_list)
                c = READCHAR;
            }
 
+         load_each_byte = 0;
          goto retry;
        }
       if (c == '!')
@@ -2506,7 +2660,7 @@ read1 (readcharfun, pch, first_in_list)
 
     case '?':
       {
-       int discard;
+       int modifiers;
        int next_char;
        int ok;
 
@@ -2522,9 +2676,12 @@ read1 (readcharfun, pch, first_in_list)
          return make_number (c);
 
        if (c == '\\')
-         c = read_escape (readcharfun, 0, &discard);
-       else if (BASE_LEADING_CODE_P (c))
-         c = read_multibyte (c, readcharfun);
+         c = read_escape (readcharfun, 0);
+       modifiers = c & CHAR_MODIFIER_MASK;
+       c &= ~CHAR_MODIFIER_MASK;
+       if (CHAR_BYTE8_P (c))
+         c = CHAR_TO_BYTE8 (c);
+       c |= modifiers;
 
        next_char = READCHAR;
        if (next_char == '.')
@@ -2559,14 +2716,12 @@ read1 (readcharfun, pch, first_in_list)
        char *p = read_buffer;
        char *end = read_buffer + read_buffer_size;
        register int c;
-       /* 1 if we saw an escape sequence specifying
-          a multibyte character, or a multibyte character.  */
+       /* Nonzero if we saw an escape sequence specifying
+          a multibyte character.  */
        int force_multibyte = 0;
-       /* 1 if we saw an escape sequence specifying
+       /* Nonzero if we saw an escape sequence specifying
           a single-byte character.  */
        int force_singlebyte = 0;
-       /* 1 if read_buffer contains multibyte text now.  */
-       int is_multibyte = 0;
        int cancel = 0;
        int nchars = 0;
 
@@ -2584,9 +2739,9 @@ read1 (readcharfun, pch, first_in_list)
 
            if (c == '\\')
              {
-               int byterep;
+               int modifiers;
 
-               c = read_escape (readcharfun, 1, &byterep);
+               c = read_escape (readcharfun, 1);
 
                /* C is -1 if \ newline has just been seen */
                if (c == -1)
@@ -2596,50 +2751,55 @@ read1 (readcharfun, pch, first_in_list)
                    continue;
                  }
 
-               if (byterep == 1)
+               modifiers = c & CHAR_MODIFIER_MASK;
+               c = c & ~CHAR_MODIFIER_MASK;
+
+               if (CHAR_BYTE8_P (c))
                  force_singlebyte = 1;
-               else if (byterep == 2)
+               else if (! ASCII_CHAR_P (c))
                  force_multibyte = 1;
-             }
-
-           /* A character that must be multibyte forces multibyte.  */
-           if (! SINGLE_BYTE_CHAR_P (c & ~CHAR_MODIFIER_MASK))
-             force_multibyte = 1;
+               else            /* i.e. ASCII_CHAR_P (c) */
+                 {
+                   /* Allow `\C- ' and `\C-?'.  */
+                   if (modifiers == CHAR_CTL)
+                     {
+                       if (c == ' ')
+                         c = 0, modifiers = 0;
+                       else if (c == '?')
+                         c = 127, modifiers = 0;
+                     }
+                   if (modifiers & CHAR_SHIFT)
+                     {
+                       /* Shift modifier is valid only with [A-Za-z].  */
+                       if (c >= 'A' && c <= 'Z')
+                         modifiers &= ~CHAR_SHIFT;
+                       else if (c >= 'a' && c <= 'z')
+                         c -= ('a' - 'A'), modifiers &= ~CHAR_SHIFT;
+                     }
+
+                   if (modifiers & CHAR_META)
+                     {
+                       /* Move the meta bit to the right place for a
+                          string.  */
+                       modifiers &= ~CHAR_META;
+                       c = BYTE8_TO_CHAR (c | 0x80);
+                       force_singlebyte = 1;
+                     }
+                 }
 
-           /* If we just discovered the need to be multibyte,
-              convert the text accumulated thus far.  */
-           if (force_multibyte && ! is_multibyte)
-             {
-               is_multibyte = 1;
-               to_multibyte (&p, &end, &nchars);
+               /* Any modifiers remaining are invalid.  */
+               if (modifiers)
+                 error ("Invalid modifier in string");
+               p += CHAR_STRING (c, (unsigned char *) p);
              }
-
-           /* Allow `\C- ' and `\C-?'.  */
-           if (c == (CHAR_CTL | ' '))
-             c = 0;
-           else if (c == (CHAR_CTL | '?'))
-             c = 127;
-
-           if (c & CHAR_SHIFT)
+           else
              {
-               /* Shift modifier is valid only with [A-Za-z].  */
-               if ((c & 0377) >= 'A' && (c & 0377) <= 'Z')
-                 c &= ~CHAR_SHIFT;
-               else if ((c & 0377) >= 'a' && (c & 0377) <= 'z')
-                 c = (c & ~CHAR_SHIFT) - ('a' - 'A');
+               p += CHAR_STRING (c, (unsigned char *) p);
+               if (CHAR_BYTE8_P (c))
+                 force_singlebyte = 1;
+               else if (! ASCII_CHAR_P (c))
+                 force_multibyte = 1;
              }
-
-           if (c & CHAR_META)
-             /* Move the meta bit to the right place for a string.  */
-             c = (c & ~CHAR_META) | 0x80;
-           if (c & CHAR_MODIFIER_MASK)
-             error ("Invalid modifier in string");
-
-           if (is_multibyte)
-             p += CHAR_STRING (c, p);
-           else
-             *p++ = c;
-
            nchars++;
          }
 
@@ -2652,37 +2812,16 @@ read1 (readcharfun, pch, first_in_list)
        if (!NILP (Vpurify_flag) && NILP (Vdoc_file_name) && cancel)
          return make_number (0);
 
-       if (is_multibyte || force_singlebyte)
+       if (force_multibyte)
+         /* READ_BUFFER already contains valid multibyte forms.  */
          ;
-       else if (load_convert_to_unibyte)
-         {
-           Lisp_Object string;
-           to_multibyte (&p, &end, &nchars);
-           if (p - read_buffer != nchars)
-             {
-               string = make_multibyte_string (read_buffer, nchars,
-                                               p - read_buffer);
-               return Fstring_make_unibyte (string);
-             }
-           /* We can make a unibyte string directly.  */
-           is_multibyte = 0;
-         }
-       else if (EQ (readcharfun, Qget_file_char)
-                || EQ (readcharfun, Qlambda))
+       else if (force_singlebyte)
          {
-           /* Nowadays, reading directly from a file is used only for
-              compiled Emacs Lisp files, and those always use the
-              Emacs internal encoding.  Meanwhile, Qlambda is used
-              for reading dynamic byte code (compiled with
-              byte-compile-dynamic = t).  So make the string multibyte
-              if the string contains any multibyte sequences.
-              (to_multibyte is a no-op if not.)  */
-           to_multibyte (&p, &end, &nchars);
-           is_multibyte = (p - read_buffer) != nchars;
+           nchars = str_as_unibyte (read_buffer, p - read_buffer);
+           p = read_buffer + nchars;
          }
        else
-         /* In all other cases, if we read these bytes as
-            separate characters, treat them as separate characters now.  */
+         /* Otherwise, READ_BUFFER contains only ASCII.  */
          ;
 
        /* We want readchar_count to be the number of characters, not
@@ -2692,9 +2831,11 @@ read1 (readcharfun, pch, first_in_list)
        /* readchar_count -= (p - read_buffer) - nchars; */
        if (read_pure)
          return make_pure_string (read_buffer, nchars, p - read_buffer,
-                                  is_multibyte);
+                                  (force_multibyte
+                                   || (p - read_buffer != nchars)));
        return make_specified_string (read_buffer, nchars, p - read_buffer,
-                                     is_multibyte);
+                                     (force_multibyte
+                                      || (p - read_buffer != nchars)));
       }
 
     case '.':
@@ -2752,11 +2893,10 @@ read1 (readcharfun, pch, first_in_list)
                  quoted = 1;
                }
 
-             if (! SINGLE_BYTE_CHAR_P (c))
+             if (multibyte)
                p += CHAR_STRING (c, p);
              else
                *p++ = c;
-
              c = READCHAR;
            }
 
@@ -2790,6 +2930,8 @@ read1 (readcharfun, pch, first_in_list)
                  {
                    if (p1[-1] == '.')
                      p1[-1] = '\0';
+                   /* Fixme: if we have strtol, use that, and check
+                      for overflow.  */
                    if (sizeof (int) == sizeof (EMACS_INT))
                      XSETINT (val, atoi (read_buffer));
                    else if (sizeof (long) == sizeof (EMACS_INT))
@@ -2850,8 +2992,19 @@ read1 (readcharfun, pch, first_in_list)
              }
          }
        {
-         Lisp_Object result = uninterned_symbol ? make_symbol (read_buffer)
-           : intern (read_buffer);
+         Lisp_Object name, result;
+         EMACS_INT nbytes = p - read_buffer;
+         EMACS_INT nchars
+           = (multibyte ? multibyte_chars_in_text (read_buffer, nbytes)
+              : nbytes);
+
+         if (uninterned_symbol && ! NILP (Vpurify_flag))
+           name = make_pure_string (read_buffer, nchars, nbytes, multibyte);
+         else
+           name = make_specified_string (read_buffer, nchars, nbytes,multibyte);
+         result = (uninterned_symbol ? Fmake_symbol (name)
+                   : Fintern (name, Qnil));
+
          if (EQ (Vread_with_symbol_positions, Qt)
              || EQ (Vread_with_symbol_positions, readcharfun))
            Vread_symbol_positions_list =
@@ -3110,7 +3263,7 @@ read_vector (readcharfun, bytecodeflag)
                  STRING_SET_CHARS (bytestr, SBYTES (bytestr));
                  STRING_SET_UNIBYTE (bytestr);
 
-                 item = Fread (bytestr);
+                 item = Fread (Fcons (bytestr, readcharfun));
                  if (!CONSP (item))
                    error ("Invalid byte code");
 
@@ -3123,6 +3276,15 @@ read_vector (readcharfun, bytecodeflag)
              /* Now handle the bytecode slot.  */
              ptr[COMPILED_BYTECODE] = read_pure ? Fpurecopy (bytestr) : bytestr;
            }
+         else if (i == COMPILED_DOC_STRING
+                  && STRINGP (item)
+                  && ! STRING_MULTIBYTE (item))
+           {
+             if (EQ (readcharfun, Qget_emacs_mule_file_char))
+               item = Fdecode_coding_string (item, Qemacs_mule, Qnil, Qnil);
+             else
+               item = Fstring_as_multibyte (item);
+           }
        }
       ptr[i] = read_pure ? Fpurecopy (item) : item;
       otem = XCONS (tem);
@@ -3219,7 +3381,15 @@ read_list (flag, readcharfun)
                  if (doc_reference == 2)
                    {
                      /* Get a doc string from the file we are loading.
-                        If it's in saved_doc_string, get it from there.  */
+                        If it's in saved_doc_string, get it from there.
+
+                        Here, we don't know if the string is a
+                        bytecode string or a doc string.  As a
+                        bytecode string must be unibyte, we always
+                        return a unibyte string.  If it is actually a
+                        doc string, caller must make it
+                        multibyte.  */
+
                      int pos = XINT (XCDR (val));
                      /* Position is negative for user variables.  */
                      if (pos < 0) pos = -pos;
@@ -3251,8 +3421,8 @@ read_list (flag, readcharfun)
                                saved_doc_string[to++] = c;
                            }
 
-                         return make_string (saved_doc_string + start,
-                                             to - start);
+                         return make_unibyte_string (saved_doc_string + start,
+                                                     to - start);
                        }
                      /* Look in prev_saved_doc_string the same way.  */
                      else if (pos >= prev_saved_doc_string_position
@@ -3283,11 +3453,12 @@ read_list (flag, readcharfun)
                                prev_saved_doc_string[to++] = c;
                            }
 
-                         return make_string (prev_saved_doc_string + start,
-                                             to - start);
+                         return make_unibyte_string (prev_saved_doc_string
+                                                     + start,
+                                                     to - start);
                        }
                      else
-                       return get_doc_string (val, 0, 0);
+                       return get_doc_string (val, 1, 0);
                    }
 
                  return val;
@@ -4208,6 +4379,12 @@ to load.  See also `load-dangerous-libraries'.  */);
   Qget_file_char = intern ("get-file-char");
   staticpro (&Qget_file_char);
 
+  Qget_emacs_mule_file_char = intern ("get-emacs-mule-file-char");
+  staticpro (&Qget_emacs_mule_file_char);
+
+  Qload_force_doc_strings = intern ("load-force-doc-strings");
+  staticpro (&Qload_force_doc_strings);
+
   Qbackquote = intern ("`");
   staticpro (&Qbackquote);
   Qcomma = intern (",");
index 7afeaafd85bd9ab8eadaeb8a64d92572a1a8b558..1b2c2d5702a615a290a5da39cfc2404100e9177d 100644 (file)
@@ -2654,7 +2654,7 @@ This function is an internal primitive--use `make-frame' instead.  */)
       {
        tem = Fquery_fontset (font, Qnil);
        if (STRINGP (tem))
-         font = x_new_fontset (f, SDATA (tem));
+         font = x_new_fontset (f, tem);
        else
          font = x_new_font (f, SDATA (font));
       }
@@ -2667,7 +2667,7 @@ This function is an internal primitive--use `make-frame' instead.  */)
       font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
     /* If those didn't work, look for something which will at least work.  */
     if (! STRINGP (font))
-      font = x_new_fontset (f, "fontset-standard");
+      font = x_new_fontset (f, build_string ("fontset-standard"));
     if (! STRINGP (font))
       font = x_new_font (f, "-*-monaco-*-12-*-mac-roman");
     if (! STRINGP (font))
@@ -3881,7 +3881,7 @@ x_create_tip_frame (dpyinfo, parms, text)
       {
        tem = Fquery_fontset (font, Qnil);
        if (STRINGP (tem))
-         font = x_new_fontset (f, SDATA (tem));
+         font = x_new_fontset (f, tem);
        else
          font = x_new_font (f, SDATA (font));
       }
@@ -3895,7 +3895,7 @@ x_create_tip_frame (dpyinfo, parms, text)
       font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
     /* If those didn't work, look for something which will at least work.  */
     if (! STRINGP (font))
-      font = x_new_fontset (f, "fontset-standard");
+      font = x_new_fontset (f, build_string ("fontset-standard"));
     if (! STRINGP (font))
       font = x_new_font (f, "-*-monaco-*-12-*-mac-roman");
     if (! STRINGP (font))
index 7a65e583b1be6d4f0313cb4cc0d7d38c12447d03..3e3fed77c11ba833a4467eb6b9a61ebd230dd810 100644 (file)
@@ -81,11 +81,13 @@ typedef unsigned long Time;
 
 /* Whether to use ATSUI (Apple Type Services for Unicode Imaging) for
    text drawing.  */
+#if 0 /* Don't enable by default on the emacs-unicode-2 branch.  */
 #ifndef USE_ATSUI
 #ifdef MAC_OSX
 #define USE_ATSUI 1
 #endif
 #endif
+#endif
 
 /* Whether to use low-level Quartz 2D (aka Core Graphics) text drawing
    in preference to ATSUI for ASCII and Latin-1 characters.  */
index 1bf0cd0e707d09d5c1ecb0fc904d16c27d1898f4..f07b9eb0a5daafc65a05a2005f1235f1fac42f9c 100644 (file)
@@ -80,6 +80,8 @@ Boston, MA 02110-1301, USA.  */
 #include "intervals.h"
 #include "atimer.h"
 #include "keymap.h"
+#include "character.h"
+#include "ccl.h"
 
 \f
 
@@ -2421,7 +2423,8 @@ XTreset_terminal_modes (struct terminal *t)
 /* Function prototypes of this page.  */
 
 static XCharStruct *x_per_char_metric P_ ((XFontStruct *, XChar2b *));
-static int mac_encode_char P_ ((int, XChar2b *, struct font_info *, int *));
+static int mac_encode_char P_ ((int, XChar2b *, struct font_info *, 
+                               struct charset *, int *));
 
 
 static void
@@ -2565,13 +2568,13 @@ mac_per_char_metric (font, char2b, font_type)
    the two-byte form of C.  Encoding is returned in *CHAR2B.  */
 
 static int
-mac_encode_char (c, char2b, font_info, two_byte_p)
+mac_encode_char (c, char2b, font_info, charset, two_byte_p)
      int c;
      XChar2b *char2b;
      struct font_info *font_info;
+     struct charset *charset;
      int *two_byte_p;
 {
-  int charset = CHAR_CHARSET (c);
   XFontStruct *font = font_info->font;
 
   /* FONT_INFO may define a scheme by which to encode byte1 and byte2.
@@ -2585,31 +2588,31 @@ mac_encode_char (c, char2b, font_info, two_byte_p)
       check_ccl_update (ccl);
       if (CHARSET_DIMENSION (charset) == 1)
        {
-         ccl->reg[0] = charset;
-         ccl->reg[1] = char2b->byte2;
+         ccl->reg[0] = CHARSET_ID (charset);
+         ccl->reg[1] = XCHAR2B_BYTE2 (char2b);
          ccl->reg[2] = -1;
        }
       else
        {
-         ccl->reg[0] = charset;
-         ccl->reg[1] = char2b->byte1;
-         ccl->reg[2] = char2b->byte2;
+         ccl->reg[0] = CHARSET_ID (charset);
+         ccl->reg[1] = XCHAR2B_BYTE1 (char2b);
+         ccl->reg[2] = XCHAR2B_BYTE2 (char2b);
        }
 
-      ccl_driver (ccl, NULL, NULL, 0, 0, NULL);
+      ccl_driver (ccl, NULL, NULL, 0, 0, Qnil);
 
       /* We assume that MSBs are appropriately set/reset by CCL
         program.  */
       if (font->max_byte1 == 0)        /* 1-byte font */
-       char2b->byte1 = 0, char2b->byte2 = ccl->reg[1];
+       STORE_XCHAR2B (char2b, 0, ccl->reg[1]);
       else
-       char2b->byte1 = ccl->reg[1], char2b->byte2 = ccl->reg[2];
+       STORE_XCHAR2B (char2b, ccl->reg[1], ccl->reg[2]);
     }
-  else if (font_info->encoding[charset])
+  else if (font_info->encoding_type)
     {
       /* Fixed encoding scheme.  See fontset.h for the meaning of the
         encoding numbers.  */
-      int enc = font_info->encoding[charset];
+      unsigned char enc = font_info->encoding_type;
 
       if ((enc == 1 || enc == 2)
          && CHARSET_DIMENSION (charset) == 2)
@@ -2619,13 +2622,12 @@ mac_encode_char (c, char2b, font_info, two_byte_p)
        char2b->byte2 |= 0x80;
 
       if (enc == 4)
-        {
-          int sjis1, sjis2;
+       {
+         int code = (char2b->byte1 << 8) | char2b->byte2;
 
-          ENCODE_SJIS (char2b->byte1, char2b->byte2, sjis1, sjis2);
-          char2b->byte1 = sjis1;
-          char2b->byte2 = sjis2;
-        }
+         JIS_TO_SJIS (code);
+         STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
+       }
     }
 
   if (two_byte_p)
@@ -2744,9 +2746,9 @@ x_set_mouse_face_gc (s)
     face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
 
   if (s->first_glyph->type == CHAR_GLYPH)
-    face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch);
+    face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch, -1, Qnil);
   else
-    face_id = FACE_FOR_CHAR (s->f, face, 0);
+    face_id = FACE_FOR_CHAR (s->f, face, 0, -1, Qnil);
   s->face = FACE_FROM_ID (s->f, face_id);
   PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
 
@@ -3109,8 +3111,8 @@ x_frame_of_widget (widget)
 
   /* Look for a frame with that top-level widget.  Allocate the color
      on that frame to get the right gamma correction value.  */
-  for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
-    if (GC_FRAMEP (XCAR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
+    if (FRAMEP (XCAR (tail))
        && (f = XFRAME (XCAR (tail)),
            (f->output_data.nothing != 1
             && FRAME_X_DISPLAY_INFO (f) == dpyinfo))
@@ -4418,9 +4420,9 @@ mac_focus_changed (type, dpyinfo, frame, bufp)
 
           /* Don't stop displaying the initial startup message
              for a switch-frame event we don't need.  */
-          if (GC_NILP (Vterminal_frame)
-              && GC_CONSP (Vframe_list)
-              && !GC_NILP (XCDR (Vframe_list)))
+          if (NILP (Vterminal_frame)
+              && CONSP (Vframe_list)
+              && !NILP (XCDR (Vframe_list)))
             {
               bufp->kind = FOCUS_IN_EVENT;
               XSETFRAME (bufp->frame_or_window, frame);
@@ -4493,7 +4495,7 @@ x_frame_rehighlight (dpyinfo)
   if (dpyinfo->x_focus_frame)
     {
       dpyinfo->x_highlight_frame
-       = ((GC_FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame)))
+       = ((FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame)))
           ? XFRAME (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame))
           : dpyinfo->x_focus_frame);
       if (! FRAME_LIVE_P (dpyinfo->x_highlight_frame))
@@ -5523,7 +5525,7 @@ x_scroll_bar_handle_click (bar, part_code, er, bufp)
 {
   int win_y, top_range;
 
-  if (! GC_WINDOWP (bar->window))
+  if (! WINDOWP (bar->window))
     abort ();
 
   bufp->kind = SCROLL_BAR_CLICK_EVENT;
@@ -5598,7 +5600,7 @@ x_scroll_bar_note_movement (bar, y_pos, t)
   XSETVECTOR (last_mouse_scroll_bar, bar);
 
   /* If we're dragging the bar, display it.  */
-  if (! GC_NILP (bar->dragging))
+  if (! NILP (bar->dragging))
     {
       /* Where should the handle be now?  */
       int new_start = y_pos - 24;
@@ -6557,11 +6559,16 @@ x_new_font (f, fontname)
      register char *fontname;
 {
   struct font_info *fontp
-    = FS_LOAD_FONT (f, 0, fontname, -1);
+    = FS_LOAD_FONT (f, fontname);
 
   if (!fontp)
     return Qnil;
 
+  if (FRAME_FONT (f) == (XFontStruct *) (fontp->font))
+    /* This font is already set in frame F.  There's nothing more to
+       do.  */
+    return build_string (fontp->full_name);
+
   FRAME_FONT (f) = (XFontStruct *) (fontp->font);
   FRAME_BASELINE_OFFSET (f) = fontp->baseline_offset;
   FRAME_FONTSET (f) = -1;
@@ -6604,38 +6611,50 @@ x_new_font (f, fontname)
 
   return build_string (fontp->full_name);
 }
+\f
+/* Give frame F the fontset named FONTSETNAME as its default fontset,
+   and return the full name of that fontset.  FONTSETNAME may be a
+   wildcard pattern; in that case, we choose some fontset that fits
+   the pattern.  FONTSETNAME may be a font name for ASCII characters;
+   in that case, we create a fontset from that font name.
 
-/* Give frame F the fontset named FONTSETNAME as its default font, and
-   return the full name of that fontset.  FONTSETNAME may be a wildcard
-   pattern; in that case, we choose some fontset that fits the pattern.
-   The return value shows which fontset we chose.  */
+   The return value shows which fontset we chose.
+   If FONTSETNAME specifies the default fontset, return Qt.
+   If an ASCII font in the specified fontset can't be loaded, return
+   Qnil.  */
 
 Lisp_Object
 x_new_fontset (f, fontsetname)
      struct frame *f;
-     char *fontsetname;
+     Lisp_Object fontsetname;
 {
-  int fontset = fs_query_fontset (build_string (fontsetname), 0);
+  int fontset = fs_query_fontset (fontsetname, 0);
   Lisp_Object result;
 
-  if (fontset < 0)
-    return Qnil;
-
-  if (FRAME_FONTSET (f) == fontset)
+  if (fontset > 0 && FRAME_FONTSET(f) == fontset)
     /* This fontset is already set in frame F.  There's nothing more
        to do.  */
     return fontset_name (fontset);
+  else if (fontset == 0)
+    /* The default fontset can't be the default font.   */
+    return Qt;
 
-  result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
+  if (fontset > 0)
+    result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
+  else
+    result = x_new_font (f, SDATA (fontsetname));
 
   if (!STRINGP (result))
     /* Can't load ASCII font.  */
     return Qnil;
 
+  if (fontset < 0)
+    fontset = new_fontset_from_font_name (result);
+
   /* Since x_new_font doesn't update any fontset information, do it now.  */
   FRAME_FONTSET (f) = fontset;
 
-  return build_string (fontsetname);
+  return fontset_name (fontset);
 }
 
 \f
@@ -7849,12 +7868,12 @@ decode_mac_font_name (name, size, coding_system)
          coding.src_multibyte = 0;
          coding.dst_multibyte = 1;
          coding.mode |= CODING_MODE_LAST_BLOCK;
-         coding.composing = COMPOSITION_DISABLED;
-         buf = (char *) alloca (size);
+         coding.dst_bytes = size;
+         coding.destination = (unsigned char *) alloca (coding.dst_bytes);
 
-         decode_coding (&coding, name, buf, strlen (name), size - 1);
-         bcopy (buf, name, coding.produced);
-         name[coding.produced] = '\0';
+         decode_coding_c_string (&coding, name, strlen (name), Qnil);
+         bcopy (coding.destination, name, min (coding.produced, size));
+         name[min (coding.produced, size)] = '\0';
        }
     }
 
@@ -9191,6 +9210,7 @@ x_load_font (f, fontname, size)
     bzero (fontp, sizeof (*fontp));
     fontp->font = font;
     fontp->font_idx = i;
+    fontp->charset = -1;       /* fs_load_font sets it.  */
     fontp->name = (char *) xmalloc (strlen (fontname) + 1);
     bcopy (fontname, fontp->name, strlen (fontname) + 1);
 
@@ -9236,19 +9256,20 @@ x_load_font (f, fontname, size)
        fontp->height = max_height;
     }
 
+    /* MAC_TODO: The script encoding is irrelevant in unicode? */
     /* The slot `encoding' specifies how to map a character
        code-points (0x20..0x7F or 0x2020..0x7F7F) of each charset to
        the font code-points (0:0x20..0x7F, 1:0xA0..0xFF), or
        (0:0x2020..0x7F7F, 1:0xA0A0..0xFFFF, 3:0x20A0..0x7FFF,
        2:0xA020..0xFF7F).  For the moment, we don't know which charset
-       uses this font.  So, we set information in fontp->encoding[1]
+       uses this font.  So, we set information in fontp->encoding_type
        which is never used by any charset.  If mapping can't be
        decided, set FONT_ENCODING_NOT_DECIDED.  */
     if (font->mac_scriptcode == smJapanese)
-      fontp->encoding[1] = 4;
+      fontp->encoding_type = 4;
     else
       {
-        fontp->encoding[1]
+        fontp->encoding_type
            = (font->max_byte1 == 0
              /* 1-byte font */
              ? (font->min_char_or_byte2 < 0x80
index 65c5d87b84593165cb5af0cd629522d7b502b705..4242f35eb3b362d1fec0e923ebad08838df70624 100644 (file)
@@ -117,6 +117,8 @@ OBJ1 =  $(BLD)/alloc.$(O)                   \
        $(BLD)/region-cache.$(O)                \
        $(BLD)/strftime.$(O)                    \
        $(BLD)/charset.$(O)                     \
+       $(BLD)/character.$(O)                   \
+       $(BLD)/chartab.$(O)                     \
        $(BLD)/coding.$(O)                      \
        $(BLD)/category.$(O)                    \
        $(BLD)/ccl.$(O)                         \
@@ -125,6 +127,7 @@ OBJ1 =  $(BLD)/alloc.$(O)                   \
        $(BLD)/image.$(O)                       \
        $(BLD)/terminal.$(O)
 
+
 WIN32OBJ = $(BLD)/w32term.$(O)                 \
           $(BLD)/w32xfns.$(O)                  \
           $(BLD)/w32fns.$(O)                   \
@@ -134,6 +137,12 @@ WIN32OBJ = $(BLD)/w32term.$(O)                     \
           $(BLD)/w32reg.$(O)                   \
           $(BLD)/w32bdf.$(O)
 
+FONTOBJ =
+ifdef USE_FONTBACKEND
+FONTOBJ = $(BLD)/font.$(O) \
+         $(BLD)/w32font.$(O)
+endif
+
 LIBS =  $(TLIB0)       \
        $(TLIB1)        \
        $(TLIBW32)      \
@@ -173,10 +182,11 @@ temacs:         stamp_BLD $(TEMACS)
 $(TEMACS):      $(TLIB0) $(TLIB1) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES) \
                  ../nt/$(BLD)/addsection.exe
        $(LINK) $(LINK_OUT)$(TEMACS_TMP) $(FULL_LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
-       "../nt/$(BLD)/addsection" "$(TEMACS_TMP)" "$(TEMACS)" EMHEAP 16
+       "../nt/$(BLD)/addsection" "$(TEMACS_TMP)" "$(TEMACS)" EMHEAP 20
        echo $(OBJ0) > $(BLD)/buildobj.lst
        echo $(OBJ1) >> $(BLD)/buildobj.lst
        echo $(WIN32OBJ) >> $(BLD)/buildobj.lst
+       echo $(FONTOBJ) >> $(BLD)/buildobj.lst
 
 bootstrap: bootstrap-emacs
 
@@ -225,7 +235,7 @@ $(TLIB0):       $(OBJ0)
 $(TLIB1):       $(OBJ1)
        - $(DEL) $@
        $(AR) $(AR_OUT)$@ $(ALL_DEPS)
-$(TLIBW32):    $(WIN32OBJ)
+$(TLIBW32):    $(WIN32OBJ) $(FONTOBJ)
        - $(DEL) $@
        $(AR) $(AR_OUT)$@ $(ALL_DEPS)
 
@@ -270,6 +280,21 @@ cleanall:  clean
 EMACS_ROOT     = ..
 SRC            = .
 
+$(BLD)/abbrev.$(O) : \
+       $(SRC)/abbrev.c \
+       $(EMACS_ROOT)/src/s/ms-w32.h \
+       $(EMACS_ROOT)/src/m/intel386.h \
+       $(EMACS_ROOT)/src/config.h \
+       $(SRC)/buffer.h \
+       $(SRC)/character.h \
+       $(SRC)/charset.h \
+       $(SRC)/commands.h \
+       $(SRC)/dispextern.h \
+       $(SRC)/syntax.h \
+       $(SRC)/w32bdf.h \
+       $(SRC)/w32gui.h \
+       $(SRC)/window.h
+
 $(BLD)/alloc.$(O) : \
        $(SRC)/alloc.c \
        $(EMACS_ROOT)/src/s/ms-w32.h \
@@ -277,6 +302,7 @@ $(BLD)/alloc.$(O) : \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/composite.h \
        $(SRC)/dispextern.h \
@@ -359,6 +385,7 @@ $(BLD)/callproc.$(O) : \
        $(EMACS_ROOT)/nt/inc/sys/file.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/commands.h \
@@ -377,6 +404,7 @@ $(BLD)/casefiddle.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
@@ -398,6 +426,7 @@ $(BLD)/category.$(O) : \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
        $(SRC)/category.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/keymap.h
 
@@ -407,9 +436,22 @@ $(BLD)/ccl.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h
 
+$(BLD)/character.$(O) : \
+       $(SRC)/character.c \
+       $(EMACS_ROOT)/src/s/ms-w32.h \
+       $(EMACS_ROOT)/src/m/intel386.h \
+       $(EMACS_ROOT)/src/config.h \
+       $(SRC)/buffer.h \
+       $(SRC)/character.h \
+       $(SRC)/charset.h \
+       $(SRC)/coding.h \
+       $(SRC)/composite.h \
+       $(SRC)/disptab.h
+
 $(BLD)/charset.$(O) : \
        $(SRC)/charset.c \
        $(EMACS_ROOT)/src/s/ms-w32.h \
@@ -417,11 +459,20 @@ $(BLD)/charset.$(O) : \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/composite.h \
        $(SRC)/disptab.h
 
+$(BLD)/chartab.$(O) : \
+       $(SRC)/chartab.c \
+       $(EMACS_ROOT)/src/s/ms-w32.h \
+       $(EMACS_ROOT)/src/m/intel386.h \
+       $(EMACS_ROOT)/src/config.h \
+       $(SRC)/charset.h \
+       $(SRC)/character.h
+
 $(BLD)/cm.$(O) : \
        $(SRC)/cm.c \
        $(EMACS_ROOT)/src/s/ms-w32.h \
@@ -436,6 +487,7 @@ $(BLD)/cmds.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/commands.h \
        $(SRC)/dispextern.h \
@@ -453,6 +505,7 @@ $(BLD)/coding.$(O) : \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/composite.h \
@@ -470,6 +523,7 @@ $(BLD)/composite.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/composite.h \
        $(SRC)/dispextern.h \
@@ -483,6 +537,7 @@ $(BLD)/data.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/frame.h \
        $(SRC)/keyboard.h \
@@ -497,6 +552,7 @@ $(BLD)/dired.$(O) : \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/commands.h \
@@ -514,6 +570,7 @@ $(BLD)/dispnew.$(O) : \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/cm.h \
        $(SRC)/commands.h \
@@ -542,6 +599,7 @@ $(BLD)/doc.$(O) : \
        $(EMACS_ROOT)/src/config.h \
        $(EMACS_ROOT)/nt/inc/sys/file.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/keyboard.h \
        $(SRC)/keymap.h
@@ -551,6 +609,7 @@ $(BLD)/doprnt.$(O) : \
        $(EMACS_ROOT)/src/s/ms-w32.h \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
+       $(SRC)/character.h \
        $(SRC)/charset.c
 
 $(BLD)/editfns.$(O) : \
@@ -561,6 +620,7 @@ $(BLD)/editfns.$(O) : \
        $(EMACS_ROOT)/nt/inc/pwd.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/composite.h \
@@ -622,6 +682,7 @@ $(BLD)/fileio.$(O) : \
        $(EMACS_ROOT)/nt/inc/sys/file.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/commands.h \
@@ -643,6 +704,7 @@ $(BLD)/filelock.$(O) : \
        $(EMACS_ROOT)/src/epaths.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/systime.h
@@ -680,6 +742,7 @@ $(BLD)/fns.$(O) : \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/commands.h \
@@ -696,6 +759,19 @@ $(BLD)/fns.$(O) : \
        $(SRC)/w32gui.h \
        $(SRC)/window.h
 
+$(BLD)/font.$(O) : \
+       $(SRC)/font.c \
+       $(EMACS_ROOT)/src/s/ms-w32.h \
+       $(EMACS_ROOT)/src/m/intel386.h \
+       $(EMACS_ROOT)/src/config.h \
+       $(SRC)/dispextern.h \
+       $(SRC)/frame.h \
+       $(SRC)/window.h \
+       $(SRC)/ccl.h \
+       $(SRC)/character.h \
+       $(SRC)/charset.h \
+       $(SRC)/font.h
+
 $(BLD)/fontset.$(O) : \
        $(SRC)/fontset.c \
        $(EMACS_ROOT)/src/s/ms-w32.h \
@@ -703,8 +779,10 @@ $(BLD)/fontset.$(O) : \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/dispextern.h \
+       $(SRC)/font.h \
        $(SRC)/fontset.h \
        $(SRC)/frame.h \
        $(SRC)/keyboard.h \
@@ -721,6 +799,7 @@ $(BLD)/frame.$(O) : \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/commands.h \
        $(SRC)/dispextern.h \
@@ -783,6 +862,7 @@ $(BLD)/indent.$(O) : \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
        $(SRC)/category.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/composite.h \
        $(SRC)/dispextern.h \
@@ -806,6 +886,7 @@ $(BLD)/insdel.$(O) : \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/composite.h \
        $(SRC)/dispextern.h \
@@ -841,6 +922,7 @@ $(BLD)/keyboard.$(O) : \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
@@ -872,6 +954,7 @@ $(BLD)/keymap.$(O) : \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
@@ -901,6 +984,7 @@ $(BLD)/lread.$(O) : \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/commands.h \
@@ -932,6 +1016,7 @@ $(BLD)/marker.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h
 
 $(BLD)/md5.$(O) : \
@@ -944,6 +1029,7 @@ $(BLD)/minibuf.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
@@ -999,6 +1085,7 @@ $(BLD)/w32proc.$(O) : \
        $(EMACS_ROOT)/nt/inc/langinfo.h \
        $(EMACS_ROOT)/nt/inc/nl_types.h \
        $(SRC)/config.h \
+       $(SRC)/character.h \
        $(SRC)/process.h \
        $(SRC)/syssignal.h \
        $(SRC)/systime.h \
@@ -1014,6 +1101,7 @@ $(BLD)/w32console.$(O) : \
        $(SRC)/s/ms-w32.h \
        $(SRC)/m/intel386.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/config.h \
@@ -1031,6 +1119,7 @@ $(BLD)/print.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/composite.h \
        $(SRC)/dispextern.h \
@@ -1054,6 +1143,7 @@ $(BLD)/process.$(O) : \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/commands.h \
@@ -1093,6 +1183,7 @@ $(BLD)/regex.$(O) : \
        $(SRC)/m/intel386.h \
        $(SRC)/buffer.h \
        $(SRC)/category.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/config.h \
        $(SRC)/regex.h \
@@ -1129,6 +1220,7 @@ $(BLD)/search.$(O) : \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
        $(SRC)/category.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
@@ -1161,6 +1253,7 @@ $(BLD)/syntax.$(O) : \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/buffer.h \
        $(SRC)/category.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
@@ -1206,6 +1299,7 @@ $(BLD)/term.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/cm.h \
        $(SRC)/coding.h \
@@ -1314,12 +1408,14 @@ $(BLD)/xdisp.$(O) : \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/commands.h \
        $(SRC)/composite.h \
        $(SRC)/dispextern.h \
        $(SRC)/disptab.h \
+       $(SRC)/font.h \
        $(SRC)/fontset.h \
        $(SRC)/frame.h \
        $(SRC)/indent.h \
@@ -1345,9 +1441,11 @@ $(BLD)/xfaces.$(O): \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/composite.h \
        $(SRC)/dispextern.h \
+       $(SRC)/font.h \
        $(SRC)/fontset.h \
        $(SRC)/frame.h \
        $(SRC)/intervals.h \
@@ -1369,11 +1467,13 @@ $(BLD)/w32fns.$(O): \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/composite.h \
        $(SRC)/dispextern.h \
        $(SRC)/epaths.h \
+       $(SRC)/font.h \
        $(SRC)/fontset.h \
        $(SRC)/frame.h \
        $(SRC)/intervals.h \
@@ -1394,6 +1494,7 @@ $(BLD)/w32menu.$(O): \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/dispextern.h \
@@ -1416,11 +1517,13 @@ $(BLD)/w32term.$(O): \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/composite.h \
        $(SRC)/dispextern.h \
        $(SRC)/disptab.h \
+       $(SRC)/font.h \
        $(SRC)/fontset.h \
        $(SRC)/frame.h \
        $(SRC)/gnu.h \
@@ -1447,6 +1550,7 @@ $(BLD)/w32select.$(O): \
        $(SRC)/blockinput.h \
        $(SRC)/buffer.h \
        $(SRC)/ccl.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/coding.h \
        $(SRC)/composite.h \
@@ -1478,6 +1582,7 @@ $(BLD)/w32xfns.$(O): \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/fontset.h \
        $(SRC)/frame.h \
@@ -1494,6 +1599,7 @@ $(BLD)/w32bdf.$(O): \
        $(EMACS_ROOT)/src/config.h \
        $(SRC)/atimer.h \
        $(SRC)/blockinput.h \
+       $(SRC)/character.h \
        $(SRC)/charset.h \
        $(SRC)/dispextern.h \
        $(SRC)/fontset.h \
@@ -1504,7 +1610,22 @@ $(BLD)/w32bdf.$(O): \
        $(SRC)/w32gui.h \
        $(SRC)/w32term.h
 
+$(BLD)/w32font$(O): \
+       $(SRC)/w32font.c \
+       $(EMACS_ROOT)/src/s/ms-w32.h \
+       $(EMACS_ROOT)/src/m/intel386.h \
+       $(EMACS_ROOT)/src/config.h \
+       $(SRC)/character.h \
+       $(SRC)/charset.h \
+       $(SRC)/dispextern.h \
+       $(SRC)/font.h \
+       $(SRC)/fontset.h \
+       $(SRC)/frame.h \
+       $(SRC)/w32font.h \
+       $(SRC)/w32gui.h \
+       $(SRC)/w32term.h
+
 # Each object file depends on stamp_BLD, because in parallel builds we must
 # make sure $(BLD) exists before starting compilations.
 #
-$(OBJ0) $(OBJ1) $(WIN32OBJ) $(BLD)/lastfile.$(O) $(BLD)/firstfile.$(O): stamp_BLD
+$(OBJ0) $(OBJ1) $(WIN32OBJ) $(FONTOBJ) $(BLD)/lastfile.$(O) $(BLD)/firstfile.$(O): stamp_BLD
index 0c89f71d79ab0292b2ec3c19fc883960ec2fa28d..d054ef91e79b33c2f6e5cc41f69166aacb068f2d 100644 (file)
@@ -23,7 +23,7 @@ Boston, MA 02110-1301, USA.  */
 #include <config.h>
 #include "lisp.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 
 /* Record one cached position found recently by
    buf_charpos_to_bytepos or buf_bytepos_to_charpos.  */
index 5cd821e51791a1bee6be15d836d5c9a9b78f824d..812956a13caeeba7594ecf5ba7c453f8b3e82933 100644 (file)
@@ -27,7 +27,7 @@ Boston, MA 02110-1301, USA.  */
 #include "lisp.h"
 #include "commands.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "dispextern.h"
 #include "keyboard.h"
 #include "frame.h"
@@ -2432,23 +2432,14 @@ Return nil if there is no valid completion, else t.  */)
 
   /* Now find first word-break in the stuff found by completion.
      i gets index in string of where to stop completing.  */
-  {
-    int len, c;
-    int bytes = SBYTES (completion);
-    register const unsigned char *completion_string = SDATA (completion);
-    for (; i_byte < SBYTES (completion); i_byte += len, i++)
-      {
-       c = STRING_CHAR_AND_LENGTH (completion_string + i_byte,
-                                   bytes - i_byte,
-                                   len);
-       if (SYNTAX (c) != Sword)
-         {
-           i_byte += len;
-           i++;
-           break;
-         }
-      }
-  }
+  while (i_byte < SBYTES (completion))
+    {
+      int c;
+
+      FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE (c, completion, i, i_byte);
+      if (SYNTAX (c) != Sword)
+       break;
+    }
 
   /* If got no characters, print help for user.  */
 
@@ -2728,7 +2719,7 @@ DEFUN ("self-insert-and-exit", Fself_insert_and_exit, Sself_insert_and_exit, 0,
        doc: /* Terminate minibuffer input.  */)
      ()
 {
-  if (INTEGERP (last_command_char))
+  if (CHARACTERP (last_command_char))
     internal_self_insert (XINT (last_command_char), 0);
   else
     bitch_at_user ();
index fc14be2705c7b131309d3524ca9864f052eadc26..2e3ce3cf146c79b324af8aa758e0cd8498ac8c68 100644 (file)
@@ -56,7 +56,7 @@ Boston, MA 02110-1301, USA.  */
 #include "dispextern.h"
 #include "dosfns.h"
 #include "termopts.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "disptab.h"
 #include "frame.h"
@@ -3799,15 +3799,15 @@ XMenuActivate (Display *foo, XMenu *menu, int *pane, int *selidx,
   screensize = screen_size * 2;
   faces[0]
     = lookup_derived_face (sf, intern ("msdos-menu-passive-face"),
-                          0, DEFAULT_FACE_ID, 1);
+                          DEFAULT_FACE_ID, 1);
   faces[1]
     = lookup_derived_face (sf, intern ("msdos-menu-active-face"),
-                          0, DEFAULT_FACE_ID, 1);
+                          DEFAULT_FACE_ID, 1);
   selectface = intern ("msdos-menu-select-face");
   faces[2] = lookup_derived_face (sf, selectface,
-                                 0, faces[0], 1);
+                                 faces[0], 1);
   faces[3] = lookup_derived_face (sf, selectface,
-                                 0, faces[1], 1);
+                                 faces[1], 1);
 
   /* Make sure the menu title is always displayed with
      `msdos-menu-active-face', no matter where the mouse pointer is.  */
index 3a2e6926729bd168103e739c72f83403c8f42f70..a88404cb52e4d2a7842f2c83d7b84c2f79947eca 100644 (file)
@@ -25,6 +25,7 @@ Boston, MA 02110-1301, USA.  */
 #include <stdio.h>
 #include "lisp.h"
 #include "buffer.h"
+#include "character.h"
 #include "charset.h"
 #include "keyboard.h"
 #include "frame.h"
@@ -477,11 +478,15 @@ print_string (string, printcharfun)
     {
       int chars;
 
+      if (print_escape_nonascii)
+       string = string_escape_byte8 (string);
+
       if (STRING_MULTIBYTE (string))
        chars = SCHARS (string);
-      else if (EQ (printcharfun, Qt)
-              ? ! NILP (buffer_defaults.enable_multibyte_characters)
-              : ! NILP (current_buffer->enable_multibyte_characters))
+      else if (! print_escape_nonascii
+              && (EQ (printcharfun, Qt)
+                  ? ! NILP (buffer_defaults.enable_multibyte_characters)
+                  : ! NILP (current_buffer->enable_multibyte_characters)))
        {
          /* If unibyte string STRING contains 8-bit codes, we must
             convert STRING to a multibyte string containing the same
@@ -546,11 +551,6 @@ print_string (string, printcharfun)
            int len;
            int ch = STRING_CHAR_AND_LENGTH (SDATA (string) + i,
                                             size_byte - i, len);
-           if (!CHAR_VALID_P (ch, 0))
-             {
-               ch = SREF (string, i);
-               len = 1;
-             }
            PRINTCHAR (ch);
            i += len;
          }
@@ -1431,7 +1431,7 @@ print_preprocess (obj)
          print_number_index++;
        }
 
-      switch (XGCTYPE (obj))
+      switch (XTYPE (obj))
        {
        case Lisp_String:
          /* A string may have text properties, which can be circular.  */
@@ -1474,6 +1474,93 @@ print_preprocess_string (interval, arg)
   print_preprocess (interval->plist);
 }
 
+/* A flag to control printing of `charset' text property.
+   The default value is Qdefault. */
+Lisp_Object Vprint_charset_text_property;
+extern Lisp_Object Qdefault;
+
+static void print_check_string_charset_prop ();
+
+#define PRINT_STRING_NON_CHARSET_FOUND 1
+#define PRINT_STRING_UNSAFE_CHARSET_FOUND 2
+
+/* Bitwize or of the abobe macros. */
+static int print_check_string_result;
+
+static void
+print_check_string_charset_prop (interval, string)
+     INTERVAL interval;
+     Lisp_Object string;
+{
+  Lisp_Object val;
+
+  if (NILP (interval->plist)
+      || (print_check_string_result == (PRINT_STRING_NON_CHARSET_FOUND
+                                       | PRINT_STRING_UNSAFE_CHARSET_FOUND)))
+    return;
+  for (val = interval->plist; CONSP (val) && ! EQ (XCAR (val), Qcharset);
+       val = XCDR (XCDR (val)));
+  if (! CONSP (val))
+    {
+      print_check_string_result |= PRINT_STRING_NON_CHARSET_FOUND;
+      return;
+    }
+  if (! (print_check_string_result & PRINT_STRING_NON_CHARSET_FOUND))
+    {
+      if (! EQ (val, interval->plist)
+         || CONSP (XCDR (XCDR (val))))
+       print_check_string_result |= PRINT_STRING_NON_CHARSET_FOUND;
+    }
+  if (NILP (Vprint_charset_text_property)
+      || ! (print_check_string_result & PRINT_STRING_UNSAFE_CHARSET_FOUND))
+    {
+      int i, c;
+      int charpos = interval->position;
+      int bytepos = string_char_to_byte (string, charpos);
+      Lisp_Object charset;
+
+      charset = XCAR (XCDR (val));
+      for (i = 0; i < LENGTH (interval); i++)
+       {
+         FETCH_STRING_CHAR_ADVANCE (c, string, charpos, bytepos);
+         if (! ASCII_CHAR_P (c)
+             && ! EQ (CHARSET_NAME (CHAR_CHARSET (c)), charset))
+           {
+             print_check_string_result |= PRINT_STRING_UNSAFE_CHARSET_FOUND;
+             break;
+           }
+       }
+    }
+}
+
+/* The value is (charset . nil).  */
+static Lisp_Object print_prune_charset_plist;
+
+static Lisp_Object
+print_prune_string_charset (string)
+     Lisp_Object string;
+{
+  print_check_string_result = 0;
+  traverse_intervals (STRING_INTERVALS (string), 0,
+                     print_check_string_charset_prop, string);
+  if (! (print_check_string_result & PRINT_STRING_UNSAFE_CHARSET_FOUND))
+    {
+      string = Fcopy_sequence (string);
+      if (print_check_string_result & PRINT_STRING_NON_CHARSET_FOUND)
+       {
+         if (NILP (print_prune_charset_plist))
+           print_prune_charset_plist = Fcons (Qcharset, Qnil);
+         Fremove_text_properties (make_number (0),
+                                  make_number (SCHARS (string)),
+                                  print_prune_charset_plist, string);
+       }
+      else
+       Fset_text_properties (make_number (0), make_number (SCHARS (string)),
+                             Qnil, string);
+    }
+  return string;
+}
+
 static void
 print_object (obj, printcharfun, escapeflag)
      Lisp_Object obj;
@@ -1486,7 +1573,7 @@ print_object (obj, printcharfun, escapeflag)
 
   /* Detect circularities and truncate them.  */
   if (STRINGP (obj) || CONSP (obj) || VECTORP (obj)
-      || COMPILEDP (obj) || CHAR_TABLE_P (obj)
+      || COMPILEDP (obj) || CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj)
       || (! NILP (Vprint_gensym)
          && SYMBOLP (obj)
          && !SYMBOL_INTERNED_P (obj)))
@@ -1545,7 +1632,7 @@ print_object (obj, printcharfun, escapeflag)
     }
 #endif /* MAX_PRINT_CHARS */
 
-  switch (XGCTYPE (obj))
+  switch (XTYPE (obj))
     {
     case Lisp_Int:
       if (sizeof (int) == sizeof (EMACS_INT))
@@ -1582,6 +1669,9 @@ print_object (obj, printcharfun, escapeflag)
 
          GCPRO1 (obj);
 
+         if (! EQ (Vprint_charset_text_property, Qt))
+           obj = print_prune_string_charset (obj);
+
          if (!NULL_INTERVAL_P (STRING_INTERVALS (obj)))
            {
              PRINTCHAR ('#');
@@ -1603,10 +1693,7 @@ print_object (obj, printcharfun, escapeflag)
                {
                  c = STRING_CHAR_AND_LENGTH (str + i_byte,
                                              size_byte - i_byte, len);
-                 if (CHAR_VALID_P (c, 0))
-                   i_byte += len;
-                 else
-                   c = str[i_byte++];
+                 i_byte += len;
                }
              else
                c = str[i_byte++];
@@ -1624,8 +1711,8 @@ print_object (obj, printcharfun, escapeflag)
                  PRINTCHAR ('f');
                }
              else if (multibyte
-                      && ! ASCII_BYTE_P (c)
-                      && (SINGLE_BYTE_CHAR_P (c) || print_escape_multibyte))
+                      && (CHAR_BYTE8_P (c) 
+                          || (! ASCII_CHAR_P (c) && print_escape_multibyte)))
                {
                  /* When multibyte is disabled,
                     print multibyte string chars using hex escapes.
@@ -1633,9 +1720,15 @@ print_object (obj, printcharfun, escapeflag)
                     when found in a multibyte string, always use a hex escape
                     so it reads back as multibyte.  */
                  unsigned char outbuf[50];
-                 sprintf (outbuf, "\\x%x", c);
+
+                 if (CHAR_BYTE8_P (c))
+                   sprintf (outbuf, "\\%03o", CHAR_TO_BYTE8 (c));
+                 else
+                   {
+                     sprintf (outbuf, "\\x%04x", c);
+                     need_nonhex = 1;
+                   }
                  strout (outbuf, -1, -1, printcharfun, 0);
-                 need_nonhex = 1;
                }
              else if (! multibyte
                       && SINGLE_BYTE_CHAR_P (c) && ! ASCII_BYTE_P (c)
@@ -1924,7 +2017,12 @@ print_object (obj, printcharfun, escapeflag)
            {
              QUIT;
              c = XBOOL_VECTOR (obj)->data[i];
-             if (c == '\n' && print_escape_newlines)
+             if (! ASCII_BYTE_P (c))
+               {
+                 sprintf (buf, "\\%03o", c);
+                 strout (buf, -1, -1, printcharfun, 0);
+               }
+             else if (c == '\n' && print_escape_newlines)
                {
                  PRINTCHAR ('\\');
                  PRINTCHAR ('n');
@@ -2039,7 +2137,7 @@ print_object (obj, printcharfun, escapeflag)
              PRINTCHAR ('#');
              size &= PSEUDOVECTOR_SIZE_MASK;
            }
-         if (CHAR_TABLE_P (obj))
+         if (CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj))
            {
              /* We print a char-table as if it were a vector,
                 lumping the parent and default slots in with the
@@ -2227,6 +2325,8 @@ print_interval (interval, printcharfun)
      INTERVAL interval;
      Lisp_Object printcharfun;
 {
+  if (NILP (interval->plist))
+    return;
   PRINTCHAR (' ');
   print_object (make_number (interval->position), printcharfun, 1);
   PRINTCHAR (' ');
@@ -2349,6 +2449,19 @@ the printing done so far has not found any shared structure or objects
 that need to be recorded in the table.  */);
   Vprint_number_table = Qnil;
 
+  DEFVAR_LISP ("print-charset-text-property", &Vprint_charset_text_property,
+              doc: /* A flag to control printing of `charset' text property on printing a string.
+The value must be nil, t, or `default'.
+
+If the value is nil, don't print the text property `charset'.
+
+If the value is t, always print the text property `charset'.
+
+If the value is `default', print the text property `charset' only when
+the value is different from what is guessed in the current charset
+priorities.  */);
+  Vprint_charset_text_property = Qdefault;
+
   /* prin1_to_string_buffer initialized in init_buffer_once in buffer.c */
   staticpro (&Vprin1_to_string_buffer);
 
@@ -2376,6 +2489,9 @@ that need to be recorded in the table.  */);
   Qprint_escape_nonascii = intern ("print-escape-nonascii");
   staticpro (&Qprint_escape_nonascii);
 
+  print_prune_charset_plist = Qnil;
+  staticpro (&print_prune_charset_plist);
+
   defsubr (&Swith_output_to_temp_buffer);
 }
 
index 0204388e6722e307dc251221de6e0e926e17354d..c2f0c82a6a85cc7ca5454f8c92c50bbbdc164e1c 100644 (file)
@@ -133,7 +133,7 @@ Boston, MA 02110-1301, USA.  */
 
 #include "window.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "process.h"
 #include "frame.h"
@@ -174,8 +174,8 @@ extern Lisp_Object QCfilter;
    Qt nor Qnil but is instead a property list (KEY VAL ...).  */
 
 #ifdef HAVE_SOCKETS
-#define NETCONN_P(p) (GC_CONSP (XPROCESS (p)->childp))
-#define NETCONN1_P(p) (GC_CONSP ((p)->childp))
+#define NETCONN_P(p) (CONSP (XPROCESS (p)->childp))
+#define NETCONN1_P(p) (CONSP ((p)->childp))
 #else
 #define NETCONN_P(p) 0
 #define NETCONN1_P(p) 0
@@ -680,6 +680,7 @@ setup_process_coding_systems (process)
   struct Lisp_Process *p = XPROCESS (process);
   int inch = p->infd;
   int outch = p->outfd;
+  Lisp_Object coding_system;
 
   if (inch < 0 || outch < 0)
     return;
@@ -687,26 +688,24 @@ setup_process_coding_systems (process)
   if (!proc_decode_coding_system[inch])
     proc_decode_coding_system[inch]
       = (struct coding_system *) xmalloc (sizeof (struct coding_system));
-  setup_coding_system (p->decode_coding_system,
-                      proc_decode_coding_system[inch]);
+  coding_system = p->decode_coding_system;
   if (! NILP (p->filter))
     {
       if (!p->filter_multibyte)
-       setup_raw_text_coding_system (proc_decode_coding_system[inch]);
+       coding_system = raw_text_coding_system (coding_system);
     }
   else if (BUFFERP (p->buffer))
     {
       if (NILP (XBUFFER (p->buffer)->enable_multibyte_characters))
-       setup_raw_text_coding_system (proc_decode_coding_system[inch]);
+       coding_system = raw_text_coding_system (coding_system);
     }
+  setup_coding_system (coding_system, proc_decode_coding_system[inch]);
 
   if (!proc_encode_coding_system[outch])
     proc_encode_coding_system[outch]
       = (struct coding_system *) xmalloc (sizeof (struct coding_system));
   setup_coding_system (p->encode_coding_system,
                       proc_encode_coding_system[outch]);
-  if (proc_encode_coding_system[outch]->eol_type == CODING_EOL_UNDECIDED)
-    proc_encode_coding_system[outch]->eol_type = system_eol_type;
 }
 \f
 DEFUN ("processp", Fprocessp, Sprocessp, 1, 1, 0,
@@ -5167,13 +5166,13 @@ read_process_output (proc, channel)
         save the match data in a special nonrecursive fashion.  */
       running_asynch_code = 1;
 
-      text = decode_coding_string (make_unibyte_string (chars, nbytes),
-                                  coding, 0);
-      Vlast_coding_system_used = coding->symbol;
+      decode_coding_c_string (coding, chars, nbytes, Qt);
+      text = coding->dst_object;
+      Vlast_coding_system_used = CODING_ID_NAME (coding->id);
       /* A new coding system might be found.  */
-      if (!EQ (p->decode_coding_system, coding->symbol))
+      if (!EQ (p->decode_coding_system, Vlast_coding_system_used))
        {
-         p->decode_coding_system = coding->symbol;
+         p->decode_coding_system = Vlast_coding_system_used;
 
          /* Don't call setup_coding_system for
             proc_decode_coding_system[channel] here.  It is done in
@@ -5189,25 +5188,21 @@ read_process_output (proc, channel)
          if (NILP (p->encode_coding_system)
              && proc_encode_coding_system[p->outfd])
            {
-             p->encode_coding_system = coding->symbol;
-             setup_coding_system (coding->symbol,
+             p->encode_coding_system
+               = coding_inherit_eol_type (Vlast_coding_system_used, Qnil);
+             setup_coding_system (p->encode_coding_system,
                                   proc_encode_coding_system[p->outfd]);
-             if (proc_encode_coding_system[p->outfd]->eol_type
-                 == CODING_EOL_UNDECIDED)
-               proc_encode_coding_system[p->outfd]->eol_type
-                 = system_eol_type;
            }
        }
 
-      carryover = nbytes - coding->consumed;
-      if (carryover < 0)
-       abort ();
-
-      if (SCHARS (p->decoding_buf) < carryover)
-       p->decoding_buf = make_uninit_string (carryover);
-      bcopy (chars + coding->consumed, SDATA (p->decoding_buf),
-            carryover);
-      p->decoding_carryover = carryover;
+      if (coding->carryover_bytes > 0)
+       {
+         if (SCHARS (p->decoding_buf) < coding->carryover_bytes)
+           p->decoding_buf = make_uninit_string (coding->carryover_bytes);
+         bcopy (coding->carryover, SDATA (p->decoding_buf),
+                coding->carryover_bytes);
+         p->decoding_carryover = coding->carryover_bytes;
+       }
       /* Adjust the multibyteness of TEXT to that of the filter.  */
       if (!p->filter_multibyte != !STRING_MULTIBYTE (text))
        text = (STRING_MULTIBYTE (text)
@@ -5292,36 +5287,31 @@ read_process_output (proc, channel)
       if (! (BEGV <= PT && PT <= ZV))
        Fwiden ();
 
-      text = decode_coding_string (make_unibyte_string (chars, nbytes),
-                                  coding, 0);
-      Vlast_coding_system_used = coding->symbol;
+      decode_coding_c_string (coding, chars, nbytes, Qt);
+      text = coding->dst_object;
+      Vlast_coding_system_used = CODING_ID_NAME (coding->id);
       /* A new coding system might be found.  See the comment in the
         similar code in the previous `if' block.  */
-      if (!EQ (p->decode_coding_system, coding->symbol))
+      if (!EQ (p->decode_coding_system, Vlast_coding_system_used))
        {
-         p->decode_coding_system = coding->symbol;
+         p->decode_coding_system = Vlast_coding_system_used;
          if (NILP (p->encode_coding_system)
              && proc_encode_coding_system[p->outfd])
            {
-             p->encode_coding_system = coding->symbol;
-             setup_coding_system (coding->symbol,
+             p->encode_coding_system
+               = coding_inherit_eol_type (Vlast_coding_system_used, Qnil);
+             setup_coding_system (p->encode_coding_system,
                                   proc_encode_coding_system[p->outfd]);
-             if (proc_encode_coding_system[p->outfd]->eol_type
-                 == CODING_EOL_UNDECIDED)
-               proc_encode_coding_system[p->outfd]->eol_type
-                 = system_eol_type;
            }
        }
-      carryover = nbytes - coding->consumed;
-      if (carryover < 0)
-       abort ();
-
-      if (SCHARS (p->decoding_buf) < carryover)
-       p->decoding_buf = make_uninit_string (carryover);
-      bcopy (chars + coding->consumed, SDATA (p->decoding_buf),
-            carryover);
-      p->decoding_carryover = carryover;
-
+      if (coding->carryover_bytes > 0)
+       {
+         if (SCHARS (p->decoding_buf) < coding->carryover_bytes)
+           p->decoding_buf = make_uninit_string (coding->carryover_bytes);
+         bcopy (coding->carryover, SDATA (p->decoding_buf),
+                coding->carryover_bytes);
+         p->decoding_carryover = coding->carryover_bytes;
+       }
       /* Adjust the multibyteness of TEXT to that of the buffer.  */
       if (NILP (current_buffer->enable_multibyte_characters)
          != ! STRING_MULTIBYTE (text))
@@ -5443,24 +5433,19 @@ send_process (proc, buf, len, object)
     error ("Output file descriptor of %s is closed", SDATA (p->name));
 
   coding = proc_encode_coding_system[p->outfd];
-  Vlast_coding_system_used = coding->symbol;
+  Vlast_coding_system_used = CODING_ID_NAME (coding->id);
 
   if ((STRINGP (object) && STRING_MULTIBYTE (object))
       || (BUFFERP (object)
          && !NILP (XBUFFER (object)->enable_multibyte_characters))
       || EQ (object, Qt))
     {
-      if (!EQ (coding->symbol, p->encode_coding_system))
+      if (!EQ (Vlast_coding_system_used, p->encode_coding_system))
        /* The coding system for encoding was changed to raw-text
           because we sent a unibyte text previously.  Now we are
           sending a multibyte text, thus we must encode it by the
           original coding system specified for the current process.  */
        setup_coding_system (p->encode_coding_system, coding);
-      if (coding->eol_type == CODING_EOL_UNDECIDED)
-       coding->eol_type = system_eol_type;
-      /* src_multibyte should be set to 1 _after_ a call to
-        setup_coding_system, since it resets src_multibyte to
-        zero.  */
       coding->src_multibyte = 1;
     }
   else
@@ -5468,60 +5453,56 @@ send_process (proc, buf, len, object)
       /* For sending a unibyte text, character code conversion should
         not take place but EOL conversion should.  So, setup raw-text
         or one of the subsidiary if we have not yet done it.  */
-      if (coding->type != coding_type_raw_text)
+      if (CODING_REQUIRE_ENCODING (coding))
        {
          if (CODING_REQUIRE_FLUSHING (coding))
            {
              /* But, before changing the coding, we must flush out data.  */
              coding->mode |= CODING_MODE_LAST_BLOCK;
              send_process (proc, "", 0, Qt);
+             coding->mode &= CODING_MODE_LAST_BLOCK;
            }
+         setup_coding_system (raw_text_coding_system
+                              (Vlast_coding_system_used),
+                              coding);
          coding->src_multibyte = 0;
-         setup_raw_text_coding_system (coding);
        }
     }
   coding->dst_multibyte = 0;
 
   if (CODING_REQUIRE_ENCODING (coding))
     {
-      int require = encoding_buffer_size (coding, len);
-      int from_byte = -1, from = -1, to = -1;
-
+      coding->dst_object = Qt;
       if (BUFFERP (object))
        {
-         from_byte = BUF_PTR_BYTE_POS (XBUFFER (object), buf);
-         from = buf_bytepos_to_charpos (XBUFFER (object), from_byte);
-         to = buf_bytepos_to_charpos (XBUFFER (object), from_byte + len);
+         int from_byte, from, to;
+         int save_pt, save_pt_byte;
+         struct buffer *cur = current_buffer;
+
+         set_buffer_internal (XBUFFER (object));
+         save_pt = PT, save_pt_byte = PT_BYTE;
+
+         from_byte = PTR_BYTE_POS (buf);
+         from = BYTE_TO_CHAR (from_byte);
+         to = BYTE_TO_CHAR (from_byte + len);
+         TEMP_SET_PT_BOTH (from, from_byte);
+         encode_coding_object (coding, object, from, from_byte,
+                               to, from_byte + len, Qt);
+         TEMP_SET_PT_BOTH (save_pt, save_pt_byte);
+         set_buffer_internal (cur);
        }
       else if (STRINGP (object))
        {
-         from_byte = buf - SDATA (object);
-         from = string_byte_to_char (object, from_byte);
-         to =  string_byte_to_char (object, from_byte + len);
+         encode_coding_string (coding, object, 1);
        }
-
-      if (coding->composing != COMPOSITION_DISABLED)
+      else
        {
-         if (from_byte >= 0)
-           coding_save_composition (coding, from, to, object);
-         else
-           coding->composing = COMPOSITION_DISABLED;
+         coding->dst_object = make_unibyte_string (buf, len);
+         coding->produced = len;
        }
 
-      if (SBYTES (p->encoding_buf) < require)
-       p->encoding_buf = make_uninit_string (require);
-
-      if (from_byte >= 0)
-       buf = (BUFFERP (object)
-              ? BUF_BYTE_ADDRESS (XBUFFER (object), from_byte)
-              : SDATA (object) + from_byte);
-
-      object = p->encoding_buf;
-      encode_coding (coding, (char *) buf, SDATA (object),
-                    len, SBYTES (object));
-      coding_free_composition_data (coding);
       len = coding->produced;
-      buf = SDATA (object);
+      buf = SDATA (coding->dst_object);
     }
 
 #ifdef VMS
@@ -5715,91 +5696,6 @@ send_process (proc, buf, len, object)
   UNGCPRO;
 }
 
-static Lisp_Object
-send_process_object_unwind (buf)
-     Lisp_Object buf;
-{
-  Lisp_Object tembuf;
-
-  if (XBUFFER (buf) == current_buffer)
-    return Qnil;
-  tembuf = Fcurrent_buffer ();
-  Fset_buffer (buf);
-  Fkill_buffer (tembuf);
-  return Qnil;
-}
-
-/* Send current contents of region between START and END to PROC.
-   If START is a string, send it instead.
-   This function can evaluate Lisp code and can garbage collect.  */
-
-static void
-send_process_object (proc, start, end)
-     Lisp_Object proc, start, end;
-{
-  int count = SPECPDL_INDEX ();
-  Lisp_Object object = STRINGP (start) ? start : Fcurrent_buffer ();
-  struct buffer *given_buffer = current_buffer;
-  unsigned char *buf;
-  int len;
-
-  record_unwind_protect (send_process_object_unwind, Fcurrent_buffer ());
-
-  if (STRINGP (object) ? STRING_MULTIBYTE (object)
-      : ! NILP (XBUFFER (object)->enable_multibyte_characters))
-    {
-      struct Lisp_Process *p = XPROCESS (proc);
-      struct coding_system *coding;
-
-      if (p->raw_status_new)
-       update_status (p);
-      if (! EQ (p->status, Qrun))
-       error ("Process %s not running", SDATA (p->name));
-      if (p->outfd < 0)
-       error ("Output file descriptor of %s is closed", SDATA (p->name));
-
-      coding = proc_encode_coding_system[p->outfd];
-      if (! EQ (coding->symbol, p->encode_coding_system))
-       /* The coding system for encoding was changed to raw-text
-          because we sent a unibyte text previously.  Now we are
-          sending a multibyte text, thus we must encode it by the
-          original coding system specified for the current process.  */
-       setup_coding_system (p->encode_coding_system, coding);
-      if (! NILP (coding->pre_write_conversion))
-       {
-         struct gcpro gcpro1, gcpro2;
-
-         GCPRO2 (proc, object);
-         call2 (coding->pre_write_conversion, start, end);
-         UNGCPRO;
-         if (given_buffer != current_buffer)
-           {
-             start = make_number (BEGV), end = make_number (ZV);
-             object = Fcurrent_buffer ();
-           }
-       }
-    }
-
-  if (BUFFERP (object))
-    {
-      EMACS_INT start_byte;
-
-      if (XINT (start) < GPT && XINT (end) > GPT)
-       move_gap (XINT (end));
-      start_byte = CHAR_TO_BYTE (XINT (start));
-      buf = BYTE_POS_ADDR (start_byte);
-      len = CHAR_TO_BYTE (XINT (end)) - start_byte;
-    }
-  else
-    {
-      buf = SDATA (object);
-      len = SBYTES (object);
-    }
-  send_process (proc, buf, len, object);
-
-  unbind_to (count, Qnil);
-}
-
 DEFUN ("process-send-region", Fprocess_send_region, Sprocess_send_region,
        3, 3, 0,
        doc: /* Send current contents of region as input to PROCESS.
@@ -5813,10 +5709,19 @@ Output from processes can arrive in between bunches.  */)
      Lisp_Object process, start, end;
 {
   Lisp_Object proc;
+  int start1, end1;
 
   proc = get_process (process);
   validate_region (&start, &end);
-  send_process_object (proc, start, end);
+
+  if (XINT (start) < GPT && XINT (end) > GPT)
+    move_gap (XINT (start));
+
+  start1 = CHAR_TO_BYTE (XINT (start));
+  end1 = CHAR_TO_BYTE (XINT (end));
+  send_process (proc, BYTE_POS_ADDR (start1), end1 - start1,
+               Fcurrent_buffer ());
+
   return Qnil;
 }
 
@@ -5834,7 +5739,8 @@ Output from processes can arrive in between bunches.  */)
   Lisp_Object proc;
   CHECK_STRING (string);
   proc = get_process (process);
-  send_process_object (proc, string, Qnil);
+  send_process (proc, SDATA (string),
+               SBYTES (string), string);
   return Qnil;
 }
 \f
@@ -6483,10 +6389,10 @@ kill_buffer_processes (buffer)
 {
   Lisp_Object tail, proc;
 
-  for (tail = Vprocess_alist; GC_CONSP (tail); tail = XCDR (tail))
+  for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail))
     {
       proc = XCDR (XCAR (tail));
-      if (GC_PROCESSP (proc)
+      if (PROCESSP (proc)
          && (NILP (buffer) || EQ (XPROCESS (proc)->buffer, buffer)))
        {
          if (NETCONN_P (proc))
@@ -6581,11 +6487,11 @@ sigchld_handler (signo)
       /* Find the process that signaled us, and record its status.  */
 
       /* The process can have been deleted by Fdelete_process.  */
-      for (tail = deleted_pid_list; GC_CONSP (tail); tail = XCDR (tail))
+      for (tail = deleted_pid_list; CONSP (tail); tail = XCDR (tail))
        {
          Lisp_Object xpid = XCAR (tail);
-         if ((GC_INTEGERP (xpid) && pid == (pid_t) XINT (xpid))
-             || (GC_FLOATP (xpid) && pid == (pid_t) XFLOAT_DATA (xpid)))
+         if ((INTEGERP (xpid) && pid == (pid_t) XINT (xpid))
+             || (FLOATP (xpid) && pid == (pid_t) XFLOAT_DATA (xpid)))
            {
              XSETCAR (tail, Qnil);
              goto sigchld_end_of_loop;
@@ -6594,11 +6500,11 @@ sigchld_handler (signo)
 
       /* Otherwise, if it is asynchronous, it is in Vprocess_alist.  */
       p = 0;
-      for (tail = Vprocess_alist; GC_CONSP (tail); tail = XCDR (tail))
+      for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail))
        {
          proc = XCDR (XCAR (tail));
          p = XPROCESS (proc);
-         if (GC_EQ (p->childp, Qt) && p->pid == pid)
+         if (EQ (p->childp, Qt) && p->pid == pid)
            break;
          p = 0;
        }
@@ -6606,7 +6512,7 @@ sigchld_handler (signo)
       /* Look for an asynchronous process whose pid hasn't been filled
         in yet.  */
       if (p == 0)
-       for (tail = Vprocess_alist; GC_CONSP (tail); tail = XCDR (tail))
+       for (tail = Vprocess_alist; CONSP (tail); tail = XCDR (tail))
          {
            proc = XCDR (XCAR (tail));
            p = XPROCESS (proc);
@@ -6929,7 +6835,7 @@ encode subprocess input.  */)
     error ("Output file descriptor of %s closed", SDATA (p->name));
   Fcheck_coding_system (decoding);
   Fcheck_coding_system (encoding);
-
+  encoding = coding_inherit_eol_type (encoding, Qnil);
   p->decode_coding_system = decoding;
   p->encode_coding_system = encoding;
   setup_process_coding_systems (process);
@@ -7348,7 +7254,7 @@ The variable takes effect when `start-process' is called.  */);
 
 #include "lisp.h"
 #include "systime.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "termopts.h"
 #include "sysselect.h"
index 125a3388f19f03596d9a1b81374fffc8c37f80a6..a0d6b945cf1afdfd2c698bbafe74a2f439366841 100644 (file)
 # define SYNTAX_ENTRY_VIA_PROPERTY
 
 # include "syntax.h"
-# include "charset.h"
+# include "character.h"
 # include "category.h"
 
 # ifdef malloc
 # define POS_AS_IN_BUFFER(p) ((p) + (NILP (re_match_object) || BUFFERP (re_match_object)))
 
 # define RE_MULTIBYTE_P(bufp) ((bufp)->multibyte)
-# define RE_STRING_CHAR(p, s) \
+# define RE_TARGET_MULTIBYTE_P(bufp) ((bufp)->target_multibyte)
+# define RE_STRING_CHAR(p, s, multibyte) \
   (multibyte ? (STRING_CHAR (p, s)) : (*(p)))
-# define RE_STRING_CHAR_AND_LENGTH(p, s, len) \
+# define RE_STRING_CHAR_AND_LENGTH(p, s, len, multibyte) \
   (multibyte ? (STRING_CHAR_AND_LENGTH (p, s, len)) : ((len) = 1, *(p)))
 
-/* Set C a (possibly multibyte) character before P.  P points into a
-   string which is the virtual concatenation of STR1 (which ends at
-   END1) or STR2 (which ends at END2).  */
-# define GET_CHAR_BEFORE_2(c, p, str1, end1, str2, end2)               \
-  do {                                                                 \
-    if (multibyte)                                                     \
-       {                                                               \
-        re_char *dtemp = (p) == (str2) ? (end1) : (p);                 \
-        re_char *dlimit = ((p) > (str2) && (p) <= (end2)) ? (str2) : (str1); \
-        re_char *d0 = dtemp;                                           \
-        PREV_CHAR_BOUNDARY (d0, dlimit);                               \
-        c = STRING_CHAR (d0, dtemp - d0);                              \
-       }                                                               \
-     else                                                              \
-       (c = ((p) == (str2) ? (end1) : (p))[-1]);                       \
+# define RE_CHAR_TO_MULTIBYTE(c) unibyte_to_multibyte_table[(c)]
+
+# define RE_CHAR_TO_UNIBYTE(c)                 \
+  (ASCII_CHAR_P (c) ? (c)                      \
+   : CHAR_BYTE8_P (c) ? CHAR_TO_BYTE8 (c)      \
+   : multibyte_char_to_unibyte_safe (c))
+
+/* Set C a (possibly converted to multibyte) character before P.  P
+   points into a string which is the virtual concatenation of STR1
+   (which ends at END1) or STR2 (which ends at END2).  */
+# define GET_CHAR_BEFORE_2(c, p, str1, end1, str2, end2)                    \
+  do {                                                                      \
+    if (target_multibyte)                                                   \
+      {                                                                             \
+       re_char *dtemp = (p) == (str2) ? (end1) : (p);                       \
+       re_char *dlimit = ((p) > (str2) && (p) <= (end2)) ? (str2) : (str1); \
+       while (dtemp-- > dlimit && !CHAR_HEAD_P (*dtemp));                   \
+       c = STRING_CHAR (dtemp, (p) - dtemp);                                \
+      }                                                                             \
+    else                                                                    \
+      {                                                                             \
+       (c = ((p) == (str2) ? (end1) : (p))[-1]);                            \
+       (c) = RE_CHAR_TO_MULTIBYTE (c);                                      \
+      }                                                                             \
   } while (0)
 
+/* Set C a (possibly converted to multibyte) character at P, and set
+   LEN to the byte length of that character.  */
+# define GET_CHAR_AFTER(c, p, len)             \
+  do {                                         \
+    if (target_multibyte)                      \
+      (c) = STRING_CHAR_AND_LENGTH (p, 0, len);        \
+    else                                       \
+      {                                                \
+       (c) = *p;                               \
+       len = 1;                                \
+       (c) = RE_CHAR_TO_MULTIBYTE (c);         \
+      }                                                \
+   } while (0)
 
 #else  /* not emacs */
 
@@ -278,6 +301,7 @@ enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 };
 # define CHARSET_LEADING_CODE_BASE(c) 0
 # define MAX_MULTIBYTE_LENGTH 1
 # define RE_MULTIBYTE_P(x) 0
+# define RE_TARGET_MULTIBYTE_P(x) 0
 # define WORD_BOUNDARY_P(c1, c2) (0)
 # define CHAR_HEAD_P(p) (1)
 # define SINGLE_BYTE_CHAR_P(c) (1)
@@ -285,13 +309,21 @@ enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 };
 # define MULTIBYTE_FORM_LENGTH(p, s) (1)
 # define PREV_CHAR_BOUNDARY(p, limit) ((p)--)
 # define STRING_CHAR(p, s) (*(p))
-# define RE_STRING_CHAR STRING_CHAR
+# define RE_STRING_CHAR(p, s, multibyte) STRING_CHAR ((p), (s))
 # define CHAR_STRING(c, s) (*(s) = (c), 1)
 # define STRING_CHAR_AND_LENGTH(p, s, actual_len) ((actual_len) = 1, *(p))
-# define RE_STRING_CHAR_AND_LENGTH STRING_CHAR_AND_LENGTH
+# define RE_STRING_CHAR_AND_LENGTH(p, s, len, multibyte) STRING_CHAR_AND_LENGTH ((p), (s), (len))
+# define RE_CHAR_TO_MULTIBYTE(c) (c)
+# define RE_CHAR_TO_UNIBYTE(c) (c)
 # define GET_CHAR_BEFORE_2(c, p, str1, end1, str2, end2) \
   (c = ((p) == (str2) ? *((end1) - 1) : *((p) - 1)))
+# define GET_CHAR_AFTER(c, p, len)     \
+  (c = *p, len = 1)
 # define MAKE_CHAR(charset, c1, c2) (c1)
+# define BYTE8_TO_CHAR(c) (c)
+# define CHAR_BYTE8_P(c) (0)
+# define CHAR_LEADING_CODE(c) (c)
+
 #endif /* not emacs */
 
 #ifndef RE_TRANSLATE
@@ -497,7 +529,7 @@ init_syntax_once ()
 #  ifdef __GNUC__
 #   define alloca __builtin_alloca
 #  else /* not __GNUC__ */
-#   if HAVE_ALLOCA_H
+#   ifdef HAVE_ALLOCA_H
 #    include <alloca.h>
 #   endif /* HAVE_ALLOCA_H */
 #  endif /* not __GNUC__ */
@@ -1731,7 +1763,7 @@ static int analyse_first _RE_ARGS ((re_char *p, re_char *pend,
   do {                                                                 \
     int len;                                                           \
     if (p == pend) return REG_EEND;                                    \
-    c = RE_STRING_CHAR_AND_LENGTH (p, pend - p, len);                  \
+    c = RE_STRING_CHAR_AND_LENGTH (p, pend - p, len, multibyte);       \
     p += len;                                                          \
   } while (0)
 
@@ -1942,10 +1974,10 @@ struct range_table_work_area
 
 #define EXTEND_RANGE_TABLE(work_area, n)                               \
   do {                                                                 \
-    if (((work_area)->used + (n)) * sizeof (int) > (work_area)->allocated) \
+    if (((work_area).used + (n)) * sizeof (int) > (work_area).allocated) \
       {                                                                        \
-        extend_range_table_work_area (work_area);                      \
-        if ((work_area)->table == 0)                                   \
+        extend_range_table_work_area (&work_area);                     \
+        if ((work_area).table == 0)                                    \
           return (REG_ESPACE);                                         \
       }                                                                        \
   } while (0)
@@ -1962,15 +1994,12 @@ struct range_table_work_area
 #define BIT_UPPER      0x10
 #define BIT_MULTIBYTE  0x20
 
-/* Set a range START..END to WORK_AREA.
-   The range is passed through TRANSLATE, so START and END
-   should be untranslated.  */
-#define SET_RANGE_TABLE_WORK_AREA(work_area, start, end)               \
+/* Set a range (RANGE_START, RANGE_END) to WORK_AREA.  */
+#define SET_RANGE_TABLE_WORK_AREA(work_area, range_start, range_end)   \
   do {                                                                 \
-    int tem;                                                           \
-    tem = set_image_of_range (&work_area, start, end, translate);      \
-    if (tem > 0)                                                       \
-      FREE_STACK_RETURN (tem);                                         \
+    EXTEND_RANGE_TABLE ((work_area), 2);                               \
+    (work_area).table[(work_area).used++] = (range_start);             \
+    (work_area).table[(work_area).used++] = (range_end);               \
   } while (0)
 
 /* Free allocated memory for WORK_AREA.  */
@@ -1990,6 +2019,113 @@ struct range_table_work_area
 #define SET_LIST_BIT(c) (b[((c)) / BYTEWIDTH] |= 1 << ((c) % BYTEWIDTH))
 
 
+#ifdef emacs
+
+/* Store characters in the range FROM to TO in the bitmap at B (for
+   ASCII and unibyte characters) and WORK_AREA (for multibyte
+   characters) while translating them and paying attention to the
+   continuity of translated characters.
+
+   Implementation note: It is better to implement these fairly big
+   macros by a function, but it's not that easy because macros called
+   in this macro assume various local variables already declared.  */
+
+/* Both FROM and TO are ASCII characters.  */
+
+#define SETUP_ASCII_RANGE(work_area, FROM, TO)                 \
+  do {                                                         \
+    int C0, C1;                                                        \
+                                                               \
+    for (C0 = (FROM); C0 <= (TO); C0++)                                \
+      {                                                                \
+       C1 = TRANSLATE (C0);                                    \
+       if (! ASCII_CHAR_P (C1))                                \
+         {                                                     \
+           SET_RANGE_TABLE_WORK_AREA ((work_area), C1, C1);    \
+           if ((C1 = RE_CHAR_TO_UNIBYTE (C1)) < 0)             \
+             C1 = C0;                                          \
+         }                                                     \
+       SET_LIST_BIT (C1);                                      \
+      }                                                                \
+  } while (0)
+
+
+/* Both FROM and TO are unibyte characters (0x80..0xFF).  */
+
+#define SETUP_UNIBYTE_RANGE(work_area, FROM, TO)                              \
+  do {                                                                        \
+    int C0, C1, C2, I;                                                        \
+    int USED = RANGE_TABLE_WORK_USED (work_area);                             \
+                                                                              \
+    for (C0 = (FROM); C0 <= (TO); C0++)                                               \
+      {                                                                               \
+       C1 = RE_CHAR_TO_MULTIBYTE (C0);                                        \
+       if (CHAR_BYTE8_P (C1))                                                 \
+         SET_LIST_BIT (C0);                                                   \
+       else                                                                   \
+         {                                                                    \
+           C2 = TRANSLATE (C1);                                               \
+           if (C2 == C1                                                       \
+               || (C1 = RE_CHAR_TO_UNIBYTE (C2)) < 0)                         \
+             C1 = C0;                                                         \
+           SET_LIST_BIT (C1);                                                 \
+           for (I = RANGE_TABLE_WORK_USED (work_area) - 2; I >= USED; I -= 2) \
+             {                                                                \
+               int from = RANGE_TABLE_WORK_ELT (work_area, I);                \
+               int to = RANGE_TABLE_WORK_ELT (work_area, I + 1);              \
+                                                                              \
+               if (C2 >= from - 1 && C2 <= to + 1)                            \
+                 {                                                            \
+                   if (C2 == from - 1)                                        \
+                     RANGE_TABLE_WORK_ELT (work_area, I)--;                   \
+                   else if (C2 == to + 1)                                     \
+                     RANGE_TABLE_WORK_ELT (work_area, I + 1)++;               \
+                   break;                                                     \
+                 }                                                            \
+             }                                                                \
+           if (I < USED)                                                      \
+             SET_RANGE_TABLE_WORK_AREA ((work_area), C2, C2);                 \
+         }                                                                    \
+      }                                                                               \
+  } while (0)
+
+
+/* Both FROM and TO are mulitbyte characters.  */
+
+#define SETUP_MULTIBYTE_RANGE(work_area, FROM, TO)                        \
+  do {                                                                    \
+    int C0, C1, C2, I, USED = RANGE_TABLE_WORK_USED (work_area);          \
+                                                                          \
+    SET_RANGE_TABLE_WORK_AREA ((work_area), (FROM), (TO));                \
+    for (C0 = (FROM); C0 <= (TO); C0++)                                           \
+      {                                                                           \
+       C1 = TRANSLATE (C0);                                               \
+       if ((C2 = RE_CHAR_TO_UNIBYTE (C1)) >= 0                            \
+           || (C1 != C0 && (C2 = RE_CHAR_TO_UNIBYTE (C0)) >= 0))          \
+         SET_LIST_BIT (C2);                                               \
+       if (C1 >= (FROM) && C1 <= (TO))                                    \
+         continue;                                                        \
+       for (I = RANGE_TABLE_WORK_USED (work_area) - 2; I >= USED; I -= 2) \
+         {                                                                \
+           int from = RANGE_TABLE_WORK_ELT (work_area, I);                \
+           int to = RANGE_TABLE_WORK_ELT (work_area, I + 1);              \
+                                                                          \
+           if (C1 >= from - 1 && C1 <= to + 1)                            \
+             {                                                            \
+               if (C1 == from - 1)                                        \
+                 RANGE_TABLE_WORK_ELT (work_area, I)--;                   \
+               else if (C1 == to + 1)                                     \
+                 RANGE_TABLE_WORK_ELT (work_area, I + 1)++;               \
+               break;                                                     \
+             }                                                            \
+         }                                                                \
+       if (I < USED)                                                      \
+         SET_RANGE_TABLE_WORK_AREA ((work_area), C1, C1);                 \
+      }                                                                           \
+  } while (0)
+
+#endif /* emacs */
+
 /* Get the next unsigned number in the uncompiled pattern.  */
 #define GET_UNSIGNED_NUMBER(num)                                       \
   do {                                                                 \
@@ -2113,6 +2249,7 @@ extend_range_table_work_area (work_area)
       = (int *) malloc (work_area->allocated);
 }
 
+#if 0
 #ifdef emacs
 
 /* Carefully find the ranges of codes that are equivalent
@@ -2345,6 +2482,7 @@ set_image_of_range (work_area, start, end, translate)
 
   return -1;
 }
+#endif /* 0 */
 \f
 #ifndef MATCH_MAY_ALLOCATE
 
@@ -2483,6 +2621,9 @@ regex_compile (pattern, size, syntax, bufp)
   /* If the object matched can contain multibyte characters.  */
   const boolean multibyte = RE_MULTIBYTE_P (bufp);
 
+  /* If a target of matching can contain multibyte characters.  */
+  const boolean target_multibyte = RE_TARGET_MULTIBYTE_P (bufp);
+
   /* Nonzero if we have pushed down into a subpattern.  */
   int in_subpattern = 0;
 
@@ -2835,6 +2976,7 @@ regex_compile (pattern, size, syntax, bufp)
              {
                boolean escaped_char = false;
                const unsigned char *p2 = p;
+               re_wchar_t ch, c2;
 
                if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
 
@@ -2861,10 +3003,6 @@ regex_compile (pattern, size, syntax, bufp)
                      break;
                  }
 
-               /* What should we do for the character which is
-                  greater than 0x7F, but not BASE_LEADING_CODE_P?
-                  XXX */
-
                /* See if we're at the beginning of a possible character
                   class.  */
 
@@ -2901,8 +3039,8 @@ regex_compile (pattern, size, syntax, bufp)
                       them).  */
                    if (c == ':' && *p == ']')
                      {
-                       re_wchar_t ch;
                        re_wctype_t cc;
+                       int limit;
 
                        cc = re_wctype (str);
 
@@ -2915,6 +3053,15 @@ regex_compile (pattern, size, syntax, bufp)
 
                         if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
 
+#ifndef emacs
+                       for (ch = 0; ch < (1 << BYTEWIDTH); ++ch)
+                         if (re_iswctype (btowc (ch), cc))
+                           {
+                             c = TRANSLATE (ch);
+                             if (c < (1 << BYTEWIDTH))
+                               SET_LIST_BIT (c);
+                           }
+#else  /* emacs */
                        /* Most character classes in a multibyte match
                           just set a flag.  Exceptions are is_blank,
                           is_digit, is_cntrl, and is_xdigit, since
@@ -2922,18 +3069,25 @@ regex_compile (pattern, size, syntax, bufp)
                           don't need to handle them for multibyte.
                           They are distinguished by a negative wctype.  */
 
-                       if (multibyte)
-                         SET_RANGE_TABLE_WORK_AREA_BIT (range_table_work,
-                                                        re_wctype_to_bit (cc));
-
-                        for (ch = 0; ch < 1 << BYTEWIDTH; ++ch)
+                       for (ch = 0; ch < 256; ++ch)
                          {
-                           int translated = TRANSLATE (ch);
-                           if (translated < (1 << BYTEWIDTH)
-                               && re_iswctype (btowc (ch), cc))
-                             SET_LIST_BIT (translated);
+                           c = RE_CHAR_TO_MULTIBYTE (ch);
+                           if (! CHAR_BYTE8_P (c)
+                               && re_iswctype (c, cc))
+                             {
+                               SET_LIST_BIT (ch);
+                               c1 = TRANSLATE (c);
+                               if (c1 == c)
+                                 continue;
+                               if (ASCII_CHAR_P (c1))
+                                 SET_LIST_BIT (c1);
+                               else if ((c1 = RE_CHAR_TO_UNIBYTE (c1)) >= 0)
+                                 SET_LIST_BIT (c1);
+                             }
                          }
-
+                       SET_RANGE_TABLE_WORK_AREA_BIT
+                         (range_table_work, re_wctype_to_bit (cc));
+#endif /* emacs */
                        /* In most cases the matching rule for char classes
                           only uses the syntax table for multibyte chars,
                           so that the content of the syntax-table it is not
@@ -2966,64 +3120,63 @@ regex_compile (pattern, size, syntax, bufp)
 
                    /* Fetch the character which ends the range. */
                    PATFETCH (c1);
-
-                   if (SINGLE_BYTE_CHAR_P (c))
-                     {
-                       if (! SINGLE_BYTE_CHAR_P (c1))
-                         {
-                           /* Handle a range starting with a
-                              character of less than 256, and ending
-                              with a character of not less than 256.
-                              Split that into two ranges, the low one
-                              ending at 0377, and the high one
-                              starting at the smallest character in
-                              the charset of C1 and ending at C1.  */
-                           int charset = CHAR_CHARSET (c1);
-                           re_wchar_t c2 = MAKE_CHAR (charset, 0, 0);
-
-                           SET_RANGE_TABLE_WORK_AREA (range_table_work,
-                                                      c2, c1);
-                           c1 = 0377;
-                         }
-                     }
-                   else if (!SAME_CHARSET_P (c, c1))
-                     FREE_STACK_RETURN (REG_ERANGEX);
+#ifdef emacs
+                   if (CHAR_BYTE8_P (c1)
+                       && ! ASCII_CHAR_P (c) && ! CHAR_BYTE8_P (c))
+                     /* Treat the range from a multibyte character to
+                        raw-byte character as empty.  */
+                     c = c1 + 1;
+#endif /* emacs */
                  }
                else
                  /* Range from C to C. */
                  c1 = c;
 
-               /* Set the range ... */
-               if (SINGLE_BYTE_CHAR_P (c))
-                 /* ... into bitmap.  */
+               if (c > c1)
                  {
-                   re_wchar_t this_char;
-                   re_wchar_t range_start = c, range_end = c1;
-
-                   /* If the start is after the end, the range is empty.  */
-                   if (range_start > range_end)
+                   if (syntax & RE_NO_EMPTY_RANGES)
+                     FREE_STACK_RETURN (REG_ERANGEX);
+                   /* Else, repeat the loop.  */
+                 }
+               else
+                 {
+#ifndef emacs
+                   /* Set the range into bitmap */
+                   for (; c <= c1; c++)
                      {
-                       if (syntax & RE_NO_EMPTY_RANGES)
-                         FREE_STACK_RETURN (REG_ERANGE);
-                       /* Else, repeat the loop.  */
+                       ch = TRANSLATE (c);
+                       if (ch < (1 << BYTEWIDTH))
+                         SET_LIST_BIT (ch);
                      }
-                   else
+#else  /* emacs */
+                   if (c < 128)
+                     {
+                       ch = MIN (127, c1);
+                       SETUP_ASCII_RANGE (range_table_work, c, ch);
+                       c = ch + 1;
+                       if (CHAR_BYTE8_P (c1))
+                         c = BYTE8_TO_CHAR (128);
+                     }
+                   if (c <= c1)
                      {
-                       for (this_char = range_start; this_char <= range_end;
-                            this_char++)
+                       if (CHAR_BYTE8_P (c))
+                         {
+                           c = CHAR_TO_BYTE8 (c);
+                           c1 = CHAR_TO_BYTE8 (c1);
+                           for (; c <= c1; c++)
+                             SET_LIST_BIT (c);
+                         }
+                       else if (multibyte)
+                         {
+                           SETUP_MULTIBYTE_RANGE (range_table_work, c, c1);
+                         }
+                       else
                          {
-                           int translated = TRANSLATE (this_char);
-                           if (translated < (1 << BYTEWIDTH))
-                             SET_LIST_BIT (translated);
-                           else
-                             SET_RANGE_TABLE_WORK_AREA
-                               (range_table_work, translated, translated);
+                           SETUP_UNIBYTE_RANGE (range_table_work, c, c1);
                          }
                      }
+#endif /* emacs */
                  }
-               else
-                 /* ... into range table.  */
-                 SET_RANGE_TABLE_WORK_AREA (range_table_work, c, c1);
              }
 
            /* Discard any (non)matching list bytes that are all 0 at the
@@ -3634,12 +3787,25 @@ regex_compile (pattern, size, syntax, bufp)
          {
            int len;
 
-           c = TRANSLATE (c);
            if (multibyte)
-             len = CHAR_STRING (c, b);
+             {
+               c = TRANSLATE (c);
+               len = CHAR_STRING (c, b);
+               b += len;
+             }
            else
-             *b = c, len = 1;
-           b += len;
+             {
+               c1 = RE_CHAR_TO_MULTIBYTE (c);
+               if (! CHAR_BYTE8_P (c1))
+                 {
+                   re_wchar_t c2 = TRANSLATE (c1);
+
+                   if (c1 != c2 && (c1 = RE_CHAR_TO_UNIBYTE (c2)) >= 0)
+                     c = c1;
+                 }                   
+               *b++ = c;
+               len = 1;
+             }
            (*pending_exact) += len;
          }
 
@@ -3909,14 +4075,21 @@ analyse_first (p, pend, fastmap, multibyte)
        case exactn:
          if (fastmap)
            {
-             int c = RE_STRING_CHAR (p + 1, pend - p);
-             /* When fast-scanning, the fastmap can be indexed either with
-                a char (smaller than 256) or with the first byte of
-                a char's byte sequence.  So we have to conservatively add
-                both to the table.  */
-             if (SINGLE_BYTE_CHAR_P (c))
-               fastmap[c] = 1;
+             /* If multibyte is nonzero, the first byte of each
+                character is an ASCII or a leading code.  Otherwise,
+                each byte is a character.  Thus, this works in both
+                cases. */
              fastmap[p[1]] = 1;
+             if (! multibyte)
+               {
+                 /* For the case of matching this unibyte regex
+                    against multibyte, we must set a leading code of
+                    the corresponding multibyte character.  */
+                 int c = RE_CHAR_TO_MULTIBYTE (p[1]);
+
+                 if (! CHAR_BYTE8_P (c))
+                   fastmap[CHAR_LEADING_CODE (c)] = 1;
+               }
            }
          break;
 
@@ -3929,18 +4102,14 @@ analyse_first (p, pend, fastmap, multibyte)
 
 
        case charset_not:
-         /* Chars beyond end of bitmap are possible matches.
-            All the single-byte codes can occur in multibyte buffers.
-            So any that are not listed in the charset
-            are possible matches, even in multibyte buffers.  */
          if (!fastmap) break;
-         /* We don't need to mark LEADING_CODE_8_BIT_CONTROL specially
-            because it will automatically be set when needed by virtue of
-            being larger than the highest char of its charset (0xbf) but
-            smaller than (1<<BYTEWIDTH).  */
-         for (j = CHARSET_BITMAP_SIZE (&p[-1]) * BYTEWIDTH;
-              j < (1 << BYTEWIDTH); j++)
-           fastmap[j] = 1;
+         {
+           /* Chars beyond end of bitmap are possible matches.  */
+           for (j = CHARSET_BITMAP_SIZE (&p[-1]) * BYTEWIDTH;
+                j < (1 << BYTEWIDTH); j++)
+             fastmap[j] = 1;
+         }
+
          /* Fallthrough */
        case charset:
          if (!fastmap) break;
@@ -3948,28 +4117,24 @@ analyse_first (p, pend, fastmap, multibyte)
          for (j = CHARSET_BITMAP_SIZE (&p[-1]) * BYTEWIDTH - 1, p++;
               j >= 0; j--)
            if (!!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))) ^ not)
-             {
-               fastmap[j] = 1;
-#ifdef emacs
-               if (j >= 0x80 && j < 0xa0)
-                 fastmap[LEADING_CODE_8_BIT_CONTROL] = 1;
-#endif
-             }
+             fastmap[j] = 1;
 
-         if ((not && multibyte)
-             /* Any character set can possibly contain a character
+#ifdef emacs
+         if (/* Any leading code can possibly start a character
                 which doesn't match the specified set of characters.  */
-             || (CHARSET_RANGE_TABLE_EXISTS_P (&p[-2])
-                 && CHARSET_RANGE_TABLE_BITS (&p[-2]) != 0))
-           /* If we can match a character class, we can match
-              any character set.  */
+             not
+             || 
+             /* If we can match a character class, we can match any
+                multibyte characters.  */
+             (CHARSET_RANGE_TABLE_EXISTS_P (&p[-2])
+              && CHARSET_RANGE_TABLE_BITS (&p[-2]) != 0))
+
            {
-           set_fastmap_for_multibyte_characters:
              if (match_any_multibyte_characters == false)
                {
-                 for (j = 0x80; j < 0xA0; j++) /* XXX */
-                   if (BASE_LEADING_CODE_P (j))
-                     fastmap[j] = 1;
+                 for (j = MIN_MULTIBYTE_LEADING_CODE;
+                      j <= MAX_MULTIBYTE_LEADING_CODE; j++)
+                   fastmap[j] = 1;
                  match_any_multibyte_characters = true;
                }
            }
@@ -3977,9 +4142,10 @@ analyse_first (p, pend, fastmap, multibyte)
          else if (!not && CHARSET_RANGE_TABLE_EXISTS_P (&p[-2])
                   && match_any_multibyte_characters == false)
            {
-             /* Set fastmap[I] 1 where I is a base leading code of each
-                multibyte character in the range table. */
+             /* Set fastmap[I] to 1 where I is a leading code of each
+                multibyte characer in the range table. */
              int c, count;
+             unsigned char lc1, lc2;
 
              /* Make P points the range table.  `+ 2' is to skip flag
                 bits for a character class.  */
@@ -3987,14 +4153,19 @@ analyse_first (p, pend, fastmap, multibyte)
 
              /* Extract the number of ranges in range table into COUNT.  */
              EXTRACT_NUMBER_AND_INCR (count, p);
-             for (; count > 0; count--, p += 2 * 3) /* XXX */
+             for (; count > 0; count--, p += 3)
                {
-                 /* Extract the start of each range.  */
+                 /* Extract the start and end of each range.  */
+                 EXTRACT_CHARACTER (c, p);
+                 lc1 = CHAR_LEADING_CODE (c);
+                 p += 3;
                  EXTRACT_CHARACTER (c, p);
-                 j = CHAR_CHARSET (c);
-                 fastmap[CHARSET_LEADING_CODE_BASE (j)] = 1;
+                 lc2 = CHAR_LEADING_CODE (c);
+                 for (j = lc1; j <= lc2; j++)
+                   fastmap[j] = 1;
                }
            }
+#endif
          break;
 
        case syntaxspec:
@@ -4017,14 +4188,19 @@ analyse_first (p, pend, fastmap, multibyte)
          if (!fastmap) break;
          not = (re_opcode_t)p[-1] == notcategoryspec;
          k = *p++;
-         for (j = 0; j < (1 << BYTEWIDTH); j++)
+         for (j = (1 << BYTEWIDTH); j >= 0; j--)
            if ((CHAR_HAS_CATEGORY (j, k)) ^ not)
              fastmap[j] = 1;
 
-         if (multibyte)
-           /* Any character set can possibly contain a character
-              whose category is K (or not).  */
-           goto set_fastmap_for_multibyte_characters;
+         /* Any leading code can possibly start a character which
+            has or doesn't has the specified category.  */
+         if (match_any_multibyte_characters == false)
+           {
+             for (j = MIN_MULTIBYTE_LEADING_CODE;
+                  j <= MAX_MULTIBYTE_LEADING_CODE; j++)
+               fastmap[j] = 1;
+             match_any_multibyte_characters = true;
+           }
          break;
 
       /* All cases after this match the empty string.  These end with
@@ -4274,9 +4450,8 @@ re_search_2 (bufp, str1, size1, str2, size2, startpos, range, regs, stop)
   int total_size = size1 + size2;
   int endpos = startpos + range;
   boolean anchored_start;
-
-  /* Nonzero if we have to concern multibyte character.  */
-  const boolean multibyte = RE_MULTIBYTE_P (bufp);
+  /* Nonzero if we are searching multibyte string.  */
+  const boolean multibyte = RE_TARGET_MULTIBYTE_P (bufp);
 
   /* Check for out-of-range STARTPOS.  */
   if (startpos < 0 || startpos > total_size)
@@ -4372,59 +4547,51 @@ re_search_2 (bufp, str1, size1, str2, size2, startpos, range, regs, stop)
 
                        buf_ch = STRING_CHAR_AND_LENGTH (d, range - lim,
                                                         buf_charlen);
-
                        buf_ch = RE_TRANSLATE (translate, buf_ch);
-                       if (buf_ch >= 0400
-                           || fastmap[buf_ch])
+                       if (fastmap[CHAR_LEADING_CODE (buf_ch)])
                          break;
 
                        range -= buf_charlen;
                        d += buf_charlen;
                      }
                  else
-                   {
-                     /* Convert *d to integer to shut up GCC's
-                        whining about comparison that is always
-                        true.  */
-                     int di = *d;
-
-                     while (range > lim
-                            && !fastmap[RE_TRANSLATE (translate, di)])
-                       {
-                         di = *(++d);
-                         range--;
-                       }
-                   }
-               }
-             else
-               do
-                 {
-                   re_char *d_start = d;
-                   while (range > lim && !fastmap[*d])
+                   while (range > lim)
                      {
+                       register re_wchar_t ch, translated;
+
+                       buf_ch = *d;
+                       ch = RE_CHAR_TO_MULTIBYTE (buf_ch);
+                       translated = RE_TRANSLATE (translate, ch);
+                       if (translated != ch
+                           && (ch = RE_CHAR_TO_UNIBYTE (translated)) >= 0)
+                         buf_ch = ch;
+                       if (fastmap[buf_ch])
+                         break;
                        d++;
                        range--;
                      }
-#ifdef emacs
-                   if (multibyte && range > lim)
+               }
+             else
+               {
+                 if (multibyte)
+                   while (range > lim)
                      {
-                       /* Check that we are at the beginning of a char.  */
-                       int at_boundary;
-                       AT_CHAR_BOUNDARY_P (at_boundary, d, d_start);
-                       if (at_boundary)
+                       int buf_charlen;
+
+                       buf_ch = STRING_CHAR_AND_LENGTH (d, range - lim,
+                                                        buf_charlen);
+                       if (fastmap[CHAR_LEADING_CODE (buf_ch)])
                          break;
-                       else
-                         { /* We have matched an internal byte of a char
-                              rather than the leading byte, so it's a false
-                              positive: we should keep scanning.  */
-                           d++; range--;
-                         }
+                       range -= buf_charlen;
+                       d += buf_charlen;
                      }
-                   else
-#endif
-                     break;
-                 } while (1);
-
+                 else
+                   while (range > lim && !fastmap[*d])
+                     {
+                       d++;
+                       range--;
+                     }
+               }
              startpos += irange - range;
            }
          else                          /* Searching backwards.  */
@@ -4432,12 +4599,26 @@ re_search_2 (bufp, str1, size1, str2, size2, startpos, range, regs, stop)
              int room = (startpos >= size1
                          ? size2 + size1 - startpos
                          : size1 - startpos);
-             buf_ch = RE_STRING_CHAR (d, room);
-             buf_ch = TRANSLATE (buf_ch);
-
-             if (! (buf_ch >= 0400
-                    || fastmap[buf_ch]))
-               goto advance;
+             if (multibyte)
+               {
+                 buf_ch = STRING_CHAR (d, room);
+                 buf_ch = TRANSLATE (buf_ch);
+                 if (! fastmap[CHAR_LEADING_CODE (buf_ch)])
+                   goto advance;
+               }
+             else
+               {
+                 register re_wchar_t ch, translated;
+
+                 buf_ch = *d;
+                 ch = RE_CHAR_TO_MULTIBYTE (buf_ch);
+                 translated = TRANSLATE (ch);
+                 if (translated != ch
+                     && (ch = RE_CHAR_TO_UNIBYTE (translated)) >= 0)
+                   buf_ch = ch;
+                 if (! fastmap[TRANSLATE (buf_ch)])
+                   goto advance;
+               }
            }
        }
 
@@ -4711,11 +4892,11 @@ mutually_exclusive_p (bufp, p1, p2)
       {
        register re_wchar_t c
          = (re_opcode_t) *p2 == endline ? '\n'
-         : RE_STRING_CHAR (p2 + 2, pend - p2 - 2);
+         : RE_STRING_CHAR (p2 + 2, pend - p2 - 2, multibyte);
 
        if ((re_opcode_t) *p1 == exactn)
          {
-           if (c != RE_STRING_CHAR (p1 + 2, pend - p1 - 2))
+           if (c != RE_STRING_CHAR (p1 + 2, pend - p1 - 2, multibyte))
              {
                DEBUG_PRINT3 ("  '%c' != '%c' => fast loop.\n", c, p1[2]);
                return 1;
@@ -4729,7 +4910,7 @@ mutually_exclusive_p (bufp, p1, p2)
 
            /* Test if C is listed in charset (or charset_not)
               at `p1'.  */
-           if (SINGLE_BYTE_CHAR_P (c))
+           if (! multibyte || IS_REAL_ASCII (c))
              {
                if (c < CHARSET_BITMAP_SIZE (p1) * BYTEWIDTH
                    && p1[2 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
@@ -4772,9 +4953,10 @@ mutually_exclusive_p (bufp, p1, p2)
             size of bitmap table of P1 is extracted by
             using macro `CHARSET_BITMAP_SIZE'.
 
-            Since we know that all the character listed in
-            P2 is ASCII, it is enough to test only bitmap
-            table of P1.  */
+            In a multibyte case, we know that all the character
+            listed in P2 is ASCII.  In a unibyte case, P1 has only a
+            bitmap table.  So, in both cases, it is enough to test
+            only the bitmap table of P1.  */
 
          if ((re_opcode_t) *p1 == charset)
            {
@@ -4932,6 +5114,7 @@ re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
 }
 WEAK_ALIAS (__re_match_2, re_match_2)
 
+
 /* This is a separate function so that we can force an alloca cleanup
    afterwards.  */
 static int
@@ -4968,12 +5151,15 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
   re_char *p = bufp->buffer;
   re_char *pend = p + bufp->used;
 
-  /* We use this to map every character in the string.  */
+  /* We use this to map every character in the string. */
   RE_TRANSLATE_TYPE translate = bufp->translate;
 
-  /* Nonzero if we have to concern multibyte character.  */
+  /* Nonzero if BUFP is setup from a multibyte regex.  */
   const boolean multibyte = RE_MULTIBYTE_P (bufp);
 
+  /* Nonzero if STRING1/STRING2 are multibyte.  */
+  const boolean target_multibyte = RE_TARGET_MULTIBYTE_P (bufp);
+
   /* Failure point stack.  Each place that can handle a failure further
      down the line pushes a failure point on this stack.  It consists of
      regstart, and regend for all registers corresponding to
@@ -5325,63 +5511,99 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
          /* Remember the start point to rollback upon failure.  */
          dfail = d;
 
+#ifndef emacs
          /* This is written out as an if-else so we don't waste time
             testing `translate' inside the loop.  */
          if (RE_TRANSLATE_P (translate))
-           {
-             if (multibyte)
-               do
+           do
+             {
+               PREFETCH ();
+               if (RE_TRANSLATE (translate, *d) != *p++)
                  {
-                   int pat_charlen, buf_charlen;
-                   unsigned int pat_ch, buf_ch;
+                   d = dfail;
+                   goto fail;
+                 }
+               d++;
+             }
+           while (--mcnt);
+         else
+           do
+             {
+               PREFETCH ();
+               if (*d++ != *p++)
+                 {
+                   d = dfail;
+                   goto fail;
+                 }
+             }
+           while (--mcnt);
+#else  /* emacs */
+         /* The cost of testing `translate' is comparatively small.  */
+         if (target_multibyte)
+           do
+             {
+               int pat_charlen, buf_charlen;
+               int pat_ch, buf_ch;
 
-                   PREFETCH ();
-                   pat_ch = STRING_CHAR_AND_LENGTH (p, pend - p, pat_charlen);
-                   buf_ch = STRING_CHAR_AND_LENGTH (d, dend - d, buf_charlen);
+               PREFETCH ();
+               if (multibyte)
+                 pat_ch = STRING_CHAR_AND_LENGTH (p, pend - p, pat_charlen);
+               else
+                 {
+                   pat_ch = RE_CHAR_TO_MULTIBYTE (*p);
+                   pat_charlen = 1;
+                 }
+               buf_ch = STRING_CHAR_AND_LENGTH (d, dend - d, buf_charlen);
 
-                   if (RE_TRANSLATE (translate, buf_ch)
-                       != pat_ch)
-                     {
-                       d = dfail;
-                       goto fail;
-                     }
+               if (TRANSLATE (buf_ch) != pat_ch)
+                 {
+                   d = dfail;
+                   goto fail;
+                 }
+
+               p += pat_charlen;
+               d += buf_charlen;
+               mcnt -= pat_charlen;
+             }
+           while (mcnt > 0);
+         else
+           do
+             {
+               int pat_charlen, buf_charlen;
+               int pat_ch, buf_ch;
 
-                   p += pat_charlen;
-                   d += buf_charlen;
-                   mcnt -= pat_charlen;
+               PREFETCH ();
+               if (multibyte)
+                 {
+                   pat_ch = STRING_CHAR_AND_LENGTH (p, pend - p, pat_charlen);
+                   if (CHAR_BYTE8_P (pat_ch))
+                     pat_ch = CHAR_TO_BYTE8 (pat_ch);
+                   else
+                     pat_ch = RE_CHAR_TO_UNIBYTE (pat_ch);
                  }
-               while (mcnt > 0);
-             else
-               do
+               else
                  {
-                   /* Avoid compiler whining about comparison being
-                      always true.  */
-                   int di;
-
-                   PREFETCH ();
-                   di = *d;
-                   if (RE_TRANSLATE (translate, di) != *p++)
-                     {
-                       d = dfail;
-                       goto fail;
-                     }
-                   d++;
+                   pat_ch = *p;
+                   pat_charlen = 1;
                  }
-               while (--mcnt);
-           }
-         else
-           {
-             do
-               {
-                 PREFETCH ();
-                 if (*d++ != *p++)
-                   {
-                     d = dfail;
-                     goto fail;
-                   }
-               }
-             while (--mcnt);
-           }
+               buf_ch = RE_CHAR_TO_MULTIBYTE (*d);
+               if (! CHAR_BYTE8_P (buf_ch))
+                 {
+                   buf_ch = TRANSLATE (buf_ch);
+                   buf_ch = RE_CHAR_TO_UNIBYTE (buf_ch);
+                   if (buf_ch < 0)
+                     buf_ch = *d;
+                 }
+               if (buf_ch != pat_ch)
+                 {
+                   d = dfail;
+                   goto fail;
+                 }
+               p += pat_charlen;
+               d++;
+             }
+           while (--mcnt);
+#endif
          break;
 
 
@@ -5394,7 +5616,8 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
            DEBUG_PRINT1 ("EXECUTING anychar.\n");
 
            PREFETCH ();
-           buf_ch = RE_STRING_CHAR_AND_LENGTH (d, dend - d, buf_charlen);
+           buf_ch = RE_STRING_CHAR_AND_LENGTH (d, dend - d, buf_charlen,
+                                               target_multibyte);
            buf_ch = TRANSLATE (buf_ch);
 
            if ((!(bufp->syntax & RE_DOT_NEWLINE)
@@ -5438,10 +5661,30 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
              }
 
            PREFETCH ();
-           c = RE_STRING_CHAR_AND_LENGTH (d, dend - d, len);
-           c = TRANSLATE (c); /* The character to match.  */
+           c = RE_STRING_CHAR_AND_LENGTH (d, dend - d, len, target_multibyte);
+           if (target_multibyte)
+             {
+               int c1;
 
-           if (SINGLE_BYTE_CHAR_P (c))
+               c = TRANSLATE (c);
+               c1 = RE_CHAR_TO_UNIBYTE (c);
+               if (c1 >= 0)
+                 c = c1;
+             }
+           else
+             {
+               int c1 = RE_CHAR_TO_MULTIBYTE (c);
+
+               if (! CHAR_BYTE8_P (c1))
+                 {
+                   c1 = TRANSLATE (c1);
+                   c1 = RE_CHAR_TO_UNIBYTE (c1);
+                   if (c1 >= 0)
+                     c = c1;
+                 }
+             }
+
+           if (c < (1 << BYTEWIDTH))
              {                 /* Lookup bitmap.  */
                /* Cast to `unsigned' instead of `unsigned char' in
                   case the bit list is a full 32 bytes long.  */
@@ -5581,7 +5824,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                /* Compare that many; failure if mismatch, else move
                   past them.  */
                if (RE_TRANSLATE_P (translate)
-                   ? bcmp_translate (d, d2, mcnt, translate, multibyte)
+                   ? bcmp_translate (d, d2, mcnt, translate, target_multibyte)
                    : memcmp (d, d2, mcnt))
                  {
                    d = dfail;
@@ -5604,7 +5847,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
            }
          else
            {
-             unsigned char c;
+             unsigned c;
              GET_CHAR_BEFORE_2 (c, d, string1, end1, string2, end2);
              if (c == '\n')
                break;
@@ -5871,6 +6114,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                 is the character at D, and S2 is the syntax of C2.  */
              re_wchar_t c1, c2;
              int s1, s2;
+             int dummy;
 #ifdef emacs
              int offset = PTR_TO_OFFSET (d - 1);
              int charpos = SYNTAX_TABLE_BYTE_TO_CHAR (offset);
@@ -5882,7 +6126,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
              UPDATE_SYNTAX_TABLE_FORWARD (charpos + 1);
 #endif
              PREFETCH_NOLIMIT ();
-             c2 = RE_STRING_CHAR (d, dend - d);
+             GET_CHAR_AFTER (c2, d, dummy);
              s2 = SYNTAX (c2);
 
              if (/* Case 2: Only one of S1 and S2 is Sword.  */
@@ -5911,13 +6155,14 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                 is the character at D, and S2 is the syntax of C2.  */
              re_wchar_t c1, c2;
              int s1, s2;
+             int dummy;
 #ifdef emacs
              int offset = PTR_TO_OFFSET (d);
              int charpos = SYNTAX_TABLE_BYTE_TO_CHAR (offset);
              UPDATE_SYNTAX_TABLE (charpos);
 #endif
              PREFETCH ();
-             c2 = RE_STRING_CHAR (d, dend - d);
+             GET_CHAR_AFTER (c2, d, dummy);
              s2 = SYNTAX (c2);
 
              /* Case 2: S2 is not Sword. */
@@ -5955,6 +6200,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                 is the character at D, and S2 is the syntax of C2.  */
              re_wchar_t c1, c2;
              int s1, s2;
+             int dummy;
 #ifdef emacs
              int offset = PTR_TO_OFFSET (d) - 1;
              int charpos = SYNTAX_TABLE_BYTE_TO_CHAR (offset);
@@ -5971,9 +6217,9 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
              if (!AT_STRINGS_END (d))
                {
                  PREFETCH_NOLIMIT ();
-                 c2 = RE_STRING_CHAR (d, dend - d);
+                 GET_CHAR_AFTER (c2, d, dummy);
 #ifdef emacs
-                 UPDATE_SYNTAX_TABLE_FORWARD (charpos + 1);
+                 UPDATE_SYNTAX_TABLE_FORWARD (charpos);
 #endif
                  s2 = SYNTAX (c2);
 
@@ -6005,7 +6251,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
              UPDATE_SYNTAX_TABLE (charpos);
 #endif
              PREFETCH ();
-             c2 = RE_STRING_CHAR (d, dend - d);
+             c2 = RE_STRING_CHAR (d, dend - d, target_multibyte);
              s2 = SYNTAX (c2);
 
              /* Case 2: S2 is neither Sword nor Ssymbol. */
@@ -6058,7 +6304,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
              if (!AT_STRINGS_END (d))
                {
                  PREFETCH_NOLIMIT ();
-                 c2 = RE_STRING_CHAR (d, dend - d);
+                 c2 = RE_STRING_CHAR (d, dend - d, target_multibyte);
 #ifdef emacs
                  UPDATE_SYNTAX_TABLE_FORWARD (charpos + 1);
 #endif
@@ -6088,8 +6334,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
            int len;
            re_wchar_t c;
 
-           c = RE_STRING_CHAR_AND_LENGTH (d, dend - d, len);
-
+           GET_CHAR_AFTER (c, d, len);
            if ((SYNTAX (c) != (enum syntaxcode) mcnt) ^ not)
              goto fail;
            d += len;
@@ -6125,8 +6370,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
            int len;
            re_wchar_t c;
 
-           c = RE_STRING_CHAR_AND_LENGTH (d, dend - d, len);
-
+           GET_CHAR_AFTER (c, d, len);
            if ((!CHAR_HAS_CATEGORY (c, mcnt)) ^ not)
              goto fail;
            d += len;
@@ -6201,11 +6445,11 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
    bytes; nonzero otherwise.  */
 
 static int
-bcmp_translate (s1, s2, len, translate, multibyte)
+bcmp_translate (s1, s2, len, translate, target_multibyte)
      re_char *s1, *s2;
      register int len;
      RE_TRANSLATE_TYPE translate;
-     const int multibyte;
+     const int target_multibyte;
 {
   register re_char *p1 = s1, *p2 = s2;
   re_char *p1_end = s1 + len;
@@ -6218,8 +6462,8 @@ bcmp_translate (s1, s2, len, translate, multibyte)
       int p1_charlen, p2_charlen;
       re_wchar_t p1_ch, p2_ch;
 
-      p1_ch = RE_STRING_CHAR_AND_LENGTH (p1, p1_end - p1, p1_charlen);
-      p2_ch = RE_STRING_CHAR_AND_LENGTH (p2, p2_end - p2, p2_charlen);
+      GET_CHAR_AFTER (p1_ch, p1, p1_charlen);
+      GET_CHAR_AFTER (p2_ch, p2, p2_charlen);
 
       if (RE_TRANSLATE (translate, p1_ch)
          != RE_TRANSLATE (translate, p2_ch))
index 580b1369489cc080e5f06e781eb99d8985b350bb..69127efa576de6a8c4256ed4324e2949111e2adc 100644 (file)
@@ -398,9 +398,16 @@ struct re_pattern_buffer
   unsigned used_syntax : 1;
 
 #ifdef emacs
-  /* If true, multi-byte form in the `buffer' should be recognized as a
-     multibyte character. */
+  /* If true, multi-byte form in the regexp pattern should be
+     recognized as a multibyte character.  */
   unsigned multibyte : 1;
+
+  /* If true, multi-byte form in the target of match should be
+     recognized as a multibyte character.  */
+  unsigned target_multibyte : 1;
+
+  /* Charset of unibyte characters at compiling time. */
+  int charset_unibyte;
 #endif
 
 /* [[[end pattern_buffer]]] */
index 3c91d3cce9209d5d3f047801f896ef1bfd565b97..2060abda6d7f284bdda925bcea53b48cf7eba42c 100644 (file)
@@ -25,6 +25,7 @@ Boston, MA 02110-1301, USA.  */
 #include "syntax.h"
 #include "category.h"
 #include "buffer.h"
+#include "character.h"
 #include "charset.h"
 #include "region-cache.h"
 #include "commands.h"
@@ -120,61 +121,25 @@ matcher_overflow ()
    subexpression bounds.
    POSIX is nonzero if we want full backtracking (POSIX style)
    for this pattern.  0 means backtrack only enough to get a valid match.
-   MULTIBYTE is nonzero if we want to handle multibyte characters in
-   PATTERN.  0 means all multibyte characters are recognized just as
-   sequences of binary data.
 
    The behavior also depends on Vsearch_spaces_regexp.  */
 
 static void
-compile_pattern_1 (cp, pattern, translate, regp, posix, multibyte)
+compile_pattern_1 (cp, pattern, translate, regp, posix)
      struct regexp_cache *cp;
      Lisp_Object pattern;
      Lisp_Object translate;
      struct re_registers *regp;
      int posix;
-     int multibyte;
 {
-  unsigned char *raw_pattern;
-  int raw_pattern_size;
   char *val;
   reg_syntax_t old;
 
-  /* MULTIBYTE says whether the text to be searched is multibyte.
-     We must convert PATTERN to match that, or we will not really
-     find things right.  */
-
-  if (multibyte == STRING_MULTIBYTE (pattern))
-    {
-      raw_pattern = (unsigned char *) SDATA (pattern);
-      raw_pattern_size = SBYTES (pattern);
-    }
-  else if (multibyte)
-    {
-      raw_pattern_size = count_size_as_multibyte (SDATA (pattern),
-                                                 SCHARS (pattern));
-      raw_pattern = (unsigned char *) alloca (raw_pattern_size + 1);
-      copy_text (SDATA (pattern), raw_pattern,
-                SCHARS (pattern), 0, 1);
-    }
-  else
-    {
-      /* Converting multibyte to single-byte.
-
-        ??? Perhaps this conversion should be done in a special way
-        by subtracting nonascii-insert-offset from each non-ASCII char,
-        so that only the multibyte chars which really correspond to
-        the chosen single-byte character set can possibly match.  */
-      raw_pattern_size = SCHARS (pattern);
-      raw_pattern = (unsigned char *) alloca (raw_pattern_size + 1);
-      copy_text (SDATA (pattern), raw_pattern,
-                SBYTES (pattern), 1, 0);
-    }
-
   cp->regexp = Qnil;
   cp->buf.translate = (! NILP (translate) ? translate : make_number (0));
   cp->posix = posix;
-  cp->buf.multibyte = multibyte;
+  cp->buf.multibyte = STRING_MULTIBYTE (pattern);
+  cp->buf.charset_unibyte = charset_unibyte;
   cp->whitespace_regexp = Vsearch_spaces_regexp;
   /* rms: I think BLOCK_INPUT is not needed here any more,
      because regex.c defines malloc to call xmalloc.
@@ -183,12 +148,11 @@ compile_pattern_1 (cp, pattern, translate, regp, posix, multibyte)
   /*  BLOCK_INPUT;  */
   old = re_set_syntax (RE_SYNTAX_EMACS
                       | (posix ? 0 : RE_NO_POSIX_BACKTRACKING));
-
   re_set_whitespace_regexp (NILP (Vsearch_spaces_regexp) ? NULL
                            : SDATA (Vsearch_spaces_regexp));
 
-  val = (char *) re_compile_pattern ((char *)raw_pattern,
-                                    raw_pattern_size, &cp->buf);
+  val = (char *) re_compile_pattern ((char *) SDATA (pattern),
+                                    SBYTES (pattern), &cp->buf);
 
   /* If the compiled pattern hard codes some of the contents of the
      syntax-table, it can only be reused with *this* syntax table.  */
@@ -274,10 +238,10 @@ compile_pattern (pattern, regp, translate, posix, multibyte)
          && !NILP (Fstring_equal (cp->regexp, pattern))
          && EQ (cp->buf.translate, (! NILP (translate) ? translate : make_number (0)))
          && cp->posix == posix
-         && cp->buf.multibyte == multibyte
          && (EQ (cp->syntax_table, Qt)
              || EQ (cp->syntax_table, current_buffer->syntax_table))
-         && !NILP (Fequal (cp->whitespace_regexp, Vsearch_spaces_regexp)))
+         && !NILP (Fequal (cp->whitespace_regexp, Vsearch_spaces_regexp))
+         && cp->buf.charset_unibyte == charset_unibyte)
        break;
 
       /* If we're at the end of the cache, compile into the nil cell
@@ -286,7 +250,7 @@ compile_pattern (pattern, regp, translate, posix, multibyte)
       if (cp->next == 0)
        {
        compile_it:
-         compile_pattern_1 (cp, pattern, translate, regp, posix, multibyte);
+         compile_pattern_1 (cp, pattern, translate, regp, posix);
          break;
        }
     }
@@ -303,6 +267,10 @@ compile_pattern (pattern, regp, translate, posix, multibyte)
   if (regp)
     re_set_registers (&cp->buf, regp, regp->num_regs, regp->start, regp->end);
 
+  /* The compiled pattern can be used both for mulitbyte and unibyte
+     target.  But, we have to tell which the pattern is used for. */
+  cp->buf.target_multibyte = multibyte;
+
   return &cp->buf;
 }
 
@@ -1264,7 +1232,7 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
       unsigned char *base_pat;
       /* Set to positive if we find a non-ASCII char that need
         translation.  Otherwise set to zero later.  */
-      int charset_base = -1;
+      int char_base = -1;
       int boyer_moore_ok = 1;
 
       /* MULTIBYTE says whether the text to be searched is multibyte.
@@ -1305,7 +1273,7 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
       /* Copy and optionally translate the pattern.  */
       len = raw_pattern_size;
       len_byte = raw_pattern_size_byte;
-      patbuf = (unsigned char *) alloca (len_byte);
+      patbuf = (unsigned char *) alloca (len * MAX_MULTIBYTE_LENGTH);
       pat = patbuf;
       base_pat = raw_pattern;
       if (multibyte)
@@ -1355,46 +1323,47 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
                  if (c != inverse && boyer_moore_ok)
                    {
                      /* Check if all equivalents belong to the same
-                        charset & row.  Note that the check of C
-                        itself is done by the last iteration.  Note
-                        also that we don't have to check ASCII
-                        characters because boyer-moore search can
-                        always handle their translation.  */
-                     while (1)
+                        group of characters.  Note that the check of C
+                        itself is done by the last iteration.  */
+                     int this_char_base = -1;
+
+                     while (boyer_moore_ok)
                        {
                          if (ASCII_BYTE_P (inverse))
                            {
-                             if (charset_base > 0)
+                             if (this_char_base > 0)
+                               boyer_moore_ok = 0;
+                             else
                                {
-                                 boyer_moore_ok = 0;
-                                 break;
+                                 this_char_base = 0;
+                                 if (char_base < 0)
+                                   char_base = this_char_base;
                                }
-                             charset_base = 0;
-                           }
-                         else if (SINGLE_BYTE_CHAR_P (inverse))
-                           {
-                             /* Boyer-moore search can't handle a
-                                translation of an eight-bit
-                                character.  */
-                             boyer_moore_ok = 0;
-                             break;
                            }
-                         else if (charset_base < 0)
-                           charset_base = inverse & ~CHAR_FIELD3_MASK;
-                         else if ((inverse & ~CHAR_FIELD3_MASK)
-                                  != charset_base)
+                         else if (CHAR_BYTE8_P (inverse))
+                           /* Boyer-moore search can't handle a
+                              translation of an eight-bit
+                              character.  */
+                           boyer_moore_ok = 0;
+                         else if (this_char_base < 0)
                            {
-                             boyer_moore_ok = 0;
-                             break;
+                             this_char_base = inverse & ~0x3F;
+                             if (char_base < 0)
+                               char_base = this_char_base;
+                             else if (char_base > 0
+                                      && this_char_base != char_base)
+                               boyer_moore_ok = 0;
                            }
+                         else if ((inverse & ~0x3F) != this_char_base)
+                           boyer_moore_ok = 0;
                          if (c == inverse)
                            break;
                          TRANSLATE (inverse, inverse_trt, inverse);
                        }
                    }
                }
-             if (charset_base < 0)
-               charset_base = 0;
+             if (char_base < 0)
+               char_base = 0;
 
              /* Store this character into the translated pattern.  */
              bcopy (str, pat, charlen);
@@ -1406,7 +1375,7 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
       else
        {
          /* Unibyte buffer.  */
-         charset_base = 0;
+         char_base = 0;
          while (--len >= 0)
            {
              int c, translated;
@@ -1433,7 +1402,7 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
       if (boyer_moore_ok)
        return boyer_moore (n, pat, len, len_byte, trt, inverse_trt,
                            pos, pos_byte, lim, lim_byte,
-                           charset_base);
+                           char_base);
       else
        return simple_search (n, pat, len, len_byte, trt,
                              pos, pos_byte, lim, lim_byte);
@@ -1463,6 +1432,9 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
 {
   int multibyte = ! NILP (current_buffer->enable_multibyte_characters);
   int forward = n > 0;
+  /* Number of buffer bytes matched.  Note that this may be different
+     from len_byte in a multibyte buffer.  */
+  int match_byte;
 
   if (lim > pos && multibyte)
     while (n > 0)
@@ -1475,7 +1447,7 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
            int this_len = len;
            int this_len_byte = len_byte;
            unsigned char *p = pat;
-           if (pos + len > lim)
+           if (pos + len > lim || pos_byte + len_byte > lim_byte)
              goto stop;
 
            while (this_len > 0)
@@ -1502,8 +1474,9 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
 
            if (this_len == 0)
              {
+               match_byte = this_pos_byte - pos_byte;
                pos += len;
-               pos_byte += len_byte;
+               pos_byte += match_byte;
                break;
              }
 
@@ -1540,6 +1513,7 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
 
            if (this_len == 0)
              {
+               match_byte = len;
                pos += len;
                break;
              }
@@ -1557,13 +1531,15 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
          {
            /* Try matching at position POS.  */
            int this_pos = pos - len;
-           int this_pos_byte = pos_byte - len_byte;
+           int this_pos_byte;
            int this_len = len;
            int this_len_byte = len_byte;
            unsigned char *p = pat;
 
-           if (this_pos < lim || this_pos_byte < lim_byte)
+           if (this_pos < lim || (pos_byte - len_byte) < lim_byte)
              goto stop;
+           this_pos_byte = CHAR_TO_BYTE (this_pos);
+           match_byte = pos_byte - this_pos_byte;
 
            while (this_len > 0)
              {
@@ -1589,7 +1565,7 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
            if (this_len == 0)
              {
                pos -= len;
-               pos_byte -= len_byte;
+               pos_byte -= match_byte;
                break;
              }
 
@@ -1608,7 +1584,7 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
            int this_len = len;
            unsigned char *p = pat;
 
-           if (pos - len < lim)
+           if (this_pos < lim)
              goto stop;
 
            while (this_len > 0)
@@ -1625,6 +1601,7 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
 
            if (this_len == 0)
              {
+               match_byte = len;
                pos -= len;
                break;
              }
@@ -1639,9 +1616,9 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
   if (n == 0)
     {
       if (forward)
-       set_search_regs ((multibyte ? pos_byte : pos) - len_byte, len_byte);
+       set_search_regs ((multibyte ? pos_byte : pos) - match_byte, match_byte);
       else
-       set_search_regs (multibyte ? pos_byte : pos, len_byte);
+       set_search_regs (multibyte ? pos_byte : pos, match_byte);
 
       return pos;
     }
@@ -1662,13 +1639,13 @@ simple_search (n, pat, len, len_byte, trt, pos, pos_byte, lim, lim_byte)
    have nontrivial translation are the same aside from the last byte.
    This makes it possible to translate just the last byte of a
    character, and do so after just a simple test of the context.
-   CHARSET_BASE is nonzero if there is such a non-ASCII character.
+   CHAR_BASE is nonzero if there is such a non-ASCII character.
 
    If that criterion is not satisfied, do not call this function.  */
 
 static int
 boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
-            pos, pos_byte, lim, lim_byte, charset_base)
+            pos, pos_byte, lim, lim_byte, char_base)
      int n;
      unsigned char *base_pat;
      int len, len_byte;
@@ -1676,7 +1653,7 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
      Lisp_Object inverse_trt;
      int pos, pos_byte;
      int lim, lim_byte;
-     int charset_base;
+     int char_base;
 {
   int direction = ((n > 0) ? 1 : -1);
   register int dirlen;
@@ -1690,12 +1667,13 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
 
   unsigned char simple_translate[0400];
   /* These are set to the preceding bytes of a byte to be translated
-     if charset_base is nonzero.  As the maximum byte length of a
-     multibyte character is 4, we have to check at most three previous
+     if char_base is nonzero.  As the maximum byte length of a
+     multibyte character is 5, we have to check at most four previous
      bytes.  */
   int translate_prev_byte1 = 0;
   int translate_prev_byte2 = 0;
   int translate_prev_byte3 = 0;
+  int translate_prev_byte4 = 0;
 
   BM_tab = (int *) alloca (0400 * sizeof (int));
 
@@ -1757,20 +1735,23 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
   for (i = 0; i < 0400; i++)
     simple_translate[i] = i;
 
-  if (charset_base)
+  if (char_base)
     {
-      /* Setup translate_prev_byte1/2/3 from CHARSET_BASE.  Only a
+      /* Setup translate_prev_byte1/2/3/4 from CHAR_BASE.  Only a
         byte following them are the target of translation.  */
-      int sample_char = charset_base | 0x20;
       unsigned char str[MAX_MULTIBYTE_LENGTH];
-      int len = CHAR_STRING (sample_char, str);
+      int len = CHAR_STRING (char_base, str);
 
       translate_prev_byte1 = str[len - 2];
       if (len > 2)
        {
          translate_prev_byte2 = str[len - 3];
          if (len > 3)
-           translate_prev_byte3 = str[len - 4];
+           {
+             translate_prev_byte3 = str[len - 4];
+             if (len > 4)
+               translate_prev_byte4 = str[len - 5];
+           }
        }
     }
 
@@ -1786,12 +1767,12 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
          /* If the byte currently looking at is the last of a
             character to check case-equivalents, set CH to that
             character.  An ASCII character and a non-ASCII character
-            matching with CHARSET_BASE are to be checked.  */
+            matching with CHAR_BASE are to be checked.  */
          int ch = -1;
 
          if (ASCII_BYTE_P (*ptr) || ! multibyte)
            ch = *ptr;
-         else if (charset_base
+         else if (char_base
                   && ((pat_end - ptr) == 1 || CHAR_HEAD_P (ptr[1])))
            {
              unsigned char *charstart = ptr - 1;
@@ -1799,12 +1780,12 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
              while (! (CHAR_HEAD_P (*charstart)))
                charstart--;
              ch = STRING_CHAR (charstart, ptr - charstart + 1);
-             if (charset_base != (ch & ~CHAR_FIELD3_MASK))
+             if (char_base != (ch & ~0x3F))
                ch = -1;
            }
 
          if (ch >= 0400)
-           j = ((unsigned char) ch) | 0200;
+           j = (ch & 0x3F) | 0200;
          else
            j = *ptr;
 
@@ -1823,9 +1804,9 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt,
                {
                  TRANSLATE (ch, inverse_trt, ch);
                  if (ch >= 0400)
-                   j = ((unsigned char) ch) | 0200;
+                   j = (ch & 0x3F) | 0200;
                  else
-                   j = (unsigned char) ch;
+                   j = ch;
 
                  /* For all the characters that map into CH,
                     set up simple_translate to map the last byte
@@ -2152,7 +2133,7 @@ wordify (string)
     {
       int c;
 
-      FETCH_STRING_CHAR_ADVANCE (c, string, i, i_byte);
+      FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE (c, string, i, i_byte);
 
       if (SYNTAX (c) != Sword)
        {
@@ -2187,7 +2168,7 @@ wordify (string)
       int c;
       int i_byte_orig = i_byte;
 
-      FETCH_STRING_CHAR_ADVANCE (c, string, i, i_byte);
+      FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE (c, string, i, i_byte);
 
       if (SYNTAX (c) == Sword)
        {
@@ -2471,11 +2452,11 @@ since only regular expressions have distinguished subexpressions.  */)
        {
          if (NILP (string))
            {
-             c = FETCH_CHAR (pos_byte);
+             c = FETCH_CHAR_AS_MULTIBYTE (pos_byte);
              INC_BOTH (pos, pos_byte);
            }
          else
-           FETCH_STRING_CHAR_ADVANCE (c, string, pos, pos_byte);
+           FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE (c, string, pos, pos_byte);
 
          if (LOWERCASEP (c))
            {
@@ -2647,10 +2628,7 @@ since only regular expressions have distinguished subexpressions.  */)
       Lisp_Object rev_tbl;
       int really_changed = 0;
 
-      rev_tbl= (!buf_multibyte && CHAR_TABLE_P (Vnonascii_translation_table)
-               ? Fchar_table_extra_slot (Vnonascii_translation_table,
-                                         make_number (0))
-               : Qnil);
+      rev_tbl = Qnil;
 
       substed_alloc_size = length * 2 + 100;
       substed = (unsigned char *) xmalloc (substed_alloc_size + 1);
@@ -2693,7 +2671,7 @@ since only regular expressions have distinguished subexpressions.  */)
                {
                  FETCH_STRING_CHAR_ADVANCE_NO_CHECK (c, newtext,
                                                      pos, pos_byte);
-                 if (!buf_multibyte && !SINGLE_BYTE_CHAR_P (c))
+                 if (!buf_multibyte && !ASCII_CHAR_P (c))
                    c = multibyte_char_to_unibyte (c, rev_tbl);
                }
              else
index 4afaeda82dbb3058bc1a55228a1f69c0695d6bf5..c6cc8da0785a583feb03fb2d5a6510e97177456b 100644 (file)
@@ -26,7 +26,7 @@ Boston, MA 02110-1301, USA.  */
 #include "lisp.h"
 #include "commands.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "keymap.h"
 #include "regex.h"
 
@@ -101,7 +101,8 @@ static int find_defun_start P_ ((int, int));
 static int back_comment P_ ((EMACS_INT, EMACS_INT, EMACS_INT, int, int,
                             EMACS_INT *, EMACS_INT *));
 static int char_quoted P_ ((int, int));
-static Lisp_Object skip_chars P_ ((int, int, Lisp_Object, Lisp_Object, int));
+static Lisp_Object skip_chars P_ ((int, Lisp_Object, Lisp_Object, int));
+static Lisp_Object skip_syntaxes P_ ((int, Lisp_Object, Lisp_Object));
 static Lisp_Object scan_lists P_ ((EMACS_INT, EMACS_INT, EMACS_INT, int));
 static void scan_sexps_forward P_ ((struct lisp_parse_state *,
                                    int, int, int, int,
@@ -306,7 +307,7 @@ char_quoted (charpos, bytepos)
       int c;
 
       UPDATE_SYNTAX_TABLE_BACKWARD (charpos);
-      c = FETCH_CHAR (bytepos);
+      c = FETCH_CHAR_AS_MULTIBYTE (bytepos);
       code = SYNTAX (c);
       if (! (code == Scharquote || code == Sescape))
        break;
@@ -398,11 +399,11 @@ find_defun_start (pos, pos_byte)
 
       /* Open-paren at start of line means we may have found our
         defun-start.  */
-      c = FETCH_CHAR (PT_BYTE);
+      c = FETCH_CHAR_AS_MULTIBYTE (PT_BYTE);
       if (SYNTAX (c) == Sopen)
        {
          SETUP_SYNTAX_TABLE (PT + 1, -1);      /* Try again... */
-         c = FETCH_CHAR (PT_BYTE);
+         c = FETCH_CHAR_AS_MULTIBYTE (PT_BYTE);
          if (SYNTAX (c) == Sopen)
            break;
          /* Now fallback to the default value.  */
@@ -523,7 +524,7 @@ back_comment (from, from_byte, stop, comnested, comstyle, charpos_ptr, bytepos_p
       UPDATE_SYNTAX_TABLE_BACKWARD (from);
 
       prev_syntax = syntax;
-      c = FETCH_CHAR (from_byte);
+      c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
       syntax = SYNTAX_WITH_FLAGS (c);
       code = SYNTAX (c);
 
@@ -552,7 +553,7 @@ back_comment (from, from_byte, stop, comnested, comstyle, charpos_ptr, bytepos_p
          int next = from, next_byte = from_byte, next_c, next_syntax;
          DEC_BOTH (next, next_byte);
          UPDATE_SYNTAX_TABLE_BACKWARD (next);
-         next_c = FETCH_CHAR (next_byte);
+         next_c = FETCH_CHAR_AS_MULTIBYTE (next_byte);
          next_syntax = SYNTAX_WITH_FLAGS (next_c);
          if (((com2start || comnested)
               && SYNTAX_FLAGS_COMEND_SECOND (syntax)
@@ -855,29 +856,6 @@ char syntax_code_spec[16] =
 static Lisp_Object Vsyntax_code_object;
 
 \f
-/* Look up the value for CHARACTER in syntax table TABLE's parent
-   and its parents.  SYNTAX_ENTRY calls this, when TABLE itself has nil
-   for CHARACTER.  It's actually used only when not compiled with GCC.  */
-
-Lisp_Object
-syntax_parent_lookup (table, character)
-     Lisp_Object table;
-     int character;
-{
-  Lisp_Object value;
-
-  while (1)
-    {
-      table = XCHAR_TABLE (table)->parent;
-      if (NILP (table))
-       return Qnil;
-
-      value = XCHAR_TABLE (table)->contents[character];
-      if (!NILP (value))
-       return value;
-    }
-}
-
 DEFUN ("char-syntax", Fchar_syntax, Schar_syntax, 1, 1, 0,
        doc: /* Return the syntax code of CHARACTER, described by a character.
 For example, if CHARACTER is a word constituent,
@@ -996,6 +974,8 @@ DEFUN ("modify-syntax-entry", Fmodify_syntax_entry, Smodify_syntax_entry, 2, 3,
        doc: /* Set syntax for character CHAR according to string NEWENTRY.
 The syntax is changed only for table SYNTAX-TABLE, which defaults to
  the current buffer's syntax table.
+CHAR may be a cons (MIN . MAX), in which case, syntaxes of all characters
+in the range MIN and MAX are changed.
 The first character of NEWENTRY should be one of the following:
   Space or -  whitespace syntax.    w   word constituent.
   _           symbol constituent.   .   punctuation.
@@ -1032,14 +1012,24 @@ usage: (modify-syntax-entry CHAR NEWENTRY &optional SYNTAX-TABLE) */)
      (c, newentry, syntax_table)
      Lisp_Object c, newentry, syntax_table;
 {
-  CHECK_NUMBER (c);
+  if (CONSP (c))
+    {
+      CHECK_CHARACTER_CAR (c);
+      CHECK_CHARACTER_CDR (c);
+    }
+  else
+    CHECK_CHARACTER (c);
 
   if (NILP (syntax_table))
     syntax_table = current_buffer->syntax_table;
   else
     check_syntax_table (syntax_table);
 
-  SET_RAW_SYNTAX_ENTRY (syntax_table, XINT (c), Fstring_to_syntax (newentry));
+  newentry = Fstring_to_syntax (newentry);
+  if (CONSP (c))
+    SET_RAW_SYNTAX_ENTRY_RANGE (syntax_table, c, newentry);
+  else
+    SET_RAW_SYNTAX_ENTRY (syntax_table, XINT (c), newentry);
 
   /* We clear the regexp cache, since character classes can now have
      different values from those in the compiled regexps.*/
@@ -1198,6 +1188,10 @@ DEFUN ("internal-describe-syntax-value", Finternal_describe_syntax_value,
 \f
 int parse_sexp_ignore_comments;
 
+/* Char-table of functions that find the next or previous word
+   boundary.  */
+Lisp_Object Vfind_word_boundary_function_table;
+
 /* Return the position across COUNT words from FROM.
    If that many words cannot be found before the end of the buffer, return 0.
    COUNT negative means scan backward and stop at word beginning.  */
@@ -1211,6 +1205,7 @@ scan_words (from, count)
   register int from_byte = CHAR_TO_BYTE (from);
   register enum syntaxcode code;
   int ch0, ch1;
+  Lisp_Object func, script, pos;
 
   immediate_quit = 1;
   QUIT;
@@ -1227,7 +1222,7 @@ scan_words (from, count)
              return 0;
            }
          UPDATE_SYNTAX_TABLE_FORWARD (from);
-         ch0 = FETCH_CHAR (from_byte);
+         ch0 = FETCH_CHAR_AS_MULTIBYTE (from_byte);
          code = SYNTAX (ch0);
          INC_BOTH (from, from_byte);
          if (words_include_escapes
@@ -1238,18 +1233,33 @@ scan_words (from, count)
        }
       /* Now CH0 is a character which begins a word and FROM is the
          position of the next character.  */
-      while (1)
+      func = CHAR_TABLE_REF (Vfind_word_boundary_function_table, ch0);
+      if (! NILP (Ffboundp (func)))
        {
-         if (from == end) break;
-         UPDATE_SYNTAX_TABLE_FORWARD (from);
-         ch1 = FETCH_CHAR (from_byte);
-         code = SYNTAX (ch1);
-         if (!(words_include_escapes
-               && (code == Sescape || code == Scharquote)))
-           if (code != Sword || WORD_BOUNDARY_P (ch0, ch1))
-             break;
-         INC_BOTH (from, from_byte);
-         ch0 = ch1;
+         pos = call2 (func, make_number (from - 1), make_number (end));
+         if (INTEGERP (pos) && XINT (pos) > from)
+           {
+             from = XINT (pos);
+             from_byte = CHAR_TO_BYTE (from);
+           }
+       }
+      else
+       {
+         script = CHAR_TABLE_REF (Vchar_script_table, ch0);
+         while (1)
+           {
+             if (from == end) break;
+             UPDATE_SYNTAX_TABLE_FORWARD (from);
+             ch1 = FETCH_CHAR_AS_MULTIBYTE (from_byte);
+             code = SYNTAX (ch1);
+             if ((code != Sword
+                  && (! words_include_escapes
+                      || (code != Sescape && code != Scharquote)))
+                 || ! EQ (CHAR_TABLE_REF (Vchar_script_table, ch1), script))
+               break;
+             INC_BOTH (from, from_byte);
+             ch0 = ch1;
+           }
        }
       count--;
     }
@@ -1264,7 +1274,7 @@ scan_words (from, count)
            }
          DEC_BOTH (from, from_byte);
          UPDATE_SYNTAX_TABLE_BACKWARD (from);
-         ch1 = FETCH_CHAR (from_byte);
+         ch1 = FETCH_CHAR_AS_MULTIBYTE (from_byte);
          code = SYNTAX (ch1);
          if (words_include_escapes
              && (code == Sescape || code == Scharquote))
@@ -1274,22 +1284,37 @@ scan_words (from, count)
        }
       /* Now CH1 is a character which ends a word and FROM is the
          position of it.  */
-      while (1)
+      func = CHAR_TABLE_REF (Vfind_word_boundary_function_table, ch1);
+      if (! NILP (Ffboundp (func)))
+       {
+         pos = call2 (func, make_number (from), make_number (beg));
+         if (INTEGERP (pos) && XINT (pos) < from)
+           {
+             from = XINT (pos);
+             from_byte = CHAR_TO_BYTE (from);
+           }
+       }
+      else
        {
-         if (from == beg)
-           break;
-         DEC_BOTH (from, from_byte);
-         UPDATE_SYNTAX_TABLE_BACKWARD (from);
-         ch0 = FETCH_CHAR (from_byte);
-         code = SYNTAX (ch0);
-         if (!(words_include_escapes
-               && (code == Sescape || code == Scharquote)))
-           if (code != Sword || WORD_BOUNDARY_P (ch0, ch1))
-             {
-               INC_BOTH (from, from_byte);
+         script = CHAR_TABLE_REF (Vchar_script_table, ch1);
+         while (1)
+           {
+             if (from == beg)
                break;
-             }
-         ch1 = ch0;
+             DEC_BOTH (from, from_byte);
+             UPDATE_SYNTAX_TABLE_BACKWARD (from);
+             ch0 = FETCH_CHAR_AS_MULTIBYTE (from_byte);
+             code = SYNTAX (ch0);
+             if ((code != Sword
+                  && (! words_include_escapes
+                      || (code != Sescape && code != Scharquote)))
+                 || ! EQ (CHAR_TABLE_REF (Vchar_script_table, ch0), script))
+               {
+                 INC_BOTH (from, from_byte);
+                 break;
+               }
+             ch1 = ch0;
+           }
        }
       count++;
     }
@@ -1344,7 +1369,7 @@ Returns the distance traveled, either zero or positive.  */)
      (string, lim)
      Lisp_Object string, lim;
 {
-  return skip_chars (1, 0, string, lim, 1);
+  return skip_chars (1, string, lim, 1);
 }
 
 DEFUN ("skip-chars-backward", Fskip_chars_backward, Sskip_chars_backward, 1, 2, 0,
@@ -1354,7 +1379,7 @@ Returns the distance traveled, either zero or negative.  */)
      (string, lim)
      Lisp_Object string, lim;
 {
-  return skip_chars (0, 0, string, lim, 1);
+  return skip_chars (0, string, lim, 1);
 }
 
 DEFUN ("skip-syntax-forward", Fskip_syntax_forward, Sskip_syntax_forward, 1, 2, 0,
@@ -1366,7 +1391,7 @@ This function returns the distance traveled, either zero or positive.  */)
      (syntax, lim)
      Lisp_Object syntax, lim;
 {
-  return skip_chars (1, 1, syntax, lim, 0);
+  return skip_syntaxes (1, syntax, lim);
 }
 
 DEFUN ("skip-syntax-backward", Fskip_syntax_backward, Sskip_syntax_backward, 1, 2, 0,
@@ -1378,25 +1403,27 @@ This function returns the distance traveled, either zero or negative.  */)
      (syntax, lim)
      Lisp_Object syntax, lim;
 {
-  return skip_chars (0, 1, syntax, lim, 0);
+  return skip_syntaxes (0, syntax, lim);
 }
 
 static Lisp_Object
-skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
-     int forwardp, syntaxp;
+skip_chars (forwardp, string, lim, handle_iso_classes)
+     int forwardp;
      Lisp_Object string, lim;
      int handle_iso_classes;
 {
   register unsigned int c;
   unsigned char fastmap[0400];
-  /* If SYNTAXP is 0, STRING may contain multi-byte form of characters
-     of which codes don't fit in FASTMAP.  In that case, set the
-     ranges of characters in CHAR_RANGES.  */
+  /* Store the ranges of non-ASCII characters.  */
   int *char_ranges;
   int n_char_ranges = 0;
   int negate = 0;
   register int i, i_byte;
-  int multibyte = !NILP (current_buffer->enable_multibyte_characters);
+  /* Set to 1 if the current buffer is multibyte and the region
+     contains non-ASCII chars.  */
+  int multibyte;
+  /* Set to 1 if STRING is multibyte and it contains non-ASCII
+     chars.  */
   int string_multibyte;
   int size_byte;
   const unsigned char *str;
@@ -1404,32 +1431,8 @@ skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
   Lisp_Object iso_classes;
 
   CHECK_STRING (string);
-  char_ranges = (int *) alloca (SCHARS (string) * (sizeof (int)) * 2);
-  string_multibyte = STRING_MULTIBYTE (string);
-  str = SDATA (string);
-  size_byte = SBYTES (string);
   iso_classes = Qnil;
 
-  /* Adjust the multibyteness of the string to that of the buffer.  */
-  if (multibyte != string_multibyte)
-    {
-      int nbytes;
-
-      if (multibyte)
-       nbytes = count_size_as_multibyte (SDATA (string),
-                                         SCHARS (string));
-      else
-       nbytes = SCHARS (string);
-      if (nbytes != size_byte)
-       {
-         unsigned char *tmp = (unsigned char *) alloca (nbytes);
-         copy_text (SDATA (string), tmp, size_byte,
-                    string_multibyte, multibyte);
-         size_byte = nbytes;
-         str = tmp;
-       }
-    }
-
   if (NILP (lim))
     XSETINT (lim, forwardp ? ZV : BEGV);
   else
@@ -1441,10 +1444,16 @@ skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
   if (XINT (lim) < BEGV)
     XSETFASTINT (lim, BEGV);
 
+  multibyte = (!NILP (current_buffer->enable_multibyte_characters)
+              && (XINT (lim) - PT != CHAR_TO_BYTE (XINT (lim)) - PT_BYTE));
+  string_multibyte = SBYTES (string) > SCHARS (string);
+
   bzero (fastmap, sizeof fastmap);
 
-  i_byte = 0;
+  str = SDATA (string);
+  size_byte = SBYTES (string);
 
+  i_byte = 0;
   if (i_byte < size_byte
       && SREF (string, 0) == '^')
     {
@@ -1452,21 +1461,23 @@ skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
     }
 
   /* Find the characters specified and set their elements of fastmap.
-     If syntaxp, each character counts as itself.
-     Otherwise, handle backslashes and ranges specially.  */
+     Handle backslashes and ranges specially.
 
-  while (i_byte < size_byte)
+     If STRING contains non-ASCII characters, setup char_ranges for
+     them and use fastmap only for their leading codes.  */
+
+  if (! string_multibyte)
     {
-      c = STRING_CHAR_AND_LENGTH (str + i_byte, size_byte - i_byte, len);
-      i_byte += len;
+      int string_has_eight_bit = 0;
 
-      if (syntaxp)
-       fastmap[syntax_spec_code[c & 0377]] = 1;
-      else
+      /* At first setup fastmap.  */
+      while (i_byte < size_byte)
        {
+         c = str[i_byte++];
+
          if (handle_iso_classes && c == '['
              && i_byte < size_byte
-             && STRING_CHAR (str + i_byte, size_byte - i_byte) == ':')
+             && str[i_byte] == ':')
            {
              const unsigned char *class_beg = str + i_byte + 1;
              const unsigned char *class_end = class_beg;
@@ -1505,6 +1516,129 @@ skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
              if (i_byte == size_byte)
                break;
 
+             c = str[i_byte++];
+           }
+         /* Treat `-' as range character only if another character
+            follows.  */
+         if (i_byte + 1 < size_byte
+             && str[i_byte] == '-')
+           {
+             unsigned int c2;
+
+             /* Skip over the dash.  */
+             i_byte++;
+
+             /* Get the end of the range.  */
+             c2 = str[i_byte++];
+             if (c2 == '\\'
+                 && i_byte < size_byte)
+               c2 = str[i_byte++];
+
+             if (c <= c2)
+               {
+                 while (c <= c2)
+                   fastmap[c++] = 1;
+                 if (! ASCII_CHAR_P (c2))
+                   string_has_eight_bit = 1;
+               }
+           }
+         else
+           {
+             fastmap[c] = 1;
+             if (! ASCII_CHAR_P (c))
+               string_has_eight_bit = 1;
+           }
+       }
+
+      /* If the current range is multibyte and STRING contains
+        eight-bit chars, arrange fastmap and setup char_ranges for
+        the corresponding multibyte chars.  */
+      if (multibyte && string_has_eight_bit)
+       {
+         unsigned char fastmap2[0400];
+         int range_start_byte, range_start_char;
+
+         bcopy (fastmap2 + 0200, fastmap + 0200, 0200);
+         bzero (fastmap + 0200, 0200);
+         /* We are sure that this loop stops.  */
+         for (i = 0200; ! fastmap2[i]; i++);
+         c = unibyte_char_to_multibyte (i);
+         fastmap[CHAR_LEADING_CODE (c)] = 1;
+         range_start_byte = i;
+         range_start_char = c;
+         char_ranges = (int *) alloca (sizeof (int) * 128 * 2);
+         for (i = 129; i < 0400; i++)
+           {
+             c = unibyte_char_to_multibyte (i);
+             fastmap[CHAR_LEADING_CODE (c)] = 1;
+             if (i - range_start_byte != c - range_start_char)
+               {
+                 char_ranges[n_char_ranges++] = range_start_char;
+                 char_ranges[n_char_ranges++] = ((i - 1 - range_start_byte)
+                                                 + range_start_char);
+                 range_start_byte = i;
+                 range_start_char = c;
+               }
+           }
+         char_ranges[n_char_ranges++] = range_start_char;
+         char_ranges[n_char_ranges++] = ((i - 1 - range_start_byte)
+                                         + range_start_char);
+       }
+    }
+  else                         /* STRING is multibyte */
+    {
+      char_ranges = (int *) alloca (sizeof (int) * SCHARS (string) * 2);
+
+      while (i_byte < size_byte)
+       {
+         unsigned char leading_code;
+
+         leading_code = str[i_byte];
+         c = STRING_CHAR_AND_LENGTH (str + i_byte, size_byte-i_byte, len);
+         i_byte += len;
+
+         if (handle_iso_classes && c == '['
+             && i_byte < size_byte
+             && STRING_CHAR (str + i_byte, size_byte - i_byte) == ':')
+           {
+             const unsigned char *class_beg = str + i_byte + 1;
+             const unsigned char *class_end = class_beg;
+             const unsigned char *class_limit = str + size_byte - 2;
+             /* Leave room for the null.        */
+             unsigned char class_name[CHAR_CLASS_MAX_LENGTH + 1];
+             re_wctype_t cc;
+
+             if (class_limit - class_beg > CHAR_CLASS_MAX_LENGTH)
+               class_limit = class_beg + CHAR_CLASS_MAX_LENGTH;
+
+             while (class_end < class_limit
+                    && *class_end >= 'a' && *class_end <= 'z')
+               class_end++;
+
+             if (class_end == class_beg
+                 || *class_end != ':' || class_end[1] != ']')
+               goto not_a_class_name_multibyte;
+
+             bcopy (class_beg, class_name, class_end - class_beg);
+             class_name[class_end - class_beg] = 0;
+
+             cc = re_wctype (class_name);
+             if (cc == 0)
+               error ("Invalid ISO C character class");
+
+             iso_classes = Fcons (make_number (cc), iso_classes);
+
+             i_byte = class_end + 2 - str;
+             continue;
+           }
+
+       not_a_class_name_multibyte:
+         if (c == '\\')
+           {
+             if (i_byte == size_byte)
+               break;
+
+             leading_code = str[i_byte];
              c = STRING_CHAR_AND_LENGTH (str + i_byte,
                                          size_byte - i_byte, len);
              i_byte += len;
@@ -1515,61 +1649,90 @@ skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
              && str[i_byte] == '-')
            {
              unsigned int c2;
+             unsigned char leading_code2;
 
              /* Skip over the dash.  */
              i_byte++;
 
              /* Get the end of the range.  */
+             leading_code2 = str[i_byte];
              c2 = STRING_CHAR_AND_LENGTH (str + i_byte,
                                           size_byte - i_byte, len);
              i_byte += len;
 
-             if (SINGLE_BYTE_CHAR_P (c))
+             if (c2 == '\\'
+                 && i_byte < size_byte)
+               {
+                 leading_code2 = str[i_byte];
+                 c2 =STRING_CHAR_AND_LENGTH (str + i_byte, size_byte-i_byte, len);
+                 i_byte += len;
+               }
+
+             if (c > c2)
+               continue;
+             if (ASCII_CHAR_P (c))
+               {
+                 while (c <= c2 && c < 0x80)
+                   fastmap[c++] = 1;
+                 leading_code = CHAR_LEADING_CODE (c);
+               }
+             if (! ASCII_CHAR_P (c))
                {
-                 if (! SINGLE_BYTE_CHAR_P (c2))
+                 while (leading_code <= leading_code2)
+                   fastmap[leading_code++] = 1;
+                 if (c <= c2)
                    {
-                     /* Handle a range starting with a character of
-                        less than 256, and ending with a character of
-                        not less than 256.  Split that into two
-                        ranges, the low one ending at 0377, and the
-                        high one starting at the smallest character
-                        in the charset of C2 and ending at C2.  */
-                     int charset = CHAR_CHARSET (c2);
-                     int c1 = MAKE_CHAR (charset, 0, 0);
-
-                     char_ranges[n_char_ranges++] = c1;
+                     char_ranges[n_char_ranges++] = c;
                      char_ranges[n_char_ranges++] = c2;
-                     c2 = 0377;
                    }
-                 while (c <= c2)
-                   {
-                     fastmap[c] = 1;
-                     c++;
-                   }
-               }
-             else if (c <= c2) /* Both C and C2 are multibyte char.  */
-               {
-                 char_ranges[n_char_ranges++] = c;
-                 char_ranges[n_char_ranges++] = c2;
                }
            }
          else
            {
-             if (SINGLE_BYTE_CHAR_P (c))
+             if (ASCII_CHAR_P (c))
                fastmap[c] = 1;
              else
                {
+                 fastmap[leading_code] = 1;
                  char_ranges[n_char_ranges++] = c;
                  char_ranges[n_char_ranges++] = c;
                }
            }
        }
+
+      /* If the current range is unibyte and STRING contains non-ASCII
+        chars, arrange fastmap for the corresponding unibyte
+        chars.  */
+
+      if (! multibyte && n_char_ranges > 0)
+       {
+         bzero (fastmap + 0200, 0200);
+         for (i = 0; i < n_char_ranges; i += 2)
+           {
+             int c1 = char_ranges[i];
+             int c2 = char_ranges[i + 1];
+
+             for (; c1 <= c2; c1++)
+               fastmap[CHAR_TO_BYTE8 (c1)] = 1;
+           }
+       }
     }
 
   /* If ^ was the first character, complement the fastmap.  */
   if (negate)
-    for (i = 0; i < sizeof fastmap; i++)
-      fastmap[i] ^= 1;
+    {
+      if (! multibyte)
+       for (i = 0; i < sizeof fastmap; i++)
+         fastmap[i] ^= 1;
+      else
+       {
+         for (i = 0; i < 0200; i++)
+           fastmap[i] ^= 1;
+         /* All non-ASCII chars possibly match.  */
+         for (; i < sizeof fastmap; i++)
+           fastmap[i] = 1;
+       }
+    }
 
   {
     int start_point = PT;
@@ -1589,254 +1752,312 @@ skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
       }
 
     immediate_quit = 1;
-    if (syntaxp)
+    if (forwardp)
       {
-        SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1);
-       if (forwardp)
-         {
-           if (multibyte)
-             while (1)
-               {
-                 int nbytes;
+       if (multibyte)
+         while (1)
+           {
+             int nbytes;
 
-                 if (p >= stop)
-                   {
-                     if (p >= endp)
-                       break;
-                     p = GAP_END_ADDR;
-                     stop = endp;
-                   }
-                 c = STRING_CHAR_AND_LENGTH (p, MAX_MULTIBYTE_LENGTH, nbytes);
-                 if (! fastmap[(int) SYNTAX (c)])
+             if (p >= stop)
+               {
+                 if (p >= endp)
                    break;
-                 p += nbytes, pos++, pos_byte += nbytes;
-                 UPDATE_SYNTAX_TABLE_FORWARD (pos);
+                 p = GAP_END_ADDR;
+                 stop = endp;
                }
-           else
-             while (1)
+             c = STRING_CHAR_AND_LENGTH (p, MAX_MULTIBYTE_LENGTH, nbytes);
+             if (! NILP (iso_classes) && in_classes (c, iso_classes))
                {
-                 if (p >= stop)
-                   {
-                     if (p >= endp)
-                       break;
-                     p = GAP_END_ADDR;
-                     stop = endp;
-                   }
-                 if (! fastmap[(int) SYNTAX (*p)])
+                 if (negate)
                    break;
-                 p++, pos++;
-                 UPDATE_SYNTAX_TABLE_FORWARD (pos);
+                 else
+                   goto fwd_ok;
                }
-         }
-       else
-         {
-           if (multibyte)
-             while (1)
-               {
-                 unsigned char *prev_p;
-                 int nbytes;
 
-                 if (p <= stop)
-                   {
-                     if (p <= endp)
-                       break;
-                     p = GPT_ADDR;
-                     stop = endp;
-                   }
-                 prev_p = p;
-                 while (--p >= stop && ! CHAR_HEAD_P (*p));
-                 PARSE_MULTIBYTE_SEQ (p, MAX_MULTIBYTE_LENGTH, nbytes);
-                 if (prev_p - p > nbytes)
-                   p = prev_p - 1, c = *p, nbytes = 1;
-                 else
-                   c = STRING_CHAR (p, MAX_MULTIBYTE_LENGTH);
-                 pos--, pos_byte -= nbytes;
-                 UPDATE_SYNTAX_TABLE_BACKWARD (pos);
-                 if (! fastmap[(int) SYNTAX (c)])
-                   {
-                     pos++;
-                     pos_byte += nbytes;
+             if (! fastmap[*p])
+               break;
+             if (! ASCII_CHAR_P (c))
+               {
+                 /* As we are looking at a multibyte character, we
+                    must look up the character in the table
+                    CHAR_RANGES.  If there's no data in the table,
+                    that character is not what we want to skip.  */
+
+                 /* The following code do the right thing even if
+                    n_char_ranges is zero (i.e. no data in
+                    CHAR_RANGES).  */
+                 for (i = 0; i < n_char_ranges; i += 2)
+                   if (c >= char_ranges[i] && c <= char_ranges[i + 1])
                      break;
-                   }
+                 if (!(negate ^ (i < n_char_ranges)))
+                   break;
                }
-           else
-             while (1)
+           fwd_ok:
+             p += nbytes, pos++, pos_byte += nbytes;
+           }
+       else
+         while (1)
+           {
+             if (p >= stop)
                {
-                 if (p <= stop)
-                   {
-                     if (p <= endp)
-                       break;
-                     p = GPT_ADDR;
-                     stop = endp;
-                   }
-                 UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1);
-                 if (! fastmap[(int) SYNTAX (p[-1])])
+                 if (p >= endp)
                    break;
-                 p--, pos--;
+                 p = GAP_END_ADDR;
+                 stop = endp;
                }
-         }
+
+             if (!NILP (iso_classes) && in_classes (*p, iso_classes))
+               {
+                 if (negate)
+                   break;
+                 else
+                   goto fwd_unibyte_ok;
+               }
+
+             if (!fastmap[*p])
+               break;
+           fwd_unibyte_ok:
+             p++, pos++, pos_byte++;
+           }
       }
     else
       {
-       if (forwardp)
-         {
-           if (multibyte)
-             while (1)
-               {
-                 int nbytes;
-
-                 if (p >= stop)
-                   {
-                     if (p >= endp)
-                       break;
-                     p = GAP_END_ADDR;
-                     stop = endp;
-                   }
-                 c = STRING_CHAR_AND_LENGTH (p, MAX_MULTIBYTE_LENGTH, nbytes);
+       if (multibyte)
+         while (1)
+           {
+             unsigned char *prev_p;
 
-                 if (! NILP (iso_classes) && in_classes (c, iso_classes))
-                   {
-                     if (negate)
-                       break;
-                     else
-                       goto fwd_ok;
-                   }
+             if (p <= stop)
+               {
+                 if (p <= endp)
+                   break;
+                 p = GPT_ADDR;
+                 stop = endp;
+               }
+             prev_p = p;
+             while (--p >= stop && ! CHAR_HEAD_P (*p));
+             c = STRING_CHAR (p, MAX_MULTIBYTE_LENGTH);
 
-                 if (SINGLE_BYTE_CHAR_P (c))
-                   {
-                     if (!fastmap[c])
-                       break;
-                   }
+             if (! NILP (iso_classes) && in_classes (c, iso_classes))
+               {
+                 if (negate)
+                   break;
                  else
-                   {
-                     /* If we are looking at a multibyte character,
-                        we must look up the character in the table
-                        CHAR_RANGES.  If there's no data in the
-                        table, that character is not what we want to
-                        skip.  */
-
-                     /* The following code do the right thing even if
-                        n_char_ranges is zero (i.e. no data in
-                        CHAR_RANGES).  */
-                     for (i = 0; i < n_char_ranges; i += 2)
-                       if (c >= char_ranges[i] && c <= char_ranges[i + 1])
-                         break;
-                     if (!(negate ^ (i < n_char_ranges)))
-                       break;
-                   }
-               fwd_ok:
-                 p += nbytes, pos++, pos_byte += nbytes;
+                   goto back_ok;
                }
-           else
-             while (1)
-               {
-                 if (p >= stop)
-                   {
-                     if (p >= endp)
-                       break;
-                     p = GAP_END_ADDR;
-                     stop = endp;
-                   }
-
-                 if (!NILP (iso_classes) && in_classes (*p, iso_classes))
-                   {
-                     if (negate)
-                       break;
-                     else
-                       goto fwd_unibyte_ok;
-                   }
 
-                 if (!fastmap[*p])
+             if (! fastmap[*p])
+               break;
+             if (! ASCII_CHAR_P (c))
+               {
+                 /* See the comment in the previous similar code.  */
+                 for (i = 0; i < n_char_ranges; i += 2)
+                   if (c >= char_ranges[i] && c <= char_ranges[i + 1])
+                     break;
+                 if (!(negate ^ (i < n_char_ranges)))
                    break;
-               fwd_unibyte_ok:
-                 p++, pos++;
                }
-         }
+           back_ok:
+             pos--, pos_byte -= prev_p - p;
+           }
        else
-         {
-           if (multibyte)
-             while (1)
+         while (1)
+           {
+             if (p <= stop)
                {
-                 unsigned char *prev_p;
-                 int nbytes;
+                 if (p <= endp)
+                   break;
+                 p = GPT_ADDR;
+                 stop = endp;
+               }
 
-                 if (p <= stop)
-                   {
-                     if (p <= endp)
-                       break;
-                     p = GPT_ADDR;
-                     stop = endp;
-                   }
-                 prev_p = p;
-                 while (--p >= stop && ! CHAR_HEAD_P (*p));
-                 PARSE_MULTIBYTE_SEQ (p, MAX_MULTIBYTE_LENGTH, nbytes);
-                 if (prev_p - p > nbytes)
-                   p = prev_p - 1, c = *p, nbytes = 1;
+             if (! NILP (iso_classes) && in_classes (p[-1], iso_classes))
+               {
+                 if (negate)
+                   break;
                  else
-                   c = STRING_CHAR (p, MAX_MULTIBYTE_LENGTH);
+                   goto back_unibyte_ok;
+               }
 
-                 if (! NILP (iso_classes) && in_classes (c, iso_classes))
-                   {
-                     if (negate)
-                       break;
-                     else
-                       goto back_ok;
-                   }
+             if (!fastmap[p[-1]])
+               break;
+           back_unibyte_ok:
+             p--, pos--, pos_byte--;
+           }
+      }
 
-                 if (SINGLE_BYTE_CHAR_P (c))
-                   {
-                     if (!fastmap[c])
-                       break;
-                   }
-                 else
-                   {
-                     /* See the comment in the previous similar code.  */
-                     for (i = 0; i < n_char_ranges; i += 2)
-                       if (c >= char_ranges[i] && c <= char_ranges[i + 1])
-                         break;
-                     if (!(negate ^ (i < n_char_ranges)))
-                       break;
-                   }
-               back_ok:
-                 pos--, pos_byte -= nbytes;
-               }
-           else
-             while (1)
-               {
-                 if (p <= stop)
-                   {
-                     if (p <= endp)
-                       break;
-                     p = GPT_ADDR;
-                     stop = endp;
-                   }
+    SET_PT_BOTH (pos, pos_byte);
+    immediate_quit = 0;
 
-                 if (! NILP (iso_classes) && in_classes (p[-1], iso_classes))
-                   {
-                     if (negate)
-                       break;
-                     else
-                       goto back_unibyte_ok;
-                   }
+    return make_number (PT - start_point);
+  }
+}
 
-                 if (!fastmap[p[-1]])
-                   break;
-               back_unibyte_ok:
-                 p--, pos--;
-               }
-         }
+
+static Lisp_Object
+skip_syntaxes (forwardp, string, lim)
+     int forwardp;
+     Lisp_Object string, lim;
+{
+  register unsigned int c;
+  unsigned char fastmap[0400];
+  int negate = 0;
+  register int i, i_byte;
+  int multibyte;
+  int size_byte;
+  unsigned char *str;
+
+  CHECK_STRING (string);
+
+  if (NILP (lim))
+    XSETINT (lim, forwardp ? ZV : BEGV);
+  else
+    CHECK_NUMBER_COERCE_MARKER (lim);
+
+  /* In any case, don't allow scan outside bounds of buffer.  */
+  if (XINT (lim) > ZV)
+    XSETFASTINT (lim, ZV);
+  if (XINT (lim) < BEGV)
+    XSETFASTINT (lim, BEGV);
+
+  if (forwardp ? (PT >= XFASTINT (lim)) : (PT <= XFASTINT (lim)))
+    return make_number (0);
+
+  multibyte = (!NILP (current_buffer->enable_multibyte_characters)
+              && (XINT (lim) - PT != CHAR_TO_BYTE (XINT (lim)) - PT_BYTE));
+
+  bzero (fastmap, sizeof fastmap);
+
+  if (SBYTES (string) > SCHARS (string))
+    /* As this is very rare case (syntax spec is ASCII only), don't
+       consider efficiency.  */
+    string = string_make_unibyte (string);
+
+  str = SDATA (string);
+  size_byte = SBYTES (string);
+
+  i_byte = 0;
+  if (i_byte < size_byte
+      && SREF (string, 0) == '^')
+    {
+      negate = 1; i_byte++;
+    }
+
+  /* Find the syntaxes specified and set their elements of fastmap.  */
+
+  while (i_byte < size_byte)
+    {
+      c = str[i_byte++];
+      fastmap[syntax_spec_code[c]] = 1;
+    }
+
+  /* If ^ was the first character, complement the fastmap.  */
+  if (negate)
+    for (i = 0; i < sizeof fastmap; i++)
+      fastmap[i] ^= 1;
+
+  {
+    int start_point = PT;
+    int pos = PT;
+    int pos_byte = PT_BYTE;
+    unsigned char *p = PT_ADDR, *endp, *stop;
+
+    if (forwardp)
+      {
+       endp = (XINT (lim) == GPT) ? GPT_ADDR : CHAR_POS_ADDR (XINT (lim));
+       stop = (pos < GPT && GPT < XINT (lim)) ? GPT_ADDR : endp;
+      }
+    else
+      {
+       endp = CHAR_POS_ADDR (XINT (lim));
+       stop = (pos >= GPT && GPT > XINT (lim)) ? GAP_END_ADDR : endp;
       }
 
-#if 0 /* Not needed now that a position in mid-character
-        cannot be specified in Lisp.  */
-    if (multibyte
-       /* INC_POS or DEC_POS might have moved POS over LIM.  */
-       && (forwardp ? (pos > XINT (lim)) : (pos < XINT (lim))))
-      pos = XINT (lim);
-#endif
+    immediate_quit = 1;
+    SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1);
+    if (forwardp)
+      {
+       if (multibyte)
+         {
+           while (1)
+             {
+               int nbytes;
+
+               if (p >= stop)
+                 {
+                   if (p >= endp)
+                     break;
+                   p = GAP_END_ADDR;
+                   stop = endp;
+                 }
+               c = STRING_CHAR_AND_LENGTH (p, MAX_MULTIBYTE_LENGTH, nbytes);
+               if (! fastmap[(int) SYNTAX (c)])
+                 break;
+               p += nbytes, pos++, pos_byte += nbytes;
+               UPDATE_SYNTAX_TABLE_FORWARD (pos);
+             }
+         }
+       else
+         {
+           while (1)
+             {
+               if (p >= stop)
+                 {
+                   if (p >= endp)
+                     break;
+                   p = GAP_END_ADDR;
+                   stop = endp;
+                 }
+               if (! fastmap[(int) SYNTAX (*p)])
+                 break;
+               p++, pos++, pos_byte++;
+               UPDATE_SYNTAX_TABLE_FORWARD (pos);
+             }
+         }
+      }
+    else
+      {
+       if (multibyte)
+         {
+           while (1)
+             {
+               unsigned char *prev_p;
 
-    if (! multibyte)
-      pos_byte = pos;
+               if (p <= stop)
+                 {
+                   if (p <= endp)
+                     break;
+                   p = GPT_ADDR;
+                   stop = endp;
+                 }
+               UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1);
+               prev_p = p;
+               while (--p >= stop && ! CHAR_HEAD_P (*p));
+               c = STRING_CHAR (p, MAX_MULTIBYTE_LENGTH);
+               if (! fastmap[(int) SYNTAX (c)])
+                 break;
+               pos--, pos_byte -= prev_p - p;
+             }
+         }
+       else
+         {
+           while (1)
+             {
+               if (p <= stop)
+                 {
+                   if (p <= endp)
+                     break;
+                   p = GPT_ADDR;
+                   stop = endp;
+                 }
+               UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1);
+               if (! fastmap[(int) SYNTAX (p[-1])])
+                 break;
+               p--, pos--, pos_byte--;
+             }
+         }
+      }
 
     SET_PT_BOTH (pos, pos_byte);
     immediate_quit = 0;
@@ -1921,7 +2142,7 @@ forw_comment (from, from_byte, stop, nesting, style, prev_syntax,
          *bytepos_ptr = from_byte;
          return 0;
        }
-      c = FETCH_CHAR (from_byte);
+      c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
       syntax = SYNTAX_WITH_FLAGS (c);
       code = syntax & 0xff;
       if (code == Sendcomment
@@ -1951,7 +2172,7 @@ forw_comment (from, from_byte, stop, nesting, style, prev_syntax,
     forw_incomment:
       if (from < stop && SYNTAX_FLAGS_COMEND_FIRST (syntax)
          && SYNTAX_FLAGS_COMMENT_STYLE (syntax) == style
-         && (c1 = FETCH_CHAR (from_byte),
+         && (c1 = FETCH_CHAR_AS_MULTIBYTE (from_byte),
              SYNTAX_COMEND_SECOND (c1))
          && ((SYNTAX_FLAGS_COMMENT_NESTED (syntax) ||
               SYNTAX_COMMENT_NESTED (c1)) ? nesting > 0 : nesting < 0))
@@ -1970,7 +2191,7 @@ forw_comment (from, from_byte, stop, nesting, style, prev_syntax,
       if (nesting > 0
          && from < stop
          && SYNTAX_FLAGS_COMSTART_FIRST (syntax)
-         && (c1 = FETCH_CHAR (from_byte),
+         && (c1 = FETCH_CHAR_AS_MULTIBYTE (from_byte),
              SYNTAX_COMMENT_STYLE (c1) == style
              && SYNTAX_COMSTART_SECOND (c1))
          && (SYNTAX_FLAGS_COMMENT_NESTED (syntax) ||
@@ -2034,7 +2255,7 @@ between them, return t; otherwise return nil.  */)
              immediate_quit = 0;
              return Qnil;
            }
-         c = FETCH_CHAR (from_byte);
+         c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
          code = SYNTAX (c);
          comstart_first = SYNTAX_COMSTART_FIRST (c);
          comnested = SYNTAX_COMMENT_NESTED (c);
@@ -2042,7 +2263,7 @@ between them, return t; otherwise return nil.  */)
          INC_BOTH (from, from_byte);
          UPDATE_SYNTAX_TABLE_FORWARD (from);
          if (from < stop && comstart_first
-             && (c1 = FETCH_CHAR (from_byte),
+             && (c1 = FETCH_CHAR_AS_MULTIBYTE (from_byte),
                  SYNTAX_COMSTART_SECOND (c1)))
            {
              /* We have encountered a comment start sequence and we
@@ -2100,7 +2321,7 @@ between them, return t; otherwise return nil.  */)
          DEC_BOTH (from, from_byte);
          /* char_quoted does UPDATE_SYNTAX_TABLE_BACKWARD (from).  */
          quoted = char_quoted (from, from_byte);
-         c = FETCH_CHAR (from_byte);
+         c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
          code = SYNTAX (c);
          comstyle = 0;
          comnested = SYNTAX_COMMENT_NESTED (c);
@@ -2117,7 +2338,7 @@ between them, return t; otherwise return nil.  */)
              code = Sendcomment;
              /* Calling char_quoted, above, set up global syntax position
                 at the new value of FROM.  */
-             c1 = FETCH_CHAR (from_byte);
+             c1 = FETCH_CHAR_AS_MULTIBYTE (from_byte);
              comstyle = SYNTAX_COMMENT_STYLE (c1);
              comnested = comnested || SYNTAX_COMMENT_NESTED (c1);
            }
@@ -2131,7 +2352,7 @@ between them, return t; otherwise return nil.  */)
                {
                  DEC_BOTH (from, from_byte);
                  UPDATE_SYNTAX_TABLE_BACKWARD (from);
-                 c = FETCH_CHAR (from_byte);
+                 c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
                  if (SYNTAX (c) == Scomment_fence
                      && !char_quoted (from, from_byte))
                    {
@@ -2197,11 +2418,11 @@ between them, return t; otherwise return nil.  */)
   return Qt;
 }
 \f
-/* Return syntax code of character C if C is a single byte character
+/* Return syntax code of character C if C is an ASCII character
    or `multibyte_symbol_p' is zero.  Otherwise, return Ssymbol.  */
 
-#define SYNTAX_WITH_MULTIBYTE_CHECK(c)                 \
-  ((SINGLE_BYTE_CHAR_P (c) || !multibyte_symbol_p)     \
+#define SYNTAX_WITH_MULTIBYTE_CHECK(c)         \
+  ((ASCII_CHAR_P (c) || !multibyte_symbol_p)   \
    ? SYNTAX (c) : Ssymbol)
 
 static Lisp_Object
@@ -2245,7 +2466,7 @@ scan_lists (from, count, depth, sexpflag)
        {
          int comstart_first, prefix;
          UPDATE_SYNTAX_TABLE_FORWARD (from);
-         c = FETCH_CHAR (from_byte);
+         c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
          code = SYNTAX_WITH_MULTIBYTE_CHECK (c);
          comstart_first = SYNTAX_COMSTART_FIRST (c);
          comnested = SYNTAX_COMMENT_NESTED (c);
@@ -2256,7 +2477,8 @@ scan_lists (from, count, depth, sexpflag)
          INC_BOTH (from, from_byte);
          UPDATE_SYNTAX_TABLE_FORWARD (from);
          if (from < stop && comstart_first
-             && (c = FETCH_CHAR (from_byte), SYNTAX_COMSTART_SECOND (c))
+             && (c = FETCH_CHAR_AS_MULTIBYTE (from_byte),
+                 SYNTAX_COMSTART_SECOND (c))
              && parse_sexp_ignore_comments)
            {
              /* we have encountered a comment start sequence and we
@@ -2265,7 +2487,7 @@ scan_lists (from, count, depth, sexpflag)
                 only a comment end of the same style actually ends
                 the comment section */
              code = Scomment;
-             c1 = FETCH_CHAR (from_byte);
+             c1 = FETCH_CHAR_AS_MULTIBYTE (from_byte);
              comstyle = SYNTAX_COMMENT_STYLE (c1);
              comnested = comnested || SYNTAX_COMMENT_NESTED (c1);
              INC_BOTH (from, from_byte);
@@ -2291,7 +2513,7 @@ scan_lists (from, count, depth, sexpflag)
                  UPDATE_SYNTAX_TABLE_FORWARD (from);
 
                  /* Some compilers can't handle this inside the switch.  */
-                 c = FETCH_CHAR (from_byte);
+                 c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
                  temp = SYNTAX_WITH_MULTIBYTE_CHECK (c);
                  switch (temp)
                    {
@@ -2334,7 +2556,7 @@ scan_lists (from, count, depth, sexpflag)
            case Smath:
              if (!sexpflag)
                break;
-             if (from != stop && c == FETCH_CHAR (from_byte))
+             if (from != stop && c == FETCH_CHAR_AS_MULTIBYTE (from_byte))
                {
                  INC_BOTH (from, from_byte);
                }
@@ -2361,12 +2583,12 @@ scan_lists (from, count, depth, sexpflag)
            case Sstring:
            case Sstring_fence:
              temp_pos = dec_bytepos (from_byte);
-             stringterm = FETCH_CHAR (temp_pos);
+             stringterm = FETCH_CHAR_AS_MULTIBYTE (temp_pos);
              while (1)
                {
                  if (from >= stop) goto lose;
                  UPDATE_SYNTAX_TABLE_FORWARD (from);
-                 c = FETCH_CHAR (from_byte);
+                 c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
                  if (code == Sstring
                      ? (c == stringterm
                         && SYNTAX_WITH_MULTIBYTE_CHECK (c) == Sstring)
@@ -2409,7 +2631,7 @@ scan_lists (from, count, depth, sexpflag)
        {
          DEC_BOTH (from, from_byte);
          UPDATE_SYNTAX_TABLE_BACKWARD (from);
-         c = FETCH_CHAR (from_byte);
+         c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
          code = SYNTAX_WITH_MULTIBYTE_CHECK (c);
          if (depth == min_depth)
            last_good = from;
@@ -2427,7 +2649,7 @@ scan_lists (from, count, depth, sexpflag)
              DEC_BOTH (from, from_byte);
              UPDATE_SYNTAX_TABLE_BACKWARD (from);
              code = Sendcomment;
-             c1 = FETCH_CHAR (from_byte);
+             c1 = FETCH_CHAR_AS_MULTIBYTE (from_byte);
              comstyle = SYNTAX_COMMENT_STYLE (c1);
              comnested = comnested || SYNTAX_COMMENT_NESTED (c1);
            }
@@ -2460,7 +2682,7 @@ scan_lists (from, count, depth, sexpflag)
                  else
                    temp_pos--;
                  UPDATE_SYNTAX_TABLE_BACKWARD (from - 1);
-                 c1 = FETCH_CHAR (temp_pos);
+                 c1 = FETCH_CHAR_AS_MULTIBYTE (temp_pos);
                  temp_code = SYNTAX_WITH_MULTIBYTE_CHECK (c1);
                  /* Don't allow comment-end to be quoted.  */
                  if (temp_code == Sendcomment)
@@ -2472,7 +2694,7 @@ scan_lists (from, count, depth, sexpflag)
                      temp_pos = dec_bytepos (temp_pos);
                      UPDATE_SYNTAX_TABLE_BACKWARD (from - 1);
                    }
-                 c1 = FETCH_CHAR (temp_pos);
+                 c1 = FETCH_CHAR_AS_MULTIBYTE (temp_pos);
                  temp_code = SYNTAX_WITH_MULTIBYTE_CHECK (c1);
                  if (! (quoted || temp_code == Sword
                         || temp_code == Ssymbol
@@ -2487,7 +2709,7 @@ scan_lists (from, count, depth, sexpflag)
                break;
              temp_pos = dec_bytepos (from_byte);
              UPDATE_SYNTAX_TABLE_BACKWARD (from - 1);
-             if (from != stop && c == FETCH_CHAR (temp_pos))
+             if (from != stop && c == FETCH_CHAR_AS_MULTIBYTE (temp_pos))
                DEC_BOTH (from, from_byte);
              if (mathexit)
                {
@@ -2532,7 +2754,7 @@ scan_lists (from, count, depth, sexpflag)
                  DEC_BOTH (from, from_byte);
                  UPDATE_SYNTAX_TABLE_BACKWARD (from);
                  if (!char_quoted (from, from_byte)
-                     && (c = FETCH_CHAR (from_byte),
+                     && (c = FETCH_CHAR_AS_MULTIBYTE (from_byte),
                          SYNTAX_WITH_MULTIBYTE_CHECK (c) == code))
                    break;
                }
@@ -2540,14 +2762,15 @@ scan_lists (from, count, depth, sexpflag)
              break;
 
            case Sstring:
-             stringterm = FETCH_CHAR (from_byte);
+             stringterm = FETCH_CHAR_AS_MULTIBYTE (from_byte);
              while (1)
                {
                  if (from == stop) goto lose;
                  DEC_BOTH (from, from_byte);
                  UPDATE_SYNTAX_TABLE_BACKWARD (from);
                  if (!char_quoted (from, from_byte)
-                     && stringterm == (c = FETCH_CHAR (from_byte))
+                     && (stringterm
+                         == (c = FETCH_CHAR_AS_MULTIBYTE (from_byte)))
                      && SYNTAX_WITH_MULTIBYTE_CHECK (c) == Sstring)
                    break;
                }
@@ -2650,7 +2873,7 @@ This includes chars with "quote" or "prefix" syntax (' or p).  */)
 
   while (!char_quoted (pos, pos_byte)
         /* Previous statement updates syntax table.  */
-        && ((c = FETCH_CHAR (pos_byte), SYNTAX (c) == Squote)
+        && ((c = FETCH_CHAR_AS_MULTIBYTE (pos_byte), SYNTAX (c) == Squote)
             || SYNTAX_PREFIX (c)))
     {
       opoint = pos;
@@ -2678,7 +2901,8 @@ scan_sexps_forward (stateptr, from, from_byte, end, targetdepth,
                    stopbefore, oldstate, commentstop)
      struct lisp_parse_state *stateptr;
      register int from;
-     int end, targetdepth, stopbefore, from_byte;
+     int from_byte;
+     int end, targetdepth, stopbefore;
      Lisp_Object oldstate;
      int commentstop;
 {
@@ -2715,7 +2939,7 @@ scan_sexps_forward (stateptr, from, from_byte, end, targetdepth,
 #define INC_FROM                               \
 do { prev_from = from;                         \
      prev_from_byte = from_byte;               \
-     temp = FETCH_CHAR (prev_from_byte);       \
+     temp = FETCH_CHAR_AS_MULTIBYTE (prev_from_byte);  \
      prev_from_syntax = SYNTAX_WITH_FLAGS (temp); \
      INC_BOTH (from, from_byte);               \
      if (from < end)                           \
@@ -2871,7 +3095,7 @@ do { prev_from = from;                            \
          while (from < end)
            {
              /* Some compilers can't handle this inside the switch.  */
-             temp = FETCH_CHAR (from_byte);
+             temp = FETCH_CHAR_AS_MULTIBYTE (from_byte);
              temp = SYNTAX (temp);
              switch (temp)
                {
@@ -2945,7 +3169,7 @@ do { prev_from = from;                            \
          if (stopbefore) goto stop;  /* this arg means stop at sexp start */
          curlevel->last = prev_from;
          state.instring = (code == Sstring
-                           ? (FETCH_CHAR (prev_from_byte))
+                           ? (FETCH_CHAR_AS_MULTIBYTE (prev_from_byte))
                            : ST_STRING_STYLE);
          if (boundary_stop) goto done;
        startinstring:
@@ -2957,7 +3181,7 @@ do { prev_from = from;                            \
                int c;
 
                if (from >= end) goto done;
-               c = FETCH_CHAR (from_byte);
+               c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
                /* Some compilers can't handle this inside the switch.  */
                temp = SYNTAX (c);
 
@@ -3183,8 +3407,7 @@ init_syntax_once ()
 
   /* All multibyte characters have syntax `word' by default.  */
   temp = XVECTOR (Vsyntax_code_object)->contents[(int) Sword];
-  for (i = CHAR_TABLE_SINGLE_BYTE_SLOTS; i < CHAR_TABLE_ORDINARY_SLOTS; i++)
-    XCHAR_TABLE (Vstandard_syntax_table)->contents[i] = temp;
+  char_table_set_range (Vstandard_syntax_table, 0x80, MAX_CHAR, temp);
 }
 
 void
@@ -3232,6 +3455,25 @@ See the info node `(elisp)Syntax Properties' for a description of the
               doc: /* *Non-nil means an open paren in column 0 denotes the start of a defun.  */);
   open_paren_in_column_0_is_defun_start = 1;
 
+
+  DEFVAR_LISP ("find-word-boundary-function-table",
+              &Vfind_word_boundary_function_table,
+              doc: /*
+Char table of functions to search for the word boundary.
+Each function is called with two arguments; POS and LIMIT.
+POS and LIMIT are character positions in the current buffer.
+
+If POS is less than LIMIT, POS is at the first character of a word,
+and the return value of a function is a position after the last
+character of that word.
+
+If POS is not less than LIMIT, POS is at the last character of a word,
+and the return value of a function is a position at the first
+character of that word.
+
+In both cases, LIMIT bounds the search. */);
+  Vfind_word_boundary_function_table = Fmake_char_table (Qnil, Qnil);
+
   defsubr (&Ssyntax_table_p);
   defsubr (&Ssyntax_table);
   defsubr (&Sstandard_syntax_table);
index 4026eeaee8f0bb3cb2b2a2a977fbdf271990bd5c..a23e838deae91faa60f520f0a9809bcc7c126c03 100644 (file)
@@ -58,37 +58,14 @@ enum syntaxcode
 
 /* Set the syntax entry VAL for char C in table TABLE.  */
 
-#define SET_RAW_SYNTAX_ENTRY(table, c, val)                            \
-  ((((c) & 0xFF) == (c))                                               \
-   ? (XCHAR_TABLE (table)->contents[(unsigned char) (c)] = (val))      \
-   : Faset ((table), make_number (c), (val)))
+#define SET_RAW_SYNTAX_ENTRY(table, c, val)    \
+  CHAR_TABLE_SET ((table), c, (val))
 
-/* Fetch the syntax entry for char C in syntax table TABLE.
-   This macro is called only when C is less than CHAR_TABLE_ORDINARY_SLOTS.
-   Do inheritance.  */
+/* Set the syntax entry VAL for char-range RANGE in table TABLE.
+   RANGE is a cons (FROM . TO) specifying the range of characters.  */
 
-#ifdef __GNUC__
-#define SYNTAX_ENTRY_FOLLOW_PARENT(table, c)                   \
-  ({ Lisp_Object _syntax_tbl = (table);                                \
-     Lisp_Object _syntax_temp = XCHAR_TABLE (_syntax_tbl)->contents[(c)]; \
-     while (NILP (_syntax_temp))                               \
-       {                                                       \
-        _syntax_tbl = XCHAR_TABLE (_syntax_tbl)->parent;       \
-        if (NILP (_syntax_tbl))                                \
-          break;                                               \
-        _syntax_temp = XCHAR_TABLE (_syntax_tbl)->contents[(c)]; \
-       }                                                       \
-     _syntax_temp; })
-#else
-extern Lisp_Object syntax_temp;
-extern Lisp_Object syntax_parent_lookup P_ ((Lisp_Object, int));
-
-#define SYNTAX_ENTRY_FOLLOW_PARENT(table, c)           \
-  (syntax_temp = XCHAR_TABLE (table)->contents[(c)],   \
-   (NILP (syntax_temp)                                 \
-    ? syntax_parent_lookup (table, (c))                        \
-    : syntax_temp))
-#endif
+#define SET_RAW_SYNTAX_ENTRY_RANGE(table, range, val)  \
+  Fset_char_table_range ((table), (range), (val))
 
 /* SYNTAX_ENTRY fetches the information from the entry for character C
    in syntax table TABLE, or from globally kept data (gl_state).
@@ -106,12 +83,7 @@ extern Lisp_Object syntax_parent_lookup P_ ((Lisp_Object, int));
 #  define CURRENT_SYNTAX_TABLE current_buffer->syntax_table
 #endif
 
-#define SYNTAX_ENTRY_INT(c)                            \
-  ((((c) & 0xFF) == (c))                               \
-   ? SYNTAX_ENTRY_FOLLOW_PARENT (CURRENT_SYNTAX_TABLE, \
-                                (unsigned char) (c))   \
-   : Faref (CURRENT_SYNTAX_TABLE,                      \
-           make_number (c)))
+#define SYNTAX_ENTRY_INT(c) CHAR_TABLE_REF (CURRENT_SYNTAX_TABLE, (c))
 
 /* Extract the information from the entry for character C
    in the current syntax table.  */
@@ -138,6 +110,7 @@ extern Lisp_Object syntax_parent_lookup P_ ((Lisp_Object, int));
       ? XCDR (_syntax_temp)                                            \
       : Qnil); })
 #else
+extern Lisp_Object syntax_temp;
 #define SYNTAX(c)                                                      \
   (syntax_temp = SYNTAX_ENTRY ((c)),                                   \
    (CONSP (syntax_temp)                                                        \
index 20c7be33e384e47588e71697266432f215ea0325..e7d66420ffa06c5ec4c748b2ca1e567128ad6a9f 100644 (file)
@@ -42,8 +42,11 @@ Boston, MA 02110-1301, USA.  */
 #include "lisp.h"
 #include "termchar.h"
 #include "termopts.h"
+#include "buffer.h"
+#include "character.h"
 #include "charset.h"
 #include "coding.h"
+#include "composite.h"
 #include "keyboard.h"
 #include "frame.h"
 #include "disptab.h"
@@ -187,7 +190,6 @@ extern char *tgetstr ();
 
 #ifdef HAVE_GPM
 #include <sys/fcntl.h>
-#include "buffer.h"
 
 static void term_clear_mouse_face ();
 static void term_mouse_highlight (struct frame *f, int x, int y);
@@ -548,10 +550,12 @@ tty_clear_end_of_line (struct frame *f, int first_unused_hpos)
     }
 }
 \f
-/* Buffer to store the source and result of code conversion for terminal.  */
-static unsigned char *encode_terminal_buf;
-/* Allocated size of the above buffer.  */
-static int encode_terminal_bufsize;
+/* Buffers to store the source and result of code conversion for terminal.  */
+static unsigned char *encode_terminal_src;
+static unsigned char *encode_terminal_dst;
+/* Allocated sizes of the above buffers.  */
+static int encode_terminal_src_size;
+static int encode_terminal_dst_size;
 
 /* Encode SRC_LEN glyphs starting at SRC to terminal output codes.
    Set CODING->produced to the byte-length of the resulting byte
@@ -569,37 +573,73 @@ encode_terminal_code (src, src_len, coding)
   int nchars, nbytes, required;
   register int tlen = GLYPH_TABLE_LENGTH;
   register Lisp_Object *tbase = GLYPH_TABLE_BASE;
+  Lisp_Object charset_list;
 
   /* Allocate sufficient size of buffer to store all characters in
      multibyte-form.  But, it may be enlarged on demand if
-     Vglyph_table contains a string.  */
+     Vglyph_table contains a string or a composite glyph is
+     encountered.  */
   required = MAX_MULTIBYTE_LENGTH * src_len;
-  if (encode_terminal_bufsize < required)
+  if (encode_terminal_src_size < required)
     {
-      if (encode_terminal_bufsize == 0)
-       encode_terminal_buf = xmalloc (required);
+      if (encode_terminal_src_size == 0)
+       encode_terminal_src = xmalloc (required);
       else
-       encode_terminal_buf = xrealloc (encode_terminal_buf, required);
-      encode_terminal_bufsize = required;
+       encode_terminal_src = xrealloc (encode_terminal_src, required);
+      encode_terminal_src_size = required;
     }
 
-  buf = encode_terminal_buf;
+  charset_list = coding_charset_list (coding);
+
+  buf = encode_terminal_src;
   nchars = 0;
   while (src < src_end)
     {
+      if (src->type == COMPOSITE_GLYPH)
+       {
+         struct composition *cmp = composition_table[src->u.cmp_id];
+         int i;
+
+         nbytes = buf - encode_terminal_src;
+         required = MAX_MULTIBYTE_LENGTH * cmp->glyph_len;
+
+         if (encode_terminal_src_size < nbytes + required)
+           {
+             encode_terminal_src_size = nbytes + required;
+             encode_terminal_src = xrealloc (encode_terminal_src,
+                                             encode_terminal_src_size);
+             buf = encode_terminal_src + nbytes;
+           }
+
+         for (i = 0; i < cmp->glyph_len; i++)
+           {
+             int c = COMPOSITION_GLYPH (cmp, i);
+             
+             if (! char_charset (c, charset_list, NULL))
+               break;
+             buf += CHAR_STRING (c, buf);
+             nchars++;
+           }
+         if (i == 0)
+           {
+             /* The first character of the composition is not encodable.  */
+             *buf++ = '?';
+             nchars++;
+           }
+       }
       /* We must skip glyphs to be padded for a wide character.  */
-      if (! CHAR_GLYPH_PADDING_P (*src))
+      else if (! CHAR_GLYPH_PADDING_P (*src))
        {
+         int c;
+         Lisp_Object string;
+
+         string = Qnil;
          g = GLYPH_FROM_CHAR_GLYPH (src[0]);
 
          if (g < 0 || g >= tlen)
            {
              /* This glyph doesn't has an entry in Vglyph_table.  */
-             if (CHAR_VALID_P (src->u.ch, 0))
-               buf += CHAR_STRING (src->u.ch, buf);
-             else
-               *buf++ = SPACEGLYPH;
-             nchars++;
+             c = src->u.ch;
            }
          else
            {
@@ -608,65 +648,90 @@ encode_terminal_code (src, src_len, coding)
              GLYPH_FOLLOW_ALIASES (tbase, tlen, g);
 
              if (GLYPH_SIMPLE_P (tbase, tlen, g))
-               {
-                 int c = FAST_GLYPH_CHAR (g);
+               /* We set the multi-byte form of a character in G
+                  (that should be an ASCII character) at WORKBUF.  */
+               c = FAST_GLYPH_CHAR (g);
+             else
+               /* We have a string in Vglyph_table.  */
+               string = tbase[g];
+           }
 
-                 if (CHAR_VALID_P (c, 0))
-                   buf += CHAR_STRING (c, buf);
-                 else
-                   *buf++ = SPACEGLYPH;
+         if (NILP (string))
+           {
+             nbytes = buf - encode_terminal_src;
+             if (encode_terminal_src_size < nbytes + MAX_MULTIBYTE_LENGTH)
+               {
+                 encode_terminal_src_size = nbytes + MAX_MULTIBYTE_LENGTH;
+                 encode_terminal_src = xrealloc (encode_terminal_src,
+                                                 encode_terminal_src_size);
+                 buf = encode_terminal_src + nbytes;
+               }
+             if (char_charset (c, charset_list, NULL))
+               {
+                 /* Store the multibyte form of C at BUF.  */
+                 buf += CHAR_STRING (c, buf);
                  nchars++;
                }
              else
                {
-                 /* We have a string in Vglyph_table.  */
-                 Lisp_Object string;
-
-                 string = tbase[g];
-                 if (! STRING_MULTIBYTE (string))
-                   string = string_to_multibyte (string);
-                 nbytes = buf - encode_terminal_buf;
-                 if (encode_terminal_bufsize < nbytes + SBYTES (string))
+                 /* C is not encodable.  */
+                 *buf++ = '?';
+                 nchars++;
+                 while (src + 1 < src_end && CHAR_GLYPH_PADDING_P (src[1]))
                    {
-                     encode_terminal_bufsize = nbytes + SBYTES (string);
-                     encode_terminal_buf = xrealloc (encode_terminal_buf,
-                                                     encode_terminal_bufsize);
-                     buf = encode_terminal_buf + nbytes;
+                     *buf++ = '?';
+                     nchars++;
+                     src++;
                    }
-                 bcopy (SDATA (string), buf, SBYTES (string));
-                 buf += SBYTES (string);
-                 nchars += SCHARS (string);
                }
            }
+         else
+           {
+             unsigned char *p = SDATA (string), *pend = p + SBYTES (string);
+
+             if (! STRING_MULTIBYTE (string))
+               string = string_to_multibyte (string);
+             nbytes = buf - encode_terminal_src;
+             if (encode_terminal_src_size < nbytes + SBYTES (string))
+               {
+                 encode_terminal_src_size = nbytes + SBYTES (string);
+                 encode_terminal_src = xrealloc (encode_terminal_src,
+                                                 encode_terminal_src_size);
+                 buf = encode_terminal_src + nbytes;
+               }
+             bcopy (SDATA (string), buf, SBYTES (string));
+             buf += SBYTES (string);
+             nchars += SCHARS (string);
+           }
        }
       src++;
     }
 
-  nbytes = buf - encode_terminal_buf;
-  coding->src_multibyte = 1;
-  coding->dst_multibyte = 0;
-  if (SYMBOLP (coding->pre_write_conversion)
-      && ! NILP (Ffboundp (coding->pre_write_conversion)))
+  if (nchars == 0)
     {
-      run_pre_write_conversin_on_c_str (&encode_terminal_buf,
-                                       &encode_terminal_bufsize,
-                                       nchars, nbytes, coding);
-      nchars = coding->produced_char;
-      nbytes = coding->produced;
+      coding->produced = 0;
+      return NULL;
     }
-  required = nbytes + encoding_buffer_size (coding, nbytes);
-  if (encode_terminal_bufsize < required)
+
+  nbytes = buf - encode_terminal_src;
+  coding->source = encode_terminal_src;
+  if (encode_terminal_dst_size == 0)
     {
-      encode_terminal_bufsize = required;
-      encode_terminal_buf = xrealloc (encode_terminal_buf, required);
+      encode_terminal_dst_size = encode_terminal_src_size;
+      encode_terminal_dst = xmalloc (encode_terminal_dst_size);
     }
+  coding->destination = encode_terminal_dst;
+  coding->dst_bytes = encode_terminal_dst_size;
+  encode_coding_object (coding, Qnil, 0, 0, nchars, nbytes, Qnil);
+  /* coding->destination may have been reallocated.  */
+  encode_terminal_dst = coding->destination;
+  encode_terminal_dst_size = coding->dst_bytes;
 
-  encode_coding (coding, encode_terminal_buf, encode_terminal_buf + nbytes,
-                nbytes, encode_terminal_bufsize - nbytes);
-  return encode_terminal_buf + nbytes;
+  return (encode_terminal_dst);
 }
 
 
+
 /* An implementation of write_glyphs for termcap frames. */
 
 static void
@@ -1420,11 +1485,14 @@ term_get_fkeys_1 ()
 #ifdef static
 #define append_glyph append_glyph_term
 #define produce_stretch_glyph produce_stretch_glyph_term
+#define append_composite_glyph append_composite_glyph_term
+#define produce_composite_glyph produce_composite_glyph_term
 #endif
 
 static void append_glyph P_ ((struct it *));
 static void produce_stretch_glyph P_ ((struct it *));
-
+static void append_composite_glyph P_ ((struct it *));
+static void produce_composite_glyph P_ ((struct it *));
 
 /* Append glyphs to IT's glyph_row.  Called from produce_glyphs for
    terminal frames if IT->glyph_row != NULL.  IT->char_to_display is
@@ -1485,6 +1553,8 @@ produce_glyphs (it)
      struct it *it;
 {
   /* If a hook is installed, let it do the work.  */
+
+  /* Nothing but characters are supported on terminal frames.  */
   xassert (it->what == IT_CHARACTER
           || it->what == IT_COMPOSITION
           || it->what == IT_STRETCH);
@@ -1495,11 +1565,11 @@ produce_glyphs (it)
       goto done;
     }
 
-  /* Nothing but characters are supported on terminal frames.  For a
-     composition sequence, it->c is the first character of the
-     sequence.  */
-  xassert (it->what == IT_CHARACTER
-          || it->what == IT_COMPOSITION);
+  if (it->what == IT_COMPOSITION)
+    {
+      produce_composite_glyph (it);
+      goto done;
+    }
 
   /* Maybe translate single-byte characters to multibyte.  */
   it->char_to_display = it->c;
@@ -1543,28 +1613,24 @@ produce_glyphs (it)
       it->pixel_width = nspaces;
       it->nglyphs = nspaces;
     }
-  else if (SINGLE_BYTE_CHAR_P (it->c))
+  else if (CHAR_BYTE8_P (it->c))
     {
       if (unibyte_display_via_language_environment
-         && (it->c >= 0240
-             || !NILP (Vnonascii_translation_table)))
+         && (it->c >= 0240))
        {
-         int charset;
-
          it->char_to_display = unibyte_char_to_multibyte (it->c);
-         charset = CHAR_CHARSET (it->char_to_display);
-         it->pixel_width = CHARSET_WIDTH (charset);
+         it->pixel_width = CHAR_WIDTH (it->char_to_display);
          it->nglyphs = it->pixel_width;
          if (it->glyph_row)
            append_glyph (it);
        }
       else
        {
-         /* Coming here means that it->c is from display table, thus we
-            must send the code as is to the terminal.  Although there's
-            no way to know how many columns it occupies on a screen, it
-            is a good assumption that a single byte code has 1-column
-            width.  */
+         /* Coming here means that it->c is from display table, thus
+            we must send the raw 8-bit byte as is to the terminal.
+            Although there's no way to know how many columns it
+            occupies on a screen, it is a good assumption that a
+            single byte code has 1-column width.  */
          it->pixel_width = it->nglyphs = 1;
          if (it->glyph_row)
            append_glyph (it);
@@ -1572,13 +1638,7 @@ produce_glyphs (it)
     }
   else
     {
-      /* A multi-byte character.  The display width is fixed for all
-        characters of the set.  Some of the glyphs may have to be
-        ignored because they are already displayed in a continued
-        line.  */
-      int charset = CHAR_CHARSET (it->c);
-
-      it->pixel_width = CHARSET_WIDTH (charset);
+      it->pixel_width = CHAR_WIDTH (it->c);
       it->nglyphs = it->pixel_width;
 
       if (it->glyph_row)
@@ -1668,6 +1728,57 @@ produce_stretch_glyph (it)
 }
 
 
+/* Append glyphs to IT's glyph_row for the composition IT->cmp_id.
+   Called from produce_composite_glyph for terminal frames if
+   IT->glyph_row != NULL.  IT->face_id contains the character's
+   face.  */
+
+static void
+append_composite_glyph (it)
+     struct it *it;
+{
+  struct glyph *glyph;
+
+  xassert (it->glyph_row);
+  glyph = it->glyph_row->glyphs[it->area] + it->glyph_row->used[it->area];
+  if (glyph < it->glyph_row->glyphs[1 + it->area])
+    {
+      glyph->type = COMPOSITE_GLYPH;
+      glyph->pixel_width = it->pixel_width;
+      glyph->u.cmp_id = it->cmp_id;
+      glyph->face_id = it->face_id;
+      glyph->padding_p = 0;
+      glyph->charpos = CHARPOS (it->position);
+      glyph->object = it->object;
+
+      ++it->glyph_row->used[it->area];
+      ++glyph;
+    }
+}
+
+
+/* Produce a composite glyph for iterator IT.  IT->cmp_id is the ID of
+   the composition.  We simply produces components of the composition
+   assuming that that the terminal has a capability to layout/render
+   it correctly.  */
+
+static void
+produce_composite_glyph (it)
+     struct it *it;
+{
+  struct composition *cmp = composition_table[it->cmp_id];
+  int c;
+
+  xassert (cmp->glyph_len > 0);
+  c = COMPOSITION_GLYPH (cmp, 0);
+  it->pixel_width = CHAR_WIDTH (it->c);
+  it->nglyphs = 1;
+
+  if (it->glyph_row)
+    append_composite_glyph (it);
+}
+
+
 /* Get information about special display element WHAT in an
    environment described by IT.  WHAT is one of IT_TRUNCATION or
    IT_CONTINUATION.  Maybe produce glyphs for WHAT if IT has a
@@ -3269,7 +3380,8 @@ init_tty (char *name, char *terminal_type, int must_succeed)
 
 #endif
 
-  encode_terminal_bufsize = 0;
+  encode_terminal_src_size = 0;
+  encode_terminal_dst_size = 0;
 
 #ifdef HAVE_GPM
   terminal->mouse_position_hook = term_mouse_position;
index 46ffb3c2dc814bc7fcdf50387ffd8c1b872d0ed6..8b1836b36816e0acd06cefd1e5ba41d44341c7b0 100644 (file)
@@ -242,8 +242,8 @@ create_terminal (void)
   terminal->terminal_coding =
     (struct coding_system *) xmalloc (sizeof (struct coding_system));
 
-  setup_coding_system (Qnil, terminal->keyboard_coding);
-  setup_coding_system (Qnil, terminal->terminal_coding);
+  setup_coding_system (Qno_conversion, terminal->keyboard_coding);
+  setup_coding_system (Qundecided, terminal->terminal_coding);
 
   terminal->param_alist = Qnil;
   return terminal;
index a66fba7d07864063ea142842ae4ae4bde0e79f1c..80246af8fbda90b23602e7ef9d2f80bc524facc7 100644 (file)
@@ -39,7 +39,7 @@ Boston, MA 02110-1301, USA.  */
 #include "frame.h"     /* Need this to get the X window of selected_frame */
 #include "blockinput.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "composite.h"
 
index 4a12b1f01900b75affeedab501a13b45fd3f6e32..dd6abd8a743d63b7d8bfaef47e6383ca797b8617 100644 (file)
@@ -29,7 +29,7 @@ Boston, MA 02110-1301, USA.  */
 #endif
 
 #include "lisp.h"
-#include "charset.h"
+#include "character.h"
 #include "keyboard.h"
 #include "frame.h"
 #include "dispextern.h"
@@ -93,7 +93,7 @@ proceed_file_line(char *key, char *start, int *len, char **val, char **next)
   return 1;
 }
 
-char*
+static char*
 get_quoted_string(char *start, char *end)
 {
   char *p, *q, *result;
@@ -202,7 +202,7 @@ set_bdf_font_info(bdffont *fontp)
     else if (search_file_line("CHARSET_ENCODING", start, len,
                              (char **)&p, (char **)&q) == 1)
       {
-        fontp->encoding = get_quoted_string(p, q);
+       fontp->encoding = get_quoted_string(p, q);
       }
     else if (search_file_line("SLANT", start, len,
                              (char **)&p, (char **)&q) == 1)
@@ -790,7 +790,7 @@ struct font_info *w32_load_bdf_font (struct frame *f, char *fontname,
        uses this font.  So, we set informatoin in fontp->encoding[1]
        which is never used by any charset.  If mapping can't be
        decided, set FONT_ENCODING_NOT_DECIDED.  */
-    fontp->encoding[1] = FONT_ENCODING_NOT_DECIDED;
+    fontp->encoding_type = FONT_ENCODING_NOT_DECIDED;
     fontp->baseline_offset = bdf_font->yoffset;
     fontp->relative_compose = bdf_font->relative_compose;
     fontp->default_ascent = bdf_font->default_ascent;
index b1514f960b71e3f5309ea3e56daa30c401e08cd9..d5f7a66a0e84cd32ab753160562898a9407994be 100644 (file)
@@ -32,7 +32,7 @@ Boston, MA 02110-1301, USA.
 #include <string.h>
 
 #include "lisp.h"
-#include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "disptab.h"
 #include "frame.h"
index 6b005546a47cb011d663075e8ddec036fa23ce69..74629225cbfeba433979f0692b7148e4f34b0d54 100644 (file)
@@ -30,22 +30,23 @@ Boston, MA 02110-1301, USA.  */
 #include <math.h>
 
 #include "lisp.h"
-#include "charset.h"
-#include "dispextern.h"
 #include "w32term.h"
-#include "keyboard.h"
 #include "frame.h"
 #include "window.h"
 #include "buffer.h"
-#include "fontset.h"
 #include "intervals.h"
+#include "dispextern.h"
+#include "keyboard.h"
 #include "blockinput.h"
 #include "epaths.h"
-#include "w32heap.h"
-#include "termhooks.h"
+#include "character.h"
+#include "charset.h"
 #include "coding.h"
 #include "ccl.h"
+#include "fontset.h"
 #include "systime.h"
+#include "termhooks.h"
+#include "w32heap.h"
 
 #include "bitmaps/gray.xbm"
 
@@ -57,8 +58,13 @@ Boston, MA 02110-1301, USA.  */
 #include <objbase.h>
 
 #include <dlgs.h>
+#include <imm.h>
 #define FILE_NAME_TEXT_FIELD edt1
 
+#ifdef USE_FONT_BACKEND
+#include "font.h"
+#endif
+
 void syms_of_w32fns ();
 void globals_of_w32fns ();
 
@@ -256,11 +262,20 @@ static HWND track_mouse_window;
 
 typedef BOOL (WINAPI * TrackMouseEvent_Proc)
   (IN OUT LPTRACKMOUSEEVENT lpEventTrack);
+typedef LONG (WINAPI * ImmGetCompositionString_Proc)
+  (IN HIMC context, IN DWORD index, OUT LPVOID buffer, IN DWORD bufLen);
+typedef HIMC (WINAPI * ImmGetContext_Proc) (IN HWND window);
 
 TrackMouseEvent_Proc track_mouse_event_fn = NULL;
 ClipboardSequence_Proc clipboard_sequence_fn = NULL;
+ImmGetCompositionString_Proc get_composition_string_fn = NULL;
+ImmGetContext_Proc get_ime_context_fn = NULL;
+
 extern AppendMenuW_Proc unicode_append_menu;
 
+/* Flag to selectively ignore WM_IME_CHAR messages.  */
+static int ignore_ime_char = 0;
+
 /* W95 mousewheel handler */
 unsigned int msh_mousewheel = 0;
 
@@ -379,10 +394,10 @@ x_window_to_frame (dpyinfo, wdesc)
   Lisp_Object tail, frame;
   struct frame *f;
 
-  for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       frame = XCAR (tail);
-      if (!GC_FRAMEP (frame))
+      if (!FRAMEP (frame))
         continue;
       f = XFRAME (frame);
       if (!FRAME_W32_P (f) || FRAME_W32_DISPLAY_INFO (f) != dpyinfo)
@@ -2449,8 +2464,8 @@ register_hot_keys (hwnd)
 {
   Lisp_Object keylist;
 
-  /* Use GC_CONSP, since we are called asynchronously.  */
-  for (keylist = w32_grabbed_keys; GC_CONSP (keylist); keylist = XCDR (keylist))
+  /* Use CONSP, since we are called asynchronously.  */
+  for (keylist = w32_grabbed_keys; CONSP (keylist); keylist = XCDR (keylist))
     {
       Lisp_Object key = XCAR (keylist);
 
@@ -2469,8 +2484,7 @@ unregister_hot_keys (hwnd)
 {
   Lisp_Object keylist;
 
-  /* Use GC_CONSP, since we are called asynchronously.  */
-  for (keylist = w32_grabbed_keys; GC_CONSP (keylist); keylist = XCDR (keylist))
+  for (keylist = w32_grabbed_keys; CONSP (keylist); keylist = XCDR (keylist))
     {
       Lisp_Object key = XCAR (keylist);
 
@@ -3150,7 +3164,6 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
       if (windows_translate)
        {
          MSG windows_msg = { hwnd, msg, wParam, lParam, 0, {0,0} };
-
          windows_msg.time = GetMessageTime ();
          TranslateMessage (&windows_msg);
          goto dflt;
@@ -3164,6 +3177,64 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
                              w32_get_key_modifiers (wParam, lParam));
       break;
 
+    case WM_UNICHAR:
+      /* WM_UNICHAR looks promising from the docs, but the exact
+         circumstances in which TranslateMessage sends it is one of those
+         Microsoft secret API things that EU and US courts are supposed
+         to have put a stop to already. Spy++ shows it being sent to Notepad
+         and other MS apps, but never to Emacs.
+
+         Some third party IMEs send it in accordance with the official
+         documentation though, so handle it here.
+
+         UNICODE_NOCHAR is used to test for support for this message.
+         TRUE indicates that the message is supported.  */
+      if (wParam == UNICODE_NOCHAR)
+        return TRUE;
+
+      {
+        W32Msg wmsg;
+        wmsg.dwModifiers = w32_get_key_modifiers (wParam, lParam);
+        signal_user_input ();
+        my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
+      }
+      break;
+
+    case WM_IME_CHAR:
+      /* If we can't get the IME result as unicode, use default processing,
+         which will at least allow characters decodable in the system locale
+         get through.  */
+      if (!get_composition_string_fn)
+        goto dflt;
+
+      else if (!ignore_ime_char)
+        {
+          wchar_t * buffer;
+          int size, i;
+          W32Msg wmsg;
+          HIMC context = get_ime_context_fn (hwnd);
+          wmsg.dwModifiers = w32_get_key_modifiers (wParam, lParam);
+          /* Get buffer size.  */
+          size = get_composition_string_fn (context, GCS_RESULTSTR, buffer, 0);
+          buffer = alloca(size);
+          size = get_composition_string_fn (context, GCS_RESULTSTR,
+                                            buffer, size);
+          signal_user_input ();
+          for (i = 0; i < size / sizeof (wchar_t); i++)
+            {
+              my_post_msg (&wmsg, hwnd, WM_UNICHAR, (WPARAM) buffer[i],
+                           lParam);
+            }
+          /* We output the whole string above, so ignore following ones
+             until we are notified of the end of composition.  */
+          ignore_ime_char = 1;
+        }
+      break;
+
+    case WM_IME_ENDCOMPOSITION:
+      ignore_ime_char = 0;
+      goto dflt;
+
       /* Simulate middle mouse button events when left and right buttons
         are used together, but only if user has two button mouse. */
     case WM_LBUTTONDOWN:
@@ -4136,6 +4207,38 @@ unwind_create_frame (frame)
   return Qnil;
 }
 
+#ifdef USE_FONT_BACKEND
+static void
+x_default_font_parameter (f, parms)
+     struct frame *f;
+     Lisp_Object parms;
+{
+  struct w32_display_info *dpyinfo = FRAME_W32_DISPLAY_INFO (f);
+  Lisp_Object font = x_get_arg (dpyinfo, parms, Qfont, "font", "Font",
+                                RES_TYPE_STRING);
+
+  if (!STRINGP (font))
+    {
+      int i;
+      static char *names[]
+        = { "Courier New-10",
+            "-*-Courier-normal-r-*-*-13-*-*-*-c-*-iso8859-1",
+            "-*-Fixedsys-normal-r-*-*-12-*-*-*-c-*-iso8859-1",
+            "Fixedsys",
+            NULL };
+
+      for (i = 0; names[i]; i++)
+        {
+          font = font_open_by_name (f, names[i]);
+          if (! NILP (font))
+            break;
+        }
+      if (NILP (font))
+        error ("No suitable font was found");
+    }
+  x_default_parameter (f, parms, Qfont, font, "font", "Font", RES_TYPE_STRING);
+}
+#endif
 
 DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,
        1, 1, 0,
@@ -4275,8 +4378,28 @@ This function is an internal primitive--use `make-frame' instead.  */)
       specbind (Qx_resource_name, name);
     }
 
+  f->resx = dpyinfo->resx;
+  f->resy = dpyinfo->resy;
+
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      /* Perhaps, we must allow frame parameter, say `font-backend',
+        to specify which font backends to use.  */
+      register_font_driver (&w32font_driver, f);
+
+      x_default_parameter (f, parameters, Qfont_backend, Qnil,
+                          "fontBackend", "FontBackend", RES_TYPE_STRING);
+    }
+#endif /* USE_FONT_BACKEND */
+
   /* Extract the window parameters from the supplied values
      that are needed to determine window geometry.  */
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    x_default_font_parameter (f, parameters);
+  else
+#endif 
   {
     Lisp_Object font;
 
@@ -4288,7 +4411,7 @@ This function is an internal primitive--use `make-frame' instead.  */)
       {
         tem = Fquery_fontset (font, Qnil);
         if (STRINGP (tem))
-          font = x_new_fontset (f, SDATA (tem));
+          font = x_new_fontset (f, tem);
         else
           font = x_new_font (f, SDATA (font));
       }
@@ -4683,10 +4806,10 @@ w32_load_system_font (f, fontname, size)
     fontp->name = (char *) xmalloc (strlen (fontname) + 1);
     bcopy (fontname, fontp->name, strlen (fontname) + 1);
 
-    if (lf.lfPitchAndFamily == FIXED_PITCH)
+    if ((lf.lfPitchAndFamily & 0x03) == FIXED_PITCH)
       {
        /* Fixed width font.  */
-       fontp->average_width = fontp->space_width = FONT_WIDTH (font);
+       fontp->average_width = fontp->space_width = FONT_AVG_WIDTH (font);
       }
     else
       {
@@ -4696,11 +4819,12 @@ w32_load_system_font (f, fontname, size)
        if (pcm)
          fontp->space_width = pcm->width;
        else
-         fontp->space_width = FONT_WIDTH (font);
+         fontp->space_width = FONT_AVG_WIDTH (font);
 
        fontp->average_width = font->tm.tmAveCharWidth;
       }
 
+    fontp->charset = -1;
     charset = xlfd_charset_of_font (fontname);
 
   /* Cache the W32 codepage for a font.  This makes w32_encode_char
@@ -4727,7 +4851,7 @@ w32_load_system_font (f, fontname, size)
        (0:0x20..0x7F, 1:0xA0..0xFF,
        (0:0x2020..0x7F7F, 1:0xA0A0..0xFFFF, 3:0x20A0..0x7FFF,
        2:0xA020..0xFF7F).  For the moment, we don't know which charset
-       uses this font.  So, we set information in fontp->encoding[1]
+       uses this font.  So, we set information in fontp->encoding_type
        which is never used by any charset.  If mapping can't be
        decided, set FONT_ENCODING_NOT_DECIDED.  */
 
@@ -4735,9 +4859,9 @@ w32_load_system_font (f, fontname, size)
        type FONT_ENCODING_NOT_DECIDED.  */
     encoding = strrchr (fontp->name, '-');
     if (encoding && strnicmp (encoding+1, "sjis", 4) == 0)
-      fontp->encoding[1] = 4;
+      fontp->encoding_type = 4;
     else
-      fontp->encoding[1] = FONT_ENCODING_NOT_DECIDED;
+      fontp->encoding_type = FONT_ENCODING_NOT_DECIDED;
 
     /* The following three values are set to 0 under W32, which is
        what they get set to if XGetFontProperty fails under X.  */
@@ -4879,7 +5003,7 @@ w32_to_x_weight (fnweight)
     return "*";
 }
 
-static LONG
+LONG
 x_to_w32_charset (lpcs)
     char * lpcs;
 {
@@ -4891,12 +5015,16 @@ x_to_w32_charset (lpcs)
   if (strncmp (lpcs, "*-#", 3) == 0)
     return atoi (lpcs + 3);
 
+  /* All Windows fonts qualify as unicode.  */
+  if (!strncmp (lpcs, "iso10646", 8))
+    return DEFAULT_CHARSET;
+
   /* Handle wildcards by ignoring them; eg. treat "big5*-*" as "big5".  */
   charset = alloca (len + 1);
   strcpy (charset, lpcs);
   lpcs = strchr (charset, '*');
   if (lpcs)
-    *lpcs = 0;
+    *lpcs = '\0';
 
   /* Look through w32-charset-info-alist for the character set.
      Format of each entry is
@@ -4963,12 +5091,27 @@ x_to_w32_charset (lpcs)
 }
 
 
-static char *
-w32_to_x_charset (fncharset)
+char *
+w32_to_x_charset (fncharset, matching)
     int fncharset;
+    char *matching;
 {
   static char buf[32];
   Lisp_Object charset_type;
+  int match_len = 0;
+
+  if (matching)
+    {
+      /* If fully specified, accept it as it is.  Otherwise use a
+        substring match. */
+      char *wildcard = strchr (matching, '*');
+      if (wildcard)
+       *wildcard = '\0';
+      else if (strchr (matching, '-'))
+       return matching;
+
+      match_len = strlen (matching);
+    }
 
   switch (fncharset)
     {
@@ -5053,6 +5196,7 @@ w32_to_x_charset (fncharset)
   {
     Lisp_Object rest;
     char * best_match = NULL;
+    int matching_found = 0;
 
     /* Look through w32-charset-info-alist for the character set.
        Prefer ISO codepages, and prefer lower numbers in the ISO
@@ -5088,12 +5232,34 @@ w32_to_x_charset (fncharset)
             /* If we don't have a match already, then this is the
                best.  */
             if (!best_match)
-              best_match = x_charset;
-            /* If this is an ISO codepage, and the best so far isn't,
-               then this is better.  */
-            else if (strnicmp (best_match, "iso", 3) != 0
-                     && strnicmp (x_charset, "iso", 3) == 0)
-              best_match = x_charset;
+             {
+               best_match = x_charset;
+               if (matching && !strnicmp (x_charset, matching, match_len))
+                 matching_found = 1;
+             }
+           /* If we already found a match for MATCHING, then
+              only consider other matches.  */
+           else if (matching_found
+                    && strnicmp (x_charset, matching, match_len))
+             continue;
+           /* If this matches what we want, and the best so far doesn't,
+              then this is better.  */
+           else if (!matching_found && matching
+                    && !strnicmp (x_charset, matching, match_len))
+             {
+               best_match = x_charset;
+               matching_found = 1;
+             }
+           /* If this is fully specified, and the best so far isn't,
+              then this is better.  */
+           else if ((!strchr (best_match, '-') && strchr (x_charset, '-'))
+           /* If this is an ISO codepage, and the best so far isn't,
+              then this is better, but only if it fully specifies the
+              encoding.  */
+               || (strnicmp (best_match, "iso", 3) != 0
+                   && strnicmp (x_charset, "iso", 3) == 0
+                   && strchr (x_charset, '-')))
+               best_match = x_charset;
             /* If both are ISO8859 codepages, choose the one with the
                lowest number in the encoding field.  */
             else if (strnicmp (best_match, "iso8859-", 8) == 0
@@ -5115,6 +5281,17 @@ w32_to_x_charset (fncharset)
       }
 
     strncpy (buf, best_match, 31);
+    /* If the charset is not fully specified, put -0 on the end.  */
+    if (!strchr (best_match, '-'))
+      {
+       int pos = strlen (best_match);
+       /* Charset specifiers shouldn't be very long.  If it is a made
+          up one, truncating it should not do any harm since it isn't
+          recognized anyway.  */
+       if (pos > 29)
+         pos = 29;
+       strcpy (buf + pos, "-0");
+      }
     buf[31] = '\0';
     return buf;
   }
@@ -5214,7 +5391,8 @@ w32_to_all_x_charsets (fncharset)
   {
     Lisp_Object rest;
     /* Look through w32-charset-info-alist for the character set.
-       Only return charsets for codepages which are installed.
+       Only return fully specified charsets for codepages which are
+       installed.
 
        Format of each entry in Vw32_charset_info_alist is
          (CHARSET_NAME . (WINDOWS_CHARSET . CODEPAGE)).
@@ -5237,6 +5415,9 @@ w32_to_all_x_charsets (fncharset)
         w32_charset = XCAR (XCDR (this_entry));
         codepage = XCDR (XCDR (this_entry));
 
+       if (!strchr (SDATA (x_charset), '-'))
+         continue;
+
         /* Look for Same charset and a valid codepage (or non-int
            which means ignore).  */
         if (EQ (w32_charset, charset_type)
@@ -5267,9 +5448,6 @@ w32_codepage_for_font (char *fontname)
   Lisp_Object codepage, entry;
   char *charset_str, *charset, *end;
 
-  if (NILP (Vw32_charset_info_alist))
-    return CP_DEFAULT;
-
   /* Extract charset part of font string.  */
   charset = xlfd_charset_of_font (fontname);
 
@@ -5295,7 +5473,13 @@ w32_codepage_for_font (char *fontname)
         *end = '\0';
       }
 
-  entry = Fassoc (build_string (charset), Vw32_charset_info_alist);
+  if (!strcmp (charset, "iso10646"))
+    return CP_UNICODE;
+
+  if (NILP (Vw32_charset_info_alist))
+    return CP_DEFAULT;
+
+  entry = Fassoc (build_string(charset), Vw32_charset_info_alist);
   if (NILP (entry))
     return CP_UNKNOWN;
 
@@ -5327,7 +5511,6 @@ w32_to_x_font (lplogfont, lpxstr, len, specific_charset)
   char *fontname_dash;
   int display_resy = (int) one_w32_display_info.resy;
   int display_resx = (int) one_w32_display_info.resx;
-  int bufsz;
   struct coding_system coding;
 
   if (!lpxstr) abort ();
@@ -5349,12 +5532,14 @@ w32_to_x_font (lplogfont, lpxstr, len, specific_charset)
   coding.mode |= CODING_MODE_LAST_BLOCK;
   /* We explicitely disable composition handling because selection
      data should not contain any composition sequence.  */
-  coding.composing = COMPOSITION_DISABLED;
-  bufsz = decoding_buffer_size (&coding, LF_FACESIZE);
+  coding.common_flags &= ~CODING_ANNOTATION_MASK;
+
+  coding.dst_bytes = LF_FACESIZE * 2;
+  coding.destination = (unsigned char *) xmalloc (coding.dst_bytes + 1);
+  decode_coding_c_string (&coding, lplogfont->lfFaceName,
+                         strlen(lplogfont->lfFaceName), Qnil);
+  fontname = coding.destination;
 
-  fontname = alloca (sizeof (*fontname) * bufsz);
-  decode_coding (&coding, lplogfont->lfFaceName, fontname,
-                 strlen (lplogfont->lfFaceName), bufsz - 1);
   *(fontname + coding.produced) = '\0';
 
   /* Replace dashes with underscores so the dashes are not
@@ -5398,8 +5583,7 @@ w32_to_x_font (lplogfont, lpxstr, len, specific_charset)
             ((lplogfont->lfPitchAndFamily & 0x3) == VARIABLE_PITCH)
              ? 'p' : 'c',                            /* spacing */
             width_pixels,                           /* avg width */
-            specific_charset ? specific_charset
-             : w32_to_x_charset (lplogfont->lfCharSet)
+             w32_to_x_charset (lplogfont->lfCharSet, specific_charset)
              /* charset registry and encoding */
             );
 
@@ -5477,26 +5661,24 @@ x_to_w32_font (lpxstr, lplogfont)
 
       if (fields > 0 && name[0] != '*')
         {
-         int bufsize;
-         unsigned char *buf;
-
+         Lisp_Object string = build_string (name);
           setup_coding_system
             (Fcheck_coding_system (Vlocale_coding_system), &coding);
-         coding.src_multibyte = 1;
-         coding.dst_multibyte = 0;
-         /* Need to set COMPOSITION_DISABLED, otherwise Emacs crashes in
-            encode_coding_iso2022 trying to dereference a null pointer.  */
-         coding.composing = COMPOSITION_DISABLED;
-         if (coding.type == coding_type_iso2022)
-           coding.flags |= CODING_FLAG_ISO_SAFE;
-         bufsize = encoding_buffer_size (&coding, strlen (name));
-         buf = (unsigned char *) alloca (bufsize);
-          coding.mode |= CODING_MODE_LAST_BLOCK;
-          encode_coding (&coding, name, buf, strlen (name), bufsize);
+          coding.mode |= (CODING_MODE_SAFE_ENCODING | CODING_MODE_LAST_BLOCK);
+         /* Disable composition/charset annotation.   */
+         coding.common_flags &= ~CODING_ANNOTATION_MASK;
+         coding.dst_bytes = SCHARS (string) * 2;
+
+         coding.destination = (unsigned char *) xmalloc (coding.dst_bytes);
+          encode_coding_object (&coding, string, 0, 0,
+                               SCHARS (string), SBYTES (string), Qnil);
          if (coding.produced >= LF_FACESIZE)
            coding.produced = LF_FACESIZE - 1;
-         buf[coding.produced] = 0;
-         strcpy (lplogfont->lfFaceName, buf);
+
+         coding.destination[coding.produced] = '\0';
+
+         strcpy (lplogfont->lfFaceName, coding.destination);
+         xfree (coding.destination);
        }
       else
         {
@@ -5528,8 +5710,12 @@ x_to_w32_font (lpxstr, lplogfont)
        lplogfont->lfHeight = atoi (height) * dpi / 720;
 
       if (fields > 0)
-      lplogfont->lfPitchAndFamily =
-       (fields > 0 && pitch == 'p') ? VARIABLE_PITCH : FIXED_PITCH;
+        {
+          if (pitch == 'p')
+            lplogfont->lfPitchAndFamily = VARIABLE_PITCH | FF_DONTCARE;
+          else if (pitch == 'c')
+            lplogfont->lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE;
+        }
 
       fields--;
 
@@ -5874,14 +6060,17 @@ enum_font_cb2 (lplf, lptm, FontType, lpef)
        if (charset
            && strncmp (charset, "*-*", 3) != 0
            && lpef->logfont.lfCharSet == DEFAULT_CHARSET
-           && strcmp (charset, w32_to_x_charset (DEFAULT_CHARSET)) != 0)
+           && strcmp (charset, w32_to_x_charset (DEFAULT_CHARSET, NULL)) != 0)
          return 1;
       }
 
     if (charset)
       charset_list = Fcons (build_string (charset), Qnil);
     else
-      charset_list = w32_to_all_x_charsets (lplf->elfLogFont.lfCharSet);
+      /* Always prefer unicode.  */
+      charset_list
+       = Fcons (build_string ("iso10646-1"),
+                w32_to_all_x_charsets (lplf->elfLogFont.lfCharSet));
 
     /* Loop through the charsets.  */
     for ( ; CONSP (charset_list); charset_list = Fcdr (charset_list))
@@ -5889,14 +6078,15 @@ enum_font_cb2 (lplf, lptm, FontType, lpef)
        Lisp_Object this_charset = Fcar (charset_list);
        charset = SDATA (this_charset);
 
+       enum_font_maybe_add_to_list (lpef, &(lplf->elfLogFont),
+                                    charset, width);
+
        /* List bold and italic variations if w32-enable-synthesized-fonts
           is non-nil and this is a plain font.  */
        if (w32_enable_synthesized_fonts
            && lplf->elfLogFont.lfWeight == FW_NORMAL
            && lplf->elfLogFont.lfItalic == FALSE)
          {
-           enum_font_maybe_add_to_list (lpef, &(lplf->elfLogFont),
-                                        charset, width);
            /* bold.  */
            lplf->elfLogFont.lfWeight = FW_BOLD;
            enum_font_maybe_add_to_list (lpef, &(lplf->elfLogFont),
@@ -5910,9 +6100,6 @@ enum_font_cb2 (lplf, lptm, FontType, lpef)
            enum_font_maybe_add_to_list (lpef, &(lplf->elfLogFont),
                                         charset, width);
          }
-       else
-         enum_font_maybe_add_to_list (lpef, &(lplf->elfLogFont),
-                                      charset, width);
       }
   }
 
@@ -6177,7 +6364,7 @@ w32_list_fonts (f, pattern, size, maxnames)
               hdc = GetDC (dpyinfo->root_window);
               oldobj = SelectObject (hdc, thisinfo.hfont);
               if (GetTextMetrics (hdc, &thisinfo.tm))
-                XSETCDR (tem, make_number (FONT_WIDTH (&thisinfo)));
+                XSETCDR (tem, make_number (FONT_AVG_WIDTH (&thisinfo)));
               else
                 XSETCDR (tem, make_number (0));
               SelectObject (hdc, oldobj);
@@ -7312,8 +7499,28 @@ x_create_tip_frame (dpyinfo, parms, text)
       specbind (Qx_resource_name, name);
     }
 
+  f->resx = dpyinfo->resx;
+  f->resy = dpyinfo->resy;
+
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      /* Perhaps, we must allow frame parameter, say `font-backend',
+        to specify which font backends to use.  */
+      register_font_driver (&w32font_driver, f);
+
+      x_default_parameter (f, parms, Qfont_backend, Qnil,
+                          "fontBackend", "FontBackend", RES_TYPE_STRING);
+    }
+#endif /* USE_FONT_BACKEND */
+
   /* Extract the window parameters from the supplied values
      that are needed to determine window geometry.  */
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    x_default_font_parameter (f, parms);
+  else
+#endif /* USE_FONT_BACKEND */
   {
     Lisp_Object font;
 
@@ -7325,7 +7532,7 @@ x_create_tip_frame (dpyinfo, parms, text)
       {
        tem = Fquery_fontset (font, Qnil);
        if (STRINGP (tem))
-         font = x_new_fontset (f, SDATA (tem));
+         font = x_new_fontset (f, tem);
        else
          font = x_new_font (f, SDATA (font));
       }
@@ -8627,6 +8834,9 @@ frame_parm_handler w32_frame_parm_handlers[] =
   x_set_fringe_width,
   0, /* x_set_wait_for_wm, */
   x_set_fullscreen,
+#ifdef USE_FONT_BACKEND
+  x_set_font_backend
+#endif
 };
 
 void
@@ -8639,29 +8849,17 @@ syms_of_w32fns ()
 
   w32_visible_system_caret_hwnd = NULL;
 
-  Qnone = intern ("none");
-  staticpro (&Qnone);
-  Qsuppress_icon = intern ("suppress-icon");
-  staticpro (&Qsuppress_icon);
-  Qundefined_color = intern ("undefined-color");
-  staticpro (&Qundefined_color);
-  Qcancel_timer = intern ("cancel-timer");
-  staticpro (&Qcancel_timer);
-
-  Qhyper = intern ("hyper");
-  staticpro (&Qhyper);
-  Qsuper = intern ("super");
-  staticpro (&Qsuper);
-  Qmeta = intern ("meta");
-  staticpro (&Qmeta);
-  Qalt = intern ("alt");
-  staticpro (&Qalt);
-  Qctrl = intern ("ctrl");
-  staticpro (&Qctrl);
-  Qcontrol = intern ("control");
-  staticpro (&Qcontrol);
-  Qshift = intern ("shift");
-  staticpro (&Qshift);
+  DEFSYM (Qnone, "none");
+  DEFSYM (Qsuppress_icon, "suppress-icon");
+  DEFSYM (Qundefined_color, "undefined-color");
+  DEFSYM (Qcancel_timer, "cancel-timer");
+  DEFSYM (Qhyper, "hyper");
+  DEFSYM (Qsuper, "super");
+  DEFSYM (Qmeta, "meta");
+  DEFSYM (Qalt, "alt");
+  DEFSYM (Qctrl, "ctrl");
+  DEFSYM (Qcontrol, "control");
+  DEFSYM (Qshift, "shift");
   /* This is the end of symbol initialization.  */
 
   /* Text property `display' should be nonsticky by default.  */
@@ -8951,24 +9149,16 @@ CODEPAGE should be an integer specifying the codepage that should be used
 to display the character set, t to do no translation and output as Unicode,
 or nil to do no translation and output as 8 bit (or multibyte on far-east
 versions of Windows) characters.  */);
-    Vw32_charset_info_alist = Qnil;
-
-  staticpro (&Qw32_charset_ansi);
-  Qw32_charset_ansi = intern ("w32-charset-ansi");
-  staticpro (&Qw32_charset_symbol);
-  Qw32_charset_default = intern ("w32-charset-default");
-  staticpro (&Qw32_charset_default);
-  Qw32_charset_symbol = intern ("w32-charset-symbol");
-  staticpro (&Qw32_charset_shiftjis);
-  Qw32_charset_shiftjis = intern ("w32-charset-shiftjis");
-  staticpro (&Qw32_charset_hangeul);
-  Qw32_charset_hangeul = intern ("w32-charset-hangeul");
-  staticpro (&Qw32_charset_chinesebig5);
-  Qw32_charset_chinesebig5 = intern ("w32-charset-chinesebig5");
-  staticpro (&Qw32_charset_gb2312);
-  Qw32_charset_gb2312 = intern ("w32-charset-gb2312");
-  staticpro (&Qw32_charset_oem);
-  Qw32_charset_oem = intern ("w32-charset-oem");
+  Vw32_charset_info_alist = Qnil;
+
+  DEFSYM (Qw32_charset_ansi, "w32-charset-ansi");
+  DEFSYM (Qw32_charset_symbol, "w32-charset-symbol");
+  DEFSYM (Qw32_charset_default, "w32-charset-default");
+  DEFSYM (Qw32_charset_shiftjis, "w32-charset-shiftjis");
+  DEFSYM (Qw32_charset_hangeul, "w32-charset-hangeul");
+  DEFSYM (Qw32_charset_chinesebig5, "w32-charset-chinesebig5");
+  DEFSYM (Qw32_charset_gb2312, "w32-charset-gb2312");
+  DEFSYM (Qw32_charset_oem, "w32-charset-oem");
 
 #ifdef JOHAB_CHARSET
   {
@@ -8976,28 +9166,17 @@ versions of Windows) characters.  */);
     DEFVAR_BOOL ("w32-extra-charsets-defined", &w32_extra_charsets_defined,
                 doc: /* Internal variable.  */);
 
-    staticpro (&Qw32_charset_johab);
-    Qw32_charset_johab = intern ("w32-charset-johab");
-    staticpro (&Qw32_charset_easteurope);
-    Qw32_charset_easteurope = intern ("w32-charset-easteurope");
-    staticpro (&Qw32_charset_turkish);
-    Qw32_charset_turkish = intern ("w32-charset-turkish");
-    staticpro (&Qw32_charset_baltic);
-    Qw32_charset_baltic = intern ("w32-charset-baltic");
-    staticpro (&Qw32_charset_russian);
-    Qw32_charset_russian = intern ("w32-charset-russian");
-    staticpro (&Qw32_charset_arabic);
-    Qw32_charset_arabic = intern ("w32-charset-arabic");
-    staticpro (&Qw32_charset_greek);
-    Qw32_charset_greek = intern ("w32-charset-greek");
-    staticpro (&Qw32_charset_hebrew);
-    Qw32_charset_hebrew = intern ("w32-charset-hebrew");
-    staticpro (&Qw32_charset_vietnamese);
-    Qw32_charset_vietnamese = intern ("w32-charset-vietnamese");
-    staticpro (&Qw32_charset_thai);
-    Qw32_charset_thai = intern ("w32-charset-thai");
-    staticpro (&Qw32_charset_mac);
-    Qw32_charset_mac = intern ("w32-charset-mac");
+    DEFSYM (Qw32_charset_johab, "w32-charset-johab");
+    DEFSYM (Qw32_charset_easteurope, "w32-charset-easteurope");
+    DEFSYM (Qw32_charset_turkish, "w32-charset-turkish");
+    DEFSYM (Qw32_charset_baltic, "w32-charset-baltic");
+    DEFSYM (Qw32_charset_russian, "w32-charset-russian");
+    DEFSYM (Qw32_charset_arabic, "w32-charset-arabic");
+    DEFSYM (Qw32_charset_greek, "w32-charset-greek");
+    DEFSYM (Qw32_charset_hebrew, "w32-charset-hebrew");
+    DEFSYM (Qw32_charset_vietnamese, "w32-charset-vietnamese");
+    DEFSYM (Qw32_charset_thai, "w32-charset-thai");
+    DEFSYM (Qw32_charset_mac, "w32-charset-mac");
   }
 #endif
 
@@ -9007,9 +9186,7 @@ versions of Windows) characters.  */);
     DEFVAR_BOOL ("w32-unicode-charset-defined",
                  &w32_unicode_charset_defined,
                 doc: /* Internal variable.  */);
-
-    staticpro (&Qw32_charset_unicode);
-    Qw32_charset_unicode = intern ("w32-charset-unicode");
+    DEFSYM (Qw32_charset_unicode, "w32-charset-unicode");
   }
 #endif
 
@@ -9073,6 +9250,7 @@ versions of Windows) characters.  */);
   find_ccl_program_func = w32_find_ccl_program;
   query_font_func = w32_query_font;
   set_frame_fontset_func = x_set_font;
+  get_font_repertory_func = x_get_font_repertory;
   check_window_system_func = check_w32;
 
 
@@ -9113,7 +9291,13 @@ globals_of_w32fns ()
   /* ditto for GetClipboardSequenceNumber.  */
   clipboard_sequence_fn = (ClipboardSequence_Proc)
     GetProcAddress (user32_lib, "GetClipboardSequenceNumber");
-
+  {
+    HMODULE imm32_lib = GetModuleHandle ("imm32.dll");
+    get_composition_string_fn = (ImmGetCompositionString_Proc)
+      GetProcAddress (imm32_lib, "ImmGetCompositionStringW");
+    get_ime_context_fn = (ImmGetContext_Proc)
+      GetProcAddress (imm32_lib, "ImmGetContext");
+  }
   DEFVAR_INT ("w32-ansi-code-page",
              &w32_ansi_code_page,
              doc: /* The ANSI code page used by the system.  */);
diff --git a/src/w32font.c b/src/w32font.c
new file mode 100644 (file)
index 0000000..d8ef31a
--- /dev/null
@@ -0,0 +1,1531 @@
+/* Font backend for the Microsoft W32 API.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+#include <windows.h>
+
+#include "lisp.h"
+#include "w32term.h"
+#include "frame.h"
+#include "dispextern.h"
+#include "character.h"
+#include "charset.h"
+#include "fontset.h"
+#include "font.h"
+#include "w32font.h"
+
+/* Cleartype available on Windows XP, cleartype_natural from XP SP1.
+   The latter does not try to fit cleartype smoothed fonts into the
+   same bounding box as the non-antialiased version of the font.
+ */
+#ifndef CLEARTYPE_QUALITY
+#define CLEARTYPE_QUALITY 5
+#endif
+#ifndef CLEARTYPE_NATURAL_QUALITY
+#define CLEARTYPE_NATURAL_QUALITY 6
+#endif
+
+extern struct font_driver w32font_driver;
+
+Lisp_Object Qgdi;
+static Lisp_Object Qmonospace, Qsansserif, Qmono, Qsans, Qsans_serif;
+static Lisp_Object Qserif, Qscript, Qdecorative;
+static Lisp_Object Qraster, Qoutline, Qunknown;
+
+/* antialiasing  */
+extern Lisp_Object QCantialias; /* defined in font.c  */
+extern Lisp_Object Qnone; /* reuse from w32fns.c  */
+static Lisp_Object Qstandard, Qsubpixel, Qnatural;
+
+/* scripts */
+static Lisp_Object Qlatin, Qgreek, Qcoptic, Qcyrillic, Qarmenian, Qhebrew;
+static Lisp_Object Qarabic, Qsyriac, Qnko, Qthaana, Qdevanagari, Qbengali;
+static Lisp_Object Qgurmukhi, Qgujarati, Qoriya, Qtamil, Qtelugu;
+static Lisp_Object Qkannada, Qmalayalam, Qsinhala, Qthai, Qlao;
+static Lisp_Object Qtibetan, Qmyanmar, Qgeorgian, Qhangul, Qethiopic;
+static Lisp_Object Qcherokee, Qcanadian_aboriginal, Qogham, Qrunic;
+static Lisp_Object Qkhmer, Qmongolian, Qsymbol, Qbraille, Qhan;
+static Lisp_Object Qideographic_description, Qcjk_misc, Qkana, Qbopomofo;
+static Lisp_Object Qkanbun, Qyi, Qbyzantine_musical_symbol;
+static Lisp_Object Qmusical_symbol, Qmathematical;
+
+/* Font spacing symbols - defined in font.c.  */
+extern Lisp_Object Qc, Qp, Qm;
+
+static void fill_in_logfont P_ ((FRAME_PTR f, LOGFONT *logfont,
+                                 Lisp_Object font_spec));
+
+static BYTE w32_antialias_type P_ ((Lisp_Object type));
+static Lisp_Object lispy_antialias_type P_ ((BYTE type));
+
+static Lisp_Object font_supported_scripts P_ ((FONTSIGNATURE * sig));
+
+/* From old font code in w32fns.c */
+char * w32_to_x_charset P_ ((int charset, char * matching));
+
+static Lisp_Object w32_registry P_ ((LONG w32_charset));
+
+/* EnumFontFamiliesEx callbacks.  */
+static int CALLBACK add_font_entity_to_list P_ ((ENUMLOGFONTEX *,
+                                                 NEWTEXTMETRICEX *,
+                                                 DWORD, LPARAM));
+static int CALLBACK add_one_font_entity_to_list P_ ((ENUMLOGFONTEX *,
+                                                     NEWTEXTMETRICEX *,
+                                                     DWORD, LPARAM));
+static int CALLBACK add_font_name_to_list P_ ((ENUMLOGFONTEX *,
+                                               NEWTEXTMETRICEX *,
+                                               DWORD, LPARAM));
+
+/* struct passed in as LPARAM arg to EnumFontFamiliesEx, for keeping track
+   of what we really want.  */
+struct font_callback_data
+{
+  /* The logfont we are matching against. EnumFontFamiliesEx only matches
+     face name and charset, so we need to manually match everything else
+     in the callback function.  */
+  LOGFONT pattern;
+  /* The original font spec or entity.  */
+  Lisp_Object orig_font_spec;
+  /* The frame the font is being loaded on.  */
+  Lisp_Object frame;
+  /* The list to add matches to.  */
+  Lisp_Object list;
+  /* Whether to match only opentype fonts.  */
+  int opentype_only;
+};
+
+/* Handles the problem that EnumFontFamiliesEx will not return all
+   style variations if the font name is not specified.  */
+static void list_all_matching_fonts P_ ((struct font_callback_data *match));
+
+
+/* MingW headers only define this when _WIN32_WINNT >= 0x0500, but we
+   target older versions.  */
+#ifndef GGI_MARK_NONEXISTING_GLYPHS
+#define GGI_MARK_NONEXISTING_GLYPHS 1
+#endif
+
+static int
+memq_no_quit (elt, list)
+     Lisp_Object elt, list;
+{
+  while (CONSP (list) && ! EQ (XCAR (list), elt))
+    list = XCDR (list);
+  return (CONSP (list));
+}
+
+/* w32 implementation of get_cache for font backend.
+   Return a cache of font-entities on FRAME.  The cache must be a
+   cons whose cdr part is the actual cache area.  */
+Lisp_Object
+w32font_get_cache (f)
+     FRAME_PTR f;
+{
+  struct w32_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
+
+  return (dpyinfo->name_list_element);
+}
+
+/* w32 implementation of list for font backend.
+   List fonts exactly matching with FONT_SPEC on FRAME.  The value
+   is a vector of font-entities.  This is the sole API that
+   allocates font-entities.  */
+static Lisp_Object
+w32font_list (frame, font_spec)
+     Lisp_Object frame, font_spec;
+{
+  return w32font_list_internal (frame, font_spec, 0);
+}
+
+/* w32 implementation of match for font backend.
+   Return a font entity most closely matching with FONT_SPEC on
+   FRAME.  The closeness is detemined by the font backend, thus
+   `face-font-selection-order' is ignored here.  */
+static Lisp_Object
+w32font_match (frame, font_spec)
+     Lisp_Object frame, font_spec;
+{
+  return w32font_match_internal (frame, font_spec, 0);
+}
+
+/* w32 implementation of list_family for font backend.
+   List available families.  The value is a list of family names
+   (symbols).  */
+static Lisp_Object
+w32font_list_family (frame)
+     Lisp_Object frame;
+{
+  Lisp_Object list = Qnil;
+  LOGFONT font_match_pattern;
+  HDC dc;
+  FRAME_PTR f = XFRAME (frame);
+
+  bzero (&font_match_pattern, sizeof (font_match_pattern));
+
+  dc = get_frame_dc (f);
+
+  EnumFontFamiliesEx (dc, &font_match_pattern,
+                      (FONTENUMPROC) add_font_name_to_list,
+                      (LPARAM) &list, 0);
+  release_frame_dc (f, dc);
+
+  return list;
+}
+
+/* w32 implementation of open for font backend.
+   Open a font specified by FONT_ENTITY on frame F.
+   If the font is scalable, open it with PIXEL_SIZE.  */
+static struct font *
+w32font_open (f, font_entity, pixel_size)
+     FRAME_PTR f;
+     Lisp_Object font_entity;
+     int pixel_size;
+{
+  struct w32font_info *w32_font = xmalloc (sizeof (struct w32font_info));
+
+  if (w32_font == NULL)
+    return NULL;
+
+  if (!w32font_open_internal (f, font_entity, pixel_size, w32_font))
+    {
+      xfree (w32_font);
+      return NULL;
+    }
+
+  return (struct font *) w32_font;
+}
+
+/* w32 implementation of close for font_backend.
+   Close FONT on frame F.  */
+void
+w32font_close (f, font)
+     FRAME_PTR f;
+     struct font *font;
+{
+  if (font->font.font)
+    {
+      W32FontStruct *old_w32_font = (W32FontStruct *)font->font.font;
+      DeleteObject (old_w32_font->hfont);
+      xfree (old_w32_font);
+      font->font.font = 0;
+    }
+
+  if (font->font.name)
+    xfree (font->font.name);
+  xfree (font);
+}
+
+/* w32 implementation of has_char for font backend.
+   Optional.
+   If FONT_ENTITY has a glyph for character C (Unicode code point),
+   return 1.  If not, return 0.  If a font must be opened to check
+   it, return -1.  */
+int
+w32font_has_char (entity, c)
+     Lisp_Object entity;
+     int c;
+{
+  Lisp_Object supported_scripts, extra, script;
+  DWORD mask;
+
+  extra = AREF (entity, FONT_EXTRA_INDEX);
+  if (!CONSP (extra))
+    return -1;
+
+  supported_scripts = assq_no_quit (QCscript, extra);
+  if (!CONSP (supported_scripts))
+    return -1;
+
+  supported_scripts = XCDR (supported_scripts);
+
+  script = CHAR_TABLE_REF (Vchar_script_table, c);
+
+  return (memq_no_quit (script, supported_scripts)) ? 1 : 0;
+}
+
+/* w32 implementation of encode_char for font backend.
+   Return a glyph code of FONT for characer C (Unicode code point).
+   If FONT doesn't have such a glyph, return FONT_INVALID_CODE.  */
+unsigned
+w32font_encode_char (font, c)
+     struct font *font;
+     int c;
+{
+  /* Avoid unneccesary conversion - all the Win32 APIs will take a unicode
+     character.  */
+  return c;
+}
+
+/* w32 implementation of text_extents for font backend.
+   Perform the size computation of glyphs of FONT and fillin members
+   of METRICS.  The glyphs are specified by their glyph codes in
+   CODE (length NGLYPHS).  Apparently metrics can be NULL, in this
+   case just return the overall width.  */
+int
+w32font_text_extents (font, code, nglyphs, metrics)
+     struct font *font;
+     unsigned *code;
+     int nglyphs;
+     struct font_metrics *metrics;
+{
+  int i;
+  HFONT old_font;
+  HDC dc;
+  struct frame * f;
+  int total_width = 0;
+  WORD *wcode = alloca(nglyphs * sizeof (WORD));
+  SIZE size;
+
+#if 0
+  /* Frames can come and go, and their fonts outlive them. This is
+     particularly troublesome with tooltip frames, and causes crashes.  */
+  f = ((struct w32font_info *)font)->owning_frame;
+#else
+  f = XFRAME (selected_frame);
+#endif
+
+  dc = get_frame_dc (f);
+  old_font = SelectObject (dc, ((W32FontStruct *)(font->font.font))->hfont);
+
+  if (metrics)
+    {
+      GLYPHMETRICS gm;
+      MAT2 transform;
+
+      /* Set transform to the identity matrix.  */
+      bzero (&transform, sizeof (transform));
+      transform.eM11.value = 1;
+      transform.eM22.value = 1;
+      metrics->width = 0;
+      metrics->ascent = 0;
+      metrics->descent = 0;
+
+      for (i = 0; i < nglyphs; i++)
+        {
+          if (GetGlyphOutlineW (dc, *(code + i), GGO_METRICS, &gm, 0,
+                                NULL, &transform) != GDI_ERROR)
+            {
+              int new_val = metrics->width + gm.gmBlackBoxX
+                + gm.gmptGlyphOrigin.x;
+
+              metrics->rbearing = max (metrics->rbearing, new_val);
+              metrics->width += gm.gmCellIncX;
+              new_val = -gm.gmptGlyphOrigin.y;
+              metrics->ascent = max (metrics->ascent, new_val);
+              new_val = gm.gmBlackBoxY + gm.gmptGlyphOrigin.y;
+              metrics->descent = max (metrics->descent, new_val);
+            }
+          else
+            {
+              /* Rely on an estimate based on the overall font metrics.  */
+              break;
+            }
+        }
+
+      /* If we got through everything, return.  */
+      if (i == nglyphs)
+        {
+          /* Restore state and release DC.  */
+          SelectObject (dc, old_font);
+          release_frame_dc (f, dc);
+
+          return metrics->width;
+        }
+    }
+
+  for (i = 0; i < nglyphs; i++)
+    {
+      if (code[i] < 0x10000)
+        wcode[i] = code[i];
+      else
+        {
+          /* TODO: Convert to surrogate, reallocating array if needed */
+          wcode[i] = 0xffff;
+        }
+    }
+
+  if (GetTextExtentPoint32W (dc, wcode, nglyphs, &size))
+    {
+      total_width = size.cx;
+    }
+
+  if (!total_width)
+    {
+      RECT rect;
+      rect.top = 0; rect.bottom = font->font.height; rect.left = 0; rect.right = 1;
+      DrawTextW (dc, wcode, nglyphs, &rect,
+                 DT_CALCRECT | DT_NOPREFIX | DT_SINGLELINE);
+      total_width = rect.right;
+    }
+
+  if (metrics)
+    {
+      metrics->width = total_width;
+      metrics->ascent = font->ascent;
+      metrics->descent = font->descent;
+      metrics->lbearing = 0;
+      metrics->rbearing = total_width
+        + ((struct w32font_info *) font)->metrics.tmOverhang;
+    }
+
+  /* Restore state and release DC.  */
+  SelectObject (dc, old_font);
+  release_frame_dc (f, dc);
+
+  return total_width;
+}
+
+/* w32 implementation of draw for font backend.
+   Optional.
+   Draw glyphs between FROM and TO of S->char2b at (X Y) pixel
+   position of frame F with S->FACE and S->GC.  If WITH_BACKGROUND
+   is nonzero, fill the background in advance.  It is assured that
+   WITH_BACKGROUND is zero when (FROM > 0 || TO < S->nchars).
+
+   TODO: Currently this assumes that the colors and fonts are already
+   set in the DC. This seems to be true now, but maybe only due to
+   the old font code setting it up. It may be safer to resolve faces
+   and fonts in here and set them explicitly
+*/
+
+int
+w32font_draw (s, from, to, x, y, with_background)
+     struct glyph_string *s;
+     int from, to, x, y, with_background;
+{
+  UINT options = 0;
+  HRGN orig_clip;
+
+  /* Save clip region for later restoration.  */
+  GetClipRgn(s->hdc, orig_clip);
+
+  if (s->num_clips > 0)
+    {
+      HRGN new_clip = CreateRectRgnIndirect (s->clip);
+
+      if (s->num_clips > 1)
+        {
+          HRGN clip2 = CreateRectRgnIndirect (s->clip + 1);
+
+          CombineRgn (new_clip, new_clip, clip2, RGN_OR);
+          DeleteObject (clip2);
+        }
+
+      SelectClipRgn (s->hdc, new_clip);
+      DeleteObject (new_clip);
+    }
+
+  /* Using OPAQUE background mode can clear more background than expected
+     when Cleartype is used.  Draw the background manually to avoid this.  */
+  SetBkMode (s->hdc, TRANSPARENT);
+  if (with_background)
+    {
+      HBRUSH brush;
+      RECT rect;
+      struct font *font = (struct font *) s->face->font_info;
+
+      brush = CreateSolidBrush (s->gc->background);
+      rect.left = x;
+      rect.top = y - font->ascent;
+      rect.right = x + s->width;
+      rect.bottom = y + font->descent;
+      FillRect (s->hdc, &rect, brush);
+      DeleteObject (brush);
+    }
+
+  ExtTextOutW (s->hdc, x, y, options, NULL, s->char2b + from, to - from, NULL);
+
+  /* Restore clip region.  */
+  if (s->num_clips > 0)
+    {
+      SelectClipRgn (s->hdc, orig_clip);
+    }
+}
+
+/* w32 implementation of free_entity for font backend.
+   Optional (if FONT_EXTRA_INDEX is not Lisp_Save_Value).
+   Free FONT_EXTRA_INDEX field of FONT_ENTITY.
+static void
+w32font_free_entity (Lisp_Object entity);
+  */
+
+/* w32 implementation of prepare_face for font backend.
+   Optional (if FACE->extra is not used).
+   Prepare FACE for displaying characters by FONT on frame F by
+   storing some data in FACE->extra.  If successful, return 0.
+   Otherwise, return -1.
+static int
+w32font_prepare_face (FRAME_PTR f, struct face *face);
+  */
+/* w32 implementation of done_face for font backend.
+   Optional.
+   Done FACE for displaying characters by FACE->font on frame F.
+static void
+w32font_done_face (FRAME_PTR f, struct face *face);  */
+
+/* w32 implementation of get_bitmap for font backend.
+   Optional.
+   Store bitmap data for glyph-code CODE of FONT in BITMAP.  It is
+   intended that this method is called from the other font-driver
+   for actual drawing.
+static int
+w32font_get_bitmap (struct font *font, unsigned code,
+                    struct font_bitmap *bitmap, int bits_per_pixel);
+  */
+/* w32 implementation of free_bitmap for font backend.
+   Optional.
+   Free bitmap data in BITMAP.
+static void
+w32font_free_bitmap (struct font *font, struct font_bitmap *bitmap);
+  */
+/* w32 implementation of get_outline for font backend.
+   Optional.
+   Return an outline data for glyph-code CODE of FONT.  The format
+   of the outline data depends on the font-driver.
+static void *
+w32font_get_outline (struct font *font, unsigned code);
+  */
+/* w32 implementation of free_outline for font backend.
+   Optional.
+   Free OUTLINE (that is obtained by the above method).
+static void
+w32font_free_outline (struct font *font, void *outline);
+  */
+/* w32 implementation of anchor_point for font backend.
+   Optional.
+   Get coordinates of the INDEXth anchor point of the glyph whose
+   code is CODE.  Store the coordinates in *X and *Y.  Return 0 if
+   the operations was successfull.  Otherwise return -1.
+static int
+w32font_anchor_point (struct font *font, unsigned code,
+                                 int index, int *x, int *y);
+  */
+/* w32 implementation of otf_capability for font backend.
+   Optional.
+   Return a list describing which scripts/languages FONT
+   supports by which GSUB/GPOS features of OpenType tables.
+static Lisp_Object
+w32font_otf_capability (struct font *font);
+  */
+/* w32 implementation of otf_drive for font backend.
+   Optional.
+   Apply FONT's OTF-FEATURES to the glyph string.
+
+   FEATURES specifies which OTF features to apply in this format:
+      (SCRIPT LANGSYS GSUB-FEATURE GPOS-FEATURE)
+   See the documentation of `font-drive-otf' for the detail.
+
+   This method applies the specified features to the codes in the
+   elements of GSTRING-IN (between FROMth and TOth).  The output
+   codes are stored in GSTRING-OUT at the IDXth element and the
+   following elements.
+
+   Return the number of output codes.  If none of the features are
+   applicable to the input data, return 0.  If GSTRING-OUT is too
+   short, return -1.
+static int
+w32font_otf_drive (struct font *font, Lisp_Object features,
+                   Lisp_Object gstring_in, int from, int to,
+                   Lisp_Object gstring_out, int idx,
+                   int alternate_subst);
+  */
+
+/* Internal implementation of w32font_list.
+   Additional parameter opentype_only restricts the returned fonts to
+   opentype fonts, which can be used with the Uniscribe backend.  */
+Lisp_Object
+w32font_list_internal (frame, font_spec, opentype_only)
+     Lisp_Object frame, font_spec;
+     int opentype_only;
+{
+  struct font_callback_data match_data;
+  HDC dc;
+  FRAME_PTR f = XFRAME (frame);
+
+  match_data.orig_font_spec = font_spec;
+  match_data.list = Qnil;
+  match_data.frame = frame;
+
+  bzero (&match_data.pattern, sizeof (LOGFONT));
+  fill_in_logfont (f, &match_data.pattern, font_spec);
+
+  match_data.opentype_only = opentype_only;
+  if (opentype_only)
+    match_data.pattern.lfOutPrecision = OUT_OUTLINE_PRECIS;
+
+  if (match_data.pattern.lfFaceName[0] == '\0')
+    {
+      /* EnumFontFamiliesEx does not take other fields into account if
+         font name is blank, so need to use two passes.  */
+      list_all_matching_fonts (&match_data);
+    }
+  else
+    {
+      dc = get_frame_dc (f);
+
+      EnumFontFamiliesEx (dc, &match_data.pattern,
+                          (FONTENUMPROC) add_font_entity_to_list,
+                          (LPARAM) &match_data, 0);
+      release_frame_dc (f, dc);
+    }
+
+  return NILP (match_data.list) ? null_vector : Fvconcat (1, &match_data.list);
+}
+
+/* Internal implementation of w32font_match.
+   Additional parameter opentype_only restricts the returned fonts to
+   opentype fonts, which can be used with the Uniscribe backend.  */
+Lisp_Object
+w32font_match_internal (frame, font_spec, opentype_only)
+     Lisp_Object frame, font_spec;
+     int opentype_only;
+{
+  struct font_callback_data match_data;
+  HDC dc;
+  FRAME_PTR f = XFRAME (frame);
+
+  match_data.orig_font_spec = font_spec;
+  match_data.frame = frame;
+  match_data.list = Qnil;
+
+  bzero (&match_data.pattern, sizeof (LOGFONT));
+  fill_in_logfont (f, &match_data.pattern, font_spec);
+
+  match_data.opentype_only = opentype_only;
+  if (opentype_only)
+    match_data.pattern.lfOutPrecision = OUT_OUTLINE_PRECIS;
+
+  dc = get_frame_dc (f);
+
+  EnumFontFamiliesEx (dc, &match_data.pattern,
+                      (FONTENUMPROC) add_one_font_entity_to_list,
+                      (LPARAM) &match_data, 0);
+  release_frame_dc (f, dc);
+
+  return NILP (match_data.list) ? Qnil : XCAR (match_data.list);
+}
+
+int
+w32font_open_internal (f, font_entity, pixel_size, w32_font)
+     FRAME_PTR f;
+     Lisp_Object font_entity;
+     int pixel_size;
+     struct w32font_info *w32_font;
+{
+  int len, size;
+  LOGFONT logfont;
+  HDC dc;
+  HFONT hfont, old_font;
+  Lisp_Object val, extra;
+  /* For backwards compatibility.  */
+  W32FontStruct *compat_w32_font;
+
+  struct font * font = (struct font *) w32_font;
+  if (!font)
+    return 0;
+
+  bzero (&logfont, sizeof (logfont));
+  fill_in_logfont (f, &logfont, font_entity);
+
+  size = XINT (AREF (font_entity, FONT_SIZE_INDEX));
+  if (!size)
+    size = pixel_size;
+
+  logfont.lfHeight = -size;
+  hfont = CreateFontIndirect (&logfont);
+
+  if (hfont == NULL)
+    return 0;
+
+  w32_font->owning_frame = f;
+
+  /* Get the metrics for this font.  */
+  dc = get_frame_dc (f);
+  old_font = SelectObject (dc, hfont);
+
+  GetTextMetrics (dc, &w32_font->metrics);
+
+  SelectObject (dc, old_font);
+  release_frame_dc (f, dc);
+  /* W32FontStruct - we should get rid of this, and use the w32font_info
+     struct for any W32 specific fields. font->font.font can then be hfont.  */
+  font->font.font = xmalloc (sizeof (W32FontStruct));
+  compat_w32_font = (W32FontStruct *) font->font.font;
+  bzero (compat_w32_font, sizeof (W32FontStruct));
+  compat_w32_font->font_type = UNICODE_FONT;
+  /* Duplicate the text metrics.  */
+  bcopy (&w32_font->metrics,  &compat_w32_font->tm, sizeof (TEXTMETRIC));
+  compat_w32_font->hfont = hfont;
+
+  len = strlen (logfont.lfFaceName);
+  font->font.name = (char *) xmalloc (len + 1);
+  bcopy (logfont.lfFaceName, font->font.name, len);
+  font->font.name[len] = '\0';
+  font->font.full_name = font->font.name;
+  font->font.charset = 0;
+  font->font.codepage = 0;
+  font->font.size = w32_font->metrics.tmMaxCharWidth;
+  font->font.height = w32_font->metrics.tmHeight
+    + w32_font->metrics.tmExternalLeading;
+  font->font.space_width = font->font.average_width
+    = w32_font->metrics.tmAveCharWidth;
+
+  font->font.vertical_centering = 0;
+  font->font.encoding_type = 0;
+  font->font.baseline_offset = 0;
+  font->font.relative_compose = 0;
+  font->font.default_ascent = w32_font->metrics.tmAscent;
+  font->font.font_encoder = NULL;
+  font->entity = font_entity;
+  font->pixel_size = size;
+  font->driver = &w32font_driver;
+  font->format = Qgdi;
+  font->file_name = NULL;
+  font->encoding_charset = -1;
+  font->repertory_charset = -1;
+  font->min_width = 0;
+  font->ascent = w32_font->metrics.tmAscent;
+  font->descent = w32_font->metrics.tmDescent;
+  font->scalable = w32_font->metrics.tmPitchAndFamily & TMPF_VECTOR;
+
+  return 1;
+}
+
+/* Callback function for EnumFontFamiliesEx.
+ * Adds the name of a font to a Lisp list (passed in as the lParam arg).  */
+static int CALLBACK
+add_font_name_to_list (logical_font, physical_font, font_type, list_object)
+     ENUMLOGFONTEX *logical_font;
+     NEWTEXTMETRICEX *physical_font;
+     DWORD font_type;
+     LPARAM list_object;
+{
+  Lisp_Object* list = (Lisp_Object *) list_object;
+  Lisp_Object family;
+
+  /* Skip vertical fonts (intended only for printing)  */
+  if (logical_font->elfLogFont.lfFaceName[0] == '@')
+    return 1;
+
+  family = intern_downcase (logical_font->elfLogFont.lfFaceName,
+                            strlen (logical_font->elfLogFont.lfFaceName));
+  if (! memq_no_quit (family, *list))
+    *list = Fcons (family, *list);
+
+  return 1;
+}
+
+/* Convert an enumerated Windows font to an Emacs font entity.  */
+static Lisp_Object
+w32_enumfont_pattern_entity (frame, logical_font, physical_font,
+                             font_type, requested_font)
+     Lisp_Object frame;
+     ENUMLOGFONTEX *logical_font;
+     NEWTEXTMETRICEX *physical_font;
+     DWORD font_type;
+     LOGFONT *requested_font;
+{
+  Lisp_Object entity, tem;
+  LOGFONT *lf = (LOGFONT*) logical_font;
+  BYTE generic_type;
+
+  entity = Fmake_vector (make_number (FONT_ENTITY_MAX), Qnil);
+
+  ASET (entity, FONT_TYPE_INDEX, Qgdi);
+  ASET (entity, FONT_FRAME_INDEX, frame);
+  ASET (entity, FONT_REGISTRY_INDEX, w32_registry (lf->lfCharSet));
+  ASET (entity, FONT_OBJLIST_INDEX, Qnil);
+
+  /* Foundry is difficult to get in readable form on Windows.
+     But Emacs crashes if it is not set, so set it to something more
+     generic.  Thes values make xflds compatible with Emacs 22. */
+  if (lf->lfOutPrecision == OUT_STRING_PRECIS)
+    tem = Qraster;
+  else if (lf->lfOutPrecision == OUT_STROKE_PRECIS)
+    tem = Qoutline;
+  else
+    tem = Qunknown;
+
+  ASET (entity, FONT_FOUNDRY_INDEX, tem);
+
+  /* Save the generic family in the extra info, as it is likely to be
+     useful to users looking for a close match.  */
+  generic_type = physical_font->ntmTm.tmPitchAndFamily & 0xF0;
+  if (generic_type == FF_DECORATIVE)
+    tem = Qdecorative;
+  else if (generic_type == FF_MODERN)
+    tem = Qmono;
+  else if (generic_type == FF_ROMAN)
+    tem = Qserif;
+  else if (generic_type == FF_SCRIPT)
+    tem = Qscript;
+  else if (generic_type == FF_SWISS)
+    tem = Qsans;
+  else
+    tem = null_string;
+
+  ASET (entity, FONT_ADSTYLE_INDEX, tem);
+
+  if (physical_font->ntmTm.tmPitchAndFamily & 0x01)
+    font_put_extra (entity, QCspacing, make_number (FONT_SPACING_PROPORTIONAL));
+  else
+    font_put_extra (entity, QCspacing, make_number (FONT_SPACING_MONO));
+
+  if (requested_font->lfQuality != DEFAULT_QUALITY)
+    {
+      font_put_extra (entity, QCantialias,
+                      lispy_antialias_type (requested_font->lfQuality));
+    }
+  ASET (entity, FONT_FAMILY_INDEX,
+        intern_downcase (lf->lfFaceName, strlen (lf->lfFaceName)));
+
+  ASET (entity, FONT_WEIGHT_INDEX, make_number (lf->lfWeight));
+  ASET (entity, FONT_SLANT_INDEX, make_number (lf->lfItalic ? 200 : 100));
+  /* TODO: PANOSE struct has this info, but need to call GetOutlineTextMetrics
+     to get it.  */
+  ASET (entity, FONT_WIDTH_INDEX, make_number (100));
+
+  if (font_type & RASTER_FONTTYPE)
+    ASET (entity, FONT_SIZE_INDEX, make_number (physical_font->ntmTm.tmHeight));
+  else
+    ASET (entity, FONT_SIZE_INDEX, make_number (0));
+
+  /* Cache unicode codepoints covered by this font, as there is no other way
+     of getting this information easily.  */
+  if (font_type & TRUETYPE_FONTTYPE)
+    {
+      font_put_extra (entity, QCscript,
+                      font_supported_scripts (&physical_font->ntmFontSig));
+    }
+
+  return entity;
+}
+
+
+/* Convert generic families to the family portion of lfPitchAndFamily.  */
+BYTE
+w32_generic_family (Lisp_Object name)
+{
+  /* Generic families.  */
+  if (EQ (name, Qmonospace) || EQ (name, Qmono))
+    return FF_MODERN;
+  else if (EQ (name, Qsans) || EQ (name, Qsans_serif) || EQ (name, Qsansserif))
+    return FF_SWISS;
+  else if (EQ (name, Qserif))
+    return FF_ROMAN;
+  else if (EQ (name, Qdecorative))
+    return FF_DECORATIVE;
+  else if (EQ (name, Qscript))
+    return FF_SCRIPT;
+  else
+    return FF_DONTCARE;
+}
+
+static int
+logfonts_match (font, pattern)
+     LOGFONT *font, *pattern;
+{
+  /* Only check height for raster fonts.  */
+  if (pattern->lfHeight && font->lfOutPrecision == OUT_STRING_PRECIS
+      && font->lfHeight != pattern->lfHeight)
+    return 0;
+
+  /* Have some flexibility with weights.  */
+  if (pattern->lfWeight
+      && ((font->lfWeight < (pattern->lfWeight - 150))
+          || font->lfWeight > (pattern->lfWeight + 150)))
+      return 0;
+
+  /* Charset and face should be OK.  Italic has to be checked
+     against the original spec, in case we don't have any preference.  */
+  return 1;
+}
+
+static int
+font_matches_spec (type, font, spec)
+     DWORD type;
+     NEWTEXTMETRICEX *font;
+     Lisp_Object spec;
+{
+  Lisp_Object extra, val;
+
+  /* Check italic. Can't check logfonts, since it is a boolean field,
+     so there is no difference between "non-italic" and "don't care".  */
+  val = AREF (spec, FONT_SLANT_INDEX);
+  if (INTEGERP (val))
+    {
+      int slant = XINT (val);
+      if ((slant > 150 && !font->ntmTm.tmItalic)
+          || (slant <= 150 && font->ntmTm.tmItalic))
+        return 0;
+    }
+
+  /* Check adstyle against generic family.  */
+  val = AREF (spec, FONT_ADSTYLE_INDEX);
+  if (!NILP (val))
+    {
+      BYTE family = w32_generic_family (val);
+      if (family != FF_DONTCARE
+          && family != (font->ntmTm.tmPitchAndFamily & 0xF0))
+        return 0;
+    }
+
+  /* Check extra parameters.  */
+  for (extra = AREF (spec, FONT_EXTRA_INDEX);
+       CONSP (extra); extra = XCDR (extra))
+    {
+      Lisp_Object extra_entry;
+      extra_entry = XCAR (extra);
+      if (CONSP (extra_entry))
+        {
+          Lisp_Object key = XCAR (extra_entry);
+          val = XCDR (extra_entry);
+          if (EQ (key, QCspacing))
+            {
+              int proportional;
+              if (INTEGERP (val))
+                {
+                  int spacing = XINT (val);
+                  proportional = (spacing < FONT_SPACING_MONO);
+                }
+              else if (EQ (val, Qp))
+                proportional = 1;
+              else if (EQ (val, Qc) || EQ (val, Qm))
+                proportional = 0;
+              else
+                return 0; /* Bad font spec.  */
+
+              if ((proportional && !(font->ntmTm.tmPitchAndFamily & 0x01))
+                  || (!proportional && (font->ntmTm.tmPitchAndFamily & 0x01)))
+                return 0;
+            }
+          else if (EQ (key, QCscript) && SYMBOLP (val))
+            {
+              /* Only truetype fonts will have information about what
+                 scripts they support.  This probably means the user
+                 will have to force Emacs to use raster, postscript
+                 or atm fonts for non-ASCII text.  */
+              if (type & TRUETYPE_FONTTYPE)
+                {
+                  Lisp_Object support
+                    = font_supported_scripts (&font->ntmFontSig);
+                  if (! memq_no_quit (val, support))
+                    return 0;
+                }
+              else
+                {
+                  /* Return specific matches, but play it safe. Fonts
+                     that cover more than their charset would suggest
+                     are likely to be truetype or opentype fonts,
+                     covered above.  */
+                  if (EQ (val, Qlatin))
+                    {
+                      /* Although every charset but symbol, thai and
+                         arabic contains the basic ASCII set of latin
+                         characters, Emacs expects much more.  */
+                      if (font->ntmTm.tmCharSet != ANSI_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qsymbol))
+                    {
+                      if (font->ntmTm.tmCharSet != SYMBOL_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qcyrillic))
+                    {
+                      if (font->ntmTm.tmCharSet != RUSSIAN_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qgreek))
+                    {
+                      if (font->ntmTm.tmCharSet != GREEK_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qarabic))
+                    {
+                      if (font->ntmTm.tmCharSet != ARABIC_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qhebrew))
+                    {
+                      if (font->ntmTm.tmCharSet != HEBREW_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qthai))
+                    {
+                      if (font->ntmTm.tmCharSet != THAI_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qkana))
+                    {
+                      if (font->ntmTm.tmCharSet != SHIFTJIS_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qbopomofo))
+                    {
+                      if (font->ntmTm.tmCharSet != CHINESEBIG5_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qhangul))
+                    {
+                      if (font->ntmTm.tmCharSet != HANGUL_CHARSET
+                          && font->ntmTm.tmCharSet != JOHAB_CHARSET)
+                        return 0;
+                    }
+                  else if (EQ (val, Qhan))
+                    {
+                      if (font->ntmTm.tmCharSet != CHINESEBIG5_CHARSET
+                          && font->ntmTm.tmCharSet != GB2312_CHARSET
+                          && font->ntmTm.tmCharSet != HANGUL_CHARSET
+                          && font->ntmTm.tmCharSet != JOHAB_CHARSET
+                          && font->ntmTm.tmCharSet != SHIFTJIS_CHARSET)
+                        return 0;
+                    }
+                  else
+                    /* Other scripts unlikely to be handled.  */
+                    return 0;
+                }
+            }
+        }
+    }
+  return 1;
+}
+
+/* Callback function for EnumFontFamiliesEx.
+ * Checks if a font matches everything we are trying to check agaist,
+ * and if so, adds it to a list. Both the data we are checking against
+ * and the list to which the fonts are added are passed in via the
+ * lparam argument, in the form of a font_callback_data struct. */
+static int CALLBACK
+add_font_entity_to_list (logical_font, physical_font, font_type, lParam)
+     ENUMLOGFONTEX *logical_font;
+     NEWTEXTMETRICEX *physical_font;
+     DWORD font_type;
+     LPARAM lParam;
+{
+  struct font_callback_data *match_data
+    = (struct font_callback_data *) lParam;
+
+  if ((!match_data->opentype_only
+       || (physical_font->ntmTm.ntmFlags & NTMFLAGS_OPENTYPE))
+      && logfonts_match (&logical_font->elfLogFont, &match_data->pattern)
+      && font_matches_spec (font_type, physical_font,
+                            match_data->orig_font_spec)
+      /* Avoid substitutions involving raster fonts (eg Helv -> MS Sans Serif)
+         We limit this to raster fonts, because the test can catch some
+         genuine fonts (eg the full name of DejaVu Sans Mono Light is actually
+         DejaVu Sans Mono ExtraLight). Helvetica -> Arial substitution will
+         therefore get through this test.  Since full names can be prefixed
+         by a foundry, we accept raster fonts if the font name is found
+         anywhere within the full name.  */
+      && (logical_font->elfLogFont.lfOutPrecision != OUT_STRING_PRECIS
+          || strstr (logical_font->elfFullName,
+                     logical_font->elfLogFont.lfFaceName)))
+    {
+      Lisp_Object entity
+        = w32_enumfont_pattern_entity (match_data->frame, logical_font,
+                                       physical_font, font_type,
+                                       &match_data->pattern);
+      if (!NILP (entity))
+        match_data->list = Fcons (entity, match_data->list);
+    }
+  return 1;
+}
+
+/* Callback function for EnumFontFamiliesEx.
+ * Terminates the search once we have a match. */
+static int CALLBACK
+add_one_font_entity_to_list (logical_font, physical_font, font_type, lParam)
+     ENUMLOGFONTEX *logical_font;
+     NEWTEXTMETRICEX *physical_font;
+     DWORD font_type;
+     LPARAM lParam;
+{
+  struct font_callback_data *match_data
+    = (struct font_callback_data *) lParam;
+  add_font_entity_to_list (logical_font, physical_font, font_type, lParam);
+
+  /* If we have a font in the list, terminate the search.  */
+  return !NILP (match_data->list);
+}
+
+/* Convert a Lisp font registry (symbol) to a windows charset.  */
+static LONG
+registry_to_w32_charset (charset)
+     Lisp_Object charset;
+{
+  if (EQ (charset, Qiso10646_1) || EQ (charset, Qunicode_bmp)
+      || EQ (charset, Qunicode_sip))
+    return DEFAULT_CHARSET; /* UNICODE_CHARSET not defined in MingW32 */
+  else if (EQ (charset, Qiso8859_1))
+    return ANSI_CHARSET;
+  else if (SYMBOLP (charset))
+    return x_to_w32_charset (SDATA (SYMBOL_NAME (charset)));
+  else if (STRINGP (charset))
+    return x_to_w32_charset (SDATA (charset));
+  else
+    return DEFAULT_CHARSET;
+}
+
+static Lisp_Object
+w32_registry (w32_charset)
+     LONG w32_charset;
+{
+  if (w32_charset == ANSI_CHARSET)
+    return Qiso10646_1;
+  else
+    {
+      char * charset = w32_to_x_charset (w32_charset, NULL);
+      return intern_downcase (charset, strlen(charset));
+    }
+}
+
+/* Fill in all the available details of LOGFONT from FONT_SPEC.  */
+static void
+fill_in_logfont (f, logfont, font_spec)
+     FRAME_PTR f;
+     LOGFONT *logfont;
+     Lisp_Object font_spec;
+{
+  Lisp_Object tmp, extra;
+  int dpi = FRAME_W32_DISPLAY_INFO (f)->resy;
+
+  extra = AREF (font_spec, FONT_EXTRA_INDEX);
+  /* Allow user to override dpi settings.  */
+  if (CONSP (extra))
+    {
+      tmp = assq_no_quit (QCdpi, extra);
+      if (CONSP (tmp) && INTEGERP (XCDR (tmp)))
+        {
+          dpi = XINT (XCDR (tmp));
+        }
+      else if (CONSP (tmp) && FLOATP (XCDR (tmp)))
+        {
+          dpi = (int) (XFLOAT_DATA (XCDR (tmp)) + 0.5);
+        }
+    }
+
+  /* Height  */
+  tmp = AREF (font_spec, FONT_SIZE_INDEX);
+  if (INTEGERP (tmp))
+    logfont->lfHeight = -1 * XINT (tmp);
+  else if (FLOATP (tmp))
+    logfont->lfHeight = (int) (-1.0 *  dpi * XFLOAT_DATA (tmp) / 72.27 + 0.5);
+
+  /* Escapement  */
+
+  /* Orientation  */
+
+  /* Weight  */
+  tmp = AREF (font_spec, FONT_WEIGHT_INDEX);
+  if (INTEGERP (tmp))
+    logfont->lfWeight = XINT (tmp);
+
+  /* Italic  */
+  tmp = AREF (font_spec, FONT_SLANT_INDEX);
+  if (INTEGERP (tmp))
+    {
+      int slant = XINT (tmp);
+      logfont->lfItalic = slant > 150 ? 1 : 0;
+    }
+
+  /* Underline  */
+
+  /* Strikeout  */
+
+  /* Charset  */
+  tmp = AREF (font_spec, FONT_REGISTRY_INDEX);
+  if (! NILP (tmp))
+    logfont->lfCharSet = registry_to_w32_charset (tmp);
+
+  /* Out Precision  */
+
+  /* Clip Precision  */
+
+  /* Quality */
+  logfont->lfQuality = DEFAULT_QUALITY;
+
+  /* Generic Family and Face Name  */
+  logfont->lfPitchAndFamily = FF_DONTCARE | DEFAULT_PITCH;
+
+  tmp = AREF (font_spec, FONT_FAMILY_INDEX);
+  if (! NILP (tmp))
+    {
+      logfont->lfPitchAndFamily = w32_generic_family (tmp) | DEFAULT_PITCH;
+      if ((logfont->lfPitchAndFamily & 0xF0) != FF_DONTCARE)
+        ; /* Font name was generic, don't fill in font name.  */
+        /* Font families are interned, but allow for strings also in case of
+           user input.  */
+      else if (SYMBOLP (tmp))
+        strncpy (logfont->lfFaceName, SDATA (SYMBOL_NAME (tmp)), LF_FACESIZE);
+      else if (STRINGP (tmp))
+        strncpy (logfont->lfFaceName, SDATA (tmp), LF_FACESIZE);
+    }
+
+  tmp = AREF (font_spec, FONT_ADSTYLE_INDEX);
+  if (!NILP (tmp))
+    {
+      /* Override generic family.  */
+      BYTE family = w32_generic_family (tmp);
+      if (family != FF_DONTCARE)
+        logfont->lfPitchAndFamily = family | DEFAULT_PITCH;
+    }
+
+  /* Process EXTRA info.  */
+  for ( ; CONSP (extra); extra = XCDR (extra))
+    {
+      tmp = XCAR (extra);
+      if (CONSP (tmp))
+        {
+          Lisp_Object key, val;
+          key = XCAR (tmp), val = XCDR (tmp);
+          if (EQ (key, QCspacing))
+            {
+              /* Set pitch based on the spacing property.  */
+              if (INTEGERP (val))
+                {
+                  int spacing = XINT (val);
+                  if (spacing < FONT_SPACING_MONO)
+                    logfont->lfPitchAndFamily
+                      = logfont->lfPitchAndFamily & 0xF0 | VARIABLE_PITCH;
+                  else
+                    logfont->lfPitchAndFamily
+                      = logfont->lfPitchAndFamily & 0xF0 | FIXED_PITCH;
+                }
+              else if (EQ (val, Qp))
+                logfont->lfPitchAndFamily
+                  = logfont->lfPitchAndFamily & 0xF0 | VARIABLE_PITCH;
+              else if (EQ (val, Qc) || EQ (val, Qm))
+                logfont->lfPitchAndFamily
+                  = logfont->lfPitchAndFamily & 0xF0 | FIXED_PITCH;
+            }
+          /* Only use QCscript if charset is not provided, or is unicode
+             and a single script is specified.  This is rather crude,
+             and is only used to narrow down the fonts returned where
+             there is a definite match.  Some scripts, such as latin, han,
+             cjk-misc match multiple lfCharSet values, so we can't pre-filter
+             them.  */
+          else if (EQ (key, QCscript)
+                   && logfont->lfCharSet == DEFAULT_CHARSET
+                   && SYMBOLP (val))
+            {
+              if (EQ (val, Qgreek))
+                logfont->lfCharSet = GREEK_CHARSET;
+              else if (EQ (val, Qhangul))
+                logfont->lfCharSet = HANGUL_CHARSET;
+              else if (EQ (val, Qkana) || EQ (val, Qkanbun))
+                logfont->lfCharSet = SHIFTJIS_CHARSET;
+              else if (EQ (val, Qbopomofo))
+                logfont->lfCharSet = CHINESEBIG5_CHARSET;
+              /* GB 18030 supports tibetan, yi, mongolian,
+                 fonts that support it should show up if we ask for
+                 GB2312 fonts. */
+              else if (EQ (val, Qtibetan) || EQ (val, Qyi)
+                       || EQ (val, Qmongolian))
+                logfont->lfCharSet = GB2312_CHARSET;
+              else if (EQ (val, Qhebrew))
+                logfont->lfCharSet = HEBREW_CHARSET;
+              else if (EQ (val, Qarabic))
+                logfont->lfCharSet = ARABIC_CHARSET;
+              else if (EQ (val, Qthai))
+                logfont->lfCharSet = THAI_CHARSET;
+              else if (EQ (val, Qsymbol))
+                logfont->lfCharSet = SYMBOL_CHARSET;
+            }
+          else if (EQ (key, QCantialias) && SYMBOLP (val))
+            {
+              logfont->lfQuality = w32_antialias_type (val);
+            }
+        }
+    }
+}
+
+static void
+list_all_matching_fonts (match_data)
+     struct font_callback_data *match_data;
+{
+  HDC dc;
+  Lisp_Object families = w32font_list_family (match_data->frame);
+  struct frame *f = XFRAME (match_data->frame);
+
+  dc = get_frame_dc (f);
+
+  while (!NILP (families))
+    {
+      /* TODO: Use the Unicode versions of the W32 APIs, so we can
+         handle non-ASCII font names.  */
+      char *name;
+      Lisp_Object family = CAR (families);
+      families = CDR (families);
+      if (NILP (family))
+        continue;
+      else if (STRINGP (family))
+        name = SDATA (family);
+      else
+        name = SDATA (SYMBOL_NAME (family)); 
+
+      strncpy (match_data->pattern.lfFaceName, name, LF_FACESIZE);
+      match_data->pattern.lfFaceName[LF_FACESIZE - 1] = '\0';
+
+      EnumFontFamiliesEx (dc, &match_data->pattern,
+                          (FONTENUMPROC) add_font_entity_to_list,
+                          (LPARAM) match_data, 0);
+    }
+
+  release_frame_dc (f, dc);
+}
+
+static Lisp_Object
+lispy_antialias_type (type)
+     BYTE type;
+{
+  Lisp_Object lispy;
+
+  switch (type)
+    {
+    case NONANTIALIASED_QUALITY:
+      lispy = Qnone;
+      break;
+    case ANTIALIASED_QUALITY:
+      lispy = Qstandard;
+      break;
+    case CLEARTYPE_QUALITY:
+      lispy = Qsubpixel;
+      break;
+    case CLEARTYPE_NATURAL_QUALITY:
+      lispy = Qnatural;
+      break;
+    default:
+      lispy = Qnil;
+      break;
+    }
+  return lispy;
+}
+
+/* Convert antialiasing symbols to lfQuality  */
+static BYTE
+w32_antialias_type (type)
+     Lisp_Object type;
+{
+  if (EQ (type, Qnone))
+    return NONANTIALIASED_QUALITY;
+  else if (EQ (type, Qstandard))
+    return ANTIALIASED_QUALITY;
+  else if (EQ (type, Qsubpixel))
+    return CLEARTYPE_QUALITY;
+  else if (EQ (type, Qnatural))
+    return CLEARTYPE_NATURAL_QUALITY;
+  else
+    return DEFAULT_QUALITY;
+}
+
+/* Return a list of all the scripts that the font supports.  */
+static Lisp_Object
+font_supported_scripts (FONTSIGNATURE * sig)
+{
+  DWORD * subranges = sig->fsUsb;
+  Lisp_Object supported = Qnil;
+
+  /* Match a single subrange. SYM is set if bit N is set in subranges.  */
+#define SUBRANGE(n,sym) \
+  if (subranges[(n) / 32] & (1 << ((n) % 32))) \
+    supported = Fcons ((sym), supported)
+
+  /* Match multiple subranges. SYM is set if any MASK bit is set in
+     subranges[0 - 3].  */
+#define MASK_ANY(mask0,mask1,mask2,mask3,sym)      \
+  if ((subranges[0] & (mask0)) || (subranges[1] & (mask1))     \
+      || (subranges[2] & (mask2)) || (subranges[3] & (mask3))) \
+    supported = Fcons ((sym), supported)
+
+  SUBRANGE (0, Qlatin); /* There are many others... */
+
+  SUBRANGE (7, Qgreek);
+  SUBRANGE (8, Qcoptic);
+  SUBRANGE (9, Qcyrillic);
+  SUBRANGE (10, Qarmenian);
+  SUBRANGE (11, Qhebrew);
+  SUBRANGE (13, Qarabic);
+  SUBRANGE (14, Qnko);
+  SUBRANGE (15, Qdevanagari);
+  SUBRANGE (16, Qbengali);
+  SUBRANGE (17, Qgurmukhi);
+  SUBRANGE (18, Qgujarati);
+  SUBRANGE (19, Qoriya);
+  SUBRANGE (20, Qtamil);
+  SUBRANGE (21, Qtelugu);
+  SUBRANGE (22, Qkannada);
+  SUBRANGE (23, Qmalayalam);
+  SUBRANGE (24, Qthai);
+  SUBRANGE (25, Qlao);
+  SUBRANGE (26, Qgeorgian);
+
+  SUBRANGE (48, Qcjk_misc);
+  SUBRANGE (51, Qbopomofo);
+  SUBRANGE (54, Qkanbun); /* Is this right?  */
+  SUBRANGE (56, Qhangul);
+
+  SUBRANGE (59, Qhan); /* There are others, but this is the main one.  */
+  SUBRANGE (59, Qideographic_description); /* Windows lumps this in  */
+
+  SUBRANGE (70, Qtibetan);
+  SUBRANGE (71, Qsyriac);
+  SUBRANGE (72, Qthaana);
+  SUBRANGE (73, Qsinhala);
+  SUBRANGE (74, Qmyanmar);
+  SUBRANGE (75, Qethiopic);
+  SUBRANGE (76, Qcherokee);
+  SUBRANGE (77, Qcanadian_aboriginal);
+  SUBRANGE (78, Qogham);
+  SUBRANGE (79, Qrunic);
+  SUBRANGE (80, Qkhmer);
+  SUBRANGE (81, Qmongolian);
+  SUBRANGE (82, Qbraille);
+  SUBRANGE (83, Qyi);
+
+  SUBRANGE (88, Qbyzantine_musical_symbol);
+  SUBRANGE (88, Qmusical_symbol); /* Windows doesn't distinguish these.  */
+
+  SUBRANGE (89, Qmathematical);
+
+  /* Match either katakana or hiragana for kana.  */
+  MASK_ANY (0, 0x00060000, 0, 0, Qkana);
+
+  /* There isn't really a main symbol range, so include symbol if any
+     relevant range is set.  */
+  MASK_ANY (0x8000000, 0x0000FFFF, 0, 0, Qsymbol);
+
+#undef SUBRANGE
+#undef MASK_ANY
+
+  return supported;
+}
+
+
+struct font_driver w32font_driver =
+  {
+    0, /* Qgdi */
+    w32font_get_cache,
+    w32font_list,
+    w32font_match,
+    w32font_list_family,
+    NULL, /* free_entity */
+    w32font_open,
+    w32font_close,
+    NULL, /* prepare_face */
+    NULL, /* done_face */
+    w32font_has_char,
+    w32font_encode_char,
+    w32font_text_extents,
+    w32font_draw,
+    NULL, /* get_bitmap */
+    NULL, /* free_bitmap */
+    NULL, /* get_outline */
+    NULL, /* free_outline */
+    NULL, /* anchor_point */
+    NULL, /* otf_capability */
+    NULL, /* otf_drive */
+    NULL, /* start_for_frame */
+    NULL, /* end_for_frame */
+    NULL  /* shape */
+  };
+
+
+/* Initialize state that does not change between invocations. This is only
+   called when Emacs is dumped.  */
+void
+syms_of_w32font ()
+{
+  DEFSYM (Qgdi, "gdi");
+
+  /* Generic font families.  */
+  DEFSYM (Qmonospace, "monospace");
+  DEFSYM (Qserif, "serif");
+  DEFSYM (Qsansserif, "sansserif");
+  DEFSYM (Qscript, "script");
+  DEFSYM (Qdecorative, "decorative");
+  /* Aliases.  */
+  DEFSYM (Qsans_serif, "sans_serif");
+  DEFSYM (Qsans, "sans");
+  DEFSYM (Qmono, "mono");
+
+  /* Fake foundries.  */
+  DEFSYM (Qraster, "raster");
+  DEFSYM (Qoutline, "outline");
+  DEFSYM (Qunknown, "unknown");
+
+  /* Antialiasing.  */
+  DEFSYM (Qstandard, "standard");
+  DEFSYM (Qsubpixel, "subpixel");
+  DEFSYM (Qnatural, "natural");
+
+  /* Scripts  */
+  DEFSYM (Qlatin, "latin");
+  DEFSYM (Qgreek, "greek");
+  DEFSYM (Qcoptic, "coptic");
+  DEFSYM (Qcyrillic, "cyrillic");
+  DEFSYM (Qarmenian, "armenian");
+  DEFSYM (Qhebrew, "hebrew");
+  DEFSYM (Qarabic, "arabic");
+  DEFSYM (Qsyriac, "syriac");
+  DEFSYM (Qnko, "nko");
+  DEFSYM (Qthaana, "thaana");
+  DEFSYM (Qdevanagari, "devanagari");
+  DEFSYM (Qbengali, "bengali");
+  DEFSYM (Qgurmukhi, "gurmukhi");
+  DEFSYM (Qgujarati, "gujarati");
+  DEFSYM (Qoriya, "oriya");
+  DEFSYM (Qtamil, "tamil");
+  DEFSYM (Qtelugu, "telugu");
+  DEFSYM (Qkannada, "kannada");
+  DEFSYM (Qmalayalam, "malayalam");
+  DEFSYM (Qsinhala, "sinhala");
+  DEFSYM (Qthai, "thai");
+  DEFSYM (Qlao, "lao");
+  DEFSYM (Qtibetan, "tibetan");
+  DEFSYM (Qmyanmar, "myanmar");
+  DEFSYM (Qgeorgian, "georgian");
+  DEFSYM (Qhangul, "hangul");
+  DEFSYM (Qethiopic, "ethiopic");
+  DEFSYM (Qcherokee, "cherokee");
+  DEFSYM (Qcanadian_aboriginal, "canadian-aboriginal");
+  DEFSYM (Qogham, "ogham");
+  DEFSYM (Qrunic, "runic");
+  DEFSYM (Qkhmer, "khmer");
+  DEFSYM (Qmongolian, "mongolian");
+  DEFSYM (Qsymbol, "symbol");
+  DEFSYM (Qbraille, "braille");
+  DEFSYM (Qhan, "han");
+  DEFSYM (Qideographic_description, "ideographic-description");
+  DEFSYM (Qcjk_misc, "cjk-misc");
+  DEFSYM (Qkana, "kana");
+  DEFSYM (Qbopomofo, "bopomofo");
+  DEFSYM (Qkanbun, "kanbun");
+  DEFSYM (Qyi, "yi");
+  DEFSYM (Qbyzantine_musical_symbol, "byzantine-musical-symbol");
+  DEFSYM (Qmusical_symbol, "musical-symbol");
+  DEFSYM (Qmathematical, "mathematical");
+
+  w32font_driver.type = Qgdi;
+  register_font_driver (&w32font_driver, NULL);
+}
+
+/* arch-tag: 65b8a3cd-46aa-4c0d-a1f3-99e75b9c07ee
+   (do not change this comment) */
diff --git a/src/w32font.h b/src/w32font.h
new file mode 100644 (file)
index 0000000..54aa5ef
--- /dev/null
@@ -0,0 +1,58 @@
+/* Shared GDI and Uniscribe Font backend declarations for the W32 API.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#ifndef EMACS_W32FONT_H
+#define EMACS_W32FONT_H
+
+
+/* Bit 17 of ntmFlags in NEWTEXTMETRIC is set for Postscript OpenType fonts,
+   bit 18 for Truetype OpenType fonts.  */
+#define NTMFLAGS_OPENTYPE 0x60000
+
+/* The actual structure for a w32 font, that can be cast to struct font.
+   The Uniscribe backend extends this.  */
+struct w32font_info
+{
+  struct font font;
+  TEXTMETRIC metrics;
+  struct frame *owning_frame;
+};
+
+Lisp_Object w32font_get_cache P_ ((FRAME_PTR fe));
+Lisp_Object w32font_list_internal P_ ((Lisp_Object frame,
+                                       Lisp_Object font_spec,
+                                       int opentype_only));
+Lisp_Object w32font_match_internal P_ ((Lisp_Object frame,
+                                        Lisp_Object font_spec,
+                                        int opentype_only));
+int w32font_open_internal P_ ((FRAME_PTR f, Lisp_Object font_entity,
+                               int pixel_size, struct w32font_info *w32_font));
+void w32font_close P_ ((FRAME_PTR f, struct font *font));
+int w32font_has_char P_ ((Lisp_Object entity, int c));
+unsigned w32font_encode_char P_ ((struct font *font, int c));
+int w32font_text_extents P_ ((struct font *font, unsigned *code, int nglyphs,
+                              struct font_metrics *metrics));
+int w32font_draw P_ ((struct glyph_string *s, int from, int to,
+                      int x, int y, int with_background));
+
+#endif
+
+/* arch-tag: ef9d9675-a2a5-4d01-9526-815e9a3da7cb
+   (do not change this comment) */
index a0ce8c655cb054208ffbd8f84a0e74acba933285..c570385c3bb33f6b5ab577c0fe2bf367b61db8e2 100644 (file)
@@ -34,6 +34,7 @@ Boston, MA 02110-1301, USA.  */
 #include "blockinput.h"
 #include "buffer.h"
 #include "charset.h"
+#include "character.h"
 #include "coding.h"
 
 /* This may include sys/types.h, and that somehow loses
@@ -259,10 +260,10 @@ menubar_id_to_frame (id)
   Lisp_Object tail, frame;
   FRAME_PTR f;
 
-  for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       frame = XCAR (tail);
-      if (!GC_FRAMEP (frame))
+      if (!FRAMEP (frame))
         continue;
       f = XFRAME (frame);
       if (!FRAME_WINDOW_P (f))
@@ -2591,14 +2592,13 @@ DEFUN ("menu-or-popup-active-p", Fmenu_or_popup_active_p, Smenu_or_popup_active_
 
 void syms_of_w32menu ()
 {
-       globals_of_w32menu ();
+  globals_of_w32menu ();
   staticpro (&menu_items);
   menu_items = Qnil;
 
   current_popup_menu = NULL;
 
-  Qdebug_on_next_call = intern ("debug-on-next-call");
-  staticpro (&Qdebug_on_next_call);
+  DEFSYM (Qdebug_on_next_call, "debug-on-next-call");
 
   defsubr (&Sx_popup_menu);
   defsubr (&Smenu_or_popup_active_p);
index a14a8ee384cdc2bf14c84cfed7e78965b159d608..7ce01aa3e5030885e00f967faf094e5413ce289f 100644 (file)
@@ -55,6 +55,7 @@ extern BOOL WINAPI IsValidLocale(LCID, DWORD);
 #endif
 
 #include "lisp.h"
+#include "character.h"
 #include "w32.h"
 #include "w32heap.h"
 #include "systime.h"
@@ -2258,10 +2259,8 @@ If successful, the new layout id is returned, otherwise nil.  */)
 \f
 syms_of_ntproc ()
 {
-  Qhigh = intern ("high");
-  Qlow = intern ("low");
-  staticpro (&Qhigh);
-  staticpro (&Qlow);
+  DEFSYM (Qhigh, "high");
+  DEFSYM (Qlow, "low");
 
 #ifdef HAVE_SOCKETS
   defsubr (&Sw32_has_winsock);
index 0690204ad7264b2cd4d37d689684530004e3a58e..d620206aa1395efd7b6d09f67baf52e8c40dd52a 100644 (file)
@@ -82,6 +82,7 @@ Boston, MA 02110-1301, USA.  */
 #include "keyboard.h"  /* cmd_error_internal() */
 #include "charset.h"
 #include "coding.h"
+#include "character.h"
 #include "composite.h"
 
 
@@ -100,6 +101,9 @@ static void setup_config (void);
 static BOOL WINAPI enum_locale_callback (/*const*/ char* loc_string);
 static UINT cp_from_locale (LCID lcid, UINT format);
 static Lisp_Object coding_from_cp (UINT codepage);
+static Lisp_Object validate_coding_system (Lisp_Object coding_system);
+static void setup_windows_coding_system (Lisp_Object coding_system,
+                                        struct coding_system * coding);
 
 
 /* A remnant from X11: Symbol for the CLIPBORD selection type.  Other
@@ -213,63 +217,36 @@ convert_to_handle_as_ascii (void)
 static HGLOBAL
 convert_to_handle_as_coded (Lisp_Object coding_system)
 {
-  HGLOBAL htext = NULL, htext2;
-  int nbytes;
-  unsigned char *src;
+  HGLOBAL htext;
   unsigned char *dst = NULL;
-  int bufsize;
   struct coding_system coding;
-  Lisp_Object string = Qnil;
 
   ONTRACE (fprintf (stderr, "convert_to_handle_as_coded: %s\n",        
                    SDATA (SYMBOL_NAME (coding_system))));
 
-  setup_coding_system (Fcheck_coding_system (coding_system), &coding);
-  coding.src_multibyte = 1;
-  coding.dst_multibyte = 0;
-  /* Need to set COMPOSITION_DISABLED, otherwise Emacs crashes in
-     encode_coding_iso2022 trying to dereference a null pointer.  */
-  coding.composing = COMPOSITION_DISABLED;
-  if (coding.type == coding_type_iso2022)
-    coding.flags |= CODING_FLAG_ISO_SAFE;
-  coding.mode |= CODING_MODE_LAST_BLOCK;
-  /* Force DOS line-ends. */
-  coding.eol_type = CODING_EOL_CRLF;
-
-  if (SYMBOLP (coding.pre_write_conversion)
-      && !NILP (Ffboundp (coding.pre_write_conversion)))
-    string = run_pre_post_conversion_on_str (current_text, &coding, 1);
-  else
-    string = current_text;
-
-  nbytes = SBYTES (string);
-  src = SDATA (string);
+  setup_windows_coding_system (coding_system, &coding);
+  coding.dst_bytes = SBYTES(current_text) * 2;
+  coding.destination = (unsigned char *) xmalloc (coding.dst_bytes);
+  encode_coding_object (&coding, current_text, 0, 0,
+                       SCHARS (current_text), SBYTES (current_text), Qnil);
 
-  bufsize = encoding_buffer_size (&coding, nbytes) +2;
-  htext = GlobalAlloc (GMEM_MOVEABLE | GMEM_DDESHARE, bufsize);
+  htext = GlobalAlloc (GMEM_MOVEABLE | GMEM_DDESHARE, coding.produced +2);
 
   if (htext != NULL)
     dst = (unsigned char *) GlobalLock (htext);
 
   if (dst != NULL)
     {
-      encode_coding (&coding, src, dst, nbytes, bufsize-2);
+      memcpy (dst, coding.destination, coding.produced);
       /* Add the string terminator.  Add two NULs in case we are
         producing Unicode here.  */
       dst[coding.produced] = dst[coding.produced+1] = '\0';
-    }
-
-  if (dst != NULL)
-    GlobalUnlock (htext);
 
-  if (htext != NULL)
-    {
-      /* Shrink data block to actual size.  */
-      htext2 = GlobalReAlloc (htext, coding.produced+2,
-                             GMEM_MOVEABLE | GMEM_DDESHARE);
-      if (htext2 != NULL) htext = htext2;
+      GlobalUnlock (htext);
     }
 
+  xfree (coding.destination);
+
   return htext;
 }
 
@@ -518,17 +495,26 @@ setup_config (void)
   const char *cp;
   char *end;
   int slen;
-  Lisp_Object new_coding_system;
+  Lisp_Object coding_system;
+  Lisp_Object dos_coding_system;
 
   CHECK_SYMBOL (Vselection_coding_system);
 
-  /* Check if we have it cached */
-  new_coding_system = NILP (Vnext_selection_coding_system) ?
+  coding_system = NILP (Vnext_selection_coding_system) ?
     Vselection_coding_system : Vnext_selection_coding_system;
+
+  dos_coding_system = validate_coding_system (coding_system);
+  if (NILP (dos_coding_system))
+    Fsignal (Qerror,
+            list2 (build_string ("Coding system is invalid or doesn't have "
+                                 "an eol variant for dos line ends"),
+                   coding_system));
+
+  /* Check if we have it cached */
   if (!NILP (cfg_coding_system)
-      && EQ (cfg_coding_system, new_coding_system))
+      && EQ (cfg_coding_system, dos_coding_system))
     return;
-  cfg_coding_system = new_coding_system;
+  cfg_coding_system = dos_coding_system;
   
   /* Set some sensible fallbacks */
   cfg_codepage = ANSICP;
@@ -637,12 +623,61 @@ coding_from_cp (UINT codepage)
   char buffer[30];
   sprintf (buffer, "cp%d-dos", (int) codepage);
   return intern (buffer);
-  /* We don't need to check that this coding system exists right here,
-     because that is done when the coding system is actually
-     instantiated, i.e. it is passed through Fcheck_coding_system()
-     there.  */
+  /* We don't need to check that this coding system actually exists
+     right here, because that is done later for all coding systems
+     used, regardless of where they originate.  */
 }
 
+static Lisp_Object
+validate_coding_system (Lisp_Object coding_system)
+{
+  Lisp_Object eol_type;
+
+  /* Make sure the input is valid. */
+  if (NILP (Fcoding_system_p (coding_system)))
+    return Qnil;
+
+  /* Make sure we use a DOS coding system as mandated by the system
+     specs. */
+  eol_type = Fcoding_system_eol_type (coding_system);
+
+  /* Already a DOS coding system? */
+  if (EQ (eol_type, make_number (1)))
+    return coding_system;
+
+  /* Get EOL_TYPE vector of the base of CODING_SYSTEM.  */
+  if (!VECTORP (eol_type))
+    {
+      eol_type = Fcoding_system_eol_type (Fcoding_system_base (coding_system));
+      if (!VECTORP (eol_type))
+       return Qnil;
+    }
+
+  return AREF (eol_type, 1);
+}
+
+static void
+setup_windows_coding_system (Lisp_Object coding_system,
+                            struct coding_system * coding)
+{
+  memset (coding, 0, sizeof (*coding));
+  setup_coding_system (coding_system, coding);
+
+  /* Unset CODING_ANNOTATE_COMPOSITION_MASK.  Previous code had
+     comments about crashes in encode_coding_iso2022 trying to
+     dereference a null pointer when composition was on.  Selection
+     data should not contain any composition sequence on Windows.
+
+     CODING_ANNOTATION_MASK also includes
+     CODING_ANNOTATE_DIRECTION_MASK and CODING_ANNOTATE_CHARSET_MASK,
+     which both apply to ISO6429 only.  We don't know if these really
+     need to be unset on Windows, but it probably doesn't hurt
+     either.  */
+  coding->mode &= ~CODING_ANNOTATION_MASK;
+  coding->mode |= CODING_MODE_LAST_BLOCK | CODING_MODE_SAFE_ENCODING;
+}
+
+
 
 DEFUN ("w32-set-clipboard-data", Fw32_set_clipboard_data,
        Sw32_set_clipboard_data, 1, 2, 0,
@@ -847,10 +882,9 @@ DEFUN ("w32-get-clipboard-data", Fw32_get_clipboard_data,
 
     if (require_decoding)
       {
-       int bufsize;
-       unsigned char *buf;
        struct coding_system coding;
        Lisp_Object coding_system = Qnil;
+       Lisp_Object dos_coding_system;
        
        /* `next-selection-coding-system' should override everything,
           even when the locale passed by the system disagrees.  The
@@ -912,27 +946,16 @@ DEFUN ("w32-get-clipboard-data", Fw32_get_clipboard_data,
          coding_system = Vselection_coding_system;
        Vnext_selection_coding_system = Qnil;
 
-       setup_coding_system (Fcheck_coding_system (coding_system), &coding);
-       coding.src_multibyte = 0;
-       coding.dst_multibyte = 1;
-       coding.mode |= CODING_MODE_LAST_BLOCK;
-       /* We explicitely disable composition handling because
-          selection data should not contain any composition
-          sequence.  */
-       coding.composing = COMPOSITION_DISABLED;
-       /* Force DOS line-ends. */
-       coding.eol_type = CODING_EOL_CRLF;
-
-       bufsize = decoding_buffer_size (&coding, nbytes);
-       buf = (unsigned char *) xmalloc (bufsize);
-       decode_coding (&coding, src, buf, nbytes, bufsize);
-       Vlast_coding_system_used = coding.symbol;
-        ret = make_string_from_bytes ((char *) buf,
-                                      coding.produced_char, coding.produced);
-       xfree (buf);
-       if (SYMBOLP (coding.post_read_conversion)
-           && !NILP (Ffboundp (coding.post_read_conversion)))
-         ret = run_pre_post_conversion_on_str (ret, &coding, 0);
+       dos_coding_system = validate_coding_system (coding_system);
+       if (!NILP (dos_coding_system))
+         {
+           setup_windows_coding_system (dos_coding_system, &coding);
+           coding.source = src;
+           decode_coding_object (&coding, Qnil, 0, 0, nbytes, nbytes, Qt);
+           ret = coding.dst_object;
+
+           Vlast_coding_system_used = CODING_ID_NAME (coding.id);
+         }
       }
     else
       {
@@ -1017,10 +1040,11 @@ and t is the same as `SECONDARY'.  */)
     {
       Lisp_Object val = Qnil;
 
+      setup_config ();
+
       if (OpenClipboard (NULL))
        {
          UINT format = 0;
-         setup_config ();
          while ((format = EnumClipboardFormats (format)))
            /* Check CF_TEXT in addition to cfg_clipboard_type,
               because we can fall back on that if CF_UNICODETEXT is
@@ -1066,13 +1090,13 @@ next communication only.  After the communication, this variable is
 set to nil.  */);
   Vnext_selection_coding_system = Qnil;
 
-  QCLIPBOARD = intern ("CLIPBOARD");   staticpro (&QCLIPBOARD);
+  DEFSYM (QCLIPBOARD, "CLIPBOARD");
 
   cfg_coding_system = Qnil;     staticpro (&cfg_coding_system);
   current_text = Qnil;         staticpro (&current_text);
   current_coding_system = Qnil; staticpro (&current_coding_system);
 
-  QUNICODE = intern ("utf-16le-dos"); staticpro (&QUNICODE);
+  DEFSYM (QUNICODE, "utf-16le-dos");
   QANSICP = Qnil; staticpro (&QANSICP);
   QOEMCP = Qnil;  staticpro (&QOEMCP);
 }
index 2c22399bc1bb80354a18dd7b10f8be797e971573..b489657361cbf5a1c6848d3311da614730477fad 100644 (file)
@@ -25,25 +25,21 @@ Boston, MA 02110-1301, USA.  */
 #include <stdio.h>
 #include <stdlib.h>
 #include "lisp.h"
-#include "charset.h"
 #include "blockinput.h"
-
-#include "w32heap.h"
 #include "w32term.h"
-#include "w32bdf.h"
-#include <shellapi.h>
 
 #include "systty.h"
 #include "systime.h"
-#include "atimer.h"
-#include "keymap.h"
 
 #include <ctype.h>
 #include <errno.h>
 #include <setjmp.h>
 #include <sys/stat.h>
 
-#include "keyboard.h"
+#include "charset.h"
+#include "character.h"
+#include "coding.h"
+#include "ccl.h"
 #include "frame.h"
 #include "dispextern.h"
 #include "fontset.h"
@@ -54,9 +50,19 @@ Boston, MA 02110-1301, USA.  */
 #include "disptab.h"
 #include "buffer.h"
 #include "window.h"
+#include "keyboard.h"
 #include "intervals.h"
-#include "composite.h"
-#include "coding.h"
+#include "process.h"
+#include "atimer.h"
+#include "keymap.h"
+
+#include "w32heap.h"
+#include "w32bdf.h"
+#include <shellapi.h>
+
+#ifdef USE_FONT_BACKEND
+#include "font.h"
+#endif /* USE_FONT_BACKEND */
 
 \f
 /* Fringe bitmaps.  */
@@ -119,6 +125,31 @@ struct w32_display_info *x_display_list;
    FONT-LIST-CACHE records previous values returned by x-list-fonts.  */
 Lisp_Object w32_display_name_list;
 
+
+#ifndef GLYPHSET
+/* Pre Windows 2000, this was not available, but define it here so
+   that Emacs compiled on such a platform will run on newer versions.  */
+
+typedef struct tagWCRANGE
+{
+  WCHAR wcLow;
+  USHORT cGlyphs;
+} WCRANGE;
+
+typedef struct tagGLYPHSET 
+{
+  DWORD cbThis;
+  DWORD flAccel;
+  DWORD cGlyphsSupported;
+  DWORD cRanges;
+  WCRANGE ranges[1];
+} GLYPHSET;  
+
+#endif
+
+/* Dynamic linking to GetFontUnicodeRanges (not available on 95, 98, ME).  */
+DWORD (PASCAL *pfnGetFontUnicodeRanges) (HDC device, GLYPHSET *ranges);
+
 /* Frame being updated by update_frame.  This is declared in term.c.
    This is set by update_begin and looked at by all the
    w32 functions.  It is zero while not inside an update.
@@ -867,7 +898,8 @@ w32_reset_terminal_modes (struct terminal *term)
 /* Function prototypes of this page.  */
 
 XCharStruct *w32_per_char_metric P_ ((XFontStruct *, wchar_t *, int));
-static int w32_encode_char P_ ((int, wchar_t *, struct font_info *, int *));
+static int w32_encode_char P_ ((int, wchar_t *, struct font_info *,
+                               struct charset *, int *));
 
 
 /* Get metrics of character CHAR2B in FONT.  Value is always non-null.
@@ -992,8 +1024,8 @@ w32_native_per_char_metric (font, char2b, font_type, pcm)
 
       if (retval)
        {
-         pcm->width = sz.cx - font->tm.tmOverhang;
-         pcm->rbearing = sz.cx;
+         pcm->width = sz.cx;
+         pcm->rbearing = sz.cx + font->tm.tmOverhang;
          pcm->lbearing = 0;
          pcm->ascent = FONT_BASE (font);
          pcm->descent = FONT_DESCENT (font);
@@ -1074,9 +1106,9 @@ w32_cache_char_metrics (font)
         {
           /* Use the font width and height as max bounds, as not all BDF
              fonts contain the letter 'x'. */
-          font->max_bounds.width = FONT_MAX_WIDTH (font);
+          font->max_bounds.width = FONT_WIDTH (font);
           font->max_bounds.lbearing = -font->bdf->llx;
-          font->max_bounds.rbearing = FONT_MAX_WIDTH (font) - font->bdf->urx;
+          font->max_bounds.rbearing = FONT_WIDTH (font) - font->bdf->urx;
           font->max_bounds.ascent = FONT_BASE (font);
           font->max_bounds.descent = FONT_DESCENT (font);
         }
@@ -1132,13 +1164,13 @@ w32_use_unicode_for_codepage (codepage)
    the two-byte form of C.  Encoding is returned in *CHAR2B.  */
 
 static int /* enum w32_char_font_type */
-w32_encode_char (c, char2b, font_info, two_byte_p)
+w32_encode_char (c, char2b, font_info, charset, two_byte_p)
      int c;
      wchar_t *char2b;
      struct font_info *font_info;
+     struct charset *charset;
      int * two_byte_p;
 {
-  int charset = CHAR_CHARSET (c);
   int codepage;
   int unicode_p = 0;
   int internal_two_byte_p = 0;
@@ -1146,29 +1178,39 @@ w32_encode_char (c, char2b, font_info, two_byte_p)
   XFontStruct *font = font_info->font;
 
   internal_two_byte_p = w32_font_is_double_byte (font);
+  codepage = font_info->codepage;
+
+  /* If font can output unicode, use the original unicode character.  */
+  if ( font && !font->bdf && w32_use_unicode_for_codepage (codepage)
+       && c >= 0x100)
+    {
+      *char2b = c;
+      unicode_p = 1;
+      internal_two_byte_p = 1;
+    }
 
   /* FONT_INFO may define a scheme by which to encode byte1 and byte2.
      This may be either a program in a special encoder language or a
      fixed encoding.  */
-  if (font_info->font_encoder)
+  else if (font_info->font_encoder)
     {
       /* It's a program.  */
       struct ccl_program *ccl = font_info->font_encoder;
 
       if (CHARSET_DIMENSION (charset) == 1)
        {
-         ccl->reg[0] = charset;
+         ccl->reg[0] = CHARSET_ID (charset);
          ccl->reg[1] = XCHAR2B_BYTE2 (char2b);
          ccl->reg[2] = -1;
        }
       else
        {
-         ccl->reg[0] = charset;
+         ccl->reg[0] = CHARSET_ID (charset);
          ccl->reg[1] = XCHAR2B_BYTE1 (char2b);
          ccl->reg[2] = XCHAR2B_BYTE2 (char2b);
        }
 
-      ccl_driver (ccl, NULL, NULL, 0, 0, NULL);
+      ccl_driver (ccl, NULL, NULL, 0, 0, Qnil);
 
       /* We assume that MSBs are appropriately set/reset by CCL
         program.  */
@@ -1177,50 +1219,26 @@ w32_encode_char (c, char2b, font_info, two_byte_p)
       else
        STORE_XCHAR2B (char2b, ccl->reg[1], ccl->reg[2]);
     }
-  else if (font_info->encoding[charset])
+  else if (font_info->encoding_type)
     {
       /* Fixed encoding scheme.  See fontset.h for the meaning of the
         encoding numbers.  */
-      int enc = font_info->encoding[charset];
+      unsigned char enc = font_info->encoding_type;
 
       if ((enc == 1 || enc == 2)
          && CHARSET_DIMENSION (charset) == 2)
        STORE_XCHAR2B (char2b, XCHAR2B_BYTE1 (char2b) | 0x80, XCHAR2B_BYTE2 (char2b));
 
-      if (enc == 1 || enc == 3
-          || (enc == 4 && CHARSET_DIMENSION (charset) == 1))
+      if (enc == 1 || enc == 3          || (enc == 4 && CHARSET_DIMENSION (charset) == 1))
        STORE_XCHAR2B (char2b, XCHAR2B_BYTE1 (char2b), XCHAR2B_BYTE2 (char2b) | 0x80);
       else if (enc == 4)
         {
-          int sjis1, sjis2;
+          int code = (int) (*char2b);
 
-          ENCODE_SJIS (XCHAR2B_BYTE1 (char2b), XCHAR2B_BYTE2 (char2b),
-                       sjis1, sjis2);
-          STORE_XCHAR2B (char2b, sjis1, sjis2);
+         JIS_TO_SJIS (code);
+          STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
         }
     }
-  codepage = font_info->codepage;
-
-  /* If charset is not ASCII or Latin-1, may need to move it into
-     Unicode space.  */
-  if ( font && !font->bdf && w32_use_unicode_for_codepage (codepage)
-       && charset != CHARSET_ASCII && charset != charset_latin_iso8859_1
-       && charset != CHARSET_8_BIT_CONTROL && charset != CHARSET_8_BIT_GRAPHIC)
-    {
-      char temp[3];
-      temp[0] = XCHAR2B_BYTE1 (char2b);
-      temp[1] = XCHAR2B_BYTE2 (char2b);
-      temp[2] = '\0';
-      if (codepage != CP_UNICODE)
-        {
-          if (temp[0])
-            MultiByteToWideChar (codepage, 0, temp, 2, char2b, 1);
-          else
-            MultiByteToWideChar (codepage, 0, temp+1, 1, char2b, 1);
-        }
-      unicode_p = 1;
-      internal_two_byte_p = 1;
-    }
 
   if (two_byte_p)
     *two_byte_p = internal_two_byte_p;
@@ -1238,6 +1256,207 @@ w32_encode_char (c, char2b, font_info, two_byte_p)
 }
 
 
+/* Return a char-table whose elements are t if the font FONT_INFO
+   contains a glyph for the corresponding character, and nil if not.
+
+   Fixme: For the moment, this function works only for fonts whose
+   glyph encoding is the same as Unicode (e.g. ISO10646-1 fonts).  */
+
+Lisp_Object
+x_get_font_repertory (f, font_info)
+     FRAME_PTR f;
+     struct font_info *font_info;
+{
+  XFontStruct *font = (XFontStruct *) font_info->font;
+  Lisp_Object table;
+  int min_byte1, max_byte1, min_byte2, max_byte2;
+  int c;
+  struct charset *charset = CHARSET_FROM_ID (font_info->charset);
+  int offset = CHARSET_OFFSET (charset);
+
+  table = Fmake_char_table (Qnil, Qnil);
+
+  if (!font->bdf && pfnGetFontUnicodeRanges)
+    {
+      GLYPHSET *glyphset;
+      DWORD glyphset_size;
+      HDC display = get_frame_dc (f);
+      HFONT prev_font;
+      int i;
+
+      prev_font = SelectObject (display, font->hfont);
+
+      /* First call GetFontUnicodeRanges to find out how big a structure
+        we need.  */
+      glyphset_size = pfnGetFontUnicodeRanges (display, NULL);
+      if (glyphset_size)
+       {
+         glyphset = (GLYPHSET *) alloca (glyphset_size);
+         glyphset->cbThis = glyphset_size;
+
+         /* Now call it again to get the ranges.  */
+         glyphset_size = pfnGetFontUnicodeRanges (display, glyphset);
+
+         if (glyphset_size)
+           {
+             /* Store the ranges in TABLE.  */
+             for (i = 0; i < glyphset->cRanges; i++)
+               {
+                 int from = glyphset->ranges[i].wcLow;
+                 int to = from + glyphset->ranges[i].cGlyphs - 1;
+                 char_table_set_range (table, from, to, Qt);
+               }
+           }
+       }
+
+      SelectObject (display, prev_font);
+      release_frame_dc (f, display);
+
+      /* If we got the information we wanted above, then return it.  */
+      if (glyphset_size)
+       return table;
+    }
+
+#if 0 /* TODO: Convert to work on Windows so BDF and older platforms work.  */
+  /* When GetFontUnicodeRanges is not available or does not work,
+     work it out manually.  */
+  min_byte1 = font->min_byte1;
+  max_byte1 = font->max_byte1;
+  min_byte2 = font->min_char_or_byte2;
+  max_byte2 = font->max_char_or_byte2;
+  if (min_byte1 == 0 && max_byte1 == 0)
+    {
+      if (! font->per_char || font->all_chars_exist == True)
+        {
+          if (offset >= 0)
+            char_table_set_range (table, offset + min_byte2,
+                                  offset + max_byte2, Qt);
+          else
+            for (; min_byte2 <= max_byte2; min_byte2++)
+              {
+                c = DECODE_CHAR (charset, min_byte2);
+                CHAR_TABLE_SET (table, c, Qt);
+              }
+        }
+      else
+       {
+         XCharStruct *pcm = font->per_char;
+         int from = -1;
+         int i;
+
+         for (i = min_byte2; i <= max_byte2; i++, pcm++)
+           {
+             if (pcm->width == 0 && pcm->rbearing == pcm->lbearing)
+               {
+                 if (from >= 0)
+                   {
+                      if (offset >= 0)
+                        char_table_set_range (table, offset + from,
+                                              offset + i - 1, Qt);
+                      else
+                        for (; from < i; from++)
+                          {
+                            c = DECODE_CHAR (charset, from);
+                            CHAR_TABLE_SET (table, c, Qt);
+                          }
+                     from = -1;
+                   }
+               }
+             else if (from < 0)
+               from = i;
+           }
+         if (from >= 0)
+            {
+              if (offset >= 0)
+                char_table_set_range (table, offset + from, offset + i - 1,
+                                      Qt);
+              else
+                for (; from < i; from++)
+                  {
+                    c = DECODE_CHAR (charset, from);
+                    CHAR_TABLE_SET (table, c, Qt);
+                  }
+            }
+       }
+    }
+  else
+    {
+      if (! font->per_char || font->all_chars_exist == True)
+       {
+         int i, j;
+
+          if (offset >= 0)
+            for (i = min_byte1; i <= max_byte1; i++)
+              char_table_set_range
+                (table, offset + ((i << 8) | min_byte2),
+                 offset + ((i << 8) | max_byte2), Qt);
+          else
+            for (i = min_byte1; i <= max_byte1; i++)
+              for (j = min_byte2; j <= max_byte2; j++)
+                {
+                  unsiged code = (i << 8) | j;
+                  c = DECODE_CHAR (charset, code);
+                  CHAR_TABLE_SET (table, c, Qt);
+                }
+       }
+      else
+       {
+         XCharStruct *pcm = font->per_char;
+         int i;
+
+         for (i = min_byte1; i <= max_byte1; i++)
+           {
+             int from = -1;
+             int j;
+
+             for (j = min_byte2; j <= max_byte2; j++, pcm++)
+               {
+                 if (pcm->width == 0 && pcm->rbearing == pcm->lbearing)
+                   {
+                     if (from >= 0)
+                       {
+                          if (offset >= 0)
+                            char_table_set_range
+                              (table, offset + ((i << 8) | from),
+                               offset + ((i << 8) | (j - 1)), Qt);
+                          else
+                            {
+                              for (; from < j; from++)
+                                {
+                                  unsigned code = (i << 8) | from;
+                                  c = ENCODE_CHAR (charset, code);
+                                  CHAR_TABLE_SET (table, c, Qt);
+                                }
+                            }
+                         from = -1;
+                       }
+                   }
+                 else if (from < 0)
+                   from = j;
+               }
+             if (from >= 0)
+                {
+                  if (offset >= 0)
+                    char_table_set_range
+                      (table, offset + ((i << 8) | from),
+                       offset + ((i << 8) | (j - 1)), Qt);
+                  else
+                    {
+                      for (; from < j; from++)
+                        {
+                          unsigned code = (i << 8) | from;
+                          c = DECODE_CHAR (charset, code);
+                          CHAR_TABLE_SET (table, c, Qt);
+                        }
+                    }
+                }
+           }
+       }
+    }
+#endif
+  return table;
+}
+
 \f
 /***********************************************************************
                            Glyph display
@@ -1367,15 +1586,20 @@ x_set_mouse_face_gc (s)
     face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
 
   if (s->first_glyph->type == CHAR_GLYPH)
-    face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch);
+    face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch, -1, Qnil);
   else
-    face_id = FACE_FOR_CHAR (s->f, face, 0);
+    face_id = FACE_FOR_CHAR (s->f, face, 0, -1, Qnil);
   s->face = FACE_FROM_ID (s->f, face_id);
   PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
 
   /* If font in this face is same as S->font, use it.  */
   if (s->font == s->face->font)
     s->gc = s->face->gc;
+#ifdef USE_FONT_BACKEND
+  else if (enable_font_backend)
+    /* No need of setting a font for s->gc.  */
+    s->gc = s->face->gc;
+#endif /* USE_FONT_BACKEND */
   else
     {
       /* Otherwise construct scratch_cursor_gc with values from FACE
@@ -1469,11 +1693,68 @@ static INLINE void
 x_set_glyph_string_clipping (s)
      struct glyph_string *s;
 {
-  RECT r;
-  get_glyph_string_clip_rect (s, &r);
-  w32_set_clip_rectangle (s->hdc, &r);
+#ifdef USE_FONT_BACKEND
+  RECT *r = s->clip;
+#else
+  RECT r[2];
+#endif
+  int n = get_glyph_string_clip_rects (s, r, 2);
+
+  if (n == 1)
+    w32_set_clip_rectangle (s->hdc, r);
+  else if (n > 1)
+    {
+      HRGN full_clip, clip1, clip2;
+      clip1 = CreateRectRgnIndirect (r);
+      clip2 = CreateRectRgnIndirect (r + 1);
+      if (CombineRgn (full_clip, clip1, clip2, RGN_OR) != ERROR)
+        {
+          SelectClipRgn (s->hdc, full_clip);
+        }
+      DeleteObject (clip1);
+      DeleteObject (clip2);
+      DeleteObject (full_clip);
+    }
+#ifdef USE_FONT_BACKEND
+    s->num_clips = n;
+#endif /* USE_FONT_BACKEND */
 }
 
+/* Set SRC's clipping for output of glyph string DST.  This is called
+   when we are drawing DST's left_overhang or right_overhang only in
+   the area of SRC.  */
+
+static void
+x_set_glyph_string_clipping_exactly (src, dst)
+     struct glyph_string *src, *dst;
+{
+  RECT r;
+
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      r.left = src->x;
+      r.right = r.left + src->width;
+      r.top = src->y;
+      r.bottom = r.top + src->height;
+      dst->clip[0] = r;
+      dst->num_clips = 1;
+    }
+  else
+    {
+#endif /* USE_FONT_BACKEND */
+  struct glyph_string *clip_head = src->clip_head;
+  struct glyph_string *clip_tail = src->clip_tail;
+
+  /* This foces clipping just this glyph string.  */
+  src->clip_head = src->clip_tail = src;
+  get_glyph_string_clip_rect (src, &r);
+  src->clip_head = clip_head, src->clip_tail = clip_tail;
+#ifdef USE_FONT_BACKEND
+    }
+#endif /* USE_FONT_BACKEND */
+  w32_set_clip_rectangle (dst->hdc, &r);
+}
 
 /* RIF:
    Compute left and right overhang of glyph string S.  If S is a glyph
@@ -1618,6 +1899,26 @@ x_draw_glyph_string_foreground (s)
           x += g->pixel_width;
         }
     }
+#ifdef USE_FONT_BACKEND
+  else if (enable_font_backend)
+    {
+      int boff = s->font_info->baseline_offset;
+      struct font *font = (struct font *) s->font_info;
+      int y;
+
+      if (s->font_info->vertical_centering)
+       boff = VCENTER_BASELINE_OFFSET (s->font, s->f) - boff;
+
+      y = s->ybase - boff;
+      if (s->for_overlaps
+         || (s->background_filled_p && s->hl != DRAW_CURSOR))
+       font->driver->draw (s, 0, s->nchars, x, y, 0);
+      else
+       font->driver->draw (s, 0, s->nchars, x, y, 1);
+      if (s->face->overstrike)
+       font->driver->draw (s, 0, s->nchars, x + 1, y, 0);
+    }
+#endif /* USE_FONT_BACKEND */
   else
     {
       char *char1b = (char *) s->char2b;
@@ -1654,12 +1955,12 @@ static void
 x_draw_composite_glyph_string_foreground (s)
      struct glyph_string *s;
 {
-  int i, x;
+  int i, j, x;
   HFONT old_font;
 
   /* If first glyph of S has a left box line, start drawing the text
      of S to the right of that box line.  */
-  if (s->face->box != FACE_NO_BOX
+  if (s->face && s->face->box != FACE_NO_BOX
       && s->first_glyph->left_box_line_p)
     x = s->x + eabs (s->face->box_line_width);
   else
@@ -1686,18 +1987,76 @@ x_draw_composite_glyph_string_foreground (s)
         w32_draw_rectangle (s->hdc, s->gc, x, s->y, s->width - 1,
                             s->height - 1);
     }
-  else
+#ifdef USE_FONT_BACKEND
+  else if (enable_font_backend)
     {
-      for (i = 0; i < s->nchars; i++, ++s->gidx)
+      struct font *font = (struct font *) s->font_info;
+      int y = s->ybase;
+      int width = 0;
+
+      if (s->cmp->method == COMPOSITION_WITH_GLYPH_STRING)
        {
-         w32_text_out (s, x + s->cmp->offsets[s->gidx * 2],
-                       s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
-                       s->char2b + i, 1);
-         if (s->face->overstrike)
-           w32_text_out (s, x + s->cmp->offsets[s->gidx * 2] + 1,
-                         s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
-                         s->char2b + i, 1);
+         Lisp_Object gstring = AREF (XHASH_TABLE (composition_hash_table)
+                                     ->key_and_value,
+                                     s->cmp->hash_index * 2);
+         int from;
+
+         for (i = from = 0; i < s->nchars; i++)
+           {
+             Lisp_Object g = LGSTRING_GLYPH (gstring, i);
+             Lisp_Object adjustment = LGLYPH_ADJUSTMENT (g);
+             int xoff, yoff, wadjust;
+
+             if (! VECTORP (adjustment))
+               {
+                 width += LGLYPH_WIDTH (g);
+                 continue;
+               }
+             if (from < i)
+               {
+                 font->driver->draw (s, from, i, x, y, 0);
+                 x += width;
+               }
+             xoff = XINT (AREF (adjustment, 0));
+             yoff = XINT (AREF (adjustment, 1));
+             wadjust = XINT (AREF (adjustment, 2));
+
+             font->driver->draw (s, i, i + 1, x + xoff, y + yoff, 0);
+             x += wadjust;
+             from = i + 1;
+             width = 0;
+           }
+         if (from < i)
+           font->driver->draw (s, from, i, x, y, 0);
        }
+      else
+       {
+         for (i = 0, j = s->gidx; i < s->nchars; i++, j++)
+           if (COMPOSITION_GLYPH (s->cmp, j) != '\t')
+             {
+               int xx = x + s->cmp->offsets[j * 2];
+               int yy = y - s->cmp->offsets[j * 2 + 1];
+
+               font->driver->draw (s, j, j + 1, xx, yy, 0);
+               if (s->face->overstrike)
+                 font->driver->draw (s, j, j + 1, xx + 1, yy, 0);
+             }
+       }
+    }
+#endif /* USE_FONT_BACKEND */
+  else
+    {
+      for (i = 0, j = s->gidx; i < s->nchars; i++, j++)
+       if (s->face)
+          {
+            w32_text_out (s, x + s->cmp->offsets[j * 2],
+                          s->ybase - s->cmp->offsets[j * 2 + 1],
+                          s->char2b + j, 1);
+            if (s->face->overstrike)
+           w32_text_out (s, x + s->cmp->offsets[j * 2] + 1,
+                         s->ybase - s->cmp->offsets[j + 1],
+                         s->char2b + j, 1);
+          }
     }
 
   if (s->font && s->font->hfont)
@@ -2499,10 +2858,19 @@ x_draw_glyph_string (s)
      This makes S->next use XDrawString instead of XDrawImageString.  */
   if (s->next && s->right_overhang && !s->for_overlaps)
     {
-      xassert (s->next->img == NULL);
-      x_set_glyph_string_gc (s->next);
-      x_set_glyph_string_clipping (s->next);
-      x_draw_glyph_string_background (s->next, 1);
+      int width;
+      struct glyph_string *next;
+      for (width = 0, next = s->next; next;
+           width += next->width, next = next->next)
+        if (next->first_glyph->type != IMAGE_GLYPH)
+          {
+            x_set_glyph_string_gc (next);
+            x_set_glyph_string_clipping (next);
+            x_draw_glyph_string_background (next, 1);
+#ifdef USE_FONT_BACKEND
+            next->num_clips = 0;
+#endif /* USE_FONT_BACKEND */
+          }
     }
 
   /* Set up S->gc, set clipping and draw S.  */
@@ -2522,6 +2890,12 @@ x_draw_glyph_string (s)
       x_set_glyph_string_clipping (s);
       relief_drawn_p = 1;
     }
+  else if ((s->prev && s->prev->hl != s->hl && s->left_overhang)
+          || (s->next && s->next->hl != s->hl && s->right_overhang))
+    /* We must clip just this glyph.  left_overhang part has already
+       drawn when s->prev was drawn, and right_overhang part will be
+       drawn later when s->next is drawn. */
+    x_set_glyph_string_clipping_exactly (s, s);
   else
     x_set_glyph_string_clipping (s);
 
@@ -2561,41 +2935,64 @@ x_draw_glyph_string (s)
       if (s->face->underline_p
           && (s->font->bdf || !s->font->tm.tmUnderlined))
         {
-          unsigned long h = 1;
-          unsigned long dy = 0;
+          unsigned long h;
+          int y;
+         /* Get the underline thickness.  Default is 1 pixel.  */
+#ifdef USE_FONT_BACKEND
+         if (enable_font_backend)
+           /* In the future, we must use information of font.  */
+           h = 1;
+         else
+#endif /* USE_FONT_BACKEND */
+            h = 1;
 
-          if (x_underline_at_descent_line)
-            dy = s->height - h;
-          else
+#ifdef USE_FONT_BACKEND
+         if (enable_font_backend)
+           {
+             if (s->face->font)
+               /* In the future, we must use information of font.  */
+               y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2;
+             else
+               y = s->y + s->height - h;
+           }
+         else
+#endif
             {
-              /* TODO: Use font information for positioning and thickness of
-                 underline.  See OUTLINETEXTMETRIC, and xterm.c.  Note: If
-                 you make this work, don't forget to change the doc string of
-                 x-use-underline-position-properties below.  */
-              dy = s->height - h;
+                y = s->y + s->height - h;
+                /* TODO: Use font information for positioning and
+                   thickness of underline.  See OUTLINETEXTMETRIC,
+                   and xterm.c.  Note: If you make this work,
+                   don't forget to change the doc string of
+                   x-use-underline_color-position-properties
+                   below.  */
+#if 0
+              if (!x_underline_at_descent_line)
+                {
+                  ...
+                }
+#endif
             }
           if (s->face->underline_defaulted_p)
             {
               w32_fill_area (s->f, s->hdc, s->gc->foreground, s->x,
-                             s->y + dy, s->background_width, 1);
+                             y, s->background_width, 1);
             }
           else
             {
               w32_fill_area (s->f, s->hdc, s->face->underline_color, s->x,
-                             s->y + dy, s->background_width, 1);
+                             y, s->background_width, 1);
             }
         }
-
       /* Draw overline.  */
       if (s->face->overline_p)
         {
           unsigned long dy = 0, h = 1;
 
           if (s->face->overline_color_defaulted_p)
-           {
-             w32_fill_area (s->f, s->hdc, s->gc->foreground, s->x,
-                         s->y + dy, s->background_width, h);
-           }
+            {
+              w32_fill_area (s->f, s->hdc, s->gc->foreground, s->x,
+                             s->y + dy, s->background_width, h);
+            }
           else
             {
               w32_fill_area (s->f, s->hdc, s->face->overline_color, s->x,
@@ -2622,13 +3019,70 @@ x_draw_glyph_string (s)
             }
         }
 
-      /* Draw relief.  */
+      /* Draw relief if not yet drawn.  */
       if (!relief_drawn_p && s->face->box != FACE_NO_BOX)
         x_draw_glyph_string_box (s);
+
+      if (s->prev)
+        {
+          struct glyph_string *prev;
+
+          for (prev = s->prev; prev; prev = prev->prev)
+            if (prev->hl != s->hl
+                && prev->x + prev->width + prev->right_overhang > s->x)
+              {
+                /* As prev was drawn while clipped to its own area, we
+                   must draw the right_overhang part using s->hl now.  */
+               enum draw_glyphs_face save = prev->hl;
+
+               prev->hl = s->hl;
+               x_set_glyph_string_gc (prev);
+               x_set_glyph_string_clipping_exactly (s, prev);
+               if (prev->first_glyph->type == CHAR_GLYPH)
+                 x_draw_glyph_string_foreground (prev);
+               else
+                 x_draw_composite_glyph_string_foreground (prev);
+                w32_set_clip_rectangle (prev->hdc, NULL);
+               prev->hl = save;
+#ifdef USE_FONT_BACKEND
+               prev->num_clips = 0;
+#endif /* USE_FONT_BACKEND */
+             }
+       }
+
+      if (s->next)
+       {
+         struct glyph_string *next;
+
+         for (next = s->next; next; next = next->next)
+           if (next->hl != s->hl
+               && next->x - next->left_overhang < s->x + s->width)
+             {
+               /* As next will be drawn while clipped to its own area,
+                  we must draw the left_overhang part using s->hl now.  */
+               enum draw_glyphs_face save = next->hl;
+
+               next->hl = s->hl;
+               x_set_glyph_string_gc (next);
+               x_set_glyph_string_clipping_exactly (s, next);
+               if (next->first_glyph->type == CHAR_GLYPH)
+                 x_draw_glyph_string_foreground (next);
+               else
+                 x_draw_composite_glyph_string_foreground (next);
+                w32_set_clip_rectangle (next->hdc, NULL);
+               next->hl = save;
+#ifdef USE_FONT_BACKEND
+               next->num_clips = 0;
+#endif /* USE_FONT_BACKEND */
+             }
+       }
     }
 
   /* Reset clipping.  */
   w32_set_clip_rectangle (s->hdc, NULL);
+#ifdef USE_FONT_BACKEND
+  s->num_clips = 0;
+#endif /* USE_FONT_BACKEND */
 }
 
 
@@ -2904,9 +3358,9 @@ x_focus_changed (type, state, dpyinfo, frame, bufp)
 
           /* Don't stop displaying the initial startup message
              for a switch-frame event we don't need.  */
-          if (GC_NILP (Vterminal_frame)
-              && GC_CONSP (Vframe_list)
-              && !GC_NILP (XCDR (Vframe_list)))
+          if (NILP (Vterminal_frame)
+              && CONSP (Vframe_list)
+              && !NILP (XCDR (Vframe_list)))
             {
               bufp->kind = FOCUS_IN_EVENT;
               XSETFRAME (bufp->frame_or_window, frame);
@@ -2992,7 +3446,7 @@ x_frame_rehighlight (dpyinfo)
   if (dpyinfo->w32_focus_frame)
     {
       dpyinfo->x_highlight_frame
-       = ((GC_FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->w32_focus_frame)))
+       = ((FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->w32_focus_frame)))
           ? XFRAME (FRAME_FOCUS_FRAME (dpyinfo->w32_focus_frame))
           : dpyinfo->w32_focus_frame);
       if (! FRAME_LIVE_P (dpyinfo->x_highlight_frame))
@@ -3251,6 +3705,9 @@ note_mouse_movement (frame, msg)
   memcpy (&last_mouse_motion_event, msg, sizeof (last_mouse_motion_event));
   XSETFRAME (last_mouse_motion_frame, frame);
 
+  if (!FRAME_X_OUTPUT (frame))
+    return 0;
+
   if (msg->hwnd != FRAME_W32_WINDOW (frame))
     {
       frame->mouse_moved = 1;
@@ -3458,15 +3915,13 @@ x_window_to_scroll_bar (window_id)
 {
   Lisp_Object tail;
 
-  for (tail = Vframe_list;
-       XGCTYPE (tail) == Lisp_Cons;
-       tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       Lisp_Object frame, bar, condemned;
 
       frame = XCAR (tail);
       /* All elements of Vframe_list should be frames.  */
-      if (! GC_FRAMEP (frame))
+      if (! FRAMEP (frame))
        abort ();
 
       /* Scan this frame's scroll bar list for a scroll bar with the
@@ -3475,9 +3930,9 @@ x_window_to_scroll_bar (window_id)
       for (bar = FRAME_SCROLL_BARS (XFRAME (frame));
           /* This trick allows us to search both the ordinary and
              condemned scroll bar lists with one loop.  */
-          ! GC_NILP (bar) || (bar = condemned,
+          ! NILP (bar) || (bar = condemned,
                               condemned = Qnil,
-                              ! GC_NILP (bar));
+                              ! NILP (bar));
           bar = XSCROLL_BAR (bar)->next)
        if (SCROLL_BAR_W32_WINDOW (XSCROLL_BAR (bar)) == window_id)
          return XSCROLL_BAR (bar);
@@ -3967,7 +4422,7 @@ w32_scroll_bar_handle_click (bar, msg, emacs_event)
      W32Msg *msg;
      struct input_event *emacs_event;
 {
-  if (! GC_WINDOWP (bar->window))
+  if (! WINDOWP (bar->window))
     abort ();
 
   emacs_event->kind = SCROLL_BAR_CLICK_EVENT;
@@ -4315,6 +4770,7 @@ w32_read_socket (sd, expected, hold_quit)
            }
          break;
 
+        case WM_UNICHAR:
        case WM_SYSCHAR:
        case WM_CHAR:
          f = x_window_to_frame (dpyinfo, msg.msg.hwnd);
@@ -4331,95 +4787,15 @@ w32_read_socket (sd, expected, hold_quit)
              if (temp_index == sizeof temp_buffer / sizeof (short))
                temp_index = 0;
              temp_buffer[temp_index++] = msg.msg.wParam;
-
-              if (msg.msg.wParam < 128 && !dbcs_lead)
-                {
-                  inev.kind = ASCII_KEYSTROKE_EVENT;
-                  inev.code = msg.msg.wParam;
-                }
-              else if (msg.msg.wParam < 256)
+              if (msg.msg.message == WM_UNICHAR)
                 {
-                  wchar_t code;
-
                   inev.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
-
-                  if (IsDBCSLeadByteEx(CP_ACP, (BYTE) msg.msg.wParam))
-                    {
-                      dbcs_lead = (char) msg.msg.wParam;
-                      inev.kind = NO_EVENT;
-                      break;
-                    }
-                  else if (dbcs_lead)
-                    {
-                      char dbcs[2];
-                      dbcs[0] = dbcs_lead;
-                      dbcs[1] = (char) msg.msg.wParam;
-                      dbcs_lead = 0;
-                      if (!MultiByteToWideChar(CP_ACP, 0, dbcs, 2, &code, 1))
-                        {
-                          /* Garbage */
-                          DebPrint (("Invalid DBCS sequence: %d %d\n",
-                                     dbcs[0], dbcs[1]));
-                          inev.kind = NO_EVENT;
-                          break;
-                        }
-                    }
-                  else
-                    {
-                      char single_byte = (char) msg.msg.wParam;
-                      if (!MultiByteToWideChar(CP_ACP, 0, &single_byte, 1,
-                                               &code, 1))
-                        {
-                          /* What to do with garbage? */
-                          DebPrint (("Invalid character: %d\n", single_byte));
-                          inev.kind = NO_EVENT;
-                          break;
-                        }
-                    }
-
-                  /* Now process unicode input as per xterm.c */
-                  if (code < 0x80)
-                    {
-                      inev.kind = ASCII_KEYSTROKE_EVENT;
-                      inev.code = code;
-                    }
-                  else if (code < 0xA0)
-                    inev.code = MAKE_CHAR (CHARSET_8_BIT_CONTROL, code, 0);
-                  else if (code < 0x100)
-                    inev.code = MAKE_CHAR (charset_latin_iso8859_1, code, 0);
-                  else
-                    {
-                      int c1, c2;
-                      int charset_id;
-
-                      if (code < 0x2500)
-                        {
-                          charset_id = charset_mule_unicode_0100_24ff;
-                          code -= 0x100;
-                        }
-                      else if (code < 0xE000)
-                        {
-                          charset_id = charset_mule_unicode_2500_33ff;
-                          code -= 0x2500;
-                        }
-                      else
-                        {
-                          charset_id = charset_mule_unicode_e000_ffff;
-                          code -= 0xE000;
-                        }
-
-                      c1 = (code / 96) + 32;
-                      c2 = (code % 96) + 32;
-                      inev.code = MAKE_CHAR (charset_id, c1, c2);
-                    }
+                  inev.code = msg.msg.wParam;
                 }
               else
                 {
-                  /* Windows shouldn't generate WM_CHAR events above 0xFF
-                     in non-Unicode message handlers.  */
-                  DebPrint (("Non-byte WM_CHAR: %d\n", msg.msg.wParam));
-                  inev.kind = NO_EVENT;
-                  break;
+                  inev.kind = ASCII_KEYSTROKE_EVENT;
+                  inev.code = msg.msg.wParam;
                 }
              inev.modifiers = msg.dwModifiers;
              XSETFRAME (inev.frame_or_window, f);
@@ -5416,11 +5792,16 @@ x_new_font (f, fontname)
      register char *fontname;
 {
   struct font_info *fontp
-    = FS_LOAD_FONT (f, 0, fontname, -1);
+    = FS_LOAD_FONT (f, fontname);
 
   if (!fontp)
     return Qnil;
 
+  if (FRAME_FONT (f) == (XFontStruct *) (fontp->font))
+    /* This font is already set in frame F.  There's nothing more to
+       do.  */
+    return build_string (fontp->full_name);
+
   FRAME_FONT (f) = (XFontStruct *) (fontp->font);
   FRAME_BASELINE_OFFSET (f) = fontp->baseline_offset;
   FRAME_FONTSET (f) = -1;
@@ -5454,39 +5835,113 @@ x_new_font (f, fontname)
   return build_string (fontp->full_name);
 }
 \f
-/* Give frame F the fontset named FONTSETNAME as its default font, and
-   return the full name of that fontset.  FONTSETNAME may be a wildcard
-   pattern; in that case, we choose some fontset that fits the pattern.
-   The return value shows which fontset we chose.  */
+/* Give frame F the fontset named FONTSETNAME as its default fontset,
+   and return the full name of that fontset.  FONTSETNAME may be a
+   wildcard pattern; in that case, we choose some fontset that fits
+   the pattern.  FONTSETNAME may be a font name for ASCII characters;
+   in that case, we create a fontset from that font name.
+
+   The return value shows which fontset we chose.
+   If FONTSETNAME specifies the default fontset, return Qt.
+   If an ASCII font in the specified fontset can't be loaded, return
+   Qnil.  */
 
 Lisp_Object
 x_new_fontset (f, fontsetname)
      struct frame *f;
-     char *fontsetname;
+     Lisp_Object fontsetname;
 {
-  int fontset = fs_query_fontset (build_string (fontsetname), 0);
+  int fontset = fs_query_fontset (fontsetname, 0);
   Lisp_Object result;
 
-  if (fontset < 0)
-    return Qnil;
-
-  if (FRAME_FONTSET (f) == fontset)
+  if (fontset > 0 && FRAME_FONTSET(f) == fontset)
     /* This fontset is already set in frame F.  There's nothing more
        to do.  */
     return fontset_name (fontset);
+  else if (fontset == 0)
+    /* The default fontset can't be the default font.   */
+    return Qt;
 
-  result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
+  if (fontset > 0)
+    result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
+  else
+    result = x_new_font (f, SDATA (fontsetname));
 
   if (!STRINGP (result))
     /* Can't load ASCII font.  */
     return Qnil;
 
+  if (fontset < 0)
+    fontset = new_fontset_from_font_name (result);
+
   /* Since x_new_font doesn't update any fontset information, do it now.  */
   FRAME_FONTSET(f) = fontset;
 
-  return build_string (fontsetname);
+  return fontset_name (fontset);
 }
 
+#ifdef USE_FONT_BACKEND
+Lisp_Object
+x_new_fontset2 (f, fontset, font_object)
+     struct frame *f;
+     int fontset;
+     Lisp_Object font_object;
+{
+  struct font *font = XSAVE_VALUE (font_object)->pointer;
+
+  if (FRAME_FONT_OBJECT (f) == font)
+    /* This font is already set in frame F.  There's nothing more to
+       do.  */
+    return fontset_name (fontset);
+
+  BLOCK_INPUT;
+
+  FRAME_FONT_OBJECT (f) = font;
+  FRAME_FONT (f) = font->font.font;
+  FRAME_BASELINE_OFFSET (f) = font->font.baseline_offset;
+  FRAME_FONTSET (f) = fontset;
+
+  FRAME_COLUMN_WIDTH (f) = font->font.average_width;
+  FRAME_SPACE_WIDTH (f) = font->font.space_width;
+  FRAME_LINE_HEIGHT (f) = font->font.height;
+
+  compute_fringe_widths (f, 1);
+
+  /* Compute the scroll bar width in character columns.  */
+  if (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) > 0)
+    {
+      int wid = FRAME_COLUMN_WIDTH (f);
+      FRAME_CONFIG_SCROLL_BAR_COLS (f)
+       = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + wid - 1) / wid;
+    }
+  else
+    {
+      int wid = FRAME_COLUMN_WIDTH (f);
+      FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid;
+    }
+
+  /* Now make the frame display the given font.  */
+  if (FRAME_X_WINDOW (f) != 0)
+    {
+      /* Don't change the size of a tip frame; there's no point in
+        doing it because it's done in Fx_show_tip, and it leads to
+        problems because the tip frame has no widget.  */
+      if (NILP (tip_frame) || XFRAME (tip_frame) != f)
+       x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
+    }
+
+#ifdef HAVE_X_I18N
+  if (FRAME_XIC (f)
+      && (FRAME_XIC_STYLE (f) & (XIMPreeditPosition | XIMStatusArea)))
+    xic_set_xfontset (f, SDATA (fontset_ascii (fontset)));
+#endif
+
+  UNBLOCK_INPUT;
+
+  return fontset_name (fontset);
+}
+#endif /* USE_FONT_BACKEND */
+
 \f
 /***********************************************************************
        TODO: W32 Input Methods
@@ -6042,6 +6497,15 @@ x_free_frame_resources (f)
 
   BLOCK_INPUT;
 
+#ifdef USE_FONT_BACKEND
+      /* We must free faces before destroying windows because some
+        font-driver (e.g. xft) access a window while finishing a
+        face.  */
+      if (enable_font_backend
+         && FRAME_FACE_CACHE (f))
+       free_frame_faces (f);
+#endif /* USE_FONT_BACKEND */
+
   if (FRAME_W32_WINDOW (f))
     my_destroy_window (f, FRAME_W32_WINDOW (f));
 
@@ -6194,7 +6658,7 @@ x_font_min_bounds (font, w, h)
    * average and maximum width, and maximum height.
    */
   *h = FONT_HEIGHT (font);
-  *w = FONT_WIDTH (font);
+  *w = FONT_AVG_WIDTH (font);
 }
 
 
@@ -6677,13 +7141,22 @@ w32_initialize ()
   AttachThreadInput (dwMainThreadId, dwWindowsThreadId, TRUE);
 #endif
 
-  /* Load system settings.  */
+  /* Dynamically link to optional system components.  */
   {
     UINT smoothing_type;
     BOOL smoothing_enabled;
 
-    /* If using proportional scroll bars, ensure handle is at least 5 pixels;
-       otherwise use the fixed height.  */
+    HANDLE gdi_lib = LoadLibrary ("gdi32.dll");
+
+#define LOAD_PROC(lib, fn) pfn##fn = (void *) GetProcAddress (lib, #fn)
+
+    LOAD_PROC (gdi_lib, GetFontUnicodeRanges);
+    
+#undef LOAD_PROC
+
+    FreeLibrary (gdi_lib);
+
+    /* Ensure scrollbar handle is at least 5 pixels.  */
     vertical_scroll_bar_min_handle = 5;
 
     /* For either kind of scroll bar, take account of the arrows; these
@@ -6724,8 +7197,7 @@ syms_of_w32term ()
   staticpro (&last_mouse_scroll_bar);
   last_mouse_scroll_bar = Qnil;
 
-  staticpro (&Qvendor_specific_keysyms);
-  Qvendor_specific_keysyms = intern ("vendor-specific-keysyms");
+  DEFSYM (Qvendor_specific_keysyms, "vendor-specific-keysyms");
 
   DEFVAR_INT ("w32-num-mouse-buttons",
              &w32_num_mouse_buttons,
index d331772dce9c5ead1056fbec7fd44c8e0aacaf92..75ff9f71e4a1b91f12c993a040c477de81830bac 100644 (file)
@@ -28,15 +28,15 @@ Boston, MA 02110-1301, USA.  */
 #define WHITE_PIX_DEFAULT(f) PALETTERGB(255,255,255)
 
 #define FONT_WIDTH(f)       \
-  ((f)->bdf ? (f)->bdf->width : (f)->tm.tmAveCharWidth)
+  ((f)->bdf ? (f)->bdf->width : (f)->tm.tmMaxCharWidth)
 #define FONT_HEIGHT(f)      \
    ((f)->bdf ? (f)->bdf->height : (f)->tm.tmHeight)
 #define FONT_BASE(f)        \
   ((f)->bdf ? (f)->bdf->ury : (f)->tm.tmAscent)
 #define FONT_DESCENT(f)     \
   ((f)->bdf ? -((f)->bdf->lly) : (f)->tm.tmDescent)
-#define FONT_MAX_WIDTH(f)   \
-  ((f)->bdf ? (f)->bdf->width : (f)->tm.tmMaxCharWidth)
+#define FONT_AVG_WIDTH(f)   \
+  ((f)->bdf ? (f)->bdf->width : (f)->tm.tmAveCharWidth)
 
 #define CP_DEFAULT 1004
 /* Special pseudo-codepages. */
@@ -263,6 +263,8 @@ extern Lisp_Object w32_list_fonts P_ ((struct frame *, Lisp_Object, int, int));
 extern struct font_info *w32_get_font_info (), *w32_query_font ();
 extern void w32_cache_char_metrics (XFontStruct *font);
 extern void w32_find_ccl_program();
+extern Lisp_Object x_get_font_repertory P_ ((struct frame *,
+                                            struct font_info *));
 \f
 #define PIX_TYPE COLORREF
 
@@ -327,6 +329,10 @@ struct w32_output
   /* Default ASCII font of this frame. */
   XFontStruct *font;
 
+#ifdef USE_FONT_BACKEND
+  struct font *fontp;
+#endif /* USE_FONT_BACKEND */
+
   /* The baseline offset of the default ASCII font.  */
   int baseline_offset;
 
@@ -414,6 +420,10 @@ extern struct w32_output w32term_display;
 #define FRAME_FONTSET(f) ((f)->output_data.w32->fontset)
 #define FRAME_BASELINE_OFFSET(f) ((f)->output_data.w32->baseline_offset)
 
+#ifdef USE_FONT_BACKEND
+#define FRAME_FONT_OBJECT(f) ((f)->output_data.w32->fontp)
+#endif /* USE_FONT_BACKEND */
+
 /* This gives the w32_display_info structure for the display F is on.  */
 #define FRAME_W32_DISPLAY_INFO(f) (&one_w32_display_info)
 #define FRAME_X_DISPLAY_INFO(f) (&one_w32_display_info)
@@ -619,6 +629,12 @@ extern void w32_unload_font ();
 #define WM_APPCOMMAND 0x319
 #define GET_APPCOMMAND_LPARAM(lParam)  (HIWORD(lParam) & 0x7fff)
 #endif
+#ifndef WM_UNICHAR 
+#define WM_UNICHAR 0x109
+#endif
+#ifndef UNICODE_NOCHAR
+#define UNICODE_NOCHAR 0xFFFF
+#endif
 
 #define WM_EMACS_START                 (WM_USER + 1)
 #define WM_EMACS_KILL                  (WM_EMACS_START + 0)
index 9d50676f9214f83636d0edf3a8cb59877c90bb45..8c87fde3ef9e044e7f2c540aab0402b0aa87730b 100644 (file)
@@ -192,6 +192,47 @@ get_next_msg (lpmsg, bWait)
       }
 
       nQueue--;
+      /* Consolidate WM_PAINT messages to optimise redrawing.  */
+      if (lpmsg->msg.message == WM_PAINT && nQueue)
+        {
+          int_msg * lpCur = lpHead;
+          int_msg * lpPrev = NULL;
+          int_msg * lpNext = NULL;
+
+          while (lpCur && nQueue)
+            {
+              lpNext = lpCur->lpNext;
+              if (lpCur->w32msg.msg.message == WM_PAINT)
+                {
+                  /* Remove this message from the queue.  */
+                  if (lpPrev)
+                    lpPrev->lpNext = lpNext;
+                  else
+                    lpHead = lpNext;
+
+                  if (lpCur == lpTail)
+                    lpTail = lpPrev;
+
+                  /* Adjust clip rectangle to cover both.  */
+                  if (!UnionRect (&(lpmsg->rect), &(lpmsg->rect),
+                                  &(lpCur->w32msg.rect)))
+                    {
+                      SetRectEmpty(&(lpmsg->rect));
+                    }
+
+                  myfree (lpCur);
+
+                  nQueue--;
+
+                  lpCur = lpNext;
+                }
+              else
+                {
+                  lpPrev = lpCur;
+                  lpCur = lpNext;
+                }
+            }
+        }
 
       bRet = TRUE;
     }
index d0f351261e1a2d08d348378c08ebea04fa3db946..129a553f65da1d1f9b40dde929177640dd10b208 100644 (file)
@@ -3792,7 +3792,7 @@ displayed.  */)
        window = call1 (Vsplit_window_preferred_function, window);
       else
        {
-         Lisp_Object upper, lower, other;
+         Lisp_Object upper, other;
 
          window = Fget_lru_window (frames, Qt);
          /* If the LRU window is tall enough, and either eligible for
@@ -3831,11 +3831,11 @@ displayed.  */)
            window = Fframe_selected_window (call0 (Vpop_up_frame_function));
          /* If window appears above or below another,
             even out their heights.  */
-         other = upper = lower = Qnil;
+         other = upper = Qnil;
          if (!NILP (XWINDOW (window)->prev))
-           other = upper = XWINDOW (window)->prev, lower = window;
+           other = upper = XWINDOW (window)->prev;
          if (!NILP (XWINDOW (window)->next))
-           other = lower = XWINDOW (window)->next, upper = window;
+           other = XWINDOW (window)->next, upper = window;
          if (!NILP (other)
              && !NILP (Veven_window_heights)
              /* Check that OTHER and WINDOW are vertically arrayed.  */
index c352c9355aea8758bee4d78f38f79187290e19cf..8e24fbacb4e57ce2b0d86280e2de15d12f030536 100644 (file)
@@ -177,6 +177,7 @@ Boston, MA 02110-1301, USA.  */
 #include "termchar.h"
 #include "dispextern.h"
 #include "buffer.h"
+#include "character.h"
 #include "charset.h"
 #include "indent.h"
 #include "commands.h"
@@ -201,6 +202,12 @@ Boston, MA 02110-1301, USA.  */
 #include "macterm.h"
 #endif
 
+#ifdef HAVE_WINDOW_SYSTEM
+#ifdef USE_FONT_BACKEND
+#include "font.h"
+#endif /* USE_FONT_BACKEND */
+#endif /* HAVE_WINDOW_SYSTEM */
+
 #ifndef FRAME_X_OUTPUT
 #define FRAME_X_OUTPUT(f) ((f)->output_data.x)
 #endif
@@ -744,6 +751,7 @@ static enum prop_handled handle_display_prop P_ ((struct it *));
 static enum prop_handled handle_composition_prop P_ ((struct it *));
 static enum prop_handled handle_overlay_change P_ ((struct it *));
 static enum prop_handled handle_fontified_prop P_ ((struct it *));
+static enum prop_handled handle_auto_composed_prop P_ ((struct it *));
 
 /* Properties handled by iterators.  */
 
@@ -755,6 +763,7 @@ static struct props it_props[] =
   {&Qface,             FACE_PROP_IDX,          handle_face_prop},
   {&Qdisplay,          DISPLAY_PROP_IDX,       handle_display_prop},
   {&Qinvisible,                INVISIBLE_PROP_IDX,     handle_invisible_prop},
+  {&Qauto_composed,    AUTO_COMPOSED_PROP_IDX, handle_auto_composed_prop},
   {&Qcomposition,      COMPOSITION_PROP_IDX,   handle_composition_prop},
   {NULL,               0,                      NULL}
 };
@@ -1923,6 +1932,14 @@ get_glyph_string_clip_rects (s, rects, n)
        }
     }
 
+  if (s->row->clip)
+    {
+      XRectangle r_save = r;
+
+      if (! x_intersect_rectangles (&r_save, s->row->clip, &r))
+       r.width = 0;
+    }
+
   if ((s->for_overlaps & OVERLAPS_BOTH) == 0
       || ((s->for_overlaps & OVERLAPS_BOTH) == OVERLAPS_BOTH && n == 1))
     {
@@ -3533,7 +3550,7 @@ face_before_or_after_it_pos (it, before_p)
          struct face *face = FACE_FROM_ID (it->f, face_id);
 
          c = string_char_and_length (p, rest, &len);
-         face_id = FACE_FOR_CHAR (it->f, face, c);
+         face_id = FACE_FOR_CHAR (it->f, face, c, CHARPOS (pos), it->string);
        }
     }
   else
@@ -3572,7 +3589,7 @@ face_before_or_after_it_pos (it, before_p)
        {
          int c = FETCH_MULTIBYTE_CHAR (BYTEPOS (pos));
          struct face *face = FACE_FROM_ID (it->f, face_id);
-         face_id = FACE_FOR_CHAR (it->f, face, c);
+         face_id = FACE_FOR_CHAR (it->f, face, c, CHARPOS (pos), Qnil);
        }
     }
 
@@ -4171,7 +4188,7 @@ handle_single_display_spec (it, spec, object, overlay, position,
        {
          Lisp_Object face_name = XCAR (XCDR (XCDR (spec)));
          int face_id2 = lookup_derived_face (it->f, face_name,
-                                             'A', FRINGE_FACE_ID, 0);
+                                             FRINGE_FACE_ID, 0);
          if (face_id2 >= 0)
            face_id = face_id2;
        }
@@ -4528,6 +4545,100 @@ string_buffer_position (w, string, around_charpos)
                        `composition' property
  ***********************************************************************/
 
+static enum prop_handled
+handle_auto_composed_prop (it)
+     struct it *it;
+{
+  enum prop_handled handled = HANDLED_NORMALLY;
+
+  if (FUNCTIONP (Vauto_composition_function))
+    {
+      Lisp_Object val = Qnil;
+      EMACS_INT pos, limit = -1;
+
+      if (STRINGP (it->string))
+       pos = IT_STRING_CHARPOS (*it);
+      else
+       pos = IT_CHARPOS (*it);
+
+      val = Fget_text_property (make_number (pos), Qauto_composed, it->string);
+      if (! NILP (val))
+       {
+         Lisp_Object cmp_prop;
+         EMACS_INT cmp_start, cmp_end;
+
+#ifdef USE_FONT_BACKEND
+         if (enable_font_backend
+             && get_property_and_range (pos, Qcomposition, &cmp_prop,
+                                        &cmp_start, &cmp_end, it->string)
+             && cmp_start == pos
+             && COMPOSITION_METHOD (cmp_prop) == COMPOSITION_WITH_GLYPH_STRING)
+           {
+             Lisp_Object gstring = COMPOSITION_COMPONENTS (cmp_prop);
+             Lisp_Object font_object = LGSTRING_FONT (gstring);
+
+             if (! EQ (font_object,
+                       font_at (-1, pos, FACE_FROM_ID (it->f, it->face_id),
+                                it->w, it->string)))
+               /* We must re-compute the composition for the
+                  different font.  */
+               val = Qnil;
+           }
+#endif
+         if (! NILP (val))
+           {
+             Lisp_Object end;
+
+             /* As Fnext_single_char_property_change is very slow, we
+                limit the search to the current line.  */
+             if (STRINGP (it->string))
+               limit = SCHARS (it->string);
+             else
+               limit = find_next_newline_no_quit (pos, 1);
+             end = Fnext_single_char_property_change (make_number (pos),
+                                                      Qauto_composed,
+                                                      it->string,
+                                                      make_number (limit));
+
+             if (XINT (end) < limit)
+               /* The current point is auto-composed, but there exist
+                  characters not yet composed beyond the
+                  auto-composed region.  There's a possiblity that
+                  the last characters in the region may be newly
+                  composed.  */
+               val = Qnil;
+           }
+       }
+      if (NILP (val))
+       {
+         if (limit < 0)
+           limit = (STRINGP (it->string) ? SCHARS (it->string)
+                    : find_next_newline_no_quit (pos, 1));
+         if (pos < limit)
+           {
+             int count = SPECPDL_INDEX ();
+             Lisp_Object args[5];
+
+             args[0] = Vauto_composition_function;
+             specbind (Qauto_composition_function, Qnil);
+             args[1] = make_number (pos);
+             args[2] = make_number (limit);
+#ifdef USE_FONT_BACKEND
+             if (enable_font_backend)
+               args[3] = it->window;
+             else
+#endif /* USE_FONT_BACKEND */
+               args[3] = Qnil;
+             args[4] = it->string;
+             safe_call (5, args);
+             unbind_to (count, Qnil);
+           }
+       }
+    }
+
+  return handled;
+}
+
 /* Set up iterator IT from `composition' property at its current
    position.  Called from handle_stop.  */
 
@@ -4536,7 +4647,7 @@ handle_composition_prop (it)
      struct it *it;
 {
   Lisp_Object prop, string;
-  int pos, pos_byte, end;
+  EMACS_INT pos, pos_byte, start, end;
   enum prop_handled handled = HANDLED_NORMALLY;
 
   if (STRINGP (it->string))
@@ -4555,11 +4666,20 @@ handle_composition_prop (it)
   /* If there's a valid composition and point is not inside of the
      composition (in the case that the composition is from the current
      buffer), draw a glyph composed from the composition components.  */
-  if (find_composition (pos, -1, &pos, &end, &prop, string)
-      && COMPOSITION_VALID_P (pos, end, prop)
-      && (STRINGP (it->string) || (PT <= pos || PT >= end)))
+  if (find_composition (pos, -1, &start, &end, &prop, string)
+      && COMPOSITION_VALID_P (start, end, prop)
+      && (STRINGP (it->string) || (PT <= start || PT >= end)))
     {
-      int id = get_composition_id (pos, pos_byte, end - pos, prop, string);
+      int id;
+
+      if (start != pos)
+       {
+         if (STRINGP (it->string))
+           pos_byte = string_char_to_byte (it->string, start);
+         else
+           pos_byte = CHAR_TO_BYTE (start);
+       }
+      id = get_composition_id (start, pos_byte, end - start, prop, string);
 
       if (id >= 0)
        {
@@ -4588,9 +4708,29 @@ handle_composition_prop (it)
          it->method = GET_FROM_COMPOSITION;
          it->cmp_id = id;
          it->cmp_len = COMPOSITION_LENGTH (prop);
-         /* For a terminal, draw only the first character of the
-             components.  */
-         it->c = COMPOSITION_GLYPH (composition_table[id], 0);
+         /* For a terminal, draw only the first (non-TAB) character
+            of the components.  */
+#ifdef USE_FONT_BACKEND
+         if (composition_table[id]->method == COMPOSITION_WITH_GLYPH_STRING)
+           {
+             Lisp_Object lgstring = AREF (XHASH_TABLE (composition_hash_table)
+                                          ->key_and_value,
+                                          cmp->hash_index * 2);
+
+             it->c = LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 0));
+           }
+         else
+#endif /* USE_FONT_BACKEND */
+           {
+             int i;
+
+             for (i = 0; i < cmp->glyph_len; i++)
+               if ((it->c = COMPOSITION_GLYPH (composition_table[id], i))
+                   != '\t')
+                 break;
+           }
+         if (it->c == '\t')
+           it->c = ' ';
          it->len = (STRINGP (it->string)
                     ? string_char_to_byte (it->string, end)
                     : CHAR_TO_BYTE (end)) - pos_byte;
@@ -5251,7 +5391,7 @@ back_to_previous_visible_line_start (it)
       {
        struct it it2;
        int pos;
-       int beg, end;
+       EMACS_INT beg, end;
        Lisp_Object val, overlay;
 
        /* If newline is part of a composition, continue from start of composition */
@@ -5613,31 +5753,26 @@ get_next_display_element (it)
             the translation.  This could easily be changed but I
             don't believe that it is worth doing.
 
-            If it->multibyte_p is nonzero, eight-bit characters and
-            non-printable multibyte characters are also translated to
-            octal form.
+            If it->multibyte_p is nonzero, non-printable non-ASCII
+            characters are also translated to octal form.
 
             If it->multibyte_p is zero, eight-bit characters that
             don't have corresponding multibyte char code are also
             translated to octal form.  */
          else if ((it->c < ' '
-                   && (it->area != TEXT_AREA
-                       /* In mode line, treat \n like other crl chars.  */
-                       || (it->c != '\t'
-                           && it->glyph_row && it->glyph_row->mode_line_p)
-                       || (it->c != '\n' && it->c != '\t')))
-                  || (it->multibyte_p
-                      ? ((it->c >= 127
-                          && it->len == 1)
-                         || !CHAR_PRINTABLE_P (it->c)
+                   ? (it->area != TEXT_AREA
+                      /* In mode line, treat \n, \t like other crl chars.  */
+                      || (it->c != '\t'
+                          && it->glyph_row && it->glyph_row->mode_line_p)
+                      || (it->c != '\n' && it->c != '\t'))
+                   : (it->multibyte_p
+                      ? (!CHAR_PRINTABLE_P (it->c)
                          || (!NILP (Vnobreak_char_display)
-                             && (it->c == 0x8a0 || it->c == 0x8ad
-                                 || it->c == 0x920 || it->c == 0x92d
-                                 || it->c == 0xe20 || it->c == 0xe2d
-                                 || it->c == 0xf20 || it->c == 0xf2d)))
+                             && (it->c == 0xA0 /* NO-BREAK SPACE */
+                                 || it->c == 0xAD /* SOFT HYPHEN */)))
                       : (it->c >= 127
-                         && (!unibyte_display_via_language_environment
-                             || it->c == unibyte_char_to_multibyte (it->c)))))
+                         && (! unibyte_display_via_language_environment
+                             || (UNIBYTE_CHAR_HAS_MULTIBYTE_P (it->c)))))))
            {
              /* IT->c is a control character which must be displayed
                 either as '\003' or as `^C' where the '\\' and '^'
@@ -5694,8 +5829,7 @@ get_next_display_element (it)
                 highlighting.  */
 
              if (EQ (Vnobreak_char_display, Qt)
-                 && (it->c == 0x8a0 || it->c == 0x920
-                     || it->c == 0xe20 || it->c == 0xf20))
+                 && it->c == 0xA0)
                {
                  /* Merge the no-break-space face into the current face.  */
                  face_id = merge_faces (it->f, Qnobreak_space, 0,
@@ -5746,8 +5880,7 @@ get_next_display_element (it)
                 highlighting.  */
 
              if (EQ (Vnobreak_char_display, Qt)
-                 && (it->c == 0x8ad || it->c == 0x92d
-                     || it->c == 0xe2d || it->c == 0xf2d))
+                 && it->c == 0xAD)
                {
                  g = it->c = '-';
                  XSETINT (it->ctl_chars[0], g);
@@ -5758,13 +5891,10 @@ get_next_display_element (it)
              /* Handle non-break space and soft hyphen
                 with the escape glyph.  */
 
-             if (it->c == 0x8a0 || it->c == 0x8ad
-                 || it->c == 0x920 || it->c == 0x92d
-                 || it->c == 0xe20 || it->c == 0xe2d
-                 || it->c == 0xf20 || it->c == 0xf2d)
+             if (it->c == 0xA0 || it->c == 0xAD)
                {
                  XSETINT (it->ctl_chars[0], escape_glyph);
-                 g = it->c = ((it->c & 0xf) == 0 ? ' ' : '-');
+                 g = it->c = (it->c == 0xA0 ? ' ' : '-');
                  XSETINT (it->ctl_chars[1], g);
                  ctl_len = 2;
                  goto display_control;
@@ -5776,23 +5906,27 @@ get_next_display_element (it)
                int i;
 
                /* Set IT->ctl_chars[0] to the glyph for `\\'.  */
-               if (SINGLE_BYTE_CHAR_P (it->c))
-                 str[0] = it->c, len = 1;
+               if (CHAR_BYTE8_P (it->c))
+                 {
+                   str[0] = CHAR_TO_BYTE8 (it->c);
+                   len = 1;
+                 }
+               else if (it->c < 256)
+                 {
+                   str[0] = it->c;
+                   len = 1;
+                 }
                else
                  {
-                   len = CHAR_STRING_NO_SIGNAL (it->c, str);
-                   if (len < 0)
-                     {
-                       /* It's an invalid character, which shouldn't
-                          happen actually, but due to bugs it may
-                          happen.  Let's print the char as is, there's
-                          not much meaningful we can do with it.  */
-                         str[0] = it->c;
-                         str[1] = it->c >> 8;
-                         str[2] = it->c >> 16;
-                         str[3] = it->c >> 24;
-                         len = 4;
-                       }
+                   /* It's an invalid character, which shouldn't
+                      happen actually, but due to bugs it may
+                      happen.  Let's print the char as is, there's
+                      not much meaningful we can do with it.  */
+                     str[0] = it->c;
+                     str[1] = it->c >> 8;
+                     str[2] = it->c >> 16;
+                     str[3] = it->c >> 24;
+                     len = 4;
                    }
 
                for (i = 0; i < len; i++)
@@ -5823,16 +5957,21 @@ get_next_display_element (it)
              goto get_next;
            }
        }
+    }
 
-      /* Adjust face id for a multibyte character.  There are no
-         multibyte character in unibyte text.  */
-      if (it->multibyte_p
-         && success_p
-         && FRAME_WINDOW_P (it->f))
-       {
-         struct face *face = FACE_FROM_ID (it->f, it->face_id);
-         it->face_id = FACE_FOR_CHAR (it->f, face, it->c);
-       }
+  /* Adjust face id for a multibyte character.  There are no multibyte
+     character in unibyte text.  */
+  if ((it->what == IT_CHARACTER || it->what == IT_COMPOSITION)
+      && it->multibyte_p
+      && success_p
+      && FRAME_WINDOW_P (it->f))
+    {
+      struct face *face = FACE_FROM_ID (it->f, it->face_id);
+      int pos = (it->s ? -1
+                : STRINGP (it->string) ? IT_STRING_CHARPOS (*it)
+                : IT_CHARPOS (*it));
+         
+      it->face_id = FACE_FOR_CHAR (it->f, face, it->c, pos, it->string);
     }
 
   /* Is this character the last one of a run of characters with
@@ -6834,6 +6973,16 @@ move_it_to (it, to_charpos, to_x, to_y, to_vpos, op)
             the line.  */
          if (skip == MOVE_X_REACHED)
            {
+             /* Wait!  We can conclude that TO_Y is in the line if
+                the already scanned glyphs make the line tall enough
+                because further scanning doesn't make it shorter.  */
+             line_height = it->max_ascent + it->max_descent;
+             if (to_y >= it->current_y
+                 && to_y < it->current_y + line_height)
+               {
+                 reached = 6;
+                 break;
+               }
              it_backup = *it;
              TRACE_MOVE ((stderr, "move_it: from %d\n", IT_CHARPOS (*it)));
              skip2 = move_it_in_display_line_to (it, to_charpos, -1,
@@ -7370,7 +7519,7 @@ message_dolog (m, nbytes, nlflag, multibyte)
          for (i = 0; i < nbytes; i += char_bytes)
            {
              c = string_char_and_length (m + i, nbytes - i, &char_bytes);
-             work[0] = (SINGLE_BYTE_CHAR_P (c)
+             work[0] = (ASCII_CHAR_P (c)
                         ? c
                         : multibyte_char_to_unibyte (c, Qnil));
              insert_1_both (work, 1, 1, 1, 0, 0);
@@ -7386,7 +7535,8 @@ message_dolog (m, nbytes, nlflag, multibyte)
             for the *Message* buffer.  */
          for (i = 0; i < nbytes; i++)
            {
-             c = unibyte_char_to_multibyte (msg[i]);
+             c = msg[i];
+             c = unibyte_char_to_multibyte (c);
              char_bytes = CHAR_STRING (c, str);
              insert_1_both (str, 1, char_bytes, 1, 0, 0);
            }
@@ -8671,7 +8821,7 @@ set_message_1 (a1, a2, nbytes, multibyte_p)
          for (i = 0; i < nbytes; i += n)
            {
              c = string_char_and_length (s + i, nbytes - i, &n);
-             work[0] = (SINGLE_BYTE_CHAR_P (c)
+             work[0] = (ASCII_CHAR_P (c)
                         ? c
                         : multibyte_char_to_unibyte (c, Qnil));
              insert_1_both (work, 1, 1, 1, 0, 0);
@@ -8688,7 +8838,8 @@ set_message_1 (a1, a2, nbytes, multibyte_p)
          /* Convert a single-byte string to multibyte.  */
          for (i = 0; i < nbytes; i++)
            {
-             c = unibyte_char_to_multibyte (msg[i]);
+             c = msg[i];
+             c = unibyte_char_to_multibyte (c);
              n = CHAR_STRING (c, str);
              insert_1_both (str, 1, n, 1, 0, 0);
            }
@@ -10786,7 +10937,7 @@ check_point_in_composition (prev_buf, prev_pt, buf, pt)
      struct buffer *prev_buf, *buf;
      int prev_pt, pt;
 {
-  int start, end;
+  EMACS_INT start, end;
   Lisp_Object prop;
   Lisp_Object buffer;
 
@@ -11806,35 +11957,24 @@ disp_char_vector (dp, c)
      struct Lisp_Char_Table *dp;
      int c;
 {
-  int code[4], i;
   Lisp_Object val;
 
-  if (SINGLE_BYTE_CHAR_P (c))
-    return (dp->contents[c]);
-
-  SPLIT_CHAR (c, code[0], code[1], code[2]);
-  if (code[1] < 32)
-    code[1] = -1;
-  else if (code[2] < 32)
-    code[2] = -1;
-
-  /* Here, the possible range of code[0] (== charset ID) is
-     128..max_charset.  Since the top level char table contains data
-     for multibyte characters after 256th element, we must increment
-     code[0] by 128 to get a correct index.  */
-  code[0] += 128;
-  code[3] = -1;                /* anchor */
-
-  for (i = 0; code[i] >= 0; i++, dp = XCHAR_TABLE (val))
+  if (ASCII_CHAR_P (c))
     {
-      val = dp->contents[code[i]];
-      if (!SUB_CHAR_TABLE_P (val))
-       return (NILP (val) ? dp->defalt : val);
+      val = dp->ascii;
+      if (SUB_CHAR_TABLE_P (val))
+       val = XSUB_CHAR_TABLE (val)->contents[c];
     }
+  else
+    {
+      Lisp_Object table;
 
-  /* Here, val is a sub char table.  We return the default value of
-     it.  */
-  return (dp->defalt);
+      XSETCHAR_TABLE (table, dp);
+      val = char_table_ref (table, c);
+    }
+  if (NILP (val))
+    val = dp->defalt;
+  return val;
 }
 
 
@@ -15760,7 +15900,7 @@ append_space_for_newline (it, default_face_p)
          else if (it->face_before_selective_p)
            it->face_id = it->saved_face_id;
          face = FACE_FROM_ID (it->f, it->face_id);
-         it->face_id = FACE_FOR_CHAR (it->f, face, 0);
+         it->face_id = FACE_FOR_CHAR (it->f, face, 0, -1, Qnil);
 
          PRODUCE_GLYPHS (it);
 
@@ -15820,9 +15960,9 @@ extend_face_to_end_of_line (it)
          ASCII face.  This will be automatically undone the next time
          get_next_display_element returns a multibyte character.  Note
          that the character will always be single byte in unibyte text.  */
-  if (!SINGLE_BYTE_CHAR_P (it->c))
+  if (!ASCII_CHAR_P (it->c))
     {
-      it->face_id = FACE_FOR_CHAR (f, face, 0);
+      it->face_id = FACE_FOR_CHAR (f, face, 0, -1, Qnil);
     }
 
   if (FRAME_WINDOW_P (f))
@@ -15928,7 +16068,7 @@ highlight_trailing_whitespace (f, row)
                  && glyph->u.ch == ' '))
          && trailing_whitespace_p (glyph->charpos))
        {
-         int face_id = lookup_named_face (f, Qtrailing_whitespace, 0, 0);
+         int face_id = lookup_named_face (f, Qtrailing_whitespace, 0);
          if (face_id < 0)
            return;
 
@@ -17457,7 +17597,7 @@ are the selected window and the window's buffer).  */)
     {
       if (EQ (face, Qt))
        face = (EQ (window, selected_window) ? Qmode_line : Qmode_line_inactive);
-      face_id = lookup_named_face (XFRAME (WINDOW_FRAME (w)), face, 0, 0);
+      face_id = lookup_named_face (XFRAME (WINDOW_FRAME (w)), face, 0);
     }
 
   if (face_id < 0)
@@ -17680,7 +17820,7 @@ decode_mode_spec_coding (coding_system, buf, eol_flag)
   /* The EOL conversion we are using.  */
   Lisp_Object eoltype;
 
-  val = Fget (coding_system, Qcoding_system);
+  val = CODING_SYSTEM_SPEC (coding_system);
   eoltype = Qnil;
 
   if (!VECTORP (val))          /* Not yet decided.  */
@@ -17693,12 +17833,14 @@ decode_mode_spec_coding (coding_system, buf, eol_flag)
     }
   else
     {
+      Lisp_Object attrs;
       Lisp_Object eolvalue;
 
-      eolvalue = Fget (coding_system, Qeol_type);
+      attrs = AREF (val, 0);
+      eolvalue = AREF (val, 2);
 
       if (multibyte)
-       *buf++ = XFASTINT (AREF (val, 1));
+       *buf++ = XFASTINT (CODING_ATTR_MNEMONIC (attrs));
 
       if (eol_flag)
        {
@@ -17708,10 +17850,10 @@ decode_mode_spec_coding (coding_system, buf, eol_flag)
            eoltype = eol_mnemonic_undecided;
          else if (VECTORP (eolvalue)) /* Not yet decided.  */
            eoltype = eol_mnemonic_undecided;
-         else                  /* INTEGERP (eolvalue) -- 0:LF, 1:CRLF, 2:CR */
-           eoltype = (XFASTINT (eolvalue) == 0
+         else                  /* eolvalue is Qunix, Qdos, or Qmac.  */
+           eoltype = (EQ (eolvalue, Qunix)
                       ? eol_mnemonic_unix
-                      : (XFASTINT (eolvalue) == 1
+                      : (EQ (eolvalue, Qdos) == 1
                          ? eol_mnemonic_dos : eol_mnemonic_mac));
        }
     }
@@ -17724,8 +17866,7 @@ decode_mode_spec_coding (coding_system, buf, eol_flag)
          eol_str = SDATA (eoltype);
          eol_str_len = SBYTES (eoltype);
        }
-      else if (INTEGERP (eoltype)
-              && CHAR_VALID_P (XINT (eoltype), 0))
+      else if (CHARACTERP (eoltype))
        {
          unsigned char *tmp = (unsigned char *) alloca (MAX_MULTIBYTE_LENGTH);
          eol_str_len = CHAR_STRING (XINT (eoltype), tmp);
@@ -18129,8 +18270,12 @@ decode_mode_spec (w, c, field_width, precision, multibyte)
          {
            /* No need to mention EOL here--the terminal never needs
               to do EOL conversion.  */
-           p = decode_mode_spec_coding (FRAME_KEYBOARD_CODING (f)->symbol, p, 0);
-           p = decode_mode_spec_coding (FRAME_TERMINAL_CODING (f)->symbol, p, 0);
+           p = decode_mode_spec_coding (CODING_ID_NAME
+                                        (FRAME_KEYBOARD_CODING (f)->id),
+                                        p, 0);
+           p = decode_mode_spec_coding (CODING_ID_NAME
+                                        (FRAME_TERMINAL_CODING (f)->id),
+                                        p, 0);
          }
        p = decode_mode_spec_coding (b->buffer_file_coding_system,
                                     p, eol_flag);
@@ -18402,7 +18547,7 @@ display_string (string, lisp_string, face_string, face_string_pos,
                }
              break;
            }
-         else if (x + glyph->pixel_width > it->first_visible_x)
+         else if (x + glyph->pixel_width >= it->first_visible_x)
            {
              /* Glyph is at least partially visible.  */
              ++it->hpos;
@@ -18954,6 +19099,80 @@ append_glyph_string (head, tail, s)
 }
 
 
+/* Get face and two-byte form of character C in face FACE_ID on frame
+   F.  The encoding of C is returned in *CHAR2B.  MULTIBYTE_P non-zero
+   means we want to display multibyte text.  DISPLAY_P non-zero means
+   make sure that X resources for the face returned are allocated.
+   Value is a pointer to a realized face that is ready for display if
+   DISPLAY_P is non-zero.  */
+
+static INLINE struct face *
+get_char_face_and_encoding (f, c, face_id, char2b, multibyte_p, display_p)
+     struct frame *f;
+     int c, face_id;
+     XChar2b *char2b;
+     int multibyte_p, display_p;
+{
+  struct face *face = FACE_FROM_ID (f, face_id);
+
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      struct font *font = (struct font *) face->font_info;
+
+      if (font)
+       {
+         unsigned code = font->driver->encode_char (font, c);
+
+         if (code != FONT_INVALID_CODE)
+           STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
+         else
+           STORE_XCHAR2B (char2b, 0, 0);
+       }
+    }
+  else
+#endif /* USE_FONT_BACKEND */
+  if (!multibyte_p)
+    {
+      /* Unibyte case.  We don't have to encode, but we have to make
+        sure to use a face suitable for unibyte.  */
+      STORE_XCHAR2B (char2b, 0, c);
+      face_id = FACE_FOR_CHAR (f, face, c, -1, Qnil);
+      face = FACE_FROM_ID (f, face_id);
+    }
+  else if (c < 128)
+    {
+      /* Case of ASCII in a face known to fit ASCII.  */
+      STORE_XCHAR2B (char2b, 0, c);
+    }
+  else if (face->font != NULL)
+    {
+      struct font_info *font_info
+       = FONT_INFO_FROM_ID (f, face->font_info_id);
+      struct charset *charset = CHARSET_FROM_ID (font_info->charset);
+      unsigned code = ENCODE_CHAR (charset, c);
+
+      if (CHARSET_DIMENSION (charset) == 1)
+       STORE_XCHAR2B (char2b, 0, code);
+      else
+       STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
+       /* Maybe encode the character in *CHAR2B.  */
+      FRAME_RIF (f)->encode_char (c, char2b, font_info, charset, NULL);
+    }
+
+  /* Make sure X resources of the face are allocated.  */
+#ifdef HAVE_X_WINDOWS
+  if (display_p)
+#endif
+    {
+      xassert (face != NULL);
+      PREPARE_FACE_FOR_DISPLAY (f, face);
+    }
+
+  return face;
+}
+
+
 /* Get face and two-byte form of character glyph GLYPH on frame F.
    The encoding of GLYPH->u.ch is returned in *CHAR2B.  Value is
    a pointer to a realized face that is ready for display.  */
@@ -18973,6 +19192,23 @@ get_glyph_face_and_encoding (f, glyph, char2b, two_byte_p)
   if (two_byte_p)
     *two_byte_p = 0;
 
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      struct font *font = (struct font *) face->font_info;
+
+      if (font)
+       {
+         unsigned code = font->driver->encode_char (font, glyph->u.ch);
+
+         if (code != FONT_INVALID_CODE)
+           STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
+         else
+           STORE_XCHAR2B (char2b, 0, code);
+       }
+    }
+  else
+#endif /* USE_FONT_BACKEND */
   if (!glyph->multibyte_p)
     {
       /* Unibyte case.  We don't have to encode, but we have to make
@@ -18986,24 +19222,25 @@ get_glyph_face_and_encoding (f, glyph, char2b, two_byte_p)
     }
   else
     {
-      int c1, c2, charset;
+      struct font_info *font_info
+       = FONT_INFO_FROM_ID (f, face->font_info_id);
+      if (font_info)
+       {
+         struct charset *charset = CHARSET_FROM_ID (font_info->charset);
+         unsigned code = ENCODE_CHAR (charset, glyph->u.ch);
 
-      /* Split characters into bytes.  If c2 is -1 afterwards, C is
-        really a one-byte character so that byte1 is zero.  */
-      SPLIT_CHAR (glyph->u.ch, charset, c1, c2);
-      if (c2 > 0)
-       STORE_XCHAR2B (char2b, c1, c2);
-      else
-       STORE_XCHAR2B (char2b, 0, c1);
+         if (CHARSET_DIMENSION (charset) == 1)
+           STORE_XCHAR2B (char2b, 0, code);
+         else
+           STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF));
 
-      /* Maybe encode the character in *CHAR2B.  */
-      if (charset != CHARSET_ASCII)
-       {
-         struct font_info *font_info
-           = FONT_INFO_FROM_ID (f, face->font_info_id);
-         if (font_info)
-           glyph->font_type
-             = FRAME_RIF (f)->encode_char (glyph->u.ch, char2b, font_info, two_byte_p);
+         /* Maybe encode the character in *CHAR2B.  */
+         if (CHARSET_ID (charset) != charset_ascii)
+           {
+             glyph->font_type
+               = FRAME_RIF (f)->encode_char (glyph->u.ch, char2b, font_info,
+                                             charset, two_byte_p);
+           }
        }
     }
 
@@ -19016,7 +19253,7 @@ get_glyph_face_and_encoding (f, glyph, char2b, two_byte_p)
 
 /* Fill glyph string S with composition components specified by S->cmp.
 
-   FACES is an array of faces for all components of this composition.
+   BASE_FACE is the base face of the composition.
    S->gidx is the index of the first component for S.
 
    OVERLAPS non-zero means S should draw the foreground only, and use
@@ -19025,9 +19262,9 @@ get_glyph_face_and_encoding (f, glyph, char2b, two_byte_p)
    Value is the index of a component not in S.  */
 
 static int
-fill_composite_glyph_string (s, faces, overlaps)
+fill_composite_glyph_string (s, base_face, overlaps)
      struct glyph_string *s;
-     struct face **faces;
+     struct face *base_face;
      int overlaps;
 {
   int i;
@@ -19036,21 +19273,69 @@ fill_composite_glyph_string (s, faces, overlaps)
 
   s->for_overlaps = overlaps;
 
-  s->face = faces[s->gidx];
-  s->font = s->face->font;
-  s->font_info = FONT_INFO_FROM_ID (s->f, s->face->font_info_id);
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend && s->cmp->method == COMPOSITION_WITH_GLYPH_STRING)
+    {
+      Lisp_Object gstring
+       = AREF (XHASH_TABLE (composition_hash_table)->key_and_value,
+               s->cmp->hash_index * 2);
 
-  /* For all glyphs of this composition, starting at the offset
-     S->gidx, until we reach the end of the definition or encounter a
-     glyph that requires the different face, add it to S.  */
-  ++s->nchars;
-  for (i = s->gidx + 1; i < s->cmp->glyph_len && faces[i] == s->face; ++i)
-    ++s->nchars;
+      s->face = base_face;
+      s->font_info = s->cmp->font;
+      s->font = s->font_info->font;
+      for (i = 0, s->nchars = 0; i < s->cmp->glyph_len; i++, s->nchars++)
+       {
+         Lisp_Object g = LGSTRING_GLYPH (gstring, i);
+         unsigned code;
+          XChar2b * store_pos;
+         if (NILP (g))
+           break;
+         code = LGLYPH_CODE (g);
+          store_pos = s->char2b + i;
+         STORE_XCHAR2B (store_pos, code >> 8, code & 0xFF);
+       }
+      s->width = s->cmp->pixel_width;
+    }
+  else
+#endif /* USE_FONT_BACKEND */
+    {
+      /* For all glyphs of this composition, starting at the offset
+        S->gidx, until we reach the end of the definition or encounter a
+        glyph that requires the different face, add it to S.  */
+      struct face *face;
 
-  /* All glyph strings for the same composition has the same width,
-     i.e. the width set for the first component of the composition.  */
+      s->face = NULL;
+      s->font = NULL;
+      s->font_info = NULL;
+      for (i = s->gidx; i < s->cmp->glyph_len; i++)
+       {
+         int c = COMPOSITION_GLYPH (s->cmp, i);
 
-  s->width = s->first_glyph->pixel_width;
+         if (c != '\t')
+           {
+             int face_id = FACE_FOR_CHAR (s->f, base_face, c, -1, Qnil);
+
+             face = get_char_face_and_encoding (s->f, c, face_id,
+                                                s->char2b + i, 1, 1);
+             if (face)
+               {
+                 if (! s->face)
+                   {
+                     s->face = face;
+                     s->font = s->face->font;
+                     s->font_info = FONT_INFO_FROM_FACE (s->f, s->face);
+                   }
+                 else if (s->face != face)
+                   break;
+               }
+           }
+         ++s->nchars;
+       }
+
+      /* All glyph strings for the same composition has the same width,
+        i.e. the width set for the first component of the composition.  */
+      s->width = s->first_glyph->pixel_width;
+    }
 
   /* If the specified font could not be loaded, use the frame's
      default font, but record the fact that we couldn't load it in
@@ -19065,8 +19350,6 @@ fill_composite_glyph_string (s, faces, overlaps)
   /* Adjust base line for subscript/superscript text.  */
   s->ybase += s->first_glyph->voffset;
 
-  xassert (s->face && s->face->gc);
-
   /* This glyph string must always be drawn with 16-bit functions.  */
   s->two_byte_p = 1;
 
@@ -19124,7 +19407,7 @@ fill_glyph_string (s, face_id, start, end, overlaps)
     }
 
   s->font = s->face->font;
-  s->font_info = FONT_INFO_FROM_ID (s->f, s->face->font_info_id);
+  s->font_info = FONT_INFO_FROM_FACE (s->f, s->face);
 
   /* If the specified font could not be loaded, use the frame's font,
      but record the fact that we couldn't load it in
@@ -19188,7 +19471,7 @@ fill_stretch_glyph_string (s, row, area, start, end)
   face_id = glyph->face_id;
   s->face = FACE_FROM_ID (s->f, face_id);
   s->font = s->face->font;
-  s->font_info = FONT_INFO_FROM_ID (s->f, s->face->font_info_id);
+  s->font_info = FONT_INFO_FROM_FACE (s->f, s->face);
   s->width = glyph->pixel_width;
   s->nchars = 1;
   voffset = glyph->voffset;
@@ -19210,6 +19493,36 @@ fill_stretch_glyph_string (s, row, area, start, end)
   return glyph - s->row->glyphs[s->area];
 }
 
+static XCharStruct *
+get_per_char_metric (f, font, font_info, char2b, font_type)
+     struct frame *f;
+     XFontStruct *font;
+     struct font_info *font_info;
+     XChar2b *char2b;
+     int font_type;
+{
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      static XCharStruct pcm_value;
+      unsigned code = (XCHAR2B_BYTE1 (char2b) << 8) | XCHAR2B_BYTE2 (char2b);
+      struct font *fontp;
+      struct font_metrics metrics;
+
+      if (! font_info || code == FONT_INVALID_CODE)
+       return NULL;
+      fontp = (struct font *) font_info;
+      fontp->driver->text_extents (fontp, &code, 1, &metrics);
+      pcm_value.lbearing = metrics.lbearing;
+      pcm_value.rbearing = metrics.rbearing;
+      pcm_value.ascent = metrics.ascent;
+      pcm_value.descent = metrics.descent;
+      pcm_value.width = metrics.width;
+      return &pcm_value;
+    }
+#endif /* USE_FONT_BACKEND */
+  return FRAME_RIF (f)->per_char_metric (font, char2b, font_type);
+}
 
 /* EXPORT for RIF:
    Set *LEFT and *RIGHT to the left and right overhang of GLYPH on
@@ -19234,9 +19547,9 @@ x_get_glyph_overhangs (glyph, f, left, right)
 
       face = get_glyph_face_and_encoding (f, glyph, &char2b, NULL);
       font = face->font;
-      font_info = FONT_INFO_FROM_ID (f, face->font_info_id);
+      font_info = FONT_INFO_FROM_FACE (f, face);
       if (font  /* ++KFS: Should this be font_info ?  */
-         && (pcm = FRAME_RIF (f)->per_char_metric (font, &char2b, glyph->font_type)))
+         && (pcm = get_per_char_metric (f, font, font_info, &char2b, glyph->font_type)))
        {
          if (pcm->rbearing > pcm->width)
            *right = pcm->rbearing - pcm->width;
@@ -19244,6 +19557,13 @@ x_get_glyph_overhangs (glyph, f, left, right)
            *left = -pcm->lbearing;
        }
     }
+  else if (glyph->type == COMPOSITE_GLYPH)
+    {
+      struct composition *cmp = composition_table[glyph->u.cmp_id];
+
+      *right = cmp->rbearing - cmp->pixel_width;
+      *left = - cmp->lbearing;
+    }
 }
 
 
@@ -19357,70 +19677,6 @@ right_overwriting (s)
 }
 
 
-/* Get face and two-byte form of character C in face FACE_ID on frame
-   F.  The encoding of C is returned in *CHAR2B.  MULTIBYTE_P non-zero
-   means we want to display multibyte text.  DISPLAY_P non-zero means
-   make sure that X resources for the face returned are allocated.
-   Value is a pointer to a realized face that is ready for display if
-   DISPLAY_P is non-zero.  */
-
-static INLINE struct face *
-get_char_face_and_encoding (f, c, face_id, char2b, multibyte_p, display_p)
-     struct frame *f;
-     int c, face_id;
-     XChar2b *char2b;
-     int multibyte_p, display_p;
-{
-  struct face *face = FACE_FROM_ID (f, face_id);
-
-  if (!multibyte_p)
-    {
-      /* Unibyte case.  We don't have to encode, but we have to make
-        sure to use a face suitable for unibyte.  */
-      STORE_XCHAR2B (char2b, 0, c);
-      face_id = FACE_FOR_CHAR (f, face, c);
-      face = FACE_FROM_ID (f, face_id);
-    }
-  else if (c < 128)
-    {
-      /* Case of ASCII in a face known to fit ASCII.  */
-      STORE_XCHAR2B (char2b, 0, c);
-    }
-  else
-    {
-      int c1, c2, charset;
-
-      /* Split characters into bytes.  If c2 is -1 afterwards, C is
-        really a one-byte character so that byte1 is zero.  */
-      SPLIT_CHAR (c, charset, c1, c2);
-      if (c2 > 0)
-       STORE_XCHAR2B (char2b, c1, c2);
-      else
-       STORE_XCHAR2B (char2b, 0, c1);
-
-      /* Maybe encode the character in *CHAR2B.  */
-      if (face->font != NULL)
-       {
-         struct font_info *font_info
-           = FONT_INFO_FROM_ID (f, face->font_info_id);
-         if (font_info)
-           FRAME_RIF (f)->encode_char (c, char2b, font_info, 0);
-       }
-    }
-
-  /* Make sure X resources of the face are allocated.  */
-#ifdef HAVE_X_WINDOWS
-  if (display_p)
-#endif
-    {
-      xassert (face != NULL);
-      PREPARE_FACE_FOR_DISPLAY (f, face);
-    }
-
-  return face;
-}
-
-
 /* Set background width of glyph string S.  START is the index of the
    first glyph following S.  LAST_X is the right-most x-position + 1
    in the drawing area.  */
@@ -19560,10 +19816,9 @@ compute_overhangs_and_x (s, x, backward_p)
 #define BUILD_CHAR_GLYPH_STRINGS(START, END, HEAD, TAIL, HL, X, LAST_X)           \
      do                                                                           \
        {                                                                  \
-        int c, face_id;                                                   \
+        int face_id;                                                      \
         XChar2b *char2b;                                                  \
                                                                           \
-        c = (row)->glyphs[area][START].u.ch;                              \
         face_id = (row)->glyphs[area][START].face_id;                     \
                                                                           \
         s = (struct glyph_string *) alloca (sizeof *s);                   \
@@ -19586,49 +19841,35 @@ compute_overhangs_and_x (s, x, backward_p)
    x-position of the drawing area.  */
 
 #define BUILD_COMPOSITE_GLYPH_STRING(START, END, HEAD, TAIL, HL, X, LAST_X) \
-  do {                                                                   \
-    int cmp_id = (row)->glyphs[area][START].u.cmp_id;                    \
-    int face_id = (row)->glyphs[area][START].face_id;                    \
-    struct face *base_face = FACE_FROM_ID (f, face_id);                          \
-    struct composition *cmp = composition_table[cmp_id];                 \
-    int glyph_len = cmp->glyph_len;                                      \
-    XChar2b *char2b;                                                     \
-    struct face **faces;                                                 \
-    struct glyph_string *first_s = NULL;                                 \
-    int n;                                                               \
-                                                                         \
-    base_face = base_face->ascii_face;                                   \
-    char2b = (XChar2b *) alloca ((sizeof *char2b) * glyph_len);                  \
-    faces = (struct face **) alloca ((sizeof *faces) * glyph_len);       \
-    /* At first, fill in `char2b' and `faces'.  */                       \
-    for (n = 0; n < glyph_len; n++)                                      \
-      {                                                                          \
-       int c = COMPOSITION_GLYPH (cmp, n);                               \
-       int this_face_id = FACE_FOR_CHAR (f, base_face, c);               \
-       faces[n] = FACE_FROM_ID (f, this_face_id);                        \
-       get_char_face_and_encoding (f, c, this_face_id,                   \
-                                   char2b + n, 1, 1);                    \
-      }                                                                          \
-                                                                         \
-    /* Make glyph_strings for each glyph sequence that is drawable by    \
-       the same face, and append them to HEAD/TAIL.  */                          \
-    for (n = 0; n < cmp->glyph_len;)                                     \
-      {                                                                          \
-       s = (struct glyph_string *) alloca (sizeof *s);                   \
-       INIT_GLYPH_STRING (s, char2b + n, w, row, area, START, HL);       \
-       append_glyph_string (&(HEAD), &(TAIL), s);                        \
-       s->cmp = cmp;                                                     \
-       s->gidx = n;                                                      \
-       s->x = (X);                                                       \
-                                                                         \
-       if (n == 0)                                                       \
-         first_s = s;                                                    \
-                                                                         \
-       n = fill_composite_glyph_string (s, faces, overlaps);             \
-      }                                                                          \
-                                                                         \
-    ++START;                                                             \
-    s = first_s;                                                         \
+  do {                                                                     \
+    int face_id = (row)->glyphs[area][START].face_id;                      \
+    struct face *base_face = FACE_FROM_ID (f, face_id);                            \
+    int cmp_id = (row)->glyphs[area][START].u.cmp_id;                      \
+    struct composition *cmp = composition_table[cmp_id];                   \
+    XChar2b *char2b;                                                       \
+    struct glyph_string *first_s;                                          \
+    int n;                                                                 \
+                                                                           \
+    char2b = (XChar2b *) alloca ((sizeof *char2b) * cmp->glyph_len);       \
+    base_face = base_face->ascii_face;                                     \
+                                                                           \
+    /* Make glyph_strings for each glyph sequence that is drawable by      \
+       the same face, and append them to HEAD/TAIL.  */                            \
+    for (n = 0; n < cmp->glyph_len;)                                       \
+      {                                                                            \
+       s = (struct glyph_string *) alloca (sizeof *s);                     \
+       INIT_GLYPH_STRING (s, char2b, w, row, area, START, HL);             \
+       append_glyph_string (&(HEAD), &(TAIL), s);                          \
+       s->cmp = cmp;                                                       \
+       s->gidx = n;                                                        \
+       s->x = (X);                                                         \
+       if (n == 0)                                                         \
+         first_s = s;                                                      \
+       n = fill_composite_glyph_string (s, base_face, overlaps);           \
+      }                                                                            \
+                                                                           \
+    ++START;                                                               \
+    s = first_s;                                                           \
   } while (0)
 
 
@@ -19675,8 +19916,11 @@ compute_overhangs_and_x (s, x, backward_p)
                 abort ();                                                 \
               }                                                           \
                                                                           \
-             set_glyph_string_background_width (s, START, LAST_X);        \
-            (X) += s->width;                                              \
+            if (s)                                                        \
+              {                                                           \
+                set_glyph_string_background_width (s, START, LAST_X);     \
+                (X) += s->width;                                          \
+              }                                                           \
             }                                                             \
        }                                                                  \
      while (0)
@@ -19710,7 +19954,7 @@ draw_glyphs (w, x, row, area, start, end, hl, overlaps)
      int x;
      struct glyph_row *row;
      enum glyph_row_area area;
-     int start, end;
+     EMACS_INT start, end;
      enum draw_glyphs_face hl;
      int overlaps;
 {
@@ -19830,6 +20074,7 @@ draw_glyphs (w, x, row, area, start, end, hl, overlaps)
       if (i >= 0)
        {
          clip_tail = tail;
+         i++;                  /* We must include the Ith glyph.  */
          BUILD_GLYPH_STRINGS (end, i, h, t,
                               DRAW_NORMAL_TEXT, x, last_x);
          for (s = h; s; s = s->next)
@@ -20419,7 +20664,7 @@ calc_line_height_property (it, val, font, boff, override)
       struct face *face;
       struct font_info *font_info;
 
-      face_id = lookup_named_face (it->f, face_name, ' ', 0);
+      face_id = lookup_named_face (it->f, face_name, 0);
       if (face_id < 0)
        return make_number (-1);
 
@@ -20428,7 +20673,7 @@ calc_line_height_property (it, val, font, boff, override)
       if (font == NULL)
        return make_number (-1);
 
-      font_info = FONT_INFO_FROM_ID (it->f, face->font_info_id);
+      font_info = FONT_INFO_FROM_FACE (it->f, face);
       boff = font_info->baseline_offset;
       if (font_info->vertical_centering)
        boff = VCENTER_BASELINE_OFFSET (font, it->f) - boff;
@@ -20492,23 +20737,17 @@ x_produce_glyphs (it)
       /* Maybe translate single-byte characters to multibyte, or the
         other way.  */
       it->char_to_display = it->c;
-      if (!ASCII_BYTE_P (it->c))
+      if (!ASCII_BYTE_P (it->c)
+         && ! it->multibyte_p)
        {
-         if (unibyte_display_via_language_environment
-             && SINGLE_BYTE_CHAR_P (it->c)
-             && (it->c >= 0240
-                 || !NILP (Vnonascii_translation_table)))
-           {
-             it->char_to_display = unibyte_char_to_multibyte (it->c);
-             it->multibyte_p = 1;
-             it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display);
-             face = FACE_FROM_ID (it->f, it->face_id);
-           }
-         else if (!SINGLE_BYTE_CHAR_P (it->c)
-                  && !it->multibyte_p)
+         if (SINGLE_BYTE_CHAR_P (it->c)
+             && unibyte_display_via_language_environment)
+           it->char_to_display = unibyte_char_to_multibyte (it->c);
+         if (! SINGLE_BYTE_CHAR_P (it->char_to_display))
            {
              it->multibyte_p = 1;
-             it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display);
+             it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display,
+                                          -1, Qnil);
              face = FACE_FROM_ID (it->f, it->face_id);
            }
        }
@@ -20528,7 +20767,7 @@ x_produce_glyphs (it)
        }
       else
        {
-         font_info = FONT_INFO_FROM_ID (it->f, face->font_info_id);
+         font_info = FONT_INFO_FROM_FACE (it->f, face);
          boff = font_info->baseline_offset;
          if (font_info->vertical_centering)
            boff = VCENTER_BASELINE_OFFSET (font, it->f) - boff;
@@ -20542,8 +20781,8 @@ x_produce_glyphs (it)
 
          it->nglyphs = 1;
 
-          pcm = FRAME_RIF (it->f)->per_char_metric
-            (font, &char2b, FONT_TYPE_FOR_UNIBYTE (font, it->char_to_display));
+         pcm = get_per_char_metric (it->f, font, font_info, &char2b,
+                                    FONT_TYPE_FOR_UNIBYTE (font, it->char_to_display));
 
          if (it->override_ascent >= 0)
            {
@@ -20769,20 +21008,24 @@ x_produce_glyphs (it)
 
          /* If we found a font, this font should give us the right
             metrics.  If we didn't find a font, use the frame's
-            default font and calculate the width of the character
-            from the charset width; this is what old redisplay code
-            did.  */
+            default font and calculate the width of the character by
+            multiplying the width of font by the width of the
+            character.  */
 
-         pcm = FRAME_RIF (it->f)->per_char_metric (font, &char2b,
-                                                    FONT_TYPE_FOR_MULTIBYTE (font, it->c));
+           pcm = get_per_char_metric (it->f, font, font_info, &char2b,
+                                      FONT_TYPE_FOR_MULTIBYTE (font, it->c));
 
          if (font_not_found_p || !pcm)
            {
-             int charset = CHAR_CHARSET (it->char_to_display);
+             int char_width = CHAR_WIDTH (it->char_to_display);
 
+             if (char_width == 0)
+               /* This is a non spacing character.  But, as we are
+                  going to display an empty box, the box must occupy
+                  at least one column.  */
+               char_width = 1;
              it->glyph_not_available_p = 1;
-             it->pixel_width = (FRAME_COLUMN_WIDTH (it->f)
-                                * CHARSET_WIDTH (charset));
+             it->pixel_width = FRAME_COLUMN_WIDTH (it->f) * char_width;
              it->phys_ascent = FONT_BASE (font) + boff;
              it->phys_descent = FONT_DESCENT (font) - boff;
            }
@@ -20832,99 +21075,120 @@ x_produce_glyphs (it)
   else if (it->what == IT_COMPOSITION)
     {
       /* Note: A composition is represented as one glyph in the
-        glyph matrix.  There are no padding glyphs.  */
-      XChar2b char2b;
-      XFontStruct *font;
+        glyph matrix.  There are no padding glyphs.
+
+        Important is that pixel_width, ascent, and descent are the
+        values of what is drawn by draw_glyphs (i.e. the values of
+        the overall glyphs composed).  */
       struct face *face = FACE_FROM_ID (it->f, it->face_id);
-      XCharStruct *pcm;
-      int font_not_found_p;
-      struct font_info *font_info;
       int boff;                        /* baseline offset */
       struct composition *cmp = composition_table[it->cmp_id];
+      int glyph_len = cmp->glyph_len;
+      XFontStruct *font = face->font;
 
-      /* Maybe translate single-byte characters to multibyte.  */
-      it->char_to_display = it->c;
-      if (unibyte_display_via_language_environment
-         && SINGLE_BYTE_CHAR_P (it->c)
-         && (it->c >= 0240
-             || (it->c >= 0200
-                 && !NILP (Vnonascii_translation_table))))
-       {
-         it->char_to_display = unibyte_char_to_multibyte (it->c);
-       }
-
-      /* Get face and font to use.  Encode IT->char_to_display.  */
-      it->face_id = FACE_FOR_CHAR (it->f, face, it->char_to_display);
-      face = FACE_FROM_ID (it->f, it->face_id);
-      get_char_face_and_encoding (it->f, it->char_to_display, it->face_id,
-                                 &char2b, it->multibyte_p, 0);
-      font = face->font;
+      it->nglyphs = 1;
 
-      /* When no suitable font found, use the default font.  */
-      font_not_found_p = font == NULL;
-      if (font_not_found_p)
+#ifdef USE_FONT_BACKEND
+      if (cmp->method == COMPOSITION_WITH_GLYPH_STRING)
        {
-         font = FRAME_FONT (it->f);
-         boff = FRAME_BASELINE_OFFSET (it->f);
-         font_info = NULL;
+         if (! cmp->font || cmp->font != font)
+           font_prepare_composition (cmp, it->f);
        }
       else
-       {
-         font_info = FONT_INFO_FROM_ID (it->f, face->font_info_id);
-         boff = font_info->baseline_offset;
-         if (font_info->vertical_centering)
-           boff = VCENTER_BASELINE_OFFSET (font, it->f) - boff;
-       }
-
-      /* There are no padding glyphs, so there is only one glyph to
-        produce for the composition.  Important is that pixel_width,
-        ascent and descent are the values of what is drawn by
-        draw_glyphs (i.e. the values of the overall glyphs composed).  */
-      it->nglyphs = 1;
-
+#endif /* USE_FONT_BACKEND */
       /* If we have not yet calculated pixel size data of glyphs of
         the composition for the current face font, calculate them
         now.  Theoretically, we have to check all fonts for the
         glyphs, but that requires much time and memory space.  So,
         here we check only the font of the first glyph.  This leads
-        to incorrect display very rarely, and C-l (recenter) can
-        correct the display anyway.  */
-      if (cmp->font != (void *) font)
-       {
-         /* Ascent and descent of the font of the first character of
-            this composition (adjusted by baseline offset).  Ascent
-            and descent of overall glyphs should not be less than
-            them respectively.  */
-         int font_ascent = FONT_BASE (font) + boff;
-         int font_descent = FONT_DESCENT (font) - boff;
+        to incorrect display, but it's very rare, and C-l (recenter)
+        can correct the display anyway.  */
+      if (! cmp->font || cmp->font != font)
+       {
+         /* Ascent and descent of the font of the first character
+            of this composition (adjusted by baseline offset).
+            Ascent and descent of overall glyphs should not be less
+            than them respectively.  */
+         int font_ascent, font_descent, font_height;
          /* Bounding box of the overall glyphs.  */
          int leftmost, rightmost, lowest, highest;
+         int lbearing, rbearing;
          int i, width, ascent, descent;
+         int left_padded = 0, right_padded = 0;
+         int face_id;
+         int c;
+         XChar2b char2b;
+         XCharStruct *pcm;
+         int font_not_found_p;
+         struct font_info *font_info;
+         int pos;
+
+         for (glyph_len = cmp->glyph_len; glyph_len > 0; glyph_len--)
+           if ((c = COMPOSITION_GLYPH (cmp, glyph_len - 1)) != '\t')
+             break;
+         if (glyph_len < cmp->glyph_len)
+           right_padded = 1;
+         for (i = 0; i < glyph_len; i++)
+           {
+             if ((c = COMPOSITION_GLYPH (cmp, i)) != '\t')
+               break;
+             cmp->offsets[i * 2] = cmp->offsets[i * 2 + 1] = 0;
+           }
+         if (i > 0)
+           left_padded = 1;
+
+         pos = (STRINGP (it->string) ? IT_STRING_CHARPOS (*it)
+                : IT_CHARPOS (*it));
+         /* When no suitable font found, use the default font.  */
+         font_not_found_p = font == NULL;
+         if (font_not_found_p)
+           {
+             face = face->ascii_face;
+             font = face->font;
+           }
+         font_info = FONT_INFO_FROM_FACE (it->f, face);
+         boff = font_info->baseline_offset;
+         if (font_info->vertical_centering)
+           boff = VCENTER_BASELINE_OFFSET (font, it->f) - boff;
+         font_ascent = FONT_BASE (font) + boff;
+         font_descent = FONT_DESCENT (font) - boff;
+         font_height = FONT_HEIGHT (font);
 
          cmp->font = (void *) font;
 
+         pcm = NULL;
+         if (! font_not_found_p)
+           {
+             get_char_face_and_encoding (it->f, c, it->face_id,
+                                         &char2b, it->multibyte_p, 0);
+             pcm = get_per_char_metric (it->f, font, font_info, &char2b,
+                                        FONT_TYPE_FOR_MULTIBYTE (font, c));
+           }
+
          /* Initialize the bounding box.  */
-         if (font_info
-             && (pcm = FRAME_RIF (it->f)->per_char_metric (font, &char2b,
-                                                            FONT_TYPE_FOR_MULTIBYTE (font, it->c))))
+         if (pcm)
            {
              width = pcm->width;
              ascent = pcm->ascent;
              descent = pcm->descent;
+             lbearing = pcm->lbearing;
+             rbearing = pcm->rbearing;
            }
          else
            {
              width = FONT_WIDTH (font);
              ascent = FONT_BASE (font);
              descent = FONT_DESCENT (font);
+             lbearing = 0;
+             rbearing = width;
            }
 
          rightmost = width;
+         leftmost = 0;
          lowest = - descent + boff;
          highest = ascent + boff;
-         leftmost = 0;
 
-         if (font_info
+         if (! font_not_found_p
              && font_info->default_ascent
              && CHAR_TABLE_P (Vuse_default_ascent)
              && !NILP (Faref (Vuse_default_ascent,
@@ -20932,123 +21196,138 @@ x_produce_glyphs (it)
            highest = font_info->default_ascent + boff;
 
          /* Draw the first glyph at the normal position.  It may be
-            shifted to right later if some other glyphs are drawn at
-            the left.  */
-         cmp->offsets[0] = 0;
-         cmp->offsets[1] = boff;
+            shifted to right later if some other glyphs are drawn
+            at the left.  */
+         cmp->offsets[i * 2] = 0;
+         cmp->offsets[i * 2 + 1] = boff;
+         cmp->lbearing = lbearing;
+         cmp->rbearing = rbearing;
 
          /* Set cmp->offsets for the remaining glyphs.  */
-         for (i = 1; i < cmp->glyph_len; i++)
+         for (i++; i < glyph_len; i++)
            {
              int left, right, btm, top;
              int ch = COMPOSITION_GLYPH (cmp, i);
-             int face_id = FACE_FOR_CHAR (it->f, face, ch);
+             int face_id;
+             struct face *this_face;
+             int this_boff;
+
+             if (ch == '\t')
+               ch = ' ';
+             face_id = FACE_FOR_CHAR (it->f, face, ch, pos, it->string);
+             this_face = FACE_FROM_ID (it->f, face_id);
+             font = this_face->font;
 
-             face = FACE_FROM_ID (it->f, face_id);
-             get_char_face_and_encoding (it->f, ch, face->id,
-                                         &char2b, it->multibyte_p, 0);
-             font = face->font;
              if (font == NULL)
-               {
-                 font = FRAME_FONT (it->f);
-                 boff = FRAME_BASELINE_OFFSET (it->f);
-                 font_info = NULL;
-               }
+               pcm = NULL;
              else
                {
-                 font_info
-                   = FONT_INFO_FROM_ID (it->f, face->font_info_id);
-                 boff = font_info->baseline_offset;
+                 font_info = FONT_INFO_FROM_FACE (it->f, this_face);
+                 this_boff = font_info->baseline_offset;
                  if (font_info->vertical_centering)
-                   boff = VCENTER_BASELINE_OFFSET (font, it->f) - boff;
+                   this_boff = VCENTER_BASELINE_OFFSET (font, it->f) - boff;
+                 get_char_face_and_encoding (it->f, ch, face_id,
+                                             &char2b, it->multibyte_p, 0);
+                 pcm = get_per_char_metric (it->f, font, font_info, &char2b,
+                                            FONT_TYPE_FOR_MULTIBYTE (font,
+                                                                     ch));
                }
-
-             if (font_info
-                 && (pcm = FRAME_RIF (it->f)->per_char_metric (font, &char2b,
-                                                                FONT_TYPE_FOR_MULTIBYTE (font, ch))))
+             if (! pcm)
+               cmp->offsets[i * 2] = cmp->offsets[i * 2 + 1] = 0;
+             else
                {
                  width = pcm->width;
                  ascent = pcm->ascent;
                  descent = pcm->descent;
-               }
-             else
-               {
-                 width = FONT_WIDTH (font);
-                 ascent = 1;
-                 descent = 0;
-               }
+                 lbearing = pcm->lbearing;
+                 rbearing = pcm->rbearing;
+                 if (cmp->method != COMPOSITION_WITH_RULE_ALTCHARS)
+                   {
+                     /* Relative composition with or without
+                        alternate chars.  */
+                     left = (leftmost + rightmost - width) / 2;
+                     btm = - descent + boff;
+                     if (font_info->relative_compose
+                         && (! CHAR_TABLE_P (Vignore_relative_composition)
+                             || NILP (Faref (Vignore_relative_composition,
+                                             make_number (ch)))))
+                       {
 
-             if (cmp->method != COMPOSITION_WITH_RULE_ALTCHARS)
-               {
-                 /* Relative composition with or without
-                    alternate chars.  */
-                 left = (leftmost + rightmost - width) / 2;
-                 btm = - descent + boff;
-                 if (font_info && font_info->relative_compose
-                     && (! CHAR_TABLE_P (Vignore_relative_composition)
-                         || NILP (Faref (Vignore_relative_composition,
-                                         make_number (ch)))))
+                         if (- descent >= font_info->relative_compose)
+                           /* One extra pixel between two glyphs.  */
+                           btm = highest + 1;
+                         else if (ascent <= 0)
+                           /* One extra pixel between two glyphs.  */
+                           btm = lowest - 1 - ascent - descent;
+                       }
+                   }
+                 else
                    {
+                     /* A composition rule is specified by an integer
+                        value that encodes global and new reference
+                        points (GREF and NREF).  GREF and NREF are
+                        specified by numbers as below:
+
+                        0---1---2 -- ascent
+                        |       |
+                        |       |
+                        |       |
+                        9--10--11 -- center
+                        |       |
+                        ---3---4---5--- baseline
+                        |       |
+                        6---7---8 -- descent
+                     */
+                     int rule = COMPOSITION_RULE (cmp, i);
+                     int gref, nref, grefx, grefy, nrefx, nrefy, xoff, yoff;
+
+                     COMPOSITION_DECODE_RULE (rule, gref, nref, xoff, yoff);
+                     grefx = gref % 3, nrefx = nref % 3;
+                     grefy = gref / 3, nrefy = nref / 3;
+                     if (xoff)
+                       xoff = font_height * (xoff - 128) / 256;
+                     if (yoff)
+                       yoff = font_height * (yoff - 128) / 256;
+
+                     left = (leftmost
+                             + grefx * (rightmost - leftmost) / 2
+                             - nrefx * width / 2
+                             + xoff);
+                 
+                     btm = ((grefy == 0 ? highest
+                             : grefy == 1 ? 0
+                             : grefy == 2 ? lowest
+                             : (highest + lowest) / 2)
+                            - (nrefy == 0 ? ascent + descent
+                               : nrefy == 1 ? descent - boff
+                               : nrefy == 2 ? 0
+                               : (ascent + descent) / 2)
+                            + yoff);
+                   }
+
+                 cmp->offsets[i * 2] = left;
+                 cmp->offsets[i * 2 + 1] = btm + descent;
 
-                     if (- descent >= font_info->relative_compose)
-                       /* One extra pixel between two glyphs.  */
-                       btm = highest + 1;
-                     else if (ascent <= 0)
-                       /* One extra pixel between two glyphs.  */
-                       btm = lowest - 1 - ascent - descent;
+                 /* Update the bounding box of the overall glyphs. */
+                 if (width > 0)
+                   {
+                     right = left + width;
+                     if (left < leftmost)
+                       leftmost = left;
+                     if (right > rightmost)
+                       rightmost = right;
                    }
+                 top = btm + descent + ascent;
+                 if (top > highest)
+                   highest = top;
+                 if (btm < lowest)
+                   lowest = btm;
+
+                 if (cmp->lbearing > left + lbearing)
+                   cmp->lbearing = left + lbearing;
+                 if (cmp->rbearing < left + rbearing)
+                   cmp->rbearing = left + rbearing;
                }
-             else
-               {
-                 /* A composition rule is specified by an integer
-                    value that encodes global and new reference
-                    points (GREF and NREF).  GREF and NREF are
-                    specified by numbers as below:
-
-                       0---1---2 -- ascent
-                       |       |
-                       |       |
-                       |       |
-                       9--10--11 -- center
-                       |       |
-                    ---3---4---5--- baseline
-                       |       |
-                       6---7---8 -- descent
-                 */
-                 int rule = COMPOSITION_RULE (cmp, i);
-                 int gref, nref, grefx, grefy, nrefx, nrefy;
-
-                 COMPOSITION_DECODE_RULE (rule, gref, nref);
-                 grefx = gref % 3, nrefx = nref % 3;
-                 grefy = gref / 3, nrefy = nref / 3;
-
-                 left = (leftmost
-                         + grefx * (rightmost - leftmost) / 2
-                         - nrefx * width / 2);
-                 btm = ((grefy == 0 ? highest
-                         : grefy == 1 ? 0
-                         : grefy == 2 ? lowest
-                         : (highest + lowest) / 2)
-                        - (nrefy == 0 ? ascent + descent
-                           : nrefy == 1 ? descent - boff
-                           : nrefy == 2 ? 0
-                           : (ascent + descent) / 2));
-               }
-
-             cmp->offsets[i * 2] = left;
-             cmp->offsets[i * 2 + 1] = btm + descent;
-
-             /* Update the bounding box of the overall glyphs. */
-             right = left + width;
-             top = btm + descent + ascent;
-             if (left < leftmost)
-               leftmost = left;
-             if (right > rightmost)
-               rightmost = right;
-             if (top > highest)
-               highest = top;
-             if (btm < lowest)
-               lowest = btm;
            }
 
          /* If there are glyphs whose x-offsets are negative,
@@ -21059,6 +21338,21 @@ x_produce_glyphs (it)
              for (i = 0; i < cmp->glyph_len; i++)
                cmp->offsets[i * 2] -= leftmost;
              rightmost -= leftmost;
+             cmp->lbearing -= leftmost;
+             cmp->rbearing -= leftmost;
+           }
+
+         if (left_padded && cmp->lbearing < 0)
+           {
+             for (i = 0; i < cmp->glyph_len; i++)
+               cmp->offsets[i * 2] -= cmp->lbearing;
+             rightmost -= cmp->lbearing;
+             cmp->rbearing -= cmp->lbearing;
+             cmp->lbearing = 0;
+           }
+         if (right_padded && rightmost < cmp->rbearing)
+           {
+             rightmost = cmp->rbearing;
            }
 
          cmp->pixel_width = rightmost;
@@ -21070,6 +21364,11 @@ x_produce_glyphs (it)
            cmp->descent = font_descent;
        }
 
+      if (it->glyph_row
+         && (cmp->lbearing < 0
+             || cmp->rbearing > cmp->pixel_width))
+       it->glyph_row->contains_overlapping_glyphs_p = 1;
+
       it->pixel_width = cmp->pixel_width;
       it->ascent = it->phys_ascent = cmp->ascent;
       it->descent = it->phys_descent = cmp->descent;
@@ -21180,7 +21479,8 @@ x_insert_glyphs (start, len)
   int line_height, shift_by_width, shifted_region_width;
   struct glyph_row *row;
   struct glyph *glyph;
-  int frame_x, frame_y, hpos;
+  int frame_x, frame_y;
+  EMACS_INT hpos;
 
   xassert (updated_window && updated_row);
   BLOCK_INPUT;
@@ -22138,7 +22438,7 @@ cursor_in_mouse_face_p (w)
 static int
 fast_find_position (w, charpos, hpos, vpos, x, y, stop)
      struct window *w;
-     int charpos;
+     EMACS_INT charpos;
      int *hpos, *vpos, *x, *y;
      Lisp_Object stop;
 {
@@ -22226,7 +22526,7 @@ fast_find_position (w, charpos, hpos, vpos, x, y, stop)
 static int
 fast_find_position (w, pos, hpos, vpos, x, y, stop)
      struct window *w;
-     int pos;
+     EMACS_INT pos;
      int *hpos, *vpos, *x, *y;
      Lisp_Object stop;
 {
@@ -22340,7 +22640,7 @@ fast_find_position (w, pos, hpos, vpos, x, y, stop)
 static int
 fast_find_string_pos (w, pos, object, hpos, vpos, x, y, right_p)
      struct window *w;
-     int pos;
+     EMACS_INT pos;
      Lisp_Object object;
      int *hpos, *vpos, *x, *y;
      int right_p;
@@ -23501,10 +23801,11 @@ expose_line (w, row, r)
    LAST_OVERLAPPING_ROW is the last such row.  */
 
 static void
-expose_overlaps (w, first_overlapping_row, last_overlapping_row)
+expose_overlaps (w, first_overlapping_row, last_overlapping_row, r)
      struct window *w;
      struct glyph_row *first_overlapping_row;
      struct glyph_row *last_overlapping_row;
+     XRectangle *r;
 {
   struct glyph_row *row;
 
@@ -23513,6 +23814,7 @@ expose_overlaps (w, first_overlapping_row, last_overlapping_row)
       {
        xassert (row->enabled_p && !row->mode_line_p);
 
+       row->clip = r;
        if (row->used[LEFT_MARGIN_AREA])
          x_fix_overlapping_area (w, row, LEFT_MARGIN_AREA, OVERLAPS_BOTH);
 
@@ -23521,6 +23823,7 @@ expose_overlaps (w, first_overlapping_row, last_overlapping_row)
 
        if (row->used[RIGHT_MARGIN_AREA])
          x_fix_overlapping_area (w, row, RIGHT_MARGIN_AREA, OVERLAPS_BOTH);
+       row->clip = NULL;
       }
 }
 
@@ -23704,8 +24007,22 @@ expose_window (w, fr)
                  last_overlapping_row = row;
                }
 
+             row->clip = fr;
              if (expose_line (w, row, &r))
                mouse_face_overwritten_p = 1;
+             row->clip = NULL;
+           }
+         else if (row->overlapping_p)
+           {
+             /* We must redraw a row overlapping the exposed area.  */
+             if (y0 < r.y
+                 ? y0 + row->phys_height > r.y
+                 : y0 + row->ascent - row->phys_ascent < r.y +r.height)
+               {
+                 if (first_overlapping_row == NULL)
+                   first_overlapping_row = row;
+                 last_overlapping_row = row;
+               }
            }
 
          if (y1 >= yb)
@@ -23726,7 +24043,8 @@ expose_window (w, fr)
        {
          /* Fix the display of overlapping rows.  */
          if (first_overlapping_row)
-           expose_overlaps (w, first_overlapping_row, last_overlapping_row);
+           expose_overlaps (w, first_overlapping_row, last_overlapping_row,
+                            fr);
 
          /* Draw border between windows.  */
          x_draw_vertical_border (w);
index c4b19c71bb17ba674127d7f988ecdc6458f997ef..853a3867f63898c545513f0906902f89f84dd063 100644 (file)
@@ -56,7 +56,7 @@ Boston, MA 02110-1301, USA.  */
    13. Whether or not a box should be drawn around characters, the box
    type, and, for simple boxes, in what color.
 
-   14. Font or fontset pattern, or nil.  This is a special attribute.
+   14. Font pattern, or nil.  This is a special attribute.
    When this attribute is specified, the face uses a font opened by
    that pattern as is.  In addition, all the other font-related
    attributes (1st thru 5th) are generated from the opened font name.
@@ -72,6 +72,8 @@ Boston, MA 02110-1301, USA.  */
    and is used to ensure that a font specified on the command line,
    for example, can be matched exactly.
 
+   17. A fontset name.
+
    Faces are frame-local by nature because Emacs allows to define the
    same named face (face names are symbols) differently for different
    frames.  Each frame has an alist of face definitions for all named
@@ -123,7 +125,7 @@ Boston, MA 02110-1301, USA.  */
    is realized, it inherits (thus shares) a fontset of an ASCII face
    that has the same attributes other than font-related ones.
 
-   Thus, all realized face have a realized fontset.
+   Thus, all realized faces have a realized fontset.
 
 
    Unibyte text.
@@ -198,6 +200,7 @@ Boston, MA 02110-1301, USA.  */
 #include <stdio.h>              /* This needs to be before termchar.h */
 
 #include "lisp.h"
+#include "character.h"
 #include "charset.h"
 #include "keyboard.h"
 #include "frame.h"
@@ -246,6 +249,10 @@ Boston, MA 02110-1301, USA.  */
 #include "intervals.h"
 #include "termchar.h"
 
+#ifdef HAVE_WINDOW_SYSTEM
+#include "font.h"
+#endif /* HAVE_WINDOW_SYSTEM */
+
 #ifdef HAVE_X_WINDOWS
 
 /* Compensate for a bug in Xos.h on some systems, on which it requires
@@ -305,6 +312,7 @@ Lisp_Object QCinverse_video, QCforeground, QCbackground, QCstipple;
 Lisp_Object QCwidth, QCfont, QCbold, QCitalic;
 Lisp_Object QCreverse_video;
 Lisp_Object QCoverline, QCstrike_through, QCbox, QCinherit;
+Lisp_Object QCfontset;
 
 /* Symbols used for attribute values.  */
 
@@ -488,7 +496,7 @@ static int get_lface_attributes P_ ((struct frame *, Lisp_Object, Lisp_Object *,
 static int load_pixmap P_ ((struct frame *, Lisp_Object, unsigned *, unsigned *));
 static unsigned char *xstrlwr P_ ((unsigned char *));
 static struct frame *frame_or_selected_frame P_ ((Lisp_Object, int));
-static void load_face_font P_ ((struct frame *, struct face *, int));
+static void load_face_font P_ ((struct frame *, struct face *));
 static void load_face_colors P_ ((struct frame *, struct face *, Lisp_Object *));
 static void free_face_colors P_ ((struct frame *, struct face *));
 static int face_color_gray_p P_ ((struct frame *, char *));
@@ -501,18 +509,17 @@ static int font_list_1 P_ ((struct frame *, Lisp_Object, Lisp_Object,
                            Lisp_Object, struct font_name **));
 static int font_list P_ ((struct frame *, Lisp_Object, Lisp_Object,
                          Lisp_Object, struct font_name **));
-static int try_font_list P_ ((struct frame *, Lisp_Object *,
-                             Lisp_Object, Lisp_Object, struct font_name **,
-                             int));
+static int try_font_list P_ ((struct frame *, Lisp_Object,
+                             Lisp_Object, Lisp_Object, struct font_name **));
 static int try_alternative_families P_ ((struct frame *f, Lisp_Object,
                                         Lisp_Object, struct font_name **));
 static int cmp_font_names P_ ((const void *, const void *));
-static struct face *realize_face P_ ((struct face_cache *, Lisp_Object *, int,
-                                     struct face *, int));
-static struct face *realize_x_face P_ ((struct face_cache *,
-                                       Lisp_Object *, int, struct face *));
-static struct face *realize_tty_face P_ ((struct face_cache *,
-                                         Lisp_Object *, int));
+static struct face *realize_face P_ ((struct face_cache *, Lisp_Object *,
+                                     int));
+static struct face *realize_non_ascii_face P_ ((struct frame *, int,
+                                               struct face *));
+static struct face *realize_x_face P_ ((struct face_cache *, Lisp_Object *));
+static struct face *realize_tty_face P_ ((struct face_cache *, Lisp_Object *));
 static int realize_basic_faces P_ ((struct frame *));
 static int realize_default_face P_ ((struct frame *));
 static void realize_named_face P_ ((struct frame *, Lisp_Object, int));
@@ -522,23 +529,22 @@ static unsigned hash_string_case_insensitive P_ ((Lisp_Object));
 static unsigned lface_hash P_ ((Lisp_Object *));
 static int lface_same_font_attributes_p P_ ((Lisp_Object *, Lisp_Object *));
 static struct face_cache *make_face_cache P_ ((struct frame *));
-static void free_realized_face P_ ((struct frame *, struct face *));
 static void clear_face_gcs P_ ((struct face_cache *));
 static void free_face_cache P_ ((struct face_cache *));
 static int face_numeric_weight P_ ((Lisp_Object));
 static int face_numeric_slant P_ ((Lisp_Object));
 static int face_numeric_swidth P_ ((Lisp_Object));
 static int face_fontset P_ ((Lisp_Object *));
-static char *choose_face_font P_ ((struct frame *, Lisp_Object *, int, int, int*));
 static void merge_face_vectors P_ ((struct frame *, Lisp_Object *, Lisp_Object*,
                                    struct named_merge_point *));
 static int merge_face_ref P_ ((struct frame *, Lisp_Object, Lisp_Object *,
                               int, struct named_merge_point *));
 static int set_lface_from_font_name P_ ((struct frame *, Lisp_Object,
                                         Lisp_Object, int, int));
+static void set_lface_from_font_and_fontset P_ ((struct frame *, Lisp_Object,
+                                                Lisp_Object, int, int));
 static Lisp_Object lface_from_face_name P_ ((struct frame *, Lisp_Object, int));
 static struct face *make_realized_face P_ ((Lisp_Object *));
-static void free_realized_faces P_ ((struct face_cache *));
 static char *best_matching_font P_ ((struct frame *, Lisp_Object *,
                                     struct font_name *, int, int, int *));
 static void cache_face P_ ((struct face_cache *, struct face *, unsigned));
@@ -973,6 +979,9 @@ clear_face_cache (clear_fonts_p)
     {
       struct x_display_info *dpyinfo;
 
+#ifdef USE_FONT_BACKEND
+      if (! enable_font_backend)
+#endif /* USE_FONT_BACKEND */
       /* Fonts are common for frames on one display, i.e. on
         one X screen.  */
       for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next)
@@ -1219,30 +1228,32 @@ load_pixmap (f, name, w_ptr, h_ptr)
 
 #ifdef HAVE_WINDOW_SYSTEM
 
-/* Load font of face FACE which is used on frame F to display
-   character C.  The name of the font to load is determined by lface
-   and fontset of FACE.  */
+/* Load font of face FACE which is used on frame F to display ASCII
+   characters.  The name of the font to load is determined by lface.  */
 
 static void
-load_face_font (f, face, c)
+load_face_font (f, face)
      struct frame *f;
      struct face *face;
-     int c;
 {
   struct font_info *font_info = NULL;
   char *font_name;
   int needs_overstrike;
 
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    abort ();
+#endif /* USE_FONT_BACKEND */
   face->font_info_id = -1;
   face->font = NULL;
+  face->font_name = NULL;
 
-  font_name = choose_face_font (f, face->lface, face->fontset, c,
-                               &needs_overstrike);
+  font_name = choose_face_font (f, face->lface, Qnil, &needs_overstrike);
   if (!font_name)
     return;
 
   BLOCK_INPUT;
-  font_info = FS_LOAD_FACE_FONT (f, c, font_name, face);
+  font_info = FS_LOAD_FONT (f, font_name);
   UNBLOCK_INPUT;
 
   if (font_info)
@@ -1383,7 +1394,7 @@ tty_defined_color (f, color_name, color_def, alloc)
   color_def->green = 0;
 
   if (*color_name)
-    status = tty_lookup_color (f, build_string (color_name), color_def, 0);
+    status = tty_lookup_color (f, build_string (color_name), color_def, NULL);
 
   if (color_def->pixel == FACE_TTY_DEFAULT_COLOR && *color_name)
     {
@@ -2127,7 +2138,7 @@ face_value (table, dim, symbol)
 static INLINE int
 face_numeric_value (table, dim, symbol)
      struct table_entry *table;
-     int dim;
+     size_t dim;
      Lisp_Object symbol;
 {
   struct table_entry *p = face_value (table, dim, symbol);
@@ -2168,9 +2179,117 @@ face_numeric_swidth (width)
   return face_numeric_value (swidth_table, DIM (swidth_table), width);
 }
 
-
 #ifdef HAVE_WINDOW_SYSTEM
 
+#ifdef USE_FONT_BACKEND
+static INLINE Lisp_Object
+face_symbolic_value (table, dim, font_prop)
+     struct table_entry *table;
+     int dim;
+     Lisp_Object font_prop;
+{
+  struct table_entry *p;
+  char *s = SDATA (SYMBOL_NAME (font_prop));
+  int low, mid, high, cmp;
+
+  low = 0;
+  high = dim - 1;
+
+  while (low <= high)
+    {
+      mid = (low + high) / 2;
+      cmp = strcmp (table[mid].name, s);
+
+      if (cmp < 0)
+       low = mid + 1;
+      else if (cmp > 0)
+       high = mid - 1;
+      else
+       return *table[mid].symbol;
+    }
+
+  return Qnil;
+}
+
+static INLINE Lisp_Object
+face_symbolic_weight (weight)
+     Lisp_Object weight;
+{
+  return face_symbolic_value (weight_table, DIM (weight_table), weight);
+}
+
+static INLINE Lisp_Object
+face_symbolic_slant (slant)
+     Lisp_Object slant;
+{
+  return face_symbolic_value (slant_table, DIM (slant_table), slant);
+}
+
+static INLINE Lisp_Object
+face_symbolic_swidth (width)
+     Lisp_Object width;
+{
+  return face_symbolic_value (swidth_table, DIM (swidth_table), width);
+}
+#endif /* USE_FONT_BACKEND */
+
+Lisp_Object
+split_font_name_into_vector (fontname)
+     Lisp_Object fontname;
+{
+  struct font_name font;
+  Lisp_Object vec;
+  int i;
+
+  font.name = LSTRDUPA (fontname);
+  if (! split_font_name (NULL, &font, 0))
+    return Qnil;
+  vec = Fmake_vector (make_number (XLFD_LAST), Qnil);
+  for (i = 0; i < XLFD_LAST; i++)
+    if (font.fields[i][0] != '*')
+      ASET (vec, i, build_string (font.fields[i]));
+  return vec;
+}
+
+Lisp_Object
+build_font_name_from_vector (vec)
+     Lisp_Object vec;
+{
+  struct font_name font;
+  Lisp_Object fontname;
+  char *p;
+  int i;
+
+  for (i = 0; i < XLFD_LAST; i++)
+    {
+      font.fields[i] = (NILP (AREF (vec, i))
+                       ? "*" : (char *) SDATA (AREF (vec, i)));
+      if ((i == XLFD_FAMILY || i == XLFD_REGISTRY)
+         && (p = strchr (font.fields[i], '-')))
+       {
+         char *p1 = STRDUPA (font.fields[i]);
+
+         p1[p - font.fields[i]] = '\0';
+         if (i == XLFD_FAMILY)
+           {
+             font.fields[XLFD_FOUNDRY] = p1;
+             font.fields[XLFD_FAMILY] = p + 1;
+           }
+         else
+           {
+             font.fields[XLFD_REGISTRY] = p1;
+             font.fields[XLFD_ENCODING] = p + 1;
+             break;
+           }
+       }
+    }
+
+  p = build_font_name (&font);
+  fontname = build_string (p);
+  xfree (p);
+  return fontname;
+}
+
 /* Return non-zero if FONT is the name of a fixed-pitch font.  */
 
 static INLINE int
@@ -2193,7 +2312,9 @@ xlfd_fixed_p (font)
    72dpi versions, only.)
 
    Value is the real point size of FONT on frame F, or 0 if it cannot
-   be determined.  */
+   be determined.
+
+   By side effect, set FONT->numeric[XLFD_PIXEL_SIZE].  */
 
 static INLINE int
 xlfd_point_size (f, font)
@@ -2232,6 +2353,7 @@ xlfd_point_size (f, font)
   else
     pixel = atoi (pixel_field);
 
+  font->numeric[XLFD_PIXEL_SIZE] = pixel;
   if (pixel == 0)
     real_pt = 0;
   else
@@ -2718,12 +2840,12 @@ cmp_font_names (a, b)
 }
 
 
-/* Get a sorted list of fonts of family FAMILY on frame F.  If PATTERN
-   is non-nil list fonts matching that pattern.  Otherwise, if
-   REGISTRY is non-nil return only fonts with that registry, otherwise
-   return fonts of any registry.  Set *FONTS to a vector of font_name
-   structures allocated from the heap containing the fonts found.
-   Value is the number of fonts found.  */
+/* Get a sorted list of fonts matching PATTERN on frame F.  If PATTERN
+   is nil, list fonts matching FAMILY and REGISTRY.  FAMILY is a
+   family name string or nil.  REGISTRY is a registry name string.
+   Set *FONTS to a vector of font_name structures allocated from the
+   heap containing the fonts found.  Value is the number of fonts
+   found.  */
 
 static int
 font_list_1 (f, pattern, family, registry, fonts)
@@ -2784,10 +2906,11 @@ concat_font_list (fonts1, nfonts1, fonts2, nfonts2)
 
 /* Get a sorted list of fonts of family FAMILY on frame F.
 
-   If PATTERN is non-nil list fonts matching that pattern.
+   If PATTERN is non-nil, list fonts matching that pattern.
 
-   If REGISTRY is non-nil, return fonts with that registry and the
-   alternative registries from Vface_alternative_font_registry_alist.
+   If REGISTRY is non-nil, it is a list of registry (and encoding)
+   names.  Return fonts with those registries and the alternative
+   registries from Vface_alternative_font_registry_alist.
 
    If REGISTRY is nil return fonts of any registry.
 
@@ -2801,35 +2924,37 @@ font_list (f, pattern, family, registry, fonts)
      Lisp_Object pattern, family, registry;
      struct font_name **fonts;
 {
-  int nfonts = font_list_1 (f, pattern, family, registry, fonts);
+  int nfonts;
+  int reg_prio;
+  int i;
+
+  if (NILP (registry))
+    return font_list_1 (f, pattern, family, registry, fonts);
 
-  if (!NILP (registry)
-      && CONSP (Vface_alternative_font_registry_alist))
+  for (reg_prio = 0, nfonts = 0; CONSP (registry); registry = XCDR (registry))
     {
-      Lisp_Object alter;
+      Lisp_Object elt, alter;
+      int nfonts2;
+      struct font_name *fonts2;
 
-      alter = Fassoc (registry, Vface_alternative_font_registry_alist);
-      if (CONSP (alter))
+      elt = XCAR (registry);
+      alter = Fassoc (elt, Vface_alternative_font_registry_alist);
+      if (NILP (alter))
+       alter = Fcons (elt, Qnil);
+      for (; CONSP (alter); alter = XCDR (alter), reg_prio++)
        {
-         int reg_prio, i;
-
-         for (alter = XCDR (alter), reg_prio = 1;
-              CONSP (alter);
-              alter = XCDR (alter), reg_prio++)
-           if (STRINGP (XCAR (alter)))
-             {
-               int nfonts2;
-               struct font_name *fonts2;
-
-               nfonts2 = font_list_1 (f, pattern, family, XCAR (alter),
-                                      &fonts2);
+         nfonts2 = font_list_1 (f, pattern, family, XCAR (alter), &fonts2);
+         if (nfonts2 > 0)
+           {
+             if (reg_prio > 0)
                for (i = 0; i < nfonts2; i++)
                  fonts2[i].registry_priority = reg_prio;
-               *fonts = (nfonts > 0
-                         ? concat_font_list (*fonts, nfonts, fonts2, nfonts2)
-                         : fonts2);
-               nfonts += nfonts2;
-             }
+             if (nfonts > 0)
+               *fonts = concat_font_list (*fonts, nfonts, fonts2, nfonts2);
+             else
+               *fonts = fonts2;
+             nfonts += nfonts2;
+           }
        }
     }
 
@@ -3011,18 +3136,11 @@ the WIDTH times as wide as FACE on FRAME.  */)
     {
       /* This is of limited utility since it works with character
         widths.  Keep it for compatibility.  --gerd.  */
-      int face_id = lookup_named_face (f, face, 0, 0);
+      int face_id = lookup_named_face (f, face, 0);
       struct face *face = (face_id < 0
                           ? NULL
                           : FACE_FROM_ID (f, face_id));
 
-#ifdef WINDOWSNT
-/* For historic reasons, FONT_WIDTH refers to average width on W32,
-   not maximum as on X.  Redefine here. */
-#undef FONT_WIDTH
-#define FONT_WIDTH FONT_MAX_WIDTH
-#endif
-
       if (face && face->font)
        size = FONT_WIDTH (face->font);
       else
@@ -3070,6 +3188,7 @@ the WIDTH times as wide as FACE on FRAME.  */)
 #define LFACE_FONT(LFACE)          AREF ((LFACE), LFACE_FONT_INDEX)
 #define LFACE_INHERIT(LFACE)       AREF ((LFACE), LFACE_INHERIT_INDEX)
 #define LFACE_AVGWIDTH(LFACE)      AREF ((LFACE), LFACE_AVGWIDTH_INDEX)
+#define LFACE_FONTSET(LFACE)       AREF ((LFACE), LFACE_FONTSET_INDEX)
 
 /* Non-zero if LFACE is a Lisp face.  A Lisp face is a vector of size
    LFACE_VECTOR_SIZE which has the symbol `face' in slot 0.  */
@@ -3148,7 +3267,12 @@ check_lface_attrs (attrs)
   xassert (UNSPECIFIEDP (attrs[LFACE_FONT_INDEX])
           || IGNORE_DEFFACE_P (attrs[LFACE_FONT_INDEX])
           || NILP (attrs[LFACE_FONT_INDEX])
+#ifdef USE_FONT_BACKEND
+          || FONT_OBJECT_P (attrs[LFACE_FONT_INDEX])
+#endif /* USE_FONT_BACKEND */
           || STRINGP (attrs[LFACE_FONT_INDEX]));
+  xassert (UNSPECIFIEDP (attrs[LFACE_FONTSET_INDEX])
+          || STRINGP (attrs[LFACE_FONTSET_INDEX]));
 #endif
 }
 
@@ -3356,7 +3480,7 @@ lface_fully_specified_p (attrs)
 
   for (i = 1; i < LFACE_VECTOR_SIZE; ++i)
     if (i != LFACE_FONT_INDEX && i != LFACE_INHERIT_INDEX
-       && i != LFACE_AVGWIDTH_INDEX)
+       && i != LFACE_AVGWIDTH_INDEX && i != LFACE_FONTSET_INDEX)
       if ((UNSPECIFIEDP (attrs[i]) || IGNORE_DEFFACE_P (attrs[i]))
 #ifdef MAC_OS
         /* MAC_TODO: No stipple support on Mac OS yet, this index is
@@ -3400,8 +3524,15 @@ set_lface_from_font_name (f, lface, fontname, force_p, may_fail_p)
 
   /* If FONTNAME is actually a fontset name, get ASCII font name of it.  */
   fontset = fs_query_fontset (fontname, 0);
-  if (fontset >= 0)
+
+  if (fontset > 0)
     font_name = SDATA (fontset_ascii (fontset));
+  else if (fontset == 0)
+    {
+      if (may_fail_p)
+       return 0;
+      abort ();
+    }
 
   /* Check if FONT_NAME is surely available on the system.  Usually
      FONT_NAME is already cached for the frame F and FS_LOAD_FONT
@@ -3409,7 +3540,7 @@ set_lface_from_font_name (f, lface, fontname, force_p, may_fail_p)
      caching it now is not futail because we anyway load the font
      later.  */
   BLOCK_INPUT;
-  font_info = FS_LOAD_FONT (f, 0, font_name, -1);
+  font_info = FS_LOAD_FONT (f, font_name);
   UNBLOCK_INPUT;
 
   if (!font_info)
@@ -3471,11 +3602,103 @@ set_lface_from_font_name (f, lface, fontname, force_p, may_fail_p)
     LFACE_SLANT (lface)
       = have_xlfd_p ? xlfd_symbolic_slant (&font) : Qnormal;
 
-  LFACE_FONT (lface) = fontname;
-
+  if (fontset > 0)
+    {
+      LFACE_FONT (lface) = build_string (font_info->full_name);
+      LFACE_FONTSET (lface) = fontset_name (fontset);
+    }
+  else
+    {
+      LFACE_FONT (lface) = fontname;
+      fontset
+       = new_fontset_from_font_name (build_string (font_info->full_name));
+      LFACE_FONTSET (lface) = fontset_name (fontset);
+    }
   return 1;
 }
 
+#ifdef USE_FONT_BACKEND
+/* Set font-related attributes of Lisp face LFACE from FONT-OBJECT and
+   FONTSET.  If FORCE_P is zero, set only unspecified attributes of
+   LFACE.  The exceptions are `font' and `fontset' attributes.  They
+   are set regardless of FORCE_P.  */
+
+static void
+set_lface_from_font_and_fontset (f, lface, font_object, fontset, force_p)
+     struct frame *f;
+     Lisp_Object lface, font_object;
+     int fontset;
+     int force_p;
+{
+  struct font *font = XSAVE_VALUE (font_object)->pointer;
+  Lisp_Object entity = font->entity;
+  Lisp_Object val;
+
+  /* Set attributes only if unspecified, otherwise face defaults for
+     new frames would never take effect.  If the font doesn't have a
+     specific property, set a normal value for that.  */
+
+  if (force_p || UNSPECIFIEDP (LFACE_FAMILY (lface)))
+    {
+      Lisp_Object foundry = AREF (entity, FONT_FOUNDRY_INDEX);
+      Lisp_Object family = AREF (entity, FONT_FAMILY_INDEX);
+
+      if (! NILP (foundry))
+       {
+         if (! NILP (family))
+           val = concat3 (SYMBOL_NAME (foundry), build_string ("-"),
+                          SYMBOL_NAME (family));
+         else
+           val = concat2 (SYMBOL_NAME (foundry), build_string ("-*"));
+       }
+      else
+       {
+         if (! NILP (family))
+           val = SYMBOL_NAME (family);
+         else
+           val = build_string ("*");
+       }
+      LFACE_FAMILY (lface) = val;
+    }
+
+  if (force_p || UNSPECIFIEDP (LFACE_HEIGHT (lface)))
+    {
+      int pt = pixel_point_size (f, font->pixel_size * 10);
+
+      xassert (pt > 0);
+      LFACE_HEIGHT (lface) = make_number (pt);
+    }
+
+  if (force_p || UNSPECIFIEDP (LFACE_AVGWIDTH (lface)))
+    LFACE_AVGWIDTH (lface) = make_number (font->font.average_width);
+
+  if (force_p || UNSPECIFIEDP (LFACE_WEIGHT (lface)))
+    {
+      Lisp_Object weight = font_symbolic_weight (entity);
+
+      val = NILP (weight) ? Qnormal : face_symbolic_weight (weight);
+      LFACE_WEIGHT (lface) = ! NILP (val) ? val : weight;
+    }
+  if (force_p || UNSPECIFIEDP (LFACE_SLANT (lface)))
+    {
+      Lisp_Object slant = font_symbolic_slant (entity);
+
+      val = NILP (slant) ? Qnormal : face_symbolic_slant (slant);
+      LFACE_SLANT (lface) = ! NILP (val) ? val : slant;
+    }
+  if (force_p || UNSPECIFIEDP (LFACE_SWIDTH (lface)))
+    {
+      Lisp_Object width = font_symbolic_width (entity);
+
+      val = NILP (width) ? Qnormal : face_symbolic_swidth (width);
+      LFACE_SWIDTH (lface) = ! NILP (val) ? val : width;
+    }
+
+  LFACE_FONT (lface) = font_object;
+  LFACE_FONTSET (lface) = fontset_name (fontset);
+}
+#endif /* USE_FONT_BACKEND */
+
 #endif /* HAVE_WINDOW_SYSTEM */
 
 
@@ -4300,7 +4523,7 @@ FRAME 0 means change the face on all frames, and change the default
       LFACE_SWIDTH (lface) = value;
       font_related_attr_p = 1;
     }
-  else if (EQ (attr, QCfont))
+  else if (EQ (attr, QCfont) || EQ (attr, QCfontset))
     {
 #ifdef HAVE_WINDOW_SYSTEM
       if (EQ (frame, Qt) || FRAME_WINDOW_P (XFRAME (frame)))
@@ -4315,6 +4538,48 @@ FRAME 0 means change the face on all frames, and change the default
          else
            f = check_x_frame (frame);
 
+#ifdef USE_FONT_BACKEND
+         if (enable_font_backend
+             && !UNSPECIFIEDP (value) && !IGNORE_DEFFACE_P (value))
+           {
+             int fontset;
+
+             if (EQ (attr, QCfontset))
+               {
+                 Lisp_Object fontset_name = Fquery_fontset (value, Qnil);
+
+                 if (NILP (fontset_name))
+                   signal_error ("Invalid fontset name", value);
+                 LFACE_FONTSET (lface) = value;
+               }
+             else
+               {
+                 Lisp_Object font_object;
+
+                 if (FONT_OBJECT_P (value))
+                   {
+                     font_object = value;
+                     fontset = FRAME_FONTSET (f);
+                   }
+                 else
+                   {
+                     CHECK_STRING (value);
+
+                     fontset = fs_query_fontset (value, 0);
+                     if (fontset >= 0)
+                       value = fontset_ascii (fontset);
+                     else
+                       fontset = FRAME_FONTSET (f);
+                     font_object = font_open_by_name (f, SDATA (value));
+                     if (NILP (font_object))
+                       signal_error ("Invalid font", value);
+                   }
+                 set_lface_from_font_and_fontset (f, lface, font_object,
+                                                  fontset, 1);
+               }
+           }
+         else
+#endif /* USE_FONT_BACKEND */
          if (!UNSPECIFIEDP (value) && !IGNORE_DEFFACE_P (value))
            {
              CHECK_STRING (value);
@@ -4324,9 +4589,16 @@ FRAME 0 means change the face on all frames, and change the default
              tmp = Fquery_fontset (value, Qnil);
              if (!NILP (tmp))
                value = tmp;
+             else if (EQ (attr, QCfontset))
+               signal_error ("Invalid fontset name", value);
 
-             if (!set_lface_from_font_name (f, lface, value, 1, 1))
-               signal_error ("Invalid font or fontset name", value);
+             if (EQ (attr, QCfont))
+               {
+                 if (!set_lface_from_font_name (f, lface, value, 1, 1))
+                   signal_error ("Invalid font or fontset name", value);
+               }
+             else
+               LFACE_FONTSET (lface) = value;
            }
 
          font_attr_p = 1;
@@ -4378,6 +4650,7 @@ FRAME 0 means change the face on all frames, and change the default
   if (!EQ (frame, Qt)
       && NILP (Fget (face, Qface_no_inherit))
       && (EQ (attr, QCfont)
+         || EQ (attr, QCfontset)
          || NILP (Fequal (old_value, value))))
     {
       ++face_change_count;
@@ -4485,7 +4758,7 @@ FRAME 0 means change the face on all frames, and change the default
 #ifdef HAVE_WINDOW_SYSTEM
 
 /* Set the `font' frame parameter of FRAME determined from `default'
-   face attributes LFACE.  If a face or fontset name is explicitely
+   face attributes LFACE.  If a font name is explicitely
    specfied in LFACE, use it as is.  Otherwise, determine a font name
    from the other font-related atrributes of LFACE.  In that case, if
    there's no matching font, signals an error.  */
@@ -4503,12 +4776,30 @@ set_font_frame_param (frame, lface)
 
       if (STRINGP (LFACE_FONT (lface)))
        font_name = LFACE_FONT (lface);
+#ifdef USE_FONT_BACKEND
+      else if (enable_font_backend)
+       {
+         /* We set FONT_NAME to a font-object.  */
+         if (FONT_OBJECT_P (LFACE_FONT (lface)))
+           font_name = LFACE_FONT (lface);
+         else
+           {
+             font_name = font_find_for_lface (f, &AREF (lface, 0), Qnil, -1);
+             if (NILP (font_name))
+               error ("No font matches the specified attribute");
+             font_name = font_open_for_lface (f, font_name, &AREF (lface, 0),
+                                              Qnil);
+             if (NILP (font_name))
+               error ("No font matches the specified attribute");
+           }
+       }
+#endif
       else
        {
          /* Choose a font name that reflects LFACE's attributes and has
             the registry and encoding pattern specified in the default
             fontset (3rd arg: -1) for ASCII characters (4th arg: 0).  */
-         font = choose_face_font (f, XVECTOR (lface)->contents, -1, 0, 0);
+         font = choose_face_font (f, XVECTOR (lface)->contents, Qnil, NULL);
          if (!font)
            error ("No font matches the specified attribute");
          font_name = build_string (font);
@@ -4891,6 +5182,8 @@ frames).  If FRAME is omitted or nil, use the selected frame.  */)
     value = LFACE_INHERIT (lface);
   else if (EQ (keyword, QCfont))
     value = LFACE_FONT (lface);
+  else if (EQ (keyword, QCfontset))
+    value = LFACE_FONTSET (lface);
   else
     signal_error ("Invalid face attribute name", keyword);
 
@@ -4995,15 +5288,18 @@ Default face attributes override any local face attributes.  */)
    return fonts with the same size as the font of a face.  This is
    done in fontset.el.  */
 
-DEFUN ("face-font", Fface_font, Sface_font, 1, 2, 0,
+DEFUN ("face-font", Fface_font, Sface_font, 1, 3, 0,
        doc: /* Return the font name of face FACE, or nil if it is unspecified.
+The font name is, by default, for ASCII characters.
 If the optional argument FRAME is given, report on face FACE in that frame.
 If FRAME is t, report on the defaults for face FACE (for new frames).
   The font default for a face is either nil, or a list
   of the form (bold), (italic) or (bold italic).
-If FRAME is omitted or nil, use the selected frame.  */)
-     (face, frame)
-     Lisp_Object face, frame;
+If FRAME is omitted or nil, use the selected frame.  And, in this case,
+if the optional third argument CHARACTER is given,
+return the font name used for CHARACTER.  */)
+     (face, frame, character)
+     Lisp_Object face, frame, character;
 {
   if (EQ (frame, Qt))
     {
@@ -5023,9 +5319,23 @@ If FRAME is omitted or nil, use the selected frame.  */)
   else
     {
       struct frame *f = frame_or_selected_frame (frame, 1);
-      int face_id = lookup_named_face (f, face, 0, 1);
+      int face_id = lookup_named_face (f, face, 1);
       struct face *face = FACE_FROM_ID (f, face_id);
-      return face ? build_string (face->font_name) : Qnil;
+
+      if (! face)
+       return Qnil;
+#ifdef HAVE_WINDOW_SYSTEM
+      if (FRAME_WINDOW_P (f) && !NILP (character))
+       {
+         CHECK_CHARACTER (character);
+         face_id = FACE_FOR_CHAR (f, face, XINT (character), -1, Qnil);
+         face = FACE_FROM_ID (f, face_id);
+         return (face->font && face->font_name
+                 ? build_string (face->font_name)
+                 : Qnil);
+       }
+#endif
+      return build_string (face->font_name);
     }
 }
 
@@ -5188,8 +5498,8 @@ lface_hash (v)
 
 /* Return non-zero if LFACE1 and LFACE2 specify the same font (without
    considering charsets/registries).  They do if they specify the same
-   family, point size, weight, width, slant, and fontset.  Both LFACE1
-   and LFACE2 must be fully-specified.  */
+   family, point size, weight, width, slant, font, and fontset.  Both
+   LFACE1 and LFACE2 must be fully-specified.  */
 
 static INLINE int
 lface_same_font_attributes_p (lface1, lface2)
@@ -5207,8 +5517,14 @@ lface_same_font_attributes_p (lface1, lface2)
          && (EQ (lface1[LFACE_FONT_INDEX], lface2[LFACE_FONT_INDEX])
              || (STRINGP (lface1[LFACE_FONT_INDEX])
                  && STRINGP (lface2[LFACE_FONT_INDEX])
-                 && xstricmp (SDATA (lface1[LFACE_FONT_INDEX]),
-                              SDATA (lface2[LFACE_FONT_INDEX])))));
+                 && ! xstricmp (SDATA (lface1[LFACE_FONT_INDEX]),
+                                SDATA (lface2[LFACE_FONT_INDEX]))))
+         && (EQ (lface1[LFACE_FONTSET_INDEX], lface2[LFACE_FONTSET_INDEX])
+             || (STRINGP (lface1[LFACE_FONTSET_INDEX])
+                 && STRINGP (lface2[LFACE_FONTSET_INDEX])
+                 && ! xstricmp (SDATA (lface1[LFACE_FONTSET_INDEX]),
+                                SDATA (lface2[LFACE_FONTSET_INDEX]))))
+         );
 }
 
 
@@ -5235,7 +5551,7 @@ make_realized_face (attr)
 /* Free realized face FACE, including its X resources.  FACE may
    be null.  */
 
-static void
+void
 free_realized_face (f, face)
      struct frame *f;
      struct face *face;
@@ -5251,6 +5567,10 @@ free_realized_face (f, face)
          if (face->gc)
            {
              BLOCK_INPUT;
+#ifdef USE_FONT_BACKEND
+             if (enable_font_backend && face->font_info)
+               font_done_for_face (f, face);
+#endif /* USE_FONT_BACKEND */
              x_free_gc (f, face->gc);
              face->gc = 0;
              UNBLOCK_INPUT;
@@ -5313,6 +5633,10 @@ prepare_face_for_display (f, face)
        }
 #endif
       face->gc = x_create_gc (f, mask, &xgcv);
+#ifdef USE_FONT_BACKEND
+      if (enable_font_backend && face->font)
+       font_prepare_for_face (f, face);
+#endif /* USE_FONT_BACKEND */
       UNBLOCK_INPUT;
     }
 #endif /* HAVE_WINDOW_SYSTEM */
@@ -5418,6 +5742,10 @@ clear_face_gcs (c)
          if (face && face->gc)
            {
              BLOCK_INPUT;
+#ifdef USE_FONT_BACKEND
+             if (enable_font_backend && face->font_info)
+               font_done_for_face (c->f, face);
+#endif /* USE_FONT_BACKEND */
              x_free_gc (c->f, face->gc);
              face->gc = 0;
              UNBLOCK_INPUT;
@@ -5472,11 +5800,10 @@ free_realized_faces (c)
 }
 
 
-/* Free all faces realized for multibyte characters on frame F that
-   has FONTSET.  */
+/* Free all realized faces that are using FONTSET on frame F.  */
 
 void
-free_realized_multibyte_face (f, fontset)
+free_realized_faces_for_fontset (f, fontset)
      struct frame *f;
      int fontset;
 {
@@ -5493,7 +5820,6 @@ free_realized_multibyte_face (f, fontset)
     {
       face = cache->faces_by_id[i];
       if (face
-         && face != face->ascii_face
          && face->fontset == fontset)
        {
          uncache_face (cache, face);
@@ -5551,10 +5877,11 @@ free_face_cache (c)
 
 
 /* Cache realized face FACE in face cache C.  HASH is the hash value
-   of FACE.  If FACE->fontset >= 0, add the new face to the end of the
-   collision list of the face hash table of C.  This is done because
-   otherwise lookup_face would find FACE for every character, even if
-   faces with the same attributes but for specific characters exist.  */
+   of FACE.  If FACE is for ASCII characters (i.e. FACE->ascii_face ==
+   FACE), insert the new face to the beginning of the collision list
+   of the face hash table of C.  Otherwise, add the new face to the
+   end of the collision list.  This way, lookup_face can quickly find
+   that a requested face is not cached.  */
 
 static void
 cache_face (c, face, hash)
@@ -5566,7 +5893,7 @@ cache_face (c, face, hash)
 
   face->hash = hash;
 
-  if (face->fontset >= 0)
+  if (face->ascii_face != face)
     {
       struct face *last = c->buckets[i];
       if (last)
@@ -5658,17 +5985,14 @@ uncache_face (c, face)
 
 
 /* Look up a realized face with face attributes ATTR in the face cache
-   of frame F.  The face will be used to display character C.  Value
-   is the ID of the face found.  If no suitable face is found, realize
-   a new one.  In that case, if C is a multibyte character, BASE_FACE
-   is a face that has the same attributes.  */
+   of frame F.  The face will be used to display ASCII characters.
+   Value is the ID of the face found.  If no suitable face is found,
+   realize a new one.  */
 
 INLINE int
-lookup_face (f, attr, c, base_face)
+lookup_face (f, attr)
      struct frame *f;
      Lisp_Object *attr;
-     int c;
-     struct face *base_face;
 {
   struct face_cache *cache = FRAME_FACE_CACHE (f);
   unsigned hash;
@@ -5683,44 +6007,121 @@ lookup_face (f, attr, c, base_face)
   i = hash % FACE_CACHE_BUCKETS_SIZE;
 
   for (face = cache->buckets[i]; face; face = face->next)
-    if (face->hash == hash
-       && (!FRAME_WINDOW_P (f)
-           || FACE_SUITABLE_FOR_CHAR_P (face, c))
-       && lface_equal_p (face->lface, attr))
-      break;
+    {
+      if (face->ascii_face != face)
+       {
+         /* There's no more ASCII face.  */
+         face = NULL;
+         break;
+       }
+      if (face->hash == hash
+         && lface_equal_p (face->lface, attr))
+       break;
+    }
 
   /* If not found, realize a new face.  */
   if (face == NULL)
-    face = realize_face (cache, attr, c, base_face, -1);
+    face = realize_face (cache, attr, -1);
 
 #if GLYPH_DEBUG
   xassert (face == FACE_FROM_ID (f, face->id));
+#endif /* GLYPH_DEBUG */
 
-/* When this function is called from face_for_char (in this case, C is
-   a multibyte character), a fontset of a face returned by
-   realize_face is not yet set, i.e. FACE_SUITABLE_FOR_CHAR_P (FACE,
-   C) is not sutisfied.  The fontset is set for this face by
-   face_for_char later.  */
-#if 0
-  if (FRAME_WINDOW_P (f))
-    xassert (FACE_SUITABLE_FOR_CHAR_P (face, c));
-#endif
+  return face->id;
+}
+
+#ifdef HAVE_WINDOW_SYSTEM
+/* Look up a realized face that has the same attributes as BASE_FACE
+   except for the font in the face cache of frame F.  If FONT_ID is
+   not negative, it is an ID number of an already opened font that is
+   used by the face.  If FONT_ID is negative, the face has no font.
+   Value is the ID of the face found.  If no suitable face is found,
+   realize a new one.  */
+
+int
+lookup_non_ascii_face (f, font_id, base_face)
+     struct frame *f;
+     int font_id;
+     struct face *base_face;
+{
+  struct face_cache *cache = FRAME_FACE_CACHE (f);
+  unsigned hash;
+  int i;
+  struct face *face;
+
+  xassert (cache != NULL);
+  base_face = base_face->ascii_face;
+  hash = lface_hash (base_face->lface);
+  i = hash % FACE_CACHE_BUCKETS_SIZE;
+
+  for (face = cache->buckets[i]; face; face = face->next)
+    {
+      if (face->ascii_face == face)
+       continue;
+      if (face->ascii_face == base_face
+         && face->font_info_id == font_id)
+       break;
+    }
+
+  /* If not found, realize a new face.  */
+  if (face == NULL)
+    face = realize_non_ascii_face (f, font_id, base_face);
+
+#if GLYPH_DEBUG
+  xassert (face == FACE_FROM_ID (f, face->id));
 #endif /* GLYPH_DEBUG */
 
   return face->id;
 }
 
+#ifdef USE_FONT_BACKEND
+int
+face_for_font (f, font, base_face)
+     struct frame *f;
+     struct font *font;
+     struct face *base_face;
+{
+  struct face_cache *cache = FRAME_FACE_CACHE (f);
+  unsigned hash;
+  int i;
+  struct face *face;
+
+  xassert (cache != NULL);
+  base_face = base_face->ascii_face;
+  hash = lface_hash (base_face->lface);
+  i = hash % FACE_CACHE_BUCKETS_SIZE;
+
+  for (face = cache->buckets[i]; face; face = face->next)
+    {
+      if (face->ascii_face == face)
+       continue;
+      if (face->ascii_face == base_face
+         && face->font == font->font.font
+         && face->font_info == (struct font_info *) font)
+       return face->id;
+    }
+
+  /* If not found, realize a new face.  */
+  face = realize_non_ascii_face (f, -1, base_face);
+  face->font = font->font.font;
+  face->font_info = (struct font_info *) font;
+  face->font_info_id = 0;
+  face->font_name = font->font.full_name;
+  return face->id;
+}
+#endif /* USE_FONT_BACKEND */
+
+#endif /* HAVE_WINDOW_SYSTEM */
 
 /* Return the face id of the realized face for named face SYMBOL on
-   frame F suitable for displaying character C.  Value is -1 if the
-   face couldn't be determined, which might happen if the default face
-   isn't realized and cannot be realized.  */
+   frame F suitable for displaying ASCII characters.  Value is -1 if
+   the face couldn't be determined, which might happen if the default
+   face isn't realized and cannot be realized.  */
 
 int
-lookup_named_face (f, symbol, c, signal_p)
+lookup_named_face (f, symbol, signal_p)
      struct frame *f;
      Lisp_Object symbol;
-     int c;
      int signal_p;
 {
   Lisp_Object attrs[LFACE_VECTOR_SIZE];
@@ -5742,7 +6143,7 @@ lookup_named_face (f, symbol, c, signal_p)
   bcopy (default_face->lface, attrs, sizeof attrs);
   merge_face_vectors (f, symbol_attrs, attrs, 0);
 
-  return lookup_face (f, attrs, c, NULL);
+  return lookup_face (f, attrs);
 }
 
 
@@ -5759,7 +6160,7 @@ ascii_face_of_lisp_face (f, lface_id)
   if (lface_id >= 0 && lface_id < lface_id_to_name_size)
     {
       Lisp_Object face_name = lface_id_to_name[lface_id];
-      face_id = lookup_named_face (f, face_name, 0, 1);
+      face_id = lookup_named_face (f, face_name, 1);
     }
   else
     face_id = -1;
@@ -5807,7 +6208,7 @@ smaller_face (f, face_id, steps)
       /* Look up a face for a slightly smaller/larger font.  */
       pt += delta;
       attrs[LFACE_HEIGHT_INDEX] = make_number (pt);
-      new_face_id = lookup_face (f, attrs, 0, NULL);
+      new_face_id = lookup_face (f, attrs);
       new_face = FACE_FROM_ID (f, new_face_id);
 
       /* If height changes, count that as one step.  */
@@ -5850,7 +6251,7 @@ face_with_height (f, face_id, height)
   face = FACE_FROM_ID (f, face_id);
   bcopy (face->lface, attrs, sizeof attrs);
   attrs[LFACE_HEIGHT_INDEX] = make_number (height);
-  face_id = lookup_face (f, attrs, 0, NULL);
+  face_id = lookup_face (f, attrs);
 #endif /* HAVE_WINDOW_SYSTEM */
 
   return face_id;
@@ -5858,17 +6259,16 @@ face_with_height (f, face_id, height)
 
 
 /* Return the face id of the realized face for named face SYMBOL on
-   frame F suitable for displaying character C, and use attributes of
-   the face FACE_ID for attributes that aren't completely specified by
-   SYMBOL.  This is like lookup_named_face, except that the default
-   attributes come from FACE_ID, not from the default face.  FACE_ID
-   is assumed to be already realized.  */
+   frame F suitable for displaying ASCII characters, and use
+   attributes of the face FACE_ID for attributes that aren't
+   completely specified by SYMBOL.  This is like lookup_named_face,
+   except that the default attributes come from FACE_ID, not from the
+   default face.  FACE_ID is assumed to be already realized.  */
 
 int
-lookup_derived_face (f, symbol, c, face_id, signal_p)
+lookup_derived_face (f, symbol, face_id, signal_p)
      struct frame *f;
      Lisp_Object symbol;
-     int c;
      int face_id;
      int signal_p;
 {
@@ -5882,7 +6282,7 @@ lookup_derived_face (f, symbol, c, face_id, signal_p)
   get_lface_attributes (f, symbol, symbol_attrs, signal_p);
   bcopy (default_face->lface, attrs, sizeof attrs);
   merge_face_vectors (f, symbol_attrs, attrs, 0);
-  return lookup_face (f, attrs, c, default_face);
+  return lookup_face (f, attrs);
 }
 
 DEFUN ("face-attributes-as-vector", Fface_attributes_as_vector,
@@ -5969,6 +6369,7 @@ x_supports_face_attributes_p (f, attrs, def_face)
       || !UNSPECIFIEDP (attrs[LFACE_SWIDTH_INDEX])
       || !UNSPECIFIEDP (attrs[LFACE_AVGWIDTH_INDEX]))
     {
+      int face_id;
       struct face *face;
       Lisp_Object merged_attrs[LFACE_VECTOR_SIZE];
 
@@ -5976,7 +6377,8 @@ x_supports_face_attributes_p (f, attrs, def_face)
 
       merge_face_vectors (f, attrs, merged_attrs, 0);
 
-      face = FACE_FROM_ID (f, lookup_face (f, merged_attrs, 0, 0));
+      face_id = lookup_face (f, merged_attrs);
+      face = FACE_FROM_ID (f, face_id);
 
       if (! face)
        error ("Cannot make face");
@@ -6258,7 +6660,7 @@ face for italic.  */)
                            Font selection
  ***********************************************************************/
 
-DEFUN ("internal-set-font-selection-order",
+ DEFUN ("internal-set-font-selection-order",
        Finternal_set_font_selection_order,
        Sinternal_set_font_selection_order, 1, 1, 0,
        doc: /* Set font selection order for face font selection to ORDER.
@@ -6314,6 +6716,10 @@ Value is ORDER.  */)
       free_all_realized_faces (Qnil);
     }
 
+#ifdef USE_FONT_BACKEND
+  font_update_sort_order (font_sort_order);
+#endif /* USE_FONT_BACKEND */
+
   return Qnil;
 }
 
@@ -6504,6 +6910,12 @@ build_scalable_font_name (f, font, specified_pt)
   double resy = FRAME_X_DISPLAY_INFO (f)->resy;
   double pt;
 
+  if (font->numeric[XLFD_PIXEL_SIZE] != 0
+      || font->numeric[XLFD_POINT_SIZE] != 0)
+    /* This is a scalable font but is requested for a specific size.
+       We should not change that size.  */
+    return build_font_name (font);
+
   /* If scalable font is for a specific resolution, compute
      the point size we must specify from the resolution of
      the display and the specified resolution of the font.  */
@@ -6776,78 +7188,62 @@ try_alternative_families (f, family, registry, fonts)
 
 /* Get a list of matching fonts on frame F.
 
-   FAMILY, if a string, specifies a font family derived from the fontset.
-   It is only used if the face does not specify any family in ATTRS or
-   if we cannot find any font of the face's family.
+   PATTERN, if a string, specifies a font name pattern to match while
+   ignoring FAMILY and REGISTRY.
 
-   REGISTRY, if a string, specifies a font registry and encoding to
-   match.  A value of nil means include fonts of any registry and
-   encoding.
+   FAMILY, if a list, specifies a list of font families to try.
 
-   If PREFER_FACE_FAMILY is nonzero, perfer face's family to FAMILY.
-   Otherwise, prefer FAMILY.
+   REGISTRY, if a list, specifies a list of font registries and
+   encodinging to try.
 
    Return in *FONTS a pointer to a vector of font_name structures for
    the fonts matched.  Value is the number of fonts found.  */
 
 static int
-try_font_list (f, attrs, family, registry, fonts, prefer_face_family)
+try_font_list (f, pattern, family, registry, fonts)
      struct frame *f;
-     Lisp_Object *attrs;
-     Lisp_Object family, registry;
+     Lisp_Object pattern, family, registry;
      struct font_name **fonts;
-     int prefer_face_family;
 {
   int nfonts = 0;
-  Lisp_Object face_family = attrs[LFACE_FAMILY_INDEX];
-  Lisp_Object try_family;
-
-  try_family = (prefer_face_family || NILP (family)) ? face_family : family;
 
-  if (STRINGP (try_family))
-    nfonts = try_alternative_families (f, try_family, registry, fonts);
-
-#ifdef MAC_OS
-  if (nfonts == 0 && STRINGP (try_family) && STRINGP (registry))
-    {
-      if (xstricmp (SDATA (registry), "mac-roman") == 0)
-       /* When realizing the default face and a font spec does not
-          matched exactly, Emacs looks for ones with the same registry
-          as the default font.  On the Mac, this is mac-roman, which
-          does not work if the family is -etl-fixed, e.g.  The
-          following widens the choices and fixes that problem.  */
-       nfonts = try_alternative_families (f, try_family, Qnil, fonts);
-      else if (SBYTES (try_family) > 0
-              && SREF (try_family, SBYTES (try_family) - 1) != '*')
-       /* Some Central European/Cyrillic font family names have the
-          Roman counterpart name as their prefix.  */
-       nfonts = try_alternative_families (f, concat2 (try_family,
-                                                      build_string ("*")),
-                                          registry, fonts);
+  if (STRINGP (pattern))
+    {
+      nfonts = font_list (f, pattern, Qnil, Qnil, fonts);
+      if (nfonts == 0 && ! EQ (Vscalable_fonts_allowed, Qt))
+       {
+         int count = SPECPDL_INDEX ();
+         specbind (Qscalable_fonts_allowed, Qt);
+         nfonts = font_list (f, pattern, Qnil, Qnil, fonts);
+         unbind_to (count, Qnil);
+       }
     }
-#endif
+  else
+    {
+      Lisp_Object tail;
 
-  if (EQ (try_family, family))
-    family = face_family;
+      if (NILP (family))
+       nfonts = font_list (f, Qnil, Qnil, registry, fonts);
+      else
+       for (tail = family; ! nfonts && CONSP (tail); tail = XCDR (tail))
+         nfonts = try_alternative_families (f, XCAR (tail), registry, fonts);
 
-  if (nfonts == 0 && STRINGP (family))
-    nfonts = try_alternative_families (f, family, registry, fonts);
+      /* Try font family of the default face or "fixed".  */
+      if (nfonts == 0 && !NILP (family))
+       {
+         struct face *default_face = FACE_FROM_ID (f, DEFAULT_FACE_ID);
+         if (default_face)
+           family = default_face->lface[LFACE_FAMILY_INDEX];
+         else
+           family = build_string ("fixed");
+         nfonts = try_alternative_families (f, family, registry, fonts);
+       }
 
-  /* Try font family of the default face or "fixed".  */
-  if (nfonts == 0)
-    {
-      struct face *default_face = FACE_FROM_ID (f, DEFAULT_FACE_ID);
-      if (default_face)
-       family = default_face->lface[LFACE_FAMILY_INDEX];
-      else
-       family = build_string ("fixed");
-      nfonts = font_list (f, Qnil, family, registry, fonts);
+      /* Try any family with the given registry.  */
+      if (nfonts == 0 && !NILP (family))
+       nfonts = try_alternative_families (f, Qnil, registry, fonts);
     }
 
-  /* Try any family with the given registry.  */
-  if (nfonts == 0)
-    nfonts = try_alternative_families (f, Qnil, registry, fonts);
-
   return nfonts;
 }
 
@@ -6862,63 +7258,109 @@ face_fontset (attrs)
 {
   Lisp_Object name;
 
-  name = attrs[LFACE_FONT_INDEX];
+  name = attrs[LFACE_FONTSET_INDEX];
   if (!STRINGP (name))
     return -1;
   return fs_query_fontset (name, 0);
 }
 
 
-/* Choose a name of font to use on frame F to display character C with
+/* Choose a name of font to use on frame F to display characters with
    Lisp face attributes specified by ATTRS.  The font name is
-   determined by the font-related attributes in ATTRS and the name
-   pattern for C in FONTSET.  Value is the font name which is
-   allocated from the heap and must be freed by the caller, or NULL if
-   we can get no information about the font name of C.  It is assured
-   that we always get some information for a single byte
-   character.
+   determined by the font-related attributes in ATTRS and FONT-SPEC
+   (if specified).
 
-   If NEEDS_OVERSTRIKE is non-zero, a boolean is returned in it to
-   indicate whether the resulting font should be drawn using overstrike
-   to simulate bold-face.  */
+   When we are choosing a font for ASCII characters, FONT-SPEC is
+   always nil.  Otherwise FONT-SPEC is an object created by
+   `font-spec' or a string specifying a font name pattern.
 
-static char *
-choose_face_font (f, attrs, fontset, c, needs_overstrike)
+   If NEEDS_OVERSTRIKE is not NULL, a boolean is returned in it to
+   indicate whether the resulting font should be drawn using
+   overstrike to simulate bold-face.
+
+   Value is the font name which is allocated from the heap and must be
+   freed by the caller.  */
+
+char *
+choose_face_font (f, attrs, font_spec, needs_overstrike)
      struct frame *f;
      Lisp_Object *attrs;
-     int fontset, c;
+     Lisp_Object font_spec;
      int *needs_overstrike;
 {
-  Lisp_Object pattern;
+  Lisp_Object pattern, family, adstyle, registry;
   char *font_name = NULL;
   struct font_name *fonts;
-  int nfonts, width_ratio;
+  int nfonts;
 
   if (needs_overstrike)
     *needs_overstrike = 0;
 
-  /* Get (foundry and) family name and registry (and encoding) name of
-     a font for C.  */
-  pattern = fontset_font_pattern (f, fontset, c);
-  if (NILP (pattern))
+  /* If we are choosing an ASCII font and a font name is explicitly
+     specified in ATTRS, return it.  */
+  if (NILP (font_spec) && STRINGP (attrs[LFACE_FONT_INDEX]))
+    return xstrdup (SDATA (attrs[LFACE_FONT_INDEX]));
+
+  if (NILP (attrs[LFACE_FAMILY_INDEX]))
+    family = Qnil;
+  else
+    family = Fcons (attrs[LFACE_FAMILY_INDEX], Qnil);
+
+  /* Decide FAMILY, ADSTYLE, and REGISTRY from FONT_SPEC.  But,
+     ADSTYLE is not used in the font selector for the moment.  */
+  if (VECTORP (font_spec))
     {
-      xassert (!SINGLE_BYTE_CHAR_P (c));
-      return NULL;
+      pattern = Qnil;
+      if (! NILP (AREF (font_spec, FONT_FAMILY_INDEX)))
+       family = Fcons (SYMBOL_NAME (AREF (font_spec, FONT_FAMILY_INDEX)),
+                       family);
+      adstyle = AREF (font_spec, FONT_ADSTYLE_INDEX);
+      registry = Fcons (SYMBOL_NAME (AREF (font_spec, FONT_REGISTRY_INDEX)),
+                       Qnil);
+    }
+  else if (STRINGP (font_spec))
+    {
+      pattern = font_spec;
+      family = Qnil;
+      adstyle = Qnil;
+      registry = Qnil;
+    }
+  else
+    {
+      /* We are choosing an ASCII font.  By default, use the registry
+        name "iso8859-1".  But, if the registry name of the ASCII
+        font specified in the fontset of ATTRS is not "iso8859-1"
+        (e.g "iso10646-1"), use also that name with higher
+        priority.  */
+      int fontset = face_fontset (attrs);
+      Lisp_Object ascii;
+      int len;
+      struct font_name font;
+
+      pattern = Qnil;
+      adstyle = Qnil;
+      registry = Fcons (build_string ("iso8859-1"), Qnil);
+
+      ascii = fontset_ascii (fontset);
+      len = SBYTES (ascii);
+      if (len < 9
+         || strcmp (SDATA (ascii) + len - 9, "iso8859-1"))
+       {
+         font.name = LSTRDUPA (ascii);
+         /* Check if the name is in XLFD.  */
+         if (split_font_name (f, &font, 0))
+           {
+             font.fields[XLFD_ENCODING][-1] = '-';
+             registry = Fcons (build_string (font.fields[XLFD_REGISTRY]),
+                               registry);
+           }
+       }
     }
-
-  /* If what we got is a name pattern, return it.  */
-  if (STRINGP (pattern))
-    return xstrdup (SDATA (pattern));
 
   /* Get a list of fonts matching that pattern and choose the
      best match for the specified face attributes from it.  */
-  nfonts = try_font_list (f, attrs, XCAR (pattern), XCDR (pattern), &fonts,
-                         (SINGLE_BYTE_CHAR_P (c)
-                          || CHAR_CHARSET (c) == charset_latin_iso8859_1));
-  width_ratio = (SINGLE_BYTE_CHAR_P (c)
-                ? 1
-                : CHARSET_WIDTH (CHAR_CHARSET (c)));
-  font_name = best_matching_font (f, attrs, fonts, nfonts, width_ratio,
+  nfonts = try_font_list (f, pattern, family, registry, &fonts);
+  font_name = best_matching_font (f, attrs, fonts, nfonts, NILP (font_spec),
                                  needs_overstrike);
   return font_name;
 }
@@ -7007,12 +7449,27 @@ realize_default_face (f)
 #ifdef HAVE_WINDOW_SYSTEM
   if (FRAME_WINDOW_P (f))
     {
+#ifdef USE_FONT_BACKEND
+      if (enable_font_backend)
+       {
+         frame_font = font_find_object (FRAME_FONT_OBJECT (f));
+         xassert (FONT_OBJECT_P (frame_font));
+         set_lface_from_font_and_fontset (f, lface, frame_font,
+                                          FRAME_FONTSET (f),
+                                          f->default_face_done_p);
+       }
+      else
+       {
+#endif /* USE_FONT_BACKEND */
       /* Set frame_font to the value of the `font' frame parameter.  */
       frame_font = Fassq (Qfont, f->param_alist);
       xassert (CONSP (frame_font) && STRINGP (XCDR (frame_font)));
       frame_font = XCDR (frame_font);
       set_lface_from_font_name (f, lface, frame_font,
                                 f->default_face_done_p, 1);
+#ifdef USE_FONT_BACKEND
+       }
+#endif /* USE_FONT_BACKEND */
       f->default_face_done_p = 1;
     }
 #endif /* HAVE_WINDOW_SYSTEM */
@@ -7082,7 +7539,7 @@ realize_default_face (f)
   xassert (lface_fully_specified_p (XVECTOR (lface)->contents));
   check_lface (lface);
   bcopy (XVECTOR (lface)->contents, attrs, sizeof attrs);
-  face = realize_face (c, attrs, 0, NULL, DEFAULT_FACE_ID);
+  face = realize_face (c, attrs, DEFAULT_FACE_ID);
 
 #ifdef HAVE_WINDOW_SYSTEM
 #ifdef HAVE_X_WINDOWS
@@ -7139,23 +7596,19 @@ realize_named_face (f, symbol, id)
   merge_face_vectors (f, symbol_attrs, attrs, 0);
 
   /* Realize the face.  */
-  new_face = realize_face (c, attrs, 0, NULL, id);
+  new_face = realize_face (c, attrs, id);
 }
 
 
 /* Realize the fully-specified face with attributes ATTRS in face
-   cache CACHE for character C.  If C is a multibyte character,
-   BASE_FACE is a face that has the same attributes.  Otherwise,
-   BASE_FACE is ignored.  If FORMER_FACE_ID is non-negative, it is an
-   ID of face to remove before caching the new face.  Value is a
-   pointer to the newly created realized face.  */
+   cache CACHE for ASCII characters.  If FORMER_FACE_ID is
+   non-negative, it is an ID of face to remove before caching the new
+   face.  Value is a pointer to the newly created realized face.  */
 
 static struct face *
-realize_face (cache, attrs, c, base_face, former_face_id)
+realize_face (cache, attrs, former_face_id)
      struct face_cache *cache;
      Lisp_Object *attrs;
-     int c;
-     struct face *base_face;
      int former_face_id;
 {
   struct face *face;
@@ -7173,9 +7626,9 @@ realize_face (cache, attrs, c, base_face, former_face_id)
     }
 
   if (FRAME_WINDOW_P (cache->f))
-    face = realize_x_face (cache, attrs, c, base_face);
+    face = realize_x_face (cache, attrs);
   else if (FRAME_TERMCAP_P (cache->f) || FRAME_MSDOS_P (cache->f))
-    face = realize_tty_face (cache, attrs, c);
+    face = realize_tty_face (cache, attrs);
   else if (FRAME_INITIAL_P (cache->f))
     {
       /* Create a dummy face. */
@@ -7186,29 +7639,70 @@ realize_face (cache, attrs, c, base_face, former_face_id)
 
   /* Insert the new face.  */
   cache_face (cache, face, lface_hash (attrs));
+  return face;
+}
+
+
 #ifdef HAVE_WINDOW_SYSTEM
-  if (FRAME_WINDOW_P (cache->f) && face->font == NULL)
-    load_face_font (cache->f, face, c);
-#endif  /* HAVE_WINDOW_SYSTEM */
+/* Realize the fully-specified face that has the same attributes as
+   BASE_FACE except for the font on frame F.  If FONT_ID is not
+   negative, it is an ID number of an already opened font that should
+   be used by the face.  If FONT_ID is negative, the face has no font,
+   i.e., characters are displayed by empty boxes.  */
+
+static struct face *
+realize_non_ascii_face (f, font_id, base_face)
+     struct frame *f;
+     int font_id;
+     struct face *base_face;
+{
+  struct face_cache *cache = FRAME_FACE_CACHE (f);
+  struct face *face;
+  struct font_info *font_info;
+
+  face = (struct face *) xmalloc (sizeof *face);
+  *face = *base_face;
+  face->gc = 0;
+#ifdef USE_FONT_BACKEND
+  face->extra = NULL;
+#endif
+
+  /* Don't try to free the colors copied bitwise from BASE_FACE.  */
+  face->colors_copied_bitwise_p = 1;
+
+  face->font_info_id = font_id;
+  if (font_id >= 0)
+    {
+      font_info = FONT_INFO_FROM_ID (f, font_id);
+      face->font = font_info->font;
+      face->font_name = font_info->full_name;
+    }
+  else
+    {
+      face->font = NULL;
+      face->font_name = NULL;
+    }
+
+  face->gc = 0;
+
+  cache_face (cache, face, face->hash);
+
   return face;
 }
+#endif /* HAVE_WINDOW_SYSTEM */
 
 
 /* Realize the fully-specified face with attributes ATTRS in face
-   cache CACHE for character C.  Do it for X frame CACHE->f.  If C is
-   a multibyte character, BASE_FACE is a face that has the same
-   attributes.  Otherwise, BASE_FACE is ignored.  If the new face
-   doesn't share font with the default face, a fontname is allocated
-   from the heap and set in `font_name' of the new face, but it is not
-   yet loaded here.  Value is a pointer to the newly created realized
-   face.  */
+   cache CACHE for ASCII characters.  Do it for X frame CACHE->f.  If
+   the new face doesn't share font with the default face, a fontname
+   is allocated from the heap and set in `font_name' of the new face,
+   but it is not yet loaded here.  Value is a pointer to the newly
+   created realized face.  */
 
 static struct face *
-realize_x_face (cache, attrs, c, base_face)
+realize_x_face (cache, attrs)
      struct face_cache *cache;
      Lisp_Object *attrs;
-     int c;
-     struct face *base_face;
 {
   struct face *face = NULL;
 #ifdef HAVE_WINDOW_SYSTEM
@@ -7217,50 +7711,27 @@ realize_x_face (cache, attrs, c, base_face)
   Lisp_Object stipple, overline, strike_through, box;
 
   xassert (FRAME_WINDOW_P (cache->f));
-  xassert (SINGLE_BYTE_CHAR_P (c)
-          || base_face);
 
   /* Allocate a new realized face.  */
   face = make_realized_face (attrs);
+  face->ascii_face = face;
 
   f = cache->f;
 
-  /* If C is a multibyte character, we share all face attirbutes with
-     BASE_FACE including the realized fontset.  But, we must load a
-     different font.  */
-  if (!SINGLE_BYTE_CHAR_P (c))
-    {
-      bcopy (base_face, face, sizeof *face);
-      face->gc = 0;
-
-      /* Don't try to free the colors copied bitwise from BASE_FACE.  */
-      face->colors_copied_bitwise_p = 1;
-
-      /* to force realize_face to load font */
-      face->font = NULL;
-      return face;
-    }
-
-  /* Now we are realizing a face for ASCII (and unibyte) characters.  */
-
   /* Determine the font to use.  Most of the time, the font will be
      the same as the font of the default face, so try that first.  */
   default_face = FACE_FROM_ID (f, DEFAULT_FACE_ID);
   if (default_face
-      && FACE_SUITABLE_FOR_CHAR_P (default_face, c)
       && lface_same_font_attributes_p (default_face->lface, attrs))
     {
       face->font = default_face->font;
-      face->fontset = default_face->fontset;
       face->font_info_id = default_face->font_info_id;
+#ifdef USE_FONT_BACKEND
+      face->font_info = default_face->font_info;
+#endif /* USE_FONT_BACKEND */
       face->font_name = default_face->font_name;
-      face->ascii_face = face;
-
-      /* But, as we can't share the fontset, make a new realized
-        fontset that has the same base fontset as of the default
-        face.  */
       face->fontset
-       = make_fontset_for_ascii_face (f, default_face->fontset);
+       = make_fontset_for_ascii_face (f, default_face->fontset, face);
     }
   else
     {
@@ -7272,10 +7743,24 @@ realize_x_face (cache, attrs, c, base_face)
         are constructed from ATTRS.  */
       int fontset = face_fontset (attrs);
 
-      if ((fontset == -1) && default_face)
+      /* If we are realizing the default face, ATTRS should specify a
+        fontset.  In other words, if FONTSET is -1, we are not
+        realizing the default face, thus the default face should have
+        already been realized.  */
+      if (fontset == -1)
        fontset = default_face->fontset;
-      face->fontset = make_fontset_for_ascii_face (f, fontset);
-      face->font = NULL;       /* to force realize_face to load font */
+      if (fontset == -1)
+       abort ();
+#ifdef USE_FONT_BACKEND
+      if (enable_font_backend)
+       font_load_for_face (f, face);
+      else
+#endif /* USE_FONT_BACKEND */
+      load_face_font (f, face);
+      if (face->font)
+       face->fontset = make_fontset_for_ascii_face (f, fontset, face);
+      else
+       face->fontset = -1;
     }
 
   /* Load colors, and set remaining attributes.  */
@@ -7406,9 +7891,8 @@ realize_x_face (cache, attrs, c, base_face)
   stipple = attrs[LFACE_STIPPLE_INDEX];
   if (!NILP (stipple))
     face->stipple = load_pixmap (f, stipple, &face->pixmap_w, &face->pixmap_h);
-
-  xassert (FACE_SUITABLE_FOR_CHAR_P (face, c));
 #endif /* HAVE_WINDOW_SYSTEM */
+
   return face;
 }
 
@@ -7496,14 +7980,13 @@ map_tty_color (f, face, idx, defaulted)
 
 
 /* Realize the fully-specified face with attributes ATTRS in face
-   cache CACHE for character C.  Do it for TTY frame CACHE->f.  Value is a
-   pointer to the newly created realized face.  */
+   cache CACHE for ASCII characters.  Do it for TTY frame CACHE->f.
+   Value is a pointer to the newly created realized face.  */
 
 static struct face *
-realize_tty_face (cache, attrs, c)
+realize_tty_face (cache, attrs)
      struct face_cache *cache;
      Lisp_Object *attrs;
-     int c;
 {
   struct face *face;
   int weight, slant;
@@ -7596,7 +8079,7 @@ compute_char_face (f, ch, prop)
   if (NILP (prop))
     {
       struct face *face = FACE_FROM_ID (f, DEFAULT_FACE_ID);
-      face_id = FACE_FOR_CHAR (f, face, ch);
+      face_id = FACE_FOR_CHAR (f, face, ch, -1, Qnil);
     }
   else
     {
@@ -7604,7 +8087,7 @@ compute_char_face (f, ch, prop)
       struct face *default_face = FACE_FROM_ID (f, DEFAULT_FACE_ID);
       bcopy (default_face->lface, attrs, sizeof attrs);
       merge_face_ref (f, prop, attrs, 1, 0);
-      face_id = lookup_face (f, attrs, ch, NULL);
+      face_id = lookup_face (f, attrs);
     }
 
   return face_id;
@@ -7721,7 +8204,7 @@ face_at_buffer_position (w, pos, region_beg, region_end,
 
   /* Look up a realized face with the given face attributes,
      or realize a new one for ASCII characters.  */
-  return lookup_face (f, attrs, 0, NULL);
+  return lookup_face (f, attrs);
 }
 
 /* Return the face ID at buffer position POS for displaying ASCII
@@ -7800,7 +8283,7 @@ face_for_overlay_string (w, pos, region_beg, region_end,
 
   /* Look up a realized face with the given face attributes,
      or realize a new one for ASCII characters.  */
-  return lookup_face (f, attrs, 0, NULL);
+  return lookup_face (f, attrs);
 }
 
 
@@ -7896,7 +8379,7 @@ face_at_string_position (w, string, pos, bufpos, region_beg,
 
   /* Look up a realized face with the given face attributes,
      or realize a new one for ASCII characters.  */
-  return lookup_face (f, attrs, 0, NULL);
+  return lookup_face (f, attrs);
 }
 
 
@@ -7933,7 +8416,7 @@ merge_faces (f, face_name, face_id, base_face_id)
       if (face_id < 0 || face_id >= lface_id_to_name_size)
        return base_face_id;
       face_name = lface_id_to_name[face_id];
-      face_id = lookup_derived_face (f, face_name, 0, base_face_id, 1);
+      face_id = lookup_derived_face (f, face_name, base_face_id, 1);
       if (face_id >= 0)
        return face_id;
       return base_face_id;
@@ -7960,7 +8443,7 @@ merge_faces (f, face_name, face_id, base_face_id)
 
   /* Look up a realized face with the given face attributes,
      or realize a new one for ASCII characters.  */
-  return lookup_face (f, attrs, 0, NULL);
+  return lookup_face (f, attrs);
 }
 
 \f
@@ -7998,7 +8481,6 @@ dump_realized_face (face)
           face->underline_p,
           SDATA (Fsymbol_name (face->lface[LFACE_UNDERLINE_INDEX])));
   fprintf (stderr, "hash: %d\n", face->hash);
-  fprintf (stderr, "charset: %d\n", face->charset);
 }
 
 
@@ -8091,6 +8573,8 @@ syms_of_xfaces ()
   staticpro (&QCwidth);
   QCfont = intern (":font");
   staticpro (&QCfont);
+  QCfontset = intern (":fontset");
+  staticpro (&QCfontset);
   QCbold = intern (":bold");
   staticpro (&QCbold);
   QCitalic = intern (":italic");
index 96631d98f55c837672ddde9e0f8c6f50434d7258..8239fc3475c2f9db0f17b6caf022163969f238de 100644 (file)
@@ -41,6 +41,7 @@ Boston, MA 02110-1301, USA.  */
 #include "keyboard.h"
 #include "blockinput.h"
 #include <epaths.h>
+#include "character.h"
 #include "charset.h"
 #include "coding.h"
 #include "fontset.h"
@@ -49,6 +50,10 @@ Boston, MA 02110-1301, USA.  */
 #include "atimer.h"
 #include "termchar.h"
 
+#ifdef USE_FONT_BACKEND
+#include "font.h"
+#endif /* USE_FONT_BACKEND */
+
 #ifdef HAVE_X_WINDOWS
 
 #include <ctype.h>
@@ -310,10 +315,10 @@ x_window_to_frame (dpyinfo, wdesc)
 
   if (wdesc == None) return 0;
 
-  for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       frame = XCAR (tail);
-      if (!GC_FRAMEP (frame))
+      if (!FRAMEP (frame))
         continue;
       f = XFRAME (frame);
       if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
@@ -362,10 +367,10 @@ x_any_window_to_frame (dpyinfo, wdesc)
   if (wdesc == None) return NULL;
 
   found = NULL;
-  for (tail = Vframe_list; GC_CONSP (tail) && !found; tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail) && !found; tail = XCDR (tail))
     {
       frame = XCAR (tail);
-      if (!GC_FRAMEP (frame))
+      if (!FRAMEP (frame))
         continue;
 
       f = XFRAME (frame);
@@ -417,10 +422,10 @@ x_non_menubar_window_to_frame (dpyinfo, wdesc)
 
   if (wdesc == None) return 0;
 
-  for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       frame = XCAR (tail);
-      if (!GC_FRAMEP (frame))
+      if (!FRAMEP (frame))
         continue;
       f = XFRAME (frame);
       if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
@@ -465,10 +470,10 @@ x_menubar_window_to_frame (dpyinfo, wdesc)
 
   if (wdesc == None) return 0;
 
-  for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       frame = XCAR (tail);
-      if (!GC_FRAMEP (frame))
+      if (!FRAMEP (frame))
         continue;
       f = XFRAME (frame);
       if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
@@ -512,10 +517,10 @@ x_top_window_to_frame (dpyinfo, wdesc)
 
   if (wdesc == None) return 0;
 
-  for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       frame = XCAR (tail);
-      if (!GC_FRAMEP (frame))
+      if (!FRAMEP (frame))
         continue;
       f = XFRAME (frame);
       if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
@@ -552,6 +557,8 @@ x_top_window_to_frame (dpyinfo, wdesc)
 
 \f
 
+static void x_default_font_parameter P_ ((struct frame *, Lisp_Object));
+
 static Lisp_Object unwind_create_frame P_ ((Lisp_Object));
 static Lisp_Object unwind_create_tip_frame P_ ((Lisp_Object));
 
@@ -1551,55 +1558,30 @@ x_encode_text (string, coding_system, selectionp, text_bytes, stringp, freep)
      int selectionp;
      int *freep;
 {
-  unsigned char *str = SDATA (string);
-  int chars = SCHARS (string);
-  int bytes = SBYTES (string);
-  int charset_info;
-  int bufsize;
-  unsigned char *buf;
+  int result = string_xstring_p (string);
   struct coding_system coding;
-  extern Lisp_Object Qcompound_text_with_extensions;
 
-  charset_info = find_charset_in_text (str, chars, bytes, NULL, Qnil);
-  if (charset_info == 0)
+  if (result == 0)
     {
       /* No multibyte character in OBJ.  We need not encode it.  */
-      *text_bytes = bytes;
+      *text_bytes = SBYTES (string);
       *stringp = 1;
       *freep = 0;
-      return str;
+      return SDATA (string);
     }
 
   setup_coding_system (coding_system, &coding);
-  if (selectionp
-      && SYMBOLP (coding.pre_write_conversion)
-      && !NILP (Ffboundp (coding.pre_write_conversion)))
-    {
-      struct gcpro gcpro1;
-      /* We don't need to GCPRO string.  */
-      GCPRO1 (coding_system);
-      string = run_pre_post_conversion_on_str (string, &coding, 1);
-      UNGCPRO;
-      str = SDATA (string);
-      chars = SCHARS (string);
-      bytes = SBYTES (string);
-    }
-  coding.src_multibyte = 1;
-  coding.dst_multibyte = 0;
-  coding.mode |= CODING_MODE_LAST_BLOCK;
-  if (coding.type == coding_type_iso2022)
-    coding.flags |= CODING_FLAG_ISO_SAFE;
+  coding.mode |= (CODING_MODE_SAFE_ENCODING | CODING_MODE_LAST_BLOCK);
   /* We suppress producing escape sequences for composition.  */
-  coding.composing = COMPOSITION_DISABLED;
-  bufsize = encoding_buffer_size (&coding, bytes);
-  buf = (unsigned char *) xmalloc (bufsize);
-  encode_coding (&coding, str, buf, bytes, bufsize);
+  coding.common_flags &= ~CODING_ANNOTATION_MASK;
+  coding.dst_bytes = SCHARS (string) * 2;
+  coding.destination = (unsigned char *) xmalloc (coding.dst_bytes);
+  encode_coding_object (&coding, string, 0, 0,
+                       SCHARS (string), SBYTES (string), Qnil);
   *text_bytes = coding.produced;
-  *stringp = (charset_info == 1
-             || (!EQ (coding_system, Qcompound_text)
-                 && !EQ (coding_system, Qcompound_text_with_extensions)));
+  *stringp = (result == 1 || !EQ (coding_system, Qcompound_text));
   *freep = 1;
-  return buf;
+  return coding.destination;
 }
 
 \f
@@ -1946,6 +1928,7 @@ hack_wm_protocols (f, widget)
 #ifdef HAVE_X_I18N
 
 static XFontSet xic_create_xfontset P_ ((struct frame *, char *));
+static XFontSet xic_create_xfontset2 P_ ((struct frame *));
 static XIMStyle best_xim_style P_ ((XIMStyles *, XIMStyles *));
 
 
@@ -2097,6 +2080,29 @@ xic_create_fontsetname (base_fontname, motif)
   return fontsetname;
 }
 
+#ifdef DEBUG_XIC_FONTSET
+static void
+print_fontset_result (xfs, name, missing_list, missing_count)
+     XFontSet xfs;
+     char *name;
+     char **missing_list;
+     int missing_count;
+{
+  if (xfs)
+    fprintf (stderr, "XIC Fontset created: %s\n", name);
+  else
+    {
+      fprintf (stderr, "XIC Fontset failed: %s\n", name);
+      while (missing_count-- > 0)
+       {
+         fprintf (stderr, "  missing: %s\n", *missing_list);
+         missing_list++;
+       }
+    }
+
+}
+#endif
+
 static XFontSet
 xic_create_xfontset (f, base_fontname)
      struct frame *f;
@@ -2133,6 +2139,9 @@ xic_create_xfontset (f, base_fontname)
       xfs = XCreateFontSet (FRAME_X_DISPLAY (f),
                            fontsetname, &missing_list,
                            &missing_count, &def_string);
+#ifdef DEBUG_XIC_FONTSET
+      print_fontset_result (xfs, fontsetname, missing_list, missing_count);
+#endif
       if (missing_list)
        XFreeStringList (missing_list);
       if (! xfs)
@@ -2151,6 +2160,9 @@ xic_create_xfontset (f, base_fontname)
              xfs = XCreateFontSet (FRAME_X_DISPLAY (f),
                                    p0, &missing_list,
                                    &missing_count, &def_string);
+#ifdef DEBUG_XIC_FONTSET
+             print_fontset_result (xfs, p0, missing_list, missing_count);
+#endif
              if (missing_list)
                XFreeStringList (missing_list);
              if (xfs)
@@ -2159,6 +2171,20 @@ xic_create_xfontset (f, base_fontname)
            }
        }
       xfree (fontsetname);
+      if (! xfs && base_fontname != xic_defaut_fontset)
+       {
+         /* Try the default fontset name at a last resort.  */
+         fontsetname = xic_create_fontsetname (xic_defaut_fontset, False);
+         xfs = XCreateFontSet (FRAME_X_DISPLAY (f),
+                               fontsetname, &missing_list,
+                               &missing_count, &def_string);
+#ifdef DEBUG_XIC_FONTSET
+         print_fontset_result (xfs, fontsetname, missing_list, missing_count);
+#endif
+         if (missing_list)
+           XFreeStringList (missing_list);
+         xfree (fontsetname);
+       }
     }
 
   if (FRAME_XIC_BASE_FONTNAME (f))
@@ -2169,6 +2195,107 @@ xic_create_xfontset (f, base_fontname)
   return xfs;
 }
 
+#ifdef USE_FONT_BACKEND
+
+static XFontSet
+xic_create_xfontset2 (f)
+     struct frame *f;
+{
+  XFontSet xfs = NULL;
+  struct font *font = FRAME_FONT_OBJECT (f);
+  int pixel_size = font->pixel_size;
+  Lisp_Object rest, frame;
+
+  /* See if there is another frame already using same fontset.  */
+  FOR_EACH_FRAME (rest, frame)
+    {
+      struct frame *cf = XFRAME (frame);
+
+      if (cf != f && FRAME_LIVE_P (f) && FRAME_X_P (cf)
+          && FRAME_X_DISPLAY_INFO (cf) == FRAME_X_DISPLAY_INFO (f)
+         && FRAME_FONT_OBJECT (f)
+         && FRAME_FONT_OBJECT (f)->pixel_size == pixel_size)
+        {
+          xfs = FRAME_XIC_FONTSET (cf);
+          break;
+        }
+    }
+
+  if (! xfs)
+    {
+      char buf[256];
+      char **missing_list;
+      int missing_count;
+      char *def_string;
+      char *xlfd_format = "-*-*-medium-r-normal--%d-*-*-*-*-*";
+
+      sprintf (buf, xlfd_format, pixel_size);
+      missing_list = NULL;
+      xfs = XCreateFontSet (FRAME_X_DISPLAY (f), buf,
+                           &missing_list, &missing_count, &def_string);
+#ifdef DEBUG_XIC_FONTSET
+      print_fontset_result (xfs, buf, missing_list, missing_count);
+#endif
+      if (missing_list)
+       XFreeStringList (missing_list);
+      if (! xfs)
+       {
+         /* List of pixel sizes most likely available.  Find one that
+            is closest to pixel_size.  */
+         int sizes[] = {0, 8, 10, 11, 12, 14, 17, 18, 20, 24, 26, 34, 0};
+         int *smaller, *larger;
+
+         for (smaller = sizes; smaller[1]; smaller++)
+           if (smaller[1] >= pixel_size)
+             break;
+         larger = smaller + 1;
+         if (*larger == pixel_size)
+           larger++;
+         while (*smaller || *larger)
+           {
+             int this_size;
+
+             if (! *larger)
+               this_size = *smaller--;
+             else if (! *smaller)
+               this_size = *larger++;
+             else if (pixel_size - *smaller < *larger - pixel_size)
+               this_size = *smaller--;
+             else
+               this_size = *larger++;
+             sprintf (buf, xlfd_format, this_size);
+             missing_list = NULL;
+             xfs = XCreateFontSet (FRAME_X_DISPLAY (f), buf,
+                                   &missing_list, &missing_count, &def_string);
+#ifdef DEBUG_XIC_FONTSET
+             print_fontset_result (xfs, buf, missing_list, missing_count);
+#endif
+             if (missing_list)
+               XFreeStringList (missing_list);
+             if (xfs)
+               break;
+           }
+       }
+      if (! xfs)
+       {
+         char *last_resort = "-*-*-*-r-normal--*-*-*-*-*-*";
+
+         missing_list = NULL;
+         xfs = XCreateFontSet (FRAME_X_DISPLAY (f), last_resort,
+                               &missing_list, &missing_count, &def_string);
+#ifdef DEBUG_XIC_FONTSET
+         print_fontset_result (xfs, last_resort, missing_list, missing_count);
+#endif
+         if (missing_list)
+           XFreeStringList (missing_list);
+       }
+
+    }
+
+  return xfs;
+}
+#endif /* USE_FONT_BACKEND */
+
 /* Free the X fontset of frame F if it is the last frame using it.  */
 
 void
@@ -2241,6 +2368,11 @@ create_frame_xic (f)
     return;
 
   /* Create X fontset. */
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    xfs = xic_create_xfontset2 (f);
+  else
+#endif
   xfs = xic_create_xfontset
     (f, (FRAME_FONTSET (f) < 0) ? NULL
         : (char *) SDATA (fontset_ascii (FRAME_FONTSET (f))));
@@ -2399,6 +2531,11 @@ xic_set_xfontset (f, base_fontname)
 
   xic_free_xfontset (f);
 
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    xfs = xic_create_xfontset2 (f);
+  else
+#endif
   xfs = xic_create_xfontset (f, base_fontname);
 
   attr = XVaCreateNestedList (0, XNFontSet, xfs, NULL);
@@ -3026,6 +3163,44 @@ unwind_create_frame (frame)
   return Qnil;
 }
 
+#ifdef USE_FONT_BACKEND
+static void
+x_default_font_parameter (f, parms)
+     struct frame *f;
+     Lisp_Object parms;
+{
+  struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
+  Lisp_Object font = x_get_arg (dpyinfo, parms, Qfont, "font", "Font",
+                               RES_TYPE_STRING);
+
+  if (! STRINGP (font))
+    {
+      char *names[]
+       = { "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1",
+           "-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-1",
+           "-*-*-medium-r-normal-*-*-140-*-*-c-*-iso8859-1",
+           /* This was formerly the first thing tried, but it finds
+              too many fonts and takes too long.  */
+           "-*-*-medium-r-*-*-*-*-*-*-c-*-iso8859-1",
+           /* If those didn't work, look for something which will
+              at least work.  */
+           "-*-fixed-*-*-*-*-*-140-*-*-c-*-iso8859-1",
+           "fixed",
+           NULL };
+      int i;
+
+      for (i = 0; names[i]; i++)
+       {
+         font = font_open_by_name (f, names[i]);
+         if (! NILP (font))
+           break;
+       }
+      if (NILP (font))
+       error ("No suitable font was found");
+    }
+  x_default_parameter (f, parms, Qfont, font, "font", "Font", RES_TYPE_STRING);
+}
+#endif /* USE_FONT_BACKEND */
 
 DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,
        1, 1, 0,
@@ -3206,43 +3381,75 @@ This function is an internal primitive--use `make-frame' instead.  */)
       specbind (Qx_resource_name, name);
     }
 
+  f->resx = dpyinfo->resx;
+  f->resy = dpyinfo->resy;
+
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      /* Perhaps, we must allow frame parameter, say `font-backend',
+        to specify which font backends to use.  */
+#ifdef HAVE_FREETYPE
+#ifdef HAVE_XFT
+      register_font_driver (&xftfont_driver, f);
+#else  /* not HAVE_XFT */
+      register_font_driver (&ftxfont_driver, f);
+#endif /* not HAVE_XFT */
+#endif /* HAVE_FREETYPE */
+      register_font_driver (&xfont_driver, f);
+
+      x_default_parameter (f, parms, Qfont_backend, Qnil,
+                          "fontBackend", "FontBackend", RES_TYPE_STRING);
+    }
+#endif /* USE_FONT_BACKEND */
+
   /* Extract the window parameters from the supplied values
      that are needed to determine window geometry.  */
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    x_default_font_parameter (f, parms);
+else
+#endif /* USE_FONT_BACKEND */
   {
     Lisp_Object font;
 
     font = x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING);
 
-    BLOCK_INPUT;
-    /* First, try whatever font the caller has specified.  */
-    if (STRINGP (font))
-      {
-       tem = Fquery_fontset (font, Qnil);
-       if (STRINGP (tem))
-         font = x_new_fontset (f, SDATA (tem));
-       else
-         font = x_new_font (f, SDATA (font));
-      }
-
-    /* Try out a font which we hope has bold and italic variations.  */
-    if (!STRINGP (font))
-      font = x_new_font (f, "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1");
+    /* If the caller has specified no font, try out fonts which we
+       hope have bold and italic variations.  */
     if (!STRINGP (font))
-      font = x_new_font (f, "-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-1");
-    if (! STRINGP (font))
-      font = x_new_font (f, "-*-*-medium-r-normal-*-*-140-*-*-c-*-iso8859-1");
-    if (! STRINGP (font))
-      /* This was formerly the first thing tried, but it finds too many fonts
-        and takes too long.  */
-      font = x_new_font (f, "-*-*-medium-r-*-*-*-*-*-*-c-*-iso8859-1");
-    /* If those didn't work, look for something which will at least work.  */
-    if (! STRINGP (font))
-      font = x_new_font (f, "-*-fixed-*-*-*-*-*-140-*-*-c-*-iso8859-1");
-    UNBLOCK_INPUT;
-    if (! STRINGP (font))
-      font = build_string ("fixed");
+      {
+       char *names[]
+         = { "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1",
+             "-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-1",
+             "-*-*-medium-r-normal-*-*-140-*-*-c-*-iso8859-1",
+             /* This was formerly the first thing tried, but it finds
+                too many fonts and takes too long.  */
+             "-*-*-medium-r-*-*-*-*-*-*-c-*-iso8859-1",
+             /* If those didn't work, look for something which will
+                at least work.  */
+             "-*-fixed-*-*-*-*-*-140-*-*-c-*-iso8859-1",
+             NULL };
+       int i;
+
+       BLOCK_INPUT;
+       for (i = 0; names[i]; i++)
+         {
+           Lisp_Object list;
 
-    x_set_frame_parameters (f, Fcons (Fcons (Qfont, font), Qnil));
+           list = x_list_fonts (f, build_string (names[i]), 0, 1);
+           if (CONSP (list))
+             {
+               font = XCAR (list);
+               break;
+             }
+         }
+       UNBLOCK_INPUT;
+       if (! STRINGP (font))
+         font = build_string ("fixed");
+      }
+    x_default_parameter (f, parms, Qfont, font,
+                        "font", "Font", RES_TYPE_STRING);
   }
 
 #ifdef USE_LUCID
@@ -4767,8 +4974,35 @@ x_create_tip_frame (dpyinfo, parms, text)
       specbind (Qx_resource_name, name);
     }
 
+  f->resx = dpyinfo->resx;
+  f->resy = dpyinfo->resy;
+
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      /* Perhaps, we must allow frame parameter, say `font-backend',
+        to specify which font backends to use.  */
+#ifdef HAVE_FREETYPE
+#ifdef HAVE_XFT
+      register_font_driver (&xftfont_driver, f);
+#else  /* not HAVE_XFT */
+      register_font_driver (&ftxfont_driver, f);
+#endif /* not HAVE_XFT */
+#endif /* HAVE_FREETYPE */
+      register_font_driver (&xfont_driver, f);
+
+      x_default_parameter (f, parms, Qfont_backend, Qnil,
+                          "fontBackend", "FontBackend", RES_TYPE_STRING);
+    }
+#endif /* USE_FONT_BACKEND */
+
   /* Extract the window parameters from the supplied values that are
      needed to determine window geometry.  */
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    x_default_font_parameter (f, parms);
+else
+#endif /* USE_FONT_BACKEND */
   {
     Lisp_Object font;
 
@@ -4780,7 +5014,7 @@ x_create_tip_frame (dpyinfo, parms, text)
       {
        tem = Fquery_fontset (font, Qnil);
        if (STRINGP (tem))
-         font = x_new_fontset (f, SDATA (tem));
+         font = x_new_fontset (f, tem);
        else
          font = x_new_font (f, SDATA (font));
       }
@@ -4803,8 +5037,7 @@ x_create_tip_frame (dpyinfo, parms, text)
     if (! STRINGP (font))
       font = build_string ("fixed");
 
-    x_default_parameter (f, parms, Qfont, font,
-                        "font", "Font", RES_TYPE_STRING);
+    x_set_frame_parameters (f, Fcons (Fcons (Qfont, font), Qnil));
   }
 
   x_default_parameter (f, parms, Qborder_width, make_number (2),
@@ -5745,6 +5978,9 @@ frame_parm_handler x_frame_parm_handlers[] =
   x_set_fringe_width,
   x_set_wait_for_wm,
   x_set_fullscreen,
+#ifdef USE_FONT_BACKEND
+  x_set_font_backend
+#endif /* USE_FONT_BACKEND */
 };
 
 void
@@ -5955,6 +6191,7 @@ the tool bar buttons.  */);
   find_ccl_program_func = x_find_ccl_program;
   query_font_func = x_query_font;
   set_frame_fontset_func = x_set_font;
+  get_font_repertory_func = x_get_font_repertory;
   check_window_system_func = check_x;
 
   hourglass_atimer = NULL;
diff --git a/src/xfont.c b/src/xfont.c
new file mode 100644 (file)
index 0000000..b759ee0
--- /dev/null
@@ -0,0 +1,827 @@
+/* xfont.c -- X core font driver.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+#include <stdio.h>
+#include <X11/Xlib.h>
+
+#include "lisp.h"
+#include "dispextern.h"
+#include "xterm.h"
+#include "frame.h"
+#include "blockinput.h"
+#include "character.h"
+#include "charset.h"
+#include "fontset.h"
+#include "font.h"
+
+\f
+/* X core font driver.  */
+
+/* Prototypes of support functions.  */
+extern void x_clear_errors P_ ((Display *));
+
+static char *xfont_query_font P_ ((Display *, char *, Lisp_Object));
+static XCharStruct *xfont_get_pcm P_ ((XFontStruct *, XChar2b *));
+static int xfont_registry_charsets P_ ((Lisp_Object, struct charset **,
+                                       struct charset **));
+
+static char *
+xfont_query_font (display, name, spec)
+     Display *display;
+     char *name;
+     Lisp_Object spec;
+{
+  XFontStruct *font;
+
+  BLOCK_INPUT;
+  x_catch_errors (display);
+  font = XLoadQueryFont (display, name);
+  name = NULL;
+  if (x_had_errors_p (display))
+    {
+      /* This error is perhaps due to insufficient memory on X
+        server.  Let's just ignore it.  */
+      x_clear_errors (display);
+    }
+  else if (font)
+    {
+      unsigned long value;
+
+      if (XGetFontProperty (font, XA_FONT, &value))
+       {
+         char *n = (char *) XGetAtomName (display, (Atom) value);
+
+         if (font_parse_xlfd (n, spec) >= 0)
+           name = n;
+         else
+           XFree (n);
+       }
+      XFreeFont (display, font);
+    }
+  x_uncatch_errors ();
+  UNBLOCK_INPUT;
+
+  return name;
+}
+
+
+/* Get metrics of character CHAR2B in XFONT.  Value is null if CHAR2B
+   is not contained in the font.  */
+
+static XCharStruct *
+xfont_get_pcm (xfont, char2b)
+     XFontStruct *xfont;
+     XChar2b *char2b;
+{
+  /* The result metric information.  */
+  XCharStruct *pcm = NULL;
+
+  xassert (xfont && char2b);
+
+  if (xfont->per_char != NULL)
+    {
+      if (xfont->min_byte1 == 0 && xfont->max_byte1 == 0)
+       {
+         /* min_char_or_byte2 specifies the linear character index
+            corresponding to the first element of the per_char array,
+            max_char_or_byte2 is the index of the last character.  A
+            character with non-zero CHAR2B->byte1 is not in the font.
+            A character with byte2 less than min_char_or_byte2 or
+            greater max_char_or_byte2 is not in the font.  */
+         if (char2b->byte1 == 0
+             && char2b->byte2 >= xfont->min_char_or_byte2
+             && char2b->byte2 <= xfont->max_char_or_byte2)
+           pcm = xfont->per_char + char2b->byte2 - xfont->min_char_or_byte2;
+       }
+      else
+       {
+         /* If either min_byte1 or max_byte1 are nonzero, both
+            min_char_or_byte2 and max_char_or_byte2 are less than
+            256, and the 2-byte character index values corresponding
+            to the per_char array element N (counting from 0) are:
+
+            byte1 = N/D + min_byte1
+            byte2 = N\D + min_char_or_byte2
+
+            where:
+
+            D = max_char_or_byte2 - min_char_or_byte2 + 1
+            / = integer division
+            \ = integer modulus  */
+         if (char2b->byte1 >= xfont->min_byte1
+             && char2b->byte1 <= xfont->max_byte1
+             && char2b->byte2 >= xfont->min_char_or_byte2
+             && char2b->byte2 <= xfont->max_char_or_byte2)
+           pcm = (xfont->per_char
+                  + ((xfont->max_char_or_byte2 - xfont->min_char_or_byte2 + 1)
+                     * (char2b->byte1 - xfont->min_byte1))
+                  + (char2b->byte2 - xfont->min_char_or_byte2));
+       }
+    }
+  else
+    {
+      /* If the per_char pointer is null, all glyphs between the first
+        and last character indexes inclusive have the same
+        information, as given by both min_bounds and max_bounds.  */
+      if (char2b->byte2 >= xfont->min_char_or_byte2
+         && char2b->byte2 <= xfont->max_char_or_byte2)
+       pcm = &xfont->max_bounds;
+    }
+
+  return ((pcm == NULL
+          || (pcm->width == 0 && (pcm->rbearing - pcm->lbearing) == 0))
+         ? NULL : pcm);
+}
+
+static Lisp_Object xfont_get_cache P_ ((FRAME_PTR));
+static Lisp_Object xfont_list P_ ((Lisp_Object, Lisp_Object));
+static Lisp_Object xfont_match P_ ((Lisp_Object, Lisp_Object));
+static Lisp_Object xfont_list_family P_ ((Lisp_Object));
+static struct font *xfont_open P_ ((FRAME_PTR, Lisp_Object, int));
+static void xfont_close P_ ((FRAME_PTR, struct font *));
+static int xfont_prepare_face P_ ((FRAME_PTR, struct face *));
+#if 0
+static void xfont_done_face P_ ((FRAME_PTR, struct face *));
+#endif
+static int xfont_has_char P_ ((Lisp_Object, int));
+static unsigned xfont_encode_char P_ ((struct font *, int));
+static int xfont_text_extents P_ ((struct font *, unsigned *, int,
+                                  struct font_metrics *));
+static int xfont_draw P_ ((struct glyph_string *, int, int, int, int, int));
+
+struct font_driver xfont_driver =
+  {
+    0,                         /* Qx */
+    xfont_get_cache,
+    xfont_list,
+    xfont_match,
+    xfont_list_family,
+    NULL,
+    xfont_open,
+    xfont_close,
+    xfont_prepare_face,
+    NULL /*xfont_done_face*/,
+    xfont_has_char,
+    xfont_encode_char,
+    xfont_text_extents,
+    xfont_draw
+  };
+
+extern Lisp_Object QCname;
+
+static Lisp_Object
+xfont_get_cache (f)
+     FRAME_PTR f;
+{
+  Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
+
+  return (dpyinfo->name_list_element);
+}
+
+extern Lisp_Object Vface_alternative_font_registry_alist;
+
+static Lisp_Object
+xfont_list_pattern (frame, display, pattern)
+     Lisp_Object frame;
+     Display *display;
+     char *pattern;
+{
+  Lisp_Object list = Qnil;
+  int i, limit, num_fonts;
+  char **names;
+
+  BLOCK_INPUT;
+  x_catch_errors (display);
+
+  for (limit = 512; ; limit *= 2)
+    {
+      names = XListFonts (display, pattern, limit, &num_fonts);
+      if (x_had_errors_p (display))
+       {
+         /* This error is perhaps due to insufficient memory on X
+            server.  Let's just ignore it.  */
+         x_clear_errors (display);
+         num_fonts = 0;
+         break;
+       }
+      if (num_fonts < limit)
+       break;
+      XFreeFontNames (names);
+    }
+
+  for (i = 0; i < num_fonts; i++)
+    {
+      Lisp_Object entity = Fmake_vector (make_number (FONT_ENTITY_MAX), Qnil);
+      int result;
+
+      ASET (entity, FONT_TYPE_INDEX, Qx);
+      ASET (entity, FONT_FRAME_INDEX, frame);
+
+      result = font_parse_xlfd (names[i], entity);
+      if (result < 0)
+       {
+         /* This may be an alias name.  Try to get the full XLFD name
+            from XA_FONT property of the font.  */
+         XFontStruct *font = XLoadQueryFont (display, names[i]);
+         unsigned long value;
+
+         if (! font)
+           continue;
+         if (XGetFontProperty (font, XA_FONT, &value))
+           {
+             char *name = (char *) XGetAtomName (display, (Atom) value);
+             int len = strlen (name);
+
+             /* If DXPC (a Differential X Protocol Compressor)
+                 Ver.3.7 is running, XGetAtomName will return null
+                 string.  We must avoid such a name.  */
+             if (len > 0)
+               result = font_parse_xlfd (name, entity);
+             XFree (name);
+           }
+         XFreeFont (display, font);
+       }
+
+      if (result == 0)
+       {
+         Lisp_Object val = AREF (entity, FONT_EXTRA_INDEX);
+         char *p = (char *) SDATA (SYMBOL_NAME (val));
+
+         /* P == "RESX-RESY-SPACING-AVGWIDTH.  We rejust this font if
+            it's an autoscaled one (i.e. RESX > 0 && AVGWIDTH == 0).  */
+         if (atoi (p) > 0)
+           {
+             p += SBYTES (SYMBOL_NAME (val));
+             while (p[-1] != '-') p--;
+             if (atoi (p) == 0)
+               continue;
+           }
+         list = Fcons (entity, list);
+       }
+    }
+
+  x_uncatch_errors ();
+  UNBLOCK_INPUT;
+
+  return list;
+}
+
+static Lisp_Object
+xfont_list (frame, spec)
+     Lisp_Object frame, spec;
+{
+  FRAME_PTR f = XFRAME (frame);
+  Display *display = FRAME_X_DISPLAY_INFO (f)->display;
+  Lisp_Object list, val, extra, font_name;
+  int len;
+  char name[256];
+  
+  extra = AREF (spec, FONT_EXTRA_INDEX);
+  font_name = Qnil;
+  if (CONSP (extra))
+    {
+      val = assq_no_quit (QCotf, extra);
+      if (! NILP (val))
+       return null_vector;
+      val = assq_no_quit (QCscript, extra);
+      if (! NILP (val))
+       return null_vector;
+      val = assq_no_quit (QClanguage, extra);
+      if (! NILP (val))
+       return null_vector;
+      val = assq_no_quit (QCname, extra);
+      if (CONSP (val))
+       font_name = XCDR (val);
+    }
+
+  if (STRINGP (font_name)
+      && ! strchr ((char *) SDATA (font_name), ':'))
+    list = xfont_list_pattern (frame, display, (char *) SDATA (font_name));
+  else if ((len = font_unparse_xlfd (spec, 0, name, 256)) < 0)
+    return null_vector;
+  else
+    {
+      list = xfont_list_pattern (frame, display, name);
+      if (NILP (list))
+       {
+         Lisp_Object registry = AREF (spec, FONT_REGISTRY_INDEX);
+         Lisp_Object alter;
+
+         if (! NILP (registry)
+             && (alter = Fassoc (SYMBOL_NAME (registry),
+                                 Vface_alternative_font_registry_alist),
+                 CONSP (alter)))
+           {
+             /* Pointer to REGISTRY-ENCODING field.  */
+             char *r = name + len - SBYTES (SYMBOL_NAME (registry));
+
+             for (alter = XCDR (alter); CONSP (alter); alter = XCDR (alter))
+               if (STRINGP (XCAR (alter))
+                   && ((r - name) + SBYTES (XCAR (alter))) < 255)
+                 {
+                   strcpy (r, (char *) SDATA (XCAR (alter)));
+                   list = xfont_list_pattern (frame, display, name);
+                   if (! NILP (list))
+                     break;
+                 }
+           }
+       }
+    }
+
+  return (NILP (list) ? null_vector : Fvconcat (1, &list));
+}
+
+static Lisp_Object
+xfont_match (frame, spec)
+     Lisp_Object frame, spec;
+{
+  FRAME_PTR f = XFRAME (frame);
+  Display *display = FRAME_X_DISPLAY_INFO (f)->display;
+  Lisp_Object extra, val, entity;
+  char *name;
+  XFontStruct *xfont;
+  unsigned long value;
+
+  extra = AREF (spec, FONT_EXTRA_INDEX);
+  val = assq_no_quit (QCname, extra);
+  if (! CONSP (val) || ! STRINGP (XCDR (val)))
+    return Qnil;
+
+  BLOCK_INPUT;
+  entity = Qnil;
+  name = (char *) SDATA (XCDR (val));
+  xfont = XLoadQueryFont (display, name);
+  if (xfont)
+    {
+      if (XGetFontProperty (xfont, XA_FONT, &value))
+       {
+         int len;
+
+         name = (char *) XGetAtomName (display, (Atom) value);
+         len = strlen (name);
+
+         /* If DXPC (a Differential X Protocol Compressor)
+            Ver.3.7 is running, XGetAtomName will return null
+            string.  We must avoid such a name.  */
+         if (len > 0)
+           {
+             entity = Fmake_vector (make_number (FONT_ENTITY_MAX), Qnil);
+             ASET (entity, FONT_TYPE_INDEX, Qx);
+             ASET (entity, FONT_FRAME_INDEX, frame);
+             if (font_parse_xlfd (name, entity) < 0)
+               entity = Qnil;
+           }
+         XFree (name);
+       }
+      XFreeFont (display, xfont);
+    }
+  UNBLOCK_INPUT;
+
+  return entity;
+}
+
+static int
+memq_no_quit (elt, list)
+     Lisp_Object elt, list;
+{
+  while (CONSP (list) && ! EQ (XCAR (list), elt))
+    list = XCDR (list);
+  return (CONSP (list));
+}
+
+static Lisp_Object
+xfont_list_family (frame)
+     Lisp_Object frame;
+{
+  FRAME_PTR f = XFRAME (frame);
+  Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
+  char **names;
+  int num_fonts, i;
+  Lisp_Object list;
+  char *last_family;
+  int last_len;
+
+  BLOCK_INPUT;
+  x_catch_errors (dpyinfo->display);
+  names = XListFonts (dpyinfo->display, "-*-*-*-*-*-*-*-*-*-*-*-*-*-*",
+                     0x8000, &num_fonts);
+  if (x_had_errors_p (dpyinfo->display))
+    {
+      /* This error is perhaps due to insufficient memory on X server.
+        Let's just ignore it.  */
+      x_clear_errors (dpyinfo->display);
+      num_fonts = 0;
+    }
+
+  list = Qnil;
+  for (i = 0, last_len = 0; i < num_fonts; i++)
+    {
+      char *p0 = names[i], *p1;
+      Lisp_Object family;
+
+      p0++;                    /* skip the leading '-' */
+      while (*p0 && *p0 != '-') p0++; /* skip foundry */
+      if (! *p0)
+       continue;
+      p1 = ++p0;
+      while (*p1 && *p1 != '-') p1++; /* find the end of family */
+      if (! *p1 || p1 == p0)
+       continue;
+      if (last_len == p1 - p0
+         && bcmp (last_family, p0, last_len) == 0)
+       continue;
+      last_len = p1 - p0;
+      last_family = p0;
+      family = intern_downcase (p0, last_len);
+      if (! memq_no_quit (family, list))
+       list = Fcons (family, list);
+    }
+
+  XFreeFontNames (names);
+  x_uncatch_errors ();
+  UNBLOCK_INPUT;
+
+  return list;
+}
+
+static struct font *
+xfont_open (f, entity, pixel_size)
+     FRAME_PTR f;
+     Lisp_Object entity;
+     int pixel_size;
+{
+  Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
+  Display *display = dpyinfo->display;
+  char name[256];
+  int len;
+  unsigned long value;
+  Lisp_Object registry;
+  struct charset *encoding, *repertory;
+  struct font *font;
+  XFontStruct *xfont;
+
+  /* At first, check if we know how to encode characters for this
+     font.  */
+  registry = AREF (entity, FONT_REGISTRY_INDEX);
+  if (font_registry_charsets (registry, &encoding, &repertory) < 0)
+    return NULL;
+
+  if (XINT (AREF (entity, FONT_SIZE_INDEX)) != 0)
+    pixel_size = XINT (AREF (entity, FONT_SIZE_INDEX));
+  len = font_unparse_xlfd (entity, pixel_size, name, 256);
+  if (len <= 0)
+    return NULL;
+
+  BLOCK_INPUT;
+  x_catch_errors (display);
+  xfont = XLoadQueryFont (display, name);
+  if (x_had_errors_p (display))
+    {
+      /* This error is perhaps due to insufficient memory on X server.
+        Let's just ignore it.  */
+      x_clear_errors (display);
+      xfont = NULL;
+    }
+  x_uncatch_errors ();
+  UNBLOCK_INPUT;
+
+  if (! xfont)
+    return NULL;
+  font = malloc (sizeof (struct font));
+  font->format = Qx;
+  font->font.font = xfont;
+  font->entity = entity;
+  font->pixel_size = pixel_size;
+  font->driver = &xfont_driver;
+  font->font.name = malloc (len + 1);
+  if (! font->font.name)
+    {
+      XFreeFont (display, xfont);
+      free (font);
+      return NULL;
+    }
+  bcopy (name, font->font.name, len + 1);
+  font->font.charset = encoding->id;
+  font->encoding_charset = encoding->id;
+  font->repertory_charset = repertory ? repertory->id : -1;
+  font->ascent = xfont->ascent;
+  font->descent = xfont->descent;
+
+  if (xfont->min_bounds.width == xfont->max_bounds.width)
+    {
+      /* Fixed width font.  */
+      font->font.average_width = font->font.space_width
+       = xfont->min_bounds.width;
+    }
+  else
+    {
+      XChar2b char2b;
+      XCharStruct *pcm;
+
+      char2b.byte1 = 0x00, char2b.byte2 = 0x20;
+      pcm = xfont_get_pcm (xfont, &char2b);
+      if (pcm)
+       font->font.space_width = pcm->width;
+      else
+       font->font.space_width = xfont->max_bounds.width;
+
+      font->font.average_width
+       = (XGetFontProperty (xfont, dpyinfo->Xatom_AVERAGE_WIDTH, &value)
+          ? (long) value / 10 : 0);
+      if (font->font.average_width < 0)
+       font->font.average_width = - font->font.average_width;
+      if (font->font.average_width == 0)
+       {
+         if (pcm)
+           {
+             int width = pcm->width;
+             for (char2b.byte2 = 33; char2b.byte2 <= 126; char2b.byte2++)
+               if ((pcm = xfont_get_pcm (xfont, &char2b)) != NULL)
+                 width += pcm->width;
+             font->font.average_width = width / 95;
+           }
+         else
+           font->font.average_width = xfont->max_bounds.width;
+       }
+    }
+  font->min_width = xfont->min_bounds.width;
+  if (font->min_width <= 0)
+    font->min_width = font->font.space_width;
+
+  BLOCK_INPUT;
+  /* Try to get the full name of FONT.  Put it in FULL_NAME.  */
+  if (XGetFontProperty (xfont, XA_FONT, &value))
+    {
+      char *full_name = NULL, *p0, *p;
+      int dashes = 0;
+
+      p0 = p = (char *) XGetAtomName (FRAME_X_DISPLAY (f), (Atom) value);;
+      /* Count the number of dashes in the "full name".
+        If it is too few, this isn't really the font's full name,
+        so don't use it.
+        In X11R4, the fonts did not come with their canonical names
+        stored in them.  */
+      while (*p)
+       {
+         if (*p == '-')
+           dashes++;
+         p++;
+       }
+
+      if (dashes >= 13)
+       {
+         full_name = (char *) malloc (p - p0 + 1);
+         if (full_name)
+           bcopy (p0, full_name, p - p0 + 1);
+       }
+      XFree (p0);
+
+      if (full_name)
+       font->font.full_name = full_name;
+      else
+       font->font.full_name = font->font.name;
+    }
+  font->file_name = NULL;
+
+  font->font.size = xfont->max_bounds.width;
+  font->font.height = xfont->ascent + xfont->descent;
+  font->font.baseline_offset
+    = (XGetFontProperty (xfont, dpyinfo->Xatom_MULE_BASELINE_OFFSET, &value)
+       ? (long) value : 0);
+  font->font.relative_compose
+    = (XGetFontProperty (xfont, dpyinfo->Xatom_MULE_RELATIVE_COMPOSE, &value)
+       ? (long) value : 0);
+  font->font.default_ascent
+    = (XGetFontProperty (xfont, dpyinfo->Xatom_MULE_DEFAULT_ASCENT, &value)
+       ? (long) value : 0);
+  font->font.vertical_centering
+    = (STRINGP (Vvertical_centering_font_regexp)
+       && (fast_c_string_match_ignore_case
+          (Vvertical_centering_font_regexp, font->font.full_name) >= 0));
+
+  UNBLOCK_INPUT;
+
+  dpyinfo->n_fonts++;
+
+  /* Set global flag fonts_changed_p to non-zero if the font loaded
+     has a character with a smaller width than any other character
+     before, or if the font loaded has a smaller height than any other
+     font loaded before.  If this happens, it will make a glyph matrix
+     reallocation necessary.  */
+  if (dpyinfo->n_fonts == 1)
+    {
+      dpyinfo->smallest_font_height = font->font.height;
+      dpyinfo->smallest_char_width = font->min_width;
+      fonts_changed_p = 1;
+    }
+  else
+    {
+      if (dpyinfo->smallest_font_height > font->font.height)
+       dpyinfo->smallest_font_height = font->font.height, fonts_changed_p |= 1;
+      if (dpyinfo->smallest_char_width > font->min_width)
+       dpyinfo->smallest_char_width = font->min_width, fonts_changed_p |= 1;
+    }
+
+  return font;
+}
+
+static void
+xfont_close (f, font)
+     FRAME_PTR f;
+     struct font *font;
+{
+  BLOCK_INPUT;
+  XFreeFont (FRAME_X_DISPLAY (f), font->font.font);
+  UNBLOCK_INPUT;
+
+  if (font->font.name != font->font.full_name)
+    free (font->font.full_name);
+  free (font->font.name);
+  free (font);
+  FRAME_X_DISPLAY_INFO (f)->n_fonts--;
+}
+
+static int
+xfont_prepare_face (f, face)
+     FRAME_PTR f;
+     struct face *face;
+{
+  BLOCK_INPUT;
+  XSetFont (FRAME_X_DISPLAY (f), face->gc, face->font->fid);
+  UNBLOCK_INPUT;
+
+  return 0;
+}
+
+#if 0
+static void
+xfont_done_face (f, face)
+     FRAME_PTR f;
+     struct face *face;
+{
+  if (face->extra)
+    {
+      BLOCK_INPUT;
+      XFreeGC (FRAME_X_DISPLAY (f), (GC) face->extra);
+      UNBLOCK_INPUT;
+      face->extra = NULL;
+    }
+}
+#endif /* 0 */
+
+static int
+xfont_has_char (entity, c)
+     Lisp_Object entity;
+     int c;
+{
+  Lisp_Object registry = AREF (entity, FONT_REGISTRY_INDEX);
+  struct charset *repertory;
+
+  if (font_registry_charsets (registry, NULL, &repertory) < 0)
+    return -1;
+  if (! repertory)
+    return -1;
+  return (ENCODE_CHAR (repertory, c) != CHARSET_INVALID_CODE (repertory));
+}
+
+static unsigned
+xfont_encode_char (font, c)
+     struct font *font;
+     int c;
+{
+  struct charset *charset;
+  unsigned code;
+  XChar2b char2b;
+
+  charset = CHARSET_FROM_ID (font->encoding_charset);
+  code = ENCODE_CHAR (charset, c);
+  if (code == CHARSET_INVALID_CODE (charset))
+    return FONT_INVALID_CODE;
+  if (font->repertory_charset >= 0)
+    {
+      charset = CHARSET_FROM_ID (font->repertory_charset);
+      return (ENCODE_CHAR (charset, c) != CHARSET_INVALID_CODE (charset)
+             ? code : FONT_INVALID_CODE);
+    }
+  char2b.byte1 = code >> 8;
+  char2b.byte2 = code & 0xFF;
+  return (xfont_get_pcm (font->font.font, &char2b) ? code : FONT_INVALID_CODE);
+}
+
+static int
+xfont_text_extents (font, code, nglyphs, metrics)
+     struct font *font;
+     unsigned *code;
+     int nglyphs;
+     struct font_metrics *metrics;
+{
+  int width = 0;
+  int i, x;
+
+  if (metrics)
+    bzero (metrics, sizeof (struct font_metrics));
+  for (i = 0, x = 0; i < nglyphs; i++)
+    {
+      XChar2b char2b;
+      static XCharStruct *pcm;
+
+      if (code[i] >= 0x10000)
+       continue;
+      char2b.byte1 = code[i] >> 8, char2b.byte2 = code[i] & 0xFF;
+      pcm = xfont_get_pcm (font->font.font, &char2b);
+      if (! pcm)
+       continue;
+      if (metrics->lbearing > width + pcm->lbearing)
+       metrics->lbearing = width + pcm->lbearing;
+      if (metrics->rbearing < width + pcm->rbearing)
+       metrics->rbearing = width + pcm->rbearing;
+      if (metrics->ascent < pcm->ascent)
+       metrics->ascent = pcm->ascent;
+      if (metrics->descent < pcm->descent)
+       metrics->descent = pcm->descent;
+      width += pcm->width;
+    }
+  if (metrics)
+    metrics->width = width;
+  return width;
+}
+
+static int
+xfont_draw (s, from, to, x, y, with_background)
+     struct glyph_string *s;
+     int from, to, x, y, with_background;
+{
+  XFontStruct *xfont = s->face->font;
+  int len = to - from;
+  GC gc = s->gc;
+
+  if (gc != s->face->gc)
+    {
+      XGCValues xgcv;
+      Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (s->f);
+
+      XGetGCValues (s->display, gc, GCFont, &xgcv);
+      if (xgcv.font != xfont->fid)
+       XSetFont (s->display, gc, xfont->fid);
+    }
+
+  if (xfont->min_byte1 == 0 && xfont->max_byte1 == 0)
+    {
+      char *str;
+      int i;
+      USE_SAFE_ALLOCA;
+
+      SAFE_ALLOCA (str, char *, len);
+      for (i = 0; i < len ; i++)
+       str[i] = XCHAR2B_BYTE2 (s->char2b + from + i);
+      if (with_background > 0)
+       XDrawImageString (FRAME_X_DISPLAY (s->f), FRAME_X_WINDOW (s->f),
+                         gc, x, y, str, len);
+      else
+       XDrawString (FRAME_X_DISPLAY (s->f), FRAME_X_WINDOW (s->f),
+                    gc, x, y, str, len);
+      SAFE_FREE ();
+      return s->nchars;
+    }
+
+  if (with_background > 0)
+    XDrawImageString16 (FRAME_X_DISPLAY (s->f), FRAME_X_WINDOW (s->f),
+                       gc, x, y, s->char2b + from, len);
+  else
+    XDrawString16 (FRAME_X_DISPLAY (s->f), FRAME_X_WINDOW (s->f),
+                  gc, x, y, s->char2b + from, len);
+
+  return len;
+}
+
+\f
+void
+syms_of_xfont ()
+{
+  xfont_driver.type = Qx;
+  register_font_driver (&xfont_driver, NULL);
+}
+
+/* arch-tag: 23c5f366-a5ee-44b7-a3b7-90d6da7fd749
+   (do not change this comment) */
diff --git a/src/xftfont.c b/src/xftfont.c
new file mode 100644 (file)
index 0000000..421bc34
--- /dev/null
@@ -0,0 +1,667 @@
+/* xftfont.c -- XFT font driver.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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 2, or (at your option)
+any later version.
+
+GNU Emacs 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+#include <stdio.h>
+#include <X11/Xlib.h>
+#include <X11/Xft/Xft.h>
+
+#include "lisp.h"
+#include "dispextern.h"
+#include "xterm.h"
+#include "frame.h"
+#include "blockinput.h"
+#include "character.h"
+#include "charset.h"
+#include "fontset.h"
+#include "font.h"
+#include "ftfont.h"
+
+/* Xft font driver.  */
+
+static Lisp_Object Qxft;
+
+/* The actual structure for Xft font that can be casted to struct
+   font.  */
+
+struct xftfont_info
+{
+  struct font font;
+  Display *display;
+  int screen;
+  XftFont *xftfont;
+#ifdef HAVE_LIBOTF
+  int maybe_otf;         /* Flag to tell if this may be OTF or not.  */
+  OTF *otf;
+#endif /* HAVE_LIBOTF */
+};
+
+/* Structure pointed by (struct face *)->extra  */
+
+struct xftface_info
+{
+  XftColor xft_fg;             /* color for face->foreground */
+  XftColor xft_bg;             /* color for face->background */
+};
+
+static void xftfont_get_colors P_ ((FRAME_PTR, struct face *, GC gc,
+                                   struct xftface_info *,
+                                   XftColor *fg, XftColor *bg));
+static Font xftfont_default_fid P_ ((FRAME_PTR));
+
+
+/* Setup foreground and background colors of GC into FG and BG.  If
+   XFTFACE_INFO is not NULL, reuse the colors in it if possible.  BG
+   may be NULL.  */
+
+static void
+xftfont_get_colors (f, face, gc, xftface_info, fg, bg)
+     FRAME_PTR f;
+     struct face *face;
+     GC gc;
+     struct xftface_info *xftface_info;
+     XftColor *fg, *bg;
+{
+  if (xftface_info && face->gc == gc)
+    {
+      *fg = xftface_info->xft_fg;
+      if (bg)
+       *bg = xftface_info->xft_bg;
+    }
+  else
+    {
+      XGCValues xgcv;
+      int fg_done = 0, bg_done = 0;
+
+      BLOCK_INPUT;
+      XGetGCValues (FRAME_X_DISPLAY (f), gc,
+                   GCForeground | GCBackground, &xgcv);
+      if (xftface_info)
+       {
+         if (xgcv.foreground == face->foreground)
+           *fg = xftface_info->xft_fg, fg_done = 1;
+         else if (xgcv.foreground == face->background)
+           *fg = xftface_info->xft_bg, fg_done = 1;
+         if (! bg)
+           bg_done = 1;
+         else if (xgcv.background == face->background)
+           *bg = xftface_info->xft_bg, bg_done = 1;
+         else if (xgcv.background == face->foreground)
+           *bg = xftface_info->xft_fg, bg_done = 1;
+       }
+
+      if (fg_done + bg_done < 2)
+       {
+         XColor colors[2];
+
+         colors[0].pixel = fg->pixel = xgcv.foreground;
+         if (bg)
+           colors[1].pixel = bg->pixel = xgcv.background;
+         XQueryColors (FRAME_X_DISPLAY (f), FRAME_X_COLORMAP (f), colors,
+                       bg ? 2 : 1);
+         fg->color.alpha = 0xFFFF;
+         fg->color.red = colors[0].red;
+         fg->color.green = colors[0].green;
+         fg->color.blue = colors[0].blue;
+         if (bg)
+           {
+             bg->color.alpha = 0xFFFF;
+             bg->color.red = colors[1].red;
+             bg->color.green = colors[1].green;
+             bg->color.blue = colors[1].blue;
+           }
+       }
+      UNBLOCK_INPUT;
+    }
+}
+
+/* Return the default Font ID on frame F.  The Returned Font ID is
+   stored in the GC of the frame F, but the font is never used.  So,
+   any ID is ok as long as it is valid.  */
+
+static Font
+xftfont_default_fid (f)
+     FRAME_PTR f;
+{
+  static int fid_known;
+  static Font fid;
+
+  if (! fid_known)
+    {
+      fid = XLoadFont (FRAME_X_DISPLAY (f), "fixed");
+      if (! fid)
+       {
+         fid = XLoadFont (FRAME_X_DISPLAY (f), "*");
+         if (! fid)
+           abort ();
+       }
+      fid_known = 1;
+    }
+  return fid;
+}
+
+
+static Lisp_Object xftfont_list P_ ((Lisp_Object, Lisp_Object));
+static Lisp_Object xftfont_match P_ ((Lisp_Object, Lisp_Object));
+static struct font *xftfont_open P_ ((FRAME_PTR, Lisp_Object, int));
+static void xftfont_close P_ ((FRAME_PTR, struct font *));
+static int xftfont_prepare_face P_ ((FRAME_PTR, struct face *));
+static void xftfont_done_face P_ ((FRAME_PTR, struct face *));
+static unsigned xftfont_encode_char P_ ((struct font *, int));
+static int xftfont_text_extents P_ ((struct font *, unsigned *, int,
+                                    struct font_metrics *));
+static int xftfont_draw P_ ((struct glyph_string *, int, int, int, int, int));
+
+static int xftfont_anchor_point P_ ((struct font *, unsigned, int,
+                                    int *, int *));
+static int xftfont_end_for_frame P_ ((FRAME_PTR f));
+
+struct font_driver xftfont_driver;
+
+static Lisp_Object
+xftfont_list (frame, spec)
+     Lisp_Object frame;
+     Lisp_Object spec;
+{
+  Lisp_Object val = ftfont_driver.list (frame, spec);
+  int i;
+  
+  if (! NILP (val))
+    for (i = 0; i < ASIZE (val); i++)
+      ASET (AREF (val, i), FONT_TYPE_INDEX, Qxft);
+  return val;
+}
+
+static Lisp_Object
+xftfont_match (frame, spec)
+     Lisp_Object frame;
+     Lisp_Object spec;
+{
+  Lisp_Object entity = ftfont_driver.match (frame, spec);
+
+  if (VECTORP (entity))
+    ASET (entity, FONT_TYPE_INDEX, Qxft);
+  return entity;
+}
+
+extern Lisp_Object ftfont_font_format P_ ((FcPattern *));
+
+static FcChar8 ascii_printable[95];
+
+static struct font *
+xftfont_open (f, entity, pixel_size)
+     FRAME_PTR f;
+     Lisp_Object entity;
+     int pixel_size;
+{
+  Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
+  Display *display = FRAME_X_DISPLAY (f);
+  Lisp_Object val;
+  FcPattern *pattern, *pat = NULL;
+  FcChar8 *file;
+  struct xftfont_info *xftfont_info = NULL;
+  XFontStruct *xfont = NULL;
+  struct font *font;
+  double size = 0;
+  XftFont *xftfont = NULL;
+  int spacing;
+  char *name;
+  int len;
+  XGlyphInfo extents;
+  FT_Face ft_face;
+
+  val = AREF (entity, FONT_EXTRA_INDEX);
+  if (XTYPE (val) != Lisp_Misc
+      || XMISCTYPE (val) != Lisp_Misc_Save_Value)
+    return NULL;
+  pattern = XSAVE_VALUE (val)->pointer;
+  if (FcPatternGetString (pattern, FC_FILE, 0, &file) != FcResultMatch)
+    return NULL;
+
+  size = XINT (AREF (entity, FONT_SIZE_INDEX));
+  if (size == 0)
+    size = pixel_size;
+
+  pat = FcPatternCreate ();
+  FcPatternAddString (pat, FC_FILE, file);
+  FcPatternAddDouble (pat, FC_PIXEL_SIZE, pixel_size);
+  /*FcPatternAddBool (pat, FC_ANTIALIAS, FcTrue);*/
+  val = AREF (entity, FONT_FAMILY_INDEX);
+  if (! NILP (val))
+    FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) SDATA (SYMBOL_NAME (val)));
+  FcConfigSubstitute (NULL, pat, FcMatchPattern);
+
+  BLOCK_INPUT;
+  XftDefaultSubstitute (display, FRAME_X_SCREEN_NUMBER (f), pat);
+  xftfont = XftFontOpenPattern (display, pat);
+  /* We should not destroy PAT here because it is kept in XFTFONT and
+     destroyed automatically when XFTFONT is closed.  */
+  if (! xftfont)
+    goto err;
+
+  xftfont_info = malloc (sizeof (struct xftfont_info));
+  if (! xftfont_info)
+    goto err;
+  xfont = malloc (sizeof (XFontStruct));
+  if (! xfont)
+    goto err;
+  xftfont_info->display = display;
+  xftfont_info->screen = FRAME_X_SCREEN_NUMBER (f);
+  xftfont_info->xftfont = xftfont;
+#ifdef HAVE_LIBOTF
+  ft_face = XftLockFace (xftfont);
+  xftfont_info->maybe_otf = ft_face->face_flags & FT_FACE_FLAG_SFNT;
+  XftUnlockFace (xftfont);
+  xftfont_info->otf = NULL;
+#endif /* HAVE_LIBOTF */
+
+  font = (struct font *) xftfont_info;
+  font->format = ftfont_font_format (xftfont->pattern);
+  font->entity = entity;
+  font->pixel_size = size;
+  font->driver = &xftfont_driver;
+  len = 96;
+  name = malloc (len);
+  while (name && font_unparse_fcname (entity, pixel_size, name, len) < 0)
+    {
+      char *new = realloc (name, len += 32);
+
+      if (! new)
+       free (name);
+      name = new;
+    }
+  if (! name)
+    goto err;
+  font->font.full_name = font->font.name = name;
+  font->file_name = (char *) file;
+  font->font.size = xftfont->max_advance_width;
+  font->font.charset = font->encoding_charset = font->repertory_charset = -1;
+
+  if (FcPatternGetInteger (xftfont->pattern, FC_SPACING, 0, &spacing)
+      != FcResultMatch)
+    spacing = FC_PROPORTIONAL;
+  if (! ascii_printable[0])
+    {
+      int i;
+      for (i = 0; i < 95; i++)
+       ascii_printable[i] = ' ' + i;
+    }
+  if (spacing != FC_PROPORTIONAL)
+    {
+      font->font.average_width = font->font.space_width
+       = xftfont->max_advance_width;
+      XftTextExtents8 (display, xftfont, ascii_printable + 1, 94, &extents);
+    }
+  else
+    {
+      XftTextExtents8 (display, xftfont, ascii_printable, 1, &extents);
+      font->font.space_width = extents.xOff;
+      if (font->font.space_width <= 0)
+       /* dirty workaround */
+       font->font.space_width = pixel_size;    
+      XftTextExtents8 (display, xftfont, ascii_printable + 1, 94, &extents);
+      font->font.average_width = (font->font.space_width + extents.xOff) / 95;
+    }
+  UNBLOCK_INPUT;
+
+  font->ascent = xftfont->ascent;
+  if (font->ascent < extents.y)
+    font->ascent = extents.y;
+  font->descent = xftfont->descent;
+  if (font->descent < extents.height - extents.y)
+    font->descent = extents.height - extents.y;
+  font->font.height = font->ascent + font->descent;
+
+  /* Unfortunately Xft doesn't provide a way to get minimum char
+     width.  So, we use space_width instead.  */
+  font->min_width = font->font.space_width;
+
+  font->font.baseline_offset = 0;
+  font->font.relative_compose = 0;
+  font->font.default_ascent = 0;
+  font->font.vertical_centering = 0;
+
+  /* Setup pseudo XFontStruct */
+  xfont->fid = xftfont_default_fid (f);
+  xfont->ascent = font->ascent;
+  xfont->descent = font->descent;
+  xfont->max_bounds.descent = font->descent;
+  xfont->max_bounds.width = xftfont->max_advance_width;
+  xfont->min_bounds.width = font->font.space_width;
+  font->font.font = xfont;
+
+  dpyinfo->n_fonts++;
+
+  /* Set global flag fonts_changed_p to non-zero if the font loaded
+     has a character with a smaller width than any other character
+     before, or if the font loaded has a smaller height than any other
+     font loaded before.  If this happens, it will make a glyph matrix
+     reallocation necessary.  */
+  if (dpyinfo->n_fonts == 1)
+    {
+      dpyinfo->smallest_font_height = font->font.height;
+      dpyinfo->smallest_char_width = font->min_width;
+      fonts_changed_p = 1;
+    }
+  else
+    {
+      if (dpyinfo->smallest_font_height > font->font.height)
+       dpyinfo->smallest_font_height = font->font.height,
+         fonts_changed_p |= 1;
+      if (dpyinfo->smallest_char_width > font->min_width)
+       dpyinfo->smallest_char_width = font->min_width,
+         fonts_changed_p |= 1;
+    }
+
+  return font;
+
+ err:
+  if (xftfont) XftFontClose (display, xftfont);
+  UNBLOCK_INPUT;
+  if (xftfont_info) free (xftfont_info);
+  if (xfont) free (xfont);
+  return NULL;
+}
+
+static void
+xftfont_close (f, font)
+     FRAME_PTR f;
+     struct font *font;
+{
+  struct xftfont_info *xftfont_info = (struct xftfont_info *) font;
+
+#ifdef HAVE_LIBOTF
+  if (xftfont_info->otf)
+    OTF_close (xftfont_info->otf);
+#endif
+  XftFontClose (xftfont_info->display, xftfont_info->xftfont);
+  if (font->font.name)
+    free (font->font.name);
+  free (font);
+  FRAME_X_DISPLAY_INFO (f)->n_fonts--;
+}
+
+static int
+xftfont_prepare_face (f, face)
+     FRAME_PTR f;
+     struct face *face;
+{
+  struct xftface_info *xftface_info;
+
+#if 0
+  /* This doesn't work if face->ascii_face doesn't use an Xft font. */
+  if (face != face->ascii_face)
+    {
+      face->extra = face->ascii_face->extra;
+      return 0;
+    }
+#endif
+
+  xftface_info = malloc (sizeof (struct xftface_info));
+  if (! xftface_info)
+    return -1;
+
+  BLOCK_INPUT;
+  xftfont_get_colors (f, face, face->gc, NULL,
+                     &xftface_info->xft_fg, &xftface_info->xft_bg);
+  UNBLOCK_INPUT;
+
+  face->extra = xftface_info;
+  return 0;
+}
+
+static void
+xftfont_done_face (f, face)
+     FRAME_PTR f;
+     struct face *face;
+{
+  struct xftface_info *xftface_info;
+  
+#if 0
+  /* This doesn't work if face->ascii_face doesn't use an Xft font. */
+  if (face != face->ascii_face
+      || ! face->extra)
+    return;
+#endif
+
+  xftface_info = (struct xftface_info *) face->extra;
+  if (xftface_info)
+    {
+      free (xftface_info);
+      face->extra = NULL;
+    }
+}
+
+static unsigned
+xftfont_encode_char (font, c)
+     struct font *font;
+     int c;
+{
+  struct xftfont_info *xftfont_info = (struct xftfont_info *) font;
+  unsigned code = XftCharIndex (xftfont_info->display, xftfont_info->xftfont,
+                               (FcChar32) c);
+  
+  return (code ? code : FONT_INVALID_CODE);
+}
+
+static int
+xftfont_text_extents (font, code, nglyphs, metrics)
+     struct font *font;
+     unsigned *code;
+     int nglyphs;
+     struct font_metrics *metrics;
+{
+  struct xftfont_info *xftfont_info = (struct xftfont_info *) font;
+  XGlyphInfo extents;
+
+  BLOCK_INPUT;
+  XftGlyphExtents (xftfont_info->display, xftfont_info->xftfont, code, nglyphs,
+                  &extents);
+  UNBLOCK_INPUT;
+  if (metrics)
+    {
+      metrics->lbearing = - extents.x;
+      metrics->rbearing = - extents.x + extents.width;
+      metrics->width = extents.xOff;
+      metrics->ascent = extents.y;
+      metrics->descent = extents.height - extents.y;
+    }
+  return extents.xOff;
+}
+
+static XftDraw *
+xftfont_get_xft_draw (f)
+     FRAME_PTR f;
+{
+  XftDraw *xft_draw = font_get_frame_data (f, &xftfont_driver);;
+
+  if (! xft_draw)
+    {
+      BLOCK_INPUT;
+      xft_draw= XftDrawCreate (FRAME_X_DISPLAY (f),
+                              FRAME_X_WINDOW (f),
+                              FRAME_X_VISUAL (f),
+                              FRAME_X_COLORMAP (f));
+      UNBLOCK_INPUT;
+      if (! xft_draw)
+       abort ();
+      font_put_frame_data (f, &xftfont_driver, xft_draw);
+    }
+  return xft_draw;
+}
+
+static int
+xftfont_draw (s, from, to, x, y, with_background)
+     struct glyph_string *s;
+     int from, to, x, y, with_background;
+{
+  FRAME_PTR f = s->f;
+  struct face *face = s->face;
+  struct xftfont_info *xftfont_info = (struct xftfont_info *) s->font_info;
+  struct xftface_info *xftface_info = NULL;
+  XftDraw *xft_draw = xftfont_get_xft_draw (f);
+  FT_UInt *code;
+  XftColor fg, bg;
+  XRectangle r;
+  int len = to - from;
+  int i;
+
+  if (s->font_info == face->font_info)
+    xftface_info = (struct xftface_info *) face->extra;
+  xftfont_get_colors (f, face, s->gc, xftface_info,
+                     &fg, with_background ? &bg : NULL);
+  BLOCK_INPUT;
+  if (s->num_clips > 0)
+    XftDrawSetClipRectangles (xft_draw, 0, 0, s->clip, s->num_clips);
+  else
+    XftDrawSetClip (xft_draw, NULL);
+
+  if (with_background)
+    {
+      struct font *font = (struct font *) face->font_info;
+
+      XftDrawRect (xft_draw, &bg,
+                  x, y - face->font->ascent, s->width, font->font.height);
+    }
+  code = alloca (sizeof (FT_UInt) * len);
+  for (i = 0; i < len; i++)
+    code[i] = ((XCHAR2B_BYTE1 (s->char2b + from + i) << 8)
+              | XCHAR2B_BYTE2 (s->char2b + from + i));
+
+  XftDrawGlyphs (xft_draw, &fg, xftfont_info->xftfont,
+                x, y, code, len);
+  UNBLOCK_INPUT;
+
+  return len;
+}
+
+static int
+xftfont_anchor_point (font, code, index, x, y)
+     struct font *font;
+     unsigned code;
+     int index;
+     int *x, *y;
+{
+  struct xftfont_info *xftfont_info = (struct xftfont_info *) font;
+  FT_Face ft_face = XftLockFace (xftfont_info->xftfont);
+  int result;
+
+  if (FT_Load_Glyph (ft_face, code, FT_LOAD_DEFAULT) != 0)
+    result = -1;
+  else if (ft_face->glyph->format != FT_GLYPH_FORMAT_OUTLINE)
+    result = -1;
+  else if (index >= ft_face->glyph->outline.n_points)
+    result = -1;
+  else
+    {
+      *x = ft_face->glyph->outline.points[index].x;
+      *y = ft_face->glyph->outline.points[index].y;
+    }
+  XftUnlockFace (xftfont_info->xftfont);
+  return result;
+}
+
+static int
+xftfont_end_for_frame (f)
+     FRAME_PTR f;
+{
+  XftDraw *xft_draw = font_get_frame_data (f, &xftfont_driver);
+
+  if (xft_draw)
+    {
+      BLOCK_INPUT;
+      XftDrawDestroy (xft_draw);
+      UNBLOCK_INPUT;
+      font_put_frame_data (f, &xftfont_driver, NULL);
+    }
+  return 0;
+}
+
+#ifdef HAVE_LIBOTF
+#ifdef HAVE_M17N_FLT
+static Lisp_Object
+xftfont_shape (lgstring)
+     Lisp_Object lgstring;
+{
+  struct font *font;
+  struct xftfont_info *xftfont_info;
+  int result;
+  FT_Face ft_face;
+
+  CHECK_FONT_GET_OBJECT (LGSTRING_FONT (lgstring), font);
+  xftfont_info = (struct xftfont_info *) font;
+  if (! xftfont_info->maybe_otf)
+    return Qnil;
+  ft_face = XftLockFace (xftfont_info->xftfont);
+  if (! xftfont_info->otf)
+    {
+      OTF *otf = OTF_open_ft_face (ft_face);
+
+      if (! otf || OTF_get_table (otf, "head") < 0)
+       {
+         if (otf)
+           OTF_close (otf);
+         xftfont_info->maybe_otf = 0;
+         XftUnlockFace (xftfont_info->xftfont);
+         return 0;
+       }
+      xftfont_info->otf = otf;
+    }
+
+  result = ftfont_shape_by_flt (lgstring, font, ft_face, xftfont_info->otf);
+  XftUnlockFace (xftfont_info->xftfont);
+  return result;
+}
+#endif /* HAVE_M17N_FLT */
+#endif /* HAVE_LIBOTF */
+
+void
+syms_of_xftfont ()
+{
+  DEFSYM (Qxft, "xft");
+
+  xftfont_driver = ftfont_driver;
+  xftfont_driver.type = Qxft;
+  xftfont_driver.get_cache = xfont_driver.get_cache;
+  xftfont_driver.list = xftfont_list;
+  xftfont_driver.match = xftfont_match;
+  xftfont_driver.open = xftfont_open;
+  xftfont_driver.close = xftfont_close;
+  xftfont_driver.prepare_face = xftfont_prepare_face;
+  xftfont_driver.done_face = xftfont_done_face;
+  xftfont_driver.encode_char = xftfont_encode_char;
+  xftfont_driver.text_extents = xftfont_text_extents;
+  xftfont_driver.draw = xftfont_draw;
+  xftfont_driver.anchor_point = xftfont_anchor_point;
+  xftfont_driver.end_for_frame = xftfont_end_for_frame;
+#ifdef HAVE_LIBOTF
+#ifdef HAVE_M17N_FLT
+  xftfont_driver.shape = xftfont_shape;
+#endif /* HAVE_M17N_FLT */
+#endif /* HAVE_LIBOTF */
+
+  register_font_driver (&xftfont_driver, NULL);
+}
+
+/* arch-tag: 64ec61bf-7c8e-4fe6-b953-c6a85d5e1605
+   (do not change this comment) */
index 14c723971108450a6726dac140c774c86f0fdcba..15aab98f9c5eadde96cc1321f2d9e3eac7f2001e 100644 (file)
@@ -248,10 +248,10 @@ menubar_id_to_frame (id)
   Lisp_Object tail, frame;
   FRAME_PTR f;
 
-  for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       frame = XCAR (tail);
-      if (!GC_FRAMEP (frame))
+      if (!FRAMEP (frame))
         continue;
       f = XFRAME (frame);
       if (!FRAME_WINDOW_P (f))
@@ -1561,10 +1561,10 @@ show_help_event (f, widget, help)
       xt_or_gtk_widget frame_widget = XtParent (widget);
       Lisp_Object tail;
 
-      for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
+      for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
        {
          frame = XCAR (tail);
-         if (GC_FRAMEP (frame)
+         if (FRAMEP (frame)
              && (f = XFRAME (frame),
                  FRAME_X_P (f) && f->output_data.x->widget == frame_widget))
            break;
@@ -1630,7 +1630,7 @@ menu_highlight_callback (widget, id, call_data)
 static void
 find_and_call_menu_selection (f, menu_bar_items_used, vector, client_data)
      FRAME_PTR f;
-     int menu_bar_items_used;
+     EMACS_INT menu_bar_items_used;
      Lisp_Object vector;
      void *client_data;
 {
index 79f1da81a413729e30ac1ec0da79e969b3b183d3..a1dc47c0b07f1856a9d050f30fcc5d15373d7af0 100644 (file)
@@ -610,6 +610,29 @@ x_load_resources (display, xrm_string, myname, myclass)
 
 #endif /* not USE_MOTIF */
 
+#ifdef HAVE_X_I18N
+  {
+#ifdef USE_MOTIF
+    Bool motif = True;
+#else  /* not USE_MOTIF */
+    Bool motif = False;
+#endif  /* not USE_MOTIF */
+    /* Setup the default fontSet resource.  */
+    extern char *xic_create_fontsetname P_ ((char *base_fontname, Bool motif));
+    char *fontsetname = xic_create_fontsetname (helv, motif);
+    int len = strlen (fontsetname);
+    char *buf = line;
+
+    /* fontsetname may be very long.  */
+    if (len + 16 > 256)
+      buf = alloca (len + 16);
+    sprintf (buf, "Emacs*fontSet: %s", fontsetname);
+    XrmPutLineResource (&rdb, buf);
+    if (fontsetname != helv)
+      xfree (fontsetname);
+  }
+#endif /* HAVE_X_I18N */
+
   user_database = get_user_db (display);
 
   /* Figure out what the "customization string" is, so we can use it
index 45907b30be4e79b5f007aef492b2339d2038e092..53debec8c07302a83ffe93ec38e4dd38352e95da 100644 (file)
@@ -123,13 +123,6 @@ Lisp_Object QCUT_BUFFER0, QCUT_BUFFER1, QCUT_BUFFER2, QCUT_BUFFER3,
 
 static Lisp_Object Vx_lost_selection_functions;
 static Lisp_Object Vx_sent_selection_functions;
-/* Coding system for communicating with other X clients via selection
-   and clipboard.  */
-static Lisp_Object Vselection_coding_system;
-
-/* Coding system for the next communicating with other X clients.  */
-static Lisp_Object Vnext_selection_coding_system;
-
 static Lisp_Object Qforeign_selection;
 
 /* If this is a smaller number than the max-request-size of the display,
@@ -3006,30 +2999,6 @@ This hook doesn't let you change the behavior of Emacs's selection replies,
 it merely informs you that they have happened.  */);
   Vx_sent_selection_functions = Qnil;
 
-  DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system,
-              doc: /* Coding system for communicating with other X clients.
-
-When sending text via selection and clipboard, if the requested
-data-type is not "UTF8_STRING", the text is encoded by this coding
-system.
-
-When receiving text, if the data-type of the received text is not
-"UTF8_STRING", it is decoded by this coding system.
-
-See also the documentation of the variable `x-select-request-type' how
-to control which data-type to request for receiving text.
-
-The default value is `compound-text-with-extensions'.  */);
-  Vselection_coding_system = intern ("compound-text-with-extensions");
-
-  DEFVAR_LISP ("next-selection-coding-system", &Vnext_selection_coding_system,
-              doc: /* Coding system for the next communication with other X clients.
-Usually, `selection-coding-system' is used for communicating with
-other X clients.  But, if this variable is set, it is used for the
-next communication only.  After the communication, this variable is
-set to nil.  */);
-  Vnext_selection_coding_system = Qnil;
-
   DEFVAR_INT ("x-selection-timeout", &x_selection_timeout,
              doc: /* Number of milliseconds to wait for a selection reply.
 If the selection owner doesn't reply in this time, we give up.
index 895d61df71400827d1475dceafc6a7bd2face454..1d39801a72df53f13e973d96af7bd298df763363 100644 (file)
@@ -67,6 +67,7 @@ Boston, MA 02110-1301, USA.  */
 /* #include <sys/param.h>  */
 
 #include "charset.h"
+#include "character.h"
 #include "coding.h"
 #include "ccl.h"
 #include "frame.h"
@@ -100,6 +101,10 @@ Boston, MA 02110-1301, USA.  */
 #include "gtkutil.h"
 #endif
 
+#ifdef USE_FONT_BACKEND
+#include "font.h"
+#endif /* USE_FONT_BACKEND */
+
 #ifdef USE_LUCID
 extern int xlwmenu_window_p P_ ((Widget w, Window window));
 extern void xlwmenu_redisplay P_ ((Widget));
@@ -872,7 +877,8 @@ XTreset_terminal_modes (struct terminal *terminal)
 
 /* Function prototypes of this page.  */
 
-static int x_encode_char P_ ((int, XChar2b *, struct font_info *, int *));
+static int x_encode_char P_ ((int, XChar2b *, struct font_info *,
+                             struct charset *, int *));
 
 
 /* Get metrics of character CHAR2B in FONT.  Value is null if CHAR2B
@@ -951,13 +957,13 @@ x_per_char_metric (font, char2b, font_type)
    the two-byte form of C.  Encoding is returned in *CHAR2B.  */
 
 static int
-x_encode_char (c, char2b, font_info, two_byte_p)
+x_encode_char (c, char2b, font_info, charset, two_byte_p)
      int c;
      XChar2b *char2b;
      struct font_info *font_info;
+     struct charset *charset;
      int *two_byte_p;
 {
-  int charset = CHAR_CHARSET (c);
   XFontStruct *font = font_info->font;
 
   /* FONT_INFO may define a scheme by which to encode byte1 and byte2.
@@ -971,31 +977,31 @@ x_encode_char (c, char2b, font_info, two_byte_p)
       check_ccl_update (ccl);
       if (CHARSET_DIMENSION (charset) == 1)
        {
-         ccl->reg[0] = charset;
+         ccl->reg[0] = CHARSET_ID (charset);
          ccl->reg[1] = char2b->byte2;
          ccl->reg[2] = -1;
        }
       else
        {
-         ccl->reg[0] = charset;
+         ccl->reg[0] = CHARSET_ID (charset);
          ccl->reg[1] = char2b->byte1;
          ccl->reg[2] = char2b->byte2;
        }
 
-      ccl_driver (ccl, NULL, NULL, 0, 0, NULL);
+      ccl_driver (ccl, NULL, NULL, 0, 0, Qnil);
 
       /* We assume that MSBs are appropriately set/reset by CCL
         program.  */
       if (font->max_byte1 == 0)        /* 1-byte font */
-       char2b->byte1 = 0, char2b->byte2 = ccl->reg[1];
+       STORE_XCHAR2B (char2b, 0, ccl->reg[1]);
       else
-       char2b->byte1 = ccl->reg[1], char2b->byte2 = ccl->reg[2];
+       STORE_XCHAR2B (char2b, ccl->reg[1], ccl->reg[2]);
     }
-  else if (font_info->encoding[charset])
+  else if (font_info->encoding_type)
     {
       /* Fixed encoding scheme.  See fontset.h for the meaning of the
         encoding numbers.  */
-      int enc = font_info->encoding[charset];
+      unsigned char enc = font_info->encoding_type;
 
       if ((enc == 1 || enc == 2)
          && CHARSET_DIMENSION (charset) == 2)
@@ -1123,15 +1129,20 @@ x_set_mouse_face_gc (s)
     face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
 
   if (s->first_glyph->type == CHAR_GLYPH)
-    face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch);
+    face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch, -1, Qnil);
   else
-    face_id = FACE_FOR_CHAR (s->f, face, 0);
+    face_id = FACE_FOR_CHAR (s->f, face, 0, -1, Qnil);
   s->face = FACE_FROM_ID (s->f, face_id);
   PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
 
   /* If font in this face is same as S->font, use it.  */
   if (s->font == s->face->font)
     s->gc = s->face->gc;
+#ifdef USE_FONT_BACKEND
+  else if (enable_font_backend)
+    /* No need of setting a font for s->gc.  */
+    s->gc = s->face->gc;
+#endif /* USE_FONT_BACKEND */
   else
     {
       /* Otherwise construct scratch_cursor_gc with values from FACE
@@ -1225,16 +1236,61 @@ x_set_glyph_string_gc (s)
 static INLINE void
 x_set_glyph_string_clipping (s)
      struct glyph_string *s;
+{
+#ifdef USE_FONT_BACKEND
+  XRectangle *r = s->clip;
+#else
+  XRectangle r[2];
+#endif
+  int n = get_glyph_string_clip_rects (s, r, 2);
+
+  if (n > 0)
+    XSetClipRectangles (s->display, s->gc, 0, 0, r, n, Unsorted);
+#ifdef USE_FONT_BACKEND
+  s->num_clips = n;
+#endif
+}
+
+
+/* Set SRC's clipping for output of glyph string DST.  This is called
+   when we are drawing DST's left_overhang or right_overhang only in
+   the area of SRC.  */
+
+static void
+x_set_glyph_string_clipping_exactly (src, dst)
+     struct glyph_string *src, *dst;
 {
   XRectangle r;
-  get_glyph_string_clip_rect (s, &r);
-  XSetClipRectangles (s->display, s->gc, 0, 0, &r, 1, Unsorted);
+
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    {
+      r.x = src->x;
+      r.width = src->width;
+      r.y = src->y;
+      r.height = src->height;
+      dst->clip[0] = r;
+      dst->num_clips = 1;
+    }
+  else
+    {
+#endif /* USE_FONT_BACKEND */
+  struct glyph_string *clip_head = src->clip_head;
+  struct glyph_string *clip_tail = src->clip_tail;
+
+  /* This foces clipping just this glyph string.  */
+  src->clip_head = src->clip_tail = src;
+  get_glyph_string_clip_rect (src, &r);
+  src->clip_head = clip_head, src->clip_tail = clip_tail;
+#ifdef USE_FONT_BACKEND
+    }
+#endif /* USE_FONT_BACKEND */
+  XSetClipRectangles (dst->display, dst->gc, 0, 0, &r, 1, Unsorted);
 }
 
 
 /* RIF:
-   Compute left and right overhang of glyph string S.  If S is a glyph
-   string for a composition, assume overhangs don't exist.  */
+   Compute left and right overhang of glyph string S.  */
 
 static void
 x_compute_glyph_string_overhangs (s)
@@ -1245,11 +1301,34 @@ x_compute_glyph_string_overhangs (s)
     {
       XCharStruct cs;
       int direction, font_ascent, font_descent;
+
+#ifdef USE_FONT_BACKEND
+      if (enable_font_backend)
+       {
+         unsigned *code = alloca (sizeof (unsigned) * s->nchars);
+         struct font *font = (struct font *) s->font_info;
+         struct font_metrics metrics;
+         int i;
+
+         for (i = 0; i < s->nchars; i++)
+           code[i] = (s->char2b[i].byte1 << 8) | s->char2b[i].byte2;
+         font->driver->text_extents (font, code, s->nchars, &metrics);
+         cs.rbearing = metrics.rbearing;
+         cs.lbearing = metrics.lbearing;
+         cs.width = metrics.width;
+       }
+      else
+#endif /* USE_FONT_BACKEND */
       XTextExtents16 (s->font, s->char2b, s->nchars, &direction,
                      &font_ascent, &font_descent, &cs);
       s->right_overhang = cs.rbearing > cs.width ? cs.rbearing - cs.width : 0;
       s->left_overhang = cs.lbearing < 0 ? -cs.lbearing : 0;
     }
+  else if (s->cmp)
+    {
+      s->right_overhang = s->cmp->rbearing - s->cmp->pixel_width;
+      s->left_overhang = - s->cmp->lbearing;
+    }
 }
 
 
@@ -1339,6 +1418,26 @@ x_draw_glyph_string_foreground (s)
          x += g->pixel_width;
        }
     }
+#ifdef USE_FONT_BACKEND
+  else if (enable_font_backend)
+    {
+      int boff = s->font_info->baseline_offset;
+      struct font *font = (struct font *) s->font_info;
+      int y;
+
+      if (s->font_info->vertical_centering)
+       boff = VCENTER_BASELINE_OFFSET (s->font, s->f) - boff;
+
+      y = s->ybase - boff;
+      if (s->for_overlaps
+         || (s->background_filled_p && s->hl != DRAW_CURSOR))
+       font->driver->draw (s, 0, s->nchars, x, y, 0);
+      else
+       font->driver->draw (s, 0, s->nchars, x, y, 1);
+      if (s->face->overstrike)
+       font->driver->draw (s, 0, s->nchars, x + 1, y, 0);
+    }
+#endif /* USE_FONT_BACKEND */
   else
     {
       char *char1b = (char *) s->char2b;
@@ -1398,11 +1497,11 @@ static void
 x_draw_composite_glyph_string_foreground (s)
      struct glyph_string *s;
 {
-  int i, x;
+  int i, j, x;
 
   /* If first glyph of S has a left box line, start drawing the text
      of S to the right of that box line.  */
-  if (s->face->box != FACE_NO_BOX
+  if (s->face && s->face->box != FACE_NO_BOX
       && s->first_glyph->left_box_line_p)
     x = s->x + eabs (s->face->box_line_width);
   else
@@ -1421,21 +1520,79 @@ x_draw_composite_glyph_string_foreground (s)
        XDrawRectangle (s->display, s->window, s->gc, x, s->y,
                        s->width - 1, s->height - 1);
     }
-  else
+#ifdef USE_FONT_BACKEND
+  else if (enable_font_backend)
     {
-      for (i = 0; i < s->nchars; i++, ++s->gidx)
+      struct font *font = (struct font *) s->font_info;
+      int y = s->ybase;
+      int width = 0;
+
+      if (s->cmp->method == COMPOSITION_WITH_GLYPH_STRING)
        {
-         XDrawString16 (s->display, s->window, s->gc,
-                        x + s->cmp->offsets[s->gidx * 2],
-                        s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
-                        s->char2b + i, 1);
-         if (s->face->overstrike)
-           XDrawString16 (s->display, s->window, s->gc,
-                          x + s->cmp->offsets[s->gidx * 2] + 1,
-                          s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
-                          s->char2b + i, 1);
+         Lisp_Object gstring = AREF (XHASH_TABLE (composition_hash_table)
+                                     ->key_and_value,
+                                     s->cmp->hash_index * 2);
+         int from;
+
+         for (i = from = 0; i < s->nchars; i++)
+           {
+             Lisp_Object g = LGSTRING_GLYPH (gstring, i);
+             Lisp_Object adjustment = LGLYPH_ADJUSTMENT (g);
+             int xoff, yoff, wadjust;
+
+             if (! VECTORP (adjustment))
+               {
+                 width += LGLYPH_WIDTH (g);
+                 continue;
+               }
+             if (from < i)
+               {
+                 font->driver->draw (s, from, i, x, y, 0);
+                 x += width;
+               }
+             xoff = XINT (AREF (adjustment, 0));
+             yoff = XINT (AREF (adjustment, 1));
+             wadjust = XINT (AREF (adjustment, 2));
+
+             font->driver->draw (s, i, i + 1, x + xoff, y + yoff, 0);
+             x += wadjust;
+             from = i + 1;
+             width = 0;
+           }
+         if (from < i)
+           font->driver->draw (s, from, i, x, y, 0);
+       }
+      else
+       {
+         for (i = 0, j = s->gidx; i < s->nchars; i++, j++)
+           if (COMPOSITION_GLYPH (s->cmp, j) != '\t')
+             {
+               int xx = x + s->cmp->offsets[j * 2];
+               int yy = y - s->cmp->offsets[j * 2 + 1];
+
+               font->driver->draw (s, j, j + 1, xx, yy, 0);
+               if (s->face->overstrike)
+                 font->driver->draw (s, j, j + 1, xx + 1, yy, 0);
+             }
        }
     }
+#endif /* USE_FONT_BACKEND */
+  else
+    {
+      for (i = 0, j = s->gidx; i < s->nchars; i++, j++)
+       if (s->face)
+         {
+           XDrawString16 (s->display, s->window, s->gc,
+                          x + s->cmp->offsets[j * 2],
+                          s->ybase - s->cmp->offsets[j * 2 + 1],
+                          s->char2b + j, 1);
+           if (s->face->overstrike)
+             XDrawString16 (s->display, s->window, s->gc,
+                            x + s->cmp->offsets[j * 2] + 1,
+                            s->ybase - s->cmp->offsets[j * 2 + 1],
+                            s->char2b + j, 1);
+         }
+    }
 }
 
 
@@ -1470,8 +1627,8 @@ x_frame_of_widget (widget)
 
   /* Look for a frame with that top-level widget.  Allocate the color
      on that frame to get the right gamma correction value.  */
-  for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
-    if (GC_FRAMEP (XCAR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
+    if (FRAMEP (XCAR (tail))
        && (f = XFRAME (XCAR (tail)),
            (FRAME_X_P (f)
              && f->output_data.nothing != 1
@@ -2682,15 +2839,25 @@ x_draw_glyph_string (s)
 {
   int relief_drawn_p = 0;
 
-  /* If S draws into the background of its successor, draw the
-     background of the successor first so that S can draw into it.
+  /* If S draws into the background of its successors, draw the
+     background of the successors first so that S can draw into it.
      This makes S->next use XDrawString instead of XDrawImageString.  */
   if (s->next && s->right_overhang && !s->for_overlaps)
     {
-      xassert (s->next->img == NULL);
-      x_set_glyph_string_gc (s->next);
-      x_set_glyph_string_clipping (s->next);
-      x_draw_glyph_string_background (s->next, 1);
+      int width;
+      struct glyph_string *next;
+
+      for (width = 0, next = s->next; next;
+          width += next->width, next = next->next)
+       if (next->first_glyph->type != IMAGE_GLYPH)
+         {
+           x_set_glyph_string_gc (next);
+           x_set_glyph_string_clipping (next);
+           x_draw_glyph_string_background (next, 1);
+#ifdef USE_FONT_BACKEND
+           next->num_clips = 0;
+#endif /* USE_FONT_BACKEND */
+         }
     }
 
   /* Set up S->gc, set clipping and draw S.  */
@@ -2710,6 +2877,12 @@ x_draw_glyph_string (s)
       x_set_glyph_string_clipping (s);
       relief_drawn_p = 1;
     }
+  else if ((s->prev && s->prev->hl != s->hl && s->left_overhang)
+          || (s->next && s->next->hl != s->hl && s->right_overhang))
+    /* We must clip just this glyph.  left_overhang part has already
+       drawn when s->prev was drawn, and right_overhang part will be
+       drawn later when s->next is drawn. */
+    x_set_glyph_string_clipping_exactly (s, s);
   else
     x_set_glyph_string_clipping (s);
 
@@ -2752,26 +2925,45 @@ x_draw_glyph_string (s)
          int y;
 
          /* Get the underline thickness.  Default is 1 pixel.  */
+#ifdef USE_FONT_BACKEND
+         if (enable_font_backend)
+           /* In the future, we must use information of font.  */
+           h = 1;
+         else
+#endif /* USE_FONT_BACKEND */
          if (!XGetFontProperty (s->font, XA_UNDERLINE_THICKNESS, &h))
            h = 1;
 
-         y = s->y + s->height - h;
-         if (!x_underline_at_descent_line)
-            {
-             /* Get the underline position.  This is the recommended
-                 vertical offset in pixels from the baseline to the top of
-                 the underline.  This is a signed value according to the
-                 specs, and its default is
-
-                ROUND ((maximum descent) / 2), with
-                ROUND(x) = floor (x + 0.5)  */
-
-              if (x_use_underline_position_properties
-                  && XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem))
-                y = s->ybase + (long) tem;
-              else if (s->face->font)
-                y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2;
-            }
+#ifdef USE_FONT_BACKEND
+         if (enable_font_backend)
+           {
+             if (s->face->font)
+               /* In the future, we must use information of font.  */
+               y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2;
+             else
+               y = s->y + s->height - h;
+           }
+         else
+#endif
+           {
+             y = s->y + s->height - h;
+             if (!x_underline_at_descent_line)
+               {
+                 /* Get the underline position.  This is the recommended
+                    vertical offset in pixels from the baseline to the top of
+                    the underline.  This is a signed value according to the
+                    specs, and its default is
+
+                    ROUND ((maximum descent) / 2), with
+                    ROUND(x) = floor (x + 0.5)  */
+
+                 if (x_use_underline_position_properties
+                     && XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem))
+                   y = s->ybase + (long) tem;
+                 else if (s->face->font)
+                   y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2;
+               }
+           }
 
          if (s->face->underline_defaulted_p)
            XFillRectangle (s->display, s->window, s->gc,
@@ -2829,10 +3021,67 @@ x_draw_glyph_string (s)
       /* Draw relief if not yet drawn.  */
       if (!relief_drawn_p && s->face->box != FACE_NO_BOX)
        x_draw_glyph_string_box (s);
+
+      if (s->prev)
+       {
+         struct glyph_string *prev;
+
+         for (prev = s->prev; prev; prev = prev->prev)
+           if (prev->hl != s->hl
+               && prev->x + prev->width + prev->right_overhang > s->x)
+             {
+               /* As prev was drawn while clipped to its own area, we
+                  must draw the right_overhang part using s->hl now.  */
+               enum draw_glyphs_face save = prev->hl;
+
+               prev->hl = s->hl;
+               x_set_glyph_string_gc (prev);
+               x_set_glyph_string_clipping_exactly (s, prev);
+               if (prev->first_glyph->type == CHAR_GLYPH)
+                 x_draw_glyph_string_foreground (prev);
+               else
+                 x_draw_composite_glyph_string_foreground (prev);
+               XSetClipMask (prev->display, prev->gc, None);
+               prev->hl = save;
+#ifdef USE_FONT_BACKEND
+               prev->num_clips = 0;
+#endif /* USE_FONT_BACKEND */
+             }
+       }
+
+      if (s->next)
+       {
+         struct glyph_string *next;
+
+         for (next = s->next; next; next = next->next)
+           if (next->hl != s->hl
+               && next->x - next->left_overhang < s->x + s->width)
+             {
+               /* As next will be drawn while clipped to its own area,
+                  we must draw the left_overhang part using s->hl now.  */
+               enum draw_glyphs_face save = next->hl;
+
+               next->hl = s->hl;
+               x_set_glyph_string_gc (next);
+               x_set_glyph_string_clipping_exactly (s, next);
+               if (next->first_glyph->type == CHAR_GLYPH)
+                 x_draw_glyph_string_foreground (next);
+               else
+                 x_draw_composite_glyph_string_foreground (next);
+               XSetClipMask (next->display, next->gc, None);
+               next->hl = save;
+#ifdef USE_FONT_BACKEND
+               next->num_clips = 0;
+#endif /* USE_FONT_BACKEND */
+             }
+       }
     }
 
   /* Reset clipping.  */
   XSetClipMask (s->display, s->gc, None);
+#ifdef USE_FONT_BACKEND
+  s->num_clips = 0;
+#endif /* USE_FONT_BACKEND */
 }
 
 /* Shift display to make room for inserted glyphs.   */
@@ -3285,9 +3534,9 @@ x_focus_changed (type, state, dpyinfo, frame, bufp)
 
           /* Don't stop displaying the initial startup message
              for a switch-frame event we don't need.  */
-          if (GC_NILP (Vterminal_frame)
-              && GC_CONSP (Vframe_list)
-              && !GC_NILP (XCDR (Vframe_list)))
+          if (NILP (Vterminal_frame)
+              && CONSP (Vframe_list)
+              && !NILP (XCDR (Vframe_list)))
             {
               bufp->kind = FOCUS_IN_EVENT;
               XSETFRAME (bufp->frame_or_window, frame);
@@ -3397,7 +3646,7 @@ x_frame_rehighlight (dpyinfo)
   if (dpyinfo->x_focus_frame)
     {
       dpyinfo->x_highlight_frame
-       = ((GC_FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame)))
+       = ((FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame)))
           ? XFRAME (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame))
           : dpyinfo->x_focus_frame);
       if (! FRAME_LIVE_P (dpyinfo->x_highlight_frame))
@@ -3938,15 +4187,13 @@ x_window_to_scroll_bar (display, window_id)
   window_id = (Window) xg_get_scroll_id_for_window (display, window_id);
 #endif /* USE_GTK  && USE_TOOLKIT_SCROLL_BARS */
 
-  for (tail = Vframe_list;
-       XGCTYPE (tail) == Lisp_Cons;
-       tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       Lisp_Object frame, bar, condemned;
 
       frame = XCAR (tail);
       /* All elements of Vframe_list should be frames.  */
-      if (! GC_FRAMEP (frame))
+      if (! FRAMEP (frame))
        abort ();
 
       if (! FRAME_X_P (XFRAME (frame)))
@@ -3958,9 +4205,9 @@ x_window_to_scroll_bar (display, window_id)
       for (bar = FRAME_SCROLL_BARS (XFRAME (frame));
           /* This trick allows us to search both the ordinary and
               condemned scroll bar lists with one loop.  */
-          ! GC_NILP (bar) || (bar = condemned,
+          ! NILP (bar) || (bar = condemned,
                               condemned = Qnil,
-                              ! GC_NILP (bar));
+                              ! NILP (bar));
           bar = XSCROLL_BAR (bar)->next)
        if (XSCROLL_BAR (bar)->x_window == window_id &&
             FRAME_X_DISPLAY (XFRAME (frame)) == display)
@@ -3982,9 +4229,7 @@ x_window_to_menu_bar (window)
 {
   Lisp_Object tail;
 
-  for (tail = Vframe_list;
-       XGCTYPE (tail) == Lisp_Cons;
-       tail = XCDR (tail))
+  for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
     {
       if (FRAME_X_P (XFRAME (XCAR (tail))))
         {
@@ -5396,7 +5641,7 @@ x_scroll_bar_handle_click (bar, event, emacs_event)
      XEvent *event;
      struct input_event *emacs_event;
 {
-  if (! GC_WINDOWP (bar->window))
+  if (! WINDOWP (bar->window))
     abort ();
 
   emacs_event->kind = SCROLL_BAR_CLICK_EVENT;
@@ -5491,7 +5736,7 @@ x_scroll_bar_note_movement (bar, event)
   XSETVECTOR (last_mouse_scroll_bar, bar);
 
   /* If we're dragging the bar, display it.  */
-  if (! GC_NILP (bar->dragging))
+  if (! NILP (bar->dragging))
     {
       /* Where should the handle be now?  */
       int new_start = event->xmotion.y - XINT (bar->dragging);
@@ -6368,41 +6613,14 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
              goto done_keysym;
            }
 
-         /* Keysyms directly mapped to supported Unicode characters.  */
-         if ((keysym >= 0x01000000 && keysym <= 0x010033ff)
-             || (keysym >= 0x0100e000 && keysym <= 0x0100ffff))
+         /* Keysyms directly mapped to Unicode characters.  */
+         if (keysym >= 0x01000000 && keysym <= 0x0110FFFF)
            {
-             int code = keysym & 0xFFFF, charset_id, c1, c2;
-
-             if (code < 0x80)
-               {
-                 inev.ie.kind = ASCII_KEYSTROKE_EVENT;
-                 inev.ie.code = code;
-               }
-             else if (code < 0x100)
-               {
-                 if (code < 0xA0)
-                   charset_id = CHARSET_8_BIT_CONTROL;
-                 else
-                   charset_id = charset_latin_iso8859_1;
-                 inev.ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
-                 inev.ie.code = MAKE_CHAR (charset_id, code, 0);
-               }
+             if (keysym < 0x01000080)
+               inev.ie.kind = ASCII_KEYSTROKE_EVENT;
              else
-               {
-                 if (code < 0x2500)
-                   charset_id = charset_mule_unicode_0100_24ff,
-                     code -= 0x100;
-                 else if (code < 0xE000)
-                   charset_id = charset_mule_unicode_2500_33ff,
-                     code -= 0x2500;
-                 else
-                   charset_id = charset_mule_unicode_e000_ffff,
-                     code -= 0xE000;
-                 c1 = (code / 96) + 32, c2 = (code % 96) + 32;
-                 inev.ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
-                 inev.ie.code = MAKE_CHAR (charset_id, c1, c2);
-               }
+               inev.ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
+             inev.ie.code = keysym & 0xFFFFFF;
              goto done_keysym;
            }
 
@@ -6507,54 +6725,54 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
            register int c;
            int nchars, len;
 
-           /* The input should be decoded with `coding_system'
-              which depends on which X*LookupString function
-              we used just above and the locale.  */
-           setup_coding_system (coding_system, &coding);
-           coding.src_multibyte = 0;
-           coding.dst_multibyte = 1;
-           /* The input is converted to events, thus we can't
-              handle composition.  Anyway, there's no XIM that
-              gives us composition information.  */
-           coding.composing = COMPOSITION_DISABLED;
-
-           if (nbytes > 0)
+           for (i = 0, nchars = 0; i < nbytes; i++)
+             {
+               if (ASCII_BYTE_P (copy_bufptr[i]))
+                 nchars++;
+               STORE_KEYSYM_FOR_DEBUG (copy_bufptr[i]);
+             }
+
+           if (nchars < nbytes)
              {
                /* Decode the input data.  */
                int require;
                unsigned char *p;
 
-               for (i = 0; i < nbytes; i++)
-                 {
-                   STORE_KEYSYM_FOR_DEBUG (copy_bufptr[i]);
-                 }
-
-               require = decoding_buffer_size (&coding, nbytes);
-               p = (unsigned char *) alloca (require);
+               /* The input should be decoded with `coding_system'
+                  which depends on which X*LookupString function
+                  we used just above and the locale.  */
+               setup_coding_system (coding_system, &coding);
+               coding.src_multibyte = 0;
+               coding.dst_multibyte = 1;
+               /* The input is converted to events, thus we can't
+                  handle composition.  Anyway, there's no XIM that
+                  gives us composition information.  */
+               coding.common_flags &= ~CODING_ANNOTATION_MASK;
+
+               require = MAX_MULTIBYTE_LENGTH * nbytes;
+               coding.destination = alloca (require);
+               coding.dst_bytes = require;
                coding.mode |= CODING_MODE_LAST_BLOCK;
-               /* We explicitly disable composition handling because
-                  key data should not contain any composition sequence.  */
-               coding.composing = COMPOSITION_DISABLED;
-               decode_coding (&coding, copy_bufptr, p, nbytes, require);
+               decode_coding_c_string (&coding, copy_bufptr, nbytes, Qnil);
                nbytes = coding.produced;
                nchars = coding.produced_char;
-               copy_bufptr = p;
+               copy_bufptr = coding.destination;
+             }
 
-               /* Convert the input data to a sequence of
-                  character events.  */
-               for (i = 0; i < nbytes; i += len)
-                 {
-                   if (nchars == nbytes)
-                     c = copy_bufptr[i], len = 1;
-                   else
-                     c = STRING_CHAR_AND_LENGTH (copy_bufptr + i,
-                                                 nbytes - i, len);
-                   inev.ie.kind = (SINGLE_BYTE_CHAR_P (c)
-                                   ? ASCII_KEYSTROKE_EVENT
-                                   : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
-                   inev.ie.code = c;
-                   kbd_buffer_store_event_hold (&inev.ie, hold_quit);
-                 }
+           /* Convert the input data to a sequence of
+              character events.  */
+           for (i = 0; i < nbytes; i += len)
+             {
+               if (nchars == nbytes)
+                 c = copy_bufptr[i], len = 1;
+               else
+                 c = STRING_CHAR_AND_LENGTH (copy_bufptr + i,
+                                             nbytes - i, len);
+               inev.ie.kind = (SINGLE_BYTE_CHAR_P (c)
+                               ? ASCII_KEYSTROKE_EVENT
+                               : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
+               inev.ie.code = c;
+               kbd_buffer_store_event_hold (&inev.ie, hold_quit);
              }
 
            /* Previous code updated count by nchars rather than nbytes,
@@ -7997,11 +8215,16 @@ x_new_font (f, fontname)
      register char *fontname;
 {
   struct font_info *fontp
-    = FS_LOAD_FONT (f, 0, fontname, -1);
+    = FS_LOAD_FONT (f, fontname);
 
   if (!fontp)
     return Qnil;
 
+  if (FRAME_FONT (f) == (XFontStruct *) (fontp->font))
+    /* This font is already set in frame F.  There's nothing more to
+       do.  */
+    return build_string (fontp->full_name);
+
   FRAME_FONT (f) = (XFontStruct *) (fontp->font);
   FRAME_BASELINE_OFFSET (f) = fontp->baseline_offset;
   FRAME_FONTSET (f) = -1;
@@ -8045,33 +8268,45 @@ x_new_font (f, fontname)
   return build_string (fontp->full_name);
 }
 
-/* Give frame F the fontset named FONTSETNAME as its default font, and
-   return the full name of that fontset.  FONTSETNAME may be a wildcard
-   pattern; in that case, we choose some fontset that fits the pattern.
-   The return value shows which fontset we chose.  */
+/* Give frame F the fontset named FONTSETNAME as its default fontset,
+   and return the full name of that fontset.  FONTSETNAME may be a
+   wildcard pattern; in that case, we choose some fontset that fits
+   the pattern.  FONTSETNAME may be a font name for ASCII characters;
+   in that case, we create a fontset from that font name.
+
+   The return value shows which fontset we chose.
+   If FONTSETNAME specifies the default fontset, return Qt.
+   If an ASCII font in the specified fontset can't be loaded, return
+   Qnil.  */
 
 Lisp_Object
 x_new_fontset (f, fontsetname)
      struct frame *f;
-     char *fontsetname;
+     Lisp_Object fontsetname;
 {
-  int fontset = fs_query_fontset (build_string (fontsetname), 0);
+  int fontset = fs_query_fontset (fontsetname, 0);
   Lisp_Object result;
 
-  if (fontset < 0)
-    return Qnil;
-
-  if (FRAME_FONTSET (f) == fontset)
+  if (fontset > 0 && f->output_data.x->fontset == fontset)
     /* This fontset is already set in frame F.  There's nothing more
        to do.  */
     return fontset_name (fontset);
+  else if (fontset == 0)
+    /* The default fontset can't be the default font.   */
+    return Qt;
 
-  result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
+  if (fontset > 0)
+    result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
+  else
+    result = x_new_font (f, SDATA (fontsetname));
 
   if (!STRINGP (result))
     /* Can't load ASCII font.  */
     return Qnil;
 
+  if (fontset < 0)
+    fontset = new_fontset_from_font_name (result);
+
   /* Since x_new_font doesn't update any fontset information, do it now.  */
   FRAME_FONTSET (f) = fontset;
 
@@ -8081,9 +8316,71 @@ x_new_fontset (f, fontsetname)
     xic_set_xfontset (f, SDATA (fontset_ascii (fontset)));
 #endif
 
-  return build_string (fontsetname);
+  return fontset_name (fontset);
 }
 
+#ifdef USE_FONT_BACKEND
+Lisp_Object
+x_new_fontset2 (f, fontset, font_object)
+     struct frame *f;
+     int fontset;
+     Lisp_Object font_object;
+{
+  struct font *font = XSAVE_VALUE (font_object)->pointer;
+
+  if (FRAME_FONT_OBJECT (f) == font)
+    /* This font is already set in frame F.  There's nothing more to
+       do.  */
+    return fontset_name (fontset);
+
+  BLOCK_INPUT;
+
+  FRAME_FONT_OBJECT (f) = font;
+  FRAME_FONT (f) = font->font.font;
+  FRAME_BASELINE_OFFSET (f) = font->font.baseline_offset;
+  FRAME_FONTSET (f) = fontset;
+
+  FRAME_COLUMN_WIDTH (f) = font->font.average_width;
+  FRAME_SPACE_WIDTH (f) = font->font.space_width;
+  FRAME_LINE_HEIGHT (f) = font->font.height;
+
+  compute_fringe_widths (f, 1);
+
+  /* Compute the scroll bar width in character columns.  */
+  if (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) > 0)
+    {
+      int wid = FRAME_COLUMN_WIDTH (f);
+      FRAME_CONFIG_SCROLL_BAR_COLS (f)
+       = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + wid - 1) / wid;
+    }
+  else
+    {
+      int wid = FRAME_COLUMN_WIDTH (f);
+      FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid;
+    }
+
+  /* Now make the frame display the given font.  */
+  if (FRAME_X_WINDOW (f) != 0)
+    {
+      /* Don't change the size of a tip frame; there's no point in
+        doing it because it's done in Fx_show_tip, and it leads to
+        problems because the tip frame has no widget.  */
+      if (NILP (tip_frame) || XFRAME (tip_frame) != f)
+       x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
+    }
+
+#ifdef HAVE_X_I18N
+  if (FRAME_XIC (f)
+      && (FRAME_XIC_STYLE (f) & (XIMPreeditPosition | XIMStatusArea)))
+    xic_set_xfontset (f, SDATA (fontset_ascii (fontset)));
+#endif
+
+  UNBLOCK_INPUT;
+
+  return fontset_name (fontset);
+}
+#endif /* USE_FONT_BACKEND */
+
 \f
 /***********************************************************************
                           X Input Methods
@@ -9353,6 +9650,15 @@ x_free_frame_resources (f)
      commands to the X server.  */
   if (dpyinfo->display)
     {
+#ifdef USE_FONT_BACKEND
+      /* We must free faces before destroying windows because some
+        font-driver (e.g. xft) access a window while finishing a
+        face.  */
+      if (enable_font_backend
+         && FRAME_FACE_CACHE (f))
+       free_frame_faces (f);
+#endif /* USE_FONT_BACKEND */
+
       if (f->output_data.x->icon_desc)
        XDestroyWindow (FRAME_X_DISPLAY (f), f->output_data.x->icon_desc);
 
@@ -9734,7 +10040,7 @@ x_get_font_info (f, font_idx)
    If SIZE is > 0, it is the size (maximum bounds width) of fonts
    to be listed.
 
-   SIZE < 0 means include scalable fonts.
+   SIZE < 0 means include auto scaled fonts.
 
    Frame F null means we have not yet created any frame on X, and
    consult the first display in x_display_list.  MAXNAMES sets a limit
@@ -10043,6 +10349,11 @@ x_check_font (f, font)
 
   xassert (font != NULL);
 
+#ifdef USE_FONT_BACKEND
+  if (enable_font_backend)
+    /* Fixme: Perhaps we should check all cached fonts.  */
+    return;
+#endif
   for (i = 0; i < dpyinfo->n_fonts; i++)
     if (dpyinfo->font_table[i].name
        && font == dpyinfo->font_table[i].font)
@@ -10207,6 +10518,7 @@ x_load_font (f, fontname, size)
     bzero (fontp, sizeof (*fontp));
     fontp->font = font;
     fontp->font_idx = i;
+    fontp->charset = -1;       /* fs_load_font sets it.  */
     fontp->name = (char *) xmalloc (strlen (fontname) + 1);
     bcopy (fontname, fontp->name, strlen (fontname) + 1);
 
@@ -10318,10 +10630,10 @@ x_load_font (f, fontname, size)
        the font code-points (0:0x20..0x7F, 1:0xA0..0xFF), or
        (0:0x2020..0x7F7F, 1:0xA0A0..0xFFFF, 3:0x20A0..0x7FFF,
        2:0xA020..0xFF7F).  For the moment, we don't know which charset
-       uses this font.  So, we set information in fontp->encoding[1]
+       uses this font.  So, we set information in fontp->encoding_type
        which is never used by any charset.  If mapping can't be
        decided, set FONT_ENCODING_NOT_DECIDED.  */
-    fontp->encoding[1]
+    fontp->encoding_type
       = (font->max_byte1 == 0
         /* 1-byte font */
         ? (font->min_char_or_byte2 < 0x80
@@ -10421,6 +10733,160 @@ x_find_ccl_program (fontp)
 }
 
 
+/* Return a char-table whose elements are t if the font FONT_INFO
+   contains a glyph for the corresponding character, and nil if
+   not.  */
+
+Lisp_Object
+x_get_font_repertory (f, font_info)
+     FRAME_PTR f;
+     struct font_info *font_info;
+{
+  XFontStruct *font = (XFontStruct *) font_info->font;
+  Lisp_Object table;
+  int min_byte1, max_byte1, min_byte2, max_byte2;
+  int c;
+  struct charset *charset = CHARSET_FROM_ID (font_info->charset);
+  int offset = CHARSET_OFFSET (charset);
+
+  table = Fmake_char_table (Qnil, Qnil);
+
+  min_byte1 = font->min_byte1;
+  max_byte1 = font->max_byte1;
+  min_byte2 = font->min_char_or_byte2;
+  max_byte2 = font->max_char_or_byte2;
+  if (min_byte1 == 0 && max_byte1 == 0)
+    {
+      if (! font->per_char || font->all_chars_exist == True)
+       {
+         if (offset >= 0)
+           char_table_set_range (table, offset + min_byte2,
+                                 offset + max_byte2, Qt);
+         else
+           for (; min_byte2 <= max_byte2; min_byte2++)
+             {
+               c = DECODE_CHAR (charset, min_byte2);
+               CHAR_TABLE_SET (table, c, Qt);
+             }
+       }
+      else
+       {
+         XCharStruct *pcm = font->per_char;
+         int from = -1;
+         int i;
+
+         for (i = min_byte2; i <= max_byte2; i++, pcm++)
+           {
+             if (pcm->width == 0 && pcm->rbearing == pcm->lbearing)
+               {
+                 if (from >= 0)
+                   {
+                     if (offset >= 0)
+                       char_table_set_range (table, offset + from,
+                                             offset + i - 1, Qt);
+                     else
+                       for (; from < i; from++)
+                         {
+                           c = DECODE_CHAR (charset, from);
+                           CHAR_TABLE_SET (table, c, Qt);
+                         }
+                     from = -1;
+                   }
+               }
+             else if (from < 0)
+               from = i;
+           }
+         if (from >= 0)
+           {
+             if (offset >= 0)
+               char_table_set_range (table, offset + from, offset + i - 1,
+                                     Qt);
+             else
+               for (; from < i; from++)
+                 {
+                   c = DECODE_CHAR (charset, from);
+                   CHAR_TABLE_SET (table, c, Qt);
+                 }
+           }
+       }
+    }
+  else
+    {
+      if (! font->per_char || font->all_chars_exist == True)
+       {
+         int i, j;
+
+         if (offset >= 0)
+           for (i = min_byte1; i <= max_byte1; i++)
+             char_table_set_range
+               (table, offset + ((i << 8) | min_byte2),
+                offset + ((i << 8) | max_byte2), Qt);
+         else
+           for (i = min_byte1; i <= max_byte1; i++)        
+             for (j = min_byte2; j <= max_byte2; j++)
+               {
+                 unsigned code = (i << 8) | j;
+                 c = DECODE_CHAR (charset, code);
+                 CHAR_TABLE_SET (table, c, Qt);
+               }
+       }
+      else
+       {
+         XCharStruct *pcm = font->per_char;
+         int i;
+
+         for (i = min_byte1; i <= max_byte1; i++)
+           {
+             int from = -1;
+             int j;
+
+             for (j = min_byte2; j <= max_byte2; j++, pcm++)
+               {
+                 if (pcm->width == 0 && pcm->rbearing == pcm->lbearing)
+                   {
+                     if (from >= 0)
+                       {
+                         if (offset >= 0)
+                           char_table_set_range
+                             (table, offset + ((i << 8) | from),
+                              offset + ((i << 8) | (j - 1)), Qt);
+                         else
+                           {
+                             for (; from < j; from++)
+                               {
+                                 unsigned code = (i << 8) | from;
+                                 c = ENCODE_CHAR (charset, code);
+                                 CHAR_TABLE_SET (table, c, Qt);
+                               }
+                           }
+                         from = -1;
+                       }
+                   }
+                 else if (from < 0)
+                   from = j;
+               }
+             if (from >= 0)
+               {
+                 if (offset >= 0)
+                   char_table_set_range
+                     (table, offset + ((i << 8) | from),
+                      offset + ((i << 8) | (j - 1)), Qt);
+                 else
+                   {
+                     for (; from < j; from++)
+                       {
+                         unsigned code = (i << 8) | from;
+                         c = DECODE_CHAR (charset, code);
+                         CHAR_TABLE_SET (table, c, Qt);
+                       }
+                   }
+               }
+           }
+       }
+    }
+
+  return table;
+}
 \f
 /***********************************************************************
                            Initialization
@@ -11131,6 +11597,10 @@ x_delete_display (dpyinfo)
     xim_close_dpy (dpyinfo);
 #endif
 
+#ifdef USE_FONT_BACKEND
+  if (! enable_font_backend)
+    {
+#endif
   /* Free the font names in the font table.  */
   for (i = 0; i < dpyinfo->n_fonts; i++)
     if (dpyinfo->font_table[i].name)
@@ -11146,6 +11616,10 @@ x_delete_display (dpyinfo)
        xfree (dpyinfo->font_table->font_encoder);
       xfree (dpyinfo->font_table);
     }
+#ifdef USE_FONT_BACKEND
+    }
+#endif
+
   if (dpyinfo->x_id_name)
     xfree (dpyinfo->x_id_name);
   if (dpyinfo->color_cells)
@@ -11255,6 +11729,9 @@ x_delete_terminal (struct terminal *terminal)
     return;
 
   BLOCK_INPUT;
+#ifdef USE_FONT_BACKEND
+  if (! enable_font_backend)
+#endif
   /* Free the fonts in the font table.  */
   for (i = 0; i < dpyinfo->n_fonts; i++)
     if (dpyinfo->font_table[i].name)
@@ -11402,8 +11879,6 @@ syms_of_xterm ()
   staticpro (&Qvendor_specific_keysyms);
   Qvendor_specific_keysyms = intern ("vendor-specific-keysyms");
 
-  staticpro (&Qutf_8);
-  Qutf_8 = intern ("utf-8");
   staticpro (&Qlatin_1);
   Qlatin_1 = intern ("latin-1");
 
index d9b5c327858213cfde6709323c8f8eb6185970a3..25b04fe75fa8e23093fe59f7fd8d4b5313cf491a 100644 (file)
@@ -405,6 +405,9 @@ extern struct font_info *x_get_font_info P_ ((struct frame *f, int));
 extern struct font_info *x_load_font P_ ((struct frame *, char *, int));
 extern struct font_info *x_query_font P_ ((struct frame *, char *));
 extern void x_find_ccl_program P_ ((struct font_info *));
+extern Lisp_Object x_get_font_repertory P_ ((struct frame *,
+                                            struct font_info *));
+
 \f
 /* Each X frame object points to its own struct x_output object
    in the output_data.x field.  The x_output structure contains
@@ -486,6 +489,10 @@ struct x_output
   /* Default ASCII font of this frame.  */
   XFontStruct *font;
 
+#ifdef USE_FONT_BACKEND
+  struct font *fontp;
+#endif /* USE_FONT_BACKEND */
+
   /* The baseline offset of the default ASCII font.  */
   int baseline_offset;
 
@@ -673,6 +680,10 @@ enum
 #define FRAME_TOOLBAR_HEIGHT(f) ((f)->output_data.x->toolbar_height)
 #define FRAME_BASELINE_OFFSET(f) ((f)->output_data.x->baseline_offset)
 
+#ifdef USE_FONT_BACKEND
+#define FRAME_FONT_OBJECT(f) ((f)->output_data.x->fontp)
+#endif /* USE_FONT_BACKEND */
+
 /* This gives the x_display_info structure for the display F is on.  */
 #define FRAME_X_DISPLAY_INFO(f) ((f)->output_data.x->display_info)